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.
 
 
 
 
excel_handle/app/view/index/index.html

496 lines
26 KiB

{extend name="public/layout" /}
{block name="header"}
<style>
.layui-table-cell {
padding: 0 5px;
}
.layui-input, .layui-select, .layui-textarea {
height: 28px;
}
.layui-input-block {
height: 28px;
min-height: auto;
}
.layui-form-label {
padding: 4px 15px;
}
.layui-form-item {
margin-bottom: 4px;
}
.layui-form-mid {
padding: 0 !important;
}
.layui-table td, .layui-table th {
padding: 0 15px;
}
</style>
{/block}
{block name="body"}
<div class="layui-card">
<div class="layui-card-body layui-form" style="padding: 0 10px;">
<div class="layui-collapse">
<div class="layui-colla-item">
<h2 class="layui-colla-title" style="display: flex; justify-content: space-between;">
<span>筛选</span>
<div id="tool-bar">
<button type="button" class="layui-btn layui-btn-sm" id="search-btn">搜索</button>
<a href="{:url('index/index')}" class="layui-btn layui-btn-sm" id="reset-btn">重置条件</a>
<button type="button" class="layui-btn layui-btn-sm layui-btn-danger" style="display: none;" id="deletes-btn">批量删除</button>
<button type="button" class="layui-btn layui-btn-sm layui-btn-danger" style="display: none;" id="reset-car-phone">清空电话</button>
</div>
</h2>
<div class="layui-colla-content layui-form">
<div class="layui-row">
<div class="layui-form-item layui-col-md3" style="clear: none;">
<label class="layui-form-label">车架号</label>
<div class="layui-input-block">
<input type="text" name="car_frame_no" id="car_frame_no" autocomplete="off"
class="layui-input" value="{$params.car_frame_no | default=''}">
</div>
</div>
<div class="layui-form-item layui-col-md3" style="clear: none;">
<label class="layui-form-label">厂牌型号</label>
<div class="layui-input-block">
<input type="text" name="factory_model" id="factory_model" autocomplete="off"
class="layui-input" value="{$params.factory_model | default=''}">
</div>
</div>
<div class="layui-form-item layui-col-md2" style="clear: none;">
<label class="layui-form-label">车牌号</label>
<div class="layui-input-block">
<input type="text" name="car_no" id="car_no" autocomplete="off" class="layui-input"
value="{$params.car_no | default=''}">
</div>
</div>
<div class="layui-form-item layui-col-md2" style="clear: none;">
<label class="layui-form-label">注册日期</label>
<div class="layui-input-block">
<input type="text" name="register_date" id="register_date" autocomplete="off"
class="layui-input layui-date-elem" value="{$params.register_date | default=''}">
</div>
</div>
<div class="layui-form-item layui-col-md2" style="clear: none;">
<label class="layui-form-label">车主姓名</label>
<div class="layui-input-block">
<input type="text" name="car_man" id="car_man" autocomplete="off"
class="layui-input" value="{$params.car_man | default=''}">
</div>
</div>
<div class="layui-form-item layui-col-md3" style="clear: none;">
<label class="layui-form-label">身份证号</label>
<div class="layui-input-block">
<input type="text" name="car_number" id="car_number" autocomplete="off"
class="layui-input" value="{$params.car_number | default=''}">
</div>
</div>
<div class="layui-form-item layui-col-md3" style="clear: none;">
<label class="layui-form-label">导出文件名</label>
<div class="layui-input-block">
<input type="text" name="export_name" id="export_name" autocomplete="off"
class="layui-input" value="{$params.export_name | default=''}">
</div>
</div>
<div class="layui-form-item layui-col-md2" style="clear: none;">
<label class="layui-form-label">联系电话</label>
<div class="layui-input-block">
<input type="text" name="car_phone" id="car_phone" autocomplete="off"
class="layui-input" value="{$params.car_phone | default=''}">
</div>
</div>
<div class="layui-form-item layui-col-md2" style="clear: none;">
<label class="layui-form-label">电话检测</label>
<div class="layui-input-block">
<select name="car_phone_empty">
<option value="">全部</option>
<option value="yes">不为空</option>
<option value="no"></option>
<option value="2">广州</option>
<option value="3">深圳</option>
<option value="4">杭州</option>
</select>
</div>
</div>
<div class="layui-form-item layui-col-md2" style="clear: none;">
<label class="layui-form-label">重复数据</label>
<div class="layui-input-block">
<select name="data_check">
<option value=""></option>
{if $repeat_frame_count > 0 }
<option value="car_frame_check">车架号</option>
{/if}
{if $peer_phone_count > 0 }
<option value="car_phone_check">个人电话</option>
{/if}
</select>
</div>
</div>
<div class="layui-form-item layui-col-md3" style="clear: none;">
<label class="layui-form-label">初登日期</label>
<div class="layui-input-inline" style="width: 100px;">
<input type="text" name="register_date1" id="register-date1" class="layui-input layui-date-elem">
</div>
<div class="layui-form-mid">-</div>
<div class="layui-input-inline" style="width: 100px;">
<input type="text" name="register_date2" id="register-date2" class="layui-input layui-date-elem">
</div>
</div>
<div class="layui-form-item layui-col-md4" style="clear: none;">
<label class="layui-form-label">保险日期</label>
<div class="layui-input-inline" style="width: 110px;">
<input type="text" name="insurer_month1" class="layui-input" style="display: inline-block; width: 50px;" placeholder="月">
<input type="text" name="insurer_day1" class="layui-input" style="display: inline-block; width: 50px;" placeholder="日">
</div>
<div class="layui-form-mid">-</div>
<div class="layui-input-inline" style="width: 110px;">
<input type="text" name="insurer_month2" class="layui-input" style="display: inline-block; width: 50px;" placeholder="月">
<input type="text" name="insurer_day2" class="layui-input" style="display: inline-block; width: 50px;" placeholder="日">
</div>
</div>
<div class="layui-form-item layui-col-md3" style="clear: none;">
<label class="layui-form-label">新车购置价</label>
<div class="layui-input-inline" style="width: 100px;">
<input type="text" name="price1" class="layui-input" placeholder="万">
</div>
<div class="layui-form-mid">-</div>
<div class="layui-input-inline" style="width: 100px;">
<input type="text" name="price2" class="layui-input" placeholder="万">
</div>
</div>
<div class="layui-form-item layui-col-md2" style="clear: none;">
<label class="layui-form-label">标签</label>
<div class="layui-input-block">
<input type="text" name="tag" id="tag" autocomplete="off"
class="layui-input" value="{$params.tag | default=''}">
</div>
</div>
<div class="layui-form-item layui-col-md12" style="clear: none;">
<label class="layui-form-label">数据状态</label>
<div class="layui-input-block" style="height: auto;">
<table class="layui-table">
<tr>
<td colspan="3"><input type="checkbox" name="data_filter[]" value="bhx" title="已导出清洗"></td>
<td colspan="2"><input type="checkbox" name="data_filter[]" value="none" title="未处理"></td>
</tr>
<tr>
<td><input type="checkbox" name="data_filter[]" value="bhx_success" title="已清洗成功"></td>
<td><input type="checkbox" name="data_filter[]" value="bhx_failed" title="已清洗失败"></td>
<td><input type="checkbox" name="data_filter[]" value="bhx_none" title="未处理"></td>
<td><input type="checkbox" name="data_filter[]" value="none_bmc" title="已上传"></td>
<td><input type="checkbox" name="data_filter[]" value="none_none" title="未处理"></td>
</tr>
<tr>
<td><input type="checkbox" name="data_filter[]" value="bhx_success_bmc" title="已上传">
<input type="checkbox" name="data_filter[]" value="bhx_success_none" title="未上传"></td>
<td><input type="checkbox" name="data_filter[]" value="bhx_failed_bmc" title="已上传">
<input type="checkbox" name="data_filter[]" value="bhx_failed_bhx" title="已导出清洗">
<input type="checkbox" name="data_filter[]" value="bhx_failed_none" title="未处理"></td>
<td></td>
<td></td>
<td></td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
<table class="layui-hide" id="car-info" lay-filter="car-info"></table>
</div>
</div>
{/block}
{block name="script"}
<!--Core Javascript -->
<script type="text/html" id="table-bar">
{{# if(!d.repeat_id){ }}
<a class="layui-btn layui-btn-xs" lay-event="detail">详情</a>
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
{{# } }}
</script>
<script type="text/html" id="BmcNameTpl">
{{# if(d.bmc_download_times > 0){ }}
<span style="color: #01AAED;">{{ d.export_bmc_name }}</span>
{{# } else { }}
<span style="color: #ed0e1b;">{{ d.export_bmc_name }}</span>
{{# } }}
</script>
<script type="text/html" id="BhxNameTpl">
{{# if(d.bhx_download_times > 0){ }}
<span style="color: #01AAED;">{{ d.export_bhx_name }}</span>
{{# } else { }}
<span style="color: #ed0e1b;">{{ d.export_bhx_name }}</span>
{{# } }}
</script>
<script>
var tableIns;
var local_storage_key = 'data_table_col_list';
$(function () {
layui.form.on('checkbox(dataStatus)', function(data){
if(data.elem.checked){
if(data.value == 'is_none_handle'){
$(data.elem).siblings().attr('disabled',true);
}else{
if(data.value == 'is_update_success'){
$(data.elem).siblings('[value="is_update_failed"]').removeAttr('checked').attr('disabled',true);
}
if(data.value == 'is_update_failed'){
$(data.elem).siblings('[value="is_update_success"]').removeAttr('checked').attr('disabled',true);
}
$(data.elem).siblings('[value="is_none_handle"]').attr('disabled',true);
}
}else {
if(data.value == 'is_none_handle'){
$(data.elem).siblings().removeAttr('disabled');
}else{
if(data.value == 'is_update_success'){
$(data.elem).siblings('[value="is_update_failed"]').removeAttr('disabled');
}
if(data.value == 'is_update_failed'){
$(data.elem).siblings('[value="is_update_success"]').removeAttr('disabled');
}
if($(data.elem).siblings(':checked').length == 0){
$(data.elem).siblings('[value="is_none_handle"]').removeAttr('disabled');
}
}
}
});
tableIns = layui.table.render(tableRender(''));
//监听行工具事件
layui.table.on('tool(car-info)', function(obj){ //注:tool 是工具条事件名,test 是 table 原始容器的属性 lay-filter="对应的值"
var data = obj.data, //获得当前行数据
layEvent = obj.event; //获得 lay-event 对应的值
if(layEvent === 'clear_phone'){
layer.confirm('确定要清楚此项手机吗', function(index){
layer.close(index);
index = layer.load();
$.post('{:url("index/clearPhone")}', {id: data.id}, function (res) {
layer.close(index);
layer.msg(res.msg,function () {
layui.table.reload('carInfo');
});
})
});
} else if(layEvent === 'del'){
layer.confirm('真的删除行么', function(index){
layer.close(index);
index = layer.load();
//向服务端发送删除指令
$.post('{:url("index/delete")}', {id: data.id}, function (res) {
layer.close(index);
layer.msg(res.msg,function () {
obj.del(); //删除对应行(tr)的DOM结构
});
})
});
} else if(layEvent === 'detail'){
layer.open({
type: 2,
title: '车辆信息--' + data.car_no + ' 标签 ' + data.tag,
area: ['1100px','735px'],
shade: 0,
maxmin: true,
content: '{:url("index/edit")}?id=' + data.id,
zIndex: layer.zIndex,
success: function(layero){
layer.setTop(layero);
}
});
}
});
//监听单元格编辑
layui.table.on('edit(car-info)', function(obj){
var data = {
id : obj.data.id,
field: obj.field,
value: obj.value
};
if (data.value < 0) {
layer.msg('值不能为负数', {icon: 5});
layer.msg(res.msg,function () {
layui.table.reload('carInfo');
});
return false;
}
$.post('{:url("index/update")}', data, function (res) {
layer.msg(res.msg,function () {
layui.table.reload('carInfo');
});
});
});
var urlParams = getUrlParam('Object');
var jobId = 0;
if(urlParams.is_check_peer_phone > 0){
jobId = urlParams.is_check_peer_phone;
}else if(urlParams.is_check_repeat_frame > 0){
jobId = urlParams.is_check_repeat_frame;
}else if(urlParams.is_export_bhx > 0){
jobId = urlParams.is_export_bhx;
}
if(jobId > 0){
$.get('{:url("task/taskBtn")}?job_id=' + jobId,function(ret){
if(ret.code){
$('#tool-bar').prepend($.trim(ret.btns));
}
});
}
$('.layui-date-elem').each(function (i, d) {
layui.laydate.render({
elem: d,
});
});
$('#search-btn').on('click', function(){
var param = $('.layui-colla-content').find(':input').serializeObject();
param['data_filter[]'] = param['data_filter[]']?param['data_filter[]']:'';
param = Object.assign(param, urlParams);
//执行重载
tableIns.reload({
page: {
curr: 1 //重新从第 1 页开始
},
where: param,
}, 'data');
let param_a = param;
delete param_a['car_phone_empty'];
delete param_a['car_frame_check'];
delete param_a['data_check'];
if (Object.values(param_a).filter(data => data).length > 0) {
$('#deletes-btn').css('display', 'inline-block')
$('#reset-car-phone').css('display', 'inline-block')
} else {
$('#deletes-btn').css('display', 'none')
$('#reset-car-phone').css('display', 'none')
}
});
$('#deletes-btn').on('click', function () {
layer.confirm('真的删除行么', function(index){
layer.close(index);
index = layer.load();
//向服务端发送删除指令
$.post('{:url("/index/deletes/")}', $('.layui-colla-content').find(':input').serialize(), function (ret) {
layer.close(index);
layer.msg(ret.msg, function () {
layui.table.reload('carInfo');
});
});
});
});
$('#reset-car-phone').on('click', function () {
layer.confirm('确认执行删除车主电话并继续', function(index){
layer.close(index);
index = layer.load();
//向服务端发送删除指令
$.post('{:url("/index/phoneReset/")}', $('.layui-colla-content').find(':input').serialize(), function (ret) {
layer.close(index);
layer.msg(ret.msg, function () {
layui.table.reload('carInfo');
});
});
});
});
});
function task_create(type,id = 0){
$.post('{:url("task/save")}', {task_type: type,source_id: id}, function (ret) {
layer.msg(ret['msg'],function(){
layui.table.reload('taskInfo');
});
});
}
//表格 头部数据函数封装
function getTableCols(){
return [ //表头
{type: 'numbers', fixed: 'left'},
{field: 'tag', title: '标签', width: 100, edit: 'text', fixed: 'left'},
{field: 'car_no', title: '车牌号', width: 100, edit: 'text', fixed: 'left'},
{field: 'car_frame_no', title: '车架号', width: 180, edit: 'text'},
{field: 'engine_no', title: '发动机号', width: 100, edit: 'text'},
{field: 'factory_model', title: '厂牌型号', width: 200, edit: 'text'},
{field: 'register_date', title: '注册日期', width: 100, edit: 'text'},
{field: 'car_man', title: '车主', width: 80, edit: 'text'},
{field: 'car_number', title: '车主证件号', width: 160, edit: 'text'},
{field: 'car_phone', title: '车主电话', width: 120, edit: 'text'},
{field: 'id_man', title: '被保险人', width: 80, edit: 'text'},
{field: 'id_number', title: '被保险人证件号', width: 160, edit: 'text'},
{field: 'id_phone', title: '被保险人电话', width: 120, edit: 'text'},
{field: 'insured_man', title: '投保人', width: 80, edit: 'text'},
{field: 'insured_number', title: '投保人证件号', width: 160, edit: 'text'},
{field: 'insured_phone', title: '投保人电话', width: 120, edit: 'text'},
{field: 'link_man_1', title: '联系人1', width: 80, edit: 'text'},
{field: 'link_phone_1', title: '联系人电话1', width: 120, edit: 'text'},
{field: 'link_man_2', title: '联系人2', width: 80, edit: 'text'},
{field: 'link_phone_2', title: '联系人电话2', width: 120, edit: 'text'},
{field: 'link_man_3', title: '联系人3', width: 80, edit: 'text'},
{field: 'link_phone_3', title: '联系人电话3', width: 120, edit: 'text'},
{field: 'purchase_price', title: '新车购置价', width: 100, edit: 'text'},
{field: 'export_bhx_name', title: '导出清洗', width: 140, edit: 'text', templet:'#BhxNameTpl'},
{field: 'export_bmc_name', title: '导出上传', width: 140, edit: 'text', templet:'#BmcNameTpl'},
{fixed: 'right', width: 100, align:'center', toolbar: '#table-bar'}
];
}
//layui表格渲染,其中url param为请求的数据接口以及其参数
function tableRender(param){
var tableCols = tableSetCol(getTableCols(), local_storage_key);
var renderParam = {
id: 'carInfo',
elem: '#car-info',
title:'车辆信息',
url: '{:url("/index/carInfo/")}', //数据接口
where: getUrlParam('Object'),
toolbar: true,
height: 'full-210',
page: true, //开启分页
limit: 20,
loading: true,
cols: [tableCols],
done: function (res, curr, count) {
tableDone(this.elem, tableIns.config.cols[0], local_storage_key);
if(res.code == -1){
$('#lock-screen').css('display','flex');
}
}
};
return renderParam;
}
//layui表格渲染后,事件需要重新绑定,并记录下筛选信息于localStorage
function tableDone(elem, col, key){
elem.next().find('[lay-event="LAYTABLE_COLS"]').click(function(e) {
setTimeout(function() {
layui.$(e.currentTarget).find('.layui-form-checkbox').click(function() {
var local_config = {};
for(var i = 0; i<=col.length-1; i++){
if(typeof col[i].field !== 'undefined'){
local_config[col[i].field] = col[i].hide ;
}
}
var saveColsConfig = {
key: 'local_config',
value: local_config
};
layui.data(key, saveColsConfig);
})
}, 50);
})
}
//layuitable reload或第一次加载的时候,根据存储的local_config 确定哪些列是否选中
function tableSetCol(col, key){
//参考写法:https://fly.layui.com/jie/50966/#item-1555416248250
var config_custom= layui.data(key);
var local_config = config_custom['local_config'] || {};
if(JSON.stringify(local_config) != '{}'){
for(var i =0; i<=col.length-1; i++){
if( typeof col[i].field !== "undefined" ){
col[i].hide = local_config[col[i].field];
}
}
}
return col;
}
</script>
{/block}