<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>新增批次</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"> <meta name="apple-mobile-web-app-status-bar-style" content="black"> <meta name="apple-mobile-web-app-capable" content="yes"> <meta name="format-detection" content="telephone=no"> <link rel="stylesheet" type="text/css" href="../../layui/css/layui.css" /> <link rel="stylesheet" type="text/css" href="../../css/common.css" /> <link rel="stylesheet" type="text/css" href="../../css/inputTags.css" /> <style type="text/css"> .ui-required:before { content: "*"; color: red; vertical-align: middle; } #roleSelectViwe .layui-form-item { margin-bottom: 0 } #roleSelectViwe .layui-input-inline { width: calc(100% - 110px); margin-right: 0; } .region { padding-left: 10px; height: 38px; line-height: 38px; background-color: #fff; border-radius: 2px; border: 1px solid #e6e6e6; width: calc(100% - 132px) !important; } .userTip { color: #666; font-size: 12px; } .userTip b { color: #333; } .my-middle { line-height: 36px; } .my-button { width: 60%; margin-left: 20%; height: 40px; text-align: center; line-height: 40px; border: 1px dashed; border-radius: 5px; } .my-inline { display: inline-block; float: left; text-align: center; height: 38px; line-height: 38px; width: 10%; } .my-images-inline { display: inline-block; width: 104px; height: 104px; border: 1px dashed; border-radius: 5px; padding: 4px; vertical-align: top; margin: 4px; } .my-img { width: 100%; height: 100%; } .my-images-add { display: inline-block; text-align: center; line-height: 103px; font-size: 32px; cursor: pointer; background-color: #fbfbfb; } .my-del { background-color: black; color: white; } .button-delImage.button-delAssayImage { position: relative; left: -2px; top: -106px; } </style> </head> <body> <form class="layui-form" action="" lay-filter="addForm"> <div class="layui-tab layui-tab-brief" lay-filter="docDemoTabBrief"> <ul class="layui-tab-title"> <li class="layui-this" lay-id="1">基础信息</li> <li lay-id="2">原料生产</li> <li lay-id="3">加工流通</li> <li lay-id="4">检疫检验</li> </ul> <div class="layui-tab-content"> <div class="layui-tab-item layui-show"> <div class="layui-form-item"> <label class="layui-form-label ui-required">产品名称</label> <div class="layui-input-block my-middle" id="goodsName"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label ui-required">批次编码</label> <div class="layui-input-block"> <input type="text" name="goodsBatchNo" lay-verify="required" maxlength="20" placeholder="请输入批次编码" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label ui-required">产品规格</label> <div class="layui-input-block"> <input type="text" name="goodsUnit" lay-verify="required" maxlength="20" placeholder="请输入产品规格" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label ui-required">生产地</label> <div class="layui-input-block"> <select name="fkFieldGuid" lay-verify="required" lay-filter="roles" id="rolesView"></select> </div> </div> <div class="layui-form-item"> <label class="layui-form-label ui-required">生产日期</label> <div class="layui-input-block"> <input type="text" name="productDateStr" id="goodsProductDate" lay-verify="required" maxlength="20" placeholder="请输入生产日期" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label ui-required">保质期</label> <div class="layui-input-block"> <input type="text" name="goodsExpired" lay-verify="" maxlength="10" placeholder="请输入保质期" autocomplete="off" class="layui-input"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label ui-required">产品标签</label> <div class="layui-input-block"> <div class="tags" id="tags"> <input type="text" id="inputTags" placeholder="回车生成标签" autocomplete="off"> </div> </div> </div> <!-- <div class="layui-form-item"> <label class="layui-form-label">销售网址</label> <div class="layui-input-block"> <input type="text" name="goodsSaleUrl" lay-verify="" maxlength="300" placeholder="请输入在线销售网址" autocomplete="off" class="layui-input"> </div> </div> --> <div class="layui-card"> <div class="layui-card-header">自定义信息</div> <div class="layui-card-body"> <div id="auxListDiv"></div> <div class="layui-form-item"> <div class="my-button my-button-product">+添加</div> </div> </div> </div> <div class="layui-card"> <div class="layui-card-header">产品图片</div> <div class="layui-card-body"> <div id="imageListDiv"></div> 图片视频上传完毕后请记得按保存哦 </div> </div> </div> <div class="layui-tab-item"> <div class="layui-card"> <div class="layui-card-header">原料信息</div> <div class="layui-card-body"> <div style="display: flex;"> <input class="layui-input" style="margin-right: 15px;" type="text" name="rawMaterial" /> <button type="button" class="layui-btn" id="rawMaterialInfoAdd">新增</button> </div> <style type="text/css"> #rawMaterialInfo li { display: inline-block; border: 1px solid rgba(0, 0, 0, .2); background: rgba(0, 0, 0, .1); border-radius: .2em; padding: .3em .6em; margin: 8px; } #rawMaterialInfo li i:hover { cursor: pointer; } </style> <script type="text/html" id='rawMaterialInfoTpl'> {{# layui.each(d,function(i,item){ }} <li> <div style="display: flex;align-items: center;"> <span>{{item.inputsProcessName}}</span> <i data-bind="{{i||0}}" class="layui-icon layui-icon-close" style="margin-left: 5px;"></i> </div> </li> {{# });}} </script> <ol id="rawMaterialInfo"></ol> </div> </div> <div class="layui-card"> <div class="layui-card-header">生产过程信息</div> <div class="layui-card-body"> <div id="produceProcessInfoForm"> <div class="layui-input-inline"> <label class="layui-form-label">执行项</label> <div class="layui-input-inline"> <input class="layui-input" style="margin-right: 15px;" type="text" name="processItem" /> </div> </div> <div class="layui-input-inline"> <label class="layui-form-label">执行人</label> <div class="layui-input-inline"> <input class="layui-input" style="margin-right: 15px;" type="text" name="processUser" /> </div> </div> <div class="layui-input-inline"> <label class="layui-form-label">开始日期</label> <div class="layui-input-inline"> <input class="layui-input" style="margin-right: 15px;" type="text" name="processTime" id="produceProcessInfoForm_processTime" /> </div> </div> <div class="layui-input-inline"> <label class="layui-form-label">执行描述</label> <div class="layui-input-inline"> <input class="layui-input" style="margin-right: 15px;" type="text" name="processDesc" /> </div> </div> <input type="hidden" name="processType" value="1" /> <button type="button" class="layui-btn" id='produceProcessInfoAdd'>新增</button> <table class="layui-hide" id="produceProcessInfo" lay-filter="produceProcessInfo"></table> </div> </div> </div> </div> <div class="layui-tab-item" id="processingCirculationInfoForm"> <div class="layui-input-inline"> <label class="layui-form-label">执行项</label> <div class="layui-input-inline"> <input class="layui-input" style="margin-right: 15px;" type="text" name="processItem" /> </div> </div> <div class="layui-input-inline"> <label class="layui-form-label">执行人</label> <div class="layui-input-inline"> <input class="layui-input" style="margin-right: 15px;" type="text" name="processUser" /> </div> </div> <div class="layui-input-inline"> <label class="layui-form-label">开始日期</label> <div class="layui-input-inline"> <input class="layui-input" style="margin-right: 15px;" type="text" name="processTime" id="processingCirculationInfoForm_processTime" /> </div> </div> <div class="layui-input-inline"> <label class="layui-form-label">执行描述</label> <div class="layui-input-inline"> <input class="layui-input" style="margin-right: 15px;" type="text" name="processDesc" /> </div> </div> <input type="hidden" name="processType" value="2" /> <button type="button" class="layui-btn" id='processingCirculationInfoAdd'>新增</button> <table class="layui-hide" id="processingCirculationInfo" lay-filter="processingCirculationInfo"></table> </div> <div class="layui-tab-item"> <div class="layui-card"> <div class="layui-card-header">检验信息</div> <div class="layui-card-body"> <div class="layui-form-item"> <label class="layui-form-label">检验单位:</label> <div class="layui-input-block"> <input type="text" name="assayDepartment" lay-verify="" maxlength="10" placeholder="请输入检验单位" autocomplete="off" class="layui-input"> </div> </div> <div id="assayAuxListDiv"></div> <div class="layui-form-item"> <div class="my-button my-button-assay">+添加</div> </div> </div> </div> <div class="layui-card"> <div class="layui-card-header">检验报告</div> <div class="layui-card-body"> <div id="assayImageListDiv"></div> 图片视频上传完毕后请记得按保存哦 </div> </div> </div> </div> <div class="layui-form-item" style="text-align: center;padding: 25px;"> <button class="layui-btn" lay-submit lay-filter="formDemo">保存</button> <button type="reset" class="layui-btn layui-btn-primary close-win">取消</button> </div> </div> </form> <script type="text/html" id="typeHtmlTpl"> <option value="">请选择</option> {{# if(!d.list){d.list = []}; layui.each(d.list, function(index, item){ }} <option value="{{item.guid}}" oneMap="{{item.oneMap}}">{{item.fieldName}}</option> {{# }); }} </script> <script type="text/html" id="auxHtmlTpl"> {{# if(!d.list){d.list = []}; layui.each(d.list, function(index, item){ }} <div class="layui-form-item"> <label class="layui-form-label">自定义项{{index+1}}:</label> <div class="my-inline" style="width: 20%"> <input type="text" name="auxItme" maxlength="20" lay-verify="required" placeholder="标题" autocomplete="off" class="layui-input" value="{{item.auxItme}}"> </div> <div class="my-inline">--</div> <div class="my-inline" style="width: 40%"> <input type="text" name="auxItmeVal" maxlength="100" lay-verify="required" placeholder="项" autocomplete="off" class="layui-input" value="{{item.auxItmeVal}}"> </div> <div class="my-inline"> <i class="layui-icon my-del button-delAux" data-bind="{{index}}" title="删除" data-icon="ဆ">ဆ</i> </div> </div> {{# }); }} </script> <script type="text/html" id="imageHtmlTpl"> <div class="layui-form-item"> {{# if(!d.list){d.list = []}; layui.each(d.list, function(index, item){ }} <div class="my-images-inline"> {{#if ("jpg|jpeg|png|bmp".indexOf(item.substring(item.lastIndexOf(".")+1))==-1){}} <video class="my-img" src="{{window.hywa.config.href}}/{{item}}" autoplay loop></video> {{#}else{}} <img class="my-img" src="{{window.hywa.config.href}}/{{item}}"> {{#} }} <i class="layui-icon my-del button-delImage" data-bind="{{index}}" title="删除" data-icon="ဆ">ဆ</i> </div> {{# }); }} <div class="my-images-inline my-images-add" id="imageUploadBtn">+</div> </div> </script> <script type="text/html" id="assayAuxHtmlTpl"> {{# if(!d.list){d.list = []}; layui.each(d.list, function(index, item){ }} <div class="layui-form-item"> <label class="layui-form-label">{{#if(index==0){}}检验数据:{{#} }}</label> <div class="my-inline" style="width: 20%"> <input type="text" name="auxItme2" maxlength="20" placeholder="检验项名" autocomplete="off" class="layui-input" value="{{item.auxItme}}"> </div> <div class="my-inline">--</div> <div class="my-inline" style="width: 40%"> <input type="text" name="auxItmeVal2" maxlength="100" placeholder="数值和单位" autocomplete="off" class="layui-input" value="{{item.auxItmeVal}}"> </div> <div class="my-inline"> <i class="layui-icon my-del button-delAssay" data-bind="{{index}}" title="删除" data-icon="ဆ">ဆ</i> </div> </div> {{# }); }} </script> <script type="text/html" id="assayImageHtmlTpl"> <div class="layui-form-item"> {{# if(!d.list){d.list = []}; layui.each(d.list, function(index, item){ }} <div class="my-images-inline"> {{#if ("jpg|jpeg|png|bmp".indexOf(item.substring(item.lastIndexOf(".")+1))==-1){}} <video class="my-img" src="{{window.hywa.config.href}}/{{item}}" autoplay loop></video> {{#}else{}} <img class="my-img" src="{{window.hywa.config.href}}/{{item}}"> {{#} }} <i class="layui-icon my-del button-delAssayImage" data-bind="{{index}}" title="删除" data-icon="ဆ">ဆ</i> </div> {{# }); }} <div class="my-images-inline my-images-add" id="assayImageUploadBtn">+</div> </div> </script> <script type="text/javascript"> function loadJS(url) { document.write("<script src='" + url + "?ver=" + new Date().getTime() + "'><\/script>") } loadJS("../../layui/layui.js"); loadJS("../../js/ajaxhook.min.js"); loadJS("../../js/config.js"); </script> <script type="text/javascript"> layui.config({ base: "../../js/layuiPlugins/" }).use(["form", 'layer', 'laytpl', 'jquery', 'laydate', 'element', 'upload', 'table', 'inputTags'], function () { var form = layui.form, layer = layui.layer, laytpl = layui.laytpl, $ = layui.jquery, laydate = layui.laydate, element = layui.element, upload = layui.upload, inputTags = layui.inputTags table = layui.table; laydate.render({ elem: '#goodsProductDate' //指定元素 }); laydate.render({ type: 'datetime', elem: '#produceProcessInfoForm_processTime' //指定元素 }); laydate.render({ type: 'datetime', elem: '#processingCirculationInfoForm_processTime' //指定元素 }); var funcName = "pdinfo"; var rolesViewOnemapParam = ""; var formData = { guid: (JSON.stringify(location.searchObj()) != "{}") ? location.searchObj().guid || null : null, //带参传入ID current: { auxList: [], imagesList: [], assayInfoForm: { imagesList: [], auxList: [] } }, //当前表单数据 select_data: "select_" + funcName, //查询用户 save_data: (location.searchObj().guid ? 'edit' : 'add') + '_' + funcName, //查询用户 formLayFilter: "addForm", //表单容器 closeModal: function () { //关闭当前窗口 parent.layer.close(parent.layer.getFrameIndex(window.name)); } }; var option = { elem: '#imageUploadBtn', url: 'uploadImage', accept: "file", exts: "jpg|jpeg|png|bmp|mp4|ogg|webm", size: 10240, //kb before: function () { uploadMsg = layer.msg('正在上传中……', { icon: 16, fixed: false, time: 0 }); }, done: function (res) { layer.close(uploadMsg); formData.current.imagesList.push(res.data[0]); imageTpl({ elem: "#imageListDiv", list: formData.current.imagesList }); }, error: function () { } }; var assayOption = { elem: '#assayImageUploadBtn', url: 'uploadImage', accept: "file", exts: "jpg|jpeg|png|bmp|mp4|ogg|webm", size: 10240, //kb before: function () { uploadMsg = layer.msg('正在上传中……', { icon: 16, fixed: false, time: 0 }); }, done: function (res) { layer.close(uploadMsg); formData.current.assayInfoForm.imagesList.push(res.data[0]); assayImageTpl({ elem: "#assayImageListDiv", list: formData.current.assayInfoForm.imagesList }); }, error: function () { } }; //自定义项列表模板 function auxTpl(obj) { laytpl(auxHtmlTpl.innerHTML).render(obj, function (html) { $(obj.elem).html(html); $(".button-delAux").on("click", function (e) { var sortno = e.target.getAttribute("data-bind"); for (var i = formData.current.auxList.length - 1; i >= 0; i--) { if ($("input[name='auxItme']")[i]) { formData.current.auxList[i].auxItme = $("input[name='auxItme']")[i].value; formData.current.auxList[i].auxItmeVal = $("input[name='auxItmeVal']")[i].value; } } formData.current.auxList.splice(sortno, 1); auxTpl({ elem: "#auxListDiv", list: formData.current.auxList }); }); }); } //检验数据列表模板 function assayTpl(obj) { laytpl(assayAuxHtmlTpl.innerHTML).render(obj, function (html) { $(obj.elem).html(html); $(".button-delAssay").on("click", function (e) { var sortno = e.target.getAttribute("data-bind"); var index = formData.current.assayInfoForm.auxList.length; for (var i = index - 1; i >= 0; i--) { if ($("input[name='auxItme2']")[i]) { formData.current.assayInfoForm.auxList[i].auxItme = $("input[name='auxItme2']")[i].value; formData.current.assayInfoForm.auxList[i].auxItmeVal = $("input[name='auxItmeVal2']")[i].value; } } formData.current.assayInfoForm.auxList.splice(sortno, 1); assayTpl({ elem: "#assayAuxListDiv", list: formData.current.assayInfoForm.auxList }); }); }); } //下拉列表模板 function typeTpl(obj) { laytpl(typeHtmlTpl.innerHTML).render(obj, function (html) { $(obj.elem).html(html); form.render(); }); } //图片列表模板 function imageTpl(obj) { laytpl(imageHtmlTpl.innerHTML).render(obj, function (html) { $(obj.elem).html(html); upload.render(option); $(".button-delImage").on("click", function (e) { formData.current.imagesList.splice(e.target.getAttribute("data-bind"), 1); imageTpl({ elem: "#imageListDiv", list: formData.current.imagesList }); }); }); } //检验图片列表模板 function assayImageTpl(obj) { laytpl(assayImageHtmlTpl.innerHTML).render(obj, function (html) { $(obj.elem).html(html); upload.render(assayOption); $(".button-delAssayImage").on("click", function (e) { formData.current.assayInfoForm.imagesList.splice(e.target.getAttribute("data-bind"), 1); assayImageTpl({ elem: "#assayImageListDiv", list: formData.current.assayInfoForm.imagesList }); }); }); } //原料信息模板 function rawMaterial(data) { laytpl(rawMaterialInfoTpl.innerHTML).render(data, function (html) { $('#rawMaterialInfo').html(html); }); } $('#rawMaterialInfo').on("click", 'li i', function (e) { //删除 if (formData.guid) { $.ajax({ url: 'del_rawMaterialInfo', data: { guid: formData.current.inputsFormList[e.target.getAttribute("data-bind")].guid }, success: function (res) { } }); } formData.current.inputsFormList.splice(e.target.getAttribute("data-bind"), 1); rawMaterial(formData.current.inputsFormList); }); $("#rawMaterialInfoAdd").on('click', function () { let val = $('input[name="rawMaterial"]').val(); if (val) { formData.current.inputsFormList = formData.current.inputsFormList || []; formData.current.inputsFormList.push({ inputsProcessName: val }); rawMaterial(formData.current.inputsFormList); if (formData.guid) { formData.submitInfo('add_rawMaterialInfo', { fkGoodsBatchGuid: formData.guid, inputsProcessName: val }, function () { formData.getCurrent(); }); } } }); //生产过程信息 formData.current.materialList = formData.current.materialList || []; //编号 for (let i in formData.current.materialList) { formData.current.materialList[i].index = i; } let produceProcessInfoOptions = { id: "produceProcessInfo", elem: '#produceProcessInfo', data: formData.current.materialList, cols: [ [{ field: 'processItem', title: '执行项', edit: 'text', event: 'edit', align: 'center' }, { field: 'processTime', title: '开始时间', edit: 'time', align: 'center', event: 'edit' }, { field: 'processUser', title: '执行人', edit: 'text', align: 'center', event: 'edit' }, { field: 'processDesc', title: '执行描述', edit: 'text', align: 'center', event: 'edit' }, { field: 'processImgs', title: '上传过程照片', // toolbar: `<div><a href="javascript:void(0);" lay-event="processImgsPreview">{{d.processImgs || ''}}</a></div>`, toolbar: `<div> <a class="layui-btn layui-btn-xs" lay-event="upload">上传</a> <a target="_blank" href="{{window.hywa.config.href}}/{{d.processImgs || ''}}" lay-event="aHref">{{d.processImgs || ''}}</a> </div>`, align: 'center' }, { title: '操作', toolbar: `<div> <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a> </div>`, align: 'center' }] ], page: true }; let produceProcessInfoTable = table.render(produceProcessInfoOptions); //监听工具条 table.on('tool(produceProcessInfo)', function (obj) { var data = obj.data; if (obj.event === 'detail') { layer.msg('ID:' + data.id + ' 的查看操作'); } else if (obj.event === 'del') { debugger; layer.confirm('真的删除行么', function (index) { obj.del(); formData.current.materialList.map(function (item, index) { item.index == obj.data.index && formData.current.materialList.splice(index, 1); }); produceProcessInfoOptions.data = formData.current.materialList; // 刷新表格数据 produceProcessInfoTable.reload(produceProcessInfoOptions); if (formData.guid) { $.ajax({ url: 'del_produceProcessInfo', data: { guid: data.guid }, success: function (res) { } }); } layer.close(index); }); } else if (obj.event === 'upload') { let upelem = document.createElement('input'), uploadMsg = 0; upload.render({ elem: upelem, //绑定元素 url: 'uploadImage', accept: "file", exts: "jpg|jpeg|png|bmp|avi|mp4|wma|rmvb|rm|3gp|flv|mp3", size: 10240, before: function () { uploadMsg = layer.msg('正在上传中……', { icon: 16, fixed: false, time: 0 }); }, done: function (res) { layer.close(uploadMsg); if (!(res.code - 0)) { let a = obj.tr[0].querySelector('a[lay-event="aHref"]'); a.href = window.hywa.config.href + '/' + res.data[0]; a.innerHTML = res.data[0]; let ggObj = {}; formData.current.materialList.map(function (item, index) { if (item.index == obj.data.index) { formData.current.materialList[index].processImgs = res.data[0]; ggObj = formData.current.materialList[index]; } }); if (formData.guid) { formData.submitInfo('edit_produceProcessInfo', ggObj, function () { formData.getCurrent(); }); } } }, error: function () { } }); upelem.click(); } else if (obj.event === 'processImgsPreview') { let imageSrc = ((obj.data || {}).processImgs || ''); if (imageSrc.indexOf("downloadDocument") != -1) { imageSrc = imageSrc; } else { imageSrc = window.hywa.config.href + imageSrc; } let processImgsPreviewDialog = '<div class="dialog-role f-dsn" id="processImgsPreviewDialog"><div style="text-align: center"><img id="processImgsPreviewDialogimg" src="' + imageSrc + '" style="width: 550px; height: 520px; margin: 10px;" /></div></div>'; layer.open({ type: 1, title: "图片预览", fixed: true, area: ['600px', '600px'], shadeClose: true, scrollbar: false, content: processImgsPreviewDialog }); } else { return; } }); table.on('edit(produceProcessInfo)', function (obj) { //修改后响应 let ggObj = {}; formData.current.materialList.map(function (item, index) { if (item.index == obj.data.index) { formData.current.materialList[index] = obj.data; ggObj = formData.current.materialList[index]; } }); if (formData.guid) { formData.submitInfo('edit_produceProcessInfo', ggObj, function () { formData.getCurrent(); }); } }); //监听新增 $('#produceProcessInfoAdd').on('click', function () { let input = $("#produceProcessInfoForm")[0].querySelectorAll('input'); let obj = {}; let ver = []; layui.each(input, function (i, item) { if (item.name) { obj[item.name] = item.value; ver.push(item.value); } }); for (let i = 0; i < ver.length; i++) { if (!ver[i]) { layer.msg("全部都需要填写噢", { icon: 2 }); return false; } } if (formData.guid) { obj.fkGoodsBatchGuid = formData.guid; formData.submitInfo('add_produceProcessInfo', obj, function () { formData.getCurrent(); }); } formData.current.materialList.push(obj); //编号 for (let i in formData.current.materialList) { formData.current.materialList[i].index = i; } table.reload("produceProcessInfo", { data: formData.current.materialList }); }); //加工流通 formData.current.productList = formData.current.productList || []; //编号 for (let i in formData.current.productList) { formData.current.productList[i].index = i; } table.render({ id: "processingCirculationInfo", elem: '#processingCirculationInfo', data: formData.current.productList, cols: [ [{ field: 'processItem', title: '执行项', edit: 'text', event: 'edit', align: 'center' }, { field: 'processTime', title: '开始时间', edit: 'time', align: 'center', event: 'edit' }, { field: 'processUser', title: '执行人', edit: 'text', align: 'center', event: 'edit' }, { field: 'processDesc', title: '执行描述', edit: 'text', align: 'center', event: 'edit' }, { field: 'processImgs', title: '上传过程照片', toolbar: `<div> <a class="layui-btn layui-btn-xs" lay-event="upload">上传</a> <a target="_blank" href="{{window.hywa.config.href}}/{{d.processImgs || ''}}" lay-event="aHref">{{d.processImgs || ''}}</a> </div>`, align: 'center' }, { title: '操作', toolbar: `<div> <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a> </div>`, align: 'center' }] ], page: true }); //监听工具条 table.on('tool(processingCirculationInfo)', function (obj) { var data = obj.data; if (obj.event === 'detail') { layer.msg('ID:' + data.id + ' 的查看操作'); } else if (obj.event === 'del') { layer.confirm('真的删除行么', function (index) { obj.del(); formData.current.productList.map(function (item, index) { item.index == obj.data.index && formData.current.productList.splice(index, 1); }); if (formData.guid) { $.ajax({ url: 'del_processingCirculationInfo', data: { guid: data.guid }, success: function (res) { } }); } layer.close(index); }); } else if (obj.event === 'upload') { let upelem = document.createElement('input'), uploadMsg = 0; upload.render({ elem: upelem, //绑定元素 url: 'uploadImage', accept: "file", exts: "jpg|jpeg|png|bmp|avi|mp4|wma|rmvb|rm|3gp|flv|mp3", size: 10240, before: function () { uploadMsg = layer.msg('正在上传中……', { icon: 16, fixed: false, time: 0 }); }, done: function (res) { layer.close(uploadMsg); if (!(res.code - 0)) { let a = obj.tr[0].querySelector('a[lay-event="aHref"]'); a.href = window.hywa.config.href + '/' + res.data[0]; a.innerHTML = res.data[0]; let ggObj = {}; formData.current.productList.map(function (item, index) { if (item.index == obj.data.index) { formData.current.productList[index].processImgs = res.data[0]; ggObj = formData.current.productList[index]; } }); if (formData.guid) { formData.submitInfo('edit_processingCirculationInfo', ggObj, function () { formData.getCurrent(); }); } } }, error: function () { } }); upelem.click(); } }); table.on('edit(processingCirculationInfo)', function (obj) { //修改后响应 let ggObj = {}; formData.current.productList.map(function (item, index) { if (item.index == obj.data.index) { formData.current.productList[index] = obj.data; ggObj = formData.current.productList[index]; } }); if (formData.guid) { formData.submitInfo('edit_processingCirculationInfo', ggObj, function () { formData.getCurrent(); }); } }); //监听新增 $('#processingCirculationInfoAdd').on('click', function () { let input = $("#processingCirculationInfoForm")[0].querySelectorAll('input'); let obj = {}; let ver = []; layui.each(input, function (i, item) { if (item.name) { obj[item.name] = item.value; ver.push(item.value); } }); for (let i = 0; i < ver.length; i++) { if (!ver[i]) { layer.msg("全部都需要填写噢", { icon: 2 }); return false; } } if (formData.guid) { obj.fkGoodsBatchGuid = formData.guid; formData.submitInfo('add_processingCirculationInfo', obj, function () { formData.getCurrent(); }); } formData.current.productList.push(obj); //编号 for (let i in formData.current.productList) { formData.current.productList[i].index = i; } table.reload("processingCirculationInfo", { data: formData.current.productList }); }); //初始化 formData.main = function () { var _this = this; $("#goodsName").html(location.searchObj().pdName); this.current.fkGoodsGuid = location.searchObj().pid; this.current.goodsName = location.searchObj().pdName; $.ajax({ url: "regionList", method: 'post', contentType: "application/json", data: JSON.stringify({ page: 1, limit: 100 }), success: function (res) { typeTpl({ elem: "#rolesView", list: res.data }); form.val(_this.formLayFilter, _this.current); } }); if (this.guid) { _this.getCurrent(_this.guid); //获取并初始化表单角色信息 } else { _this.initialization(); imageTpl({ elem: "#imageListDiv", list: _this.current.imagesList }); assayImageTpl({ elem: "#assayImageListDiv", list: _this.current.assayInfoForm.imagesList }); } if (location.searchObj().event == "view") { var el = document.getElementsByTagName("INPUT"); for (var i = 0; i < el.length; i++) { el[i].readOnly = true; } el = document.getElementsByTagName("SELECT"); for (var i = 0; i < el.length; i++) { el[i].disabled = true; } el = document.getElementsByTagName("checkbox"); for (var i = 0; i < el.length; i++) { el[i].disabled = true; } el = document.getElementsByTagName("button"); for (var i = 0; i < el.length; i++) { if (el[i].innerText.replace(" ", "") == "保存") { el[i].style.display = "none"; } } } return this; }; //初始化 formData.initialization = function () { //标签初始化 let labelList = formData.current.labelList; let productTags = [] if (labelList) { for (let i = 0; i < labelList.length; i++) { productTags.push(labelList[i].labelName) } } var _this = this; //监听提交 form.on('submit(formDemo)', function (obj) { //必须return false; return _this.fusionData(obj.field).submitInfo(); //获取选中权限变数组,提交变化===下拉 }); //关闭窗口 $(".close-win").on("click", function () { _this.closeModal(); }); $(".my-button-product").on("click", function () { _this.current.auxList.push({ i: _this.current.auxList.length + 1, auxItme: "", auxItmeVal: "" }); //数据库里把item写成itme for (var i = _this.current.auxList.length - 1; i >= 0; i--) { if ($("input[name='auxItme']")[i]) { _this.current.auxList[i].auxItme = $("input[name='auxItme']")[i].value; _this.current.auxList[i].auxItmeVal = $("input[name='auxItmeVal']")[i].value; } } auxTpl({ elem: "#auxListDiv", list: _this.current.auxList }); }); $(".my-button-assay").on("click", function () { _this.current.assayInfoForm.auxList.push({ i: _this.current.assayInfoForm.auxList.length + 1, auxItme: "", auxItmeVal: "" }); //数据库里把item写成itme for (var i = _this.current.assayInfoForm.auxList.length - 1; i >= 0; i--) { if ($("input[name='auxItme2']")[i]) { _this.current.assayInfoForm.auxList[i].auxItme = $("input[name='auxItme2']")[i].value; _this.current.assayInfoForm.auxList[i].auxItmeVal = $("input[name='auxItmeVal2']")[i].value; } } assayTpl({ elem: "#assayAuxListDiv", list: _this.current.assayInfoForm.auxList }); }); inputTags.render({ elem: '#inputTags',//定义输入框input对象 content: productTags,//默认标签 aldaBtn: true,//是否开启获取所有数据的按钮 done: function (value) { //回车后的回调 formData.current.labelNames = value.toString(); }, del: function (value) { formData.current.labelNames = value.toString(); } }) return _this; }; //获取当前信息 formData.getCurrent = function (id) { var _this = this; $.ajax({ url: this.select_data, method: 'get', data: { guid: id || this.guid //当前ID }, success: function (res) { try { res.data[0].productDateStr = res.data[0].goodsProductDate.substring(0, 10); if (!res.data[0].auxList) res.data[0].auxList = []; if (!res.data[0].imagesList) res.data[0].imagesList = []; if (!res.data[0].assayInfoForm) res.data[0].assayInfoForm = {}; if (!res.data[0].assayInfoForm.auxList) res.data[0].assayInfoForm.auxList = []; if (!res.data[0].assayInfoForm.imagesList) res.data[0].assayInfoForm.imagesList = []; res.data[0].assayDepartment = res.data[0].assayInfoForm.assayDepartment; } catch (e) { //TODO handle the exception } $("#goodsName").html(res.data[0].goodsName); _this.current = res.data[0]; auxTpl({ elem: "#auxListDiv", list: res.data[0].auxList }); imageTpl({ elem: "#imageListDiv", list: res.data[0].imagesList }); assayTpl({ elem: "#assayAuxListDiv", list: res.data[0].assayInfoForm.auxList }); assayImageTpl({ elem: "#assayImageListDiv", list: res.data[0].assayInfoForm.imagesList }); _this.current.inputsFormList = _this.current.inputsFormList || []; rawMaterial(_this.current.inputsFormList); //生产过程信息 _this.current.materialList = formData.current.materialList || []; //编号 for (let i in _this.current.materialList) { _this.current.materialList[i].index = i; } table.reload("produceProcessInfo", { data: _this.current.materialList }); //加工流通信息 _this.current.productList = formData.current.productList || []; //编号 for (let i in _this.current.productList) { _this.current.productList[i].index = i; } table.reload("processingCirculationInfo", { data: _this.current.productList }); _this.initialization().formVal(); } }); return _this; }; //表单赋值 formData.formVal = function () { var _this = this; form.val(this.formLayFilter, this.current); return this; }; //合并表单内容 formData.fusionData = function (obj) { for (var i = this.current.auxList.length - 1; i >= 0; i--) { this.current.auxList[i].auxItme = $("input[name='auxItme']")[i].value; this.current.auxList[i].auxItmeVal = $("input[name='auxItmeVal']")[i].value; if (this.current.auxList[i].auxItme == "" && this.current.auxList[i].auxItmeVal == "") this.current.auxList.splice(i, 1); } for (var i = this.current.assayInfoForm.auxList.length - 1; i >= 0; i--) { this.current.assayInfoForm.auxList[i].auxItme = $("input[name='auxItme2']")[i].value; this.current.assayInfoForm.auxList[i].auxItmeVal = $("input[name='auxItmeVal2']")[i].value; if (this.current.assayInfoForm.auxList[i].auxItme == "" && this.current.assayInfoForm.auxList[i].auxItmeVal == "") this.current.assayInfoForm.auxList.splice(i, 1); } this.current = $.extend(this.current, obj); this.current.goodsBatchImages = this.current.imagesList.join(","); this.current.assayInfoForm.assayImgs = this.current.assayInfoForm.imagesList.join(","); this.current.assayInfoForm.assayDepartment = this.current.assayDepartment; return this; }; //提交新增修改 formData.submitInfo = function (url, data, fun) { var _this = this; $.ajax({ type: 'POST', url: url || this.save_data, //+'?userId='+this.guid data: JSON.stringify(data || this.current), contentType: 'application/json', success: function (res) { if (!(res.code - 0)) { parent.layer.msg(res.msg, { icon: 1 }); typeof fun === 'function' && fun(); url || _this.closeModal(); } else { layer.msg(res.msg, { icon: 2 }); } } }); return false; }; formData.main(); //验证规则 form.verify({ nickname: function (value) { if (!new RegExp("^[a-zA-Z][a-zA-Z0-9_]*$").test(value)) { return '账号必须以英文字母开头,只能包含英文字母、数字、下划线'; } if (/(^\_)|(\__)|(\_+$)/.test(value)) { return '账号首尾不能出现下划线\'_\''; } }, checkName: function (value) { }, phoneNumber: function (value) { if (value) { if (!(/^1[3|4|5|7|8]\d{9}$/).test(value)) { return '请输入正确的手机号码'; } } return false; }, password: function (value) { if (location.searchObj().guid) { if (value) { if (!(/^[\S]{6,12}$/).test(value)) { return '密码必须6到12位,且不能出现空格'; } } return false; } if (!(/^[\S]{6,12}$/).test(value)) { return '密码必须6到12位,且不能出现空格'; } }, resspaword: function (value) { var pass = $('#L_pass').val(); if (value != pass) { return '两次密码不一致'; } }, ageLength: [ /^[0-9]{0,2}$/, '年龄必须0到2位,且只能是数字' ], jobLength: [ /^[a-z\A-Z\u4e00-\u9fa5_]{0,10}$/, '职务必须是0-10位,且不包含特殊字符与数字' ], workUnit: [ /^[0-9\a-z\A-Z\u4e00-\u9fa5_]{0,25}$/, '工作单位必须是0-25位,且不包含特殊字符' ], vcode: [ /^[\w]{4,5}$/, '验证码不符合规则' ] }); form.on('select(roles)', function (data) { rolesViewOnemapParam = $("#rolesView option[value='" + data.value + "']").attr('oneMap'); }); /*element.on('tab(docDemoTabBrief)', function (data) { if ('2' == this.getAttribute('lay-id')) { if (rolesViewOnemapParam && null != rolesViewOnemapParam) { let req = { orchardId: rolesViewOnemapParam, pageNo: 1, pageSize: 10 }; $.ajax({ type: 'get', url: 'getOrchardList' + '?orchardId=' + rolesViewOnemapParam + '&pageNo=1&pageSize=10', success: function (res) { formData.current.materialList = res.data; formData.current.materialList.forEach(value => { value.processType = 1; }); table.reload("produceProcessInfo", { data: formData.current.materialList }); } }); } } });*/ }); </script> </body> </html>