<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"> <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="listflag" style="color: #ccc;font-size: 36rpx;margin-top: 200rpx;text-align: center;"> 该设备暂无套餐 </view> <view class="anniu"> <view class="xinz" @click="btnadd"> 新增套餐 </view> </view> <view v-if="btnmsk" style="width: 100%;height: 100vh;position: fixed;top: 0;left: 0;background-color: #000;opacity: .1;z-index: 999;"></view> </view> </view> </template> <script> import dragSorts from '@/page_fenbao/HM-dragSorts/HM-dragSorts.vue' export default { components: { 'HM-dragSorts': dragSorts }, data() { return { btnmsk:false, list: [], loading:false, disabled: false, btnWidth: 180, show: false, options: [{ text: '删除', style: { backgroundColor: '#dd524d' } }], deviceId:'', bgc: { backgroundColor: "#8883f0", }, newobj:[], tcidlist:'', listflag:false, storeList:[], indexstore:'' }; }, onLoad(option) { console.log(option); this.deviceId = option.id }, onShow() { this.btnmsk = false this.tcidlist = [] this.list = [] this.newobj = [] this.getlist() }, // 分享到好友(会话) onShareAppMessage: function () { return { title: '创亿康', path: '/pages/index/index' } }, // 分享到朋友圈 onShareTimeline: function () { return { title: '创亿康', query: '', path: '/pages/index/index' } }, methods: { handleTcidlistUpdate(newTcidlist) { // 这里是处理接收到的新 tcidlist 的地方 // console.log('接收到的 tcidlist:', newTcidlist); this.tcidlist = newTcidlist uni.navigateTo({ url:'/page_fenbao/addtaocan?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("/agent/suit/sort", filteredArr).then((res) => { if (res.code == 200) { // this.getgroup() } }) }, 200) }, getlist() { let data = { pageNum: 1, pageSize: 99 } this.$u.get(`/agent/suit/list`, data).then((res) => { if (res.code == 200) { this.list = res.rows this.loading = true this.newobj = this.list if(this.list.length > 0){ this.listflag = false }else{ this.listflag = 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(){ this.btnmsk = true uni.navigateTo({ url:'/page_fenbao/addtaocan?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: 220rpx; .box { width: 750rpx; height:100%; background: #F4F5F7; border-radius: 0rpx 0rpx 0rpx 0rpx; padding: 50rpx; padding-top: 30rpx !important; .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>