洪海涛 4 жил өмнө
parent
commit
3a61ae201a

+ 6 - 1
src/views/monthlyReport/childrenPage/editReport/components/Cascader.vue

@@ -1,7 +1,7 @@
 <template>
   <el-select
     v-model="selectValue"
-    multiple
+    :multiple="multiple"
     filterable
     remote
     size="small"
@@ -22,6 +22,11 @@
 export default {
   name: 'CascaderInfo',
   props: {
+    multiple: {
+      type: Boolean,
+      required: false,
+      default: () => true
+    },
     value: {
       type: [Array, String],
       required: false,

+ 46 - 7
src/views/monthlyReport/childrenPage/setReport/components/nodeTreeSet.vue

@@ -8,7 +8,8 @@
       <span slot-scope="{ node, data }" class="custom-tree-node">
         <span>
           <span v-if="data.category" style="border-radius: 50%;display: inline-block;padding: 2px 4px;line-height: 1;font-size: 12px;color: #fff;position: relative;margin-right: 5px;top: 0px;" :style="{backgroundColor: setOdinColor(data.category[0])}">{{ data.category[0].toUpperCase() }}</span>{{ node.label }}
-          <el-tag v-for="item in data.deptSetting" :key="item.id" closable type="info" size="small" style="margin-left: 20px;" @close="handleClose(item, data, 'tag')">{{ item.value }}</el-tag>
+          <el-tag v-for="item in data.deptSetting" :key="item.id" closable type="info" size="small" style="margin-left: 20px;" @close="handleClose(item, data, 'tag')">
+            <el-tooltip class="item" effect="dark" :content="find(item.id).deptPath" placement="top"><span>{{ item.value }}</span></el-tooltip></el-tag>
         </span>
       <span>
           <el-button class="teamDeleteText" type="text" @click="() => append(data)">设置</el-button>
@@ -23,11 +24,12 @@
           </el-select>
         </el-form-item>
         <el-form-item v-else label="团队">
-          <el-select v-model="setTeam.value" filterable remote style="width: 100%" reserve-keyword placeholder="请选择" :remote-method="remoteMethod">
-            <el-option v-for="item in options" :key="item.deptCode" :label="item.deptName" :value="item.deptCode">
-              {{ item.deptLevel }} {{ item.deptName }}
-            </el-option>
-          </el-select>
+          <Cascader ref="Cascader" v-model="setTeam.value" :multiple="false" />
+<!--          <el-select v-model="setTeam.value" filterable remote style="width: 100%" reserve-keyword placeholder="请选择" :remote-method="remoteMethod">-->
+<!--            <el-option v-for="item in options" :key="item.deptCode" :label="item.deptName" :value="item.deptCode">-->
+<!--              {{ item.deptLevel }} {{ item.deptName }}-->
+<!--            </el-option>-->
+<!--          </el-select>-->
         </el-form-item>
       </el-form>
     </normal-dialog>
@@ -42,9 +44,10 @@
 
 <script>
 import normalDialog from '@/components/dialog/normalDialog'
+import Cascader from '@/views/monthlyReport/childrenPage/editReport/components/Cascader'
 import { getDeptByKeyWord, createOdinDeptRel, deleteOdinBizRel, getOdinTree, getOdinNodeByParentId, addShowOdinNode } from '@/api/qualityMonthlyReport'
 export default {
-  components: { normalDialog },
+  components: { normalDialog, Cascader },
   data() {
     return {
       deleteTeamBizDialog: false, // 删除
@@ -73,6 +76,11 @@ export default {
       }
     }
   },
+  computed: {
+    selectEnum() {
+      return this.$store.state.monthlyReportEdit.selectEnum
+    }
+  },
   watch: {
     filterText(val) {
       this.$refs.tree.filter(val)
@@ -81,6 +89,8 @@ export default {
   created() {
     this.getOdinTree(null)
     this.getOdinNodeByParentId(138396)
+    // 获取部门数据
+    this.$store.dispatch('monthlyReportEdit/setSelectEnum')
   },
   methods: {
     getOdinTree(e) {
@@ -138,6 +148,10 @@ export default {
           list.push({ deptId: item.deptCode, deptName: item.deptName })
         }
       })
+      // console.log(this.setTeam.value, this.find(this.setTeam.value))
+      const setTeam = this.find(this.setTeam.value)
+      list.push({ deptId: setTeam.value, deptName: setTeam.label })
+      // find()
       const obj = { ...this.nodeData, depts: list, odinNsName: this.typeVal.ns }
       const res = await createOdinDeptRel(obj)
       if (res.code === 200) {
@@ -154,10 +168,14 @@ export default {
     },
     append(val) { // 设置
       this.setTeam = {}
+      setTimeout(() => {
+        this.$refs.Cascader.selectValue = []
+      })
       this.typeVal = val
       this.showTreeNodeDialog = true
       if (val === 'add') return
       this.nodeData = { odinId: val.id, odinNs: val.name, odinNsName: val.ns }
+      this.$forceUpdate()
     },
     // 设置odin节点前置图标颜色
     setOdinColor(keyword) {
@@ -166,6 +184,27 @@ export default {
       if (keyword === 's') return 'rgba(14,180,0,0.65)'
       if (keyword === 'c') return '#E09D6C'
       return ''
+    },
+    // 查找对应的部门数据
+    find(id) {
+      console.log(187, id)
+      let name = ''
+      const run = (arr) => {
+        for (let i = 0; i < arr.length; i++) {
+          const elm = arr[i]
+          if (`${elm.value}` === `${id}`) {
+            console.log(elm)
+            name = elm
+            return
+          }
+          if (elm.children) {
+            run(elm.children)
+          }
+        }
+      }
+      // console.log(this.selectEnum)
+      run(this.selectEnum)
+      return name
     }
   }
 }