From fa791f7796c1546b1329b52a3de8d753915cb4d5 Mon Sep 17 00:00:00 2001
From: jyy <935090232@qq.com>
Date: Tue, 20 Apr 2021 00:24:01 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/score_shop' into score_shop
---
zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/vip.html | 312 ++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 268 insertions(+), 44 deletions(-)
diff --git a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/vip.html b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/vip.html
index bb31054..cd511b3 100644
--- a/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/vip.html
+++ b/zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/vip.html
@@ -95,6 +95,14 @@
.el-autocomplete {
display: block !important;
}
+
+ .vip-info {
+ padding: 30px 20px;
+ }
+
+ .vip-info p {
+ line-height: 30px;
+ }
</style>
</head>
@@ -119,7 +127,6 @@
<el-button type="primary" plain @click="recharge">充值</el-button>
<el-button type="warning" plain @click="addOrder">开单</el-button>
<el-button type="success" plain @click="addServiceOrder">开服务单</el-button>
- <el-button type="danger" plain @click="returnMoney">退款</el-button>
</el-col>
</el-header>
<el-container>
@@ -142,7 +149,7 @@
<el-row style="padding: 10px 20px;">
<p>余额:<span v-if="vipInfo.balance != null">{{vipInfo.balance}}元</span></p>
<p>积分:<span v-if="vipInfo.pointAll != null">{{vipInfo.pointAll}}</span></p>
- <p>累计消费金额:<span v-if="vipInfo.totalMoney != null">{{vipInfo.totalMoney}} 元</span></p>
+ <p>累计消费金额:<span v-if="vipInfo.totalMoney != null">{{vipInfo.totalMoney.toFixed(2)}} 元</span></p>
<p>累计消费次数:<span v-if="vipInfo.totalTimes != null">{{vipInfo.totalTimes}} 次</span></p>
<p>上次消费时间:<span v-if="vipInfo.payTime">{{vipInfo.payTime}}</span></p>
</el-row>
@@ -152,7 +159,6 @@
size="small"
:key="tag.label"
v-for="tag in tags.tags"
- closable
:disable-transitions="false"
@close="handleClose(tag)">
{{tag.label}}
@@ -166,15 +172,12 @@
@keyup.enter.native="handleInputConfirm"
@blur="handleInputConfirm"
></el-input>
- <el-button v-else class="button-new-tag" size="mini" @click="showInput">+</el-button>
+<!-- <el-button v-else class="button-new-tag" size="mini" @click="showInput">+</el-button>-->
</el-row>
<el-row style="padding: 10px 0;">
<h4>消费门店</h4>
<el-row style="text-align: center">
- <el-col :span="10" v-for="item in vipInfo.shopNames">
- <el-avatar size="small" :src="circleUrl"></el-avatar>
- <span class="col-style">{{item}}</span>
- </el-col>
+ <el-tag v-for="item in vipInfo.shopNames" >{{item}}</el-tag>
</el-row>
</el-row>
</el-row>
@@ -182,7 +185,7 @@
<el-main style="background-color: white; margin-right: 15px; padding: 20px 30px;">
<el-tabs v-model="activeName" type="card" @tab-click="tabHandleClick">
<el-tab-pane label="会员信息" name="vipInfo">
- <el-row>
+ <el-row class="vip-info">
<el-col :span="10">
<p>生日 : {{vipInfo.birthday1}}</p>
<p>会员状态 : {{vipInfo.vipState}}</p>
@@ -223,9 +226,11 @@
<el-table id="proj" v-show="projTab.projType=='proj'" :data="projTab.projTableData"
style="width: 100%">
<el-table-column
- prop="projName"
label="项目名称"
width="180">
+ <template slot-scope="scope">
+ <span >{{scope.row.projName}}({{scope.row.projInfo.code}})</span>
+ </template>
</el-table-column>
<el-table-column
prop="source"
@@ -254,6 +259,8 @@
<el-button matrix:btn="vipInfo-wuxiao" v-if="scope.row.status!='无效'" type="text" size="small" @click="tabProjInvalid(scope.$index, scope.row)">无效</el-button>
<el-button matrix:btn="vipInfo-dongjie" v-if="scope.row.status!='冻结'" type="text" size="small" @click="tabProjCold(scope.$index, scope.row)">冻结</el-button>
<el-button matrix:btn="vipInfo-cardEdit" type="text" size="small" @click="tabProjEdit(scope.$index, scope.row)">编辑</el-button>
+ <el-button type="text" @click="openOrder(scope.$index, scope.row)" size="small">订单</el-button>
+ <el-button type="text" size="small" @click="openProjUseFlow(scope.$index, scope.row)">操作记录</el-button>
</template>
</el-table-column>
</el-table>
@@ -262,9 +269,16 @@
style="width: 100%;"
row-key="id" :tree-props="{children: 'taocanProjUse', hasChildren: 'hasChildren'}">
<el-table-column
- prop="projName"
label="名称"
- width="240">
+ width="280">
+ <template slot-scope="scope">
+ <span >{{scope.row.projName}}({{scope.row.projInfo.code}})</span>
+ </template>
+ </el-table-column>
+ <el-table-column
+ prop="source"
+ label="来源"
+ width="180">
</el-table-column>
<el-table-column
prop="status"
@@ -289,6 +303,8 @@
<el-button matrix:btn="vipInfo-wuxiao" v-if="scope.row.status!='无效' && scope.row.taocanId == null" type="text" size="small" @click="tabProjInvalid(scope.$index, scope.row)">无效</el-button>
<el-button matrix:btn="vipInfo-dongjie" v-if="scope.row.status!='冻结' && scope.row.taocanId == null" type="text" size="small" @click="tabProjCold(scope.$index, scope.row)">冻结</el-button>
<el-button matrix:btn="vipInfo-cardEdit" v-if="scope.row.taocanId == null" type="text" size="small" @click="tabProjEdit(scope.$index, scope.row)">编辑</el-button>
+ <el-button type="text" v-if="scope.row.orderId != null" @click="openOrder(scope.$index, scope.row)" size="small">订单</el-button>
+ <el-button type="text" size="small" @click="openProjUseFlow(scope.$index, scope.row)">操作记录</el-button>
</template>
</el-table-column>
</el-table>
@@ -328,10 +344,6 @@
label="状态">
</el-table-column>
<el-table-column
- prop="isVipCar"
- label="是否是会籍卡" :formatter="cardIsVipFormatter">
- </el-table-column>
- <el-table-column
prop="isOver"
label="是否使用完成" :formatter="cardIsOrderFormatter">
</el-table-column>
@@ -345,10 +357,12 @@
</el-table-column>
<el-table-column label="操作" fixed="right" width="160">
<template slot-scope="scope">
- <el-button matrix:btn="vipInfo-youxiao" v-if="scope.row.status!='有效'" type="text" size="small" @click="tabProjValid(scope.$index, scope.row)">有效</el-button>
- <el-button matrix:btn="vipInfo-wuxiao" v-if="scope.row.status!='无效'" type="text" size="small" @click="tabProjInvalid(scope.$index, scope.row)">无效</el-button>
- <el-button matrix:btn="vipInfo-dongjie" v-if="scope.row.status!='冻结'" type="text" size="small" @click="tabProjCold(scope.$index, scope.row)">冻结</el-button>
+ <el-button matrix:btn="vipInfo-youxiao" v-if="scope.row.status!='有效' && scope.row.isVipCar =='N' " type="text" size="small" @click="tabProjValid(scope.$index, scope.row)">有效</el-button>
+ <el-button matrix:btn="vipInfo-wuxiao" v-if="scope.row.status!='无效' && scope.row.isVipCar =='N' " type="text" size="small" @click="tabProjInvalid(scope.$index, scope.row)">无效</el-button>
+ <el-button matrix:btn="vipInfo-dongjie" v-if="scope.row.status!='冻结' && scope.row.isVipCar =='N' " type="text" size="small" @click="tabProjCold(scope.$index, scope.row)">冻结</el-button>
<el-button matrix:btn="vipInfo-cardEdit" type="text" size="small" @click="tabProjEdit(scope.$index, scope.row)">编辑</el-button>
+ <el-button type="text" v-if="scope.row.isVipCar =='N'" @click="openOrder(scope.$index, scope.row)" size="small">订单</el-button>
+ <el-button type="text" size="small" @click="openMoneyCardUseFlow(scope.$index, scope.row)">操作记录</el-button>
</template>
</el-table-column>
</el-table>
@@ -449,10 +463,10 @@
<template slot-scope="scope">
<el-button type="text" size="small" @click="lookServiceOrder(scope.$index, scope.row)">查看</el-button>
<el-button matrix:btn="serviceClub-paiban" type="text" size="small" v-if="scope.row.state=='待预约'" @click="paiban(scope.$index, scope.row)">排班</el-button>
- <el-button matrix:btn="serviceClub-paidan" type="text" size="small" v-if="scope.row.state=='预约成功待处理'" @click="giveServiceOrder(scope.$index, scope.row)">派单</el-button>
- <el-button matrix:btn="serviceClub-edit" type="text" size="small" v-if="scope.row.state=='预约成功待处理'" @click="modifyServiceOrder(scope.$index, scope.row)">修改</el-button>
+<!-- <el-button matrix:btn="serviceClub-paidan" type="text" size="small" v-if="scope.row.state=='预约成功待处理'" @click="giveServiceOrder(scope.$index, scope.row)">派单</el-button>-->
+ <el-button matrix:btn="serviceClub-edit" type="text" size="small" v-if="scope.row.state=='待预约'" @click="modifyServiceOrder(scope.$index, scope.row)">修改</el-button>
<el-button matrix:btn="serviceClub-peiliao" type="text" size="small" v-if="scope.row.state=='需配料'" @click="peiliao(scope.$index, scope.row)">配料</el-button>
- <el-button matrix:btn="serviceClub-huakou" type="text" size="small" v-if="scope.row.state=='服务完成'" @click="openHKService(scope.$index, scope.row)">划扣</el-button>
+ <el-button matrix:btn="serviceClub-huakou" type="text" size="small" v-if="scope.row.state=='服务完成'" @click="hkService(scope.$index, scope.row)">划扣</el-button>
<el-button matrix:btn="serviceClub-edit" type="text" size="small" @click="modifyTime(scope.$index, scope.row)">修改时间</el-button>
<el-button matrix:btn="serviceClub-del" type="text" size="small" v-if="scope.row.state!='预约取消'" @click="cancelServiceOrder(scope.$index, scope.row)">取消</el-button>
</template>
@@ -525,14 +539,6 @@
label="下单顾问">
</el-table-column>
<el-table-column
- prop="cashPay"
- label="现金支付金额">
- </el-table-column>
- <el-table-column
- prop="cardPay"
- label="卡支付金额">
- </el-table-column>
- <el-table-column
prop="arrears"
label="欠款金额">
</el-table-column>
@@ -564,6 +570,69 @@
:page-size="orderTab.page.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="orderTab.page.total">
+ </el-pagination>
+ </el-row>
+ </el-tab-pane>
+ <el-tab-pane label="积分记录" name="scoreTab">
+ <el-row style="line-height: 40px;">
+ <el-col :span="8">
+ <el-date-picker v-model="scoreTab.selectTime"
+ type="daterange"
+ range-separator="至"
+ format="yyyy-MM-dd"
+ start-placeholder="开始日期"
+ end-placeholder="结束日期">
+ </el-date-picker>
+ </el-col>
+ <el-col :span="8"> <el-input v-model="scoreTab.remarks" placeholder="请输入备注查询" ></el-input></el-col>
+ <el-col :span="6" style="margin-left: 5px;">
+ <el-button type="primary" @click="scoreCheckQuery">查询</el-button>
+ <el-button type="primary" @click="changeScore">调整</el-button>
+ </el-col>
+ </el-row>
+ <el-row class="table-style">
+ <el-table :data="scoreTab.scoreTableDate"
+ style="width: 100%;">
+ <el-table-column
+ type="index"
+ width="50">
+ </el-table-column>
+ <el-table-column
+ prop="createTime"
+ label="时间">
+ </el-table-column>
+ <el-table-column
+ prop="optionName"
+ label="操作人员">
+ </el-table-column>
+ <el-table-column
+ prop="shopName"
+ label="门店">
+ </el-table-column>
+ <el-table-column
+ prop="recNum"
+ label="修改数量">
+ </el-table-column>
+ <el-table-column
+ prop="nowScore"
+ label="余额">
+ </el-table-column>
+ <el-table-column
+ prop="remarks"
+ label="备注">
+ </el-table-column>
+ </el-table>
+ </el-row>
+ <el-row>
+ <el-pagination
+ background
+ @size-change="scoreCheckSizeChange"
+ @current-change="scoreCheckCurrentChange"
+ :current-page="scoreTab.page.currentPage"
+ :page-sizes="[10, 20, 30, 50]"
+ :page-size="scoreTab.page.pageSize"
+ layout="total, sizes, prev, pager, next, jumper"
+ :total="scoreTab.page.total">
</el-pagination>
</el-row>
</el-tab-pane>
@@ -623,10 +692,31 @@
</el-pagination>
</el-row>
</el-tab-pane>
+
+
</el-tabs>
</el-main>
</el-container>
</el-container>
+
+ <el-dialog title="积分调整" :visible.sync="scoreTab.showChangePaln">
+ <el-form :model="scoreTab.form">
+ <h3>可用积分:{{vipInfo.pointAll}}</h3>
+ <el-form-item label="调整数量" >
+ <el-input v-model="scoreTab.form.amount" autocomplete="off"></el-input>
+ </el-form-item>
+ <el-form-item label="调整备注" >
+ <el-input v-model="scoreTab.form.remarks" autocomplete="off"></el-input>
+ </el-form-item>
+ </el-form>
+ <div slot="footer" class="dialog-footer">
+ <el-button @click="scoreTab.showChangePaln = false">取 消</el-button>
+ <el-button type="primary" @click="submitChangeScore" >确 定</el-button>
+ </div>
+ </el-dialog>
+
+
+
</div>
</body>
<script type="text/javascript" th:src="@{/js/systools/AjaxProxyVue.js}"></script>
@@ -637,7 +727,7 @@
var app = new Vue({
el: '#app',
data : {
- circleUrl : "https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png",
+ circleUrl : "",
activeName : 'vipInfo',
tags : {
tags : [],
@@ -691,6 +781,23 @@
total : 0
}
},
+ //用户积分tab
+ scoreTab : {
+ scoreTableDate : [],
+ selectTime : '',
+ remarks:'',
+ showChangePaln:false,
+ page : {
+ currentPage : 1,
+ pageSize : 10,
+ total : 0
+ },
+ form:{
+ amount:'',
+ remarks:'',
+ }
+
+ },
// 皮肤检测tab
skinTab : {
skinTableDate : [],
@@ -711,6 +818,15 @@
}
},
methods : {
+ //打开订单详情页面
+ openOrder(index,row){
+ layer.full(layer.open({
+ type : 2,
+ title : "订单详情",
+ maxmin : true,
+ content : [ basePath + '/admin/order/orderItem?id=' + row.orderId ]
+ }));
+ },
querySearch(queryString, cb) {
$.AjaxProxy({
p: {
@@ -730,6 +846,7 @@
},
handleSelect(row) {
this.vipInfoFn(row.key);
+ this.searchValue=row.key;
},
// 请求会员信息
vipInfoFn(key) {
@@ -752,7 +869,7 @@
let data = loj[0].result.rows[0];
_this.vipInfo = {};
_this.vipInfo = data;
-
+ _this.circleUrl= _this.vipInfo.photo;
if (data.sysOrder != null) {
_this.vipInfo.totalMoney = data.sysOrder.zkTotal;
_this.vipInfo.totalTimes = data.sysOrder.times;
@@ -763,12 +880,13 @@
_this.vipInfo.shopNames = shopNames;
}
}
-
+ _this.vipInfo.payTime = moment(_this.vipInfo.payTime).format("YYYY-MM-DD HH:mm:ss")
_this.tags.tags = data.labels;
_this.projTableQueryFn();
_this.serviceOrderTableQueryFn();
_this.orderTableDataQueryFn();
_this.skinCheckTableDataQueryFn();
+ _this.refreshTable();
});
},
addLabelFn(key) {
@@ -969,6 +1087,28 @@
content : [ basePath + url + row.id ]
});
},
+
+
+ openProjUseFlow(index, row) {
+ layer.open({
+ type : 2,
+ title : "操作记录",
+ area : MUI.SIZE_M,
+ maxmin : true,
+ content : [ basePath + "/admin/redirect/hive/beautySalon/projUseFlow-list?projUseId=" + row.id ]
+ });
+ },
+
+ openMoneyCardUseFlow(index, row) {
+ layer.open({
+ type : 2,
+ title : "充值卡变更记录",
+ area : MUI.SIZE_M,
+ maxmin : true,
+ content : [ basePath + "/admin/redirect/hive/vip/moneyCardUseFlow-list?vipId=" + row.vipId ]
+ });
+ },
+
tabProjInvalid(index, row) {
let _this = this;
let projType = _this.projTab.projType;
@@ -1042,8 +1182,8 @@
params.state = serviceOrderTab.state;
params.vipId = _this.vipInfo.id;
if (serviceOrderTab.selectTime) {
- params.beginTime = moment(serviceOrderTab.selectTime[0]).format("YYYY-MM-DD HH:mm");
- params.closureTime = moment(serviceOrderTab.selectTime[1]).format("YYYY-MM-DD HH:mm");
+ params.beginTime = serviceOrderTab.selectTime?moment(serviceOrderTab.selectTime[0]).format("YYYY-MM-DD HH:mm"):'';
+ params.closureTime = serviceOrderTab.selectTime?moment(serviceOrderTab.selectTime[1]).format("YYYY-MM-DD HH:mm"):'';
}
$.AjaxProxy({
p:params
@@ -1087,12 +1227,12 @@
}));
},
// 划扣
- openHkService(index, row) {
+ hkService(index, row) {
openHkServcie(row.id);
},
// 取消
cancelServiceOrder(index, row) {
- MTools.handleItem(basePath + "/admin/projService/cancelOrder?id=" + row.row, "确定取消订单吗?", this.serviceOrderQuery);
+ MTools.handleItem(basePath + "/admin/projService/cancelOrder?id=" + row.id, "确定取消订单吗?", this.serviceOrderQuery);
},
// 修改时间
modifyTime(index, row) {
@@ -1125,8 +1265,8 @@
params.statu = orderTab.state;
params.vipId = _this.vipInfo.id;
if (orderTab.selectTime) {
- params.beginTimeVo = moment(orderTab.selectTime[0]).format("YYYY-MM-DD HH:mm");
- params.endTimeVo = moment(orderTab.selectTime[1]).format("YYYY-MM-DD HH:mm");
+ params.beginTimeVo = orderTab.selectTime?moment(orderTab.selectTime[0]).format("YYYY-MM-DD HH:mm"):'';
+ params.endTimeVo = orderTab.selectTime?moment(orderTab.selectTime[1]).format("YYYY-MM-DD HH:mm"):'';
}
$.AjaxProxy({
p:params
@@ -1182,6 +1322,85 @@
},
/********* 订单Tab end ***********/
+ /************** 积分tab start **************/
+ submitChangeScore(){
+ let _this=this;
+
+ var params={
+ amount:this.scoreTab.form.amount,
+ remarks:this.scoreTab.form.remarks,
+ vipId:this.vipInfo.id
+ };
+
+
+
+ $.AjaxProxy({
+ p:params,
+ json:"json"
+ }).invoke(basePath + "/admin/score/changeUserScore", function (loj) {
+ _this.$message.success('调整成功');
+ _this.scoreTab.showChangePaln=false;
+ _this.scoreTab.form={
+ amount:'',
+ remarks:''
+ }
+ _this.vipInfoFn(_this.searchValue);
+ _this.scoreCheckQuery();
+
+ });
+
+ },
+ changeScore(){
+ if (!this.vipInfo.id) {
+ this.$message.error('请选择用户');
+ return;
+ }else {
+ this.scoreTab.showChangePaln=true;
+ }
+
+ },
+
+ scoreCheckQuery() {
+ this.scoreCheckTableDataQueryFn();
+ },
+ scoreCheckTableDataQueryFn() {
+ let _this = this;
+ let scoreTab = _this.scoreTab;
+ let page = scoreTab.page;
+ var params = {};
+
+ if (!_this.vipInfo.id) {
+ return;
+ }
+
+ params.pageSize = page.pageSize;
+ params.pageNum =page.currentPage ;
+ params.vipId = _this.vipInfo.id;
+ params.remarks = scoreTab.remarks;
+ if (scoreTab.selectTime) {
+ params.beginTime = scoreTab.selectTime?moment(scoreTab.selectTime[0]).format("YYYY-MM-DD"):'';
+ params.endTime = scoreTab.selectTime?moment(scoreTab.selectTime[1]).format("YYYY-MM-DD"):'';
+ }
+ $.AjaxProxy({
+ p:params,
+ json:"json"
+ }).invoke(basePath + "/admin/score/getFlowList", function (loj) {
+ scoreTab.page.total = loj.getResult().total;
+ scoreTab.scoreTableDate = loj.getValue("rows");
+ });
+ },
+ scoreCheckSizeChange(val) {
+ this.scoreTab.page.pageSize = val;
+ this.scoreCheckTableDataQueryFn()
+ },
+ scoreCheckCurrentChange(val) {
+ this.scoreTab.page.currentPage = val;
+ this.scoreCheckTableDataQueryFn()
+ },
+ /************** 积分tab end **************/
+
+
+
/************** 皮肤检测tab start **************/
skinCheckQuery() {
this.skinCheckTableDataQueryFn();
@@ -1200,8 +1419,8 @@
params.offset = (page.currentPage - 1) * page.pageSize;
params.userId = _this.vipInfo.id;
if (skinTab.selectTime) {
- params.beginTime = moment(skinTab.selectTime[0]).format("YYYY-MM-DD");
- params.endTime = moment(skinTab.selectTime[1]).format("YYYY-MM-DD");
+ params.beginTime = skinTab.selectTime?moment(skinTab.selectTime[0]).format("YYYY-MM-DD"):'';
+ params.endTime = skinTab.selectTime?moment(skinTab.selectTime[1]).format("YYYY-MM-DD"):'';
}
$.AjaxProxy({
p:params
@@ -1271,6 +1490,11 @@
this.skinCheckTableDataQueryFn();
}
}
+ if (tab.name === "scoreTab") {
+ if (_this.scoreTab.scoreTableDate.length <= 0) {
+ this.scoreCheckTableDataQueryFn();
+ }
+ }
},
/********** 标签代码 start ************/
@@ -1316,7 +1540,7 @@
return;
}
vipId = this.vipInfo.id;
- openAddService();
+ openAddService(vipId);
},
// 开订单
addOrder() {
@@ -1339,10 +1563,10 @@
/********** 顶部按钮 start **********/
dateFormat(row, column) {
- return moment(column.yyTime).format("YYYY-MM-DD HH:mm");
+ return moment(row.yyTime).format("YYYY-MM-DD HH:mm");
},
oderTimeFormat(row, column) {
- return moment(column.orderTime).format("YYYY-MM-DD HH:mm:ss");
+ return moment(row.orderTime).format("YYYY-MM-DD HH:mm:ss");
},
}
});
--
Gitblit v1.9.1