优化
This commit is contained in:
@ -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 id:designer
|
||||
// 校审人员 名称 proofreading id: proofreadingId 校审时间 proofreadingDate
|
||||
// 审定人员 名称 approve id:approveId 审定时间 approveDate
|
||||
// 审核人员 名称 audit id:auditId 审核时间 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>
|
||||
|
||||
|
Reference in New Issue
Block a user