zhangshuangnan лет назад: 7
Родитель
Сommit
25c0739ceb

+ 9 - 0
CallCenterWeb.UI/.project

@@ -78,5 +78,14 @@
78 78
 				<arguments>1.0-name-matches-false-false-node_modules</arguments>
79 79
 			</matcher>
80 80
 		</filter>
81
+		<filter>
82
+			<id>1536808639529</id>
83
+			<name></name>
84
+			<type>26</type>
85
+			<matcher>
86
+				<id>org.eclipse.ui.ide.multiFilter</id>
87
+				<arguments>1.0-name-matches-false-false-node_modules</arguments>
88
+			</matcher>
89
+		</filter>
81 90
 	</filteredResources>
82 91
 </projectDescription>

+ 364 - 0
CallCenterWeb.UI/OutboundMessage/Dr.html

@@ -0,0 +1,364 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+	<head>
5
+		<meta charset="UTF-8">
6
+		<script src="../Script/Common/huayi.load.js"></script>
7
+		<script src="../Script/Common/huayi.config.js"></script>
8
+		<!--<script src="../js/visit/ajaxfileupload.js"></script>-->
9
+		<title>导入号码</title>
10
+		<style>
11
+			.btn-success {
12
+				color: #fff;
13
+				background-color: #1ab394;
14
+				border-color: #4cae4c;
15
+				border-radius: 4px;
16
+				cursor: pointer;
17
+			}
18
+			
19
+			.btn-success.active,
20
+			.btn-success:active,
21
+			.btn-success:focus,
22
+			.btn-success:hover {
23
+				border-color: #4cae4c;
24
+				background-color: #1ab394;
25
+			}
26
+			
27
+			.btn-success[disabled],
28
+			.btn-success[disabled]:active,
29
+			.btn-success[disabled]:focus,
30
+			.btn-success[disabled]:hover {
31
+				background-color: #1ab394;
32
+			}
33
+			
34
+			#importNum {
35
+				width: 130px;
36
+				margin: 60px auto 0 auto;
37
+			}
38
+			
39
+			.progress {
40
+				width: 80%;
41
+				margin: 20px auto 0 auto;
42
+				display: none;
43
+			}
44
+		</style>
45
+	</head>
46
+
47
+	<body>
48
+
49
+		<div style="padding: 10px; margin-bottom: 20px;">
50
+			<div class="alert alert-info" role="alert">
51
+				<span class="glyphicon glyphicon-exclamation-sign" aria-hidden="true"></span>
52
+				<span class="sr-only">tips:</span> 上传文件需要严格按照下载的EXCEL模板进行填写!上传后点击导入即可!
53
+			</div>
54
+			<div class="form-inline clearfix">
55
+				<div class="form-group">
56
+					<a href="drmb/导入模板.xlsx" download="导入模板.xlsx" class="btn btn-success form-control" id="downloadExl" title="点击下载EXCEL模板" rel="nofollow">
57
+						下载EXCEL模板
58
+					</a>
59
+				</div>
60
+				<div class="form-group">
61
+					<input class="hidden" type="file" id="upFile" name="upFile" accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel,application/x-xls,application/x-xlsx" />
62
+					<input class="form-control btn btn-success" title="点击上传Excel文件" type="button" value="上传Excel文件" id="upFileExcel" />
63
+					<span class="excelName"></span>
64
+				</div>
65
+			</div>
66
+			<div class="progress">
67
+				<div class="progress-bar progress-bar-striped" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100">
68
+
69
+				</div>
70
+			</div>
71
+			<div class="form-group text-center">
72
+				<input type="button" id="importNum" class="form-control btn btn-success" value="导入" />
73
+			</div>
74
+		</div>
75
+
76
+		<script>
77
+			var wid = helper.request.queryString("Str");
78
+			var percents = 0;//长传文件进度值
79
+			$(document).ready(function() {
80
+
81
+				//上传EXCEL文件
82
+				$("#upFileExcel").click(function() {
83
+					$("#upFile").trigger("click");
84
+				});
85
+				$("#upFile").change(function() {
86
+					var Files = document.getElementById("upFile").files;
87
+					$('.excelName').html(Files[0].name); //文件名称
88
+				});
89
+				$("#importNum").click(function() {
90
+					//ajaxFileUpload();
91
+					//upload();
92
+					uploads();
93
+				});
94
+
95
+			});
96
+			//上传Excel文件 模拟实时进度
97
+			function uploads() {
98
+				var txtName = $('.excelName').text();
99
+				if(txtName == '') {
100
+					layer.confirm('请先上传文件', {
101
+						icon: 2,
102
+						btn: ['确定']
103
+					});
104
+					return;
105
+				}
106
+				//一般情况下,excel后缀是".xls",在2007以及以后的版本中又增加了".xlsx"。excel的模板文件后缀名是".xlt",启动宏的工作簿后缀名是".xlsm"。
107
+				if(txtName.indexOf('.xls') != -1 ||
108
+					txtName.indexOf('.xlsx') != -1 ||
109
+					txtName.indexOf('.xlt') != -1 ||
110
+					txtName.indexOf('.xlsm') != -1
111
+				) {
112
+					var formData = new FormData();
113
+					var Files = document.getElementById("upFile").files;
114
+					formData.append("upFile", Files[0]);
115
+					formData.append("taskid", wid);
116
+					formData.append("token", $.cookie("token"));
117
+					$.ajax({
118
+						url: huayi.config.callcenter_url + "CallOutPlan/TelInput",
119
+						type: "POST",
120
+						data: formData,
121
+						/**
122
+						 *必须false才会自动加上正确的Content-Type
123
+						 */
124
+						contentType: false,
125
+						/**
126
+						 * 必须false才会避开jQuery对 formdata 的默认处理
127
+						 * XMLHttpRequest会对 formdata 进行正确的处理
128
+						 */
129
+						processData: false,
130
+						xhr: function() {
131
+							var xhr = jQuery.ajaxSettings.xhr();
132
+							xhr.upload.onload = function() {
133
+								updateProgress(88);
134
+							}
135
+							xhr.upload.onprogress = function(ev) {
136
+								updateProgress(70);
137
+							}
138
+							return xhr;
139
+						},
140
+						beforeSend: function(request) {
141
+							$('.progress').show();
142
+							$("#importNum").attr("disabled", true);
143
+							$("#importNum").val('导入中...');
144
+							updateProgress(50);
145
+
146
+						},
147
+						success: function(result) {
148
+							updateProgress(100);
149
+							var r = $.parseJSON(result);
150
+							$("#importNum").attr("disabled", false);
151
+							$("#importNum").val('导入');
152
+							if(r.state.toLowerCase() == "success") {
153
+								var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
154
+								parent.layer.close(index); //再执行关闭
155
+								parent.Right(wid);
156
+								parent.layer.alert(r.message, {
157
+									icon: 1,
158
+									btn: ['确定']
159
+								});
160
+
161
+							}
162
+						},
163
+						error: function(textStatus) {
164
+							percents = 0;
165
+							$('.progress').hide();
166
+							layer.confirm('网络繁忙,请稍后再试...', {
167
+								btn: ['确定'] //按钮
168
+							});
169
+							$("#importNum").attr("disabled", false);
170
+							$("#importNum").val('导入');
171
+						},
172
+						complete: function(XMLHttpRequest, textStatus) {
173
+							percents = 0;
174
+							$('.progress').hide();
175
+							if(textStatus == 'timeout') {
176
+								var xmlhttp = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHttp");
177
+								xmlhttp.abort();
178
+								layer.confirm('网络超时,请稍后再试...', {
179
+									btn: ['确定'] //按钮
180
+								});    
181
+							}
182
+							$("#importNum").attr("disabled", false);
183
+							$("#importNum").val('导入');
184
+						},
185
+					});
186
+
187
+				} else {
188
+					layer.confirm('请上传EXCEL文件', {
189
+						icon: 2,
190
+						btn: ['确定']
191
+					});
192
+					return;
193
+				}
194
+			}
195
+
196
+			//更新进度条
197
+			function updateProgress(p) {
198
+				while(percents < p) {
199
+					percents++;
200
+					$('.progress-bar').css('width', percents + '%');
201
+					$('.progress-bar').text(percents + '%');
202
+				}
203
+
204
+			}
205
+
206
+			//上传Excel文件      (XHR中表示的是文件上传进度;上传完成返回数据还需要时间;)
207
+			function upload() {
208
+				var txtName = $('.excelName').text();
209
+				if(txtName == '') {
210
+					layer.confirm('请先上传文件', {
211
+						icon: 2,
212
+						btn: ['确定']
213
+					});
214
+					return;
215
+				}
216
+				//一般情况下,excel后缀是".xls",在2007以及以后的版本中又增加了".xlsx"。excel的模板文件后缀名是".xlt",启动宏的工作簿后缀名是".xlsm"。
217
+				if(txtName.indexOf('.xls') != -1 ||
218
+					txtName.indexOf('.xlsx') != -1 ||
219
+					txtName.indexOf('.xlt') != -1 ||
220
+					txtName.indexOf('.xlsm') != -1
221
+				) {
222
+					var formData = new FormData();
223
+					var Files = document.getElementById("upFile").files;
224
+					formData.append("upFile", Files[0]);
225
+					formData.append("taskid", wid);
226
+					formData.append("token", $.cookie("token"));
227
+					$.ajax({
228
+						url: huayi.config.callcenter_url + "CallOutPlan/TelInput",
229
+						type: "POST",
230
+						data: formData,
231
+						/**
232
+						 *必须false才会自动加上正确的Content-Type
233
+						 */
234
+						contentType: false,
235
+						/**
236
+						 * 必须false才会避开jQuery对 formdata 的默认处理
237
+						 * XMLHttpRequest会对 formdata 进行正确的处理
238
+						 */
239
+						processData: false,
240
+						xhr: function() { //这是关键  获取原生的xhr对象  做以前做的所有事情  
241
+							var xhr = jQuery.ajaxSettings.xhr();
242
+							xhr.upload.onload = function() {
243
+								//alert('finish downloading')
244
+							}
245
+							xhr.upload.onprogress = function(ev) {
246
+								//console.log(ev);
247
+								//if(ev.lengthComputable) {
248
+								var percent = 100 * ev.loaded / ev.total;
249
+								//console.log(percent, ev);
250
+								$('.progress-bar').css('width', percent + '%');
251
+								$('.progress-bar').text(percent + '%');
252
+								//}
253
+							}
254
+							return xhr;
255
+						},
256
+						beforeSend: function(request) {
257
+							$('.progress').show();
258
+							$("#importNum").attr("disabled", true);
259
+							$("#importNum").val('导入中...');
260
+						},
261
+						success: function(result) {
262
+							$('.progress').hide();
263
+							var r = $.parseJSON(result);
264
+							$("#importNum").attr("disabled", false);
265
+							$("#importNum").val('导入');
266
+							if(r.state.toLowerCase() == "success") {
267
+								var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
268
+								parent.layer.close(index); //再执行关闭
269
+								parent.Right(wid);
270
+								parent.layer.alert(r.message, {
271
+									icon: 1,
272
+									btn: ['确定']
273
+								});
274
+
275
+							}
276
+						},
277
+						error: function(textStatus) {
278
+							$('.progress-bar').css('width', '0%');
279
+							$('.progress-bar').text('0%');
280
+							layer.confirm('网络繁忙,请稍后再试...', {
281
+								btn: ['确定'] //按钮
282
+							});
283
+							$("#importNum").attr("disabled", false);
284
+							$("#importNum").val('导入');
285
+						},
286
+						complete: function(XMLHttpRequest, textStatus) {
287
+							//$('.progress-bar').css('width', '0%');
288
+							//$('.progress-bar').text('0%');
289
+							if(textStatus == 'timeout') {
290
+								var xmlhttp = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHttp");
291
+								xmlhttp.abort();
292
+								layer.confirm('网络超时,请稍后再试...', {
293
+									btn: ['确定'] //按钮
294
+								});    
295
+							}
296
+							$("#importNum").attr("disabled", false);
297
+							$("#importNum").val('导入');
298
+						},
299
+					});
300
+
301
+				} else {
302
+					layer.confirm('请上传EXCEL文件', {
303
+						icon: 2,
304
+						btn: ['确定']
305
+					});
306
+					return;
307
+				}
308
+			}
309
+
310
+			/*function ajaxFileUpload() {
311
+				var txtName = $('.excelName').text();
312
+				if(txtName == '') {
313
+					layer.confirm('请先上传文件', {
314
+						icon: 2,
315
+						btn: ['确定']
316
+					});
317
+					return;
318
+				}
319
+				//一般情况下,excel后缀是".xls",在2007以及以后的版本中又增加了".xlsx"。excel的模板文件后缀名是".xlt",启动宏的工作簿后缀名是".xlsm"。
320
+				if(txtName.indexOf('.xls') != -1 ||
321
+					txtName.indexOf('.xlsx') != -1 ||
322
+					txtName.indexOf('.xlt') != -1 ||
323
+					txtName.indexOf('.xlsm') != -1
324
+				) {
325
+
326
+					$.ajaxFileUpload({
327
+						url: huayi.config.callcenter_url + 'CallOutPlan/TelInput', //用于文件上传的服务器端请求地址
328
+						secureuri: false, //是否需要安全协议,一般设置为false
329
+						fileElementId: $("#upFile").attr("id"), //'upFile', //文件上传域的ID
330
+						contentType: 'application/javascript; charset=utf-8',
331
+						dataType: 'json', //返回值类型 一般设置为json
332
+						data: {
333
+							taskid: wid,
334
+							token: $.cookie("token")
335
+						},
336
+						success: function(data, status, e) { //服务器成功响应处理函数
337
+
338
+							var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
339
+							parent.layer.close(index); //再执行关闭
340
+							parent.Right(wid);
341
+							parent.layer.msg("导入成功");
342
+
343
+						},
344
+						error: function(data, status, e) { //服务器响应失败处理函数
345
+							//console.log(e);
346
+						}
347
+
348
+					})
349
+					return false;
350
+
351
+				} else {
352
+					layer.confirm('请上传EXCEL文件', {
353
+						icon: 2,
354
+						btn: ['确定']
355
+					});
356
+					return;
357
+				}
358
+
359
+			}
360
+*/
361
+		</script>
362
+	</body>
363
+
364
+</html>

+ 467 - 0
CallCenterWeb.UI/OutboundMessage/LookMessage.html

@@ -0,0 +1,467 @@
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/Table/table1.css" rel="stylesheet" />
11
+		<link href="../css/init.css" rel="stylesheet" />
12
+		<link rel="stylesheet" type="text/css" href="../css/lookMsg.css" />
13
+	</head>
14
+	<body class="gray-bg">
15
+		<div class="wrapper clearfix">
16
+			<div class="content_1 clearfix">
17
+				<div class="shark_content_title clearfix">
18
+					<span>电话信息</span>
19
+				</div>
20
+				<div class="clearfix Phone_Text clearfix">
21
+					<ul class="clearfix form-inline">
22
+						<li>
23
+							<label for="Name_">姓名:</label>
24
+							<input type="text" id="Name_" class="form-control" />
25
+						</li>
26
+						<li>
27
+							<label for="Phone_">电话号码:</label>
28
+							<a class="CallOut" id="CallOut"><span id="Phone_"></span><img src="../img/Phones.png" alt="" /></a>
29
+						</li>
30
+						<!--<li>
31
+							<label for="callNum">固定号码:</label>
32
+							<input type="text" id="callNum" class="form-control" />
33
+						</li>
34
+						<li>
35
+							<label for="country">乡镇:</label>
36
+							<select id="country" class="form-control">
37
+								<option value="0">请选择乡镇</option>
38
+							</select>
39
+						</li>-->
40
+						<li>
41
+							<label for="address">地址:</label>
42
+							<input type="text" id="address" class="form-control" />
43
+						</li>
44
+					</ul>
45
+				</div>
46
+			</div>
47
+			
48
+			<div class="content_3 clearfix " style="display: none;">
49
+				<div class="shark_content_title clearfix">
50
+					<span>用户反馈</span>
51
+				</div>
52
+				<div>
53
+					<ul class="clearfix" id="Tg">
54
+
55
+					</ul>
56
+				</div>
57
+			</div>
58
+			<div class="content_4  clearfix " style="display: none;">
59
+				<div class="shark_content_title clearfix">
60
+					<span>问卷信息</span>
61
+
62
+				</div>
63
+				<div>
64
+					<ul style="padding-left: 0;" class="title_ul">
65
+						<li>
66
+							<label for="">问卷名称</label><span class="Title"></span>
67
+						</li>
68
+						<li>
69
+							<label for="startText">问卷开场语</label><span id="startText" class="F_Remark"></span>
70
+						</li>
71
+						<li>
72
+							<label for="F_Remark">问卷说明</label><span id="F_Remark" class="F_Remark"></span>
73
+						</li>
74
+					</ul>
75
+					<ul class="Qus_box">
76
+
77
+					</ul>
78
+					<ul style="padding-left: 0;" class="title_ul">
79
+						<li>
80
+							<label for="">问卷结束语</label><span id="endText" class="F_Remark"></span>
81
+						</li>
82
+					</ul>
83
+				</div>
84
+			</div>
85
+			
86
+			<div class="content_2  clearfix ">
87
+				<div class="shark_content_title clearfix">
88
+					<span>呼叫结果</span>
89
+				</div>
90
+				<div>
91
+					<ul class="clearfix" id="Tgetruset">
92
+
93
+					</ul>
94
+				</div>
95
+			</div>
96
+			<div class="content_5 clearfix" style="text-align: center;">
97
+				<div>
98
+					<button class="Ce btns">提交</button>
99
+					<input type="hidden" id="F_CusID" />
100
+					<input type="hidden" id="F_Id" />
101
+					<input type="hidden" id="F_TaskId" />
102
+					<input type="hidden" id="TelCode" value="" />
103
+				</div>
104
+			</div>
105
+			
106
+		</div>
107
+		<script src="../js/guid.js"></script>
108
+		<script src="../js/autosize/autosize.js"></script>
109
+		<script>
110
+			var wid = helper.request.queryString("Str");
111
+			var ans = [];
112
+			var type;
113
+			var star_number = [];
114
+			var id;
115
+			var content;
116
+			var str;
117
+			var strs;
118
+			//console.log(wid);
119
+			$(document).ready(function() {
120
+				if(wid != null && wid != undefined && wid != "") {
121
+					//获取乡镇下拉
122
+					//getCountry();
123
+					XQ();
124
+					GetHJJG(); //获取呼叫结果
125
+					//GetYHFK();//获取用户反馈
126
+				}
127
+
128
+				//点击电话号码外呼
129
+				$(".CallOut").click(function(event) {
130
+					if($("#Phone_").text()) {
131
+						calloutopt($("#Phone_").text());
132
+					}
133
+				});
134
+			});
135
+			//获取乡镇下拉
136
+			function getCountry() {
137
+				$.ajax({
138
+					type: "get",
139
+					url: huayi.config.callcenter_url + "Dictionary/GetDicValueListByFlag",
140
+					dataType: 'json',
141
+					data: {
142
+						flag: 'JBDW',
143
+						token: $.cookie("token")
144
+					},
145
+					async: true,
146
+					success: function(data) {
147
+						var res = data.data;
148
+						for(var i = 0; i < res.length; i++) {
149
+							$('<option value="' + res[i].F_DictionaryValueId + '">' + res[i].F_Name + '</option>').appendTo($("#country"));
150
+						}
151
+					}
152
+				});
153
+			}
154
+			//外呼
155
+			function calloutopt(telphone) {
156
+				event.stopPropagation();
157
+				if(telphone) {
158
+					$.ajax({
159
+						type: "get",
160
+						url: huayi.config.callcenter_url + "CallOutOpt/GetCallOutprefix",
161
+						async: true,
162
+						dataType: 'json',
163
+						data: {
164
+							token: $.cookie("token"),
165
+							phone: telphone
166
+						},
167
+						success: function(result) {
168
+							if(result.state.toLowerCase() == "success") {
169
+								//debugger
170
+								var guid = uuid();
171
+								$("#TelCode").val(guid);
172
+								top.obj.Type = "MakeCall";
173
+								top.obj.DestinationNumber = result.data.phone;
174
+								top.obj.Header = result.data.fix;
175
+								top.obj.TaskType = "1"; //0:拨号外呼;1:问卷外呼;
176
+								top.obj.TaskPhoneID = $("#F_Id").val(); //回访的电话ID
177
+								//top.obj.TaskID = guid; //回访记录编号
178
+								top.obj.TaskID = $("#F_TaskId").val()
179
+								top.Send();
180
+							}
181
+
182
+						}
183
+					});
184
+				}
185
+			}
186
+			//详情查看
187
+			function XQ() {
188
+				$.ajax({
189
+					type: "get",
190
+					url: huayi.config.callcenter_url + "CallOutPlan/GetTaskTelModel",
191
+					dataType: 'json',
192
+					data: {
193
+						id: wid,
194
+						token: $.cookie("token")
195
+					},
196
+					async: true,
197
+					success: function(data) {
198
+						var Count = data.data;
199
+						if(Count) {
200
+							if(Count.taskModel) {
201
+								//console.log(Count.taskModel);
202
+								$("#Name_").val(Count.taskModel.F_CusName);
203
+								$("#Phone_").text(Count.taskModel.F_Phone);
204
+								$("#F_CusID").val(Count.taskModel.F_CusID);
205
+								$("#F_Id").val(Count.taskModel.F_Id);
206
+								$("#F_TaskId").val(Count.taskModel.F_TaskId);
207
+								var pid = Count.paperid;
208
+								if(pid) {
209
+									WJ(pid);
210
+								}
211
+							}
212
+						}
213
+
214
+					}
215
+				});
216
+			}
217
+
218
+			//获取呼叫结果
219
+			function GetHJJG() {
220
+				$.ajax({
221
+					type: "get",
222
+					url: huayi.config.callcenter_url + "Dictionary/GetDicValueListByFlag",
223
+					dataType: 'json',
224
+					data: {
225
+						flag: 'HJJG',
226
+						token: $.cookie("token")
227
+					},
228
+					async: true,
229
+					success: function(data) {
230
+						var Count = data.data;
231
+						for(var i = 0; i < Count.length; i++) {
232
+							//$("<li><label for=''><input type='radio' name='check' value='" + Count[i].F_DictionaryValueId + "' /></label>" + Count[i].F_Name + "</li>").
233
+
234
+							var listItem = '<li>' +
235
+								'<input id="listR_' + i + '" type="radio" name="check" value="' + Count[i].F_DictionaryValueId + '" />' +
236
+								'<label for="listR_' + i + '">' + Count[i].F_Name + '</label>' +
237
+								'</li>';
238
+
239
+							$(listItem).appendTo($("#Tgetruset"));
240
+
241
+						}
242
+					}
243
+				});
244
+			}
245
+			//提交
246
+			$(".Ce").click(function() {
247
+				$(".radio").each(function(j, k) {
248
+					str = '';
249
+					var nameRadio = $(k).attr("name");
250
+					var index = $(k).attr("indexs");
251
+					var val = $('input[name="' + nameRadio + '"]:checked').val();
252
+					var valText = $('input[name="' + nameRadio + '"]:checked').next().text();
253
+					if(val != null) {
254
+						str = index + '_' + val + '_' + valText;
255
+						ans.push(str);
256
+					}
257
+				})
258
+				$(".checkbox").each(function(j, k) {
259
+					strs = '';
260
+					var nameCheckbox = $(k).attr("name");
261
+					var index = $(k).attr("indexs");
262
+					var check = "";
263
+					var text = "";
264
+					//var val=$('input[name="'+ name+'"]:checked').val();
265
+					var VAl = $('input[name="' + nameCheckbox + '"]:checked');
266
+					$(VAl).each(function(i, n) {
267
+						text += $(this).next().text() + "|";
268
+						check += $(this).val() + "|";
269
+					})
270
+					if(check != "") {
271
+						str = index + '_' + check + '_' + text;
272
+						ans.push(str);
273
+					}
274
+				})
275
+				$(".Wd").each(function(j, k) {
276
+					strs = '';
277
+					//debugger;
278
+					var nameWd = $(k).attr("name");
279
+					var index = $(k).attr("indexs");
280
+					var val = $(k).find(".Wds").val();
281
+					if(val) {
282
+						str = index + '_0_' + val;
283
+						ans.push(str);
284
+					}
285
+				})
286
+				if($('input[name="check"]:checked').val() == undefined) {
287
+					layer.confirm('呼叫结果必须选择!', {
288
+						icon: 2,
289
+						btn: ['确定']
290
+					});
291
+				} else {
292
+					//请求
293
+					$.ajax({
294
+						type: "POST",
295
+						url: huayi.config.callcenter_url + "CallOutPlan/Answers",
296
+						dataType: 'json',
297
+						data: {
298
+							taskid: $("#F_TaskId").val(), //任务ID
299
+							custelid: $("#F_Id").val(), //客户电话ID
300
+							cusid: $("#F_CusID").val(), //客户档案ID
301
+							ans: ans, //答案,数组形式["15_20_单选选项内容","17_25|36|58_复选选项内容1|选项内容2|选项内容3","30_0_问答题"]
302
+							hjjgid: $('input[name="check"]:checked').val(), //呼叫结果ID
303
+							//yhfkid: $('input[name="checks"]:checked').val(), //用户反馈ID
304
+							yhfkid: 0, //用户反馈ID
305
+							telphone: $('#Phone_').text(), //电话号码, 
306
+							name: $('#Name_').val(), //姓名, 
307
+							//phone: $('#callNum').val(), //固定号码, 
308
+							//countryid: $('#country').val(), //乡镇id, 
309
+							phone: '', //固定号码, 
310
+							countryid: 0, //乡镇id, 
311
+							address: $('#address').val(), //地址
312
+							token: $.cookie("token")
313
+						},
314
+						async: true,
315
+						success: function(data) {
316
+							var Count = data.data;
317
+							var index1 = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
318
+							parent.layer.close(index1); //再执行关闭
319
+							parent.initTable();
320
+							parent.layer.msg('提交成功');
321
+						},
322
+					});
323
+				}
324
+
325
+			})
326
+
327
+//          $(".Qus_box").on('change','input',function(){
328
+//          	var names=$(this).attr('name');
329
+// 				if($('input[name="'+ names +'"]:checked').val()){
330
+// 					$(this).attr("ischecked",1);
331
+// 				}
332
+// 				else
333
+// 				{
334
+// 					$(this).attr("ischecked",0);
335
+// 				}
336
+// 			})
337
+			$(".Qus_box").on('click','input[type=radio]',function(){
338
+				var names=$(this).attr('name');
339
+   				if($(this).attr("ischecked")){
340
+   					if($(this).attr("ischecked")=='1'){
341
+   						$(this).prop('checked',false);
342
+   						$(this).attr("ischecked",0);
343
+   					}else{
344
+						$(this).prop('checked',true);
345
+						$(this).attr("ischecked",1);
346
+						$(this).parent().parent().siblings().find('input').attr("ischecked",0);
347
+   					}
348
+   				}
349
+   				else
350
+   				{
351
+   					$(this).attr("ischecked",1);
352
+   					$(this).parent().parent().siblings().find('input').attr("ischecked",0);
353
+   				}
354
+   			})
355
+
356
+			
357
+			function WJ(pid) {
358
+				$(".tbody").empty();
359
+				$.ajax({
360
+					type: "get",
361
+					url: huayi.config.callcenter_url + "/Questionnaire/GetPagerInfoQ",
362
+					async: true,
363
+					dataType: "json",
364
+					data: {
365
+						pid: pid,
366
+						token: $.cookie("token"),
367
+
368
+					},
369
+					success: function(data) {
370
+						if(data.state.toLowerCase() == 'success') {
371
+							$('.Title').text(data.data.F_Title);
372
+							$("#F_Remark").text(data.data.F_Remark);
373
+							$("#startText").text(data.data.F_StartText);
374
+							$("#endText").text(data.data.F_EndText);
375
+							var Questions = data.data.F_Questions;
376
+							var html = '';
377
+							for(var i = 0; i < Questions.length; i++) {
378
+								var questype = Questions[i].questype;
379
+								var Quesid = Questions[i].quesid;
380
+								var quesremark = Questions[i].quesremark; //试题说明
381
+								if(quesremark) {
382
+									quesremark = ' 【' + quesremark + '】';
383
+								} else {
384
+									quesremark = "";
385
+								}
386
+								html += '<li class="" name="ltype' + Quesid + '" >';
387
+								html += '<div class="Back ">';
388
+								html += '<h3 class="size-14 QuesTitle"  indexs="' + Questions[i].quesid + '">' + Questions[i].questitle + quesremark + ' </h3>';
389
+								html += '</div>';
390
+								//判断类型
391
+								if(questype == 2) {
392
+									//选项
393
+									if(Questions[i].quesitems.length > 0) { //单选
394
+										html += '<div class="radio clearfix" name="ltype' + Quesid + '" indexs="' + Questions[i].quesid + '">';
395
+										var quesitems = Questions[i].quesitems;
396
+										html += '<ul class="Ul">'
397
+										for(var j = 0; j < quesitems.length; j++) {
398
+											html += '<li>'
399
+											html += '<label style="font-weight: normal;">'
400
+											html += '' + (j + 1) + '.';
401
+											html += '<input type="radio" index_="' + quesitems[j].itemid + '" value="' + quesitems[j].itemid + '" name="ltype' + Quesid + '"  style="margin:0 5px;"><span>' + quesitems[j].itemname + '</span></label>'
402
+											html += '</li>'
403
+										}
404
+										html += '</ul>'
405
+										html += '</div>'
406
+										html += '</li>'
407
+									}
408
+								} else if(questype == 1) {
409
+									//问答题
410
+									html += '<div class="Wd" indexs="' + Questions[i].quesid + '">';
411
+									html += '<textarea class="Wds" index="' + Questions[i].quesid + '"name="" rows="" cols="" style="width: 100%;"></textarea>'
412
+									html += '</div>'
413
+
414
+								} else {
415
+									if(Questions[i].quesitems.length > 0) { //多选
416
+
417
+										html += '<div class="checkbox clearfix" name="ltype' + Quesid + '" indexs="' + Questions[i].quesid + '">';
418
+										html += '<ul class="Ul">'
419
+										var quesitems = Questions[i].quesitems;
420
+										for(var j = 0; j < quesitems.length; j++) {
421
+											html += '<li>'
422
+											html += '<label style="font-weight: normal;">'
423
+											html += '' + (j + 1) + '.';
424
+											html += '<input type="checkbox" index_="' + quesitems[j].itemid + '"  value="' + quesitems[j].itemid + '" name="ltype' + Quesid + '" ><span> ' + quesitems[j].itemname + '</span></label>'
425
+											//html += '<input type="checkbox" index_="' + quesitems[j].itemid + '"  value="' + quesitems[j].itemid + '" name="ltype' + Quesid + '" > ' + quesitems[j].itemname + '</label>'
426
+											html += '</li>'
427
+										}
428
+										html += '</ul>';
429
+										html += '</div>'
430
+										html += '</li >';
431
+									}
432
+								}
433
+
434
+							}
435
+							$(html).appendTo(".Qus_box");
436
+							autosize($('textarea'));
437
+//							$(".i-checks").iCheck({checkboxClass:"icheckbox_square-green",radioClass:"iradio_square-green",})
438
+						}
439
+					}
440
+				});
441
+			}
442
+			//用户反馈
443
+			function GetYHFK() {
444
+				$.ajax({
445
+					type: "get",
446
+					url: huayi.config.callcenter_url + "Dictionary/GetDicValueListByFlag",
447
+					dataType: 'json',
448
+					data: {
449
+						flag: 'YHFK',
450
+						token: $.cookie("token")
451
+					},
452
+					async: true,
453
+					success: function(data) {
454
+						var Count = data.data;
455
+						$("<option value=''>--全部--</option>").appendTo($("#selhjjg"));
456
+						for(var i = 0; i < Count.length; i++) {
457
+							$("<li><label for=''><input type='radio' name='checks' value='" + Count[i].F_DictionaryValueId + "' /></label>" + Count[i].F_Name + "</li>").
458
+							appendTo($("#Tg"));
459
+						}
460
+					}
461
+				});
462
+			}
463
+		</script>
464
+
465
+	</body>
466
+
467
+</html>

+ 281 - 0
CallCenterWeb.UI/OutboundMessage/LookMessages.html

@@ -0,0 +1,281 @@
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/Table/table1.css" rel="stylesheet" />
11
+		<link href="../css/init.css" rel="stylesheet" />
12
+		<link rel="stylesheet" type="text/css" href="../css/lookMsg.css" />
13
+		<link href="../css/plugins/iCheck/custom.css" rel="stylesheet">
14
+		<style>
15
+			.icheckbox_square-green,.iradio_square-green{
16
+				margin-left: 8px;
17
+			}
18
+		</style>
19
+	</head>
20
+
21
+	<body class="gray-bg">
22
+	<!--<body>-->
23
+		<div class="wrapper clearfix lookMsgs">
24
+			<div class="content_1 clearfix">
25
+				<div class="shark_content_title clearfix">
26
+					<span>电话信息</span>
27
+				</div>
28
+				<div class="Phone_Text">
29
+					<ul class="clearfix form-inline">
30
+						<li>
31
+							<label for="Name_">姓名:</label>
32
+							<span id="Name_"></span>
33
+						</li>
34
+						<li>
35
+							<label for="Phone_">电话号码:</label>
36
+							<a class="CallOut" id="CallOut"><span id="Phone_"></span><img src="../img/Phones.png" alt="" /></a>
37
+						</li>
38
+						<!--<li>
39
+							<label for="callNum">固定号码:</label>
40
+							<span id="callNum"></span>
41
+						</li>
42
+						<li>
43
+							<label for="country">乡镇:</label>
44
+							<span id="country"></span>
45
+						</li>-->
46
+						<li>
47
+							<label for="address">地址:</label>
48
+							<span id="address"></span>
49
+						</li>
50
+					</ul>
51
+				</div>
52
+			</div>
53
+			
54
+			<div class="content_3 clearfix " style="display: none;">
55
+				<div class="shark_content_title clearfix">
56
+					<span>用户反馈</span>
57
+
58
+				</div>
59
+				<div>
60
+					<ul class="clearfix" id="Tg">
61
+
62
+					</ul>
63
+				</div>
64
+			</div>
65
+			<div class="content_4  clearfix " style="display: none;">
66
+				<div class="shark_content_title clearfix">
67
+					<span>问卷信息</span>
68
+
69
+				</div>
70
+				<div>
71
+					<ul style="padding-left: 0;" class="title_ul">
72
+						<li>
73
+							<label for="">问卷名称</label><span class="Title"></span>
74
+						</li>
75
+						<li>
76
+							<label for="startText">问卷开场语</label><span id="startText" class="F_Remark"></span>
77
+						</li>
78
+						<li>
79
+							<label for="F_Remark">问卷说明</label><span id="F_Remark" class="F_Remark"></span>
80
+						</li>
81
+					</ul>
82
+					<ul class="Qus_box ">
83
+
84
+					</ul>
85
+					<ul style="padding-left: 0;" class="title_ul">
86
+						<li>
87
+							<label for="">问卷结束语</label><span id="endText" class="F_Remark"></span>
88
+						</li>
89
+					</ul>
90
+				</div>
91
+			</div>
92
+		
93
+			<div class="content_2  clearfix ">
94
+				<div class="shark_content_title clearfix">
95
+					<span>呼叫结果</span>
96
+
97
+				</div>
98
+				<div>
99
+					<ul class="clearfix" id="Tgetruset">
100
+
101
+					</ul>
102
+				</div>
103
+			</div>
104
+		</div>
105
+		<script src="../js/autosize/autosize.js"></script>
106
+			<script src="../js/plugins/iCheck/icheck.min.js"></script>
107
+		<script>
108
+			var wid = helper.request.queryString("Str");
109
+			$(document).ready(function() {
110
+				XQ(wid);
111
+				GetHJJG();
112
+				//GetYHFK();
113
+
114
+			})
115
+
116
+			//详情查看
117
+			function XQ(wid) {
118
+				$.ajax({
119
+					type: "get",
120
+					url: huayi.config.callcenter_url + "CallOutPlan/GetTaskTelInfo",
121
+					dataType: 'json',
122
+					data: {
123
+						id: wid,
124
+						token: $.cookie("token")
125
+					},
126
+					async: true,
127
+					success: function(data) {
128
+						if(data.state.toLowerCase()=='success'){
129
+							
130
+						
131
+						var Count = data.data;
132
+						$("#Name_").text(Count.taskModel.F_CusName);
133
+						$("#Phone_").text(Count.taskModel.F_Telephone);
134
+						//$('#callNum').text(Count.taskModel.F_Phone); //固定号码, 
135
+						//$('#country').text(Count.taskModel.F_City); //乡镇 
136
+						$('#address').text(Count.taskModel.F_Address); //地址
137
+
138
+						$(' input[name="check"][value="' + Count.taskModel.F_HJJGId + '"]').prop("checked", "checked");
139
+						$(' input[name="checks"][value="' + Count.taskModel.F_YHFKId + '"]').prop("checked", "checked");
140
+						$('.Title').text(Count.paperModel.F_Title);
141
+						$("#F_Remark").text(Count.paperModel.F_Remark);
142
+						$("#startText").text(Count.paperModel.F_StartText);
143
+						$("#endText").text(Count.paperModel.F_EndText);
144
+
145
+						//循环填表
146
+						var html = '';
147
+						var Questions = Count.paperModel.F_Questions;
148
+
149
+						for(var i = 0; i < Questions.length; i++) {
150
+							var questype = Questions[i].questype;
151
+							var quesanswers = Questions[i].quesanswers;
152
+							var Quesid = Questions[i].quesid;
153
+							var quesremark = Questions[i].quesremark; //试题说明
154
+							if(quesremark) {
155
+								quesremark = ' 【' + quesremark + '】';
156
+							} else {
157
+								quesremark = "";
158
+							}
159
+							html += '<li class="" name="ltype' + Quesid + '" >';
160
+							html += '<div class="Back">';
161
+							html += '<h3 class="size-14 QuesTitle"  indexs="' + Questions[i].quesid + '">' + Questions[i].questitle + quesremark + ' </h3>';
162
+							html += '</div>';
163
+							//判断类型
164
+							if(questype == 2) {
165
+								//选项
166
+								if(Questions[i].quesitems.length > 0) { //单选
167
+									html += '<div class="radio clearfix" name="ltype' + Quesid + '" indexs="' + Questions[i].quesid + '">';
168
+									var quesitems = Questions[i].quesitems;
169
+									html += '<ul class="Ul">'
170
+									for(var j = 0; j < quesitems.length; j++) {
171
+										html += '<li><div class="radio i-checks">'
172
+										html += '<label style="font-weight: normal;">'
173
+										html += '' + (j + 1) + '.';
174
+										var chk = '';
175
+										if(quesanswers == quesitems[j].itemid) {
176
+											chk = 'checked="checked"';
177
+											//html += '<input type="radio" checked="checked" index_="' + quesitems[j].itemid + '" value="' + quesitems[j].itemid + '" name="ltype' + Quesid + '"  style="margin-left:5px;"> <span>' + quesitems[j].itemname + '</span></label>'
178
+										}
179
+										html += '<input disabled type="radio" ' + chk + ' index_="' + quesitems[j].itemid + '" value="' + quesitems[j].itemid + '" name="ltype' + Quesid + '"  style="margin-left:5px;"> <span>' + quesitems[j].itemname + '</span></label>'
180
+										html += '</div></li>'
181
+
182
+									}
183
+									html += '</ul>'
184
+									html += '</div>'
185
+									html += '</li>'
186
+								}
187
+							} else if(questype == 1) {
188
+								html += '<div class="Wd" indexs="' + Questions[i].quesid + '">';
189
+								html += '<p class="Wds" "index="' + Questions[i].quesid + '" style="width: 100%;">' + quesanswers + '</p>'
190
+								html += '</div>'
191
+
192
+							} else {
193
+								if(Questions[i].quesitems.length > 0) { //多选
194
+
195
+									html += '<div class="checkbox clearfix" name="ltype' + Quesid + '" indexs="' + Questions[i].quesid + '">';
196
+									var quesitems = Questions[i].quesitems;
197
+									html += '<ul class="Ul">'
198
+									for(var j = 0; j < quesitems.length; j++) {
199
+										html += '<li> <div class="checkbox i-checks">'
200
+										html += '<label style="font-weight: normal;">'
201
+										html += '' + (j + 1) + '.';
202
+										var arr = quesanswers.split('|');
203
+										var chk = '';
204
+										for(var k = 0; k < arr.length; k++) {
205
+											chk = '';
206
+											if(arr[k] == quesitems[j].itemid) {
207
+												chk = 'checked="checked"';
208
+												break;
209
+											}
210
+										}
211
+										html += '<input disabled type="checkbox" ' + chk + ' index_="' + quesitems[j].itemid + '"  value="' + quesitems[j].itemid + '" name="ltype' + Quesid + '" ><span> ' + quesitems[j].itemname + '</span></label>'
212
+										//html += '<input type="checkbox" index_="' + quesitems[j].itemid + '"  value="' + quesitems[j].itemid + '" name="ltype' + Quesid + '" > ' + quesitems[j].itemname + '</label>'
213
+										html += '</div></li>'
214
+									}
215
+									html += '</ul>'
216
+									html += '</div>'
217
+
218
+									html += '</li >';
219
+								}
220
+							}
221
+
222
+						}
223
+						$(html).appendTo(".Qus_box");
224
+						autosize($('textarea'));
225
+						$(".i-checks").iCheck({checkboxClass:"icheckbox_square-green",radioClass:"iradio_square-green",})
226
+						}
227
+						}
228
+				});
229
+			}
230
+			//获取呼叫结果
231
+			function GetHJJG() {
232
+				$.ajax({
233
+					type: "get",
234
+					url: huayi.config.callcenter_url + "Dictionary/GetDicValueListByFlag",
235
+					dataType: 'json',
236
+					data: {
237
+						flag: 'HJJG',
238
+						token: $.cookie("token")
239
+					},
240
+					async: true,
241
+					success: function(data) {
242
+						var Count = data.data;
243
+						for(var i = 0; i < Count.length; i++) {
244
+							var listItem = '<li><div class="radio i-checks">' +
245
+								'<input disabled id="listR_' + i + '" type="radio" name="check" value="' + Count[i].F_DictionaryValueId + '" />' +
246
+								'<label for="listR_' + i + '">' + Count[i].F_Name + '</label>' +
247
+								'</div></li>';
248
+
249
+							$(listItem).appendTo($("#Tgetruset"));
250
+						}
251
+
252
+					}
253
+				});
254
+			}
255
+
256
+			//用户反馈
257
+			function GetYHFK() {
258
+				$.ajax({
259
+					type: "get",
260
+					url: huayi.config.callcenter_url + "Dictionary/GetDicValueListByFlag",
261
+					dataType: 'json',
262
+					data: {
263
+						flag: 'YHFK',
264
+						token: $.cookie("token")
265
+					},
266
+					async: true,
267
+					success: function(data) {
268
+						var Count = data.data;
269
+						$("<option value=''>--全部--</option>").appendTo($("#selhjjg"));
270
+						for(var i = 0; i < Count.length; i++) {
271
+							$("<li><label for=''><input disabled type='radio' name='checks' value='" + Count[i].F_DictionaryValueId + "' /></label>" + Count[i].F_Name + "</li>").
272
+							appendTo($("#Tg"));
273
+						}
274
+					}
275
+				});
276
+			}
277
+		</script>
278
+
279
+	</body>
280
+
281
+</html>

+ 134 - 0
CallCenterWeb.UI/OutboundMessage/MyTask.html

@@ -0,0 +1,134 @@
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/Table/table1.css" rel="stylesheet" />
11
+		<link href="../css/init.css" rel="stylesheet" />
12
+		<style>
13
+			table td {
14
+				word-break: break-all;
15
+				word-wrap: break-word;
16
+			}
17
+			
18
+			table th {
19
+				min-width: 120px;
20
+			}
21
+		</style>
22
+	</head>
23
+
24
+	<body class="gray-bg">
25
+		<div class="wrapper wrapper-content animated fadeInRight">
26
+			<div class="daoHang clearfix">
27
+				<div class="dhLeft">
28
+					<sapn><i class="syIcon"></i>位置:
29
+						<a href="javaScript:;" id="ReIndex">首页</a>&gt;
30
+						<a href="javaScript:;">外呼管理</a>&gt;
31
+						<a href="" style="color: #000;">我的任务</a>
32
+					</sapn>
33
+				</div>
34
+			</div>
35
+			<div class="th-box">
36
+				<div class="th-bar clearfix">
37
+
38
+					<div class="seach-box ">
39
+						<ul>
40
+							<li>关键字:<input class="photo x-color" type="text" id="key" placeholder="请输入电话号码" /></li>
41
+							<li>
42
+								<a class="sc_btn  Block" id="sc_btns">搜索</a>
43
+							</li>
44
+						</ul>
45
+					</div>
46
+				</div>
47
+			</div>
48
+			<div style="width: 100%;padding: 10px;">
49
+				<table id="list" data-click-to-select="true" 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_Phone" data-align="center" data-formatter="Code">号码</th>
54
+							<th data-field="F_CusName" data-align="center">姓名</th>
55
+							<th data-field="ExpandVchField12" data-align="center">地址</th>
56
+							<th data-field="F_UserName" data-align="center">分配坐席</th>
57
+							<th data-field="F_HJJGName" data-align="center">呼叫结果</th>
58
+						</tr>
59
+					</thead>
60
+					<tbody id="tbody"></tbody>
61
+				</table>
62
+			</div>
63
+		</div>
64
+		<script>
65
+			$(document).ready(function() {
66
+				initTable();
67
+				/*搜索*/
68
+				$("#sc_btns").click(function() {
69
+					initTable();
70
+				})
71
+			})
72
+
73
+			function initTable() {
74
+				//先销毁表格
75
+				$('#list').bootstrapTable('destroy');
76
+				//初始化表格,动态从服务器加载数据
77
+				$("#list").bootstrapTable({
78
+					method: "get", //使用get请求到服务器获取数据
79
+					url: huayi.config.callcenter_url + "CallOutPlan/GetMyTaskList", //获取数据的Servlet地址
80
+					contentType: 'application/x-www-form-urlencoded',
81
+					striped: true, //表格显示条纹
82
+					pagination: true, //启动分页
83
+					pageSize: 10, //每页显示的记录数
84
+					pageNumber: 1, //当前第几页
85
+					pageList: [10, 20, 50, 100], //记录数可选列表
86
+					search: false, //是否启用查询
87
+					showColumns: false, //显示下拉框勾选要显示的列
88
+					showRefresh: false, //显示刷新按钮
89
+					sidePagination: "server", //表示服务端请求
90
+					//设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
91
+					//设置为limit可以获取limit, offset, search, sort, order
92
+					queryParamsType: "undefined",
93
+					queryParams: function queryParams(params) { //设置查询参数
94
+						var param = {
95
+							pageindex: params.pageNumber,
96
+							pagesize: params.pageSize,
97
+							key: $("#key").val(),
98
+							token: $.cookie("token")
99
+						};
100
+						return param;
101
+					},
102
+					onLoadSuccess: function() { //加载成功时执行
103
+						//layer.msg("加载成功");
104
+					},
105
+					onLoadError: function() { //加载失败时执行
106
+						//layer.msg("加载数据失败", { time: 1500, icon: 2 });
107
+					}
108
+				});
109
+			}
110
+
111
+			///操作
112
+
113
+			function Code(val, row) {
114
+				return '<div><a onclick="XX(' + row.F_Id + ')">' + row.F_Phone + '</a></div>'
115
+
116
+			}
117
+			//详情
118
+			function XX(str) {
119
+				layer.open({
120
+					type: 2,
121
+					//shade: 0,
122
+					content: "../OutboundMessage/LookMessage.html?Str=" + str, //iframe的url,no代表不显示滚动条
123
+					title: '任务信息',
124
+					maxmin: true, //开启最大化最小化按钮
125
+					id: 'LAY_layuipro2', //防止重复弹出
126
+					area: ['86%', '88%'], //宽高
127
+				});
128
+			}
129
+			//
130
+		</script>
131
+
132
+	</body>
133
+
134
+</html>

+ 223 - 0
CallCenterWeb.UI/OutboundMessage/MyTaskResult.html

@@ -0,0 +1,223 @@
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/Table/table1.css" rel="stylesheet" />
11
+		<link href="../css/init.css" rel="stylesheet" />
12
+		<style>
13
+			table#list td {
14
+				word-break: break-all;
15
+				word-wrap: break-word;
16
+			}
17
+			
18
+			table#list th {
19
+				min-width: 120px;
20
+			}
21
+		</style>
22
+	</head>
23
+
24
+	<body class="gray-bg">
25
+		<div class="wrapper wrapper-content animated fadeInRight">
26
+			<div class="daoHang clearfix">
27
+				<div class="dhLeft">
28
+					<sapn><i class="syIcon"></i>位置:
29
+						<a id="ReIndex">首页</a>&gt;
30
+						<a href="javaScript:;">外呼管理</a>&gt;
31
+						<a href="" style="color: #000;">我的任务结果</a>
32
+					</sapn>
33
+				</div>
34
+			</div>
35
+			<div class="th-box">
36
+				<div class="th-bar">
37
+					<div class="seach-box ">
38
+						<ul>
39
+							<li>关键字:<input class="photo x-color" type="text" id="key" placeholder="请输入电话号码" /></li>
40
+							<li>呼叫结果:
41
+								<select name="" class="photo" id="hjjgid"></select>
42
+							</li>
43
+							<li>
44
+								时间:
45
+								<input type="text" id="chooseTime" class="photo size-14 laydate-icon" placeholder="请选择开始时间和结束时间" />
46
+							</li>
47
+							<!--<li>用户反馈:
48
+                        <select name="" class="photo" id="yhfkid"></select>
49
+                        </li>-->
50
+							<li>
51
+								<a class="sc_btn  Block" id="sc_btns">搜索</a>
52
+							</li>
53
+						</ul>
54
+					</div>
55
+				</div>
56
+			</div>
57
+			<div style="width: 100%;padding: 10px;">
58
+				<table id="list" data-click-to-select="true" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
59
+					<thead>
60
+						<tr>
61
+							<!--暂时去掉操作-->
62
+							<!--<th data-formatter="formatterOperation" data-align="center">操作</th>-->
63
+							<th data-field="F_Phone" data-align="center" data-formatter="Code">号码</th>
64
+							<th data-field="F_CusName" data-align="center">姓名</th>
65
+							<!--<th data-field="ExpandVchField4" data-align="center">乡镇</th>-->
66
+							<th data-field="ExpandVchField3" data-align="center">住址</th>
67
+							<th data-field="F_UserName" data-align="center">分配坐席</th>
68
+							<th data-field="F_HJJGName" data-align="center">呼叫结果</th>
69
+							<!--<th data-field="F_YHFKName" data-align="center">用户反馈</th>-->
70
+						</tr>
71
+					</thead>
72
+					<tbody id="tbody"></tbody>
73
+				</table>
74
+			</div>
75
+		</div>
76
+		<script src="../js/laydate/laydate.js"></script>
77
+		<script>
78
+			$(document).ready(function() {
79
+				//日期
80
+					laydate.render({
81
+						elem: '#chooseTime',
82
+					range: '~',
83
+					//value: st,
84
+					calendar: true,
85
+					theme: '#1ab394',
86
+					});
87
+				initTable();
88
+				GetHJJG(); //呼叫结果下拉
89
+				//GetYHFK();//用户反馈
90
+				$("#sc_btns").click(function() {
91
+					initTable();
92
+				});
93
+			})
94
+
95
+			function initTable() {
96
+				//先销毁表格
97
+				$('#list').bootstrapTable('destroy');
98
+				//初始化表格,动态从服务器加载数据
99
+				$("#list").bootstrapTable({
100
+					method: "get", //使用get请求到服务器获取数据
101
+					url: huayi.config.callcenter_url + "CallOutPlan/GetMyResultList", //获取数据的Servlet地址
102
+					contentType: 'application/x-www-form-urlencoded',
103
+					striped: true, //表格显示条纹
104
+					pagination: true, //启动分页
105
+					pageSize: 10, //每页显示的记录数
106
+					pageNumber: 1, //当前第几页
107
+					pageList: [10, 20, 50, 100], //记录数可选列表
108
+					search: false, //是否启用查询
109
+					showColumns: false, //显示下拉框勾选要显示的列
110
+					showRefresh: false, //显示刷新按钮
111
+					sidePagination: "server", //表示服务端请求
112
+					//设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
113
+					//设置为limit可以获取limit, offset, search, sort, order
114
+					queryParamsType: "undefined",
115
+					queryParams: function queryParams(params) { //设置查询参数
116
+						var param = {
117
+							pageindex: params.pageNumber,
118
+							pagesize: params.pageSize,
119
+							key: $("#key").val(),
120
+							hjjgid: $("#hjjgid").val(), //呼叫结果ID
121
+							sdate: $("#chooseTime").val() && $("#chooseTime").val().split(' ~ ')[0],
122
+							edate: $("#chooseTime").val() && $("#chooseTime").val().split(' ~ ')[1],
123
+							//yhfkid:$("#yhfkid").val(), //用户反馈ID
124
+							token: $.cookie("token")
125
+						};
126
+						return param;
127
+					},
128
+					onLoadSuccess: function() { //加载成功时执行
129
+						//layer.msg("加载成功");
130
+					},
131
+					onLoadError: function() { //加载失败时执行
132
+						//layer.msg("加载数据失败", { time: 1500, icon: 2 });
133
+					}
134
+				});
135
+			}
136
+
137
+			//获取呼叫结果
138
+			function GetHJJG() {
139
+				$.ajax({
140
+					type: "get",
141
+					url: huayi.config.callcenter_url + "Dictionary/GetDicValueListByFlag",
142
+					dataType: 'json',
143
+					data: {
144
+						flag: 'HJJG',
145
+						token: $.cookie("token")
146
+					},
147
+					async: true,
148
+					success: function(data) {
149
+						var Count = data.data;
150
+						$("<option value=''>--全部--</option>").appendTo($("#hjjgid"));
151
+						for(var i = 0; i < Count.length; i++) {
152
+							$("<option value='" + Count[i].F_DictionaryValueId + "'>" + Count[i].F_Name + "</option>").appendTo($("#hjjgid"));
153
+
154
+						}
155
+					}
156
+				});
157
+			}
158
+			//用户反馈
159
+			function GetYHFK() {
160
+				$.ajax({
161
+					type: "get",
162
+					url: huayi.config.callcenter_url + "Dictionary/GetDicValueListByFlag",
163
+					dataType: 'json',
164
+					data: {
165
+						flag: 'YHFK',
166
+						token: $.cookie("token")
167
+					},
168
+					async: true,
169
+					success: function(data) {
170
+						var Count = data.data;
171
+						$("<option value=''>--全部--</option>").appendTo($("#yhfkid"));
172
+						for(var i = 0; i < Count.length; i++) {
173
+							console.log(Count[i].F_UserName);
174
+							$("<option value='" + Count[i].F_DictionaryValueId + "'>" + Count[i].F_Name + "</option>").appendTo($("#yhfkid"));
175
+
176
+						}
177
+					}
178
+				});
179
+			}
180
+
181
+			function Code(val, row) {
182
+				return '<div><a onclick="XX(' + row.F_Id + ')">' + row.F_Phone + '</a></div>'
183
+
184
+			}
185
+			//格式化操作
186
+			function formatterOperation(val, row) {
187
+				//ExpandSintField1  1为已存在工单,0为不存在工单
188
+				if(row.ExpandSintField1 == '1'){
189
+					return '-';
190
+				}else if(row.ExpandSintField1 == '0'){
191
+					return '<div class="imgs" ><a class="xg" href="javascript:;" onclick= createOrder("' + row.F_Id + '")>新建工单</a></div>';
192
+				}else{
193
+					return '-';
194
+				}
195
+			}
196
+			//新建工单
197
+			function createOrder(tid) {
198
+				layer.open({
199
+					type: 2,
200
+					content: "../commonHtml/orderModel.html?tid=" + tid, //iframe的url,no代表不显示滚动条
201
+					title: '新建工单',
202
+					maxmin: true,
203
+					area: ['86%', '88%'], //宽高
204
+				});
205
+			}
206
+
207
+			//详情
208
+			function XX(str) {
209
+				console.log(str);
210
+				layer.open({
211
+					type: 2,
212
+					content: "../OutboundMessage/LookMessages.html?Str=" + str, //iframe的url,no代表不显示滚动条
213
+					title: '任务信息',
214
+					maxmin: true, //开启最大化最小化按钮
215
+					id: 'LAY_layuipro1', //防止重复弹出
216
+					area: ['86%', '88%'], //宽高
217
+				});
218
+			}
219
+		</script>
220
+
221
+	</body>
222
+
223
+</html>

+ 416 - 0
CallCenterWeb.UI/OutboundMessage/OutboundAllo.html

@@ -0,0 +1,416 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+	<head>
5
+		<meta charset="UTF-8">
6
+		<meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+		<link href="../css/initialize.css" rel="stylesheet" />
8
+		<link href="../css/Table/table1.css" rel="stylesheet" />
9
+		<script src="../js/jquery.min.js?v=2.1.4"></script>
10
+		<script src="../js/plugins/layer/layer.min.js"></script>
11
+		<script src="../Script/Common/huayi.load.js"></script>
12
+		<script src="../Script/Common/huayi.config.js"></script>
13
+		<title>外呼计划分配</title>
14
+		<style>
15
+			body {
16
+				font-size: 14px;
17
+			}
18
+			
19
+			.tools_box {
20
+				padding: 10px;
21
+				border: 1px solid #EDECFF;
22
+			}
23
+			
24
+			.tools_box div {
25
+				padding-left: 1px;
26
+				font-weight: bold;
27
+			}
28
+			
29
+			.red {
30
+				color: #E43926;
31
+			}
32
+			
33
+			.tools_box span {
34
+				margin-left: 10px;
35
+			}
36
+			
37
+			.tools_box li {
38
+				margin-right: 10px;
39
+			}
40
+			
41
+			#xtable th {
42
+				/*width: 100px;
43
+				padding: 5px 8px 5px 10px;*/
44
+				color: #333;
45
+				font-weight: 700;
46
+				text-align: right;
47
+				background: #f9f9f9;
48
+				border-right: 1px dotted #cccccc;
49
+				border-top: 1px dotted #cccccc;
50
+				border-left: 1px dotted #cccccc;
51
+				width: 100px;
52
+			}
53
+			
54
+			#xtable td {
55
+				padding: 6px 0 5px 10px;
56
+				/*text-align: left;*/
57
+				color: #717171;
58
+				line-height: 200%;
59
+				border-right: 1px dotted #cccccc;
60
+				border-top: 1px dotted #cccccc;
61
+				border-left: 1px dotted #cccccc;
62
+			}
63
+			
64
+			.Num_input {
65
+				width: 50px;
66
+				padding: 5px;
67
+				border-color: #CCCCCC;
68
+				background: #fff!important;
69
+			}
70
+			
71
+			.clearfix:after {
72
+				content: "";
73
+				display: block;
74
+				clear: both;
75
+			}
76
+			
77
+			#Submit {
78
+				padding: 0 10px;
79
+				height: 28px;
80
+				line-height: 28px;
81
+				background: #1ab394;
82
+				font-weight: bold;
83
+				color: #fff;
84
+				border-radius: 3px;
85
+				border: 1px solid #AED0EA;
86
+			}
87
+			
88
+			.outline {
89
+				border: 1px solid #21b9bb !important;
90
+			}
91
+			
92
+			.whjh {
93
+				position: absolute;
94
+				top: 43px;
95
+				z-index: 600;
96
+			}
97
+			
98
+			.fixed-table-pagination {
99
+				background: #F9F9F9;
100
+			}
101
+			
102
+			#table1 thead {
103
+				background: #f9f9f9;
104
+			}
105
+			
106
+			#tbodys tr {
107
+				background: #f9f9f9;
108
+			}
109
+			
110
+			.hidens {
111
+				display: none;
112
+			}
113
+			
114
+			#GetWFPList td {
115
+				padding: 8px;
116
+			}
117
+			
118
+			.readOnly {
119
+				background: #CCCCCC;
120
+				color: red;
121
+			}
122
+			
123
+			.daoHang {
124
+				padding: 15px;
125
+			}
126
+			
127
+			.daoHang .dhLeft a {
128
+				font-size: 14px;
129
+				color: #999;
130
+			}
131
+			
132
+			.btns {
133
+				background: #1ab394;
134
+				color: #fff;
135
+				padding: 6px 10px;
136
+				outline: none;
137
+				font-size: 12px;
138
+				margin-left: 15px;
139
+				border: 0;
140
+				border-radius: 3px;
141
+				box-sizing: border-box;
142
+			}
143
+			
144
+			.inputs {
145
+				border: 1px solid #e5e6e7;
146
+				width: 150px;
147
+				padding: 6px 12px;
148
+			}
149
+			
150
+			.fixed-table-pagination {
151
+				text-align: center;
152
+			}
153
+		</style>
154
+	</head>
155
+
156
+	<body>
157
+		<div class="wrapper wrapper-content animated fadeInRight">
158
+			<div class="daoHang clearfix">
159
+				<div class="dhLeft">
160
+					<sapn><i class="syIcon"></i>位置:
161
+						<a href="javaScript:;" id="ReIndex">首页</a>&gt;
162
+						<a href="javaScript:;">外呼管理</a>&gt;
163
+						<a href="" style="color: #000;">外呼分配</a>
164
+					</sapn>
165
+				</div>
166
+			</div>
167
+			<!--整体table-->
168
+			<div class="row">
169
+				<div class="col-sm-4">
170
+
171
+					<table border="0" cellspacing="3" cellpadding="3" class="clearfix" style="width: 100%;">
172
+						<tr>
173
+							<!--左边-->
174
+							<td style="padding: 0px 2px 5px 2px; float: left; ">
175
+								<!--头部-->
176
+
177
+								<div>
178
+									<!--小table-->
179
+									<table id="xtable" border="0" cellspacing="" cellpadding="" style="width: 100%;">
180
+										<tr>
181
+											<th>当前未分配:</th>
182
+											<td>
183
+												<input type="text" class="Num_input" id="Fp_total" readonly="readonly" /> 条
184
+											</td>
185
+										</tr>
186
+										<tr>
187
+											<th>分配坐席:</th>
188
+											<td style="padding: 0;">
189
+												<!--table2-->
190
+												<div style="width: 100%;">
191
+													<table id="zxTab" data-click-to-select="true" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
192
+														<thead>
193
+															<tr>
194
+																<th data-checkbox="true" data-align="center"></th>
195
+																<th data-field="UserCode" data-align="center">坐席工号</th>
196
+																<th data-field="UserName" data-align="center">坐席名称</th>
197
+																<th data-field="WWCCount" data-align="center">未执行任务</th>
198
+															</tr>
199
+														</thead>
200
+														<tbody id="tbody">
201
+														</tbody>
202
+													</table>
203
+												</div>
204
+											</td>
205
+										</tr>
206
+										<tr>
207
+											<th>分配策略:</th>
208
+											<td>
209
+
210
+												<div>
211
+													<label for="">按数量平均分配</label>
212
+													<input type="text" class="Num_input Pjfp_input" />条
213
+												</div>
214
+												<div>
215
+													(为选择的坐席分配录入数量的任务)
216
+												</div>
217
+											</td>
218
+										</tr>
219
+										<tr style="border-bottom: 1px dotted #cccccc;text-align: center;">
220
+											<td>
221
+
222
+											</td>
223
+											<td style="text-align: center;">
224
+												<input type="button" name="" id="Submit" value="执行分配" />
225
+											</td>
226
+										</tr>
227
+									</table>
228
+								</div>
229
+							</td>
230
+						</tr>
231
+					</table>
232
+				</div>
233
+				<!--右边-->
234
+				<div class="col-sm-8" style="float: right;">
235
+					<div class="tools_box">
236
+						<div>
237
+
238
+							<span>&nbsp;外呼计划:<input class=" inputs" type="text" id="KeyWords" placeholder="输入号码" style="font-weight: normal;" /></span>
239
+							<button class="btns searchGo size-14"> <i class="fa fa-search size-14"></i>&nbsp;搜索</button>
240
+
241
+						</div>
242
+					</div>
243
+					<div>
244
+						<table id="GetWFPList" class="table table-hover table-striped" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true" style="width:100%">
245
+							<thead>
246
+								<tr>
247
+
248
+									<th data-field="F_Phone" data-align="center">号码</th>
249
+									<th data-field="F_CusName" data-align="center">名称</th>
250
+								</tr>
251
+							</thead>
252
+							<tbody id="tbody">
253
+
254
+							</tbody>
255
+						</table>
256
+					</div>
257
+				</div>
258
+			</div>
259
+			<input type="hidden" id="zxNum" />
260
+		</div>
261
+		<script>
262
+			var Arruser; //分配坐席
263
+			var Fpvalue; //分配数量
264
+			var Counts;
265
+			var token = $.cookie("token");
266
+			$(document).ready(function() {
267
+
268
+				GetSeatList(); //坐席列表
269
+				GetWFPList(); //右边分配
270
+				$(".searchGo").click(function() {
271
+					GetWFPList();
272
+				})
273
+			});
274
+
275
+			//分配坐席
276
+			function GetSeatList() {
277
+				var $tableLeft1 = $('#zxTab');
278
+				$tableLeft1.bootstrapTable('destroy');
279
+				//初始化表格,动态从服务器加载数据
280
+				$tableLeft1.bootstrapTable({
281
+					method: "get", //使用get请求到服务器获取数据
282
+					url: huayi.config.callcenter_url + "CallOutPlan/GetSeatList",
283
+					striped: true, //表格显示条纹
284
+					pagination: true, //启动分页
285
+					pageSize: 5, //每页显示的记录数
286
+					pageNumber: 1, //当前第几页
287
+					pageList: [5, 10, 50, 100], //记录数可选列表
288
+					contentType: 'application/x-www-form-urlencoded',
289
+					search: false, //是否启用查询
290
+					showColumns: false, //显示下拉框勾选要显示的列
291
+					showRefresh: false, //显示刷新按钮
292
+					sidePagination: "server", //表示服务端请求
293
+					//设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
294
+					//设置为limit可以获取limit, offset, search, sort, order
295
+					queryParamsType: "undefined",
296
+					queryParams: function queryParams(params) { //设置查询参数
297
+						var param = {
298
+							pageindex: params.pageNumber,
299
+							pagesize: params.pageSize,
300
+							token: token
301
+						};
302
+						return param;
303
+					},
304
+					onLoadSuccess: function(data) { //加载成功时执行
305
+						//		layer.msg("加载成功");
306
+
307
+					},
308
+					onLoadError: function() { //加载失败时执行
309
+						//layer.msg("加载数据失败", { time: 1500, icon: 2 });
310
+					}
311
+				});
312
+			}
313
+			//提交分配
314
+			$("#Submit").click(function() {
315
+				if(!$('.Pjfp_input').val()) {
316
+					layer.confirm('请输入分配数量', {
317
+						btn: ['确定'] //按钮
318
+					});
319
+					return;
320
+				}
321
+				Arruser = $.map($('#zxTab').bootstrapTable('getSelections'),
322
+					function(row) {
323
+						console.log(row.UserCod);
324
+						return row.UserCode;
325
+					});
326
+				Fpvalue = $('.Pjfp_input').val();
327
+				VisitFPSet(Fpvalue, Arruser);
328
+				//刷新表格
329
+				GetWFPList();
330
+				GetSeatList();
331
+			});
332
+			///未分配列表
333
+			function GetWFPList() {
334
+				var $tableLeft = $('#GetWFPList');
335
+				$tableLeft.bootstrapTable('destroy');
336
+				//初始化表格,动态从服务器加载数据
337
+				$tableLeft.bootstrapTable({
338
+					method: "get", //使用get请求到服务器获取数据
339
+					url: huayi.config.callcenter_url + "CallOutPlan/GetTaskWPF",
340
+					striped: true, //表格显示条纹
341
+					pagination: true, //启动分页
342
+					pageSize: 10, //每页显示的记录数
343
+					pageNumber: 1, //当前第几页
344
+					pageList: [10, 20, 50, 100], //记录数可选列表
345
+					contentType: 'application/x-www-form-urlencoded',
346
+					search: false, //是否启用查询
347
+					showColumns: false, //显示下拉框勾选要显示的列
348
+					showRefresh: false, //显示刷新按钮
349
+					sidePagination: "server", //表示服务端请求
350
+					//设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
351
+					//设置为limit可以获取limit, offset, search, sort, order
352
+					queryParamsType: "undefined",
353
+					queryParams: function queryParams(params) { //设置查询参数
354
+						var param = {
355
+							pageindex: params.pageNumber,
356
+							pagesize: params.pageSize,
357
+							key: $("#KeyWords").val(),
358
+							token: token
359
+						};
360
+						return param;
361
+					},
362
+					onLoadSuccess: function(data) { //加载成功时执行
363
+						Counts = data.total;
364
+						if(Counts == 0) {
365
+							$("#Fp_total").attr("readOnly", "true").addClass("readOnly");
366
+						} else {
367
+							$("#Fp_total").attr("readOnly", false).removeClass("readOnly");
368
+						}
369
+						$("#Fp_total").val(Counts);
370
+						$('.Pjfp_input').val('');
371
+					},
372
+					onLoadError: function() { //加载失败时执行
373
+						//layer.msg("加载数据失败", { time: 1500, icon: 2 });
374
+					}
375
+				});
376
+			}
377
+			//限制字符串长度
378
+			function cutContent(val) {
379
+				if(val) {
380
+					var str = '<div '
381
+					if(val.length > 5) {
382
+						str = str + ' title="' + val + '" ';
383
+						val = val.substr(0, 4) + "...";
384
+					}
385
+					return str + '>' + val + '</div>';
386
+				} else {
387
+					return '';
388
+				}
389
+			}
390
+			//分配 请求 
391
+			function VisitFPSet(Fpvalue, Arruser) {
392
+				$.ajax({
393
+					type: "post",
394
+					url: huayi.config.callcenter_url + "CallOutPlan/fpdata",
395
+					dataType: 'json',
396
+					data: {
397
+						fpvalue: Fpvalue,
398
+						arruser: Arruser,
399
+						token: token
400
+					},
401
+					async: true,
402
+					success: function(data) {
403
+						if(data.state == "success") {
404
+							GetSeatList();
405
+							GetWFPList();
406
+							layer.msg("分配成功");
407
+						} else {
408
+							layer.msg("分配失败");
409
+						}
410
+					}
411
+				});
412
+			}
413
+		</script>
414
+	</body>
415
+
416
+</html>

+ 88 - 0
CallCenterWeb.UI/OutboundMessage/OutboundPlan.html

@@ -0,0 +1,88 @@
1
+<!DOCTYPE html>
2
+<html>
3
+
4
+	<head>
5
+		<meta charset="UTF-8">
6
+		<meta name="viewport" content="width=device-width, initial-scale=1.0">
7
+		<script src="../Script/Common/huayi.load.js"></script>
8
+		<script src="../Script/Common/huayi.config.js"></script>
9
+		<link href="../css/init.css" rel="stylesheet" />
10
+		<link rel="stylesheet" href="../css/QutboundMessage/QutboundComm.css" />
11
+		<title>外呼计划</title>
12
+	</head>
13
+
14
+	<body>
15
+		<div class="wrapper wrapper-content animated fadeInRight">
16
+			<div class="daoHang clearfix">
17
+				<div class="dhLeft">
18
+					<sapn><i class="syIcon"></i>位置:
19
+						<a id="ReIndex">首页</a>&gt;
20
+						<a href="javaScript:;">外呼管理</a>&gt;
21
+						<a href="" style="color: #000;">外呼计划</a>
22
+					</sapn>
23
+				</div>
24
+			</div>
25
+			<div class="top clearfix ">
26
+				<div class="fr">
27
+					<span>&nbsp;外呼计划:<input class=" inputs" type="text" id="KeyWords" /></span>
28
+					<button class="btns searchGo size-14"> <i class="fa fa-search size-14"></i>&nbsp;搜索</button>
29
+				</div>
30
+
31
+			</div>
32
+			<div class='wrap'>
33
+				<div class="tbleft">
34
+					<h4 class="Title_box">外呼计划</h4>
35
+					<div class="anniu ">
36
+						<button class="leftAdd btns size-14"><i class="fa fa-plus size-14"></i>增加</button>
37
+
38
+					</div>
39
+					<table id="tb1">
40
+						<thead>
41
+							<tr>
42
+								<th data-field="checkbox" data-align="center" data-formatter="setCode"></th>
43
+								<th data-align="center" data-width="100" data-field="F_IsStart" data-formatter="Type">状态</th>
44
+								<th data-align="center" data-width="200" data-field="F_TaskName">计划名称</th>
45
+								<th data-align="center" data-width="200" data-field="F_TaskRemark">说明</th>
46
+								<th data-align="center" data-width="200" data-field="F_IsStart" data-formatter="Code">操作</th>
47
+							</tr>
48
+						</thead>
49
+						<tbody>
50
+						</tbody>
51
+					</table>
52
+				</div>
53
+				<div class="tblert">
54
+					<h4 class="Title_box">外呼号码</h4>
55
+					<div class="anniu clearfix">
56
+						<div style="float: left;">
57
+							<button class="Dr btns size-14"><i class="fa fa-plus size-14"></i>号码导入</button>
58
+							<button class="RemoveDr btns size-14"><i class="fa fa-remove  size-14"></i>批量删除</button>
59
+						</div>
60
+						<div class="fr">
61
+							<input type="text" class="inputs" id="custel" placeholder="请输入电话" />
62
+							<button class="btns searchRight size-14"> <i class="fa fa-search size-14"></i>&nbsp;搜索</button>
63
+						</div>
64
+					</div>
65
+					<table id="tb2">
66
+						<thead>
67
+							<tr>
68
+								<th data-field="state" data-checkbox="true"></th>
69
+								<th data-field="checkbox" data-align="center" data-formatter="setCode"></th>
70
+								<th data-align="center" data-field="F_CusName">客户姓名</th>
71
+								<th data-align="center" data-field="F_Phone">电话</th>
72
+								<th data-align="center" data-field="ExpandVchField12">住址</th>
73
+								<th data-align="center" data-field="F_CreateTime">导入时间</th>
74
+								<th data-align="center" data-field="F_UserName">分配坐席</th>
75
+								<th data-align="center" data-field="F_Id" data-formatter="Removes">操作</th>
76
+							</tr>
77
+						</thead>
78
+						<tbody>
79
+						</tbody>
80
+					</table>
81
+				</div>
82
+			</div>
83
+		</div>
84
+	</body>
85
+
86
+	<script src="../js/OutboundMessage/OutboundPlan.js"></script>
87
+
88
+</html>

+ 226 - 0
CallCenterWeb.UI/OutboundMessage/TaskResult.html

@@ -0,0 +1,226 @@
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/Table/table1.css" rel="stylesheet" />
11
+		<link href="../css/init.css" rel="stylesheet" />
12
+	</head>
13
+
14
+	<body class="gray-bg">
15
+		<div class="wrapper wrapper-content animated fadeInRight">
16
+			<div class="daoHang clearfix">
17
+				<div class="dhLeft">
18
+					<sapn><i class="syIcon"></i>位置:
19
+						<a href="javaScript:;" id="ReIndex">首页</a>&gt;
20
+						<a href="javaScript:;">外呼管理</a>&gt;
21
+						<a href="" style="color: #000;">任务结果</a>
22
+					</sapn>
23
+				</div>
24
+			</div>
25
+			<div class="th-box">
26
+				<div class="th-bar">
27
+
28
+					<div class="seach-box ">
29
+						<ul>
30
+							<li>关键字:<input class="photo x-color" type="text" id="key" placeholder="请输入电话号码" /></li>
31
+							<li>呼叫结果:
32
+								<select name="" class="photo" id="hjjgid"></select>
33
+							</li>
34
+							<!--<li>用户反馈:
35
+                        <select name="" class="photo" id="yhfkid"></select>
36
+                        </li>-->
37
+							<li>坐席:
38
+								<select name="" class="photo" id="zx"></select>
39
+							</li>
40
+							<li>
41
+								<a class="sc_btn  Block" id="sc_btns">搜索</a>
42
+							</li>
43
+						</ul>
44
+					</div>
45
+				</div>
46
+			</div>
47
+			<div style="width: 100%;padding: 10px;">
48
+				<table id="list" data-click-to-select="true" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
49
+					<thead>
50
+						<tr>
51
+							<!--暂时去掉  <th data-formatter="formatterOperation" data-align="center">操作</th>-->
52
+							<th data-field="F_Phone" data-align="center" data-formatter="Code">号码</th>
53
+							<th data-field="F_CusName" data-align="center">姓名</th>
54
+							<!--<th data-field="ExpandVchField4" data-align="center">乡镇</th>-->
55
+							<th data-field="ExpandVchField3" data-align="center">住址</th>
56
+							<th data-field="F_UserName" data-align="center">分配坐席</th>
57
+							<th data-field="F_HJJGName" data-align="center">呼叫结果</th>
58
+							<!--<th data-field="F_YHFKName" data-align="center">用户反馈</th>-->
59
+						</tr>
60
+					</thead>
61
+				</table>
62
+			</div>
63
+		</div>
64
+
65
+		<script>
66
+			$(document).ready(function() {
67
+				initTable();
68
+				GetHJJG(); //呼叫结果
69
+				//GetYHFK();//用户反馈
70
+				$("#sc_btns").click(function() {
71
+
72
+					initTable();
73
+
74
+				});
75
+				$('#ReIndex').click(function() {
76
+					top.home_index();
77
+				})
78
+				//坐席
79
+				$.ajax({
80
+					type: "get",
81
+					url: huayi.config.callcenter_url + "UserAccount/GetSeatList",
82
+					dataType: 'json',
83
+					async: true,
84
+					data: {
85
+						token: $.cookie("token")
86
+					},
87
+					success: function(data) {
88
+						var Count = data.data;
89
+						$("<option value=''>--全部--</option>").appendTo($("#zx"));
90
+						for(var i = 0; i < Count.length; i++) {
91
+							//console.log(Count[i].F_UserName);
92
+							$("<option value='" + Count[i].F_UserId + "'>" + Count[i].F_UserName + "</option>").appendTo($("#zx"));
93
+						}
94
+					}
95
+				});
96
+			})
97
+
98
+			function initTable() {
99
+				//先销毁表格
100
+				$('#list').bootstrapTable('destroy');
101
+				//初始化表格,动态从服务器加载数据
102
+				$("#list").bootstrapTable({
103
+					method: "get", //使用get请求到服务器获取数据
104
+					url: huayi.config.callcenter_url + "CallOutPlan/GetResultList", //获取数据的Servlet地址
105
+					contentType: 'application/x-www-form-urlencoded',
106
+					striped: true, //表格显示条纹
107
+					pagination: true, //启动分页
108
+					pageSize: 10, //每页显示的记录数
109
+					pageNumber: 1, //当前第几页
110
+					pageList: [10, 20, 50, 100], //记录数可选列表
111
+					search: false, //是否启用查询
112
+					showColumns: false, //显示下拉框勾选要显示的列
113
+					showRefresh: false, //显示刷新按钮
114
+					sidePagination: "server", //表示服务端请求
115
+					//设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
116
+					//设置为limit可以获取limit, offset, search, sort, order
117
+					queryParamsType: "undefined",
118
+					queryParams: function queryParams(params) { //设置查询参数
119
+						var param = {
120
+							pageindex: params.pageNumber,
121
+							pagesize: params.pageSize,
122
+							key: $("#key").val(),
123
+							hjjgid: $("#hjjgid").val(), //呼叫结果ID
124
+							//yhfkid:$("#yhfkid").val(), //用户反馈ID
125
+							userid: $("#zx").val(),
126
+							token: $.cookie("token")
127
+						};
128
+						return param;
129
+					},
130
+					onLoadSuccess: function() { //加载成功时执行
131
+						//layer.msg("加载成功");
132
+					},
133
+					onLoadError: function() { //加载失败时执行
134
+						//layer.msg("加载数据失败", { time: 1500, icon: 2 });
135
+					}
136
+				});
137
+			}
138
+
139
+			//获取呼叫结果
140
+			function GetHJJG() {
141
+				$.ajax({
142
+					type: "get",
143
+					url: huayi.config.callcenter_url + "Dictionary/GetDicValueListByFlag",
144
+					dataType: 'json',
145
+					data: {
146
+						flag: 'HJJG',
147
+						token: $.cookie("token")
148
+					},
149
+					async: true,
150
+					success: function(data) {
151
+						var Count = data.data;
152
+						$("<option value=''>--全部--</option>").appendTo($("#hjjgid"));
153
+						for(var i = 0; i < Count.length; i++) {
154
+							console.log(Count[i].F_UserName);
155
+							$("<option value='" + Count[i].F_DictionaryValueId + "'>" + Count[i].F_Name + "</option>").appendTo($("#hjjgid"));
156
+
157
+						}
158
+					}
159
+				});
160
+			}
161
+			//用户反馈
162
+			function GetYHFK() {
163
+				$.ajax({
164
+					type: "get",
165
+					url: huayi.config.callcenter_url + "Dictionary/GetDicValueListByFlag",
166
+					dataType: 'json',
167
+					data: {
168
+						flag: 'YHFK',
169
+						token: $.cookie("token")
170
+					},
171
+					async: true,
172
+					success: function(data) {
173
+						var Count = data.data;
174
+						$("<option value=''>--全部--</option>").appendTo($("#yhfkid"));
175
+						for(var i = 0; i < Count.length; i++) {
176
+							console.log(Count[i].F_UserName);
177
+							$("<option value='" + Count[i].F_DictionaryValueId + "'>" + Count[i].F_Name + "</option>").appendTo($("#yhfkid"));
178
+
179
+						}
180
+					}
181
+				});
182
+			}
183
+
184
+			function Code(val, row) {
185
+				return '<div><a onclick="XX(' + row.F_Id + ')">' + row.F_Phone + '</a></div>'
186
+
187
+			}
188
+			
189
+			//格式化操作
190
+			function formatterOperation(val,row){
191
+				//ExpandSintField1  1为已存在工单,0为不存在工单
192
+				if(row.ExpandSintField1 == '1'){
193
+					return '-';
194
+				}else if(row.ExpandSintField1 == '0'){
195
+					return '<div class="imgs" ><a class="xg" href="javascript:;" onclick= createOrder("' + row.F_Id + '")>新建工单</a></div>';
196
+				}else{
197
+					return '-';
198
+				}
199
+				
200
+			}
201
+			//新建工单
202
+			function createOrder(tid){
203
+				layer.open({
204
+					type: 2,
205
+					content: "../commonHtml/orderModel.html?tid=" + tid, //iframe的url,no代表不显示滚动条
206
+					title: '新建工单',
207
+					maxmin: true,
208
+					area: ['86%', '88%'], //宽高
209
+				});
210
+			}
211
+			//详情
212
+			function XX(str) {
213
+				layer.open({
214
+					type: 2,
215
+					content: "../OutboundMessage/LookMessages.html?Str=" + str, //iframe的url,no代表不显示滚动条
216
+					title: '任务信息',
217
+					maxmin: true, //开启最大化最小化按钮
218
+					id: 'LAY_layuipro', //防止重复弹出
219
+					area: ['86%', '88%'], //宽高
220
+				});
221
+			}
222
+		</script>
223
+
224
+	</body>
225
+
226
+</html>

+ 169 - 0
CallCenterWeb.UI/OutboundMessage/addPlan.html

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

BIN
CallCenterWeb.UI/OutboundMessage/drmb/导入模板.xlsx


+ 149 - 0
CallCenterWeb.UI/OutboundMessage/wxQueResult.html

@@ -0,0 +1,149 @@
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/Table/table1.css" rel="stylesheet" />
11
+		<link href="../css/init.css" rel="stylesheet" />
12
+		<style>
13
+			table td {
14
+				word-break: break-all;
15
+				word-wrap: break-word;
16
+			}
17
+			
18
+			table th {
19
+				min-width: 120px;
20
+			}
21
+		</style>
22
+	</head>
23
+
24
+	<body class="gray-bg">
25
+		<div class="wrapper wrapper-content animated fadeInRight">
26
+			<div class="daoHang clearfix">
27
+				<div class="dhLeft">
28
+					<sapn><i class="syIcon"></i>位置:
29
+						<a id="ReIndex">首页</a>&gt;
30
+						<a href="javaScript:;">外呼管理</a>&gt;
31
+						<a href="" style="color: #000;">微信问卷结果</a>
32
+					</sapn>
33
+				</div>
34
+			</div>
35
+			<div class="th-box">
36
+				<div class="th-bar">
37
+					<div class="seach-box ">
38
+						<ul>
39
+							<li>号码:<input class="photo x-color" type="text" id="key" placeholder="请输入电话号码" /></li>
40
+							<li>
41
+								<a class="sc_btn  Block" id="sc_btns">搜索</a>
42
+							</li>
43
+						</ul>
44
+					</div>
45
+				</div>
46
+			</div>
47
+			<div style="width: 100%;padding: 10px;">
48
+				<table id="list" data-click-to-select="true" data-row-style="rowStyle" data-query-params="queryParams" data-pagination="true">
49
+					<thead>
50
+						<tr>
51
+							<th data-formatter="formatterOperation" data-align="center">操作</th>
52
+							<!--<th data-field="state" data-checkbox="true"></th>-->
53
+							<th data-field="F_Phone" data-align="center" data-formatter="Code">号码</th>
54
+							<th data-field="F_UserName" data-align="center">分配坐席</th>
55
+							<th data-field="F_HJJGName" data-align="center">呼叫结果</th>
56
+							<!--<th data-field="F_YHFKName" data-align="center">用户反馈</th>-->
57
+						</tr>
58
+					</thead>
59
+					<tbody id="tbody"></tbody>
60
+				</table>
61
+			</div>
62
+		</div>
63
+
64
+		<script>
65
+			$(document).ready(function() {
66
+				initTable();
67
+				$("#sc_btns").click(function() {
68
+					initTable();
69
+				});
70
+			})
71
+
72
+			function initTable() {
73
+				//先销毁表格
74
+				$('#list').bootstrapTable('destroy');
75
+				//初始化表格,动态从服务器加载数据
76
+				$("#list").bootstrapTable({
77
+					method: "get", //使用get请求到服务器获取数据
78
+					url: huayi.config.callcenter_url + "PagerAnswerWX/GetWJList", //获取数据的Servlet地址
79
+					contentType: 'application/x-www-form-urlencoded',
80
+					striped: true, //表格显示条纹
81
+					pagination: true, //启动分页
82
+					pageSize: 10, //每页显示的记录数
83
+					pageNumber: 1, //当前第几页
84
+					pageList: [10, 20, 50, 100], //记录数可选列表
85
+					search: false, //是否启用查询
86
+					showColumns: false, //显示下拉框勾选要显示的列
87
+					showRefresh: false, //显示刷新按钮
88
+					sidePagination: "server", //表示服务端请求
89
+					//设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
90
+					//设置为limit可以获取limit, offset, search, sort, order
91
+					queryParamsType: "undefined",
92
+					queryParams: function queryParams(params) { //设置查询参数
93
+						var param = {
94
+							pageindex: params.pageNumber,//页码
95
+							pagesize: params.pageSize,//条数
96
+							key: $("#key").val(), //号码,可模糊查询
97
+							token: $.cookie("token")
98
+						};
99
+						return param;
100
+					},
101
+					onLoadSuccess: function() { //加载成功时执行
102
+						debugger
103
+						//layer.msg("加载成功");
104
+					},
105
+					onLoadError: function() { //加载失败时执行
106
+						//layer.msg("加载数据失败", { time: 1500, icon: 2 });
107
+					}
108
+				});
109
+			}
110
+
111
+			
112
+			
113
+
114
+			function Code(val, row) {
115
+				return '<div><a onclick="XX(' + row.F_Id + ')">' + row.F_Phone + '</a></div>'
116
+
117
+			}
118
+			//格式化操作
119
+			function formatterOperation(val, row) {
120
+				return '<div class="imgs" ><a class="xg" href="javascript:;" onclick= createOrder("' + row.F_Id + '")>添加工单</a></div>';
121
+			}
122
+			//新建工单
123
+			function createOrder(tid) {
124
+				layer.open({
125
+					type: 2,
126
+					content: "../commonHtml/orderModel.html?tid=" + tid, //iframe的url,no代表不显示滚动条
127
+					title: '新建工单',
128
+					maxmin: true,
129
+					area: ['86%', '88%'], //宽高
130
+				});
131
+			}
132
+
133
+			//详情
134
+			function XX(str) {
135
+				console.log(str);
136
+				layer.open({
137
+					type: 2,
138
+					content: "../OutboundMessage/LookMessages.html?Str=" + str, //iframe的url,no代表不显示滚动条
139
+					title: '任务信息',
140
+					maxmin: true, //开启最大化最小化按钮
141
+					id: 'LAY_layuipro1', //防止重复弹出
142
+					area: ['86%', '88%'], //宽高
143
+				});
144
+			}
145
+		</script>
146
+
147
+	</body>
148
+
149
+</html>

+ 200 - 0
CallCenterWeb.UI/OutboundMessage/xgPlan.html

@@ -0,0 +1,200 @@
1
+<!DOCTYPE html>
2
+<html>
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>
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>
47
+
48
+				</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
+			</div>
66
+
67
+		</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
+					//获取计划
77
+					$.ajax({
78
+						type: "get",
79
+						url: huayi.config.callcenter_url + "CallOutPlan/GetTaskModel",
80
+						dataType: 'json',
81
+						data: {
82
+							id: wid,
83
+							token: $.cookie("token")
84
+						},
85
+						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
+
95
+							}
96
+
97
+						}
98
+					});
99
+				}
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
+
142
+			})
143
+
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样式用于区别; 
195
+
196
+			});
197
+		</script>
198
+	</body>
199
+
200
+</html>

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

@@ -2,8 +2,8 @@
2 2
     var huayi = {};
3 3
 }
4 4
 huayi.config = {
5
-    callcenter_url: "http://localhost:7456/",//生产环境 前端Web站IP和端口
6
-    //callcenter_url: "http://192.168.4.18:4629/",//生产环境 前端Web站IP和端口
5
+//  callcenter_url: "http://localhost:7456/",//生产环境 前端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,    //菜单工单数量刷新间隔

+ 151 - 0
CallCenterWeb.UI/css/QutboundMessage/QutboundComm.css

@@ -0,0 +1,151 @@
1
+.fr {
2
+	float: right;
3
+}
4
+
5
+.fr li {
6
+	float: left;
7
+}
8
+
9
+.size-14 {
10
+	font-size: 14px!important;
11
+}
12
+
13
+.size-16 {
14
+	font-size: 16px;
15
+}
16
+
17
+.anniu i {
18
+	margin-right: 5px;
19
+}
20
+
21
+.x-color {
22
+	width: 100px;
23
+	background-color: #FFF;
24
+	background-image: none;
25
+	border: 1px solid #e5e6e7;
26
+	border-radius: 1px;
27
+	color: inherit;
28
+}
29
+
30
+.inputs {
31
+	border: 1px solid #e5e6e7;
32
+	width: 150px;
33
+	padding: 6px 12px;
34
+}
35
+
36
+.d {
37
+	color: forestgreen;
38
+}
39
+
40
+.du {
41
+	color: #0064B6;
42
+}
43
+
44
+.w {
45
+	color: #e43926;
46
+}
47
+
48
+.Title_box {
49
+	line-height: 20px;
50
+	border-bottom: 1px solid #ccc;
51
+	padding-bottom: 10px;
52
+}
53
+
54
+.btns:hover {
55
+	background-color: #06caa2;
56
+}
57
+
58
+
59
+/*外呼计划*/
60
+
61
+.anniu {
62
+	margin-bottom: 10px;
63
+}
64
+
65
+.operation a {
66
+	margin-right: 5px;
67
+	display: inline-block;
68
+}
69
+
70
+
71
+/*增加试题分类*/
72
+
73
+.Content {
74
+	text-align: center;
75
+	padding: 10px;
76
+}
77
+
78
+.btn {
79
+	background: #1ab394;
80
+}
81
+
82
+.Btn_box {
83
+	margin-top: 20px;
84
+	color: #fff;
85
+}
86
+
87
+.Content_ {
88
+	padding-bottom: 10px;
89
+}
90
+
91
+.form_table {
92
+	width: 100%;
93
+}
94
+
95
+.form_table th {
96
+	padding: 5px 8px 5px 0;
97
+	color: #333;
98
+	font-weight: 700;
99
+	text-align: right;
100
+	background: #f9f9f9;
101
+}
102
+
103
+.form_table td {
104
+	padding: 6px 0 5px 10px;
105
+	text-align: left;
106
+	color: #717171;
107
+	line-height: 200%;
108
+	margin-bottom: 20px;
109
+}
110
+
111
+.txtInput {
112
+	width: 50%;
113
+	margin-right: 5px;
114
+	padding: 0 3px 0 3px;
115
+	height: 22px;
116
+	line-height: 22px;
117
+	background: #FAFAFA;
118
+	border: 1px solid #D7D7D7;
119
+	vertical-align: middle;
120
+	font-size: 12px;
121
+}
122
+
123
+#Search {
124
+	color: #1ab394;
125
+}
126
+
127
+.Table_box {
128
+	display: none;
129
+}
130
+
131
+.Btn_box {
132
+	margin-top: 10px;
133
+	text-align: center;
134
+}
135
+
136
+
137
+/*外呼计划*/
138
+
139
+.tbleft {
140
+	float: left;
141
+	width: 38%;
142
+}
143
+
144
+.tblert {
145
+	float: right;
146
+	width: 60%;
147
+}
148
+
149
+#tb2 {
150
+	display: none;
151
+}

+ 196 - 0
CallCenterWeb.UI/css/lookMsg.css

@@ -0,0 +1,196 @@
1
+table td {
2
+	word-break: break-all;
3
+	word-wrap: break-word;
4
+}
5
+
6
+table th {
7
+	min-width: 120px;
8
+}
9
+
10
+.size-14 {
11
+	font-size: 14px!important;
12
+}
13
+
14
+.shark_content_title {
15
+	font-size: 14px;
16
+	height: 30px;
17
+	line-height: 20px;
18
+	border-bottom: 1px solid #CCCCCC;
19
+	margin-bottom: 5px;
20
+	margin-top: 5px;
21
+}
22
+
23
+.content_2 li {
24
+	width: 24%;
25
+	margin-bottom: 10px;
26
+}
27
+
28
+.content_3 li {
29
+	width: 24%;
30
+	margin-bottom: 10px;
31
+}
32
+
33
+#tbr {
34
+	border: 1px solid #ccc;
35
+}
36
+
37
+#tbr td {
38
+	padding: 10px;
39
+	padding: 6px 0 5px 10px;
40
+	color: #717171;
41
+	line-height: 200%;
42
+	border-top: 1px dotted #cccccc;
43
+}
44
+
45
+#tbr th {
46
+	border-right: 1px dotted #cccccc;
47
+	border-top: 1px dotted #cccccc;
48
+	background: #f9f9f9;
49
+	text-align: right;
50
+}
51
+
52
+.Back {
53
+	/*background-color: #f5f5f5;*/
54
+}
55
+
56
+label {
57
+	margin-right: 10px;
58
+}
59
+
60
+.Phone_Text ul {
61
+	padding-left: 0;
62
+}
63
+
64
+.Phone_Text li {
65
+	width: 50%;
66
+	margin-bottom: 5px;
67
+	height: 34px;
68
+	line-height: 34px;
69
+}
70
+
71
+.Phone_Text label {
72
+	width: 60px;
73
+}
74
+
75
+.Qus_box li {
76
+	list-style: none;
77
+	border-bottom: none;
78
+	float: none;
79
+	border-top: none;
80
+	margin-top: -1px;
81
+}
82
+
83
+.Qus_box {
84
+	padding-left: 5px!important;
85
+	margin-bottom: 0!important;
86
+		border: 1px solid #ccc;
87
+}
88
+
89
+.Qus_box >div {
90
+	padding: 10px;
91
+	border-top: 1px solid #ccc;
92
+}
93
+
94
+.title_ul {
95
+	padding-left: 0;
96
+	margin-bottom: 0;
97
+}
98
+
99
+.title_ul li {
100
+	border: 1px solid #ccc;
101
+	float: none;
102
+	margin-top: -1px;
103
+	overflow: hidden;
104
+}
105
+.title_ul li span{
106
+	width: 90%;
107
+	line-height: 30px;
108
+	/*text-indent: 2em;*/
109
+	border-left: 1px solid #ccc;
110
+	display: block;
111
+	float: left;
112
+	padding: 0 10px;
113
+}
114
+.title_ul li label {
115
+	
116
+	line-height: 30px;
117
+	margin: 0;
118
+	text-align: center;
119
+	width: 10%;
120
+	display: block;
121
+	float: left;
122
+	
123
+}
124
+
125
+.checkbox input[type=checkbox] {
126
+	margin-top: 0;
127
+	margin-left: 0;
128
+	position: relative;
129
+}
130
+
131
+.radio input[type=radio] {
132
+	margin-top: 0;
133
+	margin-left: 0;
134
+	position: relative;
135
+}
136
+
137
+.wrapper {
138
+	margin-bottom: 20px;
139
+}
140
+
141
+.Ul {
142
+	float: left;
143
+	padding-left: 0;
144
+	border: none
145
+}
146
+
147
+.Ul li {
148
+	float: left;
149
+	border: none;
150
+	padding: 5px;
151
+}
152
+
153
+.checkbox,
154
+.radio {
155
+	margin-bottom: 0;
156
+}
157
+
158
+.Wd {
159
+	border-bottom: 1px solid #ccc;
160
+}
161
+
162
+.content_1 input.form-control {
163
+	width: 50%;
164
+}
165
+
166
+textarea {
167
+	resize: none;
168
+}
169
+
170
+#Tgetruset input[type="radio"] {
171
+	margin-right: 6px;
172
+	cursor: pointer;
173
+}
174
+
175
+#Tgetruset label {
176
+	cursor: pointer;
177
+}
178
+.content_5{
179
+	margin-top: 20px;
180
+}
181
+.lookMsgs .Phone_Text li{
182
+	height: 20px;
183
+	line-height: 20px;
184
+}
185
+.lookMsgs input[type="radio"]{
186
+	cursor: not-allowed!important;
187
+}
188
+.lookMsgs li span,
189
+.lookMsgs li img,
190
+.lookMsgs li label{
191
+	cursor: default!important;
192
+}
193
+.content_2{
194
+	border: 1px solid #ddd;
195
+    margin-top: 20px;
196
+}

+ 375 - 0
CallCenterWeb.UI/js/OutboundMessage/OutboundPlan.js

@@ -0,0 +1,375 @@
1
+var Left_Cids;
2
+var $tableLeft = $('#tb1');
3
+var $tableLeft1 = $('#tb2');
4
+var token = $.cookie("token");
5
+var TaskID; //导入
6
+$(document).ready(function() {
7
+	IndexCategoryGe();
8
+	
9
+	//搜索功能
10
+	$(".searchGo").click(function() {
11
+		IndexCategoryGe();
12
+	});
13
+	//右侧表格号码搜索
14
+	$('.searchRight').click(function(){
15
+		if(TaskID){
16
+			Right(TaskID);
17
+		}else{
18
+			layer.msg("请选择计划项!");
19
+		}
20
+		
21
+	})
22
+
23
+})
24
+
25
+
26
+////左边表格
27
+/*获取选中行对象*/
28
+$tableLeft.on("click-row.bs.table", function(e, row, ele) {
29
+	$('.success').removeClass('success'); //去除之前选中的行的,选中样式
30
+	$(ele).addClass('success'); //添加当前选中的 success样式用于区别
31
+	Left_Cids = row.F_IsStart; //分类ID
32
+	$("#tb2").show();
33
+	TaskID = row.F_TaskID //导入ID
34
+	//导入方法
35
+	Right(TaskID);
36
+
37
+});
38
+//获取计划列表    
39
+function IndexCategoryGe() {
40
+	//销毁表格
41
+	$tableLeft.bootstrapTable('destroy');
42
+	//初始化表格,动态从服务器加载数据
43
+	$tableLeft.bootstrapTable({
44
+		method: "get", //使用get请求到服务器获取数据
45
+		url: huayi.config.callcenter_url + "CallOutPlan/GetTaskList",
46
+		contentType: "application/x-www-form-urlencoded",
47
+		striped: true, //表格显示条纹
48
+		pagination: true, //启动分页
49
+		pageSize: 5, //每页显示的记录数
50
+		pageNumber: 1, //当前第几页
51
+		pageList: [5, 20, 50, 100], //记录数可选列表
52
+		search: false, //是否启用查询
53
+		showColumns: false, //显示下拉框勾选要显示的列
54
+		showRefresh: false, //显示刷新按钮
55
+		sidePagination: "server", //表示服务端请求
56
+		//设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
57
+		//设置为limit可以获取limit, offset, search, sort, order
58
+		queryParamsType: "undefined",
59
+		queryParams: function queryParams(params) { //设置查询参数
60
+			var param = {
61
+				pageindex: params.pageNumber,
62
+				pagesize: params.pageSize,
63
+				key: $("#KeyWords").val(),
64
+				token: token
65
+			};
66
+			return param;
67
+		},
68
+		onLoadSuccess: function() { //加载成功时执行
69
+			//								layer.msg("加载成功");
70
+		},
71
+		onLoadError: function() { //加载失败时执行
72
+			//layer.msg("加载数据失败", { time: 1500, icon: 2 });
73
+		}
74
+	});
75
+}
76
+
77
+//操作
78
+function Code(val, row) {
79
+	var html = '';
80
+	if(val == "0") {
81
+		html = '<a index="' + row.F_IsStart + '" onclick="Qd(' + row.F_TaskID + ',' + row.F_IsStart + ')">启动</a>';
82
+	} else if(val == "1") {
83
+		html = '<a  onclick="Tz(' + row.F_TaskID + ')">停止</a>';
84
+	}
85
+	return '<div class="operation">' +
86
+		'<a  onclick=Amend(' + row.F_TaskID + ')>修改</a>' +
87
+		'' + html + '' +
88
+		'<a  onclick=Remove(' + row.F_TaskID + ')>删除</a>' +
89
+		'<a  onclick=btn_deletes(' + row.F_TaskID + ')>清空号码</a>' +
90
+		'</div>'
91
+
92
+}
93
+//编号
94
+function setCode(val, row, index) {
95
+	return index + 1;
96
+}
97
+//类型
98
+function Type(val) {
99
+	var cs = '';
100
+	var vals = '';
101
+	if(val == 0) {
102
+		cs = 'w';
103
+		vals = "未启动"
104
+	} else if(val == 1) {
105
+		cs = 'd';
106
+		vals = "已启动"
107
+	}
108
+
109
+	return '<span class="' + cs + '">' + vals + '</span>'
110
+	console.log(val);
111
+}
112
+//修改计划
113
+function Amend(str) {
114
+	layer.open({
115
+		maxmin: true, //开启最大化最小化按钮
116
+		type: 2,
117
+		content: "../OutboundMessage/xgPlan.html?Str=" + str, //iframe的url,no代表不显示滚动条
118
+		title: '问卷信息',
119
+		area: ['40%', '45%'], //宽高
120
+	});
121
+}
122
+
123
+//清空计划下的号码
124
+function btn_deletes(tid){
125
+	layer.confirm('您确定要清空当前计划下的号码吗?', {
126
+		btn: ['是', '否'] //按钮
127
+	}, function() {
128
+		$.ajax({
129
+			type: "post",
130
+			url: huayi.config.callcenter_url + "CallOutPlan/DeletesTaskTel",
131
+			dataType: 'json',
132
+			data: {
133
+				id: tid,//任务id
134
+				token: token
135
+			},
136
+			async: true,
137
+			success: function(data) {
138
+				layer.msg("清空号码成功");
139
+				IndexCategoryGe();
140
+				Right(tid);
141
+			}
142
+		});
143
+	});
144
+}
145
+
146
+//删除功能
147
+function Remove(str) {
148
+	layer.confirm('您确定要删除当前计划吗?', {
149
+		btn: ['是', '否'] //按钮
150
+	}, function() {
151
+		/*发送请求*/
152
+		$.ajax({
153
+			type: "post",
154
+			url: huayi.config.callcenter_url + "CallOutPlan/DeleteTask",
155
+			dataType: 'json',
156
+			data: {
157
+				id: str,
158
+				token: token
159
+			},
160
+			async: true,
161
+			success: function(data) {
162
+				layer.msg("删除成功");
163
+				IndexCategoryGe();
164
+			}
165
+		});
166
+	});
167
+
168
+}
169
+//启动
170
+function Qd(str, val) {
171
+	layer.confirm('确定要启动么?', {
172
+		btn: ['是', '否'] //按钮
173
+	}, function() {
174
+		/*发送请求*/
175
+		$.ajax({
176
+			type: "post",
177
+			url: huayi.config.callcenter_url + "CallOutPlan/EditTaskNum",
178
+			dataType: 'json',
179
+			data: {
180
+				taskid: str,
181
+				state: 1,
182
+				token: token
183
+			},
184
+			async: true,
185
+			success: function(data) {
186
+				if(data.state == "success") {
187
+					IndexCategoryGe();
188
+					layer.msg("启动成功");
189
+				}
190
+
191
+			}
192
+		});
193
+	});
194
+}
195
+
196
+function Tz(str) {
197
+	layer.confirm('确定要停止么?', {
198
+		btn: ['是', '否'] //按钮
199
+	}, function() {
200
+		/*发送请求*/
201
+		$.ajax({
202
+			type: "post",
203
+			url: huayi.config.callcenter_url + "CallOutPlan/EditTaskNum",
204
+			dataType: 'json',
205
+			data: {
206
+				taskid: str,
207
+				state: 0,
208
+				token: token
209
+			},
210
+			async: true,
211
+			success: function(data) {
212
+				if(data.state == "success") {
213
+					IndexCategoryGe();
214
+					layer.msg("停止成功");
215
+				}
216
+
217
+			}
218
+		});
219
+	});
220
+}
221
+///左边修改功能
222
+$(".leftChange ").click(function() {
223
+	if(Left_Cids) {
224
+		layer.open({
225
+			type: 2,
226
+			content: "../Questionnaire/modify.html?str=" + Left_Cids, //iframe的url,no代表不显示滚动条
227
+			title: '修改分类',
228
+			area: ['35%', '30%'], //宽高
229
+		});
230
+		//			GetIndexCategory(Left_Cids);
231
+
232
+	} else {
233
+		layer.msg('没有可修改的选项!');
234
+	}
235
+})
236
+
237
+//增加
238
+$(".leftAdd").click(function() {
239
+	layer.open({
240
+		maxmin: true, //开启最大化最小化按钮
241
+		type: 2,
242
+		content: "../OutboundMessage/addPlan.html", //iframe的url,no代表不显示滚动条
243
+		title: '添加计划',
244
+		area: ['45%', '55%'], //宽高
245
+	});
246
+});
247
+
248
+/////////////////////////右边表格
249
+//号码导入
250
+$(".Dr").click(function() {
251
+	if(TaskID) {
252
+		layer.open({
253
+			maxmin: true, //开启最大化最小化按钮
254
+			type: 2,
255
+			content: "../OutboundMessage/Dr.html?Str=" + TaskID, //iframe的url,no代表不显示滚动条
256
+			title: '导入号码',
257
+			area: ['50%', '55%'], //宽高
258
+		});
259
+	} else {
260
+		layer.confirm('选择一个外呼计划!', {
261
+			btn: ['确定'] //按钮
262
+		});
263
+	}
264
+
265
+})
266
+
267
+function Right(TaskID) {
268
+	//销毁表格
269
+	$tableLeft1.bootstrapTable('destroy');
270
+	//初始化表格,动态从服务器加载数据
271
+	$tableLeft1.bootstrapTable({
272
+		method: "get", //使用get请求到服务器获取数据
273
+		url: huayi.config.callcenter_url + "CallOutPlan/GetList",
274
+		contentType: "application/x-www-form-urlencoded",
275
+		striped: true, //表格显示条纹
276
+		pagination: true, //启动分页
277
+		pageSize: 5, //每页显示的记录数
278
+		pageNumber: 1, //当前第几页
279
+		pageList: [5, 20, 50, 100], //记录数可选列表
280
+		search: false, //是否启用查询
281
+		showColumns: false, //显示下拉框勾选要显示的列
282
+		showRefresh: false, //显示刷新按钮
283
+		sidePagination: "server", //表示服务端请求
284
+		//设置为undefined可以获取pageNumber,pageSize,searchText,sortName,sortOrder
285
+		//设置为limit可以获取limit, offset, search, sort, order
286
+		queryParamsType: "undefined",
287
+		queryParams: function queryParams(params) { //设置查询参数
288
+			var param = {
289
+				page: params.pageNumber,
290
+				pagesize: params.pageSize,
291
+				taskid: TaskID,
292
+				custel:$('#custel').val(),
293
+				token: token
294
+			};
295
+			return param;
296
+		},
297
+		onLoadSuccess: function() { //加载成功时执行
298
+			//								layer.msg("加载成功");
299
+		},
300
+		onLoadError: function() { //加载失败时执行
301
+			//layer.msg("加载数据失败", { time: 1500, icon: 2 });
302
+		}
303
+	});
304
+}
305
+
306
+function Removes(val) {
307
+	return '<a class="" onclick="Re(' + val + ')">删除</a>'
308
+}
309
+
310
+function Re(str) {
311
+	layer.confirm('确定删除?', {
312
+		btn: ['是', '否'] //按钮
313
+	}, function() {
314
+		/*发送请求*/
315
+		$.ajax({
316
+			type: "post",
317
+			url: huayi.config.callcenter_url + "CallOutPlan/DeleteTels",
318
+			dataType: 'json',
319
+			data: {
320
+				ids: str,
321
+				token: token
322
+			},
323
+			async: true,
324
+			success: function(data) {
325
+				if(data.state == "success") {
326
+
327
+					layer.msg("删除成功");
328
+					$tableLeft1.bootstrapTable('refresh');
329
+				}
330
+
331
+			}
332
+		});
333
+	});
334
+}
335
+
336
+/*删除内容*/
337
+$(".RemoveDr").click(function() {
338
+	var ids = $.map($('#tb2').bootstrapTable('getSelections'),
339
+		function(row) {
340
+			return row.F_Id;
341
+		});
342
+	/*判断长度*/
343
+	if(ids.length <= 0) {
344
+		layer.confirm('没有可删除的选项?', {
345
+			btn: ['确定'] //按钮
346
+		});
347
+		return;
348
+	}
349
+	remove();
350
+});
351
+
352
+/*删除提示*/
353
+function remove() {
354
+	layer.confirm('确定删除当前记录?', {
355
+		btn: ['是', '否'] //按钮
356
+	}, function() {
357
+
358
+		/*执行删除*/
359
+		var ids = $.map($('#tb2').bootstrapTable('getSelections'),
360
+			function(row) {
361
+				return row.F_Id;
362
+			});
363
+		/*发送请求*/
364
+		$.post(huayi.config.callcenter_url + "CallOutPlan/DeleteTels", {
365
+			ids: ids,
366
+			token: token
367
+		}, function(result) {
368
+			result = JSON.parse(result);
369
+			if(result.state.toLowerCase() == "success") {
370
+				layer.msg("删除成功");
371
+				$tableLeft1.bootstrapTable('refresh');
372
+			}
373
+		})
374
+	});
375
+}

+ 294 - 0
CallCenterWeb.UI/js/autosize/autosize.js

@@ -0,0 +1,294 @@
1
+/*!
2
+	Autosize 4.0.0
3
+	license: MIT
4
+	http://www.jacklmoore.com/autosize
5
+autosize($('textarea'));
6
+* */
7
+
8
+(function (global, factory) {
9
+	if (typeof define === 'function' && define.amd) {
10
+		define(['exports', 'module'], factory);
11
+	} else if (typeof exports !== 'undefined' && typeof module !== 'undefined') {
12
+		factory(exports, module);
13
+	} else {
14
+		var mod = {
15
+			exports: {}
16
+		};
17
+		factory(mod.exports, mod);
18
+		global.autosize = mod.exports;
19
+	}
20
+})(this, function (exports, module) {
21
+	'use strict';
22
+
23
+	var map = typeof Map === "function" ? new Map() : (function () {
24
+		var keys = [];
25
+		var values = [];
26
+
27
+		return {
28
+			has: function has(key) {
29
+				return keys.indexOf(key) > -1;
30
+			},
31
+			get: function get(key) {
32
+				return values[keys.indexOf(key)];
33
+			},
34
+			set: function set(key, value) {
35
+				if (keys.indexOf(key) === -1) {
36
+					keys.push(key);
37
+					values.push(value);
38
+				}
39
+			},
40
+			'delete': function _delete(key) {
41
+				var index = keys.indexOf(key);
42
+				if (index > -1) {
43
+					keys.splice(index, 1);
44
+					values.splice(index, 1);
45
+				}
46
+			}
47
+		};
48
+	})();
49
+
50
+	var createEvent = function createEvent(name) {
51
+		return new Event(name, { bubbles: true });
52
+	};
53
+	try {
54
+		new Event('test');
55
+	} catch (e) {
56
+		// IE does not support `new Event()`
57
+		createEvent = function (name) {
58
+			var evt = document.createEvent('Event');
59
+			evt.initEvent(name, true, false);
60
+			return evt;
61
+		};
62
+	}
63
+
64
+	function assign(ta) {
65
+		if (!ta || !ta.nodeName || ta.nodeName !== 'TEXTAREA' || map.has(ta)) return;
66
+
67
+		var heightOffset = null;
68
+		var clientWidth = ta.clientWidth;
69
+		var cachedHeight = null;
70
+
71
+		function init() {
72
+			var style = window.getComputedStyle(ta, null);
73
+
74
+			if (style.resize === 'vertical') {
75
+				ta.style.resize = 'none';
76
+			} else if (style.resize === 'both') {
77
+				ta.style.resize = 'horizontal';
78
+			}
79
+
80
+			if (style.boxSizing === 'content-box') {
81
+				heightOffset = -(parseFloat(style.paddingTop) + parseFloat(style.paddingBottom));
82
+			} else {
83
+				heightOffset = parseFloat(style.borderTopWidth) + parseFloat(style.borderBottomWidth);
84
+			}
85
+			// Fix when a textarea is not on document body and heightOffset is Not a Number
86
+			if (isNaN(heightOffset)) {
87
+				heightOffset = 0;
88
+			}
89
+
90
+			update();
91
+		}
92
+
93
+		function changeOverflow(value) {
94
+			{
95
+				// Chrome/Safari-specific fix:
96
+				// When the textarea y-overflow is hidden, Chrome/Safari do not reflow the text to account for the space
97
+				// made available by removing the scrollbar. The following forces the necessary text reflow.
98
+				var width = ta.style.width;
99
+				ta.style.width = '0px';
100
+				// Force reflow:
101
+				/* jshint ignore:start */
102
+				ta.offsetWidth;
103
+				/* jshint ignore:end */
104
+				ta.style.width = width;
105
+			}
106
+
107
+			ta.style.overflowY = value;
108
+		}
109
+
110
+		function getParentOverflows(el) {
111
+			var arr = [];
112
+
113
+			while (el && el.parentNode && el.parentNode instanceof Element) {
114
+				if (el.parentNode.scrollTop) {
115
+					arr.push({
116
+						node: el.parentNode,
117
+						scrollTop: el.parentNode.scrollTop
118
+					});
119
+				}
120
+				el = el.parentNode;
121
+			}
122
+
123
+			return arr;
124
+		}
125
+
126
+		function resize() {
127
+			var originalHeight = ta.style.height;
128
+			var overflows = getParentOverflows(ta);
129
+			var docTop = document.documentElement && document.documentElement.scrollTop; // Needed for Mobile IE (ticket #240)
130
+
131
+			ta.style.height = '';
132
+
133
+			var endHeight = ta.scrollHeight + heightOffset;
134
+
135
+			if (ta.scrollHeight === 0) {
136
+				// If the scrollHeight is 0, then the element probably has display:none or is detached from the DOM.
137
+				ta.style.height = originalHeight;
138
+				return;
139
+			}
140
+
141
+			ta.style.height = endHeight + 'px';
142
+
143
+			// used to check if an update is actually necessary on window.resize
144
+			clientWidth = ta.clientWidth;
145
+
146
+			// prevents scroll-position jumping
147
+			overflows.forEach(function (el) {
148
+				el.node.scrollTop = el.scrollTop;
149
+			});
150
+
151
+			if (docTop) {
152
+				document.documentElement.scrollTop = docTop;
153
+			}
154
+		}
155
+
156
+		function update() {
157
+			resize();
158
+
159
+			var styleHeight = Math.round(parseFloat(ta.style.height));
160
+			var computed = window.getComputedStyle(ta, null);
161
+
162
+			// Using offsetHeight as a replacement for computed.height in IE, because IE does not account use of border-box
163
+			var actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(computed.height)) : ta.offsetHeight;
164
+
165
+			// The actual height not matching the style height (set via the resize method) indicates that
166
+			// the max-height has been exceeded, in which case the overflow should be allowed.
167
+			if (actualHeight !== styleHeight) {
168
+				if (computed.overflowY === 'hidden') {
169
+					changeOverflow('scroll');
170
+					resize();
171
+					actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;
172
+				}
173
+			} else {
174
+				// Normally keep overflow set to hidden, to avoid flash of scrollbar as the textarea expands.
175
+				if (computed.overflowY !== 'hidden') {
176
+					changeOverflow('hidden');
177
+					resize();
178
+					actualHeight = computed.boxSizing === 'content-box' ? Math.round(parseFloat(window.getComputedStyle(ta, null).height)) : ta.offsetHeight;
179
+				}
180
+			}
181
+
182
+			if (cachedHeight !== actualHeight) {
183
+				cachedHeight = actualHeight;
184
+				var evt = createEvent('autosize:resized');
185
+				try {
186
+					ta.dispatchEvent(evt);
187
+				} catch (err) {
188
+					// Firefox will throw an error on dispatchEvent for a detached element
189
+					// https://bugzilla.mozilla.org/show_bug.cgi?id=889376
190
+				}
191
+			}
192
+		}
193
+
194
+		var pageResize = function pageResize() {
195
+			if (ta.clientWidth !== clientWidth) {
196
+				update();
197
+			}
198
+		};
199
+
200
+		var destroy = (function (style) {
201
+			window.removeEventListener('resize', pageResize, false);
202
+			ta.removeEventListener('input', update, false);
203
+			ta.removeEventListener('keyup', update, false);
204
+			ta.removeEventListener('autosize:destroy', destroy, false);
205
+			ta.removeEventListener('autosize:update', update, false);
206
+
207
+			Object.keys(style).forEach(function (key) {
208
+				ta.style[key] = style[key];
209
+			});
210
+
211
+			map['delete'](ta);
212
+		}).bind(ta, {
213
+			height: ta.style.height,
214
+			resize: ta.style.resize,
215
+			overflowY: ta.style.overflowY,
216
+			overflowX: ta.style.overflowX,
217
+			wordWrap: ta.style.wordWrap
218
+		});
219
+
220
+		ta.addEventListener('autosize:destroy', destroy, false);
221
+
222
+		// IE9 does not fire onpropertychange or oninput for deletions,
223
+		// so binding to onkeyup to catch most of those events.
224
+		// There is no way that I know of to detect something like 'cut' in IE9.
225
+		if ('onpropertychange' in ta && 'oninput' in ta) {
226
+			ta.addEventListener('keyup', update, false);
227
+		}
228
+
229
+		window.addEventListener('resize', pageResize, false);
230
+		ta.addEventListener('input', update, false);
231
+		ta.addEventListener('autosize:update', update, false);
232
+		ta.style.overflowX = 'hidden';
233
+		ta.style.wordWrap = 'break-word';
234
+
235
+		map.set(ta, {
236
+			destroy: destroy,
237
+			update: update
238
+		});
239
+
240
+		init();
241
+	}
242
+
243
+	function destroy(ta) {
244
+		var methods = map.get(ta);
245
+		if (methods) {
246
+			methods.destroy();
247
+		}
248
+	}
249
+
250
+	function update(ta) {
251
+		var methods = map.get(ta);
252
+		if (methods) {
253
+			methods.update();
254
+		}
255
+	}
256
+
257
+	var autosize = null;
258
+
259
+	// Do nothing in Node.js environment and IE8 (or lower)
260
+	if (typeof window === 'undefined' || typeof window.getComputedStyle !== 'function') {
261
+		autosize = function (el) {
262
+			return el;
263
+		};
264
+		autosize.destroy = function (el) {
265
+			return el;
266
+		};
267
+		autosize.update = function (el) {
268
+			return el;
269
+		};
270
+	} else {
271
+		autosize = function (el, options) {
272
+			if (el) {
273
+				Array.prototype.forEach.call(el.length ? el : [el], function (x) {
274
+					return assign(x, options);
275
+				});
276
+			}
277
+			return el;
278
+		};
279
+		autosize.destroy = function (el) {
280
+			if (el) {
281
+				Array.prototype.forEach.call(el.length ? el : [el], destroy);
282
+			}
283
+			return el;
284
+		};
285
+		autosize.update = function (el) {
286
+			if (el) {
287
+				Array.prototype.forEach.call(el.length ? el : [el], update);
288
+			}
289
+			return el;
290
+		};
291
+	}
292
+
293
+	module.exports = autosize;
294
+});

Разница между файлами не показана из-за своего большого размера
+ 6 - 0
CallCenterWeb.UI/js/autosize/autosize.min.js