342 lines
7.5 KiB
Vue
342 lines
7.5 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='42'></u-navbar>
|
||
|
||
<view class="box" v-if="loading">
|
||
<view class="box_list" v-for="(item, index) in list" :key="index" @click="btnactive(item.storeId,index,item)" >
|
||
<view :class="['boxlist', { active: tcidlist.includes(item.storeId) }]">
|
||
<view :class="['toptime', { activewz: tcidlist.includes(item.storeId) }]">
|
||
<text>{{item.name}}</text>
|
||
<text>负责人:{{item.userName}}</text>
|
||
</view>
|
||
</view>
|
||
<view class="ccc">
|
||
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
<view class="" v-if="listflag"
|
||
style="color: #ccc;font-size: 36rpx;margin-top: 200rpx;text-align: center;">
|
||
暂无场所
|
||
</view>
|
||
<view class="anniu" @click="btnqd">
|
||
<!-- <view class="xinz" @click="btnadd">
|
||
新建套餐
|
||
</view> -->
|
||
<view class="xinz">
|
||
确定
|
||
</view>
|
||
</view>
|
||
</view>
|
||
|
||
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
export default {
|
||
data() {
|
||
return {
|
||
list: '',
|
||
loading: false,
|
||
disabled: false,
|
||
btnWidth: 180,
|
||
show: false,
|
||
options: [{
|
||
text: '删除',
|
||
style: {
|
||
backgroundColor: '#dd524d'
|
||
}
|
||
}],
|
||
storeId: '',
|
||
bgc: {
|
||
backgroundColor: "#8883f0",
|
||
},
|
||
activeid: '',
|
||
checkboxes: [],
|
||
tcidlist: [],
|
||
titaoc: [],
|
||
newobj: [],
|
||
listflag:false,
|
||
titflag:'',
|
||
arrlists:[],
|
||
deviceList:[],
|
||
};
|
||
},
|
||
onLoad(option) {
|
||
uni.removeStorageSync('tcidlist')
|
||
|
||
this.storeId = option.id
|
||
if(option.title == '确定'){
|
||
this.titflag = '确定'
|
||
// this.deviceList = JSON.parse(option.list)
|
||
}
|
||
},
|
||
created() {
|
||
// 初始化checkboxes数组,每个元素都设为false(表示初始时不显示复选框)
|
||
// this.checkboxes = new Array(this.list.length).fill(false);
|
||
},
|
||
onShow() {
|
||
this.tcidlist = []
|
||
this.getlist()
|
||
|
||
},
|
||
// 分享到好友(会话)
|
||
onShareAppMessage: function() {
|
||
return {
|
||
title: '创亿康',
|
||
path: '/pages/index/index'
|
||
}
|
||
},
|
||
|
||
// 分享到朋友圈
|
||
onShareTimeline: function() {
|
||
return {
|
||
title: '创亿康',
|
||
query: '',
|
||
path: '/pages/index/index'
|
||
}
|
||
},
|
||
methods: {
|
||
// 查询套餐已有设备
|
||
getao() {
|
||
this.$u.get(`/agent/suit/${this.storeId}`).then(res => {
|
||
if (res.code == 200) {
|
||
if (res.data.storeList.length > 0) {
|
||
this.titaoc = res.data.storeList
|
||
let uniqueSuitIds = new Set();
|
||
this.arrlists = new Set()
|
||
this.list.forEach(item => {
|
||
if (this.titaoc.some(titaocItem => titaocItem.storeId == item.storeId)) {
|
||
uniqueSuitIds.add(item.storeId);
|
||
this.arrlists.add(item)
|
||
}
|
||
})
|
||
this.tcidlist = Array.from(uniqueSuitIds);
|
||
let matchedItems = this.list.filter(item => uniqueSuitIds.has(item.storeId))
|
||
let unmatchedItems = this.list.filter(item => !uniqueSuitIds.has(item.storeId))
|
||
this.list = matchedItems.concat(unmatchedItems)
|
||
// this.list = this.list
|
||
}else{
|
||
// this.list = this.list
|
||
this.tcidlist = []
|
||
}
|
||
}
|
||
})
|
||
},
|
||
getadd(){
|
||
if (this.deviceList.length > 0) {
|
||
this.titaoc = this.deviceList
|
||
let uniqueSuitIds = new Set();
|
||
this.arrlists = new Set()
|
||
this.list.forEach(item => {
|
||
if (this.titaoc.some(titaocItem => titaocItem.storeId == item.storeId)) {
|
||
uniqueSuitIds.add(item.storeId);
|
||
this.arrlists.add(item)
|
||
}
|
||
})
|
||
this.tcidlist = Array.from(uniqueSuitIds);
|
||
let matchedItems = this.list.filter(item => uniqueSuitIds.has(item.storeId))
|
||
let unmatchedItems = this.list.filter(item => !uniqueSuitIds.has(item.storeId))
|
||
this.list = matchedItems.concat(unmatchedItems)
|
||
}else{
|
||
this.tcidlist = []
|
||
}
|
||
},
|
||
|
||
|
||
btnactive(id, index,item) {
|
||
const indexInTcidList = this.tcidlist.indexOf(id);
|
||
if (indexInTcidList !== -1) {
|
||
this.tcidlist.splice(indexInTcidList, 1);
|
||
} else {
|
||
this.tcidlist.push(id);
|
||
}
|
||
this.toggleItemInArray(this.arrlists, item)
|
||
},
|
||
toggleItemInArray(arr, item) {
|
||
// 检查元素是否存在于数组中
|
||
const index = arr.indexOf(item);
|
||
if (index > -1) {
|
||
// 如果存在,则删除该元素
|
||
arr.splice(index, 1);
|
||
console.log('元素已删除');
|
||
} else {
|
||
// 如果不存在,则添加该元素
|
||
arr.push(item);
|
||
console.log('元素已添加');
|
||
}
|
||
// 打印更新后的数组
|
||
console.log(arr);
|
||
},
|
||
|
||
// 点击确定
|
||
btnqd() {
|
||
if(this.titflag == '确定'){
|
||
uni.setStorageSync('tcidlist', this.arrlists)
|
||
uni.navigateBack()
|
||
}else{
|
||
// this.$u.delete(`/app/suit/delByDevice/${this.storeId}`).then(res => {})
|
||
let numArr = this.tcidlist.map(item => parseInt(item, 10))
|
||
let data = {
|
||
storeIds: numArr,
|
||
suitId: this.storeId
|
||
}
|
||
this.$u.put(`/agent/suit`, data).then((res) => {
|
||
if (res.code == 200) {
|
||
uni.showToast({
|
||
title: res.msg,
|
||
icon: 'success',
|
||
duration: 1000,
|
||
})
|
||
if(this.titflag == '确定'){
|
||
|
||
}else{
|
||
this.getao()
|
||
}
|
||
setTimeout(() => {
|
||
uni.navigateBack()
|
||
}, 1000)
|
||
}
|
||
})
|
||
}
|
||
},
|
||
|
||
getlist() {
|
||
let data = {
|
||
pageNum: 1,
|
||
pageSize: 99
|
||
}
|
||
this.$u.get(`/agent/store/allList`, data).then((res) => {
|
||
if (res.code == 200) {
|
||
if(res.data.length > 0){
|
||
this.listflag = false
|
||
this.list = res.data
|
||
this.list = this.list.map(item => ({
|
||
...item,
|
||
tcidlist: this.tcidlist
|
||
}))
|
||
if(this.titflag == '确定'){
|
||
// this.getadd()
|
||
}else{
|
||
this.getao()
|
||
}
|
||
|
||
// console.log(this.list);
|
||
this.loading = true
|
||
}else{
|
||
this.listflag = true
|
||
}
|
||
|
||
}
|
||
});
|
||
},
|
||
|
||
}
|
||
};
|
||
</script>
|
||
|
||
<style lang="scss">
|
||
.active {
|
||
background-color: #8883F0 !important;
|
||
border-radius: 20rpx;
|
||
}
|
||
|
||
.activewz {
|
||
color: #fff !important;
|
||
}
|
||
|
||
page {
|
||
background: #F4F5F7;
|
||
}
|
||
.anniu {
|
||
position: fixed;
|
||
bottom: 0;
|
||
left: 50%;
|
||
transform: translateX(-50%);
|
||
display: flex;
|
||
height: 200rpx;
|
||
padding-top: 40rpx;
|
||
background-color: #fff;
|
||
width: 100%;
|
||
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: 18rpx;
|
||
}
|
||
}
|
||
|
||
.page {
|
||
width: 750rpx;
|
||
padding-bottom: 400rpx;
|
||
|
||
.box {
|
||
width: 750rpx;
|
||
height: 100%;
|
||
background: #F4F5F7;
|
||
border-radius: 0rpx 0rpx 0rpx 0rpx;
|
||
padding: 50rpx;
|
||
|
||
.box_list {
|
||
background-color: #fff;
|
||
margin-top: 20rpx;
|
||
border-radius: 20rpx;
|
||
}
|
||
|
||
|
||
|
||
|
||
.boxlist {
|
||
padding: 40rpx 42rpx;
|
||
box-sizing: border-box;
|
||
|
||
.ccc {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
}
|
||
|
||
.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> |