🔨 修改额外配置字段名称.
This commit is contained in:
@@ -50,20 +50,23 @@ export interface HostLabelExtraSettingModel {
|
|||||||
export interface HostSpecExtraModel {
|
export interface HostSpecExtraModel {
|
||||||
sn: string;
|
sn: string;
|
||||||
osName: string;
|
osName: string;
|
||||||
cpuCore: number;
|
cpuCount: number;
|
||||||
|
cpuPhysicalCore: number;
|
||||||
|
cpuLogicalCore: number;
|
||||||
cpuFrequency: number;
|
cpuFrequency: number;
|
||||||
cpuModel: string;
|
cpuModel: string;
|
||||||
memorySize: number;
|
memorySize: number;
|
||||||
diskSize: number;
|
diskSize: number;
|
||||||
inBandwidth: number;
|
inBandwidth: number;
|
||||||
outBandwidth: number;
|
outBandwidth: number;
|
||||||
publicIpAddress: Array<string>;
|
publicIpAddresses: Array<string>;
|
||||||
privateIpAddress: Array<string>;
|
privateIpAddresses: Array<string>;
|
||||||
chargePerson: string;
|
chargePerson: string;
|
||||||
createdTime: number;
|
createdTime: number;
|
||||||
expiredTime: number;
|
expiredTime: number;
|
||||||
items: Array<{
|
items: Array<{
|
||||||
label: string;
|
label: string;
|
||||||
|
key?: string;
|
||||||
value: string;
|
value: string;
|
||||||
}>;
|
}>;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -163,7 +163,7 @@
|
|||||||
<span v-if="record.spec">
|
<span v-if="record.spec">
|
||||||
{{
|
{{
|
||||||
[
|
[
|
||||||
addSuffix(record.spec.cpuCore, 'C'),
|
addSuffix(record.spec.cpuPhysicalCore, 'C'),
|
||||||
addSuffix(record.spec.memorySize, 'G'),
|
addSuffix(record.spec.memorySize, 'G'),
|
||||||
addSuffix(record.spec.diskSize, 'G')
|
addSuffix(record.spec.diskSize, 'G')
|
||||||
].filter(Boolean).join('/') || '-'
|
].filter(Boolean).join('/') || '-'
|
||||||
|
|||||||
@@ -32,12 +32,22 @@
|
|||||||
<!-- CPU核心数 -->
|
<!-- CPU核心数 -->
|
||||||
<a-descriptions-item label="CPU核心数">
|
<a-descriptions-item label="CPU核心数">
|
||||||
<a-input-number v-if="editing"
|
<a-input-number v-if="editing"
|
||||||
v-model="formModel.cpuCore"
|
v-model="formModel.cpuPhysicalCore"
|
||||||
class="input"
|
class="input"
|
||||||
size="mini"
|
size="mini"
|
||||||
hide-button
|
hide-button
|
||||||
allow-clear />
|
allow-clear />
|
||||||
<span v-else class="text">{{ formModel.cpuCore }}</span>
|
<span v-else class="text">{{ formModel.cpuPhysicalCore }}</span>
|
||||||
|
</a-descriptions-item>
|
||||||
|
<!-- CPU线程数 -->
|
||||||
|
<a-descriptions-item label="CPU线程数">
|
||||||
|
<a-input-number v-if="editing"
|
||||||
|
v-model="formModel.cpuLogicalCore"
|
||||||
|
class="input"
|
||||||
|
size="mini"
|
||||||
|
hide-button
|
||||||
|
allow-clear />
|
||||||
|
<span v-else class="text">{{ formModel.cpuLogicalCore }}</span>
|
||||||
</a-descriptions-item>
|
</a-descriptions-item>
|
||||||
<!-- CPU速率 -->
|
<!-- CPU速率 -->
|
||||||
<a-descriptions-item label="CPU速率">
|
<a-descriptions-item label="CPU速率">
|
||||||
@@ -111,43 +121,19 @@
|
|||||||
</a-descriptions-item>
|
</a-descriptions-item>
|
||||||
<!-- 公网地址 -->
|
<!-- 公网地址 -->
|
||||||
<a-descriptions-item label="公网地址" :span="2">
|
<a-descriptions-item label="公网地址" :span="2">
|
||||||
<a-select v-if="editing"
|
<a-input-tag v-model="formModel.publicIpAddresses"
|
||||||
v-model="formModel.publicIpAddress"
|
:readonly="!editing"
|
||||||
class="input"
|
class="input"
|
||||||
size="mini"
|
size="mini"
|
||||||
multiple
|
allow-clear />
|
||||||
hide-button
|
|
||||||
allow-create
|
|
||||||
allow-clear />
|
|
||||||
<a-space v-else-if="formModel.publicIpAddress?.length"
|
|
||||||
class="text"
|
|
||||||
style="margin-bottom: -8px;"
|
|
||||||
wrap>
|
|
||||||
<a-tag v-for="addr in formModel.publicIpAddress">
|
|
||||||
{{ addr }}
|
|
||||||
</a-tag>
|
|
||||||
</a-space>
|
|
||||||
<span v-else class="text" />
|
|
||||||
</a-descriptions-item>
|
</a-descriptions-item>
|
||||||
<!-- 私网地址 -->
|
<!-- 私网地址 -->
|
||||||
<a-descriptions-item label="私网地址" :span="2">
|
<a-descriptions-item label="私网地址" :span="2">
|
||||||
<a-select v-if="editing"
|
<a-input-tag v-model="formModel.privateIpAddresses"
|
||||||
v-model="formModel.privateIpAddress"
|
:readonly="!editing"
|
||||||
class="input"
|
class="input"
|
||||||
size="mini"
|
size="mini"
|
||||||
multiple
|
allow-clear />
|
||||||
hide-button
|
|
||||||
allow-create
|
|
||||||
allow-clear />
|
|
||||||
<a-space v-else-if="formModel.privateIpAddress?.length"
|
|
||||||
class="text"
|
|
||||||
style="margin-bottom: -8px;"
|
|
||||||
wrap>
|
|
||||||
<a-tag v-for="addr in formModel.privateIpAddress">
|
|
||||||
{{ addr }}
|
|
||||||
</a-tag>
|
|
||||||
</a-space>
|
|
||||||
<span v-else class="text" />
|
|
||||||
</a-descriptions-item>
|
</a-descriptions-item>
|
||||||
<!-- 负责人 -->
|
<!-- 负责人 -->
|
||||||
<a-descriptions-item label="负责人" :span="2">
|
<a-descriptions-item label="负责人" :span="2">
|
||||||
@@ -221,16 +207,24 @@
|
|||||||
<a-button v-if="!editing"
|
<a-button v-if="!editing"
|
||||||
type="primary"
|
type="primary"
|
||||||
long
|
long
|
||||||
@click="toggleEditing()">
|
@click="toggleEditing">
|
||||||
编辑
|
编辑
|
||||||
</a-button>
|
</a-button>
|
||||||
<!-- 保存 -->
|
<!-- 保存 -->
|
||||||
<a-button v-else
|
<a-button v-if="editing"
|
||||||
type="primary"
|
type="primary"
|
||||||
long
|
long
|
||||||
@click="saveSpec">
|
@click="saveSpec">
|
||||||
保存
|
保存
|
||||||
</a-button>
|
</a-button>
|
||||||
|
<!-- 取消 -->
|
||||||
|
<a-button v-if="editing"
|
||||||
|
class="extra-button"
|
||||||
|
type="primary"
|
||||||
|
long
|
||||||
|
@click="fetchHostSpec">
|
||||||
|
取消
|
||||||
|
</a-button>
|
||||||
<!-- 新增规格 -->
|
<!-- 新增规格 -->
|
||||||
<a-button v-if="editing"
|
<a-button v-if="editing"
|
||||||
class="extra-button"
|
class="extra-button"
|
||||||
@@ -266,12 +260,12 @@
|
|||||||
const { loading, setLoading } = useLoading();
|
const { loading, setLoading } = useLoading();
|
||||||
const [editing, toggleEditing] = useToggle();
|
const [editing, toggleEditing] = useToggle();
|
||||||
|
|
||||||
const formRef = ref();
|
|
||||||
const formModel = ref<HostSpecExtraModel>({} as HostSpecExtraModel);
|
const formModel = ref<HostSpecExtraModel>({} as HostSpecExtraModel);
|
||||||
|
|
||||||
// 加载配置
|
// 加载配置
|
||||||
const fetchHostSpec = async () => {
|
const fetchHostSpec = async () => {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
|
editing.value = false;
|
||||||
try {
|
try {
|
||||||
const { data } = await getHostExtraItem<HostSpecExtraModel>({ hostId: props.hostId, item: 'SPEC' });
|
const { data } = await getHostExtraItem<HostSpecExtraModel>({ hostId: props.hostId, item: 'SPEC' });
|
||||||
formModel.value = data;
|
formModel.value = data;
|
||||||
@@ -298,6 +292,13 @@
|
|||||||
const saveSpec = async () => {
|
const saveSpec = async () => {
|
||||||
setLoading(true);
|
setLoading(true);
|
||||||
try {
|
try {
|
||||||
|
// 设置额外配置的 key
|
||||||
|
if (formModel.value.items?.length) {
|
||||||
|
formModel.value.items.forEach(s => {
|
||||||
|
s.key = s.label;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
// 更新
|
||||||
await updateHostSpec({
|
await updateHostSpec({
|
||||||
hostId: props.hostId,
|
hostId: props.hostId,
|
||||||
extra: JSON.stringify(formModel.value)
|
extra: JSON.stringify(formModel.value)
|
||||||
|
|||||||
@@ -191,7 +191,7 @@
|
|||||||
<span v-if="record.spec" class="spec-value text-ellipsis">
|
<span v-if="record.spec" class="spec-value text-ellipsis">
|
||||||
{{
|
{{
|
||||||
[
|
[
|
||||||
addSuffix(record.spec.cpuCore, 'C'),
|
addSuffix(record.spec.cpuPhysicalCore, 'C'),
|
||||||
addSuffix(record.spec.memorySize, 'G'),
|
addSuffix(record.spec.memorySize, 'G'),
|
||||||
addSuffix(record.spec.diskSize, 'G')
|
addSuffix(record.spec.diskSize, 'G')
|
||||||
].filter(Boolean).join(' / ') || '-'
|
].filter(Boolean).join(' / ') || '-'
|
||||||
|
|||||||
Reference in New Issue
Block a user