Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
球球不吃虾
vue-vben-admin
提交
b54b7942
V
vue-vben-admin
项目概览
球球不吃虾
/
vue-vben-admin
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
V
vue-vben-admin
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
b54b7942
编写于
4月 01, 2021
作者:
V
Vben
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix(table): make sure the editing line is working, fix #439
上级
8a14069e
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
196 addition
and
13 deletion
+196
-13
CHANGELOG.zh_CN.md
CHANGELOG.zh_CN.md
+2
-0
src/components/Table/src/BasicTable.vue
src/components/Table/src/BasicTable.vue
+1
-1
src/components/Table/src/hooks/useTable.ts
src/components/Table/src/hooks/useTable.ts
+6
-1
src/hooks/web/useTitle.ts
src/hooks/web/useTitle.ts
+15
-8
src/locales/lang/en/routes/dashboard.ts
src/locales/lang/en/routes/dashboard.ts
+1
-1
src/locales/lang/zh_CN/routes/dashboard.ts
src/locales/lang/zh_CN/routes/dashboard.ts
+1
-1
src/router/menus/modules/about.ts
src/router/menus/modules/about.ts
+11
-0
src/router/routes/modules/about.ts
src/router/routes/modules/about.ts
+28
-0
src/views/demo/table/FormTable.vue
src/views/demo/table/FormTable.vue
+10
-1
src/views/sys/about/index.vue
src/views/sys/about/index.vue
+102
-0
types/global.d.ts
types/global.d.ts
+10
-0
vite.config.ts
vite.config.ts
+9
-0
未找到文件。
CHANGELOG.zh_CN.md
浏览文件 @
b54b7942
...
...
@@ -4,6 +4,7 @@
-
新增
`headerTitle`
slot
-
新增打印示例
-
新增关于界面
### ✨ Refactor
...
...
@@ -15,6 +16,7 @@
-
确保面包屑正确的显示图标
-
修复 tinymce 上传按钮全屏模式下消失问题
-
确保 title 在重新登录后正常改变
## 2.1.1 (2021-03-26)
...
...
src/components/Table/src/BasicTable.vue
浏览文件 @
b54b7942
...
...
@@ -185,7 +185,7 @@
}
=
useTableForm
(
getProps
,
slots
,
fetch
);
const
getBindValues
=
computed
(()
=>
{
const
dataSource
=
toRaw
(
unref
(
getDataSourceRef
)
);
const
dataSource
=
unref
(
getDataSourceRef
);
let
propsData
:
Recordable
=
{
size
:
'
middle
'
,
// ...(dataSource.length === 0 ? { getPopupContainer: () => document.body } : {}),
...
...
src/components/Table/src/hooks/useTable.ts
浏览文件 @
b54b7942
...
...
@@ -17,7 +17,12 @@ type UseTableMethod = TableActionType & {
export
function
useTable
(
tableProps
?:
Props
):
[(
instance
:
TableActionType
,
formInstance
:
UseTableMethod
)
=>
void
,
TableActionType
]
{
):
[
(
instance
:
TableActionType
,
formInstance
:
UseTableMethod
)
=>
void
,
TableActionType
&
{
getForm
:
()
=>
FormActionType
;
}
]
{
const
tableRef
=
ref
<
Nullable
<
TableActionType
>>
(
null
);
const
loadedRef
=
ref
<
Nullable
<
boolean
>>
(
false
);
const
formRef
=
ref
<
Nullable
<
UseTableMethod
>>
(
null
);
...
...
src/hooks/web/useTitle.ts
浏览文件 @
b54b7942
import
{
watch
,
unref
}
from
'
vue
'
;
import
{
useI18n
}
from
'
/@/hooks/web/useI18n
'
;
import
{
useTitle
as
usePageTitle
}
from
'
@vueuse/core
'
;
import
{
useGlobSetting
}
from
'
/@/hooks/setting
'
;
import
{
useRouter
}
from
'
vue-router
'
;
import
{
REDIRECT_NAME
}
from
'
/@/router/constant
'
;
import
{
listenerRouteChange
}
from
'
/@/logics/mitt/routeChange
'
;
export
function
useTitle
()
{
const
{
title
}
=
useGlobSetting
();
const
{
t
}
=
useI18n
();
const
{
currentRoute
}
=
useRouter
();
const
pageTitle
=
usePageTitle
();
listenerRouteChange
((
route
)
=>
{
if
(
route
.
name
===
REDIRECT_NAME
)
{
return
;
}
watch
(
()
=>
currentRoute
.
value
.
path
,
()
=>
{
const
route
=
unref
(
currentRoute
);
if
(
route
.
name
===
REDIRECT_NAME
)
{
return
;
}
const
tTitle
=
t
(
route
?.
meta
?.
title
as
string
);
pageTitle
.
value
=
tTitle
?
`
${
tTitle
}
-
${
title
}
`
:
`
${
title
}
`
;
});
const
tTitle
=
t
(
route
?.
meta
?.
title
as
string
);
pageTitle
.
value
=
tTitle
?
`
${
tTitle
}
-
${
title
}
`
:
`
${
title
}
`
;
},
{
immediate
:
true
}
);
}
src/locales/lang/en/routes/dashboard.ts
浏览文件 @
b54b7942
export
default
{
dashboard
:
'
Dashboard
'
,
welcome
:
'
Home
'
,
about
:
'
About
'
,
workbench
:
'
Workbench
'
,
analysis
:
'
Analysis
'
,
};
src/locales/lang/zh_CN/routes/dashboard.ts
浏览文件 @
b54b7942
export
default
{
dashboard
:
'
Dashboard
'
,
welcome
:
'
首页
'
,
about
:
'
关于
'
,
workbench
:
'
工作台
'
,
analysis
:
'
分析页
'
,
};
src/router/menus/modules/
home
.ts
→
src/router/menus/modules/
about
.ts
浏览文件 @
b54b7942
import
type
{
MenuModule
}
from
'
/@/router/types
'
;
import
{
t
}
from
'
/@/hooks/web/useI18n
'
;
const
menu
:
MenuModule
=
{
orderNo
:
0
,
const
about
:
MenuModule
=
{
orderNo
:
10000
0
,
menu
:
{
path
:
'
/
home/welcome
'
,
name
:
t
(
'
routes.dashboard.
welcome
'
),
path
:
'
/
about/index
'
,
name
:
t
(
'
routes.dashboard.
about
'
),
},
};
export
default
menu
;
export
default
about
;
src/router/routes/modules/
home
.ts
→
src/router/routes/modules/
about
.ts
浏览文件 @
b54b7942
...
...
@@ -4,23 +4,22 @@ import { LAYOUT } from '/@/router/constant';
import
{
t
}
from
'
/@/hooks/web/useI18n
'
;
const
dashboard
:
AppRouteModule
=
{
path
:
'
/
home
'
,
name
:
'
Home
'
,
path
:
'
/
about
'
,
name
:
'
About
'
,
component
:
LAYOUT
,
redirect
:
'
/
home/welcome
'
,
redirect
:
'
/
about/index
'
,
meta
:
{
icon
:
'
ion:home-outlin
e
'
,
title
:
t
(
'
routes.dashboard.
welcome
'
),
icon
:
'
simple-icons:about-dot-m
e
'
,
title
:
t
(
'
routes.dashboard.
about
'
),
},
children
:
[
{
path
:
'
welcome
'
,
name
:
'
Welcom
e
'
,
component
:
()
=>
import
(
'
/@/views/
dashboard/welcome
/index.vue
'
),
path
:
'
index
'
,
name
:
'
AboutPag
e
'
,
component
:
()
=>
import
(
'
/@/views/
sys/about
/index.vue
'
),
meta
:
{
title
:
t
(
'
routes.dashboard.welcome
'
),
affix
:
true
,
icon
:
'
bx:bx-home
'
,
title
:
t
(
'
routes.dashboard.about
'
),
icon
:
'
simple-icons:about-dot-me
'
,
},
},
],
...
...
src/views/demo/table/FormTable.vue
浏览文件 @
b54b7942
<
template
>
<BasicTable
@
register=
"registerTable"
>
<template
#form-custom
>
custom-slot
</
template
>
<
template
#toolbar
>
<a-button
type=
"primary"
@
click=
"getFormValues"
>
获取表单数据
</a-button>
</
template
>
</BasicTable>
</template>
<
script
lang=
"ts"
>
...
...
@@ -13,7 +17,7 @@
export
default
defineComponent
({
components
:
{
BasicTable
},
setup
()
{
const
[
registerTable
]
=
useTable
({
const
[
registerTable
,
{
getForm
}
]
=
useTable
({
title
:
'
开启搜索区域
'
,
api
:
demoListApi
,
columns
:
getBasicColumns
(),
...
...
@@ -23,8 +27,13 @@
rowSelection
:
{
type
:
'
checkbox
'
},
});
function
getFormValues
()
{
console
.
log
(
getForm
().
getFieldsValue
());
}
return
{
registerTable
,
getFormValues
,
};
},
});
...
...
src/views/sys/about/index.vue
0 → 100644
浏览文件 @
b54b7942
<
template
>
<PageWrapper
title=
"关于"
>
<template
#headerContent
>
<div
class=
"flex justify-between items-center"
>
<span
class=
"flex-1"
>
<a
:href=
"GITHUB_URL"
target=
"_blank"
>
{{
name
}}
</a>
是一个基于Vue3.0、Vite、 Ant-Design-Vue 、TypeScript
的后台解决方案,目标是为中大型项目开发,提供现成的开箱解决方案及丰富的示例,原则上不会限制任何代码用于商用。
</span>
</div>
</
template
>
<Description
@
register=
"infoRegister"
/>
<Description
@
register=
"register"
class=
"my-4"
/>
<Description
@
register=
"registerDev"
/>
</PageWrapper>
</template>
<
script
lang=
"ts"
>
import
{
defineComponent
,
h
}
from
'
vue
'
;
import
{
Tag
}
from
'
ant-design-vue
'
;
import
{
PageWrapper
}
from
'
/@/components/Page
'
;
import
{
Description
,
DescItem
,
useDescription
}
from
'
/@/components/Description/index
'
;
import
{
GITHUB_URL
,
SITE_URL
,
DOC_URL
}
from
'
/@/settings/siteSetting
'
;
export
default
defineComponent
({
name
:
'
AboutPage
'
,
components
:
{
Description
,
PageWrapper
},
setup
()
{
const
{
pkg
,
lastBuildTime
}
=
window
.
__APP_INFO__
;
const
{
dependencies
,
devDependencies
,
name
,
version
}
=
pkg
;
const
schema
:
DescItem
[]
=
[];
const
devSchema
:
DescItem
[]
=
[];
const
commonTagRender
=
(
color
:
string
)
=>
(
curVal
)
=>
h
(
Tag
,
{
color
},
()
=>
curVal
);
const
commonLinkRender
=
(
text
:
string
)
=>
(
href
)
=>
h
(
'
a
'
,
{
href
,
target
:
'
_blank
'
},
text
);
const
infoSchema
:
DescItem
[]
=
[
{
label
:
'
版本
'
,
field
:
'
version
'
,
render
:
commonTagRender
(
'
blue
'
),
},
{
label
:
'
最后编译时间
'
,
field
:
'
lastBuildTime
'
,
render
:
commonTagRender
(
'
blue
'
),
},
{
label
:
'
文档地址
'
,
field
:
'
doc
'
,
render
:
commonLinkRender
(
'
文档地址
'
),
},
{
label
:
'
预览地址
'
,
field
:
'
preview
'
,
render
:
commonLinkRender
(
'
预览地址
'
),
},
{
label
:
'
Github
'
,
field
:
'
github
'
,
render
:
commonLinkRender
(
'
Github
'
),
},
];
const
infoData
=
{
version
,
lastBuildTime
,
doc
:
DOC_URL
,
preview
:
SITE_URL
,
github
:
GITHUB_URL
,
};
Object
.
keys
(
dependencies
).
forEach
((
key
)
=>
{
schema
.
push
({
field
:
key
,
label
:
key
});
});
Object
.
keys
(
devDependencies
).
forEach
((
key
)
=>
{
devSchema
.
push
({
field
:
key
,
label
:
key
});
});
const
[
register
]
=
useDescription
({
title
:
'
生产环境依赖
'
,
data
:
dependencies
,
schema
:
schema
,
column
:
3
,
});
const
[
registerDev
]
=
useDescription
({
title
:
'
开发环境依赖
'
,
data
:
devDependencies
,
schema
:
devSchema
,
column
:
3
,
});
const
[
infoRegister
]
=
useDescription
({
title
:
'
项目信息
'
,
data
:
infoData
,
schema
:
infoSchema
,
column
:
2
,
});
return
{
register
,
registerDev
,
infoRegister
,
name
,
GITHUB_URL
};
},
});
</
script
>
types/global.d.ts
浏览文件 @
b54b7942
...
...
@@ -10,6 +10,16 @@ declare global {
declare
interface
Window
{
// Global vue app instance
__APP__
:
App
<
Element
>
;
__APP_INFO__
:
{
pkg
:
{
name
:
string
;
version
:
string
;
dependencies
:
Recordable
<
string
>
;
devDependencies
:
Recordable
<
string
>
;
};
lastBuildTime
:
string
;
};
}
// vue
...
...
vite.config.ts
浏览文件 @
b54b7942
...
...
@@ -9,6 +9,13 @@ import { createAlias } from './build/vite/alias';
import
{
wrapperEnv
}
from
'
./build/utils
'
;
import
{
createVitePlugins
}
from
'
./build/vite/plugin
'
;
import
{
OUTPUT_DIR
}
from
'
./build/constant
'
;
import
pkg
from
'
./package.json
'
;
import
moment
from
'
moment
'
;
const
APP_INFO
=
{
pkg
,
lastBuildTime
:
moment
().
format
(
'
YYYY-MM-DD HH:mm:ss
'
),
};
export
default
({
command
,
mode
}:
ConfigEnv
):
UserConfig
=>
{
const
root
=
process
.
cwd
();
...
...
@@ -58,6 +65,8 @@ export default ({ command, mode }: ConfigEnv): UserConfig => {
__VUE_I18N_LEGACY_API__
:
false
,
__VUE_I18N_FULL_INSTALL__
:
false
,
__INTLIFY_PROD_DEVTOOLS__
:
false
,
__APP_INFO__
:
JSON
.
stringify
(
APP_INFO
),
},
css
:
{
preprocessorOptions
:
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录