boss_qtcs.html 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413
  1. {Template header}
  2. <style>
  3. .new_bossok {
  4. width: 70px;
  5. height: 30px;
  6. line-height: 30px;
  7. background: #2ca8a1;
  8. text-align: center;
  9. color: #fff;
  10. border-radius: 5px;
  11. display: inline-block;
  12. margin-left: 20px;
  13. cursor: pointer;
  14. }
  15. </style>
  16. <div class="warp">
  17. <ul class="search bossspexcel" style="border-bottom: 1px solid #ccc;padding:16px 0" id="bossspexcel">
  18. <p style="color:#F00;font-size: 18px;line-height:50px;">单次导出数据条数不可超过65535条!</p>
  19. <p style="color:#333;font-size: 18px;line-height:50px;">按订单商品排列下载</p>
  20. <li>
  21. 店铺:<select name="shop" class="select">
  22. <option value="">请选择</option>
  23. {loop usershop() as $val}
  24. <option value="{$val['id']}">{$val['shopname']}</option>
  25. {/loop}</select>
  26. </select>
  27. </li>
  28. <li>
  29. 类型:<select name="category" class="select">
  30. <option value="128">Wigs</option>
  31. {loop typeclass(16) as $val}
  32. {if $val['id'] != 128}
  33. <option value="{$val['id']}">{$val['title']} - {$val['zh']}</option>
  34. {/if}
  35. {/loop}
  36. <option value="">全部</option>
  37. </select>
  38. </li>
  39. <li>
  40. 颜色:<select name="color" class="select">
  41. <option value="">请选择</option>
  42. <option value="57">Natural Black</option>
  43. {loop typeclassyc(8) as $val}
  44. {if $val['id'] != 57}
  45. <option value="{$val['id']}">{$val['title']} - {$val['zh']}</option>
  46. {/if}
  47. {/loop}
  48. </select>
  49. </li>
  50. <li>
  51. 等级:<select name="grade" class="select">
  52. <option value="">请选择</option>
  53. {loop typeclass(13) as $val}
  54. <option value="{$val['id']}">{$val['title']} - {$val['zh']}</option>
  55. {/loop}
  56. </select>
  57. </li>
  58. <li>
  59. 曲度:<select name="lowe" class="select">
  60. <option value="">请选择</option>
  61. {loop typeclassyc(15) as $val}
  62. <option value="{$val['id']}">{$val['title']} - {$val['zh']}</option>
  63. {/loop}
  64. </select>
  65. </li>
  66. <li>
  67. 密度:<select name="density" class="select">
  68. <option value="">请选择</option>
  69. {loop typeclassyc(10) as $val}
  70. <option value="{$val['id']}">{$val['title']} - {$val['zh']}</option>
  71. {/loop}
  72. </select>
  73. </li>
  74. <li>
  75. 头套种类:<select name="lacetype" class="select">
  76. <option value="">请选择</option>
  77. {loop typeclassyc(18) as $val}
  78. <option value="{$val['id']}">{$val['title']} - {$val['zh']}</option>
  79. {/loop}
  80. </select>
  81. </li>
  82. <li>
  83. 长度:<select name="size" class="select">
  84. <option value="">请选择</option>
  85. {loop typeclassyc(14) as $val} <!-- 这个是不显示部分曲度 -->
  86. <option value="{$val['id']}">{$val['title']}</option>
  87. {/loop}
  88. </select>
  89. </li>
  90. <li>
  91. 仓库:<select name="warehouse" class="select">
  92. <option value="">请选择</option>
  93. {loop $wh as $val} <!-- 这个是不显示部分曲度 -->
  94. <option value="{$val['id']}">{$val['title']}</option>
  95. {/loop}
  96. </select>
  97. </li>
  98. <li><select name="time" class="select">
  99. <option value="librarytime">出库时间</option>
  100. <option value="dtime">订单时间</option>
  101. </select> :<input id="outk" value="{date('Y-m-d',time()-30*24*3600)} 0:00" name="timetk" type="text" onClick="laydate({istime: true,format:'YYYY-MM-DD hh:mm'})" readonly>
  102. 至&nbsp;&nbsp;&nbsp;&nbsp; <input id="outj" value="{date('Y-m-d',time())} 23:59" name="timetj" type="text" onClick="laydate({istime: true,format:'YYYY-MM-DD hh:mm'})" readonly></li>
  103. <li><font class="new_bossok" onclick="bossspexcel('bossspexcel')">下载结果</font></li>
  104. </ul>
  105. <ul class="search excellkh" style="border-bottom: 1px solid #ccc;padding:16px 0">
  106. <p style="color:#333;font-size: 18px;line-height:50px;">下载老客户数据: <font style="color:#888;font-size: 16px;">数据仅包含店内订单。分母:店内全部订单,分子:购买次数大于1的店内订单</font></p>
  107. <li>
  108. 店铺:<select name="shop" class="select">
  109. <option value="">全部</option>
  110. {loop usershop() as $val}
  111. <option value="{$val['id']}">{$val['shopname']}</option>
  112. {/loop}</select>
  113. </select>
  114. </li>
  115. <li><select name="time" class="select">
  116. <option value="dtime">订单时间</option>
  117. </select> :<input id="lkhk" value="{date('Y-m-d',time()-24*3600)} 0:00" name="timetk" type="text" onClick="laydate({istime: true,format:'YYYY-MM-DD hh:mm'})" readonly>
  118. 至&nbsp;&nbsp;&nbsp;&nbsp; <input id="lkhj" value="{date('Y-m-d',time())} 23:59" name="timetj" type="text" onClick="laydate({istime: true,format:'YYYY-MM-DD hh:mm'})" readonly></li>
  119. <li><font class="bossok" data-c="excellkh" data-u="excellkh" data-e="1">下载结果</font></li>
  120. </ul>
  121. <ul class="search excelshop" style="border-bottom: 1px solid #ccc;padding:16px 0">
  122. <p style="color:#333;font-size: 18px;line-height:50px;">下载店铺数据: <font style="color:#888;font-size: 16px;">数据包含本店全部订单,含店内单和线下单。</font></p>
  123. <li>
  124. 店铺:<select name="shop" class="select">
  125. <option value="">全部</option>
  126. {loop usershop() as $val}
  127. <option value="{$val['id']}">{$val['shopname']}</option>
  128. {/loop}</select>
  129. </select>
  130. </li>
  131. <li><select name="time" class="select">
  132. <option value="dtime">订单时间</option>
  133. </select> :<input id="outk" value="{date('Y-m-d',time()-24*3600)} 0:00" name="timetk" type="text" onClick="laydate({istime: true,format:'YYYY-MM-DD hh:mm'})" readonly>
  134. 至&nbsp;&nbsp;&nbsp;&nbsp; <input id="outj" value="{date('Y-m-d',time())} 23:59" name="timetj" type="text" onClick="laydate({istime: true,format:'YYYY-MM-DD hh:mm'})" readonly></li>
  135. <li><font class="bossok" data-c="excelshop" data-u="excelshop" data-e="1">下载结果</font></li>
  136. </ul>
  137. <ul class="search excelpass" style="border-bottom: 1px solid #ccc;padding:16px 0">
  138. <p style="color:#333;font-size: 18px;line-height:50px;">Excel密码</p>
  139. <li>Excel密码:<input value="{$excelpass}" name="excelpass" type="text"></li>
  140. <li>每个账号每天使用解密次数:<input value="{$excelusernum}" name="excelusernum" type="text"></li>
  141. <li>每个账号每次解密数量:<input value="{$exceljmnum}" name="exceljmnum" type="text"></li>
  142. <li><font class="bossok" data-c="excelpass" data-u="setting">修改密码</font></li>
  143. </ul>
  144. <ul class="search dpay" style="border-bottom: 1px solid #ccc;padding:16px 0">
  145. <p style="color:#333;font-size: 18px;line-height:50px;">调整费率</p>
  146. <li>订单时间:<input id="outk" value="{date('Y-m-d',time()-30*24*3600)} 0:00" name="timetk" type="text" onClick="laydate({istime: true,format:'YYYY-MM-DD hh:mm'})" readonly>
  147. 至&nbsp;&nbsp;&nbsp;&nbsp; <input id="outk" value="{date('Y-m-d',time())} 23:59" name="timetj" type="text" onClick="laydate({istime: true,format:'YYYY-MM-DD hh:mm'})" readonly></li>
  148. <li>支付类型:<select name="pay" class="select" style="width:90px">
  149. <option value="">请选择</option>
  150. {loop typeclass(4,3) as $val}
  151. <option value="{$val['id']}">{$val['title']}</option>
  152. {/loop}
  153. </select></li>
  154. <li><font class="bossok" data-c="dpay" data-u="dpay">确定调整</font></li>
  155. </ul>
  156. <ul class="search sctime" style="border-bottom: 1px solid #ccc;padding:16px 0">
  157. <p style="color:#333;font-size: 18px;line-height:50px;">订单时差</p>
  158. <li>需要减去的时间(小时):<input value="{$sctime}" name="sctime" type="text" style="width:150px;text-align: center;"></li>
  159. <li><font class="bossok" data-c="sctime" data-u="sctime">确定</font></li>
  160. </ul>
  161. </div>
  162. <script type="text/javascript" src="{$theme}js/laydate2.js"></script>
  163. <script>
  164. $("select[name='en']").change(function(){
  165. var index = $(this).find("option:selected").index();
  166. $(this).parent("li").find("select[name='zh'] option:eq("+index+")").prop('selected','selected');
  167. $(this).parent("li").find("select[name='hg'] option:eq("+index+")").prop('selected','selected');
  168. });
  169. $("select[name='zh']").change(function(){
  170. var index = $(this).find("option:selected").index();
  171. $(this).parent("li").find("select[name='en'] option:eq("+index+")").prop('selected','selected');
  172. $(this).parent("li").find("select[name='hg'] option:eq("+index+")").prop('selected','selected');
  173. });
  174. $("select[name='hg']").change(function(){
  175. var index = $(this).find("option:selected").index();
  176. $(this).parent("li").find("select[name='zh'] option:eq("+index+")").prop('selected','selected');
  177. $(this).parent("li").find("select[name='en'] option:eq("+index+")").prop('selected','selected');
  178. });
  179. $(".sc").click(function() {
  180. $(this).parent("li").remove();
  181. });
  182. $(".bossdpex").click(function() {
  183. var f = {}; var i = 0;
  184. $(".dpexxq li").each(function() {
  185. var v = {};
  186. $(this).find('input').each(function() {
  187. v[$(this).attr("name")] = $(this).val();
  188. });
  189. $(this).find('.select').each(function() {
  190. v[$(this).attr("name")] = $(this).children("option:selected").val();
  191. });
  192. f[i] = v;
  193. i++;
  194. });
  195. var d = "n=" + $(".dpex input[name='number']").val() + "&postdata="+JSON.stringify(f);
  196. layx.load('loadId','处理中,请稍后');
  197. $.ajax({
  198. url: "/boss/dpex",
  199. data: d,
  200. type: "POST",
  201. dataType: "json",
  202. success: function(a) {
  203. layx.destroy('loadId');
  204. if (a && a.success) {
  205. $(".dpexyd").html(a.msg);
  206. } else {
  207. $(".express p:eq(0)").html(a.msg);
  208. $(".express p:eq(1)").html("<font class='esc'>确 定</font>");
  209. $(".express").show();
  210. }
  211. }
  212. });
  213. });
  214. </script>
  215. <script>
  216. function bossspexcel(id_name){
  217. var f = "";
  218. $("."+id_name+" input:text").each(function() {
  219. var str2 = escape($(this).val());
  220. str2 = $(this).val().replace(/\</g,"&lt;");
  221. str2 = str2.replace(/\>/g,"&gt;");
  222. str2 = str2.replace(/\+/g,"%2B");
  223. str2 = str2.replace(/&/g,"%26");
  224. f = f + $(this).attr("name") + "=" + str2 + "&";
  225. });
  226. $("."+id_name+" .select").each(function() {
  227. f = f + $(this).attr("name") + "=" + $(this).children("option:selected").val() + "&";
  228. });
  229. let url = "/boss/spexceljs?"+f;
  230. $.get(url,function(res){
  231. if(res.code==0){
  232. layx.destroy('loadId');
  233. layx.confirm('提示',res.msg,null,{
  234. buttons:[
  235. {
  236. label:'确定',
  237. callback:function(id, button, event){
  238. layx.destroy(id);
  239. }
  240. }
  241. ],dialogIcon:'error',shadable:0.6
  242. });
  243. }else{
  244. const fileName = res.filename+'.xlsx' ;
  245. // 将数据转换为工作表
  246. let list = [];
  247. let data = res.data;
  248. for(let item in data){
  249. list.push({
  250. "名称":data[item].t,
  251. "中文":data[item].z,
  252. "类型":data[item].c,
  253. "SKU":data[item].w,
  254. "用友料号":data[item].j,
  255. "数量":data[item].n*1,
  256. "许昌仓发货量":data[item].xcc*1,
  257. "美仓发货量":data[item].mc*1,
  258. "定制仓发货量":data[item].dzc*1,
  259. "其他仓发货量":data[item].qtc*1,
  260. })
  261. }
  262. const worksheet = XLSX.utils.json_to_sheet(list);
  263. // 创建工作簿
  264. const workbook = XLSX.utils.book_new();
  265. worksheet['!cols'] =
  266. [
  267. { wch: 80 },
  268. { wch: 80 },
  269. { wch: 20 },
  270. { wch: 20 },
  271. { wch: 20 },
  272. { wch: 10 },
  273. { wch: 10 },
  274. { wch: 10 },
  275. { wch: 10 },
  276. { wch: 10 },
  277. ];
  278. // 将工作表添加到工作簿
  279. XLSX.utils.book_append_sheet(workbook, worksheet, res.filename);
  280. // 导出文件
  281. XLSX.writeFile(workbook, fileName);
  282. layx.destroy('loadId');
  283. }
  284. },'json')
  285. }
  286. function bossspexcelbak(id_name){
  287. let obj = {}
  288. let shop = $("select[name='shop']").val();
  289. if(shop){
  290. obj.shop = shop;
  291. }
  292. let category = $("select[name='category']").val();
  293. if(category){
  294. obj.category = category;
  295. }
  296. let color = $("select[name='color']").val();
  297. if(color){
  298. obj.color = color;
  299. }
  300. let grade = $("select[name='grade']").val();
  301. if(grade){
  302. obj.grade = grade;
  303. }
  304. let lowe = $("select[name='lowe']").val();
  305. if(lowe){
  306. obj.lowe = lowe;
  307. }
  308. let density = $("select[name='density']").val();
  309. if(density){
  310. obj.density = density;
  311. }
  312. let lacetype = $("select[name='lacetype']").val();
  313. if(lacetype){
  314. obj.lacetype = lacetype;
  315. }
  316. let size = $("select[name='size']").val();
  317. if(size){
  318. obj.size = size;
  319. }
  320. let warehouse = $("select[name='warehouse']").val();
  321. if(warehouse){
  322. obj.warehouse = warehouse;
  323. }
  324. let time = $("select[name='time']").val();
  325. if(time){
  326. obj.time = time;
  327. }
  328. let timetk = $("input[name='timetk']").val();
  329. if(timetk){
  330. obj.timetk = timetk;
  331. }
  332. let timetj = $("input[name='timetj']").val();
  333. if(timetj){
  334. obj.timetj = timetj;
  335. }
  336. layx.load('loadId','处理中,请稍后');
  337. $.post("/boss/spexceljs",obj,function(res){
  338. if(res.code==0){
  339. layx.destroy('loadId');
  340. layx.confirm('提示',res.msg,null,{
  341. buttons:[
  342. {
  343. label:'确定',
  344. callback:function(id, button, event){
  345. layx.destroy(id);
  346. }
  347. }
  348. ],dialogIcon:'error',shadable:0.6
  349. });
  350. }else{
  351. const fileName = res.filename+'.xlsx' ;
  352. // 将数据转换为工作表
  353. let list = [];
  354. let data = res.data;
  355. for(let item in data){
  356. list.push({
  357. "名称":data[item].t,
  358. "中文":data[item].z,
  359. "类型":data[item].c,
  360. "SKU":data[item].w,
  361. "用友料号":data[item].j,
  362. "数量":data[item].n*1,
  363. "许昌仓发货量":data[item].xcc*1,
  364. "美仓发货量":data[item].mc*1,
  365. "定制仓发货量":data[item].dzc*1,
  366. "其他仓发货量":data[item].qtc*1,
  367. })
  368. }
  369. const worksheet = XLSX.utils.json_to_sheet(list);
  370. // 创建工作簿
  371. const workbook = XLSX.utils.book_new();
  372. worksheet['!cols'] =
  373. [
  374. { wch: 80 },
  375. { wch: 80 },
  376. { wch: 20 },
  377. { wch: 20 },
  378. { wch: 20 },
  379. { wch: 10 },
  380. { wch: 10 },
  381. { wch: 10 },
  382. { wch: 10 },
  383. { wch: 10 },
  384. ];
  385. // 将工作表添加到工作簿
  386. XLSX.utils.book_append_sheet(workbook, worksheet, res.filename);
  387. // 导出文件
  388. XLSX.writeFile(workbook, fileName);
  389. layx.destroy('loadId');
  390. }
  391. },'json')
  392. }
  393. </script>
  394. <script type="text/javascript" src="{$theme}js/excel/xlxs.js" ></script>
  395. {Template footer}