吉安感知网项目-前端
shuishen
2026-02-04 ffaa6eb6263b131baf1e026060b03aa100abf1b3
feat:部分优化
2 files modified
116 ■■■■■ changed files
applications/drone-command/src/components/map-container/device-map-container.vue 2 ●●● patch | view | raw | blame | history
applications/task-work-order/src/views/orderView/orderDataManage/evaluate/FormDiaLog.vue 114 ●●●●● patch | view | raw | blame | history
applications/drone-command/src/components/map-container/device-map-container.vue
@@ -226,7 +226,7 @@
        position: new Cesium.CallbackProperty(() => getBillboardPosition(billboard), false),
        point: {
            pixelSize: new Cesium.CallbackProperty(() => getPulseRadius(pulse), false),
            color: pulseBaseColor.withAlpha(0.2),
            color: pulseBaseColor.withAlpha(0.4),
        },
    })
    favoritePulseEntities.push(pulse)
applications/task-work-order/src/views/orderView/orderDataManage/evaluate/FormDiaLog.vue
@@ -1,12 +1,6 @@
<template>
    <el-dialog
        class="gd-dialog"
        v-model="visible"
        :title="titleEnum[dialogMode]"
        @closed="visible = false"
        destroy-on-close
        :close-on-click-modal="false"
    >
    <el-dialog class="gd-dialog" v-model="visible" :title="titleEnum[dialogMode]" @closed="visible = false"
        destroy-on-close :close-on-click-modal="false">
        <el-row class="detail-row-view" v-if="dialogReadonly">
            <el-col :span="12">
                <div class="label">标题</div>
@@ -38,15 +32,8 @@
            </el-col>
        </el-row>
        <el-form
            class="gd-dialog-form"
            v-else
            ref="formRef"
            :model="formData"
            :rules="rules"
            :disabled="dialogReadonly"
            label-width="140px"
        >
        <el-form class="gd-dialog-form" v-else ref="formRef" :model="formData" :rules="rules" :disabled="dialogReadonly"
            label-width="140px">
            <el-row>
                <el-col :span="12">
                    <el-form-item label="标题" prop="title">
@@ -60,81 +47,44 @@
                </el-col>
                <el-col :span="12">
                    <el-form-item label="提出部门" prop="proposeDeptId">
                        <el-tree-select
                            class="gd-select"
                            popper-class="gd-tree-select-popper"
                            v-model="formData.proposeDeptId"
                            node-key="id"
                            :data="deptTree"
                            :props="treeProps"
                            check-strictly
                            clearable
                        />
                        <el-tree-select class="gd-select" popper-class="gd-tree-select-popper"
                            v-model="formData.proposeDeptId" node-key="id" :data="deptTree" :props="treeProps"
                            check-strictly clearable />
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="数据提供部门" prop="dataProvideDeptId">
                        <el-tree-select
                            class="gd-select"
                            popper-class="gd-tree-select-popper"
                            v-model="formData.dataProvideDeptId"
                            node-key="id"
                            :data="deptTree"
                            :props="treeProps"
                            check-strictly
                            clearable
                        />
                        <el-tree-select class="gd-select" popper-class="gd-tree-select-popper"
                            v-model="formData.dataProvideDeptId" node-key="id" :data="deptTree" :props="treeProps"
                            check-strictly clearable />
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="评分" prop="score">
                        <el-input-number
                            class="gd-input"
                            v-model="formData.score"
                            :min="1"
                            :max="10"
                            placeholder="请输入"
                            controls-position="right"
                        />
                        <el-input-number class="gd-input" v-model="formData.score" :min="1" :max="10" placeholder="请输入"
                            controls-position="right" />
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="是否解决" prop="isResolved">
                        <el-select
                            class="gd-select"
                            popper-class="gd-select-popper"
                            v-model="formData.isResolved"
                            placeholder="请选择"
                            clearable
                        >
                            <el-option v-for="item in isResolvedOptions" :key="item.value" :label="item.label" :value="item.value" />
                        <el-select class="gd-select" popper-class="gd-select-popper" v-model="formData.isResolved"
                            placeholder="请选择" clearable>
                            <el-option v-for="item in isResolvedOptions" :key="item.value" :label="item.label"
                                :value="item.value" />
                        </el-select>
                    </el-form-item>
                </el-col>
                <el-col :span="24">
                    <el-form-item label="评价内容" prop="evaluationContent">
                        <el-input
                            class="gd-input"
                            v-model="formData.evaluationContent"
                            type="textarea"
                            :rows="4"
                            placeholder="请输入"
                            clearable
                        />
                        <el-input class="gd-input" v-model="formData.evaluationContent" type="textarea" :rows="4"
                            placeholder="请输入" clearable />
                    </el-form-item>
                </el-col>
            </el-row>
        </el-form>
        <template #footer v-if="!dialogReadonly">
            <el-button color="#F2F3F5" @click="visible = false">{{ dialogReadonly ? '关闭' : '取消' }}</el-button>
            <el-button
                class=""
                color="#4C34FF"
                :loading="submitting"
                :disabled="submitting"
                @click="handleSubmit"
            >
            <el-button class="" color="#4C34FF" :loading="submitting" :disabled="submitting" @click="handleSubmit">
                保存
            </el-button>
        </template>
@@ -175,17 +125,29 @@
const titleEnum = ref({ edit: '编辑', view: '查看', add: '新增' })
const rules = {
    title: fieldRules(true,50),
    dataName: fieldRules(true,50),
    title: fieldRules(true, 50),
    dataName: fieldRules(true, 50),
    proposeDeptId: fieldRules(true),
    dataProvideDeptId: fieldRules(true),
    score: fieldRules(true,50),
    score: [
        { required: true, message: '请输入', trigger: ['blur', 'change'] },
        {
            validator: (_rule, value, callback) => {
                if (value === '' || value === null || value === undefined) return callback()
                const num = Number(value)
                if (!Number.isFinite(num)) return callback(new Error('请输入数字'))
                if (num > 10) return callback(new Error('最大值为10'))
                return callback()
            },
            trigger: ['blur', 'change'],
        },
    ],
    isResolved: fieldRules(true),
    evaluationContent: fieldRules(true,200),
    evaluationContent: fieldRules(true, 200),
}
// 提交新增/编辑
async function handleSubmit() {
async function handleSubmit () {
    const isValid = await formRef.value?.validate().catch(() => false)
    if (!isValid) return
    submitting.value = true
@@ -200,14 +162,14 @@
}
// 加载详情
async function loadDetail() {
async function loadDetail () {
    if (!formData.value.id) return
    const res = await gdDataEvaluationDetailApi({ id: formData.value.id })
    formData.value = res?.data?.data ?? {}
}
// 打开弹框
async function open({ mode = 'add', row } = {}) {
async function open ({ mode = 'add', row } = {}) {
    dialogMode.value = mode
    formData.value = dialogMode.value === 'add' ? initForm() : row
    if (dialogMode.value !== 'add') {