SupplierOrder.js 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417
  1. var downUrl = "";
  2. var exData = null;
  3. var edit_id = "";
  4. var _memo_msg = "";
  5. var userId = "";
  6. var userPostCode = "";
  7. var clickTag = 0;
  8. function addFn() {
  9. edit_id = "";
  10. $(".win_tb").find("input").val("");
  11. $(".win_tb").find("textarea").val("");
  12. mini.get("add_win").show();
  13. }
  14. function orderPTimeRenderer(e) {
  15. var grid = e.sender;
  16. var record = e.record;
  17. var html = "<div style=\"display:flex;flex-direction:column;\">";
  18. html += ("<div>" + formatCommonDate(record.FinishPlaceTime) + "</div>");
  19. html += "</div>";
  20. return html;
  21. }
  22. function orderStatusRenderer(e) {
  23. var grid = e.sender;
  24. var record = e.record;
  25. var statestr = getOrderStatestrByState(record.OrderState);
  26. var html = "<div style=\"display:flex;flex-direction:column;\">";
  27. html += ("<div onclick=\"clickToLog('" + record.ctid + "')\" style=\"color:blue;margin-bottom:10px;\">" + statestr + "</div>");
  28. var taostatus = getInitStatusstrByState(record.status);
  29. html += ("<div>" + taostatus + "</div>");
  30. html += "</div>";
  31. return html;
  32. }
  33. function orderCusRenderer(e) {
  34. var grid = e.sender;
  35. var record = e.record;
  36. var html = "<div style=\"display:flex;flex-direction:column;align-items:center;\">";
  37. html += ("<a style=\"color:blue;\">" + record.CustomerUserName + "</a>");
  38. html += ("<a style=\"color:blue;\">" + record.DesignUserName + "</a>");
  39. html += "</div>";
  40. return html;
  41. }
  42. function addressRenderer(e) {
  43. var grid = e.sender;
  44. var record = e.record;
  45. var tid = record.tid;
  46. var rowIndex = e.rowIndex;
  47. var html = "<div>" + record.receiver_name + " " + record.receiver_mobile + " " + record.receiver_state + record.receiver_city + record.receiver_district + record.receiver_address + "</div>";
  48. return html;
  49. }
  50. function actionRenderer(e) {
  51. var record = e.record;
  52. var ctid = record.ctid;
  53. var html = "";
  54. if (record.IsVerifyToSupplier == "False") {
  55. html += getGridBtn("memo", "审核", "verifyFn('" + ctid + "')");
  56. }
  57. else if (record.IsVerifyToSupplier == "True") {
  58. html += "<div style='color:green;'>已审核</div>";
  59. }
  60. return html;
  61. }
  62. function supActionRenderer(e) {
  63. var record = e.record;
  64. var ctid = record.ctid;
  65. var html = "";
  66. html += getGridBtn("stop", "退回", "supplierBackFn('" + ctid + "')");
  67. return html;
  68. }
  69. function supplierBackFn(ctid) {
  70. //if (!confirm("确认退回吗?")) return;
  71. //postAjax("upd_erp_supplierback", "ctid=" + ctid, function (data) {
  72. // resultShow(data, "grid.reload();");
  73. //});
  74. var rec = grid.getSelected();
  75. if (rec != undefined && rec != "") {
  76. edit_id = rec.ctid;
  77. mini.prompt("请输入原因:", "退单",
  78. function (action, value) {
  79. if (action == "ok") {
  80. var parms = new Object();
  81. parms.ctid = ctid;
  82. parms.returnreason = value;
  83. postAjax("upd_erp_supplierback", parms, function (data) {
  84. resultShow(data, "grid.reload();");
  85. });
  86. } else {
  87. }
  88. },
  89. true
  90. );
  91. }
  92. else {
  93. mini.alert("请选中一行记录!");
  94. }
  95. }
  96. function verifyFn(ctid) {
  97. if (!confirm("确认审核吗?(供应商将收到此订单)")) return;
  98. postAjax("upd_erp_verifytosupplier", "ctid=" + ctid, function (data) {
  99. resultShow(data, "grid.reload();");
  100. });
  101. }
  102. //点击指派按钮
  103. function assignSupplierFn() {
  104. var rec = grid.getSelected();
  105. if (rec != undefined && rec != "") {
  106. edit_id = rec.ctid;
  107. mini.get("assign_win").show();
  108. $("#assign_win").find("input").val("");
  109. }
  110. else {
  111. mini.alert("请选中一行记录!");
  112. }
  113. }
  114. //保存指派供应商
  115. function saveAssignFn() {
  116. var parms = new Object();
  117. parms.ctid = edit_id;
  118. parms.SupplierName = mini.get("txtSupplierName").getValue();
  119. if (parms.SupplierName == "") {
  120. alert("供应商不能为空!");
  121. return;
  122. }
  123. postAjax("assign_erp_supplier", parms, function (data) {
  124. mini.get("assign_win").hide();
  125. resultShow(data, "grid.reload();");
  126. });
  127. }
  128. function cancelAssignFn() {
  129. mini.get("assign_win").hide();
  130. }
  131. //退单按钮
  132. function returnOrderFn() {
  133. var rec = grid.getSelected();
  134. if (rec != undefined && rec != "") {
  135. edit_id = rec.ctid;
  136. mini.prompt("请输入原因:", "退单",
  137. function (action, value) {
  138. if (action == "ok") {
  139. var parms = new Object();
  140. parms.ctid = edit_id;
  141. parms.returnreason = value;
  142. postAjax("ins_erp_returnreason", parms, function (data) {
  143. resultShow(data, "grid.reload();");
  144. });
  145. } else {
  146. }
  147. },
  148. true
  149. );
  150. }
  151. else {
  152. mini.alert("请选中一行记录!");
  153. }
  154. }
  155. //查询按钮
  156. function searchFn() {
  157. var form = new mini.Form("#ctl00_f_all");
  158. var data = form.getData(true, false);
  159. var s = data;
  160. //var s = mini.encode(data);
  161. //alert(s);
  162. //form.setIsValid(false);
  163. //console.log("565656565", data);
  164. grid.load({
  165. ctid: s.tid, shopname: s.shop, buyer_nick: s.ww, design: s.design, orderState: s.state,
  166. date1: s.date1, date2: s.date2, price1: s.price1, price2: s.price2, supplier: s.supplier, seller_memo: s.memo
  167. });
  168. }
  169. //清除查询内容
  170. function clearFn() {
  171. //$("#ctl00_f_all").find("input").val("");
  172. var form = new mini.Form("#ctl00_f_all");
  173. form.clear();
  174. //mini.get("aSearchMonth").setChecked(false);
  175. //mini.get("aSearchDay").setChecked(false);
  176. //mini.get("aSearchWeek").setChecked(false);
  177. }
  178. function view_search() {
  179. var key = "";
  180. if ($("#txtKey").length > 0) {
  181. key = $("#txtKey").val();
  182. }
  183. grid.load({ key: key, type: $("#txtSearchType").val() });
  184. }
  185. var fileDownArray = [];
  186. var fileDownIndex = 0;
  187. var winArray = new Array();
  188. var cIdArray = new Array();
  189. var clickTtime = false;
  190. function multiExport() {
  191. //defExport();
  192. if (clickTtime) {
  193. return;
  194. }
  195. clickTtime = true;
  196. setTimeout(() => {
  197. clickTtime = false;
  198. }, 1000);
  199. var sels = grid.getSelecteds();
  200. if (sels.length > 0) {
  201. var pArr = new Array();
  202. for (var i = 0; i < sels.length; i++) {
  203. pArr.push(sels[i].ctid);
  204. }
  205. postAjax("checkSupplierOrder", { ctids: pArr }, function (data) {
  206. if (data.data.length > 0) {
  207. let html = `<div style="text-align: center;font-size: 20px;">订单:<br/>${data.data.join("<br/>")}<br/>已被打回,请重新刷新后再选择下载!</div>`;
  208. mini.showMessageBox({
  209. title: "提示!",
  210. iconCls: "mini-messagebox-question",
  211. maxWidth: 1200,
  212. maxHeight: 500,
  213. buttons: ["确认"],
  214. html,
  215. callback: function (action) { }
  216. })
  217. } else {
  218. //downOneFile(pArr);
  219. }
  220. });
  221. //close_handler();
  222. } else {
  223. mini.alert("请选择要下载的记录!");
  224. }
  225. }
  226. function goMultiDownload(sels) {
  227. var total = sels.length;
  228. var culTag = 0;
  229. var errMsg = "";
  230. var pArr = new Array();
  231. progressShow();
  232. //pArr.push(sels[i].ctid);
  233. //noFileDown(downUrl.replace("download", "copydownload"), "hexdata=" + sels[i].ctid + "&userid=" + userId);
  234. noFileDownForMulProcess(downUrl.replace("download", "copydownload"), "hexdata=" + sels + "&userid=" + userId + "&supplier=1",
  235. function (smsg) {
  236. console.log("smsg---------" + smsg);
  237. grid.reload();
  238. if (smsg == "") {
  239. showToast("文件下载结束");
  240. }
  241. progressHide();
  242. },
  243. function (emsg) {
  244. grid.reload();
  245. if (emsg.length > 0) {
  246. alert(emsg);
  247. }
  248. progressHide();
  249. });
  250. //noFileDown(downUrl.replace("download", "copydownload"), "hexdata=" + pArr.join(",") + "&userid=" + userId);
  251. }
  252. var ti_ho = null;
  253. function close_handler() {
  254. if (winArray.length <= 0 && ti_ho) {
  255. clearInterval(ti_ho);
  256. if (grid != null)
  257. grid.reload();
  258. return;
  259. }
  260. for (var w = 0; w < winArray.length; w++) {
  261. if (!winArray[w])
  262. continue;
  263. //console.log(winArray[w].closed);
  264. if (winArray[w].closed) {
  265. winArray.splice(w, 1);
  266. var id = cIdArray[w];
  267. cIdArray.splice(w, 1);
  268. /*
  269. postAjax("update_file_have_down_by_supplier", { "ctid": id }, function (data) {
  270. if (grid != null)
  271. grid.reload();
  272. });*/
  273. break;
  274. }
  275. }
  276. ti_ho = window.setTimeout(function () {
  277. close_handler();
  278. }, 800);
  279. }
  280. function downOneFile(ctid) {
  281. var pdata = "hexdata=" + ctid.join(",") + "&supplier=1&userid=" + userId;
  282. progressShow("设计稿文件打包中,请勿关闭当前页面,以免造成数据遗失。");
  283. var url = downUrl.replace("download", "supplierDownload");
  284. var xhr = new XMLHttpRequest(); // 创建XMLHttpRequest实例
  285. xhr.open('POST', url); // 打开下载文件请求
  286. xhr.responseType = "blob";
  287. xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
  288. xhr.onloadstart = function () {
  289. console.log('Download started'); // 下载开始
  290. };
  291. xhr.onprogress = function (event) {
  292. if (event.lengthComputable) { // 下载进度可计算
  293. var percent = Math.round((event.loaded / event.total) * 100); // 计算下载进度百分比
  294. console.log('Download progress: ' + percent + '%'); // 打印下载进度
  295. let element = $("#progressShowDiv");
  296. rMsg = '文件下载: ' + percent + '%';
  297. element.html(rMsg);
  298. }
  299. };
  300. xhr.onerror = function () {
  301. console.log('Net error');
  302. progressHide();
  303. resultShow("网络出现错误,重新下载");
  304. }
  305. xhr.ontimeout = function () {
  306. console.log('Net timeout');
  307. progressHide();
  308. resultShow("下载超时,重新下载");
  309. }
  310. xhr.onloadend = function () {
  311. console.log('Download completed'); // 下载完成
  312. if (xhr.status === 200) {
  313. try {
  314. let blob = xhr.response;
  315. let fileName = xhr.getResponseHeader("Content-Disposition").split('filename=')[1];
  316. fileName = decodeURIComponent(fileName);
  317. let url = URL.createObjectURL(blob);
  318. let a = document.createElement('a');
  319. a.href = url;
  320. a.download = fileName;
  321. document.body.appendChild(a);
  322. a.click();
  323. document.body.removeChild(a);
  324. window.URL.revokeObjectURL(url);
  325. verifyOrderFn(ctid.join(","))
  326. } catch (e) {
  327. console.log('system error');
  328. progressHide();
  329. resultShow("系统文件错误,稍后下载");
  330. }
  331. } else {
  332. try {
  333. let fileReader = new FileReader()
  334. fileReader.onload = function () {
  335. const json = fileReader.result;
  336. resultShow(json);
  337. }
  338. fileReader.readAsText(xhr.response);
  339. } catch (e) {
  340. }
  341. }
  342. grid.reload();
  343. progressHide();
  344. };
  345. xhr.send(pdata); // 发送下载文件请求
  346. }
  347. function verifyOrderFn(tids) {
  348. if (!confirm("确认下载完成了么?")) return;
  349. let parms = { tids };
  350. progressShow("更新订单信息中");
  351. postAjax("supplier_all_downs", parms, function (data) {
  352. progressHide();
  353. resultShow(data, "grid.reload();");
  354. });
  355. }
  356. function packOrder() {
  357. let sels = grid.getSelecteds();
  358. if (sels.length > 0) {
  359. let ctids = [];
  360. for (var i = 0; i < sels.length; i++) {
  361. ctids.push(sels[i].ctid);
  362. }
  363. postAjax("packOrderInfo", { ctids: ctids.join(",") }, function (data) {
  364. progressHide();
  365. resultShow(data, "grid.reload();");
  366. });
  367. } else {
  368. mini.alert("请选择要下载的记录!");
  369. }
  370. }