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
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;">
|
|
甲方签名(出租方): {$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>
|