This commit is contained in:
2025-08-28 23:32:17 +08:00
parent 2b25709c14
commit ade1177294
16 changed files with 1929 additions and 649 deletions

View File

@ -11,12 +11,17 @@
<el-col :span="12">
<el-form-item label="编号" prop="num">
<!-- prop="num" 需与 rules 中键名一致 -->
<el-input v-model="formData.num" placeholder="请输入编号" />
<el-input v-model="formData.num" disabled placeholder="请输入编号" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="专业" prop="professional">
<el-input v-model="formData.professional" placeholder="请输入专业" />
<el-form-item label="专业" prop="professionalName">
<el-input v-model="formData.professionalName" disabled placeholder="请输入专业" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="卷册" prop="volume">
<el-input v-model="formData.volume" disabled placeholder="请输入卷册" />
</el-form-item>
</el-col>
<el-col :span="12">
@ -24,14 +29,8 @@
<el-input v-model="formData.stage" placeholder="请输入设计阶段" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="卷册" prop="volume">
<el-input v-model="formData.volume" placeholder="请输入卷册" />
</el-form-item>
</el-col>
</el-row>
</div>
<!-- 项目信息区域 -->
<div class="form-section">
<div class="section-title">
@ -54,7 +53,6 @@
</el-col>
</el-row>
</div>
<!-- 人员信息区域 -->
<div class="form-section">
<div class="section-title">
@ -65,56 +63,77 @@
<el-row :gutter="20" class="section-content">
<el-col :span="12">
<el-form-item label="设计人" prop="designer">
<el-input v-model="formData.designer" placeholder="请输入设计人" />
<el-input disabled v-model="formData.designerName" placeholder="请输入设计人" />
</el-form-item>
</el-col>
<el-col :span="12"></el-col>
<el-col :span="12">
<el-form-item label="校审人员" prop="proofreading">
<el-input v-model="formData.proofreading" placeholder="请输入校审人员" />
<el-input disabled v-model="formData.proofreading" placeholder="请输入校审人员" />
</el-form-item>
</el-col>
<!-- <el-col :span="12">
<el-form-item label="校审人员ID" prop="proofreadingId">
<el-input v-model="formData.proofreadingId" placeholder="请输入校审人员ID" />
</el-form-item>
</el-col> -->
<el-col :span="12">
<el-form-item label="校审时间" prop="proofreadingDate">
<el-date-picker v-model="formData.proofreadingDate" type="date" placeholder="选择校审时间" format="YYYY-MM-DD"
value-format="YYYY-MM-DD" />
<el-date-picker
v-model="formData.proofreadingDate"
type="date"
disabled
placeholder="选择校审时间"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="审核人员" prop="audit">
<el-input v-model="formData.audit" placeholder="请输入审核人员" />
<el-input disabled v-model="formData.audit" placeholder="请输入审核人员" />
</el-form-item>
</el-col>
<!-- <el-col :span="12">
<el-form-item label="审核人员ID" prop="auditId">
<el-input v-model="formData.auditId" placeholder="请输入审核人员ID" />
</el-form-item>
</el-col> -->
<el-col :span="12">
<el-form-item label="审核时间" prop="auditDate">
<el-date-picker v-model="formData.auditDate" type="date" placeholder="选择审核时间" format="YYYY-MM-DD"
value-format="YYYY-MM-DD" />
<el-date-picker
disabled
v-model="formData.auditDate"
type="date"
placeholder="选择审核时间"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="审定人员" prop="approve">
<el-input disabled v-model="formData.approve" placeholder="请输入审定人员" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="审定时间" prop="approveDate">
<el-date-picker
disabled
v-model="formData.approveDate"
type="date"
placeholder="选择审定时间"
format="YYYY-MM-DD"
value-format="YYYY-MM-DD"
/>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="执行人员" prop="executor">
<el-input v-model="formData.executor" placeholder="请输入执行人员" />
<el-select
v-model="formData.executorId"
@change="changeExecutor"
placeholder="选择执行人员"
class="w-full transition-all duration-300 border-gray-300"
>
<el-option v-for="item in userList" :key="`user-${item.userId}`" :label="item.userName" :value="item.userId" />
</el-select>
<!-- <el-input v-model="formData.executor" placeholder="请输入执行人员" /> -->
</el-form-item>
</el-col>
<!-- <el-col :span="12">
<el-form-item label="执行人员ID" prop="executorId">
<el-input v-model="formData.executorId" placeholder="请输入执行人员ID" />
</el-form-item>
</el-col> -->
<el-col :span="12">
<el-form-item label="执行时间" prop="executorDate">
<el-date-picker v-model="formData.executorDate" type="date" placeholder="选择执行时间" format="YYYY-MM-DD"
value-format="YYYY-MM-DD" />
<el-date-picker v-model="formData.executorDate" type="date" placeholder="选择执行时间" format="YYYY-MM-DD" value-format="YYYY-MM-DD" />
</el-form-item>
</el-col>
</el-row>
@ -151,17 +170,20 @@
<script setup name="ExamineForm" lang="ts">
import { ref, watch, reactive } from 'vue';
import { fillOutTheDesignVerificationForm, drawingreviewReceipts } from '@/api/design/drawingreview';
import type { FormInstance, FormRules } from 'element-plus';
import { dayjs, type FormInstance, type FormRules } from 'element-plus';
import { useUserStoreHook } from '@/store/modules/user';
import { computed } from 'vue';
import { subProjectListAll } from '@/api/design/drawingreview';
import { subProjectListAll, getDrawingreviewReceipts } from '@/api/design/drawingreview';
import { desUserList } from '@/api/design/appointment';
// 获取用户 store
const userStore = useUserStoreHook();
const userList = ref([]);
const userMap = new Map();
// 从 store 中获取当前选中的项目
const currentProject = computed(() => userStore.selectedProject);
console.log(currentProject.value);
const subProjectList = ref([]);
const Drawingreview = ref({});
let subProjectMap = new Map();
// 定义表单数据类型
interface FormData {
@ -193,9 +215,9 @@ const rules: FormRules = {
num: [{ required: true, message: '请输入编号', trigger: 'blur' }],
professional: [{ required: true, message: '请输入专业', trigger: 'blur' }]
};
const userName = userStore.nickname;
// 表单数据 - 直接在组件内定义不再通过Props接收
const formData = reactive<FormData>({
const formData = ref({
num: '',
professional: '',
stage: '',
@ -228,8 +250,8 @@ watch(
(newVal) => {
if (newVal) {
// 根据实际项目结构调整赋值字段
formData.projectId = newVal.id || '';
formData.projectName = newVal.name || '';
formData.value.projectId = newVal.id || '';
formData.value.projectName = newVal.name || '';
}
},
{ immediate: true, deep: true }
@ -259,12 +281,12 @@ const resetFields = () => {
// 获取表单数据
const getFormData = (): FormData => {
return { ...formData };
return { ...formData.value };
};
// 设置表单数据
const setFormData = (data: Partial<FormData>) => {
Object.assign(formData, data);
Object.assign(formData.value, data);
};
// 提交表单
@ -279,12 +301,10 @@ const submit = async (businessId, cb) => {
background: 'rgba(0, 0, 0, 0.7)'
});
formData.subprojectName = subProjectMap.get(formData.subprojectId);
// formData.drawingreviewId = businessId;
formData.value.subprojectName = subProjectMap.get(formData.value.subprojectId);
console.log(businessId);
// businessId 设置 如果有下滑线去掉后面及下划线
formData.drawingreviewId = businessId.replace(/_/g, '');
const res = await drawingreviewReceipts(formData);
formData.value.drawingreviewId = businessId.replace(/_/g, '');
const res = await drawingreviewReceipts(formData.value);
if (res.code === 200) {
// 提交成功处理逻辑
console.log('提交成功');
@ -292,6 +312,52 @@ const submit = async (businessId, cb) => {
// 关闭
ElLoading.service().close();
};
// 获取单据
const getInfo = async (id) => {
// 获取单据
console.log(id);
await getDeptAllUser();
let res = await getDrawingreviewReceipts(id);
console.log(res);
formData.value = res.data;
console.log(formData);
// 设计人 名称 designerName iddesigner
// 校审人员 名称 proofreading id: proofreadingId 校审时间 proofreadingDate
// 审定人员 名称 approve idapproveId 审定时间 approveDate
// 审核人员 名称 audit idauditId 审核时间 auditDate
// userStore.nickname //用户名
// userStore.userId //用户id
if (formData.value.approve) {
} else if (formData.value.audit) {
// 说明流程在第三步
formData.value.approve = userStore.nickname;
formData.value.approveId = userStore.userId;
formData.value.approveDate = dayjs().format('YYYY-MM-DD');
} else if (formData.value.proofreading) {
// 说明流程在第二步
formData.value.audit = userStore.nickname;
formData.value.auditId = userStore.userId;
formData.value.auditDate = dayjs().format('YYYY-MM-DD');
} else if (formData.value.designerName) {
// 说明流程在第一步
formData.value.proofreading = userStore.nickname;
formData.value.proofreadingId = userStore.userId;
formData.value.proofreadingDate = dayjs().format('YYYY-MM-DD');
}
};
/** 获取当前设计用户 */
const getDeptAllUser = async () => {
const res = await desUserList({ projectId: currentProject.value?.id, userType: '2' });
userList.value = res.data || [];
for (let i = 0; i < userList.value.length; i++) {
userMap.set(userList.value[i].userId, userList.value[i].userName);
}
};
const changeExecutor = (val) => {
formData.value.executor = userMap.get(val);
formData.value.executorDate = dayjs().format('YYYY-MM-DD');
};
onMounted(() => {
getSubProject();
});
@ -301,7 +367,8 @@ defineExpose({
resetFields,
getFormData,
setFormData,
submit
submit,
getInfo
});
</script>