merchant.js 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. define({
  2. name: "AnchorwomanBonus",
  3. template: `
  4. <div id="anchorwoman-bonus">
  5. <el-form label-width="200px">
  6. <div id="vue_head">
  7. <div class="base_set">
  8. <div class="vue-main-title">
  9. <div class="vue-main-title-left"></div>
  10. <div class="vue-main-title-content">招商分红</div>
  11. </div>
  12. <el-divider></el-divider>
  13. <div class="vue-main-form">
  14. <el-form-item label="招商员分红">
  15. <el-radio v-model="is_open_bonus_staff" :label="0">关闭</el-radio>
  16. <el-radio v-model="is_open_bonus_staff" :label="1">开启</el-radio>
  17. </el-form-item>
  18. <el-form-item label="招商中心分红">
  19. <el-radio v-model="is_open_bonus_center" :label="0">关闭</el-radio>
  20. <el-radio v-model="is_open_bonus_center" :label="1">开启</el-radio>
  21. <div class="help-block">招商独立分红设置<span style="color:red">(设置0,取统一设置, 设置为空,不做保存处理)</span></div>
  22. </el-form-item>
  23. <el-divider></el-divider>
  24. <el-form-item label="招商员独立分红">
  25. <el-row class="gutter">
  26. <el-col :span="13" class="flex-col">
  27. <el-input placeholder="请输入百分比" v-model="staff_bonus" size="small" oninput="if(value<0)value='';if(value.indexOf('.')>0){value=value.slice(0,value.indexOf('.')+4)}">
  28. <template slot="append">%</template>
  29. </el-input>
  30. </el-col>
  31. </el-row>
  32. </el-form-item>
  33. <el-form-item label="招商员等级独立分红">
  34. <el-row class="gutter">
  35. <el-col :span="13" class="flex-col" v-for="(item1, index) in staffLevels" :key="item1.id">
  36. <el-input placeholder="请输入百分比" v-model="item1.value" oninput="if(value<0)value='';if(value.indexOf('.')>0){value=value.slice(0,value.indexOf('.')+4)}" type="number"
  37. size="small ">
  38. <template slot="prepend" class="prepend">{{item1.level_name}}</template>
  39. <template slot="append">%</template>
  40. </el-input>
  41. </el-col>
  42. </el-row>
  43. </el-form-item>
  44. <el-form-item label="招商中心等级独立分红">
  45. <el-row class="gutter">
  46. <el-col :span="13" class="flex-col" v-for="(item2, index) in merchantLevels" :key="item2.id">
  47. <el-input placeholder="请输入百分比" v-model="item2.value" size="small " oninput="if(value<0)value='';if(value.indexOf('.')>0){value=value.slice(0,value.indexOf('.')+4)}" type="number">
  48. <template slot="prepend" class="prepend">{{item2.level_name}}</template>
  49. <template slot="append">%</template>
  50. </el-input>
  51. </el-col>
  52. </el-row>
  53. </el-form-item>
  54. <el-divider></el-divider>
  55. </div>
  56. </div>
  57. </div>
  58. </el-form>
  59. </div>
  60. `,
  61. style: `
  62. #anchorwoman-bonus .el-row{
  63. margin-top: 0;
  64. }
  65. .help-block{
  66. font-size:14px;
  67. }
  68. .location{
  69. display:flex;
  70. justify-content:flex-end;
  71. }
  72. .gutter{
  73. text-align:center;
  74. }
  75. .flex-col{
  76. margin-top:5px;
  77. }
  78. .el-form-item {
  79. margin-bottom:12px;
  80. }
  81. .prepend {
  82. width: 150px;
  83. }
  84. `,
  85. props: {
  86. form: {
  87. type: Object,
  88. default() {
  89. return {};
  90. },
  91. },
  92. },
  93. data() {
  94. return {
  95. staff_bonus: '',
  96. is_open_bonus_staff: 0,
  97. is_open_bonus_center: 0,
  98. staffLevels: [],
  99. merchantLevels: [],
  100. };
  101. },
  102. mounted() {
  103. if (this.form.merchant_goods && !Array.isArray(this.form.merchant_goods)) {
  104. let merchant = this.form.merchant_goods;
  105. this.staff_bonus = merchant.staff_bonus;
  106. this.is_open_bonus_staff = merchant.is_open_bonus_staff;
  107. this.is_open_bonus_center = merchant.is_open_bonus_center;
  108. }
  109. this.staffLevels = this.form.staff_levels ? JSON.parse(JSON.stringify(this.form.staff_levels)) : [];
  110. this.merchantLevels = this.form.merchant_levels ? JSON.parse(JSON.stringify(this.form.merchant_levels)) : [];
  111. },
  112. methods: {
  113. filterList () {
  114. let ruleArr = {};
  115. ruleArr.staff_levels = {};
  116. ruleArr.level = {};
  117. this.staffLevels.forEach(item => {
  118. ruleArr.staff_levels[item.id] = item.value;
  119. })
  120. this.merchantLevels.forEach(item => {
  121. ruleArr.level[item.id] = item.value;
  122. })
  123. return ruleArr;
  124. },
  125. validate() {
  126. return {
  127. is_open_bonus_staff: this.is_open_bonus_staff,
  128. is_open_bonus_center: this.is_open_bonus_center,
  129. staff_bonus: this.staff_bonus,
  130. ...this.filterList()
  131. }
  132. },
  133. },
  134. });