diff --git a/src/components/DataForm/rules/index.js b/src/components/DataForm/rules/index.js index d7baeda9b..53a23e7a1 100644 --- a/src/components/DataForm/rules/index.js +++ b/src/components/DataForm/rules/index.js @@ -14,6 +14,19 @@ export const EmailCheck = { trigger: ['blur', 'change'] } +export const IpCheck = { + required: true, + validator: (rule, value, callback) => { + value = value.trim() + if (/^[\w://.?]+$/.test(value)) { + callback() + } else { + callback(new Error(i18n.t('common.FormatError'))) + } + }, + trigger: ['blur', 'change'] +} + export const specialEmojiCheck = { validator: (rule, value, callback) => { value = value.trim() @@ -27,6 +40,7 @@ export const specialEmojiCheck = { } export default { + IpCheck, Required, RequiredChange, EmailCheck, diff --git a/src/store/getters.js b/src/store/getters.js index 8c169f3a1..0141af7af 100644 --- a/src/store/getters.js +++ b/src/store/getters.js @@ -28,6 +28,6 @@ const getters = { currentUserIsSuperAdmin: state => state.users.isSuperAdmin, currentUserIsAdmin: state => state.users.isAdmin, hasValidLicense: state => state.settings.hasValidLicense, - isSystemAdmin: state => state.users.profile.system_roles.includes('00000000-0000-0000-0000-000000000001') + isSystemAdmin: state => state.users.profile.system_roles.some(i => (i?.id === '00000000-0000-0000-0000-000000000001')) } export default getters diff --git a/src/views/accounts/AccountChangeSecret/AccountChangeSecretCreateUpdate.vue b/src/views/accounts/AccountChangeSecret/AccountChangeSecretCreateUpdate.vue index 7fc0d2956..83acac553 100644 --- a/src/views/accounts/AccountChangeSecret/AccountChangeSecretCreateUpdate.vue +++ b/src/views/accounts/AccountChangeSecret/AccountChangeSecretCreateUpdate.vue @@ -19,6 +19,7 @@ export default { length: 30 }, interval: 24, + accounts: [], secret_type: 'password', secret_strategy: 'specific' }, diff --git a/src/views/assets/Domain/DomainDetail/GatewayList.vue b/src/views/assets/Domain/DomainDetail/GatewayList.vue index de7924a9e..ca02508ae 100644 --- a/src/views/assets/Domain/DomainDetail/GatewayList.vue +++ b/src/views/assets/Domain/DomainDetail/GatewayList.vue @@ -78,7 +78,7 @@ export default { connectivity: connectivityMeta, actions: { formatterArgs: { - updateRoute: 'GatewayUpdate', + updateRoute: { name: 'GatewayUpdate', query: { domain: this.object.id }}, performDelete: ({ row }) => { const id = row.id const url = `/api/v1/assets/gateways/${id}/` diff --git a/src/views/assets/const.js b/src/views/assets/const.js index b461defcb..791b4d90f 100644 --- a/src/views/assets/const.js +++ b/src/views/assets/const.js @@ -30,7 +30,9 @@ export const assetFieldsMeta = (vm) => { const platformProtocols = [] const secretTypes = [] return { - address: {}, + address: { + rules: [rules.IpCheck, rules.specialEmojiCheck] + }, protocols: { component: ProtocolSelector, el: { diff --git a/src/views/users/User/UserCreateUpdate.vue b/src/views/users/User/UserCreateUpdate.vue index 92d3e3b69..45255bdb6 100644 --- a/src/views/users/User/UserCreateUpdate.vue +++ b/src/views/users/User/UserCreateUpdate.vue @@ -66,10 +66,11 @@ export default { } }, need_update_password: { + label: this.$t('users.needUpdatePasswordNextLogin'), type: 'checkbox-group', component: null, // 覆盖默认生成的 component el: { - style: 'margin-top: -20px;margin-bottom: -10px' + style: 'margin-bottom: -10px' }, options: [ {