index.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291
  1. <div id="app" v-cloak>
  2. <el-card
  3. v-loading="loading"
  4. style="border:0; min-width: 800px;"
  5. shadow="never"
  6. body-style="background-color: #f3f3f3;padding: 10px 0 0;"
  7. >
  8. <div slot="header">
  9. <span>配置</span>
  10. </div>
  11. <el-form
  12. :model="formData"
  13. ref="elForm"
  14. label-width="220px"
  15. style="position: relative"
  16. size="small"
  17. :rules="rules"
  18. >
  19. <el-row>
  20. <el-col :span="24">
  21. <div class="form-body">
  22. <!-- 基础设置 -->
  23. <div class="title padding-top">
  24. <span class="title-line"></span>
  25. <span>基础设置</span>
  26. </div>
  27. <el-col :span="24">
  28. <!-- 启用运营中心 -->
  29. <el-form-item label="启用运营中心" prop="switch">
  30. <el-switch
  31. v-model="formData.switch"
  32. :active-value="1"
  33. :inactive-value="0"
  34. >
  35. </el-switch>
  36. </el-form-item>
  37. <!-- 是否推广中心显示 -->
  38. <el-form-item label="是否推广中心显示" prop="show_center">
  39. <el-switch
  40. v-model="formData.show_center"
  41. :active-value="1"
  42. :inactive-value="0"
  43. >
  44. </el-switch>
  45. </el-form-item>
  46. <!-- 下单限制必须选择运营中心 -->
  47. <el-form-item label="下单限制必须选择运营中心" prop="order_limit">
  48. <el-switch
  49. v-model="formData.order_limit"
  50. :active-value="1"
  51. :inactive-value="0"
  52. >
  53. </el-switch>
  54. </el-form-item>
  55. <!-- 结算方式 -->
  56. <el-form-item label="结算方式" prop="compute_type">
  57. <el-radio-group v-model="formData.compute_type" size="small">
  58. <el-radio :label="1" border>订单完成后</el-radio>
  59. <el-radio :label="2" border>订单支付后</el-radio>
  60. </el-radio-group>
  61. <div class="tips-text" style="line-height: 24px;">
  62. 选择所产生的佣金是订单支付后就可以结算还是需要订单完成后才能结算,注意:已结算的佣金可提现,一旦结算无法收回
  63. </div>
  64. </el-form-item>
  65. <!-- 计算方式 -->
  66. <el-form-item label="计算方式" prop="computing_method">
  67. <el-radio-group v-model="formData.computing_method" size="small">
  68. <el-radio :label="1" border>支付价格</el-radio>
  69. <el-radio :label="2" border>商品售价</el-radio>
  70. <el-radio :label="3" border>商品利润</el-radio>
  71. </el-radio-group>
  72. <div class="tips-text" style="line-height: 24px;">
  73. 佣金分计算方式,如佣金选择的是百分比计算,计算基数可选择支付价格的百分比还商品销售价格的百分比
  74. 还是利润的百分比<br/>
  75. (注意:利润=商品支付价格-成本,如选择的是利润的百分比,每个商品都需要设置其成本)
  76. </div>
  77. </el-form-item>
  78. <!-- 奖励层级 -->
  79. <el-form-item label="奖励层级" prop="commission_levels">
  80. <el-checkbox-group v-model="formData.commission_levels">
  81. <el-checkbox
  82. v-for="item in commissionLevels"
  83. :label="item.name"
  84. >{{ item.title }}</el-checkbox>
  85. </el-checkbox-group>
  86. </el-form-item>
  87. </el-col>
  88. <!-- 申请设置 -->
  89. <div class="title padding-top">
  90. <span class="title-line"></span>
  91. <span>申请设置</span>
  92. </div>
  93. <el-col :span="24">
  94. <!-- 申请项 -->
  95. <el-form-item label="申请项" prop="applying_for">
  96. <el-checkbox-group v-model="formData.applying_for">
  97. <el-checkbox
  98. v-for="item in applyingList"
  99. :label="item.name"
  100. :disabled="item.disable"
  101. >{{ item.title }}</el-checkbox>
  102. </el-checkbox-group>
  103. </el-form-item>
  104. </el-col>
  105. <div></div>
  106. <el-col :span="24">
  107. <el-form-item size="large">
  108. <el-button type="primary" size="small" @click="submitForm">提交</el-button>
  109. <el-button size="small" @click="resetForm">重置</el-button>
  110. </el-form-item>
  111. </el-col>
  112. </div>
  113. </el-col>
  114. </el-row>
  115. </el-form>
  116. </el-card>
  117. </div>
  118. <script>
  119. const app = new Vue({
  120. el: '#app',
  121. data() {
  122. return {
  123. loading: false,
  124. submitLoading: false,
  125. commissionLevels: [
  126. {
  127. name: 1,
  128. title: '直推佣金',
  129. },
  130. {
  131. name: 2,
  132. title: '间推佣金',
  133. }
  134. ],
  135. applyingList: [
  136. {
  137. name: 'name',
  138. title: '真实姓名',
  139. disable: true,
  140. },
  141. {
  142. name: 'mobile',
  143. title: '手机号',
  144. disable: true,
  145. },
  146. {
  147. name: 'center_name',
  148. title: '运营中心名称',
  149. disable: true,
  150. },
  151. {
  152. name: 'idcard_front',
  153. title: '身份证正面',
  154. disable: false,
  155. },
  156. {
  157. name: 'idcard_reverse',
  158. title: '身份证正面',
  159. disable: false,
  160. },
  161. {
  162. name: 'operation_license',
  163. title: '营业执照',
  164. disable: false,
  165. },
  166. {
  167. name: 'operation_address',
  168. title: '营业地址',
  169. disable: true,
  170. }
  171. ],
  172. formData: {
  173. switch : 0,
  174. show_center : 0,
  175. order_limit : 0,
  176. applying_for : [
  177. 'name', 'mobile', 'center_name', 'operation_address'
  178. ],
  179. compute_type : 1,
  180. computing_method : 1,
  181. commission_levels : []
  182. },
  183. rules: {
  184. switch: [{
  185. required: true,
  186. }],
  187. show_center: [{
  188. required: true,
  189. }],
  190. order_limit: [{
  191. required: true,
  192. }],
  193. commission_levels: [{
  194. required: true,
  195. }],
  196. compute_type: [{
  197. required: true,
  198. }],
  199. computing_method: [{
  200. required: true,
  201. }],
  202. applying_for: [{
  203. required: true,
  204. }],
  205. },
  206. }
  207. },
  208. computed: {},
  209. watch: {},
  210. created() {
  211. this.readConfig()
  212. },
  213. mounted() {},
  214. methods: {
  215. submitForm() {
  216. this.$refs['elForm'].validate(valid => {
  217. if (valid) {
  218. this.submitLoading = true;
  219. request({
  220. params: {
  221. r: 'operation-center/setting/save',
  222. },
  223. method: 'post',
  224. data: this.formData,
  225. }).then(e => {
  226. this.submitLoading = false
  227. if (e.data.code === 0) {
  228. this.$message.success(e.data.msg)
  229. } else {
  230. this.$message.error(e.data.msg)
  231. }
  232. })
  233. } else {
  234. this.$message.error('部分参数验证不通过')
  235. }
  236. })
  237. },
  238. resetForm() {
  239. this.$refs['elForm'].resetFields()
  240. },
  241. readConfig(){
  242. request({
  243. params: {
  244. r: 'operation-center/setting/index',
  245. },
  246. method: 'get',
  247. }).then(e => {
  248. this.submitLoading = false
  249. if (e.data.code === 0 && e.data.data && JSON.stringify(e.data.data.setting) != '[]') {
  250. this.formData = e.data.data.setting
  251. }
  252. })
  253. },
  254. }
  255. })
  256. </script>
  257. <style>
  258. .form-body {
  259. padding-bottom: 5px;
  260. display: flex;
  261. flex-direction: column;
  262. }
  263. .title {
  264. display: flex;
  265. align-items: center;
  266. padding: 18px 20px;
  267. border-bottom: 1px solid #F3F3F3;
  268. background-color: #fff;
  269. }
  270. .title-line {
  271. width: 4px;
  272. height: 20px;
  273. background-color: #1479F0;
  274. margin-right: 10px;
  275. }
  276. .padding-top {
  277. margin-bottom: 10px;
  278. }
  279. </style>