gaoluyang
6 天以前 759a2c06bbd187a19c78cb408456e4fb79831840
巡检任务频次增加“每年”,日期不精确到时分

- 编辑巡检任务:频率下拉新增“每年”,只需选择月份和日期
- 列表频次显示“每年”,日期列显示为“X月X日”

Co-Authored-By: Claude Code <noreply@anthropic.com>
已修改2个文件
46 ■■■■■ 文件已修改
src/views/equipmentManagement/inspectionManagement/components/formDia.vue 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/inspectionManagement/index.vue 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/equipmentManagement/inspectionManagement/components/formDia.vue
@@ -49,6 +49,7 @@
                <el-option label="每日" value="DAILY"/>
                <el-option label="每周" value="WEEKLY"/>
                <el-option label="每月" value="MONTHLY"/>
                <el-option label="每年" value="YEARLY"/>
                <!-- <el-option label="季度" value="QUARTERLY"/> -->
              </el-select>
            </el-form-item>
@@ -84,6 +85,16 @@
                  format="DD,HH:mm"
                  value-format="DD,HH:mm"
              />
            </el-form-item>
          </el-col>
          <el-col :span="12" v-if="form.frequencyType === 'YEARLY'">
            <el-form-item label="日期" prop="frequencyDetail">
              <el-select v-model="form.yearMonth" placeholder="月" clearable style="width: 50%">
                <el-option v-for="m in 12" :key="m" :label="m + '月'" :value="String(m)" />
              </el-select>
              <el-select v-model="form.yearDay" placeholder="日" clearable style="width: 50%">
                <el-option v-for="d in 31" :key="d" :label="d + '日'" :value="String(d)" />
              </el-select>
            </el-form-item>
          </el-col>
          <el-col :span="12" v-if="form.frequencyType === 'QUARTERLY' && form.frequencyType">
@@ -190,7 +201,9 @@
    frequencyType: '',
    frequencyDetail: '',
    week: '',
    time: ''
    time: '',
    yearMonth: '',
    yearDay: ''
  },
    rules: {
        taskName: [{ required: true, message: "请选择设备", trigger: "change" },],
@@ -210,6 +223,12 @@
                    if (form.value.frequencyType === 'WEEKLY') {
                        if (!form.value.week || !form.value.time) {
                            callback(new Error("请选择日期和时间"))
                        } else {
                            callback()
                        }
                    } else if (form.value.frequencyType === 'YEARLY') {
                        if (!form.value.yearMonth || !form.value.yearDay) {
                            callback(new Error("请选择月份和日期"))
                        } else {
                            callback()
                        }
@@ -338,6 +357,12 @@
  if (type === 'edit' && row) {
    form.value = {...row}
    form.value.inspector = form.value.inspectorIds.split(',').map(Number)
    // 每年频率回显:frequencyDetail 格式为 "月,日"
    if (form.value.frequencyType === 'YEARLY' && form.value.frequencyDetail) {
      const parts = form.value.frequencyDetail.split(',')
      form.value.yearMonth = parts[0] || ''
      form.value.yearDay = parts[1] || ''
    }
    // 如果有设备ID,自动设置设备信息
    if (form.value.taskId) {
@@ -372,7 +397,9 @@
    frequencyType: '',
    frequencyDetail: '',
    week: '',
    time: ''
    time: '',
    yearMonth: '',
    yearDay: ''
  }
}
@@ -388,7 +415,12 @@
          let frequencyDetail = ''
          frequencyDetail = form.value.week + ',' + form.value.time
          form.value.frequencyDetail = frequencyDetail
        } else if (form.value.frequencyType === 'YEARLY') {
          form.value.frequencyDetail = form.value.yearMonth + ',' + form.value.yearDay
        }
        // 年份/日期仅用于表单交互,提交前清理
        delete form.value.yearMonth
        delete form.value.yearDay
        let res = await userStore.getInfo()
        form.value.registrantId = res.user.userId
src/views/equipmentManagement/inspectionManagement/index.vue
@@ -160,6 +160,8 @@
          ? "每周"
          : params === "MONTHLY"
          ? "每月"
          : params === "YEARLY"
          ? "每年"
          : params === "QUARTERLY"
          ? "季度"
          : "";
@@ -167,9 +169,15 @@
    },
    {
      prop: "frequencyDetail",
      label: "开始日期与时间",
      label: "日期",
      minWidth: 200,
      formatter: (row, column, cellValue) => {
        // 每年格式为 "月,日",不展示时分
        if (row.frequencyType === "YEARLY") {
          const parts = String(cellValue || "").split(",");
          if (parts.length < 2 || !parts[0] || !parts[1]) return "";
          return `${parts[0]}月${parts[1]}日`;
        }
        // 先判断是否是字符串
        if (typeof cellValue !== "string") return "";
        let val = cellValue;