excel导入
This commit is contained in:
parent
34d9779d2f
commit
b66170e9a9
@ -73,6 +73,7 @@
|
|||||||
|
|
||||||
table.render({
|
table.render({
|
||||||
elem: '#FigureNumberList',
|
elem: '#FigureNumberList',
|
||||||
|
height: 600,
|
||||||
url: apiUrl + '/api/services/app/FigureNumber/GetAllFigureNumber',
|
url: apiUrl + '/api/services/app/FigureNumber/GetAllFigureNumber',
|
||||||
parseData: function (res) { //res 即为原始返回的数据
|
parseData: function (res) { //res 即为原始返回的数据
|
||||||
return {
|
return {
|
||||||
@ -96,9 +97,9 @@
|
|||||||
field: 'figureNum', //排序字段,对应 cols 设定的各字段名
|
field: 'figureNum', //排序字段,对应 cols 设定的各字段名
|
||||||
type: 'asc' //排序方式 asc: 升序、desc: 降序、null: 默认排序
|
type: 'asc' //排序方式 asc: 升序、desc: 降序、null: 默认排序
|
||||||
},
|
},
|
||||||
limits: [10, 15, 20, 25, 50, 100],
|
page: false,
|
||||||
limit: 15,
|
limit: 15,
|
||||||
page: true,
|
limits: [10, 15, 20, 25, 50, 100],
|
||||||
skin: 'line'
|
skin: 'line'
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -291,29 +292,60 @@
|
|||||||
excel.importExcel(files, {
|
excel.importExcel(files, {
|
||||||
// 读取数据的同时梳理数据
|
// 读取数据的同时梳理数据
|
||||||
fields: {
|
fields: {
|
||||||
'id': 'A',
|
'figureNum': 'A',
|
||||||
'username': 'B',
|
'remark': 'B',
|
||||||
'experience': 'C',
|
|
||||||
'sex': 'D',
|
|
||||||
'score': 'E',
|
|
||||||
'city': 'F',
|
|
||||||
'classify': 'G',
|
|
||||||
'wealth': 'H',
|
|
||||||
'sign': 'I'
|
|
||||||
}
|
}
|
||||||
}, function (data) {
|
}, function (data) {
|
||||||
alert(11)
|
var dataArr = data[0].Sheet1;
|
||||||
// 如果不需要展示直接上传,可以再次 $.ajax() 将JSON数据通过 JSON.stringify() 处理后传递到后端即可
|
//获取前端页面整个表格数据
|
||||||
// layer.open({
|
var tableData = layui.table.cache["FigureNumberList"];
|
||||||
// title: '文件转换结果'
|
if (tableData.length > 0) {
|
||||||
// , area: ['800px', '400px']
|
for (let index = 0; index < tableData.length; index++) {
|
||||||
// , tipsMore: true
|
var tableFigureNum = tableData[index].figureNum;
|
||||||
// , content: laytpl($('#LAY-excel-export-ans').html()).render({ data: data, files: files })
|
for (let dataindex = 1; dataindex < dataArr.length; dataindex++) {
|
||||||
// , success: function () {
|
var figureNum = dataArr[dataindex].figureNum;
|
||||||
// element.render('tab')
|
if (figureNum == tableFigureNum) {
|
||||||
// layui.code({})
|
layer.alert("导入的图号编码:" + figureNum + " 与已有的图号编码重复,请修改!");
|
||||||
// }
|
return false;
|
||||||
// })
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//校验无误,保存导入的数据
|
||||||
|
for (let index = 1; index < dataArr.length; index++) {
|
||||||
|
var CurrUserInfo = layui.sessionData('CurrUserInfo');
|
||||||
|
var figureNum = dataArr[index].figureNum.toString();
|
||||||
|
if (figureNum.length == 1) {
|
||||||
|
figureNum = '0' + figureNum;
|
||||||
|
}
|
||||||
|
$.ajax({
|
||||||
|
url: apiUrl + "/api/services/app/FigureNumber/CreateFigureNumber", //请求的url地址
|
||||||
|
dataType: "json", //返回格式为json
|
||||||
|
//async: false,//请求是否异步,默认为异步,这也是ajax重要特性
|
||||||
|
contentType: 'application/json',
|
||||||
|
data: JSON.stringify({
|
||||||
|
figureNum: figureNum,
|
||||||
|
remark: dataArr[index].remark,
|
||||||
|
createTime: getDatetime(),
|
||||||
|
createUserID: CurrUserInfo.data.userid,
|
||||||
|
createUserName: CurrUserInfo.data.userName,
|
||||||
|
isDelete: 0
|
||||||
|
}), //参数值
|
||||||
|
type: "POST", //请求方式
|
||||||
|
success: function (req) {
|
||||||
|
//请求成功时处理
|
||||||
|
|
||||||
|
},
|
||||||
|
error: function () {
|
||||||
|
/*错误信息处理*/
|
||||||
|
layer.msg("保存失败,请重试!");
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
layer.msg('导入成功', { time: 1000 }, function () {
|
||||||
|
table.reload('FigureNumberList');
|
||||||
|
});
|
||||||
})
|
})
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
layer.alert(e.message)
|
layer.alert(e.message)
|
||||||
|
@ -45,6 +45,7 @@
|
|||||||
<div class="layui-btn-container">
|
<div class="layui-btn-container">
|
||||||
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"> 添加 </button>
|
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"> 添加 </button>
|
||||||
<button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除 </button>
|
<button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除 </button>
|
||||||
|
<button type="button" id="LAY-excel-upload" class="layui-btn layui-btn-sm"><i class="layui-icon"></i>导入</button>
|
||||||
</div>
|
</div>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@ -58,17 +59,21 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script src="../../../lib/layui-v2.5.5/layui.js" charset="utf-8"></script>
|
<script src="../../../lib/layui-v2.5.5/layui.js" charset="utf-8"></script>
|
||||||
|
<script src="../../../js/lay-config.js" charset="utf-8"></script>
|
||||||
<script src="../../../js/PublicParameters/PublicParameters.js" charset="utf-8"></script>
|
<script src="../../../js/PublicParameters/PublicParameters.js" charset="utf-8"></script>
|
||||||
<script>
|
<script>
|
||||||
layui.use(['form', 'table'], function () {
|
layui.use(['form', 'table', 'excel', 'upload'], function () {
|
||||||
var $ = layui.jquery,
|
var $ = layui.jquery,
|
||||||
form = layui.form,
|
form = layui.form,
|
||||||
table = layui.table;
|
table = layui.table,
|
||||||
|
excel = layui.excel,
|
||||||
|
upload = layui.upload;
|
||||||
|
|
||||||
var apiUrl = GetWebApiUrl();
|
var apiUrl = GetWebApiUrl();
|
||||||
|
|
||||||
table.render({
|
table.render({
|
||||||
elem: '#MaterialNumberList',
|
elem: '#MaterialNumberList',
|
||||||
|
height: 600,
|
||||||
url: apiUrl + '/api/services/app/MaterialNumber/GetAllMaterialNumber',
|
url: apiUrl + '/api/services/app/MaterialNumber/GetAllMaterialNumber',
|
||||||
parseData: function (res) { //res 即为原始返回的数据
|
parseData: function (res) { //res 即为原始返回的数据
|
||||||
return {
|
return {
|
||||||
@ -92,12 +97,32 @@
|
|||||||
field: 'materialNum', //排序字段,对应 cols 设定的各字段名
|
field: 'materialNum', //排序字段,对应 cols 设定的各字段名
|
||||||
type: 'asc' //排序方式 asc: 升序、desc: 降序、null: 默认排序
|
type: 'asc' //排序方式 asc: 升序、desc: 降序、null: 默认排序
|
||||||
},
|
},
|
||||||
limits: [10, 15, 20, 25, 50, 100],
|
page: false,
|
||||||
limit: 15,
|
limit: 15,
|
||||||
page: true,
|
limits: [10, 15, 20, 25, 50, 100],
|
||||||
skin: 'line'
|
skin: 'line'
|
||||||
});
|
});
|
||||||
|
|
||||||
|
upload.render({
|
||||||
|
elem: '#LAY-excel-upload', //绑定元素
|
||||||
|
url: '/upload/', //上传接口(PS:这里不用传递整个 excel)
|
||||||
|
auto: false, //选择文件后不自动上传
|
||||||
|
accept: 'file',
|
||||||
|
choose: function (obj) {// 选择文件回调
|
||||||
|
var files = obj.pushFile()
|
||||||
|
var fileArr = Object.values(files)// 注意这里的数据需要是数组,所以需要转换一下
|
||||||
|
|
||||||
|
// 用完就清理掉,避免多次选中相同文件时出现问题
|
||||||
|
for (var index in files) {
|
||||||
|
if (files.hasOwnProperty(index)) {
|
||||||
|
delete files[index]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$('#LAY-excel-upload').next().val('');
|
||||||
|
uploadExcel(fileArr) // 如果只需要最新选择的文件,可以这样写: uploadExcel([files.pop()])
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// 监听搜索操作
|
// 监听搜索操作
|
||||||
form.on('submit(data-search-btn)', function (data) {
|
form.on('submit(data-search-btn)', function (data) {
|
||||||
var result = JSON.stringify(data.field);
|
var result = JSON.stringify(data.field);
|
||||||
@ -261,6 +286,71 @@
|
|||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function uploadExcel(files) {
|
||||||
|
try {
|
||||||
|
excel.importExcel(files, {
|
||||||
|
// 读取数据的同时梳理数据
|
||||||
|
fields: {
|
||||||
|
'materialNum': 'A',
|
||||||
|
'remark': 'B',
|
||||||
|
}
|
||||||
|
}, function (data) {
|
||||||
|
var dataArr = data[0].Sheet1;
|
||||||
|
//获取前端页面整个表格数据
|
||||||
|
var tableData = layui.table.cache["MaterialNumberList"];
|
||||||
|
if (tableData.length > 0) {
|
||||||
|
for (let index = 0; index < tableData.length; index++) {
|
||||||
|
var tableMaterialNum = tableData[index].materialNum;
|
||||||
|
for (let dataindex = 1; dataindex < dataArr.length; dataindex++) {
|
||||||
|
var materialNum = dataArr[dataindex].materialNum;
|
||||||
|
if (materialNum == tableMaterialNum) {
|
||||||
|
layer.alert("导入的物料特征码:" + materialNum + " 与已有的物料特征码重复,请修改!");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//校验无误,保存导入的数据
|
||||||
|
for (let index = 1; index < dataArr.length; index++) {
|
||||||
|
var CurrUserInfo = layui.sessionData('CurrUserInfo');
|
||||||
|
var materialNum = dataArr[index].materialNum.toString();
|
||||||
|
if (materialNum.length == 1) {
|
||||||
|
materialNum = '0' + materialNum;
|
||||||
|
}
|
||||||
|
$.ajax({
|
||||||
|
url: apiUrl + "/api/services/app/MaterialNumber/CreateMaterialNumber", //请求的url地址
|
||||||
|
dataType: "json", //返回格式为json
|
||||||
|
//async: false,//请求是否异步,默认为异步,这也是ajax重要特性
|
||||||
|
contentType: 'application/json',
|
||||||
|
data: JSON.stringify({
|
||||||
|
materialNum: materialNum,
|
||||||
|
remark: dataArr[index].remark,
|
||||||
|
createTime: getDatetime(),
|
||||||
|
createUserID: CurrUserInfo.data.userid,
|
||||||
|
createUserName: CurrUserInfo.data.userName,
|
||||||
|
isDelete: 0
|
||||||
|
}), //参数值
|
||||||
|
type: "POST", //请求方式
|
||||||
|
success: function (req) {
|
||||||
|
//请求成功时处理
|
||||||
|
|
||||||
|
},
|
||||||
|
error: function () {
|
||||||
|
/*错误信息处理*/
|
||||||
|
layer.msg("保存失败,请重试!");
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
layer.msg('导入成功', { time: 1000 }, function () {
|
||||||
|
table.reload('MaterialNumberList');
|
||||||
|
});
|
||||||
|
})
|
||||||
|
} catch (e) {
|
||||||
|
layer.alert(e.message)
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
@ -45,6 +45,7 @@
|
|||||||
<div class="layui-btn-container">
|
<div class="layui-btn-container">
|
||||||
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"> 添加 </button>
|
<button class="layui-btn layui-btn-normal layui-btn-sm data-add-btn" lay-event="add"> 添加 </button>
|
||||||
<button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除 </button>
|
<button class="layui-btn layui-btn-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除 </button>
|
||||||
|
<button type="button" id="LAY-excel-upload" class="layui-btn layui-btn-sm"><i class="layui-icon"></i>导入</button>
|
||||||
</div>
|
</div>
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
@ -58,17 +59,21 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<script src="../../../lib/layui-v2.5.5/layui.js" charset="utf-8"></script>
|
<script src="../../../lib/layui-v2.5.5/layui.js" charset="utf-8"></script>
|
||||||
|
<script src="../../../js/lay-config.js" charset="utf-8"></script>
|
||||||
<script src="../../../js/PublicParameters/PublicParameters.js" charset="utf-8"></script>
|
<script src="../../../js/PublicParameters/PublicParameters.js" charset="utf-8"></script>
|
||||||
<script>
|
<script>
|
||||||
layui.use(['form', 'table'], function () {
|
layui.use(['form', 'table', 'excel', 'upload'], function () {
|
||||||
var $ = layui.jquery,
|
var $ = layui.jquery,
|
||||||
form = layui.form,
|
form = layui.form,
|
||||||
table = layui.table;
|
table = layui.table,
|
||||||
|
excel = layui.excel,
|
||||||
|
upload = layui.upload;
|
||||||
|
|
||||||
var apiUrl = GetWebApiUrl();
|
var apiUrl = GetWebApiUrl();
|
||||||
|
|
||||||
table.render({
|
table.render({
|
||||||
elem: '#ProductNumberList',
|
elem: '#ProductNumberList',
|
||||||
|
height: 600,
|
||||||
url: apiUrl + '/api/services/app/ProductNumber/GetAllProductNumber',
|
url: apiUrl + '/api/services/app/ProductNumber/GetAllProductNumber',
|
||||||
parseData: function (res) { //res 即为原始返回的数据
|
parseData: function (res) { //res 即为原始返回的数据
|
||||||
return {
|
return {
|
||||||
@ -92,12 +97,32 @@
|
|||||||
field: 'productNum', //排序字段,对应 cols 设定的各字段名
|
field: 'productNum', //排序字段,对应 cols 设定的各字段名
|
||||||
type: 'asc' //排序方式 asc: 升序、desc: 降序、null: 默认排序
|
type: 'asc' //排序方式 asc: 升序、desc: 降序、null: 默认排序
|
||||||
},
|
},
|
||||||
limits: [10, 15, 20, 25, 50, 100],
|
page: false,
|
||||||
limit: 15,
|
limit: 15,
|
||||||
page: true,
|
limits: [10, 15, 20, 25, 50, 100],
|
||||||
skin: 'line'
|
skin: 'line'
|
||||||
});
|
});
|
||||||
|
|
||||||
|
upload.render({
|
||||||
|
elem: '#LAY-excel-upload', //绑定元素
|
||||||
|
url: '/upload/', //上传接口(PS:这里不用传递整个 excel)
|
||||||
|
auto: false, //选择文件后不自动上传
|
||||||
|
accept: 'file',
|
||||||
|
choose: function (obj) {// 选择文件回调
|
||||||
|
var files = obj.pushFile()
|
||||||
|
var fileArr = Object.values(files)// 注意这里的数据需要是数组,所以需要转换一下
|
||||||
|
|
||||||
|
// 用完就清理掉,避免多次选中相同文件时出现问题
|
||||||
|
for (var index in files) {
|
||||||
|
if (files.hasOwnProperty(index)) {
|
||||||
|
delete files[index]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$('#LAY-excel-upload').next().val('');
|
||||||
|
uploadExcel(fileArr) // 如果只需要最新选择的文件,可以这样写: uploadExcel([files.pop()])
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
// 监听搜索操作
|
// 监听搜索操作
|
||||||
form.on('submit(data-search-btn)', function (data) {
|
form.on('submit(data-search-btn)', function (data) {
|
||||||
var result = JSON.stringify(data.field);
|
var result = JSON.stringify(data.field);
|
||||||
@ -261,6 +286,71 @@
|
|||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function uploadExcel(files) {
|
||||||
|
try {
|
||||||
|
excel.importExcel(files, {
|
||||||
|
// 读取数据的同时梳理数据
|
||||||
|
fields: {
|
||||||
|
'productNum': 'A',
|
||||||
|
'remark': 'B',
|
||||||
|
}
|
||||||
|
}, function (data) {
|
||||||
|
var dataArr = data[0].Sheet1;
|
||||||
|
//获取前端页面整个表格数据
|
||||||
|
var tableData = layui.table.cache["ProductNumberList"];
|
||||||
|
if (tableData.length > 0) {
|
||||||
|
for (let index = 0; index < tableData.length; index++) {
|
||||||
|
var tableProductNum = tableData[index].productNum;
|
||||||
|
for (let dataindex = 1; dataindex < dataArr.length; dataindex++) {
|
||||||
|
var productNum = dataArr[dataindex].productNum;
|
||||||
|
if (productNum == tableProductNum) {
|
||||||
|
layer.alert("导入的产品编码:" + productNum + " 与已有的产品编码重复,请修改!");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//校验无误,保存导入的数据
|
||||||
|
for (let index = 1; index < dataArr.length; index++) {
|
||||||
|
var CurrUserInfo = layui.sessionData('CurrUserInfo');
|
||||||
|
var productNum = dataArr[index].productNum.toString();
|
||||||
|
if (productNum.length == 1) {
|
||||||
|
productNum = '0' + productNum;
|
||||||
|
}
|
||||||
|
$.ajax({
|
||||||
|
url: apiUrl + "/api/services/app/ProductNumber/CreateProductNumber", //请求的url地址
|
||||||
|
dataType: "json", //返回格式为json
|
||||||
|
//async: false,//请求是否异步,默认为异步,这也是ajax重要特性
|
||||||
|
contentType: 'application/json',
|
||||||
|
data: JSON.stringify({
|
||||||
|
productNum: productNum,
|
||||||
|
remark: dataArr[index].remark,
|
||||||
|
createTime: getDatetime(),
|
||||||
|
createUserID: CurrUserInfo.data.userid,
|
||||||
|
createUserName: CurrUserInfo.data.userName,
|
||||||
|
isDelete: 0
|
||||||
|
}), //参数值
|
||||||
|
type: "POST", //请求方式
|
||||||
|
success: function (req) {
|
||||||
|
//请求成功时处理
|
||||||
|
|
||||||
|
},
|
||||||
|
error: function () {
|
||||||
|
/*错误信息处理*/
|
||||||
|
layer.msg("保存失败,请重试!");
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
layer.msg('导入成功', { time: 1000 }, function () {
|
||||||
|
table.reload('ProductNumberList');
|
||||||
|
});
|
||||||
|
})
|
||||||
|
} catch (e) {
|
||||||
|
layer.alert(e.message)
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user