update_ok(e){
console.log(e.detail);//e.detail.client e.detail.phone
const { index, client, phone, address, remark } = e.detail;
this.setData({
[`xiaoshouHeadList[${index}].client`]: client,
[`xiaoshouHeadList[${index}].phone`]: phone,
[`xiaoshouHeadList[${index}].address`]: address,
[`xiaoshouHeadList[${index}].remark`]: remark,
edit_show: false
});
}
// 使用 some 检查是否有元素
if (this.data.selectGoodsList.some(function (item) {
//判断num是数字 不能是0 不能是负
if (!isNum1(item.xiaoshou_num)) {
wx.showToast({
title: "第" + row_num + "行,请输入正确的数量",
icon: 'none',
duration: 2000
})
return true;
}
//判断 数字 或者浮点
if (!isNum2(item.xiaoshou_price)) {
wx.showToast({
title: "第" + row_num + "行,请输入正确的单价",
icon: 'none',
duration: 2000
})
return true;
}
data.push({
num: item.xiaoshou_num,
goods_id: item.id,
danjia: item.xiaoshou_price,
zongjia: item.total,
});
row_num++;
})) { // some 返回 true 相当于if判断是true 终止 执行return
return; // 终止整个函数 fun 的执行
}let name = "Alice";
let greeting = `Hello, ${name}! Welcome to our website.`;
console.log(greeting); // 输出: Hello, Alice! Welcome to our website.
function getGreeting(name) {
return `Hello, ${name}!`;
}
let userName = "Alice";
let message = `Today, ${getGreeting(userName)} How are you?`;
console.log(message); // 输出: Today, Hello, Alice! How are you?
小程序 调用 方法需要加this.getGreeting 需要加个this.
小程序代码
create_order() {
let url = `/pages/goods_order_create/goods_order_create?goodsId=${this.data.goods.id}&goodsTaoCanId=${goodsTaoCanId}&goDate=${goDate}`;
wx.navigateTo({
url: url
})
}, // 假设queryForm.value和token.value已经定义并且包含你需要的数据
const params = {
query: queryForm.value.query,
pageNum: queryForm.value.pageNum,
pageSize: queryForm.value.pageSize,
deptId: queryForm.value.deptId,
// 如果需要传递state,则取消下面的注释
state: queryForm.value.state,
token: token.value
};
// 使用URLSearchParams来构建查询字符串
const queryString = new URLSearchParams(params).toString();
// 现在你可以使用这个查询字符串来构建你的URL
location.href = `${getServerUrl()}api/hit/down/excel?${queryString}`;const selectGoodsList = this.data.selectGoodsList;
const statistics = selectGoodsList.reduce((acc, item) => {
const num = parseFloat(item.pandianNum) || 0;
return {
totalNum: acc.totalNum + num
};
}, {
totalNum: 0,
totalPrice: 0
}); // 初始值
this.setData({
totalNum: statistics.totalNum
}); // 使用展开运算符合并对象,保留原有属性
const mergedOrder = {
...this.data.order, // 保留原有属性
...res.data.order // 用新数据覆盖
};
order_find_id(obj).then(res => {
console.log(res.data);
if (res.data.success) {
//日期转成周几。
res.data.order.week = getWeekDay2(res.data.order.goDate);
//计算 是否显示,支付余款。
if(res.data.order.yukuan==0&&res.data.order.dingjin>0){
this.setData({
order: res.data.order,
is_yukuan : true
})
}else{
this.setData({
order: res.data.order
})
}
}
}) 小程序代码 我设置 order的时候, ,因为我前面操作 在order什么设置了一些属性。 我想保留设置的属性。 let order = this.data.order;
let zfOderList = order.zfOderList; //数组
if (order.yukuan > 0) {
//已经支付过余款了, 这个订单是支付完的订单
//zfOderList item.jine 就是支付的金额
//计算支付的金额是多少。
let totalPaid = zfOderList.reduce((accumulator, currentItem) => {
// 确保 currentItem.jine 是有效数字
let amount = Number(currentItem.jine) || 0;
return accumulator + amount;
}, 0); // 初始值设为 0,确保空数组也能正确返回 0
console.log('数组中计算-已支付总金额:', totalPaid);
}
const moneyList = [600, 1500, 500];
const totalMoney = moneyList.reduce((sum, item) => sum + item, 0);
const arr = ["奶茶", "咖啡", "奶茶", "可乐", "奶茶"];
const countObj = arr.reduce((obj, item) => {
// 若对象中已有该属性,值+1;否则初始化为1
obj[item] = obj[item] ? obj[item] + 1 : 1;
return obj;}, {}); // 初始值为空对象
console.log(countObj); // { 奶茶: 3, 咖啡: 1, 可乐: 1 } let total = order.amount + order.chajia - order.youhui;
total = Number(total.toFixed(2));
total.toFixed(2):首先,toFixed(2)方法将数字 total四舍五入到小数点后两位,并返回一个字符串
例如,如果 total是 10.456,这一步会得到字符串 "10.46"。
Number(...):然后,Number()函数将这个字符串重新转换为数字类型
。所以最终 total变量被赋值为一个保留了两位小数的新数字(如 10.46)。
parseFloat(d.shiji).toFixed(2) Number(...)有什么区别。
宽松解析:从左到右解析字符串,直到遇到无效字符为止,忽略后续内容 。例如,parseFloat("123.45abc")得到 123.45。 最终返回值类型 字符串 (String)
严格转换:要求整个值必须能完全转换为数字,否则返回 NaN。例如,Number("123.45abc")得到 NaN。 最终返回值类型 数字 (Number)let chajia_obj = this.data.order.orderDataList.find(function (item) {
return item.type === 1; // 1差价 2优惠
});
console.log(chajia_obj);//undefined
空有2种情况。一种是undefined 一种是 {} 仅仅是个对象。 里面没有东西。
/**
* 这个地方一般传对象。
* 判断一个值是否为undefined或空对象{}
* @param {*} value 需要判断的值
* @returns {boolean} 如果值为undefined或空对象,则返回true
*
*
* let chajia_obj = {};
let chajia_obj2 = undefined;
console.log(isUndefinedOrEmptyObject(chajia_obj)); // 会输出true
console.log(isUndefinedOrEmptyObject(chajia_obj2)); // 会输出true
*/
export function isUndefinedOrEmptyObject(value) {
// 检查是否为undefined或null
if (value === undefined || value === null) {
return true;
}
// 检查是否为对象且没有自身可枚举属性
if (typeof value === 'object' && Object.keys(value).length === 0) {
return true;
}
return false;
}// 可选工具函数:根据周几数字获取中文名称(1=周一,7=周日)
function getWeekName(weekNum) {
const weekNameMap = {
'1': '周一',
'2': '周二',
'3': '周三',
'4': '周四',
'5': '周五',
'6': '周六',
'7': '周日'
};
// 若传入无效数字,返回原数字
return weekNameMap[weekNum] || weekNum;}
这里试试 字符串和数字。一样吗。js三目运算符
var weekArr = weeks === '' ? [] : weeks.split(',');站长微信:xiaomao0055
站长QQ:14496453