Merge remote-tracking branch 'origin/master'
11 files modified
1 files deleted
| | |
| | | __INTLIFY_PROD_DEVTOOLS__: false, |
| | | }, |
| | | server: { |
| | | port: 5174, |
| | | port: 5177, |
| | | // host: '192.168.1.178', |
| | | proxy: { |
| | | '/api': { |
| | |
| | | // key: fs.readFileSync('./127.0.0.1+3-key.pem'), // 私钥路径 |
| | | // cert: fs.readFileSync('./127.0.0.1+3.pem'), // 证书路径 |
| | | // }, |
| | | port: 5175, |
| | | port: 5179, |
| | | proxy: { |
| | | '/aisky-webodm-vol': { |
| | | target: 'https://wrj.shuixiongit.com/aisky-webodm-vol', |
| | |
| | | innovationStatus: '', |
| | | }) |
| | | |
| | | // 从父组件注入字典数据 |
| | | const appInnovationStatusOptions = inject('appInnovationStatusOptions') |
| | | |
| | | const emit = defineEmits(['success']) |
| | | const formRef = ref(null) // 表单实例 |
| | | const formData = ref(initForm()) // 表单数据 |
| | |
| | | <el-table-column label="操作" class-name="operation-btns"> |
| | | <template v-slot="{ row }"> |
| | | <el-link @click="openForm('view', row)">查看</el-link> |
| | | <el-link @click="openForm('edit', row)">编辑</el-link> |
| | | <!-- <el-link @click="openForm('edit', row)">编辑</el-link>--> |
| | | <el-link @click="handleDelete(row)">删除</el-link> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <div class="label">相关附件</div> |
| | | <div class="val">{{ formData.attachName || '暂无附件' }}</div> |
| | | <div class="val">{{ formData.attachNames || '暂无附件' }}</div> |
| | | </el-col> |
| | | <el-col :span="12" v-if="detailObjectionStatus === '2'"> |
| | | <div class="label">其他异议详情</div> |
| | |
| | | > |
| | | 反馈 |
| | | </el-button> |
| | | <el-button |
| | | class="save-btn" |
| | | color="#4C34FF" |
| | | |
| | | :loading="submitting" |
| | | :disabled="submitting" |
| | | @click="handleDownloadAttach" |
| | | |
| | | > |
| | | 下载附件 |
| | | </el-button> |
| | | </template> |
| | | <template v-if="detailDemandStatus === '2'"> |
| | | <template v-if="detailObjectionStatus === '2'"> |
| | | <el-button color="#F2F3F5" :loading="submitting" :disabled="submitting" @click="visible = false">关闭</el-button> |
| | | </template> |
| | | </template> |
| | |
| | | import { |
| | | gdDataObjectionDetailApi, |
| | | gdDataObjectionSubmitApi, |
| | | getAttachDetailApi, |
| | | } from '@/views/orderView/orderDataManage/dataObjection/dataObjectionApi' |
| | | import { putFileAttachApi } from '@/views/orderView/orderDataManage/supplyAdd/supplyAddApi' |
| | | import { pxToRem } from '@/utils/rem' |
| | |
| | | const titleEnum = ref({ edit: '编辑', view: '查看', add: '数据异议申请' }) |
| | | const fileList = ref([]) // 上传文件列表 |
| | | const uploadedFiles = ref([]) // 已上传文件列表 |
| | | const attachmentDetailsList = ref([]) |
| | | |
| | | // 表单校验规则 |
| | | const rules = { |
| | |
| | | if (file.response && file.response.attachId) { |
| | | uploadedFiles.value = uploadedFiles.value.filter(item => item.attachId !== file.response.attachId) |
| | | } |
| | | // 更新formData中的附件信息 |
| | | formData.value.attachId = uploadedFiles.value.map(f => f.attachId).join(',') |
| | | formData.value.attachName = uploadedFiles.value.map(f => f.originalName).join(',') |
| | | } |
| | | |
| | | // 上传前验证 |
| | |
| | | link: fileData.link, |
| | | attachId: fileData.attachId, |
| | | }) |
| | | // 更新formData中的附件信息 |
| | | formData.value.attachId = uploadedFiles.value.map(f => f.attachId).join(',') |
| | | formData.value.attachName = uploadedFiles.value.map(f => f.originalName).join(',') |
| | | ElMessage.success('文件上传成功!') |
| | | } |
| | | } |
| | |
| | | const res = await gdDataObjectionDetailApi({ id: formData.value.id }) |
| | | formData.value = res?.data?.data ?? {} |
| | | } |
| | | // 获取附件详情 |
| | | async function getAttachDetail() { |
| | | if (!formData.value.id) return |
| | | const res = await getAttachDetailApi({ id: formData.value.id }) |
| | | console.log('附件详情',res.data.data) |
| | | attachmentDetailsList.value=res.data.data |
| | | } |
| | | // 处理附件下载 |
| | | async function handleDownloadAttach() { |
| | | console.log('附件'); |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | // 打开弹框 |
| | | async function open({ mode = 'add', row } = {}) { |
| | |
| | | feedbackFormData.value = initFeedbackForm() |
| | | if (dialogMode.value !== 'add') { |
| | | await loadDetail() |
| | | await getAttachDetail() |
| | | } |
| | | } |
| | | |
| | |
| | | }) |
| | | } |
| | | |
| | | // 获取附件详情 |
| | | export const getAttachDetailApi = params => { |
| | | return request({ |
| | | url: `/blade-resource/attach/detail`, |
| | | method: 'get', |
| | | params, |
| | | }) |
| | | } |
| | | |
| | |
| | | </el-row> |
| | | </div> |
| | | <!-- 申请中--> |
| | | <div v-if="detailDemandStatus === '1'"> |
| | | <div v-if="detailDemandStatus === '1' && !requesterProvider"> |
| | | <div class="detail-title">数据上传</div> |
| | | <div class="upload-container"> |
| | | <el-upload |
| | |
| | | </div> |
| | | </div> |
| | | <template #footer> |
| | | <template v-if="detailDemandStatus === '1'"> |
| | | <template v-if="detailDemandStatus === '1' && !requesterProvider"> |
| | | <el-button class="save-btn" color="#4C34FF" @click="rejectTheApplication">拒绝申请</el-button> |
| | | <el-button color="#F2F3F5" @click="approvedByTheReview">审核通过</el-button> |
| | | </template> |
| | |
| | | import { ElMessage } from 'element-plus' |
| | | import reasonForRejectionDialog from '@/views/orderView/orderDataManage/supplyAdd/reasonForRejectionDialog.vue' |
| | | import AuditRecord from '@/views/orderView/orderDataManage/supplyAdd/auditRecord.vue' // 导入新组件 |
| | | |
| | | import { useStore } from 'vuex' |
| | | const store = useStore() |
| | | const requesterProvider = computed(() => store.state.user.userInfo?.role_id === '2014158512610869250') |
| | | const emit = defineEmits(['success']) |
| | | const dictObj = inject('dictObj') |
| | | const deptTree = inject('deptTree') |
| | |
| | | import request from '@/axios' |
| | | |
| | | // 分页查询 |
| | | // 分页查询巡查page |
| | | export const gdPatrolTaskPageApi = params => { |
| | | return request({ |
| | | url: `/drone-gd/workOrder/gdPatrolTask/page`, |
| | |
| | | <el-table-column prop="deviceName" label="设备型号" /> |
| | | <el-table-column prop="devicePayload" label="设备负载" /> |
| | | </el-table> |
| | | <template v-if="hasPatrolTaskList"> |
| | | <div class="detail-title" :style="{ marginTop: pxToRem(20) }">巡查任务名称</div> |
| | | <el-table class="setHeight" :data="patrolTaskList" row-key="id"> |
| | | <el-table-column prop="patrolTaskName" show-overflow-tooltip label="巡查任务名称" /> |
| | | <el-table-column prop="patrolTaskType" show-overflow-tooltip label="巡查任务类型"> |
| | | <template v-slot="{ row }"> |
| | | {{ getDictLabel(row.patrolTaskType, dictObj.patrolTaskType) }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="taskStatus" show-overflow-tooltip label="任务状态"> |
| | | <template v-slot="{ row }"> |
| | | {{ getDictLabel(row.taskStatus, dictObj.taskStatus) }} |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="executeTime" show-overflow-tooltip label="任务执行时间" /> |
| | | <el-table-column prop="feishou" show-overflow-tooltip label="选择飞手" /> |
| | | <el-table-column prop="deviceId" show-overflow-tooltip label="选择设备" /> |
| | | <el-table-column label="操作" class-name="operation-btns"> |
| | | <template v-slot="{ row }"> |
| | | <el-link type="primary" @click="">查看</el-link> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </template> |
| | | |
| | | </div> |
| | | <el-form |
| | | class="gd-dialog-form" |
| | |
| | | import dayjs from 'dayjs' |
| | | import RefuseOrderDialog from '@/views/orderView/orderManage/orderManage/RefuseOrderDialog.vue' |
| | | import CommonCesiumMap from '@/components/map-container/common-cesium-map.vue' |
| | | import { gdPatrolTaskPageApi } from '@/views/orderView/orderManage/inspectionRequest/inspectionRequestApi' |
| | | |
| | | // 初始化表单数据 |
| | | const initForm = () => ({ |
| | |
| | | const rejectVisible = ref(false) |
| | | const dictObj = inject('dictObj') |
| | | const dateRange = ref([]) |
| | | const patrolTaskList = ref([]) |
| | | const emit = defineEmits(['success']) |
| | | const formRef = ref(null) // 表单实例 |
| | | const formData = ref(initForm()) // 表单数据 |
| | |
| | | }) |
| | | } |
| | | |
| | | const hasPatrolTaskList = computed(() => ['30','40','50','60'].includes(String(formData.value.workOrderStatus))) |
| | | |
| | | function gdPatrolTaskPage() { |
| | | gdPatrolTaskPageApi({ current: 1, size: 1000, workOrderId: formData.value.id }).then(res => { |
| | | patrolTaskList.value = res.data.data.records || [] |
| | | }) |
| | | } |
| | | |
| | | // 打开弹框 |
| | | async function open({ mode = 'add', row } = {}) { |
| | | dialogMode.value = mode |
| | | formData.value = dialogMode.value === 'add' ? initForm() : row |
| | | initMap() |
| | | if (dialogMode.value !== 'add') { |
| | | await loadDetail() |
| | | } |
| | | await getDeviceList() |
| | | if (dialogMode.value === 'add') { |
| | | addPolygon() |
| | | } else if (dialogMode.value === 'edit') { |
| | | editPolygon() |
| | | } else { |
| | | viewPolygon() |
| | | await loadDetail() |
| | | hasPatrolTaskList.value && gdPatrolTaskPage() |
| | | dialogMode.value === 'edit' ? editPolygon() : viewPolygon() |
| | | } |
| | | await getDeviceList() |
| | | await nextTick() |
| | | syncSelection() |
| | | } |
| | |
| | | } |
| | | |
| | | .setHeight { |
| | | max-height: 300px; |
| | | min-height: 200px; |
| | | //max-height: 300px; |
| | | //min-height: 200px; |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <basic-container> |
| | | <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick"> |
| | | <el-tab-pane label="全部 " name="all"></el-tab-pane> |
| | | <el-tab-pane label="我的任务工单" name="my"></el-tab-pane> |
| | | </el-tabs> |
| | | <el-form ref="queryParamsRef" :model="searchParams" class="gd-search-form"> |
| | | <el-form-item label="工单名称" prop="workOrderName"> |
| | | <el-input |
| | |
| | | </el-form> |
| | | |
| | | <div class="gd-table-toolbar"> |
| | | <el-button color="#F2F3F5" @click="requester = !requester">我是{{ requester ? '需求方' : '服务方' }}</el-button> |
| | | <!-- <el-button color="#F2F3F5" @click="requester = !requester">我是{{ requester ? '需求方' : '服务方' }}</el-button>--> |
| | | <el-button color="#F2F3F5" @click="previewVisible = true">预览</el-button> |
| | | |
| | | <el-button :icon="Plus" color="#4C34FF" type="primary" @click="openForm('add')">新增</el-button> |
| | |
| | | import PreviewFiles from '@/components/PreviewFiles/PreviewFiles.vue' |
| | | import testDock from '@/assets/docx/testDocx.docx' |
| | | import testPdf from '@/assets/pdf/testPdf.pdf' |
| | | import { useStore } from 'vuex' |
| | | |
| | | const store = useStore() |
| | | const requester = computed(() => store.state.user.userInfo?.role_id === '2014158512610869250') |
| | | const activeName = ref('all') |
| | | |
| | | // 初始化查询参数 |
| | | const initSearchParams = () => ({ |
| | |
| | | current: 1, // 当前页 |
| | | size: 10, // 每页大小 |
| | | }) |
| | | const requester = ref(true) |
| | | // const requester = ref(true) |
| | | const searchParams = ref(initSearchParams()) // 查询参数 |
| | | const dateRange = ref([]) // 执行时间范围 |
| | | const total = ref(0) // 总条数 |
| | |
| | | const range = dateRangeFormat(dateRange.value) |
| | | loading.value = true |
| | | try { |
| | | const res = await gdWorkOrderPageApi({ ...searchParams.value, startTime: range[0], endTime: range[1] }) |
| | | const res = await gdWorkOrderPageApi({ |
| | | ...searchParams.value, |
| | | startTime: range[0], |
| | | endTime: range[1], |
| | | createUser: activeName.value === 'user' ? store.state.user.userInfo.user_id : '', |
| | | }) |
| | | list.value = res?.data?.data?.records ?? [] |
| | | total.value = res?.data?.data?.total ?? 0 |
| | | } finally { |
| | |
| | | dateRange.value = [] |
| | | searchParams.value.current = 1 |
| | | getList() |
| | | } |
| | | |
| | | function handleClick(tab,event) { |
| | | handleSearch() |
| | | } |
| | | |
| | | // 新增/编辑/查看 弹框 |
| | |
| | | |
| | | // 获取字典 |
| | | function getDictList() { |
| | | getDictionaryByCode('deviceLoadDemand,workOrderType,workOrderStatus').then(res => { |
| | | getDictionaryByCode('deviceLoadDemand,workOrderType,workOrderStatus,patrolTaskType,taskStatus').then(res => { |
| | | dictObj.value = res.data.data |
| | | }) |
| | | } |
| | |
| | | __INTLIFY_PROD_DEVTOOLS__: false, |
| | | }, |
| | | server: { |
| | | port: 5174, |
| | | port: 5178, |
| | | // host: '192.168.1.178', |
| | | proxy: { |
| | | '/api': { |