From 54a96b9f4eb652e3588640e60d3ce71c32a56a79 Mon Sep 17 00:00:00 2001
From: gongchunyi <deslre0381@gmail.com>
Date: 星期四, 02 四月 2026 15:02:56 +0800
Subject: [PATCH] Merge branch 'dev_HYSN' of http://114.132.189.42:9002/r/product-inventory-management into dev_HYSN
---
src/views/equipmentManagement/ledger/Form.vue | 336 ++++++++++++++++++++++++-------------------------------
1 files changed, 146 insertions(+), 190 deletions(-)
diff --git a/src/views/equipmentManagement/ledger/Form.vue b/src/views/equipmentManagement/ledger/Form.vue
index d14f4ff..063645d 100644
--- a/src/views/equipmentManagement/ledger/Form.vue
+++ b/src/views/equipmentManagement/ledger/Form.vue
@@ -1,100 +1,74 @@
<template>
- <el-form :model="form" label-width="100px" :rules="formRules" ref="formRef">
+ <el-form :model="form"
+ label-width="100px"
+ :rules="formRules"
+ ref="formRef">
<el-row :gutter="20">
<el-col :span="12">
- <el-form-item label="璁惧鍚嶇О" prop="deviceName">
- <el-input v-model="form.deviceName" placeholder="璇疯緭鍏ヨ澶囧悕绉�" />
+ <el-form-item label="璁惧鍚嶇О"
+ prop="deviceName">
+ <el-input v-model="form.deviceName"
+ placeholder="璇疯緭鍏ヨ澶囧悕绉�" />
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="瑙勬牸鍨嬪彿" prop="deviceModel">
- <el-input v-model="form.deviceModel" placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�" />
+ <el-form-item label="瑙勬牸鍨嬪彿"
+ prop="deviceModel">
+ <el-input v-model="form.deviceModel"
+ placeholder="璇疯緭鍏ヨ鏍煎瀷鍙�" />
</el-form-item>
</el-col>
- <el-col :span="12">
+ <!-- <el-col :span="12">
<el-form-item label="璁惧鍝佺墝" prop="deviceBrand">
<el-input v-model="form.deviceBrand" placeholder="璇疯緭鍏ヨ澶囧搧鐗�" />
</el-form-item>
- </el-col>
+ </el-col> -->
<el-col :span="12">
- <el-form-item label="渚涘簲鍟�" prop="supplierName">
- <el-input v-model="form.supplierName" placeholder="璇疯緭鍏ヤ緵搴斿晢" />
+ <el-form-item label="渚涘簲鍟�"
+ prop="supplierName">
+ <el-input v-model="form.supplierName"
+ placeholder="璇疯緭鍏ヤ緵搴斿晢" />
</el-form-item>
</el-col>
- <el-col :span="12">
+ <!-- <el-col :span="12">
<el-form-item label="瀛樻斁浣嶇疆" prop="storageLocation">
<el-input v-model="form.storageLocation" placeholder="璇疯緭鍏ュ瓨鏀句綅缃�" />
</el-form-item>
- </el-col>
+ </el-col> -->
<el-col :span="12">
- <el-form-item label="鍗曚綅" prop="unit">
- <el-input v-model="form.unit" placeholder="璇疯緭鍏ュ崟浣�" />
+ <el-form-item label="鍗曚綅"
+ prop="unit">
+ <el-input v-model="form.unit"
+ placeholder="璇疯緭鍏ュ崟浣�" />
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="鍚敤鎶樻棫" prop="enableDepreciation">
- <el-switch v-model="form.enableDepreciation" :active-value="true" :inactive-value="false" />
+ <el-form-item label="鏁伴噺"
+ prop="number">
+ <el-input-number :min="1"
+ style="width: 100%"
+ v-model="form.number"
+ disabled
+ placeholder="璇疯緭鍏ユ暟閲�" />
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="鏁伴噺" prop="number">
- <el-input-number :min="1" style="width: 100%"
- v-model="form.number"
- disabled
- placeholder="璇疯緭鍏ユ暟閲�"
- @change="mathNum"
- />
+ <el-form-item label="璧勪骇鍘熷��"
+ prop="taxIncludingPriceUnit">
+ <el-input-number :min="0"
+ style="width: 100%"
+ :precision="2"
+ v-model="form.taxIncludingPriceUnit"
+ placeholder="璇疯緭鍏ヨ祫浜у師鍊�"
+ maxlength="10" />
</el-form-item>
</el-col>
<el-col :span="12">
- <el-form-item label="鍚◣鍗曚环" prop="taxIncludingPriceUnit">
- <el-input-number :step="0.01" :min="0" style="width: 100%"
- v-model="form.taxIncludingPriceUnit"
- placeholder="璇疯緭鍏ュ惈绋庡崟浠�"
- maxlength="10"
- @change="mathNum"
- />
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="鍚◣鎬讳环" prop="taxIncludingPriceTotal">
- <el-input
- v-model="form.taxIncludingPriceTotal"
- placeholder="鑷姩鐢熸垚"
- type="number"
- disabled
- />
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="绋庣巼(%)" prop="taxRate">
- <!-- <el-input
- v-model="form.taxRate"
- placeholder="璇疯緭鍏ョ◣鐜�"
- type="number"
- >
- <template #append> % </template>
- </el-input> -->
- <el-select
- v-model="form.taxRate"
- placeholder="璇烽�夋嫨"
- clearable
- @change="mathNum"
- >
- <el-option label="1" :value="1" />
- <el-option label="6" :value="6" />
- <el-option label="13" :value="13" />
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :span="12">
- <el-form-item label="涓嶅惈绋庢�讳环" prop="unTaxIncludingPriceTotal">
- <el-input
- v-model="form.unTaxIncludingPriceTotal"
- placeholder="鑷姩鐢熸垚"
- type="number"
- disabled
- />
+ <el-form-item label="鍚敤鎶樻棫"
+ prop="enableDepreciation">
+ <el-switch v-model="form.enableDepreciation"
+ :active-value="true"
+ :inactive-value="false" />
</el-form-item>
</el-col>
<!-- <el-col :span="12">
@@ -103,137 +77,119 @@
</el-form-item>
</el-col> -->
<el-col :span="12">
- <el-form-item label="褰曞叆鏃ユ湡" prop="createTime">
- <el-date-picker
- style="width: 100%"
- v-model="form.createTime"
- format="YYYY-MM-DD"
- value-format="YYYY-MM-DD HH:mm:ss"
- type="date"
- placeholder="璇烽�夋嫨褰曞叆鏃ユ湡"
- clearable
- />
+ <el-form-item label="褰曞叆鏃ユ湡"
+ prop="createTime">
+ <el-date-picker style="width: 100%"
+ v-model="form.createTime"
+ format="YYYY-MM-DD"
+ value-format="YYYY-MM-DD HH:mm:ss"
+ type="date"
+ placeholder="璇烽�夋嫨褰曞叆鏃ユ湡"
+ clearable />
</el-form-item>
</el-col>
- <el-col :span="12">
- <el-form-item label="棰勮杩愯鏃堕棿" prop="planRuntimeTime">
- <el-date-picker
- style="width: 100%"
- v-model="form.planRuntimeTime"
- format="YYYY-MM-DD"
- value-format="YYYY-MM-DD"
- type="date"
- placeholder="璇烽�夋嫨褰曞叆鏃ユ湡"
- clearable
- />
- </el-form-item>
- </el-col>
+ <el-col :span="12">
+ <el-form-item label="棰勮杩愯鏃堕棿"
+ prop="planRuntimeTime">
+ <el-date-picker style="width: 100%"
+ v-model="form.planRuntimeTime"
+ format="YYYY-MM-DD"
+ value-format="YYYY-MM-DD"
+ type="date"
+ placeholder="璇烽�夋嫨褰曞叆鏃ユ湡"
+ clearable />
+ </el-form-item>
+ </el-col>
</el-row>
</el-form>
</template>
<script setup>
-import useFormData from "@/hooks/useFormData";
-// import useUserStore from "@/store/modules/user";
-import { getLedgerById } from "@/api/equipmentManagement/ledger";
-import dayjs from "dayjs";
-import {
- calculateTaxIncludeTotalPrice,
- calculateTaxExclusiveTotalPrice,
-} from "@/utils/summarizeTable";
-import { ElMessage } from "element-plus";
-import {ref} from "vue";
+ import useFormData from "@/hooks/useFormData";
+ // import useUserStore from "@/store/modules/user";
+ import { getLedgerById } from "@/api/equipmentManagement/ledger";
+ import dayjs from "dayjs";
+ import { ref } from "vue";
-defineOptions({
- name: "璁惧鍙拌处琛ㄥ崟",
-});
-const formRef = ref(null);
-const operationType = ref('');
-const formRules = {
- deviceName: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
- deviceModel: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
- supplierName: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
- unit: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
- number: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
- taxIncludingPriceUnit: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
- taxRate: [{ required: true, trigger: "change", message: "璇疯緭鍏�" }],
- planRuntimeTime: [{ required: true, trigger: "change", message: "璇烽�夋嫨" }],
-}
+ defineOptions({
+ name: "璁惧鍙拌处琛ㄥ崟",
+ });
+ const formRef = ref(null);
+ const operationType = ref("");
+ const formRules = {
+ deviceName: [{ required: true, trigger: "blur", message: "璇疯緭鍏�" }],
+ deviceModel: [{ trigger: "blur", message: "璇疯緭鍏�" }],
+ supplierName: [{ trigger: "blur", message: "璇疯緭鍏�" }],
+ unit: [{ trigger: "blur", message: "璇疯緭鍏�" }],
+ taxIncludingPriceUnit: [
+ {
+ required: true,
+ trigger: "blur",
+ validator: (rule, value, callback) => {
+ if (value === undefined || value === null || value === "") {
+ callback(new Error("璇疯緭鍏ヨ祫浜у師鍊�"));
+ } else if (typeof value === "number" && value >= 0) {
+ callback();
+ } else {
+ callback(new Error("璇疯緭鍏ユ湁鏁堢殑璧勪骇鍘熷��"));
+ }
+ },
+ },
+ ],
+ planRuntimeTime: [{ trigger: "change", message: "璇烽�夋嫨" }],
+ };
-const { form, resetForm } = useFormData({
- deviceName: undefined, // 璁惧鍚嶇О
- deviceModel: undefined, // 瑙勬牸鍨嬪彿
- deviceBrand: undefined, // 璁惧鍝佺墝
- supplierName: undefined, // 渚涘簲鍟�
- storageLocation: undefined, // 瀛樻斁浣嶇疆
- enableDepreciation: false, // 鏄惁鍚敤鎶樻棫
- unit: undefined, // 鍗曚綅
- number: 1, // 鏁伴噺
- taxIncludingPriceUnit: undefined, // 鍚◣鍗曚环
- taxIncludingPriceTotal: undefined, // 鍚◣鎬讳环
- taxRate: undefined, // 绋庣巼
- unTaxIncludingPriceTotal: undefined, // 涓嶅惈绋庢�讳环
- // createUser: useUserStore().nickName, // 褰曞叆浜�
- createTime: dayjs().format("YYYY-MM-DD HH:mm:ss"), // 褰曞叆鏃ユ湡
- planRuntimeTime: dayjs().format("YYYY-MM-DD"), // 褰曞叆鏃ユ湡
-});
+ const { form, resetForm } = useFormData({
+ deviceName: undefined, // 璁惧鍚嶇О
+ deviceModel: undefined, // 瑙勬牸鍨嬪彿
+ // deviceBrand: undefined, // 璁惧鍝佺墝
+ supplierName: undefined, // 渚涘簲鍟�
+ // storageLocation: undefined, // 瀛樻斁浣嶇疆
+ enableDepreciation: false, // 鏄惁鍚敤鎶樻棫
+ unit: undefined, // 鍗曚綅
+ number: 1, // 鏁伴噺
+ taxIncludingPriceUnit: undefined, // 璧勪骇鍘熷��
+ // createUser: useUserStore().nickName, // 褰曞叆浜�
+ createTime: dayjs().format("YYYY-MM-DD HH:mm:ss"), // 褰曞叆鏃ユ湡
+ planRuntimeTime: dayjs().format("YYYY-MM-DD"), // 褰曞叆鏃ユ湡
+ });
-const loadForm = async (id) => {
- if (id) {
- operationType.value = 'edit'
- }
- const { code, data } = await getLedgerById(id);
- if (code == 200) {
- form.deviceName = data.deviceName;
- form.deviceModel = data.deviceModel;
- form.deviceBrand = data.deviceBrand;
- form.supplierName = data.supplierName;
- form.storageLocation = data.storageLocation;
- form.enableDepreciation = data.enableDepreciation;
- form.unit = data.unit;
- form.number = 1;
- form.taxIncludingPriceUnit = data.taxIncludingPriceUnit;
- form.taxIncludingPriceTotal = data.taxIncludingPriceTotal;
- form.taxRate = data.taxRate;
- form.unTaxIncludingPriceTotal = data.unTaxIncludingPriceTotal;
- form.createTime = data.createTime;
- }
-};
+ const loadForm = async id => {
+ if (id) {
+ operationType.value = "edit";
+ }
+ const { code, data } = await getLedgerById(id);
+ if (code == 200) {
+ form.deviceName = data.deviceName;
+ form.deviceModel = data.deviceModel;
+ // form.deviceBrand = data.deviceBrand;
+ form.supplierName = data.supplierName;
+ // form.storageLocation = data.storageLocation;
+ form.enableDepreciation = data.enableDepreciation;
+ form.unit = data.unit;
+ form.number = 1;
+ form.taxIncludingPriceUnit = data.taxIncludingPriceUnit;
+ form.createTime = data.createTime;
+ }
+ };
-const mathNum = () => {
- if (!form.taxIncludingPriceUnit) {
- ElMessage.error("璇疯緭鍏ュ崟浠�");
- return;
- }
- form.taxIncludingPriceTotal = calculateTaxIncludeTotalPrice(
- form.taxIncludingPriceUnit,
- form.number
- );
- if (form.taxRate) {
- form.unTaxIncludingPriceTotal = calculateTaxExclusiveTotalPrice(
- form.taxIncludingPriceTotal,
- form.taxRate
- );
- }
-};
+ // 娓呴櫎琛ㄥ崟鏍¢獙鐘舵��
+ const clearValidate = () => {
+ formRef.value?.clearValidate();
+ };
-// 娓呴櫎琛ㄥ崟鏍¢獙鐘舵��
-const clearValidate = () => {
- formRef.value?.clearValidate();
-};
+ // 閲嶇疆琛ㄥ崟鏁版嵁鍜屾牎楠岀姸鎬�
+ const resetFormAndValidate = () => {
+ resetForm();
+ clearValidate();
+ };
-// 閲嶇疆琛ㄥ崟鏁版嵁鍜屾牎楠岀姸鎬�
-const resetFormAndValidate = () => {
- resetForm();
- clearValidate();
-};
-
-defineExpose({
- form,
- loadForm,
- resetForm,
- clearValidate,
- resetFormAndValidate,
- formRef,
-});
+ defineExpose({
+ form,
+ loadForm,
+ resetForm,
+ clearValidate,
+ resetFormAndValidate,
+ formRef,
+ });
</script>
--
Gitblit v1.9.3