Browse Source

bug fixed

LR 3 years ago
parent
commit
6c730ad7a6

+ 3 - 2
src/views/spectrum/configuration/api/common.ts

@@ -45,6 +45,7 @@ export interface IDeviceTypeParam {
   typeId: number
   targetMin: number
   targetMax: number
+  showNo: number
 }
 
 export interface IStandard extends ICreator, IUpdater {
@@ -121,7 +122,7 @@ export interface IPoint extends ICreator, IUpdater {
   siteCode: string
   siteName: string
   siteState: number
-  targets: string,
+  targets: string
   longitude2: number
   latitude2: number
   layerName: string
@@ -219,7 +220,7 @@ export interface IPointDetailResult {
   siteAddress: string
   longitude: number
   latitude: number
-  drainageType: string,
+  drainageType: string
   longitude2: number
   latitude2: number
   layerName: string

+ 22 - 31
src/views/spectrum/configuration/type/ParamForm.vue

@@ -1,8 +1,8 @@
 <template>
   <tf-dialog v-bind="$attrs" v-on="listeners" @submit="onSubmit" :loading="loading">
-    <el-form class="form" ref="form" v-bind="{ labelWidth: 'auto', size: 'small' }" :model="formData">
+    <el-form class="form" ref="form" v-bind="{ labelWidth: 'auto', size: 'small' }" :rules="rules" :model="formData">
       <el-form-item
-        v-for="{ name, label, type, required = false, rules, options, on, ...rest } of formItems"
+        v-for="{ name, label, type, required = false, options, on, ...rest } of formItems"
         :key="name"
         :required="required"
         :label="label"
@@ -51,7 +51,7 @@
 
   @Component({ name: 'ParamForm', components: {} })
   export default class ParamForm extends Vue {
-    @Prop({ type: Object, default: () => ({}) }) data!: object
+    @Prop({ type: Object, default: () => ({}) }) data!: IDeviceTypeParam
     @Prop({ type: Boolean, default: false }) loading!: boolean
     @Prop({ type: Array, default: () => [] }) dictionary!: IDeviceTypeParamDictionary[]
 
@@ -64,48 +64,38 @@
       return rest
     }
 
+    get rules() {
+      return {
+        dictionaryId: [{ required: true, message: '请选择设备指标', trigger: 'change' }],
+        targetAlias: [
+          { required: true, message: '指标别名(缩写)不能为空!', trigger: 'blur' },
+          { max: 40, message: '指标别名(缩写)不超过40个字符' }
+        ],
+        isshow: [{ required: true, message: '请选择是否显示', trigger: 'blur' }],
+        remark: [{ required: false, max: 255, message: '备注不能超过255个字符' }]
+      }
+    }
+
     get formItems() {
       return [
         {
           label: '设备指标',
           name: 'dictionaryId',
           type: 'select',
-          rules: [{ required: true, message: '请选择设备指标' }],
           required: true,
+          disabled: !!this.data.id,
           options: this.dictionary,
           on: {
             change: this.onTypeChange
           }
         },
         { label: '指标名称', name: 'targetName', disabled: true },
-        {
-          label: '指标别名(缩写)',
-          name: 'targetAlias',
-          required: true,
-          rules: [
-            { required: true, message: '指标别名(缩写)不能为空!', trigger: 'blur' },
-            { max: 40, message: '指标别名(缩写)不超过40个字符' }
-          ],
-          maxlength: 40
-        },
+        { label: '指标别名(缩写)', name: 'targetAlias', required: true, maxlength: 40 },
         { label: '指标字段名', name: 'targetCode', disabled: true },
         { label: '指标单位', name: 'targetUnit', disabled: true },
-        {
-          label: '是否显示',
-          name: 'isshow',
-          type: 'switch',
-          rules: [{ required: true, message: '请选择是否显示', trigger: 'blur' }],
-          activeValue: 1,
-          inactiveValue: 0
-        },
+        { label: '是否显示', name: 'isshow', type: 'switch', activeValue: 1, inactiveValue: 0 },
         { label: '显示顺序', name: 'showNo', type: 'input-number' },
-        {
-          label: '备注',
-          name: 'remark',
-          rules: [{ required: false, max: 255, message: '备注不能超过255个字符' }],
-          type: 'textarea',
-          rows: 4
-        }
+        { label: '备注', name: 'remark', type: 'textarea', rows: 4 }
       ]
     }
 
@@ -119,8 +109,9 @@
     }
 
     @Watch('data', { immediate: true })
-    setDefaultData(val) {
-      this.formData = val.id ? { ...val } : getDefaultData()
+    setDefaultData(val: Partial<IDeviceTypeParam>) {
+      const { showNo, ...rest } = val
+      this.formData = val.id ? { showNo: showNo === null ? undefined : showNo, ...rest } : getDefaultData()
     }
   }
 </script>

+ 1 - 1
src/views/spectrum/configuration/utils.ts

@@ -62,7 +62,7 @@ export const standardParamCols: ColItem[] = [
 export const deviceCols: ColItem[] = [
   { type: 'selection', width: '50px' },
   { type: 'index', label: '序号', width: '60px' },
-  { prop: 'deviceCode', label: '设备编码', width: '130px', ...elTableAlignLeft() },
+  { prop: 'deviceCode', label: '设备编码', width: '150px', ...elTableAlignLeft() },
   { prop: 'deviceSn', label: 'SN序列号', width: '120px', ...elTableAlignLeft() },
   { prop: 'deviceTypeName', label: '设备类型名称', width: '160px', ...elTableAlignLeft() },
   { prop: 'deviceModel', label: '设备型号', width: '120px', ...elTableAlignLeft() },