xiaohaizhao 1 месяц назад
Родитель
Сommit
a08f24e435

+ 0 - 1
dist/assets/index-46768743.css

@@ -1 +0,0 @@
-.ant-select[data-v-c6bf086f]{width:100%}.flex-center[data-v-c6bf086f]{display:flex;align-items:center}.custom-tree-node[data-v-c6bf086f]{flex:1;display:flex;align-items:center;justify-content:space-between;font-size:14px;padding-right:8px;background:none}.redlitt[data-v-c6bf086f]:before{display:inline-block;margin-inline-end:4px;color:#ff4d4f;font-size:14px;font-family:SimSun,sans-serif;line-height:1;content:"*"}.customNotiveClass .ant-drawer-header{display:none!important}.customNotiveClass .ant-drawer-content{background:#F1F2F3!important}.customNotiveClass .ant-drawer-body{padding:0!important}.customNotiveClass .ant-form,.detail__panel .ant-card{width:100%}.ant-tree-treenode,.ant-tree-node-content-wrapper{width:100%!important}.timeClass .ant-form-item{margin-bottom:0!important}.detail__panel .ant-card-head{min-height:35px!important}

+ 0 - 1
dist/assets/index-62141d49.css

@@ -1 +0,0 @@
-.ant-select[data-v-1431a987]{width:100%}.flex-center[data-v-1431a987]{display:flex;align-items:center}.custom-tree-node[data-v-1431a987]{flex:1;display:flex;align-items:center;justify-content:space-between;font-size:14px;padding-right:8px;background:none}.customNotiveClass .ant-drawer-header{display:none!important}.customNotiveClass .ant-drawer-content{background:#F1F2F3!important}.customNotiveClass .ant-drawer-body{padding:0!important}.customNotiveClass .ant-form,.detail__panel .ant-card{width:100%}.ant-tree-treenode,.ant-tree-node-content-wrapper{width:100%!important}.timeClass .ant-form-item{margin-bottom:0!important}.detail__panel .ant-card-head{min-height:35px!important}

+ 0 - 1
dist/assets/index-67daf461.css

@@ -1 +0,0 @@
-.ant-select[data-v-89c8edc1]{width:100%}.flex-center[data-v-89c8edc1]{display:flex;align-items:center}.custom-tree-node[data-v-89c8edc1]{flex:1;display:flex;align-items:center;justify-content:space-between;font-size:14px;padding-right:8px;background:none}.customNotiveClass .ant-drawer-header{display:none!important}.customNotiveClass .ant-drawer-content{background:#F1F2F3!important}.customNotiveClass .ant-drawer-body{padding:0!important}.customNotiveClass .ant-form,.detail__panel .ant-card{width:100%}.ant-tree-treenode,.ant-tree-node-content-wrapper{width:100%!important}.timeClass .ant-form-item{margin-bottom:0!important}.detail__panel .ant-card-head{min-height:35px!important}#editor-content p img{width:100%}

+ 0 - 1
dist/assets/index-97e8a229.css

@@ -1 +0,0 @@
-.ant-select[data-v-cb7d7ad0]{width:100%}.flex-center[data-v-cb7d7ad0]{display:flex;align-items:center}.custom-tree-node[data-v-cb7d7ad0]{flex:1;display:flex;align-items:center;justify-content:space-between;font-size:14px;padding-right:8px;background:none}.customNotiveClass .ant-drawer-header{display:none!important}.customNotiveClass .ant-drawer-content{background:#F1F2F3!important}.customNotiveClass .ant-drawer-body{padding:0!important}.customNotiveClass .ant-form,.detail__panel .ant-card{width:100%}.ant-tree-treenode,.ant-tree-node-content-wrapper{width:100%!important}.timeClass .ant-form-item{margin-bottom:0!important}.detail__panel .ant-card-head{min-height:35px!important}.customDetailClass .ant-drawer-body{padding:0!important}.detail-title[data-v-a979cba8]{font-weight:700;font-size:18px;margin-bottom:15px}.detail-header[data-v-a979cba8],.content-item[data-v-a979cba8]{padding:16px 24px;border-bottom:12px solid #F6F6F6}.detail-header .content-item[data-v-a979cba8]:last-child{border:none}.detail-result[data-v-a979cba8]{background:#FAFAFA;padding:10px 5px}.detail-content .item-title[data-v-a979cba8]{padding-bottom:10px;border-bottom:1px solid #cccccc;margin-bottom:5px}.detail-content .option[data-v-a979cba8]{border-radius:6px;padding:8px 12px;border:1px #cccccc solid;margin-right:10px;display:flex;flex-direction:column;align-content:center;align-items:flex-start}.detail-rusule[data-v-a979cba8]{background:#FAFAFA;padding:3px 5px}.fontstyle[data-v-a979cba8]{color:#646cff;font-weight:700;font-size:16px}.light[data-v-a979cba8]{color:red;font-weight:700;font-size:16px}[data-v-a979cba8] .ant-empty{height:100%}[data-v-a979cba8] .ant-empty-image{height:calc(100% - 22px)}

+ 0 - 1
dist/assets/index-a5e3c2ea.css

@@ -1 +0,0 @@
-.ant-select[data-v-22710623]{width:100%}.flex-center[data-v-22710623]{display:flex;align-items:center}.custom-tree-node[data-v-22710623]{flex:1;display:flex;align-items:center;justify-content:space-between;font-size:14px;padding-right:8px;background:none}.customNotiveClass .ant-drawer-header{display:none!important}.customNotiveClass .ant-drawer-content{background:#F1F2F3!important}.customNotiveClass .ant-drawer-body{padding:0!important}.customNotiveClass .ant-form,.detail__panel .ant-card{width:100%}.ant-tree-treenode,.ant-tree-node-content-wrapper{width:100%!important}.timeClass .ant-form-item{margin-bottom:0!important}.detail__panel .ant-card-head{min-height:35px!important}

+ 0 - 1
dist/assets/index-d162c01e.css

@@ -1 +0,0 @@
-.ant-select[data-v-059aa458]{width:100%}.flex-center[data-v-059aa458]{display:flex;align-items:center}.custom-tree-node[data-v-059aa458]{flex:1;display:flex;align-items:center;justify-content:space-between;font-size:14px;padding-right:8px;background:none}.customNotiveClass .ant-drawer-header{display:none!important}.customNotiveClass .ant-drawer-content{background:#F1F2F3!important}.customNotiveClass .ant-drawer-body{padding:0!important}.customNotiveClass .ant-form,.detail__panel .ant-card{width:100%}.ant-tree-treenode,.ant-tree-node-content-wrapper{width:100%!important}.timeClass .ant-form-item{margin-bottom:0!important}.detail__panel .ant-card-head{min-height:35px!important}

+ 0 - 1
dist/assets/index-d990d282.css

@@ -1 +0,0 @@
-.ant-select[data-v-331e5ecd]{width:100%}.flex-center[data-v-331e5ecd]{display:flex;align-items:center}.custom-tree-node[data-v-331e5ecd]{flex:1;display:flex;align-items:center;justify-content:space-between;font-size:14px;padding-right:8px;background:none}.redlitt[data-v-331e5ecd]:before{display:inline-block;margin-inline-end:4px;color:#ff4d4f;font-size:14px;font-family:SimSun,sans-serif;line-height:1;content:"*"}.ant-select[data-v-ac7c7222]{width:100%}.flex-center[data-v-ac7c7222]{display:flex;align-items:center}.custom-tree-node[data-v-ac7c7222]{flex:1;display:flex;align-items:center;justify-content:space-between;font-size:14px;padding-right:8px;background:none}.redlitt[data-v-ac7c7222]:before{display:inline-block;margin-inline-end:4px;color:#ff4d4f;font-size:14px;font-family:SimSun,sans-serif;line-height:1;content:"*"}.customNotiveClass .ant-drawer-header{display:none!important}.customNotiveClass .ant-drawer-content{background:#F1F2F3!important}.customNotiveClass .ant-drawer-body{padding:0!important}.customNotiveClass .ant-form,.detail__panel .ant-card{width:100%}.ant-tree-treenode,.ant-tree-node-content-wrapper{width:100%!important}.timeClass .ant-form-item{margin-bottom:0!important}.detail__panel .ant-card-head{min-height:35px!important}

+ 0 - 1
dist/assets/index-f34225bb.css

@@ -1 +0,0 @@
-.ant-select[data-v-33f0716e]{width:100%}.flex-center[data-v-33f0716e]{display:flex;align-items:center}.custom-tree-node[data-v-33f0716e]{flex:1;display:flex;align-items:center;justify-content:space-between;font-size:14px;padding-right:8px;background:none}.redlitt[data-v-33f0716e]:before{display:inline-block;margin-inline-end:4px;color:#ff4d4f;font-size:14px;font-family:SimSun,sans-serif;line-height:1;content:"*"}.customNotiveClass .ant-drawer-header{display:none!important}.customNotiveClass .ant-drawer-content{background:#F1F2F3!important}.customNotiveClass .ant-drawer-body{padding:0!important}.customNotiveClass .ant-form,.detail__panel .ant-card{width:100%}.ant-tree-treenode,.ant-tree-node-content-wrapper{width:100%!important}.timeClass .ant-form-item{margin-bottom:0!important}.detail__panel .ant-card-head{min-height:35px!important}

+ 0 - 1
dist/assets/login-a8a6962c.css

@@ -1 +0,0 @@
-.login-form .ant-form-item .ant-form-item-label>label,.login-form .ant-checkbox-wrapper{color:#fff}.login-form .ant-tabs{color:#fff!important}.conatiner[data-v-0a7dda32]{background:url(./bg-b0a8fb70.jpg);background-size:cover}.title[data-v-0a7dda32]{height:33px;margin:0 0 30px;font-size:1.25rem;font-weight:600;animation:showup 3s forwards}.login-wrap[data-v-0a7dda32]{overflow:hidden}.login-wrap .top[data-v-0a7dda32]{width:100%}.login-wrap .top[data-v-0a7dda32]{height:calc(100vh - 70px);width:100%}.login-wrap svg[data-v-0a7dda32]{height:70%}.login-form[data-v-0a7dda32]{position:absolute;right:50%;top:50vh;width:500px;margin-right:-250px;margin-top:-244px;padding:30px;background-color:#0003;border-radius:5px;box-shadow:2px 8px 8px #0003;color:#fff;z-index:9999}.input-wrap[data-v-0a7dda32]{width:100%}.color-info[data-v-0a7dda32]{font-weight:300}.footer[data-v-0a7dda32]{height:70px;line-height:70px;font-size:14px;text-align:center;color:#fff!important}@keyframes typingH-0a7dda32{0%{height:0px}to{height:300px}}@media (max-width: 1600px){.login-form[data-v-0a7dda32]{transform:scale(.8)}.introduce[data-v-0a7dda32]{font-size:15px}}

+ 1 - 1
dist/index.html

@@ -5,7 +5,7 @@
     <link rel="icon" type="image/svg+xml" href="./vite.svg" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" />
     <title>营销宝</title>
-    <script type="module" crossorigin src="./assets/index-d1aca0fc.js"></script>
+    <script type="module" crossorigin src="./assets/index-9df2348e.js"></script>
     <link rel="modulepreload" crossorigin href="./assets/vue-8259307b.js">
     <link rel="modulepreload" crossorigin href="./assets/vue-router-55bfd43b.js">
     <link rel="stylesheet" href="./assets/index-b8e2bd64.css">

+ 3 - 2
src/components/layout/modules/aside.vue

@@ -67,8 +67,9 @@ const onsystemClick = (item) => {
   if (item.systemname == "E-订单") {
     let isDev = /^https?:\/\/\d{1,3}(\.\d{1,3}){3}(:\d+)?/.test(window.location.href),
       url = isDev ? 'http://61.164.207.46:8300' : 'https://crm.meida.com:16691';
-    url += `/yosweb/index.html#/connectionPage?accesstoken=${sessionStorage.getItem('token')}&username=${sessionStorage.getItem('accountno')}`
-    window.open(url, "_self")
+    const source = localStorage.getItem('login_source') || '2';
+    url += `/yosweb/index.html#/connectionPage?accesstoken=${sessionStorage.getItem('token')}&username=${sessionStorage.getItem('accountno')}&source=${source}`;
+    window.open(url, "_self");
   } else {
     const targetPath = item?.modules?.[0]?.apps?.[0]?.path || ''
     if (actSystem.value?.systemid === item.systemid && router.currentRoute.value.path === targetPath) return

+ 31 - 12
src/components/layout/modules/header.vue

@@ -117,6 +117,13 @@ const routeChange = (app) => {
   console.log(app)
   router.replace({ path: app.path, meta: { keepAlive: false } })
 }
+
+const isTestEnv = () => {
+  const host = window.location.hostname;
+  const port = window.location.port;
+  return host === '61.164.207.46' && (port === '8300' || port === '8900');
+};
+
 const loginOut = () => {
   Modal.confirm({
     title: '注意',
@@ -125,23 +132,35 @@ const loginOut = () => {
     okText: '确认',
     cancelText: '取消',
     onOk() {
-      let sourceUrl = sessionStorage.getItem('sourceUrl');
-      if (sourceUrl) {
-        if (sourceUrl.includes('crm.meida.com:16691')) {
-          window.location.href = sessionStorage.getItem('sourceUrl') + '/yosweb/index.html#/'
+      const source = localStorage.getItem('login_source') || '2'; // 默认源头2
+      let exitUrl;
+
+      if (isTestEnv()) {
+        // 测试环境:无论源头是1还是2,都跳转到系统2的首页
+        exitUrl = 'http://61.164.207.46:8300/yosweb/#/';
+      } else {
+        // 生产环境:根据源头跳转
+        if (source === '1') {
+          exitUrl = 'https://crm.meida.com/#/';
         } else {
-          window.location.href = sessionStorage.getItem('sourceUrl') + '/dmsClient/#/'
+          exitUrl = 'https://crm.meida.com:16691/yosweb/#/';
         }
-        sessionStorage.removeItem('sourceUrl')
-      } else {
-        router.push({ path: '/' })
       }
-      sessionStorage.removeItem('batchShipLastResult')
-      sessionStorage.removeItem('auth')
-      historyRoutes.value = []
+
+      // 清除当前系统的会话数据
+      sessionStorage.removeItem('batchShipLastResult');
+      sessionStorage.removeItem('auth');
+      sessionStorage.removeItem('token');
+      sessionStorage.removeItem('accountno');
+      localStorage.removeItem('login_source');
+      // 可选:清除其他自定义数据
+
+      // 跳转到退出地址(跨域跳转必须用 window.location.href)
+      window.location.href = exitUrl;
     }
   });
-}
+};
+
 const takeHtmlPhoto = () => {
   let node = document.querySelector('#panel'); // 获取需要转换的元素
   domtoimage.toPng(node)

+ 32 - 9
src/views/connectionPage/index.vue

@@ -49,16 +49,16 @@ const checkAccountList = (res) => {
           okText: '确定',
           onOk: () => {
             sessionStorage.setItem('openPasDialog', '1');
-            router.replace({ name: 'landing'});
+            router.replace({ name: 'landing' });
           }
         });
 
         setTimeout(() => {
           loading.value = false;
         }, 1000);
-        
+
       } else {
-        router.replace({ name: 'landing'});
+        router.replace({ name: 'landing' });
         setTimeout(() => {
           loading.value = false;
         }, 1000);
@@ -72,24 +72,44 @@ const checkAccountList = (res) => {
   }
 };
 
+const isTestEnv = () => {
+  const host = window.location.hostname;
+  const port = window.location.port;
+  return host === '61.164.207.46' && (port === '8300' || port === '8900');
+};
+
 const getRouteParams = () => {
   const cur = router.currentRoute.value || {};
   const query = cur.query || {};
   let accesstoken = query.accesstoken || '';
   let username = query.username || '';
+  let source = query.source || ''; // 新增
 
   if (!accesstoken || !username) {
     const hash = window.location.hash || '';
     const qIndex = hash.indexOf('?');
     if (qIndex !== -1) {
       const queryString = hash.slice(qIndex + 1);
-      // 规范化:将额外的 '?' 替换为 '&',以兼容错误格式
       const normalized = queryString.replace(/\?/g, '&');
       const params = new URLSearchParams(normalized);
       accesstoken = accesstoken || params.get('accesstoken') || '';
       username = username || params.get('username') || '';
+      source = source || params.get('source') || ''; // 新增
+    }
+  }
+
+  // 处理源头:若存在source则存储,否则根据环境设置默认值
+  if (source) {
+    // 测试环境不允许源头为1,强制转为2
+    if (isTestEnv() && source === '1') {
+      source = '2';
     }
+    localStorage.setItem('login_source', source);
+  } else {
+    // 无source时,如果是系统2直接登录,默认源头为2;系统3应重定向到系统2,此处暂不处理(可在路由守卫中补充)
+    // 建议系统3在无token且无source时跳转系统2登录页
   }
+
   return { accesstoken, username };
 };
 
@@ -128,7 +148,6 @@ const getSourceUrl = () => {
 
 onMounted(() => {
   ssoLogin()
-  sessionStorage.setItem('sourceUrl', getSourceUrl());
 });
 
 onBeforeUnmount(() => {
@@ -140,11 +159,13 @@ onBeforeUnmount(() => {
   position: relative;
   min-height: 100vh;
 }
+
 .page-content {
   width: 100%;
   height: 100%;
 }
-/* From Uiverse.io by Praashoo7 */ 
+
+/* From Uiverse.io by Praashoo7 */
 .loader {
   display: flex;
   flex-direction: column;
@@ -157,13 +178,15 @@ onBeforeUnmount(() => {
   letter-spacing: 0.2em;
   margin-bottom: 1em;
 }
-.loading-overlay{
-  height:100vh;
-  width:100vw;
+
+.loading-overlay {
+  height: 100vh;
+  width: 100vw;
   display: flex;
   align-items: center;
   justify-content: center;
 }
+
 .loading {
   display: flex;
   width: 5em;

+ 23 - 1
src/views/login/login.vue

@@ -168,26 +168,48 @@ export default defineComponent({
       formState.phonenumber = null,
         formState.password = null
     }
+
+    const isTestEnv = () => {
+      const host = window.location.hostname;
+      const port = window.location.port;
+      return host === '61.164.207.46' && (port === '8300' || port === '8900');
+    };
+
     const getRouteParams = () => {
       const cur = router.currentRoute.value || {};
       const query = cur.query || {};
       let accesstoken = query.accesstoken || '';
       let username = query.username || '';
+      let source = query.source || ''; // 新增
 
       if (!accesstoken || !username) {
         const hash = window.location.hash || '';
         const qIndex = hash.indexOf('?');
         if (qIndex !== -1) {
           const queryString = hash.slice(qIndex + 1);
-          // 规范化:将额外的 '?' 替换为 '&',以兼容错误格式
           const normalized = queryString.replace(/\?/g, '&');
           const params = new URLSearchParams(normalized);
           accesstoken = accesstoken || params.get('accesstoken') || '';
           username = username || params.get('username') || '';
+          source = source || params.get('source') || ''; // 新增
         }
       }
+
+      // 处理源头:若存在source则存储,否则根据环境设置默认值
+      if (source) {
+        // 测试环境不允许源头为1,强制转为2
+        if (isTestEnv() && source === '1') {
+          source = '2';
+        }
+        localStorage.setItem('login_source', source);
+      } else {
+        // 无source时,如果是系统2直接登录,默认源头为2;系统3应重定向到系统2,此处暂不处理(可在路由守卫中补充)
+        // 建议系统3在无token且无source时跳转系统2登录页
+      }
+
       return { accesstoken, username };
     };
+
     const ssoLogin = async () => {
       const { accesstoken, username } = getRouteParams();
       console.log(accesstoken, username)