租车套餐

This commit is contained in:
19173159168
2025-07-08 00:58:41 +08:00
parent d837a9438f
commit 8a9d3b392e
33 changed files with 3681 additions and 16 deletions

View File

@ -0,0 +1,189 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('新增租电套餐')" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-rentBatteyRule-add">
<div class="form-group">
<label class="col-sm-3 control-label is-required">商品标题:</label>
<div class="col-sm-8">
<input name="title" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">商品描述:</label>
<div class="col-sm-8">
<input name="detail" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">图标:</label>
<div class="col-sm-8">
<input name="icon" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">电压:</label>
<div class="col-sm-8">
<input name="voltage" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">电容:</label>
<div class="col-sm-8">
<input name="ah" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">最大里程:</label>
<div class="col-sm-8">
<input name="maxMileage" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">最小里程 默认0</label>
<div class="col-sm-8">
<input name="minMileage" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">押金:</label>
<div class="col-sm-8">
<input name="depositPrice" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">租金:</label>
<div class="col-sm-8">
<input name="rentPrice" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">计时方式:</label>
<div class="col-sm-8">
<select name="durationType" class="form-control m-b" th:with="type=${@dict.getType('key_battey_duration_type')}" required>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">租赁时长:</label>
<div class="col-sm-8">
<input name="duration" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">盗抢险:</label>
<div class="col-sm-8">
<input name="insurancePrice" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">是否强制投保 默认0 false</label>
<div class="col-sm-8">
<input name="compulsoryInsurance" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">保险有效时长 默认12个月</label>
<div class="col-sm-8">
<input name="insuranceDuration" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">换电次数:</label>
<div class="col-sm-8">
<input name="changeNum" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">1、有限次数 2无限次数</label>
<div class="col-sm-8">
<select name="changeType" class="form-control m-b" th:with="type=${@dict.getType('key_battey_change_type')}" required>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required"></label>
<div class="col-sm-8">
<input name="isDelete" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required"></label>
<div class="col-sm-8">
<input name="cityId" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required"></label>
<div class="col-sm-8">
<input name="operatorId" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required"></label>
<div class="col-sm-8">
<input name="provinceId" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">电池类型:</label>
<div class="col-sm-8">
<input name="categoryId" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">套餐类型 换电/租电:</label>
<div class="col-sm-8">
<select name="mealType" class="form-control m-b" th:with="type=${@dict.getType('key_battey_meal_type')}" required>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">套餐排序规则:</label>
<div class="col-sm-8">
<input name="mealSort" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required"></label>
<div class="col-sm-8">
<input name="isJoinInvite" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">套餐渠道租车默认 id号待定</label>
<div class="col-sm-8">
<input name="mealChannel" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">购买限制类型:</label>
<div class="col-sm-8">
<select name="buyLimitType" class="form-control m-b" th:with="type=${@dict.getType('key_battey_buy_limit_type')}" required>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var prefix = ctx + "operation/rentBatteyRule"
$("#form-rentBatteyRule-add").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/add", $('#form-rentBatteyRule-add').serialize());
}
}
</script>
</body>
</html>

View File

@ -0,0 +1,190 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('修改租电套餐')" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-rentBatteyRule-edit" th:object="${zcRentBatteyRule}">
<input name="id" th:field="*{id}" type="hidden">
<div class="form-group">
<label class="col-sm-3 control-label is-required">商品标题:</label>
<div class="col-sm-8">
<input name="title" th:field="*{title}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">商品描述:</label>
<div class="col-sm-8">
<input name="detail" th:field="*{detail}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">图标:</label>
<div class="col-sm-8">
<input name="icon" th:field="*{icon}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">电压:</label>
<div class="col-sm-8">
<input name="voltage" th:field="*{voltage}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">电容:</label>
<div class="col-sm-8">
<input name="ah" th:field="*{ah}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">最大里程:</label>
<div class="col-sm-8">
<input name="maxMileage" th:field="*{maxMileage}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">最小里程 默认0</label>
<div class="col-sm-8">
<input name="minMileage" th:field="*{minMileage}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">押金:</label>
<div class="col-sm-8">
<input name="depositPrice" th:field="*{depositPrice}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">租金:</label>
<div class="col-sm-8">
<input name="rentPrice" th:field="*{rentPrice}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">计时方式:</label>
<div class="col-sm-8">
<select name="durationType" class="form-control m-b" th:with="type=${@dict.getType('key_battey_duration_type')}" required>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{durationType}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">租赁时长:</label>
<div class="col-sm-8">
<input name="duration" th:field="*{duration}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">盗抢险:</label>
<div class="col-sm-8">
<input name="insurancePrice" th:field="*{insurancePrice}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">是否强制投保 默认0 false</label>
<div class="col-sm-8">
<input name="compulsoryInsurance" th:field="*{compulsoryInsurance}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">保险有效时长 默认12个月</label>
<div class="col-sm-8">
<input name="insuranceDuration" th:field="*{insuranceDuration}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">换电次数:</label>
<div class="col-sm-8">
<input name="changeNum" th:field="*{changeNum}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">1、有限次数 2无限次数</label>
<div class="col-sm-8">
<select name="changeType" class="form-control m-b" th:with="type=${@dict.getType('key_battey_change_type')}" required>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{changeType}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required"></label>
<div class="col-sm-8">
<input name="isDelete" th:field="*{isDelete}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required"></label>
<div class="col-sm-8">
<input name="cityId" th:field="*{cityId}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required"></label>
<div class="col-sm-8">
<input name="operatorId" th:field="*{operatorId}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required"></label>
<div class="col-sm-8">
<input name="provinceId" th:field="*{provinceId}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">电池类型:</label>
<div class="col-sm-8">
<input name="categoryId" th:field="*{categoryId}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">套餐类型 换电/租电:</label>
<div class="col-sm-8">
<select name="mealType" class="form-control m-b" th:with="type=${@dict.getType('key_battey_meal_type')}" required>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{mealType}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">套餐排序规则:</label>
<div class="col-sm-8">
<input name="mealSort" th:field="*{mealSort}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required"></label>
<div class="col-sm-8">
<input name="isJoinInvite" th:field="*{isJoinInvite}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">套餐渠道租车默认 id号待定</label>
<div class="col-sm-8">
<input name="mealChannel" th:field="*{mealChannel}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">购买限制类型:</label>
<div class="col-sm-8">
<select name="buyLimitType" class="form-control m-b" th:with="type=${@dict.getType('key_battey_buy_limit_type')}" required>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{buyLimitType}"></option>
</select>
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var prefix = ctx + "operation/rentBatteyRule";
$("#form-rentBatteyRule-edit").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/edit", $('#form-rentBatteyRule-edit').serialize());
}
}
</script>
</body>
</html>

View File

@ -0,0 +1,314 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('租电套餐列表')" />
</head>
<body class="gray-bg">
<div class="container-div">
<div class="row">
<div class="col-sm-12 search-collapse">
<form id="formId">
<div class="select-list">
<ul>
<li>
<label>商品标题:</label>
<input type="text" name="title"/>
</li>
<li>
<label>商品描述:</label>
<input type="text" name="detail"/>
</li>
<li>
<label>图标:</label>
<input type="text" name="icon"/>
</li>
<li>
<label>电压:</label>
<input type="text" name="voltage"/>
</li>
<li>
<label>电容:</label>
<input type="text" name="ah"/>
</li>
<li>
<label>最大里程:</label>
<input type="text" name="maxMileage"/>
</li>
<li>
<label>最小里程 默认0</label>
<input type="text" name="minMileage"/>
</li>
<li>
<label>押金:</label>
<input type="text" name="depositPrice"/>
</li>
<li>
<label>租金:</label>
<input type="text" name="rentPrice"/>
</li>
<li>
<label>计时方式:</label>
<select name="durationType" th:with="type=${@dict.getType('key_battey_duration_type')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
<label>租赁时长:</label>
<input type="text" name="duration"/>
</li>
<li>
<label>盗抢险:</label>
<input type="text" name="insurancePrice"/>
</li>
<li>
<label>是否强制投保 默认0 false</label>
<input type="text" name="compulsoryInsurance"/>
</li>
<li>
<label>保险有效时长 默认12个月</label>
<input type="text" name="insuranceDuration"/>
</li>
<li>
<label>换电次数:</label>
<input type="text" name="changeNum"/>
</li>
<li>
<label>1、有限次数 2无限次数</label>
<select name="changeType" th:with="type=${@dict.getType('key_battey_change_type')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
<label></label>
<input type="text" name="isDelete"/>
</li>
<li>
<label></label>
<input type="text" name="cityId"/>
</li>
<li>
<label></label>
<input type="text" name="operatorId"/>
</li>
<li>
<label></label>
<input type="text" name="provinceId"/>
</li>
<li>
<label>电池类型:</label>
<input type="text" name="categoryId"/>
</li>
<li>
<label>套餐类型 换电/租电:</label>
<select name="mealType" th:with="type=${@dict.getType('key_battey_meal_type')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
<label>套餐排序规则:</label>
<input type="text" name="mealSort"/>
</li>
<li>
<label></label>
<input type="text" name="isJoinInvite"/>
</li>
<li>
<label>套餐渠道租车默认 id号待定</label>
<input type="text" name="mealChannel"/>
</li>
<li>
<label>购买限制类型:</label>
<select name="buyLimitType" th:with="type=${@dict.getType('key_battey_buy_limit_type')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
</li>
</ul>
</div>
</form>
</div>
<div class="btn-group-sm" id="toolbar" role="group">
<a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="operation:rentBatteyRule:add">
<i class="fa fa-plus"></i> 添加
</a>
<a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="operation:rentBatteyRule:edit">
<i class="fa fa-edit"></i> 修改
</a>
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="operation:rentBatteyRule:remove">
<i class="fa fa-remove"></i> 删除
</a>
<a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="operation:rentBatteyRule:export">
<i class="fa fa-download"></i> 导出
</a>
</div>
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table>
</div>
</div>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var editFlag = [[${@permission.hasPermi('operation:rentBatteyRule:edit')}]];
var removeFlag = [[${@permission.hasPermi('operation:rentBatteyRule:remove')}]];
var durationTypeDatas = [[${@dict.getType('key_battey_duration_type')}]];
var changeTypeDatas = [[${@dict.getType('key_battey_change_type')}]];
var mealTypeDatas = [[${@dict.getType('key_battey_meal_type')}]];
var buyLimitTypeDatas = [[${@dict.getType('key_battey_buy_limit_type')}]];
var prefix = ctx + "operation/rentBatteyRule";
$(function() {
var options = {
url: prefix + "/list",
createUrl: prefix + "/add",
updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove",
exportUrl: prefix + "/export",
modalName: "租电套餐",
columns: [{
checkbox: true
},
{
field: 'id',
title: '',
visible: false
},
{
field: 'title',
title: '商品标题'
},
{
field: 'detail',
title: '商品描述'
},
{
field: 'icon',
title: '图标'
},
{
field: 'voltage',
title: '电压'
},
{
field: 'ah',
title: '电容'
},
{
field: 'maxMileage',
title: '最大里程'
},
{
field: 'minMileage',
title: '最小里程 默认0'
},
{
field: 'depositPrice',
title: '押金'
},
{
field: 'rentPrice',
title: '租金'
},
{
field: 'durationType',
title: '计时方式',
formatter: function(value, row, index) {
return $.table.selectDictLabel(durationTypeDatas, value);
}
},
{
field: 'duration',
title: '租赁时长'
},
{
field: 'insurancePrice',
title: '盗抢险'
},
{
field: 'compulsoryInsurance',
title: '是否强制投保 默认0 false'
},
{
field: 'insuranceDuration',
title: '保险有效时长 默认12个月'
},
{
field: 'changeNum',
title: '换电次数'
},
{
field: 'changeType',
title: '1、有限次数 2无限次数',
formatter: function(value, row, index) {
return $.table.selectDictLabel(changeTypeDatas, value);
}
},
{
field: 'isDelete',
title: ''
},
{
field: 'cityId',
title: ''
},
{
field: 'operatorId',
title: ''
},
{
field: 'provinceId',
title: ''
},
{
field: 'categoryId',
title: '电池类型'
},
{
field: 'mealType',
title: '套餐类型 换电/租电',
formatter: function(value, row, index) {
return $.table.selectDictLabel(mealTypeDatas, value);
}
},
{
field: 'mealSort',
title: '套餐排序规则'
},
{
field: 'isJoinInvite',
title: ''
},
{
field: 'mealChannel',
title: '套餐渠道租车默认 id号待定'
},
{
field: 'buyLimitType',
title: '购买限制类型',
formatter: function(value, row, index) {
return $.table.selectDictLabel(buyLimitTypeDatas, value);
}
},
{
title: '操作',
align: 'center',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
return actions.join('');
}
}]
};
$.table.init(options);
});
</script>
</body>
</html>

View File

@ -0,0 +1,55 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('新增租车规则租电规则关联')" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-rentCarBattey-add">
<div class="form-group">
<label class="col-sm-3 control-label is-required"></label>
<div class="col-sm-8">
<input name="carRuleId" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required"></label>
<div class="col-sm-8">
<input name="batteryRuleId" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label"></label>
<div class="col-sm-8">
<input name="sortOrder" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">删除标志:</label>
<div class="col-sm-8">
<input name="delFlag" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">备注:</label>
<div class="col-sm-8">
<textarea name="remark" class="form-control"></textarea>
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var prefix = ctx + "operation/rentCarBattey"
$("#form-rentCarBattey-add").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/add", $('#form-rentCarBattey-add').serialize());
}
}
</script>
</body>
</html>

View File

@ -0,0 +1,50 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('修改租车规则租电规则关联')" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-rentCarBattey-edit" th:object="${zcRentCarRuleBattery}">
<input name="id" th:field="*{id}" type="hidden">
<div class="form-group">
<label class="col-sm-3 control-label is-required"></label>
<div class="col-sm-8">
<input name="carRuleId" th:field="*{carRuleId}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required"></label>
<div class="col-sm-8">
<input name="batteryRuleId" th:field="*{batteryRuleId}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label"></label>
<div class="col-sm-8">
<input name="sortOrder" th:field="*{sortOrder}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">备注:</label>
<div class="col-sm-8">
<textarea name="remark" class="form-control">[[*{remark}]]</textarea>
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var prefix = ctx + "operation/rentCarBattey";
$("#form-rentCarBattey-edit").validate({
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/edit", $('#form-rentCarBattey-edit').serialize());
}
}
</script>
</body>
</html>

View File

@ -0,0 +1,106 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('租车规则租电规则关联列表')" />
</head>
<body class="gray-bg">
<div class="container-div">
<div class="row">
<div class="col-sm-12 search-collapse">
<form id="formId">
<div class="select-list">
<ul>
<li>
<label></label>
<input type="text" name="carRuleId"/>
</li>
<li>
<label></label>
<input type="text" name="batteryRuleId"/>
</li>
<li>
<label></label>
<input type="text" name="sortOrder"/>
</li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
</li>
</ul>
</div>
</form>
</div>
<div class="btn-group-sm" id="toolbar" role="group">
<a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="operation:rentCarBattey:add">
<i class="fa fa-plus"></i> 添加
</a>
<a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="operation:rentCarBattey:edit">
<i class="fa fa-edit"></i> 修改
</a>
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="operation:rentCarBattey:remove">
<i class="fa fa-remove"></i> 删除
</a>
<a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="operation:rentCarBattey:export">
<i class="fa fa-download"></i> 导出
</a>
</div>
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table>
</div>
</div>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var editFlag = [[${@permission.hasPermi('operation:rentCarBattey:edit')}]];
var removeFlag = [[${@permission.hasPermi('operation:rentCarBattey:remove')}]];
var prefix = ctx + "operation/rentCarBattey";
$(function() {
var options = {
url: prefix + "/list",
createUrl: prefix + "/add",
updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove",
exportUrl: prefix + "/export",
modalName: "租车规则租电规则关联",
columns: [{
checkbox: true
},
{
field: 'id',
title: '规则ID',
visible: false
},
{
field: 'carRuleId',
title: ''
},
{
field: 'batteryRuleId',
title: ''
},
{
field: 'sortOrder',
title: ''
},
{
field: 'remark',
title: '备注'
},
{
title: '操作',
align: 'center',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
return actions.join('');
}
}]
};
$.table.init(options);
});
</script>
</body>
</html>

View File

@ -0,0 +1,120 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('新增租车计费规则')" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-rentCarRule-add">
<div class="form-group">
<label class="col-sm-3 control-label is-required">套餐名称:</label>
<div class="col-sm-8">
<input name="ruleName" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">套餐编码:</label>
<div class="col-sm-8">
<input name="ruleCode" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">租赁类型:</label>
<div class="col-sm-8">
<div class="col-sm-10">
<div class="radio-box" th:each="dict : ${@dict.getType('key_rent_type')}">
<input type="radio" th:id="${'rentalType_' + dict.dictCode}" name="rentalType" th:value="${dict.dictValue}" th:checked="${dict.default}" required>
<label th:for="${'rentalType_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">租赁天数:</label>
<div class="col-sm-8">
<input name="rentalDays" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">租车价格(元)</label>
<div class="col-sm-8">
<input id="rentalPrice" name="rentalPrice" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">押金价格(元)</label>
<div class="col-sm-8">
<input id="depositPrice" name="depositPrice" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">逾期金额(元)</label>
<div class="col-sm-8">
<input id="overdueFee" name="overdueFee" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">逾期计费类型:</label>
<div class="col-sm-8">
<div class="radio-box" th:each="dict : ${@dict.getType('key_rent_overdue_type')}">
<input type="radio" th:id="${'overdueType_' + dict.dictCode}" name="overdueType" th:value="${dict.dictValue}" th:checked="${dict.default}" required>
<label th:for="${'overdueType_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">是否支持免押:</label>
<div class="col-sm-8">
<div class="radio-box" th:each="dict : ${@dict.getType('key_rent_deposit_free')}">
<input type="radio" th:id="${'depositFree_' + dict.dictCode}" name="depositFree" th:value="${dict.dictValue}" th:checked="${dict.default}" required>
<label th:for="${'depositFree_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">是否支持代扣:</label>
<div class="col-sm-8">
<div class="radio-box" th:each="dict : ${@dict.getType('key_rent_auto_deduct')}">
<input type="radio" th:id="${'autoDeduct_' + dict.dictCode}" name="autoDeduct" th:value="${dict.dictValue}" th:checked="${dict.default}" required>
<label th:for="${'autoDeduct_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">所属运营商:</label>
<div class="col-sm-8">
<select name="operatingCompanyId" id="operatingCompanyId" class="form-control m-b">
<option value="">请选择所属运营商</option>
<option th:each="company : ${companyList}" th:value="${company.id}" th:text="${company.companyName}"></option>
</select>
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var prefix = ctx + "operation/rentCarRule"
$("#form-rentCarRule-add").validate({
rules:{
rentalPrice:{
number:true
},
depositPrice:{
number:true
},
overdueFee:{
number:true
}
},
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/add", $('#form-rentCarRule-add').serialize());
}
}
</script>
</body>
</html>

View File

@ -0,0 +1,122 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
<head>
<th:block th:include="include :: header('修改租车计费规则')" />
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-rentCarRule-edit" th:object="${zcRentCarRule}">
<input name="id" th:field="*{id}" type="hidden">
<div class="form-group">
<label class="col-sm-3 control-label is-required">套餐名称:</label>
<div class="col-sm-8">
<input name="ruleName" th:field="*{ruleName}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">套餐编码:</label>
<div class="col-sm-8">
<input name="ruleCode" th:field="*{ruleCode}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">租赁类型:</label>
<div class="col-sm-8">
<div class="radio-box" th:each="dict : ${@dict.getType('key_rent_type')}">
<input type="radio" th:id="${'rentalType_' + dict.dictCode}" name="rentalType" th:value="${dict.dictValue}" th:checked="${dict.default}" th:field="*{rentalType}" required>
<label th:for="${'rentalType_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">租赁天数:</label>
<div class="col-sm-8">
<input name="rentalDays" th:field="*{rentalDays}" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">租车价格(元)</label>
<div class="col-sm-8">
<input name="rentalPrice" th:field="*{rentalPrice}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">押金价格(元)</label>
<div class="col-sm-8">
<input name="depositPrice" th:field="*{depositPrice}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">逾期金额(元)</label>
<div class="col-sm-8">
<input name="overdueFee" th:field="*{overdueFee}" class="form-control" type="text" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">逾期计费类型:</label>
<div class="col-sm-8">
<div class="radio-box" th:each="dict : ${@dict.getType('key_rent_overdue_type')}">
<input type="radio" th:id="${'overdueType_' + dict.dictCode}" name="overdueType" th:value="${dict.dictValue}" th:checked="${dict.default}" th:field="*{overdueType}" required>
<label th:for="${'overdueType_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">是否支持免押:</label>
<div class="col-sm-8">
<div class="radio-box" th:each="dict : ${@dict.getType('key_rent_deposit_free')}">
<input type="radio" th:id="${'depositFree_' + dict.dictCode}" name="depositFree" th:value="${dict.dictValue}" th:checked="${dict.default}" th:field="*{depositFree}" required>
<label th:for="${'depositFree_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">是否支持代扣:</label>
<div class="col-sm-8">
<div class="radio-box" th:each="dict : ${@dict.getType('key_rent_auto_deduct')}">
<input type="radio" th:id="${'autoDeduct_' + dict.dictCode}" name="autoDeduct" th:value="${dict.dictValue}" th:checked="${dict.default}" th:field="*{autoDeduct}" required>
<label th:for="${'autoDeduct_' + dict.dictCode}" th:text="${dict.dictLabel}"></label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">所属运营商:</label>
<div class="col-sm-8">
<select name="operatingCompanyId" id="operatingCompanyId" class="form-control m-b">
<option value="">请选择所属运营商</option>
<option th:each="company : ${companyList}" th:value="${company.id}" th:text="${company.companyName}" th:field="*{operatingCompanyId}" ></option>
</select>
</div>
</div>
</form>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var prefix = ctx + "operation/rentCarRule";
$("#form-rentCarRule-edit").validate({
rules:{
rentalPrice:{
number:true
},
depositPrice:{
number:true
},
overdueFee:{
number:true
}
},
focusCleanup: true
});
function submitHandler() {
if ($.validate.form()) {
$.operate.save(prefix + "/edit", $('#form-rentCarRule-edit').serialize());
}
}
</script>
</body>
</html>

View File

@ -0,0 +1,192 @@
<!DOCTYPE html>
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<head>
<th:block th:include="include :: header('租车计费规则列表')" />
</head>
<body class="gray-bg">
<div class="container-div">
<div class="row">
<div class="col-sm-12 search-collapse">
<form id="formId">
<div class="select-list">
<ul>
<li>
<label>运营商:</label>
<select name="operatingCompanyId" id="operatingCompanyId" >
<option value="">请选择所属运营商</option>
<option th:each="company : ${companyList}" th:value="${company.id}" th:text="${company.companyName}"></option>
</select>
</li>
<li>
<label>套餐名称:</label>
<input type="text" name="ruleName"/>
</li>
<li>
<label>套餐编码:</label>
<input type="text" name="ruleCode"/>
</li>
<li>
<label>租赁类型:</label>
<select name="rentalType" th:with="type=${@dict.getType('key_rent_type')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
<label>逾期计费类型:</label>
<select name="overdueType" th:with="type=${@dict.getType('key_rent_overdue_type')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
<label>是否支持免押:</label>
<select name="depositFree" th:with="type=${@dict.getType('key_rent_deposit_free')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
<label>是否支持代扣:</label>
<select name="autoDeduct" th:with="type=${@dict.getType('key_rent_auto_deduct')}">
<option value="">所有</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
</select>
</li>
<li>
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
</li>
</ul>
</div>
</form>
</div>
<div class="btn-group-sm" id="toolbar" role="group">
<a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="operation:rentCarRule:add">
<i class="fa fa-plus"></i> 添加
</a>
<a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="operation:rentCarRule:edit">
<i class="fa fa-edit"></i> 修改
</a>
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="operation:rentCarRule:remove">
<i class="fa fa-remove"></i> 删除
</a>
<!-- <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="operation:rentCarRule:export">-->
<!-- <i class="fa fa-download"></i> 导出-->
<!-- </a>-->
</div>
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table>
</div>
</div>
</div>
<th:block th:include="include :: footer" />
<script th:inline="javascript">
var editFlag = [[${@permission.hasPermi('operation:rentCarRule:edit')}]];
var removeFlag = [[${@permission.hasPermi('operation:rentCarRule:remove')}]];
var rentalTypeDatas = [[${@dict.getType('key_rent_type')}]];
var overdueTypeDatas = [[${@dict.getType('key_rent_overdue_type')}]];
var depositFreeDatas = [[${@dict.getType('key_rent_deposit_free')}]];
var autoDeductDatas = [[${@dict.getType('key_rent_auto_deduct')}]];
var prefix = ctx + "operation/rentCarRule";
$(function() {
var options = {
url: prefix + "/list",
createUrl: prefix + "/add",
updateUrl: prefix + "/edit/{id}",
removeUrl: prefix + "/remove",
exportUrl: prefix + "/export",
modalName: "租车套餐",
columns: [{
checkbox: true
},
{
field: 'id',
title: '规则ID',
visible: false
},
{
field: 'ruleName',
title: '套餐名称'
},
{
field: 'ruleCode',
title: '套餐编码'
},
{
field: 'rentalType',
title: '租赁类型',
formatter: function(value, row, index) {
return $.table.selectDictLabel(rentalTypeDatas, value);
}
},
{
field: 'rentalDays',
title: '租赁天数'
},
{
field: 'rentalPrice',
title: '租车价格(元)'
},
{
field: 'depositPrice',
title: '押金价格(元)'
},
{
field: 'overdueFee',
title: '逾期金额(元)'
},
{
field: 'overdueType',
title: '逾期计费类型',
formatter: function(value, row, index) {
return $.table.selectDictLabel(overdueTypeDatas, value);
}
},
{
field: 'depositFree',
title: '是否支持免押',
formatter: function(value, row, index) {
return $.table.selectDictLabel(depositFreeDatas, value);
}
},
{
field: 'autoDeduct',
title: '是否支持代扣',
formatter: function(value, row, index) {
return $.table.selectDictLabel(autoDeductDatas, value);
}
},
{
field: 'operatingCompanyId',
title: '关联电池套餐'
},
{
field: 'status',
title: '状态'
},
{
field: 'operatingCompanyName',
title: '所属运营商'
},
{
title: '操作',
align: 'center',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + editFlag + ' btnOption" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + ' btnOption" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
return actions.join('');
}
}]
};
$.table.init(options);
});
</script>
</body>
</html>

View File

@ -45,7 +45,7 @@
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">所属运营公司</label>
<label class="col-sm-3 control-label is-required">所属运营</label>
<div class="col-sm-8">
<select name="operatingCompanyId" id="operatingCompanyId" class="form-control m-b">
<option value="">请选择所属运营商</option>

View File

@ -46,7 +46,7 @@
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label is-required">所属运营公司</label>
<label class="col-sm-3 control-label is-required">所属运营</label>
<div class="col-sm-8">
<select name="operatingCompanyId" id="operatingCompanyId" class="form-control m-b">
<option value="">请选择所属运营商</option>