feat:add guacamole
This commit is contained in:
@@ -201,7 +201,31 @@
|
||||
|
||||
<div class="form-section-title">认证与展示</div>
|
||||
<el-form-item v-if="serverForm.server_type === 'dockerContainer'" label="Auth-ID">
|
||||
<el-input v-model="serverForm.auth_id" placeholder="节点服务器管理员的auth_id" />
|
||||
<el-input v-model="serverForm.auth_id" placeholder="服务器管理id" />
|
||||
</el-form-item>
|
||||
<el-form-item v-if="serverForm.server_type === 'hyperV'" label="Guacamole-ID">
|
||||
<el-input v-model="serverForm.guacamole_id" placeholder="guacamole服务id" />
|
||||
</el-form-item>
|
||||
<el-form-item v-if="serverForm.server_type === 'hyperV'" label="登录用户名">
|
||||
<el-input v-model="serverForm.username" placeholder="服务器登录用户名" />
|
||||
</el-form-item>
|
||||
<el-form-item v-if="serverForm.server_type === 'hyperV'" label="登录密码">
|
||||
<el-input
|
||||
v-model="serverForm.password"
|
||||
placeholder="服务器登录密码"
|
||||
type="password"
|
||||
show-password
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="serverForm.server_type === 'hyperV'" label="端口映射">
|
||||
<el-switch
|
||||
v-model="serverForm.allow_port_forward"
|
||||
:active-value="1"
|
||||
:inactive-value="0"
|
||||
active-text="开启"
|
||||
inactive-text="关闭"
|
||||
/>
|
||||
<div class="form-item-description">服务器是否开放端口映射</div>
|
||||
</el-form-item>
|
||||
<el-form-item label="Token">
|
||||
<el-input
|
||||
@@ -335,6 +359,15 @@ const rules = {
|
||||
server_ip: [
|
||||
{ required: true, message: '请输入IP地址', trigger: 'blur' },
|
||||
{ pattern: /^(\d{1,3}\.){3}\d{1,3}$/, message: '请输入有效的IP地址', trigger: 'blur' }
|
||||
],
|
||||
guacamole_id: [
|
||||
{ required: false, message: '请输入Guacamole服务ID', trigger: 'blur' }
|
||||
],
|
||||
username: [
|
||||
{ required: false, message: '请输入登录用户名', trigger: 'blur' }
|
||||
],
|
||||
password: [
|
||||
{ required: false, message: '请输入登录密码', trigger: 'blur' }
|
||||
]
|
||||
}
|
||||
|
||||
@@ -418,6 +451,8 @@ const handleAdd = () => {
|
||||
Object.keys(serverForm).forEach(key => {
|
||||
if (key === 'hide') {
|
||||
serverForm[key] = 0
|
||||
} else if (key === 'allow_port_forward') {
|
||||
serverForm[key] = 0
|
||||
} else if (key === 'server_type') {
|
||||
serverForm[key] = serverType.value
|
||||
} else {
|
||||
@@ -534,7 +569,7 @@ const submitForm = async () => {
|
||||
const formData = { ...serverForm }
|
||||
|
||||
// 转换可能的数字字段
|
||||
const numericFields = ['bandwidth', 'disk', 'memory', 'cpu', 'hide'];
|
||||
const numericFields = ['bandwidth', 'disk', 'memory', 'cpu', 'hide', 'allow_port_forward'];
|
||||
numericFields.forEach(field => {
|
||||
if (formData[field] !== '' && formData[field] !== null && formData[field] !== undefined) {
|
||||
formData[field] = Number(formData[field])
|
||||
@@ -985,6 +1020,13 @@ onMounted(async () => {
|
||||
color: #409EFF;
|
||||
}
|
||||
|
||||
.form-item-description {
|
||||
font-size: 12px;
|
||||
color: #909399;
|
||||
margin-top: 4px;
|
||||
line-height: 1.2;
|
||||
}
|
||||
|
||||
.form-grid {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
|
||||
Reference in New Issue
Block a user