1. 业务开发
2. 领导信箱分类列表 ms:leaderchannel
2.1. 适用模版
首页模版、列表模版、内容模版、自定义页面模版
2.2. 格式
{ms:leaderchannel 参数1=值1 参数2=值2}
${field.*}
{/ms:leaderchannel}
2.3. 参数(用法与栏目一致)
参数名称 | 类型 | 必须 | 示例值 | 默认值 | 描述 |
---|---|---|---|---|---|
type | 字符串 | 否 | self | self: 取当前指定typeid 本身; |
|
typeid | 字符串 | 否 | >0 | typeid有值时,取所指信箱分类信箱 | |
size | 整型 | 否 | >0 | 所有专题 | 返回既定条件下的信箱分类个数,不使用则默认返回全部 |
orderby | 字符串 | 否 | date 更新时间 sort 排序 |
id | 信箱分类排序,sort排序需要在自定义顺序设置才能看到效果 |
order | 字符串 | 否 | 升序 | desc:按照倒序排列,asc:按照正序排列 |
[!tip] order参数必须要与orderby一起使用才有效 属性类型为字符串,使用需要使用引号 例如 type="son" order="desc"
2.4. 输出字段
具体输出字段参考栏目列表标签
2.5. 范例
下面列举一些常用的使用场景
2.5.1. 获取指定的信箱分类信息
{ms:leaderchannel typeid="1" type='self'}
<a href="{ms:global.html/}${field.typelink}">
${field.typetitle}
</a>
{/ms:leaderchannel}
[!tip] 如果在领导信息分类绑定的模板中使用,则可以不需要指定typeid)。
2.5.2. 获取扩展模型信息
{ms:leaderchannel typeid="1" type='self' tableName='模型表名'}
<a href="{ms:global.html/}${field.typelink}">
${field.typetitle}
${field.模型字段}
</a>
{/ms:leaderchannel}
[!tip] 其他用法,大体可以参考栏目列表标签
2.6. 模板开发
2.7. 默认提供3个前台模板
- leader-form 信箱留言表单页面 可用于领导信箱分类第二层模板绑定
- leader-list 信箱公示列表页面 可在自定义页面绑定
- leader-detail 信箱留言详情页面 可在自定义页面绑定
[!tip] 领导信箱分类数据可以通过标签获取,但信箱留言数据以及回复数据需要通过接口动态获取
2.7.1. 信箱详情模板(leader-form默认提供的模板)
详情模板开发步骤介绍,如果leaded-box表提供的字段不能满足需求,可通过模型扩展字段。首先在需要扩展的信箱分类绑定信箱自定义模型
再调整模板写法(关键代码)
<!-- 引入自定义js -->
<script src="${base}/static/leader/box/index.js"></script>
<div id="app" v-cloak >
...
<!-- leader-box 表基本字段省略 -->
<!-- 模型部分 -->
<div id="leaderBoxModelId" ref="modelForm">
<!--会自动渲染代码生成器的表单-->
</div>
...
</div>
<script>
// vue实例的名称必须是form
var form = new Vue({
el: '#app',
})
data:{
···
leaderBoxModel:{} // 存储模型对象
···
}
methods:{
···
save:function (){
···
let data = JSON.parse(JSON.stringify(that.form));
// 有模型数据传递模型数据到后台
if (that.leaderBoxModel) {
// 获取模型数据
data.modelData= that.leaderBoxModel.getFormData()
data.modelData = JSON.stringify(data.modelData);
}
···
}
}
···
created(){
var that = this;
this.$nextTick(function () {
//leaderBox.model.form(domid,模型对象) 模型对象格式{modelName:模型名称}
leaderBox.model.form('leaderBoxModelId', { "modelName": "信箱留言扩展"}).then(function(obj) {
that.leaderBoxModel = obj;
});
})
}
</script>