From 6b9795ba4e3e36347b1d7dc71051768286af874a Mon Sep 17 00:00:00 2001 From: “linengliang” <vanSuperEnergy@163.com> Date: 星期二, 14 十一月 2023 17:41:49 +0800 Subject: [PATCH] 质量隐患确认,故障单 --- src/views/eam/QuanlityConfirmList.vue | 313 ++++++++++ src/views/eam/modules/malfunctionRepair/EquipmentList.vue | 54 + src/views/eam/modules/QuanlityConfirmForm.vue | 158 +++++ src/views/eam/modules/FaultInfoForm.vue | 473 ++++++++++++++++ src/views/eam/modules/QuanlityConfirmModal.vue | 60 ++ src/views/eam/FaultInfoList.vue | 447 +++++++++++++++ src/views/eam/modules/FaultInfoModal.vue | 61 ++ src/views/eam/MalfunctionRepair.vue | 5 src/views/eam/modules/malfunctionRepair/MalfunctionRepaireModal.vue | 125 ++- 9 files changed, 1,645 insertions(+), 51 deletions(-) diff --git a/src/views/eam/FaultInfoList.vue b/src/views/eam/FaultInfoList.vue new file mode 100644 index 0000000..28ac680 --- /dev/null +++ b/src/views/eam/FaultInfoList.vue @@ -0,0 +1,447 @@ +<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.num' + ></j-input> + </a-form-item> + </a-col> + <a-col + :xl='6' + :lg='7' + :md='8' + :sm='24' + > + <a-form-item label='鏄惁宸茬‘璁ょ粨鏋�'> + <j-dict-select-tag + allow-clear + placeholder="" + :triggerChange="true" + dictCode="is_product" + v-model='queryParam.isConfirm' + /> + </a-form-item> + </a-col> + </a-row> + </a-form> + </div> + <!-- 鏌ヨ鍖哄煙-END --> + + <!-- 鎿嶄綔鎸夐挳鍖哄煙 --> + <div class="table-operator"> + <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-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> --> + <!-- 楂樼骇鏌ヨ鍖哄煙 --> + <!-- <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> + + <a-table + ref="table" + size="middle" + :scroll="{x:true}" + bordered + rowKey="id" + :columns="columns" + :dataSource="dataSource" + :pagination="ipagination" + :loading="loading" + :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" + class="j-table-force-nowrap" + @change="handleTableChange"> + + <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> + <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)"> + 涓嬭浇 + </a-button> + </template> + + <span slot="action" slot-scope="text, record"> + <a @click="handleEdit(record)" v-if="record.isConfirm!=='yes'">褰曞叆</a> + + <a-divider type="vertical" /> + <a @click="handleDetail(record)">璇︽儏</a> + <a-divider type="vertical" /> + <a-popconfirm + title="纭缁撴灉鍚庝笉鍙啀褰曞叆锛岀‘璁ゅ悧?" + @confirm="() => handleConfirm(record)" + > + <a v-if="record.isConfirm!=='yes'">纭</a> + </a-popconfirm> + </span> + + </a-table> + </div> + + <fault-info-modal ref="modalForm" @ok="modalFormOk"></fault-info-modal> + </a-card> +</template> + +<script> + + import '@/assets/less/TableExpand.less' + import { mixinDevice } from '@/utils/mixin' + import { JeecgListMixin } from '@/mixins/JeecgListMixin' + import FaultInfoModal from './modules/FaultInfoModal' +import { putAction } from '../../api/manage' + + export default { + name: 'FaultInfoList', + mixins:[JeecgListMixin, mixinDevice], + components: { + FaultInfoModal + }, + 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:'璐ㄩ噺闅愭偅纭鍗�', + align:"center", + dataIndex: 'quanlityId_dictText' + }, + { + title:'鐢熶骇鍗曚綅', + align:"center", + dataIndex: 'departId' + }, + { + title:'璁惧鍚嶇О', + align:"center", + dataIndex: 'equipName' + }, + { + title:'璁惧鍨嬪彿', + align:"center", + dataIndex: 'equipModel' + }, + { + title:'缁熶竴缂栧彿', + align:"center", + dataIndex: 'equipNum' + }, + { + title:'宸ュ尯', + align:"center", + dataIndex: 'area1' + }, + { + title:'鍗曞厓/宸ユ', + align:"center", + dataIndex: 'area2' + }, + { + title:'缁翠慨璐圭敤', + align:"center", + dataIndex: 'cost' + }, + { + title:'鎿嶄綔鑰�', + align:"center", + dataIndex: 'operator_dictText' + }, + { + title:'鍑虹敓骞存湀', + align:"center", + dataIndex: 'birthday' + }, + { + title:'宸ヤ綔鏃堕棿', + align:"center", + dataIndex: 'workStartTime' + }, + // { + // title:'鎿嶄綔鍛樻槸鍚︽湁鎿嶄綔璇�', + // align:"center", + // dataIndex: 'isCertificate' + // }, + // { + // title:'鏄惁鏂數閲嶅惎', + // align:"center", + // dataIndex: 'isOutage' + // }, + // { + // title:'鍔犲伐杩囩▼涓殑鍙樺姩鍥犵礌', + // align:"center", + // dataIndex: 'factor' + // }, + // { + // title:'鍏蜂綋鏇存敼鍐呭', + // align:"center", + // dataIndex: 'modifyContent' + // }, + // { + // title:'鍙戠敓浜嬫晠鏃惰澶囨墍鎵ц鐨勭▼搴�', + // align:"center", + // dataIndex: 'equipmentProcess' + // }, + // { + // title:'鍙戠敓浜嬫晠鏃剁殑鐜拌薄', + // align:"center", + // dataIndex: 'phenomenon' + // }, + // { + // title:'閲囧彇鎺柦1', + // align:"center", + // dataIndex: 'method1' + // }, + // { + // title:'閲囧彇鎺柦2', + // align:"center", + // dataIndex: 'method2' + // }, + // { + // title:'閲囧彇鎺柦3', + // align:"center", + // dataIndex: 'method3' + // }, + // { + // title:'浜嬫晠鎵�閫犳垚鐨勭粨鏋�', + // align:"center", + // dataIndex: 'result' + // }, + // { + // title:'寮�濮嬫鏌ユ椂闂�', + // align:"center", + // dataIndex: 'startCheckTime', + // customRender:function (text) { + // return !text?"":(text.length>10?text.substr(0,10):text) + // } + // }, + // { + // title:'鍙戠敓浜嬫晠鍚庤澶囩殑鐘舵��', + // align:"center", + // dataIndex: 'equipmentStatus' + // }, + // { + // title:'缁翠慨浜哄憳瀵逛簨鏁呯殑鍒嗘瀽', + // align:"center", + // dataIndex: 'anlysis' + // }, + // { + // title:'缁翠慨浜哄憳妫�鏌ョ粨鏋�', + // align:"center", + // dataIndex: 'checkResult' + // }, + // { + // title:'浜嬫晠鍘熷洜鍒嗘瀽杩囩▼涓墍閲囧彇鐨勭浉鍏宠涓�', + // align:"center", + // dataIndex: 'active' + // }, + // { + // title:'寤鸿閲囧彇鐨勬帾鏂藉強鏃堕棿鑺傜偣', + // align:"center", + // dataIndex: 'suggest' + // }, + // { + // title:'浜嬫晠鍙戠敓鍘熷洜鍒嗘瀽鐨勬牳瀵�', + // align:"center", + // dataIndex: 'judgment' + // }, + // { + // title:'涓嶅悓鐨勬剰瑙佸強鍒嗘瀽', + // align:"center", + // dataIndex: 'differentJudgment' + // }, + // { + // title:'鏁存敼鎺柦', + // align:"center", + // dataIndex: 'updateMethod' + // }, + // { + // title:'浜嬫晠缁撹', + // align:"center", + // dataIndex: 'finalResult' + // }, + // { + // title:'缁翠慨璐d换浜�', + // align:"center", + // dataIndex: 'engineer' + // }, + // { + // title:'鎶�鏈礋璐d汉', + // align:"center", + // dataIndex: 'mechanic' + // }, + // { + // title:'宸ラ暱', + // align:"center", + // dataIndex: 'workLeader' + // }, + // { + // title:'涓績涓讳换', + // align:"center", + // dataIndex: 'centerLeader' + // }, + // { + // title:'缁勯暱', + // align:"center", + // dataIndex: 'teamLeader' + // }, + // { + // title:'缁翠慨绔欑珯闀�', + // align:"center", + // dataIndex: 'repairLeader' + // }, + // { + // title:'绠$悊瀹や笟鍔$粡鐞�', + // align:"center", + // dataIndex: 'equipLeader' + // }, + // { + // title:'杩愯淇濋殰閮ㄤ富绠¢瀵�', + // align:"center", + // dataIndex: 'guaranteeLeader' + // }, + { + title: '鎿嶄綔', + dataIndex: 'action', + align:"center", + fixed:"right", + width:147, + scopedSlots: { customRender: 'action' } + } + ], + url: { + list: "/li/faultInfo/list", + delete: "/li/faultInfo/delete", + deleteBatch: "/li/faultInfo/deleteBatch", + exportXlsUrl: "/li/faultInfo/exportXls", + importExcelUrl: "li/faultInfo/importExcel", + confirm: "li/faultInfo/confirm" + + }, + dictOptions:{}, + superFieldList:[], + } + }, + created() { + this.getSuperFieldList(); + }, + computed: { + importExcelUrl: function(){ + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; + }, + }, + methods: { + initDictConfig(){ + }, + getSuperFieldList(){ + let fieldList=[]; + fieldList.push({type:'string',value:'num',text:'缂栫爜'}) + fieldList.push({type:'string',value:'qId',text:'璐ㄩ噺闅愭偅纭鍗旾D'}) + fieldList.push({type:'string',value:'cost',text:'缁翠慨璐圭敤'}) + fieldList.push({type:'string',value:'isCertificate',text:'鎿嶄綔鍛樻槸鍚︽湁鎿嶄綔璇�'}) + fieldList.push({type:'string',value:'isOutage',text:'鏄惁鏂數閲嶅惎'}) + fieldList.push({type:'string',value:'factor',text:'鍔犲伐杩囩▼涓殑鍙樺姩鍥犵礌'}) + fieldList.push({type:'string',value:'modifyContent',text:'鍏蜂綋鏇存敼鍐呭'}) + fieldList.push({type:'string',value:'equipmentProcess',text:'鍙戠敓浜嬫晠鏃惰澶囨墍鎵ц鐨勭▼搴�'}) + fieldList.push({type:'string',value:'phenomenon',text:'鍙戠敓浜嬫晠鏃剁殑鐜拌薄'}) + fieldList.push({type:'string',value:'method1',text:'閲囧彇鎺柦1'}) + fieldList.push({type:'string',value:'method2',text:'閲囧彇鎺柦2'}) + fieldList.push({type:'string',value:'method3',text:'閲囧彇鎺柦3'}) + fieldList.push({type:'string',value:'result',text:'浜嬫晠鎵�閫犳垚鐨勭粨鏋�'}) + fieldList.push({type:'date',value:'startCheckTime',text:'寮�濮嬫鏌ユ椂闂�'}) + fieldList.push({type:'string',value:'equipmentStatus',text:'鍙戠敓浜嬫晠鍚庤澶囩殑鐘舵��'}) + fieldList.push({type:'string',value:'anlysis',text:'缁翠慨浜哄憳瀵逛簨鏁呯殑鍒嗘瀽'}) + fieldList.push({type:'string',value:'checkResult',text:'缁翠慨浜哄憳妫�鏌ョ粨鏋�'}) + fieldList.push({type:'string',value:'active',text:'浜嬫晠鍘熷洜鍒嗘瀽杩囩▼涓墍閲囧彇鐨勭浉鍏宠涓�'}) + fieldList.push({type:'string',value:'suggest',text:'寤鸿閲囧彇鐨勬帾鏂藉強鏃堕棿鑺傜偣'}) + fieldList.push({type:'string',value:'judgment',text:'浜嬫晠鍙戠敓鍘熷洜鍒嗘瀽鐨勬牳瀵�'}) + fieldList.push({type:'string',value:'differentJudgment',text:'涓嶅悓鐨勬剰瑙佸強鍒嗘瀽'}) + fieldList.push({type:'string',value:'updateMethod',text:'鏁存敼鎺柦'}) + fieldList.push({type:'string',value:'finalResult',text:'浜嬫晠缁撹'}) + fieldList.push({type:'string',value:'operater',text:'鎿嶄綔鑰�'}) + fieldList.push({type:'string',value:'engineer',text:'缁翠慨璐d换浜�'}) + fieldList.push({type:'string',value:'mechanic',text:'鎶�鏈礋璐d汉'}) + fieldList.push({type:'string',value:'workLeader',text:'宸ラ暱'}) + fieldList.push({type:'string',value:'centerLeader',text:'涓績涓讳换'}) + fieldList.push({type:'string',value:'teamLeader',text:'缁勯暱'}) + fieldList.push({type:'string',value:'repairLeader',text:'缁翠慨绔欑珯闀�'}) + fieldList.push({type:'string',value:'equipLeader',text:'绠$悊瀹や笟鍔$粡鐞�'}) + fieldList.push({type:'string',value:'guaranteeLeader',text:'杩愯淇濋殰閮ㄤ富绠¢瀵�'}) + this.superFieldList = fieldList + }, + handleConfirm(record) { + putAction(this.url.confirm, record).then(res => { + if (res.result) { + this.$message.success('纭鎴愬姛'); + this.loadData(); + } else { + this.$message.error('纭鍑虹幇寮傚父') + } + }) + }, + } + } +</script> +<style scoped> + @import '~@assets/less/common.less'; +</style> \ No newline at end of file diff --git a/src/views/eam/MalfunctionRepair.vue b/src/views/eam/MalfunctionRepair.vue index 5227684..2fe7603 100644 --- a/src/views/eam/MalfunctionRepair.vue +++ b/src/views/eam/MalfunctionRepair.vue @@ -286,6 +286,11 @@ dataIndex: 'isStopName', }, { + title: '鏄惁鍦ㄥ姞宸ラ浂浠�', + align: "center", + dataIndex: 'errUda1_dictText', + }, + { title: '鍒涘缓浜�', align: "center", dataIndex: 'createBy' diff --git a/src/views/eam/QuanlityConfirmList.vue b/src/views/eam/QuanlityConfirmList.vue new file mode 100644 index 0000000..098dcff --- /dev/null +++ b/src/views/eam/QuanlityConfirmList.vue @@ -0,0 +1,313 @@ +<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.num' + ></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.reportNum' + ></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.equipmentNum' + ></j-input> + </a-form-item> + </a-col> + </a-row> + </a-form> + </div> + <!-- 鏌ヨ鍖哄煙-END --> + + <!-- 鎿嶄綔鎸夐挳鍖哄煙 --> + <div class="table-operator"> + <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-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> --> + <!-- 楂樼骇鏌ヨ鍖哄煙 --> + <!-- <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> + + <a-table + ref="table" + size="middle" + :scroll="{x:true}" + bordered + rowKey="id" + :columns="columns" + :dataSource="dataSource" + :pagination="ipagination" + :loading="loading" + :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" + class="j-table-force-nowrap" + @change="handleTableChange"> + + <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> + <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)"> + 涓嬭浇 + </a-button> + </template> + + <span slot="action" slot-scope="text, record"> + <a @click="handleEdit(record)" :disabled="record.isConfirm==='yes'">纭</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> + + <quanlity-confirm-modal ref="modalForm" @ok="modalFormOk"></quanlity-confirm-modal> + </a-card> +</template> + +<script> + + import '@/assets/less/TableExpand.less' + import { mixinDevice } from '@/utils/mixin' + import { JeecgListMixin } from '@/mixins/JeecgListMixin' + import QuanlityConfirmModal from './modules/QuanlityConfirmModal' + + export default { + name: 'QuanlityConfirmList', + mixins:[JeecgListMixin, mixinDevice], + components: { + QuanlityConfirmModal + }, + 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', + width:200 + }, + { + title:'鏁呴殰鎶ヤ慨鍗�', + align:"center", + dataIndex: 'reportNum', + width:200 + }, + { + title:'璁惧鍚嶇О', + align:"center", + dataIndex: 'equipmentName', + width:200 + }, + { + title:'璁惧鍨嬪彿', + align:"center", + dataIndex: 'equipmentModel', + width:200 + }, + { + title:'缁熶竴缂栧彿', + align:"center", + dataIndex: 'equipmentNum', + width:200 + }, + { + title:'鍔犲伐闆朵欢鍙�', + align:"center", + dataIndex: 'partNumber', + width:200 + }, + { + title:'鎵规鍙�', + align:"center", + dataIndex: 'batchNo', + width:200 + }, + { + title:'浠舵暟', + align:"center", + dataIndex: 'quantity', + width:100 + }, + { + title:'鎿嶄綔鍛�', + align:"center", + dataIndex: 'operator_dictText', + width:100 + }, + { + title:'鏄惁宸茬‘璁�', + align:"center", + dataIndex: 'isConfirm_dictText' + , + width:100 + }, + { + title:'纭棰嗗', + align:"center", + dataIndex: 'leader_dictText' + , + width:100 + }, + { + title:'棰嗗纭鏃堕棿', + align:"center", + dataIndex: 'confirmTime', + customRender:function (text) { + return !text?"":(text.length>10?text.substr(0,10):text) + }, + width:200 + }, + { + title:'浜у搧鎹熷け鎯呭喌', + align:"center", + dataIndex: 'condition', + width:100 + }, + { + title:'鎹熷け鎯呭喌鍒嗘瀽', + align:"center", + dataIndex: 'conditionAnalysis', + width:200 + }, + { + title: '鎿嶄綔', + dataIndex: 'action', + align:"center", + fixed:"right", + width:147, + scopedSlots: { customRender: 'action' } + } + ], + url: { + list: "/li/quanlityConfirm/list", + delete: "/li/quanlityConfirm/delete", + deleteBatch: "/li/quanlityConfirm/deleteBatch", + exportXlsUrl: "/li/quanlityConfirm/exportXls", + importExcelUrl: "li/quanlityConfirm/importExcel", + + }, + dictOptions:{}, + superFieldList:[], + } + }, + created() { + this.getSuperFieldList(); + }, + computed: { + importExcelUrl: function(){ + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; + }, + }, + methods: { + initDictConfig(){ + }, + getSuperFieldList(){ + let fieldList=[]; + fieldList.push({type:'string',value:'reportId',text:'鏁呴殰鎶ヤ慨鍗旾D'}) + fieldList.push({type:'string',value:'condition',text:'浜у搧鎹熷け鎯呭喌'}) + fieldList.push({type:'string',value:'conditionAnalysis',text:'鎹熷け鎯呭喌鍒嗘瀽'}) + fieldList.push({type:'string',value:'partNumber',text:'闆朵欢鍙�'}) + fieldList.push({type:'string',value:'batchNo',text:'鎵规鍙�'}) + fieldList.push({type:'int',value:'qunatity',text:'浠舵暟'}) + fieldList.push({type:'string',value:'leader',text:'纭棰嗗'}) + fieldList.push({type:'date',value:'confirmTime',text:'棰嗗纭鏃堕棿'}) + fieldList.push({type:'string',value:'isConfirm',text:'鏄惁宸茬‘璁�'}) + this.superFieldList = fieldList + } + } + } +</script> +<style scoped> + @import '~@assets/less/common.less'; +</style> \ No newline at end of file diff --git a/src/views/eam/modules/FaultInfoForm.vue b/src/views/eam/modules/FaultInfoForm.vue new file mode 100644 index 0000000..7f900ac --- /dev/null +++ b/src/views/eam/modules/FaultInfoForm.vue @@ -0,0 +1,473 @@ +<template> + <a-spin :spinning="confirmLoading"> + <j-form-container :disabled="formDisabled"> + <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail"> + <a-row> + <a-divider + orientation="center" + style="font-size: large;font-style: italic;color: #66aeed;" + > 琛ㄥご </a-divider> + <a-col :span="8"> + <a-form-model-item label="鐢熶骇鍗曚綅" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="num"> + <j-dict-select-tag + allow-clear + placeholder="鐢熶骇鍗曚綅" + :triggerChange="true" + dictCode="sys_depart,depart_name,id,del_flag='0'" + v-model="model.departId" + /> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="宸ュ尯" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="area1"> + <j-dict-select-tag + allow-clear + placeholder="宸ュ尯" + :triggerChange="true" + dictCode="mom_base_area,name,id,del_flag='0'" + v-model="model.area1" + /> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="鎿嶄綔鑰�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="operater"> + <j-dict-select-tag + allow-clear + placeholder="璇疯緭鍏ユ搷浣滆��" + :triggerChange="true" + dictCode="sys_user,realname,id,del_flag='0'" + v-model="model.operater" + /> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="璁惧鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="eName"> + <a-input v-model="model.equipName" placeholder="璁惧鍚嶇О" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="鍗曞厓/宸ユ" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="area2"> + <a-input v-model="model.area2" placeholder="鍗曞厓/宸ユ" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="鍑虹敓骞存湀" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="birthday"> + <j-date placeholder="鍑虹敓骞存湀" v-model="model.birthday" style="width: 100%" /> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="璁惧鍨嬪彿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="eModel"> + <a-input v-model="model.equipModel" placeholder="璇疯緭鍏ヨ澶囧瀷鍙�" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="浜嬫晠鍙戠敓鏃堕棿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="faultTime"> + <j-date placeholder="璇疯緭鍏ヤ簨鏁呭彂鐢熸椂闂�" v-model="model.faultTime" style="width: 100%" /> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="鎶�鏈瓑绾�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="level"> + <a-input v-model="model.level" placeholder="璇疯緭鍏ユ妧鏈瓑绾�" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="缁熶竴缂栧彿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="eNum"> + <a-input v-model="model.equipNum" placeholder="璇疯緭鍏ョ粺涓�缂栧彿" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="缁翠慨璐圭敤" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="cost"> + <a-input v-model="model.cost" placeholder="璇疯緭鍏ョ淮淇垂鐢�" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="宸ヤ綔鏃堕棿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workStartTime"> + <j-date placeholder="璇疯緭鍏ュ伐浣滄椂闂�" v-model="model.workStartTime" style="width: 100%" /> + </a-form-model-item> + </a-col> + <a-divider + orientation="center" + style="font-size: large;font-style: italic;color: #66aeed;" + > 鎿嶄綔鑰呭~鍐欎簨鏁呭彂鐢熺粡杩� </a-divider> + <a-col :span="8"> + <a-form-model-item label="鎿嶄綔鍛樻槸鍚︽湁鎿嶄綔璇�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="isCertificate"> + <j-dict-select-tag + allow-clear + placeholder="璇疯緭鍏ユ搷浣滃憳鏄惁鏈夋搷浣滆瘉" + :triggerChange="true" + dictCode="is_product" + v-model="model.isCertificate" + /> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="浜嬫晠鍙戠敓鍚庢槸鍚︽柇鐢甸噸鍚�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="isOutage"> + <j-dict-select-tag + allow-clear + placeholder="璇疯緭鍏ユ槸鍚︽柇鐢甸噸鍚�" + :triggerChange="true" + dictCode="is_product" + v-model="model.isOutage" + /> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="鍔犲伐杩囩▼涓殑鍙樺姩鍥犵礌" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="factor"> + <j-multi-select-tag + allow-clear + placeholder="璇疯緭鍏ュ姞宸ヨ繃绋嬩腑鐨勫彉鍔ㄥ洜绱�" + dictCode="fault_change_factor" + v-model="model.factor" + /> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="鍏蜂綋鏇存敼鍐呭" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="modifyContent"> + <a-textarea v-model="model.modifyContent" rows="4" placeholder="璇疯緭鍏ュ叿浣撴洿鏀瑰唴瀹�" /> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="鍙戠敓浜嬫晠鏃惰澶囨墍鎵ц鐨勭▼搴�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentProcess"> + <a-textarea v-model="model.equipmentProcess" rows="4" placeholder="璇疯緭鍏ュ彂鐢熶簨鏁呮椂璁惧鎵�鎵ц鐨勭▼搴�" /> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="鍙戠敓浜嬫晠鏃剁殑鐜拌薄" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="phenomenon"> + <a-textarea v-model="model.phenomenon" rows="4" placeholder="璇疯緭鍏ュ彂鐢熶簨鏁呮椂鐨勭幇璞�" /> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="閲囧彇鎺柦1" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="method1"> + <a-textarea v-model="model.method1" rows="4" placeholder="璇疯緭鍏ラ噰鍙栨帾鏂�1" /> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="閲囧彇鎺柦2" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="method2"> + <a-textarea v-model="model.method2" rows="4" placeholder="璇疯緭鍏ラ噰鍙栨帾鏂�2" /> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="閲囧彇鎺柦3" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="method3"> + <a-textarea v-model="model.method3" rows="4" placeholder="璇疯緭鍏ラ噰鍙栨帾鏂�3" /> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="浜嬫晠鎵�閫犳垚鐨勭粨鏋�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="result"> + <a-input v-model="model.result" placeholder="璇疯緭鍏ヤ簨鏁呮墍閫犳垚鐨勭粨鏋�" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="宸ラ暱" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="workLeader"> + <a-input v-model="model.workLeader" placeholder="璇疯緭鍏ュ伐闀�" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="涓績涓讳换" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="centerLeader"> + <a-input v-model="model.centerLeader" placeholder="璇疯緭鍏ヤ腑蹇冧富浠�" ></a-input> + </a-form-model-item> + </a-col> + <a-divider + orientation="center" + style="font-size: large;font-style: italic;color: #66aeed;" + > 缁翠慨浜哄憳杩涜浜嬫晠鍒嗘瀽 </a-divider> + <a-col :span="8"> + <a-form-model-item label="寮�濮嬫鏌ユ椂闂�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="startCheckTime"> + <j-date placeholder="璇烽�夋嫨寮�濮嬫鏌ユ椂闂�" v-model="model.startCheckTime" style="width: 100%" /> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="鍙戠敓浜嬫晠鍚庤澶囩殑鐘舵��" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentStatus"> + <a-input v-model="model.equipmentStatus" placeholder="璇疯緭鍏ュ彂鐢熶簨鏁呭悗璁惧鐨勭姸鎬�" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="缁翠慨浜哄憳瀵逛簨鏁呯殑鍒嗘瀽" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="anlysis"> + <a-textarea v-model="model.anlysis" rows="4" placeholder="璇疯緭鍏ョ淮淇汉鍛樺浜嬫晠鐨勫垎鏋�" /> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="缁翠慨浜哄憳妫�鏌ョ粨鏋�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="checkResult"> + <a-textarea v-model="model.checkResult" rows="4" placeholder="璇疯緭鍏ョ淮淇汉鍛樻鏌ョ粨鏋�" /> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="浜嬫晠鍘熷洜鍒嗘瀽杩囩▼涓墍閲囧彇鐨勭浉鍏宠涓�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="active"> + <a-textarea v-model="model.active" rows="4" placeholder="璇疯緭鍏ヤ簨鏁呭師鍥犲垎鏋愯繃绋嬩腑鎵�閲囧彇鐨勭浉鍏宠涓�" /> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="寤鸿閲囧彇鐨勬帾鏂藉強鏃堕棿鑺傜偣" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="suggest"> + <a-textarea v-model="model.suggest" rows="4" placeholder="璇疯緭鍏ュ缓璁噰鍙栫殑鎺柦鍙婃椂闂磋妭鐐�" /> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="缁翠慨璐d换浜�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="engineer"> + <a-input v-model="model.engineer" placeholder="璇疯緭鍏ョ淮淇矗浠讳汉" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="缁勯暱" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="teamLeader"> + <a-input v-model="model.teamLeader" placeholder="璇疯緭鍏ョ粍闀�" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="缁翠慨绔欑珯闀�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="repairLeader"> + <a-input v-model="model.repairLeader" placeholder="璇疯緭鍏ョ淮淇珯绔欓暱" ></a-input> + </a-form-model-item> + </a-col> + <a-divider + orientation="center" + style="font-size: large;font-style: italic;color: #66aeed;" + > 璁惧鎶�鏈笓瀹舵剰瑙� </a-divider> + <a-col :span="8"> + <a-form-model-item label="浜嬫晠鍙戠敓鍘熷洜鍒嗘瀽鐨勬牳瀵�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="judgment"> + <j-dict-select-tag + allow-clear + placeholder="璇疯緭鍏ヤ簨鏁呭彂鐢熷師鍥犲垎鏋愮殑鏍稿" + :triggerChange="true" + dictCode="opinion" + v-model="model.judgment" + /> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="涓嶅悓鐨勬剰瑙佸強鍒嗘瀽" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="differentJudgment"> + <a-textarea v-model="model.differentJudgment" rows="4" placeholder="璇疯緭鍏ヤ笉鍚岀殑鎰忚鍙婂垎鏋�" /> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="鏁存敼鎺柦" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="updateMethod"> + <a-textarea v-model="model.updateMethod" rows="4" placeholder="璇疯緭鍏ユ暣鏀规帾鏂�" /> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="浜嬫晠缁撹" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="finalResult"> + <a-textarea v-model="model.finalResult" rows="4" placeholder="璇疯緭鍏ヤ簨鏁呯粨璁�" /> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="鎶�鏈礋璐d汉" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="mechanic"> + <a-input v-model="model.mechanic" placeholder="璇疯緭鍏ユ妧鏈礋璐d汉" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="绠$悊瀹や笟鍔$粡鐞�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipLeader"> + <a-input v-model="model.equipLeader" placeholder="璇疯緭鍏ョ鐞嗗涓氬姟缁忕悊" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span="8"> + <a-form-model-item label="杩愯淇濋殰閮ㄤ富绠¢瀵�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="guaranteeLeader"> + <a-input v-model="model.guaranteeLeader" placeholder="璇疯緭鍏ヨ繍琛屼繚闅滈儴涓荤棰嗗" ></a-input> + </a-form-model-item> + </a-col> + </a-row> + </a-form-model> + </j-form-container> + </a-spin> +</template> + +<script> + + import { httpAction, getAction } from '@/api/manage' + import { validateDuplicateValue } from '@/utils/util' + + export default { + name: 'FaultInfoForm', + components: { + }, + props: { + //琛ㄥ崟绂佺敤 + disabled: { + type: Boolean, + default: false, + required: false + } + }, + data () { + return { + model:{ + }, + labelCol: { + xs: { span: 24 }, + sm: { span: 10 }, + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 14 }, + }, + confirmLoading: false, + validatorRules: { + num:[ + { required: true, message: '蹇呭~!' }, + ], + area1:[ + { required: true, message: '蹇呭~!' }, + ], + operater:[ + { required: true, message: '蹇呭~!' }, + ], + eName:[ + { required: true, message: '蹇呭~!' }, + ], + area2:[ + { required: true, message: '蹇呭~!' }, + ], + birthday:[ + { required: true, message: '蹇呭~!' }, + ], + eModel:[ + { required: true, message: '蹇呭~!' }, + ], + faultTime:[ + { required: true, message: '蹇呭~!' }, + ], + level:[ + { required: true, message: '蹇呭~!' }, + ], + eNum:[ + { required: true, message: '蹇呭~!' }, + ], + cost:[ + { required: true, message: '蹇呭~!' }, + ], + workStartTime:[ + { required: true, message: '蹇呭~!' }, + ], + isCertificate:[ + { required: true, message: '蹇呭~!' }, + ], + isOutage:[ + { required: true, message: '蹇呭~!' }, + ], + factor:[ + { required: true, message: '蹇呭~!' }, + ], + modifyContent:[ + { required: true, message: '蹇呭~!' }, + ], + equipmentProcess:[ + { required: true, message: '蹇呭~!' }, + ], + phenomenon:[ + { required: true, message: '蹇呭~!' }, + ], + method1:[ + { required: true, message: '蹇呭~!' }, + ], + method2:[ + { required: true, message: '蹇呭~!' }, + ], + method3:[ + { required: true, message: '蹇呭~!' }, + ], + result:[ + { required: true, message: '蹇呭~!' }, + ], + workLeader:[ + { required: true, message: '蹇呭~!' }, + ], + centerLeader:[ + { required: true, message: '蹇呭~!' }, + ], + startCheckTime:[ + { required: true, message: '蹇呭~!' }, + ], + equipmentStatus:[ + { required: true, message: '蹇呭~!' }, + ], + anlysis:[ + { required: true, message: '蹇呭~!' }, + ], + checkResult:[ + { required: true, message: '蹇呭~!' }, + ], + active:[ + { required: true, message: '蹇呭~!' }, + ], + suggest:[ + { required: true, message: '蹇呭~!' }, + ], + engineer:[ + { required: true, message: '蹇呭~!' }, + ], + teamLeader:[ + { required: true, message: '蹇呭~!' }, + ], + repairLeader:[ + { required: true, message: '蹇呭~!' }, + ], + differentJudgment:[ + { required: true, message: '蹇呭~!' }, + ], + updateMethod:[ + { required: true, message: '蹇呭~!' }, + ], + finalResult:[ + { required: true, message: '蹇呭~!' }, + ], + mechanic:[ + { required: true, message: '蹇呭~!' }, + ], + equipLeader:[ + { required: true, message: '蹇呭~!' }, + ], + guaranteeLeader:[ + { required: true, message: '蹇呭~!' }, + ], + }, + url: { + add: "/li/faultInfo/add", + edit: "/li/faultInfo/edit", + queryById: "/li/faultInfo/queryById" + } + } + }, + computed: { + formDisabled(){ + return this.disabled + }, + }, + created () { + //澶囦唤model鍘熷鍊� + this.modelDefault = JSON.parse(JSON.stringify(this.model)); + }, + methods: { + add () { + this.edit(this.modelDefault); + }, + edit (record) { + this.model = Object.assign({}, record); + this.visible = true; + }, + submitForm () { + 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; + }) + } + + }) + }, + } + } +</script> \ No newline at end of file diff --git a/src/views/eam/modules/FaultInfoModal.vue b/src/views/eam/modules/FaultInfoModal.vue new file mode 100644 index 0000000..1aa4e9a --- /dev/null +++ b/src/views/eam/modules/FaultInfoModal.vue @@ -0,0 +1,61 @@ +<template> + <j-modal + :title="'璁惧浜嬫晠鐧昏琛�'" + :width="width" + :visible="visible" + switchFullscreen + :fullscreen="true" + @ok="handleOk" + :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" + @cancel="handleCancel" + cancelText="鍏抽棴"> + <fault-info-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></fault-info-form> + </j-modal> +</template> + +<script> + + import FaultInfoForm from './FaultInfoForm' + export default { + name: 'FaultInfoModal', + components: { + FaultInfoForm + }, + data () { + return { + title:'璁惧浜嬫晠鐧昏琛�', + width:1500, + visible: false, + disableSubmit: false + } + }, + methods: { + add () { + this.visible=true + this.$nextTick(()=>{ + this.$refs.realForm.add(); + }) + }, + edit (record) { + this.visible=true + this.$nextTick(()=>{ + this.$refs.realForm.edit(record); + }) + }, + close () { + this.$emit('close'); + this.visible = false; + }, + handleOk () { + this.$refs.realForm.submitForm(); + }, + submitCallback(){ + this.$emit('ok'); + this.visible = false; + }, + handleCancel () { + this.close() + } + } + } +</script> \ No newline at end of file diff --git a/src/views/eam/modules/QuanlityConfirmForm.vue b/src/views/eam/modules/QuanlityConfirmForm.vue new file mode 100644 index 0000000..8bf741f --- /dev/null +++ b/src/views/eam/modules/QuanlityConfirmForm.vue @@ -0,0 +1,158 @@ +<template> + <a-spin :spinning="confirmLoading"> + <j-form-container :disabled="formDisabled"> + <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail"> + <a-row> + <!-- <a-col :span="24"> + <a-form-model-item label="鏁呴殰鎶ヤ慨鍗旾D" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="reportId"> + <a-input v-model="model.reportId" placeholder="璇疯緭鍏ユ晠闅滄姤淇崟ID" ></a-input> + </a-form-model-item> + </a-col> --> + <a-col :span="24"> + <a-form-model-item label="浜у搧鎹熷け鎯呭喌" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="condition"> + <j-dict-select-tag + allow-clear + placeholder="璇疯緭鍏ヤ骇鍝佹崯澶辨儏鍐�" + :triggerChange="true" + dictCode="is_product" + v-model="model.condition" + /> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="鎹熷け鎯呭喌鍒嗘瀽" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="conditionAnalysis"> + <a-textarea v-model="model.conditionAnalysis" rows="4" placeholder="璇疯緭鍏ユ崯澶辨儏鍐靛垎鏋�" /> + </a-form-model-item> + </a-col> + <!-- <a-col :span="24"> + <a-form-model-item label="闆朵欢鍙�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="partNumber"> + <a-input v-model="model.partNumber" placeholder="璇疯緭鍏ラ浂浠跺彿" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="鎵规鍙�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="batchNo"> + <a-input v-model="model.batchNo" placeholder="璇疯緭鍏ユ壒娆″彿" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="浠舵暟" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="qunatity"> + <a-input-number v-model="model.qunatity" placeholder="璇疯緭鍏ヤ欢鏁�" style="width: 100%" /> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="纭棰嗗" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="leader"> + <a-input v-model="model.leader" placeholder="璇疯緭鍏ョ‘璁ら瀵�" ></a-input> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="棰嗗纭鏃堕棿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="confirmTime"> + <j-date placeholder="璇烽�夋嫨棰嗗纭鏃堕棿" v-model="model.confirmTime" style="width: 100%" /> + </a-form-model-item> + </a-col> + <a-col :span="24"> + <a-form-model-item label="鏄惁宸茬‘璁�" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="isConfirm"> + <a-input v-model="model.isConfirm" placeholder="璇疯緭鍏ユ槸鍚﹀凡纭" ></a-input> + </a-form-model-item> + </a-col> --> + </a-row> + </a-form-model> + </j-form-container> + </a-spin> +</template> + +<script> + + import { httpAction, getAction } from '@/api/manage' + import { validateDuplicateValue } from '@/utils/util' + + export default { + name: 'QuanlityConfirmForm', + components: { + }, + props: { + //琛ㄥ崟绂佺敤 + disabled: { + type: Boolean, + default: false, + required: false + } + }, + data () { + return { + model:{ + }, + labelCol: { + xs: { span: 24 }, + sm: { span: 5 }, + }, + wrapperCol: { + xs: { span: 24 }, + sm: { span: 16 }, + }, + confirmLoading: false, + validatorRules: { + conditionAnalysis:[ + { required: true, message: '璇疯緭鍏ユ崯澶辨儏鍐靛垎鏋�!' }, + { min: 1, max: 1000, message: '闀垮害涓嶈秴杩� 1000 涓瓧绗�', trigger: 'blur' }, + ], + condition:[ + { required: true, message: '璇烽�夋嫨浜у搧鏄惁鏈夋崯澶�!' }, + ] + }, + url: { + add: "/li/quanlityConfirm/add", + edit: "/li/quanlityConfirm/edit", + queryById: "/li/quanlityConfirm/queryById" + } + } + }, + computed: { + formDisabled(){ + return this.disabled + }, + }, + created () { + //澶囦唤model鍘熷鍊� + this.modelDefault = JSON.parse(JSON.stringify(this.model)); + }, + methods: { + add () { + this.edit(this.modelDefault); + }, + edit (record) { + this.model = Object.assign({}, record); + this.visible = true; + }, + submitForm () { + 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; + this.model.isConfirm = "yes"; + 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; + }) + } + + }) + }, + } + } +</script> \ No newline at end of file diff --git a/src/views/eam/modules/QuanlityConfirmModal.vue b/src/views/eam/modules/QuanlityConfirmModal.vue new file mode 100644 index 0000000..6b178ca --- /dev/null +++ b/src/views/eam/modules/QuanlityConfirmModal.vue @@ -0,0 +1,60 @@ +<template> + <j-modal + :title="title" + :width="width" + :visible="visible" + switchFullscreen + @ok="handleOk" + :okButtonProps="{ class:{'jee-hidden': disableSubmit} }" + @cancel="handleCancel" + cancelText="鍏抽棴"> + <quanlity-confirm-form ref="realForm" @ok="submitCallback" :disabled="disableSubmit"></quanlity-confirm-form> + </j-modal> +</template> + +<script> + + import QuanlityConfirmForm from './QuanlityConfirmForm' + export default { + name: 'QuanlityConfirmModal', + components: { + QuanlityConfirmForm + }, + data () { + return { + title:'', + width:800, + visible: false, + disableSubmit: false + } + }, + methods: { + add () { + this.visible=true + this.$nextTick(()=>{ + this.$refs.realForm.add(); + }) + }, + edit (record) { + this.visible=true + this.$nextTick(()=>{ + this.$refs.realForm.edit(record); + }) + }, + close () { + this.$emit('close'); + this.visible = false; + }, + handleOk () { + this.$refs.realForm.submitForm(); + }, + submitCallback(){ + this.$emit('ok'); + this.visible = false; + }, + handleCancel () { + this.close() + } + } + } +</script> \ No newline at end of file diff --git a/src/views/eam/modules/malfunctionRepair/EquipmentList.vue b/src/views/eam/modules/malfunctionRepair/EquipmentList.vue index 73a3350..ad90fc4 100644 --- a/src/views/eam/modules/malfunctionRepair/EquipmentList.vue +++ b/src/views/eam/modules/malfunctionRepair/EquipmentList.vue @@ -11,6 +11,53 @@ > <a-spin :spinning="confirmLoading"> <a-form :form="form"> + <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="鍗曟嵁鍙�"> + <a-input + placeholder="璇疯緭鍏ュ崟鎹彿妫�绱�" + v-model="queryParam.num" + ></a-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> + </a-col> + <a-col + :md="6" + :sm="8" + > + <a-button + type="primary" + @click="searchQuery" + icon="search" + >鏌ヨ</a-button> + <a-button + @click="searchReset" + icon="reload" + style="margin-left:8px;" + >閲嶇疆</a-button> + </a-col> + </a-row> + </a-form> + </div> <a-table ref="table" size="middle" @@ -123,13 +170,6 @@ methods: { - - searchQuery() { - this.loadData(1); - }, - searchReset() { - this.loadData(1) - }, list() { this.selectedRowKeys = []; this.selectedRowRecord = []; diff --git a/src/views/eam/modules/malfunctionRepair/MalfunctionRepaireModal.vue b/src/views/eam/modules/malfunctionRepair/MalfunctionRepaireModal.vue index 5394b39..95e4210 100644 --- a/src/views/eam/modules/malfunctionRepair/MalfunctionRepaireModal.vue +++ b/src/views/eam/modules/malfunctionRepair/MalfunctionRepaireModal.vue @@ -39,7 +39,6 @@ v-decorator="['isStop', validatorRules.isStop]" /> </a-form-item> - </a-col> </a-row> <a-row :gutter="24"> @@ -174,37 +173,6 @@ </a-form-item> </a-col> </a-row> - <!-- <a-row :gutter="24"> - <a-col :span="24/2"> - <a-form-item - label="绱ф�ョ▼搴�" - :labelCol="labelCol" - :wrapperCol="wrapperCol" - > - <j-dict-select-tag - allow-clear - :disabled="disableSubmit" - :placeholder="disableSubmit?'':'璇烽�夋嫨绱ф�ョ▼搴�'" - :triggerChange="true" - dictCode="urgency" - v-decorator="['urgency', validatorRules.urgency]" - /> - </a-form-item> - </a-col> --> - <!-- <a-col :span="24/2" v-show="false"> - <a-form-item - label="鏁呴殰鍘熷洜" - :labelCol="labelCol" - :wrapperCol="wrapperCol" - > - <a-input - :disabled="disableSubmit" - enter-button - v-decorator="['faultReason', validatorRules.faultReason]" - /> - </a-form-item> - </a-col> --> - <!-- </a-row> --> <a-row :gutter="24"> <a-col :span="24/2"> <a-form-item @@ -237,22 +205,67 @@ </a-form-item> </a-col> </a-row> - <!-- <a-row :gutter="24"> - <a-col :span="24/2"> + <a-row :gutter="24"> + <a-col :span="24/2"> <a-form-item - label="鏁呴殰鐓х墖" + label="鏄惁鍦ㄥ姞宸ラ浂浠�" :labelCol="labelCol" :wrapperCol="wrapperCol" > - <j-image-upload - :disabled="disableSubmit" - :isMultiple="true" - v-decorator="['photo', {}]" - ></j-image-upload> - + <j-dict-select-tag + allow-clear + :placeholder="disableSubmit?'':'璇烽�夋嫨鏄惁鍦ㄥ姞宸ラ浂浠�'" + :triggerChange="true" + @change="(e) => statusChange(e)" + dictCode="is_product" + v-decorator="['errUda1', validatorRules.errUda1]" + /> </a-form-item> </a-col> - </a-row> --> + <a-col :span="24/2" v-if="workingStatus"> + <a-form-item + label="鍔犲伐闆朵欢鍙�" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + > + <a-input + allow-clear + :placeholder="disableSubmit?'':'璇疯緭鍏ュ姞宸ラ浂浠跺彿'" + v-decorator="['partNumber', validatorRules.partNumber ]" + /> + </a-form-item> + </a-col> + </a-row> + <a-row :gutter="24"> + <a-col :span="24/2" v-if="workingStatus"> + <a-form-item + label="鎵规鍙�" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + > + <a-input + allow-clear + :placeholder="disableSubmit?'':'璇疯緭鍏ユ壒娆″彿'" + v-decorator="['batchNo', validatorRules.batchNo ]" + /> + </a-form-item> + </a-col> + <a-col :span="24/2" v-if="workingStatus"> + <a-form-item + label="浠舵暟" + :labelCol="labelCol" + :wrapperCol="wrapperCol" + > + <a-input-number + allow-clear + style="width: 100%;" + :placeholder="disableSubmit?'':'璇疯緭鍏ヤ欢鏁�'" + :min="1" + v-decorator="['quantity', validatorRules.quantity]" + /> + </a-form-item> + </a-col> + </a-row> </a-form> </a-spin> @@ -346,6 +359,26 @@ { max: 1000, min:1,message: '鏈�澶氬彲鎻忚堪1000瀛�!' }, ] }, + errUda1:{ + rules: [ + { required: true, message: '璇烽�夋嫨鏄惁鍦ㄥ姞宸ラ浂浠�!' }, + ] + }, + partNumber:{ + rules: [ + { required: true, message: '璇疯緭鍏ラ浂浠跺浘鍙�!' }, + ] + }, + batchNo:{ + rules: [ + { required: true, message: '璇疯緭鍏ユ壒娆″彿!' }, + ] + }, + quantity:{ + rules: [ + { required: true, message: '璇疯緭鍏ヤ欢鏁�!' }, + ] + } }, url: { add: "/eam/equipmentReportRepair/add", @@ -354,6 +387,7 @@ getNum:'/eam/sysIdentity/getNumNew' }, dataSource: [], + workingStatus:false } }, @@ -372,6 +406,7 @@ getAction(this.url.getNum,param).then(res=>{ if(res.success){ modelDefault.num = res.result; + this.workingStatus = false; modelDefault.faultTime = dayjs(new Date()).format('YYYY-MM-DD HH:mm:ss'); that.edit(modelDefault); } @@ -384,7 +419,7 @@ that.model = Object.assign({}, record); that.visible = true; that.$nextTick(() => { - that.form.setFieldsValue(pick(that.model, 'num', 'isStop', 'equipmentId', 'equipmentNum', 'equipmentName', 'equipmentModel', 'equipmentSpecification', 'urgency', 'useDepartId', 'departName', 'faultDescription', 'faultTime', 'remark', "photo")); + that.form.setFieldsValue(pick(that.model,'errUda1' ,'num', 'isStop', 'equipmentId', 'equipmentNum', 'equipmentName', 'equipmentModel', 'equipmentSpecification', 'urgency', 'useDepartId', 'departName', 'faultDescription', 'faultTime', 'remark', "photo")); }); if (record.id) { this.codeDisable = true; @@ -445,7 +480,9 @@ let record = data.record; this.form.setFieldsValue({ equipmentName: record.name, equipmentId: record.id, equipmentNum: record.num, equipmentModel: record.model, equipmentSpecification: record.specification, useDepartId: record.useId, departName: record.useId_dictText }); }, - + statusChange(val){ + this.workingStatus=val==='no'?false:true; + } }, } </script> -- Gitblit v1.9.3