MerchantHelper.php 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <?php
  2. namespace common\helpers;
  3. use yii\web\JsExpression;
  4. use common\models\merchant\Merchant;
  5. /**
  6. * Class MerchantHelper
  7. * @package common\helpers
  8. * @author jianyan74 <751393839@qq.com>
  9. */
  10. class MerchantHelper
  11. {
  12. const ONE = 'one';
  13. const TWO = 'two';
  14. /**
  15. * @param Merchant $merchant
  16. * @return string
  17. */
  18. public static function html($merchant)
  19. {
  20. if (empty($merchant)) {
  21. return '';
  22. }
  23. $url = Url::toRoute(['/merchants/merchant/view', 'id' => $merchant->id]);
  24. $url = '#';
  25. $name = '商户名: ' . Html::encode($merchant['title']);
  26. $hideName = Html::encode(StringHelper::textNewLine($merchant->title, 6, 1)[0]);
  27. $cover = Html::img(ImageHelper::defaultHeaderPortrait($merchant->cover), [
  28. 'class' => 'img-circle elevation-1',
  29. 'width' => '35',
  30. 'height' => '35',
  31. ]);
  32. $toggle = [];
  33. $toggle[] = '商户ID: ' . $merchant->id;
  34. $toggle[] = $name;
  35. $toggle[] = '联系方式: ' . (!empty($merchant['mobile']) ? StringHelper::hideStr($merchant['mobile'], 3, 4) : '-');
  36. $toggle = "<div class='text-left'>" . implode('<br>', $toggle) ."</div>";
  37. return '<div class="text-center" href="' . $url . '">' . $cover . '<a class="users-list-name pt-1" data-toggle="tooltip" data-placement="bottom" data-html="true" title="' . $toggle . '" href="javascript: void(0)">' . $hideName . '</a></div>';
  38. }
  39. /**
  40. * @param $searchModel
  41. * @param $model
  42. * @return array
  43. */
  44. public static function gridView($searchModel, $label = '所属商户', $relevancy = 'merchant', $default = '无')
  45. {
  46. return [
  47. 'label' => $label,
  48. 'attribute' => 'merchant_id',
  49. 'headerOptions' => ['class' => 'col-md-1 text-align-center'],
  50. 'contentOptions' => ['class' => 'text-align-center'],
  51. 'filter' => \kartik\select2\Select2::widget([
  52. 'name' => 'SearchModel[merchant_id]',
  53. 'initValueText' => '', // set the initial display text
  54. 'options' => ['placeholder' => '请输入店铺名称'],
  55. 'pluginOptions' => [
  56. 'allowClear' => true,
  57. 'minimumInputLength' => 2,
  58. 'language' => [
  59. 'errorLoading' => new JsExpression("function () { return '等待中...'; }"),
  60. ],
  61. 'ajax' => [
  62. 'url' => Url::to(['/merchant/select2']),
  63. 'dataType' => 'json',
  64. 'data' => new JsExpression('function(params) {
  65. return {q:params.term};
  66. }'),
  67. ],
  68. 'escapeMarkup' => new JsExpression('function (markup) { return markup; }'),
  69. 'templateResult' => new JsExpression('function(city) { return city.text; }'),
  70. 'templateSelection' => new JsExpression('function (city) { return city.text; }'),
  71. ],
  72. ]),
  73. 'value' => function ($model) use ($relevancy, $default) {
  74. if (empty($model->$relevancy)) {
  75. return $default;
  76. }
  77. return self::html($model->$relevancy);
  78. },
  79. 'format' => 'raw',
  80. ];
  81. }
  82. }
粤ICP备19079148号