| | |
| | | |
| | | const dataArr=ref({ |
| | | id:0, |
| | | productId:0, |
| | | product:"", |
| | | width:"", |
| | | height:"", |
| | | workmanship:"", |
| | | price:"", |
| | | quantity:"", |
| | | money:"", |
| | | price:null, |
| | | quantity:null, |
| | | money:null, |
| | | area:"" |
| | | }) |
| | | |
| | |
| | | |
| | | |
| | | 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、height、quantity) |
| | | // 定义数字校验规则:整数或小数(可正负,根据需求调整) |
| | | const isNumber = (val) => { |
| | | // 正则:允许整数 |
| | | 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] |
| | |
| | | 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) |
| | |
| | | |
| | | 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, |
| | |
| | | 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="" |
| | | } |
| | | |
| | | } |
| | |
| | | // 确保数据格式正确 |
| | | const validData = historyData.value.map(item => ({ |
| | | id: item.id, |
| | | product: item.product, |
| | | product: item.productName, |
| | | width: item.width, |
| | | height: item.height, |
| | | quantity: item.quantity, |
| | |
| | | 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() |
| | |
| | | :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> |
| | |
| | | </el-popconfirm> |
| | | </template> |
| | | </vxe-grid> |
| | | |
| | | <el-input |
| | | v-model="remarks" |
| | | type="textarea" |
| | | :autosize="{ minRows: 2, maxRows: 20 }" |
| | | /> |
| | | </el-dialog> |
| | | |
| | | </div> |