Initial commit: 小众厨房项目代码

Co-authored-by: Cursor <cursoragent@cursor.com>
这个提交包含在:
可乐加冰
2026-09-23 17:04:10 +08:00
当前提交 f7d3d7d1bd
共有 1761 个文件被更改,包括 453668 次插入 和 0 次删除

查看文件

@@ -0,0 +1,530 @@
<link rel="stylesheet" href="__CDN__/assets/addons/shopro/libs/element/element.css">
<link rel="stylesheet" href="__CDN__/assets/addons/shopro/libs/common.css">
<style>
#agentIndex {
color: #444;
background: #fff;
padding-bottom: 30px;
font-size: 12px;
}
.shopro-reset-button {
margin-right: 20px;
}
.reject-reason-item {
width: 140px;
margin-right: 14px;
}
.shopro-edit-cancel {
color: #848089;
cursor: pointer;
}
.theme-cursor {
color: #6E3DC8;
cursor: pointer;
}
body .table-image {
border-radius: 15px;
width: 30px;
height: 30px;
overflow: hidden;
border: 1px solid #e6e6e6;
}
.shopro-refresh-button {
margin-right: 20px;
margin-bottom: 20px;
}
.shopro-screen-item-vague .shopro-screen-condition {
width: 242px;
}
.shopro-screen-item-vague .el-select {
width: 100px;
}
.agent-apply-item-tip {
font-size: 12px;
line-height: 12px;
color: #58575A;
margin-bottom: 14px;
display: flex;
justify-content: space-between;
align-items: center;
}
.agent-apply-item {
margin-bottom: 20px;
}
.agent-apply-item-identity {
width: 153px;
min-height: 42px;
background: #E6E6E6;
border-radius: 4px;
overflow: hidden;
display: flex;
align-items: center;
}
.agent-apply-item-tip-delete {
color: #F49300;
cursor: pointer;
margin-right: 14px;
}
.color-ED655F {
color: #ED655F;
}
.theme-cursor {
color: #6E3DC8;
cursor: pointer;
}
.color-999 {
color: #999;
}
.color-0ACE97 {
color: #0ACE97;
}
.popover-container .table-image-identity {
width: 100px;
height: 60px;
border-radius: 4px;
}
.unit-tip-item {
color: #626066;
font-size: 12px;
margin-left: 6px;
line-height: 18px;
}
.nice-validator .el-input__inner {
vertical-align: baseline !important;
}
[v-cloak] {
display: none
}
</style>
<script src="__CDN__/assets/addons/shopro/libs/vue.js"></script>
<script src="__CDN__/assets/addons/shopro/libs/element/element.js"></script>
<script src="__CDN__/assets/addons/shopro/libs/moment.js"></script>
<div id="agentIndex" v-cloak v-loading="isAjax">
<div class="shopro-tabs-container">
<el-tabs v-model="activeTabsName" @tab-click="tabshandleClick">
<el-tab-pane v-for="tabs in tabsList" :label="tabs.label" :name="tabs.name"></el-tab-pane>
</el-tabs>
</div>
<div class="shopro-screen-container">
<div class="shopro-button shopro-refresh-button" @click="getListData">
<i class="el-icon-refresh"></i>
</div>
<div class="display-flex shopro-screen-item shopro-screen-item-vague">
<div class="shopro-screen-condition">
<el-input placeholder="请输入内容" v-model="searchForm.form_1_value" class="input-with-select" size="small">
<el-select v-model="searchForm.form_1_key" slot="prepend" placeholder="请选择">
<el-option label="会员ID" value="user_id"></el-option>
<el-option label="会员昵称" value="nickname"></el-option>
<el-option label="手机号" value="mobile"></el-option>
</el-select>
</el-input>
</div>
</div>
<div class="display-flex shopro-screen-item">
<div class="shopro-screen-tip">分销商等级</div>
<div class="shopro-screen-condition">
<el-select v-model="searchForm.level" placeholder="请选择" size="small">
<el-option v-for="item in agentLevelList" :key="item.level"
:label="item.level!='all'?item.name+'(等级'+item.level+')':item.name" :value="item.level">
{{item.name}}
<span v-if="item.level!='all'">(等级{{item.level}})</span>
</el-option>
</el-select>
</div>
</div>
<div class="display-flex shopro-screen-item" v-if="activeTabsName!='pending'">
<div class="shopro-screen-tip">审核状态</div>
<div class="shopro-screen-condition">
<el-select v-model="searchForm.status" placeholder="请选择" size="small">
<el-option v-for="item in agentStatusOptions" :key="item.value" :label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
</div>
<!-- <div class="display-flex shopro-screen-item">
<div class="shopro-screen-tip">申请时间</div>
<div>
<el-date-picker v-model="searchForm.createtime" type="datetimerange" value-format="yyyy-MM-dd HH:mm:ss"
size="small" format="yyyy-MM-dd HH:mm:ss" range-separator="至" start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</div>
</div> -->
<div class="display-flex shopro-screen-item">
<div class="shopro-screen-tip">更新时间</div>
<div>
<el-date-picker v-model="searchForm.updatetime" type="datetimerange" value-format="yyyy-MM-dd HH:mm:ss"
size="small" format="yyyy-MM-dd HH:mm:ss" range-separator="至" start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</div>
</div>
<div class="display-flex shopro-screen-item-button">
<div class="shopro-button shopro-reset-button" @click="screenEmpty">重置</div>
<div class="shopro-button shopro-screen-button" @click="handleCurrentChange(1)">筛选</div>
</div>
</div>
<div class="shopro-table-container" v-loading="isAjaxtable">
<el-table v-if="activeTabsName=='all'" :data="listData" border stripe :cell-class-name="tableCellClassName"
:header-cell-class-name="tableCellClassName">
<el-table-column label="ID" prop="user_id" width="70">
</el-table-column>
<el-table-column label="分销商信息" width="220">
<template slot-scope="scope">
<div v-if="scope.row.user" class="display-flex">
<div class="table-image">
<el-image :src="Fast.api.cdnurl(scope.row.user.avatar)" fit="contain">
<div slot="error" class="image-slot">
<i class="el-icon-picture-outline"></i>
</div>
</el-image>
</div>
<div class="ellipsis-item">{{scope.row.user.nickname?scope.row.user.nickname:'-'}}</div>
</div>
<div v-else>-</div>
</template>
</el-table-column>
<el-table-column label="手机号" width="120">
<template slot-scope="scope">
<div v-if="scope.row.user && scope.row.user.mobile">{{scope.row.user.mobile}}</div>
<div v-else>-</div>
</template>
</el-table-column>
<el-table-column label="等级" width="160">
<template slot-scope="scope">
<div class="display-flex">
<div class="ellipsis-item">
<span>{{(scope.row.agent_level &&
scope.row.agent_level.name)?scope.row.agent_level.name:'-'}}</span>
<span>(等级{{scope.row.level}})</span>
</div>
</div>
</template>
</el-table-column>
<el-table-column label="累计佣金" min-width="100">
<template slot-scope="scope">
<div>{{scope.row.total_income}}<span class="unit-tip-item">元</span></div>
</template>
</el-table-column>
<el-table-column label="消费金额" min-width="100">
<template slot-scope="scope">
<div>{{scope.row.user?scope.row.user.total_consume:'-'}}<span class="unit-tip-item">元</span></div>
</template>
</el-table-column>
<el-table-column label="直推分销业绩" min-width="200">
<template slot-scope="scope">
<div>{{scope.row.order_money}}元/{{scope.row.order_count}}单</div>
</template>
</el-table-column>
<el-table-column label="上级分销商" min-width="140">
<template slot-scope="scope">
<div v-if="scope.row.parent_agent && scope.row.parent_agent_id!=0" class="display-flex"
@click="operation('edit',scope.row.parent_agent.id)">
<div class="table-image">
<el-image :src="Fast.api.cdnurl(scope.row.parent_agent.avatar)" fit="contain">
<div slot="error" class="image-slot">
<i class="el-icon-picture-outline"></i>
</div>
</el-image>
</div>
<div class="ellipsis-item theme-cursor">
{{scope.row.parent_agent.nickname?scope.row.parent_agent.nickname:'-'}}</div>
</div>
<div style="justify-content: center;" v-else>-</div>
</template>
</el-table-column>
<el-table-column label="一级用户人数" width="120">
<template slot-scope="scope">
<div>
<span v-if="scope.row.user">{{scope.row.user.child_user_count_1}}
<span class="unit-tip-item">人</span>
</span>
<span v-else>-</span>
</div>
</template>
</el-table-column>
<el-table-column label="一级分销商人数" width="120">
<template slot-scope="scope">
<div>{{scope.row.child_agent_count_1}}<span class="unit-tip-item">人</span></div>
</template>
</el-table-column>
<el-table-column fixed="right" label="状态" width="100">
<template slot-scope="scope">
<div class="display-flex">
<span v-if="scope.row.status=='normal'" class="display-flex">
<span class="shopro-status-dot shopro-status-normal-dot"></span>
<span class="shopro-status-normal">{{scope.row.status_text}}</span>
</span>
<span v-else-if="scope.row.status=='forbidden'" class="display-flex">
<span class="shopro-status-dot shopro-status-nonormal-dot"></span>
<span class="shopro-status-nonormal">{{scope.row.status_text}}</span>
</span>
<span v-else-if="scope.row.status=='pending'" class="display-flex">
<span class="shopro-status-dot shopro-status-default-dot"></span>
<span class="shopro-status-default">{{scope.row.status_text}}</span>
</span>
<span v-else-if="scope.row.status=='freeze'" class="display-flex">
<span class="shopro-status-dot shopro-status-special-dot"></span>
<span class="shopro-status-special">{{scope.row.status_text}}</span>
</span>
</div>
</template>
</el-table-column>
<el-table-column label="创建时间" width="150">
<template slot-scope="scope">
<div>
{{moment(scope.row.createtime*1000).format("YYYY-MM-DD HH:mm:ss")}}
</div>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" min-width="80">
<template slot-scope="scope">
<div class="theme-cursor" @click="operation('edit',scope.row.user_id)">
查看
</div>
</template>
</el-table-column>
</el-table>
<el-table v-if="activeTabsName=='pending'" :data="listData" border stripe :cell-class-name="tableCellClassName2"
:header-cell-class-name="tableCellClassName2">
<el-table-column label="ID" prop="user_id" width="70">
</el-table-column>
<el-table-column label="分销商信息" min-width="240">
<template slot-scope="scope">
<div v-if="scope.row.user" class="display-flex">
<div class="table-image">
<el-image :src="Fast.api.cdnurl(scope.row.user.avatar)" fit="contain">
<div slot="error" class="image-slot">
<i class="el-icon-picture-outline"></i>
</div>
</el-image>
</div>
<div class="ellipsis-item">{{scope.row.user.nickname?scope.row.user.nickname:'-'}}</div>
</div>
<div v-else>-</div>
</template>
</el-table-column>
<el-table-column label="资料审核" width="160">
<template slot-scope="scope">
<div class="platform-name display-flex-c">
<el-popover placement="bottom" trigger="hover">
<div class="popover-container">
<template v-if="scope.row.apply_info!=''">
<div class="display-flex"
:style="{marginBottom: (scope.row.apply_info && JSON.parse(scope.row.apply_info).length-1)>index?'14px':0}"
v-for="(item,index) in JSON.parse(scope.row.apply_info)">
<div class="display-flex">
<div class="popover-tip">{{item.name}}</div>:
</div>
<div v-if="item.type=='input' || item.type=='number'">{{item.value}}</div>
<div class="table-image table-image-identity" v-if="item.type=='image'">
<el-image :src="Fast.api.cdnurl(item.value)" fit="contain">
<div slot="error" class="image-slot">
<i class="el-icon-picture-outline"></i>
</div>
</el-image>
</div>
</div>
</template>
<div v-if="!scope.row.apply_info" style="text-align: center;">
-
</div>
</div>
<span class="ellipsis-item cursor-pointer" slot="reference">
<span class="color-ED655F" v-if="scope.row.info_status==-1">已驳回</span>
<span class="color-999" v-if="scope.row.info_status==0">未完善</span>
<span class="color-0ACE97" v-if="scope.row.info_status==1">已完善</span>
<span v-if="scope.row.info_status==null">无需资料</span>
</span>
</el-popover>
</div>
</template>
</el-table-column>
<el-table-column label="等级" min-width="160">
<template slot-scope="scope">
<div class="display-flex">
<div class="ellipsis-item">
<span>
{{(scope.row.agent_level &&
scope.row.agent_level.name)?scope.row.agent_level.name:'-'}}
</span>
<span>(等级{{scope.row.level}})</span>
</div>
</div>
</template>
</el-table-column>
<el-table-column label="上级分销商" min-width="140">
<template slot-scope="scope">
<div v-if="scope.row.parent_agent && scope.row.parent_agent_id!=0" class="display-flex"
@click="operation('edit',scope.row.parent_agent.id)">
<div class="table-image">
<el-image :src="Fast.api.cdnurl(scope.row.parent_agent.avatar)" fit="contain">
<div slot="error" class="image-slot">
<i class="el-icon-picture-outline"></i>
</div>
</el-image>
</div>
<div class="ellipsis-item theme-cursor">
{{scope.row.parent_agent.nickname?scope.row.parent_agent.nickname:'-'}}
</div>
</div>
<div style="justify-content: center;" v-else>-</div>
</template>
</el-table-column>
<el-table-column label="消费金额" width="140">
<template slot-scope="scope">
<div>{{scope.row.user?scope.row.user.total_consume:'-'}}<span class="unit-tip-item">元</span></div>
</template>
</el-table-column>
<el-table-column label="推广人数" width="140">
<template slot-scope="scope">
<div>
<span v-if="scope.row.user">{{scope.row.user.child_user_count_1}}</span>
<span v-if="!scope.row.user">-</span>
<span class="unit-tip-item">人</span>
</div>
</template>
</el-table-column>
<el-table-column label="提交次数" width="100">
<template slot-scope="scope">
<div>{{scope.row.apply_num}}<span class="unit-tip-item">次</span>
</div>
</template>
</el-table-column>
<el-table-column label="更新时间" width="150">
<template slot-scope="scope">
<div>
{{moment(scope.row.updatetime*1000).format("YYYY-MM-DD HH:mm:ss")}}
</div>
</template>
</el-table-column>
<el-table-column label="创建时间" width="150">
<template slot-scope="scope">
<div>
{{moment(scope.row.createtime*1000).format("YYYY-MM-DD HH:mm:ss")}}
</div>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" min-width="220">
<template slot-scope="scope">
<div>
<span class="theme-cursor" style="margin-right: 14px;"
@click="operation('edit',scope.row.user_id)">
查看
</span>
<span style="margin-right: 14px;cursor: pointer;color:#687FF4"
v-if="scope.row.info_status==0 || scope.row.info_status==-1"
@click="operation('edit',scope.row.user_id)">辅助填写</span>
<span class="shopro-edit-text" v-if="scope.row.info_status==0 || scope.row.info_status==1"
@click="operation('agree',scope.row.user_id,scope.row)">同意</span>
<span class="shopro-edit-text" v-if="scope.row.info_status==null"
@click="operation('agree-null-status',scope.row.user_id)">同意</span>
<span class="agent-apply-item-tip-delete" v-if="scope.row.info_status==1"
@click="operation('reject',scope.row.user_id)">驳回</span>
<span class="shopro-delete-text" slot="reference" v-if="scope.row.info_status==1"
@click="operation('del',scope.row.user_id)">删除</span>
</div>
</template>
</el-table-column>
</el-table>
<el-table v-if="activeTabsName=='1'" :data="listData" border stripe :cell-class-name="tableCellClassName3"
:header-cell-class-name="tableCellClassName3">
<el-table-column label="ID" prop="user_id" width="70">
</el-table-column>
<el-table-column label="分销商名称" min-width="240">
<template slot-scope="scope">
<div v-if="scope.row.user" class="display-flex">
<div class="table-image">
<el-image :src="Fast.api.cdnurl(scope.row.user.avatar)" fit="contain">
<div slot="error" class="image-slot">
<i class="el-icon-picture-outline"></i>
</div>
</el-image>
</div>
<div class="ellipsis-item">{{scope.row.user.nickname?scope.row.user.nickname:'-'}}</div>
</div>
<div v-else>-</div>
</template>
</el-table-column>
<el-table-column label="当前等级" min-width="160">
<template slot-scope="scope">
<div class="display-flex">
<div class="ellipsis-item">
<span>{{(scope.row.agent_level &&
scope.row.agent_level.name)?scope.row.agent_level.name:'-'}}</span>
<span>(等级{{scope.row.level}})</span>
</div>
</div>
</template>
</el-table-column>
<el-table-column label="升级之后的等级" min-width="160">
<template slot-scope="scope">
<div>{{scope.row.level_status_text?scope.row.level_status_text:'-'}}(等级{{scope.row.level_status}})
</div>
</template>
</el-table-column>
<el-table-column label="创建时间" width="160">
<template slot-scope="scope">
<div>
{{moment(scope.row.createtime*1000).format("YYYY-MM-DD HH:mm:ss")}}
</div>
</template>
</el-table-column>
<el-table-column label="消费金额(元)" min-width="140">
<template slot-scope="scope">
<div>{{scope.row.user?scope.row.user.total_consume:'-'}}<span class="unit-tip-item">元</span></div>
</template>
</el-table-column>
<el-table-column label="推广人数" width="140">
<template slot-scope="scope">
<div>
<span v-if="scope.row.user">
{{scope.row.user.child_user_count_1}}<span class="unit-tip-item">人</span>
</span>
<span v-else="scope.row.user">-</span>
</div>
</template>
</el-table-column>
<el-table-column fixed="right" label="操作" min-width="190">
<template slot-scope="scope">
<div>
<span class="shopro-edit-text color-0ACE97" v-if="scope.row.level_status_text"
@click="operation('update-agree',scope.row.user_id,scope.row.level_status)">同意</span>
<span style="margin-right: 12px;" v-if="!scope.row.level_status_text">未找到等级</span>
<span class="shopro-delete-text" v-if="scope.row.level_status!=0"
@click="operation('update-refuse',scope.row.user_id,0)">{{scope.row.level_status_text?'拒绝':'删除'}}</span>
<span class="shopro-edit-text" @click="operation('edit',scope.row.user_id)">查看</span>
</div>
</template>
</el-table-column>
</el-table>
</div>
<div class="shopro-pagination-container">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="currentPage"
:page-sizes="[10, 20, 30, 40]" :page-size="limit" layout="total, sizes, prev, pager, next, jumper"
:total="totalPage">
</el-pagination>
</div>
</div>

文件差异内容过多而无法显示 加载差异

查看文件

@@ -0,0 +1,281 @@
<link rel="stylesheet" href="__CDN__/assets/addons/shopro/libs/element/element.css">
<link rel="stylesheet" href="__CDN__/assets/addons/shopro/libs/common.css">
<style>
#agentTeam {
color: #58575A;
font-size: 12px;
padding: 10px;
font-family: Noto Sans SC;
font-weight: 400;
}
.theme-cursor {
color: #6E3DC8;
cursor: pointer;
}
.crumbs-item-container {
margin: 0 0px 20px;
width: auto;
overflow-x: auto;
}
.crumbs-item-1 {
color: #626066;
cursor: pointer;
}
.crumbs-item-1:hover,
.crumbs-item-id:hover {
color: #6E3DC8;
}
.crumbs-item {
color: #9E9E9E;
}
.crumbs-item-id {
cursor: pointer;
}
.crumbs-item i {
margin: 0 10px;
}
.shopro-screen-container .shopro-screen-condition {
width: 160px;
}
.shopro-screen-container .shopro-screen-condition-1 {
width: 240px;
}
.shopro-screen-container .shopro-screen-item {
margin-right: 14px;
}
.agent-dashboard {
margin-bottom: 20px;
}
.agent-dashboard-contanmer {
padding: 14px 14px 0;
box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.1);
border-radius: 4px;
margin-bottom: 10px;
}
.agent-dashboard-contanmer-nodata {
padding-bottom: 14px;
}
.agent-dashboard-item {
display: flex;
align-items: center;
margin-bottom: 14px;
}
.agent-dashboard-item-tip {
margin-right: 6px;
}
.shopro-screen-container,
.shopro-table-container{
padding: 0;
}
.shopro-pagination-container {
padding: 30px 0 10px;
}
.table-dashboard-item-dot {
width: 8px;
height: 8px;
background: #8644F2;
border-radius: 50%;
margin-right: 10px;
display: inline-block;
}
.dot-2 {
background: #E6A93C;
}
.dot-3 {
background: #687FF4;
}
.dot-4 {
background: #F08972;
}
.dot-5 {
background: #EC5B55;
}
.el-cascader-node.in-active-path,
.el-cascader-node.is-active,
.el-cascader-node.is-selectable.in-checked-path {
color: #8644F2;
font-weight: 700;
}
.unit-tip-item{
color: #626066;
font-size: 12px;
margin-left: 6px;
line-height: 18px;
}
.shopro-container-scrollbar::-webkit-scrollbar{
height: 6px;
}
.el-popover-container{
width: 170px;
height: 200px;
overflow: auto;
}
.el-checkbox-group{
display: flex;
flex-direction: column;
}
.el-icon-container{
font-size: 16px;
color: #626662;
}
.flex-between{
justify-content: space-between;
}
.shopro-screen-item{
margin-bottom: 20px;
}
.filter-color-normal {
color: #444;
}
.filter-color-forbidden{
color: #ED655F;
}
.filter-color-pending{
color: #999;
}
.filter-color-freeze{
color: #687FF4;
}
.nice-validator .el-input__inner{
vertical-align: baseline !important;
}
[v-cloak] {
display: none
}
</style>
<script src="__CDN__/assets/addons/shopro/libs/vue.js"></script>
<script src="__CDN__/assets/addons/shopro/libs/element/element.js"></script>
<script src="__CDN__/assets/addons/shopro/libs/moment.js"></script>
<div id="agentTeam" v-cloak>
<div class="crumbs-item-container shopro-container-scrollbar">
<span class="crumbs-item-1" @click="operation('clickteamdelete')" v-if="parent_user[0]">{{blockSearchId}}</span>
<span class="crumbs-item" v-for="(titem,tindex) in tableIdArr">
<i class="el-icon-arrow-right"></i>
<span class="crumbs-item-id" v-if="tindex<tableIdArr.length-1"
@click="operation('clickteamdelete',titem)">{{titem}}</span>
<span v-if="tindex==tableIdArr.length-1">{{titem}}</span>
</span>
</div>
<div class="display-flex flex-between">
<div class="shopro-screen-container">
<div class="display-flex shopro-screen-item">
<div class="shopro-screen-condition shopro-screen-condition-1">
<el-input placeholder="请输入内容" v-model="searchForm.form_1_value" class="input-with-select" size="small"
@input="debounceFilter">
<el-select v-model="searchForm.form_1_key" slot="prepend" placeholder="请选择">
<el-option label="会员ID" value="id"></el-option>
<el-option label="会员昵称" value="nickname"></el-option>
<el-option label="会员手机号" value="mobile"></el-option>
</el-select>
</el-input>
</div>
</div>
<div class="display-flex shopro-screen-item">
<div class="shopro-screen-tip">分销商等级</div>
<div class="shopro-screen-condition">
<el-select v-model="searchForm.level" placeholder="请选择" size="small" @change="debounceFilter">
<el-option v-for="item in agentLevelList" :key="item.level" :label="item.name+'(等级'+item.level+')'"
:value="item.level">
{{item.name}}(等级{{item.level}})
</el-option>
</el-select>
</div>
</div>
</div>
<div class="display-flex shopro-screen-item">
<el-popover
placement="bottom"
width="170"
trigger="click">
<div class="el-popover-container shopro-container-scrollbar">
<el-checkbox-group v-model="dashboardIdList">
<el-checkbox :label="item.value" v-for="item in dashboardList">{{item.label}}</el-checkbox>
</el-checkbox-group>
</div>
<span slot="reference" class="el-icon-container">
<i class="el-icon-s-grid"></i>
<i class="el-icon-caret-bottom"></i>
</span>
</el-popover>
</div>
</div>
<div v-loading="teamAjax">
<div style="margin-bottom: 14px;">
<el-table :data="parent_user" border>
<template v-for="(item, index) in columns">
<el-table-column :key="index" :fixed="item.fixed" :prop="item.field"
:align="item.align ? item.align : 'center'" :min-width="item.width" v-if="dashboardIdList.includes(item.field)">
<template slot="header" slot-scope="scope">
<div>
{{item.field=='avatar-nickname'?'当前用户':item.title}}
</div>
</template>
<template slot-scope="scope">
<template>
<div class="display-flex" v-if="item.type=='vhtml'" v-html="item.formatter(scope.row,item.outterfield,item.field)">
</div>
<div class="display-flex" v-if="item.type=='click'" v-html="item.formatter(scope.row,item.outterfield,item.field)"></div>
<div v-if="item.type=='vmodel'">{{scope.row[item.field]}}</div>
</template>
</template>
</el-table-column>
</template>
</el-table>
</div>
<div class="shopro-table-container">
<el-table :data="teamList" border>
<template v-for="(item, index) in columns">
<el-table-column :key="index" :fixed="item.fixed" :prop="item.field"
:align="item.align ? item.align : 'center'" :min-width="item.width" v-if="dashboardIdList.includes(item.field)">
<template slot="header" slot-scope="scope">
<div>
{{item.title}}
</div>
</template>
<template slot-scope="scope">
<template>
<div class="display-flex" v-if="item.type=='vhtml'" v-html="item.formatter(scope.row,item.outterfield,item.field)">
</div>
<div class="display-flex" style="cursor: pointer;color:#8644F2;" v-if="item.type=='click'" v-html="item.formatter(scope.row,item.outterfield,item.field)"
@click="operation('clickteam',scope.row.id)"></div>
<div v-if="item.type=='vmodel'">{{scope.row[item.field]}}</div>
</template>
</template>
</el-table-column>
</template>
</el-table>
</div>
</div>
<div class="shopro-pagination-container">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange" pager-count="5"
:current-page="currentPage" :page-size="limit" :page-sizes="[10, 20, 30, 40]" layout="total, sizes, prev, pager, next, jumper"
:total="totalPage">
</el-pagination>
</div>
</div>

查看文件

@@ -0,0 +1,645 @@
<link rel="stylesheet" href="__CDN__/assets/addons/shopro/libs/element/element.css">
<link rel="stylesheet" href="__CDN__/assets/addons/shopro/libs/common.css">
<style>
#indexPage {
border-radius: 10px 10px 0px 0px;
color: #444;
font-weight: 500;
position: relative;
}
.el-form-item {
padding: 0 0 0 100px;
}
.el-form-item {
margin-bottom: 16px;
}
.become-register-row {
display: flex;
font-size: 13px;
}
.become-register-row-title {
background: #f9f9f9;
border: none;
}
.become-register-row-item {
width: 260px;
min-width: 260px;
padding: 0 20px;
line-height: 44px;
}
.become-register-row-item-center {
width: 240px;
min-width: 240px;
}
.become-register-row-title .become-register-row-item {
line-height: 40px;
}
.become-register-row-item-last {
width: 130px;
min-width: 130px;
display: flex;
align-items: center;
}
.become_register-contaoner {
display: flex;
}
.become_register_add-button {
cursor: pointer;
color: #7438D5;
width: 60px;
margin-top: 16px;
font-size: 13px;
}
.become_register_add-button i {
margin-right: 6px;
}
.become_register_delete {
color: #FF5959;
cursor: pointer;
}
.become-register-row-frist {
width: 90px;
color: rgba(0, 0, 0, 0);
}
#draggableHandle {
cursor: move;
margin-left: 18px;
font-size: 16px;
}
.seat-item {
display: none;
padding: 0 20px;
color: #7438D5;
height: 44px;
line-height: 44px;
}
.sortable-ghost .seat-item {
display: block;
}
.sortable-ghost .become_register-contaoner {
display: none;
}
.apply_protocol-select {
color: #7438D5;
cursor: pointer;
margin-left: 20px;
}
.shopro-submit-container {
display: flex;
justify-content: flex-end;
align-items: center;
width: calc(100% - 30px);
height: 60px;
padding: 0 16px;
position: fixed;
bottom: 0px;
right: 16px;
background: #fff;
}
.shopro-submit-button {
width: 88px;
height: 36px;
line-height: 36px;
text-align: center;
background: #7438D5;
color: #fff;
cursor: pointer;
border-radius: 5px;
}
.shopro-default-button {
width: 88px;
height: 36px;
line-height: 36px;
text-align: center;
cursor: pointer;
border-radius: 5px;
color: #7438D5;
}
.title-tip {
color: #999;
line-height: 13px;
font-size: 13px;
font-weight: 400;
margin-top: 14px;
}
.bgimage-add-container {
border: 1px solid #e6e6e6;
width: 80px;
height: 80px;
border-radius: 5px;
}
.bgimage-add {
width: 80px;
height: 80px;
display: flex;
justify-content: center;
align-items: center;
font-size: 30px;
color: #999;
}
.goods-add {
width: 80px;
height: 30px;
border-radius: 4px;
font-size: 13px;
cursor: pointer;
background: #7438D5;
color: #fff;
display: flex;
justify-content: center;
align-items: center;
}
.el-form-item__label,
.el-radio__label,
.el-input,
.el-select-dropdown__item {
font-size: 13px;
}
.form-group-area {
padding-bottom: 10px;
background: #f00;
background: #FFFFFF;
border-radius: 4px;
margin-bottom: 10px;
}
.shopro-goods-header {
height: 40px;
display: flex;
align-items: center;
background: #f9f9f9;
}
.shopro-goods-body {
height: 50px;
display: flex;
align-items: center;
border-top: 1px solid #e6e6e6;
}
.shopro-goods-title {
width: 280px;
min-width: 280px;
display: flex;
height: 50px;
align-items: center;
padding: 0 20px;
}
.shopro-goods-stock {
width: 120px;
min-width: 120px;
}
.shopro-goods-opt {
width: 160px;
min-width: 160px;
}
.shopro-goods-image {
width: 36px;
height: 36px;
border: 1px solid #E6E6E6;
box-sizing: border-box;
border-radius: 2px;
margin-right: 12px
}
.shopro-goods-add-button {
cursor: pointer;
color: #7438D5;
font-size: 13px;
height: 50px;
line-height: 50px;
padding: 0 20px;
}
.shopro-goods-add-button i {
margin-right: 6px;
}
.shopro-form-group-title-href,.shopro-form-group-title-href:hover,.shopro-form-group-title-href:focus{
color: #7438D5;
}
.shopro-form-group-title-agreement{
height: 38px;
line-height: 38px;
background: #F1EBFA;
font-size: 12px;
color: #444;
padding: 0 20px;
margin:0 20px 20px 32px;
width: auto;
display: flex;
align-items: center;
justify-content: space-between;
border-radius: 4px;
}
.shopro-form-group-title-agreement i{
color: #7438D5;
}
.shopro-form-group-title-1{
margin-bottom: 10px;
}
.shopro-goods-id{
width: 70px;
padding: 0 10px;
text-align: center;
flex-shrink: 0;
}
.form-group-area-last{
padding-bottom: 20px;
}
.become-register-row-item-esp{
line-height: 32px;
display: flex;
align-items: center;
}
.el-dialog{
width: 900px;
}
.el-dialog__wrapper{
background: rgba(43, 43, 43, 0.05);
backdrop-filter: blur(2px);
}
.configis-upgrade-image{
width: 900px;
height: 580px;
background: #FFFFFF;
border-radius: 4px;
position: relative;
}
.configis-upgrade-image img{
width: 100%;
height: 100%;
}
.el-dialog__body{
padding: 0;
}
.el-dialog__header{
height: 0;
padding: 0;
}
.configis-upgrade-button{
position: absolute;
bottom: 162px;
right: 360px;
}
.configis-upgrade-button-upgrade{
width: 110px;
height: 34px;
background: #8322FF;
border-radius: 2px;
justify-content: center;
font-weight: bold;
font-size: 12px;
color: #FFFFFF;
margin-left: 42px;
cursor: pointer;
}
.configis-upgrade-button-upgrade .icon-right{
margin-left: 12px;
width: 18px;
height: 18px;
}
.configis-upgrade-button-refresh{
color: #86818E;
font-size: 12px;
cursor: pointer;
}
.configis-upgrade-button-refresh .el-icon-refresh-right{
margin-right: 6px;
font-size: 14px;
}
.configis-upgrade-close{
position: absolute;
top: 53px;
right: 58px;
font-size: 20px;
color: #7F7A87;
cursor: pointer;
}
[v-cloak] {
display: none
}
</style>
<script src="__CDN__/assets/addons/shopro/libs/vue.js"></script>
<script src="__CDN__/assets/addons/shopro/libs/element/element.js"></script>
<script src="__CDN__/assets/addons/shopro/libs/shopro.js"></script>
<script src="__CDN__/assets/addons/shopro/libs/Sortable.min.js"></script>
<script src="__CDN__/assets/addons/shopro/libs/vuedraggable.js"></script>
<div id="indexPage" v-cloak v-loading="isAjax">
<el-form :model="configData" ref="configData" label-width="148px" v-if="configData">
<div class="form-group-area">
<div class="shopro-form-group-title shopro-form-group-title-1">
<div class="shopro-form-group-title-line"></div>基础设置
</div>
<div class="shopro-form-group-title-agreement" v-if="tipshow">
<div>
设置分销时,请先了解<a class="shopro-form-group-title-href" href="https://www.spp.gov.cn/flfg/gfwj/201311/t20131122_64638.shtml" target="_blank" rel="noopener noreferrer">《关于办理组织领导传销活动刑事案件适用法律若干问题的意见》</a>
</div>
<i class="el-icon-close" @click="tipClose"></i>
</div>
<el-form-item label="分销层级:">
<el-radio-group v-model="configData.commission_level">
<el-radio label="0">关闭</el-radio>
<el-radio label="1">一级</el-radio>
<el-radio label="2">二级</el-radio>
<el-radio label="3">三级</el-radio>
</el-radio-group>
<div class="title-tip">
默认佣金比例请到 分销等级 进行设置
</div>
</el-form-item>
<el-form-item label="分销内购:">
<el-radio-group v-model="configData.self_buy">
<el-radio label="0">关闭</el-radio>
<el-radio label="1">开启</el-radio>
</el-radio-group>
<div class="title-tip">
内购优惠开启后,分销商自己购买时,下单可以给自己返佣
</div>
</el-form-item>
<el-form-item label="分销商锁定下线条件:">
<el-radio-group v-model="configData.invite_lock">
<el-radio label="share">点击分享链接</el-radio>
<el-radio label="pay">首次支付</el-radio>
<el-radio label="agent" :disabled="configData.become_agent.type=='child_user_count_1'">成为子分销商</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="分销商审核:">
<el-radio-group v-model="configData.agent_check">
<el-radio label="0">不需要</el-radio>
<el-radio label="1">需要</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="越级升级:">
<el-radio-group v-model="configData.upgrade_jump">
<el-radio label="0">不允许</el-radio>
<el-radio label="1">允许</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="升级审核:">
<el-radio-group v-model="configData.upgrade_check">
<el-radio label="0">不需要</el-radio>
<el-radio label="1">需要</el-radio>
</el-radio-group>
</el-form-item>
<!-- <el-form-item label="升级进度:">
<el-radio-group v-model="configData.upgrade_display">
<el-radio label="0">不显示</el-radio>
<el-radio label="1">显示</el-radio>
</el-radio-group>
</el-form-item> -->
</div>
<div class="form-group-area">
<div class="shopro-form-group-title">
<div class="shopro-form-group-title-line"></div>默认分销商设置
</div>
<el-form-item label="成为分销商条件:">
<el-radio-group v-model="configData.become_agent.type" @change="changeBecomeAgentType">
<el-radio label="apply">自助申请</el-radio>
<el-radio label="goods">购买任意商品</el-radio>
<el-radio label="consume">消费累计</el-radio>
<!-- <el-radio label="child_user_count_1" :disabled="configData.invite_lock=='agent'">邀请下级用户</el-radio> -->
</el-radio-group>
</el-form-item>
<el-collapse-transition>
<div v-if="configData.become_agent.type!='apply'">
<el-form-item label="选择商品:" v-if="configData.become_agent.type=='goods'">
<div class="display-flex">
<div class="goods-add" style="margin: 5px 0;" @click="addGoods">{{configData.become_agent.value?'重新选择':'选择商品'}}
</div>
<!-- <div style="margin-left: 20px;">{{configData.become_agent.value}}</div> -->
</div>
<div style="max-width: 632px;border: 1px solid #e6e6e6;margin-top: 9px;" v-if="configData.become_agent.value">
<div class="shopro-goods-header">
<div class="shopro-goods-id">ID</div>
<div class="shopro-goods-title">商品信息</div>
<div class="shopro-goods-stock">库存</div>
<div class="shopro-goods-opt">操作</div>
</div>
<div>
<div class="shopro-goods-body" v-if="goods" v-for="(goods,gindex) in goodsDetail">
<div class="shopro-goods-id">
{{goods.id}}
</div>
<div class="shopro-goods-title">
<div class="shopro-goods-image">
<el-image v-if="goods.image" :src="Fast.api.cdnurl(goods.image)"
fit="contain">
<div slot="error" class="image-slot">
<i class="el-icon-picture-outline"></i>
</div>
</el-image>
</div>
<div>
<div class="ellipsis-item" style="width: 180px;height: 20px;line-height: 20px;">{{goods.title}}</div>
<div style="height: 20px;line-height: 20px;">¥{{goods.price}}</div>
</div>
</div>
<div class="shopro-goods-stock">
{{goods.stock}}
</div>
<div class="shopro-goods-opt">
<span class="become_register_delete" @click="deleteGoods(gindex)">删除</span>
</div>
</div>
<div style="padding: 0 20px;" v-if="!goodsDetail">
商品不存在或已下架
</div>
</div>
<!-- <div class="shopro-goods-body" v-if="!configData.become_agent.value">
<div class="shopro-goods-add-button" @click="addGoods">
<i class="el-icon-plus"></i>选择商品
</div>
</div> -->
</div>
</el-form-item>
<el-form-item label="消费累计金额:" v-if="configData.become_agent.type=='consume'">
<div class="display-flex" style="width: 320px;height: 40px;">
<el-input v-model="configData.become_agent.value" size="small" type="number" v-enter-number>
<template slot="append">元</template>
</el-input>
</div>
</el-form-item>
<el-form-item label="邀请下级用户满:" v-if="configData.become_agent.type=='child_user_count_1'">
<div class="display-flex" style="width: 320px;height: 40px;">
<el-input v-model="configData.become_agent.value" size="small" type="number">
<template slot="append">人</template>
</el-input>
</div>
</el-form-item>
</div>
</el-collapse-transition>
<el-form-item label="完善资料:">
<el-radio-group v-model="needAgentForm" @change="changeAgentForm">
<el-radio label="0" :disabled="configData.become_agent.type=='apply'">不需要</el-radio>
<el-radio label="1">需要</el-radio>
</el-radio-group>
<div class="title-tip">
成为分销商条件如果选择自助申请,完善资料必须选择需要
</div>
</el-form-item>
<el-collapse-transition>
<div v-if="needAgentForm == 1">
<el-form-item label="表单背景图:">
<div class="bgimage-add-container" @click="bgimageAdd">
<el-image v-if="configData.agent_form.background_image"
:src="Fast.api.cdnurl(configData.agent_form.background_image)" fit="contain">
<div slot="error" class="image-slot">
<i class="el-icon-picture-outline"></i>
</div>
</el-image>
<div class="bgimage-add" v-if="!configData.agent_form.background_image">
<i class="el-icon-plus"></i>
</div>
</div>
</el-form-item>
<el-form-item label="表单内容:">
<div style="max-width: 632px;">
<div style="border: 1px solid #e6e6e6;">
<div class="become-register-row become-register-row-title">
<div class="become-register-row-item">表单类型</div>
<div class="become-register-row-item become-register-row-item-center">表单名称</div>
<div class="become-register-row-item become-register-row-item-last">操作</div>
</div>
<draggable :list="configData.agent_form.content" v-bind="$attrs"
:options="defaultOption"
:style="{borderTop: configData.agent_form.content && configData.agent_form.content.length>0?'1px solid #e6e6e6':''}">
<div class="become-register-row"
v-for="(item,rindex) in configData.agent_form.content">
<div class="seat-item">
可放在此处
</div>
<div class="become_register-contaoner">
<div class="become-register-row-item become-register-row-item-esp">
<el-select v-model="item.type" size="small">
<el-option v-for="item in become_register_options" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</div>
<div class="become-register-row-item become-register-row-item-center become-register-row-item-esp">
<el-input v-model="item.name" size="small"></el-input>
</div>
<div class="become-register-row-item become-register-row-item-last">
<span class="become_register_delete"
@click="becomeRegisterDelete(rindex)">删除</span>
<i id="draggableHandle" class="el-icon-rank"></i>
<!-- <img
src="/assets/addons/shopro/img/commission/move.png"> -->
</div>
</div>
</div>
</draggable>
</div>
<div>
<div class="become_register_add-button" @click="becomeRegisterAdd">
<i class="el-icon-plus"></i>追加
</div>
</div>
</div>
</el-form-item>
<el-form-item label="申请协议:">
<el-radio-group v-model="needApplyProtocol" @change="changeApplyProtocol">
<el-radio label="0">不显示</el-radio>
<el-radio label="1">显示</el-radio>
</el-radio-group>
</el-form-item>
<el-collapse-transition>
<div v-if="needApplyProtocol == 1">
<el-form-item label="协议内容:">
<div class="display-flex">
<div style="width: 150px;line-height: 32px;">
<el-input v-model="configData.apply_protocol.name" size="small"></el-input>
</div>
<div class="apply_protocol-select" @click="chooseRichText">选择</div>
</div>
</el-form-item>
</div>
</el-collapse-transition>
</div>
</el-collapse-transition>
</div>
<div class="form-group-area form-group-area-last">
<div class="shopro-form-group-title">
<div class="shopro-form-group-title-line"></div>结算条件
</div>
<el-form-item label="商品结算方式:">
<el-radio-group v-model="configData.commission_price_type">
<el-radio label="goods_price">商品价</el-radio>
<el-radio label="pay_price">实际支付价</el-radio>
</el-radio-group>
<div class="title-tip">
商品价: 商品实际售价/规格价,实际支付价: 实际支付的费用(不含运费)
</div>
</el-form-item>
<el-form-item label="佣金结算方式:">
<el-radio-group v-model="configData.commission_event">
<el-radio label="payed">支付后结算</el-radio>
<el-radio label="confirm">确认收货结算</el-radio>
<el-radio label="finish">订单完成结算</el-radio>
<el-radio label="admin">手动打款</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="退款扣除佣金:">
<el-radio-group v-model="configData.refund_commission_reward">
<el-radio label="0">不扣除</el-radio>
<el-radio label="1">扣除</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="退款扣除分销业绩:">
<el-radio-group v-model="configData.refund_commission_order">
<el-radio label="0">不扣除</el-radio>
<el-radio label="1">扣除</el-radio>
</el-radio-group>
</el-form-item>
</div>
</el-form>
<div class="shopro-submit-container">
<div class="shopro-default-button" @click="formRestore">重置</div>
<div class="shopro-submit-button" @click="formSubmit">保存</div>
</div>
<el-dialog
:visible.sync="configis_upgrade">
<div class="configis-upgrade-image">
<img src="/assets/addons/shopro/img/commission/upgrade-config.png">
<div class="configis-upgrade-close" @click="operation('close')"><i class="el-icon-error"></i></div>
<div class="configis-upgrade-button display-flex">
<div class="configis-upgrade-button-refresh" @click="operation('refresh')"><i class="el-icon-refresh-right"></i>刷新</div>
<div class="configis-upgrade-button-upgrade display-flex" @click="operation('upgrade')">去升级
<img class="icon-right" src="/assets/addons/shopro/img/commission/icon-right.png">
</div>
</div>
</div>
</el-dialog>
</div>

查看文件

@@ -0,0 +1 @@
请升级

查看文件

@@ -0,0 +1,583 @@
<link rel="stylesheet" href="__CDN__/assets/addons/shopro/libs/element/element.css">
<link rel="stylesheet" href="__CDN__/assets/addons/shopro/libs/common.css">
<style>
#detailPage {
border-radius: 10px;
color: #444;
font-weight: 500;
padding: 0px 10px 60px;
position: relative;
}
.el-image {
width: 100%;
height: 100%;
}
.image-slot {
display: flex;
justify-content: center;
align-items: center;
height: 100%;
}
.goods-image {
width: 60px;
height: 60px;
border-radius: 4px;
border: 1px solid #e6e6e6;
margin-right: 14px;
}
.shopro-submit-container {
display: flex;
justify-content: flex-end;
position: fixed;
right: 40px;
bottom: 10px;
/* width: 100%; */
height: 40px;
}
.shopro-submit-button {
width: 88px;
height: 36px;
line-height: 36px;
text-align: center;
background: #7438D5;
font-size: 14px;
color: #fff;
cursor: pointer;
border-radius: 5px;
}
.sku-price-rate {
margin-right: 10px;
}
.sku-price-rate,
.sku-price-money {
width: 80px;
display: flex;
align-items: center;
justify-content: center;
height: 50px;
}
.commission-body-container {
line-height: 50px;
display: flex;
border-left: 1px solid #e6e6e6;
}
.commission-header-container {
line-height: 40px;
border-left: 1px solid #e6e6e6;
}
.commission-header-container .commission-store-name,
.commission-header-container .commission-item,
.commission-header-container .commission-sku,
.commission-header-container .commission-price {
border-top: 1px solid #e6e6e6;
background: #f9f9f9;
}
.commission-store-name {
width: 120px;
min-width: 120px;
padding: 0 10px;
text-align: center;
border-right: 1px solid #e6e6e6;
border-bottom: 1px solid #e6e6e6;
}
.commission-item {
width: 190px;
min-width: 190px;
padding: 0 10px;
display: flex;
justify-content: center;
border-right: 1px solid #e6e6e6;
border-bottom: 1px solid #e6e6e6;
}
.commission-sku,.commission-price {
width: 180px;
min-width: 180px;
padding: 0 20px;
border-bottom: 1px solid #e6e6e6;
border-right: 1px solid #e6e6e6;
text-align: center;
}
.commission-price {
width: 100px;
min-width: 100px;
padding: 0 20px;
}
.commission-item-batch {
cursor: pointer;
}
.el-button--text,
.el-button--text:hover,
.el-button--text:focus {
color: #999;
}
.batch-setting-container {
line-height: 50px;
display: flex;
flex-direction: column;
border-left: 1px solid #e6e6e6;
}
.alone-setting-container {
line-height: 50px;
display: flex;
border-left: 1px solid #e6e6e6;
}
.commission-order-status-icon{
font-size: 20px;
color: #7C7C7C;
margin-left: 16px;
}
.el-popover--plain{
padding: 12px;
color: #444;
}
.batch-edit-icon{
margin-left:10px;margin-top: -3px;
}
.batch-question-icon{
margin-left: 10px;font-size: 14px;
}
[v-cloak] {
display: none
}
</style>
<script src="__CDN__/assets/addons/shopro/libs/vue.js"></script>
<script src="__CDN__/assets/addons/shopro/libs/element/element.js"></script>
<script src="__CDN__/assets/addons/shopro/libs/shopro.js"></script>
<div id="detailPage" v-cloak>
<el-form label-width="124px">
<div v-if="isalone==0">
<div class="shopro-form-group-title">
商品信息
</div>
<div style="padding: 0 40px;">
<div class="display-flex" style="margin-bottom:10px">
<div class="goods-image" v-if="goodsDetail.image">
<el-image :src="Fast.api.cdnurl(goodsDetail.image)" fit="container">
<div slot="error" class="image-slot">
<i class="el-icon-picture-outline"></i>
</div>
</el-image>
</div>
<div class="goods-title">
{{goodsDetail.title}}
</div>
</div>
</div>
</div>
<div>
<div class="shopro-form-group-title">
<div class="shopro-form-group-title-line"></div>佣金设置
</div>
<el-form-item label="是否参与:">
<div>
<el-radio-group v-model="status">
<el-radio :label="0">不参与</el-radio>
<el-radio :label="1">参与</el-radio>
</el-radio-group>
</div>
</el-form-item>
<div v-if="status==1">
<el-form-item label="佣金规则:">
<div>
<el-radio-group v-model="self_rules" @change="selfRulesChange">
<el-radio :label="0">默认规则</el-radio>
<el-radio v-if="isalone==0" :label="1">独立规则</el-radio>
<el-radio :label="2">批量规则</el-radio>
</el-radio-group>
</div>
</el-form-item>
<el-form-item label="分销商业绩:">
<div class="display-flex">
<el-radio-group v-model="commission_order_status">
<el-radio :label="0">不计入</el-radio>
<el-radio :label="1">计入</el-radio>
</el-radio-group>
<el-popover
placement="top"
trigger="hover"
content="关闭则只分佣,不计入分销订单金额和订单数">
<i class="el-icon-question commission-order-status-icon" slot="reference"></i>
</el-popover>
</div>
</el-form-item>
<div v-if="self_rules==1 || self_rules==2">
<el-form-item label="分销设置:">
<el-switch v-model="commission_config" @change="changeCommissionConfig" active-color="#6E3DC8"
:active-value="1" :inactive-value="0" inactive-color="#999">
</el-switch>
<span style="margin-left: 14px;" v-if="commission_config==0">默认设置</span>
<span style="margin-left: 14px;" v-if="commission_config==1">独立设置</span>
</el-form-item>
<div v-if="commission_config==1">
<el-form-item label="分销层级:">
<el-radio-group v-model="commission_config_obj.commission_level">
<el-radio label="1">一级</el-radio>
<el-radio label="2">二级</el-radio>
<el-radio label="3">三级</el-radio>
</el-radio-group>
</el-form-item>
<el-form-item label="分销内购:">
<el-radio-group v-model="commission_config_obj.self_buy">
<el-radio label="0">关闭</el-radio>
<el-radio label="1">开启</el-radio>
</el-radio-group>
<div class="title-tip">
内购优惠开启后,分销商自己购买时,下单可以给自己返佣
</div>
</el-form-item>
<el-form-item label="商品结算方式:">
<el-radio-group v-model="commission_config_obj.commission_price_type">
<el-radio label="goods_price">商品价</el-radio>
<el-radio label="pay_price">实际支付价</el-radio>
</el-radio-group>
<div class="title-tip">
商品价: 商品实际售价/规格价,实际支付价: 实际支付的费用(不含运费)
</div>
</el-form-item>
<el-form-item label="佣金结算方式:">
<el-radio-group v-model="commission_config_obj.commission_event">
<el-radio label="payed">支付后结算</el-radio>
<el-radio label="confirm">确认收货结算</el-radio>
<el-radio label="finish">订单完成结算</el-radio>
<el-radio label="admin">手动打款</el-radio>
</el-radio-group>
</el-form-item>
</div>
</div>
<div style="padding: 0 40px;">
<div v-if="self_rules==0 && radioEnd==0" style="overflow: auto;">
<div class="display-flex goods-header commission-header-container">
<div class="commission-store-name">分销等级名称</div>
<div class="commission-item">一级(自购)佣金比例</div>
<div class="commission-item">二级佣金比例</div>
<div class="commission-item">三级佣金比例</div>
</div>
<div class="display-flex goods-body-item commission-body-container"
v-for="levelItem in levelList">
<div class="commission-store-name">
{{levelItem.name}}
</div>
<div class="commission-item">
{{levelItem.commission_rules.commission_1}}%
</div>
<div class="commission-item">
{{levelItem.commission_rules.commission_2}}%
</div>
<div class="commission-item">
{{levelItem.commission_rules.commission_3}}%
</div>
</div>
</div>
<div v-if="self_rules==1 && radioEnd==1" style="overflow: auto;">
<div class="display-flex commission-header-container">
<div class="commission-sku" style="border-bottom: 1px solid #e6e6e6;text-align: center;">
商品规格</div>
<div class="commission-price" style="border-bottom: 1px solid #e6e6e6;text-align: center;">
价格</div>
<div class="commission-store-name">分销商等级</div>
<div class="commission-item">
一级(自购)佣金比例
<el-popover placement="top" width="200" v-model="batchShow[1]">
<div>
<div class="display-flex"
style="justify-content: space-between;padding: 5px 0;">
<div class="sku-price-rate">
<el-input v-model="batchList.rate" size="mini" v-enter-number
:disabled="batchList.money!=''">
<template slot="append">%</template>
</el-input>
</div>
<div class="sku-price-rate">
<el-input v-model="batchList.money" size="mini" v-enter-number
:disabled="batchList.rate!=''">
<template slot="append">元</template>
</el-input>
</div>
</div>
</div>
<div style="text-align: right; margin: 0">
<el-button size="mini" type="text" @click="batchSet('1','cancel')">取消
</el-button>
<el-button type="primary" size="mini" @click="batchSet('1','define')">确定
</el-button>
</div>
<img class="batch-edit-icon" slot="reference"
src="/assets/addons/shopro/img/goods/batch.png">
</el-popover>
</div>
<div class="commission-item">
二级佣金比例
<el-popover placement="top" content="没有请填写为0" trigger="hover">
<i slot="reference" class="el-icon-question commission-order-status-icon batch-question-icon"></i>
</el-popover>
<el-popover placement="top" width="200" v-model="batchShow[2]">
<div>
<div class="display-flex"
style="justify-content: space-between;padding: 5px 0;">
<div class="sku-price-rate">
<el-input v-model="batchList.rate" size="mini" v-enter-number
:disabled="batchList.money!=''">
<template slot="append">%</template>
</el-input>
</div>
<div class="sku-price-rate">
<el-input v-model="batchList.money" size="mini" v-enter-number
:disabled="batchList.rate!=''">
<template slot="append">元</template>
</el-input>
</div>
</div>
</div>
<div style="text-align: right; margin: 0">
<el-button size="mini" type="text" @click="batchSet('2','cancel')">取消
</el-button>
<el-button type="primary" size="mini" @click="batchSet('2','define')">确定
</el-button>
</div>
<img class="batch-edit-icon" slot="reference"
src="/assets/addons/shopro/img/goods/batch.png">
</el-popover>
</div>
<div class="commission-item">
三级佣金比例
<el-popover placement="top" content="没有请填写为0" trigger="hover">
<i slot="reference" class="el-icon-question commission-order-status-icon batch-question-icon"></i>
</el-popover>
<el-popover placement="top" width="200" v-model="batchShow[3]">
<div>
<div class="display-flex"
style="justify-content: space-between;padding: 5px 0;">
<div class="sku-price-rate">
<el-input v-model="batchList.rate" size="mini" v-enter-number
:disabled="batchList.money!=''">
<template slot="append">%</template>
</el-input>
</div>
<div class="sku-price-rate">
<el-input v-model="batchList.money" size="mini" v-enter-number
:disabled="batchList.rate!=''">
<template slot="append">元</template>
</el-input>
</div>
</div>
</div>
<div style="text-align: right; margin: 0">
<el-button size="mini" type="text" @click="batchSet('3','cancel')">取消
</el-button>
<el-button type="primary" size="mini" @click="batchSet('3','define')">确定
</el-button>
</div>
<img class="batch-edit-icon" slot="reference"
src="/assets/addons/shopro/img/goods/batch.png">
</el-popover>
</div>
</div>
<div class="alone-setting-container">
<div>
<div class="display-flex" v-for="sku in goodsDetail.sku_price">
<!-- 规格&价格 -->
<div class="commission-sku" :style="{height:51*levelList.length+'px'}" style="display: flex;justify-content: center;align-items: center;line-height: 20px;">
<span v-if="goodsDetail.is_sku==1">{{sku.goods_sku_text.join(',')}}</span>
<span v-if="goodsDetail.is_sku==0">默认规格</span>
</div>
<div class="commission-price" :style="{height:51*levelList.length+'px',lineHeight:51*levelList.length+'px'}">{{sku.price}}</div>
<div>
<!-- 等级 -->
<div class="commission-store-name" v-for="(levelItem,level) in levelList">
{{levelItem.name}}
</div>
</div>
</div>
</div>
<div>
<div v-for="levelObj in commission_rules">
<div class="display-flex" v-for="commissionitem in levelObj">
<div class="display-flex commission-item">
<div class="sku-price-rate">
<el-input v-model="commissionitem[1].rate" size="mini" v-enter-number
@input="inputChange" :disabled="commissionitem[1].money!=''">
<template slot="append">%</template>
</el-input>
</div>
<div class="sku-price-money">
<el-input v-model="commissionitem[1].money" size="mini" v-enter-number
@input="inputChange" :disabled="commissionitem[1].rate!=''">
<template slot="append">元</template>
</el-input>
</div>
</div>
<div class="display-flex commission-item">
<div class="sku-price-rate">
<el-input v-model="commissionitem[2].rate" size="mini" v-enter-number
@input="inputChange" :disabled="commissionitem[2].money!=''">
<template slot="append">%</template>
</el-input>
</div>
<div class="sku-price-money">
<el-input v-model="commissionitem[2].money" size="mini" v-enter-number
@input="inputChange" :disabled="commissionitem[2].rate!=''">
<template slot="append">元</template>
</el-input>
</div>
</div>
<div class="display-flex commission-item">
<div class="sku-price-rate">
<el-input v-model="commissionitem[3].rate" size="mini" v-enter-number
@input="inputChange" :disabled="commissionitem[3].money!=''">
<template slot="append">%</template>
</el-input>
</div>
<div class="sku-price-money">
<el-input v-model="commissionitem[3].money" size="mini" v-enter-number
@input="inputChange" :disabled="commissionitem[3].rate!=''">
<template slot="append">元</template>
</el-input>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div v-if="self_rules==2 && radioEnd==2" style="overflow: auto;">
<div class="display-flex commission-header-container">
<div class="commission-store-name">分销商等级</div>
<div class="commission-item commission-item-batch">
一级(自购)佣金比例
<el-popover placement="top" width="200" v-model="batchShow[1]">
<div>
<div class="display-flex" style="padding: 5px 0;">
<div class="sku-price-rate">
<el-input v-model="batchList.rate" size="mini" v-enter-number>
<template slot="append">%</template>
</el-input>
</div>
</div>
</div>
<div style="text-align: right; margin: 0">
<el-button size="mini" type="text" @click="batchSet('1','cancel')">取消
</el-button>
<el-button type="primary" size="mini" @click="batchSet('1','define')">确定
</el-button>
</div>
<img class="batch-edit-icon" slot="reference"
src="/assets/addons/shopro/img/goods/batch.png">
</el-popover>
</div>
<div class="commission-item commission-item-batch">
二级佣金比例
<el-popover placement="top" content="没有请填写为0" trigger="hover">
<i slot="reference" class="el-icon-question commission-order-status-icon batch-question-icon"></i>
</el-popover>
<el-popover placement="top" width="200" v-model="batchShow[2]">
<div>
<div class="display-flex" style="padding: 5px 0;">
<div class="sku-price-rate">
<el-input v-model="batchList.rate" size="mini" v-enter-number>
<template slot="append">%</template>
</el-input>
</div>
</div>
</div>
<div style="text-align: right; margin: 0">
<el-button size="mini" type="text" @click="batchSet('2','cancel')">取消
</el-button>
<el-button type="primary" size="mini" @click="batchSet('2','define')">确定
</el-button>
</div>
<img class="batch-edit-icon" slot="reference"
src="/assets/addons/shopro/img/goods/batch.png">
</el-popover>
</div>
<div class="commission-item commission-item-batch">
三级佣金比例
<el-popover placement="top" content="没有请填写为0" trigger="hover">
<i slot="reference" class="el-icon-question commission-order-status-icon batch-question-icon"></i>
</el-popover>
<el-popover placement="top" width="200" v-model="batchShow[3]">
<div>
<div class="display-flex" style="padding: 5px 0;">
<div class="sku-price-rate">
<el-input v-model="batchList.rate" size="mini" v-enter-number>
<template slot="append">%</template>
</el-input>
</div>
</div>
</div>
<div style="text-align: right; margin: 0">
<el-button size="mini" type="text" @click="batchSet('3','cancel')">取消
</el-button>
<el-button type="primary" size="mini" @click="batchSet('3','define')">确定
</el-button>
</div>
<img class="batch-edit-icon" slot="reference"
src="/assets/addons/shopro/img/goods/batch.png">
</el-popover>
</div>
</div>
<div class="batch-setting-container" style="flex-direction: column;">
<div class="batch-setting-item display-flex" v-for="levelItem in levelList">
<div class="commission-store-name">
{{levelItem.name}}
</div>
<div>
<div class="display-flex">
<div class="display-flex commission-item">
<div class="sku-price-rate">
<el-input v-model="commission_rules[levelItem.level][1].rate"
size="mini" v-enter-number @input="inputChange">
<template slot="append">%</template>
</el-input>
</div>
</div>
<div class="display-flex commission-item">
<div class="sku-price-rate">
<el-input v-model="commission_rules[levelItem.level][2].rate"
size="mini" v-enter-number @input="inputChange">
<template slot="append">%</template>
</el-input>
</div>
</div>
<div class="display-flex commission-item">
<div class="sku-price-rate">
<el-input v-model="commission_rules[levelItem.level][3].rate"
size="mini" v-enter-number @input="inputChange">
<template slot="append">%</template>
</el-input>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</el-form>
<div class="shopro-submit-container">
<div class="shopro-submit-button" @click="formSubmit()">确定</div>
</div>
</div>

查看文件

@@ -0,0 +1,301 @@
<link rel="stylesheet" href="__CDN__/assets/addons/shopro/libs/element/element.css">
<link rel="stylesheet" href="__CDN__/assets/addons/shopro/libs/common.css">
<style>
#indexPage {
font-family: Source Han Sans SC;
padding: 0 20px 20px;
background: #fff;
border-radius: 10px 10px 0px 0px;
}
.shopro-screen-container {
padding-top: 20px;
}
.shopro-reset-button {
margin-right: 20px;
}
.title {
height: 58px;
line-height: 58px;
font-weight: 600;
font-size: 13px;
}
.btn-common {
width: 80px;
height: 30px;
line-height: 30px;
border-radius: 4px;
font-size: 13px;
text-align: center;
cursor: pointer;
display: inline-block;
}
.btn-box {
margin-bottom: 20px;
display: flex;
justify-content: space-between;
}
.create-btn {
background: #7536D0;
color: #fff;
width: 100px;
height: 32px;
line-height: 32px;
}
.operation-status {
color: #7438D5;
margin-right: 14px;
cursor: pointer;
}
.table-header-bgcolor th {
background-color: #f9f9f9 !important;
padding: 8px 0;
}
.table-header-bgcolor th .cell {
font-weight: 400;
color: #444;
}
/* 搜索 筛选 */
.screen-con {
display: flex;
}
.header-input-item {
margin-right: 30px;
margin-bottom: 14px;
width: 242px;
}
.header-input-item .header-input-tip {
margin-right: 14px;
}
.header-input-item .el-input {
width: 176px;
}
.shopro-pagination-container {
justify-content: space-between;
}
.multiple-set-acitve-1,
.multiple-set-acitve-2,
.multiple-set-acitve-3 {
cursor: pointer;
margin-right: 14px;
}
.multiple-set-acitve .multiple-set-acitve-1 {
color: #60CC9E;
}
.multiple-set-acitve .multiple-set-acitve-2 {
color: #ED655F;
}
.multiple-set-acitve .multiple-set-acitve-3 {
color: #7438D5
}
.shopro-pagination-container .shopro-edit-text {
color: inherit;
}
.shopro-refresh-button {
margin-bottom: 20px;
margin-right: 20px;
}
.el-checkbox__inner:focus {
border: none;
outline: none;
}
.el-table--border th:first-child .cell {
padding-left: 5px;
}
.multiple-set-item {
color: #ccc;
}
.shopro-table-container .table-image {
width: 60px;
height: 60px;
}
.el-table td,
.el-table th {
padding: 10px 0 9px;
}
[v-cloak] {
display: none
}
</style>
<script src="__CDN__/assets/addons/shopro/libs/vue.js"></script>
<script src="__CDN__/assets/addons/shopro/libs/element/element.js"></script>
<script src="__CDN__/assets/addons/shopro/libs/moment.js"></script>
<div id="indexPage" v-cloak v-loading="isAjax">
<div class="shopro-screen-container">
<div class="shopro-button shopro-refresh-button" @click="getListData">
<i class="el-icon-refresh"></i>
</div>
<div class="display-flex shopro-screen-item">
<div class="shopro-screen-tip">商品名称</div>
<div class="shopro-screen-condition">
<el-input placeholder="请输入商品名称" size="small" v-model="searchForm.goods_title"></el-input>
</div>
</div>
<div class="display-flex shopro-screen-item">
<div class="shopro-screen-tip">商品分类</div>
<div class="shopro-screen-condition">
<el-select v-model="searchForm.goods_type" placeholder="请选择商品分类" size="small">
<el-option :label="goods.name" :value="goods.type" v-for="goods in goodTypeOptions">
</el-option>
</el-select>
</div>
</div>
<div class="display-flex shopro-screen-item">
<div class="shopro-screen-tip">活动类型</div>
<div class="shopro-screen-condition">
<el-select v-model="searchForm.activity_type" placeholder="请选择活动类型" size="small">
<el-option :label="activity.name" :value="activity.type" v-for="activity in activityTypeOptions">
</el-option>
</el-select>
</div>
</div>
<div class="display-flex shopro-screen-item">
<div class="shopro-screen-tip">分销规则</div>
<div class="shopro-screen-condition">
<el-select v-model="searchForm.self_rules" placeholder="请选择分销规则" size="small">
<el-option :label="rules.name" :value="rules.type" v-for="rules in commissionTypeOptions">
</el-option>
</el-select>
</div>
</div>
<div class="display-flex shopro-screen-item">
<div class="shopro-screen-tip">分销状态</div>
<div class="shopro-screen-condition">
<el-select v-model="searchForm.commission_goods_status" placeholder="请选择分销状态" size="small">
<el-option :label="status.name" :value="status.type" v-for="status in commissionStatusOptions">
</el-option>
</el-select>
</div>
</div>
<div class="display-flex shopro-screen-item-button">
<div class="shopro-button shopro-reset-button" @click="screenEmpty">重置</div>
<div class="shopro-button shopro-screen-button" @click="pageCurrentChange(1)">筛选</div>
</div>
</div>
<div class="shopro-table-container" v-loading="tableAjax">
<el-table ref="multipleTable" :data="listData" style="width: 100%" border stripe="true"
:cell-class-name="tableCellClassName" :header-cell-class-name="tableCellClassName"
@selection-change="handleSelectionChange">
<el-table-column type="selection" width="55">
</el-table-column>
<el-table-column prop="id" label="ID" width="130">
</el-table-column>
<el-table-column prop="name" label="商品信息" min-width="300">
<template slot-scope="scope">
<div class="display-flex">
<div class="table-image">
<el-image :src="Fast.api.cdnurl(scope.row.image)" fit="contain">
<div slot="error" class="image-slot">
<i class="el-icon-picture-outline"></i>
</div>
</el-image>
</div>
<div>
<div class="ellipsis-item" style="margin-top: 8px;line-height: 1;">
{{scope.row.title}}
</div>
<div class="display-flex" style="margin-top: 14px;">
<span v-if="scope.row.is_sku==1"
style="color: #444;margin-right: 12px;line-height: 20px;">
{{scope.row.is_sku==1?'多规格':''}}
</span>
<div v-if="scope.row.activity_type || scope.row.app_type"
class="activity-type display-flex">
<div v-if="scope.row.app_type" class="activity-tags full-activity-tag">
{{scope.row.app_type_text}}
</div>
<template v-for="(b,a) in scope.row.activity_type_text_arr">
<template v-if="a=='groupon'">
<div class="activity-tags groupon-activity-tag">
拼团
</div>
</template>
<div v-if="a=='seckill'" class="activity-tags seckill-activity-tag">{{b}}</div>
<div v-if="a=='full_reduce' || a=='full_discount' || a=='free_shipping'"
class="activity-tags full-activity-tag">{{b}}</div>
</template>
</div>
</div>
</div>
</div>
</template>
</el-table-column>
<el-table-column label="分销规则" width="100">
<template slot-scope="scope">
<div v-if="scope.row.commission && scope.row.commission.status==1">
<div v-if="scope.row.commission.self_rules==0">默认规则</div>
<div v-if="scope.row.commission.self_rules==1">独立规则</div>
<div v-if="scope.row.commission.self_rules==2">批量规则</div>
</div>
<div v-if="!scope.row.commission || (scope.row.commission && scope.row.commission.status==0)">
-
</div>
</template>
</el-table-column>
<el-table-column label="商品状态" width="100">
<template slot-scope="scope">
{{scope.row.status_text}}
</template>
</el-table-column>
<el-table-column label="操作" fixed="right" width="220">
<template slot-scope="scope">
<div>
<span class="shopro-edit-text" @click="operation('edit',scope.row)">设置佣金</span>
<span class="shopro-detail-text" v-if="scope.row.commission">
<span v-if="scope.row.commission && scope.row.commission.status==0"
@click="operation('join',scope.row)">参与</span>
<span style="color:#ff5959;" v-if="scope.row.commission && scope.row.commission.status==1"
@click="operation('nojoin',scope.row)">不参与</span>
</span>
<span class="shopro-detail-text" v-if="!scope.row.commission"
@click="operation('join',scope.row)">参与</span>
</div>
</template>
</el-table-column>
</el-table>
</div>
<div class="shopro-pagination-container">
<div class="display-flex">
<div style="margin-right: 40px;">
<el-checkbox v-model="allcheckeds" @change="changeAllcheckeds">批量设置</el-checkbox>
</div>
<div class="display-flex multiple-set-item" :class="multipleSelection.length>0?'multiple-set-acitve':''">
<div class="multiple-set-acitve-1" @click="operation('join',0)">参与</div>
<div class="multiple-set-acitve-2" @click="operation('nojoin',0)">不参与</div>
<div class="multiple-set-acitve-3" @click="operation('edit',0)">设置佣金</div>
</div>
</div>
<el-pagination @size-change="pageSizeChange" @current-change="pageCurrentChange" :current-page="currentPage"
:page-sizes="[10, 20, 30, 40]" :page-size="limit" layout="total, sizes, prev, pager, next, jumper"
:total="totalPage" pager-count="5">
</el-pagination>
</div>
</div>

查看文件

@@ -0,0 +1,503 @@
<link rel="stylesheet" href="__CDN__/assets/addons/shopro/libs/element/element.css">
<link rel="stylesheet" href="__CDN__/assets/addons/shopro/libs/common.css">
<style>
#detailPage {
border-radius: 10px;
color: #444;
font-weight: 500;
padding: 0px 10px 60px;
position: relative;
}
.el-form-item__label,
.el-form-item__content {
line-height: 32px;
}
.el-form-item {
margin-bottom: 14px;
/* padding-left: 50px; */
}
.title-tip {
color: #999;
line-height: 12px;
font-size: 12px;
font-weight: 400;
margin-top: 10px;
}
.commission-rate,
.level-name {
width: 200px;
}
.upgrade-condition-item {
display: inline-block;
margin-bottom: 10px;
padding: 0 10px;
height: 32px;
line-height: 32px;
text-align: center;
border: 1px solid #e5e5e5;
border-radius: 6px;
margin-right: 14px;
cursor: pointer;
font-size: 12px;
position: relative;
overflow: hidden;
}
.upgrade-type-container {
margin-bottom: 20px;
}
.upgrade-type-title {
margin-right: 20px;
}
.upgrade-condition-item-active {
border-color: #7438D5;
color: #7438D5;
}
.condition-delete {
margin-left: 20px;
cursor: pointer;
display: inline-block;
color: #FE7C76;
font-size: 20px;
}
.goods-header {
background: #f9f9f9;
height: 40px;
line-height: 40px;
}
.goods-item-1 {
width: 280px;
padding: 0 20px;
}
.goods-item-2 {
width: 100px;
padding: 0 20px;
}
.goods-item-3 {
width: 100px;
}
.goods-delete {
cursor: pointer;
color: #FF5959;
}
.goods-image {
width: 40px;
height: 40px;
margin-right: 20px;
border: 1px solid #e6e6e6;
}
.goods-add {
width: 80px;
height: 30px;
border-radius: 4px;
font-size: 12px;
cursor: pointer;
background: #7438D5;
color: #fff;
display: flex;
justify-content: center;
align-items: center;
}
.el-image {
width: 100%;
height: 100%;
}
.image-slot {
display: flex;
justify-content: center;
align-items: center;
height: 100%;
}
.shopro-submit-container {
display: flex;
justify-content: flex-end;
position: fixed;
right: 40px;
bottom: 0px;
height: 60px;
}
.shopro-submit-button {
width: 88px;
height: 36px;
line-height: 36px;
text-align: center;
background: #7438D5;
font-size: 14px;
color: #fff;
cursor: pointer;
border-radius: 5px;
}
.goods-title,
.goods-price {
line-height: 13px;
}
.goods-price {
color: #7438D5;
}
.goods-title {
margin-bottom: 13px;
}
.goods-body-item {
border-top: 1px solid #e6e6e6;
height: 50px;
line-height: 50px;
}
.active-icon {
width: 22px;
height: 22px;
position: absolute;
right: -1px;
top: -1px;
}
.shopro-level-item {
width: 70px;
height: 32px;
line-height: 32px;
border-radius: 4px;
border: 1px solid #e6e6e6;
margin-right: 12px;
text-align: center;
font-size: 13px;
cursor: pointer;
position: relative;
overflow: hidden;
margin-bottom: 10px;
}
.shopro-level-item-active {
border-color: #7438D5;
color: #7438D5;
}
.shopro-level-item-disable {
background: #eee;
border-color: #e6e6e6;
cursor: auto;
}
.el-dialog__body {
padding: 10px 20px;
}
.el-dialog__footer {
padding: 0;
}
.bgimage-add-container {
border: 1px solid #e6e6e6;
width: 80px;
height: 80px;
border-radius: 5px;
}
.bgimage-add {
width: 80px;
height: 80px;
display: flex;
justify-content: center;
align-items: center;
font-size: 30px;
color: #999;
}
.shopro-goods-add-button {
cursor: pointer;
color: #7438D5;
font-size: 13px;
height: 50px;
line-height: 50px;
padding: 0 20px;
}
.shopro-goods-add-button i {
margin-right: 6px;
}
.child-agent-count-add {
width: 80px;
height: 32px;
background: #FFFFFF;
border: 1px solid #7438D5;
border-radius: 4px;
display: flex;
justify-content: center;
align-items: center;
color: #7438D5;
margin-bottom: 14px;
cursor: pointer;
}
.child-agent-count-add i {
margin-right: 6px;
}
.child-agent-count-item {
margin-bottom: 14px;
}
.child-agent-count-select {
width: 150px;
}
.child-agent-count-man {
margin-left: 30px;
}
.child-agent-count-input {
width: 90px;
margin-left: 20px;
}
.level-tip {
margin-bottom: 20px;
border-radius: 5px;
background-color: #F1EBFA;
padding: 16px;
}
.el-input-group__append{
line-height: 30px;
}
[v-cloak] {
display: none
}
</style>
<script src="__CDN__/assets/addons/shopro/libs/vue.js"></script>
<script src="__CDN__/assets/addons/shopro/libs/element/element.js"></script>
<script src="__CDN__/assets/addons/shopro/libs/shopro.js"></script>
<div id="detailPage" v-cloak>
<el-form :model="formData" ref="formData" label-width="168px" v-if="formData">
<div class="level-tip">
新增或编辑等级后,请及时在分销商品中完善对应的佣金规则
</div>
<div>
<div class="shopro-form-group-title">
<div class="shopro-form-group-title-line"></div>等级佣金比例
</div>
<el-form-item label="等级权重:" prop="level">
<div class="display-flex" style="width: 410px;flex-wrap: wrap;">
<tempalte v-if="optType=='edit'">
<div class="shopro-level-item shopro-level-item-disable" v-if="formData.level!=1">
一级
</div>
<div class="shopro-level-item shopro-level-item-active" v-else>
<img class="active-icon" src="/assets/addons/shopro/img/goods/active.png">
一级
</div>
</tempalte>
<tempalte v-if="optType=='add'">
<div class="shopro-level-item shopro-level-item-disable">
一级
</div>
</tempalte>
<template v-for="(levelItem,levelIndex) in levelList" v-if="levelIndex>0 && formData.level!=1">
<div class="shopro-level-item" v-if="existLevel.includes(Number(levelItem.value))"
:class="[(existLevel.includes(Number(levelItem.value)) && formData.level!=levelItem.value)?'shopro-level-item-disable':'',formData.level==levelItem.value?'shopro-level-item-active':'']">
<img class="active-icon"
v-if="existLevel.includes(Number(levelItem.value)) && formData.level==levelItem.value"
src="/assets/addons/shopro/img/goods/active.png">
{{levelItem.title}}
</div>
<div class="shopro-level-item" v-else
:class="formData.level==levelItem.value?'shopro-level-item-active':''"
@click="selectLevel(levelIndex)">
<img class="active-icon"
v-if="formData.level==levelItem.value?'shopro-level-item-active':''"
src="/assets/addons/shopro/img/goods/active.png">
{{levelItem.title}}
</div>
</template>
</div>
</el-form-item>
<el-form-item label="等级名称:" prop="name">
<div class="level-name">
<el-input v-model="formData.name" placeholder="请输入等级名称" maxlength="6" size="small" show-word-limit>
</el-input>
</div>
</el-form-item>
<el-form-item label="等级徽章:" prop="image">
<div class="bgimage-add-container" @click="bgimageAdd">
<el-image v-if="formData.image" :src="Fast.api.cdnurl(formData.image)" fit="contain">
<div slot="error" class="image-slot">
<i class="el-icon-picture-outline"></i>
</div>
</el-image>
<div class="bgimage-add" v-if="!formData.image">
<i class="el-icon-plus"></i>
</div>
</div>
</el-form-item>
<el-form-item label="一级(自购)佣金比例:" prop="commission_1">
<div class="commission-rate">
<el-input v-model="formData.commission_rules.commission_1" type="number" placeholder="如不填写默认为0"
size="small">
<template slot="append">%</template>
</el-input>
</div>
</el-form-item>
<el-form-item label="二级佣金比例:" prop="commission_2">
<div class="commission-rate">
<el-input v-model="formData.commission_rules.commission_2" type="number" placeholder="如不填写默认为0"
size="small">
<template slot="append">%</template>
</el-input>
</div>
</el-form-item>
<el-form-item label="三级佣金比例:" prop="commission_3">
<div class="commission-rate">
<el-input v-model="formData.commission_rules.commission_3" type="number" placeholder="如不填写默认为0"
size="small">
<template slot="append">%</template>
</el-input>
</div>
</el-form-item>
</div>
<div v-if="formData.level!=1">
<div class="shopro-form-group-title">
<div class="shopro-form-group-title-line"></div>添加升级条件
</div>
<el-form-item label="升级方式:" prop="upgrade_type">
<div>
<el-radio-group v-model="formData.upgrade_type">
<el-radio :label="0">满足以下任意条件</el-radio>
<el-radio :label="1">满足以下全部条件</el-radio>
</el-radio-group>
</div>
</el-form-item>
<el-form-item>
<div>
<div>
<div class="upgrade-condition-item" :class="upgrade.selected?'upgrade-condition-item-active':''"
v-for="(upgrade,upgradeIndex) in upgradeCondition" v-if="upgradeIndex<4" @click="selectCondition(upgradeIndex)">
<img class="active-icon" v-if="upgrade.selected"
src="/assets/addons/shopro/img/goods/active.png">
<span>{{upgrade.title}}</span>
</div>
</div>
<div>
<div class="upgrade-condition-item" :class="upgrade.selected?'upgrade-condition-item-active':''"
v-for="(upgrade,upgradeIndex) in upgradeCondition" v-if="upgradeIndex>3 && upgradeIndex<8" @click="selectCondition(upgradeIndex)">
<img class="active-icon" v-if="upgrade.selected"
src="/assets/addons/shopro/img/goods/active.png">
<span v-if="upgradeIndex!=4">{{upgrade.title}}</span>
<el-popover placement="bottom" trigger="hover"
content="包含直推分销金额和内购分销金额">
<span v-if="upgradeIndex==4" slot="reference">{{upgrade.title}}</span>
</el-popover>
</div>
</div>
<div>
<div class="upgrade-condition-item" :class="upgrade.selected?'upgrade-condition-item-active':''"
v-for="(upgrade,upgradeIndex) in upgradeCondition" v-if="upgradeIndex>7 && upgradeIndex<12" @click="selectCondition(upgradeIndex)">
<img class="active-icon" v-if="upgrade.selected"
src="/assets/addons/shopro/img/goods/active.png">
<span v-if="upgradeIndex!=8">{{upgrade.title}}</span>
<el-popover placement="bottom" trigger="hover"
content="包含直推分销订单和内购分销订单">
<span v-if="upgradeIndex==8" slot="reference">{{upgrade.title}}</span>
</el-popover>
</div>
</div>
<div>
<div class="upgrade-condition-item" :class="upgrade.selected?'upgrade-condition-item-active':''"
v-for="(upgrade,upgradeIndex) in upgradeCondition" v-if="upgradeIndex>11 && upgradeIndex<15" @click="selectCondition(upgradeIndex)">
<img class="active-icon" v-if="upgrade.selected"
src="/assets/addons/shopro/img/goods/active.png">
<span>{{upgrade.title}}</span>
</div>
</div>
<div>
<div class="upgrade-condition-item" :class="upgrade.selected?'upgrade-condition-item-active':''"
v-for="(upgrade,upgradeIndex) in upgradeCondition" v-if="upgradeIndex>14" @click="selectCondition(upgradeIndex)">
<img class="active-icon" v-if="upgrade.selected"
src="/assets/addons/shopro/img/goods/active.png">
<span>{{upgrade.title}}</span>
</div>
</div>
</div>
</el-form-item>
<el-form-item :label="upgrade.title+':'" v-if="upgrade.selected"
v-for="(upgrade,uindex) in upgradeCondition" :prop="upgrade.key">
<div class="display-flex"
v-if="upgrade.key!='child_agent_level' && upgrade.key!='child_agent_level_1'">
<div class="commission-rate">
<el-input v-model="upgrade.value" type="number" size="small">
<template slot="append"
v-if="upgrade.key=='total_consume' || upgrade.key=='child_order_money' || upgrade.key=='child_order_money_1' || upgrade.key=='child_order_money_2' || upgrade.key=='order_money'">元</template>
<template slot="append"
v-if="upgrade.key=='child_agent_count' || upgrade.key=='child_agent_count_1' || upgrade.key=='child_agent_count_2' || upgrade.key=='child_user_count' || upgrade.key=='child_user_count_1' || upgrade.key=='child_user_count_2'">人</template>
<template slot="append"
v-if="upgrade.key=='order_count' || upgrade.key=='child_order_count_1' || upgrade.key=='child_order_count_2' || upgrade.key=='child_order_count'">单</template>
</el-input>
</div>
<i class="condition-delete el-icon-circle-close" @click="conditionDelete(uindex)"></i>
</div>
<div
v-if="upgrade.key=='child_agent_level' || upgrade.key=='child_agent_level_1'">
<div>
<div class="display-flex child-agent-count-item" v-for="(countItem,cindex) in upgrade.value">
<div class="child-agent-count-select">
<el-select v-model="countItem.level" placeholder="请选择分销商等级" no-data-text="等级已选择完毕" size="small">
<el-option v-for="item in levelOptions" :key="item.level"
:label="item.name+'(等级'+item.level+')'" :value="item.level"
v-if="Number(item.level)<=Number(formData.level) && Number(item.level)!=Number(editId)">
</el-option>
</el-select>
</div>
<div class="child-agent-count-man">满</div>
<div class="child-agent-count-input">
<el-input v-model="countItem.count" type="number" size="small">
<template slot="append">人</template>
</el-input>
</div>
<i class="condition-delete el-icon-circle-close" @click="childAgentCountDelete(uindex,cindex)"></i>
</div>
</div>
<div class="child-agent-count-add" @click="childAgentCountAdd(uindex)"
v-if="!formData.level || upgrade.value.length<selectLevelOptionsLength">
<i class="el-icon-plus"></i>添加</div>
</div>
</el-form-item>
</div>
</el-form>
<div class="shopro-submit-container">
<div class="shopro-submit-button" @click="formSubmit('formData')">确定</div>
</div>
<el-dialog title="提示" :visible.sync="deleteDialog" width="400" :before-close="deleteDialogClose">
<div class="display-flex" style="justify-content: space-between;">
<div>分销商移入其他等级</div>
<el-select v-model="moveLevel" placeholder="请选择" size="small">
<el-option v-for="item in levelOptions" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</div>
<span slot="footer" class="dialog-footer">
<el-button size="small" type="primary" @click="deleteDialogClose('define')">确 定</el-button>
</span>
</el-dialog>
</div>

查看文件

@@ -0,0 +1,502 @@
<link rel="stylesheet" href="__CDN__/assets/addons/shopro/libs/element/element.css">
<link rel="stylesheet" href="__CDN__/assets/addons/shopro/libs/common.css">
<style>
#detailPage {
border-radius: 10px;
color: #444;
font-weight: 500;
padding: 0px 10px 60px;
position: relative;
}
.el-form-item__label,
.el-form-item__content {
line-height: 32px;
}
.el-form-item {
margin-bottom: 14px;
/* padding-left: 50px; */
}
.title-tip {
color: #999;
line-height: 12px;
font-size: 12px;
font-weight: 400;
margin-top: 10px;
}
.commission-rate,
.level-name {
width: 200px;
}
.upgrade-condition-item {
display: inline-block;
margin-bottom: 10px;
padding: 0 10px;
height: 32px;
line-height: 32px;
text-align: center;
border: 1px solid #e5e5e5;
border-radius: 6px;
margin-right: 14px;
cursor: pointer;
font-size: 12px;
position: relative;
overflow: hidden;
}
.upgrade-type-container {
margin-bottom: 20px;
}
.upgrade-type-title {
margin-right: 20px;
}
.upgrade-condition-item-active {
border-color: #7438D5;
color: #7438D5;
}
.condition-delete {
margin-left: 20px;
cursor: pointer;
display: inline-block;
color: #FE7C76;
font-size: 20px;
}
.goods-header {
background: #f9f9f9;
height: 40px;
line-height: 40px;
}
.goods-item-1 {
width: 280px;
padding: 0 20px;
}
.goods-item-2 {
width: 100px;
padding: 0 20px;
}
.goods-item-3 {
width: 100px;
}
.goods-delete {
cursor: pointer;
color: #FF5959;
}
.goods-image {
width: 40px;
height: 40px;
margin-right: 20px;
border: 1px solid #e6e6e6;
}
.goods-add {
width: 80px;
height: 30px;
border-radius: 4px;
font-size: 12px;
cursor: pointer;
background: #7438D5;
color: #fff;
display: flex;
justify-content: center;
align-items: center;
}
.el-image {
width: 100%;
height: 100%;
}
.image-slot {
display: flex;
justify-content: center;
align-items: center;
height: 100%;
}
.shopro-submit-container {
display: flex;
justify-content: flex-end;
position: fixed;
right: 40px;
bottom: 0px;
height: 60px;
}
.shopro-submit-button {
width: 88px;
height: 36px;
line-height: 36px;
text-align: center;
background: #7438D5;
font-size: 14px;
color: #fff;
cursor: pointer;
border-radius: 5px;
}
.goods-title,
.goods-price {
line-height: 13px;
}
.goods-price {
color: #7438D5;
}
.goods-title {
margin-bottom: 13px;
}
.goods-body-item {
border-top: 1px solid #e6e6e6;
height: 50px;
line-height: 50px;
}
.active-icon {
width: 22px;
height: 22px;
position: absolute;
right: -1px;
top: -1px;
}
.shopro-level-item {
width: 70px;
height: 32px;
line-height: 32px;
border-radius: 4px;
border: 1px solid #e6e6e6;
margin-right: 12px;
text-align: center;
font-size: 13px;
cursor: pointer;
position: relative;
overflow: hidden;
margin-bottom: 10px;
}
.shopro-level-item-active {
border-color: #7438D5;
color: #7438D5;
}
.shopro-level-item-disable {
background: #eee;
border-color: #e6e6e6;
cursor: auto;
}
.el-dialog__body {
padding: 10px 20px;
}
.el-dialog__footer {
padding: 0;
}
.bgimage-add-container {
border: 1px solid #e6e6e6;
width: 80px;
height: 80px;
border-radius: 5px;
}
.bgimage-add {
width: 80px;
height: 80px;
display: flex;
justify-content: center;
align-items: center;
font-size: 30px;
color: #999;
}
.shopro-goods-add-button {
cursor: pointer;
color: #7438D5;
font-size: 13px;
height: 50px;
line-height: 50px;
padding: 0 20px;
}
.shopro-goods-add-button i {
margin-right: 6px;
}
.child-agent-count-add {
width: 80px;
height: 32px;
background: #FFFFFF;
border: 1px solid #7438D5;
border-radius: 4px;
display: flex;
justify-content: center;
align-items: center;
color: #7438D5;
margin-bottom: 14px;
cursor: pointer;
}
.child-agent-count-add i {
margin-right: 6px;
}
.child-agent-count-item {
margin-bottom: 14px;
}
.child-agent-count-select {
width: 150px;
}
.child-agent-count-man {
margin-left: 30px;
}
.child-agent-count-input {
width: 90px;
margin-left: 20px;
}
.level-tip {
margin-bottom: 20px;
border-radius: 5px;
background-color: #F1EBFA;
padding: 16px;
}
.el-input-group__append{
line-height: 30px;
}
[v-cloak] {
display: none
}
</style>
<script src="__CDN__/assets/addons/shopro/libs/vue.js"></script>
<script src="__CDN__/assets/addons/shopro/libs/element/element.js"></script>
<script src="__CDN__/assets/addons/shopro/libs/shopro.js"></script>
<div id="detailPage" v-cloak>
<el-form :model="formData" ref="formData" label-width="168px" v-if="formData">
<div class="level-tip">
新增或编辑等级后,请及时在分销商品中完善对应的佣金规则
</div>
<div>
<div class="shopro-form-group-title">
<div class="shopro-form-group-title-line"></div>等级佣金比例
</div>
<el-form-item label="等级权重:" prop="level">
<div class="display-flex" style="width: 410px;flex-wrap: wrap;">
<tempalte v-if="optType=='edit'">
<div class="shopro-level-item shopro-level-item-disable" v-if="formData.level!=1">
一级
</div>
<div class="shopro-level-item shopro-level-item-active" v-else>
<img class="active-icon" src="/assets/addons/shopro/img/goods/active.png">
一级
</div>
</tempalte>
<tempalte v-if="optType=='add'">
<div class="shopro-level-item shopro-level-item-disable">
一级
</div>
</tempalte>
<template v-for="(levelItem,levelIndex) in levelList" v-if="levelIndex>0 && formData.level!=1">
<div class="shopro-level-item" v-if="existLevel.includes(Number(levelItem.value))"
:class="[(existLevel.includes(Number(levelItem.value)) && formData.level!=levelItem.value)?'shopro-level-item-disable':'',formData.level==levelItem.value?'shopro-level-item-active':'']">
<img class="active-icon"
v-if="existLevel.includes(Number(levelItem.value)) && formData.level==levelItem.value"
src="/assets/addons/shopro/img/goods/active.png">
{{levelItem.title}}
</div>
<div class="shopro-level-item" v-else
:class="formData.level==levelItem.value?'shopro-level-item-active':''"
@click="selectLevel(levelIndex)">
<img class="active-icon"
v-if="formData.level==levelItem.value?'shopro-level-item-active':''"
src="/assets/addons/shopro/img/goods/active.png">
{{levelItem.title}}
</div>
</template>
</div>
</el-form-item>
<el-form-item label="等级名称:" prop="name">
<div class="level-name">
<el-input v-model="formData.name" placeholder="请输入等级名称" maxlength="6" size="small" show-word-limit>
</el-input>
</div>
</el-form-item>
<el-form-item label="等级徽章:" prop="image">
<div class="bgimage-add-container" @click="bgimageAdd">
<el-image v-if="formData.image" :src="Fast.api.cdnurl(formData.image)" fit="contain">
<div slot="error" class="image-slot">
<i class="el-icon-picture-outline"></i>
</div>
</el-image>
<div class="bgimage-add" v-if="!formData.image">
<i class="el-icon-plus"></i>
</div>
</div>
</el-form-item>
<el-form-item label="一级(自购)佣金比例:" prop="commission_1">
<div class="commission-rate">
<el-input v-model="formData.commission_rules.commission_1" type="number" placeholder="如不填写默认为0"
size="small">
<template slot="append">%</template>
</el-input>
</div>
</el-form-item>
<el-form-item label="二级佣金比例:" prop="commission_2">
<div class="commission-rate">
<el-input v-model="formData.commission_rules.commission_2" type="number" placeholder="如不填写默认为0"
size="small">
<template slot="append">%</template>
</el-input>
</div>
</el-form-item>
<el-form-item label="三级佣金比例:" prop="commission_3">
<div class="commission-rate">
<el-input v-model="formData.commission_rules.commission_3" type="number" placeholder="如不填写默认为0"
size="small">
<template slot="append">%</template>
</el-input>
</div>
</el-form-item>
</div>
<div v-if="formData.level!=1">
<div class="shopro-form-group-title">
<div class="shopro-form-group-title-line"></div>添加升级条件
</div>
<el-form-item label="升级方式:" prop="upgrade_type">
<div>
<el-radio-group v-model="formData.upgrade_type">
<el-radio :label="0">满足以下任意条件</el-radio>
<el-radio :label="1">满足以下全部条件</el-radio>
</el-radio-group>
</div>
</el-form-item>
<el-form-item>
<div>
<div>
<div class="upgrade-condition-item" :class="upgrade.selected?'upgrade-condition-item-active':''"
v-for="(upgrade,upgradeIndex) in upgradeCondition" v-if="upgradeIndex<4" @click="selectCondition(upgradeIndex)">
<img class="active-icon" v-if="upgrade.selected"
src="/assets/addons/shopro/img/goods/active.png">
<span>{{upgrade.title}}</span>
</div>
</div>
<div>
<div class="upgrade-condition-item" :class="upgrade.selected?'upgrade-condition-item-active':''"
v-for="(upgrade,upgradeIndex) in upgradeCondition" v-if="upgradeIndex>3 && upgradeIndex<8" @click="selectCondition(upgradeIndex)">
<img class="active-icon" v-if="upgrade.selected"
src="/assets/addons/shopro/img/goods/active.png">
<span v-if="upgradeIndex!=4">{{upgrade.title}}</span>
<el-popover placement="bottom" trigger="hover"
content="包含直推分销金额和内购分销金额">
<span v-if="upgradeIndex==4" slot="reference">{{upgrade.title}}</span>
</el-popover>
</div>
</div>
<div>
<div class="upgrade-condition-item" :class="upgrade.selected?'upgrade-condition-item-active':''"
v-for="(upgrade,upgradeIndex) in upgradeCondition" v-if="upgradeIndex>7 && upgradeIndex<12" @click="selectCondition(upgradeIndex)">
<img class="active-icon" v-if="upgrade.selected"
src="/assets/addons/shopro/img/goods/active.png">
<span v-if="upgradeIndex!=8">{{upgrade.title}}</span>
<el-popover placement="bottom" trigger="hover"
content="包含直推分销订单和内购分销订单">
<span v-if="upgradeIndex==8" slot="reference">{{upgrade.title}}</span>
</el-popover>
</div>
</div>
<div>
<div class="upgrade-condition-item" :class="upgrade.selected?'upgrade-condition-item-active':''"
v-for="(upgrade,upgradeIndex) in upgradeCondition" v-if="upgradeIndex>11 && upgradeIndex<15" @click="selectCondition(upgradeIndex)">
<img class="active-icon" v-if="upgrade.selected"
src="/assets/addons/shopro/img/goods/active.png">
<span>{{upgrade.title}}</span>
</div>
</div>
<div>
<div class="upgrade-condition-item" :class="upgrade.selected?'upgrade-condition-item-active':''"
v-for="(upgrade,upgradeIndex) in upgradeCondition" v-if="upgradeIndex>14" @click="selectCondition(upgradeIndex)">
<img class="active-icon" v-if="upgrade.selected"
src="/assets/addons/shopro/img/goods/active.png">
<span>{{upgrade.title}}</span>
</div>
</div>
</div>
</el-form-item>
<el-form-item :label="upgrade.title+':'" v-if="upgrade.selected"
v-for="(upgrade,uindex) in upgradeCondition" :prop="upgrade.key">
<div class="display-flex"
v-if="upgrade.key!='child_agent_level' && upgrade.key!='child_agent_level_1'">
<div class="commission-rate">
<el-input v-model="upgrade.value" type="number" size="small">
<template slot="append"
v-if="upgrade.key=='total_consume' || upgrade.key=='child_order_money' || upgrade.key=='child_order_money_1' || upgrade.key=='child_order_money_2' || upgrade.key=='order_money'">元</template>
<template slot="append"
v-if="upgrade.key=='child_agent_count' || upgrade.key=='child_agent_count_1' || upgrade.key=='child_agent_count_2' || upgrade.key=='child_user_count' || upgrade.key=='child_user_count_1' || upgrade.key=='child_user_count_2'">人</template>
<template slot="append"
v-if="upgrade.key=='order_count' || upgrade.key=='child_order_count_1' || upgrade.key=='child_order_count_2' || upgrade.key=='child_order_count'">单</template>
</el-input>
</div>
<i class="condition-delete el-icon-circle-close" @click="conditionDelete(uindex)"></i>
</div>
<div
v-if="upgrade.key=='child_agent_level' || upgrade.key=='child_agent_level_1'">
<div>
<div class="display-flex child-agent-count-item" v-for="(countItem,cindex) in upgrade.value">
<div class="child-agent-count-select">
<el-select v-model="countItem.level" placeholder="请选择分销商等级" no-data-text="等级已选择完毕" size="small">
<el-option v-for="item in levelOptions" :key="item.level"
:label="item.name+'(等级'+item.level+')'" :value="item.level"
v-if="Number(item.level)<=Number(formData.level) && Number(item.level)!=Number(editId)">
</el-option>
</el-select>
</div>
<div class="child-agent-count-man">满</div>
<div class="child-agent-count-input">
<el-input v-model="countItem.count" type="number" size="small">
<template slot="append">人</template>
</el-input>
</div>
<i class="condition-delete el-icon-circle-close" @click="childAgentCountDelete(uindex,cindex)"></i>
</div>
</div>
<div class="child-agent-count-add" @click="childAgentCountAdd(uindex)"
v-if="!formData.level || upgrade.value.length<selectLevelOptionsLength">
<i class="el-icon-plus"></i>添加</div>
</div>
</el-form-item>
</div>
</el-form>
<div class="shopro-submit-container">
<div class="shopro-submit-button" @click="formSubmit('formData')">确定</div>
</div>
<el-dialog title="提示" :visible.sync="deleteDialog" width="400" :before-close="deleteDialogClose">
<div class="display-flex" style="justify-content: space-between;">
<div>分销商移入其他等级</div>
<el-select v-model="moveLevel" placeholder="请选择" size="small">
<el-option v-for="item in levelOptions" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>
</div>
<span slot="footer" class="dialog-footer">
<el-button size="small" type="primary" @click="deleteDialogClose('define')">确 定</el-button>
</span>
</el-dialog>
</div>

查看文件

@@ -0,0 +1,84 @@
<link rel="stylesheet" href="__CDN__/assets/addons/shopro/libs/element/element.css">
<link rel="stylesheet" href="__CDN__/assets/addons/shopro/libs/common.css">
<style>
#indexPage {
background: #fff;
border-radius: 10px 10px 0px 0px;
padding-bottom: 30px;
}
.shopro-edit-text{
margin: 0;
}
[v-cloak] {
display: none
}
</style>
<script src="__CDN__/assets/addons/shopro/libs/vue.js"></script>
<script src="__CDN__/assets/addons/shopro/libs/element/element.js"></script>
<script src="__CDN__/assets/addons/shopro/libs/moment.js"></script>
<div id="indexPage" v-cloak v-loading="isAjax">
<div class="shopro-header-container">
分销商等级
</div>
<div class="shopro-index-button-container">
<div class="shopro-button shopro-refresh-button" @click="getindexList">
<i class="el-icon-refresh"></i>
</div>
<div class="shopro-add-button" @click="operation('create',null,null)">
<i class="el-icon-plus"></i>添加等级
</div>
</div>
<div class="shopro-table-container">
<el-table :data="indexList" style="width: 100%" stripe border :cell-class-name="tableCellClassName"
:header-cell-class-name="tableCellClassName">
<el-table-column prop="level" label="等级" width="120">
<template slot-scope="scope">
<div>
等级{{scope.row.level}}&nbsp;<span v-if="scope.row.level==1">(默认等级)</span>
</div>
</template>
</el-table-column>
<el-table-column label="等级名称" min-width="120">
<template slot-scope="scope">
<div class="ellipsis-item">
{{scope.row.name}}
</div>
</template>
</el-table-column>
<el-table-column label="等级徽章" min-width="120">
<template slot-scope="scope">
<div class="table-image">
<el-image :src="Fast.api.cdnurl(scope.row.image)" fit="contain">
<div slot="error" class="image-slot">
<i class="el-icon-picture-outline"></i>
</div>
</el-image>
</div>
</template>
</el-table-column>
<el-table-column label="一级(自购)佣金比例" min-width="160">
<template slot-scope="scope">
<div class="shopro-custom-cell-center">{{scope.row.commission_rules.commission_1}}%</div>
</template>
</el-table-column>
<el-table-column label="二级佣金比例" min-width="120">
<template slot-scope="scope">
<div class="shopro-custom-cell-center">{{scope.row.commission_rules.commission_2}}%</div>
</template>
</el-table-column>
<el-table-column label="三级佣金比例" min-width="120">
<template slot-scope="scope">
<div class="shopro-custom-cell-center">{{scope.row.commission_rules.commission_3}}%</div>
</template>
</el-table-column>
<el-table-column label="操作" fixed="right" min-width="120">
<template slot-scope="scope">
<div>
<span class="shopro-edit-text" @click="operation('edit',scope.row.level)">编辑</span>
</div>
</template>
</el-table-column>
</el-table>
</div>
</div>

查看文件

@@ -0,0 +1,344 @@
<link rel="stylesheet" href="__CDN__/assets/addons/shopro/libs/element/element.css">
<link rel="stylesheet" href="__CDN__/assets/addons/shopro/libs/common.css">
<style>
#indexPage {
font-family: Source Han Sans SC;
/* padding: 0 0 20px; */
/* background: #fff; */
border-radius: 10px 10px 0px 0px;
}
.shopro-screen-container {
padding-top: 16px;
background: #fff;
}
.shopro-table-container {
background: #fff;
margin-top: 10px;
padding: 20px 20px 30px;
}
.shopro-reset-button {
margin-right: 20px;
}
.title {
height: 58px;
line-height: 58px;
font-weight: 600;
font-size: 13px;
}
.btn-common {
width: 80px;
height: 30px;
line-height: 30px;
border-radius: 4px;
font-size: 13px;
text-align: center;
cursor: pointer;
display: inline-block;
}
.btn-box {
margin-bottom: 20px;
display: flex;
justify-content: space-between;
}
.create-btn {
background: #7536D0;
color: #fff;
width: 100px;
height: 32px;
line-height: 32px;
}
.operation-status {
color: #7438D5;
margin-right: 14px;
cursor: pointer;
}
.table-header-bgcolor th {
background-color: #f9f9f9 !important;
padding: 8px 0;
}
.table-header-bgcolor th .cell {
font-weight: 400;
color: #444;
}
/* 搜索 筛选 */
.screen-con {
display: flex;
}
.header-input-item {
margin-right: 30px;
margin-bottom: 14px;
width: 242px;
}
.header-input-item .header-input-tip {
margin-right: 14px;
}
.header-input-item .el-input {
width: 176px;
}
.multiple-set-acitve-1,
.multiple-set-acitve-2,
.multiple-set-acitve-3 {
cursor: pointer;
margin-right: 14px;
}
.multiple-set-acitve .multiple-set-acitve-1 {
color: #60CC9E;
}
.multiple-set-acitve .multiple-set-acitve-2 {
color: #ED655F;
}
.multiple-set-acitve .multiple-set-acitve-3 {
color: #7438D5
}
.shopro-pagination-container .shopro-edit-text {
color: inherit;
}
.shopro-refresh-button {
margin-bottom: 20px;
margin-right: 20px;
}
.el-checkbox__inner:focus {
border: none;
outline: none;
}
.el-table--border th:first-child .cell {
padding-left: 5px;
}
.activity-type {
justify-content: space-around;
width: 90px;
}
.activity-type-btn {
width: 40px;
height: 20px;
padding-top: 2px;
border-radius: 4px;
color: #fff;
justify-content: center;
}
.seckill-btn {
background: #FFF4F3;
border: 1px solid #FECAC4;
color: #FE9488;
}
.groupon-btn {
background: #F1EDFA;
border: 1px solid #CEBEEC;
color: #9C7EDA;
}
.score-btn {
background: #FDF5E8;
border: 1px solid #F8DCAE;
color: #F2BA5E;
}
.really-status-tip {
margin-right: 10px;
color: #444;
font-size: 12px;
}
.really-status-icon {
font-size: 20px;
color: #7C7C7C;
margin-right: 16px;
}
.el-popover--plain {
padding: 12px;
color: #444;
}
.nice-validator .el-input__inner {
vertical-align: baseline !important;
}
.active-cursor-line {
color: #7438D5;
cursor: pointer;
}
[v-cloak] {
display: none
}
</style>
<script src="__CDN__/assets/addons/shopro/libs/vue.js"></script>
<script src="__CDN__/assets/addons/shopro/libs/element/element.js"></script>
<script src="__CDN__/assets/addons/shopro/libs/moment.js"></script>
<div id="indexPage" v-cloak v-loading="isAjax">
<div class="shopro-screen-container">
<div class="shopro-button shopro-refresh-button" @click="getListData">
<i class="el-icon-refresh"></i>
</div>
<div class="display-flex shopro-screen-item">
<div class="really-status-tip">实时动态</div>
<el-popover placement="top" trigger="hover" content="开启后,该页面将实时刷新">
<i class="el-icon-question really-status-icon" slot="reference"></i>
</el-popover>
<el-switch @change="changeReallyStatus" v-model="really_status" active-value="1" inactive-value="0"
active-color="#7536D0" inactive-color="#eee">
</el-switch>
</div>
<div class="display-flex shopro-screen-item">
<el-input placeholder="请输入内容" v-model="searchForm.form_1_value" class="screen-item-select" size="small">
<el-select v-model="searchForm.form_1_key" slot="prepend" placeholder="请选择">
<el-option label="分销用户ID" value="agent_id"></el-option>
<el-option label="分销用户昵称" value="agent_nickname"></el-option>
<el-option label="分销用户手机号" value="agent_mobile"></el-option>
</el-select>
</el-input>
</div>
<div class="display-flex shopro-screen-item">
<div class="shopro-screen-tip">操作人类型</div>
<div class="shopro-screen-condition">
<el-select v-model="searchForm.oper_type" placeholder="请选择动态类型" size="small">
<el-option :label="type.label" :value="type.value" v-for="type in operTypeOptions">
</el-option>
</el-select>
</div>
</div>
<div class="display-flex shopro-screen-item"
v-if="searchForm.oper_type=='user' || searchForm.oper_type=='admin'">
<el-input placeholder="请输入内容" v-model="searchForm.form_2_value" class="screen-item-select" size="small">
<el-select v-model="searchForm.form_2_key" slot="prepend" placeholder="请选择">
<el-option label="操作人ID" value="oper_id"></el-option>
<el-option label="操作人昵称" value="oper_nickname"></el-option>
<el-option label="操作人手机号" value="oper_mobile" v-if="searchForm.oper_type=='user'"></el-option>
</el-select>
</el-input>
</div>
<div class="display-flex shopro-screen-item">
<div class="shopro-screen-tip">动态时间</div>
<div>
<el-date-picker v-model="searchForm.createtime" type="datetimerange" value-format="yyyy-MM-dd HH:mm:ss"
size="small" format="yyyy-MM-dd HH:mm:ss" range-separator="至" start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</div>
</div>
<div class="display-flex shopro-screen-item">
<div class="shopro-screen-tip">动态类型</div>
<div class="shopro-screen-condition">
<el-select v-model="searchForm.event" placeholder="请选择动态类型" size="small">
<el-option :label="log.name" :value="log.type" v-for="log in logOptions">
</el-option>
</el-select>
</div>
</div>
<div class="display-flex shopro-screen-item-button">
<div class="shopro-button shopro-reset-button" @click="screenEmpty">重置</div>
<div class="shopro-button shopro-screen-button" @click="pageCurrentChange(1)">筛选</div>
</div>
</div>
<div class="shopro-table-container">
<el-table :data="listData" style="width: 100%" border stripe="true" :cell-class-name="tableCellClassName"
:header-cell-class-name="tableCellClassName">
</el-table-column>
<el-table-column prop="id" label="ID" width="70">
</el-table-column>
<el-table-column prop="event_text" label="动态筛选" min-width="100">
</el-table-column>
<el-table-column label="分销商" width="160">
<template slot-scope="scope">
<el-popover placement="bottom" trigger="hover" width="180">
<div class="popover-container">
<div class="display-flex">
<div class="display-flex">
<div class="popover-tip">用户ID</div>:
</div>
<div class="active-cursor-line" @click="openAgentProfile(scope.row.agent_id)">
{{scope.row.agent.id}}
</div>
</div>
<div class="display-flex" v-if="scope.row.agent && scope.row.agent.mobile">
<div class="display-flex">
<div class="popover-tip">手机号</div>:
</div>
<div>{{scope.row.agent.mobile}}</div>
</div>
</div>
<div class="display-flex" slot="reference" v-if="scope.row.agent">
<div class="table-image">
<el-image :src="Fast.api.cdnurl(scope.row.agent.avatar)" fit="contain">
<div slot="error" class="image-slot">
<i class="el-icon-picture-outline"></i>
</div>
</el-image>
</div>
<div class="ellipsis-item">{{scope.row.agent.nickname}}</div>
</div>
</el-popover>
<div v-if="!scope.row.agent">-</div>
</template>
</el-table-column>
<el-table-column prop="remark" label="内容" width="400">
</el-table-column>
<el-table-column prop="oper_type_text" label="操作人类型" width="100">
</el-table-column>
<el-table-column label="操作人" width="160">
<template slot-scope="scope">
<div class="display-flex" v-if="scope.row.oper">
<div class="table-image">
<el-image :src="Fast.api.cdnurl(scope.row.oper.avatar)" fit="contain">
<div slot="error" class="image-slot">
<i class="el-icon-picture-outline"></i>
</div>
</el-image>
</div>
<div class="ellipsis-item">{{scope.row.oper.nickname}}</div>
</div>
<div v-if="!scope.row.oper">系统</div>
</template>
</el-table-column>
<el-table-column label="动态时间" width="160">
<template slot-scope="scope">
<div>
{{moment(scope.row.createtime*1000).format("YYYY-MM-DD HH:mm:ss")}}
</div>
</template>
</el-table-column>
<el-table-column label="操作" fixed="right" min-width="80">
<template slot-scope="scope">
<div class="operation-status">
<span v-if="['order','reward','share','agent','level'].includes(scope.row.event)"
@click="operation(scope.row.event,scope.row)">详情</span>
<span v-else>-</span>
</div>
</template>
</el-table-column>
</el-table>
<div class="shopro-pagination-container">
<el-pagination @size-change="pageSizeChange" @current-change="pageCurrentChange" :current-page="currentPage"
:page-sizes="[10, 20, 30, 40]" :page-size="limit" layout="total, sizes, prev, pager, next, jumper"
:total="totalPage">
</el-pagination>
</div>
</div>
</div>

文件差异内容过多而无法显示 加载差异

查看文件

@@ -0,0 +1,537 @@
<link rel="stylesheet" href="__CDN__/assets/addons/shopro/libs/element/element.css">
<link rel="stylesheet" href="__CDN__/assets/addons/shopro/libs/common.css">
<style>
.font-size-12 {
font-size: 12px;
}
.color-999 {
color: #999;
}
.color-22D38D {
color: #22D38D;
}
.margin-left-10 {
margin-left: 10px;
}
/* table */
.order-table {
padding: 20px 20px 30px;
margin-top: 10px;
background: #fff;
color: #444;
}
.screen-container {
background: #fff;
flex-wrap: wrap;
padding: 0 20px;
}
.screen-item {
width: 240px;
display: flex;
align-items: center;
margin: 14px 30px 10px 0;
}
.el-input-group__prepend {
width: 116px;
}
.screen-item-time {
width: 480px;
}
.screen-item-tip {
width: 60px;
margin-right: 14px;
}
.expand-container {
margin-bottom: 8px;
color: #444;
width: 100%;
border-left: 1px solid #e6e6e6;
}
.expand-item {
display: flex;
align-items: center;
width: 98px;
justify-content: center;
}
.expand-item>div {
padding: 0 10px;
}
.expand-item-goods {
width: 548px;
flex-direction: column;
/* padding: 0 22px 0 10px; */
}
.expand-item-goods-iamge {
width: 60px;
height: 60px;
margin-right: 10px;
border-radius: 2px;
border: 1px solid #E6E6E6;
}
.expand-item-height {
height: 80px;
width: 100%;
}
.expand-item-goods-container {
flex-direction: column;
justify-content: space-between;
height: 60px;
width: 100%;
align-items: flex-start;
}
.expand-item-goods-title {
line-height: 18px;
color: #444;
font-size: 13px;
}
.expand-item-goods-describe {
line-height: 12px;
color: #999;
}
.border-right {
border-right: 1px solid #E6E6E6;
}
.border-bottom {
border-bottom: 1px solid #E6E6E6;
}
.expand-item-commissin-user {
width: 110px;
}
.expand-item-commission-describe {
width: 294px;
}
.expand-item-commission-describe-image {
width: 36px;
height: 36px;
border-radius: 50%;
overflow: hidden;
margin-bottom: 8px;
}
.expand-item-commission-container {
justify-content: center;
}
.expand-item-commission-describe-item {
/* margin-right: ; */
margin-right: 20px;
}
.expand-item-commission-describe-item:last-of-type {
margin: 0;
}
.expand-item-commission-time {
width: 160px;
}
.expand-item-buyer {
width: 140px;
}
.expand-item-commission-money {
width: 120px;
}
.shopro-reset-button {
margin-right: 20px;
}
.display-flex-center {
display: flex;
align-items: center;
justify-content: center;
}
.font-weight {
font-weight: 500;
}
.table-image {
border-radius: 15px;
width: 30px;
height: 30px;
overflow: hidden;
border: 1px solid #e6e6e6;
}
.cursor-pointer {
cursor: pointer;
}
.popover-container>div {
margin-bottom: 12px;
}
.popover-container>div:last-of-type {
margin-bottom: 0;
}
.table-dashboard-item-container {
width: 20%;
}
.table-dashboard-item {
min-height: 46px;
box-shadow: 0px 2px 10px rgba(0, 0, 0, 0.1);
border-radius: 2px;
margin: 0 5px 14px;
display: flex;
align-items: center;
font-size: 12px;
color: #58575A;
line-height: 16px;
flex-wrap: wrap;
}
.table-dashboard-item-tip {
width: 138px;
/* text-align: center; */
padding-left: 20px;
height: 46px;
line-height: 46px;
}
.table-dashboard-item-form {
display: flex;
justify-content: center;
align-items: flex-end;
flex: 1;
height: 46px;
line-height: 46px;
min-width: 170px;
}
.table-dashboard-item-unit {
margin-left: 4px;
line-height: 40px;
}
.table-dashboard-item-num {
font-size: 20px;
/* line-height: 20px; */
}
.el-table td .cell {
height: 60px;
display: flex;
align-items: center;
}
.table-dashboard-item-dot {
width: 8px;
height: 8px;
background: #8644F2;
border-radius: 50%;
margin-right: 10px;
display: inline-block;
}
.dot-2 {
background: #E6A93C;
}
.dot-3 {
background: #687FF4;
}
.dot-4 {
background: #F08972;
}
.dot-5 {
background: #EC5B55;
}
.color-ED655F {
color: #ED655F;
}
.table-dashboard-container {
display: flex;
align-items: center;
flex-wrap: wrap;
}
.nice-validator .el-input__inner {
vertical-align: baseline !important;
}
.commission-avatar {
width: 36px;
height: 36px;
border: 1px solid #E6E6E6;
border-radius: 50%;
overflow: hidden;
}
.commission-nickname {
justify-content: center;
cursor: pointer;
color: #8644F2;
}
.commission-order-sn {
cursor: pointer;
color: #8644F2;
}
.table-user-container {
flex-direction: column;
}
[v-cloak] {
display: none
}
</style>
<script src="__CDN__/assets/addons/shopro/libs/vue.js"></script>
<script src="__CDN__/assets/addons/shopro/libs/element/element.js"></script>
<script src="__CDN__/assets/addons/shopro/libs/moment.js"></script>
<div id="orderIndex" v-cloak>
<div class="screen-container display-flex" v-if="!searchForm.id">
<div class="shopro-button shopro-refresh-button" @click="reqOrderList">
<i class="el-icon-refresh"></i>
</div>
<div class="screen-item">
<el-input placeholder="请输入内容" v-model="searchForm.form_1_value" class="screen-item-select" size="small">
<el-select v-model="searchForm.form_1_key" slot="prepend" placeholder="请选择">
<el-option label="下单用户ID" value="buyer_id"></el-option>
<el-option label="下单用户昵称" value="buyer_nickname"></el-option>
<el-option label="下单用户手机号" value="buyer_mobile"></el-option>
</el-select>
</el-input>
</div>
<div class="screen-item">
<el-input placeholder="请输入内容" v-model="searchForm.form_2_value" class="screen-item-select" size="small">
<el-select v-model="searchForm.form_2_key" slot="prepend" placeholder="请选择">
<el-option label="分销用户ID" value="agent_id"></el-option>
<el-option label="分销用户昵称" value="agent_nickname"></el-option>
<el-option label="分销用户手机号" value="agent_mobile"></el-option>
</el-select>
</el-input>
</div>
<div class="screen-item">
<div class="screen-item-tip">订单号</div>
<el-input placeholder="请输入订单号" v-model="searchForm.order_sn" class="screen-item-input" size="small">
</el-input>
</div>
<div class="screen-item">
<div class="screen-item-tip">入账状态</div>
<el-select v-model="searchForm.status" placeholder="请选择分佣状态" size="small">
<el-option :label="sitem.label" :value="sitem.value" v-for="sitem in searchStatusOption">
</el-option>
</el-select>
</div>
<div class="screen-item screen-item-time">
<div class="screen-item-tip">分佣时间</div>
<div>
<el-date-picker v-model="searchForm.createtime" type="datetimerange" value-format="yyyy-MM-dd HH:mm:ss"
size="small" format="yyyy-MM-dd HH:mm:ss" range-separator="至" start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</div>
</div>
<div class="screen-item shopro-screen-item-button">
<div class="shopro-button shopro-reset-button" @click="screenEmpty">重置</div>
<div class="shopro-button shopro-screen-button" @click="handleCurrentChange(1)">筛选</div>
</div>
</div>
<div class="order-table" v-loading="isAjax">
<div class="table-dashboard-container">
<div class="table-dashboard-item-container">
<div class="table-dashboard-item">
<div class="table-dashboard-item-tip">
<span class="table-dashboard-item-dot"></span>
佣金单数:
</div>
<div class="table-dashboard-item-form">
<span class="table-dashboard-item-num">{{dashboard.total}}</span>
<span class="table-dashboard-item-unit">单</span>
</div>
</div>
</div>
<div class="table-dashboard-item-container">
<div class="table-dashboard-item">
<div class="table-dashboard-item-tip">
<span class="table-dashboard-item-dot dot-2"></span>
累计佣金:
</div>
<div class="table-dashboard-item-form">
<span class="table-dashboard-item-num">{{dashboard.commission_total}}</span>
<span class="table-dashboard-item-unit">元</span>
</div>
</div>
</div>
<div class="table-dashboard-item-container">
<div class="table-dashboard-item">
<div class="table-dashboard-item-tip">
<span class="table-dashboard-item-dot dot-3"></span>
已到账佣金:
</div>
<div class="table-dashboard-item-form">
<span class="table-dashboard-item-num">{{dashboard.commissioned_total}}</span>
<span class="table-dashboard-item-unit">元</span>
</div>
</div>
</div>
<div class="table-dashboard-item-container">
<div class="table-dashboard-item">
<div class="table-dashboard-item-tip">
<span class="table-dashboard-item-dot dot-4"></span>
待入账佣金:
</div>
<div class="table-dashboard-item-form">
<span class="table-dashboard-item-num">{{dashboard.delay_total}}</span>
<span class="table-dashboard-item-unit">元</span>
</div>
</div>
</div>
<div class="table-dashboard-item-container">
<div class="table-dashboard-item">
<div class="table-dashboard-item-tip">
<span class="table-dashboard-item-dot dot-5"></span>
已退回佣金:
</div>
<div class="table-dashboard-item-form">
<span class="table-dashboard-item-num">{{dashboard.commission_back_total}}</span>
<span class="table-dashboard-item-unit">元</span>
</div>
</div>
</div>
</div>
<div>
<el-table :data="orderList" style="width: 100%" ref="multipleTable" tooltip-effect="dark" border stripe
default-expand-all="true" @selection-change="handleSelectionChange">
<el-table-column width="70" label="ID">
<template slot-scope="scope">
{{scope.row.order.id}}
</template>
</el-table-column>
<el-table-column width="220" label="订单号">
<template slot-scope="scope">
<span class="commission-order-sn"
@click="openCommissonOrder(scope.row.order)">{{scope.row.order.order_sn}}</span>
</template>
</el-table-column>
<el-table-column min-width="160" label="下单用户">
<template slot-scope="scope">
<el-popover placement="bottom" trigger="hover" width="180">
<div v-if="scope.row.buyer" class="popover-container">
<div class="display-flex">
<div class="display-flex">
<div class="popover-tip">用户ID</div>:
</div>
<div class="active-cursor-line">
{{scope.row.buyer.id}}
</div>
</div>
<div class="display-flex" v-if="scope.row.buyer && scope.row.buyer.mobile">
<div class="display-flex">
<div class="popover-tip">手机号</div>:
</div>
<div>{{scope.row.buyer.mobile}}</div>
</div>
</div>
<div v-if="scope.row.buyer" slot="reference" class="table-user-container display-flex">
<div class="commission-avatar">
<el-image :src="Fast.api.cdnurl(scope.row.buyer.avatar)" fit="contain">
<div slot="error" class="image-slot">
<i class="el-icon-picture-outline"></i>
</div>
</el-image>
</div>
<div class="ellipsis-item commission-nickname">{{scope.row.buyer.nickname}}</div>
</div>
</el-popover>
<span v-if="!scope.row.buyer">-</span>
</template>
</el-table-column>
<el-table-column min-width="160" label="分销用户">
<template slot-scope="scope">
<el-popover placement="bottom" trigger="hover" width="180">
<div v-if="scope.row.agent" class="popover-container">
<div class="display-flex">
<div class="display-flex">
<div class="popover-tip">用户ID</div>:
</div>
<div class="active-cursor-line">
{{scope.row.agent.id}}
</div>
</div>
<div class="display-flex" v-if="scope.row.agent && scope.row.agent.mobile">
<div class="display-flex">
<div class="popover-tip">手机号</div>:
</div>
<div>{{scope.row.agent.mobile}}</div>
</div>
</div>
<div v-if="scope.row.agent" class="table-user-container display-flex" slot="reference">
<div class="commission-avatar">
<el-image :src="Fast.api.cdnurl(scope.row.agent.avatar)" fit="contain">
<div slot="error" class="image-slot">
<i class="el-icon-picture-outline"></i>
</div>
</el-image>
</div>
<div class="ellipsis-item commission-nickname"
@click="operation('edit',scope.row.agent.id)">
{{scope.row.agent.nickname}}
</div>
</div>
</el-popover>
<span v-if="!scope.row.agent">-</span>
</template>
</el-table-column>
<el-table-column min-width="90" prop="commission" label="分佣金额">
<template slot-scope="scope">
<div class="ellipsis-item">{{scope.row.commission}}元</div>
</template>
</el-table-column>
<el-table-column width="90" label="入账状态">
<template slot-scope="scope">
<div class="display-flex" :class="rewardStatusClass(scope.row.status)">
<span class="shopro-status-dot"></span>
<span>{{scope.row.status_text}}</span>
</div>
</template>
</el-table-column>
<el-table-column width="90" prop="type_text" label="入账方式">
</el-table-column>
<el-table-column min-width="160" label="分佣时间">
<template slot-scope="scope">
{{moment(scope.row.createtime*1000).format('YYYY-MM-DD HH:mm:ss')}}
</template>
</el-table-column>
</el-table>
</div>
<div class="shopro-pagination-container">
<el-pagination @size-change="handleSizeChange" @current-change="handleCurrentChange"
:current-page="currentPage" :page-sizes="[10, 20, 30, 40]" :page-size="limit"
layout="total, sizes, prev, pager, next, jumper" :total="totalPage">
</el-pagination>
</div>
</div>
</div>