master
曾嘉俊 3 years ago
parent 5ab23beaad
commit bd3b974c44

@ -190,6 +190,15 @@ export function addBaseGrouponCard(params) {
});
}
// 团购卡发送短信
export function sendSms(params) {
return service({
url: "/api" + "/demay/ssm/baseGrouponCard/sendSms",
method: "post",
data: params
});
}
// 修改团购卡申请单
export function editBaseGrouponCard(params) {
return service({

@ -110,6 +110,23 @@ export function dayStatisticRecharge(params) {
data: params
});
}
// 负卡金结存
export function fixedNegativeCardByRecharge(params) {
return service({
url: "/api" + "/demay/ssm/negativeCard/fixedNegativeCardByRecharge ",
method: "post",
data: params
});
}
export function fixedNegativeCardByCourse(params) {
return service({
url: "/api" + "/demay/ssm/negativeCard/fixedNegativeCardByCourse ",
method: "post",
data: params
});
}
// 门店会员统计列表 门店端-门店统计-门店会员统计列表
export function storeStatisticMemberList(params) {
return service({

@ -13,16 +13,9 @@
<el-form-item label="手机" prop="mobilePhone" v-if="title=='添加'">
<el-input oninput="this.value=this.value.replace(/\D/g,'')" pattern="[0-9]*" v-model="form.mobilePhone" value autocomplete="on" maxlength="11"></el-input>
</el-form-item>
<!-- <el-form-item label="登录密码:" prop="password" >
<el-input type="password" v-model="form.password" autocomplete="off"></el-input>
</el-form-item> -->
<el-form-item label="备注">
<el-input v-model="form.label"></el-input>
<!-- <el-input v-model="form.label" style="position:fixed;bottom:-9999px;" autocomplete="on"></el-input> -->
</el-form-item>
<!-- <el-form-item label="推荐人">
<el-input v-model="form.ren" ></el-input>
</el-form-item> -->
<el-form-item label="支付密码:" prop="cashPassword" v-if="title=='添加'">
<el-input type="password" v-model="form.cashPassword" autocomplete="off"></el-input>
</el-form-item>

@ -2,14 +2,14 @@
<el-dialog :close-on-click-modal="false" v-dialogDrag :title="title" :visible.sync="dialogVisible" width="800px" append-to-body>
<el-input class="form-width-ms" v-model="queryForm.memberName" clearable placeholder="请输入会员名字" @change="getData"></el-input>
<el-button size="mini" type="primary" @click="getData"></el-button>
<el-table @row-dblclick="confirms" :data="list" @row-click="rowClick" max-height="600" v-loading="listLoading" class="margin-top-xs" :element-loading-text="elementLoadingText" :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)' ,color:'#eeeeee'}">
<el-table-column label="选择" width="60">
<el-table @row-dblclick="confirms" :data= "list" @row-click="rowClick" max-height="600" v-loading="listLoading" class="margin-top-xs" :element-loading-text="elementLoadingText" :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)' ,color:'#eeeeee'}">
<el-table-column label="选择" width="60">
<template slot-scope="scope">
<el-radio v-model="radio" :label="scope.row.id" @change.native="scope.row;">
{{ "" }}
</el-radio>
</template>
</el-table-column>
</el-table-column>
<el-table-column :show-overflow-tooltip="true" align="center" prop="memberNum" label="会员编码" min-width="120"></el-table-column>
<el-table-column :show-overflow-tooltip="true" align="center" prop="memberName" label="会员姓名" min-width="100"></el-table-column>
<el-table-column :show-overflow-tooltip="true" align="center" prop="sex" label="性别" min-width="60">

@ -0,0 +1,90 @@
<template>
<el-dialog :close-on-click-modal="false" v-dialogDrag :title="title" :visible.sync="dialogVisible" width="70%" append-to-body>
<div class="flex justify-end padding-bottom-xs">
<el-input class="form-width-m " size="small" v-model="queryForm.projectNum" clearable placeholder="合作商编码" @change="getData"></el-input>
<el-input class="form-width-m margin-left-xs" size="small" v-model="queryForm.projectName" clearable placeholder="合作商名称" @change="getData"></el-input>
<el-input class="form-width-m margin-left-xs" size="small" v-model="queryForm.projectName" clearable placeholder="联系人" @change="getData"></el-input>
<el-input class="form-width-m margin-left-xs" size="small" v-model="queryForm.projectName" clearable placeholder="联系电话" @change="getData"></el-input>
<el-button class="margin-left-xs" size="mini" type="primary" @click="getData" style="height:0.16rem">搜索</el-button>
</div>
<el-table @row-dblclick="confirms" :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)' ,color:'#eeeeee'}" :data="coureList" @row-click="rowClick" max-height="600" v-loading="listLoading" :element-loading-text="elementLoadingText">
<el-table-column label="选择" width="45">
<template slot-scope="scope">
<el-radio v-model="radio" :label="scope.row.id" @change.native="scope.row">
{{ "" }}
</el-radio>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip align="left" prop="courseProjectNum" label="合作商编码"></el-table-column>
<el-table-column show-overflow-tooltip align="left" prop="courseProjectName" label="合作商名称"></el-table-column>
<el-table-column show-overflow-tooltip align="center" prop="price" label="合作商状态"></el-table-column>
<el-table-column show-overflow-tooltip align="center" prop="courseRestCount" label="联系人"></el-table-column>
<el-table-column show-overflow-tooltip align="center" prop="courseRestPrice" label="联系电话"></el-table-column>
<el-table-column show-overflow-tooltip align="center" prop="courseConsumeCount" label="其他"></el-table-column>
</el-table>
<!-- 分页组件 -->
<el-pagination v-if="!form.memberName" align="left" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="queryForm.pageNum" :page-sizes="[10,20,30,40,50]" :page-size="queryForm.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total"></el-pagination>
<span slot="footer" class="dialog-footer">
<el-button size="mini" type="primary" plain @click="dialogVisible = false"> </el-button>
<el-button size="mini" type="primary" @click="confirms()">
</el-button>
</span>
</el-dialog>
</template>
<script>
export default {
props:{
},
data() {
return {
radio: null, //
radioForm: {}, //
list: [], //
coureList: [],
dialogVisible: false, //
listLoading: false, //list
elementLoadingText: "数据加载中...", //list
title: "合作商", //
total: 0, //
form: {}, //
queryForm: {
//
pageNum: 1,
pageSize: 10,
state: 1,
projectName: "",
},
};
},
methods: {
//
show() {
this.dialogVisible = true;
},
//
rowClick(row) {
this.radio = row.id;
this.radioForm = row;
},
//coureList
handleSizeChange(val) {
this.queryForm.pageSize = val;
this.getData();
},
handleCurrentChange(val) {
this.queryForm.pageNum = val;
this.getData();
},
//
async getData() {
this.listLoading = true;
},
confirms() {
this.dialogVisible = false;
},
},
};
</script>
<style>
</style>

@ -351,7 +351,6 @@ export default {
},
recData(v) {
let form = JSON.parse(JSON.stringify(v));
console.log(form,'index--->',form.index)
for(let key in form){
if(key!='proList')this.$set(this.list[form.index],key,form[key])
}
@ -754,8 +753,10 @@ export default {
});
// this.form.debtMoney = debtMoney;
let sumTotal = eval(this.multipleSelection.map(item=>item.paymentMoney?item.paymentMoney*1:0).join("+")) //
let paySum = eval(this.payLists.map(item=>item.payMoney?item.payMoney*1:0).join("+")) //
let cashPay = eval(this.payLists.map(item=>item.payMoney?item.payMoney*1:0).join("+")) //
let coursePay = eval(this.multipleSelection.map(item=>item.courseMoney?item.courseMoney*1:0).join("+")) //
let rechargePay = eval(this.multipleSelection.map(item=>item.recMoney?item.recMoney*1:0).join("+")) //
let paySum = cashPay+coursePay+rechargePay
// if (this.debtMoneys != 0) {
// this.$message.error({
// message: "",

@ -95,6 +95,9 @@ export default {
},
//
openStaffRatio(index, row) {
if(!index){
return
}
if (index != 0 || row.ratio * 1 != 100) {
let form = { ...row };
this.editIndex = index;

@ -102,6 +102,9 @@ export default {
},
//
openStaffRatio(index, row) {
if(!index){
return
}
if (index != 0 || row.ratio * 1 != 100) {
let form = { ...row };
this.editIndex = index;

@ -103,6 +103,9 @@ export default {
},
//
openStaffRatio(index, row) {
if(!index){
return
}
if (index != 0 || row.ratio * 1 != 100) {
let form = { ...row };
this.editIndex = index;

@ -276,7 +276,7 @@ export default {
name: "物资管理",
icon: "el-icon-s-ticket",
index: "450",
number: "450",
number: "450000", //
id:"600600",
menuLists: [
{
@ -869,6 +869,14 @@ export default {
number: "600100",
id:"100010005",
},
{
name: "负卡金结存",
icon: "el-icon-s-finance",
route: "/negativeCardBalance",
index: "negativeCardBalance",
number: "600100",
id:"10001000111",
},
{
name: "月度营业额",
icon: "el-icon-coin",
@ -1166,9 +1174,24 @@ export default {
number: "900200",
id:"110011002",
},
{
name: "门店收款账户",
icon: "el-icon-suitcase",
route: "/storeCollection",
index: "storeCollection",
number: "900",
id:"110011003",
},
{
name: "收付款",
icon: "el-icon-suitcase",
route: "/receivingPaying",
index: "receivingPaying",
number: "900",
id:"110011004",
},
],
},
//
{
name: "优惠券",
index: "100",
@ -1236,6 +1259,7 @@ export default {
},
},
created() {
//
if(sessionStorage.getItem("headOffice") * 1 == 1){ //
this.menuList[7].menuLists.push({
name: "会员协议",
@ -1245,6 +1269,14 @@ export default {
number: "500200",
id:"800800423",
})
this.menuList[0].menuLists.push({
name: "短信配置",
icon: "el-icon-receiving",
route: "/smsSetup",
index: "smsSetup",
number: "600100",
id:"800800424",
})
}
var that = this;
let menuList = [...that.menuList];
@ -1276,7 +1308,61 @@ export default {
}
});
});
//
if(sessionStorage.getItem("headOffice") * 1 == 1){
let list = [
{
icon: "el-icon-s-promotion",
index:'partners',
name:'合作商',
number:'400',
menuLists:[
{
index:'parthnersArchives',
name:'合作商档案',
route:'/parthnersArchives',
number:'400'
},
{
index:'partnersProject',
name:'合作项目',
route:'/partnersProject',
number:'400'
},
{
index:'partnersList',
name:'合作报表',
route:'/partnersList',
number:'400'
},
{
index:'reconciliationDetails',
name:'对账明细表',
route:'/reconciliationDetails',
number:'400'
},
]
},
{
icon: "el-icon-s-promotion",
index:'financialReconciliation',
name:'财务对账',
number:'400',
menuLists:[
{
index:'reconciliation',
name:'对账单',
route:'/reconciliation',
number:'400'
},
]
}
]
menuList = menuList.concat(list)
}
that.menuList = menuList;
console.log(that.menuList)
}, 1000);
},
mounted() {

@ -0,0 +1,87 @@
<template>
<div>
<el-dialog title="搜索" :visible.sync="searchDialog">
<el-form :model="searchForm">
<el-form-item label="平台号:" label-width="120px">
<div class="searchDiv">
<el-select v-model="searchForm.value" placeholder="请选择">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
</el-form-item>
<el-form-item label="收款账户名:" label-width="120px">
<div class="searchDiv">
<el-input size="medium" v-model="searchForm.rechargeTypeName" placeholder="输入要查询的收款账户名" clearable></el-input>
</div>
</el-form-item>
<el-form-item label="收款账户号:" label-width="120px">
<div class="searchDiv">
<el-input size="medium" v-model="searchForm.rechargeTypeName" placeholder="输入要查询的收款账户号" clearable></el-input>
</div>
</el-form-item>
<el-form-item label="付款账户名:" label-width="120px">
<div class="searchDiv">
<el-input size="medium" v-model="searchForm.rechargeTypeName" placeholder="输入要查询的付款账户名" clearable></el-input>
</div>
</el-form-item>
<el-form-item label="收款账户号:" label-width="120px">
<div class="searchDiv">
<el-input size="medium" v-model="searchForm.rechargeTypeName" placeholder="输入要查询的收款账户号" clearable></el-input>
</div>
</el-form-item>
<el-form-item label="交易时间:" label-width="120px">
<div class="searchDiv">
<el-date-picker
v-model="searchForm.date"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</div>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button size="mini" type="primary" plain @click="searchDialog = false"> </el-button>
<el-button type="primary" size="mini" @click="search((searchDialog = false))"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
options:[
{
label:'收银',
value:0
},
{
label:'疗程',
value:1
}
],
searchForm:{},
searchDialog:false,
}
},
methods: {
search(){
this.$emit('init',this.searchForm)
},
show(){
this.searchDialog = true
}
},
}
</script>
<style scoped>
</style>

@ -0,0 +1,126 @@
<template>
<div>
<div class="header_flex">
<div>
<el-select class="form-width-m" filterable default-first-option clearable v-model="pageInfo.storesNum" placeholder="请选择" @change="changeOut">
<el-option v-for="(item,index) in options" :key="index" :label="item.storeNum+'--'+ item.storeName" :value="item.id"></el-option>
</el-select>
</div>
<div>
<el-input
size="medium"
style="width: 180px"
placeholder="请输入金额"
v-model="pageInfo.input"
>
<i slot="prefix" class="el-input__icon el-icon-search"></i>
</el-input>
<el-button size="mini" type="primary">确认</el-button
>
<el-button size="mini" type="primary" @click="handleSelect"></el-button>
<el-button size="small">下载模板</el-button>
<el-button size="small" type="warning" >导入</el-button>
<el-button size="small" type="success" >导出</el-button>
</div>
</div>
<el-table :data="list" border style="width: 100%"
max-height="700"
:header-cell-style="{
background: 'linear-gradient(#6cb3ff, #1873d4)',
color: '#eeeeee'
}">
<el-table-column align="center" label="门店" show-overflow-tooltip prop="type"></el-table-column>
<el-table-column align="center" label="平台号" show-overflow-tooltip></el-table-column>
<el-table-column align="center" label="收款账户" show-overflow-tooltip></el-table-column>
<el-table-column align="center" label="收款账户名" show-overflow-tooltip></el-table-column>
<el-table-column align="center" label="金额" show-overflow-tooltip></el-table-column>
<el-table-column align="center" label="交易时间" show-overflow-tooltip></el-table-column>
<el-table-column align="center" label="佣金" show-overflow-tooltip></el-table-column>
<el-table-column align="center" label="银行流水号" show-overflow-tooltip></el-table-column>
<el-table-column align="center" label="付款账户名" show-overflow-tooltip></el-table-column>
<el-table-column align="center" label="付款账户号" show-overflow-tooltip></el-table-column>
</el-table>
<div class="block">
<el-pagination
align="left"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="pageInfo.pageNum"
:page-sizes="[10, 20, 30, 40, 50]"
:page-size="pageInfo.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
></el-pagination>
</div>
<senior-select ref="select" />
</div>
</template>
<script>
import { organizations } from "@/api/storeManage.js";
import seniorSelect from './components/select.vue'
export default {
components:{
seniorSelect
},
data() {
return {
rowId:'',
options:[],
list:[],
pageInfo: {
pageNum: 1,
pageSize: 10,
},
total:0
}
},
created() {
this.getOption()
},
methods: {
changeOut(){},
getOption(){
organizations({ pageSize: 999 }).then((res) => {
if (res.code == "000000") {
this.options = res.rows;
} else {
this.$alert(res.message, "获取门店信息", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
});
},
handleSelect(){
this.$refs.select.show()
},
handleAddEdit(){
},
handleRowClick(row){
this.rowId = row.id
},
rowStyle({row}){
if(this.rowId == row.id){
return { 'background-color': 'rgba(255,235,181)', cursor: 'pointer' };
}
return { cursor: 'pointer' }
},
handleSizeChange(size){
this.pageInfo.pageNum = size
},
handleCurrentChange(current){
this.pageInfo.pageSize = current
},
},
}
</script>
<style scoped>
/* 移入table更换背景色 */
/deep/ .el-table--enable-row-hover .el-table__body tr:hover > td {
background-color: rgba(255,235,181);
}
</style>

@ -0,0 +1,59 @@
<template>
<el-dialog :close-on-click-modal="false" append-to-body v-dialogDrag width="600px" powerId="form" :title="title" :visible.sync="dialogFormVisible" :before-close="handleClose">
<div >
<el-form :model="form" ref="form" label-width="80px">
<div class="form">
<el-form-item label="收款账户名:" prop="collectionName">
<el-input v-model="form.storeName" ></el-input>
</el-form-item>
<el-form-item label="收款账户号:" prop="collectionNum">
<el-input v-model="form.storeName" ></el-input>
</el-form-item>
<el-form-item label="备注:" prop="storeName">
<el-input v-model="form.storeName" ></el-input>
</el-form-item>
</div>
</el-form>
</div>
<div slot="footer" class="dialog-footer">
<el-button size="mini" type="primary" plain @click="(dialogFormVisible = false)"> </el-button>
<el-button size="mini" type="primary" @click="confirm()"> </el-button>
</div>
<Map ref="map" @confirm="handleMapConfirm"></Map>
<store ref="store"/>
</el-dialog>
</template>
<script>
export default {
data() {
return {
title:"收款明细",
dialogFormVisible:false,
form:{},
options:[],
}
},
methods: {
show(row){
this.form = {...row}
this.dialogFormVisible = true
},
handleClose() {
this.form = {};
this.dialogFormVisible = false;
this.$refs.form.clearValidate();
},
confirm(){
}
},
};
</script>
<style scoped>
.el-input {
width: 260px;
}
</style>

@ -0,0 +1,66 @@
<template>
<div>
<el-dialog title="搜索" :visible.sync="searchDialog">
<el-form :model="searchForm">
<el-form-item label="平台号:" label-width="120px">
<div class="searchDiv">
<el-select v-model="searchForm.value" placeholder="请选择">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</div>
</el-form-item>
<el-form-item label="收款账户号:" label-width="120px">
<div class="searchDiv">
<el-input size="medium" v-model="searchForm.rechargeTypeName" placeholder="输入要查询的收款账户" clearable></el-input>
</div>
</el-form-item>
<el-form-item label="创建人:" label-width="120px">
<div class="searchDiv">
<el-input size="medium" v-model="searchForm.rechargeTypeName" placeholder="输入要查询的收银员" clearable></el-input>
</div>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button size="mini" type="primary" plain @click="searchDialog = false"> </el-button>
<el-button type="primary" size="mini" @click="search((searchDialog = false))"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
options:[
{
label:'收银',
value:0
},
{
label:'疗程',
value:1
}
],
searchForm:{},
searchDialog:false,
}
},
methods: {
search(){
this.$emit('init',this.searchForm)
},
show(){
this.searchDialog = true
}
},
}
</script>
<style scoped>
</style>

@ -0,0 +1,152 @@
<template>
<div>
<div class="header_flex">
<div></div>
<div>
<el-input
size="medium"
style="width: 180px"
placeholder="请输入收款账户人"
v-model="input"
>
<i slot="prefix" class="el-input__icon el-icon-search"></i>
</el-input>
<el-button size="mini" type="primary">确认</el-button
>
<el-button size="mini" type="primary" @click="handleSelect"></el-button>
<el-button size="mini" type="info" plain>刷新</el-button
>
</div>
</div>
<div class="flex justify-start align-start bg-white padding-bottom">
<div style="width:180px" class="margin-right-xs">
<el-table :data="leftList" border style="width: 100%"
:header-cell-style="{
background: 'linear-gradient(#6cb3ff, #1873d4)',
color: '#eeeeee'
}"
max-height="700"
ref="deptRef"
@row-click="handleRowClick"
:row-style="rowStyle"
>
<el-table-column
align="center"
label="门店编码"
show-overflow-tooltip
>
<template slot-scope="scope">
{{ scope.row.projectTypeNum + '---' + scope.row.projectTypeName }}
</template>
</el-table-column>
</el-table>
</div>
<el-table :data="rightList" border style="width: 100%"
max-height="700"
:header-cell-style="{
background: 'linear-gradient(#6cb3ff, #1873d4)',
color: '#eeeeee'
}">
<el-table-column align="center" label="平台号" show-overflow-tooltip prop="type"></el-table-column>
<el-table-column align="center" label="收款账户名" show-overflow-tooltip></el-table-column>
<el-table-column align="center" label="收款账户号" show-overflow-tooltip></el-table-column>
<el-table-column align="center" label="创建人" show-overflow-tooltip></el-table-column>
<el-table-column align="center" label="创建时间" show-overflow-tooltip></el-table-column>
<el-table-column align="center" label="修改人" show-overflow-tooltip></el-table-column>
<el-table-column align="center" label="修改时间" show-overflow-tooltip></el-table-column>
<el-table-column align="center" label="备注" show-overflow-tooltip></el-table-column>
<el-table-column align="center" fixed="right" label="修改" min-width="76">
<template slot-scope="scope">
<el-button size="mini" type="primary" @click="del(scope.row)" plain>修改</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div class="block">
<el-pagination
align="left"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="pageInfo.pageNum"
:page-sizes="[10, 20, 30, 40, 50]"
:page-size="pageInfo.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
></el-pagination>
</div>
<detail ref="detail"/>
<senior-select ref="select" />
</div>
</template>
<script>
import detail from './components/index.vue'
import seniorSelect from '@/pages/branch/storeCollection/components/select'
export default {
components:{
detail,
seniorSelect,
},
data() {
return {
input:'',
rowId:'',
leftList:[
{
projectTypeNum:'001',
projectTypeName:'门店1',
id:1
},
{
projectTypeNum:'001',
projectTypeName:'门店2',
id:2
}
],
rightList:[{ type:"现金" },{ type:"九江支付" }],
pageInfo: {
pageNum: 1,
pageSize: 10,
},
total:0
}
},
created() {
this.$nextTick(()=>{
this.rowId = 1
this.$refs.deptRef.setCurrentRow(this.leftList[0])
})
},
methods: {
del(row){
this.$refs.detail.show(row)
},
handleSelect(){
this.$refs.select.show()
},
handleAddEdit(){
},
handleRowClick(row){
this.rowId = row.id
},
rowStyle({row}){
if(this.rowId == row.id){
return { 'background-color': 'rgba(255,235,181)', cursor: 'pointer' };
}
return { cursor: 'pointer' }
},
handleSizeChange(size){
this.pageInfo.pageNum = size
},
handleCurrentChange(current){
this.pageInfo.pageSize = current
},
},
}
</script>
<style scoped>
/* 移入table更换背景色 */
/deep/ .el-table--enable-row-hover .el-table__body tr:hover > td {
background-color: rgba(255,235,181);
}
</style>

@ -50,6 +50,16 @@
<el-form-item label="服务电话:">
<el-input v-model="form.telephone"></el-input>
</el-form-item>
<el-form-item label="状态:">
<el-select v-model="form.state" placeholder="请选择">
<el-option
v-for="item in stateOptions"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
</div>
</el-form>
</div>
@ -77,6 +87,20 @@
dialogFormVisible:false,
form:{},
options:[],
stateOptions:[
{
label:'装修',
value:0
},
{
label:'开业',
value:1
},
{
label:'停业',
value:2
}
]
}
},
watch:{

@ -554,7 +554,21 @@ export default {
date: [],
pickerOptions: {
disabledDate(time) {
return time.getTime() > Date.now();
// return time.getTime() > Date.now();
let date = new Date()
let month = date.getMonth() + 1 //
let year = date.getFullYear() //
let strDate = date.getDate() //
if(month == 1){ //
month = 12
year -= 1
}else{
month -= 1
}
let days = new Date(year,month,0).getDate() //
let num = (strDate + days -1) //
const day = num * 24 * 3600 * 1000
return time.getTime() > Date.now() || time.getTime() < (Date.now() - 8.64e7) - day
},
},
beforeMoney: 0,

@ -19,7 +19,7 @@
</el-form-item>
<el-form-item label="业务时间:" v-if="isAddition==1">
<div class="form-width-ms">
<el-date-picker ref="recDate" v-model="form.additionDate" :picker-options="pickerOptions" format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="选择日期" >
<el-date-picker ref="recDate" v-model="form.additionDate" :picker-options="pickerOptions" format="yyyy-MM-dd" value-format="yyyy-MM-dd" placeholder="选择日期" style="width: 150px;">
</el-date-picker>
</div>
</el-form-item>
@ -622,7 +622,21 @@ export default {
openStaffText: "",
pickerOptions: {
disabledDate(time) {
return time.getTime() > Date.now();
// return time.getTime() > Date.now();
let date = new Date()
let month = date.getMonth() + 1 //
let year = date.getFullYear() //
let strDate = date.getDate() //
if(month == 1){ //
month = 12
year -= 1
}else{
month -= 1
}
let days = new Date(year,month,0).getDate() //
let num = (strDate + days -1) //
const day = num * 24 * 3600 * 1000
return time.getTime() > Date.now() || time.getTime() < (Date.now() - 8.64e7) - day
},
},
};
@ -1590,6 +1604,7 @@ export default {
sex:this.form.sex,
isDebt:item.debtMoney?1:0,
isAddition:this.isAddition,
additionDate:this.isAddition?this.form.additionDate:null,
collectionCashAmount:item.nowAmount.toFixed(2)*1,
debtAmount:((item.amount * (sessionStorageData.debtRatio*1))/100).toFixed(2)*1
}

@ -263,11 +263,12 @@ export default {
});
} else {
this.form = res.pageInfo.list[0];
console.log(this.form.refundRechargeList)
if(this.form.refundRechargeList){
this.form.refundGiftMoneys = (eval(this.form.refundRechargeList.map(item=>item.refundGiftMoney?item.refundGiftMoney*1:0).join("+"))).toFixed(2)*1
this.form.refundGiftMoneys = (eval(this.form.refundRechargeList.map(item=>item.refundGiftMoney?item.refundGiftMoney*1:0).join("+")))
this.form.refundGiftMoneys = (this.form.refundGiftMoneys || 0)
}
this.form.rechargeAccountGiveList = ( this.form.refundRechargeList || [])
console.log('form--->',this.form)
this.form.refundMoneys = this.form.recRefundMoney;
this.form.refundMoney = this.form.recRefundMoney;
this.refundType = form.refundType;

@ -931,7 +931,21 @@ export default {
message:"",
pickerOptions: {
disabledDate(time) {
return time.getTime() > Date.now();
// return time.getTime() > Date.now();
let date = new Date()
let month = date.getMonth() + 1 //
let year = date.getFullYear() //
let strDate = date.getDate() //
if(month == 1){ //
month = 12
year -= 1
}else{
month -= 1
}
let days = new Date(year,month,0).getDate() //
let num = (strDate + days -1) //
const day = num * 24 * 3600 * 1000
return time.getTime() > Date.now() || time.getTime() < (Date.now() - 8.64e7) - day
}
},
useRecharge:JSON.parse(sessionStorage.getItem("sessionStorageData")).useRecharge *1,
@ -988,6 +1002,9 @@ export default {
};
},
computed: {
getMonDayTotal(){
return 30
},
isApartDeduct(){
},
@ -2686,7 +2703,6 @@ export default {
},
//
confirm() {
// largeList
let flag = true;
if (!this.list.length) {
this.$alert("项目最少需要一个", "提示", {
@ -2710,7 +2726,6 @@ export default {
}
let total = eval(this.$refs.payment.payLists.map(item=>{return item.payMoney?item.payMoney*1:0}).join("+")) //
if(this.appearPrices*1 || total){
if(total>this.appearPrices*1){
this.formData = new FormData();
if( (total-this.appearPrices*1).toFixed(2)*1 > this.balance ){
@ -2777,6 +2792,9 @@ export default {
this.list.forEach(item => {
if (item.courseAccountId == null) {
item.collectionCashAmount = (( item.amount - (item.collectionAmounts?item.collectionAmounts*1:0)).toFixed(2) * 1);
if(item.collectionCashAmount<=this.balance){
item.collectionCashAmount = 0
}
item.cashAmount =
(
item.collRecAmonnt +

@ -215,6 +215,7 @@ export default {
}
});
this.dialogVisible = true;
console.log('这是list--->',this.list)
this.getData();
this.changeStaff();
let number = 0;
@ -223,9 +224,9 @@ export default {
number += item.ratio * 1;
}
});
if (this.list.length > 0) {
this.list[0].ratio = (100 - number).toFixed(2) * 1;
}
// if (this.list.length > 0) {
// this.list[0].ratio = (100 - number).toFixed(2) * 1;
// }
this.list.push({ label: "", ratio: 0 });
});
}, 300);

@ -0,0 +1,86 @@
<template>
<div>
<el-divider content-position="right">
<el-button size="mini" type="primary" @click="handleSearch"></el-button>
<el-button size="small" @click="handleDownload"></el-button>
<el-button size="small" type="warning" @click="handleImport"></el-button>
<el-button size="small" type="success" @click="handleExport"></el-button>
</el-divider>
<div class="center">
<el-table :data="list" border style="width: 100%"
max-height="700"
:header-cell-style="{
background: 'linear-gradient(#6cb3ff, #1873d4)',
color: '#eeeeee'
}">
<el-table-column :show-overflow-tooltip="true" align="center" prop="label" label="平台号" ></el-table-column>
<el-table-column :show-overflow-tooltip="true" align="center" prop="memberNum" label="收款账户名" min-width="90"></el-table-column>
<el-table-column :show-overflow-tooltip="true" align="center" prop="memberName" label="收款账户号" min-width="90"></el-table-column>
<el-table-column :show-overflow-tooltip="true" align="center" prop="label" label="交易金额" ></el-table-column>
<el-table-column :show-overflow-tooltip="true" align="center" prop="label" label="交易时间" ></el-table-column>
<el-table-column align="center" prop="label" label="银行流水号" min-width="120" :show-overflow-tooltip="true"></el-table-column>
<el-table-column align="center" prop="label" label="付款人" :show-overflow-tooltip="true"></el-table-column>
<el-table-column align="center" prop="label" label="付款账户" :show-overflow-tooltip="true"></el-table-column>
<el-table-column align="center" prop="label" label="手续费" :show-overflow-tooltip="true"></el-table-column>
</el-table>
<div class="block">
<el-pagination
align="left"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="pageInfo.pageNum"
:page-sizes="[10, 20, 30, 40, 50]"
:page-size="pageInfo.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
></el-pagination>
</div>
</div>
<bank-select ref="bankSelect"/>
</div>
</template>
<script>
import bankSelect from './bankSelect.vue'
export default {
components:{
bankSelect
},
data() {
return {
list:[],
pageInfo: {
pageNum: 1,
pageSize: 10,
},
total:0
}
},
created() {
},
methods: {
//
handleDownload(){},
//
handleSearch(){
this.$refs.bankSelect.show()
},
//
handleSizeChange(size){
this.pageInfo.pageNum = size
},
//
handleCurrentChange(current){
this.pageInfo.pageSize = current
},
//
handleExport(){},
//
handleImport(){}
},
}
</script>
<style scoped >
</style>

@ -0,0 +1,75 @@
<template>
<div>
<el-dialog title="银行收款搜索" :visible.sync="searchDialog">
<el-form :model="searchForm">
<el-form-item label="收款人:" label-width="120px">
<div class="searchDiv">
<el-input size="medium" v-model="searchForm.rechargeTypeName" placeholder="输入要查询的收款人" clearable></el-input>
</div>
</el-form-item>
<el-form-item label="付款人:" label-width="120px">
<div class="searchDiv">
<el-input size="medium" v-model="searchForm.rechargeTypeName" placeholder="输入要查询的付款人" clearable></el-input>
</div>
</el-form-item>
<el-form-item label="银行流水号:" label-width="120px">
<div class="searchDiv">
<el-input size="medium" v-model="searchForm.rechargeTypeName" placeholder="输入要查询的银行流水号" clearable></el-input>
</div>
</el-form-item>
<el-form-item label="交易金额:" label-width="120px">
<div class="searchDiv">
<el-input size="medium" v-model="searchForm.rechargeTypeName" placeholder="输入要查询的银行单号" clearable></el-input>
</div>
</el-form-item>
<el-form-item label="交易时间:" label-width="120px">
<div class="searchDiv">
<el-date-picker
v-model="searchForm.date"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</div>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button size="mini" type="primary" plain @click="searchDialog = false"> </el-button>
<el-button type="primary" size="mini" @click="search((searchDialog = false))"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
options:[
{
label:'中国银行',
value:0
},
{
label:'招商银行',
value:1
}
],
searchForm:{},
searchDialog:false,
}
},
methods: {
search(){
this.$emit('init',this.searchForm)
},
show(){
this.searchDialog = true
}
},
}
</script>
<style scoped>
</style>

@ -0,0 +1,82 @@
<template>
<div>
<el-divider content-position="right">
<el-button size="mini" type="primary" @click="handleSearch"></el-button>
<el-button size="small" @click="handleDownload"></el-button>
<el-button size="small" type="warning" @click="handleImport"></el-button>
<el-button size="small" type="success" @click="handleExport"></el-button>
</el-divider>
<div class="center">
<el-table :data="list" border style="width: 100%"
max-height="700"
:header-cell-style="{
background: 'linear-gradient(#6cb3ff, #1873d4)',
color: '#eeeeee'
}">
<el-table-column align="center" prop="label" label="单据号" :show-overflow-tooltip="true"></el-table-column>
<el-table-column align="center" prop="label" label="单据类型" :show-overflow-tooltip="true"></el-table-column>
<el-table-column :show-overflow-tooltip="true" align="center" prop="memberName" label="收款方式" ></el-table-column>
<el-table-column align="center" prop="label" label="交易金额" :show-overflow-tooltip="true"></el-table-column>
<el-table-column align="center" prop="label" label="交易时间" :show-overflow-tooltip="true"></el-table-column>
</el-table>
<div class="block">
<el-pagination
align="left"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="pageInfo.pageNum"
:page-sizes="[10, 20, 30, 40, 50]"
:page-size="pageInfo.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
></el-pagination>
</div>
</div>
<store-select ref="select" />
</div>
</template>
<script>
import storeSelect from './storeSelect.vue'
export default {
components:{
storeSelect
},
data() {
return {
list:[],
pageInfo: {
pageNum: 1,
pageSize: 10,
},
total:0
}
},
created() {
},
methods: {
//
handleExport(){},
//
handleImport(){},
//
handleDownload(){},
//
handleSearch(){
this.$refs.select.show()
},
//
handleSizeChange(size){
this.pageInfo.pageNum = size
},
//
handleCurrentChange(current){
this.pageInfo.pageSize = current
},
},
}
</script>
<style scoped >
</style>

@ -0,0 +1,65 @@
<template>
<div>
<el-dialog title="门店收款搜索" :visible.sync="searchDialog">
<el-form :model="searchForm">
<el-form-item label="单据号:" label-width="120px">
<div class="searchDiv">
<el-input size="medium" v-model="searchForm.rechargeTypeName" placeholder="输入要查询的单据号" clearable></el-input>
</div>
</el-form-item>
<el-form-item label="交易金额:" label-width="120px">
<div class="searchDiv">
<el-input size="medium" v-model="searchForm.rechargeTypeName" placeholder="输入要查询的银行单号" clearable></el-input>
</div>
</el-form-item>
<el-form-item label="交易时间:" label-width="120px">
<div class="searchDiv">
<el-date-picker
v-model="searchForm.date"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
</div>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button size="mini" type="primary" plain @click="searchDialog = false"> </el-button>
<el-button type="primary" size="mini" @click="search((searchDialog = false))"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
options:[
{
label:'中国银行',
value:0
},
{
label:'招商银行',
value:1
}
],
searchForm:{},
searchDialog:false,
}
},
methods: {
search(){
this.$emit('init',this.searchForm)
},
show(){
this.searchDialog = true
}
},
}
</script>
<style scoped>
</style>

@ -0,0 +1,118 @@
<template>
<div>
<div class="header_flex">
<div></div>
<div>
<el-select class="form-width-m" filterable default-first-option clearable v-model="pageInfo.storesNum" placeholder="请选择门店" @change="changeOut">
<el-option v-for="(item,index) in options" :key="index" :label="item.storeNum+'--'+ item.storeName" :value="item.id"></el-option>
</el-select>
<el-select class="form-width-m" filterable default-first-option clearable v-model="pageInfo.platform" placeholder="请选择平台号" @change="changeOut">
<el-option v-for="(item,index) in mannerOptions" :key="index" :label="item.label" :value="item.value"></el-option>
</el-select>
<el-date-picker
v-model="pageInfo.date"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期">
</el-date-picker>
<el-button size="mini" type="primary">确认</el-button>
</div>
</div>
<el-form label-width="80px" ref="form">
<div class="flex">
<el-form-item label="门店收款" label-position:="top">
<store ref="store"/>
</el-form-item>
<el-form-item label="银行收款" label-position:="top">
<bank ref="bank"/>
</el-form-item>
</div>
</el-form>
</div>
</template>
<script>
import { organizations } from "@/api/storeManage.js";
import store from './components/store.vue'
import bank from './components/Bank.vue'
export default {
components:{
store,
bank
},
data() {
return {
rowId:'',
options:[],
mannerOptions:[
{
label:'中国银行',
value:1
},
{
label:'招商银行',
value:2
}
],
list:[],
pageInfo: {
pageNum: 1,
pageSize: 10,
},
total:0
}
},
created() {
this.getOption()
},
methods: {
changeOut(){},
getOption(){
organizations({ pageSize: 999 }).then((res) => {
if (res.code == "000000") {
this.options = res.rows;
} else {
this.$alert(res.message, "获取门店信息", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
});
},
del(row){
},
handleAddEdit(){
},
handleRowClick(row){
this.rowId = row.id
},
rowStyle({row}){
if(this.rowId == row.id){
return { 'background-color': 'rgba(255,235,181)', cursor: 'pointer' };
}
return { cursor: 'pointer' }
},
},
}
</script>
<style scoped>
/* 移入table更换背景色 */
/deep/ .el-table--enable-row-hover .el-table__body tr:hover > td {
background-color: rgba(255,235,181);
}
.flex{
display: flex;
width: 100%;
}
/deep/.el-form-item {
/* flex: 1; */
width: 47%;
}
/deep/.el-form-item:nth-child(2){
width: 52%;
}
</style>

@ -0,0 +1,109 @@
<template>
<el-dialog :title="title+'合作商'" :visible.sync="dialogFormVisible" width="500px" :before-close="handleClose">
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="编码:" prop='projectTypeNum'>
<el-input ref="projectTypeNum" type="number" v-model="form.projectTypeNum" autocomplete="on" style="width:200px"></el-input>
</el-form-item>
<el-form-item label="名称:" prop='projectTypeName'>
<el-input v-model="form.projectTypeName" autocomplete="on" style="width:200px"></el-input>
</el-form-item>
<el-form-item label="联系人" prop="registrant">
<el-input class="form-input" v-model="form.registrant" autocomplete="off" style="width:200px"></el-input>
</el-form-item>
<el-form-item label="手机号码" prop="registrantMobilePhone">
<el-input class="form-input" v-model="form.registrantMobilePhone" autocomplete="off" maxlength="11" show-word-limit style="width:200px">
</el-input>
</el-form-item>
<el-form-item label="备注:" prop='projectTypeName'>
<el-input v-model="form.projectTypeName" autocomplete="on" style="width:200px"></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="handleClose" size="mini"> </el-button>
<el-button type="primary" size="mini" @click="save"> </el-button>
</div>
</el-dialog>
</template>
<script>
export default {
name: "DeptEdit",
data() {
return {
form: {}, //
rules: {
projectTypeNum: [
{
required: true,
message: "请输入供应商编码",
trigger: ["blur", "change"],
},
],
deptName: [
{
required: true,
message: "请输入合作商名称",
trigger: ["blur", "change"],
},
],
registrant: [
{
required: true,
message: "请输入联系人名称",
trigger: ["blur", "change"],
},
],
registrantMobilePhone: [
{
required: true,
message: "请输入联系人电话",
trigger: ["blur", "change"],
},
],
},
title: "", //
dialogFormVisible: false, //
};
},
methods: {
//
handleClose() {
this.form = {};
this.dialogFormVisible = false;
this.$refs.form.clearValidate();
},
//
show(num,row) {
this.form = Object.assign({});
if (num == 1) {
this.title = '添加';
} else {
this.title = "修改";
this.form = Object.assign({}, row);
}
this.dialogFormVisible = true;
},
close() {
this.$refs["form"].resetFields();
this.form = this.$options.data().form;
this.dialogFormVisible = false;
},
//
save() {
this.$refs["form"].validate(async (valid) => {
if (valid) {
if (this.title == "添加") {
} else {
}
} else {
return false;
}
});
},
callbackFun(res) {
},
},
};
</script>

@ -0,0 +1,2 @@
export { default as addEdit } from './addEdit.vue'
export { default as seniorSelect } from './select.vue'

@ -0,0 +1,62 @@
<template>
<div>
<el-dialog title="搜索" :visible.sync="searchDialog">
<el-form :model="searchForm">
<el-form-item label="合作商名称搜索:" label-width="120px">
<div class="searchDiv">
<el-input size="medium" v-model="searchForm.rechargeTypeName" placeholder="输入要查询的用合作商名称" clearable></el-input>
</div>
</el-form-item>
<el-form-item label="合作商编码搜索:" label-width="120px">
<div class="searchDiv">
<el-input size="medium" v-model="searchForm.rechargeTypeName" placeholder="输入要查询的供应商编码" clearable></el-input>
</div>
</el-form-item>
<el-form-item label="联系人搜索:" label-width="120px">
<div class="searchDiv">
<el-input size="medium" v-model="searchForm.rechargeTypeName" placeholder="输入要查询的联系人" clearable></el-input>
</div>
</el-form-item>
<el-form-item label="联系人电话搜索:" label-width="120px">
<div class="searchDiv">
<el-input size="medium" v-model="searchForm.rechargeTypeName" placeholder="输入要查询的联系人电话" clearable></el-input>
</div>
</el-form-item>
<el-form-item label="根据状态搜索:" label-width="120px">
<div class="searchDiv">
<el-radio-group v-model="searchForm.state" fill="#f78989">
<el-radio :label="1" size="medium" type="primary">启用中</el-radio>
<el-radio :label="0" size="medium" type="primary">已停用</el-radio>
</el-radio-group>
</div>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button size="mini" type="primary" plain @click="searchDialog = false"> </el-button>
<el-button type="primary" size="mini" @click="search((searchDialog = false))"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
searchForm:{},
searchDialog:false,
}
},
methods: {
search(){
this.$emit('init',this.searchForm)
},
show(){
this.searchDialog = true
}
},
}
</script>
<style scoped>
</style>

@ -0,0 +1,86 @@
<template>
<div>
<div class="header_flex">
<div>
<el-button size="mini" type="primary" @click="handelAddEdit(1)">
</el-button>
</div>
<div>
<el-button size="mini" type="primary" @click="handleSelect"></el-button>
<el-button size="mini" type="info" >刷新</el-button>
</div>
</div>
<el-table style="width: 100%;margin-top:5px" max-height="700" :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)' ,color:'#eeeeee'}" ref="deptRef" border v-loading="listLoading" :data="list" :element-loading-text="elementLoadingText">
<el-table-column align="center" prop="projectTypeNum" label="编码" min-width="100"></el-table-column>
<el-table-column align="center" prop="projectTypeName" :show-overflow-tooltip="true" label="名称" min-width="100"></el-table-column>
<el-table-column align="center" label="状态" min-width="80">
<template slot-scope="scope">
<el-switch v-model="scope.row.state" active-text="" inactive-text="" :active-value="1" :inactive-value="0" inactive-color="#cccccc" class="demo"/>
</template>
</el-table-column>
<el-table-column align="center" prop="founderStaff" label="联系人" min-width="80"></el-table-column>
<el-table-column align="center" prop="founderStaff" label="联系电话" min-width="80"></el-table-column>
<el-table-column align="center" prop="modifyBy" label="最近修改人" min-width="120"></el-table-column>
<el-table-column align="center" prop="modifyDatetime" label="最近修改日期" min-width="80">
</el-table-column>
<el-table-column align="center" prop="founderStaff" label="创建人" min-width="80"></el-table-column>
<el-table-column align="center" prop="founderDatetime" label="创建日期" min-width="80"></el-table-column>
<el-table-column align="center" prop="other" label="备注" min-width="80"></el-table-column>
<el-table-column align="center" fixed="right" label="修改" width="76">
<template slot-scope="scope">
<el-button @click="handelAddEdit(2,scope.row)" size="mini" type="primary">修改</el-button>
</template>
</el-table-column>
<el-table-column align="center" fixed="right" label="删除" width="76">
<template slot-scope="scope">
<el-button size="mini" type="primary" @click="del(scope.row)" plain>删除</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination align="left" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="queryForm.pageNum" :page-sizes="[10,20,30,40,50]" :page-size="queryForm.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total"></el-pagination>
<addEdit ref="addEdit"/>
<seniorSelect ref="select" />
</div>
</template>
<script>
import { addEdit,seniorSelect } from './components/index.js'
export default {
components:{
addEdit,
seniorSelect
},
data() {
return {
queryForm: {
pageNum: 1,
pageSize: 10,
},
total:0,
list: [{}],
listLoading:false,
elementLoadingText: "数据加载中...",
}
},
created() {
},
methods: {
handleSelect(){
this.$refs.select.show()
},
handelAddEdit(num,row){
this.$refs.addEdit.show(num,row)
},
handleSizeChange(val) {
this.queryForm.pageSize = val;
},
handleCurrentChange(val) {
this.queryForm.pageNum = val;
},
},
}
</script>
<style scoped>
</style>

@ -0,0 +1,115 @@
<template>
<div>
<el-dialog :title="title" :visible.sync="dialogFormVisible" width="80%" :before-close="handleClose">
<div class="header_flex">
<div></div>
<div class="flex">
<el-form inline lable-width="100px" @submit.native.prevent>
<el-form-item label="合作商:" >
<el-input size="medium" style="width: 180px" placeholder="请输入合作商名称" v-model="pageInfo.projectNum">
<el-button size="mini" slot="append" maxlength="11" icon="el-icon-search" style="height: 100%;" @click="handleParthners"></el-button>
</el-input>
</el-form-item>
<el-form-item label="合作项目:" >
<el-input size="medium" style="width: 180px" placeholder="请输入合作项目" v-model="pageInfo.projectNum">
<el-button size="mini" slot="append" maxlength="11" icon="el-icon-search" style="height: 100%;" @click="handleProject"></el-button>
</el-input>
</el-form-item>
<el-form-item label="月份:" >
<el-date-picker v-model="pageInfo.month" type="month" placeholder="选择月"></el-date-picker>
</el-form-item>
<el-form-item>
<el-button size="mini" type="primary">确认</el-button>
</el-form-item>
</el-form>
</div>
</div>
<el-table style="width: 100%;margin-top:5px" max-height="700" :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)' ,color:'#eeeeee'}" ref="deptRef" border v-loading="listLoading" :data="list">
<el-table-column label="合作商" align="center">
<el-table-column align="center" prop="projectTypeNum" label="项目编码" min-width="100"></el-table-column>
<el-table-column align="center" prop="projectTypeNum" label="项目名称" min-width="100"></el-table-column>
</el-table-column>
<el-table-column label="公司" align="center">
<el-table-column align="center" prop="projectTypeNum" label="项目编码" min-width="100"></el-table-column>
<el-table-column align="center" prop="projectTypeNum" label="项目名称" min-width="100"></el-table-column>
</el-table-column>
<el-table-column align="center" prop="founderStaff" label="日期" min-width="80"></el-table-column>
<el-table-column align="center" prop="founderDatetime" label="销售金额" min-width="80"></el-table-column>
<el-table-column align="center" prop="founderStaff" label="消费次数" min-width="80"></el-table-column>
<el-table-column align="center" prop="founderStaff" label="消费金额" min-width="80"></el-table-column>
<el-table-column align="center" prop="modifyBy" label="结算依据" min-width="120"></el-table-column>
<el-table-column align="center" label="收入结算标准">
<el-table-column align="center" prop="projectTypeNum" label="结算方式" min-width="100"></el-table-column>
<el-table-column align="center" prop="projectTypeNum" label="合作商" min-width="100"></el-table-column>
<el-table-column align="center" prop="projectTypeNum" label="公司" min-width="100"></el-table-column>
</el-table-column>
<el-table-column label="结算金额" align="center">
<el-table-column align="center" prop="projectTypeNum" label="合作商" min-width="100"></el-table-column>
<el-table-column align="center" prop="projectTypeNum" label="公司" min-width="100"></el-table-column>
</el-table-column>
</el-table>
<el-pagination align="left" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="pageInfo.pageNum" :page-sizes="[10,20,30,40,50]" :page-size="pageInfo.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total"></el-pagination>
<div slot="footer" class="dialog-footer">
<el-button @click="handleClose" size="mini"> </el-button>
</div>
<parthners ref="parthners"/>
<project ref="project" @projectData="projectData"/>
</el-dialog>
</div>
</template>
<script>
import project from "@/components/project/index";
import parthners from "@/components/partners/index";
export default {
components:{
project,
parthners
},
data() {
return {
title:"合作商对账明细表",
dialogFormVisible:false,
pageInfo:{
pageNum: 1, //
pageSize: 10, // ,
},
total:0,
list:[],
listLoading:false
}
},
created() {
},
methods: {
projectData(row){
},
handleParthners(){
this.$refs.parthners.show()
},
handleProject(){
this.$refs.project.show(1);
},
show(){
this.dialogFormVisible = true
},
handleClose() {
this.dialogFormVisible = false;
},
handleSizeChange(size){
this.pageInfo.pageSize = size
},
handleCurrentChange(current){
this.pageInfo.pageNum = current
}
},
}
</script>
<style scoped>
.flex{
display: flex;
align-items: center;
}
</style>

@ -0,0 +1,105 @@
<template>
<div>
<div class="header_flex">
<div></div>
<div class="flex">
<el-form inline lable-width="100px" @submit.native.prevent>
<el-form-item label="合作商:" >
<el-input size="medium" style="width: 180px" placeholder="请输入合作商名称" v-model="pageInfo.projectNum">
<el-button size="mini" slot="append" maxlength="11" icon="el-icon-search" style="height: 100%;" @click="handleParthners"></el-button>
</el-input>
</el-form-item>
<el-form-item label="合作项目:" >
<el-input size="medium" style="width: 180px" placeholder="请输入合作项目" v-model="pageInfo.projectNum">
<el-button size="mini" slot="append" maxlength="11" icon="el-icon-search" style="height: 100%;" @click="handleProject"></el-button>
</el-input>
</el-form-item>
<el-form-item label="月份:" >
<el-date-picker v-model="pageInfo.month" type="month" placeholder="选择月"></el-date-picker>
</el-form-item>
<el-form-item>
<el-button size="mini" type="primary">确认</el-button>
</el-form-item>
</el-form>
</div>
</div>
<el-table style="width: 100%;margin-top:5px" max-height="700" :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)' ,color:'#eeeeee'}" ref="deptRef" border v-loading="listLoading" :data="list">
<el-table-column label="合作商" align="center">
<el-table-column align="center" prop="projectTypeNum" label="项目编码" min-width="100"></el-table-column>
<el-table-column align="center" prop="projectTypeNum" label="项目名称" min-width="100"></el-table-column>
</el-table-column>
<el-table-column label="公司" align="center">
<el-table-column align="center" prop="projectTypeNum" label="项目编码" min-width="100"></el-table-column>
<el-table-column align="center" prop="projectTypeNum" label="项目名称" min-width="100"></el-table-column>
</el-table-column>
<el-table-column align="center" prop="founderStaff" label="销售单数" min-width="80"></el-table-column>
<el-table-column align="center" prop="founderDatetime" label="销售金额" min-width="80"></el-table-column>
<el-table-column align="center" prop="founderStaff" label="消费次数" min-width="80"></el-table-column>
<el-table-column align="center" prop="founderStaff" label="消费金额" min-width="80"></el-table-column>
<el-table-column align="center" prop="modifyBy" label="结算依据" min-width="120"></el-table-column>
<el-table-column align="center" label="收入结算标准">
<el-table-column align="center" prop="projectTypeNum" label="结算方式" min-width="100"></el-table-column>
<el-table-column align="center" prop="projectTypeNum" label="合作商" min-width="100"></el-table-column>
<el-table-column align="center" prop="projectTypeNum" label="公司" min-width="100"></el-table-column>
</el-table-column>
<el-table-column label="结算" align="center">
<el-table-column align="center" prop="projectTypeNum" label="合作商" min-width="100"></el-table-column>
<el-table-column align="center" prop="projectTypeNum" label="公司" min-width="100"></el-table-column>
</el-table-column>
</el-table>
<el-pagination align="left" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="pageInfo.pageNum" :page-sizes="[10,20,30,40,50]" :page-size="pageInfo.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total"></el-pagination>
<detail ref="detail"></detail>
<parthners ref="parthners"/>
<project ref="project" @projectData="projectData"/>
</div>
</template>
<script>
import detail from './components/detail.vue'
import parthners from '@/components/partners/index'
import project from "@/components/project/index";
export default {
data() {
return {
pageInfo:{
pageNum: 1, //
pageSize: 10, // ,
},
total:0,
list:[{}],
listLoading:false
}
},
components:{
detail,
project,
parthners
},
created() {
},
methods: {
handleParthners(){
this.$refs.parthners.show()
},
detailShow(){
this.$refs.detail.show()
},
handleProject(){
this.$refs.project.show(1);
},
projectData(){},
handleSizeChange(size){
this.pageInfo.pageSize = size
},
handleCurrentChange(current){
this.pageInfo.pageNum = current
}
},
}
</script>
<style scoped>
.flex{
display: flex;
align-items: center;
}
</style>

@ -0,0 +1,232 @@
<template>
<el-dialog :close-on-click-modal="false" :title="title+'项目'" :visible.sync="dialogFormVisible" width="800px" v-dialogDrag :before-close="handleClose">
<div class="max-height-60">
<el-form :model="form" ref="form" inline label-width="115px" :rules="rules">
<el-form-item label="合作商编码" prop="projectNum">
<el-input class="form-width" ref="projectNum" :disabled="title=='明细'" oninput="this.value=this.value.replace(/[^\w_]/g,'');" placeholder='请输入合作商编码' v-model="form.projectNum" autocomplete="on">
<el-button size="mini" slot="append" maxlength="11" icon="el-icon-search" style="height: 100%;" @click="handleParthners"></el-button>
</el-input>
</el-form-item>
<el-form-item label="合作商项目名称" prop="projectName">
<el-input class="form-width" :disabled="title=='明细'" v-model="form.projectName" autocomplete="on" placeholder='请输入项目名称'></el-input>
</el-form-item>
<el-form-item label="公司项目编码">
<el-input class="form-width" ref="projectNum" :disabled="title=='明细'" oninput="this.value=this.value.replace(/[^\w_]/g,'');" placeholder='请输入项目编码' v-model="form.projectNum" autocomplete="on">
<el-button size="mini" slot="append" maxlength="11" icon="el-icon-search" style="height: 100%;" @click="handleProject"></el-button>
</el-input>
</el-form-item>
<el-form-item label="公司项目名称">
<el-input class="form-width" :disabled="title=='明细'" v-model="form.projectName" autocomplete="on" placeholder='请输入项目名称'></el-input>
</el-form-item>
<el-form-item label="结算依据" prop="directConsumption">
<div class="form-width">
<el-radio-group v-model="form.directConsumption">
<el-radio :label="1">疗程</el-radio>
<el-radio :label="0">收银</el-radio>
</el-radio-group>
</div>
</el-form-item>
<el-form-item label="结算方式" prop="smokeCommissionWay">
<div class="form-width">
<el-radio-group v-model="form.smokeCommissionWay">
<el-radio :disabled="title=='明细'" :label="0">固定金额</el-radio>
<el-radio :disabled="title=='明细'" :label="1">固定比例</el-radio>
</el-radio-group>
</div>
</el-form-item>
<el-form-item :label="'合作商结算'+(form.smokeCommissionWay==0?'金额':'比例')" prop="brokerage">
<div class="form-width">
<el-input class="form-width" :disabled="title=='明细'" oninput="this.value=this.value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')" :placeholder="'请输入拆分'+(form.smokeCommissionWay==0?'金额':'比例(%)')" pattern="[0-9]*\.?[0-9]{0,2}" v-model="form.brokerage" autocomplete="on"></el-input>
</div>
</el-form-item>
<el-form-item :label="'公司结算'+(form.smokeCommissionWay==0?'金额':'比例')" prop="brokerage">
<div class="form-width">
<el-input class="form-width" :disabled="title=='明细'" oninput="this.value=this.value.replace(/^\D*(\d*(?:\.\d{0,2})?).*$/g, '$1')" :placeholder="'请输入拆分'+(form.smokeCommissionWay==0?'金额':'比例(%)')" pattern="[0-9]*\.?[0-9]{0,2}" v-model="form.brokerage" autocomplete="on"></el-input>
</div>
</el-form-item>
<el-form-item label="备注">
<el-input class="form-width" :disabled="title=='明细'" style="max-width: 200px" maxlength="200" type="textarea" :autosize="{ minRows: 3, maxRows: 12 }" show-word-limit v-model="form.label" autocomplete="on"></el-input>
</el-form-item>
</el-form>
</div>
<div slot="footer" class="dialog-footer">
<el-button size="mini" v-if="title=='明细'" type="primary" @click="handleClose"></el-button>
<el-button size="mini" v-else type="primary" @click="handleClose"> </el-button>
<el-button size="mini" v-if="title=='明细'" v-role="4005003" type="primary" @click="title='修改'"></el-button>
<el-button size="mini" v-else type="primary" @click="confirm()"> </el-button>
</div>
<parthners ref="parthners"/>
<project ref="project" @projectData="projectData"/>
</el-dialog>
</template>
<script>
import project from "@/components/project/index";
import parthners from "@/components/partners/index";
export default {
data() {
return {
formLabelwidth: "100px",
dialogFormVisible: false, //
title: "", //
form: {},
format: "YYYY-MM-DD hh:mm:ss",
rules: {
projectTypeName: {
required: true,
message: "请选择项目类别",
trigger: ["blur", "change"],
},
projectNum: {
required: true,
message: "请输入项目编码",
trigger: ["blur", "change"],
},
isCooperation: {
required: true,
message: "请选择是否合作项目",
trigger: ["blur", "change"],
},
projectName: {
required: true,
message: "请输入项目名称",
trigger: ["blur", "change"],
},
directConsumption: {
required: true,
message: "拆分依据",
trigger: ["blur", "change"],
},
smokeCommissionWay: {
required: true,
message: "抽佣方式",
trigger: ["blur", "change"],
},
brokerage: {
required: true,
message: "抽佣比例",
trigger: ["blur", "change"],
},
},
};
},
components:{
project,
parthners
},
methods: {
handleParthners(){
this.$refs.parthners.show()
},
handleProject(){
this.$refs.project.show(1);
},
projectData(row){
},
//
show() {
this.dialogFormVisible = true
},
//
handleClose() {
this.form = {};
this.dialogFormVisible = false;
this.$refs.form.clearValidate();
},
//
confirm() {
this.form.projectNature = 0;
this.$refs.form.validate((valid) => {
if (valid) {
}
});
},
},
};
</script>
<style scoped>
.el-col {
width: 450px;
}
.wage {
position: relative;
}
.table input {
width: 55px;
height: 30px;
border: none;
color: #5a5b5c;
border-color: #99a9bf;
}
.table .demo-table-expand {
font-size: 0;
}
.table .demo-table-expand label {
width: 90px;
color: #99a9bf;
}
.table .el-col {
border: 1px solid #99a9bf;
height: 500px;
width: 300px;
overflow: hidden;
}
.table .demo-table-expand .el-form-item {
margin-right: 0;
margin-bottom: 0;
width: 20%;
}
.table .el-table {
display: none;
}
.table {
border-right: 1px solid #e7e7e7;
border-bottom: 1px solid #e7e7e7;
background: white;
width: 95%;
height: 300px;
margin: 5px auto;
text-align: center;
box-shadow: 5px 5px 5px #e7e7e7;
}
.table td,
.table tr,
.table th {
border-left: 1px solid #e7e7e7;
border-top: 1px solid #e7e7e7;
}
.table .tr th {
background: #e7e7e7;
border-right: 1px solid white;
}
.table td {
overflow: hidden !important;
width: 100px;
height: 60px;
}
.but2 {
position: absolute;
bottom: 20px;
left: 40px;
width: 58px;
height: 32px;
}
.el-table th {
padding: 5px 0;
}
</style>

@ -0,0 +1,62 @@
<template>
<div>
<el-dialog title="搜索" :visible.sync="searchDialog">
<el-form :model="searchForm">
<el-form-item label="合作商编码搜索:" label-width="120px">
<div class="searchDiv">
<el-input size="medium" v-model="searchForm.rechargeTypeName" placeholder="输入要查询的用合作商名称" clearable></el-input>
</div>
</el-form-item>
<el-form-item label="合作商名称搜索:" label-width="120px">
<div class="searchDiv">
<el-input size="medium" v-model="searchForm.rechargeTypeName" placeholder="输入要查询的合作商名称" clearable></el-input>
</div>
</el-form-item>
<el-form-item label="公司项目编码搜索:" label-width="120px">
<div class="searchDiv">
<el-input size="medium" v-model="searchForm.rechargeTypeName" placeholder="输入要查询的公司项目编码" clearable></el-input>
</div>
</el-form-item>
<el-form-item label="公司项目名称搜索:" label-width="120px">
<div class="searchDiv">
<el-input size="medium" v-model="searchForm.rechargeTypeName" placeholder="输入要查询的公司项目名称" clearable></el-input>
</div>
</el-form-item>
<el-form-item label="拆分方式搜索:" label-width="120px">
<div class="searchDiv">
<el-radio-group v-model="searchForm.state" fill="#f78989">
<el-radio :label="1" size="medium" type="primary">按比例</el-radio>
<el-radio :label="0" size="medium" type="primary">按金额</el-radio>
</el-radio-group>
</div>
</el-form-item>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button size="mini" type="primary" plain @click="searchDialog = false"> </el-button>
<el-button type="primary" size="mini" @click="search((searchDialog = false))"> </el-button>
</span>
</el-dialog>
</div>
</template>
<script>
export default {
data() {
return {
searchForm:{},
searchDialog:false,
}
},
methods: {
search(){
this.$emit('init',this.searchForm)
},
show(){
this.searchDialog = true
}
},
}
</script>
<style scoped>
</style>

@ -0,0 +1,168 @@
<template>
<div>
<div class="header_flex">
<div>
<el-button
size="mini"
type="primary"
:disabled="!rowId"
@click="handleAddEdit"
>添加
</el-button>
</div>
<div>
<el-input
size="medium"
style="width: 180px"
placeholder="请输入项目编码"
v-model="input"
>
<i slot="prefix" class="el-input__icon el-icon-search"></i>
</el-input>
<el-button size="mini" type="primary">确认</el-button
>
<el-button size="mini" type="primary" @click="handleSelect"></el-button>
<el-button size="mini" type="info" plain>刷新</el-button
>
</div>
</div>
<div class="flex justify-start align-start bg-white padding-bottom">
<div style="width:180px" class="margin-right-xs">
<el-table :data="leftList" border style="width: 100%"
:header-cell-style="{
background: 'linear-gradient(#6cb3ff, #1873d4)',
color: '#eeeeee'
}"
max-height="700"
ref="deptRef"
@row-click="handleRowClick"
:row-style="rowStyle"
>
<el-table-column
align="center"
label="合作商"
show-overflow-tooltip
>
<template slot-scope="scope">
{{ scope.row.projectTypeNum + '---' + scope.row.projectTypeName }}
</template>
</el-table-column>
</el-table>
</div>
<el-table :data="rightList" border style="width: 100%"
max-height="700"
:header-cell-style="{
background: 'linear-gradient(#6cb3ff, #1873d4)',
color: '#eeeeee'
}"
>
<el-table-column align="center" label="合作商项目" show-overflow-tooltip>
<el-table-column align="center" label="编码" show-overflow-tooltip></el-table-column>
<el-table-column align="center" label="名称" show-overflow-tooltip></el-table-column>
</el-table-column>
<el-table-column align="center" label="公司项目" show-overflow-tooltip>
<el-table-column align="center" label="编码" show-overflow-tooltip></el-table-column>
<el-table-column align="center" label="名称" show-overflow-tooltip></el-table-column>
</el-table-column>
<el-table-column align="center" label="结算时点" show-overflow-tooltip>
<!-- 销售--疗程 买单--收银 -->
</el-table-column>
<el-table-column align="center" label="结算方式" show-overflow-tooltip>
<el-table-column align="center" label="方式" show-overflow-tooltip></el-table-column>
<el-table-column align="center" label="合作商" show-overflow-tooltip></el-table-column>
<el-table-column align="center" label="公司" show-overflow-tooltip></el-table-column>
</el-table-column>
<el-table-column align="center" label="备注" show-overflow-tooltip></el-table-column>
<el-table-column align="center" fixed="right" label="删除" min-width="76">
<template slot-scope="scope">
<el-button size="mini" type="primary" @click="del(scope.row)" plain>删除</el-button>
</template>
</el-table-column>
</el-table>
</div>
<div class="block">
<el-pagination
align="left"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="pageInfo.pageNum"
:page-sizes="[10, 20, 30, 40, 50]"
:page-size="pageInfo.pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
></el-pagination>
</div>
<edit ref="edit"/>
<advanced-searchselect ref="advancedSearchselect" />
</div>
</template>
<script>
import edit from './components/edit.vue'
import advancedSearchselect from './components/select.vue'
export default {
components:{
edit,
advancedSearchselect
},
data() {
return {
input:'',
rowId:'',
leftList:[
{
projectTypeNum:'001',
projectTypeName:'供应商',
id:1
},
{
projectTypeNum:'001',
projectTypeName:'供应商2',
id:2
}
],
rightList:[],
pageInfo: {
pageNum: 1,
pageSize: 10,
},
total:0
}
},
created() {
this.$nextTick(()=>{
this.rowId = 1
this.$refs.deptRef.setCurrentRow(this.leftList[0])
})
},
methods: {
handleSelect(){
this.$refs.advancedSearchselect.show()
},
handleAddEdit(){
this.$refs.edit.show()
},
handleRowClick(row){
this.rowId = row.id
},
rowStyle({row}){
if(this.rowId == row.id){
return { 'background-color': 'rgba(255,235,181)', cursor: 'pointer' };
}
return { cursor: 'pointer' }
},
handleSizeChange(size){
this.pageInfo.pageNum = size
},
handleCurrentChange(current){
this.pageInfo.pageSize = current
},
},
}
</script>
<style scoped>
/* 移入table更换背景色 */
/deep/ .el-table--enable-row-hover .el-table__body tr:hover > td {
background-color: rgba(255,235,181);
}
</style>

@ -0,0 +1,109 @@
<template>
<div>
<div class="header_flex">
<div></div>
<div class="flex">
<el-form inline lable-width="100px" @submit.native.prevent>
<el-form-item label="合作商:" >
<el-input size="medium" style="width: 180px" placeholder="请输入合作商名称" v-model="pageInfo.projectNum">
<el-button size="mini" slot="append" maxlength="11" icon="el-icon-search" style="height: 100%;" @click="handleParthners"></el-button>
</el-input>
</el-form-item>
<el-form-item label="合作项目:" >
<el-input size="medium" style="width: 180px" placeholder="请输入合作项目" v-model="pageInfo.projectNum">
<el-button size="mini" slot="append" maxlength="11" icon="el-icon-search" style="height: 100%;" @click="handleProject"></el-button>
</el-input>
</el-form-item>
<el-form-item label="月份:" >
<el-date-picker v-model="pageInfo.month" type="month" placeholder="选择月"></el-date-picker>
</el-form-item>
<el-form-item>
<el-button size="mini" type="primary">确认</el-button>
</el-form-item>
</el-form>
</div>
</div>
<el-table style="width: 100%;margin-top:5px" max-height="700" :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)' ,color:'#eeeeee'}" ref="deptRef" border v-loading="listLoading" :data="list">
<el-table-column label="合作商" align="center">
<el-table-column align="center" prop="projectTypeNum" label="项目编码" min-width="100"></el-table-column>
<el-table-column align="center" prop="projectTypeNum" label="项目名称" min-width="100"></el-table-column>
</el-table-column>
<el-table-column label="公司" align="center">
<el-table-column align="center" prop="projectTypeNum" label="项目编码" min-width="100"></el-table-column>
<el-table-column align="center" prop="projectTypeNum" label="项目名称" min-width="100"></el-table-column>
</el-table-column>
<el-table-column align="center" prop="founderStaff" label="日期" min-width="80"></el-table-column>
<el-table-column align="center" prop="founderDatetime" label="销售金额" min-width="80"></el-table-column>
<el-table-column align="center" prop="founderStaff" label="消费次数" min-width="80"></el-table-column>
<el-table-column align="center" prop="founderStaff" label="消费金额" min-width="80"></el-table-column>
<el-table-column align="center" prop="modifyBy" label="结算依据" min-width="120"></el-table-column>
<el-table-column align="center" label="收入结算标准">
<el-table-column align="center" prop="projectTypeNum" label="结算方式" min-width="100"></el-table-column>
<el-table-column align="center" prop="projectTypeNum" label="合作商" min-width="100"></el-table-column>
<el-table-column align="center" prop="projectTypeNum" label="公司" min-width="100"></el-table-column>
</el-table-column>
<el-table-column label="结算金额" align="center">
<el-table-column align="center" prop="projectTypeNum" label="合作商" min-width="100"></el-table-column>
<el-table-column align="center" prop="projectTypeNum" label="公司" min-width="100"></el-table-column>
</el-table-column>
</el-table>
<el-pagination align="left" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="pageInfo.pageNum" :page-sizes="[10,20,30,40,50]" :page-size="pageInfo.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total"></el-pagination>
<parthners ref="parthners"/>
<project ref="project" @projectData="projectData"/>
</div>
</template>
<script>
import project from "@/components/project/index";
import parthners from '@/components/partners/index'
export default {
components:{
project,
parthners
},
data() {
return {
title:"合作商对账明细表",
pageInfo:{
pageNum: 1, //
pageSize: 10, // ,
},
total:0,
list:[],
listLoading:false
}
},
created() {
},
methods: {
projectData(row){
},
handleParthners(){
this.$refs.parthners.show()
},
handleProject(){
this.$refs.project.show(1);
},
show(){
this.dialogFormVisible = true
},
handleClose() {
this.dialogFormVisible = false;
},
handleSizeChange(size){
this.pageInfo.pageSize = size
},
handleCurrentChange(current){
this.pageInfo.pageNum = current
}
},
}
</script>
<style scoped>
.flex{
display: flex;
align-items: center;
}
</style>

@ -0,0 +1,91 @@
<template>
<el-dialog :close-on-click-modal="false" v-dialogDrag :title="title" :visible.sync="dialogVisible" width="70%" append-to-body>
<div class="flex justify-end padding-bottom-xs">
<el-input class="form-width-m " size="small" v-model="queryForm.projectNum" clearable placeholder="供应商编码" @change="getData"></el-input>
<el-input class="form-width-m margin-left-xs" size="small" v-model="queryForm.projectName" clearable placeholder="合作商名称" @change="getData"></el-input>
<el-input class="form-width-m margin-left-xs" size="small" v-model="queryForm.projectName" clearable placeholder="联系人" @change="getData"></el-input>
<el-input class="form-width-m margin-left-xs" size="small" v-model="queryForm.projectName" clearable placeholder="联系电话" @change="getData"></el-input>
<el-button class="margin-left-xs" size="mini" type="primary" @click="getData" style="height:0.16rem">搜索</el-button>
</div>
<el-table @row-dblclick="confirms" :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)' ,color:'#eeeeee'}" :data="coureList" @row-click="rowClick" max-height="600" v-loading="listLoading" :element-loading-text="elementLoadingText">
<el-table-column label="选择" width="45">
<template slot-scope="scope">
<el-radio v-model="radio" :label="scope.row.id" @change.native="scope.row">
{{ "" }}
</el-radio>
</template>
</el-table-column>
<el-table-column show-overflow-tooltip align="left" prop="courseProjectNum" label="供应商编码"></el-table-column>
<el-table-column show-overflow-tooltip align="left" prop="courseProjectName" label="合作商名称"></el-table-column>
<el-table-column show-overflow-tooltip align="center" prop="price" label="供应商状态"></el-table-column>
<el-table-column show-overflow-tooltip align="center" prop="courseRestCount" label="联系人"></el-table-column>
<el-table-column show-overflow-tooltip align="center" prop="courseRestPrice" label="联系电话"></el-table-column>
<el-table-column show-overflow-tooltip align="center" prop="courseConsumeCount" label="其他"></el-table-column>
</el-table>
<!-- 分页组件 -->
<el-pagination v-if="!form.memberName" align="left" @size-change="handleSizeChange" @current-change="handleCurrentChange" :current-page="queryForm.pageNum" :page-sizes="[10,20,30,40,50]" :page-size="queryForm.pageSize" layout="total, sizes, prev, pager, next, jumper" :total="total"></el-pagination>
<span slot="footer" class="dialog-footer">
<el-button size="mini" type="primary" plain @click="dialogVisible = false"> </el-button>
<el-button size="mini" type="primary" @click="confirms()">
</el-button>
</span>
</el-dialog>
</template>
<script>
export default {
props:{
},
data() {
return {
radio: null, //
radioForm: {}, //
list: [], //
coureList: [],
dialogVisible: false, //
listLoading: false, //list
elementLoadingText: "数据加载中...", //list
title: "合作商", //
total: 0, //
form: {}, //
queryForm: {
//
pageNum: 1,
pageSize: 10,
state: 1,
projectName: "",
},
};
},
methods: {
//
show() {
this.dialogVisible = true;
},
//
rowClick(row) {
this.radio = row.id;
this.radioForm = row;
},
//coureList
handleSizeChange(val) {
this.queryForm.pageSize = val;
this.getData();
},
handleCurrentChange(val) {
this.queryForm.pageNum = val;
this.getData();
},
//
async getData() {
this.listLoading = true;
},
confirms() {
this.dialogVisible = false;
},
},
};
</script>
<style>
</style>

@ -33,9 +33,19 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="支付方式" prop="payId">
<el-select v-model="form.payId" placeholder="请选择">
<el-option
v-for="item in payOptions"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<br>
<el-form-item label="上传附件:" prop="fileList">
<el-upload multiple :auto-upload="false" :http-request="uploadFile" style="width:500px" class="upload-demo" :file-list="fileList" name="fileList" ref="uploads" list-type="picture" action="">
<el-upload multiple :http-request="uploadFile" style="width:500px" class="upload-demo" :file-list="fileList" name="fileList" ref="uploads" list-type="picture" action="">
<el-button slot="trigger" size="mini" type="primary">选取文件</el-button>
<span slot="tip" class="el-upload__tip">上传团购卡的附件大小不超过10M可以上传多个</span>
</el-upload>
@ -68,6 +78,7 @@ import admin from "@/components/staffList/admin/index";
import member from "@/components/member/index";
import { partten } from "../../../../../partten/index";
import { organizations,SysRoleStore } from "@/api/storeManage.js";
import { ctlist } from "@/api/eashier.js";
export default {
components: {
member,
@ -91,6 +102,11 @@ export default {
message: "请选择所属门店",
trigger: ["blur", "change"],
},
payId: {
required: true,
message: "请选择支付方式",
trigger: ["blur", "change"],
},
quantity: {
required: true,
message: "请输入份数",
@ -102,14 +118,15 @@ export default {
trigger: ["blur", "change"],
},
fileList: {
required: true,
required: false,
message: "请上传附件",
trigger: ["blur", "change"],
},
},
fileList: [],
options: [],
form: {}, //
form: {
}, //
rowForm: {},
listLoading: false, //list
elementLoadingText: "加载中...", //list
@ -120,9 +137,22 @@ export default {
staffLists: [{ brandNumber: "", staffName: "", ratio: 100 }],
managerLists: [{ brandNumber: "", staffName: "", ratio: 100 }],
adminList: [{ brandNumber: "", staffName: "", ratio: 100 }],
payOptions:[]
};
},
methods: {
init(){
ctlist({
state: 1
}).then(res=>{
this.payOptions = res.rows.map(item=>{
return {
value:item.id,
label:item.collectionTypeName
}
})
})
},
//
handleClose() {
this.form = {};
@ -193,6 +223,7 @@ export default {
show(form,type) {
Object.assign(this.$data, this.$options.data())
this.form = {};
this.init()
setTimeout(() => {
this.$refs.form.clearValidate();
}, 300);
@ -213,6 +244,13 @@ export default {
this.type = null
}
this.form = { ...form };
try{
if(form.payListList.length){
this.$set(this.form,'payId',form.payListList[0].payId)
}
}catch(err){
}
this.form.storeNames = this.form.storeId;
this.fileList;
let fileList = [];
@ -296,96 +334,118 @@ export default {
},
//
confirm() {
this.$refs.uploads.submit();
let salesmens = [];
this.managerLists.forEach((item) => {
if (item.id) {
item.staffType = 0;
salesmens.push(item);
}
});
this.adminList.forEach((item) => {
if (item.id) {
item.staffType = 1;
salesmens.push(item);
}
});
this.fileData.append("salesmens", JSON.stringify(salesmens));
this.fileData.append("staffLists", JSON.stringify(this.staffLists));
this.fileData.append("rechargeTypeNum", this.form.rechargeTypeNum);
this.fileData.append("storeId", this.form.storeId);
this.fileData.append("storeName", this.form.storeName);
this.fileData.append("rechargeTypeName", this.form.rechargeTypeName);
this.fileData.append("rechargeTypeId", this.form.rechargeTypeId);
this.fileData.append("discount", this.form.discount);
this.fileData.append("rechargeMoney", this.form.rechargeMoney);
this.fileData.append("quantity", this.form.quantity);
if (this.form.order) {
this.fileData.append("order", this.form.order);
}
if (this.form.id) {
this.fileData.append("id", this.form.id);
}
if (this.form.fileList) {
this.fileData.append("fileList", this.form.fileList);
}
if (this.form.expireDate) {
this.fileData.append("expireDate", this.form.expireDate);
}
this.confirmLoad = true
if (this.title == "添加") {
addBaseGrouponCard(this.fileData)
.then((res) => {
this.confirmLoad = false
if (res.code == "000000") {
this.$emit("editData");
this.dialogFormVisible = false;
this.$message.success({
message: "数据添加成功!",
});
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {
this.fileData = new FormData()
},
});
this.$refs.form.validate((valid) => {
if (valid) {
this.$refs.uploads.submit();
let salesmens = [];
this.managerLists.forEach((item) => {
if (item.id) {
item.staffType = 0;
salesmens.push(item);
}
})
.catch((err) => {
//console.log(err);
});
} else {
editBaseGrouponCard(this.fileData).then((res) => {
if (res.code == "000000") {
this.confirmLoad = false
this.$emit("editData");
this.dialogFormVisible = false;
this.$message.success({
message: res.message,
});
this.adminList.forEach((item) => {
if (item.id) {
item.staffType = 1;
salesmens.push(item);
}
});
this.fileData.append("salesmens", JSON.stringify(salesmens));
this.fileData.append("staffLists", JSON.stringify(this.staffLists));
this.fileData.append("rechargeTypeNum", this.form.rechargeTypeNum);
this.fileData.append("storeId", this.form.storeId);
this.fileData.append("storeName", this.form.storeName);
this.fileData.append("rechargeTypeName", this.form.rechargeTypeName);
this.fileData.append("rechargeTypeId", this.form.rechargeTypeId);
this.fileData.append("discount", this.form.discount);
this.fileData.append("rechargeMoney", this.form.rechargeMoney);
this.fileData.append("quantity", this.form.quantity);
if (this.form.order) {
this.fileData.append("order", this.form.order);
}
if (this.form.id) {
this.fileData.append("id", this.form.id);
}
if (this.form.fileList) {
this.fileData.append("fileList", this.form.fileList);
}
if (this.form.expireDate) {
this.fileData.append("expireDate", this.form.expireDate);
}
this.confirmLoad = true
if (this.title == "添加") {
let payListList = [
{
payId:this.form.payId,
payName:this.payOptions[this.payOptions.findIndex(item=>item.value == this.form.payId)].label,
payMoney:this.form.rechargeMoney * this.form.quantity
}
]
this.fileData.append("payListList",JSON.stringify(payListList));
addBaseGrouponCard(this.fileData)
.then((res) => {
this.confirmLoad = false
if (res.code == "000000") {
this.$emit("editData");
this.dialogFormVisible = false;
this.$message.success({
message: "数据添加成功!",
});
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {
this.fileData = new FormData()
},
});
}
})
.catch((err) => {
//console.log(err);
});
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {
this.fileData = new FormData()
},
let payListList = [
{
payId:this.form.payId,
payName:this.payOptions[this.payOptions.findIndex(item=>item.value == this.form.payId)].label,
payMoney:this.form.rechargeMoney * this.form.quantity
}
]
this.fileData.append("payListList",JSON.stringify(payListList));
editBaseGrouponCard(this.fileData).then((res) => {
if (res.code == "000000") {
this.confirmLoad = false
this.$emit("editData");
this.dialogFormVisible = false;
this.$message.success({
message: res.message,
});
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {
this.fileData = new FormData()
},
});
}
});
}
});
}
this.$refs.uploads.clearFiles();
this.staffLists= [{ brandNumber: "", staffName: "", ratio: 100 }];
this.managerLists= [{ brandNumber: "", staffName: "", ratio: 100 }];
this.adminList=[{ brandNumber: "", staffName: "", ratio: 100 }];
this.$refs.uploads.clearFiles();
this.staffLists= [{ brandNumber: "", staffName: "", ratio: 100 }];
this.managerLists= [{ brandNumber: "", staffName: "", ratio: 100 }];
this.adminList=[{ brandNumber: "", staffName: "", ratio: 100 }];
} else {
return false;
}
});
},
},
},
};
</script>

@ -9,6 +9,15 @@
</div>
<!-- <el-button size="mini" type="success" @click="exit()"></el-button> -->
<div>
<el-button
size="mini"
type="primary"
@click="handleSendSms"
:disabled="radioRowValueList.state == undefined"
:loading="smsLoad"
plain
>发送短信</el-button
>
<el-button type="primary" size="mini" @click="Export()"></el-button>
<el-button
size="mini"
@ -72,7 +81,7 @@
<el-button
size="mini"
type="primary"
@click="edit(3,3)"
@click="edit(3)"
:disabled="
radioRowValueList.state == undefined ||
radioRowValueList.state == 0 ||
@ -300,12 +309,14 @@ import {
importBaseGrouponList,
downloadBaseGrouponList,
delBaseGrouponCard,
Export
Export,
sendSms
} from "@/api/promotion.js";
export default {
components: { edit, detail, excel },
data() {
return {
smsLoad:false,
suditLoad:false,
form: {}, //
listLoading: false, //list
@ -323,6 +334,33 @@ export default {
};
},
methods: {
//
handleSendSms(){
this.$confirm('是否发送短信?', '短信', {
distinguishCancelAndClose: true,
confirmButtonText: '是',
cancelButtonText: '否'
}).then(res=>{
let params = {
id:this.radioRowValue
}
this.smsLoad = true
sendSms(params).then(res=>{
this.smsLoad = false
if(res.code == "000000"){
this.$message.success({ message: "发送成功" });
}else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: action => {}
});
}
})
})
},
//
fileData(v) {
var fileData = new FormData();
@ -405,7 +443,7 @@ export default {
var a = document.createElement("a");
var url = window.URL.createObjectURL(blob);
console.log(url);
a.href = url;
a.href = url;isNum
a.download = "项目导出表.xlsx";
a.click();
window.URL.revokeObjectURL(url);

@ -23,19 +23,20 @@
<!-- 充值表格 -->
<div>
<el-table :data="tableDate"
:header-cell-style="{ background: 'linear-gradient(#6cb3ff, #1873d4)', color: '#eeeeee' }" style="margin-bottom: 10%;width: 90%; margin-left: 5%;">
<el-table-column align="center" label="充值">
<el-table-column align="center" prop="openning" label="期初"></el-table-column>
<el-table-column align="center" prop="storeName" label="门店"></el-table-column>
<el-table-column align="center" label="收入">
<el-table-column align="center" prop="rechargeMoney" label="充值开卡" min-width="70"></el-table-column>
<el-table-column align="center" prop="rechargeRepay" label="充值还款" min-width="70"></el-table-column>
<el-table-column align="center" prop="rechargeRepay" label="充值卡付还款" min-width="70"></el-table-column>
<el-table-column align="center" prop="rechargeGifMoney" label="充值赠送金额" min-width="95"></el-table-column>
<el-table-column align="center" prop="repayRechargeGifMoney" label="还款到账赠送金额" min-width="120"></el-table-column>
<el-table-column align="center" prop="turnInStoreGifMoney" label="赠送转入门店" min-width="95"></el-table-column>
<el-table-column align="center" prop="courseTurnRecharge" label="疗程转充值" min-width="80"></el-table-column>
<el-table-column align="center" prop="cashRefund" label="消费退" min-width="60"></el-table-column>
<el-table-column align="center" prop="refundCashGifMoney" label="消费退" min-width="60"></el-table-column>
<el-table-column align="center" prop="refundCashGifMoney" label="消费退赠送金额" min-width="60"></el-table-column>
<el-table-column align="center" prop="groupPurchase" label="团购卡" min-width="60"></el-table-column>
<el-table-column align="center" prop="init" label="初始化" min-width="60"></el-table-column>
</el-table-column>
@ -48,7 +49,6 @@
<el-table-column align="center" prop="cashRechargeGifMoney" label="收银使用赠送金" min-width="100"></el-table-column>
<el-table-column align="center" prop="refundGifMoney" label="退款赠送金额" min-width="80"></el-table-column>
<el-table-column align="center" prop="turnOutStoreGifMoney" label="赠送转出门店" min-width="80"></el-table-column>
<el-table-column align="center" prop="rechargeRefundMoney" label="充值退" min-width="80"></el-table-column>
</el-table-column>
<el-table-column align="center" prop="balance" label="结存" min-width="50"></el-table-column>
</el-table-column>
@ -72,15 +72,14 @@
<el-table-column align="center" prop="cardChange" label="加价转疗程" min-width="50"></el-table-column>
</el-table-column>
<el-table-column align="center" label="支出">
<el-table-column align="center" prop="courseRepayMoney" label="还款" min-width="50"></el-table-column>
<el-table-column align="center" prop="courseRepayMoney" label="疗程卡付还款" min-width="50"></el-table-column>
<el-table-column align="center" prop="cashMoney" label="收银" min-width="50"></el-table-column>
<el-table-column align="center" prop="courseRefundMoney" label="疗程退" min-width="50"></el-table-column>
<el-table-column align="center" prop="courseTurnCharge" label="疗程转充值" min-width="50"></el-table-column>
<el-table-column align="center" prop="courseTurnStoreMoney" label="疗程转门店" min-width="50">
</el-table-column>
</el-table-column>
<el-table-column align="center" prop="balance" label="结存" min-width="50"></el-table-column>
</el-table-column>
<el-table-column align="center" prop="balance" label="结存" min-width="50"></el-table-column></el-table-column>
</el-table>
</div>
</div>

@ -0,0 +1,207 @@
<template>
<!-- 负卡金 -->
<div>
<el-select v-if="isTrue == 1" ref="select" collapse-tags filterable default-first-option :multiple='true' v-model="storeId" clearable @clear="getData" placeholder="请选择门店" @change="getData">
<el-option v-for="item in options" :key="item.id" :label="item.label" :value="item.storeId">
</el-option>
</el-select>
<el-date-picker
v-model="Time"
placeholder="选择日期"
type="daterange"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="截止日期"
@change="handlegetData"
>
</el-date-picker>
<div>
<el-button size="mini" type="primary" @click="refresh" style="margin-left: 95%;">刷新</el-button>
</div>
<br>
<div class="div_content">
<!-- 充值表格 -->
<div>
<el-table :data="tableDate"
:header-cell-style="{ background: 'linear-gradient(#6cb3ff, #1873d4)', color: '#eeeeee' }" style="margin-bottom: 10%;width: 90%; margin-left: 5%;">
<el-table-column align="center" label="充值">
<el-table-column align="center" prop="openning" label="期初"></el-table-column>
<el-table-column align="center" prop="storeName" label="门店"></el-table-column>
<el-table-column align="center" label="收入">
<el-table-column align="center" prop="rechargeMoney" label="充值开卡" min-width="70"></el-table-column>
<el-table-column align="center" prop="rechargeRepay" label="充值卡付还款" min-width="70"></el-table-column>
<el-table-column align="center" prop="rechargeGifMoney" label="充值赠送金额" min-width="95"></el-table-column>
<el-table-column align="center" prop="repayRechargeGifMoney" label="还款到账赠送金额" min-width="120"></el-table-column>
<el-table-column align="center" prop="turnInStoreGifMoney" label="赠送转入门店" min-width="95"></el-table-column>
<el-table-column align="center" prop="courseTurnRecharge" label="疗程转充值" min-width="80"></el-table-column>
<el-table-column align="center" prop="cashRefund" label="消费退" min-width="60"></el-table-column>
<el-table-column align="center" prop="refundCashGifMoney" label="消费退赠送金额" min-width="60"></el-table-column>
<el-table-column align="center" prop="groupPurchase" label="团购卡" min-width="60"></el-table-column>
<el-table-column align="center" prop="init" label="初始化" min-width="60"></el-table-column>
</el-table-column>
<el-table-column align="center" label="支出">
<el-table-column align="center" prop="courseMoney" label="疗程开卡" min-width="80"></el-table-column>
<el-table-column align="center" prop="rechargeRepayMoney" label="充值还款" min-width="80"></el-table-column>
<el-table-column align="center" prop="cashMoney" label="收银" min-width="80"></el-table-column>
<el-table-column align="center" prop="coursePromotion" label="疗程促销" min-width="80"></el-table-column>
<el-table-column align="center" prop="rechargeRefundMoney" label="充值退" min-width="80"></el-table-column>
<el-table-column align="center" prop="cashRechargeGifMoney" label="收银使用赠送金" min-width="100"></el-table-column>
<el-table-column align="center" prop="refundGifMoney" label="退款赠送金额" min-width="80"></el-table-column>
<el-table-column align="center" prop="turnOutStoreGifMoney" label="赠送转出门店" min-width="80"></el-table-column>
</el-table-column>
<el-table-column align="center" prop="balance" label="结存" min-width="50"></el-table-column>
</el-table-column>
</el-table>
</div>
<!-- 疗程表格 -->
<div>
<el-table :data="tableDate1"
:header-cell-style="{ background: 'linear-gradient(#6cb3ff, #1873d4)', color: '#eeeeee' }" style="margin-bottom: 10%; width: 90%;
margin-left: 5%;">
<el-table-column align="center" label="疗程">
<el-table-column align="center" prop="openning" label="期初"></el-table-column>
<el-table-column align="center" prop="storeName" label="门店"></el-table-column>
<el-table-column align="center" label="收入">
<el-table-column align="center" prop="courseMoney" label="疗程开卡" min-width="50"></el-table-column>
<el-table-column align="center" prop="courseRepay" label="还款" min-width="50"></el-table-column>
<el-table-column align="center" prop="cashRefund" label="消费退" min-width="50"></el-table-column>
<el-table-column align="center" prop="coursePromotion" label="疗程促销" min-width="50"></el-table-column>
<el-table-column align="center" prop="init" label="初始化" min-width="50"></el-table-column>
<el-table-column align="center" prop="courseTurnStore" label="疗程转门店" min-width="50"></el-table-column>
<el-table-column align="center" prop="cardChange" label="加价转疗程" min-width="50"></el-table-column>
</el-table-column>
<el-table-column align="center" label="支出">
<el-table-column align="center" prop="courseRepayMoney" label="疗程卡付还款" min-width="50"></el-table-column>
<el-table-column align="center" prop="cashMoney" label="收银" min-width="50"></el-table-column>
<el-table-column align="center" prop="courseRefundMoney" label="疗程退" min-width="50"></el-table-column>
<el-table-column align="center" prop="courseTurnCharge" label="疗程转充值" min-width="50"></el-table-column>
<el-table-column align="center" prop="courseTurnStoreMoney" label="疗程转门店" min-width="50">
</el-table-column>
</el-table-column>
<el-table-column align="center" prop="balance" label="结存" min-width="50"></el-table-column></el-table-column>
</el-table>
</div>
</div>
</div>
</template>
<script>
import { partten } from "../../../../partten/index";
import { SysRoleStore } from "@/api/storeManage.js";
import { fixedNegativeCardByRecharge,fixedNegativeCardByCourse } from "../../../api/statistics.js";
export default {
data() {
return {
isTrue:sessionStorage.getItem("headOffice") * 1,
tableDate: [],
tableDate1: [],
storeIds:[],
options:[],
storeId:'',
Time:[new Date(),new Date()]
};
},
methods: {
init(){
let params = {
roleId:JSON.parse(sessionStorage.getItem("userInfo")).roleId
}
SysRoleStore(params).then((res) => {
if (res.code == "000000") {
res.pageInfo.list.forEach((item) => {
item.label = item.storeNum + "-" + item.storeName;
});
this.options = res.pageInfo.list;
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => {},
});
}
});
},
handlegetData(){
this.dayStatisticRecharge()
this.dayStatisticTreatment()
},
getData(ids){
if(ids){
this.storeIds = ids
}else{
this.storeIds = []
}
this.dayStatisticRecharge()
this.dayStatisticTreatment()
},
dayStatisticRecharge() {
let params = {
date: partten.dayStatisticDate,
storeIdl:this.storeIds
}
if(this.Time!=null){
params.startTime = this.formatTime(this.Time[0], "YYYY-MM-DD 00:00:00");
params.endTime = this.formatTime(this.Time[1], "YYYY-MM-DD 23:59:59");
}
fixedNegativeCardByRecharge(params).then((res) => {
if (res.code == "000000") {
this.tableDate = res.rows;
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => { },
});
}
});
},
dayStatisticTreatment() {
let params = {
date: partten.dayStatisticDate,
storeIdl:this.storeIds
}
if(this.Time!=null){
params.startTime = this.formatTime(this.Time[0], "YYYY-MM-DD 00:00:00");
params.endTime = this.formatTime(this.Time[1], "YYYY-MM-DD 23:59:59");
}
fixedNegativeCardByCourse(params).then((res) => {
if (res.code == "000000") {
this.tableDate1 = res.rows;
} else {
this.$alert(res.message, "提示", {
confirmButtonText: "确定",
confirmButtonClass: "confirmbtnFalses",
type: "warning",
center: true,
callback: (action) => { },
});
}
});
},
refresh() {
this.dayStatisticTreatment();
this.dayStatisticRecharge();
},
},
created() {
this.init()
this.dayStatisticTreatment();
this.dayStatisticRecharge();
},
};
</script>
<style>
.div_content {
/* display: flex; */
width: 100%;
}
</style>

@ -0,0 +1,67 @@
<template>
<el-dialog :close-on-click-modal="false" v-dialogDrag :title="title" :visible.sync="dialogVisible" width="700px" append-to-body>
<el-form :model="form" :rules="rules" ref="form" label-width="80px">
<div class="form">
<el-form-item label="前缀" prop="memberName">
<el-input
type="textarea"
placeholder="请输入前缀"
v-model="form.memberName"
maxlength="30"
show-word-limit
></el-input>
</el-form-item>
<el-form-item label="后缀:" prop="cashPassword">
<el-input
type="textarea"
placeholder="请输入后缀"
v-model="form.cashPassword"
maxlength="30"
show-word-limit
></el-input>
</el-form-item>
</div>
</el-form>
<span slot="footer" class="dialog-footer">
<el-button size="mini" type="primary" plain @click="dialogVisible = false"> </el-button>
<el-button size="mini" type="primary" @click="confirms()">
</el-button>
</span>
</el-dialog>
</template>
<script>
export default {
data() {
return {
dialogVisible: false, //
title: "更新缀名",
rules:{
memberName: [
{ required: true, message: '请输入前缀', trigger: 'blur' },
],
cashPassword: [
{ required: true, message: '请输入后缀', trigger: 'blur' },
],
},
form:{}
};
},
methods: {
show(row){
this.dialogVisible = true
},
confirms() {
this.$refs.form.validate((valid) => {
if (valid) {
}
});
},
},
};
</script>
<style>
</style>

@ -0,0 +1,62 @@
<template>
<div>
<div class="staffRanking_header padding-bottom-xs">
<div class="header_flex">
<div></div>
<div>
<el-button size="mini" type="primary" :disabled="!radio" @click="handelEdit"> </el-button>
</div>
</div>
</div>
<el-table v-loading="loading" :data="list"
@row-click="rowClick"
:header-cell-style="{ background: 'linear-gradient(#6cb3ff, #1873d4)', color: '#eeeeee', }" border ref="table">
<el-table-column label="选择" width="45">
<template slot-scope="scope">
<el-radio v-model="radio" :label="scope.row.id" @change.native="scope.row;">
{{ "" }}
</el-radio>
</template>
</el-table-column>
<el-table-column align="center" min-width="80" prop="name" label="名称"></el-table-column>
<el-table-column align="center" min-width="80" prop="storeName" label="前缀"></el-table-column>
<el-table-column align="center" min-width="80" prop="storeName" label="后缀"></el-table-column>
<el-table-column align="center" min-width="80" prop="storeName" label="修改人"></el-table-column>
<el-table-column align="center" min-width="80" prop="storeName" label="修改时间"></el-table-column>
</el-table>
<edit ref="edit"/>
</div>
</template>
<script>
import edit from './components/edit.vue'
export default {
components:{
edit
},
data() {
return {
loading: false,
list: [
{ name: '充值',id:1 }, { name: '疗程',id:2 }, { name: "收银",id:3 }, { name: '还款',id:4 }
],
radio: '',
radioForm: null
}
},
created() {
},
methods: {
//
rowClick(row) {
this.radio = row.id;
this.radioForm = row;
},
handelEdit(){
this.$refs.edit.show()
}
},
}
</script>
<style scoped></style>

@ -19,7 +19,6 @@
<el-button size="mini" type="primary" @click="exit()"></el-button>
<el-button size="mini" type="primary" @click="exits()"></el-button>
</div>
</div>
<el-table @row-dblclick="confirm" v-loading="loading" :data="tableDate" :header-cell-style="{
background: 'linear-gradient(#6cb3ff, #1873d4)',

@ -109,8 +109,8 @@ export default {
getData() {
this.disabled = true
this.$refs.form.loading = true
this.queryForm.startDate = this.days[0];
this.queryForm.endDate = this.days[1];
this.queryForm.startDate = this.days[0] +' 00:00:00';
this.queryForm.endDate = this.days[1]+' 23:59:59';
this.queryForm.storeId = sessionStorage.getItem("storeId");
this.queryForm.roleId = JSON.parse(sessionStorage.getItem("userInfo")).roleId
storeDailys(this.queryForm).then((res) => {

@ -6,7 +6,6 @@
v-model="days"
:picker-options="pickerOptions"
type="daterange"
value-format="yyyy-MM-dd"
range-separator="至"
start-placeholder="开始日期"
end-placeholder="结束日期"
@ -102,8 +101,8 @@ export default {
handleExport(){
this.butLoadIng = true
let params = {
startDate:this.days[0],
endDate:this.days[1],
startDate:this.formatTime(this.days[0], "YYYY-MM-DD 00:00:00"),
endDate:this.formatTime(this.days[1], "YYYY-MM-DD 23:59:59"),
roleId:JSON.parse(sessionStorage.getItem("userInfo")).roleId
}
exportStore(params).then(res=>{
@ -120,8 +119,8 @@ export default {
init() {
this.loading = true
let params = {
startDate:this.days[0],
endDate:this.days[1],
startDate:this.formatTime(this.days[0], "YYYY-MM-DD 00:00:00"),
endDate:this.formatTime(this.days[1], "YYYY-MM-DD 23:59:59"),
roleId:JSON.parse(sessionStorage.getItem("userInfo")).roleId
}
this.disabled = true

@ -86,8 +86,7 @@
</template>
</el-table-column>
</el-table>
</div>
<el-table
</div><el-table
:data="tableData"
@row-dblclick="rowdbClick"
border
@ -98,6 +97,7 @@
color: '#eeeeee'
}"
>
<el-table-column
align="center"
prop="projectTypeName"

@ -41,11 +41,13 @@
<el-tab-pane label="已停用" name="0"> </el-tab-pane>
<el-tab-pane label="启用中" name="2"> </el-tab-pane>
</el-tabs>
<el-main>
<el-table
v-if="activeName * 1 < 3"
:data="tableData"
stripe
style="width: 100%"
height="100%"
:header-cell-style="{
background: 'linear-gradient(#6cb3ff, #1873d4)',
color: '#eeeeee'
@ -182,15 +184,12 @@
sortable
></el-table-column>
</el-table-column>
<!-- <el-table-column align="center" prop="hairLong" label="头发长度" min-width="70"></el-table-column>
<el-table-column align="center" prop="skinType" label="皮肤类别" min-width="70"></el-table-column> -->
<el-table-column
align="center"
v-if="state == 1"
v-if="state == 1&& getPermissions"
label="密码"
width="76"
fixed="right"
v-role="4007003"
>
<template slot-scope="scope">
<el-tooltip
@ -211,11 +210,10 @@
</el-table-column>
<el-table-column
align="center"
v-if="state == 1"
v-if="state == 1&& getPermissions"
label="支付密码"
width="76"
fixed="right"
v-role="4007003"
>
<template slot-scope="scope">
<el-tooltip
@ -236,11 +234,10 @@
</el-table-column>
<el-table-column
align="center"
v-if="state == 1"
v-if="state == 1&& getPermissions"
label="修改"
width="76"
fixed="right"
v-role="4007003"
>
<template slot-scope="scope">
<el-button
@ -256,11 +253,10 @@
</el-table-column>
<el-table-column
align="center"
v-if="state == 1"
v-if="state == 1&& getPermissions"
label="停用"
width="76"
fixed="right"
v-role="4007003"
>
<template slot-scope="scope">
<el-button
@ -276,11 +272,10 @@
</el-table-column>
<el-table-column
align="center"
v-if="state == 0"
v-if="state == 0&& getPermissions"
label="启用"
width="76"
fixed="right"
v-role="4007003"
>
<template slot-scope="scope">
<el-button
@ -295,6 +290,7 @@
</template>
</el-table-column>
</el-table>
</el-main>
<div v-if="activeName * 1 != 3" class="block" style="margin-top:15px;">
<!-- 分页组件 -->
<el-pagination
@ -1069,8 +1065,6 @@ export default {
} else {
this.$message.info({ message: "请输入会员密码或手机验证码!" });
}
//console.log(ids);
// storeMemberupdateState(ids).then((res) => {
storeMemberStart(ids).then(res => {
if (res.code == "000000") {
this.$message.success({ message: res.message });
@ -1099,7 +1093,6 @@ export default {
callback: action => {}
});
}
for (let i in this.pageInfo.tableList) {
if (this.id == this.pageInfo.tableList[i].id) {
this.pageInfo.tableList[i].state = 0;
@ -1123,6 +1116,10 @@ export default {
});
},
computed: {
getPermissions(){
let roleList = JSON.parse(sessionStorage.getItem("list"));
return roleList.findIndex(item=>item.id==4007003) != -1
},
//
tableData() {
// var search = this.input.toString().toLowerCase(); //

@ -132,6 +132,7 @@ export default {
})
}
})
console.log(this.arrkeys)
} else {
this.$alert(res.message, "获取关联门店", {
confirmButtonText: "确定",

@ -56,19 +56,18 @@
</el-form-item><br />
<el-form-item label="充值/疗程账户时效控制:" prop="useRecharge">
<el-radio-group v-model="dataList.allowValid" :disabled="!editInput">
<el-radio :label="0">不控制有效时间</el-radio><br />
<el-radio :label="1">控制有效时间,设置到期时间</el-radio>
<el-radio label="0">不控制有效时间</el-radio><br />
<el-radio label="1">控制有效时间,设置到期时间</el-radio>
</el-radio-group>
</el-form-item>
<br />
<!-- <el-form-item label="是否自动发送短信:" prop="isSendSms">
<el-radio-group v-model="dataList.isSendSms" :disabled="!editInput">
<div class="pay1">
<el-radio :label="0"></el-radio> <br />
<el-radio :label="1"></el-radio> <br />
</div>
<!-- <el-form-item label="补单业绩:" prop="isAddition">
<el-radio-group v-model="dataList.isAddition" :disabled="!editInput">
<el-radio :label="0">补单业绩记入单据日期</el-radio> <br />
<el-radio :label="1">补单业绩计入补单日期</el-radio> <br />
</el-radio-group>
</el-form-item><br /> -->
</el-form-item>
<br /> -->
<el-form-item prop="balance" label="帐户默认到期时间(月): " v-if="dataList.allowValid==1">
<div>
<span v-show="!editInput">{{ dataList.allowMonth }}</span>
@ -563,7 +562,9 @@ export default {
// }
// }
// }
// if(item.paramentName == 'isAddition'){
// dataList.isAddition = item.paramentValue*1;
// }
if(item.paramentName == 'isSendSms'){
dataList.isSendSms = item.paramentValue;
}
@ -893,13 +894,10 @@ export default {
//
editconfirm() {
// setTimeout(() => {
// this.loading = false;
// }, 2500);
var dataList = { ...this.dataList };
if(dataList.isSendSms){
// dataList.isSendSms =dataList.isSendSms +"|" +"1 使,2 使,使";
}
// if(dataList.isAddition === 0 || dataList.isAddition){
// dataList.isAddition = dataList.isAddition + "|" + "0,1";
// }
dataList.storeId = sessionStorage.getItem("storeId")
if(dataList.superPasswd){
dataList.superPasswd = dataList.superPasswd + "|" + "超级支付密码";
@ -1042,17 +1040,6 @@ export default {
} else {
dataList.cashier = 0;
}
// if (dataList.refundCourse == true) {
// dataList.refundCourse = 1;
// } else {
// dataList.refundCourse = 0;
// }
// if (dataList.buycourse == true) {
// dataList.buycourse = 1;
// } else {
// dataList.buycourse = 0;
// }
dataList.buycourse = 0;
if (dataList.guide == true) {
@ -1133,13 +1120,6 @@ export default {
dataList.refundCard +
"|" +
"0充值卡退款不需要将原来的消费按原价重新计算,1消费按原价重新计算";
// dataList.refundCourse =
// dataList.refundCourse +
// "|" +
// "0,1退";
// dataList.refundCourseNum =
// dataList.refundCourseNum + "|" + "0退,1退";
dataList.refillCard =
dataList.refillCard + "|" + "0不允许充值卡购买疗程,1允许";
@ -1152,9 +1132,6 @@ export default {
"|" +
"0=自动按充值的单据扣除1=手工录入扣除2=按充值单比例扣除";
// dataList.replacementOderChia =
// dataList.replacementOderChia + "|" + "0,1";
dataList.serviceTicke =
dataList.serviceTicke + "|" + "数字服务单可以作废控制的天数";
dataList.editOrderNum =

@ -609,7 +609,15 @@ const router = new VueRouter({
index: "cardCollection"
}
},
//门店日报 storeDaily
{
path: "/smsSetup",
component: () =>
import("../pages/statistics/smsSetup/index.vue"),
meta: {
title: "短信设置",
index: "smsSetup"
}
},
{
path: "/storeDaily",
component: () =>
@ -659,6 +667,16 @@ const router = new VueRouter({
index: "negativeCard"
}
},
// 负卡金结存 negativeCardBalance
{
path: "/negativeCardBalance",
component: () =>
import("../pages/statistics/negativeCardBalance"),
meta: {
title: "负卡金结存",
index: "negativeCardBalance"
}
},
//月度营业额 monthlyTaking
{
path: "/monthlyTaking",
@ -806,6 +824,22 @@ const router = new VueRouter({
index: "subbranch"
}
},
{
path: "/storeCollection",
component: () => import("../pages/branch/storeCollection/index"),
meta: {
title: "分店收款账户",
index: "storeCollection"
}
},
{
path: "/receivingPaying",
component: () => import("../pages/branch/receivingPaying/index"),
meta: {
title: "收付款",
index: "receivingPaying"
}
},
{
path: "/map",
component: () => import("../pages/branch/map/index"),
@ -830,6 +864,14 @@ const router = new VueRouter({
index: "room"
}
},
{
path: "/reconciliation",
component: () => import("../pages/financialReconciliation/reconciliation/index"),
meta: {
title: "财务对账",
index: "reconciliation"
}
},
{
path: "/dept",
component: () => import("../pages/storeManage/dept/index"),
@ -1213,6 +1255,42 @@ const router = new VueRouter({
}
},
// 报表统计结束----
{
path: "/parthnersArchives",
component: () =>
import("../pages/partners/parthnersArchives/index.vue"),
meta: {
title: "合作商档案",
index: "parthnersArchives"
}
},
{
path: "/partnersProject",
component: () =>
import("../pages/partners/partnersProject/index.vue"),
meta: {
title: "合作项目",
index: "partnersProject"
}
},
{
path: "/partnersList",
component: () =>
import("../pages/partners/partnersList/index.vue"),
meta: {
title: "合作商报表",
index: "partnersList"
}
},
{
path: "/reconciliationDetails",
component: () =>
import("../pages/partners/reconciliationDetails/index.vue"),
meta: {
title: "对账明细表",
index: "reconciliationDetails"
}
},
]
}
]

@ -1,9 +1,8 @@
import axios from "axios";
import { Message, MessageBox } from "element-ui";
// import { getToken, removeToken, setToken } from "@/utils/token";
import { getCookie, delCookie } from "./utils.js";
import { delCookie } from "./utils.js";
import router from "../router/index.js";
import { name } from "../../config/dev.env.js";
// let base = "/api";
// let baseURL = base;
// 根据环境变量对host进行判断
@ -16,7 +15,7 @@ axios.defaults.headers.post["Content-Type"] = "application/json;charset=UTF-8";
// 创建axios实例
const service = axios.create({
// baseURL: baseURL,
timeout: 300000 // 请求超时时间
timeout: 300000
});
// request拦截器
service.interceptors.request.use(

Loading…
Cancel
Save