com-area.php 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. <template id="com-area">
  2. <div class="com-area">
  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_enable">
  11. <el-switch :active-value="1" :inactive-value="0" v-model="config.is_enable"></el-switch>
  12. </el-form-item>
  13. <el-row :gutter="16" v-if="config.is_enable == 1">
  14. <el-col :span="6">
  15. <el-card shadow="always">
  16. <!--团队佣金配置 -->
  17. <div slot="header" class="clearfix">
  18. <span>团队{{commission_type_map[config.commission_type]}}配置</span>
  19. </div>
  20. <el-form-item label="佣金类型" prop="is_percent_team">
  21. <el-radio-group v-model="config.is_percent_team">
  22. <el-radio :label="0" class="grid-content bg-purple">百分比</el-radio>
  23. <el-radio :label="1"
  24. class="grid-content bg-purple">固定{{commission_type_map[config.commission_type]}}</el-radio>
  25. </el-radio-group>
  26. </el-form-item>
  27. <el-form-item>
  28. <el-col :span="24">
  29. <el-row>
  30. <el-col :span="6">
  31. <div class="grid-content bg-purple">团队等级</div>
  32. </el-col>
  33. <el-col :span="16">
  34. <div class="grid-content bg-purple-light">提成比例</div>
  35. </el-col>
  36. </el-row>
  37. <el-row v-for="(item,index) in level_arr.Area" :key="index"
  38. style="margin-bottom:10px" v-if="(store && item.level < 5) || !store">
  39. <el-col :span="6">{{ item.name }}</el-col>
  40. <el-col :span="16">
  41. <el-input v-model="config.detail[item.level].agent_team_prize"
  42. placeholder="输入数值" onInput="value=toNumber(value,2)">
  43. <template slot="append"
  44. v-if="config.is_percent_team == 0">%</template>
  45. <template slot="append" v-if="config.is_percent_team == 1">
  46. <template
  47. v-if="config.commission_type == 'commission'">元</template>
  48. <template
  49. v-if="config.commission_type == 'hi_bei' || config.commission_type == 'hi_value'">枚</template>
  50. <template
  51. v-if="config.commission_type == 'score'">{{commission_type_map[config.commission_type]}}</template>
  52. </template>
  53. </el-input>
  54. </el-col>
  55. </el-row>
  56. </el-col>
  57. </el-form-item>
  58. </el-card>
  59. </el-col>
  60. <el-col :span="6">
  61. <el-card shadow="always">
  62. <!--平级奖佣金配置 -->
  63. <div slot="header" class="clearfix">
  64. <span>平级奖{{commission_type_map[config.commission_type]}}配置</span>
  65. </div>
  66. <el-form-item label="平级奖类型" prop="is_percent_equal">
  67. <el-radio-group v-model="config.is_percent_equal">
  68. <el-radio :label="0" class="grid-content bg-purple">百分比</el-radio>
  69. <el-radio :label="1"
  70. class="grid-content bg-purple">固定{{commission_type_map[config.commission_type]}}</el-radio>
  71. </el-radio-group>
  72. </el-form-item>
  73. <el-form-item>
  74. <el-col :span="24">
  75. <el-row>
  76. <el-col :span="6">
  77. <div class="grid-content bg-purple">团队等级</div>
  78. </el-col>
  79. <el-col :span="16">
  80. <div class="grid-content bg-purple-light">提成比例</div>
  81. </el-col>
  82. </el-row>
  83. <el-row v-for="(item,index) in level_arr.Area" :key="index"
  84. style="margin-bottom:10px" v-if="(store && item.level < 5) || !store">
  85. <el-col :span="6">{{ item.name }}</el-col>
  86. <el-col :span="16">
  87. <el-input v-model="config.detail[item.level].agent_equal_prize"
  88. placeholder="输入数值" onInput="value=toNumber(value,2)">
  89. <template slot="append"
  90. v-if="config.is_percent_equal == 0">%</template>
  91. <template slot="append" v-if="config.is_percent_equal == 1">
  92. <template
  93. v-if="config.commission_type == 'commission'">元</template>
  94. <template
  95. v-if="config.commission_type == 'hi_bei' || config.commission_type == 'hi_value'">枚</template>
  96. <template
  97. v-if="config.commission_type == 'score'">{{commission_type_map[config.commission_type]}}</template>
  98. </template>
  99. </el-input>
  100. </el-col>
  101. </el-row>
  102. </el-col>
  103. </el-form-item>
  104. </el-card>
  105. </el-col>
  106. </el-row>
  107. </el-tab-pane>
  108. </el-tabs>
  109. </el-form>
  110. </el-form>
  111. </el-card>
  112. </div>
  113. </template>
  114. <script>
  115. Vue.component('com-area', {
  116. template: "#com-area",
  117. props: {
  118. level_arr: {
  119. type: Object,
  120. default: () => {
  121. return {};
  122. }
  123. },
  124. setting: {
  125. type: Object,
  126. default: () => {
  127. return {};
  128. }
  129. },
  130. commission_type_map: {
  131. type: Object,
  132. default: () => {
  133. return {};
  134. }
  135. },
  136. store: Boolean,
  137. },
  138. data() {
  139. return {
  140. activeName: 'commission',
  141. form: {},
  142. install: {// 初始化数据
  143. is_enable: 0,
  144. is_percent_team: 0,
  145. is_percent_equal: 0,
  146. is_percent_over: 0,
  147. is_percent_extra: 0,
  148. item_type: 'goods',
  149. commission_type: '',
  150. detail: {}
  151. }
  152. }
  153. },
  154. watch: {
  155. setting: {
  156. deep: true,
  157. immediate: true,
  158. handler(value) {
  159. if (!isEmpty(value)) {
  160. this.form = value;
  161. }
  162. }
  163. },
  164. level_arr: {
  165. deep: true,
  166. immediate: true,
  167. handler(value) {
  168. if (!isEmpty(value)) {
  169. let self = this;
  170. var data = value.Area;
  171. // 初始化赋值
  172. for (let name in self.commission_type_map) {
  173. let detail = {};
  174. var prize = isEmpty(self.form[name]) ? {} : self.form[name].detail;
  175. if (data) {
  176. Object.keys(data).forEach(function (key) {
  177. var formKey = data[key].level;
  178. Object.assign(detail, {
  179. [formKey]: {
  180. level: data[key].level,
  181. agent_team_prize: !isEmpty(prize[formKey]) ? prize[formKey].agent_team_prize : 0,
  182. agent_equal_prize: !isEmpty(prize[formKey]) ? prize[formKey].agent_equal_prize : 0,
  183. agent_over_prize: !isEmpty(prize[formKey]) ? prize[formKey].agent_over_prize : 0,
  184. agent_extra_prize: !isEmpty(prize[formKey]) ? prize[formKey].agent_extra_prize : 0,
  185. }
  186. });
  187. });
  188. }
  189. self.install = {
  190. is_enable: isEmpty(self.form[name]) ? 0 : self.form[name].is_enable,
  191. is_percent_team: isEmpty(self.form[name]) ? 0 : self.form[name].is_percent_team,
  192. is_percent_equal: isEmpty(self.form[name]) ? 0 : self.form[name].is_percent_equal,
  193. is_percent_over: isEmpty(self.form[name]) ? 0 : self.form[name].is_percent_over,
  194. is_percent_extra: isEmpty(self.form[name]) ? 0 : self.form[name].is_percent_extra,
  195. item_type: isEmpty(self.form[name]) ? 'goods' : self.form[name].item_type,
  196. commission_type: name,
  197. detail: detail
  198. };
  199. this.$set(self.form, name, JSON.parse(JSON.stringify(self.install)));
  200. }
  201. }
  202. }
  203. },
  204. form: {
  205. deep: true,
  206. immediate: true,
  207. handler(value) {
  208. this.$emit("change", JSON.stringify(value), "Area");
  209. }
  210. }
  211. },
  212. methods: {
  213. handleClick(tab, event) {
  214. console.log(tab, event);
  215. }
  216. },
  217. created() {
  218. console.log('store', this.store)
  219. }
  220. });
  221. </script>