From 77e29e8e84a8a44c924b304fcb06f81dec594b07 Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期五, 06 六月 2025 14:57:06 +0800 Subject: [PATCH] 1.库存管理页面表头修改 2.销售出库表单字段添加 --- src/views/procureMent/components/ProductionDialog.vue | 250 +++++++++++++++++++------------------------------ 1 files changed, 96 insertions(+), 154 deletions(-) diff --git a/src/views/procureMent/components/ProductionDialog.vue b/src/views/procureMent/components/ProductionDialog.vue index 3da88f5..3e6d937 100644 --- a/src/views/procureMent/components/ProductionDialog.vue +++ b/src/views/procureMent/components/ProductionDialog.vue @@ -1,7 +1,7 @@ <template> <div> <el-dialog - v-model="dialogVisible" + v-model="dialogFormVisible" :title="title" width="600" :close-on-click-modal="false" @@ -19,29 +19,52 @@ <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 label="鐓ょ" prop="coal"> + <el-input v-model="form.coal" 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 label="閲囪喘鏁伴噺" prop="purchaseQuantity"> + <el-input v-model="form.purchaseQuantity" placeholder="璇疯緭鍏�" /> </el-form-item> - <el-form-item label="鍗曚环(绋庡墠)" prop="priceBeforeTax"> - <el-input v-model="form.priceBeforeTax" placeholder="璇疯緭鍏�" /> + <el-form-item label="鍗曚环(涓嶅惈绋�)" prop="priceExcludingTax"> + <el-input v-model="form.priceExcludingTax" placeholder="璇疯緭鍏�" > + <template v-slot:suffix> + <i style="font-style:normal;">鍏�</i> + </template> + </el-input> </el-form-item> - <el-form-item label="鎬讳环(绋庡墠)" prop="totalBeforeTax"> - <el-input v-model="form.totalBeforeTax" placeholder="璇疯緭鍏�" /> + <el-form-item label="鎬讳环(涓嶅惈绋�)" prop="totalPriceExcludingTax"> + <el-input v-model="form.totalPriceExcludingTax" placeholder="璇疯緭鍏�" > + <template v-slot:suffix> + <i style="font-style:normal;">鍏�</i> + </template> + </el-input> </el-form-item> - <el-form-item label="鐑��" prop="calorificValue"> - <el-input v-model="form.calorificValue" placeholder="璇疯緭鍏�" /> + <el-form-item label="鍗曚环(鍚◣)" prop="priceIncludingTax"> + <el-input v-model="form.priceIncludingTax" placeholder="璇疯緭鍏�" > + <template v-slot:suffix> + <i style="font-style:normal;">鍏�</i> + </template> + </el-input> </el-form-item> - <el-form-item label="鐧昏浜�" prop="registrant"> - <el-input v-model="form.registrant" placeholder="璇疯緭鍏�" /> + <el-form-item label="鎬讳环(鍚◣)" prop="totalPriceIncludingTax"> + <el-input v-model="form.totalPriceIncludingTax" placeholder="璇疯緭鍏�" > + <template v-slot:suffix> + <i style="font-style:normal;">鍏�</i> + </template> + </el-input> + </el-form-item> + <el-form-item label="绋庣巼" prop="taxRate"> + <el-input v-model="form.taxRate" placeholder="璇疯緭鍏�" /> + </el-form-item> + <el-form-item label="鐧昏浜�" prop="registrantId"> + <el-input v-model="form.registrantId" disabled placeholder="璇疯緭鍏�" /> </el-form-item> <el-form-item label="鐧昏鏃ユ湡" prop="registrationDate"> <el-date-picker + disabled v-model="form.registrationDate" type="date" placeholder="YYYY-MM-DD" @@ -52,20 +75,18 @@ </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 > + <el-button type="primary" @click="handleSubmit">纭</el-button> </div> </template> </el-dialog> @@ -73,16 +94,18 @@ </template> <script setup name="ProductionDialog"> -import { ref, defineProps, watch } from "vue"; +import { ref, defineProps, watch, onMounted, nextTick } from "vue"; import { ElMessage } from "element-plus"; +import useUserStore from '@/store/modules/user' +import {addOrEditPR} from "@/api/procureMent"; const props = defineProps({ title: { type: String, default: "", }, }); -const emit = defineEmits(["update:visible", "success"]); -const dialogVisible = defineModel("dialogFormVisible", { +const emit = defineEmits(["update:dialogFormVisible", "success"]); +const dialogFormVisible = defineModel("dialogFormVisible", { required: true, type: Boolean, }); @@ -90,164 +113,83 @@ required: true, type: Object, }); +const copyForm = defineModel("copyForm", { + required: true, + type: Object, +}); +const userStore = useUserStore() +const userInfo = ref({}); +onMounted(async () => { + let res = await userStore.getInfo() + userInfo.value = res; +}) const rules = { supplierName: [ { required: true, message: "璇疯緭鍏ヤ緵搴斿晢鍚嶇О", trigger: "blur" }, ], - category: [{ required: true, message: "璇疯緭鍏ョ叅绉�", trigger: "blur" }], + coal: [{ required: true, message: "璇疯緭鍏ョ叅绉�", trigger: "blur" }], unit: [{ required: true, message: "璇疯緭鍏ュ崟浣�", trigger: "blur" }], - purchaseAmount: [ + purchaseQuantity: [ { 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" }], + priceExcludingTax: [{ required: true, message: "璇疯緭鍏ュ崟浠�", trigger: "blur" }], + totalPriceExcludingTax: [{ required: true, message: "璇疯緭鍏ユ�讳环", trigger: "blur" }], + priceIncludingTax: [{ required: true, message: "璇疯緭鍏ュ惈绋庡崟浠�", trigger: "blur" }], + totalPriceIncludingTax: [{ required: true, message: "璇疯緭鍏ュ惈绋庢�讳环", trigger: "blur" }], + taxRate: [{ required: true, message: "璇疯緭鍏ョ◣鐜�", trigger: "blur" }], + registrantId: [{ required: true, message: "璇疯緭鍏ョ櫥璁颁汉", trigger: "blur" }], registrationDate: [ { required: true, message: "璇烽�夋嫨鐧昏鏃ユ湡", trigger: "change" }, ], }; // 鍏抽棴寮圭獥 const handleClose = () => { - dialogVisible.value = false; - console.log(form.value); - // formRef.value?.resetFields() - // Object.assign(form, { - // }) + dialogFormVisible.value = false; }; -const handleReset = () => { - if (!formRef.value) return; - formRef.value.resetFields(); - ElMessage.success("琛ㄥ崟宸查噸缃�"); -}; -// 鎸佺画鐩戝惉form.value鐨勫彉鍖� -watch( - () => form.value, - (val) => { - console.log(val); +const handleReset = async () => { + // 閲嶇疆琛ㄥ崟鏁版嵁 + form.value = JSON.parse(JSON.stringify(copyForm.value)); + // 绛夊緟DOM鏇存柊瀹屾垚鍚庢竻闄よ〃鍗曢獙璇佺姸鎬� + await nextTick(); + if (formRef.value) { + formRef.value.clearValidate(); } -); + console.log(form.value); +}; const formRef = ref(null); // 鎻愪氦琛ㄥ崟 const handleSubmit = async () => { if (!formRef.value) return; - await formRef.value.validate((valid) => { + await formRef.value.validate(async (valid) => { if (valid) { - try { - emit("success", { ...form.value }); - handleClose(); - ElMessage.success("淇濆瓨鎴愬姛"); - } catch (error) { - console.error("淇濆瓨澶辫触:", error); - ElMessage.error("淇濆瓨澶辫触"); + console.log("琛ㄥ崟楠岃瘉閫氳繃", form.value); + const obj = ref({}); + if (props.title.includes('鏂板')) { + let result = await addOrEditPR({ + ...form.value, + }) + obj.value = { + title: "鏂板", + ...form.value, + result + }; + } else { + delete form.value.updateTime + delete form.value.createTime + let result = await addOrEditPR({ + ...form.value, + }) + obj.value = { + title: "缂栬緫", + ...form.value, + result + }; } + emit("submit", obj.value); } }); }; </script> -<style lang="less" scoped> -</style> - -<!-- <template> - <el-dialog - v-model="dialogFormVisible" - title="閲囪喘鐧昏鏂板" - width="500px" - :close-on-click-modal="false" - @close="handleClose" - > - - </el-dialog> -</template> - -<script setup> -import { ref, reactive, defineProps, defineEmits } from 'vue' -import { ElMessage } from 'element-plus' - -const props = defineProps({ - visible: { - type: Boolean, - default: false - } -}) - -const emit = defineEmits(['update:visible', 'success']) - -const dialogFormVisible = ref(false) -const formRef = ref(null) - -// 琛ㄥ崟鏁版嵁 -const form = reactive({ - supplierName: '', - category: '', - unit: '', - purchaseAmount: '', - priceBeforeTax: '', - totalBeforeTax: '', - calorificValue: '', - registrant: '', - registrationDate: '' -}) - -// 琛ㄥ崟楠岃瘉瑙勫垯 - - -// 鐩戝惉visible鍙樺寲 -watch(() => props.visible, (val) => { - dialogFormVisible.value = val -}) - -// 鐩戝惉dialogFormVisible鍙樺寲 -watch(() => dialogFormVisible.value, (val) => { - emit('update:visible', val) -}) - -// 鎻愪氦琛ㄥ崟 -const handleSubmit = async () => { - if (!formRef.value) return - - await formRef.value.validate((valid) => { - if (valid) { - try { - emit('success', { ...form }) - handleClose() - ElMessage.success('淇濆瓨鎴愬姛') - } catch (error) { - console.error('淇濆瓨澶辫触:', error) - ElMessage.error('淇濆瓨澶辫触') - } - } - }) -} - -// 鍙栨秷 -const handleCancel = () => { - handleClose() -} -</script> - -<style scoped> -.production-form { - padding: 20px; -} - -.dialog-footer { - display: flex; - justify-content: center; - gap: 20px; -} - -:deep(.el-form-item__label) { - font-weight: normal; -} - -:deep(.el-input), -:deep(.el-date-picker) { - width: 100%; -} - -:deep(.el-dialog__body) { - padding-top: 10px; -} -</style> --> \ No newline at end of file +<style lang="sass" scoped> +</style> \ No newline at end of file -- Gitblit v1.9.3