董国庆
2026-06-25 33d36a922f300b83cecbd31266acc9102e89028e
修改bug
3个文件已修改
98 ■■■■■ 已修改文件
src/views/businessOperations/operationWorkbench/map.vue 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/evaluationTag/index.vue 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/userContent/active/activityManagement/add.vue 57 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/businessOperations/operationWorkbench/map.vue
@@ -1757,6 +1757,10 @@
  return status === '待生效' || status === '启用中'
})
const isPointEditMarkerDraggable = computed(() => {
  return pointCreateMode.value && !isPointEditLocationLocked.value
})
function clampNumber(value: number, min: number, max: number) {
  return Math.max(min, Math.min(max, value))
}
@@ -6456,7 +6460,8 @@
  updatePickedPoint([lon, lat], true)
}
// 编辑态地图上只保留一个蓝色临时点位,拖拽、点击和删除都挂在这个 marker 上。
// 地图上只保留一个蓝色临时点位,点击和删除都挂在这个 marker 上。
// 仅新增点位时允许拖拽调整位置;编辑已有点位时禁止直接拖动。
function createOrUpdatePointEditMarker(position: LngLatTuple) {
  if (!map.value || typeof (window as any).AMap === 'undefined')
    return
@@ -6506,11 +6511,11 @@
    }
    pointEditMarker.value = new (window as any).AMap.Marker({
      position,
      draggable: !isPointEditLocationLocked.value,
      draggable: isPointEditMarkerDraggable.value,
      offset: new (window as any).AMap.Pixel(-16, -42),
      content: markerContent,
      zIndex: 200,
      cursor: isPointEditLocationLocked.value ? 'default' : 'pointer',
      cursor: isPointEditMarkerDraggable.value ? 'pointer' : 'default',
    })
    pointEditMarker.value.on('click', () => {
      if (
@@ -6525,10 +6530,8 @@
      ])
    })
    pointEditMarker.value.on('dragend', (event: any) => {
      if (isPointEditLocationLocked.value) {
        window.$message?.warning('当前状态不允许修改点位位置')
      if (!isPointEditMarkerDraggable.value)
        return
      }
      const lnglat = event?.lnglat
      if (!lnglat)
        return
@@ -6537,9 +6540,9 @@
    pointEditMarker.value.setMap(map.value)
  }
  pointEditMarker.value.setPosition(position)
  pointEditMarker.value.setDraggable?.(!isPointEditLocationLocked.value)
  pointEditMarker.value.setDraggable?.(isPointEditMarkerDraggable.value)
  pointEditMarker.value.setCursor?.(
    isPointEditLocationLocked.value ? 'default' : 'pointer',
    isPointEditMarkerDraggable.value ? 'pointer' : 'default',
  )
  syncMapMarkerScale()
  openPointEditInfoWindow(position)
src/views/system/evaluationTag/index.vue
@@ -708,8 +708,8 @@
<template>
  <div class="content roboTaxi">
    <div class="page-body">
      <n-spin :show="loading">
        <div class="box">
      <n-spin :show="loading" class="spin-box">
        <div class="box h-full">
          <div v-if="configData" class="switch-card mb-24px px-12px">
            <n-form
              label-placement="left"
@@ -822,7 +822,7 @@
              </n-form>
            </div>
            <n-card class="robotaxi-table-card" :bordered="false">
            <n-card class="robotaxi-table-card h-full" :bordered="false">
              <template #header>
                <n-flex justify="flex-end">
                  <NButton @click="handleOpenOperationLog"> 操作日志 </NButton>
@@ -894,7 +894,7 @@
    />
    <OperationLogModal
      v-model:show="showOperationLogModal"
      :business-type="59"
      :business-type="997"
    />
  </div>
</template>
@@ -909,15 +909,21 @@
  //   padding: 12px 0px !important;
  // }
}
:deep(.n-spin-content) {
  height:100%;
}
.page-body {
  height: calc(100vh - 76px - 28px);
  height: calc(100vh - 76px - 28px - 64px);
  overflow-y: auto;
  padding: 12px;
  scrollbar-width: none;
  :deep(.n-tabs-tab.n-tabs-tab--active) {
    font-weight: 600;
  }
}
.spin-box{
  height: 100%
}
.page-body::-webkit-scrollbar {
@@ -931,6 +937,9 @@
  box-sizing: border-box;
  background: #fff;
  border-radius: 6px;
  display: flex;
  flex-direction: column;
  min-height: 0;
  --n-label-text-color: rgba(23, 31, 38, 0.8);
}
@@ -938,6 +947,7 @@
  display: flex;
  min-height: 0;
  flex-direction: column;
  height:100%;
}
.row-item {
@@ -955,6 +965,7 @@
  display: flex;
  flex-direction: column;
  min-height: 420px;
  height: 100%;
}
.footer {
@@ -971,6 +982,7 @@
.footer-placeholder {
  height: 64px;
  display: none;
}
.status-header {
src/views/userContent/active/activityManagement/add.vue
@@ -21,6 +21,7 @@
  NSpace,
  NSwitch,
  NTabPane,
  NTag,
  NTabs,
  NTimePicker,
  NUpload,
@@ -107,8 +108,13 @@
interface UserListItem {
  id: number | string
  nickName: string
  account: string
  remark: string
  status: number | boolean | null
  isPriorityDispatch: number | boolean | null
  createBy: string
  createTime: string | number | null
  remark?: string
}
interface UserGroupItem {
@@ -144,13 +150,21 @@
  const selectedUsers = rows.map(r => ({
    id: r.id,
    nickName: r.nickName || '-',
    account: r.account,
    remark: r.nickName || '-',
    status: r.status,
    isPriorityDispatch: r.isPriorityDispatch,
    createBy: r.createBy || '-',
    createTime: r.createTime || null,
    remark: r.nickName || '-',
  }))
  group.userList = selectedUsers
  group.pagination.total = selectedUsers.length
  message.success(`成功选择了 ${selectedUsers.length} 名用户`)
}
function isNormalWhitelistStatus(status: unknown) {
  return status === 1 || status === true
}
const activeTab = ref(1)
@@ -552,8 +566,34 @@
function createUserColumns(groupIndex: number): DataTableColumns<any> {
  return [
    { title: '用户名称', key: 'nickName', width: 150 },
    { title: '白名单账号', key: 'account' },
    // { title: '备注说明', key: 'remark' },
    {
      title: '状态',
      key: 'status',
      width: 100,
      render: (row) => {
        const isNormal = isNormalWhitelistStatus(row.status)
        return (
          <NTag color={{ color: isNormal ? '#E6F4FF' : '#FFF8E6', textColor: isNormal ? '#0068FF' : '#FF9000' }} size="small" bordered={false}>
            {isNormal ? '正常' : '冻结'}
          </NTag>
        )
      },
    },
    {
      title: '优先派单',
      key: 'isPriorityDispatch',
      width: 100,
      render: row => <span>{row.isPriorityDispatch === 1 || row.isPriorityDispatch === true ? '是' : '否'}</span>,
    },
    { title: '创建人', key: 'createBy', width: 120 },
    {
      title: '创建时间',
      key: 'createTime',
      width: 180,
      render: row => row.createTime ? dayjs(row.createTime).format('YYYY/MM/DD HH:mm') : '',
    },
    {
      title: '操作',
      key: 'actions',
@@ -1358,14 +1398,14 @@
<template>
  <div class=" w-full h-full relative content flex flex-col" >
    <div class="p-12px main flex flex-col flex-1 overflow-hidden">
    <div class="pb-12px main flex flex-col flex-1 overflow-hidden">
      <NTabs v-model:value="activeTab" type="line" class="custom-tabs" animated>
        <NTabPane :name="1" tab="活动介绍内容" />
        <NTabPane :name="2" tab="活动策略配置" />
        <NTabPane :name="3" tab="发放用户" />
        <NTabPane :name="4" tab="通知方式" />
      </NTabs>
      <div class="box flex-1">
      <div class="box flex-1 mx-12px">
        <!-- 活动介绍内容表单 -->
        <NForm
          v-show="activeTab === 1" ref="formRef" :model="formModel" :rules="rules" label-placement="left"
@@ -2114,6 +2154,7 @@
  border-radius: 6px;
  width: 100%;
  box-sizing: border-box;
  margin-top: 50px;
  --n-label-text-color: rgba(23, 31, 38, 0.8);
  :deep(.n-form-item-label) {
@@ -2133,6 +2174,12 @@
  }
}
.custom-tabs {
  position: fixed;
  background-color: rgb(244, 246, 248);
  z-index: 9999;
  padding: 12px 12px 0 12px;
}
:deep(.n-upload-trigger--image-card) {
  width: 56px !important;
  height: 56px;