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