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