|  |  |  | 
|---|
|  |  |  | <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> | 
|---|
|  |  |  | 
|---|
|  |  |  | <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> | 
|---|
|  |  |  | 
|---|
|  |  |  | size="small" | 
|---|
|  |  |  | :key="tag.label" | 
|---|
|  |  |  | v-for="tag in tags.tags" | 
|---|
|  |  |  | closable | 
|---|
|  |  |  | :disable-transitions="false" | 
|---|
|  |  |  | @close="handleClose(tag)"> | 
|---|
|  |  |  | {{tag.label}} | 
|---|
|  |  |  | 
|---|
|  |  |  | @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> | 
|---|
|  |  |  | 
|---|
|  |  |  | <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" | 
|---|
|  |  |  | 
|---|
|  |  |  | <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> | 
|---|
|  |  |  | 
|---|
|  |  |  | 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="status" | 
|---|
|  |  |  | 
|---|
|  |  |  | <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> | 
|---|
|  |  |  | 
|---|
|  |  |  | 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> | 
|---|
|  |  |  | 
|---|
|  |  |  | </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> | 
|---|
|  |  |  | 
|---|
|  |  |  | <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> | 
|---|
|  |  |  | 
|---|
|  |  |  | <el-table-column | 
|---|
|  |  |  | prop="staffName" | 
|---|
|  |  |  | 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" | 
|---|
|  |  |  | 
|---|
|  |  |  | var app = new Vue({ | 
|---|
|  |  |  | el: '#app', | 
|---|
|  |  |  | data : { | 
|---|
|  |  |  | circleUrl : "https://cube.elemecdn.com/0/88/03b0d39583f48206768a7534e55bcpng.png", | 
|---|
|  |  |  | circleUrl : "", | 
|---|
|  |  |  | activeName : 'vipInfo', | 
|---|
|  |  |  | tags : { | 
|---|
|  |  |  | tags : [], | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | 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: { | 
|---|
|  |  |  | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | 
|---|
|  |  |  | _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(); | 
|---|
|  |  |  | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | 
|---|
|  |  |  | })); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 划扣 | 
|---|
|  |  |  | openHkService(index, row) { | 
|---|
|  |  |  | hkService(index, row) { | 
|---|
|  |  |  | openHkServcie(row.id); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | // 取消 | 
|---|
|  |  |  | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | 
|---|
|  |  |  | 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 | 
|---|
|  |  |  | 
|---|
|  |  |  | /********** 顶部按钮 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"); | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }); | 
|---|