import { apiGetCartList } from "../../api/index/index"; // pages/index/index.ts Page({ data: { isManage: false, startX: 0, commodities: [ /* { id: 1, name: "水果鲜花是非得失发多少覅是范德萨司法的", icon: "🍎", active: false, }, { id: 2, name: "蔬菜豆制品", icon: "🥬", active: false }, { id: 3, name: "肉禽蛋", icon: "🥩", active: false }, { id: 4, name: "海鲜水产", icon: "🐟", active: false }, { id: 5, name: "乳品烘焙", icon: "🥛", active: false }, { id: 6, name: "熟食快", icon: "🍱", active: false }, */ ], }, onLoad() {}, // 点击管理按钮 onManage() { this.setData({ isManage: !this.data.isManage }); this.setData({ commodities: this.data.commodities.map((item) => ({ ...item, active: this.data.isManage, })), }); }, // 触摸开始 handleTouchStart(e: any) { this.setData({ startX: e.touches[0].clientX, // 记录起始X坐标 }); }, // 触摸移动 handleTouchMove(e: any) { const { id, active } = e.currentTarget.dataset.item; const moveX = e.touches[0].clientX - this.data.startX; // 只响应向左滑动(moveX为负值) if (moveX < -20) { if (active) return; const data = this.data.commodities.map((item) => { item.active = item.id === id; return item; }); this.setData({ commodities: data }); } else { this.setData({ commodities: this.data.commodities.map((item) => ({ ...item, active: false, })), }); } }, onChangeNum(e: any) { const { type, id } = e.currentTarget.dataset; const data = this.data.commodities.map((item) => { if (item.id === id) { item.num = type === "minus" ? item.num - 1 : item.num + 1; item.price = item.num * item.singlePrice; } return item; }); this.setData({ commodities: data, }); }, onChangeCheckbox(e: any) { // todo }, // 删除商品 onDeleteItem(e: any) { const { id } = e.currentTarget.dataset; const data = this.data.commodities.filter((item) => item.id !== id); this.setData({ commodities: data }); }, onShow() { apiGetCartList({ buyerId: 2 }).then((res: any) => { console.warn("----- my data is res2555: ", res); this.setData({ commodities: res.data.rows.map((item: any) => ({ id: item.id, name: item.productName, icon: item.icon, originalPrice: item.originalPrice, singlePrice: item.singlePrice, price: item.allPrice, num: item.num, checked: false, attribute: JSON.parse(item.skuInfo) .map((item) => item.propertyValue) .join("-"), active: false, })), }); }); }, });