Files
EdgeAdmin/web/public/js/components/server/script-config-box.js

89 lines
2.4 KiB
JavaScript
Raw Normal View History

2021-12-31 15:20:59 +08:00
Vue.component("script-config-box", {
2023-12-23 20:54:37 +08:00
props: ["id", "v-script-config", "comment", "v-auditing-status"],
mounted: function () {
let that = this
setTimeout(function () {
that.$forceUpdate()
}, 100)
},
2021-12-31 15:20:59 +08:00
data: function () {
let config = this.vScriptConfig
if (config == null) {
config = {
isPrior: false,
isOn: false,
2023-12-23 20:54:37 +08:00
code: "",
auditingCode: ""
}
}
let auditingStatus = null
if (config.auditingCodeMD5 != null && config.auditingCodeMD5.length > 0 && config.auditingCode != null && config.auditingCode.length > 0) {
config.code = config.auditingCode
if (this.vAuditingStatus != null) {
for (let i = 0; i < this.vAuditingStatus.length; i++) {
let status = this.vAuditingStatus[i]
if (status.md5 == config.auditingCodeMD5) {
auditingStatus = status
break
}
}
2021-12-31 15:20:59 +08:00
}
}
if (config.code.length == 0) {
config.code = "\n\n\n\n"
}
return {
2023-12-23 20:54:37 +08:00
config: config,
auditingStatus: auditingStatus
2021-12-31 15:20:59 +08:00
}
},
watch: {
"config.isOn": function () {
this.change()
}
},
methods: {
change: function () {
this.$emit("change", this.config)
},
changeCode: function (code) {
this.config.code = code
this.change()
2023-12-23 20:54:37 +08:00
},
isPlus: function () {
if (Tea == null || Tea.Vue == null) {
return false
}
return Tea.Vue.teaIsPlus
2021-12-31 15:20:59 +08:00
}
},
template: `<div>
<table class="ui table definition selectable">
<tbody>
<tr>
2022-12-01 14:40:17 +08:00
<td class="title">启用脚本设置</td>
2021-12-31 15:20:59 +08:00
<td><checkbox v-model="config.isOn"></checkbox></td>
</tr>
</tbody>
<tbody>
<tr :style="{opacity: !config.isOn ? 0.5 : 1}">
<td>脚本代码</td>
2023-12-23 20:54:37 +08:00
<td>
<p class="comment" v-if="auditingStatus != null">
<span class="green" v-if="auditingStatus.isPassed">管理员审核结果审核通过</span>
<span class="red" v-else-if="auditingStatus.isRejected">管理员审核结果驳回 &nbsp; &nbsp; 驳回理由{{auditingStatus.rejectedReason}}</span>
<span class="red" v-else>当前脚本将在审核后生效请耐心等待审核结果 <a href="/servers/user-scripts" target="_blank" v-if="isPlus()">去审核 &raquo;</a></span>
</p>
<p class="comment" v-if="auditingStatus == null"><span class="green">管理员审核结果审核通过</span></p>
<source-code-box :id="id" type="text/javascript" :read-only="false" @change="changeCode">{{config.code}}</source-code-box>
2021-12-31 15:20:59 +08:00
<p class="comment">{{comment}}</p>
</td>
</tr>
</tbody>
</table>
</div>`
})