吉安感知网项目-前端
shuishen
2026-01-14 4906474b50f1d42e2f62be2625af2a55303df6d3
feat:通用列表页弹窗样式调整
8 files modified
440 ■■■■■ changed files
applications/drone-command/src/styles/common/cockpit.scss 72 ●●●●● patch | view | raw | blame | history
applications/drone-command/src/views/areaManage/partition/FormDiaLog.vue 114 ●●●● patch | view | raw | blame | history
applications/drone-command/src/views/basicManage/deviceScrap/FormDiaLog.vue 40 ●●●●● patch | view | raw | blame | history
applications/drone-command/src/views/basicManage/deviceStock/DeviceScrapDiaLog.vue 15 ●●●● patch | view | raw | blame | history
applications/drone-command/src/views/basicManage/deviceStock/DeviceTrackDiaLog.vue 19 ●●●● patch | view | raw | blame | history
applications/drone-command/src/views/basicManage/maintainRecord/FormDiaLog.vue 121 ●●●● patch | view | raw | blame | history
applications/drone-command/src/views/basicManage/maintainRecord/MaintenanceDiaLog.vue 52 ●●●●● patch | view | raw | blame | history
applications/drone-command/src/views/basicManage/maintainRecord/index.vue 7 ●●●● patch | view | raw | blame | history
applications/drone-command/src/styles/common/cockpit.scss
@@ -968,11 +968,30 @@
                .el-form-item__content {
                    display: flex;
                    align-items: center;
                    .el-input {
                        width: 0;
                        flex: 1;
                    }
                    .el-textarea {
                        .el-textarea__inner {
                            color: #fff;
                            background: #2E2E48 !important;
                            border: none;
                            box-shadow: none;
                        }
                    }
                }
                .el-input {
                    .el-input__wrapper {
                        background: #2E2E48;
                        background: #2E2E48 !important;
                        .el-input__inner {
                            color: #ffffff;
                        }
                    }
                }
            }
@@ -993,4 +1012,53 @@
            }
        }
    }
}
}
.ztzf-page-view-message-box {
    background: #1A1A2A;
    border-radius: 6px;
    border: 1px solid #2E2E46;
    .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;
            line-height: 22px;
            text-align: left;
            font-style: normal;
            text-transform: none;
        }
    }
    .el-message-box__content {
        color: #D4D5D7;
    }
    .el-message-box__btns {
        display: flex;
        justify-content: center;
        .el-button {
            margin-left: 16px;
            width: 96px;
            height: 36px;
            &:first-child {
                margin-left: 0;
            }
        }
    }
}
.ztzf-message-box-confirm {
    background: #284FE3 !important;
    border-color: #284FE3 !important;
}
.ztzf-message-box-cancel {
    background: #2B2B4C !important;
    border-color: #2B2B4C !important;
    color: #FFFFFF !important;
}
applications/drone-command/src/views/areaManage/partition/FormDiaLog.vue
@@ -1,32 +1,72 @@
<template>
    <el-dialog v-model="visible" :title="titleEnum[dialogMode]" :close-on-click-modal="false" width="80%">
    <el-dialog class="ztzf-page-view-dialog" v-model="visible" :title="titleEnum[dialogMode]"
        :close-on-click-modal="false" width="80%">
        <div class="bodyBox">
            <div class="leftMap ztzf-cesium" id="mapContainer"></div>
            <div class="rightInfo">
                <div v-if="readonly">
                    <div>区域名称: {{ formData.areaName }}</div>
                    <div>区域位置: {{ formatLocation(formData) }}</div>
                    <div>区域面积: {{ formData.areaSize || '-' }}k㎡</div>
                    <div>区域类型: {{ getDictLabel(formData.areaType, dictObj.areaType) }}</div>
                    <div>触发条件: {{ formData.triggerCondition }}</div>
                    <div>响应机制: {{ formData.responseMechanism }}</div>
                    <div>管控级别: {{ getDictLabel(formData.controlLevel, dictObj.controlLevel) }}</div>
                    <div>关联派出所: {{ formData.policeStationName }}</div>
                    <div>可飞行时间段: {{ formatFlyDate(formData) }}</div>
                    <el-table ref="deviceTableRef" :data="deviceOptions" row-key="id">
                        <el-table-column prop="deviceName" label="设备名称" />
                        <el-table-column prop="deviceType" label="类型">
                            <template v-slot="{ row }">
                                {{ getDictLabel(row.deviceType, dictObj.deviceType) }}
                            </template>
                        </el-table-column>
                    </el-table>
                <div class="detail-container" v-if="readonly">
                    <div class="detail-title">区域详情</div>
                    <el-row>
                        <el-col :span="24">
                            <div class="label">区域名称</div>
                            <div class="val">{{ formData.areaName }}</div>
                        </el-col>
                        <el-col :span="24">
                            <div class="label">区域位置</div>
                            <div class="val">{{ formatLocation(formData) }}</div>
                        </el-col>
                        <el-col :span="24">
                            <div class="label">区域面积</div>
                            <div class="val">{{ formData.areaSize || '-' }}k㎡</div>
                        </el-col>
                        <el-col :span="24">
                            <div class="label">区域类型</div>
                            <div class="val">{{ getDictLabel(formData.areaType, dictObj.areaType) }}</div>
                        </el-col>
                        <el-col :span="24">
                            <div class="label">触发条件</div>
                            <div class="val">{{ formData.triggerCondition }}</div>
                        </el-col>
                        <el-col :span="24">
                            <div class="label">响应机制</div>
                            <div class="val">{{ formData.responseMechanism }}</div>
                        </el-col>
                        <el-col :span="24">
                            <div class="label">管控级别</div>
                            <div class="val">{{ getDictLabel(formData.controlLevel, dictObj.controlLevel) }}</div>
                        </el-col>
                        <el-col :span="24">
                            <div class="label">关联派出所</div>
                            <div class="val">{{ formData.policeStationName }}</div>
                        </el-col>
                        <el-col :span="24">
                            <div class="label">可飞行时间段</div>
                            <div class="val">{{ formatFlyDate(formData) }}</div>
                        </el-col>
                    </el-row>
                    <div class="detail-title">关联设备</div>
                    <div class="ztzf-table-container">
                        <div class="ztzf-table-content">
                            <el-table class="ztzf-data-cockpit-table" ref="deviceTableRef" :data="deviceOptions"
                                row-key="id">
                                <el-table-column prop="deviceName" label="设备名称" />
                                <el-table-column prop="deviceType" label="类型">
                                    <template v-slot="{ row }">
                                        {{ getDictLabel(row.deviceType, dictObj.deviceType) }}
                                    </template>
                                </el-table-column>
                            </el-table>
                        </div>
                    </div>
                </div>
                <el-form v-else ref="formRef" :model="formData" :rules="rules" :disabled="readonly" label-width="100px">
                <el-form class="dialog-form" v-else ref="formRef" :model="formData" :rules="rules" :disabled="readonly"
                    label-width="100px">
                    <el-row>
                        <el-col :span="24">
                            <el-form-item label="区域名称" prop="areaName">
                                <el-input v-model="formData.areaName" maxlength="50" placeholder="请输入" clearable />
                                <el-input class="ztzf-data-cockpit-search-input" v-model="formData.areaName"
                                    maxlength="50" placeholder="请输入" clearable />
                            </el-form-item>
                        </el-col>
                        <el-col :span="24">
@@ -39,7 +79,8 @@
                        </el-col>
                        <el-col :span="24">
                            <el-form-item label="区域类型" prop="areaType">
                                <el-select v-model="formData.areaType" placeholder="请选择" clearable>
                                <el-select class="ztzf-data-cockpit-select" popper-class="ztzf-data-cockpit-select-popper"
                                    v-model="formData.areaType" placeholder="请选择" clearable>
                                    <el-option
                                        v-for="item in dictObj.areaType"
                                        :key="item.dictKey"
@@ -51,17 +92,20 @@
                        </el-col>
                        <el-col :span="24">
                            <el-form-item label="响应机制" prop="responseMechanism">
                                <el-input v-model="formData.responseMechanism" maxlength="200" placeholder="请输入" clearable />
                                <el-input class="ztzf-data-cockpit-search-input" v-model="formData.responseMechanism"
                                    maxlength="200" placeholder="请输入" clearable />
                            </el-form-item>
                        </el-col>
                        <el-col :span="24">
                            <el-form-item label="触发条件" prop="triggerCondition">
                                <el-input v-model="formData.triggerCondition" maxlength="200" placeholder="请输入" clearable />
                                <el-input class="ztzf-data-cockpit-search-input" v-model="formData.triggerCondition"
                                    maxlength="200" placeholder="请输入" clearable />
                            </el-form-item>
                        </el-col>
                        <el-col :span="24">
                            <el-form-item label="管控级别" prop="controlLevel">
                                <el-select v-model="formData.controlLevel" placeholder="请选择" clearable>
                                <el-select class="ztzf-data-cockpit-select" popper-class="ztzf-data-cockpit-select-popper"
                                    v-model="formData.controlLevel" placeholder="请选择" clearable>
                                    <el-option
                                        v-for="item in dictObj.controlLevel"
                                        :key="item.dictKey"
@@ -74,6 +118,8 @@
                        <el-col :span="24">
                            <el-form-item label="可飞行时段" prop="flyDateStart">
                                <el-date-picker
                                    class="ztzf-data-cockpit-date-picker"
                                    popper-class="ztzf-data-cockpit-date-picker-popper"
                                    v-model="flyDateRange"
                                    type="datetimerange"
                                    range-separator="至"
@@ -86,7 +132,8 @@
                        </el-col>
                        <el-col :span="24">
                            <el-form-item label="关联派出所" prop="policeStationId">
                                <el-select v-model="formData.policeStationId" placeholder="请选择" clearable>
                                <el-select class="ztzf-data-cockpit-select" popper-class="ztzf-data-cockpit-select-popper"
                                    v-model="formData.policeStationId" placeholder="请选择" clearable>
                                    <el-option
                                        v-for="item in policeStationOptions"
                                        :key="item.id"
@@ -100,10 +147,12 @@
                            <div>
                                <div>
                                    关联设备
                                    <el-input v-model="searchName" placeholder="请输入" clearable></el-input>
                                    <el-input class="ztzf-data-cockpit-search-input" v-model="searchName" placeholder="请输入"
                                        clearable></el-input>
                                </div>
                                <el-form-item prop="deviceIds" label-width="0">
                                    <el-table
                                        class="ztzf-data-cockpit-table"
                                        ref="deviceTableRef"
                                        :data="deviceOptions.filter(item => item.deviceName.includes(searchName))"
                                        row-key="id"
@@ -125,8 +174,9 @@
            </div>
        </div>
        <template #footer>
            <el-button @click="handleCancel">{{ readonly ? '关闭' : '取消' }}</el-button>
            <el-button v-if="!readonly" type="primary" :loading="submitting" :disabled="submitting" @click="handleSubmit">
            <el-button color="#2B2B4C" @click="handleCancel">{{ readonly ? '关闭' : '取消' }}</el-button>
            <el-button color="#284FE3" v-if="!readonly" type="primary" :loading="submitting" :disabled="submitting"
                @click="handleSubmit">
                确定
            </el-button>
        </template>
@@ -391,6 +441,12 @@
        width: 30%;
        height: 100%;
        overflow: auto;
        .ztzf-table-container,
        .ztzf-table-content {
            height: auto;
            flex: none;
        }
    }
}
</style>
applications/drone-command/src/views/basicManage/deviceScrap/FormDiaLog.vue
@@ -1,44 +1,56 @@
<template>
    <el-dialog v-model="visible" :title="titleEnum[dialogMode]" @closed="handleClosed" destroy-on-close>
        <div v-if="dialogReadonly">
    <el-dialog class="ztzf-page-view-dialog" v-model="visible" :title="titleEnum[dialogMode]" @closed="handleClosed"
        destroy-on-close>
        <div class="detail-container" v-if="dialogReadonly">
            <el-row>
                <el-col :span="12">
                    <div>设备名称: {{ formData.deviceName }}</div>
                    <div class="label">设备名称</div>
                    <div class="val">{{ formData.deviceName }}</div>
                </el-col>
                <el-col :span="12">
                    <div>设备类型: {{ getDictLabel(formData.deviceType, dictObj.deviceType) }}</div>
                    <div class="label">设备类型</div>
                    <div class="val">{{ getDictLabel(formData.deviceType, dictObj.deviceType) }}</div>
                </el-col>
                <el-col :span="12">
                    <div>型号 : {{ formData.deviceModel }}</div>
                    <div class="label">型号</div>
                    <div class="val">{{ formData.deviceModel }}</div>
                </el-col>
                <el-col :span="12">
                    <div>生产厂商 : {{ formData.manufacturer }}</div>
                    <div class="label">生产厂商</div>
                    <div class="val">{{ formData.manufacturer }}</div>
                </el-col>
                <el-col :span="12">
                    <div>入库时间 : {{ formData.createTime }}</div>
                    <div class="label">入库时间</div>
                    <div class="val">{{ formData.createTime }}</div>
                </el-col>
                <el-col :span="12">
                    <div>来源 : {{ formData.source }}</div>
                    <div class="label">来源</div>
                    <div class="val">{{ formData.source }}</div>
                </el-col>
                <el-col :span="12">
                    <div>所属部门 : {{ formData.belongDeptName }}</div>
                    <div class="label">所属部门</div>
                    <div class="val">{{ formData.belongDeptName }}</div>
                </el-col>
                <el-col :span="12">
                    <div>负责人 : {{ formData.charger }}</div>
                    <div class="label">负责人</div>
                    <div class="val">{{ formData.charger }}</div>
                </el-col>
                <el-col :span="12">
                    <div>报废时间 : {{ formData.scrapTime }}</div>
                    <div class="label">报废时间</div>
                    <div class="val">{{ formData.scrapTime }}</div>
                </el-col>
                <el-col :span="24">
                    <div>报废原因 : {{ formData.scrapReason }}</div>
                    <div class="label">报废原因</div>
                    <div class="val">{{ formData.scrapReason }}</div>
                </el-col>
                <el-col :span="24">
                    <div>处置方式 : {{ formData.disposeWay }}</div>
                    <div class="label">处置方式</div>
                    <div class="val">{{ formData.disposeWay }}</div>
                </el-col>
            </el-row>
        </div>
        <template #footer>
            <el-button @click="handleCancel">{{ dialogReadonly ? '关闭' : '取消' }}</el-button>
            <el-button color="#2B2B4C" @click="handleCancel">{{ dialogReadonly ? '关闭' : '取消' }}</el-button>
        </template>
    </el-dialog>
</template>
applications/drone-command/src/views/basicManage/deviceStock/DeviceScrapDiaLog.vue
@@ -1,20 +1,20 @@
<template>
    <el-dialog v-model="visible" :title="dialogTitle" @closed="handleClosed" destroy-on-close>
        <el-form ref="formRef" :model="formData" :rules="rules" label-width="100px">
    <el-dialog class="ztzf-page-view-dialog" v-model="visible" :title="dialogTitle" @closed="handleClosed" destroy-on-close>
        <el-form class="dialog-form" ref="formRef" :model="formData" :rules="rules" label-width="100px">
            <el-row>
                <el-col :span="24">
                    <el-form-item label="报废原因" prop="scrapReason">
                        <el-input v-model="formData.scrapReason" maxlength="200" type="textarea" placeholder="请输入" clearable />
                        <el-input class="ztzf-data-cockpit-search-input" v-model="formData.scrapReason" maxlength="200" type="textarea" placeholder="请输入" clearable />
                    </el-form-item>
                </el-col>
                <el-col :span="24">
                    <el-form-item label="处置方式" prop="disposeWay">
                        <el-input v-model="formData.disposeWay" maxlength="200" type="textarea" placeholder="请输入" clearable />
                        <el-input class="ztzf-data-cockpit-search-input" v-model="formData.disposeWay" maxlength="200" type="textarea" placeholder="请输入" clearable />
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="报废时间" prop="scrapTime">
                        <el-date-picker
                        <el-date-picker class="ztzf-data-cockpit-date-picker" popper-class="ztzf-data-cockpit-date-picker-popper"
                            v-model="formData.scrapTime"
                            type="date"
                            placeholder="选择日期"
@@ -26,10 +26,11 @@
            </el-row>
        </el-form>
        <template #footer>
            <el-button @click="handleCancel">{{ dialogReadonly ? '关闭' : '取消' }}</el-button>
            <el-button color="#2B2B4C" @click="handleCancel">{{ dialogReadonly ? '关闭' : '取消' }}</el-button>
            <el-button
                v-if="!dialogReadonly"
                type="primary"
                color="#284FE3"
                :loading="submitting"
                :disabled="submitting"
                @click="handleSubmit"
@@ -87,7 +88,7 @@
    submitting.value = true
    try {
        await fwDeviceScrapSaveApi(formData.value)
        ElMessage.success(dialogMode.value === 'add' ? '出库成功' : '更新成功')
        ElMessage.success('报废成功')
        visible.value = false
        emit('success')
    } finally {
applications/drone-command/src/views/basicManage/deviceStock/DeviceTrackDiaLog.vue
@@ -1,27 +1,27 @@
<template>
    <el-dialog v-model="visible" :title="dialogTitle" @closed="handleClosed" destroy-on-close>
        <el-form ref="formRef" :model="formData" :rules="rules" label-width="100px">
    <el-dialog class="ztzf-page-view-dialog" v-model="visible" :title="dialogTitle" @closed="handleClosed" destroy-on-close>
        <el-form class="dialog-form" ref="formRef" :model="formData" :rules="rules" label-width="100px">
            <el-row>
                <el-col :span="12">
                    <el-form-item label="负责人" prop="charger">
                        <el-select v-model="formData.charger" placeholder="请选择" clearable>
                        <el-select class="ztzf-data-cockpit-select" popper-class="ztzf-data-cockpit-select-popper" v-model="formData.charger" placeholder="请选择" clearable>
                            <el-option v-for="item in userList" :key="item.id" :label="item.name" :value="item.name" />
                        </el-select>
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="联系电话" prop="contactPhone">
                        <el-input v-model="formData.contactPhone" maxlength="50" placeholder="请输入" clearable />
                        <el-input class="ztzf-data-cockpit-search-input" v-model="formData.contactPhone" maxlength="50" placeholder="请输入" clearable />
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="出库去向" prop="outTarget">
                        <el-input v-model="formData.outTarget" maxlength="50" placeholder="请输入" clearable />
                        <el-input class="ztzf-data-cockpit-search-input" v-model="formData.outTarget" maxlength="50" placeholder="请输入" clearable />
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="出库时间" prop="outTime">
                        <el-date-picker
                        <el-date-picker class="ztzf-data-cockpit-date-picker" popper-class="ztzf-data-cockpit-date-picker-popper"
                            v-model="formData.outTime"
                            type="date"
                            placeholder="选择日期"
@@ -32,16 +32,17 @@
                </el-col>
                <el-col :span="12">
                    <el-form-item label="用途" prop="purpose">
                        <el-input v-model="formData.purpose" maxlength="50" placeholder="请输入" clearable />
                        <el-input class="ztzf-data-cockpit-search-input" v-model="formData.purpose" maxlength="50" placeholder="请输入" clearable />
                    </el-form-item>
                </el-col>
            </el-row>
        </el-form>
        <template #footer>
            <el-button @click="handleCancel">{{ dialogReadonly ? '关闭' : '取消' }}</el-button>
            <el-button color="#2B2B4C" @click="handleCancel">{{ dialogReadonly ? '关闭' : '取消' }}</el-button>
            <el-button
                v-if="!dialogReadonly"
                type="primary"
                color="#284FE3"
                :loading="submitting"
                :disabled="submitting"
                @click="handleSubmit"
@@ -111,7 +112,7 @@
    submitting.value = true
    try {
        await fwDeviceTrackSubmitApi(formData.value)
        ElMessage.success(dialogMode.value === 'add' ? '出库成功' : '更新成功')
        ElMessage.success('出库成功')
        visible.value = false
        emit('success')
    } finally {
applications/drone-command/src/views/basicManage/maintainRecord/FormDiaLog.vue
@@ -1,104 +1,109 @@
<template>
    <el-dialog v-model="visible" :title="titleEnum[dialogMode]" @closed="handleClosed" destroy-on-close>
        <div v-if="dialogReadonly">
            <h3>设备详情</h3>
    <el-dialog class="ztzf-page-view-dialog" v-model="visible" :title="titleEnum[dialogMode]" @closed="handleClosed"
        destroy-on-close>
        <div class="detail-container" v-if="dialogReadonly">
            <div class="detail-title">设备详情</div>
            <el-row>
                <el-col :span="12">
                    <div>设备名称: {{ formData.deviceName }}</div>
                    <div class="label">设备名称</div>
                    <div class="val">{{ formData.deviceName }}</div>
                </el-col>
                <el-col :span="12">
                    <div>设备类型: {{ getDictLabel(formData.deviceType, dictObj.deviceType) }}</div>
                    <div class="label">设备类型</div>
                    <div class="val">{{ getDictLabel(formData.deviceType, dictObj.deviceType) }}</div>
                </el-col>
                <el-col :span="12">
                    <div>型号 : {{ formData.deviceModel }}</div>
                    <div class="label">型号</div>
                    <div class="val">{{ formData.deviceModel }}</div>
                </el-col>
                <el-col :span="12">
                    <div>生产厂商 : {{ formData.manufacturer }}</div>
                    <div class="label">生产厂商</div>
                    <div class="val">{{ formData.manufacturer }}</div>
                </el-col>
                <el-col :span="12">
                    <div>所属部门 : {{ formData.belongDeptName }}</div>
                    <div class="label">所属部门</div>
                    <div class="val">{{ formData.belongDeptName }}</div>
                </el-col>
                <el-col :span="12">
                    <div>负责人 : {{ formData.charger }}</div>
                    <div class="label">负责人</div>
                    <div class="val">{{ formData.charger }}</div>
                </el-col>
                <el-col :span="12">
                    <div>维护计划 : {{ getPlanCycleLabel(formData) }}</div>
                    <div class="label">维护计划</div>
                    <div class="val">{{ getPlanCycleLabel(formData) }}</div>
                </el-col>
                <el-col :span="12">
                    <div>维护时间 : {{ list?.[0]?.maintainTime }}</div>
                    <div class="label">维护时间</div>
                    <div class="val">{{ list?.[0]?.maintainTime }}</div>
                </el-col>
                <el-col :span="12">
                    <div>维护内容 : {{ formData.manufacturer }}</div>
                    <div class="label">维护内容</div>
                    <div class="val">{{ formData.manufacturer }}</div>
                </el-col>
                <el-col :span="12">
                    <div>跟换部件 : {{ formData.manufacturer }}</div>
                    <div class="label">跟换部件</div>
                    <div class="val">{{ formData.manufacturer }}</div>
                </el-col>
            </el-row>
            <h3>维护详情</h3>
            <el-table v-loading="loading" :data="list">
                <el-table-column type="index" width="60" label="序号" />
                <el-table-column prop="maintainTime" label="维护时间" />
                <el-table-column prop="maintainContent" label="维护内容" />
                <el-table-column prop="replacePart" label="跟换部件" />
            </el-table>
            <el-pagination
                v-model:current-page="searchParams.current"
                v-model:page-size="searchParams.size"
                :total="total"
                @change="getList"
            />
            <div class="detail-title">维护详情</div>
            <div class="ztzf-table-container" v-loading="loading" element-loading-background="rgba(5, 5, 15, 0.6)">
                <div class="ztzf-table-content">
                    <el-table class="ztzf-data-cockpit-table" :data="list">
                        <el-table-column type="index" width="60" label="序号" />
                        <el-table-column prop="maintainTime" label="维护时间" />
                        <el-table-column prop="maintainContent" label="维护内容" />
                        <el-table-column prop="replacePart" label="跟换部件" />
                    </el-table>
                </div>
                <div class="ztzf-table-pagination">
                    <el-pagination popper-class="ztzf-data-cockpit-select-popper"
                        v-model:current-page="searchParams.current" v-model:page-size="searchParams.size"
                        layout="total, prev, pager, next, sizes" :total="total" @change="getList" />
                </div>
            </div>
        </div>
        <el-form v-else ref="formRef" :model="formData" :rules="rules" :disabled="dialogReadonly" label-width="100px">
        <el-form class="dialog-form" v-else ref="formRef" :model="formData" :rules="rules" :disabled="dialogReadonly"
            label-width="120px">
            <el-row>
                <el-col :span="12">
                    <el-form-item label="选择设备" prop="deviceId">
                        <el-select v-model="formData.deviceId" placeholder="请选择" filterable clearable>
                            <el-option v-for="item in deviceList" :key="item.id" :label="item.deviceName" :value="item.id" />
                        <el-select class="ztzf-data-cockpit-select" popper-class="ztzf-data-cockpit-select-popper"
                            v-model="formData.deviceId" placeholder="请选择" filterable clearable>
                            <el-option v-for="item in deviceList" :key="item.id" :label="item.deviceName"
                                :value="item.id" />
                        </el-select>
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="维护计划周期" prop="planCycleType">
                        <el-select
                            v-model="formData.planCycleType"
                            placeholder="请选择"
                            clearable
                            @change="formData.planCycleValue = []"
                        >
                            <el-option v-for="item in planCycleOptions" :key="item.value" :label="item.label" :value="item.value" />
                        <el-select class="ztzf-data-cockpit-select" popper-class="ztzf-data-cockpit-select-popper"
                            v-model="formData.planCycleType" placeholder="请选择" clearable
                            @change="formData.planCycleValue = []">
                            <el-option v-for="item in planCycleOptions" :key="item.value" :label="item.label"
                                :value="item.value" />
                        </el-select>
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="维护计划时间" prop="planCycleValue">
                        <el-select
                            v-model="formData.planCycleValue"
                            placeholder="请选择"
                            clearable
                            multiple
                            :disabled="!formData.planCycleType"
                        >
                            <el-option
                                v-for="item in planCycleValueOptions"
                                :key="item.value"
                                :label="item.value"
                                :value="item.value"
                            />
                        <el-select class="ztzf-data-cockpit-select" popper-class="ztzf-data-cockpit-select-popper"
                            v-model="formData.planCycleValue" placeholder="请选择" clearable multiple
                            :disabled="!formData.planCycleType">
                            <el-option v-for="item in planCycleValueOptions" :key="item.value" :label="item.value"
                                :value="item.value" />
                        </el-select>
                    </el-form-item>
                </el-col>
            </el-row>
        </el-form>
        <template #footer>
            <el-button @click="handleCancel">{{ dialogReadonly ? '关闭' : '取消' }}</el-button>
            <el-button
                v-if="!dialogReadonly"
                type="primary"
                :loading="submitting"
                :disabled="submitting"
                @click="handleSubmit"
            >
                确定
            <el-button color="#2B2B4C" @click="handleCancel">{{ dialogReadonly ? '关闭' : '取消' }}</el-button>
            <el-button color="#284FE3" v-if="!dialogReadonly" type="primary" :loading="submitting"
                :disabled="submitting" @click="handleSubmit">
                保存
            </el-button>
        </template>
    </el-dialog>
applications/drone-command/src/views/basicManage/maintainRecord/MaintenanceDiaLog.vue
@@ -1,20 +1,26 @@
<template>
    <el-dialog v-model="visible" :title="titleEnum[dialogMode]" @closed="handleClosed" destroy-on-close>
        <div v-if="dialogReadonly">
    <el-dialog class="ztzf-page-view-dialog" v-model="visible" :title="titleEnum[dialogMode]" @closed="handleClosed"
        destroy-on-close>
        <div class="detail-container" v-if="dialogReadonly">
            <div class="detail-title">设备详情</div>
            <el-row>
                <el-col :span="12">
                    <div>设备名称: {{ deviceName }}</div>
                    <div class="label">设备名称</div>
                    <div class="val">{{ deviceName }}</div>
                </el-col>
                <el-col :span="12">
                    <div>维护计划: {{ planCycleLabel }}</div>
                    <div class="label">维护计划</div>
                    <div class="val">{{ planCycleLabel }}</div>
                </el-col>
            </el-row>
        </div>
        <el-form v-else ref="formRef" :model="formData" :rules="rules" :disabled="dialogReadonly" label-width="100px">
        <el-form class="dialog-form" v-else ref="formRef" :model="formData" :rules="rules"
            :disabled="dialogReadonly" label-width="110px">
            <el-row>
                <el-col :span="24">
                    <el-form-item label="维护内容" prop="maintainContent">
                        <el-input
                            class="ztzf-data-cockpit-search-input"
                            v-model="formData.maintainContent"
                            maxlength="200"
                            type="textarea"
@@ -25,27 +31,37 @@
                </el-col>
                <el-col :span="24">
                    <el-form-item label="更换部件" prop="replacePart">
                        <el-input v-model="formData.replacePart" maxlength="200" type="textarea" placeholder="请输入" clearable />
                        <el-input
                            class="ztzf-data-cockpit-search-input"
                            v-model="formData.replacePart"
                            maxlength="200"
                            type="textarea"
                            placeholder="请输入"
                            clearable
                        />
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="实际维护时间" prop="maintainTime">
                        <el-date-picker
                            class="ztzf-data-cockpit-date-picker"
                            popper-class="ztzf-data-cockpit-date-picker-popper"
                            v-model="formData.maintainTime"
                            type="date"
                            placeholder="选择日期"
                            value-format="YYYY-MM-DD HH:mm:ss"
                            clearable
                        />
                    </el-form-item>
                </el-col>
            </el-row>
            <el-col :span="12">
                <el-form-item label="实际维护时间" prop="maintainTime">
                    <el-date-picker
                        v-model="formData.maintainTime"
                        type="date"
                        placeholder="选择日期"
                        value-format="YYYY-MM-DD HH:mm:ss"
                        clearable
                    />
                </el-form-item>
            </el-col>
        </el-form>
        <template #footer>
            <el-button @click="handleCancel">{{ dialogReadonly ? '关闭' : '取消' }}</el-button>
            <el-button color="#2B2B4C" @click="handleCancel">{{ dialogReadonly ? '关闭' : '取消' }}</el-button>
            <el-button
                v-if="!dialogReadonly"
                type="primary"
                color="#284FE3"
                :loading="submitting"
                :disabled="submitting"
                @click="handleSubmit"
applications/drone-command/src/views/basicManage/maintainRecord/index.vue
@@ -156,7 +156,12 @@
// 删除
async function handleDelete (row) {
    const tips = row ? '该条' : '选中的项'
    await ElMessageBox.confirm(`确认删除${tips}吗?`, '提示', { type: 'warning' })
    await ElMessageBox.confirm(`确认删除${tips}吗?`, '提示', {
        type: 'warning',
        customClass: 'ztzf-page-view-message-box',
        confirmButtonClass: 'ztzf-message-box-confirm',
        cancelButtonClass: 'ztzf-message-box-cancel',
    })
    const ids = row ? row.id : selectedIds.value.join(',')
    await fwDeviceMaintainPlanRemoveApi({ ids })
    ElMessage.success('删除成功')