説明なし

WorkOrderEnd.js 28KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910
  1. /**
  2. * 工单处理(结束)
  3. * */
  4. var inout;
  5. var F_Flag;
  6. var arr = ['37', '57', '74', '88', '268', '422', '339', '213', '427', '433', '424'] //市场管理科
  7. var zlarr = ['12', '36', '295', '245'] //质量管理科
  8. $(document).ready(function() {
  9. autosize($('textarea'));
  10. var ID = helper.request.queryString("oid"); //工单ID
  11. if(ID) {
  12. getWorkOrderInfo(ID);
  13. }
  14. ZLZRDWBOX($("#duoxuanbox")); //责任单位
  15. ZYJB($("#level")); //重要级别
  16. //点击确定
  17. $("#clgd").click(function() {
  18. if($("#cl_gdlx").text() == '投诉' || $("#cl_gdlx").text() == '业务协办') {
  19. if((F_Flag == 3 && inout == 2) || F_Flag == 9 || F_Flag == 1 || F_Flag == 2) {
  20. if(!$("#cont").val()) {
  21. layer.confirm('请输入处理结果!', {
  22. icon: 2,
  23. btn: ['确定']
  24. });
  25. return;
  26. }
  27. if(!$("#cont1").val()) {
  28. layer.confirm('请输入问题原因!', {
  29. icon: 2,
  30. btn: ['确定']
  31. });
  32. return;
  33. }
  34. if(!$("#cont2").val()) {
  35. layer.confirm('请输入责任单位!', {
  36. icon: 2,
  37. btn: ['确定']
  38. });
  39. return;
  40. }
  41. if(!$("#cont3").val()) {
  42. layer.confirm('请输入整改计划!', {
  43. icon: 2,
  44. btn: ['确定']
  45. });
  46. return;
  47. }
  48. if(!$("#level").val()) {
  49. layer.confirm('请选择重要级别!', {
  50. icon: 2,
  51. btn: ['确定']
  52. });
  53. return;
  54. }
  55. }
  56. }
  57. if(inout == 3 && F_Flag == 3) {
  58. layer.confirm('您要处理外线还是内线?请选择', {
  59. skin: "my-skin",
  60. btn: ['外线', '内线'],
  61. cancel: function(index, layero) {}
  62. }, function() {
  63. dealWorkOrder(ID, 1);
  64. }, function() {
  65. dealWorkOrder(ID, 2);
  66. });
  67. } else {
  68. dealWorkOrder(ID);
  69. }
  70. });
  71. })
  72. //重要级别
  73. function ZYJB(obj) {
  74. obj.empty();
  75. obj.append('<option selected="selected" value="">请选择</option>');
  76. $.getJSON(huayi.config.callcenter_url + "Dictionary/GetDicValueListByFlag", {
  77. "token": $.cookie("token"),
  78. flag: "ZYJB",
  79. }, function(data) {
  80. if(data.state.toLowerCase() == "success") {
  81. var content = data.data;
  82. $(content).each(function(i, n) {
  83. $("<option value='" + n.F_Name + "'>" + n.F_Name + "</option>").appendTo(obj);
  84. })
  85. }
  86. })
  87. }
  88. function ZLZRDWBOX(obj) {
  89. obj.empty();
  90. $.getJSON(huayi.config.callcenter_url + "Dictionary/GetDicValueListByFlag", {
  91. "token": $.cookie("token"),
  92. flag: "ZLZRDW",
  93. }, function(data) {
  94. if(data.state.toLowerCase() == "success") {
  95. var content = data.data;
  96. $(content).each(function(i, n) {
  97. $("<span>" + n.F_Name + "</span>" + "<input type='checkbox' name='duo' value='" + n.F_Name + "'>" + "</input>").appendTo(obj);
  98. })
  99. }
  100. })
  101. }
  102. $('#Depth').find('input[type="radio"]').on('change', function() {
  103. if($(this).val() == "0") { //业务办理
  104. $('#F_Address,#F_Address').show();
  105. } else {
  106. $('#F_Address,#F_Address').hide();
  107. }
  108. });
  109. //获取工单信息
  110. function getWorkOrderInfo(oid) {
  111. var obj = JSON.parse(localStorage.getItem('endDetail'))
  112. if(obj) {
  113. $("#gyi").val(obj.WorkmanShip) //工艺
  114. $("#ylcj").val(obj.Manufacturers) //原料及厂家
  115. $("#scsl").val(obj.ProductionNum) //该批次生产数量
  116. $("#cont").val(obj.cont) //否 处理内容
  117. $("#cont1").val(obj.EventReason) //问题原因
  118. $("#cont2").val(obj.ResponsibleUnit) //责任单位
  119. $("#cont3").val(obj.ImprovementRequirements) //整改计划
  120. }
  121. $.ajax({
  122. type: "get",
  123. url: huayi.config.callcenter_url + "WorkOrderNew/GetDetails",
  124. async: true,
  125. dataType: 'json',
  126. data: {
  127. id: oid,
  128. token: $.cookie("token")
  129. },
  130. success: function(data) {
  131. /*验证请求*/
  132. if(data.state == "success") {
  133. var Str = data.rows;
  134. if(Str && Str.length > 0) {
  135. inout = Str[0].inout;
  136. F_Flag = Str[0].F_Flag
  137. $("#wid").text(Str[0].F_ID); //id
  138. $('#cl_gdbh').text(Str[0].F_WorkOrderCode); //工单编号
  139. $("#cl_gdlx").text(Str[0].F_TypeName); //工单类型
  140. $("#xq_source").text(Str[0].F_SourceName); //工单来源
  141. // $("#xq_handle").text(Str[0].YWLXName); //业务办理
  142. $("#cl_khxm").text(Str[0].F_CusName); //姓名
  143. $("#cl_khdh").text(helper.filter.cutTel(Str[0].F_CusPhone)); //电话
  144. $("#cl_gdn").text(Str[0].F_DeptName); //部门
  145. $('#cl_gdnr').text(decodeURIComponent(Str[0].Detail));
  146. $('#gyi').val(Str[0].F_WorkmanShip) //工艺
  147. $('#ylcj').val(Str[0].F_Manufacturers) //工艺
  148. $('#scsl').val(Str[0].F_ProductionNum) //工艺
  149. // $("#cont1").val(Str[0].F_EventReason) //问题原因
  150. if(Str[0].F_EventReason) { //问题原因
  151. wtyyarr = Str[0].F_EventReason.split(';@#')
  152. if(wtyyarr.length > 1) {
  153. // $("#cont1").attr('placeholder', wtyyarr[wtyyarr.length - 2].split(':')[2].slice(2).trim());
  154. $("#cont1").text(wtyyarr[wtyyarr.length - 2].split(':')[2].slice(2).trim());
  155. } else {
  156. // $("#cont1").attr('placeholder', Str[0].F_EventReason);
  157. $("#cont1").text(Str[0].F_EventReason);
  158. }
  159. }
  160. $("#level").val(Str[0].F_TS_Level); //重要级别
  161. $("#cont2").val(Str[0].F_ZL_ResponsibleUnit) //责任单位
  162. // $("#cont3").val(Str[0].F_ZL_ImprovementRequirements) //整改计划
  163. if(Str[0].F_ZL_ImprovementRequirements) { //整改计划
  164. zgjharr = Str[0].F_ZL_ImprovementRequirements.split(';@#')
  165. if(zgjharr.length > 1) {
  166. // $("#cont3").attr('placeholder', zgjharr[zgjharr.length - 2].split(':')[2].slice(2).trim());
  167. $("#cont3").text(zgjharr[zgjharr.length - 2].split(':')[2].slice(2).trim());
  168. } else {
  169. // $("#cont3").attr('placeholder', Str[0].F_ZL_ImprovementRequirements);
  170. $("#cont3").text(Str[0].F_ZL_ImprovementRequirements);
  171. }
  172. }
  173. if(Str[0].inout == 2) {
  174. if(Str[0].SuperiorOpinion2) {
  175. clarr = Str[0].SuperiorOpinion2.split(';@#')
  176. if(clarr.length > 1) {
  177. // $("#cont").attr('placeholder', clarr[clarr.length - 2].split(':')[2].slice(2).trim());
  178. $("#cont").text(clarr[clarr.length - 2].split(':')[2].slice(2).trim());
  179. } else {
  180. // $("#cont").attr('placeholder', Str[0].SuperiorOpinion2) //处理内容
  181. $("#cont").text(Str[0].SuperiorOpinion2)
  182. }
  183. }
  184. } else {
  185. if(Str[0].SuperiorOpinion) {
  186. clarr = Str[0].SuperiorOpinion.split(';@#')
  187. if(clarr.length > 1) {
  188. // $("#cont").attr('placeholder', clarr[clarr.length - 2].split(':')[2].slice(2).trim());
  189. $("#cont").text(clarr[clarr.length - 2].split(':')[2].slice(2).trim());
  190. } else {
  191. // $("#cont").attr('placeholder', Str[0].SuperiorOpinion) //处理内容
  192. $("#cont").text(Str[0].SuperiorOpinion)
  193. }
  194. }
  195. }
  196. // if(Str[0].inout == 2) {
  197. // if(Str[0].SuperiorOpinion2.indexOf(':') != -1) {
  198. // $("#cont").val(Str[0].SuperiorOpinion2.split(':')[2].slice(2).trim()) //处理内容
  199. // } else {
  200. // $("#cont").val(Str[0].SuperiorOpinion2) //处理内容
  201. // }
  202. // } else {
  203. // if(Str[0].SuperiorOpinion.indexOf(':') != -1) {
  204. // $("#cont").val(Str[0].SuperiorOpinion.split(':')[2].slice(2).trim()) //处理内容
  205. // } else {
  206. // $("#cont").val(Str[0].SuperiorOpinion) //处理内容
  207. // }
  208. // }
  209. if($("#cl_gdlx").text() == "抽检") {
  210. if(arr.indexOf($.cookie('userDeptId')) != -1) {
  211. $("#abcde").show();
  212. $("#abc").hide();
  213. }
  214. if(zlarr.indexOf($.cookie('userDeptId')) != -1) {
  215. $("#abcdef").show();
  216. $("#abcde").hide();
  217. $("#shicon").hide();
  218. }
  219. } else if($("#cl_gdlx").text() == "投诉") {
  220. if(arr.indexOf($.cookie('userDeptId')) != -1) {
  221. $("#abc").show();
  222. $("#abcde").hide();
  223. }
  224. } else if($("#cl_gdlx").text() == "咨询") {
  225. if(arr.indexOf($.cookie('userDeptId')) != -1) {
  226. $("#ccc").show();
  227. $("#ddd").hide();
  228. }
  229. } else if($("#cl_gdlx").text() == "业务协办") {
  230. if(arr.indexOf($.cookie('userDeptId')) != -1) {
  231. $("#abc").show();
  232. $("#abcde").hide();
  233. }
  234. }
  235. //附件
  236. var proimglists = data.FileUrl;
  237. proimglists = proimglists == null ? [] : proimglists;
  238. limitNum -= proimglists.length;
  239. uploaderImages(); //附件上传
  240. if(proimglists.length > 0) {
  241. $('#fileNum').text(proimglists.length);
  242. var $list = $("#fileList");
  243. $.each(proimglists, function(i, v) {
  244. proimglist.push(v.F_FileId);
  245. if(v.F_FileType.split("\/")[0] === 'image' || v.F_FileType === '.png' || v.F_FileType === '.jpg') {
  246. //原来的图片
  247. var $li = $(
  248. '<li><span class="img_mask"><i class="img_del"></i></span>' +
  249. '<img src="' + v.F_FileUrl + '" title="原来的图片"/>' +
  250. '<span class="file_name">' + v.F_FileName + '</span>' +
  251. '</li>'
  252. );
  253. $list.append($li);
  254. } else {
  255. var $liFile = $(
  256. '<li><span class="img_mask"><i class="img_del"></i></span>' +
  257. '<div class="noThumb" title="原来的文件"><i class="glyphicon glyphicon-paperclip"></i><p>无法预览</p></div>' +
  258. '<span class="file_name">' + v.F_FileName + '</span>' +
  259. '</li>'
  260. );
  261. $list.append($liFile);
  262. }
  263. });
  264. $list.find('li').off('click');
  265. $list.find('li').on('click', '.img_del', function() {
  266. $(this).parent().parent().remove();
  267. var itemFileName = $(this).parent().parent().find('.file_name').text();
  268. $.each(proimglists, function(i, v) {
  269. if(v && v.F_FileName == itemFileName) {
  270. proimglist.splice(i, 1);
  271. }
  272. });
  273. $('#fileNum').text(proimglist.length);
  274. limitNum = 6 - proimglist.length;
  275. uploaderImages();
  276. });
  277. }
  278. //微信内文件(暂时不用)
  279. var Files = Str[0].Files;
  280. if(Files) {
  281. var a;
  282. var b;
  283. $(Files).each(function(i, n) {
  284. a = n.F_FileType.split("\/")[0];
  285. b = n.F_FileName.split(".")[1];
  286. // console.log(a);
  287. if(a == 'image') {
  288. $('<div class="img-box"><a href="+' + n.F_FileUrl + '" download="' + n.F_FileName + '"><img src="' + n.F_FileUrl + '" alt="" class="image-item" data-preview-group="1" /><span class="">' + b + '</span></a><div>').appendTo(".space");
  289. } else {
  290. $('<div class="img-box "><a href="+' + n.F_FileUrl + '" download="' + n.F_FileName + '"><span class="">' + b + '</span></a><div>').appendTo(".space");
  291. }
  292. })
  293. }
  294. }
  295. }
  296. }
  297. });
  298. }
  299. //$(function() {
  300. // $("#duoxuan").on("click", function() {
  301. // var ichk = $("input:checkbox:checked").map(function() {
  302. // return $(this).val();
  303. // }).get().join(",");
  304. // $("#txtServerType").val(ichk);
  305. // })
  306. //})
  307. $('#yijian').find('input[type="radio"]').on('change', function() {
  308. if($(this).val() == "不同意") { //业务办理
  309. $('#nrr,#ytt').show();
  310. } else {
  311. $('#nrr,#ytt').hide();
  312. }
  313. });
  314. $('#buchang').find('input[type="radio"]').on('change', function() {
  315. if($(this).val() == "钱款") { //业务办理
  316. $('#mction,#mcttic').show();
  317. } else {
  318. $('#mction,#mcttic').hide();
  319. }
  320. });
  321. //获取工单类型
  322. function getTypeName(val) {
  323. var str = '';
  324. switch(val + '') {
  325. case '107':
  326. str = "咨询";
  327. break;
  328. case '108':
  329. str = "投诉";
  330. break;
  331. }
  332. return str;
  333. }
  334. //暂存
  335. $("#zcgd").click(function() {
  336. var obj = {
  337. WorkmanShip: $("#gyi").val(), //工艺
  338. Manufacturers: $("#ylcj").val(), //原料及厂家
  339. ProductionNum: $("#scsl").val(), //该批次生产数量
  340. cont: $("#cont").val(), //否 处理内容
  341. EventReason: $("#cont1").val(), //问题原因
  342. ResponsibleUnit: $("#cont2").val(), //责任单位
  343. ImprovementRequirements: $("#cont3").val() //整改计划
  344. }
  345. localStorage.setItem("endDetail", JSON.stringify(obj))
  346. layer.msg('暂存成功');
  347. setTimeout(function() {
  348. parent.layer.closeAll();
  349. }, 700)
  350. })
  351. //处理
  352. function dealWorkOrder(oid, inoutflag) {
  353. var isDetail = helper.request.queryString("isDetail"); //是否是详情页面的处理
  354. $.ajax({
  355. type: "post",
  356. url: huayi.config.callcenter_url + 'WorkOrderNew/DealWorkOrder',
  357. async: true,
  358. dataType: "json",
  359. beforeSend: function() {
  360. $("#clgd").attr("disabled", true);
  361. $("#clgd").val("保存中");
  362. loadIndex = layer.load();
  363. },
  364. data: {
  365. orderid: oid, //否 strubg 工单ID
  366. inoutflag: inoutflag,
  367. isover: 1, //是否完结 0否,1是
  368. cont: $("#cont").val() || $("#cont").attr('placeholder'), //否 处理内容
  369. EventReason: $("#cont1").val() || $("#cont1").attr('placeholder'),
  370. ResponsibleUnit: $("#cont2").val(),
  371. ImprovementRequirements: $("#cont3").val() || $("#cont3").attr('placeholder'),
  372. ProductBase: $("#zhibao").val(),
  373. QualityEventLevel: $("#cat").val(),
  374. shenpi: $("#shenpi").val(),
  375. ClaimAmount: $("#cataa").val(),
  376. //ResponsibleUnit: $("#txtServerType").val(),
  377. ApprovalOpinions: $("input[name='tong']:checked").val(),
  378. ApprovalDisagree: $("#butong").val(),
  379. CompensationMethod: $("input[name='buchan']:checked").val(),
  380. CompensationMoney: $("#bcqkun").val(),
  381. CResponsibleUnits: $("#danwei").val(),
  382. Fquantity: $("#shuliang").val(),
  383. //ImprovementRequirements: $("#yaoqiu").val(),
  384. CApprovalNo: $("#danhao").val(),
  385. ProductBase: $("#chou").val(),
  386. uncont: $("#wclyy").val(), //未处理原因
  387. isvisit: $("#huifang").find('input[type="radio"]:checked').val(),
  388. IsRecord: $("#gongzuol").find('input[type="radio"]:checked').val(),
  389. F_CJ_IsQualified: $("#qualified").find('input[type="radio"]:checked').val(),
  390. isvisit: $("#hui_FA").find('input[type="radio"]:checked').val(),
  391. isApprovalp: $("#high_level").find('input[type="radio"]:checked').val(),
  392. F_Files: proimglist && proimglist.join(','),
  393. WorkmanShip: $("#gyi").val(),
  394. Manufacturers: $("#ylcj").val(),
  395. ProductionNum: $("#scsl").val(),
  396. TS_Level: $("#level").val(),
  397. token: $.cookie("token")
  398. },
  399. success: function(result) {
  400. if(result.state.toLowerCase() == "success") {
  401. localStorage.removeItem("endDetail")
  402. $("#clgd").attr("disabled", false);
  403. $("#clgd").val("保存");
  404. layer.close(loadIndex);
  405. if(isDetail === "true") {
  406. parent.parent.layer.closeAll();
  407. parent.parent.$('#orderlist').bootstrapTable('refresh');
  408. parent.parent.layer.msg("工单结单成功!");
  409. } else {
  410. var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
  411. parent.layer.close(index); //再执行关闭
  412. parent.$('#workorderlist').bootstrapTable('refresh');
  413. parent.$('.Closed').trigger('click');
  414. parent.layer.msg("工单结单成功!");
  415. }
  416. top.workcount();
  417. } else {
  418. $("#clgd").attr("disabled", false);
  419. $("#clgd").val("保存");
  420. layer.close(loadIndex);
  421. }
  422. }
  423. });
  424. }
  425. $("#gdxq_").click(function() {
  426. $("#F_Address").show();
  427. });
  428. $(document).ready(function() {
  429. var wid = helper.request.queryString("wid");
  430. // CPZL($("#zhibao"));//产品种类
  431. SCSCJD($("#zhibao")); //初审意见
  432. ZLSJDJ($("#cat")); //质量事件等级
  433. ZLSJDJ($("#dengji")); //质量事件等级
  434. ZLZRDW($("#cataa")); //责任单位
  435. ZLZRDW($("#danwei")); //责任单位
  436. SCSCJD($("#chou")); //责任单位SCSCJD
  437. WCLYY($("#wclyy")); //未处理原因
  438. SCCS($("#chushen")); //初审意见
  439. });
  440. function WCLYY(obj) {
  441. obj.empty();
  442. obj.append('<option selected="selected" value="">请选择</option>');
  443. $.getJSON(huayi.config.callcenter_url + "Dictionary/GetDicValueListByFlag", {
  444. "token": $.cookie("token"),
  445. flag: "WCLYY",
  446. }, function(data) {
  447. if(data.state.toLowerCase() == "success") {
  448. var content = data.data;
  449. $(content).each(function(i, n) {
  450. $("<option value='" + n.F_Name + "'>" + n.F_Name + "</option>").appendTo(obj);
  451. })
  452. }
  453. })
  454. }
  455. function SCSCJD(obj) {
  456. obj.empty();
  457. obj.append('<option selected="selected" value="">请选择</option>');
  458. $.getJSON(huayi.config.callcenter_url + "Dictionary/GetDicValueListByFlag", {
  459. "token": $.cookie("token"),
  460. flag: "SCSCJD",
  461. }, function(data) {
  462. if(data.state.toLowerCase() == "success") {
  463. var content = data.data;
  464. $(content).each(function(i, n) {
  465. $("<option value='" + n.F_Name + "'>" + n.F_Name + "</option>").appendTo(obj);
  466. })
  467. }
  468. })
  469. }
  470. function SCCS(obj) {
  471. obj.empty();
  472. obj.append('<option selected="selected" value="">请选择</option>');
  473. $.getJSON(huayi.config.callcenter_url + "Dictionary/GetDicValueListByFlag", {
  474. "token": $.cookie("token"),
  475. flag: "SCCS",
  476. }, function(data) {
  477. if(data.state.toLowerCase() == "success") {
  478. var content = data.data;
  479. $(content).each(function(i, n) {
  480. $("<option value='" + n.F_Name + "'>" + n.F_Name + "</option>").appendTo(obj);
  481. })
  482. }
  483. })
  484. }
  485. function ZLZRDW(obj) {
  486. obj.empty();
  487. obj.append('<option selected="selected" value="">请选择</option>');
  488. $.getJSON(huayi.config.callcenter_url + "Dictionary/GetDicValueListByFlag", {
  489. "token": $.cookie("token"),
  490. flag: "ZLZRDW",
  491. }, function(data) {
  492. if(data.state.toLowerCase() == "success") {
  493. var content = data.data;
  494. $(content).each(function(i, n) {
  495. $("<option value='" + n.F_Name + "'>" + n.F_Name + "</option>").appendTo(obj);
  496. })
  497. }
  498. })
  499. }
  500. function ZLSJDJ(obj) {
  501. obj.empty();
  502. obj.append('<option selected="selected" value="">请选择</option>');
  503. $.getJSON(huayi.config.callcenter_url + "Dictionary/GetDicValueListByFlag", {
  504. "token": $.cookie("token"),
  505. flag: "ZLSJDJ",
  506. }, function(data) {
  507. if(data.state.toLowerCase() == "success") {
  508. var content = data.data;
  509. $(content).each(function(i, n) {
  510. $("<option value='" + n.F_Name + "'>" + n.F_Name + "</option>").appendTo(obj);
  511. })
  512. }
  513. })
  514. }
  515. /**
  516. * 附件上传直接在知识库管理拿来用 开始
  517. * */
  518. var proimglist = []; //保存附件数组
  519. var uploader; //上传实例
  520. var limitNum = 6; //限制数量
  521. var edit_id = helper.request.queryString("edit_id");
  522. var token = $.cookie("token");
  523. $(function() {
  524. autosize($('textarea'));
  525. getChangeTree();
  526. if(edit_id) {
  527. getDetail();
  528. } else {
  529. $('#kn_type').val('顶级分类');
  530. $('#kn_type').attr('data-id', 0)
  531. uploaderImages();
  532. }
  533. //初始化 下拉
  534. $('.inps1').focus(function() {
  535. $('.xlAdd').css('display', 'block');
  536. });
  537. $('.xl_one').click(function() {
  538. if($('.xlAdd').css('display') == 'block') {
  539. $('.xlAdd').css('display', 'none')
  540. } else {
  541. $('.xlAdd').css('display', 'block')
  542. }
  543. });
  544. $('.addTree').mouseleave(function() {
  545. $(this).css('display', 'none')
  546. });
  547. $('#save_knowledge').on('click', saveKnowledge);
  548. });
  549. //修改弹出框内 下拉树形图参数配置项
  550. function getChangeTree() {
  551. var setting3 = {
  552. data: {
  553. key: {
  554. name: "text"
  555. },
  556. simpleData: {
  557. enable: true,
  558. idKey: "id",
  559. rootPId: 0
  560. }
  561. },
  562. callback: {
  563. onClick: changeTreeClick
  564. }
  565. }
  566. $.get(huayi.config.callcenter_url + 'KnowledgeClass/GetList', {
  567. // "pid": pid,
  568. "token": token,
  569. }, function(result) {
  570. result = $.parseJSON(result);
  571. $.fn.zTree.init($("#addTreeDemo"), setting3, result.data); //实例化树形图
  572. });
  573. }
  574. function changeTreeClick(event, treeId, treeNode) {
  575. $('#kn_type').val(treeNode.text);
  576. $('#kn_type').attr('data-id', treeNode.id);
  577. };
  578. //获取详情
  579. function getDetail() {
  580. var dtd = $.Deferred(); //在函数内部,新建一个Deferred对象
  581. $.ajax({
  582. type: "post",
  583. url: huayi.config.callcenter_url + "Knowledge/GetInfo",
  584. async: true,
  585. dataType: 'json',
  586. data: {
  587. infoid: edit_id,
  588. token: token
  589. },
  590. success: function(data) {
  591. var con = data.data;
  592. $('#kn_title').val(con.F_Title);
  593. $('#kn_key').val(con.F_KeyWords);
  594. $('#kn_content').val(con.F_Description);
  595. $('#kn_type').val(con.F_Expand1);
  596. $('#kn_type').attr('data-id', con.F_CategoryId);
  597. //附件
  598. var proimglists = con.FileUrls;
  599. proimglists = proimglists == null ? [] : proimglists;
  600. limitNum -= proimglists.length;
  601. uploaderImages(); //附件上传
  602. if(proimglists.length > 0) {
  603. $('#fileNum').text(proimglists.length);
  604. var $list = $("#fileList");
  605. $.each(proimglists, function(i, v) {
  606. proimglist.push(v.F_FileId);
  607. if(v.F_FileType.split("\/")[0] === 'image') {
  608. //原来的图片
  609. var $li = $(
  610. '<li><span class="img_mask"><i class="img_del"></i></span>' +
  611. '<img src="' + v.F_FileUrl + '" title="原来的图片"/>' +
  612. '<span class="file_name">' + v.F_FileName + '</span>' +
  613. '</li>'
  614. );
  615. $list.append($li);
  616. } else {
  617. var $liFile = $(
  618. '<li><span class="img_mask"><i class="img_del"></i></span>' +
  619. '<div class="noThumb" title="原来的文件"><i class="glyphicon glyphicon-paperclip"></i><p>无法预览</p></div>' +
  620. '<span class="file_name">' + v.F_FileName + '</span>' +
  621. '</li>'
  622. );
  623. $list.append($liFile);
  624. }
  625. });
  626. $list.find('li').off('click');
  627. $list.find('li').on('click', '.img_del', function() {
  628. $(this).parent().parent().remove();
  629. var itemFileName = $(this).parent().parent().find('.file_name').text();
  630. $.each(proimglists, function(i, v) {
  631. if(v && v.F_FileName == itemFileName) {
  632. proimglist.splice(i, 1);
  633. }
  634. });
  635. $('#fileNum').text(proimglist.length);
  636. limitNum = 6 - proimglist.length;
  637. uploaderImages();
  638. });
  639. }
  640. dtd.resolve(); // 改变Deferred对象的执行状态
  641. }
  642. });
  643. return dtd.promise(); // 返回promise对象
  644. }
  645. //保存
  646. function saveKnowledge() {
  647. var wUrl;
  648. if(!$.trim($('#kn_type').val())) {
  649. layer.confirm('所属分类不能为空', {
  650. icon: 2,
  651. btn: ['确定'] //按钮
  652. });
  653. return;
  654. }
  655. if(!$.trim($('#kn_title').val())) {
  656. layer.confirm('标题不能为空', {
  657. icon: 2,
  658. btn: ['确定'] //按钮
  659. });
  660. return;
  661. }
  662. if(edit_id) {
  663. wURL = "Knowledge/EditInfo";
  664. } else {
  665. wURL = "Knowledge/AddInfo";
  666. }
  667. $.ajax({
  668. type: "post",
  669. url: huayi.config.callcenter_url + wURL,
  670. dataType: 'json',
  671. async: true,
  672. beforeSend: function() { //触发ajax请求开始时执行
  673. $('#save_knowledge').attr("disabled", true);
  674. $('#save_knowledge').text('保存中...');
  675. $(document).off('click', '#save_knowledge', saveKnowledge);
  676. loadIndex = layer.load();
  677. },
  678. data: {
  679. infoid: edit_id,
  680. title: $('#kn_title').val(),
  681. key: $('#kn_key').val(),
  682. con: helper.filter.delHtmlTag($('#kn_content').val()),
  683. pid: $('#kn_type').attr('data-id'),
  684. fileids: proimglist && proimglist.join(','),
  685. token: token
  686. },
  687. success: function(result) {
  688. if(result.state.toLowerCase() === "success") {
  689. var index = parent.layer.getFrameIndex(window.name);
  690. parent.layer.close(index);
  691. parent.table.bootstrapTable('refresh');
  692. layer.msg("保存成功");
  693. }
  694. },
  695. error: function(textStatus) {
  696. layer.close(loadIndex);
  697. layer.confirm('网络繁忙,请稍后再试...', {
  698. icon: 7,
  699. closeBtn: 0,
  700. btn: ['确定'] //按钮
  701. });
  702. $('#save_knowledge').text('保存');
  703. $('#save_knowledge').attr("disabled", false);
  704. $(document).off('click', '#save_knowledge', saveKnowledge);
  705. $(document).on('click', '#save_knowledge', saveKnowledge);
  706. },
  707. complete: function(XMLHttpRequest, textStatus) {
  708. layer.close(loadIndex);
  709. if(textStatus == 'timeout') {
  710. var xmlhttp = window.XMLHttpRequest ? new window.XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHttp");
  711. xmlhttp.abort();
  712. layer.confirm('网络超时,请稍后再试...', {
  713. icon: 7,
  714. closeBtn: 0,
  715. btn: ['确定'] //按钮
  716. });    
  717. }
  718. $('#save_knowledge').text('保存');
  719. $('#save_knowledge').attr("disabled", false);
  720. $(document).off('click', '#save_knowledge', saveKnowledge);
  721. $(document).on('click', '#save_knowledge', saveKnowledge);
  722. },
  723. });
  724. }
  725. //上传附件
  726. function uploaderImages() {
  727. if(uploader) {
  728. uploader.destroy();
  729. }
  730. uploader = WebUploader.create({
  731. auto: true, // 选完文件后,是否自动上传
  732. swf: '../../js/webuploader/Uploader.swf', // swf文件路径
  733. server: huayi.config.callcenter_url + "Knowledge/UpLoadProcess", // 文件接收服务端
  734. pick: '#imgPicker', // 选择文件的按钮。可选
  735. formData: {
  736. token: token
  737. },
  738. // 多类型文件上传
  739. accept: {
  740. title: 'Files',
  741. extensions: 'gif,jpg,jpeg,bmp,png,pdf,doc,docx,txt,xls,xlsx,ppt,pptx,zip,mp3,mp4,text,csv',
  742. mimeTypes: 'image/*,text/*,audio/mpeg,audio/mp4, video/mp4'
  743. //word
  744. +
  745. ',application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document'
  746. //excel
  747. +
  748. ',application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'
  749. //ppt
  750. +
  751. ',application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation' +
  752. ',application/pdf' +
  753. ',application/zip' +
  754. ',application/csv'
  755. // title: 'Images',
  756. // extensions: 'gif,jpg,jpeg,bmp,png',
  757. // mimeTypes: 'image/*'
  758. },
  759. compress: false, //webuploader默认压缩图片,设置compress:false,可以按照原始比例上传图片
  760. //fileVal: "upFile",//设置文件上传域的name。
  761. threads: limitNum, //上传并发数。允许同时最大上传进程数,为了保证文件上传顺序
  762. fileNumLimit: limitNum,
  763. fileSizeLimit: 180 * 1024 * 1024, // 180 M
  764. fileSingleSizeLimit: 30 * 1024 * 1024 // 30 M
  765. });
  766. uploader.on('fileQueued', function(file) {
  767. var $list = $("#fileList"),
  768. $li = $(
  769. '<li id="' + file.id + '"><span class="img_mask"><i class="img_del"></i></span>' +
  770. '<img/>' +
  771. '<span class="img_state"><i></i></span>' +
  772. '<span class="file_name">' + file.name + '</span>' +
  773. '</li>'
  774. ),
  775. $img = $li.find('img');
  776. // $list为容器jQuery实例
  777. $list.append($li);
  778. // 保存缩略图
  779. uploader.makeThumb(file, function(error, src) {
  780. if(error) {
  781. $img.replaceWith('<div class="noThumb"><i class="glyphicon glyphicon-paperclip"></i><p>无法预览</p></div>');
  782. return;
  783. }
  784. $img.attr('src', src);
  785. }, 109, 109); //109*109为缩略图尺寸
  786. //绑定删除
  787. $('#' + file.id).on('click', '.img_del', function() {
  788. uploader.removeFile(file);
  789. var $fileLi = $('#' + file.id);
  790. $fileLi.off().find('.img_del').off().end().remove();
  791. var itemFileName = $(this).parent().parent().find('.file_name').text();
  792. $.each(proimglist, function(i, v) {
  793. if(v && v.filename == itemFileName) {
  794. proimglist.splice(i, 1);
  795. //helper.methods.delImgs(v.filesmallurl, v.fileurl);
  796. }
  797. });
  798. $('#fileNum').text(proimglist.length);
  799. });
  800. });
  801. // 文件上传过程中保存进度条实时显示。
  802. uploader.on('uploadProgress', function(file, percentage) {
  803. var $li = $('#' + file.id),
  804. $percent = $li.find('.progress span');
  805. // 避免重复保存
  806. if(!$percent.length) {
  807. $percent = $('<div class="progress" style="">' +
  808. '<span class="text">0%</span>' +
  809. '<span class="percentage"></span>' +
  810. '</div>')
  811. .appendTo($li)
  812. .find('span');
  813. }
  814. $percent.eq(0).text(Math.round(percentage * 100) + '%');
  815. $percent.eq(1).css('width', Math.round(percentage * 100) + '%');
  816. });
  817. // 文件上传成功,给item添加成功class, 用样式标记上传成功。
  818. uploader.on('uploadSuccess', function(file, res) {
  819. proimglist.push(res.data.F_FileId);
  820. $('#fileNum').text(proimglist.length);
  821. $('#' + file.id).addClass('upload-state-done');
  822. });
  823. // 文件上传失败,显示上传出错。
  824. uploader.on('uploadError', function(file) {
  825. var $li = $('#' + file.id),
  826. $error = $li.find('div.error');
  827. // 避免重复创建
  828. if(!$error.length) {
  829. $error = $('<div class="error"></div>').appendTo($li);
  830. }
  831. $error.text('上传失败');
  832. });
  833. // 完成上传完了,成功或者失败,先删除进度条。
  834. uploader.on('uploadComplete', function(file) {
  835. $('#' + file.id).find('.progress').remove();
  836. });
  837. uploader.onError = function(code) {
  838. // console.log('Error:' + code);
  839. switch(code) {
  840. case "Q_EXCEED_NUM_LIMIT":
  841. layer.msg('只能上传六个文件。');
  842. break;
  843. case "Q_TYPE_DENIED":
  844. layer.msg('文件类型不正确。');
  845. break;
  846. case "F_DUPLICATE":
  847. layer.msg('该文件已上传,请选择其它文件。');
  848. break;
  849. case "F_EXCEED_SIZE":
  850. layer.msg('单文件大小不能超过30M。');
  851. break;
  852. case "Q_EXCEED_SIZE_LIMIT":
  853. layer.msg('总文件大小不能超过180M。');
  854. break;
  855. default:
  856. break;
  857. }
  858. };
  859. }
  860. /**
  861. * 附件上传直接在知识库管理拿来用 结束
  862. * */