| | |
| | | skin: 'line', |
| | | cols: [[ |
| | | {type: 'checkbox'} |
| | | // ,{field: 'id', align: 'center',title: 'ID'} |
| | | ,{field: 'id', align: 'center',title: 'ID'} |
| | | // ,{field: 'hostId$', align: 'center',title: '所属商户'} |
| | | ,{field: 'userId$', align: 'left',title: '业务员',hide: false, width: 100} |
| | | ,{field: 'planType$', align: 'left',title: '业务类型', width: 150,hide: false} |
| | | ,{field: 'name', align: 'left',title: '售前规划申请单名称', width: 220, style: 'color: #1890ff;cursor:pointer', event: 'more',hide: false} |
| | | ,{ |
| | | field: 'name', |
| | | align: 'left', |
| | | title: '售前规划申请单名称', |
| | | width: 220, |
| | | style: 'color: #1890ff;cursor:pointer', |
| | | event: 'more', |
| | | hide: false |
| | | } |
| | | ,{field: 'uuid', align: 'left',title: '规划单号', width: 100,hide: false} |
| | | ,{field: 'planNeed$', align: 'left',title: '所需', templet:function(d){return emptyShow(d.planNeed$)},hide: false} |
| | | ,{ |
| | | field: 'planNeed$', |
| | | align: 'left', |
| | | title: '所需', |
| | | templet:function(d){ |
| | | return emptyShow(d.planNeed$) |
| | | }, |
| | | hide: false |
| | | } |
| | | ,{field: 'deptId$', align: 'left',title: '所属部门',hide: true} |
| | | ,{field: 'planner$', align: 'left',title: '规划员',hide: false, width: 100} |
| | | // ,{field: 'nowHeadman$', align: 'left',title: '规划组长',hide: true} |
| | | ,{field: 'orderId$', align: 'left',title: '跟踪项目', width: 220, style: 'color: #1890ff;cursor:pointer', event: 'orderMore',hide: false} |
| | | // ,{field: 'cstmrId$', align: 'left',title: '甲方单位', width: 220, style: 'color: #1890ff;cursor:pointer', event: 'cstmrMore',hide: true} |
| | | ,{field: 'appleTime$', align: 'left',title: '申请日期', hide: true} |
| | | ,{ |
| | | field: 'orderId$', |
| | | align: 'left', |
| | | title: '跟踪项目', |
| | | width: 220, |
| | | style: 'color: #1890ff;cursor:pointer', |
| | | event: 'orderMore',hide: false |
| | | } |
| | | // ,{ |
| | | // field: 'cstmrId$', |
| | | // align: 'left', |
| | | // title: '甲方单位', |
| | | // width: 220, |
| | | // style: 'color: #1890ff;cursor:pointer', |
| | | // event: 'cstmrMore', |
| | | // hide: true |
| | | // } |
| | | ,{field: 'appleTime$', align: 'left',title: '申请日期', hide: false} |
| | | // ,{field: 'beItem$', align: 'center',title: '立项'} |
| | | // ,{field: 'planner', align: 'left',title: '规划员', templet:function(d){return emptyShow(d.planner)}} |
| | | // ,{field: 'finishTime$', align: 'center',title: '完成时间'} |
| | |
| | | ,{field: 'settle$', align: 'center',title: '进度', width: 150} |
| | | // ,{field: 'settleMsg', align: 'center',title: '审核进度'} |
| | | // ,{field: 'comment', align: 'center',title: '评论'} |
| | | // ,{field: 'status$', align: 'center',title: '状态'} |
| | | ,{field: 'createTime$', align: 'left',title: '添加日期', width: 160, hide: false} |
| | | ,{field: 'status$', align: 'center',title: '状态'} |
| | | ,{field: 'createTime$', align: 'left',title: '添加日期', width: 160, hide: true} |
| | | ,{field: 'updateBy$', align: 'left',title: '修改人', width: 100} |
| | | ,{field: 'updateTime$', align: 'left',title: '修改时间', hide: true} |
| | | ,{field: 'memo', align: 'left',title: '注释', hide: true} |
| | | |
| | | ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width: 280} |
| | | ,{field: 'assistantHostSign', align: 'left',title: '主副标记', hide: false} |
| | | ,{field: 'hostPlanId', align: 'left',title: '主ID', hide: false} |
| | | ,{field: 'assistantPlanId', align: 'left',title: '副ID', hide: false} |
| | | ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width: 340} |
| | | ]], |
| | | request: { |
| | | pageName: 'curr', |
| | |
| | | } |
| | | }); |
| | | |
| | | //多文件列表 |
| | | var uploadListIns = upload.render({ |
| | | elem: '#data-btn-file2' |
| | | ,elemList: $('#data-btn-file3') //列表元素对象 |
| | | ,url: '/plan/insert/file/auth' |
| | | ,accept: 'file' |
| | | ,multiple: true |
| | | ,number: 10 |
| | | ,auto: false |
| | | ,bindAction: '#testListAction' |
| | | ,choose: function(obj){ |
| | | // 赋值 |
| | | this.data.planId=$('.layui-layer-title').text() |
| | | var that = this; |
| | | var files = this.files = obj.pushFile(); //将每次选择的文件追加到文件队列 |
| | | //读取本地文件 |
| | | obj.preview(function(index, file, result){ |
| | | var tr = $(['<tr id="upload-'+ index +'">' |
| | | ,'<td>'+ file.name +'</td>' |
| | | ,'<td>'+ (file.size/1014).toFixed(1) +'kb</td>' |
| | | ,'<td><div class="layui-progress" lay-filter="progress-demo-'+ index +'"><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('')); |
| | | $("#data-btn-file2").on("click", (e) => { |
| | | $("#data-btn-upload").click() |
| | | }); |
| | | |
| | | //单个重传 |
| | | tr.find('.demo-reload').on('click', function(){ |
| | | obj.upload(index, file); |
| | | }); |
| | | |
| | | //删除 |
| | | tr.find('.demo-delete').on('click', function(){ |
| | | delete files[index]; //删除对应的文件 |
| | | tr.remove(); |
| | | uploadListIns.config.elem.next()[0].value = ''; //清空 input file 值,以免删除后出现同名文件不可选 |
| | | }); |
| | | |
| | | that.elemList.append(tr); |
| | | element.render('progress'); //渲染新加的进度条组件 |
| | | }); |
| | | } |
| | | ,done: function(res, index, upload){ //成功的回调 |
| | | var that = this; |
| | | //if(res.code == 0){ //上传成功 |
| | | var tr = that.elemList.find('tr#upload-'+ index) |
| | | ,tds = tr.children(); |
| | | tds.eq(3).html(''); //清空操作 |
| | | delete this.files[index]; //删除文件队列已经上传成功的文件 |
| | | 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; |
| | | //} |
| | | this.error(index, upload); |
| | | } |
| | | ,allDone: function(obj){ //多文件上传完毕后的状态回调 |
| | | console.log(obj) |
| | | |
| | | 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; |
| | | } |
| | | ,error: function(index, upload){ //错误回调 |
| | | var that = this; |
| | | var tr = that.elemList.find('tr#upload-'+ index) |
| | | ,tds = tr.children(); |
| | | tds.eq(3).find('.demo-reload').removeClass('layui-hide'); //显示重传 |
| | | } |
| | | ,progress: function(n, elem, e, index){ |
| | | element.progress('progress-demo-'+ index, n + '%'); //执行进度条。n 即为返回的进度百分比 |
| | | } |
| | | |
| | | 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 |
| | | }); |
| | | |
| | | // 添加 |
| | |
| | | method: 'GET', |
| | | success: function (res0) { |
| | | let planType = res0.data.planType; |
| | | console.log(planType.html) |
| | | if (res0.code === 200) { |
| | | admin.open({ |
| | | type: 1, |
| | |
| | | ]) |
| | | let planNeedSel = loadPlanNeedSel(); |
| | | form.val('detail', { |
| | | planTypeName: planType.name |
| | | planTypeName: planType.name, |
| | | userXmlSelPhone: res0.data.mobile |
| | | }); |
| | | layDateRender(); |
| | | form.on('submit(editSubmit)', function (data) { |
| | | console.log(data) |
| | | data.field.planType = planType.id; |
| | | data.field.orderId = orderSel.getValue()[0] ? orderSel.getValue()[0].value : null; |
| | | data.field.cstmrId = cstmrSel.getValue()[0] ? cstmrSel.getValue()[0].value : null; |
| | |
| | | }, function (i) { |
| | | layer.close(i); |
| | | // 指定规划员 |
| | | if (data.settle === 2) { |
| | | if (data.settle === 1) { |
| | | admin.open({ |
| | | type: 1, |
| | | area: '300px', |
| | |
| | | autoRow: true, |
| | | filterable: true, |
| | | remoteSearch: true, |
| | | clickClose: true, |
| | | radio: true, |
| | | remoteMethod: function (val, cb, show) { |
| | | let loadIndex = layer.load(2); |
| | |
| | | approval(data.id); |
| | | } |
| | | }); |
| | | break; |
| | | case 'approvalEnd': |
| | | layer.confirm('审批拒绝?', { |
| | | skin: 'layui-layer-admin', |
| | | shade: .1, |
| | | offset: '200px', |
| | | title: data.name |
| | | }, function (i) { |
| | | layer.close(i); |
| | | approvalEnd(data.id); |
| | | }); |
| | | break; |
| | | case 'assistantPlan': |
| | | assistantPlan(data); |
| | | break; |
| | | case 'edit': |
| | | showEditModel(data); |
| | |
| | | |
| | | // 点击下载按钮时触发文件下载 |
| | | $('#data-btn-file3').on('click', 'a', function() { |
| | | // var downloadUrl = $(this).attr('href'); |
| | | // console.log(downloadUrl) |
| | | // console.log(baseUrl) |
| | | // window.open("/\//"+downloadUrl); |
| | | // return false; |
| | | var downloadUrl = $(this).attr('href'); |
| | | console.log(downloadUrl) |
| | | // 发起 AJAX 请求,获取文件 |
| | | $.ajax({ |
| | | url: '/plan/download/file/auth', |
| | | type: 'POST', |
| | | data: { downloadUrl: downloadUrl }, // 传递下载链接作为参数 |
| | | success: function(response) { |
| | | console.log(response) |
| | | // window.open(baseUrl+response.msg) |
| | | // 创建一个Blob对象 |
| | | var blob = new Blob([response]); |
| | | // 使用FileSaver保存文件 |
| | | var fileName = downloadUrl.substring(downloadUrl.lastIndexOf('\\') + 1); |
| | | console.log(fileName) |
| | | saveAs(blob, fileName); |
| | | }, |
| | | error: function() { |
| | | layer.msg('请求文件下载失败'); |
| | | } |
| | | }); |
| | | let url = getObjectUrl(downloadUrl) |
| | | layer.msg("准备下载中", {icon: 1}); |
| | | // location.href = url |
| | | window.open(url) |
| | | return false; // 阻止默认的链接跳转行为 |
| | | }); |
| | | |
| | |
| | | let loadIndex = layer.load(2); |
| | | $.ajax({ |
| | | url: baseUrl+"/plan/approval/auth", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | data: { |
| | | planId: planId, |
| | | 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}); |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | |
| | | function approvalEnd(planId, plannerId, dIdx) { |
| | | let loadIndex = layer.load(2); |
| | | $.ajax({ |
| | | url: baseUrl+"/plan/approvalEnd/auth", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | data: { |
| | | planId: planId, |
| | |
| | | }); |
| | | } |
| | | |
| | | /* 新建 */ |
| | | function assistantPlan(data) { |
| | | layer.confirm('确定要新建货架规划审批吗?', { |
| | | skin: 'layui-layer-admin', |
| | | shade: .1 |
| | | }, function (i) { |
| | | layer.close(i); |
| | | var loadIndex = layer.load(2); |
| | | $.ajax({ |
| | | url: baseUrl+"/plan/assistantPlan/add/auth", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | data: { |
| | | hostPlanId: data.id |
| | | }, |
| | | method: 'POST', |
| | | success: function (res) { |
| | | 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}); |
| | | } |
| | | } |
| | | }) |
| | | }); |
| | | } |
| | | |
| | | /* 删除 */ |
| | | function del(ids) { |
| | | layer.confirm('确定要删除选中数据吗?', { |
| | |
| | | autoRow: true, |
| | | filterable: true, |
| | | remoteSearch: true, |
| | | clickClose: true, |
| | | radio: true, |
| | | remoteMethod: function (val, cb, show) { |
| | | $.ajax({ |
| | |
| | | autoRow: true, |
| | | filterable: true, |
| | | remoteSearch: true, |
| | | clickClose: true, |
| | | radio: true, |
| | | remoteMethod: function (val, cb, show) { |
| | | $.ajax({ |
| | |
| | | if (res.code === 200) { |
| | | cb(res.data) |
| | | } else { |
| | | cb([]); |
| | | cb([]);Query/auth |
| | | layer.msg(res.msg, {icon: 2}); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | on: function (data){ |
| | | if (data.change.length > 0) { |
| | | let orderId = data.change[0].value; |
| | | $.ajax({ |
| | | url: baseUrl + "/order/" + orderId + "/auth", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | data: {}, |
| | | method: 'GET', |
| | | success: function (res) { |
| | | if (res.code === 200) { |
| | | let cstmrSel = loadCstmrSel(); |
| | | cstmrSel.setValue([{name: res.data.cstmrId$, value: res.data.cstmrId}]); |
| | | } else { |
| | | layer.msg(res.msg, {icon: 2}); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | |
| | | autoRow: true, |
| | | filterable: true, |
| | | remoteSearch: true, |
| | | clickClose: true, |
| | | radio: true, |
| | | remoteMethod: function (val, cb, show) { |
| | | $.ajax({ |
| | |
| | | method: 'POST', |
| | | success: function (res) { |
| | | if (res.code === 200) { |
| | | cb(res.data) |
| | | // cb(res.data) |
| | | cb([]); |
| | | } else { |
| | | cb([]); |
| | | layer.msg(res.msg, {icon: 2}); |
| | |
| | | method: 'POST', |
| | | success: function (res) { |
| | | if (res.code === 200) { |
| | | console.log(planNeedXmlSelData) |
| | | planNeedXmlSel.update({ |
| | | initValue: planNeedXmlSelData, |
| | | data: res.data |
| | |
| | | autoRow: true, |
| | | filterable: true, |
| | | remoteSearch: true, |
| | | clickClose: true, |
| | | radio: true, |
| | | remoteMethod: function (val, cb, show) { |
| | | $.ajax({ |