|
<!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>
|
<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/moment.min.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"/>
|
<script type="text/javascript" th:src="@{/js/function/public.js}"></script>
|
</head>
|
<style>
|
.table-style {
|
margin: 20px 0;
|
padding: 20px 10px;
|
border: 1px solid #DCDFE6;
|
background-color: white;
|
}
|
.search-form {
|
background-color: white;
|
padding-top: 10px;
|
padding-left: 20px;
|
padding-bottom: 10px;
|
}
|
</style>
|
<body>
|
<div id="app" style="">
|
<el-row class="search-form">
|
<el-form ref="form" :model="form" inline>
|
<el-form-item label="选择年月">
|
<el-select v-model="form.year" style="width:120px;" placeholder="请选择年份">
|
<el-option v-for="item in years"
|
:key="item"
|
:label="item"
|
:value="item"></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item>
|
<el-select v-model="form.month" style="width:120px;" placeholder="请选择月份">
|
<el-option v-for="item in months"
|
:key="item"
|
:label="item"
|
:value="item"></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item>
|
<el-select v-model="form.day" style="width:120px;" placeholder="请选择日">
|
<el-option v-for="item in days"
|
:key="item"
|
:label="item"
|
:value="item"></el-option>
|
</el-select>
|
</el-form-item>
|
<el-form-item label="日期范围">
|
<el-date-picker v-model="form.timeRange"
|
type="datetimerange"
|
range-separator="至"
|
start-placeholder="开始日期"
|
end-placeholder="结束日期">
|
</el-date-picker>
|
</el-form-item>
|
<el-form-item label="业绩规则" prop="achieveRuleId">
|
<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.vipQueryKey"></el-input>
|
</el-form-item>
|
|
<el-form-item label="业绩归属人">
|
<el-select v-model="form.beaultId" placeholder="请选择">
|
<el-option v-for="item in achieveUsers"
|
:key="item.suId"
|
:label="item.suName"
|
:value="item.suId"></el-option>
|
</el-select>
|
</el-form-item>
|
|
<el-form-item label="门店">
|
<el-select v-model="form.shopId" placeholder="请选择所属门店">
|
<el-option v-for="item in shopList"
|
:key="item.id"
|
:label="item.shopName"
|
:value="item.id">
|
</el-option>
|
</el-select>
|
</el-form-item>
|
|
<el-button type="primary" @click="search" >搜索</el-button>
|
<el-button @click="resetForm('form')">重置</el-button>
|
<el-button type="warning" @click="exportExcel">导出</el-button>
|
</el-form>
|
|
</el-row>
|
<el-row class="table-style">
|
<el-table :data="tableData" style="width: 100%">
|
<el-table-column type="index" width="30"></el-table-column>
|
<el-table-column prop="datatime" width="150" label="时间"></el-table-column>
|
<el-table-column prop="orderNo" width="180" label="订单编号">
|
<template slot-scope="scope">
|
<el-link @click="jumpOrder(scope.row.orderType, scope.row.orderNo)" type="primary">{{scope.row.orderNo}}</el-link>
|
</template>
|
</el-table-column>
|
<el-table-column prop="orderType" label="订单类型"></el-table-column>
|
<el-table-column prop="vipName" label="会员姓名"></el-table-column>
|
<el-table-column prop="proName" label="产品" width="200"></el-table-column>
|
<el-table-column prop="achieveRuleName" label="业绩规则" width="200"></el-table-column>
|
<el-table-column prop="cateName" label="产品分类"></el-table-column>
|
<el-table-column prop="zkTotal" label="订单金额"></el-table-column>
|
<el-table-column prop="goodsCash" label="现金"></el-table-column>
|
<el-table-column prop="cardCash" label="划扣"></el-table-column>
|
<!-- <el-table-column prop="goodsCash" label="订单业绩"></el-table-column>-->
|
<el-table-column prop="meiliao" label="员工"></el-table-column>
|
<el-table-column v-for="(item, index) in customColumns" width="120" :key="index" :label="item.value">
|
<template slot-scope="scope">
|
<span v-if="item.value == scope.row.achieveType">{{scope.row.goodsCash}}</span>
|
</template>
|
</el-table-column>
|
<el-table-column prop="hisConsume" label="本金消耗"></el-table-column>
|
<el-table-column prop="freeConsume" label="赠送消耗"></el-table-column>
|
<el-table-column prop="projPercentage" label="服务提成"></el-table-column>
|
<el-table-column prop="numberOfPeople" label="人头"></el-table-column>
|
<el-table-column prop="projNum" label="项目个数"></el-table-column>
|
<el-table-column prop="projTime" label="服务时间"></el-table-column>
|
<el-table-column prop="guwen" label="操作人"></el-table-column>
|
<el-table-column prop="shopName" label="门店"></el-table-column>
|
</el-table>
|
<el-row style="margin-top: 10px;">
|
<el-pagination
|
@size-change="handleSizeChange"
|
@current-change="handleCurrentChange"
|
:current-page="page.currentPage"
|
:page-sizes="[10, 20, 30, 50]"
|
:page-size="page.size"
|
layout="total, sizes, prev, pager, next, jumper"
|
:total="page.total">
|
</el-pagination>
|
</el-row>
|
</el-row>
|
</div>
|
<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 : {
|
tableData : [],
|
customColumns : [],
|
achieveRulsList : [],
|
shopList : [],
|
achieveUsers : [],
|
years : [2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022],
|
months : ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"],
|
days : [],
|
form : {
|
year : '',
|
month : '',
|
day : '',
|
timeRange : '',
|
vipQueryKey : '',
|
beaultId : '',
|
achieveRuleId : '',
|
shopId : ''
|
},
|
page : {
|
currentPage : 1,
|
size : 10,
|
total : 0
|
}
|
},
|
created : function() {
|
this.initDays();
|
this.queryCustomColumns();
|
this.queryShops();
|
this.queryAchieveUsers();
|
this.getAchieveRule();
|
},
|
methods : {
|
queryTableData () {
|
|
let _this = this;
|
let form = _this.form;
|
let page = _this.page;
|
let params = {};
|
params.year=form.year;
|
params.achieveRuleId=form.achieveRuleId;
|
params.month=form.month;
|
params.year=form.year;
|
params.day=form.day;
|
params.vipQueryKey=form.vipQueryKey;
|
params.beaultId=form.beaultId;
|
params.shopId=form.shopId;
|
params.limit = page.size;
|
params.offset = (page.currentPage - 1) * page.size;
|
|
if (form.timeRange) {
|
params.beginTime = form.timeRange?moment(form.timeRange[0]).format("YYYY-MM-DD HH:mm"):'';
|
params.endTime = form.timeRange?moment(form.timeRange[1]).format("YYYY-MM-DD HH:mm"):'';
|
}
|
|
AjaxProxy.requst({
|
app: _this,
|
data: params,
|
url: basePath + "/admin/achieve/findDailyInfoNew",
|
callback: function (loj) {
|
_this.tableData = loj.rows;
|
_this.page.total = loj.total;
|
}
|
});
|
},
|
queryCustomColumns() {
|
let _this = this;
|
AjaxProxy.requst({
|
app: _this,
|
url: basePath + '/admin/customerDictionary/getListByParentCode/YJLX',
|
callback: function (data) {
|
_this.customColumns = data.rows;
|
_this.queryTableData();
|
}
|
});
|
},
|
/**
|
* 获取规则
|
*/
|
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;
|
}
|
});
|
},
|
queryShops() {
|
let _this = this;
|
AjaxProxy.requst({
|
app: _this,
|
url: basePath + '/admin/shopInfo/findAllWithPermi',
|
callback: function (data) {
|
_this.shopList = data.rows;
|
}
|
});
|
},
|
queryAchieveUsers() {
|
let _this = this;
|
AjaxProxy.requst({
|
app: _this,
|
url: basePath + '/admin/getShopStaffByRoleName?roleName=美疗师',
|
callback: function (data) {
|
_this.achieveUsers = data.rows;
|
}
|
});
|
},
|
resetForm(formName) {
|
// this.$refs[formName].resetFields();
|
this.form = {
|
timeRange : '',
|
vipQueryKey : '',
|
beaultId : '',
|
shopId : ''
|
}
|
},
|
search() {
|
this.queryTableData();
|
},
|
handleSizeChange(val) {
|
this.page.size = val;
|
this.queryTableData();
|
},
|
handleCurrentChange(val) {
|
this.page.currentPage = val;
|
this.queryTableData();
|
},
|
initDays() {
|
let _this = this;
|
for (var i = 1; i <= 31 ; i++) {
|
_this.days.push(i);
|
}
|
},
|
getRequestParam() {
|
var form = this.form;
|
var params = form;
|
if (form.timeRange) {
|
params.beginTime = form.timeRange?moment(form.timeRange[0]).format("YYYY-MM-DD HH:mm"):'';
|
params.endTime = form.timeRange?moment(form.timeRange[1]).format("YYYY-MM-DD HH:mm"):'';
|
}
|
return params;
|
},
|
exportExcel() {
|
window.location.href=basePath+"/admin/achieve/exportDailyInfoNew?"+MTools.jsonToUrlParam(this.getRequestParam());
|
},
|
jumpOrder(type, value) {
|
if(type=='服务单') {
|
fnPublci.showServiceOrder(1, value);
|
} else {
|
fnPublci.showOrder(1, value);
|
}
|
}
|
}
|
});
|
</script>
|
</body>
|
</html>
|