Merge branch 'LiWenHao'
Some checks are pending
Check / lint (push) Waiting to run
Check / typecheck (push) Waiting to run
Check / build (build, 18.x, ubuntu-latest) (push) Waiting to run
Check / build (build, 18.x, windows-latest) (push) Waiting to run
Check / build (build:app, 18.x, ubuntu-latest) (push) Waiting to run
Check / build (build:app, 18.x, windows-latest) (push) Waiting to run
Check / build (build:mp-weixin, 18.x, ubuntu-latest) (push) Waiting to run
Check / build (build:mp-weixin, 18.x, windows-latest) (push) Waiting to run
Some checks are pending
Check / lint (push) Waiting to run
Check / typecheck (push) Waiting to run
Check / build (build, 18.x, ubuntu-latest) (push) Waiting to run
Check / build (build, 18.x, windows-latest) (push) Waiting to run
Check / build (build:app, 18.x, ubuntu-latest) (push) Waiting to run
Check / build (build:app, 18.x, windows-latest) (push) Waiting to run
Check / build (build:mp-weixin, 18.x, ubuntu-latest) (push) Waiting to run
Check / build (build:mp-weixin, 18.x, windows-latest) (push) Waiting to run
This commit is contained in:
commit
dd31ad21be
@ -1,6 +1,7 @@
|
|||||||
<template>
|
<template>
|
||||||
<tm-navbar
|
<tm-navbar
|
||||||
:hideBack="props.hideBack"
|
:hideBack="props.hideBack"
|
||||||
|
:hideHome="props.hideHome"
|
||||||
:title="props.title"
|
:title="props.title"
|
||||||
:shadow="props.shadowNum"
|
:shadow="props.shadowNum"
|
||||||
:fontSize="34"
|
:fontSize="34"
|
||||||
@ -37,6 +38,10 @@ const props = defineProps({
|
|||||||
type: Number,
|
type: Number,
|
||||||
default: 1,
|
default: 1,
|
||||||
},
|
},
|
||||||
|
hideHome: {
|
||||||
|
type: Boolean,
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -90,6 +90,12 @@ export function createApp() {
|
|||||||
window.updateUserInfo = () => {
|
window.updateUserInfo = () => {
|
||||||
useUserStore().loadSetting()
|
useUserStore().loadSetting()
|
||||||
}
|
}
|
||||||
|
// 通讯录跳转
|
||||||
|
window.handleContacts = () => {
|
||||||
|
uni.navigateTo({
|
||||||
|
url: '/pages/chooseByDeps/index?chooseMode=3&type=true'
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
//处理OA、墨册强制刷新时,聊天同步强制刷新
|
//处理OA、墨册强制刷新时,聊天同步强制刷新
|
||||||
window.doLocationRefresh = () => {
|
window.doLocationRefresh = () => {
|
||||||
|
@ -3,58 +3,47 @@
|
|||||||
<zPaging ref="zPaging" :show-scrollbar="false">
|
<zPaging ref="zPaging" :show-scrollbar="false">
|
||||||
<template #top>
|
<template #top>
|
||||||
<div :class="state.chooseMode === 3 ? 'top_bg' : ''">
|
<div :class="state.chooseMode === 3 ? 'top_bg' : ''">
|
||||||
<customNavbar
|
<!-- <customNavbar
|
||||||
:class="state.chooseMode === 3 ? 'index_top_navbar' : ''"
|
:class="state.chooseMode === 3 ? 'index_top_navbar' : ''"
|
||||||
:title="pageTitle"
|
:title="pageTitle"
|
||||||
></customNavbar>
|
></customNavbar> -->
|
||||||
|
<customNavbar :class="state.chooseMode === 3 ? 'index_top_navbar' : ''" :title="pageTitle" :hideHome="navshow"
|
||||||
|
:hideBack="navshow">
|
||||||
|
<template #left>
|
||||||
|
<tm-icon @click="goWebHome" v-if="navshow" name="tmicon-angle-left"
|
||||||
|
style="padding-left: 30rpx;"></tm-icon>
|
||||||
|
</template>
|
||||||
|
</customNavbar>
|
||||||
<div class="pl-[32rpx] pr-[32rpx] pt-[32rpx] pb-[32rpx]">
|
<div class="pl-[32rpx] pr-[32rpx] pt-[32rpx] pb-[32rpx]">
|
||||||
<customInput
|
<customInput :searchText="searchVal" @inputSearchText="inputSearchText"></customInput>
|
||||||
:searchText="searchVal"
|
|
||||||
@inputSearchText="inputSearchText"
|
|
||||||
></customInput>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<div class="choose-deps">
|
<div class="choose-deps">
|
||||||
<div class="w-full pl-[32rpx] pr-[32rpx]">
|
<div class="w-full pl-[32rpx] pr-[32rpx]">
|
||||||
<div
|
<div v-if="crumbs.length"
|
||||||
v-if="crumbs.length"
|
|
||||||
class="w-full overflow-x-auto mt-[22rpx] leading-[48rpx] text-[#2F2F2F] flex items-center no-scrollbar"
|
class="w-full overflow-x-auto mt-[22rpx] leading-[48rpx] text-[#2F2F2F] flex items-center no-scrollbar"
|
||||||
ref="crumbsContainer"
|
ref="crumbsContainer">
|
||||||
>
|
<div v-for="(item, index) in crumbs"
|
||||||
<div
|
class="flex items-center text-[28rpx] leading-[48rpx] whitespace-nowrap" :class="[
|
||||||
v-for="(item, index) in crumbs"
|
|
||||||
class="flex items-center text-[28rpx] leading-[48rpx] whitespace-nowrap"
|
|
||||||
:class="[
|
|
||||||
index === crumbsIndex ? 'text-[#747474]' : 'text-[#46299D]',
|
index === crumbsIndex ? 'text-[#747474]' : 'text-[#46299D]',
|
||||||
index === 0 ? '' : 'ml-[12rpx]',
|
index === 0 ? '' : 'ml-[12rpx]',
|
||||||
]"
|
]" @click="handleCrumbsClick(index)">
|
||||||
@click="handleCrumbsClick(index)"
|
|
||||||
>
|
|
||||||
<div>{{ item.name }}</div>
|
<div>{{ item.name }}</div>
|
||||||
<div
|
<div v-if="index !== crumbs.length - 1" class="ml-[20rpx] flex items-center mb-[2rpx]">
|
||||||
v-if="index !== crumbs.length - 1"
|
<tm-icon name="tmicon-angle-right" :font-size="20"
|
||||||
class="ml-[20rpx] flex items-center mb-[2rpx]"
|
:color="index !== crumbs.length - 1 ? '#7A58DE' : '#C1B4EA'"></tm-icon>
|
||||||
>
|
|
||||||
<tm-icon
|
|
||||||
name="tmicon-angle-right"
|
|
||||||
:font-size="20"
|
|
||||||
:color="index !== crumbs.length - 1 ? '#7A58DE' : '#C1B4EA'"
|
|
||||||
></tm-icon>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div v-if="
|
||||||
v-if="
|
|
||||||
(state.chooseMode === 1 || state.chooseMode === 2) &&
|
(state.chooseMode === 1 || state.chooseMode === 2) &&
|
||||||
((currentCrumbs?.sons?.length > 0 &&
|
((currentCrumbs?.sons?.length > 0 &&
|
||||||
((state.chooseMode === 2 && !searchVal) ||
|
((state.chooseMode === 2 && !searchVal) ||
|
||||||
state.chooseMode !== 2)) ||
|
state.chooseMode !== 2)) ||
|
||||||
currentMembers?.length > 0)
|
currentMembers?.length > 0)
|
||||||
"
|
" class="pl-[32rpx] bg-[#FFFFFF] mt-[20rpx] h-[110rpx] flex items-center"
|
||||||
class="pl-[32rpx] bg-[#FFFFFF] mt-[20rpx] h-[110rpx] flex items-center"
|
@click="() => allCheck(allCheckStatus)">
|
||||||
@click="() => allCheck(allCheckStatus)"
|
|
||||||
>
|
|
||||||
<div class="mr-[20rpx]">
|
<div class="mr-[20rpx]">
|
||||||
<checkBox @change="(val) => allCheck(allCheckStatus)" :modelValue="allCheckStatus"></checkBox>
|
<checkBox @change="(val) => allCheck(allCheckStatus)" :modelValue="allCheckStatus"></checkBox>
|
||||||
</div>
|
</div>
|
||||||
@ -62,13 +51,10 @@
|
|||||||
{{ $t('radio.btn.selectAll') }}
|
{{ $t('radio.btn.selectAll') }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div v-if="
|
||||||
v-if="
|
|
||||||
currentCrumbs?.sons?.length > 0 &&
|
currentCrumbs?.sons?.length > 0 &&
|
||||||
((state.chooseMode === 2 && !searchVal) || state.chooseMode !== 2)
|
((state.chooseMode === 2 && !searchVal) || state.chooseMode !== 2)
|
||||||
"
|
" v-for="item in currentCrumbs?.sons" @click="
|
||||||
v-for="item in currentCrumbs?.sons"
|
|
||||||
@click="
|
|
||||||
state.chooseMode === 1 || state.chooseMode === 2
|
state.chooseMode === 1 || state.chooseMode === 2
|
||||||
? checkItemChange(
|
? checkItemChange(
|
||||||
item,
|
item,
|
||||||
@ -79,19 +65,11 @@
|
|||||||
: 'checked',
|
: 'checked',
|
||||||
)
|
)
|
||||||
: ''
|
: ''
|
||||||
"
|
" class="pl-[32rpx] bg-[#FFFFFF] mt-[20rpx] h-[110rpx] flex items-center">
|
||||||
class="pl-[32rpx] bg-[#FFFFFF] mt-[20rpx] h-[110rpx] flex items-center"
|
|
||||||
>
|
|
||||||
<div class="w-full flex items-center justify-between">
|
<div class="w-full flex items-center justify-between">
|
||||||
<div class="flex items-center">
|
<div class="flex items-center">
|
||||||
<div
|
<div class="mr-[20rpx]" v-if="state.chooseMode === 1 || state.chooseMode === 2">
|
||||||
class="mr-[20rpx]"
|
<checkBox v-model="item.checkStatus" @change="(val) => checkItemChange(item, val)"></checkBox>
|
||||||
v-if="state.chooseMode === 1 || state.chooseMode === 2"
|
|
||||||
>
|
|
||||||
<checkBox
|
|
||||||
v-model="item.checkStatus"
|
|
||||||
@change="(val) => checkItemChange(item, val)"
|
|
||||||
></checkBox>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="font-medium text-[28rpx] leading-[40rpx]">
|
<div class="font-medium text-[28rpx] leading-[40rpx]">
|
||||||
<span>{{ item.name }}</span>
|
<span>{{ item.name }}</span>
|
||||||
@ -100,63 +78,38 @@
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div v-if="
|
||||||
v-if="
|
|
||||||
(item.sons?.length && state.chooseMode === 1) ||
|
(item.sons?.length && state.chooseMode === 1) ||
|
||||||
((state.chooseMode === 2 || state.chooseMode === 3) &&
|
((state.chooseMode === 2 || state.chooseMode === 3) &&
|
||||||
getDepTotalMembers(item) > 0)
|
getDepTotalMembers(item) > 0)
|
||||||
"
|
" class="flex items-center mr-[32rpx]">
|
||||||
class="flex items-center mr-[32rpx]"
|
<div class="vDivider mr-[32rpx]" v-if="state.chooseMode === 1"></div>
|
||||||
>
|
<div v-if="state.chooseMode === 1" @click.stop="checkCurrentItem(item)"
|
||||||
<div
|
class="flex items-center mr-[32rpx]" :class="{
|
||||||
class="vDivider mr-[32rpx]"
|
|
||||||
v-if="state.chooseMode === 1"
|
|
||||||
></div>
|
|
||||||
<div
|
|
||||||
v-if="state.chooseMode === 1"
|
|
||||||
@click.stop="checkCurrentItem(item)"
|
|
||||||
class="flex items-center mr-[32rpx]"
|
|
||||||
:class="{
|
|
||||||
'opacity-50 cursor-not-allowed':
|
'opacity-50 cursor-not-allowed':
|
||||||
item.checkStatus === 'checked',
|
item.checkStatus === 'checked',
|
||||||
}"
|
}">
|
||||||
>
|
|
||||||
<div class="mr-[20rpx]">
|
<div class="mr-[20rpx]">
|
||||||
<checkBox
|
<checkBox :modelValue="
|
||||||
:modelValue="
|
|
||||||
item.currentChecked ? 'checked' : 'noChecked'
|
item.currentChecked ? 'checked' : 'noChecked'
|
||||||
"
|
" @change="() => checkCurrentItem(item)"></checkBox>
|
||||||
@change="() => checkCurrentItem(item)"
|
|
||||||
></checkBox>
|
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div class="text-[28rpx] leading-[40rpx] font-medium text-[#46299D]">
|
||||||
class="text-[28rpx] leading-[40rpx] font-medium text-[#46299D]"
|
|
||||||
>
|
|
||||||
{{ $t('choose.deps.current') }}
|
{{ $t('choose.deps.current') }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="vDivider mr-[32rpx]"></div>
|
<div class="vDivider mr-[32rpx]"></div>
|
||||||
<div
|
<div @click.stop="() => toNextLevel(item)" class="flex items-center">
|
||||||
@click.stop="() => toNextLevel(item)"
|
|
||||||
class="flex items-center"
|
|
||||||
>
|
|
||||||
<div class="mr-[12rpx]">
|
<div class="mr-[12rpx]">
|
||||||
<tm-image
|
<tm-image :width="26" :height="26" :src="
|
||||||
:width="26"
|
|
||||||
:height="26"
|
|
||||||
:src="
|
|
||||||
item.checkStatus !== 'checked' ? downDep : downDepDis
|
item.checkStatus !== 'checked' ? downDep : downDepDis
|
||||||
"
|
"></tm-image>
|
||||||
></tm-image>
|
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div class="text-[28rpx] leading-[40rpx] font-medium" :class="
|
||||||
class="text-[28rpx] leading-[40rpx] font-medium"
|
|
||||||
:class="
|
|
||||||
item.checkStatus !== 'checked'
|
item.checkStatus !== 'checked'
|
||||||
? 'text-[#46299D]'
|
? 'text-[#46299D]'
|
||||||
: 'text-[#C1B4EA]'
|
: 'text-[#C1B4EA]'
|
||||||
"
|
">
|
||||||
>
|
|
||||||
{{ $t('choose.deps.nextLevel') }}
|
{{ $t('choose.deps.nextLevel') }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -164,13 +117,10 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<div v-if="
|
||||||
v-if="
|
|
||||||
currentMembers.length &&
|
currentMembers.length &&
|
||||||
(state.chooseMode === 2 || state.chooseMode === 3)
|
(state.chooseMode === 2 || state.chooseMode === 3)
|
||||||
"
|
" v-for="item in currentMembers" @click="
|
||||||
v-for="item in currentMembers"
|
|
||||||
@click="
|
|
||||||
state.chooseMode === 1 || state.chooseMode === 2
|
state.chooseMode === 1 || state.chooseMode === 2
|
||||||
? checkMember(
|
? checkMember(
|
||||||
item,
|
item,
|
||||||
@ -180,68 +130,39 @@
|
|||||||
: 'checked',
|
: 'checked',
|
||||||
)
|
)
|
||||||
: toUserDetail(item)
|
: toUserDetail(item)
|
||||||
"
|
" class="pl-[32rpx] pr-[32rpx] bg-[#FFFFFF] mt-[20rpx] h-[110rpx] flex items-center">
|
||||||
class="pl-[32rpx] pr-[32rpx] bg-[#FFFFFF] mt-[20rpx] h-[110rpx] flex items-center"
|
|
||||||
>
|
|
||||||
<div class="w-full flex items-center justify-between">
|
<div class="w-full flex items-center justify-between">
|
||||||
<div class="w-full flex items-center">
|
<div class="w-full flex items-center">
|
||||||
<div
|
<div class="mr-[20rpx]" v-if="state.chooseMode === 1 || state.chooseMode === 2">
|
||||||
class="mr-[20rpx]"
|
<checkBox :disabled="isPreSelectedMember(item)" :modelValue="
|
||||||
v-if="state.chooseMode === 1 || state.chooseMode === 2"
|
|
||||||
>
|
|
||||||
<checkBox
|
|
||||||
:disabled="isPreSelectedMember(item)"
|
|
||||||
:modelValue="
|
|
||||||
membersCheckedKeys.filter((v) => v.ID === item.ID)
|
membersCheckedKeys.filter((v) => v.ID === item.ID)
|
||||||
.length > 0
|
.length > 0
|
||||||
? 'checked'
|
? 'checked'
|
||||||
: 'noChecked'
|
: 'noChecked'
|
||||||
"
|
" @change="(val) => checkMember(item, val)"></checkBox>
|
||||||
@change="(val) => checkMember(item, val)"
|
|
||||||
></checkBox>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="w-full flex items-center">
|
<div class="w-full flex items-center">
|
||||||
<div
|
<div class="userAvatar flex items-center justify-center" style="flex-shrink: 0;">
|
||||||
class="userAvatar flex items-center justify-center"
|
|
||||||
style="flex-shrink: 0;"
|
|
||||||
>
|
|
||||||
{{ item.nickName.slice(-2) }}
|
{{ item.nickName.slice(-2) }}
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div class="ml-[20rpx] flex flex-col justify-center w-[112rpx]"
|
||||||
class="ml-[20rpx] flex flex-col justify-center w-[112rpx]"
|
style="word-break: break-all; flex-shrink: 0;">
|
||||||
style="word-break: break-all; flex-shrink: 0;"
|
|
||||||
>
|
|
||||||
<div class="text-[28rpx] font-medium leading-[40rpx]">
|
<div class="text-[28rpx] font-medium leading-[40rpx]">
|
||||||
{{ item.nickName }}
|
{{ item.nickName }}
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div class="text-[20rpx] text-[#747474] leading-[28rpx] font-regular">
|
||||||
class="text-[20rpx] text-[#747474] leading-[28rpx] font-regular"
|
|
||||||
>
|
|
||||||
{{ item.jobNum }}
|
{{ item.jobNum }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<tm-popover
|
<tm-popover position="tc" style="max-width: calc(100% - 64rpx - 112rpx - 20rpx);">
|
||||||
position="tc"
|
<div class="max-w-full ml-[6rpx] flex max-h-[68rpx] flex-wrap line-clamp-2">
|
||||||
style="max-width: calc(100% - 64rpx - 112rpx - 20rpx);"
|
<div v-for="post in item.positions" class="postTag truncate mb-[4rpx] ml-[14rpx] max-w-[164rpx]">
|
||||||
>
|
|
||||||
<div
|
|
||||||
class="max-w-full ml-[6rpx] flex max-h-[68rpx] flex-wrap line-clamp-2"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
v-for="post in item.positions"
|
|
||||||
class="postTag truncate mb-[4rpx] ml-[14rpx] max-w-[164rpx]"
|
|
||||||
>
|
|
||||||
{{ post.name }}
|
{{ post.name }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<template v-slot:label>
|
<template v-slot:label>
|
||||||
<div
|
<div class="max-h-[250rpx] overflow-y-auto pt-[10rpx] pl-[18rpx] pr-[18rpx] pb-[12rpx]">
|
||||||
class="max-h-[250rpx] overflow-y-auto pt-[10rpx] pl-[18rpx] pr-[18rpx] pb-[12rpx]"
|
<div v-for="post in item.positions" class="postTag truncate mb-[10rpx]">
|
||||||
>
|
|
||||||
<div
|
|
||||||
v-for="post in item.positions"
|
|
||||||
class="postTag truncate mb-[10rpx]"
|
|
||||||
>
|
|
||||||
{{ post.name }}
|
{{ post.name }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -254,15 +175,11 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<template #bottom v-if="state.chooseMode === 1 || state.chooseMode === 2">
|
<template #bottom v-if="state.chooseMode === 1 || state.chooseMode === 2">
|
||||||
<div
|
<div class="h-[162rpx] pl-[32rpx] pr-[32rpx] bg-[#FFFFFF] confirm-btn-area">
|
||||||
class="h-[162rpx] pl-[32rpx] pr-[32rpx] bg-[#FFFFFF] confirm-btn-area"
|
|
||||||
>
|
|
||||||
<div class="mt-[2rpx] flex justify-between">
|
<div class="mt-[2rpx] flex justify-between">
|
||||||
<div class="flex flex-col mt-[32rpx]">
|
<div class="flex flex-col mt-[32rpx]">
|
||||||
<div
|
<div @click="openDrawer"
|
||||||
@click="openDrawer"
|
class="flex items-center text-[28rpx] leading-[40rpx] text-[#000000] font-medium">
|
||||||
class="flex items-center text-[28rpx] leading-[40rpx] text-[#000000] font-medium"
|
|
||||||
>
|
|
||||||
<div>
|
<div>
|
||||||
<span v-if="state.chooseMode === 1">
|
<span v-if="state.chooseMode === 1">
|
||||||
{{ $t('statistics.selected.deps') }}:
|
{{ $t('statistics.selected.deps') }}:
|
||||||
@ -280,64 +197,38 @@
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="ml-[28rpx]">
|
<div class="ml-[28rpx]">
|
||||||
<tm-icon
|
<tm-icon :fontSize="24" color="#46299D" name="tmicon-angle-up"></tm-icon>
|
||||||
:fontSize="24"
|
|
||||||
color="#46299D"
|
|
||||||
name="tmicon-angle-up"
|
|
||||||
></tm-icon>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div class="text-[24rpx] leading-[34rpx] text-[#7A58DE] w-[280rpx] truncate">
|
||||||
class="text-[24rpx] leading-[34rpx] text-[#7A58DE] w-[280rpx] truncate"
|
|
||||||
>
|
|
||||||
<span v-if="state.chooseMode === 1">
|
<span v-if="state.chooseMode === 1">
|
||||||
{{ allCheckedList.map((v) => v.name).toString() }}
|
{{ allCheckedList.map((v) => v.name).toString() }}
|
||||||
</span>
|
</span>
|
||||||
<span
|
<span v-if="state.chooseMode === 2" v-for="item in allCheckedList">
|
||||||
v-if="state.chooseMode === 2"
|
|
||||||
v-for="item in allCheckedList"
|
|
||||||
>
|
|
||||||
<span v-if="item.showInPopup">
|
<span v-if="item.showInPopup">
|
||||||
{{ item.name }}({{ getDepTotalMembers(item) }})
|
{{ item.name }}({{ getDepTotalMembers(item) }})
|
||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
<span
|
<span v-if="state.chooseMode === 2" v-for="(item, index) in membersCheckedKeys">
|
||||||
v-if="state.chooseMode === 2"
|
|
||||||
v-for="(item, index) in membersCheckedKeys"
|
|
||||||
>
|
|
||||||
{{ item.nickName }}
|
{{ item.nickName }}
|
||||||
{{ index !== membersCheckedKeys.length - 1 ? ',' : '' }}
|
{{ index !== membersCheckedKeys.length - 1 ? ',' : '' }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="btnBox">
|
<div class="btnBox">
|
||||||
<customBtn
|
<customBtn :btnText="$t('ok')" @clickBtn="handleConfirm" :disabled="
|
||||||
:btnText="$t('ok')"
|
|
||||||
@clickBtn="handleConfirm"
|
|
||||||
:disabled="
|
|
||||||
state.chooseMode === 1
|
state.chooseMode === 1
|
||||||
? !allCheckedList.length
|
? !allCheckedList.length
|
||||||
: state.chooseMode === 2
|
: state.chooseMode === 2
|
||||||
? !allCheckedList.length && !membersCheckedKeys.length
|
? !allCheckedList.length && !membersCheckedKeys.length
|
||||||
: true
|
: true
|
||||||
"
|
"></customBtn>
|
||||||
></customBtn>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<tm-drawer
|
<tm-drawer placement="bottom" v-model:show="showWin" :height="800" :hideHeader="true" :round="5">
|
||||||
placement="bottom"
|
<div class="flex flex-col w-full h-full pt-[36rpx] pl-[32rpx] pr-[32rpx] leading-[60rpx]">
|
||||||
v-model:show="showWin"
|
<div class="text-[32rpx] font-medium leading-[44rpx] flex items-center justify-between">
|
||||||
:height="800"
|
|
||||||
:hideHeader="true"
|
|
||||||
:round="5"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
class="flex flex-col w-full h-full pt-[36rpx] pl-[32rpx] pr-[32rpx] leading-[60rpx]"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
class="text-[32rpx] font-medium leading-[44rpx] flex items-center justify-between"
|
|
||||||
>
|
|
||||||
<div class="flex items-center ml-[10rpx]">
|
<div class="flex items-center ml-[10rpx]">
|
||||||
<div>
|
<div>
|
||||||
<span v-if="state.chooseMode === 1">
|
<span v-if="state.chooseMode === 1">
|
||||||
@ -356,30 +247,19 @@
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div class="text-[#7A58DE] mr-[10rpx]" @click="() => (showWin = false)">
|
||||||
class="text-[#7A58DE] mr-[10rpx]"
|
|
||||||
@click="() => (showWin = false)"
|
|
||||||
>
|
|
||||||
{{ $t('ok') }}
|
{{ $t('ok') }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<scroll-view
|
<scroll-view scroll-y class="h-[690rpx] mt-[30rpx] scroll-view-style">
|
||||||
scroll-y
|
|
||||||
class="h-[690rpx] mt-[30rpx] scroll-view-style"
|
|
||||||
>
|
|
||||||
<div class="flex-1 pb-[20rpx]">
|
<div class="flex-1 pb-[20rpx]">
|
||||||
<div
|
<div v-for="(item, index) in allCheckedList" class="flex flex-col">
|
||||||
v-for="(item, index) in allCheckedList"
|
|
||||||
class="flex flex-col"
|
|
||||||
>
|
|
||||||
<div v-if="index === 0" class="divider"></div>
|
<div v-if="index === 0" class="divider"></div>
|
||||||
<div
|
<div v-if="
|
||||||
v-if="
|
|
||||||
(item.showInPopup && state.chooseMode === 2) ||
|
(item.showInPopup && state.chooseMode === 2) ||
|
||||||
state.chooseMode !== 2
|
state.chooseMode !== 2
|
||||||
"
|
"
|
||||||
class="flex items-center justify-between mt-[36rpx] font-medium text-[#000000] leading-[40rpx] mb-[34rpx]"
|
class="flex items-center justify-between mt-[36rpx] font-medium text-[#000000] leading-[40rpx] mb-[34rpx]">
|
||||||
>
|
|
||||||
<div class="text-[28rpx] ml-[10rpx]">
|
<div class="text-[28rpx] ml-[10rpx]">
|
||||||
<span>{{ item.name }}</span>
|
<span>{{ item.name }}</span>
|
||||||
<span v-if="state.chooseMode === 2">
|
<span v-if="state.chooseMode === 2">
|
||||||
@ -387,56 +267,35 @@
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="diyBtn">
|
<div class="diyBtn">
|
||||||
<customBtn
|
<customBtn :plain="true" :btnText="$t('chatSettings.btn.removeAdmin')"
|
||||||
:plain="true"
|
@clickBtn="deleteNode(item)"></customBtn>
|
||||||
:btnText="$t('chatSettings.btn.removeAdmin')"
|
|
||||||
@clickBtn="deleteNode(item)"
|
|
||||||
></customBtn>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div class="divider" v-if="
|
||||||
class="divider"
|
|
||||||
v-if="
|
|
||||||
(item.showInPopup && state.chooseMode === 2) ||
|
(item.showInPopup && state.chooseMode === 2) ||
|
||||||
state.chooseMode !== 2
|
state.chooseMode !== 2
|
||||||
"
|
"></div>
|
||||||
></div>
|
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div v-for="(item, index) in membersCheckedKeys" class="flex flex-col">
|
||||||
v-for="(item, index) in membersCheckedKeys"
|
<div v-if="
|
||||||
class="flex flex-col"
|
|
||||||
>
|
|
||||||
<div
|
|
||||||
v-if="
|
|
||||||
index === 0 &&
|
index === 0 &&
|
||||||
allCheckedList.length == 0 &&
|
allCheckedList.length == 0 &&
|
||||||
state.chooseMode === 2
|
state.chooseMode === 2
|
||||||
"
|
" class="divider"></div>
|
||||||
class="divider"
|
<div v-if="state.chooseMode === 2"
|
||||||
></div>
|
class="flex items-center justify-between mt-[36rpx] font-medium text-[#000000] leading-[40rpx] mb-[34rpx]">
|
||||||
<div
|
|
||||||
v-if="state.chooseMode === 2"
|
|
||||||
class="flex items-center justify-between mt-[36rpx] font-medium text-[#000000] leading-[40rpx] mb-[34rpx]"
|
|
||||||
>
|
|
||||||
<div class="text-[28rpx] ml-[10rpx] flex">
|
<div class="text-[28rpx] ml-[10rpx] flex">
|
||||||
<div>{{ item.nickName }}({{ item.jobNum }})</div>
|
<div>{{ item.nickName }}({{ item.jobNum }})</div>
|
||||||
<div
|
<div class="ml-[20rpx] flex h-[68rpx] flex-wrap line-clamp-2 max-w-[342rpx]">
|
||||||
class="ml-[20rpx] flex h-[68rpx] flex-wrap line-clamp-2 max-w-[342rpx]"
|
<div v-for="post in item.positions"
|
||||||
>
|
class="postTag truncate mb-[4rpx] mr-[14rpx] max-w-[164rpx]">
|
||||||
<div
|
|
||||||
v-for="post in item.positions"
|
|
||||||
class="postTag truncate mb-[4rpx] mr-[14rpx] max-w-[164rpx]"
|
|
||||||
>
|
|
||||||
{{ post.name }}
|
{{ post.name }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="diyBtn">
|
<div class="diyBtn">
|
||||||
<customBtn
|
<customBtn :plain="true" :btnText="$t('chatSettings.btn.removeAdmin')"
|
||||||
:plain="true"
|
@clickBtn="deleteMember(item)"></customBtn>
|
||||||
:btnText="$t('chatSettings.btn.removeAdmin')"
|
|
||||||
@clickBtn="deleteMember(item)"
|
|
||||||
></customBtn>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="divider" v-if="state.chooseMode === 2"></div>
|
<div class="divider" v-if="state.chooseMode === 2"></div>
|
||||||
@ -453,20 +312,45 @@
|
|||||||
import customInput from '@/components/custom-input/custom-input.vue'
|
import customInput from '@/components/custom-input/custom-input.vue'
|
||||||
import customBtn from '@/components/custom-btn/custom-btn.vue'
|
import customBtn from '@/components/custom-btn/custom-btn.vue'
|
||||||
import zPaging from '@/uni_modules/z-paging/components/z-paging/z-paging.vue'
|
import zPaging from '@/uni_modules/z-paging/components/z-paging/z-paging.vue'
|
||||||
import { ref, watch, computed, onMounted, nextTick, reactive } from 'vue'
|
import {
|
||||||
import { onShow, onLoad } from '@dcloudio/uni-app'
|
ref,
|
||||||
import { useChatList } from '@/store/chatList/index.js'
|
watch,
|
||||||
import { useAuth } from '@/store/auth'
|
computed,
|
||||||
import { useTalkStore, useUserStore } from '@/store'
|
onMounted,
|
||||||
import { useGroupTypeStore } from '@/store/groupType'
|
nextTick,
|
||||||
|
reactive
|
||||||
|
} from 'vue'
|
||||||
|
import {
|
||||||
|
onShow,
|
||||||
|
onLoad
|
||||||
|
} from '@dcloudio/uni-app'
|
||||||
|
import {
|
||||||
|
useChatList
|
||||||
|
} from '@/store/chatList/index.js'
|
||||||
|
import {
|
||||||
|
useAuth
|
||||||
|
} from '@/store/auth'
|
||||||
|
import {
|
||||||
|
useTalkStore,
|
||||||
|
useUserStore
|
||||||
|
} from '@/store'
|
||||||
|
import {
|
||||||
|
useGroupTypeStore
|
||||||
|
} from '@/store/groupType'
|
||||||
import downDep from '@/static/image/chatList/downDep.png'
|
import downDep from '@/static/image/chatList/downDep.png'
|
||||||
import downDepDis from '@/static/image/chatList/downDepDis.png'
|
import downDepDis from '@/static/image/chatList/downDepDis.png'
|
||||||
import checkBox from '@/components/checkBox/index.vue'
|
import checkBox from '@/components/checkBox/index.vue'
|
||||||
import lodash from 'lodash'
|
import lodash from 'lodash'
|
||||||
import { handleSetWebviewStyle } from '@/utils/common'
|
import {
|
||||||
|
handleSetWebviewStyle
|
||||||
|
} from '@/utils/common'
|
||||||
|
|
||||||
import { useI18n } from 'vue-i18n'
|
import {
|
||||||
const { t } = useI18n()
|
useI18n
|
||||||
|
} from 'vue-i18n'
|
||||||
|
const {
|
||||||
|
t
|
||||||
|
} = useI18n()
|
||||||
|
|
||||||
const {
|
const {
|
||||||
groupActiveIndex,
|
groupActiveIndex,
|
||||||
@ -481,7 +365,7 @@ const {
|
|||||||
allChooseMembers,
|
allChooseMembers,
|
||||||
} = useGroupTypeStore()
|
} = useGroupTypeStore()
|
||||||
const userStore = useUserStore()
|
const userStore = useUserStore()
|
||||||
|
const navshow = ref(false)
|
||||||
const searchVal = ref('')
|
const searchVal = ref('')
|
||||||
const crumbsContainer = ref(null)
|
const crumbsContainer = ref(null)
|
||||||
const showWin = ref(false)
|
const showWin = ref(false)
|
||||||
@ -496,6 +380,9 @@ onLoad((options) => {
|
|||||||
if (options.chooseMode) {
|
if (options.chooseMode) {
|
||||||
state.chooseMode = Number(options.chooseMode)
|
state.chooseMode = Number(options.chooseMode)
|
||||||
}
|
}
|
||||||
|
if (options.type) {
|
||||||
|
navshow.value = true
|
||||||
|
}
|
||||||
|
|
||||||
// 如果有预选成员数据,初始化选中状态
|
// 如果有预选成员数据,初始化选中状态
|
||||||
if (options.preSelectedMembers) {
|
if (options.preSelectedMembers) {
|
||||||
@ -509,7 +396,15 @@ onLoad((options) => {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
const goWebHome = () => {
|
||||||
|
uni.navigateBack()
|
||||||
|
let OAWebView = plus.webview.all()
|
||||||
|
OAWebView.forEach((webview) => {
|
||||||
|
if (webview.id === 'webviewId1') {
|
||||||
|
webview.evalJS(`handleBackHost()`)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
// 添加判断是否为预选成员的方法
|
// 添加判断是否为预选成员的方法
|
||||||
const isPreSelectedMember = (member) => {
|
const isPreSelectedMember = (member) => {
|
||||||
return state.preSelectedMembers.some(
|
return state.preSelectedMembers.some(
|
||||||
@ -590,6 +485,7 @@ const currentCrumbs = computed(() => {
|
|||||||
|
|
||||||
const buildDepsMap = (departments) => {
|
const buildDepsMap = (departments) => {
|
||||||
const index = new Map()
|
const index = new Map()
|
||||||
|
|
||||||
function traverse(deps) {
|
function traverse(deps) {
|
||||||
for (let dep of deps) {
|
for (let dep of deps) {
|
||||||
index.set(`${dep.name}`, dep)
|
index.set(`${dep.name}`, dep)
|
||||||
@ -613,11 +509,11 @@ const allCheckStatus = computed(() => {
|
|||||||
if (state.chooseMode === 2) {
|
if (state.chooseMode === 2) {
|
||||||
// 检查部门选择状态
|
// 检查部门选择状态
|
||||||
const allDepsChecked =
|
const allDepsChecked =
|
||||||
currentCrumbs?.value?.sons?.length > 0
|
currentCrumbs?.value?.sons?.length > 0 ?
|
||||||
? currentCrumbs?.value?.sons?.every(
|
currentCrumbs?.value?.sons?.every(
|
||||||
(son) => son.checkStatus === 'checked',
|
(son) => son.checkStatus === 'checked',
|
||||||
)
|
) :
|
||||||
: true
|
true
|
||||||
|
|
||||||
// 检查人员选择状态,需要排除已在群里的成员
|
// 检查人员选择状态,需要排除已在群里的成员
|
||||||
const selectableMembers = currentMembers.value.filter(
|
const selectableMembers = currentMembers.value.filter(
|
||||||
@ -863,8 +759,7 @@ const allCheck = (status) => {
|
|||||||
|
|
||||||
const openDrawer = () => {
|
const openDrawer = () => {
|
||||||
showWin.value = true
|
showWin.value = true
|
||||||
if (allCheckedList.length > 0) {
|
if (allCheckedList.length > 0) {}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// watch(() => depTreeMyList.value, (newValue, oldValue) => {
|
// watch(() => depTreeMyList.value, (newValue, oldValue) => {
|
||||||
@ -925,7 +820,9 @@ const init = async () => {
|
|||||||
ID: 'all',
|
ID: 'all',
|
||||||
name: t('choose.deps.all'),
|
name: t('choose.deps.all'),
|
||||||
sons: [...depTreeMyList.value], // 使用浅拷贝避免引用问题
|
sons: [...depTreeMyList.value], // 使用浅拷贝避免引用问题
|
||||||
staffNum: calculateTotalStaffNum({ sons: depTreeMyList.value }),
|
staffNum: calculateTotalStaffNum({
|
||||||
|
sons: depTreeMyList.value
|
||||||
|
}),
|
||||||
}
|
}
|
||||||
depTreeMyList.value = [allNode]
|
depTreeMyList.value = [allNode]
|
||||||
crumbs.value = [allNode]
|
crumbs.value = [allNode]
|
||||||
@ -1019,7 +916,9 @@ const getCurrentMembers = async (depItem) => {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
// 使用更明确的参数结构
|
// 使用更明确的参数结构
|
||||||
let params = { status: 'notactive' }
|
let params = {
|
||||||
|
status: 'notactive'
|
||||||
|
}
|
||||||
if (searchVal.value) {
|
if (searchVal.value) {
|
||||||
params = {
|
params = {
|
||||||
fatherDepartmentId: depItem.ID,
|
fatherDepartmentId: depItem.ID,
|
||||||
@ -1036,14 +935,13 @@ const getCurrentMembers = async (depItem) => {
|
|||||||
}
|
}
|
||||||
const res = await getDepMembers(params)
|
const res = await getDepMembers(params)
|
||||||
if (res.code === 200) {
|
if (res.code === 200) {
|
||||||
currentMembers.value = res?.data?.data?.length
|
currentMembers.value = res?.data?.data?.length ?
|
||||||
? res.data.data.map((v) => {
|
res.data.data.map((v) => {
|
||||||
return {
|
return {
|
||||||
...v,
|
...v,
|
||||||
isMember: true,
|
isMember: true,
|
||||||
}
|
}
|
||||||
})
|
}) : []
|
||||||
: []
|
|
||||||
} else {
|
} else {
|
||||||
currentMembers.value = []
|
currentMembers.value = []
|
||||||
}
|
}
|
||||||
@ -1068,8 +966,9 @@ watch(
|
|||||||
if (newValue?.ID && (state.chooseMode === 2 || state.chooseMode === 3)) {
|
if (newValue?.ID && (state.chooseMode === 2 || state.chooseMode === 3)) {
|
||||||
getCurrentMembers(newValue)
|
getCurrentMembers(newValue)
|
||||||
}
|
}
|
||||||
|
}, {
|
||||||
|
immediate: true
|
||||||
},
|
},
|
||||||
{ immediate: true },
|
|
||||||
)
|
)
|
||||||
|
|
||||||
const deleteMember = (item) => {
|
const deleteMember = (item) => {
|
||||||
@ -1100,8 +999,7 @@ const totalMembers = computed(() => {
|
|||||||
const toUserDetail = (userItem) => {
|
const toUserDetail = (userItem) => {
|
||||||
console.log(userItem)
|
console.log(userItem)
|
||||||
uni.navigateTo({
|
uni.navigateTo({
|
||||||
url:
|
url: '/pages/dialog/dialogDetail/userDetail??erpUserId=' +
|
||||||
'/pages/dialog/dialogDetail/userDetail??erpUserId=' +
|
|
||||||
(userItem.erp_user_id || userItem.ID),
|
(userItem.erp_user_id || userItem.ID),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -1111,9 +1009,11 @@ const toUserDetail = (userItem) => {
|
|||||||
height: 100%;
|
height: 100%;
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .index_top_navbar .tmicon-angle-left {
|
::v-deep .index_top_navbar .tmicon-angle-left {
|
||||||
color: #fff !important;
|
color: #fff !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .index_top_navbar .text-weight-b {
|
::v-deep .index_top_navbar .text-weight-b {
|
||||||
color: #fff !important;
|
color: #fff !important;
|
||||||
}
|
}
|
||||||
@ -1122,11 +1022,13 @@ const toUserDetail = (userItem) => {
|
|||||||
background: transparent !important;
|
background: transparent !important;
|
||||||
border: none !important;
|
border: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.top_bg {
|
.top_bg {
|
||||||
background: url('@/static/image/mine/page_top.png') no-repeat;
|
background: url('@/static/image/mine/page_top.png') no-repeat;
|
||||||
background-size: cover;
|
background-size: cover;
|
||||||
background-position: bottom center;
|
background-position: bottom center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.choose-deps-page {
|
.choose-deps-page {
|
||||||
.choose-deps {
|
.choose-deps {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
@ -1146,6 +1048,7 @@ const toUserDetail = (userItem) => {
|
|||||||
background-color: #707070;
|
background-color: #707070;
|
||||||
opacity: 0.1;
|
opacity: 0.1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.vDivider {
|
.vDivider {
|
||||||
width: 1rpx;
|
width: 1rpx;
|
||||||
height: 48rpx;
|
height: 48rpx;
|
||||||
@ -1159,6 +1062,7 @@ const toUserDetail = (userItem) => {
|
|||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
margin-bottom: 40rpx;
|
margin-bottom: 40rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
.groupCard {
|
.groupCard {
|
||||||
height: 272rpx;
|
height: 272rpx;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
@ -1166,45 +1070,58 @@ const toUserDetail = (userItem) => {
|
|||||||
background-position: center;
|
background-position: center;
|
||||||
background-repeat: no-repeat;
|
background-repeat: no-repeat;
|
||||||
border-radius: 12rpx;
|
border-radius: 12rpx;
|
||||||
|
|
||||||
&.firstPanel {
|
&.firstPanel {
|
||||||
background-image: url('@/static/image/chatList/zu6033@2x.png');
|
background-image: url('@/static/image/chatList/zu6033@2x.png');
|
||||||
}
|
}
|
||||||
|
|
||||||
&.secondPanel {
|
&.secondPanel {
|
||||||
background-image: url('@/static/image/chatList/zu6031@2x.png');
|
background-image: url('@/static/image/chatList/zu6031@2x.png');
|
||||||
margin-top: 28rpx;
|
margin-top: 28rpx;
|
||||||
margin-bottom: 28rpx;
|
margin-bottom: 28rpx;
|
||||||
}
|
}
|
||||||
|
|
||||||
&.thirdPanel {
|
&.thirdPanel {
|
||||||
background-image: url('@/static/image/chatList/zu6032@2x.png');
|
background-image: url('@/static/image/chatList/zu6032@2x.png');
|
||||||
}
|
}
|
||||||
|
|
||||||
&.activePanel {
|
&.activePanel {
|
||||||
box-shadow: 0 0 0 3rpx #46299d;
|
box-shadow: 0 0 0 3rpx #46299d;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.btnBox {
|
.btnBox {
|
||||||
margin: 14rpx 0 0;
|
margin: 14rpx 0 0;
|
||||||
|
|
||||||
::v-deep .custom-btn-class {
|
::v-deep .custom-btn-class {
|
||||||
padding: 18rpx 104rpx !important;
|
padding: 18rpx 104rpx !important;
|
||||||
width: unset !important;
|
width: unset !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .is-disabled {
|
::v-deep .is-disabled {
|
||||||
background-color: #e6e6e6 !important;
|
background-color: #e6e6e6 !important;
|
||||||
color: #bebebe !important;
|
color: #bebebe !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .wd-button__text {
|
::v-deep .wd-button__text {
|
||||||
font-size: 28rpx !important;
|
font-size: 28rpx !important;
|
||||||
font-weight: 500 !important;
|
font-weight: 500 !important;
|
||||||
line-height: 40rpx !important;
|
line-height: 40rpx !important;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.no-scrollbar {
|
.no-scrollbar {
|
||||||
-ms-overflow-style: none; /* IE and Edge */
|
-ms-overflow-style: none;
|
||||||
scrollbar-width: none; /* Firefox */
|
/* IE and Edge */
|
||||||
|
scrollbar-width: none;
|
||||||
|
/* Firefox */
|
||||||
}
|
}
|
||||||
|
|
||||||
.no-scrollbar::-webkit-scrollbar {
|
.no-scrollbar::-webkit-scrollbar {
|
||||||
display: none; /* Chrome, Safari, and Opera */
|
display: none;
|
||||||
|
/* Chrome, Safari, and Opera */
|
||||||
}
|
}
|
||||||
|
|
||||||
.diyBtn {
|
.diyBtn {
|
||||||
::v-deep .custom-btn-class {
|
::v-deep .custom-btn-class {
|
||||||
padding: 8rpx 30rpx !important;
|
padding: 8rpx 30rpx !important;
|
||||||
@ -1212,12 +1129,14 @@ const toUserDetail = (userItem) => {
|
|||||||
min-width: unset !important;
|
min-width: unset !important;
|
||||||
height: unset !important;
|
height: unset !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .wd-button__text {
|
::v-deep .wd-button__text {
|
||||||
font-size: 24rpx !important;
|
font-size: 24rpx !important;
|
||||||
font-weight: 400 !important;
|
font-weight: 400 !important;
|
||||||
line-height: 34rpx !important;
|
line-height: 34rpx !important;
|
||||||
color: #191919;
|
color: #191919;
|
||||||
}
|
}
|
||||||
|
|
||||||
::v-deep .custom-btn-class {
|
::v-deep .custom-btn-class {
|
||||||
background-color: #fff !important;
|
background-color: #fff !important;
|
||||||
border: 2rpx solid #d6d6d8 !important;
|
border: 2rpx solid #d6d6d8 !important;
|
||||||
@ -1231,6 +1150,7 @@ const toUserDetail = (userItem) => {
|
|||||||
.scroll-view-style {
|
.scroll-view-style {
|
||||||
-ms-overflow-style: none;
|
-ms-overflow-style: none;
|
||||||
overflow: -moz-scrollbars-none;
|
overflow: -moz-scrollbars-none;
|
||||||
|
|
||||||
::-webkit-scrollbar {
|
::-webkit-scrollbar {
|
||||||
width: 0 !important;
|
width: 0 !important;
|
||||||
}
|
}
|
||||||
@ -1245,6 +1165,7 @@ const toUserDetail = (userItem) => {
|
|||||||
font-size: 24rpx;
|
font-size: 24rpx;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.postTag {
|
.postTag {
|
||||||
background-color: #eee9f8;
|
background-color: #eee9f8;
|
||||||
height: 32rpx;
|
height: 32rpx;
|
||||||
|
@ -5,7 +5,7 @@ import { userInfoApi } from "@/api/user";
|
|||||||
import {ref} from 'vue'
|
import {ref} from 'vue'
|
||||||
export const useAuth = createGlobalState(() => {
|
export const useAuth = createGlobalState(() => {
|
||||||
const token = useStorage('token', '', uniStorage)
|
const token = useStorage('token', '', uniStorage)
|
||||||
// const token = ref("79b5c732d96d2b27a48a99dfd4a5566c43aaa5796242e854ebe3ffc198d6876b9628e7b764d9af65ab5dbb2d517ced88170491b74b048c0ba827c0d3741462cb89dc59ed46653a449af837a8262941caba0afc18e7cb819d125e8c04282beb5d4dd454307169f7eb51cd3dbbee20c1a17784f78ad30c3b3a102bd03c3218080beedae501a95c365d360a7a0d682cba2eca94a2915c13f0bdcb42f2eab9458cb4bd89ae6f3200fe4893d64caf1bce02894aab876f94f7825d23be507733468deba21734b6d666b75fd0bee74753fdd6ca5def7ec42cd7dbb47750e61cac6965f34fd71b52be66a472d3ee5b1e4661e59d4489860c2e1d8c178de5b43853ef9be822f00e0903b5c97efaa9ba0d9c76a1a91a2d6d77c5a19c551906a67fbfd3af69bd6a59310b8b300658e9b7248d9dd51a66be399ef412cb7c83bc81abfc15b65b")
|
// const token = ref("2046c3941ed4959f6d988d3d4a0fe40d4b52f33f3f5fc1001406064554641d9406bb13cacb92939b0ca223c17e2c2f2fe70212ef017dbae8965d5cf86bad48ce4316e605ca187bd9ffd4aa6b56865be4ad4e422701d330b52d60cfe649cd48cf3a21a2a6e9a9cabafff364ee9c311ec634b0afc09db0d3215bedce561e9d50e5a8da6092062e2ebe35f747d77d72a68ad492a4ab218c07887c9cd4867f2c2d28e4ae1fd671144cc20ef0632f9ce067289004d67f6adf41b20d6ef5cdbfb74aadc2d2736ececf07254f1a76552bde4f1161a0fca7bfe32a29685ce1e76366116b81ae2195b3713dbb04285e5ddfd36184fe671c5524d20b4fe74a555db755f8d939b0bc46fb0cb998323d54c9925729d7ca835b7925999a677faa0cbe1cbc67b5203d85317653883aec81d3e71d865b326376bea726cc66d9f7f5a160d43f671c")
|
||||||
const refreshToken = useStorage('refreshToken', '', uniStorage)
|
const refreshToken = useStorage('refreshToken', '', uniStorage)
|
||||||
const userInfo = useStorage('userInfo', {}, uniStorage)
|
const userInfo = useStorage('userInfo', {}, uniStorage)
|
||||||
const leaderList = useStorage('leaderList', [], uniStorage)
|
const leaderList = useStorage('leaderList', [], uniStorage)
|
||||||
|
Loading…
Reference in New Issue
Block a user