From 5ca05f604876cacca45e3bdfa9f54a997653da90 Mon Sep 17 00:00:00 2001 From: ludc Date: 星期三, 24 一月 2024 16:25:45 +0800 Subject: [PATCH] bug修改:290相似项查询sql拼接报错修改,291码值回收报错下标越界 --- Source/UBCS-WEB/src/views/code/code.vue | 245 +++++++++++++++++++++++++++++++++++------------- 1 files changed, 176 insertions(+), 69 deletions(-) diff --git a/Source/UBCS-WEB/src/views/code/code.vue b/Source/UBCS-WEB/src/views/code/code.vue index f3afcc9..3043cc7 100644 --- a/Source/UBCS-WEB/src/views/code/code.vue +++ b/Source/UBCS-WEB/src/views/code/code.vue @@ -404,9 +404,7 @@ margin-top: 20px; display: flex; align-items: center; - justify-content: center; - " - > + justify-content: center;"> <el-button class="button" icon="el-icon-circle-plus" @@ -642,19 +640,35 @@ <el-form-item :label-width="leftFormLabelWidth" label="鍓嶇紑:"> - <el-input + <!-- <el-input v-model="form.prefixCode" :readonly="basicSecOnlyRead" - ></el-input> + ></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-width="leftFormLabelWidth" label="鍚庣紑:"> - <el-input + <!-- <el-input v-model="form.suffixCode" :readonly="basicSecOnlyRead"> - </el-input> + </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-width="leftFormLabelWidth" label="鎻忚堪:"> @@ -838,13 +852,13 @@ :disabled="basicSecOnlyRead" filterable placeholder="璇烽�夋嫨" - @blur="inputSelectBlur" + clearable > <el-option v-for="item in enumParam.codeFillSeparator" - :key="item.dictKey" - :label="item.dictValue" - :value="item.dictValue" + :key="item.lable" + :label="item.lable" + :value="item.value" > </el-option> </el-select> @@ -911,6 +925,7 @@ v-model="form.codeLevelType" :disabled="basicSecOnlyRead" placeholder="璇烽�夋嫨" + @change="changeLevelType" > <el-option v-for="item in enumParam.codeLevelType" @@ -929,6 +944,7 @@ ref="codeLevelValue" v-model.number="form.codeLevelValue" :readonly="basicSecOnlyRead" + :disabled="form.codeLevelType != 'code_level_special'" ></el-input> </el-form-item> <el-form-item @@ -1142,13 +1158,13 @@ :disabled="basicSecOnlyRead" filterable placeholder="璇烽�夋嫨" - @blur="inputSelectBlur" + clearable > <el-option v-for="item in enumParam.codeFillSeparator" - :key="item.dictKey" - :label="item.dictValue" - :value="item.dictValue" + :key="item.lable" + :label="item.lable" + :value="item.value" > </el-option> </el-select> @@ -1290,8 +1306,7 @@ </refer-config-dialog> </el-dialog> - <!-- 鑷畾涔夋祦姘村弬鐓х粍浠�--> - + <!--鑷畾涔夋祦姘村弬鐓х粍浠�--> </basic-container> </template> @@ -1332,8 +1347,9 @@ 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 {getDictionaryBiz} from "@/api/system/dictbiz"; import optionBasic from "@/const/code/codebasic"; import optionRule from "@/const/code/mdmrule"; import attrOption from "@/const/code/selectAttrOptionDialog"; @@ -1357,7 +1373,28 @@ required: true, trigger: 'blur', validator: (rule, value, callback) => { - const Formats = ['yy', 'yyyy', 'yyyy-MM', 'yyyyMM','yyMM','yyyyMMdd','yyyyMMdd HH:mm:ss','yyMMdd HH:mm:ss','yy-MM', 'yyyy-MM-dd', 'yy-MM-dd', 'yyyy-MM-dd HH:mm:ss', 'yy-MM-dd HH:mm:ss', 'HH:mm:ss']; + 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锛堝苟鍖哄垎澶у皬鍐欙級锛�')); } @@ -1660,6 +1697,9 @@ //寮曠敤鐮佹涓弬鐓ч厤缃粍浠剁浉鍏冲弬鏁� referConfigOption: {}, referConfigVisble: false, + + preFixOrSuffixChars: [], //鍓嶅悗缂�瀛楃鍒楄〃 + }; }, computed: { @@ -1979,9 +2019,12 @@ this.codeFixdForm.codeFixedSecOid = row.codefixedsecoid; }, /** 鏂板鐮佸��*/ - addCodeSecValue(condition) { + 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; @@ -2006,6 +2049,9 @@ if (!this.tipsCodeSecValueMessage(this.codeClassifyForm.id)) { return; } + if(!await this.regexCharacter(this.codeClassifyForm.id)){ + return; + } this.codeClassifyForm.codeClassifySecOid = this.codefixedsecOrCodeclassifysec.oid; addSaveCodeClassifyValue(this.codeClassifyForm).then( @@ -2028,39 +2074,13 @@ ); } }, - /** 娓呯┖鐮佸�艰〃鍗� */ - 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; - }, /** 淇敼鐮佸�� */ - editCodeSecValue(condition) { + async editCodeSecValue(condition) { if (condition == "codefixedsec") { if (!this.tipsCodeSecValueMessage(this.codeFixdForm.id)) { + return; + } + if(!await this.regexCharacter(this.codeFixdForm.id)){ return; } //浠ュ墠鏄洿鎺ユ妸褰撳墠閫変腑琛岀殑鎵�鏈夋暟鎹兘杩涜鎻愪氦锛屼絾鍏跺疄鍙渶瑕佷紶杈撲竴浜涘繀瑕佸弬鏁板嵆鍙紝杩欏効鍋氫簡淇敼锛岄渶瑕佷紶鍏朵粬鍙傛暟鐨勮鑷娣诲姞 @@ -2090,6 +2110,9 @@ if (!this.tipsCodeSecValueMessage(this.codeClassifyForm.id)) { return; } + if(!await this.regexCharacter(this.codeClassifyForm.id)){ + return; + } this.codeClassifyForm.oid = this.selectedFixedOrCodeclassifyValue.attributes.oid; // 鍒嗙被鐮佹锛屽瓙鍒嗙被鍜岀埗鍒嗙被涔嬮棿涓嶈兘鐩镐簰鏇存敼 @@ -2117,6 +2140,54 @@ } ); } + }, + /** + * 鍙敤瀛楃闆嗙爜鍊兼鍒欐牎楠� + * @return true:婊¤冻闄愬埗锛宖alse锛氫笉婊¤冻闄愬埗 + */ + 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) { @@ -2313,7 +2384,6 @@ }, /** 涓婄Щ涓嬬Щ绛夋搷浣滅殑淇濆瓨*/ async saveCodeFixedOrClassifyValueOption(condition, editOrderNumdata) { - //淇濆瓨瀵瑰浐瀹氱爜娈电爜鍊肩殑涓婄Щ涓嬬Щ绉诲嚭绛夋搷浣� if (condition == "fixedValue") { let data = { @@ -2511,8 +2581,8 @@ /** 鍙戝竷缂栫爜瑙勫垯 */ async enableOrDeactivatse(oid, update) { if (update === "release") { - this.releadDisabled = true; // 閬垮厤鐢ㄦ埛閲嶅鐐瑰嚮鎸夐挳 + this.releadDisabled = true; await checkLikeCodeRule(oid) .then((res) => { //console.log(res) @@ -2788,15 +2858,21 @@ //console.log(this.form); //涓篺orm缁戝畾鍊� 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() { - const Formats = ['yy', 'yyyy', 'yyyy-MM', 'yyyyMM','yyMM','yyyyMMdd','yyyyMMdd HH:mm:ss','yyMMdd HH:mm:ss','yy-MM', 'yyyy-MM-dd', 'yy-MM-dd', 'yyyy-MM-dd HH:mm:ss', 'yy-MM-dd HH:mm:ss', 'HH:mm:ss']; - if (!Formats.includes(this.form.codeDateFormatStr)) { - this.$message.error('璇锋鏌ユ棩鏈熸牸寮忥紒'); - return; - } if ( this.selectionList[0].oid == null || this.selectionList[0].oid == "" @@ -2816,7 +2892,7 @@ type: "success", message: "鎿嶄綔鎴愬姛!", }); - console.log(this.form) + // console.log(this.form) // 鍏抽棴瀵硅瘽妗� this.addBasicCodeSettingBox = false; // 鐐瑰嚮鏂板鍩虹鐮佹,鍏抽棴绐楀彛涔嬪悗瑙﹀彂閲嶆柊鍔犺浇 @@ -3022,6 +3098,32 @@ 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 == "") { @@ -3066,6 +3168,12 @@ } } return true; + }, + /** 灞傜骇鐮佹閫夋嫨涓烘渶灏忓眰绾ф椂娓呯┖灞傜骇鐨勫�� */ + changeLevelType(){ + if(this.form.codeLevelType === 'code_level_min'){ + this.form.codeLevelValue = ''; + } }, /** 鍒ゆ柇鏁版嵁鏄惁閫夋嫨浠ュ強鍙兘閫夋嫨鍗曟潯鏁版嵁*/ tipsMessage(list) { @@ -3294,12 +3402,12 @@ this.form.referConfig = ""; } }, - /** 琛ヤ綅鏃剁殑瀛楃锛屽疄鐜板彲杈撳彲閫�*/ - inputSelectBlur(e) { + /** 琛ヤ綅鏃剁殑瀛楃锛屽疄鐜板彲杈撳彲閫� TODO:鍥犱负澧炲姞浜嗗彲鐢ㄥ瓧绗﹂泦鎺у埗锛屾墍浠ヨ繖鍎垮純鐢ㄤ簡鍙敤瀛楃闆嗙殑鏁堟灉*/ + /*inputSelectBlur(e) { if (e.target.value) { this.form.codeFillSeparator = e.target.value; } - }, + },*/ /** 鐮佹绫诲瀷鏀瑰彉鏃讹紝澧炲姞瀵瑰簲鐨刦orm琛ㄥ崟涓殑灞炴��*/ changeSectypeFormItems(row) { //console.log(row) @@ -3492,7 +3600,7 @@ if (enumCach == null) { getDictionary({code: enumKey}).then((res) => { enumCach = res.data.data; - localStorage.setItem(enumKey, JSON.stringify(res.data.data)); + localStorage.setItem(enumKey, JSON.stringify(enumCach)); }); } return enumCach; @@ -3502,7 +3610,7 @@ this.loadCodeSecType(); this.loadCodeSecLength(); this.loadCodeFillType(); - this.loadCodeFillSeparator(); + // this.loadCodeFillSeparator(); this.loadCodeLevelType(); this.loadCodeCutType(); this.loadCodeGetValueType(); @@ -3521,15 +3629,14 @@ loadCodeFillSeparator() { //let enumCach = JSON.parse(localStorage.getItem("codeFillSeparator")); //if (enumCach == null) { - getDictionaryBiz({code: "codeFillSeparator"}).then((res) => { + 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) - ); + // localStorage.setItem( + // "codeFillSeparator", + // JSON.stringify(res.data.data) + // ); }); - //} }, loadCodeLevelType() { this.enumParam.codeLevelType = this.getLocalStorageEnum("codeLevelType") || []; -- Gitblit v1.9.3