From 0cb21bc650d8225d77d3bbb353395d3070f9029b Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Sun, 14 Mar 2021 20:32:12 +0800 Subject: [PATCH] 分销员后台0315 --- zq-erp/src/main/resources/templates/views/admin/fenxiao/fenxiao-user.html | 617 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 files changed, 497 insertions(+), 120 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 72e9204..ddfd73b 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 @@ -22,144 +22,189 @@ </script> <script type="text/javascript" charset="utf-8" th:src="@{/plugin/beditor/lang/zh-cn/zh-cn.js}"></script> + <style> + .paginationStyle{ + background: #ffffff; + padding: 10px 10px; + margin: 0px 0px 10px 0px; + text-align: right; + } + </style> </head> <body> <div class="ibox-content" id="app" v-cloak> - <el-form label-width="120px" > <el-row> <el-tabs v-model="activeName" > - <el-tab-pane label="门店积分规则" name="first"> - <form class="form-inline" id="serchform"> - <el-row style="display:flex;align-items: center;"> - <el-col> - <el-button type="primary" @click="submits()">新增分销员</el-button> - </el-col> - <el-col style="display:flex;align-items: center;"> - <el-select v-model="shenheState" placeholder="审核状态"> - <el-option label="已审核" value="1"></el-option> - <el-option label="未审核" value="2"></el-option> + <el-tab-pane label="分销员管理" name="first"> + <el-row > + <el-col :span="6" style="display:flex;align-items: center;"> + <el-button type="primary" @click="addSaleMan()">新增分销员</el-button> + </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="请选择"> + <el-option + v-for="item in shenheStateList" + :key="item.value" + :label="item.label" + :value="item.value" + > + </el-option> </el-select> - <el-select v-model="fenxiaoGrade" placeholder="分销员等级"> - <el-option label="初始等级" value="1"></el-option> - <el-option label="合伙人" value="2"></el-option> + </el-form-item> + <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-button type="primary" @click="submits()">搜索</el-button> - <el-button type="primary" @click="submits()">重置</el-button> - </el-col> - </el-row> - </form> - <template> - <el-table - ref="multipleTable" - :data="tableData" - tooltip-effect="dark" - style="width: 100%" - @selection-change="handleSelectionChange"> + </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 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="name" - label="分销员姓名" - width="180"> - </el-table-column> - <el-table-column - prop="name" - label="分销员姓名" - width="180"> - </el-table-column> - <el-table-column - prop="name" - label="邀请人" - width="180"> - </el-table-column> - <el-table-column - prop="name" - label="下级客户数" - width="180"> - </el-table-column> - <el-table-column - prop="name" - label="累计收益" - width="180"> - </el-table-column> - <el-table-column - prop="name" - label="待结算" - width="180"> - </el-table-column> - <el-table-column - prop="name" - label="等级" - width="180"> - </el-table-column> - <el-table-column - prop="date" - label="加入时间" - width="180"> - </el-table-column> - <el-table-column - prop="name" - label="状态" - width="180"> - </el-table-column> - <el-table-column - prop="name" - label="来源" - width="180"> - </el-table-column> - <el-table-column - fixed="right" - label="操作" - width="100"> + label="分销员"> <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="parentUser" + label="邀请人" width="100"> + </el-table-column> + <el-table-column + prop="lowerLevelNum" + label="下级客户数" width="100"> + </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="加入时间" + :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 + 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="primary" 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 + @size-change="changePageSize" + @current-change="changeCurrentPage" + :current-page="fxyList.currentPage" + :page-sizes="[10, 20, 30, 50]" + :page-size="fxyList.pageSize" + layout="total, sizes, prev, pager, next, jumper" + :total="fxyList.total"> + </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.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 - prop="name" - label="等级条件(推广金额额)" - width="180"> + 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 - 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> + <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="addFyfa()">新增</el-button> + <el-button type="primary" size="mini" @click="updateFyfa(scope.row)">保存</el-button> + <el-button type="primary" 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" @@ -169,9 +214,31 @@ <el-button type="primary" @click="submit()">保存</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-row> + </el-tab-pane> + </el-tabs> </el-row> - </el-form> </div> </body> <script type="text/javascript" th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script> @@ -180,27 +247,69 @@ <script type="text/javascript" th:src="@{/js/systools/AjaxProxyVue.js}"></script> <script type="text/javascript" th:src="@{/js/plugin/vue.js}"></script> <script type="text/javascript" th:src="@{/plugin/element-ui/index.js}"></script> +<script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script> +<script type="text/javascript" th:src="@{/plugin/layer/layer.js}"></script> +<script type="text/javascript" th:src="@{/plugin/moment.min.js}"></script> <script> //百度编辑器 + MUI.initImgUpload(".upload-input"); var ue = {}; var app = new Vue({ el: '#app', data: { - shenheState: "", + height:'calc(100vh - 240px)', + fxy:[], fenxiaoGrade: "", tgwa: "", activeName: 'first', multipleSelection: [], - jfyxq:[], - jfdxj:[], + fxtp:{}, mdjf:[], scjf:[], + //分佣方案 + fyfaList:{ + rows:[], + total:0, + pageSize:10, + currentPage:1, + }, + + //分销员管理 + shenheAgreeType : 2, + shenheDisagreeType : 3, + form:{ + shenheState:'', + salemanGrade:'', + userName:'', + order:'', + sort:'' + }, + //条件查询审核状态 + shenheStateList:[ + {value:'',label:'全部'}, + {value:1,label:'未审核'}, + {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 () { }, @@ -209,6 +318,11 @@ loadInfo() { let _this = this; _this.loadParamSetting(); + _this.loadFyfaSetting(); + _this.getSalemanGradeList(); + }, + submittp(paramValue) { + alert(paramValue); }, toggleSelection(rows) { if (rows) { @@ -225,16 +339,279 @@ handleClick(row) { console.log(row); }, - loadParamSetting() { + //分佣方案 + loadFyfaSetting() { let _this = this; - //加载配置 + let data=_this.getRequestParam(); + data.pageSize=_this.fyfaList.pageSize; + data.pageNum=_this.fyfaList.currentPage; AjaxProxy.requst({ app: _this, - data: {}, - url: basePath + '/score/ruleSetting/selectScoreRule', + data:data, + url: basePath + '/fenXiao/fenXiaoUser/findFyfaManageList', callback: function (data) { - _this.jfyxq = data.mapInfo.jfyxq; - console.log("over"); + _this.fyfaList.rows = data.rows; + _this.fyfaList.total = data.total; + } + }); + }, + changePageSizelow(val) { + this.fyfaList.pageSize = val; + this.loadFyfaSetting(); + }, + changeCurrentPagelow(val) { + this.fyfaList.currentPage = val; + this.loadFyfaSetting(); + }, + //新增 + 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 invitationCommission = row.invitationCommission; + let gradeCondition = row.gradeCondition; + let obj = { + id: id, + name: name, + sealesCommission: sealesCommission, + 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); + _this.loadFyfaSetting(); + }).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); + } + }); + }, + //分销员管理 + loadParamSetting() { + let _this = this; + let data=_this.getRequestParam(); + data.pageSize=_this.fxyList.pageSize; + data.pageNum=_this.fxyList.currentPage; + AjaxProxy.requst({ + app: _this, + data:data, + url: basePath + '/fenXiao/fenXiaoUser/findShopSalesmanApplyList', + callback: function (data) { + _this.fxyList.rows = data.rows; + _this.fxyList.total=data.total; + } + }); + }, + // 下拉框数据源---分销员等级 + 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.loadParamSetting(); + }, + keydown(evt){ + if(evt.keyCode==13) { + this.search(); + } + }, + resetForm(formName) { + this.$refs[formName].resetFields(); + }, + sortChange:function (column){ + if(column.order){ + if(column.order.indexOf("desc")){ + this.form.order="desc"; + }else{ + this.form.order="asc"; + } + this.form.sort=column.prop; + this.loadParamSetting(); + } + }, + changePageSize(val) { + this.table.pageSize = val; + this.loadParamSetting(); + }, + changeCurrentPage(val) { + this.table.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(){ + layer.full(layer.open({ + type: 2, + title: "选择会员", + maxmin: true, + area: [MUI.SIZE_L, '500px'], + content : [ basePath + '/admin/redirect/fenxiao/fenxiao-apply'] + })); + }, + //删除 + 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