From 2ff8dd1f7d2f71944c25c9e116d12d9fb418ac0a Mon Sep 17 00:00:00 2001 From: ludc Date: 星期三, 17 一月 2024 17:00:08 +0800 Subject: [PATCH] 分类授权数据授权界面编写与接口修改,分类数据查询接口修改 --- Source/UBCS-WEB/src/components/Master/MasterTree.vue | 137 ++++++++++++++++++++++++++++++++++++--------- 1 files changed, 109 insertions(+), 28 deletions(-) diff --git a/Source/UBCS-WEB/src/components/Master/MasterTree.vue b/Source/UBCS-WEB/src/components/Master/MasterTree.vue index 0b217db..2dc9840 100644 --- a/Source/UBCS-WEB/src/components/Master/MasterTree.vue +++ b/Source/UBCS-WEB/src/components/Master/MasterTree.vue @@ -1,9 +1,18 @@ <template> - <avue-tree ref="tree" v-model="CloneTreeAvueform" v-loading="loading" :data="Treedata" :defaultExpandAll="false" - :option="Treeoption" - style="height: calc(100vh - 150px);" - @node-click=" nodeClick" - ></avue-tree> + <div class="app" style="position: relative;"> + <avue-tree ref="tree" v-model="CloneTreeAvueform" v-loading="loading" :data="Treedata" :defaultExpandAll="false" + :option="Treeoption" style="width: fit-content;" @node-click="nodeClick"> + <template slot-scope="{ node }"> + <el-tooltip :content="$createElement('div', { domProps: { innerHTML: node.label } })" class="item" effect="dark" + open-delay="350" placement="right-start"> + <span id="labelSize" v-html="node.label"></span> + </el-tooltip> + </template> + </avue-tree> + <div style="position: absolute; right: 3px; top: -1px;"> + <el-link class="refresh-icon" icon="el-icon-refresh" @click="getTreeLists"></el-link> + </div> + </div> </template> <script> @@ -15,7 +24,7 @@ props: { pageSize: { type: String, - default: "10" + default: "100" }, currentPage: { type: String, @@ -28,7 +37,9 @@ }, data() { return { + TreeValue: '', idData: '', + referTreeId: '', masterVrBtnList: [], tableHeadFindData: [], tableHeadDataFateher: [], @@ -47,19 +58,20 @@ defaultExpandAll: false, menu: false, lazy: true, - // treeLoad:function (node,resolve){ - // console.log(node) - // console.log(resolve) - // } - treeLoad: function (node, resolve) { + treeLoad: (node, resolve) => { if (node.data != false) { const parentId = (node.level === 0) ? 0 : node.data.oid; - const parentBtmName = node.data.attributes.btmname - getTreeList({parentOid: parentId, parentBtmName: parentBtmName}).then(res => { + const parentBtmName = node.data.attributes.btmname; + getTreeList({ + parentOid: parentId, + parentBtmName: parentBtmName, + 'conditionMap[btmTypeId]': this.referTreeId + }).then(res => { resolve(res.data.map(item => { return { ...item, - label: item.text + label: `<span style="color:#409EFF">${item.count}</span> ${item.text}`, + count: item.count } })) }) @@ -71,34 +83,63 @@ created() { this.getTreeLists() }, - computed: {}, + mounted() { + + }, + computed: { + formatCount() { + return (label) => { + const countIndex = label.indexOf('</span>') + '</span>'.length; + const count = label.slice(countIndex); + const coloredCount = `<span class="count">${count}</span>`; + return `${label.slice(0, countIndex)}${coloredCount}`; + }; + }, + }, methods: { //鑾峰彇鏁版嵁 getTreeLists() { const index = this.$route.query.id.indexOf('@'); const result = this.$route.query.id.substring(0, index); - this.idData = result - // console.log(this.$route) - getTreeList({'conditionMap[id]': this.idData}).then(res => { - if(res){ - if(res.data.length === 0){ - this.$message.error("宸︿晶鑿滃崟鏌ヨ涓虹┖"); - }else{ + this.idData = result; + this.removeList(); + let conditionMaps = {}; + conditionMaps["conditionMap[id]"] = this.idData; + conditionMaps["conditionMap[authType]"] = "data_auth"; + // 鏁版嵁鎺堟潈涓槸鍚﹀叿澶囨煡鐪嬫潈闄� + conditionMaps["conditionMap[menuCode]"] = "data_view"; + getTreeList(conditionMaps).then(res => { + if (res) { + if (res.data.length === 0) { + this.$message.error("涓绘暟鎹垎绫绘煡璇负绌猴紒"); + } else { this.Treedata = res.data; const [firstProperty] = res.data; this.ModifyProperties(this.Treedata, 'text', 'label'); + this.referTreeId = firstProperty.attributes.btmTypeId; + // console.log(this.referTreeId) this.codeClassifyOid = firstProperty.oid; this.coderuleoid = firstProperty.attributes.coderuleoid; + this.$emit("coderuleoid", this.coderuleoid) + this.$emit('Treedata', this.Treedata) + this.Treedata.forEach((item, index) => { + item.label = `<span style="color:#409EFF">${item.count}</span> ${item.label}`; + }); this.$emit("coderuleoid", this.coderuleoid) this.$emit('Treedata', this.Treedata) } } }).catch(res => { - console.log(res) this.$message.error(res) }); }, - + removeList() { + this.$emit('tableHeadDataFateher', []); + this.$emit('tableHeadFindData', []); + this.$emit('tableHeadBttoms', []); + this.$emit('tableDataArray', []) + this.$emit('total', null) + }, //瀹氫箟涓�涓慨鏀规暟鎹睘鎬у悕鐨勬柟娉� ModifyProperties(obj, oldName, newName) { for (let key in obj) { @@ -113,12 +154,17 @@ }, //琛ㄦ牸鍒锋柊 TableRend() { + this.loading = true; + this.$emit('loading', this.loading) TableData({ templateOid: this.templateOids, codeClassifyOid: this.nodeClickList.oid, page: this.currentPage, limit: this.pageSize, }).then(res => { + // console.log('tab',res) + this.loading = false; + this.$emit('loading', this.loading) this.tableDataArray = res.data.data; this.$emit('tableDataArray', this.tableDataArray) this.$emit('total', res.data.total) @@ -128,6 +174,7 @@ TableHeadRend() { const index = this.$route.query.id.indexOf('@'); const result = this.$route.query.id.substring(0, index); + // console.log(this.$route) return new Promise((resolve, reject) => { MasterTable({ codeClassifyOid: this.nodeClickList.oid, @@ -149,7 +196,8 @@ prop: item.field, // type: this.columnType[item.type], sortable: item.sort, - width: item.minWidth + width: item.minWidth, + query: item.queryField }; this.tableHeadFindData.push(Object.assign(item, columnItem)) }) @@ -165,15 +213,19 @@ //鏍戠偣鍑讳簨浠� async nodeClick(data) { try { + // console.log(data) + this.TreeValue = data.label.split("</span>")[1].trim(); + // console.log('TreeValue',this.TreeValue) + this.$emit('TreeValue', this.TreeValue) this.nodeClickList = data; this.tableHeadDataFateher = [] this.tableHeadFindData = [] await this.TableHeadRend(); // 鍏堟墽琛� TableHeadRend() this.TableRend(); // TableHeadRend() 鏂规硶瀹屾垚鍚庡啀鎵ц TableRend() - this.$emit('nodeClick', this.templateOids) + this.$emit('nodeClickTemplateOids', this.templateOids) this.$emit("codeClassifyOid", this.nodeClickList.oid) + this.$emit("nodeClickList", this.nodeClickList) } catch (error) { - // 澶勭悊閿欒 this.$message.error(error) } } @@ -181,6 +233,35 @@ } </script> -<style scoped> +<style lang="scss" scoped> +.app { + overflow: auto; + height: calc(100vh - 145px); +} +.app::-webkit-scrollbar { + height: 15px; // 绾靛悜婊氬姩鏉� 蹇呭啓 + background: white; + border: white; + width: 10px; + +} + +// 婊氬姩鏉$殑婊戝潡 +.app::-webkit-scrollbar-thumb { + background-color: #ececec; + border-radius: 20px; + border: #ececec; +} + +.refresh-icon { + color: #409EFF; + margin-top: 8px; + margin-left: 6px; + font-size: 18px; +} + +#labelSize { + font-size: 14px !important; +} </style> -- Gitblit v1.9.3