Merge remote-tracking branch 'origin/master'
17 files modified
2 files added
| | |
| | | }) |
| | | } |
| | | |
| | | // 获取航线详情 |
| | | export const queryAirById = (id) => { |
| | | return request({ |
| | | url: `/webservice/webservice/airline/queryById/${id}`, |
| | | method: 'get', |
| | | }) |
| | | } |
| | | |
| | | |
| | |
| | | height: 100%; |
| | | box-sizing: border-box; |
| | | background: url('@/assets/images/layoutBg.png') repeat; |
| | | background-position: 0 -20px; |
| | | |
| | | .layer-content-bottom { |
| | | width: 100%; |
| | |
| | | $form-bg-gray: #DDE2ED; |
| | | $form-tips-gray: #A1A3D4; |
| | | |
| | | $search-item-icon-color: #383874; |
| | | $search-item-symbol-color: #383874; |
| | | |
| | | $search-item-symbol-bg: #fff; |
| | | $search-item-symbol-txt: #4E5969; |
| | | |
| | | .gd-input { |
| | | --bg: #{$form-bg}; |
| | | --tips: #{$form-tips}; |
| | |
| | | --tips: #{$form-tips-gray}; |
| | | } |
| | | |
| | | .el-input__wrapper, .el-textarea__inner { |
| | | .el-input__wrapper, |
| | | .el-textarea__inner { |
| | | box-shadow: none !important; |
| | | background: var(--bg); |
| | | border: none; |
| | | } |
| | | .el-input__inner, .el-textarea__inner { |
| | | |
| | | .el-input__inner, |
| | | .el-textarea__inner { |
| | | &::placeholder { |
| | | color: var(--tips); |
| | | } |
| | |
| | | color: #ffffff; |
| | | } |
| | | |
| | | .gd-select, { |
| | | .gd-select { |
| | | --bg: #{$form-bg}; |
| | | --tips: #{$form-tips}; |
| | | |
| | |
| | | background: var(--bg); |
| | | box-shadow: none !important; |
| | | border: none; |
| | | |
| | | |
| | | .el-select__suffix { |
| | | .el-icon { |
| | | color: $search-item-icon-color; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .el-select__placeholder { |
| | |
| | | &.gray { |
| | | --bg: #{$form-bg-gray}; |
| | | --tips: #{$form-tips-gray}; |
| | | } |
| | | |
| | | .el-icon { |
| | | color: $search-item-icon-color; |
| | | } |
| | | |
| | | .el-range-separator { |
| | | color: $search-item-symbol-color !important; |
| | | } |
| | | |
| | | box-shadow: none !important; |
| | |
| | | background: none !important; |
| | | } |
| | | |
| | | .el-tree-node.is-current > .el-tree-node__content { |
| | | .el-tree-node.is-current>.el-tree-node__content { |
| | | color: #479dff !important; |
| | | } |
| | | } |
| | |
| | | } |
| | | |
| | | .gd-date-picker-popper { |
| | | background: #DDE2ED !important; |
| | | background: #fff !important; |
| | | border: none !important; |
| | | border-radius: 0px 0px 8px 8px; |
| | | |
| | | .el-date-picker__prev-btn, |
| | | .el-date-picker__next-btn { |
| | | .el-icon { |
| | | color: #fff !important; |
| | | color: #4E5969 !important; |
| | | } |
| | | } |
| | | |
| | | .el-date-picker__header-label { |
| | | color: #fff !important; |
| | | color: #4E5969 !important; |
| | | } |
| | | |
| | | .el-picker-panel { |
| | | .el-picker-panel__body-wrapper { |
| | | .el-picker-panel__body { |
| | | background: #DDE2ED !important; |
| | | color: #fff !important; |
| | | background: #fff !important; |
| | | color: #4E5969 !important; |
| | | |
| | | .el-date-range-picker__time-header { |
| | | .el-input__wrapper { |
| | |
| | | .el-picker-panel__content { |
| | | .el-date-range-picker__header { |
| | | .el-picker-panel__icon-btn { |
| | | color: #fff !important; |
| | | color: #4E5969 !important; |
| | | |
| | | &:hover { |
| | | color: var(--el-color-primary) !important; |
| | |
| | | } |
| | | } |
| | | |
| | | & > div { |
| | | &>div { |
| | | span { |
| | | color: #fff !important; |
| | | color: #4E5969 !important; |
| | | } |
| | | } |
| | | } |
| | |
| | | td.start-date span, |
| | | td.start-date span, |
| | | td.end-date span { |
| | | background-color: #DDE2ED !important; |
| | | color: #fff !important; |
| | | background-color: #354DFF !important; |
| | | } |
| | | |
| | | td.in-range div, |
| | | td.in-range div:hover, |
| | | &.is-week-mode .el-date-table__row.current div, |
| | | &.is-week-mode .el-date-table__row:hover div { |
| | | background-color: rgba(60, 121, 202) !important; |
| | | background-color: rgba(71, 126, 255, .1) !important; |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | .el-overlay-dialog { |
| | | display: flex; |
| | | justify-content: center; /* 水平居中 */ |
| | | align-items: center; /* 垂直居中 */ |
| | | justify-content: center; |
| | | /* 水平居中 */ |
| | | align-items: center; |
| | | /* 垂直居中 */ |
| | | } |
| | | |
| | | .gd-dialog { |
| | | padding: 30px; |
| | | padding: 20px; |
| | | display: flex; |
| | | flex-direction: column; |
| | | background: #FFFFFF; |
| | |
| | | max-height: 90vh; |
| | | |
| | | .el-dialog__header { |
| | | padding-bottom: 20px; |
| | | position: relative; |
| | | |
| | | span { |
| | | font-family: Source Han Sans CN, Source Han Sans CN; |
| | | font-weight: bold; |
| | |
| | | text-align: left; |
| | | font-style: normal; |
| | | text-transform: none; |
| | | } |
| | | |
| | | &>button { |
| | | width: auto; |
| | | height: auto; |
| | | display: flex; |
| | | align-items: center; |
| | | } |
| | | |
| | | .el-icon { |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | .el-upload { |
| | | button { |
| | | background: #4C34FF; |
| | | border: none; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .el-dialog__footer { |
| | |
| | | flex: 1; |
| | | background: transparent !important; |
| | | |
| | | .el-table--border .el-table__inner-wrapper:after, |
| | | .el-table--border:after, |
| | | .el-table--border:before, |
| | | .el-table__inner-wrapper:before { |
| | | height: 0; |
| | | } |
| | | |
| | | tr { |
| | | background: transparent !important; |
| | | } |
| | | |
| | | tr.el-table__row { |
| | | &:hover { |
| | | background: #F7F8FC !important; |
| | | } |
| | | } |
| | | |
| | | th.el-table__cell { |
| | |
| | | td.operation-btns .cell { |
| | | display: flex; |
| | | flex-wrap: nowrap; |
| | | gap: 12px; |
| | | /* 按钮间距(推荐) */ |
| | | white-space: nowrap; |
| | | /* 双保险 */ |
| | | |
| | | a { |
| | | display: flex; |
| | | align-items: center; |
| | | position: relative; |
| | | margin: 0 10px; |
| | | min-width: 28px; |
| | | color: #0075FF; |
| | | |
| | | &:first-child { |
| | | margin-left: 0; |
| | | } |
| | | |
| | | &::before { |
| | | content: ''; |
| | | position: absolute; |
| | | top: 50%; |
| | | right: -10px; |
| | | width: 1px; |
| | | height: 12px; |
| | | background: #BCC8E3; |
| | | transform: translateY(calc(-50% - 1px)); |
| | | } |
| | | |
| | | &:last-child { |
| | | margin-right: 0; |
| | | |
| | | &::before { |
| | | display: none; |
| | | } |
| | | } |
| | | } |
| | | } |
| | |
| | | background: transparent !important; |
| | | } |
| | | |
| | | .el-checkbox { |
| | | width: 16px; |
| | | height: 16px; |
| | | |
| | | .el-checkbox__input { |
| | | width: 16px; |
| | | height: 16px; |
| | | |
| | | .el-checkbox__inner { |
| | | width: 16px; |
| | | height: 16px; |
| | | |
| | | border: none; |
| | | background: url("@/assets/images/common/n-checkbox.png") no-repeat center / 100% 100% !important; |
| | | } |
| | | } |
| | | |
| | | &.is-checked { |
| | | .el-checkbox__input { |
| | | .el-checkbox__inner { |
| | | border: none; |
| | | background: url("@/assets/images/common/checkbox.png") no-repeat center / 100% 100% !important; |
| | | |
| | | &::after { |
| | | content: none; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .fixed-column { |
| | | background-color: #1A1A2A !important; |
| | | } |
| | | } |
| | | |
| | | .el-table { |
| | | |
| | | .el-table--border .el-table__inner-wrapper:after, |
| | | .el-table--border:after, |
| | | .el-table--border:before, |
| | | .el-table__inner-wrapper:before { |
| | | height: 0; |
| | | } |
| | | |
| | | td.el-table__cell { |
| | | border: none !important; |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | .gd-confirm-custom { |
| | | background: #1A1A2A; |
| | | background: #fff; |
| | | border-radius: 6px; |
| | | border: 1px solid #2E2E46; |
| | | border: none; |
| | | |
| | | .el-message-box__header { |
| | | .el-message-box__title { |
| | | font-family: Source Han Sans CN, Source Han Sans CN; |
| | | font-weight: bold; |
| | | font-size: 18px; |
| | | color: #FFFFFF; |
| | | color: #383874; |
| | | line-height: 22px; |
| | | text-align: left; |
| | | font-style: normal; |
| | |
| | | } |
| | | |
| | | .el-message-box__content { |
| | | color: #D4D5D7; |
| | | color: #4E5969; |
| | | } |
| | | |
| | | .el-message-box__btns { |
| | |
| | | } |
| | | |
| | | .gd-confirm-button { |
| | | background: #284FE3 !important; |
| | | border-color: #284FE3 !important; |
| | | background: #4C34FF !important; |
| | | border: none !important; |
| | | color: #fff !important; |
| | | } |
| | | |
| | | .gd-confirm-cancel-button { |
| | | background: #2B2B4C !important; |
| | | border-color: #2B2B4C !important; |
| | | color: #FFFFFF !important; |
| | | background: #F2F3F5 !important; |
| | | border: none !important; |
| | | color: #161B2C !important; |
| | | } |
| | | |
| | | .gd-search-form { |
| | |
| | | |
| | | .gd-select-popper { |
| | | border: none; |
| | | background: $form-bg !important; |
| | | background: $search-item-symbol-bg !important; |
| | | |
| | | .el-select-dropdown { |
| | | .el-scrollbar { |
| | | .el-select-dropdown__wrap { |
| | | .el-select-dropdown__list { |
| | | .el-select-dropdown__item { |
| | | color: #4E5969; |
| | | color: $search-item-symbol-txt; |
| | | |
| | | &.hover { |
| | | background-color: rgba(0, 120, 233, 0.63) !important; |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | .gd-tabs { |
| | | .el-tabs__header { |
| | | .el-tabs__item.is-active { |
| | | color: #3247E5; |
| | | } |
| | | |
| | | .el-tabs__active-bar { |
| | | background: #3247E5; |
| | | } |
| | | } |
| | | } |
| | |
| | | |
| | | border-radius: 3px 3px 3px 3px; |
| | | |
| | | &:active { |
| | | color: #FFFFFF !important; |
| | | background: #5B6BFF !important; |
| | | |
| | | span { |
| | | color: #fff !important; |
| | | } |
| | | } |
| | | |
| | | &.is-active { |
| | | //padding: 0 !important; |
| | | //padding-left: 20px !important; |
| | | color: #FFFFFF; |
| | | background: #5B6BFF; |
| | | color: #FFFFFF !important; |
| | | background: #5B6BFF !important; |
| | | |
| | | .is-icon-close { |
| | | //margin: 0 10px; |
| | |
| | | <el-table-column prop="caseDesc" show-overflow-tooltip label="案例描述" /> |
| | | <el-table-column label="操作" class-name="operation-btns" width="180"> |
| | | <template v-slot="{ row }"> |
| | | <el-link @click="openForm('view', row)">查看</el-link> |
| | | <!-- <el-link @click="openForm('edit', row)">编辑</el-link>--> |
| | | <el-link @click="handleDelete(row)" v-if="!['1', '2'].includes(row.innovationStatus)">删除</el-link> |
| | | <el-link type="primary" @click="openForm('view', row)">查看</el-link> |
| | | <!-- <el-link type="primary" @click="openForm('edit', row)">编辑</el-link>--> |
| | | <el-link type="primary" @click="handleDelete(row)" v-if="!['1', '2'].includes(row.innovationStatus)">删除</el-link> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <el-table-column prop="reviewOpinion" show-overflow-tooltip label="审核意见" /> |
| | | <el-table-column label="操作" class-name="operation-btns" width="180"> |
| | | <template v-slot="{ row }"> |
| | | <el-link @click="openForm('view', row)">查看</el-link> |
| | | <el-link @click="openForm('edit', row)" v-if="!['1', '2'].includes(row.objectionStatus)">编辑</el-link> |
| | | <el-link @click="handleDelete(row)" v-if="!['1', '2'].includes(row.objectionStatus)">删除</el-link> |
| | | <el-link type="primary" @click="openForm('view', row)">查看</el-link> |
| | | <el-link type="primary" @click="openForm('edit', row)" v-if="!['1', '2'].includes(row.objectionStatus)">编辑</el-link> |
| | | <el-link type="primary" @click="handleDelete(row)" v-if="!['1', '2'].includes(row.objectionStatus)">删除</el-link> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <el-table-column prop="evaluationContent" show-overflow-tooltip label="评价内容" /> |
| | | <el-table-column label="操作" class-name="operation-btns" width="180"> |
| | | <template v-slot="{ row }"> |
| | | <el-link @click="openForm('view', row)">查看</el-link> |
| | | <el-link @click="openForm('edit', row)">编辑</el-link> |
| | | <el-link @click="handleDelete(row)">删除</el-link> |
| | | <el-link type="primary" @click="openForm('view', row)">查看</el-link> |
| | | <el-link type="primary" @click="openForm('edit', row)">编辑</el-link> |
| | | <el-link type="primary" @click="handleDelete(row)">删除</el-link> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <el-table-column prop="demandInfo" show-overflow-tooltip label="需求信息项" /> |
| | | <el-table-column label="操作" class-name="operation-btns" width="180"> |
| | | <template v-slot="{ row }"> |
| | | <el-link @click="openForm('view', row)">查看</el-link> |
| | | <el-link type="primary" @click="openForm('view', row)">查看</el-link> |
| | | <!-- 只对非审批状态显示编辑和删除按钮 --> |
| | | <el-link @click="openForm('edit', row)" v-if="!['1', '2', '3'].includes(row.demandStatus)">编辑</el-link> |
| | | <el-link @click="handleDelete(row)" v-if="!['1', '2', '3'].includes(row.demandStatus)">删除</el-link> |
| | | <el-link type="primary" @click="openForm('edit', row)" v-if="!['1', '2', '3'].includes(row.demandStatus)">编辑</el-link> |
| | | <el-link type="primary" @click="handleDelete(row)" v-if="!['1', '2', '3'].includes(row.demandStatus)">删除</el-link> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <el-table-column prop="distributeUserName" show-overflow-tooltip label="分发人员" /> |
| | | <el-table-column label="操作" class-name="operation-btns" width="140"> |
| | | <template v-slot="{ row }"> |
| | | <el-link v-if="row.distributeStatus === 0" @click="openDistributeDialog(row)" :disabled="row.distributeStatus === 1"> |
| | | <el-link type="primary" |
| | | @click="openDistributeDialog(row)" |
| | | :disabled="row.distributeStatus === 1 || currentRow.taskStatus !== '50'" |
| | | > |
| | | 转为事件并分发 |
| | | </el-link> |
| | | <div class="disabled-text" v-else>转为事件并分发</div> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <el-table-column prop="taskDesc" show-overflow-tooltip label="巡查任务描述" /> |
| | | <el-table-column label="操作" class-name="operation-btns"> |
| | | <template v-slot="{ row }"> |
| | | <el-link @click="viewDiaLogView(row)">查看线索</el-link> |
| | | <el-link type="primary" @click="viewDiaLogView(row)">查看线索</el-link> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | </el-table-column> |
| | | <el-table-column label="操作" class-name="operation-btns"> |
| | | <template v-slot="{ row }"> |
| | | <el-link @click="seeOnlineWord(row)">查看</el-link> |
| | | <el-link @click="openForm(row)">在线编辑</el-link> |
| | | <el-link @click="handleDelete(row)">删除</el-link> |
| | | <el-link type="primary" @click="seeOnlineWord(row)">查看</el-link> |
| | | <el-link type="primary" @click="openForm(row)">在线编辑</el-link> |
| | | <el-link type="primary" @click="handleDelete(row)">删除</el-link> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | const dialogMode = ref('add') // 弹框模式 |
| | | const submitting = ref(false) // 提交中 |
| | | const dialogReadonly = computed(() => dialogMode.value === 'view') |
| | | const titleEnum = ref({ edit: '编辑', view: '查看', add: '新增' }) |
| | | const titleEnum = ref({ edit: '新增', view: '查看', add: '新增' }) |
| | | |
| | | // 工单相关 |
| | | const workOrderList = ref([]) // 工单列表 |
| | |
| | | |
| | | // 获取工单列表 |
| | | async function getWorkOrderList() { |
| | | const res = await gdWorkOrderPageApi({ size: 999, workOrderStatus: '20' }) |
| | | const res = await gdWorkOrderPageApi({ size: 999, workOrderStatus: dialogMode.value ==='add' ? '20' : '' }) |
| | | workOrderList.value = res?.data?.data?.records ?? [] |
| | | } |
| | | |
| | |
| | | // 获取设备列表 |
| | | async function getDeviceList() { |
| | | const res = await gdManageDeviceListApi({ |
| | | deviceIds: selectedWorkOrder.value.recommendDeviceIds, |
| | | deviceIds: selectedWorkOrder.value?.recommendDeviceIds, |
| | | }) |
| | | deviceList.value = res?.data?.data ?? [] |
| | | } |
| | |
| | | watch( |
| | | () => selectedWorkOrderId.value, |
| | | () => { |
| | | handleWorkOrderChange(selectedWorkOrderId.value) |
| | | getDeviceList() |
| | | } |
| | | ) |
| | |
| | | |
| | | // 打开弹框 |
| | | async function open({ mode = 'add', row } = {}) { |
| | | console.log(row, 'rowrow') |
| | | dialogMode.value = mode |
| | | if (mode === 'add') { |
| | | await getWorkOrderList() |
| | | if (dialogMode.value === 'add') { |
| | | selectedWorkOrderId.value = null |
| | | selectedWorkOrder.value = null |
| | | taskList.value = [initTaskRow()] |
| | |
| | | } |
| | | |
| | | onMounted(() => { |
| | | getWorkOrderList() |
| | | |
| | | }) |
| | | |
| | | defineExpose({ open }) |
| | |
| | | </el-col> |
| | | </el-row> |
| | | <template v-if="['6', '7', '8'].includes(taskStatus)"> |
| | | <div class="detail-title" :style="{ marginTop: pxToRem(10) }">任务成功({{ list.length || 0 }}条)</div> |
| | | <div class="detail-title" :style="{ marginTop: pxToRem(10) }"> |
| | | 任务成果({{ taskResultList.length || 0 }}条) |
| | | </div> |
| | | <div class="imgBox"> |
| | | <div v-for="item in list"> |
| | | <div v-for="item in taskResultList"> |
| | | <el-image |
| | | v-if="item.resultUrl" |
| | | :src="item.resultUrl" |
| | |
| | | :layer-mode="4" |
| | | :boundary="false" |
| | | :zoomToBoundary="false" |
| | | @ready="() => mapRef.flyBoundary()" |
| | | @ready="readyMap" |
| | | /> |
| | | </div> |
| | | </div> |
| | | |
| | | <template #footer> |
| | | <template v-if="requester"> |
| | | |
| | | <el-button v-if="['1', '4'].includes(taskStatus)" @click="viewDescription" color="#F2F3F5"> |
| | | {{ gdStatusObj[taskStatus].reason }} |
| | | </el-button> |
| | |
| | | <script setup> |
| | | import { computed, ref, onMounted } from 'vue' |
| | | import { ElMessage } from 'element-plus' |
| | | import { fieldRules, getDictLabel } from '@ztzf/utils' |
| | | import { fieldRules, flyVisual, getDictLabel } from '@ztzf/utils' |
| | | import { gdPatrolTaskRepublish, gdFlyerPageApi, gdPatrolTaskAuditApi } from './inspectionRequestApi' |
| | | import { gdWorkOrderFlowListApi, gdWorkOrderPageApi } from '../orderManage/orderManageApi' |
| | | import { gdManageDeviceListApi } from '../orderManage/gdManageDeviceApi' |
| | |
| | | import RefuseOrderDialog from '@/views/orderView/orderManage/orderManage/RefuseOrderDialog.vue' |
| | | import RefuseOrderDialog1 from '@/views/orderView/orderManage/inspectionRequest/RefuseOrderDialog1.vue' |
| | | import { Check } from '@element-plus/icons-vue' |
| | | import { queryAirById } from '@/api/zkxt' |
| | | import * as Cesium from 'cesium' |
| | | |
| | | // 初始化表单数据 |
| | | const initForm = () => ({ |
| | |
| | | const processList = ref([]) |
| | | // 加载时间线list |
| | | function loadList() { |
| | | gdWorkOrderFlowListApi({ workOrderId: formData.value.id,type: '1' }).then(res => { |
| | | gdWorkOrderFlowListApi({ workOrderId: formData.value.id, type: '1' }).then(res => { |
| | | processList.value = res.data.data |
| | | }) |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | let list = ref([]) |
| | | let taskResultList = ref([]) |
| | | // 获取成果列表 |
| | | async function getList() { |
| | | async function getTaskResultList() { |
| | | if (!formData.value?.id) return |
| | | try { |
| | | const res = await gdTaskResultListApi({ patrolTaskId: formData.value.id }) |
| | | list.value = res?.data?.data ?? [] |
| | | taskResultList.value = res?.data?.data ?? [] |
| | | } finally { |
| | | } |
| | | } |
| | | |
| | | // 获取航线详情 |
| | | function getAirDetails() { |
| | | queryAirById(formData.value.patrolRouteUrl).then(res => { |
| | | const list = res.data.data.airlineWaypoints |
| | | if (!list.length) return mapRef.value?.flyBoundary() |
| | | const result = list.map(item => [Number(item.longitude), Number(item.latitude)]).flat() |
| | | viewer.entities.add({ |
| | | polyline: { |
| | | positions: Cesium.Cartesian3.fromDegreesArray(result), |
| | | clampToGround: true, |
| | | width: 3, |
| | | material: Cesium.Color.RED, |
| | | }, |
| | | }) |
| | | // 渲染起点(蓝色) |
| | | const startPoint = list[0] |
| | | viewer.entities.add({ |
| | | position: Cesium.Cartesian3.fromDegrees(Number(startPoint.longitude), Number(startPoint.latitude), startPoint.height || 0), |
| | | point: { |
| | | pixelSize: 12, |
| | | color: Cesium.Color.BLUE, |
| | | outlineColor: Cesium.Color.WHITE, |
| | | outlineWidth: 2, |
| | | heightReference: Cesium.HeightReference.CLAMP_TO_GROUND, |
| | | }, |
| | | }) |
| | | // 渲染终点(红色) |
| | | const endPoint = list[list.length - 1] |
| | | viewer.entities.add({ |
| | | position: Cesium.Cartesian3.fromDegrees(Number(endPoint.longitude), Number(endPoint.latitude), endPoint.height || 0), |
| | | point: { |
| | | pixelSize: 12, |
| | | color: Cesium.Color.RED, |
| | | outlineColor: Cesium.Color.WHITE, |
| | | outlineWidth: 2, |
| | | heightReference: Cesium.HeightReference.CLAMP_TO_GROUND, |
| | | }, |
| | | }) |
| | | flyVisual({ |
| | | positionsData: list.map(i => [Number(i.longitude), Number(i.latitude), i.height || 0]), |
| | | viewer, |
| | | }) |
| | | }) |
| | | } |
| | | |
| | | // 打开弹框 |
| | | async function open({ mode = 'view', row } = {}) { |
| | | dialogMode.value = mode |
| | | formData.value = { ...initForm(), ...row } |
| | | console.log(row) |
| | | ;['6', '7', '8'].includes(row.taskStatus) && getList() |
| | | ;['6', '7', '8'].includes(row.taskStatus) && getTaskResultList() |
| | | loadList() |
| | | initMap() |
| | | } |
| | | |
| | | const readyMap = () => { |
| | | // mapRef.value?.flyBoundary() |
| | | getAirDetails() |
| | | } |
| | | |
| | | // 初始化地图实例 |
| | |
| | | width: 100%; |
| | | height: 423px; |
| | | } |
| | | |
| | | } |
| | | .processBox { |
| | | width: 312px; |
| | |
| | | <el-table-column prop="taskDesc" show-overflow-tooltip label="巡查任务描述" /> |
| | | <el-table-column label="操作" class-name="operation-btns"> |
| | | <template v-slot="{ row }"> |
| | | <el-link @click="viewDiaLogView(row)">查看</el-link> |
| | | <!-- <el-link @click="openForm('edit', row)">编辑</el-link>--> |
| | | <el-link type="primary" @click="viewDiaLogView(row)">查看</el-link> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | <el-table-column prop="marketSpace" label="市场空间" align="center" show-overflow-tooltip></el-table-column> |
| | | <el-table-column prop="createTime" label="创建时间" align="center"></el-table-column> |
| | | <el-table-column prop="nickName" label="创建人" align="center"></el-table-column> |
| | | <el-table-column label="操作" width="180" align="center"> |
| | | <el-table-column label="操作" width="180" align="center" class-name="operation-btns"> |
| | | <template #default="scope"> |
| | | <!-- <el-button icon="el-icon-view" type="text" @click="handleDetail(scope.row)">查看</el-button> --> |
| | | <el-button type="text" @click="handleEdit(scope.row)">编辑</el-button> |
| | | <el-button type="text" @click="handleDelete(scope.row)">删除</el-button> |
| | | <el-link @click="handleEdit(scope.row)">编辑</el-link> |
| | | <el-link @click="handleDelete(scope.row)">删除</el-link> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | } |
| | | |
| | | .processBox { |
| | | margin-right: 20px; |
| | | padding: 24px 0; |
| | | width: 312px; |
| | | border: 1px solid #E4E4E4; |
| | | |
| | | .item-content { |
| | | position: relative; |
| | | .flowName { |
| | |
| | | <el-table-column prop="createTime" show-overflow-tooltip label="工单创建时间" /> |
| | | <el-table-column label="操作" class-name="operation-btns"> |
| | | <template v-slot="{ row }"> |
| | | <el-link @click="openFormChange(row)">查看</el-link> |
| | | <!--<el-link @click="openForm('edit', row)">编辑</el-link>--> |
| | | <el-link @click="handleDelete(row)" v-if="requester">删除</el-link> |
| | | <el-link type="primary" @click="openFormChange(row)">查看</el-link> |
| | | <!--<el-link type="primary" @click="openForm('edit', row)">编辑</el-link>--> |
| | | <el-link type="primary" @click="handleDelete(row)" v-if="requester">删除</el-link> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |