index.vue 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. <template>
  2. <div class="m-10 bg-w p-20 br-10">
  3. <h1>积分设置</h1>
  4. <div class="f-c-c f-col">
  5. <el-form
  6. ref="form"
  7. :model="form"
  8. label-position="right"
  9. label-width="280px"
  10. :rules="rules"
  11. class="mrow-60"
  12. >
  13. <el-form-item label="积分抵现(设置多少积分抵一元人民币)">
  14. <el-input-number
  15. controls-position="right"
  16. v-model="form.INTEGRAL_CASH_OUT"
  17. style="width: 100%;"
  18. :precision="2"
  19. :step="0.1"
  20. :min="0"
  21. ></el-input-number>
  22. </el-form-item>
  23. <el-form-item label="邀请好友注册获得积分">
  24. <el-input-number
  25. controls-position="right"
  26. v-model="form.INTEGRAL_INVITE_TO_SIGN_UP"
  27. style="width: 100%;"
  28. :precision="2"
  29. :step="0.1"
  30. :min="0"
  31. ></el-input-number>
  32. </el-form-item>
  33. <el-form-item label="分享资讯获得积分">
  34. <el-input-number
  35. controls-position="right"
  36. v-model="form.INTEGRAL_SHARE_POINTS"
  37. style="width: 100%;"
  38. :precision="2"
  39. :step="0.1"
  40. :min="0"
  41. ></el-input-number>
  42. </el-form-item>
  43. <el-form-item label="点赞照片获得积分">
  44. <el-input-number
  45. controls-position="right"
  46. v-model="form.INTEGRAL_LIKE_TO_POINTS"
  47. style="width: 100%;"
  48. :precision="2"
  49. :step="0.1"
  50. :min="0"
  51. ></el-input-number>
  52. </el-form-item>
  53. <el-form-item label="被点赞照片获得积分">
  54. <el-input-number
  55. controls-position="right"
  56. v-model="form.INTEGRAL_POINTS_BY_LIKE"
  57. style="width: 100%;"
  58. :precision="2"
  59. :step="0.1"
  60. :min="0"
  61. ></el-input-number>
  62. </el-form-item>
  63. <el-form-item label="每日签到获得积分">
  64. <el-input-number
  65. controls-position="right"
  66. v-model="form.INTEGRAL_SIGN_IN_BY_DAY"
  67. style="width: 100%;"
  68. :precision="2"
  69. :step="0.1"
  70. :min="0"
  71. ></el-input-number>
  72. </el-form-item>
  73. <el-form-item label="照片购买摄影师分成(%)">
  74. <el-input-number
  75. controls-position="right"
  76. v-model="form.CASH_PHOTOER_INCOME"
  77. style="width: 100%;"
  78. :precision="2"
  79. :step="0.1"
  80. :min="0"
  81. ></el-input-number>
  82. </el-form-item>
  83. <el-form-item label="H5网页域名">
  84. <el-input
  85. v-model="form.BUSINESS_H5_WEB_DOMAIN"
  86. placeholder="请输入"
  87. ></el-input>
  88. </el-form-item>
  89. <el-form-item class="f-fe-c">
  90. <el-button type="primary" @click="onSubmit">保存</el-button>
  91. </el-form-item>
  92. </el-form>
  93. </div>
  94. </div>
  95. </template>
  96. <script>
  97. import { getList, saveItem } from '@/api/config';
  98. export default {
  99. name: 'PointsSetting',
  100. components: { toolbar },
  101. data() {
  102. return {
  103. form: {
  104. INTEGRAL_CASH_OUT: 0,
  105. INTEGRAL_INVITE_TO_SIGN_UP: 0,
  106. INTEGRAL_SHARE_POINTS: 0,
  107. INTEGRAL_LIKE_TO_POINTS: 0,
  108. INTEGRAL_POINTS_BY_LIKE: 0,
  109. INTEGRAL_SIGN_IN_BY_DAY: 0,
  110. CASH_PHOTOER_INCOME: 0,
  111. BUSINESS_H5_WEB_DOMAIN: ''
  112. },
  113. rules: {
  114. INTEGRAL_CASH_OUT: [
  115. { required: true, message: '请输入积分', trigger: 'blur' }
  116. ],
  117. INTEGRAL_INVITE_TO_SIGN_UP: [
  118. { required: true, message: '请输入积分', trigger: 'blur' }
  119. ],
  120. INTEGRAL_SHARE_POINTS: [
  121. { required: true, message: '请输入积分', trigger: 'blur' }
  122. ],
  123. INTEGRAL_LIKE_TO_POINTS: [
  124. { required: true, message: '请输入积分', trigger: 'blur' }
  125. ],
  126. INTEGRAL_POINTS_BY_LIKE: [
  127. { required: true, message: '请输入积分', trigger: 'blur' }
  128. ],
  129. INTEGRAL_SIGN_IN_BY_DAY: [
  130. { required: true, message: '请输入积分', trigger: 'blur' }
  131. ],
  132. CASH_PHOTOER_INCOME: [
  133. { required: true, message: '请输入积分', trigger: 'blur' }
  134. ],
  135. BUSINESS_H5_WEB_DOMAIN: [
  136. { required: true, message: '请输入地址', trigger: 'blur' }
  137. ]
  138. }
  139. };
  140. },
  141. created() {
  142. this.loadData();
  143. },
  144. methods: {
  145. async loadData() {
  146. const { data } = await getList();
  147. const result = data.reduce((init, item) => {
  148. init[item.code] = item.value;
  149. return init;
  150. }, {});
  151. this.form = result;
  152. },
  153. async onSubmit() {
  154. this.$refs.form.validate(async valid => {
  155. if (valid) {
  156. const params = [];
  157. for (let key in this.form) {
  158. params.push({
  159. code: key,
  160. value: this.form[key] + ''
  161. });
  162. }
  163. const { success } = await saveItem(params);
  164. if (success) {
  165. this.$success('保存成功');
  166. this.loadData();
  167. }
  168. }
  169. });
  170. }
  171. }
  172. };
  173. </script>
  174. <style type="scss" scoped></style>