From 376f3de70bfdd7905876123ba5a331c0aa176199 Mon Sep 17 00:00:00 2001
From: 小飞侠 <8277136+liaoxujun@user.noreply.gitee.com>
Date: 星期四, 25 九月 2025 09:10:29 +0800
Subject: [PATCH] 修改注册时可以多模块注册
---
Web/src/views/fb_p_complaints/procurementComplaint/component/editDialog.vue | 217 ++++++++++++++++++++++++++++++++++--------------------
1 files changed, 137 insertions(+), 80 deletions(-)
diff --git a/Web/src/views/fb_p_complaints/procurementComplaint/component/editDialog.vue b/Web/src/views/fb_p_complaints/procurementComplaint/component/editDialog.vue
index 3bad527..b54d199 100644
--- a/Web/src/views/fb_p_complaints/procurementComplaint/component/editDialog.vue
+++ b/Web/src/views/fb_p_complaints/procurementComplaint/component/editDialog.vue
@@ -1,12 +1,13 @@
锘�<script lang="ts" name="procurementComplaint" setup>
-import { ref, reactive, onMounted } from "vue";
-import { ElMessage } from "element-plus";
-import type { FormRules } from "element-plus";
+import { ref, reactive, onMounted } from 'vue';
+import { ElMessage } from 'element-plus';
+import type { FormRules } from 'element-plus';
import { formatDate } from '/@/utils/formatTime';
import { useProcurementComplaintApi } from '/@/api/fb_p_complaints/procurementComplaint';
+import { log } from 'console';
//鐖剁骇浼犻�掓潵鐨勫嚱鏁帮紝鐢ㄤ簬鍥炶皟
-const emit = defineEmits(["reloadTable"]);
+const emit = defineEmits(['reloadTable']);
const procurementComplaintApi = useProcurementComplaintApi();
const ruleFormRef = ref();
@@ -14,35 +15,44 @@
title: '',
loading: false,
showDialog: false,
- ruleForm: {} as any,
+ ruleForm: {
+ complaints: [{ itemDescription: '' }],
+ } as any,
stores: {},
dropdownData: {} as any,
});
+const handlingStatus = [
+ { value: 0, label: '鍏跺畠' },
+ { value: 1, label: '鎴愮珛' },
+ { value: 2, label: '椹冲洖' },
+ { value: 3, label: '閮ㄥ垎鎴愮珛' },
+];
+
// 鑷娣诲姞鍏朵粬瑙勫垯
const rules = ref<FormRules>({
- projectCode: [{required: true, message: '璇烽�夋嫨椤圭洰缂栧彿锛�', trigger: 'blur',},],
- projectName: [{required: true, message: '璇烽�夋嫨椤圭洰鍚嶇О锛�', trigger: 'blur',},],
- decisionDate: [{required: true, message: '璇烽�夋嫨鍐冲畾鏃ユ湡锛�', trigger: 'change',},],
- purchaser: [{required: true, message: '璇烽�夋嫨閲囪喘浜猴紒', trigger: 'blur',},],
- procurementAgency: [{required: true, message: '璇烽�夋嫨閲囪喘浠g悊鏈烘瀯锛�', trigger: 'blur',},],
+ projectCode: [{ required: true, message: '璇烽�夋嫨椤圭洰缂栧彿锛�', trigger: 'blur' }],
+ projectName: [{ required: true, message: '璇烽�夋嫨椤圭洰鍚嶇О锛�', trigger: 'blur' }],
+ decisionDate: [{ required: true, message: '璇烽�夋嫨鍐冲畾鏃ユ湡锛�', trigger: 'change' }],
+ purchaser: [{ required: true, message: '璇烽�夋嫨閲囪喘浜猴紒', trigger: 'blur' }],
+ procurementAgency: [{ required: true, message: '璇烽�夋嫨閲囪喘浠g悊鏈烘瀯锛�', trigger: 'blur' }],
});
// 椤甸潰鍔犺浇鏃�
-onMounted(async () => {
-});
+onMounted(async () => {});
// 鎵撳紑寮圭獥
const openDialog = async (row: any, title: string) => {
state.title = title;
- row = row ?? { };
- state.ruleForm = row.id ? await procurementComplaintApi.detail(row.id).then(res => res.data.result) : JSON.parse(JSON.stringify(row));
+ row = row ?? { complaints: [{ itemDescription: '' }] };
+ state.ruleForm = row.id ? await procurementComplaintApi.detail(row.id).then((res) => res.data.result) : JSON.parse(JSON.stringify(row));
state.showDialog = true;
+ console.log(state.ruleForm.complaints, state.ruleForm.complaints.length);
};
// 鍏抽棴寮圭獥
const closeDialog = () => {
- emit("reloadTable");
+ emit('reloadTable');
state.showDialog = false;
};
@@ -56,81 +66,128 @@
} else {
ElMessage({
message: `琛ㄥ崟鏈�${Object.keys(fields).length}澶勯獙璇佸け璐ワ紝璇蜂慨鏀瑰悗鍐嶆彁浜,
- type: "error",
+ type: 'error',
});
}
});
+};
+
+const changeComplaints = (index:any,txt: String) => {
+ if (txt == 'add') {
+ state.ruleForm.complaints.splice(index+1, 0, { itemDescription: '' })
+ } else {
+ state.ruleForm.complaints.splice(index, 1)
+ }
};
//灏嗗睘鎬ф垨鑰呭嚱鏁版毚闇茬粰鐖剁粍浠�
defineExpose({ openDialog });
</script>
<template>
- <div class="procurementComplaint-container">
- <el-dialog v-model="state.showDialog" :width="800" draggable :close-on-click-modal="false">
- <template #header>
- <div style="color: #fff">
- <span>{{ state.title }}</span>
- </div>
- </template>
- <el-form :model="state.ruleForm" ref="ruleFormRef" label-width="auto" :rules="rules">
- <el-row :gutter="35">
- <el-form-item v-show="false">
- <el-input v-model="state.ruleForm.id" />
- </el-form-item>
- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" >
- <el-form-item label="椤圭洰缂栧彿" prop="projectCode">
- <el-input v-model="state.ruleForm.projectCode" placeholder="璇疯緭鍏ラ」鐩紪鍙�" maxlength="50" show-word-limit clearable />
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" >
- <el-form-item label="椤圭洰鍚嶇О" prop="projectName">
- <el-input v-model="state.ruleForm.projectName" placeholder="璇疯緭鍏ラ」鐩悕绉�" maxlength="200" show-word-limit clearable />
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" >
- <el-form-item label="鍐冲畾鏃ユ湡" prop="decisionDate">
- <el-date-picker v-model="state.ruleForm.decisionDate" type="date" placeholder="鍐冲畾鏃ユ湡" />
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" >
- <el-form-item label="閲囪喘浜�" prop="purchaser">
- <el-input v-model="state.ruleForm.purchaser" placeholder="璇疯緭鍏ラ噰璐汉" maxlength="100" show-word-limit clearable />
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" >
- <el-form-item label="閲囪喘浠g悊鏈烘瀯" prop="procurementAgency">
- <el-input v-model="state.ruleForm.procurementAgency" placeholder="璇疯緭鍏ラ噰璐唬鐞嗘満鏋�" maxlength="100" show-word-limit clearable />
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" >
- <el-form-item label="鎶曡瘔浜�" prop="complainant">
- <el-input v-model="state.ruleForm.complainant" placeholder="璇疯緭鍏ユ姇璇変汉" maxlength="100" show-word-limit clearable />
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" >
- <el-form-item label="閲囪喘鐩戠潱閮ㄩ棬" prop="procurementSupervisionDepartment">
- <el-input v-model="state.ruleForm.procurementSupervisionDepartment" placeholder="璇疯緭鍏ラ噰璐洃鐫i儴闂�" maxlength="100" show-word-limit clearable />
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20" >
- <el-form-item label="绾夸笂鍦板潃" prop="url">
- <el-input v-model="state.ruleForm.url" placeholder="璇疯緭鍏ョ嚎涓婂湴鍧�" maxlength="255" show-word-limit clearable />
- </el-form-item>
- </el-col>
- </el-row>
- </el-form>
- <template #footer>
- <span class="dialog-footer">
- <el-button @click="() => state.showDialog = false">鍙� 娑�</el-button>
- <el-button @click="submit" type="primary" v-reclick="1000">纭� 瀹�</el-button>
- </span>
- </template>
- </el-dialog>
- </div>
+ <div class="procurementComplaint-container">
+ <el-dialog v-model="state.showDialog" :width="900" draggable :close-on-click-modal="false">
+ <template #header>
+ <div style="color: #fff">
+ <span>{{ state.title }}</span>
+ </div>
+ </template>
+ <el-form :model="state.ruleForm" ref="ruleFormRef" label-width="auto" :rules="rules">
+ <el-row :gutter="35">
+ <el-form-item v-show="false">
+ <el-input v-model="state.ruleForm.id" />
+ </el-form-item>
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+ <el-form-item label="鍐冲畾鏃ユ湡" prop="decisionDate">
+ <el-date-picker v-model="state.ruleForm.decisionDate" type="date" placeholder="璇烽�夋嫨鍐冲畾鏃ユ湡" />
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+ <el-form-item label="椤圭洰鍚嶇О" prop="projectName">
+ <el-input v-model="state.ruleForm.projectName" placeholder="璇疯緭鍏ラ」鐩悕绉�" maxlength="200" show-word-limit
+ clearable />
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+ <el-form-item label="椤圭洰缂栧彿" prop="projectCode">
+ <el-input v-model="state.ruleForm.projectCode" placeholder="璇疯緭鍏ラ」鐩紪鍙�" maxlength="50" show-word-limit
+ clearable />
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+ <el-form-item label="閲囪喘浜�" prop="purchaser">
+ <el-input v-model="state.ruleForm.purchaser" placeholder="璇疯緭鍏ラ噰璐汉" maxlength="100" show-word-limit
+ clearable />
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+ <el-form-item label="閲囪喘浠g悊鏈烘瀯" prop="procurementAgency">
+ <el-input v-model="state.ruleForm.procurementAgency" placeholder="璇疯緭鍏ラ噰璐唬鐞嗘満鏋�" maxlength="100"
+ show-word-limit clearable />
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+ <el-form-item label="閲囪喘鐩戠潱閮ㄩ棬" prop="procurementSupervisionDepartment">
+ <el-input v-model="state.ruleForm.procurementSupervisionDepartment" placeholder="璇疯緭鍏ラ噰璐洃鐫i儴闂�"
+ maxlength="100" show-word-limit clearable />
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+ <el-form-item label="鎶曡瘔浜�" prop="complainant">
+ <el-input v-model="state.ruleForm.complainant" placeholder="璇疯緭鍏ユ姇璇変汉" maxlength="100" show-word-limit
+ clearable />
+ </el-form-item>
+ </el-col>
+ <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+ <el-form-item label="绾夸笂鍦板潃" prop="url">
+ <el-input v-model="state.ruleForm.url" placeholder="璇疯緭鍏ョ嚎涓婂湴鍧�" maxlength="255" show-word-limit clearable />
+ </el-form-item>
+ </el-col>
+ </el-row>
+ <el-row :gutter="20">
+ <template v-for="(item,index) in state.ruleForm.complaints" :key="index">
+ <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item :label="`鎶曡瘔浜嬮」${index==0?'':index}`" prop="complaints">
+ <el-input v-model="item.itemDescription" type="textarea" :placeholder="`璇疯緭鍏ユ姇璇変簨椤�${index==0?'':index}`"
+ maxlength="1000" show-word-limit clearable />
+ </el-form-item>
+ </el-col>
+ <el-col :xs="12" :sm="12" :md="12" :lg="12" :xl="12" class="">
+ <el-form-item :label="`澶勭悊鎻忚堪${index==0?'':index}`" prop="complaints">
+ <el-input v-model="item.handlingResult" type="textarea" :placeholder="`璇疯緭鍏ュ鐞嗘弿杩�${index==0?'':index}`"
+ maxlength="1000" show-word-limit clearable />
+ </el-form-item>
+ </el-col>
+ <el-col :xs="6" :sm="6" :md="6" :lg="6" :xl="6" class="mb20">
+ <el-form-item :label="`鎶曡瘔鐘舵��${index==0?'':index}`" prop="complaints">
+ <el-select v-model="item.handlingStatus">
+ <el-option v-for="item in handlingStatus" :key="item.value" :label="item.label" :value="item.value" />
+ </el-select>
+ </el-form-item>
+ </el-col>
+ <el-col :xs="1" :sm="1" :md="1" :lg="1" :xl="1" class="mb20">
+ <el-button type="primary" @click="changeComplaints(index,'add')">+</el-button>
+ </el-col>
+ <el-col :xs="1" :sm="1" :md="1" :lg="1" :xl="1" class="mb20"
+ v-if="state.ruleForm.complaints&&state.ruleForm.complaints.length>1">
+ <el-button type="primary" @click="changeComplaints(index)">-</el-button>
+ </el-col>
+ <el-divider v-if="state.ruleForm.complaints&&state.ruleForm.complaints.length>1" />
+ </template>
+
+ </el-row>
+ </el-form>
+ <template #footer>
+ <span class="dialog-footer">
+ <el-button @click="() => state.showDialog = false">鍙� 娑�</el-button>
+ <el-button @click="submit" type="primary" v-reclick="1000">纭� 瀹�</el-button>
+ </span>
+ </template>
+ </el-dialog>
+ </div>
</template>
<style lang="scss" scoped>
-:deep(.el-select), :deep(.el-input-number) {
- width: 100%;
+:deep(.el-select),
+:deep(.el-input-number) {
+ width: 100%;
}
</style>
\ No newline at end of file
--
Gitblit v1.9.1