From d5129a9d3f2be1d73adbe0e4a7478e8f7e8fc9bc Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期三, 06 十二月 2023 16:18:46 +0800
Subject: [PATCH] 菜单管理-从其它模板克隆对话框优化
---
Source/UBCS-WEB/src/views/wel/Statistic.vue | 292 +++++++++++++++++++++++++++++++++++++++-------------------
1 files changed, 197 insertions(+), 95 deletions(-)
diff --git a/Source/UBCS-WEB/src/views/wel/Statistic.vue b/Source/UBCS-WEB/src/views/wel/Statistic.vue
index 0d6556a..4b74518 100644
--- a/Source/UBCS-WEB/src/views/wel/Statistic.vue
+++ b/Source/UBCS-WEB/src/views/wel/Statistic.vue
@@ -1,119 +1,221 @@
<template>
- <div>
- <el-row :gutter="20">
- <el-col :xs="8" :sm="8" :md="8" :lg="6" :xl="4" v-for="item in listMyTask">
- <div class="box" :style="item.style" @click="goto(item)">
- {{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" v-loading="BtnLoading">淇濆瓨</el-button>
+ </div>
+ </el-dialog>
</div>
</template>
<script>
-import {validatenull} from "@/util/validate";
-import {getList} from "@/api/system/statistic";
-import {flowRoute} from "@/util/flow";
+import {getList, save} from "@/api/system/statistic";
export default {
-name: "Statistic",
- data(){
- return {
- countByServer:true,
- listMyTask:[]
- }
+ name: "Statistic",
+ data() {
+ return {
+ BtnLoading: false,
+ 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": "/MasterData/items?id=wupin@name=鐗╁搧涓绘暟鎹�",
- }, {
- "backgroundColor": "#5FB878",
- "btmname": "hometask",
- "countUrl": "priceIndexController/countPricingPlan",
- "name": "浜哄憳涓绘暟鎹�",
- "nameOid": "2C72EA23-8AA5-E5FC-9BC1-DE4AD182EF7B",
- "oid": "6256ae79-7765-4c66-afc7-f12fad350065",
- "uiUrl": "/MasterData/items?id=renyuan@@name=浜哄憳涓绘暟鎹�",
- },{
- "backgroundColor": "#1E9FFF",
- "btmname": "hometask",
- "countUrl": "priceIndexController/countNeedFeedbackPlan",
- "name": "涓婚搴撳畾涔�",
- "nameOid": "2536978C-CD1B-5B56-6529-A8C3456B5260",
- "oid": "3043cdf1-8479-4c2a-9eab-fc35e9f9d5a7",
- "uiUrl": "/modeling/classifyTree",
- },
- {
- "backgroundColor": "#FF5722",
- "btmname": "hometask",
- "countUrl": "priceIndexController/countMyUnCreatePricePlan",
- "name": "渚涘簲鍟嗕富鏁版嵁",
- "nameOid": "",
- "oid": "529634e7-1854-4f61-b911-a91e3c406757",
- "uiUrl": "/MasterData/items?id=gongyingshang@@name=渚涘簲鍟嗕富鏁版嵁",
- }]
- this.listMyTask = data.map(record => {
- record.style=record.style || ''
- if(record.backgroundColor!=''){
- record.style = 'background-color:'+record.backgroundColor;
+ 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;
+ },
+ async SaveHandler() {
+ if (this.SelectRow.length <= 0) {
+ this.$message.warning('璇烽�夋嫨涓�鏉℃暟鎹紒');
+ return;
+ }
+ this.BtnLoading = true;
+ try {
+ const {data: {code}} = await save(this.userId, this.SelectRow.map(item => item.code));
+ if (code === 200) {
+ this.$message.success('淇濆瓨鎴愬姛锛�');
+ this.newData = [];
+ this.option.data = [];
+ this.MasterGetList();
+ this.dialogTableVisible = false;
+ this.BtnLoading = false;
+ this.loading = true;
+ this.FontInfo();
}
- 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
- }
+ } catch {
+ this.BtnLoading = false;
+ }
+ },
+ 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) // 鍥炴樉
+ })
})
},
- goto(item){
- this.$router.push({ path: item.uiUrl });
- }
+ // 闅忔満鑹�
+ 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>
-.el-col{margin-bottom: 0}
-.box{
- text-align: center;
- background: rgb(235, 238, 245);
- color: #303133;
- height: 70px;
- margin: 10px 0!important;
- padding: 15px 10px;
- position: relative;
- border-radius: 4px;
- box-sizing: border-box;
- font-size: 14px;
+* {
+ list-style: none;
}
-.value{
- font-size: 12px;
- opacity: .69;
- line-height: 20px;
- margin-top: 5px;
- display: block;
+
+.MasterBox {
+ display: flex;
+ width: 100%;
+ padding: 0;
+}
+
+div {
+ margin: 0;
+ padding: 0;
}
</style>
--
Gitblit v1.9.3