| | |
| | | export function searchWaterFacilityApi(data){ |
| | | return request(`/waterFacility/search`,data,'POST') |
| | | } |
| | | //根据id获取设备详情 |
| | | export function getFacilityApi(id){ |
| | | return request(`/waterFacility/get?id=${id}`,{},'GET') |
| | | } |
| | | //设备开阀 |
| | | export function openFacilityApi(data){ |
| | | return request('/api/facility/open',data,'POST') |
| | | } |
| | | //设备关阀 |
| | | export function closeFacilityApi(data){ |
| | | return request('/api/facility/close',data,'POST') |
| | | } |
| | | //获取设备参数 |
| | | export function getParameterApi(sn){ |
| | | return request(`/waterFacility/getParameter?sn=${sn}`,{},'GET') |
| | | } |
| | | |
| | | |
| | | |
| | |
| | | { |
| | | "navigationBarTitleText" : "" |
| | | } |
| | | }, |
| | | { |
| | | "path" : "adminPlatform/inspect", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText" : "" |
| | | } |
| | | }, |
| | | { |
| | | "path" : "adminPlatform/params", |
| | | "style" : |
| | | { |
| | | "navigationBarTitleText" : "" |
| | | } |
| | | } |
| | | ] |
| | | }, |
| | |
| | | } |
| | | } |
| | | //管理员登录 |
| | | const form = ref({userName:'',password:''}) |
| | | const form = ref({userName:'admin',password:'lunhan123456'}) |
| | | const pwdType = ref('password') |
| | | function changePwdType(str){ |
| | | pwdType.value = str == 'pwd' ? 'text' : ( str == 'text' ? 'password' : 'text') |
| | |
| | | } |
| | | }) |
| | | } |
| | | function navTo(){ |
| | | function navTo(facilityId){ |
| | | console.log(13,facilityId) |
| | | uni.navigateTo({ |
| | | url:'/pagesAdmin/adminPlatform/facilityDetail' |
| | | url:`/pagesAdmin/adminPlatform/facilityDetail?id=${facilityId}` |
| | | }) |
| | | } |
| | | onMounted(async() =>{ |
| | |
| | | <text class="item-state-value">{{item.onLineStateView}}</text> |
| | | </view> |
| | | </view> |
| | | <view class="item-right" @click="navTo"> |
| | | <view class="item-right" @click="navTo(item.id)"> |
| | | <text>查看详情</text> |
| | | </view> |
| | | </view> |
| | |
| | | <script setup> |
| | | import{ onLoad } from '@dcloudio/uni-app' |
| | | import{ ref,onMounted } from 'vue' |
| | | import{ getFacilityApi,closeFacilityApi,openFacilityApi } from '../../api/index.js' |
| | | const facilityList = ref([]) |
| | | const facilityControl = ref({ |
| | | saleOpen:false, |
| | | productionOpen:false, |
| | | temperatureOpen:false, |
| | | totalOpen:false, |
| | | }) |
| | | let facilityCode |
| | | let facilityOnLine |
| | | async function getFalicityDetail(){ |
| | | await getFacilityApi(facilityId).then((res) =>{ |
| | | if(res.code == 200){ |
| | | facilityCode = res.data.facilityCode |
| | | facilityOnLine = res.data.onLineState |
| | | facilityList.value = [] |
| | | facilityList.value.push({name:'设备编号:',value:res.data.facilityCode}) |
| | | facilityList.value.push({name:'设备名称:',value:res.data.facilityName}) |
| | | facilityList.value.push({name:'在线状态:',value:res.data.onLineState == 1 ? '在线' : (res.data.onLineState == 0 ? '离线' : '')}) |
| | | facilityList.value.push({name:'设备供应商:',value:res.data.supplier}) |
| | | facilityList.value.push({name:'安装日期:',value:res.data.installDate}) |
| | | |
| | | facilityControl.value.saleOpen = res.data.saleOpen == 1 ? true : false |
| | | facilityControl.value.productionOpen = res.data.productionOpen == 1 ? true : false |
| | | facilityControl.value.temperatureOpen = res.data.temperatureOpen == 1 ? true : false |
| | | } |
| | | }) |
| | | } |
| | | function navTo(){ |
| | | uni.navigateTo({ |
| | | url:`/pagesAdmin/adminPlatform/params?id=${facilityId}` |
| | | }) |
| | | } |
| | | //设备开关操作相关 |
| | | //操作类型(售水开关:01开 02关,制水开关:03开 04关,温控开关:05开 06关,设备开关机:07开 08关-设备开关机代表设备完全开关机,相当于售水、制水、温控全开或全关) |
| | | async function handelControl(status,name){ |
| | | if(facilityOnLine == 0){ |
| | | uni.showToast({ |
| | | title:'离线,无法操作', |
| | | icon:'none' |
| | | }) |
| | | return |
| | | } |
| | | let textInfo |
| | | if(name == 'totalOnOff'){ |
| | | textInfo = status === false ? '确认关闭设备全部状态?':'确认开启设备全部状态?' |
| | | }else{ |
| | | textInfo = status === true ? '确认关闭状态?':'确认开启状态?' |
| | | } |
| | | |
| | | uni.showModal({ |
| | | title:'提示', |
| | | content:textInfo, |
| | | success:(res) =>{ |
| | | if(res.confirm){ |
| | | |
| | | async function handelOpen(setStatus){ |
| | | await openFacilityApi({data:setStatus,sn:facilityCode}).then((res) =>{ |
| | | if(res.code == 200){ |
| | | setTimeout(async() => { |
| | | await getFalicityDetail() |
| | | }, 4000); |
| | | uni.showToast({ |
| | | title:'成功!三秒刷新' |
| | | }) |
| | | }else{ |
| | | uni.showToast({ |
| | | title:'操作失败!', |
| | | icon:'none' |
| | | |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | |
| | | async function handelClose(setStatus){ |
| | | await closeFacilityApi({data:setStatus,sn:facilityCode}).then((res) =>{ |
| | | if(res.code == 200){ |
| | | setTimeout(async() => { |
| | | await getFalicityDetail() |
| | | }, 4000); |
| | | uni.showToast({ |
| | | title:'成功!三秒刷新' |
| | | }) |
| | | }else{ |
| | | uni.showToast({ |
| | | title:'操作失败!', |
| | | icon:'none' |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | |
| | | switch(name){ |
| | | case 'saleOpen': |
| | | status == true ? handelClose('02') : handelOpen('01'); |
| | | break; |
| | | case 'productionOpen': |
| | | status == true ? handelClose('04') : handelOpen('03'); |
| | | break; |
| | | case 'temperatureOpen': |
| | | status == true ? handelClose('06') : handelOpen('05'); |
| | | break; |
| | | case 'totalOnOff': |
| | | status == true ? handelOpen('07') : handelClose('08'); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | let facilityId |
| | | onLoad(async(option) =>{ |
| | | console.log(14,option) |
| | | facilityId = option.id |
| | | await getFalicityDetail(option.id) |
| | | }) |
| | | |
| | | </script> |
| | | <template> |
| | | <view> |
| | | <view class="container"> |
| | | <navbar title='设备详情'></navbar> |
| | | 设备详情 |
| | | <view class="content"> |
| | | <view class="detail-box"> |
| | | <view class="title">设备详情</view> |
| | | <view class="detail"> |
| | | <view class="info"> |
| | | <view class="item" v-for="(item,index) in facilityList" :key="index"> |
| | | <view class="item-text">{{item.name}} </view> |
| | | <view class="item-value">{{item.value}}</view> |
| | | </view> |
| | | <view @click="navTo" class="info-params"><view class="params">设备参数设置</view></view> |
| | | </view> |
| | | <view class="control"> |
| | | <view class="switch-item"> |
| | | <text class="switch-text">售水开关</text> |
| | | <view class="switch-icon" @click="handelControl(facilityControl.saleOpen,'saleOpen')"> |
| | | <image class="icon-on-off" v-if="facilityControl.saleOpen" src="../../static/images/maintain/switch-on.png"></image> |
| | | <image class="icon-on-off" v-else src="../../static/images/maintain/switch-off.png"></image> |
| | | </view> |
| | | </view> |
| | | <view class="switch-item"> |
| | | <text class="switch-text">制水开关</text> |
| | | <view class="switch-icon" @click="handelControl(facilityControl.productionOpen,'productionOpen')"> |
| | | <image class="icon-on-off" v-if="facilityControl.productionOpen" src="../../static/images/maintain/switch-on.png"></image> |
| | | <image class="icon-on-off" v-else src="../../static/images/maintain/switch-off.png"></image> |
| | | </view> |
| | | </view> |
| | | <view class="switch-item"> |
| | | <text class="switch-text">温控开关</text> |
| | | <view class="switch-icon" @click="handelControl(facilityControl.temperatureOpen,'temperatureOpen')"> |
| | | <image class="icon-on-off" v-if="facilityControl.temperatureOpen" src="../../static/images/maintain/switch-on.png"></image> |
| | | <image class="icon-on-off" v-else src="../../static/images/maintain/switch-off.png"></image> |
| | | </view> |
| | | </view> |
| | | <view class="switch-item"> |
| | | <text class="switch-text">总开开关</text> |
| | | <view class="total-control"> |
| | | <view class="control-btn" @click="handelControl(true,'totalOnOff')">总开</view> |
| | | <view class="control-btn" @click="handelControl(false,'totalOnOff')">总关</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | |
| | | <style lang="scss" scoped> |
| | | |
| | | .container{ |
| | | width:100%; |
| | | box-sizing: border-box; |
| | | .content{ |
| | | height:calc(100vh - 176rpx); |
| | | background: linear-gradient(to bottom,#8BC1FC 0%,#D2F2FE 30%,#D2F2FE 100%); |
| | | padding:60rpx 40rpx 100rpx; |
| | | box-sizing: border-box; |
| | | .detail-box{ |
| | | width:100%; |
| | | height:1100rpx; |
| | | background:rgba(255,255,255,0.7); |
| | | border-radius:5rpx; |
| | | padding:40rpx; |
| | | box-sizing: border-box; |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | .title{ |
| | | color: #575858; |
| | | } |
| | | .detail{ |
| | | width:100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | .info{ |
| | | width:100%; |
| | | display: flex; |
| | | flex-direction: column; |
| | | .info-params{ |
| | | width:100%; |
| | | display: flex; |
| | | .params{ |
| | | margin-top:30rpx; |
| | | color: #4571c3; |
| | | width:220rpx; |
| | | height:60rpx; |
| | | border-radius:15rpx; |
| | | // border:solid 1rpx #678cc3; |
| | | box-shadow:0 0 6rpx 1rpx rgba(143, 182, 255, 0.3) inset; |
| | | text-align: center; |
| | | line-height:60rpx; |
| | | font-size:30rpx; |
| | | background:rgba(126, 171, 255, 0.2); |
| | | } |
| | | } |
| | | .item{ |
| | | width:100%; |
| | | display: flex; |
| | | flex-wrap: nowrap; |
| | | margin-top:30rpx; |
| | | border-bottom:solid 1rpx #dbe7e8; |
| | | padding-bottom:10rpx; |
| | | .item-text{ |
| | | color: #575858; |
| | | } |
| | | .item-value{ |
| | | color: #4571c3; |
| | | } |
| | | } |
| | | } |
| | | .control{ |
| | | height:400rpx; |
| | | width:100%; |
| | | display: flex; |
| | | flex-direction:column; |
| | | justify-content:space-evenly; |
| | | align-items: flex-start; |
| | | margin-top:20rpx; |
| | | .switch-item{ |
| | | width:100%; |
| | | border-bottom:solid 1rpx #dbe7e8; |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | .switch-text{ |
| | | color: #697fb3; |
| | | font-weight:600; |
| | | } |
| | | .switch-icon{ |
| | | .icon-on-off{ |
| | | width:80rpx; |
| | | height:80rpx; |
| | | } |
| | | } |
| | | .total-control{ |
| | | height: 80rpx; |
| | | display: flex; |
| | | align-items: center; |
| | | .control-btn{ |
| | | width:110rpx; |
| | | height:50rpx; |
| | | background: #409eff; |
| | | border-radius:10rpx; |
| | | text-align: center; |
| | | line-height: 50rpx; |
| | | margin-left:20rpx; |
| | | color:#fff; |
| | | font-size:30rpx; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | </view> |
| | | <text>设备管理</text> |
| | | </view> |
| | | <view class="item" style="border-bottom: 1rpx solid #c8c8c8;"> |
| | | <view @click="navTo('/pagesAdmin/adminPlatform/inspect')" class="item" style="border-bottom: 1rpx solid #c8c8c8;"> |
| | | <view class="item-img-box icon2" > |
| | | <image class="item-img" src="../../static/images/maintain/fun-icon2.svg"></image> |
| | | </view> |
对比新文件 |
| | |
| | | <template> |
| | | <view class="container"> |
| | | <navbar title = '巡检管理'></navbar> |
| | | <view class="content"></view> |
| | | 巡检管理 |
| | | </view> |
| | | </template> |
| | | |
| | | <script setup> |
| | | |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .container{ |
| | | width:100%; |
| | | box-sizing: border-box; |
| | | .content{ |
| | | height:calc(100vh - 176rpx); |
| | | background: linear-gradient(to bottom,#8BC1FC 0%,#D2F2FE 30%,#D2F2FE 100%); |
| | | padding:30rpx 40rpx 100rpx; |
| | | box-sizing: border-box; |
| | | } |
| | | } |
| | | |
| | | </style> |
对比新文件 |
| | |
| | | <script setup> |
| | | import { onLoad } from '@dcloudio/uni-app' |
| | | import { getFacilityApi,getParameterApi } from '../../api/index.js' |
| | | import { ref,onMounted } from 'vue'; |
| | | |
| | | let facilityId |
| | | let onLineState |
| | | let facilityCode |
| | | onLoad(async(option) =>{ |
| | | console.log(14,option) |
| | | facilityId = option.id |
| | | await getFacilityById() |
| | | }) |
| | | onMounted(async() =>{ |
| | | await handleSetting() |
| | | }) |
| | | async function getFacilityById(){ |
| | | await getFacilityApi(facilityId).then((res) =>{ |
| | | onLineState = res.data.onLineState |
| | | facilityCode = res.data.facilityCode |
| | | }) |
| | | } |
| | | //表单相关 |
| | | const formRef = ref() |
| | | const formData = ref({}) |
| | | function initData(){ |
| | | formData.value = { |
| | | sn: '', |
| | | swipingCardAmount: 100, |
| | | pulse: 450, |
| | | swipingCardTime: 45, |
| | | |
| | | insertCoinsCount: 5, |
| | | insertCoinsTime: 22, |
| | | swipingCardCount: 7500, |
| | | recycleAmountTime: 60, |
| | | lightFetchWaterTime: 60, |
| | | |
| | | lockFetchWaterTime: 60, |
| | | produceWaterTime: 1, |
| | | wasteWaterTime: 10, |
| | | wasteWaterIntervalTime: 10, |
| | | ozoneTime: 10, |
| | | |
| | | ozoneIntervalTime: 60, |
| | | temperatureLower: 10, |
| | | temperatureUpper: 15, |
| | | openAdvertTime: '19:10', |
| | | closeAdvertTime: '23:30', |
| | | |
| | | recycleWashing: 10, |
| | | recycleWashingInterval: 4, |
| | | runningMode: 1, |
| | | isReport: 1, |
| | | wxFetchWaterAmount: 100, |
| | | |
| | | wxFetchWaterTime: 45, |
| | | wxFetchWaterCount: 7500, |
| | | coinsFetchWater: 3750, |
| | | type:'', |
| | | } |
| | | } |
| | | //表单校验 |
| | | |
| | | const rulesData = ref({ |
| | | swipingCardAmount: { |
| | | rules:[ |
| | | {required: true,errorMessage: '请输入参数'}, |
| | | {pattern:/^(1|[1-9]\d{0,2}|[1-5]\d{3}|6000)$/,errorMessage: '超出范围,请输入范围内参数'}, |
| | | ], |
| | | }, |
| | | pulse: { |
| | | rules:[ |
| | | {required: true,errorMessage: '请输入参数'}, |
| | | {pattern:/^([1-9]\d{0,2}|1\d{3}|2000)$/,errorMessage: '超出范围,请输入范围内参数'}, |
| | | ], |
| | | }, |
| | | swipingCardTime:{ |
| | | rules:[ |
| | | {required: true,errorMessage: '请输入参数'}, |
| | | {pattern:/^([1-9]\d{0,2}|1000)$/,errorMessage: '超出范围,请输入范围内参数'}, |
| | | ], |
| | | }, |
| | | |
| | | insertCoinsCount: { |
| | | rules:[ |
| | | {required: true,errorMessage: '请输入参数'}, |
| | | {pattern:/^([1-9]|10)$/,errorMessage: '超出范围,请输入范围内参数'}, |
| | | ], |
| | | }, |
| | | insertCoinsTime: { |
| | | rules:[ |
| | | {required: true,errorMessage: '请输入参数'}, |
| | | {pattern:/^([1-9]\d{0,2}|1000)$/,errorMessage: '超出范围,请输入范围内参数'}, |
| | | ], |
| | | }, |
| | | swipingCardCount: { |
| | | rules:[ |
| | | {required: true,errorMessage: '请输入参数'}, |
| | | {pattern:/^(1|([1-9]\d{0,4}|[1-5]\d{4}|6[0-4]\d{3}|65000))$/,errorMessage: '超出范围,请输入范围内参数'}, |
| | | ], |
| | | }, |
| | | recycleAmountTime: { |
| | | rules:[ |
| | | {required: true,errorMessage: '请输入参数'}, |
| | | {pattern:/^(1[0-9]{1,2}|2[0-3][0-9]|240)$/,errorMessage: '超出范围,请输入范围内参数'}, |
| | | ], |
| | | }, |
| | | lightFetchWaterTime: { |
| | | rules:[ |
| | | {required: true,errorMessage: '请输入参数'}, |
| | | {pattern:/^([5-9]|[1-9]\d|1\d{2}|2[0-3]\d|240)$/,errorMessage: '超出范围,请输入范围内参数'}, |
| | | ], |
| | | }, |
| | | |
| | | lockFetchWaterTime:{ |
| | | rules:[ |
| | | {required: true,errorMessage: '请输入参数'}, |
| | | {pattern:/^([5-9]|[1-9]\d|1\d{2}|2[0-3]\d|240)$/,errorMessage: '超出范围,请输入范围内参数'}, |
| | | ], |
| | | }, |
| | | produceWaterTime:{ |
| | | rules:[ |
| | | {required: true,errorMessage: '请输入参数'}, |
| | | {pattern:/^([1-5]\d{0,1}|60)$/,errorMessage: '超出范围,请输入范围内参数'}, |
| | | ], |
| | | }, |
| | | wasteWaterTime: { |
| | | rules:[ |
| | | {required: true,errorMessage: '请输入参数'}, |
| | | {pattern:/^(1[0-9]{1,2}|2[0-3][0-9]|240)$/,errorMessage: '超出范围,请输入范围内参数'}, |
| | | ], |
| | | }, |
| | | wasteWaterIntervalTime: { |
| | | rules:[ |
| | | {required: true,errorMessage: '请输入参数'}, |
| | | {pattern:/^([5-9]|[1-9]\d|1\d{2}|2[0-3]\d|240)$/,errorMessage: '超出范围,请输入范围内参数'}, |
| | | ], |
| | | }, |
| | | ozoneTime: { |
| | | rules:[ |
| | | {required: true,errorMessage: '请输入参数'}, |
| | | {pattern:/^([5-9]|[1-9]\d|1\d{2}|2[0-3]\d|240)$/,errorMessage: '超出范围,请输入范围内参数'}, |
| | | ], |
| | | }, |
| | | |
| | | ozoneIntervalTime: { |
| | | rules:[ |
| | | {required: true,errorMessage: '请输入参数'}, |
| | | {pattern:/^([3-9]\d|1\d{2}|2[0-3]\d|240)$/,errorMessage: '超出范围,请输入范围内参数'}, |
| | | ], |
| | | }, |
| | | temperatureLower: { |
| | | rules:[ |
| | | {required: true,errorMessage: '请输入参数'}, |
| | | {pattern:/^([1-9]|[1-2]\d|3[0-5])$/,errorMessage: '超出范围,请输入范围内参数'}, |
| | | ], |
| | | }, |
| | | temperatureUpper:{ |
| | | rules:[ |
| | | {required: true,errorMessage: '请输入参数'}, |
| | | {pattern:/^[3-9]|[1-4]\d|50$/,errorMessage: '超出范围,请输入范围内参数'}, |
| | | ], |
| | | }, |
| | | openAdvertTime: { |
| | | rules:[ |
| | | {required: true,errorMessage: '请输入参数'}, |
| | | ], |
| | | }, |
| | | closeAdvertTime: { |
| | | rules:[ |
| | | {required: true,errorMessage: '请输入参数'}, |
| | | ], |
| | | }, |
| | | |
| | | recycleWashing: { |
| | | rules:[ |
| | | {required: true,errorMessage: '请输入参数'}, |
| | | {pattern:/^([1-9]\d{0,1}|0)$/,errorMessage: '超出范围,请输入范围内参数'}, |
| | | ], |
| | | }, |
| | | recycleWashingInterval:{ |
| | | rules:[ |
| | | {required: true,errorMessage: '请输入参数'}, |
| | | {pattern:/^([1-9]|10)$/,errorMessage: '超出范围,请输入范围内参数'}, |
| | | ], |
| | | }, |
| | | runningMode: { |
| | | rules:[ |
| | | {required: true,errorMessage: '请输入参数'}, |
| | | {pattern:/^1|2$/,errorMessage: '超出范围,请输入范围内参数'}, |
| | | ], |
| | | }, |
| | | isReport: { |
| | | rules:[ |
| | | {required: true,errorMessage: '请输入参数'}, |
| | | {pattern:/^1|2$/,errorMessage: '超出范围,请输入范围内参数'}, |
| | | ], |
| | | }, |
| | | wxFetchWaterAmount:{ |
| | | rules:[ |
| | | {required: true,errorMessage: '请输入参数'}, |
| | | {pattern:/^(1|[1-9]\d{0,2}|[1-5]\d{3}|6000)$/,errorMessage: '超出范围,请输入范围内参数'}, |
| | | ], |
| | | }, |
| | | |
| | | wxFetchWaterTime: { |
| | | rules:[ |
| | | {required: true,errorMessage: '请输入参数'}, |
| | | {pattern:/^([1-9]\d{0,3}|10000)$/,errorMessage: '超出范围,请输入范围内参数'}, |
| | | ], |
| | | }, |
| | | wxFetchWaterCount:{ |
| | | rules:[ |
| | | {required: true,errorMessage: '请输入参数'}, |
| | | {pattern:/^(1|([1-9]\d{0,4}|[1-5]\d{4}|6[0-4]\d{3}|65000))$/,errorMessage: '超出范围,请输入范围内参数'}, |
| | | ], |
| | | }, |
| | | coinsFetchWater:{ |
| | | rules:[ |
| | | {required: true,errorMessage: '请输入参数'}, |
| | | {pattern:/^(1|([1-9]\d{0,4}|[1-5]\d{4}|6[0-4]\d{3}|65000))$/,errorMessage: '超出范围,请输入范围内参数'}, |
| | | ], |
| | | }, |
| | | }); |
| | | |
| | | //参数设置按钮,请求设备参数 |
| | | async function handleSetting(){ |
| | | await getParameterApi(facilityCode).then((res) =>{ |
| | | //参数不为空 |
| | | if(res.data != null){ |
| | | formData.value = res.data |
| | | }else{ |
| | | //参数为空置为默认 |
| | | initData() |
| | | formData.value.sn = facilityCode |
| | | } |
| | | }) |
| | | } |
| | | //type:1:修改参数,0:恢复出厂设置 |
| | | //恢复出厂设置 |
| | | async function restore(){ |
| | | if(onLineState == 1){ |
| | | |
| | | let sn = formData.value.sn |
| | | initData() |
| | | formData.value.type = 0 |
| | | formData.value.sn = sn |
| | | await setParams(formData.value) |
| | | }else{ |
| | | uni.showToast({ |
| | | title:'离线,无法操作', |
| | | icon:'none' |
| | | }) |
| | | } |
| | | } |
| | | //修改参数 |
| | | async function save(){ |
| | | if(onLineState.value == 1){ |
| | | |
| | | formData.value.type = 1 |
| | | formRef.value.validate.then(async() =>{ |
| | | await setParams(formData.value) |
| | | }).catch(() =>{}) |
| | | }else{ |
| | | uni.showToast({ |
| | | title:'离线,无法操作', |
| | | icon:'none' |
| | | }) |
| | | } |
| | | } |
| | | |
| | | async function setParams(formParams){ |
| | | await facilityList().editParameter(formParams).then((res) =>{ |
| | | if(res.code == 200){ |
| | | uni.showToast({ |
| | | title:'成功!三秒刷新' |
| | | }) |
| | | setTimeout(async() =>{ |
| | | await handleSetting() |
| | | },4000) |
| | | }else{ |
| | | uni.showToast({ |
| | | title:'网络错误', |
| | | icon:'none' |
| | | }) |
| | | } |
| | | }) |
| | | } |
| | | </script> |
| | | <template> |
| | | <view> |
| | | <view class="container"> |
| | | <navbar title = '参数设置'></navbar> |
| | | <view class="content"> |
| | | <view class="head"> |
| | | <text>设备参数设置</text> |
| | | </view> |
| | | <view class="main"> |
| | | <view class="form-box"> |
| | | <uni-forms ref="formRef" :modelValue="formData" :rules="rulesData"> |
| | | <view class="devide-name">水价设置:</view> |
| | | <uni-group> |
| | | <uni-forms-item class="form-item" name="swipingCardAmount"> |
| | | <text style="color:#4784c7">刷卡扣费金额:(范围:10-6000分)</text> |
| | | <uni-easyinput type="text" v-model="formData.swipingCardAmount" placeholder="请输入姓名" /> |
| | | </uni-forms-item> |
| | | <uni-forms-item class="form-item" name="swipingCardTime"> |
| | | <text style="color:#4784c7">刷卡打水时间:(范围:1-1000秒)</text> |
| | | <uni-easyinput type="text" v-model="formData.swipingCardTime" placeholder="请输入姓名" /> |
| | | </uni-forms-item> |
| | | <uni-forms-item class="form-item" name="swipingCardCount"> |
| | | <text style="color:#4784c7">刷卡打水水量:(范围:1-65000毫升)</text> |
| | | <uni-easyinput type="text" v-model="formData.swipingCardCount" placeholder="请输入姓名" /> |
| | | </uni-forms-item> |
| | | <uni-forms-item class="form-item" name="insertCoinsCount"> |
| | | <text style="color:#4784c7">投币数量设置:(范围:1-10个)</text> |
| | | <uni-easyinput type="text" v-model="formData.insertCoinsCount" placeholder="请输入姓名" /> |
| | | </uni-forms-item> |
| | | <uni-forms-item class="form-item" name="insertCoinsTime"> |
| | | <text style="color:#4784c7">5角投币打水时间:(范围:1-1000秒)</text> |
| | | <uni-easyinput type="text" v-model="formData.insertCoinsTime" placeholder="请输入姓名" /> |
| | | </uni-forms-item> |
| | | <uni-forms-item class="form-item" name="coinsFetchWater"> |
| | | <text style="color:#4784c7">5角投币打水水量:(范围:1-65000毫升)</text> |
| | | <uni-easyinput type="text" v-model="formData.coinsFetchWater" placeholder="请输入姓名" /> |
| | | </uni-forms-item> |
| | | <uni-forms-item class="form-item" name="wxFetchWaterAmount"> |
| | | <text style="color:#4784c7">微信打水金额:(范围:1-6000分)</text> |
| | | <uni-easyinput type="text" v-model="formData.wxFetchWaterAmount" placeholder="请输入姓名" /> |
| | | </uni-forms-item> |
| | | <uni-forms-item class="form-item" name="wxFetchWaterTime"> |
| | | <text style="color:#4784c7">微信打水时间:(范围:1-1000秒)</text> |
| | | <uni-easyinput type="text" v-model="formData.wxFetchWaterTime" placeholder="请输入姓名" /> |
| | | </uni-forms-item> |
| | | <uni-forms-item class="form-item" name="wxFetchWaterCount"> |
| | | <text style="color:#4784c7">微信打水量:(范围:1-65000毫升)</text> |
| | | <uni-easyinput type="text" v-model="formData.wxFetchWaterCount" placeholder="请输入姓名" /> |
| | | </uni-forms-item> |
| | | </uni-group> |
| | | |
| | | <view class="devide-name">系统参数:</view> |
| | | <uni-group> |
| | | <uni-forms-item class="form-item" name="runningMode"> |
| | | <text style="color:#4784c7">计费模式:(范围:1时间,2流量)</text> |
| | | <uni-easyinput type="text" v-model="formData.runningMode" placeholder="请输入姓名" /> |
| | | </uni-forms-item> |
| | | <uni-forms-item class="form-item" name="pulse"> |
| | | <text style="color:#4784c7">流量计脉冲数:(范围:1-2000个)</text> |
| | | <uni-easyinput type="text" v-model="formData.pulse" placeholder="请输入姓名" /> |
| | | </uni-forms-item> |
| | | <uni-forms-item class="form-item" name="recycleAmountTime"> |
| | | <text style="color:#4784c7">钱数回收时间:(范围:10-240秒)</text> |
| | | <uni-easyinput type="text" v-model="formData.recycleAmountTime" placeholder="请输入姓名" /> |
| | | </uni-forms-item> |
| | | <uni-forms-item class="form-item" name="lightFetchWaterTime"> |
| | | <text style="color:#4784c7">打水灯延时:(范围:5-240秒)</text> |
| | | <uni-easyinput type="text" v-model="formData.lightFetchWaterTime" placeholder="请输入姓名" /> |
| | | </uni-forms-item> |
| | | <uni-forms-item class="form-item" name="lockFetchWaterTime"> |
| | | <text style="color:#4784c7">打水锁延时:(范围:5-240秒)</text> |
| | | <uni-easyinput type="text" v-model="formData.lockFetchWaterTime" placeholder="请输入姓名" /> |
| | | </uni-forms-item> |
| | | <uni-forms-item class="form-item" name="isReport"> |
| | | <text style="color:#4784c7">是否语音播报金额:(范围:1开启,2关闭)</text> |
| | | <uni-easyinput type="text" v-model="formData.isReport" placeholder="请输入姓名" /> |
| | | </uni-forms-item> |
| | | </uni-group> |
| | | |
| | | <view class="devide-name">制水设置:</view> |
| | | <uni-group> |
| | | <uni-forms-item class="form-item" name="produceWaterTime"> |
| | | <text style="color:#4784c7">制水延时:(范围:1-60分)</text> |
| | | <uni-easyinput type="text" v-model="formData.produceWaterTime" placeholder="请输入姓名" /> |
| | | </uni-forms-item> |
| | | <uni-forms-item class="form-item" name="wasteWaterTime"> |
| | | <text style="color:#4784c7">废水重洗时间:(范围:5-240秒)</text> |
| | | <uni-easyinput type="text" v-model="formData.wasteWaterTime" placeholder="请输入姓名" /> |
| | | </uni-forms-item> |
| | | <uni-forms-item class="form-item" name="wasteWaterIntervalTime"> |
| | | <text style="color:#4784c7">废水重洗间隔:(范围:30-240秒)</text> |
| | | <uni-easyinput type="text" v-model="formData.wasteWaterIntervalTime" placeholder="请输入姓名" /> |
| | | </uni-forms-item> |
| | | <uni-forms-item class="form-item" name="ozoneTime"> |
| | | <text style="color:#4784c7">臭氧杀菌时间:(范围:1-240秒)</text> |
| | | <uni-easyinput type="text" v-model="formData.ozoneTime" placeholder="请输入姓名" /> |
| | | </uni-forms-item> |
| | | <uni-forms-item class="form-item" name="ozoneIntervalTime"> |
| | | <text style="color:#4784c7">臭氧杀菌间隔:(范围:1-240秒)</text> |
| | | <uni-easyinput type="text" v-model="formData.ozoneIntervalTime" placeholder="请输入姓名" /> |
| | | </uni-forms-item> |
| | | <uni-forms-item class="form-item" name="temperatureLower"> |
| | | <text style="color:#4784c7">加热温度下限:(范围:1-35℃)</text> |
| | | <uni-easyinput type="text" v-model="formData.temperatureLower" placeholder="请输入姓名" /> |
| | | </uni-forms-item> |
| | | <uni-forms-item class="form-item" name="temperatureUpper"> |
| | | <text style="color:#4784c7">加热温度上限:(范围:3-50℃)</text> |
| | | <uni-easyinput type="text" v-model="formData.temperatureUpper" placeholder="请输入姓名" /> |
| | | </uni-forms-item> |
| | | <uni-forms-item class="form-item" name="openAdvertTime"> |
| | | <text style="color:#4784c7;font-size: 26rpx">广告灯开启时间:(范围:00:00~23:59时分)</text> |
| | | <uni-easyinput type="text" v-model="formData.openAdvertTime" placeholder="请输入姓名" /> |
| | | </uni-forms-item> |
| | | <uni-forms-item class="form-item" name="closeAdvertTime"> |
| | | <text style="color:#4784c7;font-size: 26rpx">广告灯关闭时间:(范围:00:00~23:59时分)</text> |
| | | <uni-easyinput type="text" v-model="formData.closeAdvertTime" placeholder="请输入姓名" /> |
| | | </uni-forms-item> |
| | | <uni-forms-item class="form-item" name="recycleWashing"> |
| | | <text style="color:#4784c7">循环重洗时间:(范围:0-99秒)</text> |
| | | <uni-easyinput type="text" v-model="formData.recycleWashing" placeholder="请输入姓名" /> |
| | | </uni-forms-item> |
| | | <uni-forms-item class="form-item" name="recycleWashingInterval"> |
| | | <text style="color:#4784c7">循环重洗间隔:(范围:1-10小时)</text> |
| | | <uni-easyinput type="text" v-model="formData.recycleWashingInterval" placeholder="请输入姓名" /> |
| | | </uni-forms-item> |
| | | </uni-group> |
| | | </uni-forms> |
| | | </view> |
| | | <view class="handle-btn"> |
| | | <view class="left" @click="restore">恢复出厂设置</view> |
| | | <view class="right" @click="save">保存设置</view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </view> |
| | | </template> |
| | | <style lang="scss" scoped> |
| | | .container{ |
| | | width:100%; |
| | | box-sizing: border-box; |
| | | .content{ |
| | | height:calc(100vh - 176rpx); |
| | | background: linear-gradient(to bottom,#8BC1FC 0%,#D2F2FE 30%,#D2F2FE 100%); |
| | | padding:30rpx 40rpx 100rpx; |
| | | box-sizing: border-box; |
| | | .head{ |
| | | width:100%; |
| | | height: 100rpx; |
| | | background-color: rgba(255,255,255,0.6); |
| | | display: flex; |
| | | align-items: center; |
| | | justify-content: center; |
| | | font-size: 38rpx; |
| | | color: #4784c7; |
| | | letter-spacing: 2rpx; |
| | | box-shadow: 0 4rpx 4rpx 1rpx rgba(71,132,199,0.6); |
| | | } |
| | | .main{ |
| | | width:100%; |
| | | height:calc(100% - 100rpx); |
| | | background-color: rgba(255,255,255,0.6); |
| | | display: flex; |
| | | flex-direction: column; |
| | | align-items: center; |
| | | justify-content: center; |
| | | margin-top:30rpx; |
| | | padding:30rpx 40rpx; |
| | | box-sizing:border-box; |
| | | .handle-btn{ |
| | | height:60rpx; |
| | | width:100%; |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | text-align: center; |
| | | margin-top:50rpx; |
| | | .left{ |
| | | border: 1rpx solid #5694f0; |
| | | color: #409EFF; |
| | | background-color:#fff; |
| | | border-radius:15rpx; |
| | | line-height:60rpx; |
| | | margin-right:60rpx; |
| | | width: 215rpx; |
| | | font-size: 30rpx; |
| | | } |
| | | .left:hover{ |
| | | opacity: 0.8; |
| | | } |
| | | .right{ |
| | | background-color:#409EFF; |
| | | color: #fff; |
| | | border-radius:15rpx; |
| | | line-height:60rpx; |
| | | width: 215rpx; |
| | | font-size: 30rpx; |
| | | } |
| | | .right:hover{ |
| | | opacity:0.8; |
| | | } |
| | | } |
| | | .form-box{ |
| | | width: 580rpx; |
| | | height:90%; |
| | | overflow: scroll; |
| | | .devide-name{ |
| | | width:100%; |
| | | color: #30b351; |
| | | margin:20rpx 0; |
| | | } |
| | | .form-item{ |
| | | width:100%; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | </style> |
| | |
| | | function searchWaterFacilityApi(data) { |
| | | return util_request.request(`/waterFacility/search`, data, "POST"); |
| | | } |
| | | function getFacilityApi(id) { |
| | | return util_request.request(`/waterFacility/get?id=${id}`, {}, "GET"); |
| | | } |
| | | function openFacilityApi(data) { |
| | | return util_request.request("/api/facility/open", data, "POST"); |
| | | } |
| | | function closeFacilityApi(data) { |
| | | return util_request.request("/api/facility/close", data, "POST"); |
| | | } |
| | | function getParameterApi(sn) { |
| | | return util_request.request(`/waterFacility/getParameter?sn=${sn}`, {}, "GET"); |
| | | } |
| | | exports.adminDetailApi = adminDetailApi; |
| | | exports.adminLoginApi = adminLoginApi; |
| | | exports.askShareApi = askShareApi; |
| | |
| | | exports.balanceChangeApi = balanceChangeApi; |
| | | exports.balanceStatisticsApi = balanceStatisticsApi; |
| | | exports.buyWaterApi = buyWaterApi; |
| | | exports.closeFacilityApi = closeFacilityApi; |
| | | exports.creatUserArchive = creatUserArchive; |
| | | exports.deleteAddressApi = deleteAddressApi; |
| | | exports.editAddressApi = editAddressApi; |
| | | exports.editShareTypeApi = editShareTypeApi; |
| | | exports.editUserInfoApi = editUserInfoApi; |
| | | exports.getAddressApi = getAddressApi; |
| | | exports.getFacilityApi = getFacilityApi; |
| | | exports.getParameterApi = getParameterApi; |
| | | exports.getParentAreaApi = getParentAreaApi; |
| | | exports.getPriceBySnApi = getPriceBySnApi; |
| | | exports.getRegionApi = getRegionApi; |
| | |
| | | exports.goodsSearchTypeApi = goodsSearchTypeApi; |
| | | exports.infoBreakdownApi = infoBreakdownApi; |
| | | exports.integralConvertApi = integralConvertApi; |
| | | exports.openFacilityApi = openFacilityApi; |
| | | exports.paymentChangeApi = paymentChangeApi; |
| | | exports.pointsExchangeApi = pointsExchangeApi; |
| | | exports.pointsSearchApi = pointsSearchApi; |
| | |
| | | "./pagesAdmin/adminPlatform/home.js"; |
| | | "./pagesAdmin/adminPlatform/facility.js"; |
| | | "./pagesAdmin/adminPlatform/facilityDetail.js"; |
| | | "./pagesAdmin/adminPlatform/inspect.js"; |
| | | "./pagesAdmin/adminPlatform/params.js"; |
| | | "./pagesPoints/pointsMall/index.js"; |
| | | "./pagesPoints/pointsMall/pointsGetRecord/index.js"; |
| | | "./pagesPoints/pointsMall/pointsExchangeRecord/index.js"; |
| | |
| | | "pages": [ |
| | | "adminPlatform/home", |
| | | "adminPlatform/facility", |
| | | "adminPlatform/facilityDetail" |
| | | "adminPlatform/facilityDetail", |
| | | "adminPlatform/inspect", |
| | | "adminPlatform/params" |
| | | ] |
| | | }, |
| | | { |
| | |
| | | "use strict"; |
| | | const _imports_0$f = "/static/images/login/logo.png"; |
| | | const _imports_1$9 = "/static/images/login/wx.png"; |
| | | const _imports_0$g = "/static/images/login/logo.png"; |
| | | const _imports_1$a = "/static/images/login/wx.png"; |
| | | const _imports_2$2 = "/static/images/login/close_pwd.png"; |
| | | const _imports_3$3 = "/static/images/login/open_pwd.png"; |
| | | const _imports_4$3 = "/static/images/login/switchto.svg"; |
| | | const _imports_0$e = "/static/images/index/head.png"; |
| | | const _imports_1$8 = "/static/images/index/back.png"; |
| | | const _imports_0$d = "/static/images/index/card11.png"; |
| | | const _imports_0$f = "/static/images/index/head.png"; |
| | | const _imports_1$9 = "/static/images/index/back.png"; |
| | | const _imports_0$e = "/static/images/index/card11.png"; |
| | | const _imports_3$2 = "/static/images/index/code1.png"; |
| | | const _imports_4$2 = "/static/images/index/vip-add.png"; |
| | | const _imports_5$1 = "/static/images/index/home21.png"; |
| | | const _imports_1$7 = "/static/images/index/icon22.png"; |
| | | const _imports_1$8 = "/static/images/index/icon22.png"; |
| | | const _imports_7 = "/static/images/index/icon23.png"; |
| | | const _imports_8$1 = "/static/images/index/advert-icon3.svg"; |
| | | const _imports_9$1 = "/static/images/index/advert-icon1.svg"; |
| | |
| | | const _imports_12 = "/static/images/index/icon51.png"; |
| | | const _imports_13 = "/static/images/index/more-info5.png"; |
| | | const _imports_14 = "/static/images/index/notice5.png"; |
| | | const _imports_0$c = "/static/images/addCard/code.png"; |
| | | const _imports_1$6 = "/static/images/other/more.png"; |
| | | const _imports_0$b = "/static/images/other/expand.png"; |
| | | const _imports_1$5 = "/static/images/other/nodata.png"; |
| | | const _imports_0$a = "/static/images/other/code-none.png"; |
| | | const _imports_0$9 = "/static/images/address/edit.png"; |
| | | const _imports_1$4 = "/static/images/address/delete.png"; |
| | | const _imports_0$8 = "/static/images/address/expand.png"; |
| | | const _imports_0$7 = "/static/images/other/success.png"; |
| | | const _imports_0$6 = "/static/logo.png"; |
| | | const _imports_1$3 = "/static/images/other/img-add.png"; |
| | | const _imports_0$5 = "/static/images/other/home.svg"; |
| | | const _imports_0$4 = "/static/images/maintain/maintenance-head.svg"; |
| | | const _imports_1$2 = "/static/images/maintain/fun-icon1.svg"; |
| | | const _imports_0$d = "/static/images/addCard/code.png"; |
| | | const _imports_1$7 = "/static/images/other/more.png"; |
| | | const _imports_0$c = "/static/images/other/expand.png"; |
| | | const _imports_1$6 = "/static/images/other/nodata.png"; |
| | | const _imports_0$b = "/static/images/other/code-none.png"; |
| | | const _imports_0$a = "/static/images/address/edit.png"; |
| | | const _imports_1$5 = "/static/images/address/delete.png"; |
| | | const _imports_0$9 = "/static/images/address/expand.png"; |
| | | const _imports_0$8 = "/static/images/other/success.png"; |
| | | const _imports_0$7 = "/static/logo.png"; |
| | | const _imports_1$4 = "/static/images/other/img-add.png"; |
| | | const _imports_0$6 = "/static/images/other/home.svg"; |
| | | const _imports_0$5 = "/static/images/maintain/maintenance-head.svg"; |
| | | const _imports_1$3 = "/static/images/maintain/fun-icon1.svg"; |
| | | const _imports_2$1 = "/static/images/maintain/fun-icon2.svg"; |
| | | const _imports_3$1 = "/static/images/maintain/fun-icon3.svg"; |
| | | const _imports_4$1 = "/static/images/maintain/fun-icon4.svg"; |
| | | const _imports_0$3 = "/static/images/maintain/expand.svg"; |
| | | const _imports_0$4 = "/static/images/maintain/expand.svg"; |
| | | const _imports_0$3 = "/static/images/maintain/switch-on.png"; |
| | | const _imports_1$2 = "/static/images/maintain/switch-off.png"; |
| | | const _imports_0$2 = "/static/images/pointMall/back.svg"; |
| | | const _imports_1$1 = "/static/images/pointMall/points.svg"; |
| | | const _imports_2 = "/static/images/pointMall/points-icon.svg"; |
| | |
| | | const _imports_0 = "/static/images/other/navBack.svg"; |
| | | exports._imports_0 = _imports_0; |
| | | exports._imports_0$1 = _imports_0$2; |
| | | exports._imports_0$10 = _imports_0$7; |
| | | exports._imports_0$11 = _imports_0$6; |
| | | exports._imports_0$12 = _imports_0$5; |
| | | exports._imports_0$13 = _imports_0$4; |
| | | exports._imports_0$14 = _imports_0$3; |
| | | exports._imports_0$15 = _imports_0$1; |
| | | exports._imports_0$2 = _imports_0$f; |
| | | exports._imports_0$3 = _imports_0$d; |
| | | exports._imports_0$4 = _imports_0$e; |
| | | exports._imports_0$5 = _imports_0$c; |
| | | exports._imports_0$6 = _imports_0$b; |
| | | exports._imports_0$7 = _imports_0$a; |
| | | exports._imports_0$8 = _imports_0$9; |
| | | exports._imports_0$9 = _imports_0$8; |
| | | exports._imports_1 = _imports_1$9; |
| | | exports._imports_1$1 = _imports_1$7; |
| | | exports._imports_1$2 = _imports_1$8; |
| | | exports._imports_1$3 = _imports_1$6; |
| | | exports._imports_1$4 = _imports_1$5; |
| | | exports._imports_1$5 = _imports_1$4; |
| | | exports._imports_1$6 = _imports_1$3; |
| | | exports._imports_1$7 = _imports_1$2; |
| | | exports._imports_1$8 = _imports_1$1; |
| | | exports._imports_1$9 = _imports_1; |
| | | exports._imports_0$10 = _imports_0$8; |
| | | exports._imports_0$11 = _imports_0$7; |
| | | exports._imports_0$12 = _imports_0$6; |
| | | exports._imports_0$13 = _imports_0$5; |
| | | exports._imports_0$14 = _imports_0$4; |
| | | exports._imports_0$15 = _imports_0$3; |
| | | exports._imports_0$16 = _imports_0$1; |
| | | exports._imports_0$2 = _imports_0$g; |
| | | exports._imports_0$3 = _imports_0$e; |
| | | exports._imports_0$4 = _imports_0$f; |
| | | exports._imports_0$5 = _imports_0$d; |
| | | exports._imports_0$6 = _imports_0$c; |
| | | exports._imports_0$7 = _imports_0$b; |
| | | exports._imports_0$8 = _imports_0$a; |
| | | exports._imports_0$9 = _imports_0$9; |
| | | exports._imports_1 = _imports_1$a; |
| | | exports._imports_1$1 = _imports_1$8; |
| | | exports._imports_1$10 = _imports_1; |
| | | exports._imports_1$2 = _imports_1$9; |
| | | exports._imports_1$3 = _imports_1$7; |
| | | exports._imports_1$4 = _imports_1$6; |
| | | exports._imports_1$5 = _imports_1$5; |
| | | exports._imports_1$6 = _imports_1$4; |
| | | exports._imports_1$7 = _imports_1$3; |
| | | exports._imports_1$8 = _imports_1$2; |
| | | exports._imports_1$9 = _imports_1$1; |
| | | exports._imports_10 = _imports_10; |
| | | exports._imports_11 = _imports_11; |
| | | exports._imports_12 = _imports_12; |
| | |
| | | style: { |
| | | navigationBarTitleText: "" |
| | | } |
| | | }, |
| | | { |
| | | path: "adminPlatform/inspect", |
| | | style: { |
| | | navigationBarTitleText: "" |
| | | } |
| | | }, |
| | | { |
| | | path: "adminPlatform/params", |
| | | style: { |
| | | navigationBarTitleText: "" |
| | | } |
| | | } |
| | | ] |
| | | }, |
| | |
| | | { |
| | | "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html", |
| | | "projectname": "water-drinking-uniapp", |
| | | "setting": { |
| | | 0、- "setting": { |
| | | "compileHotReLoad": true |
| | | } |
| | | } |