mirror of https://gitee.com/godoos/godoos.git
6 changed files with 455 additions and 343 deletions
@ -1,82 +1,114 @@ |
|||
<template> |
|||
<el-form :model="form" label-width="auto" style="max-width: 560px;margin-top:20px;padding: 20px;"> |
|||
<el-form |
|||
:model="form" |
|||
label-width="auto" |
|||
style="max-width: 560px; margin-top: 20px; padding: 20px" |
|||
> |
|||
<el-form-item label="分享给"> |
|||
<el-select v-model="form.receverid" filterable multiple clearable collapse-tags placeholder="选择人员" |
|||
popper-class="custom-header" :max-collapse-tags="1" value-key="id" style="width: 240px" @change="checkUsers"> |
|||
<el-select |
|||
v-model="form.receverid" |
|||
filterable |
|||
multiple |
|||
clearable |
|||
collapse-tags |
|||
placeholder="选择人员" |
|||
popper-class="custom-header" |
|||
:max-collapse-tags="1" |
|||
value-key="id" |
|||
style="width: 240px" |
|||
@change="checkUsers" |
|||
> |
|||
<template #header> |
|||
<el-checkbox v-model="checkAll" @change="handleCheckAll"> |
|||
<el-checkbox |
|||
v-model="checkAll" |
|||
@change="handleCheckAll" |
|||
> |
|||
全选 |
|||
</el-checkbox> |
|||
</template> |
|||
<el-option v-for="item in userList" :key="item.id" :label="item.nickname" :value="item.id" /> |
|||
<el-option |
|||
v-for="item in userList" |
|||
:key="item.id" |
|||
:label="item.nickname" |
|||
:value="item.id" |
|||
/> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="编辑权限"> |
|||
<el-switch v-model="form.iswrite" active-value="1" inactive-value="0" /> |
|||
<el-switch |
|||
v-model="form.iswrite" |
|||
active-value="1" |
|||
inactive-value="0" |
|||
/> |
|||
</el-form-item> |
|||
<div class="btn-group"> |
|||
<el-button type="primary" @click="onSubmit">发布分享</el-button> |
|||
<el-button |
|||
type="primary" |
|||
@click="onSubmit" |
|||
>发布分享</el-button |
|||
> |
|||
</div> |
|||
</el-form> |
|||
</template> |
|||
|
|||
<script lang="ts" setup> |
|||
import { ref, inject, onMounted } from 'vue'; |
|||
import { useSystem, BrowserWindow } from '@/system'; |
|||
import { getSystemConfig, fetchPost } from "@/system/config"; |
|||
import { notifySuccess, notifyError } from "@/util/msg"; |
|||
const window: BrowserWindow | undefined = inject("browserWindow"); |
|||
const sys = useSystem() |
|||
const userInfo: any = sys.getConfig('userInfo') |
|||
let userList = ref(userInfo.user_shares) |
|||
const checkAll = ref(false) |
|||
const form: any = ref({ |
|||
senderid: '', |
|||
import { BrowserWindow, useSystem } from "@/system"; |
|||
import { fetchPost, getSystemConfig } from "@/system/config"; |
|||
import { notifyError, notifySuccess } from "@/util/msg"; |
|||
import { inject, onMounted, ref } from "vue"; |
|||
const window: BrowserWindow | undefined = inject("browserWindow"); |
|||
const sys = useSystem(); |
|||
const userInfo: any = sys.getConfig("userInfo"); |
|||
let userList = ref(userInfo.user_shares); |
|||
const checkAll = ref(false); |
|||
const form: any = ref({ |
|||
senderid: "", |
|||
receverid: [], |
|||
path: '', |
|||
iswrite: '0' |
|||
}) |
|||
const config = ref(getSystemConfig()) |
|||
path: "", |
|||
iswrite: "0", |
|||
}); |
|||
const config = ref(getSystemConfig()); |
|||
|
|||
const handleCheckAll = (val: any) => { |
|||
const handleCheckAll = (val: any) => { |
|||
if (val) { |
|||
form.value.receverid = userList.value.map((d: any) => d.value) |
|||
form.value.receverid = userList.value.map((d: any) => d.value); |
|||
} else { |
|||
form.value.receverid.value = [] |
|||
form.value.receverid.value = []; |
|||
} |
|||
} |
|||
const checkUsers = (val: any) => { |
|||
const res:any = [] |
|||
}; |
|||
const checkUsers = (val: any) => { |
|||
const res: any = []; |
|||
val.forEach((item: any) => { |
|||
if(item){ |
|||
res.push(item) |
|||
if (item) { |
|||
res.push(item); |
|||
} |
|||
}) |
|||
form.value.receverid = res |
|||
} |
|||
const onSubmit = async () => { |
|||
const apiUrl = config.value.userInfo.url + '/files/share' |
|||
form.value.senderid = config.value.userInfo.id |
|||
form.value.path = window?.config.path || '' |
|||
const temp = {...form.value} |
|||
temp.senderid = temp.senderid.toString() |
|||
temp.receverid = temp.receverid.map((item:any) => item.toString()) |
|||
const res = await fetchPost(apiUrl, new URLSearchParams(temp)) |
|||
}); |
|||
form.value.receverid = res; |
|||
}; |
|||
const onSubmit = async () => { |
|||
const apiUrl = config.value.userInfo.url + "/files/share"; |
|||
form.value.senderid = config.value.userInfo.id; |
|||
form.value.path = window?.config.path || ""; |
|||
const temp = { ...form.value }; |
|||
temp.senderid = temp.senderid.toString(); |
|||
temp.receverid = temp.receverid.map((item: any) => item.toString()); |
|||
const res = await fetchPost(apiUrl, new URLSearchParams(temp)); |
|||
const result = await res.json(); |
|||
if (res.ok) { |
|||
notifySuccess("分享文件成功") |
|||
notifySuccess(result.message || "分享文件成功"); |
|||
} else { |
|||
notifyError("分享文件失败") |
|||
notifyError(result.message || "分享文件失败"); |
|||
} |
|||
} |
|||
onMounted(() => { |
|||
userList.value = userList.value.filter((item: any)=> { |
|||
return item?.id !== config.value.userInfo.id |
|||
}) |
|||
}) |
|||
}; |
|||
onMounted(() => { |
|||
userList.value = userList.value.filter((item: any) => { |
|||
return item?.id !== config.value.userInfo.id; |
|||
}); |
|||
}); |
|||
</script> |
|||
<style scoped> |
|||
.btn-group{ |
|||
.btn-group { |
|||
display: flex; |
|||
justify-content: center; |
|||
} |
|||
} |
|||
</style> |
@ -1,81 +1,106 @@ |
|||
<template> |
|||
<div class="file-pwd-box"> |
|||
<div v-if="setPwd"> |
|||
<div class="setting-item" > |
|||
<div class="setting-item"> |
|||
<label>文件密码</label> |
|||
<el-input v-model="filePwd" placeholder="请设置6-10位的密码" type="password" show-password/> |
|||
<el-input |
|||
v-model="filePwd" |
|||
placeholder="请设置6-10位的密码" |
|||
type="password" |
|||
show-password |
|||
/> |
|||
</div> |
|||
<div class="setting-item"> |
|||
<label></label> |
|||
<el-button @click="toSetFilePwd" type="primary">{{ t("setFilePwd") }}</el-button> |
|||
<el-button @click="clearPwd" type="primary">取消文件加密</el-button> |
|||
<el-button |
|||
@click="toSetFilePwd" |
|||
type="primary" |
|||
>{{ t("setFilePwd") }}</el-button |
|||
> |
|||
<el-button |
|||
@click="clearPwd" |
|||
type="primary" |
|||
>取消文件加密</el-button |
|||
> |
|||
</div> |
|||
</div> |
|||
<div v-else class="setting-item"> |
|||
<div |
|||
v-else |
|||
class="setting-item" |
|||
> |
|||
<label></label> |
|||
<el-button @click="setPwd = true" type="primary">设置文件密码</el-button> |
|||
<el-button |
|||
@click="setPwd = true" |
|||
type="primary" |
|||
>设置文件密码</el-button |
|||
> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
|
|||
<script lang="ts" setup> |
|||
import { md5 } from "js-md5"; |
|||
import { ref, onMounted } from "vue"; |
|||
import { t } from "@/system"; |
|||
import { fetchGet, getApiUrl, setSystemKey, getSystemConfig } from "@/system/config"; |
|||
import { notifySuccess, notifyError } from "@/util/msg"; |
|||
const filePwd = ref('') |
|||
const setPwd = ref(false) |
|||
const config = getSystemConfig() |
|||
const params = { |
|||
import { t } from "@/system"; |
|||
import { |
|||
fetchGet, |
|||
getApiUrl, |
|||
getSystemConfig, |
|||
setSystemKey, |
|||
} from "@/system/config"; |
|||
import { notifyError, notifySuccess } from "@/util/msg"; |
|||
import { md5 } from "js-md5"; |
|||
import { onMounted, ref } from "vue"; |
|||
const filePwd = ref(""); |
|||
const setPwd = ref(false); |
|||
const config = getSystemConfig(); |
|||
const params = { |
|||
isPwd: 1, |
|||
pwd: '', |
|||
salt: getSystemConfig().file.salt |
|||
} |
|||
// 设置文件密码 |
|||
async function toSetFilePwd() { |
|||
pwd: "", |
|||
salt: getSystemConfig().file.salt, |
|||
}; |
|||
// 设置文件密码 |
|||
async function toSetFilePwd() { |
|||
if (filePwd.value.length < 6 || filePwd.value.length > 10) { |
|||
notifyError("密码长度应该在6-10位之间") |
|||
return |
|||
notifyError("密码长度应该在6-10位之间"); |
|||
return; |
|||
} |
|||
params.pwd = md5(filePwd.value) |
|||
params.isPwd = filePwd.value === '' ? 0 : 1 |
|||
const url = getApiUrl() + '/file/setfilepwd' |
|||
params.pwd = md5(filePwd.value); |
|||
params.isPwd = filePwd.value === "" ? 0 : 1; |
|||
const url = getApiUrl() + "/file/setfilepwd"; |
|||
const header = { |
|||
'Salt': params.salt ? params.salt : 'vIf_wIUedciAd0nTm6qjJA==', |
|||
'FilePwd': params.pwd |
|||
} |
|||
await fetchGet(`${getApiUrl()}/file/changeispwd?ispwd=${params.isPwd}`) |
|||
const res = await fetchGet(url, header) |
|||
if (res.ok){ |
|||
salt: params.salt ? params.salt : "vIf_wIUedciAd0nTm6qjJA==", |
|||
pwd: params.pwd, |
|||
}; |
|||
await fetchGet(`${getApiUrl()}/file/changeispwd?ispwd=${params.isPwd}`); |
|||
const res = await fetchGet(url, header); |
|||
if (res.ok) { |
|||
notifySuccess("设置文件密码成功"); |
|||
} else { |
|||
params.isPwd = 0 |
|||
params.pwd = '' |
|||
notifyError("设置文件密码失败") |
|||
params.isPwd = 0; |
|||
params.pwd = ""; |
|||
notifyError("设置文件密码失败"); |
|||
} |
|||
setSystemKey("file", params); |
|||
} |
|||
setSystemKey('file',params) |
|||
} |
|||
async function clearPwd() { |
|||
setPwd.value = false |
|||
filePwd.value = '' |
|||
params.isPwd = 0 |
|||
await fetchGet(`${getApiUrl()}/file/changeispwd?ispwd=0`) |
|||
setSystemKey('file',params) |
|||
} |
|||
onMounted(() => { |
|||
params.isPwd = config.file.isPwd |
|||
setPwd.value = params.isPwd ? true : false |
|||
}) |
|||
async function clearPwd() { |
|||
setPwd.value = false; |
|||
filePwd.value = ""; |
|||
params.isPwd = 0; |
|||
await fetchGet(`${getApiUrl()}/file/changeispwd?ispwd=0`); |
|||
setSystemKey("file", params); |
|||
} |
|||
onMounted(() => { |
|||
params.isPwd = config.file.isPwd; |
|||
setPwd.value = params.isPwd ? true : false; |
|||
}); |
|||
</script> |
|||
|
|||
<style scoped> |
|||
@import "./setStyle.css"; |
|||
.file-pwd-box { |
|||
@import "./setStyle.css"; |
|||
.file-pwd-box { |
|||
padding-top: 20px; |
|||
} |
|||
.setting-item { |
|||
} |
|||
.setting-item { |
|||
display: flex; |
|||
align-items: center; |
|||
} |
|||
} |
|||
</style> |
|||
|
Loading…
Reference in new issue