1、取消自动续费价格显示

2、增加清除数据
3、默认自动续期开启
This commit is contained in:
2025-07-29 18:15:29 +08:00
parent 5078ba1f79
commit 096b346d54
2 changed files with 146 additions and 41 deletions

View File

@ -174,14 +174,8 @@
@click="handleGetProxy" @click="handleGetProxy"
>获取代理</vs-button >获取代理</vs-button
> >
<!-- <vs-button
color="warning" <vs-button color="danger" type="filled" size="small" @click="handleClearProxy">清除数据</vs-button>
type="border"
size="small"
@click="handleRecharge"
>
余额充值
</vs-button> -->
</div> </div>
</div> </div>
@ -224,6 +218,7 @@
@click="handleShowGetSms" @click="handleShowGetSms"
>租赁号码</vs-button >租赁号码</vs-button
> >
<vs-button color="danger" type="filled" size="small" @click="handleClearSms">清除数据</vs-button>
</div> </div>
</div> </div>
@ -233,12 +228,8 @@
<vs-th> ID</vs-th> <vs-th> ID</vs-th>
<vs-th> 国家/地区 </vs-th> <vs-th> 国家/地区 </vs-th>
<vs-th> 城市 </vs-th> <vs-th> 城市 </vs-th>
<!-- <vs-th> 端口 </vs-th>
<vs-th> 账号 </vs-th>
<vs-th> 密码 </vs-th> -->
<vs-th> 状态 </vs-th> <vs-th> 状态 </vs-th>
<vs-th> 过期时间 </vs-th> <vs-th> 过期时间 </vs-th>
<!-- <vs-th> 自动续费 </vs-th> -->
<vs-th> 操作 </vs-th> <vs-th> 操作 </vs-th>
</template> </template>
@ -286,21 +277,6 @@
<vs-button color="warning"class="operat-btn" size="small" @click="handleDeleteProxy(data[indextr])"> <vs-button color="warning"class="operat-btn" size="small" @click="handleDeleteProxy(data[indextr])">
删除 删除
</vs-button> </vs-button>
<!-- <vs-button
style="margin-left: 10px"
class="operat-btn"
v-if="data[indextr].status === 1"
size="small"
color="primary"
@click="handleResetGenerateProxy(data[indextr])"
>重置</vs-button
> -->
<!-- <vs-button v-if="data[indextr].status === 1"
color="rgb(187, 138, 200)"
class="operat-btn"
text-color="warning"
size="small"
@click="renewal(data[indextr])">续期</vs-button> -->
</vs-td> </vs-td>
</vs-tr> </vs-tr>
</template> </template>
@ -535,13 +511,10 @@
> >
<div style="text-align: right"> <div style="text-align: right">
<div style=" display: flex;align-items: center;scrollbar-gutter: 20px;column-gap: 20px;justify-content: right;"> <div style=" display: flex;align-items: center;scrollbar-gutter: 20px;column-gap: 20px;justify-content: right;">
<span>价格U: {{this.price}}</span> <vs-button olor="primary" type="border" @click="getIpList" <span>价格U: {{this.price}}</span> <vs-button olor="primary" type="border" size="small" @click="getIpList"
>刷新</vs-button >刷新</vs-button
> >
</div> </div>
<vs-table :data="useList" class="tablex"> <vs-table :data="useList" class="tablex">
<template slot="thead"> <template slot="thead">
<vs-th class="table-cell-center"> IP </vs-th> <vs-th class="table-cell-center"> IP </vs-th>
@ -566,6 +539,7 @@
<vs-td :data="data[indextr].id" class="table-cell-center"> <vs-td :data="data[indextr].id" class="table-cell-center">
<vs-button <vs-button
color="primary" color="primary"
size="small"
@click="handleUseProxy(data[indextr])" @click="handleUseProxy(data[indextr])"
>提取</vs-button >提取</vs-button
> >
@ -1276,17 +1250,17 @@
}, },
handleActiveMenu(index) { handleActiveMenu(index) {
this.activeMenu = index; this.activeMenu = index;
console.log('index',index);
switch(index){ switch(index){
case 1: case 1:
case 2: case 2:
this.query.page=1; this.query.page=1;
this.query.total=0; this.query.total=1;
this.reloadList(); this.reloadList();
break; break;
case 3: case 3:
this.smsQuery.page=1; this.smsQuery.page=1;
this.smsQuery.total=0; this.smsQuery.total=1;
this.smsForm.type=0; this.smsForm.type=0;
this.smsForm.serviceCode=""; this.smsForm.serviceCode="";
this.smsForm.period=undefined; this.smsForm.period=undefined;
@ -1295,7 +1269,7 @@
break; break;
case 4: case 4:
this.smsQuery.page=1; this.smsQuery.page=1;
this.smsQuery.total=0; this.smsQuery.total=1;
this.smsForm.type=1; this.smsForm.type=1;
this.smsForm.serviceCode=""; this.smsForm.serviceCode="";
this.smsForm.period=undefined; this.smsForm.period=undefined;
@ -1309,6 +1283,7 @@
this.getMyProxy(); this.getMyProxy();
}, },
getMyProxy() { getMyProxy() {
console.log("触发getMyProxy");
this.showLoading(); this.showLoading();
let query = { let query = {
type: this.activeMenu, type: this.activeMenu,
@ -1336,7 +1311,9 @@
response.data.count / this.query.pageSize response.data.count / this.query.pageSize
); );
if(this.query.total!==total){
this.query.total = total; this.query.total = total;
}
} }
}) })
.catch((error) => { .catch((error) => {
@ -1529,13 +1506,11 @@
// 切换状态 // 切换状态
async onSwitchChange(val,row,index){ async onSwitchChange(val,row,index){
let text = val?'启用':'取消'; let text = val?'启用':'取消';
let price=await this.getPriceByKey("long_number_renew_deduction_standard")
let tip=val?`费用:${price}U/30天`:'';
this.$vs.dialog({ this.$vs.dialog({
color:"primary", color:"primary",
title:"提示", title:"提示",
text: `${tip}确定${text}自动续期吗?`, text: `确定${text}自动续期吗?`,
acceptText:"确定", acceptText:"确定",
accept:() => this.doSwitchProxyAutoRenewal(row,val) accept:() => this.doSwitchProxyAutoRenewal(row,val)
}); });
@ -2026,10 +2001,9 @@
}, },
//长效号码续期状态修改 //长效号码续期状态修改
async handleSmsRenew(val,row,index){ async handleSmsRenew(val,row,index){
let price=await this.getPriceByKey("long_number_renew_deduction_standard")
const newState=val?1:2; const newState=val?1:2;
const originalState = row.autoRenewal; const originalState = row.autoRenewal;
const title=val?`续费标准 ${price}U/30天 确定要对[${row.phone}]的短信服务续期吗?`:"确认取消自动续费吗?"; const title=val?`确定要对[${row.phone}]的短信服务续期吗?`:"确认取消自动续费吗?";
this.$vs.dialog({ this.$vs.dialog({
color:"primary", color:"primary",
title: `提示`, title: `提示`,
@ -2138,7 +2112,137 @@
.finally(() => { .finally(() => {
this.hiddenLoading(); this.hiddenLoading();
}) })
} },
//清理代理
handleClearProxy(){
let type,typeName;
switch(this.activeMenu){
case 1:
type=1;
typeName="长效ip";
break;
case 2:
type=2;
typeName="短效ip";
break;
default:
break;
}
this.$vs.dialog({
color:"primary",
title:"提示",
text:`确认清理${typeName}数据吗?`,
acceptText:"确定",
accept:()=>this.doCleanProxy(type)
})
},
doCleanProxy(type){
this.showLoading();
let data = JSON.stringify({
type:type});
fetch(requestApi + "/member-proxy/clean", {
headers: {
Authorization: `Bearer ${this.token}`,
"Content-Type": "application/json",
Accept: "application/json",
},
method: "DELETE",
body: data,
})
.then((res) => res.json())
.then((response) => {
if (response.code === 200) {
this.$vs.notify({
title: "提示",
color: "success",
text: "清理成功",
position: "top-right",
});
this.getMyProxy();
} else {
this.$vs.notify({
title: "提示",
color: "danger",
text: response.msg,
position: "top-right",
});
}
})
.catch((error) => {
console.log(error);
})
.finally(() => {
this.hiddenLoading();
});
},
//清理短信
handleClearSms(){
let type,typeName;
switch(this.activeMenu){
case 4:
type=1;
typeName="长效号码";
break;
case 3:
type=0;
typeName="短效号码";
break;
default:
break;
}
this.$vs.dialog({
color:"primary",
title:"提示",
text:`确认清理${typeName}数据吗?`,
acceptText:"确定",
accept:()=>this.doCleanSms(type)
})
},
doCleanSms(type){
this.showLoading();
let data = JSON.stringify({
type:type});
fetch(requestApi + "/sms-phone/clean", {
headers: {
Authorization: `Bearer ${this.token}`,
"Content-Type": "application/json",
Accept: "application/json",
},
method: "DELETE",
body: data,
})
.then((res) => res.json())
.then((response) => {
if (response.code === 200) {
this.$vs.notify({
title: "提示",
color: "success",
text: "清理成功",
position: "top-right",
});
this.getSmsList();
} else {
this.$vs.notify({
title: "提示",
color: "danger",
text: response.msg,
position: "top-right",
});
}
})
.catch((error) => {
console.log(error);
})
.finally(() => {
this.hiddenLoading();
});
},
}, },
}); });
</script> </script>

View File

@ -9,6 +9,7 @@ if (window.location.protocol === "file:") {
// 部署到服务器时自动适配 // 部署到服务器时自动适配
requestApi = `${window.location.protocol}//${window.location.host}/api/v1`; requestApi = `${window.location.protocol}//${window.location.host}/api/v1`;
} }
// requestApi="https://proxy.apiapl.com/api/v1"
let kwdValue = new URLSearchParams(window.location.search).get('kwd'); let kwdValue = new URLSearchParams(window.location.search).get('kwd');
let invitCode = new URLSearchParams(window.location.search).get('code'); let invitCode = new URLSearchParams(window.location.search).get('code');