刘洪青 | e984f3c | 2021-11-06 09:27:00 +0800 | [diff] [blame^] | 1 | |
| 2 | |
| 3 | (function () { |
| 4 | |
| 5 | // TODO:修改接口的服务地址 |
| 6 | var serverUrl = 'http://dev-center.paas.newcapec.cn'; |
| 7 | // TODO:修改岗位代码(APISHBMGLY 部门管理员, APISHBMLD 部门领导) |
| 8 | var postCode = 'APISHBMLD'; |
| 9 | |
| 10 | var fieldSonformId = "sonform_colorful_egg_1616556009894"; |
| 11 | |
| 12 | //从localStorage中获取currentUser以获取工号 |
| 13 | var username = JSON.parse(localStorage.currentUser).username; // console.log('username', username); |
| 14 | // var username = '20210324'; |
| 15 | //从localStorage中获取token |
| 16 | // var token = localStorage.getItem('Admin-Token'); console.log('token', token); |
| 17 | |
| 18 | function httpRequest(paramObj,fun,errFun){ |
| 19 | var xmlhttp = null; |
| 20 | /*创建XMLHttpRequest对象, |
| 21 | *老版本的 Internet Explorer(IE5 和 IE6)使用 ActiveX 对象:new ActiveXObject("Microsoft.XMLHTTP") |
| 22 | * */ |
| 23 | if(window.XMLHttpRequest){ |
| 24 | xmlhttp = new XMLHttpRequest(); |
| 25 | }else if(window.ActiveXObject) { |
| 26 | xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); |
| 27 | } |
| 28 | /*判断是否支持请求*/ |
| 29 | if(xmlhttp == null){ |
| 30 | window.formMsgBox.alert('你的浏览器不支持XMLHttp'); |
| 31 | return; |
| 32 | } |
| 33 | /*请求方式,并且转换为大写*/ |
| 34 | var httpType = (paramObj.type || 'GET').toUpperCase(); |
| 35 | /*数据类型*/ |
| 36 | var dataType = paramObj.dataType || 'json'; |
| 37 | /*请求接口*/ |
| 38 | var httpUrl = paramObj.httpUrl || ''; |
| 39 | /*是否异步请求*/ |
| 40 | var async = paramObj.async || true; |
| 41 | /*请求参数--post请求参数格式为:foo=bar&lorem=ipsum*/ |
| 42 | var paramData = paramObj.data || []; |
| 43 | /*var requestData = ''; |
| 44 | for(var name in paramData){ |
| 45 | requestData += name + '='+ paramData[name] + '&'; |
| 46 | } |
| 47 | requestData = requestData == '' ? '' : requestData.substring(0,requestData.length - 1);*/ |
| 48 | /*请求接收*/ |
| 49 | var requestData = JSON.stringify(paramData); |
| 50 | xmlhttp.onreadystatechange = function(){ |
| 51 | if(xmlhttp.readyState == 4 && xmlhttp.status == 200) { |
| 52 | /*成功回调函数*/ |
| 53 | fun(xmlhttp.responseText); |
| 54 | }else{ |
| 55 | /*失败回调函数*/ |
| 56 | errFun; |
| 57 | } |
| 58 | } |
| 59 | /*接口连接,先判断连接类型是post还是get*/ |
| 60 | if(httpType == 'GET') { |
| 61 | xmlhttp.open("GET",httpUrl,async); |
| 62 | //加入token |
| 63 | // xmlhttp.setRequestHeader("X-Id-Token", token); |
| 64 | xmlhttp.send(null); |
| 65 | }else if(httpType == 'POST'){ |
| 66 | xmlhttp.open("POST",httpUrl,async); |
| 67 | //发送合适的请求头信息 |
| 68 | //xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); |
| 69 | xmlhttp.setRequestHeader("Content-type", "application/json;charset=UTF-8"); |
| 70 | //加入token |
| 71 | // xmlhttp.setRequestHeader("X-Id-Token", token); |
| 72 | xmlhttp.send(requestData); |
| 73 | } |
| 74 | } |
| 75 | |
| 76 | //获取表单数据 |
| 77 | function getData(model){ |
| 78 | var temp; |
| 79 | window.globalBus.$on('getData',function(data){ |
| 80 | //子表数据返回list |
| 81 | if(data.model.indexOf("sonform") != -1){ |
| 82 | temp = data.sonValues; |
| 83 | }else{ |
| 84 | temp = data.options.value; |
| 85 | } |
| 86 | }); |
| 87 | window.globalBus.$emit('findData',model); |
| 88 | return temp; |
| 89 | } |
| 90 | |
| 91 | function contains(arr, obj) { |
| 92 | var i = arr.length; |
| 93 | while (i--) { |
| 94 | if (arr[i] === obj) { |
| 95 | return true; |
| 96 | } |
| 97 | } |
| 98 | return false; |
| 99 | } |
| 100 | |
| 101 | function filterSonformData(model, sonformData, orgIds) { |
| 102 | |
| 103 | var dataList = []; |
| 104 | sonformData.forEach(function(item){ |
| 105 | if(contains(orgIds, item.OrganizationId)){ |
| 106 | dataList.push(item); |
| 107 | } |
| 108 | }); |
| 109 | |
| 110 | window.globalBus.$emit('resetSonFormData',{sonFormModel:model, sonFormData:dataList}); |
| 111 | } |
| 112 | |
| 113 | var fieldSonformData = JSON.stringify(getData(fieldSonformId)); // console.log('fieldSonformData', fieldSonformData); |
| 114 | |
| 115 | |
| 116 | var url = serverUrl + '/api/v1/portal/public/account/'+ username +'/post/'+ postCode +'/organizations'; |
| 117 | // ajax 请求接口,获取当前用户在岗位下的所属部门 |
| 118 | httpRequest( |
| 119 | {httpUrl: url, type: 'get'}, |
| 120 | function(respondDada) { |
| 121 | console.log('respondDada', respondDada); |
| 122 | var jsonResponse = JSON.parse(respondDada); |
| 123 | console.log('jsonResponse', jsonResponse); |
| 124 | |
| 125 | var orgIds = []; |
| 126 | jsonResponse.data.forEach(function(organization) { |
| 127 | orgIds.push(organization.organizationId); |
| 128 | }); |
| 129 | console.log('orgIds', orgIds); |
| 130 | |
| 131 | filterSonformData(fieldSonformId, JSON.parse(fieldSonformData), orgIds); // console.log('fieldSonformData', fieldSonformData); |
| 132 | |
| 133 | }, |
| 134 | function(err) { |
| 135 | console.log('err', err); |
| 136 | } |
| 137 | ); |
| 138 | |
| 139 | window.btnBus.$emit('btn',{name:'同意',funcAwaitEmit:true});//禁用默认方法 |
| 140 | window.btnBus.$emit('btn',{name:'不同意',funcAwaitEmit:true});//禁用默认方法 |
| 141 | window.btnBus.$on('btnClicked',function(btn){ |
| 142 | |
| 143 | var unselectFieldSonformData = []; |
| 144 | |
| 145 | var currentFieldSonformData = getData(fieldSonformId); |
| 146 | currentFieldSonformData.forEach(function(item){ |
| 147 | unselectFieldSonformData.push(item.ApiFieldKey); |
| 148 | }); |
| 149 | |
| 150 | // console.log(btn); |
| 151 | |
| 152 | if(btn.c_name=="同意") { |
| 153 | |
| 154 | var originalFieldSonformData = JSON.parse(fieldSonformData); |
| 155 | originalFieldSonformData.forEach(function(item) { |
| 156 | if (contains(unselectFieldSonformData, item.ApiFieldKey)) { |
| 157 | item.Selection = true; |
| 158 | } |
| 159 | }); |
| 160 | console.log('originalFieldSonformData', originalFieldSonformData); |
| 161 | |
| 162 | window.globalBus.$emit('resetSonFormData',{sonFormModel:fieldSonformId, sonFormData:originalFieldSonformData}); |
| 163 | |
| 164 | window.setTimeout(function(){window.btnBus.$emit('btnFunc',btn);},200);//重启默认方法 |
| 165 | } else if(btn.c_name=="不同意") { |
| 166 | |
| 167 | var originalFieldSonformData = JSON.parse(fieldSonformData); |
| 168 | originalFieldSonformData.forEach(function(item) { |
| 169 | if (contains(unselectFieldSonformData, item.ApiFieldKey)) { |
| 170 | item.Selection = false; |
| 171 | } |
| 172 | }); |
| 173 | console.log('originalFieldSonformData', originalFieldSonformData); |
| 174 | |
| 175 | window.globalBus.$emit('resetSonFormData',{sonFormModel:fieldSonformId, sonFormData:originalFieldSonformData}); |
| 176 | |
| 177 | window.setTimeout(function(){window.btnBus.$emit('btnFunc',btn);},200);//重启默认方法 |
| 178 | } |
| 179 | |
| 180 | }); |
| 181 | |
| 182 | })(); |