Showing
8 changed files
with
76 additions
and
19 deletions
... | ... | @@ -52,7 +52,7 @@ export const getTableTenantProfileApi = (params?: QueryTenantProfilesParam) => { |
52 | 52 | ...params, |
53 | 53 | orderFiled: 'createdTime', |
54 | 54 | }; |
55 | - return defHttp.get<PaginationResult>({ | |
55 | + return defHttp.get<PaginationResult<{ default: boolean; id: { id: string } }>>({ | |
56 | 56 | url: Api.getTenantProfile, |
57 | 57 | params: param, |
58 | 58 | }); | ... | ... |
1 | 1 | <script lang="ts" setup> |
2 | 2 | import { h } from 'vue'; |
3 | + import { useI18n } from 'vue-i18n'; | |
3 | 4 | import { Description, useDescription } from '/@/components/Description'; |
4 | 5 | import { BasicModal, useModal } from '/@/components/Modal'; |
6 | + import { cacheCipher } from '/@/settings/encryptionSetting'; | |
7 | + import { AesEncryption } from '/@/utils/cipher'; | |
8 | + | |
9 | + const encryption = new AesEncryption(cacheCipher); | |
10 | + | |
11 | + const { t } = useI18n(); | |
12 | + | |
13 | + enum FiledKey { | |
14 | + copyright = 'field1', | |
15 | + website = 'filed2', | |
16 | + authorization = 'field3', | |
17 | + } | |
18 | + | |
19 | + // const handleEncode = (string: string) => { | |
20 | + // return encryption.encryptByAES(string); | |
21 | + // }; | |
22 | + | |
23 | + const handleDecode = (encodeString: string) => { | |
24 | + return encryption.decryptByAES(encodeString); | |
25 | + }; | |
5 | 26 | |
6 | 27 | const [register] = useModal(); |
7 | 28 | |
... | ... | @@ -15,19 +36,18 @@ |
15 | 36 | paddingRight: '20px', |
16 | 37 | }, |
17 | 38 | data: { |
18 | - copyright: | |
19 | - 'ThingsKit物联网平台版权归成都云腾五洲科技有限公司所有,您可以任意商用,但请注意保留本版权声明', | |
20 | - website: 'https://thingskit.com', | |
21 | - authorization: '若不想保留本版权声明,请前往以下链接查看移出方法,', | |
39 | + [FiledKey.copyright]: handleDecode(t('routes.aboutSoftware.copyright')), | |
40 | + [FiledKey.website]: handleDecode(t('routes.aboutSoftware.website')), | |
41 | + [FiledKey.authorization]: handleDecode(t('routes.aboutSoftware.authorization')), | |
22 | 42 | }, |
23 | 43 | schema: [ |
24 | 44 | { |
25 | - field: 'copyright', | |
26 | - label: '版权声明', | |
45 | + field: FiledKey.copyright, | |
46 | + label: handleDecode(t('routes.aboutSoftware.copyrightLabel')), | |
27 | 47 | }, |
28 | 48 | { |
29 | - field: 'website', | |
30 | - label: '官网', | |
49 | + field: FiledKey.website, | |
50 | + label: handleDecode(t('routes.aboutSoftware.websiteLabel')), | |
31 | 51 | render: (val: string) => { |
32 | 52 | return h( |
33 | 53 | 'span', |
... | ... | @@ -37,10 +57,9 @@ |
37 | 57 | }, |
38 | 58 | }, |
39 | 59 | { |
40 | - field: 'authorization', | |
41 | - label: '商业授权', | |
60 | + field: FiledKey.authorization, | |
61 | + label: handleDecode(t('routes.aboutSoftware.authorizationLabel')), | |
42 | 62 | render: (val: string) => { |
43 | - console.log(val); | |
44 | 63 | // https://community.thingskit.com/question/20.html |
45 | 64 | return h('div', {}, [ |
46 | 65 | h('span', val), |
... | ... | @@ -62,7 +81,7 @@ |
62 | 81 | <template> |
63 | 82 | <BasicModal |
64 | 83 | @register="register" |
65 | - title="关于我们" | |
84 | + :title="handleDecode(t('routes.aboutSoftware.aboutSoftware'))" | |
66 | 85 | width="50%" |
67 | 86 | cancel-text="关闭" |
68 | 87 | :show-ok-btn="false" | ... | ... |
... | ... | @@ -37,7 +37,11 @@ |
37 | 37 | :text="t('layout.header.dropdownItemChangePassword')" |
38 | 38 | icon="ant-design:unlock-twotone" |
39 | 39 | /> |
40 | - <MenuItem key="aboutSoftware" text="关于软件" icon="ant-design:message-outline" /> | |
40 | + <MenuItem | |
41 | + key="aboutSoftware" | |
42 | + :text="handleDecode(t('routes.aboutSoftware.aboutSoftware'))" | |
43 | + icon="ant-design:message-outline" | |
44 | + /> | |
41 | 45 | <MenuItem |
42 | 46 | v-if="getUseLockPage" |
43 | 47 | key="lock" |
... | ... | @@ -77,6 +81,8 @@ |
77 | 81 | import { useRouter } from 'vue-router'; |
78 | 82 | import { usePermission } from '/@/hooks/web/usePermission'; |
79 | 83 | import AboutSoftwareModal from '../AboutSoftwareModal.vue'; |
84 | + import { AesEncryption } from '/@/utils/cipher'; | |
85 | + import { cacheCipher } from '/@/settings/encryptionSetting'; | |
80 | 86 | |
81 | 87 | type MenuEvent = 'logout' | 'doc' | 'lock' | 'personal' | 'changePassword' | 'aboutSoftware'; |
82 | 88 | |
... | ... | @@ -176,7 +182,13 @@ |
176 | 182 | router.push('/system/changePassword'); |
177 | 183 | }; |
178 | 184 | |
185 | + const encryption = new AesEncryption(cacheCipher); | |
186 | + const handleDecode = (string: string) => { | |
187 | + return encryption.decryptByAES(string); | |
188 | + }; | |
189 | + | |
179 | 190 | return { |
191 | + handleDecode, | |
180 | 192 | updataPersonlData, |
181 | 193 | refreshPersonlData, |
182 | 194 | refreshPersonalFunc, | ... | ... |
src/locales/lang/en/routes/aboutSoftware.ts
0 → 100644
1 | +export default { | |
2 | + aboutSoftware: 'M2e/fueM5gOxek1+Cqh5CA==', | |
3 | + copyrightLabel: 'euVkVv2k+9lAoBFk2/IcAg==', | |
4 | + websiteLabel: 'Lg18XskCEQMA57HJp/kFSg==', | |
5 | + authorizationLabel: 'RgtDsxIoA+6FMp4Ani+utw==', | |
6 | + copyright: | |
7 | + '5ZZv6QlLvd5rrVAubQbHxCb2HrJoY+efYpnto5GHh4Diz5PVne8rb1Ao/L+kLUrgeJe5BGIepGMuyURKaDeSPURtCLInlllTNHKjGbnJOm8BZRFm2DUWcHktj20z4WgPf2eu4deeGr1S+i62lLZwj9o9Ynf30T5W500YBzFCnb65cXA7tXGG35JhOy3fe7oo', | |
8 | + website: 'GJahLAezazanWODyf7QEGjU3xfvz1GEKW0OTFhG9m+U=', | |
9 | + authorization: | |
10 | + '8knL7RPacArF00UmNK2ANxRyISIZwycI8erZvHsg+fGt9Gw0Q3SLPgRLr5o+1lzs8D2RVwfiu6ogHgf8IyZHf+4A7SdTa/DRFSBVIXBgzjQ=', | |
11 | +}; | ... | ... |
1 | +export default { | |
2 | + aboutSoftware: 'M2e/fueM5gOxek1+Cqh5CA==', | |
3 | + copyrightLabel: 'euVkVv2k+9lAoBFk2/IcAg==', | |
4 | + websiteLabel: 'Lg18XskCEQMA57HJp/kFSg==', | |
5 | + authorizationLabel: 'RgtDsxIoA+6FMp4Ani+utw==', | |
6 | + copyright: | |
7 | + '5ZZv6QlLvd5rrVAubQbHxCb2HrJoY+efYpnto5GHh4Diz5PVne8rb1Ao/L+kLUrgeJe5BGIepGMuyURKaDeSPURtCLInlllTNHKjGbnJOm8BZRFm2DUWcHktj20z4WgPf2eu4deeGr1S+i62lLZwj9o9Ynf30T5W500YBzFCnb65cXA7tXGG35JhOy3fe7oo', | |
8 | + website: 'GJahLAezazanWODyf7QEGjU3xfvz1GEKW0OTFhG9m+U=', | |
9 | + authorization: | |
10 | + '8knL7RPacArF00UmNK2ANxRyISIZwycI8erZvHsg+fGt9Gw0Q3SLPgRLr5o+1lzs8D2RVwfiu6ogHgf8IyZHf+4A7SdTa/DRFSBVIXBgzjQ=', | |
11 | +}; | ... | ... |
1 | 1 | import { FormSchema } from '/@/components/Form'; |
2 | 2 | import { findDictItemByCode } from '/@/api/system/dict'; |
3 | 3 | import { deviceProfile, getGatewayDevice } from '/@/api/device/deviceManager'; |
4 | +import { DeviceTypeEnum } from '/@/api/device/model/deviceModel'; | |
5 | +import { TransportTypeEnum } from '../../profiles/components/TransportDescript/const'; | |
4 | 6 | |
5 | 7 | export enum TypeEnum { |
6 | 8 | IS_GATEWAY = 'GATEWAY', |
... | ... | @@ -116,7 +118,10 @@ export const step1Schemas: FormSchema[] = [ |
116 | 118 | label: '地址码', |
117 | 119 | component: 'Input', |
118 | 120 | ifShow: ({ model }) => { |
119 | - return model['transportType'] === 'TCP'; | |
121 | + return ( | |
122 | + model['transportType'] === TransportTypeEnum.TCP && | |
123 | + model['deviceType'] === DeviceTypeEnum.SENSOR | |
124 | + ); | |
120 | 125 | }, |
121 | 126 | dynamicRules: ({ model }) => { |
122 | 127 | return [{ required: model['transportType'] === 'TCP', message: '地址码为必填项' }]; | ... | ... |
... | ... | @@ -130,9 +130,9 @@ export const tenantFormSchema: FormSchema[] = [ |
130 | 130 | return { |
131 | 131 | api: async (params: QueryTenantProfilesParam) => { |
132 | 132 | const { items, total } = await getTableTenantProfileApi(params); |
133 | - const firstRecord = items.at(0); | |
134 | - if (firstRecord) { | |
135 | - setFieldsValue({ tenantProfileId: firstRecord.id.id }); | |
133 | + const defaultRecord = items.find((item) => item.default); | |
134 | + if (defaultRecord) { | |
135 | + setFieldsValue({ tenantProfileId: defaultRecord.id.id }); | |
136 | 136 | } |
137 | 137 | return { items, total }; |
138 | 138 | }, | ... | ... |