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/samplingRules/SamplingRulesModel.vue | 287 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 287 insertions(+), 0 deletions(-) diff --git a/src/views/qms/modules/samplingRules/SamplingRulesModel.vue b/src/views/qms/modules/samplingRules/SamplingRulesModel.vue new file mode 100644 index 0000000..d4190f2 --- /dev/null +++ b/src/views/qms/modules/samplingRules/SamplingRulesModel.vue @@ -0,0 +1,287 @@ +<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="12"> + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="瑙勫垯缂栫爜" + > + <a-input + :disabled="disableSubmit" + allow-clear + placeholder="璇疯緭鍏ヨ鍒欑紪鐮�" + v-decorator="['ruleCode', validatorRules.ruleCode ]" + /> + </a-form-item> + </a-col> + <a-col :span="12"> + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="瑙勫垯鍚嶇О" + > + <a-input + :disabled="disableSubmit" + allow-clear + placeholder="璇疯緭鍏ヨ鍒欏悕绉�" + v-decorator="['ruleName', validatorRules.ruleName ]" + /> + </a-form-item> + </a-col> + </a-row> + <a-row :gutter="24"> + <a-col :span="24"> + <a-form-item + :labelCol="{ span: 3 }" + :wrapperCol="{ span: 21 }" + label="瑙勫垯鍒嗙被" + > + <j-dict-select-tag + :disabled="disableSubmit" + placeholder="璇疯緭鍏ヨ鍒欏垎绫�" + v-decorator="['ruleCategory', validatorRules.ruleCategory ]" + dictCode="rule_category" + /> + </a-form-item> + </a-col> + </a-row> + <a-row :gutter="24"> + <a-col :span="12"> + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="鎶芥牱鏁伴噺" + > + <a-input-number :disabled="disableSubmit" v-decorator="['samplingQuantity', validatorRules.samplingQuantity ]" :min="1" style="width: 100%" placeholder="璇疯緭鍏ユ娊鏍锋暟閲�" /> + </a-form-item> + </a-col> + <a-col :span="12"> + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="鏈�澶т笉鍚堟牸鏁�" + > + <a-input-number :disabled="disableSubmit" v-decorator="['maxUnqualifiedQuantity', validatorRules.maxUnqualifiedQuantity ]" :min="1" style="width: 100%" placeholder="璇疯緭鍏ユ渶澶т笉鍚堟牸鏁�" /> + </a-form-item> + </a-col> + </a-row> + <a-row :gutter="24"> + <a-col :span="12"> + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="鎵归噺涓嬮檺鍊�" + > + <a-input-number :disabled="disableSubmit" v-decorator="['batchLowerLimit', validatorRules.batchLowerLimit ]" :min="1" style="width: 100%" placeholder="璇疯緭鍏ユ壒閲忎笅闄愬��" /> + </a-form-item> + </a-col> + <a-col :span="12"> + <a-form-item + :labelCol="labelCol" + :wrapperCol="wrapperCol" + label="鎵归噺涓婇檺鍊�" + > + <a-input-number :disabled="disableSubmit" v-decorator="['batchUpperLimit', validatorRules.batchUpperLimit ]" :min="1" style="width: 100%" placeholder="璇疯緭鍏ユ壒閲忎笂闄愬��" /> + </a-form-item> + </a-col> + </a-row> + <a-row :gutter="24"> + <a-col :span="24"> + <a-form-item + :labelCol="{ span: 3 }" + :wrapperCol="{ span: 21 }" + label="澶囨敞" + > + <a-textarea :disabled="disableSubmit" placeholder="璇疯緭鍏ュ娉�" v-decorator="['remark', validatorRules.remark ]"/> + </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: "SamplingRulesModal", + data() { + return { + title: "鎿嶄綔", + visible: false, + disableSubmit: false, + model: {}, + samplingRulesId: "", //淇濆瓨鎶芥牱瑙勫垯id + labelCol: { + xs: { span: 24 }, + sm: { span: 6 }, + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 18 }, + }, + + confirmLoading: false, + form: this.$form.createForm(this), + validatorRules: { + ruleCode: { + rules: [ + { required: true, message: '璇疯緭鍏ヨ鍒欑紪鐮�' }, + { validator: this.validateNum }, + ] + }, + ruleName: { + rules: [ + { required: true, message: '璇疯緭鍏ヨ鍒欏悕绉�' }, + { validator: this.validateName }, + ] + }, + ruleCategory: { + rules: [ + { required: true, message: '璇烽�夋嫨瑙勫垯鍒嗙被' }, + ] + }, + }, + url: { + add: "/qms/samplingRules/add", + edit: "/qms/samplingRules/edit", + }, + } + }, + created() { + }, + methods: { + add() { + this.edit({}); + }, + edit(record) { + this.form.resetFields(); + this.model = Object.assign({}, record); + this.samplingRulesId = record.id; + this.visible = true; + this.$nextTick(() => { + this.form.setFieldsValue( + pick(this.model, 'ruleCode', 'ruleName','ruleCategory','ruleStatus','maxUnqualifiedQuantity', + 'samplingQuantity','batchLowerLimit','batchUpperLimit', 'remark') + ) + }); + }, + 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_sampling_rules', + fieldName: 'rule_code', + fieldVal: value, + dataId: this.samplingRulesId, + //鏁版嵁搴撲腑瀛樺湪瀛楁del_flag骞朵娇鐢ㄨ瀛楁浣滀负鏈垹闄ょ瓥鐣ワ紝鐪熷垹闄わ細false 鍋囧垹闄わ細true + delFlag: 'true', + }; + duplicateCheck(params).then((res) => { + if (res.success) { + callback(); + } else { + callback("瑙勫垯缂栫爜宸插瓨鍦�!"); + } + }) + }, + //楠岃瘉 鍚嶇О + validateName(rule, value, callback) { + var params = { + tableName: 'qms_sampling_rules', + fieldName: 'rule_name', + fieldVal: value, + dataId: this.samplingRulesId, + //鏁版嵁搴撲腑瀛樺湪瀛楁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