|  |  | 
 |  |  |     base: baseUrl + "/static/layui/lay/modules/" | 
 |  |  | }).extend({ | 
 |  |  |     cascader: 'cascader/cascader', | 
 |  |  | }).use(['table','laydate', 'form', 'admin', 'xmSelect', 'element', 'cascader', 'tree', 'dropdown'], function(){ | 
 |  |  | }).use(['table', 'laydate', 'form', 'admin', 'xmSelect', 'element', 'cascader', 'tree', 'dropdown'], function () { | 
 |  |  |     var table = layui.table; | 
 |  |  |     var $ = layui.jquery; | 
 |  |  |     var layer = layui.layer; | 
 |  |  | 
 |  |  |     // 部门人员 筛选 | 
 |  |  |     dropdown.render({ | 
 |  |  |         elem: '#organization' | 
 |  |  |         ,content: ['<div id="organizationTree" style="height: calc(100vh - 525px);border: none"></div>'].join('') | 
 |  |  |         ,style: 'width: 370px; height: 350px; padding: 0 15px; box-shadow: 1px 1px 30px rgb(0 0 0 / 12%);' | 
 |  |  |         ,ready: function(){ | 
 |  |  |         , content: ['<div id="organizationTree" style="height: calc(100vh - 525px);border: none"></div>'].join('') | 
 |  |  |         , style: 'width: 370px; height: 350px; padding: 0 15px; box-shadow: 1px 1px 30px rgb(0 0 0 / 12%);' | 
 |  |  |         , ready: function () { | 
 |  |  |             loadTree(); | 
 |  |  |         } | 
 |  |  |     }); | 
 |  |  |  | 
 |  |  |     // 树形图 | 
 |  |  |     var organizationTree; | 
 |  |  |     window.loadTree = function(condition){ | 
 |  |  |     window.loadTree = function (condition,allSwitch) { | 
 |  |  |         var loadIndex = layer.load(2); | 
 |  |  |         $.ajax({ | 
 |  |  |             url: baseUrl+"/dept/user/tree/auth", | 
 |  |  |             url: baseUrl + "/dept/user/tree/auth", | 
 |  |  |             headers: {'token': localStorage.getItem('token')}, | 
 |  |  |             data: { | 
 |  |  |                 'condition': condition | 
 |  |  |                 'condition': condition, | 
 |  |  |                 'allSwitch': allSwitch | 
 |  |  |             }, | 
 |  |  |             method: 'POST', | 
 |  |  |             success: function (res) { | 
 |  |  |                 layer.close(loadIndex); | 
 |  |  |                 if (res.code === 200){ | 
 |  |  |                 if (res.code === 200) { | 
 |  |  |                     organizationTree = tree.render({ | 
 |  |  |                         elem: '#organizationTree', | 
 |  |  |                         id: 'organizationTree', | 
 |  |  | 
 |  |  |                         } | 
 |  |  |                     }); | 
 |  |  |                     treeData = res.data; | 
 |  |  |                 } else if (res.code === 403){ | 
 |  |  |                     top.location.href = baseUrl+"/"; | 
 |  |  |                 } else if (res.code === 403) { | 
 |  |  |                     top.location.href = baseUrl + "/"; | 
 |  |  |                 } else { | 
 |  |  |                     layer.msg(res.msg) | 
 |  |  |                 } | 
 |  |  | 
 |  |  |     tableIns = table.render({ | 
 |  |  |         elem: '#priOnline', | 
 |  |  |         headers: {token: localStorage.getItem('token')}, | 
 |  |  |         url: baseUrl+'/priOnline2/list/auth', | 
 |  |  |         url: baseUrl + '/priOnline2/list/auth', | 
 |  |  |         page: true, | 
 |  |  |         limit: 16, | 
 |  |  |         limits: [16, 30, 50, 100, 200, 500], | 
 |  |  | 
 |  |  |         cellMinWidth: 150, | 
 |  |  |         cols: [[ | 
 |  |  |             {type: 'checkbox', fixed: 'left'} | 
 |  |  |             ,{field: 'id', title: 'ID', sort: true,align: 'center', fixed: 'left', width: 80,hide: true} | 
 |  |  |             ,{field: 'templateName', align: 'center',title: '客户名称', style: 'color: #1890ff;cursor:pointer', event: 'moreCstmr', width: 350,hide: false} | 
 |  |  |             ,{field: 'cstmrId$', align: 'center',title: '客户id',hide: true} | 
 |  |  |             ,{field: 'orderNum', align: 'center',title: '核价单号',hide: false} | 
 |  |  |             ,{field: 'planId$', align: 'center',title: '规划单号', style: 'color: #1890ff;cursor:pointer', event: 'morePlan',hide: false} | 
 |  |  |             ,{field: 'itemId', align: 'center',title: '规划单号', hide: true} | 
 |  |  |             ,{field: 'createTime$', align: 'center',title: '创建时间'} | 
 |  |  |             ,{field: 'updateTime$', align: 'center',title: '更新时间'} | 
 |  |  |             ,{field: 'status$', align: 'center',title: '状态'} | 
 |  |  |             ,{field: 'memberId$', align: 'center',title: '业务员'} | 
 |  |  |             ,{field: 'settle$', align: 'center',title: '进度', style: 'color: #1890ff;cursor:pointer', event: 'more',hide: false} | 
 |  |  |             ,{field: 'user$', align: 'center',title: '创建人员'} | 
 |  |  |             ,{field: 'updateUserId$', align: 'center',title: '更新人员'} | 
 |  |  |             ,{field: 'checkDataStatus$', align: 'center',title: '报价数据'} | 
 |  |  |             ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:350} | 
 |  |  |             , {field: 'id', title: 'ID', sort: true, align: 'center', fixed: 'left', width: 80, hide: true} | 
 |  |  |             , { | 
 |  |  |                 field: 'templateName', | 
 |  |  |                 align: 'center', | 
 |  |  |                 title: '客户名称', | 
 |  |  |                 style: 'color: #1890ff;cursor:pointer', | 
 |  |  |                 event: 'moreCstmr', | 
 |  |  |                 width: 350, | 
 |  |  |                 hide: false | 
 |  |  |             } | 
 |  |  |             , {field: 'cstmrId$', align: 'center', title: '客户id', hide: true} | 
 |  |  |             , {field: 'orderNum', align: 'center', title: '核价单号', hide: false} | 
 |  |  |             , { | 
 |  |  |                 field: 'planId$', | 
 |  |  |                 align: 'center', | 
 |  |  |                 title: '规划单号', | 
 |  |  |                 style: 'color: #1890ff;cursor:pointer', | 
 |  |  |                 event: 'morePlan', | 
 |  |  |                 hide: false | 
 |  |  |             } | 
 |  |  |             , {field: 'itemId', align: 'center', title: '规划单号', hide: true} | 
 |  |  |             , {field: 'statusAll$', align: 'center',title: '状态'} | 
 |  |  |             // ,{field: 'memberId$', align: 'center',title: ''} | 
 |  |  |             , { | 
 |  |  |                 field: 'settle$', | 
 |  |  |                 align: 'center', | 
 |  |  |                 title: '进度', | 
 |  |  |                 style: 'color: #1890ff;cursor:pointer', | 
 |  |  |                 event: 'more', | 
 |  |  |                 hide: false | 
 |  |  |             } | 
 |  |  |             , {field: 'settleSize', align: 'center', title: '流程长度', hide: true} | 
 |  |  |             , {field: 'user$', align: 'center', title: '业务员', hide: false} | 
 |  |  |             , {field: 'deptId$', align: 'center', title: '部门', hide: true} | 
 |  |  |             , {field: 'checkDataStatus$', align: 'center', title: '报价数据', hide: false} | 
 |  |  |             , {field: 'createTime$', align: 'center', title: '创建时间', hide: true} | 
 |  |  |             , {field: 'updateUserId$', align: 'center', title: '更新人员', hide: false} | 
 |  |  |             , {field: 'updateTime$', align: 'center', title: '更新时间', hide: false} | 
 |  |  |             ,{field: 'assistantHostSign$', align: 'left',title: '主副标记', hide: false} | 
 |  |  |             ,{field: 'assistantHostSign', align: 'left',title: '主副标记', hide: true} | 
 |  |  |             ,{field: 'hostPlanId', align: 'left',title: '主ID', hide: true} | 
 |  |  |             ,{field: 'assistantPlanId', align: 'left',title: '副ID', hide: true} | 
 |  |  |             , {fixed: 'right', title: '操作', align: 'center', toolbar: '#operate', width: 350} | 
 |  |  |         ]], | 
 |  |  |         request: { | 
 |  |  |             pageName: 'curr', | 
 |  |  | 
 |  |  |         response: { | 
 |  |  |             statusCode: 200 | 
 |  |  |         }, | 
 |  |  |         done: function(res, curr, count) { | 
 |  |  |         done: function (res, curr, count) { | 
 |  |  |             if (res.code === 403) { | 
 |  |  |                 top.location.href = baseUrl+"/"; | 
 |  |  |                 top.location.href = baseUrl + "/"; | 
 |  |  |             } | 
 |  |  |             pageCurr=curr; | 
 |  |  |             pageCurr = curr; | 
 |  |  |             limit(); | 
 |  |  |         } | 
 |  |  |     }); | 
 |  |  | 
 |  |  |     // 监听排序事件 | 
 |  |  |     table.on('sort(priOnline)', function (obj) { | 
 |  |  |         var searchData = {}; | 
 |  |  |         $.each($('#search-box [name]').serializeArray(), function() { | 
 |  |  |         $.each($('#search-box [name]').serializeArray(), function () { | 
 |  |  |             searchData[this.name] = this.value; | 
 |  |  |         }); | 
 |  |  |         searchData['orderByField'] = obj.field; | 
 |  |  | 
 |  |  |             }, | 
 |  |  |             done: function (res, curr, count) { | 
 |  |  |                 if (res.code === 403) { | 
 |  |  |                     top.location.href = baseUrl+"/"; | 
 |  |  |                     top.location.href = baseUrl + "/"; | 
 |  |  |                 } | 
 |  |  |                 pageCurr=curr; | 
 |  |  |                 pageCurr = curr; | 
 |  |  |                 limit(); | 
 |  |  |             } | 
 |  |  |         }); | 
 |  |  | 
 |  |  |     // 监听头工具栏事件 | 
 |  |  |     table.on('toolbar(priOnline)', function (obj) { | 
 |  |  |         var checkStatus = table.checkStatus(obj.config.id); | 
 |  |  |         switch(obj.event) { | 
 |  |  |         switch (obj.event) { | 
 |  |  |             case 'addBlank': | 
 |  |  |                 showEditModel(); | 
 |  |  |                 break; | 
 |  |  |             case 'addBlank2': | 
 |  |  |                 showEditModel2(); | 
 |  |  |                 break; | 
 |  |  |             case 'refreshData': | 
 |  |  |                 tableIns.reload({ | 
 |  |  | 
 |  |  |                 break; | 
 |  |  |             case 'deleteData': | 
 |  |  |                 var data = checkStatus.data; | 
 |  |  |                 var ids=[]; | 
 |  |  |                 var ids = []; | 
 |  |  |                 data.map(function (track) { | 
 |  |  |                     ids.push(track.id); | 
 |  |  |                 }); | 
 |  |  |                 if (ids.length === 0){ | 
 |  |  |                 if (ids.length === 0) { | 
 |  |  |                     layer.msg('请选择数据'); | 
 |  |  |                 } else { | 
 |  |  |                     layer.confirm('确定删除'+(ids.length===1?'此':ids.length)+'条数据吗', function(){ | 
 |  |  |                     layer.confirm('确定删除' + (ids.length === 1 ? '此' : ids.length) + '条数据吗', function () { | 
 |  |  |                         $.ajax({ | 
 |  |  |                             url: baseUrl+"/priOnline2/delete/auth", | 
 |  |  |                             url: baseUrl + "/priOnline2/delete/auth", | 
 |  |  |                             headers: {'token': localStorage.getItem('token')}, | 
 |  |  |                             data: {ids: ids}, | 
 |  |  |                             method: 'POST', | 
 |  |  |                             traditional:true, | 
 |  |  |                             traditional: true, | 
 |  |  |                             success: function (res) { | 
 |  |  |                                 if (res.code === 200){ | 
 |  |  |                                 if (res.code === 200) { | 
 |  |  |                                     layer.closeAll(); | 
 |  |  |                                     tableReload(false); | 
 |  |  |                                 } else if (res.code === 403){ | 
 |  |  |                                     top.location.href = baseUrl+"/"; | 
 |  |  |                                 } else if (res.code === 403) { | 
 |  |  |                                     top.location.href = baseUrl + "/"; | 
 |  |  |                                 } else { | 
 |  |  |                                     layer.msg(res.msg) | 
 |  |  |                                 } | 
 |  |  | 
 |  |  |                 } | 
 |  |  |                 break; | 
 |  |  |             case 'exportData': | 
 |  |  |                 layer.confirm('确定导出Excel吗', {shadeClose: true}, function(){ | 
 |  |  |                     var titles=[]; | 
 |  |  |                     var fields=[]; | 
 |  |  |                 layer.confirm('确定导出Excel吗', {shadeClose: true}, function () { | 
 |  |  |                     var titles = []; | 
 |  |  |                     var fields = []; | 
 |  |  |                     obj.config.cols[0].map(function (col) { | 
 |  |  |                         if (col.type === 'normal' && col.hide === false && col.toolbar == null) { | 
 |  |  |                             titles.push(col.title); | 
 |  |  | 
 |  |  |                         } | 
 |  |  |                     }); | 
 |  |  |                     var exportData = {}; | 
 |  |  |                     $.each($('#search-box [name]').serializeArray(), function() { | 
 |  |  |                     $.each($('#search-box [name]').serializeArray(), function () { | 
 |  |  |                         exportData[this.name] = this.value; | 
 |  |  |                     }); | 
 |  |  |                     var param = { | 
 |  |  | 
 |  |  |                         'fields': fields | 
 |  |  |                     }; | 
 |  |  |                     $.ajax({ | 
 |  |  |                         url: baseUrl+"/priOnline2/export/auth", | 
 |  |  |                         url: baseUrl + "/priOnline2/export/auth", | 
 |  |  |                         headers: {'token': localStorage.getItem('token')}, | 
 |  |  |                         data: JSON.stringify(param), | 
 |  |  |                         dataType:'json', | 
 |  |  |                         contentType:'application/json;charset=UTF-8', | 
 |  |  |                         dataType: 'json', | 
 |  |  |                         contentType: 'application/json;charset=UTF-8', | 
 |  |  |                         method: 'POST', | 
 |  |  |                         success: function (res) { | 
 |  |  |                             layer.closeAll(); | 
 |  |  |                             if (res.code === 200) { | 
 |  |  |                                 table.exportFile(titles,res.data,'xls'); | 
 |  |  |                                 table.exportFile(titles, res.data, 'xls'); | 
 |  |  |                             } else if (res.code === 403) { | 
 |  |  |                                 top.location.href = baseUrl+"/"; | 
 |  |  |                                 top.location.href = baseUrl + "/"; | 
 |  |  |                             } else { | 
 |  |  |                                 layer.msg(res.msg) | 
 |  |  |                             } | 
 |  |  | 
 |  |  |         } | 
 |  |  |     }); | 
 |  |  |  | 
 |  |  |     $("#data-btn-file2").on("click", (e) => { | 
 |  |  |         $("#data-btn-upload").click() | 
 |  |  |     }); | 
 |  |  |  | 
 |  |  |     var _uploadFile = null | 
 |  |  |     //响应上传 | 
 |  |  |     $("#data-btn-upload").on("change",(evt) => { | 
 |  |  |         var files = evt.target.files; | 
 |  |  |         if(files==null || files.length==0){ | 
 |  |  |             alert("No files wait for import"); | 
 |  |  |             return; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         var file = files[0] | 
 |  |  |  | 
 |  |  |         var tr = $(['<tr id="upload-">' | 
 |  |  |             ,'<td id="upload-filename-id-'+ file.lastModified + '">' + file.name +'</td>' | 
 |  |  |             ,'<td>'+ (file.size/1014).toFixed(1) +'kb</td>' | 
 |  |  |             ,'<td id="upload-file-id-' + file.lastModified + '">准备上传</td>' | 
 |  |  |             ,'<td>' | 
 |  |  |             ,'<button class="layui-btn layui-btn-xs demo-reload layui-hide">重传</button>' | 
 |  |  |             ,'<button class="layui-btn layui-btn-xs layui-btn-danger demo-delete">删除</button>' | 
 |  |  |             ,'<button id="file-download" class="layui-btn layui-btn-xs demo-reload layui-hide">下载</button>' | 
 |  |  |             ,'</td>' | 
 |  |  |             ,'</tr>'].join('')); | 
 |  |  |  | 
 |  |  |         //删除 | 
 |  |  |         tr.find('.demo-delete').on('click', function(){ | 
 |  |  |             tr.remove(); | 
 |  |  |             $("#data-btn-upload").val("") | 
 |  |  |             _uploadFile = null | 
 |  |  |         }); | 
 |  |  |  | 
 |  |  |         $('#data-btn-file3').append(tr) | 
 |  |  |  | 
 |  |  |         _uploadFile = file | 
 |  |  |     }) | 
 |  |  |  | 
 |  |  |     //开始上传 | 
 |  |  |     $("#testListAction").on("click", async (e) => { | 
 |  |  |         if (_uploadFile == null) { | 
 |  |  |             return false; | 
 |  |  |         } | 
 |  |  |  | 
 |  |  |         var index = layer.load(1, { | 
 |  |  |             shadeClose: false, | 
 |  |  |             title: '上传中..', | 
 |  |  |             shade: [0.5,'#000'] | 
 |  |  |         }); | 
 |  |  |  | 
 |  |  |         var file = _uploadFile | 
 |  |  |         $("#upload-file-id-" + file.lastModified).html("上传中") | 
 |  |  |  | 
 |  |  |         putObject(file).then((result) => { | 
 |  |  |             var filename = result.name | 
 |  |  |             layer.msg('上传成功', {icon: 1}); | 
 |  |  |             $("#upload-file-id-" + file.lastModified).html("上传成功") | 
 |  |  |             $("#upload-filename-id-" + file.lastModified).html(filename) | 
 |  |  |  | 
 |  |  |             $.ajax({ | 
 |  |  |                 url: baseUrl+"/plan/insert/file/auth", | 
 |  |  |                 headers: {'token': localStorage.getItem('token')}, | 
 |  |  |                 data: { | 
 |  |  |                     'planId': $('.layui-layer-title').text(), | 
 |  |  |                     'filename': filename, | 
 |  |  |                     'filesize': file.size | 
 |  |  |                 }, | 
 |  |  |                 method: 'POST', | 
 |  |  |                 success: function (res) { | 
 |  |  |                     if (res.code === 200){ | 
 |  |  |                         layer.close(index) | 
 |  |  |                         console.log(res) | 
 |  |  |                     } else if (res.code === 403){ | 
 |  |  |                         top.location.href = baseUrl+"/"; | 
 |  |  |                     } else { | 
 |  |  |                         layer.msg(res.msg) | 
 |  |  |                     } | 
 |  |  |                 } | 
 |  |  |             }); | 
 |  |  |         }).catch((e) => { | 
 |  |  |             console.log(e) | 
 |  |  |             layer.msg('上传失败', {icon: 2}); | 
 |  |  |             $("#upload-file-id-" + file.lastModified).html("上传失败") | 
 |  |  |         }) | 
 |  |  |  | 
 |  |  |         //清空file | 
 |  |  |         $("#data-btn-upload").val("") | 
 |  |  |         _uploadFile = null | 
 |  |  |     }); | 
 |  |  |  | 
 |  |  |     // 监听行工具事件 | 
 |  |  |     table.on('tool(priOnline)', function(obj){ | 
 |  |  |     table.on('tool(priOnline)', function (obj) { | 
 |  |  |         var data = obj.data; | 
 |  |  |         switch (obj.event) { | 
 |  |  |             case 'approvalEnd': | 
 |  |  |                 layer.confirm('审批拒绝?', { | 
 |  |  |                     skin: 'layui-layer-admin', | 
 |  |  |                     shade: .1, | 
 |  |  |                     offset: '200px', | 
 |  |  |                     title: data.name | 
 |  |  |                 }, function (i) { | 
 |  |  |                     layer.close(i); | 
 |  |  |                     console.log(data) | 
 |  |  |                     approvalEnd(data.id); | 
 |  |  |                 }); | 
 |  |  |                 break; | 
 |  |  |             case 'approval': | 
 |  |  |                 layer.confirm('审批通过?', { | 
 |  |  |                     skin: 'layui-layer-admin', | 
 |  |  | 
 |  |  |                     offset: '200px', | 
 |  |  |                     title: data.name | 
 |  |  |                 }, function (i) { | 
 |  |  |                     console.log(data) | 
 |  |  |                     layer.close(i); | 
 |  |  |                     approval(data.id); | 
 |  |  |                     // 指定模板 | 
 |  |  |                     if (((data.settle === 1 && data.settleSize===3) || (data.settle===2 && data.settleSize===4)) && data.assistantHostSign==0) { | 
 |  |  |                         admin.open({ | 
 |  |  |                             type: 1, | 
 |  |  |                             area: '300px', | 
 |  |  |                             title: '选择报价模板', | 
 |  |  |                             content: $('#plannerListDialog').html(), | 
 |  |  |                             success: function (layero, dIndex) { | 
 |  |  |                                 let plannerSel = xmSelect.render({ | 
 |  |  |                                     el: '#plannerXmlSel', | 
 |  |  |                                     autoRow: true, | 
 |  |  |                                     filterable: true, | 
 |  |  |                                     remoteSearch: true, | 
 |  |  |                                     clickClose: true, | 
 |  |  |                                     radio: true, | 
 |  |  |                                     remoteMethod: function (val, cb, show) { | 
 |  |  |                                         let loadIndex = layer.load(2); | 
 |  |  |                                         $.ajax({ | 
 |  |  |                                             url: baseUrl + "/priOnline2/priQuoteAdd/list/auth", | 
 |  |  |                                             headers: {'token': localStorage.getItem('token')}, | 
 |  |  |                                             data: { | 
 |  |  |                                                 planId: data.id | 
 |  |  |                                             }, | 
 |  |  |                                             method: 'POST', | 
 |  |  |                                             success: function (res) { | 
 |  |  |                                                 layer.close(loadIndex); | 
 |  |  |                                                 if (res.code === 200) { | 
 |  |  |                                                     cb(res.data) | 
 |  |  |                                                 } else { | 
 |  |  |                                                     layer.close(dIndex); | 
 |  |  |                                                     layer.msg(res.msg, {icon: 2}); | 
 |  |  |                                                 } | 
 |  |  |                                             } | 
 |  |  |                                         }) | 
 |  |  |                                     } | 
 |  |  |                                 }); | 
 |  |  |  | 
 |  |  |                                 form.on('submit(editSubmit)', function () { | 
 |  |  |                                     let plannerId = plannerSel.getValue()[0] ? plannerSel.getValue()[0].value : null; | 
 |  |  |                                     if (!plannerId) { | 
 |  |  |                                         layer.msg("请选择规划员", {icon: 2}); | 
 |  |  |                                         top.requireTip($('#plannerXmlSel')); | 
 |  |  |                                         return false; | 
 |  |  |                                     } | 
 |  |  |                                     approval(data.id, plannerId, dIndex); | 
 |  |  |                                 }); | 
 |  |  |  | 
 |  |  |                                 $(layero).children('.layui-layer-content').css('overflow', 'visible'); | 
 |  |  |                             } | 
 |  |  |                         }) | 
 |  |  |                     } else { | 
 |  |  |                         approval(data.id); | 
 |  |  |                     } | 
 |  |  |                 }); | 
 |  |  |                 break; | 
 |  |  |             case 'moreCstmr': | 
 |  |  | 
 |  |  |                     area: [top.detailWidth, top.detailHeight], | 
 |  |  |                     shadeClose: false, | 
 |  |  |                     content: 'priOnline_detail.html?id=' + data.id, | 
 |  |  |                     success: function(layero, index){ | 
 |  |  |                     success: function (layero, index) { | 
 |  |  |                         // layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"}); | 
 |  |  |                     } | 
 |  |  |                 }); | 
 |  |  |                 break; | 
 |  |  |             case 'del': | 
 |  |  |                 layer.confirm('确定删除这条数据吗', function(){ | 
 |  |  |                 layer.confirm('确定删除这条数据吗', function () { | 
 |  |  |                     $.ajax({ | 
 |  |  |                         url: baseUrl+"/priOnline2/delete/auth", | 
 |  |  |                         url: baseUrl + "/priOnline2/delete/auth", | 
 |  |  |                         headers: {'token': localStorage.getItem('token')}, | 
 |  |  |                         data: {ids: data.id}, | 
 |  |  |                         method: 'POST', | 
 |  |  |                         traditional:true, | 
 |  |  |                         traditional: true, | 
 |  |  |                         success: function (res) { | 
 |  |  |                             if (res.code === 200){ | 
 |  |  |                             if (res.code === 200) { | 
 |  |  |                                 layer.closeAll(); | 
 |  |  |                                 tableReload(false); | 
 |  |  |                             } else if (res.code === 403){ | 
 |  |  |                                 top.location.href = baseUrl+"/"; | 
 |  |  |                             } else if (res.code === 403) { | 
 |  |  |                                 top.location.href = baseUrl + "/"; | 
 |  |  |                             } else { | 
 |  |  |                                 layer.msg(res.msg) | 
 |  |  |                             } | 
 |  |  | 
 |  |  |                 break; | 
 |  |  |             case "upload": | 
 |  |  |                 $.ajax({ | 
 |  |  |                     type:"get", | 
 |  |  |                     url: baseUrl+"/priOnline2/viewCheck/" + data.id + "/auth", | 
 |  |  |                     dataType:"json", | 
 |  |  |                     type: "get", | 
 |  |  |                     url: baseUrl + "/priOnline2/viewCheck/" + data.id + "/auth", | 
 |  |  |                     dataType: "json", | 
 |  |  |                     headers: {'token': localStorage.getItem('token')}, | 
 |  |  |                     success:function(res) { | 
 |  |  |                     success: function (res) { | 
 |  |  |                         if (res.code == 200) { | 
 |  |  |                             layer.confirm('当前已存在数据,继续上传将会覆盖旧数据,是否上传?', function(){ | 
 |  |  |                             layer.confirm('当前已存在数据,继续上传将会覆盖旧数据,是否上传?', function () { | 
 |  |  |                                 $("#uploadQuote").click() | 
 |  |  |                             }); | 
 |  |  |                         }else{ | 
 |  |  |                         } else { | 
 |  |  |                             $("#uploadQuote").click() | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 }); | 
 |  |  |  | 
 |  |  |                 $("#uploadQuote").on("change",(evt) => { | 
 |  |  |                 $("#uploadQuote").on("change", (evt) => { | 
 |  |  |                     var files = evt.target.files; | 
 |  |  |                     if(files==null || files.length==0){ | 
 |  |  |                     if (files == null || files.length == 0) { | 
 |  |  |                         alert("No files wait for import"); | 
 |  |  |                         return; | 
 |  |  |                     } | 
 |  |  |  | 
 |  |  |                     let name = files[0].name; | 
 |  |  |                     let suffixArr = name.split("."), suffix = suffixArr[suffixArr.length-1]; | 
 |  |  |                     if(suffix!="xlsx"){ | 
 |  |  |                     let suffixArr = name.split("."), suffix = suffixArr[suffixArr.length - 1]; | 
 |  |  |                     if (suffix != "xlsx") { | 
 |  |  |                         alert("Currently only supports the import of xlsx files"); | 
 |  |  |                         return; | 
 |  |  |                     } | 
 |  |  |                     LuckyExcel.transformExcelToLucky(files[0], function(exportJson, luckysheetfile){ | 
 |  |  |                         if(exportJson.sheets==null || exportJson.sheets.length==0){ | 
 |  |  |                     LuckyExcel.transformExcelToLucky(files[0], function (exportJson, luckysheetfile) { | 
 |  |  |                         if (exportJson.sheets == null || exportJson.sheets.length == 0) { | 
 |  |  |                             alert("Failed to read the content of the excel file, currently does not support xls files!"); | 
 |  |  |                             return; | 
 |  |  |                         } | 
 |  |  | 
 |  |  |                         formData.append("id", data.id); | 
 |  |  |                         formData.append("checkData", zip(exportJson.sheets)); | 
 |  |  |                         $.ajax({ | 
 |  |  |                             url: baseUrl+"/priOnline2/uploadCheck/auth", | 
 |  |  |                             url: baseUrl + "/priOnline2/uploadCheck/auth", | 
 |  |  |                             headers: {'token': localStorage.getItem('token')}, | 
 |  |  |                             data: formData, | 
 |  |  |                             // data: JSON.stringify({ | 
 |  |  | 
 |  |  |                             // contentType:'application/json;charset=UTF-8', | 
 |  |  |                             success: function (res) { | 
 |  |  |                                 if (res.code == 200) { | 
 |  |  |                                     layer.msg('上传成功',{time:1000},() => { | 
 |  |  |                                     layer.msg('上传成功', {time: 1000}, () => { | 
 |  |  |                                         parent.location.reload() | 
 |  |  |                                     }) | 
 |  |  |                                 }else{ | 
 |  |  |                                     layer.msg(res.msg,{time:1000},() => { | 
 |  |  |                                 } else { | 
 |  |  |                                     layer.msg(res.msg, {time: 1000}, () => { | 
 |  |  |                                         parent.location.reload() | 
 |  |  |                                     }) | 
 |  |  |                                 } | 
 |  |  | 
 |  |  |             case "viewCheck": | 
 |  |  |                 //查看询价 | 
 |  |  |                 $.ajax({ | 
 |  |  |                     type:"get", | 
 |  |  |                     url: baseUrl+"/priOnline2/viewCheck/" + data.id + "/auth", | 
 |  |  |                     dataType:"json", | 
 |  |  |                     type: "get", | 
 |  |  |                     url: baseUrl + "/priOnline2/viewCheck/" + data.id + "/auth", | 
 |  |  |                     dataType: "json", | 
 |  |  |                     headers: {'token': localStorage.getItem('token')}, | 
 |  |  |                     success:function(res) { | 
 |  |  |                     success: function (res) { | 
 |  |  |                         if (res.code == 200) { | 
 |  |  |                             layer.open({ | 
 |  |  |                                 type: 2, | 
 |  |  | 
 |  |  |                                 area: [top.detailWidth, top.detailHeight], | 
 |  |  |                                 shadeClose: false, | 
 |  |  |                                 content: 'priOnline_check.html?id=' + data.id, | 
 |  |  |                                 success: function(layero, index){ | 
 |  |  |                                 success: function (layero, index) { | 
 |  |  |                                     // layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"}); | 
 |  |  |                                 } | 
 |  |  |                             }); | 
 |  |  |                         }else{ | 
 |  |  |                             layer.msg(res.msg,{time:1000}) | 
 |  |  |                         } else { | 
 |  |  |                             layer.msg(res.msg, {time: 1000}) | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                 }); | 
 |  |  |                 break; | 
 |  |  |             case "uploadLink": | 
 |  |  |                 // 打开弹窗 | 
 |  |  |                 // 构建带参数的内容 | 
 |  |  |                 var planIdSign = data.id; | 
 |  |  |                 if (data.assistantHostSign==1){ | 
 |  |  |                     planIdSign = data.hostPlanId; | 
 |  |  |                 } | 
 |  |  |                 layer.open({ | 
 |  |  |                     type: 1, | 
 |  |  |                     title: '上传文件-'+planIdSign, | 
 |  |  |                     content: $('#myModal') | 
 |  |  |                 }); | 
 |  |  |                 // 获取路径下的文件列表,使用 jQuery 的 ajax 方法 | 
 |  |  |                 $.ajax({ | 
 |  |  |                     url: '/plan/view/file/auth', | 
 |  |  |                     data:{ | 
 |  |  |                         planId:planIdSign | 
 |  |  |                     }, | 
 |  |  |                     success: function(response) { | 
 |  |  |                         if (response.code==200){ | 
 |  |  |                             var targetTable = document.getElementById("data-btn-file3"); | 
 |  |  |                             targetTable.innerHTML = ''; | 
 |  |  |                             // 将获取到的文件列表添加到文件队列中进行显示 | 
 |  |  |                             response.data.forEach(function(file,index) { | 
 |  |  |                                 // 创建tr元素 | 
 |  |  |                                 var tr = document.createElement("tr"); | 
 |  |  |                                 tr.id = "upload-"+index; | 
 |  |  |                                 tr.innerHTML = '<td>' + file.name + '</td>' | 
 |  |  |                                     + '<td>' + (file.size / 1024).toFixed(1) + 'kb</td>' | 
 |  |  |                                     // + '<td><div class="layui-progress" lay-filter="progress-demo-' + index ,100 + '%'+ '"><div class="layui-progress-bar" lay-percent=""></div></div></td>' | 
 |  |  |                                     + '<td>'+'已完成'+'</td>' | 
 |  |  |                                     + '<td>' | 
 |  |  |                                     + '<button class="layui-btn layui-btn-xs demo-reload layui-hide">重传</button>' | 
 |  |  |                                     // + '<button class="layui-btn layui-btn-xs layui-btn-danger demo-delete">删除</button>' | 
 |  |  |                                     + '<a href="' + file.path + '" download class="layui-btn layui-btn-xs layui-btn-primary">下载</a>' | 
 |  |  |                                     + '</td>'; | 
 |  |  |                                 // 将tr元素添加到目标table中 | 
 |  |  |                                 targetTable.appendChild(tr); | 
 |  |  |                             }); | 
 |  |  |                         }else { | 
 |  |  |                             console.log('Failed to get file list error.'); | 
 |  |  |                         } | 
 |  |  |                     }, | 
 |  |  |                     error: function() { | 
 |  |  |                         console.log('Failed to get file list.'); | 
 |  |  |                     } | 
 |  |  |                 }); | 
 |  |  |                 break; | 
 |  |  |         } | 
 |  |  |     }); | 
 |  |  |  | 
 |  |  |     // 点击下载按钮时触发文件下载 | 
 |  |  |     $('#data-btn-file3').on('click', 'a', function() { | 
 |  |  |         console.log(this) | 
 |  |  |         var downloadUrl = $(this).attr('href'); | 
 |  |  |         let url = getObjectUrl(downloadUrl) | 
 |  |  |         layer.msg("准备下载中", {icon: 1}); | 
 |  |  |         location.href = url | 
 |  |  |         return false;  // 阻止默认的链接跳转行为 | 
 |  |  |     }); | 
 |  |  |  | 
 |  |  |     // 搜索 | 
 |  |  | 
 |  |  |                         area: [top.detailWidth, top.detailHeight], | 
 |  |  |                         shadeClose: false, | 
 |  |  |                         content: 'priOnline_detail.html?item_id=' + data.field.planId + "&template=" + data.field.template + "&name=" + data.field.name, | 
 |  |  |                         success: function(layero, index){ | 
 |  |  |                         success: function (layero, index) { | 
 |  |  |                             clearFormVal(layer.getChildFrame('#detail', index)); | 
 |  |  |                             // layer.iframeAuto(index);layer.style(index, {top: (($(window).height()-layer.getChildFrame('#data-detail', index).height())/3)+"px"}); | 
 |  |  |                         } | 
 |  |  | 
 |  |  |             } | 
 |  |  |         }); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     // /* 弹窗 - 新增、修改 */ | 
 |  |  |     // function showEditModel2(mData) { | 
 |  |  |     //     admin.open({ | 
 |  |  |     //         type: 1, | 
 |  |  |     //         area: '800px', | 
 |  |  |     //         title: '接取' + '核价', | 
 |  |  |     //         content: $('#editDialogHJ').html(), | 
 |  |  |     //         success: function (layero, dIndex) { | 
 |  |  |     //             let loadNameXml = loadNameXmlSel() | 
 |  |  |     //             form.val('detailHJ', mData); | 
 |  |  |     //             form.on('submit(editSubmitHJ)', function (data) { | 
 |  |  |     //                 data.field.id = loadNameXml.getValue()[0] ? loadNameXml.getValue()[0].id : null; | 
 |  |  |     //                 $.ajax({ | 
 |  |  |     //                     url: baseUrl+"/priOnline2/HJ/add/auth", | 
 |  |  |     //                     headers: {'token': localStorage.getItem('token')}, | 
 |  |  |     //                     data: data.field, | 
 |  |  |     //                     method: 'POST', | 
 |  |  |     //                     success: function (res) { | 
 |  |  |     //                         if (res.code === 200){ | 
 |  |  |     //                             layer.close(dIndex); | 
 |  |  |     //                             layer.msg(res.msg, {icon: 1}); | 
 |  |  |     //                             tableReload() | 
 |  |  |     //                         } else if (res.code === 403){ | 
 |  |  |     //                             top.location.href = baseUrl+"/"; | 
 |  |  |     //                         }else { | 
 |  |  |     //                             layer.msg(res.msg, {icon: 2}); | 
 |  |  |     //                         } | 
 |  |  |     //                     } | 
 |  |  |     //                 }) | 
 |  |  |     //             }); | 
 |  |  |     //             $(layero).children('.layui-layer-content').css('overflow', 'visible'); | 
 |  |  |     //             layui.form.render('select'); | 
 |  |  |     //         } | 
 |  |  |     //     }); | 
 |  |  |     // } | 
 |  |  |  | 
 |  |  |     //更新form | 
 |  |  |     function showEditForm(mData) { | 
 |  |  | 
 |  |  |                 form.on('submit(editSubmit)', function (data) { | 
 |  |  |                     var loadIndex = layer.load(2); | 
 |  |  |                     $.ajax({ | 
 |  |  |                         url: baseUrl+"/priOnline2/updateForm/auth", | 
 |  |  |                         url: baseUrl + "/priOnline2/updateForm/auth", | 
 |  |  |                         headers: {'token': localStorage.getItem('token')}, | 
 |  |  |                         data: data.field, | 
 |  |  |                         method: 'POST', | 
 |  |  |                         traditional:true, | 
 |  |  |                         traditional: true, | 
 |  |  |                         success: function (res) { | 
 |  |  |                             if (res.code === 200){ | 
 |  |  |                             if (res.code === 200) { | 
 |  |  |                                 layer.closeAll(); | 
 |  |  |                                 tableReload(false); | 
 |  |  |                             } else if (res.code === 403){ | 
 |  |  |                                 top.location.href = baseUrl+"/"; | 
 |  |  |                             } else if (res.code === 403) { | 
 |  |  |                                 top.location.href = baseUrl + "/"; | 
 |  |  |                             } else { | 
 |  |  |                                 layer.msg(res.msg) | 
 |  |  |                             } | 
 |  |  | 
 |  |  |         }); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     function approval(priOnlineId, plannerId, dIdx) { | 
 |  |  |     function approvalEnd(priOnlineId, plannerId, dIdx) { | 
 |  |  |         let loadIndex = layer.load(2); | 
 |  |  |         $.ajax({ | 
 |  |  |             url: baseUrl+"/priOnline2/approval/auth", | 
 |  |  |             url: baseUrl + "/priOnline2/approvalEnd/auth", | 
 |  |  |             headers: {'token': localStorage.getItem('token')}, | 
 |  |  |             data: { | 
 |  |  |                 priOnlineId: priOnlineId, | 
 |  |  | 
 |  |  |                     layer.close(dIdx); | 
 |  |  |                 } | 
 |  |  |                 layer.close(loadIndex); | 
 |  |  |                 if (res.code === 200){ | 
 |  |  |                 if (res.code === 200) { | 
 |  |  |                     layer.msg(res.msg, {icon: 1}); | 
 |  |  |                     tableReload(); | 
 |  |  |                 } else if (res.code === 403){ | 
 |  |  |                     top.location.href = baseUrl+"/"; | 
 |  |  |                 } else if (res.code === 403) { | 
 |  |  |                     top.location.href = baseUrl + "/"; | 
 |  |  |                 } else { | 
 |  |  |                     layer.msg(res.msg, {icon: 2}); | 
 |  |  |                 } | 
 |  |  | 
 |  |  |         }) | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     function approval(priOnlineId, plannerId, dIdx) { | 
 |  |  |         let loadIndex = layer.load(2); | 
 |  |  |         $.ajax({ | 
 |  |  |             url: baseUrl + "/priOnline2/approval/auth", | 
 |  |  |             headers: {'token': localStorage.getItem('token')}, | 
 |  |  |             data: { | 
 |  |  |                 priOnlineId: priOnlineId, | 
 |  |  |                 plannerId: plannerId | 
 |  |  |             }, | 
 |  |  |             method: 'POST', | 
 |  |  |             success: function (res) { | 
 |  |  |                 if (dIdx) { | 
 |  |  |                     layer.close(dIdx); | 
 |  |  |                 } | 
 |  |  |                 layer.close(loadIndex); | 
 |  |  |                 if (res.code === 200) { | 
 |  |  |                     layer.msg(res.msg, {icon: 1}); | 
 |  |  |                     tableReload(); | 
 |  |  |                 } else if (res.code === 403) { | 
 |  |  |                     top.location.href = baseUrl + "/"; | 
 |  |  |                 } else { | 
 |  |  |                     layer.msg(res.msg, {icon: 2}); | 
 |  |  |                 } | 
 |  |  |             } | 
 |  |  |         }) | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     // window.loadNameXmlSel = function () { | 
 |  |  |     //     return xmSelect.render({ | 
 |  |  |     //         el: '#nameXmlSel', | 
 |  |  |     //         autoRow: true, | 
 |  |  |     //         filterable: true, | 
 |  |  |     //         remoteSearch: true, | 
 |  |  |     //         clickClose: true, | 
 |  |  |     //         radio: true, | 
 |  |  |     //         remoteMethod: function (val, cb, show) { | 
 |  |  |     //             $.ajax({ | 
 |  |  |     //                 url: baseUrl + "/priOnline2/HJ/search/auth", | 
 |  |  |     //                 headers: {'token': localStorage.getItem('token')}, | 
 |  |  |     //                 data: { | 
 |  |  |     //                     condition: val | 
 |  |  |     //                 }, | 
 |  |  |     //                 method: 'POST', | 
 |  |  |     //                 success: function (res) { | 
 |  |  |     //                     if (res.code === 200) { | 
 |  |  |     //                         cb(res.data) | 
 |  |  |     //                     } else { | 
 |  |  |     //                         cb([]); | 
 |  |  |     //                         layer.msg(res.msg, {icon: 2}); | 
 |  |  |     //                     } | 
 |  |  |     //                 } | 
 |  |  |     //             }); | 
 |  |  |     //         } | 
 |  |  |     //     }); | 
 |  |  |     // } | 
 |  |  |  | 
 |  |  | }); | 
 |  |  |  | 
 |  |  | // 关闭动作 | 
 |  |  | $(document).on('click','#data-detail-close', function () { | 
 |  |  | $(document).on('click', '#data-detail-close', function () { | 
 |  |  |     parent.layer.closeAll(); | 
 |  |  | }); | 
 |  |  |  | 
 |  |  | function tableReload(child) { | 
 |  |  |     var searchData = {}; | 
 |  |  |     $.each($('#search-box [name]').serializeArray(), function() { | 
 |  |  |     $.each($('#search-box [name]').serializeArray(), function () { | 
 |  |  |         searchData[this.name] = this.value; | 
 |  |  |     }); | 
 |  |  |     (child ? parent.tableIns : tableIns).reload({ | 
 |  |  | 
 |  |  |         }, | 
 |  |  |         done: function (res, curr, count) { | 
 |  |  |             if (res.code === 403) { | 
 |  |  |                 top.location.href = baseUrl+"/"; | 
 |  |  |                 top.location.href = baseUrl + "/"; | 
 |  |  |             } | 
 |  |  |             pageCurr=curr; | 
 |  |  |             pageCurr = curr; | 
 |  |  |             if (res.data.length === 0 && count !== 0) { | 
 |  |  |                 tableIns.reload({ | 
 |  |  |                     where: searchData, | 
 |  |  |                     page: { | 
 |  |  |                         curr: pageCurr-1 | 
 |  |  |                         curr: pageCurr - 1 | 
 |  |  |                     } | 
 |  |  |                 }); | 
 |  |  |                 pageCurr -= 1; | 
 |  |  | 
 |  |  |     for (var val in data) { | 
 |  |  |         var find = el.find(":input[id='" + val + "']"); | 
 |  |  |         find.val(data[val]); | 
 |  |  |         if (showImg){ | 
 |  |  |         if (showImg) { | 
 |  |  |             var next = find.next(); | 
 |  |  |             if (next.get(0)){ | 
 |  |  |             if (next.get(0)) { | 
 |  |  |                 if (next.get(0).localName === "img") { | 
 |  |  |                     find.hide(); | 
 |  |  |                     next.attr("src", data[val]); | 
 |  |  | 
 |  |  |  | 
 |  |  | function detailScreen(index) { | 
 |  |  |     var detail = layer.getChildFrame('#data-detail', index); | 
 |  |  |     var height = detail.height()+60; | 
 |  |  |     if (height > ($(window).height()*0.9)) { | 
 |  |  |         height = ($(window).height()*0.9); | 
 |  |  |     var height = detail.height() + 60; | 
 |  |  |     if (height > ($(window).height() * 0.9)) { | 
 |  |  |         height = ($(window).height() * 0.9); | 
 |  |  |     } | 
 |  |  |     layer.style(index, { | 
 |  |  |         top: (($(window).height()-height)/3)+"px", | 
 |  |  |         height: height+'px' | 
 |  |  |         top: (($(window).height() - height) / 3) + "px", | 
 |  |  |         height: height + 'px' | 
 |  |  |     }); | 
 |  |  |     $(".layui-layer-shade").remove(); | 
 |  |  | } |