mirror of https://gitee.com/godoos/godoos.git
8 changed files with 132 additions and 181 deletions
@ -1,114 +1,125 @@ |
|||||
<template> |
<template> |
||||
<el-form |
<el-form :model="form" label-width="auto" style="max-width: 560px; margin-top: 20px; padding: 20px"> |
||||
:model="form" |
|
||||
label-width="auto" |
|
||||
style="max-width: 560px; margin-top: 20px; padding: 20px" |
|
||||
> |
|
||||
<el-form-item label="分享给"> |
<el-form-item label="分享给"> |
||||
<el-select |
<el-select v-model="form.receiverId" remote :remote-method="handleSearch" filterable multiple clearable collapse-tags placeholder="选择人员" |
||||
v-model="form.receverid" |
popper-class="custom-header" :max-collapse-tags="1" value-key="id" style="width: 240px" |
||||
filterable |
@change="checkUsers"> |
||||
multiple |
|
||||
clearable |
|
||||
collapse-tags |
|
||||
placeholder="选择人员" |
|
||||
popper-class="custom-header" |
|
||||
:max-collapse-tags="1" |
|
||||
value-key="id" |
|
||||
style="width: 240px" |
|
||||
@change="checkUsers" |
|
||||
> |
|
||||
<template #header> |
<template #header> |
||||
<el-checkbox |
<el-checkbox v-model="checkAll" @change="handleCheckAll"> |
||||
v-model="checkAll" |
|
||||
@change="handleCheckAll" |
|
||||
> |
|
||||
全选 |
全选 |
||||
</el-checkbox> |
</el-checkbox> |
||||
</template> |
</template> |
||||
<el-option |
<el-option v-for="item in userList" :key="item.id" :label="item.nickname" :value="item.id" /> |
||||
v-for="item in userList" |
<template #footer v-if="total > 10"> |
||||
:key="item.id" |
<el-pagination small background layout="prev, pager, next" :total="total" |
||||
:label="item.nickname" |
:page-size="pageSize" :current-page="currentPage" @current-change="handlePageChange" |
||||
:value="item.id" |
style="margin-top: 10px" /> |
||||
/> |
</template> |
||||
</el-select> |
</el-select> |
||||
</el-form-item> |
</el-form-item> |
||||
<el-form-item label="编辑权限"> |
<el-form-item label="编辑权限"> |
||||
<el-switch |
<el-switch v-model="form.iswrite" active-value="1" inactive-value="0" /> |
||||
v-model="form.iswrite" |
|
||||
active-value="1" |
|
||||
inactive-value="0" |
|
||||
/> |
|
||||
</el-form-item> |
</el-form-item> |
||||
<div class="btn-group"> |
<div class="btn-group"> |
||||
<el-button |
<el-button type="primary" @click="onSubmit">发布分享</el-button> |
||||
type="primary" |
|
||||
@click="onSubmit" |
|
||||
>发布分享</el-button |
|
||||
> |
|
||||
</div> |
</div> |
||||
</el-form> |
</el-form> |
||||
</template> |
</template> |
||||
|
|
||||
<script lang="ts" setup> |
<script lang="ts" setup> |
||||
import { BrowserWindow, useSystem } from "@/system"; |
import { BrowserWindow } from "@/system"; |
||||
import { fetchPost, getSystemConfig } from "@/system/config"; |
import { fetchPost, getSystemConfig, getUrl } from "@/system/config"; |
||||
import { notifyError, notifySuccess } from "@/util/msg"; |
import { notifyError, notifySuccess } from "@/util/msg"; |
||||
import { inject, onMounted, ref } from "vue"; |
import { inject, onMounted, ref } from "vue"; |
||||
const window: BrowserWindow | undefined = inject("browserWindow"); |
const window: BrowserWindow | undefined = inject("browserWindow"); |
||||
const sys = useSystem(); |
//const sys = useSystem(); |
||||
const userInfo: any = sys.getConfig("userInfo"); |
//const userInfo: any = sys.getConfig("userInfo"); |
||||
let userList = ref(userInfo.user_shares); |
const userList: any = ref([]); |
||||
const checkAll = ref(false); |
const checkAll = ref(false); |
||||
const form: any = ref({ |
const form: any = ref({ |
||||
senderid: "", |
senderid: "", |
||||
receverid: [], |
receiverId: [], |
||||
path: "", |
path: "", |
||||
iswrite: "0", |
iswrite: "0", |
||||
}); |
}); |
||||
const config = ref(getSystemConfig()); |
const currentPage = ref(1); |
||||
|
const pageSize = 10; |
||||
const handleCheckAll = (val: any) => { |
const total = ref(0); |
||||
if (val) { |
const config = ref(getSystemConfig()); |
||||
form.value.receverid = userList.value.map((d: any) => d.value); |
const pageUrl = ref("") |
||||
} else { |
const getList = async() => { |
||||
form.value.receverid.value = []; |
const apiUrl = getUrl(pageUrl.value, true) |
||||
} |
//console.log(apiUrl) |
||||
}; |
const res: any = await fetch(apiUrl); |
||||
const checkUsers = (val: any) => { |
//console.log(res) |
||||
const res: any = []; |
if (res.ok) { |
||||
val.forEach((item: any) => { |
const rt = await res.json(); |
||||
if (item) { |
//console.log(rt) |
||||
res.push(item); |
userList.value = rt.data.list; |
||||
} |
total.value = rt.data.total; |
||||
}); |
|
||||
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(result.message || "分享文件成功"); |
|
||||
} else { |
|
||||
notifyError(result.message || "分享文件失败"); |
|
||||
} |
|
||||
}; |
|
||||
onMounted(() => { |
|
||||
userList.value = userList.value.filter((item: any) => { |
userList.value = userList.value.filter((item: any) => { |
||||
return item?.id !== config.value.userInfo.id; |
return item?.id !== config.value.userInfo.id; |
||||
}); |
}); |
||||
|
if(userList.value.length != rt.data.list.length){ |
||||
|
total.value = total.value - 1; |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
onMounted(async () => { |
||||
|
pageUrl.value = '/user/sharelist?page='+currentPage.value |
||||
|
await getList() |
||||
|
}); |
||||
|
const handleCheckAll = (val: any) => { |
||||
|
if (val) { |
||||
|
form.value.receiverId = userList.value.map((d: any) => d.value); |
||||
|
} else { |
||||
|
form.value.receiverId.value = []; |
||||
|
} |
||||
|
}; |
||||
|
const checkUsers = (val: any) => { |
||||
|
const res: any = []; |
||||
|
val.forEach((item: any) => { |
||||
|
if (item) { |
||||
|
res.push(item); |
||||
|
} |
||||
}); |
}); |
||||
|
form.value.receiverId = res; |
||||
|
}; |
||||
|
const onSubmit = async () => { |
||||
|
const apiUrl = config.value.userInfo.url + "/files/share"; |
||||
|
form.value.path = window?.config.path || ""; |
||||
|
const temp = { ...form.value }; |
||||
|
temp.receiverId = temp.receiverId.map((item: any) => item.toString()); |
||||
|
const res = await fetchPost(apiUrl, new URLSearchParams(temp)); |
||||
|
const result = await res.json(); |
||||
|
if (res.ok && result.success) { |
||||
|
notifySuccess(result.message || "分享文件成功"); |
||||
|
window?.close() |
||||
|
} else { |
||||
|
notifyError(result.message || "分享文件失败"); |
||||
|
} |
||||
|
}; |
||||
|
const handleSearch = async (val:any) => { |
||||
|
if(val !== ''){ |
||||
|
pageUrl.value = '/user/sharelist?page=1&nickname='+val |
||||
|
}else{ |
||||
|
pageUrl.value = '/user/sharelist?page=1' |
||||
|
} |
||||
|
await getList() |
||||
|
}; |
||||
|
const handlePageChange = async (page: number) => { |
||||
|
currentPage.value = page; |
||||
|
await getList() |
||||
|
}; |
||||
|
// onMounted(() => { |
||||
|
// userList.value = userList.value.filter((item: any) => { |
||||
|
// return item?.id !== config.value.userInfo.id; |
||||
|
// }); |
||||
|
// }); |
||||
</script> |
</script> |
||||
<style scoped> |
<style scoped> |
||||
.btn-group { |
.btn-group { |
||||
display: flex; |
display: flex; |
||||
justify-content: center; |
justify-content: center; |
||||
} |
} |
||||
</style> |
</style> |
||||
|
Loading…
Reference in new issue