ソースを参照

Merge branch 'dev/v2.4.30_tsz' of jianyu/qmx_page_admin into feature/v2.4.30

汤世哲 1 年間 前
コミット
ad44f73a1c

+ 80 - 1
src/views/order/components/details.vue

@@ -569,7 +569,13 @@
                                 <i v-else>--</i>
                             </p>
                             <p>关联订单开票金额:{{item.invoice_order_money ? localed(item.invoice_order_money / 100) : '--'}}</p>
-                            <p>发票状态:<i :class="item.invoice_status | applyClor">{{item.invoice_status ? item.invoice_status : '--'}}</i></p>
+                            <p class="invoice_state">
+                              发票状态:<i :class="item.invoice_status | applyClor">{{item.invoice_status ? item.invoice_status : '--'}}</i>
+                              <span @click="setInvoiceState(item)" class="invoice_state_action">
+                                <span style="font-size: 14px;line-height: 22px;">开票二维码</span> 
+                                <span style="font-size: 12px;line-height: 18px; color: #36a3f7;">支持客户扫码换开或查看发票</span>
+                              </span>
+                            </p>
                         </li>
                     </ul>
                 </div>
@@ -709,6 +715,26 @@
           @close="closeComDialog"
           >
         </set-order-info>
+        <!-- 开票二维码 -->
+        <set-order-info
+          :show-content="4"
+          :show-dialog="showInvoiceDialog"
+          :order-info="orDetails"
+          title="开票二维码"
+          @close="closeComDialog"
+          >
+          <div style="display:flex;flex-direction:column;" slot="content">
+            <span>订单编号:{{orDetails.order_code}}</span>
+            <span>开票金额合计:{{orDetails.buy_count / 100}}元</span>
+          </div>
+        </set-order-info>
+        <!-- 不支持线上开票弹窗 -->
+        <common-dialog class="no-online-dialog" title="不支持线上开票" :visible="showOnlineDialog" :show-close="false">
+          <div class="dialog-content">订单签约主体是“北京拓普丰联信息科技股份有限公司”,请联系财务线下开票。</div>
+          <div slot="footer" class="dialog-footer-content">
+            <button class="btn-confirm" @click="showOnlineDialog = false">我知道了</button>
+          </div>
+        </common-dialog>
         <!-- 发票编号弹框 -->
         <code-model ref="codeRef" :codeDetail="codeDetail"></code-model>
         <!-- 批量回款弹框 -->
@@ -732,6 +758,7 @@ import otherOrderEdit from "./otherOrderEdit.vue"
 import bigOrderEdit from "./bigOrderEdit.vue"
 import reviewRecord from './reviewRecord.vue'
 import sealDialog from './sealDialog'
+import commonDialog from '@/components/Dialog.vue';
 import { dateFormatter, addDate } from '@/assets/js/date.js'
 import { Input, Button } from 'element-ui'
 export default {
@@ -744,6 +771,7 @@ export default {
         dModel,
         // dateSigle,
         setOrderInfo,
+        commonDialog,
         bCollect,
         codeModel,
         onlineOrderEdit,
@@ -816,6 +844,8 @@ export default {
             },
             previousPage:'',
             showDialog: false,
+            showInvoiceDialog: false,
+            showOnlineDialog: false,
             isShowCustom: false,
             newSerName:'',
             oldSerName:'',
@@ -1039,6 +1069,7 @@ export default {
         // 关闭弹框
         closeComDialog() {
             this.showDialog = false
+            this.showInvoiceDialog = false
         },
         localed(val) {
             return val.toLocaleString('zh', { style:'currency', currency:'CNY' })
@@ -1218,6 +1249,9 @@ export default {
             this.codeDetail = item
             this.$refs.codeRef.codeShow = true
         },
+        setInvoiceState() {
+          this.showInvoiceDialog = true
+        },
         inptBtn() {
             this.isSales = true
             setTimeout(() => {
@@ -1230,7 +1264,13 @@ export default {
         },
         // 客户扫码自助开票
         scanCodeVote() {
+          console.log(this.orDetails, 'orDetails')
+          // 1.点击“客户自助扫码开票”,如签约主体是“北京拓普丰联信息科技股份有限公司”,点击则弹窗提示:
+          if(this.orDetails.return_commpany === '北京拓普丰联信息科技股份有限公司') {
+            this.showOnlineDialog = true
+          } else {
             this.showDialog = true
+          }
             // this.comDialogParams.price = this.orDetails.pay_money / 100
         },
         backHandler() {
@@ -1501,6 +1541,31 @@ export default {
 }
 </script>
 <style lang="scss" scoped>
+.no-online-dialog{
+  ::v-deep {
+    .el-dialog{
+      width: 520px!important;
+      .dialog-content{
+        text-align: left;
+        font-size: 15px;
+      }
+      .dialog-footer{
+        justify-content: center;
+      }
+      .dialog-footer-content {
+        .btn-confirm{
+          width: 150px;
+          height: 40px;
+          background: #36a3f7;
+          color: #fff;
+          border-radius: 8px;
+          border: none;
+          cursor: pointer;
+        }
+      }
+    }
+  }
+}
 .m-details {
     margin: 50px auto;
     width: 800px;
@@ -1614,6 +1679,20 @@ export default {
                         color: #36a3f7;
                         cursor: pointer;
                     }
+                    .invoice_state{
+                      display: flex;
+                      align-items: center;
+                      .invoice_state_action {
+                        margin-left: 10px;
+                        padding: 2px 8px;
+                        border-radius: 8px;
+                        flex-direction: column;
+                        border: 1px solid #e2e2e2;
+                        background-color: rgba(255, 255, 255, 0.8);
+                        cursor: pointer;
+                      }
+                    }
+                    
                 }
                 .invoice-list:not(:first-child) {
                     margin-top: 20px;

+ 15 - 2
src/views/order/components/setOrderInfo.vue

@@ -11,7 +11,8 @@ import commonDialog from '@/components/Dialog.vue';
       <div class="com-dialog-main">
         <div class="com-dialog-title">
           <h2>{{ title }}</h2>
-          <p v-if="showCon !== 3">将二维码发送给客户,引导客户微信扫码开票</p>
+          <p v-if="showCon !== 3 && showCon !== 4">将二维码发送给客户,引导客户微信扫码开票</p>
+          <p v-if="showCon === 4">注:将二维码发送给客户,可查看发票信息、换开发票,注:1个发票只能线上换开申请1次,如超过1次请联系财务线下开票;</p>
         </div>
         <div class="com-dialog-content" v-if="showCon === 1">
           <el-form :rules="rulesOrder" :model="dynamicValidateForm" ref="dynamicValidateForm" label-width="100px" class="order-dynamic">
@@ -79,6 +80,19 @@ import commonDialog from '@/components/Dialog.vue';
             </el-form-item>
           </el-form>
         </div>
+        <div class="com-dialog-content" v-if="showCon === 4">
+          <div class="com-dialog-content-item">
+            <div class="com-dialog-price">
+              <slot name="content"></slot>
+            </div>
+            <div class="qr-code-item">
+              <img ref="qrCodeImage" :src="QrCodeImage" alt="">
+            </div>
+            <div class="com-dialog-btn">
+              <el-button @click="copyQrCode">复制二维码</el-button>
+            </div>
+          </div>
+        </div>
       </div>
     </common-dialog>
   </div>
@@ -88,7 +102,6 @@ import commonDialog from '@/components/Dialog.vue';
 import commonDialog from '@/components/Dialog.vue';
 import { Form } from 'element-ui';
 import 'clipboard-polyfill';
-import importData from '@/components/importData.vue';
 export default {
   name: 'set-order-info',
   components: {