From 193af68d72a71268054f7d07395c2ea11210ecc1 Mon Sep 17 00:00:00 2001 From: 张诺 <zhang_12370@163.com> Date: 星期五, 30 五月 2025 09:40:28 +0800 Subject: [PATCH] 提交基础信息 三个模块 提交采购管理 --- src/views/basicInformation/mould/customer.vue | 140 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 140 insertions(+), 0 deletions(-) diff --git a/src/views/basicInformation/mould/customer.vue b/src/views/basicInformation/mould/customer.vue new file mode 100644 index 0000000..b35a6d5 --- /dev/null +++ b/src/views/basicInformation/mould/customer.vue @@ -0,0 +1,140 @@ +<template> + <div> + <el-dialog + v-model="dialogVisible" + :title="title" + width="800" + :close-on-click-modal="false" + :before-close="handleClose" + > + <el-form + ref="formRef" + style="max-width: 600px; margin: 0 auto" + :model="formData" + :rules="rules" + label-width="auto" + > + <el-form-item label="鍗¤儭" prop="supplierName"> + <el-input + v-model="formData.supplierName" + placeholder="璇疯緭鍏ヤ緵璐у晢鍚嶇О" + /> + </el-form-item> + <el-form-item label="绾崇◣浜鸿瘑鍒彿" prop="identifyNumber"> + <el-input + v-model="formData.identifyNumber" + placeholder="璇疯緭鍏ョ撼绋庝汉璇嗗埆鍙�" + /> + </el-form-item> + <el-form-item label="缁忚惀鍦板潃" prop="address"> + <el-select v-model="formData.address" placeholder="璇烽�夋嫨缁忚惀鍦板潃"> + <el-option label="Zone one" value="shanghai" /> + <el-option label="Zone two" value="beijing" /> + </el-select> + </el-form-item> + <el-form-item label="閾惰璐︽埛" prop="bankAccount"> + <el-input v-model="formData.bankAccount" placeholder="璇疯緭鍏ラ摱琛岃处鎴�" /> + </el-form-item> + <el-form-item> + <el-button type="primary" @click="submitForm"> + 纭畾 + </el-button> + </el-form-item> + </el-form> + </el-dialog> + </div> +</template> + +<script setup> +import { ref, watch ,defineProps } from 'vue' + +const props = defineProps({ + beforeClose: { + type: Function, + default: () => {} + }, + form: { + type: Object, + default: () => ({}) + }, + addOrEdit: { + type: String, + default: 'add' + }, + title: { + type: String, + default: '' + }, +}) + +const emit = defineEmits(['submit', 'handleBeforeClose','update:customerDialogFormVisible']) + +// 琛ㄥ崟寮曠敤 +const formRef = ref(null) +// 琛ㄥ崟鏁版嵁 +const formData = ref({ ...props.form }) +// 寮圭獥鍙鎬� +const dialogVisible = defineModel("customerDialogFormVisible",{required:true,type:Boolean}) + +// 鐩戝惉澶栭儴浼犲叆鐨勮〃鍗曟暟鎹彉鍖� +watch(() => props.form, (newVal) => { + formData.value = { ...newVal } +}, { deep: true }) + +// 鐩戝惉鍐呴儴寮圭獥鐘舵�佸彉鍖� +watch(() => dialogVisible.value, (newVal) => { + emit('update:customerDialogFormVisible', newVal) +}) + +// 鎻愪氦琛ㄥ崟 +const submitForm = async () => { + if (!formRef.value) return + await formRef.value.validate((valid, fields) => { + if (valid) { + emit('submit', formData.value) + } + }) +} +// 鍙栨秷琛ㄥ崟 +const cancelForm = () => { + emit('update:customerDialogFormVisible', false) + formData.value = {} +} +// 閲嶇疆琛ㄥ崟 +const resetForm = () => { + if (!formRef.value) return + formRef.value.resetFields() +} +// 鍏抽棴寮圭獥 +const handleClose = () => { + // 瑙﹀彂鐖剁粍浠剁殑鍏抽棴鍑芥暟 + emit("handleBeforeClose") + emit('update:customerDialogFormVisible', false) +} +const rules = reactive({ + supplierName: [ + { required: true, message: "璇疯緭鍏ヤ緵璐у晢鍚嶇О", trigger: "blur" }, + ], + identifyNumber: [ + { required: true, message: "璇锋纭緭鍏ョ撼绋庝汉璇嗗埆鍙�", trigger: "blur" }, + { min: 17, max: 20, message: "璇疯緭鍏�17-20浣嶇撼绋庝汉璇嗗埆鍙�", trigger: "blur" }, + ], + address: [ + { + required: true, + message: "璇烽�夋嫨缁忚惀鍦板潃", + trigger: "change", + }, + ], + bankAccount: [{ required: true, message: "璇疯緭鍏ラ摱琛岃处鎴�", trigger: "blur" }], + bank: [{ required: true, message: "璇疯緭鍏ュ紑鎴疯", trigger: "blur" }], + contacts: [{ required: true, message: "璇疯緭鍏ュ紑鎴疯", trigger: "blur" }], + contactsPhone: [ + { required: true, message: "璇疯緭鍏ヨ仈绯讳汉", trigger: "blur" }, + { min: 11, max: 11, message: "璇疯緭鍏�11浣嶈仈绯讳汉鐢佃瘽", trigger: "blur" }, + ], +}); +</script> + +<style lang="sass" scoped> +</style> \ No newline at end of file -- Gitblit v1.9.3