From 92ff846fb659c62037a32b1d8c15eae9df9d9b54 Mon Sep 17 00:00:00 2001 From: zenglf <18502938215@163.com> Date: 星期一, 18 九月 2023 13:24:30 +0800 Subject: [PATCH] Merge branch 'develop' of http://117.34.109.166:18448/r/vue_mdc_430 --- src/views/eam/PredictiveWorkOrderList.vue | 541 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 541 insertions(+), 0 deletions(-) diff --git a/src/views/eam/PredictiveWorkOrderList.vue b/src/views/eam/PredictiveWorkOrderList.vue new file mode 100644 index 0000000..ada83a3 --- /dev/null +++ b/src/views/eam/PredictiveWorkOrderList.vue @@ -0,0 +1,541 @@ +<template> + <a-card + :bordered="false" + title="棰勬祴缁存姢宸ュ崟" + > + <!-- 鏌ヨ鍖哄煙 --> + <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="宸ュ崟鐘舵��"> + <j-dict-select-tag + allow-clear + placeholder="璇烽�夋嫨宸ュ崟鐘舵��" + :triggerChange="true" + dictCode="repair_order_status" + v-model="queryParam.status" + /> + </a-form-item> + </a-col> + <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.equipmentNum" + ></a-input> + </a-form-item> + </a-col> + <a-col + :md="6" + :sm="8" + > + <a-form-item label="璁惧鍚嶇О"> + <a-input + placeholder="璇疯緭鍏ヨ澶囧悕绉�" + v-model="queryParam.equipmentName" + ></a-input> + </a-form-item> + </a-col> + <a-col + :md="6" + :sm="8" + > + <span + style="float: left;overflow: hidden;" + class="table-page-search-submitButtons" + > + <a-button + type="primary" + @click="searchQuery" + icon="search" + >鏌ヨ</a-button> + <a-button + type="primary" + @click="searchReset" + icon="reload" + style="margin-left: 8px" + >閲嶇疆</a-button> + </span> + </a-col> + </a-row> + </a-form> + </div> + <!-- 鏌ヨ鍖哄煙-END --> + + <!-- 鎿嶄綔鎸夐挳鍖哄煙 --> + <div class="table-operator"> + <!-- <a-button + @click="handleAdd" + type="primary" + icon="plus" + >鏂板</a-button> + <a-button + v-if="selectedRowKeys.length > 0" + type="primary" + @click="batchAssign" + style="margin-left: 8px" + >宸ュ崟娲惧伐</a-button> --> + </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: 'calc(1900px + 50%)', y: 900 }" + bordered + rowKey="id" + :columns="columns" + :dataSource="dataSource" + :pagination="ipagination" + :loading="loading" + class="j-table-force-nowrap" + @change="handleTableChange" + > + <!-- :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}" --> + <span + slot="action" + slot-scope="text, record" + > + <a-popconfirm + title="纭畾涓嬪彂宸ュ崟鍚�?" + @confirm="() => handleOrderIssue(record)" + > + <a v-if="record.status == '1'">涓嬪彂</a> + </a-popconfirm> + <a-divider + v-if="record.status == '1'" + type="vertical" + /> + <a-popconfirm + title="纭畾鎾ゅ洖宸ュ崟鍚�?" + @confirm="() => handleOrderReset(record)" + > + <a v-if="record.status == '2'">鎾ゅ洖</a> + </a-popconfirm> + <a-divider + v-if="record.status == '2'" + type="vertical" + /> + <a-popconfirm + title="纭畾鎭㈠宸ュ崟鍚�?" + @confirm="() => handleOrderRecover(record)" + > + <a v-if="record.status == '7'">鎭㈠</a> + </a-popconfirm> + <a-divider + v-if="record.status == '7'" + type="vertical" + /> + <a-popconfirm + title="纭畾浣滃簾宸ュ崟鍚�?" + @confirm="() => handleOrderCancel(record)" + > + <a v-if="record.status == '2'">浣滃簾</a> + </a-popconfirm> + <a-divider + v-if="record.status == '2'" + type="vertical" + /> + <a-popconfirm + title="纭畾棰嗗彇宸ュ崟鍚�?" + @confirm="() => handleOrderGet(record)" + > + <a v-if="record.status == '2' && record.assignMode == '1'">棰嗗彇</a> + </a-popconfirm> + <a + v-if="record.status == '2' && record.assignMode == '2' " + @click="handleAssignOrder(record)" + >娲惧伐</a> + <a + v-if="record.status == '2'&& record.assignMode == '3' && record.inspectionUserName != null " + @click="handleAssignOrder(record)" + >鏀规淳</a> + <a + v-if="record.status == '3'" + @click="handleAssignOrder(record)" + >鏀规淳</a> + <a-divider + v-if="record.status == '2'" + type="vertical" + /> + <a-divider + v-if="record.status === '3'" + type="vertical" + /> + <a + v-if="record.status === '3' || record.status === '4' " + @click="handleOrderExe(record)" + >鎵ц</a> + <a-divider + v-if="record.status === '3' || record.status === '4' " + type="vertical" + /> + <a + v-if="record.status === '1'" + @click="handleEdit(record)" + >缂栬緫</a> + <a-divider + v-if="record.status === '1'" + 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 v-if="record.status === '1'">鍒犻櫎</a> + </a-popconfirm> + </a-menu-item> + </a-menu> + </a-dropdown> + </span> + + <span + slot="num" + slot-scope="text, record" + > + <a + v-if="record.status === '3' || record.status === '4' ||record.status === '5' ||record.status === '7' " + class="lot" + @click="handleOrderExe(record)" + >{{record.num}}</a> + <span v-else>{{record.num}}</span> + </span> + + </a-table> + </div> + + <predictive-work-order-model + ref="modalForm" + @ok="modalFormOk" + ></predictive-work-order-model> + <predictive-work-order-drawer + ref="PredictiveWorkOrderDrawer" + @ok="modalFormOk" + ></predictive-work-order-drawer> + <order-assign-modal + ref="OrderAssign" + @ok="modalFormOk" + > + + </order-assign-modal> + </a-card> +</template> + +<script> + +import '@/assets/less/TableExpand.less' +import { mixinDevice } from '@/utils/mixin' +import { JeecgListMixin } from '@/mixins/JeecgListMixin' +import { getAction, postAction, requestPut } from '@/api/manage' +import PredictiveWorkOrderModel from './modules/predictiveWorkOrder/PredictiveWorkOrderModel' +import PredictiveWorkOrderDrawer from './modules/predictiveWorkOrder/PredictiveWorkOrderDrawer' +import OrderAssignModal from './modules/predictiveWorkOrder/OrderAssignModal.vue' +export default { + name: 'PredictiveWorkOrderList', + mixins: [JeecgListMixin, mixinDevice], + components: { + PredictiveWorkOrderModel, + PredictiveWorkOrderDrawer, + OrderAssignModal + }, + 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: 'status_dictText' + }, + { + title: '鍗曟嵁鍙�', + align: "center", + dataIndex: 'num', + scopedSlots: { customRender: 'num' } + }, + { + title: '鐩戞帶绫诲瀷', + align: "center", + dataIndex: 'monitorType_dictText' + }, + { + title: '璁惧缂栫爜', + align: "center", + dataIndex: 'equipmentNum', + }, + { + title: '璁惧鍚嶇О', + align: "center", + dataIndex: 'equipmentName', + }, + { + title: '鍨嬪彿', + align: "center", + dataIndex: 'model', + }, + { + title: '鏍囧噯缂栫爜', + align: 'center', + dataIndex: 'planNum', + }, + { + title: '鐗堟湰', + align: "center", + dataIndex: 'version', + }, + { + title: '浣跨敤閮ㄩ棬', + align: "center", + dataIndex: 'useId_dictText', + }, + { + title: '娲惧伐鏂瑰紡', + align: "center", + dataIndex: 'assignMode_dictText', + }, + { + title: '璐d换鐝粍', + align: "center", + dataIndex: 'teamId_dictText', + width: 170 + + }, + { + title: '璐d换浜�', + align: "center", + dataIndex: 'maintenanceUserId_dictText', + width: 170 + }, + // { + // title: '宸ユ椂瀹氶锛堝皬鏃讹級', + // align: "center", + // dataIndex: 'planEndTime', + // width: 170 + // }, + { + title: '瀹為檯宸ユ椂', + align: "center", + dataIndex: 'actualWorkingHourQuota', + width: 170 + }, + { + title: '瀹為檯寮�濮嬫椂闂�', + align: "center", + dataIndex: 'actualStartTime', + width: 170 + }, + { + title: '瀹為檯缁撴潫鏃堕棿', + align: "center", + dataIndex: 'actualEndTime', + width: 170 + }, + { + title: '鍒涘缓浜�', + align: "center", + dataIndex: 'createBy' + }, + { + title: '鍒涘缓鏃ユ湡', + align: "center", + dataIndex: 'createTime', + width: 170 + }, + { + title: '鎿嶄綔', + dataIndex: 'action', + align: "center", + fixed: "right", + width: 300, + scopedSlots: { customRender: 'action' } + } + ], + url: { + list: "/eam/predictiveworkorder/pageOrderList", + delete: "/eam/specialtyMaintenanceOrder/delete", + deleteBatch: "/eam/specialtyMaintenanceOrder/deleteBatch", + exportXlsUrl: "/eam/specialtyMaintenanceOrder/exportXls", + importExcelUrl: "eam/specialtyMaintenanceOrder/importExcel", + edit: "/eam/predictiveworkorder/editStatus", + orderGet: "/eam/predictiveworkorder/orderGet", + }, + } + }, + + computed: { + importExcelUrl: function () { + return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`; + }, + rowSelection() { + return { + type: 'checkbox', + onChange: (selectedRowKeys, selectedRows) => { + this.selectedRowKeys = selectedRowKeys; + this.onSelectChange(selectedRows); + }, + getCheckboxProps: record => ({ + props: { + disabled: record.distable + }, + }), + selectedRowKeys: this.selectedRowKeys, + }; + }, + }, + + methods: { + onSelectChange(selectionRows) { + this.selectionRows = selectionRows; + }, + + handleOrderExe(record) { + this.$refs. PredictiveWorkOrderDrawer.visible = true + this.$refs. PredictiveWorkOrderDrawer.title = '涓撲笟淇濆吇宸ュ崟鎵ц' + this.$refs. PredictiveWorkOrderDrawer.handleShow(record) + if (record.status === '3') { + this.$refs. PredictiveWorkOrderDrawer.buttonDistable = true//淇濆瓨銆佹殏瀛樸�佹姤宸� + this.$refs. PredictiveWorkOrderDrawer.revocationDistable = true//鎾ら攢鎸夐挳 + this.$refs. PredictiveWorkOrderDrawer.SWbuttonDistable = false//寮�宸ユ寜閽� + } else if (record.status === '4') { + this.$refs. PredictiveWorkOrderDrawer.buttonDistable = false + this.$refs. PredictiveWorkOrderDrawer.revocationDistable = true + this.$refs. PredictiveWorkOrderDrawer.SWbuttonDistable = true + } else if (record.status === '5') { + this.$refs. PredictiveWorkOrderDrawer.buttonDistable = true + this.$refs. PredictiveWorkOrderDrawer.revocationDistable = false + this.$refs. PredictiveWorkOrderDrawer.SWbuttonDistable = true + } else if (record.status === '7') { + this.$refs. PredictiveWorkOrderDrawer.buttonDistable = true + this.$refs. PredictiveWorkOrderDrawer.revocationDistable = true + this.$refs. PredictiveWorkOrderDrawer.SWbuttonDistable = true + } + }, + + handleOrderIssue(record) { + const that = this; + requestPut(that.url.edit, { id: record.id, status: '2' }).then((res) => { + if (res.success) { + that.$message.success("宸ュ崟涓嬪彂鎴愬姛锛�") + that.loadData() + } else { + that.$message.warning("宸ュ崟涓嬪彂澶辫触锛�") + } + }) + }, + //鎾ゅ洖 + handleOrderReset(record) { + const that = this; + requestPut(that.url.edit, { id: record.id, status: '1' }).then((res) => { + if (res.success) { + that.$message.success("宸ュ崟鎾ゅ洖鎴愬姛锛�") + that.loadData() + } else { + that.$message.warning("宸ュ崟鎾ゅ洖澶辫触锛�") + } + }) + }, + handleOrderGet(record) { + const that = this; + requestPut(that.url.orderGet, { id: record.id, status: '1' }).then((res) => { + if (res.success) { + that.$message.success("宸ュ崟棰嗗彇鎴愬姛锛�") + that.loadData() + } else { + that.$message.warning("宸ュ崟棰嗗彇澶辫触锛�") + } + }) + }, + //浣滃簾 + handleOrderCancel(record) { + const that = this; + requestPut(that.url.edit, { id: record.id, status: '7' }).then((res) => { + if (res.success) { + that.$message.success("宸ュ崟浣滃簾鎴愬姛锛�") + that.loadData() + } else { + that.$message.warning("宸ュ崟浣滃簾澶辫触锛�") + } + }) + }, + + //鎭㈠ + handleOrderRecover(record) { + const that = this; + requestPut(that.url.edit, { id: record.id, status: '2' }).then((res) => { + if (res.success) { + that.$message.success("宸ュ崟鎭㈠鎴愬姛锛�") + that.loadData() + } else { + that.$message.warning("宸ュ崟鎭㈠澶辫触锛�") + } + }) + }, + handleAssignOrder: function (record) { + this.$refs.OrderAssign.edit(record) + this.$refs.OrderAssign.title = '宸ュ崟鏀规淳' + this.$refs.OrderAssign.disableSubmit = false + }, + // modalFormOk() { + // alert(0) + // // 鏂板/淇敼 鎴愬姛鏃讹紝閲嶈浇鍒楄〃 + // this.loadData(); + // //娓呯┖鍒楄〃閫変腑 + // this.onClearSelected() + // }, + } +} +</script> +<style scoped> +@import '~@assets/less/common.less'; +</style> \ No newline at end of file -- Gitblit v1.9.3