From 3533b11c19b628e45f26d25bedd7c82e0aa2037a Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: 星期五, 14 三月 2025 17:24:24 +0800
Subject: [PATCH] 接口对接

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

diff --git a/src/views/signProject/index.vue b/src/views/signProject/index.vue
index 5b30136..c3a7b6e 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,7 @@
     />
     <circulation ref="circulationRef" @getList="getList"></circulation>
     <timeRecord ref="timeRecordRef" @getList="getList"></timeRecord>
+<!--    <view-p ref="viewPRef" @getList="getList"></view-p>-->
   </div>
 </template>
 
@@ -63,18 +68,23 @@
 import {ElMessage, ElMessageBox} from "element-plus";
 import circulation from './components/circulation'
 import timeRecord from './components/record.vue'
+import viewP from './components/viewPdf.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 data = reactive({
   queryParams: {
     pageNum: 1,
     pageSize: 10,
-    type: ''
+    status: ''
   },
+  userRole:[],
+  user: {},
   total: 0,
   dataList: []
 });
@@ -83,6 +93,8 @@
 const classHourRef = ref();
 onMounted(()=>{
   getList()
+  data.userRole = JSON.parse(Cookies.get('userRole'))
+  data.user = JSON.parse(Cookies.get('userInfo'))
 })
 
 onUnmounted(()=>{
@@ -91,20 +103,28 @@
 
 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
+    })
+    console.log('1',data.dataList)
+    data.total = res.total
+  }else{
+    ElMessage.warning(res.message)
+  }
   loading.value = false
 }
 
@@ -112,18 +132,53 @@
   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) => {
+  const url =import.meta.env.VITE_APP_BASE_API  +val.itemFile
+  window.open(url)
+}
+const archiveBtn = (val) => {
+  ElMessageBox.confirm(
+      '确定项目归档?',
+      '提示',
+      {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning',
+      })
+
+      .then( async() => {
+        console.log('1111',val)
+        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 +192,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 +200,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