暂存工作台修改

This commit is contained in:
qiaomu 2024-11-12 11:10:46 +08:00
parent b9d1ee34a7
commit c8649288ff
10 changed files with 342 additions and 23 deletions

View File

@ -1,3 +1,11 @@
import { getParkList } from "../../service/park"
import { getParkMeterList } from "../../service/meter"
import { alertInfo } from "../../utils/index";
import request from "../../utils/request"
import { payWays } from "../../utils/data";
const { OK } = request;
// components/searchSelect/index.js
Component({
@ -5,20 +13,108 @@ Component({
* 组件的属性列表
*/
properties: {
title: String,
type: String,
show: Boolean,
park: String,
},
observers: {
"show,type": function(newShow, newType) {
if (newShow && newType) {
this.onSearch()
}
}
},
/**
* 组件的初始数据
*/
data: {
columns: ['杭州', '宁波', '温州', '嘉兴', '湖州'],
columns: [],
searchText: "",
payWays,
},
lifetimes: {
attached() {
}
},
/**
* 组件的方法列表
*/
methods: {
onChangeSearch(e) {
this.setData({
searchText: e.detail,
})
},
onCancel() {
this.setData({
columns: [],
list: [],
searchText: ""
})
this.triggerEvent("cancel")
},
onConfirm(event) {
const { index } = event.detail;
const { list = [], type } = this.data;
const item = list[index];
this.setData({
columns: [],
list: [],
searchText: ""
})
this.triggerEvent("confirm", { data: item, type } );
},
onPayConfirm(event) {
const { index } = event.detail;
const { payWays = [], type } = this.data;
const item = payWays[index];
this.setData({
columns: [],
list: [],
searchText: ""
})
this.triggerEvent("confirm", { data: item, way: index, type } );
},
onSearch() {
const { type } = this.data;
console.log('type', type)
switch(type) {
case "park":
this.onSearchPark();
return;
case "meter":
console.log("meter")
this.onSearchMeter();
return;
}
},
async onSearchPark() {
const { searchText = "" } = this.data;
const { code, message, data: parks = [] } = await getParkList({keyword: searchText});
if (code !== OK) {
alertInfo(message)
return
}
this.setData({
columns: parks?.map(item => item?.name),
list: parks,
})
},
async onSearchMeter() {
const { searchText = "", park } = this.data;
console.log('this.data', this.data)
const { code, message, data: parks = [] } = await getParkMeterList({keyword: searchText, park});
if (code !== OK) {
alertInfo(message)
return
}
this.setData({
columns: parks?.map(item => `${item.meterNo}-${item.address}${item.tenement?.name ? '-' + item.tenement?.name : ''}`),
list: parks,
})
}
}
})

View File

@ -1,8 +1,8 @@
{
"component": true,
"usingComponents": {
"van-overlay": "@vant/weapp/overlay/index",
"van-picker": "@vant/weapp/picker/index"
"van-popup": "@vant/weapp/popup/index",
"van-picker": "@vant/weapp/picker/index",
"van-search": "@vant/weapp/search/index"
}
}

View File

@ -1,14 +1,39 @@
<!--components/searchSelect/index.wxml-->
<van-popup
show="{{ true }}"
show="{{ show }}"
bind:click="onClickHide"
position="bottom"
>
<!-- <view style="height: 100%; width: 100%; display: flex;align-items: center; justify-content: center;">
<van-picker
<view wx:if="{{type !== 'pay'}}">
<van-search
value="{{ value }}"
placeholder="请输入搜索关键词"
use-action-slot
bind:change="onChangeSearch"
>
<view
style="margin-left: 20rpx; margin-right: 20rpx"
slot="action"
bind:tap="onSearch"
>搜索</view>
</van-search>
<van-picker
custom-style="width: 100%;"
columns="{{ columns }}"
bind:change="onChange"
title="{{title}}"
show-toolbar="{{true}}"
bind:cancel="onCancel"
bind:confirm="onConfirm"
/>
</view> -->
111
</view>
<view wx:else>
<van-picker
custom-style="width: 100%;"
columns="{{ payWays }}"
title="{{title}}"
show-toolbar="{{true}}"
bind:cancel="onCancel"
bind:confirm="onPayConfirm"
/>
</view>
</van-popup>

View File

@ -1,3 +1,9 @@
import { handleRecharge } from "../../../../service/recharge";
import { alertInfo, alertSuccess } from "../../../../utils/index";
import request from '../../../../utils/request'
const { OK } = request;
// pages/workBench/components/recharge/index.js
Component({
@ -12,13 +18,114 @@ Component({
* 组件的初始数据
*/
data: {
show: false,
},
/**
* 组件的方法列表
*/
methods: {
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) {
// console.log('e', e)
const { data, type, way } = e.detail;
console.log('e.detail', 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.onConcal();
},
onConcal() {
this.setData({
show: false,
title: "",
type: "",
})
},
onPayFocus() {
this.setData({
show: true,
title: "付款方式",
type: 'pay'
})
},
onChangeMoney(e) {
console.log('e', e)
this.setData({ money: e.detail })
},
onChangeVoucherNo(e) {
console.log('e', e)
this.setData({ voucherNo: e.detail })
},
async handleSubmit() {
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
}
const { code, message } = await handleRecharge(park, {
amount: `${money || ''}`,
meter,
paymentType: way,
voucherNo,
type: "0"
})
if (code !== OK) {
alertInfo(message)
return
}
alertSuccess("充值成功")
}
}
})

View File

@ -1,6 +1,9 @@
{
"component": true,
"usingComponents": {
"van-popup": "@vant/weapp/popup/index"
"van-popup": "@vant/weapp/popup/index",
"search-select": "/components/searchSelect/index",
"van-field": "@vant/weapp/field/index",
"van-button": "@vant/weapp/button/index"
}
}

View File

@ -1,3 +1,80 @@
<!--pages/workBench/components/recharge/index.wxml-->
充值
<searchSelect />
<van-cell-group>
<van-field
value="{{ parkName }}"
placeholder="请选择园区"
label="园区"
readonly
border="{{ false }}"
use-button-slot
title-width="70rpx"
>
<van-button slot="button" size="small" type="primary" bind:click="onParkFocus">
选择
</van-button>
</van-field>
<van-field
value="{{ meterName }}"
placeholder="请选择电表"
label="电表"
readonly
border="{{ false }}"
use-button-slot
title-width="70rpx"
>
<van-button slot="button" size="small" type="primary" bind:click="onMeterFocus">
选择
</van-button>
</van-field>
<van-field
value="{{ money }}"
placeholder="请输入金额"
label="金额"
type="number"
border="{{ false }}"
use-button-slot
title-width="70rpx"
bind:change="onChangeMoney"
>
</van-field>
<van-field
value="{{ payName }}"
placeholder="请选择付款方式"
label="付款方式"
readonly
border="{{ false }}"
use-button-slot
title-width="140rpx"
>
<van-button
slot="button"
size="small"
type="primary"
bind:click="onPayFocus"
>
选择
</van-button>
</van-field>
<van-field
value="{{ voucherNo }}"
placeholder="请输入凭证"
label="凭证"
border="{{ false }}"
use-button-slot
title-width="70rpx"
bind:change="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"> 取消 </van-button>
</view>
<search-select
show="{{show}}"
title="{{title}}"
type="{{type}}"
park="{{park}}"
bindconfirm="onConfirm"
bindcancel="onConcal"
/>

View File

@ -14,4 +14,9 @@ export const getMeterDetail = async function({ tenement, id }) {
// 获取某一商户的电表列表
export const getTenementMeterList = async function(tid) {
return await GET(`/wx/getMeterList/${tid}`);
}
// 获取某一园区下的电表列表
export const getParkMeterList = async function({park = "", keyword = ""}) {
return await GET(`/equipment/getOperateMeterList?page=1&park=${park}&keyword=${keyword}`);
}

View File

@ -2,8 +2,8 @@ import apis from '../utils/request';
const { GET, POST, PUT, DELETE } = apis
// 获取园区列表
export const getParkList = async function({ keyword }) {
return await GET(`/wx/getParkList?keyword=${keyword}`);
export const getParkList = async function({ keyword = "" }) {
return await GET(`/wx/getParkList?keyword=${keyword || ""}`);
}
// 获取未登录的园区列表

View File

@ -25,4 +25,9 @@ export const returnFee = async function(data) {
// 创建对公
export const createPublicTopUp = async function(data) {
return await POST(`/wx/createPublicTopUp`, data);
}
// 后台充值
export const handleRecharge = async function(park, data) {
return await POST(`/wechatTopup/${park}`, data)
}

View File

@ -3,7 +3,8 @@ export const getRechargeOperateType = (num) => {
return types[num];
}
export const payWays = ["现金", "银行卡", "支付宝", "微信", "云闪付","对公转账", "小程序-微信支付"]
export const getRechargeOperateWay = (num) => {
const types = ["现金", "银行卡", "支付宝", "微信", "云闪付","对公转账", "小程序-微信支付"]
return types[num];
}
return payWays[num];
}