From 9141914bab1919129f01118856b73ccc4961c1dc Mon Sep 17 00:00:00 2001 From: cuijian <cuijian@xalxzn.com> Date: 星期二, 29 八月 2023 13:00:40 +0800 Subject: [PATCH] 编码规则 --- src/views/eam/SerialNumberList.vue | 297 +++++++++++++++++++++++++++++ src/views/eam/modules/SerialNumberModel.vue | 259 +++++++++++++++++++++++++ src/views/spare/modules/sparePart/SparePartModel.vue | 8 3 files changed, 564 insertions(+), 0 deletions(-) diff --git a/src/views/eam/SerialNumberList.vue b/src/views/eam/SerialNumberList.vue new file mode 100644 index 0000000..2b16125 --- /dev/null +++ b/src/views/eam/SerialNumberList.vue @@ -0,0 +1,297 @@ +<template> + <a-card + :bordered="false" + title="缂栫爜瑙勫垯" + > + <!-- 鏌ヨ鍖哄煙 --> + <div class="table-page-search-wrapper"> + <a-form + layout="inline" + @keyup.enter.native="searchQuery" + > + <a-row :gutter="24"> + <a-col + :md="6" + :sm="8" + > + <a-form-item label="鍗曟嵁鍚嶇О"> + <j-input + placeholder="璇疯緭鍏ュ崟鎹悕绉版煡璇�" + v-model="queryParam.functionName" + ></j-input> + </a-form-item> + </a-col> + <a-col + :md="6" + :sm="8" + > + <a-form-item label="鍥哄畾瀛楃"> + <j-input + placeholder="璇疯緭鍏ュ浐瀹氬瓧绗︽煡璇�" + v-model="queryParam.beginSymbol" + ></j-input> + </a-form-item> + </a-col> + <template v-if="toggleSearchStatus"> + </template> + <a-col + :md="6" + :sm="8" + > + <span + style="float: left;overflow: hidden;" + class="table-page-search-submitButtons" + > + <a-button + type="primary" + @click="searchQuery" + icon="search" + >鏌ヨ</a-button> + <a-button + type="primary" + @click="searchReset" + icon="reload" + style="margin-left: 8px" + >閲嶇疆</a-button> + </span> + </a-col> + </a-row> + </a-form> + </div> + + <!-- 鎿嶄綔鎸夐挳鍖哄煙 --> + <div class="table-operator"> + <a-button + @click="handleAdd" + type="primary" + icon="plus" + >鏂板</a-button> + <a-dropdown v-if="selectedRowKeys.length > 0"> + <a-menu slot="overlay"> + <a-menu-item + key="1" + @click="batchDel" + > + <a-icon type="delete" />鍒犻櫎 + </a-menu-item> + </a-menu> + <a-button style="margin-left: 8px"> + 鎵归噺鎿嶄綔 + <a-icon type="down" /> + </a-button> + </a-dropdown> + </div> + + <!-- table鍖哄煙-begin --> + <div> + <div + class="ant-alert ant-alert-info" + style="margin-bottom: 16px;" + > + <i class="anticon anticon-info-circle ant-alert-icon"></i> 宸查�夋嫨 + <a style="font-weight: 600">{{ selectedRowKeys.length }}</a>椤� + <a + style="margin-left: 24px" + @click="onClearSelected" + >娓呯┖</a> + </div> + + <a-table + ref="table" + size="middle" + bordered + rowKey="id" + :columns="columns" + :rowClassName="tableRowClass" + :dataSource="dataSource" + :pagination="ipagination" + :loading="loading" + :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" + @change="handleTableChange" + > + + <span + slot="action" + slot-scope="text, record" + > + <a + href="javascript:;" + @click="handleDetail(record)" + >璇︽儏</a> + + <a-divider type="vertical" /> + <a-dropdown> + <a class="ant-dropdown-link">鏇村 + <a-icon type="down" /> + </a> + <a-menu slot="overlay"> + <a-menu-item> + <a @click="handleEdit(record)">缂栬緫</a> + </a-menu-item> + <a-menu-item> + <a-popconfirm + title="纭畾鍒犻櫎鍚�?" + @confirm="() => handleDelete(record.id)" + > + <a>鍒犻櫎</a> + </a-popconfirm> + + </a-menu-item> + </a-menu> + </a-dropdown> + </span> + </a-table> + </div> + + <!-- 琛ㄥ崟鍖哄煙 --> + <serial-number-model + ref="modalForm" + @ok="modalFormOk" + ></serial-number-model> + </a-card> +</template> + +<script> +import SerialNumberModel from './modules/SerialNumberModel' +import { JeecgListMixin } from '@/mixins/JeecgListMixin' +import JDictSelectTag from '@/components/dict/JDictSelectTag' +import { initDictOptions, filterDictText } from '@/components/dict/JDictSelectUtil' +import { requestPut } from '@/api/manage' +import JInput from '@/components/jeecg/JInput' +import JEllipsis from "@/components/jeecg/JEllipsis"; + +export default { + name: 'SerialNumberList', + mixins: [JeecgListMixin], + components: { + SerialNumberModel, + JDictSelectTag, + JInput, + JEllipsis, + }, + data() { + return { + isorter: { + column: 'createTime', + order: 'desc', + }, + columns: [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + align: 'center', + customRender: function (t, r, index) { + return parseInt(index) + 1 + }, + width: 50, + }, + { + title: '鍗曟嵁鍚嶇О', + align: 'center', + dataIndex: 'functionName', + sorter: true, + }, + { + title: '鍥哄畾瀛楃', + align: 'center', + dataIndex: 'beginSymbol', + sorter: true, + }, + { + title: '浼佷笟浠g爜', + align: 'center', + dataIndex: 'enterpriseCode', + sorter: true, + }, + { + title: '绫诲瀷', + align: 'center', + dataIndex: 'type', + sorter: true, + }, + // { + // title: '鍒涘缓鏃堕棿', + // align: 'center', + // dataIndex: 'createTime', + // scopedSlots: { + // customRender: 'createTime', + // }, + // sorter: true, + // }, + // { + // title: '鍒涘缓浜�', + // align: 'center', + // dataIndex: 'createBy', + // scopedSlots: { + // customRender: 'createBy', + // }, + // sorter: true, + // }, + // { + // title: '鐘舵��', + // align: 'center', + // scopedSlots: { + // customRender: 'status', + // }, + // dataIndex: 'status', + // sorter: true, + // width: 100, + // }, + { + + title: '鎿嶄綔', + align: 'center', + dataIndex: 'action', + scopedSlots: { + customRender: 'action', + }, + width: 150, + }, + + ], + url: { + list: '/eam/serialNumber/list', + delete: '/eam/serialNumber/delete', + }, + } + }, + methods: { + + //绂佺敤鐘舵�佹牱寮� + tableRowClass(record, index) { + // if (record.status != "1") { + // return "frozenRowClass"; + // } + // return ""; + }, + + + searchReset() { + this.queryParam = {}; + this.loadData(1); + }, + + }, + computed: { + importExcelUrl: function () { + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}` + } + } +} +</script> +<style> +@import '~@assets/less/common.less'; +.frozenRowClass { + color: #c9c9c9; +} +.success { + color: green; +} +.error { + color: red; +} +.fontweight { + font-weight: bold; +} +</style> \ No newline at end of file diff --git a/src/views/eam/modules/SerialNumberModel.vue b/src/views/eam/modules/SerialNumberModel.vue new file mode 100644 index 0000000..5c61e1e --- /dev/null +++ b/src/views/eam/modules/SerialNumberModel.vue @@ -0,0 +1,259 @@ +<template> + <a-modal + :title="title" + :width="600" + :visible="visible" + :maskClosable="false" + :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 + label="鍗曟嵁鍚嶇О" + :labelCol="{span:4}" + :wrapperCol="{span:18}" + > + <a-input + allow-clear + :disabled="codeDisable" + :placeholder="disableSubmit?'':'璇疯緭鍏ュ崟鎹悕绉�'" + v-decorator="[ 'functionName', validatorRules.functionName]" + /> + </a-form-item> + </a-col> + </a-row> + <a-row :gutter="24"> + <a-col :span="24"> + <a-form-item + label="鍥哄畾瀛楃" + :labelCol="{span:4}" + :wrapperCol="{span:18}" + > + <a-input + allow-clear + :disabled="codeDisable" + :placeholder="disableSubmit?'':'璇疯緭鍏ュ浐瀹氬瓧绗�'" + v-decorator="[ 'beginSymbol', validatorRules.beginSymbol]" + /> + </a-form-item> + </a-col> + </a-row> + <!-- <a-row :gutter="24"> + <a-col :span="24"> + <a-form-item + label="浼佷笟浠g爜" + :labelCol="{span:4}" + :wrapperCol="{span:18}" + > + <a-input + allow-clear + :disabled="codeDisable" + :placeholder="disableSubmit?'':'璇疯緭鍏ヤ紒涓氫唬鐮�'" + v-decorator="[ 'enterpriseCode', validatorRules.enterpriseCode]" + /> + </a-form-item> + </a-col> + </a-row> --> + <a-row :gutter="24"> + <a-col :span="24"> + <a-form-item + label="绫诲瀷" + :labelCol="{span:4}" + :wrapperCol="{span:18}" + > + <a-input + allow-clear + :disabled="codeDisable" + :placeholder="disableSubmit?'':'璇疯緭鍏ョ被鍨�'" + v-decorator="[ 'type', validatorRules.type]" + /> + </a-form-item> + </a-col> + </a-row> + + </a-form> + </a-spin> + + <template slot="footer"> + <a-button + :style="{marginRight: '8px'}" + @click="handleCancel" + > + 鍏抽棴 + </a-button> + <a-button + :disabled="confirmLoading" + :loading="confirmLoading" + @click="handleOk" + type="primary" + >纭畾</a-button> + <!-- icon="save" --> + </template> + + </a-modal> +</template> + +<script> +import pick from 'lodash.pick' +import { httpAction } from '@/api/manage' +import { duplicateCheck } from '@/api/api' + +export default { + name: 'SerialNumberModel', + data() { + return { + title: '', + visible: false, + disableSubmit: false, + codeDisable: true, + model: {}, + labelCol: { + xs: { span: 24 }, + sm: { span: 6 }, + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 18 }, + }, + confirmLoading: false, + form: this.$form.createForm(this), + validatorRules: { + functionName: { + rules: [ + { required: true, message: '璇疯緭鍏ュ崟鎹悕绉�!' }, + { min: 0, max: 30, message: '闀垮害涓嶈秴杩� 30 涓瓧绗�', trigger: 'blur' }, + ] + }, + beginSymbol: { + rules: [ + { required: true, message: '璇疯緭鍏ュ浐瀹氬瓧绗�!' }, + { min: 0, max: 30, message: '闀垮害涓嶈秴杩� 30 涓瓧绗�', trigger: 'blur' }, + { validator: this.validateName }, + ] + }, + // enterpriseCode: { + // rules: [ + // { required: true, message: '璇疯緭鍏ヤ紒涓氫唬鐮�!' }, + // { min: 0, max: 30, message: '闀垮害涓嶈秴杩� 30 涓瓧绗�', trigger: 'blur' }, + // ] + // }, + type: { + rules: [ + { required: true, message: '璇疯緭鍏ョ被鍨�!' }, + { min: 0, max: 90, message: '闀垮害涓嶈秴杩� 90 涓瓧绗�', trigger: 'blur' }, + { validator: this.validateType }, + ] + }, + }, + url: { + add: '/eam/serialNumber/add', + edit: '/eam/serialNumber/edit', + }, + } + }, + + methods: { + add() { + this.edit({}) + }, + edit(record) { + this.form.resetFields() + this.model = Object.assign({}, record) + this.visible = true + this.$nextTick(() => { + this.form.setFieldsValue(pick(this.model, 'functionName', 'beginSymbol', 'enterpriseCode', 'type')) + }) + if (record.id) { + this.codeDisable = false; + } else { + this.codeDisable = false; + } + }, + 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() + }, + + //楠岃瘉 鍥哄畾瀛楃 + validateName(rule, value, callback) { + var params = { + tableName: 'mom_serial_number_map', + fieldName: 'begin_symbol', + fieldVal: value, + dataId: this.model.id, + //鏁版嵁搴撲腑瀛樺湪瀛楁del_flag骞朵娇鐢ㄨ瀛楁浣滀负鏈垹闄ょ瓥鐣ワ紝鐪熷垹闄わ細false 鍋囧垹闄わ細true + delFlag: 'true', + }; + duplicateCheck(params).then((res) => { + if (res.success) { + callback(); + } else { + callback("鍥哄畾瀛楃宸插瓨鍦�!"); + } + }) + }, + //楠岃瘉 绫诲瀷 + validateType(rule, value, callback) { + var params = { + tableName: 'mom_serial_number_map', + fieldName: 'type', + fieldVal: value, + dataId: this.model.id, + //鏁版嵁搴撲腑瀛樺湪瀛楁del_flag骞朵娇鐢ㄨ瀛楁浣滀负鏈垹闄ょ瓥鐣ワ紝鐪熷垹闄わ細false 鍋囧垹闄わ細true + delFlag: 'true', + }; + duplicateCheck(params).then((res) => { + if (res.success) { + callback(); + } else { + callback("绫诲瀷宸插瓨鍦�!"); + } + }) + }, + }, +} +</script> + +<style lang="less" scoped> +</style> \ No newline at end of file diff --git a/src/views/spare/modules/sparePart/SparePartModel.vue b/src/views/spare/modules/sparePart/SparePartModel.vue index 50ce2b1..b5f7752 100644 --- a/src/views/spare/modules/sparePart/SparePartModel.vue +++ b/src/views/spare/modules/sparePart/SparePartModel.vue @@ -333,6 +333,7 @@ edit: "/spare/sparePart/edit", getAuxiliaryUnits: "/spare/sparePart/getAuxiliaryUnits", getConversionRatio: "/spare/sparePart/getConversionRatio", + getNum: '/eam/sysIdentity/getNumNew', }, //鏂板銆佺紪杈戙�佸垹闄ゃ�佹壒閲忓垹闄ゆ搷浣滄敼鍙樻暟鎹悗鍒锋柊鍏宠仈鐨勭粍浠剁殑鐩戝惉灞炴�� alterFlag: "", @@ -377,6 +378,13 @@ this.codeDisable = true; } else { this.codeDisable = false; + this.$nextTick(() => { + getAction(this.url.getNum, { type: 'SparePart', length: '4' }).then((res) => { + if (res.success) { + this.form.setFieldsValue({ num: res.message }); + } + }) + }); } }, -- Gitblit v1.9.3