Przeglądaj źródła

categoryCode+categoryName

yijing 1 rok temu
rodzic
commit
5b3fbad36a
1 zmienionych plików z 803 dodań i 946 usunięć
  1. 803 946
      src/views/maintenance/components/programRulesDialog.vue

+ 803 - 946
src/views/maintenance/components/programRulesDialog.vue

@@ -1,56 +1,25 @@
 <template>
-  <ele-modal
-    width="80%"
-    :visible="visible"
-    v-if="visible"
-    append-to-body
-    custom-class="ele-dialog-form"
-    :title="dialogTitle"
-    :close-on-click-modal="false"
-    :before-close="close"
-    :maxable="true"
-  >
+  <ele-modal width="80%" :visible="visible" v-if="visible" append-to-body custom-class="ele-dialog-form"
+    :title="dialogTitle" :close-on-click-modal="false" :before-close="close" :maxable="true">
     <header-title title="基本信息"></header-title>
-    <el-form
-      ref="addFormRef"
-      :model="addForm"
-      :rules="addFormRules"
-      label-width="120px"
-    >
+    <el-form ref="addFormRef" :model="addForm" :rules="addFormRules" label-width="120px">
       <el-row>
         <el-col :span="8">
           <el-form-item label="计划配置单号" prop="code">
-            <el-input
-              v-model="addForm.code"
-              size="small"
-              placeholder="自动带出"
-              disabled
-            ></el-input>
+            <el-input v-model="addForm.code" size="small" placeholder="自动带出" disabled></el-input>
           </el-form-item>
         </el-col>
 
         <el-col :span="8">
           <el-form-item label="计划配置名称" prop="name">
-            <el-input
-              :disabled="dialogTitle === '派单'"
-              v-model="addForm.name"
-              size="small"
-              placeholder="请输入"
-            ></el-input>
+            <el-input :disabled="dialogTitle === '派单'" v-model="addForm.name" size="small" placeholder="请输入"></el-input>
           </el-form-item>
         </el-col>
 
         <el-col :span="8">
           <el-form-item label="自动派单" prop="autoOrder">
-            <el-select
-              :disabled="
-                dialogTitle === '派单' || dialogTitle.includes('量具送检')
-              "
-              v-model="addForm.autoOrder"
-              size="small"
-              style="width: 100%"
-              @change="autoOrderChange"
-            >
+            <el-select :disabled="dialogTitle === '派单' || dialogTitle.includes('量具送检')
+              " v-model="addForm.autoOrder" size="small" style="width: 100%" @change="autoOrderChange">
               <el-option :value="1" label="是"></el-option>
               <el-option :value="0" label="否"></el-option>
             </el-select>
@@ -60,81 +29,38 @@
         <el-col :span="8">
           <el-form-item label="计划完成时长" prop="duration">
             <div style="display: flex">
-              <el-input
-                type="number"
-                :disabled="dialogTitle === '派单'"
-                v-model="addForm.duration"
-                size="small"
-                placeholder="请输入"
-                @input="formDataDurationTime"
-              >
+              <el-input type="number" :disabled="dialogTitle === '派单'" v-model="addForm.duration" size="small"
+                placeholder="请输入" @input="formDataDurationTime">
                 <template #suffix>分钟</template>
               </el-input>
             </div>
           </el-form-item>
         </el-col>
 
-        <el-col
-          :span="8"
-          v-if="addForm.autoOrder && !dialogTitle.includes('量具送检')"
-        >
+        <el-col :span="8" v-if="addForm.autoOrder && !dialogTitle.includes('量具送检')">
           <el-form-item label="部门" prop="groupId">
-            <deptSelect
-              v-model="addForm.groupId"
-              @changeGroup="searchDeptNodeClick"
-              :disabled="isBindPlan"
-            />
+            <deptSelect v-model="addForm.groupId" @changeGroup="searchDeptNodeClick" :disabled="isBindPlan" />
           </el-form-item>
         </el-col>
-        <el-col
-          :span="8"
-          v-if="addForm.autoOrder && !dialogTitle.includes('量具送检')"
-        >
+        <el-col :span="8" v-if="addForm.autoOrder && !dialogTitle.includes('量具送检')">
           <el-form-item label="负责人" prop="executorId">
-            <el-select
-              v-model="addForm.executorId"
-              size="small"
-              style="width: 100%"
-              :disabled="isBindPlan"
-              multiple
-              filterable
-            >
-              <el-option
-                v-for="item in executorList"
-                :key="item.id"
-                :value="item.id"
-                :label="item.name"
-              ></el-option>
+            <el-select v-model="addForm.executorId" size="small" style="width: 100%" :disabled="isBindPlan" multiple
+              filterable>
+              <el-option v-for="item in executorList" :key="item.id" :value="item.id" :label="item.name"></el-option>
             </el-select>
           </el-form-item>
         </el-col>
         <el-col :span="8" v-if="!dialogTitle.includes('量具送检')">
           <el-form-item label="审核人" prop="approvalUserId">
-            <el-select
-              :disabled="dialogTitle === '派单'"
-              v-model="addForm.approvalUserId"
-              size="small"
-              clearable
-              style="width: 100%"
-              filterable
-            >
-              <el-option
-                v-for="item in uerList"
-                :key="item.id"
-                :value="item.id"
-                :label="item.name"
-              ></el-option>
+            <el-select :disabled="dialogTitle === '派单'" v-model="addForm.approvalUserId" size="small" clearable
+              style="width: 100%" filterable>
+              <el-option v-for="item in uerList" :key="item.id" :value="item.id" :label="item.name"></el-option>
             </el-select>
           </el-form-item>
         </el-col>
         <el-col :span="8">
           <el-form-item label="紧急程度" prop="urgent">
-            <DictSelection
-              dictName="紧急程度"
-              clearable
-              v-model="addForm.urgent"
-              :disabled="dialogTitle === '派单'"
-            >
+            <DictSelection dictName="紧急程度" clearable v-model="addForm.urgent" :disabled="dialogTitle === '派单'">
             </DictSelection>
           </el-form-item>
         </el-col>
@@ -149,55 +75,27 @@
             />
           </el-form-item>
         </el-col> -->
-        <el-col :span="16">
+        <el-col :span="24">
           <el-form-item label="备注" prop="remark">
-            <el-input
-              type="textarea"
-              resize="none"
-              v-model="addForm.remark"
-              :rows="2"
-              placeholder="请详细说明"
-              size="small"
-              :disabled="dialogTitle === '派单'"
-            ></el-input>
+            <el-input type="textarea" resize="none" v-model="addForm.remark" :rows="2" placeholder="请详细说明" size="small"
+              :disabled="dialogTitle === '派单'"></el-input>
           </el-form-item>
         </el-col>
       </el-row>
 
-      <el-button
-        v-if="dialogTitle.includes('新增')"
-        type="primary"
-        size="small"
-        style="margin-bottom: 10px"
-        @click="handleAddTab"
-        >添加规则</el-button
-      >
+      <el-button v-if="dialogTitle.includes('新增')" type="primary" size="small" style="margin-bottom: 10px"
+        @click="handleAddTab">添加规则</el-button>
 
-      <el-tabs
-        v-model="tabsValue"
-        type="card"
-        :closable="dialogTitle !== '派单'"
-        @tab-click="handleTab"
-        @tab-remove="removeTab"
-      >
-        <el-tab-pane
-          v-for="(item, ruleIdListIndex) in ruleIdList"
-          :key="item.ruleId"
-          :label="item.name"
-          :name="item.ruleId"
-        >
+      <el-tabs v-model="tabsValue" type="card" :closable="dialogTitle !== '派单'" @tab-click="handleTab"
+        @tab-remove="removeTab">
+        <el-tab-pane v-for="(item, ruleIdListIndex) in ruleIdList" :key="item.ruleId" :label="item.name"
+          :name="item.ruleId">
           <div class="el-tab_box">
             <div class="equipmentList_box">
               <header-title title="设备列表">
                 <div v-if="dialogTitle !== '派单'">
-                  <el-button
-                    size="small"
-                    icon="el-icon-plus"
-                    class="ele-btn-icon"
-                    type="primary"
-                    @click="handleAdd(ruleIdList, ruleIdListIndex)"
-                    >新增</el-button
-                  >
+                  <el-button size="small" icon="el-icon-plus" class="ele-btn-icon" type="primary"
+                    :disables="hasCategoryId" @click="handleAdd(ruleIdList, ruleIdListIndex)">新增</el-button>
                 </div>
               </header-title>
               <el-table :data="item.equipmentList" border>
@@ -224,17 +122,9 @@
                     </template>
                   </template>
                 </el-table-column>
-                <el-table-column
-                  v-if="dialogTitle !== '派单'"
-                  label="操作"
-                  width="100"
-                >
+                <el-table-column v-if="dialogTitle !== '派单'" label="操作" width="100">
                   <template slot-scope="scope">
-                    <el-button
-                      type="text"
-                      @click="deleteEquipment(scope.$index)"
-                      >删除</el-button
-                    >
+                    <el-button type="text" @click="deleteEquipment(scope.$index)">删除</el-button>
                   </template>
                 </el-table-column>
               </el-table>
@@ -242,14 +132,8 @@
             <div class="ruleMatters_box">
               <header-title title="规则事项">
                 <div v-if="dialogTitle !== '派单'">
-                  <el-button
-                    size="small"
-                    icon="el-icon-plus"
-                    class="ele-btn-icon"
-                    type="primary"
-                    @click="addPostscript"
-                    >新增</el-button
-                  >
+                  <el-button size="small" icon="el-icon-plus" class="ele-btn-icon" type="primary"
+                    @click="addPostscript">新增</el-button>
                 </div>
               </header-title>
               <el-table :data="item.ruleItems" border>
@@ -258,34 +142,20 @@
                     <span>{{ scope.$index + 1 }}</span>
                   </template>
                 </el-table-column>
-                <el-table-column
-                  label="零部件编码"
-                  prop="categoryCode"
-                  width="100"
-                >
+                <el-table-column label="零部件编码" prop="categoryCode" width="100">
                   <template slot-scope="scope">
                     <div v-if="scope.row.isNew">
-                      <el-input
-                        v-model="scope.row.categoryCode"
-                        placeholder="请输入零部件编码"
-                      ></el-input>
+                      <el-input v-model="scope.row.categoryCode" placeholder="请输入零部件编码"></el-input>
                     </div>
                     <div v-else>
                       <span>{{ scope.row.categoryCode }}</span>
                     </div>
                   </template>
                 </el-table-column>
-                <el-table-column
-                  label="零部件名称"
-                  prop="categoryName"
-                  width="100"
-                >
+                <el-table-column label="零部件名称" prop="categoryName" width="100">
                   <template slot-scope="scope">
                     <div v-if="scope.row.isNew">
-                      <el-input
-                        v-model="scope.row.categoryName"
-                        placeholder="请输入零部件名称"
-                      ></el-input>
+                      <el-input v-model="scope.row.categoryName" placeholder="请输入零部件名称"></el-input>
                     </div>
                     <div v-else>
                       <span>{{ scope.row.categoryName }}</span>
@@ -295,10 +165,7 @@
                 <el-table-column label="事项" prop="name" width="100">
                   <template slot-scope="scope">
                     <div v-if="scope.row.isNew">
-                      <el-input
-                        v-model="scope.row.name"
-                        placeholder="请输入内容"
-                      ></el-input>
+                      <el-input v-model="scope.row.name" placeholder="请输入内容"></el-input>
                     </div>
                     <div v-else>
                       <span>{{ scope.row.name }}</span>
@@ -308,10 +175,7 @@
                 <el-table-column label="内容" prop="content" width="200">
                   <template slot-scope="scope">
                     <div v-if="scope.row.isNew">
-                      <el-input
-                        v-model="scope.row.content"
-                        placeholder="请输入内容"
-                      ></el-input>
+                      <el-input v-model="scope.row.content" placeholder="请输入内容"></el-input>
                     </div>
                     <div v-else>
                       <span>{{ scope.row.content }}</span>
@@ -320,33 +184,22 @@
                 </el-table-column>
                 <el-table-column label="操作指导" prop="operationGuide">
                   <template slot-scope="scope">
-                    <div
-                      class="operationGuide_box"
-                      @click="
-                        openOperationGuideDialogDialog(
-                          scope.row.operationGuide,
-                          scope.$index
-                        )
-                      "
-                    >
+                    <div class="operationGuide_box" @click="
+                      openOperationGuideDialogDialog(
+                        scope.row.operationGuide,
+                        scope.$index
+                      )
+                      ">
                       <div class="left_content">
                         <template v-if="scope.row.operationGuide">
-                          <div
-                            v-for="(item, index) in scope.row.operationGuide
-                              .toolList"
-                            :key="item.id"
-                            >{{ index + 1 }}.{{ item.name }}</div
-                          >
+                          <div v-for="(item, index) in scope.row.operationGuide
+                            .toolList" :key="item.id">{{ index + 1 }}.{{ item.name }}</div>
                         </template>
                       </div>
                       <div class="right_content">
                         <template v-if="scope.row.operationGuide">
-                          <div
-                            v-for="(item, index) in scope.row.operationGuide
-                              .procedureList"
-                            :key="item.id"
-                            >{{ index + 1 }}.{{ item.content }}</div
-                          >
+                          <div v-for="(item, index) in scope.row.operationGuide
+                            .procedureList" :key="item.id">{{ index + 1 }}.{{ item.content }}</div>
                         </template>
                       </div>
                     </div>
@@ -355,25 +208,16 @@
                 <el-table-column label="标准" prop="norm" width="100">
                   <template slot-scope="scope">
                     <div v-if="scope.row.isNew">
-                      <el-input
-                        v-model="scope.row.norm"
-                        placeholder="请输入内容"
-                      ></el-input>
+                      <el-input v-model="scope.row.norm" placeholder="请输入内容"></el-input>
                     </div>
                     <div v-else>
                       <span>{{ scope.row.norm }}</span>
                     </div>
                   </template>
                 </el-table-column>
-                <el-table-column
-                  v-if="dialogTitle !== '派单'"
-                  label="操作"
-                  width="100"
-                >
+                <el-table-column v-if="dialogTitle !== '派单'" label="操作" width="100">
                   <template slot-scope="scope">
-                    <el-button type="text" @click="deleteItem(scope.$index)"
-                      >删除</el-button
-                    >
+                    <el-button type="text" @click="deleteItem(scope.$index)">删除</el-button>
                   </template>
                 </el-table-column>
               </el-table>
@@ -385,8 +229,7 @@
     <template v-slot:footer>
       <el-button @click="visible = false">取消</el-button>
       <el-button type="primary" @click="save">
-        {{ dialogTitle === '派单' ? '派单' : '保存' }}</el-button
-      >
+        {{ dialogTitle === '派单' ? '派单' : '保存' }}</el-button>
     </template>
     <!-- 新增设备 -->
     <MaterialAdd ref="productRefs" @chooseEquipment="chooseEquipment">
@@ -394,30 +237,12 @@
     <!--  -->
     <operation-guideDialog ref="operationGuideDialog" @save="saveEdit" />
     <!-- 添加规则 -->
-    <ele-modal
-      width="800px"
-      :visible="addDialog"
-      :append-to-body="true"
-      title="规则配置"
-      :close-on-click-modal="true"
-      @update:visible="closeAdd"
-      :maxable="true"
-    >
-      <el-select
-        v-model="ruleObj.ruleId"
-        size="small"
-        style="width: 100%"
-        @change="handleRuleNameChange"
-        :disabled="isBindPlan"
-        filterable
-      >
-        <el-option
-          v-for="item in ruleNameList"
-          :key="item.id"
-          :value="item.id"
-          :label="item.name"
-          @click.native="ruleChange(item)"
-        ></el-option>
+    <ele-modal width="800px" :visible="addDialog" :append-to-body="true" title="规则配置" :close-on-click-modal="true"
+      @update:visible="closeAdd" :maxable="true">
+      <el-select v-model="ruleObj.ruleId" size="small" style="width: 100%" @change="handleRuleNameChange"
+        :disabled="isBindPlan" filterable>
+        <el-option v-for="item in ruleNameList" :key="item.id" :value="item.id" :label="item.code + '-' + item.name"
+          @click.native="ruleChange(item)"></el-option>
       </el-select>
       <template v-slot:footer>
         <el-button @click="addDialog = false">取消</el-button>
@@ -428,788 +253,820 @@
 </template>
 
 <script>
-  import { getDetail, getCode } from '@/api/ruleManagement/matter';
-  import {
-    getRule,
-    getCategory,
-    getAssetList,
-    getInfoById
-  } from '@/api/ruleManagement/plan';
-  import { saveOrUpdate } from '@/api/maintenance/patrol_maintenance';
-  import { getUserPage } from '@/api/system/organization';
-  import { getTreeByType } from '@/api/classifyManage';
-  import MaterialAdd from './MaterialAdd.vue';
-  import OperationGuideDialog from './operationGuideDialog.vue';
-  import deptSelect from '@/components/CommomSelect/dept-select.vue';
-  import { pageList } from '@/api/technology/version/version.js';
-  import { getById } from '@/api/maintenance/patrol_maintenance';
-  import { getFile } from '@/api/system/file';
-  import { deepClone } from 'ele-admin/lib/utils/core';
+import { getDetail, getCode } from '@/api/ruleManagement/matter';
+import {
+  getRule,
+  getCategory,
+  getAssetList,
+  getInfoById
+} from '@/api/ruleManagement/plan';
+import { saveOrUpdate } from '@/api/maintenance/patrol_maintenance';
+import { getUserPage } from '@/api/system/organization';
+import { getTreeByType } from '@/api/classifyManage';
+import MaterialAdd from './MaterialAdd.vue';
+import OperationGuideDialog from './operationGuideDialog.vue';
+import deptSelect from '@/components/CommomSelect/dept-select.vue';
+import { pageList } from '@/api/technology/version/version.js';
+import { getById } from '@/api/maintenance/patrol_maintenance';
+import { getFile } from '@/api/system/file';
+import { deepClone } from 'ele-admin/lib/utils/core';
 
-  export default {
-    components: {
-      MaterialAdd,
-      deptSelect,
-      OperationGuideDialog
-    },
-    props: {
-      dialogTitle: {
-        type: String,
-        default: () => {
-          return '新增巡检点计划配置';
-        }
+export default {
+  components: {
+    MaterialAdd,
+    deptSelect,
+    OperationGuideDialog
+  },
+  props: {
+    dialogTitle: {
+      type: String,
+      default: () => {
+        return '新增巡检点计划配置';
       }
-      // visible: {
-      //   type: Boolean,
-      //   default: false
-      // }
-    },
-    data() {
-      const defaultForm = {
-        id: null,
-        code: '',
-        name: '',
-        modelType: '',
-        brandNum: '',
-        specification: '',
-        measuringUnit: '',
+    }
+    // visible: {
+    //   type: Boolean,
+    //   default: false
+    // }
+  },
+  data() {
+    const defaultForm = {
+      id: null,
+      code: '',
+      name: '',
+      modelType: '',
+      brandNum: '',
+      specification: '',
+      measuringUnit: '',
 
-        bomList: []
-      };
-      return {
-        visible: false,
-        ruleIndex: 0, // 规则index
+      bomList: []
+    };
+    return {
+      visible: false,
+      ruleIndex: 0, // 规则index
+      ruleId: '',
+      formLabel: '',
+      isBindPlan: false,
+      ruleObj: {
         ruleId: '',
-        formLabel: '',
-        isBindPlan: false,
-        ruleObj: {
-          ruleId: '',
-          name: '',
-          code: '',
-          equipmentList: []
+        name: '',
+        code: '',
+        equipmentList: []
+      },
+      ruleIdList: [],
+      addForm: {
+        id: '',
+        code: '', // 计划配置单号
+        name: '', // 计划配置名称
+        autoOrder: 1, // 自动派单
+        ruleId: '', // 规则id
+        ruleName: '', // 规则名称
+        duration: null, // 计划完成时长
+        categoryId: '', // 设备类别id
+        approvalUserId: '', // 审核人id
+        groupId: '', // 巡点检部门code
+        executorId: [], // 巡点检人员id
+        executorPhone: '',
+        status: 1, // 状态
+        remark: '', // 备注
+        urgent: '1'
+      },
+      ruleNameList: [], // 规则列表
+      uerList: [], // 审核人列表
+      executorList: [], // 业务人员列表
+      defaultForm,
+      // 表单数据
+      form: {
+        ...defaultForm
+      },
+
+      versionList: [],
+
+      // 表单验证规则
+      addFormRules: {
+        name: [
+          { required: true, message: '请输入计划配置名称', trigger: 'blur' }
+        ],
+        autoOrder: [
+          { required: true, message: '请选择是否自动派单', trigger: 'change' }
+        ],
+        ruleId: [
+          { required: true, message: '请选择规则名称', trigger: 'change' }
+        ],
+        duration: [
+          { required: true, message: '请输入计划完成时长', trigger: 'blur' }
+        ],
+        categoryLevelId: [
+          { required: true, message: '请选择设备分类', trigger: 'change' }
+        ],
+        categoryId: [
+          { required: true, message: '请选择设备类别', trigger: 'change' }
+        ],
+        groupId: [
+          { required: true, message: '请选择巡点检部门', trigger: 'change' }
+        ],
+        executorId: [
+          { required: true, message: '请选择巡点检人员', trigger: 'change' }
+        ],
+        urgent: [
+          { required: true, message: '请选择紧急程度', trigger: 'change' }
+        ]
+      },
+
+      columns: [
+        {
+          type: 'index',
+          width: 55,
+          align: 'center'
         },
-        ruleIdList: [],
-        addForm: {
-          id: '',
-          code: '', // 计划配置单号
-          name: '', // 计划配置名称
-          autoOrder: 1, // 自动派单
-          ruleId: '', // 规则id
-          ruleName: '', // 规则名称
-          duration: null, // 计划完成时长
-          categoryId: '', // 设备类别id
-          approvalUserId: '', // 审核人id
-          groupId: '', // 巡点检部门code
-          executorId: [], // 巡点检人员id
-          executorPhone: '',
-          status: 1, // 状态
-          remark: '', // 备注
-          urgent: '1'
+        {
+          label: '子项编号',
+          prop: 'subCode',
+          action: 'subCode'
         },
-        ruleNameList: [], // 规则列表
-        uerList: [], // 审核人列表
-        executorList: [], // 业务人员列表
-        defaultForm,
-        // 表单数据
-        form: {
-          ...defaultForm
+        {
+          label: '物料名称',
+          prop: 'categoryName',
+          action: 'categoryName'
         },
 
-        versionList: [],
-
-        // 表单验证规则
-        addFormRules: {
-          name: [
-            { required: true, message: '请输入计划配置名称', trigger: 'blur' }
-          ],
-          autoOrder: [
-            { required: true, message: '请选择是否自动派单', trigger: 'change' }
-          ],
-          ruleId: [
-            { required: true, message: '请选择规则名称', trigger: 'change' }
-          ],
-          duration: [
-            { required: true, message: '请输入计划完成时长', trigger: 'blur' }
-          ],
-          categoryLevelId: [
-            { required: true, message: '请选择设备分类', trigger: 'change' }
-          ],
-          categoryId: [
-            { required: true, message: '请选择设备类别', trigger: 'change' }
-          ],
-          groupId: [
-            { required: true, message: '请选择巡点检部门', trigger: 'change' }
-          ],
-          executorId: [
-            { required: true, message: '请选择巡点检人员', trigger: 'change' }
-          ],
-          urgent: [
-            { required: true, message: '请选择紧急程度', trigger: 'change' }
-          ]
+        {
+          label: '是否回收料',
+          prop: 'isReworkBom',
+          action: 'isReworkBom',
+          slot: 'isReworkBom',
+          width: 95
         },
 
-        columns: [
-          {
-            type: 'index',
-            width: 55,
-            align: 'center'
-          },
-          {
-            label: '子项编号',
-            prop: 'subCode',
-            action: 'subCode'
-          },
-          {
-            label: '物料名称',
-            prop: 'categoryName',
-            action: 'categoryName'
-          },
-
-          {
-            label: '是否回收料',
-            prop: 'isReworkBom',
-            action: 'isReworkBom',
-            slot: 'isReworkBom',
-            width: 95
-          },
+        {
+          label: '物料编码',
+          prop: 'categoryCode'
+        },
+        {
+          label: '牌号',
+          prop: 'brandNum'
+        },
+        {
+          label: '型号',
+          prop: 'modelType'
+        },
+        {
+          label: '数量',
+          prop: 'count'
+        },
+        {
+          label: '计量单位',
+          prop: 'unit'
+        },
 
-          {
-            label: '物料编码',
-            prop: 'categoryCode'
-          },
-          {
-            label: '牌号',
-            prop: 'brandNum'
-          },
-          {
-            label: '型号',
-            prop: 'modelType'
-          },
-          {
-            label: '数量',
-            prop: 'count'
-          },
-          {
-            label: '计量单位',
-            prop: 'unit'
-          },
+        {
+          label: '附件',
+          slot: 'bomArtFiles',
+          action: 'bomArtFiles',
+          minWidth: 100
+        },
 
-          {
-            label: '附件',
-            slot: 'bomArtFiles',
-            action: 'bomArtFiles',
-            minWidth: 100
-          },
+        {
+          label: '单位',
+          prop: 'weightUnit'
+        },
 
-          {
-            label: '单位',
-            prop: 'weightUnit'
-          },
+        {
+          label: '备注',
+          prop: 'remark'
+        }
+      ],
 
-          {
-            label: '备注',
-            prop: 'remark'
-          }
-        ],
+      statusList: [
+        { label: '草稿', value: -1 },
+        { label: '失效', value: 0 },
+        { label: '生效', value: 1 }
+      ],
 
-        statusList: [
-          { label: '草稿', value: -1 },
-          { label: '失效', value: 0 },
-          { label: '生效', value: 1 }
-        ],
+      // 提交状态
+      loading: false,
 
-        // 提交状态
-        loading: false,
+      categoryId: null,
 
-        categoryId: null,
+      current: null,
 
-        current: null,
+      materialShow: false,
 
-        materialShow: false,
+      tabsList: [],
+      tableData: [],
 
-        tabsList: [],
-        tableData: [],
+      taskId: null,
 
-        taskId: null,
+      addDialog: false,
+      tabsValue: null,
 
-        addDialog: false,
-        tabsValue: null
-      };
-    },
-    computed: {
-      // 是否开启响应式布局
-      styleResponsive() {
-        return this.$store.state.theme.styleResponsive;
+      hasCategoryId: false,
+      getByIdData: {}
+    };
+  },
+  computed: {
+    // 是否开启响应式布局
+    styleResponsive() {
+      return this.$store.state.theme.styleResponsive;
+    }
+  },
+  watch: {
+    visible(val) {
+      if (val) {
+        // 获取审核人列表数据
+        this.getUserList();
+        // 获取规则名称
+        this._getRuleNameList();
       }
+    }
+  },
+  methods: {
+    close() {
+      this.visible = false;
     },
-    watch: {
-      visible(val) {
-        if (val) {
-          // 获取审核人列表数据
-          this.getUserList();
-          // 获取规则名称
-          this._getRuleNameList();
-        }
+    // 初始化
+    async init(row, tips) {
+      console.log(row);
+      console.log(tips);
+      this.visible = true;
+      if (row) {
+        this.getInfo(row.id, tips);
+      } else {
+        //  获取计划配置单号
+        this.getOrderCode(tips);
+        this.addForm = {
+          code: '', // 计划配置单号
+          name: '', // 计划配置名称
+          autoOrder: 1, // 自动派单
+          ruleId: '', // 规则id
+          ruleName: '', // 规则名称
+          duration: null, // 计划完成时长
+          categoryId: '', // 设备类别id
+          approvalUserId: '', // 审核人id
+          groupId: '', // 巡点检部门code
+          executorId: [], // 巡点检人员id
+          executorPhone: '',
+          status: 1, // 状态
+          remark: '', // 备注
+          urgent: '1'
+        };
+        this.ruleIdList = [];
+        this.isBindPlan = false;
+        this.planRuleEquiList = [];
+        //   this.matterRulesList = [];
       }
-    },
-    methods: {
-      close() {
-        this.visible = false;
-      },
-      // 初始化
-      async init(row, tips) {
-        console.log(row);
-        console.log(tips);
-        this.visible = true;
-        if (row) {
-          this.getInfo(row.id, tips);
-        } else {
-          //  获取计划配置单号
-          this.getOrderCode(tips);
-          this.addForm = {
-            code: '', // 计划配置单号
-            name: '', // 计划配置名称
-            autoOrder: 1, // 自动派单
-            ruleId: '', // 规则id
-            ruleName: '', // 规则名称
-            duration: null, // 计划完成时长
-            categoryId: '', // 设备类别id
-            approvalUserId: '', // 审核人id
-            groupId: '', // 巡点检部门code
-            executorId: [], // 巡点检人员id
-            executorPhone: '',
-            status: 1, // 状态
-            remark: '', // 备注
-            urgent: '1'
-          };
-          this.ruleIdList = [];
-          this.isBindPlan = false;
-          this.planRuleEquiList = [];
-          //   this.matterRulesList = [];
-        }
-        this.formLabel = this.dialogTitle.includes('巡点检')
-          ? '巡点检'
-          : this.dialogTitle.includes('保养')
+      this.formLabel = this.dialogTitle.includes('巡点检')
+        ? '巡点检'
+        : this.dialogTitle.includes('保养')
           ? '保养'
           : this.dialogTitle.includes('量具送检')
-          ? '量具送检'
-          : this.dialogTitle.includes('运行记录')
-          ? '运行记录'
-          : '盘点';
-        const typeOptions = {
-          巡点检: 1,
-          保养: 2,
-          维修: 3,
-          计划性维修: 4,
-          量具送检: 5,
-          运行记录: 6
-        };
-        this.$set(this.addForm, 'type', typeOptions[this.formLabel]);
+            ? '量具送检'
+            : this.dialogTitle.includes('运行记录')
+              ? '运行记录'
+              : '盘点';
+      const typeOptions = {
+        巡点检: 1,
+        保养: 2,
+        维修: 3,
+        计划性维修: 4,
+        量具送检: 5,
+        运行记录: 6
+      };
+      this.$set(this.addForm, 'type', typeOptions[this.formLabel]);
 
-        // const planRuleTypeObj = {
-        //   巡点检: 'PATROL',
-        //   保养: 'MAINTAIN',
-        //   量具送检: '',
-        //   盘点: 'INVENTORY'
-        // };
-        // this.addForm.planType = planRuleTypeObj[this.formLabel];
-      },
-      autoOrderChange(val) {
-        if (val == 0) {
-          this.addForm.executorId = '';
-          this.addForm.groupId = '';
-        }
-      },
-      ruleChange(item) {
-        this.ruleObj.name = item.name;
-        this.ruleObj.code = item.code;
-      },
-      save() {
-        console.log(this.addForm, 888);
-        console.log(this.ruleIdList);
-        if (this.ruleIdList && this.ruleIdList.length > 0) {
-          this.$refs.addFormRef.validate(async (valid) => {
-            console.log(valid);
-            if (valid) {
-              const planDeviceList = this.ruleIdList.map((ruleItem) => {
-                return ruleItem.equipmentList.map((item) => {
-                  return {
-                    // equiCode: item.code,
-                    // equiName: item.name,
-                    deviceId: item.id,
-                    codeNumber: item.codeNumber,
-                    // equiModel: item.modelType,
-                    equiLocation: item.position[0] && item.position[0].pathName,
-                    equiLocationCode:
-                      item.position[0] && item.position[0].pathIds,
-                    workItems: ruleItem.ruleItems ? ruleItem.ruleItems : []
-                    // categoryId: item.category.categoryLevelId,
-                    // categoryName: item.category.categoryLevelName
-                    // sparePart: ruleItem.sparePart ? obj.sparePart : []
-                  };
-                });
-              });
-              let boolen = planDeviceList.every((item) => item.length > 0);
-              console.log(planDeviceList);
-              if (!boolen) {
-                this.$message.error('请添加设备!');
-                return false;
-              }
-              let sendMsg = this.ruleIdList.map((item, index) => {
+      // const planRuleTypeObj = {
+      //   巡点检: 'PATROL',
+      //   保养: 'MAINTAIN',
+      //   量具送检: '',
+      //   盘点: 'INVENTORY'
+      // };
+      // this.addForm.planType = planRuleTypeObj[this.formLabel];
+    },
+    autoOrderChange(val) {
+      if (val == 0) {
+        this.addForm.executorId = '';
+        this.addForm.groupId = '';
+      }
+    },
+    ruleChange(item) {
+      this.ruleObj.name = item.name;
+      this.ruleObj.code = item.code;
+    },
+    save() {
+      console.log(this.addForm, 888);
+      console.log(this.ruleIdList);
+      if (this.ruleIdList && this.ruleIdList.length > 0) {
+        this.$refs.addFormRef.validate(async (valid) => {
+          console.log(valid);
+          if (valid) {
+            const planDeviceList = this.ruleIdList.map((ruleItem) => {
+              return ruleItem.equipmentList.map((item) => {
                 return {
-                  ...this.addForm,
-                  ruleId: item.ruleId,
-                  categoryId: item.categoryId,
-                  planDeviceList: planDeviceList[index],
-                  executorId: this.addForm.executorId
-                    ? this.addForm.executorId.join(',')
-                    : ''
+                  // equiCode: item.code,
+                  // equiName: item.name,
+                  deviceId: item.id,
+                  codeNumber: item.codeNumber,
+                  // equiModel: item.modelType,
+                  equiLocation: item.position[0] && item.position[0].pathName,
+                  equiLocationCode:
+                    item.position[0] && item.position[0].pathIds,
+                  workItems: ruleItem.ruleItems ? ruleItem.ruleItems : []
+                  // categoryId: item.category.categoryLevelId,
+                  // categoryName: item.category.categoryLevelName
+                  // sparePart: ruleItem.sparePart ? obj.sparePart : []
                 };
               });
-              let type = '';
-              if (this.dialogTitle === '派单') {
-                type = '派单';
-              } else {
-                type = this.dialogTitle.includes('新增') ? '新增' : '编辑';
-              }
-              try {
-                let res = await saveOrUpdate(sendMsg);
-                if (res) {
-                  this.$message.success(type + '成功!');
-                  this.$emit('done');
-                  this.visible = false;
-                }
-              } catch (error) {
-                this.$message.error(type + '失败!');
+            });
+            let boolen = planDeviceList.every((item) => item.length > 0);
+            console.log(planDeviceList);
+            if (!boolen) {
+              this.$message.error('请添加设备!');
+              return false;
+            }
+            let sendMsg = this.ruleIdList.map((item, index) => {
+              return {
+                ...this.addForm,
+                ruleId: item.ruleId,
+                categoryId: item.categoryId,
+                planDeviceList: planDeviceList[index],
+                executorId: this.addForm.executorId
+                  ? this.addForm.executorId.join(',')
+                  : ''
+              };
+            });
+            let type = '';
+            if (this.dialogTitle === '派单') {
+              type = '派单';
+            } else {
+              type = this.dialogTitle.includes('新增') ? '新增' : '编辑';
+            }
+            // return
+            try {
+              let res = await saveOrUpdate(sendMsg);
+              if (res) {
+                this.$message.success(type + '成功!');
+                this.$emit('done');
+                this.visible = false;
               }
+            } catch (error) {
+              this.$message.error(type + '失败!');
             }
-          });
-        } else {
-          this.$message.error('请添加规则!');
-        }
-      },
-      // 保存操作指导数据
-      saveEdit(data, index) {
-        console.log(this.matterRulesList);
-        console.log(data);
-        console.log(index);
-        this.$set(
-          this.ruleIdList[this.ruleIndex].ruleItems[index],
-          'operationGuide',
-          data
-        );
-      },
-      /* 打开操作手册编辑款 */
-      openOperationGuideDialogDialog(row, index) {
-        if (this.dialogTitle !== '派单') {
-          this.$refs.operationGuideDialog.open(row, index);
-        }
-      },
-      deleteEquipment(index) {
-        this.ruleIdList[this.ruleIndex].equipmentList.splice(index, 1);
-      },
-      deleteItem(index) {
-        if (this.ruleIdList[this.ruleIndex].ruleItems.length > 1) {
-          this.ruleIdList[this.ruleIndex].ruleItems.splice(index, 1);
-        } else {
-          this.$message.error('至少要有一个规则事项!');
-        }
-      },
-      addPostscript() {
-        console.log(
-          'this.matterRulesList---------------',
-          this.matterRulesList
-        );
-        this.ruleIdList[this.ruleIndex].ruleItems.push({
-          sort: null,
-          name: '',
-          content: '',
-          norm: '',
-          isNew: true,
-          operationGuide: {
-            procedureList: [],
-            toolList: []
           }
         });
-      },
-      async getInfo(id, tips) {
-        console.log(id);
-        try {
-          const res = await getById(id);
-          console.log('res----------', res);
-          this.addForm = res.data;
-          this.addForm.id = res.data.planId;
-          if (this.dialogTitle === '派单') {
-            this.addForm.autoOrder = 1;
+      } else {
+        this.$message.error('请添加规则!');
+      }
+    },
+    // 保存操作指导数据
+    saveEdit(data, index) {
+      console.log(this.matterRulesList);
+      console.log(data);
+      console.log(index);
+      this.$set(
+        this.ruleIdList[this.ruleIndex].ruleItems[index],
+        'operationGuide',
+        data
+      );
+    },
+    /* 打开操作手册编辑款 */
+    openOperationGuideDialogDialog(row, index) {
+      if (this.dialogTitle !== '派单') {
+        this.$refs.operationGuideDialog.open(row, index);
+      }
+    },
+    deleteEquipment(index) {
+      this.ruleIdList[this.ruleIndex].equipmentList.splice(index, 1);
+    },
+    deleteItem(index) {
+      if (this.ruleIdList[this.ruleIndex].ruleItems.length > 1) {
+        this.ruleIdList[this.ruleIndex].ruleItems.splice(index, 1);
+      } else {
+        this.$message.error('至少要有一个规则事项!');
+      }
+    },
+    addPostscript() {
+      console.log(
+        'this.matterRulesList---------------',
+        this.matterRulesList
+      );
+      this.ruleIdList[this.ruleIndex].ruleItems.push({
+        sort: null,
+        name: '',
+        content: '',
+        norm: '',
+        isNew: true,
+        operationGuide: {
+          procedureList: [],
+          toolList: []
+        }
+      });
+    },
+    async getInfo(id, tips) {
+      console.log(id);
+      try {
+        const res = await getById(id);
+        console.log('res----------', res);
+        this.addForm = res.data;
+        this.addForm.id = res.data.planId;
+        if (this.dialogTitle === '派单') {
+          this.addForm.autoOrder = 1;
+        }
+        this.isBindPlan = res.isBindPlan;
+        // this.categoryEquipment(res.categoryLevelId);
+        this.ruleIdList = [
+          {
+            id: res.data.id,
+            ruleId: res.data.ruleId,
+            name: res.data.name,
+            code: res.data.code,
+            categoryId: res.data.categoryId,
+            equipmentList: res.data.planDeviceList.map((item) => {
+              return {
+                name: item.substance.name,
+                position: item.substance.position,
+                id: item.substance.id,
+                fixCode: item.substance.fixCode,
+                codeNumber: item.substance.codeNumber
+                // category: {
+                //   categoryLevelId: item.categoryId,
+                //   categoryLevelName: item.categoryName
+                // }
+              };
+            }),
+            ruleItems: res.data.planDeviceList[0].workItems
           }
-          this.isBindPlan = res.isBindPlan;
-          // this.categoryEquipment(res.categoryLevelId);
-          this.ruleIdList = [
-            {
-              id: res.data.id,
-              ruleId: res.data.ruleId,
-              name: res.data.name,
-              code: res.data.code,
-              categoryId: res.data.categoryId,
-              equipmentList: res.data.planDeviceList.map((item) => {
-                return {
-                  name: item.substance.name,
-                  position: item.substance.position,
-                  id: item.substance.id,
-                  fixCode: item.substance.fixCode,
-                  codeNumber: item.substance.codeNumber
-                  // category: {
-                  //   categoryLevelId: item.categoryId,
-                  //   categoryLevelName: item.categoryName
-                  // }
-                };
-              }),
-              ruleItems: res.data.planDeviceList[0].workItems
-            }
-          ];
-          console.log(this.ruleIdList);
-          this.tabsValue = this.ruleIdList[0].ruleId;
+        ];
+        console.log(this.ruleIdList);
+        this.tabsValue = this.ruleIdList[0].ruleId;
 
-          // this._getMatterRulesDetails(res.ruleId);
-          this.$set(this.addForm, 'code', res.data.code);
-          this.$set(this.addForm, 'urgent', JSON.stringify(res.data.urgent));
-          this.$set(this.addForm, 'executorId', res.data.executorId.split(','));
-          this.$set(this.addForm, 'imageUrl', {});
-          console.log(this.rootData);
+        // this._getMatterRulesDetails(res.ruleId);
+        this.$set(this.addForm, 'code', res.data.code);
+        this.$set(this.addForm, 'urgent', JSON.stringify(res.data.urgent));
+        this.$set(this.addForm, 'executorId', res.data.executorId.split(','));
+        this.$set(this.addForm, 'imageUrl', {});
+        console.log(this.rootData);
 
-          this.getUserList({ groupId: res.data.groupId });
-          // const rep = await getTreeByType(0);
-          // console.log('sasas', res);
-          // const ids = this.findTopLevelAncestorId(
-          //   rep.data,
-          //   res.categoryLevelId
-          // );
-          // this.rootId = ids;
-          // //   await this._getEquipmentList(res.categoryLevelId, this.isBindPlan);
-          // let keys = [];
-          // res.deviceInfo.map((item) => {
-          //   keys.push(item.substanceId);
-          // });
-          // this.$nextTick(() => {
-          //   this.$refs.equiListTree.setCheckedKeys(keys);
-          // });
-          // this.clickedTreeNode = true;
-        } catch (error) {
-          console.log(error);
-        }
-      },
-      // 获取设备分类数据
-      async categoryEquipment(id) {
-        const params = { categoryLevelId: id, pageNum: 1, size: -1 };
-        console.log('params==', params);
-        const data = await getCategory(params);
-        console.log(data);
-        this.equipmentList = data.list;
-      },
-      // 选择设备
-      chooseEquipment(data, index, categoryId) {
-        this.$set(
-          this.ruleIdList[index],
-          'equipmentList',
-          this.ruleIdList[index].equipmentList.concat(data)
-        );
-        this.$set(this.ruleIdList[index], 'categoryId', categoryId);
-        console.log(this.ruleIdList);
-      },
-      // 获取计划配置单号
-      async getOrderCode(tips) {
-        if (tips.includes('巡点检')) {
-          const data = await getCode('patrolconfig_code');
-          this.$set(this.addForm, 'code', data);
-        }
-        if (tips.includes('保养')) {
-          const code = await getCode('maintainconfig_code');
-          this.$set(this.addForm, 'code', code);
-        }
-        if (tips.includes('量具送检')) {
-          const code = await getCode('quantity_code');
-          this.$set(this.addForm, 'code', code);
-        }
-        if (tips.includes('运行记录')) {
-          const code = await getCode('runRecord_code');
-          this.$set(this.addForm, 'code', code);
-        }
-      },
-      //选择部门(搜索)
-      searchDeptNodeClick(info, data) {
-        if (info) {
-          // 根据部门获取人员
-          this.addForm.groupName = data.name;
-          const params = { groupId: info };
-          this.getUserList(params);
-        } else {
-          this.addForm.groupId = null;
+        this.getUserList({ groupId: res.data.groupId });
+        // const rep = await getTreeByType(0);
+        // console.log('sasas', res);
+        // const ids = this.findTopLevelAncestorId(
+        //   rep.data,
+        //   res.categoryLevelId
+        // );
+        // this.rootId = ids;
+        // //   await this._getEquipmentList(res.categoryLevelId, this.isBindPlan);
+        // let keys = [];
+        // res.deviceInfo.map((item) => {
+        //   keys.push(item.substanceId);
+        // });
+        // this.$nextTick(() => {
+        //   this.$refs.equiListTree.setCheckedKeys(keys);
+        // });
+        // this.clickedTreeNode = true;
+      } catch (error) {
+        console.log(error);
+      }
+    },
+    // 获取设备分类数据
+    async categoryEquipment(id) {
+      const params = { categoryLevelId: id, pageNum: 1, size: -1 };
+      console.log('params==', params);
+      const data = await getCategory(params);
+      console.log(data);
+      this.equipmentList = data.list;
+    },
+    // 选择设备
+    chooseEquipment(data, index, categoryId) {
+      this.$set(
+        this.ruleIdList[index],
+        'equipmentList',
+        this.ruleIdList[index].equipmentList.concat(data)
+      );
+      this.$set(this.ruleIdList[index], 'categoryId', categoryId);
+      console.log(this.ruleIdList);
+    },
+    // 获取计划配置单号
+    async getOrderCode(tips) {
+      if (tips.includes('巡点检')) {
+        const data = await getCode('patrolconfig_code');
+        this.$set(this.addForm, 'code', data);
+      }
+      if (tips.includes('保养')) {
+        const code = await getCode('maintainconfig_code');
+        this.$set(this.addForm, 'code', code);
+      }
+      if (tips.includes('量具送检')) {
+        const code = await getCode('quantity_code');
+        this.$set(this.addForm, 'code', code);
+      }
+      if (tips.includes('运行记录')) {
+        const code = await getCode('runRecord_code');
+        this.$set(this.addForm, 'code', code);
+      }
+    },
+    //选择部门(搜索)
+    searchDeptNodeClick(info, data) {
+      if (info) {
+        // 根据部门获取人员
+        this.addForm.groupName = data.name;
+        const params = { groupId: info };
+        this.getUserList(params);
+      } else {
+        this.addForm.groupId = null;
+      }
+    },
+    // 过滤计划完成时长
+    formDataDurationTime(value) {
+      if (value > 0) {
+        this.addForm.duration = value.replace(/^[0]+/, '');
+      } else {
+        this.addForm.duration = 0;
+      }
+    },
+    // 获取审核人列表、巡点检人员
+    async getUserList(params) {
+      try {
+        let data = { pageNum: 1, size: -1 };
+        // 如果传了参数就是获取巡点检人员数据
+        if (params) {
+          data = Object.assign(data, params);
         }
-      },
-      // 过滤计划完成时长
-      formDataDurationTime(value) {
-        if (value > 0) {
-          this.addForm.duration = value.replace(/^[0]+/, '');
+        const res = await getUserPage(data);
+        console.log('res------------', res);
+        if (params) {
+          this.executorList = res.list;
         } else {
-          this.addForm.duration = 0;
+          this.uerList = res.list;
         }
-      },
-      // 获取审核人列表、巡点检人员
-      async getUserList(params) {
-        try {
-          let data = { pageNum: 1, size: -1 };
-          // 如果传了参数就是获取巡点检人员数据
-          if (params) {
-            data = Object.assign(data, params);
-          }
-          const res = await getUserPage(data);
-          console.log('res------------', res);
-          if (params) {
-            this.executorList = res.list;
-          } else {
-            this.uerList = res.list;
-          }
-        } catch (error) {}
-      },
-      // 获取规则名列表
-      async _getRuleNameList() {
-        if (
-          this.dialogTitle === '新增保养计划配置' ||
-          this.dialogTitle === '编辑保养计划配置'
-        ) {
-          const res = await getRule({
-            status: 1,
-            type: 2,
-            pageNum: 1,
-            size: -1
-          });
-          if (res.list) {
-            this.ruleNameList = res.list || [];
-          }
+      } catch (error) { }
+    },
+    // 获取规则名列表
+    async _getRuleNameList() {
+      if (
+        this.dialogTitle === '新增保养计划配置' ||
+        this.dialogTitle === '编辑保养计划配置'
+      ) {
+        const res = await getRule({
+          status: 1,
+          type: 2,
+          pageNum: 1,
+          size: -1
+        });
+        if (res.list) {
+          this.ruleNameList = res.list || [];
         }
-        if (
-          this.dialogTitle === '新增巡点检计划配置' ||
-          this.dialogTitle === '编辑巡点检计划配置'
-        ) {
-          const res = await getRule({
-            status: 1,
-            type: 1,
-            pageNum: 1,
-            size: -1
-          });
-          if (res.list) {
-            this.ruleNameList = res.list || [];
-          }
+      }
+      if (
+        this.dialogTitle === '新增巡点检计划配置' ||
+        this.dialogTitle === '编辑巡点检计划配置'
+      ) {
+        const res = await getRule({
+          status: 1,
+          type: 1,
+          pageNum: 1,
+          size: -1
+        });
+        if (res.list) {
+          this.ruleNameList = res.list || [];
         }
-        if (
-          this.dialogTitle === '新增量具送检计划配置' ||
-          this.dialogTitle === '编辑量具送检计划配置'
-        ) {
-          const res = await getRule({
-            status: 1,
-            type: 5,
-            pageNum: 1,
-            size: -1
-          });
-          if (res.list) {
-            this.ruleNameList = res.list || [];
-          }
+      }
+      if (
+        this.dialogTitle === '新增量具送检计划配置' ||
+        this.dialogTitle === '编辑量具送检计划配置'
+      ) {
+        const res = await getRule({
+          status: 1,
+          type: 5,
+          pageNum: 1,
+          size: -1
+        });
+        if (res.list) {
+          this.ruleNameList = res.list || [];
         }
-        if (
-          this.dialogTitle === '新增运行记录配置' ||
-          this.dialogTitle === '编辑运行记录配置'
-        ) {
-          const res = await getRule({
-            status: 1,
-            type: 6,
-            pageNum: 1,
-            size: -1
-          });
-          if (res.list) {
-            this.ruleNameList = res.list || [];
-          }
+      }
+      if (
+        this.dialogTitle === '新增运行记录配置' ||
+        this.dialogTitle === '编辑运行记录配置'
+      ) {
+        const res = await getRule({
+          status: 1,
+          type: 6,
+          pageNum: 1,
+          size: -1
+        });
+        if (res.list) {
+          this.ruleNameList = res.list || [];
         }
-      },
-      downloadFile(file) {
-        getFile({ objectName: file.storePath }, file.name);
-      },
+      }
+    },
+    downloadFile(file) {
+      getFile({ objectName: file.storePath }, file.name);
+    },
 
-      openEdit(index) {
-        this.current = this.form.bomList[index];
-        console.log(this.current);
-        this.materialShow = true;
-      },
+    openEdit(index) {
+      this.current = this.form.bomList[index];
+      console.log(this.current);
+      this.materialShow = true;
+    },
 
-      /* 表格数据源 */
-      datasource({ page, limit, where }) {
-        return [];
-      },
+    /* 表格数据源 */
+    datasource({ page, limit, where }) {
+      return [];
+    },
 
-      async getVersionList() {
-        const res = await pageList({
-          pageNum: 1,
-          size: 100
-        });
+    async getVersionList() {
+      const res = await pageList({
+        pageNum: 1,
+        size: 100
+      });
 
-        this.versionList = res.list;
-      },
+      this.versionList = res.list;
+    },
 
-      handleAdd(ruleIdList, ruleIdListIndex) {
-        this.$refs.productRefs.open(ruleIdList, ruleIdListIndex);
-      },
+    handleAdd(ruleIdList, ruleIdListIndex) {
+      this.$refs.productRefs.open(ruleIdList, ruleIdListIndex);
+    },
 
-      // /* 更新visible */
-      // updateVisible(value) {
-      //   this.$emit('update:visible', value);
-      // },
+    // /* 更新visible */
+    // updateVisible(value) {
+    //   this.$emit('update:visible', value);
+    // },
 
-      handleAddTab() {
-        this.tableData = this.tabsList;
-        this.addDialog = true;
-      },
+    handleAddTab() {
+      this.tableData = this.tabsList;
+      this.addDialog = true;
+    },
 
-      handleTab(e) {
-        this.ruleIndex = e.index;
-        // this.ruleIdList[e.index].ruleItems = this._getMatterRulesDetails(this.ruleId)
-      },
+    handleTab(e) {
+      this.ruleIndex = e.index;
+      // this.ruleIdList[e.index].ruleItems = this._getMatterRulesDetails(this.ruleId)
+    },
 
-      removeTab(targetName) {
-        this.$confirm('是否删除当前工序?', '提示', {
-          confirmButtonText: '确定',
-          cancelButtonText: '取消',
-          type: 'warning'
+    removeTab(targetName) {
+      this.$confirm('是否删除当前工序?', '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      })
+        .then(() => {
+          this.ruleIdList.forEach((e, index) => {
+            if (e.ruleId == targetName) {
+              this.ruleIdList.splice(index, 1);
+              this.$nextTick(() => {
+                if (this.ruleIdList.length == 1) {
+                  this.tabsValue = this.ruleIdList[0].ruleId;
+                }
+              });
+            }
+          });
         })
-          .then(() => {
-            this.ruleIdList.forEach((e, index) => {
-              if (e.ruleId == targetName) {
-                this.ruleIdList.splice(index, 1);
-                this.$nextTick(() => {
-                  if (this.ruleIdList.length == 1) {
-                    this.tabsValue = this.ruleIdList[0].ruleId;
-                  }
-                });
-              }
-            });
-          })
-          .catch(() => {});
-      },
+        .catch(() => { });
+    },
+
+    /*关闭选择参数*/
+    closeAdd() {
+      this.addDialog = false;
+    },
+    // 规则名称下拉触发
+    handleRuleNameChange(val) {
+      this.ruleId = val;
+      console.log('勾选的规则----', val);
+      this.getRulesDetails(val);
+    },
+    async getRulesDetails(val) {
+      const res = await getDetail(val);
+      this.hasCategoryId = res?.categoryId;
+      this.getByIdData = res;
+      console.log(res, 'sssssssssssssssssssssss')
+    },
+    // 封装 - 获取规则下面的详情数据及事项
+    async _getMatterRulesDetails(val) {
+      const res = await getDetail(val);
+      return res.ruleItems;
+    },
+    async addRule() {
+
+      let boolen = this.ruleIdList.every((item) => {
+        return this.ruleId != item.ruleId;
+      });
+      if (boolen) {
+        this.ruleObj.ruleItems = await this._getMatterRulesDetails(
+          this.ruleId
+        );
+
+        for (let i = 0; i < this.ruleObj.ruleItems.length; i++) {
+          const id = this.getByIdData?.categoryId;
+          const name = this.getByIdData?.categoryName;
+
+          this.ruleObj.ruleItems[i].categoryId = id;
+          this.ruleObj.ruleItems[i].categoryName = name;
+
+          this.ruleObj.ruleItems[i].isNew = true;
+        }
+
+        this.ruleIdList.push(deepClone(this.ruleObj));
+
+        console.log('this.ruleIdList--------', this.ruleIdList);
 
-      /*关闭选择参数*/
-      closeAdd() {
         this.addDialog = false;
-      },
-      // 规则名称下拉触发
-      handleRuleNameChange(val) {
-        this.ruleId = val;
-        console.log('val----', val);
-        // this._getMatterRulesDetails(val);
-      },
-      // 封装 - 获取规则下面的详情数据及事项
-      async _getMatterRulesDetails(val) {
-        const res = await getDetail(val);
-        return res.ruleItems;
-        // console.log('res------', res);
-        // this.matterRulesList = res.ruleItems;
-      },
-      async addRule() {
-        console.log(this.ruleIdList);
-        console.log(this.ruleId);
-        let boolen = this.ruleIdList.every((item) => {
-          return this.ruleId != item.ruleId;
+        this.$nextTick(() => {
+          if (this.ruleIdList.length == 1) {
+            this.tabsValue = this.ruleIdList[0].ruleId;
+          }
         });
-        if (boolen) {
-          console.log(this.ruleNameList);
-          this.ruleObj.ruleItems = await this._getMatterRulesDetails(
-            this.ruleId
-          );
-          this.ruleIdList.push(deepClone(this.ruleObj));
-          console.log('this.ruleIdList--------', this.ruleIdList);
-          this.addDialog = false;
-          this.$nextTick(() => {
-            if (this.ruleIdList.length == 1) {
-              this.tabsValue = this.ruleIdList[0].ruleId;
-            }
-          });
-        } else {
-          this.$message.error('请误重复添加规则');
-        }
-      },
-      onClose() {
-        console.log('关闭窗口');
-        this.visible = false;
+      } else {
+        this.$message.error('请误重复添加规则');
       }
+    },
+    onClose() {
+      console.log('关闭窗口');
+      this.visible = false;
     }
-  };
+  }
+};
 </script>
 
 <style lang="scss" scoped>
-  ::v-deep .el-row {
+::v-deep .el-row {
+  display: flex;
+  flex-wrap: wrap;
+}
+
+::v-deep .el-tab_box {
+  display: flex;
+  margin-top: 10px;
+  height: 300px;
+  width: 100%;
+
+  .equipmentList_box {
+    flex: 1;
+    height: 100%;
+    margin-right: 10px;
     display: flex;
-    flex-wrap: wrap;
+    flex-direction: column;
+
+    .divider {
+      flex: 0 0 50px;
+
+      .title {
+        height: 35px;
+      }
+    }
+
+    .el-table {
+      overflow: auto;
+    }
   }
-  ::v-deep .el-tab_box {
+
+  .ruleMatters_box {
+    flex: 3;
+    height: 100%;
     display: flex;
-    margin-top: 10px;
-    height: 300px;
-    width: 100%;
-    .equipmentList_box {
-      flex: 1;
-      height: 100%;
-      margin-right: 10px;
-      display: flex;
-      flex-direction: column;
-      .divider {
-        flex: 0 0 50px;
-        .title {
-          height: 35px;
-        }
-      }
-      .el-table {
-        overflow: auto;
+    flex-direction: column;
+    overflow: hidden;
+
+    .divider {
+      flex: 0 0 50px;
+
+      .title {
+        height: 35px;
       }
     }
-    .ruleMatters_box {
-      flex: 3;
-      height: 100%;
-      display: flex;
-      flex-direction: column;
-      overflow: hidden;
-      .divider {
-        flex: 0 0 50px;
-        .title {
-          height: 35px;
+
+    .el-table {
+      overflow: auto;
+
+      .operationGuide_box {
+        width: 100%;
+        height: 50px;
+        display: flex;
+        overflow: hidden;
+        cursor: pointer;
+
+        .left_content {
+          flex: 0 0 200px;
+          padding: 10px;
+          box-sizing: border-box;
+          border: 1px solid #c0c4cc;
+          border-radius: 10px;
+          margin-right: 10px;
+          overflow-y: auto;
         }
-      }
-      .el-table {
-        overflow: auto;
-        .operationGuide_box {
-          width: 100%;
-          height: 50px;
-          display: flex;
-          overflow: hidden;
-          cursor: pointer;
-          .left_content {
-            flex: 0 0 200px;
-            padding: 10px;
-            box-sizing: border-box;
-            border: 1px solid #c0c4cc;
-            border-radius: 10px;
-            margin-right: 10px;
-            overflow-y: auto;
-          }
-          .right_content {
-            flex: 1;
-            padding: 10px;
-            box-sizing: border-box;
-            border: 1px solid #c0c4cc;
-            border-radius: 10px;
-            overflow-y: auto;
-          }
+
+        .right_content {
+          flex: 1;
+          padding: 10px;
+          box-sizing: border-box;
+          border: 1px solid #c0c4cc;
+          border-radius: 10px;
+          overflow-y: auto;
         }
       }
-      .el-table::before {
-        display: none;
-      }
+    }
+
+    .el-table::before {
+      display: none;
     }
   }
+}
 </style>