From 2b1f7a47394363e95deb4dfa0f1c67d41e747f7f Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期三, 01 二月 2023 10:56:40 +0800 Subject: [PATCH] Merge branch 'wvp-28181-2.0' into fix-269 --- web_src/src/components/dialog/SyncChannelProgress.vue | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 112 insertions(+), 0 deletions(-) diff --git a/web_src/src/components/dialog/SyncChannelProgress.vue b/web_src/src/components/dialog/SyncChannelProgress.vue new file mode 100644 index 0000000..e1c9fe0 --- /dev/null +++ b/web_src/src/components/dialog/SyncChannelProgress.vue @@ -0,0 +1,112 @@ +<template> + <div id="SyncChannelProgress" v-loading="isLoging"> + <el-dialog + width="240px" + top="13%" + :append-to-body="true" + :close-on-click-modal="false" + :visible.sync="showDialog" + :destroy-on-close="true" + :show-close="true" + @close="close()" + style="text-align: center"> + <el-progress type="circle" :percentage="percentage" :status="syncStatus"></el-progress> + <div style="text-align: center"> + {{msg}} + </div> + </el-dialog> + </div> +</template> + +<script> + +export default { + name: "SyncChannelProgress", + computed: {}, + props: ['platformId'], + created() {}, + data() { + return { + syncStatus: null, + percentage: 0, + total: 0, + current: 0, + showDialog: false, + isLoging: false, + syncFlag: false, + deviceId: null, + timmer: null, + msg: "姝e湪鍚屾", + }; + }, + methods: { + openDialog: function (deviceId) { + console.log("deviceId: " + deviceId) + this.deviceId = deviceId; + this.showDialog = true; + this.msg = ""; + this.percentage= 0; + this.total= 0; + this.current= 0; + this.syncFlag= false; + this.syncStatus = null; + this.getProgress() + }, + getProgress(){ + this.$axios({ + method: 'get', + url:`/api/device/query/${this.deviceId}/sync_status/`, + }).then((res) => { + if (res.data.code === 0) { + if (!this.syncFlag) { + this.syncFlag = true; + } + + if (res.data.data != null) { + if (res.data.data.syncIng) { + if (res.data.data.total == 0) { + this.msg = `绛夊緟鍚屾涓璥; + this.timmer = setTimeout(this.getProgress, 300) + }else { + this.total = res.data.data.total; + this.current = res.data.data.current; + this.percentage = Math.floor(Number(res.data.data.current)/Number(res.data.data.total)* 10000)/100; + this.msg = `鍚屾涓�...[${res.data.data.current}/${res.data.data.total}]`; + this.timmer = setTimeout(this.getProgress, 300) + } + }else { + if (res.data.data.errorMsg){ + this.msg = res.data.data.errorMsg; + this.syncStatus = "exception" + }else { + this.syncStatus = "success" + this.percentage = 100; + this.msg = '鍚屾鎴愬姛'; + setTimeout(()=>{ + this.showDialog = false; + }, 3000) + } + } + } + }else { + if (this.syncFlag) { + this.syncStatus = "success" + this.percentage = 100; + this.msg = '鍚屾鎴愬姛'; + }else { + this.syncStatus = "error" + this.msg = res.data.msg; + } + } + }).catch((error) =>{ + console.log(error); + this.syncStatus = "error" + this.msg = error.response.data.msg; + }); + }, + close: function (){ + window.clearTimeout(this.timmer) + } + }, +}; +</script> -- Gitblit v1.8.0