From b02836d6cdcc2092eb6a864f52c90379e4d171b9 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Thu, 25 Mar 2021 11:28:46 +0800
Subject: [PATCH] Merge branch 'score_shop' of http://120.27.238.55:7000/r/beauty-erp into score_shop
---
zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-user.html | 615 ++++++++++++++++++++++++++++++++++++++++++++++---------
1 files changed, 508 insertions(+), 107 deletions(-)
diff --git a/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-user.html b/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-user.html
index ba2d9d7..b71fa3c 100644
--- a/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-user.html
+++ b/zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-user.html
@@ -23,25 +23,51 @@
<script type="text/javascript" charset="utf-8"
th:src="@{/plugin/beditor/lang/zh-cn/zh-cn.js}"></script>
<style>
+ .panel-body{
+ overflow: hidden;
+ }
.paginationStyle{
background: #ffffff;
padding: 10px 10px;
margin: 0px 0px 10px 0px;
text-align: right;
}
+ .avatar-uploader .el-upload {
+ border: 1px dashed #d9d9d9;
+ border-radius: 6px;
+ cursor: pointer;
+ position: relative;
+ overflow: hidden;
+ }
+ .avatar-uploader .el-upload:hover {
+ border-color: #409EFF;
+ }
+ .avatar-uploader-icon {
+ font-size: 28px;
+ color: #8c939d;
+ width: 178px;
+ height: 178px;
+ line-height: 178px;
+ text-align: center;
+ }
+ .avatar {
+ width: 178px;
+ height: 178px;
+ display: block;
+ }
</style>
</head>
<body>
-<div class="ibox-content" id="app" v-cloak>
+<div class="panel-body" id="app" v-cloak>
<el-row>
<el-tabs v-model="activeName" >
<el-tab-pane label="分销员管理" name="first">
- <el-row style="display:flex;align-items: center;">
- <el-col>
+ <el-row >
+ <el-col :span="6" style="display:flex;align-items: center;">
<el-button type="primary" @click="addSaleMan()">新增分销员</el-button>
</el-col>
- <el-col>
+ <el-col :span="12" style="display: flex;align-items: center;">
<el-form ref="form" :model="form" inline >
<el-form-item label="审核状态" prop="shenheState">
<el-select v-model="form.shenheState" placeholder="请选择">
@@ -54,34 +80,99 @@
</el-option>
</el-select>
</el-form-item>
- <el-button type="primary" @click="search" >搜索</el-button>
- <el-button @click="resetForm('form')">重置</el-button>
+ <el-form-item label="分销员等级" prop="salemanGrade">
+ <el-select v-model="form.salemanGrade" placeholder="请选择" filterable allow-create>
+ <el-option v-for="item in salemanGradeList " :key="item.id" :label="item.name" :value="item.id">
+ </el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item prop="userName">
+ <el-input v-model="form.userName" placeholder="请输入会员姓名"></el-input>
+ </el-form-item>
</el-form>
</el-col>
+ <el-col :span="6" style="display:flex;align-items: center;">
+ <el-button type="primary" @click="search" >搜索</el-button>
+ <el-button @click="resetForm('form')">重置</el-button>
+ </el-col>
</el-row>
- <el-row>
- <template>
- <el-table id="proj" :data="fxyList.rows" :height="height" stripe @sort-change="sortChange">
+ <el-row class="table-style" >
+ <el-table id="proj" :data="fxyList.rows" :height="height" stripe:true @sort-change="sortChange">
<el-table-column
- type="selection"
- width="55">
+ type="selection">
</el-table-column>
<el-table-column
- prop="userId"
- label="id"
- width="180">
- </el-table-column>
- <el-table-column
- fixed="right"
- label="操作"
- width="100">
+ label="分销员"
+ show-overflow-tooltip
+ width="150">
<template slot-scope="scope">
- <el-button @click="handleClick(scope.row)" type="text" size="small">查看</el-button>
- <el-button type="text" size="small">编辑</el-button>
+ <img :src="scope.row.avatarUrl" width="40" height="40" class="head_pic"/>
+ {{scope.row.nickname}}
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="parentUserNow"
+ label="当前上级">
+ </el-table-column>
+ <el-table-column
+ prop="lowerLevelNum"
+ label="推广客户">
+ </el-table-column>
+ <el-table-column
+ prop="invitedNum"
+ label="邀请下级">
+ </el-table-column>
+ <el-table-column
+ prop="totalRevenue"
+ label="累计收益">
+ </el-table-column>
+ <el-table-column
+ prop="balance"
+ label="待结算">
+ </el-table-column>
+ <el-table-column
+ prop="grade"
+ label="等级">
+ </el-table-column>
+ <el-table-column
+ prop="createTime"
+ label="加入时间"
+ show-overflow-tooltip
+ :formatter="formatDate">
+ </el-table-column>
+ <el-table-column
+ label="状态">
+ <template slot-scope="scope">
+ <span v-if="scope.row.applyStatus == 1">待审核</span>
+ <span v-if="scope.row.applyStatus == 2">通过</span>
+ <span v-if="scope.row.applyStatus == 3">未通过</span>
+ <span v-if="scope.row.applyStatus == 4">系统删除</span>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="parentUser"
+ label="注册邀请人">
+ </el-table-column>
+ <el-table-column
+ label="来源">
+ <template slot-scope="scope">
+ <span v-if="scope.row.applyWay == 1">自主申请</span>
+ <span v-if="scope.row.applyWay == 2">自动添加</span>
+ <span v-if="scope.row.applyWay == 3">上级邀请</span>
+ <span v-if="scope.row.applyWay == 4">手动添加</span>
+ </template>
+ </el-table-column>
+ <el-table-column label="操作" width="240">
+ <template slot-scope="scope">
+ <el-row style="display:flex;">
+ <el-button type="primary" v-if="scope.row.applyStatus == 1" size="mini" @click="openExamineSaleManApply(scope.row)">审核</el-button>
+ <el-button type="primary" v-if="scope.row.applyStatus == 2" size="mini" @click="openUpdateSaleManGrade(scope.row)">修改等级</el-button>
+ <el-button type="primary" size="mini" @click="openUpdateSaleManGrade(scope.row)">详情</el-button>
+ <el-button type="danger" v-if="scope.row.applyStatus == 2" size="mini" @click="delSaleManGradeApply(scope.row)">删除</el-button>
+ </el-row>
</template>
</el-table-column>
</el-table>
- </template>
</el-row>
<el-row class="paginationStyle" >
<el-pagination background
@@ -95,74 +186,99 @@
</el-pagination>
</el-row>
</el-tab-pane>
+
<el-tab-pane label="分佣方案" name="second">
- <template>
- <el-table
- :data="tableData"
- style="width: 100%"
- height="250">
+ <el-row class="table-style" >
+ <el-table id="proj" :data="fyfaList.rows" :height="height">
<el-table-column
prop="name"
- label="方案名称"
- width="180">
+ label="方案名称">
+ <template slot-scope="scope">
+ <el-input class="edit-input" v-model="scope.row.name" placeholder="方案名称"></el-input>
+ </template>
</el-table-column>
<el-table-column
- prop="name"
- label="推广提成%"
- width="180">
+ prop="sealesCommission"
+ label="自购返佣 %">
+ <template slot-scope="scope">
+ <el-input class="edit-input" v-model="scope.row.selfCommission" oninput ="value=value.replace(/[^0-9.]/g,'')" placeholder="自购返佣"></el-input>
+ </template>
</el-table-column>
<el-table-column
- prop="name"
- label="邀请提成 %"
- width="180">
+ prop="sealesCommission"
+ label="推广提成 %">
+ <template slot-scope="scope">
+ <el-input class="edit-input" v-model="scope.row.sealesCommission" oninput ="value=value.replace(/[^0-9.]/g,'')" placeholder="推广提成"></el-input>
+ </template>
</el-table-column>
<el-table-column
- prop="name"
- label="等级条件(推广金额额)"
- width="180">
+ prop="invitationCommission"
+ label="邀请提成 %">
+ <template slot-scope="scope">
+ <el-input class="edit-input" v-model="scope.row.invitationCommission" oninput ="value=value.replace(/[^0-9.]/g,'')" placeholder="邀请提成"></el-input>
+ </template>
</el-table-column>
<el-table-column
- fixed="right"
- label="操作"
- width="100">
- <template slot-scope="scope">
- <el-button @click="handleClick(scope.row)" type="text" size="small">查看</el-button>
- <el-button type="text" size="small">编辑</el-button>
- </template>
- </el-table-column>
+ prop="gradeCondition"
+ label="等级条件(推广金额)">
+ <template slot-scope="scope">
+ <el-input class="edit-input" v-model="scope.row.gradeCondition" oninput ="value=value.replace(/[^0-9.]/g,'')" placeholder="等级条件(推广金额)"></el-input>
+ </template>
+ </el-table-column>
+ <el-table-column label="操作" width="240">
+ <template slot-scope="scope">
+ <el-row style="display:flex;">
+ <el-button type="primary" v-if="scope.row.isDefault == 1" size="mini" @click="addFyfaReady()">新增</el-button>
+ <el-button type="primary" size="mini" @click="updateFyfa(scope.row)">保存</el-button>
+ <el-button type="danger" v-if="scope.row.isDefault == 2" size="mini" @click="delFyfa(scope.row)">删除</el-button>
+ </el-row>
+ </template>
+ </el-table-column>
</el-table>
- </template>
+ </el-row>
+ <el-row class="paginationStyle" >
+ <el-pagination background
+ @size-change="changePageSizelow"
+ @current-change="changeCurrentPagelow"
+ :current-page="fyfaList.currentPage"
+ :page-sizes="[10, 20, 30, 50]"
+ :page-size="fyfaList.pageSize"
+ layout="total, sizes, prev, pager, next, jumper"
+ :total="fyfaList.total">
+ </el-pagination>
+ </el-row>
</el-tab-pane>
+
<el-tab-pane label="推广文案" name="third">
- <el-row>
- <script style="width: 100%; height: 500px" id="description" name="description"
- type="text/plain"></script>
+ <p class="el-big-title">文案描述</p>
+ <el-row justify="center" type="flex">
+ <script style="height: 400px;width: 375px;" id="description" name="description"
+ type="text/plain">
+ </script>
</el-row>
<el-row justify="center" type="flex">
- <el-button type="primary" @click="submit()">保存</el-button>
+ <el-button type="primary" size="mini" @click="wamsSubmit()">保存</el-button>
</el-row>
</el-tab-pane>
- <el-tab-pane label="分享图片上传" name="fourth">
- <el-row>
- <div class="ibox-content">
- <form class="form-horizontal" id="dataform"
- onsubmit="javascripr:return false;">
- <div class="form-group">
- <label class="col-sm-2 control-label">门店照片</label>
- <div class="col-sm-8">
- <input autocomplete="off" v-model="fxtp.paramValue" name="shopImag" id="info6"
- class="form-control upload-input" type="text" /> <a
- class="btn btn-primary radius upload-a">选择图片
- </a>
- </div>
- </div>
- <el-row justify="center" type="flex">
- <el-button type="primary" @click="submittp(paramValue)">保存</el-button>
- </el-row>
- </form>
- </div>
+
+ <el-tab-pane label="推广图片" name="fourth">
+ <p class="el-big-title">上传图片</p>
+ <el-row justify="center" type="flex">
+ <el-upload
+ class="avatar-uploader"
+ action="/admin/multipleUploadFile/doUpload"
+ :show-file-list="false"
+ :on-success="handleAvatarSuccess"
+ :before-upload="beforeAvatarUpload">
+ <img v-if="imageUrl" :src="imageUrl" class="avatar">
+ <i v-else class="el-icon-plus avatar-uploader-icon"></i>
+ </el-upload>
+ </el-row>
+ <el-row justify="center" type="flex">
+ <el-button type="primary" size="mini" @click="tgtpSubmit()">保存</el-button>
</el-row>
</el-tab-pane>
+
</el-tabs>
</el-row>
</div>
@@ -179,24 +295,33 @@
<script>
//百度编辑器
- MUI.initImgUpload(".upload-input");
- var ue = {};
+ var ue = {
+ initialFrameWidth :750
+ };
var app = new Vue({
el: '#app',
data: {
- fxy:[],
- fenxiaoGrade: "",
- tableData:[],
- tgwa: "",
+ height:'calc(100vh - 240px)',
activeName: 'first',
- multipleSelection: [],
- jfyxq:[],
- fxtp:{},
- jfdxj:[],
- mdjf:[],
- scjf:[],
+ fenxiaoGrade: "",
+ //推广文案
+ tgwa: {},
+ //图片上传
+ imageUrl: '',
+ //分佣方案
+ fyfaList:{
+ rows:[],
+ total:0,
+ pageSize:10,
+ currentPage:1,
+ },
+ //分销员管理
+ shenheAgreeType : 2,
+ shenheDisagreeType : 3,
form:{
shenheState:'',
+ salemanGrade:'',
+ userName:'',
order:'',
sort:''
},
@@ -207,22 +332,20 @@
{value:2,label:'通过'},
{value:3,label:'未通过'}
],
+ //条件查询分销员等级
+ salemanGradeList:[],
fxyList:{
rows:[],
total:0,
pageSize:10,
currentPage:1,
},
- height:'calc(100vh - 240px)',
},
-
created: function () {
this.loadInfo();
window.addEventListener("keydown", this.keydown);
//初始化编辑器
ue = UE.getEditor('description');
- //百度编辑器
- MUI.initImgUpload(".upload-input");
},
mounted: function () {
},
@@ -231,25 +354,194 @@
loadInfo() {
let _this = this;
_this.loadParamSetting();
+ _this.loadFyfaSetting();
+ _this.loadTgwaSetting();
+ _this.loadTgtpSetting();
+ _this.getSalemanGradeList();
},
- submittp(paramValue) {
- alert(paramValue);
+ //推广文案
+ loadTgwaSetting() {
+ let _this = this;
+ AjaxProxy.requst({
+ app: _this,
+ data:[],
+ url: basePath + '/fenXiao/fenXiaoUser/loadTgwaSetting',
+ callback: function (data) {
+ _this.tgwa = data.mapInfo.tgwa;
+ var ue = UE.getEditor('description');
+ ue.ready(function() {//编辑器初始化完成再赋值
+ ue.setContent(_this.tgwa.paramValue3); //赋值给UEditor
+ });
+ }
+ });
},
- toggleSelection(rows) {
- if (rows) {
- rows.forEach(row => {
- this.$refs.multipleTable.toggleRowSelection(row);
- });
- } else {
- this.$refs.multipleTable.clearSelection();
+ wamsSubmit(){
+ let _this = this;
+ let tgfa = ue.getContent();
+ let data= {
+ tgfa:tgfa,
+ };
+ AjaxProxy.requst({
+ app: _this,
+ data:data,
+ url: basePath + '/fenXiao/fenXiaoUser/updateTgjh',
+ callback: function (data) {
+ _this.$message.success(data.info);
+ _this.loadTgwaSetting();
+ }
+ });
+ },
+ //图片上传
+ loadTgtpSetting() {
+ let _this = this;
+ AjaxProxy.requst({
+ app: _this,
+ data:[],
+ url: basePath + '/fenXiao/fenXiaoUser/loadTgtpSetting',
+ callback: function (data) {
+ _this.imageUrl = data.mapInfo.tgtp.paramValue;
+ }
+ });
+ },
+ tgtpSubmit(){
+ let _this = this;
+ let imageUrl = _this.imageUrl;
+ let data= {
+ imageUrl:imageUrl,
+ };
+ AjaxProxy.requst({
+ app: _this,
+ data:data,
+ url: basePath + '/fenXiao/fenXiaoUser/updateTgtp',
+ callback: function (data) {
+ _this.$message.success(data.info);
+ _this.loadTgtpSetting();
+ }
+ });
+ },
+ handleAvatarSuccess(res, file) {
+ this.imageUrl = res.path;
+ },
+ beforeAvatarUpload(file) {
+ const isJPG = file.type === 'image/jpeg';
+ const isLt2M = file.size / 1024 / 1024 < 2;
+
+ if (!isJPG) {
+ this.$message.error('上传头像图片只能是 JPG 格式!');
}
+ if (!isLt2M) {
+ this.$message.error('上传头像图片大小不能超过 2MB!');
+ }
+ return isJPG && isLt2M;
},
- handleSelectionChange(val) {
- this.multipleSelection = val;
+ //分佣方案
+ loadFyfaSetting() {
+ let _this = this;
+ let data=_this.getRequestParam();
+ data.pageSize=_this.fyfaList.pageSize;
+ data.pageNum=_this.fyfaList.currentPage;
+ AjaxProxy.requst({
+ app: _this,
+ data:data,
+ url: basePath + '/fenXiao/fenXiaoUser/findFyfaManageList',
+ callback: function (data) {
+ _this.fyfaList.rows = data.rows;
+ _this.fyfaList.total = data.total;
+ }
+ });
},
- handleClick(row) {
- console.log(row);
+ changePageSizelow(val) {
+ this.fyfaList.pageSize = val;
+ this.loadFyfaSetting();
},
+ changeCurrentPagelow(val) {
+ this.fyfaList.currentPage = val;
+ this.loadFyfaSetting();
+ },
+ //新增
+ addFyfaReady(){
+ let _this = this;
+ let fyfaReady = {};
+ _this.fyfaList.rows.push(fyfaReady);
+ },
+ // addFyfa(){
+ // let _this = this;
+ // AjaxProxy.requst({
+ // app: _this,
+ // data:[],
+ // url: basePath + '/fenXiao/fenXiaoUser/addFyfa',
+ // callback: function (data) {
+ // _this.$message.success(data.info);
+ // _this.loadFyfaSetting();
+ // }
+ // });
+ // },
+ updateFyfa(row){
+ let _this = this;
+ let id = row.id;
+ let name = row.name;
+ let sealesCommission = row.sealesCommission;
+ let selfCommission = row.selfCommission;
+ let invitationCommission = row.invitationCommission;
+ let gradeCondition = row.gradeCondition;
+ let obj = {
+ id: id,
+ name: name,
+ sealesCommission: sealesCommission,
+ selfCommission: selfCommission,
+ invitationCommission: invitationCommission,
+ gradeCondition: gradeCondition,
+ }
+ AjaxProxy.requst({
+ app: _this,
+ data:obj,
+ url: basePath + '/fenXiao/fenXiaoUser/updateFyfa',
+ callback: function (data) {
+ _this.$message.success(data.info);
+ _this.loadFyfaSetting();
+ }
+ });
+ },
+ //删除
+ delFyfa(row){
+ let _this = this;
+ _this.$confirm('是否删除?', '删除', {
+ distinguishCancelAndClose: true,//设置关闭按钮和不通过按钮的区别
+ confirmButtonText: '确认',
+ cancelButtonText: '取消',
+ type: 'info'
+ }).then(() => {
+ //通过
+ _this.delFyfaApply(row);
+
+ }).catch(action => {
+ //不通过
+ if(action === 'cancel'){
+ console.log("cancel");
+ }else{
+ //关闭按钮
+ console.log("close");
+ //this.$message({type: 'info',message: ''})
+ }
+ });
+ },
+ delFyfaApply(row){
+ let _this = this;
+ let id = row.id;
+ let obj = {
+ gradeId: id,
+ }
+ AjaxProxy.requst({
+ app: _this,
+ data:obj,
+ url: basePath + '/fenXiao/fenXiaoUser/delFyfaApply',
+ callback: function (data) {
+ _this.$message.success(data.info);
+ _this.loadFyfaSetting();
+ }
+ });
+ },
+ //分销员管理
loadParamSetting() {
let _this = this;
let data=_this.getRequestParam();
@@ -265,17 +557,31 @@
}
});
},
+ // 下拉框数据源---分销员等级
+ getSalemanGradeList() {
+ let _this = this;
+ AjaxProxy.requst({
+ app: _this,
+ data:[],
+ url: basePath + '/fenXiao/fenXiaoUser/getShopSalesmanGrade',
+ callback: function (data) {
+ _this.salemanGradeList = data.mapInfo.salesGrade;
+ }
+ });
+ },
getRequestParam(){
let _this = this;
return {
shenheState:_this.form.shenheState,
+ salemanGrade:_this.form.salemanGrade,
+ userName:_this.form.userName,
order:_this.form.order,
sort:_this.form.sort,
}
},
search:function(){
this.fxyList.currentPage=1;
- this.loadInfo();
+ this.loadParamSetting();
},
keydown(evt){
if(evt.keyCode==13) {
@@ -293,16 +599,25 @@
this.form.order="asc";
}
this.form.sort=column.prop;
- this.loadInfo();
+ this.loadParamSetting();
}
},
changePageSize(val) {
- this.table.pageSize = val;
- this.loadData();
+ this.fxyList.pageSize = val;
+ this.loadParamSetting();
},
changeCurrentPage(val) {
- this.table.currentPage = val;
- this.loadData();
+ this.fxyList.currentPage = val;
+ this.loadParamSetting();
+ },
+ //时间格式化
+ formatDate(row,column){
+ let data = row[column.property]
+ if (data ===null) {
+ return ''
+ }
+ let dt = new Date(data)
+ return dt.getFullYear() + '-' + (dt.getMonth() + 1) + '-' + dt.getDate() + ' ' + dt.getHours() + ':' + dt.getMinutes()
},
//新增分销员页面
addSaleMan(){
@@ -314,8 +629,94 @@
content : [ basePath + '/admin/redirect/fenxiao/fenxiao-apply']
}));
},
-
- submit() {
+ //删除
+ delSaleManGradeApply(row){
+ this.$confirm('是否删除?', '删除', {
+ distinguishCancelAndClose: true,//设置关闭按钮和不通过按钮的区别
+ confirmButtonText: '确认',
+ cancelButtonText: '取消',
+ type: 'info'
+ }).then(() => {
+ //通过
+ this.examineDelSaleManGradeApply(row);
+ }).catch(action => {
+ //不通过
+ if(action === 'cancel'){
+ console.log("cancel");
+ }else{
+ //关闭按钮
+ console.log("close");
+ //this.$message({type: 'info',message: ''})
+ }
+ });
+ },
+ examineDelSaleManGradeApply(row){
+ let _this = this;
+ let userId = row.userId;
+ let id = row.id;
+ let obj = {
+ userId: userId,
+ applyId: id,
+ }
+ AjaxProxy.requst({
+ app: _this,
+ data:obj,
+ url: basePath + '/fenXiao/fenXiaoUser/delSaleManGradeApply',
+ callback: function (data) {
+ _this.$message.success(data.info);
+ _this.loadParamSetting();
+ }
+ });
+ },
+ //修改等级跳转
+ openUpdateSaleManGrade(row){
+ layer.full(layer.open({
+ type: 2,
+ title: "查看",
+ maxmin: true,
+ area: [MUI.SIZE_L, '500px'],
+ content : [ basePath + '/admin/redirect/fenxiao/fenxiao-update?userId=' + row.userId+'&applyId='+row.id ]
+ }));
+ },
+ //审核
+ openExamineSaleManApply(row) {
+ this.$confirm('是否通过?', '审核', {
+ distinguishCancelAndClose: true,//设置关闭按钮和不通过按钮的区别
+ confirmButtonText: '通过',
+ cancelButtonText: '不通过',
+ type: 'info'
+ }).then(() => {
+ //通过
+ this.examineSaleManApply(row,this.shenheAgreeType);
+ }).catch(action => {
+ //不通过
+ if(action === 'cancel'){
+ this.examineSaleManApply(row,this.shenheDisagreeType);
+ }else{
+ //关闭按钮
+ console.log("close");
+ //this.$message({type: 'info',message: ''})
+ }
+ });
+ },
+ examineSaleManApply(row,type){
+ let _this = this;
+ let userId = row.userId;
+ let applyId = row.id;
+ let obj = {
+ userId: userId,
+ applyId: applyId,
+ applyState: type,
+ }
+ AjaxProxy.requst({
+ app: _this,
+ data:obj,
+ url: basePath + '/fenXiao/fenXiaoUser/examineSaleManApply',
+ callback: function (data) {
+ _this.$message.success(data.info);
+ _this.loadParamSetting();
+ }
+ });
}
}
})
--
Gitblit v1.9.1