From 94c12e85908720f1f3061b095a67bcce373c5905 Mon Sep 17 00:00:00 2001 From: zhangherong <571457620@qq.com> Date: 星期一, 07 四月 2025 11:07:14 +0800 Subject: [PATCH] art: 系统管理-岗位管理-新增,列表查询 --- src/views/system/SysPositionList.vue | 44 +++----- src/views/system/modules/SysPositionModal.vue | 214 ++++++++++++++++-------------------------- 2 files changed, 98 insertions(+), 160 deletions(-) diff --git a/src/views/system/SysPositionList.vue b/src/views/system/SysPositionList.vue index df55578..b4f1a19 100644 --- a/src/views/system/SysPositionList.vue +++ b/src/views/system/SysPositionList.vue @@ -7,31 +7,19 @@ <a-row :gutter="24"> <a-col :md="6" :sm="8"> - <a-form-item label="鑱屽姟缂栫爜"> - <a-input placeholder="璇疯緭鍏ヨ亴鍔$紪鐮�" v-model="queryParam.code"></a-input> + <a-form-item label="宀椾綅缂栫爜"> + <j-input placeholder="璇疯緭鍏ュ矖浣嶇紪鐮�" v-model="queryParam.code"></j-input> </a-form-item> </a-col> <a-col :md="6" :sm="8"> - <a-form-item label="鑱屽姟鍚嶇О"> - <a-input placeholder="璇疯緭鍏ヨ亴鍔″悕绉�" v-model="queryParam.name"></a-input> + <a-form-item label="宀椾綅鍚嶇О"> + <j-input placeholder="璇疯緭鍏ュ矖浣嶅悕绉�" v-model="queryParam.name"></j-input> </a-form-item> </a-col> - <template v-if="toggleSearchStatus"> - <a-col :md="6" :sm="8"> - <a-form-item label="鑱岀骇"> - <j-dict-select-tag v-model="queryParam.postRank" placeholder="璇烽�夋嫨鑱岀骇" dictCode="position_rank"/> - </a-form-item> - </a-col> - - </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> - <a @click="handleToggleSearch" style="margin-left: 8px"> - {{ toggleSearchStatus ? '鏀惰捣' : '灞曞紑' }} - <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> - </a> + <a-button type="info" @click="searchReset" icon="reload" style="margin-left: 8px">閲嶇疆</a-button> </span> </a-col> @@ -42,10 +30,10 @@ <!-- 鎿嶄綔鎸夐挳鍖哄煙 --> <div class="table-operator"> <a-button @click="handleAdd" type="primary" icon="plus">鏂板</a-button> - <a-button type="primary" icon="download" @click="handleExportXls('鑱屽姟琛�')">瀵煎嚭</a-button> - <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel"> - <a-button type="primary" icon="import">瀵煎叆</a-button> - </a-upload> +<!-- <a-button type="primary" icon="download" @click="handleExportXls('鑱屽姟琛�')">瀵煎嚭</a-button>--> +<!-- <a-upload name="file" :showUploadList="false" :multiple="false" :headers="tokenHeader" :action="importExcelUrl" @change="handleImportExcel">--> +<!-- <a-button type="primary" icon="import">瀵煎叆</a-button>--> +<!-- </a-upload>--> <a-dropdown v-if="selectedRowKeys.length > 0"> <a-menu slot="overlay"> <a-menu-item key="1" @click="batchDel"> @@ -131,20 +119,20 @@ } }, { - title: '鑱屽姟缂栫爜', + title: '宀椾綅缂栫爜', align: 'center', dataIndex: 'code' }, { - title: '鑱屽姟鍚嶇О', + title: '宀椾綅鍚嶇О', align: 'center', dataIndex: 'name' }, - { - title: '鑱岀骇', - align: 'center', - dataIndex: 'postRank_dictText' - }, + // { + // title: '鑱岀骇', + // align: 'center', + // dataIndex: 'postRank_dictText' + // }, // { // title: '鍏徃id', // align: 'center', diff --git a/src/views/system/modules/SysPositionModal.vue b/src/views/system/modules/SysPositionModal.vue index 770f444..4d8a9b8 100644 --- a/src/views/system/modules/SysPositionModal.vue +++ b/src/views/system/modules/SysPositionModal.vue @@ -16,158 +16,108 @@ :labelCol="labelCol" :wrapperCol="wrapperCol" prop="code" - required - label="鑱屽姟缂栫爜"> - <a-input placeholder="璇疯緭鍏ヨ亴鍔$紪鐮�" v-model="model.code" :read-only="readOnly"/> + label="宀椾綅缂栫爜"> + <a-input placeholder="宀椾綅缂栫爜鑷姩鐢熸垚" v-model="model.code" disabled /> </a-form-model-item> <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="name" - required - label="鑱屽姟鍚嶇О"> - <a-input placeholder="璇疯緭鍏ヨ亴鍔″悕绉�" v-model="model.name"/> + label="宀椾綅鍚嶇О"> + <a-input placeholder="璇疯緭鍏ュ矖浣嶅悕绉�" v-model="model.name" /> </a-form-model-item> - <a-form-model-item - :labelCol="labelCol" - :wrapperCol="wrapperCol" - prop="postRank" - required - label="鑱岀骇" - > - <j-dict-select-tag - placeholder="璇烽�夋嫨鑱岀骇" - dictCode="position_rank" - v-model="model.postRank" - /> - </a-form-model-item> - </a-form-model> </a-spin> </a-modal> </template> <script> - import pick from 'lodash.pick' - import { httpAction } from '@/api/manage' - import { duplicateCheck } from '@/api/api' - import JDictSelectTag from '@/components/dict/JDictSelectTag' +import { httpAction } from '@/api/manage' - let validatorCodeTimer = null - - export default { - name: 'SysPositionModal', - components: { JDictSelectTag }, - data() { - return { - title: '鎿嶄綔', - visible: false, - model: {}, - labelCol: { - xs: { span: 24 }, - sm: { span: 5 }, - }, - wrapperCol: { - xs: { span: 24 }, - sm: { span: 16 }, - }, - confirmLoading: false, - validatorRules: { - code: [ - { required: true, message: '璇疯緭鍏ヨ亴鍔$紪鐮�' }, - { - validator: (rule, value, callback) => { - // 鍑芥暟娑堟姈鐨勭畝鍗曞疄鐜帮紝闃叉涓�娈垫椂闂村唴鍙戦�佸娆¤姹� - if (validatorCodeTimer) { - // 鍋滄涓婃寮�鍚殑瀹氭椂鍣� - clearTimeout(validatorCodeTimer) - } - validatorCodeTimer = setTimeout(() => { - duplicateCheck({ - tableName: 'sys_position', - fieldName: 'code', - fieldVal: value, - dataId: this.model.id - }).then((res) => { - if (res.success) { - callback() - } else { - callback(res.message) - } - }).catch(console.error) - }, 300) - } - } - ], - name: [{ required: true, message: '璇疯緭鍏ヨ亴鍔″悕绉�' }] , - postRank: [{ required: true, message: '璇烽�夋嫨鑱岀骇' }] , - }, - url: { - add: '/sys/position/add', - edit: '/sys/position/edit', - }, - readOnly:false +export default { + name: 'SysPositionModal', + data() { + return { + title: '鎿嶄綔', + visible: false, + model: {}, + labelCol: { + xs: { span: 24 }, + sm: { span: 5 } + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 16 } + }, + confirmLoading: false, + validatorRules: { + name: [{ required: true, message: '璇疯緭鍏ュ矖浣嶅悕绉�' }] + }, + url: { + add: '/sys/position/add', + edit: '/sys/position/edit' + }, + readOnly: false + } + }, + created() { + }, + methods: { + add() { + this.edit({}) + }, + edit(record) { + this.model = Object.assign({}, record) + this.visible = true + if (record.id) { + this.readOnly = true + } else { + this.readOnly = false } }, - created() { + close() { + this.$emit('close') + this.visible = false + this.$refs.form.resetFields() }, - methods: { - add() { - this.edit({}) - }, - edit(record) { - this.model = Object.assign({}, record) - this.visible = true - if(record.id){ - this.readOnly=true - }else{ - this.readOnly=false - } - }, - close() { - this.$emit('close') - this.visible = false - this.$refs.form.resetFields(); - }, - 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; + 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' } - }) - }, - handleCancel() { - this.close() - }, - + 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> -- Gitblit v1.9.3