派单页面

This commit is contained in:
donqi 2023-06-17 01:28:14 +08:00
parent d1634edfcb
commit 638c3bd518
3 changed files with 293 additions and 22 deletions

View File

@ -302,9 +302,9 @@
shiro:hasPermission="order:order:export">
<i class="fa fa-download"></i> 导出
</a>
<a class="btn btn-default" onclick="$.table.exportExcel()">
<i class="fa fa-download"></i> 指派
</a>
<!-- <a class="btn btn-default" onclick="$.table.exportExcel()">-->
<!-- <i class="fa fa-download"></i> 指派-->
<!-- </a>-->
</div>
</div>
@ -606,7 +606,7 @@
actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="detail(\'' + row.id + '\')"><i class="fa fa-info"></i>查看</a> ');
actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="orderDetailReject(\'' + row.id + '\')"></i>师傅退单</a> ');
actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="orderMasterReject(\'' + row.orderMasterId + '\')"></i>商家退单</a> ');
actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="showOrderWorker(\'' + row.id + '\')"></i>指派</a> ');
<!-- actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="showOrderWorker(\'' + row.id + '\')"></i>指派</a> ');-->
if (row.payStatus == 0) {
actions.push('<a class="btn btn-success btn-xs " href="javascript:void(0)" onclick="showPayQrcode(\'' + row.id + '\')"></i>付款</a> ');
}

View File

@ -360,7 +360,7 @@
function showOrderWorker(id) {
var url = "order/master/orderWorker/" + id;
$.modal.open("指派师傅", url, '800', '300');
$.modal.open("指派师傅", url, '800', '500');
}
function selectRegion(regionLevelName, nextRegionLevelName) {

View File

@ -3,30 +3,301 @@
<head>
<th:block th:include="include :: header('指派师傅')"/>
<th:block th:include="include :: layout-latest-css"/>
<style>
.custom-container {
padding: 0 30px 20px 30px;
}
.flex-board {
display: flex;
flex-wrap: wrap;
justify-content: flex-start;
align-items: center;
}
.flex-board-no-wrap {
display: flex;
justify-content: flex-start;
align-items: center;
}
.flex-board.select-content {
flex-basis: 100%
}
.flex-board.select-content .flex-board-no-wrap {
flex-basis: 90%
}
.flex-board.input-content {
flex-basis: 50%;
}
.flex-board.input-content input {
flex-basis: 75%
}
.specCanAssignNum {
text-align: center;
line-height: 31px;
}
</style>
</head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-change-provider">
<input name="id" type="hidden" th:value="${orderId}"/>
<div class="form-group">
<label class="col-sm-3 control-label">选择师傅:</label>
<div class="col-sm-8">
<select id="id" name="workerId" class="form-control control-label" required>
<option th:each="worker:${workers}" th:value="${worker.workerId}" th:text="${worker.name}"></option>
</select>
<body class="gray-bg">
<div class="animated fadeInRight row custom-container">
<div class="col-sm-12 search-collapse">
<form class="m" id="canAssignSpecForm">
<div id="canAssignSpecList" class="m-b">
</div>
<div class="row">
<div class="col-sm-4">
<span>可派单金额:</span>
<span id="moneyCanAssign"></span>
<span></span>
</div>
<div class="col-sm-5">
<div class="flex-board input-content">
<label class="form-control-label">派出金额:</label>
<input name="totalPay" type="number" class="form-control">
</div>
</div>
</div>
</form>
</div>
<div class="col-sm-12 search-collapse">
<form class="flex-board m" id="workerForm">
<div class="flex-board select-content m-t">
<label class="form-control-label">区域筛选:</label>
<div id="areaCxSelect" class="flex-board-no-wrap">
<select class="province form-control cx-select-input m-r" name="province" id="province" data-first-title="选择省" onchange="selectRegion('province', 'city')"></select>
<select class="city form-control cx-select-input m-r" name="city" id="city" data-first-title="选择市" onchange="selectRegion('city', 'district')"></select>
<select class="district form-control cx-select-input m-r" name="areaId" id="district" data-first-title="选择区" onchange="selectRegion('district', 'street')"></select>
<select class="street form-control cx-select-input m-r" name="streetId" id="streetId" data-first-title="选择街道" ></select>
</div>
</div>
<div class="flex-board select-content m-t">
<label class="form-control-label">类别筛选:</label>
<div id="categoryCxSelect" class="flex-board-no-wrap">
<select class="category1 form-control cx-select-input m-r" name="category1" id="category1" data-first-title="选择一类"></select>
<select class="category2 form-control cx-select-input m-r" name="category2" id="category2" data-first-title="选择二类"></select>
<select class="category3 form-control cx-select-input m-r" name="goodsCategoryId" id="category3" data-first-title="选择三类"></select>
<select class="category4 form-control cx-select-input m-r" name="category4" id="category4" data-first-title="选择四类" ></select>
</div>
</div>
<div class="flex-board input-content m-t">
<label class="form-control-label">人员名称:</label>
<input name="workerName" type="text" class="form-control normal-input m-r">
</div>
<div class="m-t">
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search('workerForm')"><i
class="fa fa-search"></i>&nbsp;搜索</a>
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset('workerForm')"><i
class="fa fa-refresh"></i>&nbsp;重置</a>
</div>
</form>
</div>
<div class="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table>
</div>
</div>
<th:block th:include="include :: footer"/>
<th:block th:include="include :: jquery-cxselect-js" />
<script type="text/javascript">
function submitHandler() {
if ($.validate.form()) {
$.modal.loading("指派正在调试中......");
// $.operate.save(ctx + "system/apply/changeGuide", $('#form-change-provider').serialize());
var orderMasterId = '[[${orderId}]]';
var prefix = ctx + "worker"
$(function () {
loadCanAssignSpecInfo();
initForm();
initTable();
});
function loadCanAssignSpecInfo() {
$.ajax({
type: "POST",
dataType:"json",
url: ctx + "order/can/assign",
data: JSON.stringify({orderMasterId: orderMasterId}),
contentType: 'application/json',
success: function (result) {
if (result.code == web_status.SUCCESS) {
$('#canAssignSpecList').html('');
$.each(result.data, function(index, spec) {
$('#canAssignSpecList').append(
'<div class="row m-b">' +
' <div class="col-sm-6">' +
' <input disabled class="form-control" value="' + spec.goodsName +'">' +
' </div>' +
' <div class="col-sm-2 specCanAssignNum">' +
spec.goodsNum +
' </div>' +
' <div class="col-sm-2">' +
' <input type="number" name="spec-' + spec.goodsStandardId + '" class="form-control" required>' +
' </div>' +
'</div>'
)
});
} else {
$.modal.msgError("数据加载错误,请重试!")
}
}
})
$.ajax({
type: "POST",
dataType:"json",
url: ctx + "order/master/app/detail",
data: JSON.stringify({id: orderMasterId}),
contentType: 'application/json',
success: function (result) {
if (result.code == web_status.SUCCESS) {
$('#moneyCanAssign').html(result.data.serverMoney);
} else {
$.modal.msgError("数据加载错误,请重试!")
}
}
})
}
function initForm() {
$.ajax({
type: "POST",
dataType:"json",
url: ctx + "system/area/list",
success: function (result) {
if (result.code == web_status.SUCCESS) {
$('#areaCxSelect').cxSelect({
selects: ['province', 'city', 'district', 'street'],
jsonValue: 'areaId',
jsonName: 'areaName',
data: result.data
});
} else {
$.modal.msgError("数据加载错误,请重试!")
}
}
})
$.ajax({
type: "POST",
dataType:"json",
url: ctx + "goods/deptcategory/app/list",
data: JSON.stringify({deptId: 101, goodsCategoryId: 1}),
contentType: 'application/json',
success: function (result) {
if (result.code == web_status.SUCCESS) {
$('#categoryCxSelect').cxSelect({
selects: ['category1', 'category2', 'category3', 'category4'],
jsonValue: 'goodsCategoryId',
jsonName: 'goodsCategoryName',
jsonSub: 'child',
data: result.data
});
} else {
$.modal.msgError("数据加载错误,请重试!")
}
}
})
}
function initTable() {
var options = {
url: prefix + "/list",
modalName: "师傅派单列表",
firstLoad: false,
columns: [
{
checkbox: true
}, {
field: 'name',
title: '人员名称',
align: "left"
}, {
field: 'phone',
title: '手机号',
align: "left"
}, {
title: '操作',
align: 'left',
formatter: function (value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs" href="javascript:void(0)" onclick="assign(' + row.workerId + ')">指派</a> ');
return actions.join('');
}
}
]
};
$.table.init(options);
$.table.search('workerForm');
}
function selectRegion(regionLevelName, nextRegionLevelName) {
var regionId = $("#" + regionLevelName).val();
if ($.common.isEmpty(regionId)) {
return;
}
//Ajax调用处理
$.ajax({
type: "POST",
dataType:"json",
url: ctx + "system/area/list",
data: {parentCode: regionId},
success: function (result) {
if (result.code == web_status.SUCCESS) {
$('#areaCxSelect').cxSelect({
selects: [nextRegionLevelName],
jsonValue: 'areaId',
jsonName: 'areaName',
data: result.data
});
} else {
$.modal.msgError("数据加载错误,请重试!")
}
}
})
}
function assign(workerId) {
var formData = $("#canAssignSpecForm").serializeArray();
var params = {
goodsList: [],
workerId: workerId,
orderMasterId: orderMasterId
};
formData.forEach(function (item){
if (item.name.startsWith('spec-') && Number(item.value) > 0) {
var itemArr = item.name.split("spec-");
params.goodsList.push({
goodsStandardId: itemArr[1],
num: item.value
})
} else if (item.name === 'totalPay') {
params.totalPay = item.value;
}
});
$.ajax({
type: "POST",
dataType:"json",
url: ctx + "order/assign",
data: JSON.stringify(params),
contentType: 'application/json',
success: function (result) {
if (result.code == web_status.SUCCESS) {
$.modal.msgSuccess("指派成功")
loadCanAssignSpecInfo();
} else {
$.modal.msgError("指派失败")
}
}
})
}
</script>
</body>