Parcourir la source

Merge remote-tracking branch 'origin/dev' into dev

jingyuanchao il y a 2 ans
Parent
commit
bdd1b01654

+ 23 - 15
src/api/resumption/ruleManager.js

@@ -1,9 +1,17 @@
 import request from '@/utils/request'
 
 // 查询【请填写功能名称】列表
+export function treeData() {
+  return request({
+    url: '/core/resumption/ruleItem/rule/tree',
+    method: 'get'
+  })
+}
+
+// 查询【请填写功能名称】列表
 export function list(query) {
   return request({
-    url: '/system/resumption/ruleItem/list',
+    url: '/core/resumption/ruleItem/list',
     method: 'get',
     params: query
   })
@@ -12,33 +20,33 @@ export function list(query) {
 // 查询【请填写功能名称】详细
 export function get(id) {
   return request({
-    url: '/system/resumption/ruleItem/' + id,
+    url: '/core/resumption/ruleItem/' + id,
     method: 'get'
   })
 }
 
-// 新增【请填写功能名称】
-export function add(data) {
-  return request({
-    url: '/system/resumption/ruleItem',
-    method: 'post',
-    data: data
-  })
-}
+// // 新增【请填写功能名称】
+// export function add(data) {
+//   return request({
+//     url: '/core/resumption/ruleItem',
+//     method: 'post',
+//     data: data
+//   })
+// }
 
 // 修改【请填写功能名称】
 export function update(data) {
   return request({
-    url: '/system/resumption/ruleItem',
-    method: 'put',
+    url: '/core/resumption/ruleItem',
+    method: 'post',
     data: data
   })
 }
 
 // 删除【请填写功能名称】
-export function delelte(id) {
+export function del(id) {
   return request({
-    url: '/system/resumption/ruleItem/' + id,
+    url: '/core/resumption/ruleItem/' + id,
     method: 'delete'
   })
-}
+}

+ 7 - 0
src/api/system/area.js

@@ -42,3 +42,10 @@ export function delArea(id) {
     method: 'delete'
   })
 }
+
+export function allAreaByOrgtype(orgtype){
+  return request({
+    url: '/system/area/orgType/' + orgtype,
+    method: 'get'
+  })
+}

+ 51 - 0
src/api/system/plan.js

@@ -0,0 +1,51 @@
+import request from '@/utils/request'
+
+// 查询列表监控调阅计划
+export function listPlan(query) {
+  return request({
+    url: '/system/plan/list',
+    method: 'get',
+    params: query
+  })
+}
+
+// 查询详细监控调阅计划
+export function getPlan(id) {
+  return request({
+    url: '/system/plan/' + id,
+    method: 'get'
+  })
+}
+
+// 下发
+export function distribute(id) {
+  return request({
+    url: '/system/plan/distribute/' + id,
+    method: 'get'
+  })
+}
+// 新增监控调阅计划
+export function addPlan(data) {
+  return request({
+    url: '/system/plan',
+    method: 'post',
+    data: data
+  })
+}
+
+// 修改监控调阅计划
+export function updatePlan(data) {
+  return request({
+    url: '/system/plan',
+    method: 'put',
+    data: data
+  })
+}
+
+// 删除监控调阅计划
+export function delPlan(id) {
+  return request({
+    url: '/system/plan/' + id,
+    method: 'delete'
+  })
+}

+ 0 - 11
src/views/resumption/checkManager/api.js

@@ -1,11 +0,0 @@
-import request from '@/utils/request'
-
-// 获取树结构
-export function treeData(data) {
-  return request({
-    url: '/appRule/group',
-    method: 'post',
-    showLoading:true,
-    data
-  })
-}

+ 0 - 208
src/views/resumption/checkManager/dialog.editItem.vue

@@ -1,208 +0,0 @@
-<template>
-  <div class="rule-type">
-    <el-dialog
-      :title="edit == 1 ? '新增检查项' : '编辑检查项'"
-      :visible.sync="dialogVisible"
-      width="60%"
-      :show-close="true"
-      @open="lookdialog"
-      @close="
-        (dialogVisible = false),
-          (formdetail = {
-            id: null,
-            itemName: null,
-            itemDesc: null,
-            itemNum: null,
-            pointDtoList: [],
-          })
-      "
-    >
-      <div>
-        <div class="box">
-          <p>检查项</p>
-          <div class="search">
-            <div>
-              <span><span style="color: red">*</span> 检查项编号:</span>
-              <el-input
-                v-model="formdetail.itemNum"
-                maxlength="200"
-                type="number"
-                placeholder="请输入内容"
-                @blur="check"
-                clearable
-              ></el-input>
-            </div>
-            <div>
-              <span><span style="color: red">*</span> 检查项:</span>
-              <el-input
-                v-model="formdetail.itemName"
-                maxlength="50"
-                placeholder="请输入内容"
-                clearable
-              ></el-input>
-            </div>
-            <div>
-              <span><span style="color: red">*</span> 标准及要求:</span>
-              <el-input
-                v-model="formdetail.itemDesc"
-                maxlength="200"
-                placeholder="请输入内容"
-                clearable
-              ></el-input>
-            </div>
-          </div>
-        </div>
-        <div class="box">
-          <p>检查要点</p>
-          <div style="margin-bottom: 10px">
-            <el-button type="primary" @click="onAddPoint(-1)">新增</el-button>
-          </div>
-          <el-table :data="formdetail.pointDtoList" border style="width: 100%">
-            <el-table-column prop="pointNum" label="检查要点编号" width="100">
-            </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="safeTypeName" label="安防类型">
-            </el-table-column>
-            <el-table-column prop="reformDay" label="整改期限">
-            </el-table-column>
-            <el-table-column prop="dataTypeName" label="数据类型">
-            </el-table-column>
-            <el-table-column prop="degreeRiskName" label="风险等级">
-            </el-table-column>
-            <el-table-column prop="remark" label="备注"> </el-table-column>
-            <el-table-column label="操作" width="140">
-              <template slot-scope="scope">
-                <el-button
-                  type="text"
-                  size="small"
-                  @click="onEdit(scope.$index, scope.row)"
-                  >编辑</el-button
-                >
-                <k-btn-tip
-                  type="text"
-                  :tip="'将删除该条检查要点,确定删除?'"
-                  @click="delitem(scope.$index)"
-                  >删除</k-btn-tip
-                >
-              </template>
-            </el-table-column>
-          </el-table>
-        </div>
-      </div>
-
-      <span slot="footer" class="dialog-footer">
-        <el-button @click="dialogVisible = false">取 消</el-button>
-        <el-button type="primary" @click="onSubmit()">保 存</el-button>
-      </span>
-    </el-dialog>
-    <EditPoint  ref="editDialog" @submit="onPointSubmit"></EditPoint>
-  </div>
-</template>
-
-<script>
-import { mapState, mapMutations } from "vuex";
-import EditPoint from './dialog.editPoint.vue'
-export default {
-  data() {
-    const params = this.$route.params;
-    return {
-      id: params ? params.id : null,
-      dialogVisible: false,
-      formdetail: this.reset(),
-    };
-  },
-  props: {},
-  watch: {},
-  computed: {
-    ...mapState([]),
-  },
-  methods: {
-    ...mapMutations([]),
-    reset() {
-      return {
-        id: null,
-        itemName: null,
-        itemDesc: null,
-        ruleId: null,
-        itemNum: null,
-        pointDtoList: [],
-      };
-    },
-
-    async showdialog(id) {
-      const data = await this.$api.app.detailnorm(id);
-      this.formdetail = data;
-      this.dialogVisible = true;
-    },
-    // 事件
-    onHide() {
-      this.isShow = false;
-      this.formdetail=this.reset();
-    },
-    async onSubmit() {
-      if (this.formdetail.itemDesc == null || this.formdetail.itemDesc == "") {
-        this.$message({
-          message: "请填写检查项标准及要求再提交",
-          type: "error",
-        });
-        return;
-      }
-      if (this.formdetail.itemNum == null || this.formdetail.itemNum == "") {
-        this.$message({
-          message: "请填写检查项检查项编号再提交",
-          type: "error",
-        });
-        return;
-      }
-      if (this.formdetail.itemName == null || this.formdetail.itemName == "") {
-        this.$message({
-          message: "请填写检查项再提交",
-          type: "error",
-        });
-        return;
-      }
-      this.formdetail.ruleId = this.formruleID;
-      await this.$api.app.addnorm(this.formdetail).then((v) => {
-        console.log(v);
-        this.formdetail = {
-          id: null,
-          itemName: null,
-          itemDesc: null,
-          itemNum: null,
-          ruleId: null,
-          pointDtoList: [],
-        };
-        this.dialogVisible = false;
-        this.getlist();
-      });
-    },
-    onclose() {
-      this.dataVisible = false;
-    },
-    onEdit(index,row){
-      this.$refs.editDialog.show(index,row);
-    },
-    onPointSubmit(index,point){
-      if(index>=0){
-        this.$set(this.formdetail.pointDtoList, i, point);
-      }else{
-        this.formdetail.pointDtoList.push(point);
-      }
-    }
-  },
-  mounted() {},
-  components: {EditPoint},
-};
-</script>
-
-<style lang="scss">
-.brand_info {
-  .el-form {
-    width: 600px;
-    padding-top: 40px;
-  }
-}
-</style>

+ 0 - 267
src/views/resumption/checkManager/dialog.editPoint.vue

@@ -1,267 +0,0 @@
-<template>
-  <div class="rule-type">
-    <el-dialog
-      width="50%"
-      title="新增检查要点"
-      :visible.sync="dataVisible"
-      :show-close="false"
-      append-to-body
-    >
-      <div>
-        <el-form
-          ref="form"
-          :model="formData"
-          :rules="formDataRules"
-          label-width="110px"
-          class="formbox"
-        >
-          <el-form-item label="检查要点编号" prop="pointNum">
-            <el-input
-              v-model="formData.pointNum"
-              type="number"
-              laceholder="请输入检查要点编号"
-              @blur="check()"
-              @input="formData.pointNum = Number(formData.pointNum)"
-            ></el-input>
-          </el-form-item>
-          <el-form-item label="检查要点" prop="pointName">
-            <el-input
-              v-model="formData.pointName"
-              placeholder="请输入检查要点"
-              @blur="check()"
-              maxlength="100"
-            ></el-input>
-          </el-form-item>
-          <el-form-item label="检查区域" prop="areaId">
-            <el-select
-              v-model="formData.areaId"
-              placeholder="请选择检查区域"
-              clearable
-              @change="getareaname"
-            >
-              <el-option
-                v-for="item in selectarr1"
-                :key="item.id"
-                :label="item.name"
-                :value="item.id"
-              ></el-option>
-            </el-select>
-          </el-form-item>
-          <!--                <el-form-item label="采集点名称"
-                              prop="nfcBindId">
-                  <el-select v-model="formData.nfcBindId"
-                             placeholder="请选择采集点名称"
-                             clearable>
-                    <el-option v-for="item in selectarr7"
-                               :key="item.id"
-                               :label="item.collectionAreaName"
-                               :value="item.id"></el-option>
-                  </el-select>
-                </el-form-item>-->
-          <el-form-item label="安防类型" prop="safeType">
-            <el-select
-              v-model="formData.safeType"
-              placeholder="请选择安防类型"
-              clearable
-              @change="getsafename"
-            >
-              <el-option
-                v-for="item in selectarr2"
-                :key="item.code"
-                :label="item.name"
-                :value="item.code"
-              ></el-option>
-            </el-select>
-          </el-form-item>
-          <el-form-item label="整改期限" prop="reformDay">
-            <el-select
-              v-model="formData.reformDay"
-              placeholder="请选择整改期限"
-              clearable
-            >
-              <el-option
-                v-for="item in selectarr3"
-                :key="item.code"
-                :label="item.name"
-                :value="item.code"
-              ></el-option>
-            </el-select>
-          </el-form-item>
-          <el-form-item label="查验方法" prop="inspection">
-            <el-select
-              v-model="formData.inspection"
-              placeholder="请选择查验方法"
-              clearable
-            >
-              <el-option
-                v-for="item in selectarr4"
-                :key="item.code"
-                :label="item.name"
-                :value="item.code"
-              ></el-option>
-            </el-select>
-          </el-form-item>
-          <el-form-item label="数据类型" prop="dataType">
-            <el-select
-              v-model="formData.dataType"
-              placeholder="请选择数据类型"
-              clearable
-              @change="getdataname"
-            >
-              <el-option
-                v-for="item in selectarr5"
-                :key="item.id"
-                :label="item.name"
-                :value="item.id"
-              ></el-option>
-            </el-select>
-          </el-form-item>
-          <el-form-item label="时间类型" prop="timeType">
-            <el-select
-              v-model="formData.timeType"
-              placeholder="请选择时间类型"
-              clearable
-            >
-              <el-option
-                v-for="item in selectarr6"
-                :key="item.value"
-                :label="item.name"
-                :value="item.value"
-              ></el-option>
-            </el-select>
-          </el-form-item>
-          <el-form-item label="风险等级" prop="degreeRisk">
-            <k-select
-              v-model="formData.degreeRisk"
-              url="/dict/find/dict"
-              :params="{ dictCode: 'degree_risk' }"
-              placeholder="请选择风险等级"
-              @select="getdegreeRiskname"
-            ></k-select>
-            <!-- <el-select v-model="formData.timeType"
-                             placeholder="请选择风险登记"
-                             clearable>
-                    <el-option v-for="item in selectarr6"
-                               :key="item.value"
-                               :label="item.name"
-                               :value="item.value"></el-option>
-                  </el-select> -->
-          </el-form-item>
-          <el-form-item label="数据来源" prop="businessType">
-            <!-- <k-select-constant name="PointBusinessType"
-                               v-model="formData.businessType"
-                               placeholder="请选择机构类型"></k-select-constant> -->
-            <k-select
-              v-model="formData.businessType"
-              url="/dict/find/dict"
-              :params="{ dictCode: 'point_business_type' }"
-              placeholder="请选择数据来源"
-            ></k-select>
-          </el-form-item>
-          <el-form-item label="备注" prop="remark">
-            <el-input
-              type="textarea"
-              v-model="formData.remark"
-              maxlength="200"
-              clearable
-            ></el-input>
-          </el-form-item>
-        </el-form>
-      </div>
-      <span slot="footer" class="dialog-footer">
-        <el-button @click="dataVisible = false">取 消</el-button>
-        <el-button type="primary" @click="onSubmit()" v-if="id"
-          >{{index>=0?"保 存":"添 加"}}</el-button
-        >
-      </span>
-    </el-dialog>
-  </div>
-</template>
-
-<script>
-import { mapState, mapMutations } from "vuex";
-
-export default {
-  data() {
-    const params = this.$route.params;
-    return {
-      index:  null,
-      dataVisible: false,
-      formData: this.reset(),
-      formDataRules: {
-        pointNum: [{ required: true, message: "请输入检查要点编号" }],
-        pointName: [{ required: true, message: "请输入检查要点" }],
-        areaId: [{ required: true, message: "请选择检查区域" }],
-        reformDay: [{ required: true, message: "请选择整改期限" }],
-        inspection: [{ required: true, message: "请选择查验方法" }],
-        dataType: [{ required: true, message: "请选择数据类型" }],
-        timeType: [{ required: true, message: "请选择时间类型" }],
-        nfcBindId: [{ required: true, message: "请选择采集点名称" }],
-        degreeRisk: [{ required: true, message: "请选择风险等级" }],
-      },
-    };
-  },
-  props: {},
-  watch: {},
-  computed: {
-    ...mapState([]),
-  },
-  methods: {
-    ...mapMutations([]),
-    reset() {
-      return {
-        pointNum: null,
-        pointName: null,
-        areaId: null,
-        areaName: null,
-        safeType: null,
-        safeTypeName: null,
-        reformDay: null,
-        inspection: null,
-        dataType: null,
-        dataTypeName: null,
-        timeType: 0,
-        remark: null,
-        id: null,
-        nfcBindId: null,
-        ruleId: null,
-      };
-    },
-    async show(index,data) {
-      if(index>=0){
-        this.index = index;
-        this.formData=data;
-      }else{
-        this.index=-1;
-        this.formData=this.reset();
-      }
-      
-      this.dataVisible = true;
-    },
-    onSubmit(){
-      this.$refs.form.validate((isValidate) => {
-        if (!isValidate) return;
-        let obj = {};
-        obj = {...this.formData};
-        this.$emit("submit",obj);
-        this.dataVisible = false;
-      });
-    },
-    // 事件
-    onHide() {
-      this.isShow = false;
-    },
-  },
-  mounted() {},
-  components: {},
-};
-</script>
-
-<style lang="scss">
-.brand_info {
-  .el-form {
-    width: 600px;
-    padding-top: 40px;
-  }
-}
-</style>

+ 0 - 174
src/views/resumption/checkManager/index.vue

@@ -1,174 +0,0 @@
-<template>
-  <div class="app-container">
-    <!-- 搜索 -->
-    <el-form>
-      <el-form-item prop="ruleName" label="规范名称">
-        <el-input
-          v-model="search.ruleName"
-          placeholder="请输入规范名称"
-          clearable
-        />
-      </el-form-item>
-      <el-form-item prop="ruleTypeId" label="规范类型">
-        <el-select
-          v-model="search.ruleTypeId"
-          url="/dict/find/dict"
-          :params="{ dictCode: 'rule_type' }"
-          placeholder="请选择规范类型"
-        ></el-select>
-      </el-form-item>
-      <el-form-item prop="orgType" label="受检对象">
-        <el-select
-          prop="orgType"
-          label="受检对象"
-          v-model="search.orgType"
-          placeholder="请选择受检对象"
-          clearable
-        >
-          <el-option
-            v-for="item in options"
-            :key="item.value"
-            :label="item.label"
-            :value="item.value"
-          >
-          </el-option>
-        </el-select>
-      </el-form-item>
-    </el-form>
-
-
-
-    <!-- 按钮 -->
-
-      <div style="margin-bottom: 20px;">
-        <el-button type="primary" size="mini" @click="onEdit()">新增 </el-button>
-      </div>
-      <!-- <k-btn-tip type="danger" @click="onDel()" class="ml-2">批量删除</k-btn-tip> -->
-
-
-
-      <!--        <el-table-column prop="id" label="序号"></el-table-column>-->
-    <el-table>
-      <el-table-column type="index" label="序号"></el-table-column>
-      <el-table-column prop="ruleName" label="规范名称"></el-table-column>
-      <el-table-column prop="ruleTypeName" label="规范类型"></el-table-column>
-      <el-table-column prop="orgTypeText" label="受检对象"></el-table-column>
-      <el-table-column prop="orgName" label="发布机构"></el-table-column>
-      <el-table-column prop="ruleStatus" label="状态">
-        <template slot-scope="r">
-          <span>{{ r.row.ruleStatus == 0 ? "启用" : "禁用" }}</span>
-        </template>
-      </el-table-column>
-      <el-table-column prop="remark" label="备注"></el-table-column>
-      <el-table-column label="操作">
-        <template slot-scope="r">
-          <el-button type="text" @click="onEdit(r.row.id)">编辑 </el-button>
-          <k-btn-tip type="text" @click="onDel(r.row.id)">删除 </k-btn-tip>
-        </template>
-      </el-table-column>
-    </el-table>
-
-
-    <!-- 编辑 -->
-    <dialog-edit ref="editDialog" @success="refresh(true)"></dialog-edit>
-
-  </div>
-</template>
-
-<script>
-import KSearchTable from '../../../components/table/search.table'
-import { mapState, mapMutations } from "vuex";
-import DialogEdit from "./dialog.editItem.vue";
-
-export default {
-  name: "ruletype",
-  components: {
-    KSearchTable,
-    DialogEdit,
-  },
-  data() {
-    const { params, query } = this.$route;
-    return {
-      isShow: false,
-      search: {
-        ruleName: null,
-        ruleTypeId: null,
-        orgType: null,
-        ...query,
-      },
-      options: [
-        {
-          label: "一级分行",
-          value: 0,
-        },
-        {
-          value: 1,
-          label: "二级分行",
-        },
-        {
-          value: 2,
-          label: "一级支行",
-        },
-        {
-          value: 3,
-          label: "营业网点",
-        },
-        {
-          value: 4,
-          label: "离行自助银行",
-        },
-        {
-          value: 5,
-          label: "金库",
-        },
-        {
-          value: 6,
-          label: "办公大楼",
-        },
-        {
-          value: 7,
-          label: "监控中心",
-        },
-        {
-          value: 8,
-          label: "园区",
-        },
-        {
-          value: 9,
-          label: "其他",
-        },{
-          value: 10,
-          label: "现金中心",
-        },
-      ],
-    };
-  },
-  props: {},
-  watch: {},
-  computed: {
-    //...mapState([]),
-  },
-  methods: {
-    //...mapMutations([]),
-    refresh(isCurrent) {
-      this.$refs.st[isCurrent ? "refresh" : "search"]();
-    },
-
-    //
-    onEdit(id, other = {}) {
-      this.$refs.editDialog.show(id, other);
-    },
-    async onDel(id) {
-      await this.$api.app.delRule(id);
-      this.refresh(true);
-    },
-    //apimark//
-  },
-  mounted() {},
-};
-</script>
-
-<style lang="scss">
-.brand {
-}
-</style>

+ 0 - 1
src/views/resumption/rule/index.vue

@@ -300,7 +300,6 @@ export default {
     },
     /** 重置按钮操作 */
     resetQuery() {
-      this.dateRange = [];
       this.resetForm("queryForm");
       this.queryParams.orgId = undefined;
       this.$refs.tree.setCurrentKey(null);

+ 147 - 0
src/views/resumption/ruleManager/dialog.editItem.vue

@@ -0,0 +1,147 @@
+<template>
+  <div class="rule-type">
+    <el-dialog
+      :title="!formData.id ? '新增检查项' : '编辑检查项'"
+      :visible.sync="dialogVisible"
+      width="60%"
+      :show-close="true"
+      @close="onHide"
+    >
+      <div>
+        <div class="box">
+          <p>履职项</p>
+          <el-form
+            ref="form"
+            :model="formData"
+            :rules="formDataRules"
+            label-width="110px"
+          >
+            <el-form-item prop="name" label="履职项">
+              <el-input
+                v-model="formData.name"
+                :maxlength="50"
+                name="name"
+                placeholder="请输入履职项"
+                clearable
+              />
+            </el-form-item>
+          </el-form>
+        </div>
+        <div class="box">
+          <p>履职内容</p>
+          <div style="margin-bottom: 10px">
+            <el-button type="primary" @click="onAddPoint(-1)">新增</el-button>
+          </div>
+          <el-table :data="formData.pointDtoList" border style="width: 100%">            
+            <el-table-column prop="name" label="履职要点">
+            </el-table-column>
+            <el-table-column prop="areaName" label="履职区域">
+            </el-table-column>            
+            <el-table-column label="操作" width="140">
+              <template slot-scope="scope">
+                <el-button
+                  type="text"
+                  size="small"
+                  @click="onEdit(scope.$index, scope.row)"
+                  >编辑</el-button
+                >
+                <k-btn-tip
+                  type="text"
+                  :tip="'确定删除该条履职内容?'"
+                  @click="delitem(scope.$index)"
+                  >删除</k-btn-tip
+                >
+              </template>
+            </el-table-column>
+          </el-table>
+        </div>
+      </div>
+
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dialogVisible = false">取 消</el-button>
+        <el-button type="primary" @click="onSubmit()">保 存</el-button>
+      </span>
+    </el-dialog>
+    <EditPoint ref="editDialog" @submit="onPointSubmit"></EditPoint>
+  </div>
+</template>
+
+<script>
+import { mapState, mapMutations } from "vuex";
+import EditPoint from "./dialog.editPoint.vue";
+import { get, update } from "@/api/resumption/ruleManager.js";
+
+export default {
+  data() {
+    return {
+      dialogVisible: false,
+      formData: this.reset(),
+      formDataRules:{
+      name: [{ required: true, message: "请输入履职项" }],
+      }
+    };
+  },
+  props: {},
+  watch: {},
+  computed: {
+    ...mapState([]),
+  },
+  methods: {
+    ...mapMutations([]),
+    reset() {
+      return {
+        id: null,
+        nme: null,
+        ruleId: null,
+        pointDtoList: [],
+      };
+    },
+
+    async show(id) {
+      const data = id ? await get(id) : this.reset();
+      this.formData = data;
+      this.dialogVisible = true;
+    },
+    // 事件
+    onHide() {
+      this.formData = this.reset();
+    },
+    async onSubmit() {
+      this.formData.ruleId = this.formruleID;
+      await update(this.formData).then((v) => {
+        console.log(v);
+        this.formData = this.reset();
+        this.dialogVisible = false;
+        this.getlist();
+      });
+    },
+    onclose() {
+      this.dataVisible = false;
+    },
+    onEdit(index, row) {
+      this.$refs.editDialog.show(index, row);
+    },
+    onPointSubmit(index, point) {
+      if (index >= 0) {
+        this.$set(this.formData.pointDtoList, i, point);
+      } else {
+        this.formData.pointDtoList.push(point);
+      }
+    },
+    delitem(val) {
+      this.formdetail.pointDtoList.splice(val, 1);
+    },
+  },
+  mounted() {},
+  components: { EditPoint },
+};
+</script>
+
+<style lang="scss">
+.brand_info {
+  .el-form {
+    width: 600px;
+    padding-top: 40px;
+  }
+}
+</style>

+ 159 - 0
src/views/resumption/ruleManager/dialog.editPoint.vue

@@ -0,0 +1,159 @@
+<template>
+  <div class="rule-type">
+    <el-dialog
+      width="50%"
+      :title="index >= 0 ? '编辑履职内容' : '新增履职内容'"
+      :visible.sync="dataVisible"
+      :show-close="false"
+      append-to-body
+    >
+      <div>
+        <el-form
+          ref="form"
+          :model="formData"
+          :rules="formDataRules"
+          label-width="110px"
+          class="formbox"
+        >
+          <!-- <el-form-item label="检查要点编号" prop="pointNum">
+            <el-input
+              v-model="formData.pointNum"
+              type="number"
+              laceholder="请输入检查要点编号"
+              @blur="check()"
+              @input="formData.pointNum = Number(formData.pointNum)"
+            ></el-input>
+          </el-form-item> -->
+          <el-form-item label="履职内容" prop="pointName">
+            <el-input
+              v-model="formData.pointName"
+              placeholder="请输入履职内容"
+              @blur="check()"
+              maxlength="100"
+            ></el-input>
+          </el-form-item>
+          <el-form-item label="履职区域" prop="areaId">
+            <el-select
+              v-model="formData.areaId"
+              placeholder="请选择履职区域"
+              clearable
+            >
+              <el-option
+                v-for="item in areas"
+                :key="item.id"
+                :label="item.name"
+                :value="item.id"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="数据来源" prop="businessType">
+            <el-select
+              v-model="formData.businessType"
+              placeholder="请选择数据来源"
+              clearable
+            >
+              <el-option
+                v-for="item in dict.type.point_data_source"
+                :key="item.id"
+                :label="item.name"
+                :value="item.id"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item label="备注" prop="remark">
+            <el-input
+              type="textarea"
+              v-model="formData.remark"
+              maxlength="200"
+              clearable
+            ></el-input>
+          </el-form-item>
+        </el-form>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="dataVisible = false">取 消</el-button>
+        <el-button type="primary" @click="onSubmit()" v-if="index>=0">{{
+          index >= 0 ? "保 存" : "添 加"
+        }}</el-button>
+      </span>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { mapState, mapMutations } from "vuex";
+import {allAreaByOrgtype} from '@/api/system/area'
+export default {
+  dicts:['point_data_source'],
+  data() {
+    return {
+      index: null,
+      dataVisible: false,
+      formData: this.reset(),
+      formDataRules: {
+        name: [{ required: true, message: "请输入履职内容" }],
+        areaId: [{ required: true, message: "请选择履职区域" }],
+      },
+      areas:[]
+    };
+  },
+  props: {
+    orgType:{
+      type:String
+    }
+  },
+  watch: {},
+  computed: {
+    ...mapState([]),
+  },
+  methods: {
+    ...mapMutations([]),
+    reset() {
+      return {
+        id: null,
+        name: null,
+        areaId: null,
+        businessType: null,
+        remark: null,
+      };
+    },
+    async show(index, data) {
+      if (index >= 0) {
+        this.index = index;
+        this.formData = data;
+      } else {
+        this.index = -1;
+        this.formData = this.reset();
+      }
+      allAreaByOrgtype(this.orgType).then(d=>{
+        this.areas=d;
+      })
+      this.dataVisible = true;
+    },
+    onSubmit() {
+      this.$refs.form.validate((isValidate) => {
+        if (!isValidate) return;
+        let obj = {};
+        obj = { ...this.formData };
+        this.$emit("submit", obj);
+        this.dataVisible = false;
+      });
+    },
+    // 事件
+    onHide() {
+      this.isShow = false;
+    },
+  },
+  mounted() {},
+  components: {},
+};
+</script>
+
+<style lang="scss">
+.brand_info {
+  .el-form {
+    width: 600px;
+    padding-top: 40px;
+  }
+}
+</style>

+ 391 - 0
src/views/resumption/ruleManager/index.vue

@@ -0,0 +1,391 @@
+<!-- 动环设备管理 -->
+<template>
+  <div class="app-container">
+    <el-row :gutter="20">
+      <el-col :span="4" :xs="24">
+        <el-input placeholder="输入关键字进行过滤" v-model="filterText">
+        </el-input>
+        <el-tree
+          class="filter-tree"
+          :data="treedata"
+          node-key="value"
+          highlight-current
+          default-expand-all
+          :expand-on-click-node="false"
+          :filter-node-method="filterNode"
+          accordion
+          @node-click="clicktreenode"
+          ref="tree"
+        >
+          <span class="custom-tree-node" slot-scope="{ node, data }">
+            <span :title="data.label" class="show-ellipsis">{{
+              data.label
+            }}</span>
+          </span>
+        </el-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="ruleItemName" label="履职项">
+            <el-input
+              v-model="queryParams.ruleItemName"
+              placeholder="请输入内容"
+              maxlength="50"
+              clearable
+              @input="refresh"
+            ></el-input>
+          </el-form-item>
+          <el-form-item prop="pointName" label="履职内容">
+            <el-input
+              v-model="queryParams.pointName"
+              placeholder="请输入履职内容"
+              maxlength="50"
+              clearable
+              @input="refresh"
+            ></el-input>
+          </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" @click="onEdit()">新 增</el-button>
+            <el-button type="warning" @click="dakai">{{
+              expandAll ? "收起所有行" : "展开所有行"
+            }}</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
+          :data="tableData"
+          border
+          :default-expand-all="expandAll"
+          v-if="fresh"
+          style="width: 100%"
+        >
+          <el-table-column type="expand">
+            <template slot-scope="props">
+              <el-table
+                :data="props.row.pointDtoList"
+                border
+                style="width: 100%"
+              >
+                <el-table-column
+                  prop="name"
+                  label="履职内容"
+                  v-if="columns[3].visible"
+                >
+                </el-table-column>
+                <el-table-column
+                  prop="areaName"
+                  label="履职区域"
+                  v-if="columns[4].visible"
+                >
+                </el-table-column>
+                <!-- <el-table-column prop="dataTypeName" label="数据类型">
+                </el-table-column>
+                <el-table-column prop="degreeRiskName" label="风险等级">
+                </el-table-column> -->
+              </el-table>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="itemNum"
+            label="序号"
+            v-if="columns[0].visible"
+          >
+          </el-table-column>
+          <el-table-column
+            prop="itemName"
+            label="履职项"
+            v-if="columns[1].visible"
+          >
+          </el-table-column>
+          <!-- <el-table-column prop="itemDesc" label="标准及要求">
+          </el-table-column> -->
+          <el-table-column
+            prop="pointNums"
+            label="履职内容数量"
+            v-if="columns[2].visible"
+          >
+          </el-table-column>
+          <el-table-column label="操作" width="140">
+            <template slot-scope="scope">
+              <el-button
+                type="text"
+                size="small"
+                @click="showdialog(scope.row.id)"
+                >编辑</el-button
+              >
+              <k-btn-tip
+                type="text"
+                :tip="'将删除履职项及其下所有履职内容,确定删除?'"
+                @click="deldata(scope.row.id)"
+                >删除</k-btn-tip
+              >
+            </template>
+          </el-table-column>
+        </el-table>
+
+        <el-pagination
+          @size-change="handleSizeChange"
+          @current-change="handleCurrentChange"
+          :current-page="queryParams.currentPage"
+          :page-sizes="[10, 20, 30, 40, 50, 100]"
+          :page-size="queryParams.pagesize"
+          layout="total, sizes, prev, pager, next, jumper"
+          :total="total"
+        >
+        </el-pagination>
+      </el-col>
+    </el-row>
+    <dialog-edit ref="dialogEdit" :rule="rule"></dialog-edit>
+  </div>
+</template>
+
+<script>
+import { mapState, mapMutations } from "vuex";
+import { list, treeData,del } from "@/api/resumption/ruleManager.js";
+import DialogEdit from "./dialog.editItem.vue";
+
+export default {
+  name: "resumptionRuleManager",
+  props: [],
+  data() {
+    return {
+      queryParams: {
+        ruleId: null,
+        ruleItemName: null,
+        pointName: null,
+        currentPage: 1,
+        pagesize: 10,
+      },
+      filterText:null,
+      showSearch: true,
+      rule: null, //选中的内容库
+      expandAll: false,
+      fresh: true,
+      // checked: false,
+      // item: {
+      //   label: "",
+      //   value: "",
+      // },
+      treedata: [],
+      tableData: [],
+
+      total: 0,
+
+      // defaultProps: {
+      //   children: "children",
+      //   label: "label",
+      // },
+      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 },
+      ],
+    };
+  },
+
+  components: { DialogEdit },
+
+  computed: {
+    // ...mapState(["org", "loginUser"]),
+  },
+
+  watch: {
+    filterText(val) {
+      this.$refs.tree.filter(val);
+    },
+  },
+
+  async created() {
+    // this.OID = this.loginUser.org.id;
+    await this.gettreelist();
+    // await this.getList()
+    // await this.getassetlist();
+  },
+
+  mounted() {},
+
+  methods: {
+    ...mapMutations([]),
+    dakai() {
+      this.expandAll = !this.expandAll;
+      this.fresh = false;
+      this.$nextTick(() => {
+        this.fresh = true;
+      });
+    },
+
+    filterNode(value, data) {
+      if (!value) return true;
+      return data.label.indexOf(value) !== -1;
+    },
+    async refresh() {
+      this.currentPage = 1;
+      this.getList();
+    },
+    async getList() {
+      const data = await list(this.queryParams);
+      this.tableData = data.rows;
+      this.total = data.total;
+      this.expandAll = false;
+    },
+    async gettreelist() {
+      await treeData().then((v) => {
+        this.treedata = v;
+      });
+    },
+    handleSizeChange(val) {
+      this.pagesize = val;
+      this.getList();
+    },
+    handleCurrentChange(val) {
+      this.currentPage = val;
+      this.getList();
+    },
+    clicktreenode(data) {
+      this.expandAll = false;
+      this.fresh = false;
+      this.$nextTick(() => {
+        this.fresh = true;
+      });
+      if (data.isRule) {
+        this.queryParams.ruleId = data.id;
+        this.rule = data;
+        this.refresh();
+      }
+    },   
+    async deldata(val) {
+      await del(val);
+      this.getList();
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.resetForm("queryForm");
+      this.queryParams.ruleId = undefined;
+      this.$refs.tree.setCurrentKey(null);
+      this.tableData = [];
+    },
+  },
+};
+</script>
+<style lang="scss" scoped>
+.show-ellipsis {
+  display: block;
+  width: 150px;
+  overflow: hidden;
+  white-space: nowrap;
+  text-overflow: ellipsis;
+}
+.search {
+  display: flex;
+  flex-wrap: wrap;
+  & > div {
+    width: 25%;
+    display: flex;
+    align-items: center;
+    margin-bottom: 12px;
+    & > span:first-child {
+      display: inline-block;
+      min-width: 70px;
+      font-size: 14px;
+      color: #606266;
+    }
+    &:nth-child(2),
+    &:nth-child(3) {
+      margin-left: 15px;
+    }
+    &:nth-child(3) > span {
+      display: inline-block;
+      min-width: 100px;
+      font-size: 14px;
+      color: #606266;
+    }
+    &:nth-child(1) > span {
+      display: inline-block;
+      min-width: 100px;
+      font-size: 14px;
+      color: #606266;
+    }
+    &:nth-child(1) {
+    }
+  }
+}
+.box {
+  border: 1px solid #eee;
+  margin-bottom: 20px;
+  border-radius: 5px;
+  padding: 10px;
+  min-height: 120px;
+  & > p {
+    font-size: 16px;
+    font-weight: bold;
+    margin-bottom: 15px;
+  }
+}
+.item {
+  margin-bottom: 14px;
+}
+::v-deep .el-table__expanded-cell[class*="cell"] {
+  padding: 0;
+  padding-left: 47px;
+}
+::v-deep .formbox {
+  display: flex;
+  flex-wrap: wrap;
+  .el-form-item {
+    width: 50%;
+  }
+}
+</style>

+ 18 - 7
src/views/system/check/index.vue

@@ -4,11 +4,16 @@
       <el-form-item label="采集点名称" prop="checkName">
         <el-input v-model="queryParams.checkName" placeholder="请输入采集点名称" clearable @keyup.enter.native="handleQuery" />
       </el-form-item>
-      <el-form-item label="区域id" prop="areaId">
-        <el-input v-model="queryParams.areaId" placeholder="请输入区域id" clearable @keyup.enter.native="handleQuery" />
+
+      <el-form-item label="区域" prop="areaId">
+        <el-select v-model="queryParams.areaId" placeholder="请选择">
+          <el-option v-for="item in areaList" :key="item.id" :label="item.name" :value="item.id"></el-option>
+        </el-select>
       </el-form-item>
-      <el-form-item label="机构id" prop="orgId">
-        <el-input v-model="queryParams.orgId" placeholder="请输入机构id" clearable @keyup.enter.native="handleQuery" />
+
+      <el-form-item label="归属部门" prop="orgId">
+        <treeselect style="width: 160px;" v-model="queryParams.orgId" :options="deptOptions" :show-count="true"
+          :normalizer="tenantIdnormalizer" :props="{ checkStrictly: true, label: 'name' }" placeholder="请选择归属部门" />
       </el-form-item>
 
       <el-form-item>
@@ -99,6 +104,7 @@ import { listCheck, getCheck, delCheck, addCheck, updateCheck } from "@/api/syst
 import treeselect from '@riophae/vue-treeselect'
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 import { deptTreeSelect } from "@/api/system/public";
+import { listArea } from "@/api/system/area";
 export default {
   name: "Check",
 
@@ -124,6 +130,8 @@ export default {
       deptOptions: null,
       // 总条数
       total: 0,
+      //区域集合
+      areaList: [],
       // 区域采集点表格数据
       checkList: [],
       // 弹出层标题
@@ -144,12 +152,15 @@ export default {
       // 表单校验
       rules: {
       },
-      defaultKeys:[]
+      defaultKeys: []
     };
   },
   created() {
     this.getList();
     this.getDeptTree();
+    listArea().then(response => {
+      this.areaList = response.rows;
+    })
   },
   methods: {
     /** 查询区域采集点列表 */
@@ -166,8 +177,8 @@ export default {
       deptTreeSelect().then(response => {
         this.deptOptions = response.data;
         console.log(this.deptOptions, ' this.deptOptions')
-        this.defaultKeys.push(response.data[0].id);
-        this.queryParams.orgId = response.data[0].id;
+        // this.defaultKeys.push(response.data[0].id);
+        // this.queryParams.orgId = response.data[0].id;
         this.handleQuery();
       });
     },

+ 6 - 5
src/views/system/logininfor/index.vue

@@ -100,7 +100,7 @@
 
     <el-table ref="tables" v-loading="loading" :data="list" @selection-change="handleSelectionChange" :default-sort="defaultSort" @sort-change="handleSortChange">
       <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="访问编号" align="center" prop="infoId" />
+      <el-table-column label="访问编号" width="80" align="center" prop="infoId" />
       <el-table-column label="用户名称" align="center" prop="userName" :show-overflow-tooltip="true" sortable="custom" :sort-orders="['descending', 'ascending']" />
       <el-table-column label="地址" align="center" prop="ipaddr" width="130" :show-overflow-tooltip="true" />
       <el-table-column label="登录状态" align="center" prop="status">
@@ -108,12 +108,13 @@
           <dict-tag :options="dict.type.sys_common_status" :value="scope.row.status"/>
         </template>
       </el-table-column>
-      <el-table-column label="描述" align="center" prop="msg" :show-overflow-tooltip="true" />
-      <el-table-column label="访问时间" align="center" prop="accessTime" sortable="custom" :sort-orders="['descending', 'ascending']" width="180">
+      <el-table-column prop="platformType" label="平台类型" :show-overflow-tooltip="true" width="160">
         <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.accessTime) }}</span>
+          <dict-tag :options="dict.type.sys_platform_type" :value="scope.row.platformType"/>
         </template>
       </el-table-column>
+      <el-table-column label="访问时间" align="center" prop="accessTime" width="180"/>
+      <el-table-column label="描述" align="center" prop="msg" :show-overflow-tooltip="true" />
     </el-table>
 
     <pagination
@@ -131,7 +132,7 @@ import { list, delLogininfor, cleanLogininfor, unlockLogininfor } from "@/api/sy
 
 export default {
   name: "Logininfor",
-  dicts: ['sys_common_status'],
+  dicts: ['sys_common_status','sys_platform_type'],
   data() {
     return {
       // 遮罩层

+ 14 - 1
src/views/system/menu/index.vue

@@ -57,6 +57,11 @@
       :tree-props="{children: 'children', hasChildren: 'hasChildren'}"
     >
       <el-table-column prop="menuName" label="菜单名称" :show-overflow-tooltip="true" width="160"></el-table-column>
+      <el-table-column prop="platformType" label="平台类型" :show-overflow-tooltip="true" width="160">
+        <template slot-scope="scope">
+          <dict-tag :options="dict.type.sys_platform_type" :value="scope.row.platformType"/>
+        </template>
+      </el-table-column>
       <el-table-column prop="icon" label="图标" align="center" width="100">
         <template slot-scope="scope">
           <svg-icon :icon-class="scope.row.icon" />
@@ -117,6 +122,14 @@
               />
             </el-form-item>
           </el-col>
+          <el-col :span="14">
+            <el-form-item label="平台类型" prop="platformType">
+              <el-radio-group v-model="form.platformType">
+                <el-radio v-for="dict in dict.type.sys_platform_type" :key="`${dict.value}`"
+                          :label="dict.value">{{ dict.label }}</el-radio>
+              </el-radio-group>
+            </el-form-item>
+          </el-col>
           <el-col :span="24">
             <el-form-item label="菜单类型" prop="menuType">
               <el-radio-group v-model="form.menuType">
@@ -273,7 +286,7 @@ import IconSelect from "@/components/IconSelect";
 
 export default {
   name: "Menu",
-  dicts: ['sys_show_hide', 'sys_normal_disable'],
+  dicts: ['sys_show_hide', 'sys_normal_disable','sys_platform_type'],
   components: { Treeselect, IconSelect },
   data() {
     return {

+ 1 - 5
src/views/system/operlog/index.vue

@@ -119,11 +119,7 @@
           <dict-tag :options="dict.type.sys_common_status" :value="scope.row.status"/>
         </template>
       </el-table-column>
-      <el-table-column label="操作日期" align="center" prop="operTime" width="180" sortable="custom" :sort-orders="['descending', 'ascending']">
-        <template slot-scope="scope">
-          <span>{{ parseTime(scope.row.operTime) }}</span>
-        </template>
-      </el-table-column>
+      <el-table-column label="操作日期" align="center" prop="operTime" width="180" />
       <el-table-column label="消耗时间" align="center" prop="costTime" width="110" :show-overflow-tooltip="true" sortable="custom" :sort-orders="['descending', 'ascending']">
         <template slot-scope="scope">
           <span>{{ scope.row.costTime }}毫秒</span>

+ 318 - 0
src/views/system/plan/index.vue

@@ -0,0 +1,318 @@
+<template>
+  <div class="app-container">
+    <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
+
+      <el-form-item label="机构类型" prop="orgType">
+        <el-select style="width: 100%;" v-model="queryParams.orgType" placeholder="请选择">
+          <el-option v-for="dict in dict.type.sys_org_type" :key="dict.value" :label="dict.label"
+            :value="`${dict.value}`"></el-option>
+        </el-select>
+      </el-form-item>
+
+
+      <el-form-item label="调阅角色" prop="roleId">
+        <el-select v-model="queryParams.roleId" placeholder="请选择">
+          <el-option v-for="item in roleList" :key="item.id" :label="item.roleName" :value="item.id"></el-option>
+        </el-select>
+      </el-form-item>
+
+      <el-form-item label="调阅周期" prop="planCycle">
+        <el-select style="width: 100%;" v-model="queryParams.planCycle" placeholder="请选择">
+          <el-option v-for="dict in dict.type.sys_access_cycle" :key="dict.value" :label="dict.label"
+            :value="`${dict.value}`"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="状态" prop="planStatus">
+        <el-select style="width: 100%;" v-model="queryParams.planStatus" placeholder="请选择">
+          <el-option v-for="dict in dict.type.sys_normal_disable" :key="dict.value" :label="dict.label"
+            :value="`${dict.value}`"></el-option>
+        </el-select>
+      </el-form-item>
+    
+      <el-form-item label="计划名称" prop="planName">
+        <el-input v-model="queryParams.planName" placeholder="请输入计划名称" clearable @keyup.enter.native="handleQuery" />
+      </el-form-item>
+
+      <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>
+
+    <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:plan: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:plan: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:plan:remove']">删除</el-button>
+      </el-col>
+      <el-col :span="1.5">
+        <el-button type="warning" plain icon="el-icon-download" size="mini" @click="handleExport"
+          v-hasPermi="['system:plan:export']">导出</el-button>
+      </el-col> -->
+      <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
+    </el-row>
+
+    <el-table v-loading="loading" :data="planList" @selection-change="handleSelectionChange">
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="计划所属机构" align="center" prop="orgName" />
+      <el-table-column label="计划名称" align="center" prop="planName" />
+  
+      <el-table-column label="机构类型" align="center" key="orgType" prop="orgType"  width="80">
+            <template slot-scope="scope">
+              <dict-tag :options="dict.type.sys_org_type" :value="scope.row.orgType" />
+            </template>
+          </el-table-column>
+      <el-table-column label="调阅角色" align="center" prop="roleName" />
+   
+      <el-table-column label="调阅周期" align="center" key="planCycle" prop="planCycle"  width="80">
+            <template slot-scope="scope">
+              <dict-tag :options="dict.type.sys_access_cycle" :value="scope.row.planCycle" />
+            </template>
+          </el-table-column>
+      <el-table-column label="调阅频次" align="center" prop="planFrequency" />
+    
+      <el-table-column label="计划状态" align="center" key="planStatus" prop="planStatus"  width="80">
+            <template slot-scope="scope">
+              <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.planStatus" />
+            </template>
+          </el-table-column>
+      <el-table-column label="修改人" align="center" prop="updateBy" />
+      <el-table-column label="修改时间" align="center" prop="updateTime" />
+      <el-table-column label="备注" align="center" prop="description" />
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <template slot-scope="scope">
+          <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
+            v-hasPermi="['system:plan:edit']">修改</el-button>
+          <el-button size="mini" type="text" icon="el-icon-add" @click="handDistribute(scope.row)"
+            v-hasPermi="['system:plan:add']">下发</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-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+      <el-form ref="form" :model="form" :rules="rules" label-width="80px">
+        <el-form-item label="计划名称" prop="planName">
+          <el-input v-model="form.planName" placeholder="请输入计划名称" />
+        </el-form-item>
+       
+        <el-form-item label="调阅机构类型" prop="orgType">
+        <el-select style="width: 100%;" v-model="form.orgType" placeholder="请选择">
+          <el-option v-for="dict in dict.type.sys_org_type" :key="dict.value" :label="dict.label"
+            :value="`${dict.value}`"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="调阅周期" prop="planCycle">
+        <el-select style="width: 100%;" v-model="form.planCycle" placeholder="请选择">
+          <el-option v-for="dict in dict.type.sys_access_cycle" :key="dict.value" :label="dict.label"
+            :value="`${dict.value}`"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item label="调阅角色" prop="roleId">
+        <el-select style="width: 100%;" v-model="form.roleId" placeholder="请选择">
+          <el-option v-for="item in roleList" :key="item.id" :label="item.roleName" :value="item.id"></el-option>
+        </el-select>
+      </el-form-item>
+        <el-form-item label="调阅频次" prop="planFrequency">
+          <el-input v-model="form.planFrequency" placeholder="请输入调阅频次" />
+        </el-form-item>
+        <el-form-item label="备注" prop="description">
+          <el-input v-model="form.description" type="textarea" placeholder="请输入内容" />
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitForm">确 定</el-button>
+        <el-button @click="cancel">取 消</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { listPlan, getPlan, delPlan, addPlan, updatePlan,distribute } from "@/api/system/plan";
+import { listRole } from "@/api/system/role";
+export default {
+  name: "Plan",
+  dicts: ['sys_org_type','sys_access_cycle','sys_normal_disable'],
+  data() {
+    return {
+      // 遮罩层
+      loading: true,
+      // 选中数组
+      ids: [],
+      names:[],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      // 总条数
+      total: 0,
+      // 监控调阅计划表格数据
+      planList: [],
+      //角色列表
+      roleList: [],
+      // 弹出层标题
+      title: "",
+      // 是否显示弹出层
+      open: false,
+      // 查询参数
+      queryParams: {
+        pageNum: 1,
+        pageSize: 10,
+        planName: null,
+        orgId: null,
+        orgPath: null,
+        orgName: null,
+        orgType: null,
+        roleId: null,
+        planCycle: null,
+        planFrequency: null,
+        planStatus: null,
+        description: null,
+        isDeleted: null
+      },
+      // 表单参数
+      form: {},
+      // 表单校验
+      rules: {
+      }
+    };
+  },
+  created() {
+    this.getList();
+    listRole().then(response => {
+      this.roleList = response.rows;
+    });
+
+  },
+  methods: {
+    /** 查询监控调阅计划列表 */
+    getList() {
+      this.loading = true;
+      listPlan(this.queryParams).then(response => {
+        this.planList = response.rows;
+        this.total = response.total;
+        this.loading = false;
+      });
+    },
+    // 取消按钮
+    cancel() {
+      this.open = false;
+      this.reset();
+    },
+    // 表单重置
+    reset() {
+      this.form = {
+        id: null,
+        planName: null,
+        orgId: null,
+        orgPath: null,
+        orgName: null,
+        orgType: null,
+        roleId: null,
+        planCycle: null,
+        planFrequency: null,
+        planStatus: null,
+        createTime: null,
+        createBy: null,
+        updateTime: null,
+        updateBy: null,
+        description: null,
+        isDeleted: 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.planName)
+      this.single = selection.length !== 1
+      this.multiple = !selection.length
+    },
+    /** 新增按钮操作 */
+    handleAdd() {
+      this.reset();
+      this.open = true;
+      this.title = "添加监控调阅计划";
+    },
+    /** 修改按钮操作 */
+    handleUpdate(row) {
+      this.reset();
+      const id = row.id || this.ids
+      getPlan(id).then(response => {
+        this.form = response.data;
+        this.open = true;
+        this.title = "修改监控调阅计划";
+      });
+    },
+    /** 提交按钮 */
+    submitForm() {
+      this.$refs["form"].validate(valid => {
+        if (valid) {
+          if (this.form.id != null) {
+            updatePlan(this.form).then(response => {
+              this.$modal.msgSuccess("修改成功");
+              this.open = false;
+              this.getList();
+            });
+          } else {
+            addPlan(this.form).then(response => {
+              this.$modal.msgSuccess("新增成功");
+              this.open = false;
+              this.getList();
+            });
+          }
+        }
+      });
+    },
+    /** 删除按钮操作 */
+    handleDelete(row) {
+      const ids = row.id || this.ids;
+      const names=row.planName || this.names;
+      this.$modal.confirm('是否确认删除监控调阅计划"' + names + '"的数据项?').then(function () {
+        return delPlan(ids);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("删除成功");
+      }).catch(() => { });
+    },
+    handDistribute(row){
+      this.$modal.confirm('是否确认下发监控调阅计划"' + row.planName + '"的数据项?').then(function () {
+        return distribute(row.id);
+      }).then(() => {
+        this.getList();
+        this.$modal.msgSuccess("下发成功");
+      }).catch(() => { });
+
+    },
+    /** 导出按钮操作 */
+    handleExport() {
+      this.download('system/plan/export', {
+        ...this.queryParams
+      }, `plan_${new Date().getTime()}.xlsx`)
+    }
+  }
+};
+</script>

+ 1 - 10
src/views/system/user/index.vue

@@ -81,16 +81,7 @@
           <el-table-column label="所属机构" align="center" key="orgName" prop="orgName" v-if="columns[3].visible"
             :show-overflow-tooltip="true" />
           <el-table-column label="手机号码" align="center" key="phone" prop="phone" v-if="columns[4].visible" width="120" />
-          <!-- <el-table-column label="状态" align="center" key="isLock" v-if="columns[5].visible">
-            <template slot-scope="scope">
-              <el-switch
-                v-model="scope.row.isLock"
-                active-value="0"
-                inactive-value="1"
-                @change="handleStatusChange(scope.row)"
-              ></el-switch>
-            </template>
-          </el-table-column> -->
+  
           <el-table-column label="状态" align="center" key="isLock" prop="isLock" v-if="columns[5].visible" width="80">
             <template slot-scope="scope">
               <dict-tag :options="dict.type.sys_normal_disable" :value="scope.row.isLock" />