| | |
| | | var pageCurr; |
| | | var pageCount = 0; |
| | | var treeCond; |
| | | var admin; |
| | | layui.config({ |
| | | base: baseUrl + "/static/layui/lay/modules/" |
| | | }).extend({ |
| | | steps: 'steps/steps', |
| | | }).use(['table','laydate', 'form', 'admin', 'xmSelect', 'steps'], function(){ |
| | | cascader: 'cascader/cascader', |
| | | }).use(['table','laydate', 'form', 'admin', 'xmSelect', 'steps', 'element', 'cascader', 'tree', 'dropdown'], function(){ |
| | | var table = layui.table; |
| | | var $ = layui.jquery; |
| | | var layer = layui.layer; |
| | | var layDate = layui.laydate; |
| | | var form = layui.form; |
| | | var admin = layui.admin; |
| | | admin = layui.admin; |
| | | var xmSelect = layui.xmSelect; |
| | | var steps = layui.steps; |
| | | var cascader = layui.cascader; |
| | | var tree = layui.tree; |
| | | var dropdown = layui.dropdown; |
| | | var element = layui.element; |
| | | |
| | | $('#organization').html(localStorage.getItem('nickname') + ' <i class="layui-icon"></i>'); |
| | | |
| | | // 部门人员 筛选 |
| | | 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(){ |
| | | loadTree(); |
| | | } |
| | | }); |
| | | |
| | | // 数据同步 |
| | | dropdown.render({ |
| | | elem: '#data-btn' |
| | | ,align: 'right' |
| | | ,style: 'border-radius: 5px;' |
| | | ,className: 'site-dropdown-demo' |
| | | ,data: [ |
| | | { |
| | | title: '模板下载' |
| | | ,templet: '<i class="layui-icon layui-icon-template-1"></i>{{d.title}}' |
| | | ,id: 1 |
| | | }, |
| | | { |
| | | title: '导入 Excel' |
| | | ,templet: '<i class="layui-icon layui-icon-upload"></i>{{d.title}}' |
| | | ,id: 2 |
| | | }, |
| | | {type: '-'}, //分割线 |
| | | { |
| | | title: '导出 Excel' |
| | | ,templet: '<i class="layui-icon layui-icon-export"></i>{{d.title}}' |
| | | ,id: 3 |
| | | } |
| | | ] |
| | | ,click: async function(item){ |
| | | switch (item.id) { |
| | | case 1: |
| | | // 模板下载 |
| | | layer.load(1, {shade: [0.1,'#fff']}); |
| | | location.href = baseUrl + "/mould/跟踪项目导入模板.xls"; |
| | | layer.closeAll('loading'); |
| | | break |
| | | case 2: |
| | | // 导入 Excel |
| | | $("#importExcel").trigger("click"); |
| | | break |
| | | case 3: |
| | | // 导出 Excel |
| | | layer.msg("来不及做,等等", {icon: 6}); |
| | | break |
| | | default: |
| | | break |
| | | } |
| | | } |
| | | }); |
| | | |
| | | // 树形图 |
| | | var organizationTree; |
| | | window.loadTree = function(condition){ |
| | | var loadIndex = layer.load(2); |
| | | $.ajax({ |
| | | url: baseUrl+"/dept/user/tree/auth", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | data: { |
| | | 'condition': condition |
| | | }, |
| | | method: 'POST', |
| | | success: function (res) { |
| | | layer.close(loadIndex); |
| | | if (res.code === 200){ |
| | | organizationTree = tree.render({ |
| | | elem: '#organizationTree', |
| | | id: 'organizationTree', |
| | | onlyIconControl: true, |
| | | data: res.data, |
| | | click: function (obj) { |
| | | treeCond = { |
| | | key: obj.data.key, |
| | | val: obj.data.id |
| | | } |
| | | $('#organization').html(obj.data.title + ' <i class="layui-icon"></i>'); |
| | | $('#organizationTree').find('.ew-tree-click').removeClass('ew-tree-click'); |
| | | $(obj.elem).children('.layui-tree-entry').addClass('ew-tree-click'); |
| | | clearFormVal($('#search-box')); |
| | | tableIns.reload({ |
| | | where: {[obj.data.key]: obj.data.id}, |
| | | page: {curr: 1} |
| | | }); |
| | | } |
| | | }); |
| | | treeData = res.data; |
| | | } else if (res.code === 403){ |
| | | top.location.href = baseUrl+"/"; |
| | | } else { |
| | | layer.msg(res.msg) |
| | | } |
| | | } |
| | | }) |
| | | } |
| | | |
| | | // 数据渲染 |
| | | tableIns = table.render({ |
| | |
| | | page: true, |
| | | limit: 15, |
| | | limits: [15, 30, 50, 100, 200, 500], |
| | | toolbar: '#toolbar', |
| | | cellMinWidth: 50, |
| | | height: 'full-120', |
| | | // cellMinWidth: 100, |
| | | height: 'full-148', |
| | | // size: 'sm', |
| | | skin: 'line', |
| | | cols: [[ |
| | | {type: 'checkbox'} |
| | | // ,{field: 'id', align: 'center',title: 'ID'} |
| | | // ,{field: 'hostId$', align: 'center',title: '所属商户'} |
| | | ,{field: 'userId$', align: 'center',title: '业务员'} |
| | | ,{field: 'planType$', align: 'center',title: '业务类型'} |
| | | ,{field: 'name', align: 'center',title: '售前规划申请单名称'} |
| | | ,{field: 'planNeed$', align: 'center',title: '所需'} |
| | | ,{field: 'deptId$', align: 'center',title: '所属部门'} |
| | | ,{field: 'orderId$', align: 'center',title: '跟踪项目'} |
| | | ,{field: 'cstmrId$', align: 'center',title: '甲方单位'} |
| | | ,{field: 'uuid', align: 'center',title: '规划单代号'} |
| | | ,{field: 'appleTime$', align: 'center',title: '申请日期'} |
| | | |
| | | ,{field: 'beItem$', align: 'center',title: '立项'} |
| | | ,{field: 'planner', align: 'center',title: '规划员'} |
| | | ,{field: 'finishTime$', align: 'center',title: '完成时间'} |
| | | ,{field: 'form', align: 'center',title: '表单内容'} |
| | | ,{field: 'change$', align: 'center',title: '更改方案'} |
| | | ,{field: 'changeTime', align: 'center',title: '更改次数'} |
| | | ,{field: 'changeReason', align: 'center',title: '更改方案原因'} |
| | | ,{field: 'planBonus', align: 'center',title: '规格奖金'} |
| | | ,{field: 'planLeaderBonus', align: 'center',title: '规格组长奖金'} |
| | | ,{field: 'userId$', align: 'left',title: '业务员'} |
| | | ,{field: 'planType$', align: 'left',title: '业务类型', width: 150} |
| | | ,{field: 'name', align: 'left',title: '售前规划申请单名称', width: 220, style: 'color: #1890ff;cursor:pointer', event: 'more'} |
| | | ,{field: 'uuid', align: 'left',title: '规划单号', width: 100} |
| | | ,{field: 'planNeed$', align: 'left',title: '所需', templet:function(d){return emptyShow(d.planNeed$)}} |
| | | ,{field: 'deptId$', align: 'left',title: '所属部门'} |
| | | ,{field: 'orderId$', align: 'left',title: '跟踪项目', width: 220, style: 'color: #1890ff;cursor:pointer', event: 'orderMore'} |
| | | // ,{field: 'cstmrId$', align: 'left',title: '甲方单位', width: 220, style: 'color: #1890ff;cursor:pointer', event: 'cstmrMore'} |
| | | ,{field: 'appleTime$', align: 'left',title: '申请日期', hide: true} |
| | | // ,{field: 'beItem$', align: 'center',title: '立项'} |
| | | // ,{field: 'planner', align: 'left',title: '规划员', templet:function(d){return emptyShow(d.planner)}} |
| | | // ,{field: 'finishTime$', align: 'center',title: '完成时间'} |
| | | // ,{field: 'form', align: 'center',title: '表单内容'} |
| | | // ,{field: 'change$', align: 'center',title: '更改方案'} |
| | | // ,{field: 'changeTime', align: 'center',title: '更改次数'} |
| | | // ,{field: 'changeReason', align: 'center',title: '更改方案原因'} |
| | | // ,{field: 'planBonus', align: 'center',title: '规格奖金'} |
| | | // ,{field: 'planLeaderBonus', align: 'center',title: '规格组长奖金'} |
| | | // ,{field: 'files', align: 'center',title: '附件'} |
| | | // ,{field: 'settle$', align: 'center',title: '进度'} |
| | | // ,{field: 'settleMsg', align: 'center',title: '审核进度'} |
| | | // ,{field: 'comment', align: 'center',title: '评论'} |
| | | // ,{field: 'status$', align: 'center',title: '状态'} |
| | | ,{field: 'updateBy$', align: 'center',title: '修改人员'} |
| | | ,{field: 'updateTime$', align: 'center',title: '修改时间'} |
| | | ,{field: 'memo', align: 'center',title: '注释'} |
| | | ,{field: 'createTime$', align: 'left',title: '添加日期', width: 160, hide: false} |
| | | ,{field: 'updateBy$', align: 'left',title: '修改人'} |
| | | ,{field: 'updateTime$', align: 'left',title: '修改时间', hide: true} |
| | | ,{field: 'memo', align: 'left',title: '注释', hide: true} |
| | | |
| | | ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width:120} |
| | | ,{fixed: 'right', title:'操作', align: 'center', toolbar: '#operate', width: 180} |
| | | ]], |
| | | request: { |
| | | pageName: 'curr', |
| | |
| | | } |
| | | }); |
| | | |
| | | // 添加 |
| | | $("#planAddBtn").click(function () { |
| | | let loadIndex = layer.load(2); |
| | | $.ajax({ |
| | | url: baseUrl+"/planType/list/radio/auth", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | method: 'POST', |
| | | success: function (res) { |
| | | if (res.code === 200){ |
| | | admin.open({ |
| | | type: 1, |
| | | area: '300px', |
| | | title: '新建售前规划申请单', |
| | | content: $('#addDialogPre').html(), |
| | | success: function (layero, dIndex) { |
| | | let template = Handlebars.compile($('#planTypeTpl').html()); |
| | | $('#planTypeBox').html(template({list: res.data.map(function (d) { |
| | | return { |
| | | id: d.id, |
| | | name: d.name, |
| | | checked: d.checked |
| | | } |
| | | })}) |
| | | ); |
| | | element.init();form.render(); |
| | | layer.close(loadIndex); |
| | | // 确认规划单类型 |
| | | form.on('submit(planTypeSubmit)', function (data) { |
| | | layer.close(dIndex); |
| | | let planTypeId = data.field.planType; |
| | | let loadIndex0 = layer.load(2); |
| | | $.ajax({ |
| | | url: baseUrl + "/planType/" + planTypeId + "/plan/auth", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | method: 'GET', |
| | | success: function (res0) { |
| | | let planType = res0.data.planType; |
| | | if (res0.code === 200) { |
| | | admin.open({ |
| | | type: 1, |
| | | area: ["95%", "90%"], |
| | | offset: 'auto', |
| | | title: '添加售前规划申请单' + ' - ' + planType.name, |
| | | content: $('#editDialog').html(), |
| | | success: function (layero0, dIndex0) { |
| | | $('#customizeBox').html(planType.html) |
| | | |
| | | layer.close(loadIndex0); |
| | | let orderSel = loadOrderSel(); |
| | | let cstmrSel = loadCstmrSel(); |
| | | let userSel = loadUserSel(); |
| | | userSel.setValue([ |
| | | {name: res0.data.nickName, value: Number(res0.data.userId)}, |
| | | ]) |
| | | let planNeedSel = loadPlanNeedSel(); |
| | | form.val('detail', { |
| | | planTypeName: planType.name |
| | | }); |
| | | layDateRender(); |
| | | form.on('submit(editSubmit)', function (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; |
| | | data.field.userId = userSel.getValue()[0] ? userSel.getValue()[0].value : null; |
| | | data.field.planNeed = planNeedSel.getValue()[0] ? planNeedSel.getValue()[0].value : null; |
| | | |
| | | delete data.field.select;delete data.field.planTypeName; |
| | | |
| | | if (!data.field.orderId) { |
| | | layer.msg("跟踪项目不能为空", {icon: 2}); |
| | | top.requireTip($('#orderXmlSel')); |
| | | return false; |
| | | } |
| | | if (!data.field.cstmrId) { |
| | | layer.msg("客户名称不能为空", {icon: 2}); |
| | | top.requireTip($('#cstmrXmlSel')); |
| | | return false; |
| | | } |
| | | if (!data.field.userId) { |
| | | layer.msg("业务员不能为空", {icon: 2}); |
| | | top.requireTip($('#userXmlSel')); |
| | | return false; |
| | | } |
| | | var loadIndex = layer.load(2); |
| | | $.ajax({ |
| | | url: baseUrl+"/plan/add/auth", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | data: data.field, |
| | | method: 'POST', |
| | | success: function (res) { |
| | | layer.close(loadIndex); |
| | | if (res.code === 200){ |
| | | layer.close(dIndex0); |
| | | layer.msg(res.msg, {icon: 1}); |
| | | tableReload(); |
| | | } else if (res.code === 403){ |
| | | top.location.href = baseUrl+"/"; |
| | | } else { |
| | | layer.msg(res.msg, {icon: 2}); |
| | | } |
| | | } |
| | | }) |
| | | return false; |
| | | }); |
| | | $(layero).children('.layui-layer-content').css('overflow', 'visible'); |
| | | layui.form.render('select'); |
| | | } |
| | | }); |
| | | } else if (res0.code === 403) { |
| | | top.location.href = baseUrl + "/"; |
| | | } else { |
| | | layer.msg(res0.msg, {icon: 2}); |
| | | } |
| | | } |
| | | }) |
| | | return false; |
| | | }); |
| | | } |
| | | }) |
| | | } else if (res.code === 403){ |
| | | top.location.href = baseUrl+"/"; |
| | | } else { |
| | | layer.msg(res.msg, {icon: 2}); |
| | | } |
| | | } |
| | | }) |
| | | }); |
| | | |
| | | // 删除 |
| | | form.on('submit(planDel)', function (data) { |
| | | let checkStatus = layui.table.checkStatus('plan').data; |
| | | if (checkStatus.length === 0) { |
| | | layer.msg('请选择要删除的数据', {icon: 2}); |
| | | return; |
| | | } |
| | | del(checkStatus.map(function (d) { |
| | | return d.id; |
| | | })); |
| | | }); |
| | | |
| | | // 监听排序事件 |
| | | table.on('sort(plan)', function (obj) { |
| | | var searchData = {}; |
| | |
| | | }); |
| | | }); |
| | | |
| | | // 监听头工具栏事件 |
| | | table.on('toolbar(plan)', function (obj) { |
| | | var checkStatus = table.checkStatus(obj.config.id).data; |
| | | switch(obj.event) { |
| | | case 'addData': |
| | | showEditModel(); |
| | | break; |
| | | case 'deleteData': |
| | | if (checkStatus.length === 0) { |
| | | layer.msg('请选择要删除的数据', {icon: 2}); |
| | | return; |
| | | } |
| | | del(checkStatus.map(function (d) { |
| | | return d.id; |
| | | })); |
| | | break; |
| | | case 'exportData': |
| | | admin.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); |
| | | fields.push(col.field); |
| | | } |
| | | }); |
| | | var exportData = {}; |
| | | $.each($('#search-box [name]').serializeArray(), function() { |
| | | exportData[this.name] = this.value; |
| | | }); |
| | | var param = { |
| | | 'plan': exportData, |
| | | 'fields': fields |
| | | }; |
| | | $.ajax({ |
| | | url: baseUrl+"/plan/export/auth", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | data: JSON.stringify(param), |
| | | 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'); |
| | | } else if (res.code === 403) { |
| | | top.location.href = baseUrl+"/"; |
| | | } else { |
| | | layer.msg(res.msg, {icon: 2}) |
| | | } |
| | | } |
| | | }); |
| | | }); |
| | | break; |
| | | } |
| | | }); |
| | | |
| | | // 监听行工具事件 |
| | | table.on('tool(plan)', function(obj){ |
| | | var data = obj.data; |
| | | switch (obj.event) { |
| | | case 'more': |
| | | top.planByMore = data.id; |
| | | admin.popupRight({ |
| | | type: 1, |
| | | window: "top", |
| | | area: "1250px", |
| | | url: "plan_more.html", |
| | | end: function () { |
| | | // $(".layui-laypage-btn")[0].click(); |
| | | } |
| | | }) |
| | | break; |
| | | case 'cstmrMore': |
| | | top.cstmrByMore = data.cstmrId; |
| | | admin.popupRight({ |
| | | type: 1, |
| | | window: "top", |
| | | area: "1250px", |
| | | url: "../cstmr/cstmr_more.html", |
| | | end: function () { |
| | | // $(".layui-laypage-btn")[0].click(); |
| | | } |
| | | }) |
| | | break; |
| | | case 'orderMore': |
| | | top.orderByMore = data.orderId; |
| | | admin.popupRight({ |
| | | type: 1, |
| | | window: "top", |
| | | area: "1250px", |
| | | url: "../order/order_more.html", |
| | | end: function () { |
| | | // $(".layui-laypage-btn")[0].click(); |
| | | } |
| | | }) |
| | | break; |
| | | case 'approval': |
| | | layer.confirm('审批通过?', { |
| | | skin: 'layui-layer-admin', |
| | | shade: .1, |
| | | offset: '200px', |
| | | title: data.name |
| | | }, function (i) { |
| | | layer.close(i); |
| | | // 指定规划员 |
| | | if (data.settle === 2) { |
| | | 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, |
| | | radio: true, |
| | | remoteMethod: function (val, cb, show) { |
| | | let loadIndex = layer.load(2); |
| | | $.ajax({ |
| | | url: baseUrl+"/plan/planner/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 'edit': |
| | | showEditModel(data); |
| | | break; |
| | |
| | | } |
| | | }); |
| | | |
| | | function approval(planId, plannerId, dIdx) { |
| | | 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 showEditModel(mData) { |
| | | admin.open({ |
| | | type: 1, |
| | | area: '600px', |
| | | title: (mData ? '修改' : '添加') + '', |
| | | content: $('#editDialog').html(), |
| | | success: function (layero, dIndex) { |
| | | layDateRender(mData); |
| | | form.val('detail', mData); |
| | | form.on('submit(editSubmit)', function (data) { |
| | | var loadIndex = layer.load(2); |
| | | $.ajax({ |
| | | url: baseUrl+"/plan/"+(mData?'update':'add')+"/auth", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | data: data.field, |
| | | method: 'POST', |
| | | success: function (res) { |
| | | layer.close(loadIndex); |
| | | 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}); |
| | | } |
| | | let loadIndex = layer.load(2); |
| | | $.ajax({ |
| | | url: baseUrl + "/plan/" + mData.id + "/auth", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | method: 'GET', |
| | | success: function (res) { |
| | | layer.close(loadIndex); |
| | | if (res.code === 200){ |
| | | let plan = res.data; |
| | | admin.open({ |
| | | type: 1, |
| | | area: ["95%", "90%"], |
| | | offset: 'auto', |
| | | title: '编辑售前规划申请单 - ' + plan.planType$, |
| | | content: $('#editDialog').html(), |
| | | success: function (layero, dIndex) { |
| | | $('#customizeBox').html(plan.formHtml); |
| | | let orderSel = loadOrderSel(); |
| | | let cstmrSel = loadCstmrSel(); |
| | | let userSel = loadUserSel(); |
| | | let planNeedSel = loadPlanNeedSel(); |
| | | if (plan.orderId) { orderSel.setValue([{name: plan.orderId$, value: plan.orderId}]); } |
| | | if (plan.cstmrId) { cstmrSel.setValue([{name: plan.cstmrId$, value: plan.cstmrId}]); } |
| | | if (plan.userId) { userSel.setValue([{name: plan.userId$, value: plan.userId}]); } |
| | | if (plan.planNeed) { planNeedSel.setValue([{name: plan.planNeed$, value: plan.planNeed}]); } |
| | | layDateRender(plan); |
| | | plan['planTypeName'] = plan.planType$; |
| | | form.val('detail', plan); |
| | | form.on('submit(editSubmit)', function (data) { |
| | | data.field.orderId = orderSel.getValue()[0] ? orderSel.getValue()[0].value : null; |
| | | data.field.cstmrId = cstmrSel.getValue()[0] ? cstmrSel.getValue()[0].value : null; |
| | | data.field.userId = userSel.getValue()[0] ? userSel.getValue()[0].value : null; |
| | | data.field.planNeed = planNeedSel.getValue()[0] ? planNeedSel.getValue()[0].value : null; |
| | | |
| | | delete data.field.select;delete data.field.planTypeName; |
| | | |
| | | if (!data.field.orderId) { |
| | | layer.msg("跟踪项目不能为空", {icon: 2}); |
| | | top.requireTip($('#orderXmlSel')); |
| | | return false; |
| | | } |
| | | if (!data.field.cstmrId) { |
| | | layer.msg("客户名称不能为空", {icon: 2}); |
| | | top.requireTip($('#cstmrXmlSel')); |
| | | return false; |
| | | } |
| | | let loadIndex = layer.load(2); |
| | | $.ajax({ |
| | | url: baseUrl+"/plan/update/auth", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | data: data.field, |
| | | method: 'POST', |
| | | success: function (res) { |
| | | layer.close(loadIndex); |
| | | 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}); |
| | | } |
| | | } |
| | | }) |
| | | return false; |
| | | }); |
| | | $(layero).children('.layui-layer-content').css('overflow', 'visible'); |
| | | layui.form.render('select'); |
| | | } |
| | | }) |
| | | return false; |
| | | }); |
| | | $(layero).children('.layui-layer-content').css('overflow', 'visible'); |
| | | layui.form.render('select'); |
| | | }); |
| | | } else if (res.code === 403){ |
| | | top.location.href = baseUrl+"/"; |
| | | } else { |
| | | layer.msg(res.msg, {icon: 2}); |
| | | } |
| | | } |
| | | }); |
| | | } |
| | |
| | | // 搜索 |
| | | form.on('submit(search)', function (data) { |
| | | pageCurr = 1; |
| | | tableReload(); |
| | | }); |
| | | |
| | | // 重置 |
| | | form.on('submit(reset)', function (data) { |
| | | pageCurr = 1; |
| | | clearFormVal($('#search-box')); |
| | | pageCount = 0; |
| | | tableReload(); |
| | | }); |
| | | |
| | |
| | | }); |
| | | layDate.render({ |
| | | elem: '#appleTime\\$', |
| | | type: 'datetime', |
| | | value: data!==undefined?data['appleTime\\$']:null |
| | | type: 'date', |
| | | value: data!==undefined?data['appleTime$']:null |
| | | }); |
| | | layDate.render({ |
| | | elem: '#finishTime\\$', |
| | | type: 'datetime', |
| | | value: data!==undefined?data['finishTime\\$']:null |
| | | type: 'date', |
| | | value: data!==undefined?data['finishTime$']:null |
| | | }); |
| | | layDate.render({ |
| | | elem: '#createTime\\$', |
| | | type: 'datetime', |
| | | value: data!==undefined?data['createTime\\$']:null |
| | | value: data!==undefined?data['createTime$']:null |
| | | }); |
| | | layDate.render({ |
| | | elem: '#updateTime\\$', |
| | | type: 'datetime', |
| | | value: data!==undefined?data['updateTime\\$']:null |
| | | value: data!==undefined?data['updateTime$']:null |
| | | }); |
| | | |
| | | }, 300); |
| | | } |
| | | layDateRender(); |
| | | |
| | | window.loadDeptSel = function () { |
| | | window.loadPlanTypeSel = function () { |
| | | return xmSelect.render({ |
| | | el: '#deptXmlSel', |
| | | el: '#planTypeXmlSel', |
| | | autoRow: true, |
| | | filterable: true, |
| | | remoteSearch: true, |
| | | radio: true, |
| | | remoteMethod: function (val, cb, show) { |
| | | $.ajax({ |
| | | url: baseUrl + "/dept/all/get/kv", |
| | | url: baseUrl + "/planType/all/get/kv", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | data: { |
| | | condition: val |
| | |
| | | }); |
| | | } |
| | | |
| | | window.loadPlanTypeSel = function () { |
| | | window.loadOrderSel = function () { |
| | | return xmSelect.render({ |
| | | el: '#planTypeXmlSel', |
| | | el: '#orderXmlSel', |
| | | autoRow: true, |
| | | filterable: true, |
| | | remoteSearch: true, |
| | | radio: true, |
| | | remoteMethod: function (val, cb, show) { |
| | | $.ajax({ |
| | | url: baseUrl + "/planType/all/get/kv", |
| | | url: baseUrl + "/order/all/get/kv", |
| | | headers: {'token': localStorage.getItem('token')}, |
| | | data: { |
| | | condition: val |
| | |
| | | $.each($('#search-box [name]').serializeArray(), function() { |
| | | searchData[this.name] = this.value; |
| | | }); |
| | | if (treeCond) { |
| | | searchData[treeCond.key] = treeCond.val; |
| | | } |
| | | tableIns.reload({ |
| | | where: searchData, |
| | | page: {curr: pageCurr} |
| | |
| | | $(".layui-laypage-btn")[0].click(); |
| | | } |
| | | } |
| | | |
| | | function upload(obj){ |
| | | if(!obj.files) { |
| | | return; |
| | | } |
| | | var file = obj.files[0]; |
| | | admin.confirm('确认同步 [' + file.name +'] 文件吗?', function (index) { |
| | | layer.load(1, {shade: [0.1,'#fff']}); |
| | | var url = baseUrl + "/plan/excel/import/auth"; |
| | | var form = new FormData(); |
| | | form.append("file", file); |
| | | let xhr = new XMLHttpRequest(); |
| | | xhr.open("post", url, true); |
| | | xhr.setRequestHeader('token', localStorage.getItem('token')); |
| | | xhr.onload = uploadComplete; |
| | | xhr.onerror = uploadFailed; |
| | | xhr.onloadend = function () { |
| | | layer.closeAll('loading'); |
| | | }; |
| | | // xhr.upload.onprogress = progressFunction; |
| | | xhr.upload.onloadstart = function(){ |
| | | ot = new Date().getTime(); |
| | | oloaded = 0; |
| | | }; |
| | | xhr.send(form); |
| | | }, function(index){ |
| | | }); |
| | | } |
| | | function uploadComplete(evt) { |
| | | let res = JSON.parse(evt.target.responseText); |
| | | if(res.code === 200) { |
| | | layer.msg(res.msg, {icon: 1}); |
| | | tableReload(); |
| | | } else { |
| | | alert(res.msg); |
| | | // layer.msg(res.msg, {icon: 2}); |
| | | } |
| | | } |
| | | function uploadFailed(evt) { |
| | | let res = JSON.parse(evt.target.responseText); |
| | | alert(res.msg); |
| | | // layer.msg(res.msg, {icon: 2}); |
| | | } |