Jelajahi Sumber

检查计划

luojun 2 tahun lalu
induk
melakukan
8d54ad666b
3 mengubah file dengan 1176 tambahan dan 0 penghapusan
  1. 508 0
      src/views/check/dialog.edit.vue
  2. 141 0
      src/views/check/distribute.vue
  3. 527 0
      src/views/check/index.vue

+ 508 - 0
src/views/check/dialog.edit.vue

@@ -0,0 +1,508 @@
+<template>
+  <div class="rule-type">
+    <el-dialog
+      :title="id ? '编辑检查计划' : '新增检查计划'"
+      :visible.sync="isShow"
+      width="1500px"
+    >
+      <div class="page-body">
+        <el-form
+          :model="formData"
+          :rules="formDataRules"
+          size="small"
+          ref="form"
+          label-position="right"
+          label-width="130px"
+          label-prefix=":"
+        >
+          <el-row>
+            <el-col :span="6">
+              <el-form-item prop="planName" label="计划名称:">
+                <el-input
+                  v-model="formData.planName"
+                  :maxlength="50"
+                  name="planName"
+                  placeholder="请输入"
+                  clearable
+                />
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item prop="planType" label="检查类型:">
+                <el-select
+                  label="检查类型"
+                  v-model="formData.planType"
+                  placeholder="请选择检查类型"
+                  clearable
+                >
+                  <el-option
+                    v-for="dict in dict.type.resumption_plan_type"
+                    :key="dict.value"
+                    :label="dict.label"
+                    :value="dict.value"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item prop="planCycle" label="检查周期:">
+                <el-select
+                  prop="planCycle"
+                  label="检查周期"
+                  v-model="formData.planCycle"
+                  placeholder="请选择检查周期"
+                  clearable
+                >
+                  <el-option
+                    v-for="item in dict.type.resumption_plan_cycle"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item prop="planStatus" label="检查机构类型:">
+                <el-select
+                  prop="planStatus"
+                  label="检查机构类型"
+                  v-model="formData.planStatus"
+                  placeholder="请选择检查机构类型"
+                  clearable
+                >
+                  <el-option
+                    v-for="item in dict.type.resumption_plan_status"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="6">
+              <el-form-item prop="execOrgType" label="检查角色:">
+                <el-select
+                  label="检查角色"
+                  v-model="formData.execOrgType"
+                  placeholder="请选择检查角色"
+                  @change="onOrgTypeChanged"
+                  clearable
+                >
+                  <el-option
+                    v-for="item in dict.type.sys_org_type"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item prop="roleList" label="受检机构类型:">
+                <el-select
+                  
+                  label="受检机构类型"
+                  v-model="formData.roleList"
+                  placeholder="请选择受检机构类型"
+                  multiple
+                  filterable
+                  @change="handleRolesChange"
+                >
+                  <el-option
+                    v-for="item in resumptionRoles"
+                    :key="item.id"
+                    :label="item.name"
+                    :value="item.id"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item prop="planExec" label="检查次数:">
+                <el-select
+                  label="检查次数"
+                  v-model="formData.planExec"
+                  placeholder="请选择检查次数"
+                  clearable
+                >
+                  <el-option
+                    v-for="item in dict.type.resumption_plan_exec"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value"
+                  >
+                  </el-option>
+                </el-select>
+              </el-form-item>
+            </el-col>
+            <el-col :span="6">
+              <el-form-item prop="count" label="立即生效:">
+                <el-input-number
+                  style="margin-left: 10px"
+                  v-model="formData.count"
+                  controls-position="right"
+                  @change="handleChange"
+                  :min="1"
+                  :max="10"
+                ></el-input-number>
+              </el-form-item>
+            </el-col>
+          </el-row>
+          <el-row>
+            <el-col :span="6">
+          <el-form-item  prop="note" label="计划状态">
+            <el-select
+                  label="计划状态"
+                  v-model="formData.execOrgType"
+                  placeholder="请选择计划状态"
+                  @change="onOrgTypeChanged"
+                  clearable
+                >
+                  <el-option
+                    v-for="item in dict.type.sys_org_type"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value"
+                  >
+                  </el-option>
+                </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item :span="6" prop="note" label="检查机构">
+            <el-select
+                  label="检查机构"
+                  v-model="formData.execOrgType"
+                  placeholder="请选择检查机构"
+                  @change="onOrgTypeChanged"
+                  clearable
+                >
+                  <el-option
+                    v-for="item in dict.type.sys_org_type"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value"
+                  >
+                  </el-option>
+                </el-select>
+          </el-form-item>
+        </el-col>
+        <el-col :span="6">
+          <el-form-item :span="6" prop="note" label="受检机构">
+            <el-select
+                  label="受检机构"
+                  v-model="formData.execOrgType"
+                  placeholder="请选择受检机构"
+                  @change="onOrgTypeChanged"
+                  clearable
+                >
+                  <el-option
+                    v-for="item in dict.type.sys_org_type"
+                    :key="item.value"
+                    :label="item.label"
+                    :value="item.value"
+                  >
+                  </el-option>
+                </el-select>
+          </el-form-item>
+        </el-col>
+          
+        </el-row>
+        <el-form-item :span="6" prop="note" label="备注">
+            <el-input
+              v-model="formData.note"
+              :maxlength="255"
+              clearable
+            />
+          </el-form-item>
+        </el-form>
+        <el-button @click="openSelect">新增检查内容</el-button>
+       
+        <el-table :data="tableData" style="width: 100%" height="400px">
+          <el-table-column  label="是否扫描" >
+            <template v-slot="{ row }"> 
+              <el-switch
+                v-model="row.pointScan"
+                active-text="是"
+                inactive-text="否">
+              </el-switch>
+            </template>
+          </el-table-column>
+
+          <el-table-column label="是否必检" >
+            <template v-slot="{ row }"> 
+              <el-switch
+                v-model="row.required"
+                active-text="是"
+                inactive-text="否">
+              </el-switch>
+            </template>
+          </el-table-column>
+          <el-table-column prop="ruleName" label="检查手册" > </el-table-column>
+          <el-table-column prop="itemName" label="检查项" > </el-table-column>
+          <el-table-column prop="pointName" label="检查内容" > </el-table-column>
+          <el-table-column prop="areaName" label="检查区域" > </el-table-column>
+          <el-table-column prop="areaName" label="数据来源" > </el-table-column>
+          <el-table-column prop="areaName" label="操作" >
+            <template v-slot="{ row }"> 
+              <el-button type="text" @click="removeRow(row)">删除</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+      </div>
+
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="onHide">取消</el-button>
+        <el-button type="primary" @click="onSubmit">确定</el-button>
+      </div>
+    </el-dialog>
+    <DialogSelect
+          ref="DialogSelect"
+          :defaultSelect=defaultSelect
+          :orgType="formData.execOrgType"
+          @select="onSelect"
+        ></DialogSelect>
+  </div>
+</template>
+
+<script>
+import { mapGetters } from "vuex";
+import * as api from "@/api/resumption/plan";
+import { statusOptions } from "@/views/commonOption";
+import { findAllRole } from "@/api/system/role";
+import DialogSelect from "@/views/safetycheck/ruleManager/dialog.select.point.vue";
+export default {
+  dicts: [
+    "resumption_plan_type",
+    "resumption_plan_cycle",
+    "resumption_org_type",
+    "resumption_plan_status",
+    "sys_org_type",
+    "resumption_plan_exec",
+  ],
+  data() {
+    // const params = this.$route.params;
+    // let o1=options;
+    // let o=statusOptions;
+    // debugger
+    return {
+      defaultSelect: [],
+      selectedValues: [],
+      resumptionRoles: [],
+      planName: null,
+      planType: null,
+      planCycle: null,
+      planStatus: null,
+      execOrgType: null,
+      roleNames: null,
+      planExec: null,
+      count: 0,
+      description: null,
+      propItem: "",
+      propList: [
+        {
+          label: "是否扫描",
+          prop: "pointScan",
+        },
+        {
+          label: "itemId",
+          prop: "itemId",
+        },
+        {
+          label: "必须履职",
+          prop: "required",
+        },
+        {
+          label: "履职内容库",
+          prop: "pointName",
+        },
+        {
+          label: "履职项",
+          prop: "itemName",
+        },
+        {
+          label: "履职内容",
+          prop: "itemDesc",
+        },
+        {
+          label: "履职区域",
+          prop: "areaName",
+        },
+        {
+          label: "操作",
+          prop: "lc-component",
+          component: "el-button",
+        },
+      ],
+      row: "",
+      tableData: [],
+      id: null,
+      isShow: false,
+      formData: this.reset(),
+      formDataRules: {
+        planName: [{ required: true, message: "请输入计划名称" }],
+        planType: [{ required: true, message: "请选择计划类型" }],
+        planCycle: [{ required: true, message: "请选择履职周期" }],
+        planStatus: [{ required: true, message: "请选择计划状态" }],
+        execOrgType: [{ required: true, message: "请选择履职角色" }],
+        roleList: [{ required: true, message: "请选择履职角色" }],
+        planExec: [{ required: true, message: "请选择履职时间" }],
+        count: [{ required: true, message: "请选择履职次数" }],
+      },
+      statusOptions: statusOptions,
+    };
+  },
+  props: {
+    orgTypeOptions: {
+      type: Array,
+    },
+    ruleTypeOptions: {
+      type: Array,
+    },
+  },
+  watch: {},
+  computed: {
+    ...mapGetters(["orgId", "orgName"]),
+  },
+  methods: {
+    reset() {
+      return {
+        planName: null,
+        planType: null,
+        planCycle: null,
+        planStatus: null,
+        execOrgType: null,
+        roleNames: null,
+        count: null,
+        description: null,
+        tableData: null,
+        itemList: null,
+        planExec: null,
+        count: 0,
+        note: null,
+        planCreateOrgId: null,
+        planCreateOrgName: null,
+        roleList: null,
+      };
+    },
+    getRolesByOrg() {
+      let params = {
+        orgType: this.formData.execOrgType,
+      };
+      findAllRole(params).then((res) => {
+        // console.info(res);
+        this.resumptionRoles = res.data;
+      });
+    },
+    handleChange(value) {
+      console.log(value);
+      this.count = value;
+    },
+    async refresh(id, other) {
+      this.formData = id ? (await api.get(id)).data : this.reset(other);
+      if(this.formData.execOrgType){
+        this.getRolesByOrg();
+      } 
+    },
+    onSelect(selectList){
+      console.log(selectList);
+      for(let i=0;i<selectList.length;i++){
+        let tem={
+          pointScan:!selectList[i].pointScan,
+          required:!selectList[i].required,
+          ruleName:selectList[i].ruleName,
+          itemName:selectList[i].itemName,
+          pointName:selectList[i].pointName,
+          areaName:selectList[i].areaName,
+          itemId:selectList[i].itemId,
+          id:selectList[i].id,
+        }
+        if(this.tableData==null){
+          this.tableData=[];
+        }
+        this.tableData.push(tem);
+      }
+     
+      
+      
+    },
+    onOrgTypeChanged(){
+      this.getRolesByOrg();
+    },
+    async show(id, other = {}) {
+      this.id = id;
+      this.tableData = null;
+      this.formData.itemList = null;
+      await this.refresh(id, other);
+      console.log(id);
+      if (id !== undefined) {
+        await api.get(id).then((res) => {
+          console.log(res);
+          this.tableData = res.data.itemList;
+        });
+      }
+
+      this.isShow = true;
+    },
+    removeRow(row) {
+      this.tableData = this.tableData.filter(item => item !== row)
+      // this.tableData.splice(index, 1);
+    },
+    // 事件
+    onHide() {
+      this.isShow = false;
+    },
+    getIteamF(){
+      if(this.id==null){
+        this.defaultSelect=[];
+        return;
+      }
+      api.getPointIds(this.id).then((res) => {
+        this.defaultSelect = res.data;
+      });
+    },
+    openSelect() {
+      
+      this.getIteamF();
+      this.$refs.DialogSelect.show();
+    },
+    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.roleList = this.selectedValues.length==0?null:this.selectedValues;
+        await api.update(this.formData);
+        this.$emit("success");
+        this.onHide();
+      });
+    },
+    handleRolesChange(val) {
+      this.selectedValues = val.toString().split(",");
+    },
+    // 事件
+    //apimark//
+  },
+  mounted() {},
+  components: {DialogSelect},
+};
+</script>
+
+<style lang="scss" scoped>
+.brand_info {
+  .el-form {
+    width: 600px;
+    padding-top: 40px;
+  }
+}
+</style>

+ 141 - 0
src/views/check/distribute.vue

@@ -0,0 +1,141 @@
+<template>
+  <el-dialog
+    title="选择下发机构状态"
+    :visible.sync="isShow"
+    class="g-dialog-select-safe-check"
+    :close-on-click-modal="false"
+    width="700px"
+    top="10vh"
+    append-to-body
+  >
+    <div class="el-dialog-div">
+      <el-row :gutter="10" class="mb8">
+        <el-col :span="1.5">
+          <el-input
+            size="mini"
+            v-model="filterName"
+            placeholder="按机构名称过滤"
+            @input="filterbyOrgName"
+            clearable
+          ></el-input>
+        </el-col>
+        <el-col :span="1.5">
+          <el-button
+            type="primary"
+            plain
+            size="mini"
+            @click="handleAllStatus('1')"
+            >全部启用</el-button
+          >
+        </el-col>
+        <el-col :span="1.5">
+          <el-button
+            type="danger"
+            plain
+            size="mini"
+            @click="handleAllStatus('0')"
+            >全部禁用</el-button
+          >
+        </el-col>
+      </el-row>
+      <el-table :data="tableData" height="400px">
+        <el-table-column type="index" label="序号" width="80"></el-table-column>
+        <el-table-column prop="orgName" label="机构名称"></el-table-column>
+        <el-table-column prop="status" label="计划状态" width="150px">
+          <template slot-scope="r">
+            <el-switch
+              v-model="r.row.status"
+              active-text="启用"
+              inactive-text="禁用"
+              active-value="1"
+              inactive-value="0"
+              active-color="#008CD6"
+              inactive-color="#ff4949"
+            >
+            </el-switch>
+          </template>
+        </el-table-column>
+      </el-table>
+    </div>
+
+    <div slot="footer" class="dialog-footer">
+      <el-button @click="onHide">关闭</el-button>
+      <el-button type="primary" @click="onSubmit">确定</el-button>
+    </div>
+  </el-dialog>
+</template>
+<script>
+import { listByTypes } from "@/api/system/org.js";
+
+export default {
+  components: {},
+  data() {
+    return {
+      isShow: false,
+      info: this.emptyInfo(),
+      tableData: [],
+      filterName: null,
+    };
+  },
+  computed: {},
+  watch: {},
+  props: {
+    defaultSelect: {
+      type: Array,
+    },
+    orgType: {
+      type: String,
+    },
+  },
+  methods: {
+    show(plan) {
+      this.isShow = true;
+      this.info.id = plan.id;
+      listByTypes({
+        orgId: plan.planCreateOrgId,
+        orgTypes: ["3"],
+      }).then((r) => {
+        this.info.orgAndStatus = r.data.map((d) => {
+          return { orgId: d.id, orgName: d.name, status: "1" };
+        });
+        this.tableData = this.info.orgAndStatus;
+      });
+    },
+    handleAllStatus(status) {
+      this.tableData.forEach((element) => {
+        element.status = status;
+      });
+    },
+    filterbyOrgName(val) {
+      if (!val || !val.trim()) {
+        this.tableData = this.info.orgAndStatus;
+      } else {
+        this.tableData = this.info.orgAndStatus.filter(
+          (o) => o.orgName.indexOf(val) >= 0
+        );
+      }
+    },
+    onHide() {
+      this.info = this.emptyInfo();
+      this.isShow = false;
+    },
+    onSubmit() {
+      console.info(this.info);
+      this.$emit("select", this.info);
+      this.onHide();
+    },
+    emptyInfo() {
+      return {
+        id: null, //计划id
+        orgAndStatus: [], //机构及状态
+      };
+    },
+  },
+  mounted() {},
+};
+</script>
+<style lang="scss" scoped>
+.el-dialog-div {
+  overflow: auto;
+}
+</style>

+ 527 - 0
src/views/check/index.vue

@@ -0,0 +1,527 @@
+<template>
+  <div class="app-container">
+    <el-row :gutter="20">
+      <!--机构数据-->
+      <el-col :span="4" :xs="24">
+        <org-tree
+          v-model="queryParams.orgId"
+          @defaultKey="getDefaultKey"
+          @checkChange="checkChange"
+          @click="clickTreeNode"
+          hangsheTree
+        ></org-tree>
+      </el-col>
+
+      <el-col :span="20" :xs="24">
+        <!--    搜索条件    -->
+        <el-form
+          :model="queryParams"
+          ref="search"
+          size="small"
+          :inline="true"
+          v-show="showSearch"
+          label-width="100px"
+        >
+          <el-form-item prop="planType" label="检查机构类型">
+            <el-select
+              prop="planType"
+              label="检查机构类型"
+              v-model="queryParams.planType"
+              placeholder="请选择检查机构类型"
+              clearable
+            >
+              <el-option
+                v-for="dict in dict.type.resumption_plan_type"
+                :key="dict.value"
+                :label="dict.label"
+                :value="dict.value"
+              />
+            </el-select>
+          </el-form-item>
+          <el-form-item prop="resumptionRole" label="受检机构类型">
+            <el-select
+              @visible-change="getRolesByOrg"
+              prop="resumptionRole"
+              label="受检机构类型"
+              v-model="queryParams.resumptionRole"
+              placeholder="请选择受检机构类型"
+              clearable
+            >
+              <el-option
+                v-for="dict in resumptionRoles"
+                :key="dict.index"
+                :label="dict.roleName"
+                :value="dict.id"
+              />
+            </el-select>
+          </el-form-item>
+
+          <el-form-item prop="planCycle" label="检查角色">
+            <el-select
+              prop="planCycle"
+              label="检查角色"
+              v-model="queryParams.planCycle"
+              placeholder="请选择检查角色"
+              clearable
+            >
+              <el-option
+                v-for="item in dict.type.resumption_plan_cycle"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item prop="planStatus" label="检查周期">
+            <el-select
+              prop="planStatus"
+              label="检查周期"
+              v-model="queryParams.planStatus"
+              placeholder="请选择检查周期"
+              clearable
+            >
+              <el-option
+                v-for="item in dict.type.resumption_plan_status"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item prop="planName" label="计划名称">
+            <el-input
+              v-model="queryParams.planName"
+              :maxlength="50"
+              name="planName"
+              placeholder="请输入"
+              clearable
+            />
+          </el-form-item>
+          <el-form-item prop="planName" label="计划状态">
+            <el-select
+              prop="planStatus"
+              label="计划状态"
+              v-model="queryParams.planStatus"
+              placeholder="请选择计划状态"
+              clearable
+            >
+              <el-option
+                v-for="item in dict.type.resumption_plan_status"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item>
+            <el-button
+              type="primary"
+              icon="el-icon-search"
+              size="mini"
+              @click="getList"
+              >搜索</el-button
+            >
+            <el-button 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"
+              plain
+              icon="el-icon-plus"
+              size="mini"
+              @click="handleAdd()"
+              v-hasPermi="['system:user:add']"
+              >新增计划</el-button
+            >
+          </el-col>
+          <!-- <el-col :span="1.5">
+            <el-button
+              type="success"
+              plain
+              icon="el-icon-edit"
+              size="mini"
+              :disabled="single"
+              @click="handleUpdate"
+              v-hasPermi="['system:user:edit']"
+              >修改</el-button
+            >
+          </el-col>
+          <el-col :span="1.5">
+            <el-button
+              type="danger"
+              plain
+              icon="el-icon-delete"
+              size="mini"
+              :disabled="multiple"
+              @click="handleDelete"
+              v-hasPermi="['system:user:remove']"
+              >删除</el-button
+            > 
+          </el-col>-->
+
+          <right-toolbar
+            :showSearch.sync="showSearch"
+            @queryTable="getList"
+            :columns="columns"
+          ></right-toolbar>
+        </el-row>
+
+        <el-table
+          v-loading="loading"
+          :data="pageData"
+          @selection-change="handleSelectionChange"
+          row-key="id"
+          :tree-props="{ children: 'children' }"
+        >
+          <el-table-column
+            prop="index"
+            label="序号"
+            width="80px"
+            v-if="columns[0].visible"            
+          ></el-table-column>
+          <el-table-column
+            prop="planName"
+            label="计划名称"
+            v-if="columns[1].visible"
+          ></el-table-column>
+          <el-table-column
+            prop="planOfOrgName"
+            label="计划所属机构"
+            v-if="columns[4].visible"
+          ></el-table-column>
+        
+          <el-table-column
+            prop="planCreateOrgName"
+            label="计划创建机构"
+            v-if="columns[3].visible"
+          >
+          
+          </el-table-column>
+          <el-table-column
+            prop="planType"
+            label="检查类型"
+            v-if="columns[2].visible"
+          >
+            <template slot-scope="r"
+              >{{
+                getLabel(dict.type.resumption_plan_type, `${r.row.planType}`)
+              }}
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="planType"
+            label="检查机构类型"
+            v-if="columns[2].visible"
+          >
+            <template slot-scope="r"
+              >{{
+                getLabel(dict.type.resumption_plan_type, `${r.row.planType}`)
+              }}
+            </template>
+          </el-table-column>
+
+          <el-table-column
+            prop="execOrgType"
+            label="受检机构类型"
+            width="120px"
+            v-if="columns[6].visible"
+          >
+            <template slot-scope="r"
+              >{{ getLabel(dict.type.sys_org_type, `${r.row.execOrgType}`) }}
+            </template>
+          </el-table-column>
+
+          <el-table-column
+            prop="roleNames"
+            label="检查角色"
+            v-if="columns[6].visible"
+          ></el-table-column>
+          <el-table-column
+            prop="planCycle"
+            label="检查周期"
+            width="80px"
+            v-if="columns[6].visible"
+          >
+            <template slot-scope="r"
+              >{{
+                getLabel(dict.type.resumption_plan_cycle, `${r.row.planCycle}`)
+              }}
+            </template>
+          </el-table-column>
+
+          <el-table-column
+            prop="count"
+            label="检查次数"
+            v-if="columns[6].visible"
+          ></el-table-column>
+
+          <el-table-column
+            prop="planExec"
+            label="状态"
+            width="80px"
+            v-if="columns[6].visible"
+          >
+            <template slot-scope="r"
+              >{{
+                getLabel(dict.type.resumption_plan_exec, `${r.row.planExec}`)
+              }}
+            </template>
+          </el-table-column>
+
+          <el-table-column
+            prop="modifiedName"
+            label="修改人"
+            v-if="columns[6].visible"
+          ></el-table-column>
+
+          <el-table-column
+            prop="planStatus"
+            label="修改时间"
+            width="80px"
+            v-if="columns[6].visible"
+          >
+            <template slot-scope="r"
+              >{{
+                getLabel(
+                  dict.type.resumption_plan_status,
+                  `${r.row.planStatus}`
+                )
+              }}
+            </template>
+          </el-table-column>
+
+          <el-table-column label="操作">
+            <template slot-scope="r">
+              <el-button
+                size="mini"
+                type="text"
+                icon="el-icon-edit"
+                @click="onEdit(r.row.id)"
+                v-hasPermi="['system:user:edit']"
+                >修改</el-button
+              >
+              <el-button
+                size="mini"
+                type="text"
+                icon="el-icon-delete"
+                @click="onDel(r.row.id, r.row.planName)"
+                v-hasPermi="['system:user:remove']"
+                >删除</el-button
+              >
+              <el-button
+                size="mini"
+                type="text"
+                icon="el-icon-delete"
+                v-if="checkCanPublish(r.row)"
+                @click="showDialogDistribute(r.row)"
+                v-hasPermi="['system:user:remove']"
+                >下发</el-button>
+            </template>
+          </el-table-column>
+        </el-table>
+
+        <pagination
+          v-show="total > 0"
+          :total="total"
+          :page.sync="queryParams.pageNum"
+          :limit.sync="queryParams.pageSize"
+          @pagination="getList"
+        />
+      </el-col>
+    </el-row>
+    <dialog-edit
+      ref="editDialog"
+      @success="getList()"
+      :orgTypeOptions="dict.type.sys_org_type"
+      :ruleTypeOptions="dict.type.rule_type"
+    ></dialog-edit>
+    <DialogDistribute ref="dialogDistribute" @select="sel"></DialogDistribute>
+  </div>
+</template>
+
+<script>
+import DialogDistribute from "@/views/resumption/plan/distribute.vue";
+import OrgTree from "@/components/orgTree";
+import { mapState, mapMutations } from "vuex";
+import DialogEdit from "./dialog.edit";
+import * as api from "@/api/resumption/plan";
+import { statusOptions, getLabel } from "@/views/commonOption";
+import { listRole } from "@/api/system/role";
+export default {
+  name: "resumptionplan",
+  dicts: [
+    "sys_org_type",
+    "rule_type",
+    "resumption_plan_type",
+    "resumption_plan_cycle",
+    "resumption_plan_status",
+    "resumption_plan_exec",
+  ],
+  components: {
+    DialogEdit,
+    OrgTree,
+    DialogDistribute,
+  },
+  data() {
+    const { params, query } = this.$route;
+    return {
+      isShow: false,
+      loading: false,
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      resumptionRoles: [],
+      total: 0,
+      queryParams: {
+        orgId: null,
+        planType: null,
+        resumptionRole: null,
+        planCycle: null,
+        planStatus: null,
+        planName: null,
+        pageNum: 1,
+        pageSize: 10,
+        checkSub:false,
+        ...query,
+      },
+      pageData: [],
+      // 列信息
+      columns: [
+        { key: 0, label: `序号`, visible: true },
+        { key: 1, label: `计划名称`, visible: true },
+        { key: 2, label: `计划类型`, visible: true },
+        { key: 3, label: `计划创建机构`, visible: true },
+        { key: 4, label: `计划所属机构`, visible: true },
+        { key: 5, label: `履职机构类型`, visible: true },
+        { key: 6, label: `履职角色`, visible: true },
+        { key: 7, label: `履职周期`, visible: true },
+        { key: 8, label: `履职次数`, visible: true },
+        { key: 9, label: `履职时间`, visible: true },
+        { key: 10, label: `修改人`, visible: true },
+        { key: 11, label: `计划状态`, visible: true },
+      ],
+    };
+  },
+  props: {},
+  watch: {},
+  computed: {
+    ...mapState([]),
+  },
+  methods: {
+    ...mapMutations([]),
+        //已完成下发的计划不显示下发按钮
+    checkCanPublish(row) {
+      if (row.createOrgType == "1"&&row.children.length==0) {
+        return true
+      }
+      return false;
+    },
+    sel(selectList){
+      this.loading = true;
+      api.distribute(selectList).then((response) => {
+        this.getList();
+          this.loading = false;
+        })
+    },
+    getRolesByOrg() {
+      let params = {
+        // orgId:this.queryParams.orgId
+      };
+      listRole(params).then((res) => {
+        // console.info(res);
+        this.resumptionRoles = res.rows;
+      });
+    },
+    getList() {
+      this.loading = true;
+      console.info(this.dict.type);
+      api
+        .list(this.queryParams)
+        .then((response) => {
+          this.pageData = response.rows;
+          this.total = response.total;
+          this.loading = false;
+        })
+        .catch(() => {
+          this.loading = false;
+        });
+    },
+    getDefaultKey(key) {
+      this.queryParams.orgId = key;
+      this.getList();
+    },
+    handleAdd(id, other = {}) {
+      this.$refs.editDialog.show(id, other);
+    },
+    onEdit(id, other = {}) {
+      this.$refs.editDialog.show(id, other);
+    },
+    showDialogDistribute(row){
+      this.$refs.dialogDistribute.show(row);
+    },
+    async onDel(id, name) {
+      this.$modal
+        .confirm('是否确认删除名称为"' + name + '"的数据项?')
+        .then(function () {
+          return api.delelte(id);
+        })
+        .then(() => {
+          this.getList();
+          this.$modal.msgSuccess("删除成功");
+        })
+        .catch(() => {});
+      // await api.delelte(id);
+      // this.getList();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map((item) => item.userId);
+      this.single = selection.length != 1;
+      this.multiple = !selection.length;
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.queryParams.orgId = undefined;
+      this.$refs.tree.setCurrentKey(null);
+      this.getList();
+    },
+    //单选框状态改变
+    checkChange(state) {
+      this.queryParams.checkSub = state;
+      this.getList();
+    },
+    // 节点单击事件
+    clickTreeNode(data) {
+      this.queryParams.orgId = data.id;
+      this.getList();
+    },
+    getStatusLabel(value) {
+      return getLabel(statusOptions, value);
+    },
+    getLabel(options, value) {
+      return getLabel(options, value);
+    },
+    //apimark//
+  },
+  mounted() {},
+};
+</script>
+
+<style lang="scss" scoped>
+.brand {
+}
+</style>