You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
272 lines
10 KiB
272 lines
10 KiB
<!-- 在线留言 -->
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
|
<title>在线留言</title>
|
|
<link rel="stylesheet" href="../../layui/css/layui.css">
|
|
<!-- 样式 -->
|
|
<link rel="stylesheet" href="../../css/style.css" />
|
|
<!-- 主题(主要颜色设置) -->
|
|
<link rel="stylesheet" href="../../css/theme.css" />
|
|
<!-- 通用的css -->
|
|
<link rel="stylesheet" href="../../css/common.css" />
|
|
</head>
|
|
<style>
|
|
#swiper {
|
|
overflow: hidden;
|
|
}
|
|
#swiper .layui-carousel-ind li {
|
|
width: 40px;
|
|
height: 10px;
|
|
border-width: 0;
|
|
border-style: solid;
|
|
border-color: rgba(0,0,0,.3);
|
|
border-radius: 0px;
|
|
background-color: rgba(255, 255, 255, 1);
|
|
box-shadow: 0 0 0px ;
|
|
}
|
|
#swiper .layui-carousel-ind li.layui-this {
|
|
width: 40px;
|
|
height: 10px;
|
|
border-width: 0;
|
|
border-style: solid;
|
|
border-color: rgba(0,0,0,.3);
|
|
border-radius: 0px;
|
|
background-color: rgba(233, 121, 19, 1);
|
|
box-shadow: 0 0 0px ;
|
|
}
|
|
|
|
.index-title {
|
|
text-align: center;
|
|
box-sizing: border-box;
|
|
width: 980px;
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
flex-direction: column;
|
|
}
|
|
|
|
.layui-laypage .layui-laypage-count {
|
|
padding: 0 10px;
|
|
}
|
|
.layui-laypage .layui-laypage-skip {
|
|
padding-left: 10px;
|
|
}
|
|
</style>
|
|
<body>
|
|
|
|
<div id="app">
|
|
<!-- 轮播图 -->
|
|
<!-- <div class="layui-carousel" id="swiper">
|
|
<div carousel-item id="swiper-item">
|
|
<div v-for="(item,index) in swiperList" v-bind:key="index">
|
|
<img class="swiper-item" :src="item.img">
|
|
</div>
|
|
</div>
|
|
</div> -->
|
|
<div class="layui-carousel" id="swiper" :style='{"boxShadow":"3px 0 6px","margin":"0 auto","borderColor":"rgba(0,0,0,.3)","borderRadius":"00px","borderWidth":"0","width":"100%","borderStyle":"solid"}'>
|
|
<div carousel-item id="swiper-item">
|
|
<div v-for="(item,index) in swiperList" :key="index">
|
|
<img style="width: 100%;height: 100%;object-fit:cover;" :src="item.img" />
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- 轮播图 -->
|
|
|
|
<!-- 标题 -->
|
|
<!-- <h2 class="index-title">MESSAGES / ADVICE</h2>
|
|
<div class="line-container">
|
|
<p class="line"> 留言反馈 </p>
|
|
</div> -->
|
|
<div class="index-title" :style='{"padding":"10px","boxShadow":"0 0 6px","margin":"10px auto","borderColor":"rgba(0,0,0,.3)","backgroundColor":"rgba(117, 138, 153, 1)","color":"rgba(226, 156, 69, 1)","borderRadius":"4px","borderWidth":"0","fontSize":"28px","borderStyle":"solid","height":"100px"}'>
|
|
<span>MESSAGES / ADVICE</span><span>留言反馈</span>
|
|
</div>
|
|
<!-- 标题 -->
|
|
|
|
<div class="message-container" style="padding: 20px 0;">
|
|
<form class="layui-form message-form" :style='{"padding":"20px","boxShadow":"2px px ","margin":"0 0 20px 0","borderColor":"rgba(100, 104, 105, 1)","backgroundColor":"#fff","borderRadius":"6px","borderWidth":"0","borderStyle":"solid"}'>
|
|
<div class="layui-form-item layui-form-text" style="display: flex;align-items: center;margin:0">
|
|
<label class="layui-form-label" style="width: auto;" :style='{"padding":"0","minWidth":"65px","fontSize":"14px","color":"rgba(13, 10, 10, 1)","textAlign":"left"}'>留言</label>
|
|
<div class="layui-input-block" style="margin:0;flex:1;">
|
|
<textarea :style='{"padding":"10px","boxShadow":"0 0 6px rgba(107, 110, 111, 1)","borderColor":"rgba(107, 110, 111, 1)","backgroundColor":"#fff","color":"rgba(140, 67, 86, 1)","borderRadius":"6px","borderWidth":"0","fontSize":"14px","borderStyle":"solid","height":"120px"}' name="content" required lay-verify="required" placeholder="请输入内容" class="layui-textarea"></textarea>
|
|
</div>
|
|
</div>
|
|
<div class="layui-form-item">
|
|
<div class="layui-input-block">
|
|
<button :style='{"padding":"0 10px","boxShadow":"2px 0 6px #70f3ff","margin":"10px 5px 0","borderColor":"rgba(0,0,0,.3)","backgroundColor":"rgba(112, 243, 255, 1)","color":"#fff","borderRadius":"10px","borderWidth":"0","width":"auto","lineHeight":"34px","fontSize":"14px","borderStyle":"solid"}' class="layui-btn btn-submit" lay-submit lay-filter="*">立即提交</button>
|
|
<button :style='{"padding":"0 10px","boxShadow":"0 0 6px rgba(255,0,0,.3)","margin":"10px 5px 0","borderColor":"rgba(0,0,0,.3)","backgroundColor":"rgba(238, 101, 101, 0.42)","color":"rgba(133, 125, 125, 1)","borderRadius":"10px","borderWidth":"0","width":"auto","lineHeight":"34px","fontSize":"14px","borderStyle":"solid"}' type="reset" class="layui-btn layui-btn-primary">重置</button>
|
|
</div>
|
|
</div>
|
|
</form>
|
|
<div class="message-list" v-if="dataList.length" :style='{"padding":"0 20px 20px","boxShadow":"2px 0 6px ","margin":"0","borderColor":"rgba(140, 134, 134, 0.8)","backgroundColor":"#fff","borderRadius":"5px","borderWidth":"1px","borderStyle":"solid"}'>
|
|
<div :style='{"padding":"20px 0","boxShadow":"0 0 6px rgba(255,0,0,0)","margin":"0","borderColor":"rgba(0,0,0,.3)","backgroundColor":"#fff","borderRadius":"0","borderWidth":"0 0 1px 0","borderStyle":"solid"}' class="message-item" v-for="(item,index) in dataList" v-bind:key="index" >
|
|
<div class="username-container" style="display: flex;align-items: center;">
|
|
<img :style='{"boxShadow":"2px 0 6px","margin":"0 10px 0 0","borderColor":"rgba(0,0,0,.3)","borderRadius":"100%","borderWidth":"0","width":"50px","borderStyle":"solid","height":"50px"}' class="avator" src="../../img/avator.png">
|
|
<span style="display: inline-block;" :style='{"padding":"0 10px","boxShadow":"0 0 0px","margin":"0","borderColor":"rgba(0,0,0,.3)","backgroundColor":"#fff","color":"rgba(73, 49, 49, 1)","borderRadius":"4px","borderWidth":"0","width":"auto","lineHeight":"28px","fontSize":"16px","borderStyle":"solid"}' class="username">用户:{{item.username}}</span>
|
|
</div>
|
|
<div class="content" class="content" style="margin: 0;flex: 1;">
|
|
<span style="display: inline-block;" :style='{"padding":"8px","boxShadow":"0 0 0px ","margin":"8px 0 0 50px","borderColor":"rgba(0,0,0,.3)","backgroundColor":"rgba(255, 255, 255, 0.3)","color":"rgba(114, 94, 130, 1)","borderRadius":"4px","borderWidth":"0","fontSize":"15px","borderStyle":"solid"}' class="message">
|
|
{{item.content}}
|
|
</span>
|
|
</div>
|
|
<div v-if="item.reply" class="replay" style="margin: 0;flex: 1;background: transparent;padding: 0;">
|
|
<span style="display: inline-block;" :style='{"padding":"8px","boxShadow":"0 0 0px ","margin":"8px 0 0 50px","borderColor":"rgba(0,0,0,.3)","backgroundColor":"rgba(255, 255, 255, 0.3)","color":"rgba(114, 94, 130, 1)","borderRadius":"4px","borderWidth":"0","fontSize":"15px","borderStyle":"solid"}' class="label">回复:{{item.reply}}</span>
|
|
<!-- <span class="message">
|
|
{{item.reply}}
|
|
</span> -->
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="pager" id="pager" :style="{textAlign:1==1?'left':1==2?'center':'right'}"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- layui -->
|
|
<script src="../../layui/layui.js"></script>
|
|
<!-- vue -->
|
|
<script src="../../js/vue.js"></script>
|
|
<!-- 组件配置信息 -->
|
|
<script src="../../js/config.js"></script>
|
|
<!-- 扩展插件配置信息 -->
|
|
<script src="../../modules/config.js"></script>
|
|
<!-- 工具方法 -->
|
|
<script src="../../js/utils.js"></script>
|
|
|
|
<script>
|
|
var vue = new Vue({
|
|
el: '#app',
|
|
data: {
|
|
// 轮播图
|
|
swiperList: [{
|
|
img: '../../img/banner.jpg'
|
|
}],
|
|
dataList: []
|
|
},
|
|
filters: {
|
|
newsDesc: function(val) {
|
|
if (val) {
|
|
if (val.length > 200) {
|
|
return val.substring(0, 200).replace(/<[^>]*>/g).replace(/undefined/g, '');
|
|
} else {
|
|
return val.replace(/<[^>]*>/g).replace(/undefined/g, '');
|
|
}
|
|
}
|
|
return '';
|
|
}
|
|
},
|
|
methods: {
|
|
jump(url) {
|
|
jump(url)
|
|
}
|
|
}
|
|
})
|
|
|
|
layui.use(['layer', 'element', 'carousel', 'laypage', 'http', 'jquery', 'form'], function() {
|
|
var layer = layui.layer;
|
|
var element = layui.element;
|
|
var carousel = layui.carousel;
|
|
var laypage = layui.laypage;
|
|
var http = layui.http;
|
|
var form = layui.form;
|
|
var jquery = layui.jquery;
|
|
|
|
var limit = 5;
|
|
|
|
// 获取轮播图 数据
|
|
http.request('config/list', 'get', {
|
|
page: 1,
|
|
limit: 5
|
|
}, function(res) {
|
|
if (res.data.list.length > 0) {
|
|
var swiperItemHtml = '';
|
|
for (let item of res.data.list) {
|
|
if (item.name.indexOf('picture') >= 0 && item.value && item.value != "" && item.value != null) {
|
|
swiperItemHtml +=
|
|
'<div>' +
|
|
'<img class="swiper-item" style="width: 100%;height: 100%;object-fit:cover;" src="' + item.value + '">' +
|
|
'</div>';
|
|
}
|
|
}
|
|
jquery('#swiper-item').html(swiperItemHtml);
|
|
// 轮播图
|
|
// carousel.render({
|
|
// elem: '#swiper',
|
|
// width: swiper.width,height:swiper.height,
|
|
// arrow: swiper.arrow,
|
|
// anim: swiper.anim,
|
|
// interval: swiper.interval,
|
|
// indicator: swiper.indicator
|
|
// });
|
|
vue.$nextTick(() => {
|
|
carousel.render({
|
|
elem: '#swiper',
|
|
width: '100%',
|
|
height: '520px',
|
|
arrow: 'hover',
|
|
anim: 'default',
|
|
autoplay: 'true',
|
|
interval: '3000',
|
|
indicator: 'inside'
|
|
});
|
|
|
|
})
|
|
}
|
|
});
|
|
|
|
// 获取列表数据
|
|
init();
|
|
|
|
function init() {
|
|
// 获取列表数据
|
|
http.request('messages/list', 'get', {
|
|
page: 1,
|
|
limit: limit
|
|
}, function(res) {
|
|
vue.dataList = res.data.list
|
|
// 分页
|
|
laypage.render({
|
|
elem: 'pager',
|
|
count: res.data.total,
|
|
limit: limit,
|
|
groups: 3,
|
|
layout: ["prev","page","next"],
|
|
theme: '#E97913',
|
|
jump: function(obj, first) {
|
|
//首次不执行
|
|
if (!first) {
|
|
http.request('messages/list', 'get', {
|
|
page: obj.curr,
|
|
limit: obj.limit
|
|
}, function(res) {
|
|
vue.dataList = res.data.list
|
|
})
|
|
}
|
|
}
|
|
});
|
|
})
|
|
}
|
|
|
|
// 提交数据
|
|
form.on('submit(*)', function(data) {
|
|
data = data.field;
|
|
data.userid = localStorage.getItem('userid')
|
|
data.username = localStorage.getItem('adminName')
|
|
http.requestJson('messages/add', 'post', data, function(res) {
|
|
layer.msg('留言成功', {
|
|
time: 2000,
|
|
icon: 6
|
|
}, function() {
|
|
window.location.reload();
|
|
});
|
|
return false
|
|
});
|
|
return false
|
|
});
|
|
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|