Переглянути джерело

Merge branch 'V0.0.2' of http://10.87.10.227:4000/jzyd_yyds/soc_web into V0.0.2

zhulu 2 роки тому
батько
коміт
cdbdbf4477

+ 2 - 2
.env.development

@@ -10,12 +10,12 @@ ENV = 'development'
 #罗俊
 # VUE_APP_BASE_API = 'http://10.87.10.49:8080'
 #罗伟
-# VUE_APP_BASE_API = 'http://10.87.10.47:8080'
+VUE_APP_BASE_API = 'http://10.87.10.47:8080'
 #高雄
 #VUE_APP_BASE_API = 'http://10.87.11.94:8080'
 # VUE_APP_BASE_API = 'http://localhost:8080'
 # 55环境
-VUE_APP_BASE_API = 'http://10.87.10.55:8080'
+# VUE_APP_BASE_API = 'http://10.87.10.55:8080'
 
 # 路由懒加载
 VUE_CLI_BABEL_TRANSPILE_MODULES = true

+ 10 - 0
src/api/core/reportForms/monitorAccessReport.js

@@ -0,0 +1,10 @@
+import request from '@/utils/request'
+
+// 查询列表监控调阅计划
+export function listReport(query) {
+  return request({
+    url: '/core/monitorAccessReport/list',
+    method: 'get',
+    params: query
+  })
+}

+ 1 - 1
src/api/core/reportForms/safetyInspectReport.js

@@ -9,7 +9,7 @@ export function listReport(query) {
   })
 }
 
-// 下发
+
 export function selectAllOrg() {
     return request({
       url: '/core/safetyInspectReport/selectAllOrg',

+ 5 - 30
src/api/scorestatistics/scorestatistics.js

@@ -1,42 +1,17 @@
 import request from "@/utils/request";
-//综合计算得分
+//对押运公司月度评价报表
 // 查询列表分页
 export function list(query) {
   return request({
-    url: "/core/safeMonthScore/list",
+    url: "/core/task/statistics",
     method: "get",
     params: query,
   });
 }
-// 评分重新计算
-export function  anewDetail(data) {
+//获取所有计划
+export function getPlanList() {
   return request({
-    url: "/core/safetyExceptionData/reCalculate",
-    method: "post",
-    data
-  });
-}
-// 详情
-export function detail(data) {
-  return request({
-    url: "/core/safeMonthScore/detail",
-    method: "post",
-    data,
-  });
-}
-// 编辑规则配置
-export function editTargetEvaluate(data) {
-  return request({
-    url: "/core/safetyIndexRule",
-    method: "put",
-    data,
-  });
-}
-// 获取详情
-export function getEvaluateById(id) {
-  return request({
-    url: `/core/safetyIndexRule/${id}`,
+    url: "/core/evaluatePlan/allList",
     method: "get",
   });
 }
-

+ 274 - 0
src/views/core/drill/task/dialog.evaluate.vue

@@ -0,0 +1,274 @@
+<template>
+  <div class="edu-training-edit">
+    <DialogCom title="演练任务评价" :visible.sync="isShow" width="960px">
+      <div class="page-body">
+        <el-form :model="formData" size="small" ref="form" label-position="right" label-width="120px"
+                 label-suffix=":">
+          <el-row>
+            <el-col :span="12">
+              <el-form-item prop="type" label="任务名称">{{
+                  formData.title
+                }}
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item prop="type" label="任务进度">{{
+                  getLabel(dict.type.drill_task_status, formData.status,"未知")
+                }}
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="任务时间">{{
+                  formData.startDate +" ~ " + formData.endDate
+                }}
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="演练机构">{{
+                  formData.orgName
+                }}
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="指挥人">{{
+                  formData.hostName
+                }}
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="记录人">{{
+                  formData.recorderName
+                }}
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="演练项目">{{
+                  formData.typeText
+                }}
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item label="演练地点">{{
+                  formData.drillSite
+                }}
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item prop="drillStartTime" label="演练开始时间">
+                {{ formData.drillStartTime }}
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item prop="drillEndTime" label="演练结束时间">
+                {{ formData.drillEndTime }}
+              </el-form-item>
+            </el-col>
+
+            <el-col :span="24">
+              <el-form-item prop="hostId" label="预设案由">{{
+                  formData.presetCase
+                }}
+              </el-form-item>
+            </el-col>
+            <el-col :span="24">
+              <el-form-item prop="hostId" label="演练情况">{{
+                  formData.drillSituation
+                }}
+              </el-form-item>
+            </el-col>
+
+            <!-- 参与人数 -->
+            <el-col :span="12">
+              <el-form-item prop="dueCount" label="参与人员">{{
+                  formData.taskUserList ? formData.taskUserList.filter((x) => x.type === 1)
+                    .map((v) => v.userName).join(",") : ""
+                }}
+              </el-form-item>
+            </el-col>
+            <el-col :span="12">
+              <el-form-item prop="dueCount" label="缺席人员">{{
+                  formData.taskUserList ? formData.taskUserList.filter((x) => x.type === 2)
+                    .map((v) => v.userName).join(",") : ""
+                }}
+              </el-form-item>
+            </el-col>
+            <!-- 图片 -->
+            <el-col :span="12">
+              <el-form-item prop="imageList" label="演练图片">
+                <ImageListPreview v-model="formData.imageList"></ImageListPreview>
+              </el-form-item>
+            </el-col>
+            <!-- 图片 -->
+            <el-col :span="12">
+              <el-form-item prop="imageList" label="参与人员签名图片">
+                <ImageListPreview v-model="formData.signImageList"></ImageListPreview>
+              </el-form-item>
+            </el-col>
+
+            <el-col :span="24">
+            <el-form-item label="资料文件" prop="fileList">
+              <K-file-upload ref="upload" :isShowUploadBtn="false"
+                             :defaultValue="formFileListDefualtValue"
+                             v-model="formData.fileList"/>
+            </el-form-item>
+            </el-col>
+
+
+            <el-col :span="24">
+              <el-form-item  prop="commentScore" label="评分">
+                <el-rate
+                  :max="10"
+                  v-model="formData.commentScore"
+                >
+                </el-rate>
+              </el-form-item>
+            </el-col>
+
+            <el-col :span="24">
+              <el-form-item  prop="comment" label="评语">
+                <k-textarea style="width: 100%;" v-model="formData.comment" placeholder="请输入评语" :length="200"/>
+              </el-form-item>
+            </el-col>
+
+          </el-row>
+        </el-form>
+      </div>
+
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="onHide">关闭</el-button>
+        <el-button type="primary" @click="onEvaluate">评价</el-button>
+      </div>
+    </DialogCom>
+  </div>
+</template>
+
+<script>
+import {mapState, mapMutations} from "vuex";
+import KTextarea from "@/components/common/textarea.vue";
+import {evaluateDrillTask, getDrillTask} from "@/api/core/drill/drillTask";
+import {initList} from "@/api/core/drill/drillDictionary";
+import KFileUpload from "@/components/K-FileUpload/index.vue";
+import { getLabel } from "@/views/commonOption";
+export default {
+  components: {KFileUpload,KTextarea},
+  dicts: ['drill_task_status', 'core_drill_type'],
+  data() {
+    const params = this.$route.params;
+    return {
+      id: params ? params.id : null,
+      isShow: false,
+      formData: this.reset(),
+      drillTypeOptions: [],
+      formFileListDefualtValue: [],
+      iconClasses: ['icon-rate-face-1', 'icon-rate-face-2', 'icon-rate-face-3'] // 等同于 { 2: 'icon-rate-face-1', 4: { value: 'icon-rate-face-2', excluded: true }, 5: 'icon-rate-face-3' }
+    };
+  },
+  props: {},
+  watch: {},
+  computed: {
+    ...mapState(["loginUser"]),
+  },
+  methods: {
+    ...mapMutations([]),
+    getLabel,
+    reset(other = {}) {
+      return {
+        id: null,
+        type: null,
+        host: null,
+        drillSite: null,
+        drillTime: null,
+        hostName: null,
+        presetCase: null,
+        drillSituation: null,
+        imageList: null,
+        signImageList: null,
+        commentScore: 5,
+
+        org: {},
+        ...other,
+      };
+    },
+    async onEvaluate() {
+      console.log("onEvaluate", this.formData)
+      if (!this.formData.commentScore) {
+        this.$message.error("请选择评分!");
+      }
+      if (!this.formData.comment) {
+        this.$message.error("请输入评语!");
+      }
+      let { commentScore,comment,id} = { ...this.formData};
+      let json={};
+      json.score = commentScore;
+      json.comment = comment;
+      json.taskId = id;
+
+      evaluateDrillTask(json).then((v) => {
+        this.$emit("success", this.formData);
+        this.onHide();
+        this.$modal.msgSuccess("演练登记评价成功");
+
+      });
+      this.getList();
+    },
+    async refresh(id, other) {
+      if (!id) {
+        this.reset(other);
+      } else {
+        getDrillTask(id).then(response => {
+          this.formData = response.data;
+          this.formFileListDefualtValue=response.data.fileList;
+          this.formData.signImageList = this.getSingImageList();
+          this.loading = false;
+        })
+      }
+    },
+    async show(id, other = {}) {
+      this.id = id;
+      await this.refresh(id, other);
+      this.isShow = true;
+    },
+    // 事件
+    onHide() {
+      this.isShow = false;
+    },
+    onDownload(url, filename) {
+      let this_ = this;
+      this.getBlob(url, function (blob) {
+        this_.saveAs(blob, filename);
+      });
+    },
+    getSingImageList() {
+      let res = this.formData.taskUserList ? this.formData.taskUserList.filter((x) => x.type === 1 && x.sign == 1)
+        .map((v) => v.signImage).join(",") : null;
+      console.log("getSingImage", res)
+      return res;
+    },
+    getBlob(url, cb) {
+      var xhr = new XMLHttpRequest();
+      xhr.open("GET", url, true);
+      xhr.responseType = "blob";
+      xhr.onload = function () {
+        if (xhr.status === 200) {
+          cb(xhr.response);
+        }
+      };
+      xhr.send();
+    },
+    initDrillTypeOptions() {
+      initList().then(response => {
+        this.drillTypeOptions = response;
+      })
+    }
+    // 事件
+    //apimark//
+  },
+  mounted() {
+  },
+};
+</script>
+
+<!-- <style lang="less">
+.edu-training-edit {
+}
+</style> -->

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

@@ -30,7 +30,7 @@
                 <el-input style="width: 100%;" v-model="formData.drillSite" placeholder="请输入演练地点" :length="50"/>
               </el-form-item>
             </el-col>
-         
+
             <el-col :span="12">
               <el-form-item prop="drillStartTime" label="演练开始时间">
                 <el-date-picker style="width: 100%;" required v-model="formData.drillStartTime"
@@ -48,7 +48,7 @@
               </el-form-item>
             </el-col>
 
-         
+
 
             <el-col :span="24">
 
@@ -94,23 +94,7 @@
                                v-model="formData.fileList"/>
               </el-form-item>
             </el-col>
-           
-
-            <el-col :span="24">
-              <el-form-item v-if="formData.status==2" prop="commentScore" label="评分">
-                <el-rate
-                  :max="10"
-                  v-model="formData.commentScore"
-                >
-                </el-rate>
-              </el-form-item>
-            </el-col>
 
-            <el-col :span="24">
-              <el-form-item v-if="formData.status==2" prop="comment" label="评语">
-                <k-textarea v-model="formData.comment" placeholder="请输入评语" :length="200"/>
-              </el-form-item>
-            </el-col>
           </el-row>
         </el-form>
       </div>
@@ -119,7 +103,6 @@
         <el-button @click="onHide">取消</el-button>
         <el-button v-if="formData.status!=2" type="primary" @click="onSave">暂存</el-button>
         <el-button v-if="formData.status!=2" type="primary" @click="onSubmit">提交</el-button>
-        <el-button v-if="formData.status==2" type="primary" @click="onEvaluate">评价</el-button>
       </div>
     </DialogCom>
     <dialog-drill-dictionary-select
@@ -354,27 +337,7 @@ export default {
         });
       }
     },
-    async onEvaluate() {
-      console.log("onEvaluate", this.formData)
-      if (!this.formData.commentScore) {
-        this.$message.error("请选择评分!");
-      }
-      if (!this.formData.comment) {
-        this.$message.error("请输入评语!");
-      }
-      let { commentScore,comment,id} = { ...this.formData};
-      let json={};
-      json.score = commentScore;
-      json.comment = comment;
-      json.taskId = id;
-
-      evaluateDrillTask(json).then((v) => {
-        this.$emit("success", this.formData);
-        this.onHide();
-        this.$modal.msgSuccess("演练登记评价成功");
-      });
 
-    },
     validatePerson() {
       for (let i = 0; i < this.formData.absenceList.length; i++) {
         let absence = this.formData.absenceList[i];

+ 11 - 4
src/views/core/drill/task/index.vue

@@ -100,7 +100,7 @@
                               </el-table-column>
                               <el-table-column label="指挥人" align="center" prop="hostName"/>
                               <el-table-column label="演练地点" align="center" prop="drillSite"/>-->
-          
+
           <!-- <el-table-column label="演练时间" align="center" width="300">
             <template slot-scope="scope">
               {{scope.row.drillStartTime? dayjs(scope.row.drillStartTime).format("YYYY-MM-DD HH:MM") +" ~ "+dayjs(scope.row.drillEndTime).format("YYYY-MM-DD HH:MM"):''}}
@@ -129,7 +129,7 @@
                               type="text"
                               icon="el-icon-document-add"
                               v-if="canEvaluate(scope.row)"
-                              @click="handleRecorded(scope.row.id)"
+                              @click="handleEvaluate(scope.row.id)"
                               v-hasPermi="['core:drillTask:evaluate']"
                             >评价</el-button>
               <el-button
@@ -160,6 +160,7 @@
     <dialog-info ref="infoDialog" @success="handleQuery(true)"></dialog-info>
     <dialog-perform ref="performDialog" @success="handleQuery(true)"></dialog-perform>
     <dialog-new-task ref="newTaskDialog"></dialog-new-task>
+    <dialog-evaluate ref="evaluateDialog"></dialog-evaluate>
   </div>
 </template>
 
@@ -169,6 +170,7 @@ import OrgTree from "@/components/orgTree";
 import DialogInfo from "./dialog.info";
 import DialogPerform from "./dialog.perform";
 import DialogNewTask from "./dialog.newtask";
+import DialogEvaluate from "./dialog.evaluate";
 import dayjs from "dayjs";
 
 export default {
@@ -178,6 +180,7 @@ export default {
     DialogInfo,
     DialogPerform,
     DialogNewTask,
+    DialogEvaluate,
     OrgTree,
     dayjs
   },
@@ -322,12 +325,16 @@ export default {
     handleRecorded(id) {
       this.$refs["performDialog"].show(id, {});
     },
+    /** 评价按钮操作 */
+    handleEvaluate(id) {
+      this.$refs["evaluateDialog"].show(id, {});
+    },
     /** 导出按钮操作 */
-    handleExport() {
+    /*handleExport() {
       this.download('system/eduTask/export', {
         ...this.queryParams
       }, `eduTask_${new Date().getTime()}.xlsx`)
-    },
+    },*/
     canEvaluate(row) {
       //仅行社安全保卫管理人员进入且演练任务处于待评价状态才显示
       return row.status == 2 && this.$store.getters.roleList.some(item => item.roleId == 120) && this.isNotOverOrUnStart(row);

+ 27 - 28
src/views/core/edu/plan/index.vue

@@ -44,15 +44,14 @@
           <el-form-item>
             <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
             <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+            <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd"
+                       v-hasPermi="['core:plan:add']">新增任务
+            </el-button>
           </el-form-item>
         </el-form>
 
         <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
-            <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd"
-                       v-hasPermi="['core:plan:add']">新增任务
-            </el-button>
-          </el-col>
+
           <!--   <el-col :span="1.5">
                <el-button type="success" plain icon="el-icon-edit-outline" size="mini" :disabled="single" @click="handleUpdate"
                           v-hasPermi="['core:plan:edit']">修改
@@ -119,7 +118,7 @@
           </el-table-column>
 
           <el-table-column label="备注" align="center" prop="remark"/>
-          <el-table-column label="操作" width="160" fixed="right" align="center" class-name="small-padding fixed-width">
+          <el-table-column label="操作" width="220" fixed="right" align="center" class-name="small-padding fixed-width">
             <template slot-scope="scope">
               <el-button v-if="checkCanPublish(scope.row)" size="mini" type="text" icon="el-icon-down"
                          @click="handlePublish(scope.row)" v-hasPermi="['core:plan:edit']">下发
@@ -162,22 +161,15 @@
               </el-select>
             </el-form-item>
           </el-col>
-
-
-          <el-col :span="12" v-show="form.planCycle != 0">
-            <el-form-item label="立即生效" prop="buildTaskNow">
-              <el-checkbox v-model="form.buildTaskNow">
-                默认从下个周期生成任务,
-                <br/>
-                勾选后从当前周期立即生成任务
-                <!--                <el-popover placement="top-start" title="" width="200" trigger="hover"
-                                            content="默认从下个周期生成任务,勾选后从当前周期立即生成任务">
-                                  <i class="el-icon-warning-outline change-icon" slot="reference"></i>
-                                </el-popover>-->
-              </el-checkbox>
+          <el-col :span="12">
+            <el-form-item label="任务次数" prop="execTimes">
+              <template>
+                <el-input-number style="width: 100%" v-model="form.execTimes" :min="1" :max="10"></el-input-number>
+              </template>
             </el-form-item>
-
           </el-col>
+
+
           <!--     <el-col :span="12">
                  <el-form-item label="培训角色" prop="planRoleId">
                    <el-select style="width: 100%"  v-model="form.planRoleId" placeholder="请选择" multiple>
@@ -206,6 +198,20 @@
         </el-row>
 
         <el-row>
+          <el-col :span="12" v-show="form.planCycle != 0">
+            <el-form-item label="立即生效" prop="buildTaskNow">
+              <el-checkbox v-model="form.buildTaskNow">
+                默认从下个周期生成任务,
+                <br/>
+                勾选后从当前周期立即生成任务
+                <!--                <el-popover placement="top-start" title="" width="200" trigger="hover"
+                                            content="默认从下个周期生成任务,勾选后从当前周期立即生成任务">
+                                  <i class="el-icon-warning-outline change-icon" slot="reference"></i>
+                                </el-popover>-->
+              </el-checkbox>
+            </el-form-item>
+
+          </el-col>
           <el-col :span="12">
             <el-form-item label="受训机构类型" prop="execOrgType">
               <el-select style="width: 100%" v-model="form.execOrgType" placeholder="请选择受训机构类型"
@@ -215,13 +221,6 @@
               </el-select>
             </el-form-item>
           </el-col>
-          <el-col :span="12">
-            <el-form-item label="任务次数" prop="execTimes">
-              <template>
-                <el-input-number style="width: 100%" v-model="form.execTimes" :min="1" :max="10"></el-input-number>
-              </template>
-            </el-form-item>
-          </el-col>
         </el-row>
         <el-row>
           <!--          <el-col :span="12">
@@ -232,7 +231,7 @@
                         </el-select>
                       </el-form-item>
                     </el-col>-->
-          <el-col :span="12">
+          <el-col :span="24">
             <el-form-item v-show="form.execOrgType" label="受训机构" prop="planExecOrgIdList">
               <org-tree-select v-model="form.planExecOrgIdList" :queryData="form.execOrgType"
                                ref="orgTreeSelect" :enabledCheckOrgTypes="form.execOrgType" :disable="true">

+ 2 - 0
src/views/core/edu/task/dialog.perform.vue

@@ -42,6 +42,7 @@
               <el-form-item prop="trainingStartDateTime" label="培训开始时间">
                 <el-date-picker required v-model="formData.trainingStartDateTime"
                                 :picker-options="startDatepickerOptions"
+                                format="yyyy-MM-dd HH:mm"
                                 type="datetime" placeholder="选择日期" @change="startDateChanged">
                 </el-date-picker>
               </el-form-item>
@@ -50,6 +51,7 @@
               <el-form-item prop="trainingEndDateTime" label="培训结束时间">
                 <el-date-picker required v-model="formData.trainingEndDateTime" :picker-options="endDatepickerOptions"
                                 @change="endDateChanged"
+                                format="yyyy-MM-dd HH:mm"
                                 type="datetime" placeholder="选择日期">
                 </el-date-picker>
               </el-form-item>

+ 256 - 0
src/views/core/reportForms/monitorAccessReport.vue

@@ -0,0 +1,256 @@
+<template>
+    <div class="app-container">
+
+          <el-form :model="queryParams" ref="queryForm" size="small"  :inline="true"
+          v-show="showSearch"
+          label-width="100px">
+
+            <el-form-item label="组织机构" class="formTreeItem">
+            <tree-select
+              v-model="queryParams.orgId"
+              :options="deptOptions"
+              :show-count="true"
+              :normalizer="tenantIdnormalizer"
+              :props="{ checkStrictly: true, label: 'name' }"
+              placeholder="请选择归属机构"
+              clearValueText="清除"
+              :noChildrenText="''"
+              noOptionsText="没有数据"
+              noResultsText="没有搜索结果"
+            />
+          </el-form-item>
+
+             
+        <el-form-item label="周期" prop="cycle">
+            <el-select v-model="queryParams.cycle" placeholder="请选择周期">
+              <el-option v-for="dict in dict.type.repot_cycle" :key="dict.value" :label="dict.label"
+                :value=dict.value></el-option>
+            </el-select>
+          </el-form-item>
+
+              <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
+              <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
+            </el-form-item>
+          </el-form>
+          <h3 class="title">{{ this.title}}</h3>
+          <el-row :gutter="10" class="mb8">
+            <!-- <el-col :span="1.5">
+              <el-button type="primary" icon="el-icon-download" size="mini" @click="handleExport"
+                         v-hasPermi="['core:safetyInspectReport:export']">导出
+              </el-button>
+            </el-col> -->
+            <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+          </el-row>
+          <el-table
+            border
+            height="600"
+            size="small"
+            v-loading="loading" :data="checkList" @selection-change="handleSelectionChange">
+       
+            <el-table-column label="序号" align="center" min-width="50">
+              <template v-slot:default="scope">
+                <span v-text="getPageIndex(scope.$index)"> </span>
+              </template>
+            </el-table-column>
+          
+            <el-table-column label="机构名称" align="center" prop="orgName" />
+            <el-table-column label="网点数量" align="left" prop="networkNumber"/>
+            <el-table-column label="应调阅次数" align="center" prop="planAccessNumber"/>
+            <el-table-column label="调阅次数" align="center" prop="realityAccessNumber"/>
+            <el-table-column label="调阅率" align="center" prop="accessRate"/>
+          </el-table>
+          <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum"
+                      :limit.sync="queryParams.pageSize"
+                      @pagination="getList"/>
+  
+    </div>
+  </template>
+  
+  <script>
+    import tableList from '@/mixins/tableList'
+    import {listReport} from "@/api/core/reportForms/monitorAccessReport";
+    import treeselect from '@riophae/vue-treeselect'
+    import "@riophae/vue-treeselect/dist/vue-treeselect.css";
+    import {deptTreeSelect,businessTreeSelect} from "@/api/system/public";
+    import orgTree from "@/components/orgTree";
+    export default {
+      name: "Check",
+      /** 引入基础minxins*/
+      mixins: [tableList],
+      components: {treeselect,orgTree},
+      dicts: ['sys_normal_disable','sys_org_type','repot_cycle'],
+      data() {
+        return {
+          // 遮罩层
+          loading: true,
+          // 选中数组
+          ids: [],
+          names: [],
+          // 非单个禁用
+          single: true,
+          //搜索tree
+          deptName: null,
+          // 非多个禁用
+          multiple: true,
+          // 显示搜索条件
+          showSearch: true,
+          //区域
+          roleOptions: [],
+           //全部检查机构
+      orgOptions: [],
+          //搜索tree
+          deptName: null,
+          // 部门树选项
+          deptOptions: [],
+          // 总条数
+          total: 0,
+          //区域集合
+          areaList: [],
+          // 区域采集点表格数据
+          checkList: [],
+          // 弹出层标题
+          title: "",
+          // 是否显示弹出层
+          open: false,
+          // 查询参数
+          queryParams: {
+            pageNum: 1,
+            pageSize: 10,
+            checkName: null,
+            areaId: null,
+            orgId: null,
+            year:null
+          },
+          // 表单参数
+          form: {},
+          // 表单校验
+          checkList: [],
+          roleOptions: [],
+          defaultKeys: [],
+          //是否关联下级
+          checked: false,
+          defaultProps: {
+            children: "children",
+            label: "name"
+          },
+  
+          rules: {
+            areaId: [
+              {required: true, message: '请选择区域', trigger: 'blur'},
+            ],
+            orgType: [
+              {required: true, message: '请选择机构类型', trigger: 'blur'},
+            ],
+            checkName: [
+              {required: true, message: '请输入NFC点位名称', trigger: 'change'}
+            ],
+          },
+          defaultKeys: []
+  
+        };
+      },
+      created() {
+      this. getList();
+      },
+      watch: {
+        // 根据名称筛选部门树
+        deptName(val) {
+          this.$refs.tree.filter(val);
+        }
+      },
+      methods: {
+  /** 查询机构树数据 */
+  getDeptTree() {
+      deptTreeSelect().then((response) => {
+        this.deptOptions = response.data;
+      });
+    },
+        /** treeSelect组件自定义数据*/
+        tenantIdnormalizer(node, instanceId) {
+      if (node.children && !node.children.length) {
+        delete node.children;
+      }
+      return {
+        id: node.id,
+        label: node.shortName,
+        children: node.children,
+      };
+    },
+        getPageIndex($index) {
+          //表格序号
+          return (
+            (this.queryParams.pageNum - 1) * this.queryParams.pageSize + $index + 1
+          );
+        },
+        handleExport() {
+      this.download('core/safetyInspectReport/export', {
+        ...this.queryParams
+      }, `${'【'+this.orgName+'】'+'-检查统计报表-'+this.formatTime(new Date(),'YYYYMMDD')}.xlsx`)
+    },
+    
+     
+        getList() {
+          this.loading = true;
+          listReport(this.queryParams).then(response => {
+            this.checkList = response.data.rows;
+            this.title=response.title;
+            this.total = response.data.total;
+            this.loading = false;
+          });
+        },
+        getAllOrg() {
+          selectAllOrg().then(response => {
+        this.orgOptions = response.data;
+      })
+    },
+ 
+    
+        // 取消按钮
+        cancel() {
+          this.open = false;
+          this.reset();
+        },
+        // 表单重置
+        reset() {
+          this.form = {
+            id: null,
+            checkName: null,
+            areaId: null,
+            orgId: null,
+            createTime: null,
+            updateTime: null,
+            updateId: null,
+            createBy: null,
+            delFlag: null,
+            updateBy: null
+          };
+          this.resetForm("form");
+        },
+        /** 搜索按钮操作 */
+        handleQuery() {
+          this.queryParams.pageNum = 1;
+          this.getList();
+        },
+        /** 重置按钮操作 */
+        resetQuery() {
+          this.resetForm("queryForm");
+          this.handleQuery();
+        },
+        // 多选框选中数据
+        handleSelectionChange(selection) {
+          this.ids = selection.map(item => item.id)
+          this.names = selection.map(item => item.checkName)
+          this.single = selection.length !== 1
+          this.multiple = !selection.length
+        },
+  
+      }
+    };
+  </script>
+  <style lang="scss" scoped>
+  ::v-deep.formTreeItem {
+    .el-form-item__content {
+      width: 264px;
+    }
+  }
+  </style>

+ 1 - 57
src/views/core/reportForms/safetyInspectReport.vue

@@ -170,7 +170,7 @@
       }, `${'【'+this.orgName+'】'+'-检查统计报表-'+this.formatTime(new Date(),'YYYYMMDD')}.xlsx`)
     },
     
-        /** 查询区域采集点列表 */
+     
         getList() {
           this.loading = true;
           listReport(this.queryParams).then(response => {
@@ -225,62 +225,6 @@
           this.single = selection.length !== 1
           this.multiple = !selection.length
         },
-        /** 新增按钮操作 */
-        handleAdd() {
-          this.reset();
-          getCheck('').then(response => {
-  
-            this.roleOptions = response.areas;
-  
-            this.open = true;
-            this.title = "新增";
-            this.form.password = this.initPassword;
-          });
-        },
-        /** 修改按钮操作 */
-        handleUpdate(row) {
-          this.reset();
-          const id = row.id || this.ids
-  
-          getCheck(id).then(response => {
-            this.form = response.data;
-            this.roleOptions = response.areas;
-            this.open = true;
-            this.title = "编辑";
-          });
-        },
-        /** 提交按钮 */
-        submitForm() {
-          this.$refs["form"].validate(valid => {
-            if (valid) {
-              if (this.form.id != null) {
-                updateCheck(this.form).then(response => {
-                  this.$modal.msgSuccess("处理成功");
-                  this.open = false;
-                  this.getList();
-                });
-              } else {
-                addCheck(this.form).then(response => {
-                  this.$modal.msgSuccess("处理成功");
-                  this.open = false;
-                  this.getList();
-                });
-              }
-            }
-          });
-        },
-        /** 删除按钮操作 */
-        handleDelete(row) {
-          const ids = row.id || this.ids;
-          const names = row.checkName || this.names
-          this.$modal.confirm('是否确认删除区域NFC点位名称为"' + names + '"的数据项?').then(function () {
-            return delCheck(ids);
-          }).then(() => {
-            this.getList();
-            this.$modal.msgSuccess("删除成功");
-          }).catch(() => {
-          });
-        },
   
       }
     };

+ 155 - 45
src/views/evaluateTable/index.vue

@@ -12,7 +12,7 @@
           v-show="showSearch"
           label-width="100px"
         >
-          <el-form-item label="组织机构" class="formTreeItem">
+          <el-form-item label="组织机构:" class="formTreeItem">
             <tree-select
               v-model="queryParams.orgId"
               :options="deptOptions"
@@ -22,18 +22,21 @@
               placeholder="请选择归属机构"
               clearValueText="清除"
               :noChildrenText="''"
+              @select="changeSelect"
               noOptionsText="没有数据"
               noResultsText="没有搜索结果"
             />
           </el-form-item>
-          <el-form-item label="年月">
-            <el-date-picker
-              type="month"
-              v-model="queryParams.date"
-              placeholder="选择年月"
-              value-format="yyyy-MM"
-            >
-            </el-date-picker>
+          <el-form-item label="外包评价名称:">
+            <el-select v-model="queryParams.planId" @change="changeHandler">
+              <el-option
+                v-for="item in options"
+                :key="item.id"
+                :label="item.evaluateName"
+                :value="item.id"
+              >
+              </el-option>
+            </el-select>
           </el-form-item>
           <el-button
             type="primary"
@@ -47,78 +50,115 @@
           >
         </el-form>
 
-        <el-table
-          border
-          size="small"
-          v-loading="loading"
-          :data="dataList"
-          align="center"
-          fixed
-        >
-          <el-table-column
-            label="序号"
-            type="index"
-            width="50"
-          ></el-table-column>
-
-          <el-table-column label="机构名称" prop="orgName" />
-          <el-table-column label=">90 低" prop="level_gt90" />
-          <el-table-column label="80-90 中" prop="level_80_90" />
-          <el-table-column label="70-80 高" prop="level_70_80" />
-
-          <el-table-column label="70及以下 极高" prop="level_lt70" />
-        </el-table>
+        <!-- 按纽    -->
+        <!-- <el-row :gutter="10" class="mb8">
+              <el-col :span="1.5">
+                <el-button
+                  type="primary"
+                  plain
+                  icon="el-icon-plus"
+                  size="mini"
+                  @click="exportExcel"
+                  
+                  >导出</el-button
+                >
+              </el-col>
+            </el-row> -->
+        <div v-if="obj&&obj.length>0" class="securityEquipmentMonitoringtable ml-4 flex-1">
+          <div class="title">{{ fullTableTitle }}</div>
+          <table ref="tb11" class="table-scroll" >
+            <tr>
+              <th colspan="1" rowspan="1">序号</th>
+              <th colspan="1" rowspan="1" :key="item" v-for="item in obj">
+                {{ item }}
+              </th>
+            </tr>
+            <tr v-for="(item, index) in targetList" :key="index">
+              <td>{{ index }}</td>
+              <td v-for="i in obj" :key="i"> {{ item[i] }}</td>
+             
+            </tr>
+          </table>
+        </div>
       </el-col>
     </el-row>
   </div>
 </template>
 <script>
 import { mapGetters } from "vuex";
-
-import { list } from "@/api/scorestatistics/scorestatistics.js";
+import { findAllRole } from "@/api/system/role";
+import { list, getPlanList } from "@/api/scorestatistics/scorestatistics.js";
 import OrgTree from "@/components/orgTree";
+import { newDateMonth } from "@/utils/index.js";
 import { deptTreeSelect } from "@/api/system/public";
 export default {
   name: "SocWebIndex",
-  dicts: ["plan_status"],
 
   components: {
     OrgTree,
   },
   data() {
+    const { params, query } = this.$route;
     return {
-      targetListChild: [],
-      targetListGrandson: [],
+      targetList: [],
+      obj: {},
       loading: false,
       selectedValues: [],
       planRoles: [],
-
+      options: [],
+      fullTableTitle: "对押运公司月度评价",
       queryParams: {
         orgId: null,
-        date: "",
+        planId: "",
+        // date: newDateMonth("", "1"),
       },
       // 显示搜索条件
       showSearch: true,
-
+      total: 0,
       dataList: [],
       deptOptions: [], //机构数组
     };
   },
   created() {
-    this.getList();
     this.getDeptTree();
+    this.getevlauteList();
+  },
+  watch: {
+    queryParams() {
+      this.getList();
+    },
+  },
+  mounted() {
+    if (this.deptOptions) {
+      this.queryParams.orgId = this.orgId;
+    }
   },
-  mounted() {},
   computed: {
     ...mapGetters(["orgId"]),
   },
   methods: {
+    changeHandler() {
+      this.getList();
+    },
+    changeSelect() {
+      this.getList();
+    },
     /** 查询机构树数据 */
     getDeptTree() {
       deptTreeSelect().then((response) => {
         this.deptOptions = response.data;
       });
     },
+    /** 获取所有计划列表 */
+    getevlauteList() {
+      getPlanList().then((res) => {
+        this.queryParams.planId = res[0].id;
+        this.options = res;
+        if (this.queryParams.orgId && this.queryParams.planId) {
+          this.getList();
+        }
+      });
+    },
     /** treeSelect组件自定义数据*/
     tenantIdnormalizer(node, instanceId) {
       if (node.children && !node.children.length) {
@@ -134,14 +174,27 @@ export default {
     //获取列表
     getList() {
       this.loading = true;
-      // this.queryParams.orgId = this.orgId;
-      list(this.queryParams).then((res) => {
-        this.dataList = res?.rows || [];
 
+      list(this.queryParams).then((res) => {
+        let { code, data, msg } = res;
+        if (code == 200) {
+          this.targetList = data || [];
+          if (this.targetList) {
+            this.obj = Object.keys(this.targetList[0]);
+          }
+        }
         this.loading = false;
       });
     },
 
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.$refs.Evaluate.show();
+    },
+    editHandler(row) {
+      this.$refs.Evaluate.show(row);
+    },
+
     /** 搜索按钮操作 */
     handleQuery() {
       this.getList();
@@ -149,12 +202,14 @@ export default {
     /** 重置按钮操作 */
     resetQuery() {
       this.queryParams = {
-        orgId: null,
-        date: "",
+        orgId: this.orgId,
+        planId: this.options[0].id,
       };
 
       this.getList();
     },
+    //导出
+    exportExcel() {},
   },
 };
 </script>
@@ -164,4 +219,59 @@ export default {
     width: 264px;
   }
 }
+.securityEquipmentMonitoringtable {
+  background-color: #fff;
+  .table-scroll {
+    // table-layout:auto;
+
+    color: #000000;
+    min-width: 100%;
+    border-spacing: 0;
+    text-align: center;
+    border-collapse: collapse;
+    max-height: 500px;
+    overflow-y: auto;
+    font-family: "仿宋_GB2312";
+
+    .orgName {
+      min-width: 180px !important;
+      width: 180px !important;
+    }
+
+    tr th,
+    tr td {
+      height: 25px;
+      border: 1px solid rgb(0, 0, 0);
+      // min-width: 75px;
+    }
+
+    .jump {
+      color: #02a7f0;
+      text-decoration: underline;
+    }
+
+    .nojump {
+      color: #000000;
+      font-size: 10;
+      //font-weight: bold;
+    }
+
+    .greentd {
+      color: green;
+    }
+    .redtd {
+      color: red;
+    }
+  }
+}
+
+.title {
+  clear: both;
+  margin: auto;
+  text-align: center;
+  color: black;
+  font-size: x-large;
+  letter-spacing: 3px;
+  font-weight: bold;
+}
 </style>

+ 1 - 1
src/views/resumption/rule/dialog.edit.vue

@@ -69,7 +69,7 @@
       </div>
 
       <div slot="footer" class="dialog-footer">
-        <el-button @click="isShow = false">取消</el-button>
+        <el-button type="primary" @click="isShow = false">取消</el-button>
         <el-button type="primary" @click="onSubmit">确定</el-button>
       </div>
     </DialogCom>

+ 8 - 7
src/views/resumption/rule/index.vue

@@ -48,6 +48,13 @@
             </el-select>
           </el-form-item>
           <el-form-item>
+            
+          </el-form-item>
+        </el-form>
+
+        <!--    按纽    -->
+        <el-row :gutter="10" class="mb8">
+          <el-col :span="1.5">
             <el-button
               type="primary"
               icon="el-icon-search"
@@ -56,15 +63,9 @@
               v-hasPermi="['resumption:rule:query']"
               >搜索</el-button
             >
-            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+            <el-button type="primary" icon="el-icon-refresh" size="mini" @click="resetQuery"
               >重置</el-button
             >
-          </el-form-item>
-        </el-form>
-
-        <!--    按纽    -->
-        <el-row :gutter="10" class="mb8">
-          <el-col :span="1.5">
             <el-button
               type="primary"
               icon="el-icon-plus"

+ 1 - 1
src/views/resumption/ruleManager/dialog.editItem.vue

@@ -70,7 +70,7 @@
       </div>
 
       <div slot="footer" class="dialog-footer">
-        <el-button @click="dialogVisible = false">取 消</el-button>
+        <el-button type="primary"  @click="dialogVisible = false">取 消</el-button>
         <el-button type="primary" @click="onSubmit()">保 存</el-button>
       </div>
     </DialogCom>

+ 5 - 7
src/views/resumption/ruleManager/index.vue

@@ -14,16 +14,14 @@
           </el-form-item>
           <el-form-item prop="pointName" label="履职内容">
             <el-input v-model="queryParams.pointName" placeholder="请输入履职内容" maxlength="50" clearable></el-input>
-          </el-form-item>
-          <el-form-item>
-            <el-button type="primary" icon="el-icon-search" size="mini" @click="refresh"
-              v-hasPermi="['resumption:ruleManager']">搜索</el-button>
-            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
-          </el-form-item>
+          </el-form-item>         
         </el-form>
         <!--    按纽    -->
         <el-row :gutter="10" class="mb8">
           <el-col :span="1.5">
+            <el-button type="primary" icon="el-icon-search" size="mini" @click="refresh"
+              v-hasPermi="['resumption:ruleManager']">搜索</el-button>
+            <el-button type="primary" icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
             <el-button type="primary" size="mini" icon="el-icon-plus" @click="onAddItem()" :disabled="rule ? false : true"
               v-hasPermi="['resumption:ruleManager:add']"
               v-if="rule && rule.orgId == orgId && rule.ruleStatus == 0">新增</el-button>
@@ -32,7 +30,7 @@
               @click="onSelect()"
               >选择</el-button
             > -->
-            <el-button type="warning" @click="dakai" size="mini" :disabled="rule ? false : true">{{ expandAll ? "收起所有行" :
+            <el-button type="primary" :icon="expandAll ?'el-icon-arrow-up':'el-icon-arrow-down'" @click="dakai" size="mini" :disabled="rule ? false : true">{{ expandAll ? "收起所有行" :
               "展开所有行" }}</el-button>
           </el-col>
           <!-- <el-col :span="1.5">