设计完成

This commit is contained in:
2025-08-14 16:40:52 +08:00
parent 6a69798ec6
commit a305c5bc19
25 changed files with 459 additions and 1773 deletions

View File

@ -46,18 +46,15 @@
</el-row>
</template>
<el-table v-loading="loading" :data="volumeCatalogList">
<el-table-column label="序号" type="index" width="60" align="center" />
<el-table-column label="子项名称" align="center" prop="designSubitem" />
<el-table-column label="设计状态" align="center" prop="designState">
<template #default="scope">
<dict-tag :options="design_state" :value="scope.row.designState" />
</template>
</el-table-column>
<el-table-column label="专业" align="center" prop="specialty">
<template #default="scope">
<dict-tag :options="des_user_major" :value="scope.row.specialty" />
</template>
</el-table-column>
<el-table-column label="设计人员" align="center" prop="principal" />
<el-table-column label="专业" align="center" prop="specialtyName"> </el-table-column>
<el-table-column label="设计人员" align="center" prop="principalName" />
<el-table-column label="卷册号" align="center" prop="volumeNumber" />
<el-table-column label="资料名称" align="center" prop="documentName" />
<el-table-column label="计划出图时间" align="center" prop="plannedCompletion" width="200" />
@ -114,7 +111,7 @@
v-hasPermi="['out:monthPlan:remove']"
>查看流程</el-button
>
<el-button type="warning" link size="small" icon="View" v-if="scope.row.auditType != 'draft'" @click="handleViewHistory(scope.row)"
<el-button type="warning" link icon="View" v-if="scope.row.auditType != 'draft'" @click="handleViewHistory(scope.row)"
>查看单据</el-button
>
</template>
@ -134,7 +131,9 @@
</el-select>
</el-form-item>
<el-form-item label="设计人员" prop="principal">
<el-input v-model="form.principal" placeholder="请输入设计人员" />
<el-select v-model="form.principal" placeholder="请选择设计人员" class="transition-all duration-300 border-gray-300">
<el-option v-for="item in userAppList" :key="item.userId" :label="item.userName" :value="item.userId" />
</el-select>
</el-form-item>
<el-form-item label="设计状态" prop="designState">
<el-select v-model="form.designState" placeholder="请选择设计状态">
@ -164,7 +163,7 @@
<el-dialog draggable title="上传图纸卷册文件" v-model="uploadVisible" width="500px" append-to-body>
<el-form :model="uploadForm" label-width="80px" :inline="false">
<el-form-item label="上传文件" prop="fileId">
<file-upload v-model="uploadForm.fileId"></file-upload>
<file-upload :fileType="['pdf']" :fileSize="''" v-model="uploadForm.fileId"></file-upload>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="onSubmit" :loading="buttonLoading">确定</el-button>
@ -188,12 +187,12 @@
</el-link>
</template>
</el-table-column>
<el-table-column prop="size" label="是否变更" align="center">
<el-table-column prop="size" label="是否变更" align="center" width="120">
<template #default="scope">
<el-tag :type="scope.row.type == 1 ? 'success' : 'info'">{{ scope.row.type == 1 ? '否' : '是' }}</el-tag>
</template>
</el-table-column>
<el-table-column prop="size" label="状态" width="170" align="center">
<el-table-column prop="size" label="状态" width="120" align="center">
<template #default="scope">
<el-tag :type="scope.row.status == 1 ? 'success' : 'info'">{{ scope.row.status == 1 ? '使用中' : '已作废' }}</el-tag>
</template>
@ -211,100 +210,8 @@
</span>
</template>
</el-dialog>
<el-dialog draggable title="查看历史" v-model="dialogHistory" width="800px" append-to-body>
<div>
<span>选择历史退回记录</span>
<el-select v-model="hisId" placeholder="请选择" style="width: 240px" @change="handleShowInfo">
<el-option v-for="item in hisList" :key="item.id" :label="item.createTime" :value="item.id" />
</el-select>
<div style="margin-top: 20px" class="volumeCatalog_box">
<span style="color: #0d9df5">查看excel文件</span>
<div style="margin-top: 20px" class="table-content" id="table-content">
<el-row class="mb20" style="display: flex; justify-content: center">
<h2>设计验证表</h2>
</el-row>
<el-row class="mb10" style="display: flex; justify-content: space-between">
<div class="head-text">
<span>编号</span>
<span>{{ examineForm.num }}</span>
</div>
<div class="head-text"></div>
</el-row>
<table style="width: 100%" border="1" cellspacing="1">
<thead>
<tr>
<th colspan="2">工程名称</th>
<td class="th-bg" colspan="10">{{ examineForm.projectName }}</td>
</tr>
</thead>
<tbody>
<tr>
<th colspan="2">子项名称</th>
<td class="th-bg" colspan="6">{{ examineForm.subprojectName }}</td>
<th colspan="2">设计阶段</th>
<td class="th-bg" colspan="2">{{ examineForm.stage }}</td>
</tr>
</tbody>
<tbody>
<tr>
<th colspan="2">专业</th>
<td class="th-bg" colspan="2">{{ examineForm.professional }}</td>
<th colspan="2">卷册</th>
<td class="th-bg" colspan="2">{{ examineForm.volume }}</td>
<th colspan="2">设计人</th>
<td class="th-bg" colspan="2">{{ examineForm.designer }}</td>
</tr>
</tbody>
<tbody>
<tr>
<th colspan="2">验证内容</th>
<td class="th-bg" colspan="10">{{ examineForm.verificationContent }}</td>
</tr>
</tbody>
<tbody>
<tr>
<th colspan="6">验证意见</th>
<th class="th-bg" colspan="6">执行意见</th>
</tr>
</tbody>
<tbody>
<tr>
<td colspan="6">
<div style="height: 400px">{{ examineForm.verificationOpinion }}</div>
</td>
<td class="th-bg" colspan="6">
<div style="height: 400px">{{ examineForm.executionOpinion }}</div>
</td>
</tr>
</tbody>
<tbody>
<tr>
<td colspan="6">
<div style="display: flex; align-items: center; justify-content: space-between">
<span> 校审 {{ examineForm.proofreading }} </span>
<span> {{ dateFormat(examineForm.proofreadingDate) }}</span>
</div>
</td>
<td rowspan="2" colspan="6">
<div>执行人 {{ examineForm.executor }}</div>
<div style="display: flex; align-items: center; justify-content: flex-end">
{{ dateFormat(examineForm.executorDate) }}
</div>
</td>
</tr>
<tr>
<td class="th-bg" colspan="6">
<div style="display: flex; align-items: center; justify-content: space-between">
<span>审核 {{ examineForm.audit }}</span>
<span> {{ dateFormat(examineForm.auditDate) }}</span>
</div>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<el-dialog title="单据" v-model="dialogHistory" width="800px">
<histroy ref="histroyRef"></histroy>
</el-dialog>
</div>
</template>
@ -322,7 +229,9 @@ import {
} from '@/api/design/volumeCatalog';
import { VolumeCatalogVO } from '@/api/design/volumeCatalog/types';
import { useUserStoreHook } from '@/store/modules/user';
import histroy from './comm/histroy.vue';
const fileList = ref([]);
import { designUserList } from '@/api/design/appointment';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
const { design_state, wf_business_status, des_user_major } = toRefs(proxy?.useDict('design_state', 'wf_business_status', 'des_user_major'));
import { drawingreviewReceiptsDetail, drawingreviewReceiptsList } from '@/api/design/drawingreview';
@ -331,12 +240,11 @@ const buttonLoading = ref(false);
const loading = ref(true);
const showSearch = ref(true);
const ids = ref<Array<string | number>>([]);
const histroyRef = ref<InstanceType<typeof histroy>>();
const single = ref(true);
const multiple = ref(true);
const total = ref(0);
const hisId = ref('');
const dialogHistory = ref(false);
const hisList = ref([]);
// 获取用户 store
const userStore = useUserStoreHook();
// 从 store 中获取项目列表和当前选中的项目
@ -382,7 +290,7 @@ const examineForm = ref({
volume: ''
});
const userList = ref([]);
const userAppList = ref([]); //人事任命的用户
const initFormData: any = {
design: undefined,
projectId: currentProject.value?.id || '',
@ -425,26 +333,26 @@ const getList = async () => {
loading.value = false;
}
};
const dateFormat = (v) => {
if (!v) return '-';
let time = new Date(v);
let y = time.getFullYear();
let MM = time.getMonth() + 1;
MM = MM < 10 ? '0' + MM : MM;
let d = time.getDate();
d = d < 10 ? '0' + d : d;
return y + '年' + MM + '月' + d + '日';
const getUserAppList = async () => {
const res = await designUserList({ projectId: currentProject.value?.id });
if (res.code === 200) {
console.log(res.rows);
res.rows.forEach((item: any) => {
if (item.userType == 2) {
//设计人员
userAppList.value.push(item);
}
});
}
};
const handleViewHistory = async (row) => {
// 查看历史流程记录
dialogHistory.value = true;
hisId.value = '';
let res = await drawingreviewReceiptsList({ drawingreviewId: row.design });
hisList.value = res.rows;
if (hisList.value.length > 0) {
hisId.value = hisList.value[0].id;
getDetails(hisId.value);
}
// 查看历史流程记录
nextTick(() => {
histroyRef.value?.getList(row.design);
});
};
const handleShowInfo = (val) => {
getDetails(val);
@ -508,12 +416,6 @@ const handleUpload = async (row?: any) => {
uploadForm.fileList = res.data.filter((item) => item.status == '1') || [];
uploadVisible.value = true;
};
/** 查看文件 */
const lookFile = (fileId: string) => {
// lookViewerFile(fileId);
};
/** 重置上传表单 */
const resetUploadForm = () => {
uploadForm.userIds = [];
@ -612,6 +514,7 @@ const handleUpdate = async (row?: VolumeCatalogVO) => {
};
onMounted(() => {
getUserAppList();
getList();
});
@ -621,6 +524,7 @@ const listeningProject = watch(
(nid, oid) => {
queryParams.value.projectId = nid;
form.value.projectId = nid;
getUserAppList();
getList();
}
);