Commit 1ff13e869dea543366680b0192892db5efde3476
Merge branch 'local_dev_branch_by_ft' into 'main_dev'
fix: 查看消息配置时,隐藏配置内容 See merge request yunteng/thingskit-front!1017
Showing
3 changed files
with
80 additions
and
1 deletions
... | ... | @@ -138,13 +138,90 @@ |
138 | 138 | }); |
139 | 139 | } |
140 | 140 | |
141 | + const cipherLength = 7; | |
142 | + | |
143 | + //字符串星号替代 | |
144 | + function parseStringToStar(originalStr: string, startLength: number, endLength: number) { | |
145 | + //字符串大于7位,前3后4明文,其他以星号替代 | |
146 | + //字符串小于7位,前1后1明文,其他以星号替代 | |
147 | + return originalStr?.length > startLength | |
148 | + ? originalStr?.substr(0, startLength) + | |
149 | + new Array(originalStr?.length - endLength)?.join('*') + | |
150 | + originalStr?.substr(-endLength) | |
151 | + : originalStr; | |
152 | + } | |
153 | + | |
154 | + //长度 都大于或者小于7或者其中一个大于7,一个小于7个字符的处理 | |
155 | + //二维数组优化if else if else | |
156 | + const mapConditionConfig = [ | |
157 | + [ | |
158 | + (startParam, endParam) => | |
159 | + String(startParam)?.length > cipherLength && String(endParam)?.length > cipherLength, | |
160 | + (startParam) => parseStringToStar(startParam, 3, 4), | |
161 | + (endParam) => parseStringToStar(endParam, 3, 4), | |
162 | + ], | |
163 | + [ | |
164 | + (startParam, endParam) => | |
165 | + String(startParam)?.length < cipherLength && String(endParam)?.length < cipherLength, | |
166 | + (startParam) => parseStringToStar(startParam, 1, 1), | |
167 | + (endParam) => parseStringToStar(endParam, 1, 1), | |
168 | + ], | |
169 | + [ | |
170 | + (startParam, endParam) => | |
171 | + String(startParam)?.length > cipherLength || String(endParam)?.length < cipherLength, | |
172 | + (startParam) => parseStringToStar(startParam, 3, 4), | |
173 | + (endParam) => parseStringToStar(endParam, 1, 1), | |
174 | + ], | |
175 | + [ | |
176 | + (startParam, endParam) => | |
177 | + String(startParam)?.length < cipherLength || String(endParam)?.length > cipherLength, | |
178 | + (startParam) => parseStringToStar(startParam, 1, 1), | |
179 | + (endParam) => parseStringToStar(endParam, 3, 4), | |
180 | + ], | |
181 | + ]; | |
182 | + | |
183 | + const handleStandardLength = ( | |
184 | + startKey: string, | |
185 | + endKey: string, | |
186 | + startParam: string, | |
187 | + endParam: string | |
188 | + ) => { | |
189 | + const findDateFlow: any = mapConditionConfig.find((item: Function[]) => | |
190 | + item[0](startParam, endParam) | |
191 | + ); | |
192 | + if (!findDateFlow) return; | |
193 | + const cipherData: Recordable = {}; | |
194 | + cipherData[startKey] = findDateFlow[1](startParam); | |
195 | + cipherData[endKey] = findDateFlow[2](endParam); | |
196 | + return cipherData; | |
197 | + }; | |
198 | + | |
199 | + const handleCipherTextConfig = (e) => { | |
200 | + /** | |
201 | + * username和password 存在则是邮件配置 | |
202 | + * secretId和secretKey 存在则是腾讯云配置信息 | |
203 | + * accessKeyId和accessKeySecret 存在则是阿里云配置信息 | |
204 | + */ | |
205 | + const { username, password, secretId, secretKey, accessKeyId, accessKeySecret } = e; | |
206 | + return JSON.parse( | |
207 | + JSON.stringify({ | |
208 | + ...e, | |
209 | + ...handleStandardLength('username', 'password', username, password), | |
210 | + ...handleStandardLength('secretId', 'secretKey', secretId, secretKey), | |
211 | + ...handleStandardLength('accessKeyId', 'accessKeySecret', accessKeyId, accessKeySecret), | |
212 | + }) | |
213 | + ); | |
214 | + }; | |
215 | + | |
141 | 216 | function showData(record: Recordable) { |
142 | 217 | Modal.info({ |
143 | 218 | title: '当前配置', |
144 | 219 | width: 600, |
145 | 220 | centered: true, |
146 | 221 | maskClosable: true, |
147 | - content: h(JsonPreview, { data: JSON.parse(JSON.stringify(record.config)) }), | |
222 | + content: h(JsonPreview, { | |
223 | + data: handleCipherTextConfig(record.config), | |
224 | + }), | |
148 | 225 | }); |
149 | 226 | } |
150 | 227 | const statusChange = async (checked, record) => { | ... | ... |