init
This commit is contained in:
144
application/index/view/car/bjlist.html
Normal file
144
application/index/view/car/bjlist.html
Normal file
@@ -0,0 +1,144 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<script src="__CDN__/web/static/js/jquery-1.11.3.js" type=text/javascript charset=utf-8></script>
|
||||
<script src="__CDN__/web/static/js/xlPaging.js"></script>
|
||||
<!-- <script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.9.1/jquery.min.js"></script> -->
|
||||
|
||||
<title>查看报警</title>
|
||||
<style type="text/css">
|
||||
/**************分页*******************/
|
||||
#page {
|
||||
margin: 20px auto;
|
||||
color: #666;
|
||||
display: block;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#page li {
|
||||
display: inline-block;
|
||||
min-width: 30px;
|
||||
height: 28px;
|
||||
cursor: pointer;
|
||||
color: #666;
|
||||
font-size: 13px;
|
||||
line-height: 28px;
|
||||
background-color: #f9f9f9;
|
||||
border: 1px solid #dce0e0;
|
||||
text-align: center;
|
||||
margin: 0 4px;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
}
|
||||
|
||||
.xl-nextPage,
|
||||
.xl-prevPage {
|
||||
width: 60px;
|
||||
color: #0073A9;
|
||||
height: 28px;
|
||||
}
|
||||
.swiper-container{
|
||||
margin-top: .7rem;
|
||||
z-index: -1;
|
||||
}
|
||||
#page li.xl-disabled {
|
||||
opacity: .5;
|
||||
cursor: no-drop;
|
||||
}
|
||||
|
||||
#page li.xl-active {
|
||||
background-color: #0073A9;
|
||||
border-color: #0073A9;
|
||||
color: #FFF
|
||||
}
|
||||
tr td{
|
||||
border: 1px solid #eee;
|
||||
height:40px;
|
||||
}
|
||||
tr th{
|
||||
border: 1px solid #eee;
|
||||
height:40px;
|
||||
background: #EEEEEE;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<table border="0" cellspacing="0" cellpadding="0" width="100%" class="ids" style="border: 1px solid #eee;text-align: center;">
|
||||
</table>
|
||||
<div id="page"></div>
|
||||
</body>
|
||||
|
||||
<script type="text/javascript">
|
||||
var page=1,pages=1, cph='';
|
||||
function GetRequest() {
|
||||
var url = location.search; //获取url中"?"符后的字串
|
||||
var theRequest = new Object();
|
||||
if(url.indexOf("?") != -1) {
|
||||
var str = url.substr(1);
|
||||
strs = str.split("&");
|
||||
for(var i = 0; i < strs.length; i++) {
|
||||
theRequest[strs[i].split("=")[0]] = (strs[i].split("=")[1]);
|
||||
|
||||
}
|
||||
}
|
||||
return theRequest;
|
||||
}
|
||||
function getlist(cph){
|
||||
let _this=this;
|
||||
$.ajax({
|
||||
dataType: "json",
|
||||
type: "post",
|
||||
url:'/api/Yq_screen/vehicle_alarm_list',
|
||||
data: {
|
||||
action:'Screen/vehicle_alarm_list',
|
||||
page:page,
|
||||
limit:20,
|
||||
vehicleNo:cph
|
||||
},
|
||||
success: function(res) {
|
||||
if (res.code == 1) {
|
||||
var list =res.data.list;
|
||||
pages=res.data.pages;
|
||||
var title='<tr>'+'<th>'+'序号'+'</th>'+'<th>'+'车牌号'+'</th>'+'<th>'+'事件名称'+'</th>'+'<th>'+'触发类型'+'</th>'+'<th>'+'报警时间'+'</th>'+'<th>'+'是否处理'+'</th>'+'</tr>';
|
||||
var ht='';
|
||||
for(var i=0;i<list.length;i++){
|
||||
if(list[i].trigger_type==1){
|
||||
list[i].trigger_type='自动触发'
|
||||
}else{
|
||||
list[i].trigger_type='自主上报'
|
||||
}
|
||||
if(list[i].is_reset==0){
|
||||
list[i].is_reset='未处理'
|
||||
}else{
|
||||
list[i].is_reset='已处理'
|
||||
}
|
||||
ht+=
|
||||
'<tr>'+'<td>'+Number((page-1)*20+(i+1))+'</td>'+'<td>'+list[i].license+'</td>'+'<td>'+list[i].name+'</td>'+'<td>'+list[i].trigger_type+'</td>'+'<td>'+list[i].create_time+'</td>'+'<td>'+list[i].is_reset+'</td>'+'</tr>'
|
||||
}
|
||||
var html=title+ht;
|
||||
$('table').append(html);
|
||||
$("#page").paging({
|
||||
nowPage: page, // 当前页码
|
||||
pageNum:pages, // 总页码
|
||||
buttonNum:5, //要展示的页码数量
|
||||
callback: function (num) { //回调函数
|
||||
$('table').html('');
|
||||
page=num;
|
||||
getlist(cph);
|
||||
},
|
||||
});
|
||||
} else {
|
||||
}
|
||||
|
||||
},
|
||||
});
|
||||
}
|
||||
window.onload=function(){
|
||||
var obj=GetRequest();
|
||||
cph=decodeURI(obj.id);
|
||||
getlist(cph);
|
||||
}
|
||||
</script>
|
||||
</html>
|
||||
94
application/index/view/car/car_detail.html
Normal file
94
application/index/view/car/car_detail.html
Normal file
@@ -0,0 +1,94 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<script src="__CDN__/web/static/js/jquery-1.11.3.js" type=text/javascript charset=utf-8></script>
|
||||
<title>车辆信息</title>
|
||||
<style type="text/css">
|
||||
.content{
|
||||
width: 800px;
|
||||
margin: auto;
|
||||
}
|
||||
h2{
|
||||
text-align: center;
|
||||
margin: 40px 0;
|
||||
}
|
||||
.content>div>p{
|
||||
margin: 30px 0;
|
||||
}
|
||||
.content>div>p>span{
|
||||
display: inline-block;
|
||||
}
|
||||
.content>div>p>span:nth-child(1){
|
||||
width: 200px;
|
||||
float: left;
|
||||
}
|
||||
.content>div>p>span:nth-child(2){
|
||||
width: 600px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="content">
|
||||
<h2>车辆信息</h2>
|
||||
</div>
|
||||
<script type="text/javascript">
|
||||
function GetRequest() {
|
||||
var url = location.search; //获取url中"?"符后的字串
|
||||
var theRequest = new Object();
|
||||
if(url.indexOf("?") != -1) {
|
||||
var str = url.substr(1);
|
||||
strs = str.split("&");
|
||||
for(var i = 0; i < strs.length; i++) {
|
||||
theRequest[strs[i].split("=")[0]] = (strs[i].split("=")[1]);
|
||||
}
|
||||
}
|
||||
return theRequest;
|
||||
}
|
||||
function getdata(id){
|
||||
let _this=this;
|
||||
// 如果id为空,显示提示
|
||||
if (!id) {
|
||||
$('.content').append('<div style="text-align:center;color:#999;margin-top:50px;">未找到车辆信息</div>');
|
||||
return;
|
||||
}
|
||||
$.ajax({
|
||||
dataType: "json",
|
||||
type: "post",
|
||||
url:'/api/Yq_screen/vehicle_detail',
|
||||
data: {
|
||||
action:'Screen/vehicle_detail',
|
||||
id:id,
|
||||
},
|
||||
success: function(res) {
|
||||
if (res.code == 1) {
|
||||
var data=res.data;
|
||||
$('.content').append(
|
||||
'<div>'+
|
||||
'<p>'+'<span>车牌号:</span>'+'<span>'+data.vehicleNo+'</span>'+'</p>'+
|
||||
'<p>'+'<span>承运商:</span>'+'<span>'+data.ownerName+'</span>'+'</p>'+
|
||||
'<p>'+'<span>经营范围:</span>'+'<span>'+data.businessScopeName+'</span>'+'</p>'+
|
||||
'<p>'+'<span>运输证号:</span>'+'<span>'+data.transCertificateCode+'</span>'+'</p>'+
|
||||
'<p>'+'<span>期限开始日期:</span>'+'<span>'+data.certificateEffdate+'</span>'+'</p>'+
|
||||
'<p>'+'<span>期限结束日期:</span>'+'<span>'+data.certificateExpdate+'</span>'+'</p>'+
|
||||
'<p>'+'<span>发证机关:</span>'+'<span>'+data.licenseIssueOrganCode+'</span>'+'</p>'+
|
||||
'</div>'
|
||||
)
|
||||
} else {
|
||||
$('.content').append('<div style="text-align:center;color:#999;margin-top:50px;">' + (res.msg || '获取车辆信息失败') + '</div>');
|
||||
}
|
||||
|
||||
},
|
||||
error: function(xhr, status, error) {
|
||||
$('.content').append('<div style="text-align:center;color:#999;margin-top:50px;">请求失败,请稍后重试</div>');
|
||||
}
|
||||
});
|
||||
};
|
||||
window.onload=function(){
|
||||
var obj=GetRequest();
|
||||
id=decodeURI(obj.id);
|
||||
getdata(id);
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
159
application/index/view/car/park_list.html
Normal file
159
application/index/view/car/park_list.html
Normal file
@@ -0,0 +1,159 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<script src="__CDN__/web/static/js/jquery-1.11.3.js" type=text/javascript charset=utf-8></script>
|
||||
<script src="__CDN__/web/static/js/xlPaging.js"></script>
|
||||
<!-- <script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.9.1/jquery.min.js"></script> -->
|
||||
|
||||
<title>入园记录</title>
|
||||
<style type="text/css">
|
||||
/**************分页*******************/
|
||||
#page {
|
||||
margin: 20px auto;
|
||||
color: #666;
|
||||
display: block;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#page li {
|
||||
display: inline-block;
|
||||
min-width: 30px;
|
||||
height: 28px;
|
||||
cursor: pointer;
|
||||
color: #666;
|
||||
font-size: 13px;
|
||||
line-height: 28px;
|
||||
background-color: #f9f9f9;
|
||||
border: 1px solid #dce0e0;
|
||||
text-align: center;
|
||||
margin: 0 4px;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
}
|
||||
|
||||
.xl-nextPage,
|
||||
.xl-prevPage {
|
||||
width: 60px;
|
||||
color: #0073A9;
|
||||
height: 28px;
|
||||
}
|
||||
.swiper-container{
|
||||
margin-top: .7rem;
|
||||
z-index: -1;
|
||||
}
|
||||
#page li.xl-disabled {
|
||||
opacity: .5;
|
||||
cursor: no-drop;
|
||||
}
|
||||
|
||||
#page li.xl-active {
|
||||
background-color: #0073A9;
|
||||
border-color: #0073A9;
|
||||
color: #FFF
|
||||
}
|
||||
tr td{
|
||||
border: 1px solid #eee;
|
||||
height:40px;
|
||||
}
|
||||
tr th{
|
||||
border: 1px solid #eee;
|
||||
height:40px;
|
||||
background: #EEEEEE;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<table border="0" cellspacing="0" cellpadding="0" width="100%" class="ids" style="border: 1px solid #eee;text-align: center;">
|
||||
</table>
|
||||
<div id="page"></div>
|
||||
</body>
|
||||
|
||||
<script type="text/javascript">
|
||||
var page=1,pages=1, cph='';
|
||||
function GetRequest() {
|
||||
var url = location.search; //获取url中"?"符后的字串
|
||||
var theRequest = new Object();
|
||||
if(url.indexOf("?") != -1) {
|
||||
var str = url.substr(1);
|
||||
strs = str.split("&");
|
||||
for(var i = 0; i < strs.length; i++) {
|
||||
theRequest[strs[i].split("=")[0]] = (strs[i].split("=")[1]);
|
||||
|
||||
}
|
||||
}
|
||||
return theRequest;
|
||||
}
|
||||
function getlist(cph){
|
||||
let _this=this;
|
||||
$.ajax({
|
||||
dataType: "json",
|
||||
type: "post",
|
||||
url:'/api/Yq_screen/vehicle_park_list',
|
||||
data: {
|
||||
action:'Screen/vehicle_park_list',
|
||||
page:page,
|
||||
limit:20,
|
||||
vehicleNo:cph
|
||||
},
|
||||
success: function(res) {
|
||||
if (res.code == 1) {
|
||||
var list =res.data.list;
|
||||
var title='<tr>'+'<th>'+'序号'+'</th>'+'<th>'+'车牌号'+'</th>'+'<th>'+'入园目的'+'</th>'+'<th>'+'审核状态'+'</th>'+'<th>'+'申请时间'+'</th>'+'</tr>';
|
||||
var ht='';
|
||||
pages=res.data.pages;
|
||||
for(var i=0;i<list.length;i++){
|
||||
if(list[i].mission==1){
|
||||
list[i].mudi='转货/卸货'
|
||||
}else if(list[i].mission==2){
|
||||
list[i].mudi='维修/洗车/停车'
|
||||
}else if(list[i].mission==3){
|
||||
list[i].mudi='常驻'
|
||||
}else if(list[i].mission==4){
|
||||
list[i].mudi='维修'
|
||||
}else if(list[i].mission==5){
|
||||
list[i].mudi='洗车'
|
||||
}else if(list[i].mission==6){
|
||||
list[i].mudi='停车'
|
||||
}else if(list[i].mission==7){
|
||||
list[i].mudi='检测'
|
||||
}else if(list[i].mission==8){
|
||||
list[i].mudi='洗罐'
|
||||
}
|
||||
if(list[i].status==1){
|
||||
list[i].pass='已通过'
|
||||
}else if(list[i].status==0){
|
||||
list[i].pass='审核中'
|
||||
}else{
|
||||
list[i].pass='已驳回'
|
||||
}
|
||||
ht+=
|
||||
'<tr>'+'<td>'+Number((page-1)*20+(i+1))+'</td>'+'<td>'+list[i].tractor_license+'</td>'+'<td>'+list[i].mudi+'</td>'+'<td>'+list[i].pass+'</td>'+'<td>'+list[i].create_time+'</td>'+'</tr>'
|
||||
}
|
||||
var html=title+ht;
|
||||
$('table').append(html);
|
||||
$("#page").paging({
|
||||
nowPage: page, // 当前页码
|
||||
pageNum:pages, // 总页码
|
||||
buttonNum:5, //要展示的页码数量
|
||||
callback: function (num) { //回调函数
|
||||
$('table').html('');
|
||||
page=num;
|
||||
getlist(cph);
|
||||
},
|
||||
});
|
||||
|
||||
} else {
|
||||
}
|
||||
|
||||
},
|
||||
});
|
||||
}
|
||||
window.onload=function(){
|
||||
var obj=GetRequest();
|
||||
cph=decodeURI(obj.id);
|
||||
getlist(cph);
|
||||
}
|
||||
</script>
|
||||
</html>
|
||||
210
application/index/view/car/vehicle_history.html
Normal file
210
application/index/view/car/vehicle_history.html
Normal file
@@ -0,0 +1,210 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
|
||||
<title>行驶记录</title>
|
||||
|
||||
<link rel="stylesheet" href="https://a.amap.com/jsapi_demos/static/demo-center/css/demo-center.css"/>
|
||||
<script src="__CDN__/web/static/js/jquery-1.11.3.js" type=text/javascript charset=utf-8></script>
|
||||
<script src="__CDN__/web/static/js/laydate/laydate.js"></script>
|
||||
<style>
|
||||
html, body, #container {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
.input-card{
|
||||
top: 1rem;
|
||||
height:8rem;
|
||||
right: 3rem;
|
||||
width: 30rem;
|
||||
}
|
||||
.input-card .btn{
|
||||
margin-right: 1.2rem;
|
||||
width: 14rem;
|
||||
}
|
||||
|
||||
.input-card .btn:last-child{
|
||||
margin-right: 0;
|
||||
}
|
||||
.animate{
|
||||
position: absolute;
|
||||
bottom: 20px;
|
||||
right: 10px;
|
||||
}
|
||||
.animate input{
|
||||
width: 100px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="container"></div>
|
||||
<div class="input-card">
|
||||
<h4>时间筛选(按天查询)</h4>
|
||||
<input type="text" class="demo-input" placeholder="请选择日期" id="test1">
|
||||
</div>
|
||||
<div class="animate">
|
||||
<div class="input-item">
|
||||
<input type="button" class="btn" value="开始动画" id="start" onclick="startAnimation(2000)"/>
|
||||
<input type="button" class="btn" value="暂停动画" id="pause" onclick="pauseAnimation()"/>
|
||||
<input type="button" class="btn" value="继续动画" id="resume" onclick="resumeAnimation()"/>
|
||||
</div>
|
||||
<div class="input-item">
|
||||
<input type="button" class="btn" value="正常" onclick="startAnimation(2000)"/>
|
||||
<input type="button" class="btn" value="4倍速" onclick="startAnimation(8000)"/>
|
||||
<input type="button" class="btn" value="16倍速" onclick="startAnimation(20000)"/>
|
||||
<!--<input type="button" class="btn" value="停止动画" id="stop" onclick="stopAnimation()"/>-->
|
||||
</div>
|
||||
</div>
|
||||
<input type="hidden" name="vehicleNo" value="{$vehicleNo}">
|
||||
<script type="text/javascript" src="https://webapi.amap.com/maps?v=1.4.15&key=4a7c7c92504e8d8afa2abf377159280a"></script>
|
||||
<script>
|
||||
function GetRequest() {
|
||||
var url = location.search; //获取url中"?"符后的字串
|
||||
var theRequest = new Object();
|
||||
if(url.indexOf("?") != -1) {
|
||||
var str = url.substr(1);
|
||||
strs = str.split("&");
|
||||
for(var i = 0; i < strs.length; i++) {
|
||||
theRequest[strs[i].split("=")[0]] = (strs[i].split("=")[1]);
|
||||
|
||||
}
|
||||
}
|
||||
return theRequest;
|
||||
}
|
||||
var reservation ='',cph='';
|
||||
window.onload=function(){
|
||||
// 优先使用隐藏字段中的 vehicleNo,如果没有则从 URL 参数获取
|
||||
var vehicleNoFromHidden = $('input[name=vehicleNo]').val();
|
||||
if (vehicleNoFromHidden) {
|
||||
cph = vehicleNoFromHidden;
|
||||
} else {
|
||||
var obj=GetRequest();
|
||||
cph=decodeURI(obj.id);
|
||||
}
|
||||
getdata(cph,reservation);
|
||||
}
|
||||
|
||||
// var reservation = '';
|
||||
function getdata(cph,reservation) {
|
||||
$.ajax({
|
||||
dataType: "json",
|
||||
type: "post",
|
||||
url: "/api/Yq_screen/vehicle_history",
|
||||
data: {
|
||||
action:'Screen/vehicle_history',
|
||||
vehicleNo:cph,
|
||||
reservation:reservation,
|
||||
},
|
||||
success: function(res) {
|
||||
if(res.code==1){
|
||||
// str = res.data;
|
||||
if (res.data && res.data.coordinate == '106.964108,29.793287'){
|
||||
alert('当天未查询到该车轨迹,请重新选择日期');
|
||||
return;
|
||||
}
|
||||
if (res.data && res.data.coordinate) {
|
||||
history(res.data.coordinate);
|
||||
} else {
|
||||
alert('当天未查询到该车轨迹,请重新选择日期');
|
||||
}
|
||||
} else {
|
||||
alert('查询失败:' + (res.msg || '未知错误'));
|
||||
}
|
||||
},
|
||||
error: function(res) {
|
||||
alert('请求失败,请稍后重试');
|
||||
}
|
||||
});
|
||||
}
|
||||
var marker= '';
|
||||
var lineArr='';
|
||||
function history(info) {
|
||||
var vehicleNo = $('input[name=vehicleNo]').val();
|
||||
var reservation = '';
|
||||
const MAP_KEY = "4a7c7c92504e8d8afa2abf377159280a",
|
||||
{
|
||||
LngLat
|
||||
} = AMap;
|
||||
// var str="108.01527,29.895601;106.997876,29.89281;106.991391,29.887939;106.985853,29.880405;106.981835,29.871026;106.960543,29.849142;106.950737,29.83564;106.945862,29.824089;106.943563,29.814148;106.945054,29.799754;106.942764,29.783607;106.970332,29.766519;106.983273,29.751322;107.017612,29.737776;107.050425,29.734115;107.064458,29.737683;107.064744,29.739318;107.058942,29.748447;107.055205,29.762378;107.071581,29.77504;107.086248,29.789923;107.088111,29.796775;107.084106,29.807387;107.080959,29.81142;107.068298,29.813474;107.06422,29.813406;107.060435,29.82112;107.050628,29.827207;107.04726,29.828623;107.046543,29.829966;107.04701,29.830878;107.04712,29.834263;107.044827,29.838826;107.053757,29.842875;107.056479,29.849047;107.057124,29.85153;107.056802,29.853468;107.060415,29.86047;107.061665,29.864841;107.054919,29.881592;107.052508,29.894119;107.040451,29.898403;107.028579,29.89536;107.014946,29.895825;106.997804,29.89278";
|
||||
// var marker1, lineArr1 = [[116.478935,39.997761],[116.478939,39.997825],[116.478912,39.998549],[116.478912,39.998549],[116.478998,39.998555],[116.478998,39.998555],[116.479282,39.99856],[116.479658,39.998528],[116.480151,39.998453],[116.480784,39.998302],[116.480784,39.998302],[116.481149,39.998184],[116.481573,39.997997],[116.481863,39.997846],[116.482072,39.997718],[116.482362,39.997718],[116.483633,39.998935],[116.48367,39.998968],[116.484648,39.999861]];
|
||||
|
||||
lineArr = strToLL(info);
|
||||
lay('#version').html('-v'+ laydate.v);
|
||||
laydate.render({
|
||||
elem: '#test1',
|
||||
min: -4,
|
||||
max: 0,
|
||||
// type: 'datetime',
|
||||
// range: true, //或 range: '~' 来自定义分割字符
|
||||
done:function(value,date,endDate){
|
||||
console.log(value); //得到日期生成的值,如:2017-08-18
|
||||
// reservation=value;
|
||||
getdata(cph,value);
|
||||
}
|
||||
});
|
||||
var map = new AMap.Map("container", {
|
||||
resizeEnable: true,
|
||||
center: lineArr[0],
|
||||
zoom: 17
|
||||
});
|
||||
function strToLL(str) {
|
||||
return str.split(';').map(i => new LngLat(...i.split(',').map(j => +j)))
|
||||
}
|
||||
marker = new AMap.Marker({
|
||||
map: map,
|
||||
position: lineArr[0],
|
||||
icon: "https://webapi.amap.com/images/car.png",
|
||||
offset: new AMap.Pixel(-26, -13),
|
||||
autoRotation: true,
|
||||
angle:-90,
|
||||
});
|
||||
|
||||
// 绘制轨迹
|
||||
var polyline = new AMap.Polyline({
|
||||
map: map,
|
||||
path: lineArr,
|
||||
showDir:true,
|
||||
strokeColor: "#28F", //线颜色
|
||||
// strokeOpacity: 1, //线透明度
|
||||
strokeWeight: 6, //线宽
|
||||
// strokeStyle: "solid" //线样式
|
||||
});
|
||||
|
||||
var passedPolyline = new AMap.Polyline({
|
||||
map: map,
|
||||
// path: lineArr,
|
||||
strokeColor: "#AF5", //线颜色
|
||||
// strokeOpacity: 1, //线透明度
|
||||
strokeWeight: 6, //线宽
|
||||
// strokeStyle: "solid" //线样式
|
||||
});
|
||||
|
||||
|
||||
marker.on('moving', function (e) {
|
||||
passedPolyline.setPath(e.passedPath);
|
||||
});
|
||||
|
||||
map.setFitView();
|
||||
}
|
||||
|
||||
|
||||
function startAnimation (time=2000) {
|
||||
marker.moveAlong(lineArr, time);
|
||||
}
|
||||
|
||||
function pauseAnimation () {
|
||||
marker.pauseMove();
|
||||
}
|
||||
|
||||
function resumeAnimation () {
|
||||
marker.resumeMove();
|
||||
}
|
||||
|
||||
function stopAnimation () {
|
||||
marker.stopMove();
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
150
application/index/view/car/waybill_list.html
Normal file
150
application/index/view/car/waybill_list.html
Normal file
@@ -0,0 +1,150 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<script src="__CDN__/web/static/js/jquery-1.11.3.js" type=text/javascript charset=utf-8></script>
|
||||
<script src="__CDN__/web/static/js/xlPaging.js"></script>
|
||||
<!-- <script src="https://cdn.bootcdn.net/ajax/libs/jquery/1.9.1/jquery.min.js"></script> -->
|
||||
|
||||
<title>运单记录</title>
|
||||
<style type="text/css">
|
||||
/**************分页*******************/
|
||||
#page {
|
||||
margin: 20px auto;
|
||||
color: #666;
|
||||
display: block;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
#page li {
|
||||
display: inline-block;
|
||||
min-width: 30px;
|
||||
height: 28px;
|
||||
cursor: pointer;
|
||||
color: #666;
|
||||
font-size: 13px;
|
||||
line-height: 28px;
|
||||
background-color: #f9f9f9;
|
||||
border: 1px solid #dce0e0;
|
||||
text-align: center;
|
||||
margin: 0 4px;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
}
|
||||
|
||||
.xl-nextPage,
|
||||
.xl-prevPage {
|
||||
width: 60px;
|
||||
color: #0073A9;
|
||||
height: 28px;
|
||||
}
|
||||
.swiper-container{
|
||||
margin-top: .7rem;
|
||||
z-index: -1;
|
||||
}
|
||||
#page li.xl-disabled {
|
||||
opacity: .5;
|
||||
cursor: no-drop;
|
||||
}
|
||||
|
||||
#page li.xl-active {
|
||||
background-color: #0073A9;
|
||||
border-color: #0073A9;
|
||||
color: #FFF
|
||||
}
|
||||
tr td{
|
||||
border: 1px solid #eee;
|
||||
height:40px;
|
||||
}
|
||||
tr th{
|
||||
border: 1px solid #eee;
|
||||
height:40px;
|
||||
background: #EEEEEE;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<table border="0" cellspacing="0" cellpadding="0" width="100%" class="ids" style="border: 1px solid #eee;text-align: center;">
|
||||
</table>
|
||||
<div id="page"></div>
|
||||
</body>
|
||||
|
||||
<script type="text/javascript">
|
||||
var page=1,pages=1, cph='';
|
||||
function GetRequest() {
|
||||
var url = location.search; //获取url中"?"符后的字串
|
||||
var theRequest = new Object();
|
||||
if(url.indexOf("?") != -1) {
|
||||
var str = url.substr(1);
|
||||
strs = str.split("&");
|
||||
for(var i = 0; i < strs.length; i++) {
|
||||
theRequest[strs[i].split("=")[0]] = (strs[i].split("=")[1]);
|
||||
|
||||
}
|
||||
}
|
||||
return theRequest;
|
||||
}
|
||||
function getlist(cph){
|
||||
let _this=this;
|
||||
$.ajax({
|
||||
dataType: "json",
|
||||
type: "post",
|
||||
url:'/api/Yq_screen/vehicle_waybill_list',
|
||||
data: {
|
||||
action:'Screen/vehicle_waybill_list',
|
||||
page:page,
|
||||
limit:20,
|
||||
vehicleNo:cph,
|
||||
mission:''
|
||||
},
|
||||
success: function(res) {
|
||||
if (res.code == 1) {
|
||||
var list =res.data.list;
|
||||
pages=res.data.pages;
|
||||
var title='<tr>'+'<th>'+'序号'+'</th>'+'<th>'+'运单号'+'</th>'+'<th>'+'牵引车牌号'+'</th>'+'<th>'+'挂车车牌号'+'</th>'+'<th>'+'司机姓名'+
|
||||
'</th>'+'<th>'+'司机电话'+'</th>'+'<th>'+'装/卸'+'</th>'+'<th>'+'产品名称'+
|
||||
'</th>'+'<th>'+'装货单位'+'</th>'+'<th>'+'卸货单位'+'</th>'+'<th>'+'查验结果'+'</th>'+'<th>'+'查验企业'+
|
||||
'</th>'+'<th>'+'提单时间'+'</th>'+'<th>'+'提交时间'+'</th>'+'</tr>';
|
||||
var ht='';
|
||||
for(var i=0;i<list.length;i++){
|
||||
if(list[i].check_status_record==1){
|
||||
list[i].check='通过'
|
||||
}else{
|
||||
list[i].check='未处理'
|
||||
}
|
||||
ht+=
|
||||
'<tr>'+'<td>'+Number((page-1)*20+(i+1))+'</td>'+
|
||||
'<td>'+list[i].waybill_order+'</td>'+'<td>'+list[i].tow_license+'</td>'+
|
||||
'<td>'+list[i].mount_license+'</td>'+'<td>'+list[i].waybill_name+'</td>'+
|
||||
'<td>'+list[i].driver_tel+'</td>'+'<td>'+list[i].w_mission+'</td>'+
|
||||
'<td>'+list[i].sale_product+'</td>'+'<td>'+list[i].waybill_loading+'</td>'+
|
||||
'<td>'+list[i].waybill_unloading+'</td>'+'<td>'+list[i].check+'</td>'+
|
||||
'<td>'+list[i].check_name+'</td>'+'<td>'+list[i].waybill_date+'</td>'+
|
||||
'<td>'+list[i].create_time+'</td>'+'</tr>'
|
||||
}
|
||||
var html=title+ht;
|
||||
$('table').append(html);
|
||||
$("#page").paging({
|
||||
nowPage: page, // 当前页码
|
||||
pageNum:pages, // 总页码
|
||||
buttonNum:5, //要展示的页码数量
|
||||
callback: function (num) { //回调函数
|
||||
$('table').html('');
|
||||
page=num;
|
||||
getlist(cph);
|
||||
},
|
||||
});
|
||||
} else {
|
||||
}
|
||||
|
||||
},
|
||||
});
|
||||
}
|
||||
window.onload=function(){
|
||||
var obj=GetRequest();
|
||||
cph=decodeURI(obj.id);
|
||||
getlist(cph);
|
||||
}
|
||||
</script>
|
||||
</html>
|
||||
27
application/index/view/common/captcha.html
Normal file
27
application/index/view/common/captcha.html
Normal file
@@ -0,0 +1,27 @@
|
||||
<!--@formatter:off-->
|
||||
{if "[type]" == 'email'}
|
||||
<input type="text" name="captcha" class="form-control" data-rule="required;length({$Think.config.captcha.length});digits;remote({:url('api/validate/check_ems_correct')}, event=[event], email:#email)" />
|
||||
<span class="input-group-btn" style="padding:0;border:none;">
|
||||
<a href="javascript:;" class="btn btn-info btn-captcha" data-url="{:url('api/ems/send')}" data-type="email" data-event="[event]">发送验证码</a>
|
||||
</span>
|
||||
{elseif "[type]" == 'mobile'/}
|
||||
<input type="text" name="captcha" class="form-control" data-rule="required;length({$Think.config.captcha.length});digits;remote({:url('api/validate/check_sms_correct')}, event=[event], mobile:#mobile)" />
|
||||
<span class="input-group-btn" style="padding:0;border:none;">
|
||||
<a href="javascript:;" class="btn btn-info btn-captcha" data-url="{:url('api/sms/send')}" data-type="mobile" data-event="[event]">发送验证码</a>
|
||||
</span>
|
||||
{elseif "[type]" == 'wechat'/}
|
||||
{if get_addon_info('wechat')}
|
||||
<input type="text" name="captcha" class="form-control" data-rule="required;length({$Think.config.captcha.length});remote({:addon_url('wechat/captcha/check')}, event=[event])" />
|
||||
<span class="input-group-btn" style="padding:0;border:none;">
|
||||
<a href="javascript:;" class="btn btn-info btn-captcha" data-url="{:addon_url('wechat/captcha/send')}" data-type="wechat" data-event="[event]">获取验证码</a>
|
||||
</span>
|
||||
{else/}
|
||||
请在后台插件管理中安装《微信管理插件》
|
||||
{/if}
|
||||
{elseif "[type]" == 'text' /}
|
||||
<input type="text" name="captcha" class="form-control" data-rule="required;length({$Think.config.captcha.length})" />
|
||||
<span class="input-group-btn" style="padding:0;border:none;">
|
||||
<img src="{:captcha_src()}" width="100" height="32" onclick="this.src = '{:captcha_src()}?r=' + Math.random();"/>
|
||||
</span>
|
||||
{/if}
|
||||
<!--@formatter:on-->
|
||||
26
application/index/view/common/meta.html
Normal file
26
application/index/view/common/meta.html
Normal file
@@ -0,0 +1,26 @@
|
||||
<meta charset="utf-8">
|
||||
<title>{$title|default=''|htmlentities} – {$site.name|htmlentities}</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
|
||||
<meta name="renderer" content="webkit">
|
||||
|
||||
{if isset($keywords)}
|
||||
<meta name="keywords" content="{$keywords|htmlentities}">
|
||||
{/if}
|
||||
{if isset($description)}
|
||||
<meta name="description" content="{$description|htmlentities}">
|
||||
{/if}
|
||||
|
||||
<link rel="shortcut icon" href="__CDN__/assets/img/favicon.ico" />
|
||||
|
||||
<link href="__CDN__/assets/css/frontend{$Think.config.app_debug?'':'.min'}.css?v={$Think.config.site.version|htmlentities}" rel="stylesheet">
|
||||
|
||||
<!-- HTML5 shim, for IE6-8 support of HTML5 elements. All other JS at the end of file. -->
|
||||
<!--[if lt IE 9]>
|
||||
<script src="__CDN__/assets/js/html5shiv.js"></script>
|
||||
<script src="__CDN__/assets/js/respond.min.js"></script>
|
||||
<![endif]-->
|
||||
<script type="text/javascript">
|
||||
var require = {
|
||||
config: {$config|json_encode}
|
||||
};
|
||||
</script>
|
||||
1
application/index/view/common/script.html
Normal file
1
application/index/view/common/script.html
Normal file
@@ -0,0 +1 @@
|
||||
<script src="__CDN__/assets/js/require{$Think.config.app_debug?'':'.min'}.js" data-main="__CDN__/assets/js/require-frontend{$Think.config.app_debug?'':'.min'}.js?v={$site.version|htmlentities}"></script>
|
||||
12
application/index/view/common/sidenav.html
Normal file
12
application/index/view/common/sidenav.html
Normal file
@@ -0,0 +1,12 @@
|
||||
<div class="sidebar-toggle"><i class="fa fa-bars"></i></div>
|
||||
<div class="sidenav" id="sidebar-nav">
|
||||
{:hook('user_sidenav_before')}
|
||||
<ul class="list-group">
|
||||
<li class="list-group-heading">{:__('Member center')}</li>
|
||||
<li class="list-group-item {:check_nav_active('user/index')}"> <a href="{:url('user/index')}"><i class="fa fa-user-circle fa-fw"></i> {:__('User center')}</a> </li>
|
||||
<li class="list-group-item {:check_nav_active('user/profile')}"> <a href="{:url('user/profile')}"><i class="fa fa-user-o fa-fw"></i> {:__('Profile')}</a> </li>
|
||||
<li class="list-group-item {:check_nav_active('user/changepwd')}"> <a href="{:url('user/changepwd')}"><i class="fa fa-key fa-fw"></i> {:__('Change password')}</a> </li>
|
||||
<li class="list-group-item {:check_nav_active('user/logout')}"> <a href="{:url('user/logout')}"><i class="fa fa-sign-out fa-fw"></i> {:__('Sign out')}</a> </li>
|
||||
</ul>
|
||||
{:hook('user_sidenav_after')}
|
||||
</div>
|
||||
2179
application/index/view/jingmen/cldt.html
Normal file
2179
application/index/view/jingmen/cldt.html
Normal file
File diff suppressed because one or more lines are too long
1887
application/index/view/jingmen/i_clm.html
Normal file
1887
application/index/view/jingmen/i_clm.html
Normal file
File diff suppressed because one or more lines are too long
1836
application/index/view/jingmen/index.html
Normal file
1836
application/index/view/jingmen/index.html
Normal file
File diff suppressed because one or more lines are too long
1835
application/index/view/jingmen/yddt.html
Normal file
1835
application/index/view/jingmen/yddt.html
Normal file
File diff suppressed because one or more lines are too long
63
application/index/view/layout/default.html
Normal file
63
application/index/view/layout/default.html
Normal file
@@ -0,0 +1,63 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
{include file="common/meta" /}
|
||||
<link href="__CDN__/assets/css/user.css?v={$Think.config.site.version|htmlentities}" rel="stylesheet">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
<nav class="navbar navbar-white navbar-fixed-top" role="navigation">
|
||||
<div class="container">
|
||||
<div class="navbar-header">
|
||||
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#header-navbar">
|
||||
<span class="sr-only">Toggle navigation</span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
<span class="icon-bar"></span>
|
||||
</button>
|
||||
<a class="navbar-brand" href="{:url('/')}">{$site.name|htmlentities}</a>
|
||||
</div>
|
||||
<div class="collapse navbar-collapse" id="header-navbar">
|
||||
<ul class="nav navbar-nav navbar-right">
|
||||
<li><a href="{:url('/')}">{:__('Home')}</a></li>
|
||||
<li class="dropdown">
|
||||
{if $user}
|
||||
<a href="{:url('user/index')}" class="dropdown-toggle" data-toggle="dropdown">
|
||||
<span class="avatar-img"><img src="{$user.avatar|htmlentities|cdnurl}" alt=""></span>
|
||||
<span class="visible-xs-inline-block" style="padding:5px;">{$user.nickname} <b class="caret"></b></span>
|
||||
</a>
|
||||
{else /}
|
||||
<a href="{:url('user/index')}" class="dropdown-toggle" data-toggle="dropdown">{:__('Member center')} <b class="caret"></b></a>
|
||||
{/if}
|
||||
<ul class="dropdown-menu">
|
||||
{if $user}
|
||||
<li><a href="{:url('user/index')}"><i class="fa fa-user-circle fa-fw"></i>{:__('User center')}</a></li>
|
||||
<li><a href="{:url('user/profile')}"><i class="fa fa-user-o fa-fw"></i>{:__('Profile')}</a></li>
|
||||
<li><a href="{:url('user/changepwd')}"><i class="fa fa-key fa-fw"></i>{:__('Change password')}</a></li>
|
||||
<li><a href="{:url('user/logout')}"><i class="fa fa-sign-out fa-fw"></i>{:__('Sign out')}</a></li>
|
||||
{else /}
|
||||
<li><a href="{:url('user/login')}"><i class="fa fa-sign-in fa-fw"></i> {:__('Sign in')}</a></li>
|
||||
<li><a href="{:url('user/register')}"><i class="fa fa-user-o fa-fw"></i> {:__('Sign up')}</a></li>
|
||||
{/if}
|
||||
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
<main class="content">
|
||||
{__CONTENT__}
|
||||
</main>
|
||||
|
||||
<footer class="footer" style="clear:both">
|
||||
<p class="copyright">Copyright © {:date("Y")} {$site.name|htmlentities} All Rights Reserved <a href="https://beian.miit.gov.cn" target="_blank">{$site.beian|htmlentities}</a></p>
|
||||
</footer>
|
||||
|
||||
{include file="common/script" /}
|
||||
|
||||
</body>
|
||||
|
||||
</html>
|
||||
61
application/index/view/user/attachment.html
Normal file
61
application/index/view/user/attachment.html
Normal file
@@ -0,0 +1,61 @@
|
||||
<link rel="stylesheet" href="__CDN__/assets/libs/bootstrap-table/dist/bootstrap-table.min.css">
|
||||
{if $Think.get.dialog}
|
||||
<style>
|
||||
body {
|
||||
padding-top: 0;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
nav.navbar-fixed-top, footer.footer {
|
||||
display: none;
|
||||
}
|
||||
|
||||
main.content {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.fixed-table-container {
|
||||
border: none;
|
||||
}
|
||||
|
||||
.panel-heading .nav-tabs {
|
||||
padding: 0 15px;
|
||||
}
|
||||
|
||||
.panel-heading .nav-tabs li {
|
||||
font-size: 14px;
|
||||
}
|
||||
</style>
|
||||
{/if}
|
||||
<div class="panel panel-default panel-intro" style="padding:0;">
|
||||
{if !$Think.get.mimetype||$Think.get.mimetype=='*'}
|
||||
<div class="panel-heading">
|
||||
<ul class="nav nav-tabs" data-field="mimetype">
|
||||
<li class="active"><a href="#t-all" data-value="" data-toggle="tab">{:__('All')}</a></li>
|
||||
{foreach name="mimetypeList" item="vo"}
|
||||
<li><a href="#t-{$key}" data-value="{$key}" data-toggle="tab">{$vo}</a></li>
|
||||
{/foreach}
|
||||
</ul>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
<div class="panel-body">
|
||||
<div id="myTabContent" class="tab-content">
|
||||
<div class="tab-pane fade active in" id="one">
|
||||
<div class="widget-body no-padding">
|
||||
<div id="toolbar" class="toolbar">
|
||||
<a href="javascript:;" class="btn btn-primary btn-refresh" title="刷新"><i class="fa fa-refresh"></i> </a>
|
||||
<span><button type="button" id="faupload-image" class="btn btn-success faupload" data-mimetype="{$mimetype|default=''|htmlentities}" data-multiple="true"><i class="fa fa-upload"></i> {:__('Upload')}</button></span>
|
||||
{if request()->get('multiple') == 'true'}
|
||||
<a class="btn btn-danger btn-choose-multi"><i class="fa fa-check"></i> {:__('Choose')}</a>
|
||||
{/if}
|
||||
</div>
|
||||
<table id="table" class="table table-bordered table-hover" width="100%">
|
||||
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
43
application/index/view/user/changepwd.html
Normal file
43
application/index/view/user/changepwd.html
Normal file
@@ -0,0 +1,43 @@
|
||||
<div id="content-container" class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
{include file="common/sidenav" /}
|
||||
</div>
|
||||
<div class="col-md-9">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<h2 class="page-header">{:__('Change password')}</h2>
|
||||
<form id="changepwd-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
|
||||
{:token()}
|
||||
<div class="form-group">
|
||||
<label for="oldpassword" class="control-label col-xs-12 col-sm-2">{:__('Old password')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<input type="password" class="form-control" id="oldpassword" name="oldpassword" value="" data-rule="required;password" placeholder="{:__('Old password')}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="newpassword" class="control-label col-xs-12 col-sm-2">{:__('New password')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<input type="password" class="form-control" id="newpassword" name="newpassword" value="" data-rule="required;password" placeholder="{:__('New password')}" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="renewpassword" class="control-label col-xs-12 col-sm-2">{:__('Renew password')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<input type="password" class="form-control" id="renewpassword" name="renewpassword" value="" data-rule="required;password" placeholder="{:__('Renew password')}" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group normal-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('Submit')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
69
application/index/view/user/index.html
Normal file
69
application/index/view/user/index.html
Normal file
@@ -0,0 +1,69 @@
|
||||
<style>
|
||||
.basicinfo {
|
||||
margin: 15px 0;
|
||||
}
|
||||
|
||||
.basicinfo .row > .col-xs-4 {
|
||||
padding-right: 0;
|
||||
}
|
||||
|
||||
.basicinfo .row > div {
|
||||
margin: 5px 0;
|
||||
}
|
||||
</style>
|
||||
<div id="content-container" class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
{include file="common/sidenav" /}
|
||||
</div>
|
||||
<div class="col-md-9">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<h2 class="page-header">
|
||||
{:__('Member center')}
|
||||
<a href="{:url('user/profile')}" class="btn btn-primary pull-right"><i class="fa fa-pencil"></i> {:__('Profile')}</a>
|
||||
</h2>
|
||||
<div class="row user-baseinfo">
|
||||
<div class="col-md-3 col-sm-3 col-xs-3 text-center user-center">
|
||||
<a href="{:url('user/profile')}" title="{:__('Click to edit')}">
|
||||
<span class="avatar-img"><img src="{$user.avatar|htmlentities|cdnurl}" alt=""></span>
|
||||
</a>
|
||||
</div>
|
||||
<div class="col-md-9 col-sm-9 col-xs-9">
|
||||
<div class="ui-content">
|
||||
<h4><a href="{:url('user/profile')}">{$user.nickname|htmlentities}</a></h4>
|
||||
<p class="text-muted">
|
||||
{$user.bio|default=__("This guy hasn't written anything yet")|htmlentities}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-md-9 col-sm-9 col-xs-12">
|
||||
<div class="ui-content">
|
||||
<div class="basicinfo">
|
||||
<div class="row">
|
||||
<div class="col-xs-4 col-md-2">{:__('Money')}</div>
|
||||
<div class="col-xs-8 col-md-4">
|
||||
<a href="javascript:;" class="viewmoney">{$user.money}</a>
|
||||
</div>
|
||||
<div class="col-xs-4 col-md-2">{:__('Score')}</div>
|
||||
<div class="col-xs-8 col-md-4">
|
||||
<a href="javascript:;" class="viewscore">{$user.score}</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-xs-4 col-md-2">{:__('Logintime')}</div>
|
||||
<div class="col-xs-8 col-md-4">{$user.logintime|date="Y-m-d H:i:s",###}</div>
|
||||
<div class="col-xs-4 col-md-2">{:__('Prevtime')}</div>
|
||||
<div class="col-xs-8 col-md-4">{$user.prevtime|date="Y-m-d H:i:s",###}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
94
application/index/view/user/login.html
Normal file
94
application/index/view/user/login.html
Normal file
@@ -0,0 +1,94 @@
|
||||
<div id="content-container" class="container">
|
||||
<div class="user-section login-section">
|
||||
<div class="logon-tab clearfix"><a class="active">{:__('Sign in')}</a> <a href="{:url('user/register')}?url={$url|urlencode|htmlentities}">{:__('Sign up')}</a></div>
|
||||
<div class="login-main">
|
||||
<form name="form" id="login-form" class="form-vertical" method="POST" action="">
|
||||
<!--@IndexLoginFormBegin-->
|
||||
<input type="hidden" name="url" value="{$url|htmlentities}"/>
|
||||
{:token()}
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="account">{:__('Account')}</label>
|
||||
<div class="controls">
|
||||
<input class="form-control" id="account" type="text" name="account" value="" data-rule="required" placeholder="{:__('Email/Mobile/Username')}" autocomplete="off">
|
||||
<div class="help-block"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label" for="password">{:__('Password')}</label>
|
||||
<div class="controls">
|
||||
<input class="form-control" id="password" type="password" name="password" data-rule="required;password" placeholder="{:__('Password')}" autocomplete="off">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="controls">
|
||||
<div class="checkbox inline">
|
||||
<label>
|
||||
<input type="checkbox" name="keeplogin" checked="checked" value="1"> {:__('Keep login')}
|
||||
</label>
|
||||
</div>
|
||||
<div class="pull-right"><a href="javascript:;" class="btn-forgot">{:__('Forgot password')}</a></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<button type="submit" class="btn btn-primary btn-lg btn-block">{:__('Sign in')}</button>
|
||||
<a href="{:url('user/register')}?url={$url|urlencode|htmlentities}" class="btn btn-default btn-lg btn-block mt-3 no-border">{:__("Don't have an account? Sign up")}</a>
|
||||
</div>
|
||||
<!--@IndexLoginFormEnd-->
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<script type="text/html" id="resetpwdtpl">
|
||||
<form id="resetpwd-form" class="form-horizontal form-layer" method="POST" action="{:url('api/user/resetpwd')}">
|
||||
<div class="form-body">
|
||||
<input type="hidden" name="action" value="resetpwd"/>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-3">{:__('Type')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<div class="radio">
|
||||
<label for="type-email"><input id="type-email" checked="checked" name="type" data-send-url="{:url('api/ems/send')}" data-check-url="{:url('api/validate/check_ems_correct')}" type="radio" value="email"> {:__('Reset password by email')}</label>
|
||||
<label for="type-mobile"><input id="type-mobile" name="type" type="radio" data-send-url="{:url('api/sms/send')}" data-check-url="{:url('api/validate/check_sms_correct')}" value="mobile"> {:__('Reset password by mobile')}</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group" data-type="email">
|
||||
<label for="email" class="control-label col-xs-12 col-sm-3">{:__('Email')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="text" class="form-control" id="email" name="email" value="" data-rule="required(#type-email:checked);email;remote({:url('api/validate/check_email_exist')}, event=resetpwd, id=0)" placeholder="">
|
||||
<span class="msg-box"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group hide" data-type="mobile">
|
||||
<label for="mobile" class="control-label col-xs-12 col-sm-3">{:__('Mobile')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="text" class="form-control" id="mobile" name="mobile" value="" data-rule="required(#type-mobile:checked);mobile;remote({:url('api/validate/check_mobile_exist')}, event=resetpwd, id=0)" placeholder="">
|
||||
<span class="msg-box"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="captcha" class="control-label col-xs-12 col-sm-3">{:__('Captcha')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<div class="input-group">
|
||||
<input type="text" name="captcha" class="form-control" data-rule="required;length({$Think.config.captcha.length});digits;remote({:url('api/validate/check_ems_correct')}, event=resetpwd, email:#email)"/>
|
||||
<span class="input-group-btn" style="padding:0;border:none;">
|
||||
<a href="javascript:;" class="btn btn-primary btn-captcha" data-url="{:url('api/ems/send')}" data-type="email" data-event="resetpwd">{:__('Send verification code')}</a>
|
||||
</span>
|
||||
</div>
|
||||
<span class="msg-box"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="newpassword" class="control-label col-xs-12 col-sm-3">{:__('New password')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="password" class="form-control" id="newpassword" name="newpassword" value="" data-rule="required;password" placeholder="">
|
||||
<span class="msg-box"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group form-footer">
|
||||
<div class="col-xs-12 col-sm-8 col-sm-offset-3">
|
||||
<button type="submit" class="btn btn-md btn-primary">{:__('Ok')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</script>
|
||||
200
application/index/view/user/profile.html
Normal file
200
application/index/view/user/profile.html
Normal file
@@ -0,0 +1,200 @@
|
||||
<style>
|
||||
.profile-avatar-container {
|
||||
position:relative;
|
||||
width:100px;
|
||||
}
|
||||
.profile-avatar-container .profile-user-img{
|
||||
width:100px;
|
||||
height:100px;
|
||||
}
|
||||
.profile-avatar-container .profile-avatar-text {
|
||||
display:none;
|
||||
}
|
||||
.profile-avatar-container:hover .profile-avatar-text {
|
||||
display:block;
|
||||
position:absolute;
|
||||
height:100px;
|
||||
width:100px;
|
||||
background:#444;
|
||||
opacity: .6;
|
||||
color: #fff;
|
||||
top:0;
|
||||
left:0;
|
||||
line-height: 100px;
|
||||
text-align: center;
|
||||
}
|
||||
.profile-avatar-container button{
|
||||
position:absolute;
|
||||
top:0;left:0;width:100px;height:100px;opacity: 0;
|
||||
}
|
||||
</style>
|
||||
<div id="content-container" class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
{include file="common/sidenav" /}
|
||||
</div>
|
||||
<div class="col-md-9">
|
||||
<div class="panel panel-default">
|
||||
<div class="panel-body">
|
||||
<h2 class="page-header">{:__('Profile')}</h2>
|
||||
<form id="profile-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="{:url('api/user/profile')}">
|
||||
{:token()}
|
||||
<input type="hidden" name="avatar" id="c-avatar" value="{:$user->getData('avatar')}" />
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<div class="profile-avatar-container">
|
||||
<img class="profile-user-img img-responsive img-circle" src="{$user.avatar|htmlentities|cdnurl}" alt="">
|
||||
<div class="profile-avatar-text img-circle">{:__('Click to edit')}</div>
|
||||
<button type="button" id="faupload-avatar" class="faupload" data-mimetype="png,jpg,jpeg,gif" data-input-id="c-avatar"><i class="fa fa-upload"></i> {:__('Upload')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Username')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<input type="text" class="form-control" id="username" name="username" value="{$user.username|htmlentities}" data-rule="required;username;remote({:url('api/validate/check_username_available')}, id={$user.id})" placeholder="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-2">{:__('Nickname')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<input type="text" class="form-control" id="nickname" name="nickname" value="{$user.nickname|htmlentities}" data-rule="required;remote({:url('api/validate/check_nickname_available')}, id={$user.id})" placeholder="">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-bio" class="control-label col-xs-12 col-sm-2">{:__('Intro')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input id="c-bio" data-rule="" data-tip="一句话介绍一下你自己" class="form-control" name="bio" type="text" value="{$user.bio|htmlentities}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-email" class="control-label col-xs-12 col-sm-2">{:__('Email')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" id="c-email" name="email" value="{$user.email|htmlentities}" disabled placeholder="">
|
||||
<span class="input-group-btn" style="padding:0;border:none;">
|
||||
<a href="javascript:;" class="btn btn-info btn-change" data-type="email">{:__('Change')}</a>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="c-mobile" class="control-label col-xs-12 col-sm-2">{:__('Mobile')}:</label>
|
||||
<div class="col-xs-12 col-sm-4">
|
||||
<div class="input-group">
|
||||
<input type="text" class="form-control" id="c-mobile" name="mobile" value="{$user.mobile|htmlentities}" disabled placeholder="">
|
||||
<span class="input-group-btn" style="padding:0;border:none;">
|
||||
<a href="javascript:;" class="btn btn-info btn-change" data-type="mobile">{:__('Change')}</a>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group normal-footer">
|
||||
<label class="control-label col-xs-12 col-sm-2"></label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<button type="submit" class="btn btn-primary btn-embossed disabled">{:__('Ok')}</button>
|
||||
<button type="reset" class="btn btn-default btn-embossed">{:__('Reset')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/html" id="emailtpl">
|
||||
<form id="email-form" class="form-horizontal form-layer" method="POST" action="{:url('api/user/changeemail')}">
|
||||
<div class="form-body">
|
||||
<input type="hidden" name="action" value="changeemail" />
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-3">{:__('New Email')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="text" class="form-control" id="email" name="email" value="" data-rule="required;email;remote({:url('api/validate/check_email_available')}, event=changeemail, id={$user.id})" placeholder="{:__('New email')}">
|
||||
<span class="msg-box"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label col-xs-12 col-sm-3">{:__('Captcha')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<div class="input-group">
|
||||
<input type="text" name="captcha" id="email-captcha" class="form-control" data-rule="required;length({$Think.config.captcha.length});digits;remote({:url('api/validate/check_ems_correct')}, event=changeemail, email:#email)" />
|
||||
<span class="input-group-btn" style="padding:0;border:none;">
|
||||
<a href="javascript:;" class="btn btn-info btn-captcha" data-url="{:url('api/ems/send')}" data-type="email" data-event="changeemail">获取验证码</a>
|
||||
</span>
|
||||
</div>
|
||||
<span class="msg-box"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-footer">
|
||||
<div class="form-group" style="margin-bottom:0;">
|
||||
<div class="col-xs-12 col-sm-8 col-sm-offset-3">
|
||||
<button type="submit" class="btn btn-md btn-primary">{:__('Submit')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</script>
|
||||
<script type="text/html" id="mobiletpl">
|
||||
<form id="mobile-form" class="form-horizontal form-layer" method="POST" action="{:url('api/user/changemobile')}">
|
||||
<div class="form-body">
|
||||
<input type="hidden" name="action" value="changemobile" />
|
||||
<div class="form-group">
|
||||
<label for="c-mobile" class="control-label col-xs-12 col-sm-3">{:__('New mobile')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<input type="text" class="form-control" id="mobile" name="mobile" value="" data-rule="required;mobile;remote({:url('api/validate/check_mobile_available')}, event=changemobile, id={$user.id})" placeholder="{:__('New mobile')}">
|
||||
<span class="msg-box"></span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="mobile-captcha" class="control-label col-xs-12 col-sm-3">{:__('Captcha')}:</label>
|
||||
<div class="col-xs-12 col-sm-8">
|
||||
<div class="input-group">
|
||||
<input type="text" name="captcha" id="mobile-captcha" class="form-control" data-rule="required;length({$Think.config.captcha.length});digits;remote({:url('api/validate/check_sms_correct')}, event=changemobile, mobile:#mobile)" />
|
||||
<span class="input-group-btn" style="padding:0;border:none;">
|
||||
<a href="javascript:;" class="btn btn-info btn-captcha" data-url="{:url('api/sms/send')}" data-type="mobile" data-event="changemobile">获取验证码</a>
|
||||
</span>
|
||||
</div>
|
||||
<span class="msg-box"></span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-footer">
|
||||
<div class="form-group" style="margin-bottom:0;">
|
||||
<div class="col-xs-12 col-sm-8 col-sm-offset-3">
|
||||
<button type="submit" class="btn btn-md btn-primary">{:__('Submit')}</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</script>
|
||||
<style>
|
||||
.form-layer {height:100%;min-height:150px;min-width:300px;}
|
||||
.form-body {
|
||||
width:100%;
|
||||
overflow:auto;
|
||||
top:0;
|
||||
position:absolute;
|
||||
z-index:10;
|
||||
bottom:50px;
|
||||
padding:15px;
|
||||
}
|
||||
.form-layer .form-footer {
|
||||
height:50px;
|
||||
line-height:50px;
|
||||
background-color: #ecf0f1;
|
||||
width:100%;
|
||||
position:absolute;
|
||||
z-index:200;
|
||||
bottom:0;
|
||||
margin:0;
|
||||
}
|
||||
.form-footer .form-group{
|
||||
margin-left:0;
|
||||
margin-right:0;
|
||||
}
|
||||
</style>
|
||||
61
application/index/view/user/register.html
Normal file
61
application/index/view/user/register.html
Normal file
@@ -0,0 +1,61 @@
|
||||
<div id="content-container" class="container">
|
||||
<div class="user-section login-section">
|
||||
<div class="logon-tab clearfix"><a href="{:url('user/login')}?url={$url|urlencode|htmlentities}">{:__('Sign in')}</a> <a class="active">{:__('Sign up')}</a></div>
|
||||
<div class="login-main">
|
||||
<form name="form1" id="register-form" class="form-vertical" method="POST" action="">
|
||||
<!--@IndexRegisterFormBegin-->
|
||||
<input type="hidden" name="invite_user_id" value="0"/>
|
||||
<input type="hidden" name="url" value="{$url|htmlentities}"/>
|
||||
{:token()}
|
||||
<div class="form-group">
|
||||
<label class="control-label required">{:__('Email')}<span class="text-success"></span></label>
|
||||
<div class="controls">
|
||||
<input type="text" name="email" id="email" data-rule="required;email" class="form-control" placeholder="{:__('Email')}">
|
||||
<p class="help-block"></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label">{:__('Username')}</label>
|
||||
<div class="controls">
|
||||
<input type="text" id="username" name="username" data-rule="required;username" class="form-control" placeholder="{:__('Username must be 3 to 30 characters')}">
|
||||
<p class="help-block"></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label">{:__('Password')}</label>
|
||||
<div class="controls">
|
||||
<input type="password" id="password" name="password" data-rule="required;password" class="form-control" placeholder="{:__('Password must be 6 to 30 characters')}">
|
||||
<p class="help-block"></p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="control-label">{:__('Mobile')}</label>
|
||||
<div class="controls">
|
||||
<input type="text" id="mobile" name="mobile" data-rule="required;mobile" class="form-control" placeholder="{:__('Mobile')}">
|
||||
<p class="help-block"></p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--@CaptchaBegin-->
|
||||
{if $captchaType}
|
||||
<div class="form-group">
|
||||
<label class="control-label">{:__('Captcha')}</label>
|
||||
<div class="controls">
|
||||
<div class="input-group">
|
||||
{include file="common/captcha" event="register" type="$captchaType" /}
|
||||
</div>
|
||||
<p class="help-block"></p>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
<!--@CaptchaEnd-->
|
||||
|
||||
<div class="form-group">
|
||||
<button type="submit" class="btn btn-primary btn-lg btn-block">{:__('Sign up')}</button>
|
||||
<a href="{:url('user/login')}?url={$url|urlencode|htmlentities}" class="btn btn-default btn-lg btn-block mt-3 no-border">{:__('Already have an account? Sign in')}</a>
|
||||
</div>
|
||||
<!--@IndexRegisterFormEnd-->
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
Reference in New Issue
Block a user