liuxiaoxu
5 months ago
10 changed files with 620 additions and 1 deletions
@ -0,0 +1,211 @@ |
|||||
|
package com.ruoyi.aftersales.domain.vo; |
||||
|
|
||||
|
import com.ruoyi.common.annotation.Excel; |
||||
|
import com.ruoyi.common.core.domain.BaseEntity; |
||||
|
import org.apache.commons.lang.builder.ToStringBuilder; |
||||
|
import org.apache.commons.lang.builder.ToStringStyle; |
||||
|
|
||||
|
/** |
||||
|
* 选择设备Vo类 |
||||
|
* */ |
||||
|
public class SelectDeviceVO extends BaseEntity { |
||||
|
|
||||
|
private static final long serialVersionUID = 1L; |
||||
|
|
||||
|
/** 售后数量 */ |
||||
|
private String deliveryGoodsNum; |
||||
|
|
||||
|
/** 紧急程度 */ |
||||
|
private String emergencyDegree; |
||||
|
|
||||
|
/** 售后问题 */ |
||||
|
|
||||
|
private String complaintProblem; |
||||
|
|
||||
|
/** 是否结案 */ |
||||
|
private String closingProcedures; |
||||
|
|
||||
|
/** 售后报告 */ |
||||
|
private String adverseReportUrl; |
||||
|
|
||||
|
/** SN号(产品序列号) */ |
||||
|
private String snCode; |
||||
|
|
||||
|
/** 料号 */ |
||||
|
@Excel(name = "料号") |
||||
|
private String materialNo; |
||||
|
|
||||
|
/** 物料名称 */ |
||||
|
@Excel(name = "物料名称") |
||||
|
private String materialName; |
||||
|
|
||||
|
/** 物料类型 */ |
||||
|
@Excel(name = "物料类型") |
||||
|
private String materialType; |
||||
|
|
||||
|
/** 物料图片地址 */ |
||||
|
@Excel(name = "物料图片地址") |
||||
|
private String materialPhotourl; |
||||
|
|
||||
|
/** 物料品牌 */ |
||||
|
@Excel(name = "物料品牌") |
||||
|
private String materialBrand; |
||||
|
|
||||
|
/** 物料单位 */ |
||||
|
@Excel(name = "物料单位") |
||||
|
private String materialUnit; |
||||
|
|
||||
|
/** 物料描述 */ |
||||
|
@Excel(name = "物料描述") |
||||
|
private String materialDescribe; |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
public void setDeliveryGoodsNum(String deliveryGoodsNum) |
||||
|
{ |
||||
|
this.deliveryGoodsNum = deliveryGoodsNum; |
||||
|
} |
||||
|
|
||||
|
public String getDeliveryGoodsNum() |
||||
|
{ |
||||
|
return deliveryGoodsNum; |
||||
|
} |
||||
|
public void setEmergencyDegree(String emergencyDegree) |
||||
|
{ |
||||
|
this.emergencyDegree = emergencyDegree; |
||||
|
} |
||||
|
|
||||
|
public String getEmergencyDegree() |
||||
|
{ |
||||
|
return emergencyDegree; |
||||
|
} |
||||
|
public void setComplaintProblem(String complaintProblem) |
||||
|
{ |
||||
|
this.complaintProblem = complaintProblem; |
||||
|
} |
||||
|
|
||||
|
public String getComplaintProblem() |
||||
|
{ |
||||
|
return complaintProblem; |
||||
|
} |
||||
|
public void setClosingProcedures(String closingProcedures) |
||||
|
{ |
||||
|
this.closingProcedures = closingProcedures; |
||||
|
} |
||||
|
|
||||
|
public String getClosingProcedures() |
||||
|
{ |
||||
|
return closingProcedures; |
||||
|
} |
||||
|
public void setAdverseReportUrl(String adverseReportUrl) |
||||
|
{ |
||||
|
this.adverseReportUrl = adverseReportUrl; |
||||
|
} |
||||
|
|
||||
|
public String getAdverseReportUrl() |
||||
|
{ |
||||
|
return adverseReportUrl; |
||||
|
} |
||||
|
|
||||
|
public void setSnCode(String snCode) |
||||
|
{ |
||||
|
this.snCode = snCode; |
||||
|
} |
||||
|
|
||||
|
public String getSnCode() |
||||
|
{ |
||||
|
return snCode; |
||||
|
} |
||||
|
|
||||
|
public void setMaterialNo(String materialNo) |
||||
|
{ |
||||
|
this.materialNo = materialNo; |
||||
|
} |
||||
|
|
||||
|
public String getMaterialNo() |
||||
|
{ |
||||
|
return materialNo; |
||||
|
} |
||||
|
public void setMaterialName(String materialName) |
||||
|
{ |
||||
|
this.materialName = materialName; |
||||
|
} |
||||
|
|
||||
|
public String getMaterialName() |
||||
|
{ |
||||
|
return materialName; |
||||
|
} |
||||
|
public void setMaterialType(String materialType) |
||||
|
{ |
||||
|
this.materialType = materialType; |
||||
|
} |
||||
|
|
||||
|
public String getMaterialType() |
||||
|
{ |
||||
|
return materialType; |
||||
|
} |
||||
|
public void setMaterialPhotourl(String materialPhotourl) |
||||
|
{ |
||||
|
this.materialPhotourl = materialPhotourl; |
||||
|
} |
||||
|
|
||||
|
public String getMaterialPhotourl() |
||||
|
{ |
||||
|
return materialPhotourl; |
||||
|
} |
||||
|
public void setMaterialBrand(String materialBrand) |
||||
|
{ |
||||
|
this.materialBrand = materialBrand; |
||||
|
} |
||||
|
|
||||
|
public String getMaterialBrand() |
||||
|
{ |
||||
|
return materialBrand; |
||||
|
} |
||||
|
public void setMaterialUnit(String materialUnit) |
||||
|
{ |
||||
|
this.materialUnit = materialUnit; |
||||
|
} |
||||
|
|
||||
|
public String getMaterialUnit() |
||||
|
{ |
||||
|
return materialUnit; |
||||
|
} |
||||
|
public void setMaterialDescribe(String materialDescribe) |
||||
|
{ |
||||
|
this.materialDescribe = materialDescribe; |
||||
|
} |
||||
|
|
||||
|
public String getMaterialDescribe() |
||||
|
{ |
||||
|
return materialDescribe; |
||||
|
} |
||||
|
|
||||
|
|
||||
|
@Override |
||||
|
public String toString() { |
||||
|
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) |
||||
|
.append("deliveryGoodsNum", getDeliveryGoodsNum()) |
||||
|
.append("emergencyDegree", getEmergencyDegree()) |
||||
|
.append("complaintProblem", getComplaintProblem()) |
||||
|
.append("closingProcedures", getClosingProcedures()) |
||||
|
.append("adverseReportUrl", getAdverseReportUrl()) |
||||
|
.append("snCode", getSnCode()) |
||||
|
.append("materialNo", getMaterialNo()) |
||||
|
.append("materialName", getMaterialName()) |
||||
|
.append("materialType", getMaterialType()) |
||||
|
.append("materialPhotourl", getMaterialPhotourl()) |
||||
|
.append("materialBrand", getMaterialBrand()) |
||||
|
.append("materialUnit", getMaterialUnit()) |
||||
|
.append("materialDescribe", getMaterialDescribe()) |
||||
|
.append("createBy", getCreateBy()) |
||||
|
.append("createTime", getCreateTime()) |
||||
|
.append("updateBy", getUpdateBy()) |
||||
|
.append("updateTime", getUpdateTime()) |
||||
|
.append("remark", getRemark()) |
||||
|
.toString(); |
||||
|
} |
||||
|
} |
@ -0,0 +1,252 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="zh" xmlns:th="http://www.thymeleaf.org" > |
||||
|
<head> |
||||
|
<th:block th:include="include :: header('修改售后单')" /> |
||||
|
<th:block th:include="include :: datetimepicker-css" /> |
||||
|
<th:block th:include="include :: summernote-css" /> |
||||
|
<style> |
||||
|
.device-container { |
||||
|
margin-top: 1rem; /* 调整此值以达到所需的间距效果 */ |
||||
|
} |
||||
|
</style> |
||||
|
</head> |
||||
|
<body class="white-bg"> |
||||
|
<div class="wrapper wrapper-content animated fadeInRight ibox-content"> |
||||
|
<form class="form-horizontal m" id="form-aftersalesOrder-edit" th:object="${sendOrders}"> |
||||
|
<input name="aftersalesOrderId" th:field="*{aftersalesOrderId}" type="hidden"> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-4 control-label">销售单号:</label> |
||||
|
<div class="col-sm-8"> |
||||
|
<input name="salesOrderCode" th:field="*{salesOrderCode}" class="form-control" type="text"> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-4 control-label">生产单号:</label> |
||||
|
<div class="col-sm-8"> |
||||
|
<input name="makeNo" th:field="*{makeNo}" class="form-control" type="text"> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-4 control-label">客户ID:</label> |
||||
|
<div class="col-sm-8"> |
||||
|
<input name="customerId" th:field="*{customerId}" class="form-control" type="text"> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-4 control-label">客户名称:</label> |
||||
|
<div class="col-sm-8"> |
||||
|
<input name="customerName" th:field="*{customerName}" class="form-control" type="text"> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-4 control-label">公司地址:</label> |
||||
|
<div class="col-sm-8"> |
||||
|
<input name="companyAddress" th:field="*{companyAddress}" class="form-control" type="text"> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-4 control-label">收货联系人:</label> |
||||
|
<div class="col-sm-8"> |
||||
|
<input name="deliveryName" th:field="*{deliveryName}" class="form-control" type="text"> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-4 control-label">收货电话:</label> |
||||
|
<div class="col-sm-8"> |
||||
|
<input name="deliveryNumber" th:field="*{deliveryNumber}" class="form-control" type="text"> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-4 control-label">客户要求出发日期:</label> |
||||
|
<div class="col-sm-8"> |
||||
|
<div class="input-group date"> |
||||
|
<input name="startDate" class="form-control" th:value="*{startDate}" placeholder="yyyy-mm-dd" type="text"> |
||||
|
<span class="input-group-addon"><i class="fa fa-calendar"></i></span> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<label class="col-sm-4 control-label">备注:</label> |
||||
|
<div class="col-sm-8"> |
||||
|
<input name="remark" th:field="*{remark}" class="form-control" type="text"> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
<div class="form-row"> |
||||
|
<div class="col-sm-12 select-table table-striped"> |
||||
|
<h3 class="mb-4">选择设备</h3> |
||||
|
<table id="bootstrap-table"></table> |
||||
|
</div> |
||||
|
</div> |
||||
|
<div class="form-group"> |
||||
|
<h3 class="mb-4">派单</h3> |
||||
|
<label class="col-sm-3 control-label">售后员:</label> |
||||
|
<div class="col-sm-9"> |
||||
|
<select id="userId_add" name="aftersalesName" th:field="*{aftersalesName}" class="form-control m-b"> |
||||
|
<option th:each="user : ${userData}" th:value="${user.userName}" th:text="${user.userName}"></option> |
||||
|
</select> |
||||
|
</div> |
||||
|
</div> |
||||
|
|
||||
|
</form> |
||||
|
|
||||
|
</div> |
||||
|
<th:block th:include="include :: footer" /> |
||||
|
<th:block th:include="include :: datetimepicker-js" /> |
||||
|
<th:block th:include="include :: summernote-js" /> |
||||
|
<script th:inline="javascript"> |
||||
|
var prefix = ctx + "aftersales/aftersalesOrder"; |
||||
|
var sendOrders = [[${sendOrders}]]; |
||||
|
$("#form-aftersalesOrder-edit").validate({ |
||||
|
focusCleanup: true |
||||
|
}); |
||||
|
|
||||
|
function submitHandler() { |
||||
|
if ($.validate.form()) { |
||||
|
$.operate.save(prefix + "/edit", $('#form-aftersalesOrder-edit').serialize()); |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
$("input[name='startDate']").datetimepicker({ |
||||
|
format: "yyyy-mm-dd", |
||||
|
minView: "month", |
||||
|
autoclose: true |
||||
|
}); |
||||
|
|
||||
|
$(function() { |
||||
|
$('.summernote').each(function(i) { |
||||
|
$('#' + this.id).summernote({ |
||||
|
lang: 'zh-CN', |
||||
|
callbacks: { |
||||
|
onChange: function(contents, $edittable) { |
||||
|
$("input[name='" + this.id + "']").val(contents); |
||||
|
}, |
||||
|
onImageUpload: function(files) { |
||||
|
var obj = this; |
||||
|
var data = new FormData(); |
||||
|
data.append("file", files[0]); |
||||
|
$.ajax({ |
||||
|
type: "post", |
||||
|
url: ctx + "common/upload", |
||||
|
data: data, |
||||
|
cache: false, |
||||
|
contentType: false, |
||||
|
processData: false, |
||||
|
dataType: 'json', |
||||
|
success: function(result) { |
||||
|
if (result.code == web_status.SUCCESS) { |
||||
|
$('#' + obj.id).summernote('insertImage', result.url); |
||||
|
} else { |
||||
|
$.modal.alertError(result.msg); |
||||
|
} |
||||
|
}, |
||||
|
error: function(error) { |
||||
|
$.modal.alertWarning("图片上传失败。"); |
||||
|
} |
||||
|
}); |
||||
|
} |
||||
|
} |
||||
|
}); |
||||
|
var content = $("input[name='" + this.id + "']").val(); |
||||
|
$('#' + this.id).summernote('code', content); |
||||
|
}) |
||||
|
}); |
||||
|
$(function() { |
||||
|
var options = { |
||||
|
url: prefix + "/optionDevices", |
||||
|
modalName: "出货设备", |
||||
|
showColumns: false, |
||||
|
pagination: false, |
||||
|
showToggle: false, |
||||
|
showRefresh:false, |
||||
|
showSearch:false, |
||||
|
queryParams:queryParams, |
||||
|
columns: [{ |
||||
|
checkbox: true |
||||
|
}, |
||||
|
{ |
||||
|
title: '出货设备编号', |
||||
|
field: 'shippingDeviceCode', |
||||
|
visible: false |
||||
|
}, |
||||
|
{ |
||||
|
title: '料号', |
||||
|
field: 'materialNo', |
||||
|
}, |
||||
|
{ |
||||
|
title: '图片', |
||||
|
field: 'materialPhotourl', |
||||
|
}, |
||||
|
{ |
||||
|
title: '物料名称', |
||||
|
field: 'materialName', |
||||
|
}, |
||||
|
{ |
||||
|
title: '物料类型', |
||||
|
field: 'materialType', |
||||
|
}, |
||||
|
{ |
||||
|
title: '单位', |
||||
|
field: 'materialUnit', |
||||
|
}, |
||||
|
{ |
||||
|
title: '品牌', |
||||
|
field: 'materialBrand', |
||||
|
}, |
||||
|
{ |
||||
|
title: '描述', |
||||
|
field: 'materialDescribe', |
||||
|
}, |
||||
|
{ |
||||
|
title: '流水号', |
||||
|
field: 'deviceRunningNumber', |
||||
|
}, |
||||
|
{ |
||||
|
title: '生产图片', |
||||
|
field: 'makePhotourl', |
||||
|
}, |
||||
|
{ |
||||
|
title: 'SN号', |
||||
|
field: 'snCode', |
||||
|
}, |
||||
|
{ |
||||
|
title: '售后图片', |
||||
|
field: 'aftersalesPhotourl', |
||||
|
}, |
||||
|
] |
||||
|
}; |
||||
|
$.table.init(options); |
||||
|
}) |
||||
|
function queryParams(params) { |
||||
|
var curParams = { |
||||
|
// 传递参数查询参数 |
||||
|
makeNo: sendOrders.makeNo |
||||
|
}; |
||||
|
return curParams; |
||||
|
} |
||||
|
|
||||
|
$(function () { |
||||
|
$.ajax({ |
||||
|
url: ctx + 'aftersales/aftersalesOrder/getAftersalesStaffList', |
||||
|
type: 'post', |
||||
|
data: { roleKey: 'shgcsRole' }, |
||||
|
success: function (res) { |
||||
|
if (res.data.length > 0) { |
||||
|
var userData = res.data; |
||||
|
for (let i in userData) { |
||||
|
$("#userId_add").append( |
||||
|
"<option value='" + userData[i].userName + "'>" + userData[i].userName + "</option>" // 使用 userName 作为 option 的 value |
||||
|
); |
||||
|
} |
||||
|
|
||||
|
// 初始化时触发 change 事件,以确保首次加载时也能正确赋值 |
||||
|
$("#userId_add").trigger("change"); |
||||
|
} else { |
||||
|
$.modal.msgError(res.msg); |
||||
|
} |
||||
|
} |
||||
|
}); |
||||
|
}) |
||||
|
</script> |
||||
|
</body> |
||||
|
</html> |
Loading…
Reference in new issue