Liuyi
2024-11-29 8265412eef286cc6027c8ec6085d6b059b7ab457
添加参数修改,设备详情
已修改12个文件
已添加4个文件
981 ■■■■■ 文件已修改
api/index.js 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages.json 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pages/login/index.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pagesAdmin/adminPlatform/facility.vue 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pagesAdmin/adminPlatform/facilityDetail.vue 275 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pagesAdmin/adminPlatform/home.vue 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
pagesAdmin/adminPlatform/inspect.vue 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
pagesAdmin/adminPlatform/params.vue 510 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
static/images/maintain/switch-off.png 补丁 | 查看 | 原始文档 | blame | 历史
static/images/maintain/switch-on.png 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/api/index.js 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/app.js 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/app.json 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/common/assets.js 94 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/common/vendor.js 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
unpackage/dist/dev/mp-weixin/project.private.config.json 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
api/index.js
@@ -168,6 +168,22 @@
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')
}
pages.json
@@ -209,6 +209,20 @@
                    {
                        "navigationBarTitleText" : ""
                    }
                },
                {
                    "path" : "adminPlatform/inspect",
                    "style" :
                    {
                        "navigationBarTitleText" : ""
                    }
                },
                {
                    "path" : "adminPlatform/params",
                    "style" :
                    {
                        "navigationBarTitleText" : ""
                    }
                }
            ]
        },
pages/login/index.vue
@@ -56,7 +56,7 @@
        }
    }
    //管理员登录
    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')
pagesAdmin/adminPlatform/facility.vue
@@ -76,9 +76,10 @@
            }
        })
    }
    function navTo(){
    function navTo(facilityId){
        console.log(13,facilityId)
        uni.navigateTo({
            url:'/pagesAdmin/adminPlatform/facilityDetail'
            url:`/pagesAdmin/adminPlatform/facilityDetail?id=${facilityId}`
        })
    }
    onMounted(async() =>{
@@ -121,7 +122,7 @@
                                <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>
pagesAdmin/adminPlatform/facilityDetail.vue
@@ -1,13 +1,282 @@
<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}}&nbsp;</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>
pagesAdmin/adminPlatform/home.vue
@@ -396,7 +396,7 @@
                    </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>
pagesAdmin/adminPlatform/inspect.vue
对比新文件
@@ -0,0 +1,25 @@
<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>
pagesAdmin/adminPlatform/params.vue
对比新文件
@@ -0,0 +1,510 @@
<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>
static/images/maintain/switch-off.png
static/images/maintain/switch-on.png
unpackage/dist/dev/mp-weixin/api/index.js
@@ -123,6 +123,18 @@
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;
@@ -130,12 +142,15 @@
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;
@@ -150,6 +165,7 @@
exports.goodsSearchTypeApi = goodsSearchTypeApi;
exports.infoBreakdownApi = infoBreakdownApi;
exports.integralConvertApi = integralConvertApi;
exports.openFacilityApi = openFacilityApi;
exports.paymentChangeApi = paymentChangeApi;
exports.pointsExchangeApi = pointsExchangeApi;
exports.pointsSearchApi = pointsSearchApi;
unpackage/dist/dev/mp-weixin/app.js
@@ -30,6 +30,8 @@
  "./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";
unpackage/dist/dev/mp-weixin/app.json
@@ -32,7 +32,9 @@
      "pages": [
        "adminPlatform/home",
        "adminPlatform/facility",
        "adminPlatform/facilityDetail"
        "adminPlatform/facilityDetail",
        "adminPlatform/inspect",
        "adminPlatform/params"
      ]
    },
    {
unpackage/dist/dev/mp-weixin/common/assets.js
@@ -1,16 +1,16 @@
"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";
@@ -19,24 +19,26 @@
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";
@@ -51,30 +53,32 @@
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;
unpackage/dist/dev/mp-weixin/common/vendor.js
@@ -8083,6 +8083,18 @@
        style: {
          navigationBarTitleText: ""
        }
      },
      {
        path: "adminPlatform/inspect",
        style: {
          navigationBarTitleText: ""
        }
      },
      {
        path: "adminPlatform/params",
        style: {
          navigationBarTitleText: ""
        }
      }
    ]
  },
unpackage/dist/dev/mp-weixin/project.private.config.json
@@ -1,7 +1,7 @@
{
  "description": "项目私有配置文件。此文件中的内容将覆盖 project.config.json 中的相同字段。项目的改动优先同步到此文件中。详见文档:https://developers.weixin.qq.com/miniprogram/dev/devtools/projectconfig.html",
  "projectname": "water-drinking-uniapp",
  "setting": {
 0、- "setting": {
    "compileHotReLoad": true
  }
}