* 媒体库增加分类,图库多选择时优化。

* 重构 JWT token 生成,使用 `New()` 函数代替直接创建实例

* 上传组件支持查看大图 (#1982)

* 将参数缓存,媒体库增加分类,图库多选择时优化。 (#1978)

* 媒体库增加分类,图库多选择时优化。

*修复文件上传进度显示bug&按钮样式优化 (#1986)

* fix:添加内部 iframe 展示网页,优化 permission 代码

* 俩个uuid库合并一个,更新库到当前版本。

* 优化关于我们界面

* feat: 个人中心头像调整,媒体库兼容性调整。

* feat: 自动化代码前端页面美化,多余按钮收入专家模式

* feat: 增加单独生成server功能

* feat: 限制单独生成前后端的情况下的细节配置

* feat: 修复全选失败报错的问题

---------

Co-authored-by: task <121913992@qq.com>
Co-authored-by: Feng.YJ <32027253+huiyifyj@users.noreply.github.com>
Co-authored-by: will0523 <dygsunshine@163.com>
Co-authored-by: task <ms.yangdan@gmail.com>
Co-authored-by: sslee <57312216+GIS142857@users.noreply.github.com>
Co-authored-by: bypanghu <bypanghu@163.com>
Co-authored-by: Azir <2075125282@qq.com>
Co-authored-by: piexlMax(奇淼 <qimiaojiangjizhao@gmail.com>
Co-authored-by: krank <emosick@qq.com>
This commit is contained in:
PiexlMax(奇淼
2025-02-13 15:25:10 +08:00
committed by GitHub
co-authored by task Feng.YJ will0523 task sslee bypanghu Azir piexlMax(奇淼 krank
parent ea39d83907
commit d40c815760
61 changed files with 2288 additions and 1529 deletions
@@ -115,5 +115,5 @@
ElMessage.success('复制成功')
}
defineExpose({ copy })
defineExpose({ copy, selectText })
</script>
+195 -134
View File
@@ -329,142 +329,159 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="3">
<el-form-item>
<template #label>
<el-tooltip
content="注:会自动在结构体global.Model其中包含主键和软删除相关操作配置"
placement="bottom"
effect="light"
>
<div>
使用GVA结构 <el-icon><QuestionFilled /></el-icon>
</div>
</el-tooltip>
</template>
<el-checkbox v-model="form.gvaModel" @change="useGva" />
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item>
<template #label>
<el-tooltip
content="注:把自动生成的API注册进数据库"
placement="bottom"
effect="light"
>
<div>
自动创建API <el-icon><QuestionFilled /></el-icon>
</div>
</el-tooltip>
</template>
<el-checkbox v-model="form.autoCreateApiToSql" />
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item>
<template #label>
<el-tooltip
content="注:把自动生成的菜单注册进数据库"
placement="bottom"
effect="light"
>
<div>
自动创建菜单 <el-icon><QuestionFilled /></el-icon>
</div>
</el-tooltip>
</template>
<el-checkbox v-model="form.autoCreateMenuToSql" />
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item>
<template #label>
<el-tooltip
content="注:自动同步数据库表结构,如果不需要可以选择关闭。"
placement="bottom"
effect="light"
>
<div>
同步表结构 <el-icon><QuestionFilled /></el-icon>
</div>
</el-tooltip>
</template>
<el-checkbox v-model="form.autoMigrate" />
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item>
<template #label>
<el-tooltip
content="注:会自动产生页面内的按钮权限配置,若不在角色管理中进行按钮分配则按钮不可见"
placement="bottom"
effect="light"
>
<div>
创建按钮权限 <el-icon><QuestionFilled /></el-icon>
</div>
</el-tooltip>
</template>
<el-checkbox v-model="form.autoCreateBtnAuth" />
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item>
<template #label>
<el-tooltip
content="注:会自动在结构体添加 created_by updated_by deleted_by,方便用户进行资源权限控制"
placement="bottom"
effect="light"
>
<div>
创建资源标识 <el-icon><QuestionFilled /></el-icon>
</div>
</el-tooltip>
</template>
<el-checkbox v-model="form.autoCreateResource" />
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item>
<template #label>
<el-tooltip
content="注:使用基础模板将不会生成任何结构体和CURD,仅仅配置enter等属性方便自行开发非CURD逻辑"
placement="bottom"
effect="light"
>
<div>
基础模板 <el-icon><QuestionFilled /></el-icon>
</div>
</el-tooltip>
</template>
<el-checkbox v-model="form.onlyTemplate" />
</el-form-item>
</el-col>
<el-col :span="9">
<el-form-item>
<template #label>
<el-tooltip
content="注:会自动创建parentID来进行父子关系关联,仅支持主键为int类型"
placement="bottom"
effect="light"
>
<div>
树型结构 <el-icon><QuestionFilled /></el-icon>
</div>
</el-tooltip>
</template>
<div class="flex gap-2 items-center">
<el-checkbox v-model="form.isTree" />
<el-input v-model="form.treeJson" :disabled="!form.isTree" placeholder="前端展示json属性"></el-input>
</div>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
<div class="gva-search-box">
<el-collapse class="no-border-collapse">
<el-collapse-item>
<template #title>
<div class="text-lg text-gray-600 font-normal">
专家模式
</div>
</template>
<template #icon="{ isActive }">
<span class="text-lg ml-auto mr-4 font-normal">
{{ isActive ? '收起' : '展开' }}
</span>
</template>
<div class="p-4">
<!-- 基础设置组 -->
<div class="border-b border-gray-200 last:border-0">
<h3 class="text-lg font-medium mb-4 text-gray-700">基础设置</h3>
<el-row :gutter="20">
<el-col :span="3">
<el-tooltip
content="注:会自动在结构体global.Model其中包含主键和软删除相关操作配置"
placement="top"
effect="light"
>
<el-form-item label="使用GVA结构">
<el-checkbox v-model="form.gvaModel" @change="useGva" />
</el-form-item>
</el-tooltip>
</el-col>
<el-col :span="3">
<el-tooltip
content="注:会自动产生页面内的按钮权限配置,若不在角色管理中进行按钮分配则按钮不可见"
placement="top"
effect="light"
>
<el-form-item label="创建按钮权限">
<el-checkbox :disabled="!form.generateWeb" v-model="form.autoCreateBtnAuth" />
</el-form-item>
</el-tooltip>
</el-col>
<el-col :span="3">
<el-form-item label="生成前端">
<el-checkbox v-model="form.generateWeb" />
</el-form-item>
</el-col>
<el-col :span="3">
<el-form-item label="生成后端">
<el-checkbox v-model="form.generateServer" />
</el-form-item>
</el-col>
</el-row>
</div>
<!-- 自动化设置组 -->
<div class="border-b border-gray-200 last:border-0">
<h3 class="text-lg font-medium mb-4 text-gray-700">自动化设置</h3>
<el-row :gutter="20">
<el-col :span="3">
<el-tooltip
content="注:把自动生成的API注册进数据库"
placement="top"
effect="light"
>
<el-form-item label="自动创建API">
<el-checkbox :disabled="!form.generateServer" v-model="form.autoCreateApiToSql" />
</el-form-item>
</el-tooltip>
</el-col>
<el-col :span="3">
<el-tooltip
content="注:把自动生成的菜单注册进数据库"
placement="top"
effect="light"
>
<el-form-item label="自动创建菜单">
<el-checkbox :disabled="!form.generateWeb" v-model="form.autoCreateMenuToSql" />
</el-form-item>
</el-tooltip>
</el-col>
<el-col :span="3">
<el-tooltip
content="注:自动同步数据库表结构,如果不需要可以选择关闭"
placement="top"
effect="light"
>
<el-form-item label="同步表结构">
<el-checkbox :disabled="!form.generateServer" v-model="form.autoMigrate" />
</el-form-item>
</el-tooltip>
</el-col>
</el-row>
</div>
<!-- 高级设置组 -->
<div class="border-b border-gray-200 last:border-0">
<h3 class="text-lg font-medium mb-4 text-gray-700">高级设置</h3>
<el-row :gutter="20">
<el-col :span="3">
<el-tooltip
content="注:会自动在结构体添加 created_by updated_by deleted_by,方便用户进行资源权限控制"
placement="top"
effect="light"
>
<el-form-item label="创建资源标识">
<el-checkbox v-model="form.autoCreateResource" />
</el-form-item>
</el-tooltip>
</el-col>
<el-col :span="3">
<el-tooltip
content="注:使用基础模板将不会生成任何结构体和CURD,仅仅配置enter等属性方便自行开发非CURD逻辑"
placement="top"
effect="light"
>
<el-form-item label="基础模板">
<el-checkbox v-model="form.onlyTemplate" />
</el-form-item>
</el-tooltip>
</el-col>
</el-row>
</div>
<!-- 树形结构设置 -->
<div class="last:pb-0">
<h3 class="text-lg font-medium mb-4 text-gray-700">树形结构设置</h3>
<el-row :gutter="20" align="middle">
<el-col :span="24">
<el-form-item label="树型结构">
<div class="flex items-center gap-4">
<el-tooltip
content="注:会自动创建parentID来进行父子关系关联,仅支持主键为int类型"
placement="top"
effect="light"
>
<el-checkbox v-model="form.isTree" />
</el-tooltip>
<el-input
v-model="form.treeJson"
:disabled="!form.isTree"
placeholder="前端展示json属性"
class="flex-1"
/>
</div>
</el-form-item>
</el-col>
</el-row>
</div>
</div>
</el-collapse-item>
</el-collapse>
</div>
<!-- 组件列表 -->
<div class="gva-table-box">
<div class="gva-btn-list">
@@ -929,6 +946,10 @@
for (let key in json) {
form.value[key] = json[key]
}
form.value.generateServer = true
form.value.generateWeb = true
}
}
@@ -1118,6 +1139,8 @@
autoCreateResource: false,
onlyTemplate: false,
isTree: false,
generateWeb:true,
generateServer:true,
treeJson: "",
fields: []
})
@@ -1239,6 +1262,13 @@
})
return false
}
if(!form.value.generateWeb && !form.value.generateServer){
ElMessage({
type: 'error',
message: '请至少选择一个生成项'
})
return false
}
if (!form.value.onlyTemplate) {
if (form.value.fields.length <= 0) {
ElMessage({
@@ -1403,6 +1433,8 @@
form.value.abbreviation = toLowerCase(tbHump)
form.value.description = tbHump + '表'
form.value.autoCreateApiToSql = true
form.value.generateServer = true
form.value.generateWeb = true
form.value.fields = []
res.data.columns &&
res.data.columns.forEach((item) => {
@@ -1520,6 +1552,20 @@
}
)
watch(()=>form.value.generateServer,()=>{
if(!form.value.generateServer){
form.value.autoCreateApiToSql = false
form.value.autoMigrate = false
}
})
watch(()=>form.value.generateWeb,()=>{
if(!form.value.generateWeb){
form.value.autoCreateMenuToSql = false
form.value.autoCreateBtnAuth = false
}
})
const catchData = () => {
window.sessionStorage.setItem('autoCode', JSON.stringify(form.value))
}
@@ -1607,3 +1653,18 @@
}
)
</script>
<style>
.no-border-collapse{
@apply border-none;
.el-collapse-item__header{
@apply border-none;
}
.el-collapse-item__wrap{
@apply border-none;
}
.el-collapse-item__content{
@apply pb-0;
}
}
</style>