Przeglądaj źródła

630时间、消息优化

tangjunhao 2 miesięcy temu
rodzic
commit
379b779b92

+ 35 - 23
src/utils/message.js

@@ -1,46 +1,58 @@
 /*
-element-ui中的message在实际使用过程中很多时候会遇到,相同的message会在短时间内同时出现在页面上,这种情况下是没有必要的。比如一个错误信息提示被放在定时器中进行:定时调用某个接口,然后这个接口会返回一个message的话,在定时器时间设置很短的情况下,就会出现短时间内弹出很多相同的message。我们可以通过重写element-ui的message来解决这个问题。
+element-plus中的message在实际使用过程中很多时候会遇到,相同的message会在短时间内同时出现在页面上,这种情况下是没有必要的。比如一个错误信息提示被放在定时器中进行:定时调用某个接口,然后这个接口会返回一个message的话,在定时器时间设置很短的情况下,就会出现短时间内弹出很多相同的message。我们可以通过重写element-plus的message来解决这个问题。
 */
 
-
-const showMessage = Symbol('showMessage')
 /**
- * 封装element-ui message方法,只有在页面没有message或者没有相同message的情况下才弹出该message
+ * 封装element-plus message方法,只有在页面没有message或者没有相同message的情况下才弹出该message
  */
-class ElMessage {
+import { ElMessage } from 'element-plus';
+
+const showMessage = Symbol('showMessage');
+
+class Message {
   success(options, single = true) {
-    this[showMessage]('success', options, single)
+    this[showMessage]('success', options, single);
   }
   warning(options, single = true) {
-    this[showMessage]('warning', options, single)
+    this[showMessage]('warning', options, single);
   }
   info(options, single = true) {
-    this[showMessage]('info', options, single)
+    this[showMessage]('info', options, single);
   }
   error(options, single = true) {
-    this[showMessage]('error', options, single)
+    this[showMessage]('error', options, single);
   }
-  /* eslint-disable */
+
   [showMessage](type, options, single) {
     if (single) {
-      let canShow = true;//设置值控制显示当前message
-      let messageArr = document.getElementsByClassName('el-message');//获取页面所有已经存在的message
-      //遍历获取到的message DOM集合,如果页面已存在的message中有显示文本和当前message相同的情况,canShow设置为false
-      for (let i = 0; i < messageArr.length; i++) {
-        if (options == messageArr[i].getElementsByClassName('el-message__content')[0].innerHTML) {
+      const messageContent = typeof options === 'string' ? options : options?.message;
+      const existingMessages = document.querySelectorAll('.el-message__content');
+      let canShow = true;
+
+      existingMessages.forEach((msg) => {
+        if (msg.textContent === messageContent) {
           canShow = false;
         }
-      }
-      //如果页面不存在message或者canShow==true,则正常执行该message
-      if (messageArr.length == 0 || canShow) {
-        Message[type](options)
+      });
+
+      if (canShow) {
+        ElMessage[type](options);
       }
     } else {
-      Message[type](options)
+      ElMessage[type](options);
     }
   }
 }
 
-export {
-  ElMessage
-}
+// 导出实例
+export const message = new Message();
+
+
+
+// 使用方式
+
+// import { message } from '@/utils/message'; // 导入你的封装
+
+// message.success("操作成功"); // 默认防重复
+// message.error("错误信息", false); // 不防重复
+// message.warning({ message: "警告", duration: 3000 }); // 对象参数

+ 2 - 3
src/utils/request.ts

@@ -3,10 +3,9 @@ import store from '@/store'
 import { getToken,getUserId,removeToken,removeUserId } from '@/utils/token';
 import { DES3 } from '@/utils/3des';
 import router from '@/router/index'
-import { ElMessage } from '../utils/message.js'
+import { message } from '../utils/message.js'
 import { Caegw_ProUrl,Caegw_LogUrl } from '@/settings' ;// 引入settings.js
 
-let Message = new ElMessage()
 
 const requestList = []; // 请求列表
 const CancelToken = axios.CancelToken;
@@ -169,7 +168,7 @@ const uploadFile = (params, channelNo = 'service', callback1) => {
       resolve(res)
     }).catch(err => {
       if (err != 'cancel') {
-        Message.error(err.returnMsg)
+        message.error(err.returnMsg)
       }
       reject(err)
     })

+ 6 - 6
src/views/model/index.vue

@@ -422,7 +422,7 @@ const getresultlist = () => {
       activities.value = res.rows.map((item) => ({
         jobId: item.jobId,
         content: "结果"+item.ser,
-        timestamp: item.startTime
+        timestamp: item.startTime.split(' +')[0]
       }))
     })
     .catch((err) => {
@@ -583,11 +583,11 @@ onMounted(() => {
   }, 1500);
 })
 
-onBeforeUnmount(() => {
-  websock?.close()
-  clearTimeout(times.value.timeoutObj)
-  clearTimeout(times.value.serverTimeoutObj)
-})
+// onBeforeUnmount(() => {
+//   websock?.close()
+//   clearTimeout(times.value.timeoutObj)
+//   clearTimeout(times.value.serverTimeoutObj)
+// })
 
 
 </script>

+ 7 - 5
src/views/model/vueflow/pointonlynode.vue

@@ -24,25 +24,27 @@ const props = defineProps({
 .icons img{
     width: 6px;
     height: 6px;
-    top: -8px;
+    top: -7px;
     position: relative;
 }
 .icons span{
   display: block;
   font-size: 8px;
+  top: -8px;
+  position: relative;
 }
 
 .point-only-node {
-  width: 11px;
-  height: 11px;
+  width: 12px;
+  height: 12px;
   /* background-color: #555; */
   border-radius: 50%;
   position: relative;
 }
 
 .vue-flow__handle {
-  width: 4px;
-  height: 4px;
+  width: 3px;
+  height: 3px;
   min-width: 0 !important;
   min-height: 0 !important;
   background-color: transparent;

+ 6 - 2
src/views/project/index.vue

@@ -53,7 +53,7 @@
           <el-table-column type="index" :label="$t('project.number')" width="100"></el-table-column>
           <el-table-column prop="name" :label="$t('project.name')" ></el-table-column>
           <el-table-column prop="dirsize" :label="$t('project.dirsize')" ></el-table-column>
-          <el-table-column prop="updateTime" :label="$t('project.updateTime')" min-width="150"></el-table-column>
+          <el-table-column prop="updateTime" :label="$t('project.updateTime')" min-width="100"></el-table-column>
           <el-table-column prop="uname" :label="$t('project.uname')" ></el-table-column>
           <el-table-column prop="keywords" :label="$t('project.keywords')" ></el-table-column>
           <el-table-column prop="remark" :label="$t('project.description')" ></el-table-column>
@@ -173,9 +173,13 @@ const getprojectlist = () => {
         .then((res) => {
             // console.log(res);
             gd.value.total = res.total;
-            projectlists.value=res.rows;
+            projectlists.value=res.rows.map((item) =>({
+              ...item,
+              updateTime: item.updateTime.split(' +')[0],
+            }))
         })
         .catch((err) => {
+            console.error(err);
             ElMessage.error(err.returnMsg)
         })
 };