diff --git a/frontend_vue.py b/frontend_vue.py
index 7feae27..dc99123 100644
--- a/frontend_vue.py
+++ b/frontend_vue.py
@@ -24,7 +24,7 @@ def build_fields(table):
for c in cols:
field = {}
field["name"] = to_camel(c["column_name"])
- field["comment"] = c["column_comment"]
+ field["comment"] = tab_chane_comment(c["column_comment"])
field["type"] = c["data_type"]
# ⭐ 在这里调用组件解析
field["component"] = parse_component(c)
@@ -45,7 +45,7 @@ def generate(table):
EDIT_FIELDS = cfg["frontend"]["editFields"]
table_info = get_table(table)
- entity = table.replace("health_","")
+ entity = table # table.replace("health_","")
ctx = {
"table":table,
"table_comment":table_info["table_comment"],
diff --git a/generator.py b/generator.py
index 8a592a7..29d4622 100644
--- a/generator.py
+++ b/generator.py
@@ -19,7 +19,7 @@ def build_fields(table_name):
"java_name": to_camel(c["column_name"]),
"tab_name": c["column_name"],
"tab_type": c["data_type"],
- "java_get_name": to_m_camel(c["column_name"]),
+ "java_get_name": to_class(c["column_name"]),
"java_type": mysql_to_java(c["data_type"]),
"comment": c["column_comment"]
})
@@ -80,28 +80,6 @@ def render(template_name, out_path, context, java_version, overwrite=False):
def generate(table_names: list[str], model_names: list[str], conf_name: str, over_write: bool, java_version: str):
- # context = {
- # "mainModule": MAIN_MODULE,
- # "moduleName": MODULE_NAME,
- # "groupId": GROUP_ID,
- # "author": AUTHOR,
- # "wechat": WECHAT,
- # "date": datetime.now().strftime("%Y-%m-%d"),
- # "entityLombokModel": True,
- # "package": {
- # "Base": BASE_PACKAGE,
- # "Common": f"{BASE_PACKAGE}.{DEFAULT_PREFIX_URL}.common",
- # "Entity": f"{BASE_PACKAGE}.{DEFAULT_PREFIX_URL}.entity",
- # "Service": f"{BASE_PACKAGE}.{DEFAULT_PREFIX_URL}.service",
- # "Controller": f"{BASE_PACKAGE}.{DEFAULT_PREFIX_URL}.controller",
- # "ServiceImpl": f"{BASE_PACKAGE}.{DEFAULT_PREFIX_URL}.service.impl",
- # "Mapper": f"{BASE_PACKAGE}.{DEFAULT_PREFIX_URL}.mapper"
- # },
- # "db": DB,
- # "application": APPLICATION,
- # "restControllerStyle": REST_CONTROLLER_STYLE
- # }
-
with open(conf_name, "r", encoding="utf-8") as f:
cfg = yaml.safe_load(f)
cfg = resolve_config(cfg)
@@ -140,6 +118,7 @@ def generate(table_names: list[str], model_names: list[str], conf_name: str, ove
context.update({
"fields": build_fields(table_name),
"table": {
+ "tabToPath": tab_to_path(table_name),
"entity": entity,
"lowerEntity": lower_first(entity),
"name": table_name,
@@ -354,6 +333,26 @@ def generate(table_names: list[str], model_names: list[str], conf_name: str, ove
context,
java_version
)
+ case "vue":
+ # 如果生成vue,则一定要有table_names
+ if table_names is None or len(table_names) == 0:
+ print("生成vue相关公共,需要生成相对应的表")
+ else :
+ render(
+ "CommonController.java.j2",
+ f"{BASE_DIR}{MAIN_OUTPUT_DIR}/controller/CommonController.java",
+ context,
+ java_version,
+ over_write
+ )
+
+ render(
+ "CommonVueEnumsEntity.java.j2",
+ f"{BASE_DIR}{MAIN_OUTPUT_DIR}/entity/CommonVueEnumsEntity.java",
+ context,
+ java_version,
+ over_write
+ )
if __name__ == "__main__":
args = parse_args()
diff --git a/templates/java/21.controller.java.j2 b/templates/java/21.controller.java.j2
index 4a617d0..af9dcd5 100644
--- a/templates/java/21.controller.java.j2
+++ b/templates/java/21.controller.java.j2
@@ -28,7 +28,7 @@ import java.util.List;
{% else %}
@Controller
{% endif %}
-@RequestMapping("{{ table.name }}")
+@RequestMapping("{{ table.tabToPath }}")
public class {{ table.entity }}Controller {
@Resource
diff --git a/templates/java/CommonController.java.j2 b/templates/java/CommonController.java.j2
new file mode 100644
index 0000000..d0053b7
--- /dev/null
+++ b/templates/java/CommonController.java.j2
@@ -0,0 +1,66 @@
+package {{ package.Controller }};
+
+//VUE 固定引入 CommonEnums
+import {{ package.Entity }}.CommonEnums;
+import {{ package.Service }}.{{ table.entity }}Service;
+import {{ package.Common }}.vo.Result;
+
+//--- import 固定引入 ---//
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.validation.Valid;
+import java.util.List;
+//--- import 固定引入 ---//
+
+/**
+ *
+ * 后台枚举 前端控制器
+ *
+ *
+ * @author tiger
+ * @since 2026-03-17
+ */
+@Api(tags = "公共方法对外接口")
+@RestController
+@RequestMapping("/model/common")
+public class CommonController {
+
+ @Resource
+ private {{ table.entity }}Service {{table.lowerEntity}}Service;
+
+
+ @ApiOperation(value = "枚举列表查询", response = {{ table.entity }}.class)
+ @PostMapping(value = "/optionList")
+ public Result> optionList(@Valid @RequestBody {{ table.entity }} param,
+ @RequestHeader("token") String token,
+ @RequestHeader(value = "version", defaultValue = "1.0") String version) {
+
+ List<{{ table.entity }}> list = {{table.lowerEntity}}Service.list(param);
+ if (list == null) {
+ return Result.error("无数据");
+ }
+ List option = new ArrayList<>();
+ list.forEach(item -> {
+ AtomicReference isExt = new AtomicReference<>(false);
+ option.forEach(item2 -> {
+ if (item.getFieldName().equals(item2.getFieldName())
+ && item.getFieldLabel().equals(item2.getFieldLabel())) {
+ item2.getOptions().add(item);
+ isExt.set(true);
+ }
+ });
+ if(!isExt.get()){
+ CommonVueEnumsEntity optionItem = new CommonVueEnumsEntity();
+ optionItem.setFieldName(item.getFieldName());
+ optionItem.setFieldLabel(item.getFieldLabel());
+ optionItem.setOptions(new ArrayList<>());
+ optionItem.getOptions().add(item);
+ option.add(optionItem);
+ }
+ });
+ return Result.OK( option );
+ }
+}
diff --git a/templates/java/CommonVueEnumsEntity.java.j2 b/templates/java/CommonVueEnumsEntity.java.j2
new file mode 100644
index 0000000..08cb335
--- /dev/null
+++ b/templates/java/CommonVueEnumsEntity.java.j2
@@ -0,0 +1,21 @@
+package {{ package.Entity }};
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ *
+ * 枚举自增
+ *
+ *
+ * @author zmm
+ * @since 2026-03-12
+ */
+@Data
+public class CommonVueEnumsEntity {
+ private static final long serialVersionUID = 1L;
+ private String fieldName;
+ private String fieldLabel;
+ private List options;
+}
diff --git a/templates/java/controller.java.j2 b/templates/java/controller.java.j2
index 2a5c1cf..f899c8e 100644
--- a/templates/java/controller.java.j2
+++ b/templates/java/controller.java.j2
@@ -28,7 +28,7 @@ import java.util.List;
{% else %}
@Controller
{% endif %}
-@RequestMapping("{{ table.name }}")
+@RequestMapping("{{ table.tabToPath }}")
public class {{ table.entity }}Controller {
@Resource
@@ -104,4 +104,35 @@ public class {{ table.entity }}Controller {
}
+ @ApiOperation(value = "枚举自增分页列表查询", response = HealthEnums.class)
+ @PostMapping(value = "/optionList")
+ public Result> allList(@Valid @RequestBody HealthEnums param,
+ @RequestHeader("token") String token,
+ @RequestHeader(value = "version", defaultValue = "1.0") String version) {
+ List list = healthEnumsService.list(param);
+ if (list == null) {
+ return Result.error("无数据");
+ }
+ List option = new ArrayList<>();
+ list.forEach(item -> {
+ AtomicReference isExt = new AtomicReference<>(false);
+ option.forEach(item2 -> {
+ if (item.getFieldName().equals(item2.getFieldName())
+ && item.getFieldLabel().equals(item2.getFieldLabel())) {
+ item2.getOptions().add(item);
+ isExt.set(true);
+ }
+ });
+ if(!isExt.get()){
+ HealthEnumsOption optionItem = new HealthEnumsOption();
+ optionItem.setFieldName(item.getFieldName());
+ optionItem.setFieldLabel(item.getFieldLabel());
+ optionItem.setOptions(new ArrayList<>());
+ optionItem.getOptions().add(item);
+ option.add(optionItem);
+ }
+ });
+ return Result.OK( option );
+ }
+
}
diff --git a/templates/vue/index.vue.j2 b/templates/vue/index.vue.j2
index 1949336..2b1ce43 100644
--- a/templates/vue/index.vue.j2
+++ b/templates/vue/index.vue.j2
@@ -231,7 +231,7 @@ const [Modal, modalApi] = useVbenModal({
closable: true,
maskClosable: false,
draggable: true,
- width: 800,
+ class: 'w-[60vw]',
onCancel() {
modalApi.close();
},
@@ -258,7 +258,6 @@ const [Modal, modalApi] = useVbenModal({
await {{entity}}Api.save({...finalSubmitValues, id: currentRow.value.id});
Object.assign(currentRow.value, finalSubmitValues);
modalApi.close();
- gridApi.reloadRow(currentRow.value);
loadingMessage();
isEdit.value = false;
message.success('保存成功!');
@@ -438,13 +437,7 @@ const getEditFormSchema = () => {
const [Form, formApi] = useVbenForm({
schema: editFormSchema,
showDefaultActions: false,
- wrapperClass: 'grid-cols-1 md:grid-cols-2',
- commonConfig: {
- componentProps: {
- class: 'w-full',
- autocomplete: 'off',
- },
- },
+ wrapperClass: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3',
})
// ========== 上传文件 ==========
diff --git a/utils.py b/utils.py
index 7872bc7..196bf0f 100644
--- a/utils.py
+++ b/utils.py
@@ -2,29 +2,39 @@ import argparse
import re
from copy import deepcopy
+# 下划线转-划线
def to_kebab(name):
parts = name.split("_")
return "-".join(parts)
+# 下划线转驼峰,首单词的首字母小写
def to_camel(name):
parts = name.split("_")
return parts[0] + "".join(p.capitalize() for p in parts[1:])
+# 下划线转驼峰,首单词的首字母大写
def to_m_camel(name):
return "".join(p.capitalize() for p in name.split("_"))
def to_class(name):
return "".join(p.capitalize() for p in name.split("_"))
+# 根据逗号分隔符,将字段名转换成驼峰
def to_class_join(name):
parts = name.split(",")
return "'"+"','".join(to_camel(p) for p in parts)+"'"
+# 表名转路径
+def tab_to_path(name):
+ return "/"+"/".join(p for p in name.split("_"))
+
+
def lower_first(s: str) -> str:
if not s:
return s
return s[0].lower() + s[1:]
+# 路径转换
def to_path(name):
parts = name.split(".")
if len(parts) < 2: # 如果没有".",parts长度就是1
@@ -43,6 +53,9 @@ def get_first_part(name, default=""):
return parts[0].capitalize()
+def tab_chane_comment(name, default="", delimiter=":"):
+ return name.split(delimiter, 1)[0] if name else default
+
def parse_args():
parser = argparse.ArgumentParser(description="Java Code Generator")
@@ -129,7 +142,7 @@ def resolve_config(config: dict, max_rounds=5) -> dict:
return result
-
+# mysql类型转java类型
def mysql_to_java(mysql_type):
mapping = {
"bigint": "Long",
@@ -143,8 +156,8 @@ def mysql_to_java(mysql_type):
}
return mapping.get(mysql_type, "String")
+# mysql类型转element-ui组件
def parse_component(field):
-
t = field["data_type"]
if "datetime" in t:
return "DatePicker"
@@ -152,5 +165,4 @@ def parse_component(field):
return "InputTextArea"
if "int" in t:
return "InputNumber"
-
return "Input"
\ No newline at end of file
diff --git a/vue-vben-admin/apps/web-antd/src/api/fun.ts b/vue-vben-admin/apps/web-antd/src/api/fun.ts
deleted file mode 100644
index 63f3ea4..0000000
--- a/vue-vben-admin/apps/web-antd/src/api/fun.ts
+++ /dev/null
@@ -1,69 +0,0 @@
-/**
- * 自动生成 API
- * 负责调用后端接口
- */
-
-import { requestClient } from '#/api/request';
-import { useAppConfig } from '@vben/hooks';
-import { useAccessStore } from '@vben/stores';
-
-export namespace funApi {
-
- const applicationConfig = useAppConfig(import.meta.env, import.meta.env.PROD);
- console.log('=== 接口域名 ===', applicationConfig.javaURL)
-
- /**
- * 分页查询
- */
- export function page(params: any) {
- return requestClient.post(applicationConfig.javaURL+'/health-fun/page', params,
- { headers: {'Content-Type': 'application/json', Token: useAccessStore().accessToken, version: '1.0.1'}});
- }
-
- /**
- * 获取详情
- */
- export function get(id: number) {
- return requestClient.get(applicationConfig.javaURL+'/health-fun/' + id);
- }
-
- /**
- * 新增
- */
- export function add(data: any) {
- return requestClient.post(applicationConfig.javaURL+'/health-fun/add', data,
- { headers: {'Content-Type': 'application/json', Token: useAccessStore().accessToken, version: '1.0.1'}});
- }
-
- /**
- * 修改
- */
- export function save(data: any) {
- return requestClient.post(applicationConfig.javaURL+'/health-fun/modify', data,
- { headers: {'Content-Type': 'application/json', Token: useAccessStore().accessToken, version: '1.0.1'}});
- }
-
- /**
- * 删除
- */
- export function remove(id: number) {
- return requestClient.delete(applicationConfig.javaURL+'/health-fun/' + id);
- }
-
- /**
- * 枚举列表
- */
- export function enumList(params: any) {
- return requestClient.post(applicationConfig.javaURL+'/health-enums/optionList', params,
- { headers: {'Content-Type': 'application/json', Token: useAccessStore().accessToken, version: '1.0.1'}});
- }
-
- /**
- * 上传图片
- */
- export function upload(params: any) {
- return requestClient.post(applicationConfig.javaURL+'/file/up', params,
- { headers: {'Content-Type': 'multipart/form-data', Token: useAccessStore().accessToken, version: '1.0.1'}});
- }
-
-}
\ No newline at end of file
diff --git a/vue-vben-admin/apps/web-antd/src/router/routes/modules/fun.ts b/vue-vben-admin/apps/web-antd/src/router/routes/modules/fun.ts
deleted file mode 100644
index 5cc53a4..0000000
--- a/vue-vben-admin/apps/web-antd/src/router/routes/modules/fun.ts
+++ /dev/null
@@ -1,31 +0,0 @@
-/**
- * 自动生成路由
- */
-
-import type { RouteRecordRaw } from 'vue-router';
-
-const routes: RouteRecordRaw[] = [
-
-{
- path: '/fun',
- name: '功能配置表模块',
- meta: {
- icon: 'ic:baseline-view-in-ar',
- order: 1000,
- keepAlive: true,
- title: '',
- },
- children: [
- {
- meta: {
- title: "功能配置表列表",
- },
- name: 'funList',
- path: '/fun',
- component: () => import('#/views/fun/index.vue'),
- },
- ],
- }
-];
-
-export default routes;
\ No newline at end of file
diff --git a/vue-vben-admin/apps/web-antd/src/views/fun/data.ts b/vue-vben-admin/apps/web-antd/src/views/fun/data.ts
deleted file mode 100644
index 898e714..0000000
--- a/vue-vben-admin/apps/web-antd/src/views/fun/data.ts
+++ /dev/null
@@ -1,253 +0,0 @@
-/**
- * 表格列配置
- */
-
-import type { VxeGridProps } from '#/adapter/vxe-table';
-
-export const columns: VxeGridProps['columns'] = [
-
-
-{
- // 列标题
- title: '主键ID',
-
- // 对应字段
- field: 'id',
-
- // 宽度
- width: 150
-},
-
-{
- // 列标题
- title: '父类ID',
-
- // 对应字段
- field: 'funParentId',
-
- // 宽度
- width: 150
-},
-
-{
- // 列标题
- title: '功能名称',
-
- // 对应字段
- field: 'funName',
-
- // 宽度
- width: 150
-},
-
-{
- // 列标题
- title: '功能码对外做映射用',
-
- // 对应字段
- field: 'funCode',
-
- // 宽度
- width: 150
-},
-
-{
- // 列标题
- title: '功能数值',
-
- // 对应字段
- field: 'funValue',
-
- // 宽度
- width: 150
-},
-
-{
- // 列标题
- title: '告警级别: 0默认,1级,2级,3级',
-
- // 对应字段
- field: 'funWarnLevel',
-
- // 宽度
- width: 150
-},
-
-{
- // 列标题
- title: '用位运算组合',
-
- // 对应字段
- field: 'funWarnType',
-
- // 宽度
- width: 150
-},
-
-{
- // 列标题
- title: '是否在首页展示: 0展示,1不展示',
-
- // 对应字段
- field: 'funIndex',
-
- // 宽度
- width: 150
-},
-
-{
- // 列标题
- title: '创建时间',
-
- // 对应字段
- field: 'createdAt',
-
- // 宽度
- width: 150
-},
-
-{
- // 列标题
- title: '创建人',
-
- // 对应字段
- field: 'createdBy',
-
- // 宽度
- width: 150
-},
-
-{
- // 列标题
- title: '更新时间',
-
- // 对应字段
- field: 'updatedAt',
-
- // 宽度
- width: 150
-},
-
-{
- // 列标题
- title: '更新人',
-
- // 对应字段
- field: 'updatedBy',
-
- // 宽度
- width: 150
-},
-
-{
- // 列标题
- title: '删除 0 默认 1删除',
-
- // 对应字段
- field: 'deletedFlag',
-
- // 宽度
- width: 150
-},
-
-{
- // 列标题
- title: '用户ID',
-
- // 对应字段
- field: 'userId',
-
- // 宽度
- width: 150
-},
-
-{
- // 列标题
- title: '设备唯一标识',
-
- // 对应字段
- field: 'deviceCode',
-
- // 宽度
- width: 150
-},
-
-{
- // 列标题
- title: '功能图',
-
- // 对应字段
- field: 'funImg',
-
- // 宽度
- width: 150
-},
-
-{
- // 列标题
- title: '设备类型',
-
- // 对应字段
- field: 'deviceType',
-
- // 宽度
- width: 150
-},
-
-{
- // 列标题
- title: '功能状态: 默认 0开通,1关闭,2隐藏',
-
- // 对应字段
- field: 'funStatus',
-
- // 宽度
- width: 150
-},
-
-{
- // 列标题
- title: '完成10,30,60逐级提升告警持续',
-
- // 对应字段
- field: 'graduallyIntervalTime',
-
- // 宽度
- width: 150
-},
-
-{
- // 列标题
- title: '消息展示语',
-
- // 对应字段
- field: 'funMsgTitle',
-
- // 宽度
- width: 150
-},
-
-{
- // 列标题
- title: '持续时间默认值',
-
- // 对应字段
- field: 'funStatisticsTimes',
-
- // 宽度
- width: 150
-},
-
-{
- // 列标题
- title: '短消息提示语言',
-
- // 对应字段
- field: 'funShortMsg',
-
- // 宽度
- width: 150
-},
-
-
-];
\ No newline at end of file
diff --git a/vue-vben-admin/apps/web-antd/src/views/fun/form.ts b/vue-vben-admin/apps/web-antd/src/views/fun/form.ts
deleted file mode 100644
index 20493cd..0000000
--- a/vue-vben-admin/apps/web-antd/src/views/fun/form.ts
+++ /dev/null
@@ -1,276 +0,0 @@
-/**
- * 表单 schema
- * component 类型来自 parse_component()
- */
-
-import type { VbenFormSchema } from '#/adapter/form';
-
-export const formSchema: VbenFormSchema[] = [
-
-
-{
- // 字段名
- fieldName: 'id',
-
- // label
- label: '主键ID',
-
- // 自动组件
- component: 'InputNumber'
-
-},
-
-{
- // 字段名
- fieldName: 'funParentId',
-
- // label
- label: '父类ID',
-
- // 自动组件
- component: 'InputNumber'
-
-},
-
-{
- // 字段名
- fieldName: 'funName',
-
- // label
- label: '功能名称',
-
- // 自动组件
- component: 'Input'
-
-},
-
-{
- // 字段名
- fieldName: 'funCode',
-
- // label
- label: '功能码对外做映射用',
-
- // 自动组件
- component: 'Input'
-
-},
-
-{
- // 字段名
- fieldName: 'funValue',
-
- // label
- label: '功能数值',
-
- // 自动组件
- component: 'Input'
-
-},
-
-{
- // 字段名
- fieldName: 'funWarnLevel',
-
- // label
- label: '告警级别: 0默认,1级,2级,3级',
-
- // 自动组件
- component: 'InputNumber'
-
-},
-
-{
- // 字段名
- fieldName: 'funWarnType',
-
- // label
- label: '用位运算组合',
-
- // 自动组件
- component: 'InputNumber'
-
-},
-
-{
- // 字段名
- fieldName: 'funIndex',
-
- // label
- label: '是否在首页展示: 0展示,1不展示',
-
- // 自动组件
- component: 'InputNumber'
-
-},
-
-{
- // 字段名
- fieldName: 'createdAt',
-
- // label
- label: '创建时间',
-
- // 自动组件
- component: 'DatePicker'
-
-},
-
-{
- // 字段名
- fieldName: 'createdBy',
-
- // label
- label: '创建人',
-
- // 自动组件
- component: 'InputNumber'
-
-},
-
-{
- // 字段名
- fieldName: 'updatedAt',
-
- // label
- label: '更新时间',
-
- // 自动组件
- component: 'DatePicker'
-
-},
-
-{
- // 字段名
- fieldName: 'updatedBy',
-
- // label
- label: '更新人',
-
- // 自动组件
- component: 'InputNumber'
-
-},
-
-{
- // 字段名
- fieldName: 'deletedFlag',
-
- // label
- label: '删除 0 默认 1删除',
-
- // 自动组件
- component: 'InputNumber'
-
-},
-
-{
- // 字段名
- fieldName: 'userId',
-
- // label
- label: '用户ID',
-
- // 自动组件
- component: 'InputNumber'
-
-},
-
-{
- // 字段名
- fieldName: 'deviceCode',
-
- // label
- label: '设备唯一标识',
-
- // 自动组件
- component: 'Input'
-
-},
-
-{
- // 字段名
- fieldName: 'funImg',
-
- // label
- label: '功能图',
-
- // 自动组件
- component: 'Input'
-
-},
-
-{
- // 字段名
- fieldName: 'deviceType',
-
- // label
- label: '设备类型',
-
- // 自动组件
- component: 'InputNumber'
-
-},
-
-{
- // 字段名
- fieldName: 'funStatus',
-
- // label
- label: '功能状态: 默认 0开通,1关闭,2隐藏',
-
- // 自动组件
- component: 'InputNumber'
-
-},
-
-{
- // 字段名
- fieldName: 'graduallyIntervalTime',
-
- // label
- label: '完成10,30,60逐级提升告警持续',
-
- // 自动组件
- component: 'Input'
-
-},
-
-{
- // 字段名
- fieldName: 'funMsgTitle',
-
- // label
- label: '消息展示语',
-
- // 自动组件
- component: 'Input'
-
-},
-
-{
- // 字段名
- fieldName: 'funStatisticsTimes',
-
- // label
- label: '持续时间默认值',
-
- // 自动组件
- component: 'InputNumber'
-
-},
-
-{
- // 字段名
- fieldName: 'funShortMsg',
-
- // label
- label: '短消息提示语言',
-
- // 自动组件
- component: 'Input'
-
-},
-
-
-];
\ No newline at end of file
diff --git a/vue-vben-admin/apps/web-antd/src/views/fun/index.vue b/vue-vben-admin/apps/web-antd/src/views/fun/index.vue
deleted file mode 100644
index 779a556..0000000
--- a/vue-vben-admin/apps/web-antd/src/views/fun/index.vue
+++ /dev/null
@@ -1,675 +0,0 @@
-
-
-
-
-
-
-
-
查询条件
-
- 正在加载查询条件...
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
点击或拖拽图片到此上传
-
支持 JPG、PNG 格式
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file