.
This commit is contained in:
parent
fdecc67075
commit
baeb93e976
5
App.vue
5
App.vue
@ -1,13 +1,15 @@
|
|||||||
<script>
|
<script>
|
||||||
|
import land from "@/utils/land.js"
|
||||||
import mqttUtil from "@/utils/mqttUtil.js"
|
import mqttUtil from "@/utils/mqttUtil.js"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
land: new land(), //全局地块列表管理
|
||||||
mqtt: null,
|
mqtt: null,
|
||||||
mqttObj: {
|
mqttObj: {
|
||||||
topics: []
|
topics: []
|
||||||
}
|
},
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
globalData: {},
|
globalData: {},
|
||||||
@ -25,6 +27,7 @@
|
|||||||
uni.$on("mqtt-subscribes", topics => {
|
uni.$on("mqtt-subscribes", topics => {
|
||||||
this.mqttSubscribes();
|
this.mqttSubscribes();
|
||||||
});
|
});
|
||||||
|
|
||||||
},
|
},
|
||||||
onShow: function() {
|
onShow: function() {
|
||||||
console.log('App Show')
|
console.log('App Show')
|
||||||
|
17
api/index.js
Normal file
17
api/index.js
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
import request from "@/utils/request"
|
||||||
|
|
||||||
|
// 查询用户所属公司列表
|
||||||
|
export function deptTreeSelectByRole() {
|
||||||
|
return request({
|
||||||
|
url: "/system/user/deptTreeByRole",
|
||||||
|
method: "get"
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
//查询管理员地块列表
|
||||||
|
export function getManagerGroundList(userID) {
|
||||||
|
return request({
|
||||||
|
url: "/landManager/select/" + userID,
|
||||||
|
method: "get"
|
||||||
|
})
|
||||||
|
}
|
@ -7,12 +7,13 @@
|
|||||||
<view class="iconfont icon-qiye icon"></view>
|
<view class="iconfont icon-qiye icon"></view>
|
||||||
</template>
|
</template>
|
||||||
<template v-slot:title>
|
<template v-slot:title>
|
||||||
{{item.name}}
|
{{item.label}}
|
||||||
</template>
|
</template>
|
||||||
<template v-slot:right-icon>
|
<template v-slot:right-icon>
|
||||||
<u-badge numberType="overflow" type="primary" max="999" :value="item.children.length" />
|
<u-badge numberType="overflow" type="primary" max="999" :showZero="true"
|
||||||
|
:value="item.children.length" />
|
||||||
</template>
|
</template>
|
||||||
<view class="u-collapse-content" v-if="item.isShow">
|
<view class="u-collapse-content" v-if="item.id == selectCId">
|
||||||
<u-list>
|
<u-list>
|
||||||
<u-list-item v-for="item2 in item.children">
|
<u-list-item v-for="item2 in item.children">
|
||||||
<u-cell @click="select(item2)">
|
<u-cell @click="select(item2)">
|
||||||
@ -20,10 +21,11 @@
|
|||||||
<view class="iconfont icon-ditu icon"></view>
|
<view class="iconfont icon-ditu icon"></view>
|
||||||
</template>
|
</template>
|
||||||
<template v-slot:title>
|
<template v-slot:title>
|
||||||
({{item2.name}}
|
{{item2.name}}
|
||||||
</template>
|
</template>
|
||||||
<template v-slot:right-icon>
|
<template v-slot:right-icon>
|
||||||
<u-badge numberType="overflow" type="success" max="999" :value="item2.valueNum" />
|
<u-badge numberType="overflow" type="success" max="999" :showZero="true"
|
||||||
|
:value="item2.valueNum" />
|
||||||
</template>
|
</template>
|
||||||
</u-cell>
|
</u-cell>
|
||||||
</u-list-item>
|
</u-list-item>
|
||||||
@ -36,73 +38,49 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
import store from "@/store"
|
||||||
|
import {
|
||||||
|
deptTreeSelectByRole,
|
||||||
|
getManagerGroundList,
|
||||||
|
} from "@/api/index.js"
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'custom-select-land',
|
name: 'custom-select-land',
|
||||||
emits: ["select"],
|
emits: ["select"],
|
||||||
props: {
|
props: {},
|
||||||
// selectItem: {
|
|
||||||
// type: Object,
|
|
||||||
// default: null,
|
|
||||||
// required: true
|
|
||||||
// }
|
|
||||||
},
|
|
||||||
watch: {},
|
watch: {},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
user: store.state.user.user,
|
||||||
show: false,
|
show: false,
|
||||||
showValue: null,
|
showValue: null,
|
||||||
list: [],
|
list: getApp().land.list,
|
||||||
|
selectCId: getApp().land.selectCId,
|
||||||
|
selectItem: getApp().land.selectItem,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getLandData();
|
const that = this;
|
||||||
|
getApp().land.getList(that.user.userId);
|
||||||
|
that.list = getApp().land.list;
|
||||||
|
that.selectCId = getApp().land.selectCId;
|
||||||
|
that.selectItem = getApp().land.selectItem;
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getLandData() {
|
|
||||||
if (!this.list.length) {
|
|
||||||
let arr = [];
|
|
||||||
for (var i = 0; i < 20; i++) {
|
|
||||||
let obj = {
|
|
||||||
id: i,
|
|
||||||
name: "公司" + i,
|
|
||||||
isShow: false,
|
|
||||||
children: []
|
|
||||||
}
|
|
||||||
for (var j = 0; j < 50; j++) {
|
|
||||||
obj.children.push({
|
|
||||||
id: j,
|
|
||||||
name: "地块" + j,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
arr.push(obj);
|
|
||||||
}
|
|
||||||
this.list = arr;
|
|
||||||
}
|
|
||||||
return this.list;
|
|
||||||
},
|
|
||||||
open() {
|
open() {
|
||||||
|
console.log("open:", this.list);
|
||||||
if (this.list.length > 0) {
|
if (this.list.length > 0) {
|
||||||
this.show = true;
|
this.show = true;
|
||||||
} else {
|
} else {
|
||||||
uni.showToast({
|
this.$toast("无数据");
|
||||||
title: "无数据",
|
|
||||||
icon: 'none'
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
// console.error("selectItem:", this.selectItem)
|
|
||||||
},
|
},
|
||||||
close() {
|
close() {
|
||||||
const that = this;
|
this.show = false;
|
||||||
that.show = false;
|
|
||||||
that.list.forEach((item, index) => {
|
|
||||||
if (index == that.showValue) {
|
|
||||||
item.isShow = true;
|
|
||||||
} else {
|
|
||||||
item.isShow = false;
|
|
||||||
}
|
|
||||||
})
|
|
||||||
},
|
},
|
||||||
select(item) {
|
select(item) {
|
||||||
|
this.selectItem = item;
|
||||||
|
getApp().land.setStorage(2, item);
|
||||||
this.$emit("select", item);
|
this.$emit("select", item);
|
||||||
this.close();
|
this.close();
|
||||||
},
|
},
|
||||||
@ -111,7 +89,7 @@
|
|||||||
},
|
},
|
||||||
openItem(e) {
|
openItem(e) {
|
||||||
this.showValue = e;
|
this.showValue = e;
|
||||||
this.list[e].isShow = true;
|
this.selectCId = this.list[e].id;
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
this.$refs.refCollapse.init();
|
this.$refs.refCollapse.init();
|
||||||
})
|
})
|
||||||
|
14
main.js
14
main.js
@ -44,16 +44,22 @@ import {
|
|||||||
createSSRApp
|
createSSRApp
|
||||||
} from 'vue'
|
} from 'vue'
|
||||||
import uviewPlus from "@/uni_modules/uview-plus"
|
import uviewPlus from "@/uni_modules/uview-plus"
|
||||||
import directive from "@/directive"
|
import directive from "@/directive"
|
||||||
|
import * as commonUtils from "@/utils/common.js"
|
||||||
|
import constant from "@/utils/constant.js"
|
||||||
export function createApp() {
|
export function createApp() {
|
||||||
const app = createSSRApp(App)
|
const app = createSSRApp(App)
|
||||||
app.use(uviewPlus)
|
app.use(uviewPlus)
|
||||||
app.use(directive)
|
app.use(directive)
|
||||||
|
app.config.globalProperties.$toast = commonUtils.toast;
|
||||||
|
app.config.globalProperties.$showConfirm = commonUtils.showConfirm;
|
||||||
|
app.config.globalProperties.$constant = constant;
|
||||||
|
|
||||||
// #ifndef MP
|
// #ifndef MP
|
||||||
// 处理 wx.connectSocket promisify 兼容问题,强制返回 SocketTask
|
// 处理 wx.connectSocket promisify 兼容问题,强制返回 SocketTask
|
||||||
uni.connectSocket = (function (connectSocket) {
|
uni.connectSocket = (function(connectSocket) {
|
||||||
return function (options) {
|
return function(options) {
|
||||||
options.success = options.success || function () {}
|
options.success = options.success || function() {}
|
||||||
return connectSocket.call(this, options)
|
return connectSocket.call(this, options)
|
||||||
}
|
}
|
||||||
})(uni.connectSocket)
|
})(uni.connectSocket)
|
||||||
|
@ -1,5 +1,13 @@
|
|||||||
<template>
|
<template>
|
||||||
<view>横向列表页面111222(⊙o⊙)…33</view>
|
<view>横向列表页面111222(⊙o⊙)…33</view>
|
||||||
|
<button @click="openLand">选择地块</button>
|
||||||
|
<!-- 弹窗 -->
|
||||||
|
<view>
|
||||||
|
<!-- 地块选择 -->
|
||||||
|
<custom-select-land ref="refLand" @select=""></custom-select-land>
|
||||||
|
<!-- 角度 -->
|
||||||
|
<custom-angle-slider ref="refAngleSlider" mode="bottom" @close="" @confirm="angleSliderConfirm" />
|
||||||
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
136
pages/index.vue
136
pages/index.vue
@ -1,17 +1,18 @@
|
|||||||
<template>
|
<template>
|
||||||
|
<!-- 顶部导航栏 -->
|
||||||
<uni-nav-bar :statusBar="true" :fixed="true" backgroundColor="#39ac4f" :border="false" color="#fff">
|
<uni-nav-bar :statusBar="true" :fixed="true" backgroundColor="#39ac4f" :border="false" color="#fff">
|
||||||
<block v-slot:left>
|
<block v-slot:left>
|
||||||
<view @click="openLand">地块</view>
|
<view @click="openLand">地块</view>
|
||||||
</block>
|
</block>
|
||||||
<view>西安设备测试</view>
|
<view>田间</view>
|
||||||
<block v-slot:right>
|
<block v-slot:right>
|
||||||
<view class="fixed">
|
<view class="fixed">
|
||||||
<view align="right" class="iconfont icon-liebiao icon" @click="toList"></view>
|
<view align="right" class="icon iconfont icon-liebiao" @click="toList"></view>
|
||||||
<view align="right" class="iconfont icon-scan icon" @click="toQRCode"></view>
|
<view align="right" class="icon iconfont icon-scan" @click="toQRCode"></view>
|
||||||
</view>
|
</view>
|
||||||
</block>
|
</block>
|
||||||
</uni-nav-bar>
|
</uni-nav-bar>
|
||||||
<custom-select-land ref="refLand" :data="landList" @select=""></custom-select-land>
|
<!-- 内容 -->
|
||||||
<view class="content">
|
<view class="content">
|
||||||
<!-- 顶部搜索框 -->
|
<!-- 顶部搜索框 -->
|
||||||
<view class="header-section">
|
<view class="header-section">
|
||||||
@ -240,7 +241,7 @@
|
|||||||
</view>
|
</view>
|
||||||
<view class="control">
|
<view class="control">
|
||||||
<u-row>
|
<u-row>
|
||||||
<u-col span="3" style=" align-items: flex-end;" @click="showAnglePopupel">
|
<u-col span="3" style=" align-items: flex-end;" @click="angleSliderShow">
|
||||||
<view class="buttons">
|
<view class="buttons">
|
||||||
<view class="btn fixed active">
|
<view class="btn fixed active">
|
||||||
<text>①</text>
|
<text>①</text>
|
||||||
@ -380,8 +381,10 @@
|
|||||||
|
|
||||||
<!-- 弹窗 -->
|
<!-- 弹窗 -->
|
||||||
<view>
|
<view>
|
||||||
|
<!-- 地块选择 -->
|
||||||
|
<custom-select-land ref="refLand" @select=""></custom-select-land>
|
||||||
<!-- 角度 -->
|
<!-- 角度 -->
|
||||||
<angle-progress-bar ref="angleBarRef" mode="bottom" @close="" @confirm="swiperConfirm" />
|
<custom-angle-slider ref="refAngleSlider" mode="bottom" @close="" @confirm="angleSliderConfirm" />
|
||||||
</view>
|
</view>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@ -429,14 +432,14 @@
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
toQRCode() {},
|
toQRCode() {},
|
||||||
showAnglePopupel() {
|
angleSliderShow() {
|
||||||
this.$refs.angleBarRef.show("1-1", "①开", 10, {
|
this.$refs.refAngleSlider.show("1-1", "①开", 10, {
|
||||||
// item: e.row,
|
// item: e.row,
|
||||||
// index: e.index,
|
// index: e.index,
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
swiperConfirm(e) {
|
angleSliderConfirm(e) {
|
||||||
console.error("swiperConfirm:", e);
|
console.error("angleSliderConfirm:", e);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@ -800,117 +803,4 @@
|
|||||||
.battery-level-0 {
|
.battery-level-0 {
|
||||||
width: 0%;
|
width: 0%;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 弹出进度条 */
|
|
||||||
// .dialog-container {
|
|
||||||
// min-width: 300px;
|
|
||||||
|
|
||||||
// .dialog-title {
|
|
||||||
// position: relative;
|
|
||||||
// text-align: center;
|
|
||||||
// height: 34px;
|
|
||||||
// line-height: 34px;
|
|
||||||
// border-bottom: 1px solid #ddd;
|
|
||||||
|
|
||||||
// &>uni-view {
|
|
||||||
// display: inline-block;
|
|
||||||
// font-weight: bold;
|
|
||||||
// font-size: 16px;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// &>uni-view:nth-child(2) {
|
|
||||||
// font-size: 14px;
|
|
||||||
// color: #5bc724;
|
|
||||||
// margin-left: 10px;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// .close-btn {
|
|
||||||
// position: absolute;
|
|
||||||
// top: 50%;
|
|
||||||
// right: 10px;
|
|
||||||
// transform: translateY(-50%);
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
// }
|
|
||||||
|
|
||||||
// movable-area {
|
|
||||||
|
|
||||||
// height: 30rpx;
|
|
||||||
// width: 210px;
|
|
||||||
// margin: auto;
|
|
||||||
// border-radius: 5px;
|
|
||||||
// background-color: #D8D8D8;
|
|
||||||
// overflow: hidden;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// movable-view {
|
|
||||||
// display: flex;
|
|
||||||
// align-items: center;
|
|
||||||
// justify-content: center;
|
|
||||||
|
|
||||||
// width: 10px;
|
|
||||||
// height: 100%;
|
|
||||||
// background-color: #15d99b;
|
|
||||||
// color: #fff;
|
|
||||||
// text-align: center;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// ::v-deep .uni-slider-handle-wrapper {
|
|
||||||
// height: 30px !important;
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
// ::v-deep .uni-slider-thumb {
|
|
||||||
// width: 24px !important;
|
|
||||||
// height: 24px !important;
|
|
||||||
// box-shadow: 0 0 0px 4px #74ffd4 !important;
|
|
||||||
// margin-top: -12px !important;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// ::v-deep uni-slider {
|
|
||||||
// margin: 10px 18px 0 18px !important;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// ::v-deep uni-slider .uni-slider-tap-area {
|
|
||||||
// padding: 0 !important;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// .dialog-body {
|
|
||||||
// .grid {
|
|
||||||
// margin: 20px;
|
|
||||||
// display: grid;
|
|
||||||
// grid-template-columns: 0.5fr 2fr 0.5fr;
|
|
||||||
|
|
||||||
// .grid-time:first-child,
|
|
||||||
// .grid-time:last-child {
|
|
||||||
// display: grid;
|
|
||||||
// justify-items: end;
|
|
||||||
// align-items: end;
|
|
||||||
|
|
||||||
// &>uni-view {
|
|
||||||
// width: 35px;
|
|
||||||
// height: 30px;
|
|
||||||
// background-color: #eaecf0;
|
|
||||||
// text-align: center;
|
|
||||||
// font-size: 30px;
|
|
||||||
// line-height: 26px;
|
|
||||||
// color: #564556;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// .grid-time:last-child {
|
|
||||||
// justify-items: left;
|
|
||||||
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
// .buttons {
|
|
||||||
// margin: 40px 10px 10px;
|
|
||||||
// display: flex;
|
|
||||||
// justify-content: center;
|
|
||||||
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
</style>
|
</style>
|
@ -1,10 +1,12 @@
|
|||||||
import user from '@/store/modules/user'
|
import user from '@/store/modules/user'
|
||||||
import getters from './getters'
|
import getters from './getters'
|
||||||
import { createStore } from "vuex";
|
import {
|
||||||
|
createStore
|
||||||
|
} from "vuex";
|
||||||
const store = createStore({
|
const store = createStore({
|
||||||
modules: {
|
modules: {
|
||||||
user
|
user
|
||||||
},
|
},
|
||||||
getters
|
getters
|
||||||
});
|
});
|
||||||
export default store;
|
export default store;
|
@ -4,9 +4,11 @@ const constant = {
|
|||||||
roles: 'vuex_roles',
|
roles: 'vuex_roles',
|
||||||
permissions: 'vuex_permissions',
|
permissions: 'vuex_permissions',
|
||||||
company: "vuex_company",
|
company: "vuex_company",
|
||||||
|
user: "vuex_user",
|
||||||
username: "username",
|
username: "username",
|
||||||
password: "password",
|
password: "password",
|
||||||
rememberPassword: "rememberPassword",
|
rememberPassword: "rememberPassword",
|
||||||
user: "vuex_user"
|
lands: "custom_lands",
|
||||||
|
landItem: "custom_landItem",
|
||||||
}
|
}
|
||||||
export default constant
|
export default constant
|
151
utils/land.js
Normal file
151
utils/land.js
Normal file
@ -0,0 +1,151 @@
|
|||||||
|
import store from "@/store"
|
||||||
|
import constant from "@/utils/constant.js"
|
||||||
|
import * as commonUtils from "@/utils/common.js"
|
||||||
|
import {
|
||||||
|
deptTreeSelectByRole,
|
||||||
|
getManagerGroundList,
|
||||||
|
} from "@/api/index.js"
|
||||||
|
|
||||||
|
class land {
|
||||||
|
static isFirst = true //是否第一次加载
|
||||||
|
static userId = null;
|
||||||
|
static list = [];
|
||||||
|
static selectCId = null;
|
||||||
|
static selectItem = null;
|
||||||
|
|
||||||
|
//接收创建来的数据
|
||||||
|
constructor() {
|
||||||
|
this.isFirst = true;
|
||||||
|
this.userId = null;
|
||||||
|
this.list = [];
|
||||||
|
this.selectCId = null;
|
||||||
|
this.selectItem = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取列表
|
||||||
|
getList(userId) {
|
||||||
|
console.error("isFirst:",this.isFirst);
|
||||||
|
this.userId = userId;
|
||||||
|
if (this.isFirst) {
|
||||||
|
const lands = uni.getStorageSync(constant.lands);
|
||||||
|
if (lands && lands.userId == userId) {
|
||||||
|
this.list = lands.data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (this.isFirst) {
|
||||||
|
this.isFirst = false;
|
||||||
|
this.getNewList(userId);
|
||||||
|
}
|
||||||
|
console.error("list:",this.list);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取最新数据
|
||||||
|
async getNewList(userId) {
|
||||||
|
this.userId = userId;
|
||||||
|
// 如果是第一次获取,则重新查询一遍数据,更新旧数据
|
||||||
|
let company = await deptTreeSelectByRole();
|
||||||
|
// console.error("company:",company);
|
||||||
|
if (company.data.length) {
|
||||||
|
let companys = [];
|
||||||
|
if (company.data.length == 1 && company.data[0].id == 100) {
|
||||||
|
companys = companys.concat(company.data[0].children)
|
||||||
|
} else {
|
||||||
|
companys = company.data;
|
||||||
|
}
|
||||||
|
let land = await getManagerGroundList(userId);
|
||||||
|
// console.error("land:", land);
|
||||||
|
if (land.data.length) {
|
||||||
|
this.handleData(companys, land.data);
|
||||||
|
// 持久化到本地缓存中
|
||||||
|
this.setStorage(1, {
|
||||||
|
userId: this.userId,
|
||||||
|
data: this.list,
|
||||||
|
});
|
||||||
|
this.setStorage(2, this.selectItem);
|
||||||
|
} else {
|
||||||
|
commonUtils.toast("无数据");
|
||||||
|
// 持久化到本地缓存中
|
||||||
|
this.setStorage(1, null);
|
||||||
|
this.setStorage(2, null);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
commonUtils.toast("无数据");
|
||||||
|
this.setStorage(1, null);
|
||||||
|
this.setStorage(2, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 组织数据
|
||||||
|
handleData(companys, lands) {
|
||||||
|
let id = null;
|
||||||
|
let selectCId = null;
|
||||||
|
let selectItem = null;
|
||||||
|
const landItem = uni.getStorageSync(constant.landItem);
|
||||||
|
if (landItem) {
|
||||||
|
id = landItem.id;
|
||||||
|
}
|
||||||
|
|
||||||
|
const companyObj = companys.reduce((accumulator, current) => {
|
||||||
|
accumulator[current.id] = current;
|
||||||
|
return accumulator;
|
||||||
|
}, {});
|
||||||
|
let groups = {};
|
||||||
|
lands.map(item => {
|
||||||
|
let param = {
|
||||||
|
companyId: item.companyId,
|
||||||
|
companyName: companyObj[item.companyId] ? companyObj[item.companyId].label : "",
|
||||||
|
id: item.id,
|
||||||
|
name: item.landName,
|
||||||
|
landIcon: item.landIcon || '',
|
||||||
|
valueNum: item.valveNum,
|
||||||
|
controlFlag: item.controlFlag, //设备是否可控(0是 1否)
|
||||||
|
enableFlapValve: item.enableFlapValve == 0, //启用蝶阀
|
||||||
|
landManualOperation: item.landManualOperation == 0, //启用批量控制
|
||||||
|
mapContent: null,
|
||||||
|
isSelect: false
|
||||||
|
}
|
||||||
|
// 获取地图信息
|
||||||
|
if (item.landMap != null) {
|
||||||
|
param.mapContent = JSON.parse(decodeURIComponent(item.landMap.mapContent)) //地块地图 地图标点
|
||||||
|
}
|
||||||
|
// 判断是否当前选中的数据
|
||||||
|
if (param.id == id) {
|
||||||
|
param.isSelect = true;
|
||||||
|
selectItem = param;
|
||||||
|
}
|
||||||
|
// 判断公司是否已经分组,如果未分组,则添加分组
|
||||||
|
if (!groups[item.companyId]) {
|
||||||
|
groups[item.companyId] = [];
|
||||||
|
}
|
||||||
|
groups[item.companyId].push(param);
|
||||||
|
})
|
||||||
|
companys.forEach(item => {
|
||||||
|
item.children = groups[item.id] || [];
|
||||||
|
});
|
||||||
|
let index = 0;
|
||||||
|
while (!selectItem) {
|
||||||
|
if (companys[index].children.length) {
|
||||||
|
companys[index].isLoad = true;
|
||||||
|
companys[index].children[0].isSelect = true;
|
||||||
|
selectItem = companys[index].children[0];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
this.selectCId = selectItem.companyId;
|
||||||
|
this.list = companys;
|
||||||
|
this.selectItem = selectItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 缓存数据
|
||||||
|
setStorage(type, data) {
|
||||||
|
if (type == 1) {
|
||||||
|
uni.setStorageSync(constant.lands, data);
|
||||||
|
} else if (type == 2) {
|
||||||
|
uni.setStorageSync(constant.landItem, data);
|
||||||
|
} else {
|
||||||
|
commonUtils.toast("数据持久化异常");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
export default land
|
@ -4,7 +4,9 @@ import constant from './constant'
|
|||||||
let storageKey = 'storage_data'
|
let storageKey = 'storage_data'
|
||||||
|
|
||||||
// 存储节点变量名
|
// 存储节点变量名
|
||||||
let storageNodeKeys = [constant.avatar, constant.name, constant.roles, constant.permissions]
|
let storageNodeKeys = [constant.avatar, constant.name, constant.roles, constant.permissions,
|
||||||
|
constant.username, constant.password, constant.rememberPassword, constant.company, constant.user
|
||||||
|
]
|
||||||
|
|
||||||
// 存储的数据
|
// 存储的数据
|
||||||
let storageData = uni.getStorageSync(storageKey) || {}
|
let storageData = uni.getStorageSync(storageKey) || {}
|
||||||
|
Loading…
Reference in New Issue
Block a user