<template> <view class="page"> <u-navbar title="套餐管理" :border-bottom="false" :background="bgc" title-color='#fff' back-icon-color="#fff" title-size='36' height='50'></u-navbar> <view class="box" v-if="loading"> <!-- <u-swipe-action :show="item.show" :index="index" v-for="(item, index) in list" :key="item.suitId" @click="click(item)" @open="open" :options="options"> <view class="boxlist" @click="btnedit(item)"> <view class="toptime"> <text>{{item.name.length > 5 ? item.name.substring(0,4) + '...' : item.name}}(通电时长:{{item.value}} <text v-if="item.timeUnit == 1">日</text> <text v-if="item.timeUnit == 2">时</text> <text v-if="item.timeUnit == 3">分钟</text> <text v-if="item.timeUnit == 4">秒</text> )</text> <text>¥{{item.price}}</text> </view> <view class="bumday" v-if="item.description"> <text class="shi">{{item.description.length > 20 ? item.description.substring(0, 20) + '...' : item.description}}</text></text> </view> </view> </u-swipe-action> --> <HM-dragSorts ref="dragSorts" :list="newobj" :tcidlist="tcidlist" @update:tcidlist="handleTcidlistUpdate" :autoScroll="true" :feedbackGenerator="false" @newList="handleNewList" rowHeight='50' @change="change" @confirm="confirm" @onclick="onclick" :listBackgroundColor='F7FAFE'></HM-dragSorts> <view class="" v-if="list.length == 0" style="color: #ccc;font-size: 36rpx;margin-top: 200rpx;text-align: center;"> 该设备暂无套餐 </view> <view class="anniu"> <view class="xinz" @click="btnadd"> 新增套餐 </view> </view> </view> </view> </template> <script> import dragSorts from '@/page_components/HM-dragSorts/HM-dragSorts.vue' export default { components: { 'HM-dragSorts': dragSorts }, data() { return { list: [], loading:false, disabled: false, btnWidth: 180, show: false, options: [{ text: '删除', style: { backgroundColor: '#dd524d' } }], deviceId:'', bgc: { backgroundColor: "#8883f0", }, newobj:[], tcidlist:'' }; }, onLoad(option) { console.log(option); this.deviceId = option.id }, onShow() { this.tcidlist = [] this.list = [] this.newobj = [] this.getlist() }, // 分享到好友(会话) onShareAppMessage: function () { return { title: '创想物联', path: '/pages/shouye/index' } }, // 分享到朋友圈 onShareTimeline: function () { return { title: '创想物联', query: '', path: '/pages/shouye/index' } }, methods: { handleTcidlistUpdate(newTcidlist) { // 这里是处理接收到的新 tcidlist 的地方 // console.log('接收到的 tcidlist:', newTcidlist); this.tcidlist = newTcidlist uni.navigateTo({ url:'/page_fenbao/statulist/taocanlist/addtaocan/index?id=' + this.deviceId + '&suitId=' + this.tcidlist.suitId }) }, handleNewList(newList) { let list = [this.list, ...newList] const newSortedList = list.map((item, index) => { return { suitId: item.suitId, sort: index + 1 // 使用索引值加 1 作为 groupSort } }) let filteredArr = newSortedList.filter(item => item.suitId !== undefined) console.log("新的排列数据:", filteredArr) setTimeout(() => { this.$u.put("/app/suit/sort", filteredArr).then((res) => { if (res.code == 200) { // this.getgroup() } }); }, 200) }, getlist() { let data = { pageNum: 1, pageSize: 99 } this.$u.get(`/app/suit/tempList`, data).then((res) => { if (res.code == 200) { this.list = res.rows this.loading = true // this.list = this.list.map(item => ({ // ...item, // checked: false, // isActive: false // })) this.newobj = this.list console.log(this.list); this.loading = true } }) }, // btnedit(item){ // uni.navigateTo({ // url:'/page_fenbao/statulist/taocanlist/addtaocan/index?id=' + this.deviceId + '&suitId=' + item.suitId // }) // }, click(item) { this.$u.delete(`/app/suit/${item.suitId}`).then((res) => { if (res.code == 200) { this.$u.toast(`删除成功`); this.getlist() }else{ uni.showToast({ title: res.msg, icon: 'none', duration: 1000, }) } }); }, open(index) { this.list[index].show = true this.list.map((val, idx) => { if (index != idx) this.list[idx].show = false; }) }, btnadd(){ uni.navigateTo({ url:'/page_fenbao/statulist/taocanlist/addtaocan/index?id=' + this.deviceId }) }, change() { }, confirm(e) { }, onclick(e) { }, } }; </script> <style lang="scss"> /deep/ .u-swipe-del{ height: 140rpx !important; } /deep/ .u-swipe-action{ height: 140rpx !important; } /deep/ .u-title{ padding-bottom: 22rpx; } /deep/ .u-icon__icon{ padding-bottom: 22rpx; } page { background: #F4F5F7; } .page { width: 750rpx; padding-bottom: 400rpx; .box { width: 750rpx; height:100%; background: #F4F5F7; border-radius: 0rpx 0rpx 0rpx 0rpx; padding: 50rpx; .anniu{ position: fixed; bottom: 0; left: 50%; transform: translateX(-50%); width: 100%; height: 200rpx; padding-top: 40rpx; background-color: #fff; padding-left: 50rpx; padding-right: 50rpx; .xinz{ width: 100%; height: 84rpx; background: #8883F0; filter: blur(0px); text-align: center; line-height: 84rpx; font-size: 36rpx; color: #FFFFFF; border-radius: 50rpx; } } .boxlist{ padding: 20rpx 42rpx; box-sizing: border-box; .toptime{ font-size: 32rpx; // color: #000000; display: flex; justify-content: space-between; } .bumday{ margin-top: 10rpx; text{ font-size: 32rpx; color: #95989D; } } } /deep/ .u-swipe-action { margin-top: 30rpx; border-radius: 20rpx; width: 654rpx; height: 182rpx; background: #FFFFFF; box-shadow: 0rpx 16rpx 40rpx 0rpx rgba(42, 130, 228, 0.1); filter: blur(0px); border: 0; } /deep/ .u-swipe-del { height: 190rpx; } } } </style>