Browse Source

Merge branch 'master' of https://gitee.com/godoos/godoos

master
godo 6 months ago
parent
commit
8876b28e58
  1. 121
      frontend/src/components/setting/SetFilePwd.vue
  2. 46
      frontend/src/stores/filePwd.ts

121
frontend/src/components/setting/SetFilePwd.vue

@ -4,35 +4,37 @@
<div class="file-pwd-list">
<div class="pwd-box" v-for="item in filePwdStore.pwdList">
<p>{{ item.pwdName }}</p>
<el-button type="danger" :icon="Delete" circle @click="addPwd"/>
<el-button type="danger" :icon="Delete" circle @click="operationPwd('del', item)"/>
<el-tag type="primary" v-if="item.isDefault == 1">default</el-tag>
</div>
</div>
<el-pagination
background
layout="prev, pager, next"
v-model:current-page="filePwdStore.page.current"
v-model:page-size="filePwdStore.page.size"
:total="filePwdStore.page.total"
:size="filePwdStore.page.size"
:current="filePwdStore.page.current"
@current-change="handleCurrentChange"
/>
</div>
<el-dialog v-model="dialogShow" title="添加密码" width="400px">
<span>
<el-form>
<el-form-item label="密码提示">
<el-form :model="formData" :rules="rule" ref="pwdRef" >
<el-form-item label="密码提示" prop="pwdName">
<el-input v-model="formData.pwdName"/>
</el-form-item>
<el-form-item label="密码">
<el-form-item label="密码" prop="pwd">
<el-input v-model="formData.pwd" show-password/>
</el-form-item>
<el-form-item label="是否为默认密码">
<el-switch
v-model="formData.isDefault"
active-value="1"
inactive-value="0"/>
:active-value="1"
:inactive-value="0"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="addPwd" style="margin: 0 auto;">
<el-button type="primary" @click="operationPwd('add')" style="margin: 0 auto;">
确认
</el-button>
</el-form-item>
@ -45,50 +47,98 @@
import { Plus, Delete } from '@element-plus/icons-vue'
import { reactive, ref, onMounted } from "vue";
import { useFilePwdStore } from '@/stores/filePwd';
import { fetchGet, getApiUrl } from "@/system/config";
import { md5 } from 'js-md5';
import { ElMessageBox } from 'element-plus'
const dialogShow = ref(false)
const formData = reactive({
pwdName: '',
pwd: '',
isDefault: ''
isDefault: 0
})
const defaultChoose = ref(false)
const filePwdStore: any = useFilePwdStore()
const rule = {
pwdName: [
{ required: true, message: '密码提示不能为空', trigger: 'blur'},
{ min: 2, max: 10, message: '昵称长度应该在2到10位', trigger: 'blur'}
],
pwd: [
{ required: true, message: '密码不能为空', trigger: 'blur'},
{ min: 6, max: 10, message: '密码长度应该在6到10位', trigger: 'blur'}
]
}
const pwdRef:any = ref(null)
function closeDialog (val: boolean) {
dialogShow.value = val
}
async function operationPwd(type: string, item?: any) {
if (type == 'add') {
formData.isDefault == 1 ? showPwdDialog(type) : addPwd()
} else {
item.isDefault == 1 ? showPwdDialog(type, item) : delPwd(item)
}
}
//
function showPwdDialog(type: string, item?: any) {
const content = type == 'add' ? '确定设置为默认密码吗?' : '确定删除默认密码吗?'
ElMessageBox.alert(content, '提示', {
confirmButtonText: '确定',
callback: (action: any) => {
if (type == 'add') {
action !== 'cancle' ? addPwd() : ''
}else {
action !== 'cancle' ? delPwd(item) : ''
}
}
})
}
async function addPwd() {
await pwdRef.value.validate()
closeDialog(false)
const temp = { ...formData }
if (formData.isDefault == 1) {
//
filePwdStore.hasDefaultPwd ? await filePwdStore.setDefaultPwd() : ''
await fetchDefaultPwd(formData.pwd)
}
await filePwdStore.addPwd(temp)
await initData()
}
//
async function fetchDefaultPwd(pwd: string) {
const head = {
pwd: pwd !== '' ? md5(pwd) : ''
}
await fetchGet(`${getApiUrl()}/file/setfilepwd`, head);
}
async function initData () {
await filePwdStore.getPage()
formData.pwdName = ''
formData.pwd = ''
if (!filePwdStore.hasDefaultPwd) {
formData.isDefault = 1
defaultChoose.value = true
return
}
formData.isDefault = 0
defaultChoose.value = false
}
async function handleCurrentChange(val: number) {
await filePwdStore.pageChange(val)
}
async function delPwd(item: any) {
if (item.isDefault == 1) {
await fetchDefaultPwd('')
}
await filePwdStore.delPwd(item.id)
await initData()
}
onMounted(async() => {
await initData()
// console.log('', filePwdStore.pwdList, filePwdStore.page.total);
console.log('数据:', filePwdStore.pwdList, filePwdStore.page);
})
// import { t } from "@/system";
// import {
// fetchGet,
// getApiUrl,
// getSystemConfig,
// setSystemKey,
// } from "@/system/config";
// const config = getSystemConfig();
// const isSetPwd = ref(false);
// async function setFilePwd() {
// isSetPwd.value = !isSetPwd.value
// const params = {
// isPwd: isSetPwd.value ? 1 : 0
// }
// await fetchGet(`${getApiUrl()}/file/changeispwd?ispwd=${params.isPwd}`);
// setSystemKey("file", params);
// }
// onMounted(() => {
// isSetPwd.value = config.file.isPwd ? true : false;
// });
</script>
<style scoped lang="scss">
@ -139,11 +189,4 @@ onMounted(async() => {
min-width: 80px;
}
}
/* .file-pwd-box {
padding-top: 20px;
}
.setting-item {
display: flex;
align-items: center;
} */
</style>

46
frontend/src/stores/filePwd.ts

@ -11,7 +11,7 @@ export const useFilePwdStore = defineStore('filePwd', () => {
visible: 5
})
const pwdList = ref([])
const hasDefaultPwd = ref(false)
const addPwd = async (params: any) => {
await db.addOne('filePwdBox', params)
}
@ -22,6 +22,23 @@ export const useFilePwdStore = defineStore('filePwd', () => {
pwdList.value = await db.getPage('filePwdBox', page.value.current, page.value.size)
}
await getPageCount()
await checkDefault()
}
const delPwd = async (id: number) => {
await db.delete('filePwdBox', id)
//如果之前存在默认密码,则清除
// if (params.isDefault == 1) {
// const list = await db.getAll('filePwdBox')
// if (list && list?.length > 0) {
// const item = list[list.length - 1]
// item.isDefault = 1
// await db.update('filePwdBox', item.id, item)
// }
// }
}
const pageChange = async (current: number) => {
page.value.current = current
getPage()
}
const getPageCount = async () => {
page.value.total = await db.countSearch('filePwdBox')
@ -32,13 +49,36 @@ export const useFilePwdStore = defineStore('filePwd', () => {
// 如果有余数,则加1
page.value.pages++;
}
//console.log(pageCount.value)
return page.value
}
// 判断是否有默认密码
const checkDefault = async () => {
const res = await db.getByField('filePwdBox', 'isDefault', 1)
if (res && res.length > 0) {
hasDefaultPwd.value = true
return
}
hasDefaultPwd.value = false
}
//将其余默认密码设置为空
const setDefaultPwd = async () => {
const res = await db.getByField('filePwdBox', 'isDefault', 1)
if (!res && res.length == 0) {
return
};
for (const item of res) {
item.isDefault = 0
db.update('filePwdBox', item.id, item)
}
}
return {
page,
pwdList,
hasDefaultPwd,
addPwd,
getPage
getPage,
pageChange,
delPwd,
setDefaultPwd
}
})
Loading…
Cancel
Save