Merge branch 'master' of http://bore.pub:10439/r/ERP_override
| | |
| | | <tr> |
| | | <th style="width: 6%;">序号</th> |
| | | <th style="width: 20%;">楼层编号</th> |
| | | <th style="width: 20%;" colspan="2">宽(弧度)*高</th> |
| | | <th style="width: 20%;" colspan="2">宽X高</th> |
| | | <th style="width: 10%;">数量</th> |
| | | <th style="width: 10%;">面积</th> |
| | | <th style="width: 10%;">单价</th> |
| | |
| | | <tr> |
| | | <th style="width: 6%;font-weight: bold;">序号</th> |
| | | <th style="width: 20%;font-weight: bold;">楼层编号</th> |
| | | <th style="width: 20%;font-weight: bold;" colspan="2">宽(弧度)*高</th> |
| | | <th style="width: 20%;font-weight: bold;" colspan="2">宽X高</th> |
| | | <th style="width: 10%;font-weight: bold;">数量</th> |
| | | <th style="width: 10%;font-weight: bold;">面积</th> |
| | | <th style="width: 10%;font-weight: bold;">单价</th> |
| | |
| | | <th style="text-align: left;border:none;font-weight: bold;" colspan="2">发货日期:<span>{{data.order.deliveryDate}}</span></th> |
| | | </tr> |
| | | <tr> |
| | | <th style="text-align: left;border:none;font-weight: bold;" colspan="7">送货地址:<span>{{data.order.project}}</span></th> |
| | | <th style="text-align: left;border:none;font-weight: bold;" colspan="2">联系电话:<span>{{data.order.project}}</span></th> |
| | | <th style="text-align: left;border:none;font-weight: bold;" colspan="7">送货地址:<span>{{data.order.deliveryAddress}}</span></th> |
| | | <th style="text-align: left;border:none;font-weight: bold;" colspan="2">联系电话:<span>{{data.order.contactNumber}}</span></th> |
| | | </tr> |
| | | <tr> |
| | | <th style="width: 6%;font-weight: bold;">序</th> |
| | | <th style="width: 20%;font-weight: bold;">楼层编号</th> |
| | | <th style="width: 20%;font-weight: bold;" colspan="2">宽(弧度)*高</th> |
| | | <th style="width: 20%;font-weight: bold;" colspan="2">宽X高</th> |
| | | <th style="width: 10%;font-weight: bold;">数量</th> |
| | | <th style="width: 10%;font-weight: bold;">面积</th> |
| | | <th style="width: 12%;font-weight: bold;" colspan="2">加工要求</th> |
| | |
| | | <tr class="day-in" v-for="(items, index1) in item.productDetail" :key="index1"> |
| | | <td>{{items.orderNumber}}</td> |
| | | <td>{{items.buildingNumber}}</td> |
| | | <td colspan="2" style="font-size: 15px;font-weight: bold;">{{items.width}}x{{items.height}}</td> |
| | | <td colspan="2" style="font-size: 15px;font-weight: bold;" v-if="items.otherColumns?.S02">{{items.otherColumns?.S02}}</td> |
| | | <td colspan="2" style="font-size: 15px;font-weight: bold;" v-else>{{items.width}}x{{items.height}}</td> |
| | | <td>{{items.quantity}}</td> |
| | | <td>{{items.grossArea}}</td> |
| | | <td colspan="2">{{items.processingNote}}</td> |
| | | </tr> |
| | | <tr class="day-in" > |
| | | <td style="font-size: 15px;font-weight: bold;" colspan="3">小计:</td> |
| | | <td style="font-size: 15px;font-weight: bold;" colspan="4">小计:</td> |
| | | <td>{{getQuantity(item.productDetail)}}</td> |
| | | <td>{{getArea(item.productDetail)}}</td> |
| | | <td></td> |
| | | <td colspan="2"></td> |
| | | </tr> |
| | | |
| | | </template> |
| | | <tr class="day-in"> |
| | | <td style="font-size: 15px;font-weight: bold;" colspan="3">合计:</td> |
| | | <td style="font-size: 15px;font-weight: bold;" colspan="4">合计:</td> |
| | | <td>{{grossNum.quantity}}</td> |
| | | <td>{{grossNum.grossArea}}</td> |
| | | <td></td> |
| | | <td colspan="2"></td> |
| | | </tr> |
| | | <tr class="day-in"> |
| | | <td style="text-align: left;border-width: 0 1px 0 0; border-style: solid; border-color: #d3dce6" colspan="6"> |
| | |
| | | |
| | | |
| | | </table> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="4"><div class="bottom">制单员:{{data.order.creator}}<span style="font-size: 10px"></span></div></el-col> |
| | | <el-col :span="4"><div class="bottom">制单日期:{{data.order.createTime}}<span style="font-size: 10px"></span></div></el-col> |
| | | <el-col :span="4"><div class="bottom">审核员:{{data.order.verifier}}</div></el-col> |
| | | <el-col :span="3"><div class="bottom">审核日期:{{data.order.updateTime}}</div></el-col> |
| | | <el-col :span="4"><div class="bottom">打印人:{{username}}</div></el-col> |
| | | <el-row :gutter="24"> |
| | | <el-col :span="4"><div style="font-size: 12px" class="bottom">制单员:{{data.order.creator}}<span style="font-size: 10px"></span></div></el-col> |
| | | <el-col :span="6"><div style="font-size: 12px" class="bottom">制单日期:{{data.order.createTime}}<span style="font-size: 10px"></span></div></el-col> |
| | | <el-col :span="4"><div style="font-size: 12px" class="bottom">审核员:{{data.order.verifier}}</div></el-col> |
| | | <el-col :span="6"><div style="font-size: 12px" class="bottom">审核日期:{{data.order.updateTime}}</div></el-col> |
| | | <el-col :span="4"><div style="font-size: 12px" class="bottom">打印人:{{username}}</div></el-col> |
| | | |
| | | </el-row> |
| | | |
| | |
| | | if (res.code == 200) { |
| | | |
| | | produceList.value = deepClone(res.data.data) |
| | | if (printMerge!==null && printMerge!==undefined && printMerge!==""){ |
| | | if (printMerge !== null && printMerge !== undefined && printMerge !== "") { |
| | | |
| | | produceList.value.forEach(item => { |
| | | item.detail[0].technologyNumber = printMerge; |
| | | }); |
| | | } |
| | | let technologyNumberMerge = printMerge.split('').join(','); |
| | | console.log(technologyNumberMerge) |
| | | produceList.value[0].detail[0].technologyNumberMerge = technologyNumberMerge |
| | | console.log(produceList.value[0].detail[0]) |
| | | const s01Values = []; |
| | | // 遍历 res.data.numberList 数组,获取每个元素的 S01 值并存储到 s01Values 数组中 |
| | | produceList.value[0].detailList.forEach(element => { |
| | | try { |
| | | const otherColumnsObject = JSON.parse(element.other_columns); |
| | | const s01Value = otherColumnsObject.S01; |
| | | if (s01Value) { |
| | | s01Values.push(s01Value); |
| | | } else { |
| | | // 如果 S01 值为空,可以选择添加默认值或者忽略这个元素 |
| | | s01Values.push(''); // 例如添加空字符串 |
| | | } |
| | | } catch (error) { |
| | | // console.error('Error parsing JSON or accessing S01 value:', error); |
| | | // 处理 JSON 解析错误或其他异常情况 |
| | | } |
| | | }); |
| | | // 遍历 res.data.Detail 数组,将 s01Values 中的值赋给每个订单详情对象的 s01Value 属性 |
| | | produceList.value[0].detailList.forEach((detail, index) => { |
| | | if (index < s01Values.length) { |
| | | detail.s01Value = s01Values[index]; // 添加一个名为 s01Value 的新属性,存储对应的 S01 值 |
| | | } else { |
| | | detail.s01Value = ''; // 如果 s01Values 中的值不足,可以添加默认值或者不进行赋值处理 |
| | | } |
| | | }); |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | handleGetQRCode() |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | |
| | | }) |
| | | |
| | | } |
| | | |
| | | ) |
| | | |
| | | |
| | |
| | | } |
| | | } |
| | | }; |
| | | |
| | | |
| | | |
| | | |
| | | // 打印方法 |
| | |
| | | <thead> |
| | | <tr v-for="(itemFlow,index) in item.detail" :key="index"> |
| | | <td colspan="24"> |
| | | <div id="bj" style="float: right;font-size: 28px">补 {{ id + 1 }}</div> |
| | | <div id="bj" style="float: right;font-size: 28px">补 {{ id + 1 }}</div> |
| | | <div>天津北方玻璃技术股份有限公司</div> |
| | | <div>生产流程卡</div> |
| | | <div style="text-align: right;font-weight: bolder">流程卡号: {{ |
| | | <div v-if="itemFlow.technologyNumberMerge!=''" style="text-align: right;font-weight: bolder">流程卡号: {{ |
| | | itemFlow.process_id |
| | | }}/{{ itemFlow.technologyNumberMerge }} 共 {{ flowCardCount }} 架 |
| | | </div> |
| | | <div v-else style="text-align: right;font-weight: bolder">流程卡号: {{ |
| | | itemFlow.process_id |
| | | }}/{{ itemFlow.technologyNumber }} 共 {{ flowCardCount }} 架 |
| | | </div> |
| | |
| | | <td class="tdNowrap">项目名称:</td> |
| | | <td colspan="2">{{ items.project }}</td> |
| | | <td class="tdNowrap">工艺流程:</td> |
| | | <td colspan="16">{{ items.process }}</td> |
| | | <td colspan="17">{{ items.process }}</td> |
| | | </tr> |
| | | <tr v-for="(itemTr,index) in item.detail" :key="index"> |
| | | <td class="tdNowrap">磨边类型:</td> |
| | |
| | | <td class="tdNowrap">单片名称:</td> |
| | | <td colspan="2">{{ itemTr.glass_child }}</td> |
| | | <td class="tdNowrap">产品名称:</td> |
| | | <td colspan="16">{{ itemTr.product_name }}</td> |
| | | <td colspan="17">{{ itemTr.product_name }}</td> |
| | | </tr> |
| | | <tr> |
| | | <td rowspan='2'>序号</td> |
| | | <td rowspan='2'>编号</td> |
| | | <td rowspan='2'>宽*高</td> |
| | | <td rowspan='2'>数量</td> |
| | | <td rowspan='2'>面积</td> |
| | |
| | | |
| | | <tr v-for="(itemDatile,index) in item.detailList" :key="index"> |
| | | <td>{{ itemDatile.order_number }}</td> |
| | | <td>{{itemDatile.s01Value}}</td> |
| | | <td>{{ itemDatile.child_width }}</td> |
| | | <td class="item">{{ itemDatile.quantity }}</td> |
| | | <td>{{ itemDatile.total_area }}</td> |
| | |
| | | 数量: |
| | | <label>{{ itemsum.quantity }}</label> |
| | | 面积: |
| | | <label>{{ parseFloat(itemsum.gross_area,2) }}</label> |
| | | <label>{{ parseFloat(itemsum.gross_area.toFixed(2)) }}</label> |
| | | 重量: |
| | | <label>{{ itemsum.weight }}</label> |
| | | <label>{{ parseFloat(itemsum.weight.toFixed(2)) }}</label> |
| | | </td> |
| | | </tr> |
| | | <tr v-for="(itemtextarea,index) in item.detail" :key="index"> |
| | |
| | | <td></td> |
| | | <td></td> |
| | | <td></td> |
| | | <td></td> |
| | | <td></td> |
| | | </tr> |
| | | <tr> |
| | | <td>生产日期</td> |
| | | <td></td> |
| | | <td></td> |
| | | <td></td> |
| | | <td></td> |
| | |
| | | <td></td> |
| | | <td></td> |
| | | <td></td> |
| | | <td></td> |
| | | </tr> |
| | | <tr v-for="(qrCodeItem,index) in item.detail" :key="index"> |
| | | <td colspan="19" > |
| | | <td colspan="19"> |
| | | <span style="display: flex;"> |
| | | <span style="display: flex;width: 25%" v-for="(qrCodeItems,index) in qrCodeItem.qrcodeList" :key="index"> |
| | | <span v-for="(qrCodeItems,index) in qrCodeItem.qrcodeList" :key="index" style="display: flex;width: 35%"> |
| | | <div class='qrCode' style="width: 80px;height: 80px;"> |
| | | <img :src= qrCodeItems.qrcode> |
| | | <img :src=qrCodeItems.qrcode> |
| | | </div> |
| | | <span style="float: left;font-weight: bolder">{{ qrCodeItem.process_id+"/"+qrCodeItems.technologyNumber }}</span> |
| | | <span style="float: left;font-weight: bolder">{{ |
| | | qrCodeItem.process_id + "/" + qrCodeItems.technologyNumber |
| | | }}</span> |
| | | </span> |
| | | </span> |
| | | </td> |
| | |
| | | showStatus: true |
| | | },//表头参数 |
| | | columns: [ |
| | | {type: 'seq', fixed: "left", title: '自序', width: 50}, |
| | | {type: 'seq', fixed: "left", title: t('basicData.Number'), width: 50}, |
| | | { |
| | | field: 'basicName', |
| | | title: t('machine.basicName'), |
| | |
| | | showStatus: true |
| | | },//表头参数 |
| | | columns: [ |
| | | {type: 'seq', fixed: "left", title: '自序', width: 50}, |
| | | {type: 'seq', fixed: "left", title: t('basicData.Number'), width: 50}, |
| | | { |
| | | field: 'deviceName', |
| | | title: t('machine.basicName'), |
| | |
| | | keepSource: true,//保持源数据 |
| | | align: 'center',//文字居中 |
| | | stripe:true,//斑马纹 |
| | | rowConfig: {isCurrent: true, isHover: true,height: 50},//鼠标移动或选择高亮 |
| | | rowConfig: {isCurrent: true, isHover: true,height: 30},//鼠标移动或选择高亮 |
| | | id: 'CustomerList', |
| | | showFooter: true,//显示脚 |
| | | printConfig: {}, |
| | |
| | | align: 'center',//文字居中 |
| | | stripe: true,//斑马纹 |
| | | rowConfig: {isCurrent: true, isHover: true, height: 30, useKey: false},//鼠标移动或选择高亮 |
| | | id: 'CustomerList', |
| | | id: 'CustomerListRight', |
| | | showFooter: true,//显示脚 |
| | | printConfig: {}, |
| | | importConfig: {}, |
| | |
| | | height: 25px; |
| | | } |
| | | span { |
| | | font-size: 12pt; |
| | | font-size: 15pt; |
| | | font-weight: bold; |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | .row5 { |
| | | text-align: left; |
| | | height: 25px; |
| | | font-weight: bold; |
| | | font-size: 12pt; |
| | | font-size: 15pt; |
| | | } |
| | | |
| | | .row5 span{ |
| | | font-size: 10pt; |
| | | } |
| | | |
| | | .row6 { |
| | |
| | | value: '1', |
| | | label: t('processCard.finishedProductLabel'), |
| | | }, |
| | | // { |
| | | // value: '2', |
| | | // label: t('processCard.halfProductLabel'), |
| | | // }, |
| | | /* { |
| | | value: '2', |
| | | label: t('processCard.halfProductLabel'), |
| | | },*/ |
| | | { |
| | | value: `${company.printLabel.labelValue}`, |
| | | label: `${company.printLabel.labelType}`, |
| | |
| | | } |
| | | } |
| | | |
| | | let printMergeVal=printMerge.value.split('').join(',') |
| | | console.log(printMergeVal) |
| | | let printMergeVal=printMerge.value |
| | | router.push({path: '/main/processCard/printProcess', query: {printList: JSON.stringify(selectRecords),printMerge:printMergeVal}}) |
| | | |
| | | break |
| | |
| | | align: 'center',//文字居中 |
| | | stripe: true,//斑马纹 |
| | | rowConfig: {isCurrent: true, isHover: true, height: 30},//鼠标移动或选择高亮 |
| | | id: 'demo_1', |
| | | id: 'demo_2', |
| | | showFooter: true,//显示脚 |
| | | printConfig: {}, |
| | | importConfig: {}, |
| | |
| | | const route = currentRoute.value |
| | | const printMerge = route.query.printMerge |
| | | data.value.printList = JSON.parse(route.query.printList) |
| | | console.log(route.query.printList) |
| | | let flowCardCount = data.value.printList.length |
| | | onMounted(() => { |
| | | // if (id === null || id === undefined || id === '') { |
| | |
| | | if (printMerge !== null && printMerge !== undefined && printMerge !== "") { |
| | | |
| | | produceList.value.forEach(item => { |
| | | item.detail[0].technologyNumber = printMerge.split(',').join(''); |
| | | item.detail[0].technologyNumber = printMerge; |
| | | }); |
| | | } |
| | | let technologyNumberMerge = printMerge.split('').join(','); |
| | | console.log(technologyNumberMerge) |
| | | produceList.value[0].detail[0].technologyNumberMerge = technologyNumberMerge |
| | | console.log(produceList.value[0].detail[0]) |
| | | const s01Values = []; |
| | | // |
| | | // // 获取每个元素的 S01 值并存储到 s01Values 数组中 |
| | | // produceList.value[0].numberList.forEach(element => { |
| | | // const otherColumnsObject = JSON.parse(element.other_columns); |
| | | // const s01Value = otherColumnsObject.S01; |
| | | // s01Values.push(s01Value); |
| | | // }); |
| | | // produceList.value[0].detailList.forEach((detail, index) => { |
| | | // detail.s01Value = s01Values[index]; // 添加一个名为 s01Value 的新属性,存储对应的 S01 值 |
| | | // }); |
| | | // 遍历 res.data.numberList 数组,获取每个元素的 S01 值并存储到 s01Values 数组中 |
| | | produceList.value[0].detailList.forEach(element => { |
| | | try { |
| | |
| | | <div id="bj" style="float: right;font-size: 28px">{{ id + 1 }}</div> |
| | | <div>天津北方玻璃技术股份有限公司</div> |
| | | <div>生产流程卡</div> |
| | | <div style="text-align: right;font-weight: bolder">流程卡号: {{ |
| | | <div v-if="itemFlow.technologyNumberMerge!=''" style="text-align: right;font-weight: bolder">流程卡号: {{ |
| | | itemFlow.process_id |
| | | }}/{{ itemFlow.technologyNumberMerge }} 共 {{ flowCardCount }} 架 |
| | | </div> |
| | | <div v-else style="text-align: right;font-weight: bolder">流程卡号: {{ |
| | | itemFlow.process_id |
| | | }}/{{ itemFlow.technologyNumber }} 共 {{ flowCardCount }} 架 |
| | | </div> |
| | |
| | | 面积: |
| | | <label>{{ parseFloat(itemsum.gross_area.toFixed(2)) }}</label> |
| | | 重量: |
| | | <label>{{ itemsum.weight }}</label> |
| | | <label>{{ parseFloat(itemsum.weight.toFixed(2)) }}</label> |
| | | </td> |
| | | </tr> |
| | | <tr v-for="(itemtextarea,index) in item.detail" :key="index"> |
| | |
| | | align: 'center',//文字居中 |
| | | stripe: true,//斑马纹 |
| | | rowConfig: {isCurrent: true, isHover: true, height: 30},//鼠标移动或选择高亮 |
| | | id: 'CustomerList', |
| | | id: 'CustomerListDetail', |
| | | //showFooter: true,//显示脚 |
| | | printConfig: {}, |
| | | importConfig: {}, |
| | |
| | | addListener(brokenGrid.value,brokenGridOptions) |
| | | let damage =ref(brokenRow.value.damageDetails) |
| | | brokenGrid.value.reloadData(damage.value) |
| | | //addListener(xGrid.value, gridOptions) |
| | | } |
| | | |
| | | |
| | |
| | | } |
| | | onMounted(() => { |
| | | window.addEventListener('keypress', qrcodeScanner); |
| | | // addListener(xGrid.value, gridOptions) |
| | | //addListener(xGrid.value, gridOptions) |
| | | }) |
| | | |
| | | // 在组件卸载时移除键盘事件监听 |
| | |
| | | fc.process_id, |
| | | SUM(od.quantity) as quantity, |
| | | round(SUM(ogd.total_area), 2) as gross_area, |
| | | round(SUM(ogd.child_width*ogd.child_height*od.quantity*p.thickness/1000000*2.5),2) as weight, |
| | | sum(od.weight) as weight, |
| | | #{technologyNumber} as technologyNumber, |
| | | concat(fc.process_id, '/', #{technologyNumber}) as processIdNumber |
| | | from flow_card as fc |
| | |
| | | <update id="reviewOrderById"> |
| | | update `order` set order_review = #{status}, |
| | | verifier_id = #{userId}, |
| | | verifier = #{userName} |
| | | verifier = #{userName}, |
| | | update_time=now() |
| | | where order_id = #{id} |
| | | </update> |
| | | <update id="reviewOrderByIds"> |