代码生成器 雏形

This commit is contained in:
zsvg
2022-06-10 00:15:02 +08:00
parent 398fa81b8d
commit 8c0942b1a2
12 changed files with 1854 additions and 1230 deletions
+29
View File
@@ -15,6 +15,7 @@
"bpmn-js": "^8.1.0",
"bpmn-js-properties-panel": "^0.39.0",
"codemirror": "^5.59.2",
"codemirror-editor-vue3": "^2.1.7",
"countup.js": "^2.2.0",
"cropperjs": "^1.5.12",
"echarts": "^5.3.2",
@@ -2305,6 +2306,15 @@
"resolved": "https://registry.npmmirror.com/codemirror/-/codemirror-5.65.4.tgz",
"integrity": "sha512-tytrSm5Rh52b6j36cbDXN+FHwHCl9aroY4BrDZB2NFFL3Wjfq9nuYVLFFhaOYOczKAg3JXTr8BuT8LcE5QY4Iw=="
},
"node_modules/codemirror-editor-vue3": {
"version": "2.1.7",
"resolved": "https://registry.npmmirror.com/codemirror-editor-vue3/-/codemirror-editor-vue3-2.1.7.tgz",
"integrity": "sha512-Pj4p9vacexMk6P1XEjxriHU/Xna4V/6+KzJbUE8lwxx0wbCrAopuCHSdJSKpsMWhYj/enkaNVFoIp1MAfvqTgw==",
"dependencies": {
"codemirror": "^5.64.0",
"diff-match-patch": "^1.0.5"
}
},
"node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
@@ -2501,6 +2511,11 @@
"resolved": "https://registry.npmmirror.com/didi/-/didi-5.2.1.tgz",
"integrity": "sha512-IKNnajUlD4lWMy/Q9Emkk7H1qnzREgY4UyE3IhmOi/9IKua0JYtYldk928bOdt1yNxN8EiOy1sqtSozEYsmjCg=="
},
"node_modules/diff-match-patch": {
"version": "1.0.5",
"resolved": "https://registry.npmmirror.com/diff-match-patch/-/diff-match-patch-1.0.5.tgz",
"integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw=="
},
"node_modules/dir-glob": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
@@ -7149,6 +7164,15 @@
"resolved": "https://registry.npmmirror.com/codemirror/-/codemirror-5.65.4.tgz",
"integrity": "sha512-tytrSm5Rh52b6j36cbDXN+FHwHCl9aroY4BrDZB2NFFL3Wjfq9nuYVLFFhaOYOczKAg3JXTr8BuT8LcE5QY4Iw=="
},
"codemirror-editor-vue3": {
"version": "2.1.7",
"resolved": "https://registry.npmmirror.com/codemirror-editor-vue3/-/codemirror-editor-vue3-2.1.7.tgz",
"integrity": "sha512-Pj4p9vacexMk6P1XEjxriHU/Xna4V/6+KzJbUE8lwxx0wbCrAopuCHSdJSKpsMWhYj/enkaNVFoIp1MAfvqTgw==",
"requires": {
"codemirror": "^5.64.0",
"diff-match-patch": "^1.0.5"
}
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
@@ -7318,6 +7342,11 @@
"resolved": "https://registry.npmmirror.com/didi/-/didi-5.2.1.tgz",
"integrity": "sha512-IKNnajUlD4lWMy/Q9Emkk7H1qnzREgY4UyE3IhmOi/9IKua0JYtYldk928bOdt1yNxN8EiOy1sqtSozEYsmjCg=="
},
"diff-match-patch": {
"version": "1.0.5",
"resolved": "https://registry.npmmirror.com/diff-match-patch/-/diff-match-patch-1.0.5.tgz",
"integrity": "sha512-IayShXAgj/QMXgB0IWmKx+rOPuGMhqm5w6jvFxmVenXKIzRqTAAsbBPT3kWQeGANj3jGgvcvv4yK6SxqYmikgw=="
},
"dir-glob": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
+7 -6
View File
@@ -13,12 +13,17 @@
"@element-plus/icons-vue": "^1.1.4",
"@wangeditor/editor": "^5.0.1",
"axios": "^0.27.2",
"bpmn-js": "^8.1.0",
"bpmn-js-properties-panel": "^0.39.0",
"codemirror": "^5.59.2",
"codemirror-editor-vue3": "^2.1.7",
"countup.js": "^2.2.0",
"cropperjs": "^1.5.12",
"echarts": "^5.3.2",
"echarts-gl": "^2.0.9",
"echarts-wordcloud": "^2.0.0",
"element-plus": "2.2.0",
"file-saver": "2.0.5",
"js-cookie": "^3.0.1",
"jsplumb": "^2.15.6",
"mitt": "^3.0.0",
@@ -29,16 +34,12 @@
"screenfull": "^6.0.1",
"sortablejs": "^1.15.0",
"splitpanes": "^3.1.1",
"vform3-builds": "^3.0.8",
"vue": "^3.2.35",
"vue-clipboard3": "^2.0.0",
"vue-grid-layout": "^3.0.0-beta1",
"vue-i18n": "^9.1.10",
"vue-router": "^4.0.15",
"codemirror": "^5.59.2",
"bpmn-js": "^8.1.0",
"bpmn-js-properties-panel": "^0.39.0",
"vform3-builds": "^3.0.8",
"file-saver": "2.0.5"
"vue-router": "^4.0.15"
},
"devDependencies": {
"@types/node": "^17.0.35",
+6 -5
View File
@@ -111,11 +111,12 @@ const chooseAddr2=(cecoo:string)=>{
const dataAsync=async ()=>{
ElMessage.warning("演示模式不支持同步操作")
// await request({
// url: state.url+"/addrupdate",
// method: 'put'
// });
// ElMessage.warning("演示模式不支持同步操作")
ElMessage.warning("需要在后台维护高德API的key")
await request({
url: state.url+"/addrupdate",
method: 'put'
});
}
</script>
+259
View File
@@ -0,0 +1,259 @@
<template>
<el-card class='box-card' :body-style="{padding:'2px 8px'}" shadow='never'>
<template #header>
<el-row>
<el-col :span='10'>
<div style='line-height: 32px'>代码生成配置</div>
</el-col>
<el-col :span='14' style='text-align: right'>
<el-button type='success' @click='tabSave({formRef,state,proxy,route})' plain>保 存</el-button>
<el-button type='info' @click='tabClose({proxy,route})' plain>关 闭</el-button>
</el-col>
</el-row>
</template>
<div style='margin-top: 8px;margin-bottom: 8px'>
<el-form ref="formRef" class='zform' :model='form' label-width='140px'>
<el-tabs type='card' v-model='activeName'>
<el-tab-pane label='基本信息' name='tab1'>
<!-- <el-row style='border-top: 1px solid #d2d2d2;'>-->
<!-- <el-col :span='24'>-->
<!-- <el-form-item label='代码生成名称:' prop='name' :rules="[{ required: true, message: '代码不能为空'}]">-->
<!-- <div class='zinput'>-->
<!-- <el-input v-model='form.name'></el-input>-->
<!-- </div>-->
<!-- </el-form-item>-->
<!-- </el-col>-->
<!-- </el-row>-->
<el-row style='border-top: 1px solid #d2d2d2;'>
<el-col :span='6'>
<el-form-item label='表名称:'>
<div class='zinput'>
<el-input v-model='form.name'></el-input>
</div>
</el-form-item>
</el-col>
<el-col :span='6'>
<el-form-item label='表描述:'>
<div class='zinput'>
<el-input v-model='form.remark'></el-input>
</div>
</el-form-item>
</el-col>
<el-col :span='6'>
<el-form-item label='业务名:'>
<div class='zinput'>
<el-input v-model='form.bunam'></el-input>
</div>
</el-form-item>
</el-col>
<el-col :span='6'>
<el-form-item label='生成模式:'>
<div class='zinput'>
<el-select v-model='form.mode' placeholder='请选择' style='width: 100%'>
<el-option :value="'m1'" :label="'单表增删改查'"></el-option>
<el-option :value="'m2'" :label="'树表增删改查'"></el-option>
</el-select>
</div>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span='12'>
<el-form-item label='排序号:'>
<div class='zinput'>
<el-input-number v-model='form.ornum' controls-position='right' style='width: 100%'/>
</div>
</el-form-item>
</el-col>
<el-col :span='12'>
<el-form-item label='是否可用:'>
<div class='zinput'>
<el-switch v-model='form.avtag'>
</el-switch>
</div>
</el-form-item>
</el-col>
</el-row>
</el-tab-pane>
<el-tab-pane label='字段信息' name='tab2'>
<el-table border :data='form.fields' :row-style="{height: '36px'}" style='width: 100%'>
<el-table-column type='expand'>
<template #default='props'>
<el-row :gutter='10' style='background-color: white;border: 0;margin-left: 4px;margin-right: 4px'>
<el-col :span='12'>
<el-input style="font-family: 'Courier New', sans-serif; font-size:16px"
type='textarea' :rows='10' placeholder='显示隐藏控制函数'
v-model='props.row.func1'>
</el-input>
</el-col>
<el-col :span='12'>
<el-input style="font-family: 'Courier New', sans-serif; font-size:16px"
type='textarea' :rows='10' placeholder='选项选择后的触发函数'
v-model='props.row.func2'>
</el-input>
</el-col>
</el-row>
</template>
</el-table-column>
<el-table-column label='排序号' width='90'>
<template #default='scope'>
<el-input-number v-model='scope.row.ornum' controls-position='right' style='width: 100%'/>
</template>
</el-table-column>
<el-table-column label='字段名称' width='120'>
<template #default='scope'>
<el-input v-model='scope.row.name' required></el-input>
</template>
</el-table-column>
<el-table-column label='字段注释' width='160'>
<template #default='scope'>
<el-input v-model='scope.row.remark' required></el-input>
</template>
</el-table-column>
<el-table-column label='字段类型' width='160'>
<template #default='scope'>
<el-select v-model='scope.row.type' placeholder='请选择' style='width: 100%'>
<el-option :value="'string'" :label="'string'"></el-option>
<el-option :value="'int'" :label="'int'"></el-option>
<el-option :value="'long'" :label="'long'"></el-option>
<el-option :value="'date'" :label="'date'"></el-option>
<el-option :value="'bool'" :label="'bool'"></el-option>
<el-option :value="'decimal'" :label="'decimal'"></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label='备注'>
<template #default='scope'>
<el-input v-model='scope.row.notes' required></el-input>
</template>
</el-table-column>
<el-table-column fixed='right' label='操作' width='50' align='center'>
<template #header>
<el-icon :size='22' style='top: 5px;cursor: pointer' color='#666'>
<ele-CirclePlus @click='addItem'/>
</el-icon>
</template>
<template #default='scope'>
<el-icon :size='22' style='top: 3px;cursor: pointer'>
<ele-CircleClose @click='form.fields.splice(scope.$index, 1)'/>
</el-icon>
</template>
</el-table-column>
<!-- <el-table-column label="Name" width="180">-->
<!-- <template #default="scope">-->
<!-- <el-popover effect="light" trigger="hover" placement="top" width="auto">-->
<!-- <template #default>-->
<!-- <div>name: {{ scope.row.name }}</div>-->
<!-- <div>address: {{ scope.row.id }}</div>-->
<!-- </template>-->
<!-- <template #reference>-->
<!-- <el-tag>{{ scope.row.name }}</el-tag>-->
<!-- </template>-->
<!-- </el-popover>-->
<!-- </template>-->
<!-- </el-table-column>-->
</el-table>
</el-tab-pane>
<el-tab-pane label='其他信息' name='tab9'>
<el-row style='border-top: 1px solid #d2d2d2;'>
<el-col :span='24'>
<el-form-item label='备注:'>
<div class='zinput' style='height: auto'>
<el-input style="font-family: 'Courier New', Helvetica, Arial, sans-serif; font-size:16px"
type='textarea' :rows='4' v-model='form.notes'>
</el-input>
</div>
</el-form-item>
</el-col>
</el-row>
<el-row v-show='form.crtim'>
<el-col :span='6'>
<el-form-item label='创建人:'>
<div class='zinput'>
{{ form.crman ? form.crman.name : '' }}
</div>
</el-form-item>
</el-col>
<el-col :span='6'>
<el-form-item label='创建时间:'>
<div class='zinput'>
{{ form.crtim }}
</div>
</el-form-item>
</el-col>
<el-col :span='6'>
<el-form-item label='更新人:'>
<div class='zinput'>
{{ form.upman ? form.upman.name : '' }}
</div>
</el-form-item>
</el-col>
<el-col :span='6'>
<el-form-item label='更新时间:'>
<div class='zinput'>
{{ form.uptim }}
</div>
</el-form-item>
</el-col>
</el-row>
</el-tab-pane>
</el-tabs>
</el-form>
</div>
</el-card>
</template>
<script lang='ts'>
export default {name: 'AssCogeMainEdit'};
</script>
<script lang='ts' setup>
import {getCurrentInstance, onMounted, reactive, ref, toRefs} from 'vue';
import {editInit, tabSave, tabClose} from '/@/comps/page/edit';
import {useRoute} from 'vue-router';
import {uuid} from '/@/utils/xutil';
const formRef = ref();
const route = useRoute();
const {proxy} = getCurrentInstance() as any;
const state = reactive({
url: '/ass/coge/table',
params: {path: '', query: ''},
form: {avtag: true, fields: []} as any,
});
const {form} = toRefs(state);
const activeName = ref('tab1');
onMounted(async () => {
await editInit({state, route});
});
// 屏幕弹框逻辑
const addItem = () => {
if (form.value.id) {
form.value.fields.push({
id: uuid(), parid: form.value.id
})
} else {
form.value.fields.push({
id: uuid(),
})
}
};
//endregiton
</script>
<style scoped>
</style>
+118
View File
@@ -0,0 +1,118 @@
<template>
<div>
<el-card class='box-card'>
<template #header>
<el-row>
<el-col :span='14'>
<el-input v-model='state.form.name' placeholder='输入名称回车查询' clearable class='list-search' @keyup.enter='listQuery(state)' />
<el-button type='primary' @click='listQuery(state)' plain>查 询</el-button>
<el-button class='more-button' :icon='state.moreParams?ArrowUp:ArrowDown' plain @click='state.moreParams=!state.moreParams'/>
</el-col>
<el-col :span='10' style='text-align: right'>
<el-button type='success' :icon='Plus' @click='tabAdd(state.url)' plain>新增</el-button>
<!-- <el-button type='info' :icon='Upload' plain>导入</el-button>-->
<!-- <el-button type='info' :icon='Download' plain @click='listExp' >导出</el-button>-->
<el-button type='danger' :icon='Delete' :disabled='state.multiple' @click='listDelete(state)' plain>删除</el-button>
</el-col>
</el-row>
<div v-show='state.moreParams' class='more-params'>
<el-form :inline='true' label-width='100px'>
<el-form-item label='备注'>
<el-input v-model='state.form.notes' placeholder='输入备注' />
</el-form-item>
<el-form-item label='xxxxx'>
<el-input v-model='state.form.xx' />
</el-form-item>
<el-form-item />
</el-form>
</div>
</template>
<el-table height='400' :cell-style="{padding:'2px'}" :row-style="{height: '36px'}" v-loading='state.loading' :data='state.list'
border stripe @selection-change='listSelect($event,state)'>
<el-table-column type='selection' width='55' align='center' />
<el-table-column label='序号' type='index' width='55' align='center' />
<el-table-column label='代码生成名称' width='180'>
<template #default='scope'>
<span style='cursor:pointer;color: #3e9ece' @click='tabEdit(state.url,scope.row.id)'>{{ scope.row.name }}</span>
</template>
</el-table-column>
<el-table-column label='创建时间' prop='crtim' width='160' />
<el-table-column label='更新时间' prop='uptim' width='160' />
<el-table-column label='备注' prop='notes' />
<el-table-column label='操作' width='80' header-align='center' align="right">
<template #default="scope">
<el-icon title="预览代码" @click='showCode(scope.row.id)' style="cursor: pointer;font-size: 18px;top:2px;margin-right: 8px;color: #52C41A">
<View/>
</el-icon>
<el-icon title="生成代码" @click='genCode(scope.row.id)' style="cursor: pointer;font-size: 18px;top:2px;margin-right: 8px;color: #2874C5">
<Download/>
</el-icon>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change='listQuery(state)' @current-change='listQuery(state)'
class='mt8' :pager-count='5' :page-sizes='[10, 20, 30]' background
:total='state.total' v-model:current-page='state.form.page' v-model:page-size='state.form.pageSize'
layout='total, sizes, prev, pager, next, jumper'
/>
</el-card>
<Show ref="showRef"/>
</div>
</template>
<script lang='ts'>
export default { name: 'AssCogeMain' };
</script>
<script lang='ts' setup>
import { Plus, Delete, ArrowDown, ArrowUp,Download,View} from '@element-plus/icons-vue';
import {onMounted, reactive, ref} from 'vue';
import { listQuery, listDelete, tabAdd, tabEdit, listSelect } from '/@/comps/page/index';
import request from "/@/utils/request";
import Show from './show.vue';
const state = reactive({
url: '/ass/coge/table', loading: true, ids: [],moreParams: false,
form: {}, single: true, multiple: true, list: [], total: 0,
});
onMounted(() => {
listQuery(state);
});
const listExp=async ()=>{
await request({
url: state.url+"/download",
method: 'get',
params: {tanam:'aa'},
responseType: "blob",
});
}
const genCode=async (id:string)=>{
await request({
url: state.url+"/zip",
method: 'get',
params: {id},
responseType: "blob",
});
}
const showRef = ref() as any;
const showCode=async (id:string)=>{
const data= await request({
url: state.url+"/show",
method: 'get',
params: {id},
});
showRef.value.openModal(data)
}
</script>
<style scoped>
</style>
+63
View File
@@ -0,0 +1,63 @@
<template>
<el-dialog v-model='state.show' title='代码预览' draggable width='90%'>
<el-tabs v-model='activeName' type='card'>
<el-tab-pane v-for='code in codes' :key='code.id' :label='code.title' :name='code.title'>
<CodeMirror
v-model:value="code.content"
:options="state.cmOptions"
border
placeholder="test placeholder"
height="500px"
/>
</el-tab-pane>
</el-tabs>
</el-dialog>
</template>
<script lang='ts' setup>
import {defineExpose, reactive, ref, toRefs} from 'vue';
// import CodeMirror from 'codemirror';
import CodeMirror from "codemirror-editor-vue3";
import 'codemirror/lib/codemirror.css'; // 引入css文件
// import 'codemirror/theme/idea.css';
import 'codemirror/theme/darcula.css';
// import 'codemirror/mode/javascript/javascript.js'; // 引入语言模式 可以从 codemirror/mode/ 下引入多个
import 'codemirror/mode/clike/clike.js'; // 引入语言模式 可以从 codemirror/mode/ 下引入多个
//https://renncheung.github.io/codemirror-editor-vue3/instructions/props.html
const activeName = ref('Entity.cs');
const state = reactive({
show: false,
codes: [] as any,
cmOptions: {
readOnly: true,
// mode: 'text/x-nginx-conf', // Language mode
// mode: 'javascript', // Language mode
mode: 'text/x-csharp', // Language mode
theme: 'darcula', // Theme
lineNumbers: true, // Show line number
smartIndent: true, // Smart indent
indentUnit: 4, // The smart indent unit is 2 spaces in length
foldGutter: true, // Code folding
matchBrackets: true,
autoCloseBrackets: true,
styleActiveLine: true, // Display the style of the selected row
}
});
const {codes} = toRefs(state);
const openModal = async (data: any) => {
codes.value = data;
state.show = true;
};
defineExpose({openModal});
</script>
<style scoped>
</style>
+2 -2
View File
@@ -7,7 +7,7 @@
<el-form-item label='策略名称:' prop='name' :rules="[{ required: true, message: '策略名称不能为空'}]">
<el-input v-model='form.name'></el-input>
</el-form-item>
<el-form-item label='编号生成模式:' prop='numod'>
<el-form-item label='编号生成模式:' prop='numod' :rules="[{ required: true, message: '生成模式不能为空'}]">
<el-select v-model='form.numod' placeholder='请选择' style='width: 100%'>
<el-option :value="'nodate'" :label="'无日期,纯流水号'"></el-option>
<el-option :value="'yyyymmdd'" :label="'年月日YYYYMMDD+流水号'"></el-option>
@@ -20,7 +20,7 @@
<el-form-item label='编号前缀:' prop='nupre'>
<el-input v-model='form.nupre'></el-input>
</el-form-item>
<el-form-item label='编号长度:' prop='nulen'>
<el-form-item label='编号长度:' prop='nulen' :rules="[{ required: true, message: '编号长度不能为空'}]">
<el-input-number v-model='form.nulen' controls-position='right' style='width: 100%'/>
</el-form-item>
<el-form-item label='下一个编号:' prop='nunex'>
+1 -1
View File
@@ -45,7 +45,7 @@
<el-table-column label='创建时间' prop='crtim' width='150' />
<el-table-column label='创建人' prop='crman' width='60' />
<el-table-column label='更新时间' prop='uptim' width='150' />
<el-table-column label='更新人' prop='crman' width='60' />
<el-table-column label='更新人' prop='upman' width='60' />
</el-table>
<el-pagination
+3 -3
View File
@@ -8,10 +8,10 @@ import { useUserInfo } from '/@/stores/userInfo';
import { useTagsViewRoutes } from '/@/stores/tagsViewRoutes';
import { useRoutesList } from '/@/stores/routesList';
import { NextLoading } from '/@/utils/loading';
import {saRoutes} from '/@/router/saRoute';
import {sysRoutes} from '/@/router/sysRoute';
for (const saRoute of saRoutes) {
dynamicRoutes[0].children?.push(saRoute);
for (const sysRoute of sysRoutes) {
dynamicRoutes[0].children?.push(sysRoute);
}
+584 -701
View File
File diff suppressed because it is too large Load Diff
-512
View File
@@ -1,512 +0,0 @@
import { RouteRecordRaw } from 'vue-router';
export const saRoutes: Array<RouteRecordRaw> = [
{
path: '/te/prod',
name: 'teProd',
component: () => import('/@/layout/routerView/parent.vue'),
redirect: '/te/prod/model',
meta: {
title: '产品管理',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'iconfont icon-xitongshezhi',
},
children: [
{
path: '/te/prod/cate',
name: 'teProdCate',
component: () => import('/@/pages/te/prod/cate/index.vue'),
meta: {
title: '产品分类',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'iconfont icon-caidan',
},
},
{
path: '/te/prod/serie',
name: 'teProdSerie',
component: () => import('/@/pages/te/prod/serie/index.vue'),
meta: {
title: '产品系列',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'iconfont icon-caidan',
},
},
{
path: '/te/prod/model',
name: 'teProdModel',
component: () => import('/@/pages/te/prod/model/index.vue'),
meta: {
title: '产品型号',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'iconfont icon-caidan',
},
},
{
path: '/te/prod/version',
name: 'teProdVersion',
component: () => import('/@/pages/te/prod/version/index.vue'),
meta: {
title: '产品版本',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'iconfont icon-caidan',
},
},
{
path: '/te/prod/version/edit',
name: 'teProdVersionEdit',
component: () => import('/@/pages/te/prod/version/edit.vue'),
meta: {
title: '产品版本编辑',
isLink: '',
isHide: true,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'iconfont icon-caidan',
},
},
{
path: '/te/prod/test',
name: 'teProdTest',
component: () => import('/@/pages/te/prod/test/index.vue'),
meta: {
title: '产品测试',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'iconfont icon-caidan',
},
},
{
path: '/te/prod/test/edit',
name: 'teProdTestEdit',
component: () => import('/@/pages/te/prod/test/edit.vue'),
meta: {
title: '产品测试编辑',
isLink: '',
isHide: true,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'iconfont icon-caidan',
},
},
],
},
{
path: '/te/feat',
name: 'teFeat',
component: () => import('/@/layout/routerView/parent.vue'),
redirect: '/te/feat/param',
meta: {
title: '特性管理',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'iconfont icon-xitongshezhi',
},
children: [
{
path: '/te/feat/screen',
name: 'teFeatScreen',
component: () => import('/@/pages/te/feat/screen/index.vue'),
meta: {
title: '特性屏幕',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'iconfont icon-caidan',
},
},
{
path: '/te/feat/param',
name: 'teFeatParam',
component: () => import('/@/pages/te/feat/param/index.vue'),
meta: {
title: '特性参数',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'iconfont icon-caidan',
},
},
{
path: '/te/feat/param/edit',
name: 'teFeatParamEdit',
component: () => import('/@/pages/te/feat/param/edit.vue'),
meta: {
title: '参数编辑',
isLink: '',
isHide: true,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Comment',
},
},
{
path: '/te/feat/link',
name: 'teFeatLink',
component: () => import('/@/pages/te/feat/link/index.vue'),
meta: {
title: '特性联动',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'iconfont icon-caidan',
},
},
{
path: '/te/feat/link/edit',
name: 'teFeatLinkEdit',
component: () => import('/@/pages/te/feat/link/edit.vue'),
meta: {
title: '联动编辑',
isLink: '',
isHide: true,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'iconfont icon-caidan',
},
},
{
path: '/te/feat/check',
name: 'teFeatCheck',
component: () => import('/@/pages/te/feat/check/index.vue'),
meta: {
title: '特性校验',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'iconfont icon-caidan',
},
},
{
path: '/te/feat/check/edit',
name: 'teFeatCheckEdit',
component: () => import('/@/pages/te/feat/check/edit.vue'),
meta: {
title: '校验编辑',
isLink: '',
isHide: true,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'iconfont icon-caidan',
},
},
{
path: '/te/feat/drive',
name: 'teFeatDrive',
component: () => import('/@/pages/te/feat/drive/index.vue'),
meta: {
title: '特性驱动',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'iconfont icon-caidan',
},
},
{
path: '/te/feat/drive/edit',
name: 'teFeatDriveEdit',
component: () => import('/@/pages/te/feat/drive/edit.vue'),
meta: {
title: '驱动编辑',
isLink: '',
isHide: true,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'iconfont icon-caidan',
},
},
// {
// path: '/te/feat/comp',
// name: 'teFeatComp',
// component: () => import('/@/pages/te/feat/comp/index.vue'),
// meta: {
// title: '特性组件',
// isLink: '',
// isHide: false,
// isKeepAlive: true,
// isAffix: false,
// isIframe: false,
// roles: ['admin'],
// icon: 'iconfont icon-caidan',
// },
// },
// {
// path: '/te/feat/comp/edit',
// name: 'teFeatCompEdit',
// component: () => import('/@/pages/te/feat/comp/edit.vue'),
// meta: {
// title: '组件编辑',
// isLink: '',
// isHide: true,
// isKeepAlive: true,
// isAffix: false,
// isIframe: false,
// roles: ['admin'],
// icon: 'iconfont icon-caidan',
// },
// },
],
},
{
path: '/te/allot',
name: 'teAllot',
component: () => import('/@/layout/routerView/parent.vue'),
redirect: '/te/allot/param',
meta: {
title: '分配管理',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'iconfont icon-xitongshezhi',
},
children: [
{
path: '/te/allot/param',
name: 'teAllotParam',
component: () => import('/@/pages/te/allot/param/index.vue'),
meta: {
title: '参数分配',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'iconfont icon-caidan',
},
},
{
path: '/te/allot/param/edit',
name: 'teAllotParamEdit',
component: () => import('/@/pages/te/allot/param/edit.vue'),
meta: {
title: '参数分配编辑',
isLink: '',
isHide: true,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Comment',
},
},
{
path: '/te/allot/link',
name: 'teAllotLink',
component: () => import('/@/pages/te/allot/link/index.vue'),
meta: {
title: '联动分配',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'iconfont icon-caidan',
},
},
{
path: '/te/allot/link/edit',
name: 'teAllotLinkEdit',
component: () => import('/@/pages/te/allot/link/edit.vue'),
meta: {
title: '联动分配编辑',
isLink: '',
isHide: true,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Comment',
},
},
{
path: '/te/allot/check',
name: 'teAllotCheck',
component: () => import('/@/pages/te/allot/check/index.vue'),
meta: {
title: '校验分配',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'iconfont icon-caidan',
},
},
{
path: '/te/allot/check/edit',
name: 'teAllotCheckEdit',
component: () => import('/@/pages/te/allot/check/edit.vue'),
meta: {
title: '校验分配编辑',
isLink: '',
isHide: true,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Comment',
},
},
{
path: '/te/allot/drive',
name: 'teAllotDrive',
component: () => import('/@/pages/te/allot/drive/index.vue'),
meta: {
title: '驱动分配',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'iconfont icon-caidan',
},
},
{
path: '/te/allot/drive/edit',
name: 'teAllotDriveEdit',
component: () => import('/@/pages/te/allot/drive/edit.vue'),
meta: {
title: '驱动分配编辑',
isLink: '',
isHide: true,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Comment',
},
},
],
},
{
path: '/te/tran',
name: 'teTran',
component: () => import('/@/layout/routerView/parent.vue'),
redirect: '/te/tran/main',
meta: {
title: '转换管理',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'iconfont icon-xitongshezhi',
},
children: [
{
path: '/te/tran/cate',
name: 'teTranCate',
component: () => import('/@/pages/te/tran/cate/index.vue'),
meta: {
title: '转换分类',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'iconfont icon-caidan',
},
},
{
path: '/te/tran/main',
name: 'teTranMain',
component: () => import('/@/pages/te/tran/main/index.vue'),
meta: {
title: '转换映射',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'iconfont icon-caidan',
},
},
{
path: '/te/tran/main/edit',
name: 'teTranMainEdit',
component: () => import('/@/pages/te/tran/main/edit.vue'),
meta: {
title: '转换编辑',
isLink: '',
isHide: true,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'iconfont icon-caidan',
},
},
],
},
];
+782
View File
@@ -0,0 +1,782 @@
import { RouteRecordRaw } from 'vue-router';
export const sysRoutes: Array<RouteRecordRaw> = [
{
path: '/sys',
name: 'Sys',
component: () => import('/@/layout/routerView/parent.vue'),
redirect: '/sys/org/user',
meta: {
title: '系统管理',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin', 'common'],
icon: 'iconfont icon-xitongshezhi',
},
children: [
{
path: '/sys/org',
name: 'SysOrg',
component: () => import('/@/layout/routerView/parent.vue'),
redirect: '/sys/org/user',
meta: {
title: '组织架构',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin', 'common'],
icon: 'ele-OfficeBuilding',
},
children: [
{
path: '/sys/org/dept',
name: 'SysOrgDept',
component: () => import('/@/pages/sys/org/dept/index.vue'),
meta: {
title: '部门管理',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin', 'common'],
icon: 'ele-SetUp',
},
},
{
path: '/sys/org/dept/edit',
name: 'SysOrgDeptEdit',
component: () => import('/@/pages/sys/org/dept/edit.vue'),
meta: {
title: '部门编辑',
isLink: '',
isHide: true,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'iconfont icon-caidan',
},
},
{
path: '/sys/org/user',
name: 'SysOrgUser',
component: () => import('/@/pages/sys/org/user/index.vue'),
meta: {
title: '用户管理',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-User',
},
},
{
path: '/sys/org/user/edit',
name: 'SysOrgUserEdit',
component: () => import('/@/pages/sys/org/user/edit.vue'),
meta: {
title: '用户编辑',
isLink: '',
isHide: true,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'iconfont icon-caidan',
},
},
{
path: '/sys/org/post',
name: 'SysOrgPost',
component: () => import('/@/pages/sys/org/post/index.vue'),
meta: {
title: '岗位管理',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Help',
},
},
{
path: '/sys/org/post/edit',
name: 'SysOrgPostEdit',
component: () => import('/@/pages/sys/org/post/edit.vue'),
meta: {
title: '岗位编辑',
isLink: '',
isHide: true,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'iconfont icon-caidan',
},
},
{
path: '/sys/org/group',
name: 'SysOrgGroup',
component: () => import('/@/pages/sys/org/group/index.vue'),
meta: {
title: '群组管理',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Guide',
},
},
{
path: '/sys/org/group/edit',
name: 'SysOrgGroupEdit',
component: () => import('/@/pages/sys/org/group/edit.vue'),
meta: {
title: '群组编辑',
isLink: '',
isHide: true,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'iconfont icon-caidan',
},
},
],
},
{
path: '/sys/api',
name: 'SysApi',
component: () => import('/@/layout/routerView/parent.vue'),
redirect: '/sys/api/main',
meta: {
title: '接口管理',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Lock',
},
children: [
{
path: '/sys/api/main',
name: 'SysApiMain',
component: () => import('/@/pages/sys/api/main/index.vue'),
meta: {
title: '接口清单',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Tickets',
},
},
{
path: '/sys/api/main/edit',
name: 'SysApiMainEdit',
component: () => import('/@/pages/sys/api/main/edit.vue'),
meta: {
title: '接口编辑',
isLink: '',
isHide: true,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Tickets',
},
},
{
path: '/sys/api/role',
name: 'SysApiRole',
component: () => import('/@/pages/sys/api/role/index.vue'),
meta: {
title: '接口角色',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Tickets',
},
},
{
path: '/sys/api/role/edit',
name: 'SysApiRoleEdit',
component: () => import('/@/pages/sys/api/role/edit.vue'),
meta: {
title: '角色编辑',
isLink: '',
isHide: true,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
},
},
],
},
{
path: '/sys/portal',
name: 'SysPortal',
component: () => import('/@/layout/routerView/parent.vue'),
redirect: '/sys/portal/main',
meta: {
title: '门户管理',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Notebook',
},
children: [
{
path: '/sys/portal/main',
name: 'SysPortalMain',
component: () => import('/@/pages/sys/portal/main/index.vue'),
meta: {
title: '门户列表',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Tickets',
},
},
{
path: '/sys/portal/main/edit',
name: 'SysPortalMainEdit',
component: () => import('/@/pages/sys/portal/main/edit.vue'),
meta: {
title: '门户编辑',
isLink: '',
isHide: true,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Tickets',
},
},
{
path: '/sys/portal/menu',
name: 'SysPortalMenu',
component: () => import('/@/pages/sys/portal/menu/index.vue'),
meta: {
title: '门户菜单',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Tickets',
},
},
{
path: '/sys/portal/menu/edit',
name: 'SysPortalMenuEdit',
component: () => import('/@/pages/sys/portal/menu/edit.vue'),
meta: {
title: '菜单编辑',
isLink: '',
isHide: true,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Tickets',
},
},
{
path: '/sys/portal/role',
name: 'SysPortalRole',
component: () => import('/@/pages/sys/portal/role/index.vue'),
meta: {
title: '门户角色',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Tickets',
},
},
{
path: '/sys/portal/role/edit',
name: 'SysPortalRoleEdit',
component: () => import('/@/pages/sys/portal/role/edit.vue'),
meta: {
title: '角色编辑',
isLink: '',
isHide: true,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Tickets',
},
},
],
},
{
path: '/sys/job',
name: 'SysJob',
component: () => import('/@/layout/routerView/parent.vue'),
redirect: '/sys/job/main',
meta: {
title: '定时任务',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-AlarmClock',
},
children: [
{
path: '/sys/job/main',
name: 'SysJobMain',
component: () => import('/@/pages/sys/job/main/index.vue'),
meta: {
title: '任务清单',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Tickets',
},
},
{
path: '/sys/job/main/edit',
name: 'SysJobMainEdit',
component: () => import('/@/pages/sys/job/main/edit.vue'),
meta: {
title: '任务编辑',
isLink: '',
isHide: true,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
},
},
{
path: '/sys/job/log',
name: 'SysJobLog',
component: () => import('/@/pages/sys/job/log/index.vue'),
meta: {
title: '任务日志',
isLink: '',
isHide: false,
isKeepAlive: false,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Tickets',
},
},
],
},
{
path: '/sys/log',
name: 'SysLog',
component: () => import('/@/layout/routerView/parent.vue'),
redirect: '/sys/log/login',
meta: {
title: '系统日志',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Notification',
},
children: [
{
path: '/sys/log/login',
name: 'SysLogLogin',
component: () => import('/@/pages/sys/log/login/index.vue'),
meta: {
title: '登录日志',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Tickets',
},
},
// {
// path: '/sys/log/login/view',
// name: 'SysLogLoginView',
// component: () => import('/@/pages/sys/log/login/view.vue'),
// meta: {
// title: '登录日志查看',
// isLink: '',
// isHide: true,
// isKeepAlive: true,
// isAffix: false,
// isIframe: false,
// roles: ['admin'],
// },
// },
],
},
],
},
{
path: '/ass',
name: 'Ass',
component: () => import('/@/layout/routerView/parent.vue'),
redirect: '/ass/dict/main',
meta: {
title: '辅助工具',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Help',
},
children: [
{
path: '/ass/dict/main',
name: 'AssDictMain',
component: () => import('/@/pages/ass/dict/main/index.vue'),
meta: {
title: '数据字典',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Tickets',
},
},
{
path: '/ass/dict/data',
name: 'AssDictData',
component: () => import('/@/pages/ass/dict/data/index.vue'),
meta: {
title: '字典配置',
isLink: '',
isHide: true,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Tickets',
},
},
{
path: '/ass/num/main',
name: 'AssNumMain',
component: () => import('/@/pages/ass/num/main/index.vue'),
meta: {
title: '编号策略',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Tickets',
},
},
{
path: '/ass/addr/main',
name: 'AssAddrMain',
component: () => import('/@/pages/ass/addr/main/index.vue'),
meta: {
title: '省市区县',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Tickets',
},
},
{
path: '/ass/coge/table',
name: 'AssCogeTable',
component: () => import('/@/pages/ass/coge/table/index.vue'),
meta: {
title: '代码生成',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Tickets',
},
},
{
path: '/ass/coge/table/edit',
name: 'AssCogeTableEdit',
component: () => import('/@/pages/ass/coge/table/edit.vue'),
meta: {
title: '代码生成配置',
isLink: '',
isHide: true,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Tickets',
},
},
],
},
{
path: '/oa',
name: 'Oa',
component: () => import('/@/layout/routerView/parent.vue'),
redirect: '/oa/flow/main',
meta: {
title: '流程管理',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Connection',
},
children: [
{
path: '/oa/flow/cate',
name: 'OaFlowCate',
component: () => import('/@/pages/oa/flow/cate/index.vue'),
meta: {
title: '流程分类',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Tickets',
},
},
{
path: '/oa/flow/cate/edit',
name: 'OaFlowCateEdit',
component: () => import('/@/pages/oa/flow/cate/edit.vue'),
meta: {
title: '流程分类编辑',
isLink: '',
isHide: true,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Tickets',
},
},
{
path: '/oa/flow/temp',
name: 'OaFlowTemp',
component: () => import('/@/pages/oa/flow/temp/index.vue'),
meta: {
title: '流程模板',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Tickets',
},
},
{
path: '/oa/flow/temp/edit',
name: 'OaFlowTempEdit',
component: () => import('/@/pages/oa/flow/temp/edit.vue'),
meta: {
title: '流程模板编辑',
isLink: '',
isHide: true,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Tickets',
},
},
{
path: '/oa/flow/main',
name: 'OaFlowMain',
component: () => import('/@/pages/oa/flow/main/index.vue'),
meta: {
title: '流程实例',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Tickets',
},
},
{
path: '/oa/flow/main/view',
name: 'OaFlowMainView',
component: () => import('/@/pages/oa/flow/main/view.vue'),
meta: {
title: '流程查看',
isLink: '',
isHide: true,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Tickets',
},
},
{
path: '/oa/flow/main/edit',
name: 'OaFlowMainEdit',
component: () => import('/@/pages/oa/flow/main/edit.vue'),
meta: {
title: '流程编辑',
isLink: '',
isHide: true,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Tickets',
},
},
],
},
// {
// path: '/sys/todo',
// name: 'SysTodo',
// component: () => import('/@/layout/routerView/parent.vue'),
// redirect: '/sys/todo/main',
// meta: {
// title: '待办管理',
// isLink: '',
// isHide: false,
// isKeepAlive: true,
// isAffix: false,
// isIframe: false,
// roles: ['admin'],
// icon: 'ele-Bell',
// },
// children: [
// {
// path: '/sys/todo/main',
// name: 'SysTodoMain',
// component: () => import('/@/pages/sys/todo/main/index.vue'),
// meta: {
// title: '待办清单',
// isLink: '',
// isHide: false,
// isKeepAlive: true,
// isAffix: false,
// isIframe: false,
// roles: ['admin'],
// icon: 'ele-Tickets',
// },
// },
// {
// path: '/sys/todo/main/edit',
// name: 'SysTodoMainEdit',
// component: () => import('/@/pages/sys/todo/main/edit.vue'),
// meta: {
// title: '待办编辑',
// isLink: '',
// isHide: true,
// isKeepAlive: true,
// isAffix: false,
// isIframe: false,
// roles: ['admin'],
// icon: 'ele-Tickets',
// },
// },
// ],
// },
{
path: '/demo',
name: 'Demo',
component: () => import('/@/layout/routerView/parent.vue'),
redirect: '/sa/cust/main',
meta: {
title: 'DEMO',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-GobletSquare',
},
children: [
{
path: '/sa/agent/main',
name: 'SaAgentMain',
component: () => import('/@/pages/sa/agent/main/index.vue'),
meta: {
title: '代理商清单',
isLink: '',
isHide: false,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Tickets',
},
},
{
path: '/sa/agent/main/edit',
name: 'SaAgentMainEdit',
component: () => import('/@/pages/sa/agent/main/edit.vue'),
meta: {
title: '代理商维护',
isLink: '',
isHide: true,
isKeepAlive: true,
isAffix: false,
isIframe: false,
roles: ['admin'],
icon: 'ele-Tickets',
},
},
],
},
];