Ver Código Fonte

页面调整

jinquanwu 6 anos atrás
pai
commit
bd435eebed

+ 225 - 10
CallCenterWeb.UI/WorkOrder/AddWorkOrder.html

@@ -10,7 +10,182 @@
10 10
 		<link href="../js/bootstrap-select/css/bootstrap-select.css" rel="stylesheet" />
11 11
 		<link rel="stylesheet" type="text/css" href="../js/bootstrap-treeview/bootstrap-treeview.min.css" />
12 12
 		<link href="../callScreen/css/call.css" rel="stylesheet" />
13
+		<link rel="stylesheet" href="../js/webuploader/webuploader.css" />
13 14
 		<link href="../css/init.css" rel="stylesheet" />
15
+		<style type="text/css">
16
+			i.tub {
17
+				position: absolute;
18
+				right: 180px;
19
+				top: 8px;
20
+				font-size: 18px;
21
+				color: #1ab494;
22
+			}
23
+			
24
+			.tub+input {
25
+				padding-right: 30px;
26
+			}
27
+			/* 附件开始 */
28
+			.file_imgs {
29
+				padding: 10px 70px;
30
+				list-style: none;
31
+				margin-bottom: 60px;
32
+				margin-left: -15px;
33
+			}
34
+			
35
+			.file_imgs li {
36
+				float: left;
37
+				position: relative;
38
+				width: 109px;
39
+				height: 109px;
40
+				margin-left: 10px;
41
+				margin-right: 10px;
42
+				margin-bottom: 40px;
43
+				padding-top: 0;
44
+				padding-bottom: 0;
45
+			}
46
+			
47
+			.file_imgs li:hover .img_mask {
48
+				display: block;
49
+			}
50
+			
51
+			.file_imgs .img_mask {
52
+				display: none;
53
+				position: absolute;
54
+				left: 0;
55
+				top: 0;
56
+				background-color: rgba(0, 0, 0, .3);
57
+				width: 100%;
58
+				height: 22px;
59
+				z-index: 1;
60
+			}
61
+			
62
+			.file_imgs .img_mask i {
63
+				position: absolute;
64
+				right: 5px;
65
+				top: 5px;
66
+				display: inline-block;
67
+				width: 13px;
68
+				height: 12px;
69
+				cursor: pointer;
70
+				background: url(../img/file_img_icons.png) no-repeat 0 0;
71
+			}
72
+			
73
+			.file_imgs .file_name {
74
+				width: 100%;
75
+				display: inline-block;
76
+				text-align: center;
77
+				
78
+				word-break: break-all;
79
+				padding-top: 8px;
80
+			}
81
+			
82
+			.file_imgs li img {
83
+				width: 100%;
84
+				height: 100%;
85
+				border: 0;
86
+				vertical-align: middle;
87
+			}
88
+			
89
+			.file_imgs .upload-state-done .img_state {
90
+				display: block;
91
+				position: absolute;
92
+				right: 7px;
93
+				bottom: 29px;
94
+				width: 0;
95
+				height: 0;
96
+				border-bottom: 40px solid #01b2fe;
97
+				border-left: 40px solid transparent;
98
+				overflow: inherit;
99
+			}
100
+			
101
+			.file_imgs .img_state i {
102
+				position: absolute;
103
+				right: 4px;
104
+				bottom: -32px;
105
+				display: inline-block;
106
+				width: 15px;
107
+				height: 11px;
108
+				background: url(../../img/file_img_icons.png) no-repeat 0 -16px;
109
+			}
110
+			
111
+			.error {
112
+				color: red;
113
+				text-align: center;
114
+			}
115
+			
116
+			.noThumb {
117
+				width: 109px;
118
+				height: 83px;
119
+				text-align: center;
120
+				color: #1aaad0;
121
+			}
122
+			
123
+			.glyphicon.glyphicon-paperclip {
124
+				font-size: 44px;
125
+				text-align: center;
126
+			}
127
+			
128
+			.img-box {
129
+				float: left;
130
+				width: 120px;
131
+				height: 120px;
132
+				background-size: 100% 100%;
133
+				display: inline-block;
134
+				position: relative;
135
+				border-radius: 5px;
136
+				margin-right: 10px;
137
+				border: solid 1px #e8e8e8;
138
+				cursor: pointer;
139
+				text-align: center;
140
+				line-height: 120px
141
+			}
142
+			
143
+			.img-box .img_mask {
144
+				display: none;
145
+				position: absolute;
146
+				left: 0;
147
+				top: 0;
148
+				background-color: rgba(0, 0, 0, .3);
149
+				width: 100%;
150
+				height: 22px;
151
+				z-index: 5;
152
+			}
153
+			
154
+			.image-item {
155
+				width: 120px;
156
+				height: 120px;
157
+				background-size: 100% 100%;
158
+				display: inline-block;
159
+				position: relative;
160
+				border-radius: 5px;
161
+				margin-right: 10px;
162
+			
163
+				cursor: pointer;
164
+			}
165
+			
166
+			.img-box .img_mask i {
167
+				position: absolute;
168
+				right: 5px;
169
+				top: 5px;
170
+				display: inline-block;
171
+				width: 13px;
172
+				height: 12px;
173
+				cursor: pointer;
174
+				color: #fff;
175
+			}
176
+			
177
+			.img-box:hover .img_mask {
178
+				display: block;
179
+			}
180
+			
181
+			.img_filename{
182
+				font-size: 14px;
183
+				/* display: block; */
184
+			  width: 100%;
185
+			  height: calc(100% - 22px);
186
+			} 
187
+			/* 附件结束 */
188
+		</style>
14 189
 	</head>
15 190
 
16 191
 	<body class="gray-bg">
@@ -33,37 +208,75 @@
33 208
 								<option value="0">请选择工单来源</option>
34 209
 							</select>
35 210
 						</div>
36
-						<div class="form-group col-md-4 clearfix">
211
+						<div class="form-group col-md-5 clearfix">
37 212
 							<label class="col-md-2">工单类型:</label>
38 213
 							<div id="order_type" class="col-md-6 r_order_type">
39 214
 	
40 215
 							</div>
41 216
 						</div>
42
-						<div class="form-group col-md-4" id="order_handles">
217
+						<!-- <div class="form-group col-md-4" id="order_handles">
43 218
 							<label for="order_handle">业务办理:</label>
44 219
 							<select class="form-control input-sm selectpicker" id="order_handle" data-live-search="true">
45 220
 								<option value="0">请选择业务办理</option>
46 221
 							</select>
222
+						</div> -->
223
+						<div class="form-group col-md-4" id="order_handles">
224
+							<label for="order_handle">工单子类:</label>
225
+							<select class="form-control input-sm selectpicker" id="order_godant" data-live-search="true">
226
+								<option value="0">请选择工单子类</option>
227
+								<option value="管道泡水">管道泡水</option>
228
+								<option value="闸井设施">闸井设施</option>
229
+								<option value="表井设施">表井设施</option>
230
+								<option value="消防设施">消防设施</option>
231
+								<option value="水压低">水压低</option>
232
+								<option value="无水">无水</option>
233
+								<option value="水费水量">水费水量</option>
234
+								<option value="停水复装">停水复装</option>
235
+								<option value="水质">水质</option>
236
+								<option value="表位插花">表位插花</option>
237
+								<option value="户表安装">户表安装</option>
238
+								<option value="违章用水">违章用水</option>
239
+								<option value="水域不洁">水域不洁</option>
240
+								<option value="施工围挡">施工围挡</option>
241
+								<option value="垃圾渣土">垃圾渣土</option>
242
+								<option value="道路破损">道路破损</option>
243
+								<option value="其他">其他</option>
244
+							</select>
245
+						</div>
246
+						<div class="form-group col-md-4">
247
+							<label for="order_name">截止日期:</label>
248
+							<i class="tub fa fa-calendar"></i>
249
+							<input class="form-control search_time" type="text" id="sc_time" placeholder="请选择截止时间">
47 250
 						</div>
48 251
 					</div>
49 252
 					<div class="col-md-12 row">
50 253
 						<div class="form-group col-md-4">
51
-							<label for="order_name"><b class="text-red">*</b>客户姓名:</label>
254
+							<label for="order_name">客户姓名:</label>
52 255
 							<input type="text" class="form-control input-sm" id="order_name" placeholder="请输入客户姓名">
53 256
 						</div>
54 257
 						<div class="form-group col-md-4">
55
-							<label for="order_tel"><b class="text-red">*</b>联系电话:</label>
258
+							<label for="order_tel">联系电话:</label>
56 259
 							<input type="text" class="form-control input-sm" id="order_tel" placeholder="请输入联系电话">
57 260
 						</div>
58
-						<div class="form-group col-md-4">
59
-							<label for="order_company"><b class="text-red">*</b>公司名称:</label>
261
+						<!-- <div class="form-group col-md-4">
262
+							<label for="order_company">公司名称:</label>
60 263
 							<input type="text" class="form-control input-sm" id="order_company" placeholder="请输入公司名称">
61
-						</div>
264
+						</div> -->
265
+						
62 266
 					</div>
63 267
 					<div class="form-group col-md-12">
64 268
 						<label for="order_reception">反馈内容:</label>
65 269
 						<textarea id="order_reception" rows="3" cols="20" class="form-control" placeholder="请输入反馈内容"></textarea>
66 270
 					</div>
271
+					<div class=" form-group col-md-12 " style="margin:20px 0 0 -15px;">
272
+						<label class="col-md-2" >附件:</label>
273
+						<div id="imgPicker" class="apply_forms_file">+</div>
274
+							<p class="help-block text-warning" style="display:inline-block;">
275
+								<span id="fileNum">0</span>/6 每个文件大小不超过30M
276
+							</p>
277
+							<ul id="fileList" class="file_imgs clearfix">
278
+							</ul>
279
+					</div>
67 280
 					<div class="form-group col-md-8 clearfix">
68 281
 						<label class="col-md-2">工单有效性:</label>
69 282
 						<div id="order_iseffective" class="r_order_type col-md-6">
@@ -76,7 +289,7 @@
76 289
 						</div>
77 290
 					</div>
78 291
 					<div class="form-group col-md-12 order_note">
79
-						<label for="order_note"><b class="text-red">*</b>无效原因:</label>
292
+						<label for="order_note">无效原因:</label>
80 293
 						<textarea id="order_note" rows="3" cols="20" class="form-control" placeholder="请输入无效原因"></textarea>
81 294
 					</div>
82 295
 					
@@ -99,12 +312,12 @@
99 312
 							<span class="caret"></span>
100 313
 							<div id="reginsTreeView" class="hidden"></div>
101 314
 						</div>
102
-						<div class="form-group col-md-4">
315
+						<!-- <div class="form-group col-md-4">
103 316
 							<label for="order_receiveUser">接收人:</label>
104 317
 							<select class="form-control input-sm selectpicker" id="order_receiveUser" data-live-search="true">
105 318
 								<option value="0">请选择接收人</option>
106 319
 							</select>
107
-						</div>
320
+						</div> -->
108 321
 					</div>
109 322
 					
110 323
 					<div class="form-group text-center col-sm-12">
@@ -119,6 +332,8 @@
119 332
 		<script src="../js/bootstrap-select/js/i18n/defaults-zh_CN.js"></script>
120 333
 		<script src="../js/bootstrap-treeview/bootstrap-treeview.min.js"></script>
121 334
 		<script src="../Script/Common/regexs.js"></script>
335
+		<script src="../js/laydate/laydate.js"></script>
336
+		<script src="../js/webuploader/webuploader.min.js"></script>
122 337
 		<script src="../js/WorkOrder/AddWorkOrder.js"></script>
123 338
 	</body>
124 339
 

+ 386 - 3
CallCenterWeb.UI/callScreen/call.js

@@ -19,8 +19,8 @@ $(function() {
19 19
 	//初始化一些数据
20 20
 	$(".hidCallID").val(CallID);
21 21
 
22
-	$(".tel").text(helper.filter.cutTel(phoneNumber)); //左侧来电号码
23
-	$("#order_tel").val(helper.filter.cutTel(phoneNumber)); //右侧工单电话
22
+	$(".tel").text(phoneNumber); //左侧来电号码
23
+	$("#order_tel").val(phoneNumber); //右侧工单电话
24 24
 
25 25
 	$(".ldtime").text(top.getNowFormatDate()); //左侧来电时间
26 26
 	$(".thsc").text("00:00"); //通话时间
@@ -48,7 +48,13 @@ $(function() {
48 48
 		theme: '#1ab394',
49 49
 		calendar: true
50 50
 	});
51
-
51
+    laydate.render({
52
+    	elem: '#sc_time',
53
+    	// range: '~',
54
+		type: 'datetime',
55
+    	theme: '#1ab394',
56
+    	// calendar: true
57
+    });
52 58
 	/*左侧 部分*/
53 59
 
54 60
 	//获取电话所属地
@@ -1111,3 +1117,380 @@ function calloutopt(telphone) {
1111 1117
 		});
1112 1118
 	}
1113 1119
 }
1120
+
1121
+
1122
+
1123
+
1124
+/**
1125
+ * 附件上传直接在知识库管理拿来用     开始
1126
+ * */
1127
+
1128
+var proimglist = []; //保存附件数组
1129
+var uploader; //上传实例
1130
+var limitNum = 6; //限制数量
1131
+var edit_id = helper.request.queryString("edit_id");
1132
+var token = $.cookie("token");
1133
+
1134
+$(function() {
1135
+	autosize($('textarea'));
1136
+	getChangeTree();
1137
+	if(edit_id) {
1138
+		getDetail();
1139
+	} else {
1140
+		$('#kn_type').val('顶级分类');
1141
+		$('#kn_type').attr('data-id', 0)
1142
+		uploaderImages();
1143
+	}
1144
+	//初始化 下拉
1145
+	$('.inps1').focus(function() {
1146
+		$('.xlAdd').css('display', 'block');
1147
+	});
1148
+	$('.xl_one').click(function() {
1149
+		if($('.xlAdd').css('display') == 'block') {
1150
+			$('.xlAdd').css('display', 'none')
1151
+		} else {
1152
+			$('.xlAdd').css('display', 'block')
1153
+		}
1154
+	});
1155
+	$('.addTree').mouseleave(function() {
1156
+		$(this).css('display', 'none')
1157
+	});
1158
+	
1159
+	$('#save_knowledge').on('click', saveKnowledge);
1160
+});
1161
+
1162
+
1163
+
1164
+//修改弹出框内 下拉树形图参数配置项
1165
+function getChangeTree() {
1166
+	var setting3 = {
1167
+		data: {
1168
+			key: {
1169
+				name: "text"
1170
+			},
1171
+			simpleData: {
1172
+				enable: true,
1173
+				idKey: "id",
1174
+				rootPId: 0
1175
+			}
1176
+		},
1177
+		callback: {
1178
+			onClick: changeTreeClick
1179
+		}
1180
+	}
1181
+	$.get(huayi.config.callcenter_url + 'KnowledgeClass/GetList', {
1182
+//		"pid": pid,
1183
+		"token": token,
1184
+	}, function(result) {
1185
+		result = $.parseJSON(result);
1186
+		$.fn.zTree.init($("#addTreeDemo"), setting3, result.data); //实例化树形图
1187
+	});
1188
+}
1189
+
1190
+function changeTreeClick(event, treeId, treeNode) {
1191
+	$('#kn_type').val(treeNode.text);
1192
+	$('#kn_type').attr('data-id', treeNode.id);
1193
+};
1194
+
1195
+//获取详情
1196
+function getDetail() {
1197
+	var dtd = $.Deferred(); //在函数内部,新建一个Deferred对象
1198
+	$.ajax({
1199
+		type: "post",
1200
+		url: huayi.config.callcenter_url + "Knowledge/GetInfo",
1201
+		async: true,
1202
+		dataType: 'json',
1203
+		data: {
1204
+			infoid: edit_id,
1205
+			token: token
1206
+		},
1207
+		success: function(data) {
1208
+			var con = data.data;
1209
+			$('#kn_title').val(con.F_Title);
1210
+			$('#kn_key').val(con.F_KeyWords);
1211
+			$('#kn_content').val(con.F_Description);
1212
+			$('#kn_type').val(con.F_Expand1);
1213
+			$('#kn_type').attr('data-id', con.F_CategoryId);
1214
+
1215
+			//附件
1216
+			var proimglists = con.FileUrls;
1217
+			proimglists = proimglists == null ? [] : proimglists;
1218
+			limitNum -= proimglists.length;
1219
+			uploaderImages(); //附件上传
1220
+			if(proimglists.length > 0) {
1221
+				$('#fileNum').text(proimglists.length);
1222
+				var $list = $("#fileList");
1223
+				$.each(proimglists, function(i, v) {
1224
+					proimglist.push(v.F_FileId);
1225
+					if(v.F_FileType.split("\/")[0] === 'image') {
1226
+						//原来的图片
1227
+						var $li = $(
1228
+							'<li><span class="img_mask"><i class="img_del"></i></span>' +
1229
+							'<img src="' + v.F_FileUrl + '" title="原来的图片"/>' +
1230
+							'<span class="file_name">' + v.F_FileName + '</span>' +
1231
+							'</li>'
1232
+						);
1233
+						$list.append($li);
1234
+					} else {
1235
+						var $liFile = $(
1236
+							'<li><span class="img_mask"><i class="img_del"></i></span>' +
1237
+							'<div class="noThumb" title="原来的文件"><i class="glyphicon glyphicon-paperclip"></i><p>无法预览</p></div>' +
1238
+							'<span class="file_name">' + v.F_FileName + '</span>' +
1239
+							'</li>'
1240
+						);
1241
+						$list.append($liFile);
1242
+					}
1243
+				});
1244
+				$list.find('li').off('click');
1245
+				$list.find('li').on('click', '.img_del', function() {
1246
+					$(this).parent().parent().remove();
1247
+					var itemFileName = $(this).parent().parent().find('.file_name').text();
1248
+					$.each(proimglists, function(i, v) {
1249
+						if(v && v.F_FileName == itemFileName) {
1250
+							proimglist.splice(i, 1);
1251
+						}
1252
+					});
1253
+					$('#fileNum').text(proimglist.length);
1254
+					limitNum = 6 - proimglist.length;
1255
+					uploaderImages();
1256
+				});
1257
+			}
1258
+			dtd.resolve(); // 改变Deferred对象的执行状态
1259
+		}
1260
+	});
1261
+	return dtd.promise(); // 返回promise对象
1262
+}
1263
+
1264
+//保存
1265
+function saveKnowledge() {
1266
+	var wUrl;
1267
+	if(!$.trim($('#kn_type').val())) {
1268
+		layer.confirm('所属分类不能为空', {
1269
+			icon: 2,
1270
+			btn: ['确定'] //按钮
1271
+		});
1272
+		return;
1273
+	}
1274
+	
1275
+	if(!$.trim($('#kn_title').val())) {
1276
+		layer.confirm('标题不能为空', {
1277
+			icon: 2,
1278
+			btn: ['确定'] //按钮
1279
+		});
1280
+		return;
1281
+	}
1282
+	
1283
+	if(edit_id) {
1284
+		wURL = "Knowledge/EditInfo";
1285
+	} else {
1286
+		wURL = "Knowledge/AddInfo";
1287
+	}
1288
+	$.ajax({
1289
+		type: "post",
1290
+		url: huayi.config.callcenter_url + wURL,
1291
+		dataType: 'json',
1292
+		async: true,
1293
+		beforeSend: function() { //触发ajax请求开始时执行
1294
+			$('#save_knowledge').attr("disabled", true);
1295
+			$('#save_knowledge').text('保存中...');
1296
+			$(document).off('click', '#save_knowledge', saveKnowledge);
1297
+			loadIndex = layer.load();
1298
+		},
1299
+		data: {
1300
+			infoid: edit_id,
1301
+			title: $('#kn_title').val(),
1302
+			key: $('#kn_key').val(),
1303
+			con: helper.filter.delHtmlTag($('#kn_content').val()),
1304
+			pid: $('#kn_type').attr('data-id'),
1305
+			fileids: proimglist && proimglist.join(','),
1306
+			token: token
1307
+		},
1308
+		success: function(result) {
1309
+			if(result.state.toLowerCase() === "success") {
1310
+				var index = parent.layer.getFrameIndex(window.name);
1311
+				parent.layer.close(index);
1312
+				parent.table.bootstrapTable('refresh');
1313
+				layer.msg("保存成功");
1314
+			}
1315
+		},
1316
+		error: function(textStatus) {
1317
+			layer.close(loadIndex);
1318
+			layer.confirm('网络繁忙,请稍后再试...', {
1319
+				icon: 7,
1320
+				closeBtn: 0,
1321
+				btn: ['确定'] //按钮
1322
+			});
1323
+			$('#save_knowledge').text('保存');
1324
+			$('#save_knowledge').attr("disabled", false);
1325
+			$(document).off('click', '#save_knowledge', saveKnowledge);
1326
+			$(document).on('click', '#save_knowledge', saveKnowledge);
1327
+		},
1328
+		complete: function(XMLHttpRequest, textStatus) {
1329
+			layer.close(loadIndex);
1330
+			if(textStatus == 'timeout') {
1331
+				var xmlhttp = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHttp");
1332
+				xmlhttp.abort();
1333
+				layer.confirm('网络超时,请稍后再试...', {
1334
+					icon: 7,
1335
+					closeBtn: 0,
1336
+					btn: ['确定'] //按钮
1337
+				});    
1338
+			}
1339
+			$('#save_knowledge').text('保存');
1340
+			$('#save_knowledge').attr("disabled", false);
1341
+			$(document).off('click', '#save_knowledge', saveKnowledge);
1342
+			$(document).on('click', '#save_knowledge', saveKnowledge);
1343
+		},
1344
+	});
1345
+}
1346
+
1347
+//上传附件
1348
+function uploaderImages() {
1349
+	if(uploader) {
1350
+		uploader.destroy();
1351
+	}
1352
+	uploader = WebUploader.create({
1353
+		auto: true, // 选完文件后,是否自动上传 
1354
+		swf: '../../js/webuploader/Uploader.swf', // swf文件路径 
1355
+		server: huayi.config.callcenter_url + "Knowledge/UpLoadProcess", // 文件接收服务端 
1356
+		pick: '#imgPicker', // 选择文件的按钮。可选 
1357
+		formData: {
1358
+			token: token
1359
+		},
1360
+		// 多类型文件上传 
1361
+		accept: {
1362
+			title: 'Files',
1363
+			extensions: 'gif,jpg,jpeg,bmp,png,pdf,doc,docx,txt,xls,xlsx,ppt,pptx,zip,mp3,mp4,text,csv',
1364
+			mimeTypes: 'image/*,text/*,audio/mpeg,audio/mp4, video/mp4'
1365
+					//word
1366
+			+',application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document'
1367
+					//excel
1368
+			+',application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
1369
+					//ppt
1370
+			+',application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation'
1371
+			+',application/pdf'
1372
+			+',application/zip'
1373
+			+',application/csv'
1374
+			//			title: 'Images',
1375
+			//			extensions: 'gif,jpg,jpeg,bmp,png',
1376
+			//			mimeTypes: 'image/*'
1377
+		},
1378
+		compress: false, //webuploader默认压缩图片,设置compress:false,可以按照原始比例上传图片  
1379
+		//fileVal: "upFile",//设置文件上传域的name。  
1380
+		threads: limitNum, //上传并发数。允许同时最大上传进程数,为了保证文件上传顺序  
1381
+		fileNumLimit: limitNum,
1382
+		fileSizeLimit: 180 * 1024 * 1024, // 180 M
1383
+		fileSingleSizeLimit: 30 * 1024 * 1024 // 30 M
1384
+	});
1385
+
1386
+	uploader.on('fileQueued', function(file) {
1387
+		var $list = $("#fileList"),
1388
+			$li = $(
1389
+				'<li id="' + file.id + '"><span class="img_mask"><i class="img_del"></i></span>' +
1390
+				'<img/>' +
1391
+				'<span class="img_state"><i></i></span>' +
1392
+				'<span class="file_name">' + file.name + '</span>' +
1393
+				'</li>'
1394
+			),
1395
+			$img = $li.find('img');
1396
+
1397
+		// $list为容器jQuery实例 
1398
+		$list.append($li);
1399
+
1400
+		// 保存缩略图 
1401
+		uploader.makeThumb(file, function(error, src) {
1402
+			if(error) {
1403
+				$img.replaceWith('<div class="noThumb"><i class="glyphicon glyphicon-paperclip"></i><p>无法预览</p></div>');
1404
+				return;
1405
+			}
1406
+			$img.attr('src', src);
1407
+		}, 109, 109); //109*109为缩略图尺寸 
1408
+
1409
+		//绑定删除
1410
+		$('#' + file.id).on('click', '.img_del', function() {
1411
+			uploader.removeFile(file);
1412
+			var $fileLi = $('#' + file.id);
1413
+			$fileLi.off().find('.img_del').off().end().remove();
1414
+			var itemFileName = $(this).parent().parent().find('.file_name').text();
1415
+			$.each(proimglist, function(i, v) {
1416
+				if(v && v.filename == itemFileName) {
1417
+					proimglist.splice(i, 1);
1418
+					//helper.methods.delImgs(v.filesmallurl, v.fileurl);
1419
+				}
1420
+			});
1421
+			$('#fileNum').text(proimglist.length);
1422
+		});
1423
+
1424
+	});
1425
+
1426
+	// 文件上传过程中保存进度条实时显示。 
1427
+	uploader.on('uploadProgress', function(file, percentage) {
1428
+		var $li = $('#' + file.id),
1429
+			$percent = $li.find('.progress span');
1430
+
1431
+		// 避免重复保存 
1432
+		if(!$percent.length) {
1433
+			$percent = $('<div class="progress" style="">' +
1434
+					'<span class="text">0%</span>' +
1435
+					'<span class="percentage"></span>' +
1436
+					'</div>')
1437
+				.appendTo($li)
1438
+				.find('span');
1439
+		}
1440
+
1441
+		$percent.eq(0).text(Math.round(percentage * 100) + '%');
1442
+		$percent.eq(1).css('width', Math.round(percentage * 100) + '%');
1443
+	});
1444
+
1445
+	// 文件上传成功,给item添加成功class, 用样式标记上传成功。 
1446
+	uploader.on('uploadSuccess', function(file, res) {
1447
+		proimglist.push(res.data.F_FileId);
1448
+		$('#fileNum').text(proimglist.length);
1449
+		$('#' + file.id).addClass('upload-state-done');
1450
+	});
1451
+
1452
+	// 文件上传失败,显示上传出错。 
1453
+	uploader.on('uploadError', function(file) {
1454
+		var $li = $('#' + file.id),
1455
+			$error = $li.find('div.error');
1456
+
1457
+		// 避免重复创建
1458
+		if(!$error.length) {
1459
+			$error = $('<div class="error"></div>').appendTo($li);
1460
+		}
1461
+
1462
+		$error.text('上传失败');
1463
+	});
1464
+
1465
+	// 完成上传完了,成功或者失败,先删除进度条。 
1466
+	uploader.on('uploadComplete', function(file) {
1467
+		$('#' + file.id).find('.progress').remove();
1468
+	});
1469
+
1470
+	uploader.onError = function(code) {
1471
+		//		console.log('Error:' + code);
1472
+		switch(code) {
1473
+			case "Q_EXCEED_NUM_LIMIT":
1474
+				layer.msg('只能上传六个文件。');
1475
+				break;
1476
+			case "Q_TYPE_DENIED":
1477
+				layer.msg('文件类型不正确。');
1478
+				break;
1479
+			case "F_DUPLICATE":
1480
+				layer.msg('该文件已上传,请选择其它文件。');
1481
+				break;
1482
+			case "F_EXCEED_SIZE":
1483
+				layer.msg('单文件大小不能超过30M。');
1484
+				break;
1485
+			case "Q_EXCEED_SIZE_LIMIT":
1486
+				layer.msg('总文件大小不能超过180M。');
1487
+				break;
1488
+			default:
1489
+				break;
1490
+		}
1491
+
1492
+	};
1493
+}
1494
+/**
1495
+ * 附件上传直接在知识库管理拿来用     结束
1496
+ * */

+ 240 - 20
CallCenterWeb.UI/callScreen/callScreen.html

@@ -8,7 +8,183 @@
8 8
 		<script src="../Script/Common/huayi.config.js"></script>
9 9
 		<link href="../js/bootstrap-select/css/bootstrap-select.css" rel="stylesheet" />
10 10
 		<link rel="stylesheet" type="text/css" href="../js/bootstrap-treeview/bootstrap-treeview.min.css" />
11
+		<!-- <link href="../css/init.css" rel="stylesheet" /> -->
11 12
 		<link rel="stylesheet" href="./css/call.css" />
13
+		<link rel="stylesheet" href="../js/webuploader/webuploader.css" />
14
+		<style type="text/css">
15
+			i.tub {
16
+				position: absolute;
17
+				right: 110px;
18
+				top: 8px;
19
+				font-size: 18px;
20
+				color: #1ab494;
21
+			}
22
+			
23
+			.tub+input {
24
+				padding-right: 30px;
25
+			}
26
+			/* 附件开始 */
27
+			.file_imgs {
28
+				padding: 10px 70px;
29
+				list-style: none;
30
+				margin-bottom: 60px;
31
+				margin-left: -15px;
32
+			}
33
+			
34
+			.file_imgs li {
35
+				float: left;
36
+				position: relative;
37
+				width: 109px;
38
+				height: 109px;
39
+				margin-left: 10px;
40
+				margin-right: 10px;
41
+				margin-bottom: 40px;
42
+				padding-top: 0;
43
+				padding-bottom: 0;
44
+			}
45
+			
46
+			.file_imgs li:hover .img_mask {
47
+				display: block;
48
+			}
49
+			
50
+			.file_imgs .img_mask {
51
+				display: none;
52
+				position: absolute;
53
+				left: 0;
54
+				top: 0;
55
+				background-color: rgba(0, 0, 0, .3);
56
+				width: 100%;
57
+				height: 22px;
58
+				z-index: 1;
59
+			}
60
+			
61
+			.file_imgs .img_mask i {
62
+				position: absolute;
63
+				right: 5px;
64
+				top: 5px;
65
+				display: inline-block;
66
+				width: 13px;
67
+				height: 12px;
68
+				cursor: pointer;
69
+				background: url(../img/file_img_icons.png) no-repeat 0 0;
70
+			}
71
+			
72
+			.file_imgs .file_name {
73
+				width: 100%;
74
+				display: inline-block;
75
+				text-align: center;
76
+				
77
+				word-break: break-all;
78
+				padding-top: 8px;
79
+			}
80
+			
81
+			.file_imgs li img {
82
+				width: 100%;
83
+				height: 100%;
84
+				border: 0;
85
+				vertical-align: middle;
86
+			}
87
+			
88
+			.file_imgs .upload-state-done .img_state {
89
+				display: block;
90
+				position: absolute;
91
+				right: 7px;
92
+				bottom: 29px;
93
+				width: 0;
94
+				height: 0;
95
+				border-bottom: 40px solid #01b2fe;
96
+				border-left: 40px solid transparent;
97
+				overflow: inherit;
98
+			}
99
+			
100
+			.file_imgs .img_state i {
101
+				position: absolute;
102
+				right: 4px;
103
+				bottom: -32px;
104
+				display: inline-block;
105
+				width: 15px;
106
+				height: 11px;
107
+				background: url(../../img/file_img_icons.png) no-repeat 0 -16px;
108
+			}
109
+			
110
+			.error {
111
+				color: red;
112
+				text-align: center;
113
+			}
114
+			
115
+			.noThumb {
116
+				width: 109px;
117
+				height: 83px;
118
+				text-align: center;
119
+				color: #1aaad0;
120
+			}
121
+			
122
+			.glyphicon.glyphicon-paperclip {
123
+				font-size: 44px;
124
+				text-align: center;
125
+			}
126
+			
127
+			.img-box {
128
+				float: left;
129
+				width: 120px;
130
+				height: 120px;
131
+				background-size: 100% 100%;
132
+				display: inline-block;
133
+				position: relative;
134
+				border-radius: 5px;
135
+				margin-right: 10px;
136
+				border: solid 1px #e8e8e8;
137
+				cursor: pointer;
138
+				text-align: center;
139
+				line-height: 120px
140
+			}
141
+			
142
+			.img-box .img_mask {
143
+				display: none;
144
+				position: absolute;
145
+				left: 0;
146
+				top: 0;
147
+				background-color: rgba(0, 0, 0, .3);
148
+				width: 100%;
149
+				height: 22px;
150
+				z-index: 5;
151
+			}
152
+			
153
+			.image-item {
154
+				width: 120px;
155
+				height: 120px;
156
+				background-size: 100% 100%;
157
+				display: inline-block;
158
+				position: relative;
159
+				border-radius: 5px;
160
+				margin-right: 10px;
161
+			
162
+				cursor: pointer;
163
+			}
164
+			
165
+			.img-box .img_mask i {
166
+				position: absolute;
167
+				right: 5px;
168
+				top: 5px;
169
+				display: inline-block;
170
+				width: 13px;
171
+				height: 12px;
172
+				cursor: pointer;
173
+				color: #fff;
174
+			}
175
+			
176
+			.img-box:hover .img_mask {
177
+				display: block;
178
+			}
179
+			
180
+			.img_filename{
181
+				font-size: 14px;
182
+				/* display: block; */
183
+			  width: 100%;
184
+			  height: calc(100% - 22px);
185
+			} 
186
+			/* 附件结束 */
187
+		</style>
12 188
 	</head>
13 189
 
14 190
 	<body class="gray-bg">
@@ -82,14 +258,14 @@
82 258
 							</div>
83 259
 						</div>
84 260
 						<div class="head_form form-horizontal">
85
-							<div class="form-group">
261
+							<!-- <div class="form-group">
86 262
 								<input type="hidden" id="head_form_customer_id" value="" />
87 263
 								<label for="head_form_search" class="col-sm-4 control-label">搜索</label>
88 264
 								<div class="col-sm-8">
89 265
 									<input type="text" class="form-control" id="head_form_search" autocomplete="off" placeholder="请输入公司名称">
90 266
 									<span id="companySearch" class="glyphicon glyphicon-search company_search" aria-hidden="true"></span>
91 267
 								</div>
92
-							</div>
268
+							</div> -->
93 269
 							<div class="form-group">
94 270
 								<label for="head_form_name" class="col-sm-4 control-label">姓名</label>
95 271
 								<div class="col-sm-8">
@@ -97,17 +273,18 @@
97 273
 								</div>
98 274
 							</div>
99 275
 							<div class="form-group">
100
-								<label for="head_form_cmpname" class="col-sm-4 control-label">公司名称</label>
276
+								<label for="head_form_cmpaddress" class="col-sm-4 control-label">地址</label>
101 277
 								<div class="col-sm-8">
102
-									<input readonly type="text" class="form-control" id="head_form_cmpname" placeholder="">
278
+									<input  type="text" class="form-control" id="head_form_cmpaddress" placeholder="请输入地址">
103 279
 								</div>
104 280
 							</div>
105
-							<div class="form-group">
106
-								<label for="head_form_cmpaddress" class="col-sm-4 control-label">公司地址</label>
281
+							<!-- <div class="form-group">
282
+								<label for="head_form_cmpname" class="col-sm-4 control-label">公司名称</label>
107 283
 								<div class="col-sm-8">
108
-									<input readonly type="text" class="form-control" id="head_form_cmpaddress" placeholder="">
284
+									<input readonly type="text" class="form-control" id="head_form_cmpname" placeholder="">
109 285
 								</div>
110 286
 							</div>
287
+							
111 288
 							<div class="form-group">
112 289
 								<label for="head_form_legname" class="col-sm-4 control-label">法人姓名</label>
113 290
 								<div class="col-sm-8">
@@ -125,7 +302,7 @@
125 302
 								<div class="col-sm-8">
126 303
 									<input readonly type="text" class="form-control" id="head_form_subtrade" placeholder="">
127 304
 								</div>
128
-							</div>
305
+							</div> -->
129 306
 							<!-- <div class="form-group">
130 307
 								<label for="head_form_rengin" class="col-sm-4 control-label">区域</label>
131 308
 								<div class="col-sm-8">
@@ -185,10 +362,10 @@
185 362
 						</div>
186 363
 
187 364
 						<div class="head_customer_info clearfix">
188
-							<div class="head_customer_info_title clearfix">
365
+							<!-- <div class="head_customer_info_title clearfix">
189 366
 								<span class="info_title pull-left">相关联系人信息</span>
190 367
 								<ul class="pagination pull-right" id="pagination"></ul>
191
-							</div>
368
+							</div> -->
192 369
 							<div class="head_customer_info_lists" id="head_customer_info">
193 370
 								<!-- <div class="head_customer_info_item clearfix">
194 371
 									<div class="head_customer_info_item_l pull-left">
@@ -255,30 +432,71 @@
255 432
 
256 433
 									</div>
257 434
 								</div>
258
-								<div class="form-group col-md-12" id="order_handles">
435
+								<!-- <div class="form-group col-md-12" id="order_handles">
259 436
 									<label for="order_handle">业务办理:</label>
260 437
 									<select class="form-control input-sm selectpicker" id="order_handle" data-live-search="true">
261 438
 										<option value="0">请选择业务办理</option>
262 439
 									</select>
263
-								</div>
440
+								</div> -->
264 441
 								<div class="col-md-12 row">
442
+									<div class="form-group col-md-4" id="order_handles">
443
+										<label for="order_handle">工单子类:</label>
444
+										<select class="form-control input-sm selectpicker" id="order_godant" data-live-search="true">
445
+											<option value="0">请选择工单子类</option>
446
+											<option value="管道泡水">管道泡水</option>
447
+											<option value="闸井设施">闸井设施</option>
448
+											<option value="表井设施">表井设施</option>
449
+											<option value="消防设施">消防设施</option>
450
+											<option value="水压低">水压低</option>
451
+											<option value="无水">无水</option>
452
+											<option value="水费水量">水费水量</option>
453
+											<option value="停水复装">停水复装</option>
454
+											<option value="水质">水质</option>
455
+											<option value="表位插花">表位插花</option>
456
+											<option value="户表安装">户表安装</option>
457
+											<option value="违章用水">违章用水</option>
458
+											<option value="水域不洁">水域不洁</option>
459
+											<option value="施工围挡">施工围挡</option>
460
+											<option value="垃圾渣土">垃圾渣土</option>
461
+											<option value="道路破损">道路破损</option>
462
+											<option value="其他">其他</option>
463
+										</select>
464
+									</div>
265 465
 									<div class="form-group col-md-4">
266
-										<label for="order_name"><b class="text-red">*</b>客户姓名:</label>
466
+										<label for="order_name">截止日期:</label>
467
+										<i class="tub fa fa-calendar"></i>
468
+										<input class="form-control search_time" type="text" id="sc_time" placeholder="请选择截止时间">
469
+									</div>
470
+								</div>
471
+								<div class="col-md-12 row" style="position: relative;">
472
+									<div class="form-group col-md-4">
473
+										<label for="order_name">客户姓名:</label>
267 474
 										<input type="text" class="form-control input-sm" id="order_name" placeholder="请输入客户姓名">
268 475
 									</div>
269 476
 									<div class="form-group col-md-4">
270
-										<label for="order_tel"><b class="text-red">*</b>联系电话:</label>
477
+										<label for="order_tel">联系电话:</label>
271 478
 										<input type="text" class="form-control input-sm" id="order_tel" placeholder="请输入联系电话" readonly>
272 479
 									</div>
273
-									<div class="form-group col-md-4">
274
-										<label for="order_company"><b class="text-red">*</b>公司名称:</label>
480
+									<!-- <div class="form-group col-md-4">
481
+										<label for="order_company">公司名称:</label>
275 482
 										<input type="text" class="form-control input-sm" id="order_company" placeholder="请输入公司名称">
276
-									</div>
483
+									</div> -->
484
+									
277 485
 								</div>
278 486
 								<div class="form-group col-md-12">
279 487
 									<label for="order_reception">反馈内容:</label>
280 488
 									<textarea id="order_reception" rows="3" cols="20" class="form-control" placeholder="请输入反馈内容"></textarea>
281 489
 								</div>
490
+								<div class=" form-group col-md-12 " style="margin:20px 0 0 -15px;">
491
+									<label class="col-md-2" >附件:</label>
492
+									<div id="imgPicker" class="apply_forms_file">+</div>
493
+										<p class="help-block text-warning" style="display:inline-block;">
494
+											<span id="fileNum">0</span>/6 每个文件大小不超过30M
495
+										</p>
496
+										<ul id="fileList" class="file_imgs clearfix">
497
+										</ul>
498
+														
499
+								</div>
282 500
 								<div class="form-group col-md-8 clearfix">
283 501
 									<label class="col-md-2">工单有效性:</label>
284 502
 									<div id="order_iseffective" class="r_order_type col-md-6">
@@ -291,7 +509,7 @@
291 509
 									</div>
292 510
 								</div>
293 511
 								<div class="form-group col-md-12 order_note">
294
-									<label for="order_note"><b class="text-red">*</b>无效原因:</label>
512
+									<label for="order_note">无效原因:</label>
295 513
 									<textarea id="order_note" rows="3" cols="20" class="form-control" placeholder="请输入无效原因"></textarea>
296 514
 								</div>
297 515
 								<div id="order_isover_box" class="form-group col-md-12 clearfix">
@@ -312,18 +530,19 @@
312 530
 										<span class="caret"></span>
313 531
 										<div id="reginsTreeView" class="hidden"></div>
314 532
 									</div>
315
-									<div class="form-group col-md-4">
533
+									<!-- <div class="form-group col-md-4">
316 534
 										<label for="order_receiveUser">接收人:</label>
317 535
 										<select class="form-control input-sm selectpicker" id="order_receiveUser" data-live-search="true">
318 536
 											<option value="0">请选择接收人</option>
319 537
 										</select>
320
-									</div>
538
+									</div> -->
321 539
 								</div>
322 540
 									
323 541
 								<div class="form-group text-center col-sm-12">
324 542
 									<button type="button" class="btn bton btn-sm" id="save_order">创建</button>
325 543
 									<button type="button" class="btn bton btn-sm" onclick="cleanOrderForm()">清空</button>
326 544
 								</div>
545
+								
327 546
 							</form>
328 547
 						</div>
329 548
 						<!--历史记录-->
@@ -680,6 +899,7 @@
680 899
 		<script src="../js/bootstrap-treeview/bootstrap-treeview.min.js"></script>
681 900
 		<script src="../js/jqpaginator/jqpaginator.min.js" type="text/javascript"></script>
682 901
 		<script src="../js/laydate/laydate.js"></script>
902
+		<script src="../js/webuploader/webuploader.min.js"></script>
683 903
 		<script src="../Script/Common/regexs.js"></script>
684 904
 		<script src="../js/main.js?v=1.5"></script>
685 905
 		<script src="call.js"></script>

+ 385 - 1
CallCenterWeb.UI/js/WorkOrder/AddWorkOrder.js

@@ -5,6 +5,13 @@
5 5
 //通话记录跳转过来的
6 6
 var callId = helper.request.queryString("cid");
7 7
 $(function() {
8
+	laydate.render({
9
+	   	elem: '#sc_time',
10
+	   	// range: '~',
11
+			type: 'datetime',
12
+	   	theme: '#1ab394',
13
+	   	// calendar: true
14
+	   });
8 15
 	//通话记录跳转过来的
9 16
 	var cphone = helper.request.queryString("cphone");
10 17
 	var cCustomerName = decodeURIComponent(helper.request.queryString("cCustomerName"));
@@ -31,7 +38,7 @@ $(function() {
31 38
 			}
32 39
 		});
33 40
 	});
34
-
41
+ 
35 42
 	//工单有效性 
36 43
 	$('#order_iseffective').find('input[type="radio"]').on('change', function() {
37 44
 		//是否有效工单项(0有效,1无效)
@@ -279,3 +286,380 @@ function getReceiveUser(obj, deptid) {
279 286
 	});
280 287
 }
281 288
 
289
+
290
+
291
+
292
+
293
+/**
294
+ * 附件上传直接在知识库管理拿来用     开始
295
+ * */
296
+
297
+var proimglist = []; //保存附件数组
298
+var uploader; //上传实例
299
+var limitNum = 6; //限制数量
300
+var edit_id = helper.request.queryString("edit_id");
301
+var token = $.cookie("token");
302
+
303
+$(function() {
304
+	autosize($('textarea'));
305
+	getChangeTree();
306
+	if(edit_id) {
307
+		getDetail();
308
+	} else {
309
+		$('#kn_type').val('顶级分类');
310
+		$('#kn_type').attr('data-id', 0)
311
+		uploaderImages();
312
+	}
313
+	//初始化 下拉
314
+	$('.inps1').focus(function() {
315
+		$('.xlAdd').css('display', 'block');
316
+	});
317
+	$('.xl_one').click(function() {
318
+		if($('.xlAdd').css('display') == 'block') {
319
+			$('.xlAdd').css('display', 'none')
320
+		} else {
321
+			$('.xlAdd').css('display', 'block')
322
+		}
323
+	});
324
+	$('.addTree').mouseleave(function() {
325
+		$(this).css('display', 'none')
326
+	});
327
+	
328
+	$('#save_knowledge').on('click', saveKnowledge);
329
+});
330
+
331
+
332
+
333
+//修改弹出框内 下拉树形图参数配置项
334
+function getChangeTree() {
335
+	var setting3 = {
336
+		data: {
337
+			key: {
338
+				name: "text"
339
+			},
340
+			simpleData: {
341
+				enable: true,
342
+				idKey: "id",
343
+				rootPId: 0
344
+			}
345
+		},
346
+		callback: {
347
+			onClick: changeTreeClick
348
+		}
349
+	}
350
+	$.get(huayi.config.callcenter_url + 'KnowledgeClass/GetList', {
351
+//		"pid": pid,
352
+		"token": token,
353
+	}, function(result) {
354
+		result = $.parseJSON(result);
355
+		$.fn.zTree.init($("#addTreeDemo"), setting3, result.data); //实例化树形图
356
+	});
357
+}
358
+
359
+function changeTreeClick(event, treeId, treeNode) {
360
+	$('#kn_type').val(treeNode.text);
361
+	$('#kn_type').attr('data-id', treeNode.id);
362
+};
363
+
364
+//获取详情
365
+function getDetail() {
366
+	var dtd = $.Deferred(); //在函数内部,新建一个Deferred对象
367
+	$.ajax({
368
+		type: "post",
369
+		url: huayi.config.callcenter_url + "Knowledge/GetInfo",
370
+		async: true,
371
+		dataType: 'json',
372
+		data: {
373
+			infoid: edit_id,
374
+			token: token
375
+		},
376
+		success: function(data) {
377
+			var con = data.data;
378
+			$('#kn_title').val(con.F_Title);
379
+			$('#kn_key').val(con.F_KeyWords);
380
+			$('#kn_content').val(con.F_Description);
381
+			$('#kn_type').val(con.F_Expand1);
382
+			$('#kn_type').attr('data-id', con.F_CategoryId);
383
+
384
+			//附件
385
+			var proimglists = con.FileUrls;
386
+			proimglists = proimglists == null ? [] : proimglists;
387
+			limitNum -= proimglists.length;
388
+			uploaderImages(); //附件上传
389
+			if(proimglists.length > 0) {
390
+				$('#fileNum').text(proimglists.length);
391
+				var $list = $("#fileList");
392
+				$.each(proimglists, function(i, v) {
393
+					proimglist.push(v.F_FileId);
394
+					if(v.F_FileType.split("\/")[0] === 'image') {
395
+						//原来的图片
396
+						var $li = $(
397
+							'<li><span class="img_mask"><i class="img_del"></i></span>' +
398
+							'<img src="' + v.F_FileUrl + '" title="原来的图片"/>' +
399
+							'<span class="file_name">' + v.F_FileName + '</span>' +
400
+							'</li>'
401
+						);
402
+						$list.append($li);
403
+					} else {
404
+						var $liFile = $(
405
+							'<li><span class="img_mask"><i class="img_del"></i></span>' +
406
+							'<div class="noThumb" title="原来的文件"><i class="glyphicon glyphicon-paperclip"></i><p>无法预览</p></div>' +
407
+							'<span class="file_name">' + v.F_FileName + '</span>' +
408
+							'</li>'
409
+						);
410
+						$list.append($liFile);
411
+					}
412
+				});
413
+				$list.find('li').off('click');
414
+				$list.find('li').on('click', '.img_del', function() {
415
+					$(this).parent().parent().remove();
416
+					var itemFileName = $(this).parent().parent().find('.file_name').text();
417
+					$.each(proimglists, function(i, v) {
418
+						if(v && v.F_FileName == itemFileName) {
419
+							proimglist.splice(i, 1);
420
+						}
421
+					});
422
+					$('#fileNum').text(proimglist.length);
423
+					limitNum = 6 - proimglist.length;
424
+					uploaderImages();
425
+				});
426
+			}
427
+			dtd.resolve(); // 改变Deferred对象的执行状态
428
+		}
429
+	});
430
+	return dtd.promise(); // 返回promise对象
431
+}
432
+
433
+//保存
434
+function saveKnowledge() {
435
+	var wUrl;
436
+	if(!$.trim($('#kn_type').val())) {
437
+		layer.confirm('所属分类不能为空', {
438
+			icon: 2,
439
+			btn: ['确定'] //按钮
440
+		});
441
+		return;
442
+	}
443
+	
444
+	if(!$.trim($('#kn_title').val())) {
445
+		layer.confirm('标题不能为空', {
446
+			icon: 2,
447
+			btn: ['确定'] //按钮
448
+		});
449
+		return;
450
+	}
451
+	
452
+	if(edit_id) {
453
+		wURL = "Knowledge/EditInfo";
454
+	} else {
455
+		wURL = "Knowledge/AddInfo";
456
+	}
457
+	$.ajax({
458
+		type: "post",
459
+		url: huayi.config.callcenter_url + wURL,
460
+		dataType: 'json',
461
+		async: true,
462
+		beforeSend: function() { //触发ajax请求开始时执行
463
+			$('#save_knowledge').attr("disabled", true);
464
+			$('#save_knowledge').text('保存中...');
465
+			$(document).off('click', '#save_knowledge', saveKnowledge);
466
+			loadIndex = layer.load();
467
+		},
468
+		data: {
469
+			infoid: edit_id,
470
+			title: $('#kn_title').val(),
471
+			key: $('#kn_key').val(),
472
+			con: helper.filter.delHtmlTag($('#kn_content').val()),
473
+			pid: $('#kn_type').attr('data-id'),
474
+			fileids: proimglist && proimglist.join(','),
475
+			token: token
476
+		},
477
+		success: function(result) {
478
+			if(result.state.toLowerCase() === "success") {
479
+				var index = parent.layer.getFrameIndex(window.name);
480
+				parent.layer.close(index);
481
+				parent.table.bootstrapTable('refresh');
482
+				layer.msg("保存成功");
483
+			}
484
+		},
485
+		error: function(textStatus) {
486
+			layer.close(loadIndex);
487
+			layer.confirm('网络繁忙,请稍后再试...', {
488
+				icon: 7,
489
+				closeBtn: 0,
490
+				btn: ['确定'] //按钮
491
+			});
492
+			$('#save_knowledge').text('保存');
493
+			$('#save_knowledge').attr("disabled", false);
494
+			$(document).off('click', '#save_knowledge', saveKnowledge);
495
+			$(document).on('click', '#save_knowledge', saveKnowledge);
496
+		},
497
+		complete: function(XMLHttpRequest, textStatus) {
498
+			layer.close(loadIndex);
499
+			if(textStatus == 'timeout') {
500
+				var xmlhttp = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHttp");
501
+				xmlhttp.abort();
502
+				layer.confirm('网络超时,请稍后再试...', {
503
+					icon: 7,
504
+					closeBtn: 0,
505
+					btn: ['确定'] //按钮
506
+				});    
507
+			}
508
+			$('#save_knowledge').text('保存');
509
+			$('#save_knowledge').attr("disabled", false);
510
+			$(document).off('click', '#save_knowledge', saveKnowledge);
511
+			$(document).on('click', '#save_knowledge', saveKnowledge);
512
+		},
513
+	});
514
+}
515
+
516
+//上传附件
517
+function uploaderImages() {
518
+	if(uploader) {
519
+		uploader.destroy();
520
+	}
521
+	uploader = WebUploader.create({
522
+		auto: true, // 选完文件后,是否自动上传 
523
+		swf: '../../js/webuploader/Uploader.swf', // swf文件路径 
524
+		server: huayi.config.callcenter_url + "Knowledge/UpLoadProcess", // 文件接收服务端 
525
+		pick: '#imgPicker', // 选择文件的按钮。可选 
526
+		formData: {
527
+			token: token
528
+		},
529
+		// 多类型文件上传 
530
+		accept: {
531
+			title: 'Files',
532
+			extensions: 'gif,jpg,jpeg,bmp,png,pdf,doc,docx,txt,xls,xlsx,ppt,pptx,zip,mp3,mp4,text,csv',
533
+			mimeTypes: 'image/*,text/*,audio/mpeg,audio/mp4, video/mp4'
534
+					//word
535
+			+',application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document'
536
+					//excel
537
+			+',application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
538
+					//ppt
539
+			+',application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation'
540
+			+',application/pdf'
541
+			+',application/zip'
542
+			+',application/csv'
543
+			//			title: 'Images',
544
+			//			extensions: 'gif,jpg,jpeg,bmp,png',
545
+			//			mimeTypes: 'image/*'
546
+		},
547
+		compress: false, //webuploader默认压缩图片,设置compress:false,可以按照原始比例上传图片  
548
+		//fileVal: "upFile",//设置文件上传域的name。  
549
+		threads: limitNum, //上传并发数。允许同时最大上传进程数,为了保证文件上传顺序  
550
+		fileNumLimit: limitNum,
551
+		fileSizeLimit: 180 * 1024 * 1024, // 180 M
552
+		fileSingleSizeLimit: 30 * 1024 * 1024 // 30 M
553
+	});
554
+
555
+	uploader.on('fileQueued', function(file) {
556
+		var $list = $("#fileList"),
557
+			$li = $(
558
+				'<li id="' + file.id + '"><span class="img_mask"><i class="img_del"></i></span>' +
559
+				'<img/>' +
560
+				'<span class="img_state"><i></i></span>' +
561
+				'<span class="file_name">' + file.name + '</span>' +
562
+				'</li>'
563
+			),
564
+			$img = $li.find('img');
565
+
566
+		// $list为容器jQuery实例 
567
+		$list.append($li);
568
+
569
+		// 保存缩略图 
570
+		uploader.makeThumb(file, function(error, src) {
571
+			if(error) {
572
+				$img.replaceWith('<div class="noThumb"><i class="glyphicon glyphicon-paperclip"></i><p>无法预览</p></div>');
573
+				return;
574
+			}
575
+			$img.attr('src', src);
576
+		}, 109, 109); //109*109为缩略图尺寸 
577
+
578
+		//绑定删除
579
+		$('#' + file.id).on('click', '.img_del', function() {
580
+			uploader.removeFile(file);
581
+			var $fileLi = $('#' + file.id);
582
+			$fileLi.off().find('.img_del').off().end().remove();
583
+			var itemFileName = $(this).parent().parent().find('.file_name').text();
584
+			$.each(proimglist, function(i, v) {
585
+				if(v && v.filename == itemFileName) {
586
+					proimglist.splice(i, 1);
587
+					//helper.methods.delImgs(v.filesmallurl, v.fileurl);
588
+				}
589
+			});
590
+			$('#fileNum').text(proimglist.length);
591
+		});
592
+
593
+	});
594
+
595
+	// 文件上传过程中保存进度条实时显示。 
596
+	uploader.on('uploadProgress', function(file, percentage) {
597
+		var $li = $('#' + file.id),
598
+			$percent = $li.find('.progress span');
599
+
600
+		// 避免重复保存 
601
+		if(!$percent.length) {
602
+			$percent = $('<div class="progress" style="">' +
603
+					'<span class="text">0%</span>' +
604
+					'<span class="percentage"></span>' +
605
+					'</div>')
606
+				.appendTo($li)
607
+				.find('span');
608
+		}
609
+
610
+		$percent.eq(0).text(Math.round(percentage * 100) + '%');
611
+		$percent.eq(1).css('width', Math.round(percentage * 100) + '%');
612
+	});
613
+
614
+	// 文件上传成功,给item添加成功class, 用样式标记上传成功。 
615
+	uploader.on('uploadSuccess', function(file, res) {
616
+		proimglist.push(res.data.F_FileId);
617
+		$('#fileNum').text(proimglist.length);
618
+		$('#' + file.id).addClass('upload-state-done');
619
+	});
620
+
621
+	// 文件上传失败,显示上传出错。 
622
+	uploader.on('uploadError', function(file) {
623
+		var $li = $('#' + file.id),
624
+			$error = $li.find('div.error');
625
+
626
+		// 避免重复创建
627
+		if(!$error.length) {
628
+			$error = $('<div class="error"></div>').appendTo($li);
629
+		}
630
+
631
+		$error.text('上传失败');
632
+	});
633
+
634
+	// 完成上传完了,成功或者失败,先删除进度条。 
635
+	uploader.on('uploadComplete', function(file) {
636
+		$('#' + file.id).find('.progress').remove();
637
+	});
638
+
639
+	uploader.onError = function(code) {
640
+		//		console.log('Error:' + code);
641
+		switch(code) {
642
+			case "Q_EXCEED_NUM_LIMIT":
643
+				layer.msg('只能上传六个文件。');
644
+				break;
645
+			case "Q_TYPE_DENIED":
646
+				layer.msg('文件类型不正确。');
647
+				break;
648
+			case "F_DUPLICATE":
649
+				layer.msg('该文件已上传,请选择其它文件。');
650
+				break;
651
+			case "F_EXCEED_SIZE":
652
+				layer.msg('单文件大小不能超过30M。');
653
+				break;
654
+			case "Q_EXCEED_SIZE_LIMIT":
655
+				layer.msg('总文件大小不能超过180M。');
656
+				break;
657
+			default:
658
+				break;
659
+		}
660
+
661
+	};
662
+}
663
+/**
664
+ * 附件上传直接在知识库管理拿来用     结束
665
+ * */