Helius
2022-05-27 4351e71d782741143a98f86f6648acd16689165f
zq-erp/src/main/resources/templates/views/admin/hive-erp/statistics/achieveNewStatiostics.html
New file
@@ -0,0 +1,373 @@
<!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>