From f7a2fcdda7f1120498c5c5f75c5a99955fc54b43 Mon Sep 17 00:00:00 2001
From: 廖井涛 <2265517004@qq.com>
Date: 星期二, 16 十二月 2025 16:54:09 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10105/r/ERP_override
---
north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet3.vue | 162 ++++++++++++++++++++++++++++++++++++++++++-----------
1 files changed, 127 insertions(+), 35 deletions(-)
diff --git a/north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet3.vue b/north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet3.vue
index 3a711c9..2ea2710 100644
--- a/north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet3.vue
+++ b/north-glass-erp/northglass-erp/src/components/sd/order/PrintSheet3.vue
@@ -5,12 +5,14 @@
import companyInfo from "@/stores/sd/companyInfo"
import deepClone from "@/utils/deepClone";
import {ElMessage} from "element-plus";
+import {add,multiply,multiplyAuto,divideAuto} from '@/utils/decimal';
const company = companyInfo()
let produceList = ref([])
let delivery = ref([])
let otherMoney = []
let otherMoney1 = []
let money = ref("")
+let dialogVisible = ref(false)
let otherMoneys = 0
let sumMoney = 0
let takeCare = "娉ㄦ剰:璇峰Ε鍠勪繚绠″ソ鎴戝徃鐨勭幓鐠冩灦锛屽鏈変涪澶辨垨鎹熷潖锛屾寜1500鍏冨彧璧斿伩銆傝阿璋㈤厤鍚�!"
@@ -23,16 +25,20 @@
})
const form = ref({
})
+const selectedValues = ref([])
+let productIdData = ref({
+})
const getData = () => {
if(props.orderId===null || props.orderId===undefined || props.orderId===''){
return
}
form.value.orderId=props.orderId
-
- request.post(`/Delivery/getSelectOrderPrinting`,form.value).then((res) => {
+ request.post(`/delivery/getSelectOrderPrinting/null`,form.value).then((res) => {
if(res.code==200){
+ productIdData.value=deepClone(res.data.data)
produceList.value = deepClone(res.data.data)
+
delivery.value=deepClone(res.data.delivery)
money.value=deepClone(res.data.money)
produceList.value.forEach(item => {
@@ -49,8 +55,8 @@
else{
for(let s=0;s<otherMoney1.length;s++){
if(otherMoney[i].DeliveryDetailOtherMoney.alias===otherMoney1[s].DeliveryDetailOtherMoney.alias){
- otherMoney1[s].DeliveryDetailOtherMoney.count=otherMoney[i].DeliveryDetailOtherMoney.count+otherMoney1[s].DeliveryDetailOtherMoney.count
- otherMoney1[s].DeliveryDetailOtherMoney.monery =otherMoney[i].DeliveryDetailOtherMoney.monery+otherMoney1[s].DeliveryDetailOtherMoney.monery
+ otherMoney1[s].DeliveryDetailOtherMoney.count=add(otherMoney[i].DeliveryDetailOtherMoney.count,otherMoney1[s].DeliveryDetailOtherMoney.count)
+ otherMoney1[s].DeliveryDetailOtherMoney.monery =add(otherMoney[i].DeliveryDetailOtherMoney.monery,otherMoney1[s].DeliveryDetailOtherMoney.monery)
break
}
if(s+1===otherMoney1.length){
@@ -96,7 +102,6 @@
}
})*/
- console.log(otherMoney1)
}else{
ElMessage.warning(res.msg)
router.push("/login")
@@ -104,9 +109,60 @@
})
}
+const handleChange = () => {
+ if(selectedValues.value.length===0){
+ selectedValues.value=null;
+ }
+
+ request.post(`/delivery/getSelectOrderPrinting/${selectedValues.value}`,form.value).then((res) => {
+ if(res.code==200){
+ sumMoney=0
+ produceList.value = deepClone(res.data.data)
+ delivery.value=deepClone(res.data.delivery)
+ money.value=deepClone(res.data.money)
+ produceList.value.forEach(item => {
+ sumMoney+=item.DeliveryDetail.grossAmount
+ })
+ otherMoney1=[]
+ otherMoney=deepClone(res.data.otherMoney)
+ for(let i=0;i<otherMoney.length;i++){
+ if(otherMoney[i].DeliveryDetailOtherMoney.monery!=null){
+ otherMoneys+=otherMoney[i].DeliveryDetailOtherMoney.monery
+ if(otherMoney1.length===0){
+ otherMoney1.push(otherMoney[i])
+ }
+ else{
+ for(let s=0;s<otherMoney1.length;s++){
+ if(otherMoney[i].DeliveryDetailOtherMoney.alias===otherMoney1[s].DeliveryDetailOtherMoney.alias){
+ otherMoney1[s].DeliveryDetailOtherMoney.count=add(otherMoney[i].DeliveryDetailOtherMoney.count,otherMoney1[s].DeliveryDetailOtherMoney.count)
+ otherMoney1[s].DeliveryDetailOtherMoney.monery =add(otherMoney[i].DeliveryDetailOtherMoney.monery,otherMoney1[s].DeliveryDetailOtherMoney.monery)
+ break
+ }
+ if(s+1===otherMoney1.length){
+ otherMoney1.push(otherMoney[i])
+ break
+ }
+ }
+
+ }
+ }
+
+ }
+ }else{
+ ElMessage.warning(res.msg)
+ router.push("/login")
+ }
+ })
+
+}
+
onMounted(() => {
getData()
})
+
+const handleDoubleClick = () => {
+ dialogVisible.value=true
+}
@@ -119,10 +175,11 @@
<template>
- <div id="sheet">
+ <div id="sheet" @dblclick="handleDoubleClick">
<table border="1" >
+ <thead>
<tr class="title-s">
- <th colspan="13">
+ <th colspan="9">
<h1>
{{company.companyName}}
</h1>
@@ -132,9 +189,12 @@
<tr class="title-s">
<th colspan="2"></th>
<th colspan="5">
- <h3>閿�鍞彂璐у崟</h3>
+ <h4 v-if="!company.showDeliveryCreator" >閲戝崕甯備箰鍔ㄦ櫤鑳界鎶�鏈夐檺鍏徃</h4>
+ <h3 >閿�鍞‘璁ゅ崟</h3>
+
</th>
- <th colspan="2" style="text-align: left;font-weight: bold;">鍙戣揣鍗曞彿锛�<span>{{delivery.deliveryId}}</span></th>
+ <th colspan="2" style="text-align: left;font-weight: bold;" v-if="company.showDeliveryCreator">鍙戣揣鍗曞彿锛�<span>{{delivery.deliveryId}}</span></th>
+ <th colspan="2" style="text-align: left;font-weight: bold;" v-else></th>
</tr>
<tr>
<th style="text-align: left;border:none;font-weight: bold;" colspan="4">瀹㈡埛鍚嶇О锛�<span>{{delivery.customerName}}</span></th>
@@ -142,7 +202,8 @@
<th style="text-align: left;border:none;font-weight: bold;" colspan="2">鑱旂郴浜猴細<span>{{delivery.contacts}}</span></th>
</tr>
<tr>
- <th style="text-align: left;border:none;font-weight: bold;" colspan="7">閫佽揣鍦板潃锛�<span>{{delivery.deliveryAddress}}</span></th>
+ <th style="text-align: left;border:none;font-weight: bold;" colspan="4">閫佽揣鍦板潃锛�<span>{{delivery.deliveryAddress}}</span></th>
+ <th style="text-align: left;border:none;font-weight: bold;" colspan="3">閫佽揣鏃堕棿锛�<span>{{delivery.deliveryDate}}</span></th>
<th style="text-align: left;border:none;font-weight: bold;" colspan="2">鑱旂郴鐢佃瘽锛�<span>{{delivery.contactNumber}}</span></th>
</tr>
<tr>
@@ -150,28 +211,37 @@
<th style="width: 15%;">妤煎眰缂栧彿</th>
<th style="width: 17%;" colspan="1">瀹絏楂�</th>
<th style="width: 10%;">鏁伴噺</th>
- <th style="width: 10%;">闈㈢Н</th>
+ <th style="width: 10%;">鎬婚潰绉�</th>
<th style="width: 10%;">鍗曚环</th>
<th style="width: 12%;">閲戦</th>
- <th style="width: 20%;" colspan="2">鍔犲伐瑕佹眰</th>
+ <th v-if="company.showDeliveryCreator" style="width: 20%;" colspan="2">鍔犲伐瑕佹眰</th>
+ <th v-if="!company.showDeliveryCreator" style="width: 10%;" colspan="1">鍔犲伐瑕佹眰</th>
+ <th v-if="!company.showDeliveryCreator" style="width: 10%;" colspan="1">澶囨敞</th>
</tr>
+ </thead>
<template v-for="(item, index) in produceList" :key="index" >
<tr>
- <td style="font-size: 15px;font-weight: bold;text-align: left" colspan="4">浜у搧鍚嶇О:<span>{{item.DeliveryDetail.productName}}</span></td>
- <td style="font-size: 15px;font-weight: bold;text-align: left" colspan="2">瀵规柟鍗曞彿:</td>
+ <td style="font-size: 15px;font-weight: bold;text-align: left" colspan="4">浜у搧鍚嶇О:
+ <span v-if="company.productName!=='product_abbreviation'">{{item.productName}}</span>
+ <span v-else >{{item.remarks}}</span>
+ </td>
+ <td v-if="company.showDeliveryCreator" style="font-size: 15px;font-weight: bold;text-align: left" colspan="2">璁㈣揣鏃ユ湡:<span>{{delivery.contractId}}</span></td>
+ <td v-else style="font-size: 15px;font-weight: bold;text-align: left" colspan="2"></td>
<td style="font-size: 15px;font-weight: bold;text-align: left" colspan="3">璁㈠崟缂栧彿:<span>{{item.DeliveryDetail.orderId}}</span></td>
</tr>
<tr class="day-in" v-for="(items, index1) in item.DeliveryDetailList" :key="index1">
<td>{{items.order_number}}</td>
<td>{{items.buildingNumber}}</td>
- <td colspan="1" style="font-size: 15px;font-weight: bold;" v-if="items.other_columns!=null&&(JSON.parse(items.other_columns).S02!=null)">{{JSON.parse(items.other_columns).S02}}</td>
+ <td colspan="1" style="font-size: 15px;font-weight: bold;" v-if="company.showDeliveryCreator&&items.other_columns!=null&&(JSON.parse(items.other_columns).S02!=null)">{{JSON.parse(items.other_columns).S02}}</td>
<td colspan="1" style="font-size: 15px;font-weight: bold;" v-else>{{items.width}}x{{items.height}}</td>
<td>{{items.quantity}}</td>
<td>{{items.compute_gross_area}}</td>
<td>{{items.price}}</td>
<td>{{items.gross_amount}}</td>
- <td colspan="2">{{items.processingNote}}</td>
+ <td v-if="company.showDeliveryCreator" colspan="2">{{items.processingNote}}</td>
+ <td v-if="!company.showDeliveryCreator" >{{items.processingNote}}</td>
+ <td v-if="!company.showDeliveryCreator" >{{items.remarks}}</td>
</tr>
<tr class="day-in" >
<td style="font-size: 15px;font-weight: bold;" colspan="3">灏忚:</td>
@@ -179,7 +249,7 @@
<td>{{item.DeliveryDetail.area}}</td>
<td></td>
<td>{{item.DeliveryDetail.grossAmount}}</td>
- <td></td>
+ <td colspan="2"></td>
</tr>
</template>
@@ -188,16 +258,16 @@
<td>{{delivery.quantity}}</td>
<td>{{delivery.area}}</td>
<td></td>
- <td>{{sumMoney}}</td>
- <td></td>
+ <td>{{parseFloat(sumMoney.toFixed(2))}}</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="4">
<div style="display: flex;font-size: 10px;text-align: center;">
- <div style="width: 25%">鍔犲伐璐圭敤</div>
- <div style="width: 25%">鍗曚环</div>
- <div style="width: 25%">鏁伴噺</div>
- <div style="width: 25%">閲戦</div>
+ <span style="width: 25%">鍔犲伐璐圭敤</span>
+ <span style="width: 25%">鍗曚环</span>
+ <span style="width: 25%">鏁伴噺</span>
+ <span style="width: 25%">閲戦</span>
</div>
</td>
<td style="text-align: left;border:none;font-size: 15px;font-weight: bold;" colspan="5">鎬婚噾棰�: {{delivery.money}}</td>
@@ -205,10 +275,10 @@
<tr class="day-in">
<td style="text-align: left;border-width: 0 1px 0 0; border-style: solid; border-color: #d3dce6;" colspan="4" >
<div style="display: flex;font-size: 10px;text-align: center" v-for="(item, index2) in otherMoney1" :key="index2">
- <div style="width: 25%">{{item.DeliveryDetailOtherMoney.alias}}</div>
- <div style="width: 25%">{{item.DeliveryDetailOtherMoney.price}}</div>
- <div style="width: 25%">{{item.DeliveryDetailOtherMoney.count}}</div>
- <div style="width: 25%">{{parseFloat(item.DeliveryDetailOtherMoney.monery.toFixed(2))}}</div>
+ <span style="width: 25%">{{item.DeliveryDetailOtherMoney.alias}}</span>
+ <span style="width: 25%">{{item.DeliveryDetailOtherMoney.price}}</span>
+ <span style="width: 25%">{{item.DeliveryDetailOtherMoney.count}}</span>
+ <span style="width: 25%">{{parseFloat(item.DeliveryDetailOtherMoney.monery).toFixed(2)}}</span>
</div>
</td>
<td style="text-align: left;border:none;font-size: 15px;font-weight: bold;" colspan="5">澶у啓閲戦: {{money}}</td>
@@ -216,27 +286,49 @@
</table>
<el-row :gutter="20">
- <el-col :span="4"><div class="bottom">鍒跺崟鍛橈細<span style="font-size: 10px">{{delivery.creator}}</span></div></el-col>
- <el-col :span="4"><div class="bottom">鍒跺崟鏃ユ湡锛�<span style="font-size: 10px">{{delivery.createTime}}</span></div></el-col>
- <el-col :span="4"><div class="bottom">鍙戣揣鍛橈細</div></el-col>
- <el-col :span="3"><div class="bottom">鍙告満锛�</div></el-col>
- <el-col :span="4"><div class="bottom">瀹㈡埛绛惧瓧锛�</div></el-col>
- <el-col :span="4"><div class="bottom">绛炬敹鏃ユ湡锛�</div></el-col>
+ <el-col :span="4">鍒跺崟鍛橈細<span style="font-size: 10px">{{delivery.creator}}</span></el-col>
+ <el-col :span="4">鍒跺崟鏃ユ湡锛�<span style="font-size: 10px">{{delivery.createTime}}</span></el-col>
+ <el-col v-if="company.showDeliveryCreator" :span="4">鍙戣揣鍛橈細</el-col>
+ <el-col v-if="company.showDeliveryCreator" :span="3">鍙告満锛�</el-col>
+ <el-col v-if="company.showDeliveryCreator" :span="4">瀹㈡埛绛惧瓧锛�</el-col>
+ <el-col v-if="company.showDeliveryCreator" :span="4">绛炬敹鏃ユ湡锛�</el-col>
</el-row>
- <el-row :gutter="20" style="margin-top: 20px;">
+ <el-row :gutter="20" style="margin-top: 20px;" v-if="company.showDeliveryCreator">
<el-col :span="4"><div class="bottom">鏋跺瓙 鍙�</div></el-col>
<el-col :span="20"><div class="bottom">{{takeCare}}</div></el-col>
</el-row>
- <el-row :gutter="20" style="margin-top: 20px;">
+ <el-row :gutter="20" style="margin-top: 20px;" v-if="company.showDeliveryCreator">
<el-col :span="24"><div class="bottom">{{remark}}</div></el-col>
</el-row>
+ <el-row :gutter="20" style="margin-top: 20px;" v-if="!company.showDeliveryCreator">
+<!-- <el-input
+ v-model=""
+ autosize
+ type="textarea"
+ placeholder="Please input"
+ />-->
+ <el-col :span="24"><div class="bottom">{{delivery.processingNote}}</div></el-col>
+ </el-row>
+
+ <el-dialog v-model="dialogVisible" style="width: 40%;height: 20%;margin-top: 10%" >
+ <el-select v-model="selectedValues" style="width: 100%" @change="handleChange" multiple placeholder="璇烽�夋嫨">
+ <el-option
+ v-for="item in productIdData"
+ :key="item"
+ :label='item.productId+" "+item.productName'
+ :value="item.productId">
+ </el-option>
+ </el-select>
+ </el-dialog>
</div>
</template>
+
+
<style scoped>
h1,h3{
left:0;
--
Gitblit v1.8.0