浏览代码

达人结算

yumeng 1 年之前
父节点
当前提交
69781d1487

+ 8 - 0
src/api/goodsManagement/goods.js

@@ -335,6 +335,14 @@ export function getRuleList(query) {
     })
     })
 }
 }
 
 
+export function getAllRuleList(query) {
+  return request({
+    url: '/rules/getAllRuleList',
+    method: 'get',
+    params: query
+  })
+}
+
 //新增规则
 //新增规则
 export function addRule(query) {
 export function addRule(query) {
     return request({
     return request({

+ 59 - 35
src/api/promoter/promoter.js

@@ -2,69 +2,93 @@ import request from '@/utils/request'
 
 
 // 获取达人列表
 // 获取达人列表
 export function getPromoterList(query) {
 export function getPromoterList(query) {
-    return request({
-        url: '/kuaishou/promoter/list',
-        method: 'get',
-        params: query
-    })
+  return request({
+    url: '/kuaishou/promoter/list',
+    method: 'get',
+    params: query
+  })
 }
 }
 
 
 // 获取达人公海
 // 获取达人公海
 export function getPromoterList2(query) {
 export function getPromoterList2(query) {
-    return request({
-        url: '/kuaishou/promoter/list2',
-        method: 'get',
-        params: query
-    })
+  return request({
+    url: '/kuaishou/promoter/list2',
+    method: 'get',
+    params: query
+  })
 }
 }
 
 
 // 获取达人列表
 // 获取达人列表
 export function getPromoterDetail(query) {
 export function getPromoterDetail(query) {
-    return request({
-        url: '/kuaishou/promoter/getById',
-        method: 'get',
-        params: query
-    })
+  return request({
+    url: '/kuaishou/promoter/getById',
+    method: 'get',
+    params: query
+  })
 }
 }
+
 // 更新指定达人数据
 // 更新指定达人数据
 export function getGongHaiVideoSales(query) {
 export function getGongHaiVideoSales(query) {
-    return request({
-        url: '/kuaishou/promoter/getGongHaiVideoSales',
-        method: 'get',
-        params: query
-    })
+  return request({
+    url: '/kuaishou/promoter/getGongHaiVideoSales',
+    method: 'get',
+    params: query
+  })
 }
 }
 
 
 // 新增达人
 // 新增达人
 
 
 export function addPromoter(query) {
 export function addPromoter(query) {
-    return request({
-        url: '/kuaishou/promoter/add',
-        method: 'post',
-        data: query
-    })
+  return request({
+    url: '/kuaishou/promoter/add',
+    method: 'post',
+    data: query
+  })
 }
 }
+
 // 新增政策
 // 新增政策
 export function editPromoter(query) {
 export function editPromoter(query) {
-    return request({
-        url: '/kuaishou/promoter/edit',
-        method: 'post',
-        data: query
-    })
+  return request({
+    url: '/kuaishou/promoter/edit',
+    method: 'post',
+    data: query
+  })
 }
 }
 
 
 // 删除达人
 // 删除达人
 export function deleteById(query) {
 export function deleteById(query) {
-    return request({
-        url: '/kuaishou/promoter/deleteById',
-        method: 'get',
-        params: query
-    })
+  return request({
+    url: '/kuaishou/promoter/deleteById',
+    method: 'get',
+    params: query
+  })
 }
 }
 
 
+export function addRule(query) {
+  return request({
+    url: '/kuaishou/promoter/addRule',
+    method: 'get',
+    params: query
+  })
+}
 
 
 
 
+export function getPromoterRuleList(query) {
+  return request({
+    url: '/rules/getPromoterRuleList',
+    method: 'get',
+    params: query
+  })
+}
 
 
+//查看规则详情
+export function getRuleDetailByRuleId(query) {
+  return request({
+    url: '/rules/getRuleDetailByRuleId',
+    method: 'get',
+    params: query
+  })
+}
 
 
 
 
 
 

+ 17 - 4
src/views/goodsManagement/ruleConfig.vue

@@ -60,7 +60,7 @@
       <el-table-column label="规则类型" align="center" prop="ruleType">
       <el-table-column label="规则类型" align="center" prop="ruleType">
         <template slot-scope="scope">
         <template slot-scope="scope">
           <div v-if="!!scope.row.ruleType">
           <div v-if="!!scope.row.ruleType">
-            {{ scope.row.ruleType == "1" ? "按区间结算" : "按单数结算" }}
+            {{ scope.row.ruleType  | ruleTypeName }}
           </div>
           </div>
           <div v-else>-</div>
           <div v-else>-</div>
         </template>
         </template>
@@ -159,6 +159,7 @@
           >
           >
             <el-option label="按区间结算" value="1"> </el-option>
             <el-option label="按区间结算" value="1"> </el-option>
             <el-option label="按单数结算" value="2"> </el-option>
             <el-option label="按单数结算" value="2"> </el-option>
+            <el-option label="按达人结算" value="3"> </el-option>
           </el-select>
           </el-select>
         </el-form-item>
         </el-form-item>
         <el-form-item label=" " style="width: 100%" class="entire-line">
         <el-form-item label=" " style="width: 100%" class="entire-line">
@@ -247,7 +248,7 @@
             </el-form-item>
             </el-form-item>
 
 
             <el-form-item
             <el-form-item
-              v-if="formBroadcast.ruleType == '2'"
+              v-if="formBroadcast.ruleType == '2' || formBroadcast.ruleType == '3'"
               label="结算单数"
               label="结算单数"
               style="width: 100%"
               style="width: 100%"
               class="entire-line"
               class="entire-line"
@@ -349,6 +350,7 @@ import { refreshCache } from "@/api/system/dict/type";
 import { getPromoterList, addPromoter, editPromoter } from "@/api/promoter/promoter";
 import { getPromoterList, addPromoter, editPromoter } from "@/api/promoter/promoter";
 import {
 import {
   getRuleList,
   getRuleList,
+  getAllRuleList,
   addRule,
   addRule,
   editRule,
   editRule,
   removeRule,
   removeRule,
@@ -441,7 +443,18 @@ export default {
     this.userId = this.$store.getters.userId;
     this.userId = this.$store.getters.userId;
     this.getList();
     this.getList();
   },
   },
-  filters: {},
+  filters: {
+    ruleTypeName(status) {
+      const ruleMap = {
+        1: "按区间结算",
+        2: "按单量结算",
+        3: "按达人结算",
+      };
+      return ruleMap[status];
+    },
+
+
+  },
   methods: {
   methods: {
     addOrEdit(item, index) {
     addOrEdit(item, index) {
       if (item.id) {
       if (item.id) {
@@ -514,7 +527,7 @@ export default {
     getList() {
     getList() {
       this.loading = true;
       this.loading = true;
       this.typeList = [];
       this.typeList = [];
-      getRuleList({ userId: this.userId, ...this.queryParams })
+      getAllRuleList({ userId: this.userId, ...this.queryParams })
         .then((response) => {
         .then((response) => {
           this.loading = false;
           this.loading = false;
           this.typeList = response.rows.map((item) => {
           this.typeList = response.rows.map((item) => {

+ 160 - 0
src/views/promoter/promoterList.vue

@@ -114,6 +114,45 @@
         </template>
         </template>
       </el-table-column>
       </el-table-column>
 
 
+      <el-table-column
+        label="结算规则名称"
+        align="center"
+        prop="ruleName"
+        width="150"
+      >
+        <template slot-scope="scope">
+          <div v-if="!!scope.row.ruleName">
+            <el-button size="mini" type="text" @click="lookDetail(scope.row)"
+            >{{ scope.row.ruleName }}
+            </el-button>
+            <el-button
+              size="mini"
+              type="text"
+              @click="
+                    ruleEditVisible = true;
+                    formRuleEdit = { ruleId: scope.row.ruleId };
+                    ids = scope.row.promoterId;
+                  "
+            >编辑
+            </el-button>
+          </div>
+          <div v-else>
+            <el-button
+              size="mini"
+              type="text"
+              @click="
+                    ruleEditVisible = true;
+                    formRuleEdit = { ruleId: undefined };
+                    ids = scope.row.promoterId;
+                  "
+            >绑定规则
+            </el-button>
+          </div>
+        </template>
+      </el-table-column>
+
+
+
       <el-table-column label="粉丝数" align="center" prop="fansNumber" width="100px">
       <el-table-column label="粉丝数" align="center" prop="fansNumber" width="100px">
       </el-table-column>
       </el-table-column>
 
 
@@ -484,6 +523,74 @@
         >
         >
       </div>
       </div>
     </el-dialog>
     </el-dialog>
+    <!-- 结算规则列表 -->
+    <el-dialog title="结算规则" :visible.sync="ruleVisible" width="800px">
+      <el-table :data="ruleList" style="width: 100%">
+        <el-table-column label="序号" align="center" prop="sortCount"></el-table-column>
+        <el-table-column
+          label="起始单数"
+          align="center"
+          prop="startItemCount"
+        ></el-table-column>
+        <el-table-column
+          label="结束单数"
+          align="center"
+          prop="endItemCount"
+        ></el-table-column>
+        <el-table-column
+          label="主播奖励金额"
+          align="center"
+          prop="anchorAmount"
+        ></el-table-column>
+        <el-table-column
+          label="推荐人奖励金额"
+          align="center"
+          prop="referenceAmount"
+        ></el-table-column>
+      </el-table>
+    </el-dialog>
+
+    <!-- 编辑/绑定结算规则 -->
+    <el-dialog title="编辑/绑定结算规则" :visible.sync="ruleEditVisible" width="500px">
+      <el-form
+        ref="formRuleEdit"
+        :model="formRuleEdit"
+        :rules="ruleEdit"
+        label-width="100px"
+        :inline="true"
+      >
+        <el-form-item label="结算规则" prop="ruleId">
+          <el-select
+            filterable
+            v-model="formRuleEdit.ruleId"
+            placeholder="请选择规则"
+            clearable
+            style="width: 240px"
+          >
+            <el-option
+              v-for="item in ruleInfo"
+              :key="item.value"
+              :label="item.label"
+              :value="item.value"
+            >
+            </el-option>
+          </el-select>
+        </el-form-item>
+      </el-form>
+      <div slot="footer" class="dialog-footer">
+        <el-button type="primary" @click="submitFormRuleEdit" :loading="confirmLoading"
+        >确 定
+        </el-button>
+        <el-button
+          @click="
+            confirmLoading = false;
+            ruleEditVisible = false;
+            formRuleEdit = {};
+          "
+        >取 消
+        </el-button>
+      </div>
+    </el-dialog>
   </div>
   </div>
 </template>
 </template>
 
 
@@ -494,6 +601,9 @@ import {
   addPromoter,
   addPromoter,
   editPromoter,
   editPromoter,
   deleteById,
   deleteById,
+  getPromoterRuleList,
+  getRuleDetailByRuleId,
+  addRule,
 } from "@/api/promoter/promoter";
 } from "@/api/promoter/promoter";
 import { addFollowUpRecords } from "@/api/label";
 import { addFollowUpRecords } from "@/api/label";
 import { join } from "path";
 import { join } from "path";
@@ -515,6 +625,19 @@ export default {
       callback();
       callback();
     };
     };
     return {
     return {
+      ruleInfo: [],
+      rules: {},
+      ruleEdit: {
+        ruleId: {
+          required: true,
+          message: "结算规则必选",
+          trigger: "change",
+        },
+      },
+      formRuleEdit: {},
+      ruleList: [],
+      ruleEditVisible: false,
+      ruleVisible: false,
       mediaId: "2",
       mediaId: "2",
       options: [],
       options: [],
       tagList: [],
       tagList: [],
@@ -623,6 +746,7 @@ export default {
   created() {
   created() {
     this.userId = this.$store.getters.userId;
     this.userId = this.$store.getters.userId;
     this.getList();
     this.getList();
+    this.getPromoterRuleList();
   },
   },
   filters: {
   filters: {
     mediaStatusName(status) {
     mediaStatusName(status) {
@@ -635,6 +759,42 @@ export default {
 
 
   },
   },
   methods: {
   methods: {
+
+    submitFormRuleEdit() {
+      this.$refs["formRuleEdit"].validate((valid) => {
+        if (valid) {
+          this.confirmLoading = true;
+          let params = {};
+          params.ruleId = this.formRuleEdit.ruleId;
+          params.promoterId = this.ids;
+          addRule(params).then((res) => {
+            this.confirmLoading = false;
+            this.ruleEditVisible = false;
+            this.formRuleEdit = {};
+            this.getList();
+            this.$modal.msgSuccess("修改成功");
+          });
+        }
+      });
+    },
+    getPromoterRuleList() {
+      getPromoterRuleList({userId: this.userId}).then((res) => {
+        this.ruleInfo = res.data.map((item) => {
+          return {
+            label: item.ruleName,
+            value: item.id,
+          };
+        });
+      });
+    },
+
+    lookDetail(item) {
+      getRuleDetailByRuleId({ruleId: item.ruleId}).then((res) => {
+        this.ruleVisible = true;
+        this.ruleList = res.data;
+      });
+    },
+
     toIndexDetail(item) {
     toIndexDetail(item) {
       this.$router.replace({
       this.$router.replace({
         path: "/promoter/detail",
         path: "/promoter/detail",

+ 12 - 1
src/views/system/user/index.vue

@@ -37,6 +37,17 @@
               @keyup.enter.native="handleQuery"
               @keyup.enter.native="handleQuery"
             />
             />
           </el-form-item>
           </el-form-item>
+          <el-form-item label="用户昵称" prop="nickName">
+            <el-input
+              v-model="queryParams.nickName"
+              placeholder="请输入用户昵称"
+              clearable
+              style="width: 240px"
+              @keyup.enter.native="handleQuery"
+            />
+          </el-form-item>
+
+
           <el-form-item label="手机号码" prop="phonenumber">
           <el-form-item label="手机号码" prop="phonenumber">
             <el-input
             <el-input
               v-model="queryParams.phonenumber"
               v-model="queryParams.phonenumber"
@@ -668,4 +679,4 @@ export default {
     }
     }
   }
   }
 };
 };
-</script>
+</script>