Commit 43432316 by shz

tospur

parent 59b65ce6
......@@ -6,6 +6,7 @@ class Config {
const A_HOUSE_IMAGE_TABLE = 'a_house_image';
const A_HOUSE_RECOMMEND_TABLE = 'a_house_recommend';
const A_HOUSE_USER_TABLE = 'a_house_user';
const A_HOUSE_TAG_TABLE = 'a_house_tag';
const DIC_CITY_TABLE = 'dic_city';
const DIC_ROOM_TABLE = 'dic_room';
const DIC_BUILDPROPERTY_TABLE = 'dic_buildproperty';
......@@ -15,8 +16,14 @@ class Config {
const DIC_PHOTOTYPE_TABLE = "dic_phototype";
const TOSPUR_ORGANIZATION_TABLE = 'tospur_organization';
const TOSPUR_CONSULTANT = 'tospur_consultant';
const TOSPUR_CONSULTANT_SCORE_TABLE = 'tospur_consultant_score';
const TOSPUR_HOUSE_TABLE = 'tospur_house';
const TOSPUR_IMAGE_TABLE = 'tospur_image';
const TOSPUR_TAG_TABLE = 'tospur_tag';
const TOSPUR_VIEW_HOUSE_TABLE = 'tospur_view_house';
const TOSPUR_VERIFY_TABLE = 'tospur_verify';
const WP_USERS_TABLE = 'wp_users';
const DIC_RENTALPRICE_TABLE = 'dic_rentalprice';
//sync url
......
......@@ -98,13 +98,29 @@ class SearchDao
{
global $wpdb;
$where = " where 1=1";
if (isset($_GET['cityId'])) {
if ($cityId) {
$where .= " and cityId = " . $cityId;
}
$result = $wpdb->get_results($wpdb->prepare('select id,priceValue as value from ' . Config::DIC_TOTALPRICE_TABLE . $where, $cityId));
return $result;
}
public static function ajax_searchRentalPrice()
{
wp_send_json(SearchDao::searchRentalPrice($_GET['cityId']));
}
public static function searchRentalPrice($cityId)
{
global $wpdb;
$where = " where 1=1";
if ($cityId) {
$where .= " and cityId = " . $cityId;
}
$result = $wpdb->get_results($wpdb->prepare('select id,priceValue as value from ' . Config::DIC_RENTALPRICE_TABLE . $where, $cityId));
return $result;
}
public static function ajax_searchOrganization()
{
wp_send_json(SearchDao::searchOrganization($_GET['parentId']));
......@@ -143,8 +159,11 @@ class SearchDao
'roomId' => $_POST['roomId'],
'acreage' => $_POST['acreage'],
'totalPrice' => $_POST['totalPrice'],
'rentalPrice' => $_POST['rentalPrice'],
'searchText' => $_POST['searchText'],
'houseType' => $_POST['houseType'],
'userType' => $_POST['userType'],
'userId' => $_POST['userId'],
'index' => $_POST['index']
)
);
......@@ -203,9 +222,11 @@ class SearchDao
$params[] = $priceArray[1];
$sql = $sql . " and total_price between %d and %d";
}
if ($array['searchText'] != null) {
$params[] = "%" . $array['searchText'] . "%";
$sql = $sql . " and name like %s";
if ($array['rentalPrice'] > -1) {
$priceArray = explode("-", $array['rentalPrice']);
$params[] = $priceArray[0];
$params[] = $priceArray[1];
$sql = $sql . " and rent between %d and %d";
}
if ($array['houseType'] > -1) {
$params[] = $array['houseType'];
......@@ -216,6 +237,11 @@ class SearchDao
$params[] = $array['userId'];
$sql = $sql . " and id in (select house_id from a_house_user where user_type = %d and user_id = %d)";
}
if ($array['searchText'] != null) {
$params[] = '%'.$array['searchText'].'%';
$params[] = '%'.$array['searchText'].'%';
$sql = $sql . " and (name like '%s' or address like '%s')";
}
$sql = $sql . $orderbySql;
......@@ -269,8 +295,7 @@ class SearchDao
$house_id = $value->id;
$house_ids[] = $house_id;
}
$string = '(' . implode(',', array_map('intval', $house_ids)) . ')';
$tag_result = SearchDao::search_house_tag($string);
$tag_result = SearchDao::search_house_tag($house_ids);
//标签
if ($tag_result) {
foreach ($tag_result as $key => $value) {
......@@ -278,7 +303,7 @@ class SearchDao
}
}
//图片
$image_result = SearchDao::search_house_image($string);
$image_result = SearchDao::search_house_image($house_ids);
if ($image_result) {
foreach ($image_result as $key => $value) {
$array['images'][$value->house_id] = home_url() . Image::getImage($value->path,'small');
......@@ -293,18 +318,20 @@ class SearchDao
public static function search_house_image($house_ids)
{
$string = '(' . implode(',', array_map('intval', $house_ids)) . ')';
$sql = 'select ahi.house_id,ti.path from a_house_image ahi' .
' left join tospur_image ti on ahi.image_id = ti.id' .
' where ti.image_type in (1,5) and house_id in ' . $house_ids . ' group by house_id';
' where ti.image_type in (1,5) and house_id in ' . $string . ' group by house_id';
global $wpdb;
return $wpdb->get_results($sql);
}
public static function search_house_tag($house_ids)
{
$string = '(' . implode(',', array_map('intval', $house_ids)) . ')';
$sql = 'select aht.house_id,tt.name from a_house_tag aht' .
' left join tospur_tag tt on aht.tag_id = tt.id' .
' where house_id in ' . $house_ids;
' where house_id in ' . $string;
global $wpdb;
return $wpdb->get_results($sql);
}
......
<?php
require_once(PLUGIN_DIR . 'Config.php');
class TospurDao
{
//insert 预约看房
public static function insert_view_house($house_id, $user_id, $date, $index, $time, $consultant_id)
{
$insert_view_house_array = array(
'house_id' => $house_id,
'user_id' => $user_id,
'date' => $date,
'time_index' => $index,
'time' => $time,
'consultant_id' => $consultant_id,
'handle' => 0
);
global $wpdb;
$result = $wpdb->insert(Config::TOSPUR_VIEW_HOUSE_TABLE, $insert_view_house_array);
return $result;
}
public static function update_view_house($id)
{
global $wpdb;
$result = $wpdb->update(Config::TOSPUR_VIEW_HOUSE_TABLE, array(
'handle' => 1,
'handle_date' => current_time('Y-m-d H:i:s')
), array(
'id' => $id
));
return $result;
}
public static function update_view_house_consultant($house_id, $consultant_id)
{
global $wpdb;
$result = $wpdb->update(Config::TOSPUR_VIEW_HOUSE_TABLE, array(
'consultant_id' => $consultant_id
), array(
'id' => $house_id
));
return $result;
}
//search 预约看房 user_id
public static function search_view_house_by_user_id($user_id)
{
global $wpdb;
$sql = 'select v.house_id,v.date,v.time,v.consultant_id,v.handle,h.name from ' . Config::TOSPUR_VIEW_HOUSE_TABLE . ' v ' .
'left join ' . Config::TOSPUR_HOUSE_TABLE . ' h on v.house_id = h.id ' .
'where v.user_id = ' . $user_id . ' order by v.date desc';
return $wpdb->get_results($sql);
}
//search 预约看房 consultant_id
public static function search_view_house_by_consultant_id($consultant_id)
{
global $wpdb;
$sql = 'select v.id,v.house_id,v.date,v.time,v.user_id,v.handle,h.name from ' . Config::TOSPUR_VIEW_HOUSE_TABLE . ' v ' .
'left join ' . Config::TOSPUR_HOUSE_TABLE . ' h on v.house_id = h.id ' .
'where v.consultant_id = ' . $consultant_id . ' order by v.date desc';
return $wpdb->get_results($sql);
}
//insert 置业顾问评分
public static function insert_consultant_score($consultant_id, $user_id, $score, $valid = 1)
{
$insert_consultant_score_array = array(
'consultant_id' => $consultant_id,
'user_id' => $user_id,
'score' => $score,
'valid' => $valid
);
global $wpdb;
$result = $wpdb->insert(Config::TOSPUR_CONSULTANT_SCORE_TABLE, $insert_consultant_score_array);
return $result;
}
//search 置业顾问信息
public static function search_consultant_info($consultant_id)
{
global $wpdb;
$sql = 'select c.*,u.display_name,s.average_score from ' . Config::TOSPUR_CONSULTANT . ' c ' .
'left join ' . Config::WP_USERS_TABLE . ' u on c.id = u.ID ' .
'left join (select consultant_id,sum(score)/count(score) as average_score from ' . Config::TOSPUR_CONSULTANT_SCORE_TABLE . ' group by consultant_id) s ' .
'on c.id = s.consultant_id where c.id = ' . $consultant_id;
return $wpdb->get_row($sql);
}
public static function update_consultant_score($score_id, $valid)
{
global $wpdb;
$result = $wpdb->update(Config::TOSPUR_CONSULTANT_SCORE_TABLE, array(
'valid' => $valid
), array(
'id' => $score_id
));
return $result;
}
public static function search_tospur_verify($phone, $code)
{
global $wpdb;
$sql = 'select code from ' . Config::TOSPUR_VERIFY_TABLE . ' where phone = ' . $phone . ' and status = 0 ' .
'and create_time > NOW() - INTERVAL 30 MINUTE ' .
'order by create_time desc limit 1';
return $wpdb->get_var($sql);
}
public static function insert_tospur_verify($phone, $code)
{
$insert_tospur_verify_array = array(
'phone' => $phone,
'code' => $code,
'create_time' => current_time('Y-m-d H:i:s'),
'status' => 0
);
global $wpdb;
$result = $wpdb->insert(Config::TOSPUR_VERIFY_TABLE, $insert_tospur_verify_array);
return $result;
}
public static function update_tospur_verify($phone)
{
global $wpdb;
$wpdb->update(Config::TOSPUR_VERIFY_TABLE, array(
'status' => 1
), array(
'phone' => $phone
));
}
public static function search_consultant_by_city($city_id, $index)
{
global $wpdb;
$consultant_sql = 'select c.*,u.display_name,s.average_score from ' . Config::TOSPUR_CONSULTANT . ' c ' .
'left join ' . Config::WP_USERS_TABLE . ' u on c.id = u.ID ' .
'left join (select consultant_id,sum(score)/count(score) as average_score from ' . Config::TOSPUR_CONSULTANT_SCORE_TABLE . ' where valid=1 group by consultant_id) s on c.id = s.consultant_id ' .
'where cityid = ' . $city_id . ' LIMIT ' . $index . ',20;';
return $wpdb->get_results($consultant_sql);
}
public static function search_house_image($house_ids)
{
$string = '(' . implode(',', array_map('intval', $house_ids)) . ')';
$sql = 'select * from (select ahi.house_id,ti.path,ti.image_type,case ti.image_type ' .
'when 1 then 1 ' .
'when 5 then 1 ' .
'ELSE 2 ' .
'end as type from ' . Config::A_HOUSE_IMAGE_TABLE . ' ahi ' .
'left join ' . Config::TOSPUR_IMAGE_TABLE . ' ti on ahi.image_id = ti.id ' .
'where house_id in ' . $string . ' order by type) as image group by house_id;';
global $wpdb;
return $wpdb->get_results($sql);
}
public static function search_house_tag($house_ids)
{
$string = '(' . implode(',', array_map('intval', $house_ids)) . ')';
$sql = 'select aht.house_id,tt.name from ' . Config::A_HOUSE_TAG_TABLE . ' aht' .
' left join ' . Config::TOSPUR_TAG_TABLE . ' tt on aht.tag_id = tt.id' .
' where house_id in ' . $string;
global $wpdb;
return $wpdb->get_results($sql);
}
}
?>
\ No newline at end of file
......@@ -94,9 +94,13 @@ class TCSync {
foreach($result['data']['UnitPriceRange'] as $item){
$wpdb->query(TCSync::create_insert_update_sql(Config::DIC_UNITPRICERANGE_TABLE,$item,array('id'),array('maxValue'=>'max','minValue'=>'min')));
//print_r(TCSync::create_insert_update_sql(Config::DIC_AREA,$item,array('id'),array('maxValue'=>'max','minValue'=>'min')));print_r("<br />");
//print_r(TCSync::create_insert_update_sql(Config::DIC_UNITPRICERANGE_TABLE,$item,array('id'),array('maxValue'=>'max','minValue'=>'min')));print_r("<br />");
}
foreach($result['data']['RentalPrice'] as $item){
$wpdb->query(TCSync::create_insert_update_sql(Config::DIC_RENTALPRICE_TABLE,$item,array('id'),array('maxValue'=>'max','minValue'=>'min')));
//print_r(TCSync::create_insert_update_sql(Config::DIC_RENTALPRICE_TABLE,$item,array('id'),array('maxValue'=>'max','minValue'=>'min')));print_r("<br />");
}
}
}
......
......@@ -168,7 +168,7 @@ function reset_menu()
function do_sync()
{
TCSync::user_sync();
TCSync::organization_sync();
//TCSync::user_sync();
//TCSync::organization_sync();
TCSync::other_sync();
}
<?php
/**
* Created by PhpStorm.
* User: UGEN79
* Date: 2015/8/6
* Time: 16:51
*/
if (!class_exists('WP_List_Table')) {
require_once(ABSPATH . 'wp-admin/includes/class-wp-list-table.php');
}
class consultantScoreList extends WP_List_Table
{
function __construct()
{
global $status, $page;
//Set parent defaults
parent::__construct(array(
'singular' => 'score', //singular name of the listed records
'plural' => 'scores', //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 'consultant':
case 'user':
case 'score':
return $item[$column_name];
case 'valid':
if ($item[$column_name]) {
return '<button data-valid="0" data-score-id="' . $item['id'] . '">设为无效</button>';
} else {
return '<button data-valid="1" data-score-id="' . $item['id'] . '">设为有效</button>';
}
default:
return print_r($item, true); //Show the whole array for troubleshooting purposes
}
}
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()
{
$columns = array(
'cb' => '<input type="checkbox" />', //Render a checkbox instead of text
'id' => 'ID',
'consultant' => '置业顾问',
'user' => '用户',
'score' => '评分',
'valid' => '状态'
);
return $columns;
}
function get_sortable_columns()
{
$sortable_columns = array(
'id' => array('id', false),
'consultant' => array('consultant', false),
'user' => array('user', false),
'score' => array('score', false),
'valid' => array('valid', false)
);
return $sortable_columns;
}
function get_bulk_actions()
{
$actions = array(
'invalid' => '设为无效',
'valid' => '设为有效',
);
return $actions;
}
function process_bulk_action()
{
$action = $this->current_action();
if ($action) {
$string = null;
$valid = null;
switch ($action) {
case 'invalid':
$score = $_GET['score'];
if ($score) {
$string = '(' . implode(',', array_map('intval', $score)) . ')';
$valid = 0;
}
break;
case 'valid':
$score = $_GET['score'];
if ($score) {
$valid = 1;
$string = '(' . implode(',', array_map('intval', $score)) . ')';
}
break;
}
global $wpdb;
$result = $wpdb->query('update tospur_consultant_score SET valid=' . $valid . ' where id in ' . $string);
}
}
function prepare_items()
{
global $wpdb;
$per_page = 5;
$columns = $this->get_columns();
$hidden = array();
$sortable = $this->get_sortable_columns();
$this->_column_headers = array($columns, $hidden, $sortable);
$this->process_bulk_action();
//$data = $this->example_data;
$sql = "SELECT s.id,c.display_name as consultant,u.user_login as user,s.score,s.valid FROM tospur_consultant_score s " .
"left join wp_users u on s.user_id = u.ID " .
"left join wp_users c on s.consultant_id = c.ID";
$result = $wpdb->get_results($sql);
$data = array();
foreach ($result as $key => $value) {
$data[$key] = array(
'id' => $value->id,
'consultant' => $value->consultant,
'user' => $value->user,
'score' => $value->score,
'valid' => $value->valid,
);
}
function usort_reorder($a, $b)
{
$orderby = (!empty($_REQUEST['orderby'])) ? $_REQUEST['orderby'] : 'valid'; //If no sort, default to title
$order = (!empty($_REQUEST['order'])) ? $_REQUEST['order'] : 'desc'; //If no order, default to asc
$result = strcmp($a[$orderby], $b[$orderby]); //Determine sort order
return ($order === 'asc') ? $result : -$result; //Send final sort direction to usort
}
usort($data, 'usort_reorder');
$current_page = $this->get_pagenum();
$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 add_consultant_score_menu()
{
add_menu_page('置业顾问评分', '置业顾问评分', 'activate_plugins', 'consultant_score', 'consultant_score_page', 'dashicons-menu', 26);
}
add_action('admin_menu', 'add_consultant_score_menu');
function consultant_score_page()
{
$consultantScoreList = new consultantScoreList();
$consultantScoreList->prepare_items();
?>
<div class="wrap">
<h2>置业顾问评分列表</h2>
<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="<?php echo $_REQUEST['page'] ?>"/>
<!-- Now we can render the completed list table -->
<?php $consultantScoreList->display() ?>
</form>
</div>
<script>
(function ($) {
$('button[data-score-id]').click(function () {
var self = $(this);
var score_id = $(this).data('score-id');
var valid = $(this).data('valid');
$.ajax({
type: 'POST',
url: '<?php echo admin_url()?>admin-ajax.php/',
data: 'action=valid_consultant_score&id=' + score_id + '&valid=' + valid,
success: function (data) {
if (data.code == 2000) {
if (valid == 0) {
self.text('设为有效');
self.data('valid', 1);
} else {
self.text('设为无效');
self.data('valid', 0);
}
alert('设置成功');
} else {
alert('设置失败');
}
}
});
return false;
});
})(jQuery);
</script>
<?php
}
?>
\ No newline at end of file
<?php
class TospurDao
{
public static function insert_view_house($house_id, $user_id, $date, $time, $consultant_id)
{
$insert_view_house_array = array(
'house_id' => $house_id,
'user_id' => $user_id,
'date' => $date,
'time' => $time,
'consultant_id' => $consultant_id,
'handle' => 0
);
global $wpdb;
$result = $wpdb->insert('view_house', $insert_view_house_array);
return $result;
}
public static function search_view_house_by_user_id($user_id)
{
global $wpdb;
$sql = "select v.house_id,v.date,v.time,v.consultant_id,v.handle from view_house v where user_id = " . $user_id . " order by v.date desc";
return $wpdb->get_results($sql);
}
public static function search_view_house_by_consultant_id($consultant_id)
{
global $wpdb;
$sql = "select v.house_id,v.user_id,v.date,v.time,v.handle from view_house v where consultant_id = " . $consultant_id . " order by v.date desc";
return $wpdb->get_results($sql);
}
}
?>
\ No newline at end of file
<?php
$house_id = $_GET['id'];
$house_sql = 'SELECT v.id, h.name, u.user_login as phone, v.date, v.time, v.consultant_id as consultant_id, v.handle, v.handle_date FROM tospur_view_house v '
. 'left join tospur_house h on v.house_id = h.id '
. 'left join wp_users u on v.user_id = u.id '
. 'where v.id = ' . $house_id;
$consultant_sql = 'SELECT u.id,u.display_name FROM wp_users u '
. 'left join wp_usermeta m on u.id=m.user_id where meta_key="wp_user_level" and meta_value=7;';
global $wpdb;
$context['house_result'] = $wpdb->get_row($house_sql);
$context['consultant_result'] = $wpdb->get_results($consultant_sql);
$context['url'] = home_url();
$context['id'] = $house_id;
Timber::render('Admin/views/handle.html', $context);
?>
\ No newline at end of file
function loan_calc(bj, year, rate) {
//贷款总额
var loan_ceiling = bj * 10000;
//贷款期限
var loan_period = year * 12;
var number_of_month = loan_period;
//贷款利率
var loan_rate = rate / 100 / 12;
//公式需要
var _rate = Math.pow(1 + loan_rate, loan_period);
//等额本息月供
var acpi_monthly_payment = (loan_ceiling * loan_rate * _rate) / (_rate - 1);
var acpi_interest = loan_period * acpi_monthly_payment - loan_ceiling;
//等额本金计算
var em = loan_ceiling / loan_period;
var nbj = loan_ceiling;
var i = 0;
var ac_interest = 0;
var ac_monthly_payment = [];
for (; loan_period > 0; loan_period--) {
var interest = (loan_ceiling - i * em) * loan_rate;
ac_interest += interest;
ac_monthly_payment.push(em + interest);
i++;
nbj -= em;
}
return {
//等额本息
acpi: {
interest: acpi_interest,
monthlyPayment: acpi_monthly_payment
},
//等额本金
ac: {
interest: ac_interest,
monthlyPayment: ac_monthly_payment
},
loan_period: number_of_month,
loan_ceiling: bj
}
}
/*
等额本息 Average Capital Plus Interest
等额本金 average capital
利息 interest
还款总额:Total repayment
{ACPI:{interest, MonthlyPayment},
AC:[],
interest:
loan_period:月
totalPayment}*/
<?php
$context = array();
$context['theme'] = get_template_directory_uri();
Timber::render('loan_calculator.html', $context);
?>
\ 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/component.css"/>
<link rel="stylesheet" type="text/css" href="{{ theme }}/css/animations.css"/>
<link rel="stylesheet" type="text/css" href="{{ theme }}/css/bootstrap.min.css">
<link rel="stylesheet" type="text/css" href="{{ theme }}/css/loan_calculator.css">
<link rel="stylesheet" type="text/css" href="{{ theme }}/css/loan_detail.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/modernizr.custom.js"></script>
<script type="text/javascript" src="{{ theme }}/js/bootstrap.min.js"></script>
<script type="text/javascript" src="{{ theme }}/js/jquery.mobile.custom.min.js"></script>
<script type="text/javascript" src="{{ theme }}/js/gftools.js"></script>
</head>
<body>
<div id="pt-main" class="pt-perspective">
<div class="pt-page pt-page-1">
<ul id="tab" class="list-unstyled btn-group-justified tab">
<li class="btn-group active">
<a href="#commerce_loan" data-toggle="tab" class="btn">商业贷款</a>
</li>
<li class="btn-group">
<a href="#accumulationFund_loan" data-toggle="tab" class="btn">公积金贷款</a>
</li>
<li class="btn-group">
<a href="#combined_loan" data-toggle="tab" class="btn">组合贷款</a>
</li>
</ul>
<div class="tab-content">
<div class="tab-pane fade in active" id="commerce_loan">
<ul class="list-unstyled">
<li>
<label class="col-xs-3">房价总额:</label>
<p class="col-xs-7">
<input type="number" class="form-control" data-id="fangjia_money">
</p>
<p class="col-xs-2">万元</p>
</li>
<li class="arrow">
<label class="col-xs-3">首付比例:</label>
<p class="col-xs-9">
<select class="form-control" data-id="first_payment">
<option value="3">3成</option>
<option value="4">4成</option>
<option value="5">5成</option>
<option value="6">6成</option>
<option value="7">7成</option>
<option value="8">8成</option>
<option value="9">9成</option>
</select>
</p>
</li>
<li>
<label class="col-xs-3">贷款金额:</label>
<p class="col-xs-7">
<input type="number" class="form-control" data-id="daikuan_money" readonly>
</p>
<p class="col-xs-2">万元</p>
</li>
<li class="arrow">
<label class="col-xs-3">按揭年数:</label>
<p class="col-xs-9">
<select class="form-control" data-id="year">
<option value="1">1年(12期)</option>
<option value="2">2年(24期)</option>
<option value="3">3年(36期)</option>
<option value="4">4年(48期)</option>
<option value="5">5年(60期)</option>
<option value="6">6年(72期)</option>
<option value="7">7年(84期)</option>
<option value="8">8年(96期)</option>
<option value="9">9年(108期)</option>
<option value="10">10年(120期)</option>
<option value="11">11年(132期)</option>
<option value="12">12年(144期)</option>
<option value="13">13年(156期)</option>
<option value="14">14年(168期)</option>
<option value="15">15年(180期)</option>
<option value="16">16年(192期)</option>
<option value="17">17年(204期)</option>
<option value="18">18年(216期)</option>
<option value="19">19年(228期)</option>
<option value="20" selected="selected">20年(240期)</option>
<option value="25">25年(300期)</option>
<option value="30">30年(360期)</option>
</select>
</p>
</li>
<li>
<label class="col-xs-3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;率:</label>
<p class="col-xs-7">
<input type="number" class="form-control" data-id="rate" value="5.4">
</p>
<p class="col-xs-2">%</p>
</li>
</ul>
<p class="text-right">商业贷款利率5.40%</p>
<input type="submit" value="开始计算" class="btn btn-lg">
</div>
<div class="tab-pane fade" id="accumulationFund_loan">
<ul class="list-unstyled">
<li>
<label class="col-xs-3">房价总额:</label>
<p class="col-xs-7">
<input type="number" class="form-control" data-id="fangjia_money">
</p>
<p class="col-xs-2">万元</p>
</li>
<li class="arrow">
<label class="col-xs-3">首付比例:</label>
<p class="col-xs-9">
<select class="form-control" data-id="first_payment">
<option value="3">3成</option>
<option value="4">4成</option>
<option value="5">5成</option>
<option value="6">6成</option>
<option value="7">7成</option>
<option value="8">8成</option>
<option value="9">9成</option>
</select>
</p>
</li>
<li>
<label class="col-xs-3">贷款金额:</label>
<p class="col-xs-7">
<input type="number" class="form-control" data-id="daikuan_money" readonly>
</p>
<p class="col-xs-2">万元</p>
</li>
<li class="arrow">
<label class="col-xs-3">按揭年数:</label>
<p class="col-xs-9">
<select class="form-control" data-id="year">
<option value="1">1年(12期)</option>
<option value="2">2年(24期)</option>
<option value="3">3年(36期)</option>
<option value="4">4年(48期)</option>
<option value="5">5年(60期)</option>
<option value="6">6年(72期)</option>
<option value="7">7年(84期)</option>
<option value="8">8年(96期)</option>
<option value="9">9年(108期)</option>
<option value="10">10年(120期)</option>
<option value="11">11年(132期)</option>
<option value="12">12年(144期)</option>
<option value="13">13年(156期)</option>
<option value="14">14年(168期)</option>
<option value="15">15年(180期)</option>
<option value="16">16年(192期)</option>
<option value="17">17年(204期)</option>
<option value="18">18年(216期)</option>
<option value="19">19年(228期)</option>
<option value="20" selected="selected">20年(240期)</option>
<option value="25">25年(300期)</option>
<option value="30">30年(360期)</option>
</select>
</p>
</li>
<li>
<label class="col-xs-3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;率:</label>
<p class="col-xs-7">
<input type="number" class="form-control" data-id="rate" value="3.5">
</p>
<p class="col-xs-2">%</p>
</li>
</ul>
<p class="text-right">公积金贷款利率3.50%</p>
<input type="submit" value="开始计算" class="btn btn-lg">
</div>
<div class="tab-pane fade" id="combined_loan">
<ul class="list-unstyled">
<li>
<label class="col-xs-3">房价总额:</label>
<p class="col-xs-7">
<input type="number" class="form-control" data-id="fangjia_money">
</p>
<p class="col-xs-2">万元</p>
</li>
<li class="arrow">
<label class="col-xs-3">首付比例:</label>
<p class="col-xs-8">
<select class="form-control" data-id="first_payment">
<option value="3">3成</option>
<option value="4">4成</option>
<option value="5">5成</option>
<option value="6">6成</option>
<option value="7">7成</option>
<option value="8">8成</option>
<option value="9">9成</option>
</select>
</p>
</li>
<li>
<label class="col-xs-5">公积金贷款金额:</label>
<p class="col-xs-5">
<input type="number" class="form-control" data-id="daikuan_money">
</p>
<p class="col-xs-2">万元</p>
</li>
<li class="arrow">
<label class="col-xs-5">公积金按揭年数:</label>
<p class="col-xs-6">
<select class="form-control" data-id="accumulationFund_year">
<option value="1">1年(12期)</option>
<option value="2">2年(24期)</option>
<option value="3">3年(36期)</option>
<option value="4">4年(48期)</option>
<option value="5">5年(60期)</option>
<option value="6">6年(72期)</option>
<option value="7">7年(84期)</option>
<option value="8">8年(96期)</option>
<option value="9">9年(108期)</option>
<option value="10">10年(120期)</option>
<option value="11">11年(132期)</option>
<option value="12">12年(144期)</option>
<option value="13">13年(156期)</option>
<option value="14">14年(168期)</option>
<option value="15">15年(180期)</option>
<option value="16">16年(192期)</option>
<option value="17">17年(204期)</option>
<option value="18">18年(216期)</option>
<option value="19">19年(228期)</option>
<option value="20" selected="selected">20年(240期)</option>
<option value="25">25年(300期)</option>
<option value="30">30年(360期)</option>
</select>
</p>
</li>
<li>
<label class="col-xs-5">商业贷款金额:</label>
<p class="col-xs-5">
<input type="number" class="form-control" data-id="commerce_money">
</p>
<p class="col-xs-2">万元</p>
</li>
<li class="arrow">
<label class="col-xs-3">按揭年数:</label>
<p class="col-xs-8">
<select class="form-control" data-id="commerce_year">
<option value="1">1年(12期)</option>
<option value="2">2年(24期)</option>
<option value="3">3年(36期)</option>
<option value="4">4年(48期)</option>
<option value="5">5年(60期)</option>
<option value="6">6年(72期)</option>
<option value="7">7年(84期)</option>
<option value="8">8年(96期)</option>
<option value="9">9年(108期)</option>
<option value="10">10年(120期)</option>
<option value="11">11年(132期)</option>
<option value="12">12年(144期)</option>
<option value="13">13年(156期)</option>
<option value="14">14年(168期)</option>
<option value="15">15年(180期)</option>
<option value="16">16年(192期)</option>
<option value="17">17年(204期)</option>
<option value="18">18年(216期)</option>
<option value="19">19年(228期)</option>
<option value="20" selected="selected">20年(240期)</option>
<option value="25">25年(300期)</option>
<option value="30">30年(360期)</option>
</select>
</p>
</li>
<li>
<label class="col-xs-3">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;率:</label>
<p class="col-xs-7">
<input type="number" class="form-control" data-id="rate" value="5.4">
</p>
<p class="col-xs-2">%</p>
</li>
</ul>
<p class="text-right">公积金贷款利率3.50% 商业贷款利率5.40%</p>
<input type="submit" value="开始计算" class="btn btn-lg">
</div>
</div>
</div>
<div class="pt-page pt-page-2">
<div class="header">
<ul class="list-unstyled">
<li class="col-xs-7" id="money"></li>
<li class="col-xs-5" id="month"></li>
</ul>
<ul class="list-unstyled">
<li class="col-xs-4">还款方式</li>
<li class="col-xs-4">等额本息</li>
<li class="col-xs-4">等额本金</li>
<li class="col-xs-4">支付利息</li>
<li class="col-xs-4" id="acpi_interest"></li>
<li class="col-xs-4" id="ac_interest"></li>
</ul>
</div>
<div id="wrapper">
<div id="scroller">
<ul class="list-unstyled" id="result">
</ul>
</div>
</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 type="text/javascript" src="{{ theme }}/js/pagetransitions.js"></script>
<script>
var daikuan_money = 0;
var page = 0;
$(document).ready(function () {
var notice = $('#notice');
var myModal = $('#myModal');
$('[data-id=fangjia_money]').change(function () {
var fangjia_money = Number($(this).val().trim());
var tab = $(this).parents('.active');
var first_payment = Number(tab.find('[data-id=first_payment]').val());
daikuan_money = (fangjia_money * (1 - first_payment / 10)).toFixed(2);
tab.find('[data-id=daikuan_money]').val(daikuan_money);
});
$('[data-id=first_payment]').change(function () {
var first_payment = Number($(this).val());
var tab = $(this).parents('.active');
var fangjia_money = Number(tab.find('[data-id=fangjia_money]').val().trim());
daikuan_money = (fangjia_money * (1 - first_payment / 10)).toFixed(2);
tab.find('[data-id=daikuan_money]').val(daikuan_money);
});
$('input[type=submit]').tap(function () {
var tab = $(this).parents('.active');
var tabId = tab.attr('id');
var fangjia_money = Number(tab.find('[data-id=fangjia_money]').val().trim());
var year = Number(tab.find('[data-id=year]').val());
var rate = Number(tab.find('[data-id=rate]').val().trim());
if (fangjia_money == '') {
notice.html('请输入房价总额');
myModal.modal('show');
} else if (rate == '') {
notice.html('请输入利率');
myModal.modal('show');
} else {
var resultList = $('#result');
if (tabId == 'combined_loan') {
var accumulationFund_money = Number(tab.find('[data-id=daikuan_money]').val().trim());
var commerce_money = Number(tab.find('[data-id=commerce_money]').val().trim());
var accumulationFund_year = Number(tab.find('[data-id=accumulationFund_year]').val());
var commerce_year = Number(tab.find('[data-id=commerce_year]').val());
var accumulationFund_result = loan_calc(accumulationFund_money, accumulationFund_year, 3.5);
var commerce_result = loan_calc(commerce_money, commerce_year, rate);
console.log(accumulationFund_result);
console.log(commerce_result);
$('#money').text('贷款总额:' + (accumulationFund_money + commerce_money).toFixed(2) + '万元');
$('#acpi_interest').text(Math.round(accumulationFund_result.acpi.interest + commerce_result.acpi.interest));
$('#ac_interest').text(Math.round(accumulationFund_result.ac.interest + commerce_result.ac.interest));
//公积金按揭年数 >
if (accumulationFund_result.loan_period >= commerce_result.loan_period) {
$('#month').text('贷款月数:' + result.loan_period);
$.each(accumulationFund_result.ac.monthlyPayment, function (index, value) {
var payment = commerce_result.ac.monthlyPayment[index];
var commerce_monthlyPayment = commerce_result.acpi.monthlyPayment;
if (!payment) {
payment = 0;
commerce_monthlyPayment = 0;
}
resultList.append('<li><p class="col-xs-4">' + (index + 1) + '</p>' +
'<p class="col-xs-4">' + Math.round(accumulationFund_result.acpi.monthlyPayment + commerce_monthlyPayment) + '</p>' +
'<p class="col-xs-4">' + Math.round(value + payment) + '</p></li>');
});
} else {
$.each(commerce_result.ac.monthlyPayment, function (index, value) {
var payment = accumulationFund_result.ac.monthlyPayment[index];
var accumulationFund_monthlyPayment = accumulationFund_result.acpi.monthlyPayment;
if (!payment) {
payment = 0;
accumulationFund_monthlyPayment = 0;
}
resultList.append('<li><p class="col-xs-4">' + (index + 1) + '</p>' +
'<p class="col-xs-4">' + Math.round(accumulationFund_monthlyPayment + commerce_result.acpi.monthlyPayment) + '</p>' +
'<p class="col-xs-4">' + Math.round(value + payment) + '</p></li>');
});
}
} else {
var result = loan_calc(daikuan_money, year, rate);
$('#money').text('贷款总额:' + result.loan_ceiling + '万元');
$('#month').text('贷款月数:' + result.loan_period);
var acpi = result.acpi;
var ac = result.ac;
$('#acpi_interest').text(Math.round(acpi.interest));
$('#ac_interest').text(Math.round(ac.interest));
$.each(ac.monthlyPayment, function (index, value) {
resultList.append('<li><p class="col-xs-4">' + (index + 1) + '</p>' +
'<p class="col-xs-4">' + Math.round(acpi.monthlyPayment) + '</p>' +
'<p class="col-xs-4">' + Math.round(value) + '</p></li>');
});
}
var scroll = new IScroll('#wrapper', {
scrollbars: true,
click: true
});
page = 1;
window.location.href = '#result';
PageTransitions.nextPage({
animation: 1,
showPage: page
});
}
return false;
});
window.addEventListener("popstate", function(e) {
if (window.location.hash == '' && page == 1) {
console.log(page);
page = 0;
PageTransitions.nextPage({
animation: 2,
showPage: page
});
}else if(page == 0){
window.history.back();
}
});
});
</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