ow
This commit is contained in:
1 parent
7f5bf3c68d
commit
816209fc35
37 files changed
+3236
-4515
No files matched your search
@@ -7,64 +7,33 @@
|
||||
<a-row :wrap="false">
|
||||
<a-col flex="none">
|
||||
<div style="padding: 0">
|
||||
<a-input
|
||||
flex="none"
|
||||
readonly
|
||||
value="群组代码"
|
||||
class="site-input-split"
|
||||
style="
|
||||
<a-input flex="none" readonly value="群组代码" class="site-input-split" style="
|
||||
width: 160px;
|
||||
border-radius: 0;
|
||||
border-top-left-radius: 5pt 5pt;
|
||||
border-bottom-left-radius: 5pt 5pt;
|
||||
pointer-events: none;
|
||||
"
|
||||
/>
|
||||
" />
|
||||
</div>
|
||||
</a-col>
|
||||
<a-col flex="auto">
|
||||
<a-input-search
|
||||
:disabled="isEdit"
|
||||
v-model:value="familyName"
|
||||
flex="auto"
|
||||
@search="onModalSearch"
|
||||
/>
|
||||
<a-input-search :disabled="isEdit" v-model:value="familyName" flex="auto" @search="onModalSearch" />
|
||||
</a-col>
|
||||
</a-row>
|
||||
</a-col>
|
||||
<a-col :lg="12" :sm="24">
|
||||
<a-space>
|
||||
<a-button
|
||||
type="primary"
|
||||
:disabled="isEdit"
|
||||
:icon="h(FileSearchOutlined)"
|
||||
@click.prevent="onSearch"
|
||||
>查询</a-button
|
||||
>
|
||||
<a-button
|
||||
type="primary"
|
||||
:disabled="isEdit"
|
||||
:icon="h(ClearOutlined)"
|
||||
@click.prevent="onReset"
|
||||
>重置</a-button
|
||||
>
|
||||
<a-button
|
||||
type="primary"
|
||||
:disabled="isEdit"
|
||||
:icon="h(FileAddOutlined)"
|
||||
@click.prevent="onCreate"
|
||||
v-if="canCreate"
|
||||
>新增</a-button
|
||||
>
|
||||
<a-button type="primary" :disabled="isEdit" :icon="h(FileSearchOutlined)"
|
||||
@click.prevent="onSearch">查询</a-button>
|
||||
<a-button type="primary" :disabled="isEdit" :icon="h(ClearOutlined)"
|
||||
@click.prevent="onReset">重置</a-button>
|
||||
<a-button type="primary" :disabled="isEdit" :icon="h(FileAddOutlined)" @click.prevent="onCreate"
|
||||
v-if="canCreate">新增</a-button>
|
||||
</a-space>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
<div
|
||||
class="page-main ft-page"
|
||||
:class="{ 'ft-readonly': !isEdit }"
|
||||
:style="{ height: resultH }"
|
||||
>
|
||||
<div class="page-main ft-page" :class="{ 'ft-readonly': !isEdit }" :style="{ height: resultH }">
|
||||
<!-- 顶部信息卡 -->
|
||||
<div class="ft-hero">
|
||||
<div class="ft-hero-icon">
|
||||
@@ -90,57 +59,33 @@
|
||||
<div class="ft-grid">
|
||||
<div class="ft-field">
|
||||
<div class="ft-label">群组代码</div>
|
||||
<a-input
|
||||
size="large"
|
||||
:maxlength="50"
|
||||
:readonly="true"
|
||||
placeholder="群组代码"
|
||||
v-model:value="data.FamilyGroup.FamilyName"
|
||||
/>
|
||||
<a-input size="large" :maxlength="50" :readonly="true" placeholder="群组代码"
|
||||
v-model:value="data.FamilyGroup.FamilyName" />
|
||||
</div>
|
||||
<div class="ft-field">
|
||||
<div class="ft-label">
|
||||
群组名称<span class="ft-required">*</span>
|
||||
</div>
|
||||
<a-input
|
||||
size="large"
|
||||
:maxlength="500"
|
||||
required
|
||||
:readonly="!isEdit"
|
||||
placeholder="请输入群组名称"
|
||||
v-model:value="data.FamilyGroup.FamilyLocalName"
|
||||
/>
|
||||
<a-input size="large" :maxlength="500" required :readonly="!isEdit" placeholder="请输入群组名称"
|
||||
v-model:value="data.FamilyGroup.FamilyLocalName" />
|
||||
</div>
|
||||
<div class="ft-field ft-field-full">
|
||||
<div class="ft-label">群组描述</div>
|
||||
<a-textarea
|
||||
:auto-size="{ minRows: 3, maxRows: 5 }"
|
||||
:maxlength="256"
|
||||
:readonly="!isEdit"
|
||||
placeholder="请输入群组描述"
|
||||
v-model:value="data.FamilyGroup.Notice"
|
||||
/>
|
||||
<a-textarea :auto-size="{ minRows: 3, maxRows: 5 }" :maxlength="256" :readonly="!isEdit"
|
||||
placeholder="请输入群组描述" v-model:value="data.FamilyGroup.Notice" />
|
||||
</div>
|
||||
<div class="ft-field">
|
||||
<div class="ft-label">公开设置</div>
|
||||
<div class="ft-check">
|
||||
<a-switch
|
||||
v-model:checked="data.IsOpen"
|
||||
:disabled="!isEdit"
|
||||
checked-children="公开"
|
||||
un-checked-children="隐私"
|
||||
/>
|
||||
<a-switch v-model:checked="data.IsOpen" :disabled="!isEdit" checked-children="公开"
|
||||
un-checked-children="隐私" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ft-field">
|
||||
<div class="ft-label">加入申请</div>
|
||||
<div class="ft-check">
|
||||
<a-switch
|
||||
v-model:checked="data.IsAdd"
|
||||
:disabled="!isEdit"
|
||||
checked-children="可申请"
|
||||
un-checked-children="不可申请"
|
||||
/>
|
||||
<a-switch v-model:checked="data.IsAdd" :disabled="!isEdit" checked-children="可申请"
|
||||
un-checked-children="不可申请" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -151,11 +96,7 @@
|
||||
<a-collapse v-model:activeKey="activeKey" class="ft-collapse">
|
||||
<a-collapse-panel key="1" header="共享目录">
|
||||
<div class="ft-list">
|
||||
<div
|
||||
v-for="(record, index) in data.FamilyGroupFolders"
|
||||
:key="record.FolderId || index"
|
||||
class="ft-item"
|
||||
>
|
||||
<div v-for="(record, index) in data.FamilyGroupFolders" :key="record.FolderId || index" class="ft-item">
|
||||
<div class="ft-item-head">
|
||||
<span class="ft-item-index">{{ index + 1 }}</span>
|
||||
<div class="ft-item-title">
|
||||
@@ -164,66 +105,38 @@
|
||||
</span>
|
||||
</div>
|
||||
<div class="ft-item-actions">
|
||||
<UserAddOutlined
|
||||
v-if="!isEdit && record.IsSharePermission"
|
||||
class="ft-action"
|
||||
style="color: green"
|
||||
@click="shareFamilyGroupPermission(record.FolderName)"
|
||||
/>
|
||||
<DeleteOutlined
|
||||
v-if="isEdit"
|
||||
class="ft-action ft-action-delete"
|
||||
@click="
|
||||
deleteFamilyGroupFolder(
|
||||
record.FolderId,
|
||||
record.FolderName,
|
||||
)
|
||||
"
|
||||
/>
|
||||
<UserAddOutlined v-if="!isEdit && record.IsSharePermission" class="ft-action" style="color: green"
|
||||
@click="shareFamilyGroupPermission(record.FolderName)" />
|
||||
<DeleteOutlined v-if="isEdit" class="ft-action ft-action-delete" @click="
|
||||
deleteFamilyGroupFolder(
|
||||
record.FolderId,
|
||||
record.FolderName,
|
||||
)
|
||||
" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ft-item-body">
|
||||
<div v-if="isEdit" class="ft-item-field">
|
||||
<span class="ft-item-label">目录名称</span>
|
||||
<a-input
|
||||
size="large"
|
||||
:maxlength="50"
|
||||
required
|
||||
placeholder="请输入目录名称"
|
||||
v-model:value="record.FolderLocalName"
|
||||
/>
|
||||
<a-input size="large" :maxlength="50" required placeholder="请输入目录名称"
|
||||
v-model:value="record.FolderLocalName" />
|
||||
</div>
|
||||
<div class="ft-item-field">
|
||||
<span class="ft-item-label">备注</span>
|
||||
<a-input
|
||||
v-if="isEdit"
|
||||
size="large"
|
||||
:maxlength="500"
|
||||
required
|
||||
placeholder="请输入备注"
|
||||
v-model:value="record.Notice"
|
||||
/>
|
||||
<a-input v-if="isEdit" size="large" :maxlength="500" required placeholder="请输入备注"
|
||||
v-model:value="record.Notice" />
|
||||
<span v-else class="ft-item-text">
|
||||
{{ record.Notice || "-" }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="
|
||||
!data.FamilyGroupFolders || !data.FamilyGroupFolders.length
|
||||
"
|
||||
class="ft-empty"
|
||||
>
|
||||
<div v-if="
|
||||
!data.FamilyGroupFolders || !data.FamilyGroupFolders.length
|
||||
" class="ft-empty">
|
||||
暂无共享目录
|
||||
</div>
|
||||
<a-button
|
||||
v-if="isEdit"
|
||||
class="ft-add-btn"
|
||||
type="dashed"
|
||||
block
|
||||
@click="addFamilyGroupFolder"
|
||||
>
|
||||
<a-button v-if="isEdit" class="ft-add-btn" type="dashed" block @click="addFamilyGroupFolder">
|
||||
<PlusSquareTwoTone /> 新增共享目录
|
||||
</a-button>
|
||||
</div>
|
||||
@@ -235,11 +148,8 @@
|
||||
<a-collapse v-model:activeKey="activeKey" class="ft-collapse">
|
||||
<a-collapse-panel key="2" header="待审核成员名单">
|
||||
<div class="ft-list">
|
||||
<div
|
||||
v-for="(record, index) in data.FamilyGroupRequests"
|
||||
:key="record.UserName || index"
|
||||
class="ft-item"
|
||||
>
|
||||
<div v-for="(record, index) in data.FamilyGroupRequests" :key="record.UserName || index"
|
||||
class="ft-item">
|
||||
<div class="ft-item-head">
|
||||
<span class="ft-item-index">{{ index + 1 }}</span>
|
||||
<div class="ft-item-title">
|
||||
@@ -249,28 +159,19 @@
|
||||
}}
|
||||
</span>
|
||||
</div>
|
||||
<div
|
||||
v-if="data.IsManager && !isEdit"
|
||||
class="ft-item-actions"
|
||||
>
|
||||
<CheckCircleTwoTone
|
||||
class="ft-action"
|
||||
@click="
|
||||
okFamilyGroupRequest(
|
||||
record.FamilyName,
|
||||
record.UserName,
|
||||
)
|
||||
"
|
||||
/>
|
||||
<CloseCircleOutlined
|
||||
class="ft-action ft-action-delete"
|
||||
@click="
|
||||
rejectFamilyGroupRequest(
|
||||
record.FamilyName,
|
||||
record.UserName,
|
||||
)
|
||||
"
|
||||
/>
|
||||
<div v-if="data.IsManager && !isEdit" class="ft-item-actions">
|
||||
<CheckCircleTwoTone class="ft-action" @click="
|
||||
okFamilyGroupRequest(
|
||||
record.FamilyName,
|
||||
record.UserName,
|
||||
)
|
||||
" />
|
||||
<CloseCircleOutlined class="ft-action ft-action-delete" @click="
|
||||
rejectFamilyGroupRequest(
|
||||
record.FamilyName,
|
||||
record.UserName,
|
||||
)
|
||||
" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ft-item-body">
|
||||
@@ -280,13 +181,10 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="
|
||||
!data.FamilyGroupRequests ||
|
||||
!data.FamilyGroupRequests.length
|
||||
"
|
||||
class="ft-empty"
|
||||
>
|
||||
<div v-if="
|
||||
!data.FamilyGroupRequests ||
|
||||
!data.FamilyGroupRequests.length
|
||||
" class="ft-empty">
|
||||
暂无待审核成员
|
||||
</div>
|
||||
</div>
|
||||
@@ -299,11 +197,8 @@
|
||||
<a-collapse v-model:activeKey="activeKey" class="ft-collapse">
|
||||
<a-collapse-panel key="3" header="正式成员名单">
|
||||
<div class="ft-list">
|
||||
<div
|
||||
v-for="(record, index) in data.FamilyGroupManagers"
|
||||
:key="record.UserName || index"
|
||||
class="ft-item"
|
||||
>
|
||||
<div v-for="(record, index) in data.FamilyGroupManagers" :key="record.UserName || index"
|
||||
class="ft-item">
|
||||
<div class="ft-item-head">
|
||||
<span class="ft-item-index">{{ index + 1 }}</span>
|
||||
<div class="ft-item-title">
|
||||
@@ -314,36 +209,27 @@
|
||||
</span>
|
||||
</div>
|
||||
<div v-if="isEdit" class="ft-item-actions">
|
||||
<DeleteOutlined
|
||||
class="ft-action ft-action-delete"
|
||||
@click="
|
||||
deleteFamilyGroupManager(
|
||||
record.FamilyName,
|
||||
record.UserName,
|
||||
)
|
||||
"
|
||||
/>
|
||||
<DeleteOutlined class="ft-action ft-action-delete" @click="
|
||||
deleteFamilyGroupManager(
|
||||
record.FamilyName,
|
||||
record.UserName,
|
||||
)
|
||||
" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ft-item-body">
|
||||
<div class="ft-item-field">
|
||||
<span class="ft-item-label">群组管理员</span>
|
||||
<a-checkbox
|
||||
:disabled="!isEdit"
|
||||
v-model:checked="record.IsManager"
|
||||
>
|
||||
<a-checkbox :disabled="!isEdit" v-model:checked="record.IsManager">
|
||||
管理员
|
||||
</a-checkbox>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="
|
||||
!data.FamilyGroupManagers ||
|
||||
!data.FamilyGroupManagers.length
|
||||
"
|
||||
class="ft-empty"
|
||||
>
|
||||
<div v-if="
|
||||
!data.FamilyGroupManagers ||
|
||||
!data.FamilyGroupManagers.length
|
||||
" class="ft-empty">
|
||||
暂无正式成员
|
||||
</div>
|
||||
</div>
|
||||
@@ -355,13 +241,8 @@
|
||||
<a-collapse v-model:activeKey="activeKey" class="ft-collapse">
|
||||
<a-collapse-panel key="4" header="目录权限列表">
|
||||
<div class="ft-list">
|
||||
<div
|
||||
v-for="(record, index) in data.FamilyGroupPermissions"
|
||||
:key="
|
||||
(record.FolderName || '') + '-' + (record.UserName || index)
|
||||
"
|
||||
class="ft-item"
|
||||
>
|
||||
<div v-for="(record, index) in data.FamilyGroupPermissions" :key="(record.FolderName || '') + '-' + (record.UserName || index)
|
||||
" class="ft-item">
|
||||
<div class="ft-item-head">
|
||||
<span class="ft-item-index">{{ index + 1 }}</span>
|
||||
<div class="ft-item-title">
|
||||
@@ -374,16 +255,13 @@
|
||||
</span>
|
||||
</div>
|
||||
<div v-if="isEdit" class="ft-item-actions">
|
||||
<DeleteOutlined
|
||||
class="ft-action ft-action-delete"
|
||||
@click="
|
||||
deleteFamilyGroupPermission(
|
||||
record.FamilyName,
|
||||
record.FolderName,
|
||||
record.UserName,
|
||||
)
|
||||
"
|
||||
/>
|
||||
<DeleteOutlined class="ft-action ft-action-delete" @click="
|
||||
deleteFamilyGroupPermission(
|
||||
record.FamilyName,
|
||||
record.FolderName,
|
||||
record.UserName,
|
||||
)
|
||||
" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="ft-item-body">
|
||||
@@ -401,13 +279,10 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
v-if="
|
||||
!data.FamilyGroupPermissions ||
|
||||
!data.FamilyGroupPermissions.length
|
||||
"
|
||||
class="ft-empty"
|
||||
>
|
||||
<div v-if="
|
||||
!data.FamilyGroupPermissions ||
|
||||
!data.FamilyGroupPermissions.length
|
||||
" class="ft-empty">
|
||||
暂无目录权限
|
||||
</div>
|
||||
</div>
|
||||
@@ -422,59 +297,23 @@
|
||||
<div>
|
||||
<a-row v-if="isEdit" :gutter="[16, 8]">
|
||||
<a-space>
|
||||
<a-popconfirm
|
||||
v-if="data.FamilyGroup.CreatedBy"
|
||||
title="确定是否取消修改?"
|
||||
ok-text="是"
|
||||
cancel-text="否"
|
||||
@confirm="onCancel"
|
||||
>
|
||||
<a-button type="primary" ghost :icon="h(UndoOutlined)"
|
||||
>取消</a-button
|
||||
>
|
||||
<a-popconfirm v-if="data.FamilyGroup.CreatedBy" title="确定是否取消修改?" ok-text="是" cancel-text="否"
|
||||
@confirm="onCancel">
|
||||
<a-button type="primary" ghost :icon="h(UndoOutlined)">取消</a-button>
|
||||
</a-popconfirm>
|
||||
<a-button
|
||||
v-if="!data.FamilyGroup.CreatedBy"
|
||||
type="primary"
|
||||
ghost
|
||||
:icon="h(UndoOutlined)"
|
||||
@click.prevent="onCancel"
|
||||
>取消</a-button
|
||||
>
|
||||
<a-button
|
||||
type="primary"
|
||||
ghost
|
||||
:icon="h(SaveOutlined)"
|
||||
@click.prevent="onSave"
|
||||
>保存</a-button
|
||||
>
|
||||
<a-button v-if="!data.FamilyGroup.CreatedBy" type="primary" ghost :icon="h(UndoOutlined)"
|
||||
@click.prevent="onCancel">取消</a-button>
|
||||
<a-button type="primary" ghost :icon="h(SaveOutlined)" @click.prevent="onSave">保存</a-button>
|
||||
</a-space>
|
||||
</a-row>
|
||||
<a-row v-else :gutter="[16, 8]">
|
||||
<a-space>
|
||||
<a-button
|
||||
type="primary"
|
||||
v-if="canAmend && data.IsManager"
|
||||
:icon="h(EditOutlined)"
|
||||
:disabled="!hasData"
|
||||
@click.prevent="onAmend"
|
||||
>修改</a-button
|
||||
>
|
||||
<a-popconfirm
|
||||
:disabled="!hasData"
|
||||
title="确定是否解散这条记录?"
|
||||
ok-text="是"
|
||||
cancel-text="否"
|
||||
@confirm="onDelete"
|
||||
>
|
||||
<a-button
|
||||
type="primary"
|
||||
danger
|
||||
:icon="h(DeleteOutlined)"
|
||||
:disabled="!hasData"
|
||||
v-if="canDelete && data.IsManager"
|
||||
>解散</a-button
|
||||
>
|
||||
<a-button type="primary" v-if="canAmend" :icon="h(EditOutlined)"
|
||||
:disabled="!hasData || !data.IsManager" @click.prevent="onAmend">修改</a-button>
|
||||
<a-popconfirm :disabled="!hasData" title="确定是否解散这条记录?" ok-text="是" cancel-text="否"
|
||||
@confirm="onDelete">
|
||||
<a-button type="primary" danger :icon="h(DeleteOutlined)" :disabled="!hasData || !data.IsManager"
|
||||
v-if="canDelete">解散</a-button>
|
||||
</a-popconfirm>
|
||||
</a-space>
|
||||
</a-row>
|
||||
@@ -484,29 +323,13 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<dragModal
|
||||
v-model:open="showModal"
|
||||
title="群组查询"
|
||||
:mask-closable="false"
|
||||
:fullscreen="width < 640"
|
||||
@ok="handleSelect"
|
||||
>
|
||||
<familyGroupEnquiry
|
||||
ref="enquiry"
|
||||
@on-row-dblclick="handleSelect"
|
||||
></familyGroupEnquiry>
|
||||
<dragModal v-model:open="showModal" title="群组查询" :mask-closable="false" :fullscreen="width < 640"
|
||||
@ok="handleSelect">
|
||||
<familyGroupEnquiry ref="enquiry" @on-row-dblclick="handleSelect"></familyGroupEnquiry>
|
||||
</dragModal>
|
||||
<dragModal
|
||||
v-model:open="showModalUser"
|
||||
title="成员查询"
|
||||
:mask-closable="false"
|
||||
:fullscreen="width < 640"
|
||||
@ok="handleSelectUser"
|
||||
>
|
||||
<familyGroupUserModal
|
||||
ref="userEnquiry"
|
||||
@on-row-dblclick="handleSelectUser"
|
||||
></familyGroupUserModal>
|
||||
<dragModal v-model:open="showModalUser" title="成员查询" :mask-closable="false" :fullscreen="width < 640"
|
||||
@ok="handleSelectUser">
|
||||
<familyGroupUserModal ref="userEnquiry" @on-row-dblclick="handleSelectUser"></familyGroupUserModal>
|
||||
</dragModal>
|
||||
</a-spin>
|
||||
</template>
|
||||
@@ -782,7 +605,6 @@ onMounted(() => {
|
||||
canDelete.value = pContext.canDelete(route.meta.permission as string);
|
||||
canCreate.value = pContext.canCreate(route.meta.permission as string);
|
||||
computResultTableHeight();
|
||||
|
||||
if (familyName.value && familyName.value.trim().length > 0) {
|
||||
onSearch();
|
||||
}
|
||||
@@ -961,7 +783,7 @@ const shareFamilyGroupPermission = (folderName: string) => {
|
||||
};
|
||||
|
||||
const deleteFamilyGroupFolder = (key: number, folderName: string) => {
|
||||
if (key > 0) {
|
||||
if (folderName && folderName.length > 0) {
|
||||
dmsFileService.FindDmsFolderMapByFolderName(folderName).then((count) => {
|
||||
if (count > 0) {
|
||||
notification.info({
|
||||
@@ -969,12 +791,33 @@ const deleteFamilyGroupFolder = (key: number, folderName: string) => {
|
||||
description: "【群组中心】请先删除共享目录下的内容再删除该目录.",
|
||||
placement: "topRight",
|
||||
});
|
||||
|
||||
return;
|
||||
}
|
||||
else {
|
||||
data.value.FamilyGroupFolders = data.value.FamilyGroupFolders.filter(
|
||||
(item) => item.FolderId !== key,
|
||||
);
|
||||
|
||||
data.value.FamilyGroupPermissions = data.value.FamilyGroupPermissions.filter(
|
||||
(item) =>
|
||||
!(
|
||||
item.FolderName == folderName
|
||||
),
|
||||
);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
data.value.FamilyGroupFolders = data.value.FamilyGroupFolders.filter(
|
||||
(item) => item.FolderId !== key,
|
||||
);
|
||||
|
||||
data.value.FamilyGroupPermissions = data.value.FamilyGroupPermissions.filter(
|
||||
(item) =>
|
||||
!(
|
||||
item.FolderName == folderName
|
||||
),
|
||||
);
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in new issue
Block a user