From 7a1652cf61e65a2dd2ad1b52c4b383207f3a6956 Mon Sep 17 00:00:00 2001
From: zhuzhuanzhuan
Date: 星期五, 01 九月 2023 14:03:00 +0800
Subject: [PATCH] 加班管理

---
 src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementModalEdit.vue |    4 
 src/views/mdc/base/modules/shift/ShiftInfoModel.vue                           |    1 
 src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementModalList.vue |  234 +++++++++++++++++++++++++++++---------
 src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementModal.vue     |   61 +++------
 src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementList.vue      |   22 +-
 5 files changed, 216 insertions(+), 106 deletions(-)

diff --git a/src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementList.vue b/src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementList.vue
index dbe7ce7..cd51c86 100644
--- a/src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementList.vue
+++ b/src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementList.vue
@@ -155,7 +155,7 @@
           {
             title: '鏃ユ湡',
             align: 'center',
-            dataIndex: 'torqueDate',
+            dataIndex: 'effectiveDate',
             // scopedSlots:{customRender:'startTime'},
             // customRender:(text,row,index) => {
             //   return moment(text).format("YYYY-MM-DD HH:mm:ss")
@@ -164,27 +164,27 @@
           {
             title: '鐝寮�濮嬫椂闂�',
             align: 'center',
-            dataIndex: 'torqueValue'
+            dataIndex: 'startDate'
           },
           {
             title: '鐝缁撴潫鏃堕棿',
             align: 'center',
-            dataIndex: 'torqueValue'
+            dataIndex: 'endDate'
           },
           {
             title: '鍔犵彮寮�濮嬫椂闂�',
             align: 'center',
-            dataIndex: 'torqueValue'
+            dataIndex: 'startTime'
           },
           {
             title: '鍔犵彮缁撴潫鏃堕棿',
             align: 'center',
-            dataIndex: 'torqueValue'
+            dataIndex: 'endTime'
           },
           {
             title: '澶囨敞',
             align: 'center',
-            dataIndex: 'notes'
+            dataIndex: 'remark'
           },
           {
             title: '鎿嶄綔',
@@ -195,12 +195,12 @@
           }
         ],
         url: {
-          list: '/mdc/MdcTorqueConfig/pageList',
-          delete: '/mdc/MdcTorqueConfig/deleteMdcTorqueConfig',
-          deleteBatch: '/mdc/MdcTorqueConfig/deleteBatchMdcTorqueConfig',
+          list: '/mdc/mdcEquipmentOvertime/list',
+          delete: '/mdc/mdcEquipmentOvertime/delete',
+          deleteBatch: '/mdc/mdcEquipmentOvertime/deleteBatch',
           getEquipmentByPid: '/mdc/mdcequipment/getEquipmentByPid',
-          exportXlsUrl: "/mdc/MdcTorqueConfig/exportXls",
-          importExcelUrl: "/mdc/MdcTorqueConfig/importExcel",
+          exportXlsUrl: "/mdc/mdcEquipmentOvertime/exportXls",
+          importExcelUrl: "/mdc/mdcEquipmentOvertime/importExcel",
         }
       }
     },
diff --git a/src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementModal.vue b/src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementModal.vue
index ba6250a..ff5ad89 100644
--- a/src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementModal.vue
+++ b/src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementModal.vue
@@ -5,45 +5,30 @@
       <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]"
+            <a-form-item label="鐝閫夋嫨" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
+              <a-input-search :readOnly="true" v-decorator="['ids', validatorRules.ids]"
                               @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="true" date-format="YYYY-MM-DD HH:mm:ss" placeholder="璇烽�夋嫨鏃堕棿"
-                       v-decorator="['torqueDate', validatorRules.torqueDate]"></j-date>
-            </a-form-item>
-          </a-col>
-          <!--<a-col :span="12">-->
-            <!--<a-form-item label="鎵煩鍊�" :labelCol="labelCol" :wrapperCol="wrapperCol">-->
-              <!--<a-input-number :min="0" :disabled="disableSubmit" placeholder="璇疯緭鍏ユ壄鐭╁��"-->
-                       <!--v-decorator="['torqueValue', validatorRules.torqueValue]"/>-->
-            <!--</a-form-item>-->
-          <!--</a-col>-->
-          <a-col :span="12">
             <a-form-item label="鍔犵彮寮�濮嬫椂闂�" :labelCol="labelCol" :wrapperCol="wrapperCol">
               <a-time-picker :disabled="disableSubmit" :readOnly="disableSubmit" allow-clear
-                             v-decorator="['startDate',validatorRules.startDate]"/>
+                             v-decorator="['startTime',validatorRules.startTime]"/>
             </a-form-item>
           </a-col>
-        </a-row>
-        <a-row :gutter="24">
-
           <a-col :span="12">
             <a-form-item label="鍔犵彮缁撴潫鏃堕棿" :labelCol="labelCol" :wrapperCol="wrapperCol">
               <a-time-picker :disabled="disableSubmit" :readOnly="disableSubmit"
-                             v-decorator="['endDate',validatorRules.endDate]"/>
+                             v-decorator="['endTime',validatorRules.endTime]"/>
             </a-form-item>
           </a-col>
         </a-row>
         <a-row :gutter="24">
           <a-col :span="24">
           <a-form-item label="澶囨敞" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
-            <a-textarea :maxLength="20"  v-decorator="['notes', validatorRules.notes]" placeholder="璇疯緭鍏ュ娉�"  ></a-textarea>
+            <a-textarea :maxLength="20"  v-decorator="['remark', validatorRules.remark]" placeholder="璇疯緭鍏ュ娉�"  ></a-textarea>
           </a-form-item>
           </a-col>
         </a-row>
@@ -129,8 +114,8 @@
         },
 
         url: {
-          add: '/mdc/MdcTorqueConfig/addMdcTorqueConfig',
-          edit: '/mdc/MdcTorqueConfig/editMdcTorqueConfig'
+          add: '/mdc/mdcEquipmentOvertime/add',
+          edit: '/mdc/mdcEquipmentOvertime/edit'
         },
 
         disableSubmit: true,
@@ -161,17 +146,17 @@
         this.endTime = dateStrings[0];
       },
       getDeviceRows(val) {
-        var equipmentIds;
+        var calendarId;
         for(var i = 0;i<val.length;i++){
           if (i == 0) {
-            equipmentIds =  val[i].equipmentId;
+            calendarId =  val[i].id;
           } else {
-            equipmentIds = equipmentIds + "," + val[i].equipmentId;
+            calendarId = ids + "," + val[i].id;
           }
         }
         // console.log("========",equipmentIds);
         this.form.setFieldsValue({
-          equipmentIds: equipmentIds,
+          ids: calendarId,
         })
         //   this.form.setFieldsValue({
         // equipmentId: val.equipmentId,
@@ -234,23 +219,23 @@
           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,'');
+            let start = moment(formData.startTime).format('HH:mm:ss');
+            let end = moment(formData.endTime).format('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 stertDate = moment(data).format("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{
+              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)
@@ -280,7 +265,7 @@
                   that.close()
                 })
               }
-            // }
+            }
 
           // }
         })
diff --git a/src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementModalEdit.vue b/src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementModalEdit.vue
index 683850e..1086fea 100644
--- a/src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementModalEdit.vue
+++ b/src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementModalEdit.vue
@@ -137,8 +137,8 @@
         },
 
         url: {
-          add: '/mdc/mdcEquipmentRepair/add',
-          edit: '/mdc/MdcTorqueConfig/editMdcTorqueConfig'
+          add: '/mdc/mdcEquipmentOvertime/add',
+          edit: '/mdc/mdcEquipmentOvertime/edit'
         },
 
         disableSubmit: true,
diff --git a/src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementModalList.vue b/src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementModalList.vue
index 86d898c..94d1786 100644
--- a/src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementModalList.vue
+++ b/src/views/mdc/base/modules/OvertimeManagement/OvertimeManagementModalList.vue
@@ -7,42 +7,11 @@
       <div class="table-page-search-wrapper">
         <a-form layout="inline" @keyup.enter.native="searchQuery">
           <a-row :gutter="24">
-            <a-col :md="6" :sm="6"  v-if="isDepartType == 0">
-              <a-form-item label="閮ㄩ棬" v-if="isDepartType == 0">
-                <!--<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="8" :sm="8">
+             <a-form-item label="鏃堕棿">
+               <a-range-picker @change="dateParamChange" format="YYYYMMDD" v-model="dates"/>
+             </a-form-item>
+           </a-col>
             <a-col :md="6" :sm="6">
               <a-form-item label="璁惧缂栫爜">
                 <a-input placeholder="璇疯緭鍏ヨ澶囩紪鐮佹绱�" v-model="queryParam.equipmentId"></a-input>
@@ -68,6 +37,11 @@
                  :dataSource="dataSource" :pagination="ipagination" :loading="loading"
                  :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange}"
                  @change="handleTableChange">
+                    <span slot="isDaySpan" slot-scope="text, record">
+           <span v-if="text == 'true'">鏄�</span>
+           <span v-if="text == 'false'">鍚�</span>
+         </span>
+
         </a-table>
       </div>
       <!-- table鍖哄煙-end -->
@@ -77,6 +51,7 @@
 
 <script>
   import {mapActions} from 'vuex'
+  import { filterObj } from '@/utils/util';
   import {
     ajaxGetSelectItems
   } from '@/api/api'
@@ -98,7 +73,7 @@
 
   export default {
     name: 'DeviceCalendarListModel',
-    mixins: [JeecgListMixin],
+    // mixins: [JeecgListMixin],
     components: {
       JDictSelectTag,
       JEllipsis,
@@ -113,7 +88,43 @@
       }
     },
     data() {
-      return {
+      return{
+        /* 鏌ヨ鏉′欢-璇蜂笉瑕佸湪queryParam涓0鏄庨潪瀛楃涓插�肩殑灞炴�� */
+        queryParam: {},
+        /* 鏁版嵁婧� */
+        dataSource:[],
+        /* 鍒嗛〉鍙傛暟 */
+        ipagination:{
+          current: 1,
+          pageSize: 10,
+          pageSizeOptions: ['10', '20', '30'],
+          showTotal: (total, range) => {
+            return range[0] + "-" + range[1] + " 鍏�" + total + "鏉�"
+          },
+          showQuickJumper: true,
+          showSizeChanger: true,
+          total: 0
+        },
+        /* 鎺掑簭鍙傛暟 */
+        isorter:{
+          column: 'createTime',
+          order: 'desc',
+        },
+        /* 绛涢�夊弬鏁� */
+        filters: {},
+        /* table鍔犺浇鐘舵�� */
+        loading:false,
+        /* table閫変腑keys*/
+        selectedRowKeys: [],
+        /* table閫変腑records*/
+        selectionRows: [],
+        /* 鏌ヨ鎶樺彔 */
+        toggleSearchStatus:false,
+        /* 楂樼骇鏌ヨ鏉′欢鐢熸晥鐘舵�� */
+        superQueryFlag:false,
+        /* 楂樼骇鏌ヨ鏉′欢 */
+        superQueryParams: '',
+        dates:[],
         isDepartType:'',
         /*readOnly:true,*/
         title:'',
@@ -132,11 +143,15 @@
             customRender: function (t, r, index) {
               return parseInt(index) + 1;
             }
-          },{
-
-            title: '璁惧缂栫爜',
+          }, {
+            title: '鏃ユ湡',
             align: 'center',
-            dataIndex: 'equipmentId',
+            dataIndex: 'effectiveDate',
+          },
+          {
+            title: '璁惧缂栧彿',
+            align: 'center',
+            dataIndex: 'equipmentId'
           },
           {
             title: '璁惧鍚嶇О',
@@ -144,20 +159,46 @@
             dataIndex: 'equipmentName',
           },
           {
-            title: '椹卞姩绫诲瀷',
+            title: '鐝埗',
             align: 'center',
-            dataIndex: 'driveType'
+            dataIndex: 'shiftName'
           },
           {
-            title: '鏁版帶绯荤粺',
+            title: '鐝',
             align: 'center',
-            dataIndex: 'controlSystem'
+            dataIndex: 'shiftSubName'
           },
+          {
+            title: '寮�濮嬫椂闂�',
+            align: 'center',
+            dataIndex: 'startDate'
+          },
+          {
+            title: '缁撴潫鏃堕棿',
+            align: 'center',
+            dataIndex: 'endDate'
+          },
+          {
+            title: '鏄惁璺ㄥぉ',
+            align: 'center',
+            dataIndex: 'isDaySpan',
+            scopedSlots: { customRender: 'isDaySpan' }
+          },
+          {
+            title: '寮�濮嬩紤鎭椂闂�',
+            align: 'center',
+            dataIndex: 'sleepStartDate'
+          },
+          {
+            title: '缁撴潫浼戞伅鏃堕棿',
+            align: 'center',
+            dataIndex: 'sleepEndDate'
+          }
         ],
         sectionPData: [],
         sectionData: [],
         url: {
-          list: '/mdc/mdcEquipment/findEquipmentList',
+          list: '/mdc/mdcDeviceCalendar/list',
           loadOptions: '/sys/sysDepart/loadDepartTreeOptions',
           loadProductionOptions:'/mdc/mdcProduction/loadProductionTreeOptions'
         },
@@ -165,8 +206,12 @@
         valueProduct:undefined
       }
     },
-    created() {
-      this.queryTreeData()
+    created(){
+      this.dates = [moment().subtract('days', 0), moment().subtract('days', 0)]
+      this.queryParam.startTime = moment(this.dates[0]).format('YYYYMMDD')
+      this.queryParam.endTime = moment(this.dates[1]).format('YYYYMMDD')
+      // this.queryTreeData()
+      this.loadData()
     },
     watch: {
       value(value) {
@@ -193,6 +238,79 @@
         }).finally(() =>{
         })
       },
+      getQueryParams() {
+        //鑾峰彇鏌ヨ鏉′欢
+        let sqp = {}
+        if(this.superQueryParams){
+          sqp['superQueryParams']=encodeURI(this.superQueryParams)
+          sqp['superQueryMatchType'] = this.superQueryMatchType
+        }
+        var param = Object.assign(sqp, this.queryParam, this.isorter ,this.filters);
+        param.field = this.getQueryField();
+        param.pageNo = this.ipagination.current;
+        param.pageSize = this.ipagination.pageSize;
+        //鑾峰彇鐢ㄦ埛瀹氬埗鐨勫弬鏁板睘鎬�
+        if (this.getCustomQueryParams) {
+          param = this.getCustomQueryParams(param);
+          if(!param){
+            return false;
+          }
+        }
+
+        return filterObj(param);
+      },
+      getQueryField() {
+        //TODO 瀛楁鏉冮檺鎺у埗
+        var str = "id,";
+        this.columns.forEach(function (value) {
+          str += "," + value.dataIndex;
+        });
+        return str;
+      },
+      loadData(arg) {
+        this.dataSource = [];
+        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;
+        }
+        params.startTime = this.queryParam.startTime;
+        params.endTime = this.queryParam.endTime;
+        params.orderByName = "ascend";
+        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
+        })
+      },
+      dateParamChange(v1, v2) {
+        this.queryParam.startTime = v2[0]
+        this.queryParam.endTime = v2[1]
+      },
       onSelectChange(selectedRowKeys, selectionRows) {
         // this.SelectedList.push(selectedRowKeys);
         this.selectedRowKeys = selectedRowKeys;
@@ -211,13 +329,17 @@
         this.ipagination = pagination;
         this.loadData();
       },
+      onClearSelected() {
+        this.selectedRowKeys = [];
+        this.selectionRows = [];
+      },
       openPage() {
         this.visible = true
         this.onClearSelected()
         this.dataSource = [];
-        this.queryParam = {
-          status: this.status
-        };
+        // this.queryParam = {
+        //   status: this.status
+        // };
 
         this.loadData();
         this.initOptions();
@@ -273,9 +395,11 @@
         this.onClearSelected()
       },
       searchReset() {
-        this.queryParam = {
-          status: 1
-        };
+        // this.queryParam = {
+        //   status: 1
+        // };
+        this.dates = []
+        this.queryParam = {}
         this.loadData();
         this.onClearSelected()
       },
diff --git a/src/views/mdc/base/modules/shift/ShiftInfoModel.vue b/src/views/mdc/base/modules/shift/ShiftInfoModel.vue
index 68407de..ed99075 100644
--- a/src/views/mdc/base/modules/shift/ShiftInfoModel.vue
+++ b/src/views/mdc/base/modules/shift/ShiftInfoModel.vue
@@ -247,6 +247,7 @@
                   message:'娑堟伅',
                   description:"淇濆瓨澶辫触锛�"
                 });
+                that.confirmLoading = false
                 that.close()
               }else{
                 formData.shiftSubStatus = 1

--
Gitblit v1.9.3