You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
124 lines
3.3 KiB
124 lines
3.3 KiB
8 months ago
|
<template>
|
||
|
<!-- 搜索 -->
|
||
|
<div v-loading="loading" class="box">
|
||
|
<el-form ref="formSmsLogin" :model="data" :rules="rules" label-width="70px" size="large">
|
||
|
<div
|
||
|
class="title"
|
||
|
style="font-size: 20px; text-align: center; margin-bottom: 20px; font-weight: bold"
|
||
|
>密码策略</div
|
||
|
>
|
||
|
<el-row type="flex" justify="center" align="middle">
|
||
|
<el-col>
|
||
|
<el-form-item label="密码难度" prop="passwordDifficulty" align="center">
|
||
|
<el-select v-model="data.passwordDifficulty" placeholder="请选择密码难度">
|
||
|
<el-option
|
||
|
v-for="item in difficultyList"
|
||
|
:key="item.value"
|
||
|
:label="item.label"
|
||
|
:value="item.value"
|
||
|
/>
|
||
|
</el-select>
|
||
|
</el-form-item>
|
||
|
</el-col>
|
||
|
<el-col>
|
||
|
<el-form-item label="试错次数" prop="number">
|
||
|
<el-input-number
|
||
|
v-model="data.number"
|
||
|
:min="0"
|
||
|
:precision="0"
|
||
|
style="margin-right: 10px"
|
||
|
/>次
|
||
|
</el-form-item>
|
||
|
</el-col>
|
||
|
<el-col>
|
||
|
<el-form-item label="锁定时长" prop="minute">
|
||
|
<el-input-number
|
||
|
v-model="data.minute"
|
||
|
:min="0"
|
||
|
:precision="0"
|
||
|
style="margin-right: 10px"
|
||
|
/>分钟
|
||
|
</el-form-item>
|
||
|
</el-col>
|
||
|
<el-col>
|
||
|
<el-form-item label="更新周期" prop="cycle">
|
||
|
<el-input-number
|
||
|
v-model="data.cycle"
|
||
|
:min="0"
|
||
|
:precision="0"
|
||
|
style="margin-right: 10px"
|
||
|
/>天
|
||
|
</el-form-item>
|
||
|
</el-col>
|
||
|
<el-col>
|
||
|
<el-form-item label="是否开启" prop="isEnabled">
|
||
|
<el-switch v-model="data.isEnabled" active-value="TRUE" inactive-value="'FALSE'" />
|
||
|
</el-form-item>
|
||
|
</el-col>
|
||
|
</el-row>
|
||
|
</el-form>
|
||
|
<div class="dialog-footer">
|
||
|
<el-button
|
||
|
type="primary"
|
||
|
@click="submitForm"
|
||
|
style="width: 100%; height: 40px; line-height: 40px"
|
||
|
>保 存</el-button
|
||
|
>
|
||
|
<el-button type="danger" @click="reset" style="width: 100%; height: 40px; line-height: 40px"
|
||
|
>重 置</el-button
|
||
|
>
|
||
|
</div>
|
||
|
</div>
|
||
|
</template>
|
||
|
<script lang="ts" setup>
|
||
|
import { DICT_TYPE, getIntDictOptions } from '@/utils/dict'
|
||
|
|
||
|
defineOptions({ name: 'PasswordRule' })
|
||
|
|
||
|
const message = useMessage() // 消息弹窗
|
||
|
const { t } = useI18n() // 国际化
|
||
|
const loading = ref(false)
|
||
|
const rules = {
|
||
|
password: [required],
|
||
|
againPassword: [required]
|
||
|
}
|
||
|
const data = ref({
|
||
|
passwordDifficulty: '', //密码难度
|
||
|
number: '', //试错次数
|
||
|
minute: '', //锁定时长
|
||
|
cycle: '', //更新周期
|
||
|
isEnabled: 'TRUE' //是否开启
|
||
|
})
|
||
|
const difficultyList = ref([
|
||
|
{
|
||
|
value: '11',
|
||
|
label: '11'
|
||
|
}
|
||
|
])
|
||
|
const reset = () => {
|
||
|
data.value = {
|
||
|
passwordDifficulty: '', //密码难度
|
||
|
number: '', //试错次数
|
||
|
minute: '', //锁定时长
|
||
|
cycle: '', //更新周期
|
||
|
isEnabled: 'TRUE' //是否开启
|
||
|
}
|
||
|
}
|
||
|
/** 初始化 **/
|
||
|
onMounted(async () => {})
|
||
|
</script>
|
||
|
<style lang="scss">
|
||
|
.box {
|
||
|
margin: 50px auto;
|
||
|
width: 500px;
|
||
|
background: white;
|
||
|
padding: 20px;
|
||
|
border: 1px solid #dedede;
|
||
|
}
|
||
|
.dialog-footer {
|
||
|
display: flex;
|
||
|
width: 160px;
|
||
|
margin: 0 auto;
|
||
|
}
|
||
|
</style>
|