parent
6e2f8da03f
commit
3e5e016eb1
@ -0,0 +1,168 @@ |
|||||||
|
<template> |
||||||
|
<div class="app-container"> |
||||||
|
<div class="search-container"> |
||||||
|
<el-form :model="searchForm" :inline="true"> |
||||||
|
<el-form-item label="设备供应商"> |
||||||
|
<el-select |
||||||
|
v-model="searchForm.devVendorName" |
||||||
|
clearable |
||||||
|
placeholder="请选择设备供应商" |
||||||
|
style="width: 180px" |
||||||
|
> |
||||||
|
<el-option |
||||||
|
v-for="item in vendorNameOption" |
||||||
|
:key="item.value" |
||||||
|
:label="item.label" |
||||||
|
:value="item.value" |
||||||
|
/> |
||||||
|
</el-select> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="设备型号"> |
||||||
|
<el-select |
||||||
|
v-model="searchForm.devTypeName" |
||||||
|
clearable |
||||||
|
placeholder="请选择设备型号" |
||||||
|
style="width: 180px" |
||||||
|
> |
||||||
|
<el-option |
||||||
|
v-for="item in typeNameOption" |
||||||
|
:key="item.value" |
||||||
|
:label="item.label" |
||||||
|
:value="item.value" |
||||||
|
/> |
||||||
|
</el-select> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item label="设备硬件版本"> |
||||||
|
<el-select |
||||||
|
v-model="searchForm.devHardVer" |
||||||
|
clearable |
||||||
|
placeholder="设备硬件版本" |
||||||
|
style="width: 180px" |
||||||
|
> |
||||||
|
<el-option |
||||||
|
v-for="item in hardVerOption" |
||||||
|
:key="item.value" |
||||||
|
:label="item.label" |
||||||
|
:value="item.value" |
||||||
|
/> |
||||||
|
</el-select> |
||||||
|
</el-form-item> |
||||||
|
<el-form-item> |
||||||
|
<el-button type="primary" @click="loadTr069DevTypePage"> |
||||||
|
<i-ep-search /> |
||||||
|
搜索 |
||||||
|
</el-button> |
||||||
|
</el-form-item> |
||||||
|
</el-form> |
||||||
|
</div> |
||||||
|
|
||||||
|
<el-card shadow="never"> |
||||||
|
<div class="any-table"> |
||||||
|
<el-table |
||||||
|
:data="tableData" |
||||||
|
v-loading="loading" |
||||||
|
highlight-current-row |
||||||
|
max-height="450" |
||||||
|
@selection-change="handleSelectionChange" |
||||||
|
> |
||||||
|
<el-table-column type="selection" width="55" /> |
||||||
|
<el-table-column label="设备类型" prop="devType" align="center"> |
||||||
|
<template #default="scope"> |
||||||
|
<el-button |
||||||
|
type="primary" |
||||||
|
link |
||||||
|
@click="redirect(scope.row.devTypeId)" |
||||||
|
>{{ scope.row.devType }}</el-button |
||||||
|
> |
||||||
|
</template> |
||||||
|
</el-table-column> |
||||||
|
<el-table-column |
||||||
|
label="设备类型软件版本名称" |
||||||
|
prop="devTypeSoftVer" |
||||||
|
align="center" |
||||||
|
/> |
||||||
|
<el-table-column |
||||||
|
label="审核标志" |
||||||
|
prop="devTypeVerStatus" |
||||||
|
align="center" |
||||||
|
/> |
||||||
|
</el-table> |
||||||
|
<pagination |
||||||
|
v-if="total > 0" |
||||||
|
v-model:total="total" |
||||||
|
v-model:page="searchForm.pageNum" |
||||||
|
v-model:limit="searchForm.pageSize" |
||||||
|
@pagination="loadTr069DevTypePage" |
||||||
|
/> |
||||||
|
</div> |
||||||
|
</el-card> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script setup lang="ts"> |
||||||
|
import { |
||||||
|
getHardVerOption, |
||||||
|
getTypeNameOption, |
||||||
|
getVendorNameOption, |
||||||
|
tr069BindingDevTypePage, |
||||||
|
} from "@/api/device-type"; |
||||||
|
import { Tr069DevTypeQuery, Tr069DevTypeVO } from "@/api/tr069/types"; |
||||||
|
import { ElTable } from "element-plus"; |
||||||
|
const multiples = ref<Tr069DevTypeVO[]>([]); |
||||||
|
const searchForm = ref<Tr069DevTypeQuery>({ |
||||||
|
devTypeName: "", |
||||||
|
devHardVer: "", |
||||||
|
devVendorName: "", |
||||||
|
pageNum: 1, |
||||||
|
pageSize: 10, |
||||||
|
}); |
||||||
|
const vendorNameOption = ref<OptionType[]>([]); |
||||||
|
const typeNameOption = ref<OptionType[]>([]); |
||||||
|
const hardVerOption = ref<OptionType[]>([]); |
||||||
|
const tableData = ref<Tr069DevTypeVO[]>([]); |
||||||
|
const total = ref<number>(0); |
||||||
|
const loading = ref<boolean>(false); |
||||||
|
const router = useRouter(); |
||||||
|
const loadVendorNameOption = async () => { |
||||||
|
await getVendorNameOption().then(({ data }) => { |
||||||
|
vendorNameOption.value = data; |
||||||
|
}); |
||||||
|
}; |
||||||
|
const loadTypeNameOption = async () => { |
||||||
|
await getTypeNameOption(searchForm.value.devVendorName).then(({ data }) => { |
||||||
|
typeNameOption.value = data; |
||||||
|
}); |
||||||
|
}; |
||||||
|
const loadHardVerOption = async () => { |
||||||
|
await getHardVerOption(searchForm.value.devTypeName).then(({ data }) => { |
||||||
|
hardVerOption.value = data; |
||||||
|
}); |
||||||
|
}; |
||||||
|
const handleSelectionChange = (val: Tr069DevTypeVO[]) => { |
||||||
|
multiples.value = val; |
||||||
|
}; |
||||||
|
const loadTr069DevTypePage = () => { |
||||||
|
loading.value = true; |
||||||
|
tr069BindingDevTypePage(searchForm.value) |
||||||
|
.then(({ data }) => { |
||||||
|
tableData.value = data.list; |
||||||
|
total.value = data.total; |
||||||
|
}) |
||||||
|
.finally(() => { |
||||||
|
loading.value = false; |
||||||
|
}); |
||||||
|
}; |
||||||
|
|
||||||
|
const redirect = (devTypeId: number) => { |
||||||
|
router.push({ |
||||||
|
path: `/resources/device_type_to_ver/${devTypeId}`, |
||||||
|
}); |
||||||
|
}; |
||||||
|
onMounted(() => { |
||||||
|
loadVendorNameOption(); |
||||||
|
loadTypeNameOption(); |
||||||
|
loadHardVerOption(); |
||||||
|
}); |
||||||
|
</script> |
||||||
|
|
||||||
|
<style scoped></style> |
@ -0,0 +1,80 @@ |
|||||||
|
<template> |
||||||
|
<div class="app-container"> |
||||||
|
<el-card shadow="never"> |
||||||
|
<div class="mb-4"> |
||||||
|
<div style="display: flex; justify-content: space-between"> |
||||||
|
<div style="font-weight: 700">设备类型对应的设备软件版本列表</div> |
||||||
|
<div> |
||||||
|
<el-button type="primary" @click="skipBindingDevType"> |
||||||
|
<i-ep-plus /> |
||||||
|
新增 |
||||||
|
</el-button> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
<div class="any-table"> |
||||||
|
<el-table |
||||||
|
:data="tableData" |
||||||
|
v-loading="loading" |
||||||
|
highlight-current-row |
||||||
|
max-height="450" |
||||||
|
> |
||||||
|
<el-table-column label="设备类型" prop="devType" align="center" /> |
||||||
|
<el-table-column |
||||||
|
label="设备类型软件版本名称" |
||||||
|
prop="devTypeSoftVer" |
||||||
|
align="center" |
||||||
|
/> |
||||||
|
<el-table-column |
||||||
|
label="审核标志" |
||||||
|
prop="devTypeVerStatus" |
||||||
|
align="center" |
||||||
|
/> |
||||||
|
</el-table> |
||||||
|
<pagination |
||||||
|
v-if="total > 0" |
||||||
|
v-model:total="total" |
||||||
|
v-model:page="query.pageNum" |
||||||
|
v-model:limit="query.pageSize" |
||||||
|
@pagination="loadTr069DevTypePage" |
||||||
|
/> |
||||||
|
</div> |
||||||
|
</el-card> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script setup lang="ts"> |
||||||
|
import { Tr069DevTypeQuery, Tr069DevTypeVO } from "@/api/tr069/types"; |
||||||
|
import { tr069BindingDevTypePage } from "@/api/device-type"; |
||||||
|
|
||||||
|
const route = useRoute(); |
||||||
|
const router = useRouter(); |
||||||
|
let tr069VerId: number = parseInt(<string>route.params.tr069VerId); |
||||||
|
const tableData = ref<Tr069DevTypeVO[]>([]); |
||||||
|
const total = ref<number>(0); |
||||||
|
const loading = ref<boolean>(false); |
||||||
|
const query = ref<Tr069DevTypeQuery>({ |
||||||
|
pageNum: 1, |
||||||
|
pageSize: 10, |
||||||
|
tr069VerId: tr069VerId, |
||||||
|
}); |
||||||
|
const loadTr069DevTypePage = () => { |
||||||
|
loading.value = true; |
||||||
|
tr069BindingDevTypePage(query.value) |
||||||
|
.then(({ data }) => { |
||||||
|
tableData.value = data.list; |
||||||
|
total.value = data.total; |
||||||
|
}) |
||||||
|
.finally(() => { |
||||||
|
loading.value = false; |
||||||
|
}); |
||||||
|
}; |
||||||
|
const skipBindingDevType = () => { |
||||||
|
router.push({ path: `/resources/tr069-binding-dev-type/${tr069VerId}` }); |
||||||
|
}; |
||||||
|
onMounted(() => { |
||||||
|
loadTr069DevTypePage(); |
||||||
|
}); |
||||||
|
</script> |
||||||
|
|
||||||
|
<style scoped></style> |
Loading…
Reference in new issue