From 6b9dd0a1b0c259a02c086f7834467e1fa2c2a5ea Mon Sep 17 00:00:00 2001 From: 张诺 <zhang_12370@163.com> Date: 星期五, 30 五月 2025 17:58:54 +0800 Subject: [PATCH] 调整基础信息供应商模块,客户信息模块并新增联动查询省市区联动,修改table表格方法 --- src/views/procureMent/components/ProductionDialog.vue | 147 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 147 insertions(+), 0 deletions(-) diff --git a/src/views/procureMent/components/ProductionDialog.vue b/src/views/procureMent/components/ProductionDialog.vue new file mode 100644 index 0000000..1de700b --- /dev/null +++ b/src/views/procureMent/components/ProductionDialog.vue @@ -0,0 +1,147 @@ +<template> + <div> + <el-dialog + v-model="dialogVisible" + :title="title" + width="600" + :close-on-click-modal="false" + @close="handleClose" + > + <el-form + ref="formRef" + :model="form" + :rules="rules" + label-width="auto" + class="production-form" + label-position="right" + style="max-width: 400px; margin: 0 auto" + > + <el-form-item label="渚涘簲鍟嗗悕绉�" prop="supplierName"> + <el-input v-model="form.supplierName" placeholder="璇疯緭鍏�" /> + </el-form-item> + <el-form-item label="鐓ょ" prop="category"> + <el-input v-model="form.category" placeholder="璇疯緭鍏�" /> + </el-form-item> + <el-form-item label="鍗曚綅" prop="unit"> + <el-input v-model="form.unit" placeholder="璇疯緭鍏�" /> + </el-form-item> + <el-form-item label="閲囪喘鏁伴噺" prop="purchaseAmount"> + <el-input v-model="form.purchaseAmount" placeholder="璇疯緭鍏�" /> + </el-form-item> + <el-form-item label="鍗曚环(绋庡墠)" prop="priceBeforeTax"> + <el-input v-model="form.priceBeforeTax" placeholder="璇疯緭鍏�" /> + </el-form-item> + <el-form-item label="鎬讳环(绋庡墠)" prop="totalBeforeTax"> + <el-input v-model="form.totalBeforeTax" placeholder="璇疯緭鍏�" /> + </el-form-item> + <el-form-item label="鐑��" prop="calorificValue"> + <el-input v-model="form.calorificValue" placeholder="璇疯緭鍏�" /> + </el-form-item> + <el-form-item label="鐧昏浜�" prop="registrant"> + <el-input v-model="form.registrant" placeholder="璇疯緭鍏�" /> + </el-form-item> + <el-form-item label="鐧昏鏃ユ湡" prop="registrationDate"> + <el-date-picker + v-model="form.registrationDate" + type="date" + placeholder="YYYY-MM-DD" + style="width: 100%" + value-format="YYYY-MM-DD" + /> + </el-form-item> + </el-form> + <template #footer> + <div class="dialog-footer"> + <el-button type="primary" @click="handleSubmit">淇濆瓨</el-button> + <!-- 閲嶇疆鍜屽彇娑� --> + <el-button + type="primary" + @click="handleClose" + v-if="title.includes('鏂板')" + >鍙栨秷</el-button + > + <el-button + type="primary" + @click="handleReset" + v-if="title.includes('缂栬緫')" + >閲嶇疆</el-button + > + </div> + </template> + </el-dialog> + </div> +</template> + +<script setup name="ProductionDialog"> +import { ref, defineProps, watch } from "vue"; +import { ElMessage } from "element-plus"; +const props = defineProps({ + title: { + type: String, + default: "", + }, +}); +const emit = defineEmits(["update:visible", "success"]); +const dialogVisible = defineModel("dialogFormVisible", { + required: true, + type: Boolean, +}); +const form = defineModel("form", { + required: true, + type: Object, +}); +const rules = { + supplierName: [ + { required: true, message: "璇疯緭鍏ヤ緵搴斿晢鍚嶇О", trigger: "blur" }, + ], + category: [{ required: true, message: "璇疯緭鍏ョ叅绉�", trigger: "blur" }], + unit: [{ required: true, message: "璇疯緭鍏ュ崟浣�", trigger: "blur" }], + purchaseAmount: [ + { required: true, message: "璇疯緭鍏ラ噰璐暟閲�", trigger: "blur" }, + ], + priceBeforeTax: [{ required: true, message: "璇疯緭鍏ュ崟浠�", trigger: "blur" }], + totalBeforeTax: [{ required: true, message: "璇疯緭鍏ユ�讳环", trigger: "blur" }], + calorificValue: [{ required: true, message: "璇疯緭鍏ョ儹鍊�", trigger: "blur" }], + registrant: [{ required: true, message: "璇疯緭鍏ョ櫥璁颁汉", trigger: "blur" }], + registrationDate: [ + { required: true, message: "璇烽�夋嫨鐧昏鏃ユ湡", trigger: "change" }, + ], +}; +// 鍏抽棴寮圭獥 +const handleClose = () => { + dialogVisible.value = false; + console.log(form.value); +}; +const handleReset = () => { + if (!formRef.value) return; + formRef.value.resetFields(); + ElMessage.success("琛ㄥ崟宸查噸缃�"); +}; +// 鎸佺画鐩戝惉form.value鐨勫彉鍖� +watch( + () => form.value, + (val) => { + console.log(val); + } +); +const formRef = ref(null); +// 鎻愪氦琛ㄥ崟 +const handleSubmit = async () => { + if (!formRef.value) return; + await formRef.value.validate((valid) => { + if (valid) { + try { + emit("success", { ...form.value }); + handleClose(); + ElMessage.success("淇濆瓨鎴愬姛"); + } catch (error) { + console.error("淇濆瓨澶辫触:", error); + ElMessage.error("淇濆瓨澶辫触"); + } + } + }); +}; +</script> + +<style lang="sass" scoped> +</style> \ No newline at end of file -- Gitblit v1.9.3