| | |
| | | <template> |
| | | <basic-container style="height: 100%;"> |
| | | |
| | | <basic-container class="code-total" style=" height: 100%"> |
| | | <!-- 编码规则信息展示区域 --> |
| | | <basic-container class="code-rule-container"> |
| | | <p style="margin-top: -5px; margin-bottom: 4px; font-weight: 570; font-size: 19px; color: #0e2d5f;">编码规则</p> |
| | | <avue-crud class="code-rule-crud" |
| | | :option="optionRule" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | :page.sync="page" |
| | | :permission="permissionList" |
| | | v-model="ruleForm" |
| | | ref="crud" |
| | | :before-open="beforeOpen" |
| | | @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 type="text" |
| | | size="small" |
| | | icon="el-icon-edit" |
| | | v-show="scope.row.lcStatus=='Editing' ? true:false" |
| | | plain |
| | | @click="openEdit(scope.row)">编 辑 |
| | | </el-button> |
| | | <el-button type="text" |
| | | size="small" |
| | | icon="el-icon-position" |
| | | v-show="scope.row.lcStatus=='Editing' ? true:false" |
| | | plain |
| | | @click="enableOrDeactivatse(scope.row.oid,'release')">发 布 |
| | | </el-button> |
| | | <el-button type="text" |
| | | size="small" |
| | | v-show="scope.row.lcStatus=='Released' ? true:false" |
| | | icon="el-icon-video-pause" |
| | | plain |
| | | @click="enableOrDeactivatse(scope.row.oid,'disable')">停 用 |
| | | </el-button> |
| | | <el-button type="text" |
| | | size="small" |
| | | v-show="scope.row.lcStatus=='Disabled' ? true:false" |
| | | icon="el-icon-video-play" |
| | | plain |
| | | @click="enableOrDeactivatse(scope.row.oid,'enable')">启 用 |
| | | </el-button> |
| | | </template> |
| | | <!-- 表格上方按钮区域 --> |
| | | <template slot="menuLeft" slot-scope="scope"> |
| | | <el-button type="danger" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | | plain |
| | | @click="handleDelete"> |
| | | 删 除 |
| | | </el-button> |
| | | <el-button type="primary" |
| | | size="small" |
| | | icon="el-icon-search" |
| | | plain |
| | | @click="openAdvancedQuery('codeRule')"> |
| | | 高级查询 |
| | | </el-button> |
| | | <el-button |
| | | size="small" |
| | | icon="icon-kelong" |
| | | plain |
| | | @click="openCodeRuleDialog"> |
| | | 克 隆 |
| | | </el-button> |
| | | <el-button |
| | | size="small" |
| | | icon="icon-lianjiekelong" |
| | | style="font-size: 12px;" |
| | | plain |
| | | @click="openOtherCodeRuleDialog"> |
| | | 从其他规则中克隆码段 |
| | | </el-button> |
| | | <el-button |
| | | size="small" |
| | | icon="el-icon-s-help" |
| | | plain |
| | | @click="handleRange"> |
| | | 使用范围 |
| | | </el-button> |
| | | <el-button |
| | | size="small" |
| | | icon="icon-qingkong" |
| | | plain |
| | | @click="clearAllCodeSec"> |
| | | <div style="height: 49vh;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 |
| | | size="small" |
| | | icon="el-icon-guide" |
| | | plain |
| | | @click="escapeOwner"> |
| | | </el-button> |
| | | <el-button v-if="permissionList.escapeOwnerBtn" |
| | | icon="el-icon-guide" |
| | | plain |
| | | size="small" |
| | | @click="escapeOwner" |
| | | > |
| | | 转移所有者 |
| | | </el-button> |
| | | </template> |
| | | </avue-crud> |
| | | </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> |
| | | |
| | | <!-- 高级查询对话框 --> |
| | |
| | | :ref="advancedQueryParam.ref" |
| | | :options="advancedQueryParam.options" |
| | | :visible.sync="advancedQueryParam.advancedQuerySettingBox" |
| | | @echoContion="echoSeniorContionMap"> |
| | | @echoContion="echoSeniorContionMap" |
| | | > |
| | | </advanced-query> |
| | | |
| | | <!-- 编码规则相关对话框 --> |
| | | <el-dialog title="编码规则使用范围" |
| | | append-to-body |
| | | <!-- 以下是编码规则相关对话框 --> |
| | | <el-dialog |
| | | :visible.sync="codeRangeSettingBox" |
| | | append-to-body |
| | | class="avue-dialog avue-dialog--top" |
| | | style="height: 100vh" |
| | | title="编码规则使用范围" |
| | | top="-3%" |
| | | width="800px" |
| | | style="height: 116vh; margin-top: -10vh;"> |
| | | > |
| | | <avue-crud |
| | | :data="useRangeData" |
| | | :option="dialogeOption" |
| | | :table-loading="dialogLoading" |
| | | :data="useRangeData" |
| | | @refresh-change="refreshUseRangeChange"> |
| | | style="margin-top: -40px" |
| | | @refresh-change="refreshUseRangeChange" |
| | | > |
| | | </avue-crud> |
| | | </el-dialog> |
| | | |
| | | <!-- 编码规则,克隆对话框 --> |
| | | <el-dialog title="克隆编码规则" |
| | | append-to-body |
| | | <clone-rule-dialog |
| | | :ruleData="selectionList[0]" |
| | | :visible.sync="cloneSettingBox" |
| | | width="800px" |
| | | style="height: 120vh; margin-top: -14vh; overflow: hidden;"> |
| | | <div style="overflow-y: auto; height: 78vh"> |
| | | <el-row> |
| | | <el-form ref="form" :model="form" label-width="80px" :inline="true"> |
| | | <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 label="描述" class="clone-input-textarea"> |
| | | <el-input :autosize="{ minRows: 3, maxRows: 5}" type="textarea" v-model="cloneCodeRuleForm.description"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | </el-row> |
| | | <el-row> |
| | | <p style="margin: -3vh 0px 16px 50%; font-weight: 500; font-size: 16px; color: #000;">码段管理</p> |
| | | <avue-crud |
| | | class="clone-avue-crud" |
| | | :option="cloneOption" |
| | | :table-loading="cloneTableLoading" |
| | | :data="cloneData" |
| | | @on-load="cloneDataOnLoad"> |
| | | <template slot="menu" slot-scope="scope"> |
| | | <el-button |
| | | type="text" |
| | | size="small" |
| | | icon="el-icon-arrow-up" |
| | | v-show="scope.row.orderNum > 1" |
| | | plain |
| | | @click="upOrderNum(scope.row)">上移 |
| | | </el-button> |
| | | <el-button |
| | | type="text" |
| | | size="small" |
| | | icon="el-icon-arrow-down" |
| | | plain |
| | | @click="downOrderNum(scope.row)">下移 |
| | | </el-button> |
| | | </template> |
| | | </avue-crud> |
| | | </el-row> |
| | | </div> |
| | | <div slot="footer" class="dialog-footer" style="height: 50px; margin-top: -4vh;"> |
| | | <el-button type="primary" @click="saveCloneCodeRule">保 存</el-button> |
| | | <el-button @click="cloneSettingBox = false">取 消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | @refreshRuleTable="onLoad"> |
| | | </clone-rule-dialog> |
| | | |
| | | <!-- 编码规则,从其他规则克隆对话框 --> |
| | | <el-dialog title="克隆编码规则的基础信息" |
| | | append-to-body |
| | | <clone-other-basic-sec-dialog |
| | | :quiltCloneCodeRule="selectionList[0]" |
| | | :visible.sync="cloneOtherCodeRuleSettingBox" |
| | | width="800px" |
| | | style="height: 150vh; margin-top: -14vh;" |
| | | destroy-on-close> |
| | | <div> |
| | | <el-row> |
| | | <p style="margin-top: -12px; margin-bottom: 4px; font-weight: 570; font-size: 19px; color: #0e2d5f;">编码规则</p> |
| | | <avue-crud |
| | | class="other-clone-coderule-crud" |
| | | :option="cloneCodeRuleOption" |
| | | @row-click="codeOtherCloneRuleRowClick" |
| | | :table-loading="loading" |
| | | :data="data" |
| | | :page.sync="page" |
| | | ref="crudCloneCodeRuleOther" |
| | | @size-change="sizeChange" |
| | | @selection-change="selectionOtherCloneCodeRuleChange" |
| | | @on-load="onLoad"> |
| | | </avue-crud> |
| | | </el-row> |
| | | <el-row> |
| | | <p style="margin-top: -12px; margin-bottom: 4px; font-weight: 570; font-size: 19px; color: #0e2d5f;">码段信息</p> |
| | | <avue-crud |
| | | class="other-clone-codebasic-crud" |
| | | :option="cloneBasicOption" |
| | | ref="crudCloneCodeBasicOther" |
| | | :table-loading="loadingBasic" |
| | | :data="basicData" |
| | | @row-click="codeOtherCloneBasicRowClick" |
| | | @selection-change="selectionOtherCloneCodeBasicChange"> |
| | | </avue-crud> |
| | | </el-row> |
| | | </div> |
| | | <div slot="footer" class="dialog-footer" style="height: 50px; margin-top: -4vh;"> |
| | | <el-button type="primary" @click="saveOtherCodeBasic">保 存</el-button> |
| | | <el-button @click="cloneOtherCodeRuleSettingBox = false">取 消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | @refreshRuleTable="onLoad"> |
| | | </clone-other-basic-sec-dialog> |
| | | |
| | | <!-- 编码规则,转移所有者对话框 --> |
| | | <el-dialog |
| | | :visible.sync="escapeOwnerVisible" |
| | | append-to-body |
| | | class="avue-dialog avue-dialog--top" |
| | | title="转移所有者" |
| | | width="30%"> |
| | | <el-select v-model="ruleOwner" placeholder="请选择" class="selects"> |
| | | width="30%" |
| | | > |
| | | <el-select v-model="ruleOwner" class="selects" placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in ruleAdminUserList" |
| | | :key="item.VALUE" |
| | | :label="item.LABLE" |
| | | :value="item.VALUE" |
| | | class="seloption"> |
| | | class="seloption" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="escapeOwnerVisible = false">取 消</el-button> |
| | | <el-button type="primary" @click="escapeOwnerConfirm">确 定</el-button> |
| | | </span> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="escapeOwnerVisible = false">取 消</el-button> |
| | | <el-button type="primary" @click="escapeOwnerConfirm">确 定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | |
| | | <!-- 最大流水号对话框 --> |
| | | <max-serialnum-dialog |
| | | :ruleOid="maxSerial.ruleOid" |
| | | :visible.sync="maxSerial.visible" |
| | | ></max-serialnum-dialog> |
| | | |
| | | <!-- 基础码段展示区域 --> |
| | | <basic-container class="code-basicsec-container"> |
| | | <p style="margin-top: -5px; margin-bottom: 4px; font-weight: 570; font-size: 19px; color: #0e2d5f;">码段管理</p> |
| | | <avue-crud class="code-basic-crud" |
| | | :option="optionBasic" |
| | | ref="crudBasic" |
| | | :table-loading="loadingBasic" |
| | | :data="basicData" |
| | | @row-click="codeBasicSecRowClick" |
| | | @search-change="basicSearchChange" |
| | | @search-reset="basicSearchReset" |
| | | :permission="permissionList" |
| | | @selection-change="selectionBasicChange" |
| | | @refresh-change="refreshChangeBasicSec"> |
| | | <div style="height: 29.3vh;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> |
| | | |
| | | <!-- 基础码段表格内操作按钮 --> |
| | | <template slot="menu" slot-scope="scope"> |
| | | <el-button |
| | | type="text" |
| | | size="small" |
| | | icon="el-icon-view" |
| | | v-show="currentRuleLcStatus != 'Editing'" |
| | | plain |
| | | @click="openBasicDialog('view',scope.row)">查看 |
| | | </el-button> |
| | | <el-button |
| | | type="text" |
| | | size="small" |
| | | icon="el-icon-edit" |
| | | v-show="currentRuleLcStatus === 'Editing'" |
| | | plain |
| | | @click="openBasicDialog('edit',scope.row)">编辑 |
| | | </el-button> |
| | | <el-button |
| | | type="text" |
| | | size="small" |
| | | icon="el-icon-setting" |
| | | v-show="scope.row.secType === 'codeclassifysec' || scope.row.secType == 'codefixedsec'" |
| | | plain |
| | | @click="openBasicSecCodeValueMgr(scope.row)">码值管理 |
| | | </el-button> |
| | | <el-button |
| | | type="text" |
| | | size="small" |
| | | icon="el-icon-arrow-up" |
| | | v-show="scope.row.orderNum > 1" |
| | | plain |
| | | @click="upOrderNum(scope.row)">上移 |
| | | </el-button> |
| | | <el-button |
| | | type="text" |
| | | size="small" |
| | | icon="el-icon-arrow-down" |
| | | plain |
| | | @click="downOrderNum(scope.row)">下移 |
| | | </el-button> |
| | | </template> |
| | | |
| | | <!-- 基础码段表格左上方按钮区域 --> |
| | | <template slot="menuLeft" slot-scope="scope"> |
| | | <el-button type="primary" |
| | | size="small" |
| | | icon="el-icon-plus" |
| | | :disabled="selectionList.length <= 0" |
| | | @click="openAddBasicCodeSec"> |
| | | 新 增 |
| | | </el-button> |
| | | <el-button type="danger" |
| | | size="small" |
| | | icon="el-icon-delete" |
| | | :disabled="selectionList.length <= 0" |
| | | plain |
| | | @click="deleteBasicCode(scope.row)"> |
| | | 删 除 |
| | | </el-button> |
| | | <el-button type="primary" |
| | | size="small" |
| | | icon="el-icon-search" |
| | | plain |
| | | :disabled="selectionList.length <= 0" |
| | | @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> |
| | | |
| | | <!-- 码段码值管理对话框 --> |
| | | <el-dialog title="码段码值管理" |
| | | <el-dialog |
| | | :visible.sync="isShowBasicSecCodeValueMgr" |
| | | :width="isShowFixedForm ? '68vw':'50vw'" |
| | | :width="isShowFixedForm ? '69vw' : '50vw'" |
| | | append-to-body |
| | | style="height: 116vh; margin-top: -10vh;" |
| | | class="avue-dialog avue-dialog--top" |
| | | destroy-on-close |
| | | style="height: 110vh" |
| | | title="码段码值管理" |
| | | top="-3%" |
| | | @close="clearFixedOrClassifyForm('close')" |
| | | destroy-on-close> |
| | | > |
| | | <!-- 分类码段码值管理 --> |
| | | <el-row v-show="!isShowFixedForm"> |
| | | <el-col :span="11"> |
| | | <basic-container> |
| | | <div class="box classify_value_box" style="height:65vh; margin-bottom:-40px"> |
| | | <el-scrollbar style="border-bottom-right-radius:8px "> |
| | | <basic-container> |
| | | <div class="abox" style="height:54vh"> |
| | | <avue-tree |
| | | :data="classifyValueTreeData" |
| | | :option="classisyValueTreeOption" |
| | | @node-click="classisyValueTreeOnodeClick" |
| | | style="overflow-y: auto; height: 54vh"/> |
| | | </div> |
| | | </basic-container> |
| | | </el-scrollbar> |
| | | <basic-container style="overflow:hidden"> |
| | | <div |
| | | class="box classify_value_box" |
| | | style="height: 60vh; margin-bottom: -40px" |
| | | > |
| | | <basic-container> |
| | | <div class="abox"> |
| | | <avue-tree |
| | | :data="classifyValueTreeData" |
| | | :option="classisyValueTreeOption" |
| | | style="height: calc(60vh - 100px);" |
| | | @node-click="classisyValueTreeOnodeClick" |
| | | /> |
| | | </div> |
| | | </basic-container> |
| | | </div> |
| | | <div style="margin-top:20px; display: flex; align-items:center; justify-content:center;"> |
| | | <el-button size="mini" type="primary" icon="el-icon-arrow-up" class="button" @click="codeClassifyValueOpetion('up')">上移</el-button> |
| | | <el-button size="mini" type="primary" icon="el-icon-arrow-down" class="button" @click="codeClassifyValueOpetion('down')">下移</el-button> |
| | | <div |
| | | style=" |
| | | margin-top: 20px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | " |
| | | > |
| | | <el-button |
| | | class="button" |
| | | icon="el-icon-arrow-up" |
| | | size="mini" |
| | | type="primary" |
| | | @click="codeClassifyValueOpetion('up')" |
| | | >上移 |
| | | </el-button> |
| | | <el-button |
| | | class="button" |
| | | icon="el-icon-arrow-down" |
| | | size="mini" |
| | | type="primary" |
| | | @click="codeClassifyValueOpetion('down')" |
| | | >下移 |
| | | </el-button> |
| | | </div> |
| | | </basic-container> |
| | | </el-col> |
| | | <el-col :span="13"> |
| | | <basic-container> |
| | | <div class="box" style="height:65vh; margin-bottom:-40px"> |
| | | <el-form> |
| | | <el-form-item label="码值:" :label-width="50" required> |
| | | <el-input style="width: 18vw" v-model="codeClassifyForm.id"></el-input> |
| | | </el-form-item > |
| | | <el-form-item label="名称:" :label-width="50" required> |
| | | <el-input style="width: 18vw" v-model="codeClassifyForm.name"></el-input> |
| | | <div class="box" style="height: 60vh; margin-bottom: -40px"> |
| | | <el-form label-width="55px"> |
| | | <el-form-item label="名称:" required> |
| | | <el-input v-model="codeClassifyForm.name"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="码值:"> |
| | | <el-input v-model="codeClassifyForm.id"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <div style="margin-top:20px; display: flex; align-items:center; justify-content:center;"> |
| | | <el-button size="mini" type="primary" icon="el-icon-circle-plus" class="button" @click="addCodeSecValue('codeclassifyvaluesec')">添加</el-button> |
| | | <el-button :disabled="selectedFixedOrCodeclassifyValue==''" size="mini" type="success" plain icon="el-icon-edit-outline" class="button" @click="editCodeSecValue('codeclassifyvaluesec')">修改</el-button> |
| | | <el-button :disabled="selectedFixedOrCodeclassifyValue==''" size="mini" type="danger" icon="el-icon-close" class="button" @click="delCodeSecValue('codeclassifyvaluesec')">删除</el-button> |
| | | <el-button size="mini" type="warning" plain icon="el-icon-close" class="button" @click = "clearFixedOrClassifyForm('codeclassifyvaluesec')">取消</el-button> |
| | | <div |
| | | style=" |
| | | margin-top: 20px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center;"> |
| | | <el-button |
| | | class="button" |
| | | icon="el-icon-circle-plus" |
| | | size="mini" |
| | | type="primary" |
| | | @click="addCodeSecValue('codeclassifyvaluesec')" |
| | | >添加 |
| | | </el-button> |
| | | <el-button |
| | | :disabled="selectedFixedOrCodeclassifyValue == ''" |
| | | class="button" |
| | | icon="el-icon-edit-outline" |
| | | plain |
| | | size="mini" |
| | | type="success" |
| | | @click="editCodeSecValue('codeclassifyvaluesec')" |
| | | >修改 |
| | | </el-button> |
| | | <el-button |
| | | :disabled="selectedFixedOrCodeclassifyValue == ''" |
| | | class="button" |
| | | icon="el-icon-close" |
| | | size="mini" |
| | | type="danger" |
| | | @click="delCodeSecValue('codeclassifyvaluesec')" |
| | | >删除 |
| | | </el-button> |
| | | <el-button |
| | | class="button" |
| | | icon="el-icon-close" |
| | | plain |
| | | size="mini" |
| | | type="warning" |
| | | @click="clearFixedOrClassifyForm('codeclassifyvaluesec')" |
| | | >取消 |
| | | </el-button> |
| | | </div> |
| | | </basic-container> |
| | | </el-col> |
| | |
| | | <el-row v-show="isShowFixedForm"> |
| | | <el-col :span="15"> |
| | | <basic-container> |
| | | <div class="box fixedbox" style="height:65vh; margin-bottom:-40px"> |
| | | <div |
| | | class="box fixedbox" |
| | | style="height: 63vh; margin-bottom: -40px" |
| | | > |
| | | <avue-crud |
| | | class="fixed-avue-crud" |
| | | ref="crudFixedValue" |
| | | :data="fixedValueData" |
| | | :option="fixedValueOption" |
| | | :table-loading="fixedValueOptionLoading" |
| | | @row-click="selectedCodeValueRow"> |
| | | class="fixed-avue-crud" |
| | | @row-click="selectedCodeValueRow" |
| | | > |
| | | <!-- 表格内按钮配置 --> |
| | | <template slot="menu" slot-scope="scope"> |
| | | <el-button size="mini" type="text" icon="el-icon-arrow-up" @click="codeFixedValueOpetion('up',scope.row)">上移</el-button> |
| | | <el-button size="mini" type="text" icon="el-icon-arrow-down" @click="codeFixedValueOpetion('down',scope.row)">下移</el-button> |
| | | <el-button size="mini" type="text" icon="el-icon-minus" @click="codeFixedValueOpetion('remove',scope.row)">移除</el-button> |
| | | <el-button |
| | | icon="el-icon-arrow-up" |
| | | size="mini" |
| | | type="text" |
| | | @click="codeFixedValueOpetion('up', scope.row)" |
| | | >上移 |
| | | </el-button> |
| | | <el-button |
| | | icon="el-icon-arrow-down" |
| | | size="mini" |
| | | type="text" |
| | | @click="codeFixedValueOpetion('down', scope.row)" |
| | | >下移 |
| | | </el-button> |
| | | <el-button |
| | | icon="el-icon-minus" |
| | | size="mini" |
| | | type="text" |
| | | @click="codeFixedValueOpetion('remove', scope.row)" |
| | | >移除 |
| | | </el-button> |
| | | </template> |
| | | </avue-crud> |
| | | </div> |
| | | <div style="margin-top:20px;"> |
| | | <el-button size="mini" type="primary" icon="el-icon-success" class="button" @click="saveCodeFixedOrClassifyValueOption('fixedValue')">保存</el-button> |
| | | <div style="margin-top: 10px"> |
| | | <el-button |
| | | class="button" |
| | | icon="el-icon-success" |
| | | size="mini" |
| | | type="primary" |
| | | @click="saveCodeFixedOrClassifyValueOption('fixedValue')" |
| | | >保存 |
| | | </el-button> |
| | | </div> |
| | | </basic-container> |
| | | </el-col> |
| | | <el-col :span="9"> |
| | | <basic-container> |
| | | <div class="box" style="height: 65vh; margin-bottom:-40px; overflow:hidden;" > |
| | | <div style="overflow-y:auto;height: 60vh;"> |
| | | <div |
| | | class="box" |
| | | style="height: 63vh; margin-bottom: -40px; overflow: hidden" |
| | | > |
| | | <div style="overflow-y: auto; height: 58vh"> |
| | | <el-form> |
| | | <el-form-item label="码值:" label-width="54px" required> |
| | | <el-input style="width: 19.5vw" v-model="codeFixdForm.id"></el-input> |
| | | </el-form-item > |
| | | <el-form-item label="描述:"> |
| | | <el-input type="textarea" style="width: 20vw;" v-model="codeFixdForm.description"></el-input> |
| | | <el-input |
| | | v-model="codeFixdForm.id" |
| | | style="width: 19.5vw" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="描述:" label-width="54px"> |
| | | <el-input |
| | | v-model="codeFixdForm.description" |
| | | style="width: 19.5vw" |
| | | type="textarea" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | </div> |
| | | <div style="margin-top:20px; display: flex; align-items:center; justify-content:center;"> |
| | | <el-button :disabled="selectedFixedOrCodeclassifyValue!=''" size="mini" type="primary" icon="el-icon-circle-plus" class="button" @click="addCodeSecValue('codefixedsec')">添加</el-button> |
| | | <el-button :disabled="selectedFixedOrCodeclassifyValue==''" size="mini" type="success" plain icon="el-icon-edit-outline" class="button" @click="editCodeSecValue('codefixedsec')">修改</el-button> |
| | | <el-button :disabled="selectedFixedOrCodeclassifyValue==''" size="mini" type="danger" icon="el-icon-close" class="button" @click="delCodeSecValue('codefixedsec')">删除</el-button> |
| | | <el-button size="mini" type="warning" plain icon="el-icon-close" class="button" @click = "clearFixedOrClassifyForm('codefixedsec')">取消</el-button> |
| | | <div |
| | | style=" |
| | | margin-top: 10px; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | " |
| | | > |
| | | <el-button |
| | | :disabled="selectedFixedOrCodeclassifyValue != ''" |
| | | class="button" |
| | | icon="el-icon-circle-plus" |
| | | size="mini" |
| | | type="primary" |
| | | @click="addCodeSecValue('codefixedsec')" |
| | | >添加 |
| | | </el-button> |
| | | <el-button |
| | | :disabled="selectedFixedOrCodeclassifyValue == ''" |
| | | class="button" |
| | | icon="el-icon-edit-outline" |
| | | plain |
| | | size="mini" |
| | | type="success" |
| | | @click="editCodeSecValue('codefixedsec')" |
| | | >修改 |
| | | </el-button> |
| | | <el-button |
| | | :disabled="selectedFixedOrCodeclassifyValue == ''" |
| | | class="button" |
| | | icon="el-icon-close" |
| | | size="mini" |
| | | type="danger" |
| | | @click="delCodeSecValue('codefixedsec')" |
| | | >删除 |
| | | </el-button> |
| | | <el-button |
| | | class="button" |
| | | icon="el-icon-close" |
| | | plain |
| | | size="mini" |
| | | type="warning" |
| | | @click="clearFixedOrClassifyForm('codefixedsec')" |
| | | >取消 |
| | | </el-button> |
| | | </div> |
| | | </basic-container> |
| | | </el-col> |
| | |
| | | </el-dialog> |
| | | |
| | | <!-- 基础码段新增相关对话框 --> |
| | | <el-dialog :title="basicSecDialogTitle" |
| | | <el-dialog |
| | | :close-on-click-modal="false" |
| | | :title="basicSecDialogTitle" |
| | | :visible.sync="addBasicCodeSettingBox" |
| | | width="60vw" |
| | | append-to-body |
| | | style="height: 115vh; margin-top: -13vh; overflow: hidden" |
| | | class="avue-dialog avue-dialog--top add-basicsec-dialog" |
| | | destroy-on-close |
| | | lock-scroll |
| | | :close-on-click-modal="false" |
| | | @close="clearBasicAddForm"> |
| | | |
| | | style="height: 105vh" |
| | | top="-3%" |
| | | width="900px" |
| | | @close="clearBasicAddForm" |
| | | > |
| | | <!-- 第一层对话框,添加码段信息对话框中的内容 --> |
| | | <div class="add-basicsec-total" style="overflow-y: auto; height: 70vh"> |
| | | <el-form :model="form" class="add-basicsec-form"> |
| | | <div class="add-basicsec-total"> |
| | | <el-form :model="form" :rules="rules" class="add-basicsec-form"> |
| | | <span class="left"> |
| | | <el-form-item label="码段编号:" :label-width="leftFormLabelWidth" required> |
| | | <el-input v-model="form.id" :readonly="basicSecOnlyRead" ref="id"></el-input> |
| | | <el-form-item |
| | | :label-width="leftFormLabelWidth" |
| | | label="码段编号:" |
| | | required |
| | | > |
| | | <el-input |
| | | ref="id" |
| | | v-model="form.id" |
| | | :readonly="basicSecOnlyRead" |
| | | ></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="码段名称:" :label-width="leftFormLabelWidth" required> |
| | | <el-input ref="name" v-model="form.name" :readonly="basicSecOnlyRead"></el-input> |
| | | <el-form-item |
| | | :label-width="leftFormLabelWidth" |
| | | label="码段名称:" |
| | | required |
| | | > |
| | | <el-input |
| | | ref="name" |
| | | v-model="form.name" |
| | | :readonly="basicSecOnlyRead" |
| | | ></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="码段类型" :label-width="leftFormLabelWidth" required> |
| | | <el-select v-model="form.secType" placeholder="请选择" @change="changeSectypeFormItems(null)" :disabled="basicSecOnlyRead"> |
| | | <el-form-item |
| | | :label-width="leftFormLabelWidth" |
| | | label="码段类型:" |
| | | required |
| | | > |
| | | <el-select |
| | | v-model="form.secType" |
| | | :disabled="basicSecOnlyRead" |
| | | placeholder="请选择" |
| | | @change="changeSectypeFormItems(null)" |
| | | > |
| | | <el-option |
| | | v-for="item in enumParam.secTypeList" |
| | | :key="item.itemValue" |
| | | :label="item.itemName" |
| | | :value="item.itemValue"> |
| | | :value="item.itemValue" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="描述:" :label-width="leftFormLabelWidth"> |
| | | <el-input type="textarea" v-model="form.description" :readonly="basicSecOnlyRead"></el-input> |
| | | <el-form-item |
| | | :label-width="leftFormLabelWidth" |
| | | label="前缀:"> |
| | | <!-- <el-input |
| | | v-model="form.prefixCode" |
| | | :readonly="basicSecOnlyRead" |
| | | ></el-input> --> |
| | | <el-select v-model="form.prefixCode" :disabled="basicSecOnlyRead" clearable> |
| | | <el-option |
| | | v-for="(option, index) in preFixOrSuffixChars" |
| | | :key="index" |
| | | :label="option.label" |
| | | :value="option.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="是否流水依赖:" :label-width="leftFormLabelWidth"> |
| | | <el-switch v-model="form.serialDependFlag" :disabled="basicSecOnlyRead"></el-switch> |
| | | <el-input-number v-show="form.serialDependFlag" v-model="form.serialDependOrder" controls-position="right" :readonly="basicSecOnlyRead"></el-input-number> |
| | | <el-form-item |
| | | :label-width="leftFormLabelWidth" |
| | | label="后缀:"> |
| | | <!-- <el-input |
| | | v-model="form.suffixCode" |
| | | :readonly="basicSecOnlyRead"> |
| | | </el-input> --> |
| | | <el-select v-model="form.suffixCode" :disabled="basicSecOnlyRead" clearable> |
| | | <el-option |
| | | v-for="(option, index) in preFixOrSuffixChars" |
| | | :key="index" |
| | | :label="option.label" |
| | | :value="option.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="是否为空:" :label-width="leftFormLabelWidth"> |
| | | <el-switch v-model="form.nullableFlag" :disabled="basicSecOnlyRead"></el-switch> |
| | | <el-form-item :label-width="leftFormLabelWidth" label="描述:"> |
| | | <el-input |
| | | v-model="form.description" |
| | | :readonly="basicSecOnlyRead" |
| | | type="textarea" |
| | | ></el-input> |
| | | </el-form-item> |
| | | |
| | | <el-form-item |
| | | :label-width="leftFormLabelWidth" |
| | | label="是否流水依赖:" |
| | | > |
| | | <el-switch |
| | | v-model="form.serialDependFlag" |
| | | :disabled="basicSecOnlyRead" |
| | | style="margin-right: 20px" |
| | | ></el-switch> |
| | | <!-- <el-input-number |
| | | v-show="form.serialDependFlag" |
| | | v-model="form.serialDependOrder" |
| | | :readonly="basicSecOnlyRead" |
| | | controls-position="right" |
| | | ></el-input-number> --> |
| | | </el-form-item> |
| | | |
| | | <el-form-item :label-width="leftFormLabelWidth" label="是否为空:"> |
| | | <el-switch |
| | | v-model="form.nullableFlag" |
| | | :disabled="basicSecOnlyRead" |
| | | ></el-switch> |
| | | </el-form-item> |
| | | </span> |
| | | <el-divider direction="vertical"></el-divider> |
| | | <span class="right"> |
| | | <!-- 固定码段 --> |
| | | <div v-show="form.secType==='codefixedsec' ? true:false"> |
| | | <el-form-item label="码段长度类型:" :label-width="rightFormLabelWidth" required> |
| | | <el-select v-model="form.codeSecLengthType" placeholder="请选择" :disabled="basicSecOnlyRead"> |
| | | <div v-show="form.secType === 'codefixedsec' ? true : false"> |
| | | <el-form-item |
| | | :label-width="rightFormLabelWidth" |
| | | label="码段长度类型:" |
| | | required |
| | | > |
| | | <el-select |
| | | v-model="form.codeSecLengthType" |
| | | :disabled="basicSecOnlyRead" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in enumParam.codeSecLengthType" |
| | | :key="item.itemValue" |
| | | :label="item.itemName" |
| | | :value="item.itemValue"> |
| | | </el-option> |
| | | v-for="item in enumParam.codeSecLengthType" |
| | | :key="item.itemValue" |
| | | :label="item.itemName" |
| | | :value="item.itemValue" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="码段的长度:" :label-width="rightFormLabelWidth" required> |
| | | <el-input v-model.number="form.codeSecLength" ref="codeSecLength" :readonly="basicSecOnlyRead"></el-input> |
| | | <el-form-item |
| | | :label-width="rightFormLabelWidth" |
| | | label="码段的长度:" |
| | | required |
| | | > |
| | | <el-input |
| | | ref="codeSecLength" |
| | | v-model.number="form.codeSecLength" |
| | | :readonly="basicSecOnlyRead" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | <!-- 属性码段 --> |
| | | <div v-show="form.secType==='codeattrsec' ? true:false"> |
| | | <el-form-item label="属性:" :label-width="rightFormLabelWidth" required> |
| | | <div v-show="form.secType === 'codeattrsec' ? true : false"> |
| | | <el-form-item |
| | | :label-width="rightFormLabelWidth" |
| | | label="属性:" |
| | | required |
| | | > |
| | | <el-input |
| | | placeholder="请选择" |
| | | prefix-icon="el-icon-search" |
| | | readonly="true" |
| | | ref="referAttributeId" |
| | | v-model="form.referAttributeName" |
| | | @focus="openAttrSelectOrGetValue('attr')" |
| | | :disabled="basicSecOnlyRead"> |
| | | <i slot="suffix" class="el-icon-circle-close" @click="clearAttrDataByIcon('attr')" style="cursor: pointer;"></i> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="属性所在分类:" :label-width="rightFormLabelWidth"> |
| | | <el-input |
| | | v-model="form.referCodeClassifyOidName" |
| | | disabled> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="取值规则:" :label-width="rightFormLabelWidth"> |
| | | <el-input |
| | | :disabled="basicSecOnlyRead" |
| | | placeholder="请选择" |
| | | prefix-icon="el-icon-search" |
| | | readonly="true" |
| | | @focus="openAttrSelectOrGetValue('attr')" |
| | | > |
| | | <i |
| | | slot="suffix" |
| | | class="el-icon-circle-close" |
| | | style="cursor: pointer" |
| | | @click="clearAttrDataByIcon('attr')" |
| | | ></i> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item |
| | | :label-width="rightFormLabelWidth" |
| | | label="属性所在分类:" |
| | | > |
| | | <el-input v-model="form.referCodeClassifyOidName" disabled> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item |
| | | :label-width="rightFormLabelWidth" |
| | | label="取值规则:" |
| | | > |
| | | <el-input |
| | | v-model="form.getValueClass" |
| | | :disabled="basicSecOnlyRead" |
| | | @focus="openAttrSelectOrGetValue('value')"> |
| | | <i slot="suffix" class="el-icon-circle-close" @click="clearAttrDataByIcon('value')" style="margin-right: 5px;cursor: pointer;"></i> |
| | | placeholder="请选择" |
| | | prefix-icon="el-icon-search" |
| | | readonly="true" |
| | | @focus="openAttrSelectOrGetValue('value')" |
| | | > |
| | | <i |
| | | slot="suffix" |
| | | class="el-icon-circle-close" |
| | | style="margin-right: 5px; cursor: pointer" |
| | | @click="clearAttrDataByIcon('value')" |
| | | ></i> |
| | | </el-input> |
| | | </el-form-item> |
| | | </div> |
| | | <!-- 流水码段 --> |
| | | <div v-show="form.secType==='codeserialsec' ? true:false"> |
| | | <el-form-item label="码段的长度:" :label-width="rightFormLabelWidth" required> |
| | | <el-input v-model.number="form.codeSecLength" ref="seriaCodeSecLength" :readonly="basicSecOnlyRead"></el-input> |
| | | <div v-show="form.secType === 'codeserialsec' ? true : false"> |
| | | <el-form-item |
| | | :label-width="rightFormLabelWidth" |
| | | label="码段的长度:" |
| | | required |
| | | > |
| | | <el-input |
| | | ref="seriaCodeSecLength" |
| | | v-model.number="form.codeSecLength" |
| | | :readonly="basicSecOnlyRead" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="流水号的起始值:" :label-width="rightFormLabelWidth"> |
| | | <el-input v-model.number="form.serialStart" ref="serialStart" :readonly="basicSecOnlyRead"></el-input> |
| | | <el-form-item |
| | | :label-width="rightFormLabelWidth" |
| | | label="流水号的起始值:" |
| | | > |
| | | <el-input |
| | | ref="serialStart" |
| | | v-model.number="form.serialStart" |
| | | :readonly="basicSecOnlyRead" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="流水的步长:" :label-width="rightFormLabelWidth"> |
| | | <el-input v-model.number="form.serialStep" ref="serialStep" :readonly="basicSecOnlyRead"></el-input> |
| | | <el-form-item |
| | | :label-width="rightFormLabelWidth" |
| | | label="流水的步长:" |
| | | > |
| | | <el-input |
| | | ref="serialStep" |
| | | v-model.number="form.serialStep" |
| | | :readonly="basicSecOnlyRead" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="编码补位方式:" :label-width="rightFormLabelWidth" required> |
| | | <el-select v-model="form.codeFillType" placeholder="请选择" :disabled="basicSecOnlyRead"> |
| | | <el-option label="左补位" value="codeattrsec" |
| | | <el-form-item |
| | | :label-width="rightFormLabelWidth" |
| | | label="编码补位方式:" |
| | | required |
| | | > |
| | | <el-select |
| | | v-model="form.codeFillType" |
| | | :disabled="basicSecOnlyRead" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in enumParam.codeFillType" |
| | | :key="item.itemValue" |
| | | :label="item.itemName" |
| | | :value="item.itemValue"> |
| | | :value="item.itemValue" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item v-if="form.codeFillType!='code_fill_none'" label="补位时的字符:" :label-width="rightFormLabelWidth"> |
| | | <el-select v-model="form.codeFillSeparator" @blur="inputSelectBlur" filterable placeholder="请选择" :disabled="basicSecOnlyRead"> |
| | | <el-form-item |
| | | v-if="form.codeFillType != 'code_fill_none'" |
| | | :label-width="rightFormLabelWidth" |
| | | label="补位时的字符:" |
| | | > |
| | | <el-select |
| | | v-model="form.codeFillSeparator" |
| | | :disabled="basicSecOnlyRead" |
| | | filterable |
| | | placeholder="请选择" |
| | | clearable |
| | | > |
| | | <el-option |
| | | v-for="item in enumParam.codeFillSeparator" |
| | | :key="item.itemValue" |
| | | :label="item.itemName" |
| | | :value="item.itemValue"> |
| | | :key="item.lable" |
| | | :label="item.lable" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="填充长度:" :label-width="rightFormLabelWidth" required> |
| | | <el-input v-model.number="form.codeFillLength" ref="codeFillLength" :readonly="basicSecOnlyRead"></el-input> |
| | | <el-form-item |
| | | :label-width="rightFormLabelWidth" |
| | | label="填充长度:" |
| | | required |
| | | > |
| | | <el-input |
| | | ref="codeFillLength" |
| | | v-model.number="form.codeFillLength" |
| | | :readonly="basicSecOnlyRead" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="流水上限:" :label-width="rightFormLabelWidth" required> |
| | | <el-input v-model.number="form.codeFillLimit" ref="codeFillLimit" :readonly="basicSecOnlyRead"></el-input> |
| | | <el-form-item |
| | | :label-width="rightFormLabelWidth" |
| | | label="流水上限:" |
| | | required |
| | | > |
| | | <el-input |
| | | ref="codeFillLimit" |
| | | v-model.number="form.codeFillLimit" |
| | | :readonly="basicSecOnlyRead" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="流水是否补码:" :label-width="rightFormLabelWidth" required> |
| | | <el-switch v-model="form.codeFillFlag" :disabled="basicSecOnlyRead"></el-switch> |
| | | <el-form-item |
| | | :label-width="rightFormLabelWidth" |
| | | label="流水是否补码:" |
| | | required |
| | | > |
| | | <el-switch |
| | | v-model="form.codeFillFlag" |
| | | :disabled="basicSecOnlyRead" |
| | | ></el-switch> |
| | | </el-form-item> |
| | | <el-form-item label="自定义的流水算法:" :label-width="rightFormLabelWidth"> |
| | | <el-input v-model="form.customCodeSerialClass" :readonly="basicSecOnlyRead"></el-input> |
| | | <el-form-item |
| | | :label-width="rightFormLabelWidth" |
| | | label="自定义流水算法:" |
| | | > |
| | | <template> |
| | | <vciWebRefer |
| | | ref="refer" |
| | | :disabled="basicSecOnlyRead" |
| | | :display="true" |
| | | :referConfig="this.referConfig || {}" |
| | | :serialType="form.serialType" |
| | | :text="form.customCodeSerialClassText" |
| | | :value="form.customCodeSerialClass" |
| | | @setReferValue="setReferValue" |
| | | ></vciWebRefer> |
| | | </template> |
| | | </el-form-item> |
| | | </div> |
| | | <!-- 层级码段 --> |
| | | <div v-show="form.secType==='codelevelsec' ? true:false"> |
| | | <el-form-item label="层级类型:" :label-width="rightFormLabelWidth" required> |
| | | <el-select v-model="form.codeLevelType" placeholder="请选择" :disabled="basicSecOnlyRead"> |
| | | <div v-show="form.secType === 'codelevelsec' ? true : false"> |
| | | <el-form-item |
| | | :label-width="rightFormLabelWidth" |
| | | label="层级类型:" |
| | | required |
| | | > |
| | | <el-select |
| | | v-model="form.codeLevelType" |
| | | :disabled="basicSecOnlyRead" |
| | | placeholder="请选择" |
| | | @change="changeLevelType" |
| | | > |
| | | <el-option |
| | | v-for="item in enumParam.codeLevelType" |
| | | :key="item.itemValue" |
| | | :label="item.itemName" |
| | | :value="item.itemValue"> |
| | | :value="item.itemValue" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="层级的值:" :label-width="rightFormLabelWidth"> |
| | | <el-input v-model.number="form.codeLevelValue" ref="codeLevelValue" :readonly="basicSecOnlyRead"></el-input> |
| | | <el-form-item |
| | | :label-width="rightFormLabelWidth" |
| | | label="层级的值:" |
| | | > |
| | | <el-input |
| | | ref="codeLevelValue" |
| | | v-model.number="form.codeLevelValue" |
| | | :readonly="basicSecOnlyRead" |
| | | :disabled="form.codeLevelType != 'code_level_special'" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="字符截取类型:" :label-width="rightFormLabelWidth" required> |
| | | <el-select v-model="form.valueCutType" placeholder="请选择" :disabled="basicSecOnlyRead" @change="changeCutType($event)"> |
| | | <el-form-item |
| | | :label-width="rightFormLabelWidth" |
| | | label="字符截取类型:" |
| | | required |
| | | > |
| | | <el-select |
| | | v-model="form.valueCutType" |
| | | :disabled="basicSecOnlyRead" |
| | | placeholder="请选择" |
| | | @change="changeCutType($event)" |
| | | > |
| | | <el-option |
| | | v-for="item in enumParam.codeCutType" |
| | | :key="item.itemValue" |
| | | :label="item.itemName" |
| | | :value="item.itemValue"> |
| | | :value="item.itemValue" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item id="ShowOrHide" v-if="form.valueCutType!='code_cut_none'" label="值截取长度:" :label-width="rightFormLabelWidth"> |
| | | <el-input v-model.number="form.valueCutLength" ref="valueCutLength" :readonly="basicSecOnlyRead"></el-input> |
| | | <el-form-item |
| | | v-if="form.valueCutType != 'code_cut_none'" |
| | | id="ShowOrHide" |
| | | :label-width="rightFormLabelWidth" |
| | | label="值截取长度:" |
| | | > |
| | | <el-input |
| | | ref="valueCutLength" |
| | | v-model.number="form.valueCutLength" |
| | | :readonly="basicSecOnlyRead" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="取值类型:" :label-width="rightFormLabelWidth"> |
| | | <el-select v-model="form.codeGetValueType" placeholder="请选择" :disabled="basicSecOnlyRead"> |
| | | <el-form-item |
| | | :label-width="rightFormLabelWidth" |
| | | label="取值类型:" |
| | | > |
| | | <el-select |
| | | v-model="form.codeGetValueType" |
| | | :disabled="basicSecOnlyRead" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in enumParam.codeGetValueType" |
| | | :key="item.itemValue" |
| | | :label="item.itemName" |
| | | :value="item.itemValue"> |
| | | :value="item.itemValue" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </div> |
| | | <!-- 引用码段 --> |
| | | <div v-show="form.secType==='coderefersec' ? true:false"> |
| | | <el-form-item label="参照引用的业务类型:" label-width="152px" required> |
| | | <div v-show="form.secType === 'coderefersec' ? true : false"> |
| | | <el-form-item |
| | | label="参照引用的业务类型:" |
| | | label-width="152px" |
| | | required |
| | | > |
| | | <el-input |
| | | ref="referBtmId" |
| | | v-model="form.referBtmName" |
| | | :disabled="basicSecOnlyRead" |
| | | placeholder="请选择" |
| | | prefix-icon="el-icon-search" |
| | | readonly="true" |
| | | v-model="form.referBtmName" |
| | | @focus="openAttrSelectOrGetValue('referBtmId')" |
| | | :disabled="basicSecOnlyRead"> |
| | | <i slot="suffix" class="el-icon-circle-close" @click="clearAttrDataByIcon('referBtmId')" style="margin-right: 5px;cursor: pointer;"></i> |
| | | > |
| | | <i |
| | | slot="suffix" |
| | | class="el-icon-circle-close" |
| | | style="margin-right: 5px; cursor: pointer" |
| | | @click="clearAttrDataByIcon('referBtmId')" |
| | | ></i> |
| | | </el-input> |
| | | </el-form-item> |
| | | <el-form-item label="参照配置:" label-width="152px" required> |
| | | <el-input |
| | | ref="referConfig" |
| | | v-model="form.referConfig" |
| | | :disabled="basicSecOnlyRead" |
| | | placeholder="请选择" |
| | | prefix-icon="el-icon-search" |
| | | readonly="true" |
| | | v-model="form.referConfig" |
| | | @focus="openAttrSelectOrGetValue('referConfig')" |
| | | :disabled="basicSecOnlyRead"> |
| | | <i slot="suffix" class="el-icon-circle-close" @click="clearAttrDataByIcon('referConfig')" style="margin-right: 5px;cursor: pointer;"></i> |
| | | > |
| | | <i |
| | | slot="suffix" |
| | | class="el-icon-circle-close" |
| | | style="margin-right: 5px; cursor: pointer" |
| | | @click="clearAttrDataByIcon('referConfig')" |
| | | ></i> |
| | | </el-input> |
| | | </el-form-item> |
| | | </div> |
| | | <!-- 日期码段 --> |
| | | <div v-show="form.secType==='codedatesec' ? true:false"> |
| | | <el-form-item label="日期格式:" :label-width="rightFormLabelWidth" required> |
| | | <el-input ref="codeDateFormatStr" v-model="form.codeDateFormatStr" :readonly="basicSecOnlyRead"></el-input> |
| | | <div v-show="form.secType === 'codedatesec' ? true : false"> |
| | | <el-form-item |
| | | :label-width="rightFormLabelWidth" |
| | | label="日期格式:" |
| | | prop="Dateformat" |
| | | > |
| | | <el-input |
| | | ref="codeDateFormatStr" |
| | | v-model="form.codeDateFormatStr" |
| | | :readonly="basicSecOnlyRead" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | <!-- 分类码段 --> |
| | | <div v-show="form.secType==='codeclassifysec' ? true:false"> |
| | | <el-form-item label="码段长度类型:" :label-width="rightFormLabelWidth" required> |
| | | <el-select v-model="form.codeSecLengthType" placeholder="请选择" :disabled="basicSecOnlyRead"> |
| | | <div v-show="form.secType === 'codeclassifysec' ? true : false"> |
| | | <el-form-item |
| | | :label-width="rightFormLabelWidth" |
| | | label="码段长度类型:" |
| | | required |
| | | > |
| | | <el-select |
| | | v-model="form.codeSecLengthType" |
| | | :disabled="basicSecOnlyRead" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in enumParam.codeSecLengthType" |
| | | :key="item.itemValue" |
| | | :label="item.itemName" |
| | | :value="item.itemValue"> |
| | | :value="item.itemValue" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="码段的长度:" :label-width="rightFormLabelWidth" required> |
| | | <el-input v-model.number="form.codeSecLength" ref="classCodeSecLength" :readonly="basicSecOnlyRead"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="是否自动分配分类值:" :label-width="rightFormLabelWidth"> |
| | | <el-switch v-model="form.matchClassifyValueFlag" :disabled="basicSecOnlyRead"></el-switch> |
| | | </el-form-item> |
| | | <el-form-item label="父分类码段:" :label-width="rightFormLabelWidth"> |
| | | <el-form-item |
| | | :label-width="rightFormLabelWidth" |
| | | label="码段的长度:" |
| | | required |
| | | > |
| | | <el-input |
| | | ref="classCodeSecLength" |
| | | v-model.number="form.codeSecLength" |
| | | :readonly="basicSecOnlyRead" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item |
| | | :label-width="rightFormLabelWidth" |
| | | label="是否自动分配分类值:" |
| | | > |
| | | <el-switch |
| | | v-model="form.matchClassifyValueFlag" |
| | | :disabled="basicSecOnlyRead" |
| | | ></el-switch> |
| | | </el-form-item> |
| | | <el-form-item |
| | | :label-width="rightFormLabelWidth" |
| | | label="父分类码段:" |
| | | > |
| | | <el-input |
| | | v-model="form.parentClassifySecText" |
| | | :disabled="basicSecOnlyRead" |
| | | placeholder="请选择" |
| | | prefix-icon="el-icon-search" |
| | | readonly="true" |
| | | v-model="form.parentClassifySecText" |
| | | @focus="openAttrSelectOrGetValue('parentClassifySecOid')" |
| | | :disabled="basicSecOnlyRead"> |
| | | <i slot="suffix" class="el-icon-circle-close" @click="clearAttrDataByIcon('parentClassifySecOid')" style="margin-right: 5px;cursor: pointer;"></i> |
| | | > |
| | | <i |
| | | slot="suffix" |
| | | class="el-icon-circle-close" |
| | | style="margin-right: 5px; cursor: pointer" |
| | | @click="clearAttrDataByIcon('parentClassifySecOid')" |
| | | ></i> |
| | | </el-input> |
| | | </el-form-item> |
| | | </div> |
| | | <!-- 可变码段 --> |
| | | <div v-show="form.secType==='codevariablesec' ? true:false"> |
| | | <el-form-item label="码段的长度:" :label-width="rightFormLabelWidth" required> |
| | | <el-input v-model.number="form.codeSecLength" ref="varCodeSecLength" :readonly="basicSecOnlyRead"></el-input> |
| | | <div v-show="form.secType === 'codevariablesec' ? true : false"> |
| | | <el-form-item |
| | | :label-width="rightFormLabelWidth" |
| | | label="码段的长度:" |
| | | required |
| | | > |
| | | <el-input |
| | | ref="varCodeSecLength" |
| | | v-model.number="form.codeSecLength" |
| | | :readonly="basicSecOnlyRead" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="编码补位方式:" :label-width="rightFormLabelWidth" required> |
| | | <el-select v-model="form.codeFillType" placeholder="请选择" :disabled="basicSecOnlyRead"> |
| | | <el-form-item |
| | | :label-width="rightFormLabelWidth" |
| | | label="编码补位方式:" |
| | | required> |
| | | <el-select |
| | | v-model="form.codeFillType" |
| | | :disabled="basicSecOnlyRead" |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in enumParam.codeFillType" |
| | | :key="item.itemValue" |
| | | :label="item.itemName" |
| | | :value="item.itemValue"> |
| | | v-for="item in enumParam.codeFillType" |
| | | :key="item.itemValue" |
| | | :label="item.itemName" |
| | | :value="item.itemValue" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item v-if="form.codeFillType!='code_fill_none'" label="补位时的字符:" :label-width="rightFormLabelWidth"> |
| | | <el-select v-model="form.codeFillSeparator" filterable @blur="inputSelectBlur" placeholder="请选择" :disabled="basicSecOnlyRead"> |
| | | <el-form-item |
| | | v-if="form.codeFillType != 'code_fill_none'" |
| | | :label-width="rightFormLabelWidth" |
| | | label="补位时的字符:" |
| | | > |
| | | <el-select |
| | | v-model="form.codeFillSeparator" |
| | | :disabled="basicSecOnlyRead" |
| | | filterable |
| | | placeholder="请选择" |
| | | clearable |
| | | > |
| | | <el-option |
| | | v-for="item in enumParam.codeFillSeparator" |
| | | :key="item.itemValue" |
| | | :label="item.itemName" |
| | | :value="item.itemValue"> |
| | | :key="item.lable" |
| | | :label="item.lable" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | |
| | | </el-form> |
| | | </div> |
| | | <!-- 第一层对话框的按钮和分隔线条 --> |
| | | <el-divider class="horizontal-line" direction="horizontal"></el-divider> |
| | | <!-- <el-divider class="horizontal-line" direction="horizontal"></el-divider> --> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="saveOrEditBasicCode" :disabled="!showbtn">保 存</el-button> |
| | | <el-button |
| | | :disabled="!showbtn" |
| | | :loading="isLoadingSecCodeAddBtn" |
| | | type="primary" |
| | | @click="saveOrEditBasicCode">保 存 |
| | | </el-button> |
| | | <el-button @click="addBasicCodeSettingBox = false">取 消</el-button> |
| | | </div> |
| | | |
| | | <!-- 第二层对话框,属性码段,属性选择对话框 --> |
| | | <el-dialog title="为【属性】选取值" |
| | | append-to-body |
| | | <el-dialog |
| | | :visible.sync="isShowSelectAttrOption" |
| | | append-to-body |
| | | class="avue-dialog avue-dialog--top" |
| | | style="height: 100%" |
| | | title="为【属性】选取值" |
| | | top="-3%" |
| | | width="78%" |
| | | style="height: 100%; margin-top: -8vh; overflow: hidden"> |
| | | > |
| | | <div style="overflow-y: auto; height: 60vh"> |
| | | <el-row> |
| | | <!-- 左侧主题库分类树 --> |
| | | <el-col :span="5"> |
| | | <div class="box"> |
| | | <el-scrollbar style="height: auto; border-bottom-right-radius:8px "> |
| | | <el-scrollbar |
| | | style="height: auto; border-bottom-right-radius: 8px" |
| | | > |
| | | <basic-container> |
| | | <div class="treeBox"> |
| | | <avue-tree :data="attrClassifyTreeData" :option="treeOption" @node-click="nodeClick"/> |
| | | <avue-tree |
| | | :data="attrClassifyTreeData" |
| | | :option="treeOption" |
| | | @node-click="nodeClick" |
| | | /> |
| | | </div> |
| | | </basic-container> |
| | | </el-scrollbar> |
| | |
| | | <el-col span="19"> |
| | | <basic-container> |
| | | <div class="bbox"> |
| | | <avue-crud |
| | | :data="selectAttrParams.selectAttrData" |
| | | :option="selectAttrParams.attrOption" |
| | | :table-loading="selectAttrParams.selectAttrOptionLoading" |
| | | :ref="selectAttrParams.ref" |
| | | @search-change="selectAttrSearchChange" |
| | | @search-reset="searchAttrReset" |
| | | @row-click="selectionAttrRowClick" |
| | | @selection-change="selectionChangeAttr"> |
| | | </avue-crud> |
| | | <avue-crud |
| | | :ref="selectAttrParams.ref" |
| | | :data="selectAttrParams.selectAttrData" |
| | | :option="selectAttrParams.attrOption" |
| | | :table-loading="selectAttrParams.selectAttrOptionLoading" |
| | | @search-change="selectAttrSearchChange" |
| | | @search-reset="searchAttrReset" |
| | | @row-click="selectionAttrRowClick" |
| | | @selection-change="selectionChangeAttr" |
| | | > |
| | | </avue-crud> |
| | | </div> |
| | | </basic-container> |
| | | </el-col> |
| | |
| | | <!-- 第二层对话框,属性码段,公式编辑框对话框组件 --> |
| | | <formula-editor |
| | | ref="formulaEditor" |
| | | @updateFormulaContent="updateFormulaContent" |
| | | :systemVariableTableData="formulaEditorParams.systemVariableTableData" |
| | | :thisSceneTableData="formulaEditorParams.thisSceneTableData" |
| | | :visible.sync="formulaEditorParams.formulaEditorSettingBox" |
| | | :systemVariableTableData="formulaEditorParams.systemVariableTableData"> |
| | | @updateFormulaContent="updateFormulaContent" |
| | | > |
| | | </formula-editor> |
| | | |
| | | <!-- 第二层对话框,为【父分类码段】选取值对话框 --> |
| | | <el-dialog title="为【父分类码段】选取值" |
| | | append-to-body |
| | | <el-dialog |
| | | :visible.sync="parentClsfyParams.isShowParentClassifySettingBox" |
| | | append-to-body |
| | | destroy-on-close |
| | | style="height: 150vh; margin-top: -13vh" |
| | | title="为【父分类码段】选取值" |
| | | width="65%" |
| | | style="height: 150vh; margin-top: -13vh;" |
| | | destroy-on-close> |
| | | > |
| | | <avue-crud |
| | | :page.sync="parentClsfyParams.parentClassifyDataPage" |
| | | :ref="parentClsfyParams.ref" |
| | | :option="parentClsfyParams.parentClassifyParentOption" |
| | | :table-loading="parentClsfyParams.classifyDialogLoading" |
| | | :data="parentClsfyParams.parentClassifyData" |
| | | :option="parentClsfyParams.parentClassifyParentOption" |
| | | :page.sync="parentClsfyParams.parentClassifyDataPage" |
| | | :table-loading="parentClsfyParams.classifyDialogLoading" |
| | | @refresh-change="refreshParentClassifyDataChange" |
| | | @search-change="parentClassifySearchChange" |
| | | @search-reset="parentClassifySearchReset" |
| | |
| | | @selection-change="parentClassifySelectionChange" |
| | | @current-change="parentClassifyCurrentChange" |
| | | @size-change="parentClassifySizeChange" |
| | | @on-load="parentClassifyOnLoad"> |
| | | @on-load="parentClassifyOnLoad" |
| | | > |
| | | </avue-crud> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="saveSelectedParentClassify">保 存</el-button> |
| | | <el-button @click="parentClsfyParams.isShowParentClassifySettingBox = false">取 消</el-button> |
| | | <el-button type="primary" @click="saveSelectedParentClassify" |
| | | >保 存 |
| | | </el-button |
| | | > |
| | | <el-button |
| | | @click="parentClsfyParams.isShowParentClassifySettingBox = false" |
| | | >取 消 |
| | | </el-button |
| | | > |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <!-- 第二层对话框,为【参照引用的业务类型】选取值对话框 --> |
| | | <refer-btm-type-crud-dialog |
| | | :visible.sync="referBtmDialogParams.selectReferBtmSettingBox" |
| | | :ref="referBtmDialogParams.ref" |
| | | @echoReferBtmType="echoReferBtmType"> |
| | | :visible.sync="referBtmDialogParams.selectReferBtmSettingBox" |
| | | @echoReferBtmType="echoReferBtmType" |
| | | > |
| | | </refer-btm-type-crud-dialog> |
| | | |
| | | <!-- 第二层对话框,自定义参照配置Form组件 --> |
| | | <refer-config-form-dialog |
| | | ref="referConfigFormDialog" |
| | | @echoReferConfig="echoReferConfig"> |
| | | </refer-config-form-dialog> |
| | | |
| | | <!-- 第二层对话框,直接选择参照配置crud组件 --> |
| | | <refer-config-crud-dialog |
| | | ref="referConfigCrudDialog" |
| | | @openReconfigInterFace="openReconfigInterFace" |
| | | @echoReferConfig="echoReferConfig"> |
| | | </refer-config-crud-dialog> |
| | | |
| | | <!-- 第二层对话框,参照配置组件 --> |
| | | <refer-config-dialog |
| | | :display="referConfigVisble" |
| | | :referConfigOption="referConfigOption" |
| | | @setReferConfigValue="setReferConfigValue" |
| | | > |
| | | </refer-config-dialog> |
| | | </el-dialog> |
| | | |
| | | |
| | | </basic-container> |
| | | </template> |
| | | |
| | | <script> |
| | | import { gridCodeRule, getDetail, add, update, remove, listUseRange, updateStatus,clone,clearAllCode } from "@/api/code/mdmrule"; |
| | | import { |
| | | gridCodeBasicSec, |
| | | downOrderNum, |
| | | upOrderNum, |
| | | deleteData, |
| | | editSave, |
| | | cloneCodeBasic, |
| | | addSave, |
| | | refDataGridClassifySec, |
| | | } from "@/api/code/codebasic"; |
| | | import { listClassifyLinkAttr } from "@/api/code/codeclassify"; |
| | | import { gridCodeFixedValue,addSaveCodeFixedValue,deleteCodeFixedValue,editCodeFixedValue,saveOrder } from "@/api/code/codeFixedValue"; |
| | | import { treeCodeClassifyValue,addSaveCodeClassifyValue,editCodeClassifyValue,deleteCodeClassifyValue,saveCodeClassifyValueOrder } 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"; |
| | | import classisyValueTreeOption from "@/const/code/classisyValueTreeDialog"; |
| | | import parentClassifyParentOption from "@/const/code/parentClassifyParentOptionDialog"; |
| | | import fixedValueOption from "@/const/code/fixedValueMgrDialog"; |
| | | import {mapGetters} from "vuex"; |
| | | import func from "@/util/func"; |
| | | import {getByRoleUserList} from "@/api/system/user"; |
| | | import { |
| | | gridCodeRule, |
| | | getDetail, |
| | | add, |
| | | update, |
| | | remove, |
| | | listUseRange, |
| | | updateStatus, |
| | | clearAllCode, |
| | | checkLikeCodeRule, |
| | | } from "@/api/code/mdmrule"; |
| | | import { |
| | | gridCodeBasicSec, |
| | | downOrderNum, |
| | | upOrderNum, |
| | | deleteData, |
| | | editSave, |
| | | addSave, |
| | | refDataGridClassifySec, |
| | | } from "@/api/code/codebasic"; |
| | | import {listClassifyLinkAttr} from "@/api/code/codeclassify"; |
| | | import { |
| | | gridCodeFixedValue, |
| | | addSaveCodeFixedValue, |
| | | deleteCodeFixedValue, |
| | | editCodeFixedValue, |
| | | saveOrder, |
| | | } from "@/api/code/codeFixedValue"; |
| | | import { |
| | | treeCodeClassifyValue, |
| | | addSaveCodeClassifyValue, |
| | | editCodeClassifyValue, |
| | | deleteCodeClassifyValue, |
| | | saveCodeClassifyValueOrder, |
| | | } from "@/api/code/codeClassifyValue"; |
| | | import { getSelectList, getRegexStr } from "@/api/code/codeCharcter" |
| | | import {getDictionary} from "@/api/omd/enum"; |
| | | // import {getDictionaryBiz} from "@/api/system/dictbiz"; |
| | | import optionBasic from "@/const/code/codebasic"; |
| | | import optionRule from "@/const/code/mdmrule"; |
| | | import attrOption from "@/const/code/selectAttrOptionDialog"; |
| | | import treeOption from "@/const/code/classifyTreeOptionDialog"; |
| | | import classisyValueTreeOption from "@/const/code/classisyValueTreeDialog"; |
| | | import parentClassifyParentOption from "@/const/code/parentClassifyParentOptionDialog"; |
| | | import fixedValueOption from "@/const/code/fixedValueMgrDialog"; |
| | | import {mapGetters} from "vuex"; |
| | | import {getByRoleUserList} from "@/api/system/user"; |
| | | import func from "@/util/func"; |
| | | import secTypeEnum from '@/enumpack/CodeSecTypeEnum'; |
| | | import vciWebRefer from "../../components/refer/vciWebRefer"; |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | ruleForm: {}, |
| | | query: {}, |
| | | loading: true, |
| | | currentCodeRuleOid: '', |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0 |
| | | }, |
| | | selectionList: [], |
| | | /*编码规则表格配置*/ |
| | | 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: [], //规则管理员列表 |
| | | ruleOwner: '', // 当前要转移给哪个规则管理员的ID |
| | | |
| | | /*使用范围对话框显示控制*/ |
| | | codeRangeSettingBox: false, |
| | | useRangeData: [], |
| | | dialogLoading: true, |
| | | /*使用范围对话框配置*/ |
| | | dialogeOption: { |
| | | height: 'auto', |
| | | calcHeight: 30, |
| | | tip: false, |
| | | searchShow: false, |
| | | searchMenuSpan: 6, |
| | | border: true, |
| | | index: true, |
| | | disablePage:false, |
| | | viewBtn: false, |
| | | addBtn: false, |
| | | menu: false, |
| | | selection: false, |
| | | dialogClickModal: false, |
| | | align: 'center', |
| | | dialogWidth: 400, |
| | | column: [ |
| | | { |
| | | label: "分类编号", |
| | | prop: "id", |
| | | span: 24 |
| | | }, |
| | | { |
| | | label: "分类名称", |
| | | prop: "name", |
| | | span: 24, |
| | | export default { |
| | | components: {vciWebRefer}, |
| | | data() { |
| | | return { |
| | | rules: { |
| | | Dateformat: [ |
| | | { |
| | | required: true, |
| | | trigger: 'blur', |
| | | validator: (rule, value, callback) => { |
| | | const Formats = [ |
| | | 'yy', |
| | | 'yyyy', |
| | | 'yy-MM', |
| | | 'yyMM', |
| | | 'yyyy-MM', |
| | | 'yyyyMM', |
| | | 'yy-MM-dd', |
| | | 'yyMMdd', |
| | | 'yyyy-MM-dd', |
| | | 'yyyyMMdd', |
| | | 'yyyy-MM-dd HH:mm:ss', |
| | | 'yy-MM-dd HH:mm:ss', |
| | | 'HH:mm:ss', |
| | | 'yyyyMMdd HH:mm:ss', |
| | | 'yyMMdd HH:mm:ss', |
| | | 'yyyy-MM-dd HHmmss', |
| | | 'yy-MM-dd HHmmss', |
| | | 'yyyyMMdd HHmmss', |
| | | 'yyMMdd HHmmss', |
| | | 'HHmmss' |
| | | ]; |
| | | if (!Formats.includes(this.form.codeDateFormatStr)) { |
| | | return callback(new Error('请输入正确日期格式,例如yyyy-MM-dd(并区分大小写)!')); |
| | | } |
| | | ] |
| | | }, |
| | | |
| | | /*基础码段相关数据*/ |
| | | optionBasic: optionBasic, |
| | | basicData:[], |
| | | loadingBasic: true, |
| | | selectionBasicList: [], |
| | | addBasicCodeSettingBox: false, |
| | | showbtn: false, //基础码段新增是否显示基础码段 |
| | | basicSecDialogTitle: '', //基础码段第一层对话框标题 |
| | | basicSecOnlyRead: false, //新增基础码段表单是否只读 |
| | | |
| | | |
| | | /** 码值管理相关数据 */ |
| | | isShowBasicSecCodeValueMgr: false, //码段码值管理对话框 |
| | | codefixedsecOrCodeclassifysecOid: '', //存放基础码段点击码值管理时的当前行id,用于保存码值时使用 |
| | | selectedFixedOrCodeclassifyValue: '', //当前选中的码值数据 |
| | | //固定码段码值表单 |
| | | codeFixdForm: { |
| | | codeFixedSecOid: "", |
| | | description: "", |
| | | id: "", |
| | | }, |
| | | isShowFixedForm: true, //true显示固定码段码值管理界面,false显示分类码段码值管理界面 |
| | | fixedValueData: [], //固定码段码值表格数据 |
| | | fixedValueOption: fixedValueOption, //表格配置 |
| | | fixedValueOptionLoading: false, //加载表格的动态效果 |
| | | fixedValueSelectList: [], //固定码段码值当前选中的行 |
| | | |
| | | //分类码段码值表单 |
| | | codeClassifyForm: { |
| | | codeClassifySecOid: "", |
| | | id: "", |
| | | name: "", |
| | | oid: "", |
| | | }, |
| | | classisyValueTreeOption: classisyValueTreeOption, //分类码段树相关配置项 |
| | | classifyValueTreeData: [], |
| | | //currentSelectClsValueTreeData: '', //当前选中的分类码值树节点 |
| | | |
| | | /* 为属性选取值窗口显示打开控制变量 */ |
| | | isShowSelectAttrOption: false, |
| | | /* 为属性选值左侧树数据 */ |
| | | attrClassifyTreeData: [], |
| | | treeOption: treeOption, |
| | | currentSelectTreeData: '', //当前选中的树节点 |
| | | /* 为属性选值右侧表格相关数据 */ |
| | | |
| | | selectAttrParams: { |
| | | ref: "selectionAttrCrud", |
| | | attrOption: attrOption, |
| | | selectAttrData: [], |
| | | selectAttrOptionLoading: false, |
| | | selectionChangeAttrList: [], |
| | | selectAttrQeury: {}, |
| | | }, |
| | | |
| | | // 属性码段,公式编辑框组件的本场景显示变量、与系统变量 |
| | | formulaEditorParams: { |
| | | thisSceneTableData: [ |
| | | { |
| | | formula: "${}", |
| | | desc: "", |
| | | } |
| | | ], |
| | | systemVariableTableData: [ |
| | | { |
| | | formula: "#CURRENTUSER.OID#", |
| | | desc: "当前用户的主键", |
| | | }, |
| | | { |
| | | formula: "#CURRENTUSER.ID#", |
| | | desc: "当前用户的账户", |
| | | }, |
| | | { |
| | | formula: "#CURRENTTIME#", |
| | | desc: "当前时间", |
| | | }, |
| | | { |
| | | formula: "#CURRENTDATE#", |
| | | desc: "当前日期", |
| | | }, |
| | | { |
| | | formula: "#CURRENTDATETIME#", |
| | | desc: "当前日期时间", |
| | | }, |
| | | { |
| | | formula: "#CURRENTUSER_NAME#", |
| | | desc: "当前用户的姓名", |
| | | }, |
| | | { |
| | | formula: "#CURRENTUSER.SECRETGRADE#", |
| | | desc: "当前用户密级", |
| | | }, |
| | | { |
| | | formula: "#CURRENTUSER.IPSECRET#", |
| | | desc: "当前用户的IP密级", |
| | | }, |
| | | { |
| | | formula: "#CURRENTUSER.BUSINESSUNIT#", |
| | | desc: "当前用户所属业务单元", |
| | | }, |
| | | { |
| | | formula: "#CURRENTUSER.BUSINESSUNITNAME#", |
| | | desc: "当前用户所属业务单元名称", |
| | | }, |
| | | { |
| | | formula: "#CURRENTUSER.GROUPOID#", |
| | | desc: "当前用户的部门主键", |
| | | }, |
| | | { |
| | | formula: "#CURRENTUSER.GROUPNAME#", |
| | | desc: "当前用户所属部门名称", |
| | | }, |
| | | { |
| | | formula: "#CURRENTUSER.EMAIL#", |
| | | desc: "当前用户邮件地址", |
| | | }, |
| | | { |
| | | formula: "#CURRENTUSER.ROLENAME#", |
| | | desc: "当前用户所属角色名称", |
| | | }, |
| | | ], |
| | | formulaEditorSettingBox: false, |
| | | }, |
| | | |
| | | /* 父分类码段对话框 */ |
| | | parentClsfyParams: { |
| | | ref: 'crudParentClassify', |
| | | isShowParentClassifySettingBox: false, //父分类码段对话框显示控制 |
| | | classifyDialogLoading: true, //表格数据加载提示 |
| | | parentClassifyParentOption: parentClassifyParentOption, //表格配置 |
| | | parentClassifyData: [], //表格数据 |
| | | //分页参数配置 |
| | | parentClassifyDataPage: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0 |
| | | callback(); |
| | | } |
| | | } |
| | | ] |
| | | }, |
| | | referConfig: { |
| | | title: '自定义流水参照', |
| | | showField: 'customCodeSerialClassText', |
| | | field: 'customCodeSerialClass', |
| | | fieldMap: { |
| | | serialType: "serialType", |
| | | }, |
| | | placeholder: '请选择自定义流水', |
| | | options: { |
| | | // 设置默认的属性 |
| | | url: 'api/ubcs-code/codeSerialAlgorithmController/gridCodeSerialAlgorithm', |
| | | textField: 'name', |
| | | valueField: 'classFullName', |
| | | isMuti: false, |
| | | type: "grid", |
| | | method: 'get', |
| | | tableConfig: { |
| | | page: { |
| | | limit: 15, |
| | | page: 1 |
| | | }, |
| | | parentClassifyQuery: {}, //查询条件 |
| | | parentClassifySelectionList: [], //当前选中行 |
| | | }, |
| | | |
| | | /** 参照引用的业务类型对话框相关数据 */ |
| | | referBtmDialogParams: { |
| | | ref: 'crudReferBtm', |
| | | selectReferBtmSettingBox: false, |
| | | }, |
| | | |
| | | /** 基础码段新增表单 */ |
| | | form: { |
| | | id: '', //编号 |
| | | name: '', //名称 |
| | | secType: 'codefixedsec', //码段类型 |
| | | description: '', //描述 |
| | | serialDependFlag: false, //是否流水依赖 |
| | | serialDependOrder: '', //流水依赖顺序 |
| | | nullableFlag: false, //是否为空 |
| | | displayFlag: false, // |
| | | componentCodeFlag: false, //是否参与编码 |
| | | pkCodeRule: '', //所属编码规则 |
| | | }, |
| | | |
| | | //枚举和可输可选查询 |
| | | enumParam: { |
| | | secTypeList:[], //码段类型 |
| | | codeSecLengthType:[], //码段长度类型 |
| | | codeFillType:[], //编码补位方式 |
| | | codeFillSeparator:[], //补位时的字符,可输可选内容 |
| | | codeLevelType:[], //层级类型 |
| | | codeCutType:[], //字符截取类型 |
| | | codeGetValueType:[], //取值类型 |
| | | }, |
| | | |
| | | //表单元素标签宽度 |
| | | leftFormLabelWidth: '110px', |
| | | rightFormLabelWidth: '150px', |
| | | |
| | | // 高级查询对话框相关参数 |
| | | advancedQueryParam: { |
| | | ref: 'advancedQuery', |
| | | advancedQuerySettingBox: false, |
| | | options: [], |
| | | currentOpen: '', //当前打开高级查询的窗口是 |
| | | //conditionMapParams: {}, |
| | | }, |
| | | |
| | | }; |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["permission"]), |
| | | permissionList() { |
| | | return { |
| | | addBtn: this.vaildData(this.permission.codeRule_add, true), |
| | | viewBtn: this.vaildData(this.permission.codeRule_view, false), |
| | | delBtn: this.vaildData(this.permission.plCodeRule_delete, false), |
| | | editBtn: this.vaildData(this.permission.codeRule_edit, true) |
| | | }; |
| | | }, |
| | | }, |
| | | watch:{ |
| | | |
| | | }, |
| | | mounted(){ |
| | | this.loadTotalEnum(); |
| | | }, |
| | | methods: { |
| | | |
| | | /** 转移规则所有者对话框 */ |
| | | escapeOwner(){ |
| | | if (this.selectionList.length === 0) { |
| | | this.$message.warning("请选择一条编码规则!"); |
| | | return; |
| | | cols: [ |
| | | {title: '算法编号', field: 'id', width: 200}, |
| | | {title: '算法名称', field: 'name', width: 150}, |
| | | {title: '类全路径', field: 'classFullName', width: 300}, |
| | | {title: '类型', field: 'serialType', width: 300}, |
| | | {title: '描述', field: 'description'} |
| | | ], |
| | | queryColumns: [ |
| | | // {field: 'id', title: '算法编号'}, |
| | | // {field: 'name', title: '算法名称'} |
| | | ] |
| | | } |
| | | this.escapeOwnerVisible = true; |
| | | getByRoleUserList("规则管理员").then(res=>{ |
| | | this.ruleAdminUserList = res.data.data; |
| | | } |
| | | }, |
| | | crudOption: {...optionRule}, |
| | | ruleForm: {}, |
| | | query: {}, |
| | | loading: true, |
| | | currentCodeRuleOid: "", |
| | | page: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | }, |
| | | selectionList: [], |
| | | /*编码规则表格配置*/ |
| | | optionRule: optionRule, |
| | | data: [], |
| | | currentRuleLcStatus: "", |
| | | |
| | | /*克隆编码规则对话框控制变量*/ |
| | | cloneSettingBox: false, |
| | | |
| | | /*从其他规则克隆码段*/ |
| | | cloneOtherCodeRuleSettingBox: false, |
| | | |
| | | /** 转移所有者对话框 */ |
| | | escapeOwnerVisible: false, |
| | | ruleAdminUserList: [], //规则管理员列表 |
| | | ruleOwner: "", // 当前要转移给哪个规则管理员的ID |
| | | releadDisabled: false, // 避免规则发布重复提交 |
| | | |
| | | /*最大流水号*/ |
| | | maxSerial: { |
| | | visible: false, |
| | | }, |
| | | |
| | | /*使用范围对话框显示控制*/ |
| | | codeRangeSettingBox: false, |
| | | useRangeData: [], |
| | | dialogLoading: true, |
| | | /*使用范围对话框配置*/ |
| | | dialogeOption: { |
| | | 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: "id", |
| | | span: 24, |
| | | }, |
| | | { |
| | | label: "分类名称", |
| | | prop: "name", |
| | | span: 24, |
| | | }, |
| | | ], |
| | | }, |
| | | |
| | | /*基础码段相关数据*/ |
| | | optionBasic: optionBasic, |
| | | basicData: [], |
| | | loadingBasic: false, |
| | | selectionBasicList: [], |
| | | addBasicCodeSettingBox: false, |
| | | showbtn: false, //基础码段新增按钮是否禁用 |
| | | isLoadingSecCodeAddBtn: false, |
| | | basicSecDialogTitle: "", //基础码段第一层对话框标题 |
| | | basicSecOnlyRead: false, //新增基础码段表单是否只读 |
| | | |
| | | /** 码值管理相关数据 */ |
| | | isShowBasicSecCodeValueMgr: false, //码段码值管理对话框 |
| | | codefixedsecOrCodeclassifysec: "", //存放基础码段点击码值管理时的当前行id,用于保存码值时使用 |
| | | selectedFixedOrCodeclassifyValue: "", //当前选中的码值数据 |
| | | //固定码段码值表单 |
| | | codeFixdForm: { |
| | | codeFixedSecOid: "", |
| | | description: "", |
| | | id: "", |
| | | }, |
| | | isShowFixedForm: true, //true显示固定码段码值管理界面,false显示分类码段码值管理界面 |
| | | fixedValueData: [], //固定码段码值表格数据 |
| | | fixedValueOption: fixedValueOption, //表格配置 |
| | | fixedValueOptionLoading: false, //加载表格的动态效果 |
| | | fixedValueSelectList: [], //固定码段码值当前选中的行 |
| | | |
| | | //分类码段码值表单 |
| | | codeClassifyForm: { |
| | | codeClassifySecOid: "", |
| | | id: "", |
| | | name: "", |
| | | oid: "", |
| | | }, |
| | | classisyValueTreeOption: classisyValueTreeOption, //分类码段树相关配置项 |
| | | classifyValueTreeData: [], |
| | | |
| | | /* 为属性选取值窗口显示打开控制变量 */ |
| | | isShowSelectAttrOption: false, |
| | | /* 为属性选值左侧树数据 */ |
| | | attrClassifyTreeData: [], |
| | | treeOption: treeOption, |
| | | currentSelectTreeData: "", //当前选中的树节点 |
| | | /* 为属性选值右侧表格相关数据 */ |
| | | |
| | | selectAttrParams: { |
| | | ref: "selectionAttrCrud", |
| | | attrOption: attrOption, |
| | | selectAttrData: [], |
| | | selectAttrOptionLoading: false, |
| | | selectionChangeAttrList: [], |
| | | selectAttrQeury: {}, |
| | | }, |
| | | |
| | | // 属性码段,公式编辑框组件的本场景显示变量、与系统变量 |
| | | formulaEditorParams: { |
| | | thisSceneTableData: [ |
| | | { |
| | | formula: "${}", |
| | | desc: "", |
| | | }, |
| | | ], |
| | | systemVariableTableData: [ |
| | | { |
| | | formula: "#CURRENTUSER.OID#", |
| | | desc: "当前用户的主键", |
| | | }, |
| | | { |
| | | formula: "#CURRENTUSER.ID#", |
| | | desc: "当前用户的账户", |
| | | }, |
| | | { |
| | | formula: "#CURRENTTIME#", |
| | | desc: "当前时间", |
| | | }, |
| | | { |
| | | formula: "#CURRENTDATE#", |
| | | desc: "当前日期", |
| | | }, |
| | | { |
| | | formula: "#CURRENTDATETIME#", |
| | | desc: "当前日期时间", |
| | | }, |
| | | { |
| | | formula: "#CURRENTUSER_NAME#", |
| | | desc: "当前用户的姓名", |
| | | }, |
| | | { |
| | | formula: "#CURRENTUSER.SECRETGRADE#", |
| | | desc: "当前用户密级", |
| | | }, |
| | | { |
| | | formula: "#CURRENTUSER.IPSECRET#", |
| | | desc: "当前用户的IP密级", |
| | | }, |
| | | { |
| | | formula: "#CURRENTUSER.BUSINESSUNIT#", |
| | | desc: "当前用户所属业务单元", |
| | | }, |
| | | { |
| | | formula: "#CURRENTUSER.BUSINESSUNITNAME#", |
| | | desc: "当前用户所属业务单元名称", |
| | | }, |
| | | { |
| | | formula: "#CURRENTUSER.GROUPOID#", |
| | | desc: "当前用户的部门主键", |
| | | }, |
| | | { |
| | | formula: "#CURRENTUSER.GROUPNAME#", |
| | | desc: "当前用户所属部门名称", |
| | | }, |
| | | { |
| | | formula: "#CURRENTUSER.EMAIL#", |
| | | desc: "当前用户邮件地址", |
| | | }, |
| | | { |
| | | formula: "#CURRENTUSER.ROLENAME#", |
| | | desc: "当前用户所属角色名称", |
| | | }, |
| | | ], |
| | | formulaEditorSettingBox: false, |
| | | }, |
| | | |
| | | /* 父分类码段对话框 */ |
| | | parentClsfyParams: { |
| | | ref: "crudParentClassify", |
| | | isShowParentClassifySettingBox: false, //父分类码段对话框显示控制 |
| | | classifyDialogLoading: true, //表格数据加载提示 |
| | | parentClassifyParentOption: parentClassifyParentOption, //表格配置 |
| | | parentClassifyData: [], //表格数据 |
| | | //分页参数配置 |
| | | parentClassifyDataPage: { |
| | | pageSize: 10, |
| | | currentPage: 1, |
| | | total: 0, |
| | | }, |
| | | parentClassifyQuery: {}, //查询条件 |
| | | parentClassifySelectionList: [], //当前选中行 |
| | | }, |
| | | |
| | | /** 参照引用的业务类型对话框相关数据 */ |
| | | referBtmDialogParams: { |
| | | ref: "crudReferBtm", |
| | | selectReferBtmSettingBox: false, |
| | | }, |
| | | |
| | | /** 基础码段新增表单 */ |
| | | form: { |
| | | id: "", //编号 |
| | | name: "", //名称 |
| | | secType: "codefixedsec", //码段类型 |
| | | description: "", //描述 |
| | | serialDependFlag: false, //是否流水依赖 |
| | | //serialDependOrder: "", //流水依赖顺序 |
| | | nullableFlag: false, //是否为空 |
| | | prefixCode: "", //前缀 |
| | | suffixCode: "", //后缀 |
| | | displayFlag: false, // |
| | | componentCodeFlag: false, //是否参与编码 |
| | | pkCodeRule: "", //所属编码规则 |
| | | }, |
| | | |
| | | //枚举和可输可选查询 |
| | | enumParam: { |
| | | secTypeList: [], //码段类型 |
| | | codeSecLengthType: [], //码段长度类型 |
| | | codeFillType: [], //编码补位方式 |
| | | codeFillSeparator: [], //补位时的字符,可输可选内容 |
| | | codeLevelType: [], //层级类型 |
| | | codeCutType: [], //字符截取类型 |
| | | codeGetValueType: [], //取值类型 |
| | | }, |
| | | |
| | | //表单元素标签宽度 |
| | | leftFormLabelWidth: "110px", |
| | | rightFormLabelWidth: "150px", |
| | | |
| | | // 高级查询对话框相关参数 |
| | | advancedQueryParam: { |
| | | ref: "advancedQuery", |
| | | advancedQuerySettingBox: false, |
| | | options: [], |
| | | currentOpen: "", //当前打开高级查询的窗口是 |
| | | //conditionMapParams: {}, |
| | | }, |
| | | |
| | | //引用码段中参照配置组件相关参数 |
| | | referConfigOption: {}, |
| | | referConfigVisble: false, |
| | | |
| | | preFixOrSuffixChars: [], //前后缀字符列表 |
| | | |
| | | }; |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["permission"]), |
| | | permissionList() { |
| | | return { |
| | | // 编码规则相关按钮 |
| | | addBtn: this.vaildData(this.permission.code_rule.code_rule_add, false), |
| | | //viewBtn: this.vaildData(this.permission.code_rule.code_rule_view, false), |
| | | rulDelBtn: this.vaildData(this.permission.code_rule.code_rule_delete, false), |
| | | editBtn: this.vaildData(this.permission.code_rule.code_rule_edit, false), |
| | | deactivateBtn: this.vaildData(this.permission.code_rule.code_rule_deactivate, false), |
| | | enableBtn: this.vaildData(this.permission.code_rule.code_rule_enable, false), |
| | | releaseBtn: this.vaildData(this.permission.code_rule.code_rule_release, false), |
| | | advancedQueryBtn: this.vaildData(this.permission.code_rule.code_rule_advanced_query, false), |
| | | cloneBtn: this.vaildData(this.permission.code_rule.code_rule_clone, false), |
| | | otherCloneBtn: this.vaildData(this.permission.code_rule.code_rule_other_clone, false), |
| | | usescopeBtn: this.vaildData(this.permission.code_rule.code_rule_usescope, false), |
| | | clearBtn: this.vaildData(this.permission.code_rule.code_rule_clear, false), |
| | | escapeOwnerBtn: this.vaildData(this.permission.code_rule.code_rule_escape_owner, false), |
| | | maxSerialnumBtn: this.vaildData(this.permission.code_rule.code_rule_max_serialnum, false), |
| | | }; |
| | | }, |
| | | basicPermissionList() { |
| | | return { |
| | | // 基础码段相关按钮 |
| | | addBtn: this.vaildData(this.permission.code_rule.code_basic_add, false), |
| | | editBtn: this.vaildData(this.permission.code_rule.code_basic_edit, false), |
| | | viewBtn: this.vaildData(this.permission.code_rule.code_basic_view, false), |
| | | basicDelBtn: this.vaildData(this.permission.code_rule.code_basic_delete, false), |
| | | basicAdvancedQueryBtn: this.vaildData(this.permission.code_rule.code_basic_advanced_query, false), |
| | | basicMgrBtn: this.vaildData(this.permission.code_rule.code_basic_mgr, false), |
| | | basicMoveupBtn: this.vaildData(this.permission.code_rule.code_basic_moveup, false), |
| | | basicDownBtn: this.vaildData(this.permission.code_rule.code_basic_down, false), |
| | | } |
| | | }, |
| | | }, |
| | | watch: {}, |
| | | mounted() { |
| | | this.loadTotalEnum(); |
| | | }, |
| | | // 解决表格错行问题 |
| | | activated() { |
| | | this.$nextTick(() => { |
| | | this.$refs.crud.doLayout(); |
| | | this.$refs.crudBasic.doLayout(); |
| | | }); |
| | | }, |
| | | // 生命钩子函数 |
| | | beforeDestroy() { |
| | | // 清除指定缓存 |
| | | localStorage.removeItem('codeSecType'); |
| | | localStorage.removeItem('codeSecLength'); |
| | | localStorage.removeItem('codeFillType'); |
| | | localStorage.removeItem('codeLevelType'); |
| | | localStorage.removeItem('codeCutType'); |
| | | localStorage.removeItem('codeGetValueType'); |
| | | }, |
| | | methods: { |
| | | //自定义流水失焦 |
| | | setReferValue(data) { |
| | | if (data.field) { |
| | | // this.form[data.field] = data.value || ""; |
| | | this.form.customCodeSerialClass = data.rawData[0].id || ""; |
| | | console.log(this.form.customCodeSerialClass); |
| | | this.form[data.showField] = data.text || ""; |
| | | this.form.serialType = data.rawData[0].serialType || ""; |
| | | this.form.customCodeSerialType = data.rawData[0].serialType || ""; |
| | | } |
| | | }, |
| | | /** 转移规则所有者对话框 */ |
| | | escapeOwner() { |
| | | if (this.selectionList.length === 0) { |
| | | this.$message.warning("请选择一条编码规则!"); |
| | | return; |
| | | } |
| | | this.escapeOwnerVisible = true; |
| | | getByRoleUserList("规则管理员").then((res) => { |
| | | this.ruleAdminUserList = res.data.data; |
| | | }); |
| | | }, |
| | | /** 确认转移所有者 */ |
| | | escapeOwnerConfirm() { |
| | | if (!this.ruleOwner) { |
| | | this.$message.warning("请选择您要转移的规则管理员!"); |
| | | return; |
| | | } |
| | | this.selectionList[0].owner = this.ruleOwner; |
| | | let data = this.selectionList[0]; |
| | | update(data).then( |
| | | () => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "规则转移成功!", |
| | | }); |
| | | this.escapeOwnerVisible = false; |
| | | }, |
| | | /** 确认转移所有者 */ |
| | | escapeOwnerConfirm(){ |
| | | if(!this.ruleOwner){ |
| | | this.$message.warning("请选择您要转移的规则管理员!"); |
| | | return; |
| | | } |
| | | this.selectionList[0].owner = this.ruleOwner; |
| | | let data = this.selectionList[0]; |
| | | update(data).then(() => { |
| | | this.onLoad(this.page); |
| | | (error) => { |
| | | console.log(error); |
| | | } |
| | | ); |
| | | }, |
| | | |
| | | /** 高级查询对话框组件,组件返回的值是condtionMap[field]形式的查询条件,保留了和之前一样的方式 */ |
| | | echoSeniorContionMap(conditionMaps) { |
| | | //console.log(conditionMaps); |
| | | if (JSON.stringify(conditionMaps) != "{}") { |
| | | if (this.advancedQueryParam.currentOpen == "codeRule") { |
| | | this.query = conditionMaps; |
| | | // console.log(this.query); |
| | | this.onLoad(this.page); |
| | | } else { |
| | | this.sendGridCodeBasicSec(conditionMaps, true); |
| | | } |
| | | } |
| | | }, |
| | | /* 公式编辑框内容改变,子组件编辑完公式之后内容回显时调用 */ |
| | | updateFormulaContent(content) { |
| | | this.form.getValueClass = content; |
| | | }, |
| | | /* 引用码段参照配置,子组件填完参照配置之后内容回显时调用 */ |
| | | setReferConfigValue(content) { |
| | | this.form.referBtmId = content.referType || ""; |
| | | this.form.referBtmName = content.referTypeName || content.referType; |
| | | //转换成JSON字符串进行父组件回显 |
| | | let submitFormJson = JSON.stringify(content); |
| | | this.form.referConfig = submitFormJson || ""; |
| | | // debugger; |
| | | }, |
| | | /** 引用码段为【参照引用的业务类型】选取值之后的内容回显时调用 */ |
| | | echoReferBtmType(content) { |
| | | // 实现回显 |
| | | this.form.referBtmId = content.id || ""; |
| | | this.form.referBtmName = content.name || content.id; |
| | | }, |
| | | |
| | | /** 父分类选择对话框,第二层嵌套对话框,及其相关方法 */ |
| | | /** 保存当前父分类码段的选中行,并进行回显 */ |
| | | saveSelectedParentClassify() { |
| | | if (this.parentClsfyParams.parentClassifySelectionList.length != 1) { |
| | | this.$message.warning("请选择一条数据!"); |
| | | return false; |
| | | } |
| | | //参数值,实现回显 |
| | | this.form.parentClassifySecOid = |
| | | this.parentClsfyParams.parentClassifySelectionList[0].oid; |
| | | this.form.parentClassifySecText = |
| | | this.parentClsfyParams.parentClassifySelectionList[0].name; |
| | | //清空当前选中的行 |
| | | this.parentClassifySelectionClear(); |
| | | this.parentClsfyParams.isShowParentClassifySettingBox = false; |
| | | }, |
| | | parentClassifySearchReset() { |
| | | this.parentClsfyParams.parentClassifyQuery = {}; |
| | | this.parentClassifyOnLoad(this.parentClsfyParams.parentClassifyDataPage); |
| | | }, |
| | | parentClassifySearchChange(params, done) { |
| | | this.parentClsfyParams.parentClassifyQuery = params; |
| | | this.parentClsfyParams.parentClassifyDataPage.currentPage = 1; |
| | | this.parentClassifyOnLoad(this.page, params); |
| | | done(); |
| | | }, |
| | | parentClassifyRowClick(row) { |
| | | this.$refs[this.parentClsfyParams.ref].toggleSelection(); |
| | | this.parentClsfyParams.parentClassifySelectionList = row; |
| | | this.$refs[this.parentClsfyParams.ref].setCurrentRow(row); |
| | | this.$refs[this.parentClsfyParams.ref].toggleRowSelection(row); //选中当前行 |
| | | }, |
| | | parentClassifySelectionChange(list) { |
| | | this.parentClsfyParams.parentClassifySelectionList = list; |
| | | this.$refs[this.parentClsfyParams.ref].setCurrentRow( |
| | | this.parentClsfyParams.parentClassifySelectionList[list.length - 1] |
| | | ); |
| | | }, |
| | | parentClassifySelectionClear() { |
| | | this.parentClsfyParams.parentClassifySelectionList = []; |
| | | this.$refs[this.parentClsfyParams.ref].toggleSelection(); |
| | | }, |
| | | parentClassifyCurrentChange(currentPage) { |
| | | this.parentClsfyParams.parentClassifyDataPage.currentPage = currentPage; |
| | | }, |
| | | parentClassifySizeChange(pageSize) { |
| | | this.parentClsfyParams.parentClassifyDataPage.pageSize = pageSize; |
| | | }, |
| | | refreshParentClassifyDataChange() { |
| | | this.parentClassifyOnLoad( |
| | | this.parentClsfyParams.parentClassifyDataPage, |
| | | this.parentClsfyParams.parentClassifyQuery |
| | | ); |
| | | }, |
| | | parentClassifyOnLoad(page, params = {}) { |
| | | let parentClsParam = this.parentClsfyParams; |
| | | parentClsParam.classifyDialogLoading = true; |
| | | let oid = |
| | | this.selectionList.length == 0 |
| | | ? this.form.pkCodeRule |
| | | : this.selectionList[0].oid; |
| | | let conditionMaps = {}; |
| | | |
| | | conditionMaps["conditionMap[pkCodeRule]"] = oid; |
| | | conditionMaps["conditionMap[oid_notequal]"] = this.form.oid; |
| | | refDataGridClassifySec( |
| | | page.currentPage, |
| | | page.pageSize, |
| | | conditionMaps |
| | | ).then((res) => { |
| | | const data = res.data.data; |
| | | parentClsParam.parentClassifyDataPage.total = data.total; |
| | | parentClsParam.parentClassifyData = data.records; |
| | | parentClsParam.classifyDialogLoading = false; |
| | | this.parentClassifySelectionClear(); |
| | | }); |
| | | }, |
| | | |
| | | /** 打开属性选取值,第二层嵌套对话框,及其相关方法 */ |
| | | /** 获取当前被选中树节点的oid */ |
| | | nodeClick(data) { |
| | | this.currentSelectTreeData = data; |
| | | this.loadlistClassifyLinkAttr(); |
| | | }, |
| | | /** 加载分类连接属性表格数据 */ |
| | | loadlistClassifyLinkAttr() { |
| | | let attrParam = this.selectAttrParams; |
| | | this.selectAttrParams.selectAttrOptionLoading = true; |
| | | let conditionMaps = {}; |
| | | if (attrParam.selectAttrQeury) { |
| | | Object.keys(attrParam.selectAttrQeury).forEach((key) => { |
| | | conditionMaps["conditionMap[" + key + "]"] = |
| | | attrParam.selectAttrQeury[key].trim(); |
| | | }); |
| | | } |
| | | conditionMaps["conditionMap[codeClassifyOid]"] = |
| | | this.currentSelectTreeData.oid; |
| | | conditionMaps["conditionMap[btmTypeOid]"] = |
| | | this.currentSelectTreeData.btmTypeOid; |
| | | listClassifyLinkAttr(conditionMaps).then((res) => { |
| | | const data = res.data; |
| | | this.$nextTick(() => { |
| | | this.$refs[attrParam.ref].doLayout(); |
| | | }); |
| | | this.selectAttrParams.selectAttrData = data.data; |
| | | this.selectAttrParams.selectAttrOptionLoading = false; |
| | | // 将搜索框内容置空 |
| | | this.selectAttrParams.selectAttrQeury = {}; |
| | | }); |
| | | }, |
| | | /** 点击搜索后触发该事件 */ |
| | | selectAttrSearchChange(params, done) { |
| | | this.selectAttrParams.selectAttrQeury = params; |
| | | //console.log(params); //这儿需要改 |
| | | this.loadlistClassifyLinkAttr(); |
| | | done(); |
| | | }, |
| | | /** 为属性选值界面,单击表格行时触发该事件 */ |
| | | selectionAttrRowClick(row) { |
| | | this.$refs[this.selectAttrParams.ref].toggleSelection(); |
| | | this.selectAttrParams.selectionChangeAttrList = row; |
| | | this.$refs[this.selectAttrParams.ref].setCurrentRow(row); |
| | | this.$refs[this.selectAttrParams.ref].toggleRowSelection(row); //选中当前行 |
| | | }, |
| | | /** 属性取值当前选中行发生变化时触发 */ |
| | | selectionChangeAttr(list) { |
| | | this.selectAttrParams.selectionChangeAttrList = list; |
| | | this.$refs[this.selectAttrParams.ref].setCurrentRow( |
| | | this.selectAttrParams.selectionChangeAttrList[list.length - 1] |
| | | ); |
| | | }, |
| | | /** 重置位属性选取值表格的搜索框之后的回调 */ |
| | | searchAttrReset() { |
| | | this.selectAttrParams.selectAttrQeury = {}; |
| | | this.loadlistClassifyLinkAttr(); |
| | | }, |
| | | /** 为属性选取值之后的回显 */ |
| | | selectedListClassifyLinkAttr() { |
| | | if (this.selectAttrParams.selectionChangeAttrList.length != 1) { |
| | | this.$message.warning("请选择一条数据!"); |
| | | return false; |
| | | } |
| | | const attr = this.selectAttrParams.selectionChangeAttrList[0]; |
| | | //调用子组件并传递当前选中的参数值,实现回显 |
| | | this.form = Object.assign({}, this.form, { |
| | | referAttributeId: attr.id || "", |
| | | referAttributeName: attr.name || attr.id, |
| | | referCodeClassifyOid: this.currentSelectTreeData.key || "", |
| | | referCodeClassifyOidName: this.currentSelectTreeData.title || "", |
| | | }); |
| | | this.isShowSelectAttrOption = false; |
| | | }, |
| | | |
| | | /** 基础码段表中的码值管理的相关方法 */ |
| | | /** 码值管理弹窗控制*/ |
| | | openBasicSecCodeValueMgr(row) { |
| | | //当前为固定码段码值管理码值管理 |
| | | if (row.secType === "codefixedsec") { |
| | | this.isShowFixedForm = true; |
| | | this.loadFixedValueTableData(row); |
| | | } else { |
| | | //分类码段 |
| | | this.isShowFixedForm = false; |
| | | this.loadClassifyValueData(row); |
| | | } |
| | | this.codefixedsecOrCodeclassifysec = row; |
| | | this.isShowBasicSecCodeValueMgr = true; |
| | | }, |
| | | /** 加载固定码段码值表数据*/ |
| | | loadFixedValueTableData(row) { |
| | | this.fixedValueOptionLoading = true; |
| | | gridCodeFixedValue(1, -1, {codeFixedSecOid: row.oid}).then((res) => { |
| | | this.fixedValueData = res.data.data.records; |
| | | this.fixedValueOptionLoading = false; |
| | | }); |
| | | }, |
| | | /** 单击固定码段的码值表中行时触发的事件*/ |
| | | selectedCodeValueRow(row) { |
| | | this.selectedFixedOrCodeclassifyValue = row; |
| | | this.codeFixdForm.id = row.id; |
| | | this.codeFixdForm.description = row.description; |
| | | this.codeFixdForm.codeFixedSecOid = row.codefixedsecoid; |
| | | }, |
| | | /** 新增码值*/ |
| | | async addCodeSecValue(condition) { |
| | | if (condition === "codefixedsec") { |
| | | if (!this.tipsCodeSecValueMessage(this.codeFixdForm.id)) { |
| | | return; |
| | | } |
| | | if(!await this.regexCharacter(this.codeFixdForm.id)){ |
| | | return; |
| | | } |
| | | 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: "规则转移成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | this.escapeOwnerVisible = false; |
| | | }, error => { |
| | | console.log(error); |
| | | }); |
| | | }, |
| | | |
| | | /** 高级查询对话框组件,组件返回的值是condtionMap[field]形式的查询条件,保留了和之前一样的方式 */ |
| | | echoSeniorContionMap(conditionMaps){ |
| | | //console.log(conditionMaps); |
| | | if(JSON.stringify(conditionMaps)!='{}'){ |
| | | if(this.advancedQueryParam.currentOpen =='codeRule'){ |
| | | this.query = conditionMaps; |
| | | this.onLoad(this.page); |
| | | }else{ |
| | | this.sendGridCodeBasicSec(conditionMaps,true); |
| | | } |
| | | //console.log(conditionMaps); |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | } |
| | | }, |
| | | /* 公式编辑框内容改变,子组件编辑完公式之后内容回显时调用 */ |
| | | updateFormulaContent(content){ |
| | | this.form.getValueClass = content; |
| | | }, |
| | | /* 引用码段参照配置,子组件填完参照配置之后内容回显时调用 */ |
| | | echoReferConfig(content){ |
| | | // console.log(content.referTypeName); |
| | | this.form.referBtmId = content.referType || ''; |
| | | this.form.referBtmName = content.referTypeName || content.referType; |
| | | //转换成JSON字符串进行父组件回显 |
| | | let submitFormJson = JSON.stringify(content); |
| | | this.form.referConfig = submitFormJson || ''; |
| | | }, |
| | | /** 引用码段为【参照引用的业务类型】选取值之后的内容回显时调用 */ |
| | | echoReferBtmType(content){ |
| | | // 实现回显 |
| | | this.form.referBtmId = content.id || ''; |
| | | this.form.referBtmName = content.name || content.id; |
| | | }, |
| | | |
| | | /** 父分类选择对话框,第二层嵌套对话框,及其相关方法 */ |
| | | // 保存当前父分类码段的选中行,并进行回显 |
| | | saveSelectedParentClassify(){ |
| | | //console.log(this.parentClsfyParams.parentClassifySelectionList.length); |
| | | if(this.parentClsfyParams.parentClassifySelectionList.length != 1){ |
| | | this.$message.warning("请选择一条数据!"); |
| | | return false; |
| | | } |
| | | //参数值,实现回显 |
| | | this.form.parentClassifySecOid = this.parentClsfyParams.parentClassifySelectionList[0].oid; |
| | | this.form.parentClassifySecText = this.parentClsfyParams.parentClassifySelectionList[0].name; |
| | | //清空当前选中的行 |
| | | this.parentClassifySelectionClear(); |
| | | this.parentClsfyParams.isShowParentClassifySettingBox = false; |
| | | }, |
| | | parentClassifySearchReset() { |
| | | this.parentClsfyParams.parentClassifyQuery = {}; |
| | | this.parentClassifyOnLoad(this.parentClsfyParams.parentClassifyDataPage); |
| | | }, |
| | | parentClassifySearchChange(params, done) { |
| | | this.parentClsfyParams.parentClassifyQuery = params; |
| | | this.parentClsfyParams.parentClassifyDataPage.currentPage = 1; |
| | | this.parentClassifyOnLoad(this.page, params); |
| | | done(); |
| | | }, |
| | | parentClassifyRowClick(row){ |
| | | this.$refs[this.parentClsfyParams.ref].toggleSelection(); |
| | | this.parentClsfyParams.parentClassifySelectionList = row; |
| | | this.$refs[this.parentClsfyParams.ref].setCurrentRow(row); |
| | | this.$refs[this.parentClsfyParams.ref].toggleRowSelection(row); //选中当前行 |
| | | }, |
| | | parentClassifySelectionChange(list) { |
| | | this.parentClsfyParams.parentClassifySelectionList = list; |
| | | this.$refs[this.parentClsfyParams.ref].setCurrentRow(this.parentClsfyParams.parentClassifySelectionList[list.length-1]); |
| | | }, |
| | | parentClassifySelectionClear() { |
| | | this.parentClsfyParams.parentClassifySelectionList = []; |
| | | this.$refs[this.parentClsfyParams.ref].toggleSelection(); |
| | | }, |
| | | parentClassifyCurrentChange(currentPage){ |
| | | this.parentClsfyParams.parentClassifyDataPage.currentPage = currentPage; |
| | | }, |
| | | parentClassifySizeChange(pageSize){ |
| | | this.parentClsfyParams.parentClassifyDataPage.pageSize = pageSize; |
| | | }, |
| | | refreshParentClassifyDataChange() { |
| | | this.parentClassifyOnLoad(this.parentClsfyParams.parentClassifyDataPage, this.parentClsfyParams.parentClassifyQuery); |
| | | }, |
| | | parentClassifyOnLoad(page, params = {}) { |
| | | let parentClsParam = this.parentClsfyParams; |
| | | parentClsParam.classifyDialogLoading = true; |
| | | let oid = this.selectionList.length==0 ? this.form.pkCodeRule:this.selectionList[0].oid; |
| | | let conditionMaps = {}; |
| | | conditionMaps['conditionMap[pkCodeRule]'] = oid; |
| | | refDataGridClassifySec( |
| | | page.currentPage, |
| | | page.pageSize, |
| | | conditionMaps |
| | | ).then(res => { |
| | | //console.log(res.data); |
| | | const data = res.data.data; |
| | | parentClsParam.parentClassifyDataPage.total = data.total; |
| | | parentClsParam.parentClassifyData = data.records; |
| | | parentClsParam.classifyDialogLoading = false; |
| | | this.parentClassifySelectionClear(); |
| | | }); |
| | | }, |
| | | |
| | | |
| | | /** 打开属性选取值,第二层嵌套对话框,及其相关方法 */ |
| | | // 获取当前被选中树节点的oid |
| | | nodeClick(data) { |
| | | this.currentSelectTreeData = data; |
| | | this.loadlistClassifyLinkAttr() |
| | | }, |
| | | // 加载分类连接属性表格数据 |
| | | loadlistClassifyLinkAttr() { |
| | | let attrParam = this.selectAttrParams; |
| | | //console.log(this.currentSelectTreeData); |
| | | this.selectAttrParams.selectAttrOptionLoading = true; |
| | | let conditionMaps = {}; |
| | | if(attrParam.selectAttrQeury){ |
| | | Object.keys(attrParam.selectAttrQeury).forEach(key=>{ |
| | | conditionMaps['conditionMap['+key+']'] = attrParam.selectAttrQeury[key].trim(); |
| | | ); |
| | | } else { |
| | | // if (!this.tipsCodeSecValueMessage(this.codeClassifyForm.id)) { |
| | | // return; |
| | | // } |
| | | if(!this.codeClassifyForm.name){ |
| | | this.$message.error('请输入名称'); |
| | | return; |
| | | } |
| | | if(!await this.regexCharacter(this.codeClassifyForm.id)){ |
| | | return; |
| | | } |
| | | this.codeClassifyForm.codeClassifySecOid = |
| | | this.codefixedsecOrCodeclassifysec.oid; |
| | | addSaveCodeClassifyValue(this.codeClassifyForm).then( |
| | | () => { |
| | | this.loadClassifyValueData({ |
| | | oid: this.codefixedsecOrCodeclassifysec.oid, |
| | | }); |
| | | } |
| | | conditionMaps['conditionMap[codeClassifyOid]'] = this.currentSelectTreeData.oid; |
| | | conditionMaps['conditionMap[btmTypeOid]'] = this.currentSelectTreeData.btmTypeOid; |
| | | listClassifyLinkAttr(conditionMaps).then(res=>{ |
| | | const data = res.data; |
| | | this.$nextTick(() => { |
| | | this.$refs[attrParam.ref].doLayout() |
| | | }); |
| | | //console.log(data.data); |
| | | this.selectAttrParams.selectAttrData = data.data; |
| | | this.selectAttrParams.selectAttrOptionLoading = false; |
| | | // 将搜索框内容置空 |
| | | this.selectAttrParams.selectAttrQeury = {}; |
| | | }) |
| | | }, |
| | | // 点击搜索后触发该事件 |
| | | selectAttrSearchChange(params, done) { |
| | | this.selectAttrParams.selectAttrQeury = params; |
| | | //console.log(params); //这儿需要改 |
| | | this.loadlistClassifyLinkAttr(); |
| | | done(); |
| | | }, |
| | | // 为属性选值界面,单击表格行时触发该事件 |
| | | selectionAttrRowClick(row){ |
| | | this.$refs[this.selectAttrParams.ref].toggleSelection(); |
| | | this.selectAttrParams.selectionChangeAttrList = row; |
| | | this.$refs[this.selectAttrParams.ref].setCurrentRow(row); |
| | | this.$refs[this.selectAttrParams.ref].toggleRowSelection(row); //选中当前行 |
| | | }, |
| | | // 属性取值当前选中行发生变化时触发 |
| | | selectionChangeAttr(list){ |
| | | this.selectAttrParams.selectionChangeAttrList = list; |
| | | this.$refs[this.selectAttrParams.ref].setCurrentRow(this.selectAttrParams.selectionChangeAttrList[list.length-1]); |
| | | }, |
| | | // 重置位属性选取值表格的搜索框之后的回调 |
| | | searchAttrReset() { |
| | | this.selectAttrParams.selectAttrQeury = {}; |
| | | this.loadlistClassifyLinkAttr() |
| | | }, |
| | | // 为属性选取值之后的回显 |
| | | selectedListClassifyLinkAttr(){ |
| | | if(this.selectAttrParams.selectionChangeAttrList.length != 1){ |
| | | this.$message.warning("请选择一条数据!"); |
| | | return false; |
| | | } |
| | | //调用子组件并传递当前选中的参数值,实现回显 |
| | | this.form = Object.assign({}, this.form, { |
| | | referAttributeId:this.selectAttrParams.selectionChangeAttrList[0].id, |
| | | referAttributeName:this.selectAttrParams.selectionChangeAttrList[0].name, |
| | | referCodeClassifyOid: this.currentSelectTreeData.key, |
| | | referCodeClassifyOidName: this.currentSelectTreeData.title, |
| | | }) |
| | | this.isShowSelectAttrOption = false; |
| | | }, |
| | | |
| | | |
| | | /** 基础码段表中的码值管理的相关方法 */ |
| | | // 码值管理弹窗控制 |
| | | openBasicSecCodeValueMgr(row){ |
| | | //当前为固定码段码值管理码值管理 |
| | | if(row.secType === "codefixedsec"){ |
| | | this.isShowFixedForm = true; |
| | | this.loadFixedValueTableData(row); |
| | | }else{ |
| | | //分类码段 |
| | | this.isShowFixedForm = false; |
| | | this.loadClassifyValueData(row); |
| | | } |
| | | this.codefixedsecOrCodeclassifysecOid = row.oid; |
| | | this.isShowBasicSecCodeValueMgr = true; |
| | | }, |
| | | //加载固定码段码值表数据 |
| | | loadFixedValueTableData(row){ |
| | | this.fixedValueOptionLoading = true; |
| | | gridCodeFixedValue(1, -1, {"codeFixedSecOid":row.oid}).then(res=>{ |
| | | this.fixedValueData = res.data.data.records; |
| | | //console.log(this.fixedValueData); |
| | | this.fixedValueOptionLoading = false; |
| | | }) |
| | | }, |
| | | //单击固定码段的码值表中行时触发的事件 |
| | | selectedCodeValueRow(row){ |
| | | //console.log(row); |
| | | this.selectedFixedOrCodeclassifyValue = row; |
| | | this.codeFixdForm.id = row.id; |
| | | this.codeFixdForm.description = row.description; |
| | | this.codeFixdForm.codeFixedSecOid = row.codefixedsecoid; |
| | | }, |
| | | //新增码值 |
| | | addCodeSecValue(condition){ |
| | | if(condition === "codefixedsec"){ |
| | | if(this.codeFixdForm.id.trim() == ''){ |
| | | this.$message.warning("码值不能为空!"); |
| | | return; |
| | | } |
| | | if(this.codeFixdForm.id.trim().length >= 12 ){ |
| | | this.$message.warning("码值长度不能大于12!"); |
| | | return; |
| | | } |
| | | this.codeFixdForm.codeFixedSecOid = this.codefixedsecOrCodeclassifysecOid; |
| | | addSaveCodeFixedValue(this.codeFixdForm).then(() => { |
| | | this.loadFixedValueTableData({"oid":this.codefixedsecOrCodeclassifysecOid}); |
| | | this.clearFixedOrClassifyForm('codefixedsec'); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | }, error => { |
| | | window.console.log(error); |
| | | }); |
| | | }else { |
| | | if(this.codeClassifyForm.id.trim() == ''){ |
| | | this.$message.warning("码值不能为空!"); |
| | | return; |
| | | } |
| | | if(this.codeClassifyForm.id.trim().length > 4 ){ |
| | | this.$message.warning("码值长度不能大于4!"); |
| | | return; |
| | | } |
| | | this.codeClassifyForm.codeClassifySecOid = this.codefixedsecOrCodeclassifysecOid; |
| | | // console.log(this.codeClassifyForm); |
| | | addSaveCodeClassifyValue(this.codeClassifyForm).then(() => { |
| | | this.loadClassifyValueData({"oid":this.codefixedsecOrCodeclassifysecOid}); |
| | | this.clearFixedOrClassifyForm('codeclassifyvaluesec'); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | }, error => { |
| | | this.$confirm(error, { |
| | | confirmButtonText: "确定", |
| | | type: "error", |
| | | }) |
| | | }); |
| | | } |
| | | }, |
| | | //清空码值表单 |
| | | clearFixedOrClassifyForm(condition){ |
| | | //点击取消时清空表单与当前选中的码值,并禁用按钮 |
| | | this.selectedFixedOrCodeclassifyValue = ''; |
| | | //console.log(condition); |
| | | if(condition === "close"){ |
| | | this.codeFixdForm = this.$options.data().codeFixdForm; |
| | | this.codeClassifyForm = this.$options.data().codeClassifyForm; |
| | | } |
| | | if(condition === "codefixedsec"){ |
| | | this.codeFixdForm.description = ''; |
| | | this.codeFixdForm.codeFixedSecOid = ''; |
| | | }else { |
| | | this.codeClassifyForm = this.$options.data().codeClassifyForm; |
| | | } |
| | | }, |
| | | //修改码值 |
| | | editCodeSecValue(condition){ |
| | | if(condition=='codefixedsec'){ |
| | | //以前是直接把当前选中行的所有数据都进行提交,但其实只需要传输一些比要参数即可,这儿做了修改,需要穿其他参数的请自行添加 |
| | | let editData = { |
| | | "oid": this.selectedFixedOrCodeclassifyValue.oid, |
| | | "ts": new Date().getTime(), |
| | | "description": this.codeFixdForm.description, |
| | | "id": this.codeFixdForm.id, |
| | | "codeFixedSecOid": this.selectedFixedOrCodeclassifyValue.codefixedsecoid |
| | | } |
| | | editCodeFixedValue(editData).then(() => { |
| | | this.loadFixedValueTableData({"oid":this.codefixedsecOrCodeclassifysecOid}) |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | }, error => { |
| | | window.console.log(error); |
| | | }); |
| | | }else { |
| | | this.codeClassifyForm.oid = this.selectedFixedOrCodeclassifyValue.attributes.oid; |
| | | // 分类码段,子分类和父分类之间不能相互更改 |
| | | if(this.checkClassUpdate(this.codefixedsecOrCodeclassifysecOid,this.codeClassifyForm.codeClassifySecOid)){ |
| | | return; |
| | | } |
| | | this.$delete(this.codeClassifyForm,"parentClassifyValueOid"); |
| | | editCodeClassifyValue(this.codeClassifyForm).then(() => { |
| | | this.loadClassifyValueData({"oid":this.codefixedsecOrCodeclassifysecOid}) |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | }, error => { |
| | | window.console.log(error); |
| | | }); |
| | | } |
| | | |
| | | }, |
| | | //删除码值 |
| | | delCodeSecValue(condition){ |
| | | //固定码段码值删除 |
| | | if(condition == 'codefixedsec'){ |
| | | //console.log(this.selectedFixedOrCodeclassifyValue.oid); |
| | | this.$confirm("是否删除这条数据?如果被引用将不能被删除!", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }) |
| | | .then(() => { |
| | | let ts = new Date(this.selectedFixedOrCodeclassifyValue.ts).getTime(); |
| | | return deleteCodeFixedValue({"oid": this.selectedFixedOrCodeclassifyValue.oid,"ts": ts}); |
| | | }) |
| | | .then(() => { |
| | | this.selectedFixedOrCodeclassifyValue = ''; |
| | | this.loadFixedValueTableData({"oid":this.codefixedsecOrCodeclassifysecOid}) |
| | | this.clearFixedOrClassifyForm('codefixedsec'); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | }); |
| | | }else{ |
| | | if(this.checkClassUpdate(this.codefixedsecOrCodeclassifysecOid,this.codeClassifyForm.codeClassifySecOid)){ |
| | | return; |
| | | } |
| | | //分类码段码值删除 |
| | | this.$confirm("是否删除这条数据?如果被引用将不能被删除!", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }) |
| | | .then(() => { |
| | | let ts = new Date(this.selectedFixedOrCodeclassifyValue.ts).getTime(); |
| | | return deleteCodeClassifyValue({"oid": this.selectedFixedOrCodeclassifyValue.oid,"ts": ts}); |
| | | }) |
| | | .then(() => { |
| | | this.selectedFixedOrCodeclassifyValue = ''; |
| | | this.loadClassifyValueData({"oid":this.codefixedsecOrCodeclassifysecOid}) |
| | | this.clearFixedOrClassifyForm('codeclassifyvalue'); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | }); |
| | | } |
| | | }, |
| | | //对固定码值表进行:上移、下移、移除操作 |
| | | codeFixedValueOpetion(condition,row){ |
| | | //console.log(this.fixedValueData[row.$index].orderNum); |
| | | const index = row.$index; |
| | | if(condition == 'up'){ |
| | | //对ordeNum排序字段进行调整 |
| | | this.fixedValueData[index].orderNum = this.fixedValueData[index].orderNum-1 |
| | | this.fixedValueData[index-1].orderNum = this.fixedValueData[index].orderNum+1 |
| | | //当下标减去1小于0或者orderNum字段减去1小于0的时候不执行上移操作 |
| | | if(index-1<0 || this.fixedValueData[row.$index].orderNum-1<0){ |
| | | return; |
| | | } |
| | | //调整数组值顺序 |
| | | let tempOption = this.fixedValueData[index-1]; |
| | | this.$set(this.fixedValueData, index - 1, this.fixedValueData[index]) |
| | | this.$set(this.fixedValueData, index , tempOption) |
| | | |
| | | //console.log(this.fixedValueData); |
| | | }else if(condition == 'down'){ |
| | | //对ordeNum排序字段进行调整 |
| | | this.fixedValueData[index].orderNum = this.fixedValueData[index].orderNum+1 |
| | | this.fixedValueData[index+1].orderNum = this.fixedValueData[index].orderNum-1 |
| | | //调整数组值顺序 |
| | | let tempOption = this.fixedValueData[index+1]; |
| | | this.$set(this.fixedValueData, index + 1, this.fixedValueData[index]); |
| | | this.$set(this.fixedValueData, index, tempOption) |
| | | }else { |
| | | for(let i=index+1; i<this.fixedValueData.length-1; i++){ |
| | | //console.log(this.fixedValueData[i].orderNum); |
| | | this.fixedValueData[i].orderNum = this.fixedValueData[i].orderNum-1; |
| | | //console.log(this.fixedValueData[i].orderNum); |
| | | } |
| | | this.$delete(this.fixedValueData, index); |
| | | } |
| | | //console.log(this.fixedValueData); |
| | | }, |
| | | //对分类码值表进行:上移、下移、移除操作 |
| | | codeClassifyValueOpetion(condition){ |
| | | if(this.checkClassUpdate(this.codefixedsecOrCodeclassifysecOid,this.codeClassifyForm.codeClassifySecOid)){ |
| | | return; |
| | | } |
| | | //此处涉及到深浅拷贝问题,但是执行上下移保存操作之后会重新加载treedata,所以影响不大 |
| | | let currentTreeList = this.getCodeClassifyValueTreeData(); |
| | | let saveData = []; |
| | | // console.log(currentTreeList.treeList); |
| | | if(condition == 'up'){ |
| | | if(currentTreeList.index-1>=0){ |
| | | // 调整顺序 |
| | | saveData[0] = currentTreeList.treeList[currentTreeList.index].attributes; |
| | | saveData[1] = currentTreeList.treeList[currentTreeList.index-1].attributes; |
| | | saveData[0].orderNum = parseInt(saveData[0].orderNum)-1; |
| | | saveData[1].orderNum = parseInt(saveData[1].orderNum)+1; |
| | | this.saveCodeFixedOrClassifyValueOption('classifyValue',saveData); |
| | | } |
| | | }else{ |
| | | if(currentTreeList.index+1<currentTreeList.treeList.length){ |
| | | // 调整顺序 |
| | | saveData[0] = currentTreeList.treeList[currentTreeList.index].attributes; |
| | | saveData[1] = currentTreeList.treeList[currentTreeList.index+1].attributes; |
| | | saveData[0].orderNum = parseInt(saveData[0].orderNum)+1; |
| | | saveData[1].orderNum = parseInt(saveData[1].orderNum)-1; |
| | | this.saveCodeFixedOrClassifyValueOption('classifyValue',saveData); |
| | | } |
| | | } |
| | | }, |
| | | //选中被调整顺序的两个树的节点 |
| | | getCodeClassifyValueTreeData(){ |
| | | const currentNodeTreeData = this.selectedFixedOrCodeclassifyValue; |
| | | /**考虑几种情况,第一种当前上移|下移操作已经是边界, |
| | | 不需要要做处理,第二种当前为树根节点,第三种当前为叶子节点 |
| | | */ |
| | | //说明是根节点,直接找再判断是否是边界值 |
| | | if(currentNodeTreeData.parentId.trim() == ''){ |
| | | return this.findTreeIndex(this.classifyValueTreeData,currentNodeTreeData.oid,true); |
| | | }else{ |
| | | //说明不是根节点,先找到父节点再找到子节点,判断是否是边界值 |
| | | return this.findTreeIndex(this.classifyValueTreeData,currentNodeTreeData.parentId,false); |
| | | } |
| | | }, |
| | | /** |
| | | * 找前一个和后一个元素 |
| | | * @treeList 查找的数组 |
| | | * @conditionOid 用来查找判断的条件 |
| | | * @isTreeRoot 是否父节点 |
| | | * @rreturn 返回相邻的节点 |
| | | */ |
| | | findTreeIndex(treeList,conditionOid,isTreeRoot){ |
| | | for(let index=0;index<treeList.length;index++){ |
| | | if(treeList[index].oid==conditionOid){ |
| | | if(isTreeRoot){ |
| | | let resData = { |
| | | "index":index, |
| | | "treeList":treeList, |
| | | } |
| | | return resData; |
| | | }else{ |
| | | return this.findTreeIndex(this.classifyValueTreeData[index].children,this.selectedFixedOrCodeclassifyValue.oid,true); |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | //上移下移等操作的保存 |
| | | async saveCodeFixedOrClassifyValueOption(condition,editOrderNumdata){ |
| | | //保存对固定码段码值的上移下移移出等操作 |
| | | if(condition == "fixedValue"){ |
| | | let data = { |
| | | "codeFixedSecOid": this.codefixedsecOrCodeclassifysecOid, |
| | | "dtoList": JSON.stringify(this.fixedValueData), |
| | | } |
| | | saveOrder(data).then(() => { |
| | | //执行完保存之后将当前选中的对象清空 |
| | | this.selectedFixedOrCodeclassifyValue = ''; |
| | | this.$message({ |
| | | type: "success", |
| | | message: "保存成功!" |
| | | }); |
| | | }, error => { |
| | | window.console.log(error); |
| | | }); |
| | | }else { |
| | | //保存对分类码值码段码值的上移下移移出等操作 |
| | | await saveCodeClassifyValueOrder({ |
| | | "codeClassifySecOid": this.codefixedsecOrCodeclassifysecOid, |
| | | "dtoList": JSON.stringify(editOrderNumdata), |
| | | }).then(() => { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "保存成功!" |
| | | }); |
| | | }, error => { |
| | | window.console.log(error); |
| | | }); |
| | | this.loadClassifyValueData({"oid":this.codefixedsecOrCodeclassifysecOid}); |
| | | } |
| | | |
| | | }, |
| | | //分类码值树data加载 |
| | | loadClassifyValueData(row){ |
| | | //console.log(row); |
| | | let condtionData = { |
| | | "queryAllLevel": true, |
| | | "loadType": "all", |
| | | "multipleSelect": false, |
| | | "isMuti": false, |
| | | "isQueryAllColumn": true, |
| | | 'conditionMap[codeclassifysecoid]':row.oid, |
| | | }; |
| | | treeCodeClassifyValue(condtionData).then( res=> { |
| | | this.classifyValueTreeData = res.data; |
| | | //console.log(res.data); |
| | | }); |
| | | }, |
| | | //分类码值树单击时触发的事件 |
| | | classisyValueTreeOnodeClick(node){ |
| | | //console.log(node); |
| | | this.selectedFixedOrCodeclassifyValue = node; |
| | | this.codeClassifyForm.codeClassifySecOid = node.attributes.codeClassifySecOid; |
| | | this.codeClassifyForm.id = node.attributes.id; |
| | | this.codeClassifyForm.name = node.attributes.name; |
| | | this.codeClassifyForm.parentClassifyValueOid = node.attributes.oid; |
| | | // console.log(this.codeClassifyForm); |
| | | }, |
| | | /** |
| | | * 分类码段码值,修改、删除、上下移之前,检查是否为子分类和父分类之间相互更改 |
| | | * @currentRowClassOid 当前选中行oid |
| | | * @updateClassOid 要修改的分类码值oid |
| | | */ |
| | | checkClassUpdate(currentRowClassOid,updateClassOid){ |
| | | if(currentRowClassOid!=updateClassOid){ |
| | | this.clearFixedOrClassifyForm("codeclassifyvaluesec"); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | }, |
| | | (error) => { |
| | | this.$confirm(error, { |
| | | confirmButtonText: "确定", |
| | | type: "error", |
| | | message: "操作失败【子分类与父分类之间不能相互修改码值】!" |
| | | }); |
| | | } |
| | | return currentRowClassOid!=updateClassOid; |
| | | }, |
| | | |
| | | /** 编码规则相关方法 */ |
| | | // 打开高级查询窗口 |
| | | openAdvancedQuery(condition){ |
| | | if(condition=='codeRule'){ |
| | | this.advancedQueryParam.options = [ |
| | | { |
| | | data: [], |
| | | title: '编号', |
| | | fieldType: 'text', |
| | | queryField: 'id', |
| | | },{ |
| | | data: [], |
| | | title: '名称', |
| | | fieldType: 'text', |
| | | queryField: 'name', |
| | | },{ |
| | | data: [], |
| | | title: '描述', |
| | | fieldType: 'text', |
| | | queryField: 'description', |
| | | },{ |
| | | data: [ |
| | | // { |
| | | // key: '编辑中', |
| | | // value: 'Editing', |
| | | // }, |
| | | // { |
| | | // key: '已发布', |
| | | // value: 'Released', |
| | | // }, |
| | | // { |
| | | // key: '停用', |
| | | // value: 'Disabled', |
| | | // }, |
| | | ], |
| | | title: '状态', |
| | | fieldType: 'combox', |
| | | queryField: 'lcStatus', |
| | | comboxKey: 'codeSearchLCStatus', |
| | | }, |
| | | ] |
| | | }else { |
| | | this.advancedQueryParam.options = [ |
| | | { |
| | | data: [], |
| | | title: '码段编号', |
| | | fieldType: 'text', |
| | | queryField: 'id', |
| | | },{ |
| | | data: [], |
| | | title: '码段名称', |
| | | fieldType: 'text', |
| | | queryField: 'name', |
| | | },{ |
| | | data: [], |
| | | title: '描述', |
| | | fieldType: 'text', |
| | | queryField: 'description', |
| | | },{ |
| | | data: [], |
| | | title: '码段类型', |
| | | fieldType: 'combox', |
| | | queryField: 'secType', |
| | | comboxKey: 'codeSecType', |
| | | } |
| | | ] |
| | | } |
| | | this.advancedQueryParam.currentOpen = condition; |
| | | this.advancedQueryParam.advancedQuerySettingBox = true; |
| | | }, |
| | | // 查询使用范围 |
| | | handleRange(){ |
| | | if(!this.tipsMessage(this.selectionList)){ |
| | | return; |
| | | } |
| | | this.codeRangeSettingBox = true; |
| | | this.getRangeCodeList() |
| | | }, |
| | | // 加载使用范围列表 |
| | | getRangeCodeList(){ |
| | | this.dialogLoading = true; |
| | | if(this.selectionList[0].oid==null){ |
| | | this.$message.error("未获取到参数!"); |
| | | } |
| | | |
| | | listUseRange(this.selectionList[0].oid).then(res => { |
| | | this.useRangeData = res.data.data; |
| | | //console.log(this.useRangeData); |
| | | this.dialogLoading = false; |
| | | }); |
| | | }, |
| | | // 刷新使用范围列表 |
| | | refreshUseRangeChange(){ |
| | | this.getRangeCodeList(); |
| | | }, |
| | | // 启用与停用 |
| | | enableOrDeactivatse(oId,update){ |
| | | updateStatus({"oid":oId,"ts":new Date().getTime,"update":update}).then(() => { |
| | | this.onLoad(this.page); |
| | | ); |
| | | } |
| | | }, |
| | | /** 修改码值 */ |
| | | async editCodeSecValue(condition) { |
| | | if (condition == "codefixedsec") { |
| | | if (!this.tipsCodeSecValueMessage(this.codeFixdForm.id)) { |
| | | return; |
| | | } |
| | | if(!await this.regexCharacter(this.codeFixdForm.id)){ |
| | | return; |
| | | } |
| | | //以前是直接把当前选中行的所有数据都进行提交,但其实只需要传输一些必要参数即可,这儿做了修改,需要传其他参数的请自行添加 |
| | | let editData = { |
| | | oid: this.selectedFixedOrCodeclassifyValue.oid, |
| | | ts: new Date().getTime(), |
| | | description: this.codeFixdForm.description, |
| | | id: this.codeFixdForm.id, |
| | | codeFixedSecOid: |
| | | this.selectedFixedOrCodeclassifyValue.codefixedsecoid, |
| | | }; |
| | | editCodeFixedValue(editData).then( |
| | | () => { |
| | | this.loadFixedValueTableData({ |
| | | oid: this.codefixedsecOrCodeclassifysec.oid, |
| | | }); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | }, error => { |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | }); |
| | | }, |
| | | // 打开编码规则克隆对话框 |
| | | 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); |
| | | ); |
| | | } else { |
| | | if (!this.tipsCodeSecValueMessage(this.codeClassifyForm.id)) { |
| | | return; |
| | | } |
| | | if(!await this.regexCharacter(this.codeClassifyForm.id)){ |
| | | return; |
| | | } |
| | | this.codeClassifyForm.oid = |
| | | this.selectedFixedOrCodeclassifyValue.attributes.oid; |
| | | // 分类码段,子分类和父分类之间不能相互更改 |
| | | if ( |
| | | this.checkClassUpdate( |
| | | this.codefixedsecOrCodeclassifysec.oid, |
| | | this.codeClassifyForm.codeClassifySecOid |
| | | ) |
| | | ) { |
| | | return; |
| | | } |
| | | this.$delete(this.codeClassifyForm, "parentClassifyValueOid"); |
| | | editCodeClassifyValue(this.codeClassifyForm).then( |
| | | () => { |
| | | this.loadClassifyValueData({ |
| | | oid: this.codefixedsecOrCodeclassifysec.oid, |
| | | }); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | message: "操作成功!", |
| | | }); |
| | | }, error => { |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | }); |
| | | //console.log(data); |
| | | }, |
| | | // 打开从其他编码规则中克隆码段对话框 |
| | | openOtherCodeRuleDialog(){ |
| | | if (!this.tipsMessage(this.selectionList)) { |
| | | return; |
| | | } |
| | | if(this.selectionList[0].lcStatus != 'Editing'){ |
| | | this.$message.warning("编码规则已被引用,不允许编辑或删除!"); |
| | | return; |
| | | } |
| | | 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; |
| | | } |
| | | //console.log(res); |
| | | 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: "操作成功!" |
| | | ); |
| | | } |
| | | }, |
| | | /** |
| | | * 可用字符集码值正则校验 |
| | | * @return true:满足限制,false:不满足限制 |
| | | */ |
| | | async regexCharacter(str){ |
| | | var regex = null; |
| | | // 获取到配置好的可用字符正则 |
| | | await getRegexStr({codeRuleId: this.selectionList[0].oid,chartType: "charset"}).then(res=>{ |
| | | // console.log(res.data.data); |
| | | regex = new RegExp(res.data.data); |
| | | }); |
| | | // console.log(regex); |
| | | // console.log(regex.test(str)); |
| | | if(regex != "" && !regex.test(str)){ |
| | | this.$message.warning("添加的码值未在可用字符集中配置!"); |
| | | return false; |
| | | } |
| | | return true; |
| | | }, |
| | | /** 清空码值表单 */ |
| | | clearFixedOrClassifyForm(condition) { |
| | | //点击取消时清空表单与当前选中的码值,并禁用按钮 |
| | | this.selectedFixedOrCodeclassifyValue = ""; |
| | | if (condition === "close") { |
| | | this.codeFixdForm = this.$options.data().codeFixdForm; |
| | | this.codeClassifyForm = this.$options.data().codeClassifyForm; |
| | | } |
| | | if (condition === "codefixedsec") { |
| | | this.codeFixdForm.description = ""; |
| | | this.codeFixdForm.codeFixedSecOid = ""; |
| | | } else { |
| | | this.codeClassifyForm = this.$options.data().codeClassifyForm; |
| | | } |
| | | }, |
| | | /** 添加或修改码值之前对码值长度根据规则进行校验 */ |
| | | tipsCodeSecValueMessage(id) { |
| | | if (id.trim() == "") { |
| | | this.$message.warning("码值不能为空!"); |
| | | return false; |
| | | } |
| | | if (id.trim().length > this.codefixedsecOrCodeclassifysec.codeSecLength) { |
| | | this.$message.warning( |
| | | "码值长度不能大于" + this.codefixedsecOrCodeclassifysec.codeSecLength |
| | | ); |
| | | return false; |
| | | } |
| | | return true; |
| | | }, |
| | | /** 删除码值 */ |
| | | delCodeSecValue(condition) { |
| | | //固定码段码值删除 |
| | | if (condition == "codefixedsec") { |
| | | //console.log(this.selectedFixedOrCodeclassifyValue.oid); |
| | | this.$confirm("是否删除这条数据?如果被引用将不能被删除!", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | let ts = new Date( |
| | | this.selectedFixedOrCodeclassifyValue.ts |
| | | ).getTime(); |
| | | return deleteCodeFixedValue({ |
| | | oid: this.selectedFixedOrCodeclassifyValue.oid, |
| | | ts: ts, |
| | | }); |
| | | }, error => { |
| | | window.console.log(error); |
| | | }); |
| | | }, |
| | | // 清空码值 |
| | | clearAllCodeSec(){ |
| | | if(this.selectionList.length == 0){ |
| | | this.$message.warning("没有选择数据!"); |
| | | return; |
| | | } |
| | | if(this.selectionList.length != 1){ |
| | | this.$message.warning("每次只能选择一条数据!"); |
| | | return; |
| | | } |
| | | let currentData = this.selectionList[0]; |
| | | this.$confirm("确定要清空码值?如果清空将不能被恢复,请谨慎!", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }) |
| | | .then(() => { |
| | | let ts = new Date(currentData.ts).getTime(); |
| | | return clearAllCode({"oid": currentData.oid,"ts": ts}); |
| | | }) |
| | | .then(() => { |
| | | this. this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | }); |
| | | }, |
| | | // 添加 |
| | | rowSave(row, done, loading) { |
| | | console.log(row); |
| | | add(row).then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | done(); |
| | | }, error => { |
| | | loading(); |
| | | window.console.log(error); |
| | | }); |
| | | }, |
| | | openEdit(row){ |
| | | this.$refs.crud.rowEdit(row,row.$index); |
| | | }, |
| | | // 修改 |
| | | rowUpdate(row, index, done, loading) { |
| | | row.ts = new Date().getTime; |
| | | update(row).then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | done(); |
| | | }, error => { |
| | | loading(); |
| | | console.log(error); |
| | | }); |
| | | }, |
| | | // 删除 |
| | | handleDelete() { |
| | | if(!this.tipsMessage(this.selectionList)){ |
| | | return; |
| | | } |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }) |
| | | .then(() => { |
| | | // 只支持每次单条记录删除 |
| | | let oid = this.selectionList[0].oid; |
| | | let ts = new Date(this.selectionList[0].ts).getTime(); |
| | | return remove({oid: oid,ts: ts}); |
| | | }) |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | this.$refs.crud.toggleSelection(); |
| | | .then(() => { |
| | | this.selectedFixedOrCodeclassifyValue = ""; |
| | | this.loadFixedValueTableData({ |
| | | oid: this.codefixedsecOrCodeclassifysec.oid, |
| | | }); |
| | | }, |
| | | // 打开修改 |
| | | beforeOpen(done, type) { |
| | | if (["edit", "view"].includes(type)) { |
| | | getDetail(this.ruleForm.oid).then(res => { |
| | | this.ruleForm = res.data.data; |
| | | this.clearFixedOrClassifyForm("codefixedsec"); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | } |
| | | done(); |
| | | }, |
| | | searchReset() { |
| | | this.query = {}; |
| | | this.onLoad(this.page); |
| | | }, |
| | | searchChange(params, done) { |
| | | this.page.currentPage = 1; |
| | | // 多个conditionMap这样传参,快速查询默认采用模糊查询 |
| | | let requestData = {}; |
| | | if(params){ |
| | | Object.keys(params).forEach(key=>{ |
| | | requestData["conditionMap"+'['+key+'_like]'] = params[key].trim(); |
| | | }); |
| | | } else { |
| | | if ( |
| | | this.checkClassUpdate( |
| | | this.codefixedsecOrCodeclassifysec.oid, |
| | | this.codeClassifyForm.codeClassifySecOid |
| | | ) |
| | | ) { |
| | | return; |
| | | } |
| | | //分类码段码值删除 |
| | | this.$confirm("是否删除这条数据?如果被引用将不能被删除!", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | let ts = new Date( |
| | | this.selectedFixedOrCodeclassifyValue.ts |
| | | ).getTime(); |
| | | return deleteCodeClassifyValue({ |
| | | oid: this.selectedFixedOrCodeclassifyValue.oid, |
| | | ts: ts, |
| | | }); |
| | | } |
| | | this.query = requestData; |
| | | this.onLoad(this.page); |
| | | done(); |
| | | }, |
| | | // 编码规则当前选中行变化的时候触发 |
| | | selectionChange(list) { |
| | | this.selectionList = list; |
| | | //当前选中行为空的时候就将码段管理表格数据置空,并禁用相关功能 |
| | | if(this.selectionList.length <= 0){ |
| | | this.hideBasicTable(false); |
| | | } |
| | | if (this.selectionList.length > 0) { |
| | | this.$refs.crud.setCurrentRow(this.selectionList[list.length-1]); |
| | | this.currentCodeRuleOid = this.selectionList[list.length-1].oid; |
| | | this.currentRuleLcStatus = this.selectionList[list.length-1].lcStatus; |
| | | this.loadBasic(this.selectionList[list.length-1]); |
| | | } |
| | | }, |
| | | // 单击编码规则实现行选择 |
| | | codeRuleRowClick (row) { |
| | | // console.log(this.currentRuleLcStatus); |
| | | this.$refs.crud.toggleSelection(); |
| | | this.$refs.crud.toggleRowSelection(row); //选中当前行 |
| | | }) |
| | | .then(() => { |
| | | this.selectedFixedOrCodeclassifyValue = ""; |
| | | this.loadClassifyValueData({ |
| | | oid: this.codefixedsecOrCodeclassifysec.oid, |
| | | }); |
| | | this.clearFixedOrClassifyForm("codeclassifyvalue"); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | }); |
| | | } |
| | | }, |
| | | /** 对固定码值表进行:上移、下移、移除操作*/ |
| | | codeFixedValueOpetion(condition, row) { |
| | | //console.log(this.fixedValueData[row.$index].orderNum); |
| | | const index = row.$index; |
| | | if (condition == "up") { |
| | | //对ordeNum排序字段进行调整 |
| | | this.fixedValueData[index].orderNum = |
| | | this.fixedValueData[index].orderNum - 1; |
| | | this.fixedValueData[index - 1].orderNum = |
| | | this.fixedValueData[index].orderNum + 1; |
| | | //当下标减去1小于0或者orderNum字段减去1小于0的时候不执行上移操作 |
| | | if (index - 1 < 0 || this.fixedValueData[row.$index].orderNum - 1 < 0) { |
| | | return; |
| | | } |
| | | //调整数组值顺序 |
| | | let tempOption = this.fixedValueData[index - 1]; |
| | | this.$set(this.fixedValueData, index - 1, this.fixedValueData[index]); |
| | | this.$set(this.fixedValueData, index, tempOption); |
| | | |
| | | }, |
| | | selectionClear() { |
| | | this.selectionList = []; |
| | | this.$refs.crud.toggleSelection(); |
| | | }, |
| | | currentChange(currentPage){ |
| | | this.page.currentPage = currentPage; |
| | | }, |
| | | sizeChange(pageSize){ |
| | | this.page.pageSize = pageSize; |
| | | }, |
| | | refreshChange() { |
| | | this.onLoad(this.page, this.query); |
| | | }, |
| | | onLoad(page,params={}) { |
| | | this.loading = true; |
| | | gridCodeRule( |
| | | page.currentPage, |
| | | page.pageSize, |
| | | this.query |
| | | ).then(res => { |
| | | //console.log(res.data); |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | // 查询的值为空时,要将码段管理相关的内容禁用 |
| | | if(data.records.length <= 0) { |
| | | this.hideBasicTable(false); |
| | | return; |
| | | } |
| | | this.loadBasic(this.data[0]) |
| | | this.$nextTick(() => { |
| | | this.$refs.crud.toggleRowSelection(this.data[0]); |
| | | this.$refs.crud.setCurrentRow(this.data[0]); |
| | | }) |
| | | this.selectionList = data.records[0]; |
| | | //this.selectionClear(); |
| | | //console.log(this.fixedValueData); |
| | | } else if (condition == "down") { |
| | | //对ordeNum排序字段进行调整 |
| | | this.fixedValueData[index].orderNum = |
| | | this.fixedValueData[index].orderNum + 1; |
| | | this.fixedValueData[index + 1].orderNum = |
| | | this.fixedValueData[index].orderNum - 1; |
| | | //调整数组值顺序 |
| | | let tempOption = this.fixedValueData[index + 1]; |
| | | this.$set(this.fixedValueData, index + 1, this.fixedValueData[index]); |
| | | this.$set(this.fixedValueData, index, tempOption); |
| | | } else { |
| | | for (let i = index + 1; i < this.fixedValueData.length - 1; i++) { |
| | | //console.log(this.fixedValueData[i].orderNum); |
| | | this.fixedValueData[i].orderNum = this.fixedValueData[i].orderNum - 1; |
| | | //console.log(this.fixedValueData[i].orderNum); |
| | | } |
| | | this.$delete(this.fixedValueData, index); |
| | | } |
| | | //console.log(this.fixedValueData); |
| | | }, |
| | | /** 对分类码值表进行:上移、下移、移除操作*/ |
| | | codeClassifyValueOpetion(condition) { |
| | | if ( |
| | | this.checkClassUpdate( |
| | | this.codefixedsecOrCodeclassifysec.oid, |
| | | this.codeClassifyForm.codeClassifySecOid |
| | | ) |
| | | ) { |
| | | return; |
| | | } |
| | | //此处涉及到深浅拷贝问题,但是执行上下移保存操作之后会重新加载treedata,所以影响不大 |
| | | let currentTreeList = this.getCodeClassifyValueTreeData(); |
| | | let saveData = []; |
| | | // console.log(currentTreeList.treeList); |
| | | if (condition == "up") { |
| | | if (currentTreeList.index - 1 >= 0) { |
| | | // 调整顺序 |
| | | saveData[0] = |
| | | currentTreeList.treeList[currentTreeList.index].attributes; |
| | | saveData[1] = |
| | | currentTreeList.treeList[currentTreeList.index - 1].attributes; |
| | | saveData[0].orderNum = parseInt(saveData[0].orderNum) - 1; |
| | | saveData[1].orderNum = parseInt(saveData[1].orderNum) + 1; |
| | | this.saveCodeFixedOrClassifyValueOption("classifyValue", saveData); |
| | | } |
| | | } else { |
| | | if (currentTreeList.index + 1 < currentTreeList.treeList.length) { |
| | | // 调整顺序 |
| | | saveData[0] = |
| | | currentTreeList.treeList[currentTreeList.index].attributes; |
| | | saveData[1] = |
| | | currentTreeList.treeList[currentTreeList.index + 1].attributes; |
| | | saveData[0].orderNum = parseInt(saveData[0].orderNum) + 1; |
| | | saveData[1].orderNum = parseInt(saveData[1].orderNum) - 1; |
| | | this.saveCodeFixedOrClassifyValueOption("classifyValue", saveData); |
| | | } |
| | | } |
| | | }, |
| | | /** 选中被调整顺序的两个树的节点*/ |
| | | getCodeClassifyValueTreeData() { |
| | | const currentNodeTreeData = this.selectedFixedOrCodeclassifyValue; |
| | | /**考虑几种情况,第一种当前上移|下移操作已经是边界, |
| | | 不需要要做处理,第二种当前为树根节点,第三种当前为叶子节点 |
| | | */ |
| | | //说明是根节点,直接找再判断是否是边界值 |
| | | if (currentNodeTreeData.parentId.trim() == "") { |
| | | return this.findTreeIndex( |
| | | this.classifyValueTreeData, |
| | | currentNodeTreeData.oid, |
| | | true |
| | | ); |
| | | } else { |
| | | //说明不是根节点,先找到父节点再找到子节点,判断是否是边界值 |
| | | return this.findTreeIndex( |
| | | this.classifyValueTreeData, |
| | | currentNodeTreeData.parentId, |
| | | false |
| | | ); |
| | | } |
| | | }, |
| | | /** |
| | | * 找前一个和后一个元素 |
| | | * @treeList 查找的数组 |
| | | * @conditionOid 用来查找判断的条件 |
| | | * @isTreeRoot 是否父节点 |
| | | * @rreturn 返回相邻的节点 |
| | | */ |
| | | findTreeIndex(treeList, conditionOid, isTreeRoot) { |
| | | for (let index = 0; index < treeList.length; index++) { |
| | | if (treeList[index].oid == conditionOid) { |
| | | if (isTreeRoot) { |
| | | let resData = { |
| | | index: index, |
| | | treeList: treeList, |
| | | }; |
| | | return resData; |
| | | } else { |
| | | return this.findTreeIndex( |
| | | this.classifyValueTreeData[index].children, |
| | | this.selectedFixedOrCodeclassifyValue.oid, |
| | | true |
| | | ); |
| | | } |
| | | } |
| | | } |
| | | }, |
| | | /** 上移下移等操作的保存*/ |
| | | async saveCodeFixedOrClassifyValueOption(condition, editOrderNumdata) { |
| | | //保存对固定码段码值的上移下移移出等操作 |
| | | if (condition == "fixedValue") { |
| | | let data = { |
| | | codeFixedSecOid: this.codefixedsecOrCodeclassifysec.oid, |
| | | dtoList: JSON.stringify(this.fixedValueData), |
| | | }; |
| | | saveOrder(data).then( |
| | | () => { |
| | | //执行完保存之后将当前选中的对象清空 |
| | | this.selectedFixedOrCodeclassifyValue = ""; |
| | | this.$message({ |
| | | type: "success", |
| | | message: "保存成功!", |
| | | }); |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | } |
| | | ); |
| | | } else { |
| | | //保存对分类码值码段码值的上移下移移出等操作 |
| | | await saveCodeClassifyValueOrder({ |
| | | codeClassifySecOid: this.codefixedsecOrCodeclassifysec.oid, |
| | | dtoList: JSON.stringify(editOrderNumdata), |
| | | }).then( |
| | | () => { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "保存成功!", |
| | | }); |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | } |
| | | ); |
| | | this.loadClassifyValueData({ |
| | | oid: this.codefixedsecOrCodeclassifysec.oid, |
| | | }); |
| | | } |
| | | }, |
| | | /** 分类码值树data加载*/ |
| | | loadClassifyValueData(row) { |
| | | //console.log(row); |
| | | let condtionData = { |
| | | queryAllLevel: true, |
| | | loadType: "all", |
| | | multipleSelect: false, |
| | | isMuti: false, |
| | | isQueryAllColumn: true, |
| | | "conditionMap[codeclassifysecoid]": row.oid, |
| | | }; |
| | | treeCodeClassifyValue(condtionData).then((res) => { |
| | | this.classifyValueTreeData = res.data; |
| | | //console.log(res.data); |
| | | }); |
| | | }, |
| | | /** 分类码值树单击时触发的事件*/ |
| | | classisyValueTreeOnodeClick(node) { |
| | | //console.log(node); |
| | | this.selectedFixedOrCodeclassifyValue = node; |
| | | this.codeClassifyForm.codeClassifySecOid = |
| | | node.attributes.codeClassifySecOid; |
| | | this.codeClassifyForm.id = node.attributes.id; |
| | | this.codeClassifyForm.name = node.attributes.name; |
| | | this.codeClassifyForm.parentClassifyValueOid = node.attributes.oid; |
| | | // console.log(this.codeClassifyForm); |
| | | }, |
| | | /** |
| | | * 分类码段码值,修改、删除、上下移之前,检查是否为子分类和父分类之间相互更改 |
| | | * @currentRowClassOid 当前选中行oid |
| | | * @updateClassOid 要修改的分类码值oid |
| | | */ |
| | | checkClassUpdate(currentRowClassOid, updateClassOid) { |
| | | if (currentRowClassOid != updateClassOid) { |
| | | this.$message({ |
| | | type: "error", |
| | | message: "操作失败【子分类与父分类之间不能相互修改码值】!", |
| | | }); |
| | | } |
| | | return currentRowClassOid != updateClassOid; |
| | | }, |
| | | |
| | | /** 编码规则相关方法 */ |
| | | /** 打开高级查询窗口 */ |
| | | openAdvancedQuery(condition) { |
| | | if (condition == "codeRule") { |
| | | this.advancedQueryParam.options = [ |
| | | { |
| | | data: [], |
| | | title: "编号", |
| | | fieldType: "text", |
| | | queryField: "id", |
| | | }, |
| | | { |
| | | data: [], |
| | | title: "名称", |
| | | fieldType: "text", |
| | | queryField: "name", |
| | | }, |
| | | { |
| | | data: [], |
| | | title: "描述", |
| | | fieldType: "text", |
| | | queryField: "description", |
| | | }, |
| | | { |
| | | data: [], |
| | | title: "状态", |
| | | fieldType: "combox", |
| | | queryField: "lcStatus", |
| | | comboxKey: "codeSearchLCStatus", |
| | | }, |
| | | { |
| | | data: [], |
| | | title: "所有者", |
| | | fieldType: "text", |
| | | queryField: "ownerText", |
| | | }, |
| | | ]; |
| | | } else { |
| | | this.advancedQueryParam.options = [ |
| | | { |
| | | data: [], |
| | | title: "码段编号", |
| | | fieldType: "text", |
| | | queryField: "id", |
| | | }, |
| | | { |
| | | data: [], |
| | | title: "码段名称", |
| | | fieldType: "text", |
| | | queryField: "name", |
| | | }, |
| | | { |
| | | data: [], |
| | | title: "描述", |
| | | fieldType: "text", |
| | | queryField: "description", |
| | | }, |
| | | { |
| | | data: [], |
| | | title: "码段类型", |
| | | fieldType: "combox", |
| | | queryField: "secType", |
| | | comboxKey: "codeSecType", |
| | | }, |
| | | ]; |
| | | } |
| | | this.advancedQueryParam.currentOpen = condition; |
| | | this.advancedQueryParam.advancedQuerySettingBox = true; |
| | | }, |
| | | /** 查询使用范围*/ |
| | | handleRange() { |
| | | if (!this.tipsMessage(this.selectionList)) { |
| | | return; |
| | | } |
| | | this.codeRangeSettingBox = true; |
| | | this.getRangeCodeList(); |
| | | }, |
| | | /** 加载使用范围列表*/ |
| | | getRangeCodeList() { |
| | | this.dialogLoading = true; |
| | | if (this.selectionList[0].oid == null) { |
| | | this.$message.error("未获取到参数!"); |
| | | } |
| | | |
| | | listUseRange(this.selectionList[0].oid).then((res) => { |
| | | this.useRangeData = res.data.data; |
| | | //console.log(this.useRangeData); |
| | | this.dialogLoading = false; |
| | | }); |
| | | }, |
| | | /** 刷新使用范围列表*/ |
| | | refreshUseRangeChange() { |
| | | this.getRangeCodeList(); |
| | | }, |
| | | /** 修改规则状态:启用、停用、发布 */ |
| | | updateStatus(oid, update) { |
| | | updateStatus({oid: oid, ts: new Date().getTime, update: update}).then( |
| | | () => { |
| | | this.releadDisabled = false; |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | }, |
| | | |
| | | |
| | | /** 基础码段相关方法 */ |
| | | //防止打开过编辑窗口之后表单中存在值,所以需要清空,并初始化form表单属性 |
| | | clearBasicAddForm(){ |
| | | this.form = this.$options.data().form; |
| | | // this.changeSectypeFormItems(null); |
| | | }, |
| | | // 打开新增窗口 |
| | | openAddBasicCodeSec(){ |
| | | if(!this.tipsMessage(this.selectionList)){ |
| | | return; |
| | | } |
| | | if(this.selectionList[0].lcStatus != 'Editing'){ |
| | | this.$message.warning('编码规则状态不是"编辑中",不允许编辑码段!'); |
| | | return; |
| | | } |
| | | this.openBasicDialog('add',null); |
| | | this.loadCodeSecType(); |
| | | }, |
| | | // 打开新增或编辑基础码段对话框 |
| | | openBasicDialog(condition,row){ |
| | | //console.log(row); |
| | | if(condition == 'add') { |
| | | this.basicSecDialogTitle = '添加码段信息'; |
| | | this.showbtn = true; |
| | | this.basicSecOnlyRead = false; |
| | | }else if(condition == 'edit'){ |
| | | if(this.selectionList.length!=1){ |
| | | this.$message.warning('请选择一条编码规则数据!'); |
| | | return; |
| | | } |
| | | this.basicSecDialogTitle = '修改码段信息'; |
| | | this.showbtn = true; |
| | | this.basicSecOnlyRead = false; |
| | | //为form绑定值 |
| | | }else{ |
| | | this.basicSecDialogTitle = '查看码段信息'; |
| | | this.showbtn = false; |
| | | this.basicSecOnlyRead = true; |
| | | } |
| | | //console.log(this.form); |
| | | this.changeSectypeFormItems(condition == 'add' ? null:row); |
| | | this.addBasicCodeSettingBox = true; |
| | | }, |
| | | // 新增基础码段 |
| | | async saveOrEditBasicCode(){ |
| | | if(this.selectionList[0].oid == null || this.selectionList[0].oid == ''){ |
| | | this.$message.warning('缺失必要参数,请重新选择编码规则后再试!'); |
| | | return; |
| | | } |
| | | this.form.pkCodeRule = this.selectionList[0].oid; |
| | | if(this.form.oid == '' || this.form.oid == null){ |
| | | if(this.checkForm()){ |
| | | await addSave(this.form).then(() => { |
| | | (error) => { |
| | | window.console.log(error); |
| | | } |
| | | ); |
| | | }, |
| | | /** 发布编码规则 */ |
| | | async enableOrDeactivatse(oid, update) { |
| | | if (update === "release") { |
| | | // 避免用户重复点击按钮 |
| | | this.releadDisabled = true; |
| | | await checkLikeCodeRule(oid) |
| | | .then((res) => { |
| | | //console.log(res) |
| | | if (res.data.data.success) { |
| | | this.updateStatus(oid, update); |
| | | } else { |
| | | this.$confirm(res.data.data.msg, "提示", { |
| | | distinguishCancelAndClose: true, |
| | | confirmButtonText: "继续发布", |
| | | cancelButtonText: "取消", |
| | | }).then(() => { |
| | | this.updateStatus(oid, update); |
| | | this.releadDisabled = false; |
| | | }).catch((action) => { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | type: "info", |
| | | message: "取消发布!", |
| | | }); |
| | | }, error => { |
| | | window.console.log(error); |
| | | this.releadDisabled = false; |
| | | }); |
| | | // 关闭对话框 |
| | | this.addBasicCodeSettingBox = false |
| | | } |
| | | }).catch((error) => { |
| | | this.releadDisabled = false; |
| | | }); |
| | | this.releadDisabled = false; |
| | | } else { |
| | | this.updateStatus(oid, update); |
| | | } |
| | | }, |
| | | /** 打开编码规则克隆对话框*/ |
| | | openCodeRuleDialog() { |
| | | if (!this.tipsMessage(this.selectionList)) { |
| | | return; |
| | | } |
| | | this.cloneSettingBox = true; |
| | | }, |
| | | /** 打开从其他编码规则中克隆码段对话框*/ |
| | | openOtherCodeRuleDialog() { |
| | | if (!this.tipsMessage(this.selectionList)) { |
| | | return; |
| | | } |
| | | if (this.selectionList[0].lcStatus != "Editing") { |
| | | this.$message.warning("编码规则已被引用,不允许编辑!"); |
| | | return; |
| | | } |
| | | this.cloneOtherCodeRuleSettingBox = true; |
| | | }, |
| | | |
| | | /** 清空码值*/ |
| | | clearAllCodeSec() { |
| | | if (this.selectionList.length == 0) { |
| | | this.$message.warning("没有选择数据!"); |
| | | return; |
| | | } |
| | | if (this.selectionList.length != 1) { |
| | | this.$message.warning("每次只能选择一条数据!"); |
| | | return; |
| | | } |
| | | let currentData = this.selectionList[0]; |
| | | this.$confirm("确定要清空码值?如果清空将不能被恢复,请谨慎!", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | let ts = new Date(currentData.ts).getTime(); |
| | | return clearAllCode({oid: currentData.oid, ts: ts}); |
| | | }) |
| | | .then(() => { |
| | | this.this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | }); |
| | | }, |
| | | /** 添加*/ |
| | | rowSave(row, done, loading) { |
| | | add(row).then( |
| | | () => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, |
| | | (error) => { |
| | | loading(); |
| | | window.console.log(error); |
| | | } |
| | | ); |
| | | }, |
| | | openEdit(row) { |
| | | this.$refs.crud.rowEdit(row, row.$index); |
| | | }, |
| | | /** 修改*/ |
| | | rowUpdate(row, index, done, loading) { |
| | | row.ts = new Date().getTime; |
| | | update(row).then( |
| | | () => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | done(); |
| | | }, |
| | | (error) => { |
| | | loading(); |
| | | console.log(error); |
| | | } |
| | | ); |
| | | }, |
| | | /** 删除*/ |
| | | handleDelete() { |
| | | if (!this.tipsMessage(this.selectionList)) { |
| | | return; |
| | | } |
| | | this.$confirm("确定将选择数据删除?", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | // 只支持每次单条记录删除 |
| | | let oid = this.selectionList[0].oid; |
| | | let ts = new Date(this.selectionList[0].ts).getTime(); |
| | | return remove({oid: oid, ts: ts}); |
| | | }) |
| | | .then(() => { |
| | | this.onLoad(this.page); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | this.$refs.crud.toggleSelection(); |
| | | }); |
| | | }, |
| | | // 打开修改*/ |
| | | beforeOpen(done, type) { |
| | | if (["edit", "view"].includes(type)) { |
| | | getDetail(this.ruleForm.oid).then((res) => { |
| | | this.ruleForm = res.data.data; |
| | | }); |
| | | } |
| | | done(); |
| | | }, |
| | | // 编码规则快速查询重置 |
| | | searchReset() { |
| | | this.query = {}; |
| | | this.onLoad(this.page); |
| | | }, |
| | | // 编码规则快速查询searchChange |
| | | searchChange(params, done) { |
| | | this.page.currentPage = 1; |
| | | // 多个conditionMap这样传参,快速查询默认采用模糊查询 |
| | | let requestData = {}; |
| | | if (params) { |
| | | Object.keys(params).forEach((key) => { |
| | | requestData["conditionMap" + "[" + key + "_like]"] = |
| | | params[key].trim(); |
| | | }); |
| | | } |
| | | this.query = requestData; |
| | | this.onLoad(this.page, this.query); |
| | | // console.log( this.findObject(this.optionRule.column,'id')) |
| | | // console.log(this.crudOption.column[0]) |
| | | // this.crudOption.column && this.crudOption.column.length > 0 |
| | | // ? (this.crudOption.column[0].value = '') |
| | | // : null; |
| | | done(); |
| | | }, |
| | | /** 编码规则当前选中行变化的时候触发*/ |
| | | selectionChange(list) { |
| | | this.selectionList = list; |
| | | //当前选中行为空的时候就将码段管理表格数据置空,并禁用相关功能 |
| | | if (this.selectionList.length <= 0) { |
| | | this.hideBasicTable(false); |
| | | } |
| | | if (this.selectionList.length > 0) { |
| | | this.$refs.crud.setCurrentRow(this.selectionList[list.length - 1]); |
| | | this.currentCodeRuleOid = this.selectionList[list.length - 1].oid; |
| | | this.currentRuleLcStatus = this.selectionList[list.length - 1].lcStatus; |
| | | this.loadBasic(this.selectionList[list.length - 1]); |
| | | } |
| | | }, |
| | | /** 单击编码规则实现行选择*/ |
| | | codeRuleRowClick(row) { |
| | | // console.log(this.currentRuleLcStatus); |
| | | this.$refs.crud.toggleSelection(); |
| | | this.$refs.crud.toggleRowSelection(row); //选中当前行 |
| | | }, |
| | | selectionClear() { |
| | | this.selectionList = []; |
| | | this.$refs.crud.toggleSelection(); |
| | | }, |
| | | currentChange(currentPage) { |
| | | this.page.currentPage = currentPage; |
| | | }, |
| | | sizeChange(pageSize) { |
| | | this.page.pageSize = pageSize; |
| | | }, |
| | | refreshChange() { |
| | | this.onLoad(this.page, this.query); |
| | | }, |
| | | onLoad(page, params = {}) { |
| | | this.loading = true; |
| | | gridCodeRule( |
| | | page.currentPage, |
| | | page.pageSize, |
| | | Object.assign({}, params, this.query), |
| | | ).then((res) => { |
| | | //console.log(res.data); |
| | | const data = res.data.data; |
| | | this.page.total = data.total; |
| | | this.data = data.records; |
| | | this.loading = false; |
| | | // 查询的值为空时,要将码段管理相关的内容禁用 |
| | | if (data.records.length <= 0) { |
| | | this.hideBasicTable(false); |
| | | return; |
| | | } |
| | | this.loadBasic(this.data[0]); |
| | | this.$nextTick(() => { |
| | | this.$refs.crud.toggleRowSelection(this.data[0]); |
| | | this.$refs.crud.setCurrentRow(this.data[0]); |
| | | }); |
| | | this.selectionList = data.records[0]; |
| | | //this.selectionClear(); |
| | | }); |
| | | }, |
| | | |
| | | /** 基础码段相关方法 */ |
| | | /** 防止打开过编辑窗口之后表单中存在值,所以需要清空,并初始化form表单属性*/ |
| | | clearBasicAddForm() { |
| | | this.form = this.$options.data().form; |
| | | //this.isLoadingSecCodeAddBtn = false; |
| | | // this.changeSectypeFormItems(null); |
| | | }, |
| | | /** 打开新增窗口*/ |
| | | openAddBasicCodeSec() { |
| | | if (!this.tipsMessage(this.selectionList)) { |
| | | return; |
| | | } |
| | | if (this.selectionList[0].lcStatus != "Editing") { |
| | | this.$message.warning('编码规则状态不是"编辑中",不允许编辑码段!'); |
| | | return; |
| | | } |
| | | this.openBasicDialog("add", null); |
| | | this.loadCodeSecType(); |
| | | }, |
| | | /** 打开新增或编辑基础码段对话框*/ |
| | | openBasicDialog(condition, row) { |
| | | if (condition == "add") { |
| | | this.basicSecDialogTitle = "添加码段信息"; |
| | | this.showbtn = true; |
| | | this.basicSecOnlyRead = false; |
| | | } else if (condition == "edit") { |
| | | if (this.selectionList.length != 1) { |
| | | this.$message.warning("请选择一条编码规则数据!"); |
| | | return; |
| | | } |
| | | this.basicSecDialogTitle = "修改码段信息"; |
| | | this.showbtn = true; |
| | | this.basicSecOnlyRead = false; |
| | | } else { |
| | | this.basicSecDialogTitle = "查看码段信息"; |
| | | this.showbtn = false; |
| | | this.basicSecOnlyRead = true; |
| | | } |
| | | //console.log(this.form); |
| | | //为form绑定值 |
| | | this.changeSectypeFormItems(condition == "add" ? null : row); |
| | | // 获取前后缀可用字符 |
| | | this.loadPreOrSuffixChars(); |
| | | // 补位时字符 |
| | | // this.loadCodeFillSeparator(); |
| | | this.addBasicCodeSettingBox = true; |
| | | }, |
| | | /** 获取前后缀字符 */ |
| | | loadPreOrSuffixChars(){ |
| | | getSelectList({codeRuleId: this.selectionList[0].oid,chartType: "prefix"}).then(res=>{ |
| | | this.preFixOrSuffixChars = res.data.data; |
| | | // console.log(this.preFixOrSuffixChars); |
| | | }) |
| | | }, |
| | | /** 新增基础码段*/ |
| | | async saveOrEditBasicCode() { |
| | | if ( |
| | | this.selectionList[0].oid == null || |
| | | this.selectionList[0].oid == "" |
| | | ) { |
| | | 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) { |
| | | await addSave(this.form).then( |
| | | () => { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | // console.log(this.form) |
| | | // 关闭对话框 |
| | | this.addBasicCodeSettingBox = false; |
| | | // 点击新增基础码段,关闭窗口之后触发重新加载 |
| | | this.loadBasic(this.selectionList[0]); |
| | | }else{ |
| | | // 可能参照引用的业务类型会发生改变所以这儿直接对referConfig的json进行改变 |
| | | if(this.form.referConfig === "coderefersec" || this.form.referConfig != undefined){ |
| | | let referConfig = JSON.parse(this.form.referConfig); |
| | | referConfig.referType = this.form.referBtmId; |
| | | referConfig.referTypeName = this.form.referBtmName; |
| | | this.form.referConfig = JSON.stringify(referConfig); |
| | | // let referValueInfo = JSON.parse(this.form.referValueInfo); |
| | | // referValueInfo.referType = this.form.referBtmId; |
| | | } |
| | | editSave(this.form).then(() => { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | }, error => { |
| | | window.console.log(error); |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | } |
| | | ); |
| | | } else { |
| | | // 可能参照引用的业务类型会发生改变所以这儿直接对referConfig的json进行改变 |
| | | if ( |
| | | this.form.referConfig === "coderefersec" || |
| | | this.form.referConfig != undefined |
| | | ) { |
| | | let referConfig = JSON.parse(this.form.referConfig); |
| | | referConfig.referType = this.form.referBtmId; |
| | | referConfig.referTypeName = this.form.referBtmName; |
| | | this.form.referConfig = JSON.stringify(referConfig); |
| | | // let referValueInfo = JSON.parse(this.form.referValueInfo); |
| | | // referValueInfo.referType = this.form.referBtmId; |
| | | } |
| | | 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) { |
| | | await this.$confirm("码段类型由【" + oldBasicSec.secTypeText + "】,修改为" + "【" + secTypeEnum.getTextByValue(secType) + "】,请问是否需要清空关联的码值?", "提示", { |
| | | distinguishCancelAndClose: true, |
| | | closeOnClickModal: false, |
| | | confirmButtonText: "清空码值", |
| | | cancelButtonText: "保留码值", |
| | | }).then(() => { |
| | | // 清空码值 |
| | | this.form.isClearValue = true; |
| | | }).catch(action => { |
| | | this.form.isClearValue = false; |
| | | }); |
| | | } |
| | | await editSave(this.form).then( |
| | | () => { |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | this.loadBasic(this.selectionList[0]); |
| | | // 关闭对话框 |
| | | this.addBasicCodeSettingBox = false |
| | | this.addBasicCodeSettingBox = false; |
| | | }, |
| | | (error) => { |
| | | window.console.log(error); |
| | | } |
| | | }, |
| | | // 因为elementui的表单校验设置不上所以采用判断的方式来做表单检验方式 |
| | | checkForm(){ |
| | | let form = this.form; |
| | | //console.log(form); |
| | | const regNumber = /^[0-9]+\.{0,1}[0-9]*$/; //数字或小数正则校验 |
| | | const regPos = /^[0-9]*[1-9][0-9]*$/; //非负整数正则校验 |
| | | const tipsMsg = "必填项不能为空"; |
| | | if(form.id == ''){ |
| | | this.$message.warning("(码段编号)"+tipsMsg); |
| | | this.$refs.id.$el.querySelector('input').focus(); |
| | | return false; |
| | | } |
| | | if(form.name == ''){ |
| | | this.$message.warning("(码段名称)"+tipsMsg); |
| | | this.$refs.name.$el.querySelector('input').focus(); |
| | | return false; |
| | | } |
| | | if(form.secType == ''){ |
| | | this.$message.warning("(码段类型)"+tipsMsg); |
| | | this.$refs.secType.$el.querySelector('select').focus(); |
| | | return false; |
| | | } |
| | | if(form.secType==='codefixedsec'){ |
| | | //固定码段 |
| | | if(form.codeSecLengthType == ''){ |
| | | this.$message.warning("(码段长度类型)"+tipsMsg); |
| | | // this.$refs.codeSecLengthType.$el.querySelector('select').focus(); |
| | | return false; |
| | | } |
| | | if(form.codeSecLength == ''){ |
| | | this.$message.warning("(码段长度)"+tipsMsg); |
| | | this.$refs.codeSecLength.$el.querySelector('input').focus(); |
| | | return false; |
| | | } |
| | | if(!regNumber.test(form.codeSecLength)){ |
| | | this.$message.warning("码段的长度必须为数字值"); |
| | | this.$refs.codeSecLength.$el.querySelector('input').focus(); |
| | | return false; |
| | | } |
| | | }else if(this.form.secType==='codeattrsec'){ |
| | | //属性码段 |
| | | if(form.referAttributeId == ''){ |
| | | this.$message.warning('(属性)'+tipsMsg); |
| | | this.$refs.referAttributeId.$el.querySelector('input').focus(); |
| | | return false; |
| | | } |
| | | }else if(this.form.secType==='codeserialsec'){ |
| | | //console.log(form.codeFillType); |
| | | //流水码段 |
| | | if(form.codeSecLength == ''){ |
| | | this.$message.warning('(码段的长度)'+tipsMsg); |
| | | this.$refs.seriaCodeSecLength.$el.querySelector('input').focus(); |
| | | return false; |
| | | } |
| | | if(!regNumber.test(form.codeSecLength)){ |
| | | this.$message.warning('码段的长度必须为数字值'); |
| | | this.$refs.seriaCodeSecLength.$el.querySelector('input').focus(); |
| | | return false; |
| | | } |
| | | if(!regNumber.test(form.serialStart)){ |
| | | this.$message.warning('流水号的起始值必须为数字值'); |
| | | this.$refs.serialStart.$el.querySelector('input').focus(); |
| | | return false; |
| | | } |
| | | if(!regNumber.test(form.serialStep)){ |
| | | this.$message.warning('流水的步长必须为数字值'); |
| | | this.$refs.serialStep.$el.querySelector('input').focus(); |
| | | return false; |
| | | } |
| | | if(form.codeFillType == ''){ |
| | | this.$message.warning('(编码补位方式)'+tipsMsg); |
| | | return false; |
| | | } |
| | | if(form.codeFillType != '不补位' && form.codeFillSeparator == ''){ |
| | | this.$message.warning('当补位方式为左补位或者右补位的时候,补位字符不能为空'); |
| | | return false; |
| | | } |
| | | if(form.codeFillLength == ''){ |
| | | this.$message.warning('填充长度不能为空'); |
| | | this.$refs.codeFillLength.$el.querySelector('input').focus(); |
| | | return false; |
| | | } |
| | | if(!regNumber.test(form.codeFillLength)){ |
| | | this.$message.warning('填充长度必须为数字值'); |
| | | this.$refs.codeFillLength.$el.querySelector('input').focus(); |
| | | return false; |
| | | } |
| | | if(form.codeFillLimit == ''){ |
| | | this.$message.warning('(流水上限)'+tipsMsg); |
| | | this.$refs.codeFillLimit.$el.querySelector('input').focus(); |
| | | return false; |
| | | } |
| | | if(!regNumber.test(form.codeFillLimit)){ |
| | | this.$message.warning('流水上限必须为数字值'); |
| | | this.$refs.codeFillLimit.$el.querySelector('input').focus(); |
| | | return false; |
| | | } |
| | | // if(form.codeFillFlag == '' || ){ |
| | | // this.$message.warning('(流水是否补码)'+tipsMsg); |
| | | // return false; |
| | | // } |
| | | }else if(this.form.secType==='codelevelsec'){ |
| | | //层级码段 |
| | | if(form.codeLevelType == ''){ |
| | | this.$message.warning('(层级类型)'+tipsMsg); |
| | | return false; |
| | | } |
| | | if(form.codeLevelType != 'code_level_min'&& !regNumber.test(form.codeLevelValue)){ |
| | | this.$message.warning('(层级的值)只能填写数字'); |
| | | this.$refs.codeLevelValue.$el.querySelector('input').focus(); |
| | | return false; |
| | | } |
| | | if(form.valueCutType == ''){ |
| | | this.$message.warning('(字符截取类型)'+tipsMsg); |
| | | // this.$refs.valueCutType.$el.querySelector('select').focus(); |
| | | return false; |
| | | } |
| | | if(form.valueCutType != 'code_cut_none' && !regPos.test(form.valueCutLength)){ |
| | | this.$message.warning('(值截取长度)只能填写正整数'); |
| | | this.$refs.valueCutLength.$el.querySelector('input').focus(); |
| | | return false; |
| | | } |
| | | }else if(this.form.secType==='coderefersec'){ |
| | | //引用码段 |
| | | if(form.referBtmId == ''){ |
| | | this.$message.warning('(参照引用的业务类型)'+tipsMsg); |
| | | this.$refs.referBtmId.$el.querySelector('input').focus(); |
| | | return false; |
| | | } |
| | | if(form.referConfig == ''){ |
| | | this.$message.warning('(参照配置)'+tipsMsg); |
| | | this.$refs.referConfig.$el.querySelector('input').focus(); |
| | | return false; |
| | | } |
| | | }else if(this.form.secType==='codedatesec'){ |
| | | //日期码段 |
| | | if(form.codeDateFormatStr == ''){ |
| | | this.$message.warning('(日期格式)'+tipsMsg); |
| | | this.$refs.codeDateFormatStr.$el.querySelector('input').focus(); |
| | | return false; |
| | | } |
| | | }else if(this.form.secType==='codeclassifysec'){ |
| | | //分类码段 |
| | | if(form.codeSecLengthType == ''){ |
| | | this.$message.warning('(码段长度类型)'+tipsMsg); |
| | | return false; |
| | | } |
| | | if(form.codeSecLength == ''){ |
| | | this.$message.warning('(码段长度)'+tipsMsg); |
| | | this.$refs.classCodeSecLength.$el.querySelector('input').focus(); |
| | | return false; |
| | | } |
| | | if(!regNumber.test(form.codeSecLength)){ |
| | | this.$message.warning('码段的长度必须为数字值'); |
| | | this.$refs.classCodeSecLength.$el.querySelector('input').focus(); |
| | | return false; |
| | | } |
| | | }else if(this.form.secType==='codevariablesec'){ |
| | | //可变码段 |
| | | if(form.codeSecLength == ''){ |
| | | this.$message.warning('(码段长度)'+tipsMsg); |
| | | this.$refs.varCodeSecLength.$el.querySelector('input').focus(); |
| | | return false; |
| | | } |
| | | if(!regNumber.test(form.codeSecLength)){ |
| | | this.$message.warning('码段的长度必须为数字值'); |
| | | this.$refs.classCodeSecLength.$el.querySelector('input').focus(); |
| | | return false; |
| | | } |
| | | if(form.codeFillType == ''){ |
| | | this.$message.warning('(编码补位方式)'+tipsMsg); |
| | | return false; |
| | | } |
| | | // console.log(form); |
| | | if(form.codeFillType != 'code_fill_none' && form.codeFillSeparator == ''){ |
| | | this.$message.warning('当补位方式为左补位或者右补位的时候,补位字符不能为空'); |
| | | return false; |
| | | } |
| | | } |
| | | return true; |
| | | }, |
| | | // 判断数据是否选择以及只能选择单条数据 |
| | | tipsMessage(list){ |
| | | if(list.length != 1){ |
| | | this.$message.warning("请选择一条编码规则数据!"); |
| | | return false; |
| | | } |
| | | return true; |
| | | }, |
| | | // 基础码段删除 |
| | | deleteBasicCode(){ |
| | | if(!this.tipsMessage(this.selectionBasicList)){ |
| | | return; |
| | | } |
| | | let oid = this.selectionBasicList[0].oid; |
| | | this.$confirm("是否删除这条数据?如果被引用将不能被删除!", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning" |
| | | }) |
| | | .then(() => { |
| | | let ts = new Date(this.selectionBasicList[0].ts).getTime(); |
| | | return deleteData({"oid": oid,"ts": ts}); |
| | | }) |
| | | .then(() => { |
| | | this.loadBasic({"oid":this.currentCodeRuleOid == null || this.currentCodeRuleOid == '' ? this.selectionList[0].oid:this.currentCodeRuleOid}); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | this.$refs.crudBasic.toggleSelection(); |
| | | }); |
| | | }, |
| | | // 点击触发加载基础码段信息 |
| | | loadBasic(row){ |
| | | if(this.cloneSettingBox){ |
| | | this.cloneTableLoading = true; |
| | | }else{ |
| | | 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); |
| | | } |
| | | }, |
| | | // 发送加载基础码段的请求 |
| | | sendGridCodeBasicSec(condition,isAdancedQuery/** 是否高级查询 */){ |
| | | // 如果当前基础码段表中的搜索按钮被隐藏,就需要在此开启 |
| | | if(this.selectionList.length>=0 && !this.$refs.crudBasic.option.column[0].search){ |
| | | this.hideBasicTable(true); |
| | | } |
| | | let conditionMaps = {}; |
| | | if(condition && !isAdancedQuery){ |
| | | Object.keys(condition).forEach(key=>{ |
| | | conditionMaps['conditionMap['+key+']'] = condition[key].trim(); |
| | | }); |
| | | } |
| | | if(isAdancedQuery){ |
| | | condition['conditionMap[pkCodeRule]'] = this.currentCodeRuleOid == null || this.currentCodeRuleOid == '' |
| | | ? this.selectionList[0].oid:this.currentCodeRuleOid; |
| | | } |
| | | gridCodeBasicSec(1, -1,isAdancedQuery ? condition:conditionMaps).then(res => { |
| | | const data = res.data.data; |
| | | if(this.cloneSettingBox){ |
| | | this.cloneData = data.records; |
| | | // console.log(tihs.cloneData); |
| | | this.cloneTableLoading = false; |
| | | }else { |
| | | this.basicData = data.records; |
| | | // console.log(this.basicData); |
| | | this.loadingBasic = false; |
| | | } |
| | | }); |
| | | }, |
| | | // 基础码段选中时触发 |
| | | selectionBasicChange(list) { |
| | | this.selectionBasicList = list; |
| | | this.$refs.crudBasic.setCurrentRow(this.selectionBasicList[list.length-1]); |
| | | //console.log(this.selectionBasicList); |
| | | }, |
| | | // 基础码段被单击表格行时触发 |
| | | codeBasicSecRowClick(row){ |
| | | this.$refs.crudBasic.toggleSelection(); |
| | | this.selectionBasicList = row; |
| | | this.$refs.crudBasic.setCurrentRow(row); |
| | | this.$refs.crudBasic.toggleRowSelection(row); //选中当前行 |
| | | }, |
| | | basicSearchChange(params, done){ |
| | | //console.log(this.$refs.crudBasic); |
| | | this.sendGridCodeBasicSec(Object.assign(params,{"pkCodeRule":this.selectionList[this.selectionList.length-1].oid}),false); |
| | | done(); |
| | | }, |
| | | basicSearchReset(){ |
| | | this.sendGridCodeBasicSec({"pkCodeRule":this.selectionList[this.selectionList.length-1].oid},false); |
| | | }, |
| | | // 上移下移基础码段 |
| | | async upOrderNum(row){ |
| | | if(!this.tipsMessage(this.selectionList)){ |
| | | return; |
| | | } |
| | | if (this.selectionList[0].lcStatus != 'Editing') { |
| | | this.$message.warning("只有编码规则的状态是 [编辑中] 的时候,才能调整码段顺序!"); |
| | | return; |
| | | } |
| | | if(row.oid==null || row.oid==''){ |
| | | this.$message.warning("未获取到必填参数!"); |
| | | return; |
| | | } |
| | | await upOrderNum(row.oid).then(() => { |
| | | this.loadBasic(this.selectionList[0]); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | }) |
| | | }, |
| | | downOrderNum(row){ |
| | | //console.log(row.oid); |
| | | if(!this.tipsMessage(this.selectionList)){ |
| | | return; |
| | | } |
| | | let codeRuleOid = this.selectionList[0].oid; |
| | | //console.log(this.selectionList); |
| | | if (this.selectionList[0].lcStatus != 'Editing') { |
| | | this.$message.warning("只有编码规则的状态是 [编辑中] 的时候,才能调整码段顺序!"); |
| | | return; |
| | | } |
| | | if(row.oid==null || row.oid==''){ |
| | | this.$message.warning("未获取到必填参数!"); |
| | | return; |
| | | } |
| | | downOrderNum(row.oid).then(() => { |
| | | this.loadBasic({"oid":codeRuleOid}); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!" |
| | | }); |
| | | }) |
| | | }, |
| | | // 基础码段刷新时查询 |
| | | refreshChangeBasicSec(){ |
| | | this.loadBasic(this.selectionList.at(-1)); |
| | | }, |
| | | // 操作基础码段中搜索清空等按钮的显示/隐藏 |
| | | hideBasicTable(hideBoolean){ |
| | | this.$refs.crudBasic.option.refreshBtn = hideBoolean; |
| | | this.$refs.crudBasic.option.columnBtn = hideBoolean; |
| | | this.$refs.crudBasic.option.column[0].search = hideBoolean; |
| | | this.$refs.crudBasic.option.column[1].search = hideBoolean; |
| | | if(!hideBoolean){ |
| | | this.selectionList = []; |
| | | this.basicData = []; |
| | | } |
| | | }, |
| | | changeCutType(value){ |
| | | if (value != 'code_cut_none'){ |
| | | if(this.form.valueCutLength == ''){ |
| | | this.form.valueCutLength = 1; |
| | | } |
| | | }else{ |
| | | this.form.valueCutLength = ''; |
| | | } |
| | | }, |
| | | |
| | | /** 第一层对话框相关方法 */ |
| | | // 打开二层对话框方法 |
| | | openAttrSelectOrGetValue(condition){ |
| | | if(condition === 'attr'){ |
| | | this.isShowSelectAttrOption = true; |
| | | }else if(condition === 'value'){ |
| | | //打开公式编辑框,第二层嵌套对话框 |
| | | //this.$refs.formulaEditor.isShowformulaEdit = true; |
| | | this.formulaEditorParams.formulaEditorSettingBox = true; |
| | | }else if(condition === 'parentClassifySecOid'){ |
| | | this.parentClsfyParams.isShowParentClassifySettingBox = true; |
| | | }else if(condition === 'referBtmId'){ |
| | | this.referBtmDialogParams.selectReferBtmSettingBox = true; |
| | | // 调用子组件刷新表格数据 |
| | | this.$refs[this.referBtmDialogParams.ref].referBtmOnLoad(); |
| | | }else if(condition === 'referConfig'){ |
| | | if(func.notEmpty(this.form.referConfig) || func.notEmpty(this.form.referBtmName)){ |
| | | this.openReconfigInterFace(this.form); |
| | | }else{ |
| | | this.openTipsChooseOrCust(); |
| | | } |
| | | } |
| | | }, |
| | | |
| | | // 当前已存在编辑过的参照配置,所以直接打开参照配置界面 |
| | | openReconfigInterFace(preReferConfigForm){ |
| | | const form = preReferConfigForm; |
| | | // 编辑码段时referConfig可能会在为【参照引用的业务类型】选取值之后改变 |
| | | let referConfigValue =JSON.parse(form.referConfig); |
| | | if(referConfigValue.referType != form.referBtmId){ |
| | | referConfigValue.referType = form.referBtmId || ''; |
| | | referConfigValue.referTypeName = form.referBtmName || form.referBtmId; |
| | | this.form.referConfig = JSON.stringify(referConfigValue); |
| | | } |
| | | let data = { |
| | | referTypeName: form.referBtmName, |
| | | referType: form.referBtmId, |
| | | referConfig: this.form.referConfig, |
| | | } |
| | | this.$refs.referConfigFormDialog.isShowReferConfigForm = true; |
| | | this.$refs.referConfigFormDialog.initPageData(data); |
| | | }, |
| | | // 打开自定义参照配置或直接选择参照配置的提示框 |
| | | openTipsChooseOrCust(){ |
| | | this.$confirm('请选择参照配置的定义方式?','参照配置的方式', { |
| | | distinguishCancelAndClose: true, |
| | | closeOnClickModal: false, |
| | | confirmButtonText: '自定义参照配置', |
| | | cancelButtonText: '直接选择参照配置' |
| | | }) |
| | | .then(() => { |
| | | // 打开自定参照配置对话框 |
| | | this.$refs.referConfigFormDialog.isShowReferConfigForm = true; |
| | | // 表格错行的问题 |
| | | this.$refs.referConfigFormDialog.onloadAttrData(); |
| | | }) |
| | | .catch(action => { |
| | | if (action === "cancel") { |
| | | // 打开直接选择参照配置对话框 |
| | | this.$refs.referConfigCrudDialog.isShowReferConfigCrud = true; |
| | | this.$refs.referConfigCrudDialog.referConfigOnload(); |
| | | } |
| | | //console.log(action); |
| | | }); |
| | | // 让参照配置输入框失去焦点,否则该提示框无法被关闭 |
| | | this.$refs.referConfig.$el.querySelector('input').blur(); |
| | | }, |
| | | |
| | | // 点击输入框的×号,清空输入框中的内容 |
| | | clearAttrDataByIcon(condition){ |
| | | if(condition === 'attr'){ |
| | | this.form.referAttributeName = ''; |
| | | this.form.referAttributeId = ''; |
| | | this.form.referCodeClassifyOid = ''; |
| | | this.form.referCodeClassifyOidName = ''; |
| | | }else if(condition === 'value'){ |
| | | this.form.getValueClass = ''; |
| | | }else if(condition === 'parentClassifySecOid'){ |
| | | this.form.parentClassifySecOid = ''; |
| | | }else if(condition === 'referBtmId'){ |
| | | this.form.referBtmId = ''; |
| | | this.form.referBtmName = ''; |
| | | this.form.referConfig = ''; |
| | | }else if(condition === 'referConfig'){ |
| | | this.form.referConfig = ''; |
| | | } |
| | | }, |
| | | // 补位时的字符,实现可输可选 |
| | | inputSelectBlur(e){ |
| | | if (e.target.value) { |
| | | this.form.codeFillSeparator = e.target.value; |
| | | } |
| | | }, |
| | | // 码段类型改变时,增加对应的form表单中的属性 |
| | | changeSectypeFormItems(row){ |
| | | //console.log(row); |
| | | if(this.enumParam.secTypeList.length==0){ |
| | | this.loadCodeSecType(); |
| | | } |
| | | if(row != null){ |
| | | this.form = { |
| | | oid: row.oid, |
| | | id: row.id, //编号, |
| | | name: row.name,//名称 |
| | | secType: row.secType,//码段类型 |
| | | description: row.description,//描述 |
| | | serialDependFlag: row.serialDependFlag=='true' ? true:false,//是否流水依赖 |
| | | serialDependOrder: row.serialDependOrder,//流水依赖顺序 |
| | | nullableFlag: row.nullableFlag=='true' ? true:false,//是否为空 |
| | | displayFlag: row.displayFlag=='true' ? true:false, |
| | | componentCodeFlag: row.componentCodeFlag=='true' ? true:false,//是否参与编码 |
| | | pkCodeRule: row.pkCodeRule, //所属编码规则 |
| | | } |
| | | }else { |
| | | this.form = { |
| | | id: this.form.id, //编号 |
| | | name: this.form.name, //名称 |
| | | secType: this.form.secType, //码段类型 |
| | | description: this.form.description, //描述 |
| | | serialDependFlag: this.form.serialDependFlag, //是否流水依赖 |
| | | serialDependOrder: this.form.serialDependOrder, //流水依赖顺序 |
| | | nullableFlag: this.form.nullableFlag, //是否为空 |
| | | displayFlag: this.form.displayFlag, // |
| | | componentCodeFlag: this.form.componentCodeFlag, //是否参与编码 |
| | | pkCodeRule: this.form.pkCodeRule, //所属编码规则 |
| | | }; |
| | | //console.log(this.form); |
| | | } |
| | | if(this.form.secType==='codefixedsec'){ |
| | | //固定码段 |
| | | this.form = Object.assign({}, this.form,{ |
| | | codeSecLength: row!=null&&row.codeSecLength != '' ? row.codeSecLength:'', |
| | | codeSecLengthType: row!=null&&row.codeSecLengthType != '' ? row.codeSecLengthType:'code_sec_length_variable' |
| | | }); |
| | | this.loadCodeSecLength(); |
| | | }else if(this.form.secType==='codeattrsec'){ |
| | | //属性码段 |
| | | this.form = Object.assign({}, this.form, { |
| | | referCodeClassifyOid: row!=null&&row.referCodeClassifyOid != '' ? row.referCodeClassifyOid:'', //属性id |
| | | referCodeClassifyOidName: row!=null&&row.referCodeClassifyOidName != '' ? row.referCodeClassifyOidName:'', //属性所在分类 |
| | | referAttributeId: row!=null&&row.referAttributeId != '' ? row.referAttributeId:'', //属性编号 |
| | | referAttributeName: row!=null&&row.referAttributeName != '' ? row.referAttributeName:'', //属性 |
| | | getValueClass: row!=null&&row.getValueClass != '' ? row.getValueClass:'' //取值规则 |
| | | }); |
| | | }else if(this.form.secType==='codeserialsec'){ |
| | | //流水码段 |
| | | this.form = Object.assign({}, this.form,{ |
| | | codeSecLength: row!=null&&row.codeSecLength != '' ? row.codeSecLength:'', //码段的长度 |
| | | serialStart: row!=null&&row.serialStart != '' ? row.serialStart:1, //流水号起始值 |
| | | serialStep: row!=null&&row.serialStep != '' ? row.serialStep:1, //流水的步长 |
| | | codeFillType: row!=null&&row.codeFillType != '' ? row.codeFillType:'code_fill_left', //编码补位方式 |
| | | // codeFillSeparatorSelect: row!=null&&row.codeFillSeparatorSelect != '' ? row.codeFillSeparatorSelect:0, //补位时的字符,选中的下拉框的下标 |
| | | codeFillSeparator: row!=null&&row.codeFillSeparator != '' ? row.codeFillSeparator:'0', //补位时的字符 |
| | | codeFillLength: row!=null&&row.codeFillLength != '' ? row.codeFillLength:'', //填充长度 |
| | | codeFillLimit: row!=null&&row.codeFillLimit != '' ? row.codeFillLimit:'', //流水上限 |
| | | codeFillFlag: row!=null&&row.codeFillFlag != '' ? row.codeFillFlag=='true' ? true:false :false, //流水是否补码 |
| | | customCodeSerialClass: row!=null&&row.customCodeSerialClass != '' ? row.customCodeSerialClass:'', //自定义流水算法 |
| | | }); |
| | | this.loadCodeFillType(); |
| | | this.loadCodeFillSeparator(); |
| | | }else if(this.form.secType==='codelevelsec'){ |
| | | //层级码段 |
| | | this.form = Object.assign({}, this.form,{ |
| | | codeLevelType: row!=null&&row.codeLevelType != '' ? row.codeLevelType:'code_level_min', //层级类型 枚举查询 |
| | | codeLevelValue: row!=null&&row.codeLevelValue != '' ? row.codeLevelValue:'', //层级的值 |
| | | valueCutType: row!=null&&row.valueCutType != '' ? row.valueCutType:'code_cut_none', //字符截取类型 枚举查询 |
| | | valueCutLength: row!=null&&row.valueCutLength != '' ? row.valueCutLength:'', // |
| | | codeGetValueType: row!=null&&row.codeGetValueType != '' ? row.codeGetValueType:'code_get_value_all_up', //取值类型 枚举查询 |
| | | }); |
| | | this.loadCodeLevelType(); |
| | | this.loadCodeCutType(); |
| | | this.loadCodeGetValueType(); |
| | | }else if(this.form.secType==='coderefersec'){ |
| | | //引用码段 |
| | | this.form = Object.assign({}, this.form,{ |
| | | referBtmId: row!=null&&row.referBtmId != '' ? row.referBtmId:'', //参照引用的业务类型,的id |
| | | referBtmName: row!=null&&row.referBtmName != '' ? row.referBtmName:'', //参照引用的业务类型 |
| | | referConfig: row!=null&&row.referConfig != '' ? row.referConfig:'', //参照配置 |
| | | referValueInfo: row!=null&&row.referValueInfo != '' ? row.referValueInfo:'', //参照配置 |
| | | }); |
| | | }else if(this.form.secType==='codedatesec'){ |
| | | //日期码段 |
| | | this.form = Object.assign({}, this.form,{ |
| | | codeDateFormatStr: row!=null&&row.codeDateFormatStr != '' ? row.codeDateFormatStr:'', //日期格式 |
| | | }); |
| | | }else if(this.form.secType==='codeclassifysec'){ |
| | | //console.log(this.form); |
| | | //分类码段 |
| | | this.form = Object.assign({}, this.form,{ |
| | | codeSecLengthType: row!=null&&row.codeSecLengthType != '' ? row.codeSecLengthType:'code_sec_length_variable', //码段长度类型 |
| | | codeSecLength: row!=null&&row.codeSecLength != '' ? row.codeSecLength:'', //码段的长度 |
| | | matchClassifyValueFlag: row!=null&&row.matchClassifyValueFlag != '' ? row.matchClassifyValueFlag=='true' ? true:false :false, //是否自动匹配值 |
| | | parentClassifySecOid: row!=null&&row.parentClassifySecOid != '' ? row.parentClassifySecOid:'', //父分类码段选中的id |
| | | parentClassifySecText: row!=null&&row.parentClassifySecText != '' ? row.parentClassifySecText:'', //父分类码段 |
| | | }); |
| | | this.loadCodeSecLength(); |
| | | }else if(this.form.secType==='codevariablesec'){ |
| | | //可变码段 |
| | | this.form = Object.assign({}, this.form,{ |
| | | codeSecLength: row!=null&&row.codeSecLength != '' ? row.codeSecLength:'', //码段的长度 |
| | | codeFillType: row!=null&&row.codeFillType != '' ? row.codeFillType:'code_fill_left', //编码部位方式,枚举查询 |
| | | // codeFillSeparatorSelect: row!=null&&row.codeFillSeparatorSelect != '' ? row.codeFillSeparatorSelect:0, //选中的补位时的字符的下标 |
| | | codeFillSeparator: row!=null&&row.codeFillSeparator != '' ? row.codeFillSeparator:'0', //补位时的字符,可输可选查询 |
| | | }); |
| | | this.loadCodeFillType(); |
| | | this.loadCodeFillSeparator(); |
| | | } |
| | | // console.log(this.form); |
| | | }, |
| | | // 第一次请求的枚举数据放缓存 |
| | | getLocalStorageEnum(enumKey){ |
| | | let enumCach = JSON.parse(localStorage.getItem(enumKey)); |
| | | if(enumCach == null) { |
| | | getDictionary({code: enumKey}).then(res=>{ |
| | | enumCach = res.data.data; |
| | | localStorage.setItem(enumKey,JSON.stringify(res.data.data)); |
| | | }) |
| | | } |
| | | return enumCach; |
| | | }, |
| | | // 统一加载所有枚举查询,主要是为避免切换码段类型时还未加载完成的情况 |
| | | loadTotalEnum(){ |
| | | this.loadCodeSecType(); |
| | | this.loadCodeSecLength(); |
| | | this.loadCodeFillType(); |
| | | this.loadCodeFillSeparator(); |
| | | this.loadCodeLevelType(); |
| | | this.loadCodeCutType(); |
| | | this.loadCodeGetValueType(); |
| | | }, |
| | | //枚举和可输可选内容查询 |
| | | loadCodeSecType(){ |
| | | this.enumParam.secTypeList = this.getLocalStorageEnum("codeSecType"); |
| | | this.loadCodeSecLength(); |
| | | }, |
| | | loadCodeSecLength(){ |
| | | this.enumParam.codeSecLengthType = this.getLocalStorageEnum("codeSecLength"); |
| | | }, |
| | | loadCodeFillType(){ |
| | | this.enumParam.codeFillType = this.getLocalStorageEnum("codeFillType"); |
| | | }, |
| | | loadCodeFillSeparator(){ |
| | | let enumCach = JSON.parse(localStorage.getItem("codeFillSeparator")); |
| | | if(enumCach == null) { |
| | | getDictionary("codeFillSeparator").then(res=>{ |
| | | this.enumParam.codeFillSeparator = res.data.data; |
| | | localStorage.setItem(key,JSON.stringify(res.data.data)); |
| | | }) |
| | | } |
| | | }, |
| | | loadCodeLevelType(){ |
| | | this.enumParam.codeLevelType = this.getLocalStorageEnum("codeLevelType"); |
| | | }, |
| | | loadCodeCutType(){ |
| | | this.enumParam.codeCutType = this.getLocalStorageEnum("codeCutType"); |
| | | }, |
| | | loadCodeGetValueType(){ |
| | | this.enumParam.codeGetValueType = this.getLocalStorageEnum("codeGetValueType"); |
| | | }, |
| | | |
| | | ); |
| | | } |
| | | }; |
| | | // 取消保存按钮加载效果 |
| | | this.isLoadingSecCodeAddBtn = false; |
| | | }, |
| | | /** 因为elementui的表单校验设置不上所以采用判断的方式来做表单检验方式*/ |
| | | checkForm() { |
| | | let form = this.form; |
| | | //console.log(form); |
| | | const regNumber = /^[0-9]+\.{0,1}[0-9]*$/; //数字或小数正则校验 |
| | | const regPos = /^[0-9]*[1-9][0-9]*$/; //非负整数正则校验 |
| | | const tipsMsg = "必填项不能为空"; |
| | | if (form.id == "") { |
| | | this.$message.warning("(码段编号)" + tipsMsg); |
| | | this.$refs.id.$el.querySelector("input").focus(); |
| | | return false; |
| | | } |
| | | if (form.name == "") { |
| | | this.$message.warning("(码段名称)" + tipsMsg); |
| | | this.$refs.name.$el.querySelector("input").focus(); |
| | | return false; |
| | | } |
| | | if (form.secType == "") { |
| | | this.$message.warning("(码段类型)" + tipsMsg); |
| | | this.$refs.secType.$el.querySelector("select").focus(); |
| | | return false; |
| | | } |
| | | if (form.secType === "codefixedsec") { |
| | | //固定码段 |
| | | if (form.codeSecLengthType == "") { |
| | | this.$message.warning("(码段长度类型)" + tipsMsg); |
| | | // this.$refs.codeSecLengthType.$el.querySelector('select').focus(); |
| | | return false; |
| | | } |
| | | if (form.codeSecLength == "") { |
| | | this.$message.warning("(码段长度)" + tipsMsg); |
| | | this.$refs.codeSecLength.$el.querySelector("input").focus(); |
| | | return false; |
| | | } |
| | | if (!regNumber.test(form.codeSecLength)) { |
| | | this.$message.warning("码段的长度必须为数字值"); |
| | | this.$refs.codeSecLength.$el.querySelector("input").focus(); |
| | | return false; |
| | | } |
| | | } else if (this.form.secType === "codeattrsec") { |
| | | //属性码段 |
| | | if (form.referAttributeId == "") { |
| | | this.$message.warning("(属性)" + tipsMsg); |
| | | this.$refs.referAttributeId.$el.querySelector("input").focus(); |
| | | return false; |
| | | } |
| | | } else if (this.form.secType === "codeserialsec") { |
| | | //console.log(form.codeFillType); |
| | | //流水码段 |
| | | if (form.codeSecLength == "") { |
| | | this.$message.warning("(码段的长度)" + tipsMsg); |
| | | this.$refs.seriaCodeSecLength.$el.querySelector("input").focus(); |
| | | return false; |
| | | } |
| | | if (!regNumber.test(form.codeSecLength)) { |
| | | this.$message.warning("码段的长度必须为数字值"); |
| | | this.$refs.seriaCodeSecLength.$el.querySelector("input").focus(); |
| | | return false; |
| | | } |
| | | if (!regNumber.test(form.serialStart)) { |
| | | this.$message.warning("流水号的起始值必须为数字值"); |
| | | this.$refs.serialStart.$el.querySelector("input").focus(); |
| | | return false; |
| | | } |
| | | if (!regNumber.test(form.serialStep)) { |
| | | this.$message.warning("流水的步长必须为数字值"); |
| | | this.$refs.serialStep.$el.querySelector("input").focus(); |
| | | return false; |
| | | } |
| | | if (form.codeFillType == "") { |
| | | this.$message.warning("(编码补位方式)" + tipsMsg); |
| | | return false; |
| | | } |
| | | if (form.codeFillType != "不补位" && form.codeFillSeparator == "") { |
| | | this.$message.warning( |
| | | "当补位方式为左补位或者右补位的时候,补位字符不能为空" |
| | | ); |
| | | return false; |
| | | } |
| | | if (form.codeFillLength == "") { |
| | | this.$message.warning("填充长度不能为空"); |
| | | this.$refs.codeFillLength.$el.querySelector("input").focus(); |
| | | return false; |
| | | } |
| | | if (!regNumber.test(form.codeFillLength)) { |
| | | this.$message.warning("填充长度必须为数字值"); |
| | | this.$refs.codeFillLength.$el.querySelector("input").focus(); |
| | | return false; |
| | | } |
| | | if (form.codeFillLimit == "") { |
| | | this.$message.warning("(流水上限)" + tipsMsg); |
| | | this.$refs.codeFillLimit.$el.querySelector("input").focus(); |
| | | return false; |
| | | } |
| | | if (!regNumber.test(form.codeFillLimit)) { |
| | | this.$message.warning("流水上限必须为数字值"); |
| | | this.$refs.codeFillLimit.$el.querySelector("input").focus(); |
| | | return false; |
| | | } |
| | | // if(form.codeFillFlag == '' || ){ |
| | | // this.$message.warning('(流水是否补码)'+tipsMsg); |
| | | // return false; |
| | | // } |
| | | } else if (this.form.secType === "codelevelsec") { |
| | | //层级码段 |
| | | if (form.codeLevelType == "") { |
| | | this.$message.warning("(层级类型)" + tipsMsg); |
| | | return false; |
| | | } |
| | | if ( |
| | | form.codeLevelType != "code_level_min" && |
| | | !regNumber.test(form.codeLevelValue) |
| | | ) { |
| | | this.$message.warning("(层级的值)只能填写数字"); |
| | | this.$refs.codeLevelValue.$el.querySelector("input").focus(); |
| | | return false; |
| | | } |
| | | if (form.valueCutType == "") { |
| | | this.$message.warning("(字符截取类型)" + tipsMsg); |
| | | // this.$refs.valueCutType.$el.querySelector('select').focus(); |
| | | return false; |
| | | } |
| | | if ( |
| | | form.valueCutType != "code_cut_none" && |
| | | !regPos.test(form.valueCutLength) |
| | | ) { |
| | | this.$message.warning("(值截取长度)只能填写正整数"); |
| | | this.$refs.valueCutLength.$el.querySelector("input").focus(); |
| | | return false; |
| | | } |
| | | } else if (this.form.secType === "coderefersec") { |
| | | //引用码段 |
| | | if (form.referBtmId == "") { |
| | | this.$message.warning("(参照引用的业务类型)" + tipsMsg); |
| | | this.$refs.referBtmId.$el.querySelector("input").focus(); |
| | | return false; |
| | | } |
| | | if (form.referConfig == "") { |
| | | this.$message.warning("(参照配置)" + tipsMsg); |
| | | this.$refs.referConfig.$el.querySelector("input").focus(); |
| | | return false; |
| | | } |
| | | } else if (this.form.secType === "codedatesec") { |
| | | //日期码段 |
| | | if (form.codeDateFormatStr == "") { |
| | | this.$message.warning("(日期格式)" + tipsMsg); |
| | | this.$refs.codeDateFormatStr.$el.querySelector("input").focus(); |
| | | return false; |
| | | } |
| | | const Formats = [ |
| | | 'yy', |
| | | 'yyyy', |
| | | 'yy-MM', |
| | | 'yyMM', |
| | | 'yyyy-MM', |
| | | 'yyyyMM', |
| | | 'yy-MM-dd', |
| | | 'yyMMdd', |
| | | 'yyyy-MM-dd', |
| | | 'yyyyMMdd', |
| | | 'yyyy-MM-dd HH:mm:ss', |
| | | 'yy-MM-dd HH:mm:ss', |
| | | 'HH:mm:ss', |
| | | 'yyyyMMdd HH:mm:ss', |
| | | 'yyMMdd HH:mm:ss', |
| | | 'yyyy-MM-dd HHmmss', |
| | | 'yy-MM-dd HHmmss', |
| | | 'yyyyMMdd HHmmss', |
| | | 'yyMMdd HHmmss', |
| | | 'HHmmss' |
| | | ]; |
| | | if (!Formats.includes(this.form.codeDateFormatStr)) { |
| | | this.$message.warning('请检查日期格式!'); |
| | | return; |
| | | } |
| | | } else if (this.form.secType === "codeclassifysec") { |
| | | //分类码段 |
| | | if (form.codeSecLengthType == "") { |
| | | this.$message.warning("(码段长度类型)" + tipsMsg); |
| | | return false; |
| | | } |
| | | if (form.codeSecLength == "") { |
| | | this.$message.warning("(码段长度)" + tipsMsg); |
| | | this.$refs.classCodeSecLength.$el.querySelector("input").focus(); |
| | | return false; |
| | | } |
| | | if (!regNumber.test(form.codeSecLength)) { |
| | | this.$message.warning("码段的长度必须为数字值"); |
| | | this.$refs.classCodeSecLength.$el.querySelector("input").focus(); |
| | | return false; |
| | | } |
| | | } else if (this.form.secType === "codevariablesec") { |
| | | //可变码段 |
| | | if (form.codeSecLength == "") { |
| | | this.$message.warning("(码段长度)" + tipsMsg); |
| | | this.$refs.varCodeSecLength.$el.querySelector("input").focus(); |
| | | return false; |
| | | } |
| | | if (!regNumber.test(form.codeSecLength)) { |
| | | this.$message.warning("码段的长度必须为数字值"); |
| | | this.$refs.classCodeSecLength.$el.querySelector("input").focus(); |
| | | return false; |
| | | } |
| | | if (form.codeFillType == "") { |
| | | this.$message.warning("(编码补位方式)" + tipsMsg); |
| | | return false; |
| | | } |
| | | // console.log(form); |
| | | if ( |
| | | form.codeFillType != "code_fill_none" && |
| | | form.codeFillSeparator == "" |
| | | ) { |
| | | this.$message.warning( |
| | | "当补位方式为左补位或者右补位的时候,补位字符不能为空" |
| | | ); |
| | | return false; |
| | | } |
| | | } |
| | | return true; |
| | | }, |
| | | /** 层级码段选择为最小层级时清空层级的值 */ |
| | | changeLevelType(){ |
| | | if(this.form.codeLevelType === 'code_level_min'){ |
| | | this.form.codeLevelValue = ''; |
| | | } |
| | | }, |
| | | /** 判断数据是否选择以及只能选择单条数据*/ |
| | | tipsMessage(list) { |
| | | if (list.length != 1) { |
| | | this.$message.warning("请选择一条数据!"); |
| | | return false; |
| | | } |
| | | return true; |
| | | }, |
| | | /** 基础码段删除*/ |
| | | deleteBasicCode() { |
| | | if (!this.tipsMessage(this.selectionBasicList)) { |
| | | return; |
| | | } |
| | | if (this.selectionList.slice(-1)[0].lcStatus != "Editing") { |
| | | this.$message.warning('编码规则状态不是"编辑中",不允许删除码段!'); |
| | | return; |
| | | } |
| | | let oid = this.selectionBasicList[0].oid; |
| | | this.$confirm("是否删除这条数据?如果被引用将不能被删除!", { |
| | | confirmButtonText: "确定", |
| | | cancelButtonText: "取消", |
| | | type: "warning", |
| | | }) |
| | | .then(() => { |
| | | let ts = new Date(this.selectionBasicList[0].ts).getTime(); |
| | | return deleteData({oid: oid, ts: ts}); |
| | | }) |
| | | .then(() => { |
| | | this.loadBasic({ |
| | | oid: |
| | | this.currentCodeRuleOid == null || this.currentCodeRuleOid == "" |
| | | ? this.selectionList[0].oid |
| | | : this.currentCodeRuleOid, |
| | | }); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | this.$refs.crudBasic.toggleSelection(); |
| | | }); |
| | | }, |
| | | /** 点击触发加载基础码段信息*/ |
| | | loadBasic(row) { |
| | | 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); |
| | | } |
| | | }, |
| | | /** 发送加载基础码段的请求*/ |
| | | sendGridCodeBasicSec(condition, isAdancedQuery /** 是否高级查询 */) { |
| | | // 如果当前基础码段表中的搜索按钮被隐藏,就需要在此开启 |
| | | if ( |
| | | this.selectionList.length >= 0 && |
| | | !this.$refs.crudBasic.option.column[0].search |
| | | ) { |
| | | this.hideBasicTable(true); |
| | | } |
| | | let conditionMaps = {}; |
| | | if (condition && !isAdancedQuery) { |
| | | Object.keys(condition).forEach((key) => { |
| | | conditionMaps["conditionMap[" + key + "]"] = condition[key].trim(); |
| | | }); |
| | | } |
| | | if (isAdancedQuery) { |
| | | condition["conditionMap[pkCodeRule]"] = |
| | | this.currentCodeRuleOid == null || this.currentCodeRuleOid == "" |
| | | ? this.selectionList[0].oid |
| | | : this.currentCodeRuleOid; |
| | | } |
| | | gridCodeBasicSec(1, -1, isAdancedQuery ? condition : conditionMaps).then( |
| | | (res) => { |
| | | const data = res.data.data; |
| | | this.basicData = data.records; |
| | | this.loadingBasic = false; |
| | | } |
| | | ); |
| | | }, |
| | | /** 基础码段选中时触发*/ |
| | | selectionBasicChange(list) { |
| | | this.selectionBasicList = list; |
| | | this.$refs.crudBasic.setCurrentRow( |
| | | this.selectionBasicList[list.length - 1] |
| | | ); |
| | | }, |
| | | /** 基础码段被单击表格行时触发*/ |
| | | codeBasicSecRowClick(row) { |
| | | this.$refs.crudBasic.toggleSelection(); |
| | | this.selectionBasicList = row; |
| | | this.$refs.crudBasic.setCurrentRow(row); |
| | | this.$refs.crudBasic.toggleRowSelection(row); //选中当前行 |
| | | }, |
| | | basicSearchChange(params, done) { |
| | | this.sendGridCodeBasicSec( |
| | | Object.assign(params, { |
| | | pkCodeRule: this.selectionList[this.selectionList.length - 1].oid, |
| | | }), |
| | | false |
| | | ); |
| | | done(); |
| | | }, |
| | | basicSearchReset() { |
| | | this.sendGridCodeBasicSec( |
| | | {pkCodeRule: this.selectionList[this.selectionList.length - 1].oid}, |
| | | false |
| | | ); |
| | | }, |
| | | /** 上移下移基础码段*/ |
| | | async upOrderNum(row) { |
| | | if (!this.tipsMessage(this.selectionList)) { |
| | | return; |
| | | } |
| | | if (this.selectionList[0].lcStatus != "Editing") { |
| | | this.$message.warning( |
| | | "只有编码规则的状态是 [编辑中] 的时候,才能调整码段顺序!" |
| | | ); |
| | | return; |
| | | } |
| | | if (row.oid == null || row.oid == "") { |
| | | this.$message.warning("未获取到必填参数!"); |
| | | return; |
| | | } |
| | | await upOrderNum(row.oid).then(() => { |
| | | this.loadBasic(this.selectionList[0]); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | }); |
| | | }, |
| | | downOrderNum(row) { |
| | | //console.log(row.oid); |
| | | if (!this.tipsMessage(this.selectionList)) { |
| | | return; |
| | | } |
| | | let codeRuleOid = this.selectionList[0].oid; |
| | | if (this.selectionList[0].lcStatus != "Editing") { |
| | | this.$message.warning( |
| | | "只有编码规则的状态是 [编辑中] 的时候,才能调整码段顺序!" |
| | | ); |
| | | return; |
| | | } |
| | | if (row.oid == null || row.oid == "") { |
| | | this.$message.warning("未获取到必填参数!"); |
| | | return; |
| | | } |
| | | downOrderNum(row.oid).then(() => { |
| | | this.loadBasic({oid: codeRuleOid}); |
| | | this.$message({ |
| | | type: "success", |
| | | message: "操作成功!", |
| | | }); |
| | | }); |
| | | }, |
| | | /** 基础码段刷新时查询*/ |
| | | refreshChangeBasicSec() { |
| | | this.loadBasic(this.selectionList.slice(-1)[0]); |
| | | }, |
| | | /** 操作基础码段中搜索清空等按钮的显示/隐藏*/ |
| | | hideBasicTable(hideBoolean) { |
| | | this.$refs.crudBasic.option.refreshBtn = hideBoolean; |
| | | this.$refs.crudBasic.option.column[0].search = hideBoolean; |
| | | this.$refs.crudBasic.option.column[1].search = hideBoolean; |
| | | if (!hideBoolean) { |
| | | this.selectionList = []; |
| | | this.basicData = []; |
| | | } |
| | | }, |
| | | changeCutType(value) { |
| | | if (value != "code_cut_none") { |
| | | if (this.form.valueCutLength == "") { |
| | | this.form.valueCutLength = 1; |
| | | } |
| | | } else { |
| | | this.form.valueCutLength = ""; |
| | | } |
| | | }, |
| | | |
| | | /** 第一层对话框相关方法 */ |
| | | /** 打开二层对话框方法*/ |
| | | openAttrSelectOrGetValue(condition) { |
| | | if (condition === "attr") { |
| | | this.isShowSelectAttrOption = true; |
| | | this.loadlistClassifyLinkAttr(); |
| | | } else if (condition === "value") { |
| | | //打开公式编辑框,第二层嵌套对话框 |
| | | //this.$refs.formulaEditor.isShowformulaEdit = true; |
| | | this.formulaEditorParams.formulaEditorSettingBox = true; |
| | | } else if (condition === "parentClassifySecOid") { |
| | | this.parentClsfyParams.isShowParentClassifySettingBox = true; |
| | | } else if (condition === "referBtmId") { |
| | | this.referBtmDialogParams.selectReferBtmSettingBox = true; |
| | | // 调用子组件刷新表格数据 |
| | | this.$refs[this.referBtmDialogParams.ref].referBtmOnLoad(); |
| | | } else if (condition === "referConfig") { |
| | | this.referConfigVisble = true; |
| | | this.referConfigOption = { |
| | | referBtmName: this.form.referBtmName, |
| | | referBtmId: this.form.referBtmId, |
| | | referConfig: this.form.referConfig || "", |
| | | }; |
| | | this.$refs.referConfig.$el.querySelector("input").blur(); |
| | | } |
| | | }, |
| | | |
| | | /** 点击输入框的×号,清空输入框中的内容*/ |
| | | clearAttrDataByIcon(condition) { |
| | | if (condition === "attr") { |
| | | this.form.referAttributeName = ""; |
| | | this.form.referAttributeId = ""; |
| | | this.form.referCodeClassifyOid = ""; |
| | | this.form.referCodeClassifyOidName = ""; |
| | | } else if (condition === "value") { |
| | | this.form.getValueClass = ""; |
| | | } else if (condition === "parentClassifySecOid") { |
| | | this.form.parentClassifySecOid = ""; |
| | | } else if (condition === "referBtmId") { |
| | | this.form.referBtmId = ""; |
| | | this.form.referBtmName = ""; |
| | | this.form.referConfig = ""; |
| | | } else if (condition === "referConfig") { |
| | | this.form.referConfig = ""; |
| | | } |
| | | }, |
| | | /** 补位时的字符,实现可输可选 TODO:因为增加了可用字符集控制,所以这儿弃用了可用字符集的效果*/ |
| | | /*inputSelectBlur(e) { |
| | | if (e.target.value) { |
| | | this.form.codeFillSeparator = e.target.value; |
| | | } |
| | | },*/ |
| | | /** 码段类型改变时,增加对应的form表单中的属性*/ |
| | | changeSectypeFormItems(row) { |
| | | //console.log(row) |
| | | if ( |
| | | func.isEmpty(this.enumParam.secTypeList) || |
| | | this.enumParam.secTypeList.length == 0 |
| | | ) { |
| | | this.loadCodeSecType(); |
| | | } |
| | | this.form = { |
| | | oid: row != null ? row.oid : this.form.oid, |
| | | id: row != null ? row.id : this.form.id, //编号, |
| | | name: row != null ? row.name : this.form.name, //名称 |
| | | secType: row != null ? row.secType : this.form.secType, //码段类型 |
| | | description: row != null ? row.description : this.form.description, //描述 |
| | | serialDependFlag: this.isNullJsonBoolean(row, this.form, 'serialDependFlag'), //是否流水依赖 |
| | | //serialDependOrder: row != null ? row.serialDependOrder : this.form.serialDependOrder, //流水依赖顺序 |
| | | nullableFlag: this.isNullJsonBoolean(row, this.form, 'nullableFlag'), //是否为空 |
| | | displayFlag: this.isNullJsonBoolean(row, this.form, 'displayFlag'), |
| | | componentCodeFlag: this.isNullJsonBoolean(row, this.form, 'componentCodeFlag'), //是否参与编码 |
| | | pkCodeRule: row != null ? row.pkCodeRule : this.form.pkCodeRule, //所属编码规则 |
| | | prefixCode: row != null ? row.prefixCode : this.form.prefixCode, //前缀 |
| | | suffixCode: row != null ? row.suffixCode : this.form.suffixCode, //后缀 |
| | | // customCodeSerialClass: row != null ? row.customCodeSerialClass : this.form.customCodeSerialClass |
| | | }; |
| | | if (this.form.secType === "codefixedsec") { |
| | | //固定码段 |
| | | this.form = Object.assign({}, this.form, { |
| | | codeSecLength: |
| | | row != null && row.codeSecLength != "" ? row.codeSecLength : "", |
| | | codeSecLengthType: |
| | | row != null && row.codeSecLengthType != "" |
| | | ? row.codeSecLengthType |
| | | : "code_sec_length_variable", |
| | | }); |
| | | this.loadCodeSecLength(); |
| | | } else if (this.form.secType === "codeattrsec") { |
| | | //属性码段 |
| | | this.form = Object.assign({}, this.form, { |
| | | referCodeClassifyOid: |
| | | row != null && row.referCodeClassifyOid != "" |
| | | ? row.referCodeClassifyOid |
| | | : "", //属性id |
| | | referCodeClassifyOidName: |
| | | row != null && row.referCodeClassifyOidName != "" |
| | | ? row.referCodeClassifyOidName |
| | | : "", //属性所在分类 |
| | | referAttributeId: |
| | | row != null && row.referAttributeId != "" |
| | | ? row.referAttributeId |
| | | : "", //属性编号 |
| | | referAttributeName: |
| | | row != null && row.referAttributeName != "" |
| | | ? row.referAttributeName |
| | | : "", //属性 |
| | | getValueClass: |
| | | row != null && row.getValueClass != "" ? row.getValueClass : "", //取值规则 |
| | | }); |
| | | } else if (this.form.secType === "codeserialsec") { |
| | | //流水码段 |
| | | this.form = Object.assign({}, this.form, { |
| | | codeSecLength: |
| | | row != null && row.codeSecLength != "" ? row.codeSecLength : "", //码段的长度 |
| | | serialStart: |
| | | row != null && row.serialStart != "" ? row.serialStart : 1, //流水号起始值 |
| | | serialStep: row != null && row.serialStep != "" ? row.serialStep : 1, //流水的步长 |
| | | codeFillType: row != null && row.codeFillType != "" |
| | | ? row.codeFillType |
| | | : "code_fill_left", //编码补位方式 |
| | | // codeFillSeparatorSelect: row!=null&&row.codeFillSeparatorSelect != '' ? row.codeFillSeparatorSelect:0, //补位时的字符,选中的下拉框的下标 |
| | | codeFillSeparator: |
| | | row != null && row.codeFillSeparator != "" |
| | | ? row.codeFillSeparator |
| | | : "0", //补位时的字符 |
| | | codeFillLength: |
| | | row != null && row.codeFillLength != "" ? row.codeFillLength : "", //填充长度 |
| | | codeFillLimit: |
| | | row != null && row.codeFillLimit != "" ? row.codeFillLimit : "", //流水上限 |
| | | codeFillFlag: |
| | | row != null && row.codeFillFlag != "" |
| | | ? row.codeFillFlag == "true" |
| | | ? true |
| | | : false |
| | | : false, //流水是否补码 |
| | | customCodeSerialClass: |
| | | row != null && row.customCodeSerialClass != "" |
| | | ? row.customCodeSerialClass |
| | | : "", //自定义流水算法 |
| | | customCodeSerialClassText: |
| | | row != null && row.customCodeSerialClassText != "" |
| | | ? row.customCodeSerialClassText |
| | | : "", //自定义流水算法显示值 |
| | | customCodeSerialType: |
| | | row != null && row.customCodeSerialType != "" |
| | | ? row.customCodeSerialType |
| | | : "", //自定义流水算法类型 |
| | | }); |
| | | this.loadCodeFillType(); |
| | | this.loadCodeFillSeparator(); |
| | | } else if (this.form.secType === "codelevelsec") { |
| | | //层级码段 |
| | | this.form = Object.assign({}, this.form, { |
| | | codeLevelType: |
| | | row != null && row.codeLevelType != "" |
| | | ? row.codeLevelType |
| | | : "code_level_min", //层级类型 枚举查询 |
| | | codeLevelValue: |
| | | row != null && row.codeLevelValue != "" ? row.codeLevelValue : "", //层级的值 |
| | | valueCutType: |
| | | row != null && row.valueCutType != "" |
| | | ? row.valueCutType |
| | | : "code_cut_none", //字符截取类型 枚举查询 |
| | | valueCutLength: |
| | | row != null && row.valueCutLength != "" ? row.valueCutLength : "", // |
| | | codeGetValueType: |
| | | row != null && row.codeGetValueType != "" |
| | | ? row.codeGetValueType |
| | | : "code_get_value_all_up", //取值类型 枚举查询 |
| | | }); |
| | | this.loadCodeLevelType(); |
| | | this.loadCodeCutType(); |
| | | this.loadCodeGetValueType(); |
| | | } else if (this.form.secType === "coderefersec") { |
| | | //引用码段 |
| | | this.form = Object.assign({}, this.form, { |
| | | referBtmId: row != null && row.referBtmId != "" ? row.referBtmId : "", //参照引用的业务类型,的id |
| | | referBtmName: |
| | | row != null && row.referBtmName != "" ? row.referBtmName : "", //参照引用的业务类型 |
| | | referConfig: |
| | | row != null && row.referConfig != "" ? row.referConfig : "", //参照配置 |
| | | referValueInfo: |
| | | row != null && row.referValueInfo != "" ? row.referValueInfo : "", //参照配置 |
| | | }); |
| | | } else if (this.form.secType === "codedatesec") { |
| | | //日期码段 |
| | | this.form = Object.assign({}, this.form, { |
| | | codeDateFormatStr: |
| | | row != null && row.codeDateFormatStr != "" |
| | | ? row.codeDateFormatStr |
| | | : "", //日期格式 |
| | | }); |
| | | } else if (this.form.secType === "codeclassifysec") { |
| | | //分类码段 |
| | | this.form = Object.assign({}, this.form, { |
| | | codeSecLengthType: |
| | | row != null && row.codeSecLengthType != "" |
| | | ? row.codeSecLengthType |
| | | : "code_sec_length_variable", //码段长度类型 |
| | | codeSecLength: |
| | | row != null && row.codeSecLength != "" ? row.codeSecLength : "", //码段的长度 |
| | | matchClassifyValueFlag: |
| | | row != null && row.matchClassifyValueFlag != "" |
| | | ? row.matchClassifyValueFlag == "true" |
| | | ? true |
| | | : false |
| | | : false, //是否自动匹配值 |
| | | parentClassifySecOid: |
| | | row != null && row.parentClassifySecOid != "" |
| | | ? row.parentClassifySecOid |
| | | : "", //父分类码段选中的id |
| | | parentClassifySecText: |
| | | row != null && row.parentClassifySecText != "" |
| | | ? row.parentClassifySecText |
| | | : "", //父分类码段 |
| | | }); |
| | | this.loadCodeSecLength(); |
| | | } else if (this.form.secType === "codevariablesec") { |
| | | //可变码段 |
| | | this.form = Object.assign({}, this.form, { |
| | | codeSecLength: |
| | | row != null && row.codeSecLength != "" ? row.codeSecLength : "", //码段的长度 |
| | | codeFillType: |
| | | row != null && row.codeFillType != "" |
| | | ? row.codeFillType |
| | | : "code_fill_left", //编码部位方式,枚举查询 |
| | | // codeFillSeparatorSelect: row!=null&&row.codeFillSeparatorSelect != '' ? row.codeFillSeparatorSelect:0, //选中的补位时的字符的下标 |
| | | codeFillSeparator: |
| | | row != null && row.codeFillSeparator != "" |
| | | ? row.codeFillSeparator |
| | | : "0", //补位时的字符,可输可选查询 |
| | | }); |
| | | this.loadCodeFillType(); |
| | | this.loadCodeFillSeparator(); |
| | | } |
| | | }, |
| | | // 判断Boolean值是否为空,并且对str类型布尔值进行转换 |
| | | isNullJsonBoolean(row, form, attr) { |
| | | //console.log(row[attr],form[attr]); |
| | | if (row != null) { |
| | | return JSON.parse(row[attr]); |
| | | } else { |
| | | return form[attr]; |
| | | } |
| | | }, |
| | | /** 第一次请求的枚举数据放缓存*/ |
| | | getLocalStorageEnum(enumKey) { |
| | | let enumCach = JSON.parse(localStorage.getItem(enumKey)); |
| | | if (enumCach == null) { |
| | | getDictionary({code: enumKey}).then((res) => { |
| | | enumCach = res.data.data; |
| | | localStorage.setItem(enumKey, JSON.stringify(enumCach)); |
| | | }); |
| | | } |
| | | return enumCach; |
| | | }, |
| | | /** 统一加载所有枚举查询,主要是为避免切换码段类型时还未加载完成的情况*/ |
| | | loadTotalEnum() { |
| | | this.loadCodeSecType(); |
| | | this.loadCodeSecLength(); |
| | | this.loadCodeFillType(); |
| | | // this.loadCodeFillSeparator(); |
| | | this.loadCodeLevelType(); |
| | | this.loadCodeCutType(); |
| | | this.loadCodeGetValueType(); |
| | | }, |
| | | /** 枚举和可输可选内容查询 */ |
| | | loadCodeSecType() { |
| | | this.enumParam.secTypeList = this.getLocalStorageEnum("codeSecType") || []; |
| | | this.loadCodeSecLength(); |
| | | }, |
| | | loadCodeSecLength() { |
| | | this.enumParam.codeSecLengthType = this.getLocalStorageEnum("codeSecLength") || []; |
| | | }, |
| | | loadCodeFillType() { |
| | | this.enumParam.codeFillType = this.getLocalStorageEnum("codeFillType") || []; |
| | | }, |
| | | loadCodeFillSeparator() { |
| | | //let enumCach = JSON.parse(localStorage.getItem("codeFillSeparator")); |
| | | //if (enumCach == null) { |
| | | getSelectList({codeRuleId: this.selectionList[0].oid,chartType: "fillerChar"}).then((res) => { |
| | | this.enumParam.codeFillSeparator = res.data.data; |
| | | //console.log(this.enumParam.codeFillSeparator); |
| | | // localStorage.setItem( |
| | | // "codeFillSeparator", |
| | | // JSON.stringify(res.data.data) |
| | | // ); |
| | | }); |
| | | }, |
| | | loadCodeLevelType() { |
| | | this.enumParam.codeLevelType = this.getLocalStorageEnum("codeLevelType") || []; |
| | | }, |
| | | loadCodeCutType() { |
| | | this.enumParam.codeCutType = this.getLocalStorageEnum("codeCutType") || []; |
| | | }, |
| | | loadCodeGetValueType() { |
| | | this.enumParam.codeGetValueType = this.getLocalStorageEnum("codeGetValueType") || []; |
| | | }, |
| | | // 最大流水号 |
| | | maxSerialNum() { |
| | | if (this.selectionList.length <= 0) { |
| | | this.$message.warning("请选择一条编码规则!"); |
| | | return; |
| | | } |
| | | if (this.selectionList.length > 1) { |
| | | this.$message.warning("只能选择一条编码规则!"); |
| | | return; |
| | | } |
| | | this.maxSerial.visible = true; |
| | | this.maxSerial.ruleOid = this.selectionList[0]["oid"]; |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | | <style> |
| | | [class^="icon-"] { |
| | | font-size: 12px !important; |
| | | } |
| | | |
| | | .code-rule-crud > .avue-crud__search ,.code-basic-crud > .avue-crud__search { |
| | | margin-bottom: -15px; |
| | | } |
| | | |
| | | .code-rule-crud > .avue-crud__pagination { |
| | | padding: 14px 0 2px 20px; |
| | | } |
| | | .clone-input-textarea > .el-form-item__content { |
| | | width: 495px; |
| | | } |
| | | |
| | | .clone-input-textarea > .el-form-item__content { |
| | | width: 495px; |
| | | } |
| | | .clone-avue-crud > .el-card > .el-card__body > .avue-crud__menu { |
| | | display: none !important; |
| | | } |
| | | |
| | | .clone-avue-crud > .el-card > .el-card__body > .avue-crud__menu { |
| | | display: none!important; |
| | | } |
| | | .fixed-avue-crud > .el-card > .el-card__body > .avue-crud__menu { |
| | | display: none !important; |
| | | } |
| | | |
| | | .fixed-avue-crud > .el-card> .el-card__body > .avue-crud__menu { |
| | | display: none!important; |
| | | } |
| | | .other-clone-codebasic-crud > .el-card > .el-card__body > .avue-crud__menu { |
| | | display: none !important; |
| | | } |
| | | |
| | | .other-clone-codebasic-crud > .el-card> .el-card__body > .avue-crud__menu { |
| | | display: none!important; |
| | | } |
| | | .other-clone-coderule-crud > .el-card > .el-card__body > .avue-crud__menu { |
| | | display: none !important; |
| | | } |
| | | |
| | | .other-clone-coderule-crud > .el-card> .el-card__body > .avue-crud__menu { |
| | | display: none!important; |
| | | } |
| | | .el-table--small .el-table__cell { |
| | | padding: 3px 0; |
| | | } |
| | | |
| | | .el-table--small .el-table__cell { |
| | | padding: 3px 0; |
| | | } |
| | | .classify_value_box > .el-scrollbar { |
| | | height: 95%; |
| | | } |
| | | |
| | | .classify_value_box > .el-scrollbar { |
| | | height: 95%; |
| | | } |
| | | .basic-container > .el-card > .el-card__body { |
| | | margin: -10px 0; |
| | | } |
| | | |
| | | .basic-container > .el-card > .el-card__body { |
| | | margin: -10px 0; |
| | | } |
| | | .code-basicsec-container { |
| | | padding: 1px 6px; |
| | | } |
| | | |
| | | .code-basicsec-container{ |
| | | padding: 1px 6px; |
| | | } |
| | | .horizontal-line { |
| | | /* margin-top: 19px !important; */ |
| | | margin-bottom: -20px !important; |
| | | width: 100%; |
| | | height: 2px; |
| | | } |
| | | |
| | | .horizontal-line { |
| | | /* margin-top: 19px !important; */ |
| | | margin-bottom: -20px !important; |
| | | width: 100%; |
| | | height: 2px; |
| | | } |
| | | .el-card__body > .treeBox { |
| | | height: 56vh; |
| | | } |
| | | |
| | | .el-card__body > .treeBox { |
| | | height: 56vh; |
| | | } |
| | | .el-col-5 > .box { |
| | | height: 56vh; |
| | | } |
| | | |
| | | .el-col-5 > .box { |
| | | height: 56vh; |
| | | } |
| | | .operator_, |
| | | filter, |
| | | .layui-btn { |
| | | width: 60px; |
| | | } |
| | | |
| | | .operator_,filter, .layui-btn{ |
| | | width:60px; |
| | | } |
| | | .left > .el-form-item > .el-form-item__content > .el-input-number { |
| | | width: 120px; |
| | | } |
| | | |
| | | .left > .el-form-item > .el-form-item__content > .el-input-number { |
| | | width: 120px; |
| | | } |
| | | .left |
| | | > .el-form-item |
| | | > .el-form-item__content |
| | | > .el-input-number |
| | | > .el-input |
| | | > .el-input__inner { |
| | | width: 120px; |
| | | } |
| | | |
| | | .left > .el-form-item > .el-form-item__content > .el-input-number > .el-input > .el-input__inner { |
| | | width:120px; |
| | | } |
| | | .el-col > .el-card > .el-card__header { |
| | | background: rgb(213 231 239); |
| | | border-radius: inherit; |
| | | } |
| | | |
| | | .el-col>.el-card > .el-card__header { |
| | | background: rgb(213 231 239); |
| | | border-radius: inherit; |
| | | } |
| | | /** 新增码段 */ |
| | | .add-basicsec-dialog > .el-dialog > .el-dialog__body { |
| | | padding: 20px 20px 4px; |
| | | margin-bottom: 30px; |
| | | } |
| | | |
| | | /** 新增码段 */ |
| | | .add-basicsec-total { |
| | | width: 100%; |
| | | padding: 20px 0 0 0; |
| | | } |
| | | .add-basicsec-total { |
| | | width: 100%; |
| | | height: 500px; |
| | | } |
| | | |
| | | .add-basicsec-total .el-input__inner,.add-basicsec-total .el-textarea__inner { |
| | | width: 220px; |
| | | } |
| | | .add-basicsec-total .el-input__inner, |
| | | .add-basicsec-total .el-textarea__inner { |
| | | width: 220px; |
| | | } |
| | | |
| | | .add-basicsec-total > .add-basicsec-form { |
| | | display: flex; |
| | | flex-direction: row; |
| | | width: 100%; |
| | | height: 100%; |
| | | align-items: center; |
| | | justify-content: space-around; |
| | | } |
| | | .add-basicsec-total > .add-basicsec-form { |
| | | display: flex; |
| | | flex-direction: row; |
| | | width: 100%; |
| | | height: 100%; |
| | | align-items: center; |
| | | justify-content: space-around; |
| | | } |
| | | |
| | | .add-basicsec-form > .el-divider--vertical { |
| | | width: 2px; |
| | | height: 100%; |
| | | margin: 0 auto; |
| | | /* position: fixed; */ |
| | | } |
| | | .add-basicsec-form > .el-divider--vertical { |
| | | width: 2px; |
| | | height: 78%; |
| | | position: absolute; |
| | | top: 50%; |
| | | left: 50%; |
| | | transform: translate(-50%, -50%); |
| | | } |
| | | |
| | | .left { |
| | | /* float: left; */ |
| | | width: 45%; |
| | | height: 100%; |
| | | } |
| | | .left { |
| | | /* float: left; */ |
| | | width: 45%; |
| | | height: 100%; |
| | | } |
| | | |
| | | .right { |
| | | /* float: right; */ |
| | | margin-right: 2vw; |
| | | height: 100%; |
| | | width: auto; |
| | | } |
| | | .right { |
| | | /* float: right; */ |
| | | /* margin-right: 1vw; */ |
| | | height: 100%; |
| | | width: auto; |
| | | } |
| | | |
| | | .right > .el-form > .el-form-item{ |
| | | margin-bottom: 8px; |
| | | } |
| | | /* 对话框底部按钮边框样式 */ |
| | | .el-dialog__footer{ |
| | | /* width: 100%; */ |
| | | border-top: 1px solid #E9E7E7; |
| | | padding: 5px 10px 10px; |
| | | } |
| | | .add-basicsec-form > .left > .el-form-item, |
| | | .add-basicsec-form > .right > div > .el-form-item { |
| | | margin-bottom: 12px; |
| | | } |
| | | |
| | | .seloption{ |
| | | /* 对话框底部按钮边框样式 */ |
| | | .el-dialog__footer { |
| | | /* width: 100%; */ |
| | | border-top: 1px solid #e9e7e7; |
| | | padding: 5px 10px 10px; |
| | | } |
| | | |
| | | .seloption { |
| | | margin-left: 10px; |
| | | } |
| | | |
| | | /* .code-total > .basic-container__card { |
| | | height: 100%; |
| | | } */ |
| | | |
| | | </style> |