duanshenglang 2 days ago
parent
commit
21937c6747

BIN
lottery.zip


+ 3 - 4
lottery/WeCom.html

@@ -543,7 +543,7 @@
     color: #222222;
     display: flex;
     flex-direction: column;
-    gap: 9px;
+    gap: 8px;
     flex: 1;
     min-width: 0;
     overflow: hidden;
@@ -553,8 +553,9 @@
     align-items: center;
     gap: 8px;
     overflow: hidden;
-    flex-wrap: nowrap;
+    flex-wrap: wrap;
     width: 100%;
+    max-height: 21px;
   }
   .client_tag span {
     height: 21px;
@@ -566,8 +567,6 @@
     background: #FAFAFA;
     border: 1px solid #F1F1F1;
     box-sizing: border-box;
-    white-space: nowrap;
-    flex-shrink: 0;
   }
   .van-checkbox__icon .van-icon {
     width: 16px;

+ 1 - 0
lottery/css/page-return.css

@@ -10,6 +10,7 @@
   width: 100%;
   gap: 80px;
   justify-content: center;
+  z-index: 1;
   margin-bottom: constant(safe-area-inset-bottom);
   margin-bottom: env(safe-area-inset-bottom);
 }

+ 3 - 2
lottery/qw/clientGroupMassDetail.html

@@ -43,7 +43,6 @@
   .page5 {
     width: 100vw;
     box-sizing: border-box;
-    padding-bottom: 39px;
   }
 
   .task_content {
@@ -160,6 +159,8 @@
     flex-wrap: wrap;
     align-items: center;
     gap: 10px;
+    max-height: 52px;
+    overflow: hidden;
   }
 
   .mem_tag span {
@@ -198,7 +199,7 @@
   }
 
   .send_centent {
-    padding: 20px 15px;
+    padding: 20px 15px 39px;
   }
 
   .send_text {

+ 3 - 2
lottery/qw/clientMassDetail.html

@@ -43,7 +43,6 @@
   .page5 {
     width: 100vw;
     box-sizing: border-box;
-    padding-bottom: 39px;
   }
 
   .task_content {
@@ -148,6 +147,8 @@
     flex-wrap: wrap;
     align-items: center;
     gap: 10px;
+    max-height: 52px;
+    overflow: hidden;
   }
   .mem_tag span {
     padding: 2px 8px;
@@ -178,7 +179,7 @@
     color: #999999;
   }
   .send_centent {
-    padding: 20px 15px;
+    padding: 20px 15px 39px;
   }
   .send_text {
     font-size: 14px;

+ 58 - 6
lottery/qw/clientMassList.html

@@ -141,11 +141,23 @@
     font-size: 12px;
     line-height: 17px;
   }
+  .task_item_foot {
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    padding-top: 8px;
+  }
   .task_item_time {
     font-size: 12px;
     color: #999999;
     line-height: 17px;
-    padding-top: 8px;
+  }
+  .task_item_btn {
+    font-size: 12px;
+    color: #4ed74e;
+    padding: 2px 8px;
+    border: 1px solid;
+    border-radius: 10px;
   }
   .notask {
     display: flex;
@@ -197,6 +209,10 @@
 <body>
   <div id="box" class="box">
     <div class="page5">
+      <van-dialog v-model="showSend" title="通知成员发送" show-cancel-button :before-close="beforeClose" confirm-button-text="确定"
+        cancel-button-text="取消">
+        <div style="padding: 20px; text-align: center;">确认通知?</div>
+      </van-dialog>
       <div>
         <div class="client_top">
           <div class="client_top_box">
@@ -219,18 +235,21 @@
                 <div v-else-if="item.isNotify === 1" class="client_tag status1">已通知</div>
                 <div v-else-if="item.isNotify === 3" class="client_tag status2">创建中</div>
               </div>
-              <div class="task_item_time">创建时间:{{item.createdTime}}</div>
+              <div class="task_item_foot">
+                <div class="task_item_time">创建时间:{{item.createdTime}}</div>
+                <div class="task_item_btn" v-if="item.isNotify === 0" @click.stop="handleClientMassSend(item)">通知成员发送</div>
+              </div>
             </div>
           </div>
         </div>
+        <div class="notask" v-else>
+          <img src="../img/qw/no_task.png" alt="">
+          <div class="notask_text">暂无数据</div>
+        </div>
         <div class="send_foot">
           <div class="send_btn" @click="handleClientMass">创建客户群发</div>
         </div>
       </div>
-      <div class="notask" v-else>
-        <img src="../img/qw/no_task.png" alt="">
-        <div class="notask_text">暂无数据</div>
-      </div>
     </div>
     <!-- 底部返回栏 -->
     <page-return></page-return>
@@ -250,6 +269,8 @@
         memberId: null,
         keyword: '',
         tableData: [],
+        showSend: false,
+        taskId: null,
       }
     },
     created() {
@@ -304,11 +325,42 @@
         this.initData()
       },
       handleClientMassDetail(item) {
+        console.log('1')
         window.location.href = `clientMassDetail.html?bId=${this.bId}&env=${this.env}&id=${item.id}`
       },
+      handleClientMassSend (item) {
+        this.taskId = item.id
+        this.showSend = true
+      },
       handleClientMass() {
         window.location.href = `clientMass.html?bId=${this.bId}&env=${this.env}&memberId=${this.memberId}`
       },
+      beforeClose(action, done) {
+        if (action === 'confirm') {
+          const headers = new Headers()
+          headers.append('token', this.token)
+          headers.append('tenancyId', this.tenancyId)
+          headers.append('userId', this.userId)
+          fetch(this.httpUrl + `/scrm/v1/wxcp-group-send/m/notifyMemberSend?id=${this.taskId}`, {
+            method: 'GET',
+            headers: headers
+          }).then(res => {
+            return res.json()
+          }).then(result => {
+            let { data, code, msg } = result
+            if (code === 1) {
+              vant.Toast.success('通知成功')
+              this.initData()
+            } else {
+              vant.Toast.fail(msg)
+            }
+          }).finally(() => {
+            done()
+          })
+        } else {
+          done();
+        }
+      },
       timeFormat(time, format = 'yyyy-MM-dd hh:mm:ss') {
         if (time === undefined || time === '' || time === null) {
           return '/';

+ 11 - 6
lottery/qw/mass.html

@@ -503,14 +503,18 @@
         this.httpUrl = 'http://test.wefanbot.com:18993'
       }
       this.memberId = this.getQueryParam('memberId')
-      this.formValidate = localStorage.getItem('massData') ? JSON.parse(localStorage.getItem('massData')) : {
-        clients: [],
-        contentText: '',
-        ctOthers: [],
-        matters: [],
-      }
       this.formValidate.clients = JSON.parse(localStorage.getItem('clientData')) || [] // 外面勾选的客户数据
       this.formValidate.matters = JSON.parse(localStorage.getItem('selectedMaters')) || []
+      if (localStorage.getItem('massData')) {
+        this.formValidate = {
+          clients: JSON.parse(localStorage.getItem('massData')).clients  || JSON.parse(localStorage.getItem('clientData')) || [],
+          contentText: JSON.parse(localStorage.getItem('massData')).contentText || '',
+          ctOthers: JSON.parse(localStorage.getItem('massData')).ctOthers || [],
+          matters: JSON.parse(localStorage.getItem('selectedMaters')) || [],
+        }
+        console.log('ss', JSON.parse(localStorage.getItem('massData')).matters);
+        
+      }
       if (this.formValidate.matters && this.formValidate.matters.length > 0) {
         this.formValidate.matters.forEach(item => {
           if (item.contentType === 19) {
@@ -663,6 +667,7 @@
         window.location.href = `material.html?memberId=${this.memberId}&bId=${this.bId}&env=${this.env}`
       },
       handleShowClient() {
+        localStorage.setItem('massData', JSON.stringify(this.formValidate))
         localStorage.setItem('clientData', JSON.stringify(this.formValidate.clients))
         window.location.href = `showClientList.html`
       },

+ 7 - 6
lottery/qw/pyqMassDetail.html

@@ -43,7 +43,6 @@
   .page5 {
     width: 100vw;
     box-sizing: border-box;
-    padding-bottom: 39px;
   }
 
   .task_content {
@@ -160,6 +159,8 @@
     flex-wrap: wrap;
     align-items: center;
     gap: 10px;
+    max-height: 52px;
+    overflow: hidden;
   }
 
   .mem_tag span {
@@ -198,7 +199,7 @@
   }
 
   .send_centent {
-    padding: 20px 15px;
+    padding: 20px 15px 39px;
   }
 
   .send_text {
@@ -416,7 +417,7 @@
           </div>
           <div class="mem_title">
             <div class="mem_title_left">标签</div>
-            <div class="mem_title_right">
+            <div class="mem_title_right" @click="handleShowTag">
               <div>全部标签</div>
               <img src="../img/qw/more_icon.png" alt="">
             </div>
@@ -590,9 +591,9 @@
             this.sendMemberList = this.formValidate.memberList
         }
       },
-      handleShowClient() {
-        // localStorage.setItem('clientData', JSON.stringify(this.formValidate.memberList || []))
-        // window.location.href = `showClientList.html`
+      handleShowTag() {
+        localStorage.setItem('clientData', JSON.stringify(this.formValidate.tags || []))
+        window.location.href = `showTagList.html`
       },
       timeFormat(time, format = 'yyyy-MM-dd hh:mm:ss') {
         if (time === undefined || time === '' || time === null) {

+ 4 - 4
lottery/qw/pyqMassList.html

@@ -245,14 +245,14 @@
             </div>
           </div>
         </div>
+        <div class="notask" v-else>
+          <img src="../img/qw/no_task.png" alt="">
+          <div class="notask_text">暂无数据</div>
+        </div>
         <div class="send_foot">
           <div class="send_btn" @click="handleClientMass">创建朋友圈群发</div>
         </div>
       </div>
-      <div class="notask" v-else>
-        <img src="../img/qw/no_task.png" alt="">
-        <div class="notask_text">暂无数据</div>
-      </div>
     </div>
     <!-- 底部返回栏 -->
     <page-return></page-return>

+ 123 - 0
lottery/qw/showTagList.html

@@ -0,0 +1,123 @@
+<!DOCTYPE html>
+<html lang="en">
+
+<head>
+  <meta charset="UTF-8">
+  <meta http-equiv="X-UA-Compatible" content="IE=edge">
+  <meta name="viewport"
+    content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no, viewport-fit=cover" />
+  <title>朋友圈群发列表</title>
+  <!-- 引入样式文件 -->
+  <link rel="stylesheet"
+    href="https://wl-1306604067.cos.ap-guangzhou.myqcloud.com/production/ct/103548289110001/1758012584633/vant.css" />
+  <link rel="stylesheet" href="../css/page-return.css">
+  <!-- 必须先引入vue,  后使用vant-ui -->
+  <script
+    src="https://wl-1306604067.cos.ap-guangzhou.myqcloud.com/production/ct/103548289110001/1742017957144/vue.js"></script>
+  <!-- 引入vant的组件库-->
+  <!-- 引入 Vant 的 JS 文件 -->
+  <script
+    src="https://wl-1306604067.cos.ap-guangzhou.myqcloud.com/production/ct/103548289110001/1758012748487/vant.min.js"></script>
+
+  <script src="https://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
+  <script src="https://open.work.weixin.qq.com/wwopen/js/jwxwork-1.0.0.js"></script>
+  <script src="../js/page-return.js"></script>
+  <!-- <script src="js/vconsole.min.js"></script>
+    <script>
+  		  var vConsole = new window.VConsole();
+  		</script> -->
+</head>
+<style>
+  body {
+    margin: 0;
+    padding: 0;
+  }
+
+  .box {
+    width: 100vw;
+    min-height: 100vh;
+    box-sizing: border-box;
+    background: #F7F9FC;
+  }
+
+  .page5 {
+    width: 100vw;
+    box-sizing: border-box;
+    padding: 15px;
+    padding-bottom: 39px;
+  }
+  .mem_tag {
+    display: flex;
+    flex-wrap: wrap;
+    align-items: center;
+    gap: 10px;
+  }
+
+  .mem_tag span {
+    padding: 2px 8px;
+    background: rgba(19, 109, 251, 0.05);
+    border-radius: 5px;
+    font-size: 12px;
+    line-height: 17px;
+    color: #136DFB;
+  }
+  .notask {
+    display: flex;
+    flex-direction: column;
+    align-items: center;
+    padding-top: 198px;
+  }
+
+  .notask img {
+    width: 102px;
+    height: 90px;
+  }
+
+  .notask_text {
+    font-size: 14px;
+    color: #CCCCCC;
+    line-height: 20px;
+    padding-top: 20px;
+  }
+</style>
+
+<body>
+  <div id="box" class="box">
+    <div class="page5">
+      <div v-if="tagList.length">
+        <div class="mem_tag">
+          <span v-for="(item, index) in tagList" :key="index">{{item.name}}</span>
+        </div>
+      </div>
+      <div class="notask" v-else>
+        <img src="../img/qw/no_task.png" alt="">
+        <div class="notask_text">暂无数据</div>
+      </div>
+    </div>
+    <!-- 底部返回栏 -->
+    <page-return></page-return>
+  </div>
+</body>
+<script>
+  new Vue({
+    el: '#box',
+    data() {
+      return {
+        tagList: [],
+      }
+    },
+    created() {
+      this.tagList = localStorage.getItem('clientData') ? JSON.parse(localStorage.getItem('clientData')) : []
+    },
+    mounted() {
+      window.addEventListener('beforeunload', e => this.beforeunloadFn(e))
+    },
+    methods: {
+      beforeunloadFn(e) {
+        localStorage.removeItem('clientData')
+      },
+    }
+  })   
+</script>
+
+</html>