yanghao 4 недель назад
Родитель
Сommit
da579faf5c

BIN
src/assets/images/done_white.png


BIN
src/assets/images/driveall.png


BIN
src/assets/images/drivebannere_white.png


BIN
src/assets/images/flwoBanner_white.png


BIN
src/assets/images/todo_white.png


+ 10 - 8
src/assets/style/main.css

@@ -6,6 +6,7 @@
   --bg-primary: #e8f1f8;
   --bg-primary: #e8f1f8;
   --bg-secondary: #f5f7fa;
   --bg-secondary: #f5f7fa;
   --bg-card: #ffffff;
   --bg-card: #ffffff;
+  --item-border-color:solid 1.5px #ccc2fc;
   --bg-card-2: 
   --bg-card-2: 
     radial-gradient(
     radial-gradient(
       circle at 18% 12%,
       circle at 18% 12%,
@@ -27,19 +28,16 @@
   --bg-table:#f5f7fa;
   --bg-table:#f5f7fa;
   --bg-table-head:#e9f7ff;
   --bg-table-head:#e9f7ff;
   --bg-tab:#e4e7ed;
   --bg-tab:#e4e7ed;
-  --bg-flow-card:#9ecdf2;
+  --bg-flow-card:#fafafe;
+  --portal-input-bg: #ccc2fc;
   --color-skeleton: #cfd2f4;
   --color-skeleton: #cfd2f4;
    --dropdown-menu:#fff;
    --dropdown-menu:#fff;
     --dropdown-menu-hover:#f5f7fa;
     --dropdown-menu-hover:#f5f7fa;
   --bg-flow-tab: transparent;
   --bg-flow-tab: transparent;
   --bg-flow-item: #5e98f8;
   --bg-flow-item: #5e98f8;
-  --bg-drive-tab:linear-gradient(
-    360deg,
-    rgb(9, 67, 225, .3) 0%,
-    rgba(10, 65, 227, 0.5) 10%,
-    rgb(10, 37, 119, .5) 40%,
-    rgba(0, 12, 51, .5) 80%
-  ) !important;
+  --bg-drive-tab: none !important;
+  --tab-drive-text: #3170f4;
+  --drive-bottom-color: #1159e9;
   --tab-text: #303133;
   --tab-text: #303133;
   --text-primary: #303133;
   --text-primary: #303133;
   --text-primary-down: #dcdfe6;
   --text-primary-down: #dcdfe6;
@@ -67,6 +65,9 @@
   --bg-primary: #0b0f2e; /* 对应您代码中的 rgb(11, 15, 46) */
   --bg-primary: #0b0f2e; /* 对应您代码中的 rgb(11, 15, 46) */
   --bg-secondary: #131928;
   --bg-secondary: #131928;
   --bg-card: #131928;
   --bg-card: #131928;
+  --portal-input-bg: #6458f1;
+  --drive-bottom-color: transparent;
+  --item-border-color:none;
   --bg-card-2: #131928;
   --bg-card-2: #131928;
    --bg-total-card: rgba(
    --bg-total-card: rgba(
     5,
     5,
@@ -104,6 +105,7 @@
     #001c71 40%,
     #001c71 40%,
     #000c33 80%
     #000c33 80%
   ) !important;
   ) !important;
+  --tab-drive-text: #fff;
   --bg-table:#091126;
   --bg-table:#091126;
   --bg-table-head:#091126;
   --bg-table-head:#091126;
   --color-skeleton:#0a193d;
   --color-skeleton:#0a193d;

+ 9 - 19
src/views/drive/index.vue

@@ -70,9 +70,9 @@ import * as dd from "dingtalk-jsapi";
 import { getMCSsoToken } from "@/api/user";
 import { getMCSsoToken } from "@/api/user";
 import { useUserStore } from "@/stores/useUserStore";
 import { useUserStore } from "@/stores/useUserStore";
 import { useThemeStore } from "@/stores/useThemeStore";
 import { useThemeStore } from "@/stores/useThemeStore";
-import { getAccessToken } from "@/utils/auth";
+
 import banner from "@/assets/images/drivebannere.jpg";
 import banner from "@/assets/images/drivebannere.jpg";
-import banner_white from "@/assets/images/drivebannere_white.jpg";
+import banner_white from "@/assets/images/drivebannere_white.png";
 
 
 import drivePc1 from "@/assets/images/dr1.png"; // 经营驾驶舱pc端背景图
 import drivePc1 from "@/assets/images/dr1.png"; // 经营驾驶舱pc端背景图
 import drivePc2 from "@/assets/images/生产pc.png"; // 生产驾驶舱pc端背景图
 import drivePc2 from "@/assets/images/生产pc.png"; // 生产驾驶舱pc端背景图
@@ -389,6 +389,7 @@ const openDrive = async (option: DriveCard) => {
 
 
 <style scoped>
 <style scoped>
 .drive-page {
 .drive-page {
+  --drive-bottom-color: #1159e9;
   --portal-text: #17345f;
   --portal-text: #17345f;
   --portal-text-muted: #5f6f83;
   --portal-text-muted: #5f6f83;
   --portal-text-soft: #7f8fa6;
   --portal-text-soft: #7f8fa6;
@@ -433,6 +434,7 @@ const openDrive = async (option: DriveCard) => {
 }
 }
 
 
 :global([data-theme="dark"] .drive-page) {
 :global([data-theme="dark"] .drive-page) {
+  --drive-bottom-color: transparent;
   --portal-text: #eaf1ff;
   --portal-text: #eaf1ff;
   --portal-text-muted: rgba(234, 241, 255, 0.95);
   --portal-text-muted: rgba(234, 241, 255, 0.95);
   --portal-text-soft: #8a9ab0;
   --portal-text-soft: #8a9ab0;
@@ -490,19 +492,6 @@ const openDrive = async (option: DriveCard) => {
     inset 0 1px 0 rgba(255, 255, 255, 0.04); */
     inset 0 1px 0 rgba(255, 255, 255, 0.04); */
 }
 }
 
 
-.drive-hero::before {
-  content: "";
-  position: absolute;
-  inset: 0;
-  background: linear-gradient(
-    90deg,
-    rgba(0, 6, 19, 0.8) 0%,
-    rgba(0, 6, 19, 0.24) 40%,
-    rgba(0, 6, 19, 0.08) 100%
-  );
-  z-index: 1;
-}
-
 .drive-hero__copy {
 .drive-hero__copy {
   position: absolute;
   position: absolute;
   z-index: 2;
   z-index: 2;
@@ -521,7 +510,7 @@ const openDrive = async (option: DriveCard) => {
 
 
 .drive-hero__title {
 .drive-hero__title {
   margin: 0;
   margin: 0;
-  color: #f5f8ff;
+  /* color: #f5f8ff; */
   font-size: clamp(20px, 5vw, 50px);
   font-size: clamp(20px, 5vw, 50px);
   font-weight: 900;
   font-weight: 900;
   line-height: 1.08;
   line-height: 1.08;
@@ -561,8 +550,8 @@ const openDrive = async (option: DriveCard) => {
   width: 90%;
   width: 90%;
   border: 1px solid rgba(79, 110, 208, 0.16);
   border: 1px solid rgba(79, 110, 208, 0.16);
   border-radius: 10px;
   border-radius: 10px;
-  background: var(--bg-tab);
-  box-shadow: 0 16px 34px rgba(0, 0, 0, 0.2);
+  /* background: var(--bg-tab); */
+  /* box-shadow: 0 16px 34px rgba(0, 0, 0, 0.2); */
   overflow: hidden;
   overflow: hidden;
 }
 }
 
 
@@ -585,13 +574,14 @@ const openDrive = async (option: DriveCard) => {
 }
 }
 
 
 .drive-tab--active {
 .drive-tab--active {
-  color: #fff !important;
+  color: var(--tab-drive-text) !important;
 
 
   background: var(--bg-drive-tab);
   background: var(--bg-drive-tab);
 
 
   padding-bottom: 22px;
   padding-bottom: 22px;
   padding-top: 22px;
   padding-top: 22px;
   border-radius: 0;
   border-radius: 0;
+  border-bottom: 3px solid var(--drive-bottom-color) !important;
 
 
   position: relative;
   position: relative;
 }
 }

+ 63 - 31
src/views/flow/index.vue

@@ -214,7 +214,7 @@ import { computed, ref, onMounted, onBeforeUnmount, nextTick } from "vue";
 import { CountTo } from "vue3-count-to";
 import { CountTo } from "vue3-count-to";
 import { Icon } from "@iconify/vue";
 import { Icon } from "@iconify/vue";
 import banner from "@/assets/images/flwoBanner.png";
 import banner from "@/assets/images/flwoBanner.png";
-import banner_white from "@/assets/images/flwoBanner_white.jpeg";
+import banner_white from "@/assets/images/flwoBanner_white.png";
 
 
 import todo from "../../assets//images/todo.png";
 import todo from "../../assets//images/todo.png";
 import todo_white from "../../assets//images/todo_white.png";
 import todo_white from "../../assets//images/todo_white.png";
@@ -465,22 +465,33 @@ const go = async (item) => {
               });
               });
             }
             }
           } else if (isDesktop) {
           } else if (isDesktop) {
-            // const loading = ElLoading.service({
-            //   lock: true,
-            //   text: "正在跳转,请稍候...",
-            //   background: "rgba(0, 0, 0, 0.7)",
-            // });
-
-            const newTab = window.open("", "_blank");
-            newTab.location.href =
-              item.indexUrl + "?ssoToken=" + res + "#/main";
-
-            setTimeout(() => {
-              newTab.location.href = item.flowUrl;
-              setTimeout(() => {
-                // loading.close();
-              }, 500);
-            }, 100);
+            // const newTab = window.open("", "_blank");
+            // newTab.location.href =
+            //   item.indexUrl + "?ssoToken=" + res + "#/main";
+
+            // setTimeout(() => {
+            //   newTab.location.href = item.flowUrl;
+            //   setTimeout(() => {
+            //     // loading.close();
+            //   }, 500);
+            // }, 100);
+            dd.biz.util.openLink({
+              url: item.indexUrl + "?ssoToken=" + res + "#/main",
+              onSuccess: () => {
+                setTimeout(() => {
+                  dd.biz.util.openLink({
+                    url: item.flowUrl,
+                    onSuccess: () => {},
+                    onFail: (err) => {
+                      ElMessage.error("跳转失败,请重试");
+                    },
+                  });
+                }, 2000);
+              },
+              onFail: (err) => {
+                ElMessage.error("打开链接失败,请重试");
+              },
+            });
           } else {
           } else {
             console.log("❌ 非钉钉环境");
             console.log("❌ 非钉钉环境");
           }
           }
@@ -525,15 +536,36 @@ const go = async (item) => {
             newTab.location.href = item.flowUrl;
             newTab.location.href = item.flowUrl;
           }, 3000);
           }, 3000);
         } else if (isDesktop) {
         } else if (isDesktop) {
-          const newTab = window.open("", "_blank");
-          newTab.location.href =
-            item.indexUrl +
-            "/global/sso/callback/00APEB9EEEA9B2E338B686B7ECFA8585808C.action?token=" +
-            getAccessToken();
-
-          setTimeout(function () {
-            newTab.location.href = item.flowUrl;
-          }, 3000);
+          // const newTab = window.open("", "_blank");
+          // newTab.location.href =
+          //   item.indexUrl +
+          //   "/global/sso/callback/00APEB9EEEA9B2E338B686B7ECFA8585808C.action?token=" +
+          //   getAccessToken();
+
+          // setTimeout(function () {
+          //   newTab.location.href = item.flowUrl;
+          // }, 3000);
+
+          dd.biz.util.openLink({
+            url:
+              item.indexUrl +
+              "/global/sso/callback/00APEB9EEEA9B2E338B686B7ECFA8585808C.action?token=" +
+              getAccessToken(),
+            onSuccess: () => {
+              setTimeout(() => {
+                dd.biz.util.openLink({
+                  url: item.flowUrl,
+                  onSuccess: () => {},
+                  onFail: (err) => {
+                    ElMessage.error("跳转失败,请重试");
+                  },
+                });
+              }, 3000);
+            },
+            onFail: (err) => {
+              ElMessage.error("打开链接失败,请重试");
+            },
+          });
         }
         }
       } else {
       } else {
         // 浏览器环境
         // 浏览器环境
@@ -988,7 +1020,8 @@ onBeforeUnmount(() => {
   font-size: clamp(18px, 2vw, 22px);
   font-size: clamp(18px, 2vw, 22px);
   line-height: 1.2;
   line-height: 1.2;
   margin: 16px 0 12px;
   margin: 16px 0 12px;
-  color: #fff;
+  /* color: #fff; */
+  padding-left: 20px;
   font-weight: bold;
   font-weight: bold;
 }
 }
 
 
@@ -997,6 +1030,7 @@ onBeforeUnmount(() => {
   /* color: #a7a0b1; */
   /* color: #a7a0b1; */
   max-width: 720px;
   max-width: 720px;
   line-height: 1.8;
   line-height: 1.8;
+  padding-left: 20px;
 }
 }
 
 
 .hero-accent {
 .hero-accent {
@@ -1033,7 +1067,7 @@ onBeforeUnmount(() => {
   height: 36px;
   height: 36px;
   border-radius: 20px;
   border-radius: 20px;
   background: transparent;
   background: transparent;
-  border: 1px solid #0a1c43;
+  border: 1px solid #062583;
   box-shadow: 0 8px 24px rgba(15, 23, 42, 0.04);
   box-shadow: 0 8px 24px rgba(15, 23, 42, 0.04);
   transition:
   transition:
     border-color 0.2s ease,
     border-color 0.2s ease,
@@ -1415,8 +1449,7 @@ onBeforeUnmount(() => {
   -webkit-backdrop-filter: blur(8px);
   -webkit-backdrop-filter: blur(8px);
 
 
   /* 移除原有的普通边框和阴影,由伪元素接管视觉效果 */
   /* 移除原有的普通边框和阴影,由伪元素接管视觉效果 */
-  border: none;
-  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3); /* 增加一点投影增强立体感 */
+  border: var(--item-border-color);
 
 
   transition: transform 0.3s ease;
   transition: transform 0.3s ease;
   cursor: pointer;
   cursor: pointer;
@@ -1498,7 +1531,6 @@ onBeforeUnmount(() => {
 .card-number {
 .card-number {
   font-size: 28px;
   font-size: 28px;
   font-weight: 600;
   font-weight: 600;
-  color: #ffffff; /* 数字改为白色 */
 }
 }
 
 
 .card-extra {
 .card-extra {