From 3d4259381007ec99054400297ff48f7c5d836876 Mon Sep 17 00:00:00 2001
From: zhuzhuanzhuan
Date: 星期五, 14 七月 2023 14:28:35 +0800
Subject: [PATCH] 非计划停机维护界面的绘制和调取接口,测试
---
src/views/mdc/base/UnplannedDowntimemManager.vue | 122 +++
src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerModal.vue | 325 ++++++++++
src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerModalEdit.vue | 355 +++++++++++
src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerList.vue | 631 +++++++++++++++++++
src/views/mdc/base/MdcplancloseList.vue | 29
src/views/mdc/base/modules/MdcplancloseList/MdcplancloseForm.vue | 1
src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerForm.vue | 124 +++
src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerModalList.vue | 284 ++++++++
8 files changed, 1,841 insertions(+), 30 deletions(-)
diff --git a/src/views/mdc/base/MdcplancloseList.vue b/src/views/mdc/base/MdcplancloseList.vue
index d75aa2d..ad95362 100644
--- a/src/views/mdc/base/MdcplancloseList.vue
+++ b/src/views/mdc/base/MdcplancloseList.vue
@@ -10,9 +10,6 @@
</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.planCloseTimeType"></a-input>-->
-
<a-form-item label="鏃堕棿绫诲瀷">
<a-select v-model="queryParam.planCloseTimeType" placeholder="璇烽�夋嫨鏃堕棿绫诲瀷">
<a-select-option value="">璇烽�夋嫨</a-select-option>
@@ -21,17 +18,11 @@
<a-select-option value="鏈�">鏈�</a-select-option>
</a-select>
</a-form-item>
-
- <!--</a-form-item>-->
</a-col>
<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>-->
</span>
</a-col>
</a-row>
@@ -76,26 +67,6 @@
: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)">缂栬緫</a>
diff --git a/src/views/mdc/base/UnplannedDowntimemManager.vue b/src/views/mdc/base/UnplannedDowntimemManager.vue
new file mode 100644
index 0000000..cba9b67
--- /dev/null
+++ b/src/views/mdc/base/UnplannedDowntimemManager.vue
@@ -0,0 +1,122 @@
+<template>
+ <div style="width: 100%; height: 100%;">
+ <a-card :bordered="false">
+ <a-row type="flex" :gutter="16">
+ <a-col :md="4">
+ <a-tabs :activeKey="activeKey" @change="tabChange">
+ <a-tab-pane key="1" tab="杞﹂棿灞傜骇" force-render>
+ <base-tree @getCurrSelected="changeSelectionNode"></base-tree>
+ </a-tab-pane>
+ <a-tab-pane key="2" tab="閮ㄩ棬灞傜骇">,
+ <depart-tree @getCurrSelectedDD="changeSelectionNodedd"
+ ></depart-tree>
+ </a-tab-pane>
+ </a-tabs>
+ </a-col>
+ <a-col :md="20">
+ <plan-downtime-maintenance-list ref="PlanDowntimeMaintenanceList" :nodePeople='selectPeople' :nodeTree = 'selectEquement' :Type="slectTypeTree"></plan-downtime-maintenance-list>
+ </a-col>
+ </a-row>
+ </a-card>
+ </div>
+
+</template>
+
+<script>
+ import { putAction, getAction } from '@/api/manage'
+ import { frozenBatch } from '@/api/api'
+ import { JeecgListMixin } from '@/mixins/JeecgListMixin'
+ import JInput from '@/components/jeecg/JInput'
+ import BaseTree from '../common/BaseTree'
+ import PlanDowntimeMaintenanceList from './modules/UnplannedDowntimemManager/UnplannedDowntimemManagerList'
+ import JSuperQuery from '@/components/jeecg/JSuperQuery'
+ import JThirdAppButton from '@/components/jeecgbiz/thirdApp/JThirdAppButton'
+ import DepartTree from './modules/DepartList/DepartListTree/DepartTree'
+ export default {
+ name: 'UnplannedDowntimemManager',
+ components: {
+ JThirdAppButton,
+ JInput,
+ BaseTree,
+ JSuperQuery,
+ DepartTree,
+ PlanDowntimeMaintenanceList
+ },
+ data() {
+ return {
+ activeKey: '1',
+ description: '璁惧淇℃伅',
+ selectEquementId: '',
+ selectEquement: {},
+ selectPeople:{},
+ slectTypeTree:"",
+ url: {
+ equipmentStatistics: '/mdc/equipment/equipmentStatistics'
+ }
+ }
+ },
+ created() {
+ },
+ methods: {
+ tabChange(val) {
+ // console.log(val);
+ this.activeKey = val
+ this.slectTypeTree = val
+ },
+ // changeSelection(val) {
+ // this.selectEquementId = val
+ // this.$refs.efficiencyList.pQuery(val)
+ // this.$refs.efficiencyList.searchQuery()
+ // },
+ changeSelectionNode(val) {
+ this.selectEquement = val
+ this.slectTypeTree = "1"
+ },
+ changeSelectionNodedd(val) {
+ this.selectPeople = val
+ this.slectTypeTree = "2"
+ }
+ }
+
+ }
+</script>
+<style scoped>
+ @import '~@assets/less/common.less';
+
+ .equipMessage {
+ width: 100%;
+ height: 10%;
+ }
+
+ .equipMessage table {
+ width: 60%;
+ height: 100%;
+ line-height: 50%;
+ }
+
+ .equipMessage table td {
+ text-align: center;
+ }
+
+ .equipMessage table td span {
+ display: inline-block;
+ width: 15px;
+ height: 15px;
+ }
+
+ .equipMessage table td .equipShutdown {
+ background-color: #808080;
+ }
+
+ .equipMessage table td .equipStandby {
+ background-color: #ffbf37;
+ }
+
+ .equipMessage table td .equipRun {
+ background-color: #19FE01;
+ }
+
+ .equipMessage table td .equipAlarm {
+ background-color: #FD0008;
+ }
+</style>
\ No newline at end of file
diff --git a/src/views/mdc/base/modules/MdcplancloseList/MdcplancloseForm.vue b/src/views/mdc/base/modules/MdcplancloseList/MdcplancloseForm.vue
index 3046964..04ba466 100644
--- a/src/views/mdc/base/modules/MdcplancloseList/MdcplancloseForm.vue
+++ b/src/views/mdc/base/modules/MdcplancloseList/MdcplancloseForm.vue
@@ -71,7 +71,6 @@
url: {
add: "/mdc/mdcPlanClose/add",
edit: "/mdc/mdcPlanClose/edit",
- queryById: "/plan/mdcplanclose/queryById"
}
}
},
diff --git a/src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerForm.vue b/src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerForm.vue
new file mode 100644
index 0000000..c42e50b
--- /dev/null
+++ b/src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerForm.vue
@@ -0,0 +1,124 @@
+<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="璁惧缂栧彿" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentid">
+ <a-input v-model="model.equipmentid" placeholder="璇疯緭鍏ヨ澶囩紪鍙�" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="24">
+ <a-form-model-item label="璁惧鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="equipmentname">
+ <a-input v-model="model.equipmentname" placeholder="璇疯緭鍏ヨ澶囧悕绉�" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="24">
+ <a-form-model-item label="鏃ユ湡" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="startdate">
+ <j-date placeholder="璇烽�夋嫨鏃ユ湡" v-model="model.startdate" style="width: 100%" />
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="24">
+ <a-form-model-item label="绫诲瀷" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="torquevalue">
+ <a-input v-model="model.torquevalue" placeholder="璇疯緭鍏ョ被鍨�" ></a-input>
+ </a-form-model-item>
+ </a-col>
+ <a-col :span="24">
+ <a-form-model-item label="澶囨敞" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="notes">
+ <a-input v-model="model.notes" 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: 'UnplannedDowntimemManagerForm',
+ 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: {
+ },
+ url: {
+ add: "/torquec/torqueconfiguration/add",
+ edit: "/torquec/torqueconfiguration/edit",
+ queryById: "/torquec/torqueconfiguration/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/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerList.vue b/src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerList.vue
new file mode 100644
index 0000000..e9e769d
--- /dev/null
+++ b/src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerList.vue
@@ -0,0 +1,631 @@
+<template>
+ <a-card :bordered="false" class="device_list">
+ <!-- 鏌ヨ鍖哄煙 -->
+ <div style="width: 100%; background-color: #fff" class="table-page-search-wrapper">
+ <a-form layout="inline" @keyup.enter.native="searchQuery">
+ <a-row :gutter="24">
+ <a-col :md="7" :sm="7">
+ <a-form-item label="鏃堕棿">
+ <a-range-picker @change="dateParamChange" v-model="dates" format="YYYY-MM-DD HH:mm" showTime/>
+ </a-form-item>
+ </a-col>
+ <a-col :md="4" :sm="4">
+ <a-form-item label="璁惧缂栧彿">
+ <a-input placeholder="杈撳叆璁惧缂栧彿鏌ヨ" v-model="queryParams.equipmentId"></a-input>
+ </a-form-item>
+ </a-col>
+ <a-col :md="4" :sm="4" :xs="4">
+ <a-form-item label="璁惧鍚嶇О">
+ <a-input placeholder="杈撳叆璁惧鍚嶇О鏌ヨ" v-model="queryParams.equipmentName"></a-input>
+ </a-form-item>
+ </a-col>
+ <a-col :md="2" :sm="3" :xs="3">
+ <a-button type="primary" @click="searchQuery" icon="search">鏌ヨ</a-button>
+ </a-col>
+ <a-col :md="2" :sm="2" :xs="2">
+ <a-button type="primary" @click="searchReset" icon="reload">閲嶇疆</a-button>
+ </a-col>
+ <!--<a-col :lg="2" :md="3" :sm="3" :xs="3">-->
+ <!--<a-button type="primary" @click="exportExcel" icon="download">瀵煎嚭</a-button>-->
+ <!--</a-col>-->
+ </a-row>
+ </a-form>
+ </div>
+ <!-- 鎿嶄綔鎸夐挳鍖哄煙 -->
+ <div class="table-operator" style="display: inline;">
+ <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>
+ </a-menu>
+ <a-button style="margin-left: 8px"> 鎵归噺鎿嶄綔
+ <a-icon type="down"/>
+ </a-button>
+ </a-dropdown>
+ </div>
+
+ <!-- table鍖哄煙-begin -->
+ <div id="DeviceList">
+ <a-table ref="table" bordered size="middle" rowKey="id" :columns="columns"
+ :scroll="{x:1000}" :dataSource="dataSource" :pagination="ipagination" :loading="loading"
+ :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
+ @change="handleTableChange">
+ <span slot="action" slot-scope="text, record">
+ <a @click="handleEdit(record)">缂栬緫</a>
+ <a-divider type="vertical" />
+ <a @click="handleDelete(record.id)">鍒犻櫎</a>
+ </span>
+ <!--瀛楃涓茶秴闀挎埅鍙栫渷鐣ュ彿鏄剧ず-->
+ <span slot="num" slot-scope="text" style="font-weight: bold">
+ <j-ellipsis :value="text" :length="8"/>
+ </span>
+ <span slot="name" slot-scope="text" style="font-weight: bold">
+ <j-ellipsis :value="text" :length="8"/>
+ </span>
+ <span slot="model" slot-scope="text" style="font-weight: bold">
+ <j-ellipsis :value="text" :length="8"/>
+ </span>
+ </a-table>
+ </div>
+ <!-- table鍖哄煙-end -->
+ <!--<device-repair-model></device-repair-model>-->
+ <plan-downtime-maintenance-modal ref="modalForm" @ok="modalFormOk"></plan-downtime-maintenance-modal>
+ <plan-downtime-maintenance-modal-edit ref="modalFormedit" @ok="modalFormOk"></plan-downtime-maintenance-modal-edit>
+
+ </a-card>
+</template>
+
+<script>
+ import moment from 'moment'
+ import $ from 'jquery'
+ import JDictSelectTag from '@/components/dict/JDictSelectTag'
+ import JDate from '../../../../../components/jeecg/JDate'
+ import {
+ requestPut,
+ deleteAction,
+ getAction
+ } from '@/api/manage'
+ import PlanDowntimeMaintenanceModal from './UnplannedDowntimemManagerModal'
+ import PlanDowntimeMaintenanceModalEdit from './UnplannedDowntimemManagerModalEdit'
+ // import DeviceRepairModelAdd from './DeviceRepairModelAdd'
+ // import DeviceRepairModelEdit from './DeviceRepairModelEdit'
+ import '@/components/table2excel/table2excel'
+ import {
+ JeecgListMixin
+ } from '@/mixins/JeecgListMixin'
+ import JInput from '@/components/jeecg/JInput'
+ import JEllipsis from '@/components/jeecg/JEllipsis'
+ import Tooltip from 'ant-design-vue/es/tooltip'
+ import { ajaxGetDictItems, getDictItemsFromCache, duplicateCheck } from '@/api/api'
+ export default {
+ name: 'UnplannedDowntimemManagerList',
+ mixins: [JeecgListMixin],
+ components: {
+ Tooltip,
+ PlanDowntimeMaintenanceModal,
+ PlanDowntimeMaintenanceModalEdit,
+ // DeviceRepairModelAdd,
+ // DeviceRepairModelEdit,
+ JDictSelectTag,
+ JInput,
+ JDate,
+ JEllipsis
+ },
+ props: { nodeTree: '', Type:'',nodePeople: '' },
+ data() {
+ return {
+ typeTree:"",
+ typeParent:1,
+ typeEquipment:1,
+ dates: [],
+ xianshi:"",
+ readOnly:true,
+ queryParam: {},
+ queryParams:{},
+ queryParamEquip:{},
+ queryParamPeople:{},
+ dataStartsoucre:[],
+ columns: [
+ {
+ title: '#',
+ dataIndex: '',
+ key: 'rowIndex',
+ width: 60,
+ align: "center",
+ customRender: function (t, r, index) {
+ return parseInt(index) + 1;
+ }
+ },
+ {
+ title: '璁惧缂栧彿',
+ align: 'center',
+ dataIndex: 'equipmentId'
+ },
+ {
+ title: '璁惧鍚嶇О',
+ align: 'center',
+ dataIndex: 'equipmentName',
+ // defaultSortOrder:'descend',
+ // sorter: (a, b) => {return a.equipmentName>b.equipmentName?1:-1}
+ },
+ {
+ title: '绫诲瀷',
+ align: 'center',
+ dataIndex: 'noplanType',
+ // defaultSortOrder:'descend',
+ // sorter: (a, b) => {return a.equipmentName>b.equipmentName?1:-1}
+ },
+ {
+ title: '寮�濮嬫椂闂�',
+ align: 'center',
+ dataIndex: 'startTime',
+ // scopedSlots:{customRender:'startTime'},
+ // customRender:(text,row,index) => {
+ // return moment(text).format("YYYY-MM-DD HH:mm:ss")
+ // }
+ },
+ {
+ title: '缁撴潫鏃堕棿',
+ align: 'center',
+ dataIndex: 'endTime'
+ },
+ {
+ title: '澶囨敞',
+ align: 'center',
+ dataIndex: 'remark'
+ },
+ {
+ title: '鎿嶄綔',
+ dataIndex: 'action',
+ scopedSlots: {customRender: 'action'},
+ align: "center",
+ width: 150
+ }
+ ],
+ url: {
+ list: '/mdc/mdcNoplanClose/list',
+ delete: '/mdc/mdcNoplanClose/delete',
+ deleteBatch: '/mdc/mdcNoplanClose/deleteBatch',
+ getEquipmentByPid: '/mdc/mdcequipment/getEquipmentByPid',
+ exportXlsUrl: "/mdc/MdcTorqueConfig/exportXls",
+ importExcelUrl: "/mdc/MdcTorqueConfig/importExcel",
+ }
+ }
+ },
+ watch:{
+ Type(valmath){
+ this.dataList = [];
+ this.queryParams.typeTree = valmath
+ // console.log(this.queryParams.typeTree)
+ },
+ nodeTree(val) { //鐩戝惉currSelected 鍙樺寲锛屽皢鍙樺寲鍚庣殑鏁板�间紶閫掔粰 getCurrSelected 浜嬩欢
+ if (JSON.stringify(val) != '{}') {
+ if (val.equipmentId) {
+ this.queryParamEquip.parentId = ""
+ this.queryParams.equipmentId = val.equipmentId
+ this.queryParamEquip.equipmentId = val.equipmentId
+ } else {
+ this.queryParamEquip.parentId = val.key
+ this.queryParams.equipmentId = ''
+ }
+ this.searchQuery()
+ }
+ },
+ nodePeople(val){
+ if (JSON.stringify(val) != '{}') {
+ if (val.equipmentId) {
+ this.queryParamEquip.parentId = ""
+ this.queryParams.equipmentId = val.equipmentId
+ this.queryParamEquip.equipmentId = val.equipmentId
+ } else {
+ this.queryParamPeople.parentId = val.key
+ this.queryParams.equipmentId = ''
+ }
+ this.searchQuery()
+ }
+ }
+ },
+ computed: {
+ importExcelUrl: function(){
+ return `${window._CONFIG['domianURL']}/${this.url.importExcelUrl}`;
+ },
+ },
+ methods: {
+ dateParamChange(v1, v2) {
+ // console.log(v1,v2)
+ this.queryParam.startTime = v2[0]
+ this.queryParam.endTime = v2[1]
+ // console.log(v2[0],v2[1])
+ },
+ onChange(value, dateString) {
+ // console.log('Selected Time: ', value);
+ // console.log('Formatted Selected Time: ', dateString);
+ },
+ onOk(value) {
+ console.log('onOk: ', value);
+ },
+ searchReset() {
+ if(this.queryParams.typeTree == "1"){
+ this.typeTree = this.queryParams.typeTree
+ this.typeParent = this.queryParams.parentId
+ this.typeEquipment = this.queryParams.equipmentId
+ this.queryParams = {}
+ this.queryParam = {}
+ this.dates = []
+ this.queryParams.typeTree = this.typeTree
+ this.queryParams.parentId = this.typeParent
+ if(this.queryParams.parentId != ""){
+ this.queryParams.equipmentId = ""
+ }else{
+ if(this.queryParams.equipmentId == this.queryParamEquip.equipmentId){
+ this.queryParams.equipmentId = this.typeEquipment
+ }else{
+ this.queryParams.equipmentId = this.queryParamEquip.equipmentId
+ }
+
+ }
+
+ this.ipagination.current = 1
+ this.ResetloadData();
+ }else{
+ this.typeTree = this.queryParams.typeTree
+ this.typeParent = this.queryParams.parentId
+ // this.typeEquipment = this.queryParams.equipmentId
+ this.queryParams = {}
+ this.queryParam = {}
+ this.dates = []
+ this.queryParams.typeTree = this.typeTree
+ this.queryParams.parentId = this.typeParent
+ // this.queryParams.equipmentId = this.typeEquipment
+ this.ipagination.current = 1
+ this.ResetloadData();
+ }
+
+ },
+ ResetloadData() {
+ if(!this.url.list){
+ this.$message.error("璇疯缃畊rl.list灞炴��!")
+ return
+ }
+ //鍔犺浇鏁版嵁 鑻ヤ紶鍏ュ弬鏁�1鍒欏姞杞界涓�椤电殑鍐呭
+ var params = this.getQueryParams();//鏌ヨ鏉′欢
+ if(!params){
+ return false;
+ }
+ params.typeTree = this.queryParams.typeTree
+ params.parentId = this.queryParams.parentId
+ params.equipmentId = this.queryParams.equipmentId
+ this.loading = true;
+ getAction(this.url.list, params).then((res) => {
+ if (res.success) {
+ this.dataSource = res.result.records||res.result;
+ // this.initDeviceType(this.dataSource)
+ //update-begin---author:zhangyafei Date:20201118 for锛氶�傞厤涓嶅垎椤电殑鏁版嵁鍒楄〃------------
+ // this.dataSource = res.result.records||res.result;
+ if(res.result.total)
+ {
+ this.ipagination.total = res.result.total;
+ }else{
+ this.ipagination.total = 0;
+ }
+ //update-end---author:zhangyafei Date:20201118 for锛氶�傞厤涓嶅垎椤电殑鏁版嵁鍒楄〃------------
+ }else{
+ this.$message.warning(res.message)
+ }
+ }).finally(() => {
+ this.loading = false
+ })
+ },
+ handleEdit: function (record) {
+ this.$refs.modalFormedit.edit(record);
+ this.$refs.modalFormedit.title = "缂栬緫";
+ this.$refs.modalFormedit.disableSubmit = false;
+ },
+ handleTableChange(pagination, filters, sorter) {
+ this.dataSource = []
+ //鍒嗛〉銆佹帓搴忋�佺瓫閫夊彉鍖栨椂瑙﹀彂
+ //TODO 绛涢��
+ // console.log(pagination)
+ if (Object.keys(sorter).length > 0) {
+ this.isorter.column = sorter.field;
+ this.isorter.order = "ascend" == sorter.order ? "asc" : "desc"
+ }
+ this.ipagination = pagination;
+ //鑾峰彇鏌ヨ鏉′欢
+ let sqp = {}
+ if(this.superQueryParams){
+ sqp['superQueryParams']=encodeURI(this.superQueryParams)
+ sqp['superQueryMatchType'] = this.superQueryMatchType
+ }
+ var param = Object.assign(sqp, this.queryParams, this.isorter ,this.filters);
+ param.pageNo = this.ipagination.current;
+ param.pageSize = this.ipagination.pageSize;
+ param.field = this.getQueryField();
+ param.parentId = this.queryParams.parentId;
+ param.equipmentId = this.queryParams.equipmentId;
+ param.startTime = this.queryParam.startTime;
+ param.endTime = this.queryParam.endTime;
+ getAction(this.url.list,param).then((res) => {
+ if(res.success){
+ this.dataSource = res.result.records||res.result;
+ if(res.result.total)
+ {
+ this.ipagination.total = res.result.total;
+ }else{
+ this.ipagination.total = 0;
+ }
+ }else{
+ this.$message.warning(res.message)
+ }
+ }).finally(() => {
+ this.loading = false
+ })
+ },
+ searchQueryEdit(){
+ if(this.queryParams.typeTree == "1"){
+ this.queryParams.parentId = this.queryParamEquip.parentId
+ }else{
+ this.queryParams.parentId = this.queryParamPeople.parentId
+ this.queryParams.equipmentIds = ""
+ }
+ this.dataSource = [];
+ //鑾峰彇鏌ヨ鏉′欢
+ let sqp = {}
+ if(this.superQueryParams){
+ sqp['superQueryParams']=encodeURI(this.superQueryParams)
+ sqp['superQueryMatchType'] = this.superQueryMatchType
+ }
+ var param = Object.assign(sqp, this.queryParams, this.isorter ,this.filters);
+ param.pageNo = this.ipagination.current;
+ param.pageSize = this.ipagination.pageSize;
+ param.field = this.getQueryField();
+ param.parentId = this.queryParams.parentId;
+ param.equipmentId = this.queryParams.equipmentId;
+ param.startTime = this.queryParam.startTime;
+ param.endTime = this.queryParam.endTime;
+ getAction(this.url.list,param).then((res) => {
+ if(res.success){
+ this.dataSource = res.result.records||res.result;
+ if(res.result.total)
+ {
+ this.ipagination.total = res.result.total;
+ }else{
+ this.ipagination.total = 0;
+ }
+ }else{
+ this.$message.warning(res.message)
+ }
+ }).finally(() => {
+ this.loading = false
+ })
+ },
+ searchQuery(){
+ if(this.queryParams.typeTree == "1"){
+ this.queryParams.parentId = this.queryParamEquip.parentId
+ // this.queryParams.equipmentId = this.queryParamEquip.equipmentId
+
+ }else{
+ this.queryParams.parentId = this.queryParamPeople.parentId
+
+ // this.queryParams.equipmentId = ""
+ }
+ this.dataSource = [];
+ //鑾峰彇鏌ヨ鏉′欢
+ let sqp = {}
+ if(this.superQueryParams){
+ sqp['superQueryParams']=encodeURI(this.superQueryParams)
+ sqp['superQueryMatchType'] = this.superQueryMatchType
+ }
+ var param = Object.assign(sqp, this.queryParams, this.isorter ,this.filters);
+ param.pageNo = 1;
+ param.pageSize = this.ipagination.pageSize;
+ param.field = this.getQueryField();
+ param.parentId = this.queryParams.parentId;
+ param.equipmentId = this.queryParams.equipmentId;
+ param.startTime = this.queryParam.startTime;
+ param.endTime = this.queryParam.endTime;
+ // console.log(param);
+ getAction(this.url.list,param).then((res) => {
+ if(res.success){
+ this.dataSource = res.result.records||res.result;
+ if(res.result.total)
+ {
+ this.ipagination.total = res.result.total;
+ }else{
+ this.ipagination.total = 0;
+ }
+ }else{
+ this.$message.warning(res.message)
+ }
+ }).finally(() => {
+ this.loading = false
+ })
+ },
+ loadData(arg) {
+ if(!this.url.list){
+ this.$message.error("璇疯缃畊rl.list灞炴��!")
+ return
+ }
+ //鍔犺浇鏁版嵁 鑻ヤ紶鍏ュ弬鏁�1鍒欏姞杞界涓�椤电殑鍐呭
+ if (arg === 1) {
+ this.ipagination.current = 1;
+ }
+ var params = this.getQueryParams();//鏌ヨ鏉′欢
+ if(!params){
+ return false;
+ }
+ this.loading = true;
+ getAction(this.url.list, params).then((res) => {
+ if (res.success) {
+ this.dataSource = res.result.records||res.result;
+ // this.initDeviceType(this.dataSource)
+ //update-begin---author:zhangyafei Date:20201118 for锛氶�傞厤涓嶅垎椤电殑鏁版嵁鍒楄〃------------
+ // this.dataSource = res.result.records||res.result;
+ if(res.result.total)
+ {
+ this.ipagination.total = res.result.total;
+ }else{
+ this.ipagination.total = 0;
+ }
+ //update-end---author:zhangyafei Date:20201118 for锛氶�傞厤涓嶅垎椤电殑鏁版嵁鍒楄〃------------
+ }else{
+ this.$message.warning(res.message)
+ }
+ }).finally(() => {
+ this.loading = false
+ })
+ },
+ modalFormOk(val) {
+ // 鏂板/淇敼 鎴愬姛鏃讹紝閲嶈浇鍒楄〃
+ this.searchQueryEdit();
+ // this.$emit('openBasetree','')
+ this.selectedRowKeys = []
+ },
+ handleDelete: function (id) {
+ if(!this.url.delete){
+ this.$message.error("璇疯缃畊rl.delete灞炴��!")
+ return
+ }
+ var that = this;
+ deleteAction(that.url.delete, {id: id}).then((res) => {
+ if (res.success) {
+ //閲嶆柊璁$畻鍒嗛〉闂
+ that.reCalculatePage(1)
+ that.$message.success(res.message);
+ that.searchQuery();
+ } else {
+ that.$message.warning(res.message);
+ }
+ });
+ },
+ batchDel: function () {
+ if(!this.url.deleteBatch){
+ this.$message.error("璇疯缃畊rl.deleteBatch灞炴��!")
+ return
+ }
+ if (this.selectedRowKeys.length <= 0) {
+ this.$message.warning('璇烽�夋嫨涓�鏉¤褰曪紒');
+ return;
+ } else {
+ var ids = "";
+ for (var a = 0; a < this.selectedRowKeys.length; a++) {
+ ids += this.selectedRowKeys[a] + ",";
+ }
+ var that = this;
+ this.$confirm({
+ title: "纭鍒犻櫎",
+ content: "鏄惁鍒犻櫎閫変腑鏁版嵁?",
+ onOk: function () {
+ that.loading = true;
+ deleteAction(that.url.deleteBatch, {ids: ids}).then((res) => {
+ if (res.success) {
+ //閲嶆柊璁$畻鍒嗛〉闂
+ that.reCalculatePage(that.selectedRowKeys.length)
+ that.$message.success(res.message);
+ that.loadData();
+ that.onClearSelected();
+ } else {
+ that.$message.warning(res.message);
+ }
+ }).finally(() => {
+ that.loading = false;
+ });
+ }
+ });
+ }
+ },
+ handleAdd() {
+ this.$refs.modalForm.add(this.node)
+ this.$refs.modalForm.title = '鏂板'
+ this.$refs.modalForm.disableSubmit = false
+ },
+ handleAddXIU() {
+ this.$refs.modalFormadd.add()
+ this.$refs.modalFormadd.title = '鏂板'
+ this.$refs.modalFormadd.disableSubmit = false
+ },
+ pQuery(parentId) {
+ this.queryParam.parentId = parentId[0]
+ if(this.selectedRowKeys.length >= 1) {
+ this.selectedRowKeys.length = 0
+ }
+ this.loadData()
+ },
+ onSelectChange(selectedRowKeys) {
+ this.selectedRowKeys = selectedRowKeys
+ },
+ initEquipment(id) {
+ let _this = this
+ getAction(this.url.getEquipmentByPid, { pid: id }).then((res) => {
+ if (res.success) {
+ if (res.result) {
+ _this.$set(this.queryParams, 'equipmentName', res.result.equipmentName)
+ _this.$set(this.queryParams, 'equipmentId', res.result.equipmentId)
+ _this.equipment = res.result
+ _this.searchQuery()
+ } else {
+ _this.$message.warning('璇烽厤缃澶囷紒')
+ }
+ }
+ })
+ },
+ exportExcel() {
+ $("#DeviceList").table2excel({
+ exclude: ".noExl",
+ name: "Excel Document Name",
+ filename: "鎵煩閰嶇疆",
+ exclude_img: true,
+ fileext: ".xls",
+ exclude_links: true,
+ exclude_inputs: true
+ });
+ },
+ },
+ created() {
+ this.queryParam.typeTree = "1"
+ }
+ }
+</script>
+
+<style lang="less" scoped>
+ @import '~@assets/less/common.less';
+
+ @media screen and (min-width: 1920px){
+ .device_list{
+ height: 811px!important;
+ overflow: scroll;
+ }
+ }
+ @media screen and (min-width: 1680px) and (max-width: 1920px){
+ .device_list{
+ height: 811px!important;
+ overflow: scroll;
+ }
+ }
+ @media screen and (min-width: 1400px) and (max-width: 1680px){
+ .device_list{
+ height: 663px!important;
+ overflow: scroll;
+ }
+ }
+ @media screen and (min-width: 1280px) and (max-width: 1400px){
+ .device_list{
+ height: 564px!important;
+ overflow: scroll;
+ }
+ }
+ @media screen and (max-width: 1280px){
+ .device_list{
+ height: 564px!important;
+ overflow: scroll;
+ }
+ }
+</style>
diff --git a/src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerModal.vue b/src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerModal.vue
new file mode 100644
index 0000000..0237b94
--- /dev/null
+++ b/src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerModal.vue
@@ -0,0 +1,325 @@
+<template>
+ <a-modal :title="title" :width="800" :visible="visible" :confirmLoading="confirmLoading"
+ :okButtonProps="{ props: {disabled: disableSubmit} }" @ok="handleOk" @cancel="handleCancel" cancelText="鍏抽棴">
+ <a-spin :spinning="confirmLoading">
+ <a-form :form="form">
+ <a-row :gutter="24">
+ <a-col :span="24">
+ <a-form-item label="璁惧缁�" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
+ <a-input-search :readOnly="true" v-decorator="['equipmentIds', validatorRules.equipmentIds]"
+ @search="deviceSearch" enter-button/>
+ </a-form-item>
+ </a-col>
+ </a-row>
+ <a-row :gutter="24">
+ <a-col :span="12">
+ <a-form-item label="寮�濮嬫椂闂�" :labelCol="labelCol" :wrapperCol="wrapperCol">
+ <j-date :show-time="{format:'HH:mm'}" date-format="YYYY-MM-DD HH:mm" placeholder="璇烽�夋嫨寮�濮嬫椂闂�"
+ class="query-group-cust" v-decorator="['startTime', validatorRules.startTime]"></j-date>
+ </a-form-item>
+ </a-col>
+ <a-col :span="12">
+ <a-form-item label="缁撴潫鏃堕棿" :labelCol="labelCol" :wrapperCol="wrapperCol">
+ <j-date :show-time="{format:'HH:mm'}" date-format="YYYY-MM-DD HH:mm" placeholder="璇烽�夋嫨缁撴潫鏃堕棿"
+ class="query-group-cust" v-decorator="['endTime', validatorRules.endTime]"></j-date>
+ </a-form-item>
+ </a-col>
+ </a-row>
+ <a-row :gutter="24">
+ <a-col :span="24">
+ <a-form-item label="绫诲瀷" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
+ <a-input :disabled="disableSubmit" placeholder="璇疯緭鍏ョ被鍨�"
+ :triggerChange="true"
+ v-decorator="['noplanType', validatorRules.noplanType]"/>
+ </a-form-item>
+ </a-col>
+ </a-row>
+ <a-row :gutter="24">
+ <a-form-item label="澶囨敞" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
+ <a-textarea :disabled="disableSubmit" v-decorator="['remark', validatorRules.remark]" placeholder="璇疯緭鍏ュ娉�" ></a-textarea>
+ </a-form-item>
+ </a-row>
+ </a-form>
+ </a-spin>
+ <plan-downtime-maintenance-modal-list ref="deviceRepairListModel" @sendSelectionRows="getDeviceRows"></plan-downtime-maintenance-modal-list>
+
+ </a-modal>
+</template>
+
+<script>
+ import moment from 'moment'
+ import pick from 'lodash.pick'
+ import PlanDowntimeMaintenanceModalList from './UnplannedDowntimemManagerModalList'
+ // import JDate from './JDate'
+ import {
+ getAction,
+ postAction,
+ requestPut
+ } from '@/api/manage'
+ import {
+ duplicateCheck
+ } from '@/api/api'
+
+ export default {
+ name: 'UnplannedDowntimemManagerModal',
+ components: {PlanDowntimeMaintenanceModalList},
+ props: {},
+ data() {
+ return {
+ mesag:21,
+ readOnly:true,
+ title: '',
+ visible: false,
+ show: false,
+ model: {},
+ checked: false,
+ startData:"",
+ endData:"",
+ labelCol: {
+ xs: {
+ span: 24
+ },
+ sm: {
+ span: 6
+ }
+ },
+ wrapperCol: {
+ xs: {
+ span: 24
+ },
+ sm: {
+ span: 18
+ }
+ },
+ labelColLong: {
+ xs: {
+ span: 24
+ },
+ sm: {
+ span: 3
+ }
+ },
+ wrapperColLong: {
+ xs: {
+ span: 24
+ },
+ sm: {
+ span: 21
+ }
+ },
+ confirmLoading: false,
+ form: this.$form.createForm(this),
+ validatorRules: {
+ equipmentIds:{
+ rules:[
+ {
+ required:true,
+ message: "璇烽�夋嫨璁惧"
+ },
+ ],
+ },
+ },
+
+ url: {
+ add: '/mdc/mdcNoplanClose/add',
+ edit: '/mdc/mdcNoplanClose/edit'
+ },
+
+ disableSubmit: true,
+ partCategoryCascade: [],
+ cascadeDefaultValue: []
+ }
+ },
+ created() {
+ },
+
+ methods: {
+ // disabledDate(current){
+ // //Can not slect days before today and today
+ // // return current && current < moment().endOf("day");
+ // return current < moment().subtract(+1, 'day')//浠婂ぉ涔嬪墠鐨勫勾鏈堟棩涓嶅彲閫夛紝涓嶅寘鎷粖澶�
+ // },
+ moment,
+ // onChange(dates) {
+ // // console.log(111)
+ // // console.log(dates,dateStrings)
+ // // console.log('From: ', dates[0], ', to: ', dates[1]);
+ // // console.log('From: ', dateStrings[0], ', to: ', dateStrings[1]);
+ // // this.startTime = dateStrings[0];
+ // // this.endData = dateStrings[1];
+ // // console.log(this.startData,this.endData);
+ // },
+ onChangeEnd(dates, dateStrings){
+ this.endTime = dateStrings[0];
+ },
+ getDeviceRows(val) {
+ var equipmentIds;
+ for(var i = 0;i<val.length;i++){
+ if (i == 0) {
+ equipmentIds = val[i].equipmentId;
+ } else {
+ equipmentIds = equipmentIds + "," + val[i].equipmentId;
+ }
+ }
+ // console.log("========",equipmentIds);
+ this.form.setFieldsValue({
+ equipmentIds: equipmentIds,
+ })
+ // this.form.setFieldsValue({
+ // equipmentId: val.equipmentId,
+ // equipmentName: val.equipmentName,
+ // equipmentModel: val.equipmentModel,
+ // equipmentIp: val.equipmentIp,
+ // dataPort: val.dataPort,
+ // driveType: val.driveType
+ // })
+ },
+ deviceSearch() {
+ this.$refs.deviceRepairListModel.openPage()
+ this.$refs.deviceRepairListModel.title = '閫夋嫨璁惧'
+ this.$refs.deviceRepairListModel.disableSubmit = false
+ },
+ //绾ц仈妗唎nChange浜嬩欢
+ // onChange(value) {
+ //
+ // },
+ getParentIdsById(id) {
+ let that = this
+ getAction(this.url.getParentIdsById, {
+ id: id
+ }).then((res) => {
+ if (res.success) {
+ that.form.setFieldsValue({
+ partCategoryId: res.result
+ })
+ }
+ })
+ },
+ add(node) {
+ let _this = this
+ this.visible = true
+ this.form.resetFields()
+ this.model = {}
+ this.$nextTick(() => {
+ // _this.form.setFieldsValue({ 'tierType': node.entity.tierType + 1, 'parentName': node.title })
+ // _this.model.parentId = node.key
+ })
+ },
+ edit(record) {
+ this.form.resetFields()
+ this.model = Object.assign({}, record)
+ this.visible = true
+ this.$nextTick(() => {
+ this.form.setFieldsValue(pick(this.model, 'equipmentIds', 'equipmentName', 'mdcRepairType', 'startTime', 'endTime',
+ ))
+ })
+ },
+ close() {
+ this.$emit('close')
+ this.visible = false
+ this.show = false
+ },
+ handleOk() {
+ const that = this
+ // 瑙﹀彂琛ㄥ崟楠岃瘉
+ this.form.validateFields((err, values) => {
+ if (!err) {
+ that.confirmLoading = true
+ let formData = Object.assign(this.model, values)
+ let start = moment(formData.startTime).format('YYYY-MM-DD HH:mm');
+ let end = moment(formData.endTime).format('YYYY-MM-DD HH:mm');
+ let startOne = start.replace(/:/g,'');
+ let endOne = end.replace(/:/g,'');
+ if(startOne>=endOne){
+ that.$message.warning("缁撴潫鏃堕棿涓嶈兘灏忎簬寮�濮嬫椂闂�");
+ // console.log(this.model)
+ // this.endTime = ''
+ that.confirmLoading = false
+ }else{
+ let obj
+ if (!this.model.id) {
+ obj = postAction(this.url.add, formData)
+ } else {
+ obj = requestPut(this.url.edit, formData, {
+ id: this.model.id
+ })
+ }
+ obj.then((res) => {
+ if (res.success) {
+ that.$message.success("娣诲姞鎴愬姛")
+ // that.$message.success(res.message)
+ that.$emit('ok', res.result)
+ } else {
+ that.$message.warning(res.message)
+ }
+ }).finally(() => {
+ that.confirmLoading = false
+ that.close()
+ })
+
+ }
+
+ }
+ })
+ },
+ handleCancel() {
+ this.close()
+ },
+ // loadCascade() {
+ // getAction(this.url.loadCascadeData).then((res) => {
+ // if (res.success) {
+ // this.partCategoryCascade = res.result
+ // }
+ // })
+ // },
+ onCascadeChange(value, selectedOptions) {
+ this.cascadeDefaultValue = [...value]
+ },
+ filter(inputValue, path) {
+ return path.some(option => option.label.toLowerCase().indexOf(inputValue.toLowerCase()) > -1)
+ },
+ //楠岃瘉 缂栫爜
+ validateNum(rule, value, callback) {
+ var params = {
+ tableName: 'lxmes_base_part',
+ fieldName: 'num',
+ fieldVal: value,
+ dataId: this.model.id,
+ //鏁版嵁搴撲腑瀛樺湪瀛楁del_flag骞朵娇鐢ㄨ瀛楁浣滀负鏈垹闄ょ瓥鐣ワ紝鐪熷垹闄わ細false 鍋囧垹闄わ細true
+ delFlag: 'true'
+ }
+ duplicateCheck(params).then((res) => {
+ if (res.success) {
+ callback()
+ } else {
+ callback('瀛樿揣缂栫爜宸插瓨鍦�!')
+ }
+ })
+ },
+ checkboxChange(e) {
+ this.checked = e.target.checked
+ }
+ }
+ }
+</script>
+
+<style scoped>
+ .ant-btn {
+ padding: 0 10px;
+ margin-left: 3px;
+ }
+
+ .ant-form-item-control {
+ line-height: 0px;
+ }
+
+ /** 涓昏〃鍗曡闂磋窛 */
+ .ant-form .ant-form-item {
+ margin-bottom: 10px;
+ }
+
+ /** Tab椤甸潰琛岄棿璺� */
+ .ant-tabs-content .ant-form-item {
+ margin-bottom: 0px;
+ }
+</style>
diff --git a/src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerModalEdit.vue b/src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerModalEdit.vue
new file mode 100644
index 0000000..b524ed4
--- /dev/null
+++ b/src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerModalEdit.vue
@@ -0,0 +1,355 @@
+<template>
+ <a-modal :title="title" :width="800" :visible="visible" :confirmLoading="confirmLoading"
+ :okButtonProps="{ props: {disabled: disableSubmit} }" @ok="handleOk" @cancel="handleCancel" cancelText="鍏抽棴">
+ <a-spin :spinning="confirmLoading">
+ <a-form :form="form">
+ <a-row :gutter="24">
+ <a-col :span="12">
+ <a-form-item label="寮�濮嬫椂闂�" :labelCol="labelCol" :wrapperCol="wrapperCol">
+ <j-date :show-time="{format:'HH:mm'}" date-format="YYYY-MM-DD HH:mm" placeholder="璇烽�夋嫨寮�濮嬫椂闂�"
+ class="query-group-cust" v-decorator="['startTime', validatorRules.startTime]"></j-date>
+ </a-form-item>
+
+ </a-col>
+ <a-col :span="12">
+ <a-form-item label="璁惧鍚嶇О" :labelCol="labelCol" :wrapperCol="wrapperCol">
+ <a-input :disabled="disableSubmit" :readOnly="readOnly" allow-clear placeholder="璇疯緭鍏ヨ澶囧悕绉�"
+ v-decorator="['equipmentName',validatorRules.equipmentName]"/>
+ </a-form-item>
+ </a-col>
+ </a-row>
+ <a-row :gutter="24">
+ <a-col :span="12">
+ <a-form-item label="缁撴潫鏃堕棿" :labelCol="labelCol" :wrapperCol="wrapperCol">
+ <j-date :show-time="{format:'HH:mm'}" date-format="YYYY-MM-DD HH:mm" placeholder="璇烽�夋嫨缁撴潫鏃堕棿"
+ class="query-group-cust" v-decorator="['endTime', validatorRules.endTime]"></j-date>
+ </a-form-item>
+ </a-col>
+ <a-col :span="12">
+
+ <a-form-item label="璁惧缂栧彿" :labelCol="labelCol" :wrapperCol="wrapperCol">
+ <a-input :disabled="disableSubmit" :readOnly="readOnly" allow-clear placeholder="璇疯緭鍏ヨ澶囩紪鍙�"
+ v-decorator="['equipmentId',validatorRules.equipmentId]"/>
+ </a-form-item>
+ </a-col>
+ </a-row>
+ <a-row :gutter="24">
+ <a-col :span="24">
+ <a-form-item label="绫诲瀷" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
+ <a-input :disabled="disableSubmit" placeholder="璇疯緭鍏ョ被鍨�"
+ :triggerChange="true"
+ v-decorator="['noplanType', validatorRules.noplanType]"/>
+ </a-form-item>
+ </a-col>
+ </a-row>
+ <a-row :gutter="24">
+ <a-form-item label="澶囨敞" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
+ <a-textarea :disabled="disableSubmit" v-decorator="['remark', validatorRules.remark]" placeholder="璇疯緭鍏ュ娉�" ></a-textarea>
+ </a-form-item>
+ </a-row>
+ </a-form>
+
+ </a-spin>
+ <!--<device-repair-list-model ref="deviceRepairListModel" @sendSelectionRows="getDeviceRows"></device-repair-list-model>-->
+ <!--<device-repair-edit-list-model ref="deviceRepairListModel" @sendSelectionRows="getDeviceRows"></device-repair-edit-list-model>-->
+ </a-modal>
+</template>
+
+<script>
+ import moment from 'moment'
+ import pick from 'lodash.pick'
+ // import DeviceRepairListModel from './DeviceRepairListModel'
+ // import DeviceRepairEditListModel from './DeviceRepairEditListModel'
+ // import JDate from './JDate'
+ import {
+ getAction,
+ postAction,
+ requestPut
+ } from '@/api/manage'
+ import {
+ duplicateCheck
+ } from '@/api/api'
+ import AFormItem from 'ant-design-vue/es/form/FormItem'
+
+ export default {
+ name: 'UnplannedDowntimemManagerModalEdit',
+ components: { AFormItem },
+ // components: {DeviceRepairListModel,JDate,DeviceRepairEditListModel},
+ props: {},
+ data() {
+ return {
+ readOnly:true,
+ title: '',
+ visible: false,
+ show: false,
+ model: {},
+ checked: false,
+ startData:"",
+ endData:"",
+ labelCol: {
+ xs: {
+ span: 24
+ },
+ sm: {
+ span: 6
+ }
+ },
+ wrapperCol: {
+ xs: {
+ span: 24
+ },
+ sm: {
+ span: 18
+ }
+ },
+ labelColLong: {
+ xs: {
+ span: 24
+ },
+ sm: {
+ span: 3
+ }
+ },
+ wrapperColLong: {
+ xs: {
+ span: 24
+ },
+ sm: {
+ span: 21
+ }
+ },
+ confirmLoading: false,
+ form: this.$form.createForm(this),
+ validatorRules: {
+ equipmentId:{
+ rules:[
+ {
+ required:true,
+ message: ""
+ },
+ ],
+ },
+ equipmentName:{
+ rules:[
+ {
+ required:true,
+ message: ""
+ },
+ ],
+ },
+ // mdcRepairType:{
+ // rules:[
+ // {
+ // required:true,
+ // message: ""
+ // },
+ // ],
+ // initialValue: '浼戠彮'
+ // }
+ },
+
+ url: {
+ add: '/mdc/mdcNoplanClose/add',
+ edit: '/mdc/mdcNoplanClose/edit'
+ },
+
+ disableSubmit: true,
+ partCategoryCascade: [],
+ cascadeDefaultValue: [],
+ editStart:''
+ }
+ },
+ created() {
+ },
+
+ methods: {
+ disabledDate(current){
+ //Can not slect days before today and today
+ // return current && current < moment().endOf("day");
+ return current < moment().subtract(+1, 'day')//浠婂ぉ涔嬪墠鐨勫勾鏈堟棩涓嶅彲閫夛紝涓嶅寘鎷粖澶�
+ },
+ moment,
+ // onChange(dates) {
+ // console.log(111)
+ // console.log(dates,dateStrings)
+ // // console.log('From: ', dates[0], ', to: ', dates[1]);
+ // // console.log('From: ', dateStrings[0], ', to: ', dateStrings[1]);
+ // // this.startTime = dateStrings[0];
+ // // this.endData = dateStrings[1];
+ // // console.log(this.startData,this.endData);
+ // },
+ onChangeEnd(dates, dateStrings){
+ this.endTime = dateStrings[0];
+ },
+ getDeviceRows(val) {
+ this.form.setFieldsValue({
+ equipmentId: val.equipmentId,
+ equipmentName: val.equipmentName,
+ // // equipmentModel: val.equipmentModel,
+ // // equipmentIp: val.equipmentIp,
+ // // dataPort: val.dataPort,
+ // // driveType: val.driveType
+ })
+ // var equipmentIds;
+ // for(var i = 0;i<val.length;i++){
+ // if (i == 0) {
+ // equipmentIds = val[i].equipmentId;
+ // } else {
+ // equipmentIds = equipmentIds + "," + val[i].equipmentId;
+ // }
+ // }
+ // console.log("========",equipmentIds);
+ // this.form.setFieldsValue({
+ // equipmentId: equipmentIds,
+ // })
+ },
+ deviceSearch() {
+ this.$refs.deviceRepairListModel.openPage()
+ this.$refs.deviceRepairListModel.title = '閫夋嫨璁惧'
+ this.$refs.deviceRepairListModel.disableSubmit = false
+ },
+ //绾ц仈妗唎nChange浜嬩欢
+ // onChange(value) {
+ //
+ // },
+ getParentIdsById(id) {
+ let that = this
+ getAction(this.url.getParentIdsById, {
+ id: id
+ }).then((res) => {
+ if (res.success) {
+ that.form.setFieldsValue({
+ partCategoryId: res.result
+ })
+ }
+ })
+ },
+ add(node) {
+ let _this = this
+ this.visible = true
+ this.form.resetFields()
+ this.model = {}
+ this.$nextTick(() => {
+ // _this.form.setFieldsValue({ 'tierType': node.entity.tierType + 1, 'parentName': node.title })
+ // _this.model.parentId = node.key
+ })
+ },
+ edit(record) {
+ this.form.resetFields()
+ this.model = Object.assign({}, record)
+ // this.editStart = (this.model.startTime).replace(/:/g,'');
+ this.visible = true
+ this.$nextTick(() => {
+ this.form.setFieldsValue(pick(this.model,'equipmentId', 'equipmentName','noplanType', 'startTime','endTime','remark'
+ ))
+ })
+ },
+ close() {
+ this.$emit('close')
+ this.visible = false
+ this.show = false
+ },
+ handleOk() {
+ const that = this
+ // 瑙﹀彂琛ㄥ崟楠岃瘉
+ this.form.validateFields((err, values) => {
+ if (!err) {
+ that.confirmLoading = true
+ let formData = Object.assign(this.model, values)
+ let start = moment(formData.startTime).format('YYYY-MM-DD HH:mm');
+ let end = moment(formData.endTime).format('YYYY-MM-DD HH:mm');
+ let startOne = start.replace(/:/g,'');
+ let endOne = end.replace(/:/g,'');
+ if(startOne>=endOne){
+ that.$message.warning("缁撴潫鏃堕棿涓嶈兘灏忎簬寮�濮嬫椂闂�");
+ // console.log(this.model)
+ // this.endTime = ''
+ that.confirmLoading = false
+ }else{
+ let obj
+ if (!this.model.id) {
+ obj = postAction(this.url.add, formData)
+ } else {
+ obj = requestPut(this.url.edit, formData, {
+ id: this.model.id
+ })
+ }
+ obj.then((res) => {
+ if (res.success) {
+ that.$message.success("娣诲姞鎴愬姛")
+ // that.$message.success(res.message)
+ that.$emit('ok', res.result)
+ } else {
+ that.$message.warning(res.message)
+ }
+ }).finally(() => {
+ that.confirmLoading = false
+ that.close()
+ })
+
+ }
+
+ }
+ })
+ },
+ handleCancel() {
+ this.close()
+ },
+ // loadCascade() {
+ // getAction(this.url.loadCascadeData).then((res) => {
+ // if (res.success) {
+ // this.partCategoryCascade = res.result
+ // }
+ // })
+ // },
+ onCascadeChange(value, selectedOptions) {
+ this.cascadeDefaultValue = [...value]
+ },
+ filter(inputValue, path) {
+ return path.some(option => option.label.toLowerCase().indexOf(inputValue.toLowerCase()) > -1)
+ },
+ //楠岃瘉 缂栫爜
+ validateNum(rule, value, callback) {
+ var params = {
+ tableName: 'lxmes_base_part',
+ fieldName: 'num',
+ fieldVal: value,
+ dataId: this.model.id,
+ //鏁版嵁搴撲腑瀛樺湪瀛楁del_flag骞朵娇鐢ㄨ瀛楁浣滀负鏈垹闄ょ瓥鐣ワ紝鐪熷垹闄わ細false 鍋囧垹闄わ細true
+ delFlag: 'true'
+ }
+ duplicateCheck(params).then((res) => {
+ if (res.success) {
+ callback()
+ } else {
+ callback('瀛樿揣缂栫爜宸插瓨鍦�!')
+ }
+ })
+ },
+ checkboxChange(e) {
+ this.checked = e.target.checked
+ }
+ }
+ }
+</script>
+
+<style scoped>
+ .ant-btn {
+ padding: 0 10px;
+ margin-left: 3px;
+ }
+
+ .ant-form-item-control {
+ line-height: 0px;
+ }
+
+ /** 涓昏〃鍗曡闂磋窛 */
+ .ant-form .ant-form-item {
+ margin-bottom: 10px;
+ }
+
+ /** Tab椤甸潰琛岄棿璺� */
+ .ant-tabs-content .ant-form-item {
+ margin-bottom: 0px;
+ }
+</style>
diff --git a/src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerModalList.vue b/src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerModalList.vue
new file mode 100644
index 0000000..270c9d8
--- /dev/null
+++ b/src/views/mdc/base/modules/UnplannedDowntimemManager/UnplannedDowntimemManagerModalList.vue
@@ -0,0 +1,284 @@
+<template>
+ <a-modal :title="title" :width="1000" :visible="visible" :maskClosable="false" @ok="handleOk" @cancel="handleCancel"
+ cancelText="鍏抽棴">
+ <a-card :bordered="false">
+ <!-- 鏌ヨ鍖哄煙 -->
+ <div class="table-page-search-wrapper">
+ <a-form layout="inline" @keyup.enter.native="searchQuery">
+ <a-row :gutter="24">
+ <a-col :md="6" :sm="6">
+ <a-form-item label="閮ㄩ棬" >
+ <!--<a-select v-model="queryParam.sectionPid" placeholder="璇烽�夋嫨閮ㄩ棬" :options="sectionPData" @change="initGroupOptions" />-->
+ <a-tree-select
+ v-model="value"
+ style="width: 100%"
+ :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
+ :tree-data="treeData"
+ placeholder="璇烽�夋嫨閮ㄩ棬"
+ tree-default-expand-all
+ >
+ <!--<span v-if="key === '0-0-1'" slot="title" slot-scope="{ key, value }" style="color: #08c">-->
+ <!--Child Node1 {{ value }}-->
+ <!--</span>-->
+ </a-tree-select>
+ </a-form-item>
+ </a-col>
+
+ <a-col :md="6" :sm="6">
+ <a-form-item label="杞﹂棿" >
+ <!--<a-select v-model="queryParam.sectionId" placeholder="璇烽�夋嫨杞﹂棿" :options="sectionData"/>-->
+ <a-tree-select
+ v-model="valueProduct"
+ style="width: 100%"
+ :dropdown-style="{ maxHeight: '400px', overflow: 'auto' }"
+ :tree-data="sectionData"
+ placeholder="璇烽�夋嫨杞﹂棿"
+ tree-default-expand-all
+ >
+ <!--<span v-if="key === '0-0-1'" slot="title" slot-scope="{ key, value }" style="color: #08c">-->
+ <!--Child Node1 {{ value }}-->
+ <!--</span>-->
+ </a-tree-select>
+ </a-form-item>
+ </a-col>
+
+ <a-col :md="6" :sm="6">
+ <a-form-item label="璁惧缂栫爜">
+ <a-input placeholder="璇疯緭鍏ヨ澶囩紪鐮佹绱�" v-model="queryParam.equipmentId"></a-input>
+ </a-form-item>
+ </a-col>
+
+ <a-col :md="6" :sm="6">
+ <a-form-item label="璁惧鍚嶇О">
+ <a-input placeholder="璇疯緭鍏ヨ澶囧悕绉版绱�" v-model="queryParam.equipmentName"></a-input>
+ </a-form-item>
+ </a-col>
+ </a-row>
+ </a-form>
+ </div>
+ <!-- 鎿嶄綔鎸夐挳鍖哄煙 -->
+ <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>
+ </div>
+ <!-- table鍖哄煙-begin -->
+ <div>
+ <a-table ref="table" size="middle" bordered rowKey="id" :scroll="{聽 y: 300聽}" :columns="columns"
+ :dataSource="dataSource" :pagination="ipagination" :loading="loading"
+ :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
+ @change="handleTableChange">
+ </a-table>
+ </div>
+ <!-- table鍖哄煙-end -->
+ </a-card>
+ </a-modal>
+</template>
+
+<script>
+ import {
+ ajaxGetSelectItems
+ } from '@/api/api'
+ import JDictSelectTag from '@/components/dict/JDictSelectTag'
+ import {
+ deleteAction,
+ requestPut,
+ getAction,
+ postAction
+ } from '@/api/manage'
+ import {
+ JeecgListMixin
+ } from '@/mixins/JeecgListMixin'
+ import JInput from '@/components/jeecg/JInput'
+ import JEllipsis from '@/components/jeecg/JEllipsis'
+ import Tooltip from 'ant-design-vue/es/tooltip'
+ import JDate from '@/components/jeecg/JDate'
+ import moment from 'moment'
+
+ export default {
+ name: 'DeviceRepairListModel',
+ mixins: [JeecgListMixin],
+ components: {
+ JDictSelectTag,
+ JEllipsis,
+ JInput,
+ Tooltip,
+ JDate
+ },
+ props: {
+ status: {
+ type: Number,
+ default: 1
+ }
+ },
+ data() {
+ return {
+ treeData:[],
+ readOnly:true,
+ title:'',
+ visible: false,
+ disableMixinCreated: true,
+ queryParam: {},
+ columns: [{
+ title: '璁惧缂栫爜',
+ align: 'center',
+ dataIndex: 'equipmentId',
+ },
+ {
+ title: '璁惧鍚嶇О',
+ align: 'center',
+ dataIndex: 'equipmentName',
+ },
+ {
+ title: '椹卞姩绫诲瀷',
+ align: 'center',
+ dataIndex: 'driveType',
+ },
+ {
+ title: '鏁版帶绯荤粺',
+ align: 'center',
+ dataIndex: 'controlSystem',
+ }
+ ],
+ sectionPData: [],
+ sectionData: [],
+ url: {
+ list: '/mdc/mdcEquipment/findEquipmentList',
+ loadOptions: '/sys/sysDepart/loadDepartTreeOptions',
+ loadProductionOptions:'/mdc/mdcProduction/loadProductionTreeOptions'
+ },
+ value:undefined,
+ valueProduct:undefined
+ }
+ },
+ created() {
+
+ },
+ watch: {
+ value(value) {
+ // console.log(value);
+ this.queryParam.departId = value
+ },
+ valueProduct(value){
+ this.queryParam.productionId = value
+ }
+ },
+
+ methods: {
+ openPage() {
+ this.visible = true
+ this.onClearSelected()
+ this.dataSource = [];
+ this.queryParam = {
+ status: this.status
+ };
+ this.loadData();
+ this.initOptions();
+ this.initGroupOptions()
+ },
+ onSelectChange(selectedRowKeys, selectionRows) {
+ // this.SelectedList.push(selectedRowKeys);
+ this.selectedRowKeys = selectedRowKeys;
+ this.selectionRows = selectionRows
+ // this.SelectedList =[...this.SelectedList,...selectionRows];
+ // console.log(this.SelectedList);
+ },
+ loadData(arg) {
+ if(!this.url.list){
+ this.$message.error("璇疯缃畊rl.list灞炴��!")
+ return
+ }
+ //鍔犺浇鏁版嵁 鑻ヤ紶鍏ュ弬鏁�1鍒欏姞杞界涓�椤电殑鍐呭
+ if (arg === 1) {
+ this.ipagination.current = 1;
+ }
+ var params = this.getQueryParams();//鏌ヨ鏉′欢
+
+ if(!params){
+ return false;
+ }
+
+ this.loading = true;
+ getAction(this.url.list, params).then((res) => {
+ if (res.success) {
+ // console.log(res)
+ //update-begin---author:zhangyafei Date:20201118 for锛氶�傞厤涓嶅垎椤电殑鏁版嵁鍒楄〃------------
+ this.dataSource = res.result.records||res.result;
+ if(res.result.total)
+ {
+ this.ipagination.total = res.result.total;
+ }else{
+ this.ipagination.total = 0;
+ }
+ //update-end---author:zhangyafei Date:20201118 for锛氶�傞厤涓嶅垎椤电殑鏁版嵁鍒楄〃------------
+ }else{
+ this.$message.warning(res.message)
+ }
+ }).finally(() => {
+ this.loading = false
+ })
+ },
+ modalFormOk(val) {
+ // 鏂板/淇敼 鎴愬姛鏃讹紝閲嶈浇鍒楄〃
+ this.loadData();
+ this.selectedRowKeys = [val.id];
+ },
+ searchQuery() {
+ this.loadData();
+ this.onClearSelected()
+ },
+ searchReset() {
+ this.queryParam = {
+ status: 1
+ };
+ this.loadData();
+ this.onClearSelected()
+ },
+ close() {
+ this.$emit('close')
+ this.visible = false
+ },
+ handleCancel() {
+ this.close()
+ },
+ handleOk() {
+ this.$emit('sendSelectionRows', this.selectionRows)
+ this.close()
+ },
+ initOptions() {
+ getAction(this.url.loadOptions).then(res => {
+ if (res.success) {
+ this.treeData = res.result
+ } else {
+ this.$message.warning(res.message)
+ }
+ })
+ },
+
+
+ initGroupOptions() {
+ getAction(this.url.loadProductionOptions).then(res => {
+ if (res.success) {
+ this.sectionData = res.result
+ } else {
+ this.$message.warning(res.message)
+ }
+ })
+ }
+ },
+ }
+</script>
+<style>
+ @import '~@assets/less/common.less';
+
+ .frozenRowClass {
+ color: #c9c9c9;
+ }
+
+ .success {
+ color: green;
+ }
+
+ .error {
+ color: red;
+ }
+</style>
--
Gitblit v1.9.3