|
|
@@ -0,0 +1,480 @@
|
|
|
+{Template header}
|
|
|
+<style>
|
|
|
+ .diysearch{
|
|
|
+ padding: 5px;
|
|
|
+ }
|
|
|
+ .diysearch select{
|
|
|
+ width: 110px;
|
|
|
+ height: 28px;
|
|
|
+ color: #333;
|
|
|
+ border: 1px #ccc solid;
|
|
|
+ font-size: 13px;
|
|
|
+ margin-right: 20px;
|
|
|
+ border-radius: 5px;
|
|
|
+ }
|
|
|
+ .diysearch input{
|
|
|
+ width: 100px;
|
|
|
+ height: 26px;
|
|
|
+ color: #000;
|
|
|
+ border: 1px #ccc solid;
|
|
|
+ font-size: 13px;
|
|
|
+ margin-right: 20px;
|
|
|
+ text-align: center;
|
|
|
+ color: #333;
|
|
|
+ border-radius: 5px;
|
|
|
+ }
|
|
|
+ .diysearch .qd_show{
|
|
|
+ width: 70px;
|
|
|
+ height: 30px;
|
|
|
+ line-height: 30px;
|
|
|
+ background: #2ca8a1;
|
|
|
+ text-align: center;
|
|
|
+ color: #fff;
|
|
|
+ border-radius: 5px;
|
|
|
+ display: inline-block;
|
|
|
+ margin-left: 20px;
|
|
|
+ cursor: pointer;
|
|
|
+ border: 0px solid #2ca8a1;
|
|
|
+ }
|
|
|
+
|
|
|
+</style>
|
|
|
+<link href="{$theme}js/select2/select2.min.css?v={time()}" rel="stylesheet" />
|
|
|
+<script src="{$theme}js/select2/select2.full.min.js?v={time()}"></script>
|
|
|
+
|
|
|
+<body>
|
|
|
+<div class="warp">
|
|
|
+<div class="fixed">
|
|
|
+<div style="width:100%;display: flex;flex-direction: row;flex-wrap: wrap;">
|
|
|
+ <div class="diysearch">
|
|
|
+ 类目 :<select name="category" class="select">
|
|
|
+ <option value="">请选择</option>{loop typeclass(16) as $val}
|
|
|
+ <option value="{$val['id']}">{$val['title']}</option>{/loop}</select>
|
|
|
+ </div>
|
|
|
+ <div class="diysearch">
|
|
|
+ 等级 :<select name="grade" class="select">
|
|
|
+ <option value="">请选择</option>{loop typeclass(13) as $val}
|
|
|
+ <option value="{$val['id']}">{$val['title']}</option>{/loop}</select>
|
|
|
+ </div>
|
|
|
+ <div class="diysearch" >
|
|
|
+ 颜色 :<select name="color" class="select select_two" style="width: 150px !important;">
|
|
|
+ <option value="">请选择</option>{loop typeclassyc(8) as $val}
|
|
|
+ <option value="{$val['id']}">{$val['title']}</option>{/loop}</select>
|
|
|
+ </div>
|
|
|
+ <div class="diysearch" >
|
|
|
+ 曲度 :<select name="lowe" class="select select_two" style="width: 150px !important;" >
|
|
|
+ <option value="">请选择</option>{loop typeclassyc(15) as $val}
|
|
|
+ <option value="{$val['id']}">{$val['title']}</option>{/loop}</select>
|
|
|
+ </div>
|
|
|
+ <div class="diysearch">
|
|
|
+ 头套种类 :<select name="lacetype" class="select select_two" style="width: 220px !important;">
|
|
|
+ <option value="">请选择</option><option value="146">13*4 Lace Front wigs</option>
|
|
|
+ {loop typeclassyc(18) as $val}
|
|
|
+ {if $val['id']!=146}
|
|
|
+ <option value="{$val['id']}">{$val['title']}</option>
|
|
|
+ {/if}
|
|
|
+ {/loop}
|
|
|
+ </select>
|
|
|
+ </div>
|
|
|
+ <div class="diysearch">
|
|
|
+ 蕾丝颜色 :<select name="lacecolor" class="select">
|
|
|
+ <option value="">请选择</option>{loop typeclassyc(9) as $val}
|
|
|
+ <option value="{$val['id']}">{$val['title']}</option>{/loop}</select>
|
|
|
+ </div>
|
|
|
+ <div class="diysearch">
|
|
|
+ 长度 :<select name="size" class="select">
|
|
|
+ <option value="">请选择</option>{loop typeclass(14) as $val}
|
|
|
+ <option value="{$val['id']}">{$val['title']}</option>{/loop}</select>
|
|
|
+ </div>
|
|
|
+ <div class="diysearch">
|
|
|
+ 密度 :<select name="density" class="select">
|
|
|
+ <option value="">请选择</option>{loop typeclassyc(10) as $val}
|
|
|
+ <option value="{$val['id']}">{$val['title']}</option>{/loop}</select>
|
|
|
+ </div>
|
|
|
+ <div class="diysearch">
|
|
|
+ 头套大小 :<select name="haircap" class="select">
|
|
|
+ <option value="">请选择</option>{loop typeclassyc(6) as $val}
|
|
|
+ <option value="{$val['id']}">{$val['title']}</option>{/loop}</select>
|
|
|
+ </div>
|
|
|
+ <div class="diysearch">
|
|
|
+ 人发头套编号 :<select name="hairnumber" class="select select_two" style="width: 150px !important;">
|
|
|
+ <option value="">请选择</option>
|
|
|
+ <option value="-1">无编号</option>
|
|
|
+ {loop typeclassyc(43) as $val}
|
|
|
+
|
|
|
+ <option value="{$val['id']}">{$val['title']}</option>
|
|
|
+ {/loop}
|
|
|
+ </select>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="diysearch">
|
|
|
+ 仓库 :<select name="warehouse" class="select">
|
|
|
+ <option value="">请选择</option>{loop warehouse(10) as $val}
|
|
|
+ <option value="{$val['id']}">{$val['title']}</option>{/loop}</select>
|
|
|
+ </div>
|
|
|
+ <div class="diysearch">
|
|
|
+ 仓库位置 :<input value="" name="details" type="text" >
|
|
|
+ </div>
|
|
|
+ <div class="diysearch">
|
|
|
+ 店铺 :<select name="shop" class="select">
|
|
|
+ <option value="">请选择</option>{loop $shop as $val}
|
|
|
+ <option value=",{$val['id']},">{$val['shopname']}</option>{/loop}</select>
|
|
|
+ </div>
|
|
|
+ <div class="diysearch">
|
|
|
+ 供应商 :<select name="purchase" class="select">
|
|
|
+ <option value="">全部</option>
|
|
|
+ {loop purchase(100) as $val}
|
|
|
+ <option value="{$val['id']}">{$val['title']}</option>
|
|
|
+ {/loop}
|
|
|
+ </select>
|
|
|
+ </div>
|
|
|
+ <div class="diysearch">
|
|
|
+ 类型 :<select name="type" class="select">
|
|
|
+ <option value="">全部</option>
|
|
|
+ {loop whlabel_type(100) as $val}
|
|
|
+ <option value="{$val['id']}">{$val['title']}</option>
|
|
|
+ {/loop}
|
|
|
+ </select>
|
|
|
+ </div>
|
|
|
+ <div class="diysearch">
|
|
|
+ SKU :<input value="" name="sku" type="text" style="width:270px">
|
|
|
+ </div>
|
|
|
+ <div class="diysearch">
|
|
|
+ 商品名称 :<input value="" name="title" type="text" style="width:400px">
|
|
|
+ </div>
|
|
|
+ <div class="diysearch">
|
|
|
+ 产品备注 :<input value="" name="cpbz" type="text" >
|
|
|
+ </div>
|
|
|
+ <div class="diysearch">
|
|
|
+ 库位负责人 :<input value="" name="sm" type="text" >
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="diysearch">
|
|
|
+ 状态 :<select name="state" class="select">
|
|
|
+ <option value="">请选择</option>
|
|
|
+ <option value="1">正常出库</option>
|
|
|
+ <option value="10">美店零售</option>
|
|
|
+ </select>
|
|
|
+ </div>
|
|
|
+ <div style="width:auto;;display: flex;flex-direction: row;flex-wrap: wrap;">
|
|
|
+ <div class="diysearch">
|
|
|
+ 入库类型 :<select name="rktype" class="select">
|
|
|
+ <option value="">请选择</option>
|
|
|
+ <option value="1">采购入库</option>
|
|
|
+ <option value="2">盘盈调整</option>
|
|
|
+ <option value="3">其他调整入库</option>
|
|
|
+ <option value="4">其他调整入库</option>
|
|
|
+ <option value="5">退库入库</option>
|
|
|
+ <option value="6">退货可用入库</option>
|
|
|
+ <option value="7">形态转换入库</option>
|
|
|
+ <option value="9">许昌仓备货入库</option>
|
|
|
+ </select>
|
|
|
+ </div>
|
|
|
+ <div class="diysearch">
|
|
|
+ 出库类型 :<select name="cktype" class="select">
|
|
|
+ <option value="">请选择</option>
|
|
|
+ <option value="1">销售出库</option>
|
|
|
+ <option value="2">美国销售调货出库</option>
|
|
|
+ <option value="3">盘亏调整</option>
|
|
|
+ <option value="4">其他调整出库</option>
|
|
|
+ <option value="5">形态转换出库</option>
|
|
|
+ </select>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="diysearch">
|
|
|
+ 统计时间:<input id="timetk" value="{date('Y-m-d',time()-29*24*3600)} 0:00" name="ktime" type="text" onClick="laydate({istime: true,format:'YYYY-MM-DD hh:mm'})">
|
|
|
+ 至 <input id="timetj" value="{date('Y-m-d',time()+24*3600)} 0:00" name="jtime" type="text" onClick="laydate({istime: true,format:'YYYY-MM-DD hh:mm'})">
|
|
|
+ </div>
|
|
|
+ <div class="diysearch">
|
|
|
+ <button onclick="searchspan(1)" class="qd_show">确 定</button>
|
|
|
+ </div>
|
|
|
+
|
|
|
+
|
|
|
+</div>
|
|
|
+<div class="control">
|
|
|
+<select name="dccz" class="dcmb">
|
|
|
+<option value="">选择导出内容</option>
|
|
|
+<option data-url="excelr" value="1">导出入库数据</option>
|
|
|
+<option data-url="excelct" value="2">导出退库数据</option>
|
|
|
+<option data-url="excelct" value="1">导出出库数据</option>
|
|
|
+<option data-url="excelct" value="5">导出零售数据</option>
|
|
|
+<option data-url="excelct" value="4">导出出库+零售数据</option>
|
|
|
+<option data-url="excelcr" value="4">导出出库+入库合数据</option>
|
|
|
+</select>
|
|
|
+<a href="javascript:void(0);" data-url="exceljxc" data-id="1" class="whlabelexcel">导出进销存</a>
|
|
|
+<a href="javascript:void(0);" data-url="excelct" data-id="3" class="whlabelexcel">导出条件检索</a>
|
|
|
+<a href="javascript:void(0);" class="summary">出库汇总</a>
|
|
|
+
|
|
|
+<a href="javascript:void(0);" data-url="presetout" data-id="3" class="whlabelexcel">导出库存模板</a>
|
|
|
+<a href="javascript:void(0);" class="whlabeldr_two">导入库存</a>
|
|
|
+{if $vip > 0} {/if}
|
|
|
+<a href="javascript:void(0);" class="whlabelxq">导出数据详情</a>
|
|
|
+<a href="javascript:void(0);" class="whlabelexcelzh">导出库存数据及在途中</a>
|
|
|
+<!--<a href="javascript:void(0);" class="window" data-h="/whlabel/abnormal/" data-t="异常占单" style="background-color:#fc5454;color:#fff">查看异常占单</a>-->
|
|
|
+{if $vip > 0}
|
|
|
+<a href="/whlabel/error/" style="background-color:#fc5454;color:#fff">0库存SKU</a>
|
|
|
+{/if}
|
|
|
+<a href="javascript:void(0);" class="plszbhtype">批量设置备货类型</a>
|
|
|
+<a href="javascript:void(0);" class="dccrtype">导出出入库分类数据</a>
|
|
|
+</div>
|
|
|
+<table class="datatitle data" border="0" style="border-collapse:collapse;">
|
|
|
+<tr>
|
|
|
+<td><label onClick="swapCheck()"><input name="checkbox" type="checkbox" class="regular-checkbox"></label></td>
|
|
|
+<td>仓库</td>
|
|
|
+<td>供应商</td>
|
|
|
+<td>SKU</td>
|
|
|
+<td>商品名称</td>
|
|
|
+<td>位置</td>
|
|
|
+<td>品牌 / 公司</td>
|
|
|
+<td>备注</td>
|
|
|
+<td>库位负责人</td>
|
|
|
+<td>类型</td>
|
|
|
+<td>库存</td>
|
|
|
+<td>在途</td>
|
|
|
+<td>购进</td>
|
|
|
+<td>销售</td>
|
|
|
+<td>退货</td>
|
|
|
+<td>占单数量</td>
|
|
|
+</tr>
|
|
|
+</table>
|
|
|
+</div>
|
|
|
+<table class="datatext data" border="0" style="border-collapse:collapse;">
|
|
|
+</table>
|
|
|
+<div class="bomf"></div>
|
|
|
+</div>
|
|
|
+<div class="systemwindow">
|
|
|
+<div>
|
|
|
+<p><select name="whlabeltype" class="select" style="width:200px;margin-left:15px;">{loop whlabel_type(99) as $val}<option value="{$val['id']}" data-content="{$val['content']}">{$val['title']}</option>{/loop}</select></p>
|
|
|
+<p>{loop whlabel_type(1) as $val}{$val['content']}{/loop}</p>
|
|
|
+<p><font class="button">确 定</font><font class="esc">取 消</font></p>
|
|
|
+</div>
|
|
|
+</div>
|
|
|
+<script>
|
|
|
+let ppkc = false
|
|
|
+let kcpd = false
|
|
|
+var dataurl = "/whlabel/typev1";var fdataurl = "/whlabel/";var excel = "/whlabel/";
|
|
|
+$(function () { $("#ktime").calendar();$("#jtime").calendar();});
|
|
|
+var customon = 1;
|
|
|
+var editurl = "/whlabel/kj/";
|
|
|
+var editdj = 3;
|
|
|
+var editt = "扣减库存 - 操作";
|
|
|
+function custom(){
|
|
|
+$(".data tr").each(function() {
|
|
|
+$(this).find('td:eq(1)').css("width","3%");
|
|
|
+$(this).find('td:eq(2)').css("width","3%");
|
|
|
+$(this).find('td:eq(3)').css("width","12%");
|
|
|
+$(this).find('td:eq(4)').css("width","22%");
|
|
|
+$(this).find('td:eq(5)').css("width","4%");
|
|
|
+$(this).find('td:eq(6)').css("width","5%");
|
|
|
+$(this).find('td:eq(7)').css("width","4%");
|
|
|
+$(this).find('td:eq(8)').css("width","4%");
|
|
|
+$(this).find('td:eq(8)').css("width","4%");
|
|
|
+$(this).find('td:eq(9)').css("width","3%");
|
|
|
+$(this).find('td:eq(10)').css("width","4%");
|
|
|
+$(this).find('td:eq(11)').css("width","8%");
|
|
|
+$(this).find('td:eq(12)').css("width","3%");
|
|
|
+$(this).find('td:eq(13)').css("width","3%");
|
|
|
+$(this).find('td:eq(14)').css("width","3%");
|
|
|
+$(this).find('td:eq(15)').css("width","12%");
|
|
|
+});}
|
|
|
+$("select[name=dccz]").change(function(){
|
|
|
+ if($(this).find("option:selected").val() == "")
|
|
|
+ {
|
|
|
+ $(".ts p").html("请选择导出模板");
|
|
|
+ $(".ts").fadeIn();
|
|
|
+ setTimeout('$(".ts").fadeOut()', 800);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ var f = "";
|
|
|
+ $(".select").each(function() {
|
|
|
+ f = f + $(this).attr("name") + "=" + $(this).children("option:selected").val() + "&";
|
|
|
+ });
|
|
|
+ $("input:text").each(function() {
|
|
|
+ f = f + $(this).attr("name") + "=" + encodeURIComponent($(this).val()) + "&";
|
|
|
+ });
|
|
|
+ $("input:hidden").each(function() {
|
|
|
+ f = f + $(this).attr("name") + "=" + $(this).val() + "&";
|
|
|
+ });
|
|
|
+ window.location.href = "/whlabel/"+$("select[name=dccz]").find("option:selected").data("url")+"?excel="+$("select[name=dccz]").find("option:selected").val()+"&"+f;
|
|
|
+ $("select[name=dccz] option:eq(0)").prop('selected','selected');
|
|
|
+});
|
|
|
+$(".whlabelxq").click(function() {
|
|
|
+window.location.href = "/whlabel/uck?excel=1";
|
|
|
+});
|
|
|
+$(".whlabelexcelzh").click(function() {
|
|
|
+window.location.href = "/whlabel/whlabelexcelzh?excel=1";
|
|
|
+});
|
|
|
+$(".plszbhtype").click(function() {
|
|
|
+ $(".systemwindow").show();
|
|
|
+});
|
|
|
+$(".systemwindow .esc").click(function() {
|
|
|
+ $(".systemwindow").hide();
|
|
|
+ });
|
|
|
+$(".systemwindow .button").click(function() {
|
|
|
+var n = $(".systemwindow select").find("option:selected").val();
|
|
|
+var a = "";
|
|
|
+ $(".datatext input[name='check']:checked").each(function() {
|
|
|
+ a = a + $(this).val()+",";
|
|
|
+ });
|
|
|
+$(".systemwindow").hide();
|
|
|
+ layx.load('loadId','操作中,请稍后',{shadable:0.6});
|
|
|
+ $.ajax({
|
|
|
+ url: "/whlabel/gbhtype",
|
|
|
+ data: "s="+a+"&n="+n,
|
|
|
+ type: "POST",
|
|
|
+ dataType: "json",
|
|
|
+ success: function(a) {
|
|
|
+ layx.destroy('loadId');
|
|
|
+ if (a && a.success) {
|
|
|
+ layx.alert('正确',a.msg,function(id,button){
|
|
|
+ $.each(a.d,function(f,b){ $("#"+b).find("td:eq(8)").text(a.t)});
|
|
|
+},{dialogIcon:'success'});
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ layx.alert('错误',a.msg,function(id,button){
|
|
|
+},{dialogIcon:'error'});
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
+$("select[name=whlabeltype]").change(function(){
|
|
|
+ $(".systemwindow p:eq(1)").html($(this).children("option:selected").data("content"));
|
|
|
+});
|
|
|
+
|
|
|
+$(".dccrtype").click(function() {
|
|
|
+ var f = "";
|
|
|
+ var a = "";
|
|
|
+ $(".datatext input[name='check']:checked").each(function() {
|
|
|
+ a = a + $(this).val()+",";
|
|
|
+ });
|
|
|
+ f = f + "sid=" + a + "&";
|
|
|
+ $(".select").each(function() {
|
|
|
+ f = f + $(this).attr("name") + "=" + $(this).children("option:selected").val() + "&";
|
|
|
+ });
|
|
|
+ $("input:text").each(function() {
|
|
|
+
|
|
|
+ var str = $(this).val().replace(/\#/g,"%23");
|
|
|
+ f = f + $(this).attr("name") + "=" + str + "&";
|
|
|
+ });
|
|
|
+ $("input:hidden").each(function() {
|
|
|
+ f = f + $(this).attr("name") + "=" + $(this).val() + "&";
|
|
|
+ });
|
|
|
+ window.location.href = excel+"dccrtype?"+f;
|
|
|
+});
|
|
|
+</script>
|
|
|
+<script>
|
|
|
+ $(document).ready(function(){
|
|
|
+ $('.select_two').select2({
|
|
|
+ placeholder: "请选择",
|
|
|
+ allowClear: true,
|
|
|
+ //tags: true // 允许输入新值
|
|
|
+ });
|
|
|
+ searchspan(1);
|
|
|
+ })
|
|
|
+
|
|
|
+</script>
|
|
|
+
|
|
|
+
|
|
|
+<script>
|
|
|
+
|
|
|
+$(".whlabeldr_two").click(function() {
|
|
|
+ var dr = $(this);
|
|
|
+ $("#upload-file").click();
|
|
|
+ $("#upload-file").unbind("change");
|
|
|
+ $("#upload-file").bind("change",function(){
|
|
|
+ whlabeldr_two(dr);
|
|
|
+ layx.load('loadId','导入中,请稍后',{shadable:0.6});
|
|
|
+ });
|
|
|
+});
|
|
|
+
|
|
|
+function whlabeldr_two(dr){
|
|
|
+ var file = document.getElementById("upload-file").files[0];
|
|
|
+ if (!file) return;
|
|
|
+
|
|
|
+ // 显示加载提示
|
|
|
+ //layx.load('loadId', '解析 Excel 中,请稍后', { shadable: 0.6 });
|
|
|
+
|
|
|
+ // 使用 FileReader 读取文件
|
|
|
+ var reader = new FileReader();
|
|
|
+ reader.onload = function(e) {
|
|
|
+ var data = e.target.result;
|
|
|
+ try {
|
|
|
+ // 使用 SheetJS 解析 Excel 为 JSON
|
|
|
+ var workbook = XLSX.read(data, { type: 'array' });
|
|
|
+ var sheetName = workbook.SheetNames[0]; // 取第一个工作表
|
|
|
+ var worksheet = workbook.Sheets[sheetName];
|
|
|
+ var jsonData = XLSX.utils.sheet_to_json(worksheet, { header:1,defval: "" });
|
|
|
+ jsonData.shift(); // 去掉第一行表头
|
|
|
+
|
|
|
+ // 构建要上传的数据(可以包含文件名、sheet名等)
|
|
|
+ // var uploadData = {
|
|
|
+ // fileName: file.name,
|
|
|
+ // sheetName: sheetName,
|
|
|
+ // data: jsonData // 解析后的 JSON 数组
|
|
|
+ // };
|
|
|
+ // 通过 AJAX 上传 JSON 数据
|
|
|
+ document.getElementById("upload-file").files[0] = '';
|
|
|
+ $.ajax({
|
|
|
+ url: excel + "presetedittwo/", // 注意:后端接口可能需要改为接收 JSON
|
|
|
+ type: "POST",
|
|
|
+ contentType: "application/json", // 发送 JSON 格式
|
|
|
+ data:JSON.stringify({
|
|
|
+ list:jsonData
|
|
|
+ }),
|
|
|
+ dataType: "json",
|
|
|
+ success: function(a) {
|
|
|
+ layx.destroy('loadId');
|
|
|
+ if (a && a.success) {
|
|
|
+ if (a.error == 1){
|
|
|
+ errora(a);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ layx.alert('提示', a.msg, function(id, button) {
|
|
|
+ console.log(a.ed)
|
|
|
+ downloadexcel(a.ed,a.error)
|
|
|
+ }, { dialogIcon: 'error' });
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ errorc(a);
|
|
|
+ }
|
|
|
+ },
|
|
|
+ error: function(xhr, status, error) {
|
|
|
+ layx.destroy('loadId');
|
|
|
+ console.error("上传失败:", error);
|
|
|
+ errorc({ success: false, message: "上传失败" });
|
|
|
+ }
|
|
|
+ });
|
|
|
+ } catch (err) {
|
|
|
+ layx.destroy('loadId');
|
|
|
+ console.error("解析 Excel 失败:", err);
|
|
|
+ errorc({ success: false, message: "解析 Excel 文件失败" });
|
|
|
+ }
|
|
|
+ };
|
|
|
+ reader.onerror = function() {
|
|
|
+ layx.destroy('loadId');
|
|
|
+ errorc({ success: false, message: "文件读取失败" });
|
|
|
+ };
|
|
|
+ reader.readAsArrayBuffer(file); // 以 ArrayBuffer 读取
|
|
|
+}
|
|
|
+function downloadexcel(data,filename){
|
|
|
+ let sheet = XLSX.utils.json_to_sheet(data)
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ let workbook = XLSX.utils.book_new();
|
|
|
+
|
|
|
+ XLSX.utils.book_append_sheet(workbook, sheet, "Sheet1");
|
|
|
+ XLSX.writeFile(workbook, filename);
|
|
|
+}
|
|
|
+
|
|
|
+</script>
|
|
|
+<script type="text/javascript" src="{$theme}js/excel/xlxs.js" ></script>
|
|
|
+<script type="text/javascript" src="{$theme}js/laydate.js"></script>
|
|
|
+<div style="display:none;">
|
|
|
+<input id="upload-file" name="files" accept="image/xls,image/xlsx" type="file">
|
|
|
+</div>
|
|
|
+{Template footer}
|