lxf 2 months ago
parent
commit
aaa2c2997d
1 changed files with 48 additions and 385 deletions
  1. 48 385
      jy-ui/src/components/PDF/moneyPDF.vue

+ 48 - 385
jy-ui/src/components/PDF/moneyPDF.vue

@@ -11,134 +11,41 @@
         </div>
         <div style="border: 1px solid black">
           <div style="display: flex; border-bottom: 1px solid black">
-            <div
-              style="
-                max-width: 140px;
-                min-width: 140px;
-                border-right: 1px solid black;
-                padding: 8px;
-              "
-            >
-              创建人
-            </div>
+            <div style="max-width: 140px; min-width: 140px; border-right: 1px solid black; padding: 8px">创建人</div>
             <div style="width: calc(100% - 140px); padding: 8px">
               {{ printDetails.userName }}
             </div>
           </div>
           <div style="display: flex; border-bottom: 1px solid black">
-            <div
-              style="
-                max-width: 140px;
-                min-width: 140px;
-                border-right: 1px solid black;
-                padding: 8px;
-              "
-            >
-              创建人部门
-            </div>
+            <div style="max-width: 140px; min-width: 140px; border-right: 1px solid black; padding: 8px">创建人部门</div>
             <div style="width: calc(100% - 140px); padding: 8px">
               {{ printDetails.deptName }}
             </div>
           </div>
-          <div
-            style="display: flex; border-bottom: 1px solid black"
-            v-if="printDetails.type != '3'"
-          >
-            <div
-              style="
-                max-width: 140px;
-                min-width: 140px;
-                border-right: 1px solid black;
-                padding: 4px 8px;
-                display: flex;
-                align-items: center;
-              "
-            >
-              费用明细
-            </div>
+          <div style="display: flex; border-bottom: 1px solid black" v-if="printDetails.type != '3'">
+            <div style="max-width: 140px; min-width: 140px; border-right: 1px solid black; padding: 4px 8px; display: flex; align-items: center">费用明细</div>
             <div style="width: calc(100% - 140px)">
               <div style="border-bottom: 1px solid black; display: flex">
-                <div
-                  style="
-                    max-width: 140px;
-                    min-width: 140px;
-                    padding: 4px 8px;
-                    border-right: 1px solid black;
-                    text-align: center;
-                  "
-                >
-                  费用类型
-                </div>
-                <div
-                  style="
-                    width: calc(100% - 300px);
-                    padding: 4px 8px;
-                    border-right: 1px solid black;
-                    text-align: center;
-                  "
-                >
-                  款项说明
-                </div>
-                <div
-                  style="
-                    width: 60px;
-                    padding: 4px 8px;
-                    border-right: 1px solid black;
-                    text-align: center;
-                  "
-                >
-                  货币
-                </div>
-                <div style="width: 100px; padding: 4px 8px; text-align: center">付款金额</div>
+                <div style="max-width: 100px; min-width: 100px; padding: 4px 8px; border-right: 1px solid black; text-align: center">费用类型</div>
+                <div style="width: 120px; padding: 4px 8px; border-right: 1px solid black; text-align: center">关联合同</div>
+                <div style="width: calc(100% - 360px); padding: 4px 8px; border-right: 1px solid black; text-align: center">款项说明</div>
+                <div style="width: 60px; padding: 4px 8px; border-right: 1px solid black; text-align: center">货币</div>
+                <div style="width: 80px; padding: 4px 8px; text-align: center">付款金额</div>
               </div>
-              <template
-                v-if="
-                  printDetails.paymentRequestsDetailList &&
-                  printDetails.paymentRequestsDetailList.length > 0
-                "
-              >
+              <template v-if="printDetails.paymentRequestsDetailList && printDetails.paymentRequestsDetailList.length > 0">
                 <div v-for="(item, index) in printDetails.paymentRequestsDetailList" :key="index">
-                  <div
-                    :style="
-                      index + 1 !== printDetails.paymentRequestsDetailList.length
-                        ? 'border-bottom: 1px solid black;  display: flex'
-                        : ' display: flex'
-                    "
-                  >
-                    <div
-                      style="
-                        max-width: 140px;
-                        min-width: 140px;
-                        padding: 4px 8px;
-                        border-right: 1px solid black;
-                        text-align: center;
-                      "
-                    >
+                  <div :style="index + 1 !== printDetails.paymentRequestsDetailList.length ? 'border-bottom: 1px solid black;  display: flex' : ' display: flex'">
+                    <div style="max-width: 100px; min-width: 100px; padding: 4px 8px; border-right: 1px solid black; text-align: center">
                       {{ dictValueLabel(item.expenseType, expenseType) }}
                     </div>
-                    <div
-                      style="
-                        width: calc(100% - 300px);
-                        padding: 4px 8px;
-                        border-right: 1px solid black;
-                        display: flex;
-                        align-items: center;
-                      "
-                    >
-                      {{ item.remark }}
+                    <div style="width: 120px; padding: 4px 8px; border-right: 1px solid black; display: flex; align-items: center">
+                      {{ item.contractNo }}
                     </div>
-                    <div
-                      style="
-                        width: 60px;
-                        padding: 4px 8px;
-                        border-right: 1px solid black;
-                        display: flex;
-                        align-items: center;
-                      "
-                    >
-                      人民币
+                    <div style="width: calc(100% - 360px); padding: 4px 8px; border-right: 1px solid black; display: flex; align-items: center">
+                      {{ item.remark }}
                     </div>
-                    <div style="width: 100px; padding: 4px 8px; display: flex; align-items: center">
+                    <div style="width: 60px; padding: 4px 8px; border-right: 1px solid black; display: flex; align-items: center">人民币</div>
+                    <div style="width: 80px; padding: 4px 8px; display: flex; align-items: center">
                       {{ item.amount }}
                     </div>
                   </div>
@@ -147,119 +54,26 @@
             </div>
           </div>
           <div style="display: flex; border-bottom: 1px solid black" v-else>
-            <div
-              style="
-                max-width: 140px;
-                min-width: 140px;
-                border-right: 1px solid black;
-                padding: 4px 8px;
-                display: flex;
-                align-items: center;
-              "
-            >
-              费用明细
-            </div>
+            <div style="max-width: 140px; min-width: 140px; border-right: 1px solid black; padding: 4px 8px; display: flex; align-items: center">费用明细</div>
             <div style="width: calc(100% - 140px)">
               <div style="border-bottom: 1px solid black; display: flex">
-                <div
-                  style="
-                    max-width: 140px;
-                    min-width: 140px;
-                    padding: 4px 8px;
-                    border-right: 1px solid black;
-                    text-align: center;
-                  "
-                >
-                  费用类型
-                </div>
-                <div
-                  style="
-                    width: calc(100% - 360px);
-                    padding: 4px 8px;
-                    border-right: 1px solid black;
-                    text-align: center;
-                  "
-                >
-                  款项说明
-                </div>
-                <div
-                  style="
-                    width: 60px;
-                    padding: 4px 8px;
-                    border-right: 1px solid black;
-                    text-align: center;
-                  "
-                >
-                  货币
-                </div>
-                <div
-                  style="
-                    width: 80px;
-                    padding: 4px 8px;
-                    border-right: 1px solid black;
-                    text-align: center;
-                  "
-                >
-                  预支金额
-                </div>
+                <div style="max-width: 140px; min-width: 140px; padding: 4px 8px; border-right: 1px solid black; text-align: center">费用类型</div>
+                <div style="width: calc(100% - 360px); padding: 4px 8px; border-right: 1px solid black; text-align: center">款项说明</div>
+                <div style="width: 60px; padding: 4px 8px; border-right: 1px solid black; text-align: center">货币</div>
+                <div style="width: 80px; padding: 4px 8px; border-right: 1px solid black; text-align: center">预支金额</div>
                 <div style="width: 80px; padding: 4px 8px; text-align: center">付款金额</div>
               </div>
-              <template
-                v-if="
-                  printDetails.paymentRequestsDetailList &&
-                  printDetails.paymentRequestsDetailList.length > 0
-                "
-              >
+              <template v-if="printDetails.paymentRequestsDetailList && printDetails.paymentRequestsDetailList.length > 0">
                 <div v-for="(item, index) in printDetails.paymentRequestsDetailList" :key="index">
-                  <div
-                    :style="
-                      index + 1 !== printDetails.paymentRequestsDetailList.length
-                        ? 'border-bottom: 1px solid black;  display: flex'
-                        : ' display: flex'
-                    "
-                  >
-                    <div
-                      style="
-                        max-width: 140px;
-                        min-width: 140px;
-                        padding: 4px 8px;
-                        border-right: 1px solid black;
-                        text-align: center;
-                      "
-                    >
+                  <div :style="index + 1 !== printDetails.paymentRequestsDetailList.length ? 'border-bottom: 1px solid black;  display: flex' : ' display: flex'">
+                    <div style="max-width: 140px; min-width: 140px; padding: 4px 8px; border-right: 1px solid black; text-align: center">
                       {{ dictValueLabel(item.expenseType, expenseType) }}
                     </div>
-                    <div
-                      style="
-                        width: calc(100% - 360px);
-                        padding: 4px 8px;
-                        border-right: 1px solid black;
-                        display: flex;
-                        align-items: center;
-                      "
-                    >
+                    <div style="width: calc(100% - 360px); padding: 4px 8px; border-right: 1px solid black; display: flex; align-items: center">
                       {{ item.remark }}
                     </div>
-                    <div
-                      style="
-                        width: 60px;
-                        padding: 4px 8px;
-                        border-right: 1px solid black;
-                        display: flex;
-                        align-items: center;
-                      "
-                    >
-                      人民币
-                    </div>
-                    <div
-                      style="
-                        width: 80px;
-                        padding: 4px 8px;
-                        border-right: 1px solid black;
-                        display: flex;
-                        align-items: center;
-                      "
-                    >
+                    <div style="width: 60px; padding: 4px 8px; border-right: 1px solid black; display: flex; align-items: center">人民币</div>
+                    <div style="width: 80px; padding: 4px 8px; border-right: 1px solid black; display: flex; align-items: center">
                       {{ item.advanceAmount }}
                     </div>
                     <div style="width: 80px; padding: 4px 8px; display: flex; align-items: center">
@@ -270,20 +84,8 @@
               </template>
             </div>
           </div>
-          <div
-            style="display: flex; border-bottom: 1px solid black"
-            v-if="printDetails.type !== '3'"
-          >
-            <div
-              style="
-                max-width: 140px;
-                min-width: 140px;
-                border-right: 1px solid black;
-                padding: 8px;
-              "
-            >
-              总报销金额
-            </div>
+          <div style="display: flex; border-bottom: 1px solid black" v-if="printDetails.type !== '3'">
+            <div style="max-width: 140px; min-width: 140px; border-right: 1px solid black; padding: 8px">总报销金额</div>
             <div style="width: calc(100% - 140px); display: flex">
               <div style="width: calc(100% - 100px); padding: 8px; border-right: 1px solid black">
                 {{ NumberToChinese(computeMoney('amount')) }}
@@ -295,16 +97,7 @@
           </div>
           <div v-else>
             <div style="display: flex; border-bottom: 1px solid black">
-              <div
-                style="
-                  max-width: 140px;
-                  min-width: 140px;
-                  border-right: 1px solid black;
-                  padding: 8px;
-                "
-              >
-                核销总金额
-              </div>
+              <div style="max-width: 140px; min-width: 140px; border-right: 1px solid black; padding: 8px">核销总金额</div>
               <div style="width: calc(100% - 140px); display: flex">
                 <div style="width: calc(100% - 80px); padding: 8px; border-right: 1px solid black">
                   {{ NumberToChinese(computeMoney('amount')) }}
@@ -315,16 +108,7 @@
               </div>
             </div>
             <div style="display: flex; border-bottom: 1px solid black">
-              <div
-                style="
-                  max-width: 140px;
-                  min-width: 140px;
-                  border-right: 1px solid black;
-                  padding: 8px;
-                "
-              >
-                预支总金额
-              </div>
+              <div style="max-width: 140px; min-width: 140px; border-right: 1px solid black; padding: 8px">预支总金额</div>
               <div style="width: calc(100% - 140px); display: flex">
                 <div style="width: calc(100% - 80px); padding: 8px; border-right: 1px solid black">
                   {{ NumberToChinese(computeMoney('advanceAmount')) }}
@@ -335,16 +119,7 @@
               </div>
             </div>
             <div style="display: flex; border-bottom: 1px solid black">
-              <div
-                style="
-                  max-width: 140px;
-                  min-width: 140px;
-                  border-right: 1px solid black;
-                  padding: 8px;
-                "
-              >
-                差额 (核销 - 预支)
-              </div>
+              <div style="max-width: 140px; min-width: 140px; border-right: 1px solid black; padding: 8px">差额 (核销 - 预支)</div>
               <div style="width: calc(100% - 140px); display: flex">
                 <div style="width: calc(100% - 80px); padding: 8px; border-right: 1px solid black">
                   {{ NumberToChinese(computeBalance()) }}
@@ -356,153 +131,48 @@
             </div>
           </div>
           <div style="display: flex; border-bottom: 1px solid black">
-            <div
-              style="
-                max-width: 140px;
-                min-width: 140px;
-                border-right: 1px solid black;
-                padding: 8px;
-              "
-            >
-              单据数量
-            </div>
+            <div style="max-width: 140px; min-width: 140px; border-right: 1px solid black; padding: 8px">单据数量</div>
             <div style="width: calc(100% - 140px); padding: 8px">
               {{ printDetails.documentQuantity }}
             </div>
           </div>
           <div style="display: flex; border-bottom: 1px solid black">
-            <div
-              style="
-                max-width: 140px;
-                min-width: 140px;
-                border-right: 1px solid black;
-                padding: 0 8px;
-                display: flex;
-                align-items: center;
-              "
-            >
-              收款信息
-            </div>
+            <div style="max-width: 140px; min-width: 140px; border-right: 1px solid black; padding: 0 8px; display: flex; align-items: center">收款信息</div>
             <div style="width: calc(100% - 140px)">
               <div style="border-bottom: 1px solid black; display: flex">
-                <div
-                  style="
-                    width: 19%;
-                    padding: 0 8px;
-                    border-right: 1px solid black;
-                    text-align: center;
-                  "
-                >
-                  支付方式
-                </div>
-                <div
-                  style="
-                    width: 27%;
-                    padding: 0 8px;
-                    border-right: 1px solid black;
-                    text-align: center;
-                  "
-                >
-                  收款方户名
-                </div>
-                <div
-                  style="
-                    width: 27%;
-                    padding: 0 8px;
-                    border-right: 1px solid black;
-                    text-align: center;
-                  "
-                >
-                  开户行
-                </div>
+                <div style="width: 19%; padding: 0 8px; border-right: 1px solid black; text-align: center">支付方式</div>
+                <div style="width: 27%; padding: 0 8px; border-right: 1px solid black; text-align: center">收款方户名</div>
+                <div style="width: 27%; padding: 0 8px; border-right: 1px solid black; text-align: center">开户行</div>
                 <div style="width: 27%; padding: 0 8px; text-align: center">收款方账号</div>
               </div>
               <div style="display: flex">
-                <div
-                  style="
-                    width: 19%;
-                    padding: 0 8px;
-                    border-right: 1px solid black;
-                    display: flex;
-                    align-items: center;
-                  "
-                >
+                <div style="width: 19%; padding: 0 8px; border-right: 1px solid black; display: flex; align-items: center">
                   {{ dictValueLabel(printDetails.payType, payType) }}
                 </div>
-                <div
-                  style="
-                    width: 27%;
-                    padding: 0 8px;
-                    border-right: 1px solid black;
-                    display: flex;
-                    align-items: center;
-                  "
-                >
+                <div style="width: 27%; padding: 0 8px; border-right: 1px solid black; display: flex; align-items: center">
                   {{ printDetails.accountName }}
                 </div>
-                <div
-                  style="
-                    width: 27%;
-                    padding: 0 8px;
-                    border-right: 1px solid black;
-                    display: flex;
-                    align-items: center;
-                  "
-                >
+                <div style="width: 27%; padding: 0 8px; border-right: 1px solid black; display: flex; align-items: center">
                   {{ printDetails.depositBank }}
                 </div>
-                <div
-                  style="
-                    width: 27%;
-                    padding: 0 8px;
-                    display: flex;
-                    align-items: center;
-                    word-break: break-all;
-                  "
-                >
+                <div style="width: 27%; padding: 0 8px; display: flex; align-items: center; word-break: break-all">
                   {{ printDetails.account }}
                 </div>
               </div>
             </div>
           </div>
           <div style="display: flex; border-bottom: 1px solid black">
-            <div
-              style="
-                max-width: 140px;
-                min-width: 140px;
-                border-right: 1px solid black;
-                padding: 8px;
-              "
-            >
-              电子发票(PDF/JPG)
-            </div>
+            <div style="max-width: 140px; min-width: 140px; border-right: 1px solid black; padding: 8px">电子发票(PDF/JPG)</div>
             <div style="width: calc(100% - 140px); padding: 8px">
               {{ getAtts(printDetails.atts) }}
             </div>
           </div>
           <div style="display: flex">
-            <div
-              style="
-                max-width: 140px;
-                min-width: 140px;
-                border-right: 1px solid black;
-                padding: 4px 8px;
-                display: flex;
-                align-items: center;
-              "
-            >
-              审批流程
-            </div>
+            <div style="max-width: 140px; min-width: 140px; border-right: 1px solid black; padding: 4px 8px; display: flex; align-items: center">审批流程</div>
             <div style="width: calc(100% - 140px)">
               <template v-if="recordList && recordList.length > 0">
                 <div v-for="(item, index) in recordList" :key="index">
-                  <div
-                    :style="
-                      index + 1 !== recordList.length
-                        ? 'border-bottom: 1px solid black; padding: 4px 8px; display: flex'
-                        : 'padding: 4px 8px; display: flex'
-                    "
-                  >
+                  <div :style="index + 1 !== recordList.length ? 'border-bottom: 1px solid black; padding: 4px 8px; display: flex' : 'padding: 4px 8px; display: flex'">
                     <div style="width: calc(100% - 120px); word-wrap: break-word">
                       <span>{{ item.nodeName }}: </span>
                       <span style="padding-left: 4px">{{ item.approver }}</span>
@@ -592,17 +262,10 @@ function getDictData() {
 getDictData()
 const computeMoney = (label) => {
   let amount = 0
-  if (
-    printDetails.value.paymentRequestsDetailList &&
-    printDetails.value.paymentRequestsDetailList.length > 0
-  ) {
+  if (printDetails.value.paymentRequestsDetailList && printDetails.value.paymentRequestsDetailList.length > 0) {
     for (let i = 0; i < printDetails.value.paymentRequestsDetailList.length; i++) {
       if (printDetails.value.paymentRequestsDetailList[i][label]) {
-        amount = Number(
-          parseFloat(
-            Number(amount) + Number(printDetails.value.paymentRequestsDetailList[i][label])
-          ).toFixed(2)
-        )
+        amount = Number(parseFloat(Number(amount) + Number(printDetails.value.paymentRequestsDetailList[i][label])).toFixed(2))
       }
     }
   }