新版本发布

pull/975/head
zhangdaiscott 2023-12-29 21:41:57 +08:00
parent 313e5a4e53
commit 0dbdd9a77f
9 changed files with 134 additions and 60 deletions

View File

@ -53,7 +53,7 @@
<!-- 头部图标 -->
<div class="icon-right">
<div class="icons">
<a-popover placement="bottomRight" :overlayStyle="{ width: '400px' }" trigger="click" v-model:visible="showSearch">
<a-popover placement="bottomRight" :overlayStyle="{ width: '400px' }" trigger="click" v-model:open="showSearch">
<template #content>
<div>
<span class="search-label">回复提到我的人?</span>
@ -97,7 +97,7 @@
</template>
<div class="sys-message-card">
<a-tabs :activeKey="activeKey" center @tabClick="handleChangePanel">
<a-tabs :activeKey="activeKey" center @tabClick="handleChangePanel" animated>
<template #renderTabBar>
<div></div>
</template>
@ -376,12 +376,6 @@
padding: 10px;
display: inline-block;
cursor: pointer;
&:hover {
color: #1890ff;
}
&:active {
color: #1890ff;
}
}
> span.filtera{
@ -397,7 +391,7 @@
display: flex;
>span.anticon{
height: 30px;
height: auto;
line-height: 9px;
display: inline-block;
}
@ -409,6 +403,34 @@
.ant-tabs-nav-wrap {
display: inline-block;
width: calc(100% - 340px);
.ant-tabs-tab {
position: relative;
display: inline-flex;
align-items: center;
padding: 12px 0;
font-size: 14px;
background: transparent;
border: 0;
outline: none;
cursor: pointer;
}
.ant-tabs-tab {
position: relative;
display: inline-flex;
align-items: center;
padding: 12px 0;
font-size: 14px;
background: transparent;
border: 0;
outline: none;
cursor: pointer;
}
.ant-tabs-tab+.ant-tabs-tab {
margin: 0 0 0 32px;
}
.ant-tabs-ink-bar {
background: @primary-color;
}
}
.ant-tabs-nav-scroll {
text-align: center;
@ -466,7 +488,6 @@
cursor: pointer;
&.active {
background-color: #d3eafd !important;
color: #2196f3;
}
}
}
@ -479,12 +500,6 @@
border-radius: 30px;
.clear-user-icon{
margin-left: 5px;
.anticon{
&:hover{
color: #2196f3;
}
}
}
}
</style>

View File

@ -3,8 +3,9 @@
<div class="my-account">账户</div>
<div class="account-row-item clearfix">
<div class="account-label gray-75">手机</div>
<span class="gray">{{ userDetail.phone ? userDetail.phone : '未填写' }}</span>
<span class="gray" v-if="userDetail.phone">{{ userDetail.phone}}</span>
<span class="pointer blue-e5 phone-margin" @click="updatePhone" v-if="userDetail.phone"></span>
<span class="pointer blue-e5 phone-margin" @click="bindPhone" v-else></span>
<!-- <span class="pointer blue-e5" @click="unbindPhone" v-if="userDetail.phone">?</span>-->
<!-- <span class="pointer blue-e5" @click="unbindPhone" v-else>?</span>-->
</div>
@ -78,6 +79,15 @@
});
}
/**
* 绑定手机号
*/
function bindPhone() {
openModal(true, {
record: { username: userDetail.value.username, id: userDetail.value.id },
});
}
/**
* 修改邮箱
*/

View File

@ -9,6 +9,7 @@
<div class="tenant-title">
<div class="item-left">
<div class="item-name">{{ item.name }}</div>
<div class="vip-message">
<div class="item-house" @click.stop="copyClick(item.houseNumber)">
<span>
组织门牌号{{ item.houseNumber }}
@ -16,6 +17,7 @@
</span>
</div>
</div>
</div>
<div class="item-right">
<span v-if="item.userTenantStatus === '3'">
<span class="pointer examine">待审核</span>
@ -60,24 +62,24 @@
<span
v-if="item.userTenantStatus !== '3'"
@click.stop="footerClick('editTenant', item)"
class="font-color333 flex-flow margin-right40 font-size13 pointer"
class="font-color333 flex-center margin-right40 font-size13 pointer"
>
<Icon icon="ant-design:edit-outlined" class="footer-icon" />
<span>查看租户名片</span>
</span>
<span v-else class="font-color9e flex-flow margin-right40 font-size13">
<span v-else class="font-color9e flex-center margin-right40 font-size13">
<Icon icon="ant-design:edit-outlined" class="footer-icon" />
<span>查看租户名片</span>
</span>
<span
v-if="item.userTenantStatus !== '3'"
@click.stop="footerClick('exitTenant', item)"
class="font-color333 flex-flow margin-right40 font-size13 pointer"
class="font-color333 flex-center margin-right40 font-size13 pointer"
>
<Icon icon="ant-design:export-outlined" class="footer-icon" />
<span>退出租户</span>
</span>
<span v-else class="font-color9e flex-flow margin-right40 font-size13">
<span v-else class="font-color9e flex-center margin-right40 font-size13">
<Icon icon="ant-design:export-outlined" class="footer-icon" />
<span>退出租户</span>
</span>
@ -87,7 +89,7 @@
</div>
<a-empty v-else description="暂无数据" style="position: relative;top: 50px;"/>
</div>
<a-modal v-model:visible="tenantVisible" width="400px" wrapClassName="edit-tenant-setting">
<a-modal v-model:open="tenantVisible" width="400px" wrapClassName="edit-tenant-setting">
<template #title>
<div style="font-size: 17px; font-weight: 700">查看名片</div>
<div style="color: #9e9e9e; margin-top: 10px; font-size: 13px"> 名片是您在该组织下的个人信息只在本组织中展示 </div>
@ -107,7 +109,7 @@
</a-modal>
<!-- 退出租户 -->
<a-modal v-model:visible="cancelVisible" width="800" destroy-on-close>
<a-modal v-model:open="cancelVisible" width="800" destroy-on-close>
<template #title>
<div class="cancellation">
<Icon icon="ant-design:warning-outlined" style="font-size: 20px;color: red"/>
@ -144,7 +146,7 @@
<a-modal
title="变更拥有者"
v-model:visible="owenVisible"
v-model:open="owenVisible"
width="800"
destroy-on-close
:cancelButtonProps="{display:'none'}"
@ -162,7 +164,7 @@
</a-modal>
<!-- begin 我的受邀信息 -->
<a-modal title="我的受邀信息" v-model:visible="invitedVisible" :footer="null">
<a-modal title="我的受邀信息" v-model:open="invitedVisible" :footer="null">
<a-row :span="24" class="invited-row">
<a-col :span="16">
组织
@ -388,6 +390,7 @@ const userDetail = ref({
if (res.success) {
createMessage.success(res.message);
cancelVisible.value = false;
initDataSource();
userExitChangeLoginTenantId(unref(myTenantInfo).tenantUserId);
} else {
if (res.message === 'assignedOwen') {
@ -440,6 +443,7 @@ const userDetail = ref({
changeOwenUserTenant({ userId:unref(tenantOwen), tenantId:unref(myTenantInfo).tenantUserId }).then((res) =>{
if(res.success){
createMessage.success(res.message);
initDataSource();
//update-begin---author:wangshuai---date:2023-10-23---for:QQYUN-68227退---
userExitChangeLoginTenantId(unref(myTenantInfo).tenantUserId);
//update-end---author:wangshuai---date:2023-10-23---for:QQYUN-68227退---
@ -585,6 +589,13 @@ const userDetail = ref({
min-width: 0;
}
.flex-center {
display: flex;
justify-content: center;
align-items: center;
min-width: 0;
}
.footer-box {
/*begin 兼容暗夜模式*/
border-top: 1px solid @border-color-base;
@ -622,7 +633,7 @@ const userDetail = ref({
font-size: 13px !important;
margin-right: 13px;
position: relative;
top: 4px;
top: 0px;
}
:deep(.edit-tenant-setting) {
color: #0a8fe9;
@ -636,6 +647,30 @@ const userDetail = ref({
.item-right {
align-items: center;
display: flex;
.buy-margin{
margin-left: 10px;
width: 66px;
border-radius: 20px;
background: rgba(255, 154, 0, 1);
height: 28px;
line-height: 28px;
cursor: pointer;
text-align: center;
span{
font-size: 14px;
font-weight: 400;
color: #ffffff;
}
}
.ordinary-user{
margin-left: 10px;
width: 66px;
span{
font-size: 14px;
font-weight: 400;
color: #9e9e9e;
}
}
}
.tenant-title {
align-items: center;
@ -643,6 +678,12 @@ const userDetail = ref({
display: flex;
justify-content: space-between;
padding: 24px 0;
.vip-message{
display: flex;
.vip-message-margin{
margin-right: 20px;
}
}
}
.change-owen{
font-size: 14px;

View File

@ -8,6 +8,8 @@ import geren1 from './icons/geren1.png'
import geren2 from './icons/geren2.png'
import zuhu1 from './icons/zuhu1.png'
import zuhu2 from './icons/zuhu2.png'
import { calculateFileSize } from "/@/utils/common/compUtils";
import { BasicColumn } from "@/components/Table";
export interface ListItem {
key: string;
@ -32,6 +34,7 @@ export const settingList = [
key: '2',
name: '我的租户',
component: 'TenantSetting',
isSlot:false,
icon:'ant-design:team-outlined',
img1: zuhu1,
img2: zuhu2,

View File

@ -1,7 +1,7 @@
<template>
<ScrollContainer>
<div ref="wrapperRef" class="user-account-setting" :class="[prefixCls,activeKey==5?'vip-background':'']">
<Tabs tab-position="left" :tabBarStyle="tabBarStyle" @tabClick="componentClick" v-model:activeKey="activeKey" :class="showVip?'vip-height':''">
<div ref="wrapperRef" class="user-account-setting" :class="[prefixCls]">
<Tabs tab-position="left" :tabBarStyle="tabBarStyle" @tabClick="componentClick" v-model:activeKey="activeKey">
<template v-for="item in componentList" :key="item.key">
<TabPane>
<template #tab>
@ -14,7 +14,8 @@
{{item.name}}
</span>
</template>
<component :is="item.component" v-if="activeKey === item.key" />
<component :is="item.component" v-if="activeKey === item.key && !item.isSlot" />
<slot name="component" v-if="activeKey === item.key && item.isSlot" />
</TabPane>
</template>
</Tabs>
@ -45,6 +46,12 @@ export default defineComponent({
TenantSetting,
WeChatDingSetting,
},
props:{
componentList:{
type:Array,
default:settingList
}
},
setup() {
const { prefixCls } = useDesign('user-account-setting-container');
const { getDarkMode} = useRootSetting();
@ -79,14 +86,6 @@ export default defineComponent({
}
//update-end---author:wangshuai ---date:20230721 forQQYUN-5726------------
}
onMounted(()=>{
goToMyTeantPage();
if(router.currentRoute.value.fullPath == '/system/usersetting'){
showVip.value = false;
return;
}
showVip.value = true;
})
return {
prefixCls,
settingList,
@ -96,8 +95,6 @@ export default defineComponent({
},
componentClick,
activeKey,
showVip,
componentList,
isDark
};
}

View File

@ -1,6 +1,17 @@
<template>
<div :class="[`${prefixCls}`]">
<div class="my-account">第三方APP</div>
<!-- <div class="account-row-item">-->
<!-- <div class="account-label gray-75">企业微信绑定</div>-->
<!-- <span>-->
<!-- <icon-font :style="!bindEnterpriseData.sysUserId ? { color: '#9e9e9e' } : { color: '#0082EF' }" class="item-icon" type="icon-qiyeweixin3" />-->
<!-- <span class="gray-75" style="margin-left: 12px">企业微信</span>-->
<!-- <span class="gray-75" style="margin-left: 8px" v-if="bindEnterpriseData.realname">{{ '' + bindEnterpriseData.realname }}</span>-->
<!-- <span class="blue-e5 pointer" style="margin-left: 24px" @click="wechatEnterpriseBind">{{-->
<!-- !bindEnterpriseData.sysUserId ? '绑定' : '解绑'-->
<!-- }}</span>-->
<!-- </span>-->
<!-- </div>-->
<div class="account-row-item">
<div class="account-label gray-75">钉钉绑定</div>
<span>

View File

@ -47,11 +47,19 @@ const validatorRules: Record<string, Rule[]> = {
const useForm = Form.useForm;
const title = ref<string>('');
const emit = defineEmits(['register','success']);
//
const type = ref<string>('updatePhone');
const [registerModal, { setModalProps, closeModal }] = useModalInner(async (data) => {
formRef.value.resetFields();
formRef.value.clearValidate();
setModalProps({ confirmLoading: false });
if(data.record.phone){
title.value = '修改手机号';
type.value = "updatePhone"
}else{
title.value = '绑定手机号';
type.value = "bindPhone"
}
//
data.record.smscode = '';
Object.assign(formState, data.record);
@ -72,7 +80,7 @@ async function updatePhone() {
await formRef.value.validateFields();
updateMobile(formState).then((res) =>{
if(res.success){
createMessage.success("修改手机号成功")
createMessage.success(type.value === "updatePhone"?"修改手机号成功":"绑定手机号成功")
emit("success")
closeModal();
}else{

View File

@ -187,7 +187,6 @@ export default ({ command, mode }: ConfigEnv): UserConfig => {
'intro.js',
'lodash-es',
'md5',
'nprogress',
'path-to-regexp',
'pinia',
'print-js',
@ -203,30 +202,20 @@ export default ({ command, mode }: ConfigEnv): UserConfig => {
'tinymce/plugins/autosave',
'tinymce/plugins/code',
'tinymce/plugins/codesample',
'tinymce/plugins/contextmenu',
'tinymce/plugins/directionality',
'tinymce/plugins/fullscreen',
'tinymce/plugins/hr',
'tinymce/plugins/image',
'tinymce/plugins/insertdatetime',
'tinymce/plugins/link',
'tinymce/plugins/lists',
'tinymce/plugins/media',
'tinymce/plugins/nonbreaking',
'tinymce/plugins/noneditable',
'tinymce/plugins/pagebreak',
'tinymce/plugins/paste',
'tinymce/plugins/preview',
'tinymce/plugins/print',
'tinymce/plugins/save',
'tinymce/plugins/searchreplace',
'tinymce/plugins/spellchecker',
'tinymce/plugins/tabfocus',
'tinymce/plugins/table',
'tinymce/plugins/template',
'tinymce/plugins/textcolor',
'tinymce/plugins/textpattern',
'tinymce/plugins/visualblocks',
'tinymce/plugins/visualchars',
'tinymce/plugins/wordcount',
'tinymce/themes/silver',