Nessuna descrizione

WorkOrderEnd.js 27KB

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