zjk
2026-04-15 ac515e11f87e4f611fc0acc1fbb2eb42e616ea87
feat: 新增运营期免收费和天气单位配置项
1个文件已修改
27 ■■■■■ 已修改文件
src/views/system/config/index.vue 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/system/config/index.vue
@@ -13,6 +13,8 @@
  // miniProgramLongitude: string
  faqDisplayCount: number
  nearPointDistance: number
  isOperationFree: boolean
  weatherUnit: string
}
const formRef = ref<FormInst | null>(null)
@@ -27,6 +29,8 @@
  // miniProgramLongitude: '',
  faqDisplayCount: 0,
  nearPointDistance: 0,
  isOperationFree: true,
  weatherUnit: '℃',
})
const onlyAllowNumberAndDash = (value: string) => !value || /^[\d-]+$/.test(value)
@@ -62,6 +66,12 @@
    { required: true, type: 'integer', min: 0, message: '请输入正整数', trigger: 'blur' },
    { type: 'integer', max: 99999, message: '最大99999m', trigger: 'blur' },
  ],
  isOperationFree: [
    { required: true, type: 'boolean', message: '请选择', trigger: 'change' },
  ],
  weatherUnit: [
    { required: true, message: '请选择', trigger: 'change' },
  ],
}
const originalSetting = ref<any | null>(null)
@@ -79,6 +89,8 @@
      arriveTime: Number(formModel.value.destinationDistance ?? 0),
      headShowCount: Number(formModel.value.faqDisplayCount ?? 0),
      nearPointDistance: Number(formModel.value.nearPointDistance ?? 0),
      isOperationFree: formModel.value.isOperationFree ? 1 : 0,
      weatherUnit: formModel.value.weatherUnit,
    }
    const res = await saveSystemSetting(payload)
    if (res.code === 200) {
@@ -107,6 +119,8 @@
      formModel.value.destinationDistance = Number(d.arriveTime ?? 0)
      formModel.value.faqDisplayCount = Math.min(999, Number(d.headShowCount ?? 0))
      formModel.value.nearPointDistance = Math.min(99999, Number(d.nearPointDistance ?? 0))
      formModel.value.isOperationFree = d.isOperationFree === 1 || d.isOperationFree === true
      formModel.value.weatherUnit = d.weatherUnit || '℃'
      // miniProgramLongitude / miniProgramLatitude 未在接口返回中定义,保持输入值
    }
    else {
@@ -245,6 +259,19 @@
                <span style="font-size: 12px;color:#919191">内</span>
              </div>
            </n-form-item>
            <n-form-item label="是否开启运营期免收费" path="isOperationFree" required>
              <n-switch v-model:value="formModel.isOperationFree" />
            </n-form-item>
            <n-form-item label="小程序天气单位" path="weatherUnit" required>
              <n-select
                v-model:value="formModel.weatherUnit"
                :options="[{ label: '℃', value: '℃' }, { label: '℉', value: '℉' }]"
                placeholder="请选择"
                style="width: 100px;"
              />
            </n-form-item>
          </n-space>
        </n-form>
      </div>