1、调整设备台账铭牌二维码大小
2、待机停机页面功能开发
| | |
| | | |
| | | <tbody> |
| | | <tr> |
| | | <td rowspan="3"> |
| | | <QrcodeVue :value="httpUrl+item.id"/> |
| | | <td rowspan="3" align="center"> |
| | | <div style="height: 80%;width: 50%"> |
| | | <QrcodeVue :value="httpUrl+item.id" :size="50"/> |
| | | </div> |
| | | </td> |
| | | <td>设备编号</td> |
| | | <td>{{ item.equipmentCode }}</td> |
| | |
| | | </tr> |
| | | |
| | | <tr> |
| | | <td rowspan="3"> |
| | | <QrcodeVue :value="item.equipmentCode"/> |
| | | <td rowspan="3" align="center"> |
| | | <div style="height: 80%;width: 50%"> |
| | | <QrcodeVue :value="item.equipmentCode" :size="50"/> |
| | | </div> |
| | | </td> |
| | | <td>出厂编号</td> |
| | | <td>{{ item.factoryNumber }}</td> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import QrcodeVue from 'qrcode.vue' |
| | | import QrcodeVue from 'qrcode.vue' |
| | | |
| | | export default { |
| | | name: 'NameplateModal', |
| | | components: { QrcodeVue }, |
| | | props: { |
| | | printedRows: { |
| | | type: Array |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | title: '铭牌', |
| | | visible: false, |
| | | httpUrl: '' |
| | | } |
| | | }, |
| | | methods: { |
| | | handleCancel() { |
| | | this.visible = false |
| | | export default { |
| | | name: 'NameplateModal', |
| | | components: { QrcodeVue }, |
| | | props: { |
| | | printedRows: { |
| | | type: Array |
| | | } |
| | | }, |
| | | data() { |
| | | return { |
| | | title: '铭牌', |
| | | visible: false, |
| | | httpUrl: '' |
| | | } |
| | | }, |
| | | methods: { |
| | | handleCancel() { |
| | | this.visible = false |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="less" scoped> |
| | | /deep/ .ant-modal { |
| | | height: 75%; |
| | | overflow: hidden; |
| | | |
| | | .ant-modal-content { |
| | | height: 100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | /deep/ .ant-modal { |
| | | height: 75%; |
| | | overflow: hidden; |
| | | |
| | | ::-webkit-scrollbar { |
| | | width: 8px; |
| | | height: 8px; |
| | | } |
| | | .ant-modal-content { |
| | | height: 100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | overflow: hidden; |
| | | |
| | | .ant-modal-body { |
| | | flex: 1; |
| | | overflow: auto; |
| | | ::-webkit-scrollbar { |
| | | width: 8px; |
| | | height: 8px; |
| | | } |
| | | |
| | | .ant-modal-body { |
| | | flex: 1; |
| | | overflow: auto; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | table { |
| | | font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif; |
| | | color: #000; |
| | | text-align: center; |
| | | table { |
| | | font-family: "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", Arial, sans-serif; |
| | | color: #000; |
| | | text-align: center; |
| | | |
| | | &:not(:last-child) { |
| | | margin-bottom: 10px; |
| | | &:not(:last-child) { |
| | | margin-bottom: 10px; |
| | | } |
| | | |
| | | th { |
| | | font-size: 24px; |
| | | letter-spacing: 3px; |
| | | padding: 12px; |
| | | } |
| | | |
| | | td { |
| | | font-size: 14px; |
| | | width: 33%; |
| | | padding: 6px; |
| | | } |
| | | } |
| | | |
| | | th { |
| | | font-size: 24px; |
| | | letter-spacing: 3px; |
| | | padding: 12px; |
| | | } |
| | | |
| | | td { |
| | | font-size: 14px; |
| | | width: 33%; |
| | | padding: 6px; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | |
| | | return { |
| | | disabledHours: () => range(moment().hour() + 1, 24), |
| | | disabledMinutes: () => range(moment().minute(), 60) |
| | | disabledMinutes: () => range(moment().minute() + 1, 60), |
| | | disabledSeconds: () => range(moment().second() + 1, 60) |
| | | } |
| | | }, |
| | | |
| | |
| | | </a-tab-pane> |
| | | |
| | | <a-tab-pane key='3' tab='流程图'> |
| | | <img :src="imageSrc" alt="Fetched Image"/>--> |
| | | <img :src="imageSrc" alt="Fetched Image"/> |
| | | </a-tab-pane> |
| | | </template> |
| | | |
| | |
| | | const param = { id: record.dataId } |
| | | let res = await getAction(this.url.queryById, param); |
| | | this.tableRowRecord = Object.assign({}, res.result); |
| | | debugger |
| | | if (this.tableRowRecord.imageFiles) { |
| | | let obj = JSON.parse(this.tableRowRecord.imageFiles) |
| | | this.tableRowRecord.fileList = [...obj] |
| | |
| | | <a-form layout="inline" @keyup.enter.native="searchQuery"> |
| | | <a-row :gutter="24"> |
| | | <a-col :md="4" :sm="4"> |
| | | <a-form-item label="日期"> |
| | | <a-date-picker value-format="YYYY-MM-DD" style="width: 100%" v-model="queryParam.theDate"/> |
| | | <a-form-item label="停机日期"> |
| | | <a-date-picker placeholder="请选择停机日期" value-format="YYYY-MM-DD" style="width: 100%" |
| | | v-model="queryParam.theDate" :allow-clear="false"/> |
| | | </a-form-item> |
| | | </a-col> |
| | | |
| | | <a-col :md="2" :sm="2" :xs="2"> |
| | | <a-button type="primary" @click="searchQuery" icon="search">查询</a-button> |
| | | <a-col :md="4" :sm="4" :xs="4"> |
| | | <a-space> |
| | | <a-button type="primary" @click="searchQuery" icon="search">查询</a-button> |
| | | <a-button @click="searchReset" icon="reload">重置</a-button> |
| | | </a-space> |
| | | </a-col> |
| | | </a-row> |
| | | </a-form> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- 操作按钮区域 --> |
| | | <div class="table-operator"> |
| | | <a-button @click="handleAdd" type="primary" icon="plus">新增</a-button> |
| | | </div> |
| | | |
| | | <div style="overflow: hidden;width: 100%;flex: 1" id="DeviceList"> |
| | |
| | | </template> |
| | | |
| | | <template slot="action" slot-scope="text, record"> |
| | | <a @click="handleReport(record)">上报</a> |
| | | <a @click="handleEdit(record)">编辑</a> |
| | | |
| | | <a-divider type="vertical"/> |
| | | |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import moment from 'moment' |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | import EquipmentStandbyShutdownModal |
| | | from '@views/mdc/base/modules/EquipmentStandbyShutDown/EquipmentStandbyShutdownModal.vue' |
| | | import moment from 'moment' |
| | | import { JeecgListMixin } from '@/mixins/JeecgListMixin' |
| | | import EquipmentStandbyShutdownModal |
| | | from '@views/mdc/base/modules/EquipmentStandbyShutDown/EquipmentStandbyShutdownModal.vue' |
| | | |
| | | export default { |
| | | name: 'EquipmentStandbyShutdownList', |
| | | components: { EquipmentStandbyShutdownModal }, |
| | | mixins: [JeecgListMixin], |
| | | data() { |
| | | return { |
| | | disableMixinCreated: true, |
| | | scrollY: 465, |
| | | queryParam: { |
| | | theDate: moment().subtract('days', 1).format('YYYY-MM-DD') |
| | | }, |
| | | columns: [ |
| | | { |
| | | title: '#', |
| | | dataIndex: '', |
| | | key: 'rowIndex', |
| | | width: 60, |
| | | align: 'center', |
| | | customRender: function(t, r, index) { |
| | | return parseInt(index) + 1 |
| | | export default { |
| | | name: 'EquipmentStandbyShutdownList', |
| | | components: { EquipmentStandbyShutdownModal }, |
| | | mixins: [JeecgListMixin], |
| | | data() { |
| | | return { |
| | | disableMixinCreated: true, |
| | | scrollY: 465, |
| | | queryParam: { |
| | | theDate: moment().subtract('days', 1).format('YYYY-MM-DD') |
| | | }, |
| | | columns: [ |
| | | { |
| | | title: '#', |
| | | dataIndex: '', |
| | | key: 'rowIndex', |
| | | width: 60, |
| | | align: 'center', |
| | | customRender: function(t, r, index) { |
| | | return parseInt(index) + 1 |
| | | } |
| | | }, |
| | | { |
| | | title: '设备编号', |
| | | align: 'center', |
| | | dataIndex: 'equipmentId', |
| | | width: 200 |
| | | }, |
| | | { |
| | | title: '设备名称', |
| | | align: 'center', |
| | | dataIndex: 'equipmentName', |
| | | width: 200 |
| | | }, |
| | | { |
| | | title: '停机类型', |
| | | align: 'center', |
| | | dataIndex: 'downtimeType', |
| | | scopedSlots: { customRender: 'downtimeType' }, |
| | | width: 150 |
| | | }, |
| | | { |
| | | title: '停机原因', |
| | | align: 'center', |
| | | dataIndex: 'downtimeDescription', |
| | | width: 200 |
| | | }, |
| | | { |
| | | title: '停机日期', |
| | | align: 'center', |
| | | dataIndex: 'theDate', |
| | | width: 150 |
| | | }, |
| | | { |
| | | title: '停机时长(min)', |
| | | align: 'center', |
| | | dataIndex: 'downLong', |
| | | width: 150 |
| | | }, |
| | | { |
| | | title: '备注', |
| | | align: 'center', |
| | | dataIndex: 'remark' |
| | | }, |
| | | { |
| | | title: '操作', |
| | | dataIndex: 'action', |
| | | align: 'center', |
| | | width: 150, |
| | | scopedSlots: { customRender: 'action' }, |
| | | fixed: 'right' |
| | | } |
| | | }, |
| | | { |
| | | title: '设备编号', |
| | | align: 'center', |
| | | dataIndex: 'equipmentId', |
| | | width: 200 |
| | | }, |
| | | { |
| | | title: '设备名称', |
| | | align: 'center', |
| | | dataIndex: 'equipmentName', |
| | | width: 200 |
| | | }, |
| | | { |
| | | title: '停机类型', |
| | | align: 'center', |
| | | dataIndex: 'downtimeType', |
| | | scopedSlots: { customRender: 'downtimeType' }, |
| | | width: 150 |
| | | }, |
| | | { |
| | | title: '停机原因', |
| | | align: 'center', |
| | | dataIndex: 'downtimeDescription', |
| | | width: 200 |
| | | }, |
| | | { |
| | | title: '开始时间', |
| | | align: 'center', |
| | | dataIndex: 'startDate', |
| | | width: 150 |
| | | }, |
| | | { |
| | | title: '结束时间', |
| | | align: 'center', |
| | | dataIndex: 'endDate', |
| | | width: 150 |
| | | }, |
| | | { |
| | | title: '备注', |
| | | align: 'center', |
| | | dataIndex: 'remark', |
| | | width: 200 |
| | | }, |
| | | { |
| | | title: '操作', |
| | | dataIndex: 'action', |
| | | align: 'center', |
| | | width: 150, |
| | | scopedSlots: { customRender: 'action' }, |
| | | fixed: 'right' |
| | | ], |
| | | url: { |
| | | list: '/mdc/mdcDowntime/list', |
| | | delete: '/mdc/mdcDowntime/delete' |
| | | } |
| | | ], |
| | | url: { |
| | | list: '/mdc/mdcDowntime/list', |
| | | delete: '/mdc/mdcDowntime/delete' |
| | | } |
| | | } |
| | | }, |
| | | props: { node: {}, Type: '' }, |
| | | created() { |
| | | this.queryParam.typeTree = '1' |
| | | this.loadData() |
| | | }, |
| | | mounted() { |
| | | window.addEventListener('resize', this.handleWindowResize) |
| | | this.handleWindowResize() |
| | | }, |
| | | beforeDestroy() { |
| | | window.removeEventListener('resize', this.handleWindowResize) |
| | | }, |
| | | watch: { |
| | | Type(valmath) { |
| | | this.queryParam.typeTree = valmath |
| | | }, |
| | | node(val) { //监听currSelected 变化,将变化后的数值传递给 getCurrSelected 事件 |
| | | if (JSON.stringify(val) != '{}') { |
| | | if (val.equipmentId != null) { |
| | | this.queryParam.equipmentId = val.equipmentId |
| | | this.queryParam.parentId = '' |
| | | } else { |
| | | this.queryParam.parentId = val.key |
| | | this.queryParam.equipmentId = '' |
| | | props: { node: {}, Type: '' }, |
| | | created() { |
| | | this.queryParam.typeTree = '1' |
| | | this.loadData() |
| | | }, |
| | | mounted() { |
| | | window.addEventListener('resize', this.handleWindowResize) |
| | | this.handleWindowResize() |
| | | }, |
| | | beforeDestroy() { |
| | | window.removeEventListener('resize', this.handleWindowResize) |
| | | }, |
| | | watch: { |
| | | Type(valmath) { |
| | | this.queryParam.typeTree = valmath |
| | | }, |
| | | node(val) { //监听currSelected 变化,将变化后的数值传递给 getCurrSelected 事件 |
| | | if (JSON.stringify(val) != '{}') { |
| | | if (val.equipmentId != null) { |
| | | this.queryParam.equipmentId = val.equipmentId |
| | | this.queryParam.parentId = '' |
| | | } else { |
| | | this.queryParam.parentId = val.key |
| | | this.queryParam.equipmentId = '' |
| | | } |
| | | this.loadData(1) |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | searchReset() { |
| | | this.queryParam = { theDate: moment().subtract('days', 1).format('YYYY-MM-DD') } |
| | | this.loadData(1) |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | handleReport(record) { |
| | | this.$refs.modalForm.edit(record) |
| | | this.$refs.modalForm.title = '上报' |
| | | }, |
| | | }, |
| | | |
| | | handleWindowResize() { |
| | | const boxHeight = +window.getComputedStyle(document.getElementById('DeviceList')).height.slice(0, -2) |
| | | const tableHeadHeight = +window.getComputedStyle(document.querySelector('.ant-table-thead th')).height.slice(0, -2) |
| | | this.scrollY = boxHeight - tableHeadHeight - 50 |
| | | handleWindowResize() { |
| | | const boxHeight = +window.getComputedStyle(document.getElementById('DeviceList')).height.slice(0, -2) |
| | | const tableHeadHeight = +window.getComputedStyle(document.querySelector('.ant-table-thead th')).height.slice(0, -2) |
| | | this.scrollY = boxHeight - tableHeadHeight - 50 |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style scoped> |
| | | .page-container { |
| | | overflow: hidden; |
| | | display: flex; |
| | | flex-direction: column; |
| | | } |
| | | |
| | | @media screen and (min-width: 1920px) { |
| | | .page-container { |
| | | height: 812px !important; |
| | | overflow: hidden; |
| | | display: flex; |
| | | flex-direction: column; |
| | | } |
| | | } |
| | | |
| | | @media screen and (min-width: 1680px) and (max-width: 1920px) { |
| | | .page-container { |
| | | height: 812px !important; |
| | | @media screen and (min-width: 1920px) { |
| | | .page-container { |
| | | height: 812px !important; |
| | | } |
| | | } |
| | | } |
| | | |
| | | @media screen and (min-width: 1400px) and (max-width: 1680px) { |
| | | .page-container { |
| | | height: 664px !important; |
| | | @media screen and (min-width: 1680px) and (max-width: 1920px) { |
| | | .page-container { |
| | | height: 812px !important; |
| | | } |
| | | } |
| | | } |
| | | |
| | | @media screen and (min-width: 1280px) and (max-width: 1400px) { |
| | | .page-container { |
| | | height: 565px !important; |
| | | @media screen and (min-width: 1400px) and (max-width: 1680px) { |
| | | .page-container { |
| | | height: 664px !important; |
| | | } |
| | | } |
| | | } |
| | | |
| | | @media screen and (max-width: 1280px) { |
| | | .page-container { |
| | | height: 565px !important; |
| | | @media screen and (min-width: 1280px) and (max-width: 1400px) { |
| | | .page-container { |
| | | height: 565px !important; |
| | | } |
| | | } |
| | | } |
| | | |
| | | @media screen and (max-width: 1280px) { |
| | | .page-container { |
| | | height: 565px !important; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <a-modal :title="title" :width="500" :visible="visible" :confirmLoading="confirmLoading" @ok="handleOk" |
| | | @cancel="handleCancel" cancelText="关闭"> |
| | | <a-spin :spinning="confirmLoading"> |
| | | <a-form-model ref="form" :form="form" :model="model" :rules="validatorRules" :labelCol="labelColLong" |
| | | <a-spin :spinning="spinning"> |
| | | <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelColLong" |
| | | :wrapperCol="wrapperColLong"> |
| | | <a-row :gutter="24"> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="设备组" prop="equipmentIds"> |
| | | <a-input-search readOnly v-model="model.equipmentIds" @search="deviceSearch" enter-button |
| | | placeholder="请选择设备"/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | |
| | | <a-row :gutter="24"> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="停机类型" prop="downtimeType"> |
| | |
| | | </a-radio-group> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | |
| | | </a-row> |
| | | |
| | | <a-row :gutter="24"> |
| | |
| | | |
| | | <a-row :gutter="24"> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="停机日期" prop="theDate"> |
| | | <a-date-picker v-model="model.theDate" placeholder="请选择停机日期" value-format="YYYY-MM-DD" |
| | | style="width: 100%"/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | |
| | | </a-row> |
| | | |
| | | <a-row :gutter="24"> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="停机时长(min)" prop="downLong"> |
| | | <a-input-number v-model="model.downLong" :min="1" :step="1" :precision="0" placeholder="请输入停机时长(min)" |
| | | style="width: 100%"/> |
| | | </a-form-model-item> |
| | | </a-col> |
| | | </a-row> |
| | | |
| | | <!--<a-row :gutter="24">--> |
| | | <!--<a-col :span="12">--> |
| | | <!--<a-form-model-item label="开始时间" prop="startTime">--> |
| | | <!--<a-time-picker v-model="model.startTime" value-format="HH:mm:ss" style="width: 100%"/>--> |
| | | <!--</a-form-model-item>--> |
| | | <!--</a-col>--> |
| | | <!--<a-col :span="12">--> |
| | | <!--<a-form-model-item label="结束时间" prop="endTime">--> |
| | | <!--<a-time-picker v-model="model.endTime" value-format="HH:mm:ss" style="width: 100%"/>--> |
| | | <!--</a-form-model-item>--> |
| | | <!--</a-col>--> |
| | | <!--</a-row>--> |
| | | |
| | | <a-row :gutter="24"> |
| | | <a-col :span="24"> |
| | | <a-form-model-item label="备注"> |
| | | <a-textarea v-model="model.remark" placeholder="请输入备注"/> |
| | | </a-form-model-item> |
| | |
| | | </a-row> |
| | | </a-form-model> |
| | | </a-spin> |
| | | |
| | | <select-device-drawer ref="selectDeviceDrawer" @selectFinished="selectOK" :title="'选择设备'"/> |
| | | </a-modal> |
| | | </template> |
| | | |
| | | <script> |
| | | import { getAction, postAction } from '@api/manage' |
| | | import { getAction, postAction } from '@api/manage' |
| | | import SelectDeviceDrawer from '../../../../system/modules/SelectDeviceDrawer' |
| | | |
| | | export default { |
| | | name: 'EquipmentStandbyShutdownModal', |
| | | components: {}, |
| | | props: {}, |
| | | data() { |
| | | return { |
| | | title: '', |
| | | visible: false, |
| | | model: {}, |
| | | downtimeDescriptionList: [], |
| | | labelColLong: { |
| | | xs: { |
| | | span: 24 |
| | | export default { |
| | | name: 'EquipmentStandbyShutdownModal', |
| | | components: { SelectDeviceDrawer }, |
| | | props: {}, |
| | | data() { |
| | | return { |
| | | title: '', |
| | | visible: false, |
| | | model: {}, |
| | | equipmentList: [], |
| | | downtimeDescriptionList: [], |
| | | labelColLong: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 6 } |
| | | }, |
| | | sm: { |
| | | span: 5 |
| | | } |
| | | }, |
| | | wrapperColLong: { |
| | | xs: { |
| | | span: 24 |
| | | wrapperColLong: { |
| | | xs: { span: 24 }, |
| | | sm: { span: 16 } |
| | | }, |
| | | sm: { |
| | | span: 17 |
| | | confirmLoading: false, |
| | | spinning: false, |
| | | disableSelectDevice: false, |
| | | validatorRules: { |
| | | equipmentIds: [ |
| | | { required: true, message: '请选择设备', trigger: 'change' } |
| | | ], |
| | | downtimeType: [ |
| | | { required: true, message: '请选择停机类型' } |
| | | ], |
| | | reasonId: [ |
| | | { required: true, message: '请选择停机原因' } |
| | | ], |
| | | theDate: [ |
| | | { required: true, message: '请选择停机日期' } |
| | | ], |
| | | downLong: [ |
| | | { required: true, message: '请输入停机时长(min)' } |
| | | ] |
| | | }, |
| | | url: { |
| | | add: '/mdc/mdcDowntime/add', |
| | | edit: '/mdc/mdcDowntime/edit', |
| | | getDowntimeDescriptionListByDowntimeType: '/mdc/mdcDowntimeReason/downtimeReasonList' |
| | | } |
| | | }, |
| | | confirmLoading: false, |
| | | form: this.$form.createForm(this), |
| | | validatorRules: { |
| | | downtimeType: [ |
| | | { |
| | | required: true, message: '请选择停机类型' |
| | | } |
| | | ], |
| | | reasonId: [ |
| | | { |
| | | required: true, message: '请选择停机原因' |
| | | } |
| | | ] |
| | | }, |
| | | url: { |
| | | edit: '/mdc/mdcDowntime/edit', |
| | | getDowntimeDescriptionListByDowntimeType: '/mdc/mdcDowntimeReason/downtimeReasonList' |
| | | } |
| | | } |
| | | }, |
| | | methods: { |
| | | edit(record) { |
| | | this.model = Object.assign({}, record) |
| | | this.getDowntimeDescriptionListByApi() |
| | | if (this.model.downtimeType === null) { |
| | | delete this.model.downtimeType |
| | | delete this.model.reasonId |
| | | } |
| | | this.visible = true |
| | | }, |
| | | |
| | | // 停机类型值发生改变时触发清空停机原因并重新获取对应停机类型的停机原因列表 |
| | | handleDowntimeTypeChange() { |
| | | if (this.model.reasonId) delete this.model.reasonId |
| | | this.removeValidate() |
| | | this.getDowntimeDescriptionListByApi() |
| | | }, |
| | | |
| | | // 调用接口获取停机原因列表 |
| | | getDowntimeDescriptionListByApi() { |
| | | const that = this |
| | | this.downtimeDescriptionList = [] |
| | | getAction(this.url.getDowntimeDescriptionListByDowntimeType, { downtimeType: this.model.downtimeType }) |
| | | .then(res => { |
| | | if (res.success) that.downtimeDescriptionList = res.result |
| | | methods: { |
| | | add() { |
| | | this.edit({ |
| | | downtimeType: 0 |
| | | }) |
| | | }, |
| | | }, |
| | | |
| | | handleOk() { |
| | | const that = this |
| | | // 触发表单验证 |
| | | this.$refs.form.validate(valid => { |
| | | if (valid) { |
| | | that.confirmLoading = true |
| | | postAction(this.url.edit, that.model) |
| | | .then((res) => { |
| | | if (res.success) { |
| | | that.$notification.success({ |
| | | message: '消息', |
| | | description: res.message |
| | | }) |
| | | that.$emit('ok', res.result) |
| | | that.handleCancel() |
| | | } else { |
| | | that.$notification.warning({ |
| | | message: '消息', |
| | | description: res.message |
| | | }) |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | that.confirmLoading = false |
| | | }) |
| | | } else { |
| | | return false |
| | | edit(record) { |
| | | this.model = Object.assign({}, record) |
| | | this.getDowntimeDescriptionListByApi() |
| | | if (this.model.downtimeType === null) { |
| | | delete this.model.downtimeType |
| | | delete this.model.reasonId |
| | | } |
| | | }) |
| | | }, |
| | | this.visible = true |
| | | }, |
| | | |
| | | handleCancel() { |
| | | this.visible = false |
| | | this.removeValidate() |
| | | }, |
| | | // 停机类型值发生改变时触发清空停机原因并重新获取对应停机类型的停机原因列表 |
| | | handleDowntimeTypeChange() { |
| | | if (this.model.reasonId) delete this.model.reasonId |
| | | this.removeValidate() |
| | | this.getDowntimeDescriptionListByApi() |
| | | }, |
| | | |
| | | // 关闭弹窗时清楚表单校验 |
| | | removeValidate() { |
| | | if (this.$refs.form) this.$refs.form.clearValidate() |
| | | // 调用接口获取停机原因列表 |
| | | getDowntimeDescriptionListByApi() { |
| | | const that = this |
| | | this.downtimeDescriptionList = [] |
| | | this.spinning = true |
| | | getAction(this.url.getDowntimeDescriptionListByDowntimeType, { downtimeType: this.model.downtimeType }) |
| | | .then(res => { |
| | | if (res.success) that.downtimeDescriptionList = res.result |
| | | }) |
| | | .finally(() => { |
| | | that.spinning = false |
| | | }) |
| | | }, |
| | | |
| | | handleOk() { |
| | | const that = this |
| | | // 触发表单验证 |
| | | console.log('model', this.model) |
| | | this.$refs.form.validate(valid => { |
| | | if (valid) { |
| | | that.confirmLoading = that.spinning = true |
| | | let url |
| | | if (!that.model.id) { |
| | | url = that.url.add |
| | | } else { |
| | | url = that.url.edit |
| | | } |
| | | postAction(url, that.model) |
| | | .then((res) => { |
| | | if (res.success) { |
| | | that.$notification.success({ |
| | | message: '消息', |
| | | description: res.message |
| | | }) |
| | | that.$emit('ok') |
| | | that.handleCancel() |
| | | } else { |
| | | that.$notification.warning({ |
| | | message: '消息', |
| | | description: res.message |
| | | }) |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | that.confirmLoading = that.spinning = false |
| | | }) |
| | | } else { |
| | | return false |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | deviceSearch() { |
| | | this.$refs.selectDeviceDrawer.visible = true |
| | | this.$refs.selectDeviceDrawer.selectedRowKeys = [] |
| | | this.$refs.selectDeviceDrawer.selectedRows = [] |
| | | this.$refs.selectDeviceDrawer.checkedKeys = this.model.equipmentIds ? this.model.equipmentIds.split(',') : [] |
| | | }, |
| | | |
| | | /** |
| | | * 选择已有设备后点击确定时触发 |
| | | * @param data 已选择的设备 |
| | | */ |
| | | selectOK(data) { |
| | | this.$set(this.model, 'equipmentIds', data.join(',')) |
| | | if (this.model.equipmentIds) this.$refs.form.clearValidate('equipmentIds') |
| | | }, |
| | | |
| | | handleCancel() { |
| | | this.visible = false |
| | | this.removeValidate() |
| | | }, |
| | | |
| | | // 关闭弹窗时清楚表单校验 |
| | | removeValidate() { |
| | | if (this.$refs.form) this.$refs.form.clearValidate() |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | |
| | |
| | | expandedKeys: [], |
| | | checkedKeys: [], |
| | | autoExpandParent: true, |
| | | searchValue: '', |
| | | url: { |
| | | getBaseTree: '/mdc/mdcEquipment/queryTreeListByProduction' |
| | | }, |