import { getLoginParkList, getParkBuildingList } from "../../service/park" import { getParkSimpleMeterList, getParkBoxList, getCardList, getCollectionList, getInventoryMeter } from "../../service/meter" import { alertInfo } from "../../utils/index"; import request from "../../utils/request" import { payWays, feeType, meterType } from "../../utils/data"; import { getTenementList, getWxTenementList } from "../../service/tenement"; const { OK } = request; // components/searchSelect/index.js Component({ /** * 组件的属性列表 */ properties: { title: String, type: String, show: Boolean, park: String, isBack: Boolean, filterBind: Boolean, }, observers: { "show,type,filterBind": function(newShow, newType) { if (newShow && newType) { this.onSearch() } } }, /** * 组件的初始数据 */ data: { columns: [], searchText: "", payWays, feeType, meterType }, 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; console.log("index", index) const { list = [], type } = this.data; const item = list[index]; if (!item) { alertInfo("请选择一项") return } this.setData({ columns: [], list: [], searchText: "" }) this.triggerEvent("confirm", { data: item, type, index } ); }, 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 } ); }, onFeeTypeConfirm(event) { const { index } = event.detail; const { feeType = [], type } = this.data; const item = feeType[index]; this.setData({ columns: [], list: [], searchText: "" }) 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) { case "park": this.onSearchPark(); return; 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() { const { searchText = "" } = this.data; const { code, message, data: parks = [] } = await getLoginParkList({keyword: searchText}); if (code !== OK) { alertInfo(message) return } this.setData({ columns: parks?.map(item => item?.name), 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.transformerId}-倍率:${item.ratio}-${item.manufacturer}`), list: parks, }) }, async onSearchMeter() { const { searchText = "", park, filterBind } = this.data; const { code, message, data: parks = [] } = await getParkSimpleMeterList({keyword: searchText, park, isNeedBind: !filterBind}); if (code !== OK) { alertInfo(message) return } this.setData({ columns: parks?.map(item => `${item.meterNo}-${item.address}${item.shortName ? '-' + item.shortName : ''}`) || [], 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}); if (code !== OK) { alertInfo(message) return } this.setData({ columns: data?.length ? data?.map(item => item?.name) : [], list: data, }) }, async onSearchBuilding() { const { park } = this.data; const { code, message, buildings: data = [] } = await getParkBuildingList(park); if (code !== OK) { alertInfo(message) return } this.setData({ columns: data?.length ? data?.map(item => item?.name) : [], 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, }) } } })