diff --git a/app.json b/app.json
index eb05e51..3d9a873 100644
--- a/app.json
+++ b/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": [
{
diff --git a/components/searchSelect/index.js b/components/searchSelect/index.js
index b17ab7f..65f64df 100644
--- a/components/searchSelect/index.js
+++ b/components/searchSelect/index.js
@@ -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,
+ })
+ }
}
})
diff --git a/components/searchSelect/index.wxml b/components/searchSelect/index.wxml
index 6f4c8bc..55957fe 100644
--- a/components/searchSelect/index.wxml
+++ b/components/searchSelect/index.wxml
@@ -26,6 +26,16 @@
bind:confirm="onFeeTypeConfirm"
/>
+
+
+
- {{ label }}
+ *{{ label }}
{{placeholder}}
{{text}}
@@ -32,4 +32,11 @@
custom-style="padding: 0;font-size: 30rpx;line-height: 32rpx;"
/>
+
+
+
+ {{ label }}
+
+
+
\ No newline at end of file
diff --git a/components/searchSelectWrapper/index.wxss b/components/searchSelectWrapper/index.wxss
index cd7bdc4..523629c 100644
--- a/components/searchSelectWrapper/index.wxss
+++ b/components/searchSelectWrapper/index.wxss
@@ -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;
}
\ No newline at end of file
diff --git a/pages/workBenchNew/components/installMeter/index.js b/pages/workBenchNew/components/installMeter/index.js
new file mode 100644
index 0000000..48fc9e5
--- /dev/null
+++ b/pages/workBenchNew/components/installMeter/index.js
@@ -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() {
+
+ }
+})
\ No newline at end of file
diff --git a/pages/workBenchNew/components/installMeter/index.json b/pages/workBenchNew/components/installMeter/index.json
new file mode 100644
index 0000000..e28e099
--- /dev/null
+++ b/pages/workBenchNew/components/installMeter/index.json
@@ -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"
+}
\ No newline at end of file
diff --git a/pages/workBenchNew/components/installMeter/index.wxml b/pages/workBenchNew/components/installMeter/index.wxml
new file mode 100644
index 0000000..1390b99
--- /dev/null
+++ b/pages/workBenchNew/components/installMeter/index.wxml
@@ -0,0 +1,181 @@
+
+
+
+
+
+ {{time}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 上传
+
+ 清除
+
+
+
+
+
+
+
+ 提交
+ 返回
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/workBenchNew/components/installMeter/index.wxss b/pages/workBenchNew/components/installMeter/index.wxss
new file mode 100644
index 0000000..9af2e92
--- /dev/null
+++ b/pages/workBenchNew/components/installMeter/index.wxss
@@ -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;
+}
\ No newline at end of file
diff --git a/pages/workBenchNew/components/operateButton/index.js b/pages/workBenchNew/components/operateButton/index.js
new file mode 100644
index 0000000..8ad1d7e
--- /dev/null
+++ b/pages/workBenchNew/components/operateButton/index.js
@@ -0,0 +1,27 @@
+// pages/workBenchNew/components/operateButton/index.js
+Component({
+
+ /**
+ * 组件的属性列表
+ */
+ properties: {
+ text: String,
+ style: String,
+ },
+
+ /**
+ * 组件的初始数据
+ */
+ data: {
+
+ },
+
+ /**
+ * 组件的方法列表
+ */
+ methods: {
+ handleClick() {
+ this.triggerEvent("click")
+ }
+ }
+})
\ No newline at end of file
diff --git a/pages/workBenchNew/components/operateButton/index.json b/pages/workBenchNew/components/operateButton/index.json
new file mode 100644
index 0000000..e8cfaaf
--- /dev/null
+++ b/pages/workBenchNew/components/operateButton/index.json
@@ -0,0 +1,4 @@
+{
+ "component": true,
+ "usingComponents": {}
+}
\ No newline at end of file
diff --git a/pages/workBenchNew/components/operateButton/index.wxml b/pages/workBenchNew/components/operateButton/index.wxml
new file mode 100644
index 0000000..e58adc9
--- /dev/null
+++ b/pages/workBenchNew/components/operateButton/index.wxml
@@ -0,0 +1,2 @@
+
+ {{ text }}
\ No newline at end of file
diff --git a/pages/workBenchNew/components/operateButton/index.wxss b/pages/workBenchNew/components/operateButton/index.wxss
new file mode 100644
index 0000000..9691159
--- /dev/null
+++ b/pages/workBenchNew/components/operateButton/index.wxss
@@ -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;
+}
\ No newline at end of file
diff --git a/pages/workBenchNew/components/recharge/index.js b/pages/workBenchNew/components/recharge/index.js
new file mode 100644
index 0000000..6c39e8e
--- /dev/null
+++ b/pages/workBenchNew/components/recharge/index.js
@@ -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() {
+
+ }
+})
\ No newline at end of file
diff --git a/pages/workBenchNew/components/recharge/index.json b/pages/workBenchNew/components/recharge/index.json
new file mode 100644
index 0000000..4e12d5e
--- /dev/null
+++ b/pages/workBenchNew/components/recharge/index.json
@@ -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"
+}
\ No newline at end of file
diff --git a/pages/workBenchNew/components/recharge/index.wxml b/pages/workBenchNew/components/recharge/index.wxml
new file mode 100644
index 0000000..868329b
--- /dev/null
+++ b/pages/workBenchNew/components/recharge/index.wxml
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 确认
+ 清空
+
+
\ No newline at end of file
diff --git a/pages/workBenchNew/components/recharge/index.wxss b/pages/workBenchNew/components/recharge/index.wxss
new file mode 100644
index 0000000..b1ed3a3
--- /dev/null
+++ b/pages/workBenchNew/components/recharge/index.wxss
@@ -0,0 +1 @@
+/* pages/workBenchNew/components/recharge/index.wxss */
\ No newline at end of file
diff --git a/pages/workBenchNew/components/uninstallMeter/index.js b/pages/workBenchNew/components/uninstallMeter/index.js
new file mode 100644
index 0000000..0ae2e6a
--- /dev/null
+++ b/pages/workBenchNew/components/uninstallMeter/index.js
@@ -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() {
+
+ }
+})
\ No newline at end of file
diff --git a/pages/workBenchNew/components/uninstallMeter/index.json b/pages/workBenchNew/components/uninstallMeter/index.json
new file mode 100644
index 0000000..a676309
--- /dev/null
+++ b/pages/workBenchNew/components/uninstallMeter/index.json
@@ -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"
+}
\ No newline at end of file
diff --git a/pages/workBenchNew/components/uninstallMeter/index.wxml b/pages/workBenchNew/components/uninstallMeter/index.wxml
new file mode 100644
index 0000000..8941895
--- /dev/null
+++ b/pages/workBenchNew/components/uninstallMeter/index.wxml
@@ -0,0 +1,75 @@
+
+
+
+
+
+ {{time}}
+
+
+
+
+
+
+ 上传
+
+
+
+ 提交
+ 返回
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pages/workBenchNew/components/uninstallMeter/index.wxss b/pages/workBenchNew/components/uninstallMeter/index.wxss
new file mode 100644
index 0000000..7d468e2
--- /dev/null
+++ b/pages/workBenchNew/components/uninstallMeter/index.wxss
@@ -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;
+}
\ No newline at end of file
diff --git a/pages/workBenchNew/components/workBenchApprove/index.wxml b/pages/workBenchNew/components/workBenchApprove/index.wxml
index 1339053..66420fb 100644
--- a/pages/workBenchNew/components/workBenchApprove/index.wxml
+++ b/pages/workBenchNew/components/workBenchApprove/index.wxml
@@ -1,17 +1,14 @@
-
+
-
+
待审核
-
+
已审核
-
- 充值
-
diff --git a/pages/workBenchNew/index.js b/pages/workBenchNew/index.js
index a5333ab..12c5b47 100644
--- a/pages/workBenchNew/index.js
+++ b/pages/workBenchNew/index.js
@@ -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',
+ })
+ },
/**
* 生命周期函数--监听页面初次渲染完成
*/
diff --git a/pages/workBenchNew/index.json b/pages/workBenchNew/index.json
index de4f579..abce341 100644
--- a/pages/workBenchNew/index.json
+++ b/pages/workBenchNew/index.json
@@ -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"
}
\ No newline at end of file
diff --git a/pages/workBenchNew/index.wxml b/pages/workBenchNew/index.wxml
index 3bc02fb..8b8c62a 100644
--- a/pages/workBenchNew/index.wxml
+++ b/pages/workBenchNew/index.wxml
@@ -2,7 +2,7 @@
-
+
+
+ 通用操作
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 现场操作
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
回到首页
diff --git a/pages/workBenchNew/index.wxss b/pages/workBenchNew/index.wxss
index 421c238..c220f08 100644
--- a/pages/workBenchNew/index.wxss
+++ b/pages/workBenchNew/index.wxss
@@ -1,7 +1,7 @@
/* pages/workBench/index.wxss */
.wrapper {
- margin: 20rpx 0rpx;
+ margin:20rpx 0rpx;
}
.contentWrapper {
diff --git a/pages/workBenchTodoList/index.js b/pages/workBenchTodoList/index.js
new file mode 100644
index 0000000..4b9ffea
--- /dev/null
+++ b/pages/workBenchTodoList/index.js
@@ -0,0 +1,66 @@
+// pages/workBenchTodoList/index.js
+Page({
+
+ /**
+ * 页面的初始数据
+ */
+ data: {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面加载
+ */
+ onLoad(options) {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面初次渲染完成
+ */
+ onReady() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面显示
+ */
+ onShow() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面隐藏
+ */
+ onHide() {
+
+ },
+
+ /**
+ * 生命周期函数--监听页面卸载
+ */
+ onUnload() {
+
+ },
+
+ /**
+ * 页面相关事件处理函数--监听用户下拉动作
+ */
+ onPullDownRefresh() {
+
+ },
+
+ /**
+ * 页面上拉触底事件的处理函数
+ */
+ onReachBottom() {
+
+ },
+
+ /**
+ * 用户点击右上角分享
+ */
+ onShareAppMessage() {
+
+ }
+})
\ No newline at end of file
diff --git a/pages/workBenchTodoList/index.json b/pages/workBenchTodoList/index.json
new file mode 100644
index 0000000..aff1cbd
--- /dev/null
+++ b/pages/workBenchTodoList/index.json
@@ -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"
+}
\ No newline at end of file
diff --git a/pages/workBenchTodoList/index.wxml b/pages/workBenchTodoList/index.wxml
new file mode 100644
index 0000000..8603edb
--- /dev/null
+++ b/pages/workBenchTodoList/index.wxml
@@ -0,0 +1,12 @@
+
+
+
+
+
+ 1
+
+
+ 2
+
+
+
\ No newline at end of file
diff --git a/pages/workBenchTodoList/index.wxss b/pages/workBenchTodoList/index.wxss
new file mode 100644
index 0000000..f05fa3a
--- /dev/null
+++ b/pages/workBenchTodoList/index.wxss
@@ -0,0 +1 @@
+/* pages/workBenchTodoList/index.wxss */
\ No newline at end of file
diff --git a/project.private.config.json b/project.private.config.json
index 424d3b1..422eecd 100644
--- a/project.private.config.json
+++ b/project.private.config.json
@@ -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
}
]
}
diff --git a/service/meter.js b/service/meter.js
index eb864da..a610bcd 100644
--- a/service/meter.js
+++ b/service/meter.js
@@ -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);
}
\ No newline at end of file
diff --git a/service/public.js b/service/public.js
index 4b9d431..9a40ece 100644
--- a/service/public.js
+++ b/service/public.js
@@ -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) => {
diff --git a/utils/data.js b/utils/data.js
index 22c17b0..2156c41 100644
--- a/utils/data.js
+++ b/utils/data.js
@@ -9,4 +9,6 @@ export const getRechargeOperateWay = (num) => {
return payWays[num];
}
-export const feeType = ['华昌宝能收费', "物业代收1", "物业代收2", "物业代收线损"]
\ No newline at end of file
+export const feeType = ['华昌宝能收费', "物业代收1", "物业代收2", "物业代收线损"]
+
+export const meterType = ['商户电表', '园区电表', '公摊电表']
\ No newline at end of file