Просмотр исходного кода

增加 日程管理;将日程提醒消息加到顶部消息中;
工单综合查询增加 录音;
修改 问卷样式;
修改 上班时间设置;
修改 登录页面bug;

fanlongfei лет назад: 6
Родитель
Сommit
9d6f827fdb

+ 0 - 1
CallCenterWeb.UI/Quality/zjpf.html

@@ -229,7 +229,6 @@
229 229
 				} else {
230 230
 					return '-';
231 231
 				}
232
-
233 232
 			}
234 233
 			//编号
235 234
 			function Code(val, row, index) {

+ 4 - 2
CallCenterWeb.UI/Questionnaire/js/QuestionsManagement.js

@@ -106,7 +106,8 @@ $(".leftChange ").click(function() {
106 106
 		layer.prompt({
107 107
 			title: '修改试题题目',
108 108
 			value: Left_CategoryName,
109
-			formType: 0,
109
+			formType: 2,
110
+			area: ['600px', '100px'] //自定义文本域宽高
110 111
 		}, function(names, index) {
111 112
 			$.post(huayi.config.callcenter_url + "QuestionAnswer/Update", {
112 113
 				Id: Left_Cids, //	是	string	id
@@ -131,7 +132,8 @@ $(".leftChange ").click(function() {
131 132
 $(".leftAdd").click(function() {
132 133
 	layer.prompt({
133 134
 		title: '添加试题题目',
134
-		formType: 0,
135
+		formType: 2,
136
+		area: ['600px', '100px'] //自定义文本域宽高
135 137
 	}, function(names, index) {
136 138
 		$.post(huayi.config.callcenter_url + "QuestionAnswer/Add", {
137 139
 			Title: names, //是	string	名称

+ 4 - 2
CallCenterWeb.UI/Questionnaire/js/satisfactionManagement.js

@@ -107,7 +107,8 @@ $(".leftChange ").click(function() {
107 107
 		layer.prompt({
108 108
 			title: '修改试题分类',
109 109
 			value: Left_CategoryName,
110
-			formType: 0,
110
+			formType: 2,
111
+			area: ['600px', '100px'] //自定义文本域宽高
111 112
 		}, function(names, index) {
112 113
 			$.post(huayi.config.callcenter_url + "Questionnaire/CreateOrUpdateQCategory", {
113 114
 				id: Left_Cids,
@@ -148,7 +149,8 @@ $(".leftChange ").click(function() {
148 149
 $(".leftAdd").click(function() {
149 150
 	layer.prompt({
150 151
 		title: '添加试题分类',
151
-		formType: 0,
152
+		formType: 2,
153
+		area: ['600px', '100px'] //自定义文本域宽高
152 154
 	}, function(names, index) {
153 155
 		$.post(huayi.config.callcenter_url + "Questionnaire/CreateOrUpdateQCategory", {
154 156
 			name: names,

+ 1 - 1
CallCenterWeb.UI/Script/Common/huayi.config.js

@@ -3,7 +3,7 @@ if (huayi == undefined) {
3 3
 }
4 4
 huayi.config = {
5 5
     //callcenter_url: "http://localhost:7459/",//生产环境 前端Web站IP和端口
6
-    callcenter_url: "http://192.168.4.18:4669/",//生产环境 前端Web站IP和端口
6
+    callcenter_url: "http://192.168.4.18:4629/",//生产环境 前端Web站IP和端口
7 7
     socket_ip: "192.168.5.7",//WebSocket通讯ip
8 8
     socket_port: "8081",    //WebSocket通讯端口
9 9
     menuworktime: 30000,    //菜单工单数量刷新间隔

+ 256 - 237
CallCenterWeb.UI/Script/Common/huayi.http.js

@@ -1,25 +1,25 @@
1 1
 var helper = {};
2 2
 
3 3
 helper.http = {
4
-	newXMLHttp: function() {
4
+	newXMLHttp: function () {
5 5
 		var XMLHttp = null;
6
-		if(window.XMLHttpRequest) {
6
+		if (window.XMLHttpRequest) {
7 7
 			XMLHttp = new XMLHttpRequest();
8 8
 		}
9
-		if(XMLHttp == null && window.ActiveXObject) {
9
+		if (XMLHttp == null && window.ActiveXObject) {
10 10
 			var clsids = ["MSXML2.XMLHttp.7.0", "MSXML2.XMLHttp.6.0", "MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp.2.0", "MSXML2.XMLHttp.1.0", "MSXML2.XMLHttp", "Microsoft.XMLHttp"];
11
-			for(var i = 0; i < clsids.length && XMLHttp == null; i++) {
11
+			for (var i = 0; i < clsids.length && XMLHttp == null; i++) {
12 12
 				try {
13 13
 					XMLHttp = new ActiveXObject(clsids[i]);
14
-				} catch(e) {}
14
+				} catch (e) { }
15 15
 			}
16 16
 		}
17 17
 		return XMLHttp;
18 18
 	},
19
-	get: function(URL, func) {
19
+	get: function (URL, func) {
20 20
 		try {
21 21
 			var XMLHttp = this.newXMLHttp();
22
-			if(typeof(func) != "function") {
22
+			if (typeof (func) != "function") {
23 23
 				XMLHttp.open("GET", URL, false);
24 24
 				XMLHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
25 25
 				XMLHttp.send(null);
@@ -27,15 +27,15 @@ helper.http = {
27 27
 				var result = XMLHttp.status;
28 28
 				var responseText = XMLHttp.responseText;
29 29
 
30
-				if(result == 200) {
30
+				if (result == 200) {
31 31
 					return responseText;
32 32
 				} else {
33 33
 					return result;
34 34
 				}
35 35
 			} else {
36
-				XMLHttp.onreadystatechange = function() {
37
-					if(XMLHttp.readyState == 4) {
38
-						if(XMLHttp.status == 200) {
36
+				XMLHttp.onreadystatechange = function () {
37
+					if (XMLHttp.readyState == 4) {
38
+						if (XMLHttp.status == 200) {
39 39
 							var responseText = XMLHttp.responseText;
40 40
 							func(responseText);
41 41
 						} else {
@@ -47,12 +47,12 @@ helper.http = {
47 47
 				XMLHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
48 48
 				XMLHttp.send(null);
49 49
 			}
50
-		} catch(e) {}
50
+		} catch (e) { }
51 51
 	},
52
-	post: function(URL, data, func) {
52
+	post: function (URL, data, func) {
53 53
 		try {
54 54
 			var XMLHttp = this.newXMLHttp();
55
-			if(typeof(func) != "function") {
55
+			if (typeof (func) != "function") {
56 56
 				XMLHttp.open("POST", URL, false);
57 57
 				XMLHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
58 58
 				XMLHttp.send(data);
@@ -60,15 +60,15 @@ helper.http = {
60 60
 				var result = XMLHttp.status;
61 61
 				var responseText = XMLHttp.responseText;
62 62
 
63
-				if(result == 200) {
63
+				if (result == 200) {
64 64
 					return responseText;
65 65
 				} else {
66 66
 					return false;
67 67
 				}
68 68
 			} else {
69
-				XMLHttp.onreadystatechange = function() {
70
-					if(XMLHttp.readyState == 4) {
71
-						if(XMLHttp.status == 200) {
69
+				XMLHttp.onreadystatechange = function () {
70
+					if (XMLHttp.readyState == 4) {
71
+						if (XMLHttp.status == 200) {
72 72
 							var responseText = XMLHttp.responseText;
73 73
 							func(responseText);
74 74
 						} else {
@@ -81,20 +81,20 @@ helper.http = {
81 81
 				XMLHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
82 82
 				XMLHttp.send(data);
83 83
 			}
84
-		} catch(e) {}
84
+		} catch (e) { }
85 85
 	}
86 86
 };
87 87
 
88 88
 helper.cookies = {
89
-	del: function(name) {
89
+	del: function (name) {
90 90
 		var exp = new Date();
91 91
 		exp.setTime(exp.getTime() - 1);
92 92
 		var cval = helper.cookies.get(name);
93
-		if(cval != null)
93
+		if (cval != null)
94 94
 			document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
95 95
 	},
96
-	set: function(name, value, remember) {
97
-		if(remember == true) {
96
+	set: function (name, value, remember) {
97
+		if (remember == true) {
98 98
 			var Days = 30;
99 99
 			var exp = new Date();
100 100
 			exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
@@ -103,16 +103,16 @@ helper.cookies = {
103 103
 			document.cookie = name + "=" + escape(value) + ";path=/";
104 104
 		}
105 105
 	},
106
-	setday: function(name, value, remember) {
106
+	setday: function (name, value, remember) {
107 107
 		var Days = remember;
108 108
 		var exp = new Date();
109 109
 		exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
110 110
 		document.cookie = name + "=" + escape(value) + ";path=/;expires=" + exp.toGMTString();
111 111
 
112 112
 	},
113
-	setdomain: function(name, value, remember) {
113
+	setdomain: function (name, value, remember) {
114 114
 		var domain = window.location.host.split(".");
115
-		if(remember == true) {
115
+		if (remember == true) {
116 116
 			var Days = 30;
117 117
 			var exp = new Date();
118 118
 			exp.setTime(exp.getTime() + Days * 24 * 60 * 60 * 1000);
@@ -121,10 +121,10 @@ helper.cookies = {
121 121
 			document.cookie = name + "=" + escape(value) + ";path=/" + ";domain=." + domain[1] + "." + domain[2];
122 122
 		}
123 123
 	},
124
-	get: function(name) {
124
+	get: function (name) {
125 125
 		var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
126 126
 
127
-		if(arr = document.cookie.match(reg)) {
127
+		if (arr = document.cookie.match(reg)) {
128 128
 			return unescape(arr[2]);
129 129
 		} else {
130 130
 			return '';
@@ -140,25 +140,25 @@ var t=help.request.queryString("test");
140 140
 得到t
141 141
 */
142 142
 helper.request = {
143
-	queryString: function(item) {
143
+	queryString: function (item) {
144 144
 		locationSearch = "";
145 145
 		var tmpLocationArr = location.href.split("?");
146
-		if(tmpLocationArr.length > 1) locationSearch = "?" + tmpLocationArr[1];
146
+		if (tmpLocationArr.length > 1) locationSearch = "?" + tmpLocationArr[1];
147 147
 		var svalue = locationSearch.match(new RegExp("[\?\&]" + item + "=([^\&]*)(\&?)", "i"));
148 148
 		var Qvalue = svalue ? svalue[1] : svalue;
149
-		if(Qvalue == null) {
149
+		if (Qvalue == null) {
150 150
 			return "";
151 151
 		} else {
152 152
 			return Qvalue.trim();
153 153
 		}
154 154
 	},
155
-	queryurl: function(url, item) {
155
+	queryurl: function (url, item) {
156 156
 		locationSearch = "";
157 157
 		var tmpLocationArr = url.split("?");
158
-		if(tmpLocationArr.length > 1) locationSearch = "?" + tmpLocationArr[1];
158
+		if (tmpLocationArr.length > 1) locationSearch = "?" + tmpLocationArr[1];
159 159
 		var svalue = locationSearch.match(new RegExp("[\?\&]" + item + "=([^\&]*)(\&?)", "i"));
160 160
 		var Qvalue = svalue ? svalue[1] : svalue;
161
-		if(Qvalue == null) {
161
+		if (Qvalue == null) {
162 162
 			return "";
163 163
 		} else {
164 164
 			return Qvalue.trim();
@@ -169,10 +169,10 @@ helper.request = {
169 169
 helper.pager = {
170 170
 
171 171
 	//分页
172
-	PageList1: function(strFunName) {
172
+	PageList1: function (strFunName) {
173 173
 		/***总页数***/
174 174
 		var intPageCount = parseInt((parseInt(intRecordCount) + parseInt(intPageSize) - 1) / parseInt(intPageSize));
175
-		if(intPageCount <= 1) {
175
+		if (intPageCount <= 1) {
176 176
 			return "";
177 177
 		}
178 178
 
@@ -184,17 +184,17 @@ helper.pager = {
184 184
 
185 185
 		/***结束页码***/
186 186
 		var intEndPage = intStartPage + intPageCurrent - 1;
187
-		if(intPageIndex % intPageCurrent == 0) {
187
+		if (intPageIndex % intPageCurrent == 0) {
188 188
 			intStartPage++;
189 189
 			intEndPage++;
190 190
 		}
191 191
 
192
-		if(intPageIndex % intPageCurrent - 1 == 0 && intPageIndex != 1) {
192
+		if (intPageIndex % intPageCurrent - 1 == 0 && intPageIndex != 1) {
193 193
 			intStartPage--;
194 194
 			intEndPage--;
195 195
 		}
196 196
 
197
-		if(intEndPage >= intPageCount) {
197
+		if (intEndPage >= intPageCount) {
198 198
 			intEndPage = intPageCount;
199 199
 		}
200 200
 
@@ -203,11 +203,11 @@ helper.pager = {
203 203
 		var intDownPage = parseInt(intPageIndex) + 1;
204 204
 		var strUpPage = "<a href=\"#\" onclick=\"" + strFunName + "(" + intUpPage + ")\" >上一页</a>";
205 205
 		var strDownPage = "<a href=\"#\" onclick=\"" + strFunName + "(" + intDownPage + ")\">下一页</a>";
206
-		if(intUpPage < 1) {
206
+		if (intUpPage < 1) {
207 207
 			//intUpPage = 1;
208 208
 			strUpPage = "";
209 209
 		}
210
-		if(intPageIndex >= intPageCount) {
210
+		if (intPageIndex >= intPageCount) {
211 211
 			//intDownPage = intPageCount;
212 212
 			strDownPage = "";
213 213
 		}
@@ -215,8 +215,8 @@ helper.pager = {
215 215
 		/***生成页码列表***/
216 216
 		var strPageList = strUpPage;
217 217
 
218
-		for(var i = intStartPage; i <= intEndPage; i++) {
219
-			if(intPageIndex == i) {
218
+		for (var i = intStartPage; i <= intEndPage; i++) {
219
+			if (intPageIndex == i) {
220 220
 				/***当前页码***/
221 221
 				strPageList += "<a style=\"background-image:url(../images/bg/menublue22.jpg); background-position:bottom; background-repeat:repeat-x; padding:1px 6px;border-radius: 4px 4px 4px 4px; margin-right:3px; border:1px solid #aeb2b1;\" >" + i + "</a>";
222 222
 			} else {
@@ -232,21 +232,21 @@ helper.pager = {
232 232
 		return strPageList;
233 233
 
234 234
 	},
235
-	checkPageValue: function() {
235
+	checkPageValue: function () {
236 236
 		var intPageIndexNext = document.getElementById('tb_index').value;
237
-		if(parseInt(intPageIndexNext) == 0) {
237
+		if (parseInt(intPageIndexNext) == 0) {
238 238
 			document.getElementById('tb_index').value = "1";
239 239
 			$.jBox.alert('输入页面不能为0', '提示');
240 240
 			return;
241 241
 		}
242
-		if(intPageIndexNext == "") {
242
+		if (intPageIndexNext == "") {
243 243
 			document.getElementById('tb_index').value = "1";
244 244
 			$.jBox.alert('输入页面不能为空', '提示');
245 245
 			return;
246 246
 		}
247
-		if(intPageIndexNext.length != 0) {
247
+		if (intPageIndexNext.length != 0) {
248 248
 			var intPageCount = parseInt((parseInt(intRecordCount) + parseInt(intPageSize) - 1) / parseInt(intPageSize));
249
-			if(intPageIndexNext <= intPageCount) {
249
+			if (intPageIndexNext <= intPageCount) {
250 250
 				intPageIndex = intPageIndexNext;
251 251
 				loadlist();
252 252
 			} else {
@@ -257,12 +257,12 @@ helper.pager = {
257 257
 			document.getElementById('tb_index').value = "1";
258 258
 		}
259 259
 	},
260
-	loadJS: function(url) {
260
+	loadJS: function (url) {
261 261
 		var domScript = document.createElement('script');
262 262
 		domScript.type = "text/javascript";
263 263
 		domScript.src = url;
264
-		domScript.onload = domScript.onreadystatechange = function() {
265
-			if(!this.readyState || 'loaded' === this.readyState || 'complete' === this.readyState) {
264
+		domScript.onload = domScript.onreadystatechange = function () {
265
+			if (!this.readyState || 'loaded' === this.readyState || 'complete' === this.readyState) {
266 266
 				this.onload = this.onreadystatechange = null;
267 267
 				this.parentNode.removeChild(this);
268 268
 			}
@@ -274,9 +274,9 @@ helper.pager = {
274 274
 helper.masklayer = {
275 275
 	layer: null,
276 276
 	showcount: 0,
277
-	show: function() {
277
+	show: function () {
278 278
 		this.layer = document.getElementById("masklayer");
279
-		if(!this.layer) {
279
+		if (!this.layer) {
280 280
 			this.layer = document.createElement("div");
281 281
 			this.layer.id = "masklayer";
282 282
 			this.layer.className = "masklayer";
@@ -303,21 +303,21 @@ helper.masklayer = {
303 303
 		}
304 304
 		this.showcount++;
305 305
 	},
306
-	hide: function() {
307
-		if(--this.showcount == 0) {
308
-			if(this.layer && this.layer.parentNode) {
306
+	hide: function () {
307
+		if (--this.showcount == 0) {
308
+			if (this.layer && this.layer.parentNode) {
309 309
 				this.layer.parentNode.removeChild(this.layer);
310 310
 			}
311 311
 		}
312 312
 	},
313
-	moveToCenter: function(e, x, y) {
314
-		if(e.style.display == "none") e.style.display = "";
313
+	moveToCenter: function (e, x, y) {
314
+		if (e.style.display == "none") e.style.display = "";
315 315
 		var scrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop);
316 316
 		var scrollLeft = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft);
317
-		if(x > 0) {
317
+		if (x > 0) {
318 318
 			x += scrollLeft;
319 319
 		} else x = parseInt((document.documentElement.clientWidth - e.clientWidth) / 2) + scrollLeft;
320
-		if(y > 0) {
320
+		if (y > 0) {
321 321
 			y += scrollTop;
322 322
 		} else y = parseInt((document.documentElement.clientHeight - e.clientHeight) / 2) + scrollTop;
323 323
 		x = x < 0 ? 0 : x;
@@ -328,7 +328,7 @@ helper.masklayer = {
328 328
 };
329 329
 
330 330
 helper.filter = {
331
-	Transcoding: function(content) {
331
+	Transcoding: function (content) {
332 332
 		content = content.replace(/∞L/g, "<");
333 333
 		content = content.replace(/∞R/g, ">");
334 334
 		content = content.replace(/∞∴/g, "'");
@@ -337,19 +337,19 @@ helper.filter = {
337 337
 		return content;
338 338
 	},
339 339
 	//过滤html
340
-	filterHTMLTag: function(str) {
340
+	filterHTMLTag: function (str) {
341 341
 		str = str.replace(/<\/?[^>]*>/g, ''); //去除HTML tag
342 342
 		str = str.replace(/[ | ]*\n/g, '\n'); //去除行尾空白
343 343
 		//str = str.replace(/\n[\s| | ]*\r/g,'\n'); //去除多余空行
344 344
 		str = str.replace(/ /ig, ''); //去掉 
345 345
 		return str;
346 346
 	},
347
-	delHtmlTag: function(str) { //匹配html标签中的内容  
347
+	delHtmlTag: function (str) { //匹配html标签中的内容  
348 348
 		return str.replace(/<[^>]+>/g, "");
349 349
 	},
350 350
 	//原样式输出内容
351
-	content: function(content) {
352
-		if(content === "null" || content === "undefined" || content === null || content === undefined || content == "") {
351
+	content: function (content) {
352
+		if (content === "null" || content === "undefined" || content === null || content === undefined || content == "") {
353 353
 			content = "暂无内容。。。";
354 354
 		} else {
355 355
 			content = content.replace(/[ ]/g, "&nbsp;").replace(/\ +/g, "&nbsp;").replace(/\r\n/g, "<br />").replace(/\n/g, "<br />");
@@ -357,9 +357,9 @@ helper.filter = {
357 357
 		return content;
358 358
 	},
359 359
 	//电话号码截取前三位和后四位
360
-	cutTel: function(val){
360
+	cutTel: function (val) {
361 361
 		var str = '';
362
-		if(val){
362
+		if (val) {
363 363
 			var val1 = val.substring(0, 3);
364 364
 			var val2 = val.substr(-4);
365 365
 			str = val1 + '****' + val2;
@@ -370,22 +370,22 @@ helper.filter = {
370 370
 };
371 371
 
372 372
 function str2asc(strstr) {
373
-	return("0" + strstr.charCodeAt(0).toString(16)).slice(-2);
373
+	return ("0" + strstr.charCodeAt(0).toString(16)).slice(-2);
374 374
 }
375 375
 helper.url = {
376
-	getpara: function(name) {
376
+	getpara: function (name) {
377 377
 		var val;
378 378
 		paras = window.location.search;
379 379
 		paras = paras.substr(1);
380 380
 		paraarray = paras.split("&");
381
-		for(i = 0; i < paraarray.length; i++) {
381
+		for (i = 0; i < paraarray.length; i++) {
382 382
 			temp = paraarray[i].split("=");
383
-			if(temp[0] == name) {
383
+			if (temp[0] == name) {
384 384
 				val = temp[1];
385 385
 				break;
386 386
 			}
387 387
 		}
388
-		if(val == null || val == "") {
388
+		if (val == null || val == "") {
389 389
 			return "";
390 390
 		} else {
391 391
 			return val;
@@ -393,18 +393,18 @@ helper.url = {
393 393
 	}
394 394
 };
395 395
 helper.sys = {
396
-	getElementsByClassName: function(pnode, className) {
396
+	getElementsByClassName: function (pnode, className) {
397 397
 		var nodes = pnode.getElementsByTagName('*');
398 398
 		var elements = new Array();
399
-		for(var i = 0; i < nodes.length; i++) {
400
-			if(nodes[i].className == className) {
399
+		for (var i = 0; i < nodes.length; i++) {
400
+			if (nodes[i].className == className) {
401 401
 				elements[elements.length] = nodes[i];
402 402
 			}
403 403
 		}
404 404
 		return elements;
405 405
 	},
406
-	removeElement: function(element) {
407
-		if(element && element.parentNode) {
406
+	removeElement: function (element) {
407
+		if (element && element.parentNode) {
408 408
 
409 409
 			element.parentNode.removeChild(element);
410 410
 			return true;
@@ -412,13 +412,13 @@ helper.sys = {
412 412
 			return false;
413 413
 		}
414 414
 	},
415
-	Return: function(url) {
415
+	Return: function (url) {
416 416
 		top.location.href = url;
417 417
 	}
418 418
 };
419 419
 
420 420
 helper.DateFormat = {
421
-	d2s: function(postdate) {
421
+	d2s: function (postdate) {
422 422
 		var second = 1000;
423 423
 		var minutes = second * 60;
424 424
 		var hours = minutes * 60;
@@ -426,94 +426,113 @@ helper.DateFormat = {
426 426
 		var months = days * 30;
427 427
 		var twomonths = days * 365;
428 428
 		var myDate = new Date(Date.parse(postdate));
429
-		if(isNaN(myDate)) {
429
+		if (isNaN(myDate)) {
430 430
 			myDate = new Date(postdate.replace(/-/g, "/"));
431 431
 		}
432 432
 		var nowtime = new Date();
433 433
 		var longtime = nowtime.getTime() - myDate.getTime();
434 434
 		var showtime = 0;
435
-		if(longtime > months * 2) {
435
+		if (longtime > months * 2) {
436 436
 			return postdate;
437
-		} else if(longtime > months) {
437
+		} else if (longtime > months) {
438 438
 			return "1个月前";
439
-		} else if(longtime > days * 7) {
440
-			return("1周前");
441
-		} else if(longtime > days) {
442
-			return(Math.floor(longtime / days) + "天前");
443
-		} else if(longtime > hours) {
444
-			return(Math.floor(longtime / hours) + "小时前");
445
-		} else if(longtime > minutes) {
446
-			return(Math.floor(longtime / minutes) + "分钟前");
447
-		} else if(longtime > second) {
448
-			return(Math.floor(longtime / second) + "秒前");
439
+		} else if (longtime > days * 7) {
440
+			return ("1周前");
441
+		} else if (longtime > days) {
442
+			return (Math.floor(longtime / days) + "天前");
443
+		} else if (longtime > hours) {
444
+			return (Math.floor(longtime / hours) + "小时前");
445
+		} else if (longtime > minutes) {
446
+			return (Math.floor(longtime / minutes) + "分钟前");
447
+		} else if (longtime > second) {
448
+			return (Math.floor(longtime / second) + "秒前");
449 449
 		} else {
450
-			return("刚刚");
451
-		}
452
-	},
453
-	getPreMonth:
454
-		/**
455
-		 * 获取上一个月
456
-		 *
457
-		 * @date 格式为yyyy-mm-dd的日期,如:2014-01-25
458
-		 */
459
-		function(date) {
460
-			var arr = date.split('-');
461
-			var year = arr[0]; //获取当前日期的年份
462
-			var month = arr[1]; //获取当前日期的月份
463
-			var day = arr[2]; //获取当前日期的日
464
-			var days = new Date(year, month, 0);
465
-			days = days.getDate(); //获取当前日期中月的天数
466
-			var year2 = year;
467
-			var month2 = parseInt(month) - 1;
468
-			if(month2 == 0) {
469
-				year2 = parseInt(year2) - 1;
470
-				month2 = 12;
471
-			}
472
-			var day2 = day;
473
-			var days2 = new Date(year2, month2, 0);
474
-			days2 = days2.getDate();
475
-			if(day2 > days2) {
476
-				day2 = days2;
477
-			}
478
-			if(month2 < 10) {
479
-				month2 = '0' + month2;
480
-			}
481
-			var t2 = year2 + '-' + month2 + '-' + day2;
482
-			return t2;
483
-		},
484
-	getNextMonth:
485
-		/**
486
-		 * 获取下一个月
487
-		 *
488
-		 * @date 格式为yyyy-mm-dd的日期,如:2014-01-25
489
-		 */
490
-		function(date) {
491
-			var arr = date.split('-');
492
-			var year = arr[0]; //获取当前日期的年份
493
-			var month = arr[1]; //获取当前日期的月份
494
-			var day = arr[2]; //获取当前日期的日
495
-			var days = new Date(year, month, 0);
496
-			days = days.getDate(); //获取当前日期中的月的天数
497
-			var year2 = year;
498
-			var month2 = parseInt(month) + 1;
499
-			if(month2 == 13) {
500
-				year2 = parseInt(year2) + 1;
501
-				month2 = 1;
502
-			}
503
-			var day2 = day;
504
-			var days2 = new Date(year2, month2, 0);
505
-			days2 = days2.getDate();
506
-			if(day2 > days2) {
507
-				day2 = days2;
508
-			}
509
-			if(month2 < 10) {
510
-				month2 = '0' + month2;
511
-			}
512
-
513
-			var t2 = year2 + '-' + month2 + '-' + day2;
514
-			return t2;
515
-		},
516
-	getNowDate: function() {
450
+			return ("刚刚");
451
+		}
452
+	},
453
+	/**
454
+	* 获取上一个月
455
+	*
456
+	* @date 格式为yyyy-mm-dd的日期,如:2014-01-25
457
+	*/
458
+	getPreMonth: function (date) {
459
+		var arr = date.split('-');
460
+		var year = arr[0]; //获取当前日期的年份
461
+		var month = arr[1]; //获取当前日期的月份
462
+		var day = arr[2]; //获取当前日期的日
463
+		var days = new Date(year, month, 0);
464
+		days = days.getDate(); //获取当前日期中月的天数
465
+		var year2 = year;
466
+		var month2 = parseInt(month) - 1;
467
+		if (month2 == 0) {
468
+			year2 = parseInt(year2) - 1;
469
+			month2 = 12;
470
+		}
471
+		var day2 = day;
472
+		var days2 = new Date(year2, month2, 0);
473
+		days2 = days2.getDate();
474
+		if (day2 > days2) {
475
+			day2 = days2;
476
+		}
477
+		if (month2 < 10) {
478
+			month2 = '0' + month2;
479
+		}
480
+		var t2 = year2 + '-' + month2 + '-' + day2;
481
+		return t2;
482
+	},
483
+	/**
484
+	 * 获取下一个月
485
+	 *
486
+	 * @date 格式为yyyy-mm-dd的日期,如:2014-01-25
487
+	 */
488
+	getNextMonth: function (date) {
489
+		var arr = date.split('-');
490
+		var year = arr[0]; //获取当前日期的年份
491
+		var month = arr[1]; //获取当前日期的月份
492
+		var day = arr[2]; //获取当前日期的日
493
+		var days = new Date(year, month, 0);
494
+		days = days.getDate(); //获取当前日期中的月的天数
495
+		var year2 = year;
496
+		var month2 = parseInt(month) + 1;
497
+		if (month2 == 13) {
498
+			year2 = parseInt(year2) + 1;
499
+			month2 = 1;
500
+		}
501
+		var day2 = day;
502
+		var days2 = new Date(year2, month2, 0);
503
+		days2 = days2.getDate();
504
+		if (day2 > days2) {
505
+			day2 = days2;
506
+		}
507
+		if (month2 < 10) {
508
+			month2 = '0' + month2;
509
+		}
510
+
511
+		var t2 = year2 + '-' + month2 + '-' + day2;
512
+		return t2;
513
+	},
514
+	/**
515
+		*获取当前时间:  YYYY-MM-DD hh:mm:ss
516
+		*/
517
+	getNowDateTime: function () {
518
+		var NowDate;
519
+		var myDate = new Date();
520
+		myDate.getYear(); //获取当前年份(2位)    
521
+		var YY = myDate.getFullYear(); //获取完整的年份(4位,1970-????)    
522
+		var MM = myDate.getMonth() + 1; //获取当前月份(0-11,0代表1月)
523
+		MM = MM > 9 ? MM : ("0" + MM);
524
+		var DD = myDate.getDate(); //获取当前日(1-31)
525
+		DD = DD > 9 ? DD : ("0" + DD);
526
+		var hh = myDate.getHours();
527
+		hh = hh > 9 ? hh : ("0" + hh);
528
+		var mm = myDate.getMinutes();
529
+		mm = mm > 9 ? mm : ("0" + mm);
530
+		var ss = myDate.getSeconds();
531
+		ss = ss > 9 ? ss : ("0" + ss);
532
+		NowDate = YY + "-" + MM + "-" + DD + ' ' + hh + ":" + mm + ":" + ss;
533
+		return NowDate;
534
+	},
535
+	getNowDate: function () {
517 536
 		var NowDate;
518 537
 		var myDate = new Date();
519 538
 		var YY = myDate.getFullYear(); //获取完整的年份(4位,1970-????)    
@@ -535,7 +554,7 @@ helper.DateFormat = {
535 554
 		NowDate = YY + "-" + MM + "-" + DD;
536 555
 		return NowDate;
537 556
 	},
538
-	getNowYear: function() {
557
+	getNowYear: function () {
539 558
 		//获取当前年份
540 559
 		var NowDate;
541 560
 		var myDate = new Date();
@@ -544,7 +563,7 @@ helper.DateFormat = {
544 563
 		return NowDate;
545 564
 	},
546 565
 
547
-	getFirstDayInCurrentMonth: function() {
566
+	getFirstDayInCurrentMonth: function () {
548 567
 		var NowDate;
549 568
 		var myDate = new Date();
550 569
 		myDate.getYear(); //获取当前年份(2位)    
@@ -572,12 +591,12 @@ helper.getDropList = {
572 591
 				flag: fg,
573 592
 				token: $.cookie("token")
574 593
 			},
575
-			success: function(data) {
576
-				if(data.state.toLowerCase() === 'success') {
594
+			success: function (data) {
595
+				if (data.state.toLowerCase() === 'success') {
577 596
 					//el.empty();
578 597
 					//el.append('<option value="0">请选择</option>');
579 598
 					var res = data.data;
580
-					for(var i = 0; i < res.length; i++) {
599
+					for (var i = 0; i < res.length; i++) {
581 600
 						$('<option value=' + res[i].F_DictionaryValueId + '>' + res[i].F_Name + '</option>').appendTo(el);
582 601
 					}
583 602
 					el.selectpicker('refresh');
@@ -601,12 +620,12 @@ helper.getDropList = {
601 620
 				flag: fg,
602 621
 				token: $.cookie("token")
603 622
 			},
604
-			success: function(data) {
605
-				if(data.state.toLowerCase() === 'success') {
623
+			success: function (data) {
624
+				if (data.state.toLowerCase() === 'success') {
606 625
 					el.empty();
607 626
 					el.append('<option value="0">请选择</option>');
608 627
 					var res = data.data;
609
-					for(var i = 0; i < res.length; i++) {
628
+					for (var i = 0; i < res.length; i++) {
610 629
 						$('<option value=' + res[i].F_DictionaryValueId + '>' + res[i].F_Name + '</option>').appendTo(el);
611 630
 					}
612 631
 					el.selectpicker('refresh');
@@ -631,10 +650,10 @@ helper.getDropList = {
631 650
 				flag: fg,
632 651
 				token: $.cookie("token")
633 652
 			},
634
-			success: function(data) {
635
-				if(data.state.toLowerCase() === 'success') {
653
+			success: function (data) {
654
+				if (data.state.toLowerCase() === 'success') {
636 655
 					var res = data.data;
637
-					for(var i = 0; i < res.length; i++) {
656
+					for (var i = 0; i < res.length; i++) {
638 657
 						$('<label class="radio-inline">' +
639 658
 							'<input type="radio" name="' + ran + '" value="' + res[i].F_DictionaryValueId + '">' + res[i].F_Name +
640 659
 							'</label>').appendTo(el);
@@ -654,7 +673,7 @@ helper.getDropList = {
654 673
 			url: huayi.config.callcenter_url + "CusRegionCategory/GetListTreeDrop",
655 674
 			dataType: 'json',
656 675
 			async: false,
657
-			success: function(data) {
676
+			success: function (data) {
658 677
 				var content = data.data; //区域信息
659 678
 				var cityInfos = []; //项目
660 679
 				var proInfos = []; //期号信息
@@ -662,27 +681,27 @@ helper.getDropList = {
662 681
 				//obj.selectpicker('destroy');
663 682
 				obj.empty();
664 683
 				obj.append('<option selected="selected" value="0">请选择区域</option>');
665
-				$(content).each(function(i, n) {
666
-					if(n.ParentId === 0) {
684
+				$(content).each(function (i, n) {
685
+					if (n.ParentId === 0) {
667 686
 						$("<option value='" + n.id + "'>" + n.text + "</option>").appendTo(obj);
668
-						if(n.children != null && n.children.length > 0) {
687
+						if (n.children != null && n.children.length > 0) {
669 688
 							cityInfos.push(n.children);
670 689
 						}
671 690
 					}
672 691
 				});
673 692
 				obj.selectpicker('refresh');
674 693
 				//项目
675
-				obj.change(function() {
694
+				obj.change(function () {
676 695
 					//obj1.selectpicker('destroy');
677 696
 					obj1.empty();
678 697
 					obj1.append('<option selected="selected" value="0">请选择项目</option>');
679 698
 					proInfos = []; //期号信息
680
-					for(var i = 0; i < cityInfos.length; i++) {
681
-						$(cityInfos[i]).each(function(j, v) {
682
-							if(v.ParentId > 0) {
683
-								if(obj.find("option:selected").val() == v.ParentId) {
699
+					for (var i = 0; i < cityInfos.length; i++) {
700
+						$(cityInfos[i]).each(function (j, v) {
701
+							if (v.ParentId > 0) {
702
+								if (obj.find("option:selected").val() == v.ParentId) {
684 703
 									$("<option value='" + v.id + "'>" + v.text + "</option>").appendTo(obj1);
685
-									if(v.children != null && v.children.length > 0) {
704
+									if (v.children != null && v.children.length > 0) {
686 705
 										proInfos.push(v.children);
687 706
 									}
688 707
 								}
@@ -690,28 +709,28 @@ helper.getDropList = {
690 709
 						});
691 710
 					}
692 711
 					obj1.selectpicker('refresh');
693
-					if(obj1.val() == null) {
712
+					if (obj1.val() == null) {
694 713
 						obj1.append('<option selected="selected" value="0">没有数据</option>');
695 714
 					}
696 715
 					obj1.trigger('change');
697 716
 				});
698 717
 
699 718
 				//楼
700
-				obj1.change(function() {
719
+				obj1.change(function () {
701 720
 					//obj2.selectpicker('destroy');
702 721
 					obj2.empty();
703 722
 					obj2.append('<option selected="selected" value="0">请选择期号</option>');
704
-					for(var j = 0; j < proInfos.length; j++) {
705
-						$(proInfos[j]).each(function(k, n) {
706
-							if(n.ParentId > 0) {
707
-								if(obj1.find("option:selected").val() == n.ParentId) {
723
+					for (var j = 0; j < proInfos.length; j++) {
724
+						$(proInfos[j]).each(function (k, n) {
725
+							if (n.ParentId > 0) {
726
+								if (obj1.find("option:selected").val() == n.ParentId) {
708 727
 									$("<option value='" + n.id + "'>" + n.text + "</option>").appendTo(obj2);
709 728
 								}
710 729
 							}
711 730
 						});
712 731
 					}
713 732
 					obj2.selectpicker('refresh');
714
-					if(obj2.val() == null) {
733
+					if (obj2.val() == null) {
715 734
 						obj2.append('<option selected="selected" value="0">没有数据</option>');
716 735
 					}
717 736
 					dtd.resolve(); // 改变Deferred对象的执行状态
@@ -729,33 +748,33 @@ helper.methods = {
729 748
 	* @oldArr 数组
730 749
 	* @name 要比较的属性 String
731 750
 	*/
732
-	uniqueObjArray: function(oldArr, name) {
751
+	uniqueObjArray: function (oldArr, name) {
733 752
 		var allArr = [];
734
-		for(var i = 0; i < oldArr.length; i++) {  
735
-			var flag = true;  
736
-			for(var j = 0; j < allArr.length; j++) {
737
-				if(oldArr[i][name] == allArr[j][name]) {      
738
-					flag = false;    
739
-				};  
753
+		for (var i = 0; i < oldArr.length; i++) {
754
+			var flag = true;
755
+			for (var j = 0; j < allArr.length; j++) {
756
+				if (oldArr[i][name] == allArr[j][name]) {
757
+					flag = false;
758
+				};
740 759
 			};
741
-			if(flag) {    
742
-				allArr.push(oldArr[i]);  
760
+			if (flag) {
761
+				allArr.push(oldArr[i]);
743 762
 			};
744 763
 		};
745 764
 		return allArr;
746 765
 	},
747 766
 	//比较器(可以根据对象的属性进行比较)  用法 arr.sort(compare('age'))
748
-	compare: function(prop) {
749
-		return function(obj1, obj2) {
767
+	compare: function (prop) {
768
+		return function (obj1, obj2) {
750 769
 			var val1 = obj1[prop];
751 770
 			var val2 = obj2[prop];
752
-			if(!isNaN(Number(val1)) && !isNaN(Number(val2))) {
771
+			if (!isNaN(Number(val1)) && !isNaN(Number(val2))) {
753 772
 				val1 = Number(val1);
754 773
 				val2 = Number(val2);
755 774
 			}
756
-			if(val1 < val2) {
775
+			if (val1 < val2) {
757 776
 				return -1;
758
-			} else if(val1 > val2) {
777
+			} else if (val1 > val2) {
759 778
 				return 1;
760 779
 			} else {
761 780
 				return 0;
@@ -767,16 +786,16 @@ helper.methods = {
767 786
 	 * @param  {[type]} list 一维数组,数组中每一个元素需包含id和ParentId两个属性 
768 787
 	 * @return {[type]} tree 多层级树状结构
769 788
 	 */
770
-	buildTree: function(list) {
789
+	buildTree: function (list) {
771 790
 		var temp = {};
772 791
 		var tree = {};
773 792
 		var arr = [];
774
-		for(var j in list) {
793
+		for (var j in list) {
775 794
 			temp[list[j].id] = list[j];
776 795
 		}
777
-		for(var i in temp) {
778
-			if(temp[i].ParentId) {
779
-				if(!temp[temp[i].ParentId].children) {
796
+		for (var i in temp) {
797
+			if (temp[i].ParentId) {
798
+				if (!temp[temp[i].ParentId].children) {
780 799
 					temp[temp[i].ParentId].children = new Object();
781 800
 				}
782 801
 				temp[temp[i].ParentId].children[temp[i].id] = temp[i];
@@ -784,21 +803,21 @@ helper.methods = {
784 803
 				tree[temp[i].id] = temp[i];
785 804
 			}
786 805
 		}
787
-		for(var k in tree) {
806
+		for (var k in tree) {
788 807
 			arr.push(tree[k]);
789 808
 		}
790 809
 		return arr;
791 810
 	},
792
-	objToArray: function(mobj) {
811
+	objToArray: function (mobj) {
793 812
 		var arr = [];
794
-		for(var k in mobj) {
813
+		for (var k in mobj) {
795 814
 			arr.push(mobj[k]);
796 815
 		}
797 816
 		return arr;
798 817
 	},
799
-	arrayToObj: function(marr) {
818
+	arrayToObj: function (marr) {
800 819
 		var tobj = {};
801
-		for(var k in marr) {
820
+		for (var k in marr) {
802 821
 			tobj[k] = marr[k];
803 822
 		}
804 823
 		return tobj;
@@ -806,78 +825,78 @@ helper.methods = {
806 825
 }
807 826
 
808 827
 helper.string = {
809
-	stringbuilder: function() {
828
+	stringbuilder: function () {
810 829
 		this.arr = new Array();
811
-		this.append = function(str) {
830
+		this.append = function (str) {
812 831
 			this.arr.push(str);
813 832
 		};
814
-		this.tostring = function() {
833
+		this.tostring = function () {
815 834
 			return this.arr.join('');
816 835
 		};
817 836
 	}
818 837
 };
819 838
 helper.init = {
820
-	setajax: function(isload) { /// 配置AJAX
821
-		$(document).on("ajaxStart", function() {
822
-			if(isload) {
839
+	setajax: function (isload) { /// 配置AJAX
840
+		$(document).on("ajaxStart", function () {
841
+			if (isload) {
823 842
 				//加载框显示
824 843
 			}
825
-		}).on("ajaxSuccess", function(e, jqXHR, s, data) {
844
+		}).on("ajaxSuccess", function (e, jqXHR, s, data) {
826 845
 			try {
827
-				if(s.type == "POST") {
828
-					if(typeof(data) != 'object') {
846
+				if (s.type == "POST") {
847
+					if (typeof (data) != 'object') {
829 848
 						data = $.parseJSON(data);
830 849
 					}
831 850
 				}
832
-				if(s.type == "GET") {
851
+				if (s.type == "GET") {
833 852
 					data = data
834 853
 				}
835
-				if(data.state.toLowerCase() == "notoken") {
854
+				if (data.state.toLowerCase() == "notoken") {
836 855
 					top.window.location.href = "/login.html";
837 856
 					return;
838 857
 				}
839
-				if(data.state.toLowerCase() == "unauthorized") {
858
+				if (data.state.toLowerCase() == "unauthorized") {
840 859
 					layer.confirm(data.message, {
841 860
 						btn: ['确定'] //按钮
842 861
 					});
843 862
 				}
844
-				if(data.state.toLowerCase() == "error") {
863
+				if (data.state.toLowerCase() == "error") {
845 864
 					layer.confirm(data.message, {
846 865
 						btn: ['确定'] //按钮
847 866
 					});
848 867
 				}
849
-			} catch(e) {
850
-				if(isload) {
868
+			} catch (e) {
869
+				if (isload) {
851 870
 					//加载框消失
852 871
 				}
853 872
 			}
854
-		}).on("ajaxStop", function() {
855
-			if(isload) {
873
+		}).on("ajaxStop", function () {
874
+			if (isload) {
856 875
 				//加载框消失
857 876
 			}
858 877
 		})
859 878
 	},
860
-	setdh: function() {
861
-		$(document).ready(function() {
862
-			$("#ReIndex").click(function() {
879
+	setdh: function () {
880
+		$(document).ready(function () {
881
+			$("#ReIndex").click(function () {
863 882
 				top.$("iframe:visible")[0].src = "widgets.html";
864 883
 				top.$(".J_menuTab").eq(0).addClass("active").text('首页');
865 884
 				top.$(".J_menuTab").eq(0).attr("data-id", 'widgets.html');
866 885
 				top.$(".J_mainContent .J_iframe0").attr("data-id", "widgets.html");
867 886
 			});
868
-			$(".dhRight").click(function() {
887
+			$(".dhRight").click(function () {
869 888
 				location.reload();
870 889
 			})
871 890
 		})
872 891
 	},
873
-	enterSearch: function() { //enter搜索
874
-		$(document).on('keypress', function(event) {
875
-			if(event.keyCode === 32) {
876
-				if($(event.target).context.nodeName != "TEXTAREA") {
892
+	enterSearch: function () { //enter搜索
893
+		$(document).on('keypress', function (event) {
894
+			if (event.keyCode === 32) {
895
+				if ($(event.target).context.nodeName != "TEXTAREA") {
877 896
 					$(event.target).blur();
878 897
 				}
879 898
 			}
880
-			if(event.keyCode === 13) {
899
+			if (event.keyCode === 13) {
881 900
 				$('.search').trigger("click");
882 901
 				$('#sc_btns').trigger("click");
883 902
 			}

+ 2 - 5
CallCenterWeb.UI/SystemManager/Data.html

@@ -4,12 +4,8 @@
4 4
     <meta charset="UTF-8">
5 5
     <script src="../Script/Common/huayi.load.js"></script>
6 6
     <script src="../Script/Common/huayi.config.js"></script>
7
-    <script src="../js/jquery-ui.min.js"></script>
8 7
     <link rel="stylesheet" href="../css/init.css" />
9 8
     <link href="../js/fullcalendar/fullcalendar.css" rel="stylesheet" />
10
-    <script src="../js/fullcalendar/fullcalendar.min.js"></script>
11
-    <script src="js/hao.js"></script>
12
-    <script src="js/fullcalendar.js"></script>
13 9
     <title>系统管理-->排班管理</title>
14 10
     <style>
15 11
         .fc-event-title {
@@ -69,7 +65,8 @@
69 65
         <div class="col-sm-12">
70 66
             <div id="calendar"></div>
71 67
         </div>
72
-    </div>
68
+		</div>
69
+		<script src="../js/fullcalendar/fullcalendar.min.js"></script>
73 70
     <script>
74 71
 			var bl = false;
75 72
 			var flag = true;

+ 279 - 242
CallCenterWeb.UI/TelCall/WorkTime.html

@@ -1,271 +1,308 @@
1
-<!DOCTYPE html>
1
+<!DOCTYPE html>
2 2
 <html>
3 3
 
4
-	<head>
5
-		<meta charset="UTF-8">
6
-		<title>上班时段设置</title>
7
-		<meta name="viewport" content="width=device-width, initial-scale=1.0">
8
-		<link href="../css/init.css" rel="stylesheet" />
9
-		<script src="../Script/Common/huayi.load.js"></script>
10
-		<script src="../Script/Common/huayi.config.js"></script>
11
-		<link href="../css/Table/table1.css" rel="stylesheet" />
12
-		<script src="../js/laydate/laydate.js"></script>
13
-	</head>
4
+<head>
5
+	<meta charset="UTF-8">
6
+	<title>上班时段设置</title>
7
+	<meta name="viewport" content="width=device-width, initial-scale=1.0">
8
+	<link href="../css/init.css" rel="stylesheet" />
9
+	<script src="../Script/Common/huayi.load.js"></script>
10
+	<script src="../Script/Common/huayi.config.js"></script>
11
+	<link href="../css/Table/table1.css" rel="stylesheet" />
12
+</head>
14 13
 
15
-	<body class="gray-bg">
16
-		<div class="wrapper wrapper-content animated fadeInRight">
17
-			<div class="daoHang clearfix">
18
-				<div class="dhLeft">
19
-					<sapn><i class="syIcon"></i>位置:
20
-						<a href="javaScript:;" id="ReIndex">首页</a>&gt;
21
-						<a href="javaScript:;">话务管理</a>&gt;
22
-						<a href="" style="color: #000;">上班时间设置</a>
23
-					</sapn>
24
-				</div>
25
-			</div>
26
-			<div class="th-box">
27
-				<div class="th-bar">
28
-					<a class="sc_btn  add max-right">添加</a>
29
-					<a class="sc_btn  xg max-right">修改</a>
30
-					<a class="sc_btn  remove">删除</a>
31
-					<div class="seach-box fr">
32
-						<ul>
33
-							<li>关键字:<input class="photo x-color" type="text" id="KeyWords" /></li>
34
-							<li>
35
-								<a id="sc_btn" class="sc_btn Block">搜索</a>
36
-							</li>
37
-						</ul>
14
+<body class="gray-bg">
15
+	<div class="daoHang clearfix">
16
+		<div class="dhLeft">
17
+			<sapn><i class="syIcon"></i>位置:
18
+				<a href="javaScript:;" id="ReIndex">首页</a>&gt;
19
+				<a href="javaScript:;">话务管理</a>&gt;
20
+				<a href="" style="color: #000;">上班时间设置</a>
21
+			</sapn>
22
+		</div>
23
+	</div>
24
+	<div class="wrapper wrapper-content animated fadeInRight">
25
+		<div class="toolBox clearfix">
26
+			<div class="pull-left">
27
+				<div class="form-inline">
28
+					<!-- <div class="form-group">
29
+							<select id="sc_type" class="form-control">
30
+								<option value="">请选择工作类型</option>
31
+								<option value="GZR">工作日</option>
32
+								<option value="JJR">节假日</option>
33
+							</select>
34
+						</div> -->
35
+					<div class="form-group">
36
+						<input id="KeyWords" type="text" class="form-control" placeholder="请输入关键词" />
38 37
 					</div>
39 38
 				</div>
40 39
 			</div>
41
-			<div style="width: 100%;padding: 10px;">
42
-				<table id="list" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
43
-					<thead>
44
-						<tr>
45
-							<th data-field="state" data-checkbox="true"></th>
46
-							<th data-field="F_WorkStartTimes" data-formatter="gettime">工作开始时间</th>
47
-							<th data-field="F_WorkEndTimes" data-formatter="gettime">工作结束时间</th>
48
-							<th data-field="F_TimeName">时间段名称</th>
49
-							<th data-field="F_Remark">时间段备注</th>
50
-						</tr>
51
-					</thead>
52
-					<tbody id="tbody"></tbody>
53
-				</table>
40
+			<div class="pull-right">
41
+				<a id="sc_btn" class="sc_btn search">搜索</a>
42
+				<a class="sc_btn add">添加</a>
43
+				<a class="sc_btn xg">修改</a>
44
+				<a class="sc_btn remove">删除</a>
54 45
 			</div>
55 46
 		</div>
56
-		<script>
57
-			var html = ' <div>' +
58
-				'<ul class="nav nav-tabs">' +
59
-				'<li class="active"><a href="#">参数信息</a></li> ' +
60
-				'</ul>' +
61
-				'<div class=" add_time">' +
62
-				'<label for="">工作开始时间:</label>' +
63
-				'<input type="text" id="workstart" class="photo"/><input type="hidden" id="ID" value="" class="photo"/>' +
64
-				'</div>' +
65
-				'<div class=" add_time">' +
66
-				'<label for="">工作结束时间:</label>' +
67
-				'<input type="text"class="photo" id="workend"/>' +
68
-				'</div>' +
69
-				'<div class=" add_time">' +
70
-				'<label for="">时间段名称:</label>' +
71
-				'<input type="text" class="photo" id="timename" />' +
72
-				'</div>' +
73
-				'<div class=" add_time">' +
74
-				'<label for="" class="Pb_sm">时间段备注:</label>' +
75
-				'<textarea type="text"  id="Pb"/>' +
76
-				'</textarea>' +
77
-				'</div>' +
78
-				'<div class=" add_time tc">' +
79
-				'<button  type="button" class="sc_btn " id="tc" onclick="addedit()">保&nbsp;&nbsp;存</button>' +
80
-				'</div>' +
81
-				' </div>';
82
-			var tc;
83
-			$(document).ready(function() {
84
-				/*日期选择*/
47
+
48
+		<div style="width: 100%;padding: 10px;">
49
+			<table id="list" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
50
+				<thead>
51
+					<tr>
52
+						<th data-field="state" data-checkbox="true"></th>
53
+						<!-- <th data-field="F_HolidaysCode" data-formatter="formatterType">工作类型</th> -->
54
+						<th data-field="F_StartDate">开始时间</th>
55
+						<th data-field="F_EndDate">结束时间</th>
56
+						<th data-field="F_Name">时间段名称</th>
57
+						<th data-field="F_Remark">时间段备注</th>
58
+					</tr>
59
+				</thead>
60
+				<tbody id="tbody"></tbody>
61
+			</table>
62
+		</div>
63
+	</div>
64
+	<script src="../js/laydate/laydate.js"></script>
65
+	<script>
66
+		var html = '<div>' +
67
+			// '<ul class="nav nav-tabs">' +
68
+			// '<li class="active"><a href="#">参数信息</a></li> ' +
69
+			// '</ul>' +
70
+			'<div class="add_time">' +
71
+			'<label for="">工作开始时间:</label>' +
72
+			'<input type="text" id="workstart" class="photo"/><input type="hidden" id="ID" value="" class="photo"/>' +
73
+			'</div>' +
74
+			'<div class="add_time">' +
75
+			'<label for="">工作结束时间:</label>' +
76
+			'<input type="text"class="photo" id="workend"/>' +
77
+			'</div>' +
78
+			'<div class="add_time">' +
79
+			'<label for="">时间段名称:</label>' +
80
+			'<input type="text" class="photo" id="timename" />' +
81
+			'</div>' +
82
+			// '<div class="add_time">'+
83
+			// 	'<label for="holidayscode">工作类型:</label>'+
84
+			// 	'<select id="holidayscode" class="form-control" style="width: 179px; display:inline-block;">'+
85
+			// 		'<option value="">请选择工作类型</option>'+
86
+			// 		'<option value="GZR">工作日</option>'+
87
+			// 		'<option value="JJR">节假日</option>'+
88
+			// 	'</select>'+
89
+			// '</div>'+
90
+			'<div class="add_time">' +
91
+			'<label for="" class="Pb_sm">时间段备注:</label>' +
92
+			'<textarea type="text"  id="Pb"/>' +
93
+			'</textarea>' +
94
+			'</div>' +
95
+			'<div class="add_time tc">' +
96
+			'<button  type="button" class="sc_btn " id="tc" onclick="addedit()">保&nbsp;&nbsp;存</button>' +
97
+			'</div>' +
98
+			' </div>';
99
+		var tc;
100
+		$(document).ready(function () {
101
+			/*搜索*/
102
+			$("#sc_btn ").click(function () {
103
+				initTable();
104
+			})
105
+
106
+			/*删除提示*/
107
+			$(".remove").click(function () {
108
+				var ids = $.map($('#list').bootstrapTable('getSelections'),
109
+					function (row) {
110
+						return row.F_ID;
111
+					});
112
+				/*判断长度*/
113
+				if (ids.length <= 0) {
114
+					layer.confirm('没有可删除的选项?', {
115
+						btn: ['确定'] //按钮
116
+					});
117
+					return;
118
+				}
119
+
120
+				layer.confirm('确定删除选中记录?', {
121
+					btn: ['是', '否'] //按钮
122
+				}, function () {
123
+					/*发送请求*/
124
+					$.post(huayi.config.callcenter_url + "Workcalendar/DelTimes", {
125
+						ids: ids,
126
+						token: $.cookie("token")
127
+					}, function (result) {
128
+						result = JSON.parse(result);
129
+						if (result.state.toLowerCase() == "success") {
130
+							layer.msg("删除成功");
131
+							initTable();
132
+						}
133
+					})
134
+				});
135
+			});
136
+			/*增加弹框*/
137
+			$(".add").click(function () {
138
+				tc = layer.open({
139
+					type: 1,
140
+					content: html, //iframe的url,no代表不显示滚动条
141
+					title: '添加上班时段',
142
+					area: ['35%', '65%'], //宽高
143
+				});
85 144
 				laydate.render({
86 145
 					elem: '#workstart',
87
-					type: 'datetime',
88
-					theme: '1ab394',
146
+					type: 'time',
147
+					theme: '#1ab394',
89 148
 					calendar: true,
90 149
 				});
91 150
 				laydate.render({
92 151
 					elem: '#workend',
93
-					type: 'datetime',
94
-					theme: '1ab394',
152
+					type: 'time',
153
+					theme: '#1ab394',
95 154
 					calendar: true,
96 155
 				});
97
-				/*搜索*/
98
-				$("#sc_btn ").click(function() {
99
-					initTable();
100
-				})
101
-
102
-				/*删除提示*/
103
-				$(".remove").click(function() {
104
-					var ids = $.map($('#list').bootstrapTable('getSelections'),
105
-						function(row) {
106
-							return row.F_ID;
107
-						});
108
-					/*判断长度*/
109
-					if(ids.length <= 0) {
110
-						layer.confirm('没有可删除的选项?', {
111
-							btn: ['确定'] //按钮
112
-						});
113
-						return;
114
-					}
115
-
116
-					layer.confirm('确定删除选中记录?', {
117
-						btn: ['是', '否'] //按钮
118
-					}, function() {
119
-						/*发送请求*/
120
-						$.post(huayi.config.callcenter_url + "Workcalendar/DelTimes", {
121
-							ids: ids,
122
-							token: $.cookie("token")
123
-						}, function(result) {
124
-							result = JSON.parse(result);
125
-							if(result.state.toLowerCase() == "success") {
126
-								layer.msg("删除成功");
127
-								initTable();
128
-							}
129
-						})
156
+			});
157
+			/*修改弹窗*/
158
+			$(".xg").click(function () {
159
+				var ids = $.map($('#list').bootstrapTable('getSelections'),
160
+					function (row) {
161
+						return row.F_ID;
130 162
 					});
131
-				});
132
-				/*增加弹框*/
133
-				$(".add").click(function() {
134
-					tc = layer.open({
135
-						type: 1,
136
-						content: html, //iframe的url,no代表不显示滚动条
137
-						title: '添加上班时段',
138
-						area: ['35%', '65%'], //宽高
139
-
163
+				if (ids.length != 1) {
164
+					layer.confirm('请选择一行进行修改?', {
165
+						btn: ['确定'] //按钮
140 166
 					});
141
-				});
142
-				/*修改弹窗*/
143
-				$(".xg").click(function() {
144
-					var ids = $.map($('#list').bootstrapTable('getSelections'),
145
-						function(row) {
146
-							return row.F_ID;
147
-						});
148
-					if(ids.length != 1) {
149
-						layer.confirm('请选择一行进行修改?', {
150
-							btn: ['确定'] //按钮
151
-						});
152
-						return;
153
-					} else {
154
-
155
-						$.getJSON(huayi.config.callcenter_url + "Workcalendar/GetTimes", {
156
-							id: ids[0],
157
-							token: $.cookie("token")
158
-						}, function(result) {
159
-							if(result.state.toLowerCase() == "success") {
160
-								tc = layer.open({
161
-									type: 1,
162
-									title: '修改上班时段',
163
-									area: ['35%', '65%'], //宽高
164
-									content: html
165
-								});
167
+					return;
168
+				} else {
169
+					$.getJSON(huayi.config.callcenter_url + "Workcalendar/GetTimes", {
170
+						id: ids[0],
171
+						token: $.cookie("token")
172
+					}, function (result) {
173
+						if (result.state.toLowerCase() == "success") {
174
+							tc = layer.open({
175
+								type: 1,
176
+								title: '修改上班时段',
177
+								area: ['35%', '65%'], //宽高
178
+								content: html
179
+							});
180
+							laydate.render({
181
+								elem: '#workstart',
182
+								type: 'time',
183
+								theme: '#1ab394',
184
+								calendar: true,
185
+							});
186
+							laydate.render({
187
+								elem: '#workend',
188
+								type: 'time',
189
+								theme: '#1ab394',
190
+								calendar: true,
191
+							});
192
+							$("#ID").val(result.data.F_ID);
193
+							$("#workstart").val(result.data.F_StartDate);
194
+							$("#workend").val(result.data.F_EndDate);
195
+							$("#timename").val(result.data.F_Name);
196
+							// $("#holidayscode").val(result.data.F_HolidaysCode);
197
+							$("#Pb").val(result.data.F_Remark);
198
+						}
199
+					})
200
+				}
201
+			});
166 202
 
167
-								$("#ID").val(result.data.F_ID);
168
-								$("#workstart").val(result.data.F_WorkStartTimes.substr(11, 8));
169
-								$("#workend").val(result.data.F_WorkEndTimes.substr(11, 8));
170
-								$("#timename").val(result.data.F_TimeName);
171
-								$("#Pb").val(result.data.F_Remark);
172
-							}
173
-						})
174
-					}
175
-				});
203
+			initTable();
204
+		})
176 205
 
177
-				initTable();
178
-			})
206
+		function initTable() {
207
+			//先销毁表格
208
+			$('#list').bootstrapTable('destroy');
209
+			//初始化表格,动态从服务器加载数据
210
+			$("#list").bootstrapTable({
211
+				method: "get", //使用get请求到服务器获取数据
212
+				url: huayi.config.callcenter_url + "Workcalendar/GetTimesList", //获取数据的Servlet地址
213
+				contentType: 'application/x-www-form-urlencoded',
214
+				striped: true, //表格显示条纹
215
+				pagination: true, //启动分页
216
+				pageSize: 10, //每页显示的记录数
217
+				pageNumber: 1, //当前第几页
218
+				pageList: [10, 20, 50, 100], //记录数可选列表
219
+				search: false, //是否启用查询
220
+				showColumns: false, //显示下拉框勾选要显示的列
221
+				showRefresh: false, //显示刷新按钮
222
+				sidePagination: "server", //表示服务端请求
223
+				//设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
224
+				//设置为limit可以获取limit, offset, search, sort, order
225
+				queryParamsType: "undefined",
226
+				queryParams: function queryParams(params) { //设置查询参数
227
+					var param = {
228
+						page: params.pageNumber,
229
+						pagesize: params.pageSize,
230
+						keyword: $("#KeyWords").val(),
231
+						// holidayscode: $("#sc_type").val(),//类型(工作类型(GZR,JJR)
232
+						token: $.cookie("token")
233
+					};
234
+					return param;
235
+				},
236
+				onLoadSuccess: function () { //加载成功时执行
237
+					//layer.msg("加载成功");
238
+				},
239
+				onLoadError: function () { //加载失败时执行
240
+					//layer.msg("加载数据失败", { time: 1500, icon: 2 });
241
+				}
242
+			});
243
+		}
179 244
 
180
-			function initTable() {
181
-				//先销毁表格
182
-				$('#list').bootstrapTable('destroy');
183
-				//初始化表格,动态从服务器加载数据
184
-				$("#list").bootstrapTable({
185
-					method: "get", //使用get请求到服务器获取数据
186
-					url: huayi.config.callcenter_url + "Workcalendar/GetTimesList", //获取数据的Servlet地址
187
-					contentType: 'application/x-www-form-urlencoded',
188
-					striped: true, //表格显示条纹
189
-					pagination: true, //启动分页
190
-					pageSize: 10, //每页显示的记录数
191
-					pageNumber: 1, //当前第几页
192
-					pageList: [10, 20, 50, 100], //记录数可选列表
193
-					search: false, //是否启用查询
194
-					showColumns: false, //显示下拉框勾选要显示的列
195
-					showRefresh: false, //显示刷新按钮
196
-					sidePagination: "server", //表示服务端请求
197
-					//设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
198
-					//设置为limit可以获取limit, offset, search, sort, order
199
-					queryParamsType: "undefined",
200
-					queryParams: function queryParams(params) { //设置查询参数
201
-						var param = {
202
-							page: params.pageNumber,
203
-							pagesize: params.pageSize,
204
-							keyword: $("#KeyWords").val(),
205
-							token: $.cookie("token")
206
-						};
207
-						return param;
208
-					},
209
-					onLoadSuccess: function() { //加载成功时执行
210
-						//layer.msg("加载成功");
211
-					},
212
-					onLoadError: function() { //加载失败时执行
213
-						//layer.msg("加载数据失败", { time: 1500, icon: 2 });
214
-					}
245
+		//新增或者编辑
246
+		function addedit() {
247
+			if (!$("#workstart").val()) {
248
+				layer.confirm('请选择工作开始时间', {
249
+					btn: ['确定'] //按钮
215 250
 				});
251
+				return;
216 252
 			}
217
-
218
-			//新增或者编辑
219
-			function addedit() {
220
-				if(!$("#workstart").val()) {
221
-					layer.confirm('请选择工作开始时间', {
222
-						btn: ['确定'] //按钮
223
-					});
224
-					return;
225
-				}
226
-				if(!$("#workend").val()) {
227
-					layer.confirm('请选择工作结束时间', {
228
-						btn: ['确定'] //按钮
229
-					});
230
-					return;
231
-				}
232
-				if(!$("#timename").val()) {
233
-					layer.confirm('请输入时间段名称', {
234
-						btn: ['确定'] //按钮
235
-					});
236
-					return;
237
-				}
238
-				/*发送请求*/
239
-				$.post(huayi.config.callcenter_url + "Workcalendar/AddTimes", {
240
-					workid: $("#ID").val(),
241
-					workstart: $("#workstart").val(),
242
-					workend: $("#workend").val(),
243
-					timename: $("#timename").val(),
244
-					remark: $("#Pb").val(),
245
-					token: $.cookie("token")
246
-				}, function(result) {
247
-					result = JSON.parse(result);
248
-					if(result.state.toLowerCase() == "success") {
249
-						if($("#ID").val()) {
250
-							layer.msg("修改成功");
251
-						} else {
252
-							layer.msg("新增成功");
253
-						}
254
-						layer.close(tc); //关闭弹层
255
-						initTable();
256
-					}
257
-				})
253
+			if (!$("#workend").val()) {
254
+				layer.confirm('请选择工作结束时间', {
255
+					btn: ['确定'] //按钮
256
+				});
257
+				return;
258 258
 			}
259
-
260
-			function gettime(val) {
261
-				if(val) {
262
-					return val.substr(11, 8);
263
-				} else {
264
-					return '';
259
+			if (!$("#timename").val()) {
260
+				layer.confirm('请输入时间段名称', {
261
+					btn: ['确定'] //按钮
262
+				});
263
+				return;
264
+			}
265
+			// if(!$("#holidayscode").val()) {
266
+			// 	layer.confirm('请选择工作类型', {
267
+			// 		btn: ['确定'] //按钮
268
+			// 	});
269
+			// 	return;
270
+			// }
271
+			/*发送请求*/
272
+			$.post(huayi.config.callcenter_url + "Workcalendar/AddTimes", {
273
+				workid: $("#ID").val(),//是	string	id
274
+				workstart: $("#workstart").val(),//是	string	工作开始时间
275
+				workend: $("#workend").val(),//否	string	工作结束时间
276
+				timename: $("#timename").val(),//否	string	时间段名称
277
+				// holidayscode: $('#holidayscode').val(),//	否	string	类型(工作类型(GZR 工作日,JJR 节假日)
278
+				remark: $("#Pb").val(),//否	string	时间段备注
279
+				token: $.cookie("token")
280
+			}, function (result) {
281
+				result = JSON.parse(result);
282
+				if (result.state.toLowerCase() == "success") {
283
+					if ($("#ID").val()) {
284
+						layer.msg("修改成功");
285
+					} else {
286
+						layer.msg("新增成功");
287
+					}
288
+					layer.close(tc); //关闭弹层
289
+					initTable();
265 290
 				}
291
+			})
292
+		}
293
+
294
+		//格式化工作类型
295
+		function formatterType(val) {
296
+			var str = '-';
297
+			if (val === 'GZR') {
298
+				str = '工作日';
299
+			} else if (val === 'JJR') {
300
+				str = '节假日';
266 301
 			}
267
-		</script>
302
+			return str;
303
+		}
304
+	</script>
268 305
 
269
-	</body>
306
+</body>
270 307
 
271 308
 </html>

+ 9 - 9
CallCenterWeb.UI/WorkOrder/AddWorkOrder.html

@@ -33,20 +33,20 @@
33 33
 								<option value="0">请选择工单来源</option>
34 34
 							</select>
35 35
 						</div>
36
-						<div class="form-group col-md-4 clearfix">
36
+						<div class="form-group col-md-8 clearfix">
37 37
 							<label class="col-md-2">工单类型:</label>
38 38
 							<div id="order_type" class="col-md-6 r_order_type">
39 39
 	
40 40
 							</div>
41 41
 						</div>
42
-						<div class="form-group col-md-4" id="order_handles">
43
-							<label for="order_handle">业务办理:</label>
44
-							<select class="form-control input-sm selectpicker" id="order_handle" data-live-search="true">
45
-								<option value="0">请选择业务办理</option>
46
-							</select>
47
-						</div>
48 42
 					</div>
49
-					<div class="col-md-12 row">
43
+					<div class="form-group col-md-4" id="order_handles">
44
+						<label for="order_handle">业务办理:</label>
45
+						<select class="form-control input-sm selectpicker" id="order_handle" data-live-search="true">
46
+							<option value="0">请选择业务办理</option>
47
+						</select>
48
+					</div>
49
+					<!-- <div class="col-md-12 row"> -->
50 50
 						<div class="form-group col-md-4">
51 51
 							<label for="order_name"><b class="text-red">*</b>客户姓名:</label>
52 52
 							<input type="text" class="form-control input-sm" id="order_name" placeholder="请输入客户姓名">
@@ -59,7 +59,7 @@
59 59
 							<label for="order_company"><b class="text-red">*</b>公司名称:</label>
60 60
 							<input type="text" class="form-control input-sm" id="order_company" placeholder="请输入公司名称">
61 61
 						</div>
62
-					</div>
62
+					<!-- </div> -->
63 63
 					<div class="form-group col-md-12">
64 64
 						<label for="order_reception">反馈内容:</label>
65 65
 						<textarea id="order_reception" rows="3" cols="20" class="form-control" placeholder="请输入反馈内容"></textarea>

+ 18 - 1
CallCenterWeb.UI/WorkOrder/WorkOrderSearch.html

@@ -10,6 +10,7 @@
10 10
 		<link href="../css/WorkOrder/Search.css" rel="stylesheet">
11 11
 		<link href="../js/bootstrap-select/css/bootstrap-select.css" rel="stylesheet" />
12 12
 		<link href="../css/init.css" rel="stylesheet" />
13
+		<link href="../css/Table/table1.css" rel="stylesheet" />
13 14
 
14 15
 	</head>
15 16
 
@@ -89,6 +90,7 @@
89 90
 							<th data-field="Detail" data-align="center" data-formatter="formatterDetail">反馈内容</th>
90 91
 							<th data-field="ResponDeptName" data-formatter="" data-align="center">接收部门</th>
91 92
 							<th data-field="AuditUserNameRel" data-formatter="formatterAuditUser" data-align="center">接收人</th>
93
+							<th data-field="FilePath" data-formatter="formatterAudio" data-align="center">录音</th>
92 94
 							<th data-field="CreateUserNameRel" data-align="center">创建人</th>
93 95
 							<th data-field="CreateTime" data-align="center">创建时间</th>
94 96
 							<!-- <th data-field="ID" data-class="workOprate workOprate7" data-formatter="formatterOprate" data-align="center">操作工单</th> -->
@@ -96,10 +98,25 @@
96 98
 					</thead>
97 99
 				</table>
98 100
 			</div>
99
-
101
+			
100 102
 			<!--查看详情-->
101 103
 			<div id="order_details" class="ckxq Hidens"></div>
104
+		</div>
105
+		<!--下载框-->
106
+		<div class="t-shade">
107
+			<div class="shade_k">
108
+				<div class="shade_title">
109
+					<span>录音播放与下载<srong class="cknum"></srong></span>
110
+					<span class="setwin"><a>x</a></span>
111
+				</div>
112
+				<div class="shade_content">
113
+					<div class="Ly_box audiojs">
114
+					</div>
115
+					<div class="boxCon LY_box">
102 116
 		
117
+					</div>
118
+				</div>
119
+			</div>
103 120
 		</div>
104 121
 		<script src="../js/laydate/laydate.js"></script>
105 122
 		<script src="../js/bootstrap-select/js/bootstrap-select.js"></script>

+ 20 - 0
CallCenterWeb.UI/js/WorkOrder/WorkOrder.js

@@ -385,6 +385,26 @@ function formatterAuditUser(val) {
385 385
 	}
386 386
 }
387 387
 
388
+// 格式化录音
389
+function formatterAudio(val, row) {
390
+	if (val) {
391
+		return '<div class="imgs">' +
392
+			'<img src="../img/vice.png" alt="" onclick= openAudio(this) item="' + val + '" />' +
393
+			'</div>';
394
+	} else {
395
+		return '-';
396
+	}
397
+}
398
+
399
+function openAudio(val) {
400
+	var path = $(val).attr("item");
401
+	$(".t-shade").addClass("cx");
402
+	$(".shade_k").addClass("cx");
403
+	$(".Ly_box").empty();
404
+	$('<audio  style="width:100%;" src="' + path + '" loop="loop" controls="controls"></audio>').appendTo(".Ly_box");
405
+	$('<a href="' + path + '" class="sc_btn LY "download="' + path + '">下载录音</a>').appendTo(".LY_box");
406
+}
407
+
388 408
 /**
389 409
  * 修改
390 410
  * oid工单id

+ 143 - 14
CallCenterWeb.UI/js/index.js

@@ -718,43 +718,43 @@ function showTopMsgs() {
718 718
 function getTopMsgs() {
719 719
 	$.getJSON(huayi.config.callcenter_url + 'Msg/GetServerMsg', {
720 720
 		token: $.cookie("token")
721
-	}, function(result) {
722
-		if(result.state.toLowerCase() === 'success'){
721
+	}, function (result) {
722
+		if (result.state.toLowerCase() === 'success') {
723 723
 			$('#top_notices_lists').empty();
724 724
 			result = result.data;
725 725
 			var str = '';
726 726
 			if (result && result.length) {
727
-				if(isFirstShowTopMsg){
727
+				if (isFirstShowTopMsg) {
728 728
 					$('#top_notices_lists').show();
729 729
 					isFirstShowTopMsg = false;
730 730
 				}
731 731
 				$('#top_notices_num').text(result.length);
732 732
 				for (var i = 0; i < result.length; i++) {
733 733
 					str += '<li class="top_notices_item">' +
734
-						'<span class="top_notices_con">'+ result[i].Detail +'</span>' +
735
-						'<button type="button" class="btn btn-primary btn-sm" onclick="signRead('+ result[i].ID +', event)">未读</button>' +
734
+						'<span class="top_notices_con">' + result[i].Detail + '</span>' +
735
+						'<button type="button" class="btn btn-primary btn-sm" onclick="signRead(' + result[i].ID + ', event)">未读</button>' +
736 736
 						'</li>' +
737 737
 						'<li class="divider"></li>';
738 738
 				}
739 739
 			} else {
740
-				str = '<li class="top_notices_item">' +
741
-						'<span class="top_notices_con">暂无消息!</span>' +
742
-						'</li>';
743 740
 				$('#top_notices_num').text(0);
744 741
 			}
745 742
 			$('#top_notices_lists').append(str);
746 743
 			$('#top_notices_lists').find('.divider:last').remove();
747 744
 		}
745
+	}).then(function () {
746
+		// 获取 日程消息
747
+		getTopScheduleMsgs()
748 748
 	});
749 749
 }
750 750
 
751
-// 标记消息状态
751
+// 标记公告消息状态
752 752
 function signRead(signid, e) {
753 753
 	e.stopPropagation();
754 754
 	layer.confirm('确认已读后该条消息将不再提示,请慎重', {
755 755
 		icon: 7,
756 756
 		btn: ['确认', '取消'] //按钮
757
-	}, function(index) {
757
+	}, function (index) {
758 758
 		$.ajax({
759 759
 			type: "get",
760 760
 			url: huayi.config.callcenter_url + "Msg/UpdateState",
@@ -765,9 +765,9 @@ function signRead(signid, e) {
765 765
 				state: 1, //状态,0未读 1已读
766 766
 				token: $.cookie("token")
767 767
 			},
768
-			success: function(data) {
768
+			success: function (data) {
769 769
 				if (data.state.toLowerCase() === "success") {
770
-					// 更新顶部消息内容和数量
770
+					// 更新顶部公告消息内容和数量
771 771
 					getTopMsgs();
772 772
 					$('#top_notices_lists').hide();
773 773
 					layer.close(index);
@@ -777,8 +777,137 @@ function signRead(signid, e) {
777 777
 	});
778 778
 }
779 779
 
780
-$(document).click(function(e) {
781
-	if($(e.target).is($('.top_notices_lists')) || $(e.target).is($('.top_notices_item')) || $(e.target).is($('.top_notices_con')) || $(e.target).is($('.divider'))) {
780
+$(document).click(function (e) {
781
+	if ($(e.target).is($('.top_notices_lists')) || $(e.target).is($('.top_notices_item')) || $(e.target).is($('.top_notices_con')) || $(e.target).is($('.divider'))) {
782 782
 		$('#top_notices_lists').show();
783 783
 	}
784 784
 })
785
+
786
+// 获取顶部日程提醒消息(只展示未读消息 0未读 1已读)
787
+function getTopScheduleMsgs() {
788
+	$.getJSON(huayi.config.callcenter_url + 'Workcalendar/GetTXList', {
789
+		token: $.cookie("token")
790
+	}, function (result) {
791
+		if (result.state.toLowerCase() === 'success') {
792
+			result = result.data;
793
+			var str = '';
794
+			var topNoticeN = Number($('#top_notices_num').text());
795
+			$('#top_notices_num').text(result.length + topNoticeN);
796
+			if (result && result.length) {
797
+				for (var i = 0; i < result.length; i++) {
798
+					str += '<li class="top_notices_item">' +
799
+						'<span class="top_notices_con">' + result[i].F_Content + '</span>' +
800
+						'<button type="button" class="btn btn-primary btn-sm" onclick="scheduleSignRead(' + result[i].F_ID + ', event)">未读</button>' +
801
+						'</li>' +
802
+						'<li class="divider"></li>';
803
+					//判断是否是新的日程提醒
804
+					if (isNewScheduleHandler(result[i])) {
805
+						alertScheduleHandler(result[i]);// 日程提醒 存储数据
806
+						//右下角弹出 日程提醒
807
+						if ($("#top_notices_lists").is(":hidden")) {
808
+							layer.alert(result[0].F_Content, {
809
+								icon: 6,
810
+								title: '日程提醒',
811
+								offset: 'rb' // 快捷设置右下角
812
+							}, function (index) {
813
+								layer.close(index);
814
+							});
815
+						}
816
+					}
817
+				}
818
+			} else {
819
+				str = '<li class="top_notices_item">' +
820
+					'<span class="top_notices_con">暂无消息!</span>' +
821
+					'</li>';
822
+			}
823
+			$('#top_notices_lists').prepend(str);
824
+			if (topNoticeN === 0) {
825
+				$('#top_notices_lists').find('.divider:last').remove();
826
+			}
827
+		}
828
+	});
829
+}
830
+
831
+// 标记日程消息状态
832
+function scheduleSignRead(signid, e) {
833
+	e.stopPropagation();
834
+	layer.confirm('确认已读后该条消息将不再提示,请慎重', {
835
+		icon: 7,
836
+		btn: ['确认', '取消'] //按钮
837
+	}, function (index) {
838
+		$.ajax({
839
+			type: "get",
840
+			url: huayi.config.callcenter_url + "Workcalendar/UpdateFlag",
841
+			dataType: 'json',
842
+			async: true,
843
+			data: {
844
+				id: signid, // 日程信息id
845
+				isread: 1, //状态,0未读 1已读 日程信息是否已读
846
+				token: $.cookie("token")
847
+			},
848
+			success: function (data) {
849
+				if (data.state.toLowerCase() === "success") {
850
+					deleteCacheData(signid);// 清除缓存的数据
851
+					// 更新顶部消息内容和数量
852
+					getTopMsgs();
853
+					$('#top_notices_lists').hide();
854
+					layer.close(index);
855
+				}
856
+			}
857
+		});
858
+	});
859
+}
860
+
861
+/**
862
+ * 右下角弹出 日程提醒 存储数据
863
+ * @cuData 当前信息
864
+ */
865
+function alertScheduleHandler(cuData) {
866
+	//缓存当前信息
867
+	var oldLocalDatas = window.localStorage.getItem('newScheduleData');
868
+	var newScheduleData = oldLocalDatas === null ? [] : JSON.parse(oldLocalDatas);
869
+
870
+	newScheduleData.unshift({
871
+		"content": cuData.F_Content,
872
+		"id": cuData.F_ID
873
+	});
874
+	window.localStorage.setItem('newScheduleData', JSON.stringify(newScheduleData));
875
+}
876
+
877
+/**
878
+ * 判断是否是新的日程
879
+ * @cuData 当前信息
880
+ * @return boolean false(缓存中有这个日程,不是新日程) true(缓存中没有这日程,是新日程)
881
+ */
882
+function isNewScheduleHandler(cuData) {
883
+	var oldLocalDatas = window.localStorage.getItem('newScheduleData');
884
+	var isTrue = [];
885
+	if (oldLocalDatas) {
886
+		oldLocalDatas = JSON.parse(oldLocalDatas);
887
+		for (var j = 0, len = oldLocalDatas.length; j < len; j++) {
888
+			if (oldLocalDatas[j].id === cuData.F_ID) {
889
+				isTrue.push(false); // 缓存中有这个日程
890
+			}
891
+		}
892
+	} else {
893
+		isTrue.push(true); // 缓存中没有这日程
894
+	}
895
+	return isTrue.indexOf(false) === -1 ? true : false;
896
+}
897
+
898
+/**
899
+ * 清除缓存数据
900
+ * @cuDataId 当前信息id
901
+ */
902
+function deleteCacheData(cuDataId) {
903
+	var oldLocalDatas = window.localStorage.getItem('newScheduleData');
904
+	oldLocalDatas = oldLocalDatas === null ? [] : JSON.parse(oldLocalDatas);
905
+	if (oldLocalDatas.length > 0) {
906
+		for (var i = 0; i < oldLocalDatas.length; i++) {
907
+			if (oldLocalDatas[i].id === cuDataId) {
908
+				oldLocalDatas.splice(i, 1);
909
+				window.localStorage.setItem('newScheduleData', JSON.stringify(oldLocalDatas));
910
+			}
911
+		}
912
+	}
913
+}

+ 241 - 153
CallCenterWeb.UI/login.html

@@ -1,176 +1,264 @@
1 1
 <!DOCTYPE html>
2 2
 <html lang="zh-CN">
3
-	<head>
4
-		<meta charset="utf-8">
5
-		<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
6
-		<title>登录</title>
7
-		<meta name="keywords">
8
-		<meta name="description">
9
-		<meta name="renderer" content="webkit" />
10
-		<link rel="shortcut icon" href="img/32.ico" />
11
-		<link href="./css/bootstrap.min14ed.css" rel="stylesheet" type="text/css">
12
-		<!-- <link href="./css/animate.min.css" rel="stylesheet" type="text/css" /> -->
13
-		<link href="./css/login.min.css" rel="stylesheet">
14
-	</head>
15 3
 
16
-	<body class="signin">
17
-		<div class="signin_bg row">
18
-			<div class="signin_bg_left col-md-5"></div>
19
-			<div class="signin_bg_mask col-md-5"></div>
20
-			<div class="left_word_bj col-md-5"></div>
21
-			<div class="left_word">
22
-				<div class="left_text">
23
-					<div class="logo">
24
-						<span>阜外华中心血管病医院</span>
25
-					</div>
26
-					<h3 style="font-weight: normal;">仁心 笃行 精诚 致远 </h3>
27
-					<p>阜外华中心血管病医院是在国家卫健委关心支持和重视推动下,由中国医学科学院阜外医院、国家心血管病中心与河南省人民政府合作共建,依托河南省人民医院,按照国家三级甲等心血管病医院标准和现代医院管理制度要求建设的非营利性公立医院,是国家心血管病中心在全国布局的唯一分中心国家心血管病中心华中分中心所在地。
28
-					</p>
4
+<head>
5
+	<meta charset="utf-8">
6
+	<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
7
+	<title>登录</title>
8
+	<meta name="keywords">
9
+	<meta name="description">
10
+	<meta name="renderer" content="webkit" />
11
+	<link rel="shortcut icon" href="img/32.ico" />
12
+	<link href="./css/bootstrap.min14ed.css" rel="stylesheet" type="text/css">
13
+	<!-- <link href="./css/animate.min.css" rel="stylesheet" type="text/css" /> -->
14
+	<link href="./css/login.min.css" rel="stylesheet">
15
+</head>
16
+
17
+<body class="signin">
18
+	<div class="signin_bg row">
19
+		<div class="signin_bg_left col-md-5"></div>
20
+		<div class="signin_bg_mask col-md-5"></div>
21
+		<div class="left_word_bj col-md-5"></div>
22
+		<div class="left_word">
23
+			<div class="left_text">
24
+				<div class="logo">
25
+					<span>阜外华中心血管病医院</span>
29 26
 				</div>
27
+				<h3 style="font-weight: normal;">仁心 笃行 精诚 致远 </h3>
28
+				<p>
29
+					阜外华中心血管病医院是在国家卫健委关心支持和重视推动下,由中国医学科学院阜外医院、国家心血管病中心与河南省人民政府合作共建,依托河南省人民医院,按照国家三级甲等心血管病医院标准和现代医院管理制度要求建设的非营利性公立医院,是国家心血管病中心在全国布局的唯一分中心国家心血管病中心华中分中心所在地。
30
+				</p>
30 31
 			</div>
31 32
 		</div>
32
-		<div class="container">
33
-			<div class="row clearfix">
34
-				<div class="signin_left col-md-5"></div>
35
-				<div class="signin_right col-md-5">
36
-					<div class="signin_panel">
37
-						<div class="logo_title">
38
-							<img src="img/FWLogo.png" alt="" width="50px" height="47px" />
39
-							<h1>呼叫中心管理系统<br />
40
-								<span>CALL CENTER MANAGEMENT SYSTEM</span>
41
-							</h1>
42
-						</div>
33
+	</div>
34
+	<div class="container">
35
+		<div class="row clearfix">
36
+			<div class="signin_left col-md-5"></div>
37
+			<div class="signin_right col-md-5">
38
+				<div class="signin_panel">
39
+					<div class="logo_title">
40
+						<img src="img/FWLogo.png" alt="" width="50px" height="47px" />
41
+						<h1>呼叫中心管理系统<br />
42
+							<span>CALL CENTER MANAGEMENT SYSTEM</span>
43
+						</h1>
44
+					</div>
43 45
 
44
-						<div class="signin_user">
45
-							<i class="signin_icons"></i>
46
-							<input class="form-control" type="text" placeholder="请输入您的管理账号" id="user" autofocus autocomplete="off">
47
-							<i class="ts user_ts"></i>
48
-						</div>
49
-						<div class="signin_seat">
50
-							<i class="signin_icons"></i>
51
-							<input class="form-control" type="text" placeholder="请输入分机号" id="userSeat" autocomplete="off">
52
-						</div>
53
-						<div class="signin_password">
54
-							<i class="signin_icons"></i>
55
-							<input class="form-control" type="password" placeholder="请输入您的密码" id="password" autocomplete="off">
56
-							<i class="ts password_ts"></i>
46
+					<div class="signin_user">
47
+						<i class="signin_icons"></i>
48
+						<input class="form-control" type="text" placeholder="请输入您的管理账号" id="user" autofocus autocomplete="off">
49
+						<i class="ts user_ts"></i>
50
+					</div>
51
+					<div class="signin_seat">
52
+						<i class="signin_icons"></i>
53
+						<input class="form-control" type="text" placeholder="请输入分机号" id="userSeat" autocomplete="off">
54
+					</div>
55
+					<div class="signin_password">
56
+						<i class="signin_icons"></i>
57
+						<input class="form-control" type="password" placeholder="请输入您的密码" id="password" autocomplete="off">
58
+						<i class="ts password_ts"></i>
59
+					</div>
60
+					<div class="clearfix singin_rpassword">
61
+						<div class="rpassword">
62
+							<label for="rpassword">
63
+								<input type="checkbox" id="rpassword">
64
+								<span class="checkbox_icon"></span>
65
+								记住密码
66
+							</label>
57 67
 						</div>
58
-						<div class="clearfix singin_rpassword">
59
-							<div class="rpassword">
60
-								<label for="rpassword">
61
-									<input type="checkbox" id="rpassword">
62
-									<span class="checkbox_icon"></span>
63
-									记住密码
64
-								</label>
65
-							</div>
66
-							<!--<div class="fpassword">
68
+						<!--<div class="fpassword">
67 69
                             <a href="#" title="忘记密码">忘记秘密?</a>
68 70
                         </div>-->
69
-						</div>
70
-						<div class="btns" type="button">登录</div>
71
-						<!--<div class="fregister">
71
+					</div>
72
+					<div class="btns" type="button">登录</div>
73
+					<!--<div class="fregister">
72 74
                         <span>还没有账号?</span>
73 75
                         <a href="#" title="立即注册">立即注册&gt;&gt;</a>
74 76
                     </div>-->
75
-						<div class="signfooter">
76
-							<p>Copyright &copy; 2010-2020  华谊科技 版权所有</p>
77
-						</div>
77
+					<div class="signfooter">
78
+						<p>Copyright &copy; 2010-2020 华谊科技 版权所有</p>
78 79
 					</div>
79
-
80 80
 				</div>
81
+
81 82
 			</div>
82 83
 		</div>
83
-		<script language="javascript" type="text/javascript" src="./Script/Common/huayi.config.js"></script>
84
-		<script language="javascript" type="text/javascript" src="./js/jquery.min.js"></script>
85
-		<script language="javascript" type="text/javascript" src="./js/jquery.cookie.js"></script>
86
-		<script language="javascript" type="text/javascript" src="./js/layer/layer.js"></script>
87
-		<script src="./Script/Common/regexs.js"></script>
88
-		<script>
89
-			$(function() {
90
-				/*输入框样式改变*/
91
-				$("#user").focus(function() {
92
-					$(this).parent().addClass("_success");
93
-				});
94
-				$("#user").blur(function() {
95
-					$(this).parent().removeClass("_success");
84
+	</div>
85
+	<script language="javascript" type="text/javascript" src="./Script/Common/huayi.config.js"></script>
86
+	<script language="javascript" type="text/javascript" src="./js/jquery.min.js"></script>
87
+	<script language="javascript" type="text/javascript" src="./js/jquery.cookie.js"></script>
88
+	<script language="javascript" type="text/javascript" src="./js/layer/layer.js"></script>
89
+	<script src="./Script/Common/regexs.js"></script>
90
+	<script>
91
+		$(function () {
92
+			if ($.cookie("hy_r_u")) {
93
+				$("#rpassword").attr("checked", true);
94
+				$("#user").val($.cookie("hy_u"));
95
+				$("#userSeat").val($.cookie("hy_es"));
96
+				$("#password").val($.cookie("hy_p"));
97
+			}
98
+			/*输入框样式改变*/
99
+			$("#user").focus(function () {
100
+				$(this).parent().addClass("_success");
101
+			});
102
+			$("#user").blur(function () {
103
+				$(this).parent().removeClass("_success");
104
+			});
105
+			$("#password").focus(function () {
106
+				$(this).parent().addClass("_success");
107
+			});
108
+			$("#password").blur(function () {
109
+				$(this).parent().removeClass("_success");
110
+			});
111
+
112
+			/*cook存储数据*/
113
+			if ($.cookie("username")) {
114
+				//取值如果存在则赋值
115
+				$("#user").val($.cookie("user")); //用户名
116
+			}
117
+			$(document).on('click', '.btns', login);
118
+			$(document).on('keypress', enterHanlde);
119
+		});
120
+		//enter 登录
121
+		function enterHanlde(event) {
122
+			if (event.keyCode == "13") {
123
+				if (!$('.layui-layer-btn').length) {
124
+					$('.btns:not(:disabled)').trigger("click");
125
+				} else {
126
+					$('.layui-layer-btn a').trigger('click');
127
+				}
128
+			}
129
+		}
130
+		/*点击提交*/
131
+		function login() {
132
+			var User = $("#user").val();
133
+			var Password = $("#password").val();
134
+			var userSeat = $("#userSeat").val();
135
+			/*保存COOK*/
136
+			//$.cookie("user", $("#user").val(),{expires: 7,secure:true});
137
+			/*表单验证*/
138
+			if (User == "" || Password == "") {
139
+				$(".ts").addClass("Yz_error");
140
+				if ($("#user").val() == "") {
141
+					$("#user").focus(function () {
142
+						$(".user_ts").removeClass("Yz_error");
143
+						$(".password_ts").removeClass("Yz_error");
144
+						$(this).parent().addClass("_success");
145
+					});
146
+				} else {
147
+					$(".user_ts").addClass("Yz_success");
148
+				}
149
+			} else {
150
+				/*请求后台*/
151
+				$.ajax({
152
+					type: "post",
153
+					url: huayi.config.callcenter_url + "/Login/login",
154
+					dataType: 'json',
155
+					async: true,
156
+					beforeSend: function () { //触发ajax请求开始时执行
157
+						$('.btns').text('登录中...');
158
+						$(document).off('click', '.btns', login);
159
+						$(document).off('keypress', enterHanlde);
160
+						loadIndex = layer.load();
161
+					},
162
+					data: {
163
+						username: User,
164
+						extensionphone: userSeat,
165
+						password: Password
166
+					},
167
+					success: function (data) {
168
+						layer.close(loadIndex);
169
+						/*验证请求*/
170
+						if (data.state == "success") {
171
+							$.cookie("token", data.data.token, {
172
+								expires: 7
173
+							});
174
+							$.cookie("extno", userSeat, {
175
+								expires: 7
176
+							});
177
+							saveUserInfo();
178
+							window.location.href = "index.html";
179
+						} else {
180
+							$('.btns').text('登录');
181
+							layer.alert(data.message, {
182
+								icon: 2,
183
+								closeBtn: 0,
184
+								btn: ['确定'], //按钮
185
+							}, function (index) {
186
+								// parent.$('.btns').attr("disabled", true);
187
+								// parent.$(document).off('click', '.btns', login);
188
+								// parent.$(document).off('keypress', enterHanlde);
189
+								parent.layer.close(index);
190
+								parent.$('#user').trigger('focus');
191
+							});
192
+						}
193
+					},
194
+					error: function (textStatus) {
195
+						layer.close(loadIndex);
196
+						layer.confirm('网络繁忙,请稍后再试...', {
197
+							closeBtn: 0,
198
+							btn: ['确定'] //按钮
199
+						});
200
+						$('.btns').text('登录');
201
+						$('.btns').attr("disabled", false);
202
+						$(document).off('click', '.btns', login);
203
+						$(document).on('click', '.btns', login);
204
+						$(document).off('keypress', enterHanlde);
205
+						$(document).on('keypress', enterHanlde);
206
+					},
207
+					complete: function (XMLHttpRequest, textStatus) {
208
+						layer.close(loadIndex);
209
+						if (textStatus == 'timeout') {
210
+							var xmlhttp = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHttp");
211
+							xmlhttp.abort();
212
+							layer.confirm('网络超时,请稍后再试...', {
213
+								closeBtn: 0,
214
+								btn: ['确定'] //按钮
215
+							});
216
+						}
217
+						$('.btns').text('登录');
218
+						$('.btns').attr("disabled", false);
219
+						$(document).off('click', '.btns', login);
220
+						$(document).on('click', '.btns', login);
221
+						$(document).off('keypress', enterHanlde);
222
+						$(document).on('keypress', enterHanlde);
223
+					},
96 224
 				});
97
-				$("#password").focus(function() {
98
-					$(this).parent().addClass("_success");
225
+			}
226
+		}
227
+		function saveUserInfo() {
228
+			//是否记住密码
229
+			if ($("#rpassword").prop("checked") == true) {
230
+				var userName = $("#user").val();
231
+				var psw = $("#password").val();
232
+				var userSeat = $("#userSeat").val();
233
+				$.cookie("hy_r_u", "true", {
234
+					expires: 7
235
+				}); // 存储一个带7天期限的 cookie
236
+				$.cookie("hy_u", userName, {
237
+					expires: 7
238
+				}); // 存储一个带7天期限的 cookie
239
+				$.cookie("hy_p", psw, {
240
+					expires: 7
241
+				}); // 存储一个带7天期限的 cookie
242
+				$.cookie("hy_es", userSeat, {
243
+					expires: 7
244
+				}); // 存储一个带7天期限的 cookie
245
+			} else {
246
+				$.cookie("hy_r_u", "false", {
247
+					expires: -1
248
+				}); // 删除 cookie
249
+				$.cookie("hy_u", '', {
250
+					expires: -1
99 251
 				});
100
-				$("#password").blur(function() {
101
-					$(this).parent().removeClass("_success");
252
+				$.cookie("hy_p", '', {
253
+					expires: -1
102 254
 				});
103
-
104
-				/*cook存储数据*/
105
-				if ($.cookie("username")) {
106
-					//取值如果存在则赋值
107
-					$("#user").val($.cookie("user")); //用户名
108
-				}
109
-
110
-				$(".btns").click(function() {
111
-					login();
255
+				$.cookie("hy_es", '', {
256
+					expires: -1
112 257
 				});
258
+			}
113 259
 
114
-				$('input').bind('keypress', function(event) {
115
-					if (event.keyCode == "13") {
116
-						$('.btns').trigger("click");
117
-					}
118
-				});
260
+		}
261
+	</script>
262
+</body>
119 263
 
120
-			});
121
-			/*点击提交*/
122
-			function login() {
123
-				var User = $("#user").val();
124
-				var Password = $("#password").val();
125
-				var userSeat = $("#userSeat").val();
126
-				/*保存COOK*/
127
-				//$.cookie("user", $("#user").val(),{expires: 7,secure:true});
128
-				/*表单验证*/
129
-				if (User == "" || Password == "") {
130
-					$(".ts").addClass("Yz_error");
131
-					if ($("#user").val() == "") {
132
-						$("#user").focus(function() {
133
-							$(".user_ts").removeClass("Yz_error");
134
-							$(".password_ts").removeClass("Yz_error");
135
-							$(this).parent().addClass("_success");
136
-						});
137
-					} else {
138
-						$(".user_ts").addClass("Yz_success");
139
-					}
140
-				} else {
141
-					/*请求后台*/
142
-					$.ajax({
143
-						type: "post",
144
-						url: huayi.config.callcenter_url + "/Login/login",
145
-						dataType: 'json',
146
-						async: true,
147
-						beforeSend: function() { //触发ajax请求开始时执行
148
-							$('.btns').text('登录中...');
149
-							loadIndex = layer.load();
150
-						},
151
-						data: {
152
-							username: User,
153
-							extensionphone: userSeat,
154
-							password: Password
155
-						},
156
-						success: function(data) {
157
-							/*验证请求*/
158
-							if (data.state == "success") {
159
-								$.cookie("token", data.data.token, {
160
-									expires: 7
161
-								});
162
-								$.cookie("extno", userSeat, {
163
-									expires: 7
164
-								});
165
-								window.location.href = "index.html";
166
-							} else {
167
-								layer.msg("登录失败");
168
-								$('.btns').text('登录');
169
-							}
170
-						}
171
-					});
172
-				}
173
-			}
174
-		</script>
175
-	</body>
176
-</html>
264
+</html>

+ 167 - 173
CallCenterWeb.UI/outboundMessage/xgPlan.html

@@ -1,200 +1,194 @@
1 1
 <!DOCTYPE html>
2 2
 <html>
3 3
 
4
-	<head>
5
-		<meta charset="UTF-8">
6
-		<script src="../Script/Common/huayi.load.js"></script>
7
-		<script src="../Script/Common/huayi.load.js"></script>
8
-		<script src="../Script/Common/huayi.config.js"></script>
9
-		<link href="../css/Table/table1.css" rel="stylesheet" />
10
-		<link href="../css/init.css" rel="stylesheet" />
11
-		<link rel="stylesheet" href="../css/QutboundMessage/QutboundComm.css" />
12
-		<title>修改外呼计划</title>
13
-		<style>
4
+<head>
5
+	<meta charset="UTF-8">
6
+	<script src="../Script/Common/huayi.load.js"></script>
7
+	<script src="../Script/Common/huayi.load.js"></script>
8
+	<script src="../Script/Common/huayi.config.js"></script>
9
+	<link href="../css/Table/table1.css" rel="stylesheet" />
10
+	<link href="../css/init.css" rel="stylesheet" />
11
+	<link rel="stylesheet" href="./css/QutboundComm.css" />
12
+	<title>修改外呼计划</title>
13
+</head>
14 14
 
15
-		</style>
16
-	</head>
17
-
18
-	<body>
19
-		<div>
20
-			<div style="padding: 10px; margin-bottom: 20px;">
21
-				<table class="form_table">
22
-					<tr>
23
-						<th>
24
-							<span> 计划名称:</span>
25
-						</th>
26
-						<td>
27
-							<input type="text" class=" txtInput name Planname" />
28
-						</td>
29
-					</tr>
30
-					<tr>
31
-						<th>
32
-							<span>调查问卷:</span>
33
-						</th>
34
-						<td>
35
-							<input type="text" class=" txtInput name Qubound" />
36
-							<i class="fa fa-search size-14" id="Search"></i>
37
-						</td>
38
-					</tr>
39
-					<tr>
40
-						<th>
41
-							<span>说明备注:</span>
42
-						</th>
43
-						<td>
44
-							<input type="text " class=" txtInput name remark" />
45
-						</td>
46
-					</tr>
15
+<body>
16
+	<div>
17
+		<div style="padding: 10px; margin-bottom: 20px;">
18
+			<table class="form_table">
19
+				<tr>
20
+					<th>
21
+						<span> 计划名称:</span>
22
+					</th>
23
+					<td>
24
+						<input type="text" class=" txtInput name Planname" />
25
+					</td>
26
+				</tr>
27
+				<tr>
28
+					<th>
29
+						<span>调查问卷:</span>
30
+					</th>
31
+					<td>
32
+						<input type="text" class=" txtInput name Qubound" />
33
+						<i class="fa fa-search size-14" id="Search"></i>
34
+					</td>
35
+				</tr>
36
+				<tr>
37
+					<th>
38
+						<span>说明备注:</span>
39
+					</th>
40
+					<td>
41
+						<input type="text " class=" txtInput name remark" />
42
+					</td>
43
+				</tr>
47 44
 
45
+			</table>
46
+			<div class="Table_box">
47
+				<table id="tb1">
48
+					<thead>
49
+						<tr>
50
+							<th data-field="checkbox" data-align="center" data-formatter="setCode"></th>
51
+							<th data-align="center" data-field="F_Title">问卷名称</th>
52
+							<th data-align="center" data-field="F_CreateOn">生成时间</th>
53
+						</tr>
54
+					</thead>
55
+					<tbody>
56
+					</tbody>
48 57
 				</table>
49
-				<div class="Table_box">
50
-					<table id="tb1">
51
-						<thead>
52
-							<tr>
53
-								<th data-field="checkbox" data-align="center" data-formatter="setCode"></th>
54
-								<th data-align="center" data-field="F_Title">问卷名称</th>
55
-								<th data-align="center" data-field="F_CreateOn">生成时间</th>
56
-							</tr>
57
-						</thead>
58
-						<tbody>
59
-						</tbody>
60
-					</table>
61
-				</div>
62
-				<div class="Btn_box">
63
-					<button class="btns Add">保存</button>
64
-				</div>
65 58
 			</div>
66
-
59
+			<div class="Btn_box">
60
+				<button class="btns Add">保存</button>
61
+			</div>
67 62
 		</div>
68
-		<script>
69
-			var $tableLeft = $('#tb1');
70
-			var token = $.cookie("token");
71
-			var pagerid;
72
-			var wid = helper.request.queryString("Str");
73
-			console.log(wid);
74
-			$(document).ready(function() {
75
-				if(wid) {
76
-					//获取计划
63
+
64
+	</div>
65
+	<script>
66
+		var $tableLeft = $('#tb1');
67
+		var token = $.cookie("token");
68
+		var pagerid;
69
+		var wid = helper.request.queryString("Str");
70
+		$(document).ready(function () {
71
+			if (wid) {
72
+				//获取计划
73
+				$.ajax({
74
+					type: "get",
75
+					url: huayi.config.callcenter_url + "CallOutPlan/GetTaskModel",
76
+					dataType: 'json',
77
+					data: {
78
+						id: wid,
79
+						token: $.cookie("token")
80
+					},
81
+					async: true,
82
+					success: function (data) {
83
+						if (data.state == "success") {
84
+							if (data.data.pagermodel != null) {
85
+								$('.Qubound').val(data.data.pagermodel.F_Title);
86
+							}
87
+							$(".Planname").val(data.data.taskmodel.F_TaskName);
88
+							$('.remark').val(data.data.taskmodel.F_TaskRemark);
89
+
90
+						}
91
+
92
+					}
93
+				});
94
+			}
95
+			$("#Search").click(function () {
96
+				IndexCategoryGe();
97
+				$(".Table_box").show();
98
+				$('.Btn_box').hide();
99
+			})
100
+			$(".Add").click(function () {
101
+				pagerid = $(".Qubound").attr("index")
102
+				if (!$(".Planname").val()) {
103
+					layer.msg("名称不能为空");
104
+				} else if (!$(".remark").val()) {
105
+					layer.msg("备注不能为空");
106
+				} else if (!$(".Qubound").val()) {
107
+					ayer.msg("问卷不能为空");
108
+				} else {
109
+					//增加分类
77 110
 					$.ajax({
78
-						type: "get",
79
-						url: huayi.config.callcenter_url + "CallOutPlan/GetTaskModel",
111
+						type: "post",
112
+						url: huayi.config.callcenter_url + "CallOutPlan/CreateOrUpdateTask",
80 113
 						dataType: 'json',
81 114
 						data: {
82 115
 							id: wid,
116
+							pagerid: pagerid,
117
+							remark: $(".remark").val(),
118
+							name: $(".Planname").val(),
83 119
 							token: $.cookie("token")
84 120
 						},
85 121
 						async: true,
86
-						success: function(data) {
87
-							if(data.state == "success") {
88
-								console.log(data);
89
-								if(data.data.pagermodel != null) {
90
-									$('.Qubound').val(data.data.pagermodel.F_Title);
91
-								}
92
-								$(".Planname").val(data.data.taskmodel.F_TaskName);
93
-								$('.remark').val(data.data.taskmodel.F_TaskRemark);
94
-
122
+						success: function (data) {
123
+							if (data.state == "success") {
124
+								var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
125
+								parent.layer.close(index); //再执行关闭
126
+								parent.IndexCategoryGe();
127
+								parent.layer.msg(data.message);
95 128
 							}
96 129
 
97 130
 						}
98 131
 					});
99 132
 				}
100
-				$("#Search").click(function() {
101
-					IndexCategoryGe();
102
-					$(".Table_box").show();
103
-					$('.Btn_box').hide();
104
-				})
105
-				$(".Add").click(function() {
106
-					pagerid = $(".Qubound").attr("index")
107
-					console.log(pagerid);
108
-					if(!$(".Planname").val()) {
109
-						layer.msg("名称不能为空");
110
-					} else if(!$(".remark").val()) {
111
-						layer.msg("备注不能为空");
112
-					} else if(!$(".Qubound").val()) {
113
-						ayer.msg("问卷不能为空");
114
-					} else {
115
-						//增加分类
116
-						$.ajax({
117
-							type: "post",
118
-							url: huayi.config.callcenter_url + "CallOutPlan/CreateOrUpdateTask",
119
-							dataType: 'json',
120
-							data: {
121
-								id: wid,
122
-								pagerid: pagerid,
123
-								remark: $(".remark").val(),
124
-								name: $(".Planname").val(),
125
-								token: $.cookie("token")
126
-							},
127
-							async: true,
128
-							success: function(data) {
129
-								if(data.state == "success") {
130
-									var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
131
-									parent.layer.close(index); //再执行关闭
132
-									parent.IndexCategoryGe();
133
-									parent.layer.msg(data.message);
134
-								}
135
-
136
-							}
137
-						});
138
-					}
139
-
140
-				})
141 133
 
142 134
 			})
143 135
 
144
-			//问卷列表
145
-			function IndexCategoryGe() {
146
-				//销毁表格
147
-				$tableLeft.bootstrapTable('destroy');
148
-				//初始化表格,动态从服务器加载数据
149
-				$tableLeft.bootstrapTable({
150
-					method: "get", //使用get请求到服务器获取数据
151
-					url: huayi.config.callcenter_url + "Questionnaire/GetPagerInfoList",
152
-					striped: true, //表格显示条纹
153
-					pagination: true, //启动分页
154
-					pageSize: 5, //每页显示的记录数
155
-					pageNumber: 1, //当前第几页
156
-					pageList: [5, 10, 50, 100], //记录数可选列表
157
-					contentType: 'application/x-www-form-urlencoded',
158
-					search: false, //是否启用查询
159
-					showColumns: false, //显示下拉框勾选要显示的列
160
-					showRefresh: false, //显示刷新按钮
161
-					sidePagination: "server", //表示服务端请求
162
-					//设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
163
-					//设置为limit可以获取limit, offset, search, sort, order
164
-					queryParamsType: "undefined",
165
-					queryParams: function queryParams(params) { //设置查询参数
166
-						var param = {
167
-							pageindex: params.pageNumber,
168
-							pagesize: params.pageSize,
169
-							token: token
170
-						};
171
-						return param;
172
-					},
173
-					onLoadSuccess: function() { //加载成功时执行
174
-						//								layer.msg("加载成功");
175
-					},
176
-					onLoadError: function() { //加载失败时执行
177
-						//layer.msg("加载数据失败", { time: 1500, icon: 2 });
178
-					},
179
-					onDblClickRow: function(row) {
180
-						$(".Qubound").val(row.F_Title);
181
-						$(".Qubound").attr("index", row.F_PagerId); //设置问卷ID
182
-						$(".Table_box").hide();
183
-						$('.Btn_box').show();
184
-					}
185
-				});
186
-			}
187
-			//编号
188
-			function setCode(val, row, index) {
189
-				return index + 1;
190
-			}
191
-			/*获取选中行对象*/
192
-			$tableLeft.on("click-row.bs.table", function(e, row, ele) {
193
-				$('.success').removeClass('success'); //去除之前选中的行的,选中样式
194
-				$(ele).addClass('success'); //添加当前选中的 success样式用于区别; 
136
+		})
195 137
 
138
+		//问卷列表
139
+		function IndexCategoryGe() {
140
+			//销毁表格
141
+			$tableLeft.bootstrapTable('destroy');
142
+			//初始化表格,动态从服务器加载数据
143
+			$tableLeft.bootstrapTable({
144
+				method: "get", //使用get请求到服务器获取数据
145
+				url: huayi.config.callcenter_url + "Questionnaire/GetPagerInfoList",
146
+				striped: true, //表格显示条纹
147
+				pagination: true, //启动分页
148
+				pageSize: 5, //每页显示的记录数
149
+				pageNumber: 1, //当前第几页
150
+				pageList: [5, 10, 50, 100], //记录数可选列表
151
+				contentType: 'application/x-www-form-urlencoded',
152
+				search: false, //是否启用查询
153
+				showColumns: false, //显示下拉框勾选要显示的列
154
+				showRefresh: false, //显示刷新按钮
155
+				sidePagination: "server", //表示服务端请求
156
+				//设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
157
+				//设置为limit可以获取limit, offset, search, sort, order
158
+				queryParamsType: "undefined",
159
+				queryParams: function queryParams(params) { //设置查询参数
160
+					var param = {
161
+						pageindex: params.pageNumber,
162
+						pagesize: params.pageSize,
163
+						token: token
164
+					};
165
+					return param;
166
+				},
167
+				onLoadSuccess: function () { //加载成功时执行
168
+					//								layer.msg("加载成功");
169
+				},
170
+				onLoadError: function () { //加载失败时执行
171
+					//layer.msg("加载数据失败", { time: 1500, icon: 2 });
172
+				},
173
+				onDblClickRow: function (row) {
174
+					$(".Qubound").val(row.F_Title);
175
+					$(".Qubound").attr("index", row.F_PagerId); //设置问卷ID
176
+					$(".Table_box").hide();
177
+					$('.Btn_box').show();
178
+				}
196 179
 			});
197
-		</script>
198
-	</body>
180
+		}
181
+		//编号
182
+		function setCode(val, row, index) {
183
+			return index + 1;
184
+		}
185
+		/*获取选中行对象*/
186
+		$tableLeft.on("click-row.bs.table", function (e, row, ele) {
187
+			$('.success').removeClass('success'); //去除之前选中的行的,选中样式
188
+			$(ele).addClass('success'); //添加当前选中的 success样式用于区别; 
189
+
190
+		});
191
+	</script>
192
+</body>
199 193
 
200 194
 </html>

+ 117 - 0
CallCenterWeb.UI/schedule/js/addOrEditSchedule.js

@@ -0,0 +1,117 @@
1
+/**
2
+ * 修改增加日程管理
3
+ * */
4
+var edit_id = helper.request.queryString("edit_id");
5
+var nowTime = helper.DateFormat.getNowDateTime();
6
+$(function () {
7
+	laydate.render({
8
+		elem: '#remindtime',
9
+		theme: '#1ab394',
10
+		type: 'datetime',
11
+		min: nowTime,
12
+		calendar: true
13
+	});
14
+	autosize($('textarea'));
15
+	if (edit_id) {
16
+		getSchedule();
17
+	}
18
+	$('#save_btns').on('click', saveNotice)
19
+});
20
+
21
+//获取日程管理详情
22
+function getSchedule() {
23
+	$.getJSON(huayi.config.callcenter_url + "Workcalendar/GetSingle", {
24
+		id: edit_id,
25
+		token: $.cookie('token')
26
+	}, function (res) {
27
+		if (res.state.toLowerCase() === 'success') {
28
+			scheduleDatas = res.data;
29
+			$('#remindtime').val(scheduleDatas.F_Date);
30
+			$('#content').val(scheduleDatas.F_Content);
31
+		}
32
+	})
33
+}
34
+
35
+//保存
36
+function saveNotice() {
37
+	if (!$.trim($('#remindtime').val())) {
38
+		layer.confirm('请选择提醒时间!', {
39
+			icon: 2,
40
+			btn: ['确定']
41
+		});
42
+		return;
43
+	}
44
+	if (!$.trim($('#content').val())) {
45
+		layer.confirm('请输入提醒内容!', {
46
+			icon: 2,
47
+			btn: ['确定']
48
+		});
49
+		return;
50
+	}
51
+	if ($.trim($('#content').val()).length > 50) {
52
+		layer.confirm('提醒内容不能超过50个字(包含标点符号)!', {
53
+			icon: 2,
54
+			btn: ['确定']
55
+		});
56
+		return;
57
+	}
58
+	var wURL, loadIndex;
59
+	if (edit_id) {
60
+		wURL = "Workcalendar/AddSR";
61
+	} else {
62
+		wURL = "Workcalendar/AddSR";
63
+	}
64
+	$.ajax({
65
+		type: 'post',
66
+		url: huayi.config.callcenter_url + wURL,
67
+		dataType: 'json',
68
+		async: true,
69
+		beforeSend: function () { //触发ajax请求开始时执行
70
+			$('#save_btns').attr("disabled", true);
71
+			$('#save_btns').text('保存中...');
72
+			loadIndex = layer.load();
73
+		},
74
+		data: {
75
+			id: edit_id, //          日程id,修改时需传此参数,添加时不传
76
+			remindtime: $('#remindtime').val(), //  提醒时间,格式yyyy- MM - dd HH: mm: ss
77
+			content: helper.filter.delHtmlTag($('#content').val()),  //  提醒内容
78
+			token: $.cookie("token")
79
+		},
80
+		success: function (data) {
81
+			layer.close(loadIndex);
82
+			if (data.state === "success") {
83
+				var index = parent.layer.getFrameIndex(window.name);
84
+				parent.layer.close(index);
85
+				parent.$('#scheduleList').bootstrapTable('refresh');
86
+				parent.layer.msg("保存成功");
87
+			} else {
88
+				$('#save_btns').attr("disabled", false);
89
+				$('#save_btns').text('保存');
90
+			}
91
+		},
92
+		error: function (textStatus) {
93
+			layer.close(loadIndex);
94
+			layer.confirm('网络繁忙,请稍后再试...', {
95
+				icon: 7,
96
+				closeBtn: 0,
97
+				btn: ['确定'] //按钮
98
+			});
99
+			$('#save_btns').attr("disabled", false);
100
+			$('#save_btns').text('保存');
101
+		},
102
+		complete: function (XMLHttpRequest, textStatus) {
103
+			layer.close(loadIndex);
104
+			if (textStatus == 'timeout') {
105
+				var xmlhttp = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHttp");
106
+				xmlhttp.abort();
107
+				layer.confirm('网络超时,请稍后再试...', {
108
+					icon: 7,
109
+					closeBtn: 0,
110
+					btn: ['确定'] //按钮
111
+				});
112
+			}
113
+			$('#save_btns').attr("disabled", false);
114
+			$('#save_btns').text('保存');
115
+		},
116
+	});
117
+}

+ 175 - 0
CallCenterWeb.UI/schedule/js/schedule.js

@@ -0,0 +1,175 @@
1
+/**
2
+ * 日程管理
3
+ * */
4
+
5
+$(document).ready(function() {
6
+	//初始化时间
7
+	laydate.render({
8
+		elem: '#sc_time',
9
+		range: '~',
10
+		theme: '#1ab394',
11
+		calendar: true
12
+	});
13
+	initTable();
14
+	$("#sc_btns").on('click',initTable);
15
+	$('#btn_add').on('click', btn_add);
16
+});
17
+
18
+//日程管理的列表
19
+function initTable() {
20
+	//先销毁表格
21
+	$('#scheduleList').bootstrapTable('destroy');
22
+	//初始化表格,动态从服务器加载数据
23
+	$("#scheduleList").bootstrapTable({
24
+		method: "get", //使用get请求到服务器获取数据
25
+		url: huayi.config.callcenter_url + "Workcalendar/GetSRList", //获取数据的Servlet地址
26
+		contentType: 'application/x-www-form-urlencoded',
27
+		striped: true, //表格显示条纹
28
+		pagination: true, //启动分页
29
+		pageSize: 10, //每页显示的记录数
30
+		pageNumber: 1, //当前第几页
31
+		pageList: [10, 20, 50, 100], //记录数可选列表
32
+		search: false, //是否启用查询
33
+		showColumns: false, //显示下拉框勾选要显示的列
34
+		showRefresh: false, //显示刷新按钮
35
+		sidePagination: "server", //表示服务端请求
36
+		//设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
37
+		//设置为limit可以获取limit, offset, search, sort, order
38
+		queryParamsType: "undefined",
39
+		queryParams: function queryParams(params) { //设置查询参数
40
+			var param = {
41
+				page: params.pageNumber, //int 页码,默认为1	
42
+				Pagesize: params.pageSize, //int 条数,默认为10
43
+				stime: $('#sc_time').val() && $('#sc_time').val().split(' ~ ')[0],//查询起始时间
44
+				etime: $('#sc_time').val() && $('#sc_time').val().split(' ~ ')[1],//查询截止时间
45
+				token: $.cookie("token")
46
+			};
47
+			return param;
48
+		},
49
+		onLoadSuccess: function() { //加载成功时执行
50
+			//layer.msg("加载成功");
51
+		},
52
+		onLoadError: function() { //加载失败时执行
53
+			//layer.msg("加载数据失败", { time: 1500, icon: 2 });
54
+		}
55
+	});
56
+}
57
+
58
+//格式化操作
59
+function formatterOprate(val, row) {
60
+	return '<ul class="tool_downs">' +
61
+		'<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_details_' + val + '" onclick="btn_details(\'' + val + '\')" title="详情">详情</a></li>' +
62
+		'<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_edit_' + val + '" onclick="btn_edit(\'' + val + '\')" title="修改">修改</a></li>' +
63
+		'<li><a href="javascript:;" class="aBtn" authorize="yes" id="HY_delete_' + val + '" onclick="btn_delete(' + val + ')" title="删除">删除</a></li>' +
64
+		'</ul>';
65
+}
66
+
67
+// 格式化编号
68
+function formatterCode(val, row, index){
69
+	return ++index; 
70
+}
71
+
72
+// 格式化是否客户查看
73
+function formatterIsCus(val){
74
+	var statusMap = {
75
+		false: '未读',
76
+		true: '已读'
77
+	}
78
+  return statusMap[val];
79
+}
80
+
81
+//格式化 内容
82
+function formatterContent(val) {
83
+	var strD = '-';
84
+	if(val) {
85
+		strD = helper.filter.filterHTMLTag(val);
86
+		if(strD.length > 30) {
87
+			strD = strD.substring(0, 30) + '...';
88
+		}
89
+	}
90
+	return strD;
91
+}
92
+
93
+/**
94
+ * 添加
95
+ * */
96
+function btn_add() {
97
+	layer.open({
98
+		type: 2,
99
+		title: '添加日程管理',
100
+		maxmin: true, //开启最大化最小化按钮
101
+		area: ['80%', '90%'],
102
+		content: './template/addOrEditSchedule.html'
103
+	});
104
+}
105
+
106
+/**
107
+ * 修改
108
+ * edit_id 日程id
109
+ * */
110
+function btn_edit(edit_id) {
111
+	layer.open({
112
+		type: 2,
113
+		title: '修改日程管理',
114
+		maxmin: true, //开启最大化最小化按钮
115
+		area: ['80%', '90%'],
116
+		content: './template/addOrEditSchedule.html?edit_id=' + edit_id
117
+	});
118
+}
119
+
120
+/**
121
+ * 详情
122
+ * edit_id 日程id
123
+ * */
124
+function btn_details(edit_id) {
125
+	layer.open({
126
+		type: 2,
127
+		title: '日程管理详情',
128
+		maxmin: true, //开启最大化最小化按钮
129
+		area: ['80%', '90%'],
130
+		content: './template/scheduleDetail.html?edit_id=' + edit_id
131
+	});
132
+}
133
+
134
+
135
+//批量删除
136
+function btn_deletes() {
137
+	var ids = $.map($('#scheduleList').bootstrapTable('getSelections'),
138
+		function(row) {
139
+			return row.F_ID;
140
+		});
141
+	/*判断长度*/
142
+	if (ids.length <= 0) {
143
+		layer.confirm('请选择要删除的选项', {
144
+			icon: 7,
145
+			btn: ['确定'] //按钮
146
+		});
147
+		return;
148
+	}
149
+	btn_delete(ids);
150
+}
151
+
152
+//删除
153
+function btn_delete(cid) {
154
+	layer.confirm('确定删除当前记录?', {
155
+		icon: 7,
156
+		btn: ['是', '否'] //按钮
157
+	}, function(index) {
158
+		/*执行删除*/
159
+		$.ajax({
160
+			type: "post",
161
+			url: huayi.config.callcenter_url + "Workcalendar/DelSR",
162
+			dataType: 'json',
163
+			async: true,
164
+			data: {
165
+				ids: cid,//Id,可多选[1,2,3]
166
+				token: $.cookie("token")
167
+			},
168
+			success: function(data) {
169
+				layer.msg("删除成功!");
170
+				$('#scheduleList').bootstrapTable('refresh');
171
+				layer.close(index);
172
+			}
173
+		});
174
+	});
175
+}

+ 39 - 0
CallCenterWeb.UI/schedule/js/scheduleDetail.js

@@ -0,0 +1,39 @@
1
+/**
2
+ * 详情
3
+ * */
4
+$(function () {
5
+	var edit_id = helper.request.queryString("edit_id");
6
+	if (edit_id) {
7
+		getSchedule(edit_id);
8
+	}
9
+});
10
+
11
+//获取详情
12
+function getSchedule(edit_id) {
13
+	$.getJSON(huayi.config.callcenter_url + "Workcalendar/GetSingle", {
14
+		id: edit_id,
15
+		token: $.cookie('token')
16
+	}, function (res) {
17
+		if (res.state.toLowerCase() === 'success') {
18
+			scheduleDatas = res.data;
19
+			$('#iscus').text(formatterIsCus(scheduleDatas.F_IsRead));
20
+			$('#remindtime').text(scheduleDatas.F_Date);
21
+			$('#createuser').text(scheduleDatas.F_CreateUser);
22
+			$('#createtime').text(scheduleDatas.F_CreateTime);
23
+			if (scheduleDatas.F_Content) {
24
+				$('#content').html(helper.filter.content(scheduleDatas.F_Content));
25
+			} else {
26
+				$('#content').text('暂无内容。。。');
27
+			}
28
+		}
29
+	})
30
+}
31
+
32
+// 格式化是否客户查看
33
+function formatterIsCus(val) {
34
+	var statusMap = {
35
+		false: '未读',
36
+		true: '已读'
37
+	}
38
+	return statusMap[val];
39
+}

+ 68 - 0
CallCenterWeb.UI/schedule/schedule.html

@@ -0,0 +1,68 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+	<head>
5
+		<meta charset="UTF-8">
6
+		<title>日程管理</title>
7
+		<meta name="viewport" content="width=device-width, initial-scale=1.0">
8
+		<script src="../Script/Common/huayi.load.js"></script>
9
+		<script src="../Script/Common/huayi.config.js"></script>
10
+		<link href="../css/WorkOrder/Search.css" rel="stylesheet">
11
+		<link href="../css/init.css" rel="stylesheet" />
12
+	</head>
13
+
14
+	<body class="gray-bg">
15
+		<div class="daoHang clearfix">
16
+			<div class="dhLeft">
17
+				<sapn><i class="syIcon"></i>位置:
18
+					<a href="javaScript:;" id="ReIndex">首页</a>&gt;
19
+					<a href="javaScript:;">日程管理</a>&gt;
20
+					<a href="" class="nowPosition">日程管理</a>
21
+				</sapn>
22
+			</div>
23
+			<div class="dhRight">
24
+				<a href="#" title="刷新"><i class="fa fa-refresh"></i></a>
25
+			</div>
26
+		</div>
27
+		<div class="wrapper wrapper-content animated fadeInRight">
28
+			<div class="toolBox clearfix">
29
+				<div class="pull-left">
30
+					<div class="form-inline">
31
+						<div class="time-box form-group">
32
+							<i class="tub fa fa-calendar"></i>
33
+							<input class="form-control search_time" type="text" id="sc_time" placeholder="请选择起止时间">
34
+						</div> 
35
+					</div>
36
+				</div>
37
+
38
+				<div class="pull-right tool_bars">
39
+					<button class="btns" id="sc_btns">搜索</button>
40
+					<button class="btns" id="btn_add">添加</button>
41
+					<button class="btns" onclick="btn_deletes()">批量删除</button>
42
+				</div>
43
+			</div>
44
+
45
+			<div style="width: 100%;padding: 10px;">
46
+				<table id="scheduleList" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
47
+					<thead>
48
+						<tr>
49
+							<th data-checkbox="true"></th>
50
+							<th data-align="center" data-formatter="formatterCode" data-width="3%">编号</th>
51
+							<th data-field="F_Content" data-formatter="formatterContent" data-align="center">提醒内容</th>
52
+							<th data-field="F_Date" data-width="10%" data-align="center">提醒时间</th>
53
+							<th data-field="F_IsRead" data-formatter="formatterIsCus" data-width="10%" data-align="center">是否已读</th>
54
+							<th data-field="F_CreateTime" data-width="10%" data-align="center">创建时间</th>
55
+							<th data-field="F_CreateUser" data-align="center" data-width="10%">创建人</th>
56
+							<th data-field="F_ID" data-formatter="formatterOprate" data-align="center" data-width="10%">操作</th>
57
+						</tr>
58
+					</thead>
59
+				</table>
60
+			</div>
61
+			
62
+		</div>
63
+		<script src="../js/laydate/laydate.js"></script>
64
+		<script src="js/schedule.js"></script>
65
+
66
+	</body>
67
+
68
+</html>

+ 56 - 0
CallCenterWeb.UI/schedule/template/addOrEditSchedule.html

@@ -0,0 +1,56 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+	<head>
5
+		<meta charset="UTF-8">
6
+		<title>添加或编辑日程管理</title>
7
+		<meta name="viewport" content="width=device-width, initial-scale=1.0">
8
+		<!-- <link href="../../js/bootstrap-select/css/bootstrap-select.css" rel="stylesheet" /> -->
9
+		<script src="../../Script/Common/huayi.load.js"></script>
10
+		<script src="../../Script/Common/huayi.config.js"></script>
11
+		<!-- <link rel="stylesheet" href="../../js/zTree/zTreeStyle.css" /> -->
12
+		<link rel="stylesheet" href="../../css/customer.css" />
13
+		<style>
14
+			.form-horizontal .checkbox-inline{
15
+				padding-top: 0;
16
+			}
17
+			.add_edit_notice .ztree{
18
+				padding: 0;
19
+			}
20
+		</style>
21
+	</head>
22
+
23
+	<body>
24
+		<div class="container add_edit_notice">
25
+			<div class="tab_contents" id="tab_user_contents">
26
+				<ul class="project_items form-horizontal showtabs">
27
+					<li class="form-group">
28
+						<label for="remindtime" class="col-md-2"><b class="text_require">*</b>提醒时间</label>
29
+						<div class="col-md-9">
30
+							<input id="remindtime" class="form-control" type="text" autocomplete="off" placeholder="请选择提醒时间" />
31
+						</div>
32
+					</li>
33
+					<li class="form-group">
34
+						<label for="content" class="col-md-2"><b class="text_require">*</b>提醒内容</label>
35
+						<div class="col-md-9">
36
+							<textarea id="content" class="form-control" rows="10" placeholder="请输入提醒内容"></textarea>
37
+						</div>
38
+					</li>
39
+				</ul>
40
+				<div class="form-group clearfix">
41
+					<div class="col-md-offset-3 col-md-10">
42
+						<button class="project_save btn btn-primary" id="save_btns" type="button">保存</button>
43
+					</div>
44
+				</div>
45
+			</div>
46
+		</div>
47
+		<!-- <script src="../../js/bootstrap-select/js/bootstrap-select.js"></script> -->
48
+		<!-- <script src="../../js/bootstrap-select/js/i18n/defaults-zh_CN.js"></script> -->
49
+		<script src="../../js/autosize/autosize.min.js"></script>
50
+		<script src="../../js/laydate/laydate.js"></script>
51
+		<!-- <script src="../../js/zTree/jquery.ztree.core.js"></script> -->
52
+    <!-- <script src="../../js/zTree/jquery.ztree.excheck.min.js"></script> -->
53
+		<script src="../js/addOrEditSchedule.js"></script>
54
+	</body>
55
+
56
+</html>

+ 44 - 0
CallCenterWeb.UI/schedule/template/scheduleDetail.html

@@ -0,0 +1,44 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+	<head>
5
+		<meta charset="UTF-8">
6
+		<title>日程管理详情</title>
7
+		<meta name="viewport" content="width=device-width, initial-scale=1.0">
8
+		<script src="../../Script/Common/huayi.load.js"></script>
9
+		<script src="../../Script/Common/huayi.config.js"></script>
10
+		<style>
11
+			.bus_label{
12
+				margin: 60px 0 40px 0; 
13
+			}
14
+			.content{
15
+				/* border-top: 1px dashed #1ab394; */
16
+				padding: 20px 0;
17
+				word-wrap: break-word;
18
+				word-break: break-all;
19
+			}
20
+		</style>
21
+	</head>
22
+
23
+	<body>
24
+		<div class="container">
25
+			<div class="row clearfix bus_label">
26
+				<div class="col-md-3 text-center">
27
+					是否已读:<span id="iscus"></span>
28
+				</div>
29
+				<div class="col-md-3 text-center">
30
+					提醒时间:<span id="remindtime"></span>
31
+				</div>
32
+				<div class="col-md-3 text-center">
33
+					创建人:<span id="createuser"></span>
34
+				</div>
35
+				<div class="col-md-3 text-center">
36
+					创建时间:<span id="createtime"></span>
37
+				</div>
38
+			</div>
39
+			<div id="content" class="content"></div>
40
+		</div>
41
+		<script src="../js/scheduleDetail.js"></script>
42
+	</body>
43
+
44
+</html>