Przeglądaj źródła

性能验证审核修改专业组组长显示权限

zhonghuizhen 6 miesięcy temu
rodzic
commit
98bace0391
1 zmienionych plików z 86 dodań i 40 usunięć
  1. 86 40
      src/views/business/performance/recordVerify.vue

+ 86 - 40
src/views/business/performance/recordVerify.vue

@@ -234,29 +234,33 @@ export default {
       searchParam['Q^xing_neng_zhi_bia^SL'] = this.searchFormData.xingNengZhiBiao
       searchParam['Q^shi_yan_xiang_mu_^S'] = this.searchFormData.shiYanXiangMu
       searchParam['Q^shi_yan_fang_fa_^S'] = this.searchFormData.shiYanFangFa
+      
       const userRole = this.$store.getters.userInfo.role || []
       const jsfzrFlag = userRole.some(role => role.alias === 'jsfzr') 
-      const zcFlag = userRole.some(role => role.alias === 'zhsfzr') 
-     // 技术负责人,看到已审核的数据
+      const zcFlag = userRole.some(role => role.alias === 'zhsfzr')
+      
+      // 技术负责人,看到已审核的数据
       if (jsfzrFlag) {
-         searchParam['Q^shi_fou_guo_shen_^S'] = '已审核'
-         return ActionUtils.formatParams(searchParam, this.pagination, this.sorts)
+        searchParam['Q^shi_fou_guo_shen_^S'] = '已审核'
+        return ActionUtils.formatParams(searchParam, this.pagination, this.sorts)
       }
-      if (zcFlag) {// 专业组组长,看到自己主部门已编制的数据
-         searchParam['Q^shi_fou_guo_shen_^S'] = '已编制'
-         const { mainPosition } = this.$store.getters    //主部门数据
-         if (mainPosition) {
-            searchParam['Q^bian_zhi_bu_men_^S'] = mainPosition.id
-         }
-         return ActionUtils.formatParams(searchParam, this.pagination, this.sorts)
-      }
-      //系统管理员  看到所有已编制\已审核数据
-  
-      let parameters = [     //默认查询
-        {
-            parameters: [
+      
+      // 专业组组长,看到自己部门已编制的数据
+      if (zcFlag) {
+        searchParam['Q^shi_fou_guo_shen_^S'] = '已编制'
+        
+        const positions = this.$store.getters.userInfo.positions || []
+        if (positions.length > 0) {
+          // 动态构建部门查询条件
+          const departmentParams = positions.map((position, index) => ({
+            key: 'Q^bian_zhi_bu_men_^S',
+            value: position.id,
+            param: `bumen${index + 1}`
+          }))
+          
+          // 构建查询参数
+          const parameters = [
             {
-              relation: 'OR',
               parameters: [
                 {
                   key: 'Q^shi_fou_guo_shen_^S',
@@ -264,51 +268,93 @@ export default {
                   param: 'status'
                 },
                 {
-                  key: 'Q^shi_fou_guo_shen_^S',
-                  value: '已审核',
-                  param: 'status1'
+                  relation: 'OR',
+                  parameters: departmentParams
                 }
               ]
             }
           ]
+          
+          // 处理搜索栏的其他查询条件
+          this.handleAdditionalSearchParams(searchParam, parameters)
+          
+          return {
+            parameters: parameters,
+            ...ActionUtils.formatParams(null, this.pagination, this.sorts)
+          }
         }
-      ]
-      if (Object.keys(searchParam).length) { // 搜索栏查询
-        // 查询条件不为空,则加入parameters
-        const statusArr = Object.keys(searchParam).filter((key) =>
+        
+        // 如果没有部门信息,直接返回基础参数
+        return ActionUtils.formatParams(searchParam, this.pagination, this.sorts)
+      }
+      
+      // 系统管理员和其他用户 - 看到所有已编制\已审核数据,不限制部门
+      return this.buildDefaultSearchParams(searchParam)
+    },
+
+    // 处理额外的搜索参数
+    handleAdditionalSearchParams(searchParam, parameters) {
+      if (Object.keys(searchParam).length) {
+        const statusArr = Object.keys(searchParam).filter(key => 
           key.includes('shi_fou_guo_shen_')
         )
         const notstatusArr = Object.keys(searchParam).filter(
-          (key) => key.includes('shi_fou_guo_shen_') === false
+          key => !key.includes('shi_fou_guo_shen_')
         )
+        
+        // 更新状态查询条件
         if (statusArr.length > 0) {
-          // 加入搜索栏状态查询
           parameters[0].parameters[0] = {
             key: statusArr[0],
             value: searchParam[statusArr[0]],
             param: 'status'
           }
         }
-        if (notstatusArr.length > 0) {  
-          // 加入搜索栏其他查询
-          notstatusArr.forEach((el) => {
-            parameters[0].parameters.push({
-              key: el,
-              value: searchParam[el]
-            })
+        
+        // 添加其他查询条件
+        notstatusArr.forEach(el => {
+          parameters[0].parameters.push({
+            key: el,
+            value: searchParam[el]
           })
+        })
+      }
+    },
 
+    // 构建默认搜索参数(管理员和其他用户)
+    buildDefaultSearchParams(searchParam) {
+      const parameters = [
+        {
+          parameters: [
+            {
+              relation: 'OR',
+              parameters: [
+                {
+                  key: 'Q^shi_fou_guo_shen_^S',
+                  value: '已编制',
+                  param: 'status'
+                },
+                {
+                  key: 'Q^shi_fou_guo_shen_^S',
+                  value: '已审核',
+                  param: 'status1'
+                }
+              ]
+            }
+            // 管理员不添加部门限制条件
+          ]
         }
+      ]
+      
+      // 处理搜索栏的查询条件
+      if (Object.keys(searchParam).length) {
+        this.handleAdditionalSearchParams(searchParam, parameters)
       }
-      const param = {
+      
+      return {
         parameters: parameters,
         ...ActionUtils.formatParams(null, this.pagination, this.sorts)
       }
-      return param
-     // parameters[0].parameters.push({
-     //   key: 'Q^di_dian_^S',
-      //  value: second || first
-     // }) 
     },
     /**
      * 处理分页事件