吉安感知网项目-前端
罗广辉
2026-01-22 5f5aa9f24c06ff6a6578a072060ec78309f49015
feat: 按钮
5 files modified
171 ■■■■■ changed files
applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/FormDiaLog.vue 13 ●●●● patch | view | raw | blame | history
applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/index.vue 19 ●●●● patch | view | raw | blame | history
applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue 131 ●●●● patch | view | raw | blame | history
applications/task-work-order/src/views/orderView/orderManage/orderManage/RefuseOrderDialog.vue 4 ●●● patch | view | raw | blame | history
applications/task-work-order/src/views/orderView/orderManage/orderManage/index.vue 4 ●●● patch | view | raw | blame | history
applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/FormDiaLog.vue
@@ -256,19 +256,26 @@
// 获取工单列表
async function getWorkOrderList() {
    const res = await gdWorkOrderPageApi({ size: 999 })
    const res = await gdWorkOrderPageApi({ size: 999, })
    workOrderList.value = res?.data?.data?.records ?? []
}
// 获取飞手列表
async function getFlyerList() {
    const res = await gdFlyerPageApi({ size: 999 })
    const res = await gdFlyerPageApi({
        size: 999,
        // todo 需要传入前面的巡查类型
        // patrolTaskType:  '1',
    })
    flyerList.value = res?.data?.data?.records ?? []
}
// 获取设备列表
async function getDeviceList() {
    const res = await gdManageDeviceListApi()
    const res = await gdManageDeviceListApi({
        // TODO 需要传入ids设备
        // ids:
    })
    deviceList.value = res?.data?.data ?? []
}
applications/task-work-order/src/views/orderView/orderManage/inspectionRequest/index.vue
@@ -1,5 +1,9 @@
<template>
    <basic-container>
        <el-tabs class="gd-tabs" v-model="activeName" @tab-click="tabsClick">
            <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="patrolTaskName">
                <el-input
@@ -157,7 +161,7 @@
    deviceLoadDemand: [], // 设备负载需求
    taskStatus: [], // 巡查任务状态
})
const activeName = ref('all')
provide('dictObj', dictObj)
provide('requester', requester)
@@ -166,7 +170,12 @@
    const range = dateRangeFormat(dateRange.value)
    loading.value = true
    try {
        const res = await gdPatrolTaskPageApi({ ...searchParams.value, startTime: range[0], endTime: range[1] })
        const res = await gdPatrolTaskPageApi({
            ...searchParams.value,
            startTime: range[0],
            endTime: range[1],
            createUser: activeName.value === 'my' ? store.state.user.userInfo.user_id : '',
        })
        list.value = res?.data?.data?.records ?? []
        total.value = res?.data?.data?.total ?? 0
    } finally {
@@ -174,6 +183,12 @@
    }
}
function tabsClick(tab, event) {
    activeName.value = tab.props.name
    resetForm()
    handleSearch()
}
// 查询
function handleSearch() {
    searchParams.value.current = 1
applications/task-work-order/src/views/orderView/orderManage/orderManage/FormDiaLog.vue
@@ -179,52 +179,35 @@
        </div>
        <template #footer>
            <!--            <el-button color="#F2F3F5" @click="visible = false">{{ dialogReadonly ? '关闭' : '取消' }}</el-button>-->
            <el-button
                class="save-btn"
                color="#4C34FF"
                v-if="(!dialogReadonly && !formData.id) || suddenlyEdit"
                :loading="submitting"
                :disabled="submitting"
                @click="handleSubmit"
            >
                发布
            </el-button>
            <template v-if="requester">
                <el-button
                    v-if="['11', '31'].includes(gdStatus) || suddenlyEdit || (!dialogReadonly && !formData.id)"
                    :loading="submitting"
                    :disabled="submitting"
                    @click="handleSubmit"
                >
                    {{ gdStatus === '11' ? '发布' : '提交修改' }}
                    发布
                </el-button>
                <el-button v-if="['11', '21', '23', '24', '25', '31', '60'].includes(gdStatus)" @click="viewDescription">
                    {{ gdStatusObj[gdStatus].reason }}
                </el-button>
                <el-button @click="addDescription" v-if="['20', '24', '25', '50'].includes(gdStatus)">
                    {{ gdStatus === '50' ? '结算' : '申请取消' }}
                </el-button>
                <el-button @click="requestModification" v-if="['20', '25'].includes(gdStatus)">申请修改</el-button>
            </template>
            <template v-else>
                <template v-if="requester">
                    <el-button
                        class="save-btn"
                        color="#4C34FF"
                        v-if="editStatus.includes(gdStatus)"
                        :loading="submitting"
                        :disabled="submitting"
                        @click="handleSubmit"
                    >
                        发布
                    </el-button>
                    <el-button color="#F2F3F5" v-if="['11', '25', '31'].includes(gdStatus)" @click="addDescription(2, 'view')">
                        原因
                    </el-button>
                    <el-button color="#F2F3F5" @click="addDescription(3)" v-if="['20', '24'].includes(gdStatus)">
                        申请取消
                    </el-button>
                    <el-button color="#4C34FF" @click="requestModification" v-if="gdStatus === '20'" class="save-btn">
                        申请修改
                    </el-button>
                </template>
                <template v-else>
                    <el-button color="#F2F3F5" v-if="gdStatus === '10'" @click="addDescription(2)">拒绝接单</el-button>
                    <el-button color="#4C34FF" v-if="gdStatus === '10'" @click="statusChange(1)" class="save-btn">接单</el-button>
                    <el-button color="#F2F3F5" v-if="gdStatus === '22'" @click="statusChange(7)">同意修改</el-button>
                    <el-button color="#4C34FF" v-if="gdStatus === '22'" @click="statusChange(8)" class="save-btn">
                        不同意修改
                    </el-button>
                    <el-button color="#F2F3F5" v-if="gdStatus === '21'" @click="statusChange(5)">同意取消</el-button>
                    <el-button color="#4C34FF" v-if="gdStatus === '21'" @click="statusChange(6)" class="save-btn">
                        不同意取消
                    </el-button>
                    <el-button color="#F2F3F5" v-if="gdStatus === '30'" @click="addDescription(9)">协商修改</el-button>
                </template>
                <el-button v-if="['21', '23'].includes(gdStatus)" @click="viewDescription">
                    {{ gdStatusObj[gdStatus].reason }}
                </el-button>
                <el-button v-if="gdStatus === '10'" @click="addDescription">拒绝接单</el-button>
                <el-button v-if="gdStatus === '10'" @click="statusChange(1)">接单</el-button>
                <el-button v-if="gdStatus === '22'" @click="statusChange(7)">同意修改</el-button>
                <el-button v-if="gdStatus === '22'" @click="statusChange(8)">不同意修改</el-button>
                <el-button v-if="gdStatus === '21'" @click="statusChange(5)">同意取消</el-button>
                <el-button v-if="gdStatus === '21'" @click="statusChange(6)">不同意取消</el-button>
                <el-button v-if="gdStatus === '30'" @click="addDescription">协商修改</el-button>
            </template>
        </template>
@@ -290,11 +273,27 @@
let drawPolygonExample
let pointList = ref([])
const requester = inject('requester')
const editStatus = inject('editStatus')
const suddenlyEdit = ref(false)
const processList = ref([])
let viewPlane
const hasPatrolTaskList = computed(() => ['30', '40', '50', '60'].includes(String(formData.value.workOrderStatus)))
const gdStatusObj = {
    '0': { reason: '' },
    '10': { reason: '拒绝原因', operationType: '2' },
    '11': { reason: '拒绝原因' },
    '20': { reason: '取消原因', operationType: '3' },
    '21': { reason: '取消原因' },
    '22': { reason: '驳回原因' },
    '23': { reason: '取消原因' },
    '24': { reason: '驳回原因', operationType: '3' },
    '25': { reason: '驳回原因', operationType: '3' },
    '30': { reason: '修改原因', operationType: '9' },
    '31': { reason: '修改原因' },
    '40': { reason: '' },
    '50': { reason: '情况说明', operationType: '10' },
    '60': { reason: '情况说明' },
}
// 工单状态:0草稿、10发布中_接单中、11发布中_拒绝接单、20响应中_待拆分、21响应中_申请取消、22响应中_申请修改、23响应中_已取消、
// 24响应中_拒绝取消、25响应中_拒绝修改 30执行中_待全部完成、31执行中_协商修改、40完成待验_待全部验收、50验收通过_待结算、60结算完成_已结算
@@ -306,9 +305,13 @@
    executeStartTime: fieldRules(true),
    deviceLoadDemand: fieldRules(true),
}
// 操作类型:1接单,2拒接接单,3申请取消,4申请修改, 5同意取消 6不同意取消 7.同意修改 8.不同意修改 9.协商修改
function statusChange(operationType) {
    gdWorkOrderHandleStatusApi({ operationType: operationType, workOrderId: formData.value.id }).then(res => {
    gdWorkOrderHandleStatusApi({
        operationType: operationType,
        workOrderId: formData.value.id,
    }).then(res => {
        visible.value = false
        emit('success')
    })
@@ -330,27 +333,24 @@
}
// 填写说明
function addDescription(type, mode = 'add') {
    let formLabel = ''
    switch (type) {
        case 2:
            formLabel = '拒绝原因'
            break
        case 3:
            formLabel = '取消原因'
            break
        case 9:
            formLabel = '修改原因'
            break
    }
function addDescription() {
    rejectVisible.value = true
    nextTick(() => {
        refuseOrderDialogRef.value.open({
            mode,
            mode: 'add',
            row: formData.value,
            type,
            formLabel,
            type: gdStatusObj[gdStatus.value].operationType,
            formLabel: gdStatusObj[gdStatus.value].reason,
        })
    })
}
function viewDescription() {
    rejectVisible.value = true
    refuseOrderDialogRef.value.open({
        mode: 'view',
        row: formData.value,
        formLabel: gdStatusObj[gdStatus.value].reason,
    })
}
@@ -514,6 +514,7 @@
}
import droneIcon from '@/assets/images/orderView/orderManage/drone.png'
function renderingDevice(list) {
    // 渲染红点
    list.forEach(item => {
@@ -566,16 +567,19 @@
.content {
    display: flex;
    gap: 0 20px;
    .leftBox {
        width: 0;
        flex: 1;
        display: flex;
        flex-direction: column;
        .gd-cesium {
            width: 100%;
            height: 423px;
        }
    }
    .rightBox {
        .title {
            font-weight: 500;
@@ -583,6 +587,7 @@
            color: #272e37;
        }
    }
    .processBox {
        width: 312px;
    }
applications/task-work-order/src/views/orderView/orderManage/orderManage/RefuseOrderDialog.vue
@@ -100,7 +100,9 @@
}
let formLabelStr = ref('原因')
// 打开弹框
// 操作类型:1接单,2拒接接单,3申请取消,4申请修改, 5同意取消 6不同意取消 7.同意修改 8.不同意修改 9.协商修改
async function open({ mode = 'add', row, formLabel, type } = {}) {
    dialogMode.value = mode
    formLabelStr.value = formLabel
applications/task-work-order/src/views/orderView/orderManage/orderManage/index.vue
@@ -229,8 +229,6 @@
        dialogRef.value?.open({ mode, row })
    })
}
const editStatus = ['0','11','25']
provide('editStatus', editStatus)
// 工单状态:0草稿、10发布中_接单中、11发布中_拒绝接单、20响应中_待拆分、
// 21响应中_申请取消、22响应中_申请修改、23响应中_已取消、24响应中_拒绝取消、
// 25响应中_拒绝修改 30执行中_待全部完成、31执行中_协商修改、40完成待验_待全部验收、
@@ -238,7 +236,7 @@
function openFormChange(row) {
    dialogVisible.value = true
    nextTick(() => {
        const mode = editStatus.includes(row.workOrderStatus) && requester.value ? 'edit' : 'view'
        const mode = ['11','25'].includes(row.workOrderStatus) && requester.value ? 'edit' : 'view'
        dialogRef.value?.open({ mode, row })
    })
}