Commit 93be1855 authored by clone's avatar clone

Merge branch 'test-hujun1.15' into test

# Conflicts: # application/api/controller/Member.php
parents 59e7055a 259b29ea
......@@ -33,5 +33,23 @@
<arguments>1.0-name-matches-false-false-node_modules</arguments>
</matcher>
</filter>
<filter>
<id>1521081255881</id>
<name></name>
<type>26</type>
<matcher>
<id>org.eclipse.ui.ide.multiFilter</id>
<arguments>1.0-name-matches-false-false-node_modules</arguments>
</matcher>
</filter>
<filter>
<id>1522052779116</id>
<name></name>
<type>26</type>
<matcher>
<id>org.eclipse.ui.ide.multiFilter</id>
<arguments>1.0-name-matches-false-false-node_modules</arguments>
</matcher>
</filter>
</filteredResources>
</projectDescription>
......@@ -2,6 +2,8 @@
namespace app\api\controller;
use app\api\untils\GeTuiUntils;
use app\model\AAgents;
use think\Request;
use app\api\extend\Basic;
use app\api\untils\MessageUntils;
......@@ -21,7 +23,8 @@ class Member extends Basic
/**
* 用户登陆
*
* @return type
* @return \think\Response
* @throws \think\exception\DbException
*/
public function login() {
......@@ -68,7 +71,7 @@ class Member extends Basic
/**
* 退出登录
*
* @return type
* @return \think\Response
*/
public function logout() {
$id = $this->userId ? $this->userId : $this->params['id'];
......@@ -91,42 +94,47 @@ class Member extends Basic
/**
* 发送短信
* @param Request $this->request
* @return type
*/
/**
*
* @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function sendSms() {
$data['data'] = array();
$data['data'] = [];
$data['status'] = 101;
if ($this->request->param('phone')) {
$phone = $this->request->param('phone');
if (empty($this->params['phone'])) {
$data['msg'] = '手机号码为空';
return $this->response($data['status'], '手机号码为空', $data['data']);
}
if (!check_phone($this->params['phone'])) {
return $this->response($data['status'], '手机号码错误', $data['data']);
}
if (check_phone($phone)) {
$noteLog = new NoteLog();
$send_time = $noteLog->field('send_time')->where('phone', $phone)
$send_time = $noteLog->field('send_time')->where('phone', $this->params['phone'])
->where('is_success',1)
->where('send_time','between time',[date('Y-m-d').' 00:00:00',date('Y-m-d').' 23:59:59'])
->select();
$num = count($send_time); //发送数量
if (!empty($send_time[$num-1]) && (time() - strtotime($send_time[$num-1]->send_time) < 58) && $num != 0) {
$data['msg'] = '1分钟内不能再次获取验证码';
} elseif ($num > 7){
$data['msg'] = '短信发送超过上限';
} else {
return $this->response($data['status'], '1分钟内不能再次获取验证码', $data['data']);
}
if ($num > 7){
return $this->response($data['status'], '短信发送超过上限', $data['data']);
}
$result['statusMsg'] = '';
$result['statusCode'] = '';
//注册发送短信验证
if ($this->request->param('type') == 'add') {
$num = $this->user->where([
'user_phone'=> $phone,
'user_phone'=> $this->params['phone'],
'status' => 0
])->count();
......@@ -137,43 +145,22 @@ class Member extends Basic
//忘记密码验证
if ($this->request->param('type') == 'forget') {
$num = $this->user->where('user_phone', $phone)->count();
$num = $this->user->where('user_phone', $this->params['phone'])->count();
if ($num == 0) {
return $this->response($data['status'], '您未注册,请注册');
}
}
$message = new MessageUntils();
$_code = mt_rand(1000, 9999) . '';
$result = $message->sendCCPSMS($phone, array($_code, '5分钟'), 214759);
$noteLog->phone = $phone;
$noteLog->template_msg = '【同联商业】您的验证码为'.$_code.',请于5分钟内正确输入,如非本人操作,请忽略此短信。';
$noteLog->code = $_code;
$noteLog->send_time = date('Y-m-d H:i:s');
$result['statusCode'] = 1;
if ($result['statusCode'] == 1) {
$jwt = new JwtUntils();
$noteLog->is_success = 1;
$jwt_data['phone'] = $phone;
$jwt_data['code'] = $_code;
$data['data']['sms_code'] = $_code;
$data['data']['token'] = $jwt->createToken($jwt_data);
$data['status'] = 200;
$data['msg'] = '发送短信成功';
} else {
$noteLog->is_success = 2;
$message = new MessageUntils();
$result = $message->sendCheckCode($this->params['phone']);
if (empty($result['status'])) {
$data['code'] = 101;
$data['msg'] = '短信发送失败';
}
$noteLog->save();
}
} else {
$data['msg'] = '手机号码错误';
}
} else {
$data['msg'] = '手机号码为空';
$data['data']['token'] = $result['token'];
$data['data']['sms_code'] = $result['sms_code'];
$data['msg'] = '短信发送成功';
}
return $this->response($data['status'], $data['msg'], $data['data']);
}
......@@ -256,7 +243,6 @@ class Member extends Basic
if ($this->params['code'] == $code && $code == '') {
return $this->response(101, '验证码错误');
}
$referrer_id = $this->request->param('referrer_id');
$referrer_source = $this->request->param('referrer_source');
if (!empty($referrer_id)) {
......@@ -296,7 +282,12 @@ class Member extends Basic
}
}
}
$insert_data['referrer_id'] = $referrer_id;
$ge_tui = new GeTuiUntils();
$agent_ = new AAgents();
$agent_data = $agent_->getAgentInfo('device_id',$referrer_id);
$content = '你有新客户【'.$user_nick.'-'.$phone.'】成功注册App';
$ge_tui->public_push_message_for_one($referrer_id,$agent_data['device_id'],'邀请注册',$content);
}
$insert_data['referrer_source'] = $referrer_source;
}
......@@ -404,7 +395,10 @@ class Member extends Basic
/**
* 邀请记录
*
* @return type
* @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function inviteList() {
// $id = $this->params['id'];
......@@ -439,7 +433,10 @@ class Member extends Basic
/**
* 生成邀请二维码
*
* @return type
* @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function qrCode() {
......@@ -468,7 +465,11 @@ class Member extends Basic
/**
* 通过AuthToken获取用户信息编辑用
* @return type
*
* @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function getUserInfo() {
......@@ -488,6 +489,9 @@ class Member extends Basic
* 上传头像
*
* @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function uploadHeadImg() {
$data['status'] = 101;
......
......@@ -123,22 +123,24 @@ class GeTuiUntils {
return $template;
}
/**
* 对某个人推送消息-公共
*
* zhuwei
*
* 2017-11-07 10:31:27
* @author zhuwei
* @param $id
* @param $device_id
* @param $title
* @param $content
* @return array|void
*/
function public_push_message_for_one($id, $device_id, $title, $content)
{
$homeurl = $this->http_host();
$data['agent_id'] =$id;
$home_url = $this->http_host();
$data['agent_id'] = $id;
$data['black_title'] = $title;
$data['content'] = $content;
$data['device_id'] = $device_id;
$data['touchuan'] = json_encode(array(
'title' => $title,
'content' => $content,
......@@ -146,11 +148,10 @@ class GeTuiUntils {
'url' => '',
'name' => $title,
'id' => '69',
'imageUrl' => $homeurl .'notice_android_logo.png'));
'imageUrl' => $home_url .'notice_android_logo.png'));
return $this->push_message_for_one($data);
}
public function http_host()
{
$http_type =
......
......@@ -9,6 +9,8 @@
namespace app\api\untils;
use app\model\NoteLog;
class MessageUntils {
public function __construct() {
......@@ -62,4 +64,62 @@ class MessageUntils {
return $data;
}
/**
* 发送常规验证短信
*
* @param $phone
* @return SimpleXMLElement[]
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function sendCheckCode($phone) {
$result_data['msg'] = '';
$result_data['status'] = true;
$noteLog = new NoteLog();
$send_time = $noteLog->field('send_time')->where('phone', $phone)
->where('is_success',1)
->where('send_time','between time',[date('Y-m-d').' 00:00:00',date('Y-m-d').' 23:59:59'])
->select();
$num = count($send_time); //发送数量
if (!empty($send_time[$num-1]) && (time() - strtotime($send_time[$num-1]->send_time) < 58) && $num != 0) {
$result_data['msg'] = '1分钟内不能再次获取验证码';
$result_data['status'] = false;
return $result_data;
}
if ($num > 7){
$result_data['msg'] = '短信发送超过上限';
$result_data['status'] = false;
return $result_data;
}
$message = new MessageUntils();
$_code = mt_rand(1000, 9999) . '';
$result = $message->sendCCPSMS($phone, array($_code, '5分钟'), 214759);
$noteLog->phone = $phone;
$noteLog->template_msg = '【同联商业】您的验证码为'.$_code.',请于5分钟内正确输入,如非本人操作,请忽略此短信。';
$noteLog->code = $_code;
$noteLog->send_time = date('Y-m-d H:i:s');
$result['statusCode'] = 0;
if ($result['statusCode'] == "000000") {
$jwt = new JwtUntils();
$noteLog->is_success = 1;
$jwt_data['phone'] = $phone;
$jwt_data['code'] = $_code;
$result_data['sms_code'] = $_code;
$result_data['token'] = $jwt->createToken($jwt_data);
$result_data['status'] = true;
} else {
$noteLog->is_success = 2;
$result_data['status'] = false;
}
$noteLog->save();
return $result_data;
}
}
<?php
namespace app\api_broker\consts;
/**
* Created by PhpStorm.
* User : zw
* Date : 2018/3/17
* Time : 9:50
* Intro: 公共常量
*/
class ConfigConst
{
const USER_TYPE_A = "A类(成交意愿较强)";
const USER_TYPE_B = "B类(成交意愿中等)";
const USER_TYPE_C = "C类(成交意愿较弱)";
const INDUSTRY_TYPE_FIRST = "轻餐饮";
const INDUSTRY_TYPE_SECOND = "重餐饮";
const INDUSTRY_TYPE_THIRD = "百货零售";
const INDUSTRY_TYPE_FOURTH = "服装";
const INDUSTRY_TYPE_FIFTH = "亲子教育";
const INDUSTRY_TYPE_SIXTH = "休闲娱乐";
const AREA_REQUIREMENT_FIRST = "30平米内";
const AREA_REQUIREMENT_SECOND = "30-60平米";
const AREA_REQUIREMENT_THIRD = "60-100平米";
const AREA_REQUIREMENT_FOURTH = "100平米以上";
const PRICE_REQUIREMENT_FIRST = "月租金10000元以内";
const PRICE_REQUIREMENT_SECOND = "月租金10000-30000元";
const PRICE_REQUIREMENT_THIRD = "月租金30000元以上";
}
\ No newline at end of file
......@@ -88,6 +88,9 @@ class CellPhone extends Basic
$aliYunPhone->editStatus($phone_x, $phone_a, $phone_b, $record, $time, 0,$result['data']['mappingId'],$setting['is_privacy']); //记录绑定
$this->msg = 'Binding Rong success';
$this->data = ['phone' => $phone_x['phone_x']];
} else{
$this->code = 101;
$this->msg = '操作频繁,请10秒后再操作。';
}
}else {
/*阿里云*/
......@@ -98,7 +101,7 @@ class CellPhone extends Basic
$this->data = ['phone' => $phone_x['phone_x']];
} else {
$this->code = 101;
$this->msg = '绑定失败,请重试!';
$this->msg = '操作频繁,请10秒后再操作。';
}
}
......
......@@ -47,19 +47,21 @@ class Client extends Basic
if (!empty($this->params['user_nick']) || !empty($this->params['id'])) {
if ($this->request->isPost()) {
if (!empty($this->params['id'])) {
//编辑
//编辑
$data['start'] = $this->user->edit($this->params, $this->params['id']);
$name=$table->where('id',$this->params['agents_id'])->value('realname');
//var_dump($name);
$remark='客方修改为 '.$name;
$this->operating_records($this->params['ccr_id'], $type=3, $remark,0,$this->params['id']);
$this->operating_records($this->params['ccr_id'], $type=3, $remark='用户编辑',0,$this->params['id']);
} else {
//添加
$data['start'] = $this->user->edit($this->params);
if ($data['start'] != 1) {
$this->code = 101;
$this->msg = '该客户手机号已存在于系统内';
$this->msg = '该用户已存在';
}
if($data['start']==1){
$data['id']= $this->user->id;
$this->operating_records($this->params['ccr_id'], $type=3, $remark='用户添加',0,$data['id']);
}else{
$data['id']= $this->user->id;
//获取客方数据
......@@ -322,5 +324,34 @@ class Client extends Basic
}
/**
* 邀请记录
*
* @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function inviteList() {
$data['status'] = 101;
$data['data'] = array();
$data['msg'] = '';
if (empty($this->agentId)) {
return $this->response($data['status'],'id is null');
}
$where['status'] = 0;
$where['referrer_id'] = $this->agentId;
$where['referrer_source'] = 20;
$fields = 'user_nick,user_phone,user_pic,create_time';
$data['data'] = $this->user->getUserByWhere($where, $fields);
foreach ($data['data'] as $k=>$v) {
$data['data'][$k]['user_pic'] = HEADERIMGURL.$v['user_pic'];
}
$data['status'] = 200;
return $this->response($data['status'], $data['msg'], $data['data']);
}
}
......@@ -29,13 +29,13 @@ class FollowUp extends Basic
*/
public function report()
{
/* $params = $this->params;
$params = $this->params;
if (!isset($params['report_agent_id']) || !isset($params['report_store_id']) || !isset($params['user_id']) ||
!isset($params['house_ids']) || !isset($params['vehicle']) ) {
return $this->response("101", "请求参数错误");
}*/
}
$params = array(
/* $params = array(
"report_agent_id" => 1,
"report_store_id" => 1,
"user_id" => 1,
......@@ -43,7 +43,7 @@ class FollowUp extends Basic
"vehicle" => 10,
"intro" => "123123123",
"to_see_time" => date("Y-m-d H:i:s", time()),
);
);*/
$result = $this->followUpModel->addFollowUp($params);
if($result["code"] == 200){
return $this->response("200", "request success", ["id",$result["msg"]]);
......
<?php
/**
* Created by PhpStorm.
* User: fuju
* User: fu ju
* Date: 2018/2/6
* Time: 15:03
*/
namespace app\index\controller;
namespace app\api_broker\controller;
use app\index\extend\Basic;
use app\api_broker\extend\Basic;
use app\model\GLabels;
use think\Session;
......@@ -54,6 +53,9 @@ class Label extends Basic
* 获取打电话的标签
*
* @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function getLabelsList() {
$result['code'] = 200;
......@@ -67,4 +69,24 @@ class Label extends Basic
return $this->response($result['code'], $result['msg'], $result['data']);
}
/**
* 楼盘标签
*
* @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function getLabelsShopList() {
$result['code'] = 200;
$result['msg'] = '';
$pageNo = empty($this->params['pageNo']) ? 1 : $this->params['pageNo'];
$pageSize = empty($this->params['pageSize']) ? 10 : $this->params['pageSize'];
$labels = new GLabels();
$field = 'id,name,create_time';
$where['type'] = 0;
$result['data']['list'] = $labels->getList($pageNo, $pageSize, 'id DESC', $field, $where);
$result['data']['total'] = $labels->getTotal($where);
return $this->response($result['code'], $result['msg'], $result['data']);
}
}
\ No newline at end of file
<?php
namespace app\api_broker\controller;
use app\api_broker\extend\Basic;
use app\api_broker\service\MyCenterService;
use think\Exception;
use think\Request;
/**
* Created by PhpStorm.
* User : zw
* Date : 2018/3/12
* Time : 下午1:34
* Intro:
*/
class MyCenter extends Basic{
private $service_;
public function __construct(Request $request = null)
{
parent::__construct($request);
$this->service_ = new MyCenterService();
}
/**
* 我得个人中心
* @return \think\Response
*/
public function center(){
$params = $this->params;
/* $params = array(
"agent_id" => 1
);*/
// if(!isset($params["agent_id"])){
// return $this->response("101","请求参数错误");
// }
if (empty($params['agent_id'])) {
if (empty($this->agentId)) {
return $this->response("101","请求参数错误");
}
$agent_id = $this->agentId;
} else {
$agent_id = $params["agent_id"];
}
try{
$result = $this->service_->center($agent_id);
if($result){
return $this->response("200","request success",$result);
}else{
return $this->response("200","request null");
}
}catch (Exception $exception){
return $this->response("101","request error, msg:" . $exception);
}
}
}
<?php
namespace app\api_broker\controller;
use app\api_broker\extend\Basic;
use app\api_broker\service\PerformanceService;
use Think\Exception;
use think\Request;
/**
* Created by PhpStorm.
* User : zw
* Date : 2018/3/20
* Time : 下午2:06
* Intro: 业绩模块
*/
class Performance extends Basic
{
private $service_;
function __construct(Request $request = null)
{
parent::__construct($request);
$this->service_ = new PerformanceService();
}
/**
* 业绩汇总,
* @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function selectPerformanceByTime()
{
$params = $this->params;
/* $params = array(
"agent_id" => 1,
"type" => 1, //1表示个人业绩排行 2门店 3区域
"end_day" => "",
"start_day" =>""
);*/
if (!isset($params["agent_id"]) || !isset($params["type"])) {
return $this->response("101", "请求参数错误");
}
//默认排序一周
$end_day = isset($params["end_day"]) ? $params["end_day"] : date("Y-m-d", strtotime("-1 day"));
$start_day = isset($params["start_day"]) ? $params["start_day"] : date("Y-m-d", strtotime("-7 day"));
$list = $this->service_->totalAgent($params["agent_id"], $params["type"], $end_day, $start_day);
//dump($list);
if (count($list) > 0) {
$result["list"] = $list;
$result["start_time"] = $start_day;
$result["end_time"] = $end_day;
return $this->response("200", "request success", $result);
}
}
/**
* 个人业绩
* @return \think\Response
*/
public function agentPerformanceBySearch()
{
header('Access-Control-Allow-Origin:*');
$params = $this->params;
/* $params = array(
"agent_id" => 1,
"start_time" => "2018-03-23",
"end_time" => "2018-03-23",
"is_case" => 2,//1经纪人 2案场
"house_id" => 0
);*/
if (!isset($params["agent_id"]) || !isset($params["start_time"]) || !isset($params["end_time"])) {
return $this->response("101", "请求参数错误");
}
$house_id = 0;
if (isset($params["house_id"])) {
$house_id = $params["house_id"];
}
try {
$result = $this->service_->personagePerformance($params["agent_id"], $params["start_time"], $params["end_time"],
$params["is_case"], $house_id);
return $this->response("200", "request success", $result);
} catch (Exception $exception) {
return $this->response("101", "request error,msg:" . $exception);
}
}
/**
* 门店业绩
* @return \think\Response
*/
public function storePerformanceBySearch()
{
$params = $this->params;
/* $params = array(
"agent_id" => 1,
"start_time" => "2018-03-10",
"end_time" => "2018-03-23",
);*/
try {
$result = $this->service_->storePerformance($params["agent_id"], $params["start_time"], $params["end_time"]);
return $this->response("200", "request success", $result);
} catch (Exception $exception) {
return $this->response("101", "request error,msg:" . $exception);
}
}
/**
* 各个状态的订单列表暂不分页,
* @return \think\Response
*/
public function orderNoList()
{
$params = $this->params;
/* $params = array(
"agent_id" => 1,
"start_time" => "2018-03-13",
"end_time" => "2018-03-26",
"is_case" => 2,//1经纪人 2案场
"house_id" => 0,
"type" => 1 // 1带看 2进场 3收款 4成交报告
);*/
if (!isset($params["agent_id"]) || !isset($params["start_time"]) || !isset($params["end_time"]) || !isset($params["type"])) {
return $this->response("101", "请求参数错误");
}
$house_id = 0;
if (isset($params["house_id"])) {
$house_id = $params["house_id"];
}
try {
$result = $this->service_->orderList($params["agent_id"], $params["start_time"], $params["end_time"],
$params["is_case"], $house_id, $params["type"]);
return $this->response("200", "request success", $result);
} catch (Exception $exception) {
return $this->response("101", "request error,msg:" . $exception);
}
}
/**
* 门店或者经纪人业绩排行
* @return \think\Response
*/
public function storeOrAgentSort(){
$params = $this->params;
/* $params = array(
"agent_id" => 1,
"start_time" => "2018-03-10",
"end_time" => "2018-03-23",
);*/
if (!isset($params["agent_id"]) || !isset($params["start_time"]) || !isset($params["end_time"])) {
return $this->response("101", "请求参数错误");
}
try {
$result = $this->service_->storeSortByDistrictId($params["agent_id"], $params["start_time"], $params["end_time"]);
return $this->response("200", "request success", $result);
} catch (Exception $exception) {
return $this->response("101", "request error,msg:" . $exception);
}
}
}
......@@ -13,13 +13,12 @@ use think\Exception;
* User : zw
* Date : 2018/1/24
* Time : 14:24
* Intro:
* Intro: 报备流程
*/
class Report extends Basic
{
private $service_;
private $fulModel;
private $oReportModel;
public function __construct($request = null)
......@@ -82,7 +81,8 @@ class Report extends Basic
* 获取报备列表
* @return \think\Response
*/
public function reportList(){
public function reportList()
{
/* $params = array(
"agent_id" =>1,
"type" => 1,//1表示全部 2表示进场 3 表示收款 4成交报告
......@@ -91,7 +91,7 @@ class Report extends Basic
);*/
$params = $this->params;
if(!isset($params["agent_id"]) || !isset($params["type"])){
if (!isset($params["agent_id"]) || !isset($params["type"])) {
return $this->response("101", "请求参数错误");
}
......@@ -101,16 +101,15 @@ class Report extends Basic
$field = "a.id,a.user_id,a.user_phone,a.user_name,a.predict_see_time,b.id as order_id,b.order_no,b.house_id,b.house_title";
$params["report_agent_id"] = $params["agent_id"];
$result = $this->service_->orderList($field,$params,$pageNo,$pageSize);
$result = $this->service_->orderList($field, $params, $pageNo, $pageSize);
return $this->response("200","request success",$result);
return $this->response("200", "request success", $result);
}
/**
* 新增跟进
* @return \think\Response
......@@ -133,7 +132,7 @@ class Report extends Basic
"explain" =>"1,2",//备注
"explain_img" =>"1,2"//备注图
);*/
header('Access-Control-Allow-Origin:*');
$params = $this->params;
if (!isset($params['report_id']) || !isset($params['agent_id']) || !isset($params['user_type']) ||
!isset($params['industry_type']) || !isset($params['area_requirement']) || !isset($params['price_requirement'])) {
......@@ -159,6 +158,7 @@ class Report extends Basic
"report_id" => 1,// 报备id
"agent_id" => 1,//非必填 经纪人id 没有就获取最新一条跟进记录
);*/
header('Access-Control-Allow-Origin:*');
$params = $this->params;
if (!isset($params["report_id"])) {
return $this->response("101", "请求参数错误");
......@@ -166,7 +166,7 @@ class Report extends Basic
$field_ = "id,report_id,agent_id,user_type,decision_maker,industry_type,area_requirement,price_requirement,province
,city,district,business_area,other_area,explain,explain_img,create_time,update_time";
$order_ = "crate_time desc";
$order_ = "create_time desc";
$where_ = [];
$where_["report_id"] = $params["report_id"];
......
......@@ -6,6 +6,7 @@ use app\api_broker\extend\Basic;
use app\model\AttentionModel;
use app\model\GHouses;
use app\model\GHousesImgs;
use app\model\Regions;
/**
* Created by PhpStorm.
......@@ -29,14 +30,19 @@ class Shop extends Basic
$this->attentionModel = new AttentionModel();
}
/**查询商品列表 b c端公用
/**
* 查询商品列表 b c端公用
* @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function getShopList()
{
/* $params = array(
"site_area" => 1, //来源 1c首页 2c搜索 3b首页 4b搜索
/*$params = array(
"site_area" => 4, //来源 1c首页 2c搜索 3b首页 4b搜索
"title" => "vv", //1,2 external_title ,3,4internal_title
"house_id" => 1,
"is_carefully_chosen" => 0, //精选商铺--0否1是
"shop_type" => 0, //商铺类型(0商场,1街铺)
"disc" => "黄浦区",
......@@ -46,6 +52,7 @@ class Shop extends Basic
"rent_price_start" => 1000,//租金 rent_price
"rent_price_end" => 10000,//租金
"shop_sign" => "临近地铁,临近地铁2",
"agent_id" => 630, //添加经纪人id
"pageNo" => 1,
"pageSize" => 15
);*/
......@@ -76,6 +83,9 @@ class Shop extends Basic
} else if (isset($params['title'])) {
$conditions['internal_title'] = array( "like", "%" . trim($params['title']) . "%" );
}
if(isset($params['house_id'])){
$conditions['id'] = array( "eq", $params['house_id'] );
}
$order_ = "";
$spTagArr = array();
switch ($params['site_area']) {
......@@ -100,6 +110,10 @@ class Shop extends Basic
$conditions['shop_type'] = array( "eq", $params['shop_type'] );
}
if(isset($params['agent_id'])){
$conditions['upload_id'] = array( "eq", $params['agent_id'] );
}
$area_start = isset($params['shop_area_start']) ? $params['shop_area_start'] : -1;
$area_end = isset($params['shop_area_end']) ? $params['shop_area_end'] : -1;
if ($area_start >= 0 && $area_end >= 0) { //面积
......@@ -133,13 +147,15 @@ class Shop extends Basic
default:
$this->response("101", "请求数据异常");
}
if (!empty($conditions)) {
if (!empty($conditions) ) {
$conditions['status'] = array( 'eq', 1 ); //只显示上架
if ($params['site_area'] == 1 || $params['site_area'] == 2)
$conditions['is_show'] = array( 'eq', 0 ); //c端只显示可显示的楼盘
}
if( isset($conditions['upload_id'])){
unset($conditions['status']);
}
$result = $this->gHousesModel->getHousesList($pageNo, $pageSize, $order_, $field, $conditions, $spTagArr);
//获取图片信息
foreach ($result as $key => $val) {
......@@ -157,17 +173,21 @@ class Shop extends Basic
return $this->response("200", 'request success', $result);
}
/**
* 楼盘详情
* @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function getShopDetail()
{
/* $params = array(
"id" => 1,
"id" => 5,
"site_area" => 1, //1.c端 3.b端
"user_id" => 12 //if c端 用户登录后传入user_id
"user_id" => 2 //if c端 用户登录后传入user_id
);*/
$params = $this->params;
......@@ -192,7 +212,7 @@ class Shop extends Basic
a.industry_type,a.shop_area_start,a.shop_area_end,a.shop_type,a.residue_num,a.shop_sign,a.is_carefully_chosen,a.rent_type,
a.rent_price,a.management_fee,a.slotting_fee,a.total,a.market_area,a.is_has_gas,a.file_path,a.longitude,a.latitude,
b.enter_num,b.internal_item_advantage as item_advantage,b.sign_rule,b.do_business_date, b.opening_date,b.traffic,
b.auditorium,b.tiny_brochure_url,b.start_business_date";
b.auditorium,b.tiny_brochure_url,b.start_business_date,a.upload_id";
}
......@@ -219,11 +239,151 @@ class Shop extends Basic
$attention["is_del"] = array( "eq", 0 );
$attResult = $this->attentionModel->getAttentionByUserIdAndHouseId($attention);
if (count($attResult) > 0)
$result ["attention"] = $attResult["id"];
$result ["attention"] = $attResult[0]["id"];
}
return $this->response("200", 'request success', $result);
}
/**
* 新增和编辑商铺
*
* @return \think\Response
* @throws \Exception
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
* @throws \think\exception\PDOException
*/
public function edit() {
$result['code'] = 200;
$result['msg'] = '';
$result['data'] = [];
if ($this->request->isPost()) {
$this->gHousesModel->startTrans();
$this->params['userId'] = $this->agentId;
$house_id = $this->gHousesModel->app_add($this->params); //添加或编辑商铺
if ($house_id) {
$this->gHousesModel->commit();
$result['data']['house_id'] = $house_id;
$result['data']['internal_title'] = $this->params['internal_title'];
} else {
$this->gHousesModel->rollback();
$data['code'] = 101;
$data['msg'] = 'Add houses failure';
}
} else {
if (empty($this->params['id'])) {
$result['code'] = 101;
$result['msg'] = 'Id is null';
} else {
//获取商铺详情
$result['data'] = $this->gHousesModel->getHouseById($this->params['id']);
}
}
return $this->response($result['code'], $result['msg'], $result['data']);;
}
/**
* 上传商铺图片
*
* @return \think\Response
*/
public function uploadHouseFile() {
$data['status'] = 101;
$data['msg'] = '';
$data['data'] = '';
$file = request()->file('file');
if($file){
$path = ROOT_PATH . 'public' . DS . 'resource'. DS . 'lib'. DS .'Attachments'. DS .'images';
$info = $file->validate(['size'=>1024000,'ext'=>'jpg,png'])->move($path);
if($info){
$img_path = $info->getSaveName(); //生成的图片路径
$data['img_type'] = $this->params['img_type'];
$data['img_name'] = $img_path;
$img = new GHousesImgs();
$img->addHouseImg($data,$this->params['house_id']);
$data['status'] = 200;
$data['msg'] = '上传成功';
$data['data'] = [
'file_name' => CK_IMG_URL .'images'. DS . $img_path,
];
}else{
// 上传失败获取错误信息
$data['msg'] = $file->getError();
}
} else {
$data['msg'] = '没有该文件';
}
return $this->response($data['status'], $data['msg'], $data['data']);
}
/**
* 删除图片
*
* @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function delHouseFile() {
$data['status'] = 101;
$data['msg'] = '';
$data['data'] = '';
if(empty($this->params['save_path']) || empty($this->params['house_id'])){
return $this->response($data['status'], 'Save_path or id house_id is null', $data['data']);
}
$img = new GHousesImgs();
$id = $img->getHouseImagesInfo('id',[
'house_id' => $this->params['house_id'],
'img_name' => $this->params['save_path'],
'img_status' => 0
]);
if (empty($id['id'])) {
$data['msg'] = '没有该文件';
} else {
$path = ROOT_PATH . 'public' . DS . 'resource'. DS . 'lib'. DS .'Attachments'. DS .'Images/';
@unlink($path.$this->params['save_path']);
$img->editData(['img_status'=>1],$id['id'], 'id');
$data['status'] = 200;
}
return $this->response($data['status'], $data['msg'], $data['data']);
}
/**
* 获取省市区数据
*
* @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function getAddress() {
$regions = new Regions();
$data = $regions->getRegionsCity();
return $this->response(200, '', $data);
}
/**
* 获取省市区
*
* @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function getRegions() {
$regions = new Regions();
$data = $regions->getRegions($this->params['code'], $this->params['parent_code']);
return $this->response(200, '', $data);
}
}
<?php
namespace app\api_broker\controller;
use app\api_broker\extend\Basic;
use app\api_broker\service\StatementService;
use app\model\RAgentNote;
use app\model\RAgentReport;
use think\Exception;
use think\Request;
/**
* Created by PhpStorm.
* User : zw
* Date : 2018/3/8
* Time : 上午11:22
* Intro:
*/
class Statement extends Basic
{
private $service_;
public function __construct(Request $request = null)
{
parent::__construct($request);
$this->service_ = new StatementService();
}
public function dayStatement()
{
header('Access-Control-Allow-Origin:*');
$params = $this->params;
/*$params = array(
"agent_id" => 715,
"time_start" => date("Y-m-d", time()),
"time_end" => date("Y-m-d", time()) . " 23:59:59",
);*/
if (!isset($params["agent_id"]) || !isset($params["time_start"]) || !isset($params["time_end"])) {
return $this->response("101", "请求参数错误");
}
try {
$result = $this->service_->selectStatementByAgentId($params["agent_id"], $params["time_start"], $params["time_end"]);
if (count($result) > 0) {
return $this->response("200", "request success", $result);
} else {
return $this->response("200", "request is null");
}
} catch (Exception $exception) {
return $this->response("101", "request is error,msg:" . $exception);
}
}
/**
* 生成日报和周报图片
*
* @return \think\Response
*/
public function weekWorkImg()
{
header('Access-Control-Allow-Origin:*');
if (empty($this->params["agent_id"]) || empty($this->params["img"])) {
return $this->response("101", "参数错误");
}
$img_title = "";
$img = "";
//单图
$base64_image_content = $this->params["img"];
if (preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64_image_content, $array)) {
$img_title = $array[2]; //jpeg
$img = base64_decode(str_replace($array[1], '', $base64_image_content)); //返回文件流
}
$tmp_file = time();
$img_name = md5(uniqid($tmp_file)) . '.' . $img_title;//图片名
$url = 'static/week_work_img/' . $img_name;
$code = 200;
$msg = '';
if (file_put_contents($url, $img)) {
$agent_report = new RAgentReport();
if (empty($this->params['type'])) {
$data['start_date'] = $this->params['start_date'];
$data['end_date'] = $this->params['end_date'];
} else {
$data['start_date'] = $this->params['start_date'];
$data['end_date'] = $this->params['start_date'];
}
$data['agent_id'] = $this->params['agent_id'];
$data['img_url'] = $img_name;
$data['type'] = $this->params['type'];
$data['img_name'] = CURRENT_URL.$url;
$result = $agent_report->editData($data);
} else {
$result = 0;
}
if (!$result) {
$code = 101;
$msg = '生成图片失败';
}
return $this->response($code, $msg, $data['img_name']);
}
/**
* 保存周报日报四个字段
*
* @return \think\Response
* @throws \think\exception\DbException
*/
public function setReportContent() {
header('Access-Control-Allow-Origin:*');
$code = 200;
$msg = '';
$data = [];
$note = new RAgentNote();
if ($this->request->isGet()) {
$data = $note->get(['agent_id'=>$this->agentId]);
} else {
$save_data['agent_id'] = $this->agentId;
$save_data['content'] = $this->params['content'];
if (empty($this->params['id'])) {
$result = $note->editData($save_data);
} else {
$result = $note->editData($save_data, $this->params['id']);
}
if (!$result) {
$code = 101;
$msg = '添加失败';
}
}
return $this->response($code, $msg, $data);
}
/**
* 获取周报或者日报
*
* @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function getWeekOrDay() {
header('Access-Control-Allow-Origin:*');
$code = 200;
$msg = '';
if (empty($this->agentId)) {
return $this->response(101, 'Agent_id is null!');
}
$agent_report = new RAgentReport();
$pageNo = empty($params['pageNo']) ? 1 : $params['pageNo'];
$pageSize = empty($params['pageSize']) ? 15 : $params['pageSize'];
$fields = 'id,create_time,start_date,end_date,img_url';
$where['is_del'] = 0;
$where['agent_id'] = $this->agentId;
if ($this->params['type'] == 1) {
$where['type'] = 1;
} else {
$where['type'] = 0;
}
$data['list'] = $agent_report->getList($pageNo, $pageSize, 'id desc', $fields, $where);
$data['total'] = $agent_report->getTotal($where);
foreach ($data['list'] as $k=>$v) {
$data['list'][$k]['img_url'] = CURRENT_URL.'static/week_work_img/'.$data['list'][$k]['img_url'];
}
return $this->response($code, $msg, $data);
}
}
\ No newline at end of file
<?php
/**
* Created by PhpStorm.
* User: fuju
* Date: 2018/3/23
* Time: 18:06
*/
namespace app\api_broker\controller;
use app\api_broker\extend\Basic;
use app\model\AAgents;
use app\model\SSupervision;
class Supervise extends Basic
{
/**
* 监督执行
*
* @return \think\Response
*/
public function add() {
$supervision = new SSupervision();
if (empty($this->params['id'])) {
return $this->response(101, 'Id is null');
}
$data['id'] = '';
$data['content'] = $this->params['content'];
$data['longitude'] = $this->params['longitude'];
$data['latitude'] = $this->params['latitude'];
$data['address'] = $this->params['address'];
$data['agent_id'] = $this->params['agent_id'];
$data['district_id'] = $this->params['district_id'];
$data['store_id'] = $this->params['store_id'];
$supervision->editData($data, $this->params['id']);
return $this->response(200, '', ['id'=>$this->params['id']]);
}
/**
* 上传监督执行图片
*
* @return \think\Response
*/
public function uploadSuperviseFile() {
$data['status'] = 101;
$data['msg'] = '';
$data['data'] = '';
$file = request()->file('file');
if($file){
$path = ROOT_PATH . 'public' . DS . 'resource'. DS . 'lib'. DS .'Attachments'. DS .'images'.DS.'supervise';
$info = $file->validate(['size'=>1024000,'ext'=>'jpg,png'])->move($path);
if($info){
$img_path = $info->getSaveName(); //生成的图片路径
$data['img_url'] = $img_path;
$supervision = new SSupervision();
$supervision->editData($data);
$data['status'] = 200;
$data['msg'] = '上传成功';
$data['data'] = [
'file_name' => CK_IMG_URL .'images/supervise/' . $img_path,
'id' => $supervision->id
];
}else{
// 上传失败获取错误信息
$data['msg'] = $file->getError();
}
} else {
$data['msg'] = '没有该文件';
}
return $this->response($data['status'], $data['msg'], $data['data']);
}
/**
* 监督执行列表
*
* @return \think\Response
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function getSupervise() {
$pageNo = empty($this->params['pageNo']) ? 1 : $this->params['pageNo'];
$pageSize = empty($this->params['pageSize']) ? 15 : $this->params['pageSize'];
$verify = new AAgents();
$agent_data = $verify->getAgentInfo('level,store_id,district_id', $this->params['agent_id']);
switch ($agent_data['level']) {
case 20 :
$where = 'a.store_id = '.$agent_data['store_id'];break;
case 30 :
$where = 'a.district_id = '.$agent_data['district_id'];break;
case 40 :
$where = 'a.store_id = '.$agent_data['store_id'] . ' or a.district_id = '.$agent_data['district_id'];break;
default :
$where = 'agent_id = '.$this->params['agent_id'];
}
$supervision = new SSupervision();
$fields = 'longitude,latitude,address,content,img_url,b.name,a.create_time';
if (empty($where)) {
return $this->response(101, 'Params is error');
}
$data['list'] = $supervision->getSupervisionList($pageNo, $pageSize, 'a.id desc', $fields, $where);
foreach ($data['list'] as $k=>$v) {
$data['list'][$k]['img_url'] = CK_IMG_URL .'images/supervise/' . $v['img_url'];
}
$data['total'] = $supervision->getSupervisionListTotal($where);
return $this->response(200, '', $data);
}
}
\ No newline at end of file
......@@ -65,48 +65,24 @@ class Basic extends Controller
} elseif (strtoupper($this->request->method()) === "POST") {
$this->params = $this->request->param() != null ? $this->request->param() : null;
}
/*临时验证 start*/
if (isset($this->params['AuthToken']) && $this->params['AuthToken'] != 'null' && !empty($this->params['AuthToken'])) {
$jwt = new JWT();
$this->authToken = $this->params['AuthToken'];
$result = $jwt->decode($this->authToken, config('jwt_key'), array('HS256')); //解码token
if (isset($result->data)) {
$this->timeStamp_ = $result->timeStamp_;
$this->agentPhone = $result->data->phone;
$is = Db::table('agents')->where('phone', $this->agentPhone)->count();
} else {
$is = 0;
}
if ($is == 0) {
echo json_encode(array("code" => "300", "msg" => "用户验证失败,重新登录!", "data" => [], "type" => "json"));
exit;
}
}
$requestPath = $this->request->routeInfo()["rule"][0] . "/" . $this->request->routeInfo()["rule"][1];
if (!in_array(trim($requestPath), $this->filterVerify)) {
$this->tokenVerify();
}
/*临时验证 end*/
/* if (isset($this->params['AuthToken']) && $this->params['AuthToken'] != 'null' && !empty($this->params['AuthToken'])) {
if (isset($this->params['AuthToken']) && $this->params['AuthToken'] != 'null' && !empty($this->params['AuthToken'])) {
$jwt = new \Firebase\JWT\JWT();
$this->authToken = $this->params['AuthToken'];
$result = $jwt->decode($this->authToken, config('jwt_key'), array( 'HS256' )); //解码token
$this->userId = $result->data->id;
$this->phone = $result->data->phone;
$this->userNick = $result->data->userNick;
$this->agentId = $result->data->id;
$this->agentPhone = $result->data->phone;
$this->agentName = $result->data->name;
$this->timeStamp_ = $result->timeStamp_;
}
$requestPath = $this->request->routeInfo()["rule"][0] . "/" . $this->request->routeInfo()["rule"][1];
//过滤掉不需要验证token的接口
if (!in_array(trim($requestPath), $this->filterVerify)) {
$this->tokenVerify();
}*/
//$this->tokenVerify();
}
unset($this->params["AuthToken"]);
}
/**
......@@ -278,15 +254,15 @@ class Basic extends Controller
* @param int $user_id
* @return bool|false|int
*/
public function operating_records($agents_id = 0, $type = '' ,$remark = '',$house_id=0,$user_id=0) {
public function operating_records($agents_id = 0, $type = '', $remark = '', $house_id = 0, $user_id = 0)
{
$records = new GOperatingRecords();
$result = $records->record($agents_id, $type, $remark,$house_id,$user_id);
$result = $records->record($agents_id, $type, $remark, $house_id, $user_id);
return $result;
}
}
<?php
namespace app\api_broker\service;
use app\model\AAgents;
/**
* Created by PhpStorm.
* User : zw
* Date : 2018/3/12
* Time : 下午1:47
* Intro:
*/
class MyCenterService{
private $agentModel;
const USER_LEVEL_FIST = "业务员"; //经纪人
const USER_LEVEL_SECOND = "店长"; //店长
const USER_LEVEL_THIRD = "总监"; //总监
function __construct()
{
$this->agentModel = new AAgents();
}
/**
* 我得个人中心
* @param $agent_id
* @return false|null|\PDOStatement|string|\think\Collection
*/
public function center($agent_id){
$field = "a.id,a.store_id,a.auth_group_id,a.district_id,a.level,a.name,a.phone,a.sex,a.img,a.status,b.store_name,
c.district_name";
$params["agent_id"] = $agent_id;
$result = $this->agentModel->getAgentsInfoByAgentId($field,$params);
if(count($result) <= 0){
return null;
}
$result = $result[0];
$level_name = self::USER_LEVEL_FIST;
if($result["level"] == 20){
$level_name = self::USER_LEVEL_SECOND;
}elseif ($result["level"] == 30 || $result["level"] == 40 ){
$level_name = self::USER_LEVEL_THIRD;
}
$result["level_name"] = $level_name;
$result["sign"] = $result["district_name"].$result["store_name"];
if(!empty($result["img"])){
$result["img"] = AGENTHEADERIMGURL . $result["img"];
}
//todo 需要计算暂时没做。
//$result["money_total"] = 1000;
return $result;
}
}
\ No newline at end of file
This diff is collapsed.
......@@ -2,7 +2,9 @@
namespace app\api_broker\service;
use app\api\untils\GeTuiUntils;
use app\model\GHouses;
use app\model\GHousesToAgents;
use app\model\HouseInfos;
use app\model\OrderModel;
use app\model\OReportModel;
......@@ -50,6 +52,7 @@ class ReportService
/**
* 生成报备和保存订单
*
* @param $agent_id
* @param $agent_name
* @param $store_id
......@@ -61,6 +64,9 @@ class ReportService
* @param $intro
* @param $predict_see_time
* @return int
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function verifyReport($agent_id, $agent_name, $store_id, $user_id, $user_phone, $user_name, $house_ids, $vehicle, $intro, $predict_see_time)
{
......@@ -71,10 +77,18 @@ class ReportService
if ($id > 0) {
$house_arr = explode(",", $house_ids);
$order_arr = [];
$agent = new GHousesToAgents();
$ge_tui = new GeTuiUntils();
foreach ($house_arr as $k => $v) {
//todo 批量插入到数据库
$order_no = $this->createOrderNumber();
array_push($order_arr, $this->orderBin($order_no, $id, $v));
$device_id = $agent->getAgentList($v);
foreach ($device_id as $k => $v) {
$content = "【{$v['store_name']}】店【{$agent_name}】约带看【{$order_arr['house_title']}】商铺";
$ge_tui->public_push_message_for_one($v['id'], $v['device_id'], '报备', $content);
}
}
//todo 保存order表
return $this->orderModel->insertOrderByAll($order_arr);
......@@ -83,25 +97,49 @@ class ReportService
}
public function orderList($field,$params,$pageNo,$pageSize){
/**
* 报备订单列表
* @param $field
* @param $params
* @param $pageNo
* @param $pageSize
* @return false|null|\PDOStatement|string|\think\Collection
*/
public function orderList($field, $params, $pageNo, $pageSize)
{
//todo 获取我报备的我的案场的,如果是店长则获取其下所有的经纪人
$vModel = new VerifyService();
$agentArr = $vModel->getAgentsByAgentId($params["report_agent_id"]);
if ($agentArr) {
$params["report_agent_id"] = $agentArr;
}
$result = $this->oReportModel->selectReportList($field,$params,$pageNo,$pageSize);
$ids_str = "";
if(count($result) > 0){
foreach ($result as $k=>$v){
$result[$k]["user_phone"] = preg_replace('/(\d{3})\d{4}(\d{4})/','$1****$2',$v["user_phone"]);
$caseHouseId = $vModel->getCaseHouseIdByAgentId($params["report_agent_id"]);
$ids = "";
foreach ($caseHouseId as $item) {
$ids .= $item["houses_id"] . ",";
}
$ids = rtrim($ids, ",");
$ids = $ids ? $ids : 0;
$params["house_ids"] = $ids;
$result = $this->oReportModel->selectReportList($field, $params, $pageNo, $pageSize);
$ids_str .= $v["order_id"] .",";
$ids_str = "";
if (count($result) > 0) {
foreach ($result as $k => $v) {
//$result[$k]["user_phone"] = preg_replace('/(\d{3})\d{4}(\d{4})/', '$1****$2', $v["user_phone"]);
$ids_str .= $v["order_id"] . ",";
}
$ids_str = rtrim($ids_str, ",");
$sign_arr = $this->orderSign($ids_str);
foreach ($result as $k=>$v){
foreach ($sign_arr as $value){
if($v["order_id"] == $value["order_id"]){
$result[$k]["sign"] .= $this->signTitle($value["type"]).",";
foreach ($result as $k => $v) {
foreach ($sign_arr as $value) {
if ($v["order_id"] == $value["order_id"]) {
$result[$k]["sign"] .= $this->signTitle($value["type"]) . ",";
}
}
......@@ -112,13 +150,16 @@ class ReportService
return null;
}
public function orderSign($ids_str){
public function orderSign($ids_str)
{
return $this->orderModel->selectSign($ids_str);
}
private function signTitle($type){
switch ($type){
public function signTitle($type)
{
switch ($type) {
case 2:
return "进场";
case 3:
......@@ -180,8 +221,8 @@ class ReportService
private function orderBin($order_no, $f_id, $house_id)
{
$houseModel = new GHouses();
$houseResult = $houseModel->getHouseDetail("id,internal_title",["id"=>$house_id]);
$house_title = count($houseResult) > 0 && isset($houseResult["internal_title"]) ? $houseResult["internal_title"] : null ;
$houseResult = $houseModel->getHouseDetail("id,internal_title", [ "id" => $house_id ]);
$house_title = count($houseResult) > 0 && isset($houseResult["internal_title"]) ? $houseResult["internal_title"] : null;
$param["order_no"] = $order_no;
$param["f_id"] = $f_id;
$param["house_id"] = $house_id;
......
<?php
namespace app\api_broker\service;
use app\model\AAgents;
use app\model\FollowUpLogModel;
use app\model\GHouses;
use app\model\Users;
/**
* Created by PhpStorm.
* User : zw
* Date : 2018/3/8
* Time : 上午11:33
* Intro:
*/
class StatementService
{
private $agentModel;
private $houseModel;
private $userModel;
private $followUpModel;
const USER_LEVEL_FIST = 0; //经纪人
const USER_LEVEL_SECOND = 1; //店长
const USER_LEVEL_THIRD = 2; //总监
function __construct()
{
$this->agentModel = new AAgents();
$this->houseModel = new GHouses();
$this->userModel = new Users();
$this->followUpModel = new FollowUpLogModel();
}
/**
* @param $agent_id
* @param $time_start
* @param $time_end
* @return array|null
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\ModelNotFoundException
* @throws \think\exception\DbException
*/
public function selectStatementByAgentId($agent_id, $time_start, $time_end)
{
$field = "id,store_id,district_id,level,name,phone,sex,status";
$agent_result = $this->agentModel->getAgentById($field, [ "agent_id" => $agent_id ]);
if (count($agent_result) <= 0) {
return null;
}
$user_type = self::USER_LEVEL_FIST; //经纪人权限,0经纪人 1店长 2总监
if ($agent_result[0]["level"] == 20) {
$user_type = self::USER_LEVEL_SECOND;
} elseif ($agent_result[0]["level"] == 30 || $agent_result[0]["level"] == 40) {
$user_type = self::USER_LEVEL_THIRD;
}
$store_id = $agent_result[0]["store_id"];
$district_id = $agent_result[0]["district_id"];
$conditions["agent_id"] = $agent_id;
$conditions['create_time'] = array( 'between', array( $time_start, $time_end ) );
return $this->selectStatement($conditions, $user_type, $store_id, $district_id);
}
private function selectStatement($conditions, $user_type, $store_id, $district_id)
{
$result = $params = [];
switch ($user_type) {
case 0:
//todo
break;
case 1:
//todo 统计门店下的所有经纪人
$params["store_id"] = $store_id;
$params["status"] = 0; //只查询正常状态的经纪人
break;
case 2:
$params["district_id"] = $district_id;
$params["status"] = 0; //只查询正常状态的经纪人
break;
}
$agent_total = 1; //进到这里的经纪人肯定都存在所以默认此经纪人数量为1
$store_list = $district_list = [];
if (!empty($params)) {
$agentsArr = $this->agentModel->getAgentsByStoreId($params);
$agent_total = count($agentsArr);
//dump($agentsArr);
if ($agent_total > 0) {
$agentIds = "";
foreach ($agentsArr as $key => $value) {
$agentIds .= $value["id"] . ",";
if ($user_type == 1) {
$store_list = $this->getStoreList($conditions, $value["id"],$value["name"],$key);
}
}
$agentIds = rtrim($agentIds, ",");
$conditions["agent_id"] = array( "in", $agentIds );
if($user_type == 2){
$district_lists = $this->getDistrictList($conditions,$district_id);
$district_list = $district_lists["district_list"];
$result["last_week_total"] = $district_lists["last_week_total"];
}
}
}
$result["agent_total"] = $agent_total;
$result["house_num"] = $this->houseModel->getAddHouseNumByAgentId($conditions);
$result["user_num"] = $this->userModel->getAddUserNumByAgentId($conditions);
$result["follow_up_num"] = $this->followUpModel->getAddFollowUpNumByAgentId($conditions);
//todo
$result["store_list"] = $store_list;
$result["district_list"] = $district_list;
return $result;
}
private function getStoreList($conditions,$agent_id,$agent_name,$key){
$conditions_ = $conditions;
$conditions_["agent_id"] = $agent_id;
//是门店 统计个人业绩
$store_list[$key]["agent_id"] = $agent_id;
$store_list[$key]["agent_name"] = $agent_name;
$store_list[$key]["house_num"] = $this->houseModel->getAddHouseNumByAgentId($conditions_);
$store_list[$key]["user_num"] = $this->userModel->getAddUserNumByAgentId($conditions_);
$store_list[$key]["follow_up_num"] = $this->followUpModel->getAddFollowUpNumByAgentId($conditions_);
return $store_list;
}
private function getDistrictList($conditions,$district_id){
//根据门店统计本周人数和上周人数
$time_start = $conditions['time_start'];
$last_week_start_time = date("Y-m-d" . " 00:00:00", strtotime("$time_start -1 week"));
$last_week_end_time = date("Y-m-d" . " 23:59:59", strtotime("$time_start -1 day"));
$where_["quit_time"] = array( 'between', array( $last_week_start_time, $last_week_end_time ) );
$where_["district_id"] = $district_id;
$result = $this->agentModel->countAgentNum($where_); //上周人数
$conditions_ = $conditions;
$conditions_["district_id"] = $district_id;//本周人数
$results = $this->agentModel->countAgentNum($conditions_);
//dump($results);
$last_week_total = 0;
foreach ($results as $key=>$value){
$last_week_total += $value["agent_num"];
$paramArr["store_id"] = $value["store_id"];
$paramArr["level"] = array("in",[20,40]);
$agentsResult = $this->agentModel->getAgentsByStoreId($paramArr);
$results[$key]["name"] = count($agentsResult) > 0 ? $agentsResult[0]["name"]: null;
foreach ($result as $i =>$item){
if($value["store_id"] == $item["store_id"]){
$results[$key]["last_week_num"] = $item["agent_num"];
}
}
}
$district_list["last_week_total"] = $last_week_total;
$district_list["district_list"] = $results;
return $district_list;
}
}
\ No newline at end of file
<?php
namespace app\api_broker\service;
use app\model\AAgents;
use app\model\GHousesToAgents;
/**
* Created by PhpStorm.
* User : zw
* Date : 2018/3/23
* Time : 14:11
* Intro:
*/
class VerifyService
{
private $agentModel;
public function __construct()
{
$this->agentModel = new AAgents();
}
/**
* 经纪人身份验证 获取经纪人
* @param $agent_id
* @return null|string
*/
public function getAgentsByAgentId($agent_id)
{
$params["id"] = $agent_id;
$result = $this->agentModel->searchAgentsByKeyword("id,store_id,district_id,level", $params);
if (count($result) > 0) {
$arr_list = [];
switch ($result[0]["level"]) {
case 10:
return $result[0]["id"];
case 20:
$arr_list = $this->agentModel->searchAgentsByKeyword("id", [ "store_id" => $result[0]["store_id"] ]);
break;
case 30:
case 40:
$arr_list = $this->agentModel->searchAgentsByKeyword("id", [ "district_id" => $result[0]["district_id"] ]);
break;
}
$ids = "";
if (count($arr_list) > 0) {
foreach ($arr_list as $item) {
$ids .= $item["id"] . ",";
}
}
$ids = rtrim($ids, ",");
return $ids;
}
return null;
}
public function getCaseHouseIdByAgentId($agent_id)
{
$houseToAgentModel = new GHousesToAgents();
$params["a.agents_id"] = $agent_id;
$params["a.type"] = 1; //案场权限人
$params["a.is_del"] = 0;
$house_arr = $houseToAgentModel->getHouseByAgentId("a.houses_id,b.internal_title", $params);
if (count($house_arr) > 0) {
return $house_arr;
}
return null;
}
}
\ No newline at end of file
......@@ -67,6 +67,8 @@ class Index
return view('index/more_chengjiao');
}
/**
* 楼盘详情
* @return \think\Response
......
<?php
//配置文件
return [
];
\ No newline at end of file
<?php
namespace app\app_broker\controller;
use app\model\AppVersion;
use app\model\HouseImgs;
use app\model\HouseInfos;
use think\Controller;
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 cs_0328()
{
return view('index/cs_0328');
}
public function weekly()
{
return view('index/weekly');
}
public function customerinfo_genjin()
{
return view('index/customerinfo_genjin');
}
public function weekly_my()
{
return view('index/weekly_my');
}
public function weekly_image()
{
return view('index/weekly_image');
}
public function weekly_achieve_dz()
{
return view('index/weekly_achieve_dz');
}
public function weekly_achieve_mdzj()
{
return view('index/weekly_achieve_mdzj');
}
public function daily()
{
return view('index/daily');
}
public function daily_my()
{
return view('index/daily_my');
}
public function daily_achieve_mdzj()
{
return view('index/daily_achieve_mdzj');
}
public function daily_achieve_dz()
{
return view('index/daily_achieve_dz');
}
public function daily_achieve_ywy()
{
return view('index/daily_achieve_ywy');
}
public function __construct()
{
}
public function index()
{
return view('index/index');
}
}
<!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" v-if="userLevel!=10">
<a class="fl" v-if="userLevel==40" :href="linkAchieveQy">区域业绩</a>
<a class="fl" v-else :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=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 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
<!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">
<ul>
<li v-for="(item, index) in dataMain" :key="item.App_version.id" :data-index="index" :data-id="item.App_version.id" :data="item" @click="changeSt($event,item.App_version.version,item.App_version.id, index,)">
<div>{{item.App_version.version+','+item.App_version.id+','+index}}</div>
<div>{{item.App_version.content}}</div>
</li>
</ul>
</div>
<script src="/app/js/libs/require.min.js" data-js="/app/js/cs_0328.js" data-main="/app/js/main" defer async="true"></script>
</body>
</html>
\ No newline at end of file
<!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>-->
<div class="list_a">
<p>
1、属于哪类客户?<span>*必填</span>
</p>
<div id="list_a">
<input name="radio_a" type="radio" id="btn1" value="1" v-model="user_type">
<label for="btn1"></label>
<i class="list_i">A类(成交意愿较强)</i>
<input name="radio_a" type="radio" id="btn2" value="2" v-model="user_type">
<label for="btn2"></label>
<i class="list_i">B类(成交意愿中等)</i>
<input name="radio_a" type="radio" id="btn3" value="3" v-model="user_type">
<label for="btn3"></label>
<i class="list_i">C类(成交意愿较弱)</i>
</div>
</div>
<div class="list_a">
<p>
2、第一决策人是谁?
</p>
<div id="list_b">
<input type="text" placeholder="请输入" name="text" id="content1" v-model.trim="decision_maker">
</div>
</div>
<div class="list_a">
<p>
3、租商铺做什么?<span>*必填</span>
</p>
<div id="list_c">
<input name="radio_c" type="radio" id="btn4" value="1" v-model="industry_type">
<label for="btn4"></label>
<i class="list_i">
轻餐饮
</i>
<input name="radio_c" type="radio" id="btn5" value="2" v-model="industry_type">
<label for="btn5"></label>
<i class="list_i">
重餐饮
</i>
<input name="radio_c" type="radio" id="btn6" value="3" v-model="industry_type">
<label for="btn6"></label>
<i class="list_i">
百货零售
</i>
<input name="radio_c" type="radio" id="btn7" value="4" v-model="industry_type">
<label for="btn7"></label>
<i class="list_i">
服装
</i>
<input name="radio_c" type="radio" id="btn8" value="5" v-model="industry_type">
<label for="btn8"></label>
<i class="list_i">
亲子教育
</i>
<input name="radio_c" type="radio" id="btn9" value="6" v-model="industry_type">
<label for="btn9"></label>
<i class="list_i">
休闲娱乐
</i>
</div>
</div>
<div class="list_a">
<p>
4、对面积的要求?<span>*必填</span>
</p>
<div id="list_d">
<input name="radio_d" type="radio" id="area1" value="1" v-model="area_requirement">
<label for="area1"></label>
<i class="list_i">
30㎡以内
</i>
<input name="radio_d" type="radio" id="area2" value="2" v-model="area_requirement">
<label for="area2"></label>
<i class="list_i">
30-60㎡
</i>
<input name="radio_d" type="radio" id="area3" value="3" v-model="area_requirement">
<label for="area3"></label>
<i class="list_i">
60-100㎡
</i>
<input name="radio_d" type="radio" id="area4" value="4" v-model="area_requirement">
<label for="area4"></label>
<i class="list_i">
100㎡以上
</i>
</div>
</div>
<div class="list_a">
<p>
5、对价格的要求?<span>*必填</span>
</p>
<div id="list_e">
<input name="radio_e" type="radio" id="money1" value="1" v-model="price_requirement">
<label for="money1"></label>
<i class="list_i">
月租金10000以内
</i>
<input name="radio_e" type="radio" id="money2" value="2" v-model="price_requirement">
<label for="money2"></label>
<i class="list_i">
月租金10000-30000元
</i>
<input name="radio_e" type="radio" id="money3" value="3" v-model="price_requirement">
<label for="money3"></label>
<i class="list_i">
月租金30000元以上
</i>
</div>
</div>
<div class="list_a" id="list_aa">
<p>
6、选在哪些区域?
</p>
<div class="area_list">
<select id="area_province" v-model="province" @change="changeProvince($event)">
<option v-for="item in provinceList" :value="item.code" :key="item.code">{{item.name}}</option>
</select>
<img src="/app/images/but_down.png" class="but_down">
<select id="area_city" v-model="city" @change="changeCity($event)">
<option v-for="item in cityList" :value="item.code" :key="item.code">{{item.name}}</option>
</select>
<img src="/app/images/but_down.png" class="but_down">
<select id="area_area" v-model="district">
<option v-for="item in districtList" :value="item.code" :key="item.code">{{item.fullName}}</option>
</select>
<img src="/app/images/but_down.png" class="but_down">
<input id="business_area" type="text" v-model="business_area" placeholder="请输入商圈信息" />
<textarea placeholder="请输入其他信息" name="content" id="content_area" v-model.trim="other_area"></textarea>
</div>
</div>
<div class="list_a">
<p @touchstart="testStart" @touchend="testEnd">
7、补充说明
</p>
<textarea placeholder="请输入其他信息" name="content" id="content_area1" v-model.trim="explain"></textarea>
<div class="pic">
图片上传
</div>
<div class="upload-area">
<imgshow-component v-for="item in imgShowList" v-bind:data="item" :key="item.name" v-on:deleteimg="deleteimgMain"></imgshow-component>
<div class="add-pic" id="add_pic" v-show="!uploadImgFlag">
<input type="file" name="img" id="input_img" @change="uploadImg($event)">
</div>
<div class="loading_new" id="loading_animate" v-show="uploadImgFlag">
<div class="loader4"></div>
<span id="loading_msg">上传中...</span>
</div>
</div>
</div>
<div class="customerinfo-submit-btn hide-btn">
<a href="javascript:;" id="btn_save_new" v-show="!submitFlag" @click.prevent.stop="save">提交</a>
<a href="javascript:;" id="btn_save_temp_new" v-show="submitFlag">正在保存...</a>
</div>
</div>
<script src="/app/js/libs/require.min.js" data-js="/app/js/customer_gj.js" data-main="/app/js/main" defer async="true"></script>
<script type="text/x-template" id="imgShow1">
<div class="sc_img">
<img :src="data.name" class="preview">
<img class="del_img" :src="deleteImgPrefix" v-model="deleteimg" @click="deleteimg">
</div>
</script>
</body>
</html>
\ No newline at end of file
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<title>福居好房</title>
<meta http-equiv="X-UA-Compatible" content="IE=10" />
<meta name="viewport" content="initial-scale=1, maximum-scale=1, minimum-scale=1">
<!--页面 禁止缩放 user-scalable=0 -->
<meta http-equiv="Cache-Control" content="no-siteapp" />
<!-- 禁止广告 -->
<meta name="Keywords" content="" />
<!--关键词-->
<meta name="Description" content="" />
<link href="css/common.css" rel="stylesheet">
<!--<link href="css/spl.css" rel="stylesheet">-->
<link href="css/weely.css" rel="stylesheet">
</head>
<body>
<header id="header">
<a class="ps-back" href="javascript:(history.length>1?history.go(-1):window.location='/');"></a>
<h2 id="title">业绩日报</h2>
<a class="word-link" href="javascript:;">我的日报</a>
</header>
<div class="header_seat"></div>
<div class="weekly_time liudan">
<ul>
<li>
<span class="weekly_span">
</span>
<p class="weekly_p">
请选择你要汇报的楼盘(可多选)
</p>
</li>
</ul>
</div>
<div class="weekly_lp liudan">
<ul id="uc_03" class="ui-choose choose-type-right" multiple="multiple">
</ul>
</div>
<button class="weekly_btn">确认</button>
<!--编辑器输出1-->
<script src="js/jquery.js" charset="utf-8"></script>
<script src="js/commonsrc.js" charset="utf-8"></script>
<script type="text/javascript" src="js/layer.js" ></script>
<script src="js/common.js" charset="utf-8"></script>
<script src="js/ui-choose.js" charset="utf-8"></script>
<script>
$(function() {
//实例化
$('.ui-choose').ui_choose();
// uc_03 ul 多选
var uc_03 = $('#uc_03').data('ui-choose');
uc_03.click = function(index, item) {
console.log('click', index);
};
uc_03.change = function(index, item) {
console.log('change', index);
};
var _appToken = getUrlParam("token");
if(_appToken !== null) {
$(document).on('click', '.ps-back', function(e){
e.preventDefault();
if(device.isIos()){
location.href = "abcd";//传给app用
}else if(device.isAndroid()){
try{
window.android.onBackPressed();
}catch(e){
console.log('window.android.onBackPressed未能执行');
}
}else{
console.log('other device');
}
});
h5Page(_appToken, function(data) {
loadMain();
});
} else {
loadMain();
}
function loadMain() {
//判断是否案场
var _usertable = localStorage.getItem("usertable");
var _userInfo = JSON.parse(decodeURIComponent(localStorage.getItem('userinfo')));
$('.word-link').click(function(e){
e.preventDefault();
e.stopPropagation();
var _addAppStr = (_appToken !== null) ? '?appEnter=1' : ''; //判断是否是app访问的,进行一些处理
location.href = 'daily_my.html?' + _addAppStr;
});
if(_usertable == "agents") {
$(".liudan").show();
var _data;
if(ServerHost.indexOf('fujuhaofang') >= 0){
_data = {
'app_name': 'fuju',
'app_type': 0
};
}else{
_data = {
'app_name': 'futang',
'app_type': 1
};
};
$.ajax({
url: ServerHost + "/AppTab1/applyData",
data: _data,
type: "POST",
dataType: "json",
beforeSend: function() {},
success: function(response) {
var html = "";
$.each(response['house'], function(i, item) {
html += "<li id='" + item.id + "'>" + item.title + "</li>";
});
$("#uc_03").html(html);
},
error: function() {}
});
};
$('.weekly_btn').click(function(e) {
var _ul_temp = $(".weekly_lp ul .selected");
//if(_ul_temp.length > 0) {
var array = [];
_ul_temp.each(function(i, v) {
var _tempObj = {};
var _v = $(v);
_tempObj['id'] = _v.attr('id');
_tempObj['house_name'] = _v.html();
array.push(_tempObj);
});
var data = {
'house': array
};
var urlEn = encodeURIComponent(JSON.stringify(data));
var _addAppStr = (_appToken !== null) ? 'appEnter=1&' : ''; //判断是否是app访问的,进行一些处理
if(_ul_temp.length > 0) {
if(_userInfo['boss'] && _userInfo['boss'] == 1){
//市场部总监
window.location.href = "daily_achieve_sczj.html?" + _addAppStr + 'daily_data=' + urlEn;
}else{
//普通组长
window.location.href = "daily_achieve_zz.html?" + _addAppStr + 'daily_data=' + urlEn;
}
} else {
layer.open({
content: '未选择楼盘',
skin: 'msg',
time: 2
});
return;
}
});
}
});
</script>
</body>
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>同联商业</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<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='/');"></a>
<h2 id="title">业绩日报</h2>
<a class="word-link" :href="reportLink">我的日报</a>
</header>
<div class="header_seat"></div>
<div id="screen_shot_area">
<div id="titile_temp">汇报人:{{userName}}</div>
<div id="titile_before">今日总结 {{dateNow}}</div>
<div id="tab_table_area">
<section>
<table border="0" cellspacing="0" cellpadding="0" class="table-type1">
<tbody>
<tr class="table-tr-header">
<td></td>
<td>房源</td>
<td>客源</td>
<td>带看</td>
<td>业绩(元)</td>
<td>实收(元)</td>
</tr>
<tr class="table-tr-riwancheng">
<td>日完成</td>
<td>{{fangyuan}}</td>
<td><input type="number" placeholder="填写" /></td>
<td>{{daikan}}</td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" class="table-type6">
<tbody>
<tr class="table-tr-single">
<td colspan="5">业绩与实收的月数据</td>
</tr>
<tr class="table-tr-header">
<td></td>
<td>月目标</td>
<td>月完成</td>
<td>差额</td>
<td>人均</td>
</tr>
<tr is="my-tr1" v-for="(item, index) in trArr" v-bind:data="item" :peoplenum="peopleNum" :daynum="nowDayNum" :key="item.titlename"></tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" class="table-type2">
<tr class="table-tr-single">
<td colspan="2">核心目标量化和完成目标的措施和方法及时间节点</td>
</tr>
<tr class="">
<td>9:15-11:45</td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>12:30-14:30</td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>14:30-17:45</td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>18:30-20:00</td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>完不成如<br />何惩罚自<br /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
</table>
<table border="0" cellspacing="0" cellpadding="0" class="table-type11">
<tbody>
<tr class="table-tr-single">
<td colspan="5">店长个人数据</td>
</tr>
<tr class="table-tr-header">
<td>带看</td>
<td>陪看</td>
<td>更新</td>
<td>网络</td>
<td>开单</td>
</tr>
<tr>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="text" placeholder="填写" /></td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" class="table-type4">
<tr class="table-tr-single">
<td colspan="3">员工打分和点评(1-10分)</td>
</tr>
<tr class="table-tr-header" id="groupInfoArea">
<td>员工</td>
<td>分数</td>
<td>点评</td>
</tr>
<!--<tr>
<td>刘丹丹</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>-->
<tr class="table-tr-textarea tr-padding20">
<td>绩效奖惩的<br />执行情况</td>
<td colspan="2">
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="table-tr-textarea tr-padding20">
<td>今日总结</td>
<td colspan="2">
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
</table>
<table border="0" cellspacing="0" cellpadding="0" class="table-type1">
<tbody>
<tr class="table-tr-single">
<td colspan="6">明日计划</td>
</tr>
<tr class="table-tr-header">
<td></td>
<td>房源</td>
<td>客源</td>
<td>带看</td>
<td>业绩(元)</td>
<td>实收(元)</td>
</tr>
<tr class="table-tr-mingrimubiao">
<td>明日目标</td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
</tr>
<tr class="table-tr-textarea tr-padding35">
<td>绩效奖惩制定</td>
<td colspan="5">
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="table-tr-textarea tr-padding35">
<td>明日措施与方法</td>
<td colspan="5">
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" class="table-type9">
<tr class="table-tr-single">
<td colspan="6">同联六项管理、自我考核评分标准(每项1-10分)</td>
</tr>
<tr>
<td>六项管理</td>
<td>分数</td>
<td>提高方法</td>
</tr>
<tr class="">
<td>目标管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>心态管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>时间管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>学习管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>行动管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>动力管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
</table>
</section>
</div>
<div id="time_stamp_area"></div>
</div>
<div class="btn-area">
<button id="btn_ok" @click.stop.prevent="save">提交</button>
</div>
<div id="loading_pic" class="week-sp loading_pic">
<img src="/app/images/jz2.gif" />
<p>正在加载...</p>
</div>
</div>
<script src="/app/js/libs/require.min.js" data-js="/app/js/daily_achieve_dz.js" data-main="/app/js/main" data-norem="yes" defer async="true"></script>
<script type="text/x-template" id="tr1">
<tr>
<td>{{data.titlename}}</td>
<td><input type="number" placeholder="填写" v-model.number="mubiao" /></td>
<td><input type="number" placeholder="填写" v-model.number="wancheng" /></td>
<td>{{mubiao-wancheng}}</td>
<td>{{renjun}}</td>
</tr>
</script>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>同联商业</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<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:;" @click.stop.prevent="pageBack"></a>
<h2 id="title">业绩日报</h2>
<a class="word-link" :href="reportLink">我的日报</a>
</header>
<div class="header_seat"></div>
<div id="screen_shot_area">
<div id="titile_temp">汇报人:{{userName}}</div>
<div id="titile_before">今日总结 {{dateNow}}</div>
<div id="tab_table_area">
<section>
<table border="0" cellspacing="0" cellpadding="0" class="table-type6">
<tbody>
<tr class="table-tr-header">
<td></td>
<td>月目标</td>
<td>月完成</td>
<td>差额</td>
<td>人均</td>
</tr>
<tr is="my-tr1" v-for="(item, index) in trArr" v-bind:data="item" :peoplenum="peopleNum" :daynum="nowDayNum" :key="item.titlename"></tr>
<tr class="table-tr-textarea tr-padding20">
<td>业绩方面<br />的当前工<br />作重点</td>
<td colspan="4">
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" class="table-type7">
<tr class="table-tr-single">
<td colspan="2">人员汇报</td>
</tr>
<tr class="">
<td>人员目标</td>
<td><input type="number" placeholder="填写" id="renshu_mubiao" /></td>
</tr>
<tr class="">
<td>现在人数</td>
<td id="renshu_now">{{peopleNum}}</td>
</tr>
<tr class="">
<td>人数差额</td>
<td><input type="number" placeholder="填写" id="renshu_chae" /></td>
</tr>
<tr class="table-tr-textarea tr-padding20">
<td>人员方面的<br />当前重点工作</td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="table-tr-single">
<td colspan="2">工作总结</td>
</tr>
<tr class="table-tr-textarea tr-padding60">
<td>今日工作总结</td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="table-tr-textarea tr-padding60">
<td>明日工作总结</td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
</table>
<table border="0" cellspacing="0" cellpadding="0" class="table-type9">
<tr class="table-tr-single">
<td colspan="6">同联六项管理、自我考核评分标准(每项1-10分)</td>
</tr>
<tr>
<td>六项管理</td>
<td>分数</td>
<td>提高方法</td>
</tr>
<tr class="">
<td>目标管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>心态管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>时间管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>学习管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>行动管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>动力管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
</table>
</section>
</div>
<div id="time_stamp_area"></div>
</div>
<div class="btn-area">
<button id="btn_ok" @click.stop.prevent="save">提交</button>
</div>
<div id="loading_pic" class="week-sp loading_pic">
<img src="/app/images/jz2.gif" />
<p>正在加载...</p>
</div>
</div>
<script src="/app/js/libs/require.min.js" data-js="/app/js/daily_achieve_mdzj.js" data-main="/app/js/main" data-norem="yes" defer async="true"></script>
<script type="text/x-template" id="tr1">
<tr>
<td>{{data.titlename}}</td>
<td><input type="number" placeholder="填写" v-model.number="mubiao" /></td>
<td><input type="number" placeholder="填写" v-model.number="wancheng" /></td>
<td>{{mubiao-wancheng}}</td>
<td>{{renjun}}</td>
</tr>
</script>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>同联商业</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<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:;" @click.stop.prevent="pageBack"></a>
<h2 id="title">业绩日报</h2>
<a class="word-link" :href="reportLink">我的日报</a>
</header>
<div class="header_seat"></div>
<div id="screen_shot_area">
<div id="titile_temp">汇报人:{{userName}}</div>
<div id="titile_before">今日总结 {{dateNow}}</div>
<div id="tab_table_area">
<section>
<table border="0" cellspacing="0" cellpadding="0" class="table-type1">
<tbody>
<tr class="table-tr-header">
<td></td>
<td>房源</td>
<td>客源</td>
<td>带看</td>
<td>业绩(元)</td>
<td>实收(元)</td>
</tr>
<tr class="table-tr-riwancheng">
<td>日完成</td>
<td>{{fangyuan}}</td>
<td><input type="number" placeholder="填写" /></td>
<td>{{daikan}}</td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" class="table-type10">
<tbody>
<tr class="table-tr-single">
<td colspan="4">业绩与实收的月数据</td>
</tr>
<tr class="table-tr-header">
<td></td>
<td>月目标</td>
<td>月完成</td>
<td>差额</td>
</tr>
<tr is="my-tr1" v-for="(item, index) in trArr" v-bind:data="item" :key="item.titlename"></tr>
<tr class="table-tr-textarea tr-padding60">
<td>数据情况总结</td>
<td colspan="3">
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" class="table-type1">
<tbody>
<tr class="table-tr-single">
<td colspan="6">明日计划</td>
</tr>
<tr class="table-tr-header">
<td></td>
<td>房源</td>
<td>客源</td>
<td>带看</td>
<td>业绩(元)</td>
<td>实收(元)</td>
</tr>
<tr class="table-tr-mingrimubiao">
<td>明日目标</td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
</tr>
<!--<tr class="table-tr-textarea tr-padding35">
<td>明日措施与方法</td>
<td colspan="4">
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>-->
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" class="table-type2">
<tr class="table-tr-single">
<td colspan="2">核心目标量化和完成目标的措施和方法及时间节点</td>
</tr>
<tr class="">
<td>9:15-11:45</td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>12:30-14:30</td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>14:30-17:45</td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>18:30-20:00</td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>完不成如<br />何惩罚自<br /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
</table>
<table border="0" cellspacing="0" cellpadding="0" class="table-type9">
<tr class="table-tr-single">
<td colspan="6">同联六项管理、自我考核评分标准(每项1-10分)</td>
</tr>
<tr>
<td>六项管理</td>
<td>分数</td>
<td>提高方法</td>
</tr>
<tr class="">
<td>目标管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>心态管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>时间管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>学习管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>行动管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="">
<td>动力管理</td>
<td><input type="number" placeholder="填写" /></td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
</table>
</section>
</div>
<div id="time_stamp_area"></div>
</div>
<div class="btn-area">
<button id="btn_ok" @click.stop.prevent="save">提交</button>
</div>
<div id="loading_pic" class="week-sp loading_pic">
<img src="/app/images/jz2.gif" />
<p>正在加载...</p>
</div>
</div>
<script src="/app/js/libs/require.min.js" data-js="/app/js/daily_achieve_ywy.js" data-main="/app/js/main" data-norem="yes" defer async="true"></script>
<script type="text/x-template" id="tr1">
<tr>
<td>{{data.titlename}}</td>
<td><input type="number" placeholder="填写" v-model.number="mubiao" /></td>
<td><input type="number" placeholder="填写" v-model.number="wancheng" /></td>
<td>{{mubiao-wancheng}}</td>
</tr>
</script>
</body>
</html>
\ No newline at end of file
<!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='/');"></a>
<h2 id="title">我的日报</h2>
</header>
<div class="header_seat"></div>
<div id="table_area">
<table border="" cellspacing="" cellpadding="">
<tbody id="appendArea">
<tr>
<th>上传时间</th>
<th>周报</th>
</tr>
<tr v-for="(item, index) in dataList" :key="item.id">
<td>{{item.create_time}}</td>
<td><a :href="hrefPre+item.img_url">查看</a></td>
</tr>
</tbody>
</table>
</div>
<div id="loading_pic" class="loading_pic">
<img src="/app/images/jz2.gif" />
<p>正在加载...</p>
</div>
<div id="no_more" class="no_more">没有更多了</div>
</div>
<script src="/app/js/libs/require.min.js" data-js="/app/js/daily_my.js" data-main="/app/js/main" defer async="true"></script>
</body>
</html>
\ No newline at end of file
11111111111111111
\ No newline at end of file
<!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="initial-scale=1, maximum-scale=1, minimum-scale=1">
<meta http-equiv="Cache-Control" content="no-siteapp" />
<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:;" @click.prevent.stop="pageBack"></a>
<h2 id="title">业绩周报</h2>
<a class="word-link" href="weekly_my">我的周报</a>
</header>
<div class="header_seat"></div>
<div class="weekly_time">
<ul>
<li>
<span class="weekly_span">
</span>
<p class="weekly_p">
请选择业绩时间
</p>
</li>
<li>
<img src="/app/images/ic_start.png" class="ic_star">
<p class="time_p">
<span class="time_p1">
开始
</span>
<input type="date" v-model.trim="dateStart" name="date" class="name_date" id="datePicker" @change="changeDate('0')">
</p>
</li>
<li>
<p class="time_p2">
<span class="time_p1">
结束
</span>
<input type="date" v-model.trim="dateEnd" name="date" class="name_date" id="datePicker2" @change="changeDate('1')">
</p>
</li>
</ul>
</div>
<div class="weekly_time liudan">
<ul>
<li>
<span class="weekly_span">
</span>
<p class="weekly_p">
请选择你要汇报的楼盘(可多选)
</p>
</li>
</ul>
</div>
<button class="weekly_btn" @click.prevent.stop="goToNewPage">确认</button>
</div>
<script src="/app/js/libs/require.min.js" data-js="/app/js/weekly.js" data-main="/app/js/main" defer async="true"></script>
</body>
</html>
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>同联商业</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<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='/');"></a>
<h2 id="title">业绩周报</h2>
<a class="word-link" href="weekly_my">我的周报</a>
</header>
<div class="header_seat"></div>
<div id="screen_shot_area">
<div id="titile_temp"></div>
<div id="titile_before">2017年10月10日至2017年10月16日</div>
<!--<div id="titile_after">
<h3>明诚二手车市场</h3>
<p><span id="span_date">2017-10-1至2017-10-10</span><span id="span_reporter">汇报人:XXX</span></p>
</div>-->
<div id="tab_table_area">
<section>
<table border="0" cellspacing="0" cellpadding="0" class="table-type8">
<tbody>
<tr class="table-tr-single"><td colspan="4">月数据</td></tr>
<tr is="my-tr1" v-for="(item, index) in trArr" v-bind:data="item" :peoplenum="peopleNum" :key="item.titlename"></tr>
<!--<tr class="">
<td>本月业绩(元)</td>
<td><input type="number" placeholder="填写" /></td>
<td>人均业绩(元)</td>
<td></td>
</tr>
<tr class="">
<td>本月实收(元)</td>
<td><input type="number" placeholder="填写" /></td>
<td>人均实收(元)</td>
<td></td>
</tr>-->
<tr class="table-tr-single"><td colspan="4">周数据</td></tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" class="table-type1">
<tbody>
<tr class="table-tr-header">
<td></td>
<td>房源</td>
<td>客源</td>
<td>带看</td>
<td>业绩</td>
<td>人数</td>
</tr>
<tr class="table-tr-benzhoumubiao">
<td>本周目标</td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
</tr>
<tr class="table-tr-benzhouwancheng">
<td>本周完成</td>
<td></td>
<td><input type="number" placeholder="填写" /></td>
<td></td>
<td><input type="number" placeholder="填写" /></td>
<td></td>
</tr>
<tr class="table-tr-chae">
<td>差额</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="table-tr-xiazhoumubiao">
<td>下周目标</td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
</tr>
<tr class="table-tr-fakuanbiaozhun tr-lineheight30">
<td>罚款标准<br /><span class="span-special1">(元/组)</span></td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
<td><input type="number" placeholder="填写" /></td>
</tr>
<tr class="table-tr-fakuanjine">
<td>罚款金额</td>
<td></td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr class="table-tr-textarea tr-padding60">
<td>业绩方面的总结和措施方法</td>
<td colspan="6">
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="table-tr-textarea tr-padding60">
<td>人员方面的总结和措施方法</td>
<td colspan="6">
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" class="table-type2">
<tbody>
<tr class="table-tr-single">
<td colspan="2">业态分析</td>
</tr>
<tr class="table-tr-textarea tr-padding60">
<td>现在的业态不能做了,你会做什么?</td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="table-tr-textarea tr-padding60">
<td>做哪个业态比你现在做的会更赚钱?</td>
<td>
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
</tbody>
</table>
<table border="0" cellspacing="0" cellpadding="0" class="table-type6">
<tbody id="yejiInfoArea">
<tr class="table-tr-single">
<td colspan="5">员工绩效</td>
</tr>
<tr class="table-tr-header" id="groupInfoArea">
<td>姓名</td>
<td>房源</td>
<td>客源</td>
<td>带看</td>
<td>业绩</td>
</tr>
<!--<tr>
<td>康小雨</td>
<td></td>
<td><input type="number" placeholder="填写" /></td>
<td></td>
<td><input type="number" placeholder="填写" /></td>
</tr>
<tr>
<td>康小雨</td>
<td></td>
<td><input type="number" placeholder="填写" /></td>
<td></td>
<td><input type="number" placeholder="填写" /></td>
</tr>-->
<tr class="table-tr-textarea tr-padding60">
<td>点评优秀员工</td>
<td colspan="4">
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
<tr class="table-tr-textarea tr-padding60">
<td>点评须进步员工</td>
<td colspan="4">
<div class="div-textarea" contenteditable="true">点击填写</div>
</td>
</tr>
</tbody>
</table>
</section>
</div>
<div id="time_stamp_area"></div>
</div>
<div class="btn-area">
<button id="btn_ok" @click.stop.prevent="save">提交</button>
</div>
<div id="loading_pic" class="week-sp loading_pic">
<img src="/app/images/jz2.gif" />
<p>正在加载...</p>
</div>
</div>
<script src="/app/js/libs/require.min.js" data-js="/app/js/weekly_achieve_dz.js" data-main="/app/js/main" data-norem="yes" defer async="true"></script>
<script type="text/x-template" id="tr1">
<tr>
<td>{{data.titlename}}</td>
<td><input type="number" placeholder="填写" v-model.number="wancheng" /></td>
<td>{{data.titlename2}}</td>
<td>{{renjun}}</td>
</tr>
</script>
</body>
</html>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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