Commit 3c86f481 by felix

每日一更

parent 792eea0b
<?php
require_once(PLUGIN_DIR . 'Dao/ContractDao.php');
require_once(PLUGIN_DIR . 'Dao/SearchDao.php');
require_once(PLUGIN_DIR . 'Dao/HouseDao.php');
class Contract {
public static function init_view(){
......@@ -16,48 +17,64 @@ class Contract {
$context['room'] = SearchDao::searchRoom();
$params = array(
'business' => $_REQUEST['business'],
'houseNumber' =>$_REQUEST['houseNumber'],
'address' =>$_REQUEST['address'],
'customerNumber' =>$_REQUEST['customerNumber'],
'signedDate' =>$_REQUEST['signedDate'],
'permitNumber' =>$_REQUEST['permitNumber'],
'status' =>$_REQUEST['status'],
'area' =>$_REQUEST['area'],
'price' =>$_REQUEST['price'],
'managerId' =>1,
'permitNumber' =>$_REQUEST['permitNumber'],
'managerId' =>$_REQUEST['managerId'],
'paymentMethod' =>$_REQUEST['paymentMethod'],
'codicil' =>$_REQUEST['codicil'],
'oName' =>$_REQUEST['oName'],
'oPhone' =>$_REQUEST['oPhone'],
'oID' =>$_REQUEST['oID'],
'oCommission' =>$_REQUEST['oCommission'],
'oBroker' =>$_REQUEST['oBroker'],
'oAddress' =>$_REQUEST['oAddress'],
'oPayBack' =>$_REQUEST['oPayBack'],
'oMoney' =>$_REQUEST['oMoney'],
'oPayBack' =>$_REQUEST['oPayBack'],
'cName' =>$_REQUEST['cName'],
'cPhone' =>$_REQUEST['cPhone'],
'cID' =>$_REQUEST['cID'],
'cCommission' =>$_REQUEST['cCommission'],
'cBroker' =>$_REQUEST['cBroker'],
'cAddress' =>$_REQUEST['cAddress'],
'cPayBack' =>$_REQUEST['cPayBack'],
'cMoney' =>$_REQUEST['cMoney']
'cMoney' =>$_REQUEST['cMoney'],
'cPayBack' =>$_REQUEST['cPayBack']
);
$wpdb->query("START TRANSACTION");
if($type==1){
$prefix = "新增";
if(isset($_REQUEST["id"])){
$result = ContractDao::update($_REQUEST["id"],$_REQUEST['']);
$result = ContractDao::update($_REQUEST["id"],$params);
$prefix = "修改";
}else{
$result = ContractDao::insert($params);
if(is_numeric($result)){
$prefix = "CJCS";
if($_REQUEST['type'] > 1){
$prefix = "CJCZ";
$status = 0;
if($params['status'] == 4) {
$status = 0;
}else if($params['status'] == 3){
$status = 2;
}
$contractId = $prefix.str_pad($result,6,'0',STR_PAD_LEFT);
$result = ContractDao::setContractId($result,$contractId);
$result = HouseDao::updateStatus($status,$_REQUEST['id']);
}
}else{
$params['business'] = $_REQUEST['businessId'];
$params['houseNumber'] = $_REQUEST['houseNumber'];
$params['price'] = $_REQUEST['price'];
$params['houseId'] = $_REQUEST['houseId'];
$params['customerNumber'] = $_REQUEST['customerNumber'];
$params['oPhone'] = $_REQUEST['oPhone'];
$params['oCommission'] = $_REQUEST['oCommission'];
$params['cPhone'] = $_REQUEST['cPhone'];
$params['cCommission'] = $_REQUEST['cCommission'];
$params['consultantId'] = get_current_user_id();
$result = ContractDao::insert($params);
$pre = "CJCS";
if($_REQUEST['type'] > 1){
$pre = "CJCZ";
}
$contractId = $pre.str_pad($result,6,'0',STR_PAD_LEFT);
$result = ContractDao::setContractId($result,$contractId);
//二手房、租房创建合同时修改房源的状态
if(intval($_REQUEST['businessId']) >=1 ){
$result = HouseDao::updateStatus(-1,$params['houseId']);
}
}
if(!is_numeric($result)){
......
......@@ -44,20 +44,30 @@ class Contract_List extends WP_List_Table{
$columns['manager']= '签约人员';
$columns['status']= '状态';
$columns['oName']= '业主姓名';
$columns['oBroker']= '卖方经纪人';
$columns['oCommission']= '佣金';
$columns['cName']= '客户姓名';
$columns['cBroker']= '买方经纪人';
$columns['cCommission']= '佣金';
return $columns;
}
function get_sortable_columns()
{
$sortable_columns = array(
'contractId' => array('contractId', false),
/*'contractId' => array('contractId', false),
'signedDate' => array('signedDate', false),
'business' => array('business', false),
'address' => array('address', false),
'price' => array('price', false),
'commission' => array('commission', false),
'status' => array('status', false),
'oName' => array('oName', false)
'oName' => array('oName', false),
'oBroker' => array('oBroker', false),
'oCommission' => array('oCommission', false),
'cName' => array('cName', false),
'cBroker' => array('cBroker', false),
'cCommission' => array('cCommission', false)*/
);
return $sortable_columns;
}
......@@ -75,12 +85,20 @@ class Contract_List extends WP_List_Table{
$this->process_bulk_action();
//$data = $this->example_data;
$sql = "select t.id,t.contractId,t.signedDate,t.business,t.address,t.price,(t.oCommission+t.cCommission) as commission,
tc.name as manager,ts.status_name as status,oName
$sql = "select t.id,t.contractId,t.signedDate,t.business,th.address,t.price,(t.oCommission+t.cCommission) as commission,
tc.name as manager,ts.status_name as status,oName,oBroker,oCommission,cName,cBroker,cCommission
from tospur_contract t
left join tospur_consultant tc on tc.id = t.managerId
left join tospur_status ts on ts.status_type = 4 and t.status = ts.status_id;";
left join tospur_consultant tc on tc.id = t.consultantId
left join tospur_house th on th.id = t.houseId
left join tospur_status ts on ts.status_type = 4 and t.status = ts.status_id
where 1=1 ";
//置业顾问显示自己的合同
if(current_user_can("author")){
$sql .= " and t.consultantId = ".get_current_user_id();
}elseif(current_user_can("editor")){//经理显示提交给自己的合同,和自己的合同
$sql .= " and (t.consultantId = ".get_current_user_id()." or t.managerId = ".get_current_user_id().")";
}
$sql .= " order by t.signedDate desc";
$result = $wpdb->get_results($sql);
$data = array();
foreach ($result as $key => $value) {
......@@ -94,7 +112,12 @@ class Contract_List extends WP_List_Table{
'commission' => $value->commission,
'manager' => $value->manager,
'status' => $value->status,
'oName' => $value->oName
'oName' => $value->oName,
'oBroker' => $value->oBroker,
'oCommission' => $value->oCommission,
'cName' => $value->cName,
'cBroker' => $value->cBroker,
'cCommission' => $value->cCommission
);
}
......
<?php
class commissionManage{
function commissionManage_html(){
$context = array();
$context["city"] = SearchDao::searchCity();
Timber::render("commissionManage.html",$context);
}
}
\ No newline at end of file
......@@ -175,7 +175,7 @@ class consultantScoreList extends WP_List_Table
function add_consultant_score_menu()
{
add_menu_page('置业顾问评分', '置业顾问评分', 'activate_plugins', 'consultant_score', 'consultant_score_page', 'dashicons-menu', 26);
add_menu_page('置业顾问评分', '置业顾问评分', 'moderate_comments', 'consultant_score', 'consultant_score_page', 'dashicons-menu', 26);
}
add_action('admin_menu', 'add_consultant_score_menu');
......
<?php
require_once(PLUGIN_DIR . 'Dao/SearchDao.php');
require_once(PLUGIN_DIR . 'Dao/InsertDao.php');
class customer extends Tospur_House
{
......@@ -50,7 +48,8 @@ class customer extends Tospur_House
'hall' => $_POST['hall'],
'bathroom' => $_POST['bathroom'],
'origin_remark' => $_POST['origin_remark'],
'consultant_id' => $_POST['consultant_id'],
'consultant_id' => $_POST['data']['recConsultant'][0],
//(1)
'status' => $_POST['status']
);
if ($_POST) {
......@@ -60,7 +59,8 @@ class customer extends Tospur_House
$insert_tospur_house_array,
array('id' => $_POST['houseId'])
);
if ($result) {
CustomerTrackingDao::insert($_POST['houseId'], $_REQUEST);
if ($result >= 0) {
$wpdb->query("COMMIT");
echo "修改客源成功";
} else {
......@@ -70,6 +70,7 @@ class customer extends Tospur_House
} else {
$id = CustomerDao::insert_customer($insert_tospur_house_array);
if ($id) {
CustomerTrackingDao::insert($id, $_REQUEST);
$wpdb->query("COMMIT");
echo "新增客源成功";
} else {
......@@ -84,12 +85,18 @@ class customer extends Tospur_House
$context["district"] = SearchDao::searchCity($context['result']->city_id);
$context["plate"] = SearchDao::searchCity($context['result']->city_id, $context['result']->district_id);
}
$context['role'] = customer::getCurrentRole();
$current_user = wp_get_current_user();
$context['role'] = $current_user->roles[0];
if ($context['role'] == 'author') {
$context['consultant_id'] = $current_user->ID;
}
$context['city'] = SearchDao::searchCity();
$context['buildProperty'] = SearchDao::searchBuildProperty();
$context['room'] = SearchDao::searchRoom();
$context['status'] = searchDao::searchStatusType(5);
$context['customer_type'] = searchDao::searchStatusType(6);
$context['page'] = 'customer';
for ($i = 1970; $i <= 2020; $i++) {
$context['age'][] = $i;
}
......
......@@ -8,89 +8,103 @@ class customerList extends WP_List_Table
{
function __construct()
{
global $status, $page;
//Set parent defaults
parent::__construct(array(
'singular' => 'customerList', //singular name of the listed records
'plural' => 'customerLists', //plural name of the listed records
'ajax' => false //does this table support ajax?
));
}
function column_default($item, $column_name)
{
switch ($column_name) {
case'id':
case 'name':
case 'address':
case 'average_price':
case 'developer':
case 'check_in_time':
case 'room_id':
case 'property_age':
case 'decoration':
case 'covered_area':
case 'status':
case 'volume_rate':
case 'greening_rate':
case 'households':
case 'parking_spaces':
case 'property_management':
case 'property_money':
return '<a href="' . admin_url('admin.php?page=customer&edit=true&id=' . $item['id']) . '">' . $item[$column_name] . '</a>';
default:
return '<a href="' . admin_url() . 'admin.php?page=newHouse&edit=true&id=' . $item['id'] . '">' . $item[$column_name] . '</a>';
return $item[$column_name];
}
}
function column_cb($item)
{
return sprintf(
'<input type="checkbox" name="%1$s[]" value="%2$s" />',
/*$1%s*/
$this->_args['singular'], //Let's simply repurpose the table's singular label ("score")
/*$2%s*/
$item['id'] //The value of the checkbox should be the record's id
);
}
function get_columns()
{
if (current_user_can('administrator')) {
$columns = array(
'cb' => '<input type="checkbox" />'
);
}
$columns['name'] = '姓名';
$columns['demand_type'] = '需求类型';
$columns['customer_remark'] = '客户备注';
$columns['consultant'] = '置业顾问';
$columns['check_in_time'] = '状态';
$columns['consultant_name'] = '置业顾问';
$columns['status_name'] = '状态';
return $columns;
}
function get_sortable_columns()
{
$sortable_columns = array();
return $sortable_columns;
}
function prepare_items()
{
global $wpdb;
$per_page = 10;
$columns = $this->get_columns();
$hidden = array();
$sortable = $this->get_sortable_columns();
$this->_column_headers = array($columns, $hidden, $sortable);
$this->_column_headers = array($columns, $hidden);
$sql = "select * from tospur_customer tc";
$sql = "SELECT tcs.*,tc.name as consultant_name,ts.status_name FROM tospur_customer tcs" .
" left join (SELECT * FROM tospur_status where status_type = 5) as ts on tcs.status = ts.status_id" .
" left join tospur_consultant tc on tcs.consultant_id = tc.id where 1 = 1";
if (isset($_POST['status']) && $_POST['status'] != -1) {
$sql = $sql . " and tcs.status = " . $_POST['status'];
}
if (isset($_POST['customer_type']) && $_POST['customer_type'] != -1) {
$sql = $sql . " and tcs.customer_type = " . $_POST['customer_type'];
}
if (isset($_POST['demand_type']) && $_POST['demand_type'] != -1) {
$demand_type = null;
switch ($_POST['demand_type']) {
case 0:
$demand_type = 'tcs.new_house';
break;
case 1:
$demand_type = 'tcs.secondHand_house';
break;
case 2:
$demand_type = 'tcs.rent_house';
break;
}
if ($demand_type) {
$sql = $sql . " and " . $demand_type . " = 1";
}
}
if (isset($_POST['search_name'])) {
$sql = $sql . " and tcs.name like '%" . $_POST['search_name'] . "%'";
}
if (isset($_POST['search_consultant_name'])) {
$sql = $sql . " and tc.name like '%" . $_POST['search_consultant_name'] . "%'";
}
if (isset($_POST['search_phone'])) {
$sql = $sql . " and tcs.phone like '%" . $_POST['search_phone'] . "%'";
}
if (isset($_POST['search_min_time']) && $_POST['search_min_time'] != null) {
$sql = $sql . " and tcs.time >= '" . $_POST['search_min_time'] . "'";
}
if (isset($_POST['search_max_time']) && $_POST['search_max_time'] != null) {
$sql = $sql . " and tcs.time <= '" . $_POST['search_max_time'] . "'";
}
$result = $wpdb->get_results($sql);
$data = array();
foreach ($result as $key => $value) {
$demand_type_array = array(
($value->new_house == 1) ? '新房' : null,
($value->secondHand_house == 1) ? '二手房' : null,
($value->rent_house == 1) ? '租房' : null
);
$demand_type_array = array_filter($demand_type_array, function ($var) {
return !is_null($var);
});
$data[$key] = array(
'id' => $value->id,
'name' => $value->name,
'demand_type' => implode("、", $demand_type_array),
'customer_remark' => $value->customer_remark,
'consultant_name' => $value->consultant_name,
'status_name' => $value->status_name
);
}
$current_page = $this->get_pagenum();
if (isset($_POST['paged'])) {
$current_page = $_POST['paged'];
}
$total_items = count($data);
......@@ -109,6 +123,18 @@ class customerList extends WP_List_Table
function function_customerList()
{
$context = array();
$context['status'] = SearchDao::searchStatusType(5);
$context['customer_type'] = SearchDao::searchStatusType(6);
$context['status_id'] = $_POST['status'];
$context['demand_type'] = isset($_POST['demand_type']) ? $_POST['demand_type'] : -1;
$context['customer_type_id'] = isset($_POST['customer_type']) ? $_POST['customer_type'] : -1;
$context['search_name'] = $_POST['search_name'];
$context['search_consultant_name'] = $_POST['search_consultant_name'];
$context['search_phone'] = $_POST['search_phone'];
$context['search_min_time'] = $_POST['search_min_time'];
$context['search_max_time'] = $_POST['search_max_time'];
Timber::render("customerList.html", $context);
}
......
<?php
if (!class_exists('WP_List_Table')) {
require_once(ABSPATH . 'wp-admin/includes/class-wp-list-table.php');
}
class customerTrackingList extends WP_List_Table
{
function __construct()
{
}
function column_default($item, $column_name)
{
switch ($column_name) {
default:
return $item[$column_name];
}
}
function get_columns()
{
$columns['status_name'] = '跟进类型';
$columns['consultant_name'] = '置业顾问';
$columns['time'] = '时间';
$columns['description'] = '跟进说明';
$columns['origin'] = '客/房源';
return $columns;
}
function prepare_items()
{
global $wpdb;
$per_page = 1;
$columns = $this->get_columns();
$hidden = array();
$this->_column_headers = array($columns, $hidden);
$sql = "SELECT tct.*,ts.status_name,tc.name as consultant_name FROM tospur_customer_tracking tct" .
" left join (SELECT * FROM tospur_status where status_type = 3) as ts on tct.status_type = ts.status_id" .
" left join tospur_consultant tc on tct.consultant_id = tc.id where 1 = 1";
if (isset($_GET['status_type']) && $_GET['status_type'] != -1) {
$sql = $sql . " and tct.status_type = " . $_GET['status_type'];
}
if (isset($_GET['search_consultant_name'])) {
$sql = $sql . " and tc.name like '%" . $_GET['search_consultant_name'] . "%'";
}
if (isset($_GET['search_min_time']) && $_GET['search_min_time'] != null) {
$sql = $sql . " and tct.time >= '" . $_GET['search_min_time'] . "'";
}
if (isset($_GET['search_max_time']) && $_GET['search_max_time'] != null) {
$sql = $sql . " and tct.time <= '" . $_GET['search_max_time'] . "'";
}
$sql = $sql . " order by tct.time desc";
$result = $wpdb->get_results($sql);
$data = array();
foreach ($result as $key => $value) {
$data[$key] = array(
'id' => $value->id,
'status_id' => $value->status_id,
'status_name' => $value->status_name,
'consultant_name' => $value->consultant_name,
'time' => $value->time,
'description' => $value->description,
'origin' => ($value->origin == 1) ? '房源' : (($value->origin == 2) ? '客源' : '')
);
}
$current_page = $this->get_pagenum();
if (isset($_GET['paged'])) {
$current_page = $_GET['paged'];
}
$total_items = count($data);
$data = array_slice($data, (($current_page - 1) * $per_page), $per_page);
$this->items = $data;
$this->set_pagination_args(array(
'total_items' => $total_items, //WE have to calculate the total number of items
'per_page' => $per_page, //WE have to determine how many items to show on a page
'total_pages' => ceil($total_items / $per_page) //WE have to calculate the total number of pages
));
}
}
function function_customerTrackingList()
{
$context = array();
$context['status'] = SearchDao::searchStatusType(3);
$context['status_type'] = isset($_GET['status_type']) ? $_GET['status_type'] : -1;
$context['search_consultant_name'] = $_GET['search_consultant_name'];
$context['search_min_time'] = $_GET['search_min_time'];
$context['search_max_time'] = $_GET['search_max_time'];
Timber::render("customerTrackingList.html", $context);
}
function addCustomerTrackingTable()
{
$customerTrackingList = new customerTrackingList();
$customerTrackingList->prepare_items();
$customerTrackingList->display();
}
?>
......@@ -179,10 +179,10 @@ class rentHouseList extends WP_List_Table
//$data = $this->example_data;
$sql = "select * from tospur_house th
left join(select user_id as aus_id,house_id,user_type from a_house_user) ahu on th.id = ahu.house_id
left join(select user_id as aus_id,house_id,user_type from a_house_user) ahu on th.id = ahu.house_id and ahu.user_type=1
left join(select id as consul_id,name as consul_name from tospur_consultant) tc on ahu.aus_id = tc.consul_id
left join(select value,literal from dic_buildproperty) db on th.buildproperty_id = db.value
where 1=1 and house_type=2 and ahu.user_type=1";
where 1=1 and house_type=2 ";
if($_POST["listCity"]!=0 ){
$params[] = $_POST["listCity"];
$sql = $sql." and city_id=%d";
......@@ -207,11 +207,11 @@ class rentHouseList extends WP_List_Table
$params[] = $_POST["status"];
$sql = $sql." and status=%d";
}
if($_POST["totalPrice"]!=NULL){
$priceArray = explode("-", $_POST['totalPrice']);
if($_POST["rentalPrice"]!=NULL){
$priceArray = explode("-", $_POST['rentalPrice']);
$params[] = $priceArray[0];
$params[] = $priceArray[1];
$sql = $sql . " and average_price between %d and %d";
$sql = $sql . " and rent between %d and %d";
}
if($_POST["acreage"]!= NULL){
$areaArray = explode("-", $_POST['acreage']);
......
......@@ -178,10 +178,10 @@ class secHandHouseList extends WP_List_Table
//$data = $this->example_data;
$sql = "select * from tospur_house th
left join(select user_id as aus_id,house_id,user_type from a_house_user) ahu on th.id = ahu.house_id
left join(select user_id as aus_id,house_id,user_type from a_house_user) ahu on th.id = ahu.house_id and ahu.user_type=1
left join(select id as consul_id,name as consul_name from tospur_consultant) tc on ahu.aus_id = tc.consul_id
left join(select value,literal from dic_buildproperty) db on th.buildproperty_id = db.value
where 1=1 and house_type=1 and ahu.user_type=1";
where 1=1 and house_type=1 ";
if($_POST["listCity"]!=0 ){
$params[] = $_POST["listCity"];
$sql = $sql." and city_id=%d";
......
......@@ -129,7 +129,7 @@ class viewHouseList extends WP_List_Table
function add_view_house_menu()
{
add_menu_page('预约列表', '预约列表', 'activate_plugins', 'view_house', 'view_house_page', 'dashicons-menu', 27);
add_menu_page('预约列表', '预约列表', 'moderate_comments', 'view_house', 'view_house_page', 'dashicons-menu', 27);
}
add_action('admin_menu', 'add_view_house_menu');
......
......@@ -18,47 +18,35 @@
{% if consultant %}
var data = {{ consultant|json_encode()}};
$.each(data,function(i,item){
addConsultant(item.imageUrl,item.name,item.id);
addConsultant(item);
});
{% endif %}
$(document).ready(function(){
//根据上方选择的城市,选择推荐置业顾问的默认城市
$("#recConsultantBt").click(function(){
$('#consultCity').find('option').remove();
$("#consultantList").find("li").remove();
var consulCityId = $("#baseCity").val();
var consultantName =$("#consultantName").val();
var cityName = $("#baseCity").find("option:selected").text();
var option = $("<option>").attr("value",consulCityId).append(cityName);
$("#consultCity").append(option);
searchConsultant(consulCityId,consultantName);
});
//添加置业顾问
$("#consultantList").on("click",".consultantImg",function(){
addConsultant($(this).find("img").attr("src"), $(this).text(), $(this).attr("id"));
});
init_modal_myConsultantList(addConsultant);
$("#consultantImg").on("click",".consultantCancel",function(){
$(this).parents("p").remove();
});
//添加置业顾问弹出层中搜索框的搜索内容
$("#searchConsult").click(function(){
var consulCityId = $("#consultCity").val();
var consultantName =$("#consultantName").val();
$("#consultantList").find("li").remove();
searchConsultant(consulCityId,consultantName);
});
});
//点击模态框中的置业顾问后显示
function addConsultant(url,name,id){
var img = $("<img>").attr({"src":url,"height":100,"width":100,"style":"margin-right:50px"});
var recommendConsultant = $("<input>").attr({"type":"hidden","name":"data[recConsultant][]","value":id});
function addConsultant(data){
var row = $("<div>").addClass("row").css("margin-bottom","10px");
var left = $("<div>").addClass("col-md-3");
var img = $("<img>").attr({"src":data.imageUrl,"height":100,"width":100,"style":"margin-right:50px"});
left.append(img);
var mid = $("<div>").addClass("col-md-3");
var label = $("<label>").append(data.name);
mid.append(label);
var right = $("<div>").addClass("col-md-3");
var cancel = $("<input>").attr({"type":"button","value":"删除"}).addClass("button action consultantCancel");
var span = $("<span>").attr("style","margin-right:50px").append(name);
var p = $("<p>").append(img).append(span).append(cancel).append(recommendConsultant);
right.append(cancel);
var recommendConsultant = $("<input>").attr({"type":"hidden","name":"data[recConsultant][]","value":data.id});
row.append(left).append(mid).append(right);
var p = $("<p>").append(row).append(recommendConsultant);
$("#consultantImg").append(p);
{% if (house_type==1 or house_type==2)%}
{% if (house_type == 1 or house_type == 2 or page == 'customer') %}
controlCommand("consultantImg",1,1);
{% endif %}
}
......
......@@ -24,32 +24,34 @@
$("#addCustomer").modal('hide');
}
function init_modal_addCustomer(callback){
function init_modal_addCustomer(callback,customerDemand){
$("#addCustomer").on("shown.bs.modal",function(){
});
$("#addCustomer_search").click(function(){
searchCustomer();
searchCustomer(customerDemand);
});
$("#addCustomer_list").on("click",".row",function(){
callback($(this).data());
});
searchCustomer();
searchCustomer(customerDemand);
}
function searchCustomer(){
function searchCustomer(customerDemand){
var params = {
action:"searchCustomerByNameOrPhone",
search:$("#addCustomer_searchtext").val()
search:$("#addCustomer_searchtext").val(),
customerDemand:customerDemand
};
$.ajax({
type: "post",
url: "admin-ajax.php",
data: params,
success:function(json){
console.log($("#addCustomer_list").find(".row").length);
$("#addCustomer_list").find(".row").remove();
if(json){
for(var i = 0; i <json.length; i++){
......
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>收佣管理</title>
</head>
<body>
<h2 class="title">收佣管理</h2>
<br/>
<form action="" method="POST" enctype="multipart/form-data" id="commissionManage" class="form-inline">
<div class="row" >
<div class="col-md-10">
<div class="row">
<div class="col-md-8">
<div id="staffImg">
</div><br />
<button type="button" class="button action" data-toggle="modal" data-target="#myConsultant" id="recConsultantBt">
选择员工
</button>
</div>
</div>
<br/>
<div class="row">
<div class="col-md-8">
<label for="intent">目标业绩:</label>
<input name="intent" id="intent" type="text" class="form-control" disabled="true">
</div>
</div>
<br/>
<div class="row">
<div class="col-md-8">
<label for="completeRate">达成率:</label>
<input id="completeRate" type="text" class="form-control" readonly>
</div>
</div>
<br/>
<div class="row">
<div class="col-md-8">
<label for="accounts">应收佣金:</label>
<input name="accounts" id="accounts" type="text" class="form-control">
</div>
</div>
<br/>
<div class="row">
<div class="col-md-8">
<button type="button" class="button action" id="paid">
添加实收佣金
</button>
</div>
</div>
<table class="form-table">
<tbody id="paidTbody">
</tbody>
</table>
</div>
<div class="col-md-2">
<div class="row" style="position: fixed;top:100px;">
<select name="businessType">
<option value="0">买卖</option>
<option value="1">租赁</option>
</select>
</div>
<div class="row">
<input type="submit" id="submit" class="button action" style="position: fixed;top:150px">
</div>
</div>
</div>
</form>
{% include 'recConsultant.html' %}
{{ block('recConsultant') }}
<script>
(function($){
$(document).ready(function(){
var d = new Date();
var month = d.getMonth()+1;
var day = d.getDate();
var output = d.getFullYear() + '/' +
(month<10 ? '0' : '') + month + '/' +
(day<10 ? '0' : '') + day;
init_modal_myConsultantList(addStaff);
$("form").on('click','#paid',function(){
var tr = $("<tr>");
var th = $("<th>");
var td = $("<td>");
var paidTime = $("<input>").attr({"type":"text","value":output}).addClass("form-control");
var paid = $("<input>").attr({"type":"text"}).addClass("form-control");
var paiiDelet = $("<input>").attr({"type":"button","value":"删除"}).addClass("button action paiiDelet form-control");
var th1 = th.clone().append("实收时间:");
var td1 = td.clone().append(paidTime);
var th2 = th.clone().append("实收佣金:");
var td2 = td.clone().append(paid);
var td3 = td.clone().append(paiiDelet);
tr.append(th1).append(td1).append(th2).append(td2).append(td3);
$("#paidTbody").append(tr);
});
$("#staffImg").on("click",".consultantCancel",function(){
$(this).parents("p").remove();
});
$("#accounts").change(function(){
if($("#accounts").val().length > 0){
$("#intent").removeAttr("disabled");
}else{
$("#intent").attr("disabled","true");
}
});
$("#paidTbody").on("click",".paiiDelet",function(){
$(this).parents("tr").remove();
})
});
function addStaff(data){
var row = $("<div>").addClass("row").css("margin-bottom","10px");
var left = $("<div>").addClass("col-md-2");
var img = $("<img>").attr({"src":data.imageUrl,"height":100,"width":100,"style":"margin-right:50px"});
left.append(img);
var mid = $("<div>").addClass("col-md-2");
var label = $("<label>").append(data.name);
mid.append(label);
var mid2 =$("<div>").addClass("col-md-6");
var input = $("<input>").attr({"type":"text"});
var label2 = $("<label>").append("部门:").append(input);
mid2.append(label2);
var right = $("<div>").addClass("col-md-2");
var cancel = $("<input>").attr({"type":"button","value":"删除"}).addClass("button action consultantCancel");
right.append(cancel);
var recommendConsultant = $("<input>").attr({"type":"hidden","name":"data[recConsultant][]","value":data.id});
row.append(left).append(mid).append(mid2).append(right);
var p = $("<p>").append(row).append(recommendConsultant);
$("#consultantImg").append(p);
$("#staffImg").append(p);
controlCommand("staffImg",1,1);
}
})(jQuery);
</script>
</body>
</html>
\ No newline at end of file
<!DOCTYPE HTML>
<html>
<head>
{% set title = contractId?"修改合同":"添加合同" %}
{% set title = result?"修改合同":"添加合同" %}
{% set disabled = result?"disabled":"" %}
<meta charset="utf-8">
<title>{{title}}</title>
</head>
<body>
<h2 class="title">{{title}}</h2>
<form action="" method="POST" enctype="multipart/form-data" class="form-inline">
<div class="alert alert-danger" role="alert" id="messageBox1" style="display:none;">
</div>
<form id="contract" action="" method="POST" enctype="multipart/form-data" class="form-inline">
<div class="row">
<div class="col-md-10">
<div class="col-xs-10">
<!-- Nav tabs -->
<ul class="nav nav-tabs" role="tablist">
<li role="presentation" class="active"><a href="#info" aria-controls="info" role="tab" data-toggle="tab">合同信息</a></li>
......@@ -43,25 +46,25 @@
<br />
<div class="row">
<div class="col-md-6">
<label for="houseNumber">房源编号:</label>
<input name="houseNumber" id="houseNumber" type="text" value="{{result.houseNumber}}" class="form-control" disabled>
<label for="houseNumberText">房源编号:</label>
<input name="houseNumberText" type="text" value="{{result.houseNumber}}" class="form-control" disabled>
</div>
<div class="col-md-6">
<label for="address">房源地址:</label>
<input id="address" type="text" value="{{result.address}}" class="form-control" style="width:60%;" disabled>
<label for="addressText">房源地址:</label>
<input name="addressText" type="text" value="{{result.address}}" class="form-control" style="width:60%;" disabled>
<input type="button" id="select_house" value="选择" data-toggle="modal" data-target="#myModal" class="form-control" {{disabled}}>
</div>
</div>
<br />
<div class="row">
<div class="col-md-6">
<label for="customerNumber">客源编号:</label>
<input id="customerNumber" name="customerNumber" type="text" value="{{result.customerNumber}}" class="form-control" style="width:60%;" disabled>
<label for="customerNumberText">客源编号:</label>
<input name="customerNumberText" type="text" value="{{result.customerNumber}}" class="form-control" style="width:60%;" disabled>
<input type="button" id="select_customer" value="选择" data-toggle="modal" data-target="#addCustomer" class="form-control" {{disabled}}>
</div>
<div class="col-md-6">
<label for="signedDate">签约日:</label>
<input name="signedDate" id="signedDate" type="date" value="{{result.signedDate}}" class="form-control" {{disabled}}>
<input name="signedDate" type="date" value="{{result.signedDate}}" class="form-control">
</div>
</div>
<br />
......@@ -72,7 +75,7 @@
</div>
<div class="col-md-6">
<label for="area">面积:</label>
<input id="area" type="text" value="{{result.area}}" class="form-control">平方米
<input name="area" id="area" type="text" value="{{result.area}}" class="form-control">平方米
</div>
</div>
<br />
......@@ -83,9 +86,9 @@
</div>
<div class="col-md-6">
<label for="managerId">主管:</label>
<select name="managerId" id="managerId" class="form-control" {{disabled}}>
<select name="managerId" id="managerId" class="form-control">
{% for item in managers %}
<option value="{{item.ID}}">{{item.display_name}}</option>
<option value="{{item.ID}}">{{item.display_name}}</option>
{% endfor%}
</select>
</div>
......@@ -113,15 +116,19 @@
</p>
<p>
<label for="oPhone">手机:</label>
<input name="oPhone" id="oPhone" type="text" value="{{result.oPhone}}" class="form-control">
<input name="oPhone" id="oPhone" type="text" value="{{result.oPhone}}" class="form-control" {{disabled}}>
</p>
<p>
<label for="oID">身份证:</label>
<input name="oID" id="oID" type="text" value="{{result.oID}}" class="form-control">
</p>
<p>
<label for="oBroker">经纪人:</label>
<input name="oBroker" id="oBroker" type="text" value="{{result.oBroker}}" class="form-control">
</p>
<p>
<label for="oCommission">佣金:</label>
<input name="oCommission" id="oCommission" type="text" value="{{result.oCommission}}" class="form-control">
<input name="oCommission" id="oCommission" type="text" value="{{result.oCommission}}" class="form-control" {{disabled}}>
</p>
<p>
<label for="oAddress">地址:</label>
......@@ -145,15 +152,19 @@
</p>
<p>
<label for="cPhone">手机:</label>
<input name="cPhone" id="cPhone" type="text" value="{{result.cPhone}}" class="form-control">
<input name="cPhone" id="cPhone" type="text" value="{{result.cPhone}}" class="form-control" {{disabled}}>
</p>
<p>
<label for="cID">身份证:</label>
<input name="cID" id="cID" type="text" value="{{result.cID}}" class="form-control">
</p>
<p>
<label for="cBroker">经纪人:</label>
<input name="cBroker" id="cBroker" type="text" value="{{result.oBroker}}" class="form-control">
</p>
<p>
<label for="cCommission">佣金:</label>
<input name="cCommission" id="cCommission" type="text" value="{{result.cCommission}}" class="form-control">
<input name="cCommission" id="cCommission" type="text" value="{{result.cCommission}}" class="form-control" {{disabled}}>
</p>
<p>
<label for="cAddress">地址:</label>
......@@ -173,10 +184,21 @@
</div>
</div>
</div>
<div class="col-md-2">
<input type="text" name="type" value="1" hidden="hidden">
<input type="text" name="houseId" hidden="hidden">
<input type="submit" id="submit" class="button action" style="position: fixed;">
<div class="col-xs-2">
<input type="hidden" name="type" value="1">
<input type="hidden" name="businessId" id="businessId">
<input type="hidden" name="houseId" id="houseId">
<input type="hidden" name="houseNumber" id="houseNumber">
<input type="hidden" name="customerNumber" id="customerNumber">
<input type="hidden" name="address" id="address">
<div class="row" style="position: fixed;">
<select name="status" id="status">
{% for item in status %}
<option value="{{item.id}}">{{item.value}}</option>
{% endfor %}
</select>
<input type="submit" id="submit" class="button action">
</div>
</div>
</div>
......@@ -185,50 +207,119 @@
(function($){
$(document).ready(function(){
{% if result %}
$("#business").val({{result.business}});
$("#business,#businessId").val({{result.business}});
$("#status").val({{result.status}});
$("#managerId").val({{result.managerId}});
showHouseTag({{result.business}},{{result.houseId}});
showCustomerTag({{result.customerNumber}});
{% endif %}
$("#select_house").click(function(){
init_modal_houseList(selectHouse,$("#business").val());
if(checkBusinessSelected()){
init_modal_houseList(selectHouse,$("#business").val());
}else{
return false;
}
});
$("#select_customer").click(function(){
init_modal_addCustomer(selectCustomer);
if(checkBusinessSelected()){
init_modal_addCustomer(selectCustomer,$("#business").val());
}else{
return false;
}
});
var rulesJson = {
houseNumber:'required',
customerNumber:'required',
businessId:'required',
permitNumber:'required',
area:'required',
price:'required',
signedDate:'required'
};
$('#contract').validate({
onkeyup: false,
onfocusout: false,
ignore: [],
errorClass: "my-error-class",
rules:rulesJson ,
messages: {
houseNumber:'请选择房源',
customerNumber:'请选择客源',
businessId:'请选择业务类型',
permitNumber:'请选输入产证编号',
area:'请选输入面积',
price:'请选输入金额',
signedDate:'请选输入签约日期',
},
errorContainer: "#messageBox1",
errorLabelContainer: "#messageBox1",
submitHandler: function (form) {
form.submit();
}
});
});
function checkBusinessSelected(){
if($("#business").val() == -1){
alert("请先选择业务");
return false;
}
return true;
}
function setBusinessDisabled(){
$("#businessId").val($("#business").val());
$("#business").attr("disabled", true);
}
function selectCustomer(data){
$("input[name='customerNumberText']").val(data.id);
$("#customerNumber").val(data.id);
$("#customerInfo").parent().show();
$("#customerInfo").unbind().click(function(){
window.open("{{adminUrl}}admin.php?page=customer&edit=true&id="+data.id);
});
showCustomerTag(data.id);
close_modal_addCustomer();
setBusinessDisabled();
}
function selectHouse(data){
$("input[name='addressText']").val(data.address);
$("input[name='houseNumberText']").val(data.house_number);
$("#address").val(data.address);
$("#houseNumber").val(data.house_number);
$("#houseId").val(data.id);
var houseType = $("#business").val();
if(houseType != -1){
$("#houseInfo").parent().show();
switch(houseType){
case "0":
houseType = "newHouse";
break;
case "1":
houseType = "secHandHouse";
break;
case "2":
houseType = "rentHouse";
break;
}
$("#houseInfo").unbind().click(function(){
window.open("{{adminUrl}}admin.php?page="+houseType+"&edit=true&id="+data.id);
});
showHouseTag(houseType,data.id);
}
close_modal_houseList();
setBusinessDisabled();
}
function showCustomerTag(id){
$("#customerInfo").parent().show();
$("#customerInfo").unbind().click(function(){
window.open("{{adminUrl}}admin.php?page=customer&edit=true&id="+id);
});
}
function showHouseTag(houseType,id){
houseType = houseType+"";
$("#houseInfo").parent().show();
switch(houseType){
case "0":
houseType = "newHouse";
break;
case "1":
houseType = "secHandHouse";
break;
case "2":
houseType = "rentHouse";
break;
}
$("#houseInfo").unbind().click(function(){
window.open("{{adminUrl}}admin.php?page="+houseType+"&edit=true&id="+id);
});
}
})(jQuery);
</script>
......
{{function("Contract_List::displayTable")}}
\ No newline at end of file
<div class="wrap">
{{function("Contract_List::displayTable")}}
</div>
{% import "macro.html" as macro %}
<!DOCTYPE HTML>
<html>
<head>
......@@ -11,7 +11,7 @@
</head>
<body>
<h2 class="title">{{ title }}</h2>
<div class="alert alert-danger" role="alert" id="error" style="display:none;"></div>
<form action="" method="POST" enctype="multipart/form-data" id="customerForm" class="form-inline">
<div class="row">
<div class="col-md-11">
......@@ -25,6 +25,14 @@
<li role="presentation">
<a href="#house" aria-controls="house" role="tab" data-toggle="tab">详细需求</a>
</li>
<li role="presentation">
<a href="#customer_tracking" aria-controls="customer_tracking" role="tab" data-toggle="tab">房源跟进</a>
</li>
{% if role == 'administrator' or role == 'editor' %}
<li role="presentation">
<a href="#addConsultant" aria-controls="addConsultant" role="tab" data-toggle="tab">置业顾问</a>
</li>
{% endif %}
</ul>
<div class="tab-content">
<div role="tabpanel" class="tab-pane active" id="customer">
......@@ -36,6 +44,17 @@
<div role="tabpanel" class="tab-pane" id="house">
{% include 'customerDetail.html' %}
</div>
<div role="tabpanel" class="tab-pane" id="customer_tracking">
{% include 'save_customer_tracking.html' %}
{{ macro.customer_tracking_list(houseId, 2) }}
</div>
{% if role == 'administrator' or role == 'editor' %}
<div role="tabpanel" class="tab-pane" id="addConsultant">
{% include 'addConsultant.html' %}
</div>
{% elseif role == 'author' %}
<input type="hidden" name="consultant_id" value="{{ consultant_id }}">
{% endif %}
</div>
{% if houseId %}
<label for="houseId" class="hidden"></label>
......@@ -44,7 +63,7 @@
</div>
<div class="col-md-1">
<input type="submit" id="submit" class="button action" style="position: fixed;">
{% if role == 'administrator' %}
{% if role == 'administrator' or role == 'editor' %}
<div class="row" style="position: fixed;top:50px;">
<select id="status" name="status">
{% for item in status %}
......@@ -56,147 +75,28 @@
</div>
</div>
</form>
<!-- 置业顾问弹出层 -->
<div class="modal fade" id="myConsultant" tabindex="-1" role="dialog" aria-labelledby="myModalLabel">
<div class="modal-dialog" role="document">
<div class="modal-content">
<div class="modal-body" style="height: 300px;overflow: auto;">
<select id="consultCity">
<option value="">城市</option>
{% for item in city %}
<option value="{{ item.id }}">{{ item.value }}</option>
{% endfor %}
</select>
<input type="text" placeholder="请出入置业顾问姓名搜索" id="consultantName" class="form-control">
<button type="button" class="button action" id="searchConsult">搜索</button>
<ul id="consultantList">
</ul>
</div>
</div>
</div>
</div>
{% include 'recConsultant.html' %}
{{ block('recConsultant') }}
<script>
(function($){
$(document).ready(function(){
$("#check_in_time").datepicker({
dateFormat: "yy-mm-dd"
});
//基本信息的联动AJAX
$("#baseCity").change(function(){
var cityId = $("#baseCity").val();
var baserArea = $("#baseAreaId");
$('#baseAreaId').find('option:not(:first-child)').remove();
$('#basePlateId').find('option:not(:first-child)').remove();
//城市联动区域
$.ajax({
type: "GET",
url: "/tospur/wp-admin/admin-ajax.php",
data: "action=serachCity&cityId="+cityId,
success:function(json){
addOption(json,baserArea);
}
});
setCity("baseCity","baseAreaId","basePlateId");
});
//区域联动板块
$("#baseAreaId").change(function(){
var basePlate = $("#basePlateId");
var areaId = $("#baseAreaId").val();
var cityId = $("#baseCity").val();
$('#basePlateId').find('option:not(:first-child)').remove();
$.ajax({
type: "GET",
url: "/tospur/wp-admin/admin-ajax.php",
data: "action=serachCity&cityId="+cityId+"&districtId="+areaId,
success:function(json){
addOption(json,basePlate);
}
});
});
//根据上方选择的城市,选择推荐置业顾问的默认城市
$("#recConsultantBt").click(function(){
$('#consultCity').find('option').remove();
$("#consultantList").find("li").remove();
var consulCityId = $("#baseCity").val();
var consultantName =$("#consultantName").val();
var cityName = $("#baseCity").find("option:selected").text();
var option = $("<option>").attr("value",consulCityId).append(cityName);
$("#consultCity").append(option);
$.ajax({
type: "GET",
url: "/tospur/wp-admin/admin-ajax.php",
data: "action=searchConsultant&consulCityId="+consulCityId+"&consultantName="+consultantName,
success:function(json){
for(var i = 0; i <=json.length-1; i++){
var name = json[i]["consultantName"];
var imgUrl = json[i]["imageUrl"];
var img = $("<img>").attr({"src":imgUrl,"height":90,"width":140,"style":"margin-right:50px"});
var li = $("<li>").attr("id",json[i]["id"]).append(img).append(name).addClass("consultantImg");
$("#consultantList").append(li);
}
}
});
});
//添加置业顾问弹出层中搜索框的搜索内容
$("#searchConsult").click(function(){
var consulCityId = $("#consultCity").val();
var consultantName =$("#consultantName").val();
$("#consultantList").find("li").remove();
$.ajax({
type: "GET",
url: "/tospur/wp-admin/admin-ajax.php",
data: "action=searchConsultant&consulCityId="+consulCityId+"&consultantName="+consultantName,
success:function(json){
for(var i = 0; i <=json.length-1; i++){
var name = json[i]["consultantName"];
var imgUrl = json[i]["imageUrl"];
var img = $("<img>").attr({"src":imgUrl,"height":100,"width":100,"style":"margin-right:50px"});
var li = $("<li>").attr("id",json[i]["id"]).append(img).append(name).addClass("consultantImg");
$("#consultantList").append(li);
}
}
});
setArea("baseCity","baseAreaId","basePlateId");
});
//添加置业顾问
$("#consultantList").on("click",".consultantImg",function(){
var url = $(this).find("img").attr("src");
var img = $("<img>").attr({"src":url,"height":100,"width":100,"style":"margin-right:50px"});
var recommendConsultant = $("<input>").attr({"type":"hidden","name":"consultant_id","value": $(this).attr("id")});
var cancel = $("<input>").attr({"type":"button","value":"删除"}).addClass("button action consultantCancel");
var font = $("<font>").attr("style","margin-right:50px").append( $(this).text());
var p = $("<p>").append(img).append(font).append(cancel).append(recommendConsultant);
$("#consultantImg").append(p);
controlCommand("consultantImg",1,1);
});
//删除置业顾问
$("#consultantImg").on("click",".imgCancel,.consultantCancel,.picDelet,.featureCancel",function(){
$(this).parents("p").remove();
});
$("#consultantImg").on("click",".existsCancel",function(){
$(this).parent().remove();
});
$("input[id='keyCheck']").change(function(){
textDisable("keyCheck","key");
});
$("input[id='garageCheck']").change(function(){
textDisable("garageCheck","garage");
});
var error = $('#error');
$('#customerForm').validate({
onkeyup: false,
onfocusout: false,
ignore: [],
errorClass: "my-error-class",
rules: {
name: 'required',
phone: 'required',
description: 'required',
baseCity: {
min: 0
},
......@@ -213,22 +113,26 @@
messages: {
name: '请输入姓名',
phone: '请输入电话',
description: '请输入跟进说明',
baseCity: '请选择城市',
baseAreaId: '请选择区域',
basePlateId: '请选择板块',
status: '请选择状态'
},
errorLabelContainer: "#notice",
errorElement: 'div',
errorLabelContainer: error,
submitHandler: function (form) {
if ($("#consultantImg > p").length == 0) {
alert("请选择置业顾问");
var consultantImg = $('#consultantImg');
if (consultantImg.length == 1 && consultantImg.find('p').length == 0) {
error.html('<label class="my-error-class">请选择置业顾问</label>');
error.show();
} else {
form.submit();
}
}
});
{% if result is not null %}
var json = {
'character': '{{ result.character }}',
'origin': '{{ result.origin }}',
......@@ -244,92 +148,7 @@
'bathroom': '{{ result.bathroom }}'
};
revertOption(json);
function revertOption(data) {
$.each(data, function (i, item) {
$("form").find("select[name='" + i + "']").val(item);
});
}
function textDisable(checkId,textId){
if($('input[id="'+checkId+'"]:checked').length > 0){
$("#"+textId).removeAttr("disabled");
}else{
$("#"+textId).attr("disabled","true");
}
}
function addOption(json,select){
var selectId = select.attr("id");
for(var i = 0; i <=json.length-1; i++){
var id = json[i]["id"];
var value = json[i]["value"];
if(selectId == "acreage" || selectId == "price"){
id = value;
}
var Option = $("<option>").attr({"value": id}).append(value);
select.append(Option);
}
}
function controlCommand(id,number,type){
var num = $("#"+id+" > p").length;
if(num>number){
if(type==0){
alert("最多只能推荐3个房源");
}else if(type==1){
alert("您只能推荐一位置业顾问");
}
$("#"+id).find("p:last-child").remove();
}
}
function getUrlParmas(){
var href = location.search.substr(1,location.search.length-1);
var params = href.split("&");
var map = {};
for(item in params){
var key = params[item].split("=")[0] || "";
var value = params[item].split("=")[1] || "";
map[key] = value;
}
return map;
}
function addList(houseType){
$("#houseList").find("li").remove();
var cityId = $("#baseCity").val();
var buildPropertyId = $("#buildProperty").val();
var room = $("#room").val();
var areaId = $("#areaId").val();
var cityId = $("#cityId").val();
var plateId = $("#plateId").val();
var acreage = $("#acreage").val();
var price = $("#price").val();
$.ajax({
type: "post",
url: "/tospur/wp-admin/admin-ajax.php",
data: "action=searchHouse&cityId="+cityId+"&districtId="+areaId+"&plateId="+plateId+"&buildPropertyId="+buildPropertyId+"&roomId="+room+"&acreage="+acreage+"&totalPrice="+price+"&houseType="+houseType,
success:function(json){
var result = json.result;
var urlParams = getUrlParmas();
for(var i = 0; i <result.length; i++){
var name = result[i]["name"];
var id = result[i]['id'];
var imgUrl = result[i]['path'];
var img = $("<img>").attr({"src":imgUrl,"height":90,"width":140,"style":"margin-right:50px"});
var li = $("<li>").attr("id",id).addClass("addImg").append(img).append(name);
if(urlParams["id"]){
if(urlParams["id"]!=id){
$("#houseList").append(li);
}
}else{
$("#houseList").append(li);
}
}
}
});
}
{% endif %}
});
})(jQuery);
</script>
......
......@@ -48,7 +48,7 @@
<div class="row">
<div class="col-md-4">
<label for="check_in_time">入住时间:</label>
<input type="text" name="check_in_time" id="check_in_time" value="{{ result.check_in_time }}" class="form-control">
<input type="date" name="check_in_time" id="check_in_time" value="{{ result.check_in_time }}" class="form-control">
</div>
</div>
<br>
......@@ -79,6 +79,7 @@
<div class="col-md-6">
<label for="propertyRight">产权:</label>
<select name="propertyRight" id="propertyRight" class="form-control">
<option value="不限" selected="selected">不限</option>
<option value="个人产权">个人产权</option>
<option value="单位产权">单位产权</option>
<option value="售后产权">售后产权</option>
......@@ -96,7 +97,7 @@
<div class="col-md-6">
<label for="decoration">装修:</label>
<select name="decoration" id="decoration" class="form-control">
<option value="不限">不限</option>
<option value="不限" selected="selected">不限</option>
<option value="毛坯">毛坯</option>
<option value="简单装修">简单装修</option>
<option value="中等装修">中等装修</option>
......@@ -110,7 +111,7 @@
<div class="col-md-6">
<label for="age">年代:</label>
<select name="age" id="age" class="form-control">
<option value="不限">不限</option>
<option value="不限" selected="selected">不限</option>
{% for item in age %}
<option value="{{ item }}">{{ item }}</option>
{% endfor %}
......@@ -119,6 +120,7 @@
<div class="col-md-6">
<label for="faceto">朝向:</label>
<select name="faceto" id="faceto" class="form-control">
<option value="不限" selected="selected">不限</option>
<option value="其他">其他</option>
<option value="东"></option>
<option value="南"></option>
......@@ -139,6 +141,7 @@
<div class="col-md-6">
<label>户型:</label>
<select name="bedroom" id="bedroom" class="form-control">
<option value="不限" selected="selected">不限</option>
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
......@@ -151,6 +154,7 @@
</select>
<label for="bedroom"></label>
<select name="hall" id="hall" class="form-control">
<option value="不限" selected="selected">不限</option>
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
......@@ -159,6 +163,7 @@
</select>
<label for="hall"></label>
<select name="bathroom" id="bathroom" class="form-control">
<option value="不限" selected="selected">不限</option>
<option value="0">0</option>
<option value="1">1</option>
<option value="2">2</option>
......@@ -174,28 +179,4 @@
<label for="origin_remark">客源备注:</label><br>
<textarea name="origin_remark" id="origin_remark" rows="5" cols="50" class="form-control">{{ result.origin_remark }}</textarea>
</div>
</div>
<br>
<table class="form-table">
<tbody>
<tr>
<th><label>置业顾问</label></th>
<td>
<div id="consultantImg">
{% for item in consultant %}
<p>
<img src="{{ item.imageUrl }}" height="100" width="100" style="margin-right: 50px">
<span style="margin-right: 50px">{{ item.name }}</span>
<input type="button" value="删除" class="button action consultantCancel existsCancel">
<input type="hidden" name="consultant_id" value="{{ item.id }}">
</p>
{% endfor %}
</div>
<br>
<button type="button" class="button action" data-toggle="modal" data-target="#myConsultant" id="recConsultantBt">
选择置业顾问
</button>
</td>
</tr>
</tbody>
</table>
\ No newline at end of file
</div>
\ No newline at end of file
<div class="wrap">
<h2>客户列表</h2>
<form id="scores-filter" method="post">
<input type="hidden" name="page" value="{{page}}"/>
<select id="listCity" name="listCity">
<option value="0"> 城市</option>
{% for item in city %}
<option {{ item.id == cityId ?"selected":"" }} value="{{ item.id }}">{{ item.value }}</option>
{% endfor %}
</select>
<select id="listDistrict" name="listDistrict">
<option value="0">区域</option>
{% if district %}
{% for item in district %}
<option {{ item.id == districtId ?"selected":"" }} value="{{ item.id }}">{{ item.value }}</option>
<form id="" method="post">
<div>
<label for="status" class="hidden"></label>
<select name="status" id="status">
<option value="-1">状态</option>
{% for item in status %}
<option {{ item.id == status_id ?"selected":"" }} value="{{ item.id }}">{{ item.value }}</option>
{% endfor %}
{% endif %}
</select>
<select id="listPlate" name="listPlate">
<option value="0">板块</option>
{% if plate %}
{% for item in plate %}
<option {{ item.id == plateId ?"selected":"" }} value="{{ item.id }}">{{ item.value }}</option>
</select>
<label for="customer_type" class="hidden"></label>
<select name="customer_type" id="customer_type">
<option value="-1">客户类型</option>
{% for item in customer_type %}
<option {{ item.id == customer_type_id ?"selected":"" }} value="{{ item.id }}">{{ item.value }}</option>
{% endfor %}
{% endif %}
</select>
<select id="totalPrice" name="totalPrice">
<option value ="">价格</option>
{% if dicTotalPrice %}
{% for item in dicTotalPrice %}
<option {{ item.value == totalPrice ?"selected":"" }} value="{{ item.value }}">{{ item.value }}</option>
{% endfor %}
{% endif %}
</select>
<select id="room" name="room">
<option value="0">类型</option>
{% for item in room %}
<option {{ item.id == roomId ?"selected":"" }} value="{{ item.id }}">{{ item.value }}</option>
{% endfor %}
</select>
<select id="buildProperty" name="buildProperty">
<option value="0"> 房型</option>
{% for item in buildProperty %}
<option {{ item.id == buildPropertyId ?"selected":"" }} value="{{ item.id }}">{{ item.value }}</option>
{% endfor %}
</select>
<select id="acreage" name="acreage">
<option value ="">面积</option>
{% if acreage %}
{% for item in dicArea %}
<option {{ item.value == acreage ?"selected":"" }} value="{{ item.value }}">{{ item.value }}</option>
{% endfor %}
{% endif %}
</select>
<select name="status" name="status">
<option value="-1">状态</option>
{% for item in status%}
<option {{ item.id == statusId ?"selected":"" }} value="{{ item.id }}">{{ item.value }}</option>
{% endfor %}
</select>
<input type="text" placeholder="请出入楼盘名" name="searchText">
<input type="hidden" name="hasSearch" value="1"/>
<input type="submit" id="submit" class="button action" value="搜索">
<!-- Now we can render the completed list table -->
{{function("addCustomerTable")}}
</select>
<label for="demand_type" class="hidden"></label>
<select name="demand_type" id="demand_type">
<option value="-1">需求类型</option>
<option value="0">新房</option>
<option value="1">二手房</option>
<option value="2">租房</option>
</select>
<input type="text" placeholder="请输入姓名" name="search_name" value="{{ search_name }}">
<input type="text" placeholder="请输入置业顾问" name="search_consultant_name" value="{{ search_consultant_name }}">
<input type="text" placeholder="请输入电话" name="search_phone" value="{{ search_phone }}">
</div>
<div style="margin-top: 10px;">
<span>日期</span>
<label for="search_min_time" class="hidden"></label>
<input type="date" name="search_min_time" id="search_min_time" value="{{ search_min_time }}">
<label for="search_max_time" class="hidden"></label>
<input type="date" name="search_max_time" id="search_max_time" value="{{ search_max_time }}">
<input type="submit" id="submit" class="button action" value="搜索">
</div>
{{ function("addCustomerTable") }}
<input type="hidden" name="paged" value="1">
</form>
</div>
<script>
(function ($) {
$(document).ready(function(){
$('#demand_type').val('{{ demand_type }}');
});
})(jQuery);
</script>
\ No newline at end of file
<div class="wrap">
<h2>签约-房客跟进</h2>
<form action="" method="get">
<input type="hidden" name="page" value="customerTrackingList">
<div>
<label for="status_type" class="hidden"></label>
<select name="status_type" id="status_type">
<option value="-1">跟进类型</option>
{% for item in status %}
<option {{ item.id == status_type ?"selected":"" }} value="{{ item.id }}">{{ item.value }}</option>
{% endfor %}
</select>
<input type="text" placeholder="请输入置业顾问" name="search_consultant_name" value="{{ search_consultant_name }}">
<span>日期</span>
<label for="search_min_time" class="hidden"></label>
<input type="date" name="search_min_time" id="search_min_time" value="{{ search_min_time }}">
<label for="search_max_time" class="hidden"></label>
<input type="date" name="search_max_time" id="search_max_time" value="{{ search_max_time }}">
<input type="submit" id="submit" class="button action" value="搜索">
</div>
{{ function("addCustomerTrackingTable") }}
<input type="hidden" name="paged" value="1">
</form>
</div>
\ No newline at end of file
......@@ -73,28 +73,28 @@
//搜索置业顾问的方法
function searchConsultant(consulCityId,consultantName){
$.ajax({
type: "GET",
url: "/tospur/wp-admin/admin-ajax.php",
data: "action=searchConsultant&consulCityId="+consulCityId+"&consultantName="+consultantName,
success:function(json){
for(var i = 0; i <=json.length-1; i++){
var name = json[i]["consultantName"];
var imgUrl = json[i]["imageUrl"];
var img = $("<img>").attr({"src":imgUrl,"height":100,"width":100,"style":"margin-right:50px"});
var li = $("<li>").attr("id",json[i]["id"]).append(img).append(name).addClass("consultantImg");
$("#consultantList").append(li);
}
}
});
}
//function searchConsultant(consulCityId,consultantName){
// $.ajax({
// type: "GET",
// url: "/tospur/wp-admin/admin-ajax.php",
// data: "action=searchConsultant&consulCityId="+consulCityId+"&consultantName="+consultantName,
// success:function(json){
// for(var i = 0; i <=json.length-1; i++){
// var name = json[i]["consultantName"];
// var imgUrl = json[i]["imageUrl"];
// var img = $("<img>").attr({"src":imgUrl,"height":100,"width":100,"style":"margin-right:50px"});
// var li = $("<li>").attr("id",json[i]["id"]).append(img).append(name).addClass("consultantImg");
// $("#consultantList").append(li);
// }
// }
// });
//}
//往给定id的select中添加option
function addOption(json,select){
var selectId = select.attr("id");
select.find('option:not(:first-child)').remove();
//select.find('option:not(:first-child)').remove();
for(var i = 0; i <=json.length-1; i++){
var id = json[i]["id"];
var value = json[i]["value"];
......
//城市区域联动
function setCity(citySelector,areaSelector,plateSelector){
var cityId = $("#"+citySelector).val();
var baseArea = $("#"+areaSelector);
var basePlate = $("#"+plateSelector);
baseArea.find('option:not(:first-child)').remove();
basePlate.find('option:not(:first-child)').remove();
//城市联动区域
searchCity(cityId,baseArea)
}
//区域联动板块
function setArea(citySelector,areaSelector,plateSelector){
var cityId = $("#"+citySelector).val();
var areaId = $("#"+areaSelector).val();
var basePlate = $("#"+plateSelector);
basePlate.find('option:not(:first-child)').remove();
searchArea(cityId,areaId,basePlate);
}
//搜索城市的方法
function searchCity(cityId,optionId){
$.ajax({
type: "GET",
url: "/tospur/wp-admin/admin-ajax.php",
data: "action=serachCity&cityId="+cityId,
success:function(json){
addOption(json,optionId);
}
});
}
//搜索区域的方法
function searchArea(cityId,areaId,optionId){
$.ajax({
type: "GET",
url: "/tospur/wp-admin/admin-ajax.php",
data: "action=serachCity&cityId="+cityId+"&districtId="+areaId,
success:function(json){
addOption(json,optionId);
}
});
}
function existsCancel(){
$("#preview,#houseImg,#feature").on("click",".existsCancel,.featureCancel",function(){
$(this).parent().remove();
});
}
//租房与二手房中钥匙与车库的选项
function setCheckBox(){
$("input[id='keyCheck']").change(function(){
textDisable("keyCheck","key");
});
$("input[id='garageCheck']").change(function(){
textDisable("garageCheck","garage");
});
}
//控制当二手房租房中钥匙与车库被勾选时,后面的文本域可使用
function textDisable(checkId,textId){
if($('input[id="'+checkId+'"]:checked').length > 0){
$("#"+textId).removeAttr("disabled");
}else{
$("#"+textId).attr("disabled","true");
}
}
//搜索置业顾问的方法
function searchConsultant(consulCityId,consultantName){
$.ajax({
type: "GET",
url: "/tospur/wp-admin/admin-ajax.php",
data: "action=searchConsultant&consulCityId="+consulCityId+"&consultantName="+consultantName,
success:function(json){
for(var i = 0; i <=json.length-1; i++){
var name = json[i]["consultantName"];
var imgUrl = json[i]["imageUrl"];
var img = $("<img>").attr({"src":imgUrl,"height":100,"width":100,"style":"margin-right:50px"});
var li = $("<li>").attr("id",json[i]["id"]).append(img).append(name).addClass("consultantImg");
$("#consultantList").append(li);
}
}
});
}
//往给定id的select中添加option
function addOption(json,select){
var selectId = select.attr("id");
for(var i = 0; i <=json.length-1; i++){
var id = json[i]["id"];
var value = json[i]["value"];
if(selectId.indexOf("creage") > -1|| selectId.indexOf("rice") > -1){
id = value;
}
var Option = $("<option>").attr({"value": id}).append(value);
select.append(Option);
}
}
//控制推荐房源与置业顾问的个数
function controlCommand(id,number,type){
var num = $("#"+id+" > p").length;
if(num>number){
if(type==0){
alert("最多只能推荐3个房源");
}else if(type==1){
alert("您只能推荐一位置业顾问");
}
$("#"+id).find("p:last-child").remove();
}
}
function getUrlParmas(){
var href = location.search.substr(1,location.search.length-1);
var params = href.split("&");
var map = {};
for(item in params){
var key = params[item].split("=")[0] || "";
var value = params[item].split("=")[1] || "";
map[key] = value;
}
return map;
}
function setDate(id){
$("#"+id).datepicker({
dateFormat: "yy-mm-dd"
});
}
//建筑年代的下拉框
function setAge(){
for(var i = 1981; i<= 2020; i++){
var option = $("<option>").append(i);
$("#pageAge").append(option);
}
}
//租房二手房中,修改界面下拉框的信息还原
function revertOption(data){
$.each(data,function(i,item){
$("form").find("select[name='"+i+"']").val(item);
});
}
//搜索面积的方法
function searchAcreage(cityId,optionId){
$.ajax({
type: "GET",
url: "/tospur/wp-admin/admin-ajax.php",
data: "action=searchArea&cityId="+cityId,
success:function(json){
addOption(json,optionId);
}
});
}
//搜索单价的方法
function searchPrice(cityId,optionId){
$.ajax({
type: "GET",
url: "/tospur/wp-admin/admin-ajax.php",
data: "action=searchUnitPriceRange&cityId="+cityId,
success:function(json){
addOption(json,optionId);
}
});
}
function searchTotalPrice(cityId,optionId){
$.ajax({
type: "GET",
url: "/tospur/wp-admin/admin-ajax.php",
data: "action=searchTotalPrice&cityId="+cityId,
success:function(json){
addOption(json,optionId);
}
});
}
function searchRentalPrice(cityId,optionId){
$.ajax({
type: "GET",
url: "/tospur/wp-admin/admin-ajax.php",
data: "action=searchRentalPrice&cityId="+cityId,
success:function(json){
addOption(json,optionId);
}
});
}
{% block listBlock %}
<div class="wrap">
<h2> {% if house_type == 0%}新房列表{% elseif house_type == 1 %}二手房列表{% else %}租房房列表{% endif %}</h2>
<form id="scores-filter" method="POST">
<form id="scores-filter" method="GET">
<!-- For plugins, we also need to ensure that the form posts back to our current page -->
<input type="hidden" name="page" value="{{page}}"/>
<select id="listCity" name="listCity">
......
{# 定义宏以便多次调用 #}
{% macro customer_tracking_list(houseId) %}
{% set list = function('CustomerTrackingDao::search', houseId) %}
<button class="button" style="margin-bottom: 20px;">房源跟进</button>
{% macro customer_tracking_list(houseId, origin) %}
{% set list = function('CustomerTrackingDao::search', houseId, origin) %}
{% if list %}
<br>
<table class="table table-bordered">
<tr>
<th class="col-md-2 text-center">跟进类型</th>
......
......@@ -89,8 +89,12 @@
<script>
(function($){
$(document).ready(function(){
setCity();
setArea();
$("#baseCity").change(function(){
setCity("baseCity","baseAreaId","basePlateId");
});
$("#baseAreaId").change(function(){
setArea("baseCity","baseAreaId","basePlateId");
});
setDate("checkin");
var json = {"decoration":"{{result.decoration}}"};
revertOption(json);
......
......@@ -4,7 +4,7 @@
<div class="modal-content">
<div class="modal-body" style="height: 300px;overflow: auto;">
<select id="consultCity">
<option value=""> 城市</option>
<option value="-1"> 城市</option>
{% for item in city %}
<option value="{{ item.id }}">{{ item.value }}</option>
{% endfor %}
......@@ -17,4 +17,68 @@
</div>
</div>
</div>
<script>
function close_modal_consultantList(){
$("#myConsultant").modal('hide');
}
function init_modal_myConsultantList(callback){
$("#myConsultant").on("shown.bs.modal",function(){
setConsultantCity();
});
// $("#myConsultant").find("select").change(function(){
// searchConsultant(consulCityId,consultantName);
// });
//添加置业顾问弹出层中搜索框的搜索内容
$("#searchConsult").click(function(){
$("#consultantList").find("li").remove();
var consulCityId = $("#consultCity").val();
var consultantName = $("#consultantName").val();
searchConsultant(consulCityId,consultantName);
});
$("#consultantList").on("click",".consultantImg",function(){
callback($(this).data());
});
}
function setConsultantCity(){
var city = $("#consultCity");
var consultantName =$("#consultantName").val();
if($("#baseCity").length>0){
var consultCity = $("#baseCity").val();
city.val(consultCity);
searchConsultant(consultCity,consultantName);
}else{
var consultCity = city.val();
}
city.change(function(){
var consultCity = city.val();
searchConsultant(consultCity,consultantName);
})
}
function searchConsultant(consulCityId,consultantName){
$.ajax({
type: "GET",
url: "/tospur/wp-admin/admin-ajax.php",
data: "action=searchConsultant&consulCityId="+consulCityId+"&consultantName="+consultantName,
success:function(json){
$("#consultantList").find("li").remove();
if(json){
for(var i = 0; i <=json.length-1; i++){
var item = json[i];
var name = item["name"];
var imgUrl = item["imageUrl"];
var img = $("<img>").attr({"src":imgUrl,"height":100,"width":100,"style":"margin-right:50px"});
var li = $("<li>").attr("id",item["id"]).append(img).append(name).addClass("consultantImg").data(item);
$("#consultantList").append(li);
}
}
}
});
}
</script>
{% endblock %}
\ No newline at end of file
......@@ -89,6 +89,8 @@
$("#modal_houseList").on("click",".row",function(){
callback($(this).data());
});
};
function setCityArea(){
var acreage =$("#myModal_acreage");
......@@ -99,6 +101,7 @@
if($("#baseCity").length>0){
var cityId = $("#baseCity").val();
city.val(cityId);
searchCity(cityId,area);
}else{
var cityId = city.val();
}
......@@ -108,7 +111,7 @@
var areaId = area.val();
area.find('option:not(:first-child)').remove();
plate.find('option:not(:first-child)').remove();
searchCity($(this).val(),area)
searchCity(cityId,area);
//城市面积联动
searchAcreage(cityId, acreage);
//城市联动房子价格
......@@ -125,7 +128,7 @@
//城市面积联动
searchAcreage(cityId, acreage);
//城市联动房子价格
searchPrice(cityId, price);
searchTotalPrice(cityId, price);
}
function judgeHouseType(type){
......
......@@ -86,8 +86,12 @@
<script>
(function($){
$(document).ready(function(){
setCity();
setArea();
$("#baseCity").change(function(){
setCity("baseCity","baseAreaId","basePlateId");
});
$("#baseAreaId").change(function(){
setArea("baseCity","baseAreaId","basePlateId");
});
setCheckBox();
setAge();
setDate("entrustDay");
......@@ -157,10 +161,6 @@
alert("请选择推荐房源");
return false;
}
if($("#feature > div").length == 0){
alert("请选择推荐特色");
return false;
}
form.submit();
}
});
......
......@@ -93,8 +93,12 @@
<script>
(function($){
$(document).ready(function(){
setCity();
setArea();
$("#baseCity").change(function(){
setCity("baseCity","baseAreaId","basePlateId");
});
$("#baseAreaId").change(function(){
setArea("baseCity","baseAreaId","basePlateId");
});
setCheckBox();
setAge();
setDate("entrustDay");
......
......@@ -29,16 +29,16 @@ class ContractDao {
$result = $wpdb->update(Config::TOSPUR_CONTRACT,$params,array(
"id" => $id
));
if($result){
return $result;
}else{
if($wpdb->last_error)
return $wpdb->last_error;
}
return $result;
}
public static function searchContract($id){
global $wpdb;
$sql = "select * from ".Config::TOSPUR_CONTRACT." where id = %d;";
$sql = "select tc.*,th.address from ".Config::TOSPUR_CONTRACT." tc
left join ".Config::TOSPUR_HOUSE_TABLE." th on tc.houseId = th.id
where tc.id = %d;";
$result = $wpdb->get_row($wpdb->prepare($sql,$id));
if($result){
return $result;
......
......@@ -31,7 +31,18 @@ class CustomerDao
public static function searchCustomerByNameOrPhone(){
global $wpdb;
$search = "%".$_REQUEST['search']."%";
$sql = "SELECT tcs.id,tcs.name,tcs.phone FROM ".Config::TOSPUR_CUSTOMER_TABLE." tcs where tcs.name like %s or tcs.phone like %s";
$sql = "SELECT tcs.id,tcs.name,tcs.phone FROM ".Config::TOSPUR_CUSTOMER_TABLE." tcs where (tcs.name like %s or tcs.phone like %s)";
switch($_REQUEST["customerDemand"]){
case "0":
$sql .= " and tcs.new_house = 1";
break;
case "1":
$sql .= " and tcs.secondHand_house = 1";
break;
case "2":
$sql .= " and tcs.rent_house = 1";
break;
}
$result = $wpdb->get_results($wpdb->prepare($sql, $search,$search));
wp_send_json($result);
}
......
......@@ -35,13 +35,13 @@ class CustomerTrackingDao
}
}
public static function search($house_id)
public static function search($house_id, $origin)
{
global $wpdb;
$sql = 'SELECT tct.*,ts.status_name,tc.name FROM ' . Config::TOSPUR_CUSTOMER_TRACKING_TABLE . ' tct' .
' left join (SELECT * FROM ' . Config::TOSPUR_STATUS_TABLE . ' where status_type = 3) as ts on tct.status_type = ts.status_id' .
' left join ' . Config::TOSPUR_CONSULTANT . ' tc on tct.consultant_id = tc.id' .
' where tct.house_id = ' . $house_id;
' where tct.house_id = ' . $house_id . ' and tct.origin = ' . $origin;
return $wpdb->get_results($sql);
}
......
<?php
class HouseDao {
public static function updateStatus($status,$houseId){
global $wpdb;
$result = $wpdb->update(Config::TOSPUR_HOUSE_TABLE,array(
'status' => $status
),array(
'id' => $houseId
));
if($wpdb->last_error)
return $wpdb->last_error;
return $result;
}
public static function checkHouseStatus($houseId){
global $wpdb;
$result = $wpdb->get_row(Config::TOSPUR_HOUSE_TABLE,array(
'id' => $houseId
));
if($wpdb->last_error)
return $wpdb->last_error;
return $result;
}
}
\ No newline at end of file
......@@ -202,7 +202,7 @@ class SearchDao
" left join ".Config::DIC_CITY_TABLE." dc on th.plate_id = dc.plateId".
" left join (select id as rid,value as r_value,literal from ".Config::DIC_ROOM_TABLE.") dr on th.room_id = dr.r_value".
" left join (select id as image_id,path from ".Config::TOSPUR_IMAGE_TABLE.") ti on ti.image_id = th.frontCover_id".
" where 1=1";
" where 1=1 and th.status = 1 ";
if ($array['cityId'] > -1) {
$params[] = $array['cityId'];
$sql = $sql . " and cityId=%d";
......@@ -295,7 +295,7 @@ class SearchDao
public static function searchConsultant($consulCityId = NULL,$consultantName = NULL){
global $wpdb;
$sql = "select id,name as consultantName,imageUrl from ".Config::TOSPUR_CONSULTANT." where 1=1";
$sql = "select id,name,imageUrl from ".Config::TOSPUR_CONSULTANT." where 1=1";
$params = array();
if($consulCityId != NULL){
$params[] = $consulCityId;
......
......@@ -27,7 +27,9 @@ function tospur_init()
require_once(PLUGIN_DIR . 'Admin/secHandHouseList.php');
require_once(PLUGIN_DIR . 'Admin/rentHouse.php');
require_once(PLUGIN_DIR . 'Admin/rentHouseList.php');
require_once(PLUGIN_DIR . 'Admin/feature.php');
require_once(PLUGIN_DIR . 'Admin/customer.php');
require_once(PLUGIN_DIR . 'Admin/customerList.php');
require_once(PLUGIN_DIR . 'Admin/customerTrackingList.php'); require_once(PLUGIN_DIR . 'Admin/feature.php');
require_once(PLUGIN_DIR . 'Admin/introduction.php');
require_once(PLUGIN_DIR . 'Admin/Contract.php');
require_once(PLUGIN_DIR . 'Admin/consultant_score.php');
......@@ -35,6 +37,7 @@ function tospur_init()
require_once(PLUGIN_DIR . 'Admin/tospur_sale.php');
require_once(PLUGIN_DIR . 'Admin/TCSyncView.php');
require_once(PLUGIN_DIR . 'Admin/Contract_List.php');
require_once(PLUGIN_DIR . 'Admin/commissionManage.php');
add_action('admin_menu', 'reset_menu');
tospur_register_script_style();
......@@ -175,17 +178,18 @@ function reset_menu()
{
add_menu_page('新房列表','新房列表', 'edit_published_posts', 'newHouseList', 'function_newHouseList', 'dashicons-menu', 6);
add_submenu_page('newHouseList', '添加新房', '添加新房', 'edit_published_posts', 'newHouse', 'House::init_view');
add_menu_page('二手房列表','二手房列表', 'moderate_comments', 'secHandHouseList', 'function_secHandHouseList', 'dashicons-menu', 7);
add_menu_page('二手房列表','二手房列表', 'edit_published_posts', 'secHandHouseList', 'function_secHandHouseList', 'dashicons-menu', 7);
add_submenu_page('secHandHouseList', '添加二手房', '添加二手房', 'edit_published_posts', 'secHandHouse', 'SecHandHouse::secHandHouse_html');
add_submenu_page('secHandHouseList', '添加特色', '添加特色', 'edit_published_posts', 'add_feature', 'feature::add_feature_html');
add_menu_page('租房列表','租房列表', 'edit_published_posts', 'rentHouseList', 'function_rentHouseList', 'dashicons-menu', 8);
add_submenu_page('rentHouseList', '添加租房', '添加租房', 'edit_published_posts', 'rentHouse', 'RentHouse::rentHouse_html');
add_menu_page("诚信宣言", "诚信宣言", "author", "introduction", "introduction::introduction_html", 'dashicons-menu', 9);
add_menu_page('合同列表','合同列表', 'edit_published_posts', 'contractList', 'Contract_List::showTableView', 'dashicons-menu', 10);
add_submenu_page('contractList', '合同管理', '合同管理', 'moderate_comments', 'contract', 'Contract::init_view');
add_menu_page('客户列表','客户列表', 'moderate_comments', 'customerList', 'function_customerList', 'dashicons-menu', 11);
add_submenu_page('customerList', '新增客户', '新增客户', 'moderate_comments', 'customer', 'customer::customer_html');
add_submenu_page('contractList', '添加合同', '添加合同', 'edit_published_posts', 'contract', 'Contract::init_view');
add_menu_page('客户列表','客户列表', 'edit_published_posts', 'customerList', 'function_customerList', 'dashicons-menu', 11);
add_submenu_page('customerList', '新增客户', '新增客户', 'edit_published_posts', 'customer', 'customer::customer_html');
add_menu_page('签约—房客跟进', '签约—房客跟进', 'edit_published_posts', 'customerTrackingList', 'function_customerTrackingList', 'dashicons-menu', 12);
add_menu_page('收佣管理','收佣管理', 'edit_published_posts', 'commissionManage', 'commissionManage::commissionManage_html', 'dashicons-menu', 13);
add_menu_page("同步数据", "同步数据", "manage_options", "sync", "TCSyncView::display", 'dashicons-menu');
//移除更新信息
remove_action( 'admin_notices', 'update_nag', 3 );
......
......@@ -264,7 +264,7 @@ function user_redirect($user)
$url = null;
if ($user->ID > 0) {
$role = $user->roles[0];
if ($role == 'administrator' || $role == 'editor') {
if ($role == 'administrator' || $role == 'editor' || $role == 'author') {
$url = admin_url('admin.php?page=newHouseList');
} else {
$url = site_url();
......
......@@ -4,7 +4,7 @@ $context = array();
$context['theme'] = get_template_directory_uri();
require_once(WP_PLUGIN_DIR . "/tospur/Dao/SearchDao.php");
$cityId = 1;
$cityId = 2;
if ($_GET['cityId'])
$cityId = $_GET['cityId'];
$houseType = 0;
......
<?php
$context = array();
$context['theme'] = get_template_directory_uri();
$context['url'] = home_url();
$current_user = wp_get_current_user();
$user_id = $current_user->ID;
if ($user_id != 0) {
$context['user_id'] = $user_id;
$context['phone'] = $current_user->data->user_login;
$city = SearchDao::searchCity();
$context['city'] = $city;
Timber::render('sale.html', $context);
}else{
wp_redirect($const_login_page);
exit;
}
?>
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=360, user-scalable=0"/>
<meta name="apple-mobile-web-app-capable" content="yes"/>
<meta name="apple-mobile-web-app-status-bar-style" content="black"/>
<meta name="format-detection" content="telephone=no"/>
<title>房东服务</title>
<link rel="stylesheet" type="text/css" href="{{ theme }}/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="{{ theme }}/css/rent.css">
<script type="text/javascript" src="{{ theme }}/js/iscroll.js"></script>
<script type="text/javascript" src="{{ theme }}/js/jquery.min.js"></script>
<script type="text/javascript" src="{{ theme }}/js/jquery.validate.js"></script>
<script type="text/javascript" src="{{ theme }}/js/jquery.mobile.custom.min.js"></script>
<script type="text/javascript" src="{{ theme }}/js/bootstrap.min.js"></script>
</head>
<body>
<ul id="tab" class="list-unstyled btn-group-justified tab">
<li class="btn-group active">
<a href="#secondhand" data-toggle="tab" class="btn">出售</a>
</li>
<li class="btn-group">
<a href="#rent" data-toggle="tab" class="btn">出租</a>
</li>
</ul>
<div id="wrapper">
<div id="scroller" class="tab-content">
<div class="tab-pane fade in active" id="secondhand">
<form id="secondhandForm" data-house="1">
<ul class="list-unstyled">
<li>
<label class="col-xs-2">城市:</label>
<p class="col-xs-10">
<select class="form-control" name="cityId">
{% for item in city %}
<option value="{{ item.id }}">{{ item.value }}</option>
{% endfor %}
</select>
</p>
</li>
<li>
<label class="col-xs-3">小区名称:</label>
<p class="col-xs-9">
<input type="text" class="form-control" name="community_name">
</p>
</li>
<li>
<label class="col-xs-2">户型:</label>
<p class="col-xs-10">
<input type="number" class="form-control width-sm" name="bedroom" value="0"><input type="number" class="form-control width-sm" name="hall" value="0"><input type="number" class="form-control width-sm" name="kitchen" value="0"><input type="number" class="form-control width-sm" name="bathroom" value="0">卫)
</p>
</li>
<li>
<label class="col-xs-2">面积:</label>
<p class="col-xs-8">
<input type="number" class="form-control" name="covered_area">
</p>
<p class="col-xs-2">m<em>2</em></p>
</li>
<li>
<label class="col-xs-3">所在楼层:</label>
<p class="col-xs-9">
<input type="number" class="form-control width-sm" name="floor">层/共<input type="number" class="form-control width-sm" name="total_floor">层)
</p>
</li>
<li>
<label class="col-xs-2">朝向:</label>
<p class="col-xs-10">
<select class="form-control" name="faceto">
<option value="其他">其他</option>
<option value="东"></option>
<option value="南"></option>
<option value="西">西</option>
<option value="北"></option>
<option value="东西">东西</option>
<option value="南北">南北</option>
<option value="南南">南南</option>
<option value="东南">东南</option>
<option value="东北">东北</option>
<option value="西南">西南</option>
<option value="西北">西北</option>
</select>
</p>
</li>
<li>
<label class="col-xs-3">期望售价:</label>
<p class="col-xs-7">
<input type="number" class="form-control" name="price">
</p>
<p class="col-xs-2">万元</p>
</li>
<li>
<label class="col-xs-12">房源描述:</label>
<p class="col-xs-12">
<textarea class="form-control" rows="8" placeholder="选填" name="description"></textarea>
</p>
</li>
</ul>
<input type="submit" value="提交" class="btn btn-lg">
</form>
</div>
<div class="tab-pane fade" id="rent">
<form id="rentForm" data-house="2">
<ul class="list-unstyled">
<li>
<label class="col-xs-2">城市:</label>
<p class="col-xs-10">
<select class="form-control" name="cityId">
{% for item in city %}
<option value="{{ item.id }}">{{ item.value }}</option>
{% endfor %}
</select>
</p>
</li>
<li>
<label class="col-xs-3">小区名称:</label>
<p class="col-xs-9">
<input type="text" class="form-control" name="community_name">
</p>
</li>
<li>
<label class="col-xs-2">户型:</label>
<p class="col-xs-10">
<input type="number" class="form-control width-sm" name="bedroom" value="0"><input type="number" class="form-control width-sm" name="hall" value="0"><input type="number" class="form-control width-sm" name="kitchen" value="0"><input type="number" class="form-control width-sm" name="bathroom" value="0">卫)
</p>
</li>
<li>
<label class="col-xs-2">面积:</label>
<p class="col-xs-8">
<input type="number" class="form-control" name="covered_area">
</p>
<p class="col-xs-2">m<em>2</em></p>
</li>
<li>
<label class="col-xs-3">所在楼层:</label>
<p class="col-xs-9">
<input type="number" class="form-control width-sm" name="floor">层/共<input type="number" class="form-control width-sm" name="total_floor">层)
</p>
</li>
<li>
<label class="col-xs-2">朝向:</label>
<p class="col-xs-10">
<select class="form-control" name="faceto">
<option value="其他">其他</option>
<option value="东"></option>
<option value="南"></option>
<option value="西">西</option>
<option value="北"></option>
<option value="东西">东西</option>
<option value="南北">南北</option>
<option value="南南">南南</option>
<option value="东南">东南</option>
<option value="东北">东北</option>
<option value="西南">西南</option>
<option value="西北">西北</option>
</select>
</p>
</li>
<li>
<label class="col-xs-3">期望租金:</label>
<p class="col-xs-7">
<input type="number" class="form-control" name="price">
</p>
<p class="col-xs-2">元/月</p>
</li>
<li>
<label class="col-xs-12">房源描述:</label>
<p class="col-xs-12">
<textarea class="form-control" rows="8" placeholder="选填" name="description"></textarea>
</p>
</li>
</ul>
<input type="submit" value="提交" class="btn btn-lg">
</form>
</div>
</div>
</div>
<div class="modal fade" id="myModal">
<div class="modal-dialog">
<div class="modal-content text-center">
<h4>提示</h4>
<p id="notice"></p>
<button type="button" class="btn btn-lg btn-block" data-dismiss="modal">确认</button>
</div>
</div>
</div>
<script>
var notice;
var myModal;
var flag = false;
var user_id = '{{ user_id }}';
var phone = '{{ phone }}';
var myScroll;
window.addEventListener("load",function(){
myScroll = new IScroll('#wrapper',{
click: true,
submit: true
});
},false);
$(document).ready(function () {
notice = $('#notice');
myModal = $('#myModal');
validate_sale_form($('#secondhandForm'));
validate_sale_form($('#rentForm'));
notice.bind('DOMNodeInserted', function () {
$(this).children(':not(:first)').remove();
});
myModal.on('hide.bs.modal', function () {
notice.children().remove();
});
$('#tab a').click(function () {
flag = true;
myScroll.scrollTo(0, 0);
setTimeout(function () {
myScroll.refresh();
}, 200);
});
});
function validate_sale_form(form) {
form.validate({
onkeyup: false,
onfocusout: false,
rules: {
community_name: 'required',
bedroom: {
digits: true,
min: 0
},
hall: {
digits: true,
min: 0
},
kitchen: {
digits: true,
min: 0
},
bathroom: {
digits: true,
min: 0
},
covered_area: {
required: true,
number: true,
min: 0
},
floor: {
required: true,
digits: true,
min: 0
},
total_floor: {
required: true,
digits: true,
min: 0
},
faceto: 'required',
price: {
required: true,
number: true,
min: 0
}
},
messages: {
community_name: '请输入小区名',
bedroom: '请输入户型',
hall: '请输入户型',
kitchen: '请输入户型',
bathroom: '请输入户型',
covered_area: '请输入面积',
floor: '请输入所在楼层',
total_floor: '请输入总楼层',
faceto: '请选择朝向',
price: '请输入期望价格'
},
errorLabelContainer: "#notice",
errorElement: 'span',
invalidHandler: function () {
flag = false;
myModal.modal('show');
},
submitHandler: function (form) {
flag = true;
if (flag) {
var house_type = $(form).data('house');
$.ajax({
type: 'POST',
url: '{{ url }}/wp-admin/admin-ajax.php/',
data: 'action=submit_sale&user_id='+user_id+'&phone=' + phone + '&house_type=' + house_type + '&' + $(form).serialize(),
success: function (data) {
if (data.code == 2000) {
notice.html('<span>提交成功</span>');
notice.show();
myModal.modal('show');
} else {
notice.html('<span>提交失败</span>');
notice.show();
myModal.modal('show');
}
}
});
}
}
});
form.find('input[type=submit]').tap(function () {
form.submit();
return false;
});
}
</script>
</body>
</html>
\ No newline at end of file
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