From 5929167e8fb9577df9502ba091e7c8071e79b717 Mon Sep 17 00:00:00 2001
From: gaoluyang <2820782392@qq.com>
Date: 星期三, 17 十二月 2025 16:25:03 +0800
Subject: [PATCH] 1.海川开心-回款登记不要产品大类

---
 src/views/inventoryManagement/stockManagement/components/FormDiaProduction.vue |  147 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 147 insertions(+), 0 deletions(-)

diff --git a/src/views/inventoryManagement/stockManagement/components/FormDiaProduction.vue b/src/views/inventoryManagement/stockManagement/components/FormDiaProduction.vue
new file mode 100644
index 0000000..1653307
--- /dev/null
+++ b/src/views/inventoryManagement/stockManagement/components/FormDiaProduction.vue
@@ -0,0 +1,147 @@
+<template>
+  <el-dialog :model-value="dialogFormVisible" :title="operationType === 'add' ? '鏂板鎴愬搧搴撳瓨' : '缂栬緫鎴愬搧搴撳瓨'" width="70%"
+    @update:model-value="$emit('update:dialogFormVisible', $event)" @close="closeDia">
+    <el-form :model="form" label-width="140px" label-position="top" :rules="rules" ref="formRef">
+      <el-row :gutter="30">
+        <el-col :span="12">
+          <el-form-item label="浜у搧澶х被锛�" prop="productCategory">
+            <el-input disabled v-model="form.productCategory" placeholder="璇疯緭鍏�" clearable />
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="瑙勬牸鍨嬪彿锛�" prop="specificationModel">
+            <el-input disabled v-model="form.specificationModel" placeholder="璇疯緭鍏�" clearable />
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row :gutter="30">
+        <el-col :span="12">
+          <el-form-item label="鍗曚綅锛�" prop="unit">
+            <el-input disabled v-model="form.unit" placeholder="璇疯緭鍏�" clearable />
+          </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" value-format="YYYY-MM-DD" format="YYYY-MM-DD"
+                            type="date" placeholder="璇烽�夋嫨" clearable />
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row :gutter="30">
+        <el-col :span="12">
+          <el-form-item label="搴撳瓨鏁伴噺锛�" prop="inboundNum">
+            <el-input v-model="form.inboundNum" placeholder="璇疯緭鍏�" clearable @input="calculateTotalPrice" />
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="宸插嚭搴撴暟閲忥細" prop="totalInboundNum">
+            <el-input disabled v-model="form.totalInboundNum" placeholder="璇疯緭鍏�" clearable />
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row :gutter="30">
+        <el-col :span="12">
+          <el-form-item label="寰呭嚭搴撴暟閲忥細" prop="inboundNum0">
+            <el-input disabled v-model="form.inboundNum0" placeholder="璇疯緭鍏�" clearable />
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="鍗曚环(鍏�)锛�" prop="unitPrice">
+            <el-input v-model="form.unitPrice" placeholder="璇疯緭鍏�" clearable @input="calculateTotalPrice" />
+          </el-form-item>
+        </el-col>
+      </el-row>
+      <el-row :gutter="30">
+        <el-col :span="12">
+          <el-form-item label="鎬讳环(鍏�)锛�" prop="totalPrice">
+            <el-input disabled v-model="form.totalPrice" placeholder="鑷姩璁$畻" clearable />
+          </el-form-item>
+        </el-col>
+      </el-row>
+    </el-form>
+    <template #footer>
+      <div class="dialog-footer">
+        <el-button type="primary" @click="submitForm">纭</el-button>
+        <el-button @click="closeDia">鍙栨秷</el-button>
+      </div>
+    </template>
+  </el-dialog>
+</template>
+
+<script setup>
+import { ref, reactive, toRefs, watch } from 'vue'
+
+const props = defineProps({
+  dialogFormVisible: Boolean,
+  operationType: String,
+  formData: Object
+})
+
+const emit = defineEmits(['update:dialogFormVisible', 'submit', 'close'])
+
+const formRef = ref()
+
+const data = reactive({
+  form: {
+    productCategory: '',
+    specificationModel: '',
+    unit: '',
+    createTime: '',
+    inboundNum: '',
+    totalInboundNum: '',
+    inboundNum0: '',
+    unitPrice: '',
+    totalPrice: ''
+  },
+  rules: {
+    productCategory: [{ required: true, message: '璇疯緭鍏ヤ骇鍝佸ぇ绫�', trigger: 'blur' }],
+    specificationModel: [{ required: true, message: '璇疯緭鍏ヨ鏍煎瀷鍙�', trigger: 'blur' }],
+    unit: [{ required: true, message: '璇疯緭鍏ュ崟浣�', trigger: 'blur' }],
+    createTime: [{ required: true, message: '璇烽�夋嫨鍏ュ簱鏃堕棿', trigger: 'change' }],
+    inboundNum: [{ required: true, message: '璇疯緭鍏ュ簱瀛樻暟閲�', trigger: 'blur' }],
+    unitPrice: [{ required: true, message: '璇疯緭鍏ュ崟浠�', trigger: 'blur' }]
+  }
+})
+
+const { form, rules } = toRefs(data)
+
+// 璁$畻鎬讳环锛氭�讳环 = 鍗曚环 脳 鍓╀綑搴撳瓨
+const calculateTotalPrice = () => {
+  const unitPrice = parseFloat(form.value.unitPrice) || 0
+  const stockQuantity = parseFloat(form.value.inboundNum) || 0 // 搴撳瓨鏁伴噺
+  const outboundQuantity = parseFloat(form.value.totalInboundNum) || 0 // 宸插嚭搴撴暟閲�
+  const remainingStock = stockQuantity - outboundQuantity // 鍓╀綑搴撳瓨
+  form.value.totalPrice = (unitPrice * remainingStock).toFixed(2)
+}
+
+// 鐩戝惉formData鍙樺寲
+watch(() => props.formData, (newVal) => {
+  if (newVal) {
+    form.value = { ...newVal }
+    // 鏁版嵁鍙樺寲鍚庨噸鏂拌绠楁�讳环
+    calculateTotalPrice()
+  }
+}, { immediate: true })
+
+// 鎻愪氦琛ㄥ崟
+const submitForm = () => {
+  formRef.value.validate(valid => {
+    if (valid) {
+      emit('submit', form.value)
+    }
+  })
+}
+
+// 鍏抽棴寮规
+const closeDia = () => {
+  emit('close')
+  emit('update:dialogFormVisible', false)
+}
+
+</script>
+
+<style scoped lang="scss">
+.dialog-footer {
+  text-align: center;
+}
+</style>
\ No newline at end of file

--
Gitblit v1.9.3