master
Wangxubin1999 4 years ago
commit 0bf379cff8

@ -26,9 +26,9 @@ module.exports = {
assetsPublicPath: "/",
proxyTable: {
"/api": {
target: "http://192.168.31.214:8084/", //设置你调用的接口域名和端口号 别忘了加http 本地
// target: "http://192.168.31.214:8084/", //设置你调用的接口域名和端口号 别忘了加http 本地
//target: "http://192.168.31.209:8084/", //设置你调用的接口域名和端口号 别忘了加http 本地
// target: "http://192.168.31.201:8084/", //设置你调用的接口域名和端口号 别忘了加http 本地
target: "http://192.168.31.201:8084/", //设置你调用的接口域名和端口号 别忘了加http 本地
// target: "http://139.9.185.131:8098/", //设置你调用的接口域名和端口号 别忘了加http 天懿达正式
// target: "http://139.9.58.205:8084/", //设置你调用的接口域名和端口号 别忘了加http 天懿达正式华为云
// target: "http://139.9.185.131:9094/", //设置你调用的接口域名和端口号 别忘了加http 盛联
@ -46,7 +46,7 @@ module.exports = {
}
},
// Various Dev Server settingsss
host: "192.168.31.193", // can be overwritten by process.env.HOST
host: "192.168.31.194", // can be overwritten by process.env.HOST
port: 3000, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
autoOpenBrowser: false,
errorOverlay: true,

@ -9,6 +9,33 @@ export function succsee() {
});
}
// 充值短信重发
export function rechargeReissue(data){
return service({
url:"/api"+'/demay/ssm/rec/retransmission',
data,
method: "post"
})
}
// 疗程短信重发
export function courseReissue(data){
return service({
url:"/api" + '/demay/ssm/course/retransmission',
method: "post",
data
})
}
// 收银短信重发
export function sms(data){
return service({
url:"/api"+'/demay/ssm/cash/retransmission',
method: "post",
data
})
}
// 门店明细查询 平台端-门店管理-门店审核-门店明细查询
export function storeOne(params) {
return service({

@ -149,6 +149,17 @@ export function editBaseZengka(params) {
data: params
});
}
// 赠卡导出
export function exportCard(params){
return service({
url:"/api" + '/demay/ssm/baseZengka/export',
method: "post",
data:params,
responseType: "blob",
})
}
// 赠卡page
export function baseZengkaPage(params) {
return service({
@ -205,6 +216,15 @@ export function stateBaseGrouponCard(params) {
data: params
});
}
// 导出团购卡
export function Export(params){
return service({
url:"/api" + '/demay/ssm/baseGrouponCard/export',
method: "post",
data: params,
responseType: "blob",
})
}
// 添加团购人名单
export function addBaseGrouponList(params) {
return service({

@ -199,15 +199,16 @@ export default {
//
show(list, storeId) {
this.staffLists = [...list];
this.staffLists.forEach((item) => {
if (item.id || item.saleStaffId) {
item.staffNames = item.brandNumber + "-" + item.staffName;
} else {
item.staffNames = "";
}
});
console.log("🚀 ~ file: index.vue ~ line 202 ~ show ~ this.staffLists", this.staffLists)
if (storeId) {
this.storeId = storeId;
}

@ -15,6 +15,9 @@ export default {
storeIds: [],
};
},
created(){
this.show()
},
methods: {
getData() {
console.log(this.storeIds);

@ -13,10 +13,18 @@
<span slot="title">{{item.name}}</span>
</template>
<router-link v-for="(items) in item.menuLists" :key="items.id" :to="items.route" v-role='items.number' tag="p">
<el-menu-item :index="items.index" @click="rowClick(items)">
<i :class="items.icon"></i>
<el-menu-item :index="items.index" @click="rowClick(items)" v-if="!items.level">
<span slot="title">{{items.name}}</span>
</el-menu-item>
<el-submenu :index="items.index" v-else class="submenu">
<span slot="title">{{ items.name }}</span>
<router-link v-for="(ite) in items.children" :key="ite.id" :to="ite.route" v-role='ite.number' tag="p">
<el-menu-item :index="ite.index" @click="rowClick(ite)">
<i :class="ite.icon"></i>
<span slot="title">{{ite.name}}</span>
</el-menu-item>
</router-link>
</el-submenu>
</router-link>
</el-submenu>
</template>
@ -387,6 +395,14 @@ export default {
number: "500400",
id:"8008006",
},
{
name: "充值内调单",
icon: "el-icon-sort",
route: "/within",
index: "within",
number: "500410",
id:"8008009",
},
{
name: "加价转疗程",
icon: "el-icon-connection",
@ -402,7 +418,7 @@ export default {
index: "coursetorec",
number: "500410",
id:"8008008",
},
},
{
name: "疗程账户延期",
icon: "el-icon-connection",
@ -419,14 +435,41 @@ export default {
number: "5001800",
id:"8008027",
},
{
name: "充值内调单",
icon: "el-icon-sort",
route: "/within",
index: "within",
number: "500410",
id:"8008009",
},
// {
// level:true,
// name:"",
// index:"/within",
// number:"500410",
// id:'99999999',
// route:"/within",
// icon: "el-icon-sort",
// children:[
// {
// name: "",
// icon: "el-icon-sort",
// route: "/within",
// index: "within",
// number: "500410",
// id:"8008009",
// },
// {
// name: "",
// icon: "el-icon-connection",
// route: "/raiseReatment",
// index: "raiseReatment",
// number: "500410",
// id:"8008007",
// },
// {
// name: "",
// icon: "el-icon-connection",
// route: "/coursetorec",
// index: "coursetorec",
// number: "500410",
// id:"8008008",
// },
// ]
// },
{
name: "会员转卡",
icon: "el-icon-sort",
@ -1141,7 +1184,10 @@ export default {
.el-menu {
border: none;
}
*>>> .el-menu-item, .el-submenu__title{
height: 0.175rem;
line-height: 0.175rem;
}
/* .asider-icon{
} */

@ -156,42 +156,55 @@
</el-table-column>
<el-table-column v-if="radioAccount==1" label="剩余次数" align="center" width="160">
<template slot-scope='scope'>
<el-input @change="changeInput(scope.row,scope.$index )" @blur="scope.row.courseRestCountNew==''?scope.row.courseRestCountNew=0:scope.row.courseRestCountNew" oninput="this.value=this.value.replace(/[^\-?\d.]/g,'')" v-if="scope.$index==1" v-model="scope.row.courseRestCountModify"></el-input>
<el-input @change="changeInput(scope.row,4 )" @blur="scope.row.courseRestCountNew==''?scope.row.courseRestCountNew=0:scope.row.courseRestCountNew" oninput="this.value=this.value.replace(/[^\-?\d.]/g,'')" v-if="scope.$index==1" v-model="scope.row.courseRestCountModify"></el-input>
<span v-else>{{scope.$index==0?scope.row.courseRestCount:scope.row.courseRestCountNew}}</span>
</template>
</el-table-column>
<el-table-column v-if="radioAccount==1" label="可用次数" align="center" width="160">
<template slot-scope='scope'>
<el-input oninput="this.value=this.value.replace(/[^\-?\d.]/g,'')" @change="changeInput(scope.row,scope.$index )" v-if="scope.$index==1" v-model="scope.row.courseConsumeCountModify"></el-input>
<el-input oninput="this.value=this.value.replace(/[^\-?\d.]/g,'')" @change="changeInput(scope.row,5 )" v-if="scope.$index==1" v-model="scope.row.courseConsumeCountModify"></el-input>
<span v-else>{{scope.$index==0?scope.row.courseConsumeCount:scope.row.courseConsumeCountNew}}</span>
</template>
</el-table-column>
<el-table-column prop="tradeMoney" v-if="radioAccount==0" label="剩余金额" align="center" min-width="80">
<template slot-scope="scope">
<el-input @change="changeInput(scope.row,scope.$index )" v-if="scope.$index==1" v-model="scope.row.cardRestMoneyModify"></el-input>
<el-input oninput="this.value=this.value.replace(/[^\-?\d.]/g,'')" @change="changeInput(scope.row,0 )" v-if="scope.$index==1" v-model="scope.row.cardRestMoneyModify"></el-input>
<span v-else>{{scope.$index==0?scope.row.cardRestMoney:scope.row.cardRestMoneyNew}}</span>
</template>
</el-table-column>
<el-table-column prop="tradeMoney" v-if="radioAccount==0" label="可用金额" align="center" min-width="80">
<template slot-scope='scope'>
<el-input @change="changeInput(scope.row,scope.$index )" v-if="scope.$index==1" v-model="scope.row.cardConsumeMoneyModify"></el-input>
<el-input oninput="this.value=this.value.replace(/[^\-?\d.]/g,'')" @change="changeInput(scope.row,1 )" v-if="scope.$index==1" v-model="scope.row.cardConsumeMoneyModify"></el-input>
<span v-else>{{scope.$index==0?scope.row.cardConsumeMoney:scope.row.cardConsumeMoneyNew}}</span>
</template>
</el-table-column>
<el-table-column prop="tradeMoney" v-if="radioAccount==0" label="赠送剩余金额" align="center" min-width="80">
<template slot-scope='scope'>
<el-input @change="changeInput(scope.row,scope.$index )" v-if="scope.$index==1&&scope.row.type==0" v-model="scope.row.cardGiftMoneyModify">
<el-input @change="changeInput(scope.row,2 )" v-if="scope.$index==1&&scope.row.type==0" v-model="scope.row.cardGiftMoneyModify">
</el-input>
<span v-else>{{scope.$index==0?scope.row.cardGiftMoney:scope.row.cardGiftMoneyNew}}</span>
</template>
</el-table-column>
<el-table-column prop="giftConsumeMoney" v-if="radioAccount==0" label="赠送可用金额" align="center" min-width="80">
<template slot-scope='scope'>
<el-input @change="changeInput(scope.row,scope.$index )" v-if="scope.$index==1&&scope.row.type==0" v-model="scope.row.giftConsumeMoneyModify">
<el-input @change="changeInput(scope.row,3 )" v-if="scope.$index==1&&scope.row.type==0" v-model="scope.row.giftConsumeMoneyModify">
</el-input>
<span v-else>{{scope.$index==0?scope.row.giftConsumeMoney:scope.row.giftConsumeMoneyNew}}</span>
</template>
</el-table-column>
<el-table-column align="center" label="异常说明" min-width="150" v-if="radioAccount==0||radioAccount==1">
<template slot-scope='scope'>
<div style="width:250px">
<el-input
type="textarea"
maxlength="100"
show-word-limit
:autosize="{ minRows: 2, maxRows: 4}"
placeholder="请输入内容"
v-model="scope.row.textarea"/>
</div>
</template>
</el-table-column>
</el-table>
<div slot="footer" class="dialog-footer">
<el-button size="mini" type="primary" plain @click="handleClose"> </el-button>
@ -300,10 +313,138 @@ export default {
console.log("value", value);
console.log("index", index);
},
changeInput(row, index) {
console.log(row);
changeInput(row,index){
console.log(row)
// 0 1 2 3 4 5
// courseRestCountModify courseConsumeCountModify cardRestMoneyModify cardConsumeMoneyModify cardGiftMoneyModify giftConsumeMoneyModify
// courseRestCountNew courseConsumeCountNew cardRestMoneyNew cardConsumeMoneyNew cardGiftMoneyNew giftConsumeMoneyNew
switch (index) {
case 0:
if(row.cardRestMoneyModify*1||row.cardRestMoneyModify*1===0){
//
let total = row.cardRestMoneyModify*1
//
if(total < row.cardConsumeMoneyModify*1){
row.cardRestMoneyModify = 0
this.accountList[2].cardRestMoneyNew = 0
this.$alert("剩余金额不能小于可用金额", "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}else{
this.$set(this.accountList[2],'cardRestMoneyNew',total)
// this.accountList[2].cardRestMoneyNew = total
}
}
break;
case 1:
if(row.cardConsumeMoneyModify*1||row.cardConsumeMoneyModify*1===0){
//
let total = row.cardConsumeMoneyModify*1
//
if( total>row.cardRestMoneyModify*1 ){
row.cardConsumeMoneyModify = 0
this.accountList[2].cardConsumeMoneyNew = 0
this.$alert("可用金额不能大于剩余金额", "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}else{
// this.accountList[2].cardConsumeMoneyNew = total
this.$set(this.accountList[2],'cardConsumeMoneyNew',total)
console.log(this.accountList[2])
}
}
break;
case 2:
if(row.cardGiftMoneyModify*1||row.cardGiftMoneyModify*1===0){
//
let total = row.cardGiftMoneyModify*1
//
if(total < row.giftConsumeMoneyModify*1){
row.cardGiftMoneyModify = 0
this.accountList[2].cardGiftMoneyNew = 0
this.$alert("赠送剩余金额不能小于赠送可用金额", "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}else{
this.accountList[2].cardGiftMoneyNew = total
}
}
break;
case 3:
if(row.giftConsumeMoneyModify*1||row.giftConsumeMoneyModify*1===0){
//
let total = row.giftConsumeMoneyModify*1
//
if(total>row.cardGiftMoneyModify*1){
row.giftConsumeMoneyModify = 0
this.accountList[2].giftConsumeMoneyNew = 0
this.$alert("赠送可用金额不能大于赠送剩余金额", "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}else{
this.accountList[2].giftConsumeMoneyNew = total
}
}
break;
case 4:
if(row.courseRestCountModify*1||row.courseRestCountModify*1===0){
//
let total = row.courseRestCountModify*1
//
if(total<row.courseConsumeCountModify*1){
row.courseRestCountModify = 0
this.accountList[2].courseRestCountNew = 0
this.$alert("剩余次数不能小于可用次数", "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}else{
this.accountList[2].courseRestCountNew = total
}
}
break;
case 5:
if(row.courseConsumeCountModify*1||row.courseConsumeCountModify*1===0){
//
let total = row.courseConsumeCountModify*1
if(total > row.courseRestCountModify*1){
row.courseConsumeCountModify = 0
this.accountList[2].courseConsumeCountNew = 0
this.$alert("可用次数不能大于剩余次数", "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}else{
this.accountList[2].courseConsumeCountNew = total
}
}
break;
}
},
changeInputActive(row, index) {
let list = [...this.accountList];
if (list[2].courseRestCountNew != undefined) {
list[2].courseRestCountNew =
list[0].courseRestCount + list[1].courseRestCountModify * 1;
@ -319,19 +460,20 @@ export default {
center: true,
callback: (action) => {},
});
this.accountList[1].courseConsumeCountModify = 0
this.changeInput(row)
}
}
if (list[2].cardRestMoneyNew != undefined) {
if (list[2].cardRestMoneyNew) {
list[2].cardRestMoneyNew =
list[0].cardRestMoney + list[1].cardRestMoneyModify * 1;
}
if (list[2].cardGiftMoneyNew != undefined) {
if (list[2].cardGiftMoneyNew) {
list[2].cardGiftMoneyNew =
list[0].cardGiftMoney + list[1].cardGiftMoneyModify * 1;
}
if (list[2].cardConsumeMoneyNew != undefined) {
list[2].cardConsumeMoneyNew =
list[0].cardConsumeMoney + list[1].cardConsumeMoneyModify * 1;
if (list[2].cardConsumeMoneyNew) {
list[2].cardConsumeMoneyNew = list[0].cardConsumeMoney + list[1].cardConsumeMoneyModify * 1;
if (list[2].cardConsumeMoneyNew > list[2].cardRestMoneyNew) {
this.$alert("可用金额不能大于剩余金额", "提示", {
confirmButtonText: "确定",
@ -340,9 +482,11 @@ export default {
center: true,
callback: (action) => {},
});
this.accountList[1].cardConsumeMoneyModify = 0
this.changeInput(row)
}
}
if (list[2].giftConsumeMoneyNew != undefined) {
if (list[2].giftConsumeMoneyNew) {
list[2].giftConsumeMoneyNew =
list[0].giftConsumeMoney + list[1].giftConsumeMoneyModify * 1;
if (list[2].giftConsumeMoneyNew > list[2].cardGiftMoneyNew) {
@ -353,13 +497,10 @@ export default {
center: true,
callback: (action) => {},
});
this.accountList[1].giftConsumeMoneyModify = 0
this.changeInput(row)
}
}
console.log(list);
list.forEach((item) => {
console.log(item);
});
this.accountList = [...list];
},
//

@ -116,6 +116,8 @@
<el-button size="mini" type="primary" @click="detailDialog=false"></el-button>
</span>
<span v-else slot="footer" class="dialog-footer">
<!-- 补单才需要短信重发 -->
<el-button size="mini" type="primary" @click="handleReissue" v-if="form.isAddition===1"></el-button>
<el-button size="mini" type="primary" plain @click="cancel()"> </el-button>
<el-button v-if="form.isCancel==0" size="mini" type="primary" @click="subStaffRatio()"> </el-button>
</span>
@ -123,7 +125,7 @@
</template>
<script>
import { recEditStaff, selectOne } from "@/api/eashier.js";
import { recEditStaff, selectOne,rechargeReissue } from "@/api/eashier.js";
import admin from "@/components/staffList/admin/index";
import manager from "@/components/staffList/manager/index";
import staffsles from "@/components/staffList/staff/index";
@ -142,6 +144,22 @@ export default {
};
},
methods: {
//
handleReissue(){
let params = {
collectionAmount:this.form['collectionAmount'],
additionDate:this.form['additionDate'],
mobilePhone:this.form['mobilePhone']
}
rechargeReissue(params).then(res=>{
// console.log(res)
if(res.code === '000000'){
return this.$message.success({
message: "操作成功!",
});
}
})
},
//
handleClose() {
this.form = Object.assign({});

@ -19,8 +19,8 @@
<el-table :data="outList" max-height="150" :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)' ,color:'#eeeeee'}" style="margin-top: 5px;">
<el-table-column label="项目编码" show-overflow-tooltip align="center" prop="courseProjectNum" min-width="80"></el-table-column>
<el-table-column label="账户名称" show-overflow-tooltip align="center" prop="courseProjectName" min-width="120"></el-table-column>
<el-table-column label="可用次数" align="center" prop="courseConsumeCount" min-width="70"></el-table-column>
<el-table-column label="疗程单价" align="center" prop="unitMoney" min-width="70"></el-table-column>
<el-table-column label="可用次数" align="center" prop="courseAfterUsableCount" min-width="70"></el-table-column>
<el-table-column label="疗程单价" align="center" prop="price" min-width="70"></el-table-column>
<el-table-column label="转前次数" align="center" prop="courseBeforeUsableCount" min-width="70"></el-table-column>
<el-table-column label="转出次数" align="center" prop="rollOffCount" min-width="70"></el-table-column>
<el-table-column label="转后次数" align="center" prop="courseAfterUsableCount" min-width="70"></el-table-column>
@ -28,10 +28,12 @@
<el-table-column label="转出金额" align="center" prop="rollOffMoney" min-width="70"></el-table-column>
<el-table-column label="转后金额" align="center" prop="courseAfterUsableMoney" min-width="70"></el-table-column>
</el-table>
<span class="padding-left-sm ">员工业绩</span>
<div class=" flex align-start flex-wrap padding-top">
<staffslesout ref="staffslesout" @staffslesData="staffslesDataout" :is-true="true"></staffslesout>
</div>
<span class="padding-left-sm ">员工</span>
<div class=" flex align-start flex-wrap padding-top">
<staffslesout ref="staffslesout" @staffslesData="staffslesDataout" :is-true="true"></staffslesout>
</div>
</div>
<div class="raisetable bg-white margin-left-lg">
<div class="raisetable-sum">
@ -48,7 +50,7 @@
</el-table>
</div>
<span class="text-bold padding-xs">员工</span>
<div class="into-table-width flex justify-center align-start flex-wrap padding-top">
<div class="into-table-width flex align-start flex-wrap padding-top">
<staffsles ref="staffsles" @staffslesData="staffslesData" :is-true='true'></staffsles>
</div>
</el-form>
@ -108,7 +110,7 @@ export default {
setStaffs() {
var that = this;
this.$nextTick(() => {
// console.log(that.$refs.staffsles);
that.$refs.staffslesout.show(that.form.staffListsout);
});
},
@ -157,6 +159,8 @@ export default {
rechargeAfterMoney: item.rechargeAfterMoney,
rechargeAccountId: item.rechargeAccountId,
typeRatio: item.typeRatio,
cardConsumeMoney:item.cardConsumeMoney,
discount:item.discount
},
];
this.form.staffListsout=this.form.coursePayListRequests[0].staffLists
@ -176,6 +180,11 @@ export default {
this.form.staffLists.forEach((items) => {
items.staffNames = items.brandNumber + "--" + items.staffName;
});
this.form.staffListsout = this.form.coursePayListRequests[0].staffLists;
this.form.staffListsout.forEach((items) => {
items.staffNames = items.brandNumber + "--" + items.staffName;
});
if (this.form.staffLists.length == 0) {
this.form.staffLists.push({ ratio: 100 });
}

@ -4,38 +4,92 @@
<el-form inline>
<el-form-item label="分店名称:" :label-width="labelWidth">
<div class="form-width-ms">
<el-input v-model="label">
<el-button size="mini" slot="append" icon="el-icon-search" @click="openBranch"></el-button>
<el-input v-model="label">
<el-button
size="mini"
slot="append"
icon="el-icon-search"
@click="openBranch"
></el-button>
</el-input>
</div>
</el-form-item>
<el-form-item label="手机号:" :label-width="labelWidth">
<div class="form-width-ms">
<el-input oninput="this.value=this.value.replace(/\D/g,'')" pattern="[0-9]*" maxlength="11" v-model="proForm.mobilePhone" @blur="memberOne" @change="memberOne">
<el-button size="mini" slot="append" icon="el-icon-search" @click="openMember"></el-button>
<el-input
oninput="this.value=this.value.replace(/\D/g,'')"
pattern="[0-9]*"
maxlength="11"
v-model="proForm.mobilePhone"
@blur="memberOne"
@change="memberOne"
>
<el-button
size="mini"
slot="append"
icon="el-icon-search"
@click="openMember"
></el-button>
</el-input>
</div>
</el-form-item>
<el-form-item label="会员名字:" :label-width="labelWidth">
<div class="form-width-ms">
{{proForm.memberName}}
{{ proForm.memberName }}
</div>
</el-form-item>
<el-form-item label="业务时间:" :label-width="labelWidth" v-show="isAddition==1">
<el-form-item
label="业务时间:"
:label-width="labelWidth"
v-show="isAddition == 1"
>
<div class="form-width-ms">
<span style="cursor: pointer;" @click="(recDateShow=true)" v-show="!recDateShow">{{proForm.additionDate }} <i class="el-icon-edit"></i> </span>
<el-date-picker size="medium" @blur='(recDateShow=false)' :picker-options="pickerOptions" v-show="recDateShow" ref="recDate" v-model="proForm.additionDate" format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="选择日期">
<span
style="cursor: pointer;"
@click="recDateShow = true"
v-show="!recDateShow"
>{{ proForm.additionDate }} <i class="el-icon-edit"></i>
</span>
<el-date-picker
size="medium"
@blur="recDateShow = false"
:picker-options="pickerOptions"
v-show="recDateShow"
ref="recDate"
v-model="proForm.additionDate"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
placeholder="选择日期"
>
</el-date-picker>
</div>
</el-form-item>
<div class="raisetable bg-white margin-left-lg margin-bottom-xs">
<div class="raisetable-sum ">
<div>转出疗程 <el-button v-if="proForm.memberName" :disabled="!proForm.memberId" size="mini" type="primary" @click='openPro(1)'>添加
<div>
转出疗程
<el-button
v-if="proForm.memberName"
:disabled="!proForm.memberId"
size="mini"
type="primary"
@click="openPro(1)"
>添加
</el-button>
</div>
<div style="width: 150px;">总金额 : {{outMoneys}}</div>
<div style="width: 150px;">总金额 : {{ outMoneys }}</div>
</div>
<el-table :data="outList" empty-text=' , ' max-height="200" :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)' ,color:'#eeeeee'}" style="margin-top: 5px;">
<el-table
:data="outList"
empty-text="暂无数据 , 点击添加疗程"
max-height="200"
:header-cell-style="{
background: 'linear-gradient(#6cb3ff, #1873d4)',
color: '#eeeeee'
}"
style="margin-top: 5px;"
>
<el-table-column type="expand">
<template slot-scope="scope">
<div class="flex justify-start align-center flex-wrap ">
@ -75,52 +129,232 @@
{{scope.row.rollOffCount}}
<i class="el-icon-edit text-cyan"></i>
</div>
<el-input v-else v-focus class="form-input-width-xs" type='number' v-model="scope.row.rollOffCount" @blur="endrollOffCount(scope.row,scope.$index)"></el-input>
</template>
</el-table-column>
<el-table-column label="转后次数" align="center" prop="courseAfterUsableCount" min-width="70"></el-table-column>
<el-table-column label="转前金额" align="center" prop="courseBeforeUsableMoney" min-width="70"></el-table-column>
<el-table-column label="转出金额" align="center" prop="rollOffMoney" min-width="90">
<template slot-scope='scope'>
<div class="form-input-width" v-if="outMoneyIndex!=scope.$index" @click="openEditOut(scope.row,scope.$index,outMoneyIndex=scope.$index)">
{{scope.row.rollOffMoney}}
<el-table-column
label="项目编码"
show-overflow-tooltip
align="center"
prop="courseProjectNum"
min-width="80"
></el-table-column>
<el-table-column
label="账户名称"
show-overflow-tooltip
align="center"
prop="courseProjectName"
min-width="120"
></el-table-column>
<el-table-column
label="可用次数"
align="center"
prop="courseConsumeCount"
min-width="70"
></el-table-column>
<el-table-column
label="疗程单价"
align="center"
prop="price"
min-width="70"
></el-table-column>
<el-table-column
label="转前次数"
align="center"
prop="courseBeforeUsableCount"
min-width="70"
></el-table-column>
<el-table-column
label="转出次数"
align="center"
prop="rollOffCount"
min-width="90"
>
<template slot-scope="scope">
<div
class="form-input-width"
v-if="!scope.row.rollOffCountShow"
@click="
openEditOut(
scope.row,
scope.$index,
(scope.row.rollOffCountShow = true)
)
"
>
{{ scope.row.rollOffCount }}
<i class="el-icon-edit text-cyan"></i>
</div>
<el-input
v-else
v-focus
class="form-input-width-xs"
type="number"
v-model="scope.row.rollOffCount"
@blur="endrollOffCount(scope.row, scope.$index)"
></el-input>
</template>
</el-table-column>
<el-table-column
label="转后次数"
align="center"
prop="courseAfterUsableCount"
min-width="70"
></el-table-column>
<el-table-column
label="转前金额"
align="center"
prop="courseBeforeUsableMoney"
min-width="70"
></el-table-column>
<el-table-column
label="转出金额"
align="center"
prop="rollOffMoney"
min-width="90"
>
<template slot-scope="scope">
<div
class="form-input-width"
v-if="outMoneyIndex != scope.$index"
@click="
openEditOut(
scope.row,
scope.$index,
(outMoneyIndex = scope.$index)
)
"
>
{{ scope.row.rollOffMoney }}
<i class="el-icon-edit text-cyan"></i>
</div>
<el-input v-else v-focus class="form-input-width-xs" type='number' v-model="scope.row.rollOffMoney" @blur="endOutMoney(scope.row)"></el-input>
<el-input
v-else
v-focus
class="form-input-width-xs"
type="number"
v-model="scope.row.rollOffMoney"
@blur="endOutMoney(scope.row)"
></el-input>
</template>
</el-table-column>
<el-table-column label="转后金额" align="center" prop="courseAfterUsableMoney" min-width="70"></el-table-column>
<el-table-column
label="转后金额"
align="center"
prop="courseAfterUsableMoney"
min-width="70"
></el-table-column>
<el-table-column align="center" fixed="right" min-width="80">
<template slot-scope='scope'>
<div @click="delOldPro(scope.$index)" class="el-icon-delete"></div>
<template slot-scope="scope">
<div
@click="delOldPro(scope.$index)"
class="el-icon-delete"
></div>
</template>
</el-table-column>
</el-table>
</div>
<div class="raisetable bg-white margin-left-lg">
<div class="raisetable-sum">
<div>转入充值 <el-button v-if="proForm.memberName" size="mini" type="primary" :disabled="inList.length==1" @click='openPro(0)'>添加</el-button>
<el-button size="mini" v-if="proForm.memberName" type="warning" :disabled="inList.length==0" @click='backout'>撤销</el-button>
<div>
转入充值
<el-button
v-if="proForm.memberName"
size="mini"
type="primary"
:disabled="inList.length == 1"
@click="openPro(0)"
>添加</el-button
>
<el-button
size="mini"
v-if="proForm.memberName"
type="warning"
:disabled="inList.length == 0"
@click="backout"
>撤销</el-button
>
</div>
<div style="width: 150px;">总金额 : {{inMoneys}}</div>
<div style="width: 150px;">总金额 : {{ inMoneys }}</div>
</div>
<el-table :data="inList" max-height="150" empty-text=' , ' :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)' ,color:'#eeeeee'}" style="margin-top: 5px;">
<el-table-column label="充值编码" show-overflow-tooltip align="center" prop="rechargeTypeNum" min-width="100"></el-table-column>
<el-table-column label="充值名称" show-overflow-tooltip align="center" prop="rechargeTypeName" min-width="110"></el-table-column>
<el-table-column label="充值金额" align="center" prop="rechargeMoney" min-width="70"></el-table-column>
<el-table-column label="折扣(%)" align="center" prop="discount" min-width="70"></el-table-column>
<el-table-column label="转前金额" align="center" prop="rechargeBeforeMoney" min-width="70"></el-table-column>
<el-table-column label="转入金额" align="center" prop="rechargeInMoney" min-width="90">
<template slot-scope='scope'>
<div class="form-input-width" v-if="!scope.row.rechargeInMoneyShow" @click="openEdit(scope.row,scope.$index,scope.row.rechargeInMoneyShow=true)">
{{scope.row.rechargeInMoney}}
<el-table
:data="inList"
max-height="150"
empty-text="暂无数据 , 点击添加充值"
:header-cell-style="{
background: 'linear-gradient(#6cb3ff, #1873d4)',
color: '#eeeeee'
}"
style="margin-top: 5px;"
>
<el-table-column
label="充值编码"
show-overflow-tooltip
align="center"
prop="rechargeTypeNum"
min-width="100"
></el-table-column>
<el-table-column
label="充值名称"
show-overflow-tooltip
align="center"
prop="rechargeTypeName"
min-width="110"
></el-table-column>
<el-table-column
label="充值金额"
align="center"
prop="rechargeMoney"
min-width="70"
></el-table-column>
<el-table-column
label="折扣(%)"
align="center"
prop="discount"
min-width="70"
></el-table-column>
<el-table-column
label="转前金额"
align="center"
prop="rechargeBeforeMoney"
min-width="70"
></el-table-column>
<el-table-column
label="转入金额"
align="center"
prop="rechargeInMoney"
min-width="90"
>
<template slot-scope="scope">
<div
class="form-input-width"
v-if="!scope.row.rechargeInMoneyShow"
@click="
openEdit(
scope.row,
scope.$index,
(scope.row.rechargeInMoneyShow = true)
)
"
>
{{ scope.row.rechargeInMoney }}
<i class="el-icon-edit text-cyan"></i>
</div>
<el-input v-focus class="form-input-width-xs" type="number" v-else v-model="scope.row.rechargeInMoney" @blur="endEditPrice(scope.row,scope.$index)"></el-input>
<el-input
v-focus
class="form-input-width-xs"
type="number"
v-else
v-model="scope.row.rechargeInMoney"
@blur="endEditPrice(scope.row, scope.$index)"
></el-input>
</template>
</el-table-column>
<el-table-column label="转后金额" align="center" prop="rechargeAfterMoney" min-width="70"></el-table-column>
<el-table-column
label="转后金额"
align="center"
prop="rechargeAfterMoney"
min-width="70"
></el-table-column>
</el-table>
</div>
@ -130,11 +364,30 @@
<manager class="border padding-bottom-xs " ref="manager" @managerData="managerData"></manager> -->
</div>
<div class="flex justify-center padding-top ">
<el-button size="mini" type="info" @click='empty()' plain>清空</el-button>
<el-button size="mini" v-if="isAddition==0" type="primary" @click="isAddition = 1"></el-button>
<el-button size="mini" v-else type="success" @click="isAddition = 0">加价</el-button>
<el-button size="mini" type="primary" @click='raiseProList()' plain>列表</el-button>
<el-button size="mini" type="primary" @click='submit(true,loading=true)' :loading="loading" :disabled="outList.length==0&&inList.length==0">提交</el-button>
<el-button size="mini" type="info" @click="empty()" plain
>清空</el-button
>
<el-button
size="mini"
v-if="isAddition == 0"
type="primary"
@click="isAddition = 1"
>补单</el-button
>
<el-button size="mini" v-else type="success" @click="isAddition = 0"
>加价</el-button
>
<el-button size="mini" type="primary" @click="raiseProList()" plain
>列表</el-button
>
<el-button
size="mini"
type="primary"
@click="submit(true, (loading = true))"
:loading="loading"
:disabled="outList.length == 0 && inList.length == 0"
>提交</el-button
>
</div>
</el-form>
<member ref="member" @memberData="memberData"></member>
@ -142,6 +395,7 @@
<project ref="project" @projectData="projectData"></project>
<staffratio ref="staffratio" @staffratioData="staffratioData"></staffratio>
<recType ref="recType" @recTypeData="recTypeData"></recType>
<staffratio ref="staffratio" @staffratioData="staffratioData"></staffratio>
</div>
</template>
@ -150,7 +404,7 @@ import { propage } from "@/api/storeManage.js";
import {
storeMemberOne,
addRechargeTurnCourse,
recAccountOne,
recAccountOne
} from "@/api/eashier.js";
import staffratio from "./staffratio";
import member from "@/components/member/index";
@ -176,7 +430,7 @@ export default {
pickerOptions: {
disabledDate(time) {
return time.getTime() > Date.now();
},
}
},
projectDialogVisible: false,
recDateShow: false,
@ -186,9 +440,9 @@ export default {
additionDate: null,
manageStaffName: null,
mobilePhone: null,
Branch:null,
Branch: null,
staffLists: [{ ratio: 100 }],
payLists: [],
payLists: []
},
outList: [],
inList: [],
@ -197,7 +451,7 @@ export default {
total: 0,
pageNum: 1,
pageSize: 10,
list: [],
list: []
},
proRadio: null,
proRadioForm: null,
@ -237,13 +491,16 @@ export default {
setStaffRatio() {
var that = this;
setTimeout(() => {
if(this.StoreIds){
that.$refs.staffsles.show(that.proForm.staffLists,that.StoreIds);
}else{
if (this.StoreIds) {
that.$refs.staffsles.show(that.proForm.staffLists, that.StoreIds);
} else {
that.$refs.staffsles.show(that.proForm.staffLists);
}
console.log("🚀 ~ file: index.vue ~ line 189 ~ setTimeout ~ that.proForm.staffLists", that.proForm.staffLists)
console.log(
"🚀 ~ file: index.vue ~ line 189 ~ setTimeout ~ that.proForm.staffLists",
that.proForm.staffLists
);
}, 800);
},
staffslesData(v) {
@ -252,21 +509,19 @@ export default {
openMember() {
this.$refs.member.show();
},
openBranch(){
openBranch() {
this.$refs.Branch.show();
},
memberData(v) {
this.proForm.mobilePhone = v.mobilePhone;
this.memberOne();
},
BranchData(v) {
this.StoreIds=v.id
this.label=v.label
this.setStaffRatio();
console.log("🚀 ~ file: index.vue ~ line 217 ~ BranchData ~ " , 'aaaa')
this.StoreIds = v.id;
this.label = v.label;
this.setStaffRatio();
console.log("🚀 ~ file: index.vue ~ line 217 ~ BranchData ~ ", "aaaa");
},
submit() {
this.proForm.rechargeInMoney = this.inMoneys;
@ -285,7 +540,7 @@ export default {
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
callback: action => {}
});
this.loading = false;
}
@ -295,11 +550,11 @@ export default {
},
addRechargeTurnCourse() {
var that = this;
addRechargeTurnCourse(this.proForm).then((res) => {
addRechargeTurnCourse(this.proForm).then(res => {
this.loading = false;
if (res.code == "000000") {
this.$message.success({
message: res.message,
message: res.message
});
this.empty();
} else {
@ -308,7 +563,7 @@ export default {
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
callback: action => {}
});
}
});
@ -340,7 +595,13 @@ export default {
form.cardSalesAchievement=rows[0].cardSalesAchievement
form.cardSalesCommission=rows[0].cardSalesCommission
let flag = true;
this.outList.forEach((item) => {
form.staffLists=rows
form.cardAchievementAmount=rows[0].cardAchievementAmount
form.cardCommissionAmount=rows[0].cardCommissionAmount
form.cardSalesAchievement=rows[0].cardSalesAchievement
form.cardSalesCommission=rows[0].cardSalesCommission
this.outList.forEach(item => {
if (form.id == item.form.id) {
flag = false;
}
@ -358,13 +619,13 @@ export default {
let form = {
storeId: this.proForm.storeId,
memberId: this.proForm.memberId,
rechargeTypeId: v.id,
rechargeTypeId: v.id
};
v.rechargeTypeId = v.id;
recAccountOne(form).then((res) => {
recAccountOne(form).then(res => {
if (res.data != undefined && res.data.state == 0) {
this.$message.error({
message: "账户已锁定, 不允许使用 ! ",
message: "账户已锁定, 不允许使用 ! "
});
} else {
if (res.code == "000000" || res.code == "200004") {
@ -389,7 +650,7 @@ export default {
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
callback: action => {}
});
}
}
@ -404,16 +665,19 @@ export default {
// this.empty();
let row = { ...this.proForm };
let form = {
mobilePhone: mobilePhone,
storeId: sessionStorage.getItem("parentId"),
};
mobilePhone: mobilePhone,
storeId: sessionStorage.getItem("parentId")
};
if (mobilePhone) {
console.log("🚀 ~ file: index.vue ~ line 347 ~ memberOne ~ this.StoreIds", this.StoreIds)
console.log(
"🚀 ~ file: index.vue ~ line 347 ~ memberOne ~ this.StoreIds",
this.StoreIds
);
let form = {
mobilePhone: mobilePhone,
storeId: sessionStorage.getItem("parentId"),
storeId: sessionStorage.getItem("parentId")
};
storeMemberOne(form).then((res) => {
storeMemberOne(form).then(res => {
this.proForm.mobilePhone = mobilePhone;
if (res.code == "000000") {
row.memberId = res.data.id;
@ -431,7 +695,7 @@ export default {
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
callback: action => {}
});
}
});
@ -448,13 +712,12 @@ export default {
this.$refs.recType.show();
}
if (num == 1) {
if(this.StoreIds){
this.proForm.storeId=this.StoreIds
}else{
this.proForm.storeId=""
if (this.StoreIds) {
this.proForm.storeId = this.StoreIds;
} else {
this.proForm.storeId = "";
}
this.$refs.project.show(this.proForm)
this.$refs.project.show(this.proForm);
}
},
delOldPro(index) {
@ -467,13 +730,13 @@ export default {
},
openEdit(row, index) {
let form = {
...row,
...row
};
this.inList.splice(index, 1, form);
},
openEditOut(row, index) {
let form = {
...row,
...row
};
this.outList.splice(index, 1, form);
},
@ -488,7 +751,7 @@ export default {
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
callback: action => {}
});
row.rollOffCount = row.courseConsumeCount;
} else {
@ -511,7 +774,7 @@ export default {
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
callback: action => {}
});
row.rollOffMoney = money;
} else {
@ -523,13 +786,13 @@ export default {
sumMoney() {
let inMoneys = 0;
let outMoneys = 0;
this.inList.forEach((item) => {
this.inList.forEach(item => {
item.rechargeInMoney = this.outMoneys;
inMoneys += item.rechargeInMoney * 1;
item.rechargeAfterMoney =
(item.rechargeBeforeMoney + item.rechargeInMoney).toFixed(2) * 1;
});
this.outList.forEach((item) => {
this.outList.forEach(item => {
item.courseAfterUsableCount =
(item.courseBeforeUsableCount - item.rollOffCount).toFixed(0) * 1;
item.courseAfterUsableMoney =
@ -562,9 +825,9 @@ export default {
state: 1,
directConsumption: 0,
storeIds: JSON.parse(sessionStorage.getItem("storeIdLists")),
isCooperation: 0,
isCooperation: 0
};
propage(page).then((res) => {
propage(page).then(res => {
if (res.code == "000000") {
this.proPageInfo = res.pageInfo;
} else {
@ -573,7 +836,7 @@ export default {
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
callback: action => {}
});
}
});
@ -585,9 +848,9 @@ export default {
pageSize: this.proPageInfo.pageSize,
state: 1,
directConsumption: 0,
storeIds: JSON.parse(sessionStorage.getItem("storeIdLists")),
storeIds: JSON.parse(sessionStorage.getItem("storeIdLists"))
};
propage(page).then((res) => {
propage(page).then(res => {
if (res.code == "000000") {
this.proPageInfo = res.pageInfo;
} else {
@ -596,7 +859,7 @@ export default {
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
callback: action => {}
});
}
});
@ -607,11 +870,11 @@ export default {
sessionStorage.getItem("sessionStorageData")
);
this.proForm.additionDate = this.formatTime(new Date(), "YYYY-MM-DD");
},
}
},
created() {
this.setPage();
},
}
};
</script>

@ -280,8 +280,11 @@ export default {
};
if (flag) {
this.$emit("staffratioData", form);
this.dialogVisible = false;
} else {
this.$alert("选择员工存在重复", "提示", {

@ -32,9 +32,11 @@
<el-table-column label="转出次数" align="center" prop="changeOutTime" min-width="100"></el-table-column>
<el-table-column label="转出金额" align="center" prop="changeOutMoney" min-width="100"></el-table-column>
</el-table>
<span class="padding-left-sm ">员工业绩</span>
<div class=" flex align-start flex-wrap padding-top">
<staffslesout ref="staffslesout" @staffslesData="staffslesDataout" :is-true="true"></staffslesout>
<span class="padding-left-sm ">员工</span>
<div class=" flex align-start flex-wrap padding-top">
<staffslesout ref="staffslesout" @staffslesData="staffslesDataout" :is-true="true"></staffslesout>
</div>
</div>
<div class="raisetable-sum">
@ -62,7 +64,7 @@
</div>
</div>
<span class="padding-left-sm ">员工/门店管理层/高管业绩</span>
<div class=" flex justify-center align-start flex-wrap padding-top">
<div class=" flex align-start flex-wrap padding-top">
<staffsles ref="staffsles" @staffslesData="staffslesData" :is-true="true"></staffsles>
<admin ref="admin" @adminData="adminData" :is-true="true"></admin>
<manager ref="manager" @managerData="managerData" :is-true="true"></manager>
@ -96,6 +98,7 @@ export default {
staffslesout,
manager,
admin,
staffslesout
},
data() {
return {
@ -133,11 +136,10 @@ export default {
setStaffs() {
var that = this;
this.$nextTick(() => {
console.log(that.$refs.staffsles);
that.$refs.staffslesout.show(that.form.staffListsout);
});
},
//
staffslesData(v) {
this.form.staffLists = [...v];
@ -219,6 +221,7 @@ export default {
this.form.managerList = managerList;
this.form.adminList = adminList;
this.setStaff();
} else {
this.$alert(res.message, "加载门店高管", {
confirmButtonText: "确定",

@ -48,7 +48,9 @@
<el-table :data="outList" empty-text=' , ' max-height="200"
:header-cell-style="{ background: 'linear-gradient(#6cb3ff, #1873d4)', color: '#eeeeee' }"
style="margin-top: 5px;">
<el-table-column type="expand">
<template slot-scope="scope">
<div class="flex justify-start align-center flex-wrap ">
<el-form inline class="margin-top-xs margin-left-xs">

@ -97,7 +97,7 @@
</el-table>
</div>
</div>
</el-collapse-item>
<!-- </el-collapse-item> -->
<div class="text-bold padding-xs">员工/门店管理层/高管业绩</div>
<div class="flex justify-start align-start flex-wrap ">
<staffsles ref="staffsles" @staffslesData="staffslesData"></staffsles>
@ -114,6 +114,8 @@
<el-button size="mini" type="primary" @click="detailDialog=false"></el-button>
</span>
<span v-else slot="footer" class="dialog-footer">
<!-- 补单才需要短信重发 -->
<el-button size="mini" type="primary" @click="handleReissue" v-if="form.isAddition===1"></el-button>
<el-button size="mini" type="primary" plain @click="cancel()"> </el-button>
<el-button v-if="form.isCancel==0" size="mini" type="primary" @click="subStaffRatio()"> </el-button>
</span>
@ -121,7 +123,7 @@
</template>
<script>
import { courseEditStaff, selectOne } from "@/api/eashier.js";
import { courseEditStaff, selectOne, courseReissue } from "@/api/eashier.js";
import admin from "@/components/staffList/admin/index";
import manager from "@/components/staffList/manager/index";
import staffsles from "@/components/staffList/staff/index";
@ -142,6 +144,20 @@ export default {
};
},
methods: {
handleReissue(){
let params = {
additionDate:this.form['additionDate'],
mobilePhone:this.form['mobilePhone'],
projectName:this.form['projectName']
}
courseReissue(params).then(res=>{
if(res.code === '000000'){
return this.$message.success({
message: "操作成功!",
});
}
})
},
//
handleClose() {
this.form = Object.assign({});

@ -4,7 +4,7 @@
<el-form :model="form" :inline="true" :label-width="formLabelwidth">
<el-form-item label="手机号码:">
<div class="form-width-ms flex">
<el-input style="padding-left:0px;" ref="" oninput="this.value=this.value.replace(/\D/g,'')" pattern="[0-9]*" maxlength="11" v-model="form.mobilePhone" @blur="query" @change="query">
<el-input style="padding-left:0px;width:123px " ref="" oninput="this.value=this.value.replace(/\D/g,'')" pattern="[0-9]*" maxlength="11" v-model="form.mobilePhone" @blur="query" @change="query">
<el-button size="mini" slot="append" icon="el-icon-search" @click="openMember"></el-button>
</el-input>
<el-button icon="el-icon-circle-plus-outline" type="text" @click="openAddMember"></el-button>
@ -1805,6 +1805,9 @@ export default {
};
</script>
<style scoped>
>>>.el-input-group--append .el-input__inner{
width: 123px;
}
.reatmen {
background: white;
overflow: hidden;

@ -50,6 +50,9 @@
<span class="text-red">{{scope.row.woman?(' 女 '+scope.row.woman):''}}</span>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip min-width="100" align="center" prop="payType" label="支付类型"></el-table-column>
<el-table-column show-overflow-tooltip min-width="75" align="center" prop="collectionRechargeAmount" label="卡付金额"></el-table-column>
<el-table-column show-overflow-tooltip min-width="75" align="center" prop="collectionCashAmount" label="现付金额"></el-table-column>
<el-table-column align="center" prop="inputBy" label="录单人" show-overflow-tooltip min-width="80"></el-table-column>
<el-table-column align="center" prop="storeName" label="所属门店" show-overflow-tooltip min-width="100"></el-table-column>
<el-table-column align="center" label="明细" width="76" fixed="right">
@ -157,7 +160,42 @@ export default {
});
}
},
updataList(arr){
let list = arr
// ///
// payType collectionRechargeAmount collectionCashAmount
arr.forEach(item=>{
if(item.projectList.length){
let itm = item.projectList[0]
// ,0
if(!itm.collectionRechargeAmount&&!itm.collectionCashAmount){
item.payType = '疗程付'
item.collectionRechargeAmount = 0
item.collectionCashAmount = 0
return
}else if(itm.collectionRechargeAmount && itm.collectionCashAmount){
// ,/,/
item.payType = '卡付/现付'
item.collectionRechargeAmount = itm.collectionRechargeAmount
item.collectionCashAmount = itm.collectionCashAmount
return
}else if(itm.collectionRechargeAmount && !itm.collectionCashAmount){
// ,,,0
item.payType = '卡付'
item.collectionRechargeAmount = itm.collectionRechargeAmount
item.collectionCashAmount = 0
return
}else{
// ,0
item.payType = '现付'
item.collectionRechargeAmount = 0
item.collectionCashAmount = itm.collectionCashAmount
return
}
}
})
return list
},
//
async getData() {
this.queryForm.selectDate = this.formatTime(this.month, "YYYYMM");
@ -165,6 +203,7 @@ export default {
if (res.code == "000000") {
this.list = res.pageInfo.list;
this.total = res.pageInfo.total;
this.list = this.updataList(this.list)
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",

@ -152,6 +152,8 @@
<el-button type="primary" plain size="mini" @click="dialogVisible = false">关闭</el-button>
</div>
<div slot="footer" class="dialog-footer" v-else>
<!-- 只有补单才需要重发短信 -->
<el-button type="primary" size="mini" @click="reissueSms()" v-if="form.isAddition===1"></el-button>
<el-button type="primary" plain size="mini" @click="handleClose"></el-button>
<el-button :disabled="form.isCancel==1" type="primary" size="mini" @click="confirm()">{{title==''?title:""}}</el-button>
</div>
@ -165,6 +167,7 @@ import {
QuerCompetent,
selectListType,
selectOne,
sms
} from "@/api/eashier.js";
import staffratio from "../staffratio";
export default {
@ -183,6 +186,20 @@ export default {
};
},
methods: {
reissueSms(){
console.log(this.form)
let params = {
additionDate:this.form.additionDate,
projectList:this.form.projectList
}
sms(params).then(res=>{
if(res.code === '000000'){
return this.$message.success({
message: "操作成功!",
});
}
})
},
//
handleClose() {
console.log(123);
@ -264,8 +281,6 @@ export default {
this.list.forEach((item, index) => {
item.collectionAmount= item.collectionRechargeAmount*1+item.collectionCashAmount*1
item.rechargeConsumeList.forEach((items) => {
items.cardOver = items.cardConsumeMoney;
items.cardGiftOver = items.giftConsumeMoney;

@ -1221,6 +1221,7 @@ export default {
).toFixed(2) * 1;
console.log("🚀 ~ file: service.vue ~ line 1213 ~ sumNum ~ this.recForm", this.recForm)
this.recForm.collectionAmounts =spendMoney?spendMoney.toFixed(2) * 1:0;;
this.recForm.rechargeAmount = spendNumber.toFixed(2) * 1;

@ -35,6 +35,8 @@
</el-tooltip>
</template>
</el-table-column>
<el-table-column label="所属门店" min-width="110" show-overflow-tooltip prop="storeName"></el-table-column>
<el-table-column label="日期" min-width="110" show-overflow-tooltip prop="modifyDate"></el-table-column>
<el-table-column label="单据号" align="center" min-width="110" show-overflow-tooltip prop="initNum">
<template slot-scope="scope">
<div style="cursor: pointer;">{{scope.row.initNum}}</div>
@ -265,7 +267,14 @@
</el-dialog>
<el-dialog :close-on-click-modal="false" v-dialogDrag :title="addForm.cardType==0?'选择充值类别':'选择项目'" :visible.sync="electDialogFormVisible" :append-to-body="true">
<div class="electform">
<el-table :data="projectList" @row-click='radioRow' v-if="addForm.cardType==1" max-height="550" @row-dblclick="electConfirm(electDialogFormVisible=false)">
<!-- 模糊查询 -->
<div style="display:flex;align-items:center">
<el-input v-model="typeParams.name" placeholder="请输入名称" style="width:120px;margin-right:20px"></el-input>
<div slot="footer" class="dialog-footer">
<el-button type="primary" size='mini' @click="searchClick"></el-button>
</div>
</div>
<el-table :data="projectList" @row-click='radioRow' v-if="addForm.cardType==1" max-height="550" @row-dblclick="electConfirm(electDialogFormVisible=false)">
<el-table-column label="选择" width="80">
<template slot-scope="scope">
<el-radio v-model="tableRadio" :label="scope.row.tradeId" @change.native="(scope.row)">{{''}}</el-radio>
@ -327,6 +336,21 @@
<el-input maxlength="11" v-model="searchForm.tradeName" placeholder="输入要交易账户名称" oninput="this.value=this.value.replace(/\D/g,'')" pattern="[0-9]*" clearable></el-input>
</div>
</el-form-item>
<el-form-item label="日期查询:" label-width="120px">
<div class="searchDiv">
<el-date-picker
style="width:200px"
v-model="searchForm.modifyDate"
type="daterange"
format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="选择日期">
</el-date-picker>
</div>
</el-form-item>
<el-form-item label="门店查询" label-width="120px">
<div class="serachDiv">
<storesSelect style="width:200px" ref="storesSelect" @selecData='selecData'/>
</div>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button size="mini" type="primary" plain @click="searchDialog = false"> </el-button>
@ -341,6 +365,7 @@
</div>
</template>
<script>
import storesSelect from '@/components/store/select'
import { partten } from "../../../../partten/index.js";
import excel from "@/components/excel";
import { propageNew, recTypePage } from "@/api/storeManage";
@ -361,9 +386,11 @@ export default {
components: {
excel,
member,
storesSelect
},
data() {
return {
typeParams:{},
searchDialog: false, //
searchForm: {
//
@ -408,28 +435,62 @@ export default {
activeName: "1",
searchTrue: false, //
infoDialog: false, //
projectList:[],
rechargeTypeList:[]
};
},
watch:{
'typeParams.name':{
handler(val){
if(val == ''){
this.pages()
}
},
immediate:true
}
},
methods: {
searchClick(){
this.pages()
},
//
handleClose() {
this.addForm = {};
this.dialogFormVisible = false;
this.$refs.form.clearValidate();
this.typeParams = {}
},
//
selecData(ids){
this.searchForm.storeIds = ids
},
//
search() {
this.searchForm.initState = this.activeName * 1;
this.searchForm.pageNum = this.pageInfo.pageNum;
this.searchForm.pageSize = this.pageInfo.pageSize;
memberInitPage(this.searchForm).then((res) => {
let params = { ...this.searchForm }
try{
// null.lengthtry catch
if(params.modifyDate.length){
params['startDate'] = params['modifyDate'][0] + ' 00:00:00'
params['sendDate'] = params['modifyDate'][1] + ' 23:59:59'
delete params['modifyDate']
}
}catch(err){
delete params['modifyDate']
}
memberInitPage(params).then((res) => {
if (res.code == "000000") {
if (res.pageInfo.total == 0) {
this.$message.warning({
message: "没有找到符合条件的数据",
});
}
//
this.searchForm = {}
this.$refs.storesSelect.storeIds = []
res.pageInfo.importList = res.pageInfo.list;
this.pageInfo = res.pageInfo;
this.searchTrue = true;
@ -706,6 +767,7 @@ export default {
submit() {},
change(row) {
console.log(row);
this.typeParams = {}
let form = {
cardState: this.cardState,
memberName: this.addForm.memberName,
@ -819,17 +881,18 @@ export default {
}
},
pages() {
var page1 = {
let page1 = {
pageNum: 1,
pageSize: 1000,
state: 1,
directConsumption: 0,
};
var page2 = {
let page2 = {
pageNum: 1,
pageSize: 1000,
state: 1,
};
this.addForm.cardType?(this.typeParams.name?page1.projectName=this.typeParams.name:""):(this.typeParams.name?page2.rechargeTypeName=this.typeParams.name:"")
propageNew(page1).then((res) => {
if (res.code == "000000") {
res.pageInfo.list.forEach((item) => {
@ -838,6 +901,7 @@ export default {
delete item.id;
});
this.projectList = res.pageInfo.list;
console.log(this.projectList)
} else {
}
});

@ -34,12 +34,22 @@
</div>
</el-form-item>
<br>
<el-form-item label="可用金额:" prop="inMoney">
<div class="form-width-ms">
{{form.cardConsumeMoney}}
</div>
</el-form-item>
<el-form-item label="转入金额:" prop="inMoney">
<div class="form-width-ms">
{{form.inMoney}}
</div>
</el-form-item>
<br>
<el-form-item label="可用赠送:" prop="inMoney">
<div class="form-width-ms">
{{form.giftConsumeMoney}}
</div>
</el-form-item>
<el-form-item label="转入赠送:" prop="inGiftMoney">
<div class="form-width-ms">
{{form.inGiftMoney}}

@ -9,6 +9,7 @@
<span v-show="">3 已审核</span>
<span v-show="">4 反审核</span>
<el-button size="mini" type="primary" @click="exportCard"></el-button>
<el-button size="mini" type="" @click="detail" :disabled="radioRowValueList.state == undefined">明细</el-button>
<el-button size="mini" type="primary" @click="edit(0)" :disabled="
radioRowValueList.state == undefined ||
@ -106,7 +107,7 @@
<script>
import edit from "./components/edit.vue";
import detail from "./components/detail.vue";
import { stateBaseZengka, baseZengkaPage } from "@/api/promotion.js";
import { stateBaseZengka, baseZengkaPage,exportCard } from "@/api/promotion.js";
export default {
components: { edit, detail },
data() {
@ -126,6 +127,19 @@ export default {
};
},
methods: {
//
exportCard(){
exportCard(this.queryForm).then(res=>{
let blob = new Blob([res]);
var a = document.createElement("a");
var url = window.URL.createObjectURL(blob);
console.log(url);
a.href = url;
a.download = "赠卡导出表.xlsx";
a.click();
window.URL.revokeObjectURL(url);
})
},
//
rowClick(row) {
this.radioRowValue = row.id;

@ -48,7 +48,7 @@
<admin ref="admin" @adminData="adminData"></admin>
<manager ref="manager" @managerData="managerData"></manager>
</div>
<el-table v-if="title=='修改'" class="margin-top-xs" border v-loading="listLoading" :data="form.baseGrouponListList" :element-loading-text="elementLoadingText" max-height="400" :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)',color:'#eeeeee'}">
<el-table v-if="title=='修改'|| type" class="margin-top-xs" border v-loading="listLoading" :data="form.baseGrouponListList" :element-loading-text="elementLoadingText" max-height="400" :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)',color:'#eeeeee'}">
<el-table-column type="index" width="40" align="center"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="memberName" label="会员名称"></el-table-column>
<el-table-column show-overflow-tooltip align="center" min-width="100" prop="mobilePhone" label="手机号码">
@ -74,7 +74,7 @@
<rec ref="rec" @recTypeData="recData"></rec>
<div slot="footer" class="dialog-footer">
<el-button size="mini" type="primary" plain @click="handleClose"> </el-button>
<el-button size="mini" type="primary" @click="confirm"> </el-button>
<el-button size="mini" type="primary" @click="confirm" v-if="!type"> </el-button>
</div>
</el-dialog>
</template>
@ -98,6 +98,7 @@ export default {
},
data() {
return {
type:"",
rules: {
rechargeTypeNum: {
required: true,
@ -206,16 +207,26 @@ export default {
this.form = JSON.parse(JSON.stringify(form));
},
//
show(form) {
show(form,type) {
this.form = {};
setTimeout(() => {
this.$refs.form.clearValidate();
}, 300);
if (form == "添加") {
this.title = form;
if(!type){
this.type = null
}
this.setStaff();
} else {
this.title = "修改";
if(type){
this.title = '明细'
this.type = type
}else{
this.type = null
}
console.log('type---',this.type)
this.form = { ...form };
this.form.storeNames = this.form.storeId + "-" + this.form.storeName;
this.fileList;

@ -9,6 +9,7 @@
</div>
<!-- <el-button size="mini" type="success" @click="exit()"></el-button> -->
<div>
<el-button type="primary" size="mini" @click="Export()"></el-button>
<el-button
size="mini"
v-if="radioRowValueList.state != undefined"
@ -296,7 +297,8 @@ import {
baseGrouponCardPage,
importBaseGrouponList,
downloadBaseGrouponList,
delBaseGrouponCard
delBaseGrouponCard,
Export
} from "@/api/promotion.js";
export default {
components: { edit, detail, excel },
@ -373,7 +375,19 @@ export default {
window.URL.revokeObjectURL(url);
});
},
//
Export(){
Export(this.queryForm).then(res=>{
let blob = new Blob([res]);
var a = document.createElement("a");
var url = window.URL.createObjectURL(blob);
console.log(url);
a.href = url;
a.download = "团购卡导出表.xlsx";
a.click();
window.URL.revokeObjectURL(url);
})
},
//
exit() {
if (this.searchForm.projectTypeName == "") {
@ -424,7 +438,8 @@ export default {
},
//
detail() {
this.$refs.detail.show(this.radioRowValueList, this.queryForm);
this.$refs.edit.show(this.radioRowValueList,1);
// this.$refs.detail.show(this.radioRowValueList, this.queryForm);
},
//
editData(v) {
@ -436,7 +451,8 @@ export default {
},
//
rowdbClick(row) {
this.$refs.detail.show(row);
// this.$refs.detail.show(row);
this.$refs.edit.show(row,1);
},
del() {
var id = {

@ -143,17 +143,18 @@ export default {
if (this.form.type == 1) {
this.form.giftMoney = null;
}
this.form.validTime = this.form.validTime * 1;
// this.form.validTime = this.form.validTime * 1;
if (this.title == "添加") {
let flag = false;
if (this.sessionStorageData.allowValid == 1) {
if (this.form.validTime >= 0) {
} else {
flag = true;
}
}
if (flag == false) {
addrecType(this.form)
// let flag = false;
// if (this.sessionStorageData.allowValid == 1) {
// if (this.form.validTime >= 0) {
// } else {
// flag = true;
// }
// }
// if (flag == false) {
let params = {...this.form,validTime:this.form.validTime * 1}
addrecType(params)
.then((res) => {
if (res.code == "000000") {
this.$emit("editData");
@ -174,15 +175,16 @@ export default {
.catch((err) => {
//console.log(err);
});
} else {
this.$alert("请设置有效期", "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
// }
// else {
// this.$alert("", "", {
// confirmButtonText: "",
// confirmButtonClass: "confirmbtnFalses",
// type: "warning",
// center: true,
// callback: (action) => {},
// });
// }
} else {
delete this.form.rechargeTypeNum;
if (this.form.rechargeTypeName == this.rowForm.rechargeTypeName) {

@ -157,7 +157,11 @@
label="有效期(月)"
min-width="100"
sortable
></el-table-column>
>
<template slot-scope="scope">
<span>{{ scope.row.validTime!==null?scope.row.validTime:"永久" }}</span>
</template>
</el-table-column>
<el-table-column
align="center"
prop="founderStaff"

@ -384,6 +384,7 @@ export default {
pagesorganizationone(page).then((res) => {
if (res.code == "000000") {
this.toPar(res.rows);
console.log("🚀 ~ file: storeParameters.vue ~ line 387 ~ pagesorganizationone ~ res.rows", res.rows)
if (res.rows.length > 0) {
this.buttonShow = true;
}
@ -394,6 +395,7 @@ export default {
storeParaList(page).then((res) => {
if (res.code == "000000") {
this.toPar(res.rows);
console.log("🚀 ~ file: storeParameters.vue ~ line 398 ~ storeParaList ~ res.rows", res.rows)
if (res.rows.length > 0) {
this.buttonShow = true;
}

@ -213,20 +213,16 @@ export default {
},
//
async getData() {
this.queryForm.inputDate = this.formatTime(
new Date(),
"YYYY-MM-DD hh:mm:ss"
);
if (this.form.month) {
this.queryForm.inputDate = this.formatTime(
this.form.month,
"YYYY-MM-DD hh:mm:ss"
);
} else {
} else{
this.queryForm.inputDate = this.formatTime(
new Date(),
"YYYY-MM-DD hh:mm:ss"
);
new Date(),
"YYYY-MM-DD hh:mm:ss"
);
}
this.queryForm.memberId = this.form.id;
this.queryForm.memberName = this.form.memberName;

@ -76,7 +76,9 @@ export default {
},
methods: {
//
change() {
change(date) {
// this.form.month = ''
console.log(date)
this.$refs.cash.show(this.form);
},
//

@ -97,7 +97,7 @@ export default {
},
methods: {
recData(v) {
console.log(v);
console.log(v)
this.recList = [...v];
},
@ -234,7 +234,7 @@ export default {
this.recList = [];
if (form == "添加") {
this.title = form;
this.form.type = type;
this.form = Object.assign({},{ type })
} else {
this.title = "修改";
this.form = { ...form };

@ -23,23 +23,17 @@
<el-table-column show-overflow-tooltip min-width="75" align="center" prop="courseConsumeCount" label="可用次数"></el-table-column>
<el-table-column show-overflow-tooltip min-width="100" align="center" prop="outCardRestMoney" label="转出金额">
<template slot-scope="scope">
<div @click.stop="">
<el-input type="number" v-model="scope.row.outCardRestMoney"></el-input>
</div>
<el-input type="number" @click.stop.native v-model="scope.row.outCardRestMoney"></el-input>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip min-width="100" align="center" prop="outGiftConsumeMoney" label="转出赠送">
<template slot-scope="scope">
<div @click.stop="">
<el-input :disabled="scope.row.type==1" type="number" v-model="scope.row.outGiftConsumeMoney"></el-input>
</div>
<el-input :disabled="scope.row.type==1" @click.stop.native type="number" v-model="scope.row.outGiftConsumeMoney"></el-input>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip min-width="100" align="center" prop="outCourseRestCount" label="转出次数">
<el-table-column show-overflow-tooltip min-width="100" @click.stop.native align="center" prop="outCourseRestCount" label="转出次数">
<template slot-scope="scope">
<div @click.stop="">
<el-input :disabled="scope.row.type==0" type="number" v-model="scope.row.outCourseRestCount"></el-input>
</div>
<el-input :disabled="scope.row.type==0" type="number" @click.stop.native v-model="scope.row.outCourseRestCount"></el-input>
</template>
</el-table-column>
</el-table>
@ -60,17 +54,20 @@ export default {
methods: {
//
getCurrentRow(row) {
let form = this.list[row.index];
form.isShow = !form.isShow;
this.list.splice(row.index, 1, form);
return
// let form = this.list[row.index];
// form.isShow = !form.isShow;
// this.list.splice(row.index, 1, form);
this.list[row.index].isShow = !this.list[row.index].isShow
this.$refs["list"].toggleRowSelection(row);
},
//
handleSelectionChange(selection) {
console.log('触发了----')
selection.forEach((item) => {
item.isShow = true;
});
this.$emit("recData", this.list);
this.$emit("recData", selection);
},
//
rowName({ row, rowIndex }) {

@ -7,11 +7,13 @@
<div>
<el-button size="mini" :disabled="radioRowValueList.state == undefined" type="" @click="detail" >明细</el-button>
<el-button size="mini" type="primary" @click="edit(0)" :disabled="radioRowValueList.state == undefined||radioRowValueList.state==3||radioRowValueList.state==2||radioRowValueList.state==1" plain>修改</el-button>
<el-button size="mini" type="primary" @click="edit(1)" :disabled="radioRowValueList.state == undefined||radioRowValueList.state==3||radioRowValueList.state==2||radioRowValueList.state==1">送审</el-button>
<el-button size="mini" type="primary" @click="edit(2)" :disabled="radioRowValueList.state == undefined||radioRowValueList.state==2" plain>回收</el-button>
<el-button size="mini" type="primary" @click="edit(3)" :disabled="radioRowValueList.state == undefined||radioRowValueList.state==3||radioRowValueList.state==2||radioRowValueList.state==0">审核</el-button>
<el-button size="mini" type="primary" @click="edit(4)" :disabled="radioRowValueList.state == undefined||radioRowValueList.state==0||radioRowValueList.state==1||radioRowValueList.state==2||radioRowValueList.state==4" plain>反审核</el-button>
</div>
</div>
<!-- 会员转卡列表 -->

Loading…
Cancel
Save