Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
F
finance-manage
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
finance-oa
finance-manage
Commits
d2b61762
Commit
d2b61762
authored
Sep 08, 2021
by
稚屿
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修复代码生成页面数据编辑保存之后总是跳转第一页的问题
parent
a5e38f6f
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
735 additions
and
732 deletions
+735
-732
ruoyi-ui/src/router/index.js
ruoyi-ui/src/router/index.js
+160
-160
ruoyi-ui/src/views/tool/gen/editTable.vue
ruoyi-ui/src/views/tool/gen/editTable.vue
+232
-232
ruoyi-ui/src/views/tool/gen/index.vue
ruoyi-ui/src/views/tool/gen/index.vue
+343
-340
No files found.
ruoyi-ui/src/router/index.js
View file @
d2b61762
import
Vue
from
'
vue
'
import
Vue
from
'
vue
'
import
Router
from
'
vue-router
'
import
Router
from
'
vue-router
'
Vue
.
use
(
Router
)
Vue
.
use
(
Router
)
/* Layout */
/* Layout */
import
Layout
from
'
@/layout
'
import
Layout
from
'
@/layout
'
/**
/**
* Note: 路由配置项
* Note: 路由配置项
*
*
* hidden: true // 当设置 true 的时候该路由不会再侧边栏出现 如401,login等页面,或者如一些编辑页面/edit/1
* hidden: true // 当设置 true 的时候该路由不会再侧边栏出现 如401,login等页面,或者如一些编辑页面/edit/1
* alwaysShow: true // 当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式--如组件页面
* alwaysShow: true // 当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式--如组件页面
* // 只有一个时,会将那个子路由当做根路由显示在侧边栏--如引导页面
* // 只有一个时,会将那个子路由当做根路由显示在侧边栏--如引导页面
* // 若你想不管路由下面的 children 声明的个数都显示你的根路由
* // 若你想不管路由下面的 children 声明的个数都显示你的根路由
* // 你可以设置 alwaysShow: true,这样它就会忽略之前定义的规则,一直显示根路由
* // 你可以设置 alwaysShow: true,这样它就会忽略之前定义的规则,一直显示根路由
* redirect: noRedirect // 当设置 noRedirect 的时候该路由在面包屑导航中不可被点击
* redirect: noRedirect // 当设置 noRedirect 的时候该路由在面包屑导航中不可被点击
* name:'router-name' // 设定路由的名字,一定要填写不然使用<keep-alive>时会出现各种问题
* name:'router-name' // 设定路由的名字,一定要填写不然使用<keep-alive>时会出现各种问题
* query: '{"id": 1, "name": "ry"}' // 访问路由的默认传递参数
* query: '{"id": 1, "name": "ry"}' // 访问路由的默认传递参数
* meta : {
* meta : {
noCache: true // 如果设置为true,则不会被 <keep-alive> 缓存(默认 false)
noCache: true // 如果设置为true,则不会被 <keep-alive> 缓存(默认 false)
title: 'title' // 设置该路由在侧边栏和面包屑中展示的名字
title: 'title' // 设置该路由在侧边栏和面包屑中展示的名字
icon: 'svg-name' // 设置该路由的图标,对应路径src/assets/icons/svg
icon: 'svg-name' // 设置该路由的图标,对应路径src/assets/icons/svg
breadcrumb: false // 如果设置为false,则不会在breadcrumb面包屑中显示
breadcrumb: false // 如果设置为false,则不会在breadcrumb面包屑中显示
activeMenu: '/system/user' // 当路由设置了该属性,则会高亮相对应的侧边栏。
activeMenu: '/system/user' // 当路由设置了该属性,则会高亮相对应的侧边栏。
}
}
*/
*/
// 公共路由
// 公共路由
export
const
constantRoutes
=
[
export
const
constantRoutes
=
[
{
{
path
:
'
/redirect
'
,
path
:
'
/redirect
'
,
component
:
Layout
,
component
:
Layout
,
hidden
:
true
,
hidden
:
true
,
children
:
[
children
:
[
{
{
path
:
'
/redirect/:path(.*)
'
,
path
:
'
/redirect/:path(.*)
'
,
component
:
(
resolve
)
=>
require
([
'
@/views/redirect
'
],
resolve
)
component
:
(
resolve
)
=>
require
([
'
@/views/redirect
'
],
resolve
)
}
}
]
]
},
},
{
{
path
:
'
/login
'
,
path
:
'
/login
'
,
component
:
(
resolve
)
=>
require
([
'
@/views/login
'
],
resolve
),
component
:
(
resolve
)
=>
require
([
'
@/views/login
'
],
resolve
),
hidden
:
true
hidden
:
true
},
},
{
{
path
:
'
/register
'
,
path
:
'
/register
'
,
component
:
(
resolve
)
=>
require
([
'
@/views/register
'
],
resolve
),
component
:
(
resolve
)
=>
require
([
'
@/views/register
'
],
resolve
),
hidden
:
true
hidden
:
true
},
},
{
{
path
:
'
/404
'
,
path
:
'
/404
'
,
component
:
(
resolve
)
=>
require
([
'
@/views/error/404
'
],
resolve
),
component
:
(
resolve
)
=>
require
([
'
@/views/error/404
'
],
resolve
),
hidden
:
true
hidden
:
true
},
},
{
{
path
:
'
/401
'
,
path
:
'
/401
'
,
component
:
(
resolve
)
=>
require
([
'
@/views/error/401
'
],
resolve
),
component
:
(
resolve
)
=>
require
([
'
@/views/error/401
'
],
resolve
),
hidden
:
true
hidden
:
true
},
},
{
{
path
:
''
,
path
:
''
,
component
:
Layout
,
component
:
Layout
,
redirect
:
'
index
'
,
redirect
:
'
index
'
,
children
:
[
children
:
[
{
{
path
:
'
index
'
,
path
:
'
index
'
,
component
:
(
resolve
)
=>
require
([
'
@/views/index
'
],
resolve
),
component
:
(
resolve
)
=>
require
([
'
@/views/index
'
],
resolve
),
name
:
'
Index
'
,
name
:
'
Index
'
,
meta
:
{
title
:
'
首页
'
,
icon
:
'
dashboard
'
,
affix
:
true
}
meta
:
{
title
:
'
首页
'
,
icon
:
'
dashboard
'
,
affix
:
true
}
}
}
]
]
},
},
{
{
path
:
'
/user
'
,
path
:
'
/user
'
,
component
:
Layout
,
component
:
Layout
,
hidden
:
true
,
hidden
:
true
,
redirect
:
'
noredirect
'
,
redirect
:
'
noredirect
'
,
children
:
[
children
:
[
{
{
path
:
'
profile
'
,
path
:
'
profile
'
,
component
:
(
resolve
)
=>
require
([
'
@/views/system/user/profile/index
'
],
resolve
),
component
:
(
resolve
)
=>
require
([
'
@/views/system/user/profile/index
'
],
resolve
),
name
:
'
Profile
'
,
name
:
'
Profile
'
,
meta
:
{
title
:
'
个人中心
'
,
icon
:
'
user
'
}
meta
:
{
title
:
'
个人中心
'
,
icon
:
'
user
'
}
}
}
]
]
},
},
{
{
path
:
'
/system/user-auth
'
,
path
:
'
/system/user-auth
'
,
component
:
Layout
,
component
:
Layout
,
hidden
:
true
,
hidden
:
true
,
children
:
[
children
:
[
{
{
path
:
'
role/:userId(
\\
d+)
'
,
path
:
'
role/:userId(
\\
d+)
'
,
component
:
(
resolve
)
=>
require
([
'
@/views/system/user/authRole
'
],
resolve
),
component
:
(
resolve
)
=>
require
([
'
@/views/system/user/authRole
'
],
resolve
),
name
:
'
AuthRole
'
,
name
:
'
AuthRole
'
,
meta
:
{
title
:
'
分配角色
'
,
activeMenu
:
'
/system/user
'
}
meta
:
{
title
:
'
分配角色
'
,
activeMenu
:
'
/system/user
'
}
}
}
]
]
},
},
{
{
path
:
'
/system/role-auth
'
,
path
:
'
/system/role-auth
'
,
component
:
Layout
,
component
:
Layout
,
hidden
:
true
,
hidden
:
true
,
children
:
[
children
:
[
{
{
path
:
'
user/:roleId(
\\
d+)
'
,
path
:
'
user/:roleId(
\\
d+)
'
,
component
:
(
resolve
)
=>
require
([
'
@/views/system/role/authUser
'
],
resolve
),
component
:
(
resolve
)
=>
require
([
'
@/views/system/role/authUser
'
],
resolve
),
name
:
'
AuthUser
'
,
name
:
'
AuthUser
'
,
meta
:
{
title
:
'
分配用户
'
,
activeMenu
:
'
/system/role
'
}
meta
:
{
title
:
'
分配用户
'
,
activeMenu
:
'
/system/role
'
}
}
}
]
]
},
},
{
{
path
:
'
/system/dict-data
'
,
path
:
'
/system/dict-data
'
,
component
:
Layout
,
component
:
Layout
,
hidden
:
true
,
hidden
:
true
,
children
:
[
children
:
[
{
{
path
:
'
index/:dictId(
\\
d+)
'
,
path
:
'
index/:dictId(
\\
d+)
'
,
component
:
(
resolve
)
=>
require
([
'
@/views/system/dict/data
'
],
resolve
),
component
:
(
resolve
)
=>
require
([
'
@/views/system/dict/data
'
],
resolve
),
name
:
'
Data
'
,
name
:
'
Data
'
,
meta
:
{
title
:
'
字典数据
'
,
activeMenu
:
'
/system/dict
'
}
meta
:
{
title
:
'
字典数据
'
,
activeMenu
:
'
/system/dict
'
}
}
}
]
]
},
},
{
{
path
:
'
/monitor/job-log
'
,
path
:
'
/monitor/job-log
'
,
component
:
Layout
,
component
:
Layout
,
hidden
:
true
,
hidden
:
true
,
children
:
[
children
:
[
{
{
path
:
'
index
'
,
path
:
'
index
'
,
component
:
(
resolve
)
=>
require
([
'
@/views/monitor/job/log
'
],
resolve
),
component
:
(
resolve
)
=>
require
([
'
@/views/monitor/job/log
'
],
resolve
),
name
:
'
JobLog
'
,
name
:
'
JobLog
'
,
meta
:
{
title
:
'
调度日志
'
,
activeMenu
:
'
/monitor/job
'
}
meta
:
{
title
:
'
调度日志
'
,
activeMenu
:
'
/monitor/job
'
}
}
}
]
]
},
},
{
{
path
:
'
/tool/gen-edit
'
,
path
:
'
/tool/gen-edit
'
,
component
:
Layout
,
component
:
Layout
,
hidden
:
true
,
hidden
:
true
,
children
:
[
children
:
[
{
{
path
:
'
index
/:tableId(
\\
d+)
'
,
path
:
'
index
'
,
component
:
(
resolve
)
=>
require
([
'
@/views/tool/gen/editTable
'
],
resolve
),
component
:
(
resolve
)
=>
require
([
'
@/views/tool/gen/editTable
'
],
resolve
),
name
:
'
GenEdit
'
,
name
:
'
GenEdit
'
,
meta
:
{
title
:
'
修改生成配置
'
,
activeMenu
:
'
/tool/gen
'
}
meta
:
{
title
:
'
修改生成配置
'
,
activeMenu
:
'
/tool/gen
'
}
}
}
]
]
}
}
]
]
export
default
new
Router
({
export
default
new
Router
({
mode
:
'
history
'
,
// 去掉url中的#
mode
:
'
history
'
,
// 去掉url中的#
scrollBehavior
:
()
=>
({
y
:
0
}),
scrollBehavior
:
()
=>
({
y
:
0
}),
routes
:
constantRoutes
routes
:
constantRoutes
})
})
ruoyi-ui/src/views/tool/gen/editTable.vue
View file @
d2b61762
<
template
>
<
template
>
<el-card>
<el-card>
<el-tabs
v-model=
"activeName"
>
<el-tabs
v-model=
"activeName"
>
<el-tab-pane
label=
"基本信息"
name=
"basic"
>
<el-tab-pane
label=
"基本信息"
name=
"basic"
>
<basic-info-form
ref=
"basicInfo"
:info=
"info"
/>
<basic-info-form
ref=
"basicInfo"
:info=
"info"
/>
</el-tab-pane>
</el-tab-pane>
<el-tab-pane
label=
"字段信息"
name=
"cloum"
>
<el-tab-pane
label=
"字段信息"
name=
"cloum"
>
<el-table
ref=
"dragTable"
:data=
"cloumns"
row-key=
"columnId"
:max-height=
"tableHeight"
>
<el-table
ref=
"dragTable"
:data=
"cloumns"
row-key=
"columnId"
:max-height=
"tableHeight"
>
<el-table-column
label=
"序号"
type=
"index"
min-width=
"5%"
class-name=
"allowDrag"
/>
<el-table-column
label=
"序号"
type=
"index"
min-width=
"5%"
class-name=
"allowDrag"
/>
<el-table-column
<el-table-column
label=
"字段列名"
label=
"字段列名"
prop=
"columnName"
prop=
"columnName"
min-width=
"10%"
min-width=
"10%"
:show-overflow-tooltip=
"true"
:show-overflow-tooltip=
"true"
/>
/>
<el-table-column
label=
"字段描述"
min-width=
"10%"
>
<el-table-column
label=
"字段描述"
min-width=
"10%"
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
<el-input
v-model=
"scope.row.columnComment"
></el-input>
<el-input
v-model=
"scope.row.columnComment"
></el-input>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
label=
"物理类型"
label=
"物理类型"
prop=
"columnType"
prop=
"columnType"
min-width=
"10%"
min-width=
"10%"
:show-overflow-tooltip=
"true"
:show-overflow-tooltip=
"true"
/>
/>
<el-table-column
label=
"Java类型"
min-width=
"11%"
>
<el-table-column
label=
"Java类型"
min-width=
"11%"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-select
v-model=
"scope.row.javaType"
>
<el-select
v-model=
"scope.row.javaType"
>
<el-option
label=
"Long"
value=
"Long"
/>
<el-option
label=
"Long"
value=
"Long"
/>
<el-option
label=
"String"
value=
"String"
/>
<el-option
label=
"String"
value=
"String"
/>
<el-option
label=
"Integer"
value=
"Integer"
/>
<el-option
label=
"Integer"
value=
"Integer"
/>
<el-option
label=
"Double"
value=
"Double"
/>
<el-option
label=
"Double"
value=
"Double"
/>
<el-option
label=
"BigDecimal"
value=
"BigDecimal"
/>
<el-option
label=
"BigDecimal"
value=
"BigDecimal"
/>
<el-option
label=
"Date"
value=
"Date"
/>
<el-option
label=
"Date"
value=
"Date"
/>
</el-select>
</el-select>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"java属性"
min-width=
"10%"
>
<el-table-column
label=
"java属性"
min-width=
"10%"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-input
v-model=
"scope.row.javaField"
></el-input>
<el-input
v-model=
"scope.row.javaField"
></el-input>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"插入"
min-width=
"5%"
>
<el-table-column
label=
"插入"
min-width=
"5%"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-checkbox
true-label=
"1"
v-model=
"scope.row.isInsert"
></el-checkbox>
<el-checkbox
true-label=
"1"
v-model=
"scope.row.isInsert"
></el-checkbox>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"编辑"
min-width=
"5%"
>
<el-table-column
label=
"编辑"
min-width=
"5%"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-checkbox
true-label=
"1"
v-model=
"scope.row.isEdit"
></el-checkbox>
<el-checkbox
true-label=
"1"
v-model=
"scope.row.isEdit"
></el-checkbox>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"列表"
min-width=
"5%"
>
<el-table-column
label=
"列表"
min-width=
"5%"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-checkbox
true-label=
"1"
v-model=
"scope.row.isList"
></el-checkbox>
<el-checkbox
true-label=
"1"
v-model=
"scope.row.isList"
></el-checkbox>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"查询"
min-width=
"5%"
>
<el-table-column
label=
"查询"
min-width=
"5%"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-checkbox
true-label=
"1"
v-model=
"scope.row.isQuery"
></el-checkbox>
<el-checkbox
true-label=
"1"
v-model=
"scope.row.isQuery"
></el-checkbox>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"查询方式"
min-width=
"10%"
>
<el-table-column
label=
"查询方式"
min-width=
"10%"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-select
v-model=
"scope.row.queryType"
>
<el-select
v-model=
"scope.row.queryType"
>
<el-option
label=
"="
value=
"EQ"
/>
<el-option
label=
"="
value=
"EQ"
/>
<el-option
label=
"!="
value=
"NE"
/>
<el-option
label=
"!="
value=
"NE"
/>
<el-option
label=
">"
value=
"GT"
/>
<el-option
label=
">"
value=
"GT"
/>
<el-option
label=
">="
value=
"GTE"
/>
<el-option
label=
">="
value=
"GTE"
/>
<el-option
label=
"
<
"
value=
"LT"
/>
<el-option
label=
"
<
"
value=
"LT"
/>
<el-option
label=
"
<
="
value=
"LTE"
/>
<el-option
label=
"
<
="
value=
"LTE"
/>
<el-option
label=
"LIKE"
value=
"LIKE"
/>
<el-option
label=
"LIKE"
value=
"LIKE"
/>
<el-option
label=
"BETWEEN"
value=
"BETWEEN"
/>
<el-option
label=
"BETWEEN"
value=
"BETWEEN"
/>
</el-select>
</el-select>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"必填"
min-width=
"5%"
>
<el-table-column
label=
"必填"
min-width=
"5%"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-checkbox
true-label=
"1"
v-model=
"scope.row.isRequired"
></el-checkbox>
<el-checkbox
true-label=
"1"
v-model=
"scope.row.isRequired"
></el-checkbox>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"显示类型"
min-width=
"12%"
>
<el-table-column
label=
"显示类型"
min-width=
"12%"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-select
v-model=
"scope.row.htmlType"
>
<el-select
v-model=
"scope.row.htmlType"
>
<el-option
label=
"文本框"
value=
"input"
/>
<el-option
label=
"文本框"
value=
"input"
/>
<el-option
label=
"文本域"
value=
"textarea"
/>
<el-option
label=
"文本域"
value=
"textarea"
/>
<el-option
label=
"下拉框"
value=
"select"
/>
<el-option
label=
"下拉框"
value=
"select"
/>
<el-option
label=
"单选框"
value=
"radio"
/>
<el-option
label=
"单选框"
value=
"radio"
/>
<el-option
label=
"复选框"
value=
"checkbox"
/>
<el-option
label=
"复选框"
value=
"checkbox"
/>
<el-option
label=
"日期控件"
value=
"datetime"
/>
<el-option
label=
"日期控件"
value=
"datetime"
/>
<el-option
label=
"图片上传"
value=
"imageUpload"
/>
<el-option
label=
"图片上传"
value=
"imageUpload"
/>
<el-option
label=
"文件上传"
value=
"fileUpload"
/>
<el-option
label=
"文件上传"
value=
"fileUpload"
/>
<el-option
label=
"富文本控件"
value=
"editor"
/>
<el-option
label=
"富文本控件"
value=
"editor"
/>
</el-select>
</el-select>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"字典类型"
min-width=
"12%"
>
<el-table-column
label=
"字典类型"
min-width=
"12%"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-select
v-model=
"scope.row.dictType"
clearable
filterable
placeholder=
"请选择"
>
<el-select
v-model=
"scope.row.dictType"
clearable
filterable
placeholder=
"请选择"
>
<el-option
<el-option
v-for=
"dict in dictOptions"
v-for=
"dict in dictOptions"
:key=
"dict.dictType"
:key=
"dict.dictType"
:label=
"dict.dictName"
:label=
"dict.dictName"
:value=
"dict.dictType"
>
:value=
"dict.dictType"
>
<span
style=
"float: left"
>
{{
dict
.
dictName
}}
</span>
<span
style=
"float: left"
>
{{
dict
.
dictName
}}
</span>
<span
style=
"float: right; color: #8492a6; font-size: 13px"
>
{{
dict
.
dictType
}}
</span>
<span
style=
"float: right; color: #8492a6; font-size: 13px"
>
{{
dict
.
dictType
}}
</span>
</el-option>
</el-option>
</el-select>
</el-select>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
</el-tab-pane>
</el-tab-pane>
<el-tab-pane
label=
"生成信息"
name=
"genInfo"
>
<el-tab-pane
label=
"生成信息"
name=
"genInfo"
>
<gen-info-form
ref=
"genInfo"
:info=
"info"
:tables=
"tables"
:menus=
"menus"
/>
<gen-info-form
ref=
"genInfo"
:info=
"info"
:tables=
"tables"
:menus=
"menus"
/>
</el-tab-pane>
</el-tab-pane>
</el-tabs>
</el-tabs>
<el-form
label-width=
"100px"
>
<el-form
label-width=
"100px"
>
<el-form-item
style=
"text-align: center;margin-left:-100px;margin-top:10px;"
>
<el-form-item
style=
"text-align: center;margin-left:-100px;margin-top:10px;"
>
<el-button
type=
"primary"
@
click=
"submitForm()"
>
提交
</el-button>
<el-button
type=
"primary"
@
click=
"submitForm()"
>
提交
</el-button>
<el-button
@
click=
"close()"
>
返回
</el-button>
<el-button
@
click=
"close()"
>
返回
</el-button>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
</el-card>
</el-card>
</template>
</template>
<
script
>
<
script
>
import
{
getGenTable
,
updateGenTable
}
from
"
@/api/tool/gen
"
;
import
{
getGenTable
,
updateGenTable
}
from
"
@/api/tool/gen
"
;
import
{
optionselect
as
getDictOptionselect
}
from
"
@/api/system/dict/type
"
;
import
{
optionselect
as
getDictOptionselect
}
from
"
@/api/system/dict/type
"
;
import
{
listMenu
as
getMenuTreeselect
}
from
"
@/api/system/menu
"
;
import
{
listMenu
as
getMenuTreeselect
}
from
"
@/api/system/menu
"
;
import
basicInfoForm
from
"
./basicInfoForm
"
;
import
basicInfoForm
from
"
./basicInfoForm
"
;
import
genInfoForm
from
"
./genInfoForm
"
;
import
genInfoForm
from
"
./genInfoForm
"
;
import
Sortable
from
'
sortablejs
'
import
Sortable
from
'
sortablejs
'
export
default
{
export
default
{
name
:
"
GenEdit
"
,
name
:
"
GenEdit
"
,
components
:
{
components
:
{
basicInfoForm
,
basicInfoForm
,
genInfoForm
genInfoForm
},
},
data
()
{
data
()
{
return
{
return
{
// 选中选项卡的 name
// 选中选项卡的 name
activeName
:
"
cloum
"
,
activeName
:
"
cloum
"
,
// 表格的高度
// 表格的高度
tableHeight
:
document
.
documentElement
.
scrollHeight
-
245
+
"
px
"
,
tableHeight
:
document
.
documentElement
.
scrollHeight
-
245
+
"
px
"
,
// 表信息
// 表信息
tables
:
[],
tables
:
[],
// 表列信息
// 表列信息
cloumns
:
[],
cloumns
:
[],
// 字典信息
// 字典信息
dictOptions
:
[],
dictOptions
:
[],
// 菜单信息
// 菜单信息
menus
:
[],
menus
:
[],
// 表详细信息
// 表详细信息
info
:
{}
info
:
{}
};
};
},
},
created
()
{
created
()
{
const
tableId
=
this
.
$route
.
params
&&
this
.
$route
.
params
.
tableId
;
const
tableId
=
this
.
$route
.
query
&&
this
.
$route
.
query
.
tableId
;
if
(
tableId
)
{
if
(
tableId
)
{
// 获取表详细信息
// 获取表详细信息
getGenTable
(
tableId
).
then
(
res
=>
{
getGenTable
(
tableId
).
then
(
res
=>
{
this
.
cloumns
=
res
.
data
.
rows
;
this
.
cloumns
=
res
.
data
.
rows
;
this
.
info
=
res
.
data
.
info
;
this
.
info
=
res
.
data
.
info
;
this
.
tables
=
res
.
data
.
tables
;
this
.
tables
=
res
.
data
.
tables
;
});
});
/** 查询字典下拉列表 */
/** 查询字典下拉列表 */
getDictOptionselect
().
then
(
response
=>
{
getDictOptionselect
().
then
(
response
=>
{
this
.
dictOptions
=
response
.
data
;
this
.
dictOptions
=
response
.
data
;
});
});
/** 查询菜单下拉列表 */
/** 查询菜单下拉列表 */
getMenuTreeselect
().
then
(
response
=>
{
getMenuTreeselect
().
then
(
response
=>
{
this
.
menus
=
this
.
handleTree
(
response
.
data
,
"
menuId
"
);
this
.
menus
=
this
.
handleTree
(
response
.
data
,
"
menuId
"
);
});
});
}
}
},
},
methods
:
{
methods
:
{
/** 提交按钮 */
/** 提交按钮 */
submitForm
()
{
submitForm
()
{
const
basicForm
=
this
.
$refs
.
basicInfo
.
$refs
.
basicInfoForm
;
const
basicForm
=
this
.
$refs
.
basicInfo
.
$refs
.
basicInfoForm
;
const
genForm
=
this
.
$refs
.
genInfo
.
$refs
.
genInfoForm
;
const
genForm
=
this
.
$refs
.
genInfo
.
$refs
.
genInfoForm
;
Promise
.
all
([
basicForm
,
genForm
].
map
(
this
.
getFormPromise
)).
then
(
res
=>
{
Promise
.
all
([
basicForm
,
genForm
].
map
(
this
.
getFormPromise
)).
then
(
res
=>
{
const
validateResult
=
res
.
every
(
item
=>
!!
item
);
const
validateResult
=
res
.
every
(
item
=>
!!
item
);
if
(
validateResult
)
{
if
(
validateResult
)
{
const
genTable
=
Object
.
assign
({},
basicForm
.
model
,
genForm
.
model
);
const
genTable
=
Object
.
assign
({},
basicForm
.
model
,
genForm
.
model
);
genTable
.
columns
=
this
.
cloumns
;
genTable
.
columns
=
this
.
cloumns
;
genTable
.
params
=
{
genTable
.
params
=
{
treeCode
:
genTable
.
treeCode
,
treeCode
:
genTable
.
treeCode
,
treeName
:
genTable
.
treeName
,
treeName
:
genTable
.
treeName
,
treeParentCode
:
genTable
.
treeParentCode
,
treeParentCode
:
genTable
.
treeParentCode
,
parentMenuId
:
genTable
.
parentMenuId
parentMenuId
:
genTable
.
parentMenuId
};
};
updateGenTable
(
genTable
).
then
(
res
=>
{
updateGenTable
(
genTable
).
then
(
res
=>
{
this
.
msgSuccess
(
res
.
msg
);
this
.
msgSuccess
(
res
.
msg
);
if
(
res
.
code
===
200
)
{
if
(
res
.
code
===
200
)
{
this
.
close
();
this
.
close
();
}
}
});
});
}
else
{
}
else
{
this
.
msgError
(
"
表单校验未通过,请重新检查提交内容
"
);
this
.
msgError
(
"
表单校验未通过,请重新检查提交内容
"
);
}
}
});
});
},
},
getFormPromise
(
form
)
{
getFormPromise
(
form
)
{
return
new
Promise
(
resolve
=>
{
return
new
Promise
(
resolve
=>
{
form
.
validate
(
res
=>
{
form
.
validate
(
res
=>
{
resolve
(
res
);
resolve
(
res
);
});
});
});
});
},
},
/** 关闭按钮 */
/** 关闭按钮 */
close
()
{
close
()
{
this
.
$store
.
dispatch
(
"
tagsView/delView
"
,
this
.
$route
);
this
.
$store
.
dispatch
(
"
tagsView/delView
"
,
this
.
$route
);
this
.
$router
.
push
({
path
:
"
/tool/gen
"
,
query
:
{
t
:
Date
.
now
()
}})
this
.
$router
.
push
({
path
:
"
/tool/gen
"
,
query
:
{
t
:
Date
.
now
()
,
pageNum
:
this
.
$route
.
query
.
pageNum
}
})
}
}
},
},
mounted
()
{
mounted
()
{
const
el
=
this
.
$refs
.
dragTable
.
$el
.
querySelectorAll
(
"
.el-table__body-wrapper > table > tbody
"
)[
0
];
const
el
=
this
.
$refs
.
dragTable
.
$el
.
querySelectorAll
(
"
.el-table__body-wrapper > table > tbody
"
)[
0
];
const
sortable
=
Sortable
.
create
(
el
,
{
const
sortable
=
Sortable
.
create
(
el
,
{
handle
:
"
.allowDrag
"
,
handle
:
"
.allowDrag
"
,
onEnd
:
evt
=>
{
onEnd
:
evt
=>
{
const
targetRow
=
this
.
cloumns
.
splice
(
evt
.
oldIndex
,
1
)[
0
];
const
targetRow
=
this
.
cloumns
.
splice
(
evt
.
oldIndex
,
1
)[
0
];
this
.
cloumns
.
splice
(
evt
.
newIndex
,
0
,
targetRow
);
this
.
cloumns
.
splice
(
evt
.
newIndex
,
0
,
targetRow
);
for
(
let
index
in
this
.
cloumns
)
{
for
(
let
index
in
this
.
cloumns
)
{
this
.
cloumns
[
index
].
sort
=
parseInt
(
index
)
+
1
;
this
.
cloumns
[
index
].
sort
=
parseInt
(
index
)
+
1
;
}
}
}
}
});
});
}
}
};
};
</
script
>
</
script
>
ruoyi-ui/src/views/tool/gen/index.vue
View file @
d2b61762
<
template
>
<
template
>
<div
class=
"app-container"
>
<div
class=
"app-container"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form
:model=
"queryParams"
ref=
"queryForm"
:inline=
"true"
v-show=
"showSearch"
label-width=
"68px"
>
<el-form-item
label=
"表名称"
prop=
"tableName"
>
<el-form-item
label=
"表名称"
prop=
"tableName"
>
<el-input
<el-input
v-model=
"queryParams.tableName"
v-model=
"queryParams.tableName"
placeholder=
"请输入表名称"
placeholder=
"请输入表名称"
clearable
clearable
size=
"small"
size=
"small"
@
keyup.enter.native=
"handleQuery"
@
keyup.enter.native=
"handleQuery"
/>
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"表描述"
prop=
"tableComment"
>
<el-form-item
label=
"表描述"
prop=
"tableComment"
>
<el-input
<el-input
v-model=
"queryParams.tableComment"
v-model=
"queryParams.tableComment"
placeholder=
"请输入表描述"
placeholder=
"请输入表描述"
clearable
clearable
size=
"small"
size=
"small"
@
keyup.enter.native=
"handleQuery"
@
keyup.enter.native=
"handleQuery"
/>
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"创建时间"
>
<el-form-item
label=
"创建时间"
>
<el-date-picker
<el-date-picker
v-model=
"dateRange"
v-model=
"dateRange"
size=
"small"
size=
"small"
style=
"width: 240px"
style=
"width: 240px"
value-format=
"yyyy-MM-dd"
value-format=
"yyyy-MM-dd"
type=
"daterange"
type=
"daterange"
range-separator=
"-"
range-separator=
"-"
start-placeholder=
"开始日期"
start-placeholder=
"开始日期"
end-placeholder=
"结束日期"
end-placeholder=
"结束日期"
></el-date-picker>
></el-date-picker>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-button
type=
"primary"
icon=
"el-icon-search"
size=
"mini"
@
click=
"handleQuery"
>
搜索
</el-button>
<el-button
type=
"primary"
icon=
"el-icon-search"
size=
"mini"
@
click=
"handleQuery"
>
搜索
</el-button>
<el-button
icon=
"el-icon-refresh"
size=
"mini"
@
click=
"resetQuery"
>
重置
</el-button>
<el-button
icon=
"el-icon-refresh"
size=
"mini"
@
click=
"resetQuery"
>
重置
</el-button>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
<el-row
:gutter=
"10"
class=
"mb8"
>
<el-row
:gutter=
"10"
class=
"mb8"
>
<el-col
:span=
"1.5"
>
<el-col
:span=
"1.5"
>
<el-button
<el-button
type=
"primary"
type=
"primary"
plain
plain
icon=
"el-icon-download"
icon=
"el-icon-download"
size=
"mini"
size=
"mini"
@
click=
"handleGenTable"
@
click=
"handleGenTable"
v-hasPermi=
"['tool:gen:code']"
v-hasPermi=
"['tool:gen:code']"
>
生成
</el-button>
>
生成
</el-button>
</el-col>
</el-col>
<el-col
:span=
"1.5"
>
<el-col
:span=
"1.5"
>
<el-button
<el-button
type=
"info"
type=
"info"
plain
plain
icon=
"el-icon-upload"
icon=
"el-icon-upload"
size=
"mini"
size=
"mini"
@
click=
"openImportTable"
@
click=
"openImportTable"
v-hasPermi=
"['tool:gen:import']"
v-hasPermi=
"['tool:gen:import']"
>
导入
</el-button>
>
导入
</el-button>
</el-col>
</el-col>
<el-col
:span=
"1.5"
>
<el-col
:span=
"1.5"
>
<el-button
<el-button
type=
"success"
type=
"success"
plain
plain
icon=
"el-icon-edit"
icon=
"el-icon-edit"
size=
"mini"
size=
"mini"
:disabled=
"single"
:disabled=
"single"
@
click=
"handleEditTable"
@
click=
"handleEditTable"
v-hasPermi=
"['tool:gen:edit']"
v-hasPermi=
"['tool:gen:edit']"
>
修改
</el-button>
>
修改
</el-button>
</el-col>
</el-col>
<el-col
:span=
"1.5"
>
<el-col
:span=
"1.5"
>
<el-button
<el-button
type=
"danger"
type=
"danger"
plain
plain
icon=
"el-icon-delete"
icon=
"el-icon-delete"
size=
"mini"
size=
"mini"
:disabled=
"multiple"
:disabled=
"multiple"
@
click=
"handleDelete"
@
click=
"handleDelete"
v-hasPermi=
"['tool:gen:remove']"
v-hasPermi=
"['tool:gen:remove']"
>
删除
</el-button>
>
删除
</el-button>
</el-col>
</el-col>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
<right-toolbar
:showSearch.sync=
"showSearch"
@
queryTable=
"getList"
></right-toolbar>
</el-row>
</el-row>
<el-table
v-loading=
"loading"
:data=
"tableList"
@
selection-change=
"handleSelectionChange"
>
<el-table
v-loading=
"loading"
:data=
"tableList"
@
selection-change=
"handleSelectionChange"
>
<el-table-column
type=
"selection"
align=
"center"
width=
"55"
></el-table-column>
<el-table-column
type=
"selection"
align=
"center"
width=
"55"
></el-table-column>
<el-table-column
label=
"序号"
type=
"index"
width=
"50"
align=
"center"
>
<el-table-column
label=
"序号"
type=
"index"
width=
"50"
align=
"center"
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
<span>
{{
(
queryParams
.
pageNum
-
1
)
*
queryParams
.
pageSize
+
scope
.
$index
+
1
}}
</span>
<span>
{{
(
queryParams
.
pageNum
-
1
)
*
queryParams
.
pageSize
+
scope
.
$index
+
1
}}
</span>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
<el-table-column
label=
"表名称"
label=
"表名称"
align=
"center"
align=
"center"
prop=
"tableName"
prop=
"tableName"
:show-overflow-tooltip=
"true"
:show-overflow-tooltip=
"true"
width=
"120"
width=
"120"
/>
/>
<el-table-column
<el-table-column
label=
"表描述"
label=
"表描述"
align=
"center"
align=
"center"
prop=
"tableComment"
prop=
"tableComment"
:show-overflow-tooltip=
"true"
:show-overflow-tooltip=
"true"
width=
"120"
width=
"120"
/>
/>
<el-table-column
<el-table-column
label=
"实体"
label=
"实体"
align=
"center"
align=
"center"
prop=
"className"
prop=
"className"
:show-overflow-tooltip=
"true"
:show-overflow-tooltip=
"true"
width=
"120"
width=
"120"
/>
/>
<el-table-column
label=
"创建时间"
align=
"center"
prop=
"createTime"
width=
"160"
/>
<el-table-column
label=
"创建时间"
align=
"center"
prop=
"createTime"
width=
"160"
/>
<el-table-column
label=
"更新时间"
align=
"center"
prop=
"updateTime"
width=
"160"
/>
<el-table-column
label=
"更新时间"
align=
"center"
prop=
"updateTime"
width=
"160"
/>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<el-table-column
label=
"操作"
align=
"center"
class-name=
"small-padding fixed-width"
>
<
template
slot-scope=
"scope"
>
<
template
slot-scope=
"scope"
>
<el-button
<el-button
type=
"text"
type=
"text"
size=
"small"
size=
"small"
icon=
"el-icon-view"
icon=
"el-icon-view"
@
click=
"handlePreview(scope.row)"
@
click=
"handlePreview(scope.row)"
v-hasPermi=
"['tool:gen:preview']"
v-hasPermi=
"['tool:gen:preview']"
>
预览
</el-button>
>
预览
</el-button>
<el-button
<el-button
type=
"text"
type=
"text"
size=
"small"
size=
"small"
icon=
"el-icon-edit"
icon=
"el-icon-edit"
@
click=
"handleEditTable(scope.row)"
@
click=
"handleEditTable(scope.row)"
v-hasPermi=
"['tool:gen:edit']"
v-hasPermi=
"['tool:gen:edit']"
>
编辑
</el-button>
>
编辑
</el-button>
<el-button
<el-button
type=
"text"
type=
"text"
size=
"small"
size=
"small"
icon=
"el-icon-delete"
icon=
"el-icon-delete"
@
click=
"handleDelete(scope.row)"
@
click=
"handleDelete(scope.row)"
v-hasPermi=
"['tool:gen:remove']"
v-hasPermi=
"['tool:gen:remove']"
>
删除
</el-button>
>
删除
</el-button>
<el-button
<el-button
type=
"text"
type=
"text"
size=
"small"
size=
"small"
icon=
"el-icon-refresh"
icon=
"el-icon-refresh"
@
click=
"handleSynchDb(scope.row)"
@
click=
"handleSynchDb(scope.row)"
v-hasPermi=
"['tool:gen:edit']"
v-hasPermi=
"['tool:gen:edit']"
>
同步
</el-button>
>
同步
</el-button>
<el-button
<el-button
type=
"text"
type=
"text"
size=
"small"
size=
"small"
icon=
"el-icon-download"
icon=
"el-icon-download"
@
click=
"handleGenTable(scope.row)"
@
click=
"handleGenTable(scope.row)"
v-hasPermi=
"['tool:gen:code']"
v-hasPermi=
"['tool:gen:code']"
>
生成代码
</el-button>
>
生成代码
</el-button>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
<pagination
<pagination
v-show=
"total>0"
v-show=
"total>0"
:total=
"total"
:total=
"total"
:page.sync=
"queryParams.pageNum"
:page.sync=
"queryParams.pageNum"
:limit.sync=
"queryParams.pageSize"
:limit.sync=
"queryParams.pageSize"
@
pagination=
"getList"
@
pagination=
"getList"
/>
/>
<!-- 预览界面 -->
<!-- 预览界面 -->
<el-dialog
:title=
"preview.title"
:visible.sync=
"preview.open"
width=
"80%"
top=
"5vh"
append-to-body
class=
"scrollbar"
>
<el-dialog
:title=
"preview.title"
:visible.sync=
"preview.open"
width=
"80%"
top=
"5vh"
append-to-body
class=
"scrollbar"
>
<el-tabs
v-model=
"preview.activeName"
>
<el-tabs
v-model=
"preview.activeName"
>
<el-tab-pane
<el-tab-pane
v-for=
"(value, key) in preview.data"
v-for=
"(value, key) in preview.data"
:label=
"key.substring(key.lastIndexOf('/')+1,key.indexOf('.vm'))"
:label=
"key.substring(key.lastIndexOf('/')+1,key.indexOf('.vm'))"
:name=
"key.substring(key.lastIndexOf('/')+1,key.indexOf('.vm'))"
:name=
"key.substring(key.lastIndexOf('/')+1,key.indexOf('.vm'))"
:key=
"key"
:key=
"key"
>
>
<pre><code
class=
"hljs"
v-html=
"highlightedCode(value, key)"
></code></pre>
<pre><code
class=
"hljs"
v-html=
"highlightedCode(value, key)"
></code></pre>
</el-tab-pane>
</el-tab-pane>
</el-tabs>
</el-tabs>
</el-dialog>
</el-dialog>
<import-table
ref=
"import"
@
ok=
"handleQuery"
/>
<import-table
ref=
"import"
@
ok=
"handleQuery"
/>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
import
{
listTable
,
previewTable
,
delTable
,
genCode
,
synchDb
}
from
"
@/api/tool/gen
"
;
import
{
listTable
,
previewTable
,
delTable
,
genCode
,
synchDb
}
from
"
@/api/tool/gen
"
;
import
importTable
from
"
./importTable
"
;
import
importTable
from
"
./importTable
"
;
import
{
downLoadZip
}
from
"
@/utils/zipdownload
"
;
import
{
downLoadZip
}
from
"
@/utils/zipdownload
"
;
import
hljs
from
"
highlight.js/lib/highlight
"
;
import
hljs
from
"
highlight.js/lib/highlight
"
;
import
"
highlight.js/styles/github-gist.css
"
;
import
"
highlight.js/styles/github-gist.css
"
;
hljs
.
registerLanguage
(
"
java
"
,
require
(
"
highlight.js/lib/languages/java
"
));
hljs
.
registerLanguage
(
"
java
"
,
require
(
"
highlight.js/lib/languages/java
"
));
hljs
.
registerLanguage
(
"
xml
"
,
require
(
"
highlight.js/lib/languages/xml
"
));
hljs
.
registerLanguage
(
"
xml
"
,
require
(
"
highlight.js/lib/languages/xml
"
));
hljs
.
registerLanguage
(
"
html
"
,
require
(
"
highlight.js/lib/languages/xml
"
));
hljs
.
registerLanguage
(
"
html
"
,
require
(
"
highlight.js/lib/languages/xml
"
));
hljs
.
registerLanguage
(
"
vue
"
,
require
(
"
highlight.js/lib/languages/xml
"
));
hljs
.
registerLanguage
(
"
vue
"
,
require
(
"
highlight.js/lib/languages/xml
"
));
hljs
.
registerLanguage
(
"
javascript
"
,
require
(
"
highlight.js/lib/languages/javascript
"
));
hljs
.
registerLanguage
(
"
javascript
"
,
require
(
"
highlight.js/lib/languages/javascript
"
));
hljs
.
registerLanguage
(
"
sql
"
,
require
(
"
highlight.js/lib/languages/sql
"
));
hljs
.
registerLanguage
(
"
sql
"
,
require
(
"
highlight.js/lib/languages/sql
"
));
export
default
{
export
default
{
name
:
"
Gen
"
,
name
:
"
Gen
"
,
components
:
{
importTable
},
components
:
{
importTable
},
data
()
{
data
()
{
return
{
return
{
// 遮罩层
// 遮罩层
loading
:
true
,
loading
:
true
,
// 唯一标识符
// 唯一标识符
uniqueId
:
""
,
uniqueId
:
""
,
// 选中数组
// 选中数组
ids
:
[],
ids
:
[],
// 选中表数组
// 选中表数组
tableNames
:
[],
tableNames
:
[],
// 非单个禁用
// 非单个禁用
single
:
true
,
single
:
true
,
// 非多个禁用
// 非多个禁用
multiple
:
true
,
multiple
:
true
,
// 显示搜索条件
// 显示搜索条件
showSearch
:
true
,
showSearch
:
true
,
// 总条数
// 总条数
total
:
0
,
total
:
0
,
// 表数据
// 表数据
tableList
:
[],
tableList
:
[],
// 日期范围
// 日期范围
dateRange
:
""
,
dateRange
:
""
,
// 查询参数
// 查询参数
queryParams
:
{
queryParams
:
{
pageNum
:
1
,
pageNum
:
1
,
pageSize
:
10
,
pageSize
:
10
,
tableName
:
undefined
,
tableName
:
undefined
,
tableComment
:
undefined
tableComment
:
undefined
},
},
// 预览参数
// 预览参数
preview
:
{
preview
:
{
open
:
false
,
open
:
false
,
title
:
"
代码预览
"
,
title
:
"
代码预览
"
,
data
:
{},
data
:
{},
activeName
:
"
domain.java
"
activeName
:
"
domain.java
"
}
}
};
};
},
},
created
()
{
created
()
{
this
.
getList
();
this
.
getList
();
},
},
activated
()
{
activated
()
{
const
time
=
this
.
$route
.
query
.
t
;
const
time
=
this
.
$route
.
query
.
t
;
if
(
time
!=
null
&&
time
!=
this
.
uniqueId
)
{
if
(
time
!=
null
&&
time
!=
this
.
uniqueId
)
{
this
.
uniqueId
=
time
;
this
.
uniqueId
=
time
;
this
.
resetQuery
();
this
.
queryParams
.
pageNum
=
Number
(
this
.
$route
.
query
.
pageNum
);
}
this
.
dateRange
=
[];
},
this
.
resetForm
(
"
queryForm
"
);
methods
:
{
this
.
getList
();
/** 查询表集合 */
}
getList
()
{
},
this
.
loading
=
true
;
methods
:
{
listTable
(
this
.
addDateRange
(
this
.
queryParams
,
this
.
dateRange
)).
then
(
response
=>
{
/** 查询表集合 */
this
.
tableList
=
response
.
rows
;
getList
()
{
this
.
total
=
response
.
total
;
this
.
loading
=
true
;
this
.
loading
=
false
;
listTable
(
this
.
addDateRange
(
this
.
queryParams
,
this
.
dateRange
)).
then
(
response
=>
{
}
this
.
tableList
=
response
.
rows
;
);
this
.
total
=
response
.
total
;
},
this
.
loading
=
false
;
/** 搜索按钮操作 */
}
handleQuery
()
{
);
this
.
queryParams
.
pageNum
=
1
;
},
this
.
getList
();
/** 搜索按钮操作 */
},
handleQuery
()
{
/** 生成代码操作 */
this
.
queryParams
.
pageNum
=
1
;
handleGenTable
(
row
)
{
this
.
getList
();
const
tableNames
=
row
.
tableName
||
this
.
tableNames
;
},
if
(
tableNames
==
""
)
{
/** 生成代码操作 */
this
.
msgError
(
"
请选择要生成的数据
"
);
handleGenTable
(
row
)
{
return
;
const
tableNames
=
row
.
tableName
||
this
.
tableNames
;
}
if
(
tableNames
==
""
)
{
if
(
row
.
genType
===
"
1
"
)
{
this
.
msgError
(
"
请选择要生成的数据
"
);
genCode
(
row
.
tableName
).
then
(
response
=>
{
return
;
this
.
msgSuccess
(
"
成功生成到自定义路径:
"
+
row
.
genPath
);
}
});
if
(
row
.
genType
===
"
1
"
)
{
}
else
{
genCode
(
row
.
tableName
).
then
(
response
=>
{
downLoadZip
(
"
/tool/gen/batchGenCode?tables=
"
+
tableNames
,
"
ruoyi
"
);
this
.
msgSuccess
(
"
成功生成到自定义路径:
"
+
row
.
genPath
);
}
});
},
}
else
{
/** 同步数据库操作 */
downLoadZip
(
"
/tool/gen/batchGenCode?tables=
"
+
tableNames
,
"
ruoyi
"
);
handleSynchDb
(
row
)
{
}
const
tableName
=
row
.
tableName
;
},
this
.
$confirm
(
'
确认要强制同步"
'
+
tableName
+
'
"表结构吗?
'
,
"
警告
"
,
{
/** 同步数据库操作 */
confirmButtonText
:
"
确定
"
,
handleSynchDb
(
row
)
{
cancelButtonText
:
"
取消
"
,
const
tableName
=
row
.
tableName
;
type
:
"
warning
"
this
.
$confirm
(
'
确认要强制同步"
'
+
tableName
+
'
"表结构吗?
'
,
"
警告
"
,
{
}).
then
(
function
()
{
confirmButtonText
:
"
确定
"
,
return
synchDb
(
tableName
);
cancelButtonText
:
"
取消
"
,
}).
then
(()
=>
{
type
:
"
warning
"
this
.
msgSuccess
(
"
同步成功
"
);
}).
then
(
function
()
{
}).
catch
(()
=>
{});
return
synchDb
(
tableName
);
},
}).
then
(()
=>
{
/** 打开导入表弹窗 */
this
.
msgSuccess
(
"
同步成功
"
);
openImportTable
()
{
}).
catch
(()
=>
{});
this
.
$refs
.
import
.
show
();
},
},
/** 打开导入表弹窗 */
/** 重置按钮操作 */
openImportTable
()
{
resetQuery
()
{
this
.
$refs
.
import
.
show
();
this
.
dateRange
=
[];
},
this
.
resetForm
(
"
queryForm
"
);
/** 重置按钮操作 */
this
.
handleQuery
();
resetQuery
()
{
},
this
.
dateRange
=
[];
/** 预览按钮 */
this
.
resetForm
(
"
queryForm
"
);
handlePreview
(
row
)
{
this
.
handleQuery
();
previewTable
(
row
.
tableId
).
then
(
response
=>
{
},
this
.
preview
.
data
=
response
.
data
;
/** 预览按钮 */
this
.
preview
.
open
=
true
;
handlePreview
(
row
)
{
});
previewTable
(
row
.
tableId
).
then
(
response
=>
{
},
this
.
preview
.
data
=
response
.
data
;
/** 高亮显示 */
this
.
preview
.
open
=
true
;
highlightedCode
(
code
,
key
)
{
});
const
vmName
=
key
.
substring
(
key
.
lastIndexOf
(
"
/
"
)
+
1
,
key
.
indexOf
(
"
.vm
"
));
},
var
language
=
vmName
.
substring
(
vmName
.
indexOf
(
"
.
"
)
+
1
,
vmName
.
length
);
/** 高亮显示 */
const
result
=
hljs
.
highlight
(
language
,
code
||
""
,
true
);
highlightedCode
(
code
,
key
)
{
return
result
.
value
||
'
'
;
const
vmName
=
key
.
substring
(
key
.
lastIndexOf
(
"
/
"
)
+
1
,
key
.
indexOf
(
"
.vm
"
));
},
var
language
=
vmName
.
substring
(
vmName
.
indexOf
(
"
.
"
)
+
1
,
vmName
.
length
);
// 多选框选中数据
const
result
=
hljs
.
highlight
(
language
,
code
||
""
,
true
);
handleSelectionChange
(
selection
)
{
return
result
.
value
||
'
'
;
this
.
ids
=
selection
.
map
(
item
=>
item
.
tableId
);
},
this
.
tableNames
=
selection
.
map
(
item
=>
item
.
tableName
);
// 多选框选中数据
this
.
single
=
selection
.
length
!=
1
;
handleSelectionChange
(
selection
)
{
this
.
multiple
=
!
selection
.
length
;
this
.
ids
=
selection
.
map
(
item
=>
item
.
tableId
);
},
this
.
tableNames
=
selection
.
map
(
item
=>
item
.
tableName
);
/** 修改按钮操作 */
this
.
single
=
selection
.
length
!=
1
;
handleEditTable
(
row
)
{
this
.
multiple
=
!
selection
.
length
;
const
tableId
=
row
.
tableId
||
this
.
ids
[
0
];
},
this
.
$router
.
push
(
"
/tool/gen-edit/index/
"
+
tableId
);
/** 修改按钮操作 */
},
handleEditTable
(
row
)
{
/** 删除按钮操作 */
const
tableId
=
row
.
tableId
||
this
.
ids
[
0
];
handleDelete
(
row
)
{
this
.
$router
.
push
({
path
:
'
/tool/gen-edit/index
'
,
query
:
{
tableId
:
tableId
,
pageNum
:
this
.
queryParams
.
pageNum
}
});
const
tableIds
=
row
.
tableId
||
this
.
ids
;
},
this
.
$confirm
(
'
是否确认删除表编号为"
'
+
tableIds
+
'
"的数据项?
'
,
"
警告
"
,
{
/** 删除按钮操作 */
confirmButtonText
:
"
确定
"
,
handleDelete
(
row
)
{
cancelButtonText
:
"
取消
"
,
const
tableIds
=
row
.
tableId
||
this
.
ids
;
type
:
"
warning
"
this
.
$confirm
(
'
是否确认删除表编号为"
'
+
tableIds
+
'
"的数据项?
'
,
"
警告
"
,
{
}).
then
(
function
()
{
confirmButtonText
:
"
确定
"
,
return
delTable
(
tableIds
);
cancelButtonText
:
"
取消
"
,
}).
then
(()
=>
{
type
:
"
warning
"
this
.
getList
();
}).
then
(
function
()
{
this
.
msgSuccess
(
"
删除成功
"
);
return
delTable
(
tableIds
);
}).
catch
(()
=>
{});
}).
then
(()
=>
{
}
this
.
getList
();
}
this
.
msgSuccess
(
"
删除成功
"
);
};
}).
catch
(()
=>
{});
</
script
>
}
\ No newline at end of file
}
};
</
script
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment