|
@@ -15,7 +15,7 @@
|
|
|
class="item-width-200 ml10"
|
|
|
></el-input>
|
|
|
<el-input
|
|
|
- v-model="query.groupPlanNameType"
|
|
|
+ v-model="query.planningName"
|
|
|
size="small"
|
|
|
placeholder="请输入产品策划名称"
|
|
|
class="item-width-200 ml10"
|
|
@@ -26,21 +26,6 @@
|
|
|
placeholder="请输入订单号"
|
|
|
class="item-width-200 ml10"
|
|
|
></el-input>
|
|
|
- <!-- <el-select
|
|
|
- v-model="query.miniApp"
|
|
|
- size="small"
|
|
|
- clearable
|
|
|
- class="item-width-200 ml10"
|
|
|
- placeholder="请选择所属小程序"
|
|
|
- >
|
|
|
- <el-option
|
|
|
- v-for="item in options"
|
|
|
- :key="item.value"
|
|
|
- :label="item.label"
|
|
|
- :value="item.value"
|
|
|
- >
|
|
|
- </el-option>
|
|
|
- </el-select> -->
|
|
|
<el-select
|
|
|
v-model="query.groupType"
|
|
|
size="small"
|
|
@@ -166,7 +151,7 @@
|
|
|
</el-table-column>
|
|
|
<el-table-column align="center" label="未激活数量" show-overflow-tooltip>
|
|
|
<template slot-scope="scope">
|
|
|
- {{ scope.row.totalTicket-scope.row.useTicket || "--" }}
|
|
|
+ {{ scope.row.totalTicket - scope.row.useTicket || "--" }}
|
|
|
</template>
|
|
|
</el-table-column>
|
|
|
<el-table-column align="center" label="已激活数量" show-overflow-tooltip>
|
|
@@ -222,7 +207,12 @@
|
|
|
>
|
|
|
</el-pagination>
|
|
|
</div>
|
|
|
- <el-dialog title="生成激活码" :visible.sync="vipDialogVisible" width="50%">
|
|
|
+ <el-dialog
|
|
|
+ title="生成激活码"
|
|
|
+ :visible.sync="vipDialogVisible"
|
|
|
+ :before-close="closeVipDialog"
|
|
|
+ width="50%"
|
|
|
+ >
|
|
|
<el-descriptions class="margin-top" :column="3" border>
|
|
|
<el-descriptions-item>
|
|
|
<template slot="label"> 计费号 </template>
|
|
@@ -260,6 +250,8 @@
|
|
|
<el-form-item label="激活码有效期:" prop="validDay">
|
|
|
<el-input
|
|
|
v-model="setQuery.validDay"
|
|
|
+ onkeyup="this.value=this.value.replace(/\D/g,'')"
|
|
|
+ onafterpaste="this.value=this.value.replace(/\D/g,'')"
|
|
|
class="item-width-100"
|
|
|
></el-input>
|
|
|
天
|
|
@@ -288,21 +280,27 @@
|
|
|
></el-radio>
|
|
|
</el-radio-group>
|
|
|
<div v-if="setQuery.activationType == '时间段'">
|
|
|
- <el-date-picker
|
|
|
- v-model="date"
|
|
|
- type="daterange"
|
|
|
- range-separator="至"
|
|
|
- start-placeholder="开始日期"
|
|
|
- end-placeholder="结束日期"
|
|
|
- >
|
|
|
- </el-date-picker>
|
|
|
+ <el-form-item prop="startTime">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="date"
|
|
|
+ type="daterange"
|
|
|
+ range-separator="至"
|
|
|
+ start-placeholder="开始日期"
|
|
|
+ end-placeholder="结束日期"
|
|
|
+ >
|
|
|
+ </el-date-picker>
|
|
|
+ </el-form-item>
|
|
|
</div>
|
|
|
<div v-if="setQuery.activationType == '天数'">
|
|
|
- <el-input
|
|
|
- v-model="setQuery.activationDay"
|
|
|
- class="item-width-100"
|
|
|
- ></el-input>
|
|
|
- 天
|
|
|
+ <el-form-item prop="activationDay">
|
|
|
+ <el-input
|
|
|
+ v-model="setQuery.activationDay"
|
|
|
+ onkeyup="this.value=this.value.replace(/\D/g,'')"
|
|
|
+ onafterpaste="this.value=this.value.replace(/\D/g,'')"
|
|
|
+ class="item-width-100"
|
|
|
+ ></el-input>
|
|
|
+ 天
|
|
|
+ </el-form-item>
|
|
|
</div>
|
|
|
</el-form-item>
|
|
|
<div
|
|
@@ -315,13 +313,16 @@
|
|
|
>
|
|
|
注:会员有效期为用户使用激活码后会员生效时间。时间段为用户使用激活码后仅在对应时间段内拥有会员权益;天数为用户使用激活码后对应天数内拥有会员权益。时间段激活码无法叠加使用,天数激活码可叠加使用累计天数。
|
|
|
</div>
|
|
|
- <el-form-item label="激活码数量:" prop="totalTicket">
|
|
|
+ <el-form-item label="激活码数量:">
|
|
|
<el-input
|
|
|
v-model="setQuery.totalTicket"
|
|
|
+ onkeyup="this.value=this.value.replace(/\D/g,'')"
|
|
|
+ onafterpaste="this.value=this.value.replace(/\D/g,'')"
|
|
|
class="item-width-100"
|
|
|
+ @blur="totalTicketChange"
|
|
|
></el-input>
|
|
|
<span style="color: red; font-size: 12px; margin-left: 10px"
|
|
|
- >注:默认为订购数量,激活码数量必须大于订购数量</span
|
|
|
+ >注:默认为订购数量,激活码数量必须大于订购数量,输入数字须为整数</span
|
|
|
>
|
|
|
</el-form-item>
|
|
|
<el-form-item label="激活码开头:" prop="startString">
|
|
@@ -330,12 +331,12 @@
|
|
|
class="item-width-100"
|
|
|
></el-input>
|
|
|
<span style="color: red; font-size: 12px; margin-left: 10px"
|
|
|
- >注:只能输入大小写英文和数字,创建激活码是放在激活码开头</span
|
|
|
+ >注:只能输入大小写英文和数字,创建激活码时放在激活码开头</span
|
|
|
>
|
|
|
</el-form-item>
|
|
|
</el-form>
|
|
|
<span slot="footer" class="dialog-footer">
|
|
|
- <el-button @click="vipDialogVisible = false">取 消</el-button>
|
|
|
+ <el-button @click="activationCancel('setQuery')">取 消</el-button>
|
|
|
<el-button
|
|
|
type="primary"
|
|
|
:loading="updataLoading"
|
|
@@ -417,11 +418,22 @@ export default {
|
|
|
},
|
|
|
rules: {
|
|
|
validDay: [
|
|
|
- { required: true, message: "请输入激活码有效期", trigger: "blur" },
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: "请输入激活码有效期且必须为整数",
|
|
|
+ trigger: "blur",
|
|
|
+ },
|
|
|
],
|
|
|
- vipSetmenu: [
|
|
|
+ selectType: [
|
|
|
{ required: true, message: "请选择会员套餐", trigger: "change" },
|
|
|
],
|
|
|
+ activationType: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: "请选择有效期(天数必须为整数)",
|
|
|
+ trigger: "change",
|
|
|
+ },
|
|
|
+ ],
|
|
|
endTime: [
|
|
|
{
|
|
|
required: true,
|
|
@@ -429,11 +441,22 @@ export default {
|
|
|
trigger: "change",
|
|
|
},
|
|
|
],
|
|
|
- totalTicket: [
|
|
|
- { required: true, message: "请输入激活码数量", trigger: "blur" },
|
|
|
+ activationDay: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: "请输入天数",
|
|
|
+ trigger: "blur",
|
|
|
+ },
|
|
|
+ ],
|
|
|
+ startTime: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ message: "请选择会员有效期",
|
|
|
+ trigger: "change",
|
|
|
+ },
|
|
|
],
|
|
|
startString: [
|
|
|
- { required: true, message: "请输入激活码开头", trigger: "blur" },
|
|
|
+ { required: true,pattern:/^[a-z0-9A-Z]+$/, message: "请正确输入激活码开头", trigger: "blur" },
|
|
|
],
|
|
|
},
|
|
|
vipDialogVisible: false,
|
|
@@ -454,13 +477,6 @@ export default {
|
|
|
};
|
|
|
},
|
|
|
watch: {
|
|
|
- // query: {
|
|
|
- // handler: debounce(function(val) {
|
|
|
- // this.getList()
|
|
|
-
|
|
|
- // }),
|
|
|
- // deep:true
|
|
|
- // },
|
|
|
date(val) {
|
|
|
if (val) {
|
|
|
this.setQuery.startTime = new Date(val[0]).getTime();
|
|
@@ -473,12 +489,22 @@ export default {
|
|
|
},
|
|
|
filters: {},
|
|
|
methods: {
|
|
|
+ // 重置表单
|
|
|
+ activationCancel() {
|
|
|
+ this.$refs["setQuery"].resetFields();
|
|
|
+ this.vipDialogVisible = false;
|
|
|
+ },
|
|
|
+ closeVipDialog(done) {
|
|
|
+ this.$refs["setQuery"].resetFields();
|
|
|
+ done();
|
|
|
+ },
|
|
|
// 生成弹窗
|
|
|
gotoGenerating(item) {
|
|
|
this.get_setmealList();
|
|
|
this.vipDialogVisible = true;
|
|
|
this.codeData = item;
|
|
|
this.setQuery.groupOrderNo = item.orderNo;
|
|
|
+ this.setQuery.totalTicket = Math.floor(item.orderNum);
|
|
|
},
|
|
|
|
|
|
// 套餐选择
|
|
@@ -488,7 +514,16 @@ export default {
|
|
|
this.setQuery.planningName = label;
|
|
|
},
|
|
|
|
|
|
- // 提交生成
|
|
|
+ // 判断激活套餐是否大于于订购数量
|
|
|
+ totalTicketChange() {
|
|
|
+ if (Math.trunc(this.codeData.orderNum) > this.setQuery.totalTicket) {
|
|
|
+ this.$message.error("激活码数量必须大于订购数量");
|
|
|
+ this.setQuery.totalTicket = "";
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ // 提交生成逻辑处理
|
|
|
vipsubmitForm(formName) {
|
|
|
this.$refs[formName].validate((valid) => {
|
|
|
if (valid) {
|
|
@@ -499,26 +534,29 @@ export default {
|
|
|
} else {
|
|
|
this.setQuery.activationType = 2;
|
|
|
}
|
|
|
- console.log(this.setQuery.activationType, "-----type");
|
|
|
- generateCode(this.setQuery).then((res) => {
|
|
|
- this.updataLoading = false;
|
|
|
- if (res.state == "Success") {
|
|
|
- this.vipDialogVisible = false;
|
|
|
- this.setQuery.validDay = "";
|
|
|
- this.setQuery.activationType = "";
|
|
|
- this.date = "";
|
|
|
- this.setQuery.totalTicket = "";
|
|
|
- setQuery.startString = "";
|
|
|
- this.getList();
|
|
|
- }
|
|
|
- });
|
|
|
+ this.submit_generateCode();
|
|
|
} else {
|
|
|
- console.log("error submit!!");
|
|
|
return false;
|
|
|
}
|
|
|
});
|
|
|
},
|
|
|
|
|
|
+ // 提交接口调用
|
|
|
+ submit_generateCode() {
|
|
|
+ generateCode(this.setQuery).then((res) => {
|
|
|
+ this.updataLoading = false;
|
|
|
+ if (res.state == "Success") {
|
|
|
+ this.vipDialogVisible = false;
|
|
|
+ this.getList();
|
|
|
+ this.setQuery.validDay = "";
|
|
|
+ this.setQuery.activationType = "";
|
|
|
+ this.date = "";
|
|
|
+ this.setQuery.totalTicket = "";
|
|
|
+ setQuery.startString = "";
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+
|
|
|
// 查看激活码
|
|
|
codeDetails(item) {
|
|
|
this.$router.push({
|
|
@@ -533,10 +571,9 @@ export default {
|
|
|
get_setmealList() {
|
|
|
this.loading = true;
|
|
|
getList().then((res) => {
|
|
|
- this.loading = false;
|
|
|
+ this.loading = false;
|
|
|
if (res.state == "Success") {
|
|
|
this.optionsList = res.content.records;
|
|
|
- this.total = res.content.total;
|
|
|
}
|
|
|
});
|
|
|
},
|