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 | 128 +++++++++++++++++++++++++++++++++++++++--- 1 files changed, 119 insertions(+), 9 deletions(-) diff --git a/pages/authority/authority.vue b/pages/authority/authority.vue index 5abdd38..43d4c03 100644 --- a/pages/authority/authority.vue +++ b/pages/authority/authority.vue @@ -1,10 +1,43 @@ <template> <view> - <u-collapse @change="change" @close="close" @open="open"> - <u-collapse-item :title="item.title" name="Docs guide" v-for="item in tree"> - <text class="u-collapse-content">1</text> - </u-collapse-item> - </u-collapse> + <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> @@ -13,7 +46,8 @@ export default { data() { return { - tree: [{title: '瓒呯骇绠$悊鍛�'}] + tree: [{title: '瓒呯骇绠$悊鍛�'}], + all: {} } }, onShow() { @@ -24,13 +58,36 @@ let res = await user.getUserTree() if (res.code === 200) { this.tree = [] - console.log(res.data); - for (let k of res.data) { - this.tree.push(k) + 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) @@ -40,10 +97,63 @@ }, 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