From 02d6ac5bc723b3001d559a87eb8959f6e0e2abba Mon Sep 17 00:00:00 2001 From: ludc Date: 星期二, 07 十一月 2023 10:37:47 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- Source/UBCS-WEB/src/views/wel/Statistic.vue | 327 +++++++++++++++++++++++++++++++++--------------------- 1 files changed, 200 insertions(+), 127 deletions(-) diff --git a/Source/UBCS-WEB/src/views/wel/Statistic.vue b/Source/UBCS-WEB/src/views/wel/Statistic.vue index f95cb3d..691cf38 100644 --- a/Source/UBCS-WEB/src/views/wel/Statistic.vue +++ b/Source/UBCS-WEB/src/views/wel/Statistic.vue @@ -1,150 +1,223 @@ <template> - <div> - <el-row :gutter="20"> - <el-col :span="3" v-for="item in listMyTask"> - <div class="box" :style="item.style"> - {{item.name}} - <div><avue-count-up class="value" :end="item.count"></avue-count-up></div> - </div> - </el-col> - </el-row> + <div v-loading="this.loading" class="App"> + <div style="display: flex; justify-content: flex-end;margin-bottom: 10px"> + <el-button plain size="small" type="primary" @click="MoreHandler">鑷畾涔�</el-button> + </div> + <avue-data-box ref="dataBox" :animation="true" :option="option"></avue-data-box> + + <el-dialog :visible.sync="dialogTableVisible" append-to-body class="avue-dialog avue-dialog--top" title="涓绘暟鎹厤缃�" + top='-40px'> + <el-table + ref="TableBox" + :data="Crud.data" + border + style="width: 100%" + @selection-change="selectionChange" + @row-click="TableRoute"> + <el-table-column + type="selection" + width="55"> + </el-table-column> + <el-table-column + align="center" + label="涓绘暟鎹悕绉�" + prop="menuName" + > + <template slot-scope="scope"> + <el-link type="primary" @click="TableRoute(scope.row)">{{ scope.row.menuName }}</el-link> + </template> + </el-table-column> + <el-table-column + align="center" + label="寰呭姙鏁版嵁" + prop="mdmCount" + > + </el-table-column> + <el-table-column + align="center" + label="icon鍥炬爣" + prop="icon"> + <template slot-scope="scope"> + <i :class="scope.row.icon" style="font-size: 20px"></i> + </template> + </el-table-column> + <el-table-column + :show-overflow-tooltip='true' + label="璺敱鍦板潃" + prop="menuRoute"> + </el-table-column> + <el-table-column + align="center" + label="code" + prop="code"> + </el-table-column> + </el-table> + <div slot="footer" class="dialog-footer"> + <el-button plain type="primary" @click="SaveHandler">淇濆瓨</el-button> + </div> + </el-dialog> </div> </template> <script> -import {validatenull} from "@/util/validate"; -import {getList} from "@/api/system/statistic"; +import {getList, save} from "@/api/system/statistic"; export default { -name: "Statistic", - data(){ - return { - countByServer:true, - listMyTask:[] - } + name: "Statistic", + data() { + return { + loading: true, + Crud: { + form: '', + data: [], + }, + userId: '', + hexColor: '', + newData: [], + SelectRow: [], + countByServer: true, + dialogTableVisible: false, + // listMyTask:[] + option: { + span: 6, + data: [] + }, + } }, created() { - this.getList(); + this.MasterGetList(); }, - computed(){ + mounted() { + this.FontInfo() + }, + computed() { }, methods: { - getList() { - let data = [{ - "backgroundColor": "#FF5722", - "btmname": "hometask", - "countUrl": "priceIndexController/countNeedConfirmPlan", - "name": "寰呯‘璁よ鍒�", - "nameOid": "", - "oid": "34aebfde-eb11-4555-87eb-0a779be9aad0", - "uiUrl": "USEJS:rpm/wrj/ProductPricePlan", - }, { - "backgroundColor": "#5FB878", - "btmname": "hometask", - "countUrl": "priceIndexController/countPricingPlan", - "name": "浠婃棩宸茬‘璁よ鍒�", - "nameOid": "2C72EA23-8AA5-E5FC-9BC1-DE4AD182EF7B", - "oid": "6256ae79-7765-4c66-afc7-f12fad350065", - "uiUrl": "USEJS:rpm/wrj/ProductPricePlan", - }, - { - "backgroundColor": "#1E9FFF", - "btmname": "hometask", - "countUrl": "priceIndexController/countNeedFeedbackPlan", - "name": "宸茶皥銆佸緟鍙嶉", - "nameOid": "2536978C-CD1B-5B56-6529-A8C3456B5260", - "oid": "3043cdf1-8479-4c2a-9eab-fc35e9f9d5a7", - "uiUrl": "USEJS:rpm/wrj/ProductPricePlan", - }, - { - "backgroundColor": "#FF5722", - "btmname": "hometask", - "countUrl": "priceIndexController/countMyUnCreatePricePlan", - "name": "閲囪喘璋堜环-缁忓姙", - "nameOid": "", - "oid": "529634e7-1854-4f61-b911-a91e3c406757", - "uiUrl": "USEJS:rpm/wrj/PurchaseRequstUndo", - }, - { - "backgroundColor": "#5FB878", - "btmname": "hometask", - "countUrl": "priceIndexController/countPricingPlan", - "name": "浠婃棩宸茬‘璁よ鍒�--缁忓姙浜�", - "nameOid": "", - "oid": "a03a6ab2-f87d-4e45-94cb-9ef4d66fbba2", - "uiUrl": "USEJS:rpm/wrj/PurchaseRequstUndo?showPlan=true", - }, - { - "backgroundColor": "#1E9FFF", - "btmname": "hometask", - "countUrl": "priceIndexController/countNeedFeedbackPlan", - "name": "宸茶皥銆佸緟鍙嶉--缁忓姙浜�", - "nameOid": "", - "oid": "8e56cce6-c955-4624-99d5-6c5b870a8c09", - "uiUrl": "USEJS:rpm/wrj/PurchaseRequstUndo?showPlan=true", - }, - { - "backgroundColor": "", - "btmname": "", - "countUrl": "priceIndexController/countMyWillAuditPlan", - "name": "閲囪喘璋堜环-缁忓姙", - "nameOid": "", - "oid": "f7d5c541-3a3a-4f24-bf76-b1538abb7abd", - "uiUrl": "USEJS:rpm/wrj/PurchaseRequstUndo?showPlan=true", - }, - { - "backgroundColor": "", - "btmname": "hometask", - "countUrl": "priceIndexController/countNeedDispatch", - "name": "閲囪喘璋堜环-鍒嗘淳", - "nameOid": "BAD3108F-6F6B-F287-705C-82D69A5E030A", - "oid": "6093b1cb-bd7b-438b-8a76-05ab486ccf63", - "uiUrl": "USEJS:rpm/wrj/PurchaseRequstUndo?showPlan=true" - } - ] - this.listMyTask = data.map(record => { - record.style=record.style || '' - if(record.backgroundColor!=''){ - record.style = 'background-color:'+record.backgroundColor; - } - record.count=record.count || 0; - if(!this.countByServer){ - //鏄墠绔煡璇� - getList(record.countUrl,{}).then(res=>{ - if(res.data.data.success){ - record.count=res.data.data.obj; - }else{ - record.count=0 - } - }) - - } - return { - ...record + FontInfo() { + this.$nextTick(() => { + const dataFatherBox = this.$refs.dataBox.$el; + // console.log(dataFatherBox); + this.$nextTick(() => { + setTimeout(() => { + //瀛椾綋 + const info = dataFatherBox.querySelectorAll('.item-info .info'); + //杈规 + const items = dataFatherBox.querySelectorAll('.item'); + // console.log('info', info); + info.forEach((info) => { + info.style.fontSize = '16px'; + }); + items.forEach((item) => { + item.style.border = '1px solid #DCDFE6'; + }); + this.loading = false; + }, 1000); // 寤惰繜1绉掓煡鎵緄nfo鍏冪礌 + }); + }); + }, + selectionChange(row) { + // console.log(row) + this.SelectRow = row; + }, + SaveHandler() { + if (this.SelectRow.length <= 0) { + this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹紒') + return + } + let mdmNameList = []; + mdmNameList = this.SelectRow.map(item => { + return item.code + }) + console.log(mdmNameList) + save(this.userId, mdmNameList).then(res => { + console.log(res) + if (res.data.code === 200) { + this.$message.success('淇濆瓨鎴愬姛锛�') + //娓呴櫎宸叉湁鏁扮粍涓璸ush鏁版嵁 + this.newData = []; + this.option.data = [] + this.MasterGetList() + this.dialogTableVisible = false; + //瀛椾綋鍜岃竟妗嗛噸鏂板姞杞� + this.loading = true; + this.FontInfo() } }) - } + }, + MoreHandler() { + this.dialogTableVisible = true; + let checkedrow = [] + this.newData.forEach(item => { + this.option.data.forEach(v => { + if (item.code === v.code) { + checkedrow.push(item) + } + }) + }) + // console.log(checkedrow) + this.$nextTick(() => { + checkedrow.forEach(row => { + this.$refs.TableBox.toggleRowSelection(row, true) // 鍥炴樉 + }) + }) + }, + // 闅忔満鑹� + randomColor() { + const r = Math.floor(Math.random() * 256); // 鐢熸垚 0 鍒� 255 涔嬮棿鐨勯殢鏈烘暟 + const g = Math.floor(Math.random() * 256); + const b = Math.floor(Math.random() * 256); + // 灏� RGB 鍊艰浆鎹负鍗佸叚杩涘埗琛ㄧず褰㈠紡 + const hexColor = "#" + r.toString(16).padStart(2, '0') + g.toString(16).padStart(2, '0') + b.toString(16).padStart(2, '0'); + return hexColor; + }, + MasterGetList() { + this.userId = localStorage.getItem('userId'); + getList({userId: this.userId}).then(res => { + res.data.data.filter((item, index) => { + this.newData.push(item); + this.Crud.data = this.newData; + if (item.isDefault === 1) { + const colors = ['rgb(49, 180, 141)', 'rgb(56, 161, 242)', 'rgb(117, 56, 199)', 'rgb(242, 104, 31)', + 'rgb(19, 150, 111)', 'rgb(26, 131, 212)', 'rgb(87, 26, 169)', 'rgb(212, 83, 1)']; + const color = colors[index % colors.length]; + this.option.data.push({ + click: (item) => { + this.$router.push({path: item.uiUrl}); + }, + title: item.menuName, + count: parseInt(item.mdmCount), + icon: item.icon, + code: item.code, + isDefault: item.isDefault, + color: color, + uiUrl: item.menuRoute, + id: 'custom-title' + }); + } + }); + }); + }, + TableRoute(row) { + this.$router.push({path: row.menuRoute}); + }, } } </script> <style scoped> -.box{ - text-align: center; - background: rgb(235, 238, 245); - color: #303133; - height: 74px; - margin: 10px 0!important; - padding: 15px 20px; - position: relative; - border-radius: 4px; - box-sizing: border-box; - font-size: 14px; +* { + list-style: none; } -.value{ - font-size: 12px; - opacity: .69; - line-height: 24px; + +.MasterBox { + display: flex; + width: 100%; + padding: 0; +} + +div { + margin: 0; + padding: 0; } </style> -- Gitblit v1.9.3