zhangzengfei
2021-11-18 2f96ef3f59c0084d2943a7fdac9f47f51fe30da5
src/views/project/index.vue
@@ -9,18 +9,24 @@
          @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 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-select>
          </el-form-item>
          <el-form-item>
@@ -68,16 +74,24 @@
            <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
                >
                <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>
@@ -103,10 +117,14 @@
          <el-tag>{{ row.type | typeFilter }}</el-tag>
        </template>
      </el-table-column>
      <el-table-column show-overflow-tooltip prop="arch" label="架构">
      </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'">{{
            row.state | stateFilter
          }}</el-tag>
        </template>
      </el-table-column>
      <el-table-column
@@ -147,7 +165,7 @@
<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 {
@@ -163,6 +181,7 @@
    },
    typeFilter(type) {
      const typeMap = {
        os: "OS基础包",
        sys: "系统包",
        app: "应用包",
        algo: "算法包",
@@ -172,15 +191,14 @@
  },
  data() {
    return {
      imgShow: true,
      list: [],
      listLoading: true,
      layout: "total, sizes, prev, pager, next, jumper",
      packageState: [
        "完成",
        "已提交",
        "排队中",
        "打包中",
        "打包完成",
        "已 提 交",
        "排 队 中",
        "打 包 中",
        "编译失败",
        "打包失败",
      ],
@@ -191,7 +209,6 @@
      queryForm: {
        pageNo: 1,
        pageSize: 20,
        title: "",
      },
    };
  },
@@ -268,16 +285,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 +305,6 @@
      })
        .then(({ value }) => {
          buildPkg(row, value).then((rsp) => {
            console.log(rsp);
            this.expandChange(row, 1);
          });
        })
@@ -311,11 +325,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>