| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510 |
- {extend name="app/shop/view/base.html"/}
- {block name="resources"}
- <style>
- .goods-info .layui-form-item {margin-bottom: 0;}
- .add-carmichael .head{font-weight: bolder;margin-bottom: 15px;display: flex;vertical-align: middle;}
- .add-carmichael .head div:first-child{flex: 1;line-height: 34px}
- .add-carmichael .layui-textarea {height: 190px;}
- .edit-carmichael .layui-form-label{width: 90px}
- .edit-carmichael .layui-form-label + .layui-input-block {margin-left: 90px}
- .layui-table .table-btn {
- justify-content: flex-end;
- }
- </style>
- {/block}
- {block name="main"}
- <div class="layui-card card-common card-brief goods-info">
- <div class="layui-card-header">
- <span class="card-title">商品信息</span>
- </div>
- <div class="layui-card-body">
- <div class="layui-form-item">
- <label class="layui-form-label">商品名称:</label>
- <div class="layui-input-block">
- <p>{$goods.goods_name}</p>
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label">总库存:</label>
- <div class="layui-input-block">
- <p>{$goods.goods_stock}</p>
- </div>
- </div>
- {notempty name="$goods.goods_spec_format"}
- {foreach name="$goods.sku_data" item="vo"}
- <div class="layui-form-item">
- <div class="layui-row">
- <div class="layui-col-md4">
- <label class="layui-form-label">规格名称:</label>
- <div class="layui-input-block">
- <p>{$vo.spec_name}</p>
- </div>
- </div>
- <div class="layui-col-md4">
- <label class="layui-form-label">库存:</label>
- <div class="layui-input-block">
- <p>{$vo.stock}</p>
- </div>
- </div>
- <div class="layui-col-md4">
- <button class="layui-btn" onclick="add({$vo.sku_id})">添加卡密数据</button>
- </div>
- </div>
- </div>
- {/foreach}
- {else/}
- <div class="layui-form-item">
- <label class="layui-form-label">卡密管理:</label>
- <div class="layui-input-block">
- <button class="layui-btn" onclick="add({$goods['sku_data'][0]['sku_id']})">添加卡密数据</button>
- </div>
- </div>
- {/notempty}
- </div>
- </div>
- <div class="layui-card card-common card-brief">
- <div class="layui-card-header">
- <span class="card-title">卡密数据</span>
- </div>
- <div class="layui-card-body layui-tab" style="padding-top:0;" lay-filter="tab">
- <ul class="layui-tab-title">
- <li class="layui-this" lay-id="basic_info">未售出</li>
- <li lay-id="basic_info11">已售出</li>
- </ul>
- <table id="carmichael_list" lay-filter="carmichael_list"></table>
- </div>
- </div>
- <script type="text/html" id="toolbarOperation">
- <button class="layui-btn layui-btn-primary" lay-event="delete">批量删除</button>
- </script>
- <script type="text/html" id="batchOperation">
- <button class="layui-btn layui-btn-primary" lay-event="delete">批量删除</button>
- </script>
- <script type="text/html" id="operation">
- <div class="table-btn">
- {{# if (d.order_id == 0){ }}
- <a class="layui-btn" lay-event="edit">编辑</a>
- <a class="layui-btn" lay-event="delete">删除</a>
- {{# } else { }}
- <a class="layui-btn" lay-event="order">查看订单</a>
- {{# } }}
- </div>
- </script>
- <!-- 添加卡密 -->
- <script type="text/html" id="carmichaelTemplate">
- <div class="add-carmichael">
- <div class="head text-color">
- <div>添加卡密格式为卡号+空格+密码,一行一组,如AAAAA BBBBB</div>
- <div>
- <button class="layui-btn important">导入数据</button>
- <a class="layui-btn" href="{:addon_url('virtualcard://shop/goods/downloadTemplate')}" target="_blank">下载模板</a>
- </div>
- </div>
- <textarea class="layui-textarea"></textarea>
- </div>
- </script>
- <!-- 添加卡密 -->
- <!-- 编辑卡密 -->
- <script type="text/html" id="editCarmichaelTemplate">
- <div class="edit-carmichael">
- <div class="layui-form">
- <div class="layui-form-item">
- <label class="layui-form-label"><span class="required">*</span>卡号:</label>
- <div class="layui-input-block goods-cate">
- <input type="text" name="cardno" class="layui-input" value="{{ d.cardno }}">
- </div>
- </div>
- <div class="layui-form-item">
- <label class="layui-form-label">密码:</label>
- <div class="layui-input-block goods-cate">
- <input type="text" name="password" class="layui-input" value="{{ d.password }}">
- </div>
- </div>
- </div>
- </div>
- </script>
- <!-- 编辑卡密 -->
- <!-- 用户信息 -->
- <script type="text/html" id="member_info">
- {{# if(d.order_id){ }}
- <div class="table-title">
- <div class='title-pic'>
- <img layer-src src="{{ns.img(d.headimg)}}" onerror="this.src = '{:img('public/static/img/default_img/head.png')}' "/>
- </div>
- <div class='title-content'>
- <p class="multi-line-hiding">{{d.nickname}}</p>
- </div>
- </div>
- {{# }else{ }}
- --
- {{# } }}
- </script>
- {/block}
- {block name="script"}
- <script type="text/javascript">
- var laytpl,repeat_flag = false,table,upload;
- layui.use(['form', 'laydate', 'upload', 'laytpl', 'element'], function() {
- laytpl = layui.laytpl;
- upload = layui.upload;
- element = layui.element;
- unsold();
- element.on('tab(tab)', function(data){
- if (data.index == 0) {
- unsold();
- } else {
- sold();
- }
- });
- table.tool(function(obj) {
- var data = obj.data;
- switch (obj.event) {
- case 'order':
- location.href = ns.url("shop/order/detail?order_id=" + data.order_id);
- break;
- case 'edit':
- edit(data);
- break;
- case 'delete':
- layer.confirm('是否确定删除该条数据?', function() {
- deleteGoodsVirtual(data.id);
- }, function () {
- layer.close();
- });
- break;
- }
- });
- /**
- * 批量操作
- */
- table.bottomToolbar(function(obj) {
- if (obj.data.length < 1) {
- layer.msg('请选择要操作的数据');
- return;
- }
- switch (obj.event) {
- case "del":
- var id_array = new Array();
- for (i in obj.data) id_array.push(obj.data[i].id);
- deleteGoodsVirtual(id_array.toString());
- break;
- }
- });
- /**
- * 批量操作
- */
- table.toolbar(function(obj) {
- if (obj.data.length < 1) {
- layer.msg('请选择要操作的数据');
- return;
- }
- switch (obj.event) {
- case "delete":
- var id_array = new Array();
- for (i in obj.data) id_array.push(obj.data[i].id);
- deleteGoodsVirtual(id_array.toString());
- break;
-
- }
- });
- });
- function edit(data){
- var cardinfo = JSON.parse(data.card_info);
- laytpl($('#editCarmichaelTemplate').html()).render(cardinfo, function (html) {
- var index = layer.open({
- title: '编辑卡密',
- skin: 'layer-tips-class',
- type: 1,
- area: ['400px', '220px'],
- content: html,
- btn: ['保存', '关闭'],
- yes: function () {
- if (!/[\S]+/.test($('[name="cardno"]').val())) {
- layer.msg('请输入卡号', {icon: 5});
- return;
- }
- $.ajax({
- url: ns.url("virtualcard://shop/goods/editGoodsVirtual"),
- data: {
- id: data.id,
- cardno: $('[name="cardno"]').val(),
- password: $('[name="password"]').val()
- },
- dataType: 'JSON',
- type: 'POST',
- success: function (res) {
- if (res.code == 0) {
- layer.close(index);
- table.reload();
- } else{
- layer.msg(res.message);
- }
- }
- });
- }
- })
- })
- }
- function deleteGoodsVirtual(ids){
- $.ajax({
- url: ns.url("virtualcard://shop/goods/deleteGoodsVirtual"),
- data: {
- id: ids,
- goods_id : "{$goods_id}"
- },
- dataType: 'JSON',
- type: 'POST',
- success: function (res) {
- layer.msg(res.message);
- if (res.code == 0) {
- table.reload({
- page: 1
- });
- setTimeout(function(){
- location.reload();
- }, 700)
- }
- }
- });
- }
- function add(sku_id){
- var index = layer.open({
- title: '添加卡密',
- skin: 'layer-tips-class',
- type: 1,
- area: ['700px', '350px'],
- content: $('#carmichaelTemplate').html(),
- btn: ['保存', '关闭'],
- success: function(){
- upload.render({
- elem: '.important',
- url: ns.url("shop/upload/file"),
- accept: 'file',
- acceptMime: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
- exts: 'xlsx',
- done: function(res){
- if (res.code >= 0) {
- $.ajax({
- url: ns.url("virtualcard://shop/goods/import"),
- data: {
- path: res.data.path
- },
- dataType: 'JSON',
- type: 'POST',
- success: function (res) {
- if (res.code == 0) {
- $('.add-carmichael .layui-textarea').val(res.data);
- } else{
- layer.msg(res.message);
- }
- }
- });
- } else{
- layer.msg(res.message);
- }
- }
- });
- },
- yes: function () {
- var carmichaelSingle = [];
- var carmichael = $('.add-carmichael .layui-textarea').val().trim();
- if (carmichael.length) {
- carmichaelSingle = carmichael.split("\n");
- carmichaelSingle = carmichaelSingle.filter(function (str){
- return /[\S]+/.test(str);
- })
- }
- if (carmichaelSingle.length == 0) {
- layer.msg('请输入要添加的卡密数据');
- return;
- }
- if (repeat_flag) return;
- repeat_flag = true;
- $.ajax({
- url: ns.url("virtualcard://shop/goods/addCarmichael"),
- data: {
- goods_id : "{$goods_id}",
- sku_id: sku_id,
- data: carmichaelSingle.toString()
- },
- dataType: 'JSON',
- type: 'POST',
- success: function (res) {
- layer.msg(res.message);
- repeat_flag = false;
- if (res.code == 0) {
- layer.close(index);
- table.reload({
- page: 1
- });
- setTimeout(function(){
- location.reload();
- }, 700)
- }
- }
- });
- }
- })
- }
- function unsold(){
- table = new Table({
- elem: '#carmichael_list',
- url: ns.url("virtualcard://shop/goods/carmichael"),
- where:{
- "goods_id" : "{$goods_id}",
- "is_sold": 0
- },
- cols: [
- [
- {
- width: "3%",
- type: 'checkbox',
- unresize: 'false'
- },
- {notempty name="$goods.goods_spec_format"}
- {
- title: '所属规格',
- unresize: 'false',
- templet: function (data) {
- return data.spec_name && data.spec_name != null ? data.spec_name : '<span title="'+data.sku_name+'">'+data.sku_name+'</span>';
- }
- },
- {/notempty}
- {
- title: '卡号',
- width: '16%',
- unresize: 'false',
- templet: function (data) {
- var carmichael = JSON.parse(data.card_info);
- return carmichael.cardno;
- }
- },
- {
- title: '密码',
- width: '16%',
- unresize: 'false',
- templet: function (data) {
- var carmichael = JSON.parse(data.card_info);
- return carmichael.password;
- }
- },
- {
- title: '状态',
- width: '10%',
- align: 'center',
- templet: function (data) {
- return data.order_id == 0 ? '未售出' : '已售出';
- }
- },
- {
- title: '售出时间',
- width: '18%',
- unresize: 'false',
- align: 'center',
- templet: function (data) {
- return data.sold_time > 0 ? ns.time_to_date(data.sold_time) : '';
- }
- },{
- title: '操作',
- unresize: 'false',
- align:'right',
- toolbar: '#operation'
- }
- ]
- ],
- toolbar: '#toolbarOperation',
- bottomToolbar: "#batchOperation"
- });
- }
- function sold(){
- table = new Table({
- elem: '#carmichael_list',
- url: ns.url("virtualcard://shop/goods/carmichael"),
- where:{
- "goods_id" : "{$goods_id}",
- "is_sold" : 1
- },
- cols: [
- [
- {notempty name="$goods.goods_spec_format"}
- {
- title: '所属规格',
- unresize: 'false',
- templet: function (data) {
- return data.spec_name && data.spec_name != null ? data.spec_name : '<span title="'+data.sku_name+'">'+data.sku_name+'</span>';
- }
- },
- {/notempty}
- {
- title: '卡号',
- width: '14%',
- unresize: 'false',
- templet: function (data) {
- var carmichael = JSON.parse(data.card_info);
- return carmichael.cardno;
- }
- },
- {
- title: '密码',
- width: '14%',
- unresize: 'false',
- templet: function (data) {
- var carmichael = JSON.parse(data.card_info);
- return carmichael.password;
- }
- },
- {
- title: '状态',
- width: '12%',
- align: 'center',
- templet: function (data) {
- return data.order_id == 0 ? '未售出' : '已售出';
- }
- },
- {
- title: '售出时间',
- width: '18%',
- unresize: 'false',
- align: 'center',
- templet: function (data) {
- return data.sold_time > 0 ? ns.time_to_date(data.sold_time) : '';
- }
- }, {
- title: '所属用户',
- width: '15%',
- templet: "#member_info"
- }, {
- title: '操作',
- unresize: 'false',
- align:'right',
- toolbar: '#operation'
- }
- ]
- ]
- });
- }
- </script>
- {/block}
|