From 54c22f2f0e98c35e48cdad6c4d0299d08beea630 Mon Sep 17 00:00:00 2001
From: Lius <Lius2225@163.com>
Date: 星期一, 28 七月 2025 10:15:13 +0800
Subject: [PATCH] update

---
 src/views/mdc/base/modules/EquipmentStandbyShutDown/EquipmentStandbyShutdownModal.vue |  331 +++++++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 283 insertions(+), 48 deletions(-)

diff --git a/src/views/mdc/base/modules/EquipmentStandbyShutDown/EquipmentStandbyShutdownModal.vue b/src/views/mdc/base/modules/EquipmentStandbyShutDown/EquipmentStandbyShutdownModal.vue
index 3332d8a..1e3581f 100644
--- a/src/views/mdc/base/modules/EquipmentStandbyShutDown/EquipmentStandbyShutdownModal.vue
+++ b/src/views/mdc/base/modules/EquipmentStandbyShutDown/EquipmentStandbyShutdownModal.vue
@@ -1,9 +1,18 @@
 <template>
-  <a-modal :title="title" :width="500" :visible="visible" :confirmLoading="confirmLoading" @ok="handleOk"
+  <a-modal :title="title" :width="900" :visible="visible" :confirmLoading="confirmLoading" @ok="handleOk"
            @cancel="handleCancel" cancelText="鍏抽棴">
-    <a-spin :spinning="confirmLoading">
-      <a-form-model ref="form" :form="form" :model="model" :rules="validatorRules" :labelCol="labelColLong"
+    <a-spin :spinning="spinning">
+      <a-form-model ref="form" :model="model" :rules="validatorRules" :labelCol="labelColLong"
                     :wrapperCol="wrapperColLong">
+        <a-row :gutter="24">
+          <a-col :span="24">
+            <a-form-model-item label="璁惧缁�" prop="equipmentIds">
+              <a-input-search readOnly v-model="model.equipmentIds" @search="deviceSearch" enter-button
+                              placeholder="璇烽�夋嫨璁惧" />
+            </a-form-model-item>
+          </a-col>
+        </a-row>
+
         <a-row :gutter="24">
           <a-col :span="24">
             <a-form-model-item label="鍋滄満绫诲瀷" prop="downtimeType">
@@ -14,6 +23,7 @@
               </a-radio-group>
             </a-form-model-item>
           </a-col>
+
         </a-row>
 
         <a-row :gutter="24">
@@ -30,68 +40,125 @@
 
         <a-row :gutter="24">
           <a-col :span="24">
+            <a-form-model-item v-if="title === '缂栬緫'" label="鍋滄満鏃ユ湡" prop="theDate">
+              <a-date-picker :disabled="true" v-model="model.theDate" placeholder="璇烽�夋嫨鍋滄満鏃ユ湡"
+                             value-format="YYYY-MM-DD"
+                             style="width: 100%" />
+            </a-form-model-item>
+
+            <a-form-item v-if="title === '鏂板'" label="鍋滄満鏃ユ湡" :labelCol="labelColLong" :wrapperCol="wrapperColLong">
+              <div class="mainBox">
+                <Calendar
+                  v-on:choseDay="clickDay"
+                  :markDate="shiData"
+                  :agoDayHide="value"
+                ></Calendar>
+              </div>
+            </a-form-item>
+          </a-col>
+        </a-row>
+
+        <a-row :gutter="24">
+          <a-col :span="24">
+            <a-form-model-item label="鍋滄満鏃堕暱(min)" prop="downLong">
+              <a-input-number v-model="model.downLong" :min="1" :step="1" :precision="0"
+                              placeholder="璇疯緭鍏ュ仠鏈烘椂闀�(min)"
+                              style="width: 100%" />
+            </a-form-model-item>
+          </a-col>
+        </a-row>
+
+        <!--<a-row :gutter="24">-->
+        <!--<a-col :span="12">-->
+        <!--<a-form-model-item label="寮�濮嬫椂闂�" prop="startTime">-->
+        <!--<a-time-picker v-model="model.startTime" value-format="HH:mm:ss" style="width: 100%"/>-->
+        <!--</a-form-model-item>-->
+        <!--</a-col>-->
+        <!--<a-col :span="12">-->
+        <!--<a-form-model-item label="缁撴潫鏃堕棿" prop="endTime">-->
+        <!--<a-time-picker v-model="model.endTime" value-format="HH:mm:ss" style="width: 100%"/>-->
+        <!--</a-form-model-item>-->
+        <!--</a-col>-->
+        <!--</a-row>-->
+
+        <a-row :gutter="24">
+          <a-col :span="24">
             <a-form-model-item label="澶囨敞">
-              <a-textarea v-model="model.remark" placeholder="璇疯緭鍏ュ娉�"/>
+              <a-textarea v-model="model.remark" placeholder="璇疯緭鍏ュ娉�" />
             </a-form-model-item>
           </a-col>
         </a-row>
       </a-form-model>
     </a-spin>
+
+    <select-device-drawer ref="selectDeviceDrawer" @selectFinished="selectOK" :title="'閫夋嫨璁惧'" />
   </a-modal>
 </template>
 
 <script>
+import Calendar from 'vue-calendar-component'
 import { getAction, postAction } from '@api/manage'
+import SelectDeviceDrawer from '../../../../system/modules/SelectDeviceDrawer'
 
 export default {
   name: 'EquipmentStandbyShutdownModal',
-  components: {},
+  components: { SelectDeviceDrawer, Calendar },
   props: {},
   data() {
     return {
       title: '',
       visible: false,
+      value: '',
       model: {},
+      equipmentList: [],
       downtimeDescriptionList: [],
       labelColLong: {
-        xs: {
-          span: 24
-        },
-        sm: {
-          span: 5
-        }
+        xs: { span: 24 },
+        sm: { span: 6 }
       },
       wrapperColLong: {
-        xs: {
-          span: 24
-        },
-        sm: {
-          span: 17
-        }
+        xs: { span: 24 },
+        sm: { span: 16 }
       },
       confirmLoading: false,
-      form: this.$form.createForm(this),
+      spinning: false,
+      disableSelectDevice: false,
       validatorRules: {
+        equipmentIds: [
+          { required: true, message: '璇烽�夋嫨璁惧', trigger: 'change' }
+        ],
         downtimeType: [
-          {
-            required: true, message: '璇烽�夋嫨鍋滄満绫诲瀷'
-          }
+          { required: true, message: '璇烽�夋嫨鍋滄満绫诲瀷' }
         ],
         reasonId: [
-          {
-            required: true, message: '璇烽�夋嫨鍋滄満鍘熷洜'
-          }
+          { required: true, message: '璇烽�夋嫨鍋滄満鍘熷洜' }
+        ],
+        theDate: [
+          { required: true, message: '璇烽�夋嫨鍋滄満鏃ユ湡' }
+        ],
+        downLong: [
+          { required: true, message: '璇疯緭鍏ュ仠鏈烘椂闀�(min)' }
         ]
       },
       url: {
+        add: '/mdc/mdcDowntime/add',
         edit: '/mdc/mdcDowntime/edit',
         getDowntimeDescriptionListByDowntimeType: '/mdc/mdcDowntimeReason/downtimeReasonList'
-      }
+      },
+      shiData: [],
+      sendDte: []
     }
   },
   methods: {
+    add() {
+      this.resetSelect()
+      this.edit({
+        downtimeType: 0
+      })
+    },
+
     edit(record) {
-      this.model = Object.assign({}, record)
+      this.model = Object.assign({}, record, { equipmentIds: record.equipmentId })
       this.getDowntimeDescriptionListByApi()
       if (this.model.downtimeType === null) {
         delete this.model.downtimeType
@@ -111,9 +178,13 @@
     getDowntimeDescriptionListByApi() {
       const that = this
       this.downtimeDescriptionList = []
+      this.spinning = true
       getAction(this.url.getDowntimeDescriptionListByDowntimeType, { downtimeType: this.model.downtimeType })
         .then(res => {
           if (res.success) that.downtimeDescriptionList = res.result
+        })
+        .finally(() => {
+          that.spinning = false
         })
     },
 
@@ -122,46 +193,210 @@
       // 瑙﹀彂琛ㄥ崟楠岃瘉
       this.$refs.form.validate(valid => {
         if (valid) {
-          that.confirmLoading = true
-          postAction(this.url.edit, that.model)
-            .then((res) => {
-              if (res.success) {
-                that.$notification.success({
-                  message: '娑堟伅',
-                  description: res.message
-                })
-                that.$emit('ok', res.result)
-                that.handleCancel()
-              } else {
-                that.$notification.warning({
-                  message: '娑堟伅',
-                  description: res.message
-                })
-              }
+          that.confirmLoading = that.spinning = true
+          let url
+          if (!that.model.id) {
+            url = that.url.add
+          } else {
+            url = that.url.edit
+          }
+          that.model.dateList = this.sendDte
+          if (that.model.dateList && that.model.dateList.length > 0) {
+            postAction(url, that.model)
+              .then((res) => {
+                if (res.success) {
+                  that.$notification.success({
+                    message: '娑堟伅',
+                    description: res.message
+                  })
+                  that.$emit('ok')
+                  that.handleCancel()
+                } else {
+                  that.$notification.warning({
+                    message: '娑堟伅',
+                    description: res.message
+                  })
+                }
+              })
+              .finally(() => {
+                that.confirmLoading = that.spinning = false
+              })
+          } else {
+            that.confirmLoading = false
+            that.$notification.warning({
+              message: '娑堟伅',
+              description: '璇烽�夋嫨鐢熸晥鏃堕棿!'
             })
-            .finally(() => {
-              that.confirmLoading = false
-            })
-        } else {
-          return false
+          }
         }
       })
+    },
+
+    deviceSearch() {
+      this.$refs.selectDeviceDrawer.visible = true
+      this.$refs.selectDeviceDrawer.selectedRowKeys = []
+      this.$refs.selectDeviceDrawer.selectedRows = []
+      this.$refs.selectDeviceDrawer.checkedKeys = this.model.equipmentIds ? this.model.equipmentIds.split(',') : []
+    },
+
+    /**
+     * 閫夋嫨宸叉湁璁惧鍚庣偣鍑荤‘瀹氭椂瑙﹀彂
+     * @param data 宸查�夋嫨鐨勮澶�
+     */
+    selectOK(data) {
+      this.$set(this.model, 'equipmentIds', data.join(','))
+      if (this.model.equipmentIds) this.$refs.form.clearValidate('equipmentIds')
     },
 
     handleCancel() {
       this.visible = false
       this.removeValidate()
     },
-
     // 鍏抽棴寮圭獥鏃舵竻妤氳〃鍗曟牎楠�
     removeValidate() {
       if (this.$refs.form) this.$refs.form.clearValidate()
+    },
+    resetSelect() {//閲嶇疆閫変腑鐨勬棩鏈�
+      this.selectDate = []
+      this.shiData = []
+      this.sendDte = []
+    },
+    fun(obj) {
+      console.log(obj)
+      if (obj) {
+        if (obj = obj.split('/')) {
+          var timShi = obj[1]
+          var timFen = obj[2]
+          if (timShi < 10) {
+            timShi = '0' + timShi
+          }
+          if (timFen < 10) {
+            timFen = '0' + timFen
+          }
+          var dd = (obj[0] + timShi + timFen)
+          return dd
+        }
+      }
+    },
+    clickDay(today) {//閫変腑鏃ユ湡
+      let existDate = this.selectDate
+      let isExist = true
+      for (var i = 0; i < existDate.length; i++) {
+        if (existDate[i].date === today) {
+          this.selectDate.splice(i, 1)
+          this.shiData.splice(i, 1)
+          this.sendDte.splice(i, 1)
+          isExist = false
+        }
+      }
+      if (isExist) {//褰撳墠鏃ユ湡瀛樺湪绉婚櫎
+        let tempDate = { date: today, className: 'mark1' }
+        // let ddd = this.fun(today)
+        let ddd = today
+        let ccc = this.fun(today)
+        this.selectDate.push(tempDate)
+        this.shiData.push(ddd)
+        this.sendDte.push(ccc)
+      }
     }
   }
 }
 </script>
 
+<style scoped lang="less">
+/deep/ .ant-modal-close {
+  color: #1191b0;
+  font-size: 24px;
+}
 
+/deep/ .ant-modal-close-x {
+  font-size: 24px;
+}
+
+.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;
+}
+
+/deep/ .mark1 {
+  color: white !important;
+  background-color: #1890ff !important;
+  border-radius: 50%;
+}
+
+/deep/ .mainBox .wh_content_all {
+  background-color: #ffffff;
+  border: 1px silver solid;
+  -webkit-border-radius: 5px;
+  -moz-border-radius: 5px;
+  border-radius: 5px;
+}
+
+/deep/ .mainBox .wh_content_all .wh_jiantou1 {
+  border-top: 2px solid #000000;
+  border-left: 2px solid #000000;
+}
+
+/deep/ .mainBox .wh_content_all .wh_jiantou2 {
+  border-top: 2px solid #000000;
+  border-right: 2px solid #000000;
+}
+
+/deep/ .mainBox .wh_content_all .wh_top_changge li {
+  color: black;
+}
+
+/deep/ .mainBox .wh_content_all .wh_content_item {
+  margin-top: 5px;
+}
+
+/deep/ .mainBox .wh_content_all .wh_content_item .wh_top_tag {
+  color: #000000;
+}
+
+/deep/ .mainBox .wh_content_all .wh_content_item .wh_item_date {
+  color: #000000;
+}
+
+/deep/ .mainBox .wh_content_all .wh_content_item .wh_item_date:hover {
+  color: #1890ff;
+  border: 1px solid #1890ff;
+  border-radius: 50%;
+}
+
+/deep/ .mainBox .wh_content_all .wh_content_item .wh_other_dayhide {
+  color: #bfbfbf !important;
+}
+
+/deep/ .mainBox .wh_content_all .wh_content_item .wh_want_dayhide {
+  color: #bfbfbf !important;
+}
+
+/deep/ .mainBox .wh_content_all .wh_content_item .wh_chose_day {
+  background: #ffffff;
+  color: #000000;
+}
+
+/deep/ .mainBox .wh_content_all .wh_content_item .wh_isMark {
+  color: #ffffff;
+  background-color: blue;
+}
+
+</style>
 
 
 

--
Gitblit v1.9.3