董国庆
2026-07-03 9d885887c22dafe55623a0a78010a4597513b634
修改bug:定价管理--车型搜索项 从输入框更改为下拉框
1个文件已修改
48 ■■■■■ 已修改文件
src/views/transaction/pricingManagement/index.vue 48 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/transaction/pricingManagement/index.vue
@@ -1,4 +1,5 @@
<script setup lang="tsx">
import { queryVehicleModelNoPageList } from '@/service/api/vehicleConvoy'
import noDataImg from '@/assets/element-img/no-data.png'
import type { DataTableColumns } from 'naive-ui'
import { onActivated } from 'vue'
@@ -41,6 +42,22 @@
const modalRef = ref()
const showOperationLogModal = ref(false)
const isPricingTypeOpen = ref(false)
const isModelSelectOpen = ref(false)
const modelOptions = ref<{ label: string, value: string | number }[]>([])
// 获取车辆型号列表
async function getVehicleModelList() {
  try {
    const { data } = await queryVehicleModelNoPageList()
    modelOptions.value = data.map((item: any) => ({
      label: item.name,
      value: item.name, // 搜索通常按名称搜索,或者根据后端要求可以传 id
    }))
  }
  catch (error) {
    console.error('获取型号列表失败:', error)
  }
}
const pricingTypeOptions = [
  { label: '动态计费', value: 1 },
@@ -173,7 +190,35 @@
  {
    label: '车型',
    path: 'vehicleModel',
    render: () => <n-input v-model:value={model.value.vehicleModel} />,
    render: () => (
      <n-select
        v-model:value={model.value.vehicleModel}
        options={modelOptions.value}
        clearable
        placeholder="请选择"
        onUpdate:show={(val: any) => isModelSelectOpen.value = val}
      >
        {{
          arrow: () => (
            <img
              src="https://huishou-1323682843.cos.ap-nanjing.myqcloud.com/images/e120f81c-9f15-4e1a-9938-22252898edf9.png"
              class={`arrow-icon ${isModelSelectOpen.value ? 'arrow-icon--open' : ''}`}
              style={{ width: '16px', height: '16px' }}
              alt="arrow"
            />
          ),
          empty: () => (
            <div class="flex-center">
              <img
                src={noDataImg}
                style={{ width: '50%' }}
                alt="no-data"
              />
            </div>
          ),
        }}
      </n-select>
    ),
  },
  {
    label: '城市',
@@ -241,6 +286,7 @@
}
onMounted(() => {
  getVehicleModelList()
  getList()
})