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