From 8d817b3847f9a96850c1a28f7923940697df7235 Mon Sep 17 00:00:00 2001 From: 李林 <z1292839451@163.com> Date: 星期一, 26 二月 2024 02:12:35 +0800 Subject: [PATCH] 框架搭建 --- src/components/view/registrant-count.vue | 2 src/components/tool/value-table.vue | 90 ++- src/components/view/data-comparison.vue | 23 src/components/view/role-manage.vue | 8 src/components/view/finance-submit.vue | 61 ++ static/js/menu.js | 743 ++++++++++++++++++++++++++++++ src/components/view/person-manage.vue | 8 src/view/404.vue | 8 src/view/index.vue | 264 +++------- src/assets/api/controller.js | 19 src/components/view/enums.vue | 34 src/view/enter.vue | 2 src/components/view/product-count.vue | 16 index.html | 2 src/components/view/fans-submit.vue | 8 src/App.vue | 6 src/components/view/data-reporting.vue | 121 ++++ src/components/view/index-index.vue | 4 18 files changed, 1,129 insertions(+), 290 deletions(-) diff --git a/index.html b/index.html index 2dabd97..c074589 100644 --- a/index.html +++ b/index.html @@ -6,7 +6,7 @@ <meta http-equiv="Expires" CONTENT="0"> <meta http-equiv="Cache-Control" CONTENT="no-cache"> <meta http-equiv="Pragma" CONTENT="no-cache"> - <title>鑳滀簯鏁版嵁绠$悊骞冲彴</title> + <title>LIMS瀹為獙瀹ょ鐞嗙郴缁�</title> <link rel="icon" type="image/x-icon" href="./static/img/logo.png"> </head> <body> diff --git a/src/App.vue b/src/App.vue index 7ebe8dd..ddf8283 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,6 +1,6 @@ <template> - <div id="app"> - <router-view /> + <div id="app" style="overflow: hidden;"> + <router-view/> </div> </template> @@ -135,7 +135,7 @@ color: #333; } - .has-gutter .el-table__cell .cell { + .el-table__header .has-gutter .el-table__cell .cell { font-size: 14px !important; font-weight: 500; } diff --git a/src/assets/api/controller.js b/src/assets/api/controller.js index 5abe1b0..a3738d8 100644 --- a/src/assets/api/controller.js +++ b/src/assets/api/controller.js @@ -23,6 +23,7 @@ selectMenuList: "/role/selectMenuList", //鑾峰彇鑿滃崟 selectPowerByRoleId: "/role/selectPowerByRoleId", //閫氳繃瑙掕壊id鏌ヨ鏉冮檺鍒楄〃 upRole: "/role/upRole", //淇敼瑙掕壊 + getUserMenu: "/user/getUserMenu", //鑾峰彇鐢ㄦ埛鏋氫妇 } const dataReporting = { @@ -40,11 +41,14 @@ downFinanceSubmitFile: "/dataReporting/downFinanceSubmitFile", //瀵煎嚭璐㈠姟涓婃姤 inputFinanceSubmitCsv: "/dataReporting/inputFinanceSubmitCsv", //瀵煎叆璐㈠姟涓婃姤 selectDataComparisonDtoPageList: "/dataReporting/selectDataComparisonDtoPageList", //鑾峰彇鏁版嵁瀵规瘮鍒楄〃 + deleteAllData: "/dataReporting/deleteAllData", //涓�閿垹闄ゆ墍鏈夌殑鏁版嵁涓婃姤 + selectDataReportingForCreateUserNames: "/dataReporting/selectDataReportingForCreateUserNames", //鑾峰彇鏁版嵁涓婃姤鐨勭櫥璁颁汉绛涢�夐」 selectFansSubmitList: "/dataReporting/selectFansSubmitList", //鑾峰彇杩涚矇涓婃姤鍒楄〃 delFansSubmit: "/dataReporting/delFansSubmit", //鍒犻櫎杩涚矇涓婃姤淇℃伅 updateFansSubmit: "/dataReporting/updateFansSubmit", //淇敼杩涚矇涓婃姤淇℃伅 addFansSubmit: "/dataReporting/addFansSubmit", //娣诲姞杩涚矇涓婃姤淇℃伅 + selectVxs: "/dataReporting/selectVxs", //鑾峰彇杩涚矇涓殑寰俊鍙峰垪琛� selectFinanceSubmitList: "/dataReporting/selectFinanceSubmitList", //鑾峰彇璐㈠姟涓婃姤鍒楄〃 delFinanceSubmit: "/dataReporting/delFinanceSubmit", //鍒犻櫎璐㈠姟涓婃姤淇℃伅 @@ -57,15 +61,8 @@ } const enums = { - selectCustomEnumLists: "/enum/selectCustomEnumLists", //鑾峰彇瀹㈡埛鍒楄〃 - selectCustomEnumList: "/enum/selectCustomEnumList", //鑾峰彇瀹㈡埛鏋氫妇 - delCustomEnum: "/enum/delCustomEnum", //鍒犻櫎瀹㈡埛淇℃伅 - updateCustomEnum: "/enum/updateCustomEnum", //淇敼瀹㈡埛淇℃伅 - addCustomEnum: "/enum/addCustomEnum", //娣诲姞瀹㈡埛淇℃伅 - - selectProductEnumLists: "/enum/selectProductEnumLists", //鑾峰彇椤圭洰鍒楄〃 - selectProductEnumList: "/enum/selectProductEnumList", //鑾峰彇椤圭洰鏋氫妇 - delProductEnum: "/enum/delProductEnum", //鍒犻櫎椤圭洰淇℃伅 - updateProductEnum: "/enum/updateProductEnum", //淇敼椤圭洰淇℃伅 - addProductEnum: "/enum/addProductEnum", //娣诲姞椤圭洰淇℃伅 + selectEnumList: "/enum/selectEnumList", //鑾峰彇鏋氫妇鍒楄〃 + addEnum: "/enum/addEnum", //娣诲姞鏋氫妇 + upEnum: "/enum/upEnum", //淇敼鏋氫妇 + delEnum: "/enum/delEnum", //鍒犻櫎鏋氫妇 } diff --git a/src/components/tool/value-table.vue b/src/components/tool/value-table.vue index fadc898..f9400e7 100644 --- a/src/components/tool/value-table.vue +++ b/src/components/tool/value-table.vue @@ -35,7 +35,7 @@ .value-table .el-upload { width: 100%; } - + .value-table .el-upload-dragger { width: 100%; } @@ -46,8 +46,8 @@ <div class="table"> <el-table ref="eltable" :data="tableData" style="width: 100%;" height="100%" tooltip-effect="dark" border @selection-change="selectChange" @select="select" v-loading="loading" @sort-change="sortChange" - @row-click="rowClick"> - <el-table-column type="selection" width="50" v-if="data.showSelect"> + @row-click="rowClick" :show-summary="data.countFleid!=undefined && data.countFleid.length > 0" :summary-method="getSummaries"> + <el-table-column type="selection" width="65" v-if="data.showSelect"> </el-table-column> <el-table-column align="center" type="index" label="搴忓彿" width="70" v-if="data.isIndex"> </el-table-column> @@ -99,9 +99,10 @@ </span> </el-dialog> <el-dialog title="鏂板" :visible.sync="addDia" width="500px"> - <div class="body" v-if="addDia" style="max-height: 600px;overflow-y: auto;padding: 5px 0;"> + <div class="body" v-if="addDia" style="max-height: 550px;overflow-y: auto;padding: 5px 0;"> <el-row v-for="(a, ai) in upHead" :key="ai" style="line-height: 50px;"> - <el-col :span="6" style="text-align: right;"><span class="required-span" v-if="showAddReq(a.label)">* </span>{{a.value}}锛�</el-col> + <el-col :span="6" style="text-align: right;"><span class="required-span" v-if="showAddReq(a.label)">* + </span>{{a.value}}锛�</el-col> <el-col :span="16" :offset="1"> <el-input v-model="upData[a.label]" size="small" clearable :placeholder="`璇疯緭鍏�${a.value}`" v-if="showType(a.label, data.selectField) == null"></el-input> @@ -130,9 +131,9 @@ </el-dialog> <el-dialog title="鏁版嵁瀵煎叆" :visible.sync="uploadDia" width="500px"> <div style="margin: 0 auto;"> - <el-upload ref="upload" drag :action="javaApi + inputUrl" :headers="token" - :file-list="fileList" name="file" :auto-upload="false" accept=".csv" :limit="1" :on-change="beforeUpload" - :on-success="onSuccess" :on-error="onError"> + <el-upload ref="upload" drag :action="javaApi + inputUrl" :headers="token" :file-list="fileList" name="file" + :auto-upload="false" accept=".csv" :limit="1" :on-change="beforeUpload" :on-success="onSuccess" + :on-error="onError" :data="{param: data.uploadStr}"> <i class="el-icon-upload"></i> <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div> </el-upload> @@ -228,7 +229,8 @@ font: '鍒犻櫎', type: 'text' }], - type: [] + type: [], + uploadStr: "" }, tableHead: [], tableData: [], @@ -343,23 +345,23 @@ var str = ob[val] return str == undefined ? null : ob[val].select }, - showAddReq(label){ - if(this.data.requiredAdd==undefined){ + showAddReq(label) { + if (this.data.requiredAdd == undefined) { return } for (var i = 0; i < this.data.requiredAdd.length; i++) { - if(label == this.data.requiredAdd[i]){ + if (label == this.data.requiredAdd[i]) { return true } } return false }, - showUpReq(label){ - if(this.data.requiredUp==undefined){ + showUpReq(label) { + if (this.data.requiredUp == undefined) { return } for (var i = 0; i < this.data.requiredUp.length; i++) { - if(label == this.data.requiredUp[i]){ + if (label == this.data.requiredUp[i]) { return true } } @@ -429,11 +431,11 @@ return } for (var i = 0; i < this.data.requiredUp.length; i++) { - if(this.upData[this.data.requiredUp[i]]==null||this.upData[this.data.requiredUp[i]]==''){ - var list = this.upHead.filter(a=>{ - if(a.label == this.data.requiredUp[i]) return a + if (this.upData[this.data.requiredUp[i]] == null || this.upData[this.data.requiredUp[i]] == '') { + var list = this.upHead.filter(a => { + if (a.label == this.data.requiredUp[i]) return a }) - if(list[0].value == undefined) continue + if (list[0].value == undefined) continue this.$message.error(list[0].value + '鏄繀濉」') return } @@ -500,11 +502,11 @@ return } for (var i = 0; i < this.data.requiredAdd.length; i++) { - if(this.upData[this.data.requiredAdd[i]]==null||this.upData[this.data.requiredAdd[i]]==''){ - var list = this.upHead.filter(a=>{ - if(a.label == this.data.requiredAdd[i]) return a + if (this.upData[this.data.requiredAdd[i]] == null || this.upData[this.data.requiredAdd[i]] == '') { + var list = this.upHead.filter(a => { + if (a.label == this.data.requiredAdd[i]) return a }) - if(list[0].value == undefined) continue + if (list[0].value == undefined) continue this.$message.error(list[0].value + '鏄繀濉」') return } @@ -596,7 +598,7 @@ this.$refs.upload.clearFiles() this.uploadDia = false this.uploading = false - if(response.code==201){ + if (response.code == 201) { this.$message.error(response.message) return } @@ -608,16 +610,50 @@ this.$refs.upload.clearFiles() this.uploading = false }, - isDisabled(label){ - if(this.data.disabledUp==undefined){ + isDisabled(label) { + if (this.data.disabledUp == undefined) { return } for (var i = 0; i < this.data.disabledUp.length; i++) { - if(label == this.data.disabledUp[i]){ + if (label == this.data.disabledUp[i]) { return true } } return false + }, + getSummaries(param) { + const { + columns, + data + } = param; + const sums = []; + columns.forEach((column, index) => { + if (index === 0) { + sums[index] = '鍚堣'; + return; + } + const values = data.map(item => Number(item[column.property])); + if(this.data.countFleid==undefined){ + sums[index] = '' + return + } + if (this.data.countFleid.filter(str=>{ + return str === column.property + }).length > 0) { + sums[index] = values.reduce((prev, curr) => { + const value = Number(curr); + if (!isNaN(value)) { + return prev + curr; + } else { + return prev; + } + }, 0); + sums[index] += ''; + } else { + sums[index] = ''; + } + }); + return sums; } } } diff --git a/src/components/view/data-comparison.vue b/src/components/view/data-comparison.vue index dfe4142..3571fca 100644 --- a/src/components/view/data-comparison.vue +++ b/src/components/view/data-comparison.vue @@ -58,7 +58,7 @@ <div class="search_label">鐧昏鏃ユ湡锛�</div> <div class="search_input"> <el-date-picker size="small" v-model="componentData.entity.createTime" type="date" placeholder="閫夋嫨鏃ユ湡" - value-format="yyyy-MM-dd" clearable></el-date-picker> + value-format="yyyy-MM-dd" :clearable="false" :editable="false"></el-date-picker> </div> </div> <div class="search_thing" style="padding-left: 30px;"> @@ -118,42 +118,29 @@ mm = "0" + mm; } this.componentData.entity.createTime = `${yyyy}-${mm}-${dd} 00:00:00` + this.componentData.entity.name = localStorage.getItem('data_com_name')==undefined?null:localStorage.getItem('data_com_name') }, mounted() { this.entityCopy = this.HaveJson(this.componentData.entity) - // this.selectDataComparisonDtoPageList() }, methods: { refreshTable() { if (this.componentData.entity.name == null || this.componentData.entity.name == '') { - this.$message.error('璐︽埛鍚嶇О鏄繀濉」') + this.$message.error('涓昏处鎴峰悕绉版槸蹇呭~椤�') } else if (this.componentData.entity.comparisonName == null || this.componentData.entity.comparisonName == '') { - this.$message.error('瀵规瘮鐨勮处鎴峰悕绉版槸蹇呭~椤�') + this.$message.error('瀛愯处鎴峰悕绉版槸蹇呭~椤�') } else if (this.componentData.entity.createTime == null) { this.$message.error('鐧昏鏃堕棿鏄繀濉」') } else if (this.componentData.entity.name === this.componentData.entity.comparisonName) { this.$message.error('瀵规瘮鐨勮处鎴蜂笉鑳介噸澶�') } else { + localStorage.setItem('data_com_name', this.componentData.entity.name) this.$refs['ValueTable'].selectList() } }, refresh() { this.componentData.entity = this.HaveJson(this.entityCopy) this.upIndex++ - }, - selectDataComparisonDtoPageList() { - this.$axios.post(this.$api.dataReporting.selectDataComparisonDtoPageList, { - headers: { - 'Content-Type': 'application/json' - } - }).then(res => { - res.data.forEach(a => { - a.isClick = false - a.look = false - }) - this.menu = res.data - this.menuCopy = this.HaveJson(res.data) - }) } } } diff --git a/src/components/view/data-reporting.vue b/src/components/view/data-reporting.vue index 39ae996..effeab1 100644 --- a/src/components/view/data-reporting.vue +++ b/src/components/view/data-reporting.vue @@ -34,6 +34,9 @@ height: calc(100% - 60px - 80px - 10px - 40px); padding: 20px; } + .el-radio-group{ + width: 100%; + } </style> <style> .data_reporting .data_reporting_dia .el-dialog__body { @@ -55,7 +58,7 @@ <el-row class="title"> <el-col :span="12" style="padding-left: 20px;">鏁版嵁涓婃姤</el-col> <el-col :span="12" style="text-align: right;padding-right: 8px;"> - <el-button size="medium" @click="openUpload()" v-if="inPower"> + <el-button size="medium" @click="chooseDia = true" v-if="inPower"> <i class="el-icon-upload2" style="color: #3A7BFA;"></i> <span style="color: #3A7BFA;">瀵煎叆</span> </el-button> @@ -64,6 +67,7 @@ <span style="color: #3A7BFA;">瀵煎嚭</span> </el-button> <el-button size="medium" type="primary" @click="opeaAdd" v-if="addPower">鏂板</el-button> + <el-button size="medium" type="danger" @click="delNowAll" v-if="delAllPower">涓�閿垹闄�</el-button> </el-col> </el-row> </div> @@ -72,14 +76,16 @@ <div class="search_label">绯荤粺鏃ユ湡锛�</div> <div class="search_input"> <el-date-picker size="small" v-model="componentData.entity.createTime" type="date" placeholder="閫夋嫨鏃ユ湡" - value-format="yyyy-MM-dd HH:mm:ss" clearable></el-date-picker> + value-format="yyyy-MM-dd HH:mm:ss" :clearable="false" :editable="false" @change="refreshTable"></el-date-picker> </div> </div> <div class="search_thing"> <div class="search_label">鐧昏浜猴細</div> <div class="search_input"> - <el-input size="small" v-model="componentData.entity.registrant" clearable placeholder="鐧昏浜�" - @keyup.enter.native="refreshTable()"></el-input> + <el-select size="small" style="width: 100%;" placeholder="鐧昏浜�" v-model="componentData.entity.registrant"> + <el-option :value="null" label="鍏ㄩ儴"></el-option> + <el-option v-for="(a, ai) in userNames" :key="ai" :label="a" :value="a"></el-option> + </el-select> </div> </div> <div class="search_thing"> @@ -101,7 +107,7 @@ :delUrl="$api.dataReporting.delDataReporting" :componentData="componentData" :key="upIndex" @upRole="upRole" :downUrl="$api.dataReporting.downDataReportingFile"/> </div> <el-dialog title="涓婃姤淇敼" :visible.sync="upDia" width="700px" class="data_reporting_dia"> - <div class="body" v-if="upDia"> + <div class="body" v-if="upDia" style="max-height: 550px;overflow-y: auto;"> <el-row style="line-height: 50px;"> <el-col :span="4" style="text-align: right;padding-right: 8px;">绯荤粺鏃ユ湡</el-col> <el-col :span="7"> @@ -212,6 +218,12 @@ <el-input v-model="upData.remark" size="small"></el-input> </el-col> </el-row> + <el-row style="line-height: 50px;"> + <el-col :span="4" style="text-align: right;padding-right: 8px;">寰俊鍙�</el-col> + <el-col :span="7"> + <el-input v-model="upData.vxCard" size="small"></el-input> + </el-col> + </el-row> </div> <span slot="footer" class="dialog-footer" style="margin-right: 18px;"> <el-button type="primary" @click="saveUpData" :loading="upLoad">纭� 瀹�</el-button> @@ -222,7 +234,7 @@ <div style="margin: 0 auto;"> <el-upload ref="upload" drag :action="javaApi + $api.dataReporting.inputCsv" :headers="token" :file-list="fileList" name="file" :auto-upload="false" accept=".csv" :limit="1" :on-change="beforeUpload" - :on-success="onSuccess" :on-error="onError"> + :on-success="onSuccess" :on-error="onError" :data="{param: componentData.uploadStr}"> <i class="el-icon-upload"></i> <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div> </el-upload> @@ -230,6 +242,19 @@ <span slot="footer" class="dialog-footer"> <el-button @click="uploadDia = false">鍙� 娑�</el-button> <el-button type="primary" @click="submitUpload()">涓� 浼�</el-button> + </span> + </el-dialog> + <el-dialog title="璇烽�夋嫨鏁版嵁涓婃姤鐨勫井淇″彿" :visible.sync="chooseDia" width="500px"> + <div class="body" v-if="chooseDia" style="max-height: 550px;overflow-y: auto;padding: 5px 0;"> + <el-radio-group v-model="vx"> + <el-col :span="8" v-for="(a, ai) in vxs" :key="ai" style="margin-bottom: 5px;"> + <el-radio border size="small" :label="a.vx">{{a.vx}}</el-radio> + </el-col> + </el-radio-group> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="chooseDia = false">鍙栨秷</el-button> + <el-button type="primary" @click="openUpload()">涓嬩竴姝�</el-button> </span> </el-dialog> </div> @@ -250,11 +275,11 @@ product: null, orderBy: { field: 'id', - order: 'desc' + order: 'asc' } }, isIndex: true, - showSelect: true, + showSelect: false, select: true, do: [{ id: 'update', @@ -271,8 +296,14 @@ method: 'doDiy' }], tagField: {}, - selectField: {}, - requiredAdd:['name2','agent','channel','product','showNum','click','accountConsumption'], + selectField: { + vxCard: { + select: [] + } + }, + requiredAdd:['name2','agent','channel','product','showNum','click','accountConsumption','vxCard'], + countFleid: ['fansAdd'], + uploadStr: "" }, entityCopy: {}, upIndex: 0, @@ -287,7 +318,12 @@ addPower: true, token: null, inPower: true, - outPower: true + outPower: true, + delAllPower: true, + userNames: [], + vxs: [], + chooseDia: false, + vx: null } }, created() { @@ -312,14 +348,19 @@ this.token = { 'token': sessionStorage.getItem('token') } + this.selectDataReportingForCreateUserNames() + this.selectVxs() }, methods: { refreshTable() { this.$refs['ValueTable'].selectList() + this.selectDataReportingForCreateUserNames() + this.selectVxs() }, refresh() { this.componentData.entity = this.HaveJson(this.entityCopy) this.upIndex++ + this.selectDataReportingForCreateUserNames() }, upRole(row) { this.upData = this.HaveJson(row) @@ -358,6 +399,7 @@ let add = false let inPower = false let outPower = false + let delAllPower = false for (var i = 0; i < power.length; i++) { if (power[i].menuMethod == 'upDataReporting') { up = true @@ -374,6 +416,9 @@ if (power[i].menuMethod == 'downDataReportingFile') { outPower = true } + if (power[i].menuMethod == 'deleteAllData') { + delAllPower = true + } } if (!del) { this.componentData.do.splice(1, 1) @@ -384,8 +429,14 @@ this.addPower = add this.inPower = inPower this.outPower = outPower + this.delAllPower = delAllPower }, openUpload() { + if(this.vx == null || this.vx == undefined) { + this.$message.error('璇烽�夋嫨鏁版嵁涓婃姤鐨勫井淇″彿') + return + } + this.componentData.uploadStr = this.vx this.uploadDia = true }, beforeUpload(file, fileList) { @@ -402,11 +453,13 @@ } this.uploading = true this.$refs.upload.submit(); + this.uploadDia = false }, onSuccess(response, file, fileList) { this.$refs.upload.clearFiles() this.uploadDia = false this.uploading = false + this.chooseDia = false if(response.code==201){ this.$message.error(response.message) return @@ -421,6 +474,52 @@ }, opeaAdd() { this.$refs.ValueTable.openAddDia(this.$api.dataReporting.addDataReporting); + }, + delNowAll(){ + this.$confirm('鏄惁鍒犻櫎 '+this.componentData.entity.createTime.split(' ')[0]+' 鏁版嵁鏃堕棿鐨勫叏閮ㄦ暟鎹�?', "璀﹀憡", { + confirmButtonText: "纭畾", + cancelButtonText: "鍙栨秷", + type: "error" + }).then(() => { + this.uploading = true + this.$axios.post(this.$api.dataReporting.deleteAllData, { + date: this.componentData.entity.createTime.split(' ')[0] + }).then(res => { + this.uploading = false + if (res.code === 201) { + return + } + this.$message.success('鍒犻櫎鎴愬姛') + this.refreshTable() + }) + }).catch(() => {}) + }, + selectDataReportingForCreateUserNames(){ + this.$axios.post(this.$api.dataReporting.selectDataReportingForCreateUserNames,{ + time: this.componentData.entity.createTime + }).then(res => { + this.userNames = res.data + }) + }, + selectVxs(){ + this.$axios.get(this.$api.dataReporting.selectVxs,{ + params:{ + time: this.componentData.entity.createTime + } + }).then(res => { + if (res.code === 201) { + return + } + this.vxs = res.data + var str = [] + res.data.forEach(a => { + str.push({ + label: a.vx, + value: a.vx + }) + }) + this.componentData.selectField.vxCard.select = str + }) } } } diff --git a/src/components/view/custom-enum.vue b/src/components/view/enums.vue similarity index 74% rename from src/components/view/custom-enum.vue rename to src/components/view/enums.vue index fe6d9c4..13cb90b 100644 --- a/src/components/view/custom-enum.vue +++ b/src/components/view/enums.vue @@ -40,7 +40,7 @@ <div class="role_manage"> <div> <el-row class="title"> - <el-col :span="12" style="padding-left: 20px;">瀹㈡埛绠$悊</el-col> + <el-col :span="12" style="padding-left: 20px;">鏋氫妇绠$悊</el-col> <el-col :span="12" style="text-align: right;"> <el-button size="medium" type="primary" @click="openAdd" v-if="addPower">鏂板</el-button> </el-col> @@ -48,14 +48,14 @@ </div> <div class="search"> <div class="search_thing"> - <div class="search_label">瀹㈡埛鍚嶇О锛�</div> + <div class="search_label">鏍囬锛�</div> <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable - v-model="componentData.entity.name" @keyup.enter.native="refreshTable()"></el-input></div> + v-model="componentData.entity.label" @keyup.enter.native="refreshTable()"></el-input></div> </div> <div class="search_thing"> - <div class="search_label">鍏徃鍚嶇О锛�</div> + <div class="search_label">鍒嗙被锛�</div> <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable - v-model="componentData.entity.company" @keyup.enter.native="refreshTable()"></el-input></div> + v-model="componentData.entity.category" @keyup.enter.native="refreshTable()"></el-input></div> </div> <div class="search_thing" style="padding-left: 30px;"> <el-button size="small" @click="refresh()">閲� 缃�</el-button> @@ -63,7 +63,7 @@ </div> </div> <div class="table"> - <ValueTable ref="ValueTable" :url="$api.enums.selectCustomEnumLists" :upUrl="$api.enums.updateCustomEnum" :delUrl="$api.enums.delCustomEnum" :componentData="componentData" :key="upIndex"/> + <ValueTable ref="ValueTable" :url="$api.enums.selectEnumList" :upUrl="$api.enums.upEnum" :delUrl="$api.enums.delEnum" :componentData="componentData" :key="upIndex"/> </div> </div> </template> @@ -78,22 +78,22 @@ return { componentData: { entity: { - name: null, - company: null, + label: null, + category: null, orderBy: { field: 'id', order: 'asc' } }, isIndex: true, - showSelect: true, - select: true, + showSelect: false, + select: false, do: [{ id: 'update', font: '缂栬緫', type: 'text', method: 'doDiy', - field:[] + field:['createUserName','updateUserName'] },{ id: 'delete', font: '鍒犻櫎', @@ -102,8 +102,8 @@ }], tagField: {}, selectField: {}, - requiredAdd:['company','name'], - requiredUp:['company','name'] + requiredAdd:['category','label','value'], + requiredUp:['category','label','value'] }, entityCopy: {}, upIndex: 0, @@ -124,7 +124,7 @@ this.upIndex++ }, openAdd(){ - this.$refs.ValueTable.openAddDia(this.$api.enums.addCustomEnum); + this.$refs.ValueTable.openAddDia(this.$api.enums.addEnum); }, // 鏉冮檺鍒嗛厤 getPower(){ @@ -133,13 +133,13 @@ let del = false let add = false for (var i = 0; i < power.length; i++) { - if(power[i].menuMethod=='updateCustomEnum'){ + if(power[i].menuMethod=='upEnum'){ up = true } - if(power[i].menuMethod=='delCustomEnum'){ + if(power[i].menuMethod=='delEnum'){ del = true } - if(power[i].menuMethod=='addCustomEnum'){ + if(power[i].menuMethod=='addEnum'){ add = true } } diff --git a/src/components/view/fans-submit.vue b/src/components/view/fans-submit.vue index c540f67..821fb1d 100644 --- a/src/components/view/fans-submit.vue +++ b/src/components/view/fans-submit.vue @@ -59,7 +59,7 @@ <div class="search_label">绯荤粺鏃ユ湡锛�</div> <div class="search_input"> <el-date-picker size="small" v-model="componentData.entity.createTime" type="date" placeholder="閫夋嫨鏃ユ湡" - value-format="yyyy-MM-dd HH:mm:ss" clearable></el-date-picker> + value-format="yyyy-MM-dd HH:mm:ss" :clearable="false" :editable="false" @change="refreshTable()"></el-date-picker> </div> </div> <div class="search_thing"> @@ -143,9 +143,9 @@ select: [] } }, - requiredAdd: ['custom', 'product', 'fansAdd'], - requiredUp: ['custom', 'product', 'fansAdd'], - disabledUp: ['custom','product'] + requiredAdd: ['product', 'fansAdd', 'vx'], + requiredUp: ['product', 'fansAdd', 'vx'], + disabledUp: ['product', 'vx'] }, entityCopy: {}, upIndex: 0, diff --git a/src/components/view/finance-submit.vue b/src/components/view/finance-submit.vue index 1d60a3b..ff389b0 100644 --- a/src/components/view/finance-submit.vue +++ b/src/components/view/finance-submit.vue @@ -34,6 +34,9 @@ height: calc(100% - 60px - 80px - 10px - 40px); padding: 20px; } + .el-radio-group{ + width: 100%; + } </style> <template> @@ -42,7 +45,7 @@ <el-row class="title"> <el-col :span="12" style="padding-left: 20px;">璐㈠姟涓婃姤</el-col> <el-col :span="12" style="text-align: right;"> - <el-button size="medium" @click="$refs.ValueTable.openUpload()" v-if="inPower"> + <el-button size="medium" @click="chooseDia = true" v-if="inPower"> <i class="el-icon-upload2" style="color: #3A7BFA;"></i> <span style="color: #3A7BFA;">瀵煎叆</span> </el-button> @@ -59,7 +62,7 @@ <div class="search_label">绯荤粺鏃ユ湡锛�</div> <div class="search_input"> <el-date-picker size="small" v-model="componentData.entity.createTime" type="date" placeholder="閫夋嫨鏃ユ湡" - value-format="yyyy-MM-dd HH:mm:ss" clearable></el-date-picker> + value-format="yyyy-MM-dd HH:mm:ss" :clearable="false" :editable="false" @change="refreshTable()"></el-date-picker> </div> </div> <div class="search_thing"> @@ -79,6 +82,19 @@ :upUrl="$api.dataReporting.updateFinanceSubmit" :delUrl="$api.dataReporting.delFinanceSubmit" :componentData="componentData" :key="upIndex" :downUrl="$api.dataReporting.downFinanceSubmitFile" :inputUrl="$api.dataReporting.inputFinanceSubmitCsv"/> </div> + <el-dialog title="璇烽�夋嫨璐㈠姟涓婃姤鐨勫璞�" :visible.sync="chooseDia" width="500px"> + <div class="body" v-if="chooseDia" style="max-height: 550px;overflow-y: auto;padding: 5px 0;"> + <el-radio-group v-model="userId"> + <el-col :span="8" v-for="(a, ai) in users" :key="ai" style="margin-bottom: 2px;"> + <el-radio border size="small" :label="a.id">{{a.name}}</el-radio> + </el-col> + </el-radio-group> + </div> + <span slot="footer" class="dialog-footer"> + <el-button @click="chooseDia = false">鍙栨秷</el-button> + <el-button type="primary" @click="goDown">涓嬩竴姝�</el-button> + </span> + </el-dialog> </div> </template> @@ -107,7 +123,7 @@ font: '缂栬緫', type: 'text', method: 'doDiy', - field: ['createUserName'] + field: ['createUserName','瀵硅薄=param'] }, { id: 'delete', font: '鍒犻櫎', @@ -121,10 +137,15 @@ }, custom: { select: [] + }, + param:{ + select:[] } }, - requiredAdd: ['company', 'name', 'employeeRebate'], - requiredUp: ['company', 'name', 'employeeRebate'] + requiredAdd: ['company', 'name', 'employeeRebate','param'], + requiredUp: ['employeeRebate'], + disabledUp: ['company', 'name','param'], + uploadStr: "" }, entityCopy: {}, upIndex: 0, @@ -132,7 +153,10 @@ custom: [], addPower: true, inPower: true, - outPower: true + outPower: true, + chooseDia: false, + users: [], + userId: null } }, created() { @@ -153,6 +177,7 @@ this.selectProductEnumList() this.selectCustomEnumList() this.getPower() + this.getUserList() }, methods: { refreshTable() { @@ -225,6 +250,30 @@ this.addPower = add this.inPower = inPower this.outPower = outPower + }, + getUserList(){ + this.$axios.get(this.$api.user.getUserMenu).then(res => { + if (res.code === 201) { + return + } + this.users = res.data + var str = [] + res.data.forEach(a => { + str.push({ + label: a.name, + value: a.id + }) + }) + this.componentData.selectField.param.select = str + }) + }, + goDown(){ + if(this.userId == null || this.userId == undefined) { + this.$message.error('璇烽�夋嫨璐㈠姟涓婃姤鐨勫璞�') + return + } + this.componentData.uploadStr = this.userId + this.$refs.ValueTable.openUpload() } } } diff --git a/src/components/view/index-index.vue b/src/components/view/index-index.vue index 5f6a141..b7b059a 100644 --- a/src/components/view/index-index.vue +++ b/src/components/view/index-index.vue @@ -323,9 +323,9 @@ setInterval(() => { this.nowTime() }, 1000) - setInterval(() => { + /* setInterval(() => { this.getDataList() - }, 60 * 1000) + }, 60 * 1000) */ }, methods: { nowTime() { diff --git a/src/components/view/person-manage.vue b/src/components/view/person-manage.vue index 8470967..6b6a58d 100644 --- a/src/components/view/person-manage.vue +++ b/src/components/view/person-manage.vue @@ -48,7 +48,7 @@ </div> <div class="search"> <div class="search_thing"> - <div class="search_label">瀹㈡埛鍚嶇О锛�</div> + <div class="search_label">鐢ㄦ埛鍚嶏細</div> <div class="search_input"><el-input size="small" placeholder="璇疯緭鍏�" clearable v-model="componentData.entity.name" @keyup.enter.native="refreshTable()"></el-input></div> </div> @@ -97,9 +97,9 @@ order: 'asc' } }, - isIndex: false, - showSelect: true, - select: true, + isIndex: true, + showSelect: false, + select: false, do: [{ id: 'update', font: '缂栬緫', diff --git a/src/components/view/product-count.vue b/src/components/view/product-count.vue index 0328332..cdc867b 100644 --- a/src/components/view/product-count.vue +++ b/src/components/view/product-count.vue @@ -51,15 +51,10 @@ </div> <div class="search"> <div class="search_thing"> - <div class="search_label">绯荤粺鏃ユ湡锛�</div> - <div class="search_input"> - <el-date-picker size="small" v-model="componentData.entity.updateTime" type="date" placeholder="閫夋嫨鏃ユ湡" value-format="yyyy-MM-dd HH:mm:ss" clearable></el-date-picker> - </div> - </div> - <div class="search_thing"> <div class="search_label">鐧昏鏃ユ湡锛�</div> <div class="search_input"> - <el-date-picker size="small" v-model="componentData.entity.createTime" type="date" placeholder="閫夋嫨鏃ユ湡" value-format="yyyy-MM-dd HH:mm:ss" clearable></el-date-picker> + <el-date-picker size="small" v-model="componentData.entity.createTime" type="date" placeholder="閫夋嫨鏃ユ湡" + value-format="yyyy-MM-dd HH:mm:ss" :clearable="false" :editable="false"></el-date-picker> </div> </div> <div class="search_thing"> @@ -77,7 +72,8 @@ </div> </div> <div class="table"> - <ValueTable ref="ValueTable" :url="$api.dataReporting.selectProductCountDtoPageList" :componentData="componentData" :key="upIndex" :downUrl="$api.dataReporting.downProductCountFile"/> + <ValueTable ref="ValueTable" :url="$api.dataReporting.selectProductCountDtoPageList" + :componentData="componentData" :key="upIndex" :downUrl="$api.dataReporting.downProductCountFile" /> </div> </div> </template> @@ -141,8 +137,8 @@ this.componentData.entity = this.HaveJson(this.entityCopy) this.upIndex++ }, - selectProductEnumList(){ - this.$axios.get(this.$api.enums.selectProductEnumList).then(res=>{ + selectProductEnumList() { + this.$axios.get(this.$api.enums.selectProductEnumList).then(res => { this.product = res.data }) }, diff --git a/src/components/view/registrant-count.vue b/src/components/view/registrant-count.vue index 4998eb2..5f89802 100644 --- a/src/components/view/registrant-count.vue +++ b/src/components/view/registrant-count.vue @@ -97,7 +97,7 @@ name: null, product: null, orderBy: { - field: 'update_time', + field: 'create_time', order: 'desc' } }, diff --git a/src/components/view/role-manage.vue b/src/components/view/role-manage.vue index a306f66..7fdf0e2 100644 --- a/src/components/view/role-manage.vue +++ b/src/components/view/role-manage.vue @@ -93,6 +93,14 @@ <div style="padding: 3px 30px;" v-for="(a, ai) in menu" :key="ai" v-if="a.type=='鍒犻櫎'"><el-checkbox v-model="a.isClick" :disabled="type=='鏌ョ湅'">{{a.remark}}</el-checkbox></div> </el-collapse-item> + <el-collapse-item title="瀵煎叆"> + <div style="padding: 3px 30px;" v-for="(a, ai) in menu" :key="ai" v-if="a.type=='瀵煎叆'"><el-checkbox + v-model="a.isClick" :disabled="type=='鏌ョ湅'">{{a.remark}}</el-checkbox></div> + </el-collapse-item> + <el-collapse-item title="瀵煎嚭"> + <div style="padding: 3px 30px;" v-for="(a, ai) in menu" :key="ai" v-if="a.type=='瀵煎嚭'"><el-checkbox + v-model="a.isClick" :disabled="type=='鏌ョ湅'">{{a.remark}}</el-checkbox></div> + </el-collapse-item> </el-collapse> </div> <span slot="footer" class="dialog-footer"> diff --git a/src/view/404.vue b/src/view/404.vue index 6b00e13..8d16bfa 100644 --- a/src/view/404.vue +++ b/src/view/404.vue @@ -3,9 +3,9 @@ <div class="text-center"> <div class="error mx-auto" data-text="404">404</div> <p class="lead text-gray-800 mb-5">鎵句笉鍒颁綘瑕佽闂殑椤甸潰</p> - <p class="text-gray-500 mb-0">椤甸潰涓嶅瓨鍦�</p> + <!-- <p class="text-gray-500 mb-0">椤甸潰涓嶅瓨鍦�</p> <p><a href="/">杩斿洖棣栭〉</a></p> - <el-button @click="back" type="danger" round>杩斿洖涓婁竴椤�</el-button> + <el-button @click="back" type="danger" round>杩斿洖涓婁竴椤�</el-button> --> </div> </div> </template> @@ -31,8 +31,8 @@ }; let icon = "../../static/img/logo.png"; // 鍥剧墖鍦板潃 changeFavicon(icon); // 鍔ㄦ�佷慨鏀圭綉绔欏浘鏍� - let title = "璁块棶鍑洪敊"; // 缃戠珯鏍囬 - document.title = title; // 鍔ㄦ�佷慨鏀圭綉绔欐爣棰� + // let title = "璁块棶鍑洪敊"; // 缃戠珯鏍囬 + // document.title = title; // 鍔ㄦ�佷慨鏀圭綉绔欐爣棰� }, methods: { back() { diff --git a/src/view/enter.vue b/src/view/enter.vue index 4e01d55..935d27a 100644 --- a/src/view/enter.vue +++ b/src/view/enter.vue @@ -102,7 +102,7 @@ <div class="right"> <div style="width: calc(100% - 100px * 2);"> <div class="title_big">娆㈣繋鎮ㄧ櫥褰曪紒</div> - <div class="title_small">灞变笢鑳滀簯鏁版嵁绠$悊骞冲彴锛圖MS锛�</div> + <div class="title_small">LIMS瀹為獙瀹ょ鐞嗙郴缁�</div> <el-form :model="ruleForm" :rules="rules" ref="ruleForm" class="elform" :hide-required-asterisk="true"> <el-form-item label="鐢ㄦ埛鍚�" prop="account"> <el-input v-model="ruleForm.account" placeholder="璇疯緭鍏ヨ处鍙�" clearable></el-input> diff --git a/src/view/index.vue b/src/view/index.vue index 90e3a44..40bd6df 100644 --- a/src/view/index.vue +++ b/src/view/index.vue @@ -9,7 +9,7 @@ .title { width: 100%; - height: 58px; + height: 48px; display: flex; align-items: center; padding: 0 30px; @@ -25,7 +25,7 @@ } .title .label { - font-size: 16px; + font-size: 14px; text-align: center; width: calc(100% - 130px - 200px); } @@ -54,7 +54,7 @@ } .left { - height: calc(100vh - 58px - 40px); + height: calc(100vh - 48px - 40px); background-color: #3A7BFA; display: flex; align-items: center; @@ -78,7 +78,7 @@ color: #fff; width: 68px; height: 68px; - margin: 12px 0; + margin: 8px 0; cursor: pointer; display: flex; align-items: center; @@ -97,12 +97,12 @@ } .left .box i { - font-size: 28px; + font-size: 24px; margin-bottom: 4px; } .left .box div { - font-size: 14px; + font-size: 12px; } .small_menu { @@ -113,13 +113,13 @@ color: #3A7BFA; } - .small_menu p { - padding: 12px 15px; + .small_menu .p { + padding: 6px 10px; cursor: pointer; } - .small_menu p:hover { - background-color: rgba(0, 0, 0, 0.05); + .small_menu .p:hover { + color: #3A7BFA; } .small_menu i { @@ -127,17 +127,17 @@ } .small_menu span { - font-size: 14px; + font-size: 12px; } .right { - height: calc(100vh - 58px); + height: calc(100vh - 48px); transition: .3s; } .tag { width: 100%; - height: 36px; + height: 32px; background: rgb(255, 255, 255); opacity: 0.8; box-shadow: 0px 4px 16px rgba(0, 0, 0, 0.1); @@ -163,7 +163,7 @@ .tag>.el-icon-s-unfold, .el-icon-s-fold, .el-icon-delete { - font-size: 18px; + font-size: 16px; cursor: pointer; margin: 0 8px; } @@ -174,21 +174,26 @@ align-items: center; display: flex; overflow-x: auto; + overflow-y: hidden; + } + + .tabs::-webkit-scrollbar { + height: 4px; } .tab { cursor: pointer; - font-size: 14px; + font-size: 12px; margin: 0 8px; - line-height: 32px; + line-height: 28px; transition: 0.3s; border-top: 2px solid transparent; border-bottom: 2px solid transparent; user-select: none; flex-shrink: 0; } - - .tab:hover{ + + .tab:hover { color: #3A7BFA; } @@ -208,7 +213,7 @@ } .component_view { - height: calc(100vh - 94px); + height: calc(100vh - 84px); width: calc(100% - 52px); padding: 0 26px; background: rgb(245, 247, 251); @@ -226,23 +231,32 @@ left: 0; display: none; z-index: 999; + padding: 0; } .right_key_menu li { list-style-type: none; - padding: 5px 0; + padding: 6px 0; padding-left: 10px; - font-size: 0.9rem; - transition: .5s; + font-size: 12px; + transition: .3s; cursor: pointer; } - - .right_key_menu li i{ - margin-right: 20px; + + .right_key_menu li i { + margin-right: 14px; } .right_key_menu li:hover { - background-color: #dedede; + background-color: #eeeeee; + } + + .group { + font-size: 12px; + color: #ed940d; + background-color: transparent !important; + cursor: auto !important; + margin: 8px 12px; } </style> <style></style> @@ -252,30 +266,38 @@ <div class="logo"> <!-- <img src="../../static/img/logo 1.png" /> --> </div> - <div class="label">灞变笢鑳滀簯鏁版嵁绠$悊绯荤粺</div> + <div class="label">LIMS瀹為獙瀹ょ鐞嗙郴缁�</div> <div class="user"> <el-avatar :size="26">{{ userName.substring(0, 1) }}</el-avatar> <span>{{ userName }}</span> - <img src="../../static/img/閫�鍑�.png" @click="out" /> + <img src="../../static/img/閫�鍑�.png" @click="out" title="閫�鍑鸿处鍙�" /> </div> </div> <div class="left" :style="`width: ${leftOpen?'92':'0'}px;`"> <div v-for="(a, ai) in menu" :key="ai"> - <div :class="`box ${activeBox == a.c[0].k ? 'active_box' : ''}`" @click="addTab(a.c[0], -1)" v-if="a.self && getPower(a.c[0].p)"> + <div :class="`box ${activeBox == a.c[0].k ? 'active_box' : ''}`" @click="addTab(a.c[0], -1)" + v-if="a.self && getPower(a.c[0].p)"> <i :class="a.i"></i> <div>{{a.v}}</div> </div> - <el-popover placement="right-start" width="90" trigger="click" v-if="a.self != true && getPower(a.p)"> + <el-popover placement="right-start" trigger="click" v-if="a.self != true && getPower(a.p)"> <div :class="`box ${activeBox == a.k ? 'active_box' : ''}`" slot="reference"> <i :class="a.i"></i> - <div>{{ a.v }}</div> + <div style="text-align: center;">{{ a.v }}</div> </div> <div class="small_menu"> - <p v-for="(b, bi) in a.c" :key="bi" :class="activeP == b.k ? 'active_p' : ''" @click="addTab(b, a.k)" v-if="getPower(b.p)"> - <i :class="b.i"></i> - <span>{{ b.v }}</span> - </p> + <div v-for="(b, bi) in a.c" :key="bi"> + <el-col v-if="groupMenu(b.g, a.c[bi - 1])" class="group">{{b.g}}</el-col> + <el-col :span="groupCount(b.g, a.c)" :class="activeP == b.k ? 'active_p p' : 'p'" + @click.native="addTab(b, a.k)" v-if="getPower(b.p)"> + <p :title="b.v" style="white-space: nowrap;text-overflow: ellipsis;overflow: hidden;"> + <i :class="b.i"></i> + <span>{{ b.v }}</span> + </p> + </el-col> + </div> </div> + </el-popover> </el-popover> </div> </div> @@ -292,15 +314,15 @@ <i class="el-icon-delete" @click="allDel" title="鍒犻櫎鎵�鏈夋爣绛鹃〉"></i> </div> <div class="component_view"> - <component class="com_index" v-for="(com, index) in tabs" :is="com.u" :key="com.k" - v-show="com.k == tabActive" :ref="`com-${com.k}`"> + <component class="com_index" v-for="(com, index) in tabs" :is="com.u" :key="com.k" v-show="com.k == tabActive" + :ref="`com-${com.k}`"> </component> </div> </div> <!-- 鍙抽敭鑿滃崟 --> <div class="right_key_menu"> <el-col :span="24"> - <el-card :body-style="{padding: '6px 0'}"> + <el-card :body-style="{padding: '6px'}"> <ul> <li style="color: red;" @click="removeTab(activeIndex)"><i class="el-icon-close"></i>鍏抽棴</li> <el-divider></el-divider> @@ -323,151 +345,34 @@ const componentConfig = requireComponent(fileName); comObj[names] = componentConfig.default || componentConfig; }); + import menu from '../../static/js/menu.js'; + import menus from '../../static/js/menu.js' + import nullFace from '../view/404.vue' + comObj['nullFace'] = nullFace export default { components: comObj, data() { return { userName: "value", leftOpen: true, - menu: [{ - k: 0, - v: "棣栭〉", - i: "font icon-shouyefill", - self: true, - c: [{ - k: 0, - v: "棣栭〉", - i: "font icon-shouyefill", - u: "index-index" - }] - }, - { - k: 2, - v: "鏁版嵁涓婃姤", - i: "font icon-a-Group1118", - self: true, - c: [{ - k: 2, - v: "鏁版嵁涓婃姤", - i: "font icon-a-Group1118", - u: "data-reporting", - p: "selectDataReportingList" - }] - }, - { - k: 3, - v: "鏁版嵁缁熻", - i: "font icon-a-Group1120", - p: "selectProductCountDtoPageList selectRegistrantCountDtoPageList", - c: [{ - k: 9, - v: "椤圭洰鏁版嵁缁熻", - i: "font icon-24gl-clipboardList", - u: "product-count", - p: "selectProductCountDtoPageList" - },{ - k: 10, - v: "鍛樺伐鏁版嵁缁熻", - i: "font icon-24gl-clipboardList", - u: "registrant-count", - p: "selectRegistrantCountDtoPageList" - },{ - k: 12, - v: "鍛樺伐鏁版嵁瀵规瘮", - i: "font icon-24gl-clipboardList", - u: "data-comparison", - p: "selectDataComparisonDtoPageList" - }] - }, - { - k: 5, - v: "杩涚矇涓婃姤", - i: "font icon-a-Group1122", - self: true, - c: [{ - k: 5, - v: "杩涚矇涓婃姤", - i: "font icon-a-Group1122", - u: "fans-submit", - p: "selectFansSubmitList" - }] - }, - { - k: 6, - v: "璐㈠姟涓婃姤", - i: "font icon-a-Group1236", - self: true, - c: [{ - k: 6, - v: "璐㈠姟涓婃姤", - i: "font icon-a-Group1236", - u: "finance-submit", - p: "selectFinanceSubmitList" - }] - }, - { - k: 7, - v: "瑙掕壊绠$悊", - i: "font icon-a-Group1126", - self: true, - c: [{ - k: 7, - v: "瑙掕壊绠$悊", - i: "font icon-a-Group1126", - u: "role-manage", - p: "selectRoleLists" - }] - }, - { - k: 4, - v: "鏁版嵁瀛楀吀", - i: "font icon-odbc-full", - p: "selectCustomEnumLists selectProductEnumLists", - c: [{ - k: 4, - v: "瀹㈡埛绠$悊", - i: "font icon-24gl-clipboardList", - u: "custom-enum", - p: "selectCustomEnumLists" - }, - { - k: 11, - v: "椤圭洰绠$悊", - i: "font icon-24gl-clipboardList", - u: "product-enum", - p: "selectProductEnumLists" - } - ] - }, - { - k: 8, - v: "浜哄憳绠$悊", - i: "font icon-a-Group1124", - self: true, - c: [{ - k: 8, - v: "浜哄憳绠$悊", - i: "font icon-a-Group1124", - u: "person-manage", - p: "selectUserList" - }] - } - ], + menu: [], activeBox: 0, activeP: 0, tabActive: 0, tabs: [{ k: 0, - v: "棣栭〉", + v: "涓汉棣栭〉", i: "font icon-a-Group1124", - u: "index-index" + u: "nullFace" }], upIndex: 0, activeIndex: 0, power: [] }; }, - created() {}, + created() { + this.menu = menus.menu + }, mounted() { this.userName = JSON.parse(localStorage.getItem("user")).name; this.power = JSON.parse(sessionStorage.getItem('power')) @@ -485,6 +390,7 @@ } }); if (num == -1) { + if(ob.u == "") ob.u = "nullFace" this.tabs.push(ob); } }, @@ -542,23 +448,41 @@ }) }, // 鍒锋柊琛ㄦ牸鍐呭 - refreshTable(){ + refreshTable() { var thing = this.tabs.splice(this.activeIndex, 1) - setTimeout(()=>{ + setTimeout(() => { this.tabs.splice(this.activeIndex, 0, thing[0]) }, 0) }, // 鏉冮檺鍒嗛厤 - getPower(p){ - if(p==undefined) return true + getPower(p) { + if (p == undefined || p == '') return true let str = p.split(' ') for (var a = 0; a < str.length; a++) { for (var i = 0; i < this.power.length; i++) { - if(this.power[i].menuMethod == str[a]) { + if (this.power[i].menuMethod == str[a]) { return true } } } + }, + // 鑿滃崟鏍忓垎绫诲垽鏂� + groupMenu(g1, g2) { + if (g1 == undefined) return false + if (g2 == undefined) return true + if (g1 == g2.g) return false + return true + }, + // 鐩稿悓鍒嗙被鐨勮彍鍗曟暟閲忔槸鍚﹀ぇ浜�4 + groupCount(g1, gs) { + if (g1 == undefined) return 24 + let count = 0 + gs.forEach(a=>{ + if(a.g == g1) count++ + }) + if (count > 4) return 8 + if (count > 1) return 12 + if (count == 1) return 24 } } }; diff --git a/static/js/menu.js b/static/js/menu.js new file mode 100644 index 0000000..615ef98 --- /dev/null +++ b/static/js/menu.js @@ -0,0 +1,743 @@ +var menu = [{ + k: 0, + v: "涓汉棣栭〉", + i: "font icon-shouyefill", + self: true, + c: [{ + k: 0, + v: "涓汉棣栭〉", + i: "font icon-shouyefill", + u: "index-index" + }] + }, + { + v: "涓氬姟绠$悊", + i: "font icon-a-Group1118", + p: "", + c: [{ + v: "妫�楠屼笅鍗�", + i: "font icon-24gl-clipboardList", + u: "", + p: "" + }, { + v: "妫�楠屼换鍔�", + i: "font icon-24gl-clipboardList", + u: "", + p: "" + }, { + v: "鎶ュ憡缂栧埗", + i: "font icon-24gl-clipboardList", + u: "", + p: "" + }, { + v: "璐圭敤缁熻", + i: "font icon-24gl-clipboardList", + u: "", + p: "" + }, { + v: "鏍峰搧绠$悊", + i: "font icon-24gl-clipboardList", + u: "", + p: "" + }] + }, + { + v: "鏍囧噯闆�", + i: "font icon-a-Group1120", + p: "", + c: [{ + v: "鏍囧噯搴�", + i: "font icon-24gl-clipboardList", + u: "", + p: "" + }, { + v: "鏍囧噯妯℃澘", + i: "font icon-24gl-clipboardList", + u: "", + p: "" + }] + }, + { + v: "缁╂晥绠$悊", + i: "font icon-24gl-clipboardList", + p: "", + c: [{ + v: "宸ユ椂绠$悊", + i: "font icon-24gl-clipboardList", + u: "fans-submit", + p: "" + }, { + v: "浜哄憳鑰冨嫟", + i: "font icon-24gl-clipboardList", + u: "", + p: "" + }, { + v: "浜哄憳鑰冭瘎", + i: "font icon-24gl-clipboardList", + u: "", + p: "" + }, { + v: "浜哄憳鑰冩牳", + i: "font icon-24gl-clipboardList", + u: "", + p: "" + }, { + v: "鎶�鑳界瓑绾�", + i: "font icon-24gl-clipboardList", + u: "", + p: "" + }, { + v: "宸ヨ祫缁撶畻", + i: "font icon-24gl-clipboardList", + u: "", + p: "" + }, { + v: "鐝", + i: "font icon-24gl-clipboardList", + u: "", + p: "" + }] + }, + { + v: "缁熻鍥捐〃", + i: "font icon-24gl-clipboardList", + p: "", + c: [{ + v: "瀹為獙瀹よ绱�", + i: "font icon-24gl-clipboardList", + u: "", + p: "" + }, { + v: "姣忔棩涓氬姟缁熻", + i: "font icon-24gl-clipboardList", + u: "", + p: "" + }, { + v: "妫�娴嬮」鐩粺璁�", + i: "font icon-24gl-clipboardList", + u: "", + p: "" + }, { + v: "鏍峰搧缂洪櫡鎸囨暟", + i: "font icon-24gl-clipboardList", + u: "", + p: "" + }, { + v: "鑰楁潗缁熻", + i: "font icon-24gl-clipboardList", + u: "", + p: "" + }, { + v: "浜哄憳宸ヤ綔鎶ヨ〃", + i: "font icon-24gl-clipboardList", + u: "", + p: "" + }] + }, + { + v: "鐢靛瓙鐪嬫澘", + i: "font icon-a-Group1126", + p: "", + c: [{ + v: "瀹㈡埛鎺ュ緟", + i: "font icon-24gl-clipboardList", + u: "", + p: "" + }, { + v: "浠诲姟灞曠ず", + i: "font icon-24gl-clipboardList", + u: "", + p: "" + }, { + v: "璁惧鐘舵�佸強楗卞拰搴�", + i: "font icon-24gl-clipboardList", + u: "", + p: "" + }] + }, + { + v: "绯荤粺鍔熻兘", + i: "el-icon-s-tools", + p: "", + c: [{ + v: "鏁版嵁瀛楀吀", + i: "el-icon-s-tools", + u: "enums", + p: "selectEnumList" + }, { + v: "瑙掕壊绠$悊", + i: "el-icon-s-tools", + u: "role-manage", + p: "" + }, { + v: "鐢ㄦ埛绠$悊", + i: "el-icon-s-tools", + u: "person-manage", + p: "" + }, { + v: "瀹㈡埛绠$悊", + i: "el-icon-s-tools", + u: "", + p: "" + }, { + v: "绯荤粺鏃ュ織", + i: "el-icon-s-tools", + u: "", + p: "" + }] + }, + { + v: "4 閫氱敤瑕佹眰", + i: "el-icon-tickets", + p: "selectCustomEnumLists selectProductEnumLists", + c: [{ + v: "閫氱敤瑕佹眰", + i: "font icon-24gl-clipboardList", + u: "", + g: "4 閫氱敤瑕佹眰", + p: "" + }, + { + v: "鍏鎬�", + i: "font icon-24gl-clipboardList", + u: "", + g: "4.1 鍏鎬�", + p: "" + }, + { + v: "淇濆瘑鎬�", + i: "font icon-24gl-clipboardList", + u: "", + g: "4.2 淇濆瘑鎬�", + p: "" + } + ] + }, + { + v: "5 缁撴瀯瑕佹眰", + i: "el-icon-tickets", + p: "", + c: [{ + v: "瀹為獙瀹ょ殑娉曞緥鍦颁綅", + i: "font icon-24gl-clipboardList", + u: "", + g: "A瀹為獙瀹ょ殑娉曞緥鍦颁綅", + p: "" + }, { + v: "鍏ㄦ潈璐熻矗鐨勭鐞嗗眰", + i: "font icon-24gl-clipboardList", + u: "", + g: "B鍏ㄦ潈璐熻矗鐨勭鐞嗗眰", + p: "" + }, { + v: "瀹為獙瀹よ祫璐�", + i: "font icon-24gl-clipboardList", + u: "", + g: "C鑳藉姏鑼冨洿鍜岃祫璐�", + p: "" + }, { + v: "鑳藉姏鑼冨洿", + i: "font icon-24gl-clipboardList", + u: "", + g: "C鑳藉姏鑼冨洿鍜岃祫璐�", + p: "" + }, { + v: "鍦烘墍鎴栬鏂�", + i: "font icon-24gl-clipboardList", + u: "", + g: "D鍦烘墍鎴栬鏂�", + p: "" + }, { + v: "缁勭粐鐩稿叧鏂囦欢", + i: "font icon-24gl-clipboardList", + u: "", + g: "E缁勭粐鐩稿叧鏂囦欢", + p: "" + }, { + v: "浜哄憳宀椾綅浠昏亴", + i: "font icon-24gl-clipboardList", + u: "", + g: "F浜哄憳宀椾綅浠昏亴", + p: "" + }, { + v: "娌熼�氬拰瀹h疮", + i: "font icon-24gl-clipboardList", + u: "", + g: "G娌熼�氬拰瀹h疮", + p: "" + }] + }, { + v: "6 璧勬簮瑕佹眰", + i: "el-icon-tickets", + p: "", + c: [{ + v: "鎬诲垯", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.1 鎬诲垯", + p: "" + }, { + v: "浜哄憳鎬昏", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.2 浜哄憳", + p: "" + }, { + v: "浜哄憳鏄庣粏", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.2 浜哄憳", + p: "" + }, { + v: "浜哄憳鍩硅", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.2 浜哄憳", + p: "" + }, { + v: "浜哄憳鐩戠潱", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.2 浜哄憳", + p: "" + }, { + v: "宀椾綅鑱岃矗", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.2 浜哄憳", + p: "" + }, { + v: "浜哄憳鍩烘湰淇℃伅", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.2 浜哄憳", + p: "" + }, { + v: "宸ヤ綔灞ュ巻", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.2 浜哄憳", + p: "" + }, { + v: "濂栨儵璁板綍", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.2 浜哄憳", + p: "" + }, { + v: "鍩硅璁板綍", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.2 浜哄憳", + p: "" + }, { + v: "鐩戠潱璁板綍", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.2 浜哄憳", + p: "" + }, { + v: "浠昏亴鎺堟潈璁板綍", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.2 浜哄憳", + p: "" + }, { + v: "浜哄憳鑳藉姏鐩戞帶璁板綍", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.2 浜哄憳", + p: "" + }, { + v: "娌熼�氳褰�", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.2 浜哄憳", + p: "" + }, { + v: "澶栨潵浜哄憳绠$悊", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.3 璁炬柦鍜岀幆澧冩潯浠�", + p: "" + }, { + v: "瀹為獙瀹よ鏂藉満鎵�淇℃伅", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.3 璁炬柦鍜岀幆澧冩潯浠�", + p: "" + }, { + v: "璁炬柦鍜岀幆澧冩潯浠惰姹�", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.3 璁炬柦鍜岀幆澧冩潯浠�", + p: "" + }, { + v: "鐜鏉′欢寮曠敤", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.3 璁炬柦鍜岀幆澧冩潯浠�", + p: "" + }, { + v: "瀹夊叏鍖轰唬琛ㄦ鏌�", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.3 璁炬柦鍜岀幆澧冩潯浠�", + p: "" + }, { + v: "瀹夊叏鍐呭姟", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.3 璁炬柦鍜岀幆澧冩潯浠�", + p: "" + }, { + v: "搴熺墿澶勭悊浜ゆ帴璁板綍", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.3 璁炬柦鍜岀幆澧冩潯浠�", + p: "" + }, { + v: "璁惧鎬昏", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.4 璁惧", + p: "" + }, { + v: "璁惧宸ュ叿鏄庣粏", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.4 璁惧", + p: "" + }, { + v: "璧勬簮棰勫畾", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.4 璁惧", + p: "" + }, { + v: "浣滀笟鎸囧涔�", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.4 璁惧", + p: "" + }, { + v: "璁惧杩愯鎬昏", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.4 璁惧", + p: "" + }, { + v: "璁惧妗f", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.4 璁惧", + p: "" + }, { + v: "璁惧楠屾敹", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.4 璁惧", + p: "" + }, { + v: "璁惧鏍″噯", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.4 璁惧", + p: "" + }, { + v: "璁惧鏍告煡", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.4 璁惧", + p: "" + }, { + v: "璁惧缁存姢", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.4 璁惧", + p: "" + }, { + v: "璁惧鍊熺敤", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.4 璁惧", + p: "" + }, { + v: "璁惧鏁呴殰", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.4 璁惧", + p: "" + }, { + v: "浣跨敤璁板綍", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.4 璁惧", + p: "" + }, { + v: "璁惧鍋滅敤/鍚敤", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.4 璁惧", + p: "" + }, { + v: "閲忓�兼函婧愯鍒�", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.5 璁¢噺婧簮鎬�", + p: "" + }, { + v: "鏍囧噯鐗╄川娓呭崟", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.5 璁¢噺婧簮鎬�", + p: "" + }, { + v: "鏍囧噯鐗╄川楠屾敹", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.5 璁¢噺婧簮鎬�", + p: "" + }, { + v: "鏍囧噯鐗╄川棰嗙敤", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.5 璁¢噺婧簮鎬�", + p: "" + }, { + v: "杩囨湡鏍囨牱澶勭疆", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.5 璁¢噺婧簮鎬�", + p: "" + }, { + v: "鏈嶅姟鍜屼緵搴斿搧閲囪喘", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.6 澶栭儴鎻愪緵鐨勪骇鍝佸拰鏈嶅姟", + p: "" + },{ + v: "渚涘簲鍟嗙鐞�", + i: "font icon-24gl-clipboardList", + u: "", + g: "6.6 澶栭儴鎻愪緵鐨勪骇鍝佸拰鏈嶅姟", + p: "" + }] + }, + { + v: "7 杩囩▼瑕佹眰", + i: "el-icon-tickets", + p: "", + c: [{ + v: "妫�楠屽鎵樺崟", + i: "font icon-24gl-clipboardList", + u: "", + g: "7.1 瑕佹眰銆佹爣涔﹀拰鍚堝悓璇勫", + p: "" + }, { + v: "鍚堝悓璇勫", + i: "font icon-24gl-clipboardList", + u: "", + g: "7.1 瑕佹眰銆佹爣涔﹀拰鍚堝悓璇勫", + p: "" + }, { + v: "瀹為獙瀹ょ殑妫�娴嬭兘鍔涙。妗�", + i: "font icon-24gl-clipboardList", + u: "", + g: "7.2 鏂规硶鐨勯�夋嫨銆侀獙璇佸拰纭", + p: "" + }, { + v: "鏍囧噯鏌ユ柊", + i: "font icon-24gl-clipboardList", + u: "", + g: "7.2 鏂规硶鐨勯�夋嫨銆侀獙璇佸拰纭", + p: "" + }, { + v: "鏍囧噯鏂规硶鐨勫彉鏇�", + i: "font icon-24gl-clipboardList", + u: "", + g: "7.2 鏂规硶鐨勯�夋嫨銆侀獙璇佸拰纭", + p: "" + }, { + v: "鏂规硶楠岃瘉", + i: "font icon-24gl-clipboardList", + u: "", + g: "7.2 鏂规硶鐨勯�夋嫨銆侀獙璇佸拰纭", + p: "" + }, { + v: "鎶芥牱", + i: "font icon-24gl-clipboardList", + u: "", + g: "7.3 鎶芥牱", + p: "" + }, { + v: "妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�", + i: "font icon-24gl-clipboardList", + u: "", + g: "7.4 妫�娴嬫垨鏍″噯鐗╁搧鐨勫缃�", + p: "" + }, { + v: "鎶�鏈褰�", + i: "font icon-24gl-clipboardList", + u: "", + g: "7.5 鎶�鏈褰�", + p: "" + }, { + v: "娴嬮噺涓嶇‘瀹氬害鐨勮瘎瀹�", + i: "font icon-24gl-clipboardList", + u: "", + g: "7.6 娴嬮噺涓嶇‘瀹氬害鐨勮瘎瀹�", + p: "" + }, { + v: "纭繚缁撴灉鏈夋晥鎬�", + i: "font icon-24gl-clipboardList", + u: "", + g: "7.7 纭繚缁撴灉鏈夋晥鎬�", + p: "" + }, { + v: "鎶ュ憡缁撴灉", + i: "font icon-24gl-clipboardList", + u: "", + g: "7.8 鎶ュ憡缁撴灉", + p: "" + }, { + v: "鎶曡瘔璇︽儏", + i: "font icon-24gl-clipboardList", + u: "", + g: "7.9 鎶曡瘔", + p: "" + }, { + v: "鎶曡瘔鎯呭喌姹囨�昏〃", + i: "font icon-24gl-clipboardList", + u: "", + g: "7.9 鎶曡瘔", + p: "" + }, { + v: "涓嶇鍚堥」", + i: "font icon-24gl-clipboardList", + u: "", + g: "7.10 涓嶇鍚堝伐浣�", + p: "" + }, { + v: "涓嶇鍚堥」鐨勫垎甯�", + i: "font icon-24gl-clipboardList", + u: "", + g: "7.10 涓嶇鍚堝伐浣�", + p: "" + }, { + v: "鏁版嵁鎺у埗鍜屼俊鎭鐞�", + i: "font icon-24gl-clipboardList", + u: "", + g: "7.11 鏁版嵁鎺у埗鍜屼俊鎭鐞�", + p: "" + }] + }, + { + v: "8 浣撶郴绠$悊瑕佹眰", + i: "el-icon-tickets", + p: "", + c: [{ + v: "鏂瑰紡", + i: "font icon-24gl-clipboardList", + u: "", + g: "8.1 鏂瑰紡", + p: "" + }, { + v: "绠$悊浣撶郴鏂囦欢", + i: "font icon-24gl-clipboardList", + u: "", + g: "8.2 绠$悊浣撶郴鏂囦欢", + p: "" + }, { + v: "鏂囦欢娓呭崟", + i: "font icon-24gl-clipboardList", + u: "", + g: "8.3 绠$悊浣撶郴鏂囦欢鐨勬帶鍒�", + p: "" + }, { + v: "鏂囦欢鍙楁帶", + i: "font icon-24gl-clipboardList", + u: "", + g: "8.3 绠$悊浣撶郴鏂囦欢鐨勬帶鍒�", + p: "" + }, { + v: "鏂囦欢鍙戞斁鍥炴敹", + i: "font icon-24gl-clipboardList", + u: "", + g: "8.3 绠$悊浣撶郴鏂囦欢鐨勬帶鍒�", + p: "" + }, { + v: "鏂囦欢鍙樻洿", + i: "font icon-24gl-clipboardList", + u: "", + g: "8.3 绠$悊浣撶郴鏂囦欢鐨勬帶鍒�", + p: "" + }, { + v: "鏂囦欢浣滃簾", + i: "font icon-24gl-clipboardList", + u: "", + g: "8.3 绠$悊浣撶郴鏂囦欢鐨勬帶鍒�", + p: "" + }, { + v: "璁板綍鐨勬帶鍒�", + i: "font icon-24gl-clipboardList", + u: "", + g: "8.4 璁板綍鐨勬帶鍒�", + p: "" + }, { + v: "搴斿椋庨櫓鍜屾満閬囩殑鎺柦", + i: "font icon-24gl-clipboardList", + u: "", + g: "8.5 搴斿椋庨櫓鍜屾満閬囩殑鎺柦", + p: "" + }, { + v: "瀹㈡埛鍩烘湰淇℃伅绠$悊", + i: "font icon-24gl-clipboardList", + u: "", + g: "8.6 鏀硅繘", + p: "" + }, { + v: "瀹㈡埛婊℃剰搴�", + i: "font icon-24gl-clipboardList", + u: "", + g: "8.6 鏀硅繘", + p: "" + }, { + v: "绾犳鎺柦", + i: "font icon-24gl-clipboardList", + u: "", + g: "8.7 绾犳鎺柦", + p: "" + }, { + v: "鍐呭绠$悊", + i: "font icon-24gl-clipboardList", + u: "", + g: "8.8 鍐呭绠$悊", + p: "" + }, { + v: "绠$悊璇勫", + i: "font icon-24gl-clipboardList", + u: "", + g: "8.9 绠$悊璇勫", + p: "" + }] + } +] + +function computeK() { + let k = 1; + function computeK(menu) { + menu.forEach(item => { + if (item.k == undefined) item.k = k++; + if (item.c) { + computeK(item.c); + } + }); + } + computeK(menu); +} +computeK(); + +export default { + menu: menu +} \ No newline at end of file -- Gitblit v1.9.3