Преглед на файлове

木易华康订阅服务号功能

15376779826 преди 1 ден
родител
ревизия
5465a8f1d7
променени са 2 файла, в които са добавени 77 реда и са изтрити 2 реда
  1. 18 0
      src/api/wechat.js
  2. 59 2
      src/views/company/companyUser/profile/index.vue

+ 18 - 0
src/api/wechat.js

@@ -0,0 +1,18 @@
+import request from '@/utils/request'
+
+// 获取绑定二维码
+export function getWechatBindQrcode() {
+  return request({
+    url: '/wechat/bind/qrcode',
+    method: 'get'
+  });
+}
+
+// 检测绑定状态
+export function checkWechatBindStatus(sceneId) {
+  return request({
+    url: '/wechat/bind/status',
+    method: 'get',
+    params: { sceneId }
+  });
+}

+ 59 - 2
src/views/company/companyUser/profile/index.vue

@@ -36,6 +36,16 @@
                 <div class="pull-right">{{ user.createTime }}</div>
               </li>
             </ul>
+            <div class="text-center" style="margin-top: 20px;" v-if="needWxTemplateMsg">
+              <div v-if="user.wechatBindStatus">
+                <el-tag type="success">已绑定服务号通知</el-tag>
+              </div>
+              <div v-else>
+                <el-button type="primary" @click="openWechatBindDialog">
+                  订阅服务号通知
+                </el-button>
+              </div>
+            </div>
           </div>
         </el-card>
       </el-col>
@@ -55,6 +65,20 @@
         </el-card>
       </el-col>
     </el-row>
+    <el-dialog
+      title="订阅服务号通知"
+      :visible.sync="bindDialogVisible"
+      width="360px"
+      :close-on-click-modal="false"
+    >
+      <div class="text-center">
+        <img v-if="wechatQrcode" :src="wechatQrcode" style="width: 260px; height: 260px;" />
+        <p style="margin-top: 10px;">请使用微信扫码绑定服务号通知</p>
+      </div>
+      <span slot="footer" class="dialog-footer">
+        <el-button @click="bindDialogVisible = false">关闭</el-button>
+      </span>
+    </el-dialog>
   </div>
 </template>
 
@@ -63,7 +87,7 @@ import userAvatar from "./userAvatar";
 import userInfo from "./userInfo";
 import resetPwd from "./resetPwd";
 import { getUserProfile } from "@/api/company/companyUser";
-
+import { getWechatBindQrcode, checkWechatBindStatus } from "@/api/wechat";
 export default {
   name: "Profile",
   components: { userAvatar, userInfo, resetPwd },
@@ -72,10 +96,17 @@ export default {
       user: {},
       roleGroup: {},
       postGroup: {},
-      activeTab: "userinfo"
+      activeTab: "userinfo",
+      bindDialogVisible: false,
+      wechatQrcode: "",
+      wechatBindTimer: null,
+      needWxTemplateMsg: false,
     };
   },
   created() {
+    if (process.env.VUE_APP_COMPANY_NAME ==="河北红德堂医药连锁有限公司保定第五十七分公司"){
+      this.needWxTemplateMsg = true
+    }
     this.getUser();
   },
   methods: {
@@ -85,7 +116,33 @@ export default {
         this.roleGroup = response.roleGroup;
         this.postGroup = response.postGroup;
       });
+    },
+    openWechatBindDialog() {
+      getWechatBindQrcode().then(res => {
+        console.log(res)
+        this.wechatQrcode = res.data.qrcodeUrl;
+        this.bindDialogVisible = true;
+        this.startCheckWechatBind(res.data.sceneId);
+      });
+    },
+    startCheckWechatBind(sceneId) {
+      // 清除旧定时器
+      if (this.wechatBindTimer) clearInterval(this.wechatBindTimer);
+
+      this.wechatBindTimer = setInterval(() => {
+        checkWechatBindStatus(sceneId).then(res => {
+          if (res.data === true) {
+            this.$message.success("绑定成功!");
+            clearInterval(this.wechatBindTimer);
+            this.bindDialogVisible = false;
+            this.getUser(); // 刷新绑定状态
+          }
+        });
+      }, 2000);
     }
+  },
+  beforeDestroy() {
+    if (this.wechatBindTimer) clearInterval(this.wechatBindTimer);
   }
 };
 </script>