From c4246ca910f28014efaace64ebf92f47a673a9cf Mon Sep 17 00:00:00 2001 From: queenwuli <942534046@qq.com> Date: Mon, 25 Jan 2021 11:47:46 +0800 Subject: [PATCH] gx --- hive-app/pages/member/addLabel.vue | 153 +++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 123 insertions(+), 30 deletions(-) diff --git a/hive-app/pages/member/addLabel.vue b/hive-app/pages/member/addLabel.vue index 2655fb7..b856bd9 100644 --- a/hive-app/pages/member/addLabel.vue +++ b/hive-app/pages/member/addLabel.vue @@ -1,48 +1,130 @@ <template> <!-- 添加标签 --> <view> - <search-bar placeholder="搜索标签名称" class="ml-10 mr-10"></search-bar> - <view class="font-14 content"> - <view class="content-title"> + <search-bar @confirm="search" placeholder="搜索标签名称" class="ml-10 mr-10"></search-bar> + <view class="content"> + <view class="title"> <text>常用标签</text> </view> - <view> - <checkbox-group> - <label v-for="(item,index) in list" class="flex align-center"> - <view class="ml-10"> - <checkbox color="#518EFF"></checkbox> - </view> - <view class="ml-10 checkbox-text">{{item.name}}</view> - </label> - </checkbox-group> + <view class="list" v-for="(item,index) in list" @click="lableChange(item)"> + <text class="iconfont" + :class="item.isCheck?'icontubiao-duoxuandianji':'iconcheckbox-full'" + :style="{color: item.color}"></text> + <view class="ml-10 name">{{item.label}}</view> </view> + <view class="title"> + <text>我的标签</text> + </view> + + <uni-swipe-action> + <uni-swipe-action-item :right-options="options" @click="bindClick($event, item.id)" v-for="(item,index) in myList"> + <view class="list" @click="lableChange(item)"> + <text class="iconfont" + :class="item.isCheck?'icontubiao-duoxuandianji':'iconcheckbox-full'" + :style="{color: item.color}"></text> + <view class="ml-10 name">{{item.label}}</view> + </view> + </uni-swipe-action-item> + </uni-swipe-action> </view> - <button class="sticky-footer blue-btn">创建标签</button> + <button class="sticky-footer blue-btn" @click="confirm">确认</button> </view> </template> <script> import searchBar from '../../components/searchBar/index.vue'; + import {uniSwipeAction} from '../../components/uni-swipe-action/uni-swipe-action.vue' + import {uniSwipeActionItem} from '../../components/uni-swipe-action-item/uni-swipe-action-item.vue' export default { components:{ searchBar }, data(){ return{ - list:[ - {name:'痘坑'}, - {name:'美白'}, - {name:'祛斑'}, - {name:'瘦身'}, - {name:'祛痘'}, - {name:'塑性'}, - {name:'双眼皮'}, - {name:'白富美'}, - {name:'轻度色斑'}, - {name:'瘦脸'}, - {name:'减肥美白'}, - {name:'胎记'} - ] + queryKey: '', + list:[], + myList:[], + selectId: '', + options:[{ + text: '删除', + style: { + backgroundColor: '#dd524d' + } + } + ] + } + }, + onShow() { + this.loadList() + }, + onLoad(options) { + if(options.selectId){ + this.selectId = options.selectId + } + }, + onNavigationBarButtonTap(e){ + if(e.index==0){ + uni.navigateTo({ + url:"./createLabel" + }) + } + }, + methods:{ + loadList(){ + let selectedArr = this.selectId?this.selectId.split(','):[]; + this.$httpUtils.request('/api/label/findLabelList', { + label: this.queryKey + }, 'POST').then((res) => { + if(res.status == 200){ + this.list = res.mapInfo.allLabel.map((item) => { + if(this.selectId && selectedArr.includes(item.id.toString())){ + return Object.assign(item, {isCheck: true}) + } + return Object.assign(item, {isCheck: false}) + }); + this.myList = res.mapInfo.myLabel.map((item) => { + if(this.selectId && selectedArr.includes(item.id.toString())){ + return Object.assign(item, {isCheck: true}) + } + return Object.assign(item, {isCheck: false}) + }); + } + }) + }, + search(val){ + this.queryKey = val; + this.loadList(); + }, + lableChange(item){ + item.isCheck = !item.isCheck; + }, + confirm(){ + let result = this.list.concat(this.myList); + let selectItems = result.filter((item) => { + return item.isCheck + }); + let pages = getCurrentPages(); + let prevPage = pages[ pages.length - 2 ]; + if(selectItems.length){ + prevPage.$vm.setLabel && prevPage.$vm.setLabel(selectItems); + } + uni.navigateBack() + }, + bindClick(e, id){ + uni.showModal({ + title: '提示', + content: '确定删除该标签吗?', + success: (res) => { + if (res.confirm) { + this.$httpUtils.request('/api/label/delById/'+id).then((res) => { + if(res.status == 200){ + this.loadList() + } + this.$toast.info(res.info); + }) + } + } + }); } } } @@ -52,14 +134,25 @@ .content{ margin-bottom: 60px; } - .content-title{ + .title{ background: #F2F2F2; padding: 10px; + font-size: 15px; } - .checkbox-text{ + .list{ width: 100%; - padding: 10px 0; + display: flex; + align-items: center; + padding-left: 10px; + } + .list .iconfont{ + font-size: 18px; + } + .list .name{ + width: 100%; + padding: 10px 5px; border-bottom: 1px solid #EDEAF4; + font-size: 14px; } .sticky-footer{ bottom: 10px; -- Gitblit v1.9.1