batchSetting.vue 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147
  1. <!--
  2. * @Descripttion: 批量设置分销佣金
  3. * @version: 1.0
  4. * @Author: zzx
  5. * @Date: 2025-02-08 10:18:00
  6. * @LastEditors: zzx tigerzouzx@foxmail.com
  7. * @LastEditTime:
  8. -->
  9. <template>
  10. <div class="app-container">
  11. <el-card class="operate-container" shadow="hover">
  12. <i class="el-icon-tickets"></i>
  13. <span>批量设置分销佣金</span>
  14. <back-button style="float: right; margin-right: 15px"></back-button>
  15. </el-card>
  16. <div class="table-container" style="background-color: #fff;">
  17. <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" class="demo-ruleForm">
  18. <el-form-item label="一级分销员" prop="checkedCities">
  19. <el-checkbox :indeterminate="isIndeterminate" v-model="ruleForm.checkAll"
  20. @change="handleCheckAllChange">全选</el-checkbox>
  21. <div class="check-layout">
  22. <el-checkbox-group v-model="ruleForm.checkedCities" @change="handleCheckedCitiesChange">
  23. <el-checkbox v-for="city in cities" :label="city" :key="city" name="type">{{ city
  24. }}</el-checkbox>
  25. </el-checkbox-group>
  26. </div>
  27. </el-form-item>
  28. <el-form-item label="设备所属方" prop="checkedBelonging">
  29. <el-checkbox-group v-model="ruleForm.checkedBelonging" @change="handleBelongingChange">
  30. <el-checkbox v-for="belong in belongingList" :label="belong" :key="belong" name="belonging">{{
  31. belong }}</el-checkbox>
  32. </el-checkbox-group>
  33. </el-form-item>
  34. </el-form>
  35. <div style="margin-top: 15px;">
  36. <div class="table-tips">
  37. <div>
  38. 渠道1的充电时段及费用信息
  39. </div>
  40. <div>
  41. 提示:设置成功后,勾选的分销员的渠道所有站点都将修改为下表中的代理价
  42. </div>
  43. </div>
  44. <el-table ref="adminTable" :data="dialogList" style="width: 100%" v-loading="dialogListLoading" border>
  45. <el-table-column label="时间段" align="center" prop="time"></el-table-column>
  46. <el-table-column label="电费(元/度)" align="center" prop="electrovalence"></el-table-column>
  47. <el-table-column label="结算服务费(元)" align="center" prop="servicePrice"></el-table-column>
  48. <el-table-column label="结算费合计(元)" align="center" prop="eprice"></el-table-column>
  49. <el-table-column label="运营服务费(元)" align="center" prop="addServicePrice"></el-table-column>
  50. <el-table-column label="销售合计价(元)" align="center" prop="platformPrice"></el-table-column>
  51. <el-table-column label="一级代理价(元)" align="center" prop="">
  52. <template slot-scope="scope">
  53. <el-tooltip class="item" v-if="scope.row.isEdit === false" effect="dark" content="单击编辑"
  54. placement="left">
  55. <span class="edit" @click="toggleEdit(scope.row)">{{
  56. scope.row.firstLevelPrice }}</span>
  57. </el-tooltip>
  58. <el-input v-else v-model="editInput" size="small"
  59. oninput="value=value.replace(/[^\d.]/g,'')" style="width: 200px;"
  60. @blur="saveEdit(scope.row)">
  61. <i slot="suffix" size="small" class="el-icon-check" @click="confrimEdit(scope.row)"></i>
  62. <i slot="suffix" size="small" class="el-icon-close" @click="cancelEdit(scope.row)"></i>
  63. </el-input>
  64. </template>
  65. </el-table-column>
  66. </el-table>
  67. </div>
  68. </div>
  69. <div style="margin-top: 20px" align="center">
  70. <el-button size="small" type="primary">确定</el-button>
  71. <el-button size="small">取消</el-button>
  72. </div>
  73. </div>
  74. </template>
  75. <script>
  76. const cityOptions = ['上海', '北京', '广州', '深圳'];
  77. const levelOptions = ['渠道一', '渠道二', '渠道三'];
  78. export default {
  79. data() {
  80. return {
  81. // 多选start
  82. cities: cityOptions,
  83. isIndeterminate: false,
  84. checkAll: false,
  85. // 多选end
  86. // 设备选择start
  87. belongingList: levelOptions,
  88. ruleForm: {
  89. checkedCities: [],
  90. checkedBelonging: [],
  91. },
  92. rules: {
  93. checkedCities: [
  94. { type: 'array', required: true, message: '请至少选择一个分销员', trigger: 'change' }
  95. ],
  96. checkedBelonging: [
  97. { type: 'array', required: true, message: '请至少选择一个设备所属方', trigger: 'change' }
  98. ]
  99. },
  100. // 设备选择end
  101. // 渠道商电费列表数据start
  102. dialogList: null,
  103. dialogListLoading: false,
  104. // 渠道商电费列表数据end
  105. }
  106. },
  107. created() {
  108. },
  109. computed: {
  110. },
  111. methods: {
  112. handleCheckAllChange(val) {
  113. console.log(val, '---全选框数据');
  114. this.ruleForm.checkedCities = val ? cityOptions : [];
  115. this.isIndeterminate = false;
  116. },
  117. handleCheckedCitiesChange(value) {
  118. console.log(value, '---选择框数据');
  119. let checkedCount = value.length;
  120. this.checkAll = checkedCount === this.cities.length;
  121. this.isIndeterminate = checkedCount > 0 && checkedCount < this.cities.length;
  122. },
  123. // 设备商选择
  124. handleBelongingChange(val) {
  125. console.log(val, '---设备商选择');
  126. }
  127. },
  128. }
  129. </script>
  130. <style lang="scss" scoped>
  131. .check-layout {
  132. margin-top: 15px;
  133. border: 1px solid #dcdfe6;
  134. padding-left: 10px;
  135. }
  136. .table-tips{
  137. display: flex;
  138. align-items: center;
  139. justify-content: space-between;
  140. font-size: 14px;
  141. margin-bottom: 10px;
  142. &>div:last-child{
  143. color: #f70000;
  144. }
  145. }
  146. </style>