PddDelivered.js 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472
  1. var exData = null;
  2. var edit_id = "";
  3. var _memo_msg = "";
  4. var socket = null;
  5. var userPostCode = "";
  6. const printType = "delivered";
  7. function addFn() {
  8. edit_id = "";
  9. edit_shop = "";
  10. $(".win_tb").find("input").val("");
  11. $(".win_tb").find("textarea").val("");
  12. mini.get("add_win").show();
  13. }
  14. let replace_list = [
  15. ["皙贝", "白卡"],
  16. ["睿狐", "莱尼"],
  17. ["岚蝶", "安格"],
  18. ["琮纹", "刚古"],
  19. ["珠光", "珠光"],
  20. ["溪雪", "珠光"],
  21. ["雅柔", "雅柔"],
  22. ["萱姿", "雅柔"],
  23. ["草香", "草香"],
  24. ["芳怡", "草香"],
  25. ["金绒", "牛皮"],
  26. ["素芸", "棉卡"],
  27. ["玉蕊", "蛋壳"]
  28. ]
  29. function memoRenderer(e) {
  30. var record = e.record;
  31. //var html = "<textarea class='memo-class' rows=\"3\" readonly=\"readonly\" id='" + record.ctid + "' ondblclick=\"doubleClick('" + record.ctid + "')\">" + record.seller_memo + "</textarea>";
  32. let memo = record.seller_memo;
  33. replace_list.forEach(item => {
  34. memo = memo.replace(item[0], item[1]);
  35. })
  36. var html = "<div class='white-space' ondblclick=\"copyText(this)\" data-ctid = \"" + record.ctid + "\">" + memo + "</div>";
  37. return html;
  38. }
  39. function copyText(obj) {
  40. var div = obj;
  41. var rec = grid.getSelected();
  42. let text = div.innerText;
  43. let ctid = div.dataset.ctid;
  44. div.innerText = text + "《" + ctid + "》";
  45. if (document.body.createTextRange) {
  46. var range = document.body.createTextRange();
  47. range.moveToElementText(div);
  48. range.select();
  49. } else if (window.getSelection) {
  50. var selection = window.getSelection();
  51. var range = document.createRange();
  52. range.selectNodeContents(div);
  53. selection.removeAllRanges();
  54. selection.addRange(range);
  55. } else {
  56. //console.warn("none");
  57. return;
  58. }
  59. document.execCommand("Copy");
  60. div.innerText = text;
  61. mini.showTips({
  62. content: "复制成功!",
  63. state: "danger",
  64. x: "Center",
  65. y: "Center",
  66. timeout: 1000
  67. });
  68. }
  69. function viewCdrImg(id) {
  70. var rec = grid.getSelected();
  71. if (rec.OrderState < 5) {
  72. mini.alert("还没有上传文件,没有图片");
  73. return;
  74. }
  75. var finish = formatCommonDate(rec.FinishDesignTime);
  76. var yearmonth = finish.substring(0, 7);
  77. var monthUrl = yearmonth.replace("/", "");
  78. var url = cdrImgUrl + "/" + monthUrl + "/" + rec.seller_memo + ".png";
  79. mini.get("viewimg_win").show();
  80. $("#r_img").attr("src", url);
  81. }
  82. function orderPTimeRenderer(e) {
  83. var grid = e.sender;
  84. var record = e.record;
  85. var html = "<div style=\"display:flex;flex-direction:column;\">";
  86. if (userPostCode != "Supplier") {
  87. html += ("<div>" + record.seller_nick + "</div>");
  88. html += getWWurlByNick(record.buyer_nick);
  89. }
  90. html += ("<div>" + formatCommonDate(record.pay_time) + "</div>");
  91. html += "</div>";
  92. return html;
  93. }
  94. function deliveryTimeRenderer(e) {
  95. var record = e.record;
  96. var html = "";
  97. html += ("<div>" + formatCommonDate(record.delivery_time) + "</div>");
  98. return html;
  99. }
  100. function finishPlaceTimeRenderer(e) {
  101. var record = e.record;
  102. var html = "<div style=\"display:flex;flex-direction:column;\">";
  103. html += ("<div>" + formatCommonDate(record.FinishPlaceTime) + "</div>");
  104. html += "</div>";
  105. return html;
  106. }
  107. function orderStatusRenderer(e) {
  108. var grid = e.sender;
  109. var record = e.record;
  110. var statestr = getOrderStatestrByState(record.OrderState);
  111. var html = "<div style=\"display:flex;flex-direction:column;\">";
  112. html += ("<div onclick=\"clickToLog('" + record.ctid + "')\" style=\"color:blue;margin-bottom:10px;\">" + statestr + "</div>");
  113. var taostatus = getInitStatusstrByState(record.status);
  114. html += ("<div>" + taostatus + "</div>");
  115. html += "</div>";
  116. return html;
  117. }
  118. function orderCusRenderer(e) {
  119. var grid = e.sender;
  120. var record = e.record;
  121. var ctid = record.ctid;
  122. var rowIndex = e.rowIndex;
  123. var html = "<div style=\"display:flex;flex-direction:column;align-items:center;\">";
  124. html += ("<a>客服:" + record.CustomerUserName + "</a>");
  125. html += ("<a>设计师:" + record.DesignUserName + "</a>");
  126. html += ("<a>供应商:" + record.SupplierName + "</a>");
  127. //if (record.MemoOpt == 3) {
  128. // html += ("<a style=\"width:40px;color:red;border:1px solid red;\" onclick=\"clickResetOptFn()\">查货</a>");
  129. //}
  130. html += "</div>";
  131. return html;
  132. }
  133. function orderDesignRenderer(e) {
  134. var grid = e.sender;
  135. var record = e.record;
  136. var tid = record.tid;
  137. var rowIndex = e.rowIndex;
  138. var html = "<a style=\"color:blue;\">" + "我是设计" + "</a>";
  139. return html;
  140. }
  141. function addressRenderer(e) {
  142. var grid = e.sender;
  143. var record = e.record;
  144. var tid = record.tid;
  145. var rowIndex = e.rowIndex;
  146. var html = "<div>" + record.receiver_name + " " + record.receiver_mobile + " " + record.receiver_state + record.receiver_city + record.receiver_district + record.receiver_address + "</div>";
  147. return html;
  148. }
  149. //退单按钮
  150. function returnOrderFn() {
  151. var rec = grid.getSelected();
  152. if (rec != undefined && rec != "") {
  153. edit_id = rec.ctid;
  154. mini.prompt("请输入原因:", "退单",
  155. function (action, value) {
  156. if (action == "ok") {
  157. var parms = new Object();
  158. parms.ctid = edit_id;
  159. parms.returnreason = value;
  160. postAjax("ins_erp_returnreason", parms, function (data) {
  161. resultShow(data, "grid.reload();");
  162. });
  163. } else {
  164. }
  165. },
  166. true
  167. );
  168. }
  169. else {
  170. mini.alert("请选中一行记录!");
  171. }
  172. }
  173. //点击查货重置状态
  174. function clickResetOptFn() {
  175. var rec = grid.getSelected();
  176. if (!confirm("确认已完成客服的留言?")) return;
  177. postAjax("reset_erp_memoopt", "ctid=" + rec.ctid, function (data) {
  178. resultShow(data, "grid.reload();");
  179. });
  180. }
  181. function canceIssueFn() {
  182. mini.get("issue_win").hide();
  183. }
  184. function setIssueContent(eid) {
  185. edit_id = eid;
  186. mini.get("issue_win").show();
  187. }
  188. function saveIssueFn() {
  189. var parms = new Object();
  190. parms.ctid = edit_id;
  191. parms.content = $("#txtIssue").val();
  192. postAjax("saveIssueContent", parms, function (data) {
  193. mini.get("issue_win").hide();
  194. resultShow(data, "grid.reload();");
  195. });
  196. }
  197. //点击指派按钮
  198. function assignSupplierFn() {
  199. var rows = grid.getSelecteds();
  200. if (rows.length <= 0) {
  201. mini.alert("请选中一行记录!");
  202. return;
  203. }
  204. else {
  205. edit_id = "";
  206. for (var rec of rows) {
  207. edit_id += rec.ctid;
  208. edit_id += ",";
  209. }
  210. mini.get("assign_win").show("center", "top");
  211. $("#assign_win").find("input").val("");
  212. }
  213. }
  214. //保存指派供应商
  215. function saveAssignFn() {
  216. var parms = new Object();
  217. parms.ctid = edit_id;
  218. parms.SupplierName = mini.get("txtSupplierName").getValue();
  219. if (parms.SupplierName == "") {
  220. alert("供应商不能为空!");
  221. return;
  222. }
  223. postAjax("assign_erp_supplier", parms, function (data) {
  224. mini.get("assign_win").hide();
  225. resultShow(data, "grid.reload();");
  226. });
  227. }
  228. function cancelAssignFn() {
  229. mini.get("assign_win").hide();
  230. }
  231. //查询按钮
  232. function searchFn() {
  233. var form = new mini.Form("#ctl00_f_all");
  234. var data = form.getData(true, false);
  235. var s = data;
  236. //var s = mini.encode(data);
  237. //alert(s);
  238. //form.setIsValid(false);
  239. //console.log("565656565", data);
  240. grid.load({
  241. ctid: s.tid, shopname: s.shop, buyer_nick: s.ww, design: s.design, orderState: s.state, supplier: s.supplier,
  242. date1: s.date1, date2: s.date2, price1: s.price1, price2: s.price2, address: s.address, seller_memo: s.memo, placedate1: s.placedate1, placedate2: s.placedate2,
  243. deliverydate1: s.deliverydate1, deliverydate2: s.deliverydate2, logistics: s.logistics
  244. });
  245. }
  246. //清除查询内容
  247. function clearFn() {
  248. //$("#ctl00_f_all").find("input").val("");
  249. var form = new mini.Form("#ctl00_f_all");
  250. form.clear();
  251. }
  252. function multiExport() {
  253. defExport();
  254. }
  255. function newPageSearchFn() {
  256. var form = new mini.Form("#ctl00_f_all");
  257. var data = form.getData(true, false);
  258. var s = data;
  259. var sData = JSON.stringify(data);
  260. var sendData = "sData=" + sData;
  261. if (parent != null) parent.openNewSearchTab("已发货列表", "EDelivery/DeliveredList.aspx", sendData);
  262. }
  263. $(function () {
  264. doConnect();
  265. if (openPageData != "") {
  266. var s = openPageData;
  267. grid.load({
  268. ctid: s.tid, shopname: s.shop, buyer_nick: s.ww, design: s.design, orderState: s.state, supplier: s.supplier,
  269. date1: s.date1, date2: s.date2, price1: s.price1, price2: s.price2, address: s.address, seller_memo: s.memo, placedate1: s.placedate1, placedate2: s.placedate2,
  270. deliverydate1: s.deliverydate1, deliverydate2: s.deliverydate2
  271. });
  272. var form = new mini.Form("#ctl00_f_all");
  273. if (form != undefined && form != null) {
  274. form.setData(s);
  275. }
  276. //$("#ic_chkNewPageSearch")[0].checked = true;
  277. }
  278. });
  279. function actionRenderer(e) {
  280. var record = e.record;
  281. var id = record.ID;
  282. var html = getGridBtn("view", "预览文件", "viewCdrImg('" + id + "')");
  283. html += getGridBtn("edit", "修改物流", "changeExpress('" + record.ctid + "')");
  284. html += getGridBtn("dis", "问题反馈", "setIssueContent('" + record.ctid + "')");
  285. if (!!record.attachments) {
  286. let url = record.attachments;
  287. if (url.indexOf("http:") == -1 && url.indexOf("https:") == -1) {
  288. url = "https://ltcloudfile.oss-cn-hangzhou.aliyuncs.com/" + url;
  289. }
  290. html += getGridBtn("view", "下载附件", "downAtta('" + url + "')");
  291. }
  292. if (record.authCount > 0) {
  293. html += getGridBtn("view", "授权下载", "downAuth('" + record.tid + "','" + record.ctid + "')");
  294. }
  295. html += getGridBtn("word", "重新打单", "rePlaceOrder('" + record.ctid + "','" + record.seller_memo + "')");
  296. return html;
  297. }
  298. function downAtta(url) {
  299. var pdata = "url=" + url;
  300. var xhr = new XMLHttpRequest(); // 创建XMLHttpRequest实例
  301. xhr.open('POST', "../plug/uploadFileOss.aspx"); // 打开下载文件请求
  302. xhr.responseType = "blob";
  303. xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
  304. xhr.onloadstart = function () {
  305. };
  306. xhr.onprogress = function (event) {
  307. };
  308. xhr.onerror = function () {
  309. progressHide();
  310. }
  311. xhr.ontimeout = function () {
  312. progressHide();
  313. }
  314. xhr.onloadend = function () {
  315. if (xhr.status === 200) {
  316. try {
  317. let blob = xhr.response;
  318. let fileName = xhr.getResponseHeader("Content-Disposition").split('filename=')[1];
  319. fileName = decodeURIComponent(fileName);
  320. let url = URL.createObjectURL(blob);
  321. let a = document.createElement('a');
  322. a.href = url;
  323. a.download = fileName;
  324. document.body.appendChild(a);
  325. a.click();
  326. document.body.removeChild(a);
  327. window.URL.revokeObjectURL(url);
  328. } catch (e) {
  329. progressHide();
  330. }
  331. } else {
  332. }
  333. progressHide();
  334. };
  335. xhr.send(pdata); // 发送下载文件请求
  336. }
  337. function onBeforeOpen(e) {
  338. var grid = mini.get("m_grid");
  339. var menu = e.sender;
  340. var row = grid.getSelected();
  341. var rowIndex = grid.indexOf(row);
  342. if (!row) {
  343. e.cancel = true;
  344. //阻止浏览器默认右键菜单
  345. e.htmlEvent.preventDefault();
  346. return;
  347. }
  348. }
  349. function onCopyOrder(e) {
  350. var rec = grid.getSelected();
  351. //rec.ctid
  352. copyTextPlus(rec.ctid);
  353. }
  354. function onCopyBuyerNick(e) {
  355. var rec = grid.getSelected();
  356. //rec.ctid
  357. copyTextPlus(rec.buyer_nick);
  358. }
  359. function changeExpress(ctid) {
  360. $("#changeCtid").val(ctid);
  361. mini.get("change_win").show();
  362. }
  363. function saveChangeFn() {
  364. let txtChangeTransNo = $("#txtChangeTransNo").val();
  365. if (txtChangeTransNo.length == 0) {
  366. mini.alert("请输入新物流号!");
  367. return;
  368. }
  369. let txtChangeTransCom = $("#txtChangeTransCom").val();
  370. if (txtChangeTransCom.length == 0) {
  371. mini.alert("请输入新物公司!");
  372. return;
  373. }
  374. let ctid = $("#changeCtid").val();
  375. postAjax("change_express_info", { ctid, transNo: txtChangeTransNo, transCom: txtChangeTransCom }, function (data) {
  376. cancelChangeFn();
  377. resultShow(data, "grid.reload();");
  378. });
  379. }
  380. function cancelChangeFn() {
  381. $("#txtChangeTransNo").val("");
  382. $("#txtChangeTransCom").val("");
  383. mini.get("change_win").hide();
  384. }
  385. function changeDeliveryRenderer(e) {
  386. var record = e.record;
  387. var html = "<div>" + record.modExpressCom + "</div>";
  388. html += "<div>" + record.modExpressNo + "</div>";
  389. return html;
  390. }
  391. function rePlaceOrder(ctid, seller_memo) {
  392. postAjax("getExpressInfo", { ctid, }, function (data) {
  393. console.log(data);
  394. let html = "";
  395. let tableHtml = "";
  396. let result = data.data;
  397. if (result.length > 0) {
  398. html = ""
  399. for (let i = 0; i < result.length; i++) {
  400. let item = result[i];
  401. tableHtml += `<tr>
  402. <td>${item.out_sid}</td>
  403. <td><div style="cursor: pointer;" onclick="printPlace('${item.out_sid}','${seller_memo}')">打印</div></td>
  404. </tr>`
  405. }
  406. html = `<div style="font-size: 20px;row-gap: 10px;display: flex;flex-direction: column;"><table border="1">${tableHtml}</table></div>
  407. <style>.mini-messagebox-content td{font-size:14px;padding: 5px;}.mini-panel-body{overflow-y: scroll !important;}</style>`
  408. }
  409. mini.showMessageBox({
  410. title: "选择单号重新打单!",
  411. iconCls: "mini-messagebox-question",
  412. maxWidth: 1200,
  413. maxHeight: 500,
  414. buttons: [],
  415. html,
  416. })
  417. });
  418. }
  419. function printPlace(out_sid, seller_memo) {
  420. if (!confirm("确认重新打单?")) return;
  421. postAjax("getExpressPostData", { express: out_sid, }, function (data) {
  422. doPrintEn(JSON.stringify(data.data), seller_memo)
  423. })
  424. }
  425. function downAuth(tid, ctid) {
  426. postAjax("getCellFile", { tid: tid, ctid: ctid, type: "AUTH_FILE" }, function (data) {
  427. for (var i = 0; i < data.length; i++) {
  428. downAtta(data[i].url)
  429. }
  430. });
  431. }