From e4e75a7312f5195144b105d59ac90f26e174d4ba Mon Sep 17 00:00:00 2001 From: lixiangyu <lixiangyu@xalxzn.com> Date: 星期五, 05 九月 2025 18:02:54 +0800 Subject: [PATCH] feat(cms): 优化刀具入库和库存列表功能 --- src/views/base/modules/printerConfig/PrinterConfigModel.vue | 249 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 249 insertions(+), 0 deletions(-) diff --git a/src/views/base/modules/printerConfig/PrinterConfigModel.vue b/src/views/base/modules/printerConfig/PrinterConfigModel.vue new file mode 100644 index 0000000..e4e6f47 --- /dev/null +++ b/src/views/base/modules/printerConfig/PrinterConfigModel.vue @@ -0,0 +1,249 @@ +<template> + <a-modal + :title="title" + :width="800" + :visible="visible" + :confirmLoading="confirmLoading" + :maskClosable="false" + :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="鎵撳嵃鏈篒P" + > + <a-input + :disabled="disableSubmit" + allow-clear + placeholder="璇疯緭鍏ユ墦鍗版満IP" + v-decorator="['printerIp', validatorRules.printerIp]" + /> + </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="['printerName', validatorRules.printerName]" + /> + </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="['portNumber', validatorRules.portNumber]" + /> + </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="['printerModel', validatorRules.printerModel]" + /> + </a-form-item> + </a-col> + </a-row> + </a-form> + </a-spin> + </a-modal> +</template> + +<script> +import { httpAction } from '@/api/manage' +import pick from 'lodash.pick' +import { duplicateCheck } from '@/api/api' //閲嶅鏍¢獙 + +export default { + name: 'PrinterConfigModel', + components: {}, + data() { + return { + title: '鎿嶄綔', + visible: false, + disableSubmit: false, + model: {}, + treeData: [], + labelCol: { + xs: { span: 24 }, + sm: { span: 5 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 16 } + }, + + confirmLoading: false, + form: this.$form.createForm(this), + validatorRules: { + printerIp: { + rules: [ + { required: true, message: '璇疯緭鍏ユ墦鍗版満IP' }, + { min: 2, max: 30, message: '闀垮害鍦� 2 鍒� 30 涓瓧绗�', trigger: 'blur' }, + ] + }, + printerName: { + rules: [ + { required: true, message: '璇疯緭鍏ユ墦鍗版満鍚嶇О' }, + { min: 2, max: 30, message: '闀垮害鍦� 2 鍒� 30 涓瓧绗�', trigger: 'blur' }, + ] + }, + portNumber: { + rules: [ + { required: true, message: '璇疯緭鍏ユ墦鍗版満绔彛' }, + { min: 0, max: 64, message: '闀垮害涓嶈秴杩� 64 涓瓧绗�', trigger: 'blur' }, + { validator: this.validateName } + ] + }, + + printerModel: { + rules: [ + { required: true, message: '璇疯緭鍏ユ墦鍗版満鍨嬪彿' }, + { min: 0, max: 64, message: '闀垮害涓嶈秴杩� 64 涓瓧绗�', trigger: 'blur' } + ] + } + }, + url: { + add: '/base/printerConfig/add', + edit: '/base/printerConfig/edit' + }, + nextFactoryOptions: [] + } + }, + + + created() { + }, + methods: { + add() { + this.edit({}) + }, + edit(record) { + this.form.resetFields() + this.model = Object.assign({}, record) + this.warehouseId = record.id + this.visible = true + this.$nextTick(() => { + this.form.setFieldsValue( + pick(this.model, 'printerIp','printerName', 'portNumber', 'printerModel') + ) + }) + }, + close() { + this.$emit('close') + this.visible = false + }, + handleOk() { + console.log('琛ㄥ崟鍊�:', this.form.getFieldsValue()) + 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() + }, + + //楠岃瘉 鍚嶇О + validateName(rule, value, callback) { + var params = { + tableName: 'base_printer_config', + fieldName: 'port_number', + fieldVal: value, + //鏁版嵁搴撲腑瀛樺湪瀛楁del_flag骞朵娇鐢ㄨ瀛楁浣滀负鏈垹闄ょ瓥鐣ワ紝鐪熷垹闄わ細false 鍋囧垹闄わ細true + delFlag: 'true' + } + duplicateCheck(params).then((res) => { + if (res.success) { + callback() + } else { + callback('鎵撳嵃鏈虹鍙e凡瀛樺湪!') + } + }) + }, + // 鍏抽棴寮圭獥鏃舵竻闄よ〃鍗曟牎楠� + 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