Эх сурвалжийг харах

履职内容库管理调试

jiawuxian 2 жил өмнө
parent
commit
d4a945f48e

+ 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'
+  })
+}

+ 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>