view.php 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. <?php
  2. use common\models\Order;
  3. use common\models\OrderSku;
  4. use yii\grid\CheckboxColumn;
  5. use yii\grid\GridView;
  6. use yii\helpers\Html;
  7. use yii\helpers\Url;
  8. use yii\widgets\DetailView;
  9. /* @var $this yii\web\View */
  10. /* @var $model common\models\Order */
  11. $this->title = '订单号:' . $model->out_trade_no;
  12. $this->params['breadcrumbs'][] = ['label' => Yii::t('common', 'Orders'), 'url' => ['index']];
  13. $this->params['breadcrumbs'][] = $this->title;
  14. ?>
  15. <div class="nav-tabs-custom">
  16. <ul class="nav nav-tabs">
  17. <li class="active"><a href="#tab_1" data-toggle="tab" aria-expanded="true">订单详情</a></li>
  18. <li class=""><a href="#tab_2" data-toggle="tab" aria-expanded="true">订单商品</a></li>
  19. <li class=""><a href="#tab_3" data-toggle="tab" aria-expanded="true">物流包裹</a></li>
  20. </ul>
  21. <div class="tab-content">
  22. <div class="tab-pane active" id="tab_1">
  23. <?= $this->render('../site/view_menu', ['model' => $model]) ?>
  24. <?= DetailView::widget([
  25. 'model' => $model,
  26. 'attributes' => [
  27. 'id',
  28. [
  29. 'attribute' => 'user_id',
  30. 'format' => 'raw',
  31. 'value' => function ($model) {
  32. if (!empty($model->user)) {
  33. return Html::a($model->user->nickname, \yii\helpers\Url::to(['/wechat-user/view', 'id' => $model->user_id]), ['title' => '查看用户', 'data-toggle' => 'tooltip', 'target' => '_blank']);
  34. } else {
  35. return '无';
  36. }
  37. },
  38. ],
  39. 'out_trade_no',
  40. 'total_amount',
  41. 'pay_amount',
  42. 'pay_time:datetime',
  43. 'remark',
  44. 'receiver_name',
  45. 'receiver_tel',
  46. 'receiver_address',
  47. 'created_at:datetime',
  48. 'updated_at:datetime',
  49. [
  50. 'attribute' => 'status',
  51. 'value' => function ($model) {
  52. return \common\models\Order::getStatusList($model->status);
  53. },
  54. ],
  55. ],
  56. ]) ?>
  57. </div>
  58. <!-- 管理商品列表管理-->
  59. <div class="tab-pane " id="tab_2">
  60. <?php if ($model->status >= \common\models\Order::STATUS_FREIGHT): ?>
  61. <p>
  62. <a href="javascript:;"
  63. data-href="<?= Url::to(["/package/create", 'order_id' => $model->id, 'origin' => Yii::$app->request->url]) ?>"
  64. class="btn btn-success js-shipped" target="_blank">订单发货</a>
  65. </p>
  66. <?php endif; ?>
  67. <?= GridView::widget([
  68. 'dataProvider' => $orderSku['data'],
  69. //'filterModel' => $searchModel,
  70. // 'showFooter' => true,
  71. 'id' => 'order_sku_list',
  72. 'columns' => [
  73. [
  74. 'class' => \yii\grid\CheckboxColumn::className(),
  75. 'name' => 'ids',
  76. 'checkboxOptions' => function ($model, $key, $index, $column) {
  77. return ['value' => $model['id'], 'disabled' => $model->status == OrderSku::STATUS_NORMAL && $model->order->status >= Order::STATUS_FREIGHT ? false : true];
  78. }
  79. ],
  80. 'id',
  81. [
  82. 'attribute' => 'goods_id',
  83. 'format' => 'raw',
  84. 'value' => function ($model) {
  85. return $model->goods->name;
  86. },
  87. ],
  88. [
  89. 'attribute' => 'sku_id',
  90. 'format' => 'raw',
  91. 'value' => function ($model) {
  92. return $model->sku ? $model->sku->name : '';
  93. },
  94. ],
  95. 'quantity',
  96. 'unit_price',
  97. [
  98. 'label' => '商品总价',
  99. 'format' => 'raw',
  100. 'value' => function ($model) {
  101. return $model->quantity * $model->unit_price . '元';
  102. },
  103. ],
  104. [
  105. 'label' => '物流单号',
  106. 'format' => 'raw',
  107. 'value' => function ($model) {
  108. if ($model->package) {
  109. return $model->package->com . ':' . $model->package->no;
  110. } else if ($model->packageFixed) {
  111. return $model->packageFixed->com . ':' . $model->packageFixed->no;
  112. } else {
  113. return '--';
  114. }
  115. },
  116. ],
  117. 'created_at:datetime',
  118. 'updated_at:datetime',
  119. [
  120. 'attribute' => 'status',
  121. 'value' => function ($model) {
  122. return \common\models\OrderSku::getStatusList($model->status);
  123. },
  124. ],
  125. ],
  126. ]); ?>
  127. </div>
  128. <!-- 物流包裹-->
  129. <div class="tab-pane " id="tab_3">
  130. <?= GridView::widget([
  131. 'dataProvider' => $package['data'],
  132. 'columns' => [
  133. 'id',
  134. 'no',
  135. 'com',
  136. [
  137. 'label' => '商品规格',
  138. 'format' => 'raw',
  139. 'value' => function ($model) {
  140. return $model->orderSkuName;
  141. },
  142. ],
  143. [
  144. 'attribute' => 'status',
  145. 'value' => function ($model) {
  146. return \common\models\Package::getStatusList($model->status);
  147. },
  148. ],
  149. ['class' => 'common\helpers\DiyActionColumn',
  150. 'template' => '{update}',
  151. 'buttons' => [
  152. 'update' => function ($url, $model, $key) {
  153. return Html::a('更新', Url::to(['/package/update', 'id' => $model->id, 'order_id' => $model->order->id, 'origin' => Yii::$app->request->url]), [
  154. 'class' => 'btn btn-success btn-xs',
  155. 'title'=>Yii::t('common', 'Update Package'),
  156. 'target'=>'_blank'
  157. ]);
  158. },
  159. ]
  160. ],
  161. ],
  162. ]); ?>
  163. </div>
  164. </div>
  165. </div>
  166. <?php
  167. $js = <<<JS
  168. $(function() {
  169. $('body').delegate('.js-shipped', 'click', function(e) {
  170. var ids = $("#order_sku_list").yiiGridView("getSelectedRows");
  171. var ids_str = ids.join(",");
  172. if(ids_str ==''){
  173. $.modal.error('请选择要发货的订单商品');
  174. $(this).attr('href', 'javascript:;');
  175. e.preventDefault();
  176. return false;
  177. } else {
  178. var href = $(this).attr('data-href') + '&order_sku_ids=' + ids_str;
  179. $(this).attr('href', href);
  180. }
  181. });
  182. });
  183. JS;
  184. $this->registerJs($js);