@ditari/bsui 1.1.19 → 1.1.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @ditari/bsui
2
2
 
3
+ ## 1.1.20
4
+
5
+ ### Patch Changes
6
+
7
+ - 1.脱敏组件添加正则属性
8
+
3
9
  ## 1.1.19
4
10
 
5
11
  ### Patch Changes
@@ -25,11 +25,21 @@ var Desensitize = /* @__PURE__ */ vue.defineComponent({
25
25
  type: String,
26
26
  default: "*"
27
27
  },
28
- // 替换位置
28
+ // 替换规则 id 和mobile
29
29
  rule: {
30
30
  type: String,
31
31
  required: true
32
32
  },
33
+ // 正则表达式
34
+ regex: {
35
+ type: String,
36
+ default: ""
37
+ },
38
+ // 替换方式
39
+ regexValue: {
40
+ type: String,
41
+ default: ""
42
+ },
33
43
  eye: {
34
44
  type: Boolean,
35
45
  default: false
@@ -40,13 +50,25 @@ var Desensitize = /* @__PURE__ */ vue.defineComponent({
40
50
  const desensitizedString = vue.computed(() => {
41
51
  const value = props.value;
42
52
  const rule = props.rule;
43
- if (rule === "mobile") {
44
- return value.replace(/(\d{3})\d{4}(\d{4})/, "$1 * * * * $2");
45
- } else if (rule === "id") {
46
- return value.replace(/(\d{4})\d{10}(\w{4})/, "$1 * * * * * $2");
53
+ const regex = props.regex;
54
+ const regexValue = props.regexValue;
55
+ let str = "";
56
+ if (!value) {
57
+ return "";
58
+ }
59
+ if (rule) {
60
+ switch (rule) {
61
+ case "mobile":
62
+ str = value.replace(/(\d{3})\d{4}(\d{4})/, "$1*****$2");
63
+ break;
64
+ case "id":
65
+ str = value.replace(/(\d{4})\d{10}(\w{4})/, "$1*****$2");
66
+ break;
67
+ }
47
68
  } else {
48
- return value;
69
+ str = value.replace(regex, regexValue);
49
70
  }
71
+ return str;
50
72
  });
51
73
  return () => vue.createVNode(vue.Fragment, null, [vue.createVNode("div", {
52
74
  "class": baseClassName
@@ -1 +1 @@
1
- {"version":3,"file":"Desensitize.cjs","sources":["../../../src/desensitize/Desensitize.tsx"],"sourcesContent":["/**\n * 脱敏\n * @author 余春林\n */\nimport { defineComponent, computed, ref } from \"vue\";\nimport { EyeOutlined, EyeInvisibleOutlined } from \"@ant-design/icons-vue\";\nimport { prefixName } from \"../theme\";\n\n//class名称\nconst baseClassName = `${prefixName}-desensitize`;\nexport default defineComponent({\n name: \"DDesensitize\",\n components: {\n EyeOutlined,\n EyeInvisibleOutlined\n },\n props: {\n value: {\n // type: [string,number] 可以使用PropType 来声明对象类型\n // type: String as () => string | number,\n type: String,\n required: true\n },\n // 替换样式\n style: {\n type: String,\n default: \"*\"\n },\n // 替换位置\n rule: {\n type: String,\n required: true\n },\n eye: {\n type: Boolean,\n default: false\n }\n },\n setup(props) {\n // 控制显示隐藏脱敏或者不脱敏\n const invisible = ref(true);\n const desensitizedString = computed(() => {\n const value = props.value;\n const rule = props.rule;\n if (rule === \"mobile\") {\n return value.replace(/(\\d{3})\\d{4}(\\d{4})/, \"$1 * * * * $2\");\n } else if (rule === \"id\") {\n return value.replace(/(\\d{4})\\d{10}(\\w{4})/, \"$1 * * * * * $2\");\n } else {\n return value;\n }\n });\n return () => (\n <>\n <div class={baseClassName}>\n <span class={\"value\"}>\n {invisible.value ? desensitizedString.value : props.value}\n </span>\n {props.eye ? (\n <span>\n <eye-outlined\n onClick={() => (invisible.value = !invisible.value)}\n v-show={!invisible.value}\n />\n <eye-invisible-outlined\n onClick={() => (invisible.value = !invisible.value)}\n v-show={invisible.value}\n />\n </span>\n ) : undefined}\n </div>\n </>\n );\n }\n});\n"],"names":["baseClassName","prefixName","defineComponent","name","components","EyeOutlined","EyeInvisibleOutlined","props","value","type","String","required","style","default","rule","eye","Boolean","setup","invisible","ref","desensitizedString","computed","replace","_createVNode","_Fragment","_withDirectives","_resolveComponent","onClick","_vShow","undefined"],"mappings":";;;;;;;;AASA,MAAMA,aAAAA,GAAiB,GAAEC,gBAAW,CAAA,YAAA,CAAA,CAAA;AACpC,kCAA+BC,mBAAA,CAAA;AAAA,EAC7BC,IAAM,EAAA,cAAA;AAAA,EACNC,UAAY,EAAA;AAAA,iBACVC,oBAAAA;AAAAA,0BACAC,6BAAAA;AAAAA,GACF;AAAA,EACAC,KAAO,EAAA;AAAA,IACLC,KAAO,EAAA;AAAA;AAAA;AAAA,MAGLC,IAAMC,EAAAA,MAAAA;AAAAA,MACNC,QAAU,EAAA,IAAA;AAAA,KACZ;AAAA;AAAA,IAEAC,KAAO,EAAA;AAAA,MACLH,IAAMC,EAAAA,MAAAA;AAAAA,MACNG,OAAS,EAAA,GAAA;AAAA,KACX;AAAA;AAAA,IAEAC,IAAM,EAAA;AAAA,MACJL,IAAMC,EAAAA,MAAAA;AAAAA,MACNC,QAAU,EAAA,IAAA;AAAA,KACZ;AAAA,IACAI,GAAK,EAAA;AAAA,MACHN,IAAMO,EAAAA,OAAAA;AAAAA,MACNH,OAAS,EAAA,KAAA;AAAA,KACX;AAAA,GACF;AAAA,EACAI,MAAMV,KAAO,EAAA;AAEX,IAAMW,MAAAA,SAAAA,GAAYC,QAAI,IAAI,CAAA,CAAA;AAC1B,IAAMC,MAAAA,kBAAAA,GAAqBC,aAAS,MAAM;AACxC,MAAA,MAAMb,QAAQD,KAAMC,CAAAA,KAAAA,CAAAA;AACpB,MAAA,MAAMM,OAAOP,KAAMO,CAAAA,IAAAA,CAAAA;AACnB,MAAA,IAAIA,SAAS,QAAU,EAAA;AACrB,QAAON,OAAAA,KAAAA,CAAMc,OAAQ,CAAA,qBAAA,EAAuB,eAAe,CAAA,CAAA;AAAA,OAC7D,MAAA,IAAWR,SAAS,IAAM,EAAA;AACxB,QAAON,OAAAA,KAAAA,CAAMc,OAAQ,CAAA,sBAAA,EAAwB,iBAAiB,CAAA,CAAA;AAAA,OACzD,MAAA;AACL,QAAOd,OAAAA,KAAAA,CAAAA;AAAAA,OACT;AAAA,KACD,CAAA,CAAA;AACD,IAAA,OAAO,MAAAe,eAAAC,CAAAA,YAAAA,SAAAD,gBAAA,KAAA,EAAA;AAAA,MAAA,OAESvB,EAAAA,aAAAA;AAAAA,KAAa,EAAA,CAAAuB,eAAAA,CAAA,MAAA,EAAA;AAAA,MAAA,OACV,EAAA,OAAA;AAAA,KAAO,EACjBL,CAAAA,SAAUV,CAAAA,KAAAA,GAAQY,mBAAmBZ,KAAQD,GAAAA,KAAAA,CAAMC,KAAK,IAE1DD,MAAMQ,GAAGQ,GAAAA,eAAAA,gBAAAE,mBAAAF,eAAAG,CAAAA,oBAAAA,CAAA,cAAA,CAAA,EAAA;AAAA,MAAA,SAGKC,EAAAA,MAAOT,SAAUV,CAAAA,KAAAA,GAAQ,CAACU,SAAUV,CAAAA,KAAAA;AAAAA,OAAMoB,IAAAA,CAAAA,EAAAA,CAAAA,CAAAA,WAC3C,CAACV,SAAAA,CAAUV,KAAK,CAAA,CAAA,CAAAiB,EAAAA,kBAAAA,CAAAF,eAAAG,CAAAA,oBAAAA,CAAA,wBAAA,CAAA,EAAA;AAAA,MAAA,SAGfC,EAAAA,MAAOT,SAAUV,CAAAA,KAAAA,GAAQ,CAACU,SAAUV,CAAAA,KAAAA;AAAAA,OAAM,IAAA,CAAA,EAAA,CAAA,CAAAoB,WAC3CV,SAAUV,CAAAA,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,GAGzBqB,KAAS,CAAA,CAGlB,CAAA,CAAA,CAAA,CAAA;AAAA,GACH;AACF,CAAC,CAAA;;;;"}
1
+ {"version":3,"file":"Desensitize.cjs","sources":["../../../src/desensitize/Desensitize.tsx"],"sourcesContent":["/**\n * 脱敏\n * @author 余春林\n */\nimport { defineComponent, computed, ref } from \"vue\";\nimport { EyeOutlined, EyeInvisibleOutlined } from \"@ant-design/icons-vue\";\nimport { prefixName } from \"../theme\";\n\n//class名称\nconst baseClassName = `${prefixName}-desensitize`;\nexport default defineComponent({\n name: \"DDesensitize\",\n components: {\n EyeOutlined,\n EyeInvisibleOutlined\n },\n props: {\n value: {\n // type: [string,number] 可以使用PropType 来声明对象类型\n // type: String as () => string | number,\n type: String,\n required: true\n },\n // 替换样式\n style: {\n type: String,\n default: \"*\"\n },\n // 替换规则 id 和mobile\n rule: {\n type: String,\n required: true\n },\n // 正则表达式\n regex: {\n type: String,\n default: \"\"\n },\n // 替换方式\n regexValue: {\n type: String,\n default: \"\"\n },\n eye: {\n type: Boolean,\n default: false\n }\n },\n setup(props) {\n // 控制显示隐藏脱敏或者不脱敏\n const invisible = ref(true);\n const desensitizedString = computed(() => {\n const value = props.value;\n const rule = props.rule;\n const regex = props.regex;\n const regexValue = props.regexValue;\n let str = \"\";\n if (!value) {\n return \"\";\n }\n if (rule) {\n switch (rule) {\n case \"mobile\":\n str = value.replace(/(\\d{3})\\d{4}(\\d{4})/, \"$1*****$2\");\n break;\n case \"id\":\n str = value.replace(/(\\d{4})\\d{10}(\\w{4})/, \"$1*****$2\");\n break;\n }\n } else {\n str = value.replace(regex, regexValue);\n }\n return str;\n });\n return () => (\n <>\n <div class={baseClassName}>\n <span class={\"value\"}>\n {invisible.value ? desensitizedString.value : props.value}\n </span>\n {props.eye ? (\n <span>\n <eye-outlined\n onClick={() => (invisible.value = !invisible.value)}\n v-show={!invisible.value}\n />\n <eye-invisible-outlined\n onClick={() => (invisible.value = !invisible.value)}\n v-show={invisible.value}\n />\n </span>\n ) : undefined}\n </div>\n </>\n );\n }\n});\n"],"names":["baseClassName","prefixName","defineComponent","name","components","EyeOutlined","EyeInvisibleOutlined","props","value","type","String","required","style","default","rule","regex","regexValue","eye","Boolean","setup","invisible","ref","desensitizedString","computed","str","replace","_createVNode","_Fragment","_withDirectives","_resolveComponent","onClick","_vShow","undefined"],"mappings":"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"}
@@ -11,6 +11,14 @@ declare const _default: import("vue").DefineComponent<{
11
11
  type: StringConstructor;
12
12
  required: true;
13
13
  };
14
+ regex: {
15
+ type: StringConstructor;
16
+ default: string;
17
+ };
18
+ regexValue: {
19
+ type: StringConstructor;
20
+ default: string;
21
+ };
14
22
  eye: {
15
23
  type: BooleanConstructor;
16
24
  default: boolean;
@@ -28,12 +36,22 @@ declare const _default: import("vue").DefineComponent<{
28
36
  type: StringConstructor;
29
37
  required: true;
30
38
  };
39
+ regex: {
40
+ type: StringConstructor;
41
+ default: string;
42
+ };
43
+ regexValue: {
44
+ type: StringConstructor;
45
+ default: string;
46
+ };
31
47
  eye: {
32
48
  type: BooleanConstructor;
33
49
  default: boolean;
34
50
  };
35
51
  }>>, {
36
52
  style: string;
53
+ regex: string;
54
+ regexValue: string;
37
55
  eye: boolean;
38
56
  }, {}>;
39
57
  export default _default;
@@ -1 +1 @@
1
- .ditari-bsui-desensitize .value{padding:0 4px}
1
+ .ditari-bsui-desensitize{display:inline-block}.ditari-bsui-desensitize .value{padding:0 4px}
@@ -1 +1 @@
1
- .ditari-bsui-grid{position:relative;display:grid}.ditari-bsui-grid .ditari-bsui-grid--item{border:1px solid #4e4e4e;margin-left:-1px;margin-top:-1px}.ditari-bsui-grid-form .ant-form-item{margin-bottom:0;height:100%}.ditari-bsui-grid-form .ant-form-item .ant-form-item-label{border-right:1px solid #4e4e4e}.ditari-bsui-grid-form .ant-form-item .ant-input,.ditari-bsui-grid-form .ant-form-item .ant-select-selector,.ditari-bsui-grid-form .ant-form-item .ant-input-number{border:0;border-radius:0}.ditari-bsui-grid-form .ant-form-item .ant-input:focus,.ditari-bsui-grid-form .ant-form-item .ant-select-selector:focus,.ditari-bsui-grid-form .ant-form-item .ant-input-number:focus{box-shadow:0 0 0 2px #1890ff}.ditari-bsui-grid-form .ant-form-item .ant-input .ant-input-number-input,.ditari-bsui-grid-form .ant-form-item .ant-select-selector .ant-input-number-input,.ditari-bsui-grid-form .ant-form-item .ant-input-number .ant-input-number-input{border:0;border-radius:0}.ditari-bsui-grid-form .ant-form-item .ant-input .ant-input-number-input:focus,.ditari-bsui-grid-form .ant-form-item .ant-select-selector .ant-input-number-input:focus,.ditari-bsui-grid-form .ant-form-item .ant-input-number .ant-input-number-input:focus{box-shadow:0 0 0 2px #1890ff}.ditari-bsui-grid-form .ant-form-item .ant-input[disabled]{color:#525252}.ditari-bsui-grid-form .ant-form-item-has-error .ant-form-item-explain{display:block}.ditari-bsui-grid-form .ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector{box-shadow:0 0 0 2px #1890ff}.ditari-bsui-grid-form .ant-form-item-has-error :not(.ant-input-disabled):not(.ant-input-borderless).ant-input:focus{box-shadow:0 0 0px 2px red;border-radius:0}.ditari-bsui-grid-form .ant-form-item-has-error :not(.ant-input-disabled):not(.ant-input-borderless).ant-input{box-shadow:0 0 0px 2px #ff4d4f}.ditari-menu{height:calc(100vh - 240px - 0px);overflow:scroll}.ditari-menu::-webkit-scrollbar{width:0 !important;display:none}.ditari-layout-sider{background-color:#162157}.ditari-layout-sider .ant-menu-dark{background-color:#162157}.ditari-layout-sider .ant-menu-dark .ant-menu-inline.ant-menu-sub{background-color:#101847}.ditari-bsui-breadcrumb .ant-breadcrumb-separator{display:none}.ditari-bsui-breadcrumb .breadcrumb{display:flex}.ditari-bsui-breadcrumb .breadcrumb .breadcrumb-item{color:#333}.ditari-bsui-breadcrumb .breadcrumb .breadcrumb-item:first-child .breadcrumb-link{border-radius:6px 0 0 6px;clip-path:polygon(0 0, calc(100% - 8px) 0, 100% 50%, calc(100% - 8px) 100%, 0 100%)}.ditari-bsui-breadcrumb .breadcrumb .breadcrumb-item:last-child:not(:first-child) .breadcrumb-link{border-radius:0 6px 6px 0;clip-path:polygon(0 0, 100% 0, 100% 100%, 0 100%, 8px 50%)}.ditari-bsui-breadcrumb .breadcrumb-link{display:block;padding:4px 12px;background:#f0f2f5;clip-path:polygon(0 0, calc(100% - 8px) 0, 100% 50%, calc(100% - 8px) 100%, 0 100%, 8px 50%)}.ditari-bsui-breadcrumb a.breadcrumb-link{color:#2589ff}.breadcrumb-enter-active{transition:all .25s}.breadcrumb-enter-from,.breadcrumb-leave-active{opacity:0;transform:translateX(30px) skewX(-50deg)}.ditari-list-layout{padding:20px;height:100%}.ditari-list-layout .wrapper{display:flex;flex-direction:column}.ditari-list-layout .ditari-list-table{flex:1}.ditari-list-layout .ditari-list-table .ant-card-body{display:flex;flex-direction:column;height:100%}.ditari-list-layout .ditari-list-form .ant-card-body{padding-bottom:0}.ditari-list-layout .wrapper{height:100%}.ditari-ant-back-top{right:4px;bottom:120px}.ditari-layout{height:100%}.ditari-layout .ditari-layout-sider{position:fixed;left:0;top:0;bottom:0;z-index:1}.ditari-layout .ditari-top-layout{position:fixed;left:200px;right:0;z-index:210}.ditari-layout .ditari-layout-content{margin-left:200px;margin-top:84px}.fade-enter-active,.fade-leave-active{transition:opacity .1s ease}.fade-enter-from,.fade-leave-to{opacity:0}.main-enter-active{transition:.2s}.main-leave-active{transition:.15s}.main-enter-from{opacity:0;margin-left:-20px}.main-leave-to{opacity:0;margin-left:20px}.ditari-layout-header{display:flex;justify-content:space-between;align-items:center;padding:0 15px;height:42px;border-bottom:1px solid #f0f2f5;background-color:#fff}.ditari-layout-header .ditari-layout-header-left{display:flex;justify-content:center}.ditari-layout-header .ditari-layout-header-left .ditari-side-collapsed{margin-right:20px;cursor:pointer;width:42px;line-height:30px;text-align:center;transition-duration:.2s}.ditari-layout-header .ditari-layout-header-left .ditari-side-collapsed:hover{background-color:#f0f2f5;border-radius:4px}.ditari-layout-header .ditari-layout-header-left .ditari-side-collapsed .icon{transition-duration:.2s}.ditari-user-menu{display:flex;align-items:center;height:100%}.ditari-user-menu .ditari-operation-items{margin-left:10px;height:100%}.ditari-user-menu .ditari-operation-items .ant-dropdown-link{display:flex;align-items:center;justify-content:center;height:100%}.collapsed-animation{transform:rotate(-180deg)}.ditari-bsui-nav{display:flex;background:linear-gradient(270deg, #019cfe 0%, #0165fe 100%)}.ditari-bsui-nav .ant-tabs-nav{margin:0}.ditari-bsui-nav .ant-tabs-content-holder{display:none}.ditari-bsui-nav .ant-tabs-nav-list{padding-right:30px}.ditari-bsui-nav .ant-tabs-tab{position:relative;margin-left:0 !important;border:0 !important;transition:none !important;border-radius:10px 10px 0 0 !important;color:#fff}.ditari-bsui-nav .ant-tabs-tab:first-child .tab-dividers::before,.ditari-bsui-nav .ant-tabs-tab.ant-tabs-tab-active .tab-dividers::before{opacity:0}.ditari-bsui-nav .ant-tabs-tab.ant-tabs-tab-active{background-color:#fff}.ditari-bsui-nav .ant-tabs-tab.ant-tabs-tab-active .tab-item{color:#0065b3}.ditari-bsui-nav .ant-tabs-tab:not(.ant-tabs-tab-active){background:rgba(0,0,0,0)}.ditari-bsui-nav .ant-tabs-tab:hover:not(.ant-tabs-tab-active){background:#065de1}.ditari-bsui-nav .ant-tabs-tab:hover:not(.ant-tabs-tab-active) .tab-dividers::before{opacity:0}.ditari-bsui-nav .ant-tabs-tab:hover:not(.ant-tabs-tab-active)+.ant-tabs-tab .tab-dividers::before{opacity:0}.ditari-bsui-nav .ant-tabs-tab .ant-tabs-tab-btn{display:flex;align-items:center}.ditari-bsui-nav .ant-tabs-tab .tab-close{padding:4px;margin-left:10px;display:flex;align-items:center;justify-content:center;border-radius:50%}.ditari-bsui-nav .ant-tabs-tab .tab-close:hover{background-color:#63aeff;color:#fff}.ditari-bsui-nav .ant-tabs-tab .tab-close .anticon{margin:0}.ditari-bsui-nav .ant-tabs-tab-active+.ant-tabs-tab .tab-dividers::before{opacity:0}.ditari-bsui-nav .ant-tabs-nav-wrap{padding:4px 8px 0}.ditari-bsui-nav .ant-tabs-nav::before{border-bottom-width:0}.ditari-bsui-nav .ant-tabs-tab::before,.ditari-bsui-nav .ant-tabs-tab::after{position:absolute;bottom:0;content:"";width:20px;height:20px;border-radius:100%;box-shadow:0 0 0 40px rgba(0,0,0,0)}.ditari-bsui-nav .ant-tabs-tab::before{left:-20px;clip-path:inset(50% -10px 0 50%)}.ditari-bsui-nav .ant-tabs-tab::after{right:-20px;clip-path:inset(50% 50% 0 -10px)}.ditari-bsui-nav .ant-tabs-tab:hover::before,.ditari-bsui-nav .ant-tabs-tab:hover::after{box-shadow:0 0 0 30px #065de1}.ditari-bsui-nav .ant-tabs-tab.ant-tabs-tab-active::before,.ditari-bsui-nav .ant-tabs-tab.ant-tabs-tab-active::after{z-index:10;box-shadow:0 0 0 30px #fff}.ditari-bsui-nav .tab-dividers{position:absolute;z-index:0;height:14px;top:50%;left:0;margin-top:-7px}.ditari-bsui-nav .tab-dividers::before{content:"";display:block;position:absolute;top:0;left:1px;bottom:0;width:1px;opacity:1;background-color:#fff;transition:opacity .2s ease,background-color .3s}.ditari-show-layout{position:relative}.ditari-show-layout .ant-card{margin-bottom:10px}.ditari-show-layout .ant-card .ant-card-head{padding:10px 24px}.ditari-show-layout .ant-card .ant-card-head .ant-card-head-title{padding:0}.ditari-show-layout .ant-card:last-child{margin-bottom:0}.ditari-show-layout .ditari-page-header{position:sticky;top:84px;z-index:10;padding:4px 24px;transition:all .3s}.ditari-show-layout .ditari-page-header.active{box-shadow:7px 12px 20px 0 #e0e0e0}.ditari-show-layout .ditari-show-footer{position:fixed;right:0;bottom:0;left:200px;z-index:10;padding:10px;background:#fff;box-shadow:4px -2px 5px 3px #e0e0e0}.ditari-fuck-top-layout{position:fixed;left:200px;right:0;z-index:210;display:flex;background:linear-gradient(270deg, #019cfe 0%, #0165fe 100%)}.ditari-fuck-top-layout .ditari-bsui-nav{flex:1;min-width:0}.ditari-fuck-top-layout .ditari-side-collapsed{display:flex;align-items:center;justify-content:center;width:42px;cursor:pointer;color:#fff}.ditari-bsui-pagination{margin-top:24px;text-align:center}.ant-table.ant-table-bordered>.ant-table-container{border-bottom:1px solid #f0f0f0}.ditari-bsui-desensitize .value{padding:0 4px}.ditari-bsui-modal .ant-modal-body{padding:0}.ditari-bsui-modal .ditari-bsui-modal-content{max-height:200px;overflow-y:scroll}.ditari-bsui-modal .ditari-bsui-modal-content::-webkit-scrollbar{width:0 !important;display:none}.ant-table.ant-table-bordered>.ant-table-container{border-bottom:1px solid #f0f0f0}@media screen and (min-width: 320px){.modal{font-size:12px}}@media screen and (min-width: 640px){.modal{font-size:14px}}@media screen and (min-width: 1024px){.modal{font-size:16px}}@media screen and (min-width: 1440px){.modal{font-size:18px}}@media screen and (max-width: 640px){.modal-sm{width:100%;height:100%;min-width:240px;min-height:160px}}@media screen and (min-width: 640px)and (max-width: 1024px){.modal-md{margin:100px auto;max-width:600px;max-height:480px}}@media screen and (min-width: 1024px)and (max-width: 1440px){.modal-lg{margin:100px auto;max-width:800px;max-height:600px}}@media screen and (min-width: 1440px){.modal-xl{margin:100px auto}}html,body,#app{height:100%;background:#f0f2f5}html::-webkit-scrollbar,body::-webkit-scrollbar,#app::-webkit-scrollbar{width:0 !important;display:none}
1
+ .ditari-bsui-grid{position:relative;display:grid}.ditari-bsui-grid .ditari-bsui-grid--item{border:1px solid #4e4e4e;margin-left:-1px;margin-top:-1px}.ditari-bsui-grid-form .ant-form-item{margin-bottom:0;height:100%}.ditari-bsui-grid-form .ant-form-item .ant-form-item-label{border-right:1px solid #4e4e4e}.ditari-bsui-grid-form .ant-form-item .ant-input,.ditari-bsui-grid-form .ant-form-item .ant-select-selector,.ditari-bsui-grid-form .ant-form-item .ant-input-number{border:0;border-radius:0}.ditari-bsui-grid-form .ant-form-item .ant-input:focus,.ditari-bsui-grid-form .ant-form-item .ant-select-selector:focus,.ditari-bsui-grid-form .ant-form-item .ant-input-number:focus{box-shadow:0 0 0 2px #1890ff}.ditari-bsui-grid-form .ant-form-item .ant-input .ant-input-number-input,.ditari-bsui-grid-form .ant-form-item .ant-select-selector .ant-input-number-input,.ditari-bsui-grid-form .ant-form-item .ant-input-number .ant-input-number-input{border:0;border-radius:0}.ditari-bsui-grid-form .ant-form-item .ant-input .ant-input-number-input:focus,.ditari-bsui-grid-form .ant-form-item .ant-select-selector .ant-input-number-input:focus,.ditari-bsui-grid-form .ant-form-item .ant-input-number .ant-input-number-input:focus{box-shadow:0 0 0 2px #1890ff}.ditari-bsui-grid-form .ant-form-item .ant-input[disabled]{color:#525252}.ditari-bsui-grid-form .ant-form-item-has-error .ant-form-item-explain{display:block}.ditari-bsui-grid-form .ant-select-focused:not(.ant-select-disabled).ant-select:not(.ant-select-customize-input) .ant-select-selector{box-shadow:0 0 0 2px #1890ff}.ditari-bsui-grid-form .ant-form-item-has-error :not(.ant-input-disabled):not(.ant-input-borderless).ant-input:focus{box-shadow:0 0 0px 2px red;border-radius:0}.ditari-bsui-grid-form .ant-form-item-has-error :not(.ant-input-disabled):not(.ant-input-borderless).ant-input{box-shadow:0 0 0px 2px #ff4d4f}.ditari-menu{height:calc(100vh - 240px - 0px);overflow:scroll}.ditari-menu::-webkit-scrollbar{width:0 !important;display:none}.ditari-layout-sider{background-color:#162157}.ditari-layout-sider .ant-menu-dark{background-color:#162157}.ditari-layout-sider .ant-menu-dark .ant-menu-inline.ant-menu-sub{background-color:#101847}.ditari-bsui-breadcrumb .ant-breadcrumb-separator{display:none}.ditari-bsui-breadcrumb .breadcrumb{display:flex}.ditari-bsui-breadcrumb .breadcrumb .breadcrumb-item{color:#333}.ditari-bsui-breadcrumb .breadcrumb .breadcrumb-item:first-child .breadcrumb-link{border-radius:6px 0 0 6px;clip-path:polygon(0 0, calc(100% - 8px) 0, 100% 50%, calc(100% - 8px) 100%, 0 100%)}.ditari-bsui-breadcrumb .breadcrumb .breadcrumb-item:last-child:not(:first-child) .breadcrumb-link{border-radius:0 6px 6px 0;clip-path:polygon(0 0, 100% 0, 100% 100%, 0 100%, 8px 50%)}.ditari-bsui-breadcrumb .breadcrumb-link{display:block;padding:4px 12px;background:#f0f2f5;clip-path:polygon(0 0, calc(100% - 8px) 0, 100% 50%, calc(100% - 8px) 100%, 0 100%, 8px 50%)}.ditari-bsui-breadcrumb a.breadcrumb-link{color:#2589ff}.breadcrumb-enter-active{transition:all .25s}.breadcrumb-enter-from,.breadcrumb-leave-active{opacity:0;transform:translateX(30px) skewX(-50deg)}.ditari-list-layout{padding:20px;height:100%}.ditari-list-layout .wrapper{display:flex;flex-direction:column}.ditari-list-layout .ditari-list-table{flex:1}.ditari-list-layout .ditari-list-table .ant-card-body{display:flex;flex-direction:column;height:100%}.ditari-list-layout .ditari-list-form .ant-card-body{padding-bottom:0}.ditari-list-layout .wrapper{height:100%}.ditari-ant-back-top{right:4px;bottom:120px}.ditari-layout{height:100%}.ditari-layout .ditari-layout-sider{position:fixed;left:0;top:0;bottom:0;z-index:1}.ditari-layout .ditari-top-layout{position:fixed;left:200px;right:0;z-index:210}.ditari-layout .ditari-layout-content{margin-left:200px;margin-top:84px}.fade-enter-active,.fade-leave-active{transition:opacity .1s ease}.fade-enter-from,.fade-leave-to{opacity:0}.main-enter-active{transition:.2s}.main-leave-active{transition:.15s}.main-enter-from{opacity:0;margin-left:-20px}.main-leave-to{opacity:0;margin-left:20px}.ditari-layout-header{display:flex;justify-content:space-between;align-items:center;padding:0 15px;height:42px;border-bottom:1px solid #f0f2f5;background-color:#fff}.ditari-layout-header .ditari-layout-header-left{display:flex;justify-content:center}.ditari-layout-header .ditari-layout-header-left .ditari-side-collapsed{margin-right:20px;cursor:pointer;width:42px;line-height:30px;text-align:center;transition-duration:.2s}.ditari-layout-header .ditari-layout-header-left .ditari-side-collapsed:hover{background-color:#f0f2f5;border-radius:4px}.ditari-layout-header .ditari-layout-header-left .ditari-side-collapsed .icon{transition-duration:.2s}.ditari-user-menu{display:flex;align-items:center;height:100%}.ditari-user-menu .ditari-operation-items{margin-left:10px;height:100%}.ditari-user-menu .ditari-operation-items .ant-dropdown-link{display:flex;align-items:center;justify-content:center;height:100%}.collapsed-animation{transform:rotate(-180deg)}.ditari-bsui-nav{display:flex;background:linear-gradient(270deg, #019cfe 0%, #0165fe 100%)}.ditari-bsui-nav .ant-tabs-nav{margin:0}.ditari-bsui-nav .ant-tabs-content-holder{display:none}.ditari-bsui-nav .ant-tabs-nav-list{padding-right:30px}.ditari-bsui-nav .ant-tabs-tab{position:relative;margin-left:0 !important;border:0 !important;transition:none !important;border-radius:10px 10px 0 0 !important;color:#fff}.ditari-bsui-nav .ant-tabs-tab:first-child .tab-dividers::before,.ditari-bsui-nav .ant-tabs-tab.ant-tabs-tab-active .tab-dividers::before{opacity:0}.ditari-bsui-nav .ant-tabs-tab.ant-tabs-tab-active{background-color:#fff}.ditari-bsui-nav .ant-tabs-tab.ant-tabs-tab-active .tab-item{color:#0065b3}.ditari-bsui-nav .ant-tabs-tab:not(.ant-tabs-tab-active){background:rgba(0,0,0,0)}.ditari-bsui-nav .ant-tabs-tab:hover:not(.ant-tabs-tab-active){background:#065de1}.ditari-bsui-nav .ant-tabs-tab:hover:not(.ant-tabs-tab-active) .tab-dividers::before{opacity:0}.ditari-bsui-nav .ant-tabs-tab:hover:not(.ant-tabs-tab-active)+.ant-tabs-tab .tab-dividers::before{opacity:0}.ditari-bsui-nav .ant-tabs-tab .ant-tabs-tab-btn{display:flex;align-items:center}.ditari-bsui-nav .ant-tabs-tab .tab-close{padding:4px;margin-left:10px;display:flex;align-items:center;justify-content:center;border-radius:50%}.ditari-bsui-nav .ant-tabs-tab .tab-close:hover{background-color:#63aeff;color:#fff}.ditari-bsui-nav .ant-tabs-tab .tab-close .anticon{margin:0}.ditari-bsui-nav .ant-tabs-tab-active+.ant-tabs-tab .tab-dividers::before{opacity:0}.ditari-bsui-nav .ant-tabs-nav-wrap{padding:4px 8px 0}.ditari-bsui-nav .ant-tabs-nav::before{border-bottom-width:0}.ditari-bsui-nav .ant-tabs-tab::before,.ditari-bsui-nav .ant-tabs-tab::after{position:absolute;bottom:0;content:"";width:20px;height:20px;border-radius:100%;box-shadow:0 0 0 40px rgba(0,0,0,0)}.ditari-bsui-nav .ant-tabs-tab::before{left:-20px;clip-path:inset(50% -10px 0 50%)}.ditari-bsui-nav .ant-tabs-tab::after{right:-20px;clip-path:inset(50% 50% 0 -10px)}.ditari-bsui-nav .ant-tabs-tab:hover::before,.ditari-bsui-nav .ant-tabs-tab:hover::after{box-shadow:0 0 0 30px #065de1}.ditari-bsui-nav .ant-tabs-tab.ant-tabs-tab-active::before,.ditari-bsui-nav .ant-tabs-tab.ant-tabs-tab-active::after{z-index:10;box-shadow:0 0 0 30px #fff}.ditari-bsui-nav .tab-dividers{position:absolute;z-index:0;height:14px;top:50%;left:0;margin-top:-7px}.ditari-bsui-nav .tab-dividers::before{content:"";display:block;position:absolute;top:0;left:1px;bottom:0;width:1px;opacity:1;background-color:#fff;transition:opacity .2s ease,background-color .3s}.ditari-show-layout{position:relative}.ditari-show-layout .ant-card{margin-bottom:10px}.ditari-show-layout .ant-card .ant-card-head{padding:10px 24px}.ditari-show-layout .ant-card .ant-card-head .ant-card-head-title{padding:0}.ditari-show-layout .ant-card:last-child{margin-bottom:0}.ditari-show-layout .ditari-page-header{position:sticky;top:84px;z-index:10;padding:4px 24px;transition:all .3s}.ditari-show-layout .ditari-page-header.active{box-shadow:7px 12px 20px 0 #e0e0e0}.ditari-show-layout .ditari-show-footer{position:fixed;right:0;bottom:0;left:200px;z-index:10;padding:10px;background:#fff;box-shadow:4px -2px 5px 3px #e0e0e0}.ditari-fuck-top-layout{position:fixed;left:200px;right:0;z-index:210;display:flex;background:linear-gradient(270deg, #019cfe 0%, #0165fe 100%)}.ditari-fuck-top-layout .ditari-bsui-nav{flex:1;min-width:0}.ditari-fuck-top-layout .ditari-side-collapsed{display:flex;align-items:center;justify-content:center;width:42px;cursor:pointer;color:#fff}.ditari-bsui-pagination{margin-top:24px;text-align:center}.ant-table.ant-table-bordered>.ant-table-container{border-bottom:1px solid #f0f0f0}.ditari-bsui-desensitize{display:inline-block}.ditari-bsui-desensitize .value{padding:0 4px}.ditari-bsui-modal .ant-modal-body{padding:0}.ditari-bsui-modal .ditari-bsui-modal-content{max-height:200px;overflow-y:scroll}.ditari-bsui-modal .ditari-bsui-modal-content::-webkit-scrollbar{width:0 !important;display:none}.ant-table.ant-table-bordered>.ant-table-container{border-bottom:1px solid #f0f0f0}@media screen and (min-width: 320px){.modal{font-size:12px}}@media screen and (min-width: 640px){.modal{font-size:14px}}@media screen and (min-width: 1024px){.modal{font-size:16px}}@media screen and (min-width: 1440px){.modal{font-size:18px}}@media screen and (max-width: 640px){.modal-sm{width:100%;height:100%;min-width:240px;min-height:160px}}@media screen and (min-width: 640px)and (max-width: 1024px){.modal-md{margin:100px auto;max-width:600px;max-height:480px}}@media screen and (min-width: 1024px)and (max-width: 1440px){.modal-lg{margin:100px auto;max-width:800px;max-height:600px}}@media screen and (min-width: 1440px){.modal-xl{margin:100px auto}}html,body,#app{height:100%;background:#f0f2f5}html::-webkit-scrollbar,body::-webkit-scrollbar,#app::-webkit-scrollbar{width:0 !important;display:none}
@@ -11,6 +11,14 @@ declare const _default: import("vue").DefineComponent<{
11
11
  type: StringConstructor;
12
12
  required: true;
13
13
  };
14
+ regex: {
15
+ type: StringConstructor;
16
+ default: string;
17
+ };
18
+ regexValue: {
19
+ type: StringConstructor;
20
+ default: string;
21
+ };
14
22
  eye: {
15
23
  type: BooleanConstructor;
16
24
  default: boolean;
@@ -28,12 +36,22 @@ declare const _default: import("vue").DefineComponent<{
28
36
  type: StringConstructor;
29
37
  required: true;
30
38
  };
39
+ regex: {
40
+ type: StringConstructor;
41
+ default: string;
42
+ };
43
+ regexValue: {
44
+ type: StringConstructor;
45
+ default: string;
46
+ };
31
47
  eye: {
32
48
  type: BooleanConstructor;
33
49
  default: boolean;
34
50
  };
35
51
  }>>, {
36
52
  style: string;
53
+ regex: string;
54
+ regexValue: string;
37
55
  eye: boolean;
38
56
  }, {}>;
39
57
  export default _default;
@@ -21,11 +21,21 @@ var Desensitize = /* @__PURE__ */ defineComponent({
21
21
  type: String,
22
22
  default: "*"
23
23
  },
24
- // 替换位置
24
+ // 替换规则 id 和mobile
25
25
  rule: {
26
26
  type: String,
27
27
  required: true
28
28
  },
29
+ // 正则表达式
30
+ regex: {
31
+ type: String,
32
+ default: ""
33
+ },
34
+ // 替换方式
35
+ regexValue: {
36
+ type: String,
37
+ default: ""
38
+ },
29
39
  eye: {
30
40
  type: Boolean,
31
41
  default: false
@@ -36,13 +46,25 @@ var Desensitize = /* @__PURE__ */ defineComponent({
36
46
  const desensitizedString = computed(() => {
37
47
  const value = props.value;
38
48
  const rule = props.rule;
39
- if (rule === "mobile") {
40
- return value.replace(/(\d{3})\d{4}(\d{4})/, "$1 * * * * $2");
41
- } else if (rule === "id") {
42
- return value.replace(/(\d{4})\d{10}(\w{4})/, "$1 * * * * * $2");
49
+ const regex = props.regex;
50
+ const regexValue = props.regexValue;
51
+ let str = "";
52
+ if (!value) {
53
+ return "";
54
+ }
55
+ if (rule) {
56
+ switch (rule) {
57
+ case "mobile":
58
+ str = value.replace(/(\d{3})\d{4}(\d{4})/, "$1*****$2");
59
+ break;
60
+ case "id":
61
+ str = value.replace(/(\d{4})\d{10}(\w{4})/, "$1*****$2");
62
+ break;
63
+ }
43
64
  } else {
44
- return value;
65
+ str = value.replace(regex, regexValue);
45
66
  }
67
+ return str;
46
68
  });
47
69
  return () => createVNode(Fragment, null, [createVNode("div", {
48
70
  "class": baseClassName
@@ -1 +1 @@
1
- {"version":3,"file":"Desensitize.mjs","sources":["../../../src/desensitize/Desensitize.tsx"],"sourcesContent":["/**\n * 脱敏\n * @author 余春林\n */\nimport { defineComponent, computed, ref } from \"vue\";\nimport { EyeOutlined, EyeInvisibleOutlined } from \"@ant-design/icons-vue\";\nimport { prefixName } from \"../theme\";\n\n//class名称\nconst baseClassName = `${prefixName}-desensitize`;\nexport default defineComponent({\n name: \"DDesensitize\",\n components: {\n EyeOutlined,\n EyeInvisibleOutlined\n },\n props: {\n value: {\n // type: [string,number] 可以使用PropType 来声明对象类型\n // type: String as () => string | number,\n type: String,\n required: true\n },\n // 替换样式\n style: {\n type: String,\n default: \"*\"\n },\n // 替换位置\n rule: {\n type: String,\n required: true\n },\n eye: {\n type: Boolean,\n default: false\n }\n },\n setup(props) {\n // 控制显示隐藏脱敏或者不脱敏\n const invisible = ref(true);\n const desensitizedString = computed(() => {\n const value = props.value;\n const rule = props.rule;\n if (rule === \"mobile\") {\n return value.replace(/(\\d{3})\\d{4}(\\d{4})/, \"$1 * * * * $2\");\n } else if (rule === \"id\") {\n return value.replace(/(\\d{4})\\d{10}(\\w{4})/, \"$1 * * * * * $2\");\n } else {\n return value;\n }\n });\n return () => (\n <>\n <div class={baseClassName}>\n <span class={\"value\"}>\n {invisible.value ? desensitizedString.value : props.value}\n </span>\n {props.eye ? (\n <span>\n <eye-outlined\n onClick={() => (invisible.value = !invisible.value)}\n v-show={!invisible.value}\n />\n <eye-invisible-outlined\n onClick={() => (invisible.value = !invisible.value)}\n v-show={invisible.value}\n />\n </span>\n ) : undefined}\n </div>\n </>\n );\n }\n});\n"],"names":["baseClassName","prefixName","name","components","EyeOutlined","EyeInvisibleOutlined","props","value","type","String","required","style","default","rule","eye","Boolean","setup","invisible","ref","desensitizedString","computed","replace","_createVNode","_Fragment","_withDirectives","_resolveComponent","onClick","_vShow","undefined"],"mappings":";;;;AASA,MAAMA,aAAAA,GAAiB,GAAEC,UAAW,CAAA,YAAA,CAAA,CAAA;AACpC,kCAA+B,eAAA,CAAA;AAAA,EAC7BC,IAAM,EAAA,cAAA;AAAA,EACNC,UAAY,EAAA;AAAA,IACVC,WAAAA;AAAAA,IACAC,oBAAAA;AAAAA,GACF;AAAA,EACAC,KAAO,EAAA;AAAA,IACLC,KAAO,EAAA;AAAA;AAAA;AAAA,MAGLC,IAAMC,EAAAA,MAAAA;AAAAA,MACNC,QAAU,EAAA,IAAA;AAAA,KACZ;AAAA;AAAA,IAEAC,KAAO,EAAA;AAAA,MACLH,IAAMC,EAAAA,MAAAA;AAAAA,MACNG,OAAS,EAAA,GAAA;AAAA,KACX;AAAA;AAAA,IAEAC,IAAM,EAAA;AAAA,MACJL,IAAMC,EAAAA,MAAAA;AAAAA,MACNC,QAAU,EAAA,IAAA;AAAA,KACZ;AAAA,IACAI,GAAK,EAAA;AAAA,MACHN,IAAMO,EAAAA,OAAAA;AAAAA,MACNH,OAAS,EAAA,KAAA;AAAA,KACX;AAAA,GACF;AAAA,EACAI,MAAMV,KAAO,EAAA;AAEX,IAAMW,MAAAA,SAAAA,GAAYC,IAAI,IAAI,CAAA,CAAA;AAC1B,IAAMC,MAAAA,kBAAAA,GAAqBC,SAAS,MAAM;AACxC,MAAA,MAAMb,QAAQD,KAAMC,CAAAA,KAAAA,CAAAA;AACpB,MAAA,MAAMM,OAAOP,KAAMO,CAAAA,IAAAA,CAAAA;AACnB,MAAA,IAAIA,SAAS,QAAU,EAAA;AACrB,QAAON,OAAAA,KAAAA,CAAMc,OAAQ,CAAA,qBAAA,EAAuB,eAAe,CAAA,CAAA;AAAA,OAC7D,MAAA,IAAWR,SAAS,IAAM,EAAA;AACxB,QAAON,OAAAA,KAAAA,CAAMc,OAAQ,CAAA,sBAAA,EAAwB,iBAAiB,CAAA,CAAA;AAAA,OACzD,MAAA;AACL,QAAOd,OAAAA,KAAAA,CAAAA;AAAAA,OACT;AAAA,KACD,CAAA,CAAA;AACD,IAAA,OAAO,MAAAe,WAAAC,CAAAA,QAAAA,SAAAD,YAAA,KAAA,EAAA;AAAA,MAAA,OAEStB,EAAAA,aAAAA;AAAAA,KAAa,EAAA,CAAAsB,WAAAA,CAAA,MAAA,EAAA;AAAA,MAAA,OACV,EAAA,OAAA;AAAA,KAAO,EACjBL,CAAAA,SAAUV,CAAAA,KAAAA,GAAQY,mBAAmBZ,KAAQD,GAAAA,KAAAA,CAAMC,KAAK,IAE1DD,MAAMQ,GAAGQ,GAAAA,WAAAA,gBAAAE,eAAAF,WAAAG,CAAAA,gBAAAA,CAAA,cAAA,CAAA,EAAA;AAAA,MAAA,SAGKC,EAAAA,MAAOT,SAAUV,CAAAA,KAAAA,GAAQ,CAACU,SAAUV,CAAAA,KAAAA;AAAAA,OAAMoB,IAAAA,CAAAA,EAAAA,CAAAA,CAAAA,OAC3C,CAACV,SAAAA,CAAUV,KAAK,CAAA,CAAA,CAAAiB,EAAAA,cAAAA,CAAAF,WAAAG,CAAAA,gBAAAA,CAAA,wBAAA,CAAA,EAAA;AAAA,MAAA,SAGfC,EAAAA,MAAOT,SAAUV,CAAAA,KAAAA,GAAQ,CAACU,SAAUV,CAAAA,KAAAA;AAAAA,OAAM,IAAA,CAAA,EAAA,CAAA,CAAAoB,OAC3CV,SAAUV,CAAAA,KAAK,CAAA,CAAA,CAAA,CAAA,CAAA,GAGzBqB,KAAS,CAAA,CAGlB,CAAA,CAAA,CAAA,CAAA;AAAA,GACH;AACF,CAAC,CAAA;;;;"}
1
+ {"version":3,"file":"Desensitize.mjs","sources":["../../../src/desensitize/Desensitize.tsx"],"sourcesContent":["/**\n * 脱敏\n * @author 余春林\n */\nimport { defineComponent, computed, ref } from \"vue\";\nimport { EyeOutlined, EyeInvisibleOutlined } from \"@ant-design/icons-vue\";\nimport { prefixName } from \"../theme\";\n\n//class名称\nconst baseClassName = `${prefixName}-desensitize`;\nexport default defineComponent({\n name: \"DDesensitize\",\n components: {\n EyeOutlined,\n EyeInvisibleOutlined\n },\n props: {\n value: {\n // type: [string,number] 可以使用PropType 来声明对象类型\n // type: String as () => string | number,\n type: String,\n required: true\n },\n // 替换样式\n style: {\n type: String,\n default: \"*\"\n },\n // 替换规则 id 和mobile\n rule: {\n type: String,\n required: true\n },\n // 正则表达式\n regex: {\n type: String,\n default: \"\"\n },\n // 替换方式\n regexValue: {\n type: String,\n default: \"\"\n },\n eye: {\n type: Boolean,\n default: false\n }\n },\n setup(props) {\n // 控制显示隐藏脱敏或者不脱敏\n const invisible = ref(true);\n const desensitizedString = computed(() => {\n const value = props.value;\n const rule = props.rule;\n const regex = props.regex;\n const regexValue = props.regexValue;\n let str = \"\";\n if (!value) {\n return \"\";\n }\n if (rule) {\n switch (rule) {\n case \"mobile\":\n str = value.replace(/(\\d{3})\\d{4}(\\d{4})/, \"$1*****$2\");\n break;\n case \"id\":\n str = value.replace(/(\\d{4})\\d{10}(\\w{4})/, \"$1*****$2\");\n break;\n }\n } else {\n str = value.replace(regex, regexValue);\n }\n return str;\n });\n return () => (\n <>\n <div class={baseClassName}>\n <span class={\"value\"}>\n {invisible.value ? desensitizedString.value : props.value}\n </span>\n {props.eye ? (\n <span>\n <eye-outlined\n onClick={() => (invisible.value = !invisible.value)}\n v-show={!invisible.value}\n />\n <eye-invisible-outlined\n onClick={() => (invisible.value = !invisible.value)}\n v-show={invisible.value}\n />\n </span>\n ) : undefined}\n </div>\n </>\n );\n }\n});\n"],"names":["baseClassName","prefixName","name","components","EyeOutlined","EyeInvisibleOutlined","props","value","type","String","required","style","default","rule","regex","regexValue","eye","Boolean","setup","invisible","ref","desensitizedString","computed","str","replace","_createVNode","_Fragment","_withDirectives","_resolveComponent","onClick","_vShow","undefined"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  @import "../../theme/variable.scss";
2
2
 
3
3
  .#{$prefix-name}-desensitize {
4
+ display: inline-block;
4
5
  .value {
5
6
  padding: 0 4px;
6
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ditari/bsui",
3
- "version": "1.1.19",
3
+ "version": "1.1.20",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "author": "",
@@ -26,11 +26,21 @@ export default defineComponent({
26
26
  type: String,
27
27
  default: "*"
28
28
  },
29
- // 替换位置
29
+ // 替换规则 id 和mobile
30
30
  rule: {
31
31
  type: String,
32
32
  required: true
33
33
  },
34
+ // 正则表达式
35
+ regex: {
36
+ type: String,
37
+ default: ""
38
+ },
39
+ // 替换方式
40
+ regexValue: {
41
+ type: String,
42
+ default: ""
43
+ },
34
44
  eye: {
35
45
  type: Boolean,
36
46
  default: false
@@ -42,13 +52,25 @@ export default defineComponent({
42
52
  const desensitizedString = computed(() => {
43
53
  const value = props.value;
44
54
  const rule = props.rule;
45
- if (rule === "mobile") {
46
- return value.replace(/(\d{3})\d{4}(\d{4})/, "$1 * * * * $2");
47
- } else if (rule === "id") {
48
- return value.replace(/(\d{4})\d{10}(\w{4})/, "$1 * * * * * $2");
55
+ const regex = props.regex;
56
+ const regexValue = props.regexValue;
57
+ let str = "";
58
+ if (!value) {
59
+ return "";
60
+ }
61
+ if (rule) {
62
+ switch (rule) {
63
+ case "mobile":
64
+ str = value.replace(/(\d{3})\d{4}(\d{4})/, "$1*****$2");
65
+ break;
66
+ case "id":
67
+ str = value.replace(/(\d{4})\d{10}(\w{4})/, "$1*****$2");
68
+ break;
69
+ }
49
70
  } else {
50
- return value;
71
+ str = value.replace(regex, regexValue);
51
72
  }
73
+ return str;
52
74
  });
53
75
  return () => (
54
76
  <>
@@ -1,6 +1,7 @@
1
1
  @import "../../theme/variable.scss";
2
2
 
3
3
  .#{$prefix-name}-desensitize {
4
+ display: inline-block;
4
5
  .value {
5
6
  padding: 0 4px;
6
7
  }