Parcourir la source

Merge branch 'dev' of http://192.168.2.241:3000/wanghai/bimgis_sx into dev

zxh il y a 3 ans
Parent
commit
521a155c82

+ 5 - 2
src/api/common/index.ts

@@ -1,6 +1,6 @@
 import axios from '@/utils/request'
 import { ElTableColumn } from 'element-ui/types/table-column'
-import { serialize } from 'object-to-formdata'
+import { Options, serialize as obj2FormData } from 'object-to-formdata'
 const uris = {
   project: {
     page: '/tofly-sxgk/other/getUserPrjs',
@@ -12,6 +12,9 @@ const uris = {
   addDictionary: '/base/code'
 }
 
+export const serialize = (data: any, options: Options = {}) =>
+  obj2FormData(data, { dotsForObjectNotation: true, noFilesWithArrayNotation: true, ...options })
+
 export interface IQueryCommon extends IPagination {
   hitCount?: boolean
   optimizeCountSql?: boolean
@@ -135,7 +138,7 @@ export const setProjectKey = (id: number) =>
   axios.request<IRes<boolean>>({
     url: uris.project.set,
     method: 'post',
-    data: serialize({ prjId: id }, { dotsForObjectNotation: true, noFilesWithArrayNotation: true })
+    data: serialize({ prjId: id })
   })
 
 export const addMenu = (data) => axios.request<IRes<boolean>>({ url: '/base/menu', method: 'post', data })

+ 3 - 12
src/views/spectrum/configuration/api/device.ts

@@ -1,5 +1,4 @@
-import { serialize } from 'object-to-formdata'
-import { IQueryCommon, IRes, IResult } from '@/api/common'
+import { IQueryCommon, IRes, IResult, serialize } from '@/api/common'
 import axios from '@/utils/request'
 import { base, IDevice } from './common'
 
@@ -10,21 +9,13 @@ const uris = {
 }
 
 export const addDevice = (data: Omit<IDevice, 'id'>) =>
-  axios.request<IRes<boolean>>({
-    url: uris.base,
-    method: 'post',
-    data: serialize(data, { dotsForObjectNotation: true, noFilesWithArrayNotation: true })
-  })
+  axios.request<IRes<boolean>>({ url: uris.base, method: 'post', data: serialize(data) })
 
 export const deleteDevice = (id: string) =>
   axios.request<IRes<boolean>>({ url: `${uris.base}/${id}`, method: 'delete' })
 
 export const updateDevice = (data: IDevice) =>
-  axios.request<IRes<boolean>>({
-    url: uris.base,
-    method: 'put',
-    data: serialize(data, { dotsForObjectNotation: true, noFilesWithArrayNotation: true })
-  })
+  axios.request<IRes<boolean>>({ url: uris.base, method: 'put', data: serialize(data) })
 
 export const getDevice = (id: string) => axios.request<IResult<IDevice>>({ url: `${uris.base}/${id}`, method: 'get' })
 

+ 2 - 7
src/views/spectrum/configuration/api/deviceType.ts

@@ -1,5 +1,4 @@
-import { serialize } from 'object-to-formdata'
-import { IQueryCommon, IRes, IResult } from '@/api/common'
+import { IQueryCommon, IRes, IResult, serialize } from '@/api/common'
 import axios from '@/utils/request'
 import { base, IDeviceType, IDeviceTypeParam, IDeviceTypeDictionary, IDeviceTypeParamDictionary } from './common'
 
@@ -19,11 +18,7 @@ const uris = {
 }
 
 export const addDeviceType = (data: Omit<IDeviceType, 'id'>) =>
-  axios.request<IRes<boolean>>({
-    url: uris.base,
-    method: 'post',
-    data: serialize(data, { dotsForObjectNotation: true, noFilesWithArrayNotation: true })
-  })
+  axios.request<IRes<boolean>>({ url: uris.base, method: 'post', data: serialize(data) })
 
 export const deleteDeviceType = (id: string) =>
   axios.request<IRes<boolean>>({ url: `${uris.base}/${id}`, method: 'delete' })

+ 3 - 10
src/views/spectrum/configuration/api/point.ts

@@ -1,5 +1,4 @@
-import { serialize } from 'object-to-formdata'
-import { IQueryCommon, IRes, IResult } from '@/api/common'
+import { IQueryCommon, IRes, IResult, serialize } from '@/api/common'
 import axios from '@/utils/request'
 import {
   base,
@@ -29,10 +28,7 @@ export const addPoint = ({ fileList, ...rest }: Partial<IPointDetail>) =>
   axios.request<IRes<boolean>>({
     url: uris.save,
     method: 'post',
-    data: serialize(
-      { fileList, dto: new Blob([JSON.stringify(rest)], { type: 'application/json' }) },
-      { dotsForObjectNotation: true, noFilesWithArrayNotation: true }
-    )
+    data: serialize({ fileList, dto: new Blob([JSON.stringify(rest)], { type: 'application/json' }) })
   })
 
 export const deletePoint = (id: string) => axios.request<IRes<boolean>>({ url: `${uris.base}/${id}`, method: 'delete' })
@@ -41,10 +37,7 @@ export const updatePoint = ({ fileList, ...rest }: Partial<IPointDetail>) =>
   axios.request<IRes<boolean>>({
     url: uris.update,
     method: 'put',
-    data: serialize(
-      { fileList, dto: new Blob([JSON.stringify(rest)], { type: 'application/json' }) },
-      { dotsForObjectNotation: true, noFilesWithArrayNotation: true }
-    )
+    data: serialize({ fileList, dto: new Blob([JSON.stringify(rest)], { type: 'application/json' }) })
   })
 
 export const getPoint = (id: string) => axios.request<IResult<IPoint>>({ url: `${uris.base}/${id}`, method: 'get' })

+ 12 - 3
src/views/spectrum/configuration/api/standard.ts

@@ -1,4 +1,4 @@
-import { IQueryCommon, IRes, IResult } from '@/api/common'
+import { IQueryCommon, IRes, IResult, serialize } from '@/api/common'
 import axios from '@/utils/request'
 import { base, IStandard, IStandardParam } from './common'
 
@@ -14,12 +14,21 @@ const uris = {
 }
 
 export const addStandard = (data: Omit<IStandard, 'id'>) =>
-  axios.request<IRes<boolean>>({ url: uris.base, method: 'post', data })
+  axios.request<IRes<boolean>>({
+    url: uris.base,
+    method: 'post',
+    data: serialize(data)
+  })
 
 export const deleteStandard = (id: string) =>
   axios.request<IRes<boolean>>({ url: `${uris.base}/${id}`, method: 'delete' })
 
-export const updateStandard = (data: IStandard) => axios.request<IRes<boolean>>({ url: uris.base, method: 'put', data })
+export const updateStandard = (data: IStandard) =>
+  axios.request<IRes<boolean>>({
+    url: uris.base,
+    method: 'put',
+    data: serialize(data)
+  })
 
 export const getStandard = (id: string) =>
   axios.request<IResult<IStandard>>({ url: `${uris.base}/${id}`, method: 'get' })

+ 105 - 105
src/views/spectrum/configuration/neighbor/widget.vue

@@ -27,7 +27,7 @@
           :inactive-value="0"
           :value="row.deviceState"
           size="small"
-          style="user-select:none"
+          style="user-select: none"
         />
       </template>
     </tf-table>
@@ -43,136 +43,136 @@
 </template>
 
 <script lang="ts">
-import { Vue, Component, Prop, Watch } from 'vue-property-decorator'
-import QueryForm from './QueryForm.vue'
-import NeighborForm from './NeighborForm.vue'
-import { getDefaultPagination } from '@/utils/constant'
-import { neighborCols } from '../utils'
-import { INeighbor, IPoint } from '../api/common'
-import { IPagination } from '@/api/common'
-import { addNeighbor, deleteNeighborBatch, neighborPage, updateNeighbor } from '../api/neighbor'
-import { pointPage } from '../api/point'
+  import { Vue, Component, Prop, Watch } from 'vue-property-decorator'
+  import QueryForm from './QueryForm.vue'
+  import NeighborForm from './NeighborForm.vue'
+  import { getDefaultPagination } from '@/utils/constant'
+  import { neighborCols } from '../utils'
+  import { INeighbor, IPoint } from '../api/common'
+  import { IPagination } from '@/api/common'
+  import { addNeighbor, deleteNeighborBatch, neighborPage, updateNeighbor } from '../api/neighbor'
+  import { pointPage } from '../api/point'
 
-@Component({ name: 'Device', components: { QueryForm, NeighborForm } })
-export default class Device extends Vue {
-  @Prop({ type: Boolean, default: false }) isActive!: boolean
-  neighborCols = neighborCols
+  @Component({ name: 'Device', components: { QueryForm, NeighborForm } })
+  export default class Device extends Vue {
+    @Prop({ type: Boolean, default: false }) isActive!: boolean
+    neighborCols = neighborCols
 
-  visible = false
+    visible = false
 
-  current: Partial<INeighbor> = {}
+    current: Partial<INeighbor> = {}
 
-  selected: INeighbor[] = []
+    selected: INeighbor[] = []
 
-  points: IPoint[] = []
+    points: IPoint[] = []
 
-  teams: INeighbor[] = []
+    teams: INeighbor[] = []
 
-  loading = { query: false, del: false, export: false, add: false, update: false }
+    loading = { query: false, del: false, export: false, add: false, update: false }
 
-  pagination: IPagination = getDefaultPagination()
+    pagination: IPagination = getDefaultPagination()
 
-  query = {}
+    query = {}
 
-  onQuery(query) {
-    this.query = { ...query }
-    this.doQuery({ current: 1 })
-  }
+    onQuery(query) {
+      this.query = { ...query }
+      this.doQuery({ current: 1 })
+    }
 
-  async doQuery(query = {}) {
-    this.loading.query = true
-    try {
-      const {
-        result: { records, size, total, current }
-      } = await neighborPage({ ...this.pagination, ...this.query, ...query })
-      this.pagination = { current, size, total }
-      this.teams = records || []
-    } catch (error) {
-      console.log(error)
+    async doQuery(query = {}) {
+      this.loading.query = true
+      try {
+        const {
+          result: { records, size, total, current }
+        } = await neighborPage({ ...this.pagination, ...this.query, ...query })
+        this.pagination = { current, size, total }
+        this.teams = records || []
+      } catch (error) {
+        console.log(error)
+      }
+      this.loading.query = false
     }
-    this.loading.query = false
-  }
 
-  onPageChange(pagination) {
-    this.pagination = { ...this.pagination, ...pagination }
-    this.doQuery()
-  }
+    onPageChange(pagination) {
+      this.pagination = { ...this.pagination, ...pagination }
+      this.doQuery()
+    }
 
-  async onSubmit(data: INeighbor) {
-    this.loading[data.id ? 'update' : 'add'] = true
-    try {
-      const { result } = await (data.id
-        ? updateNeighbor({ ...data })
-        : addNeighbor({ ...data, ...this.$store.getters['project/info'] }))
-      this.$message[result ? 'success' : 'error'](`${data.id ? '修改' : '新增'}站点关系${result ? '成功!' : '失败!'}`)
-      if (result) {
-        this.visible = false
-        this.doQuery()
+    async onSubmit(data: INeighbor) {
+      this.loading[data.id ? 'update' : 'add'] = true
+      try {
+        const { result } = await (data.id
+          ? updateNeighbor({ ...data })
+          : addNeighbor({ ...data, ...this.$store.getters['project/info'] }))
+        this.$message[result ? 'success' : 'error'](`${data.id ? '修改' : '新增'}站点关系${result ? '成功!' : '失败!'}`)
+        if (result) {
+          this.visible = false
+          this.doQuery()
+        }
+      } catch (error) {
+        console.log(error)
       }
-    } catch (error) {
-      console.log(error)
+      this.loading[data.id ? 'update' : 'add'] = false
     }
-    this.loading[data.id ? 'update' : 'add'] = false
-  }
 
-  onAdd() {
-    this.current = {}
-    this.visible = true
-  }
+    onAdd() {
+      this.current = {}
+      this.visible = true
+    }
 
-  onUpdate(row) {
-    this.current = { ...row }
-    this.visible = true
-  }
+    onUpdate(row) {
+      this.current = { ...row }
+      this.visible = true
+    }
 
-  async onDel(ids) {
-    await this.$confirm(`是否确认删除这${this.selected.length}项站点关系?`, '提示', {
-      confirmButtonText: '确定',
-      cancelButtonText: '取消',
-      type: 'warning'
-    })
-    this.loading.del = true
-    try {
-      const { result } = await deleteNeighborBatch(ids)
-      this.$message[result ? 'success' : 'error'](`删除站点关系${result ? '成功!' : '失败!'}`)
-      result && this.doQuery()
-    } catch (error) {
-      console.log(error)
+    async onDel(ids) {
+      await this.$confirm(`是否确认删除这${this.selected.length}项站点关系?`, '提示', {
+        confirmButtonText: '确定',
+        cancelButtonText: '取消',
+        type: 'warning'
+      })
+      this.loading.del = true
+      try {
+        const { result } = await deleteNeighborBatch(ids)
+        this.$message[result ? 'success' : 'error'](`删除站点关系${result ? '成功!' : '失败!'}`)
+        result && this.doQuery()
+      } catch (error) {
+        console.log(error)
+      }
+      this.loading.del = false
     }
-    this.loading.del = false
-  }
 
-  onExport(ids) {
-    console.log(ids)
-  }
+    onExport(ids) {
+      console.log(ids)
+    }
 
-  onDblClick(row) {
-    this.current = { ...row }
-    this.visible = true
-  }
+    onDblClick(row) {
+      this.current = { ...row }
+      this.visible = true
+    }
 
-  onSelectionChange(selections) {
-    this.selected = [...selections]
-  }
+    onSelectionChange(selections) {
+      this.selected = [...selections]
+    }
 
-  async getAllPoints() {
-    try {
-      const {
-        result: { records }
-      } = await pointPage({ current: 1, size: 9999, ...this.$store.getters['project/id'] })
-      this.points = records || []
-    } catch (error) {
-      console.log(error)
+    async getAllPoints() {
+      try {
+        const {
+          result: { records }
+        } = await pointPage({ current: 1, size: 9999, ...this.$store.getters['project/id'] })
+        this.points = records || []
+      } catch (error) {
+        console.log(error)
+      }
     }
-  }
 
-  preparing() {
-    this.doQuery()
-    this.getAllPoints()
-  }
+    preparing() {
+      this.doQuery()
+      this.getAllPoints()
+    }
 
-  mounted() {
-    this.getAllPoints()
+    mounted() {
+      this.preparing()
+    }
   }
-}
 </script>

+ 24 - 10
src/views/spectrum/health/flaw/FlawForm.vue

@@ -79,6 +79,7 @@
               clearable
               rows="3"
               maxlength="1001"
+              disabled
             />
           </el-form-item>
           <el-form-item label="算法说明" prop="defectinfo.algorithmNote">
@@ -89,6 +90,7 @@
               clearable
               rows="3"
               maxlength="1001"
+              disabled
             />
           </el-form-item>
           <el-form-item label="备注" prop="defectinfo.note">
@@ -113,7 +115,13 @@
               style="padding: 0"
             >
               <template v-slot:paramValue="{ $index }">
-                <el-form-item :show-message="false" label-width="0" style="margin-bottom: 0" required>
+                <el-form-item
+                  :show-message="false"
+                  label-width="0"
+                  style="margin-bottom: 0"
+                  :rules="[{ required: true, message: '' }]"
+                  :prop="`defectinfoParmSet[${$index}].paramValue`"
+                >
                   <el-input v-model="formData.defectinfoParmSet[$index].paramValue" class="input" />
                 </el-form-item>
               </template>
@@ -175,24 +183,30 @@
     }
 
     rules = {
-      type: [{ required: true, message: '请选择排水类型', trigger: 'blur' }],
-      name: [
+      'defectinfo.type': [{ required: true, message: '请选择排水类型', trigger: 'blur' }],
+      'defectinfo.name': [
         { required: true, message: '请输入缺陷名称', trigger: 'blur' },
         { max: 50, message: '缺陷名称不能超过50个字符', trigger: 'blur' }
       ],
-      description: [
+      'defectinfo.description': [
         { required: true, message: '请输入缺陷描述', trigger: 'blur' },
         { max: 1000, message: '缺陷描述不能超过1000字符', trigger: 'blur' }
       ],
-      according: [
+      'defectinfo.according': [
         { required: true, message: '请输入分析依据', trigger: 'blur' },
         { max: 1000, message: '分析依据不能超过1000字符', trigger: 'blur' }
       ],
-      interfaceName: [{ required: false, max: 1000, message: '接口名称不能超过1000字符', trigger: 'blur' }],
-      interfaceDescription: [{ required: false, max: 1000, message: '接口说明不能超过1000字符', trigger: 'blur' }],
-      algorithmNote: [{ required: false, max: 1000, message: '算法说明不能超过1000字符', trigger: 'blur' }],
-      note: [{ required: false, max: 1000, message: '备注不能超过1000字符', trigger: 'blur' }],
-      monitorIds: [
+      'defectinfo.interfaceName': [
+        { required: false, max: 1000, message: '接口名称不能超过1000字符', trigger: 'blur' }
+      ],
+      'defectinfo.interfaceDescription': [
+        { required: false, max: 1000, message: '接口说明不能超过1000字符', trigger: 'blur' }
+      ],
+      'defectinfo.algorithmNote': [
+        { required: false, max: 1000, message: '算法说明不能超过1000字符', trigger: 'blur' }
+      ],
+      'defectinfo.note': [{ required: false, max: 1000, message: '备注不能超过1000字符', trigger: 'blur' }],
+      'defectinfo.monitorIds': [
         {
           type: 'array',
           required: true,

+ 3 - 32
src/views/spectrum/report/api/rainfall.ts

@@ -1,8 +1,6 @@
-import { serialize } from 'object-to-formdata'
-import { IQueryCommon, IRes, IResult } from '@/api/common'
+import { IQueryCommon, IRes, IResult, serialize } from '@/api/common'
 import axios from '@/utils/request'
 import { base, IRainfall } from './common'
-import { ElUploadInternalRawFile } from 'element-ui/types/upload'
 
 const uris = {
   base: `${base}/rainfall`,
@@ -11,35 +9,8 @@ const uris = {
   import: `${base}/rainfall/batchData`
 }
 
-// export const addRainfall = (data: Omit<IRainfall, 'id'>) =>
-//   axios.request<IRes<boolean>>({
-//     url: uris.base,
-//     method: 'post',
-//     data: serialize(data, { dotsForObjectNotation: true, noFilesWithArrayNotation: true })
-//   })
-
-// export const deleteRainfall = (id: string) =>
-//   axios.request<IRes<boolean>>({ url: `${uris.base}/${id}`, method: 'delete' })
-
-// export const updateRainfall = (data: IRainfall) =>
-//   axios.request<IRes<boolean>>({
-//     url: uris.base,
-//     method: 'put',
-//     data: serialize(data, { dotsForObjectNotation: true, noFilesWithArrayNotation: true })
-//   })
-
-// export const getRainfall = (id: string) =>
-//   axios.request<IResult<IRainfall>>({ url: `${uris.base}/${id}`, method: 'get' })
-
 export const rainFallPage = (params: Partial<IRainfall & IQueryCommon>) =>
   axios.request<IRes<IRainfall[]>>({ url: uris.page, method: 'get', params })
 
-// export const deleteRainfallBatch = (ids: string) =>
-//   axios.request<IRes<boolean>>({ url: uris.del, method: 'delete', params: { ids } })
-
-export const importRainfall = (data: { file: ElUploadInternalRawFile }) =>
-  axios.request<IRes<boolean>>({
-    url: uris.import,
-    method: 'post',
-    data: serialize(data, { dotsForObjectNotation: true, noFilesWithArrayNotation: true })
-  })
+export const importRainfall = (data: { file: File }) =>
+  axios.request<IRes<boolean>>({ url: uris.import, method: 'post', data: serialize(data) })