From 1f5cb7e48ca586cd7a3122db32b9bdf42179184f Mon Sep 17 00:00:00 2001
From: guoyujie <guoyujie@ng.com>
Date: 星期三, 17 十二月 2025 11:05:05 +0800
Subject: [PATCH] 提交vue-route配置,防止刷新页面访问异常
---
northglass-erp-client/erp-customer-client/src/views/order/OrderInquiryView.vue | 108 ++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 81 insertions(+), 27 deletions(-)
diff --git a/northglass-erp-client/erp-customer-client/src/views/order/OrderInquiryView.vue b/northglass-erp-client/erp-customer-client/src/views/order/OrderInquiryView.vue
index 299aac9..5dfdd44 100644
--- a/northglass-erp-client/erp-customer-client/src/views/order/OrderInquiryView.vue
+++ b/northglass-erp-client/erp-customer-client/src/views/order/OrderInquiryView.vue
@@ -26,13 +26,14 @@
const dataArr=ref({
id:0,
+ productId:0,
product:"",
width:"",
height:"",
workmanship:"",
- price:"",
- quantity:"",
- money:"",
+ price:null,
+ quantity:null,
+ money:null,
area:""
})
@@ -40,21 +41,39 @@
const changeDate = ()=>{
- if(product.value==undefined||product.value==""){
- ElMessage.warning('璇烽�夋嫨浜у搧')
- return
+ const validateFields = [
+ { value: product.value, message: '璇烽�夋嫨浜у搧' },
+ { value: width.value, message: '璇疯緭鍏ュ搴�' },
+ { value: height.value, message: '璇疯緭鍏ラ珮搴�' },
+ { value: quantity.value, message: '璇疯緭鍏ユ暟閲�' }
+ ];
+
+ for (const { value, message } of validateFields) {
+ if (value === undefined || value === '') {
+ ElMessage.warning(message);
+ return;
+ }
}
- if(width.value==undefined||width.value==""){
- ElMessage.warning('璇疯緭鍏ュ搴�')
- return
- }
- if(height.value==undefined||height.value==""){
- ElMessage.warning('璇疯緭鍏ラ珮搴�')
- return
- }
- if(quantity.value==undefined||quantity.value==""){
- ElMessage.warning('璇疯緭鍏ユ暟閲�')
- return
+
+// 2. 鏁板瓧鏍¢獙锛堥拡瀵� width銆乭eight銆乹uantity锛�
+// 瀹氫箟鏁板瓧鏍¢獙瑙勫垯锛氭暣鏁版垨灏忔暟锛堝彲姝h礋锛屾牴鎹渶姹傝皟鏁达級
+ const isNumber = (val) => {
+ // 姝e垯锛氬厑璁告暣鏁�
+ return /^\d+$/.test(String(val).trim());
+ };
+
+// 瀹氫箟鏁板瓧鏍¢獙鐨勫瓧娈靛拰鎻愮ず
+ const numberFields = [
+ { value: width.value, message: '瀹藉害蹇呴』鏄鏁存暟' },
+ { value: height.value, message: '楂樺害蹇呴』鏄鏁存暟' },
+ { value: quantity.value, message: '鏁伴噺蹇呴』鏄鏁存暟' }
+ ];
+
+ for (const { value, message } of numberFields) {
+ if (!isNumber(value)) {
+ ElMessage.warning(message);
+ return;
+ }
}
const productId=product.value.split("/")[0]
@@ -62,10 +81,11 @@
if (res.code === 200 ) {
if(res.data.money!==0){
dataArr.value.id=historyData.value.length+1
+ dataArr.value.productId=parseInt(product.value.split("/")[0])
dataArr.value.product=product.value.split("/")[1]
- dataArr.value.width=width.value
- dataArr.value.height=height.value
- dataArr.value.quantity=quantity.value
+ dataArr.value.width=parseFloat(width.value)
+ dataArr.value.height=parseFloat(height.value)
+ dataArr.value.quantity=parseInt(quantity.value )
const rawResult = width.value * height.value * quantity.value / 1000000;
dataArr.value.area=parseFloat(rawResult.toFixed(2))
dataArr.value.money=parseFloat(dataArr.value.area*res.data.money).toFixed(2)
@@ -75,7 +95,8 @@
const newData = {
id: dataArr.value.id,
- product: dataArr.value.product,
+ productId:dataArr.value.productId,
+ productName: dataArr.value.product,
width: dataArr.value.width,
height: dataArr.value.height,
quantity:dataArr.value.quantity,
@@ -85,9 +106,20 @@
price: dataArr.value.price
};
historyData.value.push(newData)
+ ElMessage.success("鏌ヨ鎴愬姛")
}else{
ElMessage.info("璇ヤ骇鍝佷环鏍兼湭涓婁紶锛岃鑱旂郴")
+ dataArr.value.id=0
+ dataArr.value.productId=0
+ dataArr.value.product=""
+ dataArr.value.width=""
+ dataArr.value.height=""
+ dataArr.value.quantity=""
+ dataArr.value.area=""
+ dataArr.value.money=""
+ dataArr.value.workmanship=""
+ dataArr.value.price=""
}
}
@@ -104,7 +136,7 @@
// 纭繚鏁版嵁鏍煎紡姝g‘
const validData = historyData.value.map(item => ({
id: item.id,
- product: item.product,
+ product: item.productName,
width: item.width,
height: item.height,
quantity: item.quantity,
@@ -127,14 +159,32 @@
dialogVisible.value = true;
};
+const remarks=ref("")
const saveOrder = () => {
if (historyData.value.length === 0) {
ElMessage.info('璇烽噸鏂伴�夋嫨鏁版嵁');
return;
}
- ElMessage.success('涓嬪崟鎴愬姛');
- dialogVisible.value = false;
+
+ let flowData = ref({
+ data: historyData.value,
+ customerId:user.user.customerId,
+ customerName:user.user.customerName,
+ remarks:remarks.value
+ })
+
+ request.post("/customerOrder/saveCustomerOrder", flowData.value).then((res) => {
+ if(res.code==200 && res.data==="true"){
+ ElMessage.success('涓嬪崟鎴愬姛');
+ dialogVisible.value = false;
+ window.location.reload();
+ }
+ }).catch((err)=>{
+ ElMessage.error('涓嬪崟澶辫触')
+ }).finally(()=>{
+ })
+
};
const xGrid = ref()
@@ -227,11 +277,11 @@
:value="item.id+'/'+item.productName"
/>
</el-select>
- <el-input v-model.trim="width" class="input" :placeholder="$t('瀹藉害')"></el-input>
+ <el-input v-model="width" class="input" :placeholder="$t('瀹藉害')"></el-input>
<el-input v-model="height" class="input" :placeholder="$t('楂樺害')"></el-input>
- <el-input v-model="quantity" class="input" :placeholder="$t('鏁伴噺')"></el-input>
+ <el-input v-model="quantity" class="input" :placeholder="$t('鏁伴噺')"></el-input>
<el-button class="button" type="primary" @click="changeDate">鏌ヨ</el-button>
</div>
@@ -302,7 +352,11 @@
</el-popconfirm>
</template>
</vxe-grid>
-
+ <el-input
+ v-model="remarks"
+ type="textarea"
+ :autosize="{ minRows: 2, maxRows: 20 }"
+ />
</el-dialog>
</div>
--
Gitblit v1.8.0