From c4e4ab1056b9ba1956f3dd146615537543a12b8f Mon Sep 17 00:00:00 2001 From: zenglf <18502938215@163.com> Date: 星期三, 18 十月 2023 15:45:15 +0800 Subject: [PATCH] 操作证管理功能 前端界面更新 --- src/views/eam/OperationCertificateList.vue | 422 +++++++++++++++++++++++++++------------------------- src/views/eam/modules/operationCertificate/OperationCertificateForm.vue | 36 +++- 2 files changed, 245 insertions(+), 213 deletions(-) diff --git a/src/views/eam/OperationCertificateList.vue b/src/views/eam/OperationCertificateList.vue index a6e5030..5792dfa 100644 --- a/src/views/eam/OperationCertificateList.vue +++ b/src/views/eam/OperationCertificateList.vue @@ -1,38 +1,39 @@ <template> - <a-card :bordered="false"> + <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="鎿嶄綔璇佺紪鍙�"> - <a-input placeholder="璇疯緭鍏ユ搷浣滆瘉缂栧彿" v-model="queryParam.num"></a-input> + <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='鎿嶄綔璇佺紪鍙�'> + <a-input placeholder='璇疯緭鍏ユ搷浣滆瘉缂栧彿' v-model='queryParam.num'></a-input> </a-form-item> </a-col> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <a-form-item label="鐢ㄦ埛ID"> - <j-select-user-by-dep placeholder="璇烽�夋嫨鐢ㄦ埛ID" v-model="queryParam.userId"/> + <a-col :xl='6' :lg='7' :md='8' :sm='24'> + <a-form-item label='濮撳悕'> + <j-select-user-by-dep placeholder='璇烽�夋嫨濮撳悕' v-model='queryParam.userId' /> </a-form-item> </a-col> - <template v-if="toggleSearchStatus"> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <a-form-item label="鍙戣瘉鏃ユ湡"> - <j-date placeholder="璇烽�夋嫨鍙戣瘉鏃ユ湡" v-model="queryParam.issueDate"></j-date> + <template v-if='toggleSearchStatus'> + <a-col :xl='6' :lg='7' :md='8' :sm='24'> + <a-form-item label='鍙戣瘉鏃ユ湡'> + <j-date placeholder='璇烽�夋嫨鍙戣瘉鏃ユ湡' v-model='queryParam.issueDate'></j-date> </a-form-item> </a-col> - <a-col :xl="6" :lg="7" :md="8" :sm="24"> - <a-form-item label="璁惧缁熶竴缂栫爜"> - <j-multi-select-tag placeholder="璇烽�夋嫨璁惧缁熶竴缂栫爜" dictCode="mom_eam_equipment,num,id" v-model="queryParam.equipmentIds"/> + <a-col :xl='6' :lg='7' :md='8' :sm='24'> + <a-form-item label='璁惧缁熶竴缂栫爜'> + <j-multi-select-tag placeholder='璇烽�夋嫨璁惧缁熶竴缂栫爜' dictCode='mom_eam_equipment,num,id' + v-model='queryParam.equipmentIds' /> </a-form-item> </a-col> </template> - <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="primary" @click="searchReset" icon="reload" style="margin-left: 8px">閲嶇疆</a-button> - <a @click="handleToggleSearch" style="margin-left: 8px"> + <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='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-icon :type="toggleSearchStatus ? 'up' : 'down'" /> </a> </span> </a-col> @@ -42,219 +43,238 @@ <!-- 鏌ヨ鍖哄煙-END --> <!-- 鎿嶄綔鎸夐挳鍖哄煙 --> - <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> + <div class='table-operator'> + <a-button @click='handleAdd' type='primary' icon='plus'>鏂板</a-button> +<!-- <a-button @click='handleChangeCertificate' 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> <!-- 楂樼骇鏌ヨ鍖哄煙 --> -<!-- <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>--> -<!-- <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>--> + <!-- <j-super-query :fieldList="superFieldList" ref="superQueryModal" @handleSuperQuery="handleSuperQuery"></j-super-query>--> + <!-- <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 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" + ref='table' + size='middle' bordered - rowKey="id" - class="j-table-force-nowrap" - :scroll="{x:true}" - :columns="columns" - :dataSource="dataSource" - :pagination="ipagination" - :loading="loading" - :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" - @change="handleTableChange"> + rowKey='id' + class='j-table-force-nowrap' + :scroll='{x:true}' + :columns='columns' + :dataSource='dataSource' + :pagination='ipagination' + :loading='loading' + :rowSelection='{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}' + @change='handleTableChange'> - <template slot="htmlSlot" slot-scope="text"> - <div v-html="text"></div> + <template slot='htmlSlot' slot-scope='text'> + <div v-html='text'></div> </template> - <template slot="imgSlot" slot-scope="text,record"> - <span v-if="!text" style="font-size: 12px;font-style: italic;">鏃犲浘鐗�</span> - <img v-else :src="getImgView(text)" :preview="record.id" height="25px" alt="" style="max-width:80px;font-size: 12px;font-style: italic;"/> + <template slot='imgSlot' slot-scope='text,record'> + <span v-if='!text' style='font-size: 12px;font-style: italic;'>鏃犲浘鐗�</span> + <img v-else :src='getImgView(text)' :preview='record.id' height='25px' alt='' + style='max-width:80px;font-size: 12px;font-style: italic;' /> </template> - <template slot="fileSlot" slot-scope="text"> - <span v-if="!text" style="font-size: 12px;font-style: italic;">鏃犳枃浠�</span> + <template slot='fileSlot' slot-scope='text'> + <span v-if='!text' style='font-size: 12px;font-style: italic;'>鏃犳枃浠�</span> <a-button v-else - :ghost="true" - type="primary" - icon="download" - size="small" - @click="downloadFile(text)"> + :ghost='true' + type='primary' + icon='download' + size='small' + @click='downloadFile(text)'> 涓嬭浇 </a-button> </template> - <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 @click="handleDetail(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 slot='action' slot-scope='text, record'> +<!-- <a @click='handleEdit(record)'>缂栬緫</a>--> +<!-- <a-divider type='vertical' />--> + <a @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="handleDetail(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> - <operation-certificate-modal ref="modalForm" @ok="modalFormOk"/> + <operation-certificate-modal ref='modalForm' @ok='modalFormOk' /> </a-card> </template> <script> - import { JeecgListMixin } from '@/mixins/JeecgListMixin' - import OperationCertificateModal from './modules/operationCertificate/OperationCertificateModal' - import {filterMultiDictText} from '@/components/dict/JDictSelectUtil' - import '@/assets/less/TableExpand.less' +import { JeecgListMixin } from '@/mixins/JeecgListMixin' +import OperationCertificateModal from './modules/operationCertificate/OperationCertificateModal' +import { filterMultiDictText } from '@/components/dict/JDictSelectUtil' +import '@/assets/less/TableExpand.less' - export default { - name: "OperationCertificateList", - mixins:[JeecgListMixin], - components: { - OperationCertificateModal - }, - 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: 'num' - }, - { - title:'鐢ㄦ埛ID', - align:"center", - dataIndex: 'userId_dictText' - }, - { - title:'鍙戣瘉鏃ユ湡', - align:"center", - dataIndex: 'issueDate', - customRender:function (text) { - return !text?"":(text.length>10?text.substr(0,10):text) - } - }, - { - title:'寮�濮嬫椂闂�', - align:"center", - dataIndex: 'startTime', - customRender:function (text) { - return !text?"":(text.length>10?text.substr(0,10):text) - } - }, - { - title:'缁撴潫鏃堕棿', - align:"center", - dataIndex: 'endTime', - customRender:function (text) { - return !text?"":(text.length>10?text.substr(0,10):text) - } - }, - { - title:'褰撳墠鍛ㄦ湡鍒嗘暟', - align:"center", - dataIndex: 'currentCycleScore' - }, - { - title:'璁惧缁熶竴缂栫爜', - align:"center", - dataIndex: 'equipmentIds_dictText' - }, - { - title:'澶囨敞', - align:"center", - dataIndex: 'remark' - }, - { - title:'鐘舵��', - align:"center", - dataIndex: 'status_dictText' - }, - { - title: '鎿嶄綔', - dataIndex: 'action', - align:"center", - fixed:"right", - width:147, - scopedSlots: { customRender: 'action' }, +export default { + name: 'OperationCertificateList', + mixins: [JeecgListMixin], + components: { + OperationCertificateModal + }, + data() { + return { + description: '鎿嶄綔璇佷功绠$悊绠$悊椤甸潰', + // 琛ㄥご + columns: [ + { + title: '#', + dataIndex: '', + key: 'rowIndex', + width: 60, + align: 'center', + customRender: function(t, r, index) { + return parseInt(index) + 1 } - ], - url: { - list: "/eam/operationCertificate/list", - delete: "/eam/operationCertificate/delete", - deleteBatch: "/eam/operationCertificate/deleteBatch", - exportXlsUrl: "/eam/operationCertificate/exportXls", - importExcelUrl: "eam/operationCertificate/importExcel", - }, - dictOptions:{}, - superFieldList:[], - } - }, - created() { - this.getSuperFieldList(); - }, - computed: { - importExcelUrl: function(){ - return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; - } - }, - methods: { - initDictConfig(){ + { + title: '鎿嶄綔璇佺紪鍙�', + align: 'center', + dataIndex: 'num' + }, + { + title: '濮撳悕', + align: 'center', + dataIndex: 'userId_dictText' + }, + { + title: '鍙戣瘉鏃ユ湡', + align: 'center', + dataIndex: 'issueDate', + customRender: function(text) { + return !text ? '' : (text.length > 10 ? text.substr(0, 10) : text) + } + }, + { + title: '寮�濮嬫椂闂�', + align: 'center', + dataIndex: 'startTime', + customRender: function(text) { + return !text ? '' : (text.length > 10 ? text.substr(0, 10) : text) + } + }, + { + title: '缁撴潫鏃堕棿', + align: 'center', + dataIndex: 'endTime', + customRender: function(text) { + return !text ? '' : (text.length > 10 ? text.substr(0, 10) : text) + } + }, + { + title: '褰撳墠鍛ㄦ湡鍒嗘暟', + align: 'center', + dataIndex: 'currentCycleScore' + }, + { + title: '璁惧缁熶竴缂栫爜', + align: 'center', + dataIndex: 'equipmentIds_dictText' + }, + { + title: '澶囨敞', + align: 'center', + dataIndex: 'remark' + }, + { + title: '鐘舵��', + align: 'center', + dataIndex: 'status_dictText' + }, + { + title: '鎿嶄綔', + dataIndex: 'action', + align: 'center', + fixed: 'right', + width: 147, + scopedSlots: { customRender: 'action' } + } + ], + url: { + list: '/eam/operationCertificate/list', + delete: '/eam/operationCertificate/delete', + deleteBatch: '/eam/operationCertificate/deleteBatch', + exportXlsUrl: '/eam/operationCertificate/exportXls', + importExcelUrl: 'eam/operationCertificate/importExcel' + }, - getSuperFieldList(){ - let fieldList=[]; - fieldList.push({type:'string',value:'num',text:'鎿嶄綔璇佺紪鍙�',dictCode:''}) - fieldList.push({type:'sel_user',value:'userId',text:'鐢ㄦ埛ID'}) - fieldList.push({type:'date',value:'issueDate',text:'鍙戣瘉鏃ユ湡'}) - fieldList.push({type:'date',value:'startTime',text:'寮�濮嬫椂闂�'}) - fieldList.push({type:'date',value:'endTime',text:'缁撴潫鏃堕棿'}) - fieldList.push({type:'int',value:'currentCycleScore',text:'褰撳墠鍛ㄦ湡鍒嗘暟',dictCode:''}) - fieldList.push({type:'list_multi',value:'equipmentIds',text:'璁惧缁熶竴缂栫爜',dictTable:"mom_eam_equipment", dictText:'num', dictCode:'id'}) - fieldList.push({type:'string',value:'remark',text:'澶囨敞',dictCode:''}) - fieldList.push({type:'string',value:'status',text:'鐘舵��',dictCode:'certificate_status'}) - this.superFieldList = fieldList - } + dictOptions: {}, + superFieldList: [] + } + }, + created() { + this.getSuperFieldList() + }, + computed: { + importExcelUrl: function() { + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}` + } + }, + methods: { + initDictConfig() { + }, + + // handleChangeCertificate: function (record) { + // this.$refs.modalForm.edit(record) + // this.$refs.modalForm.title = '鍙樻洿鎿嶄綔璇�' + // this.$refs.modalForm.disableSubmit = false + // // this.$refs.modalForm.isRevise = false; + // }, + getSuperFieldList() { + let fieldList = [] + fieldList.push({ type: 'string', value: 'num', text: '鎿嶄綔璇佺紪鍙�', dictCode: '' }) + fieldList.push({ type: 'sel_user', value: 'userId', text: '濮撳悕' }) + fieldList.push({ type: 'date', value: 'issueDate', text: '鍙戣瘉鏃ユ湡' }) + fieldList.push({ type: 'date', value: 'startTime', text: '寮�濮嬫椂闂�' }) + fieldList.push({ type: 'date', value: 'endTime', text: '缁撴潫鏃堕棿' }) + fieldList.push({ type: 'int', value: 'currentCycleScore', text: '褰撳墠鍛ㄦ湡鍒嗘暟', dictCode: '' }) + fieldList.push({ + type: 'list_multi', + value: 'equipmentIds', + text: '璁惧缁熶竴缂栫爜', + dictTable: 'mom_eam_equipment', + dictText: 'num', + dictCode: 'id' + }) + fieldList.push({ type: 'string', value: 'remark', text: '澶囨敞', dictCode: '' }) + fieldList.push({ type: 'string', value: 'status', text: '鐘舵��', dictCode: 'certificate_status' }) + this.superFieldList = fieldList } } +} </script> <style scoped> - @import '~@assets/less/common.less'; +@import '~@assets/less/common.less'; </style> \ No newline at end of file diff --git a/src/views/eam/modules/operationCertificate/OperationCertificateForm.vue b/src/views/eam/modules/operationCertificate/OperationCertificateForm.vue index 8d47cef..2821bf7 100644 --- a/src/views/eam/modules/operationCertificate/OperationCertificateForm.vue +++ b/src/views/eam/modules/operationCertificate/OperationCertificateForm.vue @@ -10,8 +10,8 @@ </a-form-model-item> </a-col> <a-col :span="12" > - <a-form-model-item label="鐢ㄦ埛ID" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="userId"> - <j-select-user-by-dep v-model="model.userId" :multi="true" /> + <a-form-model-item label="濮撳悕" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="userId"> + <j-select-user-by-dep v-model="model.userId" :multi="false" /> </a-form-model-item> </a-col> <a-col :span="12" > @@ -122,39 +122,51 @@ { title: '璇佷功ID', key: 'operationCertificateId', - type: JVXETypes.input, + type: JVXETypes.hidden, width:"200px", + placeholder: '璇疯緭鍏�${title}', + defaultValue:'', + }, + { + title: '鏃ユ湡', + key: 'happenDate', + type: JVXETypes.date, + width:"120px", placeholder: '璇疯緭鍏�${title}', defaultValue:'', }, { title: '绫诲瀷', key: 'type', - type: JVXETypes.input, - width:"200px", + type: JVXETypes.select, + dictCode: 'certificate_change_type', + width:"100px", placeholder: '璇疯緭鍏�${title}', defaultValue:'', }, { - title: '璁惧id', + title: '璁惧缁熶竴缂栫爜', key: 'equipmentId', - type: JVXETypes.input, - width:"200px", + type: JVXETypes.selectSearch, + dictCode: 'mom_eam_equipment,num,id ', + width: '200px', placeholder: '璇疯緭鍏�${title}', - defaultValue:'', + defaultValue: '', + validateRules: [{ required: true, message: '${title}涓嶈兘涓虹┖' }] }, { title: '鎵e垎椤�', key: 'deductionItem', - type: JVXETypes.input, - width:"200px", + type: JVXETypes.selectSearch, + dictCode: 'mom_eam_base_deduction_item,content,id ', + width:"500px", placeholder: '璇疯緭鍏�${title}', defaultValue:'', }, { title: '鎵e垎鍛ㄦ湡', key: 'period', - type: JVXETypes.input, + type: JVXETypes.normal, width:"200px", placeholder: '璇疯緭鍏�${title}', defaultValue:'', -- Gitblit v1.9.3