Browse Source

图标改为本地

duy 2 days ago
parent
commit
85a7024259

+ 1 - 1
public/index.html

@@ -17,7 +17,7 @@
   <link rel="stylesheet" href="<%= BASE_URL %>cdn/iconfont/saber/iconfont.css">
   <link rel="stylesheet" href="<%= BASE_URL %>cdn/iconfont/saber/iconfont.css">
   <link rel="stylesheet" href="<%= BASE_URL %>cdn/avue/2.9.5/index.css">
   <link rel="stylesheet" href="<%= BASE_URL %>cdn/avue/2.9.5/index.css">
 
 
-  <link href="https://cdn.jsdelivr.net/npm/remixicon@2.5.0/fonts/remixicon.css" rel="stylesheet">
+
   <script src="<%= BASE_URL %>cdn/xlsx/FileSaver.min.js"></script>
   <script src="<%= BASE_URL %>cdn/xlsx/FileSaver.min.js"></script>
   <script src="<%= BASE_URL %>cdn/xlsx/xlsx.full.min.js"></script>
   <script src="<%= BASE_URL %>cdn/xlsx/xlsx.full.min.js"></script>
   <link rel="icon" href="<%= BASE_URL %>favicon.png">
   <link rel="icon" href="<%= BASE_URL %>favicon.png">

+ 1 - 0
src/assets/heart-fill.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="rgba(234,46,46,1)"><path d="M12.001 4.52853C14.35 2.42 17.98 2.49 20.2426 4.75736C22.5053 7.02472 22.583 10.637 20.4786 12.993L11.9999 21.485L3.52138 12.993C1.41705 10.637 1.49571 7.01901 3.75736 4.75736C6.02157 2.49315 9.64519 2.41687 12.001 4.52853Z"></path></svg>

+ 1 - 0
src/assets/heart-line.svg

@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor"><path d="M12.001 4.52853C14.35 2.42 17.98 2.49 20.2426 4.75736C22.5053 7.02472 22.583 10.637 20.4786 12.993L11.9999 21.485L3.52138 12.993C1.41705 10.637 1.49571 7.01901 3.75736 4.75736C6.02157 2.49315 9.64519 2.41687 12.001 4.52853ZM18.827 6.1701C17.3279 4.66794 14.9076 4.60701 13.337 6.01687L12.0019 7.21524L10.6661 6.01781C9.09098 4.60597 6.67506 4.66808 5.17157 6.17157C3.68183 7.66131 3.60704 10.0473 4.97993 11.6232L11.9999 18.6543L19.0201 11.6232C20.3935 10.0467 20.319 7.66525 18.827 6.1701Z"></path></svg>

+ 3 - 2
src/views/manager/projectinfo/list.vue

@@ -71,8 +71,9 @@
                       </div>
                       </div>
                       <div class="project-like" @click.stop="toggleLike(item)" v-loading="item.load">
                       <div class="project-like" @click.stop="toggleLike(item)" v-loading="item.load">
                     
                     
-                        <i class="ri-heart-fill"  v-if="item.isCollect"    style="color: red;" ></i>
-                        <i class="ri-heart-line" v-else></i>
+                        <!-- <i   v-if="item.isCollect"    style="color: red;"   src="@/assets/heart-line.svg" ></i> -->
+                         <img height="16" width="16" src="@/assets/heart-fill.svg"   v-if="item.isCollect" />
+                        <img height="16" width="16" src="@/assets/heart-line.svg"  v-else />
                       </div>
                       </div>
                     </div>
                     </div>
                   <div class="project-title" >
                   <div class="project-title" >

+ 217 - 30
src/views/manager/projectinfo/tree.vue

@@ -31,6 +31,13 @@
               @click="proSyncbtn"
               @click="proSyncbtn"
               >项目数据同步
               >项目数据同步
             </el-button>
             </el-button>
+            <el-button
+              size="medium"
+              style="margin-right: 10px"
+             icon="el-icon-s-data"
+             @click="SyncbtnProGress"
+              >同步进度
+            </el-button>
             <el-button
             <el-button
               size="medium"
               size="medium"
               icon="el-icon-s-grid"
               icon="el-icon-s-grid"
@@ -2491,35 +2498,71 @@
       </span>
       </span>
     </el-dialog>
     </el-dialog>
     <!-- 同步队列 -->
     <!-- 同步队列 -->
-    <el-dialog
-      title="同步队列"
-      :visible.sync="syncListDialog"
-      width="30%"
-      append-to-body
-      :close-on-click-modal="false"
-      @close="closeSyncListTag"
-    >
-    <div class="content-box" v-loading="refreshLoading||refreshLoading1">
-      <el-image
-      style="width: 100px; height: 100px"
-     :src="require('@/assets/loader.svg')"
-      fit="contain"></el-image>
-      <div class="mt-14">同步中</div>
-      <div  class="mt-14">
-        同步数量{{ syncListData.nodeNum }} 剩余数量{{ syncListData.nodeNumEnd }}
-      </div>
-     <div  class="mt-14">
-      <el-button type="primary" @click="syncListDialog=false">好的,我已知晓</el-button>
-      </div>
-      <div  class="mt-14">
-      <el-link type="primary" @click="refreshData" v-loading="refreshLoading" v-if="!isAdd">刷新数据</el-link>
-      <el-link type="primary" @click="refreshData1" v-loading="refreshLoading1" v-else>刷新数据</el-link>
-     </div>
-    </div>
-      
-   
-     
-    </el-dialog>
+      <el-dialog
+          title="同步队列"
+          :visible.sync="syncListDialog"
+          width="30%"
+          append-to-body
+          :close-on-click-modal="false"
+          @close="closeSyncListTag"
+          custom-class="sync-queue-dialog"
+        >
+          <!-- 有同步任务时显示 -->
+          <div v-if="syncListData && syncListData.length > 0" class="sync-list">
+            <div 
+              v-for="(item, index) in syncListData" 
+              :key="index" 
+              class="sync-item"
+            >
+              <!-- 同步方信息和状态 -->
+              <div class="sync-header">
+                <span class="sync-party">{{ item.party }}</span>
+                <span class="sync-status">{{ item.status }}</span>
+              </div>
+              
+              <!-- 进度条 -->
+              <div class="progress-container">
+                <el-progress 
+                  :percentage="item.progress" 
+                  stroke-width="6"
+                  stroke-linecap="round"
+                ></el-progress>
+                <span class="progress-text">{{ item.progress }}%</span>
+              </div>
+              
+              <!-- 统计数据 -->
+              <div class="sync-stats">
+                <div class="stat-item">
+                  <span class="stat-label">已同步</span>
+                  <span class="stat-value synced">{{ item.synced }}</span>
+                </div>
+                <div class="stat-item">
+                  <span class="stat-label">剩余</span>
+                  <span class="stat-value remaining">{{ item.remaining }}</span>
+                </div>
+              </div>
+            </div>
+          </div>
+          
+          <!-- 无同步任务时显示 -->
+          <div v-else class="no-data">
+            <div class="no-data-icon">
+              <i class="el-icon-information"></i>
+            </div>
+            <div class="no-data-text">暂无同步任务...</div>
+          </div>
+          
+          <!-- 底部按钮 -->
+          <div slot="footer" class="dialog-footer">
+            <el-button 
+              type="primary" 
+              @click="syncListDialog = false"
+              class="confirm-btn"
+            >
+              好的,我已知晓
+            </el-button>
+          </div>
+        </el-dialog>
      <!-- 同步表单其他配置 -->
      <!-- 同步表单其他配置 -->
      <el-dialog
      <el-dialog
       title="同步表单其他配置"
       title="同步表单其他配置"
@@ -3543,6 +3586,9 @@ export default {
 
 
       if(this.isNodeType){
       if(this.isNodeType){
         this.tableListByTypeLoad=true
         this.tableListByTypeLoad=true
+        if(!this.curTreeData){
+          return
+        }
           getGroupNodeTables( 
           getGroupNodeTables( 
            
            
             {
             {
@@ -6476,7 +6522,12 @@ async saveLinkTab() {
         this.handleEditFormula(0, row)
         this.handleEditFormula(0, row)
       }
       }
       
       
-    }
+    },
+    //同步进度按钮
+   SyncbtnProGress(){
+    this.syncListDialog=true
+
+   },
   },
   },
   watch: {
   watch: {
     "GLExcelFrom.search"(val) {
     "GLExcelFrom.search"(val) {
@@ -6793,3 +6844,139 @@ async saveLinkTab() {
 
 
 }
 }
 </style>
 </style>
+
+<style lang="scss" scoped>
+.noData{
+  text-align: center;
+
+
+}
+.circle-btn{
+  border-radius: 200px;
+}
+</style>
+
+<style scoped>
+.sync-queue-dialog {
+  .el-dialog__header {
+    padding: 18px 20px;
+    border-bottom: 1px solid #eee;
+  }
+  
+  .el-dialog__title {
+    font-size: 16px;
+    font-weight: 500;
+  }
+  
+  .el-dialog__body {
+    padding: 20px;
+    max-height: 400px;
+    overflow-y: auto;
+  }
+}
+
+.sync-list {
+  .sync-item {
+    padding: 15px 0;
+    border-bottom: 1px dashed #eee;
+    
+    &:last-child {
+      border-bottom: none;
+    }
+  }
+  
+  .sync-header {
+    display: flex;
+    justify-content: space-between;
+    margin-bottom: 10px;
+    font-size: 14px;
+    
+    .sync-party {
+      color: #333;
+      font-weight: 500;
+    }
+    
+    .sync-status {
+      color: #666;
+      font-size: 13px;
+    }
+  }
+  
+  .progress-container {
+    position: relative;
+    margin-bottom: 12px;
+    
+    .progress-text {
+      position: absolute;
+      right: 0;
+      top: -5px;
+      font-size: 12px;
+      color: #666;
+    }
+  }
+  
+  .sync-stats {
+    display: flex;
+    justify-content: space-between;
+    padding: 0 5px;
+    
+    .stat-item {
+      display: flex;
+      flex-direction: column;
+      align-items: center;
+      width: 45%;
+      padding: 8px 0;
+      border-radius: 4px;
+      background-color: #f5f7fa;
+      
+      .stat-label {
+        font-size: 12px;
+        color: #999;
+        margin-bottom: 5px;
+      }
+      
+      .stat-value {
+        font-size: 16px;
+        font-weight: 500;
+      }
+      
+      .synced {
+        color: #42b983; /* Element UI success color */
+      }
+      
+      .remaining {
+        color: #e6a23c; /* Element UI warning color */
+      }
+    }
+  }
+}
+
+.no-data {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-content: center;
+  padding: 30px 0;
+  
+  .no-data-icon {
+    font-size: 48px;
+    color: #c0c4cc;
+    margin-bottom: 15px;
+  }
+  
+  .no-data-text {
+    font-size: 14px;
+    color: #666;
+  }
+}
+
+.dialog-footer {
+  text-align: center;
+  padding: 15px 20px;
+  border-top: 1px solid #eee;
+  
+  .confirm-btn {
+    width: 160px;
+  }
+}
+</style>