소스 검색

Merge branch 'master' of http://116.63.33.55/git/nasctools

xyg 10 달 전
부모
커밋
e0fab616f0

+ 7 - 2
nasc-system/src/main/java/com/nasc/custom/service/impl/NascVncDesktopServiceImpl.java

@@ -1,6 +1,7 @@
 package com.nasc.custom.service.impl;
 
 import com.nasc.common.utils.SecurityUtils;
+import com.nasc.common.utils.StringUtils;
 import com.nasc.custom.domain.NascVncDesktop;
 import com.nasc.custom.mapper.NascVncDesktopMapper;
 import com.nasc.custom.service.INascVncDesktopService;
@@ -33,13 +34,17 @@ public class NascVncDesktopServiceImpl implements INascVncDesktopService {
 
     @Override
     public int insertVncDesktop(NascVncDesktop vncDesktop) {
-        vncDesktop.setPassword(SecurityUtils.encryptPassword(vncDesktop.getPassword()));
+        if (!StringUtils.isEmpty(vncDesktop.getPassword())) {
+            vncDesktop.setPassword(SecurityUtils.encryptPassword(vncDesktop.getPassword()));
+        }
         return vncDesktopMapper.insertVncDesktop(vncDesktop);
     }
 
     @Override
     public int updateVncDesktop(NascVncDesktop vncDesktop) {
-        vncDesktop.setPassword(SecurityUtils.encryptPassword(vncDesktop.getPassword()));
+        if (!StringUtils.isEmpty(vncDesktop.getPassword())) {
+            vncDesktop.setPassword(SecurityUtils.encryptPassword(vncDesktop.getPassword()));
+        }
         return vncDesktopMapper.updateVncDesktop(vncDesktop);
     }
 

+ 84 - 14
nasc-ui/src/views/matter/index/index.vue

@@ -11,25 +11,46 @@
             size="small"
             prefix-icon="el-icon-search"
           />
-          <el-button type="primary" size="small">查询</el-button>
+          <el-button type="primary" size="small" @click="handleSearchClick">查询</el-button>
         </div>
         <div class="head-container" style="overflow: auto; height: calc(100% - 50px);">
           <el-tree
-            :load="loadDeptNode"
-            :props="defaultProps"
-            :expand-on-click-node="false"
-            ref="tree"
-            node-key="id"
-            lazy
-            accordion
-            highlight-current
-            @node-click="handleNodeClick"
+              v-show="stepViewFlag"
+              :load="loadDeptNode"
+              :props="defaultProps"
+              :expand-on-click-node="false"
+              ref="tree"
+              node-key="id"
+              lazy
+              accordion
+              highlight-current
+              @node-click="handleNodeClick"
           >
             <template slot-scope="{ node, data }">
-              <span class="custom-tree-node" :class="{ 'is-dept': !data.isMatter, 'is-matter': data.isMatter }">
-                <i class="el-icon" :class="data.isMatter ? 'el-icon-tickets' : 'el-icon-office-building'"></i>
-                <span>{{ data.deptName ? data.deptName : data.itemName }}</span>
-              </span>
+            <span class="custom-tree-node" :class="{ 'is-dept': !data.isMatter, 'is-matter': data.isMatter }">
+              <i class="el-icon" :class="data.isMatter ? 'el-icon-tickets' : 'el-icon-office-building'"></i>
+              <span>{{ data.deptName ? data.deptName : data.itemName }}</span>
+            </span>
+            </template>
+          </el-tree>
+          <el-tree
+              v-show="!stepViewFlag"
+              :data="searchMatterList"
+              :props="defaultProps"
+              :expand-on-click-node="false"
+              ref="searchTree"
+              node-key="id"
+              :lazy="false"
+              accordion
+              default-expand-all
+              highlight-current
+              @node-click="handleNodeClick"
+          >
+            <template slot-scope="{ node, data }">
+            <span class="custom-tree-node" :class="{ 'is-dept': !data.isMatter, 'is-matter': data.isMatter }">
+              <i class="el-icon" :class="data.isMatter ? 'el-icon-tickets' : 'el-icon-office-building'"></i>
+              <span>{{ data.deptName ? data.deptName : data.itemName }}</span>
+            </span>
             </template>
           </el-tree>
         </div>
@@ -116,6 +137,8 @@ export default {
     return {
       // 审查事项名称
       matterName: undefined,
+      // 左侧显示类型:true 部门树 false 搜索树
+      stepViewFlag: true,
       // 是否前置问题部分
       preQuestionPart: false,
       // 是否材料部分
@@ -128,6 +151,8 @@ export default {
       currMatterPrintInfo: {},
       // 当前选中的审查事项问题选项情况
       currMaterial: {},
+      // 搜索事项数据
+      searchMatterList: [],
       defaultProps: {
         children: 'children',
         label: 'deptName',
@@ -241,6 +266,51 @@ export default {
         this.currMatterQuestion = questionData ? questionData : {}
       });
     },
+    /** 查询事项 **/
+    handleSearchClick() {
+      if (!this.matterName) {
+        this.stepViewFlag = true
+        return
+      }
+      listMatterAll({
+        itemName: this.matterName
+      }).then(response => {
+        const matterData = response.data
+        this.stepViewFlag = false
+        if (matterData.length == 0) {
+          this.searchMatterList = []
+          return
+        }
+        let deptTree = []
+        matterData.forEach(data => {
+          let newItem = {
+            id: data.dept.deptId,
+            deptName: data.dept.deptName,
+            children: []
+          }
+          let matterItem = data
+          matterItem.isMatter = true
+          matterItem.leaf = true
+          // 查找或创建部门项
+          let deptItem = this.findOrCreateDeptItem(deptTree, newItem)
+          // 检查部门项的子项中是否已存在该事项项
+          if (!deptItem.children.find(child => child.id === matterItem.id)) {
+            // 不存在则添加到子项中
+            deptItem.children.push(matterItem)
+          }
+        })
+        this.searchMatterList = deptTree
+      });
+    },
+    /** 数据判重 **/
+    findOrCreateDeptItem(deptTree, newItem) {
+      let deptItem = deptTree.find(item => item.id === newItem.id)
+      if (!deptItem) {
+        deptItem = newItem
+        deptTree.push(deptItem)
+      }
+      return deptItem
+    },
     /** 打印材料事件 **/
     handleMaterialPrint() {
       let printContent = document.getElementById('print_material').innerHTML;

+ 3 - 3
nasc-ui/src/views/matter/item/index.vue

@@ -72,7 +72,7 @@
           </el-table-column>
           <el-table-column label="操作" align="center" width="160" class-name="small-padding fixed-width">
             <template slot-scope="scope" v-if="scope.row.userId !== 1">
-              <el-button size="mini" type="text" icon="el-icon-s-promotion" @click="handleDeploy(scope.row)"
+              <el-button size="mini" type="text" icon="el-icon-set-up" @click="handleDeploy(scope.row)"
                 v-if="scope.row.prefixQuestion == 'Y'">问题配置</el-button>
               <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
                 v-hasPermi="['system:user:edit']">修改</el-button>
@@ -131,7 +131,7 @@
                 <el-radio v-model="formData.prefixQuestion" v-for="dict in dict.type.sys_yes_no" :key="dict.value"
                   :label="dict.value">{{ dict.label }}</el-radio>
               </el-radio-group>
-              <div style="color: red;" v-if="dictflag=='Y'">温馨提示:选择"是"请前往列表中问题配置处配置</div>
+              <div style="color: red;" v-if="dictflag=='Y'">提示:请在事项列表中"问题配置"按钮处配置相关问题</div>
             </el-form-item>
           </el-col>
         </el-row>
@@ -865,4 +865,4 @@
     height: 80%;
     overflow-y: scroll;
   }
-</style>
+</style>