ludc
2024-01-30 8e832c69b20bd34f6da9ef25324ec690d1cccbe3
Source/UBCS-WEB/src/views/ruleBasic/usableCharacter.vue
@@ -1,6 +1,5 @@
<template>
  <basic-container>
    <el-header>
      <div style="margin-bottom: 15px">
        编码规则:
@@ -8,7 +7,7 @@
                   @change="selectHandler">
          <el-option v-for="(item,index) in queryReleasedList"
                     :key="item.oid"
                     :label="item.name"
                     :label="item.name + ' (' + item.id + ')'"
                     :value="item.oid"></el-option>
        </el-select>
      </div>
@@ -19,96 +18,50 @@
        :data="tableData"
        :header-cell-style="{background:'#FAFAFA',color:'#505050'}"
        border
        style="width: 100%;height:  calc(100vh - 320px)"
        style="width: 100%;height:  calc(100vh - 315px)"
        @cell-click="cellClickHandler">
        <el-table-column
          align="center"
          label="1"
          prop="1"
        >
        </el-table-column>
        <el-table-column
          align="center"
          label="2"
          prop="2"
        >
        </el-table-column>
        <el-table-column
          align="center"
          label="3"
          prop="3">
        </el-table-column>
        <el-table-column
          align="center"
          label="4"
          prop="4">
        </el-table-column>
        <el-table-column
          align="center"
          label="5"
          prop="5">
        </el-table-column>
        <el-table-column
          align="center"
          label="6"
          prop="6">
        </el-table-column>
        <el-table-column
          align="center"
          label="7"
          prop="7">
        </el-table-column>
        <el-table-column
          align="center"
          label="8"
          prop="8">
        </el-table-column>
        <el-table-column
          align="center"
          label="9"
          prop="9">
        </el-table-column>
        <el-table-column
          align="center"
          label="10"
          prop="10">
        </el-table-column>
        <el-table-column
          align="center"
          label="11"
          prop="11">
        </el-table-column>
        <el-table-column
          align="center"
          label="12"
          prop="12">
        </el-table-column>
        <el-table-column
          align="center"
          label="13"
          prop="13">
        </el-table-column>
        <el-table-column
          align="center"
          label="14"
          prop="14">
        </el-table-column>
        <el-table-column
          align="center"
          label="15"
          prop="15">
        </el-table-column>
        <el-table-column align="center" label="1" prop="1"></el-table-column>
        <el-table-column align="center" label="2" prop="2"></el-table-column>
        <el-table-column align="center" label="3" prop="3"></el-table-column>
        <el-table-column align="center" label="4" prop="4"></el-table-column>
        <el-table-column align="center" label="5" prop="5"></el-table-column>
        <el-table-column align="center" label="6" prop="6"></el-table-column>
        <el-table-column align="center" label="7" prop="7"></el-table-column>
        <el-table-column align="center" label="8" prop="8"></el-table-column>
        <el-table-column align="center" label="9" prop="9"></el-table-column>
        <el-table-column align="center" label="10" prop="10"></el-table-column>
        <el-table-column align="center" label="11" prop="11"></el-table-column>
        <el-table-column align="center" label="12" prop="12"></el-table-column>
        <el-table-column align="center" label="13" prop="13"></el-table-column>
        <el-table-column align="center" label="14" prop="14"></el-table-column>
        <el-table-column align="center" label="15" prop="15"></el-table-column>
      </el-table>
    </el-main>
    <el-footer>
      <div style="width: 260px; display: flex; align-items: center;margin-top: 5px">
      <div style="width: 460px; display: flex; align-items: center;margin-top: 5px">
        <p>值:</p>
        <el-input v-model="characterValue" size="small" style="flex: 1;"></el-input>
        <el-input v-model="characterValue" size="small" style="flex: 1; display: flex;">
          <template slot="prefix">
            <div style="display: flex; align-items: center;height: 100%;text-align: center;margin-left: 5px">
              <el-tag v-for="(item,index) in this.editValueList" :key="index" closable size="small"
                      @close="handleClose(item,index)">
                {{ item }}
              </el-tag>
            </div>
          </template>
        </el-input>
      </div>
    </el-footer>
    <el-dialog :visible.sync="editVisble" append-to-body title="修改可用字符" width="40%">
      <el-input v-model="characterValue" size="small"></el-input>
      <span slot="footer" class="dialog-footer">
        <el-button @click="editVisble = false">取 消</el-button>
        <el-button type="primary" @click="editSaveHandler">确 定</el-button>
  </span>
    </el-dialog>
    <div style="margin-bottom: 10px;text-align: center">
      <el-button icon="el-icon-plus" plain size="small" type="success" @click="addSaveHandler">添加</el-button>
      <el-button icon="el-icon-edit" plain size="small" type="primary" @click="editSaveHandler">修改</el-button>
      <el-button icon="el-icon-edit" plain size="small" type="primary" @click="editDialog">修改</el-button>
      <el-button icon="el-icon-delete" plain size="small" type="danger" @click="delSaveHandler">删除</el-button>
    </div>
  </basic-container>
@@ -116,13 +69,14 @@
<script>
import {getList, addSave, editSave, deleteSave} from "@/api/code/codeCharcter"
import {gridCodeRule} from "@/api/code/codeCharcter"
import {gridCodeRule} from "@/api/code/mdmrule"
export default {
  name: "usableCharacter",
  data() {
    return {
      loading: false,
      editValueList: [],
      //下拉框数组
      queryReleasedList: [],
      //下拉框初始数据数组
@@ -131,7 +85,8 @@
      characterEditOldValue: "",
      tableData: [],
      select: "",
      selectValue: ""
      selectValue: "",
      editVisble: false
    }
  },
  watch: {
@@ -145,14 +100,42 @@
    this.getCodeRule();
  },
  methods: {
    editDialog() {
      if (this.editValueList.length > 1) {
        this.$message.warning('只能选择一条数据!');
        return;
      }
      if (this.editValueList.length === 0) {
        this.$message.warning('请选择一条数据!');
        return;
      }
      this.editVisble = true;
    },
    handleClose(tag, index) {
      this.$delete(this.editValueList, index);
      if (this.editValueList.length === 0) {
        this.characterValue = "";
        return;
      }
    },
    cellClickHandler(row, column) {
      this.characterValue = row[column.property];
      this.characterEditOldValue = row[column.property]
      this.characterEditOldValue = row[column.property];
      if (this.editValueList.includes(row[column.property])) {
        this.$message.warning('请检查字符集是否有重复!')
      } else if (row[column.property] === undefined || row[column.property] === null) {
        this.$message.warning('请检查字符集是否有空值!');
      } else {
        this.editValueList.push(row[column.property]);
      }
      // else if (this.editValueList.some(value => value.trim() === '')) {
      //   this.$message.warning('请检查字符集是否有空值!');
      // }
    },
    async getCodeRule() {
      try {
        // 编码规则已发布数据源
        const res = await gridCodeRule({["conditionMap" + "[lcStatus_like]"]: "Released"});
        const res = await gridCodeRule(1,-1);
        this.characterReleasedList = res.data.data.records;
        this.queryReleasedList = this.characterReleasedList;
        this.select = this.characterReleasedList[0].oid;
@@ -160,14 +143,12 @@
        const res2 = await getList({codeRuleId: this.select, chartType: "charset", chartValue: this.characterValue});
        this.tableData = res2.data.data;
        this.loading = false;
        // console.log("this.tableData", this.tableData);
      } catch (error) {
        this.$message.warning(error)
      }
    },
    //编码规则下拉框搜索
    filterValue(query) {
      console.log(query)
      if (query !== "") {
        this.queryReleasedList = this.characterReleasedList.filter(item => {
          return item.name.includes(query.toString());
@@ -186,7 +167,7 @@
      // const targetObject = this.characterReleasedList.find(obj => obj.oid === this.selectValue);
      // const chartValue = targetObject.name;
      getList({codeRuleId: this.select, chartType: "charset", chartValue: this.characterValue}).then(res => {
        console.log(res.data.data);
        // console.log(res.data.data);
        this.tableData = res.data.data;
        this.loading = false;
      });
@@ -196,12 +177,17 @@
        this.$message.warning('请填写要添加的值!');
        return; // 判断输入值
      }
      ;
      if (this.editValueList.length != 0) {
        this.$message.warning('请先取消已选择的值!');
        return; // 判断输入值
      }
      ;
      const targetObject = this.characterReleasedList.find(obj => obj.oid === this.select);
      if (!targetObject) {
        return; // 查找对应typeText
      }
      ;
      const codeRuleCharacterVO = {
        codeRuleId: this.select,
        chartType: "charset",
@@ -246,6 +232,8 @@
        .then(res => {
          this.$message.success(res.data.msg);
          this.characterValue = "";
          this.editVisble = false;
          this.editValueList = [];
          this.getTableData();
        }).catch(error => {
        this.$message.error('修改失败');
@@ -262,16 +250,18 @@
      if (!targetObject) {
        return; // 查找对应typeText
      }
      const value = this.editValueList.join("");
      const codeRuleCharacterVO = {
        codeRuleId: this.select,
        chartType: "charset",
        chartValue: this.characterValue,
        chartValue: value,
        chartTypeText: targetObject.name
      };
      deleteSave(codeRuleCharacterVO)
        .then(res => {
          this.$message.success(res.data.msg);
          this.editValueList = [];
          this.characterValue = "";
          this.getTableData();
        }).catch(error => {