From 9b06e164d45087c5b6150c29ac9d5c01c9ae2b08 Mon Sep 17 00:00:00 2001
From: zhuzhuanzhuan
Date: 星期三, 12 七月 2023 14:18:24 +0800
Subject: [PATCH] 假期配置界面以及功能

---
 src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModal.vue     |   14 
 src/views/mdc/base/modules/HolidayManagement/HolidayManagementModalEdit.vue         |  330 ++++++++++
 src/views/mdc/base/modules/HolidayManagement/HolidayManagementModal.vue             |  323 ++++++++++
 src/views/mdc/base/HolidayManagement.vue                                            |  122 +++
 src/views/mdc/base/modules/HolidayManagement/HolidayManagementList.vue              |  566 ++++++++++++++++++
 src/views/mdc/base/modules/HolidayManagement/HolidayManagementModalList.vue         |  284 +++++++++
 src/views/mdc/base/modules/HolidayManagement/HolidayManagementForm.vue              |  124 ++++
 src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModalEdit.vue |   60 -
 src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationForm.vue      |    6 
 9 files changed, 1,786 insertions(+), 43 deletions(-)

diff --git a/src/views/mdc/base/HolidayManagement.vue b/src/views/mdc/base/HolidayManagement.vue
new file mode 100644
index 0000000..443b7d3
--- /dev/null
+++ b/src/views/mdc/base/HolidayManagement.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">
+          <holiday-management-list  ref="HolidayManagementList" :nodePeople='selectPeople' :nodeTree = 'selectEquement' :Type="slectTypeTree"></holiday-management-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 HolidayManagementList from './modules/HolidayManagement/HolidayManagementList'
+  import JSuperQuery from '@/components/jeecg/JSuperQuery'
+  import JThirdAppButton from '@/components/jeecgbiz/thirdApp/JThirdAppButton'
+  import DepartTree from './modules/DepartList/DepartListTree/DepartTree'
+  export default {
+    name: 'HolidayManagement',
+    components: {
+      JThirdAppButton,
+      JInput,
+      BaseTree,
+      JSuperQuery,
+      DepartTree,
+      HolidayManagementList
+    },
+    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/HolidayManagement/HolidayManagementForm.vue b/src/views/mdc/base/modules/HolidayManagement/HolidayManagementForm.vue
new file mode 100644
index 0000000..4973bac
--- /dev/null
+++ b/src/views/mdc/base/modules/HolidayManagement/HolidayManagementForm.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: 'HolidayManagementForm',
+    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/HolidayManagement/HolidayManagementList.vue b/src/views/mdc/base/modules/HolidayManagement/HolidayManagementList.vue
new file mode 100644
index 0000000..bddc15c
--- /dev/null
+++ b/src/views/mdc/base/modules/HolidayManagement/HolidayManagementList.vue
@@ -0,0 +1,566 @@
+<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"/>
+            </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>-->
+    </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>-->
+    <holiday-management-modal ref="modalForm" @ok="modalFormOk"></holiday-management-modal>
+    <holiday-management-modal-edit  ref="modalFormedit" @ok="modalFormOk"></holiday-management-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 HolidayManagementModal from './HolidayManagementModal'
+  import HolidayManagementModalEdit from './HolidayManagementModalEdit'
+  // 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: 'HolidayManagementList',
+    mixins: [JeecgListMixin],
+    components: {
+      Tooltip,
+      HolidayManagementModal,
+      HolidayManagementModalEdit,
+      // 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: '璁惧缂栧彿',
+            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: 'vacationDate',
+            // scopedSlots:{customRender:'startTime'},
+            // customRender:(text,row,index) => {
+            //   return moment(text).format("YYYY-MM-DD HH:mm:ss")
+            // }
+          },
+          {
+            title: '绫诲瀷',
+            align: 'center',
+            dataIndex: 'type'
+          },
+          {
+            title: '澶囨敞',
+            align: 'center',
+            dataIndex: 'notes'
+          },
+          {
+            title: '鎿嶄綔',
+            dataIndex: 'action',
+            scopedSlots: {customRender: 'action'},
+            align: "center",
+            width: 150
+          }
+        ],
+        url: {
+          list: '/mdc/mdcVacationManagement/pageList',
+          deleteBatch: '/mdc/mdcVacationManagement/deleteBatchVacation',
+          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.deleteBatch){
+          this.$message.error("璇疯缃畊rl.delete灞炴��!")
+          return
+        }
+        var that = this;
+        deleteAction(that.url.deleteBatch, {id: id}).then((res) => {
+          if (res.success) {
+            //閲嶆柊璁$畻鍒嗛〉闂
+            that.reCalculatePage(1)
+            that.$message.success(res.message);
+            that.searchQuery();
+          } else {
+            that.$message.warning(res.message);
+          }
+        });
+      },
+      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/HolidayManagement/HolidayManagementModal.vue b/src/views/mdc/base/modules/HolidayManagement/HolidayManagementModal.vue
new file mode 100644
index 0000000..e1c5651
--- /dev/null
+++ b/src/views/mdc/base/modules/HolidayManagement/HolidayManagementModal.vue
@@ -0,0 +1,323 @@
+<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 date-format="YYYY-MM-DD" placeholder="璇烽�夋嫨鏃ユ湡"
+                       v-decorator="['vacationDate', validatorRules.vacationDate]"></j-date>
+            </a-form-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-item label="绫诲瀷" :labelCol="labelCol" :wrapperCol="wrapperCol">
+              <a-input :disabled="disableSubmit" placeholder="璇疯緭鍏ョ被鍨�"
+                       v-decorator="['type', validatorRules.type]"/>
+            </a-form-item>
+          </a-col>
+        </a-row>
+        <a-row :gutter="24">
+          <a-form-item label="澶囨敞" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
+            <a-textarea   v-decorator="['notes', validatorRules.notes]" placeholder="璇疯緭鍏ュ娉�"  ></a-textarea>
+          </a-form-item>
+        </a-row>
+      </a-form>
+    </a-spin>
+    <holiday-management-modal-list ref="deviceRepairListModel" @sendSelectionRows="getDeviceRows"></holiday-management-modal-list>
+
+  </a-modal>
+</template>
+
+<script>
+  import moment from 'moment'
+  import pick from 'lodash.pick'
+  import HolidayManagementModalList from './HolidayManagementModalList'
+  // import JDate from './JDate'
+  import {
+    getAction,
+    postAction,
+    requestPut
+  } from '@/api/manage'
+  import {
+    duplicateCheck
+  } from '@/api/api'
+
+  export default {
+    name: 'HolidayManagementModal',
+    components: {HolidayManagementModalList},
+    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/mdcVacationManagement/addVacation',
+          edit: '/mdc/mdcVacationManagement/editVacation'
+        },
+
+        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, 'equipmentId', 'equipmentName', 'vacationDate', 'type', 'notes',
+          ))
+        })
+      },
+      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:ss');
+            // let end = moment(formData.endTime).format('YYYY-MM-DD HH:mm:ss');
+            // let startOne = start.replace(/:/g,'');
+            // let endOne = end.replace(/:/g,'');
+            // var data = new Date();
+            // let stertDate = moment(data).format("YYYY-MM-DD HH:mm:ss");
+            // let dataStart = stertDate.replace(/:/g,'');
+            // if(startOne < dataStart){
+            //   that.$message.warning("寮�濮嬫椂闂翠笉鑳藉皬浜庡綋鍓嶆椂闂�")
+            //   that.confirmLoading = false
+            // }else{
+            //   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/HolidayManagement/HolidayManagementModalEdit.vue b/src/views/mdc/base/modules/HolidayManagement/HolidayManagementModalEdit.vue
new file mode 100644
index 0000000..7e3e6bc
--- /dev/null
+++ b/src/views/mdc/base/modules/HolidayManagement/HolidayManagementModalEdit.vue
@@ -0,0 +1,330 @@
+<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 date-format="YYYY-MM-DD" placeholder="璇烽�夋嫨鏃堕棿"
+                      class="query-group-cust" v-decorator="['vacationDate', validatorRules.vacationDate]"></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">
+              <a-input :disabled="disableSubmit" placeholder="璇疯緭鍏ョ被鍨�"
+                       v-decorator="['type', validatorRules.type]"/>
+            </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-form-item label="澶囨敞" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
+            <a-textarea  :disabled="disableSubmit"  v-decorator="['notes', validatorRules.notes]" 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'
+
+  export default {
+    name: 'HolidayManagementModalEdit',
+    // 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/mdcVacationManagement/addVacation',
+          edit: '/mdc/mdcVacationManagement/editVacation'
+        },
+
+        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','vacationDate', 'type','notes'
+          ))
+        })
+      },
+      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 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/HolidayManagement/HolidayManagementModalList.vue b/src/views/mdc/base/modules/HolidayManagement/HolidayManagementModalList.vue
new file mode 100644
index 0000000..270c9d8
--- /dev/null
+++ b/src/views/mdc/base/modules/HolidayManagement/HolidayManagementModalList.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>
diff --git a/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationForm.vue b/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationForm.vue
index beb3f7a..eef3d6b 100644
--- a/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationForm.vue
+++ b/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationForm.vue
@@ -14,8 +14,8 @@
             </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 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">
@@ -116,7 +116,7 @@
               that.confirmLoading = false;
             })
           }
-         
+
         })
       },
     }
diff --git a/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModal.vue b/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModal.vue
index c39161a..977e24f 100644
--- a/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModal.vue
+++ b/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModal.vue
@@ -263,13 +263,13 @@
       handleCancel() {
         this.close()
       },
-      loadCascade() {
-        getAction(this.url.loadCascadeData).then((res) => {
-          if (res.success) {
-            this.partCategoryCascade = res.result
-          }
-        })
-      },
+      // loadCascade() {
+      //   getAction(this.url.loadCascadeData).then((res) => {
+      //     if (res.success) {
+      //       this.partCategoryCascade = res.result
+      //     }
+      //   })
+      // },
       onCascadeChange(value, selectedOptions) {
         this.cascadeDefaultValue = [...value]
       },
diff --git a/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModalEdit.vue b/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModalEdit.vue
index 0a48a9a..ccf44b3 100644
--- a/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModalEdit.vue
+++ b/src/views/mdc/base/modules/TorqueconfigurationList/TorqueconfigurationModalEdit.vue
@@ -138,7 +138,7 @@
 
         url: {
           add: '/mdc/mdcEquipmentRepair/add',
-          edit: '/mdc/mdcEquipmentRepair/edit'
+          edit: '/mdc/MdcTorqueConfig/editMdcTorqueConfig'
         },
 
         disableSubmit: true,
@@ -245,44 +245,38 @@
             that.confirmLoading = true
             let formData = Object.assign(this.model, values)
             let obj
-                if (!this.model.id) {
-                  obj = postAction(this.url.add, formData)
-                } else {
-
-                  obj = requestPut(this.url.edit, formData, {
-                    id: this.model.id
-                  })
-                  let shijian = startOne
-                }
-                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()
-                })
+            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
-          }
-        })
-      },
+      // loadCascade() {
+      //   getAction(this.url.loadCascadeData).then((res) => {
+      //     if (res.success) {
+      //       this.partCategoryCascade = res.result
+      //     }
+      //   })
+      // },
       onCascadeChange(value, selectedOptions) {
         this.cascadeDefaultValue = [...value]
       },

--
Gitblit v1.9.3