| | |
| | | :title="titleEnum[dialogMode]" |
| | | @closed="visible = false" |
| | | destroy-on-close |
| | | width="75%" |
| | | width="90%" |
| | | :close-on-click-modal="false" |
| | | > |
| | | <div> |
| | |
| | | <el-select |
| | | no-data-text="暂无推荐飞手" |
| | | class="gd-select" |
| | | popper-class="gd-select-popper" |
| | | popper-class="gd-select-popper" |
| | | v-model="row.deviceFlyerId" |
| | | placeholder="请选择" |
| | | filterable |
| | |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="algorithmIds" min-width="160"> |
| | | <template #header> |
| | | 算法 |
| | | </template> |
| | | <template v-slot="{ row }"> |
| | | <el-tree-select |
| | | class="gd-select" |
| | | popper-class="gd-tree-select-popper" |
| | | v-model="row.algorithmIds" |
| | | :data="algorithmTreeData" |
| | | :props="{ label: 'name', children: 'children', value: 'id' }" |
| | | node-key="id" |
| | | multiple |
| | | collapse-tags |
| | | collapse-tags-tooltip |
| | | check-strictly |
| | | filterable |
| | | placeholder="请选择" |
| | | :disabled="dialogReadonly" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | |
| | | <el-table-column prop="taskDesc" label="巡查任务描述"> |
| | | <template v-slot="{ row }"> |
| | | <el-input class="gd-input" v-model="row.taskDesc" placeholder="请输入" :disabled="dialogReadonly" /> |
| | |
| | | import { gdWorkOrderPageApi } from '../orderManage/orderManageApi' |
| | | import { gdManageDeviceListApi } from '../orderManage/gdManageDeviceApi' |
| | | import { pxToRem } from '@/utils/rem' |
| | | import { airlineListApi } from '@/api/zkxt' |
| | | import { airlineListApi, algorithmGroupedApi } from '@/api/zkxt' |
| | | |
| | | // 初始化任务行 |
| | | const initTaskRow = () => ({ |
| | |
| | | patrolRouteUrl: '', |
| | | deviceFlyerId: '', |
| | | deviceId: null, |
| | | algorithmIds: [], |
| | | taskDesc: '', |
| | | }) |
| | | const dictObj = inject('dictObj') |
| | |
| | | const deviceList = ref([]) // 设备列表 |
| | | const routeOptions = ref([]) // 航线选项(根据工单范围获取) |
| | | const routeLoading = ref(false) // 航线加载中 |
| | | const algorithmTreeData = ref([]) // 算法树形数据 |
| | | |
| | | // 获取算法分组数据 |
| | | async function getAlgorithmList() { |
| | | try { |
| | | const res = await algorithmGroupedApi() |
| | | const list = res?.data?.data ?? [] |
| | | algorithmTreeData.value = list.map(group => ({ |
| | | id: 'group_' + group.type, |
| | | name: group.type, |
| | | disabled: true, |
| | | children: (group.algorithms || []).map(alg => ({ |
| | | id: alg.id, |
| | | name: alg.name, |
| | | })) |
| | | })) |
| | | } catch (e) { |
| | | console.error('获取算法列表失败', e) |
| | | } |
| | | } |
| | | |
| | | // 子任务列表 |
| | | const taskList = ref([initTaskRow()]) |
| | |
| | | async function open({ mode = 'add', row } = {}) { |
| | | dialogMode.value = mode |
| | | await getWorkOrderList() |
| | | getAlgorithmList() |
| | | if (dialogMode.value === 'add') { |
| | | selectedWorkOrderId.value = null |
| | | selectedWorkOrder.value = null |