Jelajahi Sumber

履职计划增详情

jiawuxian 1 tahun lalu
induk
melakukan
feec9c1a04
2 mengubah file dengan 163 tambahan dan 35 penghapusan
  1. 124 0
      src/views/resumption/plan/dialog.detail.vue
  2. 39 35
      src/views/resumption/plan/index.vue

+ 124 - 0
src/views/resumption/plan/dialog.detail.vue

@@ -0,0 +1,124 @@
+<template>
+  <div class="rule-type">
+    <DialogCom title="检查任务详情" :visible.sync="isShow" width="1500px">
+      <el-descriptions :column="4" border>
+        <el-descriptions-item label="任务名称">{{
+          formData.planName
+        }}</el-descriptions-item>
+        <el-descriptions-item label="任务类型">{{
+          getLabel(dict.type.resumption_plan_type,formData.planType)          
+        }}</el-descriptions-item>
+        <el-descriptions-item label="任务周期">{{
+           getLabel(dict.type.resumption_plan_cycle,formData.planCycle)
+        }}</el-descriptions-item>
+        <el-descriptions-item label="任务时间">{{
+          getLabel(dict.type.resumption_plan_exec,formData.planExec)
+        }}</el-descriptions-item>
+        <el-descriptions-item label="机构类型">{{
+          getLabel(orgTypeOptions,formData.execOrgType)
+        }}</el-descriptions-item>
+        <el-descriptions-item label="履职人员">
+          {{resumptionRoles.filter(r=>formData.roleList.includes(r.id)).map(r=>r.name).join("、")}}
+        </el-descriptions-item>
+        <el-descriptions-item label="任务次数"  :span="2">{{
+          formData.count
+        }}</el-descriptions-item>
+        <el-descriptions-item label="备注" :span="4">{{
+          formData.note
+        }}</el-descriptions-item>
+      </el-descriptions>
+      <el-table :data="tableData" style="width: 100%" height="400px">
+        <el-table-column prop="ruleName" label="履职手册"> </el-table-column>
+        <el-table-column prop="itemName" label="履职项"> </el-table-column>
+        <el-table-column prop="pointName" label="履职内容" width="300px">
+          <template slot-scope="scope">
+            <pre>{{ scope.row.pointName }}</pre>
+          </template>
+        </el-table-column>
+        <el-table-column v-if="false" prop="ofOrgId" label="所属机构id">
+        </el-table-column>
+        <el-table-column prop="areaName" label="履职区域"> </el-table-column>
+        <el-table-column prop="checkName" label="履职点位" v-if="false">
+        </el-table-column>
+        <el-table-column label="是否扫描">
+          <template v-slot="{ row }">
+            {{ row.pointScan ? "是" : "否" }}
+          </template>
+        </el-table-column>
+
+        <el-table-column label="必完成项">
+          <template v-slot="{ row }">
+            {{ row.required ? "是" : "否" }}
+          </template>
+        </el-table-column>
+      </el-table>
+      <div slot="footer" class="dialog-footer" style="margin-top:20px">       
+        <el-button @click="onHide">关闭</el-button>
+      </div>
+    </DialogCom>
+  </div>
+</template>
+
+<script>
+import { findAllRole } from "@/api/system/role";
+import * as api from "@/api/resumption/plan";
+import { getLabel } from "@/views/commonOption.js";
+export default {
+  dicts: [
+    "resumption_plan_type",
+    "resumption_plan_cycle",
+    "resumption_org_type",
+    "resumption_plan_status",
+    "sys_org_type",
+    "resumption_plan_exec",
+  ],
+  props: {
+    orgTypeOptions: {
+      type: Array,
+    },
+    ruleTypeOptions: {
+      type: Array,
+    },
+  },
+  data() {
+    return {
+      isShow: false,
+      tableData: [],
+      formData: {
+        roleList:[]
+      },
+      resumptionRoles:[],
+    };
+  },
+  methods: {
+    getLabel,
+    show(id) {
+      this.tableData = null;
+      api.get(id).then((r) => {
+        this.formData = r.data;
+        this.tableData = r.data.itemList;
+        this.isShow = true;
+        if (this.formData.execOrgType) {
+          this.getRolesByOrg();
+        }
+      });
+    },
+    getRolesByOrg() {
+      if (this.formData.execOrgType != null) {
+        let params = {
+          orgType: this.formData.execOrgType,
+        };
+        debugger
+        findAllRole(params).then((res) => {
+          this.resumptionRoles = res.data;
+        });
+      }
+    },
+    onHide() {
+      this.isShow = false;
+    },
+  },
+};
+</script>
+
+<style></style>

+ 39 - 35
src/views/resumption/plan/index.vue

@@ -307,7 +307,7 @@
                   >撤回</el-button
                 >
                 <el-button
-                  v-if="eqOrg(r.row)"
+                  v-if="showEditBtn(r.row)"
                   size="mini"
                   type="text"
                   icon="el-icon-edit-outline"
@@ -316,6 +316,14 @@
                   >编辑</el-button
                 >
                 <el-button
+                  v-if="!showEditBtn(r.row)"
+                  size="mini"
+                  type="text"
+                  icon="el-icon-edit-outline"
+                  @click="onDetail(r.row.id)"
+                  >详情</el-button
+                >
+                <el-button
                   v-if="showDelete(r.row)"
                   size="mini"
                   type="text"
@@ -344,6 +352,11 @@
       :orgTypeOptions="orgTypeOptions"
       :ruleTypeOptions="dict.type.rule_type"
     ></dialog-edit>
+    <dialog-detail
+      ref="detailDialog"
+      :orgTypeOptions="orgTypeOptions"
+      :ruleTypeOptions="dict.type.rule_type"
+    ></dialog-detail>
     <DialogDistribute ref="dialogDistribute" @select="sel"></DialogDistribute>
     <DialogThreeState ref="DialogThreeState"> </DialogThreeState>
   </div>
@@ -354,6 +367,7 @@ import DialogDistribute from "@/views/resumption/plan/distribute.vue";
 import OrgTree from "@/components/orgTree/orgQuerySelector.vue";
 import { mapState, mapMutations, mapGetters } from "vuex";
 import DialogEdit from "./dialog.edit";
+import DialogDetail from "./dialog.detail";
 import * as api from "@/api/resumption/plan";
 import { statusOptions, getLabel } from "./../../commonOption";
 import { allRole } from "@/api/system/role";
@@ -373,6 +387,7 @@ export default {
     OrgTree,
     DialogDistribute,
     DialogThreeState,
+    DialogDetail
   },
   data() {
     const { params, query } = this.$route;
@@ -423,46 +438,32 @@ export default {
   watch: {},
   computed: {
     ...mapGetters(["orgId", "orgName"]),
-    orgTypeOptions(){
-     if(!this.dict || !this.dict.type.sys_org_type==null)  {
-      return []
-     }
-     
-     return this.dict.type.sys_org_type.filter(t=>!["1","2","7","8"].includes(t.value))
-    }
+    orgTypeOptions() {
+      if (!this.dict || !this.dict.type.sys_org_type == null) {
+        return [];
+      }
+
+      return this.dict.type.sys_org_type.filter(
+        (t) => !["1", "2", "7", "8"].includes(t.value)
+      );
+    },
   },
   methods: {
     ...mapMutations([]),
-    //判断是否跟当前用户同机构
-    eqOrg(row) {
+    //是否显示编辑按钮
+    showEditBtn(row) {
+      if (row == null || row == undefined) {
+        return false;
+      }
+
+      //只能编辑所属机构是自己的
+      return row.planOfOrgId == this.orgId;
       // console.log(row.planOfOrgId,"row.planOfOrgId");
       // console.log(this.orgId,"this.orgId");
-      if (
-        row != null &&
-        row != undefined &&
-        (row.planCreateOrgId == this.orgId ||
-          (row.planOfOrgType == 3 && row.planOfOrgId == this.orgId))
-      ) {
-        return true;
-      }
-      return false;
     },
-    // eqOrg2(row) {
-    //   // console.log(row.planCreateOrgId,"row.planCreateOrgId");
-    //   // console.log(this.orgId,"this.orgId");
-    //   if (
-    //     row != null &&
-    //     row != undefined &&
-    //     row.planCreateOrgId == this.orgId &&
-    //     row.planOfOrgId == this.orgId
-    //   ) {
-    //     return true;
-    //   }
-    //   return false;
-    // },
-    showPublish(row) {      
+    showPublish(row) {
       //有父计划且父计划不是使用中状态,不能下发
-      if (row.parentStatus != 1 && row.parentId>0) {
+      if (row.parentStatus != 1 && row.parentId > 0) {
         return false;
       }
       //可以下发:本机构创建+状态为草稿、停用的计划
@@ -486,7 +487,7 @@ export default {
     },
     showDelete(row) {
       //本机构创建的计划,才能删除
-      return row.planCreateOrgId == this.orgId && row.planOfOrgId==this.orgId;
+      return row.planCreateOrgId == this.orgId && row.planOfOrgId == this.orgId;
     },
     showWithDraw(row) {
       //本机构创建是自己+状态为使用中
@@ -707,6 +708,9 @@ export default {
     onEdit(id, other = {}) {
       this.$refs.editDialog.show(id, other);
     },
+    onDetail(id) {
+      this.$refs.detailDialog.show(id);
+    },
     async onDel(row) {
       let msg = "";
       if (row.planStatus == 0) {