产品弹窗修改

master
wangjiuyun 2025-06-09 18:04:45 +08:00
parent aa64b56bfa
commit 992512f0e9
9 changed files with 332 additions and 433 deletions

View File

@ -354,31 +354,17 @@
var maintenanceProjectProductInfoList = []
function initProductList() {
let data = {
pageSize: 100000,
pageNum: 1,
isTable: 0,
}
$.operate.post(ctx + 'system/product/list', {...data, type: '1'}, function (res) {
softwareProjectProductInfoList = res.rows
softwareProjectProductInfoList.unshift({
model: '',
productCode: ''
})
let softwareProjectProductInfoListAll = [[${projectInfo.softwareProjectProductInfoList}]] || []
softwareProjectProductInfoListAll.forEach((ele) => {
addProduct(ele)
})
$.operate.post(ctx + 'system/product/list', {...data, type: '2'}, function (res) {
hardwareProjectProductInfoList = res.rows
hardwareProjectProductInfoList.unshift({
model: '',
productCode: ''
})
let hardwareProjectProductInfoListAll = [[${projectInfo.hardwareProjectProductInfoList}]] || []
hardwareProjectProductInfoListAll.forEach((ele) => {
addProduct2(ele)
})
$.operate.post(ctx + 'system/product/list', {...data, type: '11,22'}, function (res) {
maintenanceProjectProductInfoList = res.rows
maintenanceProjectProductInfoList.unshift({
model: '',
productCode: ''
})
let maintenanceProjectProductInfoListAll = [[${projectInfo.maintenanceProjectProductInfoList}]] || []
maintenanceProjectProductInfoListAll.forEach((ele) => {
addProduct3(ele)
})
}
@ -454,6 +440,29 @@
$.modal.openOptions(options);
}
function selectProduct(type, name, ele) {
var url = prefix + "/selectProduct";
window.localStorage.setItem('procuctType', type)
var options = {
title: '选择' + name,
width: "800",
height: '600',
url: url,
callBack: (index, layero) => {
doSubmitProduct(index, layero, ele)
}
};
$.modal.openOptions(options);
}
function doSubmitProduct(index, layero, ele) {
var rows = layero.find("iframe")[0].contentWindow.getSelections();
$(ele).parent().parent().find('.productBomCode').val(rows[0].productCode)
$(ele).parent().parent().find('.model').val(rows[0].model)
$(ele).parent().parent().find('.productDesc').val(rows[0].description)
$.modal.close(index);
}
function doSubmitCustomer(index, layero) {
var rows = layero.find("iframe")[0].contentWindow.getSelections();
if (rows.length == 0) {
@ -510,18 +519,8 @@
let tr = $(`
<tr>
<td class="indexBox">${length + 1}</td>
<td class="layui-form"><select name="softwareProjectProductInfoList[${length}].productBomCode" required class="form-control productBomCode" lay-search="" lay-filter="productCode1">
${softwareProjectProductInfoList.map((ele) => {
return `<option value="${ele.productCode}">${ele.productCode}</option>`
}).join('')
}
</select></td>
<td class="layui-form"><select name="softwareProjectProductInfoList[${length}].model" required class="form-control model" lay-search="" lay-filter="productModel1">
${softwareProjectProductInfoList.map((ele) => {
return `<option value="${ele.model}">${ele.model}</option>`
}).join('')
}
</select></td>
<td><input class="form-control productBomCode" type="text" onclick="selectProduct('1','终端产品',this)" name="softwareProjectProductInfoList[${length}].productBomCode"></td>
<td><input class="form-control model" type="text" onclick="selectProduct('1','终端产品',this)" name="softwareProjectProductInfoList[${length}].model"></td>
<td><textarea name="softwareProjectProductInfoList[${length}].productDesc" required class="form-control productDesc" placeholder="自动带入" readonly>${softwareProjectProductInfoList[0]?.description || ''}</textarea></td>
<td><input name="softwareProjectProductInfoList[${length}].quantity" type="number" class="form-control quantity" step="1" required></td>
<td><input name="softwareProjectProductInfoList[${length}].cataloguePrice" type="text" class="form-control cataloguePrice" required></td>
@ -531,7 +530,7 @@ ${softwareProjectProductInfoList.map((ele) => {
<td><input name="softwareProjectProductInfoList[${length}].allPrice" type="number" class="form-control allPrice" placeholder="自动计算" required readonly></td>
<td><input name="softwareProjectProductInfoList[${length}].catalogueAllPrice" type="number" class="form-control catalogueAllPrice" placeholder="自动计算" required readonly></td>
<td><input 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: #ff5722" class="delRow">删除</span></td>
</tr>`)
$('#productTable tbody').append(tr)
@ -544,20 +543,8 @@ ${softwareProjectProductInfoList.map((ele) => {
let tr = $(`
<tr>
<td class="indexBox">${length + 1}</td>
<td class="layui-form"><select name="hardwareProjectProductInfoList[${length}].productBomCode" required class="form-control productBomCode" lay-search="" lay-filter="productCode2">
${hardwareProjectProductInfoList.map((ele) => {
return `<option value="${ele.productCode}">${ele.productCode}</option>`
}).join('')
}
</select></td>
<td class="layui-form"><select name="hardwareProjectProductInfoList[${length}].model" required class="form-control model" lay-search="" lay-filter="productModel2">
${hardwareProjectProductInfoList.map((ele) => {
return `<option value="${ele.model}">${ele.model}</option>`
}).join('')
}
</select></td>
<td><input class="form-control productBomCode" type="text" onclick="selectProduct('2','软件产品',this)" name="hardwareProjectProductInfoList[${length}].productBomCode"></td>
<td><input class="form-control model" type="text" onclick="selectProduct('2','软件产品',this)" name="hardwareProjectProductInfoList[${length}].model"></td>
<td><textarea name="hardwareProjectProductInfoList[${length}].productDesc" required class="form-control productDesc" placeholder="自动带入" readonly>${hardwareProjectProductInfoList[0]?.description || ''}</textarea></td>
<td><input name="hardwareProjectProductInfoList[${length}].quantity" type="number" class="form-control quantity" step="1" required></td>
<td><input name="hardwareProjectProductInfoList[${length}].cataloguePrice" type="text" class="form-control cataloguePrice" required></td>
@ -580,20 +567,8 @@ ${hardwareProjectProductInfoList.map((ele) => {
let tr = $(`
<tr>
<td class="indexBox">${length + 1}</td>
<td class="layui-form"><select name="maintenanceProjectProductInfoList[${length}].productBomCode" required class="form-control productBomCode" lay-search="" lay-filter="productCode3">
${hardwareProjectProductInfoList.map((ele) => {
return `<option value="${ele.productCode}">${ele.productCode}</option>`
}).join('')
}
</select></td>
<td class="layui-form"><select name="maintenanceProjectProductInfoList[${length}].model" required class="form-control model" lay-search="" lay-filter="productModel3">
${hardwareProjectProductInfoList.map((ele) => {
return `<option value="${ele.model}">${ele.model}</option>`
}).join('')
}
</select></td>
<td><input class="form-control productBomCode" type="text" onclick="selectProduct('11,22','服务产品',this)" name="maintenanceProjectProductInfoList[${length}].productBomCode"></td>
<td><input class="form-control model" type="text" onclick="selectProduct('11,22','服务产品',this)" name="maintenanceProjectProductInfoList[${length}].model"></td>
<td><textarea name="maintenanceProjectProductInfoList[${length}].productDesc" required class="form-control productDesc" placeholder="自动带入" readonly>${maintenanceProjectProductInfoList[0]?.description || ''}</textarea></td>
<td><input name="maintenanceProjectProductInfoList[${length}].quantity" type="number" class="form-control quantity" step="1" required></td>
<td><input name="maintenanceProjectProductInfoList[${length}].cataloguePrice" type="text" class="form-control cataloguePrice" required></td>
@ -603,7 +578,7 @@ ${hardwareProjectProductInfoList.map((ele) => {
<td><input name="maintenanceProjectProductInfoList[${length}].allPrice" type="number" class="form-control allPrice" placeholder="自动计算" required readonly></td>
<td><input name="maintenanceProjectProductInfoList[${length}].catalogueAllPrice" type="number" class="form-control catalogueAllPrice" placeholder="自动计算" required readonly></td>
<td><input 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: #ff5722" class="delRow">删除</span></td>
</tr>`)
$('#productTable3 tbody').append(tr)
@ -625,31 +600,6 @@ ${hardwareProjectProductInfoList.map((ele) => {
}
function initSearchProduct(type) {
layui.use(function () {
var form = layui.form
form.render()
form.on('select(productCode1)', function (data) {
searchProduct(data.value, 'code', data.elem)
})
form.on('select(productCode2)', function (data) {
searchProduct(data.value, 'code', data.elem)
})
form.on('select(productCode3)', function (data) {
searchProduct(data.value, 'code', data.elem)
})
form.on('select(productModel1)', function (data) {
searchProduct(data.value, 'model', data.elem)
})
form.on('select(productModel2)', function (data) {
searchProduct(data.value, 'model', data.elem)
})
form.on('select(productModel3)', function (data) {
searchProduct(data.value, 'model', data.elem)
})
$('.layui-input').on('mouseout', function () {
$(this).blur()
})
})
$('.productTable .delRow').on('click', function () {
let ele = $(this)
$.modal.confirm('是否确认删除', function () {
@ -668,33 +618,6 @@ ${hardwareProjectProductInfoList.map((ele) => {
})
}
function searchProduct(val, type, ele, typeId) {
let selectObj = {}
let listName = $(ele).attr('name')
if (type == 'code') {
if (listName.indexOf('softwareProjectProductInfoList') > -1) {
selectObj = softwareProjectProductInfoList.find((ele) => ele.productCode == val)
} else if (listName.indexOf('hardwareProjectProductInfoList') > -1) {
selectObj = hardwareProjectProductInfoList.find((ele) => ele.productCode == val)
} else if (listName.indexOf('maintenanceProjectProductInfoList') > -1) {
selectObj = maintenanceProjectProductInfoList.find((ele) => ele.productCode == val)
}
$(ele).parent().parent().find('.model+div').find('.layui-input').val(selectObj.model)
$(ele).parent().parent().find('.model').val(selectObj.model)
} else {
if (listName.indexOf('softwareProjectProductInfoList') > -1) {
selectObj = softwareProjectProductInfoList.find((ele) => ele.model == val)
} else if (listName.indexOf('hardwareProjectProductInfoList') > -1) {
selectObj = hardwareProjectProductInfoList.find((ele) => ele.model == val)
} else if (listName.indexOf('maintenanceProjectProductInfoList') > -1) {
selectObj = maintenanceProjectProductInfoList.find((ele) => ele.model == val)
}
$(ele).parent().parent().find('.productBomCode+div').find('.layui-input').val(selectObj.model)
$(ele).parent().parent().find('.productBomCode').val(selectObj.productCode)
}
$(ele).parent().parent().find('.productDesc').val(selectObj.description)
}
function initPrice() {
$('.productTable .quantity').on('input', function () {
let num = $(this).val()

View File

@ -356,7 +356,7 @@
<tbody></tbody>
</table>
</div>
<div class="layui-tab-item">
<div class="layui-tab-item">
</div>
</div>
@ -376,48 +376,18 @@
var maintenanceProjectProductInfoList = []
function initProductList() {
let data = {
pageSize: 100000,
pageNum: 1,
isTable: 0,
}
$.operate.post(ctx + 'system/product/list', {...data, type: '1'}, function (res) {
softwareProjectProductInfoList = res.rows
softwareProjectProductInfoList.unshift({
model: '',
productCode: ''
})
let softwareProjectProductInfoListAll = [[${projectInfo.softwareProjectProductInfoList}]] || []
softwareProjectProductInfoListAll.forEach((ele) => {
addProduct(ele)
})
let softwareProjectProductInfoListAll = [[${projectInfo.softwareProjectProductInfoList}]] || []
softwareProjectProductInfoListAll.forEach((ele) => {
addProduct(ele)
})
$.operate.post(ctx + 'system/product/list', {...data, type: '2'}, function (res) {
hardwareProjectProductInfoList = res.rows
hardwareProjectProductInfoList.unshift({
model: '',
productCode: ''
})
let hardwareProjectProductInfoListAll = [[${projectInfo.hardwareProjectProductInfoList}]] || []
hardwareProjectProductInfoListAll.forEach((ele) => {
addProduct2(ele)
})
let hardwareProjectProductInfoListAll = [[${projectInfo.hardwareProjectProductInfoList}]] || []
hardwareProjectProductInfoListAll.forEach((ele) => {
addProduct2(ele)
})
$.operate.post(ctx + 'system/product/list', {...data, type: '11,22'}, function (res) {
maintenanceProjectProductInfoList = res.rows
maintenanceProjectProductInfoList.unshift({
model: '',
productCode: ''
})
let maintenanceProjectProductInfoListAll = [[${projectInfo.maintenanceProjectProductInfoList}]] || []
maintenanceProjectProductInfoListAll.forEach((ele) => {
addProduct3(ele)
})
let maintenanceProjectProductInfoListAll = [[${projectInfo.maintenanceProjectProductInfoList}]] || []
maintenanceProjectProductInfoListAll.forEach((ele) => {
addProduct3(ele)
})
}
function submitHandler() {
@ -430,7 +400,6 @@
$(function () {
initProductList()
var layerIndex = parent.layer.index
$("input[name='estimatedOrderTime']").datetimepicker({
format: "yyyy-mm-dd",
minView: "month",
@ -573,19 +542,8 @@
let tr = $(`
<tr>
<td class="indexBox">${length + 1}</td>
<td class="layui-form"><input type="hidden" name="softwareProjectProductInfoList[${length}].id" value="${data.id || ''}">
<select value="${data.productBomCode || ''}" name="softwareProjectProductInfoList[${length}].productBomCode" required class="form-control productBomCode" lay-search="" lay-filter="productCode1">
${softwareProjectProductInfoList.map((ele) => {
return `<option value="${ele.productCode}" ${ele.productCode == data.productBomCode ? 'selected' : ''}>${ele.productCode}</option>`
}).join('')
}
</select></td>
<td class="layui-form"><select value="${data.model || ''}" name="softwareProjectProductInfoList[${length}].model" required class="form-control model" lay-search="" lay-filter="productModel1">
${softwareProjectProductInfoList.map((ele) => {
return `<option value="${ele.model}" ${ele.model == data.model ? 'selected' : ''}>${ele.model}</option>`
}).join('')
}
</select></td>
<td> <input type="hidden" name="softwareProjectProductInfoList[${length}].id" value="${data.id || ''}"><input class="form-control productBomCode" type="text" onclick="selectProduct('1','终端产品',this)" value="${data.productBomCode || ''}" name="softwareProjectProductInfoList[${length}].productBomCode"></td>
<td><input class="form-control model" type="text" onclick="selectProduct('1','终端产品',this)" value="${data.model || ''}" name="softwareProjectProductInfoList[${length}].model"></td>
<td><textarea name="softwareProjectProductInfoList[${length}].productDesc" required class="form-control productDesc" placeholder="自动带入" readonly>${data.productDesc || ''}</textarea></td>
<td><input value="${data.quantity || ''}" name="softwareProjectProductInfoList[${length}].quantity" type="number" class="form-control quantity" step="1" required></td>
<td><input value="${data.cataloguePrice || ''}" name="softwareProjectProductInfoList[${length}].cataloguePrice" type="text" class="form-control cataloguePrice" required></td>
@ -608,19 +566,8 @@ ${softwareProjectProductInfoList.map((ele) => {
let tr = $(`
<tr>
<td class="indexBox">${length + 1}</td>
<td class="layui-form"><input type="hidden" name="hardwareProjectProductInfoList[${length}].id" value="${data.id || ''}">
<select value="${data.productBomCode || ''}" name="hardwareProjectProductInfoList[${length}].productBomCode" required class="form-control productBomCode" lay-search="" lay-filter="productCode2">
${hardwareProjectProductInfoList.map((ele) => {
return `<option value="${ele.productCode}" ${ele.productCode == data.productBomCode ? 'selected' : ''}>${ele.productCode}</option>`
}).join('')
}
</select></td>
<td class="layui-form"><select value="${data.model || ''}" name="hardwareProjectProductInfoList[${length}].model" required class="form-control model" lay-search="" lay-filter="productModel2">
${hardwareProjectProductInfoList.map((ele) => {
return `<option value="${ele.model}" ${ele.model == data.model ? 'selected' : ''}>${ele.model}</option>`
}).join('')
}
</select></td>
<td> <input type="hidden" name="hardwareProjectProductInfoList[${length}].id" value="${data.id || ''}"><input class="form-control productBomCode" type="text" onclick="selectProduct('2','软件产品',this)" value="${data.productBomCode || ''}" name="hardwareProjectProductInfoList[${length}].productBomCode"></td>
<td><input class="form-control model" type="text" onclick="selectProduct('2','软件产品',this)" value="${data.model || ''}" name="hardwareProjectProductInfoList[${length}].model"></td>
<td><textarea name="hardwareProjectProductInfoList[${length}].productDesc" required class="form-control productDesc" placeholder="自动带入" readonly>${data.productDesc || ''}</textarea></td>
<td><input value="${data.quantity || ''}" name="hardwareProjectProductInfoList[${length}].quantity" type="number" class="form-control quantity" step="1" required></td>
<td><input value="${data.cataloguePrice || ''}" name="hardwareProjectProductInfoList[${length}].cataloguePrice" type="text" class="form-control cataloguePrice" required></td>
@ -643,19 +590,8 @@ ${hardwareProjectProductInfoList.map((ele) => {
let tr = $(`
<tr>
<td class="indexBox">${length + 1}</td>
<td class="layui-form"><input type="hidden" name="maintenanceProjectProductInfoList[${length}].id" value="${data.id || ''}">
<select value="${data.productBomCode || ''}" name="maintenanceProjectProductInfoList[${length}].productBomCode" required class="form-control productBomCode" lay-search="" lay-filter="productCode3">
${maintenanceProjectProductInfoList.map((ele) => {
return `<option value="${ele.productCode}" ${ele.productCode == data.productBomCode ? 'selected' : ''}>${ele.productCode}</option>`
}).join('')
}
</select></td>
<td class="layui-form"><select value="${data.model || ''}" name="maintenanceProjectProductInfoList[${length}].model" required class="form-control model" lay-search="" lay-filter="productModel3">
${maintenanceProjectProductInfoList.map((ele) => {
return `<option value="${ele.model}" ${ele.model == data.model ? 'selected' : ''}>${ele.model}</option>`
}).join('')
}
</select></td>
<td> <input type="hidden" name="maintenanceProjectProductInfoList[${length}].id" value="${data.id || ''}"><input class="form-control productBomCode" type="text" onclick="selectProduct('11,22','服务产品',this)" value="${data.productBomCode || ''}" name="maintenanceProjectProductInfoList[${length}].productBomCode"></td>
<td><input class="form-control model" type="text" onclick="selectProduct('11,22','服务产品',this)" value="${data.model || ''}" name="maintenanceProjectProductInfoList[${length}].model"></td>
<td><textarea name="maintenanceProjectProductInfoList[${length}].productDesc" required class="form-control productDesc" placeholder="自动带入" readonly>${data.productDesc || ''}</textarea></td>
<td><input value="${data.quantity || ''}" name="maintenanceProjectProductInfoList[${length}].quantity" type="number" class="form-control quantity" step="1" required></td>
<td><input value="${data.cataloguePrice || ''}" name="maintenanceProjectProductInfoList[${length}].cataloguePrice" type="text" class="form-control cataloguePrice" required></td>
@ -687,31 +623,6 @@ ${maintenanceProjectProductInfoList.map((ele) => {
}
function initSearchProduct(type) {
layui.use(function () {
var form = layui.form
form.render()
form.on('select(productCode1)', function (data) {
searchProduct(data.value, 'code', data.elem)
})
form.on('select(productCode2)', function (data) {
searchProduct(data.value, 'code', data.elem)
})
form.on('select(productCode3)', function (data) {
searchProduct(data.value, 'code', data.elem)
})
form.on('select(productModel1)', function (data) {
searchProduct(data.value, 'model', data.elem)
})
form.on('select(productModel2)', function (data) {
searchProduct(data.value, 'model', data.elem)
})
form.on('select(productModel3)', function (data) {
searchProduct(data.value, 'model', data.elem)
})
$('.layui-input').on('mouseout', function () {
$(this).blur()
})
})
$('.productTable .delRow').on('click', function () {
let ele = $(this)
$.modal.confirm('是否确认删除', function () {
@ -731,33 +642,6 @@ ${maintenanceProjectProductInfoList.map((ele) => {
}
function searchProduct(val, type, ele, typeId) {
let selectObj = {}
let listName = $(ele).attr('name')
if (type == 'code') {
if (listName.indexOf('softwareProjectProductInfoList') > -1) {
selectObj = softwareProjectProductInfoList.find((ele) => ele.productCode == val)
} else if (listName.indexOf('hardwareProjectProductInfoList') > -1) {
selectObj = hardwareProjectProductInfoList.find((ele) => ele.productCode == val)
} else if (listName.indexOf('maintenanceProjectProductInfoList') > -1) {
selectObj = maintenanceProjectProductInfoList.find((ele) => ele.productCode == val)
}
$(ele).parent().parent().find('.model+div').find('.layui-input').val(selectObj.model)
$(ele).parent().parent().find('.model').val(selectObj.model)
} else {
if (listName.indexOf('softwareProjectProductInfoList') > -1) {
selectObj = softwareProjectProductInfoList.find((ele) => ele.model == val)
} else if (listName.indexOf('hardwareProjectProductInfoList') > -1) {
selectObj = hardwareProjectProductInfoList.find((ele) => ele.model == val)
} else if (listName.indexOf('maintenanceProjectProductInfoList') > -1) {
selectObj = maintenanceProjectProductInfoList.find((ele) => ele.model == val)
}
$(ele).parent().parent().find('.productBomCode+div').find('.layui-input').val(selectObj.model)
$(ele).parent().parent().find('.productBomCode').val(selectObj.productCode)
}
$(ele).parent().parent().find('.productDesc').val(selectObj.description)
}
function initPrice() {
$('.productTable .quantity').on('input', function () {
let num = $(this).val()
@ -835,6 +719,30 @@ ${maintenanceProjectProductInfoList.map((ele) => {
}
}
function selectProduct(type, name, ele) {
var url = prefix + "/selectProduct";
window.localStorage.setItem('procuctType', type)
var options = {
title: '选择' + name,
width: "800",
height: '600',
url: url,
callBack: (index, layero) => {
doSubmitProduct(index, layero, ele)
}
};
$.modal.openOptions(options);
}
function doSubmitProduct(index, layero, ele) {
var rows = layero.find("iframe")[0].contentWindow.getSelections();
$(ele).parent().parent().find('.productBomCode').val(rows[0].productCode)
$(ele).parent().parent().find('.model').val(rows[0].model)
$(ele).parent().parent().find('.productDesc').val(rows[0].description)
$.modal.close(index);
}
</script>
</body>
</html>

View File

@ -0,0 +1,90 @@
<!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>
<style>
.select-list li {
display: inline-block;
}
.select-list li label {
width: 88px !important;
}
</style>
<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="productCode"/>
<input type="hidden" name="type"/>
</li>
<li>
<label>产品型号:</label>
<input type="text" name="model"/>
</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="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table>
</div>
</div>
</div>
<th:block th:include="include :: footer"/>
<script>
var prefix = ctx + "system/product";
$(function () {
$('[name="type"]').val(window.localStorage.getItem('procuctType'))
var options = {
url: prefix + "/list",
showSearch: true,
showColumns: false,
showToggle: false,
showPageGo: true,
showRefresh: false,
search: false,
columns: [{
radio: true
},
{
field: 'productCode',
title: '产品名称'
},
{
field: 'model',
title: '产品型号'
},
{
field: 'description',
title: '描述'
},
]
};
$.table.init(options);
});
function getSelections() {
var rows = $('#bootstrap-table').bootstrapTable('getSelections');
return rows;
}
</script>
</body>
</html>

View File

@ -626,13 +626,9 @@
let tr = $(`
<tr>
<td class="indexBox">${length + 1}</td>
<td class="layui-form"><input type="hidden" name="softwareProjectProductInfoList[${length}].id" value="${data.id || ''}"><select name="softwareProjectProductInfoList[${length}].productBomCode" value="${data.productBomCode || ''}" required class="form-control productBomCode" lay-search="" lay-filter="productCode1">
${softwareProjectProductInfoList.map((ele) => {
return `<option value="${ele.productCode}" ${ele.productCode == data.productBomCode ? 'selected' : ''}>${ele.productCode}</option>`
}).join('')
}
</select></td>
<td class="layui-form"><select name="softwareProjectProductInfoList[${length}].model" required class="form-control model" lay-search="" lay-filter="productModel1">
<td> <input type="hidden" name="softwareProjectProductInfoList[${length}].id" value="${data.id || ''}"><input class="form-control productBomCode" type="text" onclick="selectProduct('1','终端产品',this)" value="${data.productBomCode || ''}" name="softwareProjectProductInfoList[${length}].productBomCode"></td>
<td><input class="form-control model" type="text" onclick="selectProduct('1','终端产品',this)" value="${data.model || ''}" name="softwareProjectProductInfoList[${length}].model"></td>
<td><select name="softwareProjectProductInfoList[${length}].model" required class="form-control model" lay-search="" lay-filter="productModel1">
${softwareProjectProductInfoList.map((ele) => {
return `<option value="${ele.model}" ${ele.model == data.model ? 'selected' : ''}>${ele.model}</option>`
}).join('')
@ -661,20 +657,8 @@ ${softwareProjectProductInfoList.map((ele) => {
let tr = $(`
<tr>
<td class="indexBox">${length + 1}</td>
<td class="layui-form"><input type="hidden" name="hardwareProjectProductInfoList[${length}].id" value="${data.id || ''}"><select name="hardwareProjectProductInfoList[${length}].productBomCode" required class="form-control productBomCode" lay-search="" lay-filter="productCode2" value="${data.productBomCode || ''}">
${hardwareProjectProductInfoList.map((ele) => {
return `<option value="${ele.productCode}" ${ele.productCode == data.productBomCode ? 'selected' : ''}>${ele.productCode}</option>`
}).join('')
}
</select></td>
<td class="layui-form"><select name="hardwareProjectProductInfoList[${length}].model" required class="form-control model" lay-search="" lay-filter="productModel2" value="${data.model || ''}">
${hardwareProjectProductInfoList.map((ele) => {
return `<option value="${ele.model}" ${ele.model == data.model ? 'selected' : ''}>${ele.model}</option>`
}).join('')
}
</select></td>
<td> <input type="hidden" name="hardwareProjectProductInfoList[${length}].id" value="${data.id || ''}"><input class="form-control productBomCode" type="text" onclick="selectProduct('2','软件产品',this)" value="${data.productBomCode || ''}" name="hardwareProjectProductInfoList[${length}].productBomCode"></td>
<td><input class="form-control model" type="text" onclick="selectProduct('2','软件产品',this)" value="${data.model || ''}" name="hardwareProjectProductInfoList[${length}].model"></td>
<td><textarea name="hardwareProjectProductInfoList[${length}].productDesc" required class="form-control productDesc" placeholder="自动带入" readonly>${data.productDesc || ''}</textarea></td>
<td><input value="${data.quantity || ''}" name="hardwareProjectProductInfoList[${length}].quantity" type="number" class="form-control quantity" step="1" required></td>
<td><input value="${data.cataloguePrice || ''}" name="hardwareProjectProductInfoList[${length}].cataloguePrice" type="text" class="form-control cataloguePrice" required></td>
@ -698,20 +682,8 @@ ${hardwareProjectProductInfoList.map((ele) => {
let tr = $(`
<tr>
<td class="indexBox">${length + 1}</td>
<td class="layui-form"><input type="hidden" name="maintenanceProjectProductInfoList[${length}].id" value="${data.id || ''}"><select name="maintenanceProjectProductInfoList[${length}].productBomCode" required class="form-control productBomCode" lay-search="" lay-filter="productCode3" value="${data.productBomCode || ''}">
${maintenanceProjectProductInfoList.map((ele) => {
return `<option value="${ele.productCode}" ${ele.productCode == data.productBomCode ? 'selected' : ''}>${ele.productCode}</option>`
}).join('')
}
</select></td>
<td class="layui-form"><select name="maintenanceProjectProductInfoList[${length}].model" required class="form-control model" lay-search="" lay-filter="productModel3">
${maintenanceProjectProductInfoList.map((ele) => {
return `<option value="${ele.model}" ${ele.model == data.model ? 'selected' : ''}>${ele.model}</option>`
}).join('')
}
</select></td>
<td> <input type="hidden" name="maintenanceProjectProductInfoList[${length}].id" value="${data.id || ''}"><input class="form-control productBomCode" type="text" onclick="selectProduct('11,22','服务产品',this)" value="${data.productBomCode || ''}" name="maintenanceProjectProductInfoList[${length}].productBomCode"></td>
<td><input class="form-control model" type="text" onclick="selectProduct('11,22','服务产品',this)" value="${data.model || ''}" name="maintenanceProjectProductInfoList[${length}].model"></td>
<td><textarea name="maintenanceProjectProductInfoList[${length}].productDesc" required class="form-control productDesc" placeholder="自动带入" readonly>${data.productDesc || ''}</textarea></td>
<td><input name="maintenanceProjectProductInfoList[${length}].quantity" type="number" class="form-control quantity" step="1" required value="${data.quantity || ''}" ></td>
<td><input value="${data.cataloguePrice || ''}" name="maintenanceProjectProductInfoList[${length}].cataloguePrice" type="text" class="form-control cataloguePrice" required></td>
@ -744,32 +716,6 @@ ${maintenanceProjectProductInfoList.map((ele) => {
}
function initSearchProduct() {
layui.use(function () {
var form = layui.form
form.render()
form.on('select(productCode1)', function (data) {
searchProduct(data.value, 'code', data.elem)
})
form.on('select(productCode2)', function (data) {
searchProduct(data.value, 'code', data.elem)
})
form.on('select(productCode3)', function (data) {
searchProduct(data.value, 'code', data.elem)
})
form.on('select(productModel1)', function (data) {
searchProduct(data.value, 'model', data.elem)
})
form.on('select(productModel2)', function (data) {
searchProduct(data.value, 'model', data.elem)
})
form.on('select(productModel3)', function (data) {
searchProduct(data.value, 'model', data.elem)
})
$('.layui-input').on('mouseout', function () {
$(this).blur()
})
})
$('.productTable .delRow').on('click', function () {
let ele = $(this)
$.modal.confirm('是否确认删除', function () {
@ -788,33 +734,6 @@ ${maintenanceProjectProductInfoList.map((ele) => {
})
}
function searchProduct(val, type, ele) {
let selectObj = {}
let listName = $(ele).attr('name')
if (type == 'code') {
if (listName.indexOf('softwareProjectProductInfoList') > -1) {
selectObj = softwareProjectProductInfoList.find((ele) => ele.productCode == val)
} else if (listName.indexOf('hardwareProjectProductInfoList') > -1) {
selectObj = hardwareProjectProductInfoList.find((ele) => ele.productCode == val)
} else if (listName.indexOf('maintenanceProjectProductInfoList') > -1) {
selectObj = maintenanceProjectProductInfoList.find((ele) => ele.productCode == val)
}
$(ele).parent().parent().find('.model+div').find('.layui-input').val(selectObj.model)
$(ele).parent().parent().find('.model').val(selectObj.model)
} else {
if (listName.indexOf('softwareProjectProductInfoList') > -1) {
selectObj = softwareProjectProductInfoList.find((ele) => ele.model == val)
} else if (listName.indexOf('hardwareProjectProductInfoList') > -1) {
selectObj = hardwareProjectProductInfoList.find((ele) => ele.model == val)
} else if (listName.indexOf('maintenanceProjectProductInfoList') > -1) {
selectObj = maintenanceProjectProductInfoList.find((ele) => ele.model == val)
}
$(ele).parent().parent().find('.productBomCode+div').find('.layui-input').val(selectObj.model)
$(ele).parent().parent().find('.productBomCode').val(selectObj.productCode)
}
$(ele).parent().parent().find('.productDesc').val(selectObj.description)
}
function initPrice() {
$('.productTable .quantity').on('input', function () {
let num = $(this).val()
@ -1021,6 +940,29 @@ ${
submitHandler()
})
}
function selectProduct(type, name, ele) {
var url = prefix + "/selectProduct";
window.localStorage.setItem('procuctType', type)
var options = {
title: '选择' + name,
width: "800",
height: '600',
url: url,
callBack: (index, layero) => {
doSubmitProduct(index, layero, ele)
}
};
$.modal.openOptions(options);
}
function doSubmitProduct(index, layero, ele) {
var rows = layero.find("iframe")[0].contentWindow.getSelections();
$(ele).parent().parent().find('.productBomCode').val(rows[0].productCode)
$(ele).parent().parent().find('.model').val(rows[0].model)
$(ele).parent().parent().find('.productDesc').val(rows[0].description)
$.modal.close(index);
}
</script>
</body>
</html>

View File

@ -626,18 +626,8 @@
let tr = $(`
<tr>
<td class="indexBox">${length + 1}</td>
<td class="layui-form"><input type="hidden" name="softwareProjectProductInfoList[${length}].id" value="${data.id || ''}"><select name="softwareProjectProductInfoList[${length}].productBomCode" value="${data.productBomCode || ''}" required class="form-control productBomCode" lay-search="" lay-filter="productCode1">
${softwareProjectProductInfoList.map((ele) => {
return `<option value="${ele.productCode}" ${ele.productCode == data.productBomCode ? 'selected' : ''}>${ele.productCode}</option>`
}).join('')
}
</select></td>
<td class="layui-form"><select name="softwareProjectProductInfoList[${length}].model" required class="form-control model" lay-search="" lay-filter="productModel1">
${softwareProjectProductInfoList.map((ele) => {
return `<option value="${ele.model}" ${ele.model == data.model ? 'selected' : ''}>${ele.model}</option>`
}).join('')
}
</select></td>
<td><input class="form-control productBomCode" type="text" onclick="selectProduct('1','终端产品',this)" name="softwareProjectProductInfoList[${length}].productBomCode" value="${data.productBomCode || ''}"></td>
<td><input class="form-control model" type="text" onclick="selectProduct('1','终端产品',this)" name="softwareProjectProductInfoList[${length}].model" value="${data.model || ''}"></td>
<td><textarea name="softwareProjectProductInfoList[${length}].productDesc" required class="form-control productDesc" placeholder="自动带入" readonly>${data.productDesc || ''}</textarea></td>
<td><input value="${data.quantity || ''}" name="softwareProjectProductInfoList[${length}].quantity" type="number" class="form-control quantity" step="1" required></td>
<td><input value="${data.cataloguePrice || ''}" name="softwareProjectProductInfoList[${length}].cataloguePrice" type="text" class="form-control cataloguePrice" required></td>
@ -661,20 +651,8 @@ ${softwareProjectProductInfoList.map((ele) => {
let tr = $(`
<tr>
<td class="indexBox">${length + 1}</td>
<td class="layui-form"><input type="hidden" name="hardwareProjectProductInfoList[${length}].id" value="${data.id || ''}"><select name="hardwareProjectProductInfoList[${length}].productBomCode" required class="form-control productBomCode" lay-search="" lay-filter="productCode2" value="${data.productBomCode || ''}">
${hardwareProjectProductInfoList.map((ele) => {
return `<option value="${ele.productCode}" ${ele.productCode == data.productBomCode ? 'selected' : ''}>${ele.productCode}</option>`
}).join('')
}
</select></td>
<td class="layui-form"><select name="hardwareProjectProductInfoList[${length}].model" required class="form-control model" lay-search="" lay-filter="productModel2" value="${data.model || ''}">
${hardwareProjectProductInfoList.map((ele) => {
return `<option value="${ele.model}" ${ele.model == data.model ? 'selected' : ''}>${ele.model}</option>`
}).join('')
}
</select></td>
<td><input class="form-control productBomCode" type="text" onclick="selectProduct('2','软件产品',this)" name="hardwareProjectProductInfoList[${length}].productBomCode" value="${data.productBomCode || ''}"></td>
<td><input class="form-control model" type="text" onclick="selectProduct('2','软件产品',this)" name="hardwareProjectProductInfoList[${length}].model" value="${data.model || ''}"></td>
<td><textarea name="hardwareProjectProductInfoList[${length}].productDesc" required class="form-control productDesc" placeholder="自动带入" readonly>${data.productDesc || ''}</textarea></td>
<td><input value="${data.quantity || ''}" name="hardwareProjectProductInfoList[${length}].quantity" type="number" class="form-control quantity" step="1" required></td>
<td><input value="${data.cataloguePrice || ''}" name="hardwareProjectProductInfoList[${length}].cataloguePrice" type="text" class="form-control cataloguePrice" required></td>
@ -698,20 +676,8 @@ ${hardwareProjectProductInfoList.map((ele) => {
let tr = $(`
<tr>
<td class="indexBox">${length + 1}</td>
<td class="layui-form"><input type="hidden" name="maintenanceProjectProductInfoList[${length}].id" value="${data.id || ''}"><select name="maintenanceProjectProductInfoList[${length}].productBomCode" required class="form-control productBomCode" lay-search="" lay-filter="productCode3" value="${data.productBomCode || ''}">
${maintenanceProjectProductInfoList.map((ele) => {
return `<option value="${ele.productCode}" ${ele.productCode == data.productBomCode ? 'selected' : ''}>${ele.productCode}</option>`
}).join('')
}
</select></td>
<td class="layui-form"><select name="maintenanceProjectProductInfoList[${length}].model" required class="form-control model" lay-search="" lay-filter="productModel3">
${maintenanceProjectProductInfoList.map((ele) => {
return `<option value="${ele.model}" ${ele.model == data.model ? 'selected' : ''}>${ele.model}</option>`
}).join('')
}
</select></td>
<td> <input type="hidden" name="maintenanceProjectProductInfoList[${length}].id" value="${data.id || ''}"><input class="form-control productBomCode" type="text" onclick="selectProduct('11,22','服务产品',this)" value="${data.productBomCode || ''}" name="maintenanceProjectProductInfoList[${length}].productBomCode" value="${data.productBomCode || ''}"></td>
<td><input class="form-control model" type="text" onclick="selectProduct('11,22','服务产品',this)" value="${data.model || ''}" name="maintenanceProjectProductInfoList[${length}].model" value="${data.model || ''}"></td>
<td><textarea name="maintenanceProjectProductInfoList[${length}].productDesc" required class="form-control productDesc" placeholder="自动带入" readonly>${data.productDesc || ''}</textarea></td>
<td><input name="maintenanceProjectProductInfoList[${length}].quantity" type="number" class="form-control quantity" step="1" required value="${data.quantity || ''}" ></td>
<td><input value="${data.cataloguePrice || ''}" name="maintenanceProjectProductInfoList[${length}].cataloguePrice" type="text" class="form-control cataloguePrice" required></td>
@ -744,32 +710,6 @@ ${maintenanceProjectProductInfoList.map((ele) => {
}
function initSearchProduct() {
layui.use(function () {
var form = layui.form
form.render()
form.on('select(productCode1)', function (data) {
searchProduct(data.value, 'code', data.elem)
})
form.on('select(productCode2)', function (data) {
searchProduct(data.value, 'code', data.elem)
})
form.on('select(productCode3)', function (data) {
searchProduct(data.value, 'code', data.elem)
})
form.on('select(productModel1)', function (data) {
searchProduct(data.value, 'model', data.elem)
})
form.on('select(productModel2)', function (data) {
searchProduct(data.value, 'model', data.elem)
})
form.on('select(productModel3)', function (data) {
searchProduct(data.value, 'model', data.elem)
})
$('.layui-input').on('mouseout', function () {
$(this).blur()
})
})
$('.productTable .delRow').on('click', function () {
let ele = $(this)
$.modal.confirm('是否确认删除', function () {
@ -788,34 +728,7 @@ ${maintenanceProjectProductInfoList.map((ele) => {
})
}
function searchProduct(val, type, ele) {
let selectObj = {}
let listName = $(ele).attr('name')
if (type == 'code') {
if (listName.indexOf('softwareProjectProductInfoList') > -1) {
selectObj = softwareProjectProductInfoList.find((ele) => ele.productCode == val)
} else if (listName.indexOf('hardwareProjectProductInfoList') > -1) {
selectObj = hardwareProjectProductInfoList.find((ele) => ele.productCode == val)
} else if (listName.indexOf('maintenanceProjectProductInfoList') > -1) {
selectObj = maintenanceProjectProductInfoList.find((ele) => ele.productCode == val)
}
$(ele).parent().parent().find('.model+div').find('.layui-input').val(selectObj.model)
$(ele).parent().parent().find('.model').val(selectObj.model)
} else {
if (listName.indexOf('softwareProjectProductInfoList') > -1) {
selectObj = softwareProjectProductInfoList.find((ele) => ele.model == val)
} else if (listName.indexOf('hardwareProjectProductInfoList') > -1) {
selectObj = hardwareProjectProductInfoList.find((ele) => ele.model == val)
} else if (listName.indexOf('maintenanceProjectProductInfoList') > -1) {
selectObj = maintenanceProjectProductInfoList.find((ele) => ele.model == val)
}
$(ele).parent().parent().find('.productBomCode+div').find('.layui-input').val(selectObj.model)
$(ele).parent().parent().find('.productBomCode').val(selectObj.productCode)
}
$(ele).parent().parent().find('.productDesc').val(selectObj.description)
}
function initPrice() {
function initPrice() {
$('.productTable .quantity').on('input', function () {
let num = $(this).val()
let priceVal = $(this).parent().parent().find('.price').val()
@ -1009,6 +922,29 @@ ${
submitHandler()
})
}
function selectProduct(type, name, ele) {
var url = prefix + "/selectProduct";
window.localStorage.setItem('procuctType', type)
var options = {
title: '选择' + name,
width: "800",
height: '600',
url: url,
callBack: (index, layero) => {
doSubmitProduct(index, layero, ele)
}
};
$.modal.openOptions(options);
}
function doSubmitProduct(index, layero, ele) {
var rows = layero.find("iframe")[0].contentWindow.getSelections();
$(ele).parent().parent().find('.productBomCode').val(rows[0].productCode)
$(ele).parent().parent().find('.model').val(rows[0].model)
$(ele).parent().parent().find('.productDesc').val(rows[0].description)
$.modal.close(index);
}
</script>
</body>
</html>

View File

@ -0,0 +1,90 @@
<!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>
<style>
.select-list li {
display: inline-block;
}
.select-list li label {
width: 88px !important;
}
</style>
<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="productCode"/>
<input type="hidden" name="type"/>
</li>
<li>
<label>产品型号:</label>
<input type="text" name="model"/>
</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="col-sm-12 select-table table-striped">
<table id="bootstrap-table"></table>
</div>
</div>
</div>
<th:block th:include="include :: footer"/>
<script>
var prefix = ctx + "system/product";
$(function () {
$('[name="type"]').val(window.localStorage.getItem('procuctType'))
var options = {
url: prefix + "/list",
showSearch: true,
showColumns: false,
showToggle: false,
showPageGo: true,
showRefresh: false,
search: false,
columns: [{
radio: true
},
{
field: 'productCode',
title: '产品名称'
},
{
field: 'model',
title: '产品型号'
},
{
field: 'description',
title: '描述'
},
]
};
$.table.init(options);
});
function getSelections() {
var rows = $('#bootstrap-table').bootstrapTable('getSelections');
return rows;
}
</script>
</body>
</html>

View File

@ -81,8 +81,8 @@
title: '最终客户'
},
{
field: '生成订单',
title: 'canGenerate',
field: 'canGenerate',
title: '生成订单',
formatter:(value,row)=>{
return value?`未生成`:'已生成'
}

View File

@ -60,6 +60,11 @@ public class ProjectInfoController extends BaseController
{
return prefix + "/selectAgent";
}
@GetMapping("selectProduct")
public String selectProduct()
{
return prefix + "/selectProduct";
}
/**

View File

@ -226,4 +226,9 @@ public class ProjectOrderInfoController extends BaseController
{
return prefix + "/selectPeople";
}
@GetMapping("selectProduct")
public String selectProduct()
{
return prefix + "/selectProduct";
}
}