| | |
| | | <template> |
| | | <div> |
| | | <el-steps direction="vertical" :active="1"> |
| | | <el-step title="准备数据"> |
| | | <span> |
| | | <el-button type="primary" @click="openimport">导入</el-button> |
| | | <el-dialog title="导入" v-model="visible" :width="900"> |
| | | <h6><span>1</span>准备数据</h6> |
| | | <span class="desc">导入的数据个数需小于200,所有允许导入的字段请参考模板; |
| | | <span class="bolder">字段不符合规则,整条数据不予以导入</span> |
| | | <span class="more" @click="showDest = !showDest">更多字段导入规则></span> |
| | | </span> |
| | | <button type="button" class="el-button more-btn el-button--text el-button--mini"><span>更多字段导入规则 <i class="el-icon-arrow-down no-open"></i></span></button> |
| | | <div class="desc"> |
| | | <ul class="tip" style=""> |
| | | <div class="text-desc" :class="{showDest: showDest}"> |
| | | <ul class="tip"> |
| | | <li>1、员工工号:必填;工号不可重复;支持大小写字母、数字组合;</li> |
| | | <li>2、员工姓名:必填;如果重名,建议加数字区分,如“张三1”;</li> |
| | | <li>3、状态:必填;选择在职/离职;</li> |
| | |
| | | <li>8、部门:非必填;请填写部门完整层级;中间间隔,请用英文符号”-“间隔。如”xx公司-xx部门-xx“</li> |
| | | <li>9、入职日期:非必填;日期格式“YY-MM-DD”</li> |
| | | </ul> |
| | | <a class="download el-link el-link--primary is-underline"><i class="el-icon-download"></i><span class="el-link--inner">下载模板</span></a> |
| | | </div> |
| | | </el-step> |
| | | <el-step title="上传数据文件"></el-step> |
| | | </el-steps> |
| | | <div class="exportBtn" @click="exportBtn">下载模板</div> |
| | | <h6 class="marTop8"><span>2</span>上传数据文件</h6> |
| | | <div class="uploadBtn"> |
| | | <el-upload class="upload" :action="uploadUrl"> |
| | | <el-button type="primary">上传文件</el-button> |
| | | </el-upload> |
| | | <div class="uploadBtn-desc">目前支持的文件类型为.xls,.xlsx</div> |
| | | </div> |
| | | <template #footer> |
| | | <el-button @click="visible=false" >取 消</el-button> |
| | | </template> |
| | | </el-dialog> |
| | | </span> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | data() { |
| | | return { |
| | | visible: false, |
| | | showDest: true |
| | | } |
| | | }, |
| | | mounted() { |
| | | |
| | | }, |
| | | props: { |
| | | exportUrl: {type: String, default: true }, |
| | | uploadUrl: {type: String, default: true } |
| | | }, |
| | | methods: { |
| | | |
| | | exportBtn() { |
| | | this.$HTTP.get(this.exportUrl).then(res=> { |
| | | if(res.code == 200) { |
| | | window.open(res.data.link); |
| | | } |
| | | }) |
| | | }, |
| | | openimport() { |
| | | this.visible = true; |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .showDest { |
| | | display: none; |
| | | } |
| | | .desc { |
| | | color: #333; |
| | | font-size: 14px; |
| | | padding-left: 25px; |
| | | } |
| | | .tip { |
| | | list-style: none; |
| | | margin-left: 40px; |
| | | margin-top: 8px; |
| | | font-size: 12px; |
| | | } |
| | | .desc .bolder { |
| | | font-weight: bolder; |
| | | } |
| | | .tip { |
| | | h6 { |
| | | font-size: 14px; |
| | | margin-bottom:8px; |
| | | } |
| | | h6 span:nth-child(1) { |
| | | border-radius: 50%; |
| | | border: 1px solid; |
| | | text-align: center; |
| | | background: #fff; |
| | | width: 20px; |
| | | height: 20px; |
| | | font-size: 14px; |
| | | display: inline-block; |
| | | margin-right:8px; |
| | | } |
| | | .more { |
| | | color:#62a5a5; |
| | | cursor: pointer; |
| | | } |
| | | .marTop8 { |
| | | margin-top: 8px; |
| | | } |
| | | .uploadBtn { |
| | | padding-left: 25px; |
| | | padding-top: 4px; |
| | | } |
| | | .uploadBtn-desc { |
| | | margin-top:6px; |
| | | font-size: 12px; |
| | | padding-left: 16px |
| | | } |
| | | .exportBtn { |
| | | color: #4f9999; |
| | | cursor: pointer; |
| | | margin-left: 40px; |
| | | margin-top: 8px; |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <el-card shadow="hover" header="关于项目" class="item-background"> |
| | | <p>高性能 / 精致 / 优雅。基于Vue3 + Element-Plus 的中后台前端解决方案,如果喜欢就点个星星支持一下。</p> |
| | | <p> |
| | | <a href='https://gitee.com/lolicode/scui' target="_blank"> |
| | | <img src='https://gitee.com/lolicode/scui/badge/star.svg?theme=dark' alt='star' style="vertical-align: middle"> |
| | | </a> |
| | | </p> |
| | | <el-card shadow="hover" header="信息卡" class="item-background"> |
| | | <div class="informationCar"> |
| | | <div class="informationCar-info"> |
| | | <img src="./img-logo.png"> |
| | | <div> |
| | | <div>admin</div> |
| | | <div>admin</div> |
| | | </div> |
| | | </div> |
| | | <img class="car-img" src="./info.76e912c7.png"> |
| | | </div> |
| | | <ul> |
| | | <li>中兵航联</li> |
| | | <li>未绑定员工</li> |
| | | </ul> |
| | | <div class="ver">版本号: 93.1.14</div> |
| | | </el-card> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | title: "关于项目", |
| | | icon: "el-icon-setting", |
| | | description: "点个星星支持一下", |
| | | data() { |
| | | return { |
| | | |
| | |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .item-background {position: relative;} |
| | | .item-background p {color: #999;margin-top:10px;line-height: 1.8;} |
| | | .informationCar {display: flex;height: 60px;} |
| | | .car-img {flex: 1;} |
| | | .informationCar-info {width: 150px;display: flex;height: 50px;align-items: center;} |
| | | .informationCar-info img {width: 30px;height:30px;} |
| | | .informationCar-info > div {margin-left: 32px;flex: 1;} |
| | | .informationCar-info > div div:nth-child(1) {margin-bottom: 8px;font-size: 14px;font-weight: bold;} |
| | | ul {list-style: none;margin-bottom: 20px;} |
| | | .ver {position: absolute;bottom: 6px;right: 8px;} |
| | | </style> |
| | |
| | | <template> |
| | | <el-card shadow="hover" header="版本信息"> |
| | | <div style="height: 210px;text-align: center;"> |
| | | <img src="img/ver.svg" style="height:140px"/> |
| | | <h2 style="margin-top: 15px;">SCUI {{$CONFIG.CORE_VER}}</h2> |
| | | <p style="margin-top: 5px;">最新版本 {{ver}}</p> |
| | | </div> |
| | | <div style="margin-top: 20px;"> |
| | | <el-button type="primary" plain round @click="golog">更新日志</el-button> |
| | | <el-button type="primary" plain round @click="gogit">gitee</el-button> |
| | | </div> |
| | | <div> |
| | | <el-card shadow="hover" header="快捷入口"> |
| | | <ul> |
| | | <li><div>人工-部门</div></li> |
| | | <li><div class="addMenu" @click="showDrawer">+ 添加菜单</div></li> |
| | | </ul> |
| | | </el-card> |
| | | <el-drawer |
| | | title="我是标题" |
| | | :visible.sync="drawer" |
| | | :direction="direction" |
| | | :before-close="handleClose"> |
| | | <span>我来啦!</span> |
| | | </el-drawer> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | title: "版本信息", |
| | | icon: "el-icon-monitor", |
| | | description: "当前项目版本信息", |
| | | data() { |
| | | return { |
| | | ver: 'loading...' |
| | | direction: "rtl", |
| | | drawer: false |
| | | } |
| | | }, |
| | | mounted() { |
| | | this.getVer() |
| | | |
| | | }, |
| | | methods: { |
| | | async getVer(){ |
| | | this.ver = "1.0.0" |
| | | showDrawer() { |
| | | alert(2) |
| | | this.drawer = true; |
| | | alert(3) |
| | | }, |
| | | golog(){ |
| | | window.open("https://gitee.com/lolicode/scui/releases") |
| | | }, |
| | | gogit(){ |
| | | window.open("https://gitee.com/lolicode/scui") |
| | | handleClose(done) { |
| | | this.$confirm('确认关闭?').then(_ => { |
| | | done(); |
| | | }).catch(_ => {}); |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style scoped> |
| | | ul {list-style: none;margin-bottom: 10px;overflow: hidden;} |
| | | ul li {float: left;margin-bottom: 8px;} |
| | | ul li div {border: 1px solid #3b8e8e;margin-top: 10px;height: 43px;margin-left: 10px;display: flex;align-items: center;justify-content: center;color: #3b8e8e;padding: 7px 15px;border-radius: 2px;border-radius: 2px;white-space: nowrap;cursor: pointer;} |
| | | ul li div:hover {background-color: #ebf4f4;} |
| | | .addMenu {border: 1px dashed #3b8e8e;} |
| | | </style> |
| | |
| | | <template> |
| | | <el-card shadow="hover" header="欢迎"> |
| | | <div class="welcome"> |
| | | <div class="logo"> |
| | | <img src="img/logo.png"> |
| | | <h2>欢迎体验 SCUI</h2> |
| | | </div> |
| | | <div class="tips"> |
| | | <div class="tips-item"> |
| | | <div class="tips-item-icon"><el-icon><el-icon-menu/></el-icon></div> |
| | | <div class="tips-item-message">这里是项目控制台,你可以点击右上方的“自定义”按钮来添加移除或者移动部件。</div> |
| | | </div> |
| | | <div class="tips-item"> |
| | | <div class="tips-item-icon"><el-icon><el-icon-promotion/></el-icon></div> |
| | | <div class="tips-item-message">在提高前端算力、减少带宽请求和代码执行力上多次优化,并且持续着。</div> |
| | | </div> |
| | | <div class="tips-item"> |
| | | <div class="tips-item-icon"><el-icon><el-icon-milk-tea/></el-icon></div> |
| | | <div class="tips-item-message">项目目的:让前端工作更快乐</div> |
| | | </div> |
| | | </div> |
| | | <div class="actions"> |
| | | <el-button type="primary" icon="el-icon-check" size="large" @click="godoc">文档</el-button> |
| | | </div> |
| | | <el-card shadow="hover" header="公告"> |
| | | <div class="announcement"> |
| | | <img src="./quesheng.bd026700.png"> |
| | | <div>暂无内容</div> |
| | | </div> |
| | | </el-card> |
| | | </template> |
| | | |
| | | <script> |
| | | export default { |
| | | title: "欢迎", |
| | | icon: "el-icon-present", |
| | | description: "项目特色以及文档链接", |
| | | data() { |
| | | return { |
| | | |
| | |
| | | </script> |
| | | |
| | | <style scoped> |
| | | .welcome {} |
| | | .welcome .logo {text-align: center;} |
| | | .welcome .logo img {vertical-align: bottom;width: 100px;height: 100px;margin-bottom: 20px;} |
| | | .welcome .logo h2 {font-size: 30px;font-weight: normal;display: flex;align-items: center;justify-content: center;} |
| | | |
| | | .tips {margin-top: 20px;padding:0 40px;} |
| | | .tips-item {display: flex;align-items: center;justify-content: center;padding:7.5px 0;} |
| | | .tips-item-icon {width: 40px;height:40px;display: flex;align-items: center;justify-content: center;border-radius: 50%;font-size: 18px;margin-right: 20px;color: var(--el-color-primary);background: rgba(180,180,180,0.1);} |
| | | .tips-item-message {flex: 1;font-size: 14px;} |
| | | |
| | | .actions {text-align: center;margin: 40px 0 20px 0;} |
| | | .announcement { |
| | | text-align: center; |
| | | } |
| | | .announcement img { |
| | | text-align: center; |
| | | width:150px; |
| | | height:150px; |
| | | } |
| | | </style> |
| | |
| | | </script> |
| | | |
| | | <style> |
| | | .login-form {margin: 0 auto;margin-top: 46px;width: 354px;} |
| | | .inputHeight {height: 60px;line-height: 60px;} |
| | | .login-form {margin: 0 auto;margin-top: 46px;width: 294px;} |
| | | .inputHeight {height: 40px;line-height: 40px;} |
| | | </style> |
| | |
| | | <template> |
| | | <div class="login_bg"> |
| | | <div class="login_adv" style="background-image: url(img/auth_banner.jpg);"> |
| | | <div class="login_log"> |
| | | <img src="./loginlog.png" /> |
| | | <div class="login_adv" style="background-image: url(img/bg-login.fb434d90.jpg);"> |
| | | <div class="login_adv__bottom"> |
| | | © {{$CONFIG.APP_NAME}} |
| | | </div> |
| | | <div class="login_adv__bottom">© {{$CONFIG.APP_NAME}}</div> |
| | | </div> |
| | | <div class="login_main"> |
| | | <div class="login-form"> |
| | | <div class="title-name">协同制造管理系统</div> |
| | | <div class="title-name">制造信息管理系统</div> |
| | | <password-form></password-form> |
| | | </div> |
| | | </div> |
| | |
| | | |
| | | <style scoped> |
| | | .login_bg {width: 100%;height: 100%;background: #fff;display: flex;} |
| | | .login_adv {width: 33.3%;background-color: #555;background-size: cover;background-position: center center;background-repeat: no-repeat;position: relative;} |
| | | .login_adv .login_log {text-align: center;} |
| | | .login_adv .login_log img {width:80%;padding-top:40%;} |
| | | .login_adv {width: 100%;background-color: #555;background-size: cover;background-position: center center;background-repeat: no-repeat;position: relative;} |
| | | .login_adv__title {color: #fff;padding: 40px;position: absolute;top:0px;left:0px;right: 0px;z-index: 2;} |
| | | .login_adv__title h2 {font-size: 40px;} |
| | | .login_adv__title h4 {font-size: 18px;margin-top: 10px;font-weight: normal;} |
| | |
| | | .login_adv__title div i.add {font-size: 20px;color: rgba(255,255,255,0.6);} |
| | | .login_adv__bottom {position: absolute;left:0px;right: 0px;bottom: 0px;color: #fff;padding: 40px;background-image:linear-gradient(transparent, #000);z-index: 3;} |
| | | .login_adv__mask {position: absolute;top:0px;left:0px;right: 0px;bottom: 0px;background: rgba(0,0,0,0.5);z-index: 1;} |
| | | |
| | | .login_main {display: flex;flex: 1;align-items: center;background: #fff;text-align: center;} |
| | | .login_main {position: absolute;top: 0;right:118px;width: 370px;height: 440px;top: 52%;-webkit-transform: translateY(-50%);transform: translateY(-50%);background: #fff;text-align: center;padding: 22px 25px 28px;} |
| | | .login-form {} |
| | | .login-header {margin-bottom: 40px;} |
| | | .login-header .logo {display: flex;align-items: center;} |
| | |
| | | .qrCodeLogin img.qrCode {background: #fff;padding:20px;border-radius:10px;} |
| | | .qrCodeLogin p.msg {margin-top: 15px;} |
| | | .qrCodeLogin .qrCodeLogin-result {position: absolute;top:0;left:0;right: 0;bottom: 0;text-align: center;background: var(--el-mask-color);} |
| | | .title-name {font-weight: 900;font-size: 24px;color: rgb(59, 142, 142);margin-top: 56px;line-height: 24px;margin-bottom:46px;} |
| | | .title-name {font-weight: 900;font-size: 24px;color: #409eff;margin-top: 56px;line-height: 24px;margin-bottom:46px;} |
| | | @media (max-width: 1000px){ |
| | | .login_main {display: block;} |
| | | .login_main .login_config {position: static;padding:20px 20px 0 20px;text-align: right;} |
| | |
| | | <div class="right-top"> |
| | | <div class="right-bottom"> |
| | | <el-button type="primary" @click="addPerson">+ 添加部门</el-button> |
| | | <!-- 导入 --> |
| | | <import-table class="exportBtn" :exportUrl="exportUrl" :uploadUrl="uploadUrl"></import-table> |
| | | <!-- 导出 --> |
| | | <el-button type="primary" @click="getExport">导出</el-button> |
| | | <el-button type="danger" plain @click="delPerson">删除</el-button> |
| | | </div> |
| | | <div> |
| | |
| | | <save-dialog v-if="dialog.save" ref="saveDialog" @success="addHandleSuccess" @closed="dialog.save=false"></save-dialog> |
| | | </template> |
| | | <script> |
| | | import importTable from '@/layout/components/importTable.vue' |
| | | import saveDialog from './department' |
| | | export default { |
| | | name: "bakalaka", |
| | | data(){ |
| | | return { |
| | | uploadUrl: "/api/blade-cps/group/import?groupType=group_organization&groupCategory=1", |
| | | exportUrl: "/api/blade-cps/organization/export-template", |
| | | selectId: "", |
| | | selection: [], |
| | | total: 0, |
| | |
| | | this.getOrganizationList(); |
| | | }, |
| | | components: { |
| | | saveDialog |
| | | saveDialog,importTable |
| | | }, |
| | | methods: { |
| | | getExport() { |
| | | this.$HTTP.get(`/api/blade-cps/organization/export-organization?`+this.$TOOL.qsStringify(this.searchData)).then(res=> { |
| | | if(res.code == 200) { |
| | | window.open(res.data.link); |
| | | } |
| | | }) |
| | | }, |
| | | addHandleSuccess() { |
| | | this.getOrganizationList(); |
| | | }, |
| | |
| | | line-height: 20px; |
| | | margin-right: 6px; |
| | | } |
| | | .exportBtn { |
| | | margin-left:8px; |
| | | margin-right:8px; |
| | | } |
| | | </style> |
| | |
| | | <div class="right-bottom"> |
| | | <el-button type="primary" @click="addPerson">+ 添加员工</el-button> |
| | | <el-button type="primary" @click="changeDepartment">部门调整</el-button> |
| | | <!-- 导入 --> |
| | | <import-table class="exportBtn" :exportUrl="exportUrl" :uploadUrl="uploadUrl"></import-table> |
| | | <!-- 导出 --> |
| | | <el-button type="primary" @click="getExport">导出</el-button> |
| | | <el-button type="danger" plain @click="delPerson">删除</el-button> |
| | | </div> |
| | | <div class="right-table"> |
| | |
| | | <save-dialog v-if="dialog.save" ref="saveDialog" @success="personHandleSuccess" @closed="dialog.save=false"></save-dialog> |
| | | </template> |
| | | <script> |
| | | import importTable from '@/layout/components/importTable.vue' |
| | | import saveDialog from './save' |
| | | export default { |
| | | name: "personPerson", |
| | | data(){ |
| | | return { |
| | | uploadUrl: "/api/blade-cps/employee/import-employee", |
| | | exportUrl: "/api/blade-cps/employee/export-template", |
| | | titleList: [], |
| | | delPersonModel: false, |
| | | searchIcon: "el-icon-search", |
| | |
| | | this.getOrganizationList(); //部门 |
| | | }, |
| | | components: { |
| | | saveDialog |
| | | saveDialog,importTable |
| | | }, |
| | | methods: { |
| | | getExport() { |
| | | this.$HTTP.get(`/api/blade-cps/employee/export-employee?`+this.$TOOL.qsStringify(this.searchData)).then(res=> { |
| | | if(res.code == 200) { |
| | | window.open(res.data.link); |
| | | } |
| | | }) |
| | | }, |
| | | parentIdChange(val) { |
| | | // var $parentId = this.$refs.parentTree.getCurrentNode().title; |
| | | // this.depatmentForm.$parentId = $parentId; |
| | |
| | | line-height: 20px; |
| | | margin-right: 6px; |
| | | } |
| | | .exportBtn { |
| | | margin-left:8px; |
| | | margin-right:8px; |
| | | } |
| | | </style> |
| | |
| | | <div class="right-top"> |
| | | <div class="right-bottom"> |
| | | <el-button type="primary" @click="addPerson">+ 添加岗位</el-button> |
| | | <!-- 导入 --> |
| | | <import-table class="exportBtn" :exportUrl="exportUrl" :uploadUrl="uploadUrl"></import-table> |
| | | <!-- 导出 --> |
| | | <el-button type="primary" @click="getExport">导出</el-button> |
| | | <el-button type="danger" plain @click="delPerson">删除</el-button> |
| | | </div> |
| | | <div> |
| | |
| | | </el-dialog> |
| | | </template> |
| | | <script> |
| | | import importTable from '@/layout/components/importTable.vue' |
| | | import saveDialog from './post' |
| | | export default { |
| | | name: "bakalaka", |
| | | data(){ |
| | | return { |
| | | uploadUrl: "/api/blade-system/post/import-post", |
| | | exportUrl: "/api/blade-system/post/export-template", |
| | | totle: "0", |
| | | postSearchData: { |
| | | current: 1, |
| | |
| | | this.getPost(); |
| | | }, |
| | | components: { |
| | | saveDialog |
| | | saveDialog,importTable |
| | | }, |
| | | methods: { |
| | | getExport() { |
| | | this.$HTTP.get(`/api/blade-system/post/export-post?`+this.$TOOL.qsStringify(this.postSearchData)).then(res=> { |
| | | if(res.code == 200) { |
| | | window.open(res.data.link); |
| | | } |
| | | }) |
| | | }, |
| | | delData(type) { |
| | | this.$HTTP.post(`/api/blade-system/post/remove?ids=${this.selectId}&type=${type}`).then(res=> { |
| | | if(res.code == 200) { |
| | |
| | | line-height: 20px; |
| | | margin-right: 6px; |
| | | } |
| | | .exportBtn { |
| | | margin-left:8px; |
| | | margin-right:8px; |
| | | } |
| | | </style> |