田源
2023-12-08 e2cb9d30fa00189b0c3ad0487a57dd8af7c121e9
Source/UBCS-WEB/src/views/code/code.vue
@@ -2,144 +2,147 @@
  <basic-container class="code-total" style=" height: 100%">
    <!-- 编码规则信息展示区域 -->
    <basic-container class="code-rule-container">
      <p
        style="
      <div style="height: 40vh;overflow: auto;">
        <p
          style="
          margin-top: -5px;
          margin-bottom: 4px;
          font-weight: 570;
          font-size: 19px;
          color: #0e2d5f;
        "
      >
        编码规则
      </p>
      <avue-crud
        ref="crud"
        v-model="ruleForm"
        :before-open="beforeOpen"
        :data="data"
        :option="optionRule"
        :page.sync="page"
        :permission="permissionList"
        :table-loading="loading"
        class="code-rule-crud"
        @row-click="codeRuleRowClick"
        @row-update="rowUpdate"
        @row-save="rowSave"
        @search-change="searchChange"
        @search-reset="searchReset"
        @selection-change="selectionChange"
        @current-change="currentChange"
        @size-change="sizeChange"
        @refresh-change="refreshChange"
        @on-load="onLoad"
      >
        <!-- 表格内操作按钮 -->
        <template slot="menu" slot-scope="scope">
          <el-button v-if="permissionList.editBtn && (scope.row.lcStatus == 'Editing' ? true : false)"
                     icon="el-icon-edit"
                     plain
                     size="small"
                     type="text"
                     @click="openEdit(scope.row)"
          >编 辑
          </el-button>
          <el-button v-if="permissionList.releaseBtn && (scope.row.lcStatus == 'Editing' ? true : false)"
                     :loading="releadDisabled"
                     icon="el-icon-position"
                     plain
                     size="small"
                     type="text"
                     @click="enableOrDeactivatse(scope.row.oid, 'release')"
          >发 布
          </el-button>
          <el-button v-if="permissionList.deactivateBtn && (scope.row.lcStatus == 'Released' ? true : false)"
                     icon="el-icon-video-pause"
                     plain
                     size="small"
                     type="text"
                     @click="enableOrDeactivatse(scope.row.oid, 'disable')"
          >停 用
          </el-button>
          <el-button v-if="permissionList.enableBtn && (scope.row.lcStatus == 'Disabled' ? true : false)"
                     icon="el-icon-video-play"
                     plain
                     size="small"
                     type="text"
                     @click="enableOrDeactivatse(scope.row.oid, 'enable')"
          >启 用
          </el-button>
        </template>
        <!-- 表格上方按钮区域 -->
        <template slot="menuLeft" slot-scope="scope">
          <el-button v-if="permissionList.rulDelBtn"
                     icon="el-icon-delete"
                     plain
                     size="small"
                     type="danger"
                     @click="handleDelete"
          >
            删 除
          </el-button>
          <el-button v-if="permissionList.advancedQueryBtn"
                     icon="el-icon-search"
                     plain
                     size="small"
                     type="primary"
                     @click="openAdvancedQuery('codeRule')">
            高级查询
          </el-button>
          <el-button v-if="permissionList.cloneBtn"
                     icon="icon-kelong"
                     plain
                     size="small"
                     @click="openCodeRuleDialog"
          >
            克 隆
          </el-button>
          <el-button v-if="permissionList.otherCloneBtn"
                     icon="icon-lianjiekelong"
                     plain
                     size="small"
                     style="font-size: 12px"
                     @click="openOtherCodeRuleDialog"
          >
            从其他规则中克隆码段
          </el-button>
          <el-button v-if="permissionList.usescopeBtn"
                     icon="el-icon-s-help"
                     plain
                     size="small"
                     @click="handleRange"
          >
            使用范围
          </el-button>
          <el-button v-if="permissionList.clearBtn"
                     icon="icon-qingkong"
                     plain
                     size="small"
                     @click="clearAllCodeSec"
          >
            清空码值
          </el-button>
          <el-button v-if="permissionList.escapeOwnerBtn"
                     icon="el-icon-guide"
                     plain
                     size="small"
                     @click="escapeOwner"
          >
            转移所有者
          </el-button>
          <el-button v-if="permissionList.maxSerialnumBtn"
                     icon="el-icon-data-analysis"
                     plain
                     size="small"
                     @click="maxSerialNum"
          >
            最大流水号
          </el-button>
        </template>
      </avue-crud>
        >
          编码规则
        </p>
        <avue-crud
          ref="crud"
          v-model="ruleForm"
          :before-open="beforeOpen"
          :data="data"
          :option="optionRule"
          :page.sync="page"
          :permission="permissionList"
          :table-loading="loading"
          class="code-rule-crud"
          @row-click="codeRuleRowClick"
          @row-update="rowUpdate"
          @row-save="rowSave"
          @search-change="searchChange"
          @search-reset="searchReset"
          @selection-change="selectionChange"
          @current-change="currentChange"
          @size-change="sizeChange"
          @refresh-change="refreshChange"
          @on-load="onLoad"
        >
          <!-- 表格内操作按钮 -->
          <template slot="menu" slot-scope="scope">
            <el-button v-if="permissionList.editBtn && (scope.row.lcStatus == 'Editing' ? true : false)"
                       icon="el-icon-edit"
                       plain
                       size="small"
                       type="text"
                       @click="openEdit(scope.row)"
            >编 辑
            </el-button>
            <el-button v-if="permissionList.releaseBtn && (scope.row.lcStatus == 'Editing' ? true : false)"
                       :loading="releadDisabled"
                       icon="el-icon-position"
                       plain
                       size="small"
                       type="text"
                       @click="enableOrDeactivatse(scope.row.oid, 'release')"
            >发 布
            </el-button>
            <el-button v-if="permissionList.deactivateBtn && (scope.row.lcStatus == 'Released' ? true : false)"
                       icon="el-icon-video-pause"
                       plain
                       size="small"
                       type="text"
                       @click="enableOrDeactivatse(scope.row.oid, 'disable')"
            >停 用
            </el-button>
            <el-button v-if="permissionList.enableBtn && (scope.row.lcStatus == 'Disabled' ? true : false)"
                       icon="el-icon-video-play"
                       plain
                       size="small"
                       type="text"
                       @click="enableOrDeactivatse(scope.row.oid, 'enable')"
            >启 用
            </el-button>
          </template>
          <!-- 表格上方按钮区域 -->
          <template slot="menuLeft" slot-scope="scope">
            <el-button v-if="permissionList.rulDelBtn"
                       icon="el-icon-delete"
                       plain
                       size="small"
                       type="danger"
                       @click="handleDelete"
            >
              删 除
            </el-button>
            <el-button v-if="permissionList.advancedQueryBtn"
                       icon="el-icon-search"
                       plain
                       size="small"
                       type="primary"
                       @click="openAdvancedQuery('codeRule')">
              高级查询
            </el-button>
            <el-button v-if="permissionList.cloneBtn"
                       icon="icon-kelong"
                       plain
                       size="small"
                       @click="openCodeRuleDialog"
            >
              克 隆
            </el-button>
            <el-button v-if="permissionList.otherCloneBtn"
                       icon="icon-lianjiekelong"
                       plain
                       size="small"
                       style="font-size: 12px"
                       @click="openOtherCodeRuleDialog"
            >
              从其他规则中克隆码段
            </el-button>
            <el-button v-if="permissionList.usescopeBtn"
                       icon="el-icon-s-help"
                       plain
                       size="small"
                       @click="handleRange"
            >
              使用范围
            </el-button>
            <el-button v-if="permissionList.clearBtn"
                       icon="icon-qingkong"
                       plain
                       size="small"
                       @click="clearAllCodeSec"
            >
              清空码值
            </el-button>
            <el-button v-if="permissionList.escapeOwnerBtn"
                       icon="el-icon-guide"
                       plain
                       size="small"
                       @click="escapeOwner"
            >
              转移所有者
            </el-button>
            <el-button v-if="permissionList.maxSerialnumBtn"
                       icon="el-icon-data-analysis"
                       plain
                       size="small"
                       @click="maxSerialNum"
            >
              最大流水号
            </el-button>
          </template>
        </avue-crud>
      </div>
    </basic-container>
    <!-- 高级查询对话框 -->
@@ -217,105 +220,107 @@
    <!-- 基础码段展示区域 -->
    <basic-container class="code-basicsec-container">
      <p
        style="margin-top: -5px;
      <div style="height: 38.5vh;overflow: auto">
        <p
          style="margin-top: -5px;
          margin-bottom: 4px;
          font-weight: 570;
          font-size: 19px;
          color: #0e2d5f;">
        码段管理
      </p>
      <avue-crud
        ref="crudBasic"
        :data="basicData"
        :option="optionBasic"
        :permission="basicPermissionList"
        :table-loading="loadingBasic"
        class="code-basic-crud"
        @row-click="codeBasicSecRowClick"
        @search-change="basicSearchChange"
        @search-reset="basicSearchReset"
        @selection-change="selectionBasicChange"
        @refresh-change="refreshChangeBasicSec"
      >
        <!-- 基础码段表格内操作按钮 -->
        <template slot="menu" slot-scope="scope">
          <el-button v-if="basicPermissionList.viewBtn && currentRuleLcStatus != 'Editing'"
                     icon="el-icon-view"
                     plain
                     size="small"
                     type="text"
                     @click="openBasicDialog('view', scope.row)"
          >查看
          </el-button>
          <el-button v-if="basicPermissionList.editBtn && currentRuleLcStatus === 'Editing'"
                     icon="el-icon-edit"
                     plain
                     size="small"
                     type="text"
                     @click="openBasicDialog('edit', scope.row)"
          >编辑
          </el-button>
          <el-button
            v-if="basicPermissionList.basicMgrBtn && (scope.row.secType === 'codeclassifysec' || scope.row.secType == 'codefixedsec')"
            icon="el-icon-setting"
            plain
            size="small"
            type="text"
            @click="openBasicSecCodeValueMgr(scope.row)"
          >码值管理
          </el-button>
          <el-button v-if="basicPermissionList.basicMoveupBtn && scope.row.orderNum > 1"
                     icon="el-icon-arrow-up"
                     plain
                     size="small"
                     type="text"
                     @click="upOrderNum(scope.row)"
          >上移
          </el-button>
          <el-button v-if="basicPermissionList.basicDownBtn"
                     icon="el-icon-arrow-down"
                     plain
                     size="small"
                     type="text"
                     @click="downOrderNum(scope.row)"
          >下移
          </el-button>
        </template>
          码段管理
        </p>
        <avue-crud
          ref="crudBasic"
          :data="basicData"
          :option="optionBasic"
          :permission="basicPermissionList"
          :table-loading="loadingBasic"
          class="code-basic-crud"
          @row-click="codeBasicSecRowClick"
          @search-change="basicSearchChange"
          @search-reset="basicSearchReset"
          @selection-change="selectionBasicChange"
          @refresh-change="refreshChangeBasicSec"
        >
          <!-- 基础码段表格内操作按钮 -->
          <template slot="menu" slot-scope="scope">
            <el-button v-if="basicPermissionList.viewBtn && currentRuleLcStatus != 'Editing'"
                       icon="el-icon-view"
                       plain
                       size="small"
                       type="text"
                       @click="openBasicDialog('view', scope.row)"
            >查看
            </el-button>
            <el-button v-if="basicPermissionList.editBtn && currentRuleLcStatus === 'Editing'"
                       icon="el-icon-edit"
                       plain
                       size="small"
                       type="text"
                       @click="openBasicDialog('edit', scope.row)"
            >编辑
            </el-button>
            <el-button
              v-if="basicPermissionList.basicMgrBtn && (scope.row.secType === 'codeclassifysec' || scope.row.secType == 'codefixedsec')"
              icon="el-icon-setting"
              plain
              size="small"
              type="text"
              @click="openBasicSecCodeValueMgr(scope.row)"
            >码值管理
            </el-button>
            <el-button v-if="basicPermissionList.basicMoveupBtn && scope.row.orderNum > 1"
                       icon="el-icon-arrow-up"
                       plain
                       size="small"
                       type="text"
                       @click="upOrderNum(scope.row)"
            >上移
            </el-button>
            <el-button v-if="basicPermissionList.basicDownBtn"
                       icon="el-icon-arrow-down"
                       plain
                       size="small"
                       type="text"
                       @click="downOrderNum(scope.row)"
            >下移
            </el-button>
          </template>
        <!-- 基础码段表格左上方按钮区域 -->
        <template slot="menuLeft" slot-scope="scope">
          <el-button v-if="basicPermissionList.addBtn"
                     :disabled="selectionList.length <= 0"
                     icon="el-icon-plus"
                     size="small"
                     type="primary"
                     @click="openAddBasicCodeSec"
          >
            新 增
          </el-button>
          <el-button v-if="basicPermissionList.basicDelBtn"
                     :disabled="selectionList.length <= 0"
                     icon="el-icon-delete"
                     plain
                     size="small"
                     type="danger"
                     @click="deleteBasicCode(scope.row)"
          >
            删 除
          </el-button>
          <el-button v-if="basicPermissionList.basicAdvancedQueryBtn"
                     :disabled="selectionList.length <= 0"
                     icon="el-icon-search"
                     plain
                     size="small"
                     type="primary"
                     @click="openAdvancedQuery('codeBasicSec')"
          >
            高级查询
          </el-button>
        </template>
      </avue-crud>
          <!-- 基础码段表格左上方按钮区域 -->
          <template slot="menuLeft" slot-scope="scope">
            <el-button v-if="basicPermissionList.addBtn"
                       :disabled="selectionList.length <= 0"
                       icon="el-icon-plus"
                       size="small"
                       type="primary"
                       @click="openAddBasicCodeSec"
            >
              新 增
            </el-button>
            <el-button v-if="basicPermissionList.basicDelBtn"
                       :disabled="selectionList.length <= 0"
                       icon="el-icon-delete"
                       plain
                       size="small"
                       type="danger"
                       @click="deleteBasicCode(scope.row)"
            >
              删 除
            </el-button>
            <el-button v-if="basicPermissionList.basicAdvancedQueryBtn"
                       :disabled="selectionList.length <= 0"
                       icon="el-icon-search"
                       plain
                       size="small"
                       type="primary"
                       @click="openAdvancedQuery('codeBasicSec')"
            >
              高级查询
            </el-button>
          </template>
        </avue-crud>
      </div>
    </basic-container>
    <!-- 码段码值管理对话框 -->
@@ -587,7 +592,7 @@
    >
      <!--  第一层对话框,添加码段信息对话框中的内容 -->
      <div class="add-basicsec-total">
        <el-form :model="form" class="add-basicsec-form" :rules="rules" >
        <el-form :model="form" :rules="rules" class="add-basicsec-form">
          <span class="left">
            <el-form-item
              :label-width="leftFormLabelWidth"
@@ -883,11 +888,11 @@
                  <template>
                      <vciWebRefer
                        ref="refer"
                        :referConfig="this.referConfig || {}"
                        :display="true"
                        :value="form.customCodeSerialClass"
                        :text="form.customCodeSerialClassText"
                        :referConfig="this.referConfig || {}"
                        :serialType="form.serialType"
                        :text="form.customCodeSerialClassText"
                        :value="form.customCodeSerialClass"
                        @setReferValue="setReferValue"
                      ></vciWebRefer>
                  </template>
@@ -1023,9 +1028,9 @@
            <!-- 日期码段 -->
            <div v-show="form.secType === 'codedatesec' ? true : false">
              <el-form-item
                prop="Dateformat"
                :label-width="rightFormLabelWidth"
                label="日期格式:"
                prop="Dateformat"
              >
                <el-input
                  ref="codeDateFormatStr"
@@ -1343,7 +1348,7 @@
import vciWebRefer from "../../components/refer/vciWebRefer";
export default {
  components: { vciWebRefer },
  components: {vciWebRefer},
  data() {
    return {
      rules: {
@@ -1352,7 +1357,7 @@
            required: true,
            trigger: 'blur',
            validator: (rule, value, callback) => {
              const Formats = ['yy', 'yyyy', 'yyyy-MM', 'yy-MM', 'yyyy-MM-dd','yy-MM-dd', 'yyyy-MM-dd HH:mm:ss', 'yy-MM-dd HH:mm:ss', 'HH:mm:ss'];
              const Formats = ['yy', 'yyyy', 'yyyy-MM', 'yyyyMM','yyMM','yyyyMMdd','yyyyMMdd HH:mm:ss','yyMMdd HH:mm:ss','yy-MM', 'yyyy-MM-dd', 'yy-MM-dd', 'yyyy-MM-dd HH:mm:ss', 'yy-MM-dd HH:mm:ss', 'HH:mm:ss'];
              if (!Formats.includes(this.form.codeDateFormatStr)) {
                return callback(new Error('请输入正确日期格式,例如yyyy-MM-dd(并区分大小写)!'));
              }
@@ -1361,19 +1366,19 @@
          }
        ]
      },
      referConfig:{
      referConfig: {
        title: '自定义流水参照',
        showField: 'customCodeSerialClassText',
        field: 'customCodeSerialClass',
        fieldMap:  {
          serialType:"serialType"
        fieldMap: {
          serialType: "serialType"
        },
        placeholder:'请选择自定义流水',
        options:   {
        placeholder: '请选择自定义流水',
        options: {
          // 设置默认的属性
          url: 'api/ubcs-code/codeSerialAlgorithmController/gridCodeSerialAlgorithm',
          textField:'name',
          valueField:'classFullName',
          textField: 'name',
          valueField: 'classFullName',
          isMuti: false,
          type: "grid",
          method: 'get',
@@ -1715,8 +1720,8 @@
  },
  methods: {
    //自定义流水失焦
    setReferValue(data){
      if(data.field){
    setReferValue(data) {
      if (data.field) {
        this.form[data.field] = data.value || "";
        this.form[data.showField] = data.text || "";
        this.form.serialType = data.rawData[0].serialType || "";
@@ -2308,6 +2313,7 @@
    },
    /** 上移下移等操作的保存*/
    async saveCodeFixedOrClassifyValueOption(condition, editOrderNumdata) {
      //保存对固定码段码值的上移下移移出等操作
      if (condition == "fixedValue") {
        let data = {
@@ -2443,6 +2449,8 @@
          },
          {
            data: [],
            title: "描述",
            fieldType: "text",
            queryField: "description",
@@ -2784,7 +2792,11 @@
    },
    /** 新增基础码段*/
    async saveOrEditBasicCode() {
      this.isLoadingSecCodeAddBtn = true;
      const Formats = ['yy', 'yyyy', 'yyyy-MM', 'yyyyMM','yyMM','yyyyMMdd','yyyyMMdd HH:mm:ss','yyMMdd HH:mm:ss','yy-MM', 'yyyy-MM-dd', 'yy-MM-dd', 'yyyy-MM-dd HH:mm:ss', 'yy-MM-dd HH:mm:ss', 'HH:mm:ss'];
      if (!Formats.includes(this.form.codeDateFormatStr)) {
        this.$message.error('请检查日期格式!');
        return;
      }
      if (
        this.selectionList[0].oid == null ||
        this.selectionList[0].oid == ""
@@ -2792,26 +2804,28 @@
        this.$message.warning("缺失必要参数,请重新选择编码规则后再试!");
        return;
      }
      if (!this.checkForm()) {
        return;
      }
      this.isLoadingSecCodeAddBtn = true;
      this.form.pkCodeRule = this.selectionList[0].oid;
      if (this.form.oid == "" || this.form.oid == null) {
        if (this.checkForm()) {
          await addSave(this.form).then(
            () => {
              this.$message({
                type: "success",
                message: "操作成功!",
              });
              console.log(this.form)
              // 关闭对话框
              this.addBasicCodeSettingBox = false;
              // 点击新增基础码段,关闭窗口之后触发重新加载
              this.loadBasic(this.selectionList[0]);
            },
            (error) => {
              window.console.log(error);
            }
          );
        }
        await addSave(this.form).then(
          () => {
            this.$message({
              type: "success",
              message: "操作成功!",
            });
            console.log(this.form)
            // 关闭对话框
            this.addBasicCodeSettingBox = false;
            // 点击新增基础码段,关闭窗口之后触发重新加载
            this.loadBasic(this.selectionList[0]);
          },
          (error) => {
            window.console.log(error);
          }
        );
      } else {
        // 可能参照引用的业务类型会发生改变所以这儿直接对referConfig的json进行改变
        if (
@@ -2825,7 +2839,7 @@
          // let referValueInfo = JSON.parse(this.form.referValueInfo);
          // referValueInfo.referType = this.form.referBtmId;
        }
        let oldBasicSec = this.selectionBasicList.at(-1);
        let oldBasicSec = this.selectionBasicList.slice(-1)[0];
        let secType = this.form.secType;
        Vue.set(this.form, 'isClearValue', false);
        if ((oldBasicSec.secType == "codefixedsec" || oldBasicSec.secType === "codeclassifysec") && oldBasicSec.secType != secType) {
@@ -3066,7 +3080,7 @@
      if (!this.tipsMessage(this.selectionBasicList)) {
        return;
      }
      if (this.selectionList.at(-1).lcStatus != "Editing") {
      if (this.selectionList.slice(-1)[0].lcStatus != "Editing") {
        this.$message.warning('编码规则状态不是"编辑中",不允许删除码段!');
        return;
      }
@@ -3212,7 +3226,7 @@
    },
    /** 基础码段刷新时查询*/
    refreshChangeBasicSec() {
      this.loadBasic(this.selectionList.at(-1));
      this.loadBasic(this.selectionList.slice(-1)[0]);
    },
    /** 操作基础码段中搜索清空等按钮的显示/隐藏*/
    hideBasicTable(hideBoolean) {
@@ -3288,7 +3302,7 @@
    },
    /** 码段类型改变时,增加对应的form表单中的属性*/
    changeSectypeFormItems(row) {
      console.log(row)
      //console.log(row)
      if (
        func.isEmpty(this.enumParam.secTypeList) ||
        this.enumParam.secTypeList.length == 0
@@ -3548,10 +3562,6 @@
  font-size: 12px !important;
}
.code-rule-crud > .avue-crud__search,
.code-basic-crud > .avue-crud__search {
  margin-bottom: -15px;
}
.clone-input-textarea > .el-form-item__content {
  width: 495px;
@@ -3670,7 +3680,7 @@
.right {
  /* float: right; */
  margin-right: 2vw;
  /* margin-right: 1vw; */
  height: 100%;
  width: auto;
}