差异化打包调整&哈尔滨登录页

This commit is contained in:
fan 2020-03-30 13:07:11 +08:00
parent a8d9aa001c
commit ab4928d924
64 changed files with 2353 additions and 1033 deletions

View File

@ -53,6 +53,7 @@
"compression-webpack-plugin": "^3.0.0",
"connect": "3.6.6",
"copy-webpack-plugin": "^4.5.2",
"eslint": "5.15.3",
"eslint-plugin-vue": "5.2.2",
"file-loader": "^3.0.1",

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
import StompClient from '@/utils/sock';
import { displayTopic } from '@/utils/stomp';
import { getToken } from '@/utils/auth';
import router from '@/router';
import router from '@/router/index_APP_TARGET';
// 定于仿真socket接口
export function Jlmap3dSubscribe(worker,routegroup) {

View File

@ -311,7 +311,7 @@ import { OperationEvent } from '@/scripts/ConstDic';
// import { now } from '@/utils/date';
import ConfirmTip from './childDialog/confirmTip';
import { sendCommand } from '@/api/jmap/training';
import router from '@/router';
import router from '@/router/index_APP_TARGET';
export default {
name: 'SectionCmdSpeed',

View File

@ -311,7 +311,7 @@ import { OperationEvent } from '@/scripts/ConstDic';
// import { now } from '@/utils/date';
import ConfirmTip from './childDialog/confirmTip';
import { sendCommand } from '@/api/jmap/training';
import router from '@/router';
import router from '@/router/index_APP_TARGET';
export default {
name: 'SectionCmdSpeed',

View File

@ -20,7 +20,7 @@
<script>
import userInfo from './userInfo';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
export default {
name: 'Logout',

View File

@ -10,7 +10,7 @@ import App from './App';
import VueI18n from 'vue-i18n';
import store from './store';
import router from './router';
import router from './router/index_APP_TARGET';
import CancelMouseState from '@/mixin/CancelMouseState.js';
Vue.mixin(CancelMouseState);

View File

@ -1,8 +1,8 @@
import Vue from 'vue';
import store from '@/store';
import router from './router';
import router from './router/index_APP_TARGET';
import NProgress from 'nprogress';
import { admin} from './router';
import { admin} from './router/index_APP_TARGET';
import { getToken, removeToken} from '@/utils/auth';
import { LoginParams } from '@/utils/login';
import { getSessionStorage } from '@/utils/auth';

View File

@ -151,102 +151,6 @@ export const userPlan = '015'; // 计划系统
export const userTrainingPlatform = '016'; // 实训平台
// const isDev = process.env.NODE_ENV === 'development';
export const UrlConfig = {
display: '/display',
displayNew: '/displayNew',
scriptDisplay: '/scriptDisplay',
scriptDisplayNew:'/scriptDisplayNew',
examRuleDraft: '/examRule/draft',
examRuleManage: '/examRule/manage',
lesson: {
prefix: '/lesson',
record: '/system/record/training',
manage: '/lesson/manage/training'
},
design: {
prefix: '/design/home',
mapDraw: '/design/map/draw',
lessonEdit: '/design/lesson/edit',
lessonHome: '/design/lesson/home',
lessonManage: '/design/lesson/manage',
taskManage: '/design/lesson/taskManage',
trainingRule: '/design/lesson/trainingRule',
trainingRuleDetail: '/design/lesson/trainingRule/detail',
trainingManage: '/design/lesson/trainingManage',
lessonTraining: '/design/lesson/training',
trainingRecord: '/design/lesson/training',
runPlan: '/design/runPlan/detail',
scriptHome: '/design/script/home',
display: '/design/display',
mapPreview: '/design/mapPreview',
mapPreviewNew: '/design/mapPreviewNew',
ibpHome: '/design/ibp/home'
},
designUser: {
prefix: '/design/userlist/home',
scriptHome: '/design/userlist/script/home',
mapDraw: '/design/userlist/map/draw',
lessonHome: '/design/userlist/lesson/home',
runPlan: '/design/userlist/runPlan/detail'
},
newDesignuser: {
prefix: '/design/usermap/home',
scriptHome: '/design/usermap/script/home',
mapDraw: '/design/usermap/map/draw',
lessonHome: '/design/usermap/lesson/home',
runPlan: '/design/usermap/runPlan/detail'
},
replay: {
prefix: '/replay'
},
publish: {
prefix: '/publish',
map: '/publish/map',
runPlanEveryDay: '/publish/runPlan/everyDay',
runPlanTemplate: '/publish/runPlan/template',
runPlanCommon: '/publish/runPlan/common',
runPlanView: '/publish/runPlan/view'
},
orderauthor: {
prefix: '/orderauthor',
commodityManage: '/orderauthor/commodity/manage',
commodityDraft: '/orderauthor/commodity/draft',
orderManage: '/orderauthor/order/manage',
orderDraft: '/orderauthor/order/draft',
authorMange: '/orderauthor/author/manage',
authorDetail: '/orderauthor/author/detail',
transferDetail: '/orderauthor/transfer/detail',
createPackage: '/orderauthor/transfer/create'
},
script: {
prefix: '/script',
detail: '/script/detail',
display: '/script/display'
},
ibp: {
prefix: 'ibp',
draft: '/ibp/draft',
edit: 'ibp/edit'
},
trainingPlatform: {
trainingPlatform: '/trainingPlatform',
prodDetail: '/trainingPlatform/detail',
teachDetail: '/trainingPlatform/teach',
teachHome: '/trainingPlatform/teachHome',
examDetail: '/trainingPlatform/exam',
examHome: '/trainingPlatform/examHome',
examRuleManage: '/trainingPlatform/examRule/manage',
examRuleDraft: '/trainingPlatform/examRule/Draft',
course: '/trainingPlatform/course',
practical: '/trainingPlatform/practical',
permission: '/trainingPlatform/permission',
permissionDetails: '/trainingPlatform/permission/detail',
draft: '/trainingPlatform/draft',
pay: '/trainingPlatform/pay',
runPlan: '/trainingPlatform/runPlan/manage'
}
};
/**
* constantRoutes
* a base page that does not have permission requirements

890
src/router/index_HYD.js Normal file
View File

@ -0,0 +1,890 @@
// import Vue from 'vue';
import Router from 'vue-router';
// import VueRouter from 'vue-router';
// Vue.use(Router);
/* Layout */
const Layout = () => import('@/layout');
const Login = () => import('@/views/login/hydLogin');
const Jlmap3dedit = () => import('@/views/jlmap3d/edit/jlmap3dedit');
const Jlmap3d = () => import('@/views/jlmap3d/drive/jl3ddrive');
const Jlmap3dSandbox = () => import('@/views/jlmap3d/simulation/jl3dsimulation');
const Jlmap3dModel = () => import('@/views/jlmap3d/device/jl3ddevice');
const Jlmap3dTrain = () => import('@/views/jlmap3d/devicetrain/jl3ddevicetrain');
const Display = () => import('@/views/display/index');
const DisplayNew = () => import('@/views/newMap/displayNew/index');
const DesignDisplay = () => import('@/views/display/designIndex');
const TrainRoom = () => import('@/views/trainRoom/index');
const JointTraining = () => import('@/views/jointTraining/index');
const JointTrainingNew = () => import('@/views/newMap/jointTrainingNew/index');
const Error401 = () => import('@/views/error-page/401');
const Errpr404 = () => import('@/views/error-page/404');
const Dictionary = () => import('@/views/system/dictionary/index');
const DictionaryDetail = () => import('@/views/system/dictionaryDetail/index');
const UserControl = () => import('@/views/system/userControl/index');
const UserTraining = () => import('@/views/system/userTraining/index');
const UserExam = () => import('@/views/system/userExam/index');
const UserSimulation = () => import('@/views/system/userSimulation/index');
const ExistingSimulation = () => import('@/views/system/existingSimulation/index');
const CacheControl = () => import('@/views/system/cacheControl/index');
const SystemGenerate = () => import('@/views/system/systemGenerate/index');
const News = () => import('@/views/system/news/index');
const CommandDictionary = () => import('@/views/system/commandDictionary/index');
const CommandDictionaryDetail = () => import('@/views/system/commandDictionary/edit');
const configLine = () => import('@/views/system/configLine/index');
const Mapedit = () => import('@/views/mapdraft/index');
const IscsSystem = () => import('@/views/iscs/iscsSystem/index');
const IscsDraw = () => import('@/views/iscs/iscsDraw/index');
const IscsDesign = () => import('@/views/iscs/iscsDesign/index');
const IscsConfig = () => import('@/views/iscs/iscsSystem/config/index');
const NewMapDraft = () => import('@/views/newMap/newMapdraft/index');
const NewDesignPlatformUser = () => import('@/views/newMap/newDesignUser/index');
const Taskmanage = () => import('@/views/lesson/taskmanage/list');
const TrainingRuleList = () => import('@/views/lesson/trainingRule/list');
const TrainingRuleEdit = () => import('@/views/lesson/trainingRule/detail/index');
const Trainingmanage = () => import('@/views/lesson/trainingmanage/index');
const LessonEdit = () => import('@/views/lesson/lessoncategory/index');
const LessonHome = () => import('@/views/lesson/home');
const LessonDetail = () => import('@/views/lesson/details');
const ScriptmanageHome = () => import('@/views/scriptManage/home');
const ScriptDisplay = () => import('@/views/scriptManage/display/index');
const ScriptDisplayNew = () => import('@/views/scriptManage/display/indexNew');
const IbpHome = () => import('@/views/ibp/home');
const IbpDraw = () => import('@/views/ibp/ibpDraw/index');
const TeachDetail = () => import('@/views/teach/detail/index');
const TeachHome = () => import('@/views/teach/index');
const Pay = () => import('@/views/components/pay/index');
const ExamHome = () => import('@/views/exam/index');
const ExamResult = () => import('@/views/exam/result');
const ExamDetail = () => import('@/views/exam/detail/examDetail');
const ExamCourseDetail = () => import('@/views/exam/detail/courseDetail');
const DemonstrationDetail = () => import('@/views/demonstration/detail/index');
const PlanMonitorEditTool = () => import('@/views/planMonitor/editTool/index');
const PlanMonitorEditUserTool = () => import('@/views/planMonitor/editTool/userindex');
const PlanMonitorDetail = () => import('@/views/planMonitor/detail');
const DesignPlatformHome = () => import('@/views/designPlatform/home');
const DesignPlatform = () => import('@/views/designPlatform/index');
const MapPreview = () => import('@/views/designPlatform/mapPreview');
const MapPreviewNew = () => import('@/views/designPlatform/mapPreviewNew');
const DesignPlatformUser = () => import('@/views/designUser/index');
const Package = () => import('@/views/package/index');
const PublishMap = () => import('@/views/publish/publishMap/index');
const PublishMapDetail = () => import('@/views/publish/publishMap/list'); // 发布历史
const PublishLesson = () => import('@/views/publish/publishLesson/index');
const RunPlanTemplate = () => import('@/views/publish/runPlanTemplate/index');
const RunPlanCommon = () => import('@/views/publish/runPlanCommon/index');
const RunPlanCommonDraft = () => import('@/views/publish/runPlanCommon/draft');
const RunPlanEveryDay = () => import('@/views/publish/runPlanEveryDay/index');
const RunplanView = () => import('@/views/publish/runPlanEveryDay/runPlanView');
const PublishExamRule = () => import('@/views/publish/examRule/index');
const PublishExamRuleDraft = () => import('@/views/publish/examRule/draft/index');
const TrainingPlatform = () => import('@/views/trainingPlatform/index');
const Commodity = () => import('@/views/orderauthor/commodity/index');
const OrderList = () => import('@/views/orderauthor/order/list');
const OrderDraft = () => import('@/views/orderauthor/order/draft');
const Author = () => import('@/views/orderauthor/author/index');
const Permission = () => import('@/views/orderauthor/permission/index');
const PermissionDetail = () => import('@/views/orderauthor/permission/detail');
const PermissionCreate = () => import('@/views/orderauthor/permission/create/index');
const UserRules = () => import('@/views/orderauthor/rules/index');
const UserRulesDetail = () => import('@/views/orderauthor/rules/detail');
const LessonApproval = () => import('@/views/approval/lesson/index');
const ScriptApproval = () => import('@/views/approval/script/index');
const RunPlanApproval = () => import('@/views/approval/runPlan/index');
const DeviceManage = () => import('@/views/system/deviceManage/index');
const MapSort = () => import('@/views/publish/publishMap/mapSort');
import { loginInfo } from '@/scripts/ConstDic';
import { getSessionStorage } from '@/utils/auth';
/**
* Note: sub-menu only appear when route children.length >= 1
* Detail see: https://panjiachen.github.io/vue-element-admin-site/guide/essentials/router-and-nav.html
*
* hidden: true if set true, item will not show in the sidebar(default is false)
* alwaysShow: true if set true, will always show the root menu
* if not set alwaysShow, when item has more than one children route,
* it will becomes nested mode, otherwise not show the root menu
* redirect: noRedirect if set noRedirect will no redirect in the breadcrumb
* name:'router-name' the name is used by <keep-alive> (must set!!!)
* meta : {
roles: ['admin','editor'] control the page roles (you can set multiple roles)
title: 'title' the name show in sidebar and breadcrumb (recommend set)
icon: 'svg-name' the icon show in the sidebar
breadcrumb: false if set false, the item will hidden in breadcrumb(default is true)
activeMenu: '/example/list' if set path, the sidebar will highlight the path you set
}
*/
export const user = '01'; // 普通用户
export const mapCreater = '02'; // 地图创建权限
export const lessonCreater = '03'; // 课程创建权限
export const admin = '04'; // 管理员
export const superAdmin = '05'; // 超级管理员
export const userExam = '011'; // 考试系统
export const userLesson = '012'; // 教学系统
export const userSimulation = '013'; // 仿真系统
export const userScreen = '014'; // 大屏系统
export const userPlan = '015'; // 计划系统
export const userTrainingPlatform = '016'; // 实训平台
// const isDev = process.env.NODE_ENV === 'development';
/**
* constantRoutes
* a base page that does not have permission requirements
* all roles can be accessed
*/
export const constantRoutes = [
// 实训平台登录
{
path: '/login',
component: Login,
hidden: true
},
// 设计平台登录
{
path: '/design/login',
component: Login,
hidden: true
},
{
path: '/design/jlmap3d/edit',
component: Jlmap3dedit,
hidden: true
},
{
path: '/jlmap3d/sandbox',
component: Jlmap3dSandbox,
hidden: true
},
{
path: '/jlmap3d/devicemodel',
component: Jlmap3dModel,
hidden: true
},
{
path: '/jlmap3d/devicetrain',
component: Jlmap3dTrain,
hidden: true
},
{
path: '/401',
component: Error401,
hidden: true
},
{
path: '/404',
component: Errpr404,
hidden: true
},
{ path: '*', redirect: '/404', hidden: true }
];
export const asyncRouter = [
{ // 公共地图
path: '/design',
component: Layout,
redirect: '/design/home',
meta: {
roles: [admin, user]
},
children: [
{
path: '',
redirect: '/design/home',
component: DesignPlatform,
meta: {
i18n: 'router.designhomePage',
icon: 'design'
},
children: [
{
path: 'home',
component: DesignPlatformHome,
meta: {
}
},
{ // 运行图设计
path: 'runPlan/detail/:mapId',
component: PlanMonitorDetail,
hidden: true
},
{ // 剧本
path: 'script/home/:mapId',
component: ScriptmanageHome,
meta: {
i18n: 'router.scriptManage'
},
hidden: true
},
{ // 课程列表
path: 'lesson/home/:mapId',
component: LessonHome,
hidden: true
},
{ // 操作定义
path: 'lesson/trainingRule',
component: TrainingRuleList,
hidden: true
},
{ // 操作定义步骤
path: 'lesson/trainingRule/detail',
hidden: true,
component: TrainingRuleEdit
},
{ // 任务管理
path: 'lesson/taskManage',
component: Taskmanage,
hidden: true
},
{ // 实训管理
path: 'lesson/trainingManage',
component: Trainingmanage,
hidden: true
},
{ // 创建课程
path: 'lesson/edit/:type',
component: LessonEdit,
hidden: true
},
{ // 课程详情
path: 'lesson/details',
component: LessonDetail,
hidden: true,
children: [
{
path: 'edit/:type',
component: LessonEdit,
hidden: true
}
]
},
{ // 地图预览
path: 'mapPreview/:mapId',
component: MapPreview,
hidden: true
},
{ // 新版地图预览
path: 'mapPreviewNew/:mapId',
component: MapPreviewNew,
hidden: true
},
{ // ibp列表
path: 'ibp/home/:mapId',
component: IbpHome,
hidden: true
},
{
path: 'ibp/edit',
component: IbpDraw,
hidden: true
}
]
}
]
},
{ // 个人地图
path: '/design/userlist',
redirect: '/design/userlist/home',
component: Layout,
meta: {
roles: [admin, user]
},
children: [
{
path: '',
redirect: '/design/userlist/home',
component: DesignPlatformUser,
meta: {
i18n: 'router.designUserPage',
icon: 'design'
},
children: [
{
path: 'home',
component: DesignPlatformHome,
meta: {
}
},
{ // 地图绘制
path: 'map/draw/:mapId/:view',
component: Mapedit,
hidden: true
},
{ // 运行图设计
path: 'runPlan/detail/:mapId',
component: PlanMonitorDetail,
hidden: true
}
]
}
]
},
{ // 全屏战场图
path: '/display/:mode',
component: Display,
meta: {
},
hidden: true
},
{
path: '/displayNew/:mode',
component: DisplayNew,
meta: {
},
hidden: true
},
{
path: '/design/display/:mode',
component: DesignDisplay,
meta: {
},
hidden: true
},
{ // 剧本编辑 战场图
path: '/scriptDisplay/:mode',
component: ScriptDisplay,
meta: {
},
hidden: true
},
{ // 剧本编辑 战场图
path: '/scriptDisplayNew/:mode',
component: ScriptDisplayNew,
meta: {
},
hidden: true
},
{
path: '/displayIscs/system',
component: IscsSystem,
meta: {
},
hidden: true,
children: [
{
path: 'config/:mode',
component: IscsConfig,
hidden: true
}
]
},
{ // 综合演练室
path: '/trainroom',
component: TrainRoom,
meta: {
},
hidden: true
},
{
path: '/jointTraining',
component: JointTraining,
hidden: true
},
{
path: '/jointTrainingNew',
component: JointTrainingNew,
hidden: true
},
{
path: '/jlmap3d',
component: Jlmap3d,
meta: {
},
hidden: true
},
{ // 实训平台
path: '/trainingPlatform',
component: Layout,
hidden: true,
meta: {
roles: [admin, userSimulation, user, userTrainingPlatform]
},
children: [
{
path: '',
component: TrainingPlatform,
meta: {
},
children: [
{ // 仿真详情
path: 'detail/:subSystem',
component: DemonstrationDetail,
hidden: true
},
{ // 教学系统 课程列表
path: 'teachHome/:subSystem',
component: TeachHome,
hidden: true
},
{ // 课程详情
path: 'teach/:subSystem',
component: TeachDetail,
hidden: true
},
{ // 试卷列表
path: 'course/:subSystem',
component: ExamCourseDetail,
hidden: true
},
{ // 考试系统 课程列表
path: 'examHome/:subSystem',
component: ExamHome,
hidden: true
},
{ // 试卷详情
path: 'exam/:examId',
component: ExamDetail,
hidden: true
},
{ // 试卷列表
path: 'examRule/manage',
component: PublishExamRule,
hidden: true
},
{ // 创建试卷
path: 'examRule/draft/:mode/:ruleId/:lessonId',
component: PublishExamRuleDraft,
hidden: true
},
{ // 购买
path: 'pay/:lessonId',
component: Pay,
hidden: true
},
{ // 考试结果
path: 'result/:userExamId',
component: ExamResult,
hidden: true
},
{ // 线路权限列表
path: 'permission/:mapId',
component: Package,
hidden: true
}
]
}
]
},
{ // 运行图编辑
path: '/plan/usertool',
component: PlanMonitorEditUserTool,
meta: {
},
hidden: true
},
{ // 运行图编辑
path: '/plan/tool',
component: PlanMonitorEditTool,
meta: {
},
hidden: true
},
{ // 发布内容管理
path: '/publish',
component: Layout,
meta: {
i18n: 'router.pulishManage',
roles: [admin]
},
children: [
{ // 发布地图
path: 'map',
component: PublishMap,
meta: {
i18n: 'router.publishMapManage'
}
},
{
path: '/publish/mapSort',
component: MapSort,
hidden: true
},
{ // 发布历史
path: 'map/detail',
hidden: true,
component: PublishMapDetail
},
{ // 发布课程
path: 'lesson',
component: PublishLesson,
meta: {
i18n: 'router.publishLessonManage'
}
},
{ // 模板运行图
path: 'runPlan/template',
component: RunPlanTemplate,
meta: {
i18n: 'router.runPlanTemplateManage'
}
},
{ // 加载运行图管理
path: 'runPlan/common',
component: RunPlanCommon,
meta: {
i18n: 'router.runPlanCommonManage'
}
},
{ // 新增加载运行图
path: 'runPlan/common/:mode',
component: RunPlanCommonDraft,
hidden: true
},
{ // 运行图预览
path: 'runPlan/view/:mode',
component: RunplanView,
hidden: true
},
{ // 每日运行图
path: 'runPlan/everyDay',
component: RunPlanEveryDay,
meta: {
i18n: 'router.runPlanEveryDayManage'
}
},
{ // 考试规则列表
path: 'examRule/manage',
component: PublishExamRule,
meta: {
i18n: 'router.examRuleManage'
}
},
{
path: 'examRule/draft/:mode/:ruleId/:lessonId',
component: PublishExamRuleDraft,
hidden: true
}
]
},
{ // 订单权限管理
path: '/orderauthor',
component: Layout,
meta: {
i18n: 'router.orderAuthorityManage',
roles: [admin]
},
children: [
{
path: 'author/manage',
component: Author,
meta: {
i18n: 'router.authorityManage'
}
},
{
path: 'commodity/manage',
component: Commodity,
meta: {
i18n: 'router.commodityManage'
}
},
{
path: 'order/manage',
component: OrderList,
meta: {
i18n: 'router.orderManage'
}
},
{
path: 'transfer/manage',
component: Permission,
meta: {
i18n: 'router.authorityTransferManage'
}
},
{
path: 'rules/manage',
component: UserRules,
meta: {
i18n: 'router.userRulesManage'
}
},
{
path: 'rules/manage/detail/:id',
hidden: true,
component: UserRulesDetail,
meta: {
i18n: 'router.userRulesManage'
}
},
{
path: 'order/draft/:mode/:orderId',
hidden: true,
component: OrderDraft,
meta: {
i18n: 'router.addOrder'
}
},
{
path: 'transfer/detail/:permissionId',
component: PermissionDetail,
hidden: true
},
{
path: 'transfer/create',
component: PermissionCreate,
hidden: true
}
]
},
{ // 系统管理
path: '/system',
component: Layout,
meta: {
i18n: 'router.systemManage',
roles: [admin]
},
children: [
{
path: 'dictionary',
component: Dictionary,
meta: {
i18n: 'router.dataDictionary'
}
},
{
path: 'dictionary/detail',
hidden: true,
component: DictionaryDetail,
meta: {
i18n: 'router.dataDictionaryDetails'
}
},
{
// 用户管理
path: 'userManage',
component: UserControl,
meta: {
i18n: 'router.userManage'
}
},
{
// 缓存管理
path: 'cache',
component: CacheControl,
meta: {
i18n: 'router.cacheManage'
}
},
{
path: 'userTrainingManage',
component: UserTraining,
meta: {
i18n: 'router.userTrainingManage'
}
},
{
path: 'userExamManage',
component: UserExam,
meta: {
i18n: 'router.userExamManage'
}
},
{
path: 'userSimulationManage',
component: UserSimulation,
meta: {
i18n: 'router.userSimulationManage'
}
},
{
path: 'existingSimulation',
component: ExistingSimulation,
meta: {
i18n: 'router.existingSimulation'
}
},
{
// 子系统生成
path: 'systemGenerate',
component: SystemGenerate,
meta: {
i18n: 'router.subsystemGeneration'
}
},
{ // 消息公告
path: 'news',
component: News,
meta: {
i18n: 'router.newsBulletin'
}
},
{ // 命令管理
path: 'commands',
component: CommandDictionary,
meta: {
i18n: 'router.commandDictionary'
}
},
{
path: 'commands/Detail',
hidden: true,
component: CommandDictionaryDetail
},
{ // 线路管理
path: 'configLine',
component: configLine,
meta: {
i18n: 'router.configLine'
}
},
{
path: 'deviceManage',
component: DeviceManage,
meta: {
i18n: 'router.deviceManage'
}
}
]
},
{ // 发布申请
path: '/apply',
component: Layout,
meta: {
i18n: 'router.releaseApplication',
roles: [admin]
},
children: [
{
path: 'lesson',
component: LessonApproval,
meta: {
i18n: 'router.courseApplication'
}
},
{
path: 'script',
component: ScriptApproval,
meta: {
i18n: 'router.scriptReleaseApplication'
}
},
{
path: 'runGraph',
component: RunPlanApproval,
meta: {
i18n: 'router.runGraphReleaseApplication'
}
}
]
},
{ // 新个人地图
path: '/design/usermap',
redirect: '/design/usermap/home',
component: Layout,
meta: {
roles: [admin]
},
children: [
{
path: '',
redirect: '/design/usermap/home',
component: NewDesignPlatformUser,
meta: {
i18n: 'router.newDesignUserPage',
icon: 'design'
},
children: [
{
path: 'home',
component: DesignPlatformHome,
meta: {
}
},
{ // 地图绘制
path: 'map/draw/:mapId/:view',
component: NewMapDraft,
hidden: true
}
]
}
]
},
{ // iscs系统
path: '/iscs',
component: Layout,
meta: {
i18n: 'router.iscsSystem',
roles: [admin]
},
children: [
{
path:'design',
component: IscsDesign,
meta: {
i18n: 'router.iscsDraw',
roles: [admin]
},
children: [
{
path: 'edit/:id/:mode',
component: IscsDraw,
hidden: true
}
]
},
{
path: 'system',
component: IscsSystem,
meta: {
i18n: 'router.iscsSystem',
roles: [admin, user]
},
children: [
{
path: 'config/:mode',
component: IscsConfig,
hidden: true
}
]
}
]
}
];
const createRouter = () => new Router({
mode: 'history', // require service support
scrollBehavior: () => ({ y: 0 }),
routes: constantRoutes
});
const router = createRouter();
router.beforeEach((to, from, next) => {
const project = getSessionStorage('project');
document.title = loginInfo[project || 'login'].title;
next();
});
// 兼容 vue-router在3.1.0版本以上的路由跳转使用的是 promise 的方式
const originalPush = Router.prototype.push;
Router.prototype.push = function push(location) {
return originalPush.call(this, location).catch(err => err);
};
export default router;

View File

@ -2265,3 +2265,98 @@ export const ProjectCode = {
designgzb: 'GZB',
hyd: 'HYD'
};
export const UrlConfig = {
display: '/display',
displayNew: '/displayNew',
scriptDisplay: '/scriptDisplay',
scriptDisplayNew:'/scriptDisplayNew',
examRuleDraft: '/examRule/draft',
examRuleManage: '/examRule/manage',
lesson: {
prefix: '/lesson',
record: '/system/record/training',
manage: '/lesson/manage/training'
},
design: {
prefix: '/design/home',
mapDraw: '/design/map/draw',
lessonEdit: '/design/lesson/edit',
lessonHome: '/design/lesson/home',
lessonManage: '/design/lesson/manage',
taskManage: '/design/lesson/taskManage',
trainingRule: '/design/lesson/trainingRule',
trainingRuleDetail: '/design/lesson/trainingRule/detail',
trainingManage: '/design/lesson/trainingManage',
lessonTraining: '/design/lesson/training',
trainingRecord: '/design/lesson/training',
runPlan: '/design/runPlan/detail',
scriptHome: '/design/script/home',
display: '/design/display',
mapPreview: '/design/mapPreview',
mapPreviewNew: '/design/mapPreviewNew',
ibpHome: '/design/ibp/home'
},
designUser: {
prefix: '/design/userlist/home',
scriptHome: '/design/userlist/script/home',
mapDraw: '/design/userlist/map/draw',
lessonHome: '/design/userlist/lesson/home',
runPlan: '/design/userlist/runPlan/detail'
},
newDesignuser: {
prefix: '/design/usermap/home',
scriptHome: '/design/usermap/script/home',
mapDraw: '/design/usermap/map/draw',
lessonHome: '/design/usermap/lesson/home',
runPlan: '/design/usermap/runPlan/detail'
},
replay: {
prefix: '/replay'
},
publish: {
prefix: '/publish',
map: '/publish/map',
runPlanEveryDay: '/publish/runPlan/everyDay',
runPlanTemplate: '/publish/runPlan/template',
runPlanCommon: '/publish/runPlan/common',
runPlanView: '/publish/runPlan/view'
},
orderauthor: {
prefix: '/orderauthor',
commodityManage: '/orderauthor/commodity/manage',
commodityDraft: '/orderauthor/commodity/draft',
orderManage: '/orderauthor/order/manage',
orderDraft: '/orderauthor/order/draft',
authorMange: '/orderauthor/author/manage',
authorDetail: '/orderauthor/author/detail',
transferDetail: '/orderauthor/transfer/detail',
createPackage: '/orderauthor/transfer/create'
},
script: {
prefix: '/script',
detail: '/script/detail',
display: '/script/display'
},
ibp: {
prefix: 'ibp',
draft: '/ibp/draft',
edit: 'ibp/edit'
},
trainingPlatform: {
trainingPlatform: '/trainingPlatform',
prodDetail: '/trainingPlatform/detail',
teachDetail: '/trainingPlatform/teach',
teachHome: '/trainingPlatform/teachHome',
examDetail: '/trainingPlatform/exam',
examHome: '/trainingPlatform/examHome',
examRuleManage: '/trainingPlatform/examRule/manage',
examRuleDraft: '/trainingPlatform/examRule/Draft',
course: '/trainingPlatform/course',
practical: '/trainingPlatform/practical',
permission: '/trainingPlatform/permission',
permissionDetails: '/trainingPlatform/permission/detail',
draft: '/trainingPlatform/draft',
pay: '/trainingPlatform/pay',
runPlan: '/trainingPlatform/runPlan/manage'
}
};

View File

@ -1,5 +1,5 @@
import { sendCommandNew } from '@/api/jmap/training';
import router from '@/router';
import router from '@/router/index_APP_TARGET';
import Command from './Command';
import Handler from './Handler';

View File

@ -1,5 +1,5 @@
import store from '@/store';
import router from '@/router';
import router from '@/router/index_APP_TARGET';
import CommandHandler from './CommandHandler.js';
import ValidateHandler from './ValidateHandler.js';
import { State2SimulationMap } from './Config.js';

View File

@ -1,5 +1,5 @@
import store from '@/store';
import router from '@/router';
import router from '@/router/index_APP_TARGET';
import OperateHandler from '@/scripts/plugin/OperateHandler';
import { sendCommand } from '@/api/jmap/training';
import { OperationEvent } from '@/scripts/ConstDic';

View File

@ -1,5 +1,5 @@
import store from '@/store';
import router from '@/router';
import router from '@/router/index_APP_TARGET';
import OperateConverter from '@/scripts/plugin/OperateConvert2Command';
import { TrainingMode } from '@/scripts/ConstDic';
import { getConverter } from '@/scripts/plugin/Converter/manager';

View File

@ -1,6 +1,6 @@
import { asyncRouter, constantRoutes, user, userLesson, userExam, userSimulation, userScreen, userPlan, superAdmin, admin, userTrainingPlatform } from '@/router';
import { asyncRouter, constantRoutes, user, userLesson, userExam, userSimulation, userScreen, userPlan, superAdmin, admin, userTrainingPlatform } from '@/router/index_APP_TARGET';
import { PermissionType } from '@/utils/PermissionType';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
import { getSessionStorage } from '@/utils/auth';
function setHonePagePath(route, roles) {

View File

@ -11,7 +11,7 @@ import { reviewRunPlanList, publishRunPlan, rejectRunPlan, previewRunPlan } from
import { getPublishMapListOnline } from '@/api/jmap/map';
import { launchFullscreen } from '@/utils/screen';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
export default {
name: 'RunPlanApproval',
components: {

View File

@ -6,7 +6,7 @@
</template>
<script>
import { launchFullscreen } from '@/utils/screen';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
import { scriptDraftRecordNotify } from '@/api/simulation';
import ScriptOperate from './operate';
import { reviewScriptList, publishScript, rejectScript } from '@/api/designPlatform';

View File

@ -40,7 +40,7 @@
<script>
import { getCommodityDetailByParams } from '@/api/management/goods';
import { PermissionType } from '@/scripts/ConstDic';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
import CommitDraft from './commit';
import ConfirmDraft from './confirm';
import FinishDraft from './finish';

View File

@ -26,11 +26,11 @@
<script>
import { getPublishMapInfo } from '@/api/jmap/map';
import { getGoodsTryUse } from '@/api/management/goods';
import { PermissionType } from '@/scripts/ConstDic';
import { PermissionType, UrlConfig } from '@/scripts/ConstDic';
import { launchFullscreen } from '@/utils/screen';
import { postCreateRoom, getjointTraining } from '@/api/chat';
import { postCreateRoomNew, getjointTrainingNew, checkRoomExistNew } from '@/api/jointTraining';
import { UrlConfig } from '@/router/index';
import { } from '@/scripts/ConstDic';
import { simulationNotify, schedulingNotify, createSimulationNew } from '@/api/simulation';
import LimitList from '@/views/components/limits/index';
import { getSubSystemDetail } from '@/api/trainingPlatform';

View File

@ -19,8 +19,8 @@
</template>
<script>
import { listPublishMap, getMapListByProjectCode } from '@/api/jmap/map';
import { UrlConfig } from '@/router/index';
import { superAdmin, admin } from '@/router';
import { UrlConfig } from '@/scripts/ConstDic';
import { superAdmin, admin } from '@/router/index_APP_TARGET';
import { getSessionStorage, setSessionStorage, removeSessionStorage } from '@/utils/auth';
import FilterCity from '@/views/components/filterCity';
import localStore from 'storejs';

View File

@ -34,7 +34,7 @@
<script>
import { DeviceMenu } from '@/scripts/ConstDic';
import { postBuildMapImport, listMap } from '@/api/jmap/mapdraft';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
import { removeSessionStorage } from '@/utils/auth';
import MapOperateMenu from './mapmanage/operateMenu';

View File

@ -11,7 +11,7 @@
<script>
import { deleteMap } from '@/api/jmap/mapdraft';
import { DeviceMenu } from '@/scripts/ConstDic';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
import PopMenu from '@/components/PopMenu';
import MapEdit from './edit';
import MapSaveAs from './saveAs';

View File

@ -30,7 +30,7 @@ import { startTraining, endTraining } from '@/api/jmap/training';
import { trainingNotify } from '@/api/simulation';
import { TrainingMode } from '@/scripts/ConstDic';
import { timeFormat } from '@/utils/date';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
export default {
name: 'MenuLesson',

View File

@ -53,7 +53,7 @@
<script>
import { getCourseLessonDetail } from '@/api/management/exam';
import { PermissionType } from '@/scripts/ConstDic';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
import LimitList from '@/views/components/limits/index';
import { getSessionStorage, setSessionStorage } from '@/utils/auth';
import localStore from 'storejs';

View File

@ -57,7 +57,7 @@ import { PermissionType } from '@/scripts/ConstDic';
import { getDetailList } from '@/api/management/dictionary';
import { mapGetters } from 'vuex';
import { launchFullscreen } from '@/utils/screen';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
import LangStorage from '@/utils/lang';
import { getPublishMapInfo } from '@/api/jmap/map';

View File

@ -23,7 +23,7 @@
<script>
import { getSubSystemDetail } from '@/api/trainingPlatform';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
import localStore from 'storejs';
export default {

View File

@ -32,7 +32,7 @@
</template>
<script>
import { submitExam } from '@/api/management/userexam';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
export default {
name: 'ExamResult',

View File

@ -45,7 +45,7 @@ import { simulationNotify, setTrainingCbtcInitTime } from '@/api/simulation';
import { getPublishMapDetail, getPublish3dMapDetail } from '@/api/jlmap3d/load3ddata';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
import { JLmapDriving } from '@/jlmap3d/jl3ddrive/jl3ddrive';

View File

@ -31,7 +31,7 @@
import SetTime from '@/views/display/demon/setTime';
import { getTrainingCbtcDemon, setTrainingCbtcInitTime } from '@/api/simulation';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
import { JLmap3dEdit } from '@/jlmap3d/edit/jlmap3dedit';

View File

@ -41,7 +41,7 @@ import { mapGetters } from 'vuex';
import { simulationNotify, setTrainingCbtcInitTime } from '@/api/simulation';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
import { JLmap3d } from '@/jlmap3d/jl3dsimulation/jlmap3d.js';

View File

@ -20,7 +20,7 @@
<script>
import { releaseOrCancel } from '@/api/designPlatform';
import { getLessonDrftList } from '@/api/jmap/lessondraft';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
import PublishCreate from './lessoncategory/edit/create';
import PublishLesson from './lessoncategory/edit/lesson/publish';
import { delLesson } from '@/api/jmap/lessondraft';

View File

@ -72,7 +72,7 @@
<script>
import { createLessonChapter, updateLessonChapter, getLessonDetail, getLessonChapterDetail } from '@/api/jmap/lessondraft';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
import TrainList from './list';
export default {

View File

@ -59,7 +59,7 @@
<script>
import { createLesson, updateLesson, getLessonDetail } from '@/api/jmap/lessondraft';
import { getPublishMapListOnline } from '@/api/jmap/map';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
import Cookies from 'js-cookie';
import ConstConfig from '@/scripts/ConstConfig';

View File

@ -22,7 +22,7 @@ import {
import TrainingEdit from './addEdit';
import AddBatch from './addBatch';
import SaveAs from './saveAs.vue';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
export default {
name: 'TrainingRule',

View File

@ -23,7 +23,7 @@ import { pageQueryTraining, pageQueryTrainingNew } from '@/api/jmap/training';
import { trainingNotify, trainingNotifyNew } from '@/api/simulation';
import { launchFullscreen } from '@/utils/screen';
import { getPublishMapListOnline } from '@/api/jmap/map';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
import TrainingDraft from './draft';
import localStore from 'storejs';

View File

@ -0,0 +1,437 @@
<template>
<div class="login-container" :style="{'background-image': 'url('+bgImg+')'}">
<div class="text-box">
<img class="logo" :src="logoImg" style="width: 140px">
<span>{{ title }}</span>
</div>
<div class="language_box">
<el-tooltip effect="dark" :content="this.$t('login.clickSwitchLanguage')" placement="bottom-end">
<el-button class="language_btn" type="text" @click="handleLanguage">{{ language }}</el-button>
</el-tooltip>
</div>
<div class="content-box">
<el-form ref="loginForm" class="login-form" :model="loginForm" :rules="loginRules" label-position="left">
<el-form-item prop="username" class="item_form_box">
<span class="svg-container svg-container_login">
<svg-icon icon-class="user" />
</span>
<el-input v-model="loginForm.username" name="username" type="text" :placeholder="this.$t('login.mobilePhoneNumberOrEmail')" @keyup.enter.native="goToNext" />
</el-form-item>
<el-form-item prop="password" class="item_form_box item_form_password">
<span class="svg-container">
<svg-icon icon-class="password" />
</span>
<el-input
ref="password"
v-model="loginForm.password"
name="password"
:type="pwdType"
:placeholder="this.$t('login.password')"
@keyup.enter.native="handleLogin"
/>
<span class="show-pwd" @click="showPwd">
<svg-icon v-if="pwdDisplay" icon-class="eye" />
<svg-icon v-else icon-class="eye-open" />
</span>
</el-form-item>
<div class="tip-message">{{ tipsMsg }}</div>
<div style="display: inline-block;width: 100%;margin-bottom: 10px;">
<div style="display:inline-block">
<el-checkbox v-model="isAutoLogin">{{ $t('login.autoLogin') }}</el-checkbox>
</div>
<el-popover
placement="right"
title=""
width="200"
trigger="hover"
class="popover_box"
>
<div>
<img :src="QCode" alt="" style="width: 100px; height: 100px; display: block; margin:0 auto;">
<div style="margin-top: 10px; word-break: break-word;text-align: center;">{{ $t('login.perfectInformation') }}</div>
</div>
<div slot="reference">{{ $t('login.unableToLogin') }}</div>
</el-popover>
</div>
<el-form-item>
<el-button type="primary" style="width:100%;" :loading="loading" @click.native.prevent="handleLogin">
{{ $t('login.login') }}
</el-button>
</el-form-item>
</el-form>
</div>
</div>
</template>
<script>
import QCode from '@/assets/erCode.jpg';
import { setSessionStorage, removeSessionStorage } from '@/utils/auth';
import Cookies from 'js-cookie';
import md5 from 'js-md5';
import QrcodeVue from 'qrcode.vue';
import { checkLoginStatus } from '@/api/login';
import { UrlConfig } from '@/scripts/ConstDic';
import { removeToken } from '@/utils/auth';
import LangStorage from '@/utils/lang';
import logoImgHyd from '@/assets/logo_hyd.png';
export default {
name: 'Login',
components: { QrcodeVue},
data() {
const validateUsername = (rule, value, callback) => {
if (value.length < 5) {
callback(new Error(this.$t('login.enterTheCorrectUserName')));
} else {
callback();
}
};
const validatePass = (rule, value, callback) => {
if (value.length < 5) {
callback(new Error(this.$t('login.passwordHint')));
} else {
callback();
}
};
return {
bgImg: '',
QCode: QCode,
isAutoLogin: false,
loginForm: {
username: '',
password: ''
},
loginRules: {
username: [{ required: true, trigger: 'blur', validator: validateUsername }],
password: [{ required: true, trigger: 'blur', validator: validatePass }]
},
loading: false,
pwdType: 'password',
tipsMsg: '',
qrcodeClassName: 'login-qrcode',
sessionId: '',
loginUrl: '',
loadingCode: false,
checkLogin: null,
checkTimeout: null,
scanSuccess: false,
pwdDisplay: true,
cookiesName: 'UserName',
cookiesToken: 'UserToken',
modelType: 'class',
loginClient: 'LianKeTang',
path: '/trainingPlatform',
lang: 'zh',
language: '中文',
logoImg: logoImgHyd,
title: '城市轨道交通实训平台'
};
},
computed: {
project() {
return this.$route.path.split('/')[1];
}
},
created() {
this.computedAttribute();
if (Cookies.get(this.cookiesName) && Cookies.get(this.cookiesToken)) {
const model = {'username': Cookies.get(this.cookiesName), 'password': Cookies.get(this.cookiesToken)};
model.type = this.modelType;
this.$store.dispatch('Login', model).then(() => {
this.$store.dispatch('SetAccount', model.username);
this.handleLoginSucessRoute();
}).catch(error => {
if (error.code === '30001') {
this.tipsMsg = this.$t('login.accountOrPasswordIsIncorrect');
} else {
this.tipsMsg = error.message;
}
this.loading = false;
setTimeout(() => { this.tipsMsg = ''; }, 5000);
});
}
},
mounted() {
document.title = this.title;
},
methods: {
computedAttribute() {
if (this.project.startsWith('design')) {
this.cookiesName = 'UserDesignName';
this.cookiesToken = 'UserDesignToken';
this.modelType = 'design';
this.loginClient = 'Design';
this.path = UrlConfig.design.prefix;
}
const nowLang = LangStorage.getLang('zh');
if (nowLang === 'zh') {
this.lang = 'en';
this.language = 'English';
}
removeToken();
setSessionStorage('project', 'hyd');
},
clearTimer(timer) {
if (timer) {
clearTimeout(timer);
timer = null;
}
},
checkLoginStatus() {
const self = this;
//
if (this && this._isDestroyed) {
return;
}
//
//
this.clearTimer(this.checkLogin);
this.checkLogin = setTimeout(() => {
checkLoginStatus(self.sessionId).then(response => {
//
self.$store.dispatch('QrLoginSetting', { key: 'SET_TOKEN', value: response.data.token, type: this.modelType }).then(() => {
//
self.clearTimer(self.checkLogin);
this.handleLoginSucessRoute();
});
}).catch(error => {
if (error.data && error.data.status === '1') {
self.scanSuccess = true;
}
self.checkLoginStatus();
});
}, 3000);
},
showPwd() {
if (this.pwdType === 'password') {
this.pwdDisplay = false;
this.pwdType = '';
} else {
this.pwdType = 'password';
this.pwdDisplay = true;
}
},
goToNext() {
if (this.loginForm.username.length < 5) {
return;
} else {
this.$refs['password'].focus();
}
},
handleLogin() {
this.$refs.loginForm.validate(valid => {
if (valid) {
const model = Object.assign({}, this.loginForm);
model.password = md5(model.password);
model.type = this.modelType;
this.loading = true;
if (this.isAutoLogin) {
Cookies.set(this.cookiesName, model.username, { expires: 2});
Cookies.set(this.cookiesToken, model.password, { expires: 2});
}
this.$store.dispatch('Login', model).then(() => {
this.$store.dispatch('SetAccount', model.username);
this.handleLoginSucessRoute();
}).catch(error => {
if (error.code === '30001') {
this.tipsMsg = this.$t('login.accountOrPasswordIsIncorrect');
} else {
this.tipsMsg = error.message;
}
this.loading = false;
setTimeout(() => { this.tipsMsg = ''; }, 5000);
});
} else {
console.log('error submit!!');
return false;
}
});
},
handleLoginSucessRoute() {
//
this.loading = false;
this.tipsMsg = '';
removeSessionStorage('againEnter');
this.$router.push({ path: this.path });
},
handleLanguage() {
this.$i18n.locale = this.lang;
LangStorage.setLang(this.lang);
}
}
};
</script>
<style rel="stylesheet/scss" lang="scss">
$bg:#fff;
$light_gray:#eee;
.login-container {
background: #E4EAEA;
.el-form-item{
background: #fff !important;
border: 1px solid rgba(0, 0, 0, 0.1) !important;
.el-input {
height: 40px;
width: 85%;
background: #fff;
input {
background: #fff !important;
border: 0px;
-webkit-appearance: none;
border-radius: 0px;
padding: 8px 9px 7px 5px;
color: #000;
height: 100%;
&:-webkit-autofill {
box-shadow: 0 0 0px 1000px $bg inset !important;
-webkit-text-fill-color: #000 !important;
}
}
}
}
.item_form_box {
border: 1px solid #ccc;
border-radius: 5px;
color: #454545;
}
.item_form_password{
margin-bottom: 10px;
}
.tip-message {
color: #F56C61;
padding: 5px;
font-size: 12px;
height: 23px;
margin-bottom: 10px;
}
}
</style>
<style rel="stylesheet/scss" lang="scss" scoped>
$bg:#f0f0f0;
$qrbg:#fff;
$dark_gray:#889aa4;
$light_gray:#eee;
$qrcodeSize: 270px;
.popover_box {
position: absolute;
right: 80px;
bottom: 106px;
cursor: pointer;
color: #225592;
font-size: 14px;
}
.login-container {
position: fixed;
display: flex;
align-items: center;
justify-content: center;
height: 100%;
width: 100%;
background-repeat: no-repeat;
background-origin: border-box;
background-size: 100% 100%;
.content-box{
width: 450px;
display: flex;
align-items: center;
justify-content: center;
background: #fff;
padding: 30px 30px 30px;
margin-bottom: 20px;
box-sizing: border-box;
position: relative;
}
.text-box{
position: absolute;
top: 10%;
font-size: 40px;
font-weight: bold;
}
.logo{
vertical-align: middle;
}
.language_box{
position: absolute;
top: 20px;
right: 40px;
.language_btn{
/*font-weight: bold;*/
cursor: pointer;
font-size: 18px;
}
}
.login-form {
width: 440px;
padding: 0 50px;
}
.svg-container {
padding-left: 14px;
color: $dark_gray;
vertical-align: middle;
width: 30px;
display: inline-block;
&_login {
font-size: 16px;
}
}
.title_box {
font-size: 20px;
color: #000;
margin: 0px auto 30px auto;
text-align: center;
}
.show-pwd {
position: absolute;
right: 10px;
top: 3px;
font-size: 16px;
color: $dark_gray;
cursor: pointer;
user-select: none;
}
}
.qrcode-main{
width: 300px;
background-color: $qrbg;
text-align: center;
border-right: 1px solid #ececec;
.tip-info {
text-align: left;
display: inline-block;
color: green;
margin: 0 auto;
}
.login-code-box{
width: 150px;
margin: 0 auto;
cursor: pointer;
}
.system-type {
margin: 5px 0;
display: block;
}
.sub-title {
font-size: 16px;
text-align: center;
color: #353535;
line-height: 30px;
}
}
</style>

View File

@ -102,10 +102,9 @@ import QrcodeVue from 'qrcode.vue';
import { getLoginWmurl, checkLoginStatus } from '@/api/login';
import { LoginParams } from '@/utils/login';
import bgImg from '@/assets/bg1.jpg';
import { loginInfo } from '@/scripts/ConstDic';
import { loginInfo, UrlConfig } from '@/scripts/ConstDic';
import { removeToken } from '@/utils/auth';
import LangStorage from '@/utils/lang';
import { UrlConfig } from '@/router/index';
import logoImgXty from '@/assets/logo_xty.png';
import logoImgGzb from '@/assets/logo_gzb.png';
import logoImgHyd from '@/assets/logo_hyd.png';

View File

@ -39,7 +39,7 @@
import { getPublishLessonTree } from '@/api/jmap/lesson';
import { trainingNotifyNew } from '@/api/simulation';
import { launchFullscreen } from '@/utils/screen';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
export default {
name: 'LeftSlider',
data() {

View File

@ -30,7 +30,7 @@ import { startTrainingNew, endTrainingNew } from '@/api/jmap/training';
import { trainingNotifyNew } from '@/api/simulation';
import { TrainingMode } from '@/scripts/ConstDic';
import { timeFormat } from '@/utils/date';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
export default {
name: 'MenuLesson',

View File

@ -34,7 +34,7 @@
<script>
import { DeviceMenu } from '@/scripts/ConstDic';
import { postBuildMapImport, listMap } from '@/api/jmap/mapdraft';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
import { removeSessionStorage } from '@/utils/auth';
import MapOperateMenu from './mapmanage/operateMenu';

View File

@ -11,7 +11,7 @@
<script>
import { deleteMap } from '@/api/jmap/mapdraft';
import { DeviceMenu } from '@/scripts/ConstDic';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
import PopMenu from '@/components/PopMenu';
import MapEdit from './edit';
import MapSaveAs from './saveAs';

View File

@ -7,7 +7,6 @@
<script>
import { getCommodityList, delCommodity, setCommodityStatus } from '@/api/management/goods';
// import { UrlConfig } from '@/router/index';
import Edit from './edit';
export default {

View File

@ -11,7 +11,7 @@ import { getOrderPageList } from '@/api/management/order';
import { getSellerList } from '@/api/management/user';
import { getOrganizationList } from '@/api/management/organization';
import { getDistributeFromOrder } from '@/api/management/order';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
import QrCode from '@/components/QrCode';
import detail from './detail';

View File

@ -7,9 +7,9 @@
</template>
<script>
import { admin } from '@/router';
import { admin } from '@/router/index_APP_TARGET';
import { listPackagePermission, restorePackagePermission, getPackageQrCode, setCommodityStatus } from '@/api/management/distribute';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
import QrCode from '@/components/QrCode';
import Qcode from './Qcode';
import { getPublishMapListOnline } from '@/api/jmap/map';

View File

@ -7,7 +7,7 @@
<script>
import { listUserPermision } from '@/api/management/author';
import { superAdmin, admin } from '@/router';
import { superAdmin, admin } from '@/router/index_APP_TARGET';
import selectRole from './selectRole/list';
import LangStorage from '@/utils/lang';

View File

@ -53,7 +53,7 @@ import CreateEmptyPlan from './editTool/menus/createEmptyPlan';
import { getRpListByUserMapId, publishRunPlan, releaseOrCancelRunPlan, previewRunPlan} from '@/api/designPlatform';
import { getRpListByMapId, deleteRunPlan } from '@/api/runplan';
import { launchFullscreen } from '@/utils/screen';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
export default {
name: 'UserRunPlanList',
components: {

View File

@ -116,7 +116,7 @@
import { mapGetters } from 'vuex';
import { planEffectiveCheck, runPlanNotify } from '@/api/runplan';
import { launchFullscreen } from '@/utils/screen';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
import { EventBus } from '@/scripts/event-bus';
export default {

View File

@ -46,7 +46,7 @@
</template>
<script>
import { getRpListByMapId, deleteRunPlan } from '@/api/runplan';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
import EditPlanName from './editPlanName';
export default {

View File

@ -21,7 +21,7 @@
<script>
import { planEffectiveCheck, runPlanNotify } from '@/api/runplan';
import { launchFullscreen } from '@/utils/screen';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
export default {
name: 'PlanStatusBar',

View File

@ -10,7 +10,7 @@
<script>
import logo_ from '@/assets/logo_.png';
import { getPublishMapInfo } from '@/api/jmap/map';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
export default {
name: 'PlanTitleBar',

View File

@ -27,7 +27,7 @@
<script>
import { getExamLessonDetail, setCourseList } from '@/api/management/exam';
import { getDetailList } from '@/api/management/dictionary';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
import editRule from './editRule';
export default {

View File

@ -14,7 +14,7 @@
<script>
import { getExamList, deleteExam, setExamEfficacy, setExamEffectivey } from '@/api/management/exam';
import { getPublishLessonList } from '@/api/jmap/lesson';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
export default {
name: 'List',

View File

@ -5,9 +5,9 @@
</template>
<script>
import { superAdmin } from '@/router';
import { superAdmin } from '@/router/index_APP_TARGET';
import { getRunPlanLoadList, listAllTempLateRunPlan, deleteDailyRunPlanLoad, postDailyRunPlanLoadGenerate, postSchedulingCommonGenerate } from '@/api/runplan';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
import { getPublishMapListOnline } from '@/api/jmap/map';
export default {

View File

@ -5,10 +5,10 @@
</template>
<script>
import { superAdmin } from '@/router';
import { superAdmin } from '@/router/index_APP_TARGET';
import { getPublishMapListOnline } from '@/api/jmap/map';
import { runPlanEveryDayList, deleteRunPlanEveryDay } from '@/api/runplan';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
export default {
name: 'RunPlanEveryDay',

View File

@ -13,7 +13,7 @@
import { mapGetters } from 'vuex';
import { getStationList, queryRunPlan, queryRunPlanTemplate, queryRunPlanDaily } from '@/api/runplan';
import { timeFormat } from '@/utils/date';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
import echarts from 'echarts';
export default {

View File

@ -6,10 +6,10 @@
</template>
<script>
import { superAdmin } from '@/router';
import { superAdmin } from '@/router/index_APP_TARGET';
import { getPublishMapListOnline } from '@/api/jmap/map';
import { runPlanTemplateList, deleteRunPlanTemplate, generateCommonRunPlanEveryDay, postRunPlanTemplate } from '@/api/runplan';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
import CopyPlan from './copyPlan.vue';
export default {

View File

@ -14,8 +14,8 @@
<script>
import Cookies from 'js-cookie';
import ConstConfig from '@/scripts/ConstConfig';
import { UrlConfig } from '@/router/index';
import { admin, superAdmin} from '@/router';
import { UrlConfig } from '@/scripts/ConstDic';
import { admin, superAdmin} from '@/router/index_APP_TARGET';
import { getQuestPageList, createQuest, deleteQuest, updateQuest, publishQuest, retractQuest} from '@/api/quest';
import { launchFullscreen } from '@/utils/screen';
import { scriptDraftRecordNotify, scriptRecordNotify, scriptRecordNotifyNew } from '@/api/simulation';

View File

@ -47,7 +47,7 @@
<script>
import { getPublishLessonTree } from '@/api/jmap/lesson';
import { PermissionType } from '@/scripts/ConstDic';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
import LimitList from '@/views/components/limits/index';
import { getSessionStorage, setSessionStorage } from '@/utils/auth';
import { trainingNotify, trainingNotifyNew } from '@/api/simulation';

View File

@ -23,7 +23,7 @@
<script>
import { getSubSystemDetail } from '@/api/trainingPlatform';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
import localStore from 'storejs';
export default {

View File

@ -38,7 +38,7 @@
</template>
<script>
import { getTrainingSystemList, getSubSystemInfo, getSubSystemByProjectCode } from '@/api/trainingPlatform';
import { UrlConfig } from '@/router/index';
import { UrlConfig } from '@/scripts/ConstDic';
import FilterCity from '@/views/components/filterCity';
import localStore from 'storejs';
import { getSessionStorage } from '@/utils/auth';

View File

@ -1,4 +1,4 @@
import { formatTime } from '@/utils/index.js'
import { formatTime } from '@/utils/index_Common.js'
describe('Utils:formatTime', () => {
const d = new Date('2018-07-13 17:54:01') // "2018-07-13 17:54:01"

View File

@ -1,4 +1,4 @@
import { parseTime } from '@/utils/index.js'
import { parseTime } from '@/utils/index_Common.js'
describe('Utils:parseTime', () => {
const d = new Date('2018-07-13 17:54:01') // "2018-07-13 17:54:01"

View File

@ -1,10 +1,10 @@
// import { getBasePathConfig } from '@/utils/baseUrl'
const path = require('path');
const defaultSettings = require('./src/settings.js');
const CopyWebpackPlugin = require('copy-webpack-plugin');
const webpack = require('webpack');
// const CompressionPlugin = require('compression-webpack-plugin');
// const productionGzipExtensions = ['js', 'css'];
@ -93,6 +93,13 @@ module.exports = {
'@': path.resolve('src')
}
};
var appTarget = 'Common';
// var appTarget = 'HYD';// 哈尔滨项目打包
config.plugins.push(new webpack.NormalModuleReplacementPlugin(/(.*)_APP_TARGET(\.*)/,
function (resourse) {
resourse.request = resourse.request.replace(/APP_TARGET/, `${appTarget}`);
})
);
config.plugins.push(new CopyWebpackPlugin([
{
from: path.resolve(__dirname, './static'),
@ -100,6 +107,7 @@ module.exports = {
ignore: ['.*']
}
]));
config.externals = { // 配置使用CDN
'vue': 'Vue',
'vuex': 'Vuex',