田源
2023-09-15 80ef464bf93212805d6b36f12b7791edda04e23e
Source/UBCS-WEB/src/views/code/code.vue
@@ -156,7 +156,7 @@
    >
    </advanced-query>
    <!-- 编码规则相关对话框 -->
    <!-- 以下是编码规则相关对话框 -->
    <el-dialog
      :visible.sync="codeRangeSettingBox"
      append-to-body
@@ -177,148 +177,18 @@
    </el-dialog>
    <!-- 编码规则,克隆对话框 -->
    <el-dialog
    <clone-rule-dialog
      :visible.sync="cloneSettingBox"
      append-to-body
      class="avue-dialog avue-dialog--top"
      style="height: 100vh"
      title="克隆编码规则"
      top="-3%"
      width="800px"
    >
      <div>
        <el-row>
          <el-form ref="form" :inline="true" :model="form" label-width="80px">
            <el-form-item label="编号" required>
              <el-input v-model="cloneCodeRuleForm.id"></el-input>
            </el-form-item>
            <el-form-item label="名称" required>
              <el-input v-model="cloneCodeRuleForm.name"></el-input>
            </el-form-item>
            <el-form-item class="clone-input-textarea" label="描述">
              <el-input
                v-model="cloneCodeRuleForm.description"
                :autosize="{ minRows: 3, maxRows: 5 }"
                type="textarea"
              ></el-input>
            </el-form-item>
          </el-form>
        </el-row>
        <el-row>
          <p
            style="
              margin: 0 0px 16px 50%;
              font-weight: 500;
              font-size: 20px;
              color: #000;
            "
          >
            码段管理
          </p>
          <avue-crud
            :data="cloneData"
            :option="cloneOption"
            :table-loading="cloneTableLoading"
            class="clone-avue-crud"
            @on-load="cloneDataOnLoad"
          >
            <template slot="menu" slot-scope="scope">
              <el-button
                v-show="scope.row.orderNum > 1"
                icon="el-icon-arrow-up"
                plain
                size="small"
                type="text"
                @click="upOrderNum(scope.row)"
                >上移
              </el-button>
              <el-button
                icon="el-icon-arrow-down"
                plain
                size="small"
                type="text"
                @click="downOrderNum(scope.row)"
                >下移
              </el-button>
            </template>
          </avue-crud>
        </el-row>
      </div>
      <div slot="footer" class="dialog-footer">
        <el-button type="primary" @click="saveCloneCodeRule">保 存</el-button>
        <el-button @click="cloneSettingBox = false">取 消</el-button>
      </div>
    </el-dialog>
      :ruleData="selectionList[0]"
      @refreshRuleTable="onLoad">
    </clone-rule-dialog>
    <!-- 编码规则,从其他规则克隆对话框 -->
    <el-dialog
    <clone-other-basic-sec-dialog
      :visible.sync="cloneOtherCodeRuleSettingBox"
      append-to-body
      class="avue-dialog avue-dialog--top"
      destroy-on-close
      style="height: 100vh"
      title="克隆编码规则的基础信息"
      top="-3%"
      width="800px"
    >
      <div>
        <el-row>
          <p
            style="
              margin-top: -20px;
              margin-bottom: 4px;
              font-weight: 570;
              font-size: 19px;
              color: #0e2d5f;
            "
          >
            编码规则
          </p>
          <avue-crud
            ref="crudCloneCodeRuleOther"
            :data="data"
            :option="cloneCodeRuleOption"
            :page.sync="page"
            :table-loading="loading"
            class="other-clone-coderule-crud"
            @row-click="codeOtherCloneRuleRowClick"
            @size-change="sizeChange"
            @selection-change="selectionOtherCloneCodeRuleChange"
            @on-load="onLoad"
          >
          </avue-crud>
        </el-row>
        <el-row style="margin-top: 10px; border-top: 1px solid #ebeef5">
          <p
            style="
              margin-top: 10px;
              margin-bottom: 4px;
              font-weight: 570;
              font-size: 19px;
              color: #0e2d5f;
            "
          >
            码段信息
          </p>
          <avue-crud
            ref="crudCloneCodeBasicOther"
            :data="basicData"
            :option="cloneBasicOption"
            :table-loading="loadingBasic"
            class="other-clone-codebasic-crud"
            @row-click="codeOtherCloneBasicRowClick"
            @selection-change="selectionOtherCloneCodeBasicChange"
          >
          </avue-crud>
        </el-row>
      </div>
      <div slot="footer" class="dialog-footer" style="height: 50px">
        <el-button type="primary" @click="saveOtherCodeBasic">保 存</el-button>
        <el-button @click="cloneOtherCodeRuleSettingBox = false"
          >取 消</el-button
        >
      </div>
    </el-dialog>
      :quiltCloneCodeRule="selectionList[0]"
      @refreshRuleTable="onLoad">
    </clone-other-basic-sec-dialog>
    <!-- 编码规则,转移所有者对话框 -->
    <el-dialog
@@ -477,17 +347,17 @@
      <!-- 分类码段码值管理 -->
      <el-row v-show="!isShowFixedForm">
        <el-col :span="11">
          <basic-container>
          <basic-container style="overflow:hidden">
            <div
              class="box classify_value_box"
              style="height: 60vh; margin-bottom: -40px"
            >
              <basic-container>
                <div class="abox" style="height: 54vh">
                <div class="abox">
                  <avue-tree
                    :data="classifyValueTreeData"
                    :option="classisyValueTreeOption"
                    style=""
                    style="height: calc(60vh - 100px);"
                    @node-click="classisyValueTreeOnodeClick"
                  />
                </div>
@@ -1412,7 +1282,6 @@
  remove,
  listUseRange,
  updateStatus,
  clone,
  clearAllCode,
  checkLikeCodeRule,
} from "@/api/code/mdmrule";
@@ -1422,7 +1291,6 @@
  upOrderNum,
  deleteData,
  editSave,
  cloneCodeBasic,
  addSave,
  refDataGridClassifySec,
} from "@/api/code/codebasic";
@@ -1443,9 +1311,6 @@
} from "@/api/code/codeClassifyValue";
import { getDictionary } from "@/api/omd/enum";
import optionBasic from "@/const/code/codebasic";
import cloneOption from "@/const/code/cloneOption";
import cloneBasicOption from "@/const/code/cloneBasicDialogOption";
import cloneCodeRuleOption from "@/const/code/cloneCodeRuleDialogOption";
import optionRule from "@/const/code/mdmrule";
import attrOption from "@/const/code/selectAttrOptionDialog";
import treeOption from "@/const/code/classifyTreeOptionDialog";
@@ -1473,21 +1338,13 @@
      optionRule: optionRule,
      data: [],
      currentRuleLcStatus: "",
      /*克隆对话框控制变量*/
      /*克隆编码规则对话框控制变量*/
      cloneSettingBox: false,
      cloneTableLoading: false,
      cloneOption: cloneOption,
      cloneData: [],
      cloneCodeRuleForm: {
        id: "",
        name: "",
        description: "",
      },
      /*从其他规则克隆码段*/
      cloneOtherCodeRuleSettingBox: false,
      cloneBasicOption: cloneBasicOption,
      cloneCodeRuleOption: cloneCodeRuleOption,
      selectionOtherCloneCodeBasicList: [], // 当前选中的基础码段
      /** 转移所有者对话框 */
      escapeOwnerVisible: false,
      ruleAdminUserList: [], //规则管理员列表
@@ -1542,7 +1399,7 @@
      loadingBasic: false,
      selectionBasicList: [],
      addBasicCodeSettingBox: false,
      showbtn: false, //基础码段新增是否显示基础码段
      showbtn: false, //基础码段新增按钮是否禁用
      isLoadingSecCodeAddBtn: false,
      basicSecDialogTitle: "", //基础码段第一层对话框标题
      basicSecOnlyRead: false, //新增基础码段表单是否只读
@@ -1748,6 +1605,7 @@
    });
  },
  methods: {
    /** 转移规则所有者对话框 */
    escapeOwner() {
      if (this.selectionList.length === 0) {
@@ -2010,14 +1868,15 @@
        if (!this.tipsCodeSecValueMessage(this.codeFixdForm.id)) {
          return;
        }
        this.codeFixdForm.codeFixedSecOid =
          this.codefixedsecOrCodeclassifysec.oid;
        this.codeFixdForm.codeFixedSecOid = this.codefixedsecOrCodeclassifysec.oid;
        addSaveCodeFixedValue(this.codeFixdForm).then(
          () => {
            this.loadFixedValueTableData({
              oid: this.codefixedsecOrCodeclassifysec.oid,
            });
            this.clearFixedOrClassifyForm("codefixedsec");
            this.$refs.crudFixedValue.refreshTable();
            this.$refs.crudFixedValue.doLayout();
            this.$message({
              type: "success",
              message: "操作成功!",
@@ -2560,53 +2419,15 @@
        this.updateStatus(oid, update);
      }
    },
    /** 打开编码规则克隆对话框*/
    openCodeRuleDialog() {
      if (!this.tipsMessage(this.selectionList)) {
        return;
      }
      this.cloneSettingBox = true;
      this.cloneCodeRuleForm.id = this.selectionList[0].id;
      this.cloneCodeRuleForm.name = this.selectionList[0].name;
      this.cloneCodeRuleForm.description = this.selectionList[0].description;
      this.loadBasic({ oid: this.selectionList[0].oid });
    },
    /** 克隆编码规则保存功能*/
    saveCloneCodeRule() {
      let form = this.cloneCodeRuleForm;
      if (form.id.trim() == "") {
        this.$message.warning("编号不能为空!");
        return;
      }
      if (form.name.trim() == "") {
        this.$message.warning("码值不能为空!");
        return;
      }
      this.selectionList[0].oid = "";
      this.selectionList[0].id = form.id;
      this.selectionList[0].name = form.name;
      this.selectionList[0].description = form.description;
      this.selectionList[0].createTime = new Date().getTime();
      this.selectionList[0].ts = new Date(this.selectionList[0].ts).getTime();
      this.selectionList[0].lcStatus = "Editing";
      let data = Object.assign({}, this.selectionList[0], {
        elements: this.cloneData,
      });
      clone(data).then(
        () => {
          this.cloneSettingBox = false;
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        },
        (error) => {
          window.console.log(error);
        }
      );
      //console.log(data);
    },
    /** 打开从其他编码规则中克隆码段对话框*/
    openOtherCodeRuleDialog() {
      if (!this.tipsMessage(this.selectionList)) {
@@ -2618,79 +2439,7 @@
      }
      this.cloneOtherCodeRuleSettingBox = true;
    },
    //** 从其他编码规则中克隆码段对话框-单击编码规则实现行选择*/
    codeOtherCloneRuleRowClick(row) {
      this.$refs.crudCloneCodeRuleOther.toggleSelection();
      this.selectionOtherCloneCodeRuleList = row;
      this.$refs.crudCloneCodeRuleOther.setCurrentRow(row);
      this.$refs.crudCloneCodeRuleOther.toggleRowSelection(row); //选中当前行
      this.loadBasic(row);
    },
    /** 从其他编码规则中克隆码段对话框-单击基础码段实现行选择*/
    codeOtherCloneBasicRowClick(row) {
      this.$refs.crudCloneCodeBasicOther.toggleSelection();
      this.selectionOtherCloneCodeBasicList = row;
      this.$refs.crudCloneCodeBasicOther.setCurrentRow(row);
      this.$refs.crudCloneCodeBasicOther.toggleRowSelection(row); //选中当前行
    },
    /** 从其他规则克隆码段界面中编码规则当前选中行变化的时候触发*/
    selectionOtherCloneCodeRuleChange(list) {
      //console.log(list);
      this.selectionOtherCloneCodeRuleList = list;
      this.$refs.crudBasic.setCurrentRow(
        this.selectionBasicList[list.length - 1]
      );
      if (list == "") {
        this.basicData = [];
      }
      if (this.selectionOtherCloneCodeRuleList.length > 0) {
        this.loadBasic(this.selectionOtherCloneCodeRuleList[list.length - 1]);
      }
    },
    selectionOtherCloneCodeBasicChange(list) {
      this.selectionOtherCloneCodeBasicList = list;
      this.$refs.crudCloneCodeBasicOther.setCurrentRow(
        this.selectionOtherCloneCodeBasicList[list.length - 1]
      );
    },
    /** 从其他编码规则中克隆码段信息*/
    saveOtherCodeBasic() {
      let oid = this.selectionList[0].oid;
      let fromDialogPkCodebasic = this.selectionOtherCloneCodeBasicList;
      if (fromDialogPkCodebasic.length <= 0) {
        this.$message.warning("请选择码段数据!");
        return;
      }
      let res = fromDialogPkCodebasic.filter((item) => {
        return item.pkCodeRule == oid;
      });
      if (res != "") {
        this.$message.warning("需要克隆的编码规则与被克隆的编码规则相同!");
        return;
      }
      let oidArr = [];
      fromDialogPkCodebasic.forEach((ele) => {
        oidArr.push(ele.oid);
      });
      let data = {
        pkCodeRule: oid,
        oidArr: oidArr.join(","),
      };
      //console.log(data);
      cloneCodeBasic(data).then(
        () => {
          this.cloneOtherCodeRuleSettingBox = false;
          this.onLoad(this.page);
          this.$message({
            type: "success",
            message: "操作成功!",
          });
        },
        (error) => {
          window.console.log(error);
        }
      );
    },
    /** 清空码值*/
    clearAllCodeSec() {
      if (this.selectionList.length == 0) {
@@ -2792,10 +2541,12 @@
      }
      done();
    },
    // 编码规则快速查询重置
    searchReset() {
      this.query = {};
      this.onLoad(this.page);
    },
    // 编码规则快速查询
    searchChange(params, done) {
      this.page.currentPage = 1;
      // 多个conditionMap这样传参,快速查询默认采用模糊查询
@@ -2807,7 +2558,7 @@
        });
      }
      this.query = requestData;
      this.onLoad(this.page);
      this.onLoad(this.page, this.query);
      done();
    },
    /** 编码规则当前选中行变化的时候触发*/
@@ -2845,7 +2596,7 @@
    },
    onLoad(page, params = {}) {
      this.loading = true;
      gridCodeRule(page.currentPage, page.pageSize, this.query).then((res) => {
      gridCodeRule(page.currentPage, page.pageSize, params).then((res) => {
        //console.log(res.data);
        const data = res.data.data;
        this.page.total = data.total;
@@ -3202,14 +2953,10 @@
    },
    /** 点击触发加载基础码段信息*/
    loadBasic(row) {
      if (this.cloneSettingBox) {
        this.cloneTableLoading = true;
      } else {
        this.loadingBasic = true;
      }
      this.loadingBasic = true;
      // console.log(row.oid);
      //存储当前关联的编码规则相关信息
      if (row != "" || row != null) {
        //存储当前关联的编码规则相关信息
        this.currentCodeRuleOid = row.oid;
        this.currentRuleLcStatus = row.lcStatus;
        this.sendGridCodeBasicSec({ pkCodeRule: row.oid }, false);
@@ -3239,14 +2986,8 @@
      gridCodeBasicSec(1, -1, isAdancedQuery ? condition : conditionMaps).then(
        (res) => {
          const data = res.data.data;
          if (this.cloneSettingBox) {
            this.cloneData = data.records;
            this.cloneTableLoading = false;
          } else {
            this.basicData = data.records;
            // console.log(this.basicData);
            this.loadingBasic = false;
          }
          this.basicData = data.records;
          this.loadingBasic = false;
        }
      );
    },