田源
2023-11-07 4d4f51fa2924e66a3603a5f34673729b0974068f
Source/UBCS-WEB/src/components/Master/MasterTree.vue
@@ -1,10 +1,12 @@
<template>
  <div style="overflow: auto; height: calc(100vh - 150px);">
    <avue-tree ref="tree" v-model="CloneTreeAvueform" v-loading="loading" :data="Treedata" :defaultExpandAll="false" :option="Treeoption" @node-click="nodeClick" style="width: fit-content;">
  <div class="app" style="display: flex;">
    <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 }">
        <span style="display: inline-block;">{{ node.label }}</span>
        <span v-html="node.label"></span>
      </template>
    </avue-tree>
    <div style="display: inline-block;"><el-link icon="el-icon-refresh" class="refresh-icon" @click="getTreeLists"></el-link></div>
  </div>
</template>
@@ -30,7 +32,7 @@
  },
  data() {
    return {
      TreeValue:'',
      TreeValue: '',
      idData: '',
      masterVrBtnList: [],
      tableHeadFindData: [],
@@ -62,7 +64,8 @@
              resolve(res.data.map(item => {
                return {
                  ...item,
                  label: item.text
                  label: `<span style="color:#409EFF">${item.count}</span> ${item.text}`,
                  count: item.count
                }
              }))
            })
@@ -74,7 +77,19 @@
  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() {
@@ -83,10 +98,10 @@
      this.idData = result
      // console.log(this.$route)
      getTreeList({'conditionMap[id]': this.idData}).then(res => {
        if(res){
          if(res.data.length === 0){
        if (res) {
          if (res.data.length === 0) {
            this.$message.error("主数据分类查询为空!");
          }else{
          } else {
            this.Treedata = res.data;
            const [firstProperty] = res.data;
            this.ModifyProperties(this.Treedata, 'text', 'label');
@@ -94,10 +109,16 @@
            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)
            // console.log(this.Treedata)
          }
        }
      }).catch(res => {
        console.log(res)
        // console.log(res)
        this.$message.error(res)
      });
    },
@@ -131,6 +152,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 +171,7 @@
          List.forEach(item => {
            let columnItem = {
              label: item.title,
              prop: item.field,
              prop: item.queryField,
              // type: this.columnType[item.type],
              sortable: item.sort,
              width: item.minWidth
@@ -168,9 +190,10 @@
    //树点击事件
    async nodeClick(data) {
      try {
        console.log(data)
        this.TreeValue=data.label.split(" ")[0].trim();
        this.$emit('TreeValue',this.TreeValue)
        // 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 = []
@@ -187,6 +210,31 @@
}
</script>
<style scoped>
<style lang="scss" scoped>
.app {
  overflow: auto;
  height: calc(100vh - 150px);
}
.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;
}
</style>