dengzedong
昨天 24d5f916ae21cfe5992e8f9e55b33befc2e7ae46
src/views/data/point/DaPointForm.vue
@@ -25,6 +25,7 @@
            <el-select
              v-model="formData.pointType"
              clearable
              :disabled = "formType !== 'create'"
              placeholder="请选择测点类型"
            >
              <el-option
@@ -123,7 +124,7 @@
          </el-form-item>
        </el-col>
      </el-row>
      <!--计量点-->
      <!--测量点-->
      <el-row v-if="formData.pointType === 'MEASURE'">
        <el-col :span="24">
          <el-form-item prop="sourceOption" label="数据源">
@@ -135,6 +136,7 @@
          </el-form-item>
        </el-col>
      </el-row>
      <!--测量点-->
      <el-row v-if="formData.pointType === 'MEASURE'">
        <el-col :span="12">
          <el-form-item label="测量值类型" prop="measurePoint.valueType">
@@ -283,6 +285,122 @@
          </el-form-item>
        </el-col>
      </el-row>
      <!--累计点-->
      <el-row :gutter="20" v-if="formData.pointType === 'CUMULATE'">
        <el-col :span="24">
          <el-form-item label="瞬时测点" prop="cumulatePoint.momentPoint">
            <el-select
              v-model="formData.cumulatePoint.momentPoint"
              filterable
              placeholder="请选择">
              <el-option
                v-for="(item, index) in pointList2"
                :key="index"
                :label="item.pointName"
                :value="item.pointNo"/>
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="累计长度" prop="cumulatePoint.length">
            <el-input-number v-model="formData.cumulatePoint.length" style="width: 100%"
                             :min="1" :max="3000"
                             :controls="false"/>
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="累计单位" prop="cumulatePoint.cumulateUnit">
            <el-select
              v-model="formData.cumulatePoint.cumulateUnit"
              placeholder="请选择累计单位"
            >
              <el-option
                v-for="dict in getDictOptions(DICT_TYPE.CUMULATEUNIT)"
                :key="dict.value"
                :label="dict.label"
                :value="dict.value"
              />
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="除数" prop="cumulatePoint.divisor">
            <el-input-number v-model="formData.cumulatePoint.divisor" style="width: 100%"
                             :min="1" :max="3000"
                             :controls="false"/>
          </el-form-item>
        </el-col>
        <el-col :span="6">
          <el-form-item label="是否累计负数" prop="cumulatePoint.isCumuNeg">
            <el-select
              v-model="formData.cumulatePoint.isCumuNeg"
              placeholder="请选择是否累计负数"
            >
              <el-option
                v-for="dict in getDictOptions(DICT_TYPE.COM_IS_INT)"
                :key="dict.value"
                :label="dict.label"
                :value="dict.value"
              />
            </el-select>
          </el-form-item>
        </el-col>
      </el-row>
      <!--极值点-->
      <el-row :gutter="20" v-if="formData.pointType === 'EXTREMAL'">
        <el-col :span="24">
          <el-form-item label="瞬时测点" prop="extremalPoint.momentPoint">
            <el-select
              v-model="formData.extremalPoint.momentPoint"
              filterable
              placeholder="请选择">
              <el-option
                v-for="(item, index) in pointList2"
                :key="index"
                :label="item.pointName"
                :value="item.pointNo"/>
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item label="统计长度" prop="extremalPoint.length">
            <el-input-number v-model="formData.extremalPoint.length" style="width: 100%"
                             :min="1" :max="1440 * 30"
                             :controls="false"/>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item label="统计单位" prop="extremalPoint.extremalUnit">
            <el-select
              v-model="formData.extremalPoint.extremalUnit"
              placeholder="请选择统计单位"
            >
              <el-option
                v-for="dict in getDictOptions(DICT_TYPE.EXTREMALUNIT)"
                :key="dict.value"
                :label="dict.label"
                :value="dict.value"
              />
            </el-select>
          </el-form-item>
        </el-col>
        <el-col :span="8">
          <el-form-item label="统计类型" prop="extremalPoint.extremalType">
            <el-select
              v-model="formData.extremalPoint.extremalType"
              placeholder="请选择统计类型"
            >
              <el-option
                v-for="dict in getDictOptions(DICT_TYPE.EXTREMALTYPE)"
                :key="dict.value"
                :label="dict.label"
                :value="dict.value"
              />
            </el-select>
          </el-form-item>
        </el-col>
      </el-row>
    </el-form>
    <template #footer>
      <el-button :disabled="formLoading" type="primary" @click="submitForm">确 定</el-button>
@@ -294,6 +412,7 @@
import * as DaPoint from '@/api/data/da/point'
import * as TagApi from '@/api/data/channel/tag'
import {DICT_TYPE, getDictOptions, getIntDictOptions} from "@/utils/dict";
import {getPointSimpleList} from "@/api/data/da/point";
defineOptions({name: 'DataDaPointForm'})
@@ -310,7 +429,14 @@
  pointNo: ''
}])
const queryParams = reactive({
  pointType: "MEASURE"
  pointTypes: "MEASURE,CONSTANT",
})
const pointList2 = ref([{
  pointName: '',
  pointNo: ''
}])
const queryParams2 = reactive({
  pointTypes: "MEASURE,CONSTANT,CALCULATE",
})
const operatorList = ref(['+', '-', '*', '/', '&', '|', '!', '>', '<'])
const formData = ref({
@@ -343,6 +469,21 @@
    tagNo: '',
    dimension: '',
    valueType: '',
  },
  cumulatePoint: {
    id: '',
    pointId: '',
    momentPoint: '',
    length: '',
    divisor: ''
  },
  extremalPoint: {
    id: '',
    pointId: '',
    momentPoint: '',
    length: '',
    extremalUnit: '',
    extremalType: ''
  }
})
const formRules = reactive({
@@ -350,8 +491,12 @@
  pointType: [{required: true, message: '测点类型不能为空', trigger: 'blur'}],
  dataType: [{required: true, message: '数据类型不能为空', trigger: 'blur'}],
  minfreqid: [{required: true, message: '采集频率不能为空', trigger: 'blur'}],
  "measurePoint.valueType": [{required: true, message: '采集频率不能为空', trigger: 'blur'}],
  "measurePoint.dimension": [{required: true, message: '采集频率不能为空', trigger: 'blur'}],
  "measurePoint.valueType": [{required: true, message: '值类型不能为空', trigger: 'blur'}],
  "measurePoint.dimension": [{required: true, message: '平滑尺度不能为空', trigger: 'blur'}],
  "cumulatePoint.momentPoint": [{required: true, message: '累计测点不能为空', trigger: 'blur'}],
  "cumulatePoint.length": [{required: true, message: '累计长度不能为空', trigger: 'blur'}],
  "cumulatePoint.divisor": [{required: true, message: '除数不能为空', trigger: 'blur'}],
  "extremalPoint.momentPoint": [{required: true, message: '测点不能为空', trigger: 'blur'}],
})
const formRef = ref() // 表单 Ref
@@ -363,6 +508,7 @@
  resetForm()
  getSourceOption()
  getPointList()
  getPointList2()
  // 修改时,设置数据
  if (id) {
    formLoading.value = true
@@ -447,7 +593,7 @@
    unittransfactor: 1,
    defaultValue: 0,
    maxValue: 100000000,
    minValue: 0,
    minValue: -100000000,
    minfreqid: undefined,
    remark: undefined,
    isEnable: 1,
@@ -465,6 +611,23 @@
      tagNo: '',
      dimension: '1',
      valueType: 'SIMULATE',
    },
    cumulatePoint: {
      id: '',
      pointId: '',
      momentPoint: '',
      length: 60,
      cumulateUnit: 'min',
      isCumuNeg: 1,
      divisor: 60
    },
    extremalPoint: {
      id: '',
      pointId: '',
      momentPoint: '',
      length: '',
      extremalUnit: 'min',
      extremalType: 'max'
    }
  }
  formRef.value?.resetFields()
@@ -525,7 +688,11 @@
}
const getPointList = async () => {
  pointList.value = await DaPoint.getPointList(queryParams)
  pointList.value = await DaPoint.getPointSimpleList(queryParams)
}
const getPointList2 = async () => {
  pointList2.value = await DaPoint.getPointSimpleList(queryParams2)
}
const getInfo = async (id) => {