| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- <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: "正在同步",
- };
- },
- 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>
|