From d917606e37cb420a1a2fe8245b7a82cbb2795a0f Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期一, 17 三月 2025 14:05:11 +0800 Subject: [PATCH] art:系统管理-业务编码规则 新增 --- src/views/system/modules/SysBusinessCodeRuleModal.vue | 134 ++++++++++++++++++++++ src/views/system/SysBusinessCodeRuleList.vue | 182 ++++++++++++++++++++++++++++++ 2 files changed, 316 insertions(+), 0 deletions(-) diff --git a/src/views/system/SysBusinessCodeRuleList.vue b/src/views/system/SysBusinessCodeRuleList.vue new file mode 100644 index 0000000..5644b2d --- /dev/null +++ b/src/views/system/SysBusinessCodeRuleList.vue @@ -0,0 +1,182 @@ +<template> + <a-card :bordered="false"> + <!-- 鏌ヨ鍖哄煙 --> + <div class="table-page-search-wrapper"> + <a-form layout="inline" @keyup.enter.native="searchQuery"> + <a-row :gutter="24"> + <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <a-form-item label="涓氬姟鍚嶇О"> + <j-input placeholder="璇疯緭鍏ヤ笟鍔″悕绉�" v-model="queryParam.businessName"></j-input> + </a-form-item> + </a-col> + <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <a-form-item label="涓氬姟缂栫爜"> + <j-input placeholder="璇疯緭鍏ヤ笟鍔$紪鐮�" v-model="queryParam.businessCode"></j-input> + </a-form-item> + </a-col> + <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <a-form-item label="缂栫爜鍓嶇紑"> + <j-input placeholder="璇疯緭鍏ョ紪鐮佸墠缂�" v-model="queryParam.prefix"></j-input> + </a-form-item> + </a-col> + <a-col :xl="6" :lg="7" :md="8" :sm="24"> + <span style="float: left;overflow: hidden;" class="table-page-search-submitButtons"> + <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button> + <a-button type="info" @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" + :dataSource="dataSource" + :pagination="ipagination" + :loading="loading" + class="j-table-force-nowrap" + :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" + @change="handleTableChange"> + + <span slot="action" slot-scope="text, record"> + <a @click="handleEdit(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-popconfirm title="纭畾鍒犻櫎鍚�?" @confirm="() => handleDelete(record.id)"> + <a>鍒犻櫎</a> + </a-popconfirm> + </a-menu-item> + </a-menu> + </a-dropdown> + </span> + + </a-table> + </div> + <!-- table鍖哄煙-end --> + + <!-- 琛ㄥ崟鍖哄煙 --> + <sysBusinessCodeRule-modal ref="modalForm" @ok="modalFormOk"></sysBusinessCodeRule-modal> + </a-card> +</template> + +<script> +import '@/assets/less/TableExpand.less' +import SysBusinessCodeRuleModal from './modules/SysBusinessCodeRuleModal' +import { JeecgListMixin } from '@/mixins/JeecgListMixin' + +export default { + name: 'SysBusinessCodeRuleList', + mixins: [JeecgListMixin], + components: { + SysBusinessCodeRuleModal + }, + data() { + return { + description: '涓氬姟缂栫爜瑙勫垯绠$悊椤甸潰', + // 琛ㄥご + columns: [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'center', + customRender: function(t, r, index) { + return parseInt(index) + 1 + } + }, + { + title: '涓氬姟鍚嶇О', + align: 'center', + dataIndex: 'businessName' + }, + { + title: '涓氬姟缂栫爜', + align: 'center', + dataIndex: 'businessCode' + }, + { + title: '缂栫爜鍓嶇紑', + align: 'center', + dataIndex: 'prefix' + }, + { + title: '骞翠唤缂栫爜鏍煎紡', + align: 'center', + dataIndex: 'yearFormat' + }, + { + title: '鏈堜唤缂栫爜鏍煎紡', + align: 'center', + dataIndex: 'monthFormat' + }, + { + title: '澶╃紪鐮佹牸寮�', + align: 'center', + dataIndex: 'dayFormat' + }, + { + title: '搴忓彿闀垮害', + align: 'center', + dataIndex: 'seqLength' + }, + { + title: '褰撳墠搴忓彿', + align: 'center', + dataIndex: 'currentNum' + }, + { + title: '鎿嶄綔', + dataIndex: 'action', + align: 'center', + scopedSlots: { customRender: 'action' } + } + ], + url: { + list: '/sys/sysBusinessCodeRule/list', + delete: '/sys/sysBusinessCodeRule/delete', + deleteBatch: '/sys/sysBusinessCodeRule/deleteBatch', + } + } + }, + computed: { + }, + methods: {} +} +</script> +<style scoped> +@import '~@assets/less/common.less'; +</style> \ No newline at end of file diff --git a/src/views/system/modules/SysBusinessCodeRuleModal.vue b/src/views/system/modules/SysBusinessCodeRuleModal.vue new file mode 100644 index 0000000..d7a6b51 --- /dev/null +++ b/src/views/system/modules/SysBusinessCodeRuleModal.vue @@ -0,0 +1,134 @@ +<template> + <j-modal + :title="title" + :width="800" + :visible="visible" + :confirmLoading="confirmLoading" + switchFullscreen + @ok="handleOk" + @cancel="handleCancel" + cancelText="鍏抽棴"> + + <a-spin :spinning="confirmLoading"> + <a-form-model ref="form" :model="model" :rules="validatorRules"> + <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="businessName" label="涓氬姟鍚嶇О"> + <a-input placeholder="璇疯緭鍏ヤ笟鍔″悕绉�" v-model="model.businessName" /> + </a-form-model-item> + <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="businessCode" label="涓氬姟缂栫爜"> + <a-input placeholder="璇疯緭鍏ヤ笟鍔$紪鐮�" v-model="model.businessCode" /> + </a-form-model-item> + <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="prefix" label="缂栫爜鍓嶇紑"> + <a-input placeholder="璇疯緭鍏ョ紪鐮佸墠缂�" v-model="model.prefix" /> + </a-form-model-item> + <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="yearFormat" label="骞翠唤缂栫爜鏍煎紡"> + <a-input placeholder="鍙傝�冩棩鏈熷勾浠界紪鐮佹牸寮�" v-model="model.yearFormat" /> + </a-form-model-item> + <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="monthFormat" label="鏈堜唤缂栫爜鏍煎紡"> + <a-input placeholder="鍙傝�冩棩鏈熸湀浠界紪鐮佹牸寮�" v-model="model.monthFormat" /> + </a-form-model-item> + <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="dayFormat" label="澶╃紪鐮佹牸寮�"> + <a-input placeholder="鍙傝�冩棩鏈熷ぉ鐨勭紪鐮佹牸寮�" v-model="model.dayFormat" /> + </a-form-model-item> + <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="seqLength" label="搴忓彿闀垮害"> + <a-input-number v-model="model.seqLength" :min="1" :max="10" :precision="0" /> + </a-form-model-item> + </a-form-model> + </a-spin> + </j-modal> +</template> + +<script> +import { httpAction } from '@/api/manage' +import { validateDuplicateValue } from '@/utils/util' + +export default { + name: 'SysBusinessCodeRuleModal', + data() { + return { + title: '鎿嶄綔', + visible: false, + model: {}, + labelCol: { + xs: { span: 24 }, + sm: { span: 5 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 16 } + }, + confirmLoading: false, + validatorRules: { + businessName: [ + { required: true, message: '璇疯緭鍏ヤ笟鍔″悕绉�!' } + ], + businessCode: [ + { required: true, message: '璇疯緭鍏ヤ笟鍔$紪鐮�!' }, + { validator: (rule, value, callback) => validateDuplicateValue('sys_business_code_rule', 'business_code', value, this.model.id, callback) } + ], + seqLength: [ + { required: true, message: '璇疯緭鍏ュ簭鍙烽暱搴�!' } + ] + }, + url: { + add: '/sys/sysBusinessCodeRule/add', + edit: '/sys/sysBusinessCodeRule/edit' + } + } + }, + created() { + }, + methods: { + add() { + //鍒濆鍖栭粯璁ゅ�� + this.edit({ seqLength: 4 }) + }, + edit(record) { + this.model = Object.assign({}, record) + this.visible = true + }, + close() { + this.$emit('close') + this.visible = false + this.$refs.form.clearValidate() + }, + handleOk() { + const that = this + // 瑙﹀彂琛ㄥ崟楠岃瘉 + this.$refs.form.validate(valid => { + if (valid) { + that.confirmLoading = true + let httpurl = '' + let method = '' + if (!this.model.id) { + httpurl += this.url.add + method = 'post' + } else { + httpurl += this.url.edit + method = 'put' + } + httpAction(httpurl, this.model, 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() + }) + } else { + return false + } + }) + }, + handleCancel() { + this.close() + } + } +} +</script> + +<style lang="less" scoped> + +</style> \ No newline at end of file -- Gitblit v1.9.3