Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
so-manage-ui
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
smart-operation
so-manage-ui
Commits
3ff8cf65
You need to sign in or sign up before continuing.
Commit
3ff8cf65
authored
Jul 07, 2023
by
李鹏
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
首选项配置以及优化
parent
f98f6192
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
215 additions
and
199 deletions
+215
-199
src/page/login/index.vue
src/page/login/index.vue
+4
-12
src/page/main/system-admin/preference/authorityForm.vue
src/page/main/system-admin/preference/authorityForm.vue
+19
-10
src/page/main/system-admin/preference/index.vue
src/page/main/system-admin/preference/index.vue
+33
-67
src/page/main/system-admin/preference/loginPageForm.vue
src/page/main/system-admin/preference/loginPageForm.vue
+55
-40
src/page/main/system-admin/preference/registerForm.vue
src/page/main/system-admin/preference/registerForm.vue
+85
-60
src/page/main/system-admin/preference/secureForm.vue
src/page/main/system-admin/preference/secureForm.vue
+19
-10
No files found.
src/page/login/index.vue
View file @
3ff8cf65
...
@@ -3,9 +3,7 @@
...
@@ -3,9 +3,7 @@
class=
"login-container"
class=
"login-container"
:style=
"
{
:style=
"
{
'background-image': `url(${
'background-image': `url(${
configOptions.backgroundUrl
configOptions.backgroundUrl ? JSON.parse(configOptions.backgroundUrl)[0].url : getImageUrl('bg.png')
? JSON.parse(configOptions.backgroundUrl)[0].url
: getImageUrl('bg.png')
})`,
})`,
}">
}">
<el-alert
v-if=
"showValidityDays"
class=
"bg-warning"
:title=
"validityTips"
type=
"warning"
/>
<el-alert
v-if=
"showValidityDays"
class=
"bg-warning"
:title=
"validityTips"
type=
"warning"
/>
...
@@ -15,11 +13,7 @@
...
@@ -15,11 +13,7 @@
</div>
-->
</div>
-->
<div
class=
"bg-content"
>
<div
class=
"bg-content"
>
<bg-tabs
<bg-tabs
class=
"login-tab"
v-model=
"loginTab"
style=
"width: 480px"
v-if=
"pageType === 'login'"
>
class=
"login-tab"
v-model=
"loginTab"
style=
"width: 480px"
v-if=
"pageType === 'login'"
>
<bg-tab
label=
"账号密码登录"
name=
"account"
>
<bg-tab
label=
"账号密码登录"
name=
"account"
>
<LoginByAccount
@
register=
"switchPageType('account')"
@
password=
"password"
/>
<LoginByAccount
@
register=
"switchPageType('account')"
@
password=
"password"
/>
</bg-tab>
</bg-tab>
...
@@ -33,9 +27,7 @@
...
@@ -33,9 +27,7 @@
<div
class=
"bg-msg"
>
<div
class=
"bg-msg"
>
<p
v-if=
"configOptions && configOptions.patent"
>
{{
configOptions
.
patent
}}
</p>
<p
v-if=
"configOptions && configOptions.patent"
>
{{
configOptions
.
patent
}}
</p>
<p
v-if=
"configOptions"
>
<p
v-if=
"configOptions"
>
<span
class=
"can_click_text"
@
click=
"open(configOptions.icpUrl)"
>
<span
class=
"can_click_text"
@
click=
"open(configOptions.icpUrl)"
>
{{
configOptions
.
icpFiling
}}
|
</span>
{{
configOptions
.
icpFiling
}}
|
</span>
<span
class=
"can_click_text"
@
click=
"open(configOptions.publicSecurityUrl)"
>
<span
class=
"can_click_text"
@
click=
"open(configOptions.publicSecurityUrl)"
>
{{
configOptions
.
publicSecurityFiling
}}
{{
configOptions
.
publicSecurityFiling
}}
</span>
</span>
...
@@ -104,7 +96,7 @@ const getLoginPageConfig = () => {
...
@@ -104,7 +96,7 @@ const getLoginPageConfig = () => {
};
};
//获取首选项配置
//获取首选项配置
const
getSysOptions
=
()
=>
{
const
getSysOptions
=
()
=>
{
axios
.
get
(
`/
apaas/system/v5
/sysOptions`
).
then
((
res
)
=>
{
axios
.
get
(
`/
v1/api
/sysOptions`
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
if
(
res
.
data
.
code
==
200
)
{
const
result
=
res
.
data
.
data
||
{};
const
result
=
res
.
data
.
data
||
{};
if
(
result
.
license_dead_date
&&
result
.
license_inform_day
)
{
if
(
result
.
license_dead_date
&&
result
.
license_inform_day
)
{
...
...
src/page/main/system-admin/preference/authorityForm.vue
View file @
3ff8cf65
...
@@ -41,13 +41,15 @@ import { reactive, toRefs, ref } from "vue";
...
@@ -41,13 +41,15 @@ import { reactive, toRefs, ref } from "vue";
import
{
ElMessage
}
from
"
element-plus
"
;
import
{
ElMessage
}
from
"
element-plus
"
;
import
axios
from
"
@/request/http.js
"
;
import
axios
from
"
@/request/http.js
"
;
const
props
=
defineProps
({
const
state
=
reactive
({
authorizeFormData
:
{
authorizeFormData
:
{
type
:
Object
,
id
:
""
,
default
:
()
=>
({}),
system_version
:
""
,
system_user
:
""
,
license
:
""
,
license_dead_date
:
""
,
license_inform_day
:
""
,
},
},
});
const
state
=
reactive
({
authorizeRules
:
{
authorizeRules
:
{
license_inform_day
:
[{
type
:
"
number
"
,
min
:
0
,
max
:
90
,
message
:
"
请输入0~90的整数
"
,
trigger
:
"
blur
"
}],
license_inform_day
:
[{
type
:
"
number
"
,
min
:
0
,
max
:
90
,
message
:
"
请输入0~90的整数
"
,
trigger
:
"
blur
"
}],
},
},
...
@@ -57,7 +59,7 @@ const authorizeFormRef = ref(null);
...
@@ -57,7 +59,7 @@ const authorizeFormRef = ref(null);
const
getLicenseInfo
=
()
=>
{
const
getLicenseInfo
=
()
=>
{
if
(
!
state
.
authorizeFormData
.
license
)
return
;
if
(
!
state
.
authorizeFormData
.
license
)
return
;
axios
axios
.
post
(
"
/
apaas/system/v5
/sysOptions/getLicenseInfo
"
,
{
.
post
(
"
/
v1/api
/sysOptions/getLicenseInfo
"
,
{
license
:
state
.
authorizeFormData
.
license
,
license
:
state
.
authorizeFormData
.
license
,
})
})
.
then
((
res
)
=>
{
.
then
((
res
)
=>
{
...
@@ -70,14 +72,20 @@ const getLicenseInfo = () => {
...
@@ -70,14 +72,20 @@ const getLicenseInfo = () => {
}
}
});
});
};
};
//设置表单数据
const
setFormData
=
(
data
)
=>
{
Object
.
keys
(
state
.
authorizeFormData
).
forEach
((
item
)
=>
{
state
.
authorizeFormData
[
item
]
=
data
[
item
];
});
};
//保存
//保存
const
save
=
()
=>
{
const
save
=
()
=>
{
authorizeFormRef
.
value
.
validate
((
valid
)
=>
{
authorizeFormRef
.
value
.
validate
((
valid
)
=>
{
if
(
valid
)
{
if
(
valid
)
{
params
=
{
let
params
=
{
...
props
.
authorizeFormData
,
...
state
.
authorizeFormData
,
};
};
axios
.
post
(
"
/
apaas/system/v5
/sysOptions/licenseOpts
"
,
params
).
then
((
res
)
=>
{
axios
.
post
(
"
/
v1/api
/sysOptions/licenseOpts
"
,
params
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
if
(
res
.
data
.
code
==
200
)
{
ElMessage
.
success
(
res
.
data
.
msg
);
ElMessage
.
success
(
res
.
data
.
msg
);
}
else
{
}
else
{
...
@@ -87,8 +95,9 @@ const save = () => {
...
@@ -87,8 +95,9 @@ const save = () => {
}
}
});
});
};
};
const
{
authorizeRules
}
=
toRefs
(
state
);
const
{
authorize
FormData
,
authorize
Rules
}
=
toRefs
(
state
);
defineExpose
({
defineExpose
({
setFormData
,
save
,
save
,
});
});
</
script
>
</
script
>
src/page/main/system-admin/preference/index.vue
View file @
3ff8cf65
...
@@ -20,19 +20,13 @@
...
@@ -20,19 +20,13 @@
</div>
</div>
<div
class=
"right_container bgc_white"
>
<div
class=
"right_container bgc_white"
>
<!-- license授权表单 -->
<!-- license授权表单 -->
<authorityForm
<authorityForm
ref=
"authorityFormRef"
v-if=
"activeIndex == 1"
></authorityForm>
ref=
"authorityFormRef"
v-if=
"activeIndex == 1"
:authorizeFormData=
"authorizeFormData"
></authorityForm>
<loginPageForm
<loginPageForm
ref=
"loginPageFormRef"
v-if=
"activeIndex == 2"
></loginPageForm>
ref=
"loginPageFormRef"
v-if=
"activeIndex == 2"
:loginPageFormData=
"loginPageFormData"
></loginPageForm>
<!-- 安全相关表单 -->
<!-- 安全相关表单 -->
<secureForm
ref=
"secureFormRef"
v-if=
"activeIndex == 3"
:secureFormData=
"secureFormData"
></secureForm>
<secureForm
ref=
"secureFormRef"
v-if=
"activeIndex == 3"
></secureForm>
<!-- 登录注册配置表单 -->
<!-- 登录注册配置表单 -->
<registerForm
ref=
"registerFormRef"
v-if=
"activeIndex == 4"
:registerFormData=
"registerFormData"
></registerForm>
<registerForm
ref=
"registerFormRef"
v-if=
"activeIndex == 4"
></registerForm>
<div
class=
"operate_btns"
>
<div
class=
"operate_btns"
>
<el-button
type=
"primary"
@
click=
"save"
>
保存
</el-button>
<el-button
type=
"primary"
@
click=
"save"
>
保存
</el-button>
</div>
</div>
...
@@ -51,7 +45,7 @@
...
@@ -51,7 +45,7 @@
</template>
</template>
<
script
setup
>
<
script
setup
>
import
{
reactive
,
toRefs
,
onBeforeMount
,
ref
}
from
"
vue
"
;
import
{
reactive
,
toRefs
,
onBeforeMount
,
ref
,
nextTick
}
from
"
vue
"
;
import
bgBreadcrumb
from
"
@/components/bg-breadcrumb.vue
"
;
import
bgBreadcrumb
from
"
@/components/bg-breadcrumb.vue
"
;
import
{
ElMessage
}
from
"
element-plus
"
;
import
{
ElMessage
}
from
"
element-plus
"
;
import
authorityForm
from
"
./authorityForm.vue
"
;
import
authorityForm
from
"
./authorityForm.vue
"
;
...
@@ -65,73 +59,45 @@ const loginPageFormRef = ref(null);
...
@@ -65,73 +59,45 @@ const loginPageFormRef = ref(null);
const
secureFormRef
=
ref
(
null
);
const
secureFormRef
=
ref
(
null
);
const
registerFormRef
=
ref
(
null
);
const
registerFormRef
=
ref
(
null
);
const
state
=
reactive
({
const
state
=
reactive
({
//授权信息表单
authorizeFormData
:
{
id
:
""
,
system_version
:
""
,
system_user
:
""
,
license
:
""
,
license_dead_date
:
""
,
license_inform_day
:
""
,
},
//登录页表单
loginPageFormData
:
{
logoUrl
:
[],
backgroundUrl
:
[],
patent
:
""
,
icpFiling
:
""
,
icpUrl
:
""
,
publicSecurityFiling
:
""
,
publicSecurityUrl
:
""
,
legalStatementUrl
:
""
,
privacyPolicyUrl
:
""
,
},
//安全相关信息表单
secureFormData
:
{
id
:
""
,
min_pwd_level
:
""
,
force_update_state
:
0
,
pwd_validity
:
""
,
session_validity
:
""
,
access_rule_state
:
""
,
},
//登录注册配置表单
registerFormData
:
{
id
:
""
,
login_config_state
:
0
,
login_limit_time
:
""
,
login_pwd_error
:
""
,
login_lock_time
:
""
,
register_config_state
:
0
,
},
//选中项索引
//选中项索引
activeIndex
:
1
,
activeIndex
:
1
,
restoreDialog
:
false
,
restoreDialog
:
false
,
//首选项配置数据
sysOptions
:
{},
});
});
const
{
authorizeFormData
,
loginPageFormData
,
secureFormData
,
registerFormData
,
activeIndex
,
restoreDialog
}
=
const
{
activeIndex
,
restoreDialog
}
=
toRefs
(
state
);
toRefs
(
state
);
onBeforeMount
(()
=>
{
onBeforeMount
(()
=>
{
getPreferenceConfig
();
getPreferenceConfig
();
});
});
//切换菜单选项
//切换菜单选项
const
switchMenu
=
(
index
)
=>
{
const
switchMenu
=
(
index
)
=>
{
state
.
activeIndex
=
index
;
state
.
activeIndex
=
index
;
nextTick
(()
=>
{
switch
(
index
)
{
case
"
1
"
:
authorityFormRef
.
value
.
setFormData
(
state
.
sysOptions
);
break
;
case
"
2
"
:
loginPageFormRef
.
value
.
setFormData
(
state
.
sysOptions
);
break
;
case
"
3
"
:
secureFormRef
.
value
.
setFormData
(
state
.
sysOptions
);
break
;
case
"
4
"
:
registerFormRef
.
value
.
setFormData
(
state
.
sysOptions
);
break
;
default
:
break
;
}
});
};
};
//获取首选项配置
//获取首选项配置
const
getPreferenceConfig
=
()
=>
{
const
getPreferenceConfig
=
()
=>
{
axios
.
get
(
"
/
apaas/system/v5
/sysOptions
"
).
then
((
res
)
=>
{
axios
.
get
(
"
/
v1/api
/sysOptions
"
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
if
(
res
.
data
.
code
==
200
)
{
let
data
=
res
.
data
.
data
;
let
data
=
res
.
data
.
data
;
Object
.
keys
(
state
.
authorizeFormData
).
forEach
((
item
)
=>
{
state
.
sysOptions
=
data
;
state
.
authorizeFormData
[
item
]
=
data
[
item
];
authorityFormRef
.
value
.
setFormData
(
data
);
});
Object
.
keys
(
state
.
secureFormData
).
forEach
((
item
)
=>
{
state
.
secureFormData
[
item
]
=
data
[
item
];
});
Object
.
keys
(
state
.
registerFormData
).
forEach
((
item
)
=>
{
state
.
registerFormData
[
item
]
=
data
[
item
];
});
}
else
{
}
else
{
ElMessage
.
error
(
res
.
data
.
data
);
ElMessage
.
error
(
res
.
data
.
data
);
}
}
...
@@ -141,16 +107,16 @@ const getPreferenceConfig = () => {
...
@@ -141,16 +107,16 @@ const getPreferenceConfig = () => {
//保存表单项
//保存表单项
const
save
=
()
=>
{
const
save
=
()
=>
{
switch
(
state
.
activeIndex
)
{
switch
(
state
.
activeIndex
)
{
case
1
:
case
"
1
"
:
authorityFormRef
.
value
.
save
();
authorityFormRef
.
value
.
save
();
break
;
break
;
case
2
:
case
"
2
"
:
loginPageFormRef
.
value
.
save
();
loginPageFormRef
.
value
.
save
();
break
;
break
;
case
3
:
case
"
3
"
:
secureFormRef
.
value
.
save
();
secureFormRef
.
value
.
save
();
break
;
break
;
case
4
:
case
"
4
"
:
registerFormRef
.
value
.
save
();
registerFormRef
.
value
.
save
();
break
;
break
;
default
:
default
:
...
...
src/page/main/system-admin/preference/loginPageForm.vue
View file @
3ff8cf65
...
@@ -6,9 +6,9 @@
...
@@ -6,9 +6,9 @@
:rules=
"loginPageRules"
:rules=
"loginPageRules"
label-width=
"96px"
label-width=
"96px"
class=
"registerForm"
>
class=
"registerForm"
>
<el-form-item
label=
"LOGO"
prop=
"logo
Url
"
>
<el-form-item
label=
"LOGO"
prop=
"logo"
>
<bg-upload-image
<bg-upload-image
v-model=
"loginPageFormData.logo
Url
"
v-model=
"loginPageFormData.logo"
:showTips=
"true"
:showTips=
"true"
customTips=
"请选择图片上传:支持jpg、png等格式,图片需小于500KB"
customTips=
"请选择图片上传:支持jpg、png等格式,图片需小于500KB"
:fileSize=
"500"
:fileSize=
"500"
...
@@ -18,9 +18,9 @@
...
@@ -18,9 +18,9 @@
@
change=
"changeLogo"
@
change=
"changeLogo"
:accept=
"['.jpg', '.jpeg', '.png']"
></bg-upload-image>
:accept=
"['.jpg', '.jpeg', '.png']"
></bg-upload-image>
</el-form-item>
</el-form-item>
<el-form-item
label=
"登录背景图"
prop=
"b
ackgroundUrl
"
>
<el-form-item
label=
"登录背景图"
prop=
"b
g_image
"
>
<bg-upload-image
<bg-upload-image
v-model=
"loginPageFormData.b
ackgroundUrl
"
v-model=
"loginPageFormData.b
g_image
"
:fileSize=
"2"
:fileSize=
"2"
:showTips=
"true"
:showTips=
"true"
customTips=
"请选择图片上传:大小1920 * 1026像素支持jpg、png等格式,图片需小于2MB"
customTips=
"请选择图片上传:大小1920 * 1026像素支持jpg、png等格式,图片需小于2MB"
...
@@ -30,41 +30,37 @@
...
@@ -30,41 +30,37 @@
:accept=
"['.jpg', '.jpeg', '.png']"
></bg-upload-image>
:accept=
"['.jpg', '.jpeg', '.png']"
></bg-upload-image>
</el-form-item>
</el-form-item>
<bg-form-gap
title=
"底部所有权内容"
></bg-form-gap>
<bg-form-gap
title=
"底部所有权内容"
></bg-form-gap>
<el-form-item
label=
"内容"
prop=
"
patent
"
>
<el-form-item
label=
"内容"
prop=
"
bottom_title
"
>
<el-input
<el-input
v-model.trim=
"loginPageFormData.
patent
"
v-model.trim=
"loginPageFormData.
bottom_title
"
placeholder=
"例如:Copyright © 某某大数据, All Rights Reserved."
></el-input>
placeholder=
"例如:Copyright © 某某大数据, All Rights Reserved."
></el-input>
</el-form-item>
</el-form-item>
<bg-form-gap
title=
"底部ICP备案"
></bg-form-gap>
<bg-form-gap
title=
"底部ICP备案"
></bg-form-gap>
<el-form-item
label=
"内容"
prop=
"icp
Filing
"
>
<el-form-item
label=
"内容"
prop=
"icp"
>
<el-input
placeholder=
"请输入"
v-model.trim=
"loginPageFormData.icp
Filing
"
></el-input>
<el-input
placeholder=
"请输入"
v-model.trim=
"loginPageFormData.icp"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"跳转连接"
prop=
"icp
U
rl"
>
<el-form-item
label=
"跳转连接"
prop=
"icp
_u
rl"
>
<el-input
placeholder=
"例如:https://...或http://..."
v-model.trim=
"loginPageFormData.icp
U
rl"
></el-input>
<el-input
placeholder=
"例如:https://...或http://..."
v-model.trim=
"loginPageFormData.icp
_u
rl"
></el-input>
</el-form-item>
</el-form-item>
<bg-form-gap
title=
"底部公安网备案"
></bg-form-gap>
<bg-form-gap
title=
"底部公安网备案"
></bg-form-gap>
<el-form-item
label=
"内容"
prop=
"p
ublicSecurityFiling
"
>
<el-form-item
label=
"内容"
prop=
"p
olice
"
>
<el-input
placeholder=
"请输入"
v-model.trim=
"loginPageFormData.p
ublicSecurityFiling
"
></el-input>
<el-input
placeholder=
"请输入"
v-model.trim=
"loginPageFormData.p
olice
"
></el-input>
</el-form-item>
</el-form-item>
<el-form-item
label=
"跳转连接"
prop=
"publicSecurityUrl"
>
<el-form-item
label=
"跳转连接"
prop=
"police_url"
>
<el-input
<el-input
placeholder=
"例如:https://...或http://..."
v-model.trim=
"loginPageFormData.police_url"
></el-input>
placeholder=
"例如:https://...或http://..."
v-model.trim=
"loginPageFormData.publicSecurityUrl"
></el-input>
</el-form-item>
</el-form-item>
<bg-form-gap
title=
"法律声明"
></bg-form-gap>
<bg-form-gap
title=
"法律声明"
></bg-form-gap>
<el-form-item
label=
"跳转连接"
prop=
"legalStatementUrl"
>
<el-form-item
label=
"跳转连接"
prop=
"legal_notice"
>
<el-input
<el-input
placeholder=
"例如:https://...或http://..."
v-model.trim=
"loginPageFormData.legal_notice"
></el-input>
placeholder=
"例如:https://...或http://..."
v-model.trim=
"loginPageFormData.legalStatementUrl"
></el-input>
</el-form-item>
</el-form-item>
<bg-form-gap
title=
"隐私政策"
></bg-form-gap>
<bg-form-gap
title=
"隐私政策"
></bg-form-gap>
<el-form-item
label=
"跳转连接"
prop=
"privacy
PolicyUrl
"
>
<el-form-item
label=
"跳转连接"
prop=
"privacy
_policy
"
>
<el-input
<el-input
placeholder=
"例如:https://...或http://..."
placeholder=
"例如:https://...或http://..."
v-model.trim=
"loginPageFormData.privacy
PolicyUrl
"
></el-input>
v-model.trim=
"loginPageFormData.privacy
_policy
"
></el-input>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
</div>
</div>
...
@@ -76,41 +72,59 @@ import { ElMessage } from "element-plus";
...
@@ -76,41 +72,59 @@ import { ElMessage } from "element-plus";
import
{
validateLink
}
from
"
@/services/rules.js
"
;
import
{
validateLink
}
from
"
@/services/rules.js
"
;
import
axios
from
"
@/request/http.js
"
;
import
axios
from
"
@/request/http.js
"
;
const
props
=
defineProps
({
loginPageFormData
:
{
type
:
Object
,
default
:
()
=>
({}),
},
});
const
loginPageRef
=
ref
(
null
);
const
loginPageRef
=
ref
(
null
);
const
state
=
reactive
({
const
state
=
reactive
({
loginPageFormData
:
{
id
:
""
,
logo
:
[],
bg_image
:
[],
bottom_title
:
""
,
icp
:
""
,
icp_url
:
""
,
police
:
""
,
police_url
:
""
,
legal_notice
:
""
,
privacy_policy
:
""
,
},
loginPageRules
:
{
loginPageRules
:
{
logo
Url
:
[{
required
:
true
,
message
:
"
请上传Logo
"
,
trigger
:
"
change
"
}],
logo
:
[{
required
:
true
,
message
:
"
请上传Logo
"
,
trigger
:
"
change
"
}],
b
ackgroundUrl
:
[{
required
:
true
,
message
:
"
请上传背景图
"
,
trigger
:
"
change
"
}],
b
g_image
:
[{
required
:
true
,
message
:
"
请上传背景图
"
,
trigger
:
"
change
"
}],
icp
U
rl
:
[{
validator
:
validateLink
,
trigger
:
"
blur
"
}],
icp
_u
rl
:
[{
validator
:
validateLink
,
trigger
:
"
blur
"
}],
p
ublicSecurityU
rl
:
[{
validator
:
validateLink
,
trigger
:
"
blur
"
}],
p
olice_u
rl
:
[{
validator
:
validateLink
,
trigger
:
"
blur
"
}],
legal
StatementUrl
:
[{
validator
:
validateLink
,
trigger
:
"
blur
"
}],
legal
_notice
:
[{
validator
:
validateLink
,
trigger
:
"
blur
"
}],
privacy
PolicyUrl
:
[{
validator
:
validateLink
,
trigger
:
"
blur
"
}],
privacy
_policy
:
[{
validator
:
validateLink
,
trigger
:
"
blur
"
}],
},
},
});
});
const
changeLogo
=
(
value
)
=>
{
const
changeLogo
=
(
value
)
=>
{
if
(
value
&&
value
.
length
>
0
)
{
if
(
value
&&
value
.
length
>
0
)
{
loginPageRef
.
value
.
clearValidate
(
"
logo
Url
"
);
loginPageRef
.
value
.
clearValidate
(
"
logo
"
);
}
}
};
};
const
changeBanner
=
(
value
)
=>
{
const
changeBanner
=
(
value
)
=>
{
if
(
value
&&
value
.
length
>
0
)
{
if
(
value
&&
value
.
length
>
0
)
{
refForm
.
value
.
clearValidate
(
"
backgroundUrl
"
);
loginPageRef
.
value
.
clearValidate
(
"
bg_image
"
);
}
}
};
};
//设置表单数据
const
setFormData
=
(
data
)
=>
{
Object
.
keys
(
state
.
loginPageFormData
).
forEach
((
item
)
=>
{
if
([
"
bg_image
"
,
"
logo
"
].
includes
(
item
))
{
state
.
loginPageFormData
[
item
]
=
data
[
item
]
?
JSON
.
parse
(
data
[
item
])
:
[];
return
;
}
state
.
loginPageFormData
[
item
]
=
data
[
item
];
});
};
//保存
//保存
const
save
=
()
=>
{
const
save
=
()
=>
{
loginPageRef
.
value
.
validate
((
valid
)
=>
{
loginPageRef
.
value
.
validate
((
valid
)
=>
{
if
(
valid
)
{
if
(
valid
)
{
params
=
{
let
params
=
{
...
props
.
loginPageFormData
,
...
state
.
loginPageFormData
,
};
};
axios
.
post
(
"
/apaas/system/v5/sysOptions/licenseOpts
"
,
params
).
then
((
res
)
=>
{
params
.
logo
=
JSON
.
stringify
(
params
.
logo
);
params
.
bg_image
=
JSON
.
stringify
(
params
.
bg_image
);
axios
.
post
(
"
/v1/api/sysOptions/loginPageOpts
"
,
params
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
if
(
res
.
data
.
code
==
200
)
{
ElMessage
.
success
(
res
.
data
.
msg
);
ElMessage
.
success
(
res
.
data
.
msg
);
}
else
{
}
else
{
...
@@ -120,8 +134,9 @@ const save = () => {
...
@@ -120,8 +134,9 @@ const save = () => {
}
}
});
});
};
};
const
{
loginPageRules
}
=
toRefs
(
state
);
const
{
loginPage
FormData
,
loginPage
Rules
}
=
toRefs
(
state
);
defineExpose
({
defineExpose
({
setFormData
,
save
,
save
,
});
});
</
script
>
</
script
>
...
...
src/page/main/system-admin/preference/registerForm.vue
View file @
3ff8cf65
<
template
>
<
template
>
<el-form
<div>
ref=
"registerFormRef"
<el-form
:model=
"registerFormData"
ref=
"registerFormRef"
:rules=
"registerRules"
:model=
"registerFormData"
label-width=
"125px"
:rules=
"registerRules"
class=
"registerForm"
>
label-width=
"125px"
<bg-form-gap
title=
"登录受限配置"
></bg-form-gap>
class=
"registerForm"
>
<el-form-item
label=
"登录受限是否启用"
prop=
"login_config_state"
>
<bg-form-gap
title=
"登录受限配置"
></bg-form-gap>
<bg-switch
:labels=
"['否', '是']"
:values=
"[0, 1]"
v-model=
"registerFormData.login_config_state"
></bg-switch>
<el-form-item
label=
"登录受限是否启用"
prop=
"login_config_state"
>
</el-form-item>
<bg-switch
:labels=
"['否', '是']"
:values=
"[0, 1]"
v-model=
"registerFormData.login_config_state"
></bg-switch>
<div
class=
"input_password_config"
v-if=
"registerFormData.login_config_state == 1"
>
<span>
在
</span>
<el-form-item
prop=
"login_limit_time"
label-width=
"0"
>
<el-input
placeholder=
"请输入小时数"
v-model.trim.number=
"registerFormData.login_limit_time"
maxlength=
"3"
></el-input>
</el-form-item>
</el-form-item>
<span>
小时内
</span>
<div
class=
"input_password_config"
v-if=
"registerFormData.login_config_state == 1"
>
<el-form-item
prop=
"login_pwd_error"
label-width=
"0"
>
<span>
在
</span>
<el-input
<el-form-item
prop=
"login_limit_time"
label-width=
"0"
>
placeholder=
"请输入密码输错次数"
<el-input
v-model.trim.number=
"registerFormData.login_pwd_error"
placeholder=
"请输入小时数"
maxlength=
"3"
></el-input>
v-model.trim.number=
"registerFormData.login_limit_time"
</el-form-item>
maxlength=
"3"
></el-input>
<span>
次输错密码,自动锁定
</span>
</el-form-item>
<el-form-item
prop=
"login_lock_time"
label-width=
"0"
>
<span>
小时内
</span>
<el-input
<el-form-item
prop=
"login_pwd_error"
label-width=
"0"
>
placeholder=
"请输入分钟数"
<el-input
v-model.trim.number=
"registerFormData.login_lock_time"
placeholder=
"请输入密码输错次数"
maxlength=
"3"
></el-input>
v-model.trim.number=
"registerFormData.login_pwd_error"
</el-form-item>
maxlength=
"3"
></el-input>
<span>
分钟
</span>
</el-form-item>
<el-button
type=
"primary"
@
click=
"restoreDialog = true"
>
一键还原受限
</el-button>
<span>
次输错密码,自动锁定
</span>
<el-tooltip
placement=
"top-start"
effect=
"light"
>
<el-form-item
prop=
"login_lock_time"
label-width=
"0"
>
<template
#content
>
<el-input
<span>
必须为大于0的正整数且不能为空
</span>
placeholder=
"请输入分钟数"
<br
/>
v-model.trim.number=
"registerFormData.login_lock_time"
<span>
一键还原按钮将所有锁定的账号解锁并将输错次数还原
</span>
maxlength=
"3"
></el-input>
</
template
>
</el-form-item>
<div
class=
"tip-image"
></div>
<span>
分钟
</span>
</el-tooltip>
<el-button
type=
"primary"
@
click=
"restoreDialog = true"
>
一键还原受限
</el-button>
</div>
<el-tooltip
placement=
"top-start"
effect=
"light"
>
<bg-form-gap
title=
"注册配置"
></bg-form-gap>
<template
#content
>
<el-form-item
label=
"允许注册"
prop=
"register_config_state"
>
<span>
必须为大于0的正整数且不能为空
</span>
<el-radio-group
v-model=
"registerFormData.register_config_state"
>
<br
/>
<el-radio
:label=
"1"
>
是
</el-radio>
<span>
一键还原按钮将所有锁定的账号解锁并将输错次数还原
</span>
<el-radio
:label=
"0"
>
否
</el-radio>
</
template
>
</el-radio-group>
<div
class=
"tip-image"
></div>
</el-form-item>
</el-tooltip>
</el-form>
</div>
</el-form>
<el-dialog
class=
"dialog_box"
title=
"提示"
v-model=
"restoreDialog"
width=
"420px"
>
<div>
该操作将还原所有锁定账号和输错次数,是否继续?
</div>
<
template
v-slot:footer
>
<div
class=
"apaas_button"
>
<el-button
type=
"default"
@
click=
"restoreDialog = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"confirm"
>
确 定
</el-button>
</div>
</
template
>
</el-dialog>
</div>
</template>
</template>
<
script
setup
>
<
script
setup
>
...
@@ -58,14 +62,15 @@ import { ElMessage } from "element-plus";
...
@@ -58,14 +62,15 @@ import { ElMessage } from "element-plus";
import
axios
from
"
@/request/http.js
"
;
import
axios
from
"
@/request/http.js
"
;
const
registerFormRef
=
ref
(
null
);
const
registerFormRef
=
ref
(
null
);
const
props
=
defineProps
({
registerFormData
:
{
type
:
Object
,
default
:
()
=>
({}),
},
});
const
state
=
reactive
({
const
state
=
reactive
({
registerFormData
:
{
id
:
""
,
login_config_state
:
0
,
login_limit_time
:
""
,
login_pwd_error
:
""
,
login_lock_time
:
""
,
},
registerRules
:
{
registerRules
:
{
login_limit_time
:
[
login_limit_time
:
[
{
{
...
@@ -92,20 +97,39 @@ const state = reactive({
...
@@ -92,20 +97,39 @@ const state = reactive({
},
},
],
],
},
},
//一键还原受限弹框
restoreDialog
:
false
,
});
});
//设置表单数据
const
setFormData
=
(
data
)
=>
{
Object
.
keys
(
state
.
registerFormData
).
forEach
((
item
)
=>
{
state
.
registerFormData
[
item
]
=
data
[
item
];
});
};
//一键还原受限确定
const
confirm
=
()
=>
{
axios
.
post
(
`/v1/api/sysOptions/reStartConfig`
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
ElMessage
.
success
(
res
.
data
.
msg
);
state
.
restoreDialog
=
false
;
}
else
{
ElMessage
.
error
(
res
.
data
.
data
);
}
});
};
//保存
//保存
const
save
=
()
=>
{
const
save
=
()
=>
{
registerFormRef
.
value
.
validate
((
valid
)
=>
{
registerFormRef
.
value
.
validate
((
valid
)
=>
{
if
(
valid
)
{
if
(
valid
)
{
params
=
{
let
params
=
{
...
props
.
registerFormData
,
...
state
.
registerFormData
,
};
};
if
(
params
.
login_config_state
==
0
)
{
if
(
params
.
login_config_state
==
0
)
{
params
.
login_limit_time
=
0
;
params
.
login_limit_time
=
0
;
params
.
login_pwd_error
=
0
;
params
.
login_pwd_error
=
0
;
params
.
login_lock_time
=
0
;
params
.
login_lock_time
=
0
;
}
}
axios
.
post
(
"
/
apaas/system/v5
/sysOptions/loginOpts
"
,
params
).
then
((
res
)
=>
{
axios
.
post
(
"
/
v1/api
/sysOptions/loginOpts
"
,
params
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
if
(
res
.
data
.
code
==
200
)
{
ElMessage
.
success
(
res
.
data
.
msg
);
ElMessage
.
success
(
res
.
data
.
msg
);
}
else
{
}
else
{
...
@@ -115,8 +139,9 @@ const save = () => {
...
@@ -115,8 +139,9 @@ const save = () => {
}
}
});
});
};
};
const
{
register
Rules
}
=
toRefs
(
state
);
const
{
register
FormData
,
registerRules
,
restoreDialog
}
=
toRefs
(
state
);
defineExpose
({
defineExpose
({
setFormData
,
save
,
save
,
});
});
</
script
>
</
script
>
src/page/main/system-admin/preference/secureForm.vue
View file @
3ff8cf65
...
@@ -79,15 +79,17 @@ import { ElMessage } from "element-plus";
...
@@ -79,15 +79,17 @@ import { ElMessage } from "element-plus";
import
axios
from
"
@/request/http.js
"
;
import
axios
from
"
@/request/http.js
"
;
const
secureFormRef
=
ref
(
null
);
const
secureFormRef
=
ref
(
null
);
const
props
=
defineProps
({
secureFormData
:
{
type
:
Object
,
default
:
()
=>
({
}
),
}
,
}
);
const
session_validity_max
=
window
.
defaultConfig
.
session_validity_max
;
const
session_validity_max
=
window
.
defaultConfig
.
session_validity_max
;
const
state
=
reactive
({
const
state
=
reactive
({
secureFormData
:
{
id
:
""
,
min_pwd_level
:
""
,
force_update_state
:
0
,
pwd_validity
:
""
,
session_validity
:
""
,
access_rule_state
:
""
,
}
,
//安全相关表单校验规则
//安全相关表单校验规则
secureRules
:
{
secureRules
:
{
pwd_validity
:
[
pwd_validity
:
[
...
@@ -108,14 +110,20 @@ const state = reactive({
...
@@ -108,14 +110,20 @@ const state = reactive({
],
],
}
,
}
,
}
);
}
);
//设置表单数据
const
setFormData
=
(
data
)
=>
{
Object
.
keys
(
state
.
secureFormData
).
forEach
((
item
)
=>
{
state
.
secureFormData
[
item
]
=
data
[
item
];
}
);
}
;
//保存
//保存
const
save
=
()
=>
{
const
save
=
()
=>
{
secureFormRef
.
value
.
validate
((
valid
)
=>
{
secureFormRef
.
value
.
validate
((
valid
)
=>
{
if
(
valid
)
{
if
(
valid
)
{
params
=
{
let
params
=
{
...
props
.
secureFormData
,
...
state
.
secureFormData
,
}
;
}
;
axios
.
post
(
"
/
apaas/system/v5
/sysOptions/safeOpts
"
,
params
).
then
((
res
)
=>
{
axios
.
post
(
"
/
v1/api
/sysOptions/safeOpts
"
,
params
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
if
(
res
.
data
.
code
==
200
)
{
ElMessage
.
success
(
res
.
data
.
msg
);
ElMessage
.
success
(
res
.
data
.
msg
);
}
else
{
}
else
{
...
@@ -125,9 +133,10 @@ const save = () => {
...
@@ -125,9 +133,10 @@ const save = () => {
}
}
}
);
}
);
}
;
}
;
const
{
secureRules
}
=
toRefs
(
state
);
const
{
secure
FormData
,
secure
Rules
}
=
toRefs
(
state
);
defineExpose
({
defineExpose
({
setFormData
,
save
,
save
,
}
);
}
);
<
/script
>
<
/script
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment