瀏覽代碼

fix: 回款信息对公转账审核、查看支付凭证,发票信息开票二维码

Signed-off-by: tangshizhe <48740614+tangshizhe@users.noreply.github.com>
tangshizhe 3 月之前
父節點
當前提交
da371deb6e

+ 1 - 11
src/views/create-order/components/newDetailModel.vue

@@ -77,16 +77,6 @@
       </div>
     </Modal>
     <!-- 上传归档协议 -->
-    <Modal title="上传归档协议" v-model="pShow" class-name="order-model contract-model" :mask-closable="false"
-      @on-visible-change="visibleChange">
-      <b-upload ref="uploadRef2" @fileData="contractFile" :placeholdered="'请上传归档协议'"
-        :accepted="'.doc,.pdf,.docx,.rar,.zip,.jpg,.png,.jpeg'"
-        :formated="['doc', 'pdf', 'docx', 'rar', 'zip', 'jpg', 'png', 'jpeg']" :multipled="false"></b-upload>
-      <div slot="footer">
-        <Button type="primary" size="large" @click="pingSub" :disabled="isDisable">提交</Button>
-        <Button size="large" @click="pingCancel">取消</Button>
-      </div>
-    </Modal>
     <Modal title="上传归档协议" v-model="pShow" class-name="order-model contract-model" :mask-closable="false"
       @on-visible-change="visibleChange">
       <Form :label-width="110">
@@ -611,7 +601,7 @@ export default {
       },
       audFunc(num) {
         this.isDisable = true
-        this.$request('/order/orderList/transferAccounts').data({
+        this.$jyRequest('/jyOrderManager/order/transferAccounts').data({
           pay_money: this.fixedNum(this.funds.sum),
           order_code: this.orderDetail.order_code,
           courseStatus: num

+ 12 - 1
src/views/create-order/components/order-detail-submodule/ContractInfo.vue

@@ -7,7 +7,7 @@
         </div>
         <div class="contract-info-card-item">
           签约主体:{{ setSigningSubject || '-' }}
-          <span class="red-chong" v-if="isUpEntRed">(红冲过)</span>
+          <span class="red-chong" v-if="setRedPunchDisplay('签约主体')">(红冲过)</span>
         </div>
         <div class="contract-info-card-item" v-if="contractResStatus">
           协议签订时间:{{ contractRes?.contract_time || '-' }}
@@ -155,6 +155,17 @@ export default {
     editContractArchiveConfirm() {
       // this.$refs.editContractArchiveDialog.close() 
     },
+    // 设置红冲标识显示字段
+    setRedPunchDisplay(product) { 
+      const { isUpCommission, isUpEnt, isUpCash } = this.orderDetail?.redPunchData || {};
+      const RETURN_BOOL = {
+        '合同金额': isUpCash,
+        '渠道佣金': isUpCommission,
+        '签约主体': isUpEnt,
+        '折扣率': isUpCash
+      }
+      return RETURN_BOOL[product] || false;
+    },
   }
 }
 

+ 28 - 4
src/views/create-order/components/order-detail-submodule/InvoiceInfo.vue

@@ -3,7 +3,7 @@
     <info-card title="开票概览">
       <div class="invoice-info-content">
         <div class="invoice-info-item">
-          开票状态:{{ getInvoiceStatus(invoiceData?.applybill_status) }}
+          开票状态:{{ getInvoiceStatus(orderDetail?.orderData?.applybill_status) }}
 
         </div>
         <div class="invoice-info-item">
@@ -29,7 +29,7 @@
             </div>
           </template>
           <template v-slot:code_url="{ row }">
-            <span class="column-cell">{{ row.row.code_url }}</span>
+            <span class="column-cell" @click="getInvoiceInfo(row.row.code_url)">查看</span>
           </template>
           <template v-slot:invoice_money="{ row }">
             <span>¥{{ formatNumber(row.row.invoice_money) }}</span>
@@ -40,16 +40,31 @@
         </TableCard>
       </div>
     </info-card>
+    <new-set-order-info
+      ref="invoiceRef"
+      :show-content="4"
+      :show-dialog="showInvoiceDialog"
+      :orderDetail="orderDetail?.orderData"
+      title="开票二维码"
+      @close="showInvoiceDialog = false"
+    >
+      <div style="display:flex;flex-direction:column;" slot="content">
+          <span>订单编号:{{selectInvoice.invoice_order_code}}</span>
+          <span>开票金额合计:{{selectInvoice.invoice_money / 100}}元</span>
+      </div>
+    </new-set-order-info>
   </div>
 </template>
 <script>
 import InfoCard from '../../ui/InfoCard.vue';
 import TableCard from '../../ui/TableCard.vue';
+import newSetOrderInfo from '../newSetOrderInfo.vue';
 export default {
   name: 'InvoiceInfo',
   components: {
     InfoCard,
-    TableCard
+    TableCard,
+    newSetOrderInfo
   },
   props: {
     orderDetail: {
@@ -87,6 +102,8 @@ export default {
         {v: 2, n: '已开具'},
         {v: 3, n: '部分开票'}
       ],
+      showInvoiceDialog: false,
+      selectInvoice: {}
     }
   },
   mounted() {
@@ -116,7 +133,14 @@ export default {
         const item = this.invoiceSta.find(item => item.v === val) || {};
         return item.n || '-';
       }
-    }
+    },
+    getInvoiceInfo(item) {
+      this.selectInvoice = item
+      this.$nextTick(() => {
+        this.$refs.invoiceRef.QrCodeImage = item.code_url;
+      });
+      this.showInvoiceDialog = true;
+    },
   },
 }
 </script>

+ 2 - 1
src/views/create-order/components/order-detail-submodule/OrderActions.vue

@@ -434,7 +434,8 @@ export default {
       const orderStatus = this.invoiceData?.remainingMoney > 0
       if(!orderStatus) reasonList.push('已全额开票')
       // 非线下开发票
-
+      const invoiceOffline = this.invoiceData?.applybill_status === 2
+      if(invoiceOffline) reasonList.push('已线下开发票')
       // 不存在发票状态为“已申请”的发票信息
       const invoiceType = this.invoiceData?.invoiceInfo.map(
         item => item.invoice_status === '1'

+ 17 - 7
src/views/create-order/components/order-detail-submodule/OrderDetailCard.vue

@@ -12,19 +12,19 @@
         <div class="order-detail-card-item" v-for="(item, index) in productInfoTotalItems" :key="index">
           <div v-if="item.key === 'pure_amount'">
             {{ item.label }}:¥{{ formatNumber(orderData[item.key]) || '-' }}
-            <span class="red-chong" v-if="isUpEntRed">(红冲过)</span>
+            <span class="red-chong" v-if="setRedPunchDisplay('合同金额')">(红冲过)</span>
           </div>
           <div v-else-if="item.key === 'final_price_total'">
             {{ item.label }}:¥{{ orderData[item.key] || '-' }}
-            <span class="red-chong" v-if="isUpEntRed">(红冲过)</span>
+            <span class="red-chong" v-if="setRedPunchDisplay('合同金额')">(红冲过)</span>
           </div>
           <div v-else-if="item.key === 'commission'">
             {{ item.label }}:¥{{ formatNumber(orderData[item.key]) || '0.00' }}
-            <span class="red-chong" v-if="isUpEntRed">(红冲过)</span>
+            <span class="red-chong" v-if="setRedPunchDisplay('渠道佣金')">(红冲过)</span>
           </div>
           <div v-else-if="item.key === 'rate_total'">
             {{ item.label }}:{{ orderData[item.key] || '-' }}
-            <span class="red-chong" v-if="isUpEntRed">(红冲过)</span>
+            <span class="red-chong" v-if="setRedPunchDisplay('折扣率')">(红冲过)</span>
           </div>
           <div v-else-if="item.key === 'zero_type'">
             <span v-if="shouldRenderItem(item)">
@@ -66,11 +66,11 @@
                   <div v-else-if="item.key ==='rate'">
                     {{ item.label }}:
                     <span :class="{'no_open_root': product.original_price === '0.00'}">{{ getFilteredValue(product[item.key], item.filter) || '-' }}</span>
-                    <span class="red-chong" v-if="isUpEntRed">(红冲过)</span>
+                    <span class="red-chong" v-if="setRedPunchDisplay('折扣率')">(红冲过)</span>
                   </div>
                   <div v-else-if="item.key === 'final_price' || item.key === 'original_price'">
                     {{ item.label }}:¥{{ getFilteredValue(product[item.key], item.filter) || '-' }}
-                    <span class="red-chong" v-if="isUpEntRed && item.key === 'final_price'">(红冲过)</span>
+                    <span class="red-chong" v-if="setRedPunchDisplay('合同金额') && item.key === 'final_price'">(红冲过)</span>
                   </div>
                   <div v-else-if="item.key === 'validity_period'">
                     <span v-html="getValidityPeriodHtml(product, item)"></span>
@@ -271,7 +271,17 @@ export default {
       this.setTotalAmounts(productData);
       this.productData = productData;
     },
-
+    // 设置红冲标识显示字段
+    setRedPunchDisplay(product) { 
+      const { isUpCommission, isUpEnt, isUpCash } = this.orderDetailInfo?.redPunchData || {};
+      const RETURN_BOOL = {
+        '合同金额': isUpCash,
+        '渠道佣金': isUpCommission,
+        '签约主体': isUpEnt,
+        '折扣率': isUpCash
+      }
+      return RETURN_BOOL[product] || false;
+    },
     parseProductFilter(product) {
       let parsedFilter = {};
       if (typeof product.filter === 'string') {

+ 22 - 4
src/views/create-order/components/order-detail-submodule/PaymentInfo.vue

@@ -32,25 +32,31 @@
           width="1108px"
         >
           <template v-slot:voucher="{ row }">
-            <span class="column-cell">{{ row.row.voucher }}</span>
+            <span @click="vouched(row.row.voucher)" class="column-cell">点击查看</span>
           </template>
           <template v-slot:action="{ row }">
-            <span class="column-cell">{{ row.row.action }}</span>
+            <span @click="payShenHe" class="column-cell">{{ row.row.action }}</span>
           </template>
         </TableCard>
       </div>
     </InfoCard>
+    <newDetailModel
+      ref="paymentDetailModel"
+      :order-detail="orderData"
+    ></newDetailModel>
   </div>
 </template>
 
 <script>
 import InfoCard from '../../ui/InfoCard.vue';
 import TableCard from '../../ui/TableCard.vue';
+import newDetailModel from '../newDetailModel.vue';
 export default {
   name: 'PaymentInfo',
   components: {
     InfoCard,
-    TableCard
+    TableCard,
+    newDetailModel
   },
   props: {
     orderDetail: {
@@ -224,6 +230,9 @@ export default {
     returnRes () {
       return this.orderDetail?.returnRes || {};
     },
+    orderData() {
+      return this.orderDetail?.orderData || {};
+    },
     paymentDetailList () {
       return this.returnRes?.returnInfo || [];
     },
@@ -248,7 +257,16 @@ export default {
       } else {
           return '未回款'
       }
-    }
+    },
+    payShenHe() {
+      this.$refs.paymentDetailModel.sShow = true;
+    },
+    vouched(val) {
+      if (val) {
+        const urls = this.$router.resolve(val)
+        window.open(urls.href, '_blank')
+      }
+    },
   }
 }
 </script>