| | |
| | | <template>
|
| | | <view>
|
| | | <div class="box">
|
| | | <div class="box_info" :style="{background: 'url(' + img + ')'}">
|
| | | <image :src="userInfo.avatar ? userInfo.avatar : avatar" mode="widthFix" />
|
| | | <div class="box_info_box">
|
| | | <text>{{userInfo.realname}}</text>
|
| | | <div class="box_info_box_x" @click="switchOrganization">
|
| | | <text>{{userInfo.curComDepartment ? userInfo.curComDepartment.name : ''}}</text>
|
| | | <image src="@/static/mine_ic_change@2x.png" alt="" />
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | <div class="box_function">
|
| | | <div class="box_function_item" v-for="(item, index) in MENU" :key="index" @click="jump(item.url)">
|
| | | <div class="box_function_item_left">
|
| | | <image :src="item.icon" alt="" />
|
| | | <text>{{item.name}}</text>
|
| | | </div>
|
| | | <div class="box_function_item_right">
|
| | | <van-icon name="arrow" size="20" color="#CCCCCC" />
|
| | | </div>
|
| | | </div>
|
| | | </div>
|
| | | <div class="box_out" @click="loginOut"><text>退出登录</text></div>
|
| | | </div>
|
| | | <!-- 部门选择器 -->
|
| | | <u-picker :show="show" :columns="columns" @confirm="onConfirm" @cancel="show = false"></u-picker>
|
| | | <myTabbar :index="2" />
|
| | | </view>
|
| | | </template>
|
| | |
|
| | | <script>
|
| | | import { changeCom, getDepartmentListByConditon } from '@/util/api/PersonalAPI'
|
| | | import myTabbar from "@/components/myTabber.vue"
|
| | | import { wxLoginOut } from '@/util/api'
|
| | | import { mapState } from 'vuex'
|
| | | export default {
|
| | | components: {
|
| | | myTabbar
|
| | | },
|
| | | computed: mapState([
|
| | | 'userInfo'
|
| | | ]),
|
| | | data() {
|
| | | return {
|
| | | <template> |
| | | <view> |
| | | <div class="box"> |
| | | <div class="box_info" :style="{background: 'url(' + img + ')'}"> |
| | | <image :src="avatar" mode="widthFix" /> |
| | | <div class="box_info_box"> |
| | | <text>{{userInfo.realname}}</text> |
| | | <div class="box_info_box_x" @click="switchOrganization"> |
| | | <text>{{userInfo.curComDepartment ? userInfo.curComDepartment.name : ''}}</text> |
| | | <image src="@/static/mine_ic_change@2x.png" alt="" /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="box_function"> |
| | | <div class="box_function_item" v-for="(item, index) in MENU" :key="index" @click="jump(item.url)"> |
| | | <div class="box_function_item_left"> |
| | | <image :src="item.icon" alt="" /> |
| | | <text>{{item.name}}</text> |
| | | </div> |
| | | <div class="box_function_item_right"> |
| | | <van-icon name="arrow" size="20" color="#CCCCCC" /> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="box_out" @click="loginOut"><text>退出登录</text></div> |
| | | </div> |
| | | <!-- 部门选择器 --> |
| | | <u-picker :show="show" :columns="columns" @confirm="onConfirm" @cancel="show = false"></u-picker> |
| | | <myTabbar :index="2" /> |
| | | </view> |
| | | </template> |
| | | |
| | | <script> |
| | | import { changeCom, getDepartmentListByConditon } from '@/util/api/PersonalAPI' |
| | | import myTabbar from "@/components/myTabber.vue" |
| | | import { wxLoginOut } from '@/util/api' |
| | | import { mapState } from 'vuex' |
| | | export default { |
| | | components: { |
| | | myTabbar |
| | | }, |
| | | computed: mapState([ |
| | | 'userInfo' |
| | | ]), |
| | | data() { |
| | | return { |
| | | MENU: [ |
| | | { name: '个人信息', url: '/pages/personal/personal', icon: require('@/static/mine_ic_gerenxinxi@2x.png') }, |
| | | // { name: '系统通知', url: '', icon: require('@/assets/icon/mine_ic_xitonggonggao@2x.png') }, |
| | |
| | | { name: '更新邮箱号', url: '/pages/updateMailbox/updateMailbox', icon: require('@/static/mine_ic_youxianghao@2x.png') }, |
| | | { name: '扫码绑定账号', url: '', icon: require('@/static/mine_ic_bangding@2x.png') }, |
| | | { name: '修改密码', url: '/pages/changePassword/changePassword', icon: require('@/static/mine_ic_xiugaimima@2x.png') }, |
| | | ],
|
| | | img: require('@/static/mine_bg@2x.png'),
|
| | | avatar: require('@/static/2@2x.png'),
|
| | | show: false,
|
| | | columns: []
|
| | | }
|
| | | },
|
| | | onLoad() {
|
| | | uni.hideTabBar()
|
| | | },
|
| | | methods: {
|
| | | // 退出登录
|
| | | loginOut() {
|
| | | wxLoginOut({
|
| | | companyUserId: this.userInfo.companyUser.id
|
| | | }).then(res => {
|
| | | if (res.code === 200) {
|
| | | this.$store.commit('clearCache')
|
| | | uni.reLaunch({
|
| | | url: '/pages/login/login'
|
| | | });
|
| | | }
|
| | | })
|
| | | },
|
| | | // 确认切换组织
|
| | | onConfirm(e) {
|
| | | changeCom(e.value[0].id).then(res => {
|
| | | if (res.code === 200) {
|
| | | this.show = false
|
| | | uni.showToast({ title: '更新组织成功', icon: 'success', duration: 2000 });
|
| | | this.$store.dispatch('getUserInfos')
|
| | | }
|
| | | })
|
| | | },
|
| | | // 获取组织
|
| | | switchOrganization() {
|
| | | getDepartmentListByConditon({
|
| | | type: 0
|
| | | }).then(res => {
|
| | | if (res.code === 200) {
|
| | | this.columns = []
|
| | | let arr = []
|
| | | res.data.forEach((item) => {
|
| | | let obj = {
|
| | | text: item.name, id: item.id
|
| | | }
|
| | | arr.push(obj)
|
| | | })
|
| | | this.columns.push(arr)
|
| | | this.show = true
|
| | | }
|
| | | })
|
| | | },
|
| | | // 跳转页面
|
| | | jump(url) {
|
| | | if (!url) return
|
| | | uni.navigateTo({ url })
|
| | | }
|
| | | }
|
| | | }
|
| | | </script>
|
| | |
|
| | | <style lang="scss" scoped>
|
| | | .box {
|
| | | width: 100%;
|
| | | padding: 30rpx;
|
| | | box-sizing: border-box;
|
| | | .box_info {
|
| | | padding: 0 30rpx;
|
| | | height: 168rpx;
|
| | | border-radius: 16rpx;
|
| | | display: flex;
|
| | | align-items: center;
|
| | | background-repeat: no-repeat;
|
| | | background-size: cover;
|
| | | image {
|
| | | width: 88rpx;
|
| | | height: 88rpx;
|
| | | }
|
| | | .box_info_box {
|
| | | height: 88rpx;
|
| | | display: flex;
|
| | | margin-left: 30rpx;
|
| | | flex-direction: column;
|
| | | justify-content: space-between;
|
| | | .box_info_box_x {
|
| | | display: flex;
|
| | | align-items: center;
|
| | | text {
|
| | | font-size: 26rpx;
|
| | | font-weight: 400;
|
| | | color: rgba(255, 255, 255, 0.8);
|
| | | }
|
| | | image {
|
| | | width: 26rpx;
|
| | | height: 26rpx;
|
| | | margin-left: 10rpx;
|
| | | }
|
| | | }
|
| | | text {
|
| | | font-size: 34rpx;
|
| | | font-weight: 500;
|
| | | color: #FFFFFF;
|
| | | }
|
| | | }
|
| | | }
|
| | | .box_function {
|
| | | margin-top: 30rpx;
|
| | | .box_function_item {
|
| | | display: flex;
|
| | | align-items: center;
|
| | | justify-content: space-between;
|
| | | height: 98rpx;
|
| | | border-bottom: 1rpx solid #E5E5E5;
|
| | | /*&:last-child {*/
|
| | | /* border: none;*/
|
| | | /*}*/
|
| | | .box_function_item_left {
|
| | | display: flex;
|
| | | align-items: center;
|
| | | image {
|
| | | width: 36rpx;
|
| | | height: 36rpx;
|
| | | margin-right: 24rpx;
|
| | | }
|
| | | text {
|
| | | font-size: 30rpx;
|
| | | font-weight: 400;
|
| | | color: #222222;
|
| | | }
|
| | | }
|
| | | }
|
| | | }
|
| | | .box_out {
|
| | | position: fixed;
|
| | | bottom: 200rpx;
|
| | | left: 50%;
|
| | | transform: translate(-50%, 0);
|
| | | width: 350rpx;
|
| | | height: 88rpx;
|
| | | background: #F7F7F7;
|
| | | border-radius: 8rpx;
|
| | | display: flex;
|
| | | align-items: center;
|
| | | justify-content: center;
|
| | | font-size: 30rpx;
|
| | | font-weight: 400;
|
| | | color: #333333;
|
| | | }
|
| | | }
|
| | | ], |
| | | img: require('@/static/mine_bg@2x.png'), |
| | | avatar: require('@/static/2@2x.png'), |
| | | show: false, |
| | | columns: [] |
| | | } |
| | | }, |
| | | onLoad() { |
| | | uni.hideTabBar() |
| | | }, |
| | | methods: { |
| | | // 退出登录 |
| | | loginOut() { |
| | | wxLoginOut({ |
| | | companyUserId: this.userInfo.companyUser.id |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | this.$store.commit('clearCache') |
| | | uni.reLaunch({ |
| | | url: '/pages/login/login' |
| | | }); |
| | | } |
| | | }) |
| | | }, |
| | | // 确认切换组织 |
| | | onConfirm(e) { |
| | | changeCom(e.value[0].id).then(res => { |
| | | if (res.code === 200) { |
| | | this.show = false |
| | | uni.showToast({ title: '更新组织成功', icon: 'success', duration: 2000 }); |
| | | this.$store.dispatch('getUserInfos') |
| | | } |
| | | }) |
| | | }, |
| | | // 获取组织 |
| | | switchOrganization() { |
| | | getDepartmentListByConditon({ |
| | | type: 0 |
| | | }).then(res => { |
| | | if (res.code === 200) { |
| | | this.columns = [] |
| | | let arr = [] |
| | | res.data.forEach((item) => { |
| | | let obj = { |
| | | text: item.name, id: item.id |
| | | } |
| | | arr.push(obj) |
| | | }) |
| | | this.columns.push(arr) |
| | | this.show = true |
| | | } |
| | | }) |
| | | }, |
| | | // 跳转页面 |
| | | jump(url) { |
| | | if (!url) return |
| | | uni.navigateTo({ url }) |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .box { |
| | | width: 100%; |
| | | padding: 30rpx; |
| | | box-sizing: border-box; |
| | | .box_info { |
| | | padding: 0 30rpx; |
| | | height: 168rpx; |
| | | border-radius: 16rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | background-repeat: no-repeat; |
| | | background-size: cover; |
| | | image { |
| | | width: 88rpx; |
| | | height: 88rpx; |
| | | } |
| | | .box_info_box { |
| | | height: 88rpx; |
| | | display: flex; |
| | | margin-left: 30rpx; |
| | | flex-direction: column; |
| | | justify-content: space-between; |
| | | .box_info_box_x { |
| | | display: flex; |
| | | align-items: center; |
| | | text { |
| | | font-size: 26rpx; |
| | | font-weight: 400; |
| | | color: rgba(255, 255, 255, 0.8); |
| | | } |
| | | image { |
| | | width: 26rpx; |
| | | height: 26rpx; |
| | | margin-left: 10rpx; |
| | | } |
| | | } |
| | | text { |
| | | font-size: 34rpx; |
| | | font-weight: 500; |
| | | color: #FFFFFF; |
| | | } |
| | | } |
| | | } |
| | | .box_function { |
| | | margin-top: 30rpx; |
| | | .box_function_item { |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: space-between; |
| | | height: 98rpx; |
| | | border-bottom: 1rpx solid #E5E5E5; |
| | | /*&:last-child {*/ |
| | | /* border: none;*/ |
| | | /*}*/ |
| | | .box_function_item_left { |
| | | display: flex; |
| | | align-items: center; |
| | | image { |
| | | width: 36rpx; |
| | | height: 36rpx; |
| | | margin-right: 24rpx; |
| | | } |
| | | text { |
| | | font-size: 30rpx; |
| | | font-weight: 400; |
| | | color: #222222; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | .box_out { |
| | | position: fixed; |
| | | bottom: 200rpx; |
| | | left: 50%; |
| | | transform: translate(-50%, 0); |
| | | width: 350rpx; |
| | | height: 88rpx; |
| | | background: #F7F7F7; |
| | | border-radius: 44rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | font-size: 30rpx; |
| | | font-weight: 400; |
| | | color: #333333; |
| | | } |
| | | } |
| | | </style> |