Ver Fonte

Merge remote-tracking branch 'origin/V0.0.2' into V0.0.2

ouyang há 2 anos atrás
pai
commit
ed6ca0c087

+ 11 - 2
src/components/orgTree/index.vue

@@ -32,8 +32,10 @@
           <el-tooltip
             class="item"
             effect="light"
+            :visible-arrow="false"
+            :open-delay="500"
             :content="node.label"
-            placement="top-start">
+            placement="right-end">
             <span>{{ node.label }}</span>
           </el-tooltip>
         </span>
@@ -43,7 +45,7 @@
 </template>
 
 <script>
-
+import { mapGetters, mapMutations } from "vuex";
 export default {
   name: "orgTree",
   data() {
@@ -92,10 +94,17 @@ export default {
     defaultProps(val) {
       this.defaultProps = { ...val };
     },
+    orgTree(val)
+    {
+      this.getDeptTree();
+    },
   },
   created() {
     this.getDeptTree();
   },
+  computed:{
+    ...mapGetters(["orgTree"]),
+  },
   methods: {
     /** 下穿状态改变*/
     changeCheckBox(state) {

+ 63 - 32
src/views/check/dialog.edit.vue

@@ -67,6 +67,7 @@
             <el-col :span="6">
               <el-form-item prop="execOrgType" label="检查机构类型:">
                 <el-select
+                  @change="cleanExecOrgList"
                   prop="execOrgType"
                   label="检查机构类型"
                   v-model="formData.execOrgType"
@@ -109,12 +110,12 @@
             <el-col :span="6">
               <el-form-item prop="checkOrgType" label="受检机构类型:">
                 <el-select
+                  @change="cleanCheckOrgList"
                   prop="checkOrgType"
                   label="受检机构类型"
                   v-model="formData.checkOrgType"
                   placeholder="请选择受检机构类型"
                   clearable
-                  
                 >
                   <el-option
                     v-for="item in dict.type.sys_org_type"
@@ -169,22 +170,27 @@
               </el-form-item>
             </el-col>
             <el-col :span="6">
-              <el-form-item :span="6" prop="execOrg" label="检查机构">
-                <orgDropDown
-                  v-model="formData.execOrg"
-                  placeholder="选择检查机构"
-                  multiple
-                  @select="onexecOrgSelect"
-                />
+              <el-form-item :span="6" prop="execOrgIds" label="检查机构">
+                <org-tree-select
+                  v-model="formData.execOrgList"
+                  :queryData="parseInt(formData.execOrgType)"
+                  ref="execorgTreeSelect"
+                  :enabledCheckOrgTypes="parseInt(formData.execOrgType)"
+                  :disable="true"
+                >
+                </org-tree-select>
               </el-form-item>
             </el-col>
             <el-col :span="6">
-              <el-form-item :span="6" prop="checkOrg" label="受检机构">
-                <orgDropDown
-                  v-model="formData.checkOrg"
-                  placeholder="选择受检机构"
-                  @select="oncheckOrgSelect"
-                />
+              <el-form-item :span="6" prop="checkOrgIds" label="受检机构">
+                <org-tree-select
+                  v-model="formData.checkOrgList"
+                  :queryData="parseInt(formData.checkOrgType)"
+                  ref="checkorgTreeSelect"
+                  :enabledCheckOrgTypes="parseInt(formData.checkOrgType)"
+                  :disable="true"
+                >
+                </org-tree-select>
               </el-form-item>
             </el-col>
           </el-row>
@@ -248,6 +254,7 @@
 </template>
 
 <script>
+import OrgTreeSelect from "@/components/orgTreeSelect";
 import { mapGetters } from "vuex";
 import orgDropDown from "@/components/orgTree/orgDropDown.vue";
 import OrgTree from "@/components/orgTree";
@@ -314,6 +321,7 @@ export default {
       ],
       row: "",
       tableData: [],
+      deptOptions: [],
       id: null,
       isShow: false,
       formData: this.reset(),
@@ -343,16 +351,34 @@ export default {
     ...mapGetters(["orgId", "orgName"]),
   },
   methods: {
+    cleanExecOrgList() {
+      this.execOrgIds = null;
+      this.formData.execOrgList = [];
+    },
+    cleanCheckOrgList() {
+      this.checkOrgIds = null;
+      this.formData.checkOrgList = [];
+    },
+    tenantIdnormalizer(node, instanceId) {
+      if (node.children && !node.children.length) {
+        delete node.children;
+      }
+      return {
+        id: node.id,
+        label: node.name,
+        children: node.children,
+      };
+    },
     handleCheckboxChange() {
       this.formData.buildTaskNow = !this.formData.buildTaskNow;
     },
     onexecOrgSelect(node) {
       this.formData.execOrgIds = node.val;
-      console.log(node, "onexecOrgSelect");
+      // console.log(node, "onexecOrgSelect");
     },
     oncheckOrgSelect(node) {
       this.formData.checkOrg = node.id;
-      console.log(node, "oncheckOrgSelect");
+      // console.log(node, "oncheckOrgSelect");
     },
     reset() {
       return {
@@ -376,12 +402,12 @@ export default {
         execOrg: null,
         checkOrg: null,
         buildTaskNow: false,
-        checkOrgList:null,
-        execOrgList:null,
-        rulePointList:null,
-        checkOrgIds:null,
-        execOrgIds:null,
-        rulePointIds:null,
+        checkOrgList: [],
+        execOrgList: [],
+        rulePointList: null,
+        checkOrgIds: null,
+        execOrgIds: null,
+        rulePointIds: null,
       };
     },
     getRolesByOrg() {
@@ -401,7 +427,13 @@ export default {
     async refresh(id, other) {
       this.formData = id ? (await api.get(id)).data : this.reset(other);
       if (this.formData.execOrgType) {
-        this.formData.roleIds=this.formData.roleList.map(role => role.id);
+        this.formData.roleIds = this.formData.roleList.map((role) => role.id);
+        this.formData.execOrgIds = this.formData.execOrgList.map(
+          (org) => org.id
+        );
+        this.formData.checkOrgIds = this.formData.checkOrgList.map(
+          (org) => org.id
+        );
         this.getRolesByOrg();
       }
     },
@@ -436,7 +468,7 @@ export default {
       if (id !== undefined) {
         await api.get(id).then((res) => {
           // console.log(res);
-          this.tableData = res.data.itemList;
+          this.tableData = res.data.rulePointList;
         });
       }
       this.getRolesByOrg();
@@ -465,21 +497,20 @@ export default {
     },
     onSubmit() {
       this.$refs.form.validate(async (isValidate) => {
-        // this.formData.note = this.formData.description;
         this.formData.planCreateOrgId = this.orgId;
         this.formData.planCreateOrgName = this.orgName;
         if (!isValidate) return;
-        this.formData.itemList = this.tableData == null ? [] : this.tableData;
+        this.formData.rulePointList = this.tableData == null ? [] : this.tableData;
         this.formData.roleList = null;
         // console.log(this.selectedValues,"selectedValues");
         this.formData.roleIds =
           this.selectedValues.length == 0 ? null : this.selectedValues;
         this.formData.buildTaskNow = this.formData.buildTaskNow ? 1 : 0;
-        if (this.id == undefined) {
-          await api.add(this.formData);
-        } else {
-          await api.update(this.formData);
-        }
+        // if (this.id == undefined) {
+        await api.add(this.formData);
+        // } else {
+        // await api.update(this.formData);
+        // }
 
         this.$emit("success");
         this.onHide();
@@ -492,7 +523,7 @@ export default {
     //apimark//
   },
   mounted() {},
-  components: { DialogSelect, orgDropDown,OrgTree,korgTree },
+  components: { DialogSelect, orgDropDown, OrgTree, korgTree, OrgTreeSelect },
 };
 </script>
 

+ 7 - 3
src/views/check/index.vue

@@ -218,13 +218,13 @@
           </el-table-column>
 
           <el-table-column
-            prop="roleList"
+            prop="roleNames"
             label="检查角色"
             v-if="columns[6].visible"
           >
           <template slot-scope="scope">
-              <template v-for="item in scope.row.roleList">
-                {{ item.roleName }}
+              <template v-for="item in splitRoleNames(scope.row.roleNames)">
+                {{ item }}
                 <br />
               </template>
             </template></el-table-column>
@@ -411,6 +411,10 @@ export default {
       }
       return false;
     },
+    splitRoleNames(val) {
+      // 使用逗号分割字符串,得到角色名称的数组
+      return val.split(',');
+    },
     sel(selectList){
       this.loading = true;
       api.distribute(selectList).then((response) => {

+ 1 - 1
src/views/core/drill/drillDictionary/index.vue

@@ -115,7 +115,7 @@
             ></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="演练项目" prop="drillProjects">
+        <el-form-item label="解决方案" prop="drillProjects">
           <el-input v-model="form.drillProjects" type="textarea" placeholder="请输入内容"/>
         </el-form-item>
         <el-form-item label="预设案由" prop="defaultCause">

+ 2 - 2
src/views/core/drill/task/dialog.info.vue

@@ -21,8 +21,8 @@
             </el-col>
 
             <el-col :span="12">
-              <el-form-item label="演练项目">{{
-                  formData.typeName
+              <el-form-item label="演练类型">{{
+                  formData.typeText
                 }}
               </el-form-item>
             </el-col>

+ 32 - 15
src/views/core/drill/task/index.vue

@@ -9,14 +9,18 @@
         <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch"
                  label-width="100px">
 
-          <el-form-item label="演练主题" prop="title">
-            <el-input
-              v-model="queryParams.title"
-              placeholder="请输入演练主题"
-              clearable
-              @keyup.enter.native="handleQuery"
-            />
+
+          <el-form-item label="演练类型" prop="type">
+            <el-select v-model="queryParams.type" placeholder="请选择演练类型" clearable>
+              <el-option
+                v-for="dict in dict.type.core_drill_type"
+                :key="dict.value"
+                :label="dict.label"
+                :value="dict.value"
+              />
+            </el-select>
           </el-form-item>
+
           <el-form-item label="任务时间" prop="rangen">
             <el-date-picker
               v-model="queryParams.range"
@@ -45,7 +49,11 @@
               </template>
             </template>
           </el-table-column>
-          <el-table-column label="演练主题" align="center" prop="title"/>
+          <el-table-column label="演练类型" align="center" prop="type">
+            <template slot-scope="scope">
+              <dict-tag :options="dict.type.core_drill_type" :value="scope.row.type"/>
+            </template>
+          </el-table-column>
 
           <el-table-column label="开始日期" align="center" prop="startDate" width="180">
           </el-table-column>
@@ -69,8 +77,15 @@
                 icon="el-icon-view"
                 @click="handleDetail(scope.row.id)"
                 v-hasPermi="['system:eduTask:detail']"
-              >详情
-              </el-button>
+              >详情</el-button>
+              <el-button
+                size="mini"
+                type="text"
+                icon="el-icon-document-add"
+                v-if="canPerform(scope.row)"
+                @click="handleRecorded(scope.row.id)"
+                v-hasPermi="['system:eduTask:edit']"
+              >评价</el-button>
               <el-button
                 size="mini"
                 type="text"
@@ -78,11 +93,9 @@
                 v-if="canPerform(scope.row)"
                 @click="handleRecorded(scope.row.id)"
                 v-hasPermi="['system:eduTask:remove']"
-              >演练登记
-              </el-button>
+              >演练登记</el-button>
               <el-button type="text" v-if="scope.row.pdfUrl" @click="onDown(scope.row.pdfUrl)"
-              >演练登记簿
-              </el-button>
+              >演练登记簿</el-button>
             </template>
           </el-table-column>
         </el-table>
@@ -110,7 +123,7 @@ import dayjs from "dayjs";
 
 export default {
   name: "EduTask",
-  dicts: ['edu_task_status', 'edu_type'],
+  dicts: ['edu_task_status', 'edu_type','core_drill_type'],
   components: {
     DialogInfo,
     DialogPerform,
@@ -256,6 +269,10 @@ export default {
         ...this.queryParams
       }, `eduTask_${new Date().getTime()}.xlsx`)
     },
+    canEvaluate(row){
+      //仅行社安全保卫管理人员进入且演练任务处于待评价状态才显示
+      return row.planStatus==2 && this.$store.getters.roleList.some(item=>item.roleId==120);
+    },
     canPerform(row) {
       return true;
      /* let flag = 0;

+ 8 - 8
src/views/core/edu/task/dialog.info.vue

@@ -225,17 +225,17 @@ export default {
                 let link = document.createElement("a");
                 let body = document.querySelector("body");
 
-                link.href = URL.createObjectURL(blob);
-                link.download = filename;
+                 link.href = URL.createObjectURL(blob);
+                 link.download = filename;
 
-                // fix Firefox
-                link.style.display = "none";
-                body.appendChild(link);
+                 // fix Firefox
+                 link.style.display = "none";
+                 body.appendChild(link);
 
-                link.click();
-                body.removeChild(link);
+                 link.click();
+                 body.removeChild(link);
 
-               window.URL.revokeObjectURL(link.href);
+                window.URL.revokeObjectURL(link.href);
            }
         },
         // 事件

+ 2 - 2
src/views/safetycheck/ruleManager/dialog.editItem.vue

@@ -57,10 +57,10 @@
         </div>
       </div>
 
-      <span slot="footer" class="dialog-footer">
+      <div slot="footer" class="dialog-footer">
         <el-button @click="dialogVisible = false">取 消</el-button>
         <el-button type="primary" @click="onSubmit()">保 存</el-button>
-      </span>
+      </div>
     </el-dialog>
     <EditPoint
       ref="editDialog"

+ 2 - 2
src/views/safetycheck/ruleManager/dialog.editPoint.vue

@@ -76,12 +76,12 @@
           </el-form-item>
         </el-form>
       </div>
-      <span slot="footer" class="dialog-footer">
+      <div slot="footer" class="dialog-footer">
         <el-button @click="dataVisible = false">取 消</el-button>
         <el-button type="primary" @click="onSubmit()">{{
           index >= 0 ? "保 存" : "添 加"
         }}</el-button>
-      </span>
+      </div>
     </el-dialog>
   </div>
 </template>

+ 30 - 12
src/views/system/dept/index.vue

@@ -1,9 +1,9 @@
 <template>
   <div class="app-container">
-    <el-row :gutter="20">
+    <!-- <el-row :gutter="20"> -->
       <!--机构数据-->
-      <el-col :span="4" :xs="24">
-        <div class="head-container">
+      <!-- <el-col :span="4" :xs="24"> -->
+        <!-- <div class="head-container">
           <el-input
             v-model="deptName"
             placeholder="请输入机构名称"
@@ -12,9 +12,9 @@
             prefix-icon="el-icon-search"
             style="margin-bottom: 20px"
           />
-        </div>
-        <div class="tree-container">
-          <div style="margin-bottom: 10px">
+        </div> -->
+        
+          <!-- <div style="margin-bottom: 10px">
             <el-checkbox v-model="queryParams.checkSub" @change="changeCheckBox"
               >关联下级</el-checkbox
             >
@@ -29,12 +29,23 @@
             :default-expanded-keys="defaultKeys"
             :default-checked-keys="defaultKeys"
             @node-click="handleNodeClick"
-          />
-        </div>
-      </el-col>
+          /> -->
+          <!-- <div class="tree-container"> -->
+            <layoutCom>
+          <org-tree
+        slot="leftBar"
+        v-model="queryParams.orgId"
+        @defaultKey="defaultKeys"
+        @checkChange="checkChange"
+        @click="handleNodeClick"
+      ></org-tree>
+        <!-- </div> -->
+      <!-- </el-col> -->
       <!--用户数据-->
-      <el-col :span="20" :xs="24">
+      <!-- <el-col :span="20" :xs="24"> -->
         <!--    搜索条件    -->
+        <el-row slot="rightBar">
+          <el-col>
         <el-form
           :model="queryParams"
           ref="queryForm"
@@ -248,7 +259,8 @@
           @pagination="getList"
         />
       </el-col>
-    </el-row>
+      </el-row>
+      </layoutCom>
 
     <!-- 添加或修改机构对话框 -->
     <DialogCom
@@ -400,10 +412,11 @@ import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 import DialogEdit from "@/views/system/dept/dialog.edit.vue";
 import {findAreaList} from "@/api/core/weather";
+import OrgTree from "@/components/orgTree";
 export default {
   name: "Dept",
   dicts: ["sys_normal_disable", "sys_org_type"],
-  components: { Treeselect, DialogEdit },
+  components: { Treeselect, DialogEdit,OrgTree },
   data() {
     return {
       // 遮罩层
@@ -557,6 +570,11 @@ export default {
       this.queryParams.parentId = data.id;
       this.handleQuery();
     },
+    //单选框状态改变
+    checkChange(state) {
+      this.queryParams.checkSub = state;
+      this.handleQuery();
+    },
     /** 查询机构列表 */
     getList() {
       this.loading = true;