2021-11-08 00:59:55 +08:00

664 lines
36 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>layui</title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<link rel="stylesheet" href="../../../lib/layui-v2.5.5/css/layui.css" media="all">
<link rel="stylesheet" href="../../../css/public.css" media="all">
</head>
<body>
<div class="layuimini-container" style="width: 80%; float: left;">
<div class="layuimini-main">
<fieldset class="table-search-fieldset">
<legend>搜索信息</legend>
<div style="margin: 0">
<form class="layui-form layui-form-pane" action="">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">图纸编号</label>
<div class="layui-input-inline">
<input type="text" name="FileNum" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label">图纸名称</label>
<div class="layui-input-inline">
<input type="text" name="FileName" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-inline">
<button type="submit" class="layui-btn layui-btn-primary" lay-submit
lay-filter="data-search-btn"><i class="layui-icon"></i> 搜 索</button>
</div>
</div>
</form>
</div>
</fieldset>
<script type="text/html" id="toolbar">
<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-sm layui-btn-danger data-delete-btn" lay-event="delete"> 删除 </button>
<button type="button" id="LAY-excel-download" class="layui-btn layui-btn-sm" lay-event="download"><i class="layui-icon">&#xe601;</i></button>
<button type="button" id="LAY-excel-upload" class="layui-btn layui-btn-sm"><i class="layui-icon">&#xe67c;</i></button>
</div>
</script>
<table class="layui-hide" id="GalleryFilesList" lay-filter="currentTableFilter"></table>
<script type="text/html" id="currentTableBar">
<a class="layui-btn layui-btn-normal layui-btn-xs data-count-edit" lay-event="edit">编辑</a>
<a class="layui-btn layui-btn-xs layui-btn-danger data-count-delete" lay-event="delete">删除</a>
</script>
</div>
</div>
<div style="width: 19%; float: right;">
<img id="PicPre" style="width: 100%; height: 100%;" src="../../../images/de.jpg">
</div>
<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>
layui.use(['form', 'table', 'upload', 'excel'], function () {
var $ = layui.jquery,
form = layui.form,
table = layui.table,
excel = layui.excel,
upload = layui.upload;;
var apiUrl = GetWebApiUrl();
var listUrl = apiUrl + '/api/services/app/GalleryFiles/GetAllGalleryFiles';
var ProjectID = getQueryString('ProjectID');
if (ProjectID != '') {
listUrl += '?ProjectID=' + ProjectID;
}
table.render({
elem: '#GalleryFilesList',
url: listUrl,
parseData: function (res) { //res 即为原始返回的数据
return {
"code": res.result.code, //解析接口状态
"msg": res.result.msg, //解析提示文本
"count": res.result.count, //解析数据长度
"data": res.result.data //解析数据列表
};
},
toolbar: '#toolbar',
defaultToolbar: ['filter', 'exports'],
cols: [[
{ type: "checkbox", width: 50 },
{ type: "numbers", title: '序号', width: 30 },
{ field: 'id', hide: true, width: 300, title: 'ID' },
{ field: 'createTime', hide: true, width: 200, title: '创建时间' },
{ field: 'fileNum', width: 170, title: '图样编号', sort: true, align: "center" },
{ field: 'patternType', width: 150, title: '图样类型', sort: true, align: "center", templet: '#patternType' },
{ field: 'fileName', width: 250, title: '图样名称', align: "left" },
{ field: 'pictureFrame', width: 80, title: '图幅', sort: true, align: "center" },
{ field: 'isAnnex', width: 110, title: '图纸查看', align: "center", templet: '#isAnnex' },
{ field: 'isCard', width: 110, title: '检验卡片', align: "center", templet: '#isCard' },
{ field: 'isPic', width: 110, title: '预览', align: "center", templet: '#isPic' },
{ field: 'annex_id', hide: true, width: 110, title: '图纸ID', align: "center" },
{ field: 'annex_url', hide: true, width: 110, title: '图纸URL', align: "center" },
{ field: 'card_id', hide: true, width: 110, title: '卡片ID', align: "center" },
{ field: 'card_url', hide: true, width: 110, title: '卡片URL', align: "center" },
{ field: 'pic_id', hide: true, width: 110, title: '预览图ID', align: "center" },
{ field: 'pic_url', hide: true, width: 110, title: '预览图URL', align: "center" },
{ field: 'remark', width: 300, title: '备注', sort: true, align: "left" },
{ title: '操作', width: 200, toolbar: '#currentTableBar', align: "center" }
]],
initSort: {
field: 'createTime', //排序字段,对应 cols 设定的各字段名
type: 'desc' //排序方式 asc: 升序、desc: 降序、null: 默认排序
},
limits: [10, 15, 20, 25, 50, 100],
limit: 15,
page: true,
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) {
var result = JSON.stringify(data.field);
//执行搜索重载
table.reload('GalleryFilesList', {
page: {
curr: 1
}
, where: {
FileNum: data.field.FileNum,
FileName: data.field.FileName,
}
}, 'data');
return false;
});
/**
* toolbar监听事件
*/
table.on('toolbar(currentTableFilter)', function (obj) {
if (obj.event === 'add') { // 监听添加操作
var ProjectID = getQueryString('ProjectID');
var ProjectCode = getQueryString('ProjectCode');
var index = layer.open({
title: '新增',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['95%', '95%'],
content: 'addPattern.html?ProjectID=' + ProjectID + '&ProjectCode=' + ProjectCode,
});
$(window).on("resize", function () {
layer.full(index);
});
} else if (obj.event === 'delete') { // 监听删除操作
var checkStatus = table.checkStatus('GalleryFilesList'),
data = checkStatus.data;
if (data.length == 0) {
layer.alert('请选择至少一个图纸编号!');
return false;
}
delGalleryFiles(data);
return false;
}
else if (obj.event === 'download') { // 监听删除操作
var url = 'http://192.168.3.112:21021/TemplateFiles/图样管理批量导入模板.xlsx';
window.location.href = url;
}
});
//监听表格复选框选择
table.on('checkbox(currentTableFilter)', function (obj) {
console.log(obj)
});
table.on('tool(currentTableFilter)', function (obj) {
var data = obj.data;
if (obj.event === 'edit') {
var ProjectID = getQueryString('ProjectID');
var ProjectCode = getQueryString('ProjectCode');
var PatternID = data.id;
var index = layer.open({
title: '编辑',
type: 2,
shade: 0.2,
maxmin: true,
shadeClose: true,
area: ['95%', '95%'],
content: 'editPattern.html?ProjectID=' + ProjectID + '&ProjectCode=' + ProjectCode + '&PatternID=' + PatternID,
});
$(window).on("resize", function () {
layer.full(index);
});
return false;
} else if (obj.event === 'delete') {
delSingleGalleryFiles(data);
return false;
}
});
//批量删除用户
function delGalleryFiles(data) {
//弹出确认弹窗
layer.confirm('确认删除吗?', function () {
var apiUrl = GetWebApiUrl();
var CurrUserInfo = layui.sessionData('CurrUserInfo');
//删除所选的图纸编号信息更新isdelete字段为1
for (let index = 0; index < data.length; index++) {
$.ajax({
url: apiUrl + "/api/services/app/GalleryFiles/UpdateDelStateGalleryFiles", //请求的url地址
dataType: "json", //返回格式为json
//async: false,//请求是否异步默认为异步这也是ajax重要特性
contentType: 'application/json',
data: JSON.stringify({
id: data[index].id,
updateUserID: CurrUserInfo.data.userid,
updateUserName: CurrUserInfo.data.userName,
isDelete: 1,
}), //参数值
type: "PUT", //请求方式
success: function (req) {
if (req.result.code == 1) {
//请求成功时处理
layer.msg('删除成功', { time: 1000 }, function () {
window.location.reload();
});
}
else {
/*错误信息处理*/
layer.alert("图纸编号:" + data[index].fileNum + " 删除失败,请重试!");
return false;
}
},
error: function () {
/*错误信息处理*/
layer.alert("图纸编号:" + data[index].fileNum + " 删除失败,请重试!");
return false;
},
});
}
return false;
});
}
//删除单个用户
function delSingleGalleryFiles(data) {
//弹出确认弹窗
layer.confirm('确认删除吗?', function () {
//删除所选的图纸编号信息更新isdelete字段为1
var apiUrl = GetWebApiUrl();
var CurrUserInfo = layui.sessionData('CurrUserInfo');
$.ajax({
url: apiUrl + "/api/services/app/GalleryFiles/UpdateDelStateGalleryFiles", //请求的url地址
dataType: "json", //返回格式为json
//async: false,//请求是否异步默认为异步这也是ajax重要特性
contentType: 'application/json',
data: JSON.stringify({
id: data.id,
updateUserID: CurrUserInfo.data.userid,
updateUserName: CurrUserInfo.data.userName,
isDelete: 1,
}), //参数值
type: "PUT", //请求方式
success: function (req) {
if (req.result.code == 1) {
//请求成功时处理
layer.msg('删除成功', { time: 1000 }, function () {
window.location.reload();
});
}
else {
/*错误信息处理*/
layer.alert("图纸编号:" + data.fileNum + " 删除失败,请重试!");
return false;
}
},
error: function () {
/*错误信息处理*/
layer.alert("图纸编号:" + data.fileNum + " 删除失败,请重试!");
return false;
},
});
return false;
});
}
function uploadExcel(files) {
try {
excel.importExcel(files, {
// 读取数据的同时梳理数据
fields: {
'number': 'C',
'projectcode': 'F',
'patterntype': 'G',
'signaturecode': 'H',
'subcode': 'I',
'filename': 'J',
'pictureframe': 'K',
'remark': 'L',
}
}, function (data) {
var dataArr = data[0].Sheet1;
//数据校验
if (dataArr.length > 1) {
//从2开始避过标题和说明列
for (let index = 2; index < dataArr.length; index++) {
//校验项目编号是否存在
if (dataArr[index].projectcode != '' && dataArr[index].projectcode != undefined && dataArr[index].projectcode != null) {
//获取所有项目编号
$.ajax({
url: apiUrl + '/api/services/app/Project/GetProjectParams', //请求的url地址
dataType: "json", //返回格式为json
async: false,//请求是否异步默认为异步这也是ajax重要特性
data: {}, //参数值
type: 'GET', //请求方式
success: function (req) {
//请求成功时处理
var isHave = 0;
for (let x = 0; x < req.result.arrData.length; x++) {
if (req.result.arrData[x].code == dataArr[index].projectcode) {
isHave = 1;
}
}
if (isHave == 0) {
layer.msg("序号:" + dataArr[index].number + " 的数据,项目编号不存在,请检查!");
return false;
}
},
});
}
else {
layer.msg("序号:" + dataArr[index].number + " 的数据,项目编号为空,请检查!");
return false;
}
if (dataArr[index].patterntype != 0 && dataArr[index].patterntype != 2 && dataArr[index].patterntype != 5 && dataArr[index].patterntype != 6 && dataArr[index].patterntype != 8) {
//图样类型
layer.msg("序号:" + dataArr[index].number + " 的数据,图样类型有误,请检查!");
return false;
}
if (dataArr[index].patterntype == 5 || dataArr[index].patterntype == 6 || dataArr[index].patterntype == 8) {
//特征码
if (dataArr[index].signaturecode == '' || dataArr[index].signaturecode == null || dataArr[index].signaturecode == undefined) {
layer.msg("序号:" + dataArr[index].number + " 的数据,特征码不能为空,请检查!");
return false;
}
//特征码不为空,根据不同的图样类型与数据库进行比对
var url = "";
if (dataArr[index].patterntype == 5) {
url = "/api/services/app/MaterialNumber/GetAllMaterialNumber";
}
else if (dataArr[index].patterntype == 6) {
url = "/api/services/app/MarketableNumber/GetAllMarketableNumber";
}
else if (dataArr[index].patterntype == 8) {
url = "/api/services/app/PartNumber/GetAllPartNumber";
}
//给下拉框赋值 特征号
$.ajax({
url: apiUrl + url, //请求的url地址
dataType: "json", //返回格式为json
async: false,//请求是否异步默认为异步这也是ajax重要特性
data: {}, //参数值
type: "GET", //请求方式
success: function (req) {
//请求成功时处理
var isHave = 0;
$.each(req.result.data, function (index, item) {
var code = '';
if (dataArr[index].patterntype == 5) {
code = item.materialNum;
}
else if (dataArr[index].patterntype == 6) {
code = item.marketableNum;
}
else if (dataArr[index].patterntype == 8) {
code = item.partNum;
}
if (dataArr[index].signaturecode == code) {
isHave = 1;
}
});
if (isHave == 0) {
layer.msg("序号:" + dataArr[index].number + " 的数据,特征码不存在,请检查!");
return false;
}
for (let z = 0; z < req.result.data.length; z++) {
var name = req.result.data[index].remark;
var code = '';
if (dataArr[index].patterntype == 5) {
code = req.result.data[index].materialNum;
}
else if (dataArr[index].patterntype == 6) {
code = req.result.data[index].marketableNum;
}
else if (dataArr[index].patterntype == 8) {
code = req.result.data[index].partNum;
}
if (code == dataArr[index].signaturecode) {
if (name != dataArr[index].filename) {
layer.msg("序号:" + dataArr[index].number + " 的数据当图样类型为5,6,8时图样名称只能为特征码对应的名称请检查");
return false;
}
}
}
}
});
}
else if (dataArr[index].patterntype == 0 || dataArr[index].patterntype == 2) {
if (dataArr[index].filename == '' || dataArr[index].filename == undefined || dataArr[index].filename == null) {
layer.msg("序号:" + dataArr[index].number + " 的数据,图样名称不能为空,请检查!");
return false;
}
else {
if (dataArr[index].patterntype == 0) {
if (dataArr[index].filename.indexOf('原理图') == -1) {
layer.msg("序号:" + dataArr[index].number + " 的数据图样类型为0时图样名称必须为原理图请检查");
return false;
}
}
}
if (dataArr[index].signaturecode != '' || dataArr[index].signaturecode != null || dataArr[index].signaturecode != undefined) {
layer.msg("序号:" + dataArr[index].number + " 的数据,特征码不需要填写,请检查!");
return false;
}
}
if (dataArr[index].subcode != '' && dataArr[index].subcode != null && dataArr[index].subcode != undefined) {
//附加尾号
var pattern = /^[1-9]\d*$/;//非零的正整数
if (pattern.test(dataArr[index].subcode) == false) {
layer.msg("序号:" + dataArr[index].number + " 的数据,附加尾号有误,请检查!");
return false;
}
else if (parseInt(dataArr[index].subcode) < 1 || parseInt(dataArr[index].subcode) > 999) {
layer.msg("序号:" + dataArr[index].number + " 的数据附加尾号的值为1-999之间的整数请检查");
return false;
}
}
if (dataArr[index].pictureframe != '' && dataArr[index].pictureframe != null && dataArr[index].pictureframe != undefined) {
//图幅
if (dataArr[index].pictureframe != 'A1' && dataArr[index].pictureframe != 'A2' && dataArr[index].pictureframe != 'A3' && dataArr[index].pictureframe != 'A4') {
layer.msg("序号:" + dataArr[index].number + " 的数据,图幅有误,请检查!");
return false;
}
}
}
}
else {
layer.msg("导入的Excel没有数据请检查");
return false;
}
//校验无误,保存导入的数据
for (let index = 2; index < dataArr.length; index++) {
var CurrUserInfo = layui.sessionData('CurrUserInfo');
var order = '';
$.ajax({
url: apiUrl + '/api/services/app/GalleryFiles/GetGalleryFilesTypeCount', //请求的url地址
dataType: "json", //返回格式为json
//async: false,//请求是否异步默认为异步这也是ajax重要特性
data: { Type: dataArr[index].patterntype + dataArr[index].projectcode }, //参数值
type: "GET", //请求方式
success: function (req) {
//请求成功时处理
if (!isNaN(parseInt(req.result.count))) {
var count = parseInt(req.result.count) + 1;
count = count + '';
if (count.length == 1) {
order = '00' + count;
}
else if (count.length == 2) {
order = '0' + count;
}
else {
order = count + '';
}
}
else {
layer.msg("获取序列号无效,请检查!");
return false;
}
},
error: function () {
/*错误信息处理*/
layer.msg("获取序列号失败,请重试!");
return false;
},
});
var FileNumber = getFileNumber(dataArr[index].patterntype, dataArr[index].projectcode, dataArr[index].signaturecode, order, dataArr[index].subcode);
var PID = '';
$.ajax({
url: apiUrl + '/api/services/app/Project/GetProjectParams', //请求的url地址
dataType: "json", //返回格式为json
async: false,//请求是否异步默认为异步这也是ajax重要特性
data: {}, //参数值
type: 'GET', //请求方式
success: function (req) {
//请求成功时处理
for (let x = 0; x < req.result.arrData.length; x++) {
if (req.result.arrData[x].code == dataArr[index].projectcode) {
PID = req.result.arrData[x].id;
}
}
},
});
$.ajax({
url: apiUrl + "/api/services/app/GalleryFiles/CreateGalleryFiles", //请求的url地址
dataType: "json", //返回格式为json
//async: false,//请求是否异步默认为异步这也是ajax重要特性
contentType: 'application/json',
data: JSON.stringify({
projectID: PID,
projectCode: dataArr[index].projectcode,
patternType: dataArr[index].patterntype,
fileNum: FileNumber,
subCode: dataArr[index].subcode,
fileName: dataArr[index].filename,
pictureFrame: dataArr[index].pictureframe,
remark: dataArr[index].remark,
isAnnex: 0,
isCard: 0,
isPic: 0,
isDelete: 0,
createTime: getDatetime(),
createUserID: CurrUserInfo.data.userid,
createUserName: CurrUserInfo.data.userName
}), //参数值
type: "POST", //请求方式
success: function (req) {
//请求成功时处理
},
error: function () {
/*错误信息处理*/
layer.msg("导入失败,请重试!");
return false;
},
});
}
layer.msg('导入成功', { time: 1000 }, function () {
table.reload('GalleryFilesList');
});
})
} catch (e) {
layer.alert(e.message)
}
}
//创建编号
function getFileNumber(patterntype, projectcode, signaturecode, order, subcode) {
//文件编号
var fileNum = '';
if (patterntype == 5 || patterntype == 6 || patterntype == 8) {
fileNum = patterntype + projectcode + '-' + signaturecode + '-' + order;
}
else {
fileNum = patterntype + projectcode + order;
}
if (subcode != '' && subcode != undefined && subcode != null) {
fileNum += '-' + '1~' + subcode;
}
return fileNum;
}
});
function openFiles(Url) {
Url = apiUrl + Url;
// var index = layer.open({
// title: '查看',
// type: 2,
// shade: 0.2,
// maxmin: true,
// shadeClose: true,
// area: ['95%', '95%'],
// content: Url
// });
window.open(Url);
}
function PreFiles(Url) {
Url = apiUrl + Url;
var obj = document.getElementById('PicPre');
obj.src = Url;
//obj.src = "../../../images/bg.jpg";
}
</script>
<script type="text/html" id="patternType">
{{# if(d.patternType ==0 ){ }}
<span>原理图</span>
{{# } else if(d.patternType ==2 ){ }}
<span>总装图号</span>
{{# } else if(d.patternType ==5 ){ }}
<span>部件</span>
{{# } else if(d.patternType ==6 ){ }}
<span>可销售部件</span>
{{# } else if(d.patternType ==8 ){ }}
<span>零件</span>
{{# } }}
</script>
<script type="text/html" id="isAnnex">
{{# if(d.isAnnex ==0 ){ }}
<span>未上传</span>
{{# } else { }}
<a href="#" id="openFiles" class="layui-table-link" style='text-decoration:underline;' onclick="openFiles('{{d.annex_url}}');">查看</a>
{{# } }}
</script>
<script type="text/html" id="isCard">
{{# if(d.isCard ==0 ){ }}
<span>未上传</span>
{{# } else { }}
<a href="#" id="openFiles" class="layui-table-link" style='text-decoration:underline;' onclick="openFiles('{{d.card_url}}');">查看</a>
{{# } }}
</script>
<script type="text/html" id="isPic">
{{# if(d.isPic ==0 ){ }}
<span>未上传</span>
{{# } else { }}
<a href="#" id="PreFiles" class="layui-table-link" style='text-decoration:underline;' onclick="PreFiles('{{d.pic_url}}');">查看</a>
{{# } }}
</script>
</body>
</html>