返回值
变量 | 类型 | 集合内容 | 说明
--- | --- | --- | ---
questionRelated_addQuestion_collection | Map<String,Object> | 键参数：availableTag 值内容说明：问题编辑器允许使用标签(配合KindEditor编辑器使用) 值类型：JSON格式List<String> | 添加问题界面显示返回值
键参数：captchaKey 值内容说明：验证码编号 (根据'全站设置 - 基本设置 - 提交问题每分钟提交超过'参数计算是否含有值) 值类型：String
键参数：allowQuestion 值内容说明：是否允许提交问题 值类型：boolean
键参数：maxQuestionTagQuantity 值内容说明：提交问题最多可选择标签数量 值类型：Integer
键参数：maxDeposit 值内容说明：用户共有预存款 值类型：BigDecimal
键参数：maxPoint 值内容说明：用户共有积分 值类型：Long
键参数：questionRewardPointMin 值内容说明：问题悬赏积分下限 值类型：Long
键参数：questionRewardPointMax 值内容说明：问题悬赏积分上限；空为无限制 0则不允许悬赏积分 值类型：Long
键参数：questionRewardAmountMin 值内容说明：问题悬赏金额下限 值类型：BigDecimal
键参数：questionRewardAmountMax 值内容说明：问题悬赏金额上限；空为无限制 0则不允许悬赏金额 值类型：BigDecimal
键参数：fileSystem 值内容说明：文件系统 0.本地 10.SeaweedFS 20.MinIO 30.阿里云OSS 值类型：int
键参数：supportEditor 值内容说明：支持编辑器 10.仅富文本编辑器 20.仅Markdown编辑器 30.富文本编辑器优先 40.Markdown编辑器优先 值类型：int

提交表单 - 默认方式
请求路径 | user/control/question/add.htm
请求方式 | POST
请求参数 | 参数表
提交成功返回 | 默认跳转到jump模板页显示提交成功信息；跳转路径参数jumpUrl有值时按参数值路径跳转
提交失败返回 | 错误值 | 变量：error 类型：Map<String,String>
问题 | 变量：question 类型：Question

提交表单 - AJAX方式
请求路径 | user/control/question/add.htm
请求方式 | POST
自定义请求头 | 协议头：X-Requested-With 值：XMLHttpRequest
请求参数 | 参数表
提交返回 | JSON格式值 类型:Map<String,Object> | 键参数：success 值内容说明：成功返回true 失败返回false 值类型：String
键参数：error 值内容说明：错误值集合 值类型：Map<String,String>
键参数：captchaKey 值内容说明：新验证码编号(当success参数返回false时并且根据'全站设置 - 基本设置 - 问题每分钟提交超过'参数计算是否含有值) 值类型：String

提交表单 - 上传文件
请求路径 | user/control/question/upload.htm
请求方式 | POST
参数 | file : 上传文件接收字段 dir : 文件上传类型 分别为image、file fileName : 文件名称 预签名时必须有值
提交返回 | JSON格式值 类型:Map<String,Object> | 键参数：error 值内容说明：成功返回0 失败返回1 值类型：Integer
键参数：url 值内容说明：上传图片路径 当error等于0时有值 值类型：String
键参数：message 值内容说明：上传返回信息 当error等于1时有值 值类型：String
键参数：title 值内容说明：旧文件名称 当参数dir等于file时有值 值类型：String

校验验证码
请求路径 | checkCaptcha.htm
请求方式 | GET
返回类型 | JSON
必填参数 | captchaKey : 验证码编号 captchaValue : 验证码值 同一编号验证码每分钟提交次数不能超过60次,超出时验证码图片返回空字符
提交返回 | 字符串格式值 类型:String | 值内容说明：成功返回true 失败返回false 值类型：String

错误值 error
变量 | 类型 | 说明
--- | --- | ---
token | String | 令牌错误
captchaValue | String | 验证码错误
question | String | 问题错误
tagId | String | 标签错误
title | String | 标题错误
content | String | 问题内容错误

问题 Question
变量 | 类型 | 说明
--- | --- | ---
title | String | 标题
content | String | 问题内容
questionTagAssociationList | List<QuestionTagAssociation> | 问题标签关联集合

问题标签关联 QuestionTagAssociation
变量 | 类型 | 说明
--- | --- | ---
questionTagId | Long | 问题标签Id
questionTagName | String | 问题标签名称

提交问题参数
参数 | 类型 | 是否必填 | 说明
--- | --- | --- | ---
tagId | Long[] | 是 | 标签Id
title | String | 是 | 标题
content | String | 按需填写 | 问题内容
isMarkdown | Boolean | 按需填写 | 是否使用Markdown
markdownContent | String | 按需填写 | Markdown内容
token | String | 是 | 令牌
captchaKey | String | 按需填写 | 验证码编号
captchaValue | String | 按需填写 | 验证码值 同一编号验证码每分钟提交次数不能超过60次,超出时验证码图片返回空字符
jumpUrl | String | 否 | '提交表单 - 默认方式'提交成功后跳转路径,不填写默认跳转到表单提交页；参数必须经过encodeBase64URL编码后才能提交。例${encodeBase64URL('/index')}

## 示例

<@function> <#-- 返回Map<String,Object>类型 --> <#assign returnValue = questionRelated_addQuestion_collection> <form id="addQuestionForm" action="user/control/question/add?page=${url_page}" method="post"> <#-- 提交后跳转参数 参数必须经过encodeBase64URL编码后才能提交 不填写时默认跳转回当前页 --> <input type="hidden" id="jumpUrl" name="jumpUrl" value=""> <textarea class="textarea" onfocus="" id="questionContent" name="content" >${question.content}</textarea> 内容错误提示：${(error['content'])!} 问题错误提示：${error['question']} <#-- 获取令牌 --> <input type="hidden" id="token" name="token" value="${token!}"> <#if returnValue['captchaKey'] != ""> <#-- 验证码编号 --> <input type="hidden" name="captchaKey" value="${(returnValue['captchaKey'])!}"> <#-- 验证码值 --> <input name="captchaValue" type="text" value=""/> <#-- 验证码图片 --> <img src="captcha/${(returnValue['captchaKey'])!}.jpg" /> <#-- 验证码错误 --> ${(error['captchaValue'])!} </#if> <#-- 提交表单 - 默认方式 --> <INPUT type="submit" value="提交" /> </form> </@function>