添加release版本
这个提交包含在:
父节点
eaa3c7fd63
当前提交
66a8c8ba20
@ -33,5 +33,7 @@ export default {
|
|||||||
register: (params) => API.POSTJSON("/tenant/v1/create", params),
|
register: (params) => API.POSTJSON("/tenant/v1/create", params),
|
||||||
login: (params) => API.POSTJSON("/user/v1/login", params),
|
login: (params) => API.POSTJSON("/user/v1/login", params),
|
||||||
appList: (params) => API.POSTJSON("/manager/v1/list", params),
|
appList: (params) => API.POSTJSON("/manager/v1/list", params),
|
||||||
appCreate: (params) => API.POSTJSON("/manager/v1/create", params)
|
appCreate: (params) => API.POSTJSON("/manager/v1/create", params),
|
||||||
|
releaseList: (params) => API.POSTJSON("/release/v1/list", params),
|
||||||
|
releaseAdd: (params) => API.POSTJSON("/release/v1/add", params)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import RegisterView from "@/views/RegisterView.vue"
|
|||||||
import MainView from "@/views/MainView.vue"
|
import MainView from "@/views/MainView.vue"
|
||||||
import ImHomeView from "@/views/im/ImHomeView.vue"
|
import ImHomeView from "@/views/im/ImHomeView.vue"
|
||||||
import AppHomeView from "@/views/app/AppHomeView.vue"
|
import AppHomeView from "@/views/app/AppHomeView.vue"
|
||||||
|
import AppReleaseView from "@/views/app/AppReleaseView.vue"
|
||||||
|
|
||||||
const router = createRouter({
|
const router = createRouter({
|
||||||
history: createWebHashHistory(),
|
history: createWebHashHistory(),
|
||||||
@ -54,6 +55,11 @@ const router = createRouter({
|
|||||||
path: "/appManager",
|
path: "/appManager",
|
||||||
name: "应用信息",
|
name: "应用信息",
|
||||||
component: AppHomeView
|
component: AppHomeView
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "/AppRelease",
|
||||||
|
name: "版本记录",
|
||||||
|
component: AppReleaseView
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
11
src/stores/manager.ts
普通文件
11
src/stores/manager.ts
普通文件
@ -0,0 +1,11 @@
|
|||||||
|
import { ref, computed } from "vue"
|
||||||
|
import { defineStore } from "pinia"
|
||||||
|
|
||||||
|
export const useManagerStore = defineStore("token", () => {
|
||||||
|
const appId = ref(undefined)
|
||||||
|
function setAppId(t: string) {
|
||||||
|
appId.value = t
|
||||||
|
}
|
||||||
|
|
||||||
|
return { appId, setAppId }
|
||||||
|
})
|
||||||
@ -35,6 +35,7 @@
|
|||||||
<span>版本管理</span>
|
<span>版本管理</span>
|
||||||
</template>
|
</template>
|
||||||
<el-menu-item index="/appManager">应用信息</el-menu-item>
|
<el-menu-item index="/appManager">应用信息</el-menu-item>
|
||||||
|
<el-menu-item index="/AppRelease">版本记录</el-menu-item>
|
||||||
</el-sub-menu>
|
</el-sub-menu>
|
||||||
</el-menu>
|
</el-menu>
|
||||||
</el-aside>
|
</el-aside>
|
||||||
|
|||||||
@ -4,6 +4,12 @@ import API from "@/api/index.js"
|
|||||||
import { ref } from "vue"
|
import { ref } from "vue"
|
||||||
import { PriceTag } from "@element-plus/icons-vue"
|
import { PriceTag } from "@element-plus/icons-vue"
|
||||||
import { ElMessage } from "element-plus"
|
import { ElMessage } from "element-plus"
|
||||||
|
import { useRouter } from "vue-router"
|
||||||
|
import { useManagerStore } from "@/stores/manager"
|
||||||
|
|
||||||
|
const router = useRouter()
|
||||||
|
|
||||||
|
const manager = useManagerStore()
|
||||||
|
|
||||||
const Api = API
|
const Api = API
|
||||||
const appList = ref([])
|
const appList = ref([])
|
||||||
@ -35,9 +41,9 @@ const addApp = () => {
|
|||||||
packageName.value = undefined
|
packageName.value = undefined
|
||||||
showDialog.value = true
|
showDialog.value = true
|
||||||
}
|
}
|
||||||
const showApp = (scope) => {
|
const showApp = (item) => {
|
||||||
detail.value = undefined
|
manager.setAppId(item.appId)
|
||||||
// showDetailsDialog.value = true
|
router.push("/AppRelease")
|
||||||
}
|
}
|
||||||
init()
|
init()
|
||||||
</script>
|
</script>
|
||||||
|
|||||||
113
src/views/app/AppReleaseView.vue
普通文件
113
src/views/app/AppReleaseView.vue
普通文件
@ -0,0 +1,113 @@
|
|||||||
|
<script setup lang="ts">
|
||||||
|
// @ts-ignore
|
||||||
|
import API from "@/api/index.js"
|
||||||
|
import { ref } from "vue"
|
||||||
|
import { PriceTag } from "@element-plus/icons-vue"
|
||||||
|
import { ElMessage } from "element-plus"
|
||||||
|
import { useManagerStore } from "@/stores/manager"
|
||||||
|
|
||||||
|
const manager = useManagerStore()
|
||||||
|
const Api = API
|
||||||
|
const appList = ref([])
|
||||||
|
const init = () => {
|
||||||
|
Api.appList({ pageNumber: 0, pageSize: 100 }).then((res) => {
|
||||||
|
appList.value = res.content
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const appCreate = () => {
|
||||||
|
ElMessage.success("新建应用成功")
|
||||||
|
Api.appCreate({
|
||||||
|
downloadUrl: downloadUrl.value,
|
||||||
|
packageName: packageName.value,
|
||||||
|
appName: name.value
|
||||||
|
}).then(() => {
|
||||||
|
init()
|
||||||
|
showDialog.value = false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const name = ref(undefined)
|
||||||
|
const downloadUrl = ref(undefined)
|
||||||
|
const packageName = ref(undefined)
|
||||||
|
const showDialog = ref(false)
|
||||||
|
const detail = ref(undefined)
|
||||||
|
const showDetailsDialog = ref(false)
|
||||||
|
const addApp = () => {
|
||||||
|
name.value = undefined
|
||||||
|
downloadUrl.value = undefined
|
||||||
|
packageName.value = undefined
|
||||||
|
showDialog.value = true
|
||||||
|
}
|
||||||
|
const showApp = (scope) => {
|
||||||
|
detail.value = undefined
|
||||||
|
// showDetailsDialog.value = true
|
||||||
|
}
|
||||||
|
init()
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<template>
|
||||||
|
<el-card style="margin-top: 20px">
|
||||||
|
<template #header>
|
||||||
|
<el-button @click="addApp">新建应用{{ manager.appId }}</el-button>
|
||||||
|
</template>
|
||||||
|
<el-table :data="appList" style="width: 100%">
|
||||||
|
<el-table-column type="index" width="150" label="序号" />
|
||||||
|
<el-table-column prop="appName" label="应用名称" />
|
||||||
|
<el-table-column prop="createTime" label="创建时间" />
|
||||||
|
<el-table-column fixed="right" label="操作" min-width="120">
|
||||||
|
<template #default="scope">
|
||||||
|
<el-button link type="primary" size="small" @click="showApp(scope.row)"> 详情 </el-button>
|
||||||
|
<el-button link type="primary" size="small">删除</el-button>
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
</el-table>
|
||||||
|
</el-card>
|
||||||
|
<el-dialog v-model="showDialog" title="新建应用" width="500">
|
||||||
|
<el-input
|
||||||
|
class="text item"
|
||||||
|
v-model="name"
|
||||||
|
style="width: 440px"
|
||||||
|
placeholder="请输入应用名称"
|
||||||
|
:prefix-icon="PriceTag"
|
||||||
|
:clearable="true"
|
||||||
|
/>
|
||||||
|
<el-input
|
||||||
|
class="text item"
|
||||||
|
v-model="downloadUrl"
|
||||||
|
style="width: 440px; margin-top: 20px"
|
||||||
|
placeholder="请输入下载地址"
|
||||||
|
:prefix-icon="PriceTag"
|
||||||
|
:clearable="true"
|
||||||
|
/>
|
||||||
|
<el-input
|
||||||
|
class="text item"
|
||||||
|
v-model="packageName"
|
||||||
|
style="width: 440px; margin-top: 20px"
|
||||||
|
placeholder="请输入应用包名"
|
||||||
|
:prefix-icon="PriceTag"
|
||||||
|
:clearable="true"
|
||||||
|
/>
|
||||||
|
<template #footer>
|
||||||
|
<div class="dialog-footer">
|
||||||
|
<el-button @click="showDialog = false">Cancel</el-button>
|
||||||
|
<el-button type="primary" @click="appCreate"> Confirm</el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
<el-dialog v-model="showDetailsDialog" title="应用信息" width="500">
|
||||||
|
<el-input
|
||||||
|
class="text item"
|
||||||
|
v-model="name"
|
||||||
|
style="width: 440px"
|
||||||
|
placeholder="请输入应用名称"
|
||||||
|
:prefix-icon="PriceTag"
|
||||||
|
:clearable="true"
|
||||||
|
/>
|
||||||
|
<template #footer>
|
||||||
|
<div class="dialog-footer">
|
||||||
|
<el-button type="primary" @click="showDetailsDialog = false"> 关闭</el-button>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
</el-dialog>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<style scoped></style>
|
||||||
正在加载...
在新工单中引用
屏蔽一个用户