From 4351e71d782741143a98f86f6648acd16689165f Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Fri, 27 May 2022 19:48:02 +0800 Subject: [PATCH] Merge branch 'developer' into hive2.0 --- zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-list-new.html | 543 +++++++++++++++++++++++++++++++----------------------- 1 files changed, 311 insertions(+), 232 deletions(-) diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-list-new.html b/zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-list-new.html index e833811..e1eed9a 100644 --- a/zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-list-new.html +++ b/zq-erp/src/main/resources/templates/views/admin/hive/statistics/daily-list-new.html @@ -2,244 +2,323 @@ <!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/plugin/jquery-2.1.4.min.js}"></script> -<script type="text/javascript" th:src="@{/js/systools/MBase.js}"></script> - -</head> -<body class="gray-bg"> - - - <div class="ibox-content"> - <!-- 搜索框部分start --> - <form class="form-inline" id="serchform"> - <div class="row mb-10"> - <div class="col-sm-8"> - <button onclick="myGrid.serchData()" type="button" class="btn btn-info btn-sm"><i class="fa fa-search" ></i> 搜索</button> - <button onclick="myGrid.resetForm()" type="button" class="btn btn-default btn-sm"><i class="fa fa-refresh " ></i> 重置</button> - <button matrix:btn="ygyjbb-exportExcel" onclick="exportExcel()" type="button" class="btn btn-default btn-sm"><i class="fa fa-download" ></i> 导出</button> - </div> - </div> - <div class="form-group mr-20"> - <label >选择年月</label> <select - class="form-control" name="year" id="select_year"> - <option value="">年份</option> - <option value="2010">2010</option> - <option value="2011">2011</option> - <option value="2012">2012</option> - <option value="2013">2013</option> - <option value="2014">2014</option> - <option value="2015">2015</option> - <option value="2016">2016</option> - <option value="2017">2017</option> - <option value="2018">2018</option> - <option value="2019">2019</option> - <option value="2020">2020</option> - <option value="2021">2021</option> - </select> <select class="form-control" name="month" id="select_month"> - <option value="01">1</option> - <option value="02">2</option> - <option value="03">3</option> - <option value="04">4</option> - <option value="05">5</option> - <option value="06">6</option> - <option value="07">7</option> - <option value="08">8</option> - <option value="09">9</option> - <option value="10">10</option> - <option value="11">11</option> - <option value="12">12</option> - </select> - <select class="form-control" name="day" id="select_day"> - <option value="">日</option> - <th:block th:each="i:${#numbers.sequence(1, 31)}" > - <option th:value="${i }" th:text="${i }"></option> - </th:block> - </select> - </div> - <div class="form-group mr-20"> - <label>日期范围</label> - <input name="beginTime" type="text" class="form-control datetimepicker" id="beginTime">- - <input name="endTime" type="text" class="form-control datetimepicker" id="endTime"> - </div> - - <div class="form-group mr-20"> - <label>会员</label> - <input autocomplete="off" placeholder="姓名/编号/电话" name="vipQueryKey" type="text" class="form-control" > - </div> - - <div class="form-group mr-20"> - <label>美疗师</label> - <select class="form-control autoFull select2" - th:data-url="@{/admin/getShopStaffByRoleName?roleName=美疗师}" - data-value="suId" - data-filed="suName" - name="beaultId" - id="beaultId"> - <option value="">--请选择美容师--</option> - </select> - </div> - - <div class="form-group mr-20"> - <label>门店</label> - <select class="form-control autoFull" data-filed="shopName" name="shopId" id="shopId" - th:data-url="@{/admin/shopInfo/findAllWithPermi}"> - <option value=''>--请选择部所属门店--</option> - </select> - </div> - </form> - - - <table id="mgrid"> - <thead> - <tr> - <th data-formatter="MGrid.indexfn" data-align="center" - data-width="30px" data-footer-formatter="footCountTitle">序号</th> - <th data-field="datatime">时间</th> - <th data-field="orderType">订单类型</th> - <th data-field="orderNo" data-formatter="buildOpenDetail" >订单编号</th> - <th data-field="levelName">会员级别</th> - <th data-field="vipName">姓名</th> - <th data-field="proName">项目名称</th> - <th data-field="zkTotal" data-footer-formatter="countColumn">总现金业绩 - <i data-toggle="tooltip" data-placement="top" title="总现金业绩=售卡+项目+产品" class="fa fa-question-circle"></i> - </th> - - <th data-field="cardCash" data-footer-formatter="countColumn" >售卡业绩 - <i data-toggle="tooltip" data-placement="top" title="售卡业绩:现金购买充值卡,套餐,充值的收款金额" class="fa fa-question-circle"></i> - </th> - - <th data-field="projCash" data-footer-formatter="countColumn">项目业绩 - <i data-toggle="tooltip" data-placement="top" title="项目业绩:现金购买单个项目的业绩" class="fa fa-question-circle"></i> - </th> - - <th data-field="goodsCash" data-footer-formatter="countColumn">产品业绩 - <i data-toggle="tooltip" data-placement="top" title="产品业绩:现金购买产品的业绩" class="fa fa-question-circle"></i> - </th> - - <th data-field="consume" data-footer-formatter="countColumn">余额划扣业绩 - <i data-toggle="tooltip" data-placement="top" title="余额划扣业绩:从客户的充值卡余额中划扣消费的金额" class="fa fa-question-circle"></i> - </th> - - <th data-field="hisConsume" data-footer-formatter="countColumn">本金消耗 - <i data-toggle="tooltip" data-placement="top" title="消耗金额:客户做服务时划扣的本金" class="fa fa-question-circle"></i> - </th> - <th data-field="freeConsume" data-footer-formatter="countColumn">赠送消耗 - <i data-toggle="tooltip" data-placement="top" title="赠送消耗:客户做服务时划扣的赠送金额" class="fa fa-question-circle"></i> - </th> - <th data-field="projPercentage" data-footer-formatter="countColumn">服务提成 - <i data-toggle="tooltip" data-placement="top" title="服务提成:为美疗师手动设置的项目服务提成" class="fa fa-question-circle"></i> - </th> - <th data-field="guwen">顾问</th> - <th data-field="meiliao">美疗师</th> - <th data-field="numberOfPeople" data-footer-formatter="countColumn">人头</th> - <th data-field="projNum" data-footer-formatter="countColumn">项目个数</th> - <th data-field="projTime" data-footer-formatter="countColumn">项目时间</th> - <th data-field="shopName">门店</th> - - </tr> - </thead> - </table> - </div> - - <script type="text/javascript" th:src="@{/js/systools/MJsBase.js}"></script> + <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> - <script type="text/javascript"> - var myGrid; - var initParam = { - format : "yyyy-mm-dd hh:ii", //默认显示年与日,如果想显示十分秒:"yyyy-mm-dd hh:ii:ss" - minView: "hour", //"month",只显示年月日的选择,不会再跳转去选择时分秒;如果想要选择时分秒的:"hour" +</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 } - MTools.ininDatetimepicker(initParam); - //限制结束时间不小于开始时间 - MTools.limitStartEndTime({}); - - var date = new Date(); - var year = date.getFullYear(); - var month = date.getMonth() + 1; - var year_options = ""; - for (var i = 9; i > 0; i--) { - year_options += "<option value='" + (year - i) + "'>" + (year - i) - + "</option>"; - } - year_options += "<option value='"+year+"' selected='selected'>" + year - + "</option>"; - $("#select_year").html(year_options); - $("#select_month").find("option").each(function(row) { - var option_month = $(this).val(); - if (month == option_month) { - $(this).attr("selected", true); - } - }); + }, + created : function() { + this.initDays(); + this.queryCustomColumns(); + this.queryShops(); + this.queryAchieveUsers(); + this.getAchieveRule(); + }, + methods : { + queryTableData () { - function buildOpenDetail(value, row, index){ - var html = []; - if(row.orderType=='服务单'){ - html[0] = '<a onClick="fnPublci.showServiceOrder(1 , \'' + value +'\')" class="text-primary " >'+value+'</a>' - }else{ - html[0] = '<a onClick="fnPublci.showOrder(1 , \'' + value +'\')" class="text-primary " >'+value+'</a>' - } + 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; - return html.join(""); - } - - - - - $(function() { - MTools.autoFullSelect(); - myGrid = MGrid.initGrid({ - url : basePath+"/admin/achieve/findDailyInfoNew", - showExport : true, - showFooter : true, - height:'auto', - width:'auto', - exportDataType : "basic", //basic', 'all', 'selected'. - exportTypes : [ 'excel', 'xlsx' ], //导出类型 - exportOptions : { - ignoreColumn : [ 0 ], - fileName : "每日单据统计" + MTools.getTime(), //文件名称设置 - worksheetName : 'Sheet1', //表格工作区名称 - tableName : '每日单据统计', - excelstyles : [ 'background-color', 'color', 'font-size', - 'font-weight' ], + 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"):''; } - }); - $('[data-toggle="tooltip"]').tooltip() - - }); - - function footCountTitle(data) { - return "<b>合计</b>"; - }; - function countColumn(data) { - console.log(data) - field = this.field; - var resultsumQuantity = parseFloat((data.reduce(function(sum, row) { - console.log(sum,row[field]); - return sum + (+row[field]); - }, 0)).toFixed(2));//保留有效数字 - return "<b>"+resultsumQuantity+"</b>"; - }; - - - function exportExcel(){ - - var param=MForm.toUrlParam("#serchform"); - - window.location.href=basePath+"/admin/achieve/exportDailyInfoNew?"+param; + 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> + }); +</script> </body> </html> -- Gitblit v1.9.1