Merge branch 'master' of http://bore.pub:10439/r/ERP_override
| | |
| | | printConfig: {}, |
| | | importConfig: {}, |
| | | exportConfig: {}, |
| | | scrollY:{ enabled: true },//开启虚拟滚动 |
| | | scrollY:{ enabled: true,gt:0 },//开启虚拟滚动 |
| | | scrollX:{ enabled: true,gt:5 },//开启虚拟滚动 |
| | | showOverflow:true, |
| | | columnConfig: { |
| | | resizable: true, |
| | |
| | | let xGrid = ref() |
| | | let cellarea = ref(` |
| | | <div class="vxe-table--cell-area" style="font-size: 10px;text-align: left" > |
| | | <span class="vxe-table--cell-main-area" ><p style="margin-left: 0.5rem;color: blue"></p></span> |
| | | <span class="vxe-table--cell-main-area" > |
| | | <p style="bottom: 0;color: blue;background-color: #5cadfe"></p> |
| | | </span> |
| | | <span class="vxe-table--cell-active-area" ></span> |
| | | </div> |
| | | `) |
| | |
| | | if (event.button === 0) {//左键按下 |
| | | // 记录选择操作起始位置 |
| | | selectionStart = getCellPosition(event.target)//设置选择操作起始单元格位置 |
| | | selectionEnd = selectionStart |
| | | const activeElement = getTablexGrid().$el.querySelector(".vxe-table--main-wrapper .vxe-table--body-wrapper .vxe-table--cell-main-area p") |
| | | const element = xGrid.value.$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-left-wrapper .vxe-table--body-wrapper .vxe-table--cell-main-area p") |
| | | activeElement.innerHTML ='' |
| | | element.innerHTML ='' |
| | | |
| | | isSelecting.value = true//标记为正在选择操作 |
| | | } |
| | |
| | | if (event.button === 0) {//左键松开 |
| | | isSelecting.value = false//标记为停止选择操作 |
| | | } |
| | | /*const result = exportData() |
| | | const result = exportData() |
| | | const activeElement = getTablexGrid().$el.querySelector(".vxe-table--main-wrapper .vxe-table--body-wrapper .vxe-table--cell-main-area p") |
| | | const element = xGrid.value.$el.querySelector(".vxe-table--fixed-wrapper .vxe-table--fixed-left-wrapper .vxe-table--body-wrapper .vxe-table--cell-main-area p") |
| | | if(result.length===2 && result[0].length===1){ |
| | | |
| | | |
| | | if(result.length<=2 && result[0].length===1){ |
| | | activeElement.innerHTML ='' |
| | | element.innerHTML ='' |
| | | return |
| | |
| | | }) |
| | | |
| | | sum=isNaN(sum)?0:sum |
| | | activeElement.innerHTML ="SUM:"+parseFloat(sum.toFixed(2)) |
| | | element.innerHTML ="SUM:"+parseFloat(sum.toFixed(2))*/ |
| | | setTimeout(()=>{ |
| | | activeElement.innerHTML ="SUM:"+parseFloat(sum.toFixed(2)) |
| | | element.innerHTML ="SUM:"+parseFloat(sum.toFixed(2)) |
| | | },200) |
| | | |
| | | } |
| | | |
| | | let outevent = ref()//移动事件,不保存,循环定时器内无法监听到新的事件 |
| | |
| | | |
| | | } |
| | | const exportData = () => { |
| | | let data = [] |
| | | let title = [] |
| | | try{ |
| | | // //这里需要是visibleData |
| | | if(getTablexGrid().getTableData()?.visibleData===undefined){ |
| | | return null |
| | | } |
| | | let tableData = getTablexGrid().getTableData().visibleData//获取处理条件之后的全量表体数据 |
| | | let rowStart = selectionStart.rowIndex//获取选中起始行索引 |
| | | let rowEnd = selectionEnd.rowIndex//获取选中结束行索引 |
| | |
| | | return colStart >= index && colEnd <= index |
| | | } |
| | | }) |
| | | let data = [] |
| | | let title = [] |
| | | |
| | | selectCols.forEach((col, index) => { |
| | | title.push(col['title']) |
| | | }) |
| | |
| | | selectRows.forEach((row, index) => { |
| | | let rowData = [] |
| | | selectCols.forEach((col, index) => { |
| | | |
| | | const parts = col['property'].split('.') |
| | | let result = row |
| | | for (const part of parts) { |
| | |
| | | }) |
| | | data.push(rowData) |
| | | }) |
| | | }catch (e) { |
| | | // selectionStart = { rowIndex: -1, cellIndex: -1 } // 选择操作起始单元格位置 |
| | | // selectionEnd = { rowIndex: -1, cellIndex: -1 } |
| | | } |
| | | |
| | | return data |
| | | |
| | | } |
| | |
| | | height: 25px; |
| | | font-weight: bold; |
| | | font-size: 15pt; |
| | | margin-left: 40px; |
| | | } |
| | | .row1 span{ |
| | | font-size: 15pt; |
| | | } |
| | | |
| | | .row2 span{ |
| | | font-size: 15pt; |
| | | } |
| | | |
| | | .row5 span{ |
| | | font-size: 10pt; |
| | | font-size: 15pt; |
| | | } |
| | | |
| | | .row6 { |
| | |
| | | font-weight: bold; |
| | | font-size: 12pt; |
| | | } |
| | | .row1 span { |
| | | font-size: 10pt; |
| | | } |
| | | .row2 span { |
| | | font-size: 10pt; |
| | | } |
| | | .row5 span { |
| | | font-size: 10pt; |
| | | } |
| | |
| | | <span>{{item.project}}</span> |
| | | <span>{{ item.building_number }}</span> |
| | | </div> |
| | | <div class="row3" v-if="JSON.parse(item.other_columns).S02==null">{{item.width}}*{{item.height}}={{item.quantity}}</div> |
| | | <div class="row3" v-else>{{JSON.parse(item.other_columns).S02}}={{item.quantity}}</div> |
| | | <div class="row3" v-if="item.other_columns!=null&&(JSON.parse(item.other_columns).S02!=null)">{{JSON.parse(item.other_columns).S02}}={{item.quantity}}</div> |
| | | <div class="row3" v-else-if="item.bend_radius!=null">{{item.width}}*{{item.height}}=R/{{item.bend_radius}}</div> |
| | | <div class="row3" v-else>{{item.width}}*{{item.height}}={{item.quantity}}</div> |
| | | <div class="row5"> |
| | | <span>{{item.glass_child}}</span> |
| | | <span>{{item.processing_note}}</span> |
| | |
| | | font-size: 12pt; |
| | | } |
| | | .row5 span { |
| | | font-size: 10pt; |
| | | font-size: 12pt; |
| | | } |
| | | |
| | | .row6 { |
| | |
| | | <span v-else></span> |
| | | </div> |
| | | |
| | | <div class="row3" v-if="item.other_columns==null||(JSON.parse(item.other_columns).S02==null)">{{item.width}}*{{item.height}}={{item.quantity}}</div> |
| | | <div class="row3" v-else>{{JSON.parse(item.other_columns).S02}}={{item.quantity}}</div> |
| | | <div class="row3" v-if="item.other_columns!=null&&(JSON.parse(item.other_columns).S02!=null)">{{JSON.parse(item.other_columns).S02}}={{item.quantity}}</div> |
| | | <div class="row3" v-else-if="item.bend_radius!=null">{{item.width}}*{{item.height}}=R/{{item.bend_radius}}</div> |
| | | <div class="row3" v-else>{{item.width}}*{{item.height}}={{item.quantity}}</div> |
| | | <div class="row5"> |
| | | <span>{{item.project}}</span> |
| | | <span>{{ item.building_number }}</span> |
| | |
| | | .row3 { |
| | | margin-top: -5px; |
| | | height: 25px; |
| | | font-size: 12pt; |
| | | font-size: 15pt; |
| | | font-weight: bolder; |
| | | } |
| | | |
| | |
| | | |
| | | @page { |
| | | size: auto; /* auto is the initial value */ |
| | | margin: 13mm 4mm 0mm 6mm /* this affects the margin in the printer settings */ |
| | | margin: 13mm 4mm 0mm 4mm /* this affects the margin in the printer settings */ |
| | | |
| | | } |
| | | |
| | |
| | | |
| | | @page { |
| | | size: auto; /* auto is the initial value */ |
| | | margin: 13mm 4mm 0mm 6mm /* this affects the margin in the printer settings */ |
| | | margin: 13mm 4mm 0mm 4mm /* this affects the margin in the printer settings */ |
| | | |
| | | } |
| | | |
| | |
| | | </el-breadcrumb-item> |
| | | <el-breadcrumb-item @click="changeRouter(2)" :class="indexFlag===2?'indexTag':''" :to="{ path: '/main/processCard/SelectAddProcess' }">{{$t('processCard.splitFrame')}} |
| | | </el-breadcrumb-item > |
| | | <el-breadcrumb-item v-show="false" @click="changeRouter(3)" :class="indexFlag===3?'indexTag':''" :to="{ path: '/main/processCard/ProductionScheduling' }">{{$t('processCard.scheduling')}} |
| | | <el-breadcrumb-item @click="changeRouter(3)" :class="indexFlag===3?'indexTag':''" :to="{ path: '/main/processCard/ProductionScheduling' }">{{$t('processCard.scheduling')}} |
| | | </el-breadcrumb-item> |
| | | <el-breadcrumb-item @click="changeRouter(4)" :class="indexFlag===4?'indexTag':''" :to="{ path: '/main/processCard/SelectPrintFlowCard' }" >{{ $t('basicData.print') }}</el-breadcrumb-item> |
| | | <el-breadcrumb-item @click="changeRouter(5)" :class="indexFlag===5?'indexTag':''" :to="{ path: '/main/processCard/SelectPrintProject' }" >工程打印</el-breadcrumb-item> |
| | |
| | | item.grossArea = countArea(item) |
| | | item.computeArea = item.area |
| | | item.computeGrossArea = item.grossArea |
| | | item.grossAmount=parseFloat((item.price * item.computeGrossArea).toFixed(2)) |
| | | 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() |
| | | |
| | |
| | | row.grossArea = countArea(row) |
| | | row.computeArea = row.area |
| | | row.computeGrossArea = row.grossArea |
| | | row.grossAmount=parseFloat((row.price * row.computeGrossArea).toFixed(2)) |
| | | 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){ |
| | | 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() |
| | |
| | | <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> |
| | |
| | | importConfig: {}, |
| | | exportConfig: {}, |
| | | scrollY:{ enabled: true,gt:13 },//开启虚拟滚动 |
| | | scrollX:{ enabled: true,gt:7 },//开启虚拟滚动 |
| | | showOverflow:true, |
| | | columnConfig: { |
| | | resizable: true, |
| | |
| | | {field: 'orderNumber',fixed:"left",width:120, title: t('order.OrderNum'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, |
| | | {field: 'orderDetail.productId',fixed:"left",width:120, title: t('order.productId'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true}, |
| | | {field: 'orderDetail.productName',fixed:"left",width:120, title: t('order.product'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, |
| | | {field: 'technologyNumber',width:120, title: t('craft.glassAddress'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, |
| | | {field: 'technologyNumber',width:120, fixed:"left", title: t('craft.glassAddress'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, |
| | | {field: 'glassChild',width:120, title: t('craft.glassChild'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, |
| | | {field: 'orderDetail.width',width:120, title: t('craft.width'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, |
| | | {field: 'orderDetail.height',width:120, title: t('craft.height'),filters:[{ data: '' }],slots: { filter: 'num1_filter' }, sortable: true,filterMethod:filterChanged}, |
| | |
| | | .then(({ value }) => { |
| | | let text = value |
| | | text = text.split(' ') |
| | | console.log(text) |
| | | if(text===null){ |
| | | return |
| | | } |
| | |
| | | } |
| | | |
| | | @ApiOperation("根据id获取订单明细信息") |
| | | @SaCheckPermission("selectOrder.edit") |
| | | @SaCheckPermission("selectOrder.search") |
| | | @PostMapping("/getOrderDetailById/{id}") |
| | | public Result getOrderDetailById(@PathVariable String id) { |
| | | return Result.seccess(orderService.getOrderDetailById(id)); |
| | |
| | | try{ |
| | | LambdaUpdateWrapper<Order> updateWrapper = new LambdaUpdateWrapper<>(); |
| | | updateWrapper.eq(Order::getOrderId, order.getOrderId()); |
| | | order.setCreateTime(null); |
| | | orderMapper.update(order,updateWrapper); |
| | | //修改订单主表面积与周长以及重量 |
| | | orderMapper.updateOrderParameter(order.getOrderId()); |
| | |
| | | |
| | | //插入其他副表数据,被其他方法引用 |
| | | public void insertOtherDetail(String orderId,List<OrderDetail> OrderDetails,List<OrderOtherMoney> orderOtherMoneyList) { |
| | | |
| | | //先把其他金额副表的金额与数量置0 |
| | | orderOtherMoneyList.forEach(orderOtherMoney -> { |
| | | orderOtherMoney.setQuantity(0.0); |
| | |
| | | |
| | | }); |
| | | }else if(OrderDetails.get(i).getOtherColumns()==null){ |
| | | |
| | | OrderDetails.get(i).setOtherColumns("{}"); |
| | | } |
| | | } |
| | |
| | | |
| | | <select id="getPrintLabel"> |
| | | select o.order_id, |
| | | o.customer_name, |
| | | c.customer_abbreviation as customer_name, |
| | | o.project, |
| | | od.building_number, |
| | | od.processing_note, |
| | | od.width, |
| | | od.height, |
| | | ogd.child_width as width, |
| | | ogd.child_height as height, |
| | | ogd.glass_child, |
| | | ogd.process, |
| | | e.type_name, |
| | | opd.stock_id, |
| | | od.quantity, |
| | | od.other_columns |
| | | od.other_columns, |
| | | od.bend_radius |
| | | from pp.optimize_detail opd |
| | | left join sd.`order` o on SUBSTR(opd.process_id, 1, 10) = o.order_id |
| | | left join sd.order_detail od |
| | |
| | | on SUBSTR(opd.process_id, 1, 10) = ogd.order_id and opd.order_sort = ogd.order_number and opd.layer=ogd.technology_number |
| | | left join sd.product p on od.product_id = p.id |
| | | left join sd.basic_glass_type e on e.type_id = p.type_id |
| | | left join sd.customer c on c.id=o.customer_id |
| | | where opd.project_no = #{projectNo} |
| | | order by opd.stock_id |
| | | </select> |
| | |
| | | select o.order_id , |
| | | o.project, |
| | | o.customer_id , |
| | | od.width, |
| | | od.height, |
| | | ogd.child_width as width, |
| | | ogd.child_height as height, |
| | | od.quantity, |
| | | od.order_number as orderNumber, |
| | | fc.technology_number as technologyNumber, |
| | |
| | | ifnull(od.processing_note,'') as processing_note, |
| | | bgt.type_name, |
| | | od.other_columns, |
| | | od.building_number |
| | | od.building_number, |
| | | od.bend_radius |
| | | from sd.order as o |
| | | left join sd.order_detail as od on o.order_id = od.order_id |
| | | left join sd.order_glass_detail as ogd on ogd.order_id=od.order_id and ogd.order_number=od.order_number |
| | |
| | | </update> |
| | | |
| | | <update id="updateMoney"> |
| | | update `order` set money = #{order.money} where order_id = #{order.orderId} |
| | | update `order` set money = #{order.money},calculate_type = #{order.calculateType} where order_id = #{order.orderId} |
| | | </update> |
| | | |
| | | <update id="cancelOrder"> |