| | |
| | | <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" |
| | |
| | | <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> |
| | |
| | | <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 |
| | |
| | | <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> |
| | |
| | | <upload-software |
| | | v-if="uploadDialog" |
| | | v-model:close="uploadDialog" |
| | | :data="rowRef" |
| | | @success="handleSuccess" |
| | | ></upload-software> |
| | | </el-dialog> |
| | |
| | | } |
| | | }) |
| | | .finally(() => { |
| | | searchSerialNumber(); |
| | | loading.value = false; |
| | | }); |
| | | } |
| | |
| | | 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 = []; |
| | | } |
| | |
| | | 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(); |
| | | }); |