设计变更

This commit is contained in:
2025-08-13 23:42:24 +08:00
parent 7ca3fbd439
commit 759be564fc
11 changed files with 1336 additions and 328 deletions

View File

@ -1,5 +1,5 @@
<template>
<div class="p-4 bg-gray-50 ">
<div class="p-4 bg-gray-50">
<div class="max-w-4xl mx-auto">
<!-- 顶部按钮区域 -->
<el-card class="mb-4 rounded-lg shadow-sm bg-white border border-gray-100 transition-all hover:shadow-md">
@ -17,35 +17,13 @@
<!-- 表单区域 -->
<el-card class="rounded-lg shadow-sm bg-white border border-gray-100 transition-all hover:shadow-md overflow-hidden">
<div class="p-4 bg-gradient-to-r from-blue-50 to-indigo-50 border-b border-gray-100">
<h3 class="text-lg font-semibold text-gray-800">图纸信息</h3>
<h3 class="text-lg font-semibold text-gray-800">变更图纸信息</h3>
</div>
<div class="p-6">
<el-form
ref="leaveFormRef"
v-loading="loading"
:disabled="routeParams.type === 'view'"
:model="form"
:rules="rules"
label-width="100px"
class="space-y-4"
>
<el-form ref="leaveFormRef" :disabled="routeParams.type === 'view'" :model="form" :rules="rules" label-width="100px" class="space-y-4">
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
<el-form-item label="图纸类型" prop="fileType" class="mb-2">
<el-select v-model="form.fileType" placeholder="请选择图纸类型" class="w-full">
<el-option v-for="dict in drawing_file_type" :key="dict.value" :label="dict.label" :value="dict.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="版本号" prop="versionNumber" class="mb-2">
<el-input v-model="form.versionNumber" placeholder="请输入版本号" class="w-full"></el-input>
</el-form-item>
<el-form-item label="文件名称" prop="fileName" class="mb-2 ">
<el-input v-model="form.fileName" placeholder="请输入文件名称" class="w-full"></el-input>
</el-form-item>
<el-form-item label="图纸文件" prop="fileUrl" class="mb-2 md:col-span-2">
<file-upload :limit="1" :fileType="['pdf']" :fileSize="100" v-model="form.fileUrl" class="w-full"></file-upload>
</el-form-item>
<el-form-item label="备注" prop="remark" class="mb-2 md:col-span-2">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" :rows="4" class="w-full"></el-input>
<el-form-item label="图纸文件" prop="fileId" class="mb-2 md:col-span-2">
<file-upload :limit="10" :fileSize="100" v-model="form.fileId" class="w-full"></file-upload>
</el-form-item>
</div>
</el-form>
@ -85,38 +63,29 @@
</template>
<script setup name="Leave" lang="ts">
import { LeaveForm, LeaveQuery, LeaveVO } from '@/api/workflow/leave/types';
import { LeaveForm } from '@/api/workflow/leave/types';
import { startWorkFlow } from '@/api/workflow/task';
import SubmitVerify from '@/components/Process/submitVerify.vue';
import ApprovalRecord from '@/components/Process/approvalRecord.vue';
import ApprovalButton from '@/components/Process/approvalButton.vue';
import { StartProcessBo } from '@/api/workflow/workflowCommon/types';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
import { DrawingForm } from '@/api/design/drawing/types';
import { useUserStoreHook } from '@/store/modules/user';
import { updateDrawing, getDrawing, addDrawing } from '@/api/design/drawing';
import { getDrawing } from '@/api/design/drawing';
import { updateDesignChange, getDesignChange } from '@/api/design/designChange';
// 获取用户 store
const userStore = useUserStoreHook();
// 从 store 中获取项目列表和当前选中的项目
const currentProject = computed(() => userStore.selectedProject);
const { drawing_file_type } = toRefs<any>(proxy?.useDict('drawing_file_type'));
const buttonLoading = ref(false);
const loading = ref(true);
//路由参数
const routeParams = ref<Record<string, any>>({});
const flowCodeOptions = [
{
value: currentProject.value?.id + '_changedrawing',
value: currentProject.value?.id + '_designchanged',
label: '变更图纸审批'
},
{
value: currentProject.value?.id + '_blueprintdrawing',
label: '蓝图审批'
},
{
value: currentProject.value?.id + '_processdrawing',
label: '过程图纸审批'
}
];
@ -146,7 +115,7 @@ const submitFormData = ref<StartProcessBo>({
});
const taskVariables = ref<Record<string, any>>({});
const initFormData: DrawingForm = {
const initFormData = {
id: undefined,
projectId: currentProject.value?.id,
versionNumber: undefined,
@ -156,9 +125,9 @@ const initFormData: DrawingForm = {
fileSuffix: undefined,
originalName: undefined,
remark: undefined,
file: undefined
fileId: undefined
};
const data = reactive<PageData<LeaveForm, LeaveQuery>>({
const data = reactive({
form: { ...initFormData },
queryParams: {
pageNum: 1,
@ -173,15 +142,12 @@ const data = reactive<PageData<LeaveForm, LeaveQuery>>({
params: {}
},
rules: {
versionNumber: [{ required: true, message: '版本号不能为空', trigger: 'blur' }],
fileName: [{ required: true, message: '文件名称不能为空', trigger: 'blur' }],
fileType: [{ required: true, message: '文件类型不能为空', trigger: 'change' }],
fileUrl: [
fileId: [
{
validator: (rule, value, callback) => {
// 新增时必须上传文件
if (!form.value.fileUrl) {
callback(new Error('请上传图纸文件'));
if (!form.value.fileId) {
callback(new Error('请上传变更图纸文件'));
} else {
callback();
}
@ -210,7 +176,7 @@ const getInfo = () => {
loading.value = true;
buttonLoading.value = false;
nextTick(async () => {
const res = await getDrawing(routeParams.value.id);
const res = await getDesignChange(routeParams.value.id);
Object.assign(form.value, res.data);
loading.value = false;
buttonLoading.value = false;
@ -224,11 +190,9 @@ const submitForm = (status1: string) => {
if (valid) {
buttonLoading.value = true;
var res;
if (form.value.id) {
res = await updateDrawing(form.value).finally(() => (buttonLoading.value = false));
} else {
res = await addDrawing(form.value).finally(() => (buttonLoading.value = false));
}
// if (form.value.id) {
res = await updateDesignChange({ ...form.value, id: routeParams.value.id }).finally(() => (buttonLoading.value = false));
// }
if (res.code == 200) {
dialog.visible = false;
submit(status.value, res.data);
@ -301,7 +265,6 @@ onMounted(() => {
nextTick(async () => {
routeParams.value = proxy.$route.query;
reset();
loading.value = false;
if (routeParams.value.type === 'update' || routeParams.value.type === 'view' || routeParams.value.type === 'approval') {
getInfo();