From 6339f41cfff5b9fdf33eb2f788658247430b5091 Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期三, 19 十月 2022 17:19:52 +0800 Subject: [PATCH] 添加更新提醒 --- src/views/project/index.vue | 149 +++++++++++++++++++++++++++++++++++++------------ 1 files changed, 112 insertions(+), 37 deletions(-) diff --git a/src/views/project/index.vue b/src/views/project/index.vue index 6ebaf36..c6b7321 100644 --- a/src/views/project/index.vue +++ b/src/views/project/index.vue @@ -23,10 +23,28 @@ size="mini" clearable="" > - <el-option key="os" label="鍩虹" value="os"></el-option> - <el-option key="sys" label="绯荤粺" value="sys"></el-option> - <el-option key="app" label="搴旂敤" value="app"></el-option> - <el-option key="algo" label="绠楁硶" value="algo"></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> @@ -56,7 +74,6 @@ stripe :data="list" :element-loading-text="elementLoadingText" - :height="height" @selection-change="setSelectRows" @expand-change="expandChange" > @@ -66,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> @@ -81,7 +101,10 @@ </el-table-column> <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)" @@ -89,9 +112,22 @@ > <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> @@ -99,38 +135,57 @@ </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 :type="row.state == 2 ? 'danger' : 'success'">{{ - row.state | stateFilter - }}</el-tag> + <el-badge + is-dot + :hidden="row.latestPkgShortSha1 == row.shortSha1" + style="margin-top: 6px" + > + <el-tag :type="row.state > 1 ? 'danger' : 'success'">{{ + projectState[row.state] + }}</el-tag> + </el-badge> </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 }"> @@ -152,7 +207,7 @@ </el-table> <el-pagination :background="background" - :current-page="queryForm.pageNo" + :current-page="queryForm.pageIndex" :layout="layout" :page-size="queryForm.pageSize" :total="total" @@ -165,35 +220,37 @@ <script> import { getList, deletePrj, getPkgList, buildPkg } from "@/api/project"; -import { publish, download, rebuild } 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 = { - os: "OS鍩虹鍖�", - sys: "绯荤粺鍖�", - app: "搴旂敤鍖�", - algo: "绠楁硶鍖�", - }; - return typeMap[type]; - }, }, data() { return { list: [], listLoading: true, layout: "total, sizes, prev, pager, next, jumper", + archOptions: { + amd64: "x86_64", + arm64: "arm_64", + }, + typeOptions: { + os: "AIOS", + sys: "绯荤粺鍖�", + app: "搴旂敤鍖�", + algo: "绠楁硶鍖�", + }, + projectState: [ + "涓嬭浇涓�", + "鍚屾瀹屾垚", + "涓嬭浇澶辫触", + "浠g爜搴撻敊璇�", + "鍚屾澶辫触", + ], packageState: [ "鎵撳寘瀹屾垚", "宸� 鎻� 浜�", @@ -205,9 +262,10 @@ total: 0, background: true, selectRows: "", + expandRow: "", elementLoadingText: "姝e湪鍔犺浇...", queryForm: { - pageNo: 1, + pageIndex: 1, pageSize: 20, }, }; @@ -259,11 +317,11 @@ this.fetchData(); }, handleCurrentChange(val) { - this.queryForm.pageNo = val; + this.queryForm.pageIndex = val; this.fetchData(); }, handleQuery() { - this.queryForm.pageNo = 1; + this.queryForm.pageIndex = 1; this.fetchData(); }, async fetchData() { @@ -289,9 +347,12 @@ 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) { + if (item.id === id) { this.list[idx].pkgList = data.reverse(); } }); @@ -338,6 +399,20 @@ } }); }, + 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