Jelajahi Sumber

fix:修改弹窗按钮在右下角显示 表格居中

luzhixia 2 minggu lalu
induk
melakukan
6242ab4088
22 mengubah file dengan 259 tambahan dan 86 penghapusan
  1. 1 1
      src/components/costAudit/MultiAttachmentDialog.vue
  2. 1 1
      src/components/costAudit/OrgSelectDialog.vue
  3. 1 1
      src/components/costAudit/UnitSelectDialog.vue
  4. 109 22
      src/components/costAudit/UploadComponent.vue
  5. 8 0
      src/components/task/cbjsInfo.vue
  6. 11 10
      src/components/task/components/costAudit.vue
  7. 13 2
      src/components/task/components/extractMaterial.vue
  8. 23 4
      src/components/task/components/workDraft.vue
  9. 1 1
      src/components/task/taskInfo.vue
  10. 1 1
      src/styles/element-style-custom.scss
  11. 1 1
      src/views/costAudit/auditInfo/auditManage/collectiveMain.vue
  12. 13 3
      src/views/costAudit/auditInfo/auditManage/extractMaterial.vue
  13. 8 0
      src/views/costAudit/auditInfo/auditManage/index.vue
  14. 1 0
      src/views/costAudit/baseInfo/auditDocManage/index.vue
  15. 1 1
      src/views/costAudit/baseInfo/statistics/components/TaskCustomizedReleaseDialog.vue
  16. 9 9
      src/views/costAudit/baseInfo/statistics/components/auditOpinion.vue
  17. 29 2
      src/views/costAudit/baseInfo/statistics/components/cbjsInfo.vue
  18. 11 10
      src/views/costAudit/baseInfo/statistics/components/costAudit.vue
  19. 2 2
      src/views/costAudit/baseInfo/statistics/components/extractMaterial.vue
  20. 13 13
      src/views/costAudit/baseInfo/statistics/components/workDraft.vue
  21. 1 1
      src/views/costAudit/projectInfo/auditTaskManage/taskCustomizedRelease/auditNoticeTab.vue
  22. 1 1
      src/views/costAudit/projectInfo/auditTaskManage/taskCustomizedRelease/tabs.vue

+ 1 - 1
src/components/costAudit/MultiAttachmentDialog.vue

@@ -232,6 +232,6 @@
   }
 
   .dialog-footer {
-    text-align: center;
+    text-align: right;
   }
 </style>

+ 1 - 1
src/components/costAudit/OrgSelectDialog.vue

@@ -155,6 +155,6 @@
   }
 
   .dialog-footer {
-    text-align: center;
+    text-align: right;
   }
 </style>

+ 1 - 1
src/components/costAudit/UnitSelectDialog.vue

@@ -142,6 +142,6 @@
   }
 
   .dialog-footer {
-    text-align: center;
+    text-align: right;
   }
 </style>

+ 109 - 22
src/components/costAudit/UploadComponent.vue

@@ -85,23 +85,28 @@
     <!-- 附件列表(3个以内) v-if="files.length <= 3" -->
     <div class="file-list-simple">
       <div v-for="(file, index) in files" :key="index" class="file-item">
-        <i class="el-icon-document"></i>
+        <i
+          class="fileIcon iconfont-5039297"
+          :class="fileIcon(file.fileExtension)"
+        ></i>
         <span class="file-fileName" @click="handlePreview(file)">
           {{ file.fileName }}
         </span>
+        <!-- 状态标签 -->
+        <span class="file-status">
+          <el-tag size="mini" :type="getStatusType(file.status)">
+            {{ getStatusText(file.status) }}
+          </el-tag>
+        </span>
         <span
           class="delete-btn"
           :disabled="isDisabled"
           :class="{ 'disabled-text': isDisabled }"
           @click="removeFile(index)"
         >
-          <i class="el-icon-close"></i>
-        </span>
-        <!-- 状态标签 -->
-        <span style="margin-left: 10px">
-          <el-tag size="mini" :type="getStatusType(file.status)">
-            {{ getStatusText(file.status) }}
-          </el-tag>
+          <el-tooltip effect="dark" content="删除" placement="top">
+            <i class="iconfont-5039297 icon-shanchu1"></i>
+          </el-tooltip>
         </span>
       </div>
     </div>
@@ -398,6 +403,17 @@
         }
         return map[status] || status
       },
+      // 添加文件图标类名方法
+      fileIcon(extension) {
+        const map = {
+          xlsx: 'icon-exel',
+          xls: 'icon-exel',
+          doc: 'icon-word',
+          docx: 'icon-word',
+          pdf: 'icon-word',
+        }
+        return map[extension] || 'icon-word'
+      },
       getStatusType(status) {
         const map = {
           pending: 'warning',
@@ -438,43 +454,114 @@
 </script>
 <style scoped lang="scss">
   @import '@/styles/costAudit.scss';
+  // 上传按钮区域
   .upload-buttons {
     display: flex;
+    flex-wrap: wrap;
     gap: 10px;
     margin-bottom: 20px;
   }
+
+  // 文件列表
   .file-list-simple {
-    margin-bottom: 0px;
+    margin-bottom: 0;
   }
 
+  // 文件项样式
   .file-item {
     display: flex;
     align-items: center;
-    padding: 8px 0;
-    border-bottom: 1px dashed #ebeef5;
+    padding: 12px 15px;
+    margin-bottom: 8px;
+    background-color: #fff;
+    border: 1px solid #ebeef5;
+    border-radius: 6px;
     font-size: 14px;
+    transition: all 0.3s ease;
+
+    &:hover {
+      border-color: $base-color-default;
+      box-shadow: 0 2px 8px 0 rgba(0, 0, 0, 0.06);
+      transform: translateY(-1px);
+    }
+
+    &:last-child {
+      margin-bottom: 0;
+    }
   }
 
+  // 文件图标
+  .fileIcon {
+    font-size: 24px;
+    color: $base-color-default;
+    margin-right: 12px;
+    width: 40px;
+    height: 40px;
+    display: flex;
+    align-items: center;
+    justify-content: center;
+    background-color: rgba($base-color-default, 0.1);
+    border-radius: 4px;
+    transition: all 0.3s ease;
+
+    .file-item:hover & {
+      background-color: rgba($base-color-default, 0.2);
+    }
+  }
+
+  // 文件名
+  .file-fileName {
+    flex: 1;
+    color: #303133;
+    overflow: hidden;
+    text-overflow: ellipsis;
+    white-space: nowrap;
+    transition: all 0.3s ease;
+
+    &:hover {
+      color: $base-color-default;
+      cursor: pointer;
+      text-decoration: underline;
+    }
+  }
+
+  // 状态标签
+  .file-status {
+    margin: 0 15px;
+  }
+
+  // 删除按钮
   .file-item .delete-btn {
-    margin-left: auto;
-    color: #f56c6c;
+    margin-left: 10px;
+    color: #909399;
     cursor: pointer;
+    font-size: 16px;
+    padding: 4px;
+    border-radius: 4px;
+    transition: all 0.3s ease;
+
+    &:not(.disabled-text):hover {
+      color: #f56c6c;
+      background-color: rgba(245, 108, 108, 0.1);
+    }
+
+    &.disabled-text {
+      cursor: not-allowed;
+      opacity: 0.6;
+    }
   }
+
+  // 表格形式文件列表
   .file-list-table {
     margin-top: 10px;
+    background-color: #fff;
+    border-radius: 6px;
+    overflow: hidden;
   }
 
+  // 表格底部按钮
   .table-footer {
     margin-top: 20px;
     text-align: right;
   }
-  .upload-container {
-    margin-top: 0px !important;
-  }
-  .file-fileName {
-    &:hover {
-      color: $base-color-default;
-      cursor: pointer;
-    }
-  }
 </style>

+ 8 - 0
src/components/task/cbjsInfo.vue

@@ -42,6 +42,7 @@
         >
           <cost-audit
             :id="id"
+            ref="costAudit"
             :disabled="true"
             :selected-project="selectedProject"
           />
@@ -264,6 +265,13 @@
           this.$nextTick(() => {
             this.triggerSubmitDataLoad()
           })
+        } else if (tab && tab.name === 'costAudit') {
+          // 切到成本审核时,调用子组件刷新
+          this.$nextTick(() => {
+            if (this.$refs && this.$refs.costAudit) {
+              this.$refs.costAudit.getDetail()
+            }
+          })
         }
       },
       // 触发报送资料子组件加载

+ 11 - 10
src/components/task/components/costAudit.vue

@@ -7,7 +7,7 @@
         :rules="rules"
         :disabled="disabled"
       >
-        <el-row>
+        <!-- <el-row>
           <el-col :span="6">
             <el-form-item label="" prop="catalogId">
               <div
@@ -34,7 +34,7 @@
               ></el-input>
             </el-form-item>
           </el-col>
-        </el-row>
+        </el-row> -->
         <el-row :gutter="20">
           <el-col :span="6">
             <el-form-item label="" prop="templateType">
@@ -324,15 +324,16 @@
       getDetail() {
         this.getActiveCostVerifyFormListByType()
         this.getActiveCostVerifyFormList()
+        this.loadTemplateData()
         // 获取项目的详情数据
-        getDetail({ id: this.selectedProject.projectId }).then((res) => {
-          if (res.code === 200) {
-            this.project = res.value
-            this.auditForm.catalogId = res.value.catalogId
-            // this.auditForm.surveyTemplateId = '9368f1cf-77e7-49fe-8502-4a7a2da99668'
-            this.loadTemplateData()
-          }
-        })
+        // getDetail({ id: this.selectedProject.projectId }).then((res) => {
+        //   if (res.code === 200) {
+        //     this.project = res.value
+        //     this.auditForm.catalogId = res.value.catalogId
+        //     // this.auditForm.surveyTemplateId = '9368f1cf-77e7-49fe-8502-4a7a2da99668'
+        //     this.loadTemplateData()
+        //   }
+        // })
       },
       // 获取所有模板类型为固定表的所有启用成本调查表数据
       getActiveCostVerifyFormListByType() {

+ 13 - 2
src/components/task/components/extractMaterial.vue

@@ -24,7 +24,13 @@
         width="55"
         align="center"
       ></el-table-column> -->
-      <el-table-column prop="id" label="编号" width="80">
+      <el-table-column
+        prop="id"
+        label="编号"
+        width="80"
+        header-align="center"
+        align="center"
+      >
         <template slot-scope="scope">
           {{ scope.$index + 1 }}
         </template>
@@ -33,24 +39,29 @@
         prop="materialName"
         label="材料名称"
         width="200"
+        align="center"
+        header-align="center"
         show-overflow-tooltip
       ></el-table-column>
       <el-table-column
         prop="pages"
         label="页数"
         width="100"
+        header-align="center"
         align="center"
       ></el-table-column>
       <el-table-column
         prop="remark"
         label="备注"
         min-width="200"
+        header-align="center"
         show-overflow-tooltip
       ></el-table-column>
       <el-table-column
         prop="createTime"
         label="提取时间"
         width="200"
+        header-align="center"
         :formatter="formatDate"
         align="center"
         show-overflow-tooltip
@@ -668,7 +679,7 @@
   }
 
   .dialog-footer {
-    text-align: center;
+    text-align: right;
   }
 
   /* 操作按钮样式优化 */

+ 23 - 4
src/components/task/components/workDraft.vue

@@ -32,7 +32,7 @@
       border
     >
       <!-- <el-table-column type="selection" width="55"></el-table-column> -->
-      <el-table-column prop="id" label="序号" width="80">
+      <el-table-column prop="id" label="序号" width="80" align="center">
         <template slot-scope="scope">
           {{ scope.$index + 1 }}
         </template>
@@ -41,19 +41,38 @@
         prop="auditSubject"
         label="核增核减科目"
         width="180"
+        show-overflow-tooltip
+        header-align="center"
+        align="center"
       ></el-table-column>
       <el-table-column
         prop="basicInfo"
         label="基本情况"
         width="200"
+        show-overflow-tooltip
+        header-align="center"
+        align="left"
+      ></el-table-column>
+      <el-table-column
+        prop="auditDesc"
+        label="核增核减说明"
+        show-overflow-tooltip
+        header-align="center"
+        align="left"
       ></el-table-column>
-      <el-table-column prop="auditDesc" label="核增核减说明"></el-table-column>
       <el-table-column
         prop="auditTime"
         label="时间"
-        width="180"
+        width="100"
+        header-align="center"
+        align="center"
       ></el-table-column>
-      <el-table-column label="附件" width="150">
+      <el-table-column
+        label="附件"
+        width="150"
+        header-align="center"
+        align="center"
+      >
         <template slot-scope="scope">
           <el-button
             v-if="scope.row.attachments && scope.row.attachments.length > 0"

+ 1 - 1
src/components/task/taskInfo.vue

@@ -2632,7 +2632,7 @@
   }
 
   .dialog-footer {
-    text-align: center;
+    text-align: right;
     padding-top: 10px;
   }
   .document-edit-container {

+ 1 - 1
src/styles/element-style-custom.scss

@@ -188,7 +188,7 @@ $--font-path: '~element-ui/lib/theme-chalk/fonts';
   }
 
   .dialog-footer {
-    text-align: center;
+    text-align: right;
   }
 }
 

+ 1 - 1
src/views/costAudit/auditInfo/auditManage/collectiveMain.vue

@@ -1248,7 +1248,7 @@
     }
 
     .dialog-footer {
-      text-align: center;
+      text-align: right;
     }
 
     .cancel-btn,

+ 13 - 3
src/views/costAudit/auditInfo/auditManage/extractMaterial.vue

@@ -24,7 +24,7 @@
         width="55"
         align="center"
       ></el-table-column> -->
-      <el-table-column prop="id" label="编号" width="80">
+      <el-table-column prop="id" label="编号" width="80" align="center">
         <template slot-scope="scope">
           {{ scope.$index + 1 }}
         </template>
@@ -33,29 +33,39 @@
         prop="materialName"
         label="材料名称"
         width="200"
+        align="center"
+        header-align="center"
         show-overflow-tooltip
       ></el-table-column>
       <el-table-column
         prop="pages"
         label="页数"
         width="100"
+        header-align="center"
         align="center"
       ></el-table-column>
       <el-table-column
         prop="remark"
         label="备注"
         min-width="200"
+        header-align="center"
         show-overflow-tooltip
       ></el-table-column>
       <el-table-column
         prop="createTime"
         label="提取时间"
         width="200"
+        header-align="center"
         :formatter="formatDate"
         align="center"
         show-overflow-tooltip
       ></el-table-column>
-      <el-table-column label="操作" width="180" fixed="right">
+      <el-table-column
+        label="操作"
+        width="180"
+        fixed="right"
+        header-align="center"
+      >
         <template slot-scope="scope">
           <el-button
             type="text"
@@ -752,7 +762,7 @@
   }
 
   .extract-material-dialog .dialog-footer {
-    text-align: center;
+    text-align: right;
     padding: 10px 0;
   }
 

+ 8 - 0
src/views/costAudit/auditInfo/auditManage/index.vue

@@ -397,6 +397,14 @@
         this.loadAuditProjectList()
       },
 
+      // 重置
+      handleReset() {
+        // 重置搜索条件
+        this.searchQuery = ''
+        // 重新加载数据
+        this.loadAuditProjectList()
+      },
+
       // 查看任务详情
       handleViewTaskDetail(row) {
         // 使用成本监审任务制定弹窗(只读)

+ 1 - 0
src/views/costAudit/baseInfo/auditDocManage/index.vue

@@ -189,6 +189,7 @@
                 :max-size="50 * 1024 * 1024"
                 :allowed-types="['xlsx', 'xls', 'doc', 'docx', 'pdf']"
                 :files-list="currentDocument.uploadUrl"
+                :is-disabled="dialogTitle === '查看监审资料'"
                 @removeFile="removeFile"
                 @saveFiles="saveFiles"
               />

+ 1 - 1
src/views/costAudit/baseInfo/statistics/components/TaskCustomizedReleaseDialog.vue

@@ -138,7 +138,7 @@
 <script>
   import UploadComponent from '@/components/costAudit/UploadComponent.vue'
   import basicInfoTab from './BasicInfoTab.vue'
-  import materialTab from './materialTab.vue'
+  import materialTab from './MaterialTab.vue'
   import surveyTab from './surveyTab.vue'
   import workflowTab from './workflowTab.vue'
   import auditNoticeTab from './auditNoticeTab.vue'

+ 9 - 9
src/views/costAudit/baseInfo/statistics/components/auditOpinion.vue

@@ -192,18 +192,18 @@
       },
     },
     watch: {
-      id(newVal) {
-        // 当 id 变化时,重新获取数据
-        if (newVal) {
-          this.getPreliminaryOpinionData()
-        }
-      },
+      // id(newVal) {
+      //   // 当 id 变化时,重新获取数据
+      //   if (newVal) {
+      //     this.getPreliminaryOpinionData()
+      //   }
+      // },
     },
     mounted() {
       // 组件挂载时,如果有 id,获取数据
-      if (this.id) {
-        this.getPreliminaryOpinionData()
-      }
+      // if (this.id) {
+      //   this.getPreliminaryOpinionData()
+      // }
     },
     methods: {
       // 获取初步审核意见数据

+ 29 - 2
src/views/costAudit/baseInfo/statistics/components/cbjsInfo.vue

@@ -53,14 +53,18 @@
           label="工作底稿"
           name="workDraft"
         >
-          <work-draft :id="id" :disabled="true" />
+          <work-draft :id="id" ref="workDraftRef" :disabled="true" />
         </el-tab-pane>
         <el-tab-pane
           v-if="currentNode !== 'clcs'"
           label="提取材料登记"
           name="extractMaterial"
         >
-          <extract-material :id="id" :disabled="true" />
+          <extract-material
+            :id="id"
+            ref="extractMaterialRef"
+            :disabled="true"
+          />
         </el-tab-pane>
         <el-tab-pane
           v-if="currentNode !== 'clcs'"
@@ -69,6 +73,7 @@
         >
           <audit-opinion
             :id="id"
+            ref="auditOpinionRef"
             :current-node="currentNode"
             :status="currentStatus"
             :disabled="true"
@@ -283,6 +288,28 @@
               this.$refs.costAudit.getDetail()
             }
           })
+        } else if (tab && tab.name === 'workDraft') {
+          // 切到工作底稿时,调用子组件刷新
+          this.$nextTick(() => {
+            if (this.$refs && this.$refs.workDraftRef) {
+              this.$refs.workDraftRef.getWorkingPaperRecords()
+              this.$refs.workDraftRef.getWorkingPaperContent()
+            }
+          })
+        } else if (tab && tab.name === 'extractMaterial') {
+          // 切到工作底稿时,调用子组件刷新
+          this.$nextTick(() => {
+            if (this.$refs && this.$refs.extractMaterialRef) {
+              this.$refs.extractMaterialRef.getExtractMaterials()
+            }
+          })
+        } else if (tab && tab.name === 'auditOpinion') {
+          // 切到成本审核意见时,调用子组件刷新
+          this.$nextTick(() => {
+            if (this.$refs && this.$refs.auditOpinionRef) {
+              this.$refs.auditOpinionRef.getPreliminaryOpinionData()
+            }
+          })
         }
       },
       // 触发报送资料子组件加载

+ 11 - 10
src/views/costAudit/baseInfo/statistics/components/costAudit.vue

@@ -134,10 +134,10 @@
     exportExcel,
   } from '@/api/costVerifyManage'
   import { getDetail } from '@/api/auditInitiation'
-  import { catalogMixin } from '@/mixins/useDict'
+  // import { catalogMixin } from '@/mixins/useDict'
   export default {
     name: 'CostAudit',
-    mixins: [catalogMixin],
+    // mixins: [catalogMixin],
     props: {
       id: {
         type: [String, Number],
@@ -324,15 +324,16 @@
       getDetail() {
         this.getActiveCostVerifyFormListByType()
         this.getActiveCostVerifyFormList()
+        this.loadTemplateData()
         // 获取项目的详情数据
-        getDetail({ id: this.selectedProject.projectId }).then((res) => {
-          if (res.code === 200) {
-            this.project = res.value
-            this.auditForm.catalogId = res.value.catalogId
-            // this.auditForm.surveyTemplateId = '9368f1cf-77e7-49fe-8502-4a7a2da99668'
-            this.loadTemplateData()
-          }
-        })
+        // getDetail({ id: this.selectedProject.projectId }).then((res) => {
+        //   if (res.code === 200) {
+        //     this.project = res.value
+        //     this.auditForm.catalogId = res.value.catalogId
+        //     // this.auditForm.surveyTemplateId = '9368f1cf-77e7-49fe-8502-4a7a2da99668'
+        //     this.loadTemplateData()
+        //   }
+        // })
       },
       // 获取所有模板类型为固定表的所有启用成本调查表数据
       getActiveCostVerifyFormListByType() {

+ 2 - 2
src/views/costAudit/baseInfo/statistics/components/extractMaterial.vue

@@ -274,7 +274,7 @@
       }
     },
     mounted() {
-      this.getExtractMaterials()
+      // this.getExtractMaterials()
     },
     beforeDestroy() {
       // 清理定时器等资源
@@ -672,7 +672,7 @@
   }
 
   .dialog-footer {
-    text-align: center;
+    text-align: right;
   }
 
   /* 操作按钮样式优化 */

+ 13 - 13
src/views/costAudit/baseInfo/statistics/components/workDraft.vue

@@ -270,21 +270,21 @@
       }
     },
     watch: {
-      id: {
-        handler(newVal) {
-          if (newVal) {
-            this.getWorkingPaperRecords()
-            this.getWorkingPaperContent()
-          }
-        },
-        immediate: true,
-      },
+      // id: {
+      //   handler(newVal) {
+      //     if (newVal) {
+      //       this.getWorkingPaperRecords()
+      //       this.getWorkingPaperContent()
+      //     }
+      //   },
+      //   immediate: true,
+      // },
     },
     mounted() {
-      if (this.id) {
-        this.getWorkingPaperRecords()
-        this.getWorkingPaperContent()
-      }
+      // if (this.id) {
+      //   this.getWorkingPaperRecords()
+      //   this.getWorkingPaperContent()
+      // }
     },
     methods: {
       // 获取工作底稿列表

+ 1 - 1
src/views/costAudit/projectInfo/auditTaskManage/taskCustomizedRelease/auditNoticeTab.vue

@@ -186,7 +186,7 @@
               <el-input
                 v-model="document.documentNumber"
                 placeholder="请选择通知书文号"
-                style="width: 82%"
+                style="width: 80%"
                 disabled
               ></el-input>
               <!-- disabled -->

+ 1 - 1
src/views/costAudit/projectInfo/auditTaskManage/taskCustomizedRelease/tabs.vue

@@ -12,7 +12,7 @@
         plain
         type="primary"
         :loading="loading.save"
-        icon="icon-queren"
+        icon="iconfont-5039297 icon-queren"
         :disabled="isView"
         @click="handleSave"
       >