订单新建完成

master
wangjiuyun 2025-06-06 19:59:13 +08:00
parent faad898297
commit 36862b93ec
5 changed files with 1023 additions and 218 deletions

View File

@ -334,6 +334,8 @@
function submitHandler() { function submitHandler() {
if ($.validate.form()) { if ($.validate.form()) {
$.operate.save(prefix + "/add", $('#form-product-add').serialize()); $.operate.save(prefix + "/add", $('#form-product-add').serialize());
}else{
$.modal.alertWarning("请完善表单");
} }
} }

View File

@ -371,6 +371,8 @@
function submitHandler() { function submitHandler() {
if ($.validate.form()) { if ($.validate.form()) {
$.operate.save(prefix + "/edit", $('#form-product-add').serialize()); $.operate.save(prefix + "/edit", $('#form-product-add').serialize());
}else{
$.modal.alertWarning("请完善表单");
} }
} }

View File

@ -34,6 +34,10 @@
.highlightRow { .highlightRow {
color: red; color: red;
} }
.disableBtnfalse {
color: #ccc;
}
</style> </style>
<body class="gray-bg"> <body class="gray-bg">
<div class="container-div"> <div class="container-div">
@ -57,7 +61,7 @@
<li> <li>
<label>项目阶段:</label> <label>项目阶段:</label>
<select name="projectStage" class="form-control" <select name="projectStage" class="form-control"
th:with="type=${@dict.getType('project_stage')}" required> th:with="type=${@dict.getType('project_stage')}">
<option value="">请选择合项目阶段</option> <option value="">请选择合项目阶段</option>
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
th:value="${dict.dictValue}"></option> th:value="${dict.dictValue}"></option>
@ -74,7 +78,7 @@
</li> </li>
<li> <li>
<label>行业:</label> <label>行业:</label>
<div id="industryTypeBox" style="float: right"> <div id="industryTypeBox" style="float: right">
<select name="industryType" class="form-control" required> <select name="industryType" class="form-control" required>
<option value="">请先选择BG</option> <option value="">请先选择BG</option>
</select> </select>
@ -186,7 +190,7 @@
formatter: (value, row, index) => { formatter: (value, row, index) => {
if (row.highlight) { if (row.highlight) {
return `<span class="highlight">${value}</span>` return `<span class="highlight">${value}</span>`
}else{ } else {
return `<span>${value}</span>` return `<span>${value}</span>`
} }
} }
@ -210,9 +214,9 @@
field: 'industryType', field: 'industryType',
title: '行业', title: '行业',
formatter: function (value, row, index) { formatter: function (value, row, index) {
if(row.bgProperty=='YYS'){ if (row.bgProperty == 'YYS') {
return $.table.selectDictLabel([[${@dict.getType('bg_yys')}]], value); return $.table.selectDictLabel([[${@dict.getType('bg_yys')}]], value);
}else{ } else {
return $.table.selectDictLabel([[${@dict.getType('bg_hsys')}]], value); return $.table.selectDictLabel([[${@dict.getType('bg_hsys')}]], value);
} }
@ -225,7 +229,7 @@
{ {
field: 'projectGraspDegree', field: 'projectGraspDegree',
title: '项目把握度', title: '项目把握度',
width:30 width: 30
}, },
{ {
field: 'projectStage', field: 'projectStage',
@ -266,7 +270,7 @@
formatter: function (value, row, index) { formatter: function (value, row, index) {
var actions = []; var actions = [];
actions.push('<a class="btn btn-success btn-xs mb5' + editFlag + '" href="javascript:void(0)" onclick="$.operate.editFull(\'' + row.id + '\')"><i class="fa fa-edit"></i>项目详情</a> '); actions.push('<a class="btn btn-success btn-xs mb5' + editFlag + '" href="javascript:void(0)" onclick="$.operate.editFull(\'' + row.id + '\')"><i class="fa fa-edit"></i>项目详情</a> ');
actions.push('<a class="btn btn-success btn-xs mb5' + editFlag + '" href="javascript:void(0)" onclick=`openOrder(${row})`><i class="fa fa-refresh"></i>生成订单</a> '); actions.push('<a class="btn btn-success btn-xs mb5' + editFlag + '" href="javascript:void(0)" onclick="openOrder(' + row.id + ',' + row.canGenerate + ')" name="disableBtn' + row.canGenerate + '"><i class="fa fa-refresh"></i>生成订单</a> ');
actions.push('<a class="btn btn-danger btn-xs mb5' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>'); actions.push('<a class="btn btn-danger btn-xs mb5' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
return actions.join(''); return actions.join('');
} }
@ -368,6 +372,7 @@
$('#laydate-endTime').attr('name', 'updateTimeEnd') $('#laydate-endTime').attr('name', 'updateTimeEnd')
} }
} }
function changeBg() { function changeBg() {
if ($('[name="bgProperty"]').val() != 'YYS') { if ($('[name="bgProperty"]').val() != 'YYS') {
let datas = [[${@dict.getType('bg_hysy')}]] let datas = [[${@dict.getType('bg_hysy')}]]
@ -397,6 +402,31 @@
} }
function openOrder(id, canAdd) {
if (!canAdd) {
$.modal.alertWarning("该项目已存在订单");
return
}
var options = {
title: "新建订单",
url: ctx + `project/order/add`,
maxmin: false,
full: true,
index: 1000,
width: 1050,
yes: function (index, layero) {
let body = parent.layer.getChildFrame('body', index)
if ($(body.find('#form-product-add').get(0)).validate().form()) {
$.operate.save(prefix + "/add", body.find('#form-product-add').serialize(), function () {
parent.layer.close(index)
});
}
},
};
window.localStorage.setItem('projcetDataId', id)
$.modal.openOptions(options)
}
</script> </script>
</body> </body>
</html> </html>

View File

@ -85,6 +85,7 @@
<td class="shortTd">项目编号<span class="is-required">*</span></td> <td class="shortTd">项目编号<span class="is-required">*</span></td>
<td> <td>
<input name="projectId" class="form-control" type="hidden"> <input name="projectId" class="form-control" type="hidden">
<input name="orderId" class="form-control" type="hidden">
<input type="text" name="projectCode" placeholder="请选择" class="form-control" <input type="text" name="projectCode" placeholder="请选择" class="form-control"
onclick="searchProject()"> onclick="searchProject()">
</td> </td>
@ -129,6 +130,7 @@
<td>联系方式<span class="is-required">*</span></td> <td>联系方式<span class="is-required">*</span></td>
<td><input name="businessPhone" class="form-control" type="text" required></td> <td><input name="businessPhone" class="form-control" type="text" required></td>
</tr> </tr>
<tr> <tr>
<td>合同编号<span class="is-required">*</span></td> <td>合同编号<span class="is-required">*</span></td>
<td><input type="text" name="orderCode" class="form-control" readonly placeholder="自动生成"> <td><input type="text" name="orderCode" class="form-control" readonly placeholder="自动生成">
@ -218,6 +220,15 @@
</select> </select>
</td> </td>
</tr> </tr>
<tr>
<td>进货商联系人</td>
<td><input name="partnerPeople" class="form-control" type="text"></td>
<td>Email</td>
<td><input type="text" name="partnerEmail"
class="form-control"></td>
<td>联系方式<span class="is-required">*</span></td>
<td><input name="partnerPhone" class="form-control" type="text" required></td>
</tr>
<tr> <tr>
<td>供货商<span class="is-required">*</span></td> <td>供货商<span class="is-required">*</span></td>
<td colspan="5"> <td colspan="5">
@ -383,11 +394,39 @@
function submitHandler() { function submitHandler() {
if ($.validate.form()) { if ($.validate.form()) {
$.operate.save(prefix + "/add", $('#form-product-add').serialize()); $.operate.save(prefix + "/add", $('#form-product-add').serialize());
}else{
$.modal.alertWarning("请完善表单");
} }
} }
function initProjcet() {
let id = window.localStorage.getItem('projcetDataId')
if (!id) {
return
}
window.localStorage.removeItem('projcetDataId')
$.operate.get(ctx + `sip/project/query/${id}`, function (res) {
let data = res.data
$('#projectNameBox').text(data.projectName)
$('[name="customerCode"]').val(data.customerCode);
$('[name="customerName"]').val(data.customerName);
$('[name="projectCode"]').val(data.projectCode);
$('[name="projectId"]').val(data.id);
$('[name="projectName"]').val(data.projectName);
$('[name="bgProperty"]').val(data.bgProperty);
$('[name="agentName"]').val(data.agentName);
$('[name="agentCode"]').val(data.agentCode);
changeBg()
$('[name="industryType"]').val(data.industryType);
initProjectList()
})
}
$(function () { $(function () {
initProductList() initProductList()
initProjcet()
$("input[name='estimatedOrderTime']").datetimepicker({ $("input[name='estimatedOrderTime']").datetimepicker({
format: "yyyy-mm-dd", format: "yyyy-mm-dd",
minView: "month", minView: "month",
@ -459,7 +498,7 @@
function doSubmitProject(index, layero) { function doSubmitProject(index, layero) {
var rows = layero.find("iframe")[0].contentWindow.getSelections(); var rows = layero.find("iframe")[0].contentWindow.getSelections();
if (rows.length == 0) { if (rows.length == 0) {
$.modal.alertWarning("请选择一个用户"); $.modal.alertWarning("请选择一个项目");
return; return;
} }
$('#projectNameBox').text(rows[0].projectName) $('#projectNameBox').text(rows[0].projectName)
@ -486,6 +525,9 @@
$('[name="partnerCode"]').val(rows[0].partnerCode); $('[name="partnerCode"]').val(rows[0].partnerCode);
$('[name="partnerName"]').val(rows[0].partnerName); $('[name="partnerName"]').val(rows[0].partnerName);
$('[name="level"]').val(rows[0].level); $('[name="level"]').val(rows[0].level);
$('[name="partnerPeople"]').val(rows[0].contactPerson);
$('[name="partnerPhone"]').val(rows[0].contactPhone);
$.modal.close(index); $.modal.close(index);
} }
@ -534,7 +576,7 @@ ${softwareProjectProductInfoList.map((ele) => {
<td><input value="${data.catalogueAllPrice || ''}" name="softwareProjectProductInfoList[${length}].catalogueAllPrice" type="number" class="form-control catalogueAllPrice" placeholder="自动计算" required readonly></td> <td><input value="${data.catalogueAllPrice || ''}" name="softwareProjectProductInfoList[${length}].catalogueAllPrice" type="number" class="form-control catalogueAllPrice" placeholder="自动计算" required readonly></td>
<td><input value="${data.remark || ''}" name="softwareProjectProductInfoList[${length}].remark" type="text" class="form-control" ></td> <td><input value="${data.remark || ''}" name="softwareProjectProductInfoList[${length}].remark" type="text" class="form-control" ></td>
<td><span style="cursor:pointer;color: ff5722" class="delRow">删除</span></td> <td><span style="cursor:pointer;color: #1686d8" class="delRow">删除</span></td>
</tr>`) </tr>`)
$('#productTable tbody').append(tr) $('#productTable tbody').append(tr)
@ -571,7 +613,7 @@ ${hardwareProjectProductInfoList.map((ele) => {
<td><input value="${data.catalogueAllPrice || ''}" name="hardwareProjectProductInfoList[${length}].catalogueAllPrice" type="number" class="form-control catalogueAllPrice" placeholder="自动计算" required readonly></td> <td><input value="${data.catalogueAllPrice || ''}" name="hardwareProjectProductInfoList[${length}].catalogueAllPrice" type="number" class="form-control catalogueAllPrice" placeholder="自动计算" required readonly></td>
<td><input value="${data.remark || ''}" name="hardwareProjectProductInfoList[${length}].remark" type="text" class="form-control" ></td> <td><input value="${data.remark || ''}" name="hardwareProjectProductInfoList[${length}].remark" type="text" class="form-control" ></td>
<td><span style="cursor:pointer;color: ff5722" class="delRow">删除</span></td> <td><span style="cursor:pointer;color: #1686d8" class="delRow">删除</span></td>
</tr>`) </tr>`)
$('#productTable2 tbody').append(tr) $('#productTable2 tbody').append(tr)
@ -608,7 +650,7 @@ ${maintenanceProjectProductInfoList.map((ele) => {
<td><input value="${data.catalogueAllPrice || ''}" name="maintenanceProjectProductInfoList[${length}].catalogueAllPrice" type="number" class="form-control catalogueAllPrice" placeholder="自动计算" required readonly></td> <td><input value="${data.catalogueAllPrice || ''}" name="maintenanceProjectProductInfoList[${length}].catalogueAllPrice" type="number" class="form-control catalogueAllPrice" placeholder="自动计算" required readonly></td>
<td><input value="${data.remark || ''}" name="maintenanceProjectProductInfoList[${length}].remark" type="text" class="form-control" ></td> <td><input value="${data.remark || ''}" name="maintenanceProjectProductInfoList[${length}].remark" type="text" class="form-control" ></td>
<td><span style="cursor:pointer;color: ff5722" class="delRow">删除</span></td> <td><span style="cursor:pointer;color: #1686d8" class="delRow">删除</span></td>
</tr>`) </tr>`)
$('#productTable3 tbody').append(tr) $('#productTable3 tbody').append(tr)
@ -790,7 +832,7 @@ ${maintenanceProjectProductInfoList.map((ele) => {
const file = event.target.files[0]; const file = event.target.files[0];
let data = new FormData() let data = new FormData()
data.append('file', file) data.append('file', file)
data.append('projectId', $('[name="projectId"]').val()) data.append('orderId', $('[name="orderId"]').val())
var xhr = new XMLHttpRequest(); // 创建XMLHttpRequest对象 var xhr = new XMLHttpRequest(); // 创建XMLHttpRequest对象
xhr.open('POST', prefix + '/importContractData', true); // 设置请求类型和URL xhr.open('POST', prefix + '/importContractData', true); // 设置请求类型和URL
@ -799,9 +841,7 @@ ${maintenanceProjectProductInfoList.map((ele) => {
let data = JSON.parse(res.currentTarget.response) let data = JSON.parse(res.currentTarget.response)
if (data.code === 0) { if (data.code === 0) {
$.modal.msgSuccess('导入成功'); $.modal.msgSuccess('导入成功');
data.data.forEach((row) => { addFile(data.data)
addFile(row)
})
} else { } else {
$.modal.msgError(data.msg || '导入失败'); $.modal.msgError(data.msg || '导入失败');
} }
@ -818,21 +858,30 @@ ${maintenanceProjectProductInfoList.map((ele) => {
}); });
function importList() { function importList() {
if (!$('[name="projectId"]').val()) {
$.modal.alertWarning("请先选择项目");
return
}
$('#uploadInput').click() $('#uploadInput').click()
} }
function addFile() { function addFile(data) {
let length = $('#fileBox tbody').find('tr').length
let filterArr = ['fileName', 'createBy', 'uploadTime']
let keys = Object.keys(data).filter((ele) => filterArr.indexOf(ele) < 0)
let tr = $(` let tr = $(`
<tr> <tr>
<td></td> <td>
<td></td> ${
<td></td> keys.map((ele) => {
return `<input type="hidden" name="contractFileList[${length}].${ele}" value="${data[ele] || ''}">`
}).join('')
}
<input value="${data.fileName || ''}" name="contractFileList[${length}].fileName" readonly class="form-control"></td>
<td><input value="${data.createByName || ''}" name="contractFileList[${length}].createBy" readonly class="form-control"></td>
<td><input value="${data.uploadTime || ''}" name="contractFileList[${length}].uploadTime" readonly class="form-control" ></td>
<td><span style="cursor:pointer;color: #1686d8;margin-right: 5px;" onclick="preview('${data.filePath}')">预览</span><span style="cursor:pointer;color: #1686d8;margin-right: 5px;" onclick="downFile('${data.filePath}')">下载</span><span style="cursor:pointer;color: #dd242a" class="delfile">删除</span></td>
</tr>`) </tr>`)
$('#fileBox tbody').append(tr) $('#fileBox tbody').append(tr)
$('.delfile').on('click', function () {
$(this).parent().parent().remove()
})
} }
@ -853,6 +902,18 @@ ${maintenanceProjectProductInfoList.map((ele) => {
}) : '' }) : ''
}) })
} }
function downFile(filePath) {
$.operate.get(prefix + `/file/download?filePath=${filePath}`, function (res) {
window.location.href = res.data
})
}
function preview(filePath) {
$.operate.get(prefix + `/file/download?filePath=${filePath}`, function (res) {
window.open(res.data)
})
}
</script> </script>
</body> </body>
</html> </html>