| | |
| | | import footSum from "@/hook/footSum" |
| | | import {useI18n} from "vue-i18n" |
| | | import {multiply,multiplyAuto,divideAuto} from '@/utils/decimal' |
| | | import OrderNumberReportTransfer from "@/components/sd/order/OrderNumberReportTransfer.vue"; |
| | | const { t } = useI18n() |
| | | |
| | | let dialogTableVisible = ref(false) |
| | |
| | | let errorAreaVisible = ref(false) |
| | | let otherMoneyVisible = ref(false) |
| | | let sizeCheckVisible = ref(false) |
| | | let dialogTransferVisible = ref(false) |
| | | const transferData = ref({ |
| | | oldOrderId:null, |
| | | newOrderNumber:null, |
| | | newOrderId:null, |
| | | oldOrderNumber:null, |
| | | }) |
| | | let orderIdVisible = ref(false) |
| | | const maxTableLen =ref(500) |
| | | const userStore = useUserInfoStore() |
| | |
| | | printConfig: {}, |
| | | importConfig: {}, |
| | | exportConfig: {}, |
| | | scrollY:{ enabled: true,gt:0 },//开启虚拟滚动 |
| | | scrollX:{ enabled: true,gt:0 },//开启虚拟滚动 |
| | | virtualXConfig:{ enabled: true,gt:0 },//开启虚拟滚动 |
| | | virtualYConfig:{ enabled: true,gt:0 },//开启虚拟滚动 |
| | | showOverflow:true, |
| | | menuConfig: { |
| | | body: { |
| | |
| | | { code: 'errorArea', name: t('basicData.errorSettlementArea'), prefixIcon: 'vxe-icon-chart-bar-x', visible: true, disabled: false }, |
| | | { code: 'otherMoney', name: t('basicData.otherAmounts'), prefixIcon: 'vxe-icon-chart-bar-x', visible: true, disabled: false }, |
| | | { code: 'sizeCheck', name: t('basicData.sizeReview'), prefixIcon: 'vxe-icon-eye-fill', visible: true, disabled: false }, |
| | | { code: 'updateOrderId', name: '修改订单号', prefixIcon: 'vxe-icon-eye-fill', visible: true, disabled: false } |
| | | { code: 'updateOrderId', name: t('searchOrder.updateOrderId'), prefixIcon: 'vxe-icon-eye-fill', visible: true, disabled: false }, |
| | | { code: 'reportingTransfer', name: t('searchOrder.reportingTransfer'), prefixIcon: 'vxe-icon-send', visible: true, disabled: true } |
| | | ] |
| | | ] |
| | | } |
| | |
| | | if(result){ |
| | | const dataList = xGrid.value.getTableData().visibleData |
| | | const val = getNestedProperty(dataList[result.start],result.cell)+"" |
| | | if(!/\d$/.test(val)){ |
| | | const matches = val.match(/\D/g); |
| | | const b= val.lastIndexOf(matches[matches.length-1]) |
| | | |
| | | const numbersArr = [] |
| | | const regex = /\d+/g |
| | | let match |
| | | while ((match = regex.exec(val))) { |
| | | numbersArr.push({ number: match[0], index: match.index }); |
| | | } |
| | | let numbers=numbersArr[numbersArr.length-1] |
| | | var subStr1 = val.substring(numbers.index); |
| | | var subStr2 = val.substring(0, numbers.index); |
| | | let number = parseInt(subStr1) |
| | | var reg =new RegExp(number,"g") |
| | | dataList.forEach((item,index) =>{ |
| | | if(index>=result.start ){ |
| | | let newStr = subStr1.replace(reg, number); |
| | | if(parseInt(newStr)>9){ |
| | | newStr=parseInt(newStr) |
| | | } |
| | | setNestedValue(item,result.cell,subStr2+newStr) |
| | | number=number+1 |
| | | const numbersArr = [] |
| | | const regex = /\d+/g |
| | | let match |
| | | while ((match = regex.exec(val))) { |
| | | numbersArr.push({ number: match[0], index: match.index }); |
| | | } |
| | | let numbers=numbersArr[numbersArr.length-1] |
| | | var subStr1 = val.substring(numbers.index); |
| | | const matche = subStr1.match(/(\d+)([^0-9]|$)/); |
| | | const a= val.lastIndexOf(matche[2]) |
| | | var subStr2 = val.substring(0, numbers.index); |
| | | var subStr3 = val.substring(a,b+1); |
| | | let number = parseInt(subStr1) |
| | | var reg =new RegExp(number,"g") |
| | | dataList.forEach((item,index) =>{ |
| | | if(index>=result.start ){ |
| | | let newStr = subStr1.replace(reg, number); |
| | | if(parseInt(newStr)>9){ |
| | | newStr=parseInt(newStr) |
| | | if(!/\d$/.test(val)){ |
| | | newStr=newStr+subStr3 |
| | | } |
| | | } |
| | | setNestedValue(item,result.cell,subStr2+newStr) |
| | | number=number+1 |
| | | } |
| | | |
| | | }) |
| | | }) |
| | | }else{ |
| | | const numbersArr = [] |
| | | const regex = /\d+/g |
| | | let match |
| | | while ((match = regex.exec(val))) { |
| | | numbersArr.push({ number: match[0], index: match.index }); |
| | | } |
| | | let numbers=numbersArr[numbersArr.length-1] |
| | | var subStr1 = val.substring(numbers.index); |
| | | var subStr2 = val.substring(0, numbers.index); |
| | | let number = parseInt(subStr1) |
| | | var reg =new RegExp(number,"g") |
| | | dataList.forEach((item,index) =>{ |
| | | if(index>=result.start ){ |
| | | let newStr = subStr1.replace(reg, number); |
| | | if(parseInt(newStr)>9){ |
| | | newStr=parseInt(newStr) |
| | | } |
| | | setNestedValue(item,result.cell,subStr2+newStr) |
| | | number=number+1 |
| | | } |
| | | |
| | | }) |
| | | } |
| | | |
| | | } |
| | | computedMoney(result.cell) |
| | |
| | | if (result) { |
| | | const dataList = xGrid.value.getTableData().visibleData |
| | | const val = getNestedProperty(dataList[result.start], result.cell)+"" |
| | | const numbersArr = [] |
| | | const regex = /\d+/g |
| | | let match |
| | | while ((match = regex.exec(val))) { |
| | | numbersArr.push({ number: match[0], index: match.index }); |
| | | } |
| | | let numbers=numbersArr[numbersArr.length-1] |
| | | var subStr1 = val.substring(numbers.index); |
| | | var subStr2 = val.substring(0, numbers.index); |
| | | let number = parseInt(subStr1) |
| | | var reg =new RegExp(number,"g") |
| | | dataList.forEach((item,index) =>{ |
| | | if(index >= result.start && index <= result.end){ |
| | | let newStr = subStr1.replace(reg, number); |
| | | if(parseInt(newStr)>9){ |
| | | newStr=parseInt(newStr) |
| | | if(!/\d$/.test(val)){ |
| | | const matches = val.match(/\D/g); |
| | | const b= val.lastIndexOf(matches[matches.length-1]) |
| | | |
| | | const numbersArr = [] |
| | | const regex = /\d+/g |
| | | let match |
| | | while ((match = regex.exec(val))) { |
| | | numbersArr.push({ number: match[0], index: match.index }); |
| | | } |
| | | let numbers=numbersArr[numbersArr.length-1] |
| | | var subStr1 = val.substring(numbers.index); |
| | | const matche = subStr1.match(/(\d+)([^0-9]|$)/); |
| | | const a= val.lastIndexOf(matche[2]) |
| | | var subStr2 = val.substring(0, numbers.index); |
| | | var subStr3 = val.substring(a,b+1); |
| | | let number = parseInt(subStr1) |
| | | var reg =new RegExp(number,"g") |
| | | dataList.forEach((item,index) =>{ |
| | | if(index >= result.start && index <= result.end){ |
| | | let newStr = subStr1.replace(reg, number); |
| | | if(parseInt(newStr)>9){ |
| | | newStr=parseInt(newStr) |
| | | newStr=newStr+subStr3 |
| | | } |
| | | setNestedValue(item,result.cell,subStr2+newStr) |
| | | number=number+1 |
| | | } |
| | | setNestedValue(item,result.cell,subStr2+newStr) |
| | | number=number+1 |
| | | } |
| | | |
| | | }) |
| | | /*let numbers = parseInt(val.match(/(\d+)$/)) |
| | | const string=val.replace(/\d+$/, '') |
| | | dataList.forEach((item, index) => { |
| | | if (index >= result.start && index <= result.end) { |
| | | setNestedValue(item, result.cell, string + numbers) |
| | | numbers = numbers + 1 |
| | | }) |
| | | }else{ |
| | | const numbersArr = [] |
| | | const regex = /\d+/g |
| | | let match |
| | | while ((match = regex.exec(val))) { |
| | | numbersArr.push({ number: match[0], index: match.index }); |
| | | } |
| | | })*/ |
| | | let numbers=numbersArr[numbersArr.length-1] |
| | | var subStr1 = val.substring(numbers.index); |
| | | var subStr2 = val.substring(0, numbers.index); |
| | | let number = parseInt(subStr1) |
| | | var reg =new RegExp(number,"g") |
| | | dataList.forEach((item,index) =>{ |
| | | if(index >= result.start && index <= result.end){ |
| | | let newStr = subStr1.replace(reg, number); |
| | | if(parseInt(newStr)>9){ |
| | | newStr=parseInt(newStr) |
| | | } |
| | | setNestedValue(item,result.cell,subStr2+newStr) |
| | | number=number+1 |
| | | } |
| | | |
| | | }) |
| | | } |
| | | } |
| | | computedMoney(result.cell) |
| | | gridOptions.menuConfig.body.options[0][5].disabled = false |
| | | break |
| | | } |
| | | case "reportingTransfer":{ |
| | | const row = xGrid.value.getCurrentRecord() |
| | | if(row===null){ |
| | | ElMessage.warning("请选择一行数据") |
| | | return |
| | | } |
| | | transferData.value.oldOrderNumber = row.orderNumber |
| | | transferData.value.oldOrderId = titleUploadData.value.orderId |
| | | dialogTransferVisible.value = true |
| | | break |
| | | } |
| | | } |
| | |
| | | gridOptions.toolbarConfig.buttons[2].disabled = true |
| | | gridOptions.toolbarConfig.buttons[3].disabled = true |
| | | gridOptions.toolbarConfig.buttons[4].disabled = true |
| | | |
| | | |
| | | } |
| | | } |
| | | if(res.data.order.processingCard>0 && company.connectMes){ |
| | | gridOptions.menuConfig.body.options[0][12].disabled = false |
| | | } |
| | | |
| | | if(res.data.order.productionOrder !==0 ){ |
| | |
| | | |
| | | if(titleUploadData.value.calculateType===3){ |
| | | item.grossAmount=multiply(item.price,item.quantity) |
| | | }else if(titleUploadData.value.calculateType===4){ |
| | | item.grossAmount=parseFloat(divideAuto(item.width * item.height* item.quantity*item.price,1000000,company.decValue)) |
| | | }else{ |
| | | item.grossAmount=multiply(item.price,item.computeGrossArea) |
| | | } |
| | |
| | | titleUploadData.value.alType = titleSelectJson.value.alType[0].basicName |
| | | titleUploadData.value.calculateType = company.calculateType |
| | | const today = new Date |
| | | today.setTime(today.getTime() + (7 * 24 * 60 * 60 * 1000)) |
| | | today.setTime(today.getTime() + (company.deliveryDate * 24 * 60 * 60 * 1000)) |
| | | titleUploadData.value.deliveryDate = today.getFullYear() + |
| | | '-' + ("0" + (today.getMonth() + 1)).slice(-2) |
| | | + '-' + ("0" + today.getDate()).slice(-2) |
| | |
| | | orderId:newOrderId.value, |
| | | random:Math.random()}}) |
| | | }else if(res.data==="false1"){ |
| | | ElMessage.warning("输入订单号不能大于最大订单号") |
| | | ElMessage.warning(t('order.msg.updateOrderIdErrorGtMaxId')) |
| | | }else if(res.data==="false2"){ |
| | | ElMessage.warning("输入订单号已存在") |
| | | ElMessage.warning(t('order.msg.updateOrderIdErrorIsExist')) |
| | | }else if(res.data==="false3"){ |
| | | ElMessage.warning("输入订单号相同") |
| | | ElMessage.warning(t('order.msg.updateOrderIdErrorIsSame')) |
| | | }else if(res.data==="false4"){ |
| | | ElMessage.warning("输入订单号长度不符") |
| | | ElMessage.warning(t('order.msg.updateOrderIdErrorDiscrepancyInLength')) |
| | | }else if(res.data==="false5"){ |
| | | ElMessage.warning("请输入数字") |
| | | ElMessage.warning(t('order.msg.updateOrderIdErrorInputNumber')) |
| | | }else if(res.data==="false6"){ |
| | | ElMessage.warning("不能修改第一个单子") |
| | | ElMessage.warning(t('order.msg.updateOrderIdErrorNotNo1')) |
| | | } |
| | | }) |
| | | } |
| | |
| | | await ElMessageBox.confirm( |
| | | t('order.msg.differentSize'), |
| | | t('order.msg.warning'), |
| | | { |
| | | confirmButtonText: t('basicData.confirmButtonText'), |
| | | {confirmButtonText: t('basicData.confirmButtonText'), |
| | | cancelButtonText: t('basicData.cancelButtonText'), |
| | | type: 'warning', |
| | | } |
| | |
| | | return |
| | | } |
| | | titleUploadData.value.project = item.project |
| | | titleUploadData.value.salesmanId = item.salesmanId |
| | | titleUploadData.value.salesmanId = parseInt(item.salesmanId) |
| | | titleUploadData.value.salesman = item.salesman |
| | | titleUploadData.value.contacts = item.contacts |
| | | titleUploadData.value.contactNumber = item.contactNumber |
| | |
| | | const changeSaleMan = () => { |
| | | const changedSaleManId = titleUploadData.value.salesmanId |
| | | const SaleMan = titleSelectJson.value.saleMan.filter(item => item.id === changedSaleManId) |
| | | titleUploadData.value.salesman = SaleMan[0].basicName |
| | | titleUploadData.value.salesman = SaleMan[0]['basicName'] |
| | | } |
| | | |
| | | const area = (row) => { |
| | |
| | | // 获取保留面积, |
| | | const decValue = company.decValue |
| | | switch (titleUploadData.value.calculateType){ |
| | | case 2:{ |
| | | case 2 :{ |
| | | areaSum = parseFloat(divideAuto(row.width * row.height* row.quantity,1000000,company.decValue)) |
| | | break |
| | | } |
| | | case 4:{ |
| | | areaSum = parseFloat(divideAuto(row.width * row.height* row.quantity,1000000,company.decValue)) |
| | | break |
| | | } |
| | |
| | | } |
| | | if(titleUploadData.value.calculateType===3){ |
| | | item.grossAmount=multiply(item.price , item.quantity) |
| | | }else if(titleUploadData.value.calculateType===4){ |
| | | item.grossAmount=parseFloat(divideAuto(item.width * item.height* item.quantity*item.price,1000000,company.decValue)) |
| | | }else{ |
| | | item.grossAmount=multiply(item.price * 1 , item.computeGrossArea) |
| | | } |
| | |
| | | } |
| | | if(titleUploadData.value.calculateType===3){ |
| | | row.grossAmount=multiply(row.price ,row.quantity) |
| | | }else if(titleUploadData.value.calculateType===4){ |
| | | row.grossAmount=parseFloat(divideAuto(row.width * row.height* row.quantity*row.price,1000000,company.decValue)) |
| | | }else{ |
| | | row.grossAmount=multiply(row.price , row.computeGrossArea) |
| | | } |
| | |
| | | if( !isNaN(item.computeArea*1) && item.computeArea != null ){ |
| | | if(titleUploadData.value.calculateType===3){ |
| | | item.grossAmount=parseFloat(multiply(item.price , item.quantity)) |
| | | }else if(titleUploadData.value.calculateType===4){ |
| | | if(titleUploadData.value?.orderReview!==2){ |
| | | item.grossArea = countArea(item) |
| | | item.computeGrossArea = item.grossArea |
| | | item.grossAmount=parseFloat(divideAuto(item.width * item.height* item.quantity*item.price,1000000,company.decValue)) |
| | | }else{ |
| | | item.grossAmount=parseFloat(divideAuto(item.width * item.height* item.quantity*item.price,1000000,company.decValue)) |
| | | } |
| | | |
| | | }else{ |
| | | item.grossArea = countArea(item) |
| | | item.computeGrossArea = item.grossArea |
| | | item.grossAmount=parseFloat(multiply(item.price , item.computeGrossArea)) |
| | | if(titleUploadData.value?.orderReview!==2){ |
| | | item.grossArea = countArea(item) |
| | | item.computeGrossArea = item.grossArea |
| | | item.grossAmount=parseFloat(multiply(item.price , item.computeGrossArea)) |
| | | }else{ |
| | | item.grossAmount=parseFloat(multiply(item.price , item.computeGrossArea)) |
| | | } |
| | | |
| | | } |
| | | } |
| | | }) |
| | |
| | | xGrid.value.clearEdit() |
| | | let rowNext = row |
| | | delete rowNext._X_ROW_KEY |
| | | xGrid.value.insertAt(rowNext, xGrid.value.getTableData.length || -1) |
| | | //xGrid.value.insertAt({}, xGrid.value.getTableData.length || -1) |
| | | //xGrid.value.insertAt(rowNext, xGrid.value.getTableData.length || -1) |
| | | xGrid.value.insertAt({}, xGrid.value.getTableData.length || -1) |
| | | } |
| | | const nextRow = xGrid.value.getTableData().fullData[nextRowIndex] |
| | | xGrid.value.setCurrentRow(nextRow) |
| | |
| | | const createCustomerSuccess = async () => { |
| | | await initOrder(1) |
| | | createCustomerVisible.value = false |
| | | } |
| | | const orderNumberTransfer = () => { |
| | | router.push({ |
| | | path:'/main/order/createOrder', |
| | | query:{ |
| | | orderId:titleUploadData.value.orderId, |
| | | random:Math.random()}}) |
| | | } |
| | | |
| | | </script> |
| | |
| | | <el-option :value="1" :label="t('order.areaAmountPerPiece')"/> |
| | | <el-option :value="2" :label="t('order.areaAmountAge')"/> |
| | | <el-option :value="3" :label="t('order.quantityMount')"/> |
| | | <el-option :value="4" :label="t('order.allAmount')"/> |
| | | </el-select> |
| | | </el-col> |
| | | <el-col :span="2"><el-text>*{{$t('order.salesman')}}:</el-text></el-col> |
| | |
| | | class="product1" |
| | | v-model="productVisible" |
| | | @closed="closeProductDialog" |
| | | :destroy-on-close="true" |
| | | style="width: 80%;height:75%; "> |
| | | <template #header > |
| | | <div class="my-header"> |
| | |
| | | <create-customer :getOrderPage="'order'" @getOrderFunction="createCustomerSuccess" /> |
| | | </el-dialog> |
| | | |
| | | <!-- 订单报工转移--> |
| | | <el-dialog v-model="dialogTransferVisible" |
| | | title="报工转移" |
| | | width="500" |
| | | destroy-on-close :close-on-click-modal="false"> |
| | | <order-number-report-transfer :transferData="transferData" @orderNumberTransfer="orderNumberTransfer"/> |
| | | </el-dialog> |
| | | |
| | | |
| | | </div> |
| | | </template> |