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