소스 검색

no message

linwenxin 1 년 전
부모
커밋
dc3fde1215
4개의 변경된 파일78개의 추가작업 그리고 8개의 파일을 삭제
  1. 3 3
      package-lock.json
  2. 1 1
      package.json
  3. 7 0
      src/api/orderSettleManag.js
  4. 67 4
      src/views/valueAddedService/orderSettleManag/pages/offline.vue

+ 3 - 3
package-lock.json

@@ -4716,9 +4716,9 @@
       "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="
     },
     "@zjlib/element-plugins": {
-      "version": "2.13.12",
-      "resolved": "http://121.41.110.30:4873/@zjlib%2felement-plugins/-/element-plugins-2.13.12.tgz",
-      "integrity": "sha512-mEDG1DvPCMntb7HdXWh+Dd5eyYGshs6bj3yi21DPiOVQQbANoiC9az8ipr3KwuMdL5u8eP+n8FRpo6awqzf/Rw==",
+      "version": "2.13.13",
+      "resolved": "http://121.41.110.30:4873/@zjlib%2felement-plugins/-/element-plugins-2.13.13.tgz",
+      "integrity": "sha512-9WH9T7kBuKc1IHSUrQ5w7RsDU4yA/Q5u3muvjS893p3J3hR9K3r/dEmcfWXKXsPCROd/+QqNqBsUEvIaiofvIQ==",
       "requires": {
         "@turf/turf": "^6.5.0",
         "@vuemap/vue-amap": "^0.1.12",

+ 1 - 1
package.json

@@ -18,7 +18,7 @@
     "@turf/turf": "^6.5.0",
     "@vue-office/excel": "^1.3.0",
     "@vue/composition-api": "^1.7.1",
-    "@zjlib/element-plugins": "^2.13.12",
+    "@zjlib/element-plugins": "^2.13.13",
     "@zjlib/element-ui2": "^1.0.3",
     "axios": "0.18.1",
     "chatgpt": "^4.1.2",

+ 7 - 0
src/api/orderSettleManag.js

@@ -31,6 +31,13 @@ export function increOrderSettleGetWebsit(params) {
     params
   })
 }
+export function increOrderSettleGeneratePayCode(params) {
+  return request({
+    url: '/incre/order/settle/generate/pay/code',
+    method: 'post',
+    params
+  })
+}
 
 // ----------------
 

+ 67 - 4
src/views/valueAddedService/orderSettleManag/pages/offline.vue

@@ -19,9 +19,13 @@
             :form-items="examineInfo">
           </zj-form-module>
         </zj-form-container>
-        <div v-if="formData.flag == 'WAIT'" slot="footer" class="dialog-footer">
+        <div v-if="formType == 1 && formData.flag == 'WAIT'" slot="footer" class="dialog-footer">
           <el-button size="mini" type="primary" @click="shenhexinxi">审核</el-button>
         </div>
+        <div v-if="formType == 0 && formData.payStatus == 'WAIT' && formData.payType == 1" slot="footer"
+          class="dialog-footer">
+          <el-button size="mini" type="primary" @click="() => { wxPay(formData.id) }">扫码支付</el-button>
+        </div>
       </el-dialog>
     </div>
     <div class="cartographer">
@@ -39,19 +43,29 @@
         </div>
       </el-dialog>
     </div>
+    <el-dialog title="微信支付" :visible.sync="isPay" width="50%" :close-on-click-modal="false" :modal-append-to-body="false"
+      @close="codeUrl = ''">
+      <h3 style="text-align: center;">扫二维码支付</h3>
+      <div ref="payQRCode" style="display: flex; justify-content: center;" />
+      <div style="color: #EA8000;text-align: center;margin-top: 20px;">注:支付成功后,方可操作确认提货!</div>
+      <div style="display: flex;justify-content: flex-end;margin-top: 30px;">
+        <el-button size="mini" type="text" @click="codeUrl = ''">取消</el-button>
+      </div>
+    </el-dialog>
   </template-page>
 </template>
 
 <script>
 import TemplatePage from '@/components/template/template-page-1.vue'
 import import_mixin from '@/components/template/import_mixin.js'
-import { increOrderSettleExamine, increOrderSettleGetBrand, increOrderSettleList, increOrderSettleListExport, increOrderSettleAdd, increOrderSettleDetail, increOrderSettleConfirm, increOrderSettleRefund } from "@/api/orderSettleManag.js"
+import { increOrderSettleExamine, increOrderSettleGetBrand, increOrderSettleGeneratePayCode, increOrderSettleList, increOrderSettleListExport, increOrderSettleAdd, increOrderSettleDetail, increOrderSettleConfirm, increOrderSettleRefund } from "@/api/orderSettleManag.js"
 import operation_mixin from '@/components/template/operation_mixin.js'
 import formItems from "../mixins/formItems.js"
 import basicInfo from "../mixins/basicInfo.js"
 import serviceInfo from "../mixins/serviceInfo.js"
 import productInfo from "../mixins/productInfo.js"
 import examineInfo from "../mixins/examineInfo.js"
+import QRCode from "qrcodejs2";
 export default {
   props: {
     storageType: {
@@ -63,6 +77,8 @@ export default {
   mixins: [import_mixin, operation_mixin, formItems, basicInfo, serviceInfo, productInfo, examineInfo],
   data() {
     return {
+      isPay: false,
+      codeUrl: "",
       // 表格属性
       tableAttributes: {
       },
@@ -182,7 +198,51 @@ export default {
       ]
     },
   },
+  watch: {
+    codeUrl(newVal) {
+      this.isPay = !!newVal
+      if (!this.isPay) {
+        if(this.wxpayTimeId){
+          clearTimeout(this.wxpayTimeId)
+        }
+        this.formCancel()
+        this.addFormCancel()
+        this.$refs.pageRef.refreshList()
+      }
+    }
+  },
   methods: {
+    wxPay(id) {
+      increOrderSettleGeneratePayCode({ id }).then(res => {
+        this.codeUrl = res.data.codeUrl
+        this.$nextTick(() => {
+          new QRCode(this.$refs.payQRCode, {
+            text: res.data.codeUrl,
+            width: 200,
+            height: 200,
+            colorDark: "#333333", // 二维码颜色
+            colorLight: "#ffffff", // 二维码背景色
+            correctLevel: QRCode.CorrectLevel.L // 容错率,L/M/H
+          });
+          this.wxpaygetDetail(id)
+        });
+      })
+    },
+    wxpaygetDetail(id) {
+      if (this.wxpayTimeId) {
+        clearTimeout(this.wxpayTimeId)
+      }
+      this.wxpayTimeId = setTimeout(() => {
+        increOrderSettleDetail({ id }).then(res => {
+          if (res.data.payStatus == "PAID" && res.data.payType == 1) {
+            this.codeUrl = ""
+            this.addFormCancel()
+          } else {
+            this.wxpaygetDetail(id)
+          }
+        })
+      }, 1000)
+    },
     // 列表请求函数
     getList(p, cb) {
       var pam = JSON.parse(JSON.stringify(p))
@@ -305,8 +365,11 @@ export default {
             "machineImg": this.addFormData.machineImg.map(item => item.url).join(","),
           }).then(res => {
             this.$message({ type: 'success', message: `新增成功!` })
-            this.addFormCancel()
-            this.$refs.pageRef.refreshList()
+            if (res.data.payStatus == "WAIT" && res.data.payType == 1) {
+              this.wxPay(res.data.id)
+            } else {
+              this.addFormCancel()
+            }
           })
         }
       })