纸板小程序:订单/送货单:列表与详情功能

This commit is contained in:
2026-06-11 11:26:40 +08:00
commit ef9ede1605
2317 changed files with 61642 additions and 0 deletions
@@ -0,0 +1,222 @@
// utils/app.ts.ts
import { getMonthDay } from '../../utils/util'
import { getCardBoardOrderDeliveryList } from '../../api/index'
import { getAppInstance } from '../../utils/app';
const app = getAppInstance();
// const userInfo = wx.getStorageSync('userInfo');
// const devicecode = wx.getStorageSync('devicecode');
Page({
/**
* 页面的初始数据
*/
data: {
date_field: '',
s_date: '',
e_date: '',
search_input_focus: false,
customerId: 0,
searchTxt: '',
sDateVisible: false,
startDate: '',
list: [],
showCount: true,
totalData: {},
customerList: [],
pageNumber: 1, // 当前页码
pageSize: 20, // 每页数量
hasMore: true, // 是否还有更多数据
loading: false, // 是否正在加载(防止重复请求)
isCust: false //是否为客户账号,限制仅可查看本身的订单
},
hideCount() {
this.setData({
showCount: false
})
},
showCount() {
this.setData({
showCount: true
})
},
// 触底事件
onScrollToLower() {
// 防止重复加载 & 无更多数据
if (this.data.loading || !this.data.hasMore) return
this.setData({ loading: true,pageNumber: this.data.pageNumber + 1 })
wx.nextTick(() => {
this.getOrderList(true);
})
},
// 跳转订单详情
toOrderDetail(e) {
const id = e.currentTarget.dataset.id;
wx.navigateTo({
url: `/pages/cardBoardOrderDeliveryDetail/cardBoardOrderDeliveryDetail?id=${id}`
})
},
// 日期相关
showPicker(e) {
const field = e.currentTarget.dataset.field;
this.setData({ sDateVisible: true, date_field: field });
},
onCancel() {
this.setData({ sDateVisible: false });
},
// 选择日期
onConfirm(e) {
const { value } = e.detail;
this.setData({ [this.data.date_field]: value,sDateVisible: false });
this.getOrderList(false);
},
// 关键词搜索
handleSearchTxtChange(e) {
const { value } = e.detail;
this.setData({ searchTxt: value });
},
// 切换客户
onCustChange(e) {
this.setData({
customerId: e.detail.value,
});
this.getOrderList(false);
},
// 搜索输入框焦点事件
inputFocus() {
this.setData({
search_input_focus: true
})
},
inputBlur() {
this.setData({
search_input_focus: false
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad() {
const days = getMonthDay();
const userInfo = wx.getStorageSync('userInfo');
this.setData({
s_date: days[0],
e_date: days[1],
customerId: userInfo.custid?userInfo.custid:0,
customerList: app.globalData.customerList,
date_field: 's_date',
isCust: userInfo.custid?true:false,
})
this.getOrderList(false);
},
async getOrderList(isLoadMore: Boolean) {
try {
wx.showLoading({ title: '加载中' });
const { searchTxt, pageNumber, pageSize, s_date, e_date, customerId }= this.data;
const filterStr = {};
if (s_date || e_date) {
filterStr.createtime = [(s_date?'#>=#' + s_date:''),(e_date?'#<=#' + e_date:'')]
}
if (customerId) {
filterStr.custid = '#IN#' + customerId;
}
const params = {
pageNumber,
pageSize,
searchTxt,
screenStr: JSON.stringify(filterStr)
};
const res = await getCardBoardOrderDeliveryList(params).catch( () => {});
if (res.statusCode === 200) {
const dataList = res.data.list.map( item => {
item.createtime = item.createtime.replace('T', ' ');
if (item.custcode) {
const obj = app.globalData.customerList.find( item2 => item2.code == item.custcode);
item.customName = obj?obj.name:'';
}
if (item.listDetail) {
item.totalSquaNum = item.listDetail.reduce((total,obj) => total + ((obj.wide * obj.long / 10000) * obj.num),0)?.toFixed(2);
}
if (item.delitime) {
item.delitime = item.delitime.split('T').join(' ');
}
return item;
})
let totalData = res.data.totalData;
for (const key in totalData) {
const val = totalData[key];
// 是数字 且 不是整数(有小数点)
if (typeof val === 'number' && !Number.isInteger(val)) {
totalData[key] = val.toFixed(2); // 字符串类型,如 "3.14"
}
}
this.setData({
hasMore: this.data.list.length + this.data.pageSize >= res.data.searchListResourceParamaters.total?false:true,
loading: false,
list: isLoadMore == true?[...this.data.list,...dataList]: dataList,
totalData: res.data.totalData || {}
});
} else {
wx.showToast({ title: '数据加载失败', icon: 'none' });
}
} catch (err) {
console.error(err);
wx.showToast({ title: '系统错误', icon: 'none' });
} finally {
wx.hideLoading();
}
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow() {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {
}
})