huangxw 6 месяцев назад
Родитель
Сommit
dd7fc45363
1 измененных файлов с 21 добавлено и 2 удалено
  1. 21 2
      src/views/training/models/sign-in-code.vue

+ 21 - 2
src/views/training/models/sign-in-code.vue

@@ -9,13 +9,13 @@
                     <div class="mb-6">联系电话:{{ info?.tel }}</div>
                     <div>签到二维码</div>
                     <div class="d-flex j-c a-c pd-20">
-                        <vueQr :text="VITE_APP_SHARE_QR_CODE_URL + '/meeting-sign-in?meetid=' + info?.id" :size="300"></vueQr>
+                        <vueQr :text="qrCode" :size="300"></vueQr>
                     </div>
                 </div>
             </div>
 
             <div class="d-flex j-c">
-                <el-button @click="saveImg">保存签到二维码</el-button>
+                <!-- <el-button @click="saveImg">保存签到二维码</el-button> -->
             </div>
         </template>
     </vxe-modal>
@@ -36,9 +36,25 @@ const props = defineProps({
 const VITE_APP_SHARE_QR_CODE_URL = ref(import.meta.env.VITE_APP_SHARE_QR_CODE_URL);
 const dialogVisible = ref(false);
 const close = () => {
+    if (timer.value) {
+        clearTimeout(timer.value);
+    }
     emit('update:show', false);
     emit('close', false);
 };
+const qrCode = ref<string>(`${VITE_APP_SHARE_QR_CODE_URL.value}/meeting-sign-in?meetid=${props?.info?.id}&state=${new Date().getTime()}`);
+// 5s设置一次二维码qrCode setTimeout
+const timer = ref<any>(null);
+const setQrCode = () => {
+    if (timer.value) {
+        clearTimeout(timer.value);
+    }
+    timer.value = setTimeout(() => {
+        qrCode.value = `${VITE_APP_SHARE_QR_CODE_URL.value}/meeting-sign-in?meetid=${props?.info?.id}&state=${new Date().getTime()}`;
+        setQrCode();
+    }, 5000);
+}
+
 const codeImgRef = ref<HTMLElement | null>(null);
 const saveImg = () => {
     html2canvas(codeImgRef.value, {
@@ -57,6 +73,9 @@ watch(
     () => props.show,
     (val) => {
         dialogVisible.value = val;
+        if (val) {
+            setQrCode();
+        }
     },
     { immediate: true }
 );