租房掌柜微信小程序Api以及小程序前端模板
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

439 lines
18 KiB

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>房租收费系统</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="/static/plugs/layui/css/layui.css" media="all">
<link rel="stylesheet" type="text/css" href="/static/plugs/wangedit/css/wangEditor-mobile.css">
<style type="text/css">
html, body {
margin: 0;
padding: 0;
}
.saveimg {
text-align: center;
}
.saveimgs span {
display: inline-block;
margin-top: 5px;
}
.det-nr {
line-height: 250%;
padding: 20px 30px 20px 20px;
}
.underline {
text-decoration: underline;
}
</style>
</head>
<body>
<div style="padding:20px;">
<fieldset class="layui-elem-field layui-field-title">
<legend>房租费用明细</legend>
</fieldset>
<form class="layui-form layui-form-pane" method="post" action="{:url('index/pay/add')}">
<div class="layui-form-item">
<label class="layui-form-label">小区门牌号</label>
<div class="layui-input-block">
<input type="text" name="door_number" readonly="readonly"
value="{$data.house_name}-{$data.door_number}"
autocomplete="off"
placeholder="请输入标题"
class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">房间号</label>
<div class="layui-input-block">
<input type="text" name="room_number" readonly="readonly" value="{$data.room_number}"
autocomplete="off"
placeholder="请输入房间号"
class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">手机号</label>
<div class="layui-input-block">
<input type="text" name="phone" lay-verify="required|phone" value="{$Think.get.phone|default=''}"
autocomplete="off"
placeholder="请输入手机号"
class="layui-input">
<input type="hidden" name="room_id" value="{$Think.get.roomid|default=''}"
class="layui-input">
<input type="hidden" name="name" value="{$tenant.name}"
class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">租金</label>
<div class="layui-input-block">
<input type="text" name="rent" readonly="readonly" value="{$data.rent}元"
autocomplete="off"
placeholder="请输入租金"
class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">燃气费</label>
<div class="layui-input-block">
<input type="text" name="gas_money" readonly="readonly"
value="{$data.gas_money}元/人 x {$tenant_num}人={$data.gas_money * $tenant_num}元"
autocomplete="off"
placeholder="请输入燃气费"
class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">水费</label>
<div class="layui-input-block">
<input type="text" name="water_money" readonly="readonly"
value="{$data.water_money}元/人 x {$tenant_num}人={$data.water_money * $tenant_num}元"
autocomplete="off"
placeholder="请输入水费"
class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">交租方式</label>
<div class="layui-input-block">
<input type="text" name="rent_type_name" readonly="readonly" value="{$data.rent_type_name}"
autocomplete="off"
placeholder="请输入交租方式"
class="layui-input">
<input type="hidden" name="rent_type" readonly="readonly" value="{$data.rent_type}"
autocomplete="off"
placeholder="请输入交租方式"
class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label" style="color: red;">房租合计:</label>
<div class="layui-input-block">
<input type="text" name="detail" style="color: red;font-weight: bold;" readonly="readonly"
value="(租金{$data.rent} + 燃气费{$data.gas_money} x {$tenant_num} + 水费{$data.water_money} x {$tenant_num}) x {$rent_type}月({$data.rent_type_name}) = {$data.total_rent}元"
autocomplete="off"
placeholder="请输入标题"
class="layui-input">
<input type="hidden" name="price" readonly="readonly"
value="{$data.total_rent}"
autocomplete="off"
class="layui-input">
<p style="padding:10px 0;">
<img src="{$holder.pay1}" width="180" style="margin-right: 100px;"/>
<img src="{$holder.pay2}" width="180"/>
</p>
</div>
</div>
<div class="layui-form-item" pane>
<label class="layui-form-label">支付方式</label>
<div class="layui-input-block">
<input type="radio" name="pay_type" value="1" title="微信">
<input type="radio" name="pay_type" value="2" title="支付宝">
</div>
</div>
<fieldset class="layui-elem-field layui-field-title" style="margin:30px 0;">
<legend>在线合同签约</legend>
</fieldset>
<div class="layui-form-item" pane>
<label class="layui-form-label">合同编号</label>
<div class="layui-input-block">
<input type="text" class="layui-input" name="number" value="{$data.contract_number}">
</div>
</div>
<div class="layui-form-item" pane>
<label class="layui-form-label">签约小区</label>
<div class="layui-input-block">
<input type="text" class="layui-input" name="house_name" value="{$data.house_name}">
</div>
</div>
<input type="hidden" name="contract_starttime" readonly="readonly"
value="{$data.contract_starttime|default=''}"
autocomplete="off"
class="layui-input">
<input type="hidden" name="contract_endtime" readonly="readonly"
value="{$data.contract_endtime|default=''}"
autocomplete="off"
class="layui-input">
<div class="layui-form-item" pane>
<div class="">
<textarea id="textarea1" name="content" style="width:100%;height:100%;">
<style type="text/css">
html, body {
margin: 0;
padding: 0;
}
.saveimg {
text-align: center;
}
.saveimgs span {
display: inline-block;
margin-top: 5px;
}
.det-nr {
line-height: 160%;
padding: 20px 30px 20px 20px;
}
.underline {
text-decoration: underline;
}
</style>
<div class="det-nr mt20">
<p style="text-indent:2em;">甲方姓名(出租方):
<span class="underline"><b>{$holder.truename}</b></span>
身份证号码:<span class="underline"><b>{$holder.card_number}</b>
</span>
</p>
<p style="text-indent:2em;">乙方姓名(承租方):
<span class="underline">{$tenant.name}</span> 身份证号码:
<span class="underline">{$tenant.card_id}</span>
</p>
<p style="text-indent:2em;">经双方协商甲方将位于 <span
class="underline"> {$data.contract_starttime_str|default=''}</span> 房屋出租给乙方居住使用。</p>
<p style="text-indent:2em;">一、租房从
<span class="underline"> {$data.contract_starttime_str|default=''}</span> 起至
<span class="underline"> {$data.contract_endtime_str|default=''}</span>止。</p>
<p style="text-indent:2em;">二、月租金为 <span class="underline">{$data.rent}</span> 元,缴租为 <span
class="underline">{$data.rent_type}</span> 个月支付一次,以后应提前 <span class="underline">15</span>
天支付。</p>
<p style="text-indent:2em;">三、约定事项</p>
<p style="text-indent:2em;">1、乙方入住时,应及时更换门锁若发生意外与甲方无关。因不慎或使用不当引起火灾、电、气灾害等非自然灾害所造成损失由乙方负责。</p>
<p style="text-indent:2em;">
2、乙方无权转租、转借、转卖该房屋,及屋内家具家电,不得擅自改动房屋结构,爱护屋内设施,如有人为原因造成破损丢失应维修完好,否则照价赔偿。并做好防火,防盗,防漏水,和阳台摆放、花盆的安全工作,若造成损失责任自负。</p>
<p style="text-indent:2em;">3、乙方必须按时缴纳房租,否则视为乙方违约。协议终止。</p>
<p style="text-indent:2em;">
4、乙方应遵守居住区内各项规章制度,按时缴纳水、电、气、光纤、电话、物业管理等费用。乙方交保证金给甲方,乙方退房时交清水,电,气,光纤和物业管理等费用及屋内设施家具、家电无损坏,下水管道,厕所无堵漏。甲方如数退还保证金。
</p>
<p style="text-indent:2em;">5、甲方保证该房屋无产权纠纷。如遇拆迁,乙方无条件搬出,已交租金甲方按未满天数退还。</p>
<p style="text-indent:2em;">四、本合同一式两份,甲乙双方各存一份,自双方签字之日起生效。</p>
<p><br/></p>
<p style="text-indent:2em;">水费:<span class="underline">{$data.water_money}</span>元/人,燃气:<span
class="underline">{$data.gas_money}</span>元/人</p>
<p><br/></p>
<p style="text-indent:2em;">
甲方签名(出租方):&nbsp;{$holder.truename}
</p>
<p><br/></p>
<p style="text-indent:2em;">
乙方签名(承租方):{$tenant.name}
<span id="sign_name"></span>
</p>
<p><br/></p>
<p style="text-indent:2em;">签约日期:{$data.contract_starttime_str|default=''} </p>
</div>
</textarea>
</div>
</div>
<div align="center" style="margin:20px auto; width:320px;">
<canvas id="myCanvas" height="300" width="450" style="border:1px solid #6699cc"></canvas>
<div class="control-ops control">
<button type="button" class="layui-btn layui-bg-red" onclick="javascript:clearArea();return false;">清空画板
</button>
<button type="button" class="saveimg layui-btn" onclick="javascript:saveImageInfo();return false;">确认
</button>
</div>
<div class="saveimgs"></div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button class="layui-btn layui-bg-blue" lay-submit="" lay-filter="demo1">支付完成后请点击提交</button>
</div>
</div>
</form>
</div>
<!--电子签名-->
<script type="text/javascript">
var mousePressed = false;
var lastX, lastY;
var ctx = document.getElementById('myCanvas').getContext("2d");
var c = document.getElementById("myCanvas");
// console.log(c)
// console.log(c2)
var control = document.getElementsByClassName("control")[0];
var saveimgs = document.getElementsByClassName("saveimgs")[0];
window.onload = function () {
InitThis();
}
function saveImageInfo() {
var image = c.toDataURL("image/png");
var ctximg = document.createElement("span");
ctximg.innerHTML = "<input type='hidden' value='" + image + "' name='sign_name' /><img src='" + image + "' alt='from canvas'/>";
if (saveimgs.getElementsByTagName('span').length >= 1) {
var span_old = saveimgs.getElementsByTagName("span")[0];
saveimgs.replaceChild(ctximg, span_old)
}
else {
saveimgs.appendChild(ctximg);
}
// console.log(image)
}
var selected1, selected2;
function aaa() {
var sel = document.getElementById('selWidth');
var value = sel.selectedIndex;
return selected1 = sel[value].value;
}
function aaa2() {
var sel2 = document.getElementById('selColor');
var value = sel2.selectedIndex;
return selected2 = sel2[value].value;
}
function InitThis() {
// 触摸屏
c.addEventListener('touchstart', function (event) {
console.log(1)
if (event.targetTouches.length == 1) {
event.preventDefault();// 阻止浏览器默认事件,重要
var touch = event.targetTouches[0];
mousePressed = true;
Draw(touch.pageX - this.offsetLeft, touch.pageY - this.offsetTop, false);
}
}, false);
c.addEventListener('touchmove', function (event) {
console.log(2)
if (event.targetTouches.length == 1) {
event.preventDefault();// 阻止浏览器默认事件,重要
var touch = event.targetTouches[0];
if (mousePressed) {
Draw(touch.pageX - this.offsetLeft, touch.pageY - this.offsetTop, true);
}
}
}, false);
c.addEventListener('touchend', function (event) {
console.log(3)
if (event.targetTouches.length == 1) {
event.preventDefault();// 阻止浏览器默认事件,防止手写的时候拖动屏幕,重要
// var touch = event.targetTouches[0];
mousePressed = false;
}
}, false);
/*c.addEventListener('touchcancel', function (event) {
console.log(4)
mousePressed = false;
},false);*/
// 鼠标
c.onmousedown = function (event) {
mousePressed = true;
Draw(event.pageX - this.offsetLeft, event.pageY - this.offsetTop, false);
};
c.onmousemove = function (event) {
if (mousePressed) {
Draw(event.pageX - this.offsetLeft, event.pageY - this.offsetTop, true);
}
};
c.onmouseup = function (event) {
mousePressed = false;
};
}
function Draw(x, y, isDown) {
if (isDown) {
ctx.beginPath();
ctx.strokeStyle = selected2;
ctx.lineWidth = 5;
ctx.lineJoin = "round";
ctx.moveTo(lastX, lastY);
ctx.lineTo(x, y);
ctx.closePath();
ctx.stroke();
}
lastX = x;
lastY = y;
}
function clearArea() {
// Use the identity matrix while clearing the canvas
ctx.setTransform(1, 0, 0, 1, 0, 0);
ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);
// 清除签名图片
if (saveimgs.getElementsByTagName('span').length >= 1) {
var clearImg = saveimgs.getElementsByTagName('span')[0];
saveimgs.removeChild(clearImg);
}
}
</script>
<!--电子签名-->
<script src="/static/plugs/layui/layui.js" charset="utf-8"></script>
<script type="text/javascript" src="/static/plugs/wangedit/js/lib/zepto.js"></script>
<script type="text/javascript" src="/static/plugs/wangedit/js/lib/zepto.touch.js"></script>
<script type="text/javascript" src="/static/plugs/wangedit/js/wangEditor-mobile.js"></script>
<script type="text/javascript">
$(function () {
// 全局配置
// ___E.config.menus = ['bold', 'color', 'quote'];
// 生成编辑器
var editor = new ___E('textarea1');
// 自定义配置
editor.config.uploadImgUrl = '/upload';
// editor.config.menus = ['bold', 'quote', 'list','img'];
// 初始化
editor.init();
console.log(editor.$txt);
});
</script>
<!-- 注意:如果你直接复制所有代码到本地,上述js路径需要改成你本地的 -->
<script>
layui.use(['form', 'layedit', 'laydate'], function () {
var form = layui.form
, layer = layui.layer;
//监听提交
form.on('submit(demo1)', function (data) {
if (data.field.pay_type == undefined) {
layer.alert('请选择支付方式');
return false;
}
if (data.field.sign_name == undefined) {
layer.alert('请查看合同内容,并手写签名后确认!');
return false;
}
});
});
</script>
</body>
</html>