已修改16个文件
已重命名1个文件
已添加1个文件
| | |
| | | <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> |
| | |
| | | <template> |
| | | <div id="app"> |
| | | <router-view /> |
| | | <div id="app" style="overflow: hidden;"> |
| | | <router-view/> |
| | | </div> |
| | | </template> |
| | | |
| | |
| | | color: #333; |
| | | } |
| | | |
| | | .has-gutter .el-table__cell .cell { |
| | | .el-table__header .has-gutter .el-table__cell .cell { |
| | | font-size: 14px !important; |
| | | font-weight: 500; |
| | | } |
| | |
| | | selectMenuList: "/role/selectMenuList", //è·åèå |
| | | selectPowerByRoleId: "/role/selectPowerByRoleId", //éè¿è§è²idæ¥è¯¢æéå表 |
| | | upRole: "/role/upRole", //ä¿®æ¹è§è² |
| | | getUserMenu: "/user/getUserMenu", //è·åç¨æ·æä¸¾ |
| | | } |
| | | |
| | | const dataReporting = { |
| | |
| | | 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", //å é¤è´¢å¡ä¸æ¥ä¿¡æ¯ |
| | |
| | | } |
| | | |
| | | 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", //å 餿䏾 |
| | | } |
| | |
| | | .value-table .el-upload { |
| | | width: 100%; |
| | | } |
| | | |
| | | |
| | | .value-table .el-upload-dragger { |
| | | width: 100%; |
| | | } |
| | |
| | | <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> |
| | |
| | | </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> |
| | |
| | | </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> |
| | |
| | | font: 'å é¤', |
| | | type: 'text' |
| | | }], |
| | | type: [] |
| | | type: [], |
| | | uploadStr: "" |
| | | }, |
| | | tableHead: [], |
| | | tableData: [], |
| | |
| | | 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 |
| | | } |
| | | } |
| | |
| | | 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 |
| | | } |
| | |
| | | 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 |
| | | } |
| | |
| | | this.$refs.upload.clearFiles() |
| | | this.uploadDia = false |
| | | this.uploading = false |
| | | if(response.code==201){ |
| | | if (response.code == 201) { |
| | | this.$message.error(response.message) |
| | | return |
| | | } |
| | |
| | | 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; |
| | | } |
| | | } |
| | | } |
| | |
| | | <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;"> |
| | |
| | | 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) |
| | | }) |
| | | } |
| | | } |
| | | } |
| | |
| | | height: calc(100% - 60px - 80px - 10px - 40px); |
| | | padding: 20px; |
| | | } |
| | | .el-radio-group{ |
| | | width: 100%; |
| | | } |
| | | </style> |
| | | <style> |
| | | .data_reporting .data_reporting_dia .el-dialog__body { |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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"> |
| | |
| | | :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"> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | product: null, |
| | | orderBy: { |
| | | field: 'id', |
| | | order: 'desc' |
| | | order: 'asc' |
| | | } |
| | | }, |
| | | isIndex: true, |
| | | showSelect: true, |
| | | showSelect: false, |
| | | select: true, |
| | | do: [{ |
| | | id: 'update', |
| | |
| | | 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, |
| | |
| | | addPower: true, |
| | | token: null, |
| | | inPower: true, |
| | | outPower: true |
| | | outPower: true, |
| | | delAllPower: true, |
| | | userNames: [], |
| | | vxs: [], |
| | | chooseDia: false, |
| | | vx: null |
| | | } |
| | | }, |
| | | created() { |
| | |
| | | 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) |
| | |
| | | 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 |
| | |
| | | if (power[i].menuMethod == 'downDataReportingFile') { |
| | | outPower = true |
| | | } |
| | | if (power[i].menuMethod == 'deleteAllData') { |
| | | delAllPower = true |
| | | } |
| | | } |
| | | if (!del) { |
| | | this.componentData.do.splice(1, 1) |
| | |
| | | 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) { |
| | |
| | | } |
| | | 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 |
| | |
| | | }, |
| | | 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 |
| | | }) |
| | | } |
| | | } |
| | | } |
ÎļþÃû´Ó src/components/view/custom-enum.vue ÐÞ¸Ä |
| | |
| | | <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> |
| | |
| | | </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> |
| | |
| | | </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> |
| | |
| | | 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: 'å é¤', |
| | |
| | | }], |
| | | tagField: {}, |
| | | selectField: {}, |
| | | requiredAdd:['company','name'], |
| | | requiredUp:['company','name'] |
| | | requiredAdd:['category','label','value'], |
| | | requiredUp:['category','label','value'] |
| | | }, |
| | | entityCopy: {}, |
| | | upIndex: 0, |
| | |
| | | this.upIndex++ |
| | | }, |
| | | openAdd(){ |
| | | this.$refs.ValueTable.openAddDia(this.$api.enums.addCustomEnum); |
| | | this.$refs.ValueTable.openAddDia(this.$api.enums.addEnum); |
| | | }, |
| | | // æéåé
|
| | | getPower(){ |
| | |
| | | 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 |
| | | } |
| | | } |
| | |
| | | <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"> |
| | |
| | | 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, |
| | |
| | | height: calc(100% - 60px - 80px - 10px - 40px); |
| | | padding: 20px; |
| | | } |
| | | .el-radio-group{ |
| | | width: 100%; |
| | | } |
| | | </style> |
| | | |
| | | <template> |
| | |
| | | <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> |
| | |
| | | <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"> |
| | |
| | | :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> |
| | | |
| | |
| | | font: 'ç¼è¾', |
| | | type: 'text', |
| | | method: 'doDiy', |
| | | field: ['createUserName'] |
| | | field: ['createUserName','对象=param'] |
| | | }, { |
| | | id: 'delete', |
| | | font: 'å é¤', |
| | |
| | | }, |
| | | 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, |
| | |
| | | custom: [], |
| | | addPower: true, |
| | | inPower: true, |
| | | outPower: true |
| | | outPower: true, |
| | | chooseDia: false, |
| | | users: [], |
| | | userId: null |
| | | } |
| | | }, |
| | | created() { |
| | |
| | | this.selectProductEnumList() |
| | | this.selectCustomEnumList() |
| | | this.getPower() |
| | | this.getUserList() |
| | | }, |
| | | methods: { |
| | | refreshTable() { |
| | |
| | | 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() |
| | | } |
| | | } |
| | | } |
| | |
| | | setInterval(() => { |
| | | this.nowTime() |
| | | }, 1000) |
| | | setInterval(() => { |
| | | /* setInterval(() => { |
| | | this.getDataList() |
| | | }, 60 * 1000) |
| | | }, 60 * 1000) */ |
| | | }, |
| | | methods: { |
| | | nowTime() { |
| | |
| | | </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> |
| | |
| | | order: 'asc' |
| | | } |
| | | }, |
| | | isIndex: false, |
| | | showSelect: true, |
| | | select: true, |
| | | isIndex: true, |
| | | showSelect: false, |
| | | select: false, |
| | | do: [{ |
| | | id: 'update', |
| | | font: 'ç¼è¾', |
| | |
| | | </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"> |
| | |
| | | </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> |
| | |
| | | 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 |
| | | }) |
| | | }, |
| | |
| | | name: null, |
| | | product: null, |
| | | orderBy: { |
| | | field: 'update_time', |
| | | field: 'create_time', |
| | | order: 'desc' |
| | | } |
| | | }, |
| | |
| | | <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"> |
| | |
| | | <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> |
| | |
| | | }; |
| | | let icon = "../../static/img/logo.png"; // å¾çå°å |
| | | changeFavicon(icon); // å¨æä¿®æ¹ç½ç«å¾æ |
| | | let title = "访é®åºé"; // ç½ç«æ é¢ |
| | | document.title = title; // å¨æä¿®æ¹ç½ç«æ é¢ |
| | | // let title = "访é®åºé"; // ç½ç«æ é¢ |
| | | // document.title = title; // å¨æä¿®æ¹ç½ç«æ é¢ |
| | | }, |
| | | methods: { |
| | | back() { |
| | |
| | | <div class="right"> |
| | | <div style="width: calc(100% - 100px * 2);"> |
| | | <div class="title_big">æ¬¢è¿æ¨ç»å½ï¼</div> |
| | | <div class="title_small">å±±ä¸èäºæ°æ®ç®¡çå¹³å°ï¼DMSï¼</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> |
| | |
| | | |
| | | .title { |
| | | width: 100%; |
| | | height: 58px; |
| | | height: 48px; |
| | | display: flex; |
| | | align-items: center; |
| | | padding: 0 30px; |
| | |
| | | } |
| | | |
| | | .title .label { |
| | | font-size: 16px; |
| | | font-size: 14px; |
| | | text-align: center; |
| | | width: calc(100% - 130px - 200px); |
| | | } |
| | |
| | | } |
| | | |
| | | .left { |
| | | height: calc(100vh - 58px - 40px); |
| | | height: calc(100vh - 48px - 40px); |
| | | background-color: #3A7BFA; |
| | | display: flex; |
| | | align-items: center; |
| | |
| | | color: #fff; |
| | | width: 68px; |
| | | height: 68px; |
| | | margin: 12px 0; |
| | | margin: 8px 0; |
| | | cursor: pointer; |
| | | display: flex; |
| | | align-items: center; |
| | |
| | | } |
| | | |
| | | .left .box i { |
| | | font-size: 28px; |
| | | font-size: 24px; |
| | | margin-bottom: 4px; |
| | | } |
| | | |
| | | .left .box div { |
| | | font-size: 14px; |
| | | font-size: 12px; |
| | | } |
| | | |
| | | .small_menu { |
| | |
| | | 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 { |
| | |
| | | } |
| | | |
| | | .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); |
| | |
| | | .tag>.el-icon-s-unfold, |
| | | .el-icon-s-fold, |
| | | .el-icon-delete { |
| | | font-size: 18px; |
| | | font-size: 16px; |
| | | cursor: pointer; |
| | | margin: 0 8px; |
| | | } |
| | |
| | | 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; |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | .component_view { |
| | | height: calc(100vh - 94px); |
| | | height: calc(100vh - 84px); |
| | | width: calc(100% - 52px); |
| | | padding: 0 26px; |
| | | background: rgb(245, 247, 251); |
| | |
| | | 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> |
| | |
| | | <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> |
| | |
| | | <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> |
| | |
| | | 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')) |
| | |
| | | } |
| | | }); |
| | | if (num == -1) { |
| | | if(ob.u == "") ob.u = "nullFace" |
| | | this.tabs.push(ob); |
| | | } |
| | | }, |
| | |
| | | }) |
| | | }, |
| | | // å·æ°è¡¨æ ¼å
容 |
| | | 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 |
| | | } |
| | | } |
| | | }; |
¶Ô±ÈÐÂÎļþ |
| | |
| | | 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: "æ²éå宣贯", |
| | | i: "font icon-24gl-clipboardList", |
| | | u: "", |
| | | g: "Gæ²éå宣贯", |
| | | 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: "è®¾å¤æ¡£æ¡", |
| | | 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 |
| | | } |