Files
EdgeAdmin/web/public/js/components/server/origin-list-box.js

84 lines
2.8 KiB
JavaScript
Raw Normal View History

2020-09-15 14:44:52 +08:00
Vue.component("origin-list-box", {
props: ["v-primary-origins", "v-backup-origins", "v-server-type", "v-params"],
data: function () {
return {
primaryOrigins: this.vPrimaryOrigins,
backupOrigins: this.vBackupOrigins
}
},
methods: {
createPrimaryOrigin: function () {
teaweb.popup("/servers/server/settings/origins/addPopup?originType=primary&" + this.vParams, {
callback: function (resp) {
window.location.reload()
}
})
},
createBackupOrigin: function () {
teaweb.popup("/servers/server/settings/origins/addPopup?originType=backup&" + this.vParams, {
callback: function (resp) {
window.location.reload()
}
})
},
updateOrigin: function (originId, originType) {
teaweb.popup("/servers/server/settings/origins/updatePopup?originType=" + originType + "&" + this.vParams + "&originId=" + originId, {
callback: function (resp) {
window.location.reload()
}
})
},
deleteOrigin: function (originId, originType) {
let that = this
teaweb.confirm("确定要删除此源站吗?", function () {
Tea.action("/servers/server/settings/origins/delete?" + that.vParams + "&originId=" + originId + "&originType=" + originType)
.post()
.success(function () {
window.location.reload()
})
})
}
},
template: `<div>
<h3>主要源站 <a href="" @click.prevent="createPrimaryOrigin()">[添加主要源站]</a> </h3>
<p class="comment" v-if="primaryOrigins.length == 0">暂时还没有优先源站</p>
<origin-list-table v-if="primaryOrigins.length > 0" :v-origins="vPrimaryOrigins" :v-origin-type="'primary'" @deleteOrigin="deleteOrigin" @updateOrigin="updateOrigin"></origin-list-table>
<h3>备用源站 <a href="" @click.prevent="createBackupOrigin()">[添加备用源站]</a></h3>
<p class="comment" v-if="backupOrigins.length == 0" :v-origins="primaryOrigins">暂时还没有备用源站</p>
<origin-list-table v-if="backupOrigins.length > 0" :v-origins="backupOrigins" :v-origin-type="'backup'" @deleteOrigin="deleteOrigin" @updateOrigin="updateOrigin"></origin-list-table>
</div>`
})
Vue.component("origin-list-table", {
props: ["v-origins", "v-origin-type"],
data: function () {
return {}
},
methods: {
deleteOrigin: function (originId) {
this.$emit("deleteOrigin", originId, this.vOriginType)
},
updateOrigin: function (originId) {
this.$emit("updateOrigin", originId, this.vOriginType)
}
},
template: `
<table class="ui table selectable">
<thead>
<tr>
<th>源站地址</th>
<th>权重</th>
<th class="two op">操作</th>
</tr>
</thead>
<tr v-for="origin in vOrigins">
<td>{{origin.addr}}</td>
<td>{{origin.weight}}</td>
<td>
<a href="" @click.prevent="updateOrigin(origin.id)">修改</a> &nbsp;
<a href="" @click.prevent="deleteOrigin(origin.id)">删除</a>
</td>
</tr>
</table>`
})