|  |  |  | 
|---|
|  |  |  | var pageCurr; | 
|---|
|  |  |  | var admin; | 
|---|
|  |  |  | let nowUserId2 = 0; | 
|---|
|  |  |  | fPriQuote(); | 
|---|
|  |  |  | function fPriQuote() { | 
|---|
|  |  |  | layui.jquery.ajax({ | 
|---|
|  |  |  | url: baseUrl + "/dashboard/user/id/popup/auth", | 
|---|
|  |  |  | data:{token : localStorage.getItem('token')}, | 
|---|
|  |  |  | method: 'GET', | 
|---|
|  |  |  | success: function (res) { | 
|---|
|  |  |  | if (res.code === 200) { | 
|---|
|  |  |  | nowUserId2 = res.data; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | layui.config({ | 
|---|
|  |  |  | base: baseUrl + "/static/layui/lay/modules/" | 
|---|
|  |  |  | }).extend({ | 
|---|
|  |  |  | 
|---|
|  |  |  | 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: 'id', title: 'ID', sort: true,align: 'center', fixed: 'left', width: 80,hide : true, sort:true} | 
|---|
|  |  |  | ,{ | 
|---|
|  |  |  | field: 'templateName', | 
|---|
|  |  |  | align: 'center', | 
|---|
|  |  |  | title: '客户名称', | 
|---|
|  |  |  | style: 'color: #1890ff;cursor:pointer', | 
|---|
|  |  |  | event: 'moreCstmr', | 
|---|
|  |  |  | width: 350, | 
|---|
|  |  |  | hide: false, sort:true | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ,{field: 'cstmrId$', align: 'center',title: '客户id',hide: true} | 
|---|
|  |  |  | ,{field: 'inOrderNum', align: 'center',title: '报价编号',hide: false} | 
|---|
|  |  |  | ,{field: 'orderNum', align: 'center',title: '报价预算单号',hide: false} | 
|---|
|  |  |  | ,{field: 'planId$', align: 'center',title: '规划单号', style: 'color: #1890ff;cursor:pointer', event: 'morePlan'} | 
|---|
|  |  |  | ,{field: 'itemId', align: 'center',title: '规划单号', hide: true} | 
|---|
|  |  |  | ,{field: 'planName$', align: 'center',title: '规划单名称',hide: false} | 
|---|
|  |  |  | ,{field: 'settle$', align: 'center',title: '进度', style: 'color: #1890ff;cursor:pointer', event: 'more', width: 150,hide: false} | 
|---|
|  |  |  | ,{field: 'createTime$', align: 'center',title: '创建时间',hide: false} | 
|---|
|  |  |  | ,{field: 'updateTime$', align: 'center',title: '更新时间',hide: false} | 
|---|
|  |  |  | ,{field: 'memberId$', align: 'center',title: '业务员',hide: false} | 
|---|
|  |  |  | ,{field: 'userId$', align: 'center',title: '创建人员',hide: true} | 
|---|
|  |  |  | ,{field: 'updateUserId$', align: 'center',title: '更新人员',hide: false} | 
|---|
|  |  |  | ,{field: 'inOrderNum', align: 'center',title: '报价编号',hide: false, sort:true} | 
|---|
|  |  |  | // ,{field: 'orderNum', align: 'center',title: '报价预算单号',hide: false} | 
|---|
|  |  |  | ,{ | 
|---|
|  |  |  | field: 'planId$', | 
|---|
|  |  |  | align: 'center', | 
|---|
|  |  |  | title: '规划单号', | 
|---|
|  |  |  | style: 'color: #1890ff;cursor:pointer', | 
|---|
|  |  |  | event: 'morePlan',hide: false,width: 80} | 
|---|
|  |  |  | ,{field: 'itemId', align: 'center',title: '规划单ID', hide: true, sort:true} | 
|---|
|  |  |  | ,{field: 'planName$', align: 'center',title: '规划单名称',hide: false,width: 120} | 
|---|
|  |  |  | ,{ | 
|---|
|  |  |  | field: 'settle$', | 
|---|
|  |  |  | align: 'center', | 
|---|
|  |  |  | title: '进度', | 
|---|
|  |  |  | style: 'color: #1890ff;cursor:pointer', | 
|---|
|  |  |  | event: 'more', | 
|---|
|  |  |  | width: 150, | 
|---|
|  |  |  | hide: false | 
|---|
|  |  |  | } | 
|---|
|  |  |  | ,{field: 'createTime$', align: 'center',title: '创建时间',hide: false,width: 120} | 
|---|
|  |  |  | ,{field: 'updateTime$', align: 'center',title: '更新时间',hide: false,width: 120} | 
|---|
|  |  |  | // ,{field: 'memberId$', align: 'center',title: '业务员',hide: false} | 
|---|
|  |  |  | ,{field: 'userId$', align: 'center',title: '业务员',hide: true} | 
|---|
|  |  |  | ,{field: 'updateUserId$', align: 'center',title: '更新人员',hide: false,width: 80} | 
|---|
|  |  |  | ,{field: 'nowUserId', title: 'nowUserId', hide: true, templet:function(){return nowUserId2}} | 
|---|
|  |  |  | ,{field: 'userId',title: 'userId', hide: true} | 
|---|
|  |  |  | ,{field: 'memberId',title: 'memberId', hide: true} | 
|---|
|  |  |  | ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:280} | 
|---|
|  |  |  | ]], | 
|---|
|  |  |  | request: { | 
|---|
|  |  |  | 
|---|
|  |  |  | pageSize: 'limit' | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | parseData: function (res) { | 
|---|
|  |  |  | res.data.records.forEach((item,index) => { | 
|---|
|  |  |  | item.nowUserId = nowUserId2 | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | return { | 
|---|
|  |  |  | 'code': res.code, | 
|---|
|  |  |  | 'msg': res.msg, | 
|---|
|  |  |  | 
|---|
|  |  |  | pageCurr=curr;pageCount=count; | 
|---|
|  |  |  | limit(); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | $("#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-filename-userName-'+ '">' +'</td>' | 
|---|
|  |  |  | ,'<td id="upload-file-id-' + file.lastModified + '"><div class="layui-progress layui-progress-big" lay-showPercent="true" lay-filter="progress-demo-'+ file.lastModified +'"><div class="layui-progress-bar" lay-percent=""></div></div></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) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | element.progress('progress-demo-'+ file.lastModified, '0%'); //执行进度条。 | 
|---|
|  |  |  | element.init(); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | _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 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | putObject(file,(p) => { | 
|---|
|  |  |  | element.progress('progress-demo-'+ file.lastModified, (Math.round(p * 100)) + "%"); //执行进度条。 | 
|---|
|  |  |  | }).then((result) => { | 
|---|
|  |  |  | var filename = result.name | 
|---|
|  |  |  | layer.msg('上传成功', {icon: 1}); | 
|---|
|  |  |  | $("#upload-file-id-" + file.lastModified).html("上传成功") | 
|---|
|  |  |  | $("#upload-filename-id-" + file.lastModified).html(filename) | 
|---|
|  |  |  | let token = localStorage.getItem("token"); | 
|---|
|  |  |  | $.ajax({ | 
|---|
|  |  |  | url: baseUrl+"/pri/quote/url/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('toolbar(priQuote)', function (obj) { | 
|---|
|  |  |  | var checkStatus = table.checkStatus(obj.config.id); | 
|---|
|  |  |  | console.log(checkStatus) | 
|---|
|  |  |  | // console.log(checkStatus) | 
|---|
|  |  |  | switch(obj.event) { | 
|---|
|  |  |  | case 'addBlank': | 
|---|
|  |  |  | showEditModel(); | 
|---|
|  |  |  | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case 'more': | 
|---|
|  |  |  | top.priQuoteByMore = data.id; | 
|---|
|  |  |  | console.log(top.priQuoteByMore) | 
|---|
|  |  |  | // console.log(top.priQuoteByMore) | 
|---|
|  |  |  |  | 
|---|
|  |  |  | admin.popupRight({ | 
|---|
|  |  |  | type: 1, | 
|---|
|  |  |  | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case "quote": | 
|---|
|  |  |  | console.log(data) | 
|---|
|  |  |  | // console.log(data) | 
|---|
|  |  |  | layer.open({ | 
|---|
|  |  |  | type: 2, | 
|---|
|  |  |  | title: '报价单编辑', | 
|---|
|  |  |  | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | case "uploadLink": | 
|---|
|  |  |  | // 打开弹窗 | 
|---|
|  |  |  | // 构建带参数的内容 | 
|---|
|  |  |  | // console.log(data) | 
|---|
|  |  |  | layer.open({ | 
|---|
|  |  |  | type: 1, | 
|---|
|  |  |  | title: '上传文件-'+data.itemId+'-'+data.id, | 
|---|
|  |  |  | content: $('#myModal') | 
|---|
|  |  |  | }); | 
|---|
|  |  |  | // 获取路径下的文件列表,使用 jQuery 的 ajax 方法 | 
|---|
|  |  |  | $.ajax({ | 
|---|
|  |  |  | url: '/pri/quote/url/view/file/auth', | 
|---|
|  |  |  | headers: {'token': localStorage.getItem('token')}, | 
|---|
|  |  |  | data:{ | 
|---|
|  |  |  | planId:data.itemId | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | 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>' + file.userName + '</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;  // 阻止默认的链接跳转行为 | 
|---|
|  |  |  | }); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 搜索 | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | function getItemInfo(val) { | 
|---|
|  |  |  | $.ajax({ | 
|---|
|  |  |  | url: baseUrl+"/priQuoteBudget/" + val + "/auth", | 
|---|
|  |  |  | url: baseUrl+"/priOnline2/" + val + "/auth", | 
|---|
|  |  |  | headers: {'token': localStorage.getItem('token')}, | 
|---|
|  |  |  | method: 'GET', | 
|---|
|  |  |  | traditional:true, | 
|---|