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