first commit

This commit is contained in:
2026-07-23 09:40:36 +08:00
commit 090abf48fa
989 changed files with 145728 additions and 0 deletions
+120
View File
@@ -0,0 +1,120 @@
{extend name="../../base/view/common/base" /}
<!-- 主体 -->
{block name="body"}
<form class="layui-form p-page">
<h3 class="pb-2">添加车辆信息</h3>
<table class="layui-table layui-table-form">
<tr>
<td class="layui-td-gray">车辆名称<font>*</font></td>
<td><input type="text" name="title" autocomplete="off" placeholder="请输入车辆名称" lay-verify="required" lay-reqText="请输入车辆名称" class="layui-input"></td>
<td class="layui-td-gray">车牌号码<font>*</font></td>
<td><input type="text" name="name" autocomplete="off" placeholder="请输入车牌号码" lay-verify="required" lay-reqText="请输入车牌号码" class="layui-input"></td>
<td class="layui-td-gray-2" rowspan="5">
车辆缩略图
<button type="button" class="layui-btn layui-btn-sm" id="uploadImg">+ 上传图片</button>
</td>
<td rowspan="5" style="width:252px;">
<div id="demo1" style="width: 240px; height:136px; overflow: hidden;">
<img src="" style="max-width: 100%; height:136px;" />
<input type="hidden" name="thumb" value="">
</div>
</td>
</tr>
<tr>
<td class="layui-td-gray-2">购买日期<font>*</font></td>
<td><input type="text" name="buy_time" value='' readonly placeholder="请选择" lay-verify="required" lay-reqText="请选择购买日期" class="layui-input tool-time" data-max="0"></td>
<td class="layui-td-gray-2">购买价格<font>*</font></td>
<td><input type="text" name="price" value='' placeholder="请输入购买价格" lay-verify="required|number" lay-reqText="请输入购买价格" class="layui-input"></td>
</tr>
<tr>
<td class="layui-td-gray-2">车身颜色<font>*</font></td>
<td><input type="text" name="color" value='' placeholder="请输入车身颜色" lay-verify="required" lay-reqText="请输入车身颜色" class="layui-input"></td>
<td class="layui-td-gray">座位数<font>*</font></td>
<td><input type="text" name="seats" autocomplete="off" placeholder="请输入座位数" lay-verify="required|number" lay-reqText="请输入座位数" class="layui-input"></td>
</tr>
<tr>
<td class="layui-td-gray">发动机号<font>*</font></td>
<td><input type="text" name="engine" autocomplete="off" placeholder="请输入发动机号" lay-verify="required" lay-reqText="请输入发动机号" class="layui-input"></td>
<td class="layui-td-gray-2">车架号<font>*</font></td>
<td><input type="text" name="vin" value='' placeholder="请输入车架号" lay-verify="required" lay-reqText="请输入车架号" class="layui-input"></td>
</tr>
<tr>
<td class="layui-td-gray-2">车险到期日期<font>*</font></td>
<td><input type="text" name="insure_time" value='' readonly placeholder="请选择" lay-verify="required" lay-reqText="请选择车险到期日期" class="layui-input tool-time"></td>
<td class="layui-td-gray-2">车审到期日期<font>*</font></td>
<td><input type="text" name="review_time" value='' readonly placeholder="请选择" lay-verify="required" lay-reqText="请选择车审到期日期" class="layui-input tool-time"></td>
</tr>
<tr>
<td class="layui-td-gray">车辆油耗<font>*</font></td>
<td><input type="text" name="oil" autocomplete="off" placeholder="请输入油耗" lay-verify="required" lay-reqText="请输入油耗" class="layui-input"></td>
<td class="layui-td-gray-2">开始里程数<font>*</font></td>
<td><input type="text" name="mileage" value='' placeholder="请输入开始里程数" lay-verify="required|number" lay-reqText="请输入开始里程数" class="layui-input"></td>
<td class="layui-td-gray-2">驾驶员</td>
<td><input type="text" name="driver_name" value='' readonly placeholder="请选择"class="layui-input picker-admin"><input type="hidden" name="driver" value='0'></td>
</tr>
<tr>
<td class="layui-td-gray-2">
<div class="layui-input-inline">相关附件</div>
<div class="layui-input-inline">
<button type="button" class="layui-btn layui-btn-xs" id="uploadBtn"><i class="layui-icon"></i></button>
</div>
</td>
<td colspan="5">
<div class="layui-row" id="uploadBox">
<input type="hidden" data-type="file" name="file_ids" value="">
</div>
</td>
</tr>
<tr>
<td class="layui-td-gray">备注信息</td>
<td colspan="5">
<textarea name="remark" placeholder="请输入备注信息" class="layui-textarea"></textarea>
</td>
</tr>
</table>
<div class="pt-4">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</form>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ['tool','uploadPlus','oaPicker'];
function gouguInit() {
var form = layui.form,tool=layui.tool,uploadPlus= layui.uploadPlus;
//单图上传
var photoUpload = new uploadPlus({
'use':'single',
'target':'uploadImg',
'callback':function(res){
layer.msg(res.msg);
if (res.code == 0) {
//上传成功
$('#demo1 input').attr('value', res.data.id);
$('#demo1 img').attr('src', res.data.filepath);
}
}
});
//相关附件上传
var attachment = new uploadPlus();
//监听提交
form.on('submit(webform)', function(data){
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
tool.sideClose(1000);
}
}
let clickbtn = $(this);
tool.post("/adm/car/add", data.field, callback,clickbtn);
return false;
});
}
</script>
{/block}
<!-- /脚本 -->
+110
View File
@@ -0,0 +1,110 @@
{extend name="../../base/view/common/base" /}
<!-- 主体 -->
{block name="body"}
<div class="p-page">
<form class="layui-form gg-form-bar border-t border-x" lay-filter="barsearchform">
<div class="layui-input-inline" style="width:300px">
<input type="text" name="keywords" placeholder="车辆名称/车牌号码" class="layui-input" autocomplete="off" />
</div>
<div class="layui-input-inline" style="width:150px">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="table-search"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="table-reset">清空</button>
</div>
</form>
<table class="layui-hide" id="table_car" lay-filter="table_car"></table>
</div>
<script type="text/html" id="toolbarDemo">
<div class="layui-btn-container">
<button class="layui-btn layui-btn-sm tool-add" type="button" data-href="/adm/car/add">+ 添加车辆</button>
</div>
</script>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ['tool','tablePlus'];
function gouguInit() {
var table = layui.tablePlus, tool = layui.tool;
layui.pageTable = table.render({
elem: "#table_car"
, toolbar: "#toolbarDemo"
,url: "/adm/car/datalist"
,page: true
,limit: 20
,cellMinWidth: 60
,height: 'full-114'
,cols: [[
{field:'id',width:80, title: 'ID号', align:'center'}
,{field:'title',title: '车辆名称',width:120}
,{field:'name',title: '车牌号码',width:100, align:'center'}
,{field:'buy_time',title: '购买日期',width:100, align:'center'}
,{field:'price',title: '购买价格',width:100, align:'center'}
,{field:'color',title: '车身颜色',width:80, align:'center'}
,{field:'seats',title: '座位数',width:60, align:'center'}
,{field:'driver_name',title: '驾驶员',width:80, align:'center'}
,{field:'oil',title: '油耗',width:60, align:'center'}
,{field:'mileage',title: '开始里程数',width:100, align:'center'}
,{field:'mileage_now',title: '当前里程数',width:100, align:'center'}
,{field:'insure_time',title: '保险到期日期',width:110, align:'center'}
,{field:'insure_time_note',title: '保险到期提醒',width:110, align:'center',templet: function(d){
var html = '<span class="red">还剩 '+d.insure_time_note+' 天</div>';
if(d.insure_time_note==0){
html = '<span class="red">已到期</div>';
}
return html;
}}
,{field:'review_time',title: '车审到期日期',width:110, align:'center'}
,{field:'review_time_note',title: '车审到期提醒',width:110, align:'center',templet: function(d){
var html = '<span class="red">还剩 '+d.review_time_note+' 天</div>';
if(d.review_time_note==0){
html = '<span class="red">已到期</div>';
}
return html;
}}
,{field:'create_time', title: '创建时间',width:150,align:'center'}
,{width:120,fixed:'right',title: '操作', align:'center',templet: function(d){
var html='';
var btn1='<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="view">详细</a>';
var btn2='<a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a>';
var btn3='<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>';
html = '<div class="layui-btn-group">'+btn1+btn2+btn3+'</div>';
return html;
}}
]]
});
table.on('tool(table_car)',function (obj) {
var checkStatus = table.checkStatus(obj.config.id); //获取选中行状态
var data = obj.data;
if (obj.event === 'view') {
tool.side("/adm/car/view?id="+data.id);
return;
}
if (obj.event === 'edit') {
tool.side("/adm/car/add?id="+data.id);
return;
}
if (obj.event === 'del') {
layer.confirm('确定要删除该内容吗?', { icon: 3, title: '提示' }, function (index) {
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
obj.del();
}
}
tool.delete("/adm/car/del", { id: data.id }, callback);
layer.close(index);
});
return;
}
});
}
</script>
{/block}
<!-- /脚本 -->
+126
View File
@@ -0,0 +1,126 @@
{extend name="../../base/view/common/base" /}
<!-- 主体 -->
{block name="body"}
<form class="layui-form p-page">
<h3 class="pb-2">编辑车辆信息</h3>
<table class="layui-table layui-table-form">
<tr>
<td class="layui-td-gray">车辆名称<font>*</font></td>
<td><input type="text" name="title" value="{$detail.title}" autocomplete="off" placeholder="请输入车辆名称" lay-verify="required" lay-reqText="请输入车辆名称" class="layui-input"></td>
<td class="layui-td-gray">车牌号码<font>*</font></td>
<td><input type="text" name="name" value="{$detail.name}" autocomplete="off" placeholder="请输入车牌号码" lay-verify="required" lay-reqText="请输入车牌号码" class="layui-input"></td>
<td class="layui-td-gray-2" rowspan="5">
车辆缩略图
<button type="button" class="layui-btn layui-btn-sm" id="uploadImg">+ 上传图片</button>
</td>
<td rowspan="5" style="width:252px;">
<div id="demo1" style="width: 240px; height:136px; overflow: hidden;">
<img src="{:get_file($detail.thumb)}" style="max-width: 100%; height:136px;" />
<input type="hidden" name="thumb" value="{$detail.thumb}">
</div>
</td>
</tr>
<tr>
<td class="layui-td-gray-2">购买日期<font>*</font></td>
<td><input type="text" name="buy_time" value="{$detail.buy_time|date='Y-m-d'}" readonly placeholder="请选择" lay-verify="required" lay-reqText="请选择购买日期" class="layui-input tool-time" data-max="0"></td>
<td class="layui-td-gray-2">购买价格(元)<font>*</font></td>
<td><input type="text" name="price" value="{$detail.price}" placeholder="请输入购买价格" lay-verify="required|number" lay-reqText="请输入购买价格" class="layui-input"></td>
</tr>
<tr>
<td class="layui-td-gray-2">车身颜色<font>*</font></td>
<td><input type="text" name="color" value="{$detail.color}" placeholder="请输入车身颜色" lay-verify="required" lay-reqText="请输入车身颜色" class="layui-input"></td>
<td class="layui-td-gray">座位数<font>*</font></td>
<td><input type="text" name="seats" value="{$detail.seats}" autocomplete="off" placeholder="请输入座位数" lay-verify="required|number" lay-reqText="请输入座位数" class="layui-input"></td>
</tr>
<tr>
<td class="layui-td-gray">发动机号<font>*</font></td>
<td><input type="text" name="engine" value="{$detail.engine}" autocomplete="off" placeholder="请输入发动机号" lay-verify="required" lay-reqText="请输入发动机号" class="layui-input"></td>
<td class="layui-td-gray-2">车架号<font>*</font></td>
<td><input type="text" name="vin" value="{$detail.vin}" placeholder="请输入车架号" lay-verify="required" lay-reqText="请输入车架号" class="layui-input"></td>
</tr>
<tr>
<td class="layui-td-gray-2">车险到期日期<font>*</font></td>
<td><input type="text" name="insure_time" value="{$detail.insure_time|date='Y-m-d'}" readonly placeholder="请选择" lay-verify="required" lay-reqText="请选择车险到期日期" class="layui-input tool-time"></td>
<td class="layui-td-gray-2">车审到期日期<font>*</font></td>
<td><input type="text" name="review_time" value="{$detail.review_time|date='Y-m-d'}" readonly placeholder="请选择" lay-verify="required" lay-reqText="请选择车审到期日期" class="layui-input tool-time"></td>
</tr>
<tr>
<td class="layui-td-gray">车辆油耗<font>*</font></td>
<td><input type="text" name="oil" value="{$detail.oil}" autocomplete="off" placeholder="请输入油耗" lay-verify="required" lay-reqText="请输入油耗" class="layui-input"></td>
<td class="layui-td-gray-2">开始里程数</td>
<td>{$detail.mileage}</td>
<td class="layui-td-gray-2">驾驶员</td>
<td><input type="text" name="driver_name" value="{$detail.driver_name|default=''}" readonly placeholder="请选择"class="layui-input picker-admin"><input type="hidden" name="driver" value="{$detail.driver}"></td>
</tr>
<tr>
<td class="layui-td-gray-2">
<div class="layui-input-inline">相关附件</div>
<div class="layui-input-inline">
<button type="button" class="layui-btn layui-btn-xs" id="uploadBtn"><i class="layui-icon"></i></button>
</div>
</td>
<td colspan="5">
<div class="layui-row" id="uploadBox">
<input type="hidden" data-type="file" name="file_ids" value="{$detail.file_ids}">
{notempty name="$detail.file_ids"}
{volist name="$detail.file_array" id="vo"}
<div class="layui-col-md4" id="uploadFile{$vo.id}">{:file_card($vo)}</div>
{/volist}
{/notempty}
</div>
</td>
</tr>
<tr>
<td class="layui-td-gray">备注信息</td>
<td colspan="5">
<textarea name="remark" placeholder="请输入备注信息" class="layui-textarea">{$detail.remark|default=''}</textarea>
</td>
</tr>
</table>
<div class="pt-4">
<input type="hidden" name="id" value="{$detail.id}">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</form>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ['tool','uploadPlus','oaPicker'];
function gouguInit() {
var form = layui.form,tool=layui.tool,uploadPlus= layui.uploadPlus;
//单图上传
var photoUpload = new uploadPlus({
'use':'single',
'target':'uploadImg',
'callback':function(res){
layer.msg(res.msg);
if (res.code == 0) {
//上传成功
$('#demo1 input').attr('value', res.data.id);
$('#demo1 img').attr('src', res.data.filepath);
}
}
});
//相关附件上传
var attachment = new uploadPlus();
//监听提交
form.on('submit(webform)', function(data){
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
tool.sideClose(1000);
}
}
let clickbtn = $(this);
tool.post("/adm/car/add", data.field, callback,clickbtn);
return false;
});
}
</script>
{/block}
<!-- /脚本 -->
+111
View File
@@ -0,0 +1,111 @@
{extend name="../../base/view/common/base" /}
<!-- 主体 -->
{block name="body"}
<form class="layui-form p-page">
<h3 class="pb-2">新增车辆收费记录</h3>
<table class="layui-table layui-table-form">
{eq name="$cid" value="0"}
<tr>
<td class="layui-td-gray">车辆名称<font>*</font></td>
<td colspan="3">
<input type="text" name="car_name" readonly lay-verify="required" lay-reqText="请选择车辆" placeholder="请选择" class="layui-input picker-oa" data-types="car">
<input type="hidden" name="car_id" value="">
</td>
<td class="layui-td-gray">费用类型<font>*</font></td>
<td>
<select name="types" lay-verify="required" lay-reqText="选择费用类型">
<option value="">选择费用类型</option>
{volist name=":get_base_data('basicAdm')" id="vo"}
<option value="{$vo.id}">{$vo.title}</option>
{/volist}
</select>
</td>
</tr>
{else/}
<tr>
<td class="layui-td-gray">车辆名称</td>
<td colspan="3">{$car.title}</td>
<td class="layui-td-gray">费用类型<font>*</font></td>
<td>
<select name="types" lay-verify="required" lay-reqText="选择费用类型">
<option value="">选择费用类型</option>
{volist name=":get_base_data('basicAdm')" id="vo"}
<option value="{$vo.id}">{$vo.title}</option>
{/volist}
</select>
</td>
</tr>
{/eq}
<tr>
<td class="layui-td-gray">费用主题<font>*</font></td>
<td colspan="5">
<input type="text" name="title" lay-verify="required" lay-reqText="请完善费用主题" placeholder="请完善费用主题" class="layui-input">
</td>
</tr>
<tr>
<td class="layui-td-gray">收费日期<font>*</font></td>
<td><input type="text" name="fee_time" readonly placeholder="请选择收费日期" class="layui-input tool-time" data-max="0"></td>
<td class="layui-td-gray">费用金额<font>*</font></td>
<td><input type="text" name="amount" placeholder="请输入费用金额" lay-verify="required|number" lay-reqText="请输入费用金额" class="layui-input"></td>
<td class="layui-td-gray">经手人<font>*</font></td>
<td>
<input type="text" name="handled_name" readonly lay-verify="required" lay-reqText="请选择经手人" placeholder="请选择" class="layui-input picker-admin">
<input type="hidden" name="handled">
</td>
</tr>
<tr>
<td class="layui-td-gray-2">
<div class="layui-input-inline">相关附件</div>
<div class="layui-input-inline">
<button type="button" class="layui-btn layui-btn-xs" id="uploadBtn"><i class="layui-icon"></i></button>
</div>
</td>
<td colspan="5">
<div class="layui-row" id="uploadBox">
<input type="hidden" data-type="file" name="file_ids" value="">
</div>
</td>
</tr>
<tr>
<td class="layui-td-gray" style="vertical-align:top;">收费内容<font>*</font></td>
<td colspan="5">
<textarea name="content" placeholder="请输入收费内容" class="layui-textarea" lay-verify="required" lay-reqText="请完善收费内容"></textarea>
</td>
</tr>
</table>
<div class="pt-4">
{gt name="$cid" value="0"}
<input type="hidden" name="car_id" value="{$cid}">
{/gt}
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</form>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ['tool','uploadPlus','oaPicker'];
function gouguInit() {
var form = layui.form,tool=layui.tool,uploadPlus = layui.uploadPlus;
//相关附件上传
var attachment = new uploadPlus();
//监听提交
form.on('submit(webform)', function(data){
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
tool.sideClose(1000,'feeTable');
}
}
let clickbtn = $(this);
tool.post("/adm/car/fee_add", data.field, callback,clickbtn);
return false;
});
}
</script>
{/block}
<!-- /脚本 -->
+95
View File
@@ -0,0 +1,95 @@
{extend name="../../base/view/common/base" /}
<!-- 主体 -->
{block name="body"}
<form class="layui-form p-page">
<h3 class="pb-2">编辑车辆费用记录</h3>
<table class="layui-table layui-table-form">
<tr>
<td class="layui-td-gray">车辆名称</td>
<td colspan="3">{$detail.car}</td>
<td class="layui-td-gray">费用类型<font>*</font></td>
<td>
<select name="types" lay-verify="required" lay-reqText="选择费用类型">
<option value="">选择费用类型</option>
{volist name=":get_base_data('basicAdm')" id="vo"}
<option value="{$vo.id}" {eq name="$vo.id" value="$detail.types"} selected{/eq}>{$vo.title}</option>
{/volist}
</select>
</td>
</tr>
<tr>
<td class="layui-td-gray">费用主题<font>*</font></td>
<td colspan="5">
<input type="text" name="title" value="{$detail.title}" lay-verify="required" lay-reqText="请完善费用主题" placeholder="请完善费用主题" class="layui-input">
</td>
</tr>
<tr>
<td class="layui-td-gray">费用日期<font>*</font></td>
<td><input type="text" name="fee_time" readonly value="{$detail.fee_time|date='Y-m-d'}" readonly placeholder="请选择费用日期" class="layui-input tool-time" lay-verify="required" lay-reqText="请完善费用日期"></td>
<td class="layui-td-gray">费用金额<font>*</font></td>
<td><input type="text" name="amount" value="{$detail.amount}" placeholder="请输入费用金额" lay-verify="required|number" lay-reqText="请输入费用金额" class="layui-input"></td>
<td class="layui-td-gray">经手人<font>*</font></td>
<td>
<input type="text" name="handled_name" value="{$detail.handled_name}" readonly lay-verify="required" lay-reqText="请选择经手人" class="layui-input picker-admin">
<input type="hidden" name="handled" value="{$detail.handled}">
</td>
</tr>
<tr>
<td class="layui-td-gray-2">
<div class="layui-input-inline">相关附件</div>
<div class="layui-input-inline">
<button type="button" class="layui-btn layui-btn-xs" id="uploadBtn"><i class="layui-icon"></i></button>
</div>
</td>
<td colspan="5">
<div class="layui-row" id="uploadBox">
<input type="hidden" data-type="file" name="file_ids" value="{$detail.file_ids}">
{notempty name="$detail.fileArray"}
{volist name="$detail.fileArray" id="vo"}
<div class="layui-col-md4" id="fileItem{$vo.id}">{:file_card($vo)}</div>
{/volist}
{/notempty}
</div>
</td>
</tr>
<tr>
<td class="layui-td-gray" style="vertical-align:top;">费用内容<font>*</font></td>
<td colspan="5">
<textarea name="content" placeholder="请输入费用内容" class="layui-textarea" lay-verify="required" lay-reqText="请完善收费内容">{$detail.content|default=''}</textarea>
</td>
</tr>
</table>
<div class="pt-4">
<input type="hidden" name="id" value="{$detail.id}">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</form>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ['tool','uploadPlus','oaPicker'];
function gouguInit() {
var form = layui.form,tool=layui.tool,uploadPlus = layui.uploadPlus;
//相关附件上传
var attachment = new uploadPlus();
//监听提交
form.on('submit(webform)', function(data){
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
tool.sideClose(1000,'feeTable');
}
}
let clickbtn = $(this);
tool.post("/adm/car/fee_add", data.field, callback,clickbtn);
return false;
});
}
</script>
{/block}
<!-- /脚本 -->
+94
View File
@@ -0,0 +1,94 @@
{extend name="../../base/view/common/base" /}
<!-- 主体 -->
{block name="body"}
<div class="p-page">
<form class="layui-form gg-form-bar border-t border-x" lay-filter="barsearchform">
<div class="layui-input-inline" style="width:300px;">
<input type="text" class="layui-input" id="diff_time" placeholder="费用日期" readonly name="diff_time">
</div>
<div class="layui-input-inline" style="width:136px;">
<select name="types">
<option value="">选择费用类型</option>
{volist name=":get_base_data('basicAdm')" id="vo"}
<option value="{$vo.id}">{$vo.title}</option>
{/volist}
</select>
</div>
<div class="layui-input-inline" style="width:300px">
<input type="text" name="keywords" placeholder="输入关键字" class="layui-input" autocomplete="off" />
</div>
<div class="layui-input-inline" style="width:150px">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="table-search"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="table-reset">清空</button>
</div>
</form>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>
<script type="text/html" id="toolbarDemo">
<div class="layui-btn-container">
<button class="layui-btn layui-btn-sm tool-add" type="button" data-href="/adm/car/fee_add">+ 添加收费记录</button>
</div>
</script>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ['tool','tablePlus','laydatePlus'];
function gouguInit() {
var table = layui.tablePlus, tool = layui.tool,form = layui.form,laydatePlus = layui.laydatePlus;
var diff_time = new laydatePlus({'target':'diff_time'});
layui.feeTable = table.render({
elem: '#test'
,toolbar: '#toolbarDemo'
,title:'收费记录列表'
,url: "/adm/car/fee_list"
,is_excel: true
,page: true
,cellMinWidth: 60
,height: 'full-114'
,cols: [[
{field:'id',width:80, title: 'ID号', align:'center'}
,{field:'title',minWidth:300,title: '费用主题'}
,{field:'fee_time',title: '费用日期',align: 'center',width: 100}
,{field:'types_str',title: '费用类型',align: 'center',width: 100}
,{field:'amount',width:100, title: '费用金额(元)', align:'center',style:"color:#16b777"}
,{field:'car',width:120,title: '车辆名称'}
,{field:'name',width:100, title: '车牌号码', align:'center'}
,{field:'handled_name',title: '跟进人',align: 'center',width: 80}
,{field:'create_time',title: '记录时间',align: 'center',width: 130}
,{width:120,fixed:'right', title: '操作', align:'center',templet: function(d){
var html='<div class="layui-btn-group"><a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a><a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="view">详情</a><a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a></div>';
return html;
}}
]]
});
table.on('tool(test)',function (obj) {
var that = this;
if(obj.event === 'edit'){
tool.side("/adm/car/fee_add?id="+obj.data.id);
}
if(obj.event === 'view'){
tool.side("/adm/car/fee_view?id="+obj.data.id);
}
if(obj.event === 'del'){
layer.confirm('确定要删除该收费记录吗?', {icon: 3, title:'提示'}, function(index){
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
layui.feeTable.reload();
}
}
tool.post("/adm/car/fee_del", {id: obj.data.id}, callback);
layer.close(index);
});
return;
}
});
}
</script>
{/block}
<!-- /脚本 -->
+56
View File
@@ -0,0 +1,56 @@
{extend name="../../base/view/common/base" /}
<!-- 主体 -->
{block name="body"}
<form class="layui-form p-page">
<h3 class="pb-1">车辆收费记录</h3>
<table class="layui-table">
<tr>
<td class="layui-td-gray">车辆名称</td>
<td colspan="3">{$detail.car}</td>
<td class="layui-td-gray">收费地点</td>
<td>{$detail.types_str}</td>
</tr>
<tr>
<td class="layui-td-gray">费用主题</td>
<td colspan="5">{$detail.title}</td>
</tr>
<tr>
<td class="layui-td-gray">收费日期</td>
<td>{$detail.fee_time|date='Y-m-d'}</td>
<td class="layui-td-gray">收费费用</td>
<td>{$detail.amount}</td>
<td class="layui-td-gray">跟进人</td>
<td>{$detail.handled_name}</td>
</tr>
{notempty name="$detail.fileArray"}
<tr>
<td class="layui-td-gray">相关附件</div></td>
<td colspan="5">
<div class="layui-row" id="uploadBox">
{volist name="$detail.fileArray" id="vo"}
<div class="layui-col-md4" id="fileItem{$vo.id}">{:file_card($vo,'view')}</div>
{/volist}
</div>
</td>
</tr>
{/notempty}
<tr>
<td class="layui-td-gray" style="vertical-align:top;">费用内容</td>
<td colspan="5">{$detail.content|default=''}</td>
</tr>
</table>
</form>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ['tool'];
function gouguInit() {
var form = layui.form,tool=layui.tool;
}
</script>
{/block}
<!-- /脚本 -->
+95
View File
@@ -0,0 +1,95 @@
{extend name="../../base/view/common/base" /}
<!-- 主体 -->
{block name="body"}
<form class="layui-form p-page">
<h3 class="pb-2">新增车辆保养记录</h3>
<table class="layui-table layui-table-form">
{eq name="$cid" value="0"}
<tr>
<td class="layui-td-gray">车辆名称<font>*</font></td>
<td>
<input type="text" name="car_name" readonly lay-verify="required" lay-reqText="请选择车辆" placeholder="请选择" class="layui-input picker-oa" data-types="car">
<input type="hidden" name="car_id" value="">
</td>
<td class="layui-td-gray">保养地点<font>*</font></td>
<td colspan="3">
<input type="text" name="address" lay-verify="required" lay-reqText="请完善保养地点" placeholder="请完善保养地点" class="layui-input">
</td>
</tr>
{else/}
<tr>
<td class="layui-td-gray">车辆名称</td>
<td>{$car.title}</td>
<td class="layui-td-gray">保养地点<font>*</font></td>
<td colspan="3">
<input type="text" name="address" lay-verify="required" lay-reqText="请完善保养地点" placeholder="请完善保养地点" class="layui-input">
</td>
</tr>
{/eq}
<tr>
<td class="layui-td-gray">保养日期<font>*</font></td>
<td><input type="text" name="repair_time" readonly placeholder="请选择保养日期" class="layui-input tool-time" data-max="0" lay-verify="required" lay-reqText="请完善保养日期"></td>
<td class="layui-td-gray">保养费用<font>*</font></td>
<td><input type="text" name="amount" placeholder="请输入保养费用" lay-verify="required|number" lay-reqText="请输入保养费用" class="layui-input"></td>
<td class="layui-td-gray">经手人<font>*</font></td>
<td>
<input type="text" name="handled_name" readonly lay-verify="required" lay-reqText="请选择经手人" placeholder="请选择" class="layui-input picker-admin">
<input type="hidden" name="handled">
</td>
</tr>
<tr>
<td class="layui-td-gray-2">
<div class="layui-input-inline">相关附件</div>
<div class="layui-input-inline">
<button type="button" class="layui-btn layui-btn-xs" id="uploadBtn"><i class="layui-icon"></i></button>
</div>
</td>
<td colspan="5">
<div class="layui-row" id="uploadBox">
<input type="hidden" data-type="file" name="file_ids" value="">
</div>
</td>
</tr>
<tr>
<td class="layui-td-gray" style="vertical-align:top;">保养内容<font>*</font></td>
<td colspan="5">
<textarea name="content" placeholder="请输入保养内容" class="layui-textarea" lay-verify="required" lay-reqText="请完善保养内容"></textarea>
</td>
</tr>
</table>
<div class="pt-4">
{gt name="$cid" value="0"}
<input type="hidden" name="car_id" value="{$cid}">
{/gt}
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</form>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ['tool','uploadPlus','oaPicker'];
function gouguInit() {
var form = layui.form,tool=layui.tool,uploadPlus = layui.uploadPlus;
//相关附件上传
var attachment = new uploadPlus();
//监听提交
form.on('submit(webform)', function(data){
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
tool.sideClose(1000,'protectTable');
}
}
let clickbtn = $(this);
tool.post("/adm/car/protect_add", data.field, callback,clickbtn);
return false;
});
}
</script>
{/block}
<!-- /脚本 -->
+84
View File
@@ -0,0 +1,84 @@
{extend name="../../base/view/common/base" /}
<!-- 主体 -->
{block name="body"}
<form class="layui-form p-page">
<h3 class="pb-2">编辑车辆保养记录</h3>
<table class="layui-table layui-table-form">
<tr>
<td class="layui-td-gray">车辆名称</td>
<td>{$detail.car}</td>
<td class="layui-td-gray">保养地点<font>*</font></td>
<td colspan="3">
<input type="text" name="address" value="{$detail.address}" lay-verify="required" lay-reqText="请完善保养地点" placeholder="请完善保养地点" class="layui-input">
</td>
</tr>
<tr>
<td class="layui-td-gray">保养日期<font>*</font></td>
<td><input type="text" name="repair_time" readonly value="{$detail.repair_time|date='Y-m-d'}" placeholder="请选择保养日期" class="layui-input tool-time" data-max="0" lay-verify="required" lay-reqText="请完善保养日期"></td>
<td class="layui-td-gray">保养费用<font>*</font></td>
<td><input type="text" name="amount" value="{$detail.amount}" placeholder="请输入保养费用" lay-verify="required|number" lay-reqText="请输入保养费用" class="layui-input"></td>
<td class="layui-td-gray">经手人<font>*</font></td>
<td>
<input type="text" name="handled_name" value="{$detail.handled_name}" readonly lay-verify="required" lay-reqText="请选择经手人" class="layui-input picker-admin">
<input type="hidden" name="handled" value="{$detail.handled}">
</td>
</tr>
<tr>
<td class="layui-td-gray-2">
<div class="layui-input-inline">相关附件</div>
<div class="layui-input-inline">
<button type="button" class="layui-btn layui-btn-xs" id="uploadBtn"><i class="layui-icon"></i></button>
</div>
</td>
<td colspan="5">
<div class="layui-row" id="uploadBox">
<input type="hidden" data-type="file" name="file_ids" value="{$detail.file_ids}">
{notempty name="$detail.fileArray"}
{volist name="$detail.fileArray" id="vo"}
<div class="layui-col-md4" id="fileItem{$vo.id}">{:file_card($vo)}</div>
{/volist}
{/notempty}
</div>
</td>
</tr>
<tr>
<td class="layui-td-gray" style="vertical-align:top;">保养内容<font>*</font></td>
<td colspan="5">
<textarea name="content" placeholder="请输入保养内容" class="layui-textarea" lay-verify="required" lay-reqText="请完善保养内容">{$detail.content|default=''}</textarea>
</td>
</tr>
</table>
<div class="pt-4">
<input type="hidden" name="id" value="{$detail.id}">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</form>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ['tool','uploadPlus','oaPicker'];
function gouguInit() {
var form = layui.form,tool=layui.tool,uploadPlus = layui.uploadPlus;
//相关附件上传
var attachment = new uploadPlus();
//监听提交
form.on('submit(webform)', function(data){
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
tool.sideClose(1000,'protectTable');
}
}
let clickbtn = $(this);
tool.post("/adm/car/protect_add", data.field, callback,clickbtn);
return false;
});
}
</script>
{/block}
<!-- /脚本 -->
+84
View File
@@ -0,0 +1,84 @@
{extend name="../../base/view/common/base" /}
<!-- 主体 -->
{block name="body"}
<div class="p-page">
<form class="layui-form gg-form-bar border-t border-x" lay-filter="barsearchform">
<div class="layui-input-inline" style="width:300px;">
<input type="text" class="layui-input" id="diff_time" placeholder="保养日期" readonly name="diff_time">
</div>
<div class="layui-input-inline" style="width:300px">
<input type="text" name="keywords" placeholder="输入关键字" class="layui-input" autocomplete="off" />
</div>
<div class="layui-input-inline" style="width:150px">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="table-search"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="table-reset">清空</button>
</div>
</form>
<table class="layui-hide" id="protectTable" lay-filter="protectTable"></table>
</div>
<script type="text/html" id="toolbarDemo">
<div class="layui-btn-container">
<button class="layui-btn layui-btn-sm tool-add" type="button" data-href="/adm/car/protect_add">+ 添加保养记录</button>
</div>
</script>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ['tool','tablePlus','laydatePlus'];
function gouguInit() {
var table = layui.tablePlus, tool = layui.tool,form = layui.form,laydatePlus = layui.laydatePlus;
var diff_time = new laydatePlus({'target':'diff_time'});
layui.protectTable = table.render({
elem: '#protectTable'
,toolbar: '#toolbarDemo'
,title:'保养记录列表'
,url: "/adm/car/protect_list"
,is_excel: true
,page: true
,cellMinWidth: 60
,height: 'full-114'
,cols: [[
{field:'id',width:80, title: 'ID号', align:'center'}
,{field:'repair_time',title: '保养日期',align: 'center',width: 100}
,{field:'amount',width:100, title: '保养费用(元)', align:'center',style:"color:#16b777"}
,{field:'car',width:120,title: '车辆名称'}
,{field:'name',width:100, title: '车牌号码', align:'center'}
,{field:'content',minWidth:300,title: '保养内容'}
,{field:'handled_name',title: '跟进人',align: 'center',width: 80}
,{field:'create_time',title: '记录时间',align: 'center',width: 130}
,{width:120,fixed:'right', title: '操作', align:'center',templet: function(d){
var html='<div class="layui-btn-group"><a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a><a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="view">详情</a><a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a></div>';
return html;
}}
]]
});
table.on('tool(protectTable)',function (obj) {
var that = this;
if(obj.event === 'edit'){
tool.side("/adm/car/protect_add?id="+obj.data.id);
}
if(obj.event === 'view'){
tool.side("/adm/car/protect_view?id="+obj.data.id);
}
if(obj.event === 'del'){
layer.confirm('确定要删除该保养记录吗?', {icon: 3, title:'提示'}, function(index){
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
layui.protectTable.reload();
}
}
tool.post("/adm/car/protect_del", {id: obj.data.id}, callback);
layer.close(index);
});
return;
}
});
}
</script>
{/block}
<!-- /脚本 -->
+52
View File
@@ -0,0 +1,52 @@
{extend name="../../base/view/common/base" /}
<!-- 主体 -->
{block name="body"}
<form class="layui-form p-page">
<h3 class="pb-1">车辆保养记录</h3>
<table class="layui-table">
<tr>
<td class="layui-td-gray">车辆名称</td>
<td>{$detail.car}</td>
<td class="layui-td-gray">保养地点</td>
<td colspan="3">{$detail.address}</td>
</tr>
<tr>
<td class="layui-td-gray">保养日期</td>
<td>{$detail.repair_time|date='Y-m-d'}</td>
<td class="layui-td-gray">保养费用</td>
<td>{$detail.amount}</td>
<td class="layui-td-gray">跟进人</td>
<td>{$detail.handled_name}</td>
</tr>
{notempty name="$detail.fileArray"}
<tr>
<td class="layui-td-gray">相关附件</div></td>
<td colspan="5">
<div class="layui-row" id="uploadBox">
{volist name="$detail.fileArray" id="vo"}
<div class="layui-col-md4" id="fileItem{$vo.id}">{:file_card($vo,'view')}</div>
{/volist}
</div>
</td>
</tr>
{/notempty}
<tr>
<td class="layui-td-gray-2" style="vertical-align:top;">保养原因&内容</td>
<td colspan="5">{$detail.content|default=''}</td>
</tr>
</table>
</form>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ['tool'];
function gouguInit() {
var form = layui.form,tool=layui.tool;
}
</script>
{/block}
<!-- /脚本 -->
+95
View File
@@ -0,0 +1,95 @@
{extend name="../../base/view/common/base" /}
<!-- 主体 -->
{block name="body"}
<form class="layui-form p-page">
<h3 class="pb-2">新增车辆维修记录</h3>
<table class="layui-table layui-table-form">
{eq name="$cid" value="0"}
<tr>
<td class="layui-td-gray">车辆名称<font>*</font></td>
<td>
<input type="text" name="car_name" readonly lay-verify="required" lay-reqText="请选择车辆" placeholder="请选择" class="layui-input picker-oa" data-types="car">
<input type="hidden" name="car_id" value="">
</td>
<td class="layui-td-gray">维修地点<font>*</font></td>
<td colspan="3">
<input type="text" name="address" lay-verify="required" lay-reqText="请完善维修地点" placeholder="请完善维修地点" class="layui-input">
</td>
</tr>
{else/}
<tr>
<td class="layui-td-gray">车辆名称</td>
<td>{$car.title}</td>
<td class="layui-td-gray">维修地点<font>*</font></td>
<td colspan="3">
<input type="text" name="address" lay-verify="required" lay-reqText="请完善维修地点" placeholder="请完善维修地点" class="layui-input">
</td>
</tr>
{/eq}
<tr>
<td class="layui-td-gray">维修日期<font>*</font></td>
<td><input type="text" name="repair_time" readonly placeholder="请选择维修日期" class="layui-input tool-time" data-max="0" lay-verify="required" lay-reqText="请完善维修日期"></td>
<td class="layui-td-gray">维修费用<font>*</font></td>
<td><input type="text" name="amount" placeholder="请输入维修费用" lay-verify="required|number" lay-reqText="请输入维修费用" class="layui-input"></td>
<td class="layui-td-gray">经手人<font>*</font></td>
<td>
<input type="text" name="handled_name" readonly lay-verify="required" lay-reqText="请选择经手人" placeholder="请选择" class="layui-input picker-admin">
<input type="hidden" name="handled">
</td>
</tr>
<tr>
<td class="layui-td-gray-2">
<div class="layui-input-inline">相关附件</div>
<div class="layui-input-inline">
<button type="button" class="layui-btn layui-btn-xs" id="uploadBtn"><i class="layui-icon"></i></button>
</div>
</td>
<td colspan="5">
<div class="layui-row" id="uploadBox">
<input type="hidden" data-type="file" name="file_ids" value="">
</div>
</td>
</tr>
<tr>
<td class="layui-td-gray" style="vertical-align:top;">维修内容<font>*</font></td>
<td colspan="5">
<textarea name="content" placeholder="请输入维修内容" class="layui-textarea" lay-verify="required" lay-reqText="请完善维修内容"></textarea>
</td>
</tr>
</table>
<div class="pt-4">
{gt name="$cid" value="0"}
<input type="hidden" name="car_id" value="{$cid}">
{/gt}
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</form>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ['tool','uploadPlus','oaPicker'];
function gouguInit() {
var form = layui.form,tool=layui.tool,uploadPlus = layui.uploadPlus;
//相关附件上传
var attachment = new uploadPlus();
//监听提交
form.on('submit(webform)', function(data){
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
tool.sideClose(1000,'repairTable');
}
}
let clickbtn = $(this);
tool.post("/adm/car/repair_add", data.field, callback,clickbtn);
return false;
});
}
</script>
{/block}
<!-- /脚本 -->
+84
View File
@@ -0,0 +1,84 @@
{extend name="../../base/view/common/base" /}
<!-- 主体 -->
{block name="body"}
<form class="layui-form p-page">
<h3 class="pb-2">编辑车辆维修记录</h3>
<table class="layui-table layui-table-form">
<tr>
<td class="layui-td-gray">车辆名称</td>
<td>{$detail.car}</td>
<td class="layui-td-gray">维修地点<font>*</font></td>
<td colspan="3">
<input type="text" name="address" value="{$detail.address}" lay-verify="required" lay-reqText="请完善维修地点" placeholder="请完善维修地点" class="layui-input">
</td>
</tr>
<tr>
<td class="layui-td-gray">维修日期<font>*</font></td>
<td><input type="text" name="repair_time" readonly value="{$detail.repair_time|date='Y-m-d'}" placeholder="请选择维修日期" class="layui-input tool-time" data-max="0" lay-verify="required" lay-reqText="请完善维修日期"></td>
<td class="layui-td-gray">维修费用<font>*</font></td>
<td><input type="text" name="amount" value="{$detail.amount}" placeholder="请输入维修费用" lay-verify="required|number" lay-reqText="请输入维修费用" class="layui-input"></td>
<td class="layui-td-gray">经手人<font>*</font></td>
<td>
<input type="text" name="handled_name" value="{$detail.handled_name}" readonly lay-verify="required" lay-reqText="请选择经手人" class="layui-input picker-admin">
<input type="hidden" name="handled" value="{$detail.handled}">
</td>
</tr>
<tr>
<td class="layui-td-gray-2">
<div class="layui-input-inline">相关附件</div>
<div class="layui-input-inline">
<button type="button" class="layui-btn layui-btn-xs" id="uploadBtn"><i class="layui-icon"></i></button>
</div>
</td>
<td colspan="5">
<div class="layui-row" id="uploadBox">
<input type="hidden" data-type="file" name="file_ids" value="{$detail.file_ids}">
{notempty name="$detail.fileArray"}
{volist name="$detail.fileArray" id="vo"}
<div class="layui-col-md4" id="fileItem{$vo.id}">{:file_card($vo)}</div>
{/volist}
{/notempty}
</div>
</td>
</tr>
<tr>
<td class="layui-td-gray" style="vertical-align:top;">维修内容<font>*</font></td>
<td colspan="5">
<textarea name="content" placeholder="请输入维修内容" class="layui-textarea" lay-verify="required" lay-reqText="请完善维修内容">{$detail.content|default=''}</textarea>
</td>
</tr>
</table>
<div class="pt-4">
<input type="hidden" name="id" value="{$detail.id}">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="webform">立即提交</button>
<button type="reset" class="layui-btn layui-btn-primary">重置</button>
</div>
</form>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ['tool','uploadPlus','oaPicker'];
function gouguInit() {
var form = layui.form,tool=layui.tool,uploadPlus = layui.uploadPlus;
//相关附件上传
var attachment = new uploadPlus();
//监听提交
form.on('submit(webform)', function(data){
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
tool.sideClose(1000,'repairTable');
}
}
let clickbtn = $(this);
tool.post("/adm/car/repair_add", data.field, callback,clickbtn);
return false;
});
}
</script>
{/block}
<!-- /脚本 -->
+84
View File
@@ -0,0 +1,84 @@
{extend name="../../base/view/common/base" /}
<!-- 主体 -->
{block name="body"}
<div class="p-page">
<form class="layui-form gg-form-bar border-t border-x" lay-filter="barsearchform">
<div class="layui-input-inline" style="width:300px;">
<input type="text" class="layui-input" id="diff_time" placeholder="维修日期" readonly name="diff_time">
</div>
<div class="layui-input-inline" style="width:300px">
<input type="text" name="keywords" placeholder="输入关键字" class="layui-input" autocomplete="off" />
</div>
<div class="layui-input-inline" style="width:150px">
<button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="table-search"><i class="layui-icon layui-icon-search mr-1"></i>搜索</button>
<button type="reset" class="layui-btn layui-btn-reset" lay-filter="table-reset">清空</button>
</div>
</form>
<table class="layui-hide" id="test" lay-filter="test"></table>
</div>
<script type="text/html" id="toolbarDemo">
<div class="layui-btn-container">
<button class="layui-btn layui-btn-sm tool-add" type="button" data-href="/adm/car/repair_add">+ 添加维修记录</button>
</div>
</script>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ['tool','tablePlus','laydatePlus'];
function gouguInit() {
var table = layui.tablePlus, tool = layui.tool,form = layui.form,laydatePlus = layui.laydatePlus;
var diff_time = new laydatePlus({'target':'diff_time'});
layui.repairTable = table.render({
elem: '#test'
,toolbar: '#toolbarDemo'
,title:'维修记录列表'
,url: "/adm/car/repair_list"
,is_excel: true
,page: true
,cellMinWidth: 60
,height: 'full-114'
,cols: [[
{field:'id',width:80, title: 'ID号', align:'center'}
,{field:'repair_time',title: '维修日期',align: 'center',width: 100}
,{field:'amount',width:100, title: '维修费用(元)', align:'center',style:"color:#16b777"}
,{field:'car',width:120,title: '车辆名称'}
,{field:'name',width:100, title: '车牌号码', align:'center'}
,{field:'content',minWidth:300,title: '维修内容'}
,{field:'handled_name',title: '跟进人',align: 'center',width: 80}
,{field:'create_time',title: '记录时间',align: 'center',width: 130}
,{width:120,fixed:'right', title: '操作', align:'center',templet: function(d){
var html='<div class="layui-btn-group"><a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a><a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="view">详情</a><a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a></div>';
return html;
}}
]]
});
table.on('tool(test)',function (obj) {
var that = this;
if(obj.event === 'edit'){
tool.side("/adm/car/repair_add?id="+obj.data.id);
}
if(obj.event === 'view'){
tool.side("/adm/car/repair_view?id="+obj.data.id);
}
if(obj.event === 'del'){
layer.confirm('确定要删除该维修记录吗?', {icon: 3, title:'提示'}, function(index){
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
layui.repairTable.reload();
}
}
tool.post("/adm/car/repair_del", {id: obj.data.id}, callback);
layer.close(index);
});
return;
}
});
}
</script>
{/block}
<!-- /脚本 -->
+52
View File
@@ -0,0 +1,52 @@
{extend name="../../base/view/common/base" /}
<!-- 主体 -->
{block name="body"}
<form class="layui-form p-page">
<h3 class="pb-1">车辆维修记录</h3>
<table class="layui-table">
<tr>
<td class="layui-td-gray">车辆名称</td>
<td>{$detail.car}</td>
<td class="layui-td-gray">维修地点</td>
<td colspan="3">{$detail.address}</td>
</tr>
<tr>
<td class="layui-td-gray">维修日期</td>
<td>{$detail.repair_time|date='Y-m-d'}</td>
<td class="layui-td-gray">维修费用</td>
<td>{$detail.amount}</td>
<td class="layui-td-gray">跟进人</td>
<td>{$detail.handled_name}</td>
</tr>
{notempty name="$detail.fileArray"}
<tr>
<td class="layui-td-gray">相关附件</div></td>
<td colspan="5">
<div class="layui-row" id="uploadBox">
{volist name="$detail.fileArray" id="vo"}
<div class="layui-col-md4" id="fileItem{$vo.id}">{:file_card($vo,'view')}</div>
{/volist}
</div>
</td>
</tr>
{/notempty}
<tr>
<td class="layui-td-gray" style="vertical-align:top;">维修内容</td>
<td colspan="5">{$detail.content|default=''}</td>
</tr>
</table>
</form>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
const moduleInit = ['tool'];
function gouguInit() {
var form = layui.form,tool=layui.tool;
}
</script>
{/block}
<!-- /脚本 -->
+390
View File
@@ -0,0 +1,390 @@
{extend name="../../base/view/common/base" /}
{block name="style"}
<style>
.layui-tab-title .layui-this{background-color:#fff;}
.layui-tab-card,.layui-card{box-shadow:0 0 0 0 rgb(0 0 0 / 10%); border-radius:0; border-top:none;}
</style>
{/block}
<!-- 主体 -->
{block name="body"}
<div class="p-page">
<h3 class="pb-2">车辆信息详情</h3>
<table class="layui-table layui-table-form">
<tr>
<td class="layui-td-gray">车辆名称</td>
<td>{$detail.title}</td>
<td class="layui-td-gray">车牌号码</td>
<td>{$detail.name}</td>
<td class="layui-td-gray-2" rowspan="5">车辆缩略图</td>
<td rowspan="5" style="width:252px;">
<div id="demo1" style="width: 240px; height:136px; overflow: hidden;">
<img src="{:get_file($detail.thumb)}" style="max-width: 100%; height:136px;" />
</div>
</td>
</tr>
<tr>
<td class="layui-td-gray-2">购买日期</td>
<td>{$detail.buy_time|date='Y-m-d'}</td>
<td class="layui-td-gray-2">购买价格</td>
<td>{$detail.price}</td>
</tr>
<tr>
<td class="layui-td-gray-2">车身颜色</td>
<td>{$detail.color}</td>
<td class="layui-td-gray">座位数</td>
<td>{$detail.seats}</td>
</tr>
<tr>
<td class="layui-td-gray">发动机号</td>
<td>{$detail.engine}</td>
<td class="layui-td-gray-2">车架号</td>
<td>{$detail.vin}</td>
</tr>
<tr>
<td class="layui-td-gray-2">车险到期日期</td>
<td>{$detail.insure_time|date='Y-m-d'}</td>
<td class="layui-td-gray-2">车审到期日期</td>
<td>{$detail.review_time|date='Y-m-d'}</td>
</tr>
<tr>
<td class="layui-td-gray">车辆油耗</td>
<td>{$detail.oil}</td>
<td class="layui-td-gray-2">当前里程数</td>
<td>{$detail.latestMileage}(开始里程数:{$detail.mileage}</td>
<td class="layui-td-gray-2">驾驶员</td>
<td>{$detail.driver_name|default=''}</td>
</tr>
{notempty name="$detail.remark"}
<tr>
<td class="layui-td-gray">备注信息</td>
<td colspan="5">{$detail.remark|default=''}</td>
</tr>
{/notempty}
{notempty name="$detail.file_ids"}
<tr>
<td colspan="6"><strong>相关附件<strong></td>
</tr>
<tr>
<td colspan="6">
<div class="layui-row" id="uploadBox">
{volist name="$detail.file_array" id="vo"}
<div class="layui-col-md4" id="uploadFile{$vo.id}">{:file_card($vo,'view')}</div>
{/volist}
</div>
</td>
</tr>
{/notempty}
</table>
<div class="layui-tab layui-tab-card" style="margin:0; background-color:#fff;" lay-filter="car" id="carTab">
<ul class="layui-tab-title">
<li class="layui-this" data-load="true"><strong>里程记录</strong></li>
<li><strong>费用记录</strong></li>
<li><strong>维修记录</strong></li>
<li><strong>保养记录</strong></li>
</ul>
<div class="layui-tab-content" style="padding:0;">
<div class="layui-tab-item layui-show">
<div class="p-3">
<div class="pb-3">
<span class="layui-btn layui-btn-sm add-mileage">+ 里程记录</span>
</div>
<table class="layui-hide" id="mileage" lay-filter="mileage"></table>
</div>
</div>
<div class="layui-tab-item">
<div class="p-3">
<div class="pb-3">
<span class="layui-btn layui-btn-sm side-a" data-href="/adm/car/fee_add?cid={$detail.id}">+ 费用记录</span>
</div>
<table class="layui-hide" id="fee" lay-filter="fee"></table>
</div>
</div>
<div class="layui-tab-item">
<div class="p-3">
<div class="pb-3">
<span class="layui-btn layui-btn-sm side-a" data-href="/adm/car/repair_add?cid={$detail.id}">+ 维修记录</span>
</div>
<table class="layui-hide" id="repair" lay-filter="repair"></table>
</div>
</div>
<div class="layui-tab-item">
<div class="p-3">
<div class="pb-3">
<span class="layui-btn layui-btn-sm side-a" data-href="/adm/car/protect_add?cid={$detail.id}">+ 保养记录</span>
</div>
<table class="layui-hide" id="protect" lay-filter="protect"></table>
</div>
</div>
</div>
</div>
</div>
{/block}
<!-- /主体 -->
<!-- 脚本 -->
{block name="script"}
<script>
var car_id = {$detail.id};
var moduleInit = ['tool'];
function gouguInit() {
var tool = layui.tool,table = layui.table,element = layui.element;
element.on('tab(car)', function(data){
let index = data.index;
if(index == 1){
layui.feeTable = table.render({
elem: '#fee',
title: '费用记录',
cellMinWidth: 80,
url: "/adm/api/get_car_fee", //数据接口
where: { 'car_id': car_id },
page: true, //开启分页
limit: 10,
cols: [[
{field:'id',width:80, title: 'ID号', align:'center'}
,{field:'fee_time',title: '费用日期',align: 'center',width: 100}
,{field:'types_str',title: '费用类型',align: 'center',width: 100}
,{field:'amount',width:100, title: '费用金额(元)', align:'center',style:"color:#16b777"}
,{field:'title',minWidth:300,title: '费用主题'}
,{field:'handled_name',title: '跟进人',align: 'center',width: 80}
,{field:'create_time',title: '记录时间',align: 'center',width: 130}
,{width:120,fixed:'right', title: '操作', align:'center',templet: function(d){
var html='<div class="layui-btn-group"><a class="layui-btn layui-btn-xs" lay-event="edit">编辑</a><a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="view">详情</a><a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a></div>';
return html;
}}
]]
});
//监听行工具事件
table.on('tool(fee)', function(obj) {
var data = obj.data;
if(obj.event === 'edit'){
tool.side('/adm/car/fee_add?id='+data.id);
return;
}
if(obj.event === 'view'){
tool.side('/adm/car/fee_view?id='+data.id);
return;
}
if (obj.event === 'del') {
layer.confirm('确定要删除吗?', {
icon: 3,
title: '提示'
}, function(index) {
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
obj.del();
}
}
tool.delete("/adm/car/fee_del", {id: data.id}, callback);
layer.close(index);
});
}
});
}
if(index == 2){
layui.repairTable = table.render({
elem: '#repair',
title: '维修记录',
cellMinWidth: 80,
url: "/adm/api/get_car_repair", //数据接口
where: { 'car_id': car_id },
page: true, //开启分页
limit: 10,
cols: [[ //表头
{ field: 'id', title: '序号', width: 60, align: 'center' }
, { field: 'amount', title: '维修金额', style: 'color: #91CC75;', align: 'center', width: 100 }
, { field: 'repair_time', title: '维修日期', align: 'center', width: 100 }
, { field: 'content', title: '维修内容',minWidth:240}
, { field: 'handled_name', title: '经手人', align: 'center', width: 80 }
, { field: 'create_time', title: '记录时间', align: 'center', width: 136}
, {title: '操作',fixed:'right', align: 'center', width: 124, templet: function (d) {
return '<div class="layui-btn-group"><span class="layui-btn layui-btn-xs" lay-event="edit">修改</span><span class="layui-btn layui-btn-normal layui-btn-xs" lay-event="view">详细</span><span class="layui-btn layui-bg-red layui-btn-xs" lay-event="del">删除</span></div>';
}
}
]]
});
//监听行工具事件
table.on('tool(repair)', function(obj) {
var data = obj.data;
if(obj.event === 'edit'){
tool.side('/adm/car/repair_add?id='+data.id);
return;
}
if(obj.event === 'view'){
tool.side('/adm/car/repair_view?id='+data.id);
return;
}
if (obj.event === 'del') {
layer.confirm('确定要删除吗?', {
icon: 3,
title: '提示'
}, function(index) {
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
obj.del();
}
}
tool.delete("/adm/car/repair_del", {id: data.id}, callback);
layer.close(index);
});
}
});
}
if(index == 3){
layui.protectTable = table.render({
elem: '#protect',
title: '保养记录',
cellMinWidth: 80,
url: "/adm/api/get_car_protect", //数据接口
where: { 'car_id': car_id },
page: true, //开启分页
limit: 10,
cols: [[ //表头
{ field: 'id', title: '序号', width: 60, align: 'center' }
, { field: 'amount', title: '保养金额', style: 'color: #91CC75;', align: 'center', width: 100 }
, { field: 'repair_time', title: '保养日期', align: 'center', width: 100 }
, { field: 'content', title: '保养内容',minWidth:240}
, { field: 'handled_name', title: '经手人', align: 'center', width: 80 }
, { field: 'create_time', title: '记录时间', align: 'center', width: 136}
, {title: '操作',fixed:'right', align: 'center', width: 124, templet: function (d) {
return '<div class="layui-btn-group"><span class="layui-btn layui-btn-xs" lay-event="edit">修改</span><span class="layui-btn layui-btn-normal layui-btn-xs" lay-event="view">详细</span><span class="layui-btn layui-bg-red layui-btn-xs" lay-event="del">删除</span></div>';
}
}
]]
});
//监听行工具事件
table.on('tool(protect)', function(obj) {
var data = obj.data;
if(obj.event === 'edit'){
tool.side('/adm/car/protect_add?id='+data.id);
return;
}
if(obj.event === 'view'){
tool.side('/adm/car/protect_view?id='+data.id);
return;
}
if (obj.event === 'del') {
layer.confirm('确定要删除吗?', {
icon: 3,
title: '提示'
}, function(index) {
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
obj.del();
}
}
tool.delete("/adm/car/protect_del", {id: data.id}, callback);
layer.close(index);
});
}
});
}
});
layui.mileageTable = table.render({
elem: '#mileage',
title: '里程记录',
cellMinWidth: 80,
url: "/adm/api/get_car_mileage", //数据接口
where: { 'car_id': car_id },
page: true, //开启分页
limit: 10,
cols: [[ //表头
{ field: 'id', title: '序号', width: 60, align: 'center' }
, { field: 'mileage', title: '里程数', align: 'center', width: 120}
, { field: 'mileage_time', title: '里程月份', align: 'center', width: 120 }
, { field: 'admin_name', title: '创建人', align: 'center', width: 120 }
, { field: 'create_time', title: '记录时间', align: 'center', minWidth: 150,}
, {title: '操作',fixed:'right', align: 'center', width: 124, templet: function (d) {
return '<div class="layui-btn-group"><span class="layui-btn layui-btn-xs" lay-event="edit">修改</span><span class="layui-btn layui-bg-red layui-btn-xs" lay-event="del">删除</span></div>';
}
}
]]
});
$('body').on('click','.add-mileage',function(){
addMileage(0,'','');
});
function addMileage(id,mileage_time,mileage){
var biaoti = '新增里程记录';
if(id>0){
biaoti = '编辑里程记录';
}
layer.open({
type: 1
,title: biaoti
,area: '368px;'
,id: 'LAY_module' //设定一个id,防止重复弹出
,btn: ['确定', '取消']
,btnAlign: 'c'
,content: '<div style="padding-top:15px;">\
<div class="layui-form-item">\
<label class="layui-form-label">里程月份</label>\
<div class="layui-input-inline">\
<input type="hidden" name="id" value="'+id+'">\
<input type="text" name="mileage_time" autocomplete="off" value="'+mileage_time+'" placeholder="请输入里程月份" readonly class="layui-input tool-time" data-type="month">\
</div>\
</div>\
<div class="layui-form-item">\
<label class="layui-form-label">里程数</label>\
<div class="layui-input-inline">\
<input type="text" name="mileage" autocomplete="off" value="'+mileage+'" placeholder="请输入里程数" class="layui-input">\
</div>\
</div>\
</div>'
,yes: function(index){
let id = $('#LAY_module').find('[name="id"]').val();
let mileage_time = $('#LAY_module').find('[name="mileage_time"]').val();
let mileage = $('#LAY_module').find('[name="mileage"]').val();
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
layui.mileageTable.reload();
layer.close(index);
}
}
tool.post("/adm/car/mileage_add", {
id: id,
mileage_time: mileage_time,
mileage: mileage,
car_id:car_id
}, callback);
}
,btn2: function(){
layer.closeAll();
}
});
}
//监听行工具事件
table.on('tool(mileage)', function(obj) {
var data = obj.data;
if(obj.event === 'edit'){
addMileage(data.id,data.mileage_time,data.mileage)
return;
}
if (obj.event === 'del') {
layer.confirm('确定要删除吗?', {
icon: 3,
title: '提示'
}, function(index) {
let callback = function (e) {
layer.msg(e.msg);
if (e.code == 0) {
obj.del();
}
}
tool.delete("/adm/car/mileage_del", {id: data.id}, callback);
layer.close(index);
});
}
});
}
</script>
{/block}
<!-- /脚本 -->