src/views/eam/dispose/EamEquipmentScrapList.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/eam/dispose/modules/EamEquipmentScrapModal.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/flowable/workflow/FlowTodo.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/flowable/workflow/scrap/EquipmentScrapApprovalModal.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/views/eam/dispose/EamEquipmentScrapList.vue
@@ -1,46 +1,47 @@ <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"> <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.delFlag"></a-input> <a-col :lg='7' :md='8' :sm='24' :xl='6'> <a-form-item label='设å¤ç¼å·'> <lx-search-equipment-select v-model='queryParam.equipmentId' placeholder='请è¾å ¥è®¾å¤ç¼å·æåç§°æç´¢'></lx-search-equipment-select> </a-form-item> </a-col> <a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-form-item label="åæ®å·"> <a-input placeholder="请è¾å ¥åæ®å·" v-model="queryParam.code"></a-input> <a-col :lg='7' :md='8' :sm='24' :xl='6'> <a-form-item label='åæ®å·'> <a-input v-model='queryParam.code' placeholder='请è¾å ¥åæ®å·'></a-input> </a-form-item> </a-col> <template v-if="toggleSearchStatus"> <a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-form-item label="设å¤ID"> <a-input placeholder="请è¾å ¥è®¾å¤ID" v-model="queryParam.equipmentId"></a-input> </a-form-item> </a-col> <a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-form-item label="转让/æ¥åº"> <a-input placeholder="请è¾å ¥è½¬è®©/æ¥åº" v-model="queryParam.scrapType"></a-input> </a-form-item> </a-col> <a-col :xl="6" :lg="7" :md="8" :sm="24"> <a-form-item label="ç³è¯·äºº"> <a-input placeholder="请è¾å ¥ç³è¯·äºº" v-model="queryParam.reportUser"></a-input> </a-form-item> </a-col> <template v-if='toggleSearchStatus'> <a-col :lg='7' :md='8' :sm='24' :xl='6'> <a-form-item label='设å¤ID'> <a-input v-model='queryParam.equipmentId' placeholder='请è¾å ¥è®¾å¤ID'></a-input> </a-form-item> </a-col> <a-col :lg='7' :md='8' :sm='24' :xl='6'> <a-form-item label='转让/æ¥åº'> <a-input v-model='queryParam.scrapType' placeholder='请è¾å ¥è½¬è®©/æ¥åº'></a-input> </a-form-item> </a-col> <a-col :lg='7' :md='8' :sm='24' :xl='6'> <a-form-item label='ç³è¯·äºº'> <a-input v-model='queryParam.reportUser' placeholder='请è¾å ¥ç³è¯·äºº'></a-input> </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"> {{ toggleSearchStatus ? 'æ¶èµ·' : 'å±å¼' }} <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/> </a> <a-col :lg='7' :md='8' :sm='24' :xl='6'> <span class='table-page-search-submitButtons' style='float: left;overflow: hidden;'> <a-button icon='search' type='primary' @click='searchQuery'>æ¥è¯¢</a-button> <a-button icon='reload' style='margin-left: 8px' type='primary' @click='searchReset'>éç½®</a-button> <!-- <a @click="handleToggleSearch" style="margin-left: 8px">--> <!-- {{ toggleSearchStatus ? 'æ¶èµ·' : 'å±å¼' }}--> <!-- <a-icon :type="toggleSearchStatus ? 'up' : 'down'"/>--> <!-- </a>--> </span> </a-col> @@ -49,54 +50,66 @@ </div> <!-- æä½æé®åºå --> <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-dropdown v-if="selectedRowKeys.length > 0"> <a-menu slot="overlay"> <a-menu-item key="1" @click="batchDel"><a-icon type="delete"/>å é¤</a-menu-item> <div class='table-operator'> <a-button icon='plus' type='primary' @click='handleAdd'>æ°å¢</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-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' :columns='columns' :dataSource='dataSource' :loading='loading' :pagination='ipagination' :rowSelection='{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}' bordered rowKey="id" :columns="columns" :dataSource="dataSource" :pagination="ipagination" :loading="loading" class="j-table-force-nowrap" :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" @change="handleTableChange"> class='j-table-force-nowrap' rowKey='id' size='middle' @change='handleTableChange'> <span slot="action" slot-scope="text, record"> <a @click="handleEdit(record)">ç¼è¾</a> <span slot='action' slot-scope='text, record'> <template v-if="record.scrapStatus === 'WAIT_SUBMIT'"> <a-popconfirm title='ç¡®å®æäº¤å?' @confirm='() => handleSubmit(record.id)'> <a>æäº¤</a> </a-popconfirm> <a-divider type='vertical' /> <a-divider type="vertical" /> <a-dropdown> <a class="ant-dropdown-link">æ´å¤ <a-icon type="down" /></a> <a-menu slot="overlay"> <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-popconfirm title='ç¡®å®å é¤å?' @confirm='() => handleDelete(record.id)'> <a>å é¤</a> </a-popconfirm> </a-menu-item> </a-menu> </a-dropdown> </template> <template v-else> <a href='javascript:;' @click='handleDetail(record)'>详æ </a> </template> </span> </a-table> @@ -104,122 +117,156 @@ <!-- tableåºå-end --> <!-- 表ååºå --> <eamEquipmentScrap-modal ref="modalForm" @ok="modalFormOk"></eamEquipmentScrap-modal> <eamEquipmentScrap-modal ref='modalForm' @ok='modalFormOk'></eamEquipmentScrap-modal> </a-card> </template> <script> import '@/assets/less/TableExpand.less' import EamEquipmentScrapModal from './modules/EamEquipmentScrapModal' import { JeecgListMixin } from '@/mixins/JeecgListMixin' import '@/assets/less/TableExpand.less' import EamEquipmentScrapModal from './modules/EamEquipmentScrapModal' import { JeecgListMixin } from '@/mixins/JeecgListMixin' import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue' import { getAction } from '@api/manage' export default { name: "EamEquipmentScrapList", mixins:[JeecgListMixin], components: { EamEquipmentScrapModal }, 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: 'delFlag' }, { title: 'åæ®å·', align:"center", dataIndex: 'code' }, { title: '设å¤ID', align:"center", dataIndex: 'equipmentId' }, { title: '转让/æ¥åº', align:"center", dataIndex: 'scrapType' }, { title: 'ç³è¯·äºº', align:"center", dataIndex: 'reportUser' }, { title: 'å¤ç½®æ¶é´', align:"center", dataIndex: 'scrapTime' }, { title: 'å¤ç½®çç±', align:"center", dataIndex: 'scrapReason' }, { title: 'å¤ç½®éé¢', align:"center", dataIndex: 'scrapAmount' }, { title: 'å®¡æ ¸äºº', align:"center", dataIndex: 'approvalUser' }, { title: 'å®¡æ ¸æè§', align:"center", dataIndex: 'approvalComment' }, { title: 'å®¡æ ¸æ¶é´', align:"center", dataIndex: 'approvalTime' }, { title: '夿³¨', align:"center", dataIndex: 'remark' }, { title: 'æä½', dataIndex: 'action', align:"center", scopedSlots: { customRender: 'action' }, export default { name: 'EamEquipmentScrapList', mixins: [JeecgListMixin], components: { EamEquipmentScrapModal, LxSearchEquipmentSelect }, data() { return { description: 'è®¾å¤æ¥åº(转让)管ç页é¢', // 表头 columns: [ { title: '#', dataIndex: '', key: 'rowIndex', width: 60, align: 'center', customRender: function(t, r, index) { return parseInt(index) + 1 } ], url: { list: "/eam/eamEquipmentScrap/list", delete: "/eam/eamEquipmentScrap/delete", deleteBatch: "/eam/eamEquipmentScrap/deleteBatch", exportXlsUrl: "eam/eamEquipmentScrap/exportXls", importExcelUrl: "eam/eamEquipmentScrap/importExcel", }, }, { title: 'åæ®å·', align: 'center', dataIndex: 'code' }, { title: '设å¤ç¼å·', align: 'center', dataIndex: 'equipmentCode' }, { title: '设å¤åç§°', align: 'center', dataIndex: 'equipmentName' }, { title: '转让/æ¥åº', align: 'center', dataIndex: 'scrapType_dictText' }, { title: 'ç³è¯·äºº', align: 'center', dataIndex: 'reportUser_dictText' }, { title: 'å¤ç½®æ¶é´', align: 'center', dataIndex: 'scrapTime' }, { title: 'å¤ç½®çç±', align: 'center', dataIndex: 'scrapReason' }, { title: 'å¤ç½®éé¢', align: 'center', dataIndex: 'scrapAmount' }, { title: 'å¤ç½®ç¶æ', align: 'center', dataIndex: 'scrapStatus_dictText' }, { title: 'å®¡æ ¸äºº', align: 'center', dataIndex: 'approvalUser_dictText' }, { title: 'å®¡æ ¸æè§', align: 'center', dataIndex: 'approvalComment' }, { title: 'å®¡æ ¸æ¶é´', align: 'center', dataIndex: 'approvalTime' }, { title: '夿³¨', align: 'center', dataIndex: 'remark' }, { title: 'æä½', dataIndex: 'action', align: 'center', fixed: 'right', width: 150, scopedSlots: { customRender: 'action' } } ], url: { list: '/eam/eamEquipmentScrap/list', delete: '/eam/eamEquipmentScrap/delete', deleteBatch: '/eam/eamEquipmentScrap/deleteBatch', submit: '/eam/eamEquipmentScrap/submit' } } }, computed: { importExcelUrl: function(){ return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; importExcelUrl: function() { return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}` } }, methods: { methods: { handleSubmit(id) { if (!this.url.submit) { this.$message.error('请设置url.submit屿§!') return } let that = this getAction(that.url.submit, { id: id }).then((res) => { if (res.success) { //éæ°è®¡ç®å页é®é¢ that.reCalculatePage(1) // that.$message.success(res.message); that.$notification.success({ message: 'æ¶æ¯', description: res.message }) that.loadData() } else { // that.$message.warning(res.message); that.$notification.warning({ message: 'æ¶æ¯', description: res.message }) } }) } } } </script> <style scoped> @import '~@assets/less/common.less'; @import '~@assets/less/common.less'; </style> src/views/eam/dispose/modules/EamEquipmentScrapModal.vue
@@ -1,53 +1,39 @@ <template> <j-modal :title="title" :width="800" :visible="visible" :confirmLoading='confirmLoading' :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" :confirmLoading="confirmLoading" :title='title' :visible='visible' :width='800' cancelText='å ³é' switchFullscreen @ok="handleOk" @cancel="handleCancel" cancelText="å ³é"> @cancel='handleCancel' @ok='handleOk'> <a-spin :spinning="confirmLoading"> <a-form-model ref="form" :model="model" :rules="validatorRules"> <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="delFlag" label="å 餿 è®°"> <a-input-number v-model="model.delFlag"/> <a-spin :spinning='confirmLoading'> <a-form-model ref='form' :model='model' :rules='validatorRules'> <a-form-model-item :labelCol='labelCol' :wrapperCol='wrapperCol' label='åæ®å·' prop='code'> <a-input v-model='model.code' disabled placeholder='ç¼ç ç³»ç»èªå¨çæ' /> </a-form-model-item> <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="code" label="åæ®å·"> <a-input placeholder="请è¾å ¥åæ®å·" v-model="model.code" /> <a-form-model-item :labelCol='labelCol' :wrapperCol='wrapperCol' label='è°åºè®¾å¤' prop='equipmentId'> <lx-search-equipment-select v-model='model.equipmentId' :disabled='disableSubmit' placeholder='请è¾å ¥è®¾å¤ç¼å·æåç§°æç´¢'></lx-search-equipment-select> </a-form-model-item> <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentId" label="设å¤ID"> <a-input placeholder="请è¾å ¥è®¾å¤ID" v-model="model.equipmentId" /> <a-form-model-item :labelCol='labelCol' :wrapperCol='wrapperCol' label='å¤çç±»å' prop='scrapType'> <j-dict-select-tag v-model='model.scrapType' :disabled='disableSubmit || initialAcceptanceDisable' dictCode='scrap_sell' placeholder='è¯·éæ©å¤çç±»å' type='radio' /> </a-form-model-item> <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="scrapType" label="转让/æ¥åº"> <a-input placeholder="请è¾å ¥è½¬è®©/æ¥åº" v-model="model.scrapType" /> <a-form-model-item :labelCol='labelCol' :wrapperCol='wrapperCol' label='å¤ç½®çç±' prop='scrapReason'> <a-input v-model='model.scrapReason' placeholder='请è¾å ¥å¤ç½®çç±' /> </a-form-model-item> <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="reportUser" label="ç³è¯·äºº"> <a-input placeholder="请è¾å ¥ç³è¯·äºº" v-model="model.reportUser" /> </a-form-model-item> <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="scrapTime" label="å¤ç½®æ¶é´"> <a-input placeholder="请è¾å ¥å¤ç½®æ¶é´" v-model="model.scrapTime" /> </a-form-model-item> <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="scrapReason" label="å¤ç½®çç±"> <a-input placeholder="请è¾å ¥å¤ç½®çç±" v-model="model.scrapReason" /> </a-form-model-item> <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="scrapAmount" label="å¤ç½®éé¢"> <a-input placeholder="请è¾å ¥å¤ç½®éé¢" v-model="model.scrapAmount" /> </a-form-model-item> <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="approvalUser" label="å®¡æ ¸äºº"> <a-input placeholder="请è¾å ¥å®¡æ ¸äºº" v-model="model.approvalUser" /> </a-form-model-item> <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="approvalComment" label="å®¡æ ¸æè§"> <a-input placeholder="请è¾å ¥å®¡æ ¸æè§" v-model="model.approvalComment" /> </a-form-model-item> <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="approvalTime" label="å®¡æ ¸æ¶é´"> <a-input placeholder="请è¾å ¥å®¡æ ¸æ¶é´" v-model="model.approvalTime" /> </a-form-model-item> <a-form-model-item :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remark" label="夿³¨"> <a-input placeholder="请è¾å ¥å¤æ³¨" v-model="model.remark" /> <div v-if='model.scrapType == 2'> <a-form-model-item :labelCol='labelCol' :wrapperCol='wrapperCol' label='å¤ç½®éé¢' prop='scrapAmount'> <a-input v-model='model.scrapAmount' placeholder='请è¾å ¥å¤ç½®éé¢' /> </a-form-model-item> </div> <a-form-model-item :labelCol='labelCol' :wrapperCol='wrapperCol' label='夿³¨' prop='remark'> <a-textarea v-model='model.remark' :disabled='disableSubmit' placeholder='请è¾å ¥å¤æ³¨' /> </a-form-model-item> </a-form-model> @@ -56,90 +42,104 @@ </template> <script> import { httpAction } from '@/api/manage' import moment from "moment" import { httpAction } from '@/api/manage' import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue' export default { name: "EamEquipmentScrapModal", data () { return { title:"æä½", visible: false, model: {}, labelCol: { xs: { span: 24 }, sm: { span: 5 }, }, wrapperCol: { xs: { span: 24 }, sm: { span: 16 }, }, confirmLoading: false, validatorRules:{ }, url: { add: "/eam/eamEquipmentScrap/add", edit: "/eam/eamEquipmentScrap/edit", }, export default { name: 'EamEquipmentScrapModal', components: { LxSearchEquipmentSelect }, data() { return { title: 'æä½', visible: false, model: {}, labelCol: { xs: { span: 24 }, sm: { span: 5 } }, wrapperCol: { xs: { span: 24 }, sm: { span: 16 } }, confirmLoading: false, validatorRules: { scrapReason: [ { required: true, message: '请è¾å ¥å¤ç½®åå ï¼' } ], equipmentId: [ { required: true, message: 'è¯·éæ©è®¾å¤ï¼' } ], transferReason: [ { required: true, message: '请è¾å ¥åå¨åå ï¼' } ], scrapType: [ { required: true, message: 'è¯·éæ©ç±»åï¼' } ] }, url: { add: '/eam/eamEquipmentScrap/add', edit: '/eam/eamEquipmentScrap/edit' } }, created () { }, methods: { add () { //åå§åé»è®¤å¼ this.edit({}); }, 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() }, } }, created() { }, methods: { add() { //åå§åé»è®¤å¼ this.edit({}) }, 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 lang='less' scoped> </style> src/views/flowable/workflow/FlowTodo.vue
@@ -4,15 +4,15 @@ Date: 2025-02-27 --> <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="4" :lg="6" :md="8" :sm="24"> <a-form-item label="æµç¨åç±»"> <j-dict-select-tag placeholder="è¯·éæ©æµç¨åç±»" v-model="queryParam.category" dictCode="flow_type"></j-dict-select-tag> <div class='table-page-search-wrapper'> <a-form layout='inline' @keyup.enter.native='searchQuery'> <a-row :gutter='24'> <a-col :lg='6' :md='8' :sm='24' :xl='4'> <a-form-item label='æµç¨åç±»'> <j-dict-select-tag v-model='queryParam.category' dictCode='flow_type' placeholder='è¯·éæ©æµç¨åç±»'></j-dict-select-tag> </a-form-item> </a-col> <!--<a-col :xl="4" :lg="6" :md="8" :sm="24">--> @@ -20,35 +20,35 @@ <!--<a-input placeholder="请è¾å ¥æµç¨åç§°" v-model="queryParam.flowName"></a-input>--> <!--</a-form-item>--> <!--</a-col>--> <a-col :xl="4" :lg="6" :md="8" :sm="24"> <a-form-item label="å½åèç¹"> <a-input placeholder="请è¾å ¥å½åèç¹ç²¾ç¡®æ¥è¯¢" v-model="queryParam.name"></a-input> <a-col :lg='6' :md='8' :sm='24' :xl='4'> <a-form-item label='å½åèç¹'> <a-input v-model='queryParam.name' placeholder='请è¾å ¥å½åèç¹ç²¾ç¡®æ¥è¯¢'></a-input> </a-form-item> </a-col> <a-col :xl="4" :lg="6" :md="8" :sm="24"> <a-form-item label="ç®è¦æè¿°"> <a-input placeholder="请è¾å ¥ç®è¦æè¿°" v-model="queryParam.title"></a-input> <a-col :lg='6' :md='8' :sm='24' :xl='4'> <a-form-item label='ç®è¦æè¿°'> <a-input v-model='queryParam.title' placeholder='请è¾å ¥ç®è¦æè¿°'></a-input> </a-form-item> </a-col> <template v-if="toggleSearchStatus"> <a-col :xl="8" :lg="8" :md="12" :sm="24"> <a-form-item label="任塿¶é´èå´"> <j-date :show-time="false" date-format="YYYY-MM-DD HH:mm:ss" placeholder="è¯·éæ©å¼å§æ¶é´" class="query-group-cust" v-model="queryParam.startTime"></j-date> <span class="query-group-split-cust"></span> <j-date :show-time="false" date-format="YYYY-MM-DD HH:mm:ss" placeholder="è¯·éæ©ç»ææ¶é´" class="query-group-cust" v-model="queryParam.endTime"></j-date> <template v-if='toggleSearchStatus'> <a-col :lg='8' :md='12' :sm='24' :xl='8'> <a-form-item label='任塿¶é´èå´'> <j-date v-model='queryParam.startTime' :show-time='false' class='query-group-cust' date-format='YYYY-MM-DD HH:mm:ss' placeholder='è¯·éæ©å¼å§æ¶é´'></j-date> <span class='query-group-split-cust'></span> <j-date v-model='queryParam.endTime' :show-time='false' class='query-group-cust' date-format='YYYY-MM-DD HH:mm:ss' placeholder='è¯·éæ©ç»ææ¶é´'></j-date> </a-form-item> </a-col> </template> <a-col :xl="4" :lg="6" :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 @click="searchReset" icon="reload" style="margin-left: 8px">éç½®</a-button> <a @click="handleToggleSearch" style="margin-left: 8px"> <a-col :lg='6' :md='8' :sm='24' :xl='4'> <span class='table-page-search-submitButtons' style='float: left;overflow: hidden;'> <a-button icon='search' type='primary' @click='searchQuery'>æ¥è¯¢</a-button> <a-button icon='reload' style='margin-left: 8px' @click='searchReset'>éç½®</a-button> <a style='margin-left: 8px' @click='handleToggleSearch'> {{ toggleSearchStatus ? 'æ¶èµ·' : 'å±å¼' }} <a-icon :type="toggleSearchStatus ? 'up' : 'down'" /> </a> @@ -60,85 +60,87 @@ <!-- æ¥è¯¢åºå-END --> <!-- æä½æé®åºå --> <div class="table-operator"> <a-dropdown v-if="selectedRowKeys.length > 0 "> <a-menu slot="overlay"> <a-menu-item key="1" @click="batchHandle"> <a-icon type="delete" /> <div class='table-operator'> <a-dropdown v-if='selectedRowKeys.length > 0 '> <a-menu slot='overlay'> <a-menu-item key='1' @click='batchHandle'> <a-icon type='delete' /> æ¹éå¤ç </a-menu-item> </a-menu> <a-button style="margin-left: 8px"> æ¹éæä½ <a-icon type="down" /> <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">{{ <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> <a style='margin-left: 24px' @click='onClearSelected'>æ¸ ç©º</a> </div> <a-table ref="table" ref='table' :columns='columns' :dataSource='dataSource' :loading='loading' :pagination='ipagination' :rowSelection='{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}' :scroll='{x:getTableColumnsTotalWidth,y:465}' bordered size="middle" rowKey="id" :scroll="{x:getTableColumnsTotalWidth,y:465}" :columns="columns" :dataSource="dataSource" :pagination="ipagination" :loading="loading" :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" @change="handleTableChange"> rowKey='id' size='middle' @change='handleTableChange'> <span slot="action" slot-scope="text, record"> <a @click="handelDetail(record,text)">æ§è¡/审æ¹</a> <span slot='action' slot-scope='text, record'> <a @click='handelDetail(record,text)'>æ§è¡/审æ¹</a> </span> </a-table> </div> <AssignFileStreamHandle ref="modalFormApproval" :selectShenpiData="selectShenpiData" @searchReset="searchReset"></AssignFileStreamHandle> <DispatchFileHandle ref="modalFormDispatchFileXq" :selectShenpiData="selectDispatchFileXqData" @searchReset="searchReset"></DispatchFileHandle> <DispatchFileBachHandleStyle ref="modalFormDispatchFileBatch" @searchReset="searchReset" @ok="modalFormOk"></DispatchFileBachHandleStyle> <AssignFileStreamHandle ref='modalFormApproval' :selectShenpiData='selectShenpiData' @searchReset='searchReset'></AssignFileStreamHandle> <DispatchFileHandle ref='modalFormDispatchFileXq' :selectShenpiData='selectDispatchFileXqData' @searchReset='searchReset'></DispatchFileHandle> <DispatchFileBachHandleStyle ref='modalFormDispatchFileBatch' @ok='modalFormOk' @searchReset='searchReset'></DispatchFileBachHandleStyle> <!--å个æµç¨å¤ç--> <InspectionOrderHandle ref="modalFormInspectionOrder" :selectShenpiData="selectInspectionOrderData" @searchReset="searchReset"></InspectionOrderHandle> <week-maintenance-approval-modal ref="weekMaintenanceApprovalModal" :selectShenpiData="selectWeekMaintenanceData" @searchReset="searchReset"></week-maintenance-approval-modal> <repair-order-approval-modal ref="repairOrderApprovalModal" @searchReset="searchReset" :selectShenpiData="selectRepairOrderData"></repair-order-approval-modal> <out-bound-order-handle ref="outBoundOrderHandle" :selectShenpiData="selectOutBoundOrderData" @searchReset="searchReset"></out-bound-order-handle> <stocktaking-bound-handle ref="stocktakingBoundHandle" :selectShenpiData="selectStocktakingBoundOrderData" @searchReset="searchReset"></stocktaking-bound-handle> <InspectionOrderHandle ref='modalFormInspectionOrder' :selectShenpiData='selectInspectionOrderData' @searchReset='searchReset'></InspectionOrderHandle> <week-maintenance-approval-modal ref='weekMaintenanceApprovalModal' :selectShenpiData='selectWeekMaintenanceData' @searchReset='searchReset'></week-maintenance-approval-modal> <repair-order-approval-modal ref='repairOrderApprovalModal' :selectShenpiData='selectRepairOrderData' @searchReset='searchReset'></repair-order-approval-modal> <out-bound-order-handle ref='outBoundOrderHandle' :selectShenpiData='selectOutBoundOrderData' @searchReset='searchReset'></out-bound-order-handle> <stocktaking-bound-handle ref='stocktakingBoundHandle' :selectShenpiData='selectStocktakingBoundOrderData' @searchReset='searchReset'></stocktaking-bound-handle> <loss-bound-handle ref="lossBoundHandle" :selectShenpiData="selectLossBoundOrderData" @searchReset="searchReset"></loss-bound-handle> <loss-bound-handle ref='lossBoundHandle' :selectShenpiData='selectLossBoundOrderData' @searchReset='searchReset'></loss-bound-handle> <!--æ¹éå¤ç--> <inspection-order-batch-handle ref="inspectionOrderBatchHandleRef" @searchReset="searchReset" :taskList="selectionRows" /> <inspection-order-batch-handle ref='inspectionOrderBatchHandleRef' :taskList='selectionRows' @searchReset='searchReset' /> <week-maintenance-batch-approval-modal ref="weenMaintenanceBatchApprovalModalRef" @searchReset="searchReset" :taskList="selectionRows" /> <equipment-lean-out-approval-modal ref="equipmentLeanOutApprovalModelRef" @searchReset="searchReset" /> <week-maintenance-batch-approval-modal ref='weenMaintenanceBatchApprovalModalRef' :taskList='selectionRows' @searchReset='searchReset' /> <equipment-lean-out-approval-modal ref='equipmentLeanOutApprovalModelRef' @searchReset='searchReset' /> <second-maintenance-approval-modal ref="secondMaintenanceApprovalModal" :selectShenpiData="selectSecondMaintenanceData" @searchReset="searchReset"></second-maintenance-approval-modal> <third-maintenance-approval-modal ref="thirdMaintenanceApprovalModal" :selectShenpiData="selectThirdMaintenanceData" @searchReset="searchReset"></third-maintenance-approval-modal> <equipment-seal-up-approval-modal ref="equipmentSealUpApprovalModelRef" @searchReset="searchReset" /> <inbound-order-handle ref="inboundOrderApprovalModal" :selectInboundOrderData="selectInboundOrderData" @searchReset="searchReset"></inbound-order-handle> <equipment-transfer-approval-modal ref="equipmentTransferApprovalModelRef" @searchReset="searchReset" /> <second-maintenance-approval-modal ref='secondMaintenanceApprovalModal' :selectShenpiData='selectSecondMaintenanceData' @searchReset='searchReset'></second-maintenance-approval-modal> <third-maintenance-approval-modal ref='thirdMaintenanceApprovalModal' :selectShenpiData='selectThirdMaintenanceData' @searchReset='searchReset'></third-maintenance-approval-modal> <equipment-seal-up-approval-modal ref='equipmentSealUpApprovalModelRef' @searchReset='searchReset' /> <inbound-order-handle ref='inboundOrderApprovalModal' :selectInboundOrderData='selectInboundOrderData' @searchReset='searchReset'></inbound-order-handle> <equipment-transfer-approval-modal ref='equipmentTransferApprovalModelRef' @searchReset='searchReset' /> <equipment-scrap-approval-modal ref='equipmentScrapApprovalModelRef' @searchReset='searchReset' /> </a-card> </template> @@ -160,10 +162,12 @@ import DispatchFileBachHandleStyle from '@views/flowable/workflow/dispatchFile/DispatchFileBachHandleStyle#Drawer.vue' import OutBoundOrderHandle from '@views/flowable/workflow/outBoundOrder/OutBoundOrderHandle.vue' import EquipmentLeanOutApprovalModal from '@views/flowable/workflow/leanOut/EquipmentLeanOutApprovalModal.vue' import SecondMaintenanceApprovalModal from '@views/flowable/workflow/secondMaintenance/SecondMaintenanceApprovalModal.vue' import SecondMaintenanceApprovalModal from '@views/flowable/workflow/secondMaintenance/SecondMaintenanceApprovalModal.vue' import ThirdMaintenanceApprovalModal from '@views/flowable/workflow/thirdMaintenance/ThirdMaintenanceApprovalModal.vue' import EquipmentSealUpApprovalModal from '@views/flowable/workflow/sealUp/EquipmentSealUpApprovalModal.vue' import EquipmentTransferApprovalModal from '@views/flowable/workflow/transfer/EquipmentTransferApprovalModal.vue' import EquipmentScrapApprovalModal from '@views/flowable/workflow/scrap/EquipmentScrapApprovalModal.vue' import stocktakingBoundHandle from '@views/flowable/workflow/stocktakingBound/stocktakingBoundHandle.vue' import lossBoundHandle from '@views/flowable/workflow/lossBound/lossBoundHandle.vue' import InboundOrderHandle from '@views/flowable/workflow/inboundOrder/InboundOrderHandle.vue' @@ -189,7 +193,8 @@ OutBoundOrderHandle, EquipmentSealUpApprovalModal, InboundOrderHandle, EquipmentTransferApprovalModal EquipmentTransferApprovalModal, EquipmentScrapApprovalModal }, data() { return { @@ -274,7 +279,7 @@ selectOutBoundOrderData: {}, selectLossBoundOrderData: {}, selectStocktakingBoundOrderData: {}, selectInboundOrderData:{}, selectInboundOrderData: {}, //ä¸å¡ä¿¡æ¯ID dataId: undefined } @@ -372,6 +377,9 @@ break case 'equipment_transfer': this.handleEquipmentTransfer(item) break case 'equipment_scrap': this.handleEquipmentScrap(item) break default: alert('没æ¾å°è¯¥æµç¨') @@ -511,10 +519,10 @@ }, handleToolInStorage(item) { if (item && item.dataId) { this.selectInboundOrderData = Object.assign({}, item) this.$refs.inboundOrderApprovalModal.auditVisible = true this.$refs.inboundOrderApprovalModal.clearTableSource() this.$refs.inboundOrderApprovalModal.getAllApproveData(item) this.selectInboundOrderData = Object.assign({}, item) this.$refs.inboundOrderApprovalModal.auditVisible = true this.$refs.inboundOrderApprovalModal.clearTableSource() this.$refs.inboundOrderApprovalModal.getAllApproveData(item) } }, handleEquipmentTransfer(item) { @@ -523,6 +531,12 @@ this.$refs.equipmentTransferApprovalModelRef.handleDetail(item) this.$refs.equipmentTransferApprovalModelRef.disableSubmit = false }, handleEquipmentScrap(item) { this.$refs.equipmentScrapApprovalModelRef.visible = true this.$refs.equipmentScrapApprovalModelRef.title = item.name this.$refs.equipmentScrapApprovalModelRef.handleDetail(item) this.$refs.equipmentScrapApprovalModelRef.disableSubmit = false } } } </script> src/views/flowable/workflow/scrap/EquipmentScrapApprovalModal.vue
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,223 @@ <template> <j-modal :confirmLoading='confirmLoading' :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" :title='title' :visible='visible' :width='800' cancelText='å ³é' centered switchFullscreen @cancel='handleCancel' @ok='handleOk'> <a-spin :spinning='spinning'> <a-form-model ref='form' :model='model' :rules='validatorRules'> <a-divider orientation='center' style='font-size: large;font-style: italic;color: #66aeed;'> æ¥åºï¼è½¬è®©ï¼ä¿¡æ¯ </a-divider> <a-row :gutter='24'> <a-col :span='12'> <a-form-model-item :labelCol='labelCol' :wrapperCol='wrapperCol' label='åæ®å·' prop='code'> <a-input v-model='model.code' disabled /> </a-form-model-item> </a-col> <a-col :span='12'> <a-form-model-item :labelCol='labelCol' :wrapperCol='wrapperCol' label='设å¤ç¼ç ' prop='equipmentId'> <lx-search-equipment-select v-model='model.equipmentId' disabled placeholder='请è¾å ¥è®¾å¤ç¼å·æåç§°æç´¢'></lx-search-equipment-select> </a-form-model-item> </a-col> </a-row> <a-row :gutter='24'> <a-col :span='12'> <a-form-model-item :labelCol='labelCol' :wrapperCol='wrapperCol' label='ç³è¯·äºº' prop='reportUser_dictText'> <a-input v-model='model.reportUser_dictText' disabled /> </a-form-model-item> </a-col> <a-col :span='12'> <a-form-model-item :labelCol='labelCol' :wrapperCol='wrapperCol' label='å¤ç½®åå ' prop='scrapReason'> <a-input v-model='model.scrapReason' disabled /> </a-form-model-item> </a-col> </a-row> <a-row :gutter='24'> <a-col :span='12'> <a-form-model-item :labelCol='labelCol' :wrapperCol='wrapperCol' label='夿³¨' prop='remark'> <a-textarea v-model='model.remark' disabled /> </a-form-model-item> </a-col> </a-row> <div v-if='approvalDisable'> <a-divider orientation='center' style='font-size: large;font-style: italic;color: #66aeed;'> 管ç忥åºï¼è½¬è®©ï¼å®¡æ ¸ </a-divider> <a-row :gutter='24'> <a-col :span='12'> <a-form-model-item :labelCol='labelCol' :wrapperCol='wrapperCol' label='审æ¹ç±»å' prop='approvalDealType'> <j-dict-select-tag v-model='model.approvalDealType' :disabled='disableSubmit || initialAcceptanceDisable' dictCode='approved_rejected' placeholder='è¯·éæ©å¤çç±»å' type='radio' /> </a-form-model-item> </a-col> <a-col :span='12'> <a-form-model-item :labelCol='labelCol' :wrapperCol='wrapperCol' label='å®¡æ¹æè§' prop='approvalComment'> <a-textarea v-model='model.approvalComment' :disabled='disableSubmit || returnDisable' placeholder='请è¾å ¥æè§' /> </a-form-model-item> </a-col> </a-row> </div> </a-form-model> </a-spin> </j-modal> </template> <script> import { getAction, httpAction } from '@/api/manage' import LxSearchEquipmentSelect from '@views/eam/equipment/modules/LxSearchEquipmentSelect.vue' export default { name: 'EquipmentScrapApprovalModal', components: { LxSearchEquipmentSelect }, props: { selectShenpiData: { type: Object } }, data() { return { title: 'æä½', visible: false, editable: false, model: {}, treeData: [], labelCol: { xs: { span: 24 }, sm: { span: 5 } }, wrapperCol: { xs: { span: 24 }, sm: { span: 18 } }, labelColLong: { xs: { span: 24 }, sm: { span: 2 } }, wrapperColLong: { xs: { span: 24 }, sm: { span: 21 } }, confirmLoading: false, spinning: false, imageSrc: null, validatorRules: { approvalDealType: [ { required: true, message: 'è¯·éæ©éè¿æé©³å!' } ], unsealApprovalDealType: [ { required: true, message: 'è¯·éæ©éè¿æé©³å!' } ], approvalComment: [ { required: true, message: '请è¾å ¥å®¡æ¹æè§!' } ], unsealApprovalComment: [ { required: true, message: '请è¾å ¥å®¡æ¹æè§!' } ], returnComment: [ { required: true, message: '请è¾å ¥å½è¿å¤æ³¨!' } ], confirmComment: [ { required: true, message: '请è¾å ¥ç¡®è®¤æè§!' } ] }, url: { queryById: '/eam/eamEquipmentScrap/queryById', approval: '/eam/eamEquipmentScrap/approval', loadProductionOptions: '/mdc/mdcProduction/loadProductionTreeOptions' }, disableSubmit: false } }, created() { this.loadAllProductionTree() }, computed: { approvalDisable: function() { return ['WAIT_CHECK'].includes(this.model.scrapStatus) } }, methods: { async handleDetail(item) { this.initParams() this.model = {} let res = await getAction(this.url.queryById, { id: item.dataId }) this.model = Object.assign({}, res.result) this.model.dataId = item.dataId this.model.taskId = item.id this.model.userId = item.assignee this.model.instanceId = item.procInstId this.model.values = item.variables this.spinning = false }, recordDetail(record) { console.log('record', record) this.initParams() this.model = Object.assign({}, record) }, initParams() { this.visible = true this.spinning = true }, async handleOk() { const that = this // 触å表åéªè¯ this.$refs.form.validate(valid => { if (valid) { that.confirmLoading = that.spinning = true let httpurl = this.url.approval let method = 'put' httpAction(httpurl, this.model, method).then((res) => { if (res.success) { that.$message.success(res.message) that.$emit('searchReset') that.close() } else { that.$message.warning(res.message) } }).finally(() => { that.confirmLoading = that.spinning = false }) } else { return false } }) }, handleCancel() { this.close() }, close() { this.$emit('close') this.visible = false this.$refs.form.clearValidate() }, loadAllProductionTree() { //å 载车é´éæ©æ getAction(this.url.loadProductionOptions).then(res => { if (res.success) { this.treeData = [...res.result] } else { that.$message.warning(res.message) } }) } } } </script> <style lang='less' scoped> </style>