New file |
| | |
| | | <!DOCTYPE HTML> |
| | | <html xmlns:th="http://www.thymeleaf.org" xmlns:matrix="http://www.w3.org/1999/xhtml"> |
| | | <head> |
| | | <meta charset="utf-8"> |
| | | <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> |
| | | <meta name="renderer" content="webkit|ie-comp|ie-stand"> |
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
| | | <meta name="viewport" |
| | | content="width=device-width,initial-scale=1,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no"/> |
| | | <meta http-equiv="Cache-Control" content="no-siteapp"/> |
| | | <LINK rel="Bookmark" href="../images/favicon.ico"> |
| | | <!-- 本框架基本脚本和样式 --> |
| | | <script type="text/javascript" th:src="@{/js/systools/MBaseVue.js}"></script> |
| | | <link rel="stylesheet" th:href="@{/plugin/element-ui/index.css}"> |
| | | <link th:href="@{/css/styleOne/style.min.css}" rel="stylesheet" type="text/css"/> |
| | | <title></title> |
| | | <style> |
| | | .panel-body{ |
| | | overflow: hidden; |
| | | } |
| | | .buttonPanel{ |
| | | background: #ffffff; |
| | | padding: 10px 10px ; |
| | | margin: 0px 0px 10px 0px; |
| | | } |
| | | .rowPanel{ |
| | | background: #ffffff; |
| | | padding: 0px 10px ; |
| | | padding-top: 10px; |
| | | margin: 0px 0px 10px 0px; |
| | | } |
| | | .paginationStyle{ |
| | | background: #ffffff; |
| | | padding: 10px 10px; |
| | | margin: 0px 0px 10px 0px; |
| | | text-align: right; |
| | | } |
| | | </style> |
| | | </head> |
| | | <body> |
| | | <div class="panel-body" id="app"> |
| | | |
| | | <el-row class="buttonPanel"> |
| | | <el-button @click="exportExcel" type="primary" >导出</el-button> |
| | | </el-row> |
| | | |
| | | <el-row class="rowPanel" > |
| | | <el-form ref="form" :model="form" inline > |
| | | |
| | | <el-form-item label="业绩规则" > |
| | | <el-select v-model="form.achieveRuleId" filterable placeholder="请选择业绩规则"> |
| | | <el-option |
| | | v-for="item in achieveRulsList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="员工姓名" > |
| | | <el-input v-model="form.staffName"></el-input> |
| | | </el-form-item> |
| | | |
| | | |
| | | <el-form-item label="统计门店" > |
| | | <el-select v-model="form.shopId" placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in shopList" |
| | | :key="item.shopShortName" |
| | | :label="item.shopShortName" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | |
| | | <el-form-item label="订单类型" > |
| | | <el-select v-model="form.orderType" placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in orderTypeList" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="统计时间" prop="datetimeArr"> |
| | | <el-date-picker |
| | | v-model="form.datetimeArr" |
| | | type="daterange" |
| | | range-separator="至" format="yyyy-MM-dd HH:mm" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | |
| | | <el-button type="primary" @click="search" >搜索</el-button> |
| | | <el-button @click="resetForm('form')">重置</el-button> |
| | | </el-form> |
| | | </el-row> |
| | | |
| | | <el-row class="table-style" > |
| | | |
| | | <el-table id="proj" :data="table.rows" :height="height" stripe @sort-change="sortChange"> |
| | | <el-table-column |
| | | sortable="custom" |
| | | prop="ruleName" |
| | | label="规则名称" |
| | | width="180"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="shopName" |
| | | label="门店名称" |
| | | show-overflow-tooltip |
| | | width="240"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="guwen" |
| | | label="业绩归属人" |
| | | show-overflow-tooltip |
| | | width="180"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="createBy" |
| | | label="业绩创建人" |
| | | show-overflow-tooltip |
| | | width="180"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | sortable="custom" |
| | | prop="zkTotal" |
| | | label="订单金额"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | sortable="custom" |
| | | prop="goodsCash" |
| | | label="现金"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | sortable="custom" |
| | | prop="cardCash" |
| | | label="划扣"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | sortable="custom" |
| | | prop="hisConsume" |
| | | label="本金消耗"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | sortable="custom" |
| | | prop="freeConsume" |
| | | label="赠送消耗"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | sortable="custom" |
| | | prop="projPercentage" |
| | | label="服务提成"> |
| | | </el-table-column> |
| | | <el-table-column |
| | | sortable="custom" |
| | | prop="numberOfPeople" |
| | | label="人头"> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | sortable="custom" |
| | | prop="projNum" |
| | | label="项目个数"> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | sortable="custom" |
| | | prop="projTime" |
| | | label="服务时间"> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | sortable="custom" |
| | | prop="orderType" |
| | | label="订单类型"> |
| | | </el-table-column> |
| | | |
| | | </el-table> |
| | | </el-row> |
| | | <el-row class="paginationStyle" > |
| | | <el-pagination background |
| | | @size-change="changePageSize" |
| | | @current-change="changeCurrentPage" |
| | | :current-page="table.currentPage" |
| | | :page-sizes="[10, 20, 30, 50]" |
| | | :page-size="table.pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" |
| | | :total="table.total"> |
| | | </el-pagination> |
| | | </el-row> |
| | | |
| | | </div> |
| | | </body> |
| | | <script type="text/javascript" th:src="@{/js/plugin/jquery-2.1.4.min.js}"></script> |
| | | <script type="text/javascript" th:src="@{/js/plugin/jquery.query.js}"></script> |
| | | <script type="text/javascript" th:src="@{/plugin/layer/layer.js}"></script> |
| | | <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="@{/plugin/moment.min.js}"></script> |
| | | <script type="text/javascript" th:inline="javascript"> |
| | | |
| | | var vue = new Vue({ |
| | | el: '#app', |
| | | data: { |
| | | table:{ |
| | | rows:[], |
| | | total:0, |
| | | pageSize:10, |
| | | currentPage:1, |
| | | }, |
| | | form:{ |
| | | achieveRuleId:null, |
| | | staffName:null, |
| | | shopId:null, |
| | | orderType:'', |
| | | order:'', |
| | | sort:'', |
| | | beginTime:'', |
| | | endTime:'', |
| | | }, |
| | | height:'calc(100vh - 240px)', |
| | | |
| | | //提成规则 |
| | | achieveRulsList:[], |
| | | //业绩用户列表 |
| | | userList: [], |
| | | shopList:[{id:0,shopShortName:'全部'}], |
| | | |
| | | orderTypeList:[ |
| | | {value:'',label:'全部'}, |
| | | {value:'订单',label:'订单'}, |
| | | {value:'服务单',label:'服务单'}, |
| | | |
| | | ], |
| | | }, |
| | | created: function () { |
| | | let _this=this; |
| | | //获取业绩用户列表 |
| | | AjaxProxy.requst({ |
| | | app: _this, |
| | | url: basePath + '/admin/shopAll', |
| | | callback: function (data) { |
| | | _this.userList = data.rows; |
| | | } |
| | | }); |
| | | AjaxProxy.requst({ |
| | | app:_this, |
| | | url:basePath+"/admin/shopInfo/findAll", |
| | | callback:function (data) { |
| | | data.rows.forEach(shop=>{ |
| | | _this.shopList.push(shop); |
| | | }); |
| | | } |
| | | |
| | | }) |
| | | this.getAchieveRule(); |
| | | this.loadData(); |
| | | window.addEventListener("keydown", this.keydown); |
| | | }, |
| | | methods: { |
| | | changePageSize(val) { |
| | | this.table.pageSize = val; |
| | | this.loadData(); |
| | | }, |
| | | changeCurrentPage(val) { |
| | | this.table.currentPage = val; |
| | | this.loadData(); |
| | | }, |
| | | resetForm(formName) { |
| | | this.$refs[formName].resetFields(); |
| | | this.form={ |
| | | achieveRuleId:null, |
| | | staffName:null, |
| | | shopId:null, |
| | | orderType:'', |
| | | order:'', |
| | | sort:'', |
| | | beginTime:'', |
| | | endTime:'', |
| | | }; |
| | | }, |
| | | 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.loadData(); |
| | | } |
| | | }, |
| | | loadData:function(){ |
| | | let _this = this; |
| | | let data=_this.getRequestParam(); |
| | | data.pageSize=_this.table.pageSize; |
| | | data.pageNum=_this.table.currentPage; |
| | | AjaxProxy.requst({ |
| | | app: _this, |
| | | data:data, |
| | | url: basePath + '/admin/achieve/achieveNewStatistics', |
| | | callback: function (data) { |
| | | _this.table.rows = data.rows; |
| | | _this.table.total=data.total; |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | /** |
| | | * 获取规则 |
| | | */ |
| | | getAchieveRule(){ |
| | | let _this = this; |
| | | AjaxProxy.requst({ |
| | | app: _this, |
| | | data: {pageNum:1,pageSize:1000}, |
| | | url: basePath + "/admin/achieveRule/selectList", |
| | | callback: function (data) { |
| | | _this.achieveRulsList=data.rows; |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | getRequestParam(){ |
| | | let _this = this; |
| | | return { |
| | | achieveRuleId:_this.form.achieveRuleId, |
| | | staffName:_this.form.staffName, |
| | | shopId:_this.form.shopId, |
| | | orderType:_this.form.orderType, |
| | | beginTime:_this.form.datetimeArr?moment(_this.form.datetimeArr[0]).format("YYYY-MM-DD HH:mm"):'', |
| | | endTime:_this.form.datetimeArr?moment(_this.form.datetimeArr[1]).format("YYYY-MM-DD HH:mm"):'', |
| | | order:_this.form.order, |
| | | sort:_this.form.sort, |
| | | } |
| | | }, |
| | | search:function(){ |
| | | this.table.currentPage=1; |
| | | this.loadData(); |
| | | }, |
| | | keydown(evt){ |
| | | if(evt.keyCode==13) { |
| | | this.search(); |
| | | } |
| | | }, |
| | | |
| | | //导出 |
| | | exportExcel(){ |
| | | var reqParam = this.getRequestParam(); |
| | | reqParam.beginTimeStr = reqParam.beginTime; |
| | | reqParam.endTimeStr = reqParam.endTime; |
| | | reqParam.beginTime = null; |
| | | reqParam.endTime = null; |
| | | var param = MTools.jsonToUrlParam(reqParam); |
| | | console.log(param); |
| | | window.location.href=basePath+"/admin/achieve/exportAchieveNewStatisticsExcel?"+param; |
| | | } |
| | | |
| | | } |
| | | }); |
| | | |
| | | |
| | | </script> |
| | | </body> |
| | | </html> |