Commit cf21df78 authored by yaobeibei's avatar yaobeibei

reset all

parent 8d26b437
......@@ -107,7 +107,7 @@ app.post('/dataList', async function (req, res) {
console.log(body)
console.log(startTime, endTime)
console.log(db)
let dateQs = getTimeRange({ start: startTime, end: endTime, key: 'date' })
let results = await db.collection('dailyStats').aggregate([
......@@ -211,19 +211,19 @@ app.post('/dataList', async function (req, res) {
item.callCount = o.callCount
}
})
// if (item.pv || item.touchCount || item.getCount || item.msgCount || item.callCount) {
// dataArr.push(item)
// }
// if (!reg.test(item.email)) {
// dataArr.push(item)
// }
dataArr.push(item)
})
let arrTotal = dataArr.length
// dataArr = dataArr.slice((currentPage - 1) * pageSize, pageSize * currentPage)
// console.log(dataArr)
res.send({ status: 200, total: arrTotal, data: dataArr })
if (currentPage && pageSize) {
dataArr = dataArr.slice((currentPage - 1) * pageSize, pageSize * currentPage)
} else {
dataArr = dataArr
}
res.send({ status: 200, total: arrTotal, datas: dataArr })
})
// 获取渠道数据
......@@ -336,20 +336,18 @@ app.post('/distributor', async function (req, res) {
item.callCount = o.callCount
}
})
// if (item.pv || item.touchCount || item.getCount || item.msgCount || item.callCount) {
// dataArr.push(item)
// }
// if (!reg.test(item.email)) {
// dataArr.push(item)
// }
dataArr.push(item)
})
let arrTotal = dataArr.length
// dataArr = dataArr.slice((currentPage - 1) * pageSize, pageSize * currentPage)
// console.log(dataArr)
res.send({ status: 200, total: arrTotal, data: dataArr })
if (currentPage && pageSize) {
dataArr = dataArr.slice((currentPage - 1) * pageSize, pageSize * currentPage)
} else {
dataArr = dataArr
}
res.send({ status: 200, total: arrTotal, datas: dataArr })
})
......@@ -431,10 +429,14 @@ app.post('/consume', async function (req, res) {
preTotalNumber += x.preNumber
}
})
console.log(consumeTotalNumber)
console.log(preTotalNumber)
// dataArr = dataArr.slice((currentPage - 1) * pageSize, pageSize * currentPage)
res.send({ status: 200, consumeTotalNumber: consumeTotalNumber, preTotalNumber: preTotalNumber, total: dataTotal, data: dataArr })
if (currentPage && pageSize) {
dataArr = dataArr.slice((currentPage - 1) * pageSize, pageSize * currentPage)
} else {
dataArr = dataArr
}
res.send({ status: 200, consumeTotalNumber: consumeTotalNumber, preTotalNumber: preTotalNumber, total: dataTotal, datas: dataArr })
})
// 充值数据
......@@ -497,9 +499,15 @@ app.post('/finance', async function (req, res) {
}
}
financeNumber = financeNumber.toFixed(2)
// dataArr = dataArr.slice((currentPage - 1) * pageSize, pageSize * currentPage)
if (currentPage && pageSize) {
dataArr = dataArr.slice((currentPage - 1) * pageSize, pageSize * currentPage)
} else {
dataArr = dataArr
}
res.send({ status: 200, financeNumber: financeNumber, total: dataTolal, data: dataArr })
res.send({ status: 200, financeNumber: financeNumber, total: dataTolal, datas: dataArr })
})
......@@ -578,9 +586,14 @@ app.post('/surplus', async function (req, res) {
})
surPlusTotal = surPlusTotal.toFixed(2)
let dataTotal = dataArr.length
// console.log(dataArr)
// dataArr = dataArr.slice((currentPage - 1) * pageSize, pageSize * currentPage)
res.send({ status: 200, total: dataTotal, data: dataArr, surplusTotal: surPlusTotal })
if (currentPage && pageSize) {
dataArr = dataArr.slice((currentPage - 1) * pageSize, pageSize * currentPage)
} else {
dataArr = dataArr
}
res.send({ status: 200, total: dataTotal, datas: dataArr, surplusTotal: surPlusTotal })
})
function getTimeRange({ start, end, key }) {
......@@ -615,7 +628,7 @@ app.post('/releaseInfo', async function (req, res) {
db.collection('account').update({}, { $set: { inform: true } }, { multi: true })
res.send({ status: 200, message: '更新成功' })
} else {
res.send({ status: 500, message: '更新失败' })
res.send({ status: 204, message: '更新失败' })
}
})
})
......@@ -625,11 +638,12 @@ app.post('/releaseInfo', async function (req, res) {
app.post('/getInfo', async function (req, res) {
console.log('进入公告')
console.log(req.body)
let { currentPage, pageSize, sessionID} = req.body
let { startTime, endTime, total, currentPage, pageSize} = req.body
console.log(db)
startTime = moment(startTime).startOf('day').toDate()
endTime = moment(endTime).endOf('day').toDate()
let info = await db.collection('inform').find().sort({ 'createdAt': -1 }).toArray()
let info = await db.collection('inform').find({time: {$gt: startTime, $lte: endTime}}).sort({ 'createdAt': -1 }).toArray()
let dataArr = []
info.forEach(x => {
......@@ -642,8 +656,14 @@ app.post('/getInfo', async function (req, res) {
})
let dataArrTotal = dataArr.length
dataArr = dataArr.slice((currentPage - 1) * pageSize, pageSize * currentPage)
res.send({ status: 200, data: dataArr, dataTotal: dataArrTotal })
if (currentPage && pageSize) {
dataArr = dataArr.slice((currentPage - 1) * pageSize, pageSize * currentPage)
} else {
dataArr = dataArr
}
res.send({ status: 200, datas: dataArr, total: dataArrTotal })
})
// 云呼审核数据
......@@ -2073,42 +2093,18 @@ app.post('/entry', function(req, res) {
 console.log(req.body)
let {billID} = req.body
let url = 'http://remarketing-job-yh.yoo.yunpro.cn/fileStatusDSP?billID=' + billID
// let url = 'http://remarketing-job-yh.yoo.yunpro.cn/fileStatusDSP?billID=5b0b93b16100bb0007384677'
request(url, (err, response) => {
if (err) {
return console.log(err)
}
console.log(response.statusCode, response.message)
if (response.statusCode === 200) {
res.send({status: 200, datas: response.message})
console.log(response.body)
res.send({status: 200, datas: response.body})
}
if (response.statusCode === 204) {
res.send({status: 204, message: '订单数据未找到(运营商未返回任务记录)'})
// res.send({status: 200, datas: {
// billCheck: {
// result : "通过", // 结果(下同)
// at : 1531979761733.0 // 执行时间戳(下同)
// },
// fileCheck: {
// result : "通过",
// at : 1531979761733.0
// },
// countCheck: {
// result : "通过",
// at : 1531979761733.0,
// now: 500, // 当前数量
// expect: 500 // 期待数量
// },
// tagCheck: {
// result : "通过",
// at : 1531979761733.0,
// lose: 0, // 缺失量
// total: 500 // 期待数量
// },
// randomCall: {
// result : "通过",
// at : 1531979761733.0
// }
// }})
}
})
})
......
......@@ -38,5 +38,5 @@ app.get('/file/:fileName', function(req, res, next) {
});
server.listen(8082, function() {
console.log('server started');
console.log('server started at 8082');
});
<template>
<el-container>
<el-header>
<h4>云呼审核</h4>
</el-header>
<el-main>
<el-row>
<el-date-picker
......@@ -224,7 +220,6 @@
</span>
</el-dialog>
</el-main>
</el-container>
</template>
<script>
......@@ -521,8 +516,9 @@
}).then(data => {
console.dir(data)
this.entryBillID = billID
let datas = JSON.parse(data.datas)
if (data.status === 200) {
this.formatEntry(data.datas)
this.formatEntry(datas)
} else {
this.$alert(data.message, '无法录入', {
confirmButtonText: '确定',
......@@ -541,22 +537,22 @@
},
formatEntry (datas) {
let self = this
if (datas) {
self.entryData.billCheck = datas.billCheck.result
self.entryData.billCheckTime = moment(datas.billCheck.at).format('YYYY-MM-DD HH:mm:SS')
self.entryData.billCheck = datas.billCheck.result
self.entryData.billCheckTime = moment(datas.billCheck.at).format('YYYY-MM-DD HH:mm:ss')
self.entryData.fileCheck = datas.fileCheck.result
self.entryData.fileCheckTime = moment(datas.fileCheck.at).format('YYYY-MM-DD HH:mm:SS')
self.entryData.fileCheckTime = moment(datas.fileCheck.at).format('YYYY-MM-DD HH:mm:ss')
self.entryData.countCheck = datas.countCheck.result
self.entryData.countCheckTime = moment(datas.countCheck.at).format('YYYY-MM-DD HH:mm:SS')
self.entryData.countCheckTime = moment(datas.countCheck.at).format('YYYY-MM-DD HH:mm:ss')
self.entryData.countCheckNow = datas.countCheck.now
self.entryData.countCheckExpect = datas.countCheck.expect
self.entryData.tagCheck = datas.tagCheck.result
self.entryData.tagCheckTime = moment(datas.tagCheck.at).format('YYYY-MM-DD HH:mm:SS')
self.entryData.tagCheckTime = moment(datas.tagCheck.at).format('YYYY-MM-DD HH:mm:ss')
self.entryData.tagCheckLose = datas.tagCheck.lose
self.entryData.tagCheckTotal = datas.tagCheck.total
self.entryData.randomCall = datas.randomCall.result
self.entryData.randomTime = moment(datas.randomCall.at).format('YYYY-MM-DD HH:mm:SS')
self.entryData.randomTime = moment(datas.randomCall.at).format('YYYY-MM-DD HH:mm:ss')
self.statusDialog = true
} else {
self.statusDialog = true
......
<template>
<el-container>
<el-header><h2>消费记录</h2></el-header>
<el-main>
<TableTmp :header="dataHeader" ref='TableTmp' consume='ok' :url='url'></TableTmp>
<TableTemplate :header="dataHeader" ref='TableTmp' :url='url' :sum='true' :downBtn='true' :preSum='true'></TableTemplate>
</el-main>
</el-container>
</template>
<script>
import TableTmp from './tableTmp'
import TableTemplate from './tableTemplate'
export default {
name: 'consume',
components: {TableTmp},
components: {TableTemplate},
data () {
return {
url: '/api/consume',
......@@ -23,9 +20,6 @@
preNumber: '预扣金额'
}
}
},
mounted () {
this.$refs.TableTmp.change()
}
}
</script>
......
<template>
<el-container>
<el-header><h2>直客统计</h2></el-header>
<el-main>
<TableTmp :header="dataHeader" ref='TableTmp' :url='url' :datalist='datalist'>
</TableTmp>
<TableTemplate :header="dataHeader" :url='url' :datalist='datalist' :downBtn='downBtn'></TableTemplate>
</el-main>
</el-container>
</template>
<script>
import TableTmp from './tableTmp'
import TableTemplate from './tableTemplate'
export default {
name: 'dataList',
components: {TableTmp},
components: {TableTemplate},
data () {
return {
url: '/api/dataList',
......@@ -27,13 +23,9 @@
msgCount: '短信营销',
callCount: '云呼营销'
},
datalist: 'ok'
datalist: 'ok',
downBtn: true
}
},
mounted () {
this.$refs.TableTmp.change()
},
methods: {
}
}
</script>
......
<template>
<el-container>
<el-header><h2>渠道统计</h2></el-header>
<el-main>
<TableTmp :header="dataHeader" ref='TableTmp' :url='url' :datalist='datalist' :distributor='distributor'>
</TableTmp>
</el-main>
</el-container>
<TableTemplate :header="dataHeader" ref='TableTmp' :url='url' :datalist='datalist' :downBtn='true'></TableTemplate>
</el-main>
</template>
<script>
import TableTmp from './tableTmp'
import TableTemplate from './tableTemplate'
export default {
name: 'distributor',
components: {TableTmp},
components: {TableTemplate},
data () {
return {
url: '/api/distributor',
......@@ -30,11 +26,6 @@
},
datalist: 'ok'
}
},
mounted () {
this.$refs.TableTmp.change()
},
methods: {
}
}
</script>
......
<template>
<el-container>
<el-header><h2>充值记录</h2></el-header>
<el-main>
<TableTmp :header="dataHeader" ref='TableTmp' :url='url' finance='ok'>
</TableTmp>
<TableTemplate :header="dataHeader" ref='TableTmp' :url='url' :sum='true' :downBtn='true'></TableTemplate>
</el-main>
</el-container>
</template>
......@@ -15,10 +10,10 @@
</style>
<script>
import TableTmp from './tableTmp'
import TableTemplate from './tableTemplate'
export default {
name: 'finance',
components: {TableTmp},
components: {TableTemplate},
data () {
return {
url: '/api/finance',
......@@ -29,9 +24,6 @@
number: '金额'
}
}
},
mounted () {
this.$refs.TableTmp.change()
}
}
</script>
<template>
<el-container style="height: 100%;">
<el-header style="background-color: #000000c5">
<div style='float: right;margin: 16px 20px'>
<div style='float: right;margin: 20px;width:10%;text-aling:right'>
<el-dropdown @command="handleCommand">
<span class="el-dropdown-link" style='color: white'>
{{email}}<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<!--<el-dropdown-item command="mine">个人中心</el-dropdown-item>-->
<el-dropdown-item command="exit">退出登陆</el-dropdown-item>
</el-dropdown-menu>
</el-dropdown>
</div>
<img src="../assets/logo.png"
style="width: 105px;height: 25px;margin: 16px 0;float: left">
style="width:8%;height: 25px;margin: 16px 0;float: left">
<p class="title">{{title}}</p>
</el-header>
<el-container style="height: 100%">
<el-aside :style="{width: isCollapse ? '66px' : '160px'}">
......@@ -32,12 +33,10 @@
<span>数据统计</span>
</template>
<el-menu-item-group>
<el-menu-item index="/dataList" @click="routeTo">直客统计
</el-menu-item>
<el-menu-item index="/dataList" @click="routeTo">直客统计</el-menu-item>
</el-menu-item-group>
<el-menu-item-group>
<el-menu-item index="/distributor" @click="routeTo">渠道统计
</el-menu-item>
<el-menu-item index="/distributor" @click="routeTo">渠道统计</el-menu-item>
</el-menu-item-group>
</el-submenu>
......@@ -47,12 +46,9 @@
<span>财务中心</span>
</template>
<el-menu-item-group>
<el-menu-item index="/finance" @click="routeTo">充值记录
</el-menu-item>
<el-menu-item index="/consume" @click="routeTo">消费记录
</el-menu-item>
<el-menu-item index="/surplus" @click="routeTo">余额记录
</el-menu-item>
<el-menu-item index="/finance" @click="routeTo">充值记录</el-menu-item>
<el-menu-item index="/consume" @click="routeTo">消费记录</el-menu-item>
<el-menu-item index="/surplus" @click="routeTo">余额记录</el-menu-item>
</el-menu-item-group>
</el-submenu>
......@@ -61,12 +57,8 @@
<i class='el-icon-info'></i>
<span>公告信息</span>
</template>
<el-menu-item index='/releaseInfo' @click="routeTo">
发布信息
</el-menu-item>
<el-menu-item index='/info' @click="routeTo">
过往信息
</el-menu-item>
<el-menu-item index='/releaseInfo' @click="routeTo">发布信息</el-menu-item>
<el-menu-item index='/info' @click="routeTo">过往信息</el-menu-item>
</el-submenu>
<el-submenu index=4>
......@@ -74,15 +66,9 @@
<i class='el-icon-success'></i>
<span>业务审核</span>
</template>
<el-menu-item index='/checkCall' @click="routeTo">
云呼审核
</el-menu-item>
<el-menu-item index='/checkNote' @click="routeTo">
短信审核
</el-menu-item>
<el-menu-item index='/checkUrl' @click="routeTo">
Url审核
</el-menu-item>
<el-menu-item index='/checkCall' @click="routeTo">云呼审核</el-menu-item>
<el-menu-item index='/checkNote' @click="routeTo">短信审核</el-menu-item>
<el-menu-item index='/checkUrl' @click="routeTo">Url审核</el-menu-item>
</el-submenu>
<el-submenu index=5>
......@@ -90,12 +76,8 @@
<i class='el-icon-setting'></i>
<span>权限控制</span>
</template>
<el-menu-item index='/account' @click="routeTo">
账户控制
</el-menu-item>
<el-menu-item index='/slot' @click="routeTo">
代码位控制
</el-menu-item>
<el-menu-item index='/account' @click="routeTo">账户控制</el-menu-item>
<el-menu-item index='/slot' @click="routeTo">代码位控制</el-menu-item>
</el-submenu>
<el-submenu index=6 v-if=' sessionID === "admin" '>
......@@ -106,12 +88,8 @@
<el-menu-item index='/userPool' @click="routeTo">
用户营销池
</el-menu-item>
<el-menu-item index='/leadPoolTask' @click="routeTo">
导入任务
</el-menu-item>
<el-menu-item index='/exportPoolTask' @click="routeTo">
导出任务
</el-menu-item>
<el-menu-item index='/leadPoolTask' @click="routeTo">导入任务</el-menu-item>
<el-menu-item index='/exportPoolTask' @click="routeTo">导出任务</el-menu-item>
</el-submenu>
<el-submenu index=7 v-if=' sessionID === "admin" '>
......@@ -119,9 +97,7 @@
<i class='el-icon-setting'></i>
<span>代理商运营账号</span>
</template>
<el-menu-item index='/agent' @click="routeTo">
创建代理商运营账号
</el-menu-item>
<el-menu-item index='/agent' @click="routeTo">创建代理商运营账号</el-menu-item>
</el-submenu>
<a class="btn-toggle" @click="toggle"><i
......@@ -142,13 +118,15 @@
return {
isCollapse: false,
sessionID: null,
email: null
email: null,
title: null
}
},
mounted () {
this.sessionID = sessionStorage.getItem('sessionID')
this.email = sessionStorage.getItem('email')
this.getAccount(this.sessionID)
this.title = sessionStorage.getItem('title')
},
methods: {
toggle () {
......@@ -156,10 +134,10 @@
},
routeTo (item) {
this.$router.push(item.index)
this.header = item.TextNode
this.title = item.$slots.default[0].text
sessionStorage.setItem('title', this.title)
},
handleCommand (command) {
console.log(command)
if (command === 'exit') {
console.log('退出登陆')
sessionStorage.setItem('sessionID', null)
......@@ -224,7 +202,7 @@
background: rgb(84, 92, 100);
height: 56px;
line-height: 56px;
a border-right: 1px solid #e6e6e6;
border-right: 1px solid #e6e6e6;
transition-property: width;
transition-duration: 5s;
}
......@@ -236,4 +214,16 @@
.content {
box-sizing: content-box;
}
.title {
width: 75%;
height: 100%;
line-height: 63px;
text-align: center;
margin: 0 auto;
color: white;
font-weight: 800;
float: left;
font-size: 23px;
letter-spacing: 1px;
}
</style>
<template>
<el-container>
<el-header>
公告历史
</el-header>
<div style='margin: 10px 50px'>
<el-table
:data='datas'
border>
<el-table-column label='发布时间' prop='time' width=260></el-table-column>
<el-table-column label='标题' prop='title' width=260></el-table-column>
<el-table-column label='发布者' prop='releaseMen' width=120></el-table-column>
<el-table-column label='内容' prop='content' min-width=800></el-table-column>
</el-table>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="currentPage"
:page-sizes="[10, 20, 50, 100, 1000]"
:page-size="pageSize"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
style="float: right;margin-top: 15px">
</el-pagination>
</div>
</el-container>
<el-main>
<TableTemplate :url='url' :header='dataHeader'></TableTemplate>
</el-main>
</template>
<script>
import { mapGetters } from 'vuex'
import TableTemplate from './tableTemplate'
export default {
name: 'info',
components: {
TableTemplate
},
data () {
return {
sessionID: null,
datas: [],
currentPage: 1,
pageSize: 10,
total: 100
}
},
computed: {
...mapGetters({
sessionID: 'getSessionID'
})
},
mounted () {
this.sessionID = sessionStorage.getItem('sessionID')
this.getData(this.currentPage, this.pageSize)
},
methods: {
handleSizeChange (val) {
this.pageSize = val
this.getData(this.currentPage, this.pageSize)
},
handleCurrentChange (val) {
this.currentPage = val
this.getData(this.currentPage, this.pageSize)
},
getData (currentPage, pageSize) {
let self = this
fetch('/api/getInfo', {
method: 'POST',
headers: {'Content-Type': 'application/json;charset=UTF-8'},
body: JSON.stringify({currentPage: currentPage, pageSize: pageSize, sessionID: this.sessionID})
}).then(res => { return res.json() }).then(data => {
console.log(data)
self.datas = data.data
self.total = data.dataTotal
})
url: '/api/getInfo',
dataHeader: {
time: '发布时间',
title: '标题',
releaseMen: '发布者',
content: '内容'
},
}
}
}
......
......@@ -39,40 +39,15 @@
},
mounted () {
// const self = this
// if (localStorage.getItem('sureLogin')) {
// self.onSubmit()
// }
let self = this
document.onkeydown = function (event) {
var e = event || window.event;
if (e && e.keyCode == 13) {
self.login({userEmail: self.from.userEmail, password: self.from.password})
}
};
},
methods: {
// onSubmit () {
// let self = this
// if (self.from.userName && self.from.password) {
// fetch('/api/login', {
// method: 'POST',
// headers: {'Content-Type': 'application/json;charset=UTF-8'},
// body: JSON.stringify(self.from)
// }).then(res => { return res.json() }).then(data => {
// console.log(data)
// if (data.status === 230) {
// sessionStorage.setItem('sureLogin', data.id)
// this.$router.push({path: '/'})
// } else {
// this.$message({
// showClose: true,
// message: data.message,
// type: 'error'
// })
// }
// })
// } else {
// this.$message({
// showClose: true,
// message: '请输入账号密码',
// type: 'error'
// })
// }
// },
...mapActions([
'login'
])
......
<template>
<el-container>
<el-header>
<h3>信息发布</h3>
</el-header>
<el-main style='width: 80%; margin: 20px auto'>
<el-card shadow='always' style="padding: 20px 40px">
<div class='input'>
<p>标题:</p>
<el-input label='标题' placeholder='请输入标题名称' v-model='title'></el-input>
......@@ -14,19 +12,21 @@
</div>
<div class='input'>
<p>内容:</p>
<el-input label='内容' placeholder='请输入要发布的信息内容' type='textarea' v-model='content' :autosize="{ minRows: 4, maxRows: 8}" style='vertical-align: top'></el-input>
<el-input label='内容' placeholder='请输入要发布的信息内容' type='textarea' v-model='content' :autosize="{ minRows: 5, maxRows: 10}" style='vertical-align: top'></el-input>
</div>
<el-button type='primary' @click='sure()' style='width: 100px;margin: 10px auto'>确认发布</el-button>
</el-card>
</el-main>
</el-container>
</template>
<script>
import { mapGetters } from 'vuex'
import { mapGetters, mapActions } from 'vuex'
export default {
name: 'releaseInfo',
data () {
return {
url: '/api/releaseInfo',
sessionID: null,
centerDialogVisible: false,
title: '',
......@@ -43,33 +43,40 @@
})
},
methods: {
...mapActions({
send: 'SEND'
}),
sure () {
let self = this
let data = {title: this.title, content: this.content, releaseMen: this.releaseMen, sessionID: this.sessionID}
console.log(data)
if (this.title && this.content && this.releaseMen) {
fetch('/api/releaseInfo', {
method: 'POST',
headers: {'Content-Type': 'application/json;charset=UTF-8'},
body: JSON.stringify(data)
}).then(res => { return res.json() }).then(data => {
console.log(data)
if (data.status === 200) {
self.title = ''
self.content = ''
self.releaseMen = ''
this.$alert('消息发送成功', '提示', {
confirmButtonText: '确定',
callback: action => {
this.$message({
showClose: true,
message: '信息发布成功',
type: 'success'
})
}
})
}
this.send({
url: self.url,
chooes: {title: self.title, content: self.content, releaseMen: self.releaseMen, sessionID: self.sessionID},
callback: self.message
})
// fetch('/api/releaseInfo', {
// method: 'POST',
// headers: {'Content-Type': 'application/json;charset=UTF-8'},
// body: JSON.stringify(data)
// }).then(res => { return res.json() }).then(data => {
// console.log(data)
// if (data.status === 200) {
// self.title = ''
// self.content = ''
// self.releaseMen = ''
// this.$alert('消息发送成功', '提示', {
// confirmButtonText: '确定',
// callback: action => {
// this.$message({
// showClose: true,
// message: '信息发布成功',
// type: 'success'
// })
// }
// })
// }
// })
} else {
this.$message({
showClose: true,
......@@ -77,6 +84,21 @@
type: 'warning'
})
}
},
message (err, data) {
if (data.status === 200) {
this.$message({
showClose: true,
message: data.message,
type: 'success'
})
} else {
this.$message({
showClose: true,
message: data.message,
type: 'error'
})
}
}
}
}
......@@ -87,9 +109,9 @@
margin: 15px 0;
}
.input:nth-child(1) , .input:nth-child(2){
width: 40%;
width: 50%;
}
.input:nth-child(3) {
width: 60%;
width: 80%;
}
</style>
<template>
<el-container>
<el-header><h2>余额记录</h2></el-header>
<el-main>
<TableTmp :header="dataHeader" ref='TableTmp' :url='url' surplus='ok'>
</TableTmp>
<TableTemplate :header="dataHeader" ref='TableTmp' :url='url' :downBtn='true' :sum='true'></TableTemplate>
</el-main>
</el-container>
</template>
......@@ -15,10 +10,10 @@
</style>
<script>
import TableTmp from './tableTmp'
import TableTemplate from './tableTemplate'
export default {
name: 'surplus',
components: {TableTmp},
components: {TableTemplate},
data () {
return {
url: '/api/surplus',
......@@ -30,9 +25,6 @@
surplus: '余额'
}
}
},
mounted () {
this.$refs.TableTmp.change()
}
}
</script>
<template>
<div>
<el-row style="margin-bottom:20px" type="flex" justify="end" :gutter="20">
<el-col :span="4" v-if="downBtn"><el-button type="primary" @click="download">下载当前统计文件</el-button></el-col>
<el-col :span="4" v-if='sum' class="sum">总计:{{sumNumber}}</el-col>
<el-col :span="4" v-if="preSum" class="sum">预扣总计:{{preSumNumber}}</el-col>
<el-col :span="10">
<DatePicker @timeChange='timeChange' :startTime='startTime' :endTime='endTime' style='width:100%'></DatePicker>
</el-col>
</el-row>
<el-table
:data="datas"
border
style="width: 100%"
v-loading='loading'
>
<el-table-column label='序号' type='index' width=50 style="text-align: center"></el-table-column>
<el-table-column v-for="(value, key) in header" :label="value" :prop="key"></el-table-column>
</el-table>
<el-row>
<Pagination
:pageSize='pageSize'
:currentPage='currentPage'
:total='total'
@sizeChange='sizeChange'
@currentChange='currentChange'
>
</Pagination>
</el-row>
</div>
</template>
<script>
import DatePicker from './DatePicker'
import Pagination from './Pagination'
import moment from 'moment'
import { mapActions, mapGetters } from 'vuex'
const json2xlsx = require('../csv/csv')
export default {
name: 'tableTemplate',
components: {DatePicker, Pagination,},
props: [
'header',
'url',
'downBtn',
'sum',
'preSum'
],
data () {
return {
datas: [],
startTime: '',
endTime: '',
currentPage: 1,
pageSize: 10,
total: 1000,
sumNumber: 0,
preSumNumber: 0,
loading: true
}
},
mounted () {
this.getTime()
this.getData({
url: this.url,
choose: {
startTime: this.startTime,
endTime: this.endTime,
currentPage: this.currentPage,
pageSize: this.pageSize,
total: this.total
},
callback: this.formatData
})
},
methods: {
// 获取数据
...mapActions({
getData: 'GET_DATA'
}),
// 当前页选择
currentChange (value) {
this.currentPage = value
this.getData({
url: this.url,
choose: {
startTime: this.startTime,
endTime: this.endTime,
currentPage: this.currentPage,
pageSize: this.pageSize,
total: this.total
},
callback: this.formatData
})
},
// 当前页容量选择
sizeChange (value) {
this.pageSize = value
this.getData({
url: this.url,
choose: {
startTime: this.startTime,
endTime: this.endTime,
currentPage: this.currentPage,
pageSize: this.pageSize,
total: this.total
},
callback: this.formatData
})
},
// 时间选择
timeChange (data) {
this.startTime = data[0]
this.endTime = data[1]
this.getData({
url: this.url,
choose: {
startTime: this.startTime,
endTime: this.endTime,
currentPage: this.currentPage,
pageSize: this.pageSize,
total: this.total
},
callback: this.formatData
})
},
// 获取默认时间
getTime() {
this.endTime = moment()
.format("YYYY-MM-DD")
this.startTime = moment()
.subtract(1, "days")
.format("YYYY-MM-DD")
},
// 数据整理
formatData (err, data) {
this.loading = false
this.datas = data.datas
this.total = data.total
this.sumNumber = data.financeNumber || data.consumeTotalNumber || data.surplusTotal || 0
this.preSumNumber = data.preTotalNumber || 0
},
// 下载当前统计
download () {
this.getData({
url: this.url,
choose: {
startTime: this.startTime,
endTime: this.endTime,
},
callback: this.downloadData
})
},
// 下载文档整理
downloadData (err, data) {
let self = this
let [datas, list, tHeader, tBody] = [data.datas, [], [], []]
for (let x in self.header) {
tBody.push(x)
tHeader.push(self.header[x])
}
list.push(tHeader)
datas.forEach(x => {
let row = []
tBody.forEach(m => {
let col = x[m]
row.push(col)
})
list.push(row)
})
json2xlsx.default(list, {sheetName: 'test', filename: '数据下载.xlsx'})
}
}
}
</script>
<style>
.sum {
width: 100%;
height: 100%;
background-color: #409EFF;
border-radius: 4px;
padding: 8px 10px;
font-weight: 700;
text-align:center;
color:white;
margin-right: 20px;
}
</style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment