208 lines
4.5 KiB
JavaScript
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);
|
|
}
|
|
}
|
|
};
|