applications/drone-command/env/.env.development
@@ -1,13 +1,3 @@ ### # @Author : yuan # @Date : 2026-01-07 14:58:30 # @LastEditors : yuan # @LastEditTime : 2026-01-30 09:29:25 # @FilePath : \applications\drone-command\env\.env.development # @Description : # Copyright 2026 OBKoro1, All Rights Reserved. # 2026-01-07 14:58:30 ### NODE_ENV = 'development' #开发环境配置 applications/drone-command/env/.env.production
applications/drone-command/src/axios.js
@@ -151,16 +151,16 @@ removeRefreshToken(); const env = import.meta.env.VITE_APP_ENV; // 重定向到登录页 // store.dispatch('FedLogOut').then(() => router.push({ // path: '/login' // })); env === 'development' ? store.dispatch('FedLogOut').then(() => router.push({ path: '/login', }) ) : store.dispatch('FedLogOut').then(() => window.location.replace(`${adminUrl}#/login`)); store.dispatch('FedLogOut').then(() => router.push({ path: '/login' })); // env === 'development' // ? store.dispatch('FedLogOut').then(() => // router.push({ // path: '/login', // }) // ) // : store.dispatch('FedLogOut').then(() => window.location.replace(`${adminUrl}#/login`)); return Promise.reject(new Error(message)); }); } applications/drone-command/src/page/index/top/index.vue
@@ -95,7 +95,8 @@ this.$store.dispatch('LogOut').then(() => { const env = import.meta.env.VITE_APP_ENV const adminUrl = import.meta.env.VITE_APP_DASHBOARD_URL env === 'development' ? this.$router.push({ path: '/login' }) : window.location.replace(`${adminUrl}#/login`) this.$router.push({ path: '/login' }) // env === 'development' ? this.$router.push({ path: '/login' }) : window.location.replace(`${adminUrl}#/login`) }) }) }, applications/drone-command/src/permission.js
@@ -121,7 +121,8 @@ if (meta.isAuth === false) { next() } else { env === 'development' ? next('/login') : window.location.replace(`${adminUrl}#/login`) next('/login') // env === 'development' ? next('/login') : window.location.replace(`${adminUrl}#/login`) } } }) applications/drone-command/src/store/modules/user.js
@@ -274,9 +274,10 @@ dispatch('LogOut').then(()=>{ const env = import.meta.env.VITE_APP_ENV const adminUrl = import.meta.env.VITE_APP_DASHBOARD_URL env === 'development' ? window.location.href = "/drone-command/login" : window.location.replace(`${adminUrl}#/login`) window.location.href = "/drone-command/login" // env === 'development' // ? window.location.href = "/drone-command/login" // : window.location.replace(`${adminUrl}#/login`) }) } return new Promise(resolve => { applications/task-work-order/src/axios.js
@@ -153,16 +153,16 @@ removeRefreshToken() const env = import.meta.env.VITE_APP_ENV // 重定向到登录页 // store.dispatch('FedLogOut').then(() => router.push({ // path: '/login' // })); env === 'development' ? store.dispatch('FedLogOut').then(() => router.push({ path: '/login', }) ) : store.dispatch('FedLogOut').then(() => window.location.replace(`${adminUrl}#/login`)) store.dispatch('FedLogOut').then(() => router.push({ path: '/login' })); // env === 'development' // ? store.dispatch('FedLogOut').then(() => // router.push({ // path: '/login', // }) // ) // : store.dispatch('FedLogOut').then(() => window.location.replace(`${adminUrl}#/login`)) return Promise.reject(new Error(message)) }) } applications/task-work-order/src/page/index/top/index.vue
@@ -89,7 +89,8 @@ this.$store.dispatch('LogOut').then(() => { const env = import.meta.env.VITE_APP_ENV const adminUrl = import.meta.env.VITE_APP_DASHBOARD_URL env === 'development' ? this.$router.push({ path: '/login' }):window.location.replace(`${adminUrl}#/login`) this.$router.push({ path: '/login' }) // env === 'development' ? this.$router.push({ path: '/login' }):window.location.replace(`${adminUrl}#/login`) }) }) }, applications/task-work-order/src/permission.js
@@ -120,7 +120,8 @@ if (meta.isAuth === false) { next() } else { env === 'development' ? next('/login') : window.location.replace(`${adminUrl}#/login`) next('/login') // env === 'development' ? next('/login') : window.location.replace(`${adminUrl}#/login`) } } }) applications/task-work-order/src/store/modules/user.js
@@ -262,9 +262,10 @@ dispatch('LogOut').then(() => { const env = import.meta.env.VITE_APP_ENV const adminUrl = import.meta.env.VITE_APP_DASHBOARD_URL env === 'development' ? (window.location.href = '/task-work-order/login') : window.location.replace(`${adminUrl}#/login`) (window.location.href = '/task-work-order/login') // env === 'development' // ? (window.location.href = '/task-work-order/login') // : window.location.replace(`${adminUrl}#/login`) }) } return new Promise(resolve => { applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue
@@ -10,22 +10,42 @@ > <div class="content" style="display: flex"> <div class="processBox" v-if="dialogMode !== 'add' && processList.length"> <el-timeline class="gd-timeline"> <el-timeline-item v-for="(activity, index) in processList" :key="index" :icon="Check" :type="index === processList.length - 1 ? 'success' : 'info'" :color="activity.color" :hollow="activity.hollow" :timestamp="activity.createTime" > <div class="item-content"> <div>{{ activity.operator }}</div> <div class="flowName">{{ activity.flowName }}</div> <div class="timeline-wrapper"> <div v-for="(stage, stageIndex) in processList" :key="stageIndex" class="stage-group"> <!-- 大节点 Stage Node --> <div class="stage-node"> <div class="stage-icon" :class="{ reached: stage.reached }"> <el-icon v-if="stage.reached"><Check /></el-icon> <span v-else class="stage-index">{{ stageIndex + 1 }}</span> </div> </el-timeline-item> </el-timeline> <span class="stage-name">{{ stage.stageName }}</span> </div> <!-- 小节点 Child Nodes --> <div class="child-list" v-if="stage.child && stage.child.length"> <template v-for="(child, childIndex) in stage.child.filter(c => c.reached)"> <div v-if="child.reached" :key="childIndex" class="child-node"> <div class="child-left"> <span class="child-status">{{ child.statusName }}</span> </div> <div class="child-dot"></div> <div class="child-right"> <span class="child-operator">{{ child.operator || '-' }}</span> <span class="child-time">{{ child.createTime || '-' }}</span> </div> </div> </template> </div> <!-- 连接线 --> <div class="connector-line" v-if="stageIndex < processList.length - 1" :class="{ reached: stage.reached }" ></div> </div> </div> </div> <div class="leftBox"> <div v-if="dialogReadonly"> @@ -394,7 +414,7 @@ row: formData.value, type: gdStatusObj[gdStatus.value].operationType, formLabel: gdStatusObj[gdStatus.value].reason, title: gdStatusObj[gdStatus.value]?.title || '新增' title: gdStatusObj[gdStatus.value]?.title || '新增', }) }) } @@ -687,18 +707,148 @@ } .processBox { padding: 24px 0; padding: 24px 16px; width: 312px; border: 1px solid #e4e4e4; border-radius: 8px; overflow: auto; background: #fff; .item-content { .timeline-wrapper { padding-left: 100px; position: relative; .flowName { width: 80px; } .stage-group { position: relative; } // 大节点 - Stage Node .stage-node { display: flex; align-items: center; gap: 12px; margin-bottom: 8px; .stage-icon { width: 28px; height: 28px; border-radius: 50%; background: #e0e0e0; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 14px; font-weight: 600; flex-shrink: 0; position: relative; z-index: 2; &.reached { background: #1a1a2e; } .el-icon { font-size: 16px; } .stage-index { font-size: 12px; } } .stage-name { width: 70px; text-align: right; position: absolute; left: -120px; top: 0px; left: -80px; font-family: Roboto, Roboto; font-weight: bold; font-size: 16px; color: rgba(0,0,0,0.85); } } // 小节点 - Child Nodes .child-list { position: relative; left: -52px; } .child-node { display: flex; align-items: flex-start; position: relative; &:last-child::before { bottom: 50%; } .child-left { width: 100px; flex-shrink: 0; text-align: right; padding-right: 20px; font-family: Source Han Sans CN, Source Han Sans CN; font-weight: 400; font-size: 14px; color: rgba(0,0,0,0.85); .child-status { white-space: nowrap; } } .child-dot { width: 12px; height: 12px; border-radius: 50%; background: #1a1a2e; flex-shrink: 0; position: relative; z-index: 2; margin-top: 4px; } .child-right { flex: 1; padding-left: 12px; display: flex; flex-direction: column; gap: 2px; .child-operator { font-family: Source Han Sans CN, Source Han Sans CN; font-weight: 400; font-size: 14px; color: rgba(0,0,0,0.85); } .child-time { white-space: nowrap; font-family: Source Han Sans CN, Source Han Sans CN; font-weight: 400; font-size: 14px; color: rgba(0,0,0,0.45); } } } // 连接线 .connector-line { position: absolute; left: 13px; width: 2px; height: 100%; background: #e0e0e0; top: 28px; z-index: 1; &.reached { background: #1a1a2e; } } }