工作台修改
This commit is contained in:
@@ -0,0 +1,122 @@
|
||||
// pages/workBench/components/tenement/components/bindMeter/index.js
|
||||
// 0015980101
|
||||
import { bindMeter, } from "../../../../../../service/tenement"
|
||||
import { getWorkMeterDetail } from "../../../../../../service/meter"
|
||||
import { alertInfo, alertSuccess } from "../../../../../../utils/index";
|
||||
import request from "../../../../../../utils/request"
|
||||
import dayjs from "../../../../../../utils/dayjs"
|
||||
const { OK } = request
|
||||
Component({
|
||||
|
||||
/**
|
||||
* 组件的属性列表
|
||||
*/
|
||||
properties: {
|
||||
tenement: String,
|
||||
tenementName: String,
|
||||
park: String,
|
||||
visible: Boolean,
|
||||
meterId: String,
|
||||
},
|
||||
|
||||
/**
|
||||
* 组件的初始数据
|
||||
*/
|
||||
data: {
|
||||
dateTimeShow: false,
|
||||
},
|
||||
|
||||
/**
|
||||
* 组件的方法列表
|
||||
*/
|
||||
methods: {
|
||||
onMeterFocus(e) {
|
||||
const { park } = this.data;
|
||||
if (!park) {
|
||||
alertInfo("请先选择园区")
|
||||
return;
|
||||
}
|
||||
this.setData({
|
||||
show: true,
|
||||
title: "电表",
|
||||
type: 'meter'
|
||||
})
|
||||
},
|
||||
onCancel() {
|
||||
this.setData({
|
||||
show: false,
|
||||
title: "",
|
||||
type: "",
|
||||
})
|
||||
// this.triggerEvent("close")
|
||||
},
|
||||
onClose() {
|
||||
this.setData({
|
||||
show: false,
|
||||
title: "",
|
||||
type: "",
|
||||
})
|
||||
},
|
||||
onChange(e) {
|
||||
const { name } = e.currentTarget.dataset;
|
||||
this.setData({
|
||||
[name]: e.detail
|
||||
})
|
||||
},
|
||||
async onSubmit() {
|
||||
const { overall, critical, peak, valley, park, tenement, meter, readAt } = this.data;
|
||||
const { code, message } = await bindMeter(
|
||||
park,
|
||||
tenement,
|
||||
{
|
||||
code: meter,
|
||||
overall:overall? Number(overall) : overall,
|
||||
critical : critical ? Number(critical) : critical,
|
||||
peak: peak ? Number(peak) : peak,
|
||||
valley : valley ? Number(valley) : valley,
|
||||
readAt: readAt || dayjs().format('YYYY-MM-DD HH:mm:ss')
|
||||
}
|
||||
)
|
||||
if (code !== OK) {
|
||||
alertInfo(message)
|
||||
return;
|
||||
}
|
||||
alertSuccess("绑定成功")
|
||||
this.triggerEvent("ok")
|
||||
},
|
||||
onConfirm(e) {
|
||||
const { type, data } = e.detail;
|
||||
const that = this;
|
||||
switch(type) {
|
||||
case "meter":
|
||||
this.setData({
|
||||
meter: data.id,
|
||||
meterName: data.address,
|
||||
show: false,
|
||||
})
|
||||
this.getMeterDetail(data.id);
|
||||
break;
|
||||
}
|
||||
},
|
||||
async getMeterDetail(id) {
|
||||
const { code, message, data } = await getWorkMeterDetail(id)
|
||||
if (code !== OK) {
|
||||
alertInfo(message)
|
||||
return;
|
||||
}
|
||||
this.setData({
|
||||
overall: Number(data?.overall || 0),
|
||||
status: data?.breakType ? '合闸' : "分闸"
|
||||
})
|
||||
},
|
||||
dateTimeConfirm(e) {
|
||||
this.setData({ readAt: e.detail.time, dateTimeShow: false })
|
||||
},
|
||||
dateTimeCancal(e) {
|
||||
this.setData({ dateTimeShow: false })
|
||||
},
|
||||
onTimeFocus() {
|
||||
this.setData({ dateTimeShow: true })
|
||||
}
|
||||
}
|
||||
})
|
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"component": true,
|
||||
"usingComponents": {
|
||||
"van-dialog": "@vant/weapp/dialog/index",
|
||||
"search-select": "/components/searchSelect/index",
|
||||
"van-field": "@vant/weapp/field/index",
|
||||
"van-button": "@vant/weapp/button/index",
|
||||
"date-time-picker": "/components/DateTimePicker/index"
|
||||
}
|
||||
}
|
@@ -0,0 +1,121 @@
|
||||
<!--pages/workBench/components/tenement/components/bindMeter/index.wxml-->
|
||||
<van-dialog
|
||||
use-slot
|
||||
title="绑定表计"
|
||||
show="{{ visible }}"
|
||||
show-cancel-button
|
||||
bind:confirm="onSubmit"
|
||||
bind:close="onClose"
|
||||
>
|
||||
<view class="modalContentWrapper">
|
||||
<van-field
|
||||
value="{{tenementName}}"
|
||||
label="商户名称"
|
||||
readonly
|
||||
type="textarea"
|
||||
autosize="{{true}}"
|
||||
title-width="132rpx"
|
||||
border="{{false}}"
|
||||
/>
|
||||
<van-field
|
||||
value="{{ meterName }}"
|
||||
placeholder="请选择电表"
|
||||
label="电表"
|
||||
readonly
|
||||
border="{{ false }}"
|
||||
use-button-slot
|
||||
title-width="100rpx"
|
||||
>
|
||||
<van-button slot="button" size="small" type="info" bind:click="onMeterFocus">
|
||||
选择
|
||||
</van-button>
|
||||
</van-field>
|
||||
<van-field
|
||||
value="{{ status }}"
|
||||
label="状态"
|
||||
title-width="132rpx"
|
||||
border="{{false}}"
|
||||
readonly
|
||||
type="digit"
|
||||
/>
|
||||
<van-field
|
||||
value="{{ readAt }}"
|
||||
placeholder="请选择绑定时间"
|
||||
label="时间"
|
||||
readonly
|
||||
border="{{ false }}"
|
||||
use-button-slot
|
||||
title-width="100rpx"
|
||||
>
|
||||
<van-button slot="button" size="small" type="info" bind:click="onTimeFocus">
|
||||
选择
|
||||
</van-button>
|
||||
</van-field>
|
||||
<van-field
|
||||
value="{{ overall }}"
|
||||
label="表字"
|
||||
title-width="132rpx"
|
||||
border="{{false}}"
|
||||
bind:change="onChange"
|
||||
data-name="overall"
|
||||
placeholder="请输入表字"
|
||||
type="digit"
|
||||
/>
|
||||
<van-field
|
||||
value="{{ critical }}"
|
||||
label="尖"
|
||||
title-width="132rpx"
|
||||
border="{{false}}"
|
||||
bind:change="onChange"
|
||||
data-name="critical"
|
||||
placeholder="请输入有功(尖)"
|
||||
type="digit"
|
||||
/>
|
||||
<van-field
|
||||
value="{{ peak }}"
|
||||
label="峰"
|
||||
title-width="132rpx"
|
||||
border="{{false}}"
|
||||
bind:change="onChange"
|
||||
data-name="peak"
|
||||
placeholder="请输入有功(峰)"
|
||||
type="digit"
|
||||
/>
|
||||
<van-field
|
||||
value="{{ overall }}"
|
||||
label="平"
|
||||
title-width="132rpx"
|
||||
border="{{false}}"
|
||||
bind:change="onChange"
|
||||
data-name="overall"
|
||||
placeholder="请输入有功(平)"
|
||||
type="digit"
|
||||
/>
|
||||
<van-field
|
||||
value="{{ valley }}"
|
||||
label="谷"
|
||||
title-width="132rpx"
|
||||
border="{{false}}"
|
||||
bind:change="onChange"
|
||||
data-name="valley"
|
||||
type="digit"
|
||||
placeholder="请输入有功(谷)"
|
||||
/>
|
||||
</view>
|
||||
|
||||
</van-dialog>
|
||||
|
||||
<search-select
|
||||
show="{{show}}"
|
||||
title="{{title}}"
|
||||
type="{{type}}"
|
||||
park="{{park}}"
|
||||
bindconfirm="onConfirm"
|
||||
bindcancel="onCancel"
|
||||
/>
|
||||
|
||||
<date-time-picker
|
||||
show="{{dateTimeShow}}"
|
||||
bind:confirm="dateTimeConfirm"
|
||||
bind:cancel="dateTimeCancal"
|
||||
/>
|
@@ -0,0 +1 @@
|
||||
/* pages/workBench/components/tenement/components/bindMeter/index.wxss */
|
@@ -0,0 +1,103 @@
|
||||
// pages/workBench/components/tenement/components/createTenement/index.js
|
||||
Page({
|
||||
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad(options) {
|
||||
this.setData(options)
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面初次渲染完成
|
||||
*/
|
||||
onReady() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面显示
|
||||
*/
|
||||
onShow() {
|
||||
|
||||
},
|
||||
onBuildingFocus() {
|
||||
const { park } = this.data;
|
||||
if (!park) {
|
||||
alertInfo("请先选择园区")
|
||||
return;
|
||||
}
|
||||
this.setData({
|
||||
show: true,
|
||||
title: "建筑",
|
||||
type: 'building'
|
||||
})
|
||||
},
|
||||
onFeeTypeFocus() {
|
||||
const { park } = this.data;
|
||||
if (!park) {
|
||||
alertInfo("请先选择园区")
|
||||
return;
|
||||
}
|
||||
this.setData({
|
||||
show: true,
|
||||
title: "建筑",
|
||||
type: 'building'
|
||||
})
|
||||
},
|
||||
beforeBack() {
|
||||
let pages = getCurrentPages(); // 获取当前页面栈
|
||||
let prevPage = pages[pages.length - 2]; // 获取上一页
|
||||
const { tenement = '', tenementName = '', park = '', parkName = '' } = this.data;
|
||||
// 修改上一页的数据
|
||||
prevPage.setData({
|
||||
needBackShow: true,
|
||||
tenement,
|
||||
tenementName,
|
||||
park,
|
||||
parkName
|
||||
});
|
||||
|
||||
},
|
||||
/**
|
||||
* 生命周期函数--监听页面隐藏
|
||||
*/
|
||||
onHide() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面卸载
|
||||
*/
|
||||
onUnload() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面相关事件处理函数--监听用户下拉动作
|
||||
*/
|
||||
onPullDownRefresh() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面上拉触底事件的处理函数
|
||||
*/
|
||||
onReachBottom() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 用户点击右上角分享
|
||||
*/
|
||||
onShareAppMessage() {
|
||||
|
||||
}
|
||||
})
|
@@ -0,0 +1,8 @@
|
||||
{
|
||||
"usingComponents": {
|
||||
"search-select": "/components/searchSelect/index",
|
||||
"van-field": "@vant/weapp/field/index",
|
||||
"van-button": "@vant/weapp/button/index",
|
||||
"navigator": "/components/navigator/index"
|
||||
}
|
||||
}
|
@@ -0,0 +1,74 @@
|
||||
<!--pages/workBench/components/tenement/components/createTenement/index.wxml-->
|
||||
<navigator title="开户" canBack="{{true}}" beforeBack="beforeBack" />
|
||||
<view class="modalContentWrapper">
|
||||
<van-field
|
||||
value=""
|
||||
label="商户全称"
|
||||
type="textarea"
|
||||
autosize="{{true}}"
|
||||
title-width="132rpx"
|
||||
required
|
||||
/>
|
||||
<van-field
|
||||
value=""
|
||||
label="商户简称"
|
||||
type="textarea"
|
||||
autosize="{{true}}"
|
||||
title-width="132rpx"
|
||||
/>
|
||||
<van-field
|
||||
value=""
|
||||
label="联系地址"
|
||||
type="textarea"
|
||||
autosize="{{true}}"
|
||||
title-width="132rpx"
|
||||
required
|
||||
/>
|
||||
<van-field
|
||||
value=""
|
||||
label="联系人"
|
||||
type="textarea"
|
||||
autosize="{{true}}"
|
||||
title-width="132rpx"
|
||||
required
|
||||
/>
|
||||
<van-field
|
||||
value=""
|
||||
label="联系电话"
|
||||
type="textarea"
|
||||
autosize="{{true}}"
|
||||
title-width="132rpx"
|
||||
required
|
||||
/>
|
||||
<van-field
|
||||
value="{{ meterName }}"
|
||||
placeholder="请选择建筑"
|
||||
label="建筑"
|
||||
use-button-slot
|
||||
title-width="120rpx"
|
||||
>
|
||||
<van-button slot="button" size="small" type="info" bind:click="onBuildingFocus">
|
||||
选择
|
||||
</van-button>
|
||||
</van-field>
|
||||
<van-field
|
||||
value="{{ meterName }}"
|
||||
placeholder="请选择收费类型"
|
||||
label="收费类型"
|
||||
use-button-slot
|
||||
title-width="120rpx"
|
||||
>
|
||||
<van-button slot="button" size="small" type="info" bind:click="onFeeTypeFocus">
|
||||
选择
|
||||
</van-button>
|
||||
</van-field>
|
||||
</view>
|
||||
|
||||
<search-select
|
||||
show="{{show}}"
|
||||
title="{{title}}"
|
||||
type="{{type}}"
|
||||
park="{{park}}"
|
||||
bindconfirm="onConfirm"
|
||||
bindcancel="onCancel"
|
||||
/>
|
@@ -0,0 +1 @@
|
||||
/* pages/workBench/components/tenement/components/createTenement/index.wxss */
|
@@ -0,0 +1,124 @@
|
||||
// pages/workBench/components/tenement/components/kaihu/index.js
|
||||
import { alertInfo, alertSuccess } from "../../../../../../utils/index"
|
||||
import { createBackTenement, updateTenementBackInfo } from "../../../../../../service/tenement"
|
||||
import request from "../../../../../../utils/request"
|
||||
import { payWays, feeType as feeTypeList } from "../../../../../../utils/data";
|
||||
const { OK } = request;
|
||||
Component({
|
||||
|
||||
/**
|
||||
* 组件的属性列表
|
||||
*/
|
||||
properties: {
|
||||
park: String,
|
||||
visible: Boolean,
|
||||
defaultValue: Object,
|
||||
editType: String,
|
||||
title: String,
|
||||
},
|
||||
observers: {
|
||||
'defaultValue': function(defaultValue) {
|
||||
const { fullName, shortName, phone, id, feeType, address, building, buildingName, contact,} = defaultValue;
|
||||
this.setData({
|
||||
name: fullName,
|
||||
shortName,
|
||||
phone, id, feeType, address, building, buildingName, contact,
|
||||
feeTypeName: feeTypeList[feeType]
|
||||
})
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 组件的初始数据
|
||||
*/
|
||||
data: {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 组件的方法列表
|
||||
*/
|
||||
methods: {
|
||||
onBuildingFocus() {
|
||||
const { park } = this.data;
|
||||
if (!park) {
|
||||
alertInfo("请先选择园区")
|
||||
return;
|
||||
}
|
||||
this.setData({
|
||||
show: true,
|
||||
title: "建筑",
|
||||
type: 'building'
|
||||
})
|
||||
},
|
||||
onFeeTypeFocus() {
|
||||
const { park } = this.data;
|
||||
if (!park) {
|
||||
alertInfo("请先选择园区")
|
||||
return;
|
||||
}
|
||||
this.setData({
|
||||
show: true,
|
||||
title: "收费类型",
|
||||
type: 'feeType'
|
||||
})
|
||||
},
|
||||
onConfirm(e) {
|
||||
const { type, data, way } = e.detail;
|
||||
switch(type) {
|
||||
case "building":
|
||||
this.setData({
|
||||
building: data.id,
|
||||
buildingName: data.name,
|
||||
show: false,
|
||||
})
|
||||
return;
|
||||
case "feeType":
|
||||
this.setData({
|
||||
feeTypeName: data,
|
||||
feeType: way,
|
||||
show: false,
|
||||
})
|
||||
}
|
||||
},
|
||||
|
||||
onCancel() {
|
||||
this.setData({ show: false })
|
||||
},
|
||||
onClose() {
|
||||
this.triggerEvent("close")
|
||||
},
|
||||
onChange(e) {
|
||||
const { name } = e.currentTarget.dataset;
|
||||
this.setData({
|
||||
[name]: e.detail
|
||||
})
|
||||
},
|
||||
clear() {
|
||||
this.setData({
|
||||
name: "", shortName: "", address: "", contact: "", phone: "",
|
||||
building: "", feeType: "", buildingName: "", feeTypeName: "", id,
|
||||
})
|
||||
},
|
||||
async onSubmit() {
|
||||
const { name, shortName, address, contact, phone, building, feeType, park, editType, id } = this.data;
|
||||
if (editType === "add") {
|
||||
const { code, message } = await createBackTenement(park, { name, shortName, address, contact, phone, building, feeType })
|
||||
if (code !== OK) {
|
||||
alertInfo(message)
|
||||
return
|
||||
}
|
||||
alertSuccess("开户成功")
|
||||
this.triggerEvent("ok")
|
||||
return;
|
||||
}
|
||||
const { code, message } = await updateTenementBackInfo(park, id, { name, shortName, address, contact, phone, building, feeType })
|
||||
if (code !== OK) {
|
||||
alertInfo(message)
|
||||
return;
|
||||
}
|
||||
alertSuccess("编辑成功")
|
||||
this.triggerEvent("ok")
|
||||
}
|
||||
},
|
||||
|
||||
})
|
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"component": true,
|
||||
"usingComponents": {
|
||||
"search-select": "/components/searchSelect/index",
|
||||
"van-field": "@vant/weapp/field/index",
|
||||
"van-button": "@vant/weapp/button/index",
|
||||
"navigator": "/components/navigator/index",
|
||||
"van-dialog": "@vant/weapp/dialog/index"
|
||||
}
|
||||
}
|
@@ -0,0 +1,100 @@
|
||||
<!--pages/workBench/components/tenement/components/kaihu/index.wxml-->
|
||||
<van-dialog
|
||||
use-slot
|
||||
title="{{title}}"
|
||||
show="{{ visible }}"
|
||||
show-cancel-button
|
||||
bind:close="onClose"
|
||||
bind:confirm="onSubmit"
|
||||
>
|
||||
<view class="modalContentWrapper">
|
||||
<van-field
|
||||
value="{{name}}"
|
||||
data-name="name"
|
||||
bind:change="onChange"
|
||||
label="商户全称"
|
||||
type="textarea"
|
||||
placeholder="请输入商户全称"
|
||||
autosize="{{true}}"
|
||||
title-width="132rpx"
|
||||
required
|
||||
/>
|
||||
<van-field
|
||||
value="{{shortName}}"
|
||||
data-name="shortName"
|
||||
bind:change="onChange"
|
||||
label="商户简称"
|
||||
placeholder="请输入商户简称"
|
||||
type="textarea"
|
||||
autosize="{{true}}"
|
||||
title-width="132rpx"
|
||||
/>
|
||||
<van-field
|
||||
value="{{address}}"
|
||||
data-name="address"
|
||||
bind:change="onChange"
|
||||
label="联系地址"
|
||||
placeholder="请输入联系地址"
|
||||
type="textarea"
|
||||
autosize="{{true}}"
|
||||
title-width="132rpx"
|
||||
required
|
||||
/>
|
||||
<van-field
|
||||
value="{{contact}}"
|
||||
data-name="contact"
|
||||
bind:change="onChange"
|
||||
label="联系人"
|
||||
placeholder="请输入联系人"
|
||||
type="textarea"
|
||||
autosize="{{true}}"
|
||||
title-width="132rpx"
|
||||
required
|
||||
/>
|
||||
<van-field
|
||||
value="{{phone}}"
|
||||
data-name="phone"
|
||||
bind:change="onChange"
|
||||
label="联系电话"
|
||||
placeholder="请输入联系电话"
|
||||
type="textarea"
|
||||
autosize="{{true}}"
|
||||
title-width="132rpx"
|
||||
required
|
||||
/>
|
||||
<van-field
|
||||
value="{{ buildingName }}"
|
||||
placeholder="请选择建筑"
|
||||
label="建筑"
|
||||
use-button-slot
|
||||
readonly
|
||||
title-width="120rpx"
|
||||
required
|
||||
>
|
||||
<van-button slot="button" size="small" type="info" bind:click="onBuildingFocus">
|
||||
选择
|
||||
</van-button>
|
||||
</van-field>
|
||||
<van-field
|
||||
value="{{ feeTypeName }}"
|
||||
placeholder="请选择收费类型"
|
||||
label="收费类型"
|
||||
readonly
|
||||
use-button-slot
|
||||
title-width="120rpx"
|
||||
>
|
||||
<van-button slot="button" size="small" type="info" bind:click="onFeeTypeFocus">
|
||||
选择
|
||||
</van-button>
|
||||
</van-field>
|
||||
</view>
|
||||
</van-dialog>
|
||||
|
||||
<search-select
|
||||
show="{{show}}"
|
||||
title="{{title}}"
|
||||
type="{{type}}"
|
||||
park="{{park}}"
|
||||
bindconfirm="onConfirm"
|
||||
bindcancel="onCancel"
|
||||
/>
|
@@ -0,0 +1 @@
|
||||
/* pages/workBench/components/tenement/components/kaihu/index.wxss */
|
@@ -0,0 +1,101 @@
|
||||
// pages/workBench/components/tenement/components/bindMeter/index.js
|
||||
|
||||
import { unbindMeter, } from "../../../../../../service/tenement"
|
||||
import request from "../../../../../../utils/request"
|
||||
import { alertInfo, alertSuccess } from "../../../../../../utils/index";
|
||||
const { OK } = request
|
||||
import { getWorkMeterDetail } from "../../../../../../service/meter"
|
||||
import dayjs from "../../../../../../utils/dayjs"
|
||||
|
||||
Component({
|
||||
|
||||
/**
|
||||
* 组件的属性列表
|
||||
*/
|
||||
properties: {
|
||||
tenement: String,
|
||||
park: String,
|
||||
tenementName: String,
|
||||
meterId: String,
|
||||
meterAddress: String,
|
||||
visible:Boolean,
|
||||
},
|
||||
observers: {
|
||||
"meterId": function(newValue) {
|
||||
this.getMeterDetail(newValue)
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 组件的初始数据
|
||||
*/
|
||||
data: {
|
||||
dateTimeShow: false
|
||||
},
|
||||
|
||||
/**
|
||||
* 组件的方法列表
|
||||
*/
|
||||
methods: {
|
||||
onMeterFocus(e) {
|
||||
const { park } = this.data;
|
||||
if (!park) {
|
||||
alertInfo("请先选择园区")
|
||||
return;
|
||||
}
|
||||
this.setData({
|
||||
show: true,
|
||||
title: "电表",
|
||||
type: 'meter'
|
||||
})
|
||||
},
|
||||
async getMeterDetail(id) {
|
||||
const { code, message, data } = await getWorkMeterDetail(id)
|
||||
if (code !== OK) {
|
||||
alertInfo(message)
|
||||
return;
|
||||
}
|
||||
this.setData({
|
||||
overall: Number(data?.overall || 0),
|
||||
status: data?.breakType ? '合闸' : "分闸"
|
||||
})
|
||||
},
|
||||
onClose() {
|
||||
this.triggerEvent("close")
|
||||
},
|
||||
onChange(e) {
|
||||
const { name } = e.currentTarget.dataset;
|
||||
this.setData({
|
||||
[name]: e.detail
|
||||
})
|
||||
},
|
||||
async onSubmit() {
|
||||
const { overall, critical, peak, valley, park, tenement, meterId,readAt } = this.data;
|
||||
const { code, message, } = await unbindMeter(
|
||||
park,
|
||||
tenement,
|
||||
meterId,
|
||||
{
|
||||
overall:overall? Number(overall) : overall,
|
||||
critical : critical ? Number(critical) : critical,
|
||||
peak: peak ? Number(peak) : peak,
|
||||
valley : valley ? Number(valley) : valley,
|
||||
readAt: readAt || dayjs().format('YYYY-MM-DD HH:mm:ss')
|
||||
});
|
||||
if (code !== OK) {
|
||||
alertInfo(message)
|
||||
return
|
||||
}
|
||||
alertSuccess("解绑成功")
|
||||
this.triggerEvent("ok")
|
||||
},
|
||||
dateTimeConfirm(e) {
|
||||
this.setData({ readAt: e.detail.time, dateTimeShow: false })
|
||||
},
|
||||
dateTimeCancal(e) {
|
||||
this.setData({ dateTimeShow: false })
|
||||
},
|
||||
onTimeFocus() {
|
||||
this.setData({ dateTimeShow: true })
|
||||
}
|
||||
}
|
||||
})
|
@@ -0,0 +1,10 @@
|
||||
{
|
||||
"component": true,
|
||||
"usingComponents": {
|
||||
"van-dialog": "@vant/weapp/dialog/index",
|
||||
"search-select": "/components/searchSelect/index",
|
||||
"van-field": "@vant/weapp/field/index",
|
||||
"van-button": "@vant/weapp/button/index",
|
||||
"date-time-picker": "/components/DateTimePicker/index"
|
||||
}
|
||||
}
|
@@ -0,0 +1,100 @@
|
||||
<!--pages/workBench/components/tenement/components/bindMeter/index.wxml-->
|
||||
<van-dialog
|
||||
use-slot
|
||||
title="解绑电表"
|
||||
show="{{ visible }}"
|
||||
show-cancel-button
|
||||
bind:confirm="onSubmit"
|
||||
bind:close="onClose"
|
||||
>
|
||||
<view class="modalContentWrapper">
|
||||
<van-field
|
||||
value="{{tenementName}}"
|
||||
label="商户名称"
|
||||
readonly
|
||||
type="textarea"
|
||||
autosize="{{true}}"
|
||||
title-width="132rpx"
|
||||
border="{{false}}"
|
||||
/>
|
||||
<van-field
|
||||
value="{{meterAddress}}"
|
||||
label="电表地址"
|
||||
readonly
|
||||
type="textarea"
|
||||
autosize="{{true}}"
|
||||
title-width="132rpx"
|
||||
border="{{false}}"
|
||||
/>
|
||||
<van-field
|
||||
value="{{ readAt }}"
|
||||
placeholder="请选择解绑时间"
|
||||
label="时间"
|
||||
readonly
|
||||
border="{{ false }}"
|
||||
use-button-slot
|
||||
title-width="100rpx"
|
||||
>
|
||||
<van-button slot="button" size="small" type="info" bind:click="onTimeFocus">
|
||||
选择
|
||||
</van-button>
|
||||
</van-field>
|
||||
<van-field
|
||||
value="{{ overall }}"
|
||||
label="表字"
|
||||
title-width="132rpx"
|
||||
border="{{false}}"
|
||||
bind:change="onChange"
|
||||
data-name="overall"
|
||||
placeholder="请输入表字"
|
||||
type="number"
|
||||
/>
|
||||
<van-field
|
||||
value="{{ critical }}"
|
||||
label="尖"
|
||||
title-width="132rpx"
|
||||
border="{{false}}"
|
||||
bind:change="onChange"
|
||||
data-name="critical"
|
||||
placeholder="请输入有功(尖)"
|
||||
type="number"
|
||||
/>
|
||||
<van-field
|
||||
value="{{ peak }}"
|
||||
label="峰"
|
||||
title-width="132rpx"
|
||||
border="{{false}}"
|
||||
bind:change="onChange"
|
||||
data-name="peak"
|
||||
placeholder="请输入有功(峰)"
|
||||
type="number"
|
||||
/>
|
||||
<van-field
|
||||
value="{{ overall }}"
|
||||
label="平"
|
||||
title-width="132rpx"
|
||||
border="{{false}}"
|
||||
bind:change="onChange"
|
||||
data-name="overall"
|
||||
type="number"
|
||||
placeholder="请输入有功(平)"
|
||||
/>
|
||||
<van-field
|
||||
value="{{ valley }}"
|
||||
label="谷"
|
||||
type="number"
|
||||
title-width="132rpx"
|
||||
border="{{false}}"
|
||||
bind:change="onChange"
|
||||
data-name="valley"
|
||||
placeholder="请输入有功(谷)"
|
||||
/>
|
||||
</view>
|
||||
|
||||
</van-dialog>
|
||||
|
||||
<date-time-picker
|
||||
show="{{dateTimeShow}}"
|
||||
bind:confirm="dateTimeConfirm"
|
||||
bind:cancel="dateTimeCancal"
|
||||
/>
|
@@ -0,0 +1 @@
|
||||
/* pages/workBench/components/tenement/components/bindMeter/index.wxss */
|
233
pages/workBenchNew/components/workBenchTenement/index.js
Normal file
233
pages/workBenchNew/components/workBenchTenement/index.js
Normal file
@@ -0,0 +1,233 @@
|
||||
// pages/workBenchNew/components/workBenchTenement/index.js
|
||||
import { alertInfo, alertSuccess } from "../../../../utils/index";
|
||||
import { getTenementBackInfo, unbindMeter, } from "../../../../service/tenement"
|
||||
import { getBackTenementMeters, } from "../../../../service/meter"
|
||||
import request from "../../../../utils/request"
|
||||
const { OK } = request
|
||||
|
||||
Page({
|
||||
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
defaultValue: {},
|
||||
editType: "",
|
||||
meterList: [],
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad(options) {
|
||||
|
||||
},
|
||||
onParkFocus(e) {
|
||||
this.setData({
|
||||
show: true,
|
||||
title: "园区",
|
||||
type: 'park'
|
||||
})
|
||||
},
|
||||
onTenementFocus(e) {
|
||||
const { park } = this.data;
|
||||
const that = this;
|
||||
if (!park) {
|
||||
alertInfo("请先选择园区")
|
||||
return;
|
||||
}
|
||||
this.setData({
|
||||
show: true,
|
||||
title: "商户",
|
||||
type: 'tenement'
|
||||
})
|
||||
},
|
||||
async init() {
|
||||
|
||||
},
|
||||
async getTenementInfo() {
|
||||
const { tenement, park } = this.data;
|
||||
if (!tenement || !park) {
|
||||
return;
|
||||
}
|
||||
const { code, message, tenement: data } = await getTenementBackInfo(park, tenement)
|
||||
if (code !== OK) {
|
||||
alertInfo(message)
|
||||
return;
|
||||
}
|
||||
this.setData({
|
||||
tenementInfo: data,
|
||||
})
|
||||
},
|
||||
onConfirm(e) {
|
||||
const { type, data } = e.detail;
|
||||
const that = this;
|
||||
switch(type) {
|
||||
case "park":
|
||||
this.setData({
|
||||
park: data.id,
|
||||
parkName: data.name,
|
||||
show: false,
|
||||
})
|
||||
break;
|
||||
case "tenement":
|
||||
this.setData({
|
||||
tenement: data.id,
|
||||
tenementName: data.name,
|
||||
show: false,
|
||||
} , () => {
|
||||
that.getTenementInfo();
|
||||
that.getTenementMeters();
|
||||
})
|
||||
break;
|
||||
}
|
||||
},
|
||||
onCancel() {
|
||||
this.setData({
|
||||
show: false,
|
||||
})
|
||||
},
|
||||
startKh() {
|
||||
this.setData({
|
||||
kaihuVisible: true,
|
||||
editType: "add",
|
||||
title: "开户",
|
||||
defaultValue: { feeType: 0, feeTypeName: "华昌宝能收费" }
|
||||
})
|
||||
},
|
||||
startUpdateInfo() {
|
||||
const { tenementInfo } = this.data;
|
||||
this.setData({
|
||||
kaihuVisible: true,
|
||||
defaultValue: tenementInfo,
|
||||
editType: "update",
|
||||
title: "开户"
|
||||
})
|
||||
},
|
||||
async getTenementMeters() {
|
||||
const { park, tenement } = this.data;
|
||||
const { code, message, data } = await getBackTenementMeters(park, tenement)
|
||||
if (code !== OK) {
|
||||
alertInfo(message)
|
||||
return
|
||||
}
|
||||
this.setData({ meterList: data });
|
||||
},
|
||||
onKaihuClose() {
|
||||
this.setData({
|
||||
kaihuVisible: false,
|
||||
defaultValue: {},
|
||||
title: "编辑",
|
||||
editType: "",
|
||||
})
|
||||
},
|
||||
onBindClose() {
|
||||
this.setData({
|
||||
bindVisible: false,
|
||||
})
|
||||
},
|
||||
async onKaihuConfirm() {
|
||||
this.getTenementInfo();
|
||||
this.onKaihuClose();
|
||||
},
|
||||
unbind(e) {
|
||||
const that = this;
|
||||
const { park, tenement } = this.data;
|
||||
const { address, id } = e.currentTarget.dataset;
|
||||
this.setData({
|
||||
unbindVisible: true,
|
||||
meterId: id,
|
||||
meterAddress: address
|
||||
})
|
||||
// wx.showModal({
|
||||
// title: '提示',
|
||||
// content: `确认要解绑${address}吗?`,
|
||||
// complete: async (res) => {
|
||||
// if (res.cancel) {
|
||||
|
||||
// }
|
||||
|
||||
// if (res.confirm) {
|
||||
// const { code, message, } = await unbindMeter(park, tenement, id);
|
||||
// if (code !== OK) {
|
||||
// alertInfo(message)
|
||||
// return
|
||||
// }
|
||||
// alertSuccess("解绑成功")
|
||||
// that.getTenementMeters();
|
||||
// return
|
||||
// }
|
||||
// }
|
||||
// })
|
||||
},
|
||||
onUnbindOk() {
|
||||
this.setData({
|
||||
unbindVisible: false,
|
||||
meterId: "",
|
||||
meterAddress: "",
|
||||
})
|
||||
this.getTenementMeters();
|
||||
},
|
||||
startBind() {
|
||||
this.setData({
|
||||
bindVisible: true
|
||||
})
|
||||
},
|
||||
onBindOk() {
|
||||
this.setData({
|
||||
bindVisible: false,
|
||||
})
|
||||
this.getTenementMeters();
|
||||
},
|
||||
onTimeConfirm(e) {
|
||||
|
||||
},
|
||||
/**
|
||||
* 生命周期函数--监听页面初次渲染完成
|
||||
*/
|
||||
onReady() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面显示
|
||||
*/
|
||||
onShow() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面隐藏
|
||||
*/
|
||||
onHide() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面卸载
|
||||
*/
|
||||
onUnload() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面相关事件处理函数--监听用户下拉动作
|
||||
*/
|
||||
onPullDownRefresh() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面上拉触底事件的处理函数
|
||||
*/
|
||||
onReachBottom() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 用户点击右上角分享
|
||||
*/
|
||||
onShareAppMessage() {
|
||||
|
||||
}
|
||||
})
|
16
pages/workBenchNew/components/workBenchTenement/index.json
Normal file
16
pages/workBenchNew/components/workBenchTenement/index.json
Normal file
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"usingComponents": {
|
||||
"van-field": "@vant/weapp/field/index",
|
||||
"van-button": "@vant/weapp/button/index",
|
||||
"search-select": "/components/searchSelect/index",
|
||||
"van-empty": "@vant/weapp/empty/index",
|
||||
"kaihu": "./components/kaihu/index",
|
||||
"bindMeter": "./components/bindMeter/index",
|
||||
"unBindMeter": "./components/unBindMeter/index",
|
||||
"van-row": "@vant/weapp/row/index",
|
||||
"van-col": "@vant/weapp/col/index",
|
||||
"navigator": "/components/navigator/index",
|
||||
"searchSelectWrapper": "/components/searchSelectWrapper/index"
|
||||
},
|
||||
"navigationStyle": "custom"
|
||||
}
|
136
pages/workBenchNew/components/workBenchTenement/index.wxml
Normal file
136
pages/workBenchNew/components/workBenchTenement/index.wxml
Normal file
@@ -0,0 +1,136 @@
|
||||
<!--pages/workBench/components/tenement/index.wxml-->
|
||||
<navigator title="商户信息" canBack="{{true}}" />
|
||||
<view>
|
||||
<searchSelectWrapper
|
||||
label="园区"
|
||||
placeholder="请选择园区"
|
||||
text="{{ parkName }}"
|
||||
bind:search="onParkFocus"
|
||||
/>
|
||||
<searchSelectWrapper
|
||||
label="商户"
|
||||
placeholder="请选择商户"
|
||||
text="{{ tenementName }}"
|
||||
bind:search="onTenementFocus"
|
||||
/>
|
||||
</view>
|
||||
<view style="display: flex; align-items: center;margin: 20rpx">
|
||||
<view wx:if="{{tenement}}">
|
||||
<van-button
|
||||
style="margin-right: 20rpx;"
|
||||
type="info"
|
||||
size="small"
|
||||
bind:click="startBind"
|
||||
> 绑定电表 </van-button>
|
||||
<van-button
|
||||
style="margin-right: 20rpx;"
|
||||
type="info"
|
||||
size="small"
|
||||
bind:tap="startUpdateInfo"
|
||||
> 修改信息 </van-button>
|
||||
</view>
|
||||
<van-button type="info" size="small" bind:click="startKh" wx:if="{{!!park}}"> 开户 </van-button>
|
||||
</view>
|
||||
<van-empty wx:if="{{!tenement}}" description="选择园区和商户后查看" />
|
||||
<view wx:else>
|
||||
<view class="customTable">
|
||||
<view class="customTableTile">
|
||||
<van-row>
|
||||
<van-col span="24">
|
||||
<view class="tableTitleRow">
|
||||
<view class="tbody">
|
||||
<view class="tr">
|
||||
<view style="width: 250rpx;text-align: center;"> {{tenementInfo.shortName}} </view>
|
||||
<view> {{tenementInfo.fullName}} </view>
|
||||
</view>
|
||||
<view class="tr">
|
||||
<view wx:if="{{tenementInfo.feeType === 0}}" class="th" style="width: 250rpx;text-align: center;"> 华昌宝能收费 </view>
|
||||
<view wx:if="{{tenementInfo.feeType === 1}}" class="th" style="width: 250rpx;text-align: center;"> 物业代收1 </view>
|
||||
<view wx:if="{{tenementInfo.feeType === 2}}" class="th" style="width: 250rpx;text-align: center;"> 物业代收2 </view>
|
||||
<view wx:if="{{tenementInfo.feeType === 3}}" class="th" style="width: 250rpx;text-align: center;"> 物业代收线损 </view>
|
||||
<view> {{tenementInfo.contact}} {{tenementInfo.phone}} </view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</van-col>
|
||||
|
||||
|
||||
<!-- <van-row gutter="5">
|
||||
<van-col span="8">
|
||||
<view style="text-align: center;"> 华昌宝能收费 </view> </van-col>
|
||||
<van-col span="8" wx:elif="{{tenementInfo.feeType === 1}}">
|
||||
<view style="text-align: center;"> 物业代收1 </view> </van-col>
|
||||
<van-col span="8" wx:elif="{{tenementInfo.feeType === 2}}">
|
||||
<view style="text-align: center;"> 物业代收2 </view> </van-col>
|
||||
<van-col span="8" wx:else> <view style="text-align: center;"> 物业代收线损 </view> </van-col>
|
||||
<van-col span="16">{{tenementInfo.contact}} {{tenementInfo.phone}} </van-col>
|
||||
</van-row> -->
|
||||
|
||||
|
||||
</van-row>
|
||||
</view>
|
||||
<view class="customTableContent">
|
||||
|
||||
<van-row>
|
||||
<van-radio-group value="{{ record }}" bind:change="onChangeSelectRecharge">
|
||||
<block wx:for="{{meterList}}" wx:for-index="itemIndex" wx:key="item">
|
||||
<view class="tbody">
|
||||
<view class="tr tableRow">
|
||||
<view class="th" style="width: 250rpx;padding-right: 16rpx;box-sizing: border-box;border-right: 1rpx solid #ccc;"> {{ item.address }} </view>
|
||||
<view class="th" style="width: 250rpx;padding-right: 16rpx;box-sizing: border-box;border-right: 1rpx solid #ccc;"> {{ item.meterSn }} </view>
|
||||
<view class="th" style="width: 200rpx">
|
||||
<view
|
||||
class="primaryTextBtn"
|
||||
bind:tap="unbind"
|
||||
data-id="{{item.meterId}}"
|
||||
data-address="{{item.address}}"
|
||||
>
|
||||
解绑
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</block>
|
||||
</van-radio-group>
|
||||
</van-row>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<search-select
|
||||
show="{{show}}"
|
||||
title="{{title}}"
|
||||
type="{{type}}"
|
||||
park="{{park}}"
|
||||
isBack="{{true}}"
|
||||
bindconfirm="onConfirm"
|
||||
bindcancel="onCancel"
|
||||
/>
|
||||
<kaihu
|
||||
wx:if="{{kaihuVisible}}"
|
||||
park="{{park}}"
|
||||
visible="{{kaihuVisible}}"
|
||||
defaultValue="{{defaultValue}}"
|
||||
bind:close="onKaihuClose"
|
||||
bind:ok="onKaihuConfirm"
|
||||
editType="{{editType}}"
|
||||
title="{{title}}"
|
||||
/>
|
||||
|
||||
<bindMeter
|
||||
visible="{{bindVisible}}"
|
||||
park="{{park}}"
|
||||
tenement="{{tenement}}"
|
||||
tenementName="{{tenementName}}"
|
||||
bind:ok="onBindOk"
|
||||
bind:close="onBindClose"
|
||||
/>
|
||||
|
||||
<unBindMeter
|
||||
visible="{{unbindVisible}}"
|
||||
park="{{park}}"
|
||||
tenement="{{tenement}}"
|
||||
tenementName="{{tenementName}}"
|
||||
meterId="{{meterId}}"
|
||||
meterAddress="{{meterAddress}}"
|
||||
bind:ok="onUnbindOk"
|
||||
/>
|
70
pages/workBenchNew/components/workBenchTenement/index.wxss
Normal file
70
pages/workBenchNew/components/workBenchTenement/index.wxss
Normal file
@@ -0,0 +1,70 @@
|
||||
/* pages/workBench/components/tenement/index.wxss */
|
||||
|
||||
.table {
|
||||
width: 890rpx;
|
||||
}
|
||||
|
||||
.classWrapper {
|
||||
width: 100vw;
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
.thead {
|
||||
display: flex;
|
||||
flex-wrap: nowrap;
|
||||
border-bottom: 1rpx solid #EEEEEE;
|
||||
}
|
||||
|
||||
.thead .th {
|
||||
padding: 20rpx;
|
||||
white-space: nowrap;
|
||||
text-align: center;
|
||||
box-sizing: border-box;
|
||||
|
||||
}
|
||||
|
||||
.tbody .tr {
|
||||
padding: 20rpx;
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
|
||||
.tbody .th {
|
||||
word-break: break-all;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.primaryTextBtn {
|
||||
color: #1989fa;
|
||||
}
|
||||
|
||||
|
||||
.customTable {
|
||||
margin: 20rpx;
|
||||
font-size: 32rpx;
|
||||
}
|
||||
|
||||
.customTableTile {
|
||||
background-color: var(--light-green);
|
||||
box-sizing: border-box;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.tableTitleRow {
|
||||
padding: 16rpx;
|
||||
}
|
||||
|
||||
.tableRow {
|
||||
|
||||
padding: 16rpx;
|
||||
border: 1rpx solid #ccc;
|
||||
border-top: 0rpx;
|
||||
font-size: 32rpx;
|
||||
}
|
||||
|
||||
page {
|
||||
background-color: rgb(228,240,236);
|
||||
font-size: 32rpx;
|
||||
}
|
Reference in New Issue
Block a user