From e9dc03b62fea3db1b2029a2a485c3e18caac6a43 Mon Sep 17 00:00:00 2001
From: zhangzengfei <zhangzengfei@smartai.com>
Date: 星期二, 07 六月 2022 10:31:53 +0800
Subject: [PATCH] 添加文件类型
---
src/views/project/index.vue | 172 ++++++++++++++++++++++++++++++++++++++++++--------------
1 files changed, 128 insertions(+), 44 deletions(-)
diff --git a/src/views/project/index.vue b/src/views/project/index.vue
index 6c2c5d8..b77d588 100644
--- a/src/views/project/index.vue
+++ b/src/views/project/index.vue
@@ -9,18 +9,42 @@
@submit.native.prevent
>
<el-form-item>
- <el-input v-model="queryForm.title" placeholder="鍚嶇О" />
+ <el-input
+ v-model="queryForm.name"
+ placeholder="鍚嶇О"
+ clearable=""
+ />
</el-form-item>
<el-form-item>
<el-select
- v-model="queryForm.address"
+ v-model="queryForm.type"
placeholder="绫诲瀷"
class="handle-select mr10"
size="mini"
+ clearable=""
>
- <el-option key="1" label="绯荤粺" value="绯荤粺"></el-option>
- <el-option key="2" label="搴旂敤" value="搴旂敤"></el-option>
- <el-option key="3" label="绠楁硶" value="绠楁硶"></el-option>
+ <el-option
+ v-for="(v, k) in typeOptions"
+ :key="k"
+ :label="v"
+ :value="k"
+ ></el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item>
+ <el-select
+ v-model="queryForm.arch"
+ placeholder="鏋舵瀯"
+ class="handle-select mr10"
+ size="mini"
+ clearable=""
+ >
+ <el-option
+ v-for="(v, k) in archOptions"
+ :key="k"
+ :label="v"
+ :value="k"
+ ></el-option>
</el-select>
</el-form-item>
<el-form-item>
@@ -50,7 +74,6 @@
stripe
:data="list"
:element-loading-text="elementLoadingText"
- :height="height"
@selection-change="setSelectRows"
@expand-change="expandChange"
>
@@ -60,7 +83,10 @@
:data="props.row.pkgList"
:show-header="false"
style="width: 100%"
+ row-class-name="expand-row"
+ :highlight-current-row="false"
>
+ >
<el-table-column prop="fileName"></el-table-column>
<el-table-column prop="version" width="150"></el-table-column>
<el-table-column prop="commit" width="150"></el-table-column>
@@ -68,16 +94,40 @@
<el-table-column prop="state" width="150">
<template #default="{ row }">
- <el-tag>{{ packageState[row.state] }}</el-tag>
+ <el-tag :type="row.state == 0 ? 'success' : 'danger'">{{
+ packageState[row.state]
+ }}</el-tag>
</template>
</el-table-column>
- <el-table-column width="200">
+ <el-table-column width="300">
<template #default="scope">
- <el-button size="small" @click="handlePublish(scope.row)"
+ <el-button
+ v-show="props.row.type == 'os' || props.row.type == 'algo'"
+ size="small"
+ @click="handlePublish(scope.row)"
>鍙戝竷</el-button
>
<el-button size="small" @click="handleDownload(scope.row)"
>涓嬭浇</el-button
+ >
+ <el-button
+ size="small"
+ type="warning"
+ :disabled="scope.row.state === 0"
+ @click="handleRebuild(scope.row)"
+ >閲嶇疆</el-button
+ >
+
+ <!-- 姝e湪鎵撳寘鐨勪换鍔′互鍙婅嚜鍔ㄦ墦鍖呯殑浠诲姟涓嶅厑璁稿垹闄� -->
+ <el-button
+ size="small"
+ type="danger"
+ :disabled="
+ scope.row.createType == 0 ||
+ (scope.row.state > 0 && scope.row.state < 3)
+ "
+ @click="handleDeletePkg(scope.row)"
+ >鍒犻櫎</el-button
>
</template>
</el-table-column>
@@ -85,34 +135,50 @@
</template>
</el-table-column>
<!-- <el-table-column show-overflow-tooltip type="selection" width="55"></el-table-column> -->
- <el-table-column show-overflow-tooltip label="搴忓彿" width="95">
+ <el-table-column show-overflow-tooltip label="搴忓彿" width="50">
<template #default="scope">{{ scope.$index + 1 }}</template>
</el-table-column>
<el-table-column
show-overflow-tooltip
prop="name"
- label="椤圭洰鍚嶇О"
+ label="鍚嶇О"
+ width="150"
+ ></el-table-column>
+ <el-table-column
+ show-overflow-tooltip
+ prop="desc"
+ label="鎻忚堪"
></el-table-column>
<el-table-column
show-overflow-tooltip
prop="srcUrl"
- label="椤圭洰鍦板潃"
+ label="鍦板潃"
+ width="500"
></el-table-column>
+ <el-table-column show-overflow-tooltip prop="branch" label="鍒嗘敮">
+ </el-table-column>
<el-table-column show-overflow-tooltip prop="type" label="绫诲瀷">
<template #default="{ row }">
- <el-tag>{{ row.type | typeFilter }}</el-tag>
+ <el-tag>{{ typeOptions[row.type] }}</el-tag>
+ </template>
+ </el-table-column>
+ <el-table-column show-overflow-tooltip prop="arch" label="鏋舵瀯">
+ <template #default="{ row }">
+ <el-tag>{{ archOptions[row.arch] }}</el-tag>
</template>
</el-table-column>
<!-- <el-table-column show-overflow-tooltip label="褰撳墠鐗堟湰" prop="latestVersion"></el-table-column> -->
<el-table-column label="鐘舵��">
<template #default="{ row }">
- <el-tag>{{ row.state | stateFilter }}</el-tag>
+ <el-tag :type="row.state == 2 ? 'danger' : 'success'">{{
+ projectState[row.state]
+ }}</el-tag>
</template>
</el-table-column>
<el-table-column
label="鍒涘缓鏃堕棿"
prop="createdAt"
- width="200"
+ width="150"
></el-table-column>
<el-table-column label="鎿嶄綔" width="180px">
<template #default="{ row }">
@@ -147,51 +213,47 @@
<script>
import { getList, deletePrj, getPkgList, buildPkg } from "@/api/project";
-import { publish, download } from "@/api/package";
+import { publish, download, rebuild, deletePkg } from "@/api/package";
import TableEdit from "./components/ProjectEdit.vue";
+
export default {
name: "ComprehensiveTable",
components: {
TableEdit,
},
- filters: {
- stateFilter(state) {
- const stateMap = ["涓嬭浇涓�", "鍚屾瀹屾垚", "鍚屾澶辫触"];
-
- return stateMap[state];
- },
- typeFilter(type) {
- const typeMap = {
- sys: "绯荤粺鍖�",
- app: "搴旂敤鍖�",
- algo: "绠楁硶鍖�",
- };
- return typeMap[type];
- },
- },
data() {
return {
- imgShow: true,
list: [],
listLoading: true,
layout: "total, sizes, prev, pager, next, jumper",
+ archOptions: {
+ amd64: "x86_64",
+ arm64: "arm_64",
+ },
+ typeOptions: {
+ os: "AIOS",
+ sys: "绯荤粺鍖�",
+ app: "搴旂敤鍖�",
+ algo: "绠楁硶鍖�",
+ },
+ projectState: ["涓嬭浇涓�", "鍚屾瀹屾垚", "鍚屾澶辫触"],
packageState: [
- "瀹屾垚",
- "宸叉彁浜�",
- "鎺掗槦涓�",
- "鎵撳寘涓�",
+ "鎵撳寘瀹屾垚",
+ "宸� 鎻� 浜�",
+ "鎺� 闃� 涓�",
+ "鎵� 鍖� 涓�",
"缂栬瘧澶辫触",
"鎵撳寘澶辫触",
],
total: 0,
background: true,
selectRows: "",
+ expandRow: "",
elementLoadingText: "姝e湪鍔犺浇...",
queryForm: {
pageNo: 1,
pageSize: 20,
- title: "",
},
};
},
@@ -268,16 +330,17 @@
},
async expandChange(row, expandRows) {
- console.log(row);
if (expandRows.length == 0) {
- console.log("fold");
return;
}
- const { data, total } = await getPkgList(row.id);
+ this.getPackageList(row.id);
+ },
+ async getPackageList(id) {
+ const { data, total } = await getPkgList(id);
this.list.forEach((item, idx) => {
- if (item.id === row.id) {
- this.list[idx].pkgList = data;
+ if (item.id === id) {
+ this.list[idx].pkgList = data.reverse();
}
});
},
@@ -290,7 +353,6 @@
})
.then(({ value }) => {
buildPkg(row, value).then((rsp) => {
- console.log(rsp);
this.expandChange(row, 1);
});
})
@@ -311,11 +373,33 @@
handleDownload(row) {
download({ path: row.filePath }).then((rsp) => {
if (rsp && rsp.success) {
- console.log(rsp);
window.location = rsp.data;
}
});
},
+ handleRebuild(row) {
+ rebuild(row).then((rsp) => {
+ if (rsp && rsp.success) {
+ this.$baseMessage(rsp.msg, "success");
+ } else {
+ this.$baseMessage("淇濆瓨澶辫触", "error");
+ }
+ });
+ },
+ handleDeletePkg(row) {
+ if (row.id) {
+ this.$baseConfirm("浣犵‘瀹氳鍒犻櫎褰撳墠椤瑰悧", null, async () => {
+ const { msg } = await deletePkg(row);
+ this.$baseMessage(msg, "success");
+ this.getPackageList(row.projectId);
+ });
+ }
+ },
},
};
</script>
+<style>
+.el-table .expand-row {
+ background-color: oldlace;
+}
+</style>
--
Gitblit v1.8.0