Commit b6e0c5e1 authored by xishifeng's avatar xishifeng

yeji zancun 032701

parent bf7c9cbb
......@@ -10,6 +10,25 @@ use think\Response;
class Index
{
public function achieve_fork()
{
return view('index/achieve_fork');
}
public function achieve_ywy()
{
return view('index/achieve_ywy');
}
public function achieve_md()
{
return view('index/achieve_md');
}
public function achieve_ac()
{
return view('index/achieve_ac');
}
public function weekly()
{
......
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>同联商业</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0" />
<meta name="Keywords" content="" />
<meta name="Description" content="" />
</head>
<body style="display: none;">
<div id="app">
<header id="header">
<a class="ps-back" href="javascript:(history.length>1?history.go(-1):window.location='/');" id="back_btn"></a>
<h2 id="title">本周业绩</h2>
</header>
<div class="header_seat"></div>
<footer class="oh" @touchstart="testStart" @touchend="testEnd">
<div class="oh fl">
<a class="fl" :href="linkAchieveYwy">个人业绩</a>
</div>
<div class="oh fl">
<a class="fl" :href="linkAchieveMd">门店业绩</a>
</div>
</footer>
</div>
<script src="/app/js/libs/require.min.js" data-js="/app/js/achieve_fork.js" data-main="/app/js/main" defer async="true"></script>
</body>
</html>
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>福居好房</title>
<meta http-equiv="X-UA-Compatible" content="IE=10" />
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0" />
<meta name="Keywords" content="" />
<meta name="Description" content="" />
</head>
<body style="display: none;">
<div id="app">
<header class="achieve-header dz-achieve-header">
<a class="achieve-header-back" href="javascript:;"></a>
<div class="achieve-header-tab">
<a href="javascript:;" v-for="(item,index) in tabsMain" :class="{active:index == initTabNumMain}" @click="tabMain(index)">{{item.title}}</a>
</div>
<div class="mulu_relate" href="javascript:;"><span id="list_name">全部</span><img src="/app/images/all_ic.png"></div>
</header>
<div class="header_seat"></div>
<div class="achieve-content-ac">
<div class="search-area">
<img src="/app/images/ic_rili-.png" />
<div><input type="date" id="startdateid" v-model="startDate" /></div>
<span></span>
<div><input type="date" id="enddateid" v-model="endDate" /></div>
<button id="searchBtn">搜索</button>
</div>
<ul class="nav-area" v-for="(item,index) in tabsMain" :key="item.title" v-show="index == initTabNumMain">
<li v-for="(item2,index2) in item.data" :key="item2.name" :id="'tab_'+index+'_'+index2" :class="{tab_selected:index2 == item.initTabNumSub}" @click="tabSub(index, index2)">
<span>{{item2.name}}</span>
<span>{{item2.num}}</span>
</li>
</ul>
</div>
<div v-for="(item,index) in tabsMain" :key="item.title" v-show="index == initTabNumMain">
<section v-for='(item2,index2) in item.data' :key="item2.name" v-show="index2 == item.initTabNumSub" :id="'sec_'+index+'_'+index2" class="sec-tab" >
<div>
<ul :id="'content_'+index+'_'+index2" class="sec-tab-ul">
<li v-for='(item3,index3) in item2.dataList'>
<div>
<span>{1}</span>
<span>{2}</span>
</div>
<div>
<span>{3}</span>
<span>{4}</span>
</div>
</li>
</ul>
</div>
<div :id="'loading_pic_'+index+'_'+index2" class="loading_pic">
<img src="/app/images/jz2.gif" />
<p>正在加载...</p>
</div>
<div :id="'no_more_'+index+'_'+index2" class="no_more">没有更多了</div>
<div :id="'mask_ld_'+index+'_'+index2" class="no_more">
<img src="/app/images/ic_wushuju-.png" class="ic_wushuju">
<p>暂无数据...</p>
</div>
</section>
</div>
</div>
<script src="/app/js/libs/require.min.js" data-js="/app/js/achieve_ywy.js" data-main="/app/js/main" defer async="true"></script>
</body>
</html>
\ No newline at end of file
......@@ -4,7 +4,7 @@
<head>
<meta charset="utf-8" />
<title>同联商业</title>
<meta http-equiv="X-UA-Compatible" content="IE=10" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=0" />
<meta name="Keywords" content="" />
<meta name="Description" content="" />
......
......@@ -28,6 +28,10 @@ Route::group('app', [
Route::group('app_broker',[
'index' => [ 'app_broker/index/index', [ 'method' => 'get' ] ],
'achieve_fork' => [ 'app_broker/index/achieve_fork', [ 'method' => 'get' ] ],
'achieve_ywy' => [ 'app_broker/index/achieve_ywy', [ 'method' => 'get' ] ],
'achieve_md' => [ 'app_broker/index/achieve_md', [ 'method' => 'get' ] ],
'achieve_ac' => [ 'app_broker/index/achieve_ac', [ 'method' => 'get' ] ],
'weekly' => [ 'app_broker/index/weekly', [ 'method' => 'get' ] ],
'weekly_my' => [ 'app_broker/index/weekly_my', [ 'method' => 'get' ] ],
'weekly_achieve_dz' => [ 'app_broker/index/weekly_achieve_dz', [ 'method' => 'get' ] ],
......
@charset "utf-8";
footer{
position: fixed;
bottom: 0;
left: 0;
width: 7.5rem;
height: 1.5rem;
border-top: 1px solid #ccc;
box-sizing: border-box;
padding-left: 1rem;
}
footer>div{
height: 1.5rem;
width: 2.75rem;
box-sizing: border-box;
padding: .15rem 0 0 .77rem;
}
footer>div>a{
width: 1.2rem;
height: 1.2rem;
border-radius: 50%;
border: 1px solid #ccc;
line-height: 1.2rem;
text-align: center;
}
body{
display: none;
background-color: white!important;
}
header+.header_seat {
height: 0.88rem;
}
.achieve-header{
box-sizing: border-box;
position: fixed;
top: 0;
right: 0;
left: 0;
width: 100%;
height: .88rem;
background: #fff;
z-index: 100;
}
.achieve-header.dz-achieve-header{
border-bottom: none!important;
}
.achieve-header>.achieve-header-back{
position: absolute;
top: 0;
bottom: 0;
left: 0;
display: block;
width: .88rem;
height: .88rem;
background: url(../images/ic_back_black@2x.png) no-repeat 0.3rem center;
background-size: .36rem .28rem;
}
.achieve-header>.achieve-header-tab{
font-size: .3rem;
overflow: hidden;
width: 2.8rem;
margin: 0 auto;
padding-top: 0.14rem;
color: #333;
}
.achieve-header>.achieve-header-tab>a{
float: left;
width: 1.4rem;
height: .6rem;
line-height: .6rem;
text-align: center;
box-sizing: border-box;
border: 1px solid #ff9419;
color: #ff9419;
}
.achieve-header>.achieve-header-tab>a:nth-of-type(1){
border-radius: .06rem 0 0 .06rem;
}
.achieve-header>.achieve-header-tab>a:nth-of-type(2){
border-radius: 0 .06rem .06rem 0;
}
.achieve-header>.achieve-header-tab>a.active{
color: white;
background-color: #ff9419;
}
/******************************************顶部的全部选择部分******************************************/
header .mulu_relate{
position: absolute;
top: 0;
bottom: 0;
right: 0;
font-size: 0.28rem;
display: block;
padding-right: .3rem;
height: .88rem;
line-height: .88rem;
cursor: pointer;
display: none;
}
.mulu_relate>span{
float: left;
height: 100%;
width: 2rem;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
text-align: right;
}
.dz-achieve-header>.mulu_relate>span{
width: 1.4rem;
}
.mulu_relate>img{
float: left;
width: 0.4rem;
padding-top: 0.31rem;
padding-left: 0.1rem;
}
/******************************案场业绩时的导航栏下拉框***************************/
#mask_list_select{
position: fixed;
z-index: 101;
left: 0;
top: 0;
width: 100%;
height: 100%;
background-color: rgba(0,0,0,.2);
cursor: pointer;
display: none;
}
div.pop_box {
position: absolute;
right: 0.25rem;
top: 0.7rem;
max-width: 4.3rem;
z-index: 0;
}
div.tri_angle2 {
width: 0;
height: 0;
margin-left: 3.2rem;
border-left: 0.14rem solid transparent;
border-right: 0.14rem solid transparent;
border-bottom: 0.2rem solid white;
position: relative;
z-index: 1;
}
div.pop_box>ul {
background-color: white;
border-radius: 0.14rem;
box-shadow: 0 0 0.2rem rgba(0,0,0,.2);
position: relative;
z-index: 0;
max-height: 8rem;
overflow-y: scroll;
}
div.pop_box>ul>li {
font-size: 0.28rem;
height: 0.8rem;
line-height: 0.8rem;
color: #333;
padding: 0 0.4rem;
box-sizing: border-box;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
cursor: pointer;
}
div.pop_box>ul>li+li{
border-top: 1px solid #e6e6e6;
}
.achieve-content-ac{
overflow: hidden;
background-color: white;
/*display: none;*/
}
.sec-tab{
background-color: white;
}
.achieve-content-ac>.search-area{
line-height: .5rem;
height: .5rem;
color: #333;
font-size: .28rem;
padding: 0.4rem 0 0.4rem 0.5rem;
/*border-top: 1px solid #CCC;*/
border-bottom: 1px solid #F2F2F2;
overflow: hidden;
}
.achieve-content-ac>.search-area>div{
float: left;
width: 2.1rem;
height: .5rem;
border-radius: .05rem;
border: 1px solid #333;
margin-right: .16rem;
box-sizing: border-box;
font-size: 0.24rem;
overflow: hidden;
padding-left: 0.2rem;
}
.achieve-content-ac>.search-area>img{
width: .4rem;
margin-right: .16rem;
float: left;
padding-top: .05rem;
}
.achieve-content-ac>.search-area>div>input{
width: 2rem;
height: .47rem;
box-sizing: border-box;
font-size: 0.22rem;
float: left;
/*text-align: center;*/
}
.achieve-content-ac>.search-area>div>input::-webkit-clear-button{
display: none;
}
.achieve-content-ac>.search-area>div>input::-webkit-inner-spin-button{
display: none;
}
/*.achieve-content-ac>.search-area>div>input::-webkit-calendar-picker-indicator{
visibility: hidden;
}*/
.achieve-content-ac>.search-area>span{
margin-right: .16rem;
float: left;
}
.achieve-content-ac>.search-area>button{
background-color: #ff9419;
width: 1rem;
height: .5rem;
border-radius: .05rem;
color: white;
float: left;
}
.achieve-content-ac>.nav-area{
overflow: hidden;
padding: 0 .08rem;
border-bottom: 1px solid #F2F2F2;
}
.achieve-content-ac>.nav-area>li{
float: left;
font-size: .24rem;
color: #333;
width: 25%;
height: 1.3rem;
box-sizing: border-box;
position: relative;
overflow: hidden;
cursor: pointer;
}
.achieve-content-ac>.nav-area>li.tab_selected{
color: #ff9419;
}
.achieve-content-ac>.nav-area>li.tab_selected::after{
content: '';
width: 0.74rem;
height: 2px;
position: absolute;
bottom: 0;
left: 50%;
margin-left: -0.37rem;
background-color: #FF9419;
}
.achieve-content-ac>.nav-area>li>span{
float: left;
width: 100%;
text-align: center;
}
.achieve-content-ac>.nav-area>li>span:nth-of-type(1){
padding-top: 0.26rem;
}
.achieve-content-ac>.nav-area>li>span:nth-of-type(2){
padding-top: 0.16rem;
}
.sec-tab:nth-of-type(n+2){
display: none;
}
.sec-tab-ul{
padding: 0 0.3rem;
font-size: 0.3rem;
}
.sec-tab-ul>li{
border-bottom: 1px solid #f2f2f2;
min-height: 1.5rem;
overflow: hidden;
box-sizing: border-box;
padding-top: 0.26rem;
cursor: pointer;
}
.sec-tab-ul>li>div{
float: left;
overflow: hidden;
}
.sec-tab-ul>li>div:nth-of-type(1){
float: left;
width: 40%;
}
.sec-tab-ul>li>div:nth-of-type(2){
float: left;
text-align: right;
width: 60%;
}
.sec-tab-ul>li>div>span{
float: left;
width: 100%;
}
.sec-tab-ul>li>div>span:nth-of-type(1){
color: #333;
}
.sec-tab-ul>li>div>span:nth-of-type(2){
padding-top: 0.1rem;
color: #999;
}
.sec-tab-ul>li>div:nth-of-type(2)>span:nth-of-type(2){
font-size: 0.24rem;
}
@charset "utf-8";
\ No newline at end of file
'use strict';
require(['vue', 'css!style/achieve_fork.css', 'jquery0325', 'common'],function(Vue){
var _token = getUrlParam('token');
var vm = new Vue({
el: '#app',
data: {
testBtn: null,
linkAchieveYwy: 'achieve_ywy',
linkAchieveMd: 'achieve_md'
},
created: function() {
var _this = this;
document.body.style.display = 'block';
if(_token !== null) {
h5PageC(_token, function(data) {
_this.loadMain();
});
} else {
_this.loadMain();
}
},
methods: {
testStart: function(){
var _this = this;
clearInterval(_this.testBtn);//再次清空定时器,防止重复注册定时器
_this.testBtn=setTimeout(function(){
require(['vconsole'],function(VConsole){
var vConsole = new VConsole();
});
},7000);
},
testEnd: function(){
var _this = this;
clearInterval(_this.testBtn);
},
loadMain: function(){
}
}
});
});
'use strict';
require(['vue', 'css!style/achieve_tonglian_ac.css', 'jquery0325', 'common'], function(Vue) {
var _token = localStorage.getItem('token');
var vm = new Vue({
el: '#app',
data: {
testBtn: null,
startDate: '',
endDate: '',
tabsMain: [{
'title': '经纪人',
'initTabNumSub': 0,
'data': [{
'name': '约带看',
'num': 23,
'dataList': []
}, {
'name': '进场',
'num': 23,
'dataList': []
}, {
'name': '收款',
'num': 23,
'dataList': []
}, {
'name': '成交报告',
'num': 23,
'dataList': []
}]
}, {
'title': '案场',
'initTabNumSub': 0,
'data': [{
'name': '约带看',
'num': 28,
'dataList': []
}, {
'name': '进场',
'num': 21,
'dataList': []
}, {
'name': '收款',
'num': 29,
'dataList': []
}, {
'name': '成交报告',
'num': 5,
'dataList': []
}]
}],
initTabNumMain: 0,
userid: ''
},
created: function() {
var _this = this;
document.body.style.display = 'block';
_this.loadMain();
},
methods: {
testStart: function() {
var _this = this;
clearInterval(_this.testBtn); //再次清空定时器,防止重复注册定时器
_this.testBtn = setTimeout(function() {
require(['vconsole'], function(VConsole) {
var vConsole = new VConsole();
});
}, 7000);
},
testEnd: function() {
var _this = this;
clearInterval(_this.testBtn);
},
loadMain: function() {
var _this = this;
_this.userid = localStorage.getItem('id');
_this.initTime(function(start_date, end_date) {
_this.startDate = start_date;
_this.endDate = end_date;
_this.ajaxMainNum();
});
},
tabMain: function(index) {
this.initTabNumMain = index;
},
tabSub: function(index, index2) {
Vue.set(vm.tabsMain[index], 'initTabNumSub', index2);
},
initTime: function(callback) {
//获取缓存里的时间
var _this = this;
var _session_startdate = sessionStorage.getItem('achieve_search_start_date'),
_session_enddate = sessionStorage.getItem('achieve_search_end_date');
if(_session_startdate && _session_enddate) {
//当缓存里有时间时,用缓存里的时间
callback(_session_startdate, _session_enddate);
} else {
//获取当前时间
var _currentDate = new Date(),
_year = _currentDate.getFullYear(),
_moon = dealDate(_currentDate.getMonth() + 1),
_end_day_temp = _currentDate.getDate(),
_end_day = dealDate(_end_day_temp),
_start_day = _end_day_temp < 7 ? '01' : dealDate(_end_day_temp - 6),
_enddate = _year + '-' + _moon + '-' + _end_day,
_startdate = _year + '-' + _moon + '-' + _start_day;
callback(_startdate, _enddate);
}
},
ajaxMainNum: function() {
var _this = this;
$.ajax({
type: 'POST',
url: ServerHostTempC + '/broker/agentPerformanceBySearch',
data: {
'start_time': _this.startDate,
'end_time': _this.endDate,
'agent_id': _this.userid,
'is_case': _this.initTabNumSub + 1
},
timeout: 30000,
dataType: 'json',
beforeSend: function() {},
success: function(_data) {
if(typeof _data === 'object') {
if(_data['code'] == '200') {
} else {
layerTipsX(_data['msg']);
}
} else {
layerTipsX('数据错误');
};
},
error: function() {
layerTipsX('enter error');
},
complete: function(xhr, textStatus) {
if(textStatus === 'timeout') {
//处理超时的逻辑
layerTipsX('请求超时,请重试');
};
}
});
},
ajaxUl: function(startdate, enddate, status, page, fn) {
status = Number(status); //强制转换为数字类型,避免出错
$.ajax({
type: 'POST',
url: ServerHostTempC + '/broker/orderNoList',
data: {
'agent_id': vm.userid,
'start_time ': vm.startDate,
'end_time': vm.endDate,
'is_case': 1,
'type': 1
},
timeout: 30000,
dataType: 'json',
beforeSend: function() {},
success: function(_data) {
if(typeof _data === 'object') {
if(_data['code'] == '200') {
} else {
layerTipsX(_data['msg']);
}
} else {
layerTipsX('数据错误');
};
},
error: function() {
layerTipsX('enter error');
},
complete: function(xhr, textStatus) {
if(textStatus === 'timeout') {
//处理超时的逻辑
layerTipsX('请求超时,请重试');
};
}
});
ajaxObj = $.ajax({
type: "post",
url: ServerHost + "/agents/shop_staff_state_down",
data: {
'startdate': startdate,
'enddate': enddate,
"token": _token,
"user_id": _ywy_id,
"state": status,
"page": page
},
timeout: 10000,
cache: false,
dataType: "json",
beforeSend: function() {
loadItem["sta_" + status].show();
noMoreItem["sta_" + status].hide();
noMoreItem_ld["sta_" + status].hide();
},
success: function(data) {
if(typeof data === 'object') {
if(data.state !== 1) {
alert(data.msg);
return false;
}
if(data.data.length > 0) {
stopstatus["sta_" + status] = true;
pageInit["sta_" + status]++;
var _html = "";
$.each(data.data, function(i, item) {
var _htmlTemp = '<li data-id="{0}"><div><span>{1}</span><span>{2}</span></div><div><span>{3}</span><span>{4}</span></div></li>';
_html += _htmlTemp.stringFormatObj({
'0': item.apply.id,
'1': item.apply.customer,
'2': item.apply.phpone,
'3': item.apply.title,
'4': item.apply.created
});
});
htmlUl["sta_" + status].append(_html);
loadItem["sta_" + status].hide();
if(data.data.length < 10) {
noMoreItem["sta_" + status].show();
stopstatus["sta_" + status] = false;
};
if(fn) {
fn(startdate, enddate); //下拉加载事件
};
} else {
loadItem["sta_" + status].hide();
noMoreItem["sta_" + status].hide();
noMoreItem_ld["sta_" + status].show();
stopstatus["sta_" + status] = false;
}
}
},
error: function() {
ajaxObj.abort();
console.warn("请求错误");
},
complete: function(xhr, textStatus) {
if(textStatus === "timeout") {
//处理超时的逻辑
alert("请求超时");
ajaxObj.abort();
//xhr.abort();//超时之后取消此次请求
return false;
}
}
});
}
}
});
});
\ No newline at end of file
......@@ -65,7 +65,6 @@ require(['vue', 'css!style/customerinfo_sub_page.css', 'css!style/customer_gj.cs
var _this = this;
clearInterval(_this.testBtn);
},
loadMain: function() {
var _this = this;
_this.userid = localStorage.getItem('id');
......
......@@ -24,7 +24,7 @@ require.config({
'exports': 'Vue'
},
'common': {
'deps': ['jquery0325','layer'],
'deps': ['jquery0325'],
'exports': 'common'
}
},
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment