代码合并

master
Wangxubin 3 years ago
parent a62b287019
commit 10a725ee11

@ -115,6 +115,31 @@ export function storeStatisticProjectList(params) {
});
}
// 新项目购卡金额排行
export function projectLists(params) {
return service({
url: "/api" + "/demay/ssm/storeStatistic/projectLists",
method: "post",
data: params
});
}
// 新项目服务金额排行
export function serviceActive(params) {
return service({
url: "/api" + "/demay/ssm/storeStatistic/service",
method: "post",
data: params
});
}
// 项目结存金额排行
export function balance(params) {
return service({
url: "/api" + "/demay/ssm/storeStatistic/balance",
method: "post",
data: params
});
}
// 门店员工统计列表 门店端-门店统计-门店员工统计列表
export function storeStatisticStaffMonthList(params) {
return service({

@ -744,7 +744,7 @@
><br />
<el-form-item prop="cause" label="附带文件:" required>
<div
v-if="title == '明细'"
v-show="title == '明细'"
v-for="(item, index) in fileList"
:key="index"
>

@ -154,7 +154,7 @@
</el-radio-group>
</div>
</el-form-item>
<el-form-item label="适用门店:" rop="suitableObject" :rules="{
<el-form-item label="适用门店:" prop="suitableObject" :rules="{
required: true,
message: '请选择适用门店',
trigger: 'blur'
@ -215,6 +215,28 @@
<el-input type="number" class="form-input-wdith-xs" v-focus v-else oninput="this.value=this.value.replace(/\D/g,'')" pattern="[0-9]*" v-model="scope.row.projectTotalMoney" @blur="endEditMoney(scope.row)"></el-input>
</template>
</el-table-column>
<el-table-column prop="typeInfo" label="有效类型" align="center" width="215">
<template slot-scope="scope">
<el-radio v-model="scope.row.typeInfo" label="1" @change="typeChange(scope.row)">()</el-radio>
<el-radio v-model="scope.row.typeInfo" label="2" @change="typeChange(scope.row)"></el-radio>
</template>
</el-table-column>
<el-table-column label="日期操作" align="center" width="200">
<template slot-scope="scope">
<div v-if="scope.row.typeInfo == 1">
<el-input v-model="scope.row.validTime" placeholder="有效日期(月)" style="width:150px"></el-input>
</div>
<div v-else>
<el-date-picker
v-model="scope.row.useEndDate"
type="date"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
placeholder="选择截止日期">
</el-date-picker>
</div>
</template>
</el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="160">
<template slot-scope="scope">
<el-button size="mini" type="primary" @click="editPro(editIndex=scope.$index,projectListName='修改')"></el-button>
@ -263,6 +285,28 @@
<el-input type="number" class="form-input-wdith-xs" v-focus v-else oninput="this.value=this.value.replace(/\D/g,'')" pattern="[0-9]*\.?[0-9]{0,3}" v-model="scope.row.projectTotalMoney" @blur="endTotalMoney(scope.row,scope.$index)"></el-input>
</template>
</el-table-column>
<el-table-column prop="typeInfo" label="有效类型" align="center" width="215">
<template slot-scope="scope">
<el-radio v-model="scope.row.typeInfo" label="1" @change="typeChange(scope.row)">()</el-radio>
<el-radio v-model="scope.row.typeInfo" label="2" @change="typeChange(scope.row)"></el-radio>
</template>
</el-table-column>
<el-table-column label="日期操作" align="center" width="200">
<template slot-scope="scope">
<div v-if="scope.row.typeInfo == 1">
<el-input v-model="scope.row.validTime" placeholder="有效日期(月)" style="width:150px"></el-input>
</div>
<div v-else>
<el-date-picker
v-model="scope.row.useEndDate"
type="date"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
placeholder="选择截止日期">
</el-date-picker>
</div>
</template>
</el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="160">
<template slot-scope="scope">
<el-button size="mini" type="primary" @click="editPro(editIndex=scope.$index,projectListName='赠送修改')"></el-button>
@ -422,6 +466,28 @@
<el-input type="number" class="form-input-wdith-xs" v-focus v-else oninput="this.value=this.value.replace(/\D/g,'')" pattern="[0-9]*" v-model="scope.row.projectTotalMoney" @blur="endEditMoney(scope.row)"></el-input>
</template>
</el-table-column>
<el-table-column prop="typeInfo" label="有效类型" align="center" width="215">
<template slot-scope="scope">
<el-radio v-model="scope.row.typeInfo" label="1" @change="typeChange(scope.row)">()</el-radio>
<el-radio v-model="scope.row.typeInfo" label="2" @change="typeChange(scope.row)"></el-radio>
</template>
</el-table-column>
<el-table-column label="日期操作" align="center" width="200">
<template slot-scope="scope">
<div v-if="scope.row.typeInfo == 1">
<el-input v-model="scope.row.validTime" placeholder="有效日期(月)" style="width:150px"></el-input>
</div>
<div v-else>
<el-date-picker
v-model="scope.row.useEndDate"
type="date"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
placeholder="选择截止日期">
</el-date-picker>
</div>
</template>
</el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="160" v-if="titles!='明细'">
<template slot-scope="scope">
<el-button size="mini" type="primary" @click="editPro(editIndex=scope.$index,projectListName='修改的添加修改')"></el-button>
@ -475,6 +541,28 @@
<el-input type="number" class="form-input-wdith-xs" v-focus v-else oninput="this.value=this.value.replace(/\D/g,'')" pattern="[0-9]*\.?[0-9]{0,3}" v-model="scope.row.projectTotalMoney" @blur="endTotalMoney(scope.row,scope.$index)"></el-input>
</template>
</el-table-column>
<el-table-column prop="typeInfo" label="有效类型" align="center" width="215">
<template slot-scope="scope">
<el-radio v-model="scope.row.typeInfo" label="1" @change="typeChange(scope.row)">()</el-radio>
<el-radio v-model="scope.row.typeInfo" label="2" @change="typeChange(scope.row)"></el-radio>
</template>
</el-table-column>
<el-table-column label="日期操作" align="center" width="200">
<template slot-scope="scope">
<div v-if="scope.row.typeInfo == 1">
<el-input v-model="scope.row.validTime" placeholder="有效日期(月)" style="width:150px"></el-input>
</div>
<div v-else>
<el-date-picker
v-model="scope.row.useEndDate"
type="date"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
placeholder="选择截止日期">
</el-date-picker>
</div>
</template>
</el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="160" v-if="titles!='明细'">
<template slot-scope="scope">
<el-button size="mini" type="primary" @click="editPro(editIndex=scope.$index,projectListName='修改的赠送修改')"></el-button>
@ -657,6 +745,13 @@ export default {
};
},
methods: {
typeChange(row){
if(row.typeInfo == '1'){
row.useEndDate = null
}else{
row.validTime = null
}
},
editPro() {
this.$refs.project.show(0);
},
@ -788,6 +883,9 @@ export default {
promotionName: this.packingForm.promotionName,
standardTimes: item.standardTimes,
type: 0,
typeInfo:item.typeInfo,
validTime:item.validTime,
useEndDate:item.useEndDate
};
promotionProjectLists.push(items);
});
@ -803,7 +901,10 @@ export default {
projectTotalMoney: item.projectTotalMoney,
promotionName: this.packingForm.promotionName,
standardTimes: item.standardTimes,
type: 1,
type: 1,
typeInfo:item.typeInfo,
validTime:item.validTime,
useEndDate:item.useEndDate
};
promotionProjectLists.push(items);
});
@ -842,6 +943,7 @@ export default {
//
projectData(form) {
form = {...form,typeInfo:"1"}
form.projectId = form.id;
form.times = form.minumumTimes;
form.projectTotalMoney =
@ -991,6 +1093,7 @@ export default {
detail() {
this.titles = "明细";
promotionProList({ id: this.radioRowValueList.id }).then((res) => {
res.rows.forEach(item=>item.typeInfo += '')
this.packingForm = { promotionProjectLists: [] };
this.packingForm = { ...this.radioRowValueList };
let givePromotionProjectLists = [];
@ -1017,6 +1120,7 @@ export default {
this.titles = "";
this.titles = "修改";
promotionProList({ id: this.radioRowValueList.id }).then((res) => {
res.rows.forEach(item=>item.typeInfo+='')
this.packingForm = { promotionProjectLists: [] };
this.packingForm = { ...this.radioRowValueList };
let givePromotionProjectLists = [];
@ -1052,6 +1156,9 @@ export default {
projectTotalMoney: item.projectTotalMoney,
promotionName: this.packingForm.promotionName,
type: 0,
typeInfo:item.typeInfo,
validTime:item.validTime,
useEndDate:item.useEndDate
};
if (item.projectId != undefined) {
items.projectId = item.projectId;
@ -1072,6 +1179,9 @@ export default {
projectTotalMoney: item.projectTotalMoney,
promotionName: this.packingForm.promotionName,
type: 1,
typeInfo:item.typeInfo,
validTime:item.validTime,
useEndDate:item.useEndDate
};
if (item.projectId != undefined) {
items.projectId = item.projectId;
@ -1214,6 +1324,7 @@ export default {
copyForm() {
this.titles = "复制";
promotionProList({ id: this.radioRowValueList.id }).then((res) => {
res.rows.forEach(item=>item.typeInfo+='')
this.packingForm = { promotionProjectLists: [] };
this.packingForm = { ...this.radioRowValueList };
let givePromotionProjectLists = [];
@ -1241,7 +1352,6 @@ export default {
let items = {
storeId: item.storeId,
storeName: item.storeName,
projectNum: item.projectNum,
projectName: item.projectName,
priceMember: item.priceMember,
@ -1250,6 +1360,9 @@ export default {
projectTotalMoney: item.projectTotalMoney,
promotionName: this.packingForm.promotionName,
type: 0,
typeInfo:item.typeInfo,
validTime:item.validTime,
useEndDate:item.useEndDate
};
if (item.projectId != undefined) {
items.projectId = item.projectId;
@ -1262,7 +1375,6 @@ export default {
let items = {
storeId: item.storeId,
storeName: item.storeName,
projectNum: item.projectNum,
projectName: item.projectName,
priceMember: item.priceMember,
@ -1271,6 +1383,9 @@ export default {
projectTotalMoney: item.projectTotalMoney,
promotionName: this.packingForm.promotionName,
type: 1,
typeInfo:item.typeInfo,
validTime:item.validTime,
useEndDate:item.useEndDate
};
if (item.projectId != undefined) {
items.projectId = item.projectId;
@ -1295,7 +1410,7 @@ export default {
}
this.packingForm.type = 1;
addPromotion(this.packingForm).then((res) => {
addPromotion(Object.assign(this.packingForm,{pushCount:null,pushState:null})).then((res) => {
//console.log(res);
if (res.code == "000000") {
this.$message.success({ message: res.message });

@ -232,11 +232,12 @@
trigger: 'blur'
}">
<input type="text" oninput="this.value=this.value.replace(/\D*(\d*)(\.?)(\d{0,3})\d*/,'$1$2$3')" pattern="[0-9]*\.?[0-9]{0,3}" v-model="packingForm.cardSalesCommission" style="border:none;width:50px;background:#eee;height:35px;font-size:14px;padding-left:10px;" />
</el-form-item><br />
<el-form-item label="适用对象:" rop="suitableObject" :rules="{
</el-form-item>
<br />
<el-form-item label="适用对象:" prop="suitableObject" :rules="{
required: true,
message: '请选择适用对象',
trigger: 'blur'
trigger: 'change'
}">
<el-radio-group v-model="packingForm.suitableObject" style="font-size:14px">
<el-radio class="margin-bottom" :label="0">所有会员</el-radio>
@ -244,10 +245,10 @@
<el-button :disabled="!(packingForm.suitableObject === 2)" size="mini" type="text" @click="openSuitMember(packingForm)"><span>会员列表</span></el-button>
</el-radio-group>
</el-form-item>
<el-form-item label="是否限购:" rop="limitBuy" :rules="{
<el-form-item label="是否限购:" prop="limitBuy" :rules="{
required: true,
message: '请选择是否限购',
trigger: 'blur'
trigger: 'change'
}">
<div style="width:280px;padding-top:5px">
<el-radio-group v-model="packingForm.limitBuy" style="font-size:14px">
@ -257,10 +258,10 @@
</el-radio-group>
</div>
</el-form-item>
<el-form-item label="适用门店:" rop="suitableObject" :rules="{
<el-form-item label="适用门店:" prop="suitableObject" :rules="{
required: true,
message: '请选择适用门店',
trigger: 'blur'
trigger: 'change'
}">
<el-radio-group v-model="packingForm.suitableStore" style="font-size:14px">
<el-radio class="margin-bottom" :label="0">所有门店</el-radio>
@ -268,10 +269,10 @@
<el-button :disabled="!(packingForm.suitableStore === 1)" size="mini" type="text" @click="openSuitStore(packingForm)"><span>门店列表</span></el-button>
</el-radio-group>
</el-form-item>
<el-form-item label="允许卡付:" rop="limitBuy" :rules="{
<el-form-item label="允许卡付:" prop="limitBuy" :rules="{
required: true,
message: '请选择是否允许卡付',
trigger: 'blur'
trigger: 'change'
}">
<el-radio-group v-model="packingForm.cardBuy" style="font-size:14px">
<el-radio :label="1">允许卡付</el-radio>
@ -344,6 +345,28 @@
<el-button size="mini" type="primary" plain @click="delProject(scope.$index)"></el-button>
</template>
</el-table-column>
<el-table-column prop="typeInfo" label="有效类型" align="center" width="215">
<template slot-scope="scope">
<el-radio v-model="scope.row.typeInfo" label="1" @change="typeChange(scope.row)">()</el-radio>
<el-radio v-model="scope.row.typeInfo" label="2" @change="typeChange(scope.row)"></el-radio>
</template>
</el-table-column>
<el-table-column label="日期操作" align="center" width="200">
<template slot-scope="scope">
<div v-if="scope.row.typeInfo == 1">
<el-input v-model="scope.row.validTime" placeholder="有效日期(月)" style="width:150px"></el-input>
</div>
<div v-else>
<el-date-picker
v-model="scope.row.useEndDate"
type="date"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
placeholder="选择日期">
</el-date-picker>
</div>
</template>
</el-table-column>
</el-table>
<div style="width:100%;background:#eee;display: flex;justify-content:space-between;font-size:14px;line-height:40px">
<span style="margin-left:20px">总价格</span>
@ -528,6 +551,28 @@
<el-button size="mini" type="primary" plain @click="delProject(scope.$index)"></el-button>
</template>
</el-table-column>
<el-table-column prop="typeInfo" label="有效类型" align="center" width="215">
<template slot-scope="scope">
<el-radio v-model="scope.row.typeInfo" label="1" @change="typeChange(scope.row)">()</el-radio>
<el-radio v-model="scope.row.typeInfo" label="2" @change="typeChange(scope.row)"></el-radio>
</template>
</el-table-column>
<el-table-column label="日期操作" align="center" width="200">
<template slot-scope="scope">
<div v-if="scope.row.typeInfo == 1">
<el-input v-model="scope.row.validTime" placeholder="有效日期(月)" style="width:150px"></el-input>
</div>
<div v-else>
<el-date-picker
v-model="scope.row.useEndDate"
type="date"
format="yyyy-MM-dd"
value-format="yyyy-MM-dd"
placeholder="选择截止日期">
</el-date-picker>
</div>
</template>
</el-table-column>
</el-table>
<div style="width:100%;background:#eee;display: flex;justify-content:space-between;font-size:14px;line-height:40px">
<span style="margin-left:20px">总价格</span>
@ -691,12 +736,20 @@ export default {
};
},
methods: {
typeChange(row){
if(row.typeInfo == '1'){
row.useEndDate = null
}else{
row.validTime = null
}
},
//
editPro() {
this.$refs.project.show(0);
},
//
projectData(form) {
form = {...form,typeInfo:"1"}
form.projectId = form.id;
form.times = form.minumumTimes;
form.projectTotalMoney =
@ -836,6 +889,9 @@ export default {
promotionName: this.packingForm.promotionName,
standardTimes: item.standardTimes,
type: 0,
typeInfo:item.typeInfo,
validTime:item.validTime,
useEndDate:item.useEndDate
};
promotionProjectLists.push(items);
});
@ -901,6 +957,9 @@ export default {
detail() {
this.titles = "明细";
promotionProList({ id: this.radioRowValueList.id }).then((res) => {
res.rows.forEach(item=>{
item.typeInfo += ''
})
this.packingForm = { promotionProjectLists: [] };
this.packingForm = { ...this.radioRowValueList };
this.packingForm.promotionProjectLists = res.rows;
@ -911,9 +970,11 @@ export default {
},
//
editForm() {
this.titles = "";
this.titles = "修改";
promotionProList({ id: this.radioRowValueList.id }).then((res) => {
res.rows.forEach(item=>{
item.typeInfo += ''
})
this.packingForm = { promotionProjectLists: [] };
this.packingForm = { ...this.radioRowValueList };
this.packingForm.promotionProjectLists = res.rows;
@ -938,6 +999,9 @@ export default {
projectTotalMoney: item.projectTotalMoney,
promotionName: this.packingForm.promotionName,
type: 0,
typeInfo:item.typeInfo,
validTime:item.validTime,
useEndDate:item.useEndDate
};
if (item.projectId != undefined) {
items.projectId = item.projectId;
@ -1089,6 +1153,7 @@ export default {
copyForm() {
this.titles = "复制";
promotionProList({ id: this.radioRowValueList.id }).then((res) => {
res.rows.forEach(item=>item.typeInfo += '')
this.packingForm = { promotionProjectLists: [] };
this.packingForm = { ...this.radioRowValueList };
this.packingForm.promotionProjectLists = res.rows;
@ -1111,6 +1176,9 @@ export default {
projectTotalMoney: item.projectTotalMoney,
promotionName: this.packingForm.promotionName,
type: 0,
typeInfo:item.typeInfo,
validTime:item.validTime,
useEndDate:item.useEndDate
};
if (item.projectId != undefined) {
items.projectId = item.projectId;
@ -1131,7 +1199,7 @@ export default {
this.packingForm.cardSalesCommission = 0;
}
this.packingForm.type = 0;
addPromotion(this.packingForm).then((res) => {
addPromotion(Object.assign(this.packingForm,{pushCount:null,pushState:null})).then((res) => {
//console.log(res);
if (res.code == "000000") {
this.$message.success({ message: res.message });

@ -1,7 +1,7 @@
<template>
<!-- 负卡金 -->
<div>
<el-select ref="select" collapse-tags filterable default-first-option :multiple='true' v-model="storeId" clearable @clear="getData" placeholder="请选择门店" @change="getData">
<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.id">
</el-option>
</el-select>
@ -93,6 +93,7 @@ import { dayStatisticRecharge, dayStatisticTreatment } from "../../../api/statis
export default {
data() {
return {
isTrue:sessionStorage.getItem("headOffice") * 1,
tableDate: [],
tableDate1: [],
storeIds:[],

@ -1,23 +1,18 @@
<template>
<!-- 项目排行榜 -->
<div class="projectRanking">
<!-- <el-select v-model="queryForm.storeId" placeholder="请选择门店" @change="">
<el-option v-for="(item,index) in options" :key="index" :label="item.storeName" :value="item.id">
</el-option>
</el-select>
<div class="block">
<span class="demonstration padding-left-xs">选择日</span>
<el-date-picker v-model="days" :picker-options="pickerOptions" @change="changeMonth" type="daterange" value-format="yyyy-MM-dd HH:mm:ss" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期">
</el-date-picker>
</div>
-->
<div class="flex justify-between align-center">
<div class="block">
<span class="demonstration padding-left-xs">选择日</span>
<el-date-picker v-model="days" :picker-options="pickerOptions" @change="changeMonth" type="daterange" value-format="yyyy-MM-dd HH:mm:ss" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期">
<!-- :picker-options="pickerOptions" -->
<el-select 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.id">
</el-option>
</el-select>
<el-date-picker v-model="days" :picker-options="pickerOptions" @change="changeMonth" type="daterange" value-format="yyyyMM" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期">
</el-date-picker>
</div>
<div>
<!-- <div>
<el-dropdown @command="handleCommand" class="el-dropdowns">
<span class="el-dropdown-link">
{{showText}}<i class="el-icon-arrow-down el-icon--right"></i>
@ -27,18 +22,19 @@
<el-dropdown-item command="月度数据">月度数据</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
</div> -->
</div>
<div class="projectRanking-main">
<div style="width: 500px;height:600px;margin: 20px;">
<div style="width: 100%;text-align: center;margin-bottom: 10px;font-weight: 700;">项目购卡金额排行</div>
<el-table :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)',color:'#eeeeee'}" :data="tableDate1">
<el-table-column align="center" prop="projectId" :show-overflow-tooltip="true" label="项目ID"></el-table-column>
<el-table-column align="center" prop="projectName" label="项目名称"></el-table-column>
<el-table-column align="center" prop="projectStatisticMoney" label="购卡金额"></el-table-column>
<el-table-column align="center" prop="ratio" label="占比">
<el-table-column align="center" prop="storeName" :show-overflow-tooltip="true" label="门店名称"></el-table-column>
<el-table-column align="center" prop="tradeId" :show-overflow-tooltip="true" label="项目ID"></el-table-column>
<el-table-column align="center" prop="tradeName" label="项目名称"></el-table-column>
<el-table-column align="center" prop="countMoney" label="购卡金额"></el-table-column>
<el-table-column align="center" prop="avgMoney" label="占比">
<template slot-scope="scope">
<div>{{scope.row.ratio}}</div>
<div>{{scope.row.avgMoney}}</div>
</template>
</el-table-column>
</el-table>
@ -46,12 +42,13 @@
<div style="width: 500px;height:600px;margin: 20px;">
<div style="width: 100%;text-align: center;margin-bottom: 10px;font-weight: 700;">项目服务金额排行</div>
<el-table :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)',color:'#eeeeee'}" :data="tableDate2">
<el-table-column align="center" prop="projectId" :show-overflow-tooltip="true" label="项目ID"></el-table-column>
<el-table-column align="center" prop="projectName" label="项目名称"></el-table-column>
<el-table-column align="center" prop="projectStatisticMoney" label="交易金额"></el-table-column>
<el-table-column align="center" prop="ratio" label="占比">
<el-table-column align="center" prop="storeName" :show-overflow-tooltip="true" label="门店名称"></el-table-column>
<el-table-column align="center" prop="tradeId" :show-overflow-tooltip="true" label="项目ID"></el-table-column>
<el-table-column align="center" prop="tradeName" label="项目名称"></el-table-column>
<el-table-column align="center" prop="countMoney" label="交易金额"></el-table-column>
<el-table-column align="center" prop="avgMoney" label="占比">
<template slot-scope="scope">
<div>{{scope.row.ratio}}</div>
<div>{{scope.row.avgMoney}}</div>
</template>
</el-table-column>
</el-table>
@ -59,33 +56,33 @@
<div style="width: 500px;height:600px;margin: 20px;" v-if="showText=='本日数据'">
<div style="width: 100%;text-align: center;margin-bottom: 10px;font-weight: 700;">项目结存金额排行</div>
<el-table :header-cell-style="{background: 'linear-gradient(#6cb3ff, #1873d4)',color:'#eeeeee'}" :data="tableDate3">
<el-table-column align="center" prop="projectId" :show-overflow-tooltip="true" label="项目ID"></el-table-column>
<el-table-column align="center" prop="projectName" label="项目名称"></el-table-column>
<el-table-column align="center" prop="projectStatisticMoney" label="结存金额"></el-table-column>
<el-table-column align="center" prop="ratio" label="占比">
<el-table-column align="center" prop="storeName" :show-overflow-tooltip="true" label="门店名称"></el-table-column>
<el-table-column align="center" prop="tradeId" :show-overflow-tooltip="true" label="项目ID"></el-table-column>
<el-table-column align="center" prop="tradeName" label="项目名称"></el-table-column>
<el-table-column align="center" prop="countMoney" label="结存金额"></el-table-column>
<el-table-column align="center" prop="avgMoney" label="占比">
<template slot-scope="scope">
<div>{{scope.row.ratio}}</div>
<div>{{scope.row.avgMoney}}</div>
</template>
</el-table-column>
</el-table>
</div>
</div>
<el-tabs v-model="activeName" type="card" @tab-click="handleClick">
</el-tabs>
</div>
</template>
<script>
import {
storeStatisticProjectList,
projectMonthList,
projectLists,
serviceActive,
balance
} from "../../../api/statistics.js";
import { organizations } from "@/api/storeManage.js";
export default {
data() {
return {
storeId:[],
options:[],
days: [],
tDate: [],
options: [],
@ -96,124 +93,101 @@ export default {
tableDate1: [],
tableDate2: [],
tableDate3: [],
pickerMinDate: "",//
pickerOptions: {
onPick: ({ maxDate, minDate }) => {
this.choiceDate = minDate.getTime();
if (maxDate) {
this.choiceDate = "";
}
// 365
onPick: obj => {
this.pickerMinDate = new Date(obj.minDate).getTime();
},
disabledDate: (time) => {
const self = this;
if (!!self.choiceDate) {
const startDay =
(new Date(self.choiceDate).getDate() - 1) * 24 * 3600 * 1000;
const endDay =
(new Date(
new Date(self.choiceDate).getFullYear(),
new Date(self.choiceDate).getMonth() + 1,
0
).getDate() -
new Date(self.choiceDate).getDate()) *
24 *
3600 *
1000;
let minTime = self.choiceDate - startDay;
let maxTime = self.choiceDate + endDay;
return time.getTime() < minTime || time.getTime() > maxTime;
disabledDate: time => {
if (this.pickerMinDate) {
const day1 = 366 * 24 * 3600 * 1000;
let maxTime = this.pickerMinDate + day1;
let minTime = this.pickerMinDate - day1;
return time.getTime() > maxTime || time.getTime() < minTime;
}
},
},
}
}
// pickerOptions: {
// // onPick: ({ maxDate, minDate }) => {
// // this.choiceDate = minDate.getTime();
// // if (maxDate) {
// // this.choiceDate = "";
// // }
// // },
// // disabledDate: (time) => {
// // const self = this;
// // if (!!self.choiceDate) {
// // const startDay =
// // (new Date(self.choiceDate).getDate() - 1) * 24 * 3600 * 1000;
// // const endDay =
// // (new Date(
// // new Date(self.choiceDate).getFullYear(),
// // new Date(self.choiceDate).getMonth() + 1,
// // 0
// // ).getDate() -
// // new Date(self.choiceDate).getDate()) *
// // 24 *
// // 3600 *
// // 1000;
// // let minTime = self.choiceDate - startDay;
// // let maxTime = self.choiceDate + endDay;
// // return time.getTime() < minTime || time.getTime() > maxTime;
// // }
// // },
// },
};
},
methods: {
changeMonth(res) {
console.log(res);
let date = this.formatTime(res[1], "YYYY-MM-DD 23:59:59");
var form = { startDate: res[0], endDate: date };
},
change(res) {
this.queryForm.startDates = res[0];
this.queryForm.stopDates = res[1];
init(){
let params = {
storeId:this.storeId,
date:this.days
}
this.cardR
this.cardRanking(Object.assign(params,{type:1}))
this.serveRanking(Object.assign(params,{type:2}))
this.balanceRanking(Object.assign(params,{type:3}))
},
changeMonth(res) {
this.month = this.formatTime(res, "YYYY-MM");
this.handleClick();
//
cardRanking(params){
projectLists(params).then(res=>{
if (res.code == "000000") {
res.rows.forEach((element) => {
element.avgMoney = (element.avgMoney * 100).toFixed(2) + "%";
});
this.tableDate1 = res.rows;
}
})
},
handleCommand(command) {
this.showText = command;
this.activeName = "购卡";
this.handleClick();
//
serveRanking(params){
serviceActive(params).then(res=>{
if (res.code == "000000") {
res.rows.forEach((element) => {
element.avgMoney = (element.avgMoney * 100).toFixed(2) + "%";
});
this.tableDate2 = res.rows;
}
})
},
handleClick() {
if (this.showText == "月度数据") {
projectMonthList({
type: 1,
date: this.month,
}).then((res) => {
//console.log(res);
if (res.code == "000000") {
res.rows.forEach((element) => {
element.ratio = (element.ratio * 100).toFixed(2) + "%";
});
this.tableDate1 = res.rows;
}
});
} else {
storeStatisticProjectList({
type: 1,
}).then((res) => {
//console.log(res);
if (res.code == "000000") {
res.rows.forEach((element) => {
element.ratio = (element.ratio * 100).toFixed(2) + "%";
});
this.tableDate1 = res.rows;
}
});
}
if (this.showText == "月度数据") {
projectMonthList({
type: 2,
date: this.month,
}).then((res) => {
if (res.code == "000000") {
res.rows.forEach((element) => {
element.ratio = (element.ratio * 100).toFixed(2) + "%";
});
this.tableDate2 = res.rows;
}
});
storeStatisticProjectList({
type: 2,
}).then((res) => {
//console.log(res);
if (res.code == "000000") {
res.rows.forEach((element) => {
element.ratio = (element.ratio * 100).toFixed(2) + "%";
});
this.tableDate2 = res.rows;
}
});
} else {
storeStatisticProjectList({
type: 3,
}).then((res) => {
//console.log(res);
if (res.code == "000000") {
res.rows.forEach((element) => {
element.ratio = (element.ratio * 100).toFixed(2) + "%";
});
this.tableDate3 = res.rows;
}
});
}
//
balanceRanking(params){
balance(params).then(res=>{
if (res.code == "000000") {
res.rows.forEach((element) => {
element.avgMoney = (element.avgMoney * 100).toFixed(2) + "%";
});
this.tableDate3 = res.rows;
}
})
},
//
async getData() {
organizations({ pageSize: 99 }).then((res) => {
getStoreInit(){
organizations({ pageSize: 999 }).then((res) => {
if (res.code == "000000") {
res.rows.forEach((item) => {
item.label = item.storeNum + "-" + item.storeName;
});
this.options = res.rows;
} else {
this.$alert(res.message, "提示", {
@ -224,26 +198,20 @@ export default {
callback: (action) => {},
});
}
});
});
},
storeStatisticProjectList() {
storeStatisticProjectList({
type: 1,
}).then((res) => {
//console.log(res);
if (res.code == "000000") {
res.rows.forEach((element) => {
element.ratio = (element.ratio * 100).toFixed(2) + "%";
});
this.tableDate1 = res.rows;
}
});
changeMonth(res) {
if(!res)this.days = []
this.init()
},
//
getData() {
this.init()
},
},
created() {
this.month = this.formatTime(new Date(), "YYYY-MM");
this.handleClick();
// this.storeStatisticProjectList();
this.init()
this.getStoreInit()
},
};
</script>

@ -39,6 +39,7 @@
<el-table-column align="center" prop="popularity" label="人气" sortable min-width="100"></el-table-column>
<el-table-column align="center" v-if='sessionStorageList.payroll!=1' prop="baseSalary" label="底薪" sortable min-width="190"></el-table-column>
<el-table-column align="center" prop="userState" label="是否用户" sortable min-width="100"></el-table-column>
<el-table-column align="center" prop="" label="操作人" min-width="100"></el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="80" v-role='4002007'>
<template slot-scope="scope" fixed="right">
<el-button @click="start(scope.row)" size="mini" type="primary" plain>启用</el-button>

@ -41,6 +41,7 @@
<el-table-column align="center" prop="popularity" label="人气" sortable min-width="100"></el-table-column>
<el-table-column align="center" v-if='sessionStorageList.payroll!=1' prop="baseSalary" label="底薪" sortable min-width="190"></el-table-column>
<el-table-column align="center" prop="userState" label="是否用户" sortable min-width="100"></el-table-column>
<el-table-column align="center" prop="inputBy" label="操作人" sortable min-width="100"></el-table-column>
<el-table-column align="center" fixed="right" label="查看" width="76" v-role='4002006'>
<template slot-scope="scope">
<el-button @click="examine(scope.row)" size="mini" type="primary" plain>查看</el-button>

@ -130,6 +130,7 @@
<el-input :disabled="title=='查看'" placeholder="请输入擅长" v-model="form.goodAt" autocomplete="on" type="textarea" size="medium" :autosize="{ minRows: 2, maxRows: 4}" :maxlength="150" show-word-limit></el-input>
</div>
</el-form-item>
<el-table-column align="center" prop="" label="操作人" min-width="100"></el-table-column>
<el-form-item label="简介">
<div class="form-width">
<el-input :disabled="title=='查看'" placeholder="请输入简介" v-model="form.briefIntroduction" autocomplete="on" type="textarea" :autosize="{ minRows:2, maxRows:10}" :maxlength="300" show-word-limit></el-input>

@ -47,6 +47,8 @@
{{scope.row.deptName==0?"美发部":scope.row.deptName==1?"美容部":scope.row.deptName==2?"其他部":"无"}}
</template>
</el-table-column>
<el-table-column show-overflow-tooltip align="center" prop="inputBy" label="创建人" sortable min-width="75"></el-table-column>
<el-table-column show-overflow-tooltip align="center" prop="modifyBy" label="修改人" sortable min-width="75"></el-table-column>
<el-table-column align="center" fixed="right" label="查看" width="76">
<template slot-scope="scope">
<el-button @click="examine(scope.row)" size="mini" type="primary">查看</el-button>

@ -49,6 +49,7 @@
{{scope.row.deptName==0?"美发部":scope.row.deptName==1?"美容部":scope.row.deptName==2?"其他部":"无"}}
</template>
</el-table-column>
<el-table-column align="center" prop="proposerName" label="操作人" min-width="100"></el-table-column>
<el-table-column align="center" fixed="right" label="操作" width="80">
<template slot-scope="scope">
<el-button size="mini" type="primary" plain @click="quer(scope.row)"></el-button>

Loading…
Cancel
Save