list.php 5.06 KB
<?php
use yii\web\View;
use yii\helpers\Html;
use backend\widgets\LinkPager;

$this->title = $this->params['main_title'].'-'.$this->params['sub_title'];
?>

<?php echo $this->render('@app/views/layouts/websocket');?>

<script type="text/javascript">
<?php $this->beginBlock('javascript');?>
var i = 0;
var room_id = <?=$room->room_id?>;
var interval_handle;
var default_interval = 3;

/**
 * 推送商品列表刷新指令
 * @returns {undefined}
 */
function refreshProduct(){
    if (!confirm('将推送商品列表刷新指令,确定?')){
        return;
    }
    
    callWebsocket(function(){
        consoleLog('');
        consoleLog('发起推送商品列表刷新指令');

        cmd = {cmd:10002,room:room_id,msg:'',refresh:'Y'};
        cmd['secret'] = makeSign(cmd);
        delete(cmd['private_key']);

        cmd = JSON.stringify(cmd);
        consoleLog('发送消息: '+cmd);
        ws.send(cmd);
        getPushlog(default_interval);
    });
}
/**
 * 推送商品
 * @param {type} product_id
 * @returns {undefined}
 */
function sendProduct(product_id){
    if (!confirm('将推送该商品,确定?')){
        return;
    }
    
    i++;
    if (i>5){
        $('#runtime').html('');
        i = 1;
    }
    
    callWebsocket(function(){
        consoleLog('');
        consoleLog('发起推送,商品ID: '+product_id);

        cmd = {cmd:10001,room:room_id,skn:product_id};
        cmd['secret'] = makeSign(cmd);
        delete(cmd['private_key']);

        cmd = JSON.stringify(cmd);
        consoleLog('发送消息: '+cmd);
        ws.send(cmd);
        getPushlog(default_interval);
    });
    
}
/**
 * 监听推送记录
 * @param {type} package
 * @returns {unresolved}
 */
function getPushlog(interval){
    clearInterval(interval_handle);
    
    if (interval){
        interval_handle = setInterval(function(){
            $.get('/ajax/pushgoodslog','',function(json){
                console.log(json);
                if (json.data){
                    consoleLog('监听到推送记录: '+json.data);
                }
            },'json');
        },interval*1000);
        $('#pushlog').text('推送记录监听中...再次点击停止').attr('onclick','getPushlog(false)');
    }else{
        $('#pushlog').text('开始监听推送记录').attr('onclick','getPushlog('+default_interval+')');
    }
}
<?php 
$this->endBlock();
$this->registerJs($this->blocks['javascript'],View::POS_END)
?>
</script>

<div class="panel">
    <div class="panel-body">
        <h4>房间号:<?=$room->room_id?> &nbsp;&nbsp; 直播标题:<?=$room->title?> &nbsp;&nbsp; 直播状态:<?=Yii::$app->params['config']['room_living'][$room->living]?></h4>
    </div>
</div>

<div class="form-group">
    <label>
        <a href="/product/add/<?=$room->room_id?>" class="btn btn-primary">+ 添加商品</a>
    </label>
</div>

<div class="row">
    <div class="col-md-12">
        <div class="table-responsive">
            <table class="table mb30">
                <thead>
                    <tr style="white-space:nowrap">
                        <th><input type="checkbox" onclick="checkall(this)">选择</th>
                        <th>商品ID</th>
                        <th>商品名称</th>
                        <th>商品销售价</th>
                        <th>排序</th>
                        <th>操作</th>
                    </tr>
                </thead>
                <tbody>
                    <?php foreach ($list as $model):?>
                    <tr data-stock="1" data-source="1" data-status="2" data-id="5011880">
                        <td><input type="checkbox" value="<?=$model->id?>" name="product[]"></td>
                        <td><?=$model->product_id?></td>
                        <th><?=$model->product_name?></th>
                        <th><?=$model->sales_price?></th>
                        <td><?=$model->sort?></td>
                        <td>
                            
                            <a href="/product/edit/<?=$model->id?>" class="btn btn-default btn-white">编辑</a>
                            
                            <a onclick="return confirm('删除该商品?')" href="/product/operate/<?=$model->id?>?type=del" class="btn btn-danger btn-metro">删除</a>
                            
                            <a onclick="sendProduct(<?=$model->product_id?>)" href="javascript:;" class="btn btn-danger btn-metro">弹框</a>

                        </td>
                    </tr>
                    <?php endforeach;?>
                </tbody>
            </table>
        </div>
        <!-- table-responsive -->
        <?php echo LinkPager::widget(['pagination' => $pagination]);?>
    </div>
    <!-- col-md-12 -->
</div>

<div class="form-group">
    <label>
        <button type="button" onclick="getPushlog(default_interval)" id="pushlog" class="btn btn-primary">开始监听推送记录</button>
        <button type="button" onclick="refreshProduct()" class="btn btn-primary">推送商品列表刷新指令</button>
    </label>
</div>

<div class="form-group">
    <div class="col-sm-6" id="wsRuntime">
    </div>
</div><!-- form-group -->