Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
MCMS
Commits
7fb6775d
Commit
7fb6775d
authored
Jan 26, 2019
by
a123456
Browse files
Signed-off-by: a123456 <1209165801@qq.com>
parent
59b486e0
Changes
7
Hide whitespace changes
Inline
Side-by-side
src/main/webapp/WEB-INF/manager/mweixin/keyword/form.ftl
View file @
7fb6775d
<!--
关键词回复 -->
<!--
关键词回复 -->
<!
DOCTYPE
html>
<
link
rel="stylesheet" href="../../../../static/mweixin/css/keyword-reply.css">
<
html
lang="">
<
head
>
<
div
id="keyword-reply" class="keyword-reply ms-container" v-if="menuVue.menuActive == '关键词表单'">
<title></title>
<el-form :model="keywordReplyForm" status-icon :rules="keywordReplyFormRules" ref="keywordReplyForm" label-width="100px">
<!-- <#include "/include/head-file.ftl"/> -->
<el-form-item label="关键词" prop="keyword" class="ms-keyword-input">
<!--#include virtual="../../include/head-file.ftl" -->
<el-row type='flex' justify='space-between' align='center'>
<link rel="stylesheet" href="../../../../static/mweixin/css/keyword-reply.css">
<el-col :span='12'>
<!-- <link rel="stylesheet" href="$
{
base
}
/static/mweixin/css/keyword-reply.css"> -->
<el-input placeholder="请输入内容" v-model="keywordReplyForm.keyword" class="input-with-select" size='mini' maxlength='30' @input='resetWord'>
</
head
>
<el-select v-model="keywordReplyForm.select" slot="prepend" placeholder="请选择">
<el-option label="模糊匹配" value="1"></el-option>
<el-option label="全匹配" value="2"></el-option>
</el-select>
<span slot='suffix' v-text="wordNumber+'/30'"></span>
</el-input>
</el-col>
<el-col>
<i class="el-icon-plus" @click='addKeyWord'></i>
</el-col>
</el-row>
</el-form-item>
<el-form-item class="ms-keyword-reply-content" label="回复内容">
<el-tabs v-model="activeName" @tab-click="" class="keyword-reply-tabs">
<el-tab-pane label="文字" name="text">
<el-input type="textarea" v-model="keywordReplyForm.reply" :autosize="
{
minRows
:
4
,
maxRows
:
4
}
" resize='none'>
</el-input>
<i class="el-icon-delete" @click="keywordReplyForm.reply = ''"></i>
<div class="footer">
<i class="el-icon-star-off"></i>
<a>插入超链接</a>
</div>
</el-tab-pane>
<el-tab-pane label="图片" name="picture">
</el-tab-pane>
<el-tab-pane label="图文" name="article">
</el-tab-pane>
</el-tabs>
</el-form-item>
</el-form>
</
div
>
<
body
>
<div id="keyword-reply" class="keyword-reply ms-container">
<el-form :model="keywordReplyForm" status-icon :rules="keywordReplyFormRules" ref="keywordReplyForm"
label-width="100px">
<el-form-item label="关键词" prop="keyword" class="ms-keyword-input">
<el-row type='flex' justify='space-between' align='center'>
<el-col :span='12'>
<el-input placeholder="请输入内容" v-model="keywordReplyForm.keyword" class="input-with-select" size='mini'
maxlength='30' @input='resetWord'>
<el-select v-model="keywordReplyForm.select" slot="prepend" placeholder="请选择">
<el-option label="模糊匹配" value="1"></el-option>
<el-option label="全匹配" value="2"></el-option>
</el-select>
<span slot='suffix' v-text="wordNumber+'/30'"></span>
</el-input>
</el-col>
<el-col><i class="el-icon-plus" @click='addKeyWord'></i></el-col>
</el-row>
</el-form-item>
<el-form-item class="ms-keyword-reply-content" label="回复内容">
<el-tabs v-model="activeName" @tab-click="" class="keyword-reply-tabs">
<el-tab-pane label="文字" name="text">
<el-input type="textarea" v-model="keywordReplyForm.reply" :autosize="
{
minRows
:
4
,
maxRows
:
4
}
"
resize='none'>
</el-input>
<i class="el-icon-delete" @click="keywordReplyForm.reply = ''"></i>
<div class="footer">
<i class="el-icon-star-off"></i>
<a>插入超链接</a>
</div>
</el-tab-pane>
<el-tab-pane label="图片" name="picture">
</el-tab-pane>
<el-tab-pane label="图文" name="article">
</el-tab-pane>
</el-tabs>
</el-form-item>
</el-form>
</div>
</
body
>
</
html
>
<
script
>
<
script
>
var keywordReplyVue = new Vue(
{
var keywordReplyVue = new Vue(
{
el
:
'#
keyword-reply
'
,
el
:
'#
keyword-reply
'
,
data
:
{
data
:
{
keywordReplyForm
:
{
keywordReplyForm
:
{
keyword
:
""
,
//关键词
keyword
:
""
,
//关键词
select
:
''
,
select
:
''
,
reply
:
""
,
reply
:
""
,
},
},
keywordReplyFormRules
:
{
keywordReplyFormRules
:
{
},
},
activeName
:
'
text
'
,
activeName
:
'
text
'
,
wordNumber
:
30
,
//剩余字数
wordNumber
:
30
,
//剩余字数
},
},
methods
:
{
methods
:
{
//
添加关键词
//
添加关键词
addKeyWord
:
function
(){
addKeyWord
:
function
()
{
},
},
//
计算剩余字数
//
计算剩余字数
resetWord
:
function
(
value
)
{
resetWord
:
function
(
value
)
{
if
(
!
value
)
return
30
;
if
(
!
value
)
return
30
;
if
(
value
.length
>=
30
)
{
if
(
value
.length
>=
30
)
{
this
.
$message
.error
(
'任务名称不得超过
30
个字'
)
;
this
.
$message
.error
(
'任务名称不得超过
30
个字'
)
;
//
这里涉及到获取数据更新之后的
DOM
,需要用
$nextTick
//
这里涉及到获取数据更新之后的
DOM
,需要用
$nextTick
this
.
$nextTick
(
function
()
{
this
.
$nextTick
(
function
()
{
this
.keywordReplyForm.keyword
=
event
.target.value
=
value
.slice
(
0
,
30
)
;
this
.keywordReplyForm.keyword
=
event
.target.value
=
value
.slice
(
0
,
30
)
;
})
})
this
.wordNumber
=
0
this
.wordNumber
=
0
}
else
{
}
else
{
this
.wordNumber
=
30
-
value
.length
this
.wordNumber
=
30
-
value
.length
}
}
}
}
}
}
)
}
}
)
</
script
>
</
script
>
\ No newline at end of file
src/main/webapp/WEB-INF/manager/mweixin/keyword/index.ftl
View file @
7fb6775d
<!--
关键字列表 -->
<!--
关键字列表 -->
<!
DOCTYPE
html>
<
link
rel="stylesheet" href="../../../../static/mweixin/css/keyword-list.css">
<
html
lang="">
<
head
>
<title></title>
<!-- <#include "/include/head-file.ftl"/> -->
<!--#include virtual="../../include/head-file.ftl" -->
<link rel="stylesheet" href="../../../../static/mweixin/css/keyword-list.css">
<!-- <link rel="stylesheet" href="$
{
base
}
/static/mweixin/css/keyword-list.css"> -->
</
head
>
<
body
>
<
div
id="keyword-list" class="keyword-list ms-container" v-if="menuVue.menuActive == '关键词回复'">
<div id="keyword-list" class="keyword-list ms-container">
<el-table :data="tableData" border style="width: 100%">
<el-table :data="tableData" border style="width: 100%">
<el-table-column prop="date" label="规则名" width="180" align='center'>
<el-table-column prop="date" label="规则名" width="180" align='center'>
</el-table-column>
</el-table-column>
<el-table-column prop="name" label="关键词" width="180" align='center'>
<el-table-column prop="name" label="关键词" width="180" align='center'>
</el-table-column>
</el-table-column>
<el-table-column prop="address" label="消息回复类型" align='center'>
<el-table-column prop="address" label="消息回复类型" align='center'>
</el-table-column>
</el-table-column>
<el-table-column prop="address" label="发送对象" align='center'>
<el-table-column prop="address" label="发送对象" align='center'>
</el-table-column>
</el-table-column>
<el-table-column prop="address" label="回复方式" align='center'>
<el-table-column prop="address" label="回复方式" align='center'>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
</
div
>
</div>
</
body
>
</
html
>
<
script
>
<
script
>
var keywordListVue = new Vue(
{
var keywordListVue = new Vue(
{
el
:
'#
keyword-list
'
,
el
:
'#
keyword-list
'
,
data
:
{
data
:
{
tableData
:
[
{
tableData
:
[
{
date
:
'
2016-05-02
'
,
date
:
'
2016-05-02
'
,
name
:
'王小虎'
,
name
:
'王小虎'
,
address
:
'上海市普陀区金沙江路
1518
弄'
address
:
'上海市普陀区金沙江路
1518
弄'
},
{
},
{
date
:
'
2016-05-04
'
,
date
:
'
2016-05-04
'
,
name
:
'王小虎'
,
name
:
'王小虎'
,
address
:
'上海市普陀区金沙江路
1517
弄'
address
:
'上海市普陀区金沙江路
1517
弄'
},
{
},
{
date
:
'
2016-05-01
'
,
date
:
'
2016-05-01
'
,
name
:
'王小虎'
,
name
:
'王小虎'
,
address
:
'上海市普陀区金沙江路
1519
弄'
address
:
'上海市普陀区金沙江路
1519
弄'
},
{
},
{
date
:
'
2016-05-03
'
,
date
:
'
2016-05-03
'
,
name
:
'王小虎'
,
name
:
'王小虎'
,
address
:
'上海市普陀区金沙江路
1516
弄'
address
:
'上海市普陀区金沙江路
1516
弄'
}
]
}
]
},
},
methods
:{
methods
:
{
//
获取关键词列表
//
获取关键词列表
list
:
function
(){
list
:
function
()
{
}
}
}
}
}
)
}
)
</
script
>
</
script
>
\ No newline at end of file
src/main/webapp/WEB-INF/manager/mweixin/menu.ftl
View file @
7fb6775d
...
@@ -10,15 +10,20 @@
...
@@ -10,15 +10,20 @@
</div>
</div>
</el-header>
</el-header>
<el-main>
<el-main>
<el-menu class="ms-weixin-menu" default-active="0">
<el-menu class="ms-weixin-menu" default-active="0-0">
<el-submenu :index="i+''" v-for="(menu,i) in menuList" @click="menuActive = menu">
<template v-for="(menu,i) in menuList">
<template slot="title">
<!--单个选项-->
<span v-text="menu.title"></span>
<el-menu-item :index="i" @click="menuActive = menu.title" v-if="!menu.sub" v-text="menu.title"></el-menu-item>
</template>
<!--多个选项-->
<el-menu-item-group>
<el-submenu :index="i+''" v-if="menu.sub">
<el-menu-item class="ms-weixin-menu-item" :index="i+'-'+index" v-for="(sub,index) in menu.sub" v-text="sub.title"></el-menu-item>
<template slot="title">
</el-menu-item-group>
<span v-text="menu.title"></span>
</el-submenu>
</template>
<el-menu-item-group>
<el-menu-item class="ms-weixin-menu-item" @click="menuActive = sub.title" :index="i+'-'+index" v-for="(sub,index) in menu.sub" v-text="sub.title"></el-menu-item>
</el-menu-item-group>
</el-submenu>
</template>
</el-menu>
</el-menu>
</el-main>
</el-main>
</el-container>
</el-container>
...
@@ -37,11 +42,6 @@
...
@@ -37,11 +42,6 @@
}
]
,
}
]
,
},
{
},
{
title
:
'自定义菜单'
,
title
:
'自定义菜单'
,
sub
:
[
{
title
:
'文章管理'
},
{
title
:
'栏目管理'
}
]
},
{
},
{
title
:
'自动回复'
,
title
:
'自动回复'
,
sub
:
[
{
sub
:
[
{
...
@@ -49,9 +49,10 @@
...
@@ -49,9 +49,10 @@
},
{
},
{
title
:
'消息回复'
title
:
'消息回复'
},
{
},
{
title
:
'关键
字
回复'
title
:
'关键
词
回复'
}
]
}
]
},
]
,
//左侧导航列表
},
]
,
//左侧导航列表
menuActive
:
'图文'
,
//选中
}
}
}
)
}
)
</
script
>
</
script
>
\ No newline at end of file
src/main/webapp/WEB-INF/manager/mweixin/menu/index.ftl
View file @
7fb6775d
<!--
自定义菜单 -->
<!--
自定义菜单 -->
<!
DOCTYPE
html>
<
link
rel="stylesheet" href="../../../../static/mweixin/css/custom-menu.css">
<
html
lang="">
<
div
id="custom-menu" class="ms-custom-menu" v-if="menuVue.menuActive == '自定义菜单'">
<
head
>
<el-container class="ms-custom-container">
<title></title>
<el-aside>
<!-- <#include "/include/head-file.ftl"/> -->
<el-container>
<!--#include virtual="../../include/head-file.ftl" -->
<el-header>公众号</el-header>
<!-- <link rel="stylesheet" href="$
{
base
}
/static/mweixin/css/custom-menu.css"> -->
<el-main></el-main>
<link rel="stylesheet" href="../../../../static/mweixin/css/custom-menu.css">
<el-footer>
</
head
>
<el-button icon="el-icon-date"></el-button>
<
body
>
<div class="ms-create-menu">
<div id="custom-menu" class="ms-custom-menu">
<div class="ms-create-sub-menu">
<el-container class="ms-custom-container">
<el-button type="primary" @click='addSubMenuShow = !addSubMenuShow'>新建菜单</el-button>
<el-aside>
<el-button icon="el-icon-plus" v-show='addSubMenuShow'></el-button>
<el-container>
</div>
<el-header>公众号</el-header>
<el-button icon="el-icon-plus"></el-button>
<el-main></el-main>
</div>
<el-footer>
</el-footer>
<el-button icon="el-icon-date"></el-button>
</el-container>
<div class="ms-create-menu">
</el-aside>
<div class="ms-create-sub-menu">
<el-main>
<el-button type="primary" @click='addSubMenuShow = !addSubMenuShow'>新建菜单</el-button>
<el-card class="custom-menu-card" shadow="never">
<el-button icon="el-icon-plus" v-show='addSubMenuShow'></el-button>
<div slot="header" class="clearfix">
</div>
<span>新建菜单</span>
<el-button icon="el-icon-plus"></el-button>
</div>
<el-form ref="customMenuForm" :rule='customMenuFormRules' :model="customMenuForm" label-width="80px">
<el-form-item label="菜单名称" prop='name' class="ms-custom-menu-name">
<el-input v-model="customMenuForm.name" size='mini'></el-input>
<span>菜单名称字数不多于5个汉字或10个字母</span>
</el-form-item>
<el-form-item label="菜单内容" class="ms-custom-menu-content">
<el-tabs v-model="activeName" @tab-click="">
<el-tab-pane label="图片" name="picture">
<span slot="label">
<i class="el-icon-picture"></i>图片</span>
<div @click="open('store')">
<i class="el-icon-picture-outline"></i>
<span>从素材库选择</span>
</div>
</div>
</el-footer>
<div @click="open('new')">
</el-aside>
<i class="el-icon-plus"></i>
<el-main>
<span>新建图片</span>
<el-card class="custom-menu-card" shadow="never">
</div>
<div slot="header" class="clearfix">
</el-tab-pane>
<span>新建菜单</span>
<el-tab-pane label="图文管理" name="article">
</div>
<span slot="label">
<el-form ref="customMenuForm" :rule='customMenuFormRules' :model="customMenuForm" label-width="80px">
<i class="el-icon-picture"></i>图文管理</span>
<el-form-item label="菜单名称" prop='name' class="ms-custom-menu-name">
</el-tab-pane>
<el-input v-model="customMenuForm.name" size='mini'></el-input>
</el-tabs>
<span>菜单名称字数不多于5个汉字或10个字母</span>
</el-form-item>
</el-form-item>
</el-form>
<el-form-item label="菜单内容" class="ms-custom-menu-content">
</el-card>
<el-tabs v-model="activeName" @tab-click="">
</el-main>
<el-tab-pane label="图片" name="picture">
</el-container>
<span slot="label"><i class="el-icon-picture"></i>图片</span>
</
div
>
<div @click="open('store')"><i class="el-icon-picture-outline"></i><span>从素材库选择</span></div>
<div @click="open('new')"><i class="el-icon-plus"></i><span>新建图片</span></div>
</el-tab-pane>
<el-tab-pane label="图文管理" name="article">
<span slot="label"><i class="el-icon-picture"></i>图文管理</span>
</el-tab-pane>
</el-tabs>
</el-form-item>
</el-form>
</el-card>
</el-main>
</el-container>
</div>
</
body
>
</
html
>
<
script
>
<
script
>
var customMenuVue = new Vue(
{
var customMenuVue = new Vue(
{
el
:
"#custom-menu"
,
el
:
"#custom-menu"
,
data
:
{
data
:
{
customMenuForm
:
{
customMenuForm
:
{
name
:
''
,
name
:
''
,
},
},
customMenuFormRules
:
{
customMenuFormRules
:
{
name
:
[
{
name
:
[
{
required
:
true
,
required
:
true
,
message
:
'请输入菜单名称'
,
message
:
'请输入菜单名称'
,
trigger
:
['
blur
'
,
'
change
']
trigger
:
['
blur
'
,
'
change
']
},
},
{
{
min
:
1
,
min
:
1
,
max
:
5
,
max
:
5
,
message
:
'长度在
1
到
5
个字符'
,
message
:
'长度在
1
到
5
个字符'
,
trigger
:
['
blur
'
,
'
change
']
trigger
:
['
blur
'
,
'
change
']
}
}
]
,
]
,
},
},
addSubMenuShow
:
false
,
//子菜单添加弹窗
addSubMenuShow
:
false
,
//子菜单添加弹窗
activeName
:
'
picture
'
activeName
:
'
picture
'
},
},
methods
:
{
methods
:
{
open
:
function
(
type
){
open
:
function
(
type
)
{
if
(
type
==
'
store
'
){
if
(
type
==
'
store
'
)
{
//
素材库
//
素材库
}
else
{
}
else
{
//
新建图片
//
新建图片
}
}
}
}
}
}
}
)
}
)
</
script
>
</
script
>
\ No newline at end of file
src/main/webapp/WEB-INF/manager/mweixin/message/index.ftl
View file @
7fb6775d
<!--
消息回复 && 关注回复 -->
<!--
消息回复 && 关注回复 -->
<!
DOCTYPE
html>
<
link
rel="stylesheet" href="../../../../static/mweixin/css/message-reply.css">
<
html
lang="">
<
div
id="message-reply" class="ms-message-reply ms-container" v-if="menuVue.menuActive == '消息回复'||menuVue.menuActive == '关注时回复'">
<div>回复内容</div>
<
head
>
<el-tabs v-model="activeName" @tab-click="" class="message-reply-tabs">
<title></title>
<el-tab-pane label="文字" name="text">
<!-- <#include "/include/head-file.ftl"/> -->
<el-form ref="messageReplyForm" :rules='messageReplyFormRules' :model="messageReplyForm">
<!-- <link rel="stylesheet" href="$
{
base
}
/static/mweixin/css/message-reply.css"> -->
<el-form-item class="ms-message-reply-content">
<el-input type="textarea" v-model="messageReplyForm.reply" :autosize="
{
minRows
:
4
,
maxRows
:
4
}
" resize='none'>
<!--#include virtual="../../include/head-file.ftl" -->
</el-input>
<link rel="stylesheet" href="../../../../static/mweixin/css/message-reply.css">
<i class="el-icon-delete" @click="messageReplyForm.reply = ''"></i>
<div class="footer">
</
head
>
<i class="el-icon-star-off"></i>
<a>插入超链接</a>
<
body
>
</div>
<div id="message-reply" class="ms-message-reply ms-container">
</el-form-item>
<div>回复内容</div>
</el-form>
<el-tabs v-model="activeName" @tab-click="" class="message-reply-tabs">
</el-form>
<el-tab-pane label="文字" name="text">
</el-tab-pane>
<el-form ref="messageReplyForm" :rules='messageReplyFormRules' :model="messageReplyForm">
<el-tab-pane label="图片" name="picture">
<el-form-item class="ms-message-reply-content">
</el-tab-pane>
<el-input
<el-tab-pane label="图文" name="article">
type="textarea"
</el-tab-pane>
v-model="messageReplyForm.reply"
</el-tabs>
:autosize="
{
minRows
:
4
,
maxRows
:
4
}
"
</
div
>
resize='none'
>
</el-input>
<i class="el-icon-delete" @click="messageReplyForm.reply = ''"></i>
<div class="footer">
<i class="el-icon-star-off"></i>
<a>插入超链接</a>
</div>
</el-form-item>
</el-form>
</el-form>
</el-tab-pane>
<el-tab-pane label="图片" name="picture">
</el-tab-pane>
<el-tab-pane label="图文" name="article">
</el-tab-pane>
</el-tabs>
</div>
</
body
>
</
html
>
<
script
>
<
script
>
var messageReplyVue = new Vue(
{
var messageReplyVue = new Vue(
{
el
:
"#message-reply"
,
el
:
"#message-reply"
,
data
:
{
data
:
{
messageReplyForm
:
{
messageReplyForm
:
{
reply
:
''
,
reply
:
''
,
},
},
messageReplyFormRules
:
{
messageReplyFormRules
:
{
name
:
[
{
name
:
[
{
required
:
true
,
required
:
true
,
message
:
'请输入菜单名称'
,
message
:
'请输入菜单名称'
,
trigger
:
['
blur
'
,
'
change
']
trigger
:
['
blur
'
,
'
change
']
},
},
{
{
min
:
1
,
min
:
1
,
max
:
5
,
max
:
5
,
message
:
'长度在
1
到
5
个字符'
,
message
:
'长度在
1
到
5
个字符'
,
trigger
:
['
blur
'
,
'
change
']
trigger
:
['
blur
'
,
'
change
']
}
}
]
,
]
,
},
},
activeName
:
'
text
'
,
activeName
:
'
text
'
,
},
},
methods
:
{
methods
:
{
}
}
}
)
}
)
</
script
>
</
script
>
\ No newline at end of file
src/main/webapp/WEB-INF/manager/mweixin/metarial/index.ftl
View file @
7fb6775d
<!--图文素材页-->
<!--图文素材页-->
<
link
rel="stylesheet" href="../../../static/mweixin/css/material-list.css">
<
link
rel="stylesheet" href="../../../static/mweixin/css/material-list.css">
<
div
id="material-list-vue">
<
div
id="material-list-vue"
v-if="menuVue.menuActive == '图文'"
>
<el-container>
<el-container>
<!--左侧meun-->
<!--右侧头部-->
<el-aside width="140px">
<el-header height="50px">
<!--#include virtual="../include/menu.ftl" -->
<el-row class="ms-fr">
</el-aside>
<el-button type="success">保存</el-button>
<el-container>
<el-button>更新</el-button>
<!--右侧头部-->
<el-button>返回</el-button>
<el-header height="50px">
</el-row>
<el-row class="ms-fr">
</el-header>
<el-button type="success">保存</el-button>
<el-main>
<el-button>更新</el-button>
<!--内容同步-->
<el-button>返回</el-button>
<el-container>
</el-row>
<el-header height="50px">
</el-header>
<el-main>
<!--内容同步-->
<el-container>
<el-header height="50px">
</el-header>
</el-header>
<!--素材列表-->
<!--素材列表-->
<el-main class="ms-admin-material-list">
<el-main class="ms-admin-material-list">
<div class="ms-admin-material-item">
<div class="ms-admin-material-item">
</div>
</div>
</el-main>
</el-main>
</el-container>
</el-container>
</el-main>
</el-main>
</el-container>
</el-container>
</el-container>
</
div
>
</
div
>
...
...
src/main/webapp/WEB-INF/manager/mweixin/weixin.ftl
View file @
7fb6775d
...
@@ -8,7 +8,11 @@
...
@@ -8,7 +8,11 @@
</head>
</head>
<body>
<body>
<!--#include virtual="menu.ftl" -->
<!--#include virtual="menu.ftl" -->
<!--#include virtual="material/index.ftl" -->
<!--#include virtual="metarial/index.ftl" -->
<!--#include virtual="article/index.ftl" -->
<!--#include virtual="keyword/index.ftl" -->
<!--#include virtual="keyword/form.ftl" -->
<!--#include virtual="menu/index.ftl" -->
<!--#include virtual="message/index.ftl" -->
<!--#include virtual="article/index.ftl" -->
</body>
</body>
</
html
>
</
html
>
\ No newline at end of file
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment