From 6bbceeae0a692ef60f429dbca889752fcb09ec9a Mon Sep 17 00:00:00 2001
From: houshuai <17802598606@163.com>
Date: 星期四, 03 七月 2025 19:42:01 +0800
Subject: [PATCH] 线边库和订单 基本页面搭建

---
 src/views/qms/modules/defect/DefectModel.vue |  248 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 248 insertions(+), 0 deletions(-)

diff --git a/src/views/qms/modules/defect/DefectModel.vue b/src/views/qms/modules/defect/DefectModel.vue
new file mode 100644
index 0000000..86c508f
--- /dev/null
+++ b/src/views/qms/modules/defect/DefectModel.vue
@@ -0,0 +1,248 @@
+<template>
+  <a-modal
+    :title="title"
+    :width="800"
+    :visible="visible"
+    :confirmLoading="confirmLoading"
+    :okButtonProps="{ props: {disabled: disableSubmit} }"
+    @ok="handleOk"
+    @cancel="handleCancel"
+    cancelText="鍏抽棴"
+  >
+    <a-spin :spinning="confirmLoading">
+      <a-form :form="form">
+
+        <a-row :gutter="24">
+          <a-col :span="24">
+            <a-form-item
+              :labelCol="labelCol" 
+              :wrapperCol="wrapperCol"
+              label="缂洪櫡缂栫爜"
+            >
+              <a-input
+                :disabled="disableSubmit"
+                allow-clear
+                placeholder="璇疯緭鍏ョ己闄风紪鐮�"
+                v-decorator="['defectCode', validatorRules.defectCode ]"
+              />
+            </a-form-item>
+          </a-col>
+        </a-row>
+        <a-row :gutter="24">
+          <a-col :span="24">
+            <a-form-item
+              :labelCol="labelCol" 
+              :wrapperCol="wrapperCol"
+              label="缂洪櫡鍚嶇О"
+            >
+              <a-input
+                :disabled="disableSubmit"
+                allow-clear
+                placeholder="璇疯緭鍏ョ己闄峰悕绉�"
+                v-decorator="['defectName', validatorRules.defectName ]"
+              />
+            </a-form-item>
+          </a-col>
+        </a-row>
+        <a-row :gutter="24">
+          <a-col :span="24">
+            <a-form-item
+              :labelCol="labelCol" 
+              :wrapperCol="wrapperCol"
+              label="缂洪櫡鍒嗙被"
+            >
+              <j-dict-select-tag  
+                :disabled="disableSubmit"
+                placeholder="璇疯緭鍏ョ己闄峰垎绫�"
+                v-decorator="['defectCategory', validatorRules.defectCategory ]"
+                dictCode="defect_category"
+              />
+            </a-form-item>
+          </a-col>
+        </a-row>
+        <a-row :gutter="24">
+          <a-col :span="24">
+            <a-form-item
+              :labelCol="labelCol" 
+              :wrapperCol="wrapperCol"
+              label="鎻忚堪"
+            >
+            <a-textarea :disabled="disableSubmit" placeholder="璇疯緭鍏ユ弿杩�" v-decorator="['descreption', validatorRules.descreption ]"/>
+            </a-form-item>
+          </a-col>
+        </a-row>
+      </a-form>
+    </a-spin>
+  </a-modal>
+</template>
+
+<script>
+import { httpAction, getAction } from '@/api/manage'
+import pick from 'lodash.pick'
+import { duplicateCheck } from '@/api/api'//閲嶅鏍¢獙
+import JDictSelectTag from '../../../../components/dict/JDictSelectTag.vue'
+
+export default {
+  components: { JDictSelectTag },
+  name: "DefectModal",
+  data() {
+    return {
+      title: "鎿嶄綔",
+      visible: false,
+      disableSubmit: false,
+      model: {},
+      defectId: "", //淇濆瓨缂洪櫡id
+      labelCol: {
+          xs: { span: 24 },
+          sm: { span: 5 },
+        },
+        wrapperCol: {
+          xs: { span: 24 },
+          sm: { span: 16 },
+        },
+
+      confirmLoading: false,
+      form: this.$form.createForm(this),
+      validatorRules: {
+        defectCode: {
+          rules: [
+            { required: true, message: '璇疯緭鍏ョ己闄风紪鐮�' },
+            { validator: this.validateNum },
+          ]
+        },
+        defectName: {
+          rules: [
+            { required: true, message: '璇疯緭鍏ョ己闄峰悕绉�' },
+            { validator: this.validateName },
+          ]
+        },
+         defectCategory: {
+          rules: [
+            { required: true, message: '璇烽�夋嫨缂洪櫡鍒嗙被' },
+          ]
+        },
+      },
+      url: {
+        add: "/qms/defect/add",
+        edit: "/qms/defect/edit",
+      },
+    }
+  },
+  created() {
+  },
+  methods: {
+    add() {
+      this.edit({});
+    },
+    edit(record) {
+      this.form.resetFields();
+      this.model = Object.assign({}, record);
+      this.defectId = record.id;
+      this.visible = true;
+      this.$nextTick(() => {
+        this.form.setFieldsValue(
+          pick(this.model, 'defectCode', 'defectName','defectCategory','defectStatus','descreption')
+        )
+      });
+    },
+    close() {
+      this.$emit('close');
+      this.visible = false;
+    },
+    handleOk() {
+      const that = this;
+      // 瑙﹀彂琛ㄥ崟楠岃瘉
+      this.form.validateFields((err, values) => {
+        if (!err) {
+          that.confirmLoading = true;
+          let httpurl = '';
+          let method = '';
+          if (!this.model.id) {
+            httpurl += this.url.add;
+            method = 'post';
+          } else {
+            httpurl += this.url.edit;
+            method = 'put';
+          }
+          let formData = Object.assign(this.model, values);
+          httpAction(httpurl, formData, method).then((res) => {
+            if (res.success) {
+              that.$message.success(res.message);
+              that.$emit('ok');
+            } else {
+              that.$message.warning(res.message);
+            }
+          }).finally(() => {
+            that.confirmLoading = false;
+            that.close();
+          })
+        }
+      })
+    },
+    handleCancel() {
+      this.close()
+    },
+    //楠岃瘉 缂栧彿
+    validateNum(rule, value, callback) {
+      var params = {
+        tableName: 'qms_defect',
+        fieldName: 'defect_code',
+        fieldVal: value,
+        dataId: this.defectId,
+        //鏁版嵁搴撲腑瀛樺湪瀛楁del_flag骞朵娇鐢ㄨ瀛楁浣滀负鏈垹闄ょ瓥鐣ワ紝鐪熷垹闄わ細false 鍋囧垹闄わ細true
+        delFlag: 'true',
+      };
+      duplicateCheck(params).then((res) => {
+        if (res.success) {
+          callback();
+        } else {
+          callback("缂洪櫡缂栫爜宸插瓨鍦�!");
+        }
+      })
+    },
+    //楠岃瘉 鍚嶇О
+    validateName(rule, value, callback) {
+      var params = {
+        tableName: 'qms_defect',
+        fieldName: 'defect_name',
+        fieldVal: value,
+        dataId: this.defectId,
+        //鏁版嵁搴撲腑瀛樺湪瀛楁del_flag骞朵娇鐢ㄨ瀛楁浣滀负鏈垹闄ょ瓥鐣ワ紝鐪熷垹闄わ細false 鍋囧垹闄わ細true
+        delFlag: 'true',
+      };
+      duplicateCheck(params).then((res) => {
+        if (res.success) {
+          callback();
+        } else {
+          callback("缂洪櫡鍚嶇О宸插瓨鍦�!");
+        }
+      })
+    },
+    // 鍏抽棴寮圭獥鏃舵竻闄よ〃鍗曟牎楠�
+    removeValidate() {
+      if (this.$refs.form) this.$refs.form.clearValidate()
+    }
+  }
+}
+</script>
+
+<style scoped>
+.ant-btn {
+  padding: 0 10px;
+  margin-left: 3px;
+}
+
+.ant-form-item-control {
+  line-height: 0px;
+}
+
+/** 涓昏〃鍗曡闂磋窛 */
+.ant-form .ant-form-item {
+  margin-bottom: 10px;
+}
+
+/** Tab椤甸潰琛岄棿璺� */
+.ant-tabs-content .ant-form-item {
+  margin-bottom: 0px;
+}
+</style>
\ No newline at end of file

--
Gitblit v1.9.3