From ec87cf1ee2b9382bf9d089711f0ff82ae8e7077c Mon Sep 17 00:00:00 2001 From: jyy <jyy> Date: Wed, 09 Jun 2021 20:44:16 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/api_score_meger' into api_score_meger --- zq-erp/src/main/resources/templates/views/admin/hive/beautySalon/vip.html | 264 +++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 228 insertions(+), 36 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 00ed863..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 @@ -149,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> @@ -177,10 +177,7 @@ <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> @@ -229,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" @@ -260,6 +259,7 @@ <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> @@ -269,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" @@ -296,6 +303,7 @@ <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> @@ -336,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> @@ -353,10 +357,11 @@ </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> @@ -458,8 +463,8 @@ <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="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> @@ -534,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> @@ -573,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> @@ -632,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> @@ -700,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 : [], @@ -720,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: { @@ -739,6 +846,7 @@ }, handleSelect(row) { this.vipInfoFn(row.key); + this.searchValue=row.key; }, // 请求会员信息 vipInfoFn(key) { @@ -772,7 +880,7 @@ _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(); @@ -1074,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 @@ -1124,7 +1232,7 @@ }, // 取消 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) { @@ -1157,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 @@ -1214,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(); @@ -1232,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 @@ -1303,6 +1490,11 @@ this.skinCheckTableDataQueryFn(); } } + if (tab.name === "scoreTab") { + if (_this.scoreTab.scoreTableDate.length <= 0) { + this.scoreCheckTableDataQueryFn(); + } + } }, /********** 标签代码 start ************/ @@ -1348,7 +1540,7 @@ return; } vipId = this.vipInfo.id; - openAddService(); + openAddService(vipId); }, // 开订单 addOrder() { @@ -1371,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