|
@@ -37,14 +37,17 @@
|
|
|
placeholder="请选择部门"
|
|
|
class="!w-220px"
|
|
|
/>
|
|
|
- <!-- <el-tree-select-->
|
|
|
- <!-- v-model="formData.deptId"-->
|
|
|
- <!-- :data="deptList"-->
|
|
|
- <!-- :props="defaultProps"-->
|
|
|
- <!-- check-strictly-->
|
|
|
- <!-- node-key="id"-->
|
|
|
- <!-- placeholder="请选择归属部门"-->
|
|
|
- <!-- />-->
|
|
|
+ <el-form-item :label="t('deviceForm.category')" prop="assetClass" style="width: 15vw;margin-left: 25px" >
|
|
|
+ <el-tree-select
|
|
|
+ v-model="queryParams.assetClass"
|
|
|
+ :data="productClassifyList"
|
|
|
+ :props="defaultProps"
|
|
|
+ check-strictly
|
|
|
+ node-key="id"
|
|
|
+ :placeholder="t('deviceForm.categoryHolder')"
|
|
|
+ filterable
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
</el-form-item>
|
|
|
<el-form-item>
|
|
|
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> {{ t('chooseMaintain.search') }}</el-button>
|
|
@@ -52,7 +55,6 @@
|
|
|
<el-button @click="handleConfirm" type="danger"><Icon icon="ep:check" class="mr-5px" /> {{ t('chooseMaintain.confirm') }}</el-button>
|
|
|
<el-button
|
|
|
type="primary"
|
|
|
- size="small"
|
|
|
@click="selectAll"
|
|
|
:disabled="loading || list.length === 0 || isAllSelected"
|
|
|
>
|
|
@@ -60,7 +62,6 @@
|
|
|
</el-button>
|
|
|
<el-button
|
|
|
type="default"
|
|
|
- size="small"
|
|
|
@click="deselectAll"
|
|
|
:disabled="loading || (!isAllSelected && selectedRows.length === 0)"
|
|
|
style="margin-left: 8px;"
|
|
@@ -158,6 +159,7 @@ import RouteInspectItemDrawer from "@/views/pms/inspect/plan/RouteInspectItemDra
|
|
|
import {ref} from "vue";
|
|
|
import {defaultProps, handleTree} from "@/utils/tree";
|
|
|
import * as DeptApi from "@/api/system/dept";
|
|
|
+import * as ProductClassifyApi from "@/api/pms/productclassify";
|
|
|
const { t } = useI18n() // 国际化
|
|
|
const emit = defineEmits(['choose']) // 定义 success 事件,用于操作成功后的回调
|
|
|
const dialogVisible = ref(false) // 弹窗的是否展示
|
|
@@ -168,6 +170,7 @@ const total = ref(0) // 列表的总页数
|
|
|
const deptList = ref<Tree[]>([]) // 树形结构
|
|
|
const drawerVisible = ref<boolean>(false)
|
|
|
const showDrawer = ref()
|
|
|
+const productClassifyList = ref<Tree[]>([]) // 树形结构
|
|
|
const queryParams = reactive({
|
|
|
pageNo: 1,
|
|
|
pageSize: 10,
|
|
@@ -206,7 +209,7 @@ const selectAll = async () => {
|
|
|
paramsCopy.pageSize = 100; // 按后台限制的最大页数获取
|
|
|
|
|
|
// 获取第一页数据
|
|
|
- const firstPageData = await IotDeviceApi.getPlanDevicePage(paramsCopy);
|
|
|
+ const firstPageData = await IotDeviceApi.getIotDevicePage(paramsCopy);
|
|
|
totalSelectedCount.value = firstPageData.total;
|
|
|
allDataCache.value.push(...firstPageData.list);
|
|
|
|
|
@@ -216,7 +219,7 @@ const selectAll = async () => {
|
|
|
const fetchPromises = [];
|
|
|
|
|
|
for (let page = 2; page <= totalPages; page++) {
|
|
|
- fetchPromises.push(IotDeviceApi.getPlanDevicePage({ ...paramsCopy, pageNo: page }));
|
|
|
+ fetchPromises.push(IotDeviceApi.getIotDevicePage({ ...paramsCopy, pageNo: page }));
|
|
|
}
|
|
|
|
|
|
const remainingPages = await Promise.all(fetchPromises);
|
|
@@ -232,10 +235,10 @@ const selectAll = async () => {
|
|
|
queryParams.pageNo = originalPageNo;
|
|
|
queryParams.pageSize = originalPageSize;
|
|
|
|
|
|
- message.success(t('operationFill.allSelected', { count: totalSelectedCount.value }));
|
|
|
+ message.success(t('operationFill.selectAll', { count: totalSelectedCount.value }));
|
|
|
} catch (error) {
|
|
|
console.error('全选失败', error);
|
|
|
- message.error(t('operationFill.selectAllFailed'));
|
|
|
+ //message.error(t('operationFill.selectAllFailed'));
|
|
|
isAllSelected.value = false;
|
|
|
selectedRows.value = [];
|
|
|
} finally {
|
|
@@ -250,7 +253,7 @@ const deselectAll = () => {
|
|
|
selectedRows.value = []; // 清空所有选中项
|
|
|
allDataCache.value = []; // 清空缓存
|
|
|
totalSelectedCount.value = 0;
|
|
|
- message.info(t('operationFill.allDeselected'));
|
|
|
+ message.info(t('operationFill.deselectAll'));
|
|
|
};
|
|
|
|
|
|
// 修改单选逻辑,确保selectedRows正确更新
|
|
@@ -403,7 +406,7 @@ const getList = async () => {
|
|
|
loading.value = true
|
|
|
list.value = []
|
|
|
try {
|
|
|
- const data = await IotDeviceApi.getPlanDevicePage(queryParams)
|
|
|
+ const data = await IotDeviceApi.getIotDevicePage(queryParams)
|
|
|
list.value = data.list
|
|
|
total.value = data.total
|
|
|
} finally {
|
|
@@ -425,6 +428,14 @@ const resetQuery = () => {
|
|
|
queryFormRef.value.resetFields()
|
|
|
handleQuery()
|
|
|
}
|
|
|
+
|
|
|
+onMounted(async () => {
|
|
|
+ productClassifyList.value = handleTree(
|
|
|
+ await ProductClassifyApi.IotProductClassifyApi.getSimpleProductClassifyList()
|
|
|
+ )
|
|
|
+})
|
|
|
+
|
|
|
+
|
|
|
</script>
|
|
|
<style lang="scss">
|
|
|
.no-label-radio .el-radio__label {
|