<form id="recharge-form" lay-filter="recharge-form" class="layui-form">
|
<div style="overflow-y: auto; height:700px;">
|
<div class="layui-tab">
|
<ul class="layui-tab-title">
|
<li class="layui-this">合同信息</li>
|
</ul>
|
<div class="layui-tab-content" style="margin: 0px;">
|
<div class="layui-tab-item layui-show">
|
<div class="layui-form-item" style="padding: 0; margin-bottom: 0px;">
|
<div class="layui-row">
|
<div class="layui-col-sm5">
|
<label class="layui-form-label" style="padding: 0;">医院名称</label>
|
<div class="layui-input-block">
|
<input name="hospitalName" id="hospitalName" type="text" class="layui-input"
|
style="border: none; margin-top:-10px" readonly />
|
</div>
|
</div>
|
<div class="layui-col-sm3">
|
<label class="layui-form-label" style="padding: 0;">科室名称</label>
|
<div class="layui-input-block">
|
<input name="departmentName" id="departmentName" style="border: none; margin-top:-10px"
|
readonly class="layui-input" />
|
</div>
|
</div>
|
<div class="layui-col-sm2">
|
<label class="layui-form-label" style="padding: 0;">服务人员</label>
|
<div class="layui-input-block">
|
<input name="serverUserName" id="serverUserName"
|
style="border: none; margin-top:-10px;width: 120px;" readonly class="layui-input" />
|
</div>
|
</div>
|
</div>
|
</div>
|
|
<div class="layui-form-item" style="padding: 0; margin-bottom: 0px;">
|
<div class="layui-row">
|
<div class="layui-col-sm5">
|
<label class="layui-form-label" style="padding: 0 30px 0 0;">地区</label>
|
<input name="hospitalAreas" id="hospitalAreas" type="text"
|
style="border: none; width: 250px; margin-top:-10px" readonly class="layui-input" />
|
</div>
|
<div class="layui-col-sm3">
|
<label class="layui-form-label" style="padding: 0;">联系电话</label>
|
<div class="layui-input-block">
|
<input name="hospitalTel" id="hospitalTel" type="text" class="layui-input"
|
style="border: none; margin-top:-10px" readonly />
|
</div>
|
</div>
|
<div class="layui-col-sm2">
|
<label class="layui-form-label" style="padding: 0;">联系人</label>
|
<div class="layui-input-block">
|
<input name="hospitalLink" type="text" class="layui-input"
|
style="border: none; margin-top:-10px;width: 120px;" readonly />
|
</div>
|
</div>
|
</div>
|
</div>
|
<div class="layui-form-item" style="padding: 0; margin-bottom: 0px;">
|
<div class="layui-row">
|
<div class="layui-col-sm4">
|
<label class="layui-form-label" style="padding: 10px 30px 0 0px;">合同名称</label>
|
<div class="layui-input-block">
|
<input name="contractTitle" id="contractTitle" type="text" class="layui-input"
|
maxlength="50" lay-verify="required" required autocomplete="off" />
|
</div>
|
</div>
|
<div class="layui-col-sm3">
|
<label class="layui-form-label">合同编号</label>
|
<div class="layui-input-block">
|
<input name="contractNo" id="contractNo" type="text" class="layui-input" maxlength="50"
|
style="width: 185px;" autocomplete="off" lay-verify="required" required />
|
</div>
|
</div>
|
</div>
|
</div>
|
<div class="layui-form-item" style="margin: 10px 0px 0px 0px;">
|
<div class="layui-row">
|
<div class="layui-col-sm4">
|
<label class="layui-form-label" style="padding: 10px 30px 0 0px;">开始日期</label>
|
<input autocomplete="off" name="contractBeginTime" id="contractBeginTime" type="text"
|
class="layui-input" style="width: 182px;" maxlength="50" lay-verify="required"
|
required />
|
</div>
|
<div class="layui-col-sm4">
|
<label class="layui-form-label">截止日期</label>
|
<div class="layui-input-block">
|
<input autocomplete="off" name="contractEndTime" id="contractEndTime" type="text"
|
class="layui-input" maxlength="50" lay-verify="required" required />
|
</div>
|
</div>
|
<div class="layui-col-sm4">
|
<label class="layui-form-label">签订日期</label>
|
<div class="layui-input-block">
|
<input autocomplete="off" name="contractTime" id="contractTime" type="text"
|
class="layui-input" maxlength="50" lay-verify="required" required />
|
</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
</div>
|
|
<div class="layui-tab" style="margin: 0px;">
|
<ul class="layui-tab-title">
|
<li class="layui-this">产品信息</li>
|
</ul>
|
<div class="layui-tab-content" style="margin: 0px;">
|
<div class="layui-tab-item layui-show" style="padding-top: 0px;">
|
<table class="layui-table" id="product-table" lay-filter="product-table" style="margin: 0px;"></table>
|
</div>
|
</div>
|
</div>
|
|
<div class="layui-tab" style="margin: 0px;">
|
<ul class="layui-tab-title">
|
<li class="layui-this">待充值产品</li>
|
</ul>
|
<div class="layui-tab-content">
|
<div class="layui-tab-item layui-show" style="padding-top: 0px;">
|
<table class="layui-table" id="product-table-temp" lay-filter="product-table-temp" style="margin: 0px;">
|
</table>
|
</div>
|
</div>
|
</div>
|
</div>
|
<div class="layui-form-item model-form-footer" style="margin-right: 20px;">
|
<button class="layui-btn layui-btn-primary" ew-event="closeDialog" type="button">取消</button>
|
<button class="layui-btn permissions" permissions="product-rechage" lay-filter="recharge-form-submit"
|
lay-submit>确定充值</button>
|
</div>
|
<input type="hidden" value="" id="departmentId" name="departmentId" />
|
<input type="hidden" value="" id="hospitalId" name="hospitalId" />
|
<input type="hidden" value="" id="orgId" name="orgId" />
|
<input type="hidden" value="" id="serverUserId" name="serverUserId" />
|
</form>
|
<!-- 表格操作列 -->
|
<script type="text/html" id="product-tpl-bar">
|
<a class="layui-btn layui-btn-xs" lay-event="pay">加入待充值</a>
|
</script>
|
<!-- 表格操作列 -->
|
<script type="text/html" id="product-tpl-bar-temp">
|
<a class="layui-btn layui-btn-danger" lay-event="del">移除</a>
|
</script>
|
<!-- 表格状态列 -->
|
<script type="text/html" id="product-tpl-isShare">
|
<input type="checkbox" lay-filter="product-tpl-isShare" value="{{d.id}}" lay-skin="switch" lay-text="共享|不共享" />
|
</script>
|
<script>
|
layui.use(['form', 'table', 'util', 'config', 'laydate', 'admin'], function () {
|
var form = layui.form;
|
var table = layui.table;
|
var config = layui.config;
|
var layer = layui.layer;
|
var util = layui.util;
|
var admin = layui.admin;
|
var $ = layui.jquery;
|
var laydate = layui.laydate;
|
|
//充值进行中
|
var isRun=false;
|
//执行一个laydate实例
|
laydate.render({
|
elem: '#contractBeginTime' //指定元素
|
});
|
laydate.render({
|
elem: '#contractEndTime' //指定元素
|
});
|
laydate.render({
|
elem: '#contractTime', //指定元素
|
value: new Date().dateFormat("yyyy-MM-dd")
|
});
|
//现将临时数据清理
|
admin.putTempData("t_tempProduct", "");
|
//待充值列表
|
var waitRecharge = function () {
|
table.render({
|
elem: '#product-table-temp',
|
data: admin.getTempData("t_tempProduct"),
|
page: false,
|
cellMinWidth: 100,
|
cols: [
|
[{
|
field: 'proName',
|
width: 320,
|
title: '产品名称',
|
align: 'center',
|
fixed: 'left'
|
},
|
{
|
field: 'proType',
|
align: 'center',
|
width: 100,
|
templet: function (d) {
|
if (d.proType === 0)
|
return "试用"
|
else
|
return "正式"
|
},
|
title: '类型'
|
},
|
{
|
field: 'proTime',
|
width: 100,
|
title: '时长',
|
align: 'center',
|
templet: function (d) {
|
switch (d.proTimeUnit) {
|
case 0:
|
return d.proTime + "天";
|
break;
|
case 1:
|
return d.proTime + "月";
|
break;
|
case 2:
|
return d.proTime + "年";
|
break;
|
}
|
}
|
},
|
{
|
field: 'recordCount',
|
width: 110,
|
align: 'center',
|
title: '报告数'
|
},
|
{
|
field: 'ailightCount',
|
width: 100,
|
align: 'center',
|
title: '读片量'
|
},
|
{
|
field: 'beginTime',
|
align: 'center',
|
width: 120,
|
title: '开始日期'
|
},
|
{
|
field: 'endTime',
|
align: 'center',
|
width: 120,
|
title: '结束日期'
|
},
|
{
|
field: 'isShare',
|
fixed: 'right',
|
align: 'center',
|
width: 100,
|
templet: function (d) {
|
if (d.isShare == 0)
|
return "不共享"
|
else
|
return "共享"
|
},
|
title: '共享'
|
},
|
{
|
field: 'id',
|
fixed: 'right',
|
align: 'center',
|
width: 80,
|
toolbar: '#product-tpl-bar-temp',
|
title: '操作'
|
}
|
]
|
]
|
});
|
}
|
|
//回显医院基本数据
|
let hospitalData = admin.getTempData('t_hospital');
|
if (hospitalData != null) {
|
form.val('recharge-form', hospitalData);
|
$("#hospitalAreas").val(hospitalData.hospitalProvince + " " + hospitalData.hospitalCity + " " +
|
hospitalData.hospitalArea);
|
}
|
//装载产品数据
|
table.render({
|
elem: '#product-table',
|
url: config.base_server + 'api-opration/product',
|
method: 'GET',
|
cellMinWidth: 50,
|
headers: {
|
'Authorization': 'Bearer ' + config.getToken().access_token
|
},
|
page: false,
|
where: {
|
is_del: 0,
|
enabled: 1
|
},
|
cols: [
|
[{
|
field: 'proName',
|
sort: true,
|
width: 300,
|
title: '产品名称',
|
align: 'center',
|
fixed: 'left'
|
},
|
{
|
field: 'proType',
|
sort: true,
|
align: 'center',
|
width: 80,
|
templet: function (d) {
|
if (d.proType === 0)
|
return "试用"
|
else
|
return "正式"
|
},
|
title: '类型'
|
},
|
{
|
field: 'proTime',
|
width: 100,
|
title: '时长',
|
align: 'center',
|
templet: function (d) {
|
switch (d.proTimeUnit) {
|
case 0:
|
return d.proTime + "天";
|
break;
|
case 1:
|
return d.proTime + "月";
|
break;
|
case 2:
|
return d.proTime + "年";
|
break;
|
}
|
}
|
},
|
{
|
field: 'recordCount',
|
width: 100,
|
align: 'center',
|
title: '报告数'
|
},
|
{
|
field: 'ailightCount',
|
width: 100,
|
align: 'center',
|
title: '读片量'
|
},
|
{
|
field: 'beginTime',
|
align: 'center',
|
width: 130,
|
title: '开始日期',
|
templet: function (d) {
|
return getNowDate();
|
},
|
event: "date",
|
edit: 'text'
|
},
|
{
|
field: 'endTime',
|
align: 'center',
|
width: 130,
|
title: '结束日期',
|
templet: function (d) {
|
return getNowDate(d.proTime, d.proTimeUnit);
|
},
|
event: "date",
|
edit: 'text'
|
},
|
{
|
field: 'isShare',
|
fixed: 'right',
|
align: 'center',
|
width: 100,
|
templet: '#product-tpl-isShare',
|
title: '共享'
|
},
|
{
|
field: 'id',
|
fixed: 'right',
|
align: 'center',
|
width: 100,
|
toolbar: '#product-tpl-bar',
|
title: '操作'
|
}
|
]
|
],
|
done: function (res) {
|
permissionsInput(res, config);
|
}
|
});
|
//待充值列表功能操作
|
table.on('tool(product-table-temp)', function (obj) {
|
if (obj.event === "del") {
|
if (!strUtil.isEmpty(obj.data.id)) {
|
delTempDataById(obj.data.id);
|
obj.del();
|
}
|
}
|
});
|
//单元格点击事件
|
table.on('tool(product-table)', function (obj) {
|
var data = obj.data;
|
var selectData = {};
|
if (obj.event === "pay") {
|
data.beginTime = obj.tr.find("td[data-field='beginTime'] input").val();
|
data.endTime = obj.tr.find("td[data-field='endTime'] input").val();
|
data.beginTime = (!strUtil.isEmpty(data.beginTime)) ? data.beginTime : obj.tr.find(
|
"td[data-field='beginTime'] div").text();
|
data.endTime = (!strUtil.isEmpty(data.endTime)) ? data.endTime : obj.tr.find(
|
"td[data-field='endTime'] div").text();
|
data.isShare = obj.tr.find("td[data-field='isShare'] em").text();
|
data.isShare = (data.isShare.indexOf("不") == 0) ? 0 : 1;
|
if (!strUtil.isEmpty(data.beginTime) && !strUtil.isEmpty(data.endTime)) {
|
if (dateUtil.compareDate(data.endTime, data.beginTime)) {
|
tempDataList(data);
|
waitRecharge();
|
} else {
|
layer.msg("结束时间必须大于开始时间!");
|
return false;
|
}
|
} else {
|
layer.msg("时间格式有误!");
|
return false;
|
}
|
}
|
});
|
//监听单元格编辑 判断日期格式
|
table.on('edit(product-table)', function (obj) {
|
var value = obj.value //得到修改后的值
|
,
|
data = obj.data //得到所在行所有键值
|
,
|
field = obj.field; //得到字段
|
if (dateUtil.isDate(value)) {} else {
|
layer.msg("输入的日期格式无效!");
|
}
|
});
|
//自动计算时间
|
var getNowDate = function (proTime, proTimeUnit) {
|
var now = new Date();
|
if (strUtil.isEmpty(proTime) && strUtil.isEmpty(proTimeUnit)) {
|
return now.dateFormat("yyyy-MM-dd");
|
} else {
|
proTime = strUtil.isEmpty(proTime) ? 0 : proTime;
|
proTimeUnit = strUtil.isEmpty(proTimeUnit) ? 0 : proTimeUnit;
|
switch (proTimeUnit) {
|
case 0:
|
return new Date(now.setDate(now.getDate() + proTime)).dateFormat("yyyy-MM-dd");
|
break;
|
case 1:
|
return new Date(now.setMonth(now.getMonth() + proTime + 1)).dateFormat(
|
"yyyy-MM-dd");
|
break;
|
case 2:
|
return new Date(now.setFullYear(now.getFullYear() + proTime)).dateFormat(
|
"yyyy-MM-dd");
|
break;
|
}
|
}
|
}
|
// 产品待充值数据
|
var tempDataList = function (data) {
|
if (!strUtil.isEmpty(data)) {
|
var listData = admin.getTempData("t_tempProduct");
|
if (strUtil.isEmpty(listData)) {
|
listData = new Array();
|
}
|
$.each(listData, function (index, value) {
|
if (value.id === data.id) {
|
//移除
|
listData.splice(index, 1);
|
return false;
|
}
|
})
|
listData.push(data);
|
admin.putTempData("t_tempProduct", listData);
|
} else {
|
admin.putTempData("t_tempProduct", "");
|
}
|
}
|
//移除指定数据
|
var delTempDataById = function (id) {
|
if (!strUtil.isEmpty(id)) {
|
var listData = admin.getTempData("t_tempProduct");
|
$.each(listData, function (index, value) {
|
if (value.id === id) {
|
//移除
|
listData.splice(index, 1);
|
return false;
|
}
|
})
|
admin.putTempData("t_tempProduct", listData);
|
}
|
}
|
form.on('submit(recharge-form-submit)', function (data) {
|
if(!isRun){
|
layer.load(2);
|
var listData = admin.getTempData("t_tempProduct");
|
if (listData != null) {
|
if (data.field != null) {
|
layer.confirm("确定要将待充值列表中的" + listData.length + "个产品充值给当前医院的科室吗?", {
|
btn: ["确定", "返回"]
|
}, function () {
|
isRun=true;
|
data.field.contractBeginTime = data.field.contractBeginTime +
|
" 00:00:00";
|
data.field.contractEndTime = data.field.contractEndTime + " 23:59:59";
|
data.field.contractTime = data.field.contractTime + " 00:00:00";
|
admin.req('api-opration/contract', JSON.stringify(data.field),
|
function (data) {
|
layer.closeAll('loading');
|
if (data.code === 0) {
|
var orderData = data.data;
|
//处理订单明细数据
|
var listDetailData = new Array();
|
$.each(listData, function (index, item) {
|
var detailData = {
|
orderId: orderData.id,
|
proId: item.id,
|
proType: item.proType,
|
proName: item.proName,
|
isShare: item.isShare,
|
ailightCount: item.ailightCount,
|
recordCount: item.recordCount,
|
proBegintime: item.beginTime +
|
' 00:00:00',
|
proEndtime: item.endTime +
|
' 23:59:59'
|
};
|
listDetailData.push(detailData);
|
})
|
|
if (listDetailData.length > 0) {
|
//提交订单数据
|
admin.req('api-opration/productorderdetail/saveall',
|
JSON.stringify(listDetailData),
|
function (data) {
|
isRun=false;
|
layer.closeAll('loading');
|
if (data.code === 0) {
|
//现将临时数据清理
|
admin.putTempData("t_tempProduct",
|
"");
|
layer.msg(data.msg, {
|
icon: 1,
|
time: 3000
|
}, function () {
|
admin
|
.finishPopupCenter();
|
});
|
} else {
|
layer.msg(data.msg, {
|
icon: 2,
|
time: 1000
|
});
|
}
|
}, 'POST');
|
} else {
|
layer.msg("充值数据异常为空!", {
|
icon: 2,
|
time: 1000
|
});
|
isRun=false;
|
}
|
} else {
|
layer.msg(data.msg, {
|
icon: 2,
|
time: 1000
|
});
|
isRun=false;
|
}
|
}, 'POST');
|
})
|
} else {
|
layer.msg("数据异常!", {
|
icon: 2,
|
time: 1000
|
});
|
}
|
} else {
|
layer.msg("请先将要充值的产品加入待充值!", {
|
icon: 2,
|
time: 2000
|
});
|
}
|
layer.closeAll('loading');
|
return false;
|
}
|
});
|
});
|
</script>
|