Commit b9095350 authored by yaobeibei's avatar yaobeibei

新加

parent deabd65c
This diff is collapsed.
...@@ -4,6 +4,16 @@ ...@@ -4,6 +4,16 @@
<h4>账户权限控制</h4> <h4>账户权限控制</h4>
</el-header> </el-header>
<el-main> <el-main>
<el-row>
<el-select v-model="inputValue" filterable placeholder="请选择账户名称" @change='change' clearable @clear='clear' style='width: 300px;margin-bottom: 10px'>
<el-option
v-for="item in emailOptions"
:key="item"
:label="item"
:value="item">
</el-option>
</el-select>
</el-row>
<el-table :data='datas' border width=100%> <el-table :data='datas' border width=100%>
<el-table-column label='序号' width=50> <el-table-column label='序号' width=50>
<template slot-scope='scope'> <template slot-scope='scope'>
...@@ -65,11 +75,12 @@ ...@@ -65,11 +75,12 @@
isAccountDelete: false, isAccountDelete: false,
currentPage: 1, currentPage: 1,
pageSize: 10, pageSize: 10,
total: 100 total: 100,
emailOptions: null
} }
}, },
mounted () { mounted () {
this.getData(this.currentPage, this.pageSize) this.getData(this.currentPage, this.pageSize, this.inputValue)
}, },
methods: { methods: {
AutoChange (row) { AutoChange (row) {
...@@ -90,25 +101,34 @@ ...@@ -90,25 +101,34 @@
this.deleteAccount(row, 1) this.deleteAccount(row, 1)
} }
}, },
getData (currentPage, pageSize) { change () {
console.log('进入筛选')
console.log(this.inputValue)
this.getData(this.currentPage, this.pageSize, this.inputValue)
},
clear () {
this.getData(this.currentPage, this.pageSize, null)
},
getData (currentPage, pageSize, choose) {
let self = this let self = this
fetch('/api/getAccount', { fetch('/api/getAccount', {
method: 'POST', method: 'POST',
headers: {'Content-Type': 'application/json;charset=UTF-8'}, headers: {'Content-Type': 'application/json;charset=UTF-8'},
body: JSON.stringify({currentPage: currentPage, pageSize: pageSize}) body: JSON.stringify({currentPage: currentPage, pageSize: pageSize, choose: choose})
}).then(res => { return res.json() }).then(data => { }).then(res => { return res.json() }).then(data => {
console.log(data) console.log(data)
self.datas = data.data self.datas = data.data
self.total = data.dataTotal self.total = data.dataTotal
self.emailOptions = data.emailArr
}) })
}, },
handleSizeChange (val) { handleSizeChange (val) {
this.pageSize = val this.pageSize = val
this.getData(this.currentPage, this.pageSize) this.getData(this.currentPage, this.pageSize, this.inputValue)
}, },
handleCurrentChange (val) { handleCurrentChange (val) {
this.currentPage = val this.currentPage = val
this.getData(this.currentPage, this.pageSize) this.getData(this.currentPage, this.pageSize, this.inputValue)
}, },
deleteAccount (row, status) { deleteAccount (row, status) {
let accountId = row._id let accountId = row._id
......
...@@ -82,6 +82,7 @@ ...@@ -82,6 +82,7 @@
<el-button slot="reference" type='text' size='mini' :disabled='scope.row.disable'>拒绝</el-button> <el-button slot="reference" type='text' size='mini' :disabled='scope.row.disable'>拒绝</el-button>
</el-popover> </el-popover>
<el-button type='text' size='small' @click="openForm(scope.row, scope.$index)" :disabled='scope.row.disable'>筛选后通过</el-button> <el-button type='text' size='small' @click="openForm(scope.row, scope.$index)" :disabled='scope.row.disable'>筛选后通过</el-button>
<el-button type='text' @click='reset(scope.row)' icon='el-icon-refresh'></el-button>
</template> </template>
</el-table-column> </el-table-column>
</el-table> </el-table>
...@@ -174,8 +175,8 @@ ...@@ -174,8 +175,8 @@
valueRange: [], valueRange: [],
startTime: '', startTime: '',
endTime: '', endTime: '',
currentdata:null, currentdata: null,
currentIndex:null, currentIndex: null,
pickerOptions: { pickerOptions: {
shortcuts: [{ shortcuts: [{
text: '昨天', text: '昨天',
...@@ -371,6 +372,11 @@ ...@@ -371,6 +372,11 @@
console.log(err) console.log(err)
}) })
}, },
reset (row) {
this.suerSend(8, row)
row.disable = false
row.status = '未审核'
},
change (type = 'POST', startTime, endTime, total = total, pageSize = this.pageSize, currentPage = this.currentPage, choose) { change (type = 'POST', startTime, endTime, total = total, pageSize = this.pageSize, currentPage = this.currentPage, choose) {
let self = this let self = this
console.log(self.url, type, startTime, endTime, total, pageSize, currentPage, choose) console.log(self.url, type, startTime, endTime, total, pageSize, currentPage, choose)
......
This diff is collapsed.
<template> <template>
<el-container> <el-container>
<el-header><h2>数据统计</h2></el-header> <el-header><h2>直客统计</h2></el-header>
<el-main> <el-main>
<TableTmp :header="dataHeader" ref='TableTmp' :url='url' :datalist='datalist'> <TableTmp :header="dataHeader" ref='TableTmp' :url='url' :datalist='datalist'>
</TableTmp> </TableTmp>
......
<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>
</template>
<script>
import TableTmp from './tableTmp'
export default {
name: 'distributor',
components: {TableTmp},
data () {
return {
url: '/api/distributor',
dataHeader: {
time: '日期',
email: '邮箱',
company: '公司',
distributor: '渠道商',
pv: '来访次数',
uid: '来访用户',
touchCount: '触达用户',
getCount: '备案用户',
msgCount: '短信营销',
callCount: '云呼营销'
},
datalist: 'ok'
}
},
mounted () {
this.$refs.TableTmp.change()
},
methods: {
}
}
</script>
<style scoped>
</style>
<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>
<el-table-column label='导出UNIKEY数' prop='exportUnikeyNumber'></el-table-column>
<el-table-column label='导出生成用户数' prop='createRecogNum'></el-table-column>
<el-table-column label='导出时间' prop='exportTime'></el-table-column>
<el-table-column label='导出账号&代码位'>
<template slot-scope='scope'>
<el-button type='text' size='mini' @click='showExportContent(scope.row)'>查看详情</el-button>
</template>
</el-table-column>
</el-table>
<el-dialog title='导出账户及代码位' center :visible.sync="exportContentVisible">
<el-table :data='exprotContent' border>
<el-table-column label='账户' prop='accountName'></el-table-column>
<el-table-column label='代码位' prop='slotName'></el-table-column>
</el-table>
<span slot="footer" class="dialog-footer">
<el-button type="primary" @click="exportContentVisible = false">确 定</el-button>
</span>
</el-dialog>
</el-main>
</el-container>
</template>
<script>
export default {
name: 'exportPoolTask',
data () {
return {
datas: null,
exportContentVisible: false
}
},
mounted () {
this.getData()
},
methods: {
showExportContent (row) {
console.log(row)
this.exprotContent = row.exportShowArr
this.exportContentVisible = true
},
getData () {
let self = this
fetch('/api/getExportTask', {
method: 'POST',
headers: {'Content-Type': 'application/json;charset=UTF-8'},
body: JSON.stringify({})
}).then(res => { return res.json() }).then(data => {
console.log(data)
self.datas = data.datas
// self.emailOptions = data.emailArr
})
}
}
}
</script>
<style scoped>
</style>
\ No newline at end of file
...@@ -21,7 +21,11 @@ ...@@ -21,7 +21,11 @@
<span>数据统计</span> <span>数据统计</span>
</template> </template>
<el-menu-item-group> <el-menu-item-group>
<el-menu-item index="/dataList" @click="routeTo">数据分析 <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>
</el-menu-item-group> </el-menu-item-group>
</el-submenu> </el-submenu>
...@@ -62,6 +66,9 @@ ...@@ -62,6 +66,9 @@
<el-menu-item index='/checkCall' @click="routeTo"> <el-menu-item index='/checkCall' @click="routeTo">
云呼审核 云呼审核
</el-menu-item> </el-menu-item>
<el-menu-item index='/checkNote' @click="routeTo">
短信审核
</el-menu-item>
</el-submenu> </el-submenu>
<el-submenu index=5> <el-submenu index=5>
...@@ -77,6 +84,22 @@ ...@@ -77,6 +84,22 @@
</el-menu-item> </el-menu-item>
</el-submenu> </el-submenu>
<el-submenu index=6>
<template slot='title'>
<i class='el-icon-setting'></i>
<span>营销任务</span>
</template>
<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-submenu>
<a class="btn-toggle" @click="toggle"><i <a class="btn-toggle" @click="toggle"><i
:class="[isCollapse? 'el-icon-d-arrow-right' : 'el-icon-d-arrow-left']"></i></a> :class="[isCollapse? 'el-icon-d-arrow-right' : 'el-icon-d-arrow-left']"></i></a>
</el-menu> </el-menu>
......
<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>
<el-table-column label='导入用户数目' prop='leadNumber'></el-table-column>
<el-table-column label='重复过滤' prop='filterNumber'></el-table-column>
<el-table-column label='导入时间' prop='leadTime'></el-table-column>
<el-table-column label='导入来源账户' prop='fromEmail'></el-table-column>
<el-table-column label='导入来源公司' prop='fromCompany'></el-table-column>
</el-table>
</el-main>
</el-container>
</template>
<script>
export default {
name: 'leadPoolTask',
data () {
return {
datas: null
}
},
mounted () {
this.getData()
},
methods: {
getData () {
let self = this
fetch('/api/getLeadTask', {
method: 'POST',
headers: {'Content-Type': 'application/json;charset=UTF-8'},
body: JSON.stringify({})
}).then(res => { return res.json() }).then(data => {
console.log(data)
self.datas = data.datas
// self.emailOptions = data.emailArr
})
}
}
}
</script>
<style scoped>
</style>
\ No newline at end of file
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
</el-header> </el-header>
<el-main> <el-main>
<el-row> <el-row>
<el-select v-model="inputValue" filterable placeholder="请选择" @change='change' clearable @clear='clear' style='width: 300px;margin-bottom: 10px'> <el-select v-model="inputValue" filterable placeholder="请选择账户名称" @change='change' clearable @clear='clear' style='width: 300px;margin-bottom: 10px'>
<el-option <el-option
v-for="item in emailOptions" v-for="item in emailOptions"
:key="item" :key="item"
...@@ -25,6 +25,11 @@ ...@@ -25,6 +25,11 @@
<el-table-column label='公司名称' prop='company'></el-table-column> <el-table-column label='公司名称' prop='company'></el-table-column>
<el-table-column label='代码位名称' prop='slotName'></el-table-column> <el-table-column label='代码位名称' prop='slotName'></el-table-column>
<el-table-column label='代码位位置' prop='slot'></el-table-column> <el-table-column label='代码位位置' prop='slot'></el-table-column>
<el-table-column label='代码位备案规则'>
<template slot-scope='scope'>
<el-button type='text' @click='openDialog(scope)' >备案规则</el-button>
</template>
</el-table-column>
<el-table-column label='代码位操作'> <el-table-column label='代码位操作'>
<template slot-scope='scope'> <template slot-scope='scope'>
<el-switch <el-switch
...@@ -50,6 +55,18 @@ ...@@ -50,6 +55,18 @@
style="float: right;margin-top: 15px"> style="float: right;margin-top: 15px">
</el-pagination> </el-pagination>
</el-main> </el-main>
<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>
<el-radio :label="'norepeat'">非重复用户备案</el-radio>
<el-radio :label="'uniq'">所有用户有且备案一次</el-radio>
</el-radio-group>
<div slot="footer" class="dialog-footer">
<el-button @click="closeDialog">取 消</el-button>
<el-button type="primary" @click="suerSend()" :disabled='currentdata.disable'>确 定</el-button>
</div>
</el-dialog>
</el-container> </el-container>
</template> </template>
...@@ -64,13 +81,67 @@ ...@@ -64,13 +81,67 @@
currentPage: 1, currentPage: 1,
pageSize: 10, pageSize: 10,
total: 100, total: 100,
emailOptions: [] emailOptions: [],
dialogVisiable: false,
currentdata: {
disable: false
},
radio1: 1,
radio2: 1,
autoRule: {
internal: null,
strategy: 'all'
}
} }
}, },
mounted () { mounted () {
this.getData(this.currentPage, this.pageSize, this.inputValue) this.getData(this.currentPage, this.pageSize, this.inputValue)
}, },
methods: { methods: {
getChoose (value) {
console.log(value)
},
getChoose2 (value) {
console.log(value)
},
openDialog (scope) {
this.dialogVisiable = true
this.currentdata = scope.row
this.autoRule.strategy = scope.row.autoRule.strategy || 'all'
console.log(this.currentdata)
},
closeDialog () {
this.dialogVisiable = false
this.currentdata = {
disable: false
}
},
suerSend () {
let self = this
let autoRule = this.autoRule
let slotId = this.currentdata.slotId
console.log(slotId)
console.log(autoRule)
this.dialogVisiable = false
fetch('/api/slotAutoRule', {
method: 'POST',
headers: {'Content-Type': 'application/json;charset=UTF-8'},
body: JSON.stringify({slotId: slotId, autoRule: autoRule})
}).then(res => { return res.json() }).then(data => {
console.log(data)
this.$message({
message: data.message,
type: 'success'
})
self.currentdata = {
disable: false
}
self.autoRule = {
internal: null,
strategy: 'all'
}
})
},
change () { change () {
console.log('进入筛选') console.log('进入筛选')
console.log(this.inputValue) console.log(this.inputValue)
......
...@@ -56,7 +56,8 @@ ...@@ -56,7 +56,8 @@
'consume', 'consume',
'url', 'url',
'surplus', 'surplus',
'datalist' 'datalist',
'distributor'
], ],
data () { data () {
return { return {
...@@ -149,6 +150,10 @@ ...@@ -149,6 +150,10 @@
} }
list.push(['余额合计', self.surplusTotal]) list.push(['余额合计', self.surplusTotal])
console.log(list) console.log(list)
} else if (self.url === '/api/distributor') {
for (let i = 0; i < self.allDate.length; i++) {
list.push([self.allDate[i].time, self.allDate[i].email, self.allDate[i].company, self.allDate[i].distributor, self.allDate[i].pv, self.allDate[i].uid, self.allDate[i].touchCount, self.allDate[i].getCount, self.allDate[i].msgCount, self.allDate[i].callCount])
}
} else { } else {
for (let i = 0; i < self.allDate.length; i++) { for (let i = 0; i < self.allDate.length; i++) {
list.push([self.allDate[i].time, self.allDate[i].email, self.allDate[i].company, self.allDate[i].pv, self.allDate[i].uid, self.allDate[i].touchCount, self.allDate[i].getCount, self.allDate[i].msgCount, self.allDate[i].callCount]) list.push([self.allDate[i].time, self.allDate[i].email, self.allDate[i].company, self.allDate[i].pv, self.allDate[i].uid, self.allDate[i].touchCount, self.allDate[i].getCount, self.allDate[i].msgCount, self.allDate[i].callCount])
......
This diff is collapsed.
...@@ -9,8 +9,13 @@ import releaseInfo from '@/components/releaseInfo' ...@@ -9,8 +9,13 @@ import releaseInfo from '@/components/releaseInfo'
import info from '@/components/info' import info from '@/components/info'
import login from '@/components/login' import login from '@/components/login'
import checkCall from '@/components/checkCall' import checkCall from '@/components/checkCall'
import checkNote from '@/components/checkNote'
import account from '@/components/account' import account from '@/components/account'
import slot from '@/components/slot' import slot from '@/components/slot'
import distributor from '@/components/distributor'
import userPool from '@/components/userPool'
import leadPoolTask from '@/components/leadPoolTask'
import exportPoolTask from '@/components/exportPoolTask'
Vue.use(Router) Vue.use(Router)
...@@ -30,8 +35,13 @@ export default new Router({ ...@@ -30,8 +35,13 @@ export default new Router({
{name: 'releaseInfo', path: '/releaseInfo', meta: {requiresId: false}, component: releaseInfo}, {name: 'releaseInfo', path: '/releaseInfo', meta: {requiresId: false}, component: releaseInfo},
{name: 'info', path: '/info', meta: {requiresId: false}, component: info}, {name: 'info', path: '/info', meta: {requiresId: false}, component: info},
{name: 'checkCall', path: '/checkCall', meta: {requiresId: false}, component: checkCall}, {name: 'checkCall', path: '/checkCall', meta: {requiresId: false}, component: checkCall},
{name: 'checkNote', path: '/checkNote', meta: {requiresId: false}, component: checkNote},
{name: 'account', path: '/account', meta: {requiresId: false}, component: account}, {name: 'account', path: '/account', meta: {requiresId: false}, component: account},
{name: 'slot', path: '/slot', meta: {requiresId: false}, component: slot} {name: 'slot', path: '/slot', meta: {requiresId: false}, component: slot},
{name: 'userPool', path: '/userPool', meta: {requiresId: false}, component: userPool},
{name: 'leadPoolTask', path: '/leadPoolTask', meta: {requiresId: false}, component: leadPoolTask},
{name: 'exportPoolTask', path: '/exportPoolTask', meta: {requiresId: false}, component: exportPoolTask},
{name: 'distributor', path: '/distributor', meta: {requiresId: false}, component: distributor}
] ]
}, },
{ {
......
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