无人机管理后台前端(已迁走)
chenyao
2025-09-26 fe76e1bd309372a8ebd419284596db83292d429c
feat:更新日志功能和修改功能
12 files modified
370 ■■■■ changed files
src/views/device/addDevice.vue 138 ●●●●● patch | view | raw | blame | history
src/views/device/airport.vue 112 ●●●●● patch | view | raw | blame | history
src/views/device/fly.vue 8 ●●●● patch | view | raw | blame | history
src/views/job/components/DeviceJobDetails.vue 2 ●●● patch | view | raw | blame | history
src/views/monitor/log/flightLog.vue 10 ●●●● patch | view | raw | blame | history
src/views/system/dept.vue 20 ●●●● patch | view | raw | blame | history
src/views/system/sysConfig.vue 8 ●●●● patch | view | raw | blame | history
src/views/system/userinfo.vue 2 ●●● patch | view | raw | blame | history
src/views/tickets/orderLog-copy1.vue 4 ●●●● patch | view | raw | blame | history
src/views/tickets/orderLog.vue 11 ●●●● patch | view | raw | blame | history
src/views/tickets/ticket.vue 47 ●●●● patch | view | raw | blame | history
src/views/workspace/index.vue 8 ●●●● patch | view | raw | blame | history
src/views/device/addDevice.vue
@@ -126,7 +126,7 @@
                        ],
                    },
                    {
                        label: '所属单位',
                        label: '所属部门',
                        prop: 'dept_name',
                        addDisplay: false,
                        editDisplay: false,
@@ -136,13 +136,13 @@
                        rules: [
                        {
                            required: true,
                            message: '请输入所属单位',
                            message: '请输入所属部门',
                            trigger: 'blur',
                        },
                        ],
                    },
                    {
                        label: '所属单位',
                        label: '所属部门',
                        prop: 'dept_id',
                        hide: true,
                        type: 'tree',
@@ -158,7 +158,7 @@
                        rules: [
                        {
                            required: true,
                            message: '请输入所属单位',
                            message: '请输入所属部门',
                            trigger: 'blur',
                        },
                        ],
@@ -214,66 +214,32 @@
                        width: 200,
                    },
                    {
                        label: '设备位置',
                        prop: 'area_code',
                        type: 'cascader',
                        labelWidth: 130,
                        searchSpan: 4,
                        hide: true,
                        search: true,
                        // overHidden: true,
                        editDisplay: true,
                        viewDisplay: true,
                        checkStrictly: true,
                        props: {
                        label: 'title',
                        value: 'value',
                        emitPath: false,
                        multiple: false,
                        expandTrigger: 'hover',
                        },
                        dataType: 'string',
                        rules: [
                      label: '设备位置',
                      prop: 'area_code',
                      // type: 'cascader',
                      type: 'tree',
                      labelWidth: 145,
                      searchSpan: 4,
                      hide: true,
                      search: true,
                      // overHidden: true,
                      editDisplay: true,
                      viewDisplay: true,
                      checkStrictly: true,
                      defaultExpandAll: true,
                      dicData: [],
                      props: {
                        label: 'name',
                        value: 'id',
                        children: 'childrens',
                      },
                      rules: [
                        {
                            required: true,
                            message: '请选择设备位置',
                            trigger: 'change',
                          required: true,
                          message: '请选择设备位置',
                          trigger: 'change',
                        },
                        ],
                        lazy: true,
                        lazyLoad (node, resolve) {
                        let level = node.level
                        let list = []
                        let callback = () => {
                            resolve(
                            (list || []).map(ele => ({
                                ...ele,
                                value: ele.value,
                                leaf: level >= 2,
                            }))
                            )
                        }
                        if (level === 0) {
                            getLazyTree('000000000000').then(res => {
                            list = res.data.data
                            callback()
                            })
                        } else if (level === 1) {
                            getLazyTree(node.value).then(res => {
                            list = res.data.data
                            callback()
                            })
                        } else if (level === 2) {
                            getLazyTree(node.value).then(res => {
                            list = res.data.data
                            callback()
                            })
                        } else {
                            callback()
                        }
                        },
                      ],
                    },
                    {
                        label: '创建时间',
@@ -370,6 +336,12 @@
        await this.getRegionTreeList();
        await this.getSystemNamesList();
    },
    mounted() {
      getRegionTreeAll({ parentCode: this.userInfo.detail.areaCode }).then(res => {
        const column = this.findObject(this.option.column, 'area_code');
        column.dicData = res.data.data ? [res.data.data] : [];
      });
    },
    methods: {
        async getRegionTreeList(code) {
            try {
@@ -400,20 +372,20 @@
                this.systemNamesList = [];
            }
        },
        beforeOpen (type, row, index) {
            if (type === 'add') {
                this.form = {
                    workspace_name: '',
                    platform_name: '',
                    dept_name: '',
                    bind_code: '',
                    type: 0,
                    workspace_desc: '',
                    area_name: '',
                    area_code: '',
                }
            }
        },
        // beforeOpen (type, row, index) {
        //     if (type === 'add') {
        //         this.form = {
        //             workspace_name: '',
        //             platform_name: '',
        //             dept_name: '',
        //             bind_code: '',
        //             type: 0,
        //             workspace_desc: '',
        //             area_name: '',
        //             area_code: '',
        //         }
        //     }
        // },
        async getXZQHList(area_code) {
            try {
                const res = await getLazyTree(area_code);
@@ -606,12 +578,24 @@
            }
        },
        beforeOpen (done, type) {
            if (type === 'add') {
              this.form = {
                workspace_name: '',
                platform_name: '',
                dept_name: '',
                bind_code: '',
                type: 0,
                workspace_desc: '',
                area_name: '',
                area_code: '',
              }
            }
            if (['edit', 'view'].includes(type)) {
                getDetail(this.form.id).then(async res => {
                    const data = res.data.data
                     this.form = {
                        ...data,
                        area_code: await this.getFullAreaCode(data.area_code),
                        // area_code: await this.getFullAreaCode(data.area_code),
                     }
                })
            }
src/views/device/airport.vue
@@ -10,7 +10,8 @@
        </el-button>
      </template>
      <template #dept_name="{ row }">
        <el-tag>{{ row.dept_name }}</el-tag>
        <el-tag v-if="row.dept_name">{{ row.dept_name }}</el-tag>
        <span v-else>/</span>
      </template>
      <template #status="{ row }">
        <div v-if="row.status == true" class="onlineStatus">
@@ -200,6 +201,7 @@
<script>
import { ElMessage, ElMessageBox } from 'element-plus'
import { getRegionTreeAll } from '@/api/job/task';
import { pxToRem } from '@/utils/rem'
import {
  getList,
@@ -232,6 +234,8 @@
    DockControlPanel,
  },
  data () {
    // const self = this
    const validatePass = (rule, value, callback) => {
      if (value === '') {
        callback(new Error('请输入密码'))
@@ -390,7 +394,8 @@
          {
            label: '设备位置',
            prop: 'area_code',
            type: 'cascader',
            // type: 'cascader',
            type: 'tree',
            labelWidth: 145,
            searchSpan: 4,
            hide: true,
@@ -399,15 +404,13 @@
            editDisplay: true,
            viewDisplay: true,
            checkStrictly: true,
            defaultExpandAll: true,
            dicData: [],
            props: {
              label: 'title',
              value: 'value',
              emitPath: false,
              multiple: false,
              expandTrigger: 'hover',
              label: 'name',
              value: 'id',
              children: 'childrens',
            },
            dataType: 'string',
            rules: [
              {
                required: true,
@@ -415,39 +418,6 @@
                trigger: 'change',
              },
            ],
            lazy: true,
            lazyLoad (node, resolve) {
              let level = node.level
              let list = []
              let callback = () => {
                resolve(
                  (list || []).map(ele => ({
                    ...ele,
                    value: ele.value,
                    leaf: level >= 2,
                  }))
                )
              }
              if (level === 0) {
                getLazyTree('000000000000').then(res => {
                  list = res.data.data
                  callback()
                })
              } else if (level === 1) {
                getLazyTree(node.value).then(res => {
                  list = res.data.data
                  callback()
                })
              } else if (level === 2) {
                getLazyTree(node.value).then(res => {
                  list = res.data.data
                  callback()
                })
              } else {
                callback()
              }
            },
          },
          {
            label: '设备名称',
@@ -573,30 +543,32 @@
            viewDisplay: false,
          },
          {
            label: '所属单位',
            label: '所属部门',
            prop: 'dept_name',
            addDisplay: false,
            editDisplay: false,
            viewDisplay: false,
            align: 'center',
            labelWidth: 145,
            width: 180,
            rules: [
              {
                required: true,
                message: '请输入所属单位',
                message: '请输入所属部门',
                trigger: 'blur',
              },
            ],
          },
          {
            label: '所属单位',
            label: '所属部门',
            prop: 'dept_id',
            hide: true,
            type: 'tree',
            defaultExpandAll: true,
            search: true,
            searchSpan: 4,
            labelWidth: 145,
            defaultExpandAll: true,
            dicUrl: '/blade-system/dept/getTree',
            props: {
              label: 'name',
@@ -605,7 +577,7 @@
            rules: [
              {
                required: true,
                message: '请输入所属单位',
                message: '请输入所属部门',
                trigger: 'blur',
              },
            ],
@@ -784,8 +756,9 @@
      },
    }
  },
  computed: {
    ...mapGetters(['permission']),
    ...mapGetters(['permission', 'userInfo']),
    permissionList () {
      return {
        addBtn: this.validData(this.permission.air_add, true),
@@ -813,7 +786,10 @@
    })
  },
  mounted() {
    getRegionTreeAll({ parentCode: this.userInfo.detail.areaCode }).then(res => {
      const column = this.findObject(this.option.column, 'area_code');
      column.dicData = res.data.data ? [res.data.data] : [];
    });
  },
  methods: {
    getDockModeText (value) {
@@ -1348,6 +1324,7 @@
        })
    },
    async getFullAreaCode (areaCode) {
      console.log('getFullAreaCode', areaCode)
      if (!areaCode) return ''
      const code = areaCode.toString()
@@ -1369,10 +1346,9 @@
      if (['edit', 'view'].includes(type)) {
        getDetail(this.form.id).then(async res => {
          const data = res.data.data
          this.form = {
            ...data,
            area_code: await this.getFullAreaCode(data.area_code),
            // area_code: await this.getFullAreaCode(data.area_code),
            area_name: this.form.area_name,
            cnmode_code: this.getDockModeText(this.form.mode_code),
            domainTxt: data.domain === 0 ? '无人机' : data.domain === 3 ? '机巢' : '未知',
@@ -1442,23 +1418,23 @@
        resolve(data)
      })
    },
    rowDel (row) {
      this.$confirm('确定将选择数据删除?', {
        confirmButtonText: '确定',
        cancelButtonText: '取消',
        type: 'warning',
      })
        .then(() => {
          return remove(row.id)
        })
        .then(() => {
          this.onLoad(this.page)
          this.$message({
            type: 'success',
            message: '操作成功!',
          })
        })
    },
    // rowDel (row) {
    //   this.$confirm('确定将选择数据删除?', {
    //     confirmButtonText: '确定',
    //     cancelButtonText: '取消',
    //     type: 'warning',
    //   })
    //     .then(() => {
    //       return remove(row.id)
    //     })
    //     .then(() => {
    //       this.onLoad(this.page)
    //       this.$message({
    //         type: 'success',
    //         message: '操作成功!',
    //       })
    //     })
    // },
    // 设置无人机操作密码
    setOperatePasswordConfirm () {
      var that = this
src/views/device/fly.vue
@@ -201,7 +201,7 @@
          },
          {
            label: '所属单位',
            label: '所属部门',
            prop: 'dept_name',
            addDisplay: false,
            editDisplay: false,
@@ -210,13 +210,13 @@
            rules: [
              {
                required: true,
                message: '请输入所属单位',
                message: '请输入所属部门',
                trigger: 'blur',
              },
            ],
          },
          {
            label: '所属单位',
            label: '所属部门',
            prop: 'dept_id',
            hide: true,
            type: 'tree',
@@ -230,7 +230,7 @@
            rules: [
              {
                required: true,
                message: '请输入所属单位',
                message: '请输入所属部门',
                trigger: 'blur',
              },
            ],
src/views/job/components/DeviceJobDetails.vue
@@ -181,7 +181,7 @@
    { name: '任务类型', value: '', field: 'industry_type_str' },
    { name: '飞行事件', value: '', field: 'event_number' },
    { name: '所属机巢', value: '', field: 'device_names' },
    { name: '所属单位', value: '', field: 'dept_name' },
    { name: '所属部门', value: '', field: 'dept_name' },
    { name: '任务时间', value: '', field: 'cycle_time_value' },
    { name: '关联算法', value: '', field: 'ai_type_str' },
    { name: '任务描述', value: '', field: 'remark' },
src/views/monitor/log/flightLog.vue
@@ -85,7 +85,7 @@
                     @size-change="handleSizeChange" @current-change="handleCurrentChange" />
    </div>
  </div>
  <el-dialog class="ztzf-dialog" append-to-body v-model="isShowView" title="查看" :width="pxToRem(1000)" :close-on-click-modal="false" :destroy-on-close="true">
  <el-dialog class="ztzf-dialog-mange" append-to-body v-model="isShowView" title="查看" :width="pxToRem(1000)" :close-on-click-modal="false" :destroy-on-close="true">
    <el-table border :data="tableDataDetails" height="466">
      <el-table-column label="序号" type="index" width="60"></el-table-column>
      <el-table-column prop="flight_type" label="飞行类型" align="center" show-overflow-tooltip></el-table-column>
@@ -94,14 +94,16 @@
      <el-table-column prop="height" label="绝对高度" align="center"></el-table-column>
      <el-table-column prop="elevation" label="实时真高" align="center"></el-table-column>
    </el-table>
    <div class="pagination" style="display: flex;justify-content: end;margin-top: 10px;">
    <template #footer>
    <div class="pagination dialog-footer" style="display: flex;justify-content: end;margin-top: 10px;">
      <el-pagination class="ztzf-pagination" popper-class="custom-pagination-dropdown" background
                     :page-sizes="[10, 20, 30, 40, 50, 100]" :size="size" v-model:current-page="detailParams.current"
                     v-model:page-size="detailParams.size" layout="total, sizes, prev, pager, next, jumper" :total="detailTotal"
                     @size-change="handleSizeChangeDetails" @current-change="handleCurrentChangeDetails" />
    </div>
    </template>
  </el-dialog>
  <el-dialog class="ztzf-dialog" append-to-body v-model="isShowFlyMapView" title="查看" :width="pxToRem(1000)" :close-on-click-modal="false" :destroy-on-close="true">
  <el-dialog class="ztzf-dialog-mange" append-to-body v-model="isShowFlyMapView" title="查看" :width="pxToRem(1000)" :close-on-click-modal="false" :destroy-on-close="true">
    <div id="flyMap" class="ztzf-cesium"></div>
  </el-dialog>
</template>
@@ -267,8 +269,6 @@
      Number(i.latitude),
      Number(i.height)
    ));
  console.log(validPositions, tableDataDetails.value)
  if (validPositions.length > 0) {
    previewDataSource.entities.add({
src/views/system/dept.vue
@@ -73,33 +73,33 @@
        column: [
          {
            label: '机构名称',
            label: '部门名称',
            prop: 'deptName',
            search: true,
            labelWidth: 120,
            rules: [
              {
                required: true,
                message: '请输入机构名称',
                message: '请输入部门名称',
                trigger: 'blur',
              },
            ],
          },
          {
            label: '机构全称',
            label: '部门全称',
            prop: 'fullName',
            search: true,
            labelWidth: 120,
            rules: [
              {
                required: true,
                message: '请输入机构全称',
                message: '请输入部门全称',
                trigger: 'blur',
              },
            ],
          },
          {
            label: '上级机构',
            label: '上级部门',
            prop: 'parentId',
            dicData: [],
            type: 'tree',
@@ -113,13 +113,13 @@
            rules: [
              {
                required: false,
                message: '请选择上级机构',
                message: '请选择上级部门',
                trigger: 'click',
              },
            ],
          },
          {
            label: '机构类型',
            label: '部门类型',
            type: 'select',
            dicUrl: '/blade-system/dict/dictionary?code=org_category',
            props: {
@@ -134,13 +134,13 @@
            rules: [
              {
                required: true,
                message: '请输入机构类型',
                message: '请输入部门类型',
                trigger: 'blur',
              },
            ],
          },
          {
            label: '机构性质',
            label: '部门性质',
            type: 'select',
            dicUrl: '/blade-system/dict/dictionary?code=org_nature',
            props: {
@@ -155,7 +155,7 @@
            rules: [
              {
                required: true,
                message: '请输入机构性质',
                message: '请输入部门性质',
                trigger: 'blur',
              },
            ],
src/views/system/sysConfig.vue
@@ -72,7 +72,7 @@
            ],
          },
          {
            label: '所属单位',
            label: '所属部门',
            prop: 'deptName',
            addDisplay: false,
            editDisplay: false,
@@ -80,13 +80,13 @@
            rules: [
              {
                required: true,
                message: '请输入所属单位',
                message: '请输入所属部门',
                trigger: 'blur',
              },
            ],
          },
          {
            label: '所属单位',
            label: '所属部门',
            prop: 'deptId',
            hide: true,
            type: 'tree',
@@ -99,7 +99,7 @@
            rules: [
              {
                required: true,
                message: '请输入所属单位',
                message: '请输入所属部门',
                trigger: 'blur',
              },
            ],
src/views/system/userinfo.vue
@@ -52,7 +52,7 @@
            <!--                        <el-form-item label="昵称:">
                                                    <el-input class="ztzf-input" v-model="userInfo.name" />
                                                </el-form-item>-->
            <el-form-item label="所属单位:">
            <el-form-item label="所属部门:">
              <el-input class="ztzf-input" v-model="userInfo.deptName" disabled />
            </el-form-item>
            <el-form-item label="手机号:">
src/views/tickets/orderLog-copy1.vue
@@ -23,7 +23,7 @@
              </div>
              <div class="search-bar-box-item">
                <el-select placeholder="请选择所属单位" v-model="filters.create_dept" clearable>
                <el-select placeholder="请选择所属部门" v-model="filters.create_dept" clearable>
                  <el-option v-for="dept in departments" :key="dept.value" :label="dept.label" :value="dept.value" />
                </el-select>
              </div>
@@ -587,7 +587,7 @@
            showOverflowTooltip: true,
          },
          {
            label: '所属单位', prop: 'dept_name', width: 100, ellipsis: true,
            label: '所属部门', prop: 'dept_name', width: 100, ellipsis: true,
            showOverflowTooltip: true,
          },
          {
src/views/tickets/orderLog.vue
@@ -21,7 +21,7 @@
              </div>
              <!--              <div class="search-bar-box-item">-->
              <!--                <el-select placeholder="请选择所属单位" v-model="filters.create_dept" clearable>-->
              <!--                <el-select placeholder="请选择所属部门" v-model="filters.create_dept" clearable>-->
              <!--                  <el-option v-for="dept in departments" :key="dept.value" :label="dept.label" :value="dept.value" />-->
              <!--                </el-select>-->
              <!--              </div>-->
@@ -302,7 +302,7 @@
            <el-form-item label="安全返航真高" prop="rth_altitude">
              <el-input-number
                v-model="form.rth_altitude"
                :min="30"
                :min="50"
                :max="300"
              ></el-input-number>
            </el-form-item>
@@ -955,7 +955,7 @@
            showOverflowTooltip: true,
          },
          {
            label: '所属单位',
            label: '所属部门',
            prop: 'dept_name',
            ellipsis: true,
            showOverflowTooltip: true,
@@ -970,7 +970,7 @@
          {
            label: '已执行次数',
            prop: 'job_num',
            width: 70,
            width: 90,
            ellipsis: true,
            showOverflowTooltip: true,
          },
@@ -979,6 +979,7 @@
            prop: 'content',
            ellipsis: true,
            overHidden: true,
            width: 90,
            showOverflowTooltip: true,
          },
          {
@@ -1126,7 +1127,7 @@
        });
      } else if (column.no === 4) {
        navigator.clipboard.writeText(row.dept_name).then(() => {
          this.$message.success('复制所属单位成功');
          this.$message.success('复制所属部门成功');
        });
      } else if (column.no === 8) {
        navigator.clipboard.writeText(row.wayline_name).then(() => {
src/views/tickets/ticket.vue
@@ -20,7 +20,7 @@
            />
            <!-- <el-select
              v-model="filters.department"
              placeholder="请选择所属单位"
              placeholder="请选择所属部门"
              class="filter-item"
              clearable
            >
@@ -277,10 +277,10 @@
          <el-row :gutter="16">
            <el-col :span="12">
              <el-form-item label="所属部门" prop="department">
              <el-form-item label="处理部门" prop="department">
                <el-select
                  v-model="form.department"
                  placeholder="请选择所属部门"
                  placeholder="请选择处理部门"
                  @change="handleDepartmentChange"
                  class="full-width"
                >
@@ -297,7 +297,7 @@
              <el-form-item label="处理人员" prop="handler">
                <el-select
                  v-model="form.handler"
                  placeholder="请先选择所属部门"
                  placeholder="请先选择处理人员"
                  :disabled="!form.department"
                  class="full-width"
                >
@@ -332,7 +332,7 @@
              </el-form-item>
            </el-col>
            <el-col :span="12">
              <el-form-item label="选择位置" prop="location">
              <el-form-item label="事件位置" prop="location">
                <div class="location-wrapper">
                  <avue-input-map
                    v-model="form.location"
@@ -365,7 +365,7 @@
              </el-form-item>
            </el-col>
            <el-col :span="12">
              <el-form-item label="附件图片" prop="photos" required class="upload-wrapper">
              <el-form-item label="事件图片" prop="photos" required class="upload-wrapper">
                <el-upload
                  v-if="createoredit === 1"
                  ref="upload"
@@ -857,13 +857,13 @@
      <div class="review-container">
        <div class="review-image-wrapper">
          <!-- 修改左右箭头的显示条件 -->
          <div
          <el-button
            v-if="selections.length > 1 && currentReviewImage"
            class="arrow-button left"
            @click="handlePrevImage"
            icon="el-icon-arrow-left"
          >
            <i class="el-icon-arrow-left"></i>
          </div>
          </el-button>
          <div class="review-image-container">
            <!-- <el-image v-if="currentReviewImage" :src="getThumbUrl(currentReviewImage)" fit="fill"
@@ -888,13 +888,13 @@
          </div>
          <!-- 修改右箭头的显示条件 -->
          <div
          <el-button
            v-if="selections.length > 1 && currentReviewImage"
            class="arrow-button right"
            @click="handleNextImage"
            icon="el-icon-arrow-right"
          >
            <i class="el-icon-arrow-right"></i>
          </div>
          </el-button>
        </div>
        <!-- 修改分页器的显示条件 -->
@@ -1049,8 +1049,8 @@
          // { label: "序号", prop: "id", width: 70 },
          { label: '工单编号', prop: 'orderNumber', width: 170 },
          { label: '工单名称', prop: 'orderName', width: 150, overHidden: true, tooltip: true },
          { label: '所属单位', prop: 'department', overHidden: true, tooltip: true },
          { label: '发起时间', prop: 'startTime', width: 160 },
          { label: '所属部门', prop: 'department', overHidden: true, tooltip: true },
          { label: '发起时间', prop: 'startTime', width: 160, overHidden: true },
          { label: '关联算法', prop: 'aiType', overHidden: true, tooltip: true },
          {
            label: '工单类型',
@@ -1068,8 +1068,8 @@
            width: 152,
            overHidden: true,
          },
          { label: '创建人', prop: 'creator', width: 70 },
          { label: '处理人', prop: 'handler', width: 70 },
          { label: '创建人', prop: 'creator', width: 120, overHidden: true, },
          { label: '处理人', prop: 'handler', width: 120, overHidden: true, },
          {
            slot: true,
            hide: envName === 'jiangwu' ? true : false,
@@ -1284,7 +1284,7 @@
          editable: false,
        },
        {
          label: '任务发起人',
          label: '工单创建人',
          value: this.currentDetail.creator,
          editable: false,
        },
@@ -1337,7 +1337,7 @@
          type: 'input',
        },
        { label: '关键任务', value: this.currentDetail.keyData, editable: false },
        { label: '任务发起人', value: this.currentDetail.creator, editable: false },
        { label: '工单创建人', value: this.currentDetail.creator, editable: false },
        { label: '当前状态', value: this.mapStatus(this.currentDetail.status), editable: false },
        { label: '事件地址', value: this.currentDetail.address, editable: false },
        {
@@ -1369,7 +1369,7 @@
            this.currentDetail.type 
        },
        { label: '关联任务', value: this.currentDetail.job_name || '/' },
        { label: '任务发起人', value: this.currentDetail.creator },
        { label: '工单创建人', value: this.currentDetail.creator },
        { label: '当前状态', value: this.mapStatus(this.currentDetail.status) },
        { label: '事件地址', value: this.currentDetail.address || this.currentDetail.latAndLon }, // 包含经纬度信息
        {
@@ -1522,7 +1522,7 @@
        });
      } else if (column.no === 4) {
        navigator.clipboard.writeText(row.department).then(() => {
          this.$message.success('复制所属单位成功');
          this.$message.success('复制所属部门成功');
        });
      }
    },
@@ -2289,7 +2289,7 @@
        const headers = [
          '工单编号',
          '工单名称',
          '所属单位',
          '所属部门',
          '发起时间',
          '关联算法',
          '工单内容',
@@ -2317,7 +2317,7 @@
      return {
        工单编号: item.orderNumber || item.event_num || '',
        工单名称: item.orderName || item.event_name || '',
        所属单位: item.department || item.dept_name || '',
        所属部门: item.department || item.dept_name || '',
        发起时间: item.startTime || item.create_time || '',
        关联算法: item.aiType || item.ai_types || '',
        工单内容: item.address || item.content || '',
@@ -3823,6 +3823,7 @@
    height: 44px;
    background: rgba(0, 0, 0, 0.3);
    border-radius: 50%;
    border: none;
    display: flex;
    align-items: center;
    justify-content: center;
@@ -3841,10 +3842,12 @@
    &.left {
      left: 20px;
      color: #ffffff;
    }
    &.right {
      right: 20px;
      color: #ffffff;
    }
  }
src/views/workspace/index.vue
@@ -111,7 +111,7 @@
            ],
          },
          {
            label: '所属单位',
            label: '所属部门',
            prop: 'dept_name',
            addDisplay:false,
            editDisplay:false,
@@ -119,13 +119,13 @@
            rules: [
              {
                required: true,
                message: '请输入所属单位',
                message: '请输入所属部门',
                trigger: 'blur',
              },
            ],
          },
          {
            label: '所属单位',
            label: '所属部门',
            prop: 'dept_id',
            hide: true,
            type: 'tree',
@@ -139,7 +139,7 @@
            rules: [
              {
                required: true,
                message: '请输入所属单位',
                message: '请输入所属部门',
                trigger: 'blur',
              },
            ],