_index.php 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. <?php
  2. use kartik\grid\GridView;
  3. use yii\helpers\Html;
  4. use yii\helpers\Url;
  5. use yii\widgets\Pjax;
  6. /* @var $goods \common\models\Goods */
  7. /* @var $dataProvider \yii\data\ActiveDataProvider */
  8. ?>
  9. <style>
  10. .media-content img {
  11. width: 60px;
  12. }
  13. </style>
  14. <p>
  15. <?= Html::a(Yii::t('common', 'Create Goods Sku'), 'javascript:;', [
  16. 'url' => Url::to([
  17. '/goods-sku/create',
  18. 'goods_id' => $goods->id,
  19. 'origin' => Yii::$app->request->url
  20. ]),
  21. 'class' => 'btn btn-success js-sku-layer-iframe',
  22. 'title' => Yii::t('common', 'Create Goods Attr'),
  23. ]) ?>
  24. </p>
  25. <div class="box box-primary">
  26. <div class="box-body">
  27. <?php Pjax::begin(['id' => 'goods-sku-list']) ?>
  28. <?= GridView::widget([
  29. 'dataProvider' => $dataProvider,
  30. 'export' => false,
  31. 'options' => ['id' => 'sku_list'],
  32. 'columns' => [
  33. [
  34. 'class' => 'kartik\grid\CheckboxColumn',
  35. 'name' => 'id',
  36. ],//复选框列
  37. 'name',
  38. [
  39. 'attribute' => 'cover',
  40. 'format' => ['image'],
  41. 'contentOptions' => ['class' => 'media-content']
  42. ],
  43. 'origin_price',
  44. 'price',
  45. 'stock',
  46. // 'actual_sales',
  47. // 'virtual_sales',
  48. // 'created_at:datetime',
  49. // 'updated_at:datetime',
  50. [
  51. 'class' => 'backend\widgets\grid\PositionColumn',
  52. 'attribute' => 'sort'
  53. ],
  54. [
  55. 'class' => 'common\helpers\DiyActionColumn',
  56. 'template' => '{update} {delete}',
  57. 'buttons' => [
  58. 'update' => function ($url, $model, $key) {
  59. return Html::a(Yii::t('yii', 'Update'), 'javascript:;', [
  60. 'url' => Url::to(['/goods-sku/update', 'id' => $model->id]),
  61. 'class' => 'btn btn-success btn-xs js-sku-layer-iframe',
  62. 'title' => Yii::t('common', 'Update Goods Sku'),
  63. ]);
  64. },
  65. 'delete' => function ($url, $model, $key) {
  66. return Html::a('删除', 'javascript:;', [
  67. 'url' => Url::to(['/goods-sku/delete', 'id' => $model->id]),
  68. 'class' => 'btn btn-success btn-xs js-sku-del',
  69. 'title' => Yii::t('common', '删除商品规格'),
  70. ]);
  71. },
  72. ],
  73. ],
  74. ],
  75. ]); ?>
  76. <?php Pjax::end() ?>
  77. </div>
  78. </div>
  79. <?php
  80. $js = <<<JS
  81. //layer弹窗
  82. $(document).on('click', '.js-sku-layer-iframe', function() {
  83. let _this = $(this);
  84. layer.open({
  85. type: 2,
  86. title: _this.attr('title'),
  87. shadeClose: true,
  88. shade: 0.8,
  89. area: ['600px', '650px'],
  90. content: _this.attr('url'),
  91. end: function() {
  92. //关闭弹窗,刷新规格数据
  93. skuPjax();
  94. }
  95. });
  96. });
  97. $(document).on('click', '.js-sku-del', function(e) {
  98. e.preventDefault();
  99. let link = $(this);
  100. $.modal.confirm('确定删除“' + link.parents('tr').find('td:eq(1)').text() + '”吗?', () => {
  101. //表单提交
  102. $.post(link.attr('url'), {}, (res) => {
  103. if (res.errcode == 0) {
  104. $.modal.notify(res.errmsg, 'success', () => {
  105. //移除行
  106. // link.parents('tr').slideUp().remove();
  107. skuPjax();
  108. });
  109. } else {
  110. $.modal.error(res.errmsg);
  111. }
  112. });
  113. });
  114. });
  115. function skuPjax() {
  116. location.hash = '#sku';
  117. $.pjax({
  118. url: location.href,
  119. container: '#goods-sku-list',
  120. timeout: 0
  121. });
  122. }
  123. JS;
  124. $this->registerJs($js);
  125. ?>