|
|
|
@ -157,7 +157,7 @@ |
|
|
|
<!-- 订单分成价 --> |
|
|
|
<!-- 订单分成价 --> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item |
|
|
|
<el-form-item |
|
|
|
label="订单分成价:" |
|
|
|
label="订单分成价" |
|
|
|
label-width="200px" |
|
|
|
label-width="200px" |
|
|
|
prop="splitPrice" |
|
|
|
prop="splitPrice" |
|
|
|
> |
|
|
|
> |
|
|
|
@ -174,13 +174,13 @@ |
|
|
|
<el-col :span="8"> |
|
|
|
<el-col :span="8"> |
|
|
|
<el-form-item label="申请优惠金额" label-width="200px"> |
|
|
|
<el-form-item label="申请优惠金额" label-width="200px"> |
|
|
|
<el-input |
|
|
|
<el-input |
|
|
|
v-model="formattedDiscountAmount" |
|
|
|
v-model="discountAmount" |
|
|
|
placeholder="请输入优惠金额" |
|
|
|
placeholder="请输入优惠金额" |
|
|
|
style="width: 100%" |
|
|
|
style="width: 100%" |
|
|
|
:disabled="isViewMode" |
|
|
|
:disabled="isViewMode" |
|
|
|
min="0" |
|
|
|
min="0" |
|
|
|
|
|
|
|
|
|
|
|
/> |
|
|
|
/> |
|
|
|
</el-form-item> |
|
|
|
</el-form-item> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
</el-row> |
|
|
|
@ -384,31 +384,28 @@ export default { |
|
|
|
routeData: "routeData" |
|
|
|
routeData: "routeData" |
|
|
|
}), |
|
|
|
}), |
|
|
|
|
|
|
|
|
|
|
|
// 优惠金额格式化(基于Vuex数据) |
|
|
|
|
|
|
|
formattedDiscountAmount: { |
|
|
|
// 订单名称双向绑定 |
|
|
|
|
|
|
|
orderName: { |
|
|
|
get() { |
|
|
|
get() { |
|
|
|
// 第一步:强制转为数值,非数字则设为0 |
|
|
|
return this.vuexTemp.form.name; |
|
|
|
const num = Number(this.vuexTemp.form.discountAmount); |
|
|
|
|
|
|
|
const validNum = isNaN(num) ? 0 : num; |
|
|
|
|
|
|
|
// 第二步:格式化为两位小数(此时validNum一定是数字,不会报错) |
|
|
|
|
|
|
|
return validNum.toFixed(2); |
|
|
|
|
|
|
|
}, |
|
|
|
}, |
|
|
|
set(val) { |
|
|
|
set(val) { |
|
|
|
// 输入值转数值,非数字则设为0,同步到Vuex |
|
|
|
|
|
|
|
const num = Number(val); |
|
|
|
|
|
|
|
this.saveTempOrderInfo({ |
|
|
|
this.saveTempOrderInfo({ |
|
|
|
form: { discountAmount: isNaN(num) ? 0 : num } |
|
|
|
form: { name: val } |
|
|
|
}); |
|
|
|
}); |
|
|
|
}, |
|
|
|
}, |
|
|
|
}, |
|
|
|
}, |
|
|
|
// 订单名称双向绑定 |
|
|
|
// 申请优惠金额 |
|
|
|
orderName: { |
|
|
|
discountAmount: { |
|
|
|
get() { |
|
|
|
get() { |
|
|
|
return this.vuexTemp.form.name; |
|
|
|
// 兜底:确保获取的值是数字/空,避免NaN |
|
|
|
|
|
|
|
return this.vuexTemp.form.discountAmount || "0.00"; |
|
|
|
}, |
|
|
|
}, |
|
|
|
set(val) { |
|
|
|
set(val) { |
|
|
|
|
|
|
|
// 输入时同步到Vuex |
|
|
|
this.saveTempOrderInfo({ |
|
|
|
this.saveTempOrderInfo({ |
|
|
|
form: { name: val } |
|
|
|
form: { discountAmount: val } |
|
|
|
}); |
|
|
|
}); |
|
|
|
}, |
|
|
|
}, |
|
|
|
}, |
|
|
|
}, |
|
|
|
@ -462,7 +459,6 @@ export default { |
|
|
|
productList: temp.productList || [], |
|
|
|
productList: temp.productList || [], |
|
|
|
form: { |
|
|
|
form: { |
|
|
|
...form, |
|
|
|
...form, |
|
|
|
discountAmount: form.discountAmount === undefined ? 0 : form.discountAmount |
|
|
|
|
|
|
|
}, |
|
|
|
}, |
|
|
|
projectList: temp.projectList || [], |
|
|
|
projectList: temp.projectList || [], |
|
|
|
isTemporaryLeave: temp.isTemporaryLeave || false |
|
|
|
isTemporaryLeave: temp.isTemporaryLeave || false |
|
|
|
@ -605,11 +601,19 @@ export default { |
|
|
|
const res = await getOrderDetail(this.vuexParams.orderId); |
|
|
|
const res = await getOrderDetail(this.vuexParams.orderId); |
|
|
|
if (res.data.code === 200) { |
|
|
|
if (res.data.code === 200) { |
|
|
|
const data = res.data.data; |
|
|
|
const data = res.data.data; |
|
|
|
|
|
|
|
console.log("data",data) |
|
|
|
|
|
|
|
// const formattedDiscount = data.discountAmount |
|
|
|
|
|
|
|
// ? this.formatTwoDecimals(Number(data.discountAmount)) |
|
|
|
|
|
|
|
// : "0.00"; |
|
|
|
// 保存到Vuex |
|
|
|
// 保存到Vuex |
|
|
|
this.saveTempOrderInfo({ |
|
|
|
this.saveTempOrderInfo({ |
|
|
|
form: data || {}, |
|
|
|
form: { |
|
|
|
|
|
|
|
...data || {}, |
|
|
|
|
|
|
|
// discountAmount: formattedDiscount // 格式化后的值 |
|
|
|
|
|
|
|
}, |
|
|
|
projectList: data.projectList || [], |
|
|
|
projectList: data.projectList || [], |
|
|
|
originalOrderStatus: data.status, |
|
|
|
originalOrderStatus: data.status, |
|
|
|
|
|
|
|
|
|
|
|
}); |
|
|
|
}); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
this.$message.error("加载订单详情失败:" + (res.msg || "未知错误")); |
|
|
|
this.$message.error("加载订单详情失败:" + (res.msg || "未知错误")); |
|
|
|
@ -663,10 +667,15 @@ export default { |
|
|
|
// 构造提交参数(从Vuex读取) |
|
|
|
// 构造提交参数(从Vuex读取) |
|
|
|
const selectedCustomer = this.customerList.find( |
|
|
|
const selectedCustomer = this.customerList.find( |
|
|
|
(item) => item.id === this.vuexTemp.form.customerCode |
|
|
|
(item) => item.id === this.vuexTemp.form.customerCode |
|
|
|
|
|
|
|
); |
|
|
|
|
|
|
|
// 核心:格式化优惠金额后再构造参数 |
|
|
|
|
|
|
|
const formattedDiscount = this.formatTwoDecimals( |
|
|
|
|
|
|
|
Number(this.vuexTemp.form.discountAmount) || 0 |
|
|
|
); |
|
|
|
); |
|
|
|
const customerName = selectedCustomer && selectedCustomer.companyName ? selectedCustomer.companyName : ""; |
|
|
|
const customerName = selectedCustomer && selectedCustomer.companyName ? selectedCustomer.companyName : ""; |
|
|
|
const queryData = { |
|
|
|
const queryData = { |
|
|
|
...this.vuexTemp.form, |
|
|
|
...this.vuexTemp.form, |
|
|
|
|
|
|
|
discountAmount: formattedDiscount, |
|
|
|
customerName, |
|
|
|
customerName, |
|
|
|
projectList, |
|
|
|
projectList, |
|
|
|
}; |
|
|
|
}; |
|
|
|
@ -680,7 +689,7 @@ export default { |
|
|
|
|
|
|
|
|
|
|
|
// 新增/编辑订单 |
|
|
|
// 新增/编辑订单 |
|
|
|
// !this.vuexParams.orderId |
|
|
|
// !this.vuexParams.orderId |
|
|
|
console.log("this.vuexParams.orderId",this.vuexParams.orderId) |
|
|
|
console.log("this.vuexTemp",this.vuexTemp) |
|
|
|
if (!this.vuexParams.orderId && operateType === "add") { |
|
|
|
if (!this.vuexParams.orderId && operateType === "add") { |
|
|
|
const res = await saveOrder(queryData); |
|
|
|
const res = await saveOrder(queryData); |
|
|
|
if (res.data.code === 200) { |
|
|
|
if (res.data.code === 200) { |
|
|
|
@ -690,14 +699,17 @@ export default { |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
const res = await updateOrder(queryData); |
|
|
|
const res = await updateOrder(queryData); |
|
|
|
if (res.data.code === 200) { |
|
|
|
if (res.data.code === 200) { |
|
|
|
|
|
|
|
console.log("res1111111",res.data.code) |
|
|
|
|
|
|
|
console.log("this.originalOrderStatus",this.originalOrderStatus) |
|
|
|
if (operateType !== "submit") { |
|
|
|
if (operateType !== "submit") { |
|
|
|
this.$message.success("订单更新成功"); |
|
|
|
this.$message.success("订单更新成功"); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
if (this.originalOrderStatus === STATUS.DRAFT) { |
|
|
|
// <!-- 1-草稿 2-审批中 3-通过 4-驳回 5-完成 6-关闭 --> |
|
|
|
|
|
|
|
if (this.vuexTemp.originalOrderStatus == 1) { |
|
|
|
this.$message.success( |
|
|
|
this.$message.success( |
|
|
|
"订单提交审批成功!订单状态由草稿变成审批中" |
|
|
|
"订单提交审批成功!订单状态由草稿变成审批中" |
|
|
|
); |
|
|
|
); |
|
|
|
} else if (this.originalOrderStatus === STATUS.REJECTED) { |
|
|
|
} else if (this.vuexTemp.originalOrderStatus == 2) { |
|
|
|
this.$message.success( |
|
|
|
this.$message.success( |
|
|
|
"订单提交审批成功!订单状态由被驳回变成审批中" |
|
|
|
"订单提交审批成功!订单状态由被驳回变成审批中" |
|
|
|
); |
|
|
|
); |
|
|
|
@ -711,7 +723,7 @@ export default { |
|
|
|
console.error("保存订单失败:", err); |
|
|
|
console.error("保存订单失败:", err); |
|
|
|
} |
|
|
|
} |
|
|
|
} finally { |
|
|
|
} finally { |
|
|
|
this.$loading().close(); |
|
|
|
// this.$loading().close(); |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
// 取消操作(清空Vuex并返回) |
|
|
|
// 取消操作(清空Vuex并返回) |
|
|
|
@ -925,8 +937,9 @@ export default { |
|
|
|
this.saveTempOrderInfo({ |
|
|
|
this.saveTempOrderInfo({ |
|
|
|
mode: "add", |
|
|
|
mode: "add", |
|
|
|
orderId: "", |
|
|
|
orderId: "", |
|
|
|
|
|
|
|
form: { discountAmount: "0.00" } |
|
|
|
}); |
|
|
|
}); |
|
|
|
console.log("Vuex当前mode (after save add):", this.vuexTemp.mode); |
|
|
|
// console.log("Vuex当前mode (after save add):", this.vuexTemp.mode); |
|
|
|
if (this.$refs.orderForm) { |
|
|
|
if (this.$refs.orderForm) { |
|
|
|
this.$refs.orderForm.clearValidate(); |
|
|
|
this.$refs.orderForm.clearValidate(); |
|
|
|
} |
|
|
|
} |
|
|
|
|