|
|
@@ -1,248 +0,0 @@
|
|
|
-<script setup lang="tsx">
|
|
|
-import { ElButton, ElSwitch, ElDrawer, ElForm, ElFormItem, ElInput } from 'element-plus'
|
|
|
-import { ContentWrap } from '@/components/ContentWrap'
|
|
|
-import { useI18n } from '@/hooks/web/useI18n'
|
|
|
-import { Table, TableColumn } from '@/components/Table'
|
|
|
-import { HotVersionData } from '@/api/version/types'
|
|
|
-import { ref, h, reactive } from 'vue'
|
|
|
-import { BaseButton } from '@/components/Button'
|
|
|
-import { editHotVersionApi, getHotVersionListApi, newHotVersionApi } from '@/api/version'
|
|
|
-
|
|
|
-interface Params {
|
|
|
- pageIndex?: number
|
|
|
- pageSize?: number
|
|
|
-}
|
|
|
-
|
|
|
-const { t } = useI18n()
|
|
|
-
|
|
|
-const columns: TableColumn[] = [
|
|
|
- {
|
|
|
- field: 'proj',
|
|
|
- label: t('version_client.proj')
|
|
|
- },
|
|
|
- {
|
|
|
- field: 'os',
|
|
|
- label: t('version_client.os')
|
|
|
- },
|
|
|
- {
|
|
|
- field: 'packageUrl',
|
|
|
- label: t('version_client.packageUrl')
|
|
|
- },
|
|
|
- {
|
|
|
- field: 'remoteManifestUrl',
|
|
|
- label: t('version_client.remoteManifestUrl')
|
|
|
- },
|
|
|
- {
|
|
|
- field: 'remoteVersionUrl',
|
|
|
- label: t('version_client.remoteVersionUrl')
|
|
|
- },
|
|
|
- {
|
|
|
- field: 'default',
|
|
|
- label: t('version_client.default'),
|
|
|
- slots: {
|
|
|
- default: (data) => {
|
|
|
- return (
|
|
|
- <ElSwitch
|
|
|
- modelValue={data.row.status == 1 ? true : false}
|
|
|
- onUpdate:modelValue={(val) => updateDefaultStatus(data.row, val)}
|
|
|
- class="ml-2"
|
|
|
- style="--ElSwitch-on-color: #13ce66; --ElSwitch-off-color: #ff4949"
|
|
|
- />
|
|
|
- )
|
|
|
- }
|
|
|
- }
|
|
|
- },
|
|
|
- {
|
|
|
- field: 'action',
|
|
|
- label: t('version_client.action'),
|
|
|
- slots: {
|
|
|
- default: (data) => {
|
|
|
- return (
|
|
|
- <>
|
|
|
- <BaseButton type="primary" onClick={() => actionFn('edit', data.row)}>
|
|
|
- {t('version_client.action')}
|
|
|
- </BaseButton>
|
|
|
- </>
|
|
|
- )
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-]
|
|
|
-const drawer = ref(false)
|
|
|
-const loading = ref(true)
|
|
|
-const drawerText = ref('')
|
|
|
-
|
|
|
-const versionDataList = ref<HotVersionData[]>([])
|
|
|
-
|
|
|
-const form = reactive({
|
|
|
- type: 'new',
|
|
|
- data: {
|
|
|
- id: '',
|
|
|
- proj: '',
|
|
|
- os: '',
|
|
|
- packageUrl: '',
|
|
|
- remoteManifestUrl: '',
|
|
|
- remoteVersionUrl: '',
|
|
|
- status: 0
|
|
|
- }
|
|
|
-})
|
|
|
-
|
|
|
-const formReset = () => {
|
|
|
- form.data.id = ''
|
|
|
- form.data.proj = ''
|
|
|
- form.data.os = ''
|
|
|
- form.data.packageUrl = ''
|
|
|
- form.data.remoteManifestUrl = ''
|
|
|
- form.data.remoteVersionUrl = ''
|
|
|
- form.data.status = 0
|
|
|
-}
|
|
|
-
|
|
|
-const getVersionList = async (params?: Params) => {
|
|
|
- const res = await getHotVersionListApi(
|
|
|
- params || {
|
|
|
- start: 1,
|
|
|
- limit: 10
|
|
|
- }
|
|
|
- )
|
|
|
- .catch(() => {})
|
|
|
- .finally(() => {
|
|
|
- loading.value = false
|
|
|
- })
|
|
|
-
|
|
|
- if (res) {
|
|
|
- versionDataList.value = res.data
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-const newVersion = async () => {
|
|
|
- await newHotVersionApi(form.data)
|
|
|
- .catch(() => {})
|
|
|
- .finally(() => {
|
|
|
- loading.value = false
|
|
|
- })
|
|
|
-}
|
|
|
-
|
|
|
-// const deleteVersion = async (key) => {
|
|
|
-// await delVersionApi(key)
|
|
|
-// .catch(() => {})
|
|
|
-// .finally(() => {
|
|
|
-// loading.value = false
|
|
|
-// })
|
|
|
-// }
|
|
|
-
|
|
|
-const editVersion = async (params) => {
|
|
|
- await editHotVersionApi(params)
|
|
|
- .catch(() => {})
|
|
|
- .finally(() => {
|
|
|
- loading.value = false
|
|
|
- })
|
|
|
-}
|
|
|
-
|
|
|
-getVersionList()
|
|
|
-
|
|
|
-const updateDefaultStatus = async (row: HotVersionData, val) => {
|
|
|
- row.status = val
|
|
|
- const params = {
|
|
|
- id: row.id,
|
|
|
- version: '',
|
|
|
- status: 0
|
|
|
- }
|
|
|
- params.version = row.version
|
|
|
- params.status = row.status ? 1 : 0
|
|
|
- await editHotVersionApi(params)
|
|
|
- getVersionList()
|
|
|
-
|
|
|
- console.log(`更新版本 ${row.version} 的 default 状态为: ${val}`)
|
|
|
-}
|
|
|
-
|
|
|
-const onSubmit = async () => {
|
|
|
- if (form.type === 'new') {
|
|
|
- await newVersion()
|
|
|
- } else {
|
|
|
- await editVersion(form.data)
|
|
|
- }
|
|
|
-
|
|
|
- drawer.value = !drawer.value
|
|
|
- getVersionList()
|
|
|
-}
|
|
|
-
|
|
|
-// const deleteFn = async (data: any) => {
|
|
|
-// // deleteVersion(data.id.id)
|
|
|
-// getVersionList()
|
|
|
-// }
|
|
|
-
|
|
|
-// const syncVersion = async () => {
|
|
|
-// await syncVersionApi()
|
|
|
-// .catch(() => {})
|
|
|
-// .finally(() => {
|
|
|
-// loading.value = false
|
|
|
-// })
|
|
|
-// }
|
|
|
-
|
|
|
-const actionFn = (type: string, data: any) => {
|
|
|
- if (type == 'new') {
|
|
|
- formReset()
|
|
|
- form.type = 'new'
|
|
|
- drawerText.value = t('version_client.new')
|
|
|
- }
|
|
|
- if (type == 'edit') {
|
|
|
- form.type = 'edit'
|
|
|
- drawerText.value = t('version_client.edit')
|
|
|
- form.data.id = data.id.id
|
|
|
- form.data.proj = data.proj
|
|
|
- form.data.os = data.os
|
|
|
- form.data.packageUrl = data.packageUrl
|
|
|
- form.data.remoteManifestUrl = data.remoteManifestUrl
|
|
|
- form.data.remoteVersionUrl = data.remoteVersionUrl
|
|
|
- }
|
|
|
- drawer.value = !drawer.value
|
|
|
-}
|
|
|
-
|
|
|
-const closeDrawer = () => {
|
|
|
- drawer.value = false
|
|
|
-}
|
|
|
-</script>
|
|
|
-
|
|
|
-<template>
|
|
|
- <ContentWrap>
|
|
|
- <div style="display: flex; justify-content: space-between; align-items: center">
|
|
|
- <ElButton type="primary" @click="() => actionFn('new', null)">
|
|
|
- {{ t('version_client.new') }}
|
|
|
- </ElButton>
|
|
|
- </div>
|
|
|
- </ContentWrap>
|
|
|
- <ContentWrap>
|
|
|
- <Table
|
|
|
- :columns="columns"
|
|
|
- :data="versionDataList"
|
|
|
- :loading="loading"
|
|
|
- :defaultSort="{ prop: 'display_time', order: 'descending' }"
|
|
|
- />
|
|
|
- </ContentWrap>
|
|
|
- <ElDrawer v-model="drawer" direction="rtl" size="40%" :z-index="4000">
|
|
|
- <template #header>
|
|
|
- <span class="text-16px font-700">{{ drawerText }}</span>
|
|
|
- </template>
|
|
|
- <ElForm :model="form" label-width="auto" style="max-width: 600px">
|
|
|
- <ElFormItem :label="t('version_client.proj')">
|
|
|
- <ElInput v-model="form.data.proj" />
|
|
|
- </ElFormItem>
|
|
|
- <ElFormItem :label="t('version_client.os')">
|
|
|
- <el-input v-model="form.data.os" />
|
|
|
- </ElFormItem>
|
|
|
- <ElFormItem :label="t('version_client.packageUrl')">
|
|
|
- <el-input v-model="form.data.packageUrl" />
|
|
|
- </ElFormItem>
|
|
|
- <ElFormItem :label="t('version_client.remoteManifestUrl')">
|
|
|
- <el-input v-model="form.data.remoteManifestUrl" />
|
|
|
- </ElFormItem>
|
|
|
- <ElFormItem :label="t('version_client.remoteVersionUrl')">
|
|
|
- <el-input v-model="form.data.remoteVersionUrl" />
|
|
|
- </ElFormItem>
|
|
|
- <ElFormItem>
|
|
|
- <el-button type="primary" @click="onSubmit">确定</el-button>
|
|
|
- <el-button @click="closeDrawer">取消</el-button>
|
|
|
- </ElFormItem>
|
|
|
- </ElForm>
|
|
|
- </ElDrawer>
|
|
|
-</template>
|