初步联调装表
This commit is contained in:
6
app.json
6
app.json
@@ -42,7 +42,11 @@
|
||||
"pages/workBenchNew/components/workBenchTenement/index",
|
||||
"pages/workBenchNew/components/workBenchApprove/index",
|
||||
"pages/workBenchNew/components/workBenchWxUser/index",
|
||||
"pages/workBenchNew/components/workBenchReading/index"
|
||||
"pages/workBenchNew/components/workBenchReading/index",
|
||||
"pages/workBenchNew/components/recharge/index",
|
||||
"pages/workBenchNew/components/installMeter/index",
|
||||
"pages/workBenchNew/components/uninstallMeter/index",
|
||||
"pages/workBenchTodoList/index"
|
||||
],
|
||||
"subPackages": [
|
||||
{
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { getLoginParkList, getParkBuildingList } from "../../service/park"
|
||||
import { getParkSimpleMeterList } from "../../service/meter"
|
||||
import { getParkSimpleMeterList, getParkBoxList, getCardList, getCollectionList, getInventoryMeter } from "../../service/meter"
|
||||
import { alertInfo } from "../../utils/index";
|
||||
import request from "../../utils/request"
|
||||
import { payWays, feeType } from "../../utils/data";
|
||||
import { payWays, feeType, meterType } from "../../utils/data";
|
||||
import { getTenementList, getWxTenementList } from "../../service/tenement";
|
||||
const { OK } = request;
|
||||
|
||||
@@ -35,6 +35,7 @@ Component({
|
||||
searchText: "",
|
||||
payWays,
|
||||
feeType,
|
||||
meterType
|
||||
},
|
||||
lifetimes: {
|
||||
attached() {
|
||||
@@ -96,6 +97,17 @@ Component({
|
||||
})
|
||||
this.triggerEvent("confirm", { data: item, way: index, type } );
|
||||
},
|
||||
onMeterTypeConfirm(event) {
|
||||
const { index } = event.detail;
|
||||
const { meterType = [], type } = this.data;
|
||||
const item = meterType[index];
|
||||
this.setData({
|
||||
columns: [],
|
||||
list: [],
|
||||
searchText: ""
|
||||
})
|
||||
this.triggerEvent("confirm", { data: item, way: index, type } );
|
||||
},
|
||||
onSearch() {
|
||||
const { type, bind, filterBind } = this.data;
|
||||
switch(type) {
|
||||
@@ -105,12 +117,24 @@ Component({
|
||||
case "meter":
|
||||
this.onSearchMeter();
|
||||
return
|
||||
case "inventoryMeter":
|
||||
this.onSearchInventoryMeter();
|
||||
return
|
||||
case "tenement":
|
||||
this.onSearchTenement();
|
||||
return;
|
||||
case "building":
|
||||
this.onSearchBuilding();
|
||||
return;
|
||||
case "meterBox":
|
||||
this.onSearchMeterBox();
|
||||
return;
|
||||
case "card":
|
||||
this.onSearchCard();
|
||||
return;
|
||||
case "collection":
|
||||
this.onSearchCollection();
|
||||
return;
|
||||
}
|
||||
},
|
||||
async onSearchPark() {
|
||||
@@ -125,6 +149,18 @@ Component({
|
||||
list: parks,
|
||||
})
|
||||
},
|
||||
async onSearchCollection() {
|
||||
const { searchText = "" } = this.data;
|
||||
const { code, message, data: parks = [] } = await getCollectionList({keyword: searchText, page: 1});
|
||||
if (code !== OK) {
|
||||
alertInfo(message)
|
||||
return
|
||||
}
|
||||
this.setData({
|
||||
columns: parks?.map(item => item?.name),
|
||||
list: parks,
|
||||
})
|
||||
},
|
||||
async onSearchMeter() {
|
||||
const { searchText = "", park, filterBind } = this.data;
|
||||
const { code, message, data: parks = [] } = await getParkSimpleMeterList({keyword: searchText, park, isNeedBind: !filterBind});
|
||||
@@ -137,6 +173,18 @@ Component({
|
||||
list: parks || [],
|
||||
})
|
||||
},
|
||||
async onSearchInventoryMeter() {
|
||||
const { searchText = "", park, filterBind } = this.data;
|
||||
const { code, message, data: parks = [] } = await getInventoryMeter({keyword: searchText, park, isNeedBind: !filterBind});
|
||||
if (code !== OK) {
|
||||
alertInfo(message)
|
||||
return
|
||||
}
|
||||
this.setData({
|
||||
columns: parks?.map(item => `${item.sn}`) || [],
|
||||
list: parks || [],
|
||||
})
|
||||
},
|
||||
async onSearchTenement() {
|
||||
const { searchText = "", park, isBack } = this.data;
|
||||
const { code, message, data = [] } = isBack ? await getWxTenementList({keyword: searchText, park}) : await getTenementList({keyword: searchText, park});
|
||||
@@ -161,6 +209,30 @@ Component({
|
||||
list: data,
|
||||
})
|
||||
},
|
||||
async onSearchMeterBox() {
|
||||
const { park } = this.data;
|
||||
const { code, message, data = [] } = await getParkBoxList({park});
|
||||
if (code !== OK) {
|
||||
alertInfo(message)
|
||||
return
|
||||
}
|
||||
this.setData({
|
||||
columns: data?.length ? data?.map(item => item?.address) : [],
|
||||
list: data,
|
||||
})
|
||||
},
|
||||
async onSearchCard() {
|
||||
const { park } = this.data;
|
||||
const { code, message, data = [] } = await getCardList({park});
|
||||
if (code !== OK) {
|
||||
alertInfo(message)
|
||||
return
|
||||
}
|
||||
this.setData({
|
||||
columns: data?.length ? data?.map(item => item?.sim_number) : [],
|
||||
list: data,
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
@@ -26,6 +26,16 @@
|
||||
bind:confirm="onFeeTypeConfirm"
|
||||
/>
|
||||
</view>
|
||||
<view wx:elif="{{type === 'meterType'}}">
|
||||
<van-picker
|
||||
custom-style="width: 100%;"
|
||||
columns="{{ meterType }}"
|
||||
title="{{title}}"
|
||||
show-toolbar="{{true}}"
|
||||
bind:cancel="onCancel"
|
||||
bind:confirm="onMeterTypeConfirm"
|
||||
/>
|
||||
</view>
|
||||
<view wx:elif="{{type !== 'pay'}}">
|
||||
<van-search
|
||||
value="{{ value }}"
|
||||
|
||||
@@ -15,7 +15,10 @@ Component({
|
||||
type: {
|
||||
type: String,
|
||||
value: "select"
|
||||
}
|
||||
},
|
||||
useSlot: Boolean,
|
||||
hideBorder: Boolean,
|
||||
required: Boolean,
|
||||
},
|
||||
|
||||
/**
|
||||
@@ -38,6 +41,7 @@ Component({
|
||||
},
|
||||
onChangeText(e) {
|
||||
this.setData({ text: e.detail });
|
||||
console.log("----------")
|
||||
this.triggerEvent("changeText", e.detail)
|
||||
},
|
||||
onSearchKeyword() {
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
<!--components/searchSelectWrapper/index.wxml-->
|
||||
<view class="wrapper" wx:if="{{type === 'select'}}">
|
||||
<view class="label"> {{ label }} </view>
|
||||
<view class="label"><text class="required" wx:if="{{required}}">*</text>{{ label }}</view>
|
||||
<view class="content" bind:tap="clickTime" bind:tap="onSearch">
|
||||
<view class="text" wx:if="{{!text}}" style="color: #ccc;"> {{placeholder}} </view>
|
||||
<view class="text" wx:else> {{text}} </view>
|
||||
@@ -32,4 +32,11 @@
|
||||
custom-style="padding: 0;font-size: 30rpx;line-height: 32rpx;"
|
||||
/>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
<view class="wrapper" wx:if="{{useSlot}}">
|
||||
<view class="label"> {{ label }} </view>
|
||||
<view class="inputContent" bind:tap="clickTime" style="{{hideBorder ? 'border: none;' : ''}}">
|
||||
<slot></slot>
|
||||
</view>
|
||||
</view>
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
.content {
|
||||
flex: 1;
|
||||
margin-left: 30rpx;
|
||||
margin-left: 20rpx;
|
||||
margin-right: 30rpx;
|
||||
display: flex;
|
||||
padding: 10rpx 20rpx;
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
.inputContent {
|
||||
flex: 1;
|
||||
margin-left: 30rpx;
|
||||
margin-left: 20rpx;
|
||||
margin-right: 30rpx;
|
||||
display: flex;
|
||||
padding: 0 20rpx;
|
||||
@@ -33,5 +33,10 @@
|
||||
}
|
||||
|
||||
.label {
|
||||
width: 120rpx;
|
||||
width: 130rpx;
|
||||
}
|
||||
|
||||
.required {
|
||||
color: rgb(209, 83, 25);
|
||||
font-size: 30rpx;
|
||||
}
|
||||
379
pages/workBenchNew/components/installMeter/index.js
Normal file
379
pages/workBenchNew/components/installMeter/index.js
Normal file
@@ -0,0 +1,379 @@
|
||||
// pages/workBenchNew/components/createMeter/index.js
|
||||
import dayjs from "../../../../utils/dayjs"
|
||||
import { alertInfo, alertSuccess, loadingFunc } from "../../../../utils/index"
|
||||
import { uploadInstallMeter } from "../../../../service/public"
|
||||
import request from "../../../../utils/request"
|
||||
import { installMeter } from "../../../../service/meter"
|
||||
const { OK } = request
|
||||
|
||||
Page({
|
||||
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
time: "",
|
||||
area: "",
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad(options) {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面初次渲染完成
|
||||
*/
|
||||
onReady() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面显示
|
||||
*/
|
||||
onShow() {
|
||||
this.setData({
|
||||
time: dayjs().format("YYYY-MM-DD HH:mm:ss")
|
||||
})
|
||||
},
|
||||
onParkFocus(e) {
|
||||
this.setData({
|
||||
show: true,
|
||||
title: "园区",
|
||||
type: 'park'
|
||||
})
|
||||
},
|
||||
onMeterFocus(e) {
|
||||
const { park } = this.data;
|
||||
if (!park) {
|
||||
alertInfo("请先选择园区")
|
||||
return;
|
||||
}
|
||||
this.setData({
|
||||
show: true,
|
||||
title: "电表",
|
||||
type: 'inventoryMeter'
|
||||
})
|
||||
},
|
||||
onBuildingFocus() {
|
||||
const { park } = this.data;
|
||||
if (!park) {
|
||||
alertInfo("请先选择园区")
|
||||
return;
|
||||
}
|
||||
this.setData({
|
||||
show: true,
|
||||
title: "建筑",
|
||||
type: 'building'
|
||||
})
|
||||
},
|
||||
clearImage() {
|
||||
this.setData({
|
||||
url: ""
|
||||
})
|
||||
},
|
||||
onMeterBoxFocus() {
|
||||
const { park } = this.data;
|
||||
if (!park) {
|
||||
alertInfo("请先选择园区")
|
||||
return;
|
||||
}
|
||||
this.setData({
|
||||
show: true,
|
||||
title: "电表箱",
|
||||
type: 'meterBox'
|
||||
})
|
||||
},
|
||||
onMeterTypeFocus() {
|
||||
this.setData({
|
||||
show: true,
|
||||
title: "电表类型",
|
||||
type: 'meterType'
|
||||
})
|
||||
},
|
||||
onBindCard() {
|
||||
const { park } = this.data;
|
||||
if (!park) {
|
||||
alertInfo("请先选择园区")
|
||||
return;
|
||||
}
|
||||
this.setData({
|
||||
show: true,
|
||||
title: "卡",
|
||||
type: 'card'
|
||||
})
|
||||
},
|
||||
onBindCollectionA() {
|
||||
const { park } = this.data;
|
||||
if (!park) {
|
||||
alertInfo("请先选择园区")
|
||||
return;
|
||||
}
|
||||
this.setData({
|
||||
show: true,
|
||||
title: "采集器A",
|
||||
type: 'collection',
|
||||
collection: "A"
|
||||
})
|
||||
},
|
||||
onBindCollectionB() {
|
||||
const { park } = this.data;
|
||||
if (!park) {
|
||||
alertInfo("请先选择园区")
|
||||
return;
|
||||
}
|
||||
this.setData({
|
||||
show: true,
|
||||
title: "采集器B",
|
||||
type: 'collection',
|
||||
collection: "B"
|
||||
})
|
||||
},
|
||||
onBindCollectionC() {
|
||||
const { park } = this.data;
|
||||
if (!park) {
|
||||
alertInfo("请先选择园区")
|
||||
return;
|
||||
}
|
||||
this.setData({
|
||||
show: true,
|
||||
title: "采集器C",
|
||||
type: 'collection',
|
||||
collection: "C"
|
||||
})
|
||||
},
|
||||
uploadImage() {
|
||||
const that = this;
|
||||
wx.chooseMedia({
|
||||
count: 1,
|
||||
mediaType: ['image'],
|
||||
sourceType: ['album', 'camera'],
|
||||
success: async function(res) {
|
||||
console.log("res", res)
|
||||
const path = res.tempFiles?.[0]?.tempFilePath.toLowerCase()
|
||||
if (!/(\.jpg|\.png|\.jpeg)$/.test(path)) {
|
||||
wx.showToast({
|
||||
title: '请上传jpg、png或jpeg格式的图片',
|
||||
icon: 'none',
|
||||
});
|
||||
return;
|
||||
}
|
||||
var tempFilePaths = path;
|
||||
loadingFunc(async () => {
|
||||
const { code, message, url } = await uploadInstallMeter(tempFilePaths)
|
||||
if (code !== OK) {
|
||||
alertError(message)
|
||||
return
|
||||
}
|
||||
that.setData({
|
||||
url: url
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
onConfirm(e) {
|
||||
const { type, data = {} } = e.detail;
|
||||
const {collection} = this.data;
|
||||
switch(type) {
|
||||
case "park":
|
||||
this.setData({
|
||||
park: data.id,
|
||||
parkName: data.name,
|
||||
})
|
||||
break;
|
||||
case "tenement":
|
||||
this.setData({
|
||||
tenement: data.id,
|
||||
tenementName: data.name,
|
||||
})
|
||||
break;
|
||||
case "inventoryMeter":
|
||||
this.setData({
|
||||
meter: data.id,
|
||||
meterName: data?.sn,
|
||||
})
|
||||
break;
|
||||
case "building":
|
||||
this.setData({
|
||||
building: data.id,
|
||||
buildingName: data.name,
|
||||
});
|
||||
break;
|
||||
case "meterBox":
|
||||
this.setData({
|
||||
meterBox: data.id,
|
||||
meterBoxName: data.address,
|
||||
});
|
||||
break;
|
||||
case "tenement":
|
||||
this.setData({
|
||||
tenement: data.id,
|
||||
tenementName: data.name,
|
||||
})
|
||||
break;
|
||||
case "meterType":
|
||||
this.setData({
|
||||
meterType: data.way,
|
||||
meterTypeName: data,
|
||||
});
|
||||
break;
|
||||
case "meter":
|
||||
this.setData({
|
||||
meter: data.id,
|
||||
meterName: data.address,
|
||||
});
|
||||
break;
|
||||
case "card":
|
||||
this.setData({
|
||||
card: data.id,
|
||||
cardName: data.sim_number,
|
||||
});
|
||||
break;
|
||||
case "collection":
|
||||
let newData = {}
|
||||
if (collection === "A") {
|
||||
newData = {
|
||||
collectionA: data.id,
|
||||
collectionAName: data.name,
|
||||
}
|
||||
}
|
||||
if (collection === "B") {
|
||||
newData = {
|
||||
collectionB: data.id,
|
||||
collectionBName: data.name,
|
||||
}
|
||||
}
|
||||
if (collection === "C") {
|
||||
newData = {
|
||||
collectionC: data.id,
|
||||
collectionCName: data.name,
|
||||
}
|
||||
}
|
||||
this.setData(newData);
|
||||
break;
|
||||
}
|
||||
this.onCancel();
|
||||
},
|
||||
changeAddress(e) {
|
||||
this.setData({
|
||||
address: e.detail
|
||||
})
|
||||
},
|
||||
changeArea(e) {
|
||||
this.setData({
|
||||
area: e.detail
|
||||
})
|
||||
},
|
||||
changeOverall(e) {
|
||||
this.setData({
|
||||
overall: e.detail
|
||||
})
|
||||
},
|
||||
changeSharp(e) {
|
||||
this.setData({
|
||||
sharp: e.detail
|
||||
})
|
||||
},
|
||||
changePeak(e) {
|
||||
this.setData({
|
||||
sharp: e.detail
|
||||
})
|
||||
},
|
||||
changeFlat(e) {
|
||||
this.setData({
|
||||
flat: e.detail
|
||||
})
|
||||
},
|
||||
changeValley(e) {
|
||||
this.setData({
|
||||
valley: e.detail
|
||||
})
|
||||
},
|
||||
changeRatio(e) {
|
||||
this.setData({
|
||||
ratio: e.detail,
|
||||
})
|
||||
},
|
||||
onCancel() {
|
||||
this.setData({
|
||||
show: false,
|
||||
title: "",
|
||||
type: "",
|
||||
})
|
||||
},
|
||||
onTenementFocus(e) {
|
||||
const { park } = this.data;
|
||||
const that = this;
|
||||
if (!park) {
|
||||
alertInfo("请先选择园区")
|
||||
return;
|
||||
}
|
||||
this.setData({
|
||||
show: true,
|
||||
title: "商户",
|
||||
type: 'tenement'
|
||||
})
|
||||
},
|
||||
async handleSubmit() {
|
||||
const {
|
||||
park, meter, address, building, meterBox, meterType,
|
||||
ratio, area, card, collectionA, collectionB, collectionC,
|
||||
tenement, sharp, peak, flat, valley, overall, url
|
||||
} = this.data;
|
||||
if (!park || !meter || !address) {
|
||||
alertInfo("请填写必填项后保存")
|
||||
return;
|
||||
}
|
||||
console.log("data", this.data)
|
||||
const { code, data, message } = await installMeter({
|
||||
park, meter, address, building, meterBox, meterType,
|
||||
ratio, area, card, collectionA, collectionB, collectionC,
|
||||
tenement, sharp, peak, flat, valley, overall, url
|
||||
})
|
||||
if (code !== OK) {
|
||||
alertInfo(message)
|
||||
return;
|
||||
}
|
||||
alertSuccess("新增成功")
|
||||
},
|
||||
goback() {
|
||||
wx.navigateBack()
|
||||
},
|
||||
/**
|
||||
* 生命周期函数--监听页面隐藏
|
||||
*/
|
||||
onHide() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面卸载
|
||||
*/
|
||||
onUnload() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面相关事件处理函数--监听用户下拉动作
|
||||
*/
|
||||
onPullDownRefresh() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面上拉触底事件的处理函数
|
||||
*/
|
||||
onReachBottom() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 用户点击右上角分享
|
||||
*/
|
||||
onShareAppMessage() {
|
||||
|
||||
}
|
||||
})
|
||||
12
pages/workBenchNew/components/installMeter/index.json
Normal file
12
pages/workBenchNew/components/installMeter/index.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"usingComponents": {
|
||||
"navigator": "/components/navigator/index",
|
||||
"van-popup": "@vant/weapp/popup/index",
|
||||
"search-select": "/components/searchSelect/index",
|
||||
"van-field": "@vant/weapp/field/index",
|
||||
"van-button": "@vant/weapp/button/index",
|
||||
"van-image": "@vant/weapp/image/index",
|
||||
"searchSelectWrapper": "/components/searchSelectWrapper/index"
|
||||
},
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
181
pages/workBenchNew/components/installMeter/index.wxml
Normal file
181
pages/workBenchNew/components/installMeter/index.wxml
Normal file
@@ -0,0 +1,181 @@
|
||||
<!--pages/workBenchNew/components/createMeter/index.wxml-->
|
||||
<navigator canBack="{{true}}" title="新装电表" />
|
||||
|
||||
<view class="wrapper">
|
||||
<searchSelectWrapper
|
||||
label="当前时间"
|
||||
placeholder="请选择园区"
|
||||
useSlot
|
||||
type=""
|
||||
hideBorder="{{true}}"
|
||||
>
|
||||
<view> {{time}} </view>
|
||||
</searchSelectWrapper>
|
||||
<searchSelectWrapper
|
||||
label="选择园区"
|
||||
placeholder="请选择园区"
|
||||
text="{{parkName}}"
|
||||
bind:search="onParkFocus"
|
||||
required="{{true}}"
|
||||
/>
|
||||
|
||||
<searchSelectWrapper
|
||||
label="选择电表"
|
||||
placeholder="请选择电表"
|
||||
text="{{meterName}}"
|
||||
bind:search="onMeterFocus"
|
||||
required="{{true}}"
|
||||
/>
|
||||
|
||||
<searchSelectWrapper
|
||||
label="选择建筑"
|
||||
placeholder="请选择建筑"
|
||||
text="{{buildingName}}"
|
||||
bind:search="onBuildingFocus"
|
||||
|
||||
/>
|
||||
<searchSelectWrapper
|
||||
label="电表箱"
|
||||
placeholder="请选择电表箱"
|
||||
text="{{meterBoxName}}"
|
||||
bind:search="onMeterBoxFocus"
|
||||
/>
|
||||
<searchSelectWrapper
|
||||
label="电表类型"
|
||||
placeholder="请选择电表类型"
|
||||
text="{{meterTypeName}}"
|
||||
bind:search="onMeterTypeFocus"
|
||||
required="{{true}}"
|
||||
/>
|
||||
<searchSelectWrapper
|
||||
label="倍率"
|
||||
placeholder="请输入倍率"
|
||||
type="input"
|
||||
text="ratio"
|
||||
bind:changeText="changeRatio"
|
||||
/>
|
||||
<searchSelectWrapper
|
||||
label="电表地址"
|
||||
placeholder="请输入电表地址"
|
||||
text="area"
|
||||
type="input"
|
||||
required="{{true}}"
|
||||
bind:changeText="changeAddress"
|
||||
/>
|
||||
<searchSelectWrapper
|
||||
label="所辖面积"
|
||||
placeholder="请输入所辖面积"
|
||||
text="area"
|
||||
type="input"
|
||||
bind:changeText="changeArea"
|
||||
/>
|
||||
<searchSelectWrapper
|
||||
label="绑定卡"
|
||||
placeholder="请选择卡绑定(选填)"
|
||||
text="{{cardName}}"
|
||||
bind:search="onBindCard"
|
||||
/>
|
||||
<searchSelectWrapper
|
||||
label="采集器A"
|
||||
placeholder="请选择采集器绑定(选填)"
|
||||
text="{{collectionA}}"
|
||||
bind:search="onBindCollectionA"
|
||||
/>
|
||||
<searchSelectWrapper
|
||||
label="采集器B"
|
||||
placeholder="请选择采集器绑定(选填)"
|
||||
text="{{collectionB}}"
|
||||
bind:search="onBindCollectionB"
|
||||
/>
|
||||
<searchSelectWrapper
|
||||
label="采集器C"
|
||||
placeholder="请选择采集器绑定(选填)"
|
||||
text="{{collectionC}}"
|
||||
bind:search="onBindCollectionC"
|
||||
/>
|
||||
<searchSelectWrapper
|
||||
label="商户"
|
||||
placeholder="请选择商户"
|
||||
text="{{ tenementName }}"
|
||||
bind:search="onTenementFocus"
|
||||
/>
|
||||
<searchSelectWrapper
|
||||
label="总"
|
||||
placeholder="请输入总"
|
||||
type="input"
|
||||
bind:changeText="changeOverall"
|
||||
/>
|
||||
<searchSelectWrapper
|
||||
label="尖"
|
||||
placeholder="请输入尖"
|
||||
type="input"
|
||||
bind:changeText="changeSharp"
|
||||
/>
|
||||
<searchSelectWrapper
|
||||
label="峰"
|
||||
placeholder="请输入峰"
|
||||
type="input"
|
||||
bind:changeText="changePeak"
|
||||
/>
|
||||
<searchSelectWrapper
|
||||
label="平"
|
||||
placeholder="请输入平"
|
||||
type="input"
|
||||
bind:changeText="changeFlat"
|
||||
/>
|
||||
<searchSelectWrapper
|
||||
label="谷"
|
||||
placeholder="请输入谷"
|
||||
type="input"
|
||||
bind:changeText="changeValley"
|
||||
/>
|
||||
<searchSelectWrapper
|
||||
label="图片"
|
||||
useSlot="{{true}}"
|
||||
type=""
|
||||
hideBorder="{{true}}"
|
||||
>
|
||||
<view style="display: flex; align-items: center;">
|
||||
<view>
|
||||
<van-button type="info" size="small" bind:click="uploadImage" custom-style="margin-right: 20rpx;"> 上传 </van-button>
|
||||
<view style="margin-top: 20rpx" wx:if="{{!!url}}">
|
||||
<van-button type="danger" size="small" bind:click="clearImage" custom-style="margin-right: 20rpx;"> 清除 </van-button>
|
||||
</view>
|
||||
</view>
|
||||
<van-image wx:if="{{!!url}}" width="100" height="100" src="{{url}}" custom-style="margin-left: 20rpx;" />
|
||||
</view>
|
||||
|
||||
</searchSelectWrapper>
|
||||
<view class="operate">
|
||||
<view class="submit"> <van-button type="info" block bind:click="handleSubmit"> 提交 </van-button> </view>
|
||||
<view class="cancel"> <van-button block bind:tap="goback"> 返回 </van-button> </view>
|
||||
</view>
|
||||
|
||||
|
||||
</view>
|
||||
|
||||
|
||||
|
||||
<search-select
|
||||
show="{{show}}"
|
||||
title="{{title}}"
|
||||
type="{{type}}"
|
||||
park="{{park}}"
|
||||
bindconfirm="onConfirm"
|
||||
bindcancel="onCancel"
|
||||
wx:if="{{show}}"
|
||||
/>
|
||||
|
||||
<van-popup
|
||||
show="{{ imageShow }}"
|
||||
bind:close="onClose"
|
||||
z-index="99999"
|
||||
>
|
||||
<van-image
|
||||
width="100vw"
|
||||
height="99.1vh"
|
||||
fit="contain"
|
||||
src="{{url}}"
|
||||
bind:click="onClose"
|
||||
/>
|
||||
</van-popup>
|
||||
15
pages/workBenchNew/components/installMeter/index.wxss
Normal file
15
pages/workBenchNew/components/installMeter/index.wxss
Normal file
@@ -0,0 +1,15 @@
|
||||
/* pages/workBenchNew/components/createMeter/index.wxss */
|
||||
|
||||
.operate {
|
||||
display: flex;
|
||||
padding-top: 24rpx;
|
||||
padding-bottom: 36rpx;
|
||||
}
|
||||
|
||||
.submit, .cancel {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.submit {
|
||||
margin-right: 30rpx;
|
||||
}
|
||||
27
pages/workBenchNew/components/operateButton/index.js
Normal file
27
pages/workBenchNew/components/operateButton/index.js
Normal file
@@ -0,0 +1,27 @@
|
||||
// pages/workBenchNew/components/operateButton/index.js
|
||||
Component({
|
||||
|
||||
/**
|
||||
* 组件的属性列表
|
||||
*/
|
||||
properties: {
|
||||
text: String,
|
||||
style: String,
|
||||
},
|
||||
|
||||
/**
|
||||
* 组件的初始数据
|
||||
*/
|
||||
data: {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 组件的方法列表
|
||||
*/
|
||||
methods: {
|
||||
handleClick() {
|
||||
this.triggerEvent("click")
|
||||
}
|
||||
}
|
||||
})
|
||||
4
pages/workBenchNew/components/operateButton/index.json
Normal file
4
pages/workBenchNew/components/operateButton/index.json
Normal file
@@ -0,0 +1,4 @@
|
||||
{
|
||||
"component": true,
|
||||
"usingComponents": {}
|
||||
}
|
||||
2
pages/workBenchNew/components/operateButton/index.wxml
Normal file
2
pages/workBenchNew/components/operateButton/index.wxml
Normal file
@@ -0,0 +1,2 @@
|
||||
<!--pages/workBenchNew/components/operateButton/index.wxml-->
|
||||
<view class="buttonWrapper" style="{{style}}" bind:tap="handleClick"> {{ text }} </view>
|
||||
12
pages/workBenchNew/components/operateButton/index.wxss
Normal file
12
pages/workBenchNew/components/operateButton/index.wxss
Normal file
@@ -0,0 +1,12 @@
|
||||
/* pages/workBenchNew/components/operateButton/index.wxss */
|
||||
|
||||
.buttonWrapper {
|
||||
height: 100rpx;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
border: 1rpx solid #ccc;
|
||||
border-radius: 10rpx;
|
||||
margin-bottom: 24rpx;
|
||||
margin-top: 24rpx;
|
||||
}
|
||||
192
pages/workBenchNew/components/recharge/index.js
Normal file
192
pages/workBenchNew/components/recharge/index.js
Normal file
@@ -0,0 +1,192 @@
|
||||
// pages/workBenchNew/components/recharge/index.js
|
||||
import { handleRecharge } from "../../../../service/recharge";
|
||||
import { alertInfo, alertSuccess, loadingFunc } from "../../../../utils/index";
|
||||
import request from '../../../../utils/request'
|
||||
const { OK } = request;
|
||||
Page({
|
||||
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad(options) {
|
||||
|
||||
},
|
||||
onParkFocus() {
|
||||
this.setData({
|
||||
show: true,
|
||||
title: "园区",
|
||||
type: 'park'
|
||||
})
|
||||
},
|
||||
onMeterFocus() {
|
||||
const { park } = this.data;
|
||||
if (!park) {
|
||||
alertInfo("请先选择园区")
|
||||
return;
|
||||
}
|
||||
this.setData({
|
||||
show: true,
|
||||
title: "电表",
|
||||
type: 'meter'
|
||||
})
|
||||
},
|
||||
onConfirm(e) {
|
||||
const { data, type, way } = e.detail;
|
||||
switch(type) {
|
||||
case "park":
|
||||
this.setData({
|
||||
parkName: data.name,
|
||||
park: data.id,
|
||||
})
|
||||
break;
|
||||
case "meter":
|
||||
this.setData({
|
||||
meterName: `${data.meterNo}-${data.address}${data.tenement?.name ? '-' + data.tenement?.name : ''}`,
|
||||
meter: data.id,
|
||||
})
|
||||
break;
|
||||
case "pay":
|
||||
this.setData({
|
||||
payName: data,
|
||||
way: way,
|
||||
});
|
||||
break;
|
||||
}
|
||||
this.onCancel();
|
||||
},
|
||||
onCancel() {
|
||||
this.setData({
|
||||
show: false,
|
||||
title: "",
|
||||
type: "",
|
||||
})
|
||||
},
|
||||
onPayFocus() {
|
||||
this.setData({
|
||||
show: true,
|
||||
title: "付款方式",
|
||||
type: 'pay'
|
||||
})
|
||||
},
|
||||
onChangeMoney(e) {
|
||||
this.setData({ money: e.detail })
|
||||
},
|
||||
onChangeVoucherNo(e) {
|
||||
this.setData({ voucherNo: e.detail })
|
||||
},
|
||||
handleClear() {
|
||||
this.setData({
|
||||
park: "",
|
||||
parkName: "",
|
||||
meter: "",
|
||||
meterName: "",
|
||||
way: "",
|
||||
payName: "",
|
||||
show: false,
|
||||
title: "",
|
||||
type: "",
|
||||
money: null,
|
||||
voucherNo: null
|
||||
})
|
||||
},
|
||||
async handleSubmit() {
|
||||
const that = this;
|
||||
const { park, meter, money, way, voucherNo } = this.data;
|
||||
if (!park) {
|
||||
alertInfo("请选择园区");
|
||||
return;
|
||||
}
|
||||
if (!meter) {
|
||||
alertInfo("请选择电表")
|
||||
return;
|
||||
}
|
||||
if (!money) {
|
||||
alertInfo("请输入金额")
|
||||
return
|
||||
}
|
||||
if (!way && way !== 0) {
|
||||
alertInfo("请选择付款方式")
|
||||
return
|
||||
}
|
||||
if (!voucherNo) {
|
||||
alertInfo("请输入凭证号")
|
||||
return
|
||||
}
|
||||
loadingFunc(async () => {
|
||||
const { code, message } = await handleRecharge(park, {
|
||||
amount: `${money || ''}`,
|
||||
meter,
|
||||
paymentType: way,
|
||||
voucherNo,
|
||||
type: 0
|
||||
})
|
||||
if (code !== OK) {
|
||||
alertInfo(message)
|
||||
return
|
||||
}
|
||||
alertSuccess("充值成功")
|
||||
setTimeout(() => {
|
||||
that.handleClear()
|
||||
that.setData({
|
||||
|
||||
})
|
||||
}, 500)
|
||||
})
|
||||
|
||||
},
|
||||
/**
|
||||
* 生命周期函数--监听页面初次渲染完成
|
||||
*/
|
||||
onReady() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面显示
|
||||
*/
|
||||
onShow() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面隐藏
|
||||
*/
|
||||
onHide() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面卸载
|
||||
*/
|
||||
onUnload() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面相关事件处理函数--监听用户下拉动作
|
||||
*/
|
||||
onPullDownRefresh() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面上拉触底事件的处理函数
|
||||
*/
|
||||
onReachBottom() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 用户点击右上角分享
|
||||
*/
|
||||
onShareAppMessage() {
|
||||
|
||||
}
|
||||
})
|
||||
11
pages/workBenchNew/components/recharge/index.json
Normal file
11
pages/workBenchNew/components/recharge/index.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"usingComponents": {
|
||||
"van-popup": "@vant/weapp/popup/index",
|
||||
"search-select": "/components/searchSelect/index",
|
||||
"van-field": "@vant/weapp/field/index",
|
||||
"van-button": "@vant/weapp/button/index",
|
||||
"searchSelectWrapper": "/components/searchSelectWrapper/index",
|
||||
"navigator": "/components/navigator"
|
||||
},
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
51
pages/workBenchNew/components/recharge/index.wxml
Normal file
51
pages/workBenchNew/components/recharge/index.wxml
Normal file
@@ -0,0 +1,51 @@
|
||||
<!--pages/workBenchNew/components/recharge/index.wxml-->
|
||||
<navigator canBack="{{true}}" title="充值" />
|
||||
<van-cell-group>
|
||||
<searchSelectWrapper
|
||||
label="园区"
|
||||
placeholder="请选择园区"
|
||||
text="{{parkName}}"
|
||||
bind:search="onParkFocus"
|
||||
/>
|
||||
|
||||
<searchSelectWrapper
|
||||
label="电表"
|
||||
placeholder="请选择电表"
|
||||
text="{{meterName}}"
|
||||
bind:search="onMeterFocus"
|
||||
/>
|
||||
<searchSelectWrapper
|
||||
label="金额"
|
||||
placeholder="请输入金额"
|
||||
text="{{meterName}}"
|
||||
fieldType="number"
|
||||
type="input"
|
||||
bind:changeText="onChangeMoney"
|
||||
/>
|
||||
<searchSelectWrapper
|
||||
label="付款方式"
|
||||
placeholder="请选择付款方式"
|
||||
text="{{payName}}"
|
||||
bind:search="onPayFocus"
|
||||
/>
|
||||
<searchSelectWrapper
|
||||
label="凭证"
|
||||
placeholder="请输入凭证"
|
||||
type="input"
|
||||
bind:changeText="onChangeVoucherNo"
|
||||
/>
|
||||
</van-cell-group>
|
||||
|
||||
<view style="margin-top: 60rpx;display: flex; justify-content: center; align-items: center;">
|
||||
<van-button type="info" size="small" style="margin-right: 30rpx;" bind:click="handleSubmit"> 确认 </van-button>
|
||||
<van-button size="small" bind:click="handleClear"> 清空 </van-button>
|
||||
</view>
|
||||
<search-select
|
||||
show="{{show}}"
|
||||
title="{{title}}"
|
||||
type="{{type}}"
|
||||
park="{{park}}"
|
||||
bindconfirm="onConfirm"
|
||||
bindcancel="onCancel"
|
||||
wx:if="{{show}}"
|
||||
/>
|
||||
1
pages/workBenchNew/components/recharge/index.wxss
Normal file
1
pages/workBenchNew/components/recharge/index.wxss
Normal file
@@ -0,0 +1 @@
|
||||
/* pages/workBenchNew/components/recharge/index.wxss */
|
||||
173
pages/workBenchNew/components/uninstallMeter/index.js
Normal file
173
pages/workBenchNew/components/uninstallMeter/index.js
Normal file
@@ -0,0 +1,173 @@
|
||||
// pages/workBenchNew/components/uninstallMeter/index.js
|
||||
import dayjs from "../../../../utils/dayjs"
|
||||
import { alertInfo, } from "../../../../utils/index"
|
||||
Page({
|
||||
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
|
||||
},
|
||||
onParkFocus(e) {
|
||||
this.setData({
|
||||
show: true,
|
||||
title: "园区",
|
||||
type: 'park'
|
||||
})
|
||||
},
|
||||
onMeterFocus(e) {
|
||||
const { park } = this.data;
|
||||
if (!park) {
|
||||
alertInfo("请先选择园区")
|
||||
return;
|
||||
}
|
||||
this.setData({
|
||||
show: true,
|
||||
title: "电表",
|
||||
type: 'meter'
|
||||
})
|
||||
},
|
||||
onConfirm(e) {
|
||||
const { type, data = {} } = e.detail;
|
||||
const {collection} = this.data;
|
||||
switch(type) {
|
||||
case "park":
|
||||
this.setData({
|
||||
park: data.id,
|
||||
parkName: data.name,
|
||||
})
|
||||
break;
|
||||
case "tenement":
|
||||
this.setData({
|
||||
tenement: data.id,
|
||||
tenementName: data.name,
|
||||
})
|
||||
break;
|
||||
case "building":
|
||||
this.setData({
|
||||
building: data.id,
|
||||
buildingName: data.name,
|
||||
});
|
||||
break;
|
||||
case "meterBox":
|
||||
this.setData({
|
||||
meterBox: data.id,
|
||||
meterBoxName: data.address,
|
||||
});
|
||||
break;
|
||||
case "meterType":
|
||||
this.setData({
|
||||
meterType: data.way,
|
||||
meterTypeName: data,
|
||||
});
|
||||
break;
|
||||
case "meter":
|
||||
this.setData({
|
||||
meter: data.id,
|
||||
meterName: data.address,
|
||||
});
|
||||
break;
|
||||
case "card":
|
||||
this.setData({
|
||||
card: data.id,
|
||||
cardName: data.sim_number,
|
||||
});
|
||||
break;
|
||||
case "collection":
|
||||
let newData = {}
|
||||
if (collection === "A") {
|
||||
newData = {
|
||||
collectionA: data.id,
|
||||
collectionAName: data.name,
|
||||
}
|
||||
}
|
||||
if (collection === "B") {
|
||||
newData = {
|
||||
collectionB: data.id,
|
||||
collectionBName: data.name,
|
||||
}
|
||||
}
|
||||
if (collection === "C") {
|
||||
newData = {
|
||||
collectionC: data.id,
|
||||
collectionCName: data.name,
|
||||
}
|
||||
}
|
||||
this.setData(newData);
|
||||
break;
|
||||
}
|
||||
this.onCancel();
|
||||
},
|
||||
onCancel() {
|
||||
this.setData({
|
||||
show: false,
|
||||
title: "",
|
||||
type: "",
|
||||
})
|
||||
},
|
||||
goback() {
|
||||
wx.navigateBack()
|
||||
},
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad(options) {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面初次渲染完成
|
||||
*/
|
||||
onReady() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面显示
|
||||
*/
|
||||
onShow() {
|
||||
this.setData({
|
||||
time: dayjs().format("YYYY-MM-DD HH:mm:ss")
|
||||
})
|
||||
},
|
||||
changeReason(e) {
|
||||
this.setData({
|
||||
reason: e.detail,
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 生命周期函数--监听页面隐藏
|
||||
*/
|
||||
onHide() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面卸载
|
||||
*/
|
||||
onUnload() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面相关事件处理函数--监听用户下拉动作
|
||||
*/
|
||||
onPullDownRefresh() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面上拉触底事件的处理函数
|
||||
*/
|
||||
onReachBottom() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 用户点击右上角分享
|
||||
*/
|
||||
onShareAppMessage() {
|
||||
|
||||
}
|
||||
})
|
||||
11
pages/workBenchNew/components/uninstallMeter/index.json
Normal file
11
pages/workBenchNew/components/uninstallMeter/index.json
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"usingComponents": {
|
||||
"navigator": "/components/navigator/index",
|
||||
"van-popup": "@vant/weapp/popup/index",
|
||||
"search-select": "/components/searchSelect/index",
|
||||
"van-field": "@vant/weapp/field/index",
|
||||
"van-button": "@vant/weapp/button/index",
|
||||
"searchSelectWrapper": "/components/searchSelectWrapper/index"
|
||||
},
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
75
pages/workBenchNew/components/uninstallMeter/index.wxml
Normal file
75
pages/workBenchNew/components/uninstallMeter/index.wxml
Normal file
@@ -0,0 +1,75 @@
|
||||
<!--pages/workBenchNew/components/uninstallMeter/index.wxml-->
|
||||
<navigator canBack="{{true}}" title="拆表" />
|
||||
|
||||
<view class="wrapper">
|
||||
<searchSelectWrapper
|
||||
label="当前时间"
|
||||
placeholder="请选择园区"
|
||||
useSlot
|
||||
type=""
|
||||
hideBorder="{{true}}"
|
||||
>
|
||||
<view> {{time}} </view>
|
||||
</searchSelectWrapper>
|
||||
<searchSelectWrapper
|
||||
label="选择园区"
|
||||
placeholder="请选择园区"
|
||||
text="{{parkName}}"
|
||||
bind:search="onParkFocus"
|
||||
required="{{true}}"
|
||||
/>
|
||||
|
||||
<searchSelectWrapper
|
||||
label="选择电表"
|
||||
placeholder="请选择电表"
|
||||
text="{{meterName}}"
|
||||
bind:search="onMeterFocus"
|
||||
required="{{true}}"
|
||||
/>
|
||||
<searchSelectWrapper
|
||||
label="原因"
|
||||
placeholder="请输入原因"
|
||||
text="reason"
|
||||
type="input"
|
||||
bind:changeText="changeReason"
|
||||
/>
|
||||
<searchSelectWrapper
|
||||
label="图片"
|
||||
useSlot="{{true}}"
|
||||
type=""
|
||||
hideBorder="{{true}}"
|
||||
>
|
||||
<van-button wx:if="{{!image}}" type="info" size="small"> 上传 </van-button>
|
||||
|
||||
</searchSelectWrapper>
|
||||
<view class="operate">
|
||||
<view class="submit"> <van-button type="info" block> 提交 </van-button> </view>
|
||||
<view class="cancel"> <van-button block bind:tap="goback"> 返回 </van-button> </view>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
|
||||
|
||||
<search-select
|
||||
show="{{show}}"
|
||||
title="{{title}}"
|
||||
type="{{type}}"
|
||||
park="{{park}}"
|
||||
bindconfirm="onConfirm"
|
||||
bindcancel="onCancel"
|
||||
wx:if="{{show}}"
|
||||
/>
|
||||
|
||||
<van-popup
|
||||
show="{{ imageShow }}"
|
||||
bind:close="onClose"
|
||||
z-index="99999"
|
||||
>
|
||||
<van-image
|
||||
width="100vw"
|
||||
height="99.1vh"
|
||||
fit="contain"
|
||||
src="{{url}}"
|
||||
bind:click="onClose"
|
||||
/>
|
||||
</van-popup>
|
||||
15
pages/workBenchNew/components/uninstallMeter/index.wxss
Normal file
15
pages/workBenchNew/components/uninstallMeter/index.wxss
Normal file
@@ -0,0 +1,15 @@
|
||||
/* pages/workBenchNew/components/uninstallMeter/index.wxss */
|
||||
|
||||
.operate {
|
||||
display: flex;
|
||||
padding-top: 24rpx;
|
||||
padding-bottom: 36rpx;
|
||||
}
|
||||
|
||||
.submit, .cancel {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.submit {
|
||||
margin-right: 30rpx;
|
||||
}
|
||||
@@ -1,17 +1,14 @@
|
||||
<!--pages/workBench/components/recharge/index.wxml-->
|
||||
<navigator title="充值审核" canBack="{{true}}" />
|
||||
<view style="">
|
||||
<view>
|
||||
<view class="typeQuery">
|
||||
<van-row>
|
||||
<van-col span="8">
|
||||
<van-col span="12">
|
||||
<view class="typeQueryText" style="color: {{active === 0 ? '#0958d9' : '#000'}}" bind:tap="changeQueryType" data-type="{{0}}"> 待审核 </view>
|
||||
</van-col>
|
||||
<van-col span="8">
|
||||
<van-col span="12">
|
||||
<view class="typeQueryText" style="color: {{active === 1 ? '#0958d9' : '#000'}}" bind:tap="changeQueryType" data-type="{{1}}"> 已审核 </view>
|
||||
</van-col>
|
||||
<van-col span="8">
|
||||
<view class="typeQueryText" style="color: {{active === 2 ? '#0958d9' : '#000'}}" bind:tap="changeQueryType" data-type="{{2}}"> 充值 </view>
|
||||
</van-col>
|
||||
</van-row>
|
||||
</view>
|
||||
</view>
|
||||
|
||||
@@ -61,6 +61,21 @@ Page({
|
||||
url: '/pages/home/index',
|
||||
})
|
||||
},
|
||||
jumpToRecharge() {
|
||||
wx.navigateTo({
|
||||
url: '/pages/workBenchNew/components/recharge/index',
|
||||
})
|
||||
},
|
||||
jumpToInstallMeter() {
|
||||
wx.navigateTo({
|
||||
url: '/pages/workBenchNew/components/installMeter/index',
|
||||
})
|
||||
},
|
||||
jumpToUninstallMeter() {
|
||||
wx.navigateTo({
|
||||
url: '/pages/workBenchNew/components/uninstallMeter/index',
|
||||
})
|
||||
},
|
||||
/**
|
||||
* 生命周期函数--监听页面初次渲染完成
|
||||
*/
|
||||
|
||||
@@ -3,7 +3,8 @@
|
||||
"navigator": "/components/navigator/index",
|
||||
"van-row": "@vant/weapp/row/index",
|
||||
"van-col": "@vant/weapp/col/index",
|
||||
"van-button": "@vant/weapp/button/index"
|
||||
"van-button": "@vant/weapp/button/index",
|
||||
"operate-button": "./components/operateButton/index"
|
||||
},
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
<navigator title="工作台" canBack="{{false}}" />
|
||||
|
||||
<view class="wrapper">
|
||||
<van-row gutter="10">
|
||||
<!-- <van-row gutter="10">
|
||||
<van-col span="12">
|
||||
<view class="contentWrapper" bind:tap="jumpToMeter">
|
||||
<view class="image">
|
||||
@@ -73,7 +73,62 @@
|
||||
</view>
|
||||
</view>
|
||||
</van-col>
|
||||
</van-row>
|
||||
</van-row> -->
|
||||
<view>
|
||||
<view> 通用操作 </view>
|
||||
<view>
|
||||
<van-row gutter="10">
|
||||
<van-col span="8">
|
||||
<operate-button text="充值" bind:click="jumpToRecharge" />
|
||||
</van-col>
|
||||
<van-col span="8">
|
||||
<operate-button text="充值审核" bind:click="jumpToPay" />
|
||||
</van-col>
|
||||
<van-col span="8">
|
||||
<operate-button text="其他审核" />
|
||||
</van-col>
|
||||
<van-col span="8">
|
||||
<operate-button text="电表操作" bind:click="jumpToMeter" />
|
||||
</van-col>
|
||||
<van-col span="8">
|
||||
<operate-button text="商户操作" bind:click="jumpToTenement" />
|
||||
</van-col>
|
||||
<van-col span="8">
|
||||
<operate-button text="C端账号" bind:click="jumpToWxUser" />
|
||||
</van-col>
|
||||
</van-row>
|
||||
</view>
|
||||
<view> 现场操作 </view>
|
||||
<view>
|
||||
<van-row gutter="10">
|
||||
<van-col span="8">
|
||||
<operate-button text="抄表" bind:click="jumpToRoute" />
|
||||
</van-col>
|
||||
<van-col span="8">
|
||||
<operate-button text="拆表" bind:click="jumpToUninstallMeter" />
|
||||
</van-col>
|
||||
<van-col span="8">
|
||||
<operate-button text="新装" bind:click="jumpToInstallMeter" />
|
||||
</van-col>
|
||||
<van-col span="8">
|
||||
<operate-button text="开户" />
|
||||
</van-col>
|
||||
<van-col span="8">
|
||||
<operate-button text="销户" />
|
||||
</van-col>
|
||||
<van-col span="8">
|
||||
<operate-button text="强控" />
|
||||
</van-col>
|
||||
</van-row>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</view>
|
||||
</view>
|
||||
<view class="operate">
|
||||
<van-button type="info" block bind:click="jumpToHome"> 回到首页 </van-button>
|
||||
</view>
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* pages/workBench/index.wxss */
|
||||
|
||||
.wrapper {
|
||||
margin: 20rpx 0rpx;
|
||||
margin:20rpx 0rpx;
|
||||
}
|
||||
|
||||
.contentWrapper {
|
||||
|
||||
66
pages/workBenchTodoList/index.js
Normal file
66
pages/workBenchTodoList/index.js
Normal file
@@ -0,0 +1,66 @@
|
||||
// pages/workBenchTodoList/index.js
|
||||
Page({
|
||||
|
||||
/**
|
||||
* 页面的初始数据
|
||||
*/
|
||||
data: {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面加载
|
||||
*/
|
||||
onLoad(options) {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面初次渲染完成
|
||||
*/
|
||||
onReady() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面显示
|
||||
*/
|
||||
onShow() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面隐藏
|
||||
*/
|
||||
onHide() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 生命周期函数--监听页面卸载
|
||||
*/
|
||||
onUnload() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面相关事件处理函数--监听用户下拉动作
|
||||
*/
|
||||
onPullDownRefresh() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 页面上拉触底事件的处理函数
|
||||
*/
|
||||
onReachBottom() {
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* 用户点击右上角分享
|
||||
*/
|
||||
onShareAppMessage() {
|
||||
|
||||
}
|
||||
})
|
||||
13
pages/workBenchTodoList/index.json
Normal file
13
pages/workBenchTodoList/index.json
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"usingComponents": {
|
||||
"navigator": "/components/navigator/index",
|
||||
"van-popup": "@vant/weapp/popup/index",
|
||||
"van-row": "@vant/weapp/row/index",
|
||||
"van-col": "@vant/weapp/col/index",
|
||||
"search-select": "/components/searchSelect/index",
|
||||
"van-field": "@vant/weapp/field/index",
|
||||
"van-button": "@vant/weapp/button/index",
|
||||
"searchSelectWrapper": "/components/searchSelectWrapper/index"
|
||||
},
|
||||
"navigationStyle": "custom"
|
||||
}
|
||||
12
pages/workBenchTodoList/index.wxml
Normal file
12
pages/workBenchTodoList/index.wxml
Normal file
@@ -0,0 +1,12 @@
|
||||
<!--pages/workBenchTodoList/index.wxml-->
|
||||
<navigator canBack="{{true}}" title="工单列表" />
|
||||
<view class="wrapper">
|
||||
<van-row gutter="20">
|
||||
<van-col span="12">
|
||||
1
|
||||
</van-col>
|
||||
<van-col span="12">
|
||||
2
|
||||
</van-col>
|
||||
</van-row>
|
||||
</view>
|
||||
1
pages/workBenchTodoList/index.wxss
Normal file
1
pages/workBenchTodoList/index.wxss
Normal file
@@ -0,0 +1 @@
|
||||
/* pages/workBenchTodoList/index.wxss */
|
||||
@@ -24,22 +24,15 @@
|
||||
"miniprogram": {
|
||||
"list": [
|
||||
{
|
||||
"name": "pages/readingHistory/index",
|
||||
"pathName": "pages/readingHistory/index",
|
||||
"query": "meter=METER00114674412879874&park=P00114672412196865&routeId=PR00121172392214529&disabled=false",
|
||||
"launchMode": "default",
|
||||
"scene": null
|
||||
},
|
||||
{
|
||||
"name": "pages/workBenchNew/components/workBenchTenement/index",
|
||||
"pathName": "pages/workBenchNew/components/workBenchTenement/index",
|
||||
"name": "pages/workBenchTodoList/index",
|
||||
"pathName": "pages/workBenchTodoList/index",
|
||||
"query": "",
|
||||
"launchMode": "default",
|
||||
"scene": null
|
||||
},
|
||||
{
|
||||
"name": "pages/workBenchNew/components/workBenchReading/index",
|
||||
"pathName": "pages/workBenchNew/components/workBenchReading/index",
|
||||
"name": "pages/workBenchNew/components/uninstallMeter/index",
|
||||
"pathName": "pages/workBenchNew/components/uninstallMeter/index",
|
||||
"query": "",
|
||||
"launchMode": "default",
|
||||
"scene": null
|
||||
@@ -50,76 +43,6 @@
|
||||
"query": "",
|
||||
"launchMode": "default",
|
||||
"scene": null
|
||||
},
|
||||
{
|
||||
"name": "pages/writeReading/index",
|
||||
"pathName": "pages/writeReading/index",
|
||||
"query": "id=PR00118027286020097",
|
||||
"launchMode": "default",
|
||||
"scene": null
|
||||
},
|
||||
{
|
||||
"name": "pages/readingHistory/index",
|
||||
"pathName": "pages/readingHistory/index",
|
||||
"query": "",
|
||||
"launchMode": "default",
|
||||
"scene": null
|
||||
},
|
||||
{
|
||||
"name": "pages/workBench/index",
|
||||
"pathName": "pages/workBench/index",
|
||||
"query": "",
|
||||
"launchMode": "default",
|
||||
"scene": null
|
||||
},
|
||||
{
|
||||
"name": "pages/workBench/index",
|
||||
"pathName": "pages/workBench/index",
|
||||
"query": "",
|
||||
"launchMode": "default",
|
||||
"scene": null
|
||||
},
|
||||
{
|
||||
"name": "childPackage/pages/electricQuery/index",
|
||||
"pathName": "childPackage/pages/electricQuery/index",
|
||||
"query": "",
|
||||
"launchMode": "default",
|
||||
"scene": null
|
||||
},
|
||||
{
|
||||
"name": "pages/workBench/index",
|
||||
"pathName": "pages/workBench/index",
|
||||
"query": "",
|
||||
"launchMode": "default",
|
||||
"scene": null
|
||||
},
|
||||
{
|
||||
"name": "childPackage/pages/electricQuery/index",
|
||||
"pathName": "childPackage/pages/electricQuery/index",
|
||||
"query": "",
|
||||
"launchMode": "default",
|
||||
"scene": null
|
||||
},
|
||||
{
|
||||
"name": "pages/workBench/index",
|
||||
"pathName": "pages/workBench/index",
|
||||
"query": "",
|
||||
"launchMode": "default",
|
||||
"scene": null
|
||||
},
|
||||
{
|
||||
"name": "childPackage/pages/electricQuery/index",
|
||||
"pathName": "childPackage/pages/electricQuery/index",
|
||||
"query": "",
|
||||
"launchMode": "default",
|
||||
"scene": null
|
||||
},
|
||||
{
|
||||
"name": "childPackage/pages/electricQuery/index",
|
||||
"pathName": "childPackage/pages/electricQuery/index",
|
||||
"query": "",
|
||||
"launchMode": "default",
|
||||
"scene": null
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -40,4 +40,31 @@ export const handleOperateMeterSwitch = async function({ ids = [], status }) {
|
||||
// 绑定时获取电表的最新信息
|
||||
export const getWorkMeterDetail = async function(code = '') {
|
||||
return await GET(`/vx/getWorkMeterDetail?code=${code}`);
|
||||
}
|
||||
|
||||
// 获取某一园区下的电表箱列表
|
||||
export const getParkBoxList = async function({park = "", keyword = "", page = 1}) {
|
||||
return await GET(`/box/${park}?page=${page}&keyword=${replaceSpecialIcon(keyword)}`);
|
||||
}
|
||||
|
||||
// 获取卡列表
|
||||
export const getCardList = async function({park = "", keyword = "", page = 1}) {
|
||||
return await GET(`/equipment/getCardList?page=${page}&park=${park}&keyword=${replaceSpecialIcon(keyword)}`);
|
||||
}
|
||||
|
||||
|
||||
// 获取互感器列表
|
||||
export const getCollectionList = async function({park = "", keyword = "", page = 1}) {
|
||||
return await GET(`/transformer/list/select?page=${page}&park=${park}&transformerId=${replaceSpecialIcon(keyword)}`);
|
||||
}
|
||||
|
||||
|
||||
// 获取库存电表列表
|
||||
export const getInventoryMeter = async function({park = "", keyword = "", page = 1}) {
|
||||
return await GET(`/electricity/list?page=${page}&park=${park}&keyword=${replaceSpecialIcon(keyword)}`);
|
||||
}
|
||||
|
||||
// 新装电表
|
||||
export const installMeter = async function(data) {
|
||||
return await POST(`/wx/workBench/installMeter`, data);
|
||||
}
|
||||
@@ -43,6 +43,26 @@ export const uploadOcrFile = (filePath) => {
|
||||
})
|
||||
}
|
||||
|
||||
export const uploadInstallMeter = (filePath) => {
|
||||
const { api } = getConfigByEnv();
|
||||
return new Promise((resolve, reject) => {
|
||||
wx.uploadFile({
|
||||
filePath: filePath,
|
||||
name: 'data',
|
||||
url: `${api}/image/meter/reading`,
|
||||
header: {
|
||||
authorization: 'Bearer ' + wx.getStorageSync("token")
|
||||
},
|
||||
success: (res) => {
|
||||
resolve(res?.data ? JSON.parse(res?.data) : res?.data);
|
||||
},
|
||||
fail: (err) => {
|
||||
reject(err);
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
export const uploadPublicFile = (filePath) => {
|
||||
const { api } = getConfigByEnv();
|
||||
return new Promise((resolve, reject) => {
|
||||
|
||||
@@ -9,4 +9,6 @@ export const getRechargeOperateWay = (num) => {
|
||||
return payWays[num];
|
||||
}
|
||||
|
||||
export const feeType = ['华昌宝能收费', "物业代收1", "物业代收2", "物业代收线损"]
|
||||
export const feeType = ['华昌宝能收费', "物业代收1", "物业代收2", "物业代收线损"]
|
||||
|
||||
export const meterType = ['商户电表', '园区电表', '公摊电表']
|
||||
Reference in New Issue
Block a user