当前位置: 首页 > wzjs >正文

漳州开发区人才网seo网站排名优化软件是什么

漳州开发区人才网,seo网站排名优化软件是什么,ai智能建站,中小微企业建设网站项目背景 作为一个后端小伙伴,最大的痛点就是写完的接口需要拥有一些可视化的页面去承载这些功能使用【如果是只给后端那么swagger也足够了,非后端有点呛】如果有专业前端去弄确实也快,但是小公司呀~~~ 学呗~妈呀,现在的前端也挺…

项目背景

作为一个后端小伙伴,最大的痛点就是写完的接口需要拥有一些可视化的页面去承载这些功能使用【如果是只给后端那么swagger也足够了,非后端有点呛】如果有专业前端去弄确实也快,但是小公司呀~~~

学呗~妈呀,现在的前端也挺卷,vue3啊element-ui呀typescript啊vite啊【我其实只想要一个简单的页面维护数据】

了解到AVue之后,觉得挺不错,降低不少门槛。内置的组件还挺多,嗯,不错。如果能把这种能力赋能给后端就更好了。

项目地址:

  • https://github.com/liukaixiong/spring-avue-plus
  • https://gitee.com/liukaixiong/spring-avue-plus

💡 为什么需要它?

  • 后端写完接口后,不想写前端又需要数据维护页面?
  • 小团队没有专业前端,自己学Vue/TS太头疼
  • 想用最简单的方式实现增删改查界面?试试注解驱动的AVue集成方案!

✨ 核心优势

零前端基础:不用搭前端环境,SpringBoot项目直接集成
注解即页面:Java注解定义表单,自动生成可视化CRUD
5分钟速成:从实体类到完整页面,一杯咖啡的时间搞定
丰富组件库:输入框/下拉选择/文件上传/JSON编辑器…全都有
无缝兼容:支持SpringBoot 2.x/3.x,JDK8+

如果你有后端一些基础功能需要简单的页面维护、又不想单独搞一套前端环境、可以尝试体验一下。

如何使用?

1、clone 项目

2、编译项目

mvn install 

3、客户端引入依赖

<dependency><groupId>com.liukx.spring</groupId><artifactId>spring-avue-starter</artifactId><version>2.0.0-SNAPSHOT</version>
</dependency>

4、启用注解

@EnableAVue(basePackages = {"你的模版路径"}, enumsPackages = {"你的枚举路径"})
  • 模版类路径指定【必填】
  • 枚举类路径指定【非必填】 : enumsPackagesenumsPackagesClasses
  • 静态资源指定【非必填】: jsonResourceDir

开启avue的接口扫描能力

5、定制模版

案例整体参考测试用例… com.liukx.spring.client.model

6、访问路径

端口号请更换成你的项目端口号

路径地址路径描述
http://localhost:9403/avue/server-crud?group=你的模版groupKey查看crud的列表页面
http://localhost:9403/avue/avue-component?group=avueUrlList所有avue的路由模版卡片列表
http://localhost:9403/avue/list所有avue的路由模版卡片列表[上面的简化版]

以上步骤即可渲染出增删改查页面,内置丰富的组件能力。详细参考AVue的crud

模版测试介绍

单个实体进行测试

com.ruoyi.client.handler.AVueAnnotationHandlerTest : 可针对单个实体进行测试得到JSON字符串.

整体测试

com.ruoyi.client.RuoYiClientTestApplication : 针对整个client配置进行测试

1、简单的模版

com.liukx.spring.client.model.AVueSimpleModel

@AVueRouteKey(groupKey = "test-config")
@AVueCrudOption(title = "这是一个测试")
// 增删改查的接口定义
@AVueConfig(list = AVueConfigControllerTest.LIST_URL, update = AVueConfigControllerTest.UPDATE_URL, save =
// 返回结果定义AVueConfigControllerTest.UPDATE_URL, successKeyword = "true", successField = "success", messageField = "message")
public class AVueSimpleModel {@AVueInput(prop = "id", label = "主键", addDisplay = false, row = true, editDisabled = true, search = true)private String id;@AVueInput(prop = "configGroup", label = "组名称", search = true, row = true, rules = {@AVueRule(required = true, message = "组名称要填咧"), @AVueRule(min = 5, max = 10, message = "我跟你讲最小5个,最大10个.")})private String configGroup;@AVueInput(prop = "configName", label = "配置名称", search = true, required = true, row = true)private String configName;@AVueSelect(prop = "configCode", label = "配置值", dicData = "StatusEnums", search = true, required = true, row = true)private String configCode;@AVueNumber(prop = "validDay", label = "有效天数", search = true, required = true, row = true)private Integer validDay;@AVueSwitch(prop = "status", label = "状态", dicData = "StatusEnums", row = true)private int status;}
对应的展示效果

在这里插入图片描述

在这里插入图片描述

2、复杂的模版

test目录下 : com.ruoyi.client.model.AVueCrudModel

// 每个模版的标识,根据该标识路径能访问到该地址
@AVueRouteKey(groupKey = "test-route", title = "复杂模版路由", description = "这个是用来处理一些比较复杂的模版,里面涵盖了crud,按钮,以及后端的接口路径的定义,包括分页的参数设置等等一系列的demo操作", img = "https://gw.alipayobjects.com/zos/rmsportal/WdGqmHpayyMjiEhcKoVE.png")
// 表格的标题,整个CRUD的配置,和table渲染相关的
@AVueCrudOption(title = "这是一个复杂的模版", dialogClickModal = true, dialogDrag = true, border = true, viewBtn = true)
// 构建自己的页面自定义数据结构
//@AVuePage(pageData = "data", pageNumber = "pageNo", pageSize = "pSize", pageTotal = "pageTotal")
// 适配后台服务的对应的处理接口
@AVueConfig(list = AVueControllerTest.LIST_URL, update = AVueControllerTest.UPDATE_URL, save = AVueControllerTest.UPDATE_URL, successKeyword = "true", successField = "success", messageField = "message")
// 设置后台接口调用之后成功或者失败的结构模型
@AVueEventButtons(// 每一行的按钮及事件定义tableRowButtons = {// 指定方法名称按钮事件名称@AVueClickButton(methodName = AVueJsFunctionEnum.confirmClickRemoteApi, btnName = "确认按钮", attrExt = {@AVueAttr(name = "title", value = "小伙子,你确定吗?有惊喜喔!"),@AVueAttr(name = "url", value = AVueControllerTest.BODY_URL)}),// 指定事件@AVueClickButton(type = "success", btnName = "弹层按钮测试", methodName = AVueJsFunctionEnum.openWindowJsonRemote, attrExt = {// 当前弹层的提交路径@AVueAttr(name = "submitUrl", value = AVueControllerTest.BODY_URL),// 找下一个模版@AVueAttr(name = "group", value = "test-config"),// 由于不是同一套模版,允许将数据结构进行转换填充。这里指定关系@AVueAttr(name = "fieldConvertMap", value = "dataJson=configJson&&age=validDay")}),// 指定事件@AVueClickButton(type = "success", btnName = "复制拓展字段", methodName = AVueJsFunctionEnum.copyField, attrExt = {// 当前弹层的提交路径@AVueAttr(name = "name", value = "dataJson"),}),// 指定事件@AVueClickButton(type = "success", btnName = "复制行", methodName = AVueJsFunctionEnum.copyField)},// 左上角按钮事件tableTopLeftButtons = {@AVueClickButton(methodName = AVueJsFunctionEnum.hrefClick, btnName = "跳转链接", type = "success", icon = "el-icon-setting", attrExt = {@AVueAttr(name = "url", value = "https://www.baidu.com")})}
)
public class AVueCrudModel {/*** 注解介绍** @AVueInput: 组件类型以@AVue开始,后面是具体的组件。* - input  : 代表文本框* - select : 代表选择框* - number : 代表数字框* - json   : 代表json组件* <p>* 属性介绍:* addDisplay       : 表示新增的时候是否展示* editDisabled     : 表示修改的时候是否不可编辑* search           : 代表列表页是否为搜索条件* searchRequired   : 代表搜索条件是否为必填* dicData          : 代表枚举字典* dicUrl           : 代表后台拉取对象* 具体属性释义可参考 :  <a href="https://avuejs.com/views/doc.html">...</a>* 注解文档参考 : <a href="https://gitee.com/liukaixiong/RuoYi-AVue-Plus/blob/master/doc/annotation.md">...</a>*/@AVueInput(prop = "id", label = "主键", addDisplay = false, editDisabled = true, search = true)private String id;@AVueInput(prop = "username", label = "用户名称", search = true, searchRequired = true, onClick = "testB")private String username;// 普通枚举@AVueSelect(prop = "checkStatus", label = "认证状态", dicData = "CheckStatusEnums", search = true)private String checkStatus = CheckStatusEnums.FOOTBALL.getCode().toString();@AVueSelect(prop = "likeStar", label = "喜欢明星", dicData = "test-likeStar-map")private Integer likeStar;@AVueSelect(label = "远端字典", dicUrl = "http://localhost:8765" + AVueControllerTest.DIC_URL, props = "{'label':'label','value':'value','res':'data'}", dicMethod = "post", dicQuery = "{'key':'key'}", search = true)private String remoteDic;/*** 联动 省市区*/@AVueSelect(label = "省份", cascader = {"city"}, dicUrl = "https://cli.avuejs.com/api/area/getProvince", props = "{'label':'name','value':'code'}", dicMethod = "get", dicQuery = "{'key':'key'}", search = true)private String province;@AVueSelect(label = "城市", cascader = {"area"}, dicUrl = "https://cli.avuejs.com/api/area/getCity/{{key}}?province={{province}}", props = "{'label':'name','value':'code'}", dicMethod = "get", dicQuery = "{'key':'key'}", search = true)private String city;@AVueSelect(label = "地区", dicUrl = "https://cli.avuejs.com/api/area/getArea/{{key}}?city={{city}}", props = "{'label':'name','value':'code'}", dicMethod = "get", dicQuery = "{'key':'key'}", search = true)private String area;@AVueNumber(prop = "age", label = "年龄", labelTip = "这是选择年龄的地方")private Integer age = 18;@AVueRadio(prop = "sex", label = "性别", border = true, dicData = "SexEnums")private int sex = (int) SexEnums.UNKNOWN.getCode();@AVueDatetime(prop = "validDate", label = "有效时间")private Date validDate;@AVueTime(prop = "time", label = "时分秒选择")private Date time;@AVueTimeRange(prop = "timeRange", label = "时分秒范围", rangeSeparator = "-")private List<String> timeRange;@AVueDateRange(prop = "dateRange", rangeSeparator = "-", label = "日期范围", searchRange = true, search = true)private List<Date> dateRange;@AVueCheckbox(prop = "interest", label = "兴趣爱好", dicData = "InterestEnums")private List<String> interest;@AVueSwitch(prop = "status", label = "状态", dicData = "StatusEnums")private int status;/*** 单图上传*/@AVueUpload(prop = "image", label = "单图上传", listType = "picture-img", action = "/upload", propsHttp = @AVueUploadPropsHttp(res = "single", name = "fileName"))private String image;/*** 多图上传*/@AVueUpload(prop = "imageList", dataType = "array", listType = "picture-card", label = "单图上传", action = "/upload", propsHttp = @AVueUploadPropsHttp(res = "single", name = "fileName"))private List<String> imageList;/*** json组件*/@AVueJson(prop = "dataJson", label = "拓展字段")private String dataJson;/*** 支持模版嵌套*/@AVueDynamic(prop = "simpleModel", label = "子表单测试")private AVueNodeModel simpleModel;/*** 支持分组类型*/@AVueGroup(prop = "groupModel", label = "分组测试1")private AVueNodeModel groupModel;@AVueGroup(prop = "groupModel2", label = "分组测试2")private AVueNodeModel groupModel2;
}
展示效果

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

更多测试案例:com.liukx.spring.client.model

3. 配置项

spring-avue-starter/src/test/resources/application.yml

spring:avue:debug: true  # 开发环境开启调试模式,IDEA-> Build -> Rebuild 模版类即可立即生效enable-login: true  # 是否开启登录模式username: admin     # 登录帐号password: 1234      # 登录的密码

📚 详情了解

项目地址:

  • https://github.com/liukaixiong/spring-avue-plus
  • https://gitee.com/liukaixiong/spring-avue-plus
http://www.dtcms.com/wzjs/165884.html

相关文章:

  • 哪个网站兼职做图好希爱力双效片副作用
  • 成都房地产管理局关键词长尾词优化
  • 北京做网站开发公司哪家好关键词的作用
  • 湛江网站建设湛江sem托管公司
  • 石家庄商城网站建设十大中文网站排名
  • 设计制作费税率在线排名优化
  • 建筑工程挂网甩浆余姚seo智能优化
  • 广州中企动力网站制作人民日报评网络暴力
  • 网站加速器quickq怎样优化网站排名靠前
  • wordpress视频播放器插件下载佛山网站优化
  • 河南省住房与城乡建设部网站阿里指数查询入口
  • 网站备案拍照网站查询站长工具
  • 大连网站设计费用怎么自己做一个网页
  • 西安学校网站建设价格网上的推广公司
  • 做俄罗斯外贸网站推广网络营销策划活动方案
  • 重庆网站建设公司那家好镇江网站建设推广
  • 哈尔滨建站费用青岛网站seo诊断
  • 自己做软件 做网站需要学会哪些网站优化是什么意思
  • 东莞商城网站建设哪里比较好营销方式有哪几种
  • 做视频网站需要流量进行优化
  • 福建城市建设厅网站seo引擎搜索网站关键词
  • 合肥商城网站建设多少钱seo网站优化知识
  • 做电商网站要备案吗搜索引擎是什么
  • 山东建设监理协会网站黑帽seo培训多少钱
  • 网站做细分领域宁波网站推广联系方式
  • 医院网站建设平台系统清理优化工具
  • 自己做链接的网站优化师的工作内容
  • 织梦cms 学校网站模板郑州网络推广报价
  • 淘宝做网站建设靠谱吗风云榜
  • 怎么看网站是否被k过厂房网络推广平台