adminCarousel - TimYi/FengHuang GitHub Wiki
请求URL
http://101.200.229.135:8080/api/admin/carousel
字段说明
字段分为显示和保存两部分。
保存字段会有一些关联实体的id,显示字段会把一些关联实体的内容扁平化显示。
显示字段
id:id
page:所属页面 {
id:id
type:菜单类型
ordernum:序号
title:标题
url:链接地址
}
ordernum:排序字段
pic:背景图片 {
id
url
}
fragment:模板配置 {
id:id
template:模板信息,详见模板管理的展示字段
values:已配置变量数组 [
{
id
name
type:TEXT,IMG
text:type=TEXT时展示此字段
pic:type=IMG时,展示图片信息{id,url}
}
]
templateContent:模板注入变量后,生成的html
}
传参字段
id:id
pageId:页面id(导航菜单id)
ordernum:排序字段
picFile:图片,input type=file
fragmentInfo:模板配置信息 {
templateId:传参时,传fragmentInfo.templateId,模板id
values:变量数组,传参时,传fragmentInfo.values[i] {
id:fragmentInfo.values[i].id,如果是更新已有变量,需要传id,比如图片类型变量,
可能不需要传新的图片,更新时附带id即可。
name:fragmentInfo.values[i].name,对应模板中的变量名
type:fragmentInfo.values[i].type,变量类型
text:fragmentInfo.values[i].text,文本变量值
picFile:图片变量值
}
}
参数限制:fragmentInfo中的values,name必须和templateId对应模板的definitions中的name对应
type也必须和definitions中的type对应,后台会检查。
后台管理如何动态展示
获取模板之后,列出模板definitions中的所有字段。展现模式伪代码:
<label>definition.name</label>
if(definition.type=TEXT) {
<input type="text" name=definition.name>
} else {
<input type="file" name=definition.name>
}
<!-- 后附加描述信息 -->
<p>definition.description</p>
同时,获取fragment中的values,通过name的匹配,为能够匹配上名称的input赋予初始值
<input value="value.TEXT"/>
或者在旁边展示图片(判断type类型)
并且在input中加上<input value=value.id name=id>
返回示例
{
"result": {
"totalCount": 1,
"totalPages": 1,
"page": 1,
"size": 8,
"result": [
{
"id": "8aac48364e86c3f8014e86ca70170000",
"page": null,
"ordernum": 0,
"pic": null,
"title": "test",
"content": "test",
"buttonText": null,
"buttonUrl": null,
"rightArea": null
}
]
},
"status": "OK"
}
按照导航菜单id获取导航
url:http://101.200.229.135:8080/api/admin/carousel/bypage/{pageId}
method:GET
参数:路径参数,pageId
返回:改pageId下所有轮播
排序接口
url:http://101.200.229.135:8080/api/admin/carousel/order
method:POST
参数:id-ordernum键值对组成的map
请求参考:一下为通过测试的请求参数,请求方式为application/json
{
"404040e64e866c94014e866ca4110000": 1,
"404040e64e866c94014e866ca4980001": 0
}
输入举例
举个例子,比如一个模板的definitions是这样的:
name=text,type=TEXT,description=文本
name=img,type=IMG,description=图片
那你在添加的时候,是这样的:
<input type="hidden" name="fragmentInfo.values[0].name" value="text">
<input type="hidden" name="fragmentInfo.values[0].type" value="TEXT">
<input type="text" name="fragmentInfo.values[0].text">
<input type="hidden" name="fragmentInfo.values[1].name" value="img">
<input type="hidden" name="fragmentInfo.values[1].type" value="IMG">
<input type="file" name="fragmentInfo.values[1].picFile">
对于同一个模板,如果在修改的时候,对应的fragment,它的values是这样的:
id=1,name=text,type=TEXT,text="已录入文本",pic=null
id=2,name=img,type=IMG,text="null",pic={id,url}
那么你在更新的时候,input应该是这样的:
<input type="hidden" name="fragmentInfo.values[0].id" value="1">
<input type="hidden" name="fragmentInfo.values[0].name" value="text">
<input type="hidden" name="fragmentInfo.values[0].type" value="TEXT">
<input type="text" name="fragmentInfo.values[0].text" value="已录入文本">
<input type="hidden" name="fragmentInfo.values[1].id" value="2">
<input type="hidden" name="fragmentInfo.values[1].name" value="img">
<input type="hidden" name="fragmentInfo.values[1].type" value="IMG">
<input type="file" name="fragmentInfo.values[1].picFile">