From 9555007a15ab751fdf783e45ea871e532de20f7d Mon Sep 17 00:00:00 2001
From: yyb <995253665@qq.com>
Date: 星期六, 14 三月 2026 16:42:25 +0800
Subject: [PATCH] 生产记录接口

---
 src/views/productionManagement/productionRecords/Edit.vue |  165 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 165 insertions(+), 0 deletions(-)

diff --git a/src/views/productionManagement/productionRecords/Edit.vue b/src/views/productionManagement/productionRecords/Edit.vue
new file mode 100644
index 0000000..97ea9cb
--- /dev/null
+++ b/src/views/productionManagement/productionRecords/Edit.vue
@@ -0,0 +1,165 @@
+<template>
+  <div>
+    <el-dialog
+      v-model="isShow"
+      title="缂栬緫鐢熶骇璁板綍"
+      width="520px"
+      @close="closeModal"
+    >
+      <el-form
+        ref="formRef"
+        label-width="120px"
+        :model="formState"
+        label-position="top"
+      >
+        <el-form-item
+          label="鍙傛暟椤�"
+          prop="parameterItem"
+          :rules="[{ required: true, message: '璇疯緭鍏ュ弬鏁伴」' }]"
+        >
+          <el-input v-model="formState.parameterItem" placeholder="璇疯緭鍏ュ弬鏁伴」" />
+        </el-form-item>
+        <el-form-item
+          label="鍙傛暟绫诲瀷"
+          prop="type"
+          :rules="[{ required: true, message: '璇烽�夋嫨鍙傛暟绫诲瀷' }]"
+        >
+          <el-select v-model="formState.type" placeholder="璇烽�夋嫨鍙傛暟绫诲瀷" style="width: 100%;">
+            <el-option
+              v-for="dict in parameter_tyep"
+              :key="dict.value"
+              :label="dict.label"
+              :value="dict.value"
+            />
+          </el-select>
+        </el-form-item>
+        <el-form-item
+          label="鍗曚綅"
+          prop="unit"
+          :rules="[{ required: true, message: '璇疯緭鍏ュ崟浣�' }]"
+        >
+          <el-input v-model="formState.unit" placeholder="璇疯緭鍏ュ崟浣�" />
+        </el-form-item>
+        <el-form-item label="鍙傛暟鏍煎紡" prop="parameterFormat">
+          <el-input v-model="formState.parameterFormat" placeholder="璇疯緭鍏ュ弬鏁版牸寮忥紙閫夊~锛�" />
+        </el-form-item>
+        <el-form-item
+          label="鏄惁蹇呭~"
+          prop="isRequired"
+          :rules="[{ required: true, message: '璇烽�夋嫨鏄惁蹇呭~' }]"
+        >
+          <el-select v-model="formState.isRequired" placeholder="璇烽�夋嫨" style="width: 100%;">
+            <el-option label="鏄�" value="1" />
+            <el-option label="鍚�" value="0" />
+          </el-select>
+        </el-form-item>
+      </el-form>
+      <template #footer>
+        <div class="dialog-footer">
+          <el-button type="primary" @click="handleSubmit">纭</el-button>
+          <el-button @click="closeModal">鍙栨秷</el-button>
+        </div>
+      </template>
+    </el-dialog>
+  </div>
+</template>
+
+<script setup>
+import { ref, computed, getCurrentInstance, watch } from "vue";
+import { update } from "@/api/productionManagement/productionRecords.js";
+
+const props = defineProps({
+  visible: {
+    type: Boolean,
+    required: true,
+  },
+  record: {
+    type: Object,
+    default: () => ({}),
+  },
+});
+
+const emit = defineEmits(["update:visible", "completed"]);
+
+const formRef = ref(null);
+const formState = ref({
+  id: undefined,
+  code: "",
+  parameterItem: "",
+  type: "",
+  unit: "",
+  parameterFormat: "",
+  isRequired: undefined,
+});
+
+const isShow = computed({
+  get() {
+    return props.visible;
+  },
+  set(val) {
+    emit("update:visible", val);
+  },
+});
+
+// 鍥炴樉锛氱洃鍚� record 鍙樺寲
+watch(
+  () => props.record,
+  (newRecord) => {
+    if (newRecord && Object.keys(newRecord).length) {
+      formState.value = {
+        id: newRecord.id,
+        code: newRecord.code ?? "",
+        parameterItem: newRecord.parameterItem ?? "",
+        type: newRecord.type ?? "",
+        unit: newRecord.unit ?? "",
+        parameterFormat: newRecord.parameterFormat ?? "",
+        isRequired: newRecord.isRequired,
+      };
+    }
+  },
+  { immediate: true, deep: true }
+);
+
+// 寮圭獥鎵撳紑鏃堕噸鏂板洖鏄�
+watch(
+  () => props.visible,
+  (visible) => {
+    if (visible && props.record && Object.keys(props.record).length) {
+      formState.value = {
+        id: props.record.id,
+        code: props.record.code ?? "",
+        parameterItem: props.record.parameterItem ?? "",
+        type: props.record.type ?? "",
+        unit: props.record.unit ?? "",
+        parameterFormat: props.record.parameterFormat ?? "",
+        isRequired: props.record.isRequired,
+      };
+    }
+  }
+);
+
+const { proxy } = getCurrentInstance();
+const { parameter_tyep } = proxy.useDict("parameter_tyep");
+
+const closeModal = () => {
+  isShow.value = false;
+};
+
+const handleSubmit = () => {
+  formRef.value.validate((valid) => {
+    if (valid) {
+      update(formState.value).then(() => {
+        isShow.value = false;
+        emit("completed");
+        proxy.$modal.msgSuccess("淇敼鎴愬姛");
+      });
+    }
+  });
+};
+
+defineExpose({
+  closeModal,
+  handleSubmit,
+  isShow,
+});
+</script>

--
Gitblit v1.9.3