141 lines
3.1 KiB
JavaScript
141 lines
3.1 KiB
JavaScript
import * as API from 'api/virtual/packages';
|
|
|
|
export default {
|
|
props: {
|
|
show: {
|
|
type: Boolean,
|
|
default: false
|
|
},
|
|
type: {
|
|
type: Number,
|
|
default: 0
|
|
},
|
|
data: {
|
|
type: Object,
|
|
default () {
|
|
return null;
|
|
}
|
|
}
|
|
},
|
|
data() {
|
|
return {
|
|
my_show: false,
|
|
isUpdate: false,
|
|
loading: false,
|
|
params: {
|
|
type: 0,
|
|
sn: '',
|
|
name: '',
|
|
carrier_operator: 255,
|
|
cost_price: 0,
|
|
guide_price: 0,
|
|
renewal_cost_price: 0,
|
|
renewal_guide_price: 0,
|
|
flows: 0,
|
|
voices: 0,
|
|
messages: 0,
|
|
has_messages: 0,
|
|
has_lbs: 0,
|
|
reset_months: 0,
|
|
service_months: 0,
|
|
effect_months: 0,
|
|
delay_months: 0,
|
|
description: ''
|
|
}
|
|
};
|
|
},
|
|
watch: {
|
|
show(bool) {
|
|
this.my_show = bool;
|
|
if (bool) {
|
|
if (this.data) {
|
|
for (let k in this.data) {
|
|
if (k in this.params) {
|
|
this.params[k] = this.data[k];
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
methods: {
|
|
ok() {
|
|
if (!this.params.name) {
|
|
this.$Message.info('请填写套餐名称');
|
|
return;
|
|
}
|
|
|
|
if (this.data && this.params.sn && !/^[A-Z0-9._]{2,32}$/.test(this.data && this.params.sn)) {
|
|
this.$Message.info('套餐编码为大写字母、数字、下划线的2-32位字符');
|
|
return;
|
|
}
|
|
|
|
if (this.params.carrier_operator === 255) {
|
|
this.$Message.info('请选择运营商');
|
|
return;
|
|
}
|
|
|
|
if (!this.params.reset_months) {
|
|
this.$Message.info('请输入重置周期');
|
|
return;
|
|
}
|
|
|
|
if (!this.params.service_months) {
|
|
this.$Message.info('请输入套餐周期');
|
|
return;
|
|
}
|
|
|
|
if (this.params.reset_months > this.params.service_months) {
|
|
this.$Message.info('重置周期必须小于套餐周期');
|
|
return;
|
|
}
|
|
|
|
this.params.type = this.type;
|
|
|
|
if (this.data) {
|
|
// 编辑
|
|
API.update(this.params, this.data.id).then(res => {
|
|
this.loading = false;
|
|
if (res.code == 0) {
|
|
this.$emit('update-success');
|
|
this.$Message.success('更新成功');
|
|
this.clear();
|
|
}
|
|
}).catch(err => {
|
|
this.loading = false;
|
|
});
|
|
} else {
|
|
// 添加
|
|
API.create(this.params).then(res => {
|
|
this.loading = false;
|
|
if (res.code == 0) {
|
|
this.$emit('add-success');
|
|
this.$Message.success('添加成功');
|
|
this.clear();
|
|
}
|
|
}).catch(err => {
|
|
this.loading = false;
|
|
});
|
|
}
|
|
},
|
|
|
|
visibleChange(bool) {
|
|
if (!bool) {
|
|
this.$emit('update:show', false);
|
|
}
|
|
},
|
|
|
|
clear() {
|
|
let strKeys = ['sn', 'name', 'carrier_operator', 'description'];
|
|
for (let k in this.params) {
|
|
if (strKeys.indexOf(k) === -1) {
|
|
this.params[k] = 0;
|
|
} else {
|
|
this.params[k] = '';
|
|
}
|
|
}
|
|
|
|
this.my_show = false;
|
|
}
|
|
}
|
|
}; |