com-wechat-video-shop.php 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. <template id="com-wechat-video-shop">
  2. <div class="com-wechat-video-shop">
  3. <el-card class="edit-card" shadow="never">
  4. <el-form :model="form" size="small">
  5. <el-form-item label="商品是否参与分销员分佣" prop="is_enable">
  6. <el-switch :active-value="1" :inactive-value="0" v-model="form.is_enable" @change="participate"></el-switch>
  7. </el-form-item>
  8. <el-tabs v-if="form.is_enable == 1" v-model="activeName" @tab-click="handleClick">
  9. <el-tab-pane v-for="(config,key) in form.config" :label="commission_type_map[key]" :name="key" :key="key">
  10. <el-form-item label="是否独立设置" prop="is_independent_setting">
  11. <el-switch :active-value="1" :inactive-value="0" v-model="config.is_independent_setting"></el-switch>
  12. </el-form-item>
  13. <el-form-item prop="reward_type" :label="`分销员${commission_type_map[key]}模式`">
  14. <el-col :span="24">
  15. <el-radio-group v-model="config.reward_type" size="small">
  16. <el-radio :label="0" border>固定金额</el-radio>
  17. <el-radio :label="1" border>百分比</el-radio>
  18. </el-radio-group>
  19. </el-col>
  20. </el-form-item>
  21. <!-- 列出等级 -->
  22. <el-row>
  23. <el-col :span="6">
  24. <el-table size="mini" border :data="level_arr.WechatVideoShop">
  25. <el-table-column label="等级名称" prop="name" align="right" width="150px"></el-table-column>
  26. <el-table-column label="奖励设置" align="left">
  27. <template slot-scope="scope">
  28. <el-input v-model="config.level[scope.row.level]" size="small">
  29. <template #append>{{config.reward_type == 0 ? commission_type_map[key] : '%'}}</template>
  30. </el-input>
  31. </template>
  32. </el-table-column>
  33. </el-table>
  34. </el-col>
  35. </el-row>
  36. </el-tab-pane>
  37. </el-tabs>
  38. </el-form>
  39. </el-card>
  40. </div>
  41. </template>
  42. <script>
  43. Vue.component('com-wechat-video-shop', {
  44. template: "#com-wechat-video-shop",
  45. props: {
  46. level_arr: {
  47. type: Object,
  48. default: () => {
  49. return {};
  50. }
  51. },
  52. setting: {
  53. type: Object,
  54. default: () => {
  55. return {};
  56. }
  57. },
  58. commission_type_map: {
  59. type: Object,
  60. default: () => {
  61. return {};
  62. }
  63. }
  64. },
  65. data() {
  66. return {
  67. activeName: 'commission',
  68. form: {
  69. is_enable: 1,
  70. config: {}
  71. },
  72. }
  73. },
  74. watch: {
  75. setting: {
  76. deep: true,
  77. immediate: true,
  78. handler(value) {
  79. if (!isEmpty(value)) {
  80. // console.log('typeof(value.config)', typeof(value.config))
  81. if (typeof value.config == 'string') {
  82. value.config = JSON.parse(value.config)
  83. }
  84. this.form = value;
  85. }
  86. }
  87. },
  88. level_arr: {
  89. deep: true,
  90. immediate: true,
  91. handler(value) {
  92. if (!isEmpty(value)) {
  93. let def_levels = {}
  94. for (let wechatVideoShopKey in value.WechatVideoShop) {
  95. def_levels[value.WechatVideoShop[wechatVideoShopKey].level] = 0
  96. }
  97. for (let commissionTypeMapKey in this.commission_type_map) {
  98. if (["score", "commission"].indexOf(commissionTypeMapKey) > -1) {
  99. if (!this.form.config[commissionTypeMapKey]) {
  100. this.$set(this.form.config, commissionTypeMapKey, {
  101. is_independent_setting: 0,
  102. reward_type: 0,
  103. level: JSON.parse(JSON.stringify(def_levels))
  104. })
  105. }
  106. }
  107. }
  108. }
  109. }
  110. },
  111. form: {
  112. deep: true,
  113. immediate: true,
  114. handler(value) {
  115. this.$emit("change", JSON.stringify(value), "WechatVideoShop");
  116. }
  117. }
  118. },
  119. mounted() {
  120. console.log('mounted', this.setting, this.level_arr, this.commission_type_map)
  121. },
  122. methods: {
  123. handleClick(tab, event) {},
  124. participate(data) {
  125. for(let name in this.form) {
  126. this.form[name].is_participate = data
  127. }
  128. },
  129. }
  130. });
  131. </script>