From 81b8089d94e7f9537b8f5a00b68c95a9e858e2bf Mon Sep 17 00:00:00 2001 From: whycq <10027870+whycq@user.noreply.gitee.com> Date: 星期一, 13 十一月 2023 12:48:41 +0800 Subject: [PATCH] # --- pages/authority/authority.vue | 151 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 151 insertions(+), 0 deletions(-) diff --git a/pages/authority/authority.vue b/pages/authority/authority.vue index 02409e3..43d4c03 100644 --- a/pages/authority/authority.vue +++ b/pages/authority/authority.vue @@ -1,8 +1,159 @@ <template> + <view> + <view class="container"> + <view class="name all" @click="back(all)">{{all.title}}</view> + </view> + <view class="container" v-for="(item,i) in tree" :key="i"> + <view :class="item.key"> + <view class="title" v-show="item.key == 'dept_id'" > + <view @click="back(item)">{{item.title}}</view> + <view @click="switchbtn(item)"> + <uni-icons type="top" v-show="item.switch"></uni-icons> + <uni-icons type="bottom" v-show="!item.switch"></uni-icons> + </view> + </view> + <view class="name" v-show="item.key == 'user_id'" @click="back(item)"> + <view>{{item.title}}</view> + </view> + <view class="sub1" v-for="sub in item.children" style="margin-left: 1em;" v-show="item.switch"> + <view :class="sub.key" class="title sub-title" v-show="sub.key == 'dept_id'" > + <view @click="back(sub)">{{sub.title}}</view> + <view @click="switchbtn(sub)"> + <!-- <uni-icons type="bottom"></uni-icons> --> + <uni-icons type="top" v-show="sub.switch"></uni-icons> + <uni-icons type="bottom" v-show="!sub.switch"></uni-icons> + </view> + </view> + + <view :class="sub.key" class="name" v-show="sub.key == 'user_id'" > + <view @click="back(sub)">{{sub.title}}</view> + </view> + + <view class="sub2" v-for="it in sub.children" style="margin-left: 1em;" v-show="sub.switch"> + <view :class="it.key" class="title sub-title" v-show="it.key == 'dept_id'">{{it.title}}</view> + <view :class="it.key" class="name" v-show="it.key == 'user_id'" > + <view @click="back(it)">{{it.title}}</view> + </view> + </view> + </view> + </view> + </view> + </view> </template> <script> + import user from '@/pages/api/user/user.js' + export default { + data() { + return { + tree: [{title: '瓒呯骇绠$悊鍛�'}], + all: {} + } + }, + onShow() { + this.getUserTree() + }, + methods: { + async getUserTree() { + let res = await user.getUserTree() + if (res.code === 200) { + this.tree = [] + this.all = [] + + console.log(res.data[0]); + // this.all = res.data[0] + if (res.data[0].children) { + for (let k of res.data[0].children) { + + if (k.children && k.children.length > 0) { + for (let i of k.children) { + i['switch'] = true + // console.log(i); + } + } + // console.log(k); + k['switch'] = true + this.tree.push(k) + } + } else { + this.tree.push(res.data[0]) + } + this.all = res.data[0] + } else if (res.code === 403) { + this.backLogin(res) + } + // console.log(this.tree); + }, + switchbtn(item) { + console.log(item.switch); + item.switch = item.switch ? false : true + console.log(item.switch); + }, + open(e) { + // console.log('open', e) + }, + close(e) { + // console.log('close', e) + }, + change(e) { + // console.log('change', e) + }, + backLogin(res) { + uni.showToast({title: res.msg, icon: "none", position: 'top'}) + setTimeout(() => { + uni.reLaunch({ + url: '../login/login' + }); + }, 1000); + }, + back(it) { + console.log(it); + uni.$emit('isRefresh', it) + uni.navigateBack({ + + }) + } + } + } </script> <style> + .all { + box-shadow: -4px 0px 0px #55aaff; + font-size: 15px; + font-weight: 700; + margin-left: 10rpx; + display: flex; + justify-content: space-between; + align-items: center; + } + .container { + margin: 16rpx; + min-height: 35rpx; + background-color: #FFF; + padding: 16rpx; + } + .box1 { + background-color: aqua; + } + .title { + box-shadow: -3px 0px 0px #55aaff; + padding-left: 5px; + font-size: 15px; + font-weight: 700; + display: flex; + justify-content: space-between; + align-items: center; + } + .sub-title { + margin: 16rpx; + box-shadow: -3px 0px 0px #55aa7f; + } + .name { + padding: 16rpx; + display: flex; + justify-content: space-between; + align-items: center; + } + </style> \ No newline at end of file -- Gitblit v1.9.1