|
|
@ -1,7 +1,7 @@ |
|
|
|
<script setup> |
|
|
|
<script setup> |
|
|
|
import {onBeforeMount, ref, computed} from "vue"; |
|
|
|
import {onBeforeMount, ref, computed} from "vue"; |
|
|
|
import {useStore} from "vuex"; |
|
|
|
import {useStore} from "vuex"; |
|
|
|
import {get_git_ver, get_update_option, handle_update} from "@/apis/update.js" |
|
|
|
import {get_git_ver, get_update_alter, get_update_option, handle_update} from "@/apis/update.js" |
|
|
|
import Tips from "@/components/update/Tips.vue" |
|
|
|
import Tips from "@/components/update/Tips.vue" |
|
|
|
import config from "@/request/config.js" |
|
|
|
import config from "@/request/config.js" |
|
|
|
import ProcessIcon from "@/components/update/ProcessIcon.vue"; |
|
|
|
import ProcessIcon from "@/components/update/ProcessIcon.vue"; |
|
|
@ -16,6 +16,10 @@ const props = defineProps({ |
|
|
|
type: String, |
|
|
|
type: String, |
|
|
|
default: '' |
|
|
|
default: '' |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
ver_id: { |
|
|
|
|
|
|
|
type: Number, |
|
|
|
|
|
|
|
default: 0 |
|
|
|
|
|
|
|
} |
|
|
|
}) |
|
|
|
}) |
|
|
|
|
|
|
|
|
|
|
|
// 配置状态 |
|
|
|
// 配置状态 |
|
|
@ -153,6 +157,23 @@ onBeforeMount(async () => { |
|
|
|
}) |
|
|
|
}) |
|
|
|
// endregion |
|
|
|
// endregion |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// region 获取升级警告 |
|
|
|
|
|
|
|
const updateAlter = ref([]) |
|
|
|
|
|
|
|
onBeforeMount( |
|
|
|
|
|
|
|
async () => { |
|
|
|
|
|
|
|
await get_update_alter().then( |
|
|
|
|
|
|
|
res => { |
|
|
|
|
|
|
|
if (Array.isArray(res)) { |
|
|
|
|
|
|
|
updateAlter.value = [...res] |
|
|
|
|
|
|
|
console.log(updateAlter.value) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
).catch(err => { |
|
|
|
|
|
|
|
console.log(err) |
|
|
|
|
|
|
|
}) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
// region 获取升级命令的功能 |
|
|
|
// region 获取升级命令的功能 |
|
|
|
const updateCmd = ref({setup: [], teardown: [], sql: [], config: [], client: []}) |
|
|
|
const updateCmd = ref({setup: [], teardown: [], sql: [], config: [], client: []}) |
|
|
|
|
|
|
|
|
|
|
@ -188,6 +209,38 @@ onBeforeMount( |
|
|
|
) |
|
|
|
) |
|
|
|
//endregion |
|
|
|
//endregion |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// region 处理版本依赖 |
|
|
|
|
|
|
|
let selectedVerId = ref('9999') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
const handleChangeVersion = () => { |
|
|
|
|
|
|
|
git_ver.value.forEach( |
|
|
|
|
|
|
|
(item, index) => { |
|
|
|
|
|
|
|
if (item.short_release === selectedVersion.value) { |
|
|
|
|
|
|
|
selectedVerId.value = item.ver_id |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
// endregion |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 切换版本事件 |
|
|
|
|
|
|
|
const changeVersion = () => { |
|
|
|
|
|
|
|
handleChangeVersion() |
|
|
|
|
|
|
|
handleUpdateAlter() |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
// endregion |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// region 处理版本警告 |
|
|
|
|
|
|
|
const handleUpdateAlter = () => { |
|
|
|
|
|
|
|
updateAlter.value.forEach( |
|
|
|
|
|
|
|
(item, index) => { |
|
|
|
|
|
|
|
if (selectedVerId.value < item.ver_id && props.ver_id >= item.ver_id) { |
|
|
|
|
|
|
|
alert("当前版本为" + props.ver_id + ":" + item.alter) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// region 处理按键文案 |
|
|
|
// region 处理按键文案 |
|
|
|
let updateBtn = ref("更新") |
|
|
|
let updateBtn = ref("更新") |
|
|
|
const handleBtnName = (ip) => { |
|
|
|
const handleBtnName = (ip) => { |
|
|
@ -333,7 +386,7 @@ const handleUpdate = async () => { |
|
|
|
:close-on-click-modal="false" @opened="handleOpened" @close="handleClose"> |
|
|
|
:close-on-click-modal="false" @opened="handleOpened" @close="handleClose"> |
|
|
|
<div><span class="update">更新单机:</span><span class="ip">{{ ip }}</span><span>目标版本:</span> |
|
|
|
<div><span class="update">更新单机:</span><span class="ip">{{ ip }}</span><span>目标版本:</span> |
|
|
|
|
|
|
|
|
|
|
|
<el-select v-model="selectedVersion" :disabled="disableAll"> |
|
|
|
<el-select v-model="selectedVersion" :disabled="disableAll" @change="changeVersion"> |
|
|
|
<el-option v-for="ver in git_ver" :label="ver.short_release" :value="ver.short_release" |
|
|
|
<el-option v-for="ver in git_ver" :label="ver.short_release" :value="ver.short_release" |
|
|
|
:key="ver.id"></el-option> |
|
|
|
:key="ver.id"></el-option> |
|
|
|
</el-select> |
|
|
|
</el-select> |
|
|
@ -346,7 +399,7 @@ const handleUpdate = async () => { |
|
|
|
<ProcessIcon v-if="showStatusTips" class="process_icon" |
|
|
|
<ProcessIcon v-if="showStatusTips" class="process_icon" |
|
|
|
:exec-status="updateStatus.setup"/> |
|
|
|
:exec-status="updateStatus.setup"/> |
|
|
|
</el-divider> |
|
|
|
</el-divider> |
|
|
|
<el-checkbox v-for="cmd in updateCmd.setup" :label="cmd.id" :key="cmd.id" |
|
|
|
<el-checkbox v-for="cmd in updateCmd.setup" v-if="true" :label="cmd.id" :key="cmd.id" |
|
|
|
:checked="cmd.is_checked" :disabled="cmd.is_force">{{ cmd.desc }} |
|
|
|
:checked="cmd.is_checked" :disabled="cmd.is_force">{{ cmd.desc }} |
|
|
|
<tips v-if="cmd.comment !==''" title="设置说明" :width="400" :content="cmd.comment"></tips> |
|
|
|
<tips v-if="cmd.comment !==''" title="设置说明" :width="400" :content="cmd.comment"></tips> |
|
|
|
</el-checkbox> |
|
|
|
</el-checkbox> |
|
|
@ -374,10 +427,12 @@ const handleUpdate = async () => { |
|
|
|
<ProcessIcon v-if="showStatusTips" class="process_icon" |
|
|
|
<ProcessIcon v-if="showStatusTips" class="process_icon" |
|
|
|
:exec-status="updateStatus.config"/> |
|
|
|
:exec-status="updateStatus.config"/> |
|
|
|
</el-divider> |
|
|
|
</el-divider> |
|
|
|
<el-checkbox v-for="cmd in updateCmd.config" :label="cmd.id" :key="cmd.id" |
|
|
|
<template v-for="cmd in updateCmd.config"> |
|
|
|
|
|
|
|
<el-checkbox v-if="selectedVerId >= cmd.ver_id" :label="cmd.id" :key="cmd.id" |
|
|
|
:checked="cmd.is_checked" :disabled="cmd.is_force">{{ cmd.desc }} |
|
|
|
:checked="cmd.is_checked" :disabled="cmd.is_force">{{ cmd.desc }} |
|
|
|
<tips v-if="cmd.comment !==''" title="设置说明" :width="400" :content="cmd.comment"></tips> |
|
|
|
<tips v-if="cmd.comment !==''" title="设置说明" :width="400" :content="cmd.comment"></tips> |
|
|
|
</el-checkbox> |
|
|
|
</el-checkbox> |
|
|
|
|
|
|
|
</template> |
|
|
|
<el-divider content-position="left"> |
|
|
|
<el-divider content-position="left"> |
|
|
|
<span class="cmd_label">客户端</span> |
|
|
|
<span class="cmd_label">客户端</span> |
|
|
|
<ProcessIcon v-if="showStatusTips" class="process_icon" |
|
|
|
<ProcessIcon v-if="showStatusTips" class="process_icon" |
|
|
|