quwangxin 3 سال پیش
والد
کامیت
ee5d48cb4b

+ 21 - 12
src/components/addPatrolPlanDialog/index.vue

@@ -7,6 +7,7 @@
     :close-on-press-escape="false"
     custom-class="ele-dialog-form"
     width="90%"
+    v-loading="editLoading"
   >
     <div class="dialog_body">
       <el-form
@@ -396,7 +397,8 @@
         equipmentList: [],
         currentNode: null,
         rootId: null,
-        dialogTitle: '新增保养计划配置'
+        dialogTitle: '新增保养计划配置',
+        editLoading: false
       };
     },
     computed: {},
@@ -428,14 +430,28 @@
         this._getRuleNameList();
         this.addPatrolPlanDialog = true;
       },
+      // 编辑详情
       async getInfo (id) {
-        const res = await getById(id);
+        this.editLoading = true;
+        const res = await getById(id).catch(() => {
+          this.editLoading = false;
+        });
+        if (res?.data) {
+          const data = res.data;
 
-        const data = res.data;
+          this.addForm = data;
 
-        this.addForm = data;
+          this.categoryEquipment(this.addForm.categoryLevelId);
 
-        this._getEquipmentList();
+          if (this.rootId) {
+            this._getEquipmentList();
+          } else {
+            const unwatch = this.$watch('rootId', () => {
+              this._getEquipmentList();
+              unwatch();
+            });
+          }
+        }
       },
       // 获取计划配置单号
       async getOrderCode (tips) {
@@ -490,9 +506,6 @@
       },
       getRootId (val) {
         this.rootId = val;
-        if (this.addForm?.id) {
-          this._getEquipmentList();
-        }
       },
       // 设备分类选择
       async handleEquipmentClassChange (item) {
@@ -505,7 +518,6 @@
       async categoryEquipment (id) {
         const params = { categoryLevelId: id, pageNum: 1, size: -1 };
         const data = await getCategory(params);
-        this.addForm.categoryId = '';
         this.equipmentList = data.list;
       },
       // 分类树的选择
@@ -514,9 +526,6 @@
       },
       // 封装 - 获取设备分类列表
       async _getEquipmentList (val) {
-        if (!((val || this.addForm.categoryId) && this.rootId)) {
-          return;
-        }
         const params = {
           pageNum: 1,
           size: -1,

+ 4 - 1
src/enum/dict.js

@@ -21,5 +21,8 @@ export default {
   告警方式: 'warning_style',
   告警触发条件: 'warning_conditions',
   计划性质: 'nature_plan',
-  巡点检工单状态: 'patrolwork_status'
+  巡点检工单状态: 'patrolwork_status',
+  巡点检周期: 'patrol_cycle'
 };
+
+export const numberList = ['patrol_cycle'];

+ 45 - 42
src/store/modules/dict.js

@@ -1,15 +1,16 @@
-import dictEnum from '@/enum/dict';
+import dictEnum, { numberList } from '@/enum/dict';
 import Vue from 'vue';
 import { getByCode } from '@/api/system/dictionary-data';
+
 //非枚举定义
-const otherDictConfig = {
-  //   [dictEnum.物品类型]: {
-  //     request: getSubListByParentId,
-  //     dictCode: 'type',
-  //     dictValue: 'name',
-  //     resKey: '' //为空选 data
-  //   }
-};
+// const otherDictConfig = {
+//   //   [dictEnum.物品类型]: {
+//   //     request: getSubListByParentId,
+//   //     dictCode: 'type',
+//   //     dictValue: 'name',
+//   //     resKey: '' //为空选 data
+//   //   }
+// };
 
 const state = {};
 
@@ -27,40 +28,41 @@ const actions = {
 
     if (state[code]?.length) return state[code];
     let res;
-    if (otherDictConfig[dictEnum[enumName]]) {
-      const config = otherDictConfig[dictEnum[enumName]];
-      console.log(config);
-      //非枚举定义
-      res = await config.request();
-      if (res?.code == 0) {
-        let list = config.resKey ? res.data[config.resKey] : res.data;
-        commit('ADD_DICT', {
-          code,
-          dict: list.map((item) => ({
-            ...item,
-            dictCode: item[config.dictCode],
-            dictValue: item[config.dictValue]
-          }))
-        });
-        return res.list;
-      }
-    } else {
-      res = await getByCode(code);
-      if (res?.code == 0) {
-        commit('ADD_DICT', {
-          code,
-          dict: res.data.map((item) => {
-            const arr = Object.entries(item)[0] || [];
+    // if (otherDictConfig[dictEnum[enumName]]) {
+    //   const config = otherDictConfig[dictEnum[enumName]];
+    //   console.log(config);
+    //   //非枚举定义
+    //   res = await config.request();
+    //   if (res?.code == 0) {
+    //     let list = config.resKey ? res.data[config.resKey] : res.data;
+    //     commit('ADD_DICT', {
+    //       code,
+    //       dict: list.map((item) => ({
+    //         ...item,
+    //         dictCode: item[config.dictCode],
+    //         dictValue: item[config.dictValue]
+    //       }))
+    //     });
+    //     return res.list;
+    //   }
+    // } else {
+    res = await getByCode(code);
+    if (res?.code == 0) {
+      const isNumber = numberList.includes(code);
+      commit('ADD_DICT', {
+        code,
+        dict: res.data.map((item) => {
+          const arr = Object.entries(item)[0] || [];
 
-            return {
-              dictCode: arr[0],
-              dictValue: arr[1]
-            };
-          })
-        });
-        return res.data;
-      }
+          return {
+            dictCode: isNumber ? Number(arr[0]) : arr[0],
+            dictValue: arr[1]
+          };
+        })
+      });
+      return res.data;
     }
+    // }
 
     return [];
   },
@@ -68,6 +70,7 @@ const actions = {
   async reloadRequestDict ({ commit }, enumName) {
     const code = dictEnum[enumName];
     const res = await getByCode(code);
+    const isNumber = numberList.includes(code);
     if (res?.code == 0) {
       commit('ADD_DICT', {
         code,
@@ -75,7 +78,7 @@ const actions = {
           const arr = Object.entries(item);
 
           return {
-            dictCode: arr[0],
+            dictCode: isNumber ? Number(arr[0]) : arr[0],
             dictValue: arr[1]
           };
         })

+ 3 - 14
src/views/maintenance/equipment/plan/details.vue

@@ -318,17 +318,6 @@
         pageLoading: false,
         typeValue: null,
         contract_type: [],
-        cycleOptObj: {
-          1: '时/次',
-          2: '天/次',
-          //3: '周/次',
-          4: '月/次',
-          5: '年/次',
-          11: '次/天',
-          //12: '次/周',
-          13: '次/月',
-          14: '次/年'
-        },
         status: [
           {
             value: true,
@@ -361,9 +350,9 @@
         });
         if (res?.data) {
           this.data = res.data;
-          this.data.planEquiList = this.data.planEquiList.filter(
-            (item) => item.itemList && item.itemList.length > 0
-          );
+          // this.data.planEquiList = this.data.planEquiList.filter(
+          //   (item) => item.itemList && item.itemList.length > 0
+          // );
         }
         this.pageLoading = false;
       },

+ 9 - 16
src/views/maintenance/patrol/plan/details.vue

@@ -43,8 +43,9 @@
               </el-col>
               <el-col :span="12">
                 <el-form-item label="巡点检周期">
-                  <span>
-                    {{ data.cycleValue }}{{ cycleOptObj[data.cycleccType] }}
+                  <span v-if="data.ruleInfo">
+                    {{ data.ruleInfo.cycleValue
+                    }}{{ getDictValue('巡点检周期', data.ruleInfo.cycleType) }}
                   </span>
                 </el-form-item>
               </el-col>
@@ -282,7 +283,9 @@
   // import { getDetail, sendAudit } from '@/api/stockManagement/stocking'
   // import { useDictLabel, patrolMatterStatus } from '@/utils/dict/index'
   import { getById } from '@/api/maintenance/patrol_maintenance';
+  import dictMixins from '@/mixins/dictMixins';
   export default {
+    mixins: [dictMixins],
     data () {
       return {
         num: 1,
@@ -297,17 +300,6 @@
         pageLoading: false,
         typeValue: null,
         contract_type: [],
-        cycleOptObj: {
-          1: '时/次',
-          2: '天/次',
-          //3: '周/次',
-          4: '月/次',
-          5: '年/次',
-          11: '次/天',
-          //12: '次/周',
-          13: '次/月',
-          14: '次/年'
-        },
         status: [
           {
             value: true,
@@ -324,6 +316,7 @@
       };
     },
     async created () {
+      this.requestDict('巡点检周期');
       this.getInfo();
     },
     methods: {
@@ -340,9 +333,9 @@
         });
         if (res?.data) {
           this.data = res.data;
-          this.data.planEquiList = this.data.planEquiList.filter(
-            (item) => item.itemList && item.itemList.length > 0
-          );
+          // this.data.planEquiList = this.data.planEquiList.filter(
+          //   (item) => item.itemList && item.itemList.length > 0
+          // );
         }
         this.pageLoading = false;
       },

+ 393 - 393
src/views/maintenance/patrol/work/details.vue

@@ -1,13 +1,13 @@
 <template>
   <div class="page" v-loading="pageLoading">
     <el-form label-width="130px">
-<!--      <div class="page-title">
+      <!--      <div class="page-title">
         <div class="page-title-div">
           <el-page-header @back="goBack" content="工单详情"> </el-page-header>
         </div>
       </div> -->
       <!-- tab切换 -->
-<!--      <div class="switch">
+      <!--      <div class="switch">
         <div class="switch_left">
           <ul>
             <li :class="{ active: num == 1 }" @click="tab(1)">详情</li>
@@ -51,10 +51,10 @@
               </el-col>
               <el-col :span="12">
                 <el-form-item label="巡点检周期">
-                  <span
-                    >{{ data.cycleValue
-                    }}{{ cycleOptObj[data.cycleType] }}</span
-                  >
+                  <span v-if="data.ruleInfo">
+                    {{ data.ruleInfo.cycleValue
+                    }}{{ getDictValue('巡点检周期', data.ruleInfo.cycleType) }}
+                  </span>
                 </el-form-item>
               </el-col>
               <el-col :span="12">
@@ -117,7 +117,7 @@
               }}</span
             >
           </div> -->
-		  <HeaderTitle title="执行信息" size="16px"></HeaderTitle>
+          <HeaderTitle title="执行信息" size="16px"></HeaderTitle>
           <el-row class="execute_row">
             <el-col :span="8" class="column">
               <span class="label">确认结果:</span>
@@ -142,7 +142,7 @@
 
         <!-- 巡点检、保养设备 -->
         <div class="maintain_equipment_info">
-		  <HeaderTitle title="巡点检设备" size="16px"></HeaderTitle>
+          <HeaderTitle title="巡点检设备" size="16px"></HeaderTitle>
           <div class="maintain_equipment_info_content">
             <div
               class="equipment_item"
@@ -223,7 +223,7 @@
 
         <!-- 巡点检、缺陷设备报修记录 -->
         <div class="repair_notes">
-		  <HeaderTitle title="缺陷设备报修记录" size="16px"></HeaderTitle>
+          <HeaderTitle title="缺陷设备报修记录" size="16px"></HeaderTitle>
           <div class="repair_notes_equipment_item">
             <el-row class="equipment_item_tilte">
               <el-col :span="8">
@@ -261,438 +261,438 @@
 </template>
 
 <script>
-// import { workOrderDetails, sendAudit } from '@/api/stockManagement/stocking'
-// import repair from '@/api/maintenance/repair/repair'
-// import { useDictLabel, patrolMatterStatus } from '@/utils/dict/index'
-export default {
-  data () {
-    return {
-      num: 1,
-      infoData: {
-        type: '',
-        area: { province: {}, area: {}, city: {} },
-        mgrOrg: {},
-        manager: {}
-      },
-      dialogVisible: false,
-      data: {},
-      statusObj: {
-        0: '未计划',
-        1: '待审核',
-        2: '已派单',
-        3: '执行中',
-        4: '待验收',
-        5: '已完成',
-        6: '未修复'
-      },
-      cycleOptObj: {
-        1: '时/次',
-        2: '天/次',
-        //3: '周/次',
-        4: '月/次',
-        5: '年/次',
-        11: '次/天',
-        //12: '次/周',
-        13: '次/月',
-        14: '次/年'
-      },
-      repairNotes: {},
-      pageLoading: false,
-      typeValue: null,
-      contract_type: [],
-      status: [
-        {
-          value: true,
-          label: '失效'
+  // import { workOrderDetails, sendAudit } from '@/api/stockManagement/stocking'
+  // import repair from '@/api/maintenance/repair/repair'
+  // import { useDictLabel, patrolMatterStatus } from '@/utils/dict/index'
+  export default {
+    data () {
+      return {
+        num: 1,
+        infoData: {
+          type: '',
+          area: { province: {}, area: {}, city: {} },
+          mgrOrg: {},
+          manager: {}
         },
-        {
-          value: false,
-          label: '生效'
-        }
-      ],
-      ruleItem: [],
-      cause: '',
-      showtext: false,
-      from: null
-    }
-  },
-  async created () {
-    if (this.$router.history.current.query.from == 2) {
-      this.form = this.$router.history.current.query.from
-    }
-    // this.getInfo()
-  },
-  methods: {
-    // getStatus: useDictLabel(patrolMatterStatus),
-    delete () {},
-    // 点击切换事件
-    tab (index) {
-      this.num = index
-    },
-    goBack () {
-      window.sessionStorage.setItem('patrolTabType', 'work')
-      if (this.form) {
-        this.$router.push({
-          path: '/workspace/workOrder',
-          query: { activeName: 'polling' }
-        })
-      } else {
-        this.$router.go(-1)
-      }
-    },
-    // 表格数据
-    getInfo () {
-      this.pageLoading = true
-      workOrderDetails({
-        workOrderCcode: this.$route.query.code
-      })
-        .then(res => {
-          if (res.success) {
-            this.data = res.data
-            this.data.planEquiList = this.data.planEquiList.filter(
-              item => item.itemList && item.itemList.length > 0
-            )
-            // 获取 缺陷设备报修记录
-            const repairId = res.data.planEquiList[0].repairId
-            if (repairId) {
-              this.getRepairNotes(repairId)
-            }
+        dialogVisible: false,
+        data: {},
+        statusObj: {
+          0: '未计划',
+          1: '待审核',
+          2: '已派单',
+          3: '执行中',
+          4: '待验收',
+          5: '已完成',
+          6: '未修复'
+        },
+        cycleOptObj: {
+          1: '时/次',
+          2: '天/次',
+          //3: '周/次',
+          4: '月/次',
+          5: '年/次',
+          11: '次/天',
+          //12: '次/周',
+          13: '次/月',
+          14: '次/年'
+        },
+        repairNotes: {},
+        pageLoading: false,
+        typeValue: null,
+        contract_type: [],
+        status: [
+          {
+            value: true,
+            label: '失效'
+          },
+          {
+            value: false,
+            label: '生效'
           }
-          this.pageLoading = false
-        })
-        .catch(() => {
-          this.pageLoading = false
-        })
+        ],
+        ruleItem: [],
+        cause: '',
+        showtext: false,
+        from: null
+      };
     },
-    // 获取 缺陷设备报修记录
-    async getRepairNotes (repairId) {
-      const res = await repair.getInfo(repairId)
-      if (res?.success) {
-        console.log('缺陷设备报修记录:', res.data)
-        this.repairNotes = res.data
+    async created () {
+      if (this.$router.history.current.query.from == 2) {
+        this.form = this.$router.history.current.query.from;
       }
+      // this.getInfo()
     },
-    //通过按钮事件
-    pass () {
-      let params = {
-        planId: this.$route.query.id,
-        checked: 2,
-        myHandleId: this.$route.query.dbid,
-        cause: this.cause,
-        type: 2, //1维修;2保养,巡点检
-        handleType: 0 //办理类型(0 审批 1 验收)
-      }
-      sendAudit(params).then(res => {
-        if (res.success) {
-          this.$message.success('审批通过!')
-          this.$router.back()
+    methods: {
+      // getStatus: useDictLabel(patrolMatterStatus),
+      delete () {},
+      // 点击切换事件
+      tab (index) {
+        this.num = index;
+      },
+      goBack () {
+        window.sessionStorage.setItem('patrolTabType', 'work');
+        if (this.form) {
+          this.$router.push({
+            path: '/workspace/workOrder',
+            query: { activeName: 'polling' }
+          });
+        } else {
+          this.$router.go(-1);
         }
-      })
-    },
-    //驳回按钮事件
-    reject () {
-      this.showtext = true
-    },
-    cancelreject () {
-      this.showtext = false
-      this.cause = ''
-    },
-    surereject () {
-      if (!this.cause) {
-        this.$message.info('请填写驳回原因!')
-      } else {
+      },
+      // 表格数据
+      getInfo () {
+        this.pageLoading = true;
+        workOrderDetails({
+          workOrderCcode: this.$route.query.code
+        })
+          .then((res) => {
+            if (res.success) {
+              this.data = res.data;
+              this.data.planEquiList = this.data.planEquiList.filter(
+                (item) => item.itemList && item.itemList.length > 0
+              );
+              // 获取 缺陷设备报修记录
+              const repairId = res.data.planEquiList[0].repairId;
+              if (repairId) {
+                this.getRepairNotes(repairId);
+              }
+            }
+            this.pageLoading = false;
+          })
+          .catch(() => {
+            this.pageLoading = false;
+          });
+      },
+      // 获取 缺陷设备报修记录
+      async getRepairNotes (repairId) {
+        const res = await repair.getInfo(repairId);
+        if (res?.success) {
+          console.log('缺陷设备报修记录:', res.data);
+          this.repairNotes = res.data;
+        }
+      },
+      //通过按钮事件
+      pass () {
         let params = {
-          id: this.$route.query.id,
-          checked: 0,
+          planId: this.$route.query.id,
+          checked: 2,
           myHandleId: this.$route.query.dbid,
           cause: this.cause,
           type: 2, //1维修;2保养,巡点检
           handleType: 0 //办理类型(0 审批 1 验收)
-        }
-        sendAudit(params).then(res => {
+        };
+        sendAudit(params).then((res) => {
           if (res.success) {
-            this.$message.error('审批驳回!')
-            this.$router.back()
+            this.$message.success('审批通过!');
+            this.$router.back();
           }
-        })
+        });
+      },
+      //驳回按钮事件
+      reject () {
+        this.showtext = true;
+      },
+      cancelreject () {
+        this.showtext = false;
+        this.cause = '';
+      },
+      surereject () {
+        if (!this.cause) {
+          this.$message.info('请填写驳回原因!');
+        } else {
+          let params = {
+            id: this.$route.query.id,
+            checked: 0,
+            myHandleId: this.$route.query.dbid,
+            cause: this.cause,
+            type: 2, //1维修;2保养,巡点检
+            handleType: 0 //办理类型(0 审批 1 验收)
+          };
+          sendAudit(params).then((res) => {
+            if (res.success) {
+              this.$message.error('审批驳回!');
+              this.$router.back();
+            }
+          });
+        }
       }
     }
-  }
-}
+  };
 </script>
 
 <style lang="scss" scoped>
-// @import '@/assets/css/oaa.scss';
-.page {
-  padding: 10px;
-}
-.page-title {
-  background: #fff;
-  font-size: 18px;
-  padding: 6px 20px;
-  font-weight: 500;
-  .page-title-div {
-    margin: 5px 0;
-    height: 30px;
-    line-height: 30px;
-    border-bottom: 1px solid #eaeefb;
-    .title-div-no {
-      margin-left: 10px;
-      font-weight: 400;
-      color: #909090;
-      font-size: 14px;
+  // @import '@/assets/css/oaa.scss';
+  .page {
+    padding: 10px;
+  }
+  .page-title {
+    background: #fff;
+    font-size: 18px;
+    padding: 6px 20px;
+    font-weight: 500;
+    .page-title-div {
+      margin: 5px 0;
+      height: 30px;
+      line-height: 30px;
+      border-bottom: 1px solid #eaeefb;
+      .title-div-no {
+        margin-left: 10px;
+        font-weight: 400;
+        color: #909090;
+        font-size: 14px;
+      }
     }
   }
-}
-.page-data {
-  padding-top: 10px;
-}
-.content-detail {
-  background: #fff;
-  padding: 20px;
-}
-.flows {
-  .flow-left {
-    width: 156px;
-    height: 70px;
-    border: 1px dashed #ccc;
-    padding: 10px;
+  .page-data {
+    padding-top: 10px;
   }
-  .row {
-    margin-top: 13px;
+  .content-detail {
+    background: #fff;
+    padding: 20px;
   }
-}
-.basic-details-title {
-  margin-bottom: 12px;
-  margin-top: 20px;
-  border-bottom: 1px solid #1890ff;
-  padding-bottom: 8px;
-  display: flex;
-  justify-content: space-between;
-}
-.basic-details-title .border-span {
-  height: 18px;
-  font-size: 16px;
-  border-left: 4px solid #1890ff;
-  padding-left: 8px;
-
-  font-weight: 500;
-}
-.heade-right {
-  // float: right;
-  .heade-right-content {
-    margin-right: 12px;
-    font-size: 14px;
-    display: inline-block;
-    .content-key {
-      color: #3e3e3e;
-      margin-right: 12px;
-      font-weight: 500;
+  .flows {
+    .flow-left {
+      width: 156px;
+      height: 70px;
+      border: 1px dashed #ccc;
+      padding: 10px;
     }
-    .content-value {
-      color: #000;
+    .row {
+      margin-top: 13px;
     }
   }
-}
-.list-title {
-  font-size: 14px;
-  color: #3e3e3e;
-  margin: 10px 0px;
-}
-.goods {
-  background: #a30014;
-  border: 1px solid #a30014;
-}
-.details-title {
-  display: inline-block;
-  color: #6e6e6e;
-  font-size: 14px;
-  font-weight: bold;
-  margin-right: 13px;
-  width: 70px;
-  text-align: right;
-}
-.details-con {
-  color: #3e3e3e;
-  font-size: 14px;
-}
-.detailed-tab {
-  margin-left: 10px;
-  margin-top: 10px;
-}
-::v-deep .el-form-item--medium .el-form-item__label {
-  color: #6e6e6e;
-  font-size: 14px;
-  font-weight: bold;
-}
-.warehouse {
-  display: block;
-  border-bottom: 1px solid #eaeefb;
-  padding: 10px 0;
-}
-.box-card {
-  .store-box {
-    width: 80%;
-    .store-box-span {
-      display: inline-block;
-      font-size: 14px;
-      height: 50px;
-      width: 50px;
-      text-align: center;
-      line-height: 50px;
-      color: #fff;
-      margin: 2px;
-    }
+  .basic-details-title {
+    margin-bottom: 12px;
+    margin-top: 20px;
+    border-bottom: 1px solid #1890ff;
+    padding-bottom: 8px;
+    display: flex;
+    justify-content: space-between;
   }
-}
-.vacant {
-  background: #3196fb;
-}
-.inUse {
-  background: #157a2c;
-}
-.invalid {
-  background: #cccccc;
-}
-.full {
-  background: #cc3300;
-}
+  .basic-details-title .border-span {
+    height: 18px;
+    font-size: 16px;
+    border-left: 4px solid #1890ff;
+    padding-left: 8px;
 
-.maintain_equipment_info {
-  .maintain_equipment_info_title {
-    border-bottom: 1px solid #1890ff;
-    padding-bottom: 3px;
-    margin-bottom: 20px;
-    > span {
+    font-weight: 500;
+  }
+  .heade-right {
+    // float: right;
+    .heade-right-content {
+      margin-right: 12px;
+      font-size: 14px;
       display: inline-block;
-      line-height: 16px;
-      border-left: 6px solid #1890ff;
-      padding-left: 6px;
+      .content-key {
+        color: #3e3e3e;
+        margin-right: 12px;
+        font-weight: 500;
+      }
+      .content-value {
+        color: #000;
+      }
     }
   }
-  .maintain_equipment_info_content {
-    padding: 0 30px;
-    .equipment_item {
-      border: 1px solid #ccc;
-      font-size: 14px;
-      padding: 15px;
-      margin-bottom: 30px;
-      .equipment_info {
-        display: flex;
-        flex-wrap: wrap;
-        border: 1px solid #ddd;
-        .item_info {
-          width: 33.33%;
-          height: 24px;
-          line-height: 24px;
+  .list-title {
+    font-size: 14px;
+    color: #3e3e3e;
+    margin: 10px 0px;
+  }
+  .goods {
+    background: #a30014;
+    border: 1px solid #a30014;
+  }
+  .details-title {
+    display: inline-block;
+    color: #6e6e6e;
+    font-size: 14px;
+    font-weight: bold;
+    margin-right: 13px;
+    width: 70px;
+    text-align: right;
+  }
+  .details-con {
+    color: #3e3e3e;
+    font-size: 14px;
+  }
+  .detailed-tab {
+    margin-left: 10px;
+    margin-top: 10px;
+  }
+  ::v-deep .el-form-item--medium .el-form-item__label {
+    color: #6e6e6e;
+    font-size: 14px;
+    font-weight: bold;
+  }
+  .warehouse {
+    display: block;
+    border-bottom: 1px solid #eaeefb;
+    padding: 10px 0;
+  }
+  .box-card {
+    .store-box {
+      width: 80%;
+      .store-box-span {
+        display: inline-block;
+        font-size: 14px;
+        height: 50px;
+        width: 50px;
+        text-align: center;
+        line-height: 50px;
+        color: #fff;
+        margin: 2px;
+      }
+    }
+  }
+  .vacant {
+    background: #3196fb;
+  }
+  .inUse {
+    background: #157a2c;
+  }
+  .invalid {
+    background: #cccccc;
+  }
+  .full {
+    background: #cc3300;
+  }
+
+  .maintain_equipment_info {
+    .maintain_equipment_info_title {
+      border-bottom: 1px solid #1890ff;
+      padding-bottom: 3px;
+      margin-bottom: 20px;
+      > span {
+        display: inline-block;
+        line-height: 16px;
+        border-left: 6px solid #1890ff;
+        padding-left: 6px;
+      }
+    }
+    .maintain_equipment_info_content {
+      padding: 0 30px;
+      .equipment_item {
+        border: 1px solid #ccc;
+        font-size: 14px;
+        padding: 15px;
+        margin-bottom: 30px;
+        .equipment_info {
           display: flex;
-          .item_label {
-            width: 90px;
-            text-align: center;
-            background-color: #f2f2f2;
-            font-weight: 700;
-          }
-          .item_value {
-            border-bottom: 1px solid #f2f2f2;
-            flex: 1;
-            padding-left: 5px;
-          }
-          &:last-child {
-            width: 100%;
+          flex-wrap: wrap;
+          border: 1px solid #ddd;
+          .item_info {
+            width: 33.33%;
+            height: 24px;
+            line-height: 24px;
+            display: flex;
+            .item_label {
+              width: 90px;
+              text-align: center;
+              background-color: #f2f2f2;
+              font-weight: 700;
+            }
             .item_value {
-              border: 0;
+              border-bottom: 1px solid #f2f2f2;
+              flex: 1;
+              padding-left: 5px;
+            }
+            &:last-child {
+              width: 100%;
+              .item_value {
+                border: 0;
+              }
             }
           }
         }
-      }
-      > p {
-        margin-top: 20px;
-        color: #797979;
-      }
-      .matter_info {
-        ::v-deep .el-table {
-          th.el-table__cell {
-            background-color: #f2f2f2;
-            padding: 0;
-          }
-          td.el-table__cell {
-            padding: 0;
+        > p {
+          margin-top: 20px;
+          color: #797979;
+        }
+        .matter_info {
+          ::v-deep .el-table {
+            th.el-table__cell {
+              background-color: #f2f2f2;
+              padding: 0;
+            }
+            td.el-table__cell {
+              padding: 0;
+            }
           }
         }
       }
     }
   }
-}
-.execute_info {
-  margin: 30px 0;
-  .execute_info_title {
-    border-bottom: 1px solid #1890ff;
-    padding-bottom: 3px;
-    margin-bottom: 20px;
-    display: flex;
-    justify-content: space-between;
-    > span:first-child {
-      line-height: 16px;
-      border-left: 6px solid #1890ff;
-      padding-left: 6px;
-    }
-  }
-  .execute_row {
-    padding: 0 30px;
-    .column {
-      display: flex;
-      font-size: 14px;
+  .execute_info {
+    margin: 30px 0;
+    .execute_info_title {
+      border-bottom: 1px solid #1890ff;
+      padding-bottom: 3px;
       margin-bottom: 20px;
-      .label {
-        // width: 110px;
-        text-align: center;
-        font-weight: 700;
+      display: flex;
+      justify-content: space-between;
+      > span:first-child {
+        line-height: 16px;
+        border-left: 6px solid #1890ff;
+        padding-left: 6px;
       }
     }
-  }
-}
-.repair_notes {
-  .repair_notes_title {
-    border-bottom: 1px solid #1890ff;
-    padding-bottom: 3px;
-    margin-bottom: 20px;
-    > span {
-      display: inline-block;
-      line-height: 16px;
-      border-left: 6px solid #1890ff;
-      padding-left: 6px;
+    .execute_row {
+      padding: 0 30px;
+      .column {
+        display: flex;
+        font-size: 14px;
+        margin-bottom: 20px;
+        .label {
+          // width: 110px;
+          text-align: center;
+          font-weight: 700;
+        }
+      }
     }
   }
-  .repair_notes_equipment_item {
-    padding: 0 20px;
-    .equipment_item_tilte {
-      background-color: #f7f7f7;
-      height: 36px;
-      line-height: 36px;
-      .label {
-        font-weight: 700;
+  .repair_notes {
+    .repair_notes_title {
+      border-bottom: 1px solid #1890ff;
+      padding-bottom: 3px;
+      margin-bottom: 20px;
+      > span {
+        display: inline-block;
+        line-height: 16px;
+        border-left: 6px solid #1890ff;
+        padding-left: 6px;
       }
     }
-    .main_info {
-      font-size: 14px;
-      margin-top: 15px;
-      > div {
-        margin-bottom: 10px;
+    .repair_notes_equipment_item {
+      padding: 0 20px;
+      .equipment_item_tilte {
+        background-color: #f7f7f7;
+        height: 36px;
+        line-height: 36px;
+        .label {
+          font-weight: 700;
+        }
+      }
+      .main_info {
+        font-size: 14px;
+        margin-top: 15px;
+        > div {
+          margin-bottom: 10px;
+        }
       }
     }
   }
-}
-.btnbox {
-  display: flex;
-  justify-content: center;
-}
-::v-deep .el-button {
-  padding: 10px 20px;
-  margin-right: 10px;
-}
-.textbtnbox {
-  margin-top: 10px;
-  display: flex;
-  justify-content: center;
-}
+  .btnbox {
+    display: flex;
+    justify-content: center;
+  }
+  ::v-deep .el-button {
+    padding: 10px 20px;
+    margin-right: 10px;
+  }
+  .textbtnbox {
+    margin-top: 10px;
+    display: flex;
+    justify-content: center;
+  }
 </style>