|
|
@@ -9,8 +9,12 @@
|
|
|
<el-input-number v-if="key.endsWith('Time')" v-model="form[key].v" :min="60" :controls="false" :readonly="!item.isUpdate">
|
|
|
<template #suffix>秒</template>
|
|
|
</el-input-number>
|
|
|
+ <el-select v-else-if="key == 'sys.mode'" v-model="form[key].v" :disabled="!item.isUpdate">
|
|
|
+ <el-option value="box.offline"></el-option>
|
|
|
+ <el-option value="box.mixed"></el-option>
|
|
|
+ </el-select>
|
|
|
<el-input v-else v-model="form[key].v" :readonly="!item.isUpdate"></el-input>
|
|
|
-
|
|
|
+
|
|
|
<template v-if="!key.startsWith('oss.')">
|
|
|
<template v-if="item.isUpdate">
|
|
|
<el-button :loading="isSaving" type="primary" link @click="submit(item, key)">保存</el-button>
|
|
|
@@ -28,11 +32,12 @@
|
|
|
<script setup>
|
|
|
import XEUtils from "xe-utils";
|
|
|
import API from "@/api";
|
|
|
-import { defaultConfig } from "./main";
|
|
|
+import TOOL from "@/utils/tool";
|
|
|
+import { useRouter } from "vue-router";
|
|
|
|
|
|
-const configures = ref({});
|
|
|
-const form = ref({});
|
|
|
+const router = useRouter()
|
|
|
|
|
|
+const form = ref(XEUtils.clone(TOOL.data.get("CONFIGURES"), true));
|
|
|
const isSaving = ref(false);
|
|
|
|
|
|
const validateConfig = ({ field }, _, callback) => {
|
|
|
@@ -40,21 +45,9 @@ const validateConfig = ({ field }, _, callback) => {
|
|
|
callback()
|
|
|
}
|
|
|
|
|
|
-const getConfig = () => {
|
|
|
- API.system.configure.get().then(res => {
|
|
|
- if (res.code == 200) {
|
|
|
- configures.value = XEUtils.clone(XEUtils.get(res, "expands._configures"), true);
|
|
|
- form.value = XEUtils.clone(XEUtils.get(res, "expands._configures"), true);
|
|
|
- } else throw res.message;
|
|
|
- }).catch(() => {
|
|
|
- configures.value = {};
|
|
|
- form.value = {};
|
|
|
- });
|
|
|
-}
|
|
|
-
|
|
|
const resetItem = (item, keyName) => {
|
|
|
XEUtils.set(item, "isUpdate", false);
|
|
|
- XEUtils.set(item, "v", XEUtils.get(configures.value, keyName).v);
|
|
|
+ XEUtils.set(item, "v", XEUtils.get(TOOL.data.get("CONFIGURES"), keyName).v);
|
|
|
formRef.value.validateField(keyName);
|
|
|
}
|
|
|
|
|
|
@@ -74,9 +67,13 @@ const submit = (item, keyName) => {
|
|
|
API.system.configure.edit({ keyName, v: item.v }).then(res => {
|
|
|
if (res.code == 200) {
|
|
|
isSaving.value = false;
|
|
|
- ElMessage.success("操作成功");
|
|
|
- API.system.configure.reload();
|
|
|
- XEUtils.set(item, "isUpdate", false);
|
|
|
+ API.system.configure.reload().then(response => {
|
|
|
+ if (response.code == 200) {
|
|
|
+ ElMessage.success("操作成功");
|
|
|
+ XEUtils.set(item, "isUpdate", false);
|
|
|
+ if (keyName == "sys.mode" && item.v != XEUtils.get(TOOL.data.get("CONFIGURES"), keyName).v) router.go(0);
|
|
|
+ }
|
|
|
+ });
|
|
|
} else throw res.message;
|
|
|
}).catch(() => isSaving.value = false);
|
|
|
} else {
|
|
|
@@ -84,14 +81,20 @@ const submit = (item, keyName) => {
|
|
|
}
|
|
|
});
|
|
|
}
|
|
|
-
|
|
|
-getConfig();
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|
|
|
.el-card :deep(.el-card__body) {padding-top: calc(var(--el-card-padding) + 18px);}
|
|
|
|
|
|
.el-button {margin-left: 12px;}
|
|
|
-.el-input, .el-input-number {flex: 1;width: unset;}
|
|
|
+
|
|
|
+.el-select, .el-input, .el-input-number {flex: 1;width: unset;}
|
|
|
.el-input-number :deep(.el-input__inner) {text-align: unset;}
|
|
|
+
|
|
|
+.el-select :deep(.el-select__wrapper.is-disabled) {
|
|
|
+ background-color: var(--el-fill-color-blank);cursor: pointer;
|
|
|
+ &:hover {box-shadow: 0 0 0 1px var(--el-border-color-hover) inset;}
|
|
|
+
|
|
|
+ .el-select__selected-item {color: var(--el-input-text-color,var(--el-text-color-regular));}
|
|
|
+}
|
|
|
</style>
|