From 549a2335f5dfa2574b82cc9a8e65cdd7a4c9841b Mon Sep 17 00:00:00 2001 From: danshihao Date: Wed, 15 Nov 2023 11:10:49 +0800 Subject: [PATCH] =?UTF-8?q?update=20=E6=A0=A1=E9=AA=8C=E9=87=8D=E5=A4=8D?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 13 +++-- src/utils/util.js | 51 ++++++++++++++++++- .../modules/SysMessageTemplateModal.vue | 7 ++- src/views/system/modules/RoleModal.vue | 7 ++- .../system/modules/SysCheckRuleModal.vue | 2 +- .../system/modules/SysDataSourceModal.vue | 2 +- src/views/system/modules/SysFillRuleModal.vue | 4 +- src/views/system/modules/UserModal.vue | 21 +++++--- .../system/tags/modules/TagContentModal.vue | 7 ++- 9 files changed, 90 insertions(+), 24 deletions(-) diff --git a/README.md b/README.md index 4cb1936b..f61f0b55 100644 --- a/README.md +++ b/README.md @@ -137,10 +137,11 @@ yarn run lint 重复校验效果: ![输入图片说明](https://static.oschina.net/uploads/img/201904/19191836_eGkQ.png "在这里输入图片标题") -1.引入排重接口,代码如下: +1.引入排重接口,以及获取混淆code方法,代码如下: ``` import { duplicateCheck } from '@/api/api' +import { getConfusionCode } from '@/utils/util' ``` 2.找到编码必填校验规则的前端代码,代码如下: @@ -155,10 +156,11 @@ code: { }, ``` 3.找到rules里validator对应的方法在哪里,然后使用第一步中引入的排重校验接口. -以用户online表单编码为示例,其中四个必传的参数有: +以用户online表单编码为示例,其中三个必传的参数有: ``` - {tableName:表名,fieldName:字段名,fieldVal:字段值,dataId:表的主键}, + {confusionCode:混淆code,fieldVal:字段值,dataId:表的主键, + encrypt:是否数据库中加密(不加密不传该参数)}, ``` 具体使用代码如下: @@ -168,9 +170,10 @@ code: { if(!pattern.test(value)){ callback('编码必须以字母开头,可包含数字、下划线、横杠'); } else { + var confusionCode = getConfusionCode('tableName', 'fieldName') var params = { - tableName: "onl_cgreport_head", - fieldName: "code", + // encrypt: 1, // 数据库中是加密的信息,就要传该参数,否则不传 + confusionCode, fieldVal: value, dataId: this.model.id }; diff --git a/src/utils/util.js b/src/utils/util.js index d8393ffa..69723f8c 100644 --- a/src/utils/util.js +++ b/src/utils/util.js @@ -343,9 +343,14 @@ export function jsExpand (options = {}) { * @param dataId 数据ID,可空 * @param callback */ -export function validateDuplicateValue (tableName, fieldName, fieldVal, dataId, callback) { +export function validateDuplicateValue (isEncrypt, tableName, fieldName, fieldVal, dataId, callback) { if (fieldVal) { - const params = { tableName, fieldName, fieldVal, dataId } + const confusionCode = getConfusionCode(tableName, fieldName) + const params = { confusionCode, fieldVal, dataId } + // 是否数据库中存储的加密信息 + if (isEncrypt) { + params.encrypt = 1 + } api.duplicateCheck(params).then(res => { res.success ? callback() : callback(res.message) }).catch(err => { @@ -622,3 +627,45 @@ export function urlToParams (url) { }) return paramsObj } + +/** + * 重复校验:表名和字段名获取混淆code + * @param tableName + * @param fieldName + * @return {string} + */ +export function getConfusionCode (tableName, fieldName) { + // map对象对应数据库中 sys_confusion 表 + const map = { + sys_user: { + username: 'sys_username', + phone: 'user_phone', + email: 'user_email' + }, + sys_role: { + role_code: 'sys_rolecode' + }, + sys_dict: { + dict_code: 'sys_dictcode' + }, + sys_depart: { + depart_name: 'depart_name' + }, + sys_check_rule: { + rule_code: 'check_rule_code' + }, + sys_data_source: { + code: 'data_source_code' + }, + sys_fill_rule: { + rule_code: 'fill_rule_code' + }, + sys_sms_template: { + template_code: 'sms_template_code' + } + } + if (map[tableName] && map[tableName][fieldName]) { + return map[tableName][fieldName] + } + return '' +} diff --git a/src/views/modules/message/modules/SysMessageTemplateModal.vue b/src/views/modules/message/modules/SysMessageTemplateModal.vue index 63cf6a22..82dbe3f0 100644 --- a/src/views/modules/message/modules/SysMessageTemplateModal.vue +++ b/src/views/modules/message/modules/SysMessageTemplateModal.vue @@ -83,6 +83,7 @@ import { httpAction } from '@/api/manage' import pick from 'lodash.pick' import { duplicateCheck } from '@/api/api' +import { getConfusionCode } from '@/utils/util' export default { name: 'SysMessageTemplateModal', @@ -184,9 +185,11 @@ export default { }) }, validateTemplateCode (rule, value, callback) { + const confusionCode = getConfusionCode('sys_sms_template', 'template_code') const params = { - tableName: 'sys_sms_template', - fieldName: 'template_code', + // tableName: 'sys_sms_template', + // fieldName: 'template_code', + confusionCode, fieldVal: value, dataId: this.model.id } diff --git a/src/views/system/modules/RoleModal.vue b/src/views/system/modules/RoleModal.vue index b7754ef5..257ccd52 100644 --- a/src/views/system/modules/RoleModal.vue +++ b/src/views/system/modules/RoleModal.vue @@ -29,6 +29,7 @@