我在js里面写了个formatTime方法
Page({
data: {
pageNum: 1,
pageSize: 10,
loading: false,
total: 0,
workList: [],
token: "",
// 【新增】搜索筛选条件
searchTitle: "", // 标题搜索
selectDate: "", // 选择日期 yyyy-MM-dd
// 【新增】展开控制:key=工单id,value=true/false 是否展开列表
expandWorkIds: {},
// 查询列表缓存 key=工单id,value=查询的数组
workDealerMap: {}
},
formatTime(timeStr) {
if(!timeStr) return ''
return timeStr.split('T')[0]
},
然后在axml里面写这个时间显示: <text>时间:{{formatTime(item.maintainTime)}}</text>
<!-- 测试列表 -->
<scroll-view scroll-y>
<block a:for="{{workList}}" a:key="id">
<view class="work-item">
<!-- 测试主行 -->
<view class="work-head" data-workid="{{item.id}}" onTap="toggleWorkExpand">
<view class="work-info">
<text>标题:{{item.maintainTab}}</text>
<text>时间:{{formatTime(item.maintainTime)}}</text>
</view>
<view class="arrow {{expandWorkIds[item.id] ? 'arrow-down' : 'arrow-right'}}">▶</view>
</view>
结果页面报错

控制台报错信息打印如下
ata.formatTime is not a function
Please check your axml:
in pages/testList/testList
这是钉钉小程序 axml 模板中不能直接调用 Page 内自定义方法!
这个优化方案踩坑了,模板无法直接执行页面 js 里的函数,导致页面直接崩溃
我暂时不知道怎么跨过去调用,先在这个里头来循环跑一下,预处理所有数据的时间
success: (res) => {
console.log("接口success回调,返回数据:", res.data);
const result = res.data;
if (result.code === 401) {
dd.showToast({ title: "登录认证失效,请重新获取token", icon: "none" });
return;
}
if (result.code === 200) {
const rows = result.rows || [];
// =========在这个里头来循环跑一下,预处理所有数据的时间=========
rows.forEach(row=>{
if(row.maintainTime){
row.maintainTime = row.maintainTime.split('T')[0]
}
})
// =====================================
const total = result.total || 0;
let oldList = this.data.workList;
const newList = refresh ? rows : [...oldList, ...rows];
this.setData({
workList: newList,
total: total,
pageNum: page
});
}
},