Browse Source

fix: 修改bug

shiyanyu 1 day ago
parent
commit
91a2ecb9a1

+ 6 - 34
src/components/costAudit/EstablishmentDialog.vue

@@ -310,7 +310,7 @@
             multiple
           >
             <el-option
-              v-for="(item, index) in areaUserList"
+              v-for="(item, index) in areaLeaderUserList"
               :key="index"
               :label="item.fullname"
               :value="item.userId"
@@ -372,7 +372,7 @@
     addProjectApproval,
     editProjectApproval,
   } from '@/api/auditInitiation'
-  import { getAllUserList, getTaskUserList } from '@/api/uc'
+  import { getTaskUserList } from '@/api/uc'
   import { dictMixin } from '@/mixins/useDict'
   import { getDefaultDem, getOrgListByDemId } from '@/api/annualReviewPlan'
   export default {
@@ -412,7 +412,6 @@
     data() {
       return {
         // 用户信息
-        userList: [],
         unitList: [],
         OrgList: [],
         areaOrgList: [],
@@ -504,7 +503,6 @@
             },
           ],
         },
-        areaUserList: [],
         // 负责人列表:通过 getTaskUserList 获取
         leaderUserList: [],
         areaLeaderUserList: [],
@@ -643,8 +641,7 @@
     mounted() {
       this.getAllUnitList()
       this.getDefaultDem()
-      this.getUser() // 获取用户信息
-      this.getLeaderUser() // 获取负责人列表
+      this.getLeaderUser() // 获取负责人列表(负责人/成员共用)
     },
     methods: {
       getAllUnitList() {
@@ -674,18 +671,10 @@
           }
         })
       },
-      // 获取用户信息(用于任务组成员)
-      getUser() {
-        getAllUserList()
-          .then((res) => {
-            this.userList = res.value || []
-          })
-          .catch(() => {})
-      },
 
-      // 获取负责人列表(用于监审任务负责人)
+      // 获取负责人列表(负责人/任务组成员共用同一列表)
       getLeaderUser() {
-        getTaskUserList()
+        getTaskUserList({ code: 'dbfzr,jsztry' })
           .then((res) => {
             this.leaderUserList = res.value || []
             this.areaLeaderUserList = this.leaderUserList
@@ -749,29 +738,12 @@
       handleRegionChange(region) {
         if (region && region.code) {
           this.formData.areaCode = region.code
-          // 筛选一下该地区的用户(任务组成员)
-          this.filterUser(region)
-          // 筛选一下该地区的负责人
+          // 筛选一下该地区的负责人/成员
           this.filterLeaderUser(region)
           // 筛选一下该地区的主体
           this.filterOrg(region)
         }
       },
-      filterUser(region) {
-        if (region.level == 0) {
-          this.areaUserList = this.userList.filter(
-            (item) => item.provinceCode === region.code
-          )
-        } else if (region.level == 1) {
-          this.areaUserList = this.userList.filter(
-            (item) => item.cityCode == region.code
-          )
-        } else if (region.level == 2) {
-          this.areaUserList = this.userList.filter(
-            (item) => item.countyCode == region.code
-          )
-        }
-      },
       filterLeaderUser(region) {
         if (region.level == 0) {
           this.areaLeaderUserList = this.leaderUserList.filter(

+ 55 - 29
src/components/task/mounTaskComponents/workflowTab.vue

@@ -278,35 +278,49 @@
     <el-dialog
       title="环节明细"
       :visible.sync="dialogs.detailDialogVisible"
-      width="50%"
+      width="60%"
       :modal="false"
       append-to-body
     >
-      <el-row :gutter="16">
-        <el-col :span="12">
-          流程环节:{{ detailRow.processNodeValue || '-' }}
-        </el-col>
-        <el-col :span="12">
-          环节类型:{{
-            getDictName('processNodeType', detailRow.nodeType) || '-'
-          }}
-        </el-col>
-      </el-row>
-      <el-row :gutter="16" style="margin-top: 10px">
-        <el-col :span="12">办理人员:{{ detailRow.mainUserName }}</el-col>
-      </el-row>
-      <el-row :gutter="16" style="margin-top: 10px">
-        <el-col :span="24">办理意见:{{ detailRow.actRemarks || '-' }}</el-col>
-      </el-row>
-      <el-row :gutter="16" style="margin-top: 10px">
-        <el-col :span="12">要求办结期限:{{ detailRow.endTime || '-' }}</el-col>
-        <el-col :span="12">
-          开始时间:{{ detailRow.actStartTime || '-' }}
-        </el-col>
-      </el-row>
-      <el-row :gutter="16" style="margin-top: 10px">
-        <el-col :span="12">结束时间:{{ detailRow.actEndTime || '-' }}</el-col>
-      </el-row>
+      <el-table :data="detailTableData" border size="mini" style="width: 100%">
+        <el-table-column
+          prop="sourceTypeName"
+          label="执行来源"
+          header-align="center"
+          align="center"
+          width="90"
+        />
+        <el-table-column
+          prop="executorName"
+          label="执行人"
+          header-align="center"
+          align="center"
+          width="180"
+          show-overflow-tooltip
+        />
+        <el-table-column
+          prop="actionName"
+          label="执行事项"
+          header-align="center"
+          align="center"
+          show-overflow-tooltip
+        />
+        <el-table-column
+          prop="executeTime"
+          label="执行时间"
+          header-align="center"
+          align="center"
+          width="160"
+        />
+        <el-table-column
+          prop="remark"
+          label="备注"
+          header-align="center"
+          align="center"
+          show-overflow-tooltip
+        />
+      </el-table>
+
       <div slot="footer" class="dialog-footer">
         <el-button @click="dialogs.detailDialogVisible = false">关闭</el-button>
       </div>
@@ -336,8 +350,8 @@
     },
     data() {
       return {
-        // 环节明细数据
-        detailRow: {},
+        // 环节明细数据(表格行数据)
+        detailRow: [],
         formData: {
           currentStepRules: {
             endTime: [
@@ -395,6 +409,17 @@
         const prevStep = stepList[currentIndex - 1]
         return !prevStep.endTime
       },
+      detailTableData() {
+        const list = Array.isArray(this.detailRow) ? this.detailRow : []
+        return list.map((row) => ({
+          sourceTypeName: row?.sourceTypeName || '-',
+          executorName: row?.executorName || row?.mainUserName || '-',
+          actionName: row?.actionName || row?.processNodeValue || '-',
+          executeTime:
+            row?.executeTime || row?.actStartTime || row?.actEndTime || '-',
+          remark: row?.remark || row?.actRemarks || '-',
+        }))
+      },
     },
     watch: {
       'workflowData.stepList': {
@@ -413,7 +438,8 @@
     methods: {
       // 查看环节明细
       handleViewStepDetail(row) {
-        this.detailRow = { ...(row || {}) }
+        const list = row && Array.isArray(row.detailList) ? row.detailList : []
+        this.detailRow = list
         this.dialogs.detailDialogVisible = true
       },
       formatterUserList(userId) {

+ 6 - 3
src/views/costAudit/auditInfo/auditManage/mainDetails.vue

@@ -434,7 +434,10 @@
       // 获取下一步环节办理人员列表
       async loadNextUserList() {
         try {
-          const res = await getTaskUserList()
+          const res = await getTaskUserList({
+            code: 'jsztry',
+            projectId: this.project.projectId,
+          })
           this.nextUserList = res.value || []
         } catch (e) {
           this.nextUserList = []
@@ -779,8 +782,8 @@
   }
 
   .process-dialog .form-label {
-    width: 80px;
-    text-align: left;
+    width: 100px;
+    text-align: right;
     margin-right: 8px;
     color: #303133;
     font-size: 14px;

+ 83 - 59
src/views/costAudit/baseInfo/catalogManage/index.vue

@@ -197,6 +197,7 @@
         <el-table-column label="操作" width="360" fixed="right" align="center">
           <template slot-scope="scope">
             <div>
+              <!-- 前4个按钮保持展示 -->
               <el-button
                 v-if="$permission.getUserInfo().dataScope === 0"
                 v-region-permission="{
@@ -245,70 +246,81 @@
               >
                 修改内容
               </el-button>
-              <el-button
-                type="text"
-                size="mini"
-                @click="handleDropdownCommand('infoMaintain', scope.row)"
-              >
-                信息维护
-              </el-button>
-              <el-button
-                v-if="$permission.getUserInfo().dataScope === 0"
-                v-region-permission="{
-                  category: 'catalogManage',
-                  action: 'edit',
-                }"
-                type="text"
-                @click.native="handleDropdownCommand('status', scope.row)"
-              >
-                {{ scope.row.status === 1 ? '停用' : '启用' }}
-              </el-button>
-              <el-button
-                v-if="$permission.getUserInfo().dataScope === 0"
-                v-region-permission="{
-                  category: 'catalogManage',
-                  action: 'delete',
-                }"
-                type="text"
-                class="delete-btn"
-                @click.native="handleDropdownCommand('delete', scope.row)"
-              >
-                删除
-              </el-button>
-              <!-- 第四个以后的按钮放入更多下拉菜单 -->
-              <!-- <el-dropdown v-if="
-                $permission.getUserInfo().dataScope === 0 &&
-                scope.row.status != 0 &&
-                scope.row.nodeType !== 'nr'
-              " v-region-permission="{
-                  category: 'catalogManage',
-                  action: 'edit',
-                }" trigger="click" class="ml10">
-                <el-button type="text" size="mini">
-                  更多
-                  <i class="el-icon-arrow-down el-icon--right"></i>
+
+              <!-- 当操作按钮超过4个时,其余按钮收纳到“更多” -->
+              <template v-if="shouldUseMore(scope.row)">
+                <el-dropdown trigger="click" class="ml10">
+                  <el-button type="text" size="mini">
+                    更多
+                    <i class="el-icon-arrow-down el-icon--right"></i>
+                  </el-button>
+                  <el-dropdown-menu slot="dropdown">
+                    <el-dropdown-item
+                      @click.native="
+                        handleDropdownCommand('infoMaintain', scope.row)
+                      "
+                    >
+                      信息维护
+                    </el-dropdown-item>
+                    <el-dropdown-item
+                      v-if="$permission.getUserInfo().dataScope === 0"
+                      v-region-permission="{
+                        category: 'catalogManage',
+                        action: 'edit',
+                      }"
+                      divided
+                      @click.native="handleDropdownCommand('status', scope.row)"
+                    >
+                      {{ scope.row.status === 1 ? '停用' : '启用' }}
+                    </el-dropdown-item>
+                    <el-dropdown-item
+                      v-if="$permission.getUserInfo().dataScope === 0"
+                      v-region-permission="{
+                        category: 'catalogManage',
+                        action: 'delete',
+                      }"
+                      class="dropdown-delete"
+                      @click.native="handleDropdownCommand('delete', scope.row)"
+                    >
+                      删除
+                    </el-dropdown-item>
+                  </el-dropdown-menu>
+                </el-dropdown>
+              </template>
+
+              <!-- 不超过4个时,仍按原方式平铺显示 -->
+              <template v-else>
+                <el-button
+                  type="text"
+                  size="mini"
+                  @click="handleDropdownCommand('infoMaintain', scope.row)"
+                >
+                  信息维护
                 </el-button>
-                <el-dropdown-menu slot="dropdown">
-                  <el-dropdown-item v-region-permission="{
-                    category: 'catalogManage',
-                    action: 'edit',
-                  }" @click.native="handleDropdownCommand('infoMaintain', scope.row)">
-                    信息维护
-                  </el-dropdown-item>
-                  <el-dropdown-item v-region-permission="{
+                <el-button
+                  v-if="$permission.getUserInfo().dataScope === 0"
+                  v-region-permission="{
                     category: 'catalogManage',
                     action: 'edit',
-                  }" divided @click.native="handleDropdownCommand('status', scope.row)">
-                    {{ scope.row.status === 1 ? '停用' : '启用' }}
-                  </el-dropdown-item>
-                  <el-dropdown-item v-region-permission="{
+                  }"
+                  type="text"
+                  @click.native="handleDropdownCommand('status', scope.row)"
+                >
+                  {{ scope.row.status === 1 ? '停用' : '启用' }}
+                </el-button>
+                <el-button
+                  v-if="$permission.getUserInfo().dataScope === 0"
+                  v-region-permission="{
                     category: 'catalogManage',
                     action: 'delete',
-                  }" @click.native="handleDropdownCommand('delete', scope.row)">
-                    删除
-                  </el-dropdown-item>
-                </el-dropdown-menu>
-              </el-dropdown> -->
+                  }"
+                  type="text"
+                  class="delete-btn"
+                  @click.native="handleDropdownCommand('delete', scope.row)"
+                >
+                  删除
+                </el-button>
+              </template>
             </div>
           </template>
         </el-table-column>
@@ -1720,6 +1732,10 @@
             })
           })
       },
+      // 操作按钮超过4个时,使用“更多”下拉(目前 dataScope=0 时按钮数量固定超过4)
+      shouldUseMore() {
+        return this.$permission.getUserInfo().dataScope === 0
+      },
       // 添加处理下拉菜单命令的方法
       handleDropdownCommand(command, row) {
         switch (command) {
@@ -2313,4 +2329,12 @@
       }
     }
   }
+
+  .dropdown-delete {
+    color: #f56c6c;
+  }
+
+  .dropdown-delete:hover {
+    color: #f56c6c;
+  }
 </style>

+ 35 - 9
src/views/costAudit/projectInfo/auditTaskManage/taskProgressManage/index.vue

@@ -133,7 +133,8 @@
               v-if="
                 row.status != 400 &&
                 row.status != 300 &&
-                row.currentNode !== 'gd'
+                row.currentNode !== 'gd' &&
+                row.warningStatus !== 'green'
               "
               size="mini"
               type="text"
@@ -214,6 +215,16 @@
               ></el-option>
             </el-select>
           </el-form-item>
+          <el-form-item label="选择督办时间:">
+            <el-date-picker
+              v-model="urgeForm.requireTime"
+              type="date"
+              placeholder="请选择督办日期"
+              style="width: 100%"
+              format="yyyy-MM-dd"
+              value-format="yyyy-MM-dd"
+            ></el-date-picker>
+          </el-form-item>
           <el-form-item label="督办要求:">
             <el-input
               v-model="urgeForm.content"
@@ -359,7 +370,7 @@
   import { dictMixin } from '@/mixins/useDict'
   import { getAllUnitList } from '@/api/auditEntityManage'
   import CostAuditTable from '@/components/costAudit/CostAuditTable.vue'
-  import { getUserList } from '@/api/uc'
+  import { getUserList, getTaskUserList } from '@/api/uc'
   import { getCostProjectDetail } from '@/api/taskCustomizedRelease.js'
   import { doProcessBtn } from '@/api/dataPreliminaryReview'
   import TaskDetail from '@/components/task/taskDetail.vue'
@@ -525,6 +536,7 @@
         },
         urgeForm: {
           remindPerson: '',
+          requireTime: '',
           content: '',
           // sendType: '站内消息',
         },
@@ -551,6 +563,14 @@
       this.generateTableData()
     },
     methods: {
+      async fetchUrgeUserList() {
+        try {
+          const res = await getTaskUserList({ code: 'dbfzr' })
+          return (res && res.value) || []
+        } catch (e) {
+          return []
+        }
+      },
       async fetchUserListByProjectId({ projectId, type }) {
         if (!projectId) return []
         try {
@@ -560,6 +580,7 @@
           return []
         }
       },
+
       getStatusName(status) {
         // 100待提交、200审核中、400办结、300中止
         switch (status) {
@@ -847,15 +868,13 @@
         this.currentTask = row
         this.urgeForm = {
           remindPerson: '',
+          requireTime: '',
           content: '',
           // sendType: [],
         }
 
-        const projectId = row?.projectId || row?.projectID || row?.id || ''
-        this.urgeUserList = await this.fetchUserListByProjectId({
-          projectId,
-          type: 1,
-        })
+        // 督办人员下拉:走 getTaskUserList,参数 code='dbfzr'
+        this.urgeUserList = await this.fetchUrgeUserList()
 
         this.showUrgeForm = true
       },
@@ -863,6 +882,7 @@
         this.showUrgeForm = false
         this.urgeForm = {
           remindPerson: '',
+          requireTime: '',
           content: '',
           // sendType: [],
         }
@@ -873,6 +893,7 @@
         const projectId =
           this.currentTask.projectId || this.currentTask.projectID || ''
         const supervisorId = this.urgeForm.remindPerson
+        const requireTime = this.urgeForm.requireTime
         const requireContent = (this.urgeForm.content || '').trim()
         if (!projectId) {
           this.$message.warning('缺少项目ID,无法发送督办')
@@ -892,12 +913,17 @@
           spinner: 'el-icon-loading',
           background: 'rgba(0,0,0,0.3)',
         })
-        createSuperviseTask({ projectId, supervisorId, requireContent })
+        createSuperviseTask({
+          projectId,
+          supervisorId,
+          requireContent,
+          requireTime,
+        })
           .then((res) => {
             if (res && Number(res.code) === 200) {
               this.$message.success('督办信息已发送')
               this.showUrgeForm = false
-              this.urgeForm = { remindPerson: '', content: '' }
+              this.urgeForm = { remindPerson: '', content: '', requireTime: '' }
               this.currentTask = null
               this.generateTableData()
             } else {