吉安感知网项目-前端
罗广辉
2026-01-21 83488f70e9541ef776268d155f13b448142d3a17
Merge remote-tracking branch 'origin/master'
3 files modified
126 ■■■■■ changed files
applications/drone-command/src/styles/common/cockpit.scss 2 ●●● patch | view | raw | blame | history
applications/task-work-order/src/views/orderView/orderDataManage/appInnovation/index.vue 35 ●●●●● patch | view | raw | blame | history
applications/task-work-order/src/views/orderView/orderDataManage/dataObjection/FormDiaLog.vue 89 ●●●●● patch | view | raw | blame | history
applications/drone-command/src/styles/common/cockpit.scss
@@ -301,7 +301,7 @@
                        }
                        td.disabled div {
                            background-color: #00193b !important;
                            background-color: #1A1A2A !important;
                            color: #505050 !important;
                            cursor: not-allowed;
                        }
applications/task-work-order/src/views/orderView/orderDataManage/appInnovation/index.vue
@@ -14,7 +14,9 @@
                    clearable
                    @change="handleSearch"
                >
                    <el-option v-for="item in appInnovationStatusOptions" :key="item.value" :label="item.label" :value="item.value" />
                    <el-option v-for="item in dictObj.appInnovationStatus" :key="item.dictKey"
                        :label="item.dictValue"
                        :value="item.dictKey"/>
                </el-select>
            </el-form-item>
@@ -32,12 +34,16 @@
        <div class="gd-table-container" v-loading="loading">
            <div class="gd-table-content gd-table-content-bg">
                <el-table class="gd-table" :data="list" @selection-change="handleSelectionChange">
                    <el-table-column type="selection" width="46" />
                    <el-table-column label="序号" width="60" align="center">
                        <template #default="{ $index }">
                            {{ formatNumber((searchParams.current - 1) * searchParams.size + $index + 1) }}
                        </template>
                    </el-table-column>
                    <el-table-column prop="caseName" show-overflow-tooltip label="案例名称" />
                    <el-table-column prop="belongDomain" show-overflow-tooltip label="所属领域" />
                    <el-table-column prop="innovationStatus" show-overflow-tooltip label="应用创新状态">
                        <template v-slot="{ row }">
                            {{ getInnovationStatusLabel(row.innovationStatus) }}
                            {{ getDictLabel(row.innovationStatus) }}
                        </template>
                    </el-table-column>
                    <el-table-column prop="applicationScenarioDesc" show-overflow-tooltip label="应用场景描述" />
@@ -75,6 +81,7 @@
import { onMounted, ref, nextTick, provide } from 'vue'
import { ElMessage, ElMessageBox } from 'element-plus'
import { getDictionaryByCode } from '@/api/system/dictbiz'
import { getDictLabel } from '@ztzf/utils'
import FormDiaLog from './FormDiaLog.vue'
import {
    gdApplicationInnovationPageApi,
@@ -96,23 +103,16 @@
const queryParamsRef = ref(null) // 查询表单实例
const dialogRef = ref(null) // 弹框实例
const dialogVisible = ref(false)
const appInnovationStatusOptions = ref([]) // 应用创新状态字典
// 注入字典数据到子组件
provide('appInnovationStatusOptions', appInnovationStatusOptions)
const dictObj = ref({}) // 字典对象
provide('dictObj', dictObj)
// 获取字典
function getDictList() {
    getDictionaryByCode('appInnovationStatus').then(res => {
        appInnovationStatusOptions.value = res.data.data?.appInnovationStatus || []
    return getDictionaryByCode('appInnovationStatus').then(res => {
        dictObj.value = res.data.data
    })
}
// 获取应用创新状态标签
function getInnovationStatusLabel(value) {
    const item = appInnovationStatusOptions.value.find(item => item.value === value)
    return item?.label || value
}
// 获取列表
async function getList() {
@@ -168,6 +168,11 @@
    selectedIds.value = rows.map(item => item.id)
}
// 格式化数字为两位数
function formatNumber(num) {
    return num.toString().padStart(2, '0')
}
onMounted(() => {
    getList()
    getDictList()
applications/task-work-order/src/views/orderView/orderDataManage/dataObjection/FormDiaLog.vue
@@ -24,23 +24,23 @@
                    <div class="label">提交人联系方式</div>
                    <div class="val">{{ formData.submitterContact }}</div>
                </el-col>
                <el-col :span="12">
                <!-- <el-col :span="12">
                    <div class="label">提交单位</div>
                    <div class="val">{{ formData.submitUnitName }}</div>
                </el-col>
                </el-col> -->
                <el-col :span="12">
                    <div class="label">目录/申请资源名称</div>
                    <div class="val">{{ formData.catalogResourceName }}</div>
                </el-col>
                <el-col :span="24">
                <el-col :span="12">
                    <div class="label">异议描述</div>
                    <div class="val">{{ formData.objectionDesc }}</div>
                </el-col>
                <el-col :span="24">
                <el-col :span="12">
                    <div class="label">异议依据</div>
                    <div class="val">{{ formData.objectionBasis }}</div>
                </el-col>
                <el-col :span="24">
                <el-col :span="12">
                    <div class="label">相关附件</div>
                    <div class="val">{{ formData.attachName || '暂无附件' }}</div>
                </el-col>
@@ -90,50 +90,46 @@
                        <el-input class="gd-input" v-model="formData.submitterContact" placeholder="请输入" clearable />
                    </el-form-item>
                </el-col>
                <el-col :span="12">
                    <el-form-item label="提交单位" prop="submitUnitId">
                        <el-tree-select
                            class="gd-select"
                            popper-class="gd-tree-select-popper"
                            v-model="formData.submitUnitId"
                            node-key="id"
                            :data="deptTree"
                            :props="treeProps"
                            check-strictly
                            clearable
                        />
                    </el-form-item>
                </el-col>
<!--                <el-col :span="12">-->
<!--                    <el-form-item label="提交单位" prop="submitUnitId">-->
<!--                        <el-tree-select-->
<!--                            class="gd-select"-->
<!--                            popper-class="gd-tree-select-popper"-->
<!--                            v-model="formData.submitUnitId"-->
<!--                            node-key="id"-->
<!--                            :data="deptTree"-->
<!--                            :props="treeProps"-->
<!--                            check-strictly-->
<!--                            clearable-->
<!--                        />-->
<!--                    </el-form-item>-->
<!--                </el-col>-->
                <el-col :span="12">
                    <el-form-item label="目录/申请资源名称" prop="catalogResourceName">
                        <el-input class="gd-input" v-model="formData.catalogResourceName" placeholder="请输入" clearable />
                    </el-form-item>
                </el-col>
                <el-col :span="24">
                <el-col :span="12">
                    <el-form-item label="异议描述" prop="objectionDesc">
                        <el-input
                            class="gd-input"
                            v-model="formData.objectionDesc"
                            type="textarea"
                            :rows="4"
                            placeholder="请输入"
                            clearable
                        />
                    </el-form-item>
                </el-col>
                <el-col :span="24">
                <el-col :span="12">
                    <el-form-item label="异议依据" prop="objectionBasis">
                        <el-input
                            class="gd-input"
                            v-model="formData.objectionBasis"
                            type="textarea"
                            :rows="4"
                            placeholder="请输入"
                            clearable
                        />
                    </el-form-item>
                </el-col>
                <el-col :span="24">
                <el-col :span="12">
                    <el-form-item label="相关附件" prop="attachId">
                        <div class="upload-container">
                            <el-upload
@@ -160,7 +156,6 @@
            </el-row>
        </el-form>
        <template #footer>
            <el-button color="#F2F3F5" @click="visible = false">{{ dialogReadonly ? '关闭' : '取消' }}</el-button>
            <el-button
                class="save-btn"
                color="#4C34FF"
@@ -171,6 +166,8 @@
            >
                保存
            </el-button>
            <el-button color="#F2F3F5" @click="handleApply">申请</el-button>
        </template>
    </el-dialog>
</template>
@@ -195,8 +192,13 @@
    catalogResourceName: '',
    objectionDesc: '',
    objectionBasis: '',
    attachId: '',
    attachName: '',
    attachmentList:[
        {
            attachId: '',
            attachName: '',
        }
    ]
})
// 注入部门树和字典
@@ -211,7 +213,7 @@
const dialogMode = ref('add') // 弹框模式
const submitting = ref(false) // 提交中
const dialogReadonly = computed(() => dialogMode.value === 'view')
const titleEnum = ref({ edit: '编辑', view: '查看', add: '新增' })
const titleEnum = ref({ edit: '编辑', view: '查看', add: '数据异议申请' })
const fileList = ref([]) // 上传文件列表
const uploadedFiles = ref([]) // 已上传文件列表
@@ -297,7 +299,27 @@
    if (!isValid) return
    submitting.value = true
    try {
        await gdDataObjectionSubmitApi(formData.value)
        // 构建符合接口要求的提交数据
        const submitData = {
            title: formData.value.title,
            objectionType: formData.value.objectionType,
            submitter: formData.value.submitter,
            submitterContact: formData.value.submitterContact,
            catalogResourceName: formData.value.catalogResourceName,
            objectionDesc: formData.value.objectionDesc,
            objectionBasis: formData.value.objectionBasis,
            areaCode: formData.value.areaCode || '',
            handleUnit: formData.value.handleUnit || '',
            objectionStatus: formData.value.objectionStatus || '',
            otherObjectionDetail: formData.value.otherObjectionDetail || '',
            reviewOpinion: formData.value.reviewOpinion || '',
            // 构建附件列表
            attachmentList: uploadedFiles.value.map(file => ({
                attachId: file.attachId,
                attachName: file.originalName,
            }))
        }
        await gdDataObjectionSubmitApi(submitData)
        ElMessage.success(dialogMode.value === 'add' ? '新增成功' : '更新成功')
        visible.value = false
        emit('success')
@@ -305,7 +327,10 @@
        submitting.value = false
    }
}
// 申请提交
async function handleApply() {
}
// 加载详情
async function loadDetail() {
    if (!formData.value.id) return