Commit 9e255061 authored by yaobeibei's avatar yaobeibei

merge reset

parents 75a437f6 592dfa2a
......@@ -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 })
})
// 云呼审核数据
......@@ -1553,6 +1573,7 @@ app.post('/getAccount', async function (req, res) {
item.company = x.company
item.phone = x.phone
item.email = x.email
item.site = x.site
item.onelevelTag = x.onelevelTag || ''
item.twolevelTag = x.twolevelTag || ''
item.tag = { onelvtag: [], twolvtag: [] }
......@@ -1571,6 +1592,21 @@ app.post('/getAccount', async function (req, res) {
res.send({ status: 200, data: dataArr, dataTotal: dataArrTotal, emailArr: emailArr })
})
// 修改公司信息
app.post('/changeAccountInfo', async function (req, res) {
console.log(req.body)
let {accountID, name, phone, site} = req.body
await db.collection('account').update({_id: mongodb.ObjectId(accountID)}, {$set: {company: name, phone: phone, site: site}}, (err, response) => {
if (err) {
return console.log(err)
}
res.send({status: 200, message: '公司信息修改成功'})
})
})
// 向公司打标签
app.post('/makeAccountTag', async function(req, res){
console.log('进入打标签')
......@@ -2074,12 +2110,17 @@ 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) {
<<<<<<< HEAD
=======
console.log(response.body)
>>>>>>> reset
res.send({status: 200, datas: response.body})
}
if (response.statusCode === 204) {
......@@ -2108,4 +2149,6 @@ app.post('/entryIn', function(req, res) {
})
module.exports = app
......@@ -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');
});
......@@ -29,6 +29,11 @@
<el-button type='text' @click='openForm(scope.row, scope.$index)' >公司标签</el-button>
</template>
</el-table-column>
<el-table-column label="修改公司信息">
<template slot-scope="scope">
<el-button type="text" @click="changeAccountInfo(scope)" >修改信息</el-button>
</template>
</el-table-column>
<el-table-column label='自动备案'>
<template slot-scope='scope'>
<el-switch
......@@ -67,6 +72,26 @@
style="float: right;margin-top: 15px">
</el-pagination>
</el-main>
<el-dialog title="修改公司信息" :visible.sync='changeAccountInfoDialog' width="40%">
<el-form :label-position="left" label-width="80px" :model="companyInfo" style="margin: 0 auto; width: 80%">
<el-form-item label="公司姓名">
<el-input v-model='companyInfo.name'></el-input>
</el-form-item>
<el-form-item label="公司电话">
<el-input v-model='companyInfo.phone'></el-input>
</el-form-item>
<el-form-item label="公司网站">
<el-input v-model='companyInfo.site'></el-input>
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button @click="changeAccountInfoDialog = false">取 消</el-button>
<el-button type="primary" @click="sureChangeInfo">确 定</el-button>
</div>
</el-dialog>
<el-dialog title='行业标签' :visible.sync='dialogVisiable' width=60%>
<el-select v-model="oneChoose" filterable clearable placeholder="请选择一级标签" @change='chooseOne'>
<el-option
......@@ -93,7 +118,7 @@
</template>
<script>
import { mapGetters } from 'vuex'
import { mapGetters, mapActions } from 'vuex'
export default {
name: 'account',
data () {
......@@ -113,7 +138,14 @@
oneChoose: null,
twoChoose: null,
currentdata: null,
currentIndex: null
currentIndex: null,
changeAccountInfoDialog: false,
companyInfo: {
accountID: null,
name: null,
phone: null,
site: null
}
}
},
mounted () {
......@@ -127,6 +159,47 @@
})
},
methods: {
...mapActions({
send: 'SEND'
}),
changeAccountInfo (scope) {
this.currentdata = scope.row
this.currentIndex = scope.$index
this.companyInfo.accountID = this.currentdata._id
this.companyInfo.name = this.currentdata.company
this.companyInfo.phone = this.currentdata.phone
this.companyInfo.site = this.currentdata.site
this.changeAccountInfoDialog = true
},
sureChangeInfo () {
let self = this
console.log(this.companyInfo)
this.send({
url: '/api/changeAccountInfo',
choose: {
accountID: self.companyInfo.accountID,
name: self.companyInfo.name,
phone: self.companyInfo.phone,
site: self.companyInfo.site
},
callback: (err, data) => {
this.$message({
type: 'success',
message: data.message
})
self.changeAccountInfoDialog = false
self.currentdata.name = self.companyInfo.name
self.currentdata.phone = self.companyInfo.phone
self.currentdata.site = self.companyInfo.site
this.$set(self.datas, self.currentIndex, self.currentdata)
self.companyInfo.accountID = null
self.companyInfo.name = null
self.companyInfo.phone = null
self.companyInfo.site = null
}
})
},
makeAccountTag () {
this.dialogVisiable = false
let onelevelTag = this.onelevel[this.oneChoose]
......
<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>
......@@ -522,6 +517,7 @@
}).then(data => {
console.dir(data)
this.entryBillID = billID
<<<<<<< HEAD
let datas = JSON.parse(data.datas)
console.log(datas)
......@@ -533,6 +529,10 @@
message: '该订单已经被录入'
})
}
=======
let datas = JSON.parse(data.datas)
if (data.status === 200) {
>>>>>>> reset
this.formatEntry(datas)
} else {
this.$alert(data.message, '无法录入', {
......@@ -552,22 +552,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
......@@ -589,9 +589,13 @@
}).then(res => {
return res.json()
}).then(data => {
<<<<<<< HEAD
console.log(data)
let datas = JSON.parse(data.datas)
console.log(datas)
=======
let datas = JSON.parse(data.datas)
>>>>>>> reset
if (data.status === 200) {
if (datas.ok === 1) {
this.message({
......
<template>
<el-container>
<el-header>
<h4>短信审核</h4>
</el-header>
<el-main style="font-size: 12px">
<el-row>
<el-date-picker
......@@ -134,8 +131,7 @@
:total="total"
style="float: right;margin-top: 15px">
</el-pagination>
</el-main>
<el-dialog :visible.sync="dialogFormVisible">
<el-dialog :visible.sync="dialogFormVisible">
<p style="font-size: 16px;font-weight: 800">请添加筛选条件</p>
<p style='margin-left:10p'> 备注: {{meta}}</p>
<div>
......@@ -208,7 +204,8 @@
<el-button type="primary" @click="creatNoteTag()">确 定</el-button>
</div>
</el-dialog>
</el-container>
</el-main>
</template>
<script>
......
<template>
<el-container>
<el-header>
<h4>url审核</h4>
</el-header>
<el-main>
<el-row type="flex" justify="space-between" style="margin-bottom: 10px">
<el-col :span="8">
......@@ -23,7 +20,7 @@
</el-table>
<Pagination :currentPage='currentPage' :pageSize='pageSize' :total='total' @sizeChange='sizeChange' @currentChange='currentChange'></Pagination>
</el-main>
</el-container>
</template>
<script>
import DatePicker from './DatePicker'
......
<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>
<h4>导出任务</h4>
</el-header>
<el-main>
<el-table border :data='datas'>
<el-table-column label='任务编码' prop='taskID'></el-table-column>
......@@ -25,7 +22,7 @@
</span>
</el-dialog>
</el-main>
</el-container>
</template>
<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)
......@@ -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: '内容'
},
}
}
}
......
<template>
<el-container>
<el-header>
<h4>导入任务</h4>
</el-header>
<el-main>
<el-table border :data='datas'>
<el-table-column label='任务编码' prop='taskID'></el-table-column>
......@@ -13,7 +10,7 @@
<el-table-column label='导入来源公司' prop='fromCompany'></el-table-column>
</el-table>
</el-main>
</el-container>
</template>
<script>
......
<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>
<h4>代码位控制</h4>
</el-header>
<el-main>
<el-row>
<el-select v-model="inputValue" filterable placeholder="请选择账户名称" @change='change' clearable @clear='clear' style='width: 300px;margin-bottom: 10px'>
......@@ -55,8 +52,7 @@
:total="total"
style="float: right;margin-top: 15px">
</el-pagination>
</el-main>
<el-dialog title='备案规则' :visible.sync='dialogVisiable' width=60%>
<el-dialog title='备案规则' :visible.sync='dialogVisiable' width=60%>
<el-radio-group v-model="autoRule.strategy" @change='getChoose2' :disabled='currentdata.disable'>
<el-radio :label="'all'">全量备案</el-radio>
<el-radio :label="'repeat'">重复用户备案</el-radio>
......@@ -68,7 +64,9 @@
<el-button type="primary" @click="suerSend()" :disabled='currentdata.disable'>确 定</el-button>
</div>
</el-dialog>
</el-container>
</el-main>
</template>
<script>
......
<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>
<template>
<el-container>
<el-header>
<h4>用户营销池</h4>
</el-header>
<el-main>
<el-row style='margin-bottom: 10px'>
<el-button type='primary' style='float: left' @click=' inDialogVisible = true'>导入任务</el-button>
......@@ -159,7 +156,7 @@
</span>
</el-dialog>
</el-main>
</el-container>
</template>
<script>
......
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