ct-mattress/page_fenbao/listtaocan.vue
2024-09-14 18:01:18 +08:00

267 lines
5.7 KiB
Vue

<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;
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>