From 92ff846fb659c62037a32b1d8c15eae9df9d9b54 Mon Sep 17 00:00:00 2001
From: zenglf <18502938215@163.com>
Date: 星期一, 18 九月 2023 13:24:30 +0800
Subject: [PATCH] Merge branch 'develop' of http://117.34.109.166:18448/r/vue_mdc_430

---
 src/views/eam/modules/predictiveWorkPlan/PredictiveWorkPlanModal.vue |  420 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 420 insertions(+), 0 deletions(-)

diff --git a/src/views/eam/modules/predictiveWorkPlan/PredictiveWorkPlanModal.vue b/src/views/eam/modules/predictiveWorkPlan/PredictiveWorkPlanModal.vue
new file mode 100644
index 0000000..8d605b5
--- /dev/null
+++ b/src/views/eam/modules/predictiveWorkPlan/PredictiveWorkPlanModal.vue
@@ -0,0 +1,420 @@
+<template>
+  <a-modal
+    :title="title"
+    :width="1500"
+    :visible="visible"
+    :maskClosable="false"
+    @ok="handleOk"
+    cancelText="鍏抽棴"
+    @cancel="handleCancel"
+    :confirmLoading="confirmLoading"
+  >
+
+    <a-spin :spinning="confirmLoading">
+      <a-form :form="form">
+        <a-row :gutter="24">
+          <a-col :span="12">
+            <a-form-item
+              label="鏂规缂栫爜"
+              :labelCol="labelCol"
+              :wrapperCol="wrapperCol"
+            >
+              <a-input
+                allowClear
+                :disabled="disableSubmit"
+                :placeholder="disableSubmit?'':'璇疯緭鍏ユ柟妗堢紪鐮�'"
+                v-decorator="[ 'num', validatorRules.num]"
+              />
+            </a-form-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-item
+              label="鏂规鍚嶇О"
+              :labelCol="labelCol"
+              :wrapperCol="wrapperCol"
+            >
+              <a-input
+                allowClear
+                :disabled="disableSubmit"
+                :placeholder="disableSubmit?'':'璇疯緭鍏ユ柟妗堝悕绉�'"
+                v-decorator="[ 'name', validatorRules.name]"
+              />
+            </a-form-item>
+          </a-col>
+        </a-row>
+        <a-row :gutter="24">
+          <a-col :span="12">
+            <a-form-item
+              label="鐩戞帶绫诲瀷"
+              :labelCol="labelCol"
+              :wrapperCol="wrapperCol"
+            >
+              <j-dict-select-tag
+                allow-clear
+                :disabled="disableSubmit"
+                :placeholder="disableSubmit?'':'璇烽�夋嫨鐩戞帶绫诲瀷'"
+                :triggerChange="true"
+                dictCode="monitor_type"
+                v-decorator="['monitorType', validatorRules.monitorType]"
+              />
+            </a-form-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-item
+              label="璁惧鍚嶇О"
+              :labelCol="labelCol"
+              :wrapperCol="wrapperCol"
+            >
+              <a-input-search
+                :disabled="disableSubmit"
+                placeholder="璇烽�夋嫨璁惧"
+                enter-button
+                @search="onEquipmentList()"
+                :read-only="true"
+                v-decorator="['equipmentName', validatorRules.equipmentName]"
+              />
+            </a-form-item>
+          </a-col>
+        </a-row>
+        <a-row :gutter="24">
+          <a-col :span="12">
+            <a-form-item
+              label="缁翠繚鏂瑰紡"
+              :labelCol="labelCol"
+              :wrapperCol="wrapperCol"
+            >
+              <j-dict-select-tag
+                allow-clear
+                :disabled="disableSubmit"
+                :placeholder="disableSubmit?'':'璇烽�夋嫨缁翠繚鏂瑰紡'"
+                :triggerChange="true"
+                dictCode="maintenance_method"
+                v-decorator="['maintenanceMethod', validatorRules.maintenanceMethod]"
+              />
+            </a-form-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-item
+              label="娲惧伐鏂瑰紡"
+              :labelCol="labelCol"
+              :wrapperCol="wrapperCol"
+            >
+              <j-dict-select-tag
+                allow-clear
+                :disabled="disableSubmit"
+                :placeholder="disableSubmit?'':'璇烽�夋嫨娲惧伐鏂瑰紡'"
+                :triggerChange="true"
+                dictCode="assign_mode"
+                v-decorator="['assignMode', validatorRules.assignMode]"
+              />
+            </a-form-item>
+          </a-col>
+        </a-row>
+        <a-row :gutter="24">
+          <a-col :span="12">
+            <a-form-item
+              label="璐d换鐝粍"
+              :labelCol="labelCol"
+              :wrapperCol="wrapperCol"
+            >
+              <a-input
+                allow-clear
+                :disabled="true"
+                :placeholder="disableSubmit?'':'璇疯緭鍏ヨ矗浠荤彮缁�'"
+                v-decorator="['teamName', {} ]"
+              />
+            </a-form-item>
+          </a-col>
+          <a-col :span="12">
+            <a-form-item
+              label="鐗堟湰"
+              :labelCol="labelCol"
+              :wrapperCol="wrapperCol"
+            >
+              <a-input
+                allowClear
+                :disabled="true"
+                :placeholder="disableSubmit?'':'璇疯緭鍏ョ増鏈彿'"
+                v-decorator="[ 'planVersion', validatorRules.planVersion]"
+              />
+            </a-form-item>
+          </a-col>
+          <a-col
+            v-if="this.isRevise == true"
+            :span="12"
+          >
+            <a-form-item
+              label="鍘嗗彶鐗堟湰"
+              :labelCol="labelCol"
+              :wrapperCol="wrapperCol"
+            >
+              <a-input
+                allowClear
+                :disabled="true"
+                :placeholder="disableSubmit?'':'璇疯緭鍏ュ巻鍙茬増鏈彿'"
+                v-decorator="[ 'historyVersion', validatorRules.historyVersion]"
+              />
+            </a-form-item>
+          </a-col>
+        </a-row>
+      </a-form>
+    </a-spin>
+
+    <template slot="footer">
+      <a-button
+        :style="{marginRight: '8px'}"
+        @click="handleCancel()"
+      >
+        鍏抽棴
+      </a-button>
+
+      <a-button
+        @click="handleOk()"
+        type="primary"
+        :loading="confirmLoading"
+      >纭畾
+      </a-button>
+    </template>
+
+    <equipment-list
+      ref="EquipmentList"
+      @sendEquipmentRecord='sendEquipmentRecord'
+    ></equipment-list>
+
+  </a-modal>
+
+</template>
+
+<script>
+  import { postAction, requestPut } from '@/api/manage'
+  import pick from 'lodash.pick'
+  import JMultiSelectTag from '@/components/dict/JMultiSelectTag'
+  import Tooltip from 'ant-design-vue/es/tooltip'
+
+  import { preview } from 'vue-photo-preview'
+  import PdfView from '@views/common/PdfView'
+  import EquipmentList from '@/views/eam/common/EquipmentList'
+
+  export default {
+    name: 'MaintenanceStandardModal',
+    components: {
+      JMultiSelectTag,
+      Tooltip,
+      PdfView,
+      preview,
+      EquipmentList
+    },
+    data() {
+      return {
+        title: '鎿嶄綔',
+        visible: false,
+        visible4Confirm: false,
+        disableSubmit: false,
+        codeDisable: true,
+        isRevise: false,
+        model: {},
+        upload: {},
+        treeData: [],
+        labelCol: {
+          xs: { span: 24 },
+          sm: { span: 6 }
+        },
+        wrapperCol: {
+          xs: { span: 24 },
+          sm: { span: 18 }
+        },
+        confirmLoading: false,
+        form: this.$form.createForm(this),
+        validatorRules: {
+          num: {
+            rules: [
+              { required: true, message: '璇疯緭鍏ョ紪鐮�!' }
+            ]
+          },
+          teamName: {
+            rules: [
+              { required: true, message: '璇烽�夋嫨璐d换鐝粍!' }
+            ]
+          },
+          useDepartName: {
+            rules: [
+              { required: true, message: '璇烽�夋嫨瀵硅薄閮ㄩ棬!' }
+            ]
+          },
+          equipmentName: {
+            rules: [
+              { required: true, message: '璇烽�夋嫨璁惧!' }
+            ]
+          },
+          assignMode: {
+            rules: [
+              { required: true, message: '璇烽�夋嫨娲惧伐鏂瑰紡!' }
+            ]
+          },
+          version: {
+            rules: [
+              { required: true, message: '璇疯緭鍏ョ増鏈�!' }
+            ]
+          },
+          historyVersion: {
+            rules: [
+              { required: true, message: '璇疯緭鍏ュ巻鍙茬増鏈�!' }
+            ]
+          }
+        },
+        url: {
+          add: '/eam/predictiveworkplan/add',
+          edit: '/eam/predictiveworkplan/edit',
+          revise: '/eam/predictiveworkplan/revise',
+          getReviseVersion: '/eam/predictiveworkplan/getReviseVersion'
+        },
+
+        dataSource: [],
+        departId: ''
+      }
+    },
+
+    mounted() {
+
+    },
+
+    created() {
+    },
+
+    methods: {
+
+      add() {
+        this.edit()
+      },
+
+      edit(record) {
+        let that = this
+        this.dataSource = []
+        this.form.resetFields()
+        this.model = Object.assign({}, record)
+        this.visible = true
+        that.$nextTick(() => {
+          that.model.equipmentId = record.equipmentId
+          that.model.teamId = record.teamId
+          that.form.setFieldsValue(pick(that.model, 'num', 'name', 'monitorType', 'maintenanceMethod', 'assignMode', 'teamName', 'planVersion'))
+          that.form.setFieldsValue({
+            equipmentName: record.deviceNum + '/' + record.deviceName + '/' + record.deviceModel,
+            historyVersion: record.planVersion
+          })
+        })
+        if (record.id) {
+          this.codeDisable = true
+          that.$nextTick(() => {
+            if (that.isRevise) {
+              requestPut(that.url.getReviseVersion, record).then((res) => {
+                if (res.success) {
+                  that.form.setFieldsValue({ planVersion: res.result })
+                }
+              })
+            }
+          }, 200)
+        } else {
+          this.codeDisable = false
+          that.$nextTick(() => {
+            that.form.setFieldsValue({ 'planVersion': '1.0' })
+          })
+        }
+      },
+
+      onEquipmentList() {
+        this.$refs.EquipmentList.list()
+        this.$refs.EquipmentList.title = '閫夋嫨璁惧淇℃伅'
+      },
+      sendEquipmentRecord(data) {
+        this.dataSource = []
+        let record = data.record
+        this.model.equipmentId = record.id
+        this.model.teamId = record.teamId
+        this.form.setFieldsValue({
+          equipmentName: record.num + '/' + record.name + '/' + record.model,
+          teamName: record.teamId_dictText
+        })
+      },
+
+      close() {
+        this.$emit('close')
+        this.visible = false
+      },
+
+      handleCancel() {
+        this.close()
+      },
+
+      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) {
+              formData.status = '1'
+              obj = postAction(this.url.add, formData)
+            } else {
+              if (this.isRevise) {
+                formData.status = '1'
+                obj = postAction(this.url.revise, formData)
+              } else {
+                obj = requestPut(this.url.edit, formData, { id: this.model.id })
+              }
+            }
+            obj.then((res) => {
+              if (res.success) {
+                that.$message.success(res.message)
+                that.$emit('ok')
+              } else {
+                that.$message.warning(res.message)
+              }
+            }).finally(() => {
+              that.confirmLoading = false
+              that.close()
+            })
+          }
+        })
+      },
+
+      getUuiD(randomLength) {
+        return Number(
+          Math.random()
+            .toString()
+            .substr(2, randomLength) + Date.now()
+        ).toString(36)
+      }
+
+    }
+  }
+</script>
+
+<style lang="less" scoped>
+  /deep/ .frozenRowClass {
+    color: #c9c9c9;
+  }
+
+  .fontweight {
+    font-weight: bold;
+  }
+
+  .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>
\ No newline at end of file

--
Gitblit v1.9.3