goods-model.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. <?php
  2. use common\helpers\ComponentHelper;
  3. use common\helpers\AddonHelper;
  4. $addons_setting = empty($addons_setting) ? [] : $addons_setting;
  5. foreach ($addons_setting as $key => $item) {
  6. if (AddonHelper::has($key)) {
  7. ComponentHelper::loadComponentView($item['components'], Yii::$app->basePath . '/../addons/' . ucfirst($key) . '/backend/views/goods');
  8. }
  9. }
  10. ?>
  11. <style>
  12. <?= ComponentHelper::loadComponentView('edit', __DIR__ . '/css', [], true, 'css'); ?>
  13. </style>
  14. <div id="app" v-cloak>
  15. <el-card shadow="never" style="border:0" class="box-card" body-style="background-color: #f3f3f3;padding: 20px 0 0;"
  16. class="box-card" v-loading="cardLoading">
  17. <div slot="header">
  18. <div flex="cross:center box:first">
  19. <div><span @click="navigateToGoodsList" class="text">商品列表</span>/配置模式</div>
  20. </div>
  21. </div>
  22. <div class="goods-box tabColor">
  23. <el-form :model="ruleForm" ref="ruleForm" size="mini" label-width="150px" class="demo-ruleForm">
  24. <div class="basic">
  25. <?php echo '<el-tabs value="' . $first . '" @tab-click="handleClick" class="tabss">'; ?>
  26. <?php foreach ($addons_setting as $key => $item) {
  27. echo '<el-tab-pane label="' . $addons_setting[$key]['title'] . '" name="' . $key . '">';
  28. $map = $item['is_extra'] ? "commission_type_map_extra" : "commission_type_map";
  29. echo $addons_setting[$key]['title'] == "消费分红" ? '<div style="margin-top:24px">暂无内容</div>' : '<' . $item['components'] . ' :goods="goods" :level_arr="level" :commission_type_map='.
  30. $map.' :coupon_type_map="coupon_type_map" :is_show_additional_score="is_show_additional_score" :setting="setting.' . $key . '" :is_main="1" @change="getData" style="margin-bottom:20px"></' . $item['components'] . '>';
  31. echo '</el-tab-pane>';
  32. } ?>
  33. </el-tabs>
  34. </div>
  35. </el-form>
  36. </div>
  37. </el-card>
  38. <div class="bottom-btns" flex="main:center cross:center"
  39. style="padding: 15px 0;margin-top: 20px; background-color: #fff;">
  40. <el-button size="mini" type="primary" v-loading="btnLoading" @click="submit()">保存</el-button>
  41. </div>
  42. </div>
  43. <script>
  44. const app = new Vue({
  45. el: '#app',
  46. data() {
  47. return {
  48. cardLoading: false,
  49. setting: {},
  50. commission_type_map: {},
  51. commission_type_map_extra:{},
  52. coupon_type_map: {},
  53. is_show_additional_score: 0,
  54. goods: {},
  55. level: {},
  56. ruleForm: {},
  57. activeName: '',
  58. btnLoading: false,
  59. };
  60. },
  61. created() {
  62. this.goodsId = getQuery('id');
  63. },
  64. mounted: function () {
  65. this.getModelDetail();
  66. },
  67. methods: {
  68. handleClick() { },
  69. getModelDetail() {
  70. let self = this;
  71. self.cardLoading = true;
  72. request({
  73. params: {
  74. r: 'mall/goods/goods-model',
  75. id: getQuery('id')
  76. },
  77. method: 'get',
  78. }).then(e => {
  79. self.cardLoading = false;
  80. if (e.data.code == 0) {
  81. self.level = e.data.data.level;
  82. console.log('========', e.data.data.level);
  83. if (!isEmpty(e.data.data.setting)) {
  84. self.setting = e.data.data.setting;
  85. for (let key in self.setting) {
  86. // 将空的
  87. if (isEmpty(self.setting[key])) self.setting[key] = {};
  88. }
  89. }
  90. self.commission_type_map = e.data.data.commission_type_map;
  91. self.coupon_type_map = e.data.data.coupon_type_map;
  92. self.is_show_additional_score = e.data.data.is_show_additional_score;
  93. self.commission_type_map_extra = e.data.data.commission_type_map_extra;
  94. } else {
  95. self.$message.error(e.data.msg);
  96. }
  97. }).catch(e => {
  98. console.log(e);
  99. });
  100. },
  101. submit() {
  102. let self = this;
  103. self.btnLoading = true;
  104. self.ruleForm.goods_id = getQuery('id');
  105. params = Object.assign(self.ruleForm, this.cForm);
  106. request({
  107. params: {
  108. r: 'mall/goods/goods-model'
  109. },
  110. method: 'post',
  111. data: {
  112. form: params
  113. }
  114. }).then(e => {
  115. self.btnLoading = false;
  116. if (e.data.code == 0) {
  117. self.$message.success(e.data.msg);
  118. this.navigateToGoodsList();
  119. } else {
  120. self.$message.error(e.data.msg);
  121. }
  122. }).catch(e => {
  123. self.$message.error(e.data.msg);
  124. self.btnLoading = false;
  125. });
  126. },
  127. getData(val, key) {
  128. this.ruleForm[key] = val;
  129. // console.log(this.ruleForm, '55555');
  130. },
  131. navigateToGoodsList() {
  132. const goodsPage = sessionStorage.getItem('goodsPage') || 1;
  133. this.$navigate({
  134. r: '/mall/goods/index',
  135. page: goodsPage
  136. })
  137. }
  138. }
  139. });
  140. </script>