ludc
2024-01-28 9660ff90d9a58fb675c821d9ed31b627a59d4b76
Source/UBCS-WEB/src/views/code/codeSynonym.vue
@@ -1,38 +1,85 @@
<template>
  <basic-container>
    <avue-crud :option="option"
               :table-loading="loading"
               :data="data"
               :page.sync="page"
               :permission="permissionList"
               :before-open="beforeOpen"
               v-model="form"
               ref="crud"
               @row-update="rowUpdate"
               @row-save="rowSave"
               @row-del="rowDel"
               @search-change="searchChange"
               @search-reset="searchReset"
               @selection-change="selectionChange"
               @current-change="currentChange"
               @size-change="sizeChange"
               @refresh-change="refreshChange"
               @on-load="onLoad">
      :table-loading="loading"
      :data="data"
      :page.sync="page"
      :permission="permissionList"
      :before-open="beforeOpen"
      v-model="form"
      ref="crud"
      @row-update="rowUpdate"
      @row-save="rowSave"
      @row-del="rowDel"
      @row-click="rowClick"
      @search-change="searchChange"
      @search-reset="searchReset"
      @selection-change="selectionChange"
      @current-change="currentChange"
      @size-change="sizeChange"
      @refresh-change="refreshChange"
      @on-load="onLoad">
      <template slot="menuLeft">
        <el-button type="danger"
                   size="small"
                   icon="el-icon-delete"
                   plain
                   v-if="permission.codeSynonym_delete"
                   @click="handleDelete">删 除
          size="small"
          icon="el-icon-delete"
          plain
          v-if="permissionList.delBtn"
          @click="handleDelete">删 除
        </el-button>
        <el-button type="primary"
          size="small"
          icon="el-icon-zoom-in"
          plain
          @click="viewUseRange">
          查看使用范围
        </el-button>
      </template>
      <template slot="menu" slot-scope="scope">
        <el-button v-if="(scope.row.lcStatus == 'Disabled' ? true : false)"
          icon="el-icon-position"
          plain
          size="small"
          type="text"
          @click="enableOrDeactivatse(scope.row.oid, 'Released')"
          >启 用
        </el-button>
        <el-button v-if="(scope.row.lcStatus == 'Released' ? true : false)"
          icon="el-icon-video-pause"
          plain
          size="small"
          type="text"
          @click="enableOrDeactivatse(scope.row.oid, 'Disabled')"
        > 停 用
        </el-button>
      </template>
    </avue-crud>
    <!-- 使用范围对话框 -->
    <el-dialog
      :visible.sync="isUseRangeVisible"
      append-to-body
      class="avue-dialog avue-dialog--top"
      style="height: 100vh"
      top="-3%"
      width="800px"
      title="近义词规则使用范围"
    >
      <avue-crud :option="useRangeOption"
        :table-loading="useRangeloading"
        :data="useRangeData"
        style="margin-top: -40px"
        ref="useRangeCrud">
      </avue-crud>
      <span slot="footer" class="dialog-footer">
        <el-button @click="isUseRangeVisible = false">关 闭</el-button>
      </span>
    </el-dialog>
  </basic-container>
</template>
<script>
  import {getList, getDetail, add, update, remove} from "@/api/code/codeSynonym";
  import { getList, getDetail, add, update, remove, listUseRange, updateStatus } from "@/api/code/codeSynonym";
  import option from "@/const/code/codeSynonym";
  import {mapGetters} from "vuex";
@@ -49,17 +96,53 @@
        },
        selectionList: [],
        option: option,
        data: []
        data: [],
        isUseRangeVisible: false,
        useRangeloading: true,
        useRangeData: [],
        useRangeOption: {
          height: "auto",
          calcHeight: 150,
          tip: false,
          searchShow: false,
          searchMenuSpan: 6,
          border: true,
          index: true,
          disablePage: false,
          refreshBtn: false,
          columnBtn: false,
          viewBtn: false,
          addBtn: false,
          menu: false,
          selection: false,
          dialogClickModal: false,
          align: "center",
          dialogWidth: 400,
          column: [
            {
              label: "模板名称",
              prop: "classifyTemplateOidName",
              span: 24,
            },
            {
              label: "属性名称",
              prop: "name",
              span: 24,
            },
          ],
        },
      };
    },
    computed: {
      ...mapGetters(["permission"]),
      permissionList() {
        // console.log(this.permission.codeSynonym);
        return {
          addBtn: this.vaildData(this.permission.codeSynonym_add, false),
          viewBtn: this.vaildData(this.permission.codeSynonym_view, false),
          delBtn: this.vaildData(this.permission.codeSynonym_delete, false),
          editBtn: this.vaildData(this.permission.codeSynonym_edit, false)
          addBtn: this.vaildData(this.permission.codeSynonym.codeSynonym_add, false),
          viewBtn: this.vaildData(this.permission.codeSynonym.codeSynonym_view, false),
          delBtn: this.vaildData(this.permission.codeSynonym.codeSynonym_delete, false),
          editBtn: this.vaildData(this.permission.codeSynonym.codeSynonym_edit, false)
        };
      },
      ids() {
@@ -136,6 +219,30 @@
            this.$refs.crud.toggleSelection();
          });
      },
      /** 查看使用范围 */
      viewUseRange(){
        if (this.selectionList.length === 0) {
          this.$message.warning("请选择至少一条数据");
          return;
        }
        this.isUseRangeVisible = true;
        this.useRangeloading = true;
        listUseRange({"oid":this.selectionList[0].oid}).then(res=>{
          // console.log(res);
          this.useRangeData = res.data.data;
          this.useRangeloading = false;
        })
      },
      /** 停用启用近义词查询规则 */
      async enableOrDeactivatse(oid, update) {
        updateStatus({oid:oid,lcStatus:update}).then(res=>{
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        });
      },
      beforeOpen(done, type) {
        if (["edit", "view"].includes(type)) {
          getDetail(this.form.oid).then(res => {
@@ -156,6 +263,12 @@
      },
      selectionChange(list) {
        this.selectionList = list;
        this.$refs.crud.setCurrentRow(this.selectionList[list.length - 1]);
      },
      /** 单击行实现行选择*/
      rowClick(row) {
        this.$refs.crud.toggleSelection();
        this.$refs.crud.toggleRowSelection(row); //选中当前行
      },
      selectionClear() {
        this.selectionList = [];