ソースを参照

Merge branch 'dev' of http://110.41.163.243:9980/kd-aiot/kd-aiot-frontend-eam into dev

quwangxin 3 年 前
コミット
cfddaee920

+ 23 - 41
src/components/addPatrolConfigDialog/index.vue

@@ -89,6 +89,7 @@
                 v-model="addForm.categoryLevelId"
                 @changeNode="chooseClassify"
                 @setRootId="getRootId"
+				:disabled="isBindPlan"
               />
             </el-form-item>
           </el-col>
@@ -135,6 +136,7 @@
               <deptSelect
                 v-model="addForm.groupId"
                 @changeGroup="searchDeptNodeClick"
+				:disabled="isBindPlan"
               />
             </el-form-item>
           </el-col>
@@ -163,6 +165,7 @@
                 dictName="紧急程度"
                 clearable
                 v-model="addForm.urgent"
+				:disabled="isBindPlan"
               >
               </DictSelection>
             </el-form-item>
@@ -368,12 +371,6 @@
           return '新增巡点检计划配置';
         }
       },
-      isBindPlan: {
-        type: Boolean,
-        default: function () {
-          return false;
-        }
-      }
     },
     data() {
       return {
@@ -452,7 +449,8 @@
         ruleNameList: [],
         addDialogLoading: false,
         equipmentList: [],
-        rootId: null
+        rootId: null,
+		isBindPlan:false
       };
     },
     computed: {},
@@ -481,6 +479,7 @@
         } else {
           //  获取计划配置单号
           this.getOrderCode(tips);
+		  this.isBindPlan = false
           this.planRuleEquiList = [];
           this.matterRulesList = [];
         }
@@ -489,6 +488,7 @@
       async getInfo(id) {
         const res = await getInfoById(id);
         this.addForm = res;
+		this.isBindPlan = res.isBindPlan
         this.categoryEquipment(res.categoryLevelId);
         const params = { groupId: res.groupId };
         this.getUserList(params);
@@ -497,7 +497,7 @@
         this.$set(this.addForm, 'urgent', JSON.stringify(res.urgent));
         this.$set(this.addForm, 'executeIdList', res.executeId.split(','));
         this.$set(this.addForm, 'imageUrl', {});
-        this._getEquipmentList(res.categoryId);
+        this._getEquipmentList(res.categoryId,this.isBindPlan);
         let keys = [];
         res.deviceInfo.map((item) => {
           keys.push(item.substanceId);
@@ -538,35 +538,33 @@
       async handleEquipmentClassChange(item) {
         this.clickedTreeNode = true;
         this.equipmentInfo = {};
-        this._getEquipmentList(item.id);
+        this._getEquipmentList(item.id,this.isBindPlan);
       },
       // 封装 - 获取设备分类列表
-      async _getEquipmentList(val) {
+      async _getEquipmentList(val,bind) {
         const params = {
           pageNum: 1,
           size: -1,
           categoryId: val,
           rootCategoryLevelId: this.rootId
         };
-        try {
           const res = await getAssetList(params);
-          this.planRuleEquiList = res.list;
+          this.planRuleEquiList = res.list
+		  if(!res.list.length) return
           this.planRuleEquiList.map((item) => {
-            item.showName = item.name + '(' + item.code + ')';
-          });
-          this.currentEquItemIndex = 0;
-          const item = this.planRuleEquiList[0];
-          const equiLocation = this.getEquiLocation(item);
+            item.showName = item.name + '(' + item.code + ')'
+			item.disabled = bind
+          })
+          this.currentEquItemIndex = 0
+          const item = this.planRuleEquiList[0]
           this.$nextTick(() => {
-            this.$refs.equiListTree.setCurrentKey(item.id);
+            this.$refs.equiListTree.setCurrentKey(item.id)
             this.equipmentInfo = {
               equiCode: item.code,
               equiName: item.name,
               equiModel: item.category.modelType,
-              equiLocation: equiLocation
-            };
-            this.planRuleEquiList[0]['equiLocation'] = equiLocation;
-
+              equiLocation: item.position[0].pathName
+            }
             // 对比详情返回的数据和设备分类下面所有的设备列表,将sparePart同步过去
             if (this.addForm.deviceInfo) {
               for (let i = 0; i < this.planRuleEquiList.length; i++) {
@@ -589,10 +587,7 @@
                 }
               }
             }
-          });
-        } catch (error) {
-          this.planRuleEquiList = [];
-        }
+          })
       },
 
       // 获取审核人列表、巡点检人员
@@ -636,6 +631,7 @@
       async categoryEquipment(id) {
         const params = { categoryLevelId: id, pageNum: 1, size: -1 };
         const data = await getCategory(params);
+		// this.addForm.categoryId = '';
         this.equipmentList = data.list;
       },
 
@@ -651,34 +647,20 @@
         }
       },
 
-      // 封装 - 获取设备位置名称和code方法
-      getEquiLocation(data) {
-        // 设备位置名称
-        const path = data.position[0].path;
-        const arry = [];
-        path.map((item) => {
-          arry.push(item.name);
-        });
-        const equiLocation = arry.join('/');
-        return equiLocation;
-      },
       // 设备列表树点击
       handleNodeClick(data, node) {
-        const equiLocation = this.getEquiLocation(data);
         this.equipmentInfo = {
           equiCode: data.code,
           equiName: data.name,
           equiId: data.id,
           equiModel: data.category.modelType,
-          equiLocation: equiLocation
+          equiLocation: data.position[0].pathName
         };
         // 保存当前点击的设备列表某节点的index,在添加操作事项的时候,可以将事项list放到对应的节点对象中,以及切换节点的时候回显事项list
         this.currentEquItemIndex = this.planRuleEquiList.findIndex(
           (item) => item.code === data.code
         );
         this.clickedTreeNode = true;
-        this.planRuleEquiList[this.currentEquItemIndex]['equiLocation'] =
-          equiLocation;
       },
       // 获取规则名列表
       async _getRuleNameList() {

+ 3 - 1
src/enum/dict.js

@@ -19,5 +19,7 @@ export default {
   报修状态: 'report_repair_status',
   告警级别: 'warning_level',
   告警方式: 'warning_style',
-  告警触发条件: 'warning_conditions'
+  告警触发条件: 'warning_conditions',
+  计划性质: 'nature_plan',
+  巡点检工单状态: 'patrolwork_status'
 };

+ 3 - 2
src/views/maintenance/equipment/work/components/work-search.vue

@@ -12,7 +12,7 @@
           <el-input clearable v-model="where.code" placeholder="请输入" />
         </el-form-item>
 				<el-form-item label="保养人员:">
-					<el-input clearable v-model="where.name" placeholder="请输入" />
+					<personSelect v-model="where.userId" />
 				</el-form-item>
       </el-col>
       <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
@@ -63,8 +63,9 @@
 <script>
   import equipmentSelect from '@/components/CommomSelect/equipment-select.vue';
   import deptSelect from '@/components/CommomSelect/dept-select.vue';
+	import personSelect from '@/components/CommomSelect/person-select.vue';
   export default {
-		components: { equipmentSelect , deptSelect },
+		components: { equipmentSelect , deptSelect , personSelect },
     data() {
       // 默认表单数据
       const defaultWhere = {

+ 1 - 1
src/views/maintenance/patrol/work/components/work-search.vue

@@ -20,7 +20,7 @@
           <el-input clearable v-model="where.name" placeholder="请输入" />
         </el-form-item>
         <el-form-item label="状态:">
-          <DictSelection dictName="规则状态" clearable v-model="where.staus">
+          <DictSelection dictName="巡点检工单状态" clearable v-model="where.staus">
           </DictSelection>
         </el-form-item>
       </el-col>

+ 35 - 78
src/views/maintenance/repair/maintenancePlan/add.vue

@@ -21,75 +21,32 @@
           <el-form-item label="计划名称:" prop="planName">
             <el-input
               v-model.trim="addForm.planName"
-              size="small"
               placeholder="请输入"
             ></el-input>
           </el-form-item>
         </el-col>
         <el-col :span="6">
-          <el-form-item label="审批部门:" prop="verifyDeptCode"> <el-select
-              v-model="addForm.verifyDeptCode"
-              size="small"
-              popper-class="eloption"
-              :popper-append-to-body="true"
-            >
-              <el-option
-                v-for="item in exaUser"
-                :key="item.userId"
-                :label="item.trueName"
-                :value="item.trueName"
-                @click.native="addForm.verifyUserId = item.userId"
-              >
-              </el-option>
+          <el-form-item label="审批部门:" prop="verifyDeptCode">					
+				<deptSelect
+				  v-model="addForm.verifyDeptCode"
+				  @change="searchDeptNodeClick"
+				/>
             </el-select>
-            <!-- <el-input
-              v-model="addForm.verifyDeptCode"
-              v-show="false"
-            ></el-input>
-            <SelectTree
-              class="form-input"
-              ref="searchTree"
-              :options="deptList"
-              :value="addForm.verifyDeptCode"
-              :props="{
-                value: 'code',
-                label: 'name',
-                children: 'children'
-              }"
-              @getValue="verifyNodeClick"
-            /> -->
           </el-form-item>
         </el-col>
         <el-col :span="6">
-          <el-form-item label="审批人:" prop="verifyUserName">
-            <el-select
-              v-model="addForm.verifyUserName"
-              size="small"
-              popper-class="eloption"
-              :popper-append-to-body="true"
-            >
-              <el-option
-                v-for="item in exaUser"
-                :key="item.userId"
-                :label="item.trueName"
-                :value="item.trueName"
-                @click.native="addForm.verifyUserId = item.userId"
-              >
-              </el-option>
-            </el-select>
+          <el-form-item label="审批人:" prop="executorId">
+			 <personSelect
+			   ref="executorRef"
+			   v-model="addForm.executorId"
+			   :init="false"
+			 />
           </el-form-item>
         </el-col>
         <el-col :span="6">
           <el-form-item label="紧急程度:" prop="urgent">
-            <el-select
-              v-model="addForm.urgent"
-              size="small"
-              style="width: 100%"
-            >
-              <el-option label="普通" :value="1"></el-option>
-              <el-option label="紧急" :value="2"></el-option>
-              <el-option label="重要" :value="3"></el-option>
-            </el-select>
+			<DictSelection  dictName="紧急程度" clearable v-model="addForm.urgent">
+			</DictSelection>
           </el-form-item>
         </el-col>
         <el-col :span="24">
@@ -357,6 +314,10 @@
             </el-col>
             <el-col :span="8">
               <el-form-item label="执行部门:" prop="deptCode">
+				  <deptSelect
+				    v-model="addForm.deptCode"
+				    @change="deptNodeClick"
+				  />
                 <!-- <el-input v-model="infoData.deptCode" v-show="false"></el-input>
                 <SelectTree
                   class="form-input"
@@ -376,7 +337,6 @@
               <el-form-item label="执行人:" prop="workOrderExecutorId">
                 <el-select
                   v-model="infoData.workOrderExecutorId"
-                  size="small"
                   style="width: 100%"
                 >
                   <el-option
@@ -417,16 +377,13 @@
 </template>
 
 <script>
-// import repair from '@/api/maintenance/repair/repair'
-// import maintenancePlan from '@/api/maintenance/repair/maintenancePlan'
-// import { getRuleNo } from '@/utils'
-// import user from '@/api/main/user'
-// import dept from '@/api/main/dept'
-// import SelectTree from '@/components/selectTree'
-// import { imageView } from '@/utils'
-
+  import personSelect from '@/components/CommomSelect/person-select.vue';
+	import deptSelect from '@/components/CommomSelect/dept-select.vue';
 export default {
-  // components: { SelectTree },
+  components: {
+    personSelect,
+    deptSelect
+  },
   data () {
     return {
       uerList: [], // 审批人
@@ -477,14 +434,18 @@ export default {
     }
   },
   created () {
-    this._getDeptList()
-    this.getUserList()
-    // // 编辑
-    // if (this.$route.query.id) {
-    //   this._getPlanInfo()
-    // }
+
   },
   methods: {
+	//选择部门(搜索)
+	searchDeptNodeClick (info) {
+	  // 根据部门获取人员
+	  const params = { groupId: info };
+	  this.$nextTick(() => {
+		this.$refs.executorRef.getList(params);
+	  });
+	},
+		
     // 获取详情
     async _getPlanInfo () {
       const res = await maintenancePlan.planInfoDetailApi(this.$route.query.id)
@@ -653,15 +614,11 @@ export default {
     },
 
     // 选择部门(搜索)
-    searchDeptNodeClick (info) {
+    deptNodeClick (info) {
       if (info) {
-        this.infoData.deptCode = info.code
-        this.infoData.deptName = info.name
         // 根据部门获取人员
-        const params = { deptCode: info.code, status: 1 }
+        const params = { groupId: info }
         this.getUserList(params)
-      } else {
-        this.infoData.deptCode = ''
       }
     },
 

+ 3 - 2
src/views/maintenance/repair/maintenancePlan/components/maintenance-search.vue

@@ -31,7 +31,7 @@
       </el-col>
       <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
         <el-form-item label="报修人:">
-          <el-input clearable v-model="where.dep" placeholder="请输入" />
+          <personSelect v-model="where.userId" />
         </el-form-item>
       </el-col>
       <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
@@ -60,8 +60,9 @@
 </template>
 
 <script>
-  import { login } from '@/api/login';
+  import personSelect from '@/components/CommomSelect/person-select.vue';
   export default {
+	components: { personSelect },
     data() {
       // 默认表单数据
       const defaultWhere = {

+ 6 - 3
src/views/maintenance/repair/outsourcingOrder/components/order-search.vue

@@ -20,7 +20,7 @@
       </el-col>
       <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
         <el-form-item label="执行人:" label-width="60px">
-           <el-select
+<!--           <el-select
              v-model="where.approvalUserId"
              size="small"
              clearable
@@ -33,7 +33,8 @@
                :value="item.id"
                :label="item.name"
              ></el-option>
-           </el-select>
+           </el-select> -->
+					 <personSelect v-model="where.approvalUserId" />
         </el-form-item>
       </el-col>
       <el-col v-bind="styleResponsive ? { lg: 7, md: 12 } : { span: 7 }">
@@ -72,8 +73,10 @@
 </template>
 
 <script>
-   import {  getUserPage } from '@/api/system/organization';
+  import {  getUserPage } from '@/api/system/organization';
+  import personSelect from '@/components/CommomSelect/person-select.vue';
   export default {
+		components: { personSelect },
     data() {
       // 默认表单数据
       const defaultWhere = {

+ 4 - 2
src/views/maintenance/repair/repairNotes/components/notes-search.vue

@@ -24,7 +24,7 @@
       </el-col>
       <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
         <el-form-item label="报修人:">
-          <el-input clearable v-model="where.dep" placeholder="请输入" />
+          <personSelect v-model="where.userId" />
         </el-form-item>
       </el-col>
       <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
@@ -71,8 +71,10 @@
 </template>
 
 <script>
+  import personSelect from '@/components/CommomSelect/person-select.vue';
   export default {
-    data () {
+	components: { personSelect },  
+    data() {
       // 默认表单数据
       const defaultWhere = {
         name: '',

+ 1 - 1
src/views/maintenance/repair/repairNotes/index.vue

@@ -131,7 +131,7 @@
             minWidth: 110
           },
           {
-            prop: 'sourceType1',
+            prop: 'from',
             label: '来源',
             align: 'center',
             showOverflowTooltip: true,

+ 4 - 6
src/views/maintenance/repair/workOrder/components/workorder-search.vue

@@ -19,12 +19,8 @@
         </el-form-item>
       </el-col>
       <el-col v-bind="styleResponsive ? { lg: 5, md: 12 } : { span: 5 }">
-        <el-form-item label="执行人:">
-          <el-input
-            clearable
-            v-model="where.executeUserName"
-            placeholder="请输入"
-          />
+        <el-form-item label="执行人:" label-width="80px">
+          <personSelect v-model="where.userId" />
         </el-form-item>
       </el-col>
       <el-col v-bind="styleResponsive ? { lg: 9, md: 12 } : { span: 9 }">
@@ -64,7 +60,9 @@
 </template>
 
 <script>
+  import personSelect from '@/components/CommomSelect/person-select.vue';
   export default {
+    components: { personSelect },
     data () {
       // 默认表单数据
       const defaultWhere = {