applications/drone-command/src/styles/common/cockpit.scss
@@ -215,10 +215,9 @@ .el-date-picker__editor-wrap { .el-time-panel { background: #161B2C !important; background: #1A1A2A !important; border-radius: 0px 0px 8px 8px; border: 1px solid !important; border-image: linear-gradient(180deg, rgba(255, 255, 255, 0), rgba(115, 192, 255, 1)) 1 1 !important; border: none !important; // 将 time-picker-popper 的样式移到这里 .el-time-panel__header { @@ -229,10 +228,8 @@ .el-time-panel__content { .el-time-spinner__item { color: #e6e6e6 !important; &:hover { background: rgba(71, 157, 255, 0.3) !important; background: transparent !important; } &.active { @@ -243,23 +240,12 @@ } .el-time-panel__footer { background: #161B2C !important; border-top: 1px solid rgba(71, 157, 255, 0.3) !important; .el-button { color: #fff !important; &:hover { color: #479dff !important; } .el-time-panel__btn { color: #fff; } .el-time-panel__btn.cancel { color: #fff !important; &:hover { color: #fff !important; } .el-time-panel__btn:first-child { color: #86909C; } } } applications/drone-command/src/views/aICrudTemplate/index.vue
@@ -10,41 +10,22 @@ <el-col :span="4"> <el-form-item label="类型" prop="deviceType"> <el-select v-model="searchParams.deviceType" placeholder="请选择" clearable @change="handleSearch"> <el-option v-for="item in dictObj.deviceType" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey" /> <el-option v-for="item in dictObj.deviceType" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey" /> </el-select> </el-form-item> </el-col> <el-col :span="4"> <el-form-item label="部门" prop="belongDept"> <el-tree-select v-model="searchParams.belongDept" :data="deptTree" :props="treeProps" node-key="id" check-strictly clearable @change="handleSearch" /> <el-tree-select v-model="searchParams.belongDept" :data="deptTree" :props="treeProps" node-key="id" check-strictly clearable @change="handleSearch" /> </el-form-item> </el-col> <el-col :span="4"> <el-form-item label="时间"> <el-date-picker popper-class="command-date-picker-popper" class="command-date-picker" v-model="dateRange" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYY-MM-DD HH:mm:ss" @change="handleSearch" /> <el-date-picker popper-class="command-date-picker-popper" class="command-date-picker" v-model="dateRange" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYY-MM-DD HH:mm:ss" @change="handleSearch" /> </el-form-item> </el-col> <el-col :span="4"> @@ -80,12 +61,8 @@ </el-table-column> </el-table> <div> <el-pagination v-model:current-page="searchParams.current" v-model:page-size="searchParams.size" :total="total" @change="getList" /> <el-pagination v-model:current-page="searchParams.current" v-model:page-size="searchParams.size" :total="total" @change="getList" /> </div> <FormDiaLog v-if="dialogVisible" v-model="dialogVisible" ref="dialogRef" @success="getList" /> @@ -162,7 +139,12 @@ // 删除 async function handleDelete(row) { const tips = row ? '该条' : '选中的项' await ElMessageBox.confirm(`确认删除${tips}吗?`, '提示', { type: 'warning' }) await ElMessageBox.confirm(`确认删除${tips}吗?`, '提示', { type: 'warning', customClass: 'command-page-view-message-box', confirmButtonClass: 'command-message-box-confirm', cancelButtonClass: 'command-message-box-cancel', }) const ids = row ? row.id : selectedIds.value.join(',') await fwDeviceRemoveApi({ ids }) ElMessage.success('删除成功') applications/drone-command/src/views/areaManage/partition/index.vue
@@ -129,7 +129,12 @@ // 删除 async function handleDelete (row) { const tips = row ? '该条' : '选中的项' await ElMessageBox.confirm(`确认删除${tips}吗?`, '提示', { type: 'warning' }) await ElMessageBox.confirm(`确认删除${tips}吗?`, '提示', { type: 'warning', customClass: 'command-page-view-message-box', confirmButtonClass: 'command-message-box-confirm', cancelButtonClass: 'command-message-box-cancel', }) const ids = row ? row.id : selectedIds.value.join(',') await fwAreaDivideRemoveApi({ ids }) ElMessage.success('删除成功') applications/drone-command/src/views/basicManage/deviceStock/index.vue
@@ -212,7 +212,12 @@ // 删除 async function handleDelete(row) { const tips = row ? '该条' : '选中的项' await ElMessageBox.confirm(`确认删除${tips}吗?`, '提示', { type: 'warning' }) await ElMessageBox.confirm(`确认删除${tips}吗?`, '提示', { type: 'warning', customClass: 'command-page-view-message-box', confirmButtonClass: 'command-message-box-confirm', cancelButtonClass: 'command-message-box-cancel', }) const ids = row ? row.id : selectedIds.value.join(',') await fwDeviceRemoveApi({ ids }) ElMessage.success('删除成功') applications/drone-command/src/views/detectionCountermeasure/taskSchedule/FormDiaLog.vue
@@ -1,12 +1,6 @@ <template> <el-dialog class="command-page-view-dialog" v-model="visible" :title="titleEnum[dialogMode]" destroy-on-close :close-on-click-modal="false" @closed="handleClosed" > <el-dialog class="command-page-view-dialog" v-model="visible" :title="titleEnum[dialogMode]" destroy-on-close :close-on-click-modal="false" @closed="handleClosed"> <div v-if="readonly" class="detail-container"> <el-row> <el-col :span="12"> @@ -51,92 +45,62 @@ </el-col> </el-row> </div> <el-form v-else ref="formRef" :model="formData" :rules="rules" :disabled="readonly" label-width="100px" class="dialog-form" > <el-form v-else ref="formRef" :model="formData" :rules="rules" :disabled="readonly" label-width="100px" class="dialog-form"> <el-row> <el-col :span="12"> <el-form-item label="设备" prop="deviceId"> <el-select class="command-select" popper-class="command-select-popper" v-model="formData.deviceId" placeholder="请选择" clearable @change="handleDeviceChange" > <el-option v-for="item in deviceList" :key="item.id" :label="item.deviceName" :value="item.id" /> <el-select class="command-select" popper-class="command-select-popper" v-model="formData.deviceId" placeholder="请选择" clearable @change="handleDeviceChange"> <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="deviceSn"> <el-input class="command-input" v-model="formData.deviceSn" disabled placeholder="选择设备后自动带出" /> <el-input class="command-input" v-model="formData.deviceSn" disabled placeholder="选择设备后自动带出" /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="设备状态"> <el-select class="command-select" popper-class="command-select-popper" v-model="deviceStatus" disabled placeholder="选择设备后自动带出"> <el-option v-for="item in dictObj.deviceStatus" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey" /> </el-select> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="场景" prop="defenseSceneId"> <el-select class="command-select" popper-class="command-select-popper" v-model="formData.defenseSceneId" placeholder="请选择" clearable @change="handleSceneChange" > <el-option v-for="item in sceneList" :key="item.id" :label="item.sceneName" :value="item.id" /> <el-select class="command-select" popper-class="command-select-popper" v-model="formData.defenseSceneId" placeholder="请选择" clearable @change="handleSceneChange"> <el-option v-for="item in sceneList" :key="item.id" :label="item.sceneName" :value="item.id" /> </el-select> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="区域" prop="areaDivideId"> <el-select class="command-select" popper-class="command-select-popper" v-model="formData.areaDivideId" placeholder="请先选择场景" clearable :disabled="!formData.defenseSceneId" @change="handleAreaChange" > <el-option v-for="item in areaList" :key="item.id" :label="item.areaName" :value="item.id" /> <el-select class="command-select" popper-class="command-select-popper" v-model="formData.areaDivideId" placeholder="请先选择场景" clearable :disabled="!formData.defenseSceneId" @change="handleAreaChange"> <el-option v-for="item in areaList" :key="item.id" :label="item.areaName" :value="item.id" /> </el-select> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="调度人员" prop="dispatchUser"> <el-input class="command-input" v-model="formData.dispatchUser" maxlength="50" placeholder="请输入" clearable /> <el-input class="command-input" v-model="formData.dispatchUser" maxlength="50" placeholder="请输入" clearable /> </el-form-item> </el-col> <el-col :span="12"> <el-form-item label="调度日期" prop="dispatchDateRange"> <el-date-picker class="command-date-picker" popper-class="command-date-picker-popper" v-model="formData.dispatchDateRange" type="datetimerange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYY-MM-DD HH:mm:ss" /> <el-date-picker class="command-date-picker" popper-class="command-date-picker-popper" v-model="formData.dispatchDateRange" type="daterange" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" value-format="YYYY-MM-DD HH:mm:ss" /> </el-form-item> </el-col> <el-col :span="24"> @@ -144,48 +108,28 @@ <!-- <el-button @click="selectLocation" style="width: 100%">--> <el-button style="width: 100%"> {{ formData.longitude && formData.latitude ? `${formData.longitude}, ${formData.latitude}` : '选择区域后自动带出' formData.longitude && formData.latitude ? `${formData.longitude}, ${formData.latitude}` : '选择区域后自动带出' }} </el-button> </el-form-item> </el-col> <el-col :span="24"> <el-form-item label="调度内容" prop="dispatchContent"> <el-input class="command-input" v-model="formData.dispatchContent" type="textarea" :rows="3" maxlength="500" placeholder="请输入" clearable /> <el-input class="command-input" v-model="formData.dispatchContent" type="textarea" :rows="3" maxlength="500" placeholder="请输入" clearable /> </el-form-item> </el-col> <el-col :span="24"> <el-form-item label="调度结果" prop="dispatchResult"> <el-input class="command-input" v-model="formData.dispatchResult" type="textarea" :rows="3" maxlength="500" placeholder="请输入" clearable /> <el-input class="command-input" v-model="formData.dispatchResult" type="textarea" :rows="3" maxlength="500" placeholder="请输入" clearable /> </el-form-item> </el-col> <el-col :span="24"> <el-form-item label="处理措施" prop="disposeMeasure"> <el-input class="command-input" v-model="formData.disposeMeasure" type="textarea" :rows="3" maxlength="500" placeholder="请输入" clearable /> <el-input class="command-input" v-model="formData.disposeMeasure" type="textarea" :rows="3" maxlength="500" placeholder="请输入" clearable /> </el-form-item> </el-col> </el-row> @@ -193,14 +137,8 @@ <template #footer> <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 color="#284FE3" v-if="!readonly" type="primary" :loading="submitting" :disabled="submitting" @click="handleSubmit"> 保存 </el-button> </template> @@ -252,6 +190,8 @@ deviceList: { type: Array, default: () => [] }, }) const dictObj = inject('dictObj') const emit = defineEmits(['success']) const formRef = ref(null) // 表单实例 const formData = ref(initForm()) // 表单数据 @@ -263,6 +203,7 @@ const titleEnum = ref({ edit: '编辑', view: '查看', add: '新增' }) const tempLocation = ref({ longitude: null, latitude: null }) const areaList = ref([]) // 区域列表 const deviceStatus = ref('') const rules = { deviceId: fieldRules(true), @@ -279,10 +220,12 @@ formData.value.deviceName = device.deviceName formData.value.deviceSn = device.deviceSn formData.value.deviceStatus = device.deviceStatus deviceStatus.value = String(device.status) } else { formData.value.deviceName = '' formData.value.deviceSn = '' formData.value.deviceStatus = '' deviceStatus.value = '' } } applications/drone-command/src/views/detectionCountermeasure/taskSchedule/index.vue
@@ -62,11 +62,13 @@ <el-table-column type="index" show-overflow-tooltip width="64" label="序号" /> <el-table-column prop="deviceName" show-overflow-tooltip width="140" label="设备名称" /> <el-table-column prop="deviceSn" show-overflow-tooltip width="140" label="设备编码" /> <el-table-column prop="status" show-overflow-tooltip width="100" label="设备状态"> <template v-slot="{ row }"> {{ formatDeployLocation(row) }} {{ getDictLabel(row.deviceStatus, dictObj.deviceStatus) }} </template> </el-table-column> <el-table-column prop="areaName" show-overflow-tooltip width="120" label="区域" /> <el-table-column prop="defenseZoneName" show-overflow-tooltip width="120" label="场景" /> <el-table-column show-overflow-tooltip label="调度位置"> @@ -75,7 +77,7 @@ <el-table-column prop="dispatchUser" show-overflow-tooltip width="100" label="调度人员" /> <el-table-column show-overflow-tooltip label="调度日期"> <template v-slot="{ row }"> {{ formatDispatchDate(row) }} {{dayjs(row.dispatchStartTime).format('YYYY-MM-DD')}}至{{dayjs(row.dispatchEndTime).format('YYYY-MM-DD')}} </template> </el-table-column> <el-table-column prop="dispatchContent" show-overflow-tooltip width="160" label="调度内容" /> @@ -114,6 +116,7 @@ </template> <script setup> import dayjs from 'dayjs' import { Search, RefreshRight, Plus, Delete } from '@element-plus/icons-vue' import { nextTick, onMounted, ref, provide } from 'vue' import { ElMessage, ElMessageBox } from 'element-plus' @@ -189,7 +192,12 @@ // 删除 async function handleDelete(row) { const tips = row ? '该条' : '选中的项' await ElMessageBox.confirm(`确认删除${tips}吗?`, '提示', { type: 'warning' }) await ElMessageBox.confirm(`确认删除${tips}吗?`, '提示', { type: 'warning', customClass: 'command-page-view-message-box', confirmButtonClass: 'command-message-box-confirm', cancelButtonClass: 'command-message-box-cancel', }) const ids = row ? row.id : selectedIds.value.join(',') await fwTaskScheduleRemoveApi({ ids }) ElMessage.success('删除成功') applications/task-work-order/src/views/orderView/orderDataManage/supplyAdd/ApplyViewDialog.vue
@@ -1,5 +1,5 @@ <template> <el-dialog class="gd-dialog" v-model="visible" :title="'查看申请'" @closed="visible = false" destroy-on-close> <el-dialog class="gd-dialog" v-model="visible" :title="'查看'" @closed="visible = false" destroy-on-close> <div class="detail-container"> <!-- 左侧审批记录 --> <div class="detail-left"> @@ -9,81 +9,67 @@ <div class="detail-right"> <!-- 拒绝申请--> <div class="reject-reason-container" v-if="detailDemandStatus === '3'"> <div class="label">拒绝原因</div> <div class="detail-title">拒绝原因</div> <div class="reject-reason"> {{reasonForRejection}} </div> </div> <div> <div class="label">需求详情</div> <div class="requirementsDetailsBox"> <div class="detail-table"> <div class="detail-row"> <div class="detail-cell"> <span class="cell-label">需求名称</span> <span class="cell-value">{{ formData.demandName }}</span> </div> <div class="detail-cell"> <span class="cell-label">需求类型</span> <span class="cell-value">{{ getDictLabel(formData.demandType, dictObj.requirementType) }}</span> </div> </div> <div class="detail-row"> <div class="detail-cell"> <span class="cell-label">需求联系人</span> <span class="cell-value">{{ formData.contactPerson }}</span> </div> <div class="detail-cell"> <span class="cell-label">需求联系人电话</span> <span class="cell-value">{{ formData.contactPhone }}</span> </div> </div> <div class="detail-row"> <div class="detail-cell"> <span class="cell-label">需求邮箱</span> <span class="cell-value">{{ formData.contactEmail }}</span> </div> <div class="detail-cell"> <span class="cell-label">更新周期</span> <span class="cell-value">{{ formData.updateCycle }}</span> </div> </div> <div class="detail-row"> <div class="detail-cell"> <span class="cell-label">申请依据</span> <span class="cell-value">{{ formData.applyBasis }}</span> </div> <div class="detail-cell"> <span class="cell-label">共享类型</span> <span class="cell-value">{{ getDictLabel(formData.shareType, dictObj.sharedType) }}</span> </div> </div> <div class="detail-row"> <div class="detail-cell"> <span class="cell-label">应用场景类型</span> <span class="cell-value">{{ getDictLabel(formData.applicationScene, dictObj.appSceneType) }}</span> </div> <div class="detail-cell"> <span class="cell-label">责任部门</span> <span class="cell-value">{{ formData.responsibleDeptName }}</span> </div> </div> <div class="detail-row"> <div class="detail-cell"> <span class="cell-label">数据来源依据</span> <span class="cell-value">{{ formData.dataSource }}</span> </div> <div class="detail-cell"> <span class="cell-label">需求信息项</span> <span class="cell-value">{{ formData.demandInfo }}</span> </div> </div> </div> </div> <div class="detail-title">需求详情</div> <el-row class="detail-row-view"> <el-col :span="12"> <div class="label">需求名称</div> <div class="val">{{ formData.demandName }}</div> </el-col> <el-col :span="12"> <div class="label">需求类型</div> <div class="val">{{ getDictLabel(formData.demandType, dictObj.requirementType) }}</div> </el-col> <el-col :span="12"> <div class="label">需求联系人</div> <div class="val">{{ formData.contactPerson }}</div> </el-col> <el-col :span="12"> <div class="label" >需求联系人电话</div> <div class="val">{{ formData.contactPhone }}</div> </el-col> <el-col :span="12"> <div class="label">需求邮箱</div> <div class="val">{{ formData.contactEmail }}</div> </el-col> <el-col :span="12"> <div class="label">更新周期</div> <div class="val">{{ formData.updateCycle }}</div> </el-col> <el-col :span="12"> <div class="label">申请依据</div> <div class="val">{{ formData.applyBasis }}</div> </el-col> <el-col :span="12"> <div class="label">共享类型</div> <div class="val">{{ getDictLabel(formData.shareType, dictObj.sharedType) }}</div> </el-col> <el-col :span="12"> <div class="label">应用场景类型</div> <div class="val">{{ getDictLabel(formData.applicationScene, dictObj.appSceneType) }}</div> </el-col> <el-col :span="12"> <div class="label">责任部门</div> <div class="val">{{ formData.responsibleDeptName }}</div> </el-col> <el-col :span="12"> <div class="label">数据来源依据</div> <div class="val">{{ formData.dataSource }}</div> </el-col> <el-col :span="12"> <div class="label">需求信息项</div> <div class="val">{{ formData.demandInfo }}</div> </el-col> </el-row> </div> <!-- 申请中--> <div v-if="detailDemandStatus === '1'"> <div class="label">数据上传</div> <div class="detail-title">数据上传</div> <div class="upload-container"> <el-upload :http-request="handleHttpRequest" @@ -106,8 +92,8 @@ </div> </div> <div v-if="detailDemandStatus === '2'"> <div class="label">数据详情</div> <el-table :data="tableData" border style="width: 100%"> <div class="detail-title" :style="{ marginTop:pxToRem(20)}">数据详情</div> <el-table :data="tableData" style="width: 100%"> <el-table-column prop="fileOriginalName" label="文件名称" /> <el-table-column prop="fileSize" label="文件大小" /> <el-table-column fixed="right" label="操作" min-width="100"> @@ -142,6 +128,7 @@ </template> <script setup> import { pxToRem } from '@/utils/rem' import { getDictLabel } from '@ztzf/utils' import { gdSupplyDemandDetailApi, @@ -454,48 +441,8 @@ padding: 15px; height: 100px; } .requirementsDetailsBox { background: #f2f3f5; border-radius: 2px 2px 2px 2px; } /* 详情表格样式 */ .detail-table { width: 100%; } .detail-row { display: flex; &:last-child { margin-bottom: 0; } } .detail-cell { flex: 1; display: flex; justify-content: space-between; padding: 5px 12px; margin-right: 8px; &:last-child { margin-right: 0; } } .cell-label { font-weight: 500; color: #333333; margin-right: 8px; text-align: right; min-width: 100px; flex-shrink: 0; } .cell-value { color: #666666; flex: 1; text-align: left; } .label { width: 130px !important;} } /* 上传容器样式 */ @@ -530,14 +477,7 @@ } } .val { padding: 8px; background-color: #f5f7fa; border-radius: 4px; min-height: 32px; word-break: break-all; margin-bottom: 16px; } /* 上传按钮样式 */ :deep(.el-upload) { applications/task-work-order/src/views/orderView/orderDataManage/supplyAdd/FormDiaLog.vue
@@ -66,7 +66,7 @@ :model="formData" :rules="rules" :disabled="dialogReadonly" label-width="130px" label-width="160px" > <el-row> <el-col :span="12">