电表强控,工单跳转

This commit is contained in:
2025-11-12 14:12:01 +08:00
parent 7271c982d5
commit 422338f816
8 changed files with 141 additions and 60 deletions

View File

@@ -390,6 +390,9 @@ Page({
return;
}
alertSuccess("新增成功")
wx.navigateTo({
url: '/pages/workBenchTodoList/index',
})
},
goback() {
wx.navigateBack()

View File

@@ -52,7 +52,7 @@ Page({
phone, building, feeType, park, editType, id, parkName,
} = this.data;
const { code, message } = await createBackTenement(park, { name, shortName, address, contact, phone, building, feeType })
const { code, message, tenement } = await createBackTenement(park, { name, shortName, address, contact, phone, building, feeType })
if (code !== OK) {
alertInfo(message)
return
@@ -60,7 +60,7 @@ Page({
alertSuccess("开户成功")
// wx.navigateBack()
wx.redirectTo({
url: `/pages/workBenchNew/components/workBenchTenement/index?park=${park}&parkName=${parkName}&name=${name}`,
url: `/pages/workBenchNew/components/workBenchTenement/index?park=${park}&parkName=${parkName}&name=${name}&id=${tenement}`,
})
},
handleBack() {

View File

@@ -42,6 +42,9 @@ Page({
this.setData({
park: data.id,
parkName: data.name,
meter: null,
meterInfo: null,
meterName: null,
})
break;
case "tenement":
@@ -113,13 +116,43 @@ Page({
type: "",
})
},
changeCritical(e) {
this.setData({
critical: e.detail,
})
},
changePeak(e) {
this.setData({
peak: e.detail,
})
},
changeFlat(e) {
this.setData({
flat: e.detail,
})
},
changeValley(e) {
this.setData({
valley: e.detail,
})
},
changeOverall(e) {
this.setData({
overall: e.detail,
})
},
changeDeppValley(e) {
this.setData({
deepOverall: e.detail,
})
},
async onSubmit() {
const { meter, reason, url, meterInfo } = this.data;
const { meter, reason, url, meterInfo, critical, peak, flat, valley, overall, deepOverall } = this.data;
if (!meter) {
alertInfo("请选择表号")
return;
}
const { code, message } = await uninstallMeter({sn: meterInfo.meterSn, images: url, reason})
const { code, message } = await uninstallMeter({sn: meterInfo.meterSn, images: url, reason, tenement: meterInfo.tenement, critical, peak, flat, valley, overall, deepOverall})
if (code !== OK) {
alertInfo(message)
return

View File

@@ -50,6 +50,48 @@
</view>
</searchSelectWrapper>
<searchSelectWrapper
label="总"
placeholder="请输入总"
type="input"
bind:changeText="changeOverall"
wx:if="{{meterInfo.tenement}}"
/>
<searchSelectWrapper
label="尖"
placeholder="请输入尖"
type="input"
bind:changeText="changeCritical"
wx:if="{{meterInfo.tenement}}"
/>
<searchSelectWrapper
label="峰"
placeholder="请输入峰"
type="input"
bind:changeText="changePeak"
wx:if="{{meterInfo.tenement}}"
/>
<searchSelectWrapper
label="平"
placeholder="请输入平"
type="input"
bind:changeText="changeFlat"
wx:if="{{meterInfo.tenement}}"
/>
<searchSelectWrapper
label="谷"
placeholder="请输入谷"
type="input"
bind:changeText="changeValley"
wx:if="{{meterInfo.tenement}}"
/>
<searchSelectWrapper
label="深谷"
placeholder="请输入深谷"
type="input"
bind:changeText="changeDeepValley"
wx:if="{{meterInfo.tenement}}"
/>
<view class="operate">
<view class="submit"> <van-button type="info" block bind:click="onSubmit"> 提交 </van-button> </view>
<view class="cancel"> <van-button block bind:tap="goback"> 返回 </van-button> </view>

View File

@@ -1,7 +1,8 @@
// pages/workBenchNew/components/workBenchMeter/index.js
import { alertInfo, alertSuccess, loadingFunc } from "../../../../utils/index";
import { getParkMeterList, handleOperateMeterSwitch } from "../../../../service/meter"
import { getParkMeterList, handleOperateMeterMode } from "../../../../service/meter"
import { uploadMeterForce } from "../../../../service/public"
import request from "../../../../utils/request"
const { OK } = request
@@ -87,7 +88,34 @@ Page({
})
},
handleSubmit() {
const { } = this.data;
const that = this;
const { mode, days, reason, meter, meterName, url } = this.data;
if (mode === 2 && days == null) {
alertInfo("请填写天数")
return;
}
wx.showModal({
title: '提示',
content: `确定要对${meterName}进行${["预付费", "强控", "临时强控"][mode]}操作吗?`,
complete: async (res) => {
if (res.cancel) {
}
if (res.confirm) {
loadingFunc(async () => {
const { code, message } = await handleOperateMeterMode({ ids: [meter], mode, days: days == null ? undefined : Number(days), reason, images: url })
if (code !== OK) {
alertInfo(message)
return
}
alertSuccess("操作成功")
await that.init();
})
}
}
})
},
uploadImage() {
const that = this;
@@ -107,7 +135,7 @@ Page({
}
var tempFilePaths = path;
loadingFunc(async () => {
const { code, message, url } = await uploadInstallMeter(tempFilePaths)
const { code, message, url } = await uploadMeterForce(tempFilePaths)
if (code !== OK) {
alertError(message)
return
@@ -178,56 +206,6 @@ Page({
meter: e.detail
})
},
async handleMeterSwitchOn() {
const that = this;
const { meter, meterName } = this.data;
wx.showModal({
title: '提示',
content: `您确认要对${meterName || 当前电表}进行合闸吗?`,
complete: async (res) => {
if (res.cancel) {
}
if (res.confirm) {
loadingFunc(async () => {
const { code, message } = await handleOperateMeterSwitch({ ids: [meter], status: 0 })
if (code !== OK) {
alertInfo(message)
return;
}
alertSuccess("合闸成功")
that.init();
})
}
}
})
},
async handleMeterSwitchOff() {
const that = this;
const { meter, meterName } = this.data;
wx.showModal({
title: '提示',
content: `您确认要对${meterName || 当前电表}进行拉闸吗?`,
complete: async (res) => {
if (res.cancel) {
return;
}
if (res.confirm) {
loadingFunc(async () => {
const { code, message } = await handleOperateMeterSwitch({ ids: [meter], status: 1 })
if (code !== OK) {
alertInfo(message)
return;
}
alertSuccess("拉闸成功")
that.init();
})
}
}
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/

View File

@@ -143,7 +143,7 @@
</searchSelectWrapper>
<view class="operate">
<view class="submit"> <van-button type="info" block bind:click="handleSubmit"> 提交 </van-button> </view>
<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>

View File

@@ -37,6 +37,12 @@ export const getBackTenementMeters = async function(park, tenement) {
export const handleOperateMeterSwitch = async function({ ids = [], status }) {
return await PUT(`/equipment/batchSwtich`, { ids, status });
}
// 预付费模式
export const handleOperateMeterMode = async function({ ids = [], mode, days, images, reason }) {
return await PUT(`/equipment/batchSetMode`, { ids, mode, days, images, reason });
}
// 绑定时获取电表的最新信息
export const getWorkMeterDetail = async function(code = '') {
return await GET(`/vx/getWorkMeterDetail?code=${code}`);
@@ -70,6 +76,6 @@ export const installMeter = async function(data) {
}
// 拆表
export const uninstallMeter = async function({sn = "", reason = "", images = ""}) {
return await DELETE(`/flow/doMeterRemoveApproval?sn=${sn}&reason=${reason}&images=${images}`);
export const uninstallMeter = async function(data) {
return await POST(`/flow/doMeterRemoveApproval`, data);
}

View File

@@ -63,6 +63,25 @@ export const uploadInstallMeter = (filePath) => {
})
}
export const uploadMeterForce = (filePath) => {
const { api } = getConfigByEnv();
return new Promise((resolve, reject) => {
wx.uploadFile({
filePath: filePath,
name: 'data',
url: `${api}/image/meter/force`,
header: {
authorization: 'Bearer ' + wx.getStorageSync("token")
},
success: (res) => {
resolve(res?.data ? JSON.parse(res?.data) : res?.data);
},
fail: (err) => {
reject(err);
}
})
})
}
export const uploadUninstallMeter = (filePath) => {
const { api } = getConfigByEnv();
return new Promise((resolve, reject) => {