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
Commit
3ff8cf65
authored
Jul 07, 2023
by
李鹏
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
首选项配置以及优化
parent
f98f6192
Changes
6
Show 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 @@
class=
"login-container"
:style=
"
{
'background-image': `url(${
configOptions.backgroundUrl
? JSON.parse(configOptions.backgroundUrl)[0].url
: getImageUrl('bg.png')
configOptions.backgroundUrl ? JSON.parse(configOptions.backgroundUrl)[0].url : getImageUrl('bg.png')
})`,
}">
<el-alert
v-if=
"showValidityDays"
class=
"bg-warning"
:title=
"validityTips"
type=
"warning"
/>
...
...
@@ -15,11 +13,7 @@
</div>
-->
<div
class=
"bg-content"
>
<bg-tabs
class=
"login-tab"
v-model=
"loginTab"
style=
"width: 480px"
v-if=
"pageType === 'login'"
>
<bg-tabs
class=
"login-tab"
v-model=
"loginTab"
style=
"width: 480px"
v-if=
"pageType === 'login'"
>
<bg-tab
label=
"账号密码登录"
name=
"account"
>
<LoginByAccount
@
register=
"switchPageType('account')"
@
password=
"password"
/>
</bg-tab>
...
...
@@ -33,9 +27,7 @@
<div
class=
"bg-msg"
>
<p
v-if=
"configOptions && configOptions.patent"
>
{{
configOptions
.
patent
}}
</p>
<p
v-if=
"configOptions"
>
<span
class=
"can_click_text"
@
click=
"open(configOptions.icpUrl)"
>
{{
configOptions
.
icpFiling
}}
|
</span>
<span
class=
"can_click_text"
@
click=
"open(configOptions.icpUrl)"
>
{{
configOptions
.
icpFiling
}}
|
</span>
<span
class=
"can_click_text"
@
click=
"open(configOptions.publicSecurityUrl)"
>
{{
configOptions
.
publicSecurityFiling
}}
</span>
...
...
@@ -104,7 +96,7 @@ const getLoginPageConfig = () => {
};
//获取首选项配置
const
getSysOptions
=
()
=>
{
axios
.
get
(
`/
apaas/system/v5
/sysOptions`
).
then
((
res
)
=>
{
axios
.
get
(
`/
v1/api
/sysOptions`
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
const
result
=
res
.
data
.
data
||
{};
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";
import
{
ElMessage
}
from
"
element-plus
"
;
import
axios
from
"
@/request/http.js
"
;
const
props
=
defineProps
({
const
state
=
reactive
({
authorizeFormData
:
{
type
:
Object
,
default
:
()
=>
({}),
id
:
""
,
system_version
:
""
,
system_user
:
""
,
license
:
""
,
license_dead_date
:
""
,
license_inform_day
:
""
,
},
});
const
state
=
reactive
({
authorizeRules
:
{
license_inform_day
:
[{
type
:
"
number
"
,
min
:
0
,
max
:
90
,
message
:
"
请输入0~90的整数
"
,
trigger
:
"
blur
"
}],
},
...
...
@@ -57,7 +59,7 @@ const authorizeFormRef = ref(null);
const
getLicenseInfo
=
()
=>
{
if
(
!
state
.
authorizeFormData
.
license
)
return
;
axios
.
post
(
"
/
apaas/system/v5
/sysOptions/getLicenseInfo
"
,
{
.
post
(
"
/
v1/api
/sysOptions/getLicenseInfo
"
,
{
license
:
state
.
authorizeFormData
.
license
,
})
.
then
((
res
)
=>
{
...
...
@@ -70,14 +72,20 @@ const getLicenseInfo = () => {
}
});
};
//设置表单数据
const
setFormData
=
(
data
)
=>
{
Object
.
keys
(
state
.
authorizeFormData
).
forEach
((
item
)
=>
{
state
.
authorizeFormData
[
item
]
=
data
[
item
];
});
};
//保存
const
save
=
()
=>
{
authorizeFormRef
.
value
.
validate
((
valid
)
=>
{
if
(
valid
)
{
params
=
{
...
props
.
authorizeFormData
,
let
params
=
{
...
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
)
{
ElMessage
.
success
(
res
.
data
.
msg
);
}
else
{
...
...
@@ -87,8 +95,9 @@ const save = () => {
}
});
};
const
{
authorizeRules
}
=
toRefs
(
state
);
const
{
authorize
FormData
,
authorize
Rules
}
=
toRefs
(
state
);
defineExpose
({
setFormData
,
save
,
});
</
script
>
src/page/main/system-admin/preference/index.vue
View file @
3ff8cf65
...
...
@@ -20,19 +20,13 @@
</div>
<div
class=
"right_container bgc_white"
>
<!-- license授权表单 -->
<authorityForm
ref=
"authorityFormRef"
v-if=
"activeIndex == 1"
:authorizeFormData=
"authorizeFormData"
></authorityForm>
<authorityForm
ref=
"authorityFormRef"
v-if=
"activeIndex == 1"
></authorityForm>
<loginPageForm
ref=
"loginPageFormRef"
v-if=
"activeIndex == 2"
:loginPageFormData=
"loginPageFormData"
></loginPageForm>
<loginPageForm
ref=
"loginPageFormRef"
v-if=
"activeIndex == 2"
></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"
>
<el-button
type=
"primary"
@
click=
"save"
>
保存
</el-button>
</div>
...
...
@@ -51,7 +45,7 @@
</template>
<
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
{
ElMessage
}
from
"
element-plus
"
;
import
authorityForm
from
"
./authorityForm.vue
"
;
...
...
@@ -65,73 +59,45 @@ const loginPageFormRef = ref(null);
const
secureFormRef
=
ref
(
null
);
const
registerFormRef
=
ref
(
null
);
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
,
restoreDialog
:
false
,
//首选项配置数据
sysOptions
:
{},
});
const
{
authorizeFormData
,
loginPageFormData
,
secureFormData
,
registerFormData
,
activeIndex
,
restoreDialog
}
=
toRefs
(
state
);
const
{
activeIndex
,
restoreDialog
}
=
toRefs
(
state
);
onBeforeMount
(()
=>
{
getPreferenceConfig
();
});
//切换菜单选项
const
switchMenu
=
(
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
=
()
=>
{
axios
.
get
(
"
/
apaas/system/v5
/sysOptions
"
).
then
((
res
)
=>
{
axios
.
get
(
"
/
v1/api
/sysOptions
"
).
then
((
res
)
=>
{
if
(
res
.
data
.
code
==
200
)
{
let
data
=
res
.
data
.
data
;
Object
.
keys
(
state
.
authorizeFormData
).
forEach
((
item
)
=>
{
state
.
authorizeFormData
[
item
]
=
data
[
item
];
});
Object
.
keys
(
state
.
secureFormData
).
forEach
((
item
)
=>
{
state
.
secureFormData
[
item
]
=
data
[
item
];
});
Object
.
keys
(
state
.
registerFormData
).
forEach
((
item
)
=>
{
state
.
registerFormData
[
item
]
=
data
[
item
];
});
state
.
sysOptions
=
data
;
authorityFormRef
.
value
.
setFormData
(
data
);
}
else
{
ElMessage
.
error
(
res
.
data
.
data
);
}
...
...
@@ -141,16 +107,16 @@ const getPreferenceConfig = () => {
//保存表单项
const
save
=
()
=>
{
switch
(
state
.
activeIndex
)
{
case
1
:
case
"
1
"
:
authorityFormRef
.
value
.
save
();
break
;
case
2
:
case
"
2
"
:
loginPageFormRef
.
value
.
save
();
break
;
case
3
:
case
"
3
"
:
secureFormRef
.
value
.
save
();
break
;
case
4
:
case
"
4
"
:
registerFormRef
.
value
.
save
();
break
;
default
:
...
...
src/page/main/system-admin/preference/loginPageForm.vue
View file @
3ff8cf65
...
...
@@ -6,9 +6,9 @@
:rules=
"loginPageRules"
label-width=
"96px"
class=
"registerForm"
>
<el-form-item
label=
"LOGO"
prop=
"logo
Url
"
>
<el-form-item
label=
"LOGO"
prop=
"logo"
>
<bg-upload-image
v-model=
"loginPageFormData.logo
Url
"
v-model=
"loginPageFormData.logo"
:showTips=
"true"
customTips=
"请选择图片上传:支持jpg、png等格式,图片需小于500KB"
:fileSize=
"500"
...
...
@@ -18,9 +18,9 @@
@
change=
"changeLogo"
:accept=
"['.jpg', '.jpeg', '.png']"
></bg-upload-image>
</el-form-item>
<el-form-item
label=
"登录背景图"
prop=
"b
ackgroundUrl
"
>
<el-form-item
label=
"登录背景图"
prop=
"b
g_image
"
>
<bg-upload-image
v-model=
"loginPageFormData.b
ackgroundUrl
"
v-model=
"loginPageFormData.b
g_image
"
:fileSize=
"2"
:showTips=
"true"
customTips=
"请选择图片上传:大小1920 * 1026像素支持jpg、png等格式,图片需小于2MB"
...
...
@@ -30,41 +30,37 @@
:accept=
"['.jpg', '.jpeg', '.png']"
></bg-upload-image>
</el-form-item>
<bg-form-gap
title=
"底部所有权内容"
></bg-form-gap>
<el-form-item
label=
"内容"
prop=
"
patent
"
>
<el-form-item
label=
"内容"
prop=
"
bottom_title
"
>
<el-input
v-model.trim=
"loginPageFormData.
patent
"
v-model.trim=
"loginPageFormData.
bottom_title
"
placeholder=
"例如:Copyright © 某某大数据, All Rights Reserved."
></el-input>
</el-form-item>
<bg-form-gap
title=
"底部ICP备案"
></bg-form-gap>
<el-form-item
label=
"内容"
prop=
"icp
Filing
"
>
<el-input
placeholder=
"请输入"
v-model.trim=
"loginPageFormData.icp
Filing
"
></el-input>
<el-form-item
label=
"内容"
prop=
"icp"
>
<el-input
placeholder=
"请输入"
v-model.trim=
"loginPageFormData.icp"
></el-input>
</el-form-item>
<el-form-item
label=
"跳转连接"
prop=
"icp
U
rl"
>
<el-input
placeholder=
"例如:https://...或http://..."
v-model.trim=
"loginPageFormData.icp
U
rl"
></el-input>
<el-form-item
label=
"跳转连接"
prop=
"icp
_u
rl"
>
<el-input
placeholder=
"例如:https://...或http://..."
v-model.trim=
"loginPageFormData.icp
_u
rl"
></el-input>
</el-form-item>
<bg-form-gap
title=
"底部公安网备案"
></bg-form-gap>
<el-form-item
label=
"内容"
prop=
"p
ublicSecurityFiling
"
>
<el-input
placeholder=
"请输入"
v-model.trim=
"loginPageFormData.p
ublicSecurityFiling
"
></el-input>
<el-form-item
label=
"内容"
prop=
"p
olice
"
>
<el-input
placeholder=
"请输入"
v-model.trim=
"loginPageFormData.p
olice
"
></el-input>
</el-form-item>
<el-form-item
label=
"跳转连接"
prop=
"publicSecurityUrl"
>
<el-input
placeholder=
"例如:https://...或http://..."
v-model.trim=
"loginPageFormData.publicSecurityUrl"
></el-input>
<el-form-item
label=
"跳转连接"
prop=
"police_url"
>
<el-input
placeholder=
"例如:https://...或http://..."
v-model.trim=
"loginPageFormData.police_url"
></el-input>
</el-form-item>
<bg-form-gap
title=
"法律声明"
></bg-form-gap>
<el-form-item
label=
"跳转连接"
prop=
"legalStatementUrl"
>
<el-input
placeholder=
"例如:https://...或http://..."
v-model.trim=
"loginPageFormData.legalStatementUrl"
></el-input>
<el-form-item
label=
"跳转连接"
prop=
"legal_notice"
>
<el-input
placeholder=
"例如:https://...或http://..."
v-model.trim=
"loginPageFormData.legal_notice"
></el-input>
</el-form-item>
<bg-form-gap
title=
"隐私政策"
></bg-form-gap>
<el-form-item
label=
"跳转连接"
prop=
"privacy
PolicyUrl
"
>
<el-form-item
label=
"跳转连接"
prop=
"privacy
_policy
"
>
<el-input
placeholder=
"例如:https://...或http://..."
v-model.trim=
"loginPageFormData.privacy
PolicyUrl
"
></el-input>
v-model.trim=
"loginPageFormData.privacy
_policy
"
></el-input>
</el-form-item>
</el-form>
</div>
...
...
@@ -76,41 +72,59 @@ import { ElMessage } from "element-plus";
import
{
validateLink
}
from
"
@/services/rules.js
"
;
import
axios
from
"
@/request/http.js
"
;
const
props
=
defineProps
({
loginPageFormData
:
{
type
:
Object
,
default
:
()
=>
({}),
},
});
const
loginPageRef
=
ref
(
null
);
const
state
=
reactive
({
loginPageFormData
:
{
id
:
""
,
logo
:
[],
bg_image
:
[],
bottom_title
:
""
,
icp
:
""
,
icp_url
:
""
,
police
:
""
,
police_url
:
""
,
legal_notice
:
""
,
privacy_policy
:
""
,
},
loginPageRules
:
{
logo
Url
:
[{
required
:
true
,
message
:
"
请上传Logo
"
,
trigger
:
"
change
"
}],
b
ackgroundUrl
:
[{
required
:
true
,
message
:
"
请上传背景图
"
,
trigger
:
"
change
"
}],
icp
U
rl
:
[{
validator
:
validateLink
,
trigger
:
"
blur
"
}],
p
ublicSecurityU
rl
:
[{
validator
:
validateLink
,
trigger
:
"
blur
"
}],
legal
StatementUrl
:
[{
validator
:
validateLink
,
trigger
:
"
blur
"
}],
privacy
PolicyUrl
:
[{
validator
:
validateLink
,
trigger
:
"
blur
"
}],
logo
:
[{
required
:
true
,
message
:
"
请上传Logo
"
,
trigger
:
"
change
"
}],
b
g_image
:
[{
required
:
true
,
message
:
"
请上传背景图
"
,
trigger
:
"
change
"
}],
icp
_u
rl
:
[{
validator
:
validateLink
,
trigger
:
"
blur
"
}],
p
olice_u
rl
:
[{
validator
:
validateLink
,
trigger
:
"
blur
"
}],
legal
_notice
:
[{
validator
:
validateLink
,
trigger
:
"
blur
"
}],
privacy
_policy
:
[{
validator
:
validateLink
,
trigger
:
"
blur
"
}],
},
});
const
changeLogo
=
(
value
)
=>
{
if
(
value
&&
value
.
length
>
0
)
{
loginPageRef
.
value
.
clearValidate
(
"
logo
Url
"
);
loginPageRef
.
value
.
clearValidate
(
"
logo
"
);
}
};
const
changeBanner
=
(
value
)
=>
{
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
=
()
=>
{
loginPageRef
.
value
.
validate
((
valid
)
=>
{
if
(
valid
)
{
params
=
{
...
props
.
loginPageFormData
,
let
params
=
{
...
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
)
{
ElMessage
.
success
(
res
.
data
.
msg
);
}
else
{
...
...
@@ -120,8 +134,9 @@ const save = () => {
}
});
};
const
{
loginPageRules
}
=
toRefs
(
state
);
const
{
loginPage
FormData
,
loginPage
Rules
}
=
toRefs
(
state
);
defineExpose
({
setFormData
,
save
,
});
</
script
>
...
...
src/page/main/system-admin/preference/registerForm.vue
View file @
3ff8cf65
<
template
>
<div>
<el-form
ref=
"registerFormRef"
:model=
"registerFormData"
...
...
@@ -42,14 +43,17 @@
<div
class=
"tip-image"
></div>
</el-tooltip>
</div>
<bg-form-gap
title=
"注册配置"
></bg-form-gap>
<el-form-item
label=
"允许注册"
prop=
"register_config_state"
>
<el-radio-group
v-model=
"registerFormData.register_config_state"
>
<el-radio
:label=
"1"
>
是
</el-radio>
<el-radio
:label=
"0"
>
否
</el-radio>
</el-radio-group>
</el-form-item>
</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>
<
script
setup
>
...
...
@@ -58,14 +62,15 @@ import { ElMessage } from "element-plus";
import
axios
from
"
@/request/http.js
"
;
const
registerFormRef
=
ref
(
null
);
const
props
=
defineProps
({
registerFormData
:
{
type
:
Object
,
default
:
()
=>
({}),
},
});
const
state
=
reactive
({
registerFormData
:
{
id
:
""
,
login_config_state
:
0
,
login_limit_time
:
""
,
login_pwd_error
:
""
,
login_lock_time
:
""
,
},
registerRules
:
{
login_limit_time
:
[
{
...
...
@@ -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
=
()
=>
{
registerFormRef
.
value
.
validate
((
valid
)
=>
{
if
(
valid
)
{
params
=
{
...
props
.
registerFormData
,
let
params
=
{
...
state
.
registerFormData
,
};
if
(
params
.
login_config_state
==
0
)
{
params
.
login_limit_time
=
0
;
params
.
login_pwd_error
=
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
)
{
ElMessage
.
success
(
res
.
data
.
msg
);
}
else
{
...
...
@@ -115,8 +139,9 @@ const save = () => {
}
});
};
const
{
register
Rules
}
=
toRefs
(
state
);
const
{
register
FormData
,
registerRules
,
restoreDialog
}
=
toRefs
(
state
);
defineExpose
({
setFormData
,
save
,
});
</
script
>
src/page/main/system-admin/preference/secureForm.vue
View file @
3ff8cf65
...
...
@@ -79,15 +79,17 @@ import { ElMessage } from "element-plus";
import
axios
from
"
@/request/http.js
"
;
const
secureFormRef
=
ref
(
null
);
const
props
=
defineProps
({
secureFormData
:
{
type
:
Object
,
default
:
()
=>
({
}
),
}
,
}
);
const
session_validity_max
=
window
.
defaultConfig
.
session_validity_max
;
const
state
=
reactive
({
secureFormData
:
{
id
:
""
,
min_pwd_level
:
""
,
force_update_state
:
0
,
pwd_validity
:
""
,
session_validity
:
""
,
access_rule_state
:
""
,
}
,
//安全相关表单校验规则
secureRules
:
{
pwd_validity
:
[
...
...
@@ -108,14 +110,20 @@ const state = reactive({
],
}
,
}
);
//设置表单数据
const
setFormData
=
(
data
)
=>
{
Object
.
keys
(
state
.
secureFormData
).
forEach
((
item
)
=>
{
state
.
secureFormData
[
item
]
=
data
[
item
];
}
);
}
;
//保存
const
save
=
()
=>
{
secureFormRef
.
value
.
validate
((
valid
)
=>
{
if
(
valid
)
{
params
=
{
...
props
.
secureFormData
,
let
params
=
{
...
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
)
{
ElMessage
.
success
(
res
.
data
.
msg
);
}
else
{
...
...
@@ -125,9 +133,10 @@ const save = () => {
}
}
);
}
;
const
{
secureRules
}
=
toRefs
(
state
);
const
{
secure
FormData
,
secure
Rules
}
=
toRefs
(
state
);
defineExpose
({
setFormData
,
save
,
}
);
<
/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