长城汽车软件包管理平台
whychdw
2025-05-06 4a867727d81b9513e675ad396903368c6a293dca
src/views/dashboard/index.vue
@@ -4,18 +4,17 @@
    <el-col :lg="24" :xs="24">
      <div class="search-bar">
        <el-form ref="queryFormRef" :model="queryParams" :inline="true">
          <el-form-item label="SN码:" prop="status">
          <el-form-item label="序列号:" prop="status">
            <el-select
              v-model="queryParams.snCode"
              v-model="queryParams.serialNumber"
              filterable
              placeholder="全部"
              clearable
              class="!w-[200px]"
              @change="handleQuery"
            >
              <el-option label="全部" value="" />
              <el-option
                v-for="item in snCodeList"
                v-for="item in serialNumberList"
                :key="item"
                :label="item"
                :value="item"
@@ -25,14 +24,6 @@
          <el-form-item>
            <el-button type="primary" icon="search" @click="handleQuery">搜索</el-button>
            <el-button icon="refresh" @click="handleResetQuery">重置</el-button>
            <el-button
              v-hasPerm="['sys:user:upload']"
              type="success"
              icon="upload"
              @click="uploadDialog = true"
            >
              上传
            </el-button>
          </el-form-item>
        </el-form>
      </div>
@@ -41,24 +32,31 @@
      <el-table v-loading="loading" :data="pageData">
        <el-table-column
          show-overflow-tooltip
          label="SN码"
          label="序列号"
          min-width="210"
          align="center"
          prop="serialNumber"
        />
        <el-table-column
          show-overflow-tooltip
          label="SN码"
          min-width="180"
          align="center"
          prop="snCode"
        />
        <el-table-column
          show-overflow-tooltip
          label="物料编码"
          min-width="210"
          label="版本号"
          min-width="120"
          align="center"
          prop="materialCode"
          prop="version"
        />
        <el-table-column
          show-overflow-tooltip
          label="序列号"
          label="更新内容"
          min-width="210"
          align="center"
          prop="serialNumber"
          prop="description"
        />
        <el-table-column
          show-overflow-tooltip
@@ -77,13 +75,14 @@
        <el-table-column align="center" label="操作" fixed="right" width="220">
          <template #default="{ row }">
            <el-button
              v-hasPerm="['sys:user:add']"
              type="primary"
              icon="download"
              icon="upload"
              link
              size="small"
              @click="handleDownload(row)"
              @click="handleUpload(row)"
            >
              下载
              上传
            </el-button>
          </template>
        </el-table-column>
@@ -102,6 +101,7 @@
      <upload-software
        v-if="uploadDialog"
        v-model:close="uploadDialog"
        :data="rowRef"
        @success="handleSuccess"
      ></upload-software>
    </el-dialog>
@@ -151,6 +151,7 @@
      }
    })
    .finally(() => {
      searchSerialNumber();
      loading.value = false;
    });
}
@@ -165,36 +166,12 @@
  handleQuery();
}
const snCodeList = ref<string[]>([]);
function searchSnCode() {
  SoftwareApi.searchSn().then((result) => {
    const { code, data } = result;
    if (code === 1) {
      snCodeList.value = data;
    } else {
      snCodeList.value = [];
    }
  });
}
const materialList = ref<string[]>([]);
function searchMaterial() {
  SoftwareApi.searchMaterial().then((result) => {
    const { code, data } = result;
    if (code === 1) {
      materialList.value = data;
    } else {
      materialList.value = [];
    }
  });
}
const serialNumberList = ref<string[]>([]);
function searchSerialNumber() {
  SoftwareApi.searchSerial().then((result) => {
    const { code, data } = result;
    if (code === 1) {
      serialNumberList.value = data;
      serialNumberList.value = [...new Set(data)];
    } else {
      serialNumberList.value = [];
    }
@@ -211,14 +188,12 @@
const downloadDialog = ref(false);
const rowRef = ref<SoftwareInfo>();
function handleDownload(data: SoftwareInfo) {
function handleUpload(data: SoftwareInfo) {
  rowRef.value = data;
  downloadDialog.value = true;
  uploadDialog.value = true;
}
onMounted(() => {
  searchSnCode();
  searchMaterial();
  searchSerialNumber();
  handleQuery();
});