From fd3ef41e30c4d262ceb5616075daacf61c40d20d Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: 星期五, 21 三月 2025 17:25:12 +0800
Subject: [PATCH] bug修改

---
 src/views/signProject/index.vue |  145 +++++++++++++++++++++++++++++------------------
 1 files changed, 89 insertions(+), 56 deletions(-)

diff --git a/src/views/signProject/index.vue b/src/views/signProject/index.vue
index 5b30136..cb7d065 100644
--- a/src/views/signProject/index.vue
+++ b/src/views/signProject/index.vue
@@ -2,9 +2,9 @@
   <div class="app-container">
     <div style="display: flex;justify-content: space-between;margin-bottom: 20px">
       <el-form :inline="true" style="display: flex;align-items: center;flex-wrap: wrap;" >
-        <el-radio-group v-model="queryParams.type">
+        <el-radio-group v-model="queryParams.status" @change="getList">
           <el-radio-button label="" >全部</el-radio-button>
-          <el-radio-button label="1">签署中</el-radio-button>
+          <el-radio-button label="0">签署中</el-radio-button>
           <el-radio-button label="2" >已归档</el-radio-button>
         </el-radio-group>
 <!--        <el-form-item label="仓库名称:" >-->
@@ -26,22 +26,26 @@
     <!-- 表格数据 -->
     <el-table v-loading="loading" :data="dataList" :border="true">
       <el-table-column label="序号" type="index" align="center" width="80" />
-      <el-table-column label="项目名称" prop="name" align="center"  />
-      <el-table-column label="模板ID" prop="remark" align="center" />
-      <el-table-column label="发起部门" prop="remark" align="center" />
-      <el-table-column label="发起时间" prop="remark" align="center" />
-      <el-table-column label="最初签署人" prop="remark" align="center" />
+      <el-table-column label="项目名称" prop="itemName" align="center"  />
+      <el-table-column label="模板ID" prop="templateId" align="center" />
+      <el-table-column label="发起部门" prop="deptName" align="center" />
+      <el-table-column label="发起时间" prop="originateTime" align="center" />
+      <el-table-column label="最初签署人" prop="initiaiUserName" align="center" />
       <el-table-column label="流转记录" prop="count" align="center" >
         <template #default="scope">
-          <span style="color: #1890ff;cursor: pointer" @click="record(scope.row)">{{scope.row.count}}</span>
+          <span style="color: #1890ff;cursor: pointer" @click="record(scope.row)">{{scope.row.flowCount}}</span>
         </template>
       </el-table-column>
-      <el-table-column label="签署状态" prop="remark" align="center" />
+      <el-table-column label="签署状态" prop="itemStatus" align="center" >
+        <template #default="scope">
+          <span>{{scope.row.itemStatus == 0 ? '签署中' : scope.row.itemStatus == 1 ? '已签署' :scope.row.itemStatus == 2 ? '已归档' : ''  }}</span>
+        </template>
+      </el-table-column>
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="250" >
         <template #default="scope">
-          <el-button link type="primary" >预览</el-button>
-          <el-button link type="primary" @click="circulationBtn(scope.row)" >流转</el-button>
-          <el-button link type="primary" >确认归档</el-button>
+          <el-button link type="primary" @click="view(scope.row)">预览</el-button>
+          <el-button link type="primary" v-if="scope.row.itemStatus !=2 && (data.userRole.includes('admin') || data.userRole.includes('suprice') ) " @click="circulationBtn(scope.row)" >流转</el-button>
+          <el-button link type="primary" v-if="scope.row.itemStatus !=2 &&(data.userRole.includes('admin') || data.userRole.includes('suprice')) && scope.row.isAbleArchive " @click="archiveBtn(scope.row)">确认归档</el-button>
           <el-button link type="danger" @click="handleDelete(scope.row)">删除</el-button>
         </template>
       </el-table-column>
@@ -55,6 +59,8 @@
     />
     <circulation ref="circulationRef" @getList="getList"></circulation>
     <timeRecord ref="timeRecordRef" @getList="getList"></timeRecord>
+    <view-p ref="viewPRef" @getList="getList"></view-p>
+    <sign-file ref="signFileRef" @getList="getList"></sign-file>
   </div>
 </template>
 
@@ -63,18 +69,26 @@
 import {ElMessage, ElMessageBox} from "element-plus";
 import circulation from './components/circulation'
 import timeRecord from './components/record.vue'
+import viewP from './components/viewPdf.vue'
+import signFile from './components/signFile.vue'
+
+import {delSignProject, getSignProject, signArchive} from "@/api/signAgreement/signProject";
+import Cookies from "js-cookie";
 const { proxy } = getCurrentInstance();
 const loading = ref(false);
 const dialogRef = ref();
 const circulationRef = ref();
-const cupDialogRef = ref();
+const viewPRef = ref();
 const timeRecordRef = ref()
+const signFileRef = ref()
 const data = reactive({
   queryParams: {
     pageNum: 1,
     pageSize: 10,
-    type: ''
+    status: ''
   },
+  userRole:[],
+  user: {},
   total: 0,
   dataList: []
 });
@@ -83,6 +97,8 @@
 const classHourRef = ref();
 onMounted(()=>{
   getList()
+  data.userRole = JSON.parse(Cookies.get('userRole'))
+  data.user = JSON.parse(Cookies.get('userInfo'))
 })
 
 onUnmounted(()=>{
@@ -91,20 +107,27 @@
 
 const getList = async () => {
   loading.value = true
-  // const res = await getWarehouse(data.queryParams)
-  // if(res.code == 200){
-  //   data.dataList = res.data.list
-  //   data.total = res.data.total
-  // }else{
-  //   ElMessage.warning(res.message)
-  // }
-  data.dataList = [
-    {
-      id: 1,
-      name: 'xxx',
-      count: 2
-    }
-  ]
+  const res = await getSignProject(data.queryParams)
+  if(res.code == 200){
+    data.dataList = res.rows.map(item => {
+      return {
+        ...item,
+        flowCount: item.signatureFlows && item.signatureFlows.length >0 ? item.signatureFlows.length : 0
+      }
+    })
+    data.dataList.forEach(item => {
+      let isAble = true
+      item.signatureFlows.forEach(i => {
+        if(i.signStatus !=1){
+          isAble = false
+        }
+      })
+      item.isAbleArchive = isAble
+    })
+    data.total = res.total
+  }else{
+    ElMessage.warning(res.message)
+  }
   loading.value = false
 }
 
@@ -112,18 +135,52 @@
   dialogRef.value.openDialog(type, value);
 }
 const record = (val) => {
-  timeRecordRef.value.openDialog(val)
+  if(val.flowCount > 0){
+    timeRecordRef.value.openDialog(val)
+  }else {
+    ElMessage.warning('暂无流转记录')
+  }
+
 }
 
 const circulationBtn = (value) => {
   circulationRef.value.openDialog(value)
+}
+const view = (val) => {
+  viewPRef.value.openDialog(val)
+}
+const archiveBtn = (val) => {
+  signFileRef.value.openDialog(val)
+  // ElMessageBox.confirm(
+  //     '确定项目归档?',
+  //     '提示',
+  //     {
+  //       confirmButtonText: '确定',
+  //       cancelButtonText: '取消',
+  //       type: 'warning',
+  //     })
+  //
+  //     .then( async() => {
+  //       const param = {
+  //         itemId: val.id,
+  //         filePath: val.itemFile,
+  //         userId: data.user.userId
+  //       }
+  //       const res = await signArchive(param)
+  //       if(res.code == 200){
+  //         ElMessage.success('项目归档成功')
+  //         await getList()
+  //       }else{
+  //         ElMessage.warning(res.message)
+  //       }
+  //     })
 }
 /** 重置新增的表单以及其他数据  */
 function reset() {
   data.queryParams = {
     pageNum: 1,
     pageSize: 10,
-    name: ''
+    status: ''
   }
   getList()
 }
@@ -137,7 +194,7 @@
         type: 'warning',
       })
       .then( async() => {
-        const res = await delWarehouse(val.id)
+        const res = await delSignProject(val.id)
         if(res.code == 200){
           ElMessage.success('数据删除成功')
           await getList()
@@ -145,31 +202,7 @@
           ElMessage.warning(res.message)
         }
       })
-}
-const delCup = (val) => {
-  ElMessageBox.confirm(
-      '确定删除此条数据?',
-      '提示',
-      {
-        confirmButtonText: '确定',
-        cancelButtonText: '取消',
-        type: 'warning',
-      })
-      .then( async() => {
-        const res = await delCupboard(val.id)
-        if(res.code == 200){
-          ElMessage.success('数据删除成功')
-          await getList()
-        }else{
-          ElMessage.warning(res.message)
-        }
-      })
-}
-const addCupboard = (type,value) => {
-  cupDialogRef.value.openDialog(type, value);
 }
 
-const getRowKeys = (row) => {
-  return row.name
-}
+
 </script>

--
Gitblit v1.9.2