电表强控,工单跳转

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; return;
} }
alertSuccess("新增成功") alertSuccess("新增成功")
wx.navigateTo({
url: '/pages/workBenchTodoList/index',
})
}, },
goback() { goback() {
wx.navigateBack() wx.navigateBack()

View File

@@ -52,7 +52,7 @@ Page({
phone, building, feeType, park, editType, id, parkName, phone, building, feeType, park, editType, id, parkName,
} = this.data; } = 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) { if (code !== OK) {
alertInfo(message) alertInfo(message)
return return
@@ -60,7 +60,7 @@ Page({
alertSuccess("开户成功") alertSuccess("开户成功")
// wx.navigateBack() // wx.navigateBack()
wx.redirectTo({ 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() { handleBack() {

View File

@@ -42,6 +42,9 @@ Page({
this.setData({ this.setData({
park: data.id, park: data.id,
parkName: data.name, parkName: data.name,
meter: null,
meterInfo: null,
meterName: null,
}) })
break; break;
case "tenement": case "tenement":
@@ -113,13 +116,43 @@ Page({
type: "", 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() { async onSubmit() {
const { meter, reason, url, meterInfo } = this.data; const { meter, reason, url, meterInfo, critical, peak, flat, valley, overall, deepOverall } = this.data;
if (!meter) { if (!meter) {
alertInfo("请选择表号") alertInfo("请选择表号")
return; 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) { if (code !== OK) {
alertInfo(message) alertInfo(message)
return return

View File

@@ -50,6 +50,48 @@
</view> </view>
</searchSelectWrapper> </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="operate">
<view class="submit"> <van-button type="info" block bind:click="onSubmit"> 提交 </van-button> </view> <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 class="cancel"> <van-button block bind:tap="goback"> 返回 </van-button> </view>

View File

@@ -1,7 +1,8 @@
// pages/workBenchNew/components/workBenchMeter/index.js // pages/workBenchNew/components/workBenchMeter/index.js
import { alertInfo, alertSuccess, loadingFunc } from "../../../../utils/index"; 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" import request from "../../../../utils/request"
const { OK } = request const { OK } = request
@@ -87,7 +88,34 @@ Page({
}) })
}, },
handleSubmit() { 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() { uploadImage() {
const that = this; const that = this;
@@ -107,7 +135,7 @@ Page({
} }
var tempFilePaths = path; var tempFilePaths = path;
loadingFunc(async () => { loadingFunc(async () => {
const { code, message, url } = await uploadInstallMeter(tempFilePaths) const { code, message, url } = await uploadMeterForce(tempFilePaths)
if (code !== OK) { if (code !== OK) {
alertError(message) alertError(message)
return return
@@ -178,56 +206,6 @@ Page({
meter: e.detail 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> </searchSelectWrapper>
<view class="operate"> <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 class="cancel"> <van-button block bind:tap="goback"> 返回 </van-button> </view>
</view> </view>
</view> </view>

View File

@@ -37,6 +37,12 @@ export const getBackTenementMeters = async function(park, tenement) {
export const handleOperateMeterSwitch = async function({ ids = [], status }) { export const handleOperateMeterSwitch = async function({ ids = [], status }) {
return await PUT(`/equipment/batchSwtich`, { 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 = '') { export const getWorkMeterDetail = async function(code = '') {
return await GET(`/vx/getWorkMeterDetail?code=${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 = ""}) { export const uninstallMeter = async function(data) {
return await DELETE(`/flow/doMeterRemoveApproval?sn=${sn}&reason=${reason}&images=${images}`); 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) => { export const uploadUninstallMeter = (filePath) => {
const { api } = getConfigByEnv(); const { api } = getConfigByEnv();
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {