Browse Source

问诊代客下单生成付款二维码

三七 3 days ago
parent
commit
cc2f54ab67

+ 8 - 1
src/api/store/inquiryOrder.js

@@ -120,4 +120,11 @@ export function exportMessageFeedback(query) {
     method: 'get',
     params: query
   })
-}
+}
+
+export function getWxaCodeInquiryOrderUnLimit(orderId) {
+  return request({
+    url: '/store/inquiryOrder/getWxaCodeInquiryOrderUnLimit/'+orderId,
+    method: 'get',
+  })
+}

+ 75 - 24
src/views/store/inquiryOrder/list.vue

@@ -93,7 +93,7 @@
       <el-form-item label="支付时间" prop="payTimeRange">
         <el-date-picker style="width:205.4px" clearable size="small" v-model="payTimeRange" type="daterange" value-format="yyyy-MM-dd"  start-placeholder="开始日期"  end-placeholder="结束日期"> </el-date-picker>
       </el-form-item>
-	
+
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
         <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
@@ -190,15 +190,24 @@
 
       </el-table-column>
       <el-table-column label="科室名称" align="center" prop="deptName" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="100px">
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="150px">
         <template slot-scope="scope">
-       <el-button
-                  size="mini"
-                  type="text"
-                  @click="handledetails(scope.row)"
-                   icon="el-icon-share"
-                >详情
-      </el-button>
+         <el-button
+              size="mini"
+              type="text"
+              @click="handledetails(scope.row)"
+               icon="el-icon-share"
+            >详情
+        </el-button>
+        <el-button
+          v-if="scope.row.isPay==0"
+          size="mini"
+          type="text"
+          @click="handlePayOrder(scope.row)"
+          icon="el-icon-coin"
+          v-hasPermi="['store:inquiryOrder:wxaCodeInquiryOrder']"
+        >生成付款二维码
+        </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -218,12 +227,20 @@
      <inquiryOrderDetails  ref="Details" />
    </el-drawer>
 
+    <el-dialog :title="payInquiryOrder.title" v-if="payInquiryOrder.open"  :visible.sync="payInquiryOrder.open" width="450px"  append-to-body>
+      <div style="padding-bottom:15px;" >
+        <img :src="codeImage" width="400px">
+      </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="downloadImage(codeImage, payInquiryOrder.name+'.png')">下载二维码</el-button>
+      </div>
+    </el-dialog>
 
   </div>
 </template>
 
 <script>
-import { listinquiryOrder, getinquiryOrder, delinquiryOrder, addinquiryOrder, updateinquiryOrder, exportinquiryOrder,exportMessageFeedback } from "@/api/store/inquiryOrder";
+import { listinquiryOrder, getinquiryOrder, delinquiryOrder, addinquiryOrder, updateinquiryOrder, exportinquiryOrder,exportMessageFeedback,getWxaCodeInquiryOrderUnLimit } from "@/api/store/inquiryOrder";
 import inquiryOrderDetails from '../components/inquiryOrderDetails.vue';
 import { treeselect } from "@/api/company/companyDept";
 import Treeselect from "@riophae/vue-treeselect";
@@ -272,6 +289,12 @@ export default {
       title: "",
       // 是否显示弹出层
       open: false,
+      codeImage:null,
+      payInquiryOrder:{
+        open:false,
+        title:"付款二维码",
+        name:null,
+      },
       // 查询参数
       queryParams: {
         pageNum: 1,
@@ -355,20 +378,48 @@ export default {
       this.queryParams.deptId = data.id;
       this.getList();
     },
-  handleClickX(tab, event) {
-   if(tab.name=="10"){
-     this.queryParams.status=null;
-   }else{
-     this.queryParams.status=tab.name;
-   }
-    this.handleQuery();
-  },
-        handledetails(row){
-            this.show.open=true;
-            setTimeout(() => {
-                 this.$refs.Details.getDetails(row.orderId);
-            }, 1);
-        },
+    handleClickX(tab, event) {
+     if(tab.name=="10"){
+       this.queryParams.status=null;
+     }else{
+       this.queryParams.status=tab.name;
+     }
+      this.handleQuery();
+    },
+    handledetails(row){
+        this.show.open=true;
+        setTimeout(() => {
+             this.$refs.Details.getDetails(row.orderId);
+        }, 1);
+    },
+
+    handlePayOrder(row){
+
+      let loadingRock = this.$loading({
+        lock: true,
+        text: '生成二维码中~~请不要刷新页面!!',
+        spinner: 'el-icon-loading',
+        background: 'rgba(0, 0, 0, 0.7)'
+      });
+
+      getWxaCodeInquiryOrderUnLimit(row.orderId).then(response => {
+        this.codeImage='data:image/jpeg;base64,'+response.data
+        this.payInquiryOrder.open=true;
+        this.payInquiryOrder.name=row.title;
+        loadingRock.close();
+      }).finally(res=>{
+        loadingRock.close();
+      })
+    },
+
+    downloadImage(imageSrc, fileName) {
+      const link = document.createElement('a');
+      link.href = imageSrc;
+      link.download = fileName || '付款二维码.png';
+      document.body.appendChild(link);
+      link.click();
+      document.body.removeChild(link);
+    },
     /** 查询问诊订单列表 */
     getList() {
       this.loading = true;

+ 78 - 22
src/views/store/inquiryOrder/myList.vue

@@ -183,15 +183,24 @@
 
       </el-table-column>
       <el-table-column label="科室名称" align="center" prop="deptName" />
-      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="100px">
+      <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" width="150px">
         <template slot-scope="scope">
-       <el-button
-                  size="mini"
-                  type="text"
-                  @click="handledetails(scope.row)"
-                   icon="el-icon-share"
-                >详情
-      </el-button>
+           <el-button
+                      size="mini"
+                      type="text"
+                      @click="handledetails(scope.row)"
+                       icon="el-icon-share"
+                    >详情
+          </el-button>
+          <el-button
+            v-if="scope.row.isPay==0"
+            size="mini"
+            type="text"
+            @click="handlePayOrder(scope.row)"
+            icon="el-icon-coin"
+            v-hasPermi="['store:inquiryOrder:wxaCodeInquiryOrder']"
+          >生成付款二维码
+          </el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -332,6 +341,17 @@
     <el-dialog :title="user.title" v-if="user.open"  :visible.sync="user.open" width="500px" append-to-body>
        <add-user @addUser="addUser" />
     </el-dialog>
+
+    <el-dialog :title="payInquiryOrder.title" v-if="payInquiryOrder.open"  :visible.sync="payInquiryOrder.open" width="450px"  append-to-body>
+      <div style="padding-bottom:15px;" >
+        <img :src="codeImage" width="400px">
+      </div>
+      <div slot="footer" class="dialog-footer">
+        <el-button @click="downloadImage(codeImage, payInquiryOrder.name+'.png')">下载二维码</el-button>
+      </div>
+    </el-dialog>
+
+
   </div>
 </template>
 
@@ -343,6 +363,7 @@ import { userList } from "@/api/store/user";
 import addUser from "../components/addUser";
 import addPatient from "../components/addPatient";
 import { listPatient } from "@/api/store/patient";
+import {getWxaCodeInquiryOrderUnLimit} from "../../../api/store/inquiryOrder";
 export default {
   name: "ofast",
   components: { inquiryOrderDetails,addUser,addPatient },
@@ -419,6 +440,13 @@ export default {
         open:false,
         title:"创建病人"
       },
+
+      codeImage:null,
+      payInquiryOrder:{
+        open:false,
+        title:"付款二维码",
+        name:null,
+      },
       patientList:[],
       userloading :false,
       users:[],
@@ -471,20 +499,48 @@ export default {
     this.getList();
   },
   methods: {
-  handleClickX(tab, event) {
-   if(tab.name=="10"){
-     this.queryParams.status=null;
-   }else{
-     this.queryParams.status=tab.name;
-   }
-    this.handleQuery();
-  },
-        handledetails(row){
-            this.show.open=true;
-            setTimeout(() => {
-                 this.$refs.Details.getDetails(row.orderId);
-            }, 1);
-        },
+    handleClickX(tab, event) {
+     if(tab.name=="10"){
+       this.queryParams.status=null;
+     }else{
+       this.queryParams.status=tab.name;
+     }
+      this.handleQuery();
+    },
+    handledetails(row){
+        this.show.open=true;
+        setTimeout(() => {
+             this.$refs.Details.getDetails(row.orderId);
+        }, 1);
+    },
+
+    handlePayOrder(row){
+
+      let loadingRock = this.$loading({
+        lock: true,
+        text: '生成二维码中~~请不要刷新页面!!',
+        spinner: 'el-icon-loading',
+        background: 'rgba(0, 0, 0, 0.7)'
+      });
+
+      getWxaCodeInquiryOrderUnLimit(row.orderId).then(response => {
+        this.codeImage='data:image/jpeg;base64,'+response.data
+        this.payInquiryOrder.open=true;
+        this.payInquiryOrder.name=row.title;
+        loadingRock.close();
+      }).finally(res=>{
+        loadingRock.close();
+      })
+    },
+
+    downloadImage(imageSrc, fileName) {
+      const link = document.createElement('a');
+      link.href = imageSrc;
+      link.download = fileName || '付款二维码.png';
+      document.body.appendChild(link);
+      link.click();
+      document.body.removeChild(link);
+    },
     /** 查询问诊订单列表 */
     getList() {
       this.loading = true;