2019-03-28 18:12:39 +08:00

208 lines
4.5 KiB
JavaScript

import * as API from 'api/virtual/cards';
export default {
name: 'Cards',
components: {
UiDetail: resolve => require(['views/virtual/cards/detail'], resolve)
},
data() {
return {
params: {
id: '',
sim: '',
company_name: '',
package_name: '',
carrier_operator: '',
card_status: '',
time: [],
activated_time: []
},
list_data: null,
detailObj: {
show: false,
data: null
},
search: {
show: false
},
table_titles: [{
title: '客户编号',
key: 'id',
width: 150
},
{
title: 'SIM',
key: 'sim',
width: 150
},
{
title: '运营商',
key: 'carrier_operator',
width: 90
},
{
title: '企业名称',
key: 'company_name',
width: 300
},
{
title: '套餐名称',
key: 'package_name',
width: 110
},
{
title: '状态',
key: 'status_name',
width: 110
},
{
title: '服务时间',
key: '',
width: 170,
render: (h, {
row,
column,
index
}) => {
return h('span', row.service_start_at + ' - ' + row.service_end_at);
}
},
{
title: '创建时间',
key: 'created_at',
width: 170
},
{
title: '操作',
key: 'action',
render: (h, {
row,
column,
index
}) => {
let html = [];
if (this.haveJurisdiction('show')) {
html.push(h('Button', {
props: {
type: 'dashed',
size: 'small',
disabled: false,
icon: 'md-eye'
},
class: ['btn'],
on: {
click: (event) => {
this.detailObj = {
show: true,
data: row
};
}
}
}, '查看'));
}
if (html.length) {
return h('div', html);
}
}
}
]
};
},
created() {
this.index(1);
},
methods: {
/**
* [index 列表]
* @param {Number} page [description]
* @return {[type]} [description]
*/
index(page = 1) {
let params = this.getParams({ page });
this.isShowLoading(true);
API.index(params).then(res => {
this.isShowLoading(false);
if (res.code == 0) {
this.list_data = res.data;
}
}).catch(() => {
this.isShowLoading(false);
});
},
exportExcel() {
let params = this.getParams({ limit: 0 });
this.isShowLoading(true);
API.exportExcel(params).then(res => {
this.isShowLoading(false);
if (res.code === 0) {
if (res.data) {
this.downloadFile(res.data);
} else {
this.$Modal.success({
title: '提示',
content: '当前导出数据量大,已进入后台队列导出模式,请稍后至导出列表查看下载。'
});
}
}
}).catch(() => {
this.isShowLoading(false);
});
},
getParams({ page, limit }) {
let params = Object.assign({
orderBy: 'id',
sortedBy: 'asc'
}, this.params);
if (this.params.sim) {
params.sim = this.params.sim.split(/[\s|,|;]+/);
}
if (this.params.activated_time.length && this.params.activated_time[0] && this.params.activated_time[1]) {
let activated_time = this.parseTime(this.params.activated_time);
params.activated_starttime = activated_time.starttime;
params.activated_endtime = activated_time.endtime;
}
params.activated_time = undefined;
let data = this.searchDataHandle({}, { page, limit }, params);
return data;
},
/**
* [request 刷新]
* @return {[type]} [description]
*/
request() {
const result = this.list_data;
let page = result.current_page;
if (result && result.data.length == 1) {
page = this.returnPage(result.total, result.current_page, result.per_page);
}
this.index(page);
},
resetSearch() {
for (let k in this.params) {
if (k === 'time' || k === 'activated_time') {
this.params[k] = [];
} else {
this.params[k] = '';
}
}
this.index(1);
}
}
};