From d2547913ef2e150d8bb18bc8f7423515c7ed71d0 Mon Sep 17 00:00:00 2001
From: zhaowei <zhaowei>
Date: 星期五, 25 四月 2025 14:04:29 +0800
Subject: [PATCH] 1、调整设备台账铭牌二维码大小 2、待机停机页面功能开发

---
 src/views/mdc/base/modules/EquipmentStandbyShutDown/EquipmentStandbyShutdownModal.vue |  292 +++++++++++++++++++++++++++++++++++++---------------------
 1 files changed, 185 insertions(+), 107 deletions(-)

diff --git a/src/views/mdc/base/modules/EquipmentStandbyShutDown/EquipmentStandbyShutdownModal.vue b/src/views/mdc/base/modules/EquipmentStandbyShutDown/EquipmentStandbyShutdownModal.vue
index 3332d8a..957eafe 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"
            @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,6 +40,38 @@
 
         <a-row :gutter="24">
           <a-col :span="24">
+            <a-form-model-item label="鍋滄満鏃ユ湡" prop="theDate">
+              <a-date-picker v-model="model.theDate" placeholder="璇烽�夋嫨鍋滄満鏃ユ湡" value-format="YYYY-MM-DD"
+                             style="width: 100%"/>
+            </a-form-model-item>
+          </a-col>
+
+        </a-row>
+
+        <a-row :gutter="24">
+          <a-col :span="24">
+            <a-form-model-item label="鍋滄満鏃堕暱(min)" prop="downLong">
+              <a-input-number v-model="model.downLong" :min="1" :step="1" :precision="0" placeholder="璇疯緭鍏ュ仠鏈烘椂闀�(min)"
+                              style="width: 100%"/>
+            </a-form-model-item>
+          </a-col>
+        </a-row>
+
+        <!--<a-row :gutter="24">-->
+        <!--<a-col :span="12">-->
+        <!--<a-form-model-item label="寮�濮嬫椂闂�" prop="startTime">-->
+        <!--<a-time-picker v-model="model.startTime" value-format="HH:mm:ss" style="width: 100%"/>-->
+        <!--</a-form-model-item>-->
+        <!--</a-col>-->
+        <!--<a-col :span="12">-->
+        <!--<a-form-model-item label="缁撴潫鏃堕棿" prop="endTime">-->
+        <!--<a-time-picker v-model="model.endTime" value-format="HH:mm:ss" style="width: 100%"/>-->
+        <!--</a-form-model-item>-->
+        <!--</a-col>-->
+        <!--</a-row>-->
+
+        <a-row :gutter="24">
+          <a-col :span="24">
             <a-form-model-item label="澶囨敞">
               <a-textarea v-model="model.remark" placeholder="璇疯緭鍏ュ娉�"/>
             </a-form-model-item>
@@ -37,128 +79,164 @@
         </a-row>
       </a-form-model>
     </a-spin>
+
+    <select-device-drawer ref="selectDeviceDrawer" @selectFinished="selectOK" :title="'閫夋嫨璁惧'"/>
   </a-modal>
 </template>
 
 <script>
-import { getAction, postAction } from '@api/manage'
+  import { getAction, postAction } from '@api/manage'
+  import SelectDeviceDrawer from '../../../../system/modules/SelectDeviceDrawer'
 
-export default {
-  name: 'EquipmentStandbyShutdownModal',
-  components: {},
-  props: {},
-  data() {
-    return {
-      title: '',
-      visible: false,
-      model: {},
-      downtimeDescriptionList: [],
-      labelColLong: {
-        xs: {
-          span: 24
+  export default {
+    name: 'EquipmentStandbyShutdownModal',
+    components: { SelectDeviceDrawer },
+    props: {},
+    data() {
+      return {
+        title: '',
+        visible: false,
+        model: {},
+        equipmentList: [],
+        downtimeDescriptionList: [],
+        labelColLong: {
+          xs: { span: 24 },
+          sm: { span: 6 }
         },
-        sm: {
-          span: 5
-        }
-      },
-      wrapperColLong: {
-        xs: {
-          span: 24
+        wrapperColLong: {
+          xs: { span: 24 },
+          sm: { span: 16 }
         },
-        sm: {
-          span: 17
+        confirmLoading: false,
+        spinning: false,
+        disableSelectDevice: false,
+        validatorRules: {
+          equipmentIds: [
+            { required: true, message: '璇烽�夋嫨璁惧', trigger: 'change' }
+          ],
+          downtimeType: [
+            { required: true, message: '璇烽�夋嫨鍋滄満绫诲瀷' }
+          ],
+          reasonId: [
+            { required: true, message: '璇烽�夋嫨鍋滄満鍘熷洜' }
+          ],
+          theDate: [
+            { required: true, message: '璇烽�夋嫨鍋滄満鏃ユ湡' }
+          ],
+          downLong: [
+            { required: true, message: '璇疯緭鍏ュ仠鏈烘椂闀�(min)' }
+          ]
+        },
+        url: {
+          add: '/mdc/mdcDowntime/add',
+          edit: '/mdc/mdcDowntime/edit',
+          getDowntimeDescriptionListByDowntimeType: '/mdc/mdcDowntimeReason/downtimeReasonList'
         }
-      },
-      confirmLoading: false,
-      form: this.$form.createForm(this),
-      validatorRules: {
-        downtimeType: [
-          {
-            required: true, message: '璇烽�夋嫨鍋滄満绫诲瀷'
-          }
-        ],
-        reasonId: [
-          {
-            required: true, message: '璇烽�夋嫨鍋滄満鍘熷洜'
-          }
-        ]
-      },
-      url: {
-        edit: '/mdc/mdcDowntime/edit',
-        getDowntimeDescriptionListByDowntimeType: '/mdc/mdcDowntimeReason/downtimeReasonList'
       }
-    }
-  },
-  methods: {
-    edit(record) {
-      this.model = Object.assign({}, record)
-      this.getDowntimeDescriptionListByApi()
-      if (this.model.downtimeType === null) {
-        delete this.model.downtimeType
-        delete this.model.reasonId
-      }
-      this.visible = true
     },
-
-    // 鍋滄満绫诲瀷鍊煎彂鐢熸敼鍙樻椂瑙﹀彂娓呯┖鍋滄満鍘熷洜骞堕噸鏂拌幏鍙栧搴斿仠鏈虹被鍨嬬殑鍋滄満鍘熷洜鍒楄〃
-    handleDowntimeTypeChange() {
-      if (this.model.reasonId) delete this.model.reasonId
-      this.removeValidate()
-      this.getDowntimeDescriptionListByApi()
-    },
-
-    // 璋冪敤鎺ュ彛鑾峰彇鍋滄満鍘熷洜鍒楄〃
-    getDowntimeDescriptionListByApi() {
-      const that = this
-      this.downtimeDescriptionList = []
-      getAction(this.url.getDowntimeDescriptionListByDowntimeType, { downtimeType: this.model.downtimeType })
-        .then(res => {
-          if (res.success) that.downtimeDescriptionList = res.result
+    methods: {
+      add() {
+        this.edit({
+          downtimeType: 0
         })
-    },
+      },
 
-    handleOk() {
-      const that = this
-      // 瑙﹀彂琛ㄥ崟楠岃瘉
-      this.$refs.form.validate(valid => {
-        if (valid) {
-          that.confirmLoading = true
-          postAction(this.url.edit, that.model)
-            .then((res) => {
-              if (res.success) {
-                that.$notification.success({
-                  message: '娑堟伅',
-                  description: res.message
-                })
-                that.$emit('ok', res.result)
-                that.handleCancel()
-              } else {
-                that.$notification.warning({
-                  message: '娑堟伅',
-                  description: res.message
-                })
-              }
-            })
-            .finally(() => {
-              that.confirmLoading = false
-            })
-        } else {
-          return false
+      edit(record) {
+        this.model = Object.assign({}, record)
+        this.getDowntimeDescriptionListByApi()
+        if (this.model.downtimeType === null) {
+          delete this.model.downtimeType
+          delete this.model.reasonId
         }
-      })
-    },
+        this.visible = true
+      },
 
-    handleCancel() {
-      this.visible = false
-      this.removeValidate()
-    },
+      // 鍋滄満绫诲瀷鍊煎彂鐢熸敼鍙樻椂瑙﹀彂娓呯┖鍋滄満鍘熷洜骞堕噸鏂拌幏鍙栧搴斿仠鏈虹被鍨嬬殑鍋滄満鍘熷洜鍒楄〃
+      handleDowntimeTypeChange() {
+        if (this.model.reasonId) delete this.model.reasonId
+        this.removeValidate()
+        this.getDowntimeDescriptionListByApi()
+      },
 
-    // 鍏抽棴寮圭獥鏃舵竻妤氳〃鍗曟牎楠�
-    removeValidate() {
-      if (this.$refs.form) this.$refs.form.clearValidate()
+      // 璋冪敤鎺ュ彛鑾峰彇鍋滄満鍘熷洜鍒楄〃
+      getDowntimeDescriptionListByApi() {
+        const that = this
+        this.downtimeDescriptionList = []
+        this.spinning = true
+        getAction(this.url.getDowntimeDescriptionListByDowntimeType, { downtimeType: this.model.downtimeType })
+          .then(res => {
+            if (res.success) that.downtimeDescriptionList = res.result
+          })
+          .finally(() => {
+            that.spinning = false
+          })
+      },
+
+      handleOk() {
+        const that = this
+        // 瑙﹀彂琛ㄥ崟楠岃瘉
+        console.log('model', this.model)
+        this.$refs.form.validate(valid => {
+          if (valid) {
+            that.confirmLoading = that.spinning = true
+            let url
+            if (!that.model.id) {
+              url = that.url.add
+            } else {
+              url = that.url.edit
+            }
+            postAction(url, that.model)
+              .then((res) => {
+                if (res.success) {
+                  that.$notification.success({
+                    message: '娑堟伅',
+                    description: res.message
+                  })
+                  that.$emit('ok')
+                  that.handleCancel()
+                } else {
+                  that.$notification.warning({
+                    message: '娑堟伅',
+                    description: res.message
+                  })
+                }
+              })
+              .finally(() => {
+                that.confirmLoading = that.spinning = false
+              })
+          } else {
+            return false
+          }
+        })
+      },
+
+      deviceSearch() {
+        this.$refs.selectDeviceDrawer.visible = true
+        this.$refs.selectDeviceDrawer.selectedRowKeys = []
+        this.$refs.selectDeviceDrawer.selectedRows = []
+        this.$refs.selectDeviceDrawer.checkedKeys = this.model.equipmentIds ? this.model.equipmentIds.split(',') : []
+      },
+
+      /**
+       * 閫夋嫨宸叉湁璁惧鍚庣偣鍑荤‘瀹氭椂瑙﹀彂
+       * @param data 宸查�夋嫨鐨勮澶�
+       */
+      selectOK(data) {
+        this.$set(this.model, 'equipmentIds', data.join(','))
+        if (this.model.equipmentIds) this.$refs.form.clearValidate('equipmentIds')
+      },
+
+      handleCancel() {
+        this.visible = false
+        this.removeValidate()
+      },
+
+      // 鍏抽棴寮圭獥鏃舵竻妤氳〃鍗曟牎楠�
+      removeValidate() {
+        if (this.$refs.form) this.$refs.form.clearValidate()
+      }
     }
   }
-}
 </script>
 
 

--
Gitblit v1.9.3