From bd8014b7bd4a09bcb113eeb6123e6f2121e7985b Mon Sep 17 00:00:00 2001
From: Sliverber <2622874537@qq.com>
Date: Fri, 1 Mar 2024 14:01:19 +0800
Subject: [PATCH] 11

---
 package.json                |  1 +
 src/views/channel/index.vue | 70 ++++++++++++++++++++++++++++++++++---
 2 files changed, 66 insertions(+), 5 deletions(-)

diff --git a/package.json b/package.json
index 976277c..695404a 100644
--- a/package.json
+++ b/package.json
@@ -61,6 +61,7 @@
     "pdfjs-dist": "^2.0.943",
     "print-js": "^1.6.0",
     "printjs": "^1.1.0",
+    "qrcode": "^1.5.3",
     "qrcodejs2": "^0.0.2",
     "sass": "1.26.2",
     "sass-loader": "^7.2.0",
diff --git a/src/views/channel/index.vue b/src/views/channel/index.vue
index 26e8ef0..3bedee4 100644
--- a/src/views/channel/index.vue
+++ b/src/views/channel/index.vue
@@ -28,8 +28,9 @@
       </el-table>
       <el-table v-loading="listLoading" :data="listData.list" style="width: 100%" size="mini">
         <el-table-column prop="name" label="名称" min-width="50"  align="center"/>
-        <el-table-column prop="createTime" label="添加日期" min-width="100"  align="center"/>
+        <el-table-column prop="createTime" label="添加日期" min-width="50"  align="center"/>
         <el-table-column prop="totalClickNum" label="总点击" min-width="50"  align="center"/>
+        <el-table-column prop="todayClickNum" label="今日点击" min-width="50"  align="center"/>
         <el-table-column prop="totalRegisterNum" label="总注册" min-width="50"  align="center"/>
         <!-- <el-table-column prop="totalOrderNum" label="总订单(金额/数量)" min-width="120" /> -->
         <el-table-column prop="totalOrderNum" label="总订单(金额/数量)" min-width="100"  align="center">
@@ -77,6 +78,13 @@
           <div class="tj"  v-show="titindex==0">
             <div class="mintit">基础信息</div>
             <div class="infobox">
+              <div class="img_box">
+                <!-- <canvas ref="qrcodeCanvas"></canvas> -->
+                 <!-- <div id="payQrcode"></div> -->
+                 
+                <div id="qrcode" ref="qrcode" style="margin-bottom: 20px;"></div>  
+                <el-button type="primary" @click="downloadimg()" style="margin-left: 30px;" >下载图片</el-button>
+              </div>
               <div class="infoli">
                 <div class="li">渠道名称:{{ chooselist.name }} </div>
                 <div class="li"> 添加日期:{{ chooselist.createTime }} </div>
@@ -93,8 +101,8 @@
                 <div class="li">总订单数量:{{ chooselist.totalOrderNum }} </div>
               </div>
               <div class="infoli">
-                <div class="li" style="width: 100%;">渠道链接:{{ chooselist.url }}</div>
-
+                <div class="li" style="width: 50%;">渠道链接:{{ chooselist.url }}</div>
+                <div class="li">今日点击:{{ chooselist.todayClickNum }}</div>
               </div>
               <div class="infoli" style="justify-content: start;" v-if="chooselist.account">
                 <div class="li"  style="width: 33%;">渠道账号:{{ chooselist.account  }}</div>
@@ -171,9 +179,12 @@
 </template>
 
 <script>
+import QRCode from "qrcodejs2";
+let qrcode = "";
 import { ListChannel,ListChannels,Listuser, AddChannel, UpdateChannel, InfoChannel, DelChannel } from '@/api/channel';
 import creatChannel from './creatChannel';
 import { checkPermi } from '@/utils/permission'; // 权限判断函数
+import download from "@/plugins/download";
 export default {
   name: 'Channel',
   filters: {
@@ -224,6 +235,8 @@ export default {
         data: [],
         total: 0,
       },
+      codeurl:'',
+      
     };
   },
   mounted() {
@@ -231,6 +244,35 @@ export default {
     this.getList();
   },
   methods: {
+ 
+    qrcode(qWidth, qHeight, qText, qRender) {
+      new QRCode("qrcode", {
+        width: qWidth,
+        height: qHeight,
+        text: qText,
+        render: qRender,
+      });
+    },
+    downloadimg() {
+    // 获取生成二维码的canvas元素
+    const canvas = document.querySelector("#qrcode canvas");
+    if (canvas) {
+      // 创建一个临时的a元素
+      const link = document.createElement('a');
+      // 将canvas的内容转换为图片的DataURL
+      link.href = canvas.toDataURL("image/png");
+      // 设置下载的文件名
+      link.download = 'qrcode.png';
+      // 模拟点击下载
+      link.click();
+    } else {
+      console.error("无法找到二维码画布。");
+    }
+  },
+
+    
+  
+
     handleClose() {
       this.userPrams.page=1
       this.listPrams.page=1
@@ -300,7 +342,7 @@ export default {
          
         });
     },
-    showdlg(row) {
+    async showdlg(row) {
       this.listPrams.channelId=row.id
       this.userPrams.channelId=row.id
       
@@ -309,6 +351,13 @@ export default {
       console.log(row,'rowrow');
       this.chooselist=row
       this.dialogVisibles = true
+      // await this.generateQRCode(row.url)
+      if (this.$refs.qrcode) this.$refs.qrcode.innerHTML = "";
+      this.$nextTick(function () {
+        this.qrcode(150, 150, row.url, "canvas");
+        console.log(QRCode.CorrectLevel.L);
+      });
+  
     },
     formatPercentage(value) {
       if (value == "0.00" || value == "0.0" || value == "0" || value == 0 || value == null) {
@@ -448,11 +497,22 @@ export default {
   }
 
   .infobox {
+    position: relative;
     width: 90%;
     margin: 5px auto;
     display: flex;
     flex-wrap: wrap;
-
+    .img_box{
+      right: 70px;
+      position: absolute;
+      width: 100px;
+      height: 100px;
+      img{
+        width: 150px;
+        height: 150px;
+        background-color: red;
+      }
+    }
     .infoli {
       width: 100%;
       display: flex;