mirror of
https://gitee.com/vben/vben-web.git
synced 2026-10-06 14:13:10 +08:00
代码生成器 雏形
This commit is contained in:
Generated
+29
@@ -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
@@ -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",
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
@@ -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'>
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
File diff suppressed because it is too large
Load Diff
@@ -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',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
@@ -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',
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user