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

联调履职内容库定义

jiawuxian 2 жил өмнө
parent
commit
43579d16c2

+ 22 - 13
src/api/resumption/rule.js

@@ -3,7 +3,7 @@ import request from '@/utils/request'
 // 查询【请填写功能名称】列表
 export function list(query) {
   return request({
-    url: 'resumption/rule/page',
+    url: '/core/resumption/rule/page',
     method: 'get',
     params: query
   })
@@ -12,25 +12,34 @@ export function list(query) {
 // 查询【请填写功能名称】详细
 export function get(id) {
   return request({
-    url: '/resumption/rule/' + id,
+    url: '/core/resumption/rule/' + id,
     method: 'get'
   })
 }
 
-// 新增【请填写功能名称】
-export function add(data) {
-  return request({
-    url: '/resumption/rule',
-    method: 'post',
-    data: data
-  })
-}
+// // 新增【请填写功能名称】
+// export function add(data) {
+//   return request({
+//     url: '/core/resumption/rule',
+//     method: 'post',
+//     data: data
+//   })
+// }
+//  /**
+//    * 检查新的规范类型在检查项】检查内容是否需要更新
+//    * @param id 
+//    * @param ruleType 
+//    * @returns 
+//    */
+//  export function checkRuleType(id, ruleType) {
+//     return request(`/appRule/check/${id}/${ruleType}`);
+//   }
 
 // 修改【请填写功能名称】
 export function update(data) {
   return request({
-    url: '/resumption/rule',
-    method: 'put',
+    url: '/core/resumption/rule/edit',
+    method: 'post',
     data: data
   })
 }
@@ -38,7 +47,7 @@ export function update(data) {
 // 删除【请填写功能名称】
 export function delelte(id) {
   return request({
-    url: '/resumption/rule/' + id,
+    url: '/core/resumption/rule/' + id,
     method: 'delete'
   })
 }

+ 44 - 0
src/api/resumption/ruleManager.js

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

+ 5 - 2
src/views/commonOption.js

@@ -8,5 +8,8 @@ const statusOptions = [
     label: "禁用",
   },
 ];
-
-export { statusOptions };
+const getLabel=(options,value)=>{
+  let option=options.find(o=>o.value===value);
+  return option?option.label:'';
+}
+export { statusOptions ,getLabel};

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

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

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

@@ -0,0 +1,208 @@
+<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>

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

@@ -0,0 +1,267 @@
+<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>

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

@@ -0,0 +1,174 @@
+<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>

+ 183 - 0
src/views/resumption/rule/dialog.edit.vue

@@ -0,0 +1,183 @@
+<template>
+  <div class="rule-type">
+    <el-dialog
+      :title="id ? '编辑履职内容库定义' : '新增履职内容库定义'"
+      :visible.sync="isShow"
+      width="500px"
+    >
+      <div class="page-body">
+        <el-form
+          :model="formData"
+          :rules="formDataRules"
+          size="small"
+          ref="form"
+          label-position="right"
+          label-width="130px"
+          label-prefix=":"
+        >
+          <el-form-item prop="id" label="规范名称:" hidden>
+            <el-input v-model="formData.id" clearable maxlength="50" />
+          </el-form-item>
+
+          <el-form-item prop="name" label="履职内容库名称:">
+            <el-input
+              v-model="formData.name"
+              :maxlength="50"
+              name="name"
+              placeholder="请输入履职内容库名称"
+              clearable
+            />
+          </el-form-item>
+
+          <el-form-item prop="type" label="履职类型:">
+            <el-select
+              label="履职类型"
+              v-model="formData.type"
+              placeholder="请选择履职类型"
+              clearable
+            >
+              <el-option
+                v-for="item in ruleTypeOptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+
+          <el-form-item prop="orgType" label="履职机构类型:">
+            <el-select
+              prop="orgType"
+              label="履职机构类型"
+              v-model="formData.orgType"
+              placeholder="请选择履职机构类型"
+              clearable
+            >
+              <el-option
+                v-for="item in orgTypeOptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+
+          <el-form-item prop="status" label="状态:">
+            <el-select
+              prop="status"
+              label="状态"
+              v-model="formData.status"
+              placeholder="请选择状态"
+              clearable
+            >
+              <el-option
+                v-for="item in statusOptions"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item prop="remark" label="备注">
+            <el-input v-model="formData.remark" :maxlength="255" clearable />
+          </el-form-item>
+        </el-form>
+      </div>
+
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="onHide">取消</el-button>
+        <el-button type="primary" @click="onSubmit">确定</el-button>
+      </div>
+    </el-dialog>
+  </div>
+</template>
+
+<script>
+import { mapState, mapMutations } from "vuex";
+import * as api from "@/api/resumption/rule";
+import { statusOptions } from "./../../commonOption";
+
+export default {
+  data() {
+    // const params = this.$route.params;
+    // let o1=options;
+    // let o=statusOptions;
+    // debugger
+    return {
+      id: null,
+      isShow: false,
+      formData: this.reset(),
+      formDataRules: {
+        name: [{ required: true, message: "请输入履职内容库名称" }],
+        type: [{ required: true, message: "请选择履职类型" }],
+        orgType: [{ required: true, message: "请选择履职机构类型" }],
+        status: [{ required: true, message: "请选择状态" }],
+      },
+      statusOptions: statusOptions,
+    };
+  },
+  props: {
+    orgTypeOptions: {
+      type: Array,
+    },
+    ruleTypeOptions: {
+      type: Array,
+    },
+  },
+  watch: {},
+  computed: {
+    ...mapState([]),
+  },
+  methods: {
+    ...mapMutations([]),
+    reset() {
+      return {
+        id: null,
+        name: null,
+        type: null,
+        orgType: null,
+        status: null,
+        remark: null,
+      };
+    },
+    async refresh(id, other) {
+      this.formData = id ? (await api.get(id)).data : this.reset(other);      
+    },
+    async show(id, other = {}) {
+      this.id = id;
+      await this.refresh(id, other);
+      this.isShow = true;
+    },
+
+    // 事件
+    onHide() {
+      this.isShow = false;
+    },
+    onSubmit() {
+      this.$refs.form.validate(async (isValidate) => {
+        if (!isValidate) return;
+        await api.update(this.formData);
+          this.$emit("success");
+          this.onHide();
+      });
+    },
+
+    // 事件
+    //apimark//
+  },
+  mounted() {},
+  components: {},
+};
+</script>
+
+<style lang="scss" scoped>
+.brand_info {
+  .el-form {
+    width: 600px;
+    padding-top: 40px;
+  }
+}
+</style>

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

@@ -0,0 +1,334 @@
+<template>
+  <div class="app-container">
+    <el-row :gutter="20">
+      <!--机构数据-->
+      <el-col :span="4" :xs="24">
+        <org-tree
+          v-model="queryParams.orgId"
+          @defaultKey="getDefaultKey"
+          @checkChange="checkChange"
+          @click="clickTreeNode"
+        ></org-tree>
+      </el-col>
+
+      <el-col :span="20" :xs="24">
+        <!--    搜索条件    -->
+        <el-form
+          :model="queryParams"
+          ref="search"
+          size="small"
+          :inline="true"
+          v-show="showSearch"
+          label-width="100px"
+        >
+          <el-form-item prop="ruleName" label="履职库名称">
+            <el-input
+              v-model="queryParams.name"
+              :maxlength="50"
+              placeholder="请输入履职库名称"
+              clearable
+            />
+          </el-form-item>
+          <el-form-item prop="ruleTypeId" label="履职库类型">
+            <el-select
+              prop="ruleTypeId"
+              label="履职库类型"
+              v-model="queryParams.type"
+              placeholder="请选择履职库类型"
+              clearable
+            >
+              <el-option
+                v-for="dict in dict.type.rule_type"
+                :key="dict.value"
+                :label="dict.label"
+                :value="dict.value"
+              />
+            </el-select>
+          </el-form-item>
+
+          <el-form-item prop="orgType" label="履职机构类型">
+            <el-select
+              prop="orgType"
+              label="履职机构类型"
+              v-model="queryParams.orgType"
+              placeholder="请选择履职机构类型"
+              clearable
+            >
+              <el-option
+                v-for="item in dict.type.sys_org_type"
+                :key="item.value"
+                :label="item.label"
+                :value="item.value"
+              >
+              </el-option>
+            </el-select>
+          </el-form-item>
+          <el-form-item>
+            <el-button
+              type="primary"
+              icon="el-icon-search"
+              size="mini"
+              @click="getList"
+              >搜索</el-button
+            >
+            <el-button icon="el-icon-refresh" size="mini" @click="resetQuery"
+              >重置</el-button
+            >
+          </el-form-item>
+        </el-form>
+
+        <!--    按纽    -->
+        <el-row :gutter="10" class="mb8">
+          <el-col :span="1.5">
+            <el-button
+              type="primary"
+              plain
+              icon="el-icon-plus"
+              size="mini"
+              @click="handleAdd()"
+              v-hasPermi="['system:user:add']"
+              >新增</el-button
+            >
+          </el-col>
+          <!-- <el-col :span="1.5">
+            <el-button
+              type="success"
+              plain
+              icon="el-icon-edit"
+              size="mini"
+              :disabled="single"
+              @click="handleUpdate"
+              v-hasPermi="['system:user:edit']"
+              >修改</el-button
+            >
+          </el-col>
+          <el-col :span="1.5">
+            <el-button
+              type="danger"
+              plain
+              icon="el-icon-delete"
+              size="mini"
+              :disabled="multiple"
+              @click="handleDelete"
+              v-hasPermi="['system:user:remove']"
+              >删除</el-button
+            > 
+          </el-col>-->
+
+          <right-toolbar
+            :showSearch.sync="showSearch"
+            @queryTable="getList"
+            :columns="columns"
+          ></right-toolbar>
+        </el-row>
+
+        <el-table
+          v-loading="loading"
+          :data="pageData"
+          @selection-change="handleSelectionChange"
+        >
+          <el-table-column
+            type="index"
+            label="序号"
+            v-if="columns[0].visible"
+          ></el-table-column>
+          <el-table-column
+            prop="name"
+            label="履职库名称"
+            v-if="columns[1].visible"
+          ></el-table-column>
+          <el-table-column
+            prop="typeName"
+            label="履职库类型"
+            v-if="columns[2].visible"
+          >
+            <template slot-scope="r"
+              >{{ getLabel(dict.type.rule_type, r.row.type) }}
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="orgType"
+            label="履职机构类型"
+            v-if="columns[3].visible"
+          >
+            <template slot-scope="r"
+              >{{ getLabel(dict.type.sys_org_type, r.row.orgType) }}
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="orgName"
+            label="发布机构"
+            v-if="columns[4].visible"
+          ></el-table-column>
+          <el-table-column prop="status" label="状态" v-if="columns[5].visible">
+            <template slot-scope="r">
+              <span>{{ getStatusLabel(r.row.status) }}</span>
+            </template>
+          </el-table-column>
+          <el-table-column
+            prop="remark"
+            label="备注"
+            v-if="columns[6].visible"
+          ></el-table-column>
+          <el-table-column label="操作">
+            <template slot-scope="r">
+              <el-button
+                size="mini"
+                type="text"
+                icon="el-icon-edit"
+                @click="onEdit(r.row.id)"
+                v-hasPermi="['system:user:edit']"
+              >修改</el-button>
+              <el-button
+                size="mini"
+                type="text"
+                icon="el-icon-delete"
+                @click="onDel(r.row.id)"
+                v-hasPermi="['system:user:remove']"
+              >删除</el-button>              
+            </template>
+          </el-table-column>
+        </el-table>
+
+        <pagination
+          v-show="total > 0"
+          :total="total"
+          :page.sync="queryParams.pageNum"
+          :limit.sync="queryParams.pageSize"
+          @pagination="getList"
+        />
+      </el-col>
+    </el-row>
+    <dialog-edit
+      ref="editDialog"
+      @success="getList()"
+      :orgTypeOptions="dict.type.sys_org_type"
+      :ruleTypeOptions="dict.type.rule_type"
+    ></dialog-edit>
+  </div>
+</template>
+
+<script>
+import OrgTree from "@/components/orgTree";
+import { mapState, mapMutations } from "vuex";
+import DialogEdit from "./dialog.edit";
+import * as api from "@/api/resumption/rule";
+import { statusOptions, getLabel } from "./../../commonOption";
+
+export default {
+  name: "ruletype",
+  dicts: ["sys_org_type", "rule_type"],
+  components: {
+    DialogEdit,
+    OrgTree,
+  },
+  data() {
+    const { params, query } = this.$route;
+    return {
+      isShow: false,
+      loading: false,
+      ids: [],
+      // 非单个禁用
+      single: true,
+      // 非多个禁用
+      multiple: true,
+      // 显示搜索条件
+      showSearch: true,
+      total: 0,
+      queryParams: {
+        orgId: null,
+        name: null,
+        type: null,
+        orgType: null,
+        pageNum: 1,
+        pageSize: 10,
+        ...query,
+      },
+      pageData: [],
+      // 列信息
+      columns: [
+        { key: 0, label: `序号`, visible: true },
+        { key: 1, label: `履职库名称`, visible: true },
+        { key: 2, label: `履职库类型`, visible: true },
+        { key: 3, label: `履职机构类型`, visible: true },
+        { key: 4, label: `发布机构`, visible: true },
+        { key: 5, label: `状态`, visible: true },
+        { key: 6, label: `备注`, visible: true },
+      ],
+    };
+  },
+  props: {},
+  watch: {},
+  computed: {
+    ...mapState([]),
+  },
+  methods: {
+    ...mapMutations([]),
+    getList() {
+      this.loading = true;
+      console.info(this.dict.type);
+      api
+        .list(this.queryParams)
+        .then((response) => {
+          this.pageData = response.rows;
+          this.total = response.total;
+          this.loading = false;
+        })
+        .catch(() => {
+          this.loading = false;
+        });
+    },
+    getDefaultKey(key) {
+      this.queryParams.orgId = key;
+      this.getList();
+    },
+    handleAdd(id, other = {}) {
+      this.$refs.editDialog.show(id, other);
+    },
+    onEdit(id, other = {}) {
+      this.$refs.editDialog.show(id, other);
+    },
+    async onDel(id) {
+      await api.delRule(id);
+      this.getList();
+    },
+    // 多选框选中数据
+    handleSelectionChange(selection) {
+      this.ids = selection.map((item) => item.userId);
+      this.single = selection.length != 1;
+      this.multiple = !selection.length;
+    },
+    /** 重置按钮操作 */
+    resetQuery() {
+      this.dateRange = [];
+      this.resetForm("queryForm");
+      this.queryParams.orgId = undefined;
+      this.$refs.tree.setCurrentKey(null);
+      this.getList();
+    },
+    //单选框状态改变
+    checkChange(state) {
+      this.queryParams.checkSub = state;
+      this.getList();
+    },
+    // 节点单击事件
+    clickTreeNode(data) {
+      this.queryParams.orgId = data.id;
+      this.getList();
+    },
+    getStatusLabel(value) {
+      return getLabel(statusOptions, value);
+    },
+    getLabel(options, value) {
+      return getLabel(options, value);
+    },
+    //apimark//
+  },
+  mounted() {},
+};
+</script>
+
+<style lang="scss" scoped>
+.brand {
+}
+</style>