From b59d89e4258d8e259d221dc7fc9f8f073f283d93 Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: 星期三, 05 十一月 2025 16:50:17 +0800
Subject: [PATCH] 修改
---
src/views/build/conpanyFunctionConsult/digitalFileDep/project/projectReview/index.vue | 110 +++++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 98 insertions(+), 12 deletions(-)
diff --git a/src/views/build/conpanyFunctionConsult/digitalFileDep/project/projectReview/index.vue b/src/views/build/conpanyFunctionConsult/digitalFileDep/project/projectReview/index.vue
index b06120e..5b3361a 100644
--- a/src/views/build/conpanyFunctionConsult/digitalFileDep/project/projectReview/index.vue
+++ b/src/views/build/conpanyFunctionConsult/digitalFileDep/project/projectReview/index.vue
@@ -41,25 +41,46 @@
<el-form-item >
<el-button type="primary" @click="getList">查询</el-button>
<el-button type="primary" plain @click="reset">重置</el-button>
+ <el-form-item style="margin-left: 15px">
+ <el-button
+ type="primary"
+ @click="exportData"
+ >导出</el-button>
+ </el-form-item>
</el-form-item>
</el-form>
</div>
<!-- 表格数据 -->
- <el-table v-loading="loading" :data="dataList" :border="true">
+ <el-table v-loading="loading" :data="dataList" :border="true" @selection-change="handleSelectionChange">
+ <el-table-column type="selection" width="55" :selectable="isRowSelectable" />
<el-table-column label="序号" type="index" align="center" width="80"/>
- <el-table-column label="项目名称" prop="itemName" align="center" width="130" :show-overflow-tooltip="true" />
- <el-table-column label="文件编号" prop="num" align="center" />
- <el-table-column label="文件名称" prop="fileName" align="center" />
- <el-table-column label="文件" prop="fileName" align="center" >
+ <el-table-column label="项目名称" prop="itemName" align="center" :show-overflow-tooltip="true" />
+ <el-table-column label="设计和开发阶段" prop="stage" align="center" />
+ <el-table-column label="类型" prop="type" align="center" >
<template #default="scope">
- <el-link v-if="scope.row.fileName" style="" type="primary" @click="openFile(scope.row.filePath)">{{scope.row.fileName}}</el-link>
+ <span>{{scope.row.type == 1 ? '会签评审' :scope.row.type == 2? '会议评审' :'' }}</span>
</template>
</el-table-column>
- <el-table-column label="操作" align="center" class-name="small-padding fixed-width" v-if="userTpye == 0 || userTpye == 6">
+ <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template #default="scope">
- <el-button v-if="scope.row.filePath" link type="primary" @click="downloadFile(scope.row)" >下载</el-button>
- <el-button link type="primary" @click="openDialog('edit',scope.row)" v-hasPermi="['projectReview:edit']">编辑</el-button>
- <el-button link type="danger" @click="handleDelete(scope.row)" v-hasPermi="['projectReview:del']">删除</el-button>
+ <div v-if="scope.row.type == 2" style="display: flex;align-items: center;justify-content: center">
+ <el-button link type="primary" @click="downloadFile(scope.row)" v-hasPermi="['projectReview:edit']">下载</el-button>
+ <el-button link type="primary" @click="openDialog('edit',scope.row)" v-hasPermi="['projectReview:edit']">编辑</el-button>
+ <el-button link type="danger" @click="handleDelete(scope.row)" v-hasPermi="['projectReview:del']">删除</el-button>
+ </div>
+ <div v-if="scope.row.type == 1" style="display: flex;align-items: center;justify-content: center">
+ <!--没发送之前-->
+ <div v-if="scope.row.status ==1" style="display: flex;align-items: center;justify-content: center">
+ <el-button link type="primary" @click="sendReviewMsg(scope.row)" v-hasPermi="['projectReview:send']">发送</el-button>
+ <el-button link type="primary" @click="openDialog('edit',scope.row)" v-hasPermi="['projectReview:edit']">编辑</el-button>
+ <el-button link type="danger" @click="handleDelete(scope.row)" v-hasPermi="['projectReview:del']">删除</el-button>
+ </div>
+ <!--发送之后-->
+ <div v-if="scope.row.status == 2" style="display: flex;align-items: center;justify-content: center">
+ <el-button link type="primary" @click="openDialog('view',scope.row)">查看</el-button>
+ <el-button link type="danger" @click="handleDelete(scope.row)" v-if="userTpye == 0" v-hasPermi="['projectReview:del']">删除</el-button>
+ </div>
+ </div>
</template>
</el-table-column>
</el-table>
@@ -85,14 +106,15 @@
import Cookies from "js-cookie";
import {renderAsync} from "docx-preview";
import {get} from "@vueuse/core";
-import {delReview, getReviewPage} from "@/api/selfProblems/projectReview";
+import {delReview, getReviewPage, sendReview} from "@/api/selfProblems/projectReview";
import axios from "axios";
import {getToken} from "@/utils/auth";
+import {generateWordDocument} from "@/utils/exportWord";
const userStore = useUserStore()
const { proxy } = getCurrentInstance();
const loading = ref(false);
const dialogRef = ref();
-
+const choosedData = ref([])
const data = reactive({
queryParams: {
pageNum: 1,
@@ -190,6 +212,7 @@
itemId: null
}
}
+ choosedData.value = []
await getList()
await getProjectList()
}
@@ -275,7 +298,70 @@
}
})
}
+const sendReviewMsg = (val) =>{
+ ElMessageBox.confirm(
+ '确定发送审核此条数据?',
+ '提示',
+ {
+ confirmButtonText: '确定',
+ cancelButtonText: '取消',
+ type: 'warning',
+ })
+ .then( async() => {
+ const res = await sendReview(val.id)
+ if(res.code == 200){
+ ElMessage.success('数据发送成功')
+ await getList()
+ }else{
+ ElMessage.warning(res.message)
+ }
+ })
+}
+const handleSelectionChange = (val) => {
+ choosedData.value = val
+}
+const exportData = () => {
+ if(choosedData.value && choosedData.value.length === 0){
+ ElMessage.warning('请选择需要导出的数据')
+ }else {
+ startGeneration()
+ }
+}
+const templatePath = ref('/projectReviewExample.docx')
+const startGeneration = async () => {
+ const data = JSON.parse(JSON.stringify(choosedData.value))
+ data.forEach(item => {
+ item.leaderList = item.reviewUsers.filter(item => item.reviewType == '评审组长').map((x,index) => {
+ return {
+ ...x,
+ first: index === 0
+
+ }
+ })
+ item.peopleList = item.reviewUsers.filter(item => item.reviewType == '评审组员').map((x,index) => {
+ return {
+ ...x,
+ first: index === 0
+
+ }
+ })
+ item.leaderTime = item.leaderTime?.substring(0,10)
+ item.groupTime = item.groupTime?.substring(0,10)
+ console.log(' item.tableList', item.tableList)
+ try {
+ generateWordDocument(templatePath.value, item, item.itemName + `_项目审批表.docx`);
+ } catch (error){
+ ElMessage({
+ type: 'warning',
+ message: '导出失败'
+ });
+ }
+ })
+}
const changeCom = () => {
getProjectList()
}
+const isRowSelectable = (row) => {
+ return row.type !== 2;
+}
</script>
--
Gitblit v1.9.2