zhangzengfei
2021-12-08 1a7fa21afabfd85bc760390dd4cb734a9cb2c703
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>
@@ -75,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)"
@@ -93,36 +122,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 :type="row.state == 2 ? 'danger' : 'success'">{{
            row.state | stateFilter
            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 }">
@@ -160,31 +203,28 @@
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 {
      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: [
        "打包完成",
        "已 提 交",
@@ -200,7 +240,6 @@
      queryForm: {
        pageNo: 1,
        pageSize: 20,
        title: "",
      },
    };
  },
@@ -277,9 +316,7 @@
    },
    async expandChange(row, expandRows) {
      console.log(row);
      if (expandRows.length == 0) {
        console.log("fold");
        return;
      }
@@ -299,7 +336,6 @@
      })
        .then(({ value }) => {
          buildPkg(row, value).then((rsp) => {
            console.log(rsp);
            this.expandChange(row, 1);
          });
        })
@@ -320,7 +356,6 @@
    handleDownload(row) {
      download({ path: row.filePath }).then((rsp) => {
        if (rsp && rsp.success) {
          console.log(rsp);
          window.location = rsp.data;
        }
      });
@@ -337,3 +372,8 @@
  },
};
</script>
<style>
.el-table .expand-row {
  background-color: oldlace;
}
</style>