From dccd5c9cfc33d33ea405e3a5311c7c85d9c09f68 Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期三, 24 十一月 2021 16:10:33 +0800 Subject: [PATCH] 添加项目展示字段 --- src/views/project/index.vue | 133 ++++++++++++++++++++++++++++++------------- 1 files changed, 92 insertions(+), 41 deletions(-) diff --git a/src/views/project/index.vue b/src/views/project/index.vue index 6c2c5d8..6f7363d 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> @@ -68,16 +92,27 @@ <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'" + size="small" + @click="handlePublish(scope.row)" >鍙戝竷</el-button > <el-button size="small" @click="handleDownload(scope.row)" >涓嬭浇</el-button + > + <el-button + size="small" + :disabled="scope.row.state === 0" + @click="handleRebuild(scope.row)" + >閲嶇疆</el-button > </template> </el-table-column> @@ -85,34 +120,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,40 +198,36 @@ <script> import { getList, deletePrj, getPkgList, buildPkg } from "@/api/project"; -import { publish, download } from "@/api/package"; +import { publish, download, rebuild } 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: "OS鍩虹鍖�", + sys: "绯荤粺鍖�", + app: "搴旂敤鍖�", + algo: "绠楁硶鍖�", + }, + projectState: ["涓嬭浇涓�", "鍚屾瀹屾垚", "鍚屾澶辫触"], packageState: [ - "瀹屾垚", - "宸叉彁浜�", - "鎺掗槦涓�", - "鎵撳寘涓�", + "鎵撳寘瀹屾垚", + "宸� 鎻� 浜�", + "鎺� 闃� 涓�", + "鎵� 鍖� 涓�", "缂栬瘧澶辫触", "鎵撳寘澶辫触", ], @@ -191,7 +238,6 @@ queryForm: { pageNo: 1, pageSize: 20, - title: "", }, }; }, @@ -268,16 +314,14 @@ }, async expandChange(row, expandRows) { - console.log(row); if (expandRows.length == 0) { - console.log("fold"); return; } const { data, total } = await getPkgList(row.id); this.list.forEach((item, idx) => { if (item.id === row.id) { - this.list[idx].pkgList = data; + this.list[idx].pkgList = data.reverse(); } }); }, @@ -290,7 +334,6 @@ }) .then(({ value }) => { buildPkg(row, value).then((rsp) => { - console.log(rsp); this.expandChange(row, 1); }); }) @@ -311,11 +354,19 @@ 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"); + } + }); + }, }, }; </script> -- Gitblit v1.8.0