SupplierOrder.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385
  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. console.log("1");
  75. var rec = grid.getSelected();
  76. if (rec != undefined && rec != "") {
  77. edit_id = rec.ctid;
  78. mini.prompt("请输入原因:", "退单",
  79. function (action, value) {
  80. if (action == "ok") {
  81. var parms = new Object();
  82. parms.ctid = ctid;
  83. parms.returnreason = value;
  84. postAjax("upd_erp_supplierback", parms, function (data) {
  85. resultShow(data, "grid.reload();");
  86. });
  87. } else {
  88. }
  89. },
  90. true
  91. );
  92. }
  93. else {
  94. mini.alert("请选中一行记录!");
  95. }
  96. }
  97. function verifyFn(ctid) {
  98. if (!confirm("确认审核吗?(供应商将收到此订单)")) return;
  99. postAjax("upd_erp_verifytosupplier", "ctid=" + ctid, function (data) {
  100. resultShow(data, "grid.reload();");
  101. });
  102. }
  103. //点击指派按钮
  104. function assignSupplierFn() {
  105. var rec = grid.getSelected();
  106. if (rec != undefined && rec != "") {
  107. edit_id = rec.ctid;
  108. mini.get("assign_win").show();
  109. $("#assign_win").find("input").val("");
  110. }
  111. else {
  112. mini.alert("请选中一行记录!");
  113. }
  114. }
  115. //保存指派供应商
  116. function saveAssignFn() {
  117. var parms = new Object();
  118. parms.ctid = edit_id;
  119. parms.SupplierName = mini.get("txtSupplierName").getValue();
  120. if (parms.SupplierName == "") {
  121. alert("供应商不能为空!");
  122. return;
  123. }
  124. postAjax("assign_erp_supplier", parms, function (data) {
  125. mini.get("assign_win").hide();
  126. resultShow(data, "grid.reload();");
  127. });
  128. }
  129. function cancelAssignFn() {
  130. mini.get("assign_win").hide();
  131. }
  132. //退单按钮
  133. function returnOrderFn() {
  134. var rec = grid.getSelected();
  135. if (rec != undefined && rec != "") {
  136. edit_id = rec.ctid;
  137. mini.prompt("请输入原因:", "退单",
  138. function (action, value) {
  139. if (action == "ok") {
  140. var parms = new Object();
  141. parms.ctid = edit_id;
  142. parms.returnreason = value;
  143. postAjax("ins_erp_returnreason", parms, function (data) {
  144. resultShow(data, "grid.reload();");
  145. });
  146. } else {
  147. }
  148. },
  149. true
  150. );
  151. }
  152. else {
  153. mini.alert("请选中一行记录!");
  154. }
  155. }
  156. //查询按钮
  157. function searchFn() {
  158. var form = new mini.Form("#ctl00_f_all");
  159. var data = form.getData(true, false);
  160. var s = data;
  161. //var s = mini.encode(data);
  162. //alert(s);
  163. //form.setIsValid(false);
  164. //console.log("565656565", data);
  165. grid.load({
  166. ctid: s.tid, shopname: s.shop, buyer_nick: s.ww, design: s.design, orderState: s.state,
  167. date1: s.date1, date2: s.date2, price1: s.price1, price2: s.price2, supplier: s.supplier, seller_memo: s.memo
  168. });
  169. }
  170. //清除查询内容
  171. function clearFn() {
  172. //$("#ctl00_f_all").find("input").val("");
  173. var form = new mini.Form("#ctl00_f_all");
  174. form.clear();
  175. //mini.get("aSearchMonth").setChecked(false);
  176. //mini.get("aSearchDay").setChecked(false);
  177. //mini.get("aSearchWeek").setChecked(false);
  178. }
  179. function view_search() {
  180. var key = "";
  181. if ($("#txtKey").length > 0) {
  182. key = $("#txtKey").val();
  183. }
  184. grid.load({ key: key, type: $("#txtSearchType").val() });
  185. }
  186. var fileDownArray = [];
  187. var fileDownIndex = 0;
  188. var winArray = new Array();
  189. var cIdArray = new Array();
  190. var clickTtime = false;
  191. function multiExport() {
  192. //defExport();
  193. if (clickTtime) {
  194. return;
  195. }
  196. clickTtime = true;
  197. setTimeout(() => {
  198. clickTtime = false;
  199. }, 1000);
  200. var sels = grid.getSelecteds();
  201. if (sels.length > 0) {
  202. var pArr = new Array();
  203. for (var i = 0; i < sels.length; i++) {
  204. pArr.push(sels[i].ctid);
  205. }
  206. downOneFile(pArr);
  207. //close_handler();
  208. } else {
  209. mini.alert("请选择要下载的记录!");
  210. }
  211. }
  212. function goMultiDownload(sels) {
  213. var total = sels.length;
  214. var culTag = 0;
  215. var errMsg = "";
  216. var pArr = new Array();
  217. progressShow();
  218. //pArr.push(sels[i].ctid);
  219. //noFileDown(downUrl.replace("download", "copydownload"), "hexdata=" + sels[i].ctid + "&userid=" + userId);
  220. noFileDownForMulProcess(downUrl.replace("download", "copydownload"), "hexdata=" + sels + "&userid=" + userId + "&supplier=1",
  221. function (smsg) {
  222. console.log("smsg---------" + smsg);
  223. grid.reload();
  224. if (smsg == "") {
  225. showToast("文件下载结束");
  226. }
  227. progressHide();
  228. },
  229. function (emsg) {
  230. grid.reload();
  231. if (emsg.length > 0) {
  232. alert(emsg);
  233. }
  234. progressHide();
  235. });
  236. //noFileDown(downUrl.replace("download", "copydownload"), "hexdata=" + pArr.join(",") + "&userid=" + userId);
  237. }
  238. var ti_ho = null;
  239. function close_handler() {
  240. if (winArray.length <= 0 && ti_ho) {
  241. clearInterval(ti_ho);
  242. if (grid != null)
  243. grid.reload();
  244. return;
  245. }
  246. for (var w = 0; w < winArray.length; w++) {
  247. if (!winArray[w])
  248. continue;
  249. //console.log(winArray[w].closed);
  250. if (winArray[w].closed) {
  251. winArray.splice(w, 1);
  252. var id = cIdArray[w];
  253. cIdArray.splice(w, 1);
  254. /*
  255. postAjax("update_file_have_down_by_supplier", { "ctid": id }, function (data) {
  256. if (grid != null)
  257. grid.reload();
  258. });*/
  259. break;
  260. }
  261. }
  262. ti_ho = window.setTimeout(function () {
  263. close_handler();
  264. }, 800);
  265. }
  266. function downOneFile(ctid) {
  267. var pdata = "hexdata=" + ctid.join(",") + "&supplier=1&userid=" + userId;
  268. progressShow("设计稿文件打包中,请勿关闭当前页面,以免造成数据遗失。");
  269. var url = downUrl.replace("download", "supplierDownload");
  270. var xhr = new XMLHttpRequest(); // 创建XMLHttpRequest实例
  271. xhr.open('POST', url); // 打开下载文件请求
  272. xhr.responseType = "blob";
  273. xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
  274. xhr.onloadstart = function () {
  275. console.log('Download started'); // 下载开始
  276. };
  277. xhr.onprogress = function (event) {
  278. if (event.lengthComputable) { // 下载进度可计算
  279. var percent = Math.round((event.loaded / event.total) * 100); // 计算下载进度百分比
  280. console.log('Download progress: ' + percent + '%'); // 打印下载进度
  281. let element = $("#progressShowDiv");
  282. rMsg = '文件下载: ' + percent + '%';
  283. element.html(rMsg);
  284. }
  285. };
  286. xhr.onerror = function () {
  287. console.log('Net error');
  288. progressHide();
  289. resultShow("网络出现错误,重新下载");
  290. }
  291. xhr.ontimeout = function () {
  292. console.log('Net timeout');
  293. progressHide();
  294. resultShow("下载超时,重新下载");
  295. }
  296. xhr.onloadend = function () {
  297. console.log('Download completed'); // 下载完成
  298. if (xhr.status === 200) {
  299. try {
  300. let blob = xhr.response;
  301. let fileName = xhr.getResponseHeader("Content-Disposition").split('filename=')[1];
  302. fileName = decodeURIComponent(fileName);
  303. let url = URL.createObjectURL(blob);
  304. let a = document.createElement('a');
  305. a.href = url;
  306. a.download = fileName;
  307. document.body.appendChild(a);
  308. a.click();
  309. document.body.removeChild(a);
  310. window.URL.revokeObjectURL(url);
  311. verifyOrderFn(ctid.join(","))
  312. } catch (e) {
  313. console.log('system error');
  314. progressHide();
  315. resultShow("系统文件错误,稍后下载");
  316. }
  317. } else {
  318. try {
  319. let fileReader = new FileReader()
  320. fileReader.onload = function () {
  321. const json = fileReader.result;
  322. resultShow(json);
  323. }
  324. fileReader.readAsText(xhr.response);
  325. } catch (e) {
  326. }
  327. }
  328. grid.reload();
  329. progressHide();
  330. };
  331. xhr.send(pdata); // 发送下载文件请求
  332. }
  333. function verifyOrderFn(tids) {
  334. if (!confirm("确认下载完成了么?")) return;
  335. let parms = { tids };
  336. progressShow("更新订单信息中");
  337. postAjax("supplier_all_downs", parms, function (data) {
  338. progressHide();
  339. resultShow(data, "grid.reload();");
  340. });
  341. }