com-circle-distribution.php 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. <template id="com-circle-distribution">
  2. <div class="com-circle-distribution">
  3. <el-card class="edit-card" shadow="never">
  4. <!-- <div slot="header" class="clearfix">
  5. <div class="card-title">循环分销设置<span class="card-sub-title"></span></div>
  6. </div> -->
  7. <el-form :model="form" size="small">
  8. <el-tabs v-model="activeName" @tab-click="handleClick">
  9. <el-tab-pane v-for="(config,key) in form" :label="commission_type_map[key]" :name="key" :key="key">
  10. <el-form-item label="不参与分销循环" prop="is_not_involved_distribution">
  11. <el-switch :active-value="1" :inactive-value="0" v-model="config.is_not_involved_distribution"></el-switch>
  12. <p style="color: #C0C4CC;">开启以后该商品不参与分销循环分佣</p>
  13. </el-form-item>
  14. <el-form-item label="是否独立设置" prop="is_enable">
  15. <el-switch :active-value="1" :inactive-value="0" v-model="config.is_enable"></el-switch>
  16. </el-form-item>
  17. <el-row :gutter="24" v-if="config.is_enable == 1">
  18. <el-col :span="24">
  19. <el-card shadow="always">
  20. <el-form-item label="分销佣金类型" prop="is_percent">
  21. <el-radio-group v-model="config.is_percent">
  22. <el-radio :label="0">百分比</el-radio>
  23. <el-radio :label="1">固定</el-radio>
  24. </el-radio-group>
  25. </el-form-item>
  26. <el-form-item v-for="(item,index) in config.commission_value" :key='index'
  27. v-if="config.commission_value.length > 0 && (config.settings == 0 || is_attr == 0)"
  28. label='佣金阶梯' prop="first_score">
  29. <el-input type="number" :min="0" v-model="item.value"
  30. style="width: 360px;margin-right: 20px;">
  31. <template slot="prepend">直推第{{ index+1 }}人/直推第n+{{ index+1 }}人</template>
  32. <template slot="append" v-if="config.is_percent == 0">%</template>
  33. <template slot="append" v-if="config.is_percent == 1">
  34. <template v-if="config.commission_type == 'commission'">元</template>
  35. <template
  36. v-if="config.commission_type == 'score'">{{commission_type_map[config.commission_type]}}</template>
  37. </template>
  38. </el-input>
  39. <el-button v-if="config.commission_value && config.commission_value.length>=1"
  40. size="mini" type="danger" icon="el-icon-close" circle
  41. @click="delItem(index, config.commission_type)"
  42. style="margin-left:10px"></el-button>
  43. </el-form-item>
  44. <el-button type="primary" @click="dirctAddSet(config.commission_type)" size="small"
  45. style="margin-bottom: 10px;margin-left:60px">+添加佣金阶梯</el-button>
  46. </el-card>
  47. </el-col>
  48. </el-row>
  49. </el-tab-pane>
  50. </el-tabs>
  51. </el-form>
  52. </el-card>
  53. </div>
  54. </template>
  55. <script>
  56. Vue.component('com-circle-distribution', {
  57. template: "#com-circle-distribution",
  58. props: {
  59. level_arr: {
  60. type: Object,
  61. default: () => {
  62. return {};
  63. }
  64. },
  65. setting: {
  66. type: Object,
  67. default: () => {
  68. return {};
  69. }
  70. },
  71. commission_type_map: {
  72. type: Object,
  73. default: () => {
  74. return {};
  75. }
  76. }
  77. },
  78. data() {
  79. return {
  80. levels: 2,
  81. activeName: 'commission',
  82. form: {
  83. },
  84. is_attr: 0,
  85. install: { // 初始化数据
  86. is_enable: 0,
  87. is_percent: 0,
  88. item_type: 'goods',
  89. commission_type: '',
  90. settings: 0,
  91. commission_value: {},
  92. is_not_involved_distribution: 0
  93. }
  94. }
  95. },
  96. mounted() {
  97. },
  98. watch: {
  99. setting: {
  100. deep: true,
  101. immediate: true,
  102. handler(value) {
  103. if (!isEmpty(value)) {
  104. this.form = value;
  105. }
  106. }
  107. },
  108. commission_type_map: {
  109. deep: true,
  110. immediate: true,
  111. handler(value) {
  112. if (!isEmpty(value) && isEmpty(this.setting)) {
  113. let self = this;
  114. // 初始化赋值
  115. for (let name in self.commission_type_map) {
  116. let commission_value = [];
  117. self.install = {
  118. is_enable: isEmpty(self.form[name]) ? 0 : self.form[name].is_enable,
  119. is_percent: isEmpty(self.form[name]) ? 0 : self.form[name].is_percent,
  120. item_type: isEmpty(self.form[name]) ? 'goods' : self.form[name].item_type,
  121. commission_type: name,
  122. commission_value: commission_value,
  123. is_not_involved_distribution: isEmpty(self.form[name]) ? 0 : self.form[name].is_not_involved_distribution,
  124. };
  125. this.$set(self.form, name, JSON.parse(JSON.stringify(self.install)));
  126. }
  127. }
  128. }
  129. },
  130. form: {
  131. deep: true,
  132. immediate: true,
  133. handler(value) {
  134. this.$emit("change", JSON.stringify(value), "CircleDistribution");
  135. }
  136. },
  137. },
  138. methods: {
  139. loadData() {
  140. this.cardLoading = true;
  141. request({
  142. params: {
  143. r: 'circle-distribution/setting/config-setting',
  144. id: getQuery('id'),
  145. },
  146. method: 'get'
  147. }).then(e => {
  148. this.cardLoading = false;
  149. if (e.data.code == 0) {
  150. this.levels = e.data.data.levels;
  151. } else {
  152. this.$message.error(e.data.msg);
  153. }
  154. }).catch(e => {
  155. console.log(e);
  156. });
  157. },
  158. handleSelectionChange() { },
  159. handleClick(tab, event) {
  160. console.log(tab, event);
  161. },
  162. dirctAddSet(type) {
  163. let item_tmp = {
  164. value: 0
  165. }
  166. this.form[type].commission_value.push(item_tmp);
  167. },
  168. delItem(index, type) {
  169. let commission_value = this.form[type].commission_value;
  170. commission_value.splice(index, 1);
  171. this.form[type].commission_value = commission_value;
  172. },
  173. }
  174. });
  175. </script>