初步联调装表

This commit is contained in:
2025-11-03 16:26:30 +08:00
parent fe590353df
commit 1539304999
35 changed files with 1495 additions and 100 deletions

View File

@@ -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,
})
}
}
})

View File

@@ -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 }}"

View File

@@ -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() {

View File

@@ -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>

View File

@@ -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;
}