wx-program
pangdundun 2024-01-10 10:42:05 +08:00
parent 0be44632a7
commit 30cc0d131c
75 changed files with 3935 additions and 446 deletions

View File

@ -47,6 +47,12 @@ let api = {
readControl_readcirculationfan:'/readControl/readcirculationfan',//读取(环流风扇)控制器
readControl_fanwetcurtain:'/readControl/fanwetcurtain',//读取(风机湿帘)控制器
readControl_innercurtain:'/readControl/innercurtain',//内遮阳
readControl_externalsunshade:'/readControl/externalsunshade',//外遮阳
readControl_readskylight:'/readControl/readskylight',//通风窗
camera_gethls:'/camera/gethls',//获取摄像头得地址
readFs_byid:'/readFs/byid',//查看用户施肥机名称信息

View File

@ -53,7 +53,9 @@
"appid" : "wx05b45a2699f02a2b",
"setting" : {
"urlCheck" : false,
"minified" : true
"minified" : true,
"es6" : true,
"postcss" : true
},
"usingComponents" : true
},

View File

@ -288,6 +288,10 @@
},
init() {
let now = new Date();
let minDate = new Date(this.minDate);
let maxDate = new Date(this.maxDate);
if (now < minDate) now = minDate;
if (now > maxDate) now = maxDate;
this.year = now.getFullYear();
this.month = now.getMonth() + 1;
this.day = now.getDate();
@ -636,4 +640,4 @@
}
}
}
</style>
</style>

View File

@ -110,7 +110,8 @@
this.parent = this.$u.$parent.call(this, 'u-collapse');
if(this.parent) {
this.nameSync = this.name ? this.name : this.parent.childrens.length;
this.parent.childrens.push(this);
//
!this.parent.childrens.includes(this) && this.parent.childrens.push(this);
this.headStyle = this.parent.headStyle;
this.bodyStyle = this.parent.bodyStyle;
this.arrowColor = this.parent.arrowColor;

View File

@ -172,6 +172,7 @@ export default {
this.loading = false;
} else {
this.isError = false;
this.loading = true;
}
}
}

View File

@ -50,6 +50,7 @@
:selection-end="uSelectionEnd"
:selection-start="uSelectionStart"
:show-confirm-bar="showConfirmbar"
:adjust-position="adjustPosition"
@focus="onFocus"
@blur="handleBlur"
@input="handleInput"
@ -213,6 +214,11 @@ export default {
showConfirmbar:{
type:Boolean,
default:true
},
// uni-apptrue
adjustPosition: {
type: Boolean,
default: true
}
},
data() {
@ -300,11 +306,12 @@ export default {
handleBlur(event) {
// 使@touchstarthx2.8.4
// @blur
let value = event.detail.value;
setTimeout(() => {
this.focused = false;
}, 100)
// vue return
this.$emit('blur', event.detail.value);
this.$emit('blur', value);
setTimeout(() => {
// bug()@input
// #ifdef MP-TOUTIAO
@ -312,7 +319,7 @@ export default {
this.lastValue = value;
// #endif
// u-form-item
this.dispatch('u-form-item', 'on-form-blur', event.detail.value);
this.dispatch('u-form-item', 'on-form-blur', value);
}, 40)
},
onFormItemError(status) {

View File

@ -10,7 +10,7 @@
</view>
<input :disabled="disabledInput || disabled" :cursor-spacing="getCursorSpacing" :class="{ 'u-input-disabled': disabled }"
v-model="inputVal" class="u-number-input" @blur="onBlur" @focus="onFocus"
type="number" :style="{
type="digit" :style="{
color: color,
fontSize: size + 'rpx',
background: bgColor,

View File

@ -36,7 +36,7 @@
</view>
</view>
<view class="u-select__body">
<picker-view @change="columnChange" class="u-select__body__picker-view" :value="defaultSelector" @pickstart="pickstart" @pickend="pickend">
<picker-view @change="columnChange" class="u-select__body__picker-view" :value="defaultSelector" @pickstart="pickstart" @pickend="pickend" v-if="value">
<picker-view-column v-for="(item, index) in columnData" :key="index">
<view class="u-select__body__picker-view__item" v-for="(item1, index1) in item" :key="index1">
<view class="u-line-1">{{ item1[labelName] }}</view>
@ -278,12 +278,13 @@ export default {
let columnIndex = e.detail.value;
// push
this.selectValue = [];
this.defaultSelector = columnIndex;
if(this.mode == 'mutil-column-auto') {
//
this.lastSelectIndex.map((val, idx) => {
if (val != columnIndex[idx]) index = idx;
});
this.defaultSelector = columnIndex;
for (let i = index + 1; i < this.columnNum; i++) {
// children
//
@ -333,6 +334,8 @@ export default {
},
close() {
this.$emit('input', false);
// default-value
this.$set(this, 'defaultSelector', [0]);
},
//
getResult(event = null) {

View File

@ -3,9 +3,9 @@
background: bgColor
}">
<!-- $u.getRect()对组件根节点无效因为写了.in(this)故这里获取内层接点尺寸 -->
<view :id="id">
<view>
<scroll-view scroll-x class="u-scroll-view" :scroll-left="scrollLeft" scroll-with-animation>
<view class="u-scroll-box" :class="{'u-tabs-scorll-flex': !isScroll}">
<view class="u-scroll-box" :id="id" :class="{'u-tabs-scorll-flex': !isScroll}">
<view class="u-tab-item u-line-1" :id="'u-tab-item-' + index" v-for="(item, index) in list" :key="index" @tap="clickTab(index)"
:style="[tabItemStyle(index)]">
<u-badge :count="item[count] || item['count'] || 0" :offset="offset" size="mini"></u-badge>

View File

@ -39,7 +39,7 @@
style.padding = this.parent.padding;
style.borderBottom = `solid 1px ${this.parent.borderColor}`;
style.borderRight = `solid 1px ${this.parent.borderColor}`;
Object.assign(style, this.parent.style);
Object.assign(style, this.parent.thStyle);
this.thStyle = style;
}
}

View File

@ -21,7 +21,7 @@
<u-icon class="u-icon" :name="delIcon" size="20" :color="delColor"></u-icon>
</view>
<u-line-progress
v-if="showProgress && item.progress > 0 && !item.error"
v-if="showProgress && item.progress > 0 && item.progress != 100 && !item.error"
:show-percent="false"
height="16"
class="u-progress"
@ -421,6 +421,9 @@ export default {
name: this.name,
formData: this.formData,
header: this.header,
// #ifdef MP-ALIPAY
fileType:'image',
// #endif
success: res => {
// jsonjson
let data = this.toJson && this.$u.test.jsonString(res.data) ? JSON.parse(res.data) : res.data;
@ -498,7 +501,7 @@ export default {
//
handlerDeleteItem(index) {
// 0 < progress < 100
if (this.lists[index].process < 100 && this.lists[index].process > 0) {
if (this.lists[index].progress < 100 && this.lists[index].progress > 0) {
typeof this.lists[index].uploadTask != 'undefined' && this.lists[index].uploadTask.abort();
}
this.lists.splice(index, 1);

View File

View File

@ -1,5 +1,5 @@
// 此版本发布于2020-12-17
let version = '1.8.3';
// 此版本发布于2022-04-19
let version = '1.8.6';
export default {
v: version,
@ -12,4 +12,4 @@ export default {
'error',
'warning'
]
}
}

View File

@ -6,7 +6,7 @@
* v-for的时候,推荐使用后端返回的id而不是循环的index
* @param {Number} len uuid的长度
* @param {Boolean} firstU 将返回的首字母置为"u"
* @param {Nubmer} radix 生成uuid的基数(意味着返回的字符串都是这个基数),2-二进制,8-八进制,10-十进制,16-十六进制
* @param {Number} radix 生成uuid的基数(意味着返回的字符串都是这个基数),2-二进制,8-八进制,10-十进制,16-十六进制
*/
function guid(len = 32, firstU = true, radix = null) {
let chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('');
@ -29,7 +29,7 @@ function guid(len = 32, firstU = true, radix = null) {
}
}
}
// 移除第一个字符,并用u替代,因为第一个字符为数值时,该guuid不能用作id或者class
// 移除第一个字符,并用u替代,因为第一个字符为数值时,该guid不能用作id或者class
if (firstU) {
uuid.shift();
return 'u' + uuid.join('');

View File

@ -2,7 +2,7 @@
* 验证电子邮箱格式
*/
function email(value) {
return /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(value);
return /[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/.test(value);
}
/**
@ -37,7 +37,7 @@ function dateISO(value) {
* 验证十进制数字
*/
function number(value) {
return /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(value)
return /^[\+-]?(\d+\.?\d*|\.\d+|\d\.\d+e\+\d+)$/.test(value)
}
/**

View File

@ -48,7 +48,7 @@ module.exports = {
uni.$emit('uOnReachBottom')
},
beforeDestroy() {
// 判断当前页面是否存在parent和chldren一般在checkbox和checkbox-group父子联动的场景会有此情况
// 判断当前页面是否存在parent和children一般在checkbox和checkbox-group父子联动的场景会有此情况
// 组件销毁时移除子组件在父组件children数组中的实例释放资源避免数据混乱
if(this.parent && uni.$u.test.array(this.parent.children)) {
// 组件销毁时移除父组件中的children数组中对应的实例

View File

@ -437,7 +437,7 @@ function range(rule, value, source, errors, options) {
}
if (str) {
// 处理码点大于U+010000的文字length属性不准确的bug如"𠮷𠮷𠮷".lenght !== 3
// 处理码点大于U+010000的文字length属性不准确的bug如"𠮷𠮷𠮷".length !== 3
val = value.replace(spRegexp, '_').length;
}

22
node_modules/uview-ui/package.json generated vendored
View File

@ -1,28 +1,28 @@
{
"_from": "uview-ui@1.8.4",
"_id": "uview-ui@1.8.4",
"_from": "uview-ui@1.8.6",
"_id": "uview-ui@1.8.6",
"_inBundle": false,
"_integrity": "sha512-Zr+D5dFdNy6CdHQLBEXeGq/w0LkjxzBtsgaaDwLl0P58g67H7fBBDvy6AzWK/k0c7dwPYMBiK7I4Tr9p92+0DA==",
"_integrity": "sha512-R93WU6htCP2Fpw668ABpF7Y8UqIx66pUKGAwBYLDkbnIldyKWkjtfJzqjFm22tF41ty6FVB+82L+gIL775c5LQ==",
"_location": "/uview-ui",
"_phantomChildren": {},
"_requested": {
"type": "version",
"registry": true,
"raw": "uview-ui@1.8.4",
"raw": "uview-ui@1.8.6",
"name": "uview-ui",
"escapedName": "uview-ui",
"rawSpec": "1.8.4",
"rawSpec": "1.8.6",
"saveSpec": null,
"fetchSpec": "1.8.4"
"fetchSpec": "1.8.6"
},
"_requiredBy": [
"#USER",
"/"
],
"_resolved": "https://registry.npmmirror.com/uview-ui/-/uview-ui-1.8.4.tgz",
"_shasum": "e32bbf2379421d319022e324e1cb7b5387d3bd44",
"_spec": "uview-ui@1.8.4",
"_where": "D:\\岳工\\greenhouse-wisdom-applet",
"_resolved": "https://registry.npmmirror.com/uview-ui/-/uview-ui-1.8.6.tgz",
"_shasum": "1a2e7b508937f37d7c1bfd8b67e6a3e3e73300d0",
"_spec": "uview-ui@1.8.6",
"_where": "C:\\Users\\PC\\Desktop\\2023-2-13\\云上温室\\wszhyWx",
"author": {
"name": "uView"
},
@ -63,5 +63,5 @@
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"version": "1.8.4"
"version": "1.8.6"
}

1795
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -27,5 +27,9 @@
"前端组件",
"通用组件"
]
},
"dependencies": {
"ezuikit-js": "^7.7.9-beta1",
"uview-ui": "^1.8.6"
}
}
}

View File

@ -14,7 +14,8 @@
"path": "pages/timeVideo/timeVideo",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
"navigationStyle": "custom",
"enablePullDownRefresh": true
}
}, {

View File

@ -60,7 +60,7 @@
<!-- 丽水权限 -->
<view class="content" v-if="purviewList.indexOf('9')!=-1">
<view class="lishui-item">
<view class="lishui-item" v-if="fanStatus.open != 0">
<view class="lishui-title">
<view class="title-left">
{{ fanStatus.name }}
@ -118,98 +118,85 @@
<span>当前设备无效</span>
</view>
</view>
<view class="lishui-item" v-for="item, index in statusList" :key="index">
<view class="lishui-title">
<view class="title-left">
{{ item.name }}
</view>
<view class="title-right" @click="openModelShow(index)">
设置
<image src="../../static/set-arrow.png" mode=""></image>
</view>
</view>
<view class="lishui-content" v-if="item.open != 0">
<view class="lishui-set">
<view class="set-1">
<image v-if="item.open == 1" class="sel" src="../../static/sel.png" mode=""></image>
<view v-else class="sel-no"></view>
<span>自动控制</span>
<template v-for="item, index in statusList">
<view class="lishui-item" v-if="item.open != 0" :key="index">
<view class="lishui-title">
<view class="title-left">
{{ item.name }}
</view>
<view class="set-2">
<image v-if="item.open != 1" class="sel" src="../../static/sel.png" mode=""></image>
<view v-else class="sel-no"></view>
<span>手机控制</span>
<view class="title-right" @click="openModelShow(index)">
设置
<image src="../../static/set-arrow.png" mode=""></image>
</view>
</view>
<view class="lishui-status">
{{ getNumberStatus(item.index) }}:
<span>{{ item.progress }}%</span>
<view class="lishui-content" v-if="item.open != 0">
<view class="lishui-set">
<view class="set-1">
<image v-if="item.open == 1" class="sel" src="../../static/sel.png" mode=""></image>
<view v-else class="sel-no"></view>
<span>自动控制</span>
</view>
<view class="set-2">
<image v-if="item.open != 1" class="sel" src="../../static/sel.png" mode=""></image>
<view v-else class="sel-no"></view>
<span>手机控制</span>
</view>
</view>
<view class="lishui-status">
{{ getNumberStatus(item.index) }}:
<span>{{ item.progress }}%</span>
</view>
</view>
<view v-else class="status-noTrue">
<image src="../../static/noTrue.png" mode=""></image>
<span>当前设备无效</span>
</view>
</view>
<view v-else class="status-noTrue">
<image src="../../static/noTrue.png" mode=""></image>
<span>当前设备无效</span>
</view>
</view>
</template>
</view>
<!-- 东北五防 -->
<view class="content" v-if="purviewList.indexOf('8')!=-1">
<view class="lishui-item" v-for="(item,index) in fiveControlList" :key="index">
<view class="lishui-title">
<view class="title-left">
{{ item.title }}
</view>
<view class="title-right" @click="openFiveControlShow(index)">
设置
<image src="../../static/set-arrow.png" mode=""></image>
</view>
</view>
<view class="lishui-content" v-if="item.controlState != 0">
<view class="lishui-set">
<view class="set-1">
<image v-if="item.controlState == 1" class="sel" src="../../static/sel.png" mode=""></image>
<view v-else class="sel-no"></view>
<span>自动控制</span>
<template v-for="(item,index) in fiveControlList">
<view class="lishui-item" v-if="item.controlState != 0" :key="index">
<view class="lishui-title">
<view class="title-left">
{{ item.title }}
</view>
<view class="set-2">
<image v-if="item.controlState != 1" class="sel" src="../../static/sel.png" mode=""></image>
<view v-else class="sel-no"></view>
<span>手机控制</span>
<view class="title-right" @click="openFiveControlShow(index)">
设置
<image src="../../static/set-arrow.png" mode=""></image>
</view>
</view>
<view class="lishui-status" v-if="Number(item.progress) == ''">
静止状态:
<span>{{ item.progress }}%</span>
<view class="lishui-content" v-if="item.controlState != 0">
<view class="lishui-set">
<view class="set-1">
<image v-if="item.controlState == 1" class="sel" src="../../static/sel.png" mode=""></image>
<view v-else class="sel-no"></view>
<span>自动控制</span>
</view>
<view class="set-2">
<image v-if="item.controlState != 1" class="sel" src="../../static/sel.png" mode=""></image>
<view v-else class="sel-no"></view>
<span>手机控制</span>
</view>
</view>
<view class="lishui-status" v-if="Number(item.progress) == ''">
静止状态:
<span>{{ item.progress }}%</span>
</view>
</view>
<view v-else class="status-noTrue">
<image src="../../static/noTrue.png" mode=""></image>
<span>当前设备无效</span>
</view>
</view>
<view v-else class="status-noTrue">
<image src="../../static/noTrue.png" mode=""></image>
<span>当前设备无效</span>
</view>
</view>
</view>
<!-- *#电磁阀 -->
<view class="content">
<view v-for="(item,index) in 8" :key="index">
<view class="valve" v-if="purviewList.indexOf((index + 11).toString())!=-1">
<image src="../../static/valve.png" mode=""></image>
<span>{{index+1}}#电磁阀</span>
<view @click="openValveControlShow(index)">
设置
<image src="../../static/right-arrow.png" mode=""></image>
</view>
</view>
</view>
</template>
</view>
<!-- 补光灯 -->
<view class="content" v-if="purviewList.indexOf('20')!=-1">
<view class="lishui-item">
<view class="lishui-item" v-if="supplementLightStatus.open != 0">
<view class="lishui-title">
<view class="title-left">
补光灯
@ -293,163 +280,301 @@
<!-- 环流风扇 -->
<view class="content" v-if="purviewList.indexOf('21')!=-1">
<view class="lishui-item" v-for="(item,index) in circulationFengshanList" :key="index">
<view class="lishui-title">
<view class="title-left">
{{ item.name }}
</view>
<view class="title-right" @click="circulationFengshanHander(index)">
设置
<image src="../../static/set-arrow.png" mode=""></image>
</view>
</view>
<view class="lishui-content" v-if="item.circulationFengshanState != 0">
<view class="lishui-set">
<view class="set-1">
<image v-if="item.circulationFengshanState == 1" class="sel" src="../../static/sel.png" mode=""></image>
<view v-else class="sel-no"></view>
<span>自动控制</span>
<template v-for="(item,index) in circulationFengshanList">
<view class="lishui-item" v-if="item.circulationFengshanState != 0" :key="index">
<view class="lishui-title">
<view class="title-left">
{{ item.name }}
</view>
<view class="set-2">
<image v-if="item.circulationFengshanState != 1" class="sel" src="../../static/sel.png" mode=""></image>
<view v-else class="sel-no"></view>
<span>手机控制</span>
<view class="title-right" @click="circulationFengshanHander(index)">
设置
<image src="../../static/set-arrow.png" mode=""></image>
</view>
</view>
<view class="lishui-status">
<view class="btn" :class="item.open == 1 ? 'btn-on' : 'btn-off'">
<image class="fan-img" v-if="item.open == 1" src="../../static/fan-on.png" alt="">
</image>
<image v-else src="../../static/fan-off.png" alt=""></image>
<span>{{item.open == 1 ? '打开' : '关闭'}}</span>
<view class="lishui-content" v-if="item.circulationFengshanState != 0">
<view class="lishui-set">
<view class="set-1">
<image v-if="item.circulationFengshanState == 1" class="sel" src="../../static/sel.png" mode=""></image>
<view v-else class="sel-no"></view>
<span>自动控制</span>
</view>
<view class="set-2">
<image v-if="item.circulationFengshanState != 1" class="sel" src="../../static/sel.png" mode=""></image>
<view v-else class="sel-no"></view>
<span>手机控制</span>
</view>
</view>
<view class="lishui-status">
<view class="btn" :class="item.open == 1 ? 'btn-on' : 'btn-off'">
<image class="fan-img" v-if="item.open == 1" src="../../static/fan-on.png" alt="">
</image>
<image v-else src="../../static/fan-off.png" alt=""></image>
<span>{{item.open == 1 ? '打开' : '关闭'}}</span>
</view>
</view>
</view>
<view v-else class="status-noTrue">
<image src="../../static/noTrue.png" mode=""></image>
<span>当前设备无效</span>
</view>
</view>
<view v-else class="status-noTrue">
<image src="../../static/noTrue.png" mode=""></image>
<span>当前设备无效</span>
</view>
</view>
</template>
</view>
<!-- 湿帘泵 -->
<view class="content" v-if="purviewList.indexOf('26')!=-1">
<view class="lishui-item" v-for="(item,index) in fanwetcurtainList" :key="index">
<view class="lishui-title">
<view class="title-left">
{{ item.name }}
</view>
<view class="title-right" @click="fanwetcurtainHander(index)">
设置
<image src="../../static/set-arrow.png" mode=""></image>
</view>
</view>
<view class="lishui-content" v-if="item.fanwetcurtainStatus != 0">
<view class="lishui-set">
<view class="set-1">
<image v-if="item.fanwetcurtainStatus == 1" class="sel" src="../../static/sel.png" mode=""></image>
<view v-else class="sel-no"></view>
<span>自动控制</span>
<template v-for="(item,index) in fanwetcurtainList">
<view class="lishui-item" v-if="item.fanwetcurtainStatus != 0" :key="index">
<view class="lishui-title">
<view class="title-left">
{{ item.name }}
</view>
<view class="set-2">
<image v-if="item.fanwetcurtainStatus != 1" class="sel" src="../../static/sel.png" mode=""></image>
<view v-else class="sel-no"></view>
<span>手机控制</span>
<view class="title-right" @click="fanwetcurtainHander(index)">
设置
<image src="../../static/set-arrow.png" mode=""></image>
</view>
</view>
<view class="lishui-status">
<view class="btn" :class="item.open == 1 ? 'btn-on' : 'btn-off'">
<image class="fan-img" v-if="item.open == 1" src="../../static/fanwetcurtain.png" alt="" style="animation: unset;">
</image>
<image v-else src="../../static/fan-off.png" alt=""></image>
<span>{{item.open == 1 ? '打开' : '关闭'}}</span>
<view class="lishui-content" v-if="item.fanwetcurtainStatus != 0">
<view class="lishui-set">
<view class="set-1">
<image v-if="item.fanwetcurtainStatus == 1" class="sel" src="../../static/sel.png" mode=""></image>
<view v-else class="sel-no"></view>
<span>自动控制</span>
</view>
<view class="set-2">
<image v-if="item.fanwetcurtainStatus != 1" class="sel" src="../../static/sel.png" mode=""></image>
<view v-else class="sel-no"></view>
<span>手机控制</span>
</view>
</view>
<view class="lishui-status">
<view class="btn" :class="item.open == 1 ? 'btn-on' : 'btn-off'">
<image class="fan-img" v-if="item.open == 1" src="../../static/fanwetcurtain.png" alt="" style="animation: unset;">
</image>
<image v-else src="../../static/fan-off.png" alt=""></image>
<span>{{item.open == 1 ? '打开' : '关闭'}}</span>
</view>
</view>
</view>
<view v-else class="status-noTrue">
<image src="../../static/noTrue.png" mode=""></image>
<span>当前设备无效</span>
</view>
</view>
<view v-else class="status-noTrue">
<image src="../../static/noTrue.png" mode=""></image>
<span>当前设备无效</span>
</view>
</view>
</template>
</view>
<!-- 高压微雾 -->
<view class="content" v-if="purviewList.indexOf('23')!=-1">
<view class="lishui-item" v-for="(item,index) in highpressuremistList" :key="index">
<view class="lishui-title">
<view class="title-left">
{{ item.name }}
</view>
<view class="title-right" @click="highpressuremistHander(index)">
设置
<image src="../../static/set-arrow.png" mode=""></image>
</view>
</view>
<view class="lishui-content" v-if="item.highpressuremistState != 0">
<view class="lishui-set">
<view class="set-1">
<image v-if="item.highpressuremistState == 1" class="sel" src="../../static/sel.png" mode=""></image>
<view v-else class="sel-no"></view>
<span>自动控制</span>
<template v-for="(item,index) in highpressuremistList">
<view class="lishui-item" v-if="item.highpressuremistState != 0" :key="index">
<view class="lishui-title">
<view class="title-left">
{{ item.name }}
</view>
<view class="set-2">
<image v-if="item.highpressuremistState != 1" class="sel" src="../../static/sel.png" mode=""></image>
<view v-else class="sel-no"></view>
<span>手机控制</span>
<view class="title-right" @click="highpressuremistHander(index)">
设置
<image src="../../static/set-arrow.png" mode=""></image>
</view>
</view>
<view class="lishui-status">
<view class="btn" :class="item.open == 1 ? 'btn-on' : 'btn-off'">
<image class="fan-img" v-if="item.open == 1" src="../../static/highpressuremist.png" alt="" style="animation: unset;width: 34rpx;height: 29rpx;">
</image>
<image v-else src="../../static/fan-off.png" alt=""></image>
<span>{{item.open == 1 ? '打开' : '关闭'}}</span>
<view class="lishui-content" v-if="item.highpressuremistState != 0">
<view class="lishui-set">
<view class="set-1">
<image v-if="item.highpressuremistState == 1" class="sel" src="../../static/sel.png" mode=""></image>
<view v-else class="sel-no"></view>
<span>自动控制</span>
</view>
<view class="set-2">
<image v-if="item.highpressuremistState != 1" class="sel" src="../../static/sel.png" mode=""></image>
<view v-else class="sel-no"></view>
<span>手机控制</span>
</view>
</view>
<view class="lishui-status">
<view class="btn" :class="item.open == 1 ? 'btn-on' : 'btn-off'">
<image class="fan-img" v-if="item.open == 1" src="../../static/highpressuremist.png" alt="" style="animation: unset;width: 34rpx;height: 29rpx;">
</image>
<image v-else src="../../static/fan-off.png" alt=""></image>
<span>{{item.open == 1 ? '打开' : '关闭'}}</span>
</view>
</view>
</view>
<view v-else class="status-noTrue">
<image src="../../static/noTrue.png" mode=""></image>
<span>当前设备无效</span>
</view>
</view>
<view v-else class="status-noTrue">
<image src="../../static/noTrue.png" mode=""></image>
<span>当前设备无效</span>
</view>
</view>
</template>
</view>
<!-- #湿窗外翻窗 -->
<view class="content" v-if="purviewList.indexOf('26')!=-1">
<view class="lishui-item" v-for="(item,index) in outFlipWindowList" :key="index">
<view class="lishui-title">
<view class="title-left">
{{ item.name }}
<template v-for="(item,index) in outFlipWindowList">
<view class="lishui-item" v-if="item.outFlipWindowState != 0" :key="index">
<view class="lishui-title">
<view class="title-left">
{{ item.name }}
</view>
<view class="title-right" @click="outFlipWindowHander(index)">
设置
<image src="../../static/set-arrow.png" mode=""></image>
</view>
</view>
<view class="title-right" @click="outFlipWindowHander(index)">
<view class="lishui-content" v-if="item.outFlipWindowState != 0">
<view class="lishui-set">
<view class="set-1">
<image v-if="item.outFlipWindowState == 1" class="sel" src="../../static/sel.png" mode=""></image>
<view v-else class="sel-no"></view>
<span>自动控制</span>
</view>
<view class="set-2">
<image v-if="item.outFlipWindowState != 1" class="sel" src="../../static/sel.png" mode=""></image>
<view v-else class="sel-no"></view>
<span>手机控制</span>
</view>
</view>
<view class="lishui-status">
静止状态:
<span :style="item.progress!=100 ? 'color:#FF6C6C' : ''">{{ item.progress }}%</span>
</view>
</view>
<view v-else class="status-noTrue">
<image src="../../static/noTrue.png" mode=""></image>
<span>当前设备无效</span>
</view>
</view>
</template>
</view>
<!-- 内遮阳 -->
<view class="content" v-if="purviewList.indexOf('24')!=-1">
<template v-for="(item,index) in innercurtainList">
<view class="lishui-item" v-if="item.innercurtainState != 0" :key="index">
<view class="lishui-title">
<view class="title-left">
{{ item.name }}
</view>
<view class="title-right" @click="innercurtainHander(index)">
设置
<image src="../../static/set-arrow.png" mode=""></image>
</view>
</view>
<view class="lishui-content" v-if="item.innercurtainState != 0">
<view class="lishui-set">
<view class="set-1">
<image v-if="item.innercurtainState == 1" class="sel" src="../../static/sel.png" mode=""></image>
<view v-else class="sel-no"></view>
<span>自动控制</span>
</view>
<view class="set-2">
<image v-if="item.innercurtainState != 1" class="sel" src="../../static/sel.png" mode=""></image>
<view v-else class="sel-no"></view>
<span>手机控制</span>
</view>
</view>
<view class="lishui-status">
静止状态:
<span :style="item.progress!=100 ? 'color:#FF6C6C' : ''">{{ item.progress }}%</span>
</view>
</view>
<view v-else class="status-noTrue">
<image src="../../static/noTrue.png" mode=""></image>
<span>当前设备无效</span>
</view>
</view>
</template>
</view>
<!-- 外遮阳 -->
<view class="content" v-if="purviewList.indexOf('25')!=-1">
<template v-for="(item,index) in externalsunshadeList">
<view class="lishui-item" v-if="item.externalsunshadeState != 0" :key="index">
<view class="lishui-title">
<view class="title-left">
{{ item.name }}
</view>
<view class="title-right" @click="externalsunshadeHander(index)">
设置
<image src="../../static/set-arrow.png" mode=""></image>
</view>
</view>
<view class="lishui-content" v-if="item.externalsunshadeState != 0">
<view class="lishui-set">
<view class="set-1">
<image v-if="item.externalsunshadeState == 1" class="sel" src="../../static/sel.png" mode=""></image>
<view v-else class="sel-no"></view>
<span>自动控制</span>
</view>
<view class="set-2">
<image v-if="item.externalsunshadeState != 1" class="sel" src="../../static/sel.png" mode=""></image>
<view v-else class="sel-no"></view>
<span>手机控制</span>
</view>
</view>
<view class="lishui-status">
静止状态:
<span :style="item.progress!=100 ? 'color:#FF6C6C' : ''">{{ item.progress }}%</span>
</view>
</view>
<view v-else class="status-noTrue">
<image src="../../static/noTrue.png" mode=""></image>
<span>当前设备无效</span>
</view>
</view>
</template>
</view>
<!-- 通风窗 -->
<view class="content" v-if="purviewList.indexOf('19')!=-1">
<template v-for="(item,index) in airWindowList">
<view class="lishui-item" v-if="item.airWindowState != 0" :key="index">
<view class="lishui-title">
<view class="title-left">
{{ item.name }}
</view>
<view class="title-right" @click="airWindowHander(index)">
设置
<image src="../../static/set-arrow.png" mode=""></image>
</view>
</view>
<view class="lishui-content" v-if="item.airWindowState != 0">
<view class="lishui-set">
<view class="set-1">
<image v-if="item.airWindowState == 1" class="sel" src="../../static/sel.png" mode=""></image>
<view v-else class="sel-no"></view>
<span>自动控制</span>
</view>
<view class="set-2">
<image v-if="item.airWindowState != 1" class="sel" src="../../static/sel.png" mode=""></image>
<view v-else class="sel-no"></view>
<span>手机控制</span>
</view>
</view>
<view class="lishui-status">
静止状态:
<span :style="item.progress!=100 ? 'color:#FF6C6C' : ''">{{ item.progress }}%</span>
</view>
</view>
<view v-else class="status-noTrue">
<image src="../../static/noTrue.png" mode=""></image>
<span>当前设备无效</span>
</view>
</view>
</template>
</view>
<!-- *#电磁阀 -->
<view class="content">
<view v-for="(item,index) in 8" :key="index">
<view class="valve" v-if="purviewList.indexOf((index + 11).toString())!=-1">
<image src="../../static/valve.png" mode=""></image>
<span>{{index+1}}#电磁阀</span>
<view @click="openValveControlShow(index)">
设置
<image src="../../static/set-arrow.png" mode=""></image>
<image src="../../static/right-arrow.png" mode=""></image>
</view>
</view>
<view class="lishui-content" v-if="item.outFlipWindowState != 0">
<view class="lishui-set">
<view class="set-1">
<image v-if="item.outFlipWindowState == 1" class="sel" src="../../static/sel.png" mode=""></image>
<view v-else class="sel-no"></view>
<span>自动控制</span>
</view>
<view class="set-2">
<image v-if="item.outFlipWindowState != 1" class="sel" src="../../static/sel.png" mode=""></image>
<view v-else class="sel-no"></view>
<span>手机控制</span>
</view>
</view>
<view class="lishui-status">
静止状态:
<span :style="item.progress!=100 ? 'color:#FF6C6C' : ''">{{ item.progress }}%</span>
</view>
</view>
<view v-else class="status-noTrue">
<image src="../../static/noTrue.png" mode=""></image>
<span>当前设备无效</span>
</view>
</view>
</view>
<!-- 东北五防弹框 -->
@ -837,7 +962,128 @@
<image src="../../static/closed.png" mode="" @click="outFlipWindowShow=false"></image>
</view>
</u-popup>
<!-- 内遮阳 -->
<u-popup v-model="innercurtainShow" mode="center" :mask-close-able='true' width="640rpx" height="454rpx"
:closeable='false'>
<view class="contentPop lishui-item">
<view class="contentPop_box">
<view class="title">
{{ (popinnercurtainName + 1)+"#内遮阳" }}
</view>
</view>
<view class="lishui-content">
<view class="model-title">
控制模式:
</view>
<view class="lishui-flex">
<view class="btn btn-140 " @click="changeinnercurtainControl(1)"
:class="innercurtainControlIndex==1?'btn-on':'btn-off'">
<span style="font-size: 28rpx;">自动运行</span>
</view>
<view class="btn btn-140 " @click="changeinnercurtainControl(2)"
:class="innercurtainControlIndex==2?'btn-on':'btn-off'">
<span style="font-size: 28rpx;">手动打开</span>
</view>
<view class="btn btn-140 " @click="changeinnercurtainControl(3)"
:class="innercurtainControlIndex==3?'btn-on':'btn-off'">
<span style="font-size: 28rpx;">手动关闭</span>
</view>
<view class="btn btn-110 " @click="changeinnercurtainControl(4)"
:class="innercurtainControlIndex==4?'btn-on':'btn-off'">
<span style="font-size: 28rpx;">停止</span>
</view>
</view>
</view>
<view class="changeMoreBtn" @click="toWebView('insizeSunshade')">
<image src="../../static/changeMore.png" mode=""></image>
<text>修改更多参数</text>
</view>
<image src="../../static/closed.png" mode="" @click="innercurtainShow=false"></image>
</view>
</u-popup>
<!-- 外遮阳 -->
<u-popup v-model="externalsunshadeShow" mode="center" :mask-close-able='true' width="640rpx" height="454rpx"
:closeable='false'>
<view class="contentPop lishui-item">
<view class="contentPop_box">
<view class="title">
{{ (popexternalsunshadeName + 1)+"#内遮阳" }}
</view>
</view>
<view class="lishui-content">
<view class="model-title">
控制模式:
</view>
<view class="lishui-flex">
<view class="btn btn-140 " @click="changeexternalsunshadeControl(1)"
:class="externalsunshadeControlIndex==1?'btn-on':'btn-off'">
<span style="font-size: 28rpx;">自动运行</span>
</view>
<view class="btn btn-140 " @click="changeexternalsunshadeControl(2)"
:class="externalsunshadeControlIndex==2?'btn-on':'btn-off'">
<span style="font-size: 28rpx;">手动打开</span>
</view>
<view class="btn btn-140 " @click="changeexternalsunshadeControl(3)"
:class="externalsunshadeControlIndex==3?'btn-on':'btn-off'">
<span style="font-size: 28rpx;">手动关闭</span>
</view>
<view class="btn btn-110 " @click="changeexternalsunshadeControl(4)"
:class="externalsunshadeControlIndex==4?'btn-on':'btn-off'">
<span style="font-size: 28rpx;">停止</span>
</view>
</view>
</view>
<view class="changeMoreBtn" @click="toWebView('outsizeSunshade')">
<image src="../../static/changeMore.png" mode=""></image>
<text>修改更多参数</text>
</view>
<image src="../../static/closed.png" mode="" @click="externalsunshadeShow=false"></image>
</view>
</u-popup>
<!-- 通风窗 -->
<u-popup v-model="airWindowShow" mode="center" :mask-close-able='true' width="640rpx" height="454rpx"
:closeable='false'>
<view class="contentPop lishui-item">
<view class="contentPop_box">
<view class="title">
{{ (popairWindowName + 1)+"#内遮阳" }}
</view>
</view>
<view class="lishui-content">
<view class="model-title">
控制模式:
</view>
<view class="lishui-flex">
<view class="btn btn-140 " @click="changeairWindowControl(1)"
:class="airWindowControlIndex==1?'btn-on':'btn-off'">
<span style="font-size: 28rpx;">自动运行</span>
</view>
<view class="btn btn-140 " @click="changeairWindowControl(2)"
:class="airWindowControlIndex==2?'btn-on':'btn-off'">
<span style="font-size: 28rpx;">手动打开</span>
</view>
<view class="btn btn-140 " @click="changeairWindowControl(3)"
:class="airWindowControlIndex==3?'btn-on':'btn-off'">
<span style="font-size: 28rpx;">手动关闭</span>
</view>
<view class="btn btn-110 " @click="changeairWindowControl(4)"
:class="airWindowControlIndex==4?'btn-on':'btn-off'">
<span style="font-size: 28rpx;">停止</span>
</view>
</view>
</view>
<view class="changeMoreBtn" @click="toWebView('sunroofControl')">
<image src="../../static/changeMore.png" mode=""></image>
<text>修改更多参数</text>
</view>
<image src="../../static/closed.png" mode="" @click="airWindowShow=false"></image>
</view>
</u-popup>
<view class="content" v-if="!purviewList.length" style="text-align: center;">
暂无权限查看
@ -1189,6 +1435,32 @@
{name:'2#湿帘外翻窗',outFlipWindowState:0,progress:0},
],
popoutFlipWindowName:'',
innercurtainShow:false,//
innercurtainControlIndex:0,
innercurtainList:[
{name:'1#内遮阳',innercurtainState:0,progress:0},
{name:'2#内遮阳',innercurtainState:0,progress:0},
],
popinnercurtainName:'',
externalsunshadeShow:false,//
externalsunshadeControlIndex:0,
externalsunshadeList:[
{name:'1#外遮阳',externalsunshadeState:0,progress:0},
{name:'2#外遮阳',externalsunshadeState:0,progress:0},
],
popexternalsunshadeName:'',
airWindowShow:false,//
airWindowControlIndex:0,
airWindowList:[
{name:'1#通风窗',airWindowState:0,progress:0},
{name:'2#通风窗',airWindowState:0,progress:0},
{name:'3#通风窗',airWindowState:0,progress:0},
{name:'4#通风窗',airWindowState:0,progress:0},
],
popairWindowName:'',
};
},
onReady(){
@ -1425,7 +1697,7 @@
}
},
//
// 湿
changeoutFlipWindowControl(index){
this.outFlipWindowControlIndex = index;
let dataNum = {
@ -1439,6 +1711,55 @@
this.changeBtn(21979, dataNum);
}
},
//
changeinnercurtainControl(index){
this.innercurtainControlIndex = index;
let dataNum = {
target: {
value: this.innercurtainControlIndex,
},
};
if(this.popinnercurtainName == 0){
this.changeBtn(21840, dataNum);
}else if(this.popinnercurtainName == 1){
this.changeBtn(21858, dataNum);
}
},
//
changeexternalsunshadeControl(index){
this.externalsunshadeControlIndex = index;
let dataNum = {
target: {
value: this.externalsunshadeControlIndex,
},
};
if(this.popexternalsunshadeName == 0){
this.changeBtn(21900, dataNum);
}else if(this.popexternalsunshadeName == 1){
this.changeBtn(21915, dataNum);
}
},
//
changeairWindowControl(index){
this.airWindowControlIndex = index;
let dataNum = {
target: {
value: this.airWindowControlIndex,
},
};
if(this.popairWindowName == 0){
this.changeBtn(21250, dataNum);
}else if(this.popairWindowName == 1){
this.changeBtn(21273, dataNum);
}else if(this.popairWindowName == 2){
this.changeBtn(21296, dataNum);
}else if(this.popairWindowName == 3){
this.changeBtn(21319, dataNum);
}
},
changeBtn(code, el) {
@ -1692,6 +2013,31 @@
el.progress = res.data[1086 + index * 3];
})
};
//
if(this.purviewList.indexOf('24') != -1){
this.innercurtainList.forEach((el,index)=>{
el.innercurtainState = res.data[1090 + index * 3];
el.progress = res.data[1092 + index * 3];
})
};
//
if(this.purviewList.indexOf('25') != -1){
this.externalsunshadeList.forEach((el,index)=>{
el.externalsunshadeState = res.data[1096 + index * 3];
el.progress = res.data[1098 + index * 3];
})
};
//
if(this.purviewList.indexOf('19') != -1){
this.airWindowList.forEach((el,index)=>{
el.airWindowState = res.data[1102 + index * 3];
el.progress = res.data[1104 + index * 3];
})
};
}
})
},
@ -1815,6 +2161,60 @@
}
})
},
//
innercurtainHander(index){
this.innercurtainControlIndex = 0;
this.popinnercurtainName = index;
var deviceId = this.deviceId
this.innercurtainShow=true;
this.$http({
url:this.api.readControl_innercurtain + '?deviceId=' + deviceId,
method: 'GET'
}).then(res => {
if (res.code == 200) {
uni.hideLoading();
uni.stopPullDownRefresh();
this.innercurtainControlIndex = res.data[21840 + index * 18];
}
})
},
//
externalsunshadeHander(index){
this.externalsunshadeControlIndex = 0;
this.popexternalsunshadeName = index;
var deviceId = this.deviceId
this.externalsunshadeShow=true;
this.$http({
url:this.api.readControl_externalsunshade + '?deviceId=' + deviceId,
method: 'GET'
}).then(res => {
if (res.code == 200) {
uni.hideLoading();
uni.stopPullDownRefresh();
this.externalsunshadeControlIndex = res.data[21900 + index * 15];
}
})
},
//
airWindowHander(index){
this.airWindowControlIndex = 0;
this.popairWindowName = index;
var deviceId = this.deviceId
this.airWindowShow=true;
this.$http({
url:this.api.readControl_readskylight + '?deviceId=' + deviceId,
method: 'GET'
}).then(res => {
if (res.code == 200) {
uni.hideLoading();
uni.stopPullDownRefresh();
this.airWindowControlIndex = res.data[21250 + index * 23];
}
})
},
getNumberStatus(index) {
if (index == 0) {

View File

@ -30,7 +30,7 @@
<text>{{ item1.deviceTypeName }}</text>
</view>
<view class="detail">
<view class="item" v-for="(item2,index2) in item1.childList" :key="index2"
<view class="item" v-for="(item2,index2) in item1.childList_mubiao" :key="index2"
@click="toTarget_water_fertilizer_PH(item2.equipmentId,item2.environmentData,item2.environmentDataId,item2.equipmentNumber,item2.targetValue,getTypeList(item2.formula),item2.equipmentName)">
<image :src="`../../static/icon_new/icon${ item2.formula }.png`" mode=""></image>
<view class="info">
@ -40,13 +40,183 @@
<view class="">{{ item2.environmentData + getTypeList(item2.formula) }}</view>
</view>
</view>
<view class="line" v-if="item1.childList_mubiao.length > 0"></view>
<view class="item" v-for="(item2,index2) in item1.childList_one" :key="index2"
@click="toTarget_water_fertilizer_PH(item2.equipmentId,item2.environmentData,item2.environmentDataId,item2.equipmentNumber,item2.targetValue,getTypeList(item2.formula),item2.equipmentName)">
<image :src="`../../static/icon_new/icon${ item2.formula }.png`" mode=""></image>
<view class="info">
<view class="">
{{ getStatus(item2.equipmentNumber,item2.targetValue) + item2.environmentDataId }}
</view>
<view class="">{{ item2.environmentData + getTypeList(item2.formula) }}</view>
</view>
</view>
<view class="line" v-if="item1.childList_one.length > 0"></view>
<view class="item" v-for="(item2,index2) in item1.childList_two" :key="index2"
@click="toTarget_water_fertilizer_PH(item2.equipmentId,item2.environmentData,item2.environmentDataId,item2.equipmentNumber,item2.targetValue,getTypeList(item2.formula),item2.equipmentName)">
<image :src="`../../static/icon_new/icon${ item2.formula }.png`" mode=""></image>
<view class="info">
<view class="">
{{ getStatus(item2.equipmentNumber,item2.targetValue) + item2.environmentDataId }}
</view>
<view class="">{{ item2.environmentData + getTypeList(item2.formula) }}</view>
</view>
</view>
<view class="line" v-if="item1.childList_two.length > 0"></view>
<view class="item" v-for="(item2,index2) in item1.childList_three" :key="index2"
@click="toTarget_water_fertilizer_PH(item2.equipmentId,item2.environmentData,item2.environmentDataId,item2.equipmentNumber,item2.targetValue,getTypeList(item2.formula),item2.equipmentName)">
<image :src="`../../static/icon_new/icon${ item2.formula }.png`" mode=""></image>
<view class="info">
<view class="">
{{ getStatus(item2.equipmentNumber,item2.targetValue) + item2.environmentDataId }}
</view>
<view class="">{{ item2.environmentData + getTypeList(item2.formula) }}</view>
</view>
</view>
<view class="line" v-if="item1.childList_three.length > 0"></view>
<view class="item" v-for="(item2,index2) in item1.childList_four" :key="index2"
@click="toTarget_water_fertilizer_PH(item2.equipmentId,item2.environmentData,item2.environmentDataId,item2.equipmentNumber,item2.targetValue,getTypeList(item2.formula),item2.equipmentName)">
<image :src="`../../static/icon_new/icon${ item2.formula }.png`" mode=""></image>
<view class="info">
<view class="">
{{ getStatus(item2.equipmentNumber,item2.targetValue) + item2.environmentDataId }}
</view>
<view class="">{{ item2.environmentData + getTypeList(item2.formula) }}</view>
</view>
</view>
<view class="line" v-if="item1.childList_four.length > 0"></view>
<view class="item" v-for="(item2,index2) in item1.childList_five" :key="index2"
@click="toTarget_water_fertilizer_PH(item2.equipmentId,item2.environmentData,item2.environmentDataId,item2.equipmentNumber,item2.targetValue,getTypeList(item2.formula),item2.equipmentName)">
<image :src="`../../static/icon_new/icon${ item2.formula }.png`" mode=""></image>
<view class="info">
<view class="">
{{ getStatus(item2.equipmentNumber,item2.targetValue) + item2.environmentDataId }}
</view>
<view class="">{{ item2.environmentData + getTypeList(item2.formula) }}</view>
</view>
</view>
<view class="line" v-if="item1.childList_five.length > 0"></view>
<view class="item" v-for="(item2,index2) in item1.childList_six" :key="index2"
@click="toTarget_water_fertilizer_PH(item2.equipmentId,item2.environmentData,item2.environmentDataId,item2.equipmentNumber,item2.targetValue,getTypeList(item2.formula),item2.equipmentName)">
<image :src="`../../static/icon_new/icon${ item2.formula }.png`" mode=""></image>
<view class="info">
<view class="">
{{ getStatus(item2.equipmentNumber,item2.targetValue) + item2.environmentDataId }}
</view>
<view class="">{{ item2.environmentData + getTypeList(item2.formula) }}</view>
</view>
</view>
<view class="line" v-if="item1.childList_six.length > 0"></view>
<view class="item" v-for="(item2,index2) in item1.childList_seven" :key="index2"
@click="toTarget_water_fertilizer_PH(item2.equipmentId,item2.environmentData,item2.environmentDataId,item2.equipmentNumber,item2.targetValue,getTypeList(item2.formula),item2.equipmentName)">
<image :src="`../../static/icon_new/icon${ item2.formula }.png`" mode=""></image>
<view class="info">
<view class="">
{{ getStatus(item2.equipmentNumber,item2.targetValue) + item2.environmentDataId }}
</view>
<view class="">{{ item2.environmentData + getTypeList(item2.formula) }}</view>
</view>
</view>
<view class="line" v-if="item1.childList_seven.length > 0"></view>
<view class="item" v-for="(item2,index2) in item1.childList_eight" :key="index2"
@click="toTarget_water_fertilizer_PH(item2.equipmentId,item2.environmentData,item2.environmentDataId,item2.equipmentNumber,item2.targetValue,getTypeList(item2.formula),item2.equipmentName)">
<image :src="`../../static/icon_new/icon${ item2.formula }.png`" mode=""></image>
<view class="info">
<view class="">
{{ getStatus(item2.equipmentNumber,item2.targetValue) + item2.environmentDataId }}
</view>
<view class="">{{ item2.environmentData + getTypeList(item2.formula) }}</view>
</view>
</view>
<view class="line" v-if="item1.childList_eight.length > 0"></view>
<view class="item" v-for="(item2,index2) in item1.childList_nine" :key="index2"
@click="toTarget_water_fertilizer_PH(item2.equipmentId,item2.environmentData,item2.environmentDataId,item2.equipmentNumber,item2.targetValue,getTypeList(item2.formula),item2.equipmentName)">
<image :src="`../../static/icon_new/icon${ item2.formula }.png`" mode=""></image>
<view class="info">
<view class="">
{{ getStatus(item2.equipmentNumber,item2.targetValue) + item2.environmentDataId }}
</view>
<view class="">{{ item2.environmentData + getTypeList(item2.formula) }}</view>
</view>
</view>
<view class="line" v-if="item1.childList_nine.length > 0"></view>
<view class="item" v-for="(item2,index2) in item1.childList_ten" :key="index2"
@click="toTarget_water_fertilizer_PH(item2.equipmentId,item2.environmentData,item2.environmentDataId,item2.equipmentNumber,item2.targetValue,getTypeList(item2.formula),item2.equipmentName)">
<image :src="`../../static/icon_new/icon${ item2.formula }.png`" mode=""></image>
<view class="info">
<view class="">
{{ getStatus(item2.equipmentNumber,item2.targetValue) + item2.environmentDataId }}
</view>
<view class="">{{ item2.environmentData + getTypeList(item2.formula) }}</view>
</view>
</view>
<view class="line" v-if="item1.childList_ten.length > 0"></view>
<view class="item" v-for="(item2,index2) in item1.childList_eleven" :key="index2"
@click="toTarget_water_fertilizer_PH(item2.equipmentId,item2.environmentData,item2.environmentDataId,item2.equipmentNumber,item2.targetValue,getTypeList(item2.formula),item2.equipmentName)">
<image :src="`../../static/icon_new/icon${ item2.formula }.png`" mode=""></image>
<view class="info">
<view class="">
{{ getStatus(item2.equipmentNumber,item2.targetValue) + item2.environmentDataId }}
</view>
<view class="">{{ item2.environmentData + getTypeList(item2.formula) }}</view>
</view>
</view>
<view class="line" v-if="item1.childList_eleven.length > 0"></view>
<view class="item" v-for="(item2,index2) in item1.childList_twelve" :key="index2"
@click="toTarget_water_fertilizer_PH(item2.equipmentId,item2.environmentData,item2.environmentDataId,item2.equipmentNumber,item2.targetValue,getTypeList(item2.formula),item2.equipmentName)">
<image :src="`../../static/icon_new/icon${ item2.formula }.png`" mode=""></image>
<view class="info">
<view class="">
{{ getStatus(item2.equipmentNumber,item2.targetValue) + item2.environmentDataId }}
</view>
<view class="">{{ item2.environmentData + getTypeList(item2.formula) }}</view>
</view>
</view>
<view class="line" v-if="item1.childList_twelve.length > 0"></view>
<view class="item" v-for="(item2,index2) in item1.childList_thirteen" :key="index2"
@click="toTarget_water_fertilizer_PH(item2.equipmentId,item2.environmentData,item2.environmentDataId,item2.equipmentNumber,item2.targetValue,getTypeList(item2.formula),item2.equipmentName)">
<image :src="`../../static/icon_new/icon${ item2.formula }.png`" mode=""></image>
<view class="info">
<view class="">
{{ getStatus(item2.equipmentNumber,item2.targetValue) + item2.environmentDataId }}
</view>
<view class="">{{ item2.environmentData + getTypeList(item2.formula) }}</view>
</view>
</view>
<view class="line" v-if="item1.childList_thirteen.length > 0"></view>
<view class="item" v-for="(item2,index2) in item1.childList_fourteen" :key="index2"
@click="toTarget_water_fertilizer_PH(item2.equipmentId,item2.environmentData,item2.environmentDataId,item2.equipmentNumber,item2.targetValue,getTypeList(item2.formula),item2.equipmentName)">
<image :src="`../../static/icon_new/icon${ item2.formula }.png`" mode=""></image>
<view class="info">
<view class="">
{{ getStatus(item2.equipmentNumber,item2.targetValue) + item2.environmentDataId }}
</view>
<view class="">{{ item2.environmentData + getTypeList(item2.formula) }}</view>
</view>
</view>
<view class="line" v-if="item1.childList_fourteen.length > 0"></view>
</view>
<view class="updateTime">
<span></span>
<span>*更新数据时间&nbsp;: &nbsp;{{ updateTime }}</span>
</view>
</view>
</view>
</view>
</template>
@ -175,7 +345,7 @@
}
},
onLoad() {
this.typeList=this.api.typeList
this.typeList = this.api.typeList
uni.showLoading({
title: '加载中...'
});
@ -207,7 +377,7 @@
})
}, 60000);
},
onHide(){
onHide() {
let that = this
clearInterval(that.timer) && that.timer
},
@ -257,13 +427,31 @@
this.waterAndFertilizerParamsList = res.data.map((item, index) => {
return {
...item,
childList: []
childList: [],
childList_mubiao: [],//
childList_1: [],//
childList_2: [],//
childList_one: [],//1#
childList_two: [],//2#
childList_three: [],//3#
childList_four: [],//4#
childList_five: [],//5#
childList_six: [],//6#
childList_seven: [],//7#
childList_eight: [],//8#
childList_nine: [],//9#
childList_ten: [],//10#
childList_eleven: [],//11#
childList_twelve: [],//12#
childList_thirteen: [],//13#
childList_fourteen: [],//14#
}
})
this.waterAndFertilizerParamsList.forEach((i, index) => {
this.$http({
url: (i.equipmentName == 1 ? this.api.getFs_rtdata : this.api.getcontrol_rtdata) + "?equipmentId=" + i.deviceId,
url: (i.equipmentName == 1 ? this.api.getFs_rtdata : this.api
.getcontrol_rtdata) + "?equipmentId=" + i.deviceId,
method: 'post',
}).then(res => {
// console.log(res, '');
@ -274,6 +462,28 @@
});
uni.stopPullDownRefresh();
i.childList = res.data;
i.childList_mubiao = res.data.filter(el => (this.getStatus(el.equipmentNumber, el.targetValue)) == '目标');
i.childList_1 = res.data.filter(el => (this.getStatus(el.equipmentNumber, el.targetValue)) == '1#平均');
i.childList_2 = res.data.filter(el => (this.getStatus(el.equipmentNumber, el.targetValue)) == '2#平均');
i.childList_one = res.data.filter(el => (this.getStatus(el.equipmentNumber, el.targetValue)) == (el.equipmentNumber + '#') && el.equipmentNumber == 1);
i.childList_one = [...i.childList_1,...i.childList_one];
i.childList_two = res.data.filter(el => (this.getStatus(el.equipmentNumber, el.targetValue)) == (el.equipmentNumber + '#') && el.equipmentNumber == 2);
i.childList_two = [...i.childList_2,...i.childList_two]
i.childList_three = res.data.filter(el => (this.getStatus(el.equipmentNumber, el.targetValue)) == (el.equipmentNumber + '#') && el.equipmentNumber == 3);
i.childList_four = res.data.filter(el => (this.getStatus(el.equipmentNumber, el.targetValue)) == (el.equipmentNumber + '#') && el.equipmentNumber == 4);
i.childList_five = res.data.filter(el => (this.getStatus(el.equipmentNumber, el.targetValue)) == (el.equipmentNumber + '#') && el.equipmentNumber == 5);
i.childList_six = res.data.filter(el => (this.getStatus(el.equipmentNumber, el.targetValue)) == (el.equipmentNumber + '#') && el.equipmentNumber == 6);
i.childList_seven = res.data.filter(el => (this.getStatus(el.equipmentNumber, el.targetValue)) == (el.equipmentNumber + '#') && el.equipmentNumber == 7);
i.childList_eight = res.data.filter(el => (this.getStatus(el.equipmentNumber, el.targetValue)) == (el.equipmentNumber + '#') && el.equipmentNumber == 8);
i.childList_nine = res.data.filter(el => (this.getStatus(el.equipmentNumber, el.targetValue)) == (el.equipmentNumber + '#') && el.equipmentNumber == 9);
i.childList_ten = res.data.filter(el => (this.getStatus(el.equipmentNumber, el.targetValue)) == (el.equipmentNumber + '#') && el.equipmentNumber == 10);
i.childList_eleven = res.data.filter(el => (this.getStatus(el.equipmentNumber, el.targetValue)) == (el.equipmentNumber + '#') && el.equipmentNumber == 11);
i.childList_twelve = res.data.filter(el => (this.getStatus(el.equipmentNumber, el.targetValue)) == (el.equipmentNumber + '#') && el.equipmentNumber == 12);
i.childList_thirteen = res.data.filter(el => (this.getStatus(el.equipmentNumber, el.targetValue)) == (el.equipmentNumber + '#') && el.equipmentNumber == 13);
i.childList_fourteen = res.data.filter(el => (this.getStatus(el.equipmentNumber, el.targetValue)) == (el.equipmentNumber + '#') && el.equipmentNumber == 14);
this.updateTime = res.data[0].updateTime
// console.log(this.waterAndFertilizerParamsList);
} else {
@ -284,19 +494,24 @@
})
})
// equipmentName==1
let waterAndFertilizerParamsList_1 = this.waterAndFertilizerParamsList.filter(e=>e.equipmentName == 1).sort((a,b)=>a.equipmentStatu - b.equipmentStatu)
let waterAndFertilizerParamsList_1 = this.waterAndFertilizerParamsList.filter(e => e
.equipmentName == 1).sort((a, b) => a.equipmentStatu - b.equipmentStatu)
// equipmentName==10
let waterAndFertilizerParamsList_10 = this.waterAndFertilizerParamsList.filter(e=>e.equipmentName == 10).sort((a,b)=>a.equipmentStatu - b.equipmentStatu);
let waterAndFertilizerParamsList_10 = this.waterAndFertilizerParamsList.filter(e => e
.equipmentName == 10).sort((a, b) => a.equipmentStatu - b.equipmentStatu);
// console.log(waterAndFertilizerParamsList_1,waterAndFertilizerParamsList_10,'00000000000');
this.waterAndFertilizerParamsList = [...waterAndFertilizerParamsList_1,...waterAndFertilizerParamsList_10]
this.waterAndFertilizerParamsList = [...waterAndFertilizerParamsList_1, ...
waterAndFertilizerParamsList_10
];
// console.log(this.waterAndFertilizerParamsList, 'this.waterAndFertilizerParamsList');
}
})
},
// 线
toTarget_water_fertilizer_PH(id, data, name, equipmentNumber, targetValue, unit,equipmentName) {
toTarget_water_fertilizer_PH(id, data, name, equipmentNumber, targetValue, unit, equipmentName) {
uni.navigateTo({
url: '/pages/target_water_fertilizer_PH/target_water_fertilizer_PH?id=' + id + '&data=' +
data + '&name=' + name + '&equipmentNumber=' + equipmentNumber + '&targetValue=' +
@ -437,6 +652,14 @@
flex-wrap: wrap;
// justify-content: space-evenly;
.line {
width: 100%;
height: 1rpx;
background-color: #DDDDDD;
flex-shrink: 0;
margin-top: 20rpx;
}
.item {
width: 50%;
display: flex;

View File

@ -2,32 +2,35 @@
<view class="timeVideo">
<u-navbar :background="background" :is-back='true' back-icon-color='#FFFFFF' :border-bottom="false" title="实时视频"
title-color='#FFFFFF' :title-bold='true' title-size='32'></u-navbar>
<view class="content">
<view class="item" v-for="(item,index) in 3" :key="index">
<view class="nav">
<image src="../../static/video.png" mode=""></image>
<text>温室#2-摄像机#2</text>
<view class="content">
<view class="item" v-for="(item,index) in deviceList" :key="index">
<view class="nav">
<image src="../../static/video.png" mode=""></image>
<text>{{item.deviceTypeName}}-摄像机#2</text>
</view>
<view class="video" >
<image src="../../static/video1.png" mode=""></image>
<!-- <live-player :src="src" mode='live' muted='true' autoplay @error="error"
style="width: 100%; height: 100%;border-radius: 15rpx;" /> -->
</view>
<view class="timer">
<view class="left">
<image src="../../static/timer.png" mode=""></image>
<text>2023-09-20 14:00:55</text>
</view>
<view class="video">
<image src="../../static/video1.png" mode=""></image>
</view>
<view class="timer">
<view class="left">
<image src="../../static/timer.png" mode=""></image>
<text>2023-09-20 14:00:55</text>
</view>
<view class="right" @click="toVideoLive">
<image src="../../static/play.png" mode=""></image>
<text>现场实况</text>
</view>
<view class="right" @click="toVideoLive">
<image src="../../static/play.png" mode=""></image>
<text>现场实况</text>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
// import EZUIKit from 'ezuikit-js';
export default {
data() {
return {
@ -35,12 +38,67 @@
background: {
backgroundColor: '#24B383',
},
userid: '',
deviceList: [],
liveList: [],
src: ''
};
},
methods:{
toVideoLive(){
onPullDownRefresh() {
this.getEquipmentInfo(this.userid)
},
mounted() {
this.userid = uni.getStorageSync('userid');
// console.log(EZUIKit);
this.getEquipmentInfo(this.userid)
},
methods: {
// id
getEquipmentInfo(userid) {
uni.showLoading({
title: '加载中...'
})
this.$http({
url: this.api.sel_eqbyid + userid,
method: 'GET'
}).then(res => {
if (res.code == 200) {
uni.hideLoading()
uni.stopPullDownRefresh();
this.deviceList = res.data
// this.deviceList.forEach(el=>{
// this.getVideoData(el.cameraSerialNumber,el.cameraChannelNumber)
// })
this.getVideoData("AD6463273", 11)
} else {
this.$refs.uToast.show({
title: res.msg,
type: 'error',
})
}
})
},
//
getVideoData(cameraid, channelid) {
this.$http({
url: this.api.camera_gethls,
method: 'GET',
data: {
cameraid,
channelid,
}
}).then(res => {
if (res.code == 200) {
this.src = res.ezopen
}
})
},
toVideoLive() {
uni.navigateTo({
url:'/pages/videoLive/videoLive'
url: '/pages/videoLive/videoLive'
})
}
}
@ -48,105 +106,109 @@
</script>
<style lang="scss" scoped>
.timeVideo{
width: 100%;
min-height: 100vh;
background-color: #F5F6FA;
.content{
box-sizing: border-box;
padding: 30rpx;
.item{
width: 690rpx;
height: 577rpx;
background: #FFFFFF;
border-radius: 15rpx;
margin-bottom: 30rpx;
.nav {
height: 90rpx;
box-sizing: border-box;
padding: 20rpx;
display: flex;
align-items: center;
>image {
width: 50rpx;
height: 50rpx;
margin-right: 16rpx;
}
>text {
font-size: 30rpx;
font-family: PingFang SC;
font-weight: bold;
color: #333333;
}
}
.video{
.timeVideo {
width: 100%;
min-height: 100vh;
background-color: #F5F6FA;
.content {
box-sizing: border-box;
padding: 30rpx;
.item {
width: 690rpx;
height: 380rpx;
height: 577rpx;
background: #FFFFFF;
border-radius: 15rpx;
box-sizing: border-box;
padding: 0 20rpx;
>image{
margin-bottom: 30rpx;
.nav {
height: 90rpx;
box-sizing: border-box;
padding: 20rpx;
display: flex;
align-items: center;
>image {
width: 50rpx;
height: 50rpx;
margin-right: 16rpx;
}
>text {
font-size: 30rpx;
font-family: PingFang SC;
font-weight: bold;
color: #333333;
}
}
.video {
width: 690rpx;
height: 380rpx;
background: #FFFFFF;
border-radius: 15rpx;
box-sizing: border-box;
padding: 0 20rpx;
>image {
width: 100%;
height: 100%;
}
}
.timer {
width: 100%;
height: 100%;
}
}
.timer{
width: 100%;
height: 107rpx;
display: flex;
align-items: center;
justify-content: space-between;
box-sizing: border-box;
padding: 0 20rpx;
.left{
height: 107rpx;
display: flex;
align-items: center;
>image{
width: 30rpx;
height: 30rpx;
margin-right: 10rpx;
justify-content: space-between;
box-sizing: border-box;
padding: 0 20rpx;
.left {
display: flex;
align-items: center;
>image {
width: 30rpx;
height: 30rpx;
margin-right: 10rpx;
}
>text {
font-size: 24rpx;
font-family: PingFang SC;
font-weight: bold;
color: #666666;
}
}
>text{
font-size: 24rpx;
font-family: PingFang SC;
font-weight: bold;
color: #666666;
}
}
.right{
width: 200rpx;
height: 66rpx;
background: linear-gradient(0deg, #7BD4B6 0%, #26B383 100%);
border-radius: 33rpx;
display: flex;
justify-content: center;
align-items: center;
>image{
width: 30rpx;
height: 30rpx;
margin-right: 10rpx;
}
>text{
font-size: 28rpx;
font-family: PingFang SC;
font-weight: bold;
color: #FFFFFF;
.right {
width: 200rpx;
height: 66rpx;
background: linear-gradient(0deg, #7BD4B6 0%, #26B383 100%);
border-radius: 33rpx;
display: flex;
justify-content: center;
align-items: center;
>image {
width: 30rpx;
height: 30rpx;
margin-right: 10rpx;
}
>text {
font-size: 28rpx;
font-family: PingFang SC;
font-weight: bold;
color: #FFFFFF;
}
}
}
}
}
}
}
</style>
</style>

Binary file not shown.

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -1557,7 +1557,7 @@ function initData(vueOptions, context) {
try {
data = data.call(context); // 支持 Vue.prototype 上挂的数据
} catch (e) {
if (Object({"NODE_ENV":"development","VUE_APP_DARK_MODE":"false","VUE_APP_NAME":"greenhouse-wisdom-applet","VUE_APP_PLATFORM":"mp-weixin","BASE_URL":"/"}).VUE_APP_DEBUG) {
if (Object({"VUE_APP_DARK_MODE":"false","VUE_APP_NAME":"greenhouse-wisdom-applet","VUE_APP_PLATFORM":"mp-weixin","NODE_ENV":"development","BASE_URL":"/"}).VUE_APP_DEBUG) {
console.warn('根据 Vue 的 data 函数初始化小程序 data 失败,请尽量确保 data 函数中不访问 vm 对象,否则可能影响首次数据渲染速度。', data);
}
}
@ -8934,7 +8934,7 @@ function type(obj) {
function flushCallbacks$1(vm) {
if (vm.__next_tick_callbacks && vm.__next_tick_callbacks.length) {
if (Object({"NODE_ENV":"development","VUE_APP_DARK_MODE":"false","VUE_APP_NAME":"greenhouse-wisdom-applet","VUE_APP_PLATFORM":"mp-weixin","BASE_URL":"/"}).VUE_APP_DEBUG) {
if (Object({"VUE_APP_DARK_MODE":"false","VUE_APP_NAME":"greenhouse-wisdom-applet","VUE_APP_PLATFORM":"mp-weixin","NODE_ENV":"development","BASE_URL":"/"}).VUE_APP_DEBUG) {
var mpInstance = vm.$scope;
console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + vm._uid +
']:flushCallbacks[' + vm.__next_tick_callbacks.length + ']');
@ -8955,14 +8955,14 @@ function nextTick$1(vm, cb) {
//1.nextTick 之前 已 setData 且 setData 还未回调完成
//2.nextTick 之前存在 render watcher
if (!vm.__next_tick_pending && !hasRenderWatcher(vm)) {
if(Object({"NODE_ENV":"development","VUE_APP_DARK_MODE":"false","VUE_APP_NAME":"greenhouse-wisdom-applet","VUE_APP_PLATFORM":"mp-weixin","BASE_URL":"/"}).VUE_APP_DEBUG){
if(Object({"VUE_APP_DARK_MODE":"false","VUE_APP_NAME":"greenhouse-wisdom-applet","VUE_APP_PLATFORM":"mp-weixin","NODE_ENV":"development","BASE_URL":"/"}).VUE_APP_DEBUG){
var mpInstance = vm.$scope;
console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + vm._uid +
']:nextVueTick');
}
return nextTick(cb, vm)
}else{
if(Object({"NODE_ENV":"development","VUE_APP_DARK_MODE":"false","VUE_APP_NAME":"greenhouse-wisdom-applet","VUE_APP_PLATFORM":"mp-weixin","BASE_URL":"/"}).VUE_APP_DEBUG){
if(Object({"VUE_APP_DARK_MODE":"false","VUE_APP_NAME":"greenhouse-wisdom-applet","VUE_APP_PLATFORM":"mp-weixin","NODE_ENV":"development","BASE_URL":"/"}).VUE_APP_DEBUG){
var mpInstance$1 = vm.$scope;
console.log('[' + (+new Date) + '][' + (mpInstance$1.is || mpInstance$1.route) + '][' + vm._uid +
']:nextMPTick');
@ -9058,7 +9058,7 @@ var patch = function(oldVnode, vnode) {
});
var diffData = this.$shouldDiffData === false ? data : diff(data, mpData);
if (Object.keys(diffData).length) {
if (Object({"NODE_ENV":"development","VUE_APP_DARK_MODE":"false","VUE_APP_NAME":"greenhouse-wisdom-applet","VUE_APP_PLATFORM":"mp-weixin","BASE_URL":"/"}).VUE_APP_DEBUG) {
if (Object({"VUE_APP_DARK_MODE":"false","VUE_APP_NAME":"greenhouse-wisdom-applet","VUE_APP_PLATFORM":"mp-weixin","NODE_ENV":"development","BASE_URL":"/"}).VUE_APP_DEBUG) {
console.log('[' + (+new Date) + '][' + (mpInstance.is || mpInstance.route) + '][' + this._uid +
']差量更新',
JSON.stringify(diffData));
@ -9814,7 +9814,7 @@ exports.default = _default;
},
beforeDestroy: function beforeDestroy() {
var _this3 = this;
// 判断当前页面是否存在parent和chldren一般在checkbox和checkbox-group父子联动的场景会有此情况
// 判断当前页面是否存在parent和children一般在checkbox和checkbox-group父子联动的场景会有此情况
// 组件销毁时移除子组件在父组件children数组中的实例释放资源避免数据混乱
if (this.parent && uni.$u.test.array(this.parent.children)) {
// 组件销毁时移除父组件中的children数组中对应的实例
@ -10152,7 +10152,7 @@ var _typeof2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/hel
* 验证电子邮箱格式
*/
function email(value) {
return /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(value);
return /[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?/.test(value);
}
/**
@ -10187,7 +10187,7 @@ function dateISO(value) {
* 验证十进制数字
*/
function number(value) {
return /^(?:-?\d+|-?\d{1,3}(?:,\d{3})+)?(?:\.\d+)?$/.test(value);
return /^[\+-]?(\d+\.?\d*|\.\d+|\d\.\d+e\+\d+)$/.test(value);
}
/**
@ -11331,7 +11331,7 @@ exports.default = void 0;
* v-for的时候,推荐使用后端返回的id而不是循环的index
* @param {Number} len uuid的长度
* @param {Boolean} firstU 将返回的首字母置为"u"
* @param {Nubmer} radix 生成uuid的基数(意味着返回的字符串都是这个基数),2-二进制,8-八进制,10-十进制,16-十六进制
* @param {Number} radix 生成uuid的基数(意味着返回的字符串都是这个基数),2-二进制,8-八进制,10-十进制,16-十六进制
*/
function guid() {
var len = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 32;
@ -11357,7 +11357,7 @@ function guid() {
}
}
}
// 移除第一个字符,并用u替代,因为第一个字符为数值时,该guuid不能用作id或者class
// 移除第一个字符,并用u替代,因为第一个字符为数值时,该guid不能用作id或者class
if (firstU) {
uuid.shift();
return 'u' + uuid.join('');
@ -11848,8 +11848,8 @@ Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
// 此版本发布于2020-12-17
var version = '1.8.3';
// 此版本发布于2022-04-19
var version = '1.8.6';
var _default = {
v: version,
version: version,
@ -12006,7 +12006,7 @@ var api = (_api = {
sel_user: "/api/sel/user",
//根据id查询用户信息
getFs_rtdata: "/getFs/rtdata"
}, (0, _defineProperty2.default)(_api, "selFs_time", "/selFs/time"), (0, _defineProperty2.default)(_api, "sel_eqbyid", "/sel/eqbyid/"), (0, _defineProperty2.default)(_api, "chart_fsdata", "/chart/fsdata"), (0, _defineProperty2.default)(_api, "user_update_pwd", "/user/update/pwd"), (0, _defineProperty2.default)(_api, "readFs_state", "/readFs/state"), (0, _defineProperty2.default)(_api, "writeFs", "/writeFs"), (0, _defineProperty2.default)(_api, "readFs_reg", "/readFs/reg"), (0, _defineProperty2.default)(_api, "readJinHuaControl_reg", "/readJinHuaControl/reg"), (0, _defineProperty2.default)(_api, "writeJinHuaControl_write", "/writeJinHuaControl/write"), (0, _defineProperty2.default)(_api, "getcontrol_rtdata", "/getcontrol/rtdata"), (0, _defineProperty2.default)(_api, "getcontrol_fsdata", "/getcontrol/fsdata"), (0, _defineProperty2.default)(_api, "getcontrol_cpermission", '/getcontrol/cpermission'), (0, _defineProperty2.default)(_api, "getControl_getState", '/readControl/getState'), (0, _defineProperty2.default)(_api, "getReadControlliShuiControl", '/readControl/liShuiControl'), (0, _defineProperty2.default)(_api, "readControl_fiveControl", '/readControl/fiveControl'), (0, _defineProperty2.default)(_api, "getcontrol_wxgetpermission", '/getcontrol/wxgetpermission'), (0, _defineProperty2.default)(_api, "readControl_solenoidValve1", '/readControl/solenoidValve1'), (0, _defineProperty2.default)(_api, "readControl_solenoidValve2", '/readControl/solenoidValve2'), (0, _defineProperty2.default)(_api, "readControl_solenoidValve3", '/readControl/solenoidValve3'), (0, _defineProperty2.default)(_api, "readControl_solenoidValve4", '/readControl/solenoidValve4'), (0, _defineProperty2.default)(_api, "readControl_solenoidValve5", '/readControl/solenoidValve5'), (0, _defineProperty2.default)(_api, "readControl_solenoidValve6", '/readControl/solenoidValve6'), (0, _defineProperty2.default)(_api, "readControl_solenoidValve7", '/readControl/solenoidValve7'), (0, _defineProperty2.default)(_api, "readControl_solenoidValve8", '/readControl/solenoidValve8'), (0, _defineProperty2.default)(_api, "readControl_readfilllight", '/readControl/readfilllight'), (0, _defineProperty2.default)(_api, "readControl_readcirculationfan", '/readControl/readcirculationfan'), (0, _defineProperty2.default)(_api, "readControl_fanwetcurtain", '/readControl/fanwetcurtain'), (0, _defineProperty2.default)(_api, "readFs_byid", '/readFs/byid'), (0, _defineProperty2.default)(_api, "typeList", [{
}, (0, _defineProperty2.default)(_api, "selFs_time", "/selFs/time"), (0, _defineProperty2.default)(_api, "sel_eqbyid", "/sel/eqbyid/"), (0, _defineProperty2.default)(_api, "chart_fsdata", "/chart/fsdata"), (0, _defineProperty2.default)(_api, "user_update_pwd", "/user/update/pwd"), (0, _defineProperty2.default)(_api, "readFs_state", "/readFs/state"), (0, _defineProperty2.default)(_api, "writeFs", "/writeFs"), (0, _defineProperty2.default)(_api, "readFs_reg", "/readFs/reg"), (0, _defineProperty2.default)(_api, "readJinHuaControl_reg", "/readJinHuaControl/reg"), (0, _defineProperty2.default)(_api, "writeJinHuaControl_write", "/writeJinHuaControl/write"), (0, _defineProperty2.default)(_api, "getcontrol_rtdata", "/getcontrol/rtdata"), (0, _defineProperty2.default)(_api, "getcontrol_fsdata", "/getcontrol/fsdata"), (0, _defineProperty2.default)(_api, "getcontrol_cpermission", '/getcontrol/cpermission'), (0, _defineProperty2.default)(_api, "getControl_getState", '/readControl/getState'), (0, _defineProperty2.default)(_api, "getReadControlliShuiControl", '/readControl/liShuiControl'), (0, _defineProperty2.default)(_api, "readControl_fiveControl", '/readControl/fiveControl'), (0, _defineProperty2.default)(_api, "getcontrol_wxgetpermission", '/getcontrol/wxgetpermission'), (0, _defineProperty2.default)(_api, "readControl_solenoidValve1", '/readControl/solenoidValve1'), (0, _defineProperty2.default)(_api, "readControl_solenoidValve2", '/readControl/solenoidValve2'), (0, _defineProperty2.default)(_api, "readControl_solenoidValve3", '/readControl/solenoidValve3'), (0, _defineProperty2.default)(_api, "readControl_solenoidValve4", '/readControl/solenoidValve4'), (0, _defineProperty2.default)(_api, "readControl_solenoidValve5", '/readControl/solenoidValve5'), (0, _defineProperty2.default)(_api, "readControl_solenoidValve6", '/readControl/solenoidValve6'), (0, _defineProperty2.default)(_api, "readControl_solenoidValve7", '/readControl/solenoidValve7'), (0, _defineProperty2.default)(_api, "readControl_solenoidValve8", '/readControl/solenoidValve8'), (0, _defineProperty2.default)(_api, "readControl_readfilllight", '/readControl/readfilllight'), (0, _defineProperty2.default)(_api, "readControl_readcirculationfan", '/readControl/readcirculationfan'), (0, _defineProperty2.default)(_api, "readControl_fanwetcurtain", '/readControl/fanwetcurtain'), (0, _defineProperty2.default)(_api, "readControl_innercurtain", '/readControl/innercurtain'), (0, _defineProperty2.default)(_api, "readControl_externalsunshade", '/readControl/externalsunshade'), (0, _defineProperty2.default)(_api, "readControl_readskylight", '/readControl/readskylight'), (0, _defineProperty2.default)(_api, "camera_gethls", '/camera/gethls'), (0, _defineProperty2.default)(_api, "readFs_byid", '/readFs/byid'), (0, _defineProperty2.default)(_api, "typeList", [{
label: '无意义的传感器',
value: 0,
countType: 0,
@ -12674,7 +12674,7 @@ function _extends() {
var formatRegExp = /%[sdj%]/g;
var warning = function warning() {}; // don't print warning message when in production env or node runtime
if (typeof process !== 'undefined' && Object({"NODE_ENV":"development","VUE_APP_DARK_MODE":"false","VUE_APP_NAME":"greenhouse-wisdom-applet","VUE_APP_PLATFORM":"mp-weixin","BASE_URL":"/"}) && "development" !== 'production' && typeof window !== 'undefined' && typeof document !== 'undefined') {
if (typeof process !== 'undefined' && Object({"VUE_APP_DARK_MODE":"false","VUE_APP_NAME":"greenhouse-wisdom-applet","VUE_APP_PLATFORM":"mp-weixin","NODE_ENV":"development","BASE_URL":"/"}) && "development" !== 'production' && typeof window !== 'undefined' && typeof document !== 'undefined') {
warning = function warning(type, errors) {
if (typeof console !== 'undefined' && console.warn) {
if (errors.every(function (e) {
@ -13034,7 +13034,7 @@ function range(rule, value, source, errors, options) {
val = value.length;
}
if (str) {
// 处理码点大于U+010000的文字length属性不准确的bug如"𠮷𠮷𠮷".lenght !== 3
// 处理码点大于U+010000的文字length属性不准确的bug如"𠮷𠮷𠮷".length !== 3
val = value.replace(spRegexp, '_').length;
}
if (len) {
@ -22188,7 +22188,8 @@ var _default = {
"path": "pages/timeVideo/timeVideo",
"style": {
"navigationBarTitleText": "",
"navigationStyle": "custom"
"navigationStyle": "custom",
"enablePullDownRefresh": true
}
}, {
"path": "pages/greenhouseDevice/greenhouseDevice",

View File

@ -284,7 +284,8 @@ var _default2 = {
this.parent = this.$u.$parent.call(this, 'u-collapse');
if (this.parent) {
this.nameSync = this.name ? this.name : this.parent.childrens.length;
this.parent.childrens.push(this);
// 不存在时才添加本实例
!this.parent.childrens.includes(this) && this.parent.childrens.push(this);
this.headStyle = this.parent.headStyle;
this.bodyStyle = this.parent.bodyStyle;
this.arrowColor = this.parent.arrowColor;

View File

@ -234,6 +234,7 @@ var _emitter = _interopRequireDefault(__webpack_require__(/*! ../../libs/util/em
//
//
//
//
/**
* input 输入框
* @description 此组件为一个输入框默认没有边框和样式是专门为配合表单组件u-form而设计的利用它可以快速实现表单验证输入内容下拉选择等功能
@ -373,6 +374,11 @@ var _default2 = {
showConfirmbar: {
type: Boolean,
default: true
},
// 弹出键盘时是否自动调节高度uni-app默认值是true
adjustPosition: {
type: Boolean,
default: true
}
},
data: function data() {
@ -464,16 +470,17 @@ var _default2 = {
var _this2 = this;
// 最开始使用的是监听图标@touchstart事件自从hx2.8.4后,此方法在微信小程序出错
// 这里改为监听点击事件,手点击清除图标时,同时也发生了@blur事件导致图标消失而无法点击这里做一个延时
var value = event.detail.value;
setTimeout(function () {
_this2.focused = false;
}, 100);
// vue 原生的方法 return 出去
this.$emit('blur', event.detail.value);
this.$emit('blur', value);
setTimeout(function () {
// 头条小程序由于自身bug导致中文下每按下一个键(尚未完成输入),都会触发一次@input导致错误这里进行判断处理
// 将当前的值发送到 u-form-item 进行校验
_this2.dispatch('u-form-item', 'on-form-blur', event.detail.value);
_this2.dispatch('u-form-item', 'on-form-blur', value);
}, 40);
},
onFormItemError: function onFormItemError(status) {

View File

@ -1 +1 @@
<view data-event-opts="{{[['tap',[['inputClick',['$event']]]]]}}" class="{{['u-input','data-v-fdbb9fe6',(border)?'u-input--border':'',(validateState)?'u-input--error':'']}}" style="{{'padding:'+('0 '+(border?20:0)+'rpx')+';'+('border-color:'+(borderColor)+';')+('text-align:'+(inputAlign)+';')}}" catchtap="__e"><block wx:if="{{type=='textarea'}}"><textarea class="u-input__input u-input__textarea data-v-fdbb9fe6" style="{{$root.s0}}" placeholder="{{placeholder}}" placeholderStyle="{{placeholderStyle}}" disabled="{{disabled}}" maxlength="{{inputMaxlength}}" fixed="{{fixed}}" focus="{{focus}}" autoHeight="{{autoHeight}}" selection-end="{{uSelectionEnd}}" selection-start="{{uSelectionStart}}" cursor-spacing="{{getCursorSpacing}}" show-confirm-bar="{{showConfirmbar}}" data-event-opts="{{[['input',[['handleInput',['$event']]]],['blur',[['handleBlur',['$event']]]],['focus',[['onFocus',['$event']]]],['confirm',[['onConfirm',['$event']]]]]}}" value="{{defaultValue}}" bindinput="__e" bindblur="__e" bindfocus="__e" bindconfirm="__e"></textarea></block><block wx:else><input class="u-input__input data-v-fdbb9fe6" style="{{$root.s1}}" type="{{type=='password'?'text':type}}" password="{{type=='password'&&!showPassword}}" placeholder="{{placeholder}}" placeholderStyle="{{placeholderStyle}}" disabled="{{disabled||type==='select'}}" maxlength="{{inputMaxlength}}" focus="{{focus}}" confirmType="{{confirmType}}" cursor-spacing="{{getCursorSpacing}}" selection-end="{{uSelectionEnd}}" selection-start="{{uSelectionStart}}" show-confirm-bar="{{showConfirmbar}}" data-event-opts="{{[['focus',[['onFocus',['$event']]]],['blur',[['handleBlur',['$event']]]],['input',[['handleInput',['$event']]]],['confirm',[['onConfirm',['$event']]]]]}}" value="{{defaultValue}}" bindfocus="__e" bindblur="__e" bindinput="__e" bindconfirm="__e"/></block><view class="u-input__right-icon u-flex data-v-fdbb9fe6"><block wx:if="{{clearable&&value!=''&&focused}}"><view data-event-opts="{{[['tap',[['onClear',['$event']]]]]}}" class="u-input__right-icon__clear u-input__right-icon__item data-v-fdbb9fe6" bindtap="__e"><u-icon vue-id="8b778332-1" size="32" name="close-circle-fill" color="#c0c4cc" class="data-v-fdbb9fe6" bind:__l="__l"></u-icon></view></block><block wx:if="{{passwordIcon&&type=='password'}}"><view class="u-input__right-icon__clear u-input__right-icon__item data-v-fdbb9fe6"><u-icon vue-id="8b778332-2" size="32" name="{{!showPassword?'eye':'eye-fill'}}" color="#c0c4cc" data-event-opts="{{[['^click',[['e0']]]]}}" bind:click="__e" class="data-v-fdbb9fe6" bind:__l="__l"></u-icon></view></block><block wx:if="{{type=='select'}}"><view class="{{['u-input__right-icon--select','u-input__right-icon__item','data-v-fdbb9fe6',(selectOpen)?'u-input__right-icon--select--reverse':'']}}"><u-icon vue-id="8b778332-3" name="arrow-down-fill" size="26" color="#c0c4cc" class="data-v-fdbb9fe6" bind:__l="__l"></u-icon></view></block></view></view>
<view data-event-opts="{{[['tap',[['inputClick',['$event']]]]]}}" class="{{['u-input','data-v-fdbb9fe6',(border)?'u-input--border':'',(validateState)?'u-input--error':'']}}" style="{{'padding:'+('0 '+(border?20:0)+'rpx')+';'+('border-color:'+(borderColor)+';')+('text-align:'+(inputAlign)+';')}}" catchtap="__e"><block wx:if="{{type=='textarea'}}"><textarea class="u-input__input u-input__textarea data-v-fdbb9fe6" style="{{$root.s0}}" placeholder="{{placeholder}}" placeholderStyle="{{placeholderStyle}}" disabled="{{disabled}}" maxlength="{{inputMaxlength}}" fixed="{{fixed}}" focus="{{focus}}" autoHeight="{{autoHeight}}" selection-end="{{uSelectionEnd}}" selection-start="{{uSelectionStart}}" cursor-spacing="{{getCursorSpacing}}" show-confirm-bar="{{showConfirmbar}}" data-event-opts="{{[['input',[['handleInput',['$event']]]],['blur',[['handleBlur',['$event']]]],['focus',[['onFocus',['$event']]]],['confirm',[['onConfirm',['$event']]]]]}}" value="{{defaultValue}}" bindinput="__e" bindblur="__e" bindfocus="__e" bindconfirm="__e"></textarea></block><block wx:else><input class="u-input__input data-v-fdbb9fe6" style="{{$root.s1}}" type="{{type=='password'?'text':type}}" password="{{type=='password'&&!showPassword}}" placeholder="{{placeholder}}" placeholderStyle="{{placeholderStyle}}" disabled="{{disabled||type==='select'}}" maxlength="{{inputMaxlength}}" focus="{{focus}}" confirmType="{{confirmType}}" cursor-spacing="{{getCursorSpacing}}" selection-end="{{uSelectionEnd}}" selection-start="{{uSelectionStart}}" show-confirm-bar="{{showConfirmbar}}" adjust-position="{{adjustPosition}}" data-event-opts="{{[['focus',[['onFocus',['$event']]]],['blur',[['handleBlur',['$event']]]],['input',[['handleInput',['$event']]]],['confirm',[['onConfirm',['$event']]]]]}}" value="{{defaultValue}}" bindfocus="__e" bindblur="__e" bindinput="__e" bindconfirm="__e"/></block><view class="u-input__right-icon u-flex data-v-fdbb9fe6"><block wx:if="{{clearable&&value!=''&&focused}}"><view data-event-opts="{{[['tap',[['onClear',['$event']]]]]}}" class="u-input__right-icon__clear u-input__right-icon__item data-v-fdbb9fe6" bindtap="__e"><u-icon vue-id="8b778332-1" size="32" name="close-circle-fill" color="#c0c4cc" class="data-v-fdbb9fe6" bind:__l="__l"></u-icon></view></block><block wx:if="{{passwordIcon&&type=='password'}}"><view class="u-input__right-icon__clear u-input__right-icon__item data-v-fdbb9fe6"><u-icon vue-id="8b778332-2" size="32" name="{{!showPassword?'eye':'eye-fill'}}" color="#c0c4cc" data-event-opts="{{[['^click',[['e0']]]]}}" bind:click="__e" class="data-v-fdbb9fe6" bind:__l="__l"></u-icon></view></block><block wx:if="{{type=='select'}}"><view class="{{['u-input__right-icon--select','u-input__right-icon__item','data-v-fdbb9fe6',(selectOpen)?'u-input__right-icon--select--reverse':'']}}"><u-icon vue-id="8b778332-3" name="arrow-down-fill" size="26" color="#c0c4cc" class="data-v-fdbb9fe6" bind:__l="__l"></u-icon></view></block></view></view>

View File

@ -157,7 +157,10 @@ var render = function () {
g1 != -1
? _vm.__map(_vm.statusList, function (item, index) {
var $orig = _vm.__get_orig(item)
var m4 = item.open != 0 ? _vm.getNumberStatus(item.index) : null
var m4 =
item.open != 0 && item.open != 0
? _vm.getNumberStatus(item.index)
: null
return {
$orig: $orig,
m4: m4,
@ -169,27 +172,33 @@ var render = function () {
g2 != -1
? _vm.__map(_vm.fiveControlList, function (item, index) {
var $orig = _vm.__get_orig(item)
var m5 = item.controlState != 0 ? Number(item.progress) : null
var m5 =
item.controlState != 0 && item.controlState != 0
? Number(item.progress)
: null
return {
$orig: $orig,
m5: m5,
}
})
: null
var g3 = _vm.purviewList.indexOf("20")
var g4 = _vm.purviewList.indexOf("21")
var g5 = _vm.purviewList.indexOf("26")
var g6 = _vm.purviewList.indexOf("23")
var g7 = _vm.purviewList.indexOf("26")
var g8 = _vm.purviewList.indexOf("24")
var g9 = _vm.purviewList.indexOf("25")
var g10 = _vm.purviewList.indexOf("19")
var l3 = _vm.__map(8, function (item, index) {
var $orig = _vm.__get_orig(item)
var g3 = _vm.purviewList.indexOf((index + 11).toString())
var g11 = _vm.purviewList.indexOf((index + 11).toString())
return {
$orig: $orig,
g3: g3,
g11: g11,
}
})
var g4 = _vm.purviewList.indexOf("20")
var g5 = _vm.purviewList.indexOf("21")
var g6 = _vm.purviewList.indexOf("26")
var g7 = _vm.purviewList.indexOf("23")
var g8 = _vm.purviewList.indexOf("26")
var g9 = _vm.purviewList.length
var g12 = _vm.purviewList.length
if (!_vm._isMounted) {
_vm.e0 = function ($event) {
_vm.fanmodelShow = true
@ -224,6 +233,15 @@ var render = function () {
_vm.e10 = function ($event) {
_vm.outFlipWindowShow = false
}
_vm.e11 = function ($event) {
_vm.innercurtainShow = false
}
_vm.e12 = function ($event) {
_vm.externalsunshadeShow = false
}
_vm.e13 = function ($event) {
_vm.airWindowShow = false
}
}
_vm.$mp.data = Object.assign(
{},
@ -235,13 +253,16 @@ var render = function () {
l1: l1,
g2: g2,
l2: l2,
l3: l3,
g3: g3,
g4: g4,
g5: g5,
g6: g6,
g7: g7,
g8: g8,
g9: g9,
g10: g10,
l3: l3,
g12: g12,
},
}
)
@ -1135,6 +1156,252 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
var _default = {
data: function data() {
return {
@ -1456,7 +1723,54 @@ var _default = {
outFlipWindowState: 0,
progress: 0
}],
popoutFlipWindowName: ''
popoutFlipWindowName: '',
innercurtainShow: false,
//内遮阳
innercurtainControlIndex: 0,
innercurtainList: [{
name: '1#内遮阳',
innercurtainState: 0,
progress: 0
}, {
name: '2#内遮阳',
innercurtainState: 0,
progress: 0
}],
popinnercurtainName: '',
externalsunshadeShow: false,
//外遮阳
externalsunshadeControlIndex: 0,
externalsunshadeList: [{
name: '1#外遮阳',
externalsunshadeState: 0,
progress: 0
}, {
name: '2#外遮阳',
externalsunshadeState: 0,
progress: 0
}],
popexternalsunshadeName: '',
airWindowShow: false,
//通风窗
airWindowControlIndex: 0,
airWindowList: [{
name: '1#通风窗',
airWindowState: 0,
progress: 0
}, {
name: '2#通风窗',
airWindowState: 0,
progress: 0
}, {
name: '3#通风窗',
airWindowState: 0,
progress: 0
}, {
name: '4#通风窗',
airWindowState: 0,
progress: 0
}],
popairWindowName: ''
};
},
onReady: function onReady() {
@ -1685,7 +1999,7 @@ var _default = {
this.changeBtn(21808, dataNum);
}
},
// 高压微雾
// 湿帘外翻窗弹框
changeoutFlipWindowControl: function changeoutFlipWindowControl(index) {
this.outFlipWindowControlIndex = index;
var dataNum = {
@ -1699,6 +2013,52 @@ var _default = {
this.changeBtn(21979, dataNum);
}
},
// 内遮阳
changeinnercurtainControl: function changeinnercurtainControl(index) {
this.innercurtainControlIndex = index;
var dataNum = {
target: {
value: this.innercurtainControlIndex
}
};
if (this.popinnercurtainName == 0) {
this.changeBtn(21840, dataNum);
} else if (this.popinnercurtainName == 1) {
this.changeBtn(21858, dataNum);
}
},
// 外遮阳
changeexternalsunshadeControl: function changeexternalsunshadeControl(index) {
this.externalsunshadeControlIndex = index;
var dataNum = {
target: {
value: this.externalsunshadeControlIndex
}
};
if (this.popexternalsunshadeName == 0) {
this.changeBtn(21900, dataNum);
} else if (this.popexternalsunshadeName == 1) {
this.changeBtn(21915, dataNum);
}
},
// 通风窗
changeairWindowControl: function changeairWindowControl(index) {
this.airWindowControlIndex = index;
var dataNum = {
target: {
value: this.airWindowControlIndex
}
};
if (this.popairWindowName == 0) {
this.changeBtn(21250, dataNum);
} else if (this.popairWindowName == 1) {
this.changeBtn(21273, dataNum);
} else if (this.popairWindowName == 2) {
this.changeBtn(21296, dataNum);
} else if (this.popairWindowName == 3) {
this.changeBtn(21319, dataNum);
}
},
changeBtn: function changeBtn(code, el) {
var data = {
equipmentId: this.deviceId,
@ -1949,6 +2309,33 @@ var _default = {
});
}
;
//内遮阳
if (_this7.purviewList.indexOf('24') != -1) {
_this7.innercurtainList.forEach(function (el, index) {
el.innercurtainState = res.data[1090 + index * 3];
el.progress = res.data[1092 + index * 3];
});
}
;
//外遮阳
if (_this7.purviewList.indexOf('25') != -1) {
_this7.externalsunshadeList.forEach(function (el, index) {
el.externalsunshadeState = res.data[1096 + index * 3];
el.progress = res.data[1098 + index * 3];
});
}
;
//通风窗
if (_this7.purviewList.indexOf('19') != -1) {
_this7.airWindowList.forEach(function (el, index) {
el.airWindowState = res.data[1102 + index * 3];
el.progress = res.data[1104 + index * 3];
});
}
;
}
});
},
@ -2068,6 +2455,60 @@ var _default = {
}
});
},
// 内遮阳
innercurtainHander: function innercurtainHander(index) {
var _this13 = this;
this.innercurtainControlIndex = 0;
this.popinnercurtainName = index;
var deviceId = this.deviceId;
this.innercurtainShow = true;
this.$http({
url: this.api.readControl_innercurtain + '?deviceId=' + deviceId,
method: 'GET'
}).then(function (res) {
if (res.code == 200) {
uni.hideLoading();
uni.stopPullDownRefresh();
_this13.innercurtainControlIndex = res.data[21840 + index * 18];
}
});
},
// 外遮阳
externalsunshadeHander: function externalsunshadeHander(index) {
var _this14 = this;
this.externalsunshadeControlIndex = 0;
this.popexternalsunshadeName = index;
var deviceId = this.deviceId;
this.externalsunshadeShow = true;
this.$http({
url: this.api.readControl_externalsunshade + '?deviceId=' + deviceId,
method: 'GET'
}).then(function (res) {
if (res.code == 200) {
uni.hideLoading();
uni.stopPullDownRefresh();
_this14.externalsunshadeControlIndex = res.data[21900 + index * 15];
}
});
},
// 通风窗
airWindowHander: function airWindowHander(index) {
var _this15 = this;
this.airWindowControlIndex = 0;
this.popairWindowName = index;
var deviceId = this.deviceId;
this.airWindowShow = true;
this.$http({
url: this.api.readControl_readskylight + '?deviceId=' + deviceId,
method: 'GET'
}).then(function (res) {
if (res.code == 200) {
uni.hideLoading();
uni.stopPullDownRefresh();
_this15.airWindowControlIndex = res.data[21250 + index * 23];
}
});
},
getNumberStatus: function getNumberStatus(index) {
if (index == 0) {
return '静止状态';
@ -2190,7 +2631,7 @@ var _default = {
this.delayTimer(0, data);
},
delayTimer: function delayTimer(i, data) {
var _this13 = this;
var _this16 = this;
var that = this;
//整体接口
var j = 5;
@ -2200,12 +2641,12 @@ var _default = {
++i;
if (i == j) {
that.changeData(data);
clearInterval(_this13.timer);
clearInterval(_this16.timer);
}
}, 100);
},
changeData: function changeData(data) {
var _this14 = this;
var _this17 = this;
var that = this;
this.$http({
url: this.api.writeJinHuaControl_write,
@ -2217,7 +2658,7 @@ var _default = {
title: res.msg,
icon: "success"
});
_this14.dataInit();
_this17.dataInit();
} else {
uni.showToast({
title: "失败!",

File diff suppressed because one or more lines are too long

View File

@ -125,11 +125,11 @@ var render = function () {
var _vm = this
var _h = _vm.$createElement
var _c = _vm._self._c || _h
var l1 = _vm.__map(
var l15 = _vm.__map(
_vm.waterAndFertilizerParamsList,
function (item1, index1) {
var $orig = _vm.__get_orig(item1)
var l0 = _vm.__map(item1.childList, function (item2, index2) {
var l0 = _vm.__map(item1.childList_mubiao, function (item2, index2) {
var $orig = _vm.__get_orig(item2)
var m0 = _vm.getTypeList(item2.formula)
var m1 = _vm.getStatus(item2.equipmentNumber, item2.targetValue)
@ -141,9 +141,221 @@ var render = function () {
m2: m2,
}
})
var g0 = item1.childList_mubiao.length
var l1 = _vm.__map(item1.childList_one, function (item2, index2) {
var $orig = _vm.__get_orig(item2)
var m3 = _vm.getTypeList(item2.formula)
var m4 = _vm.getStatus(item2.equipmentNumber, item2.targetValue)
var m5 = _vm.getTypeList(item2.formula)
return {
$orig: $orig,
m3: m3,
m4: m4,
m5: m5,
}
})
var g1 = item1.childList_one.length
var l2 = _vm.__map(item1.childList_two, function (item2, index2) {
var $orig = _vm.__get_orig(item2)
var m6 = _vm.getTypeList(item2.formula)
var m7 = _vm.getStatus(item2.equipmentNumber, item2.targetValue)
var m8 = _vm.getTypeList(item2.formula)
return {
$orig: $orig,
m6: m6,
m7: m7,
m8: m8,
}
})
var g2 = item1.childList_two.length
var l3 = _vm.__map(item1.childList_three, function (item2, index2) {
var $orig = _vm.__get_orig(item2)
var m9 = _vm.getTypeList(item2.formula)
var m10 = _vm.getStatus(item2.equipmentNumber, item2.targetValue)
var m11 = _vm.getTypeList(item2.formula)
return {
$orig: $orig,
m9: m9,
m10: m10,
m11: m11,
}
})
var g3 = item1.childList_three.length
var l4 = _vm.__map(item1.childList_four, function (item2, index2) {
var $orig = _vm.__get_orig(item2)
var m12 = _vm.getTypeList(item2.formula)
var m13 = _vm.getStatus(item2.equipmentNumber, item2.targetValue)
var m14 = _vm.getTypeList(item2.formula)
return {
$orig: $orig,
m12: m12,
m13: m13,
m14: m14,
}
})
var g4 = item1.childList_four.length
var l5 = _vm.__map(item1.childList_five, function (item2, index2) {
var $orig = _vm.__get_orig(item2)
var m15 = _vm.getTypeList(item2.formula)
var m16 = _vm.getStatus(item2.equipmentNumber, item2.targetValue)
var m17 = _vm.getTypeList(item2.formula)
return {
$orig: $orig,
m15: m15,
m16: m16,
m17: m17,
}
})
var g5 = item1.childList_five.length
var l6 = _vm.__map(item1.childList_six, function (item2, index2) {
var $orig = _vm.__get_orig(item2)
var m18 = _vm.getTypeList(item2.formula)
var m19 = _vm.getStatus(item2.equipmentNumber, item2.targetValue)
var m20 = _vm.getTypeList(item2.formula)
return {
$orig: $orig,
m18: m18,
m19: m19,
m20: m20,
}
})
var g6 = item1.childList_six.length
var l7 = _vm.__map(item1.childList_seven, function (item2, index2) {
var $orig = _vm.__get_orig(item2)
var m21 = _vm.getTypeList(item2.formula)
var m22 = _vm.getStatus(item2.equipmentNumber, item2.targetValue)
var m23 = _vm.getTypeList(item2.formula)
return {
$orig: $orig,
m21: m21,
m22: m22,
m23: m23,
}
})
var g7 = item1.childList_seven.length
var l8 = _vm.__map(item1.childList_eight, function (item2, index2) {
var $orig = _vm.__get_orig(item2)
var m24 = _vm.getTypeList(item2.formula)
var m25 = _vm.getStatus(item2.equipmentNumber, item2.targetValue)
var m26 = _vm.getTypeList(item2.formula)
return {
$orig: $orig,
m24: m24,
m25: m25,
m26: m26,
}
})
var g8 = item1.childList_eight.length
var l9 = _vm.__map(item1.childList_nine, function (item2, index2) {
var $orig = _vm.__get_orig(item2)
var m27 = _vm.getTypeList(item2.formula)
var m28 = _vm.getStatus(item2.equipmentNumber, item2.targetValue)
var m29 = _vm.getTypeList(item2.formula)
return {
$orig: $orig,
m27: m27,
m28: m28,
m29: m29,
}
})
var g9 = item1.childList_nine.length
var l10 = _vm.__map(item1.childList_ten, function (item2, index2) {
var $orig = _vm.__get_orig(item2)
var m30 = _vm.getTypeList(item2.formula)
var m31 = _vm.getStatus(item2.equipmentNumber, item2.targetValue)
var m32 = _vm.getTypeList(item2.formula)
return {
$orig: $orig,
m30: m30,
m31: m31,
m32: m32,
}
})
var g10 = item1.childList_ten.length
var l11 = _vm.__map(item1.childList_eleven, function (item2, index2) {
var $orig = _vm.__get_orig(item2)
var m33 = _vm.getTypeList(item2.formula)
var m34 = _vm.getStatus(item2.equipmentNumber, item2.targetValue)
var m35 = _vm.getTypeList(item2.formula)
return {
$orig: $orig,
m33: m33,
m34: m34,
m35: m35,
}
})
var g11 = item1.childList_eleven.length
var l12 = _vm.__map(item1.childList_twelve, function (item2, index2) {
var $orig = _vm.__get_orig(item2)
var m36 = _vm.getTypeList(item2.formula)
var m37 = _vm.getStatus(item2.equipmentNumber, item2.targetValue)
var m38 = _vm.getTypeList(item2.formula)
return {
$orig: $orig,
m36: m36,
m37: m37,
m38: m38,
}
})
var g12 = item1.childList_twelve.length
var l13 = _vm.__map(item1.childList_thirteen, function (item2, index2) {
var $orig = _vm.__get_orig(item2)
var m39 = _vm.getTypeList(item2.formula)
var m40 = _vm.getStatus(item2.equipmentNumber, item2.targetValue)
var m41 = _vm.getTypeList(item2.formula)
return {
$orig: $orig,
m39: m39,
m40: m40,
m41: m41,
}
})
var g13 = item1.childList_thirteen.length
var l14 = _vm.__map(item1.childList_fourteen, function (item2, index2) {
var $orig = _vm.__get_orig(item2)
var m42 = _vm.getTypeList(item2.formula)
var m43 = _vm.getStatus(item2.equipmentNumber, item2.targetValue)
var m44 = _vm.getTypeList(item2.formula)
return {
$orig: $orig,
m42: m42,
m43: m43,
m44: m44,
}
})
var g14 = item1.childList_fourteen.length
return {
$orig: $orig,
l0: l0,
g0: g0,
l1: l1,
g1: g1,
l2: l2,
g2: g2,
l3: l3,
g3: g3,
l4: l4,
g4: g4,
l5: l5,
g5: g5,
l6: l6,
g6: g6,
l7: l7,
g7: g7,
l8: l8,
g8: g8,
l9: l9,
g9: g9,
l10: l10,
g10: g10,
l11: l11,
g11: g11,
l12: l12,
g12: g12,
l13: l13,
g13: g13,
l14: l14,
g14: g14,
}
}
)
@ -151,7 +363,7 @@ var render = function () {
{},
{
$root: {
l1: l1,
l15: l15,
},
}
)
@ -252,6 +464,176 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
//
var _default = {
data: function data() {
return {
@ -430,9 +812,43 @@ var _default = {
if (res.code == 200) {
_this.waterAndFertilizerParamsList = res.data.map(function (item, index) {
return _objectSpread(_objectSpread({}, item), {}, {
childList: []
childList: [],
childList_mubiao: [],
//目标
childList_1: [],
//平均
childList_2: [],
//平均
childList_one: [],
//1#
childList_two: [],
//2#
childList_three: [],
//3#
childList_four: [],
//4#
childList_five: [],
//5#
childList_six: [],
//6#
childList_seven: [],
//7#
childList_eight: [],
//8#
childList_nine: [],
//9#
childList_ten: [],
//10#
childList_eleven: [],
//11#
childList_twelve: [],
//12#
childList_thirteen: [],
//13#
childList_fourteen: [] //14#
});
});
_this.waterAndFertilizerParamsList.forEach(function (i, index) {
_this.$http({
url: (i.equipmentName == 1 ? _this.api.getFs_rtdata : _this.api.getcontrol_rtdata) + "?equipmentId=" + i.deviceId,
@ -446,6 +862,59 @@ var _default = {
});
uni.stopPullDownRefresh();
i.childList = res.data;
i.childList_mubiao = res.data.filter(function (el) {
return _this.getStatus(el.equipmentNumber, el.targetValue) == '目标';
});
i.childList_1 = res.data.filter(function (el) {
return _this.getStatus(el.equipmentNumber, el.targetValue) == '1#平均';
});
i.childList_2 = res.data.filter(function (el) {
return _this.getStatus(el.equipmentNumber, el.targetValue) == '2#平均';
});
i.childList_one = res.data.filter(function (el) {
return _this.getStatus(el.equipmentNumber, el.targetValue) == el.equipmentNumber + '#' && el.equipmentNumber == 1;
});
i.childList_one = [].concat((0, _toConsumableArray2.default)(i.childList_1), (0, _toConsumableArray2.default)(i.childList_one));
i.childList_two = res.data.filter(function (el) {
return _this.getStatus(el.equipmentNumber, el.targetValue) == el.equipmentNumber + '#' && el.equipmentNumber == 2;
});
i.childList_two = [].concat((0, _toConsumableArray2.default)(i.childList_2), (0, _toConsumableArray2.default)(i.childList_two));
i.childList_three = res.data.filter(function (el) {
return _this.getStatus(el.equipmentNumber, el.targetValue) == el.equipmentNumber + '#' && el.equipmentNumber == 3;
});
i.childList_four = res.data.filter(function (el) {
return _this.getStatus(el.equipmentNumber, el.targetValue) == el.equipmentNumber + '#' && el.equipmentNumber == 4;
});
i.childList_five = res.data.filter(function (el) {
return _this.getStatus(el.equipmentNumber, el.targetValue) == el.equipmentNumber + '#' && el.equipmentNumber == 5;
});
i.childList_six = res.data.filter(function (el) {
return _this.getStatus(el.equipmentNumber, el.targetValue) == el.equipmentNumber + '#' && el.equipmentNumber == 6;
});
i.childList_seven = res.data.filter(function (el) {
return _this.getStatus(el.equipmentNumber, el.targetValue) == el.equipmentNumber + '#' && el.equipmentNumber == 7;
});
i.childList_eight = res.data.filter(function (el) {
return _this.getStatus(el.equipmentNumber, el.targetValue) == el.equipmentNumber + '#' && el.equipmentNumber == 8;
});
i.childList_nine = res.data.filter(function (el) {
return _this.getStatus(el.equipmentNumber, el.targetValue) == el.equipmentNumber + '#' && el.equipmentNumber == 9;
});
i.childList_ten = res.data.filter(function (el) {
return _this.getStatus(el.equipmentNumber, el.targetValue) == el.equipmentNumber + '#' && el.equipmentNumber == 10;
});
i.childList_eleven = res.data.filter(function (el) {
return _this.getStatus(el.equipmentNumber, el.targetValue) == el.equipmentNumber + '#' && el.equipmentNumber == 11;
});
i.childList_twelve = res.data.filter(function (el) {
return _this.getStatus(el.equipmentNumber, el.targetValue) == el.equipmentNumber + '#' && el.equipmentNumber == 12;
});
i.childList_thirteen = res.data.filter(function (el) {
return _this.getStatus(el.equipmentNumber, el.targetValue) == el.equipmentNumber + '#' && el.equipmentNumber == 13;
});
i.childList_fourteen = res.data.filter(function (el) {
return _this.getStatus(el.equipmentNumber, el.targetValue) == el.equipmentNumber + '#' && el.equipmentNumber == 14;
});
_this.updateTime = res.data[0].updateTime;
// console.log(this.waterAndFertilizerParamsList);
} else {}
@ -469,6 +938,7 @@ var _default = {
// console.log(waterAndFertilizerParamsList_1,waterAndFertilizerParamsList_10,'00000000000');
_this.waterAndFertilizerParamsList = [].concat((0, _toConsumableArray2.default)(waterAndFertilizerParamsList_1), (0, _toConsumableArray2.default)(waterAndFertilizerParamsList_10));
// console.log(this.waterAndFertilizerParamsList, 'this.waterAndFertilizerParamsList');
}
});
},

File diff suppressed because one or more lines are too long

View File

@ -115,6 +115,13 @@
display: flex;
flex-wrap: wrap;
}
.timeEnvironment .content .waterAndFertilizerParams .detail .line.data-v-34c343d8 {
width: 100%;
height: 1rpx;
background-color: #DDDDDD;
flex-shrink: 0;
margin-top: 20rpx;
}
.timeEnvironment .content .waterAndFertilizerParams .detail .item.data-v-34c343d8 {
width: 50%;
display: flex;

View File

@ -193,16 +193,73 @@ exports.default = void 0;
//
//
//
//
//
// import EZUIKit from 'ezuikit-js';
var _default = {
data: function data() {
return {
// 头部导航背景
background: {
backgroundColor: '#24B383'
}
},
userid: '',
deviceList: [],
liveList: [],
src: ''
};
},
onPullDownRefresh: function onPullDownRefresh() {
this.getEquipmentInfo(this.userid);
},
mounted: function mounted() {
this.userid = uni.getStorageSync('userid');
// console.log(EZUIKit);
this.getEquipmentInfo(this.userid);
},
methods: {
// 根据用户id查询对应的设备数据
getEquipmentInfo: function getEquipmentInfo(userid) {
var _this = this;
uni.showLoading({
title: '加载中...'
});
this.$http({
url: this.api.sel_eqbyid + userid,
method: 'GET'
}).then(function (res) {
if (res.code == 200) {
uni.hideLoading();
uni.stopPullDownRefresh();
_this.deviceList = res.data;
// this.deviceList.forEach(el=>{
// this.getVideoData(el.cameraSerialNumber,el.cameraChannelNumber)
// })
_this.getVideoData("AD6463273", 11);
} else {
_this.$refs.uToast.show({
title: res.msg,
type: 'error'
});
}
});
},
// 获取摄像头得地址
getVideoData: function getVideoData(cameraid, channelid) {
var _this2 = this;
this.$http({
url: this.api.camera_gethls,
method: 'GET',
data: {
cameraid: cameraid,
channelid: channelid
}
}).then(function (res) {
if (res.code == 200) {
_this2.src = res.ezopen;
}
});
},
toVideoLive: function toVideoLive() {
uni.navigateTo({
url: '/pages/videoLive/videoLive'

View File

@ -1,6 +1,7 @@
{
"navigationBarTitleText": "",
"navigationStyle": "custom",
"enablePullDownRefresh": true,
"usingComponents": {
"u-navbar": "/node-modules/uview-ui/components/u-navbar/u-navbar"
}

View File

@ -1 +1 @@
<view class="timeVideo data-v-dd7dcdb8"><u-navbar vue-id="d23ae73c-1" background="{{background}}" is-back="{{true}}" back-icon-color="#FFFFFF" border-bottom="{{false}}" title="实时视频" title-color="#FFFFFF" title-bold="{{true}}" title-size="32" class="data-v-dd7dcdb8" bind:__l="__l"></u-navbar><view class="content data-v-dd7dcdb8"><block wx:for="{{3}}" wx:for-item="item" wx:for-index="index" wx:key="index"><view class="item data-v-dd7dcdb8"><view class="nav data-v-dd7dcdb8"><image src="../../static/video.png" mode class="data-v-dd7dcdb8"></image><text class="data-v-dd7dcdb8">温室#2-摄像机#2</text></view><view class="video data-v-dd7dcdb8"><image src="../../static/video1.png" mode class="data-v-dd7dcdb8"></image></view><view class="timer data-v-dd7dcdb8"><view class="left data-v-dd7dcdb8"><image src="../../static/timer.png" mode class="data-v-dd7dcdb8"></image><text class="data-v-dd7dcdb8">2023-09-20 14:00:55</text></view><view data-event-opts="{{[['tap',[['toVideoLive',['$event']]]]]}}" class="right data-v-dd7dcdb8" bindtap="__e"><image src="../../static/play.png" mode class="data-v-dd7dcdb8"></image><text class="data-v-dd7dcdb8">现场实况</text></view></view></view></block></view></view>
<view class="timeVideo data-v-dd7dcdb8"><u-navbar vue-id="d23ae73c-1" background="{{background}}" is-back="{{true}}" back-icon-color="#FFFFFF" border-bottom="{{false}}" title="实时视频" title-color="#FFFFFF" title-bold="{{true}}" title-size="32" class="data-v-dd7dcdb8" bind:__l="__l"></u-navbar><view class="content data-v-dd7dcdb8"><block wx:for="{{deviceList}}" wx:for-item="item" wx:for-index="index" wx:key="index"><view class="item data-v-dd7dcdb8"><view class="nav data-v-dd7dcdb8"><image src="../../static/video.png" mode class="data-v-dd7dcdb8"></image><text class="data-v-dd7dcdb8">{{item.deviceTypeName+"-摄像机#2"}}</text></view><view class="video data-v-dd7dcdb8"><image src="../../static/video1.png" mode class="data-v-dd7dcdb8"></image></view><view class="timer data-v-dd7dcdb8"><view class="left data-v-dd7dcdb8"><image src="../../static/timer.png" mode class="data-v-dd7dcdb8"></image><text class="data-v-dd7dcdb8">2023-09-20 14:00:55</text></view><view data-event-opts="{{[['tap',[['toVideoLive',['$event']]]]]}}" class="right data-v-dd7dcdb8" bindtap="__e"><image src="../../static/play.png" mode class="data-v-dd7dcdb8"></image><text class="data-v-dd7dcdb8">现场实况</text></view></view></view></block></view></view>

View File

@ -6,8 +6,8 @@
},
"setting": {
"urlCheck": false,
"es6": false,
"postcss": false,
"es6": true,
"postcss": true,
"minified": true,
"newFeature": true,
"bigPackageSizeSupport": true,