用户地块及出水口权限开发

This commit is contained in:
jsy_zjg 2024-11-25 18:21:25 +08:00
parent d3de2a10ba
commit 90685b0dbc
2 changed files with 151 additions and 163 deletions

View File

@ -1,10 +1,9 @@
<template>
<view class="index-container">
<z-paging class="paging" ref="paging" use-virtual-list @query="queryList" bg-color="#F6F3F3"
:loading-more-enabled="false">
<z-paging class="paging" ref="paging" use-virtual-list bg-color="#F6F3F3" :loading-more-enabled="false">
<template #top>
<view class="search">
<u-search placeholder="请输入设备编号" @search="onSearchValue" @custom="onSearchValue"
<u-search placeholder="请输入出水口编号" @search="onSearchValue" @custom="onSearchValue"
@clear="onSearchValue(null)" shape="square"></u-search>
</view>
</template>
@ -13,7 +12,7 @@
<text>1.选中的开关为有控制权限;</text>
<view style="float: right;margin-right: 15px;border: 1px solid;">
<u-button style="height: 25px;" type="primary" size="small" :plain="true" :hairline="true"
@click="handleChangeAll">
@click="handleChangeAllRow">
{{ selectAll ? '反选':'全选' }}
</u-button>
</view>
@ -23,41 +22,53 @@
<view class="flex-text" style="padding: 10px;">
<view class="flex-text-one">出水口</view>
<view>
<text>{{ item.waterOutletName }}</text>
<text style="font-size: 14px">{{ ` ${item.deviceCode}` }}</text>
<text>{{ item.showName }}</text>
</view>
<view style="margin-left: 50px;height: 25px;">
<u-checkbox-group class="checkBox" style="margin: 0;" iconPlacement="left" placement="row"
@change="handleChangeRow">
<u-checkbox activeColor="#35842E" label="全选"
:checked="item.valveClose && item.valveOpen && item.valveOneOpen && item.valveTwoOpen"
name="all"></u-checkbox>
v-if="item.landWaterOutletPermissionVo.deviceTypeKey == 'valve'"
:checked="item.landWaterOutletPermissionVo.valveClose==0 && item.landWaterOutletPermissionVo.valveOpen==0 && item.landWaterOutletPermissionVo.valveOneOpen==0 && item.landWaterOutletPermissionVo.valveTwoOpen==0"
:name="'all_'+item.id"></u-checkbox>
<u-checkbox activeColor="#35842E" label="全选"
v-if="item.landWaterOutletPermissionVo.deviceTypeKey == 'fiveValve'"
:checked="item.landWaterOutletPermissionVo.valveOneOpen==0 && item.landWaterOutletPermissionVo.valveTwoOpen==0 && item.landWaterOutletPermissionVo.valveThreeOpen==0 && item.landWaterOutletPermissionVo.valveFourOpen==0"
:name="'all_'+item.id"></u-checkbox>
</u-checkbox-group>
</view>
</view>
<u-gap height="1" bgColor="#D2D2D2"></u-gap>
<view v-if="item.deviceTypeId == 2 || item.deviceTypeId == 3">
<view v-if="item.landWaterOutletPermissionVo.deviceTypeKey == 'valve'">
<u-checkbox-group class="checkBox" iconPlacement="left" placement="row" @change="handleChange">
<u-checkbox activeColor="#35842E" label="全关" :checked="item.valveClose"
name="valveClose"></u-checkbox>
<u-checkbox activeColor="#35842E" label="全开" :checked="item.valveOpen"
name="valveOpen"></u-checkbox>
<u-checkbox activeColor="#35842E" label="①开 " :checked="item.valveOneOpen"
name="valveOneOpen"></u-checkbox>
<u-checkbox activeColor="#35842E" label="②开" :checked="item.valveTwoOpen"
name="valveTwoOpen"></u-checkbox>
<u-checkbox activeColor="#35842E" label="全关"
:checked="item.landWaterOutletPermissionVo.valveClose==0"
:name="'valveClose_'+item.id"></u-checkbox>
<u-checkbox activeColor="#35842E" label="全开"
:checked="item.landWaterOutletPermissionVo.valveOpen==0"
:name="'valveOpen_'+item.id"></u-checkbox>
<u-checkbox activeColor="#35842E" label="①开 "
:checked="item.landWaterOutletPermissionVo.valveOneOpen==0"
:name="'valveOneOpen_'+item.id"></u-checkbox>
<u-checkbox activeColor="#35842E" label="②开"
:checked="item.landWaterOutletPermissionVo.valveTwoOpen==0"
:name="'valveTwoOpen_'+item.id"></u-checkbox>
</u-checkbox-group>
</view>
<view v-if="item.deviceTypeId == 13">
<view v-if="item.landWaterOutletPermissionVo.deviceTypeKey == 'fiveValve'">
<u-checkbox-group class="checkBox" iconPlacement="left" placement="row" @change="handleChange">
<u-checkbox activeColor="#35842E" label="①开" :checked="item.valveOneOpen"
name="valveOneOpen"></u-checkbox>
<u-checkbox activeColor="#35842E" label="②开" :checked="item.valveTwoOpen"
name="valveTwoOpen"></u-checkbox>
<u-checkbox activeColor="#35842E" label="③开 " :checked="item.valveThreeOpen"
name="valveThreeOpen"></u-checkbox>
<u-checkbox activeColor="#35842E" label="④开" :checked="item.valveFourOpen"
name="valveFourOpen"></u-checkbox>
<u-checkbox activeColor="#35842E" label="①开"
:checked="item.landWaterOutletPermissionVo.valveOneOpen==0"
:name="'valveOneOpen_'+item.id"></u-checkbox>
<u-checkbox activeColor="#35842E" label="②开"
:checked="item.landWaterOutletPermissionVo.valveTwoOpen==0"
:name="'valveTwoOpen_'+item.id"></u-checkbox>
<u-checkbox activeColor="#35842E" label="③开 "
:checked="item.landWaterOutletPermissionVo.valveThreeOpen==0"
:name="'valveThreeOpen_'+item.id"></u-checkbox>
<u-checkbox activeColor="#35842E" label="④开"
:checked="item.landWaterOutletPermissionVo.valveFourOpen==0"
:name="'valveFourOpen_'+item.id"></u-checkbox>
</u-checkbox-group>
</view>
</view>
@ -75,12 +86,16 @@
<script>
import store from "@/store"
import plugin from "@/plugins"
import {
getLandWaterOutletPermissionList,
saveLandWaterOutletPermission
} from "@/api/system/landWaterOutletPermission"
export default {
data() {
return {
landId: null,
dataList: [],
tempList: [],
selectItem: {},
tempValveData: {
valveClose: true,
valveOneOpen: true,
@ -91,181 +106,154 @@
},
selectAll: false,
query: {
landId: 0,
landId: null,
deviceCode: null,
userId: 0
userId: null
},
disabled: false
}
},
created() {
this.avatar = avatar;
},
onLoad(options) {
this.landId = options.landId
this.query.landId = options.landId
this.query.userId = options.userId
this.queryList();
},
onShow() {
if (this.userInfo) {
this.query.userId = this.userInfo.userId;
}
},
methods: {
queryList() {
if (!this.query.userId) {
if (!this.query.landId) {
return;
}
this.dataList = []
this.tempList = []
if (this.query.deviceCode == null || this.query.deviceCode == "") {
delete this.query["deviceCode"]
}
//
store
.dispatch("onGetUserControlList", this.query)
getLandWaterOutletPermissionList(this.query)
.then(res => {
let data = res.data[0].valveControls;
if (data && data.length) {
data.forEach(item => {
let sortArr = item.waterOutletName.split("-");
switch (sortArr.length) {
case 0:
sortArr = [0, 0, 0, 0];
break;
case 1:
sortArr = sortArr.concat([0, 0, 0]);
break;
case 2:
sortArr = sortArr.concat([0, 0]);
break;
case 3:
sortArr = sortArr.concat([0]);
break;
}
item.sortArr = sortArr;
});
data = data.sort(compareData());
} else {
data = [];
plugin.modal.msg("该地块还没有安装或绑定阀门!")
}
this.dataList= data;
this.$refs.paging.complete(dataList.value)
})
.catch(error => {
this.$refs.paging.complete([])
plugin.modal.msgError(error)
})
.finally(() => {
plugin.modal.closeLoading()
this.dataList = res.data;
this.$refs.paging.complete(this.dataList)
})
},
onSearchValue(e) {
this.query.landName = e;
this.queryList();
},
onClickPermission(item) {
plugin.tab.navigateTo(`/pages/work/user/device?landId=${item.landId}&userId=${item.userId}`)
},
//
compareData() {
return function(b, a) {
if (b.sortArr[0] < a.sortArr[0]) {
return -1;
} else if (b.sortArr[0] > a.sortArr[0]) {
return 1;
} else {
if (b.sortArr[1] < a.sortArr[1]) {
return -1;
} else if (b.sortArr[1] > a.sortArr[1]) {
return 1;
} else {
if (b.sortArr[2] < a.sortArr[2]) {
return -1;
} else if (b.sortArr[2] > a.sortArr[2]) {
return 1;
} else {
if (b.sortArr[3] < a.sortArr[3]) {
return -1;
} else if (b.sortArr[3] > a.sortArr[3]) {
return 1;
} else {
return 0;
}
}
}
}
}
},
//
submit() {
let queryData = {
addValveControl: this.tempList
let saveObj = {
landWaterOutlets: this.dataList
}
plugin.modal.loading("设置中...")
this.disabled = true;
//
store
.dispatch("onSetUserControlList", queryData)
.then(res => {
plugin.modal.msgSuccess("设置成功!")
//
this.queryList();
})
.catch(error => {
plugin.modal.msgError(error)
this.disabled = false;
})
.finally(() => {
plugin.modal.closeLoading()
this.disabled = false;
})
saveLandWaterOutletPermission(saveObj)
.then(res => {
plugin.modal.msgSuccess("设置成功!")
//
this.queryList();
this.disabled = false;
})
},
//
handleChangeAll() {
handleChangeAllRow() {
this.selectAll = !this.selectAll;
this.tempList = [];
this.dataList.forEach(item => {
if (item.deviceTypeId == 2 || item.deviceTypeId == 3) {
item.valveClose = this.selectAll;
item.valveOpen = this.selectAll;
item.valveOneOpen = this.selectAll;
item.valveTwoOpen = this.selectAll;
item.valveThreeOpen = false;
item.valveFourOpen = false;
if (item.landWaterOutletPermissionVo.deviceTypeKey == "valve") {
item.landWaterOutletPermissionVo.valveClose = this.selectAll ? 0 : 1;
item.landWaterOutletPermissionVo.valveOpen = this.selectAll ? 0 : 1;
item.landWaterOutletPermissionVo.valveOneOpen = this.selectAll ? 0 : 1;
item.landWaterOutletPermissionVo.valveTwoOpen = this.selectAll ? 0 : 1;
item.landWaterOutletPermissionVo.valveThreeOpen = 1;
item.landWaterOutletPermissionVo.valveFourOpen = 1;
}
if (item.deviceTypeId == 13) {
item.valveClose = false;
item.valveOpen = false;
item.valveOneOpen = this.selectAll;
item.valveTwoOpen = this.selectAll;
item.valveThreeOpen = this.selectAll;
item.valveFourOpen = this.selectAll;
if (item.landWaterOutletPermissionVo.deviceTypeKey == "fiveValve") {
item.landWaterOutletPermissionVo.valveClose = 1;
item.landWaterOutletPermissionVo.valveOpen = 1;
item.landWaterOutletPermissionVo.valveOneOpen = this.selectAll ? 0 : 1;
item.landWaterOutletPermissionVo.valveTwoOpen = this.selectAll ? 0 : 1;
item.landWaterOutletPermissionVo.valveThreeOpen = this.selectAll ? 0 : 1;
item.landWaterOutletPermissionVo.valveFourOpen = this.selectAll ? 0 : 1;
}
this.tempList.push(item);
});
},
//
onCheckBoxChange(param) {
let index = this.tempList.findIndex(x => x.id == param.item.id && x.userId == param.item.userId && x
.deviceId == param.item.deviceId)
if (index != -1) {
this.tempList.splice(index, 1);
//
handleChangeRow(e) {
if (e && e.length) {
let index = this.dataList.findIndex(x => x.id == e[0].split("_")[1]);
let item = this.dataList[index];
this.selectItem = item;
if (item.landWaterOutletPermissionVo.deviceTypeKey == "valve") {
item.landWaterOutletPermissionVo.valveClose = 0;
item.landWaterOutletPermissionVo.valveOpen = 0;
item.landWaterOutletPermissionVo.valveOneOpen = 0;
item.landWaterOutletPermissionVo.valveTwoOpen = 0;
item.landWaterOutletPermissionVo.valveThreeOpen = 1;
item.landWaterOutletPermissionVo.valveFourOpen = 1;
}
if (item.landWaterOutletPermissionVo.deviceTypeKey == "fiveValve") {
item.landWaterOutletPermissionVo.valveClose = 1;
item.landWaterOutletPermissionVo.valveOpen = 1;
item.landWaterOutletPermissionVo.valveOneOpen = 0;
item.landWaterOutletPermissionVo.valveTwoOpen = 0;
item.landWaterOutletPermissionVo.valveThreeOpen = 0;
item.landWaterOutletPermissionVo.valveFourOpen = 0;
}
} else {
if (this.selectItem.landWaterOutletPermissionVo.deviceTypeKey == "valve") {
this.selectItem.landWaterOutletPermissionVo.valveClose = 1;
this.selectItem.landWaterOutletPermissionVo.valveOpen = 1;
this.selectItem.landWaterOutletPermissionVo.valveOneOpen = 1;
this.selectItem.landWaterOutletPermissionVo.valveTwoOpen = 1;
this.selectItem.landWaterOutletPermissionVo.valveThreeOpen = 1;
this.selectItem.landWaterOutletPermissionVo.valveFourOpen = 1;
}
if (this.selectItem.landWaterOutletPermissionVo.deviceTypeKey == "fiveValve") {
this.selectItem.landWaterOutletPermissionVo.valveClose = 1;
this.selectItem.landWaterOutletPermissionVo.valveOpen = 1;
this.selectItem.landWaterOutletPermissionVo.valveOneOpen = 1;
this.selectItem.landWaterOutletPermissionVo.valveTwoOpen = 1;
this.selectItem.landWaterOutletPermissionVo.valveThreeOpen = 1;
this.selectItem.landWaterOutletPermissionVo.valveFourOpen = 1;
}
}
},
//
handleChange(e) {
if (e && e.length) {
let index = this.dataList.findIndex(x => x.id == e[0].split("_")[1]);
let item = this.dataList[index];
this.judgeValue(e, item);
}
let itemSample = this.judgeValue(param.item, param.checkItem);
this.tempList.push(itemSample);
},
//
judgeValue(itemSample, param) {
itemSample.valveClose = param.indexOf("valveClose") > -1 ? true : false
itemSample.valveOpen = param.indexOf("valveOpen") > -1 ? true : false
itemSample.valveOneOpen = param.indexOf("valveOneOpen") > -1 ? true : false
itemSample.valveTwoOpen = param.indexOf("valveTwoOpen") > -1 ? true : false
itemSample.valveThreeOpen = param.indexOf("valveThreeOpen") > -1 ? true : false
itemSample.valveFourOpen = param.indexOf("valveFourOpen") > -1 ? true : false
return itemSample
judgeValue(e, itemSample) {
if (e.indexOf('valveClose_' + itemSample.id) != -1) {
itemSample.landWaterOutletPermissionVo.valveClose = 0;
} else {
itemSample.landWaterOutletPermissionVo.valveClose = 1;
}
if (e.indexOf('valveOpen_' + itemSample.id) != -1) {
itemSample.landWaterOutletPermissionVo.valveOpen = 0;
} else {
itemSample.landWaterOutletPermissionVo.valveOpen = 1;
}
if (e.indexOf('valveOneOpen_' + itemSample.id) != -1) {
itemSample.landWaterOutletPermissionVo.valveOneOpen = 0;
} else {
itemSample.landWaterOutletPermissionVo.valveOneOpen = 1;
}
if (e.indexOf('valveTwoOpen_' + itemSample.id) != -1) {
itemSample.landWaterOutletPermissionVo.valveTwoOpen = 0;
} else {
itemSample.landWaterOutletPermissionVo.valveTwoOpen = 1;
}
if (e.indexOf('valveThreeOpen_' + itemSample.id) != -1) {
itemSample.landWaterOutletPermissionVo.valveThreeOpen = 0;
} else {
itemSample.landWaterOutletPermissionVo.valveThreeOpen = 1;
}
if (e.indexOf('valveFourOpen_' + itemSample.id) != -1) {
itemSample.landWaterOutletPermissionVo.valveFourOpen = 0;
} else {
itemSample.landWaterOutletPermissionVo.valveFourOpen = 1;
}
}
}
}

View File

@ -106,7 +106,7 @@ export default {
this.queryList();
},
onClickPermission(item) {
plugin.tab.navigateTo(`/pages/work/user/device?landId=${item.landId}&userId=${item.userId}`)
plugin.tab.navigateTo(`/pages/work/user/device?landId=${item.id}&userId=${item.userId}`)
}
}
}