| | |
| | | deliveryAddress:'', |
| | | otherMoney:'', |
| | | otherMoneyRemarks:'', |
| | | processingNote:'', |
| | | processingNote:t('order.processingNote')+':', |
| | | createOrder:0, |
| | | creatorId:userStore.user.userId, |
| | | creator:userStore.user.userName, |
| | |
| | | stripe:true,//斑马纹 |
| | | rowConfig: {isCurrent: true, isHover: true,height: 30},//鼠标移动或选择高亮 |
| | | //virtualScroll: true, // 开启虚拟滚动功能 |
| | | id: 'OrderList', |
| | | id: 'CreateOrder', |
| | | showFooter: true,//显示脚 |
| | | printConfig: {}, |
| | | importConfig: {}, |
| | |
| | | { code: 'copyAll', name: t('basicData.sameAfterwards'), prefixIcon: 'vxe-icon-feedback', visible: true, disabled: false }, |
| | | { code: 'clearChecked', name: t('basicData.clearSelection'), prefixIcon: 'vxe-icon-indicator', visible: true, disabled: false }, |
| | | { code: 'computedMoney', name: t('basicData.calculateAmount'), prefixIcon: 'vxe-icon-chart-bar-x', visible: true, disabled: true }, |
| | | { code: 'incrementalAll', name: t('basicData.incrementalAll'), prefixIcon: 'vxe-icon-feedback', visible: true, disabled: false }, |
| | | { code: 'incrementalChecked', name: t('basicData.incrementalChecked'), prefixIcon: 'vxe-icon-copy', visible: true, disabled: false }, |
| | | { 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 } |
| | |
| | | computeArea: [ |
| | | { |
| | | validator ({ cellValue }) { |
| | | const regex = /^(0(\.\d{1,2})?|([1-9]\d{0,4})(\.\d{1,2})?|99999(\.9{1,2})?)$/ |
| | | const decValue = company.decValue*1 |
| | | const regex =new RegExp(`^(0(\\.\\d{1,${decValue}})?|([1-9]\\d{0,4})(\\.\\d{1,${decValue}})?|99999(\\.9{1,${decValue}})?)$`) |
| | | if (!regex.test(cellValue)) { |
| | | return new Error(t('basicData.msg.range99999Dec2')) |
| | | return new Error(t(`basicData.msg.range99999Dec${decValue}`)) |
| | | } |
| | | } |
| | | } |
| | |
| | | bendRadius:[ |
| | | { |
| | | validator ({ cellValue }) { |
| | | const regex = /^(0(\.\d{1,2})?|([1-9]\d{0,4})(\.\d{1,2})?|99999(\.9{1,2})?)$/ |
| | | const regex = /^(0(\.\d{1,2})?|([1-9]\d{0,5})(\.\d{1,2})?|999999(\.9{1,2})?)$/ |
| | | if (cellValue && !regex.test(cellValue)) { |
| | | return new Error(t('basicData.msg.range99999Dec2')) |
| | | return new Error(t('basicData.msg.range999999Dec2')) |
| | | } |
| | | } |
| | | } |
| | |
| | | ElMessage.error( t('order.msg.tableLengthNot')) |
| | | return |
| | | } |
| | | computedMoney() |
| | | computedMoney(null) |
| | | if(!gridOptions.menuConfig.body.options[0][5].disabled){ |
| | | ElMessage.error(t('order.msg.amountReset')) |
| | | return |
| | |
| | | } |
| | | }) |
| | | } |
| | | computedMoney() |
| | | computedMoney(null) |
| | | break |
| | | } |
| | | case 'copyChecked' :{ |
| | |
| | | }) |
| | | } |
| | | } |
| | | computedMoney() |
| | | computedMoney(result.cell) |
| | | gridOptions.menuConfig.body.options[0][5].disabled=false |
| | | break |
| | | } |
| | |
| | | } |
| | | |
| | | } |
| | | computedMoney() |
| | | computedMoney(result.cell) |
| | | gridOptions.menuConfig.body.options[0][5].disabled=false |
| | | break |
| | | } |
| | |
| | | } |
| | | }) |
| | | } |
| | | computedMoney() |
| | | computedMoney(result.cell) |
| | | gridOptions.menuConfig.body.options[0][5].disabled=false |
| | | break |
| | | } |
| | | case 'computedMoney' :{ |
| | | computedMoney() |
| | | computedMoney(null) |
| | | |
| | | break |
| | | } |
| | |
| | | } |
| | | case 'sizeCheck' :{ |
| | | sizeCheckVisible.value=true |
| | | break |
| | | } |
| | | case 'incrementalAll' :{ |
| | | let result = toolbarButtonClickEvent() |
| | | if(result){ |
| | | const dataList = xGrid.value.getTableData().visibleData |
| | | const val = getNestedProperty(dataList[result.start],result.cell) |
| | | let numbers = parseInt(val.match(/(\d+)$/)) |
| | | const string=val.replace(/\d+$/, '') |
| | | dataList.forEach((item,index) =>{ |
| | | if(index>=result.start ){ |
| | | setNestedValue(item,result.cell,string+numbers) |
| | | numbers=numbers+1 |
| | | } |
| | | |
| | | }) |
| | | |
| | | } |
| | | gridOptions.menuConfig.body.options[0][5].disabled=false |
| | | break |
| | | } |
| | | case 'incrementalChecked' : { |
| | | let result = toolbarButtonClickEvent() |
| | | if (result) { |
| | | const dataList = xGrid.value.getTableData().visibleData |
| | | const val = getNestedProperty(dataList[result.start], result.cell) |
| | | 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 |
| | | } |
| | | }) |
| | | |
| | | } |
| | | gridOptions.menuConfig.body.options[0][5].disabled = false |
| | | break |
| | | } |
| | | } |
| | |
| | | } |
| | | }) |
| | | } |
| | | const computedMoney = () => { |
| | | const computedMoney = (cell) => { |
| | | const dataList = xGrid.value.getTableData().fullData |
| | | dataList.forEach((item,index) =>{ |
| | | item.area = area(item) |
| | | item.grossArea = countArea(item) |
| | | item.computeArea = item.area |
| | | item.computeGrossArea = item.grossArea |
| | | item.grossAmount=parseFloat((item.price * item.computeGrossArea).toFixed(2)) |
| | | if(['width', 'height', 'quantity'].includes(cell)){ |
| | | item.area = area(item) |
| | | item.grossArea = countArea(item) |
| | | item.computeArea = item.area |
| | | item.computeGrossArea = item.grossArea |
| | | }else if(cell==='computeArea'){ |
| | | item.computeGrossArea = item.computeArea * item.quantity |
| | | } |
| | | |
| | | if(titleUploadData.value.calculateType===3){ |
| | | item.grossAmount=parseFloat((item.price * item.quantity).toFixed(2)) |
| | | }else{ |
| | | item.grossAmount=parseFloat((item.price * item.computeGrossArea).toFixed(2)) |
| | | } |
| | | |
| | | }) |
| | | titleUploadData.value.money=countMoney(xGrid.value.getTableData().fullData).toString() |
| | | |
| | |
| | | titleUploadData.value.icon = titleSelectJson.value.icon[0].basicName |
| | | titleUploadData.value.packType = titleSelectJson.value.packType[0].basicName |
| | | titleUploadData.value.alType = titleSelectJson.value.alType[0].basicName |
| | | titleUploadData.value.calculateType = 2 |
| | | titleUploadData.value.calculateType = 1 |
| | | const today = new Date |
| | | today.setTime(today.getTime() + (7 * 24 * 60 * 60 * 1000)) |
| | | titleUploadData.value.deliveryDate = today.getFullYear() + |
| | |
| | | } |
| | | |
| | | const area = (row) => { |
| | | return parseFloat((row.width * row.height/1000000).toFixed(2)) |
| | | return parseFloat((row.width * row.height/1000000).toFixed(company.decValue)) |
| | | } |
| | | const countArea = (row) => { |
| | | const area = parseFloat((row.width * row.height/1000000).toFixed(2)) |
| | | const area = parseFloat((row.width * row.height/1000000).toFixed(company.decValue)) |
| | | let areaSum = 0 |
| | | // 获取保留面积 |
| | | const decValue = company.decValue |
| | | switch (titleUploadData.value.calculateType){ |
| | | case 1:{ |
| | | areaSum = parseFloat((area * row.quantity).toFixed(2)) |
| | | case 2:{ |
| | | areaSum = parseFloat((row.width * row.height * row.quantity/1000000).toFixed(decValue)) |
| | | break |
| | | } |
| | | case 2:{ |
| | | areaSum = parseFloat((row.width * row.height * row.quantity/1000000).toFixed(2)) |
| | | default :{ |
| | | areaSum = parseFloat((row.computeArea * row.quantity).toFixed(decValue)) |
| | | break |
| | | } |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | |
| | | if(item.computeArea === undefined){ |
| | | item.computeArea = area(item) |
| | | }else{ |
| | | item.computeGrossArea = item.computeArea * item.quantity |
| | | } |
| | | item.area = area(item) |
| | | item.grossArea = countArea(item) |
| | | const decValue = company.decValue |
| | | |
| | | if(titleUploadData.value.calculateType===1){ |
| | | item.computeGrossArea = parseFloat((item.computeArea*item.quantity).toFixed(2)) |
| | | item.computeGrossArea = parseFloat((item.computeArea*item.quantity).toFixed(decValue)) |
| | | }else if(titleUploadData.value.calculateType===2){ |
| | | item.computeGrossArea = item.grossArea |
| | | } |
| | | if(titleUploadData.value.calculateType===3){ |
| | | item.grossAmount=parseFloat((item.price * item.quantity).toFixed(2)) |
| | | }else{ |
| | | item.grossAmount=parseFloat((item.price * item.computeGrossArea).toFixed(2)) |
| | | item.grossAmount=parseFloat((item.price * 1 * item.computeGrossArea).toFixed(2)) |
| | | } |
| | | |
| | | }) |
| | |
| | | lastObj[lastKey] = value; |
| | | } |
| | | |
| | | |
| | | //行单元格修改修改触发此事件 |
| | | const editClosedEvent = ({ row, column }) => { |
| | | |
| | | |
| | | //判断修改相应的数值修改面积与金额 |
| | | if (['width', 'height', 'quantity', 'price'].includes(column.property)) { |
| | | row.area = area(row) |
| | | row.grossArea = countArea(row) |
| | | row.computeArea = row.area |
| | | row.computeGrossArea = row.grossArea |
| | | row.grossAmount=parseFloat((row.price * row.computeGrossArea).toFixed(2)) |
| | | if(titleUploadData.value?.orderReview!==2){ |
| | | row.area = area(row) |
| | | row.grossArea = countArea(row) |
| | | row.computeArea = row.area |
| | | row.computeGrossArea = row.grossArea |
| | | } |
| | | if(titleUploadData.value.calculateType===3){ |
| | | row.grossAmount=parseFloat((row.price * row.quantity).toFixed(2)) |
| | | }else{ |
| | | row.grossAmount=parseFloat((row.price * row.computeGrossArea).toFixed(2)) |
| | | } |
| | | |
| | | }else if(column.property === 'computeArea'){ |
| | | row.computeGrossArea=parseFloat((row.computeArea*row.quantity).toFixed(2)) |
| | | if(titleUploadData.value.calculateType!==3){ |
| | | if(titleUploadData.value?.orderReview!==2){ |
| | | row.computeGrossArea = row.computeArea * row.quantity |
| | | } |
| | | row.grossAmount=parseFloat((row.price * row.computeGrossArea).toFixed(2)) |
| | | } |
| | | |
| | |
| | | fullData.forEach((item) => { |
| | | |
| | | if( !isNaN(item.computeArea*1) && item.computeArea != null ){ |
| | | item.grossArea = countArea(item) |
| | | item.computeGrossArea = item.grossArea |
| | | if(titleUploadData.value.calculateType===3){ |
| | | item.grossAmount=parseFloat((item.price * item.quantity).toFixed(2)) |
| | | }else{ |
| | | item.grossArea = countArea(item) |
| | | item.computeGrossArea = item.grossArea |
| | | item.grossAmount=parseFloat((item.price * item.computeGrossArea).toFixed(2)) |
| | | } |
| | | |
| | | } |
| | | }) |
| | | titleUploadData.value.money=countMoney(fullData).toString() |
| | |
| | | } |
| | | if(evnt.$event.keyCode === 13 ){ |
| | | const { rowIndex,row,column } = xGrid.value.getSelectedCell() || xGrid.value.getEditRecord() |
| | | // if(xGrid.value.getEditRecord()===null){ |
| | | // xGrid.value.setEditCell(row,column) |
| | | // } |
| | | let nextRowIndex = xGrid.value.getRowIndex(row) + 1; |
| | | if (nextRowIndex < xGrid.value.getTableData().fullData.length) { |
| | | xGrid.value.setCurrentRow(xGrid.value.getTableData().fullData[nextRowIndex]); |
| | | } |
| | | if(rowIndex === length-1){ |
| | | xGrid.value.insertAt({}, xGrid.value.getTableData.length || -1) |
| | | } |
| | | |
| | | } |
| | | if(evnt.$event.keyCode === 38 ){ |
| | | const { rowIndex,row,column } = xGrid.value.getSelectedCell() || xGrid.value.getEditRecord() |
| | | let nextRowIndex = xGrid.value.getRowIndex(row) - 1; |
| | | console.log(xGrid.value.getTableData().fullData.length) |
| | | console.log(nextRowIndex) |
| | | if (nextRowIndex < xGrid.value.getTableData().fullData.length && nextRowIndex>=0) { |
| | | xGrid.value.setCurrentRow(xGrid.value.getTableData().fullData[nextRowIndex]); |
| | | } |
| | | |
| | | } |
| | | if(evnt.$event.keyCode === 40 ){ |
| | | const { rowIndex,row,column } = xGrid.value.getSelectedCell() || xGrid.value.getEditRecord() |
| | | let nextRowIndex = xGrid.value.getRowIndex(row) + 1; |
| | | if (nextRowIndex < xGrid.value.getTableData().fullData.length) { |
| | | xGrid.value.setCurrentRow(xGrid.value.getTableData().fullData[nextRowIndex]); |
| | | } |
| | | |
| | | } |
| | |
| | | <el-select @change="changeCalculateType" v-model="titleUploadData.calculateType" placeholder=" " > |
| | | <el-option :value="1" :label="t('order.areaAmountPerPiece')"/> |
| | | <el-option :value="2" :label="t('order.areaAmountAge')"/> |
| | | <el-option :value="3" :label="'数量金额'"/> |
| | | </el-select> |
| | | </el-col> |
| | | <el-col :span="2"><el-text>*{{$t('order.salesman')}}:</el-text></el-col> |