blob: 8fe1baf8d58b842ed726b14b84b51c7d3b69777e [file] [log] [blame]
刘洪青e984f3c2021-11-06 09:27:00 +08001
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})();