Преглед на файлове

对接评分质量 台区

ming преди 3 години
родител
ревизия
f9e0911035

+ 10 - 0
src/api/alarmingManage/index.js

@@ -0,0 +1,10 @@
+// import request from '@/utils/request'
+
+//停电计划-查询
+// export function plannedOutageList(params) {
+//     return request({
+//         url: '/wcBlackoutPlan/plannedOutageList',
+//         method: 'POST',
+//         data: params,
+//     })
+// }

+ 10 - 0
src/api/siteManage/powerScore.js

@@ -0,0 +1,10 @@
+import request from '@/utils/request'
+
+//评分配置-新增
+export function powerQualityAdd(params) {
+    return request({
+        url: '/powerQualityConfig/powerQualityAdd',
+        method: 'POST',
+        data: params,
+    })
+}

+ 10 - 0
src/api/stationManage/index.js

@@ -0,0 +1,10 @@
+import request from '@/utils/request'
+
+// 列表查询
+export function platformList(params) {
+    return request({
+        url: '/platformArea/platformAreaListOne',
+        method: 'GET',
+        data: params,
+    })
+}

+ 171 - 164
src/utils/index.js

@@ -1,48 +1,48 @@
 import { devDependencies } from '../../package.json'
 import { devDependencies } from '../../package.json'
 if (!devDependencies['vab-config']) document.body.innerHTML = ''
 if (!devDependencies['vab-config']) document.body.innerHTML = ''
-/**
- * @author chuzhixin 1204505056@qq.com
- * @description 格式化时间
- * @param time
- * @param cFormat
- * @returns {string|null}
- */
+    /**
+     * @author chuzhixin 1204505056@qq.com
+     * @description 格式化时间
+     * @param time
+     * @param cFormat
+     * @returns {string|null}
+     */
 export function parseTime(time, cFormat) {
 export function parseTime(time, cFormat) {
-  if (arguments.length === 0) {
-    return null
-  }
-  const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
-  let date
-  if (typeof time === 'object') {
-    date = time
-  } else {
-    if (typeof time === 'string' && /^[0-9]+$/.test(time)) {
-      time = parseInt(time)
+    if (arguments.length === 0) {
+        return null
     }
     }
-    if (typeof time === 'number' && time.toString().length === 10) {
-      time = time * 1000
-    }
-    date = new Date(time)
-  }
-  const formatObj = {
-    y: date.getFullYear(),
-    m: date.getMonth() + 1,
-    d: date.getDate(),
-    h: date.getHours(),
-    i: date.getMinutes(),
-    s: date.getSeconds(),
-    a: date.getDay(),
-  }
-  return format.replace(/{([ymdhisa])+}/g, (result, key) => {
-    let value = formatObj[key]
-    if (key === 'a') {
-      return ['日', '一', '二', '三', '四', '五', '六'][value]
+    const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
+    let date
+    if (typeof time === 'object') {
+        date = time
+    } else {
+        if (typeof time === 'string' && /^[0-9]+$/.test(time)) {
+            time = parseInt(time)
+        }
+        if (typeof time === 'number' && time.toString().length === 10) {
+            time = time * 1000
+        }
+        date = new Date(time)
     }
     }
-    if (result.length > 0 && value < 10) {
-      value = '0' + value
+    const formatObj = {
+        y: date.getFullYear(),
+        m: date.getMonth() + 1,
+        d: date.getDate(),
+        h: date.getHours(),
+        i: date.getMinutes(),
+        s: date.getSeconds(),
+        a: date.getDay(),
     }
     }
-    return value || 0
-  })
+    return format.replace(/{([ymdhisa])+}/g, (result, key) => {
+        let value = formatObj[key]
+        if (key === 'a') {
+            return ['日', '一', '二', '三', '四', '五', '六'][value]
+        }
+        if (result.length > 0 && value < 10) {
+            value = '0' + value
+        }
+        return value || 0
+    })
 }
 }
 
 
 /**
 /**
@@ -53,41 +53,41 @@ export function parseTime(time, cFormat) {
  * @returns {string}
  * @returns {string}
  */
  */
 export function formatTime(time, option) {
 export function formatTime(time, option) {
-  if (('' + time).length === 10) {
-    time = parseInt(time) * 1000
-  } else {
-    time = +time
-  }
-  const d = new Date(time)
-  const now = Date.now()
+    if (('' + time).length === 10) {
+        time = parseInt(time) * 1000
+    } else {
+        time = +time
+    }
+    const d = new Date(time)
+    const now = Date.now()
 
 
-  const diff = (now - d) / 1000
+    const diff = (now - d) / 1000
 
 
-  if (diff < 30) {
-    return '刚刚'
-  } else if (diff < 3600) {
-    // less 1 hour
-    return Math.ceil(diff / 60) + '分钟前'
-  } else if (diff < 3600 * 24) {
-    return Math.ceil(diff / 3600) + '小时前'
-  } else if (diff < 3600 * 24 * 2) {
-    return '1天前'
-  }
-  if (option) {
-    return parseTime(time, option)
-  } else {
-    return (
-      d.getMonth() +
-      1 +
-      '月' +
-      d.getDate() +
-      '日' +
-      d.getHours() +
-      '时' +
-      d.getMinutes() +
-      '分'
-    )
-  }
+    if (diff < 30) {
+        return '刚刚'
+    } else if (diff < 3600) {
+        // less 1 hour
+        return Math.ceil(diff / 60) + '分钟前'
+    } else if (diff < 3600 * 24) {
+        return Math.ceil(diff / 3600) + '小时前'
+    } else if (diff < 3600 * 24 * 2) {
+        return '1天前'
+    }
+    if (option) {
+        return parseTime(time, option)
+    } else {
+        return (
+            d.getMonth() +
+            1 +
+            '月' +
+            d.getDate() +
+            '日' +
+            d.getHours() +
+            '时' +
+            d.getMinutes() +
+            '分'
+        )
+    }
 }
 }
 
 
 /**
 /**
@@ -97,19 +97,19 @@ export function formatTime(time, option) {
  * @returns {{}|any}
  * @returns {{}|any}
  */
  */
 export function paramObj(url) {
 export function paramObj(url) {
-  const search = url.split('?')[1]
-  if (!search) {
-    return {}
-  }
-  return JSON.parse(
-    '{"' +
-      decodeURIComponent(search)
+    const search = url.split('?')[1]
+    if (!search) {
+        return {}
+    }
+    return JSON.parse(
+        '{"' +
+        decodeURIComponent(search)
         .replace(/"/g, '\\"')
         .replace(/"/g, '\\"')
         .replace(/&/g, '","')
         .replace(/&/g, '","')
         .replace(/=/g, '":"')
         .replace(/=/g, '":"')
         .replace(/\+/g, ' ') +
         .replace(/\+/g, ' ') +
-      '"}'
-  )
+        '"}'
+    )
 }
 }
 
 
 /**
 /**
@@ -119,28 +119,28 @@ export function paramObj(url) {
  * @returns {*}
  * @returns {*}
  */
  */
 export function translateDataToTree(data) {
 export function translateDataToTree(data) {
-  const parent = data.filter(
-    (value) => value.parentId === 'undefined' || value.parentId == null
-  )
-  const children = data.filter(
-    (value) => value.parentId !== 'undefined' && value.parentId != null
-  )
-  const translator = (parent, children) => {
-    parent.forEach((parent) => {
-      children.forEach((current, index) => {
-        if (current.parentId === parent.id) {
-          const temp = JSON.parse(JSON.stringify(children))
-          temp.splice(index, 1)
-          translator([current], temp)
-          typeof parent.children !== 'undefined'
-            ? parent.children.push(current)
-            : (parent.children = [current])
-        }
-      })
-    })
-  }
-  translator(parent, children)
-  return parent
+    const parent = data.filter(
+        (value) => value.parentId === 'undefined' || value.parentId == null
+    )
+    const children = data.filter(
+        (value) => value.parentId !== 'undefined' && value.parentId != null
+    )
+    const translator = (parent, children) => {
+        parent.forEach((parent) => {
+            children.forEach((current, index) => {
+                if (current.parentId === parent.id) {
+                    const temp = JSON.parse(JSON.stringify(children))
+                    temp.splice(index, 1)
+                    translator([current], temp)
+                    typeof parent.children !== 'undefined' ?
+                        parent.children.push(current) :
+                        (parent.children = [current])
+                }
+            })
+        })
+    }
+    translator(parent, children)
+    return parent
 }
 }
 
 
 /**
 /**
@@ -150,24 +150,24 @@ export function translateDataToTree(data) {
  * @returns {[]}
  * @returns {[]}
  */
  */
 export function translateTreeToData(data) {
 export function translateTreeToData(data) {
-  const result = []
-  data.forEach((item) => {
-    const loop = (data) => {
-      result.push({
-        id: data.id,
-        name: data.name,
-        parentId: data.parentId,
-      })
-      const child = data.children
-      if (child) {
-        for (let i = 0; i < child.length; i++) {
-          loop(child[i])
+    const result = []
+    data.forEach((item) => {
+        const loop = (data) => {
+            result.push({
+                id: data.id,
+                name: data.name,
+                parentId: data.parentId,
+            })
+            const child = data.children
+            if (child) {
+                for (let i = 0; i < child.length; i++) {
+                    loop(child[i])
+                }
+            }
         }
         }
-      }
-    }
-    loop(item)
-  })
-  return result
+        loop(item)
+    })
+    return result
 }
 }
 
 
 /**
 /**
@@ -177,19 +177,19 @@ export function translateTreeToData(data) {
  * @returns {string}
  * @returns {string}
  */
  */
 export function tenBitTimestamp(time) {
 export function tenBitTimestamp(time) {
-  const date = new Date(time * 1000)
-  const y = date.getFullYear()
-  let m = date.getMonth() + 1
-  m = m < 10 ? '' + m : m
-  let d = date.getDate()
-  d = d < 10 ? '' + d : d
-  let h = date.getHours()
-  h = h < 10 ? '0' + h : h
-  let minute = date.getMinutes()
-  let second = date.getSeconds()
-  minute = minute < 10 ? '0' + minute : minute
-  second = second < 10 ? '0' + second : second
-  return y + '年' + m + '月' + d + '日 ' + h + ':' + minute + ':' + second //组合
+    const date = new Date(time * 1000)
+    const y = date.getFullYear()
+    let m = date.getMonth() + 1
+    m = m < 10 ? '' + m : m
+    let d = date.getDate()
+    d = d < 10 ? '' + d : d
+    let h = date.getHours()
+    h = h < 10 ? '0' + h : h
+    let minute = date.getMinutes()
+    let second = date.getSeconds()
+    minute = minute < 10 ? '0' + minute : minute
+    second = second < 10 ? '0' + second : second
+    return y + '年' + m + '月' + d + '日 ' + h + ':' + minute + ':' + second //组合
 }
 }
 
 
 /**
 /**
@@ -199,19 +199,19 @@ export function tenBitTimestamp(time) {
  * @returns {string}
  * @returns {string}
  */
  */
 export function thirteenBitTimestamp(time) {
 export function thirteenBitTimestamp(time) {
-  const date = new Date(time / 1)
-  const y = date.getFullYear()
-  let m = date.getMonth() + 1
-  m = m < 10 ? '' + m : m
-  let d = date.getDate()
-  d = d < 10 ? '' + d : d
-  let h = date.getHours()
-  h = h < 10 ? '0' + h : h
-  let minute = date.getMinutes()
-  let second = date.getSeconds()
-  minute = minute < 10 ? '0' + minute : minute
-  second = second < 10 ? '0' + second : second
-  return y + '年' + m + '月' + d + '日 ' + h + ':' + minute + ':' + second //组合
+    const date = new Date(time / 1)
+    const y = date.getFullYear()
+    let m = date.getMonth() + 1
+    m = m < 10 ? '' + m : m
+    let d = date.getDate()
+    d = d < 10 ? '' + d : d
+    let h = date.getHours()
+    h = h < 10 ? '0' + h : h
+    let minute = date.getMinutes()
+    let second = date.getSeconds()
+    minute = minute < 10 ? '0' + minute : minute
+    second = second < 10 ? '0' + second : second
+    return y + '年' + m + '月' + d + '日 ' + h + ':' + minute + ':' + second //组合
 }
 }
 
 
 /**
 /**
@@ -221,12 +221,12 @@ export function thirteenBitTimestamp(time) {
  * @returns {string}
  * @returns {string}
  */
  */
 export function uuid(length = 32) {
 export function uuid(length = 32) {
-  const num = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
-  let str = ''
-  for (let i = 0; i < length; i++) {
-    str += num.charAt(Math.floor(Math.random() * num.length))
-  }
-  return str
+    const num = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'
+    let str = ''
+    for (let i = 0; i < length; i++) {
+        str += num.charAt(Math.floor(Math.random() * num.length))
+    }
+    return str
 }
 }
 
 
 /**
 /**
@@ -237,7 +237,7 @@ export function uuid(length = 32) {
  * @returns {number}
  * @returns {number}
  */
  */
 export function random(m, n) {
 export function random(m, n) {
-  return Math.floor(Math.random() * (m - n) + n)
+    return Math.floor(Math.random() * (m - n) + n)
 }
 }
 
 
 /**
 /**
@@ -245,12 +245,12 @@ export function random(m, n) {
  * @description addEventListener
  * @description addEventListener
  * @type {function(...[*]=)}
  * @type {function(...[*]=)}
  */
  */
-export const on = (function () {
-  return function (element, event, handler, useCapture = false) {
-    if (element && event && handler) {
-      element.addEventListener(event, handler, useCapture)
+export const on = (function() {
+    return function(element, event, handler, useCapture = false) {
+        if (element && event && handler) {
+            element.addEventListener(event, handler, useCapture)
+        }
     }
     }
-  }
 })()
 })()
 
 
 /**
 /**
@@ -258,10 +258,17 @@ export const on = (function () {
  * @description removeEventListener
  * @description removeEventListener
  * @type {function(...[*]=)}
  * @type {function(...[*]=)}
  */
  */
-export const off = (function () {
-  return function (element, event, handler, useCapture = false) {
-    if (element && event) {
-      element.removeEventListener(event, handler, useCapture)
+
+
+
+
+/**
+ * 手机号校验
+ */
+export function validatorPhone(rule, value, callback) {
+    if (!/^1\d{10}$/.test(value)) {
+        callback(new Error('输入的电话号码不正确'))
+    } else {
+        callback()
     }
     }
-  }
-})()
+}

+ 117 - 83
src/views/siteManage/basicInfo/index.vue

@@ -4,7 +4,7 @@
       :model="ruleForm"
       :model="ruleForm"
       :rules="rules"
       :rules="rules"
       ref="formInfo"
       ref="formInfo"
-      label-width="100px"
+      label-width="110px"
       class="demo-ruleForm"
       class="demo-ruleForm"
     >
     >
       <el-row style="min-width: 1100px">
       <el-row style="min-width: 1100px">
@@ -46,8 +46,8 @@
             </el-form-item>
             </el-form-item>
             <el-form-item label="供电类型:" prop="powerSupplyType">
             <el-form-item label="供电类型:" prop="powerSupplyType">
               <el-radio-group v-model="ruleForm.powerSupplyType">
               <el-radio-group v-model="ruleForm.powerSupplyType">
-                <el-radio label="单路"></el-radio>
-                <el-radio label="双路"></el-radio>
+                <el-radio label="1" value="1">单路</el-radio>
+                <el-radio label="2" value="2">双路</el-radio>
               </el-radio-group>
               </el-radio-group>
             </el-form-item>
             </el-form-item>
             <el-form-item label="电压等级:" prop="voltageLevel">
             <el-form-item label="电压等级:" prop="voltageLevel">
@@ -57,13 +57,10 @@
               <el-input v-model="ruleForm.siteAddress"></el-input>
               <el-input v-model="ruleForm.siteAddress"></el-input>
             </el-form-item>
             </el-form-item>
 
 
-            <!-- <el-form-item label="所属台区:" prop="region">
-              <el-input v-model="ruleForm.region"></el-input>
-            </el-form-item> -->
             <el-form-item label="所属台区" prop="region">
             <el-form-item label="所属台区" prop="region">
               <el-radio-group v-model="ruleForm.region">
               <el-radio-group v-model="ruleForm.region">
-                <el-radio label="宝山"></el-radio>
-                <el-radio label="嘉定"></el-radio>
+                <el-radio label="1">宝山</el-radio>
+                <el-radio label="2">嘉定</el-radio>
               </el-radio-group>
               </el-radio-group>
             </el-form-item>
             </el-form-item>
 
 
@@ -97,12 +94,26 @@
           </el-form-item>
           </el-form-item>
           <el-form-item label="折标准煤:" prop="demolitionStandardCoal">
           <el-form-item label="折标准煤:" prop="demolitionStandardCoal">
             <el-radio-group v-model="ruleForm.demolitionStandardCoal">
             <el-radio-group v-model="ruleForm.demolitionStandardCoal">
-              <el-radio label="电力(等价)"></el-radio>
-              <el-radio label="电力(当量)"></el-radio>
+              <el-radio label="1">电力(等价)</el-radio>
+              <el-radio label="2">电力(当量)</el-radio>
             </el-radio-group>
             </el-radio-group>
             <div style="opacity: 0.45">0.000404吨标准煤/千瓦时</div>
             <div style="opacity: 0.45">0.000404吨标准煤/千瓦时</div>
           </el-form-item>
           </el-form-item>
 
 
+          <el-form-item label="流变变比" prop="rheologicalChange">
+            <el-input v-model="ruleForm.rheologicalChange"></el-input>
+          </el-form-item>
+          <el-form-item label="所属线路" prop="routeId">
+             <el-select v-model="ruleForm.routeId" placeholder="请选择">
+              <el-option
+                v-for="(item, index) in dropData"
+                :key="index"
+                :label="item.variableName"
+                :value="item.variableCoding"
+              ></el-option>
+            </el-select>
+          </el-form-item>
+
           <a class="goArchive">现场档案</a>
           <a class="goArchive">现场档案</a>
 
 
           <div class="blockTitle mt-60 mb-20">动态属性</div>
           <div class="blockTitle mt-60 mb-20">动态属性</div>
@@ -207,6 +218,7 @@ import * as api from '@/api/siteManage/basicInfo'
 import { ElMessage } from 'element-plus'
 import { ElMessage } from 'element-plus'
 
 
 import { useStore } from 'vuex'
 import { useStore } from 'vuex'
+import { parseTime, validatorPhone } from '@/utils'
 
 
 export default defineComponent({
 export default defineComponent({
   name: 'BasicInfo',
   name: 'BasicInfo',
@@ -216,8 +228,8 @@ export default defineComponent({
     const dialogImageUrl = ref('')
     const dialogImageUrl = ref('')
     const dialogVisible = ref(false)
     const dialogVisible = ref(false)
     const disabled = ref(false)
     const disabled = ref(false)
-    const accessToken = ref(
-      'eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImQyZmE1ZWQyLWNlYTUtNDljYy1hZWRlLTQ1Y2FmYmRhMjJkYiJ9.t9p44SssEfi8XsVSeDCP77kp67MmQCxhUGksP0QkM4GH-D366i6nRdr_LATIhDmseIBLVkXEEJ7aE4bNmT1oww'
+    const accessToken = ref(  // 请求头字段待写活
+      'eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6IjFkNzIxMzA2LTVkMmYtNDE0MS1hMmI0LWIxMjgyMzVhZDM1ZCJ9.GpQLs96TH00EvUE4S5XsaYgFaL7gH5uabDpiFOHwDCxus0jdcB_gQu3XPB0BgJwNiFI8DA5JuQhSnnTezBbdyw'
     )
     )
     const dropData = ref([])
     const dropData = ref([])
     const dropData2 = ref([])
     const dropData2 = ref([])
@@ -228,15 +240,17 @@ export default defineComponent({
       operationTime: '',
       operationTime: '',
       serviceDeadline: '',
       serviceDeadline: '',
       installedCapacity: '',
       installedCapacity: '',
-      powerSupplyType: '单路',
+      powerSupplyType: '1',
       voltageLevel: '',
       voltageLevel: '',
       siteAddress: '',
       siteAddress: '',
       longitude: '',
       longitude: '',
       latitude: '',
       latitude: '',
-      region: '宝山',
+      region: '1',
 
 
       demolitionStandardCoal1: '',
       demolitionStandardCoal1: '',
-      demolitionStandardCoal: '电力(等价)',
+      demolitionStandardCoal: '1',
+      rheologicalChange:'',
+      routeId:'',
 
 
       faultStatus: '',
       faultStatus: '',
       realTimeLoad: '',
       realTimeLoad: '',
@@ -247,22 +261,12 @@ export default defineComponent({
       phone: '',
       phone: '',
       spareUserName: '',
       spareUserName: '',
       sparePhone: '',
       sparePhone: '',
-    })
 
 
-    /**
-     * 手机号校验
-     */
-    var validatorPhone = function (rule, value, callback) {
-      if (!/^1\d{10}$/.test(value)) {
-        callback(new Error('输入的电话号码不正确'))
-      } else {
-        callback()
-      }
-    }
+      sitePictureOne:'',
+      sitePictureTwo:'',
+      sitePictureThree:''
+    })
 
 
-    function handleRemove(file) {
-      console.log(file)
-    }
     function handlePictureCardPreview(file) {
     function handlePictureCardPreview(file) {
       console.log('file')
       console.log('file')
       console.log(file)
       console.log(file)
@@ -284,48 +288,37 @@ export default defineComponent({
       dataSet.fileList.push(res.data)
       dataSet.fileList.push(res.data)
       console.log(dataSet.fileList)
       console.log(dataSet.fileList)
     }
     }
+    //删除照片
+    function handleRemove(res) {
+      // console.log('删除')
+      // console.log(res.name)
 
 
-    function parseTime(time, cFormat) {
-      if (arguments.length === 0) {
-        return null
-      }
-      const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
-      let date
-      if (typeof time === 'object') {
-        date = time
-      } else {
-        if (typeof time === 'string' && /^[0-9]+$/.test(time)) {
-          time = parseInt(time)
-        }
-        if (typeof time === 'number' && time.toString().length === 10) {
-          time = time * 1000
+      Array.prototype.indexOf = function (val) {
+        for (var i = 0; i < this.length; i++) {
+          if (this[i] == val) return i
         }
         }
-        date = new Date(time)
-      }
-      const formatObj = {
-        y: date.getFullYear(),
-        m: date.getMonth() + 1,
-        d: date.getDate(),
-        h: date.getHours(),
-        i: date.getMinutes(),
-        s: date.getSeconds(),
-        a: date.getDay(),
+        return -1
       }
       }
-      return format.replace(/{([ymdhisa])+}/g, (result, key) => {
-        let value = formatObj[key]
-        if (key === 'a') {
-          return ['日', '一', '二', '三', '四', '五', '六'][value]
+      Array.prototype.remove = function (val) {
+        var index = this.indexOf(val)
+        if (index > -1) {
+          this.splice(index, 1)
         }
         }
-        if (result.length > 0 && value < 10) {
-          value = '0' + value
-        }
-        return value || 0
-      })
+      }
+      dataSet.fileList.remove(res.name)
+
+      console.log(dataSet.fileList)
     }
     }
+
     //表单提交
     //表单提交
     function submitForm() {
     function submitForm() {
-      ruleForm.value.operationTime = parseTime(ruleForm.value.operationTime)
-      ruleForm.value.serviceDeadline = parseTime(ruleForm.value.serviceDeadline)
+      ruleForm.value.sitePictureOne =  dataSet.fileList[0]
+      ruleForm.value.sitePictureTwo =  dataSet.fileList[1]
+      ruleForm.value.sitePictureThree =  dataSet.fileList[2]
+     
+      ruleForm.value.operationTime?ruleForm.value.operationTime = parseTime(ruleForm.value.operationTime):''
+      ruleForm.value.serviceDeadline?ruleForm.value.serviceDeadline = parseTime(ruleForm.value.serviceDeadline):''
+
       formInfo.value.validate((valid) => {
       formInfo.value.validate((valid) => {
         if (valid) {
         if (valid) {
           store
           store
@@ -334,7 +327,42 @@ export default defineComponent({
           // ruleForm.value.operationTime = time[0]
           // ruleForm.value.operationTime = time[0]
           // ruleForm.value.serviceDeadline = time[1]
           // ruleForm.value.serviceDeadline = time[1]
 
 
-          api.siteAdd(ruleForm.value).then((requset) => {
+          api.siteAdd(
+            {
+              site:{
+                "siteName":ruleForm.value.siteName,
+                "installedCapacity":ruleForm.value.installedCapacity,
+                "siteAddress":ruleForm.value.siteAddress,
+                "region":ruleForm.value.region,
+                "longitude":ruleForm.value.longitude,
+                "latitude":ruleForm.value.latitude,
+                "userName":ruleForm.value.userName,
+                "phone":ruleForm.value.phone,
+                "spareUserName":ruleForm.value.spareUserName,
+                "sparePhone":ruleForm.value.sparePhone,
+                "rheologicalChange":ruleForm.value.rheologicalChange,
+                "routeId":ruleForm.value.routeId,
+                "groupingId":'1'   //字段值待写活
+              }
+              ,
+              siteDynamicProperties:{
+                "siteType":ruleForm.value.siteType,
+                "userCompany":ruleForm.value.userCompany,
+                "operationTime":ruleForm.value.operationTime,
+                "serviceDeadline":ruleForm.value.serviceDeadline,
+                "powerSupplyType":ruleForm.value.powerSupplyType,
+                "voltageLevel":ruleForm.value.voltageLevel,
+                "demolitionStandardCoal":ruleForm.value.demolitionStandardCoal,
+                "demolitionStandardCoal1":ruleForm.value.demolitionStandardCoal1,
+                "faultStatus":ruleForm.value.faultStatus,
+                "realTimeLoad":ruleForm.value.realTimeLoad,
+                "totalElectricity":ruleForm.value.totalElectricity,
+                "powerFactor":ruleForm.value.powerFactor,
+                "sitePictureOne":ruleForm.value.sitePictureOne,
+                "sitePictureTwo":ruleForm.value.sitePictureTwo,
+                "sitePictureThree":ruleForm.value.sitePictureThree,
+              }
+            }).then((requset) => {
             if (requset.status === 'SUCCESS') {
             if (requset.status === 'SUCCESS') {
               ElMessage.success({
               ElMessage.success({
                 message: '新增成功',
                 message: '新增成功',
@@ -453,6 +481,12 @@ export default defineComponent({
         demolitionStandardCoal1: [
         demolitionStandardCoal1: [
           { required: true, message: '请输入折煤标准', trigger: 'blur' },
           { required: true, message: '请输入折煤标准', trigger: 'blur' },
         ],
         ],
+        routeId: [
+          { required: true, message: '选择所属线路', trigger: 'change' },
+        ],
+        rheologicalChange: [
+          { required: true, message: '请输入流变变比', trigger: 'blur' },
+        ],
 
 
         userName: [
         userName: [
           { required: true, message: '请输入联系人1', trigger: 'blur' },
           { required: true, message: '请输入联系人1', trigger: 'blur' },
@@ -475,24 +509,24 @@ export default defineComponent({
             trigger: 'blur',
             trigger: 'blur',
           },
           },
         ],
         ],
-        // spareUserName: [
-        //   { required: true, message: '请输入联系人2', trigger: 'blur' },
-        //   {
-        //     min: 3,
-        //     max: 11,
-        //     message: '长度在 3 到 11 个字符',
-        //     trigger: 'blur',
-        //   },
-        // ],
-        // sparePhone: [
-        //   { required: true, message: '请输入联系方式2', trigger: 'blur' },
-        //   {
-        //     min: 3,
-        //     max: 11,
-        //     message: '长度在 3 到 11 个字符',
-        //     trigger: 'blur',
-        //   },
-        // ],
+        spareUserName: [
+          { required: true, message: '请输入联系人2', trigger: 'blur' },
+          {
+            min: 3,
+            max: 11,
+            message: '长度在 3 到 11 个字符',
+            trigger: 'blur',
+          },
+        ],
+        sparePhone: [
+          { required: true, message: '请输入联系方式2', trigger: 'blur' },
+          {
+            min: 3,
+            max: 11,
+            message: '长度在 3 到 11 个字符',
+            trigger: 'blur',
+          },
+        ],
       },
       },
       handleRemove,
       handleRemove,
       handlePictureCardPreview,
       handlePictureCardPreview,

+ 127 - 0
src/views/siteManage/powerScore/index orange.vue

@@ -0,0 +1,127 @@
+<template>
+  <div class="siteManage-main powerScore">
+    <el-form
+      :model="ruleForm"
+      :rules="rules"
+      ref="ruleForm"
+      label-width="137px"
+      class="demo-ruleForm"
+    >
+      <div class="grid-content bg-purple">
+        <div class="el-form-item blockTitle">电能质量各要素权重</div>
+        <div></div>
+        <el-form-item label="功率因数(100%):" prop="name">
+          <el-input v-model="ruleForm.name"></el-input>
+        </el-form-item>
+
+        <el-form-item label="电压合格率(%):" prop="name">
+          <el-input v-model="ruleForm.name"></el-input>
+        </el-form-item>
+        <el-form-item label="负载率(%):" prop="name">
+          <el-input v-model="ruleForm.name"></el-input>
+        </el-form-item>
+        <el-form-item label="电流平衡度(%):" prop="name">
+          <el-input v-model="ruleForm.name"></el-input>
+        </el-form-item>
+
+        <el-form-item label="电压平衡度(%):" prop="name">
+          <el-input v-model="ruleForm.name"></el-input>
+        </el-form-item>
+        <el-form-item label="谐波畸变率(%):" prop="name">
+          <el-input v-model="ruleForm.name"></el-input>
+          <div class="remarksTxt">当要素权重为0时,该要素不参与电能质量分析</div>
+        </el-form-item>
+
+        <div class="el-form-item blockTitle">功率因数</div>
+        <el-form-item label="功率因数:" prop="powerFactorTwo">
+          <el-input v-model="ruleForm.npowerFactorTwoame"></el-input>
+          
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" @click="submitForm('ruleForm')">
+            保存
+          </el-button>
+        </el-form-item>
+      </div>
+    </el-form>
+  </div>
+</template>
+
+<script>
+export default {
+  name: 'PowerScore',
+  data() {
+    return {
+      ruleForm: {
+        name: '',
+        region: '',
+        date1: '',
+        date2: '',
+        delivery: false,
+        type: [],
+        resource: '',
+        desc: '',
+        planStartTime: '',
+        planEndTime: '',
+      },
+      rules: {
+        planStartDate: [
+          { required: true, message: '请选择开始日期', trigger: 'change' },
+        ],
+        planEndDate: [
+          { required: true, message: '请输入结束日期', trigger: 'change' },
+        ],
+        name: [
+          { required: true, message: '请输入站点名称', trigger: 'blur' },
+          { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' },
+        ],
+        region: [
+          { required: true, message: '请选择活动区域', trigger: 'change' },
+        ],
+        date1: [
+          {
+            type: 'date',
+            required: true,
+            message: '请选择日期',
+            trigger: 'change',
+          },
+        ],
+        date2: [
+          {
+            type: 'date',
+            required: true,
+            message: '请选择时间',
+            trigger: 'change',
+          },
+        ],
+        type: [
+          {
+            type: 'array',
+            required: true,
+            message: '请至少选择一个活动性质',
+            trigger: 'change',
+          },
+        ],
+        resource: [
+          { required: true, message: '请选择活动资源', trigger: 'change' },
+        ],
+        desc: [{ required: true, message: '请填写活动形式', trigger: 'blur' }],
+      },
+    }
+  },
+  methods: {
+    submitForm(formName) {
+      this.$refs[formName].validate((valid) => {
+        if (valid) {
+          alert('submit!')
+        } else {
+          console.log('error submit!!')
+          return false
+        }
+      })
+    },
+  },
+}
+</script>
+<style scoped lang="scss">
+</style>

+ 134 - 120
src/views/siteManage/powerScore/index.vue

@@ -3,145 +3,159 @@
     <el-form
     <el-form
       :model="ruleForm"
       :model="ruleForm"
       :rules="rules"
       :rules="rules"
-      ref="ruleForm"
-      label-width="100px"
+      ref="formInfo"
+      label-width="137px"
       class="demo-ruleForm"
       class="demo-ruleForm"
     >
     >
-          <div class="grid-content bg-purple">
-            <div class="el-form-item blockTitle">
-               电能质量各要素权重
-             </div>
-            <div></div>
-            <el-form-item label="功率因数(100%)" prop="name" label-width="130px">
-              <el-input v-model="ruleForm.name"></el-input>
-            </el-form-item>
+      <div class="grid-content bg-purple">
+        <div class="el-form-item blockTitle">电能质量各要素权重</div>
+        <div></div>
+        <el-form-item
+          label="功率因数(100%)"
+          prop="powerFactorOne"
+          label-width="130px"
+        >
+          <el-input v-model="ruleForm.powerFactorOne"></el-input>
+        </el-form-item>
 
 
-            <el-form-item label="电压合格率(%)" prop="name" label-width="130px">
-              <el-input v-model="ruleForm.name"></el-input>
-            </el-form-item>
-            <el-form-item label="负载率(%)" prop="name" label-width="130px">
-              <el-input v-model="ruleForm.name"></el-input>
-            </el-form-item>
+        <el-form-item
+          label="电压合格率(%)"
+          prop="voltageQualified"
+          label-width="130px"
+        >
+          <el-input v-model="ruleForm.voltageQualified"></el-input>
+        </el-form-item>
+        <el-form-item label="负载率(%)" prop="loadRate" label-width="130px">
+          <el-input v-model="ruleForm.loadRate"></el-input>
+        </el-form-item>
+        <el-form-item
+          label="电流平衡度(%):"
+          prop="currentBalance"
+          label-width="130px"
+        >
+          <el-input v-model="ruleForm.currentBalance"></el-input>
+        </el-form-item>
 
 
-            
+        <el-form-item
+          label="电压平衡度(%):"
+          prop="voltageBalance"
+          label-width="130px"
+        >
+          <el-input v-model="ruleForm.voltageBalance"></el-input>
+        </el-form-item>
+        <el-form-item label="谐波畸变率(%)" prop="thdu" label-width="130px">
+          <el-input v-model="ruleForm.thdu"></el-input>
+        </el-form-item>
 
 
-            <el-form-item label="电流平衡度(%):" prop="name" label-width="130px">
-              <el-input v-model="ruleForm.name"></el-input>
-            </el-form-item>
-           
-            <el-form-item label="电压平衡度(%):" prop="name" label-width="130px">
-              <el-input v-model="ruleForm.name"></el-input>
-            </el-form-item>
-            <el-form-item label="谐波畸变率(%)" prop="name" label-width="130px">
-              <el-input v-model="ruleForm.name"></el-input>
-            </el-form-item>
-     
-             <div class="el-form-item blockTitle">
-               功率因素
-             </div>
-            <el-form-item label="所属台区" prop="name" label-width="130px">
-              <el-input v-model="ruleForm.name"></el-input>
-               <div class="remarksTxt">0.000404吨标准煤/千瓦时</div>
-            </el-form-item>
-            
-
-            <el-form-item>
-              <el-button type="primary" @click="submitForm('ruleForm')"
-                >保存</el-button>
-            
-            </el-form-item>
+        <div class="el-form-item blockTitle">功率因素</div>
 
 
-          </div>
-       
+        <el-form-item
+          label="功率因数"
+          prop="powerFactorTwo"
+          label-width="130px"
+        >
+          <el-input v-model="ruleForm.powerFactorTwo"></el-input>
+        </el-form-item>
+        <el-form-item>
+          <el-button type="primary" @click="submitForm('ruleForm')">
+            保存
+          </el-button>
+        </el-form-item>
+      </div>
     </el-form>
     </el-form>
   </div>
   </div>
 </template>
 </template>
 
 
 <script>
 <script>
-export default {
-  name: "PowerScore",
-  data() {
+import { defineComponent, ref, onMounted } from 'vue'
+import * as api from '@/api/siteManage/powerScore'
+import { ElMessage } from 'element-plus'
+
+export default defineComponent({
+  name: 'PowerScore',
+  setup() {
+    const formInfo = ref(null)
+
+    const ruleForm = ref({
+      powerFactorOne: '',
+      voltageQualified: '',
+      loadRate: '',
+      currentBalance: '',
+      voltageBalance: '',
+      thdu: '',
+      powerFactorTwo: '',
+      siteId:'1'   //此字段需写活
+     
+    })
+
+    //表单提交
+    function submitForm() {
+      formInfo.value.validate((valid) => {
+        if (valid) {
+          api.powerQualityAdd(ruleForm.value).then((requset) => {
+            if (requset.status === 'SUCCESS') {
+              ElMessage.success({
+                message: '新增成功',
+                type: 'success',
+              })
+              // if (props.dialogTitle === '新增') {
+              //   ElMessage.success({
+              //     message: '新增成功',
+              //     type: 'success',
+              //   })
+              // } else {
+              //   ElMessage.success({
+              //     message: '修改成功',
+              //     type: 'success',
+              //   })
+              // }
+            } else {
+              ElMessage.error(requset.msg)
+            }
+          })
+        } else {
+          console.log('error submit!!')
+          return false
+        }
+      })
+    }
+
+    function resetForm() {
+      formInfo.value.resetFields()
+    }
+
+    onMounted(() => {})
+
     return {
     return {
-      dialogImageUrl: "",
-      dialogVisible: false,
-      disabled: false,
-      ruleForm: {
-        name: "",
-        region: "",
-        date1: "",
-        date2: "",
-        delivery: false,
-        type: [],
-        resource: "",
-        desc: "",
-        planStartTime: "",
-        planEndTime: "",
-      },
+      formInfo,
+      ruleForm,
       rules: {
       rules: {
-        planStartDate: [
-          { required: true, message: "请选择开始日期", trigger: "change" },
-        ],
-        planEndDate: [
-          { required: true, message: "请输入结束日期", trigger: "change" },
+        powerFactorOne: [
+          { required: true, message: '请输入功率因数', trigger: 'blur' },
         ],
         ],
-        name: [
-          { required: true, message: "请输入站点名称", trigger: "blur" },
-          { min: 3, max: 5, message: "长度在 3 到 5 个字符", trigger: "blur" },
+        voltageQualified: [
+          { required: true, message: '请输入电压合格率', trigger: 'blur' },
         ],
         ],
-        region: [
-          { required: true, message: "请选择活动区域", trigger: "change" },
+        loadRate: [
+          { required: true, message: '请输入负载率', trigger: 'blur' },
         ],
         ],
-        date1: [
-          {
-            type: "date",
-            required: true,
-            message: "请选择日期",
-            trigger: "change",
-          },
-        ],
-        date2: [
-          {
-            type: "date",
-            required: true,
-            message: "请选择时间",
-            trigger: "change",
-          },
+       
+        currentBalance: [
+          { required: true, message: '请输入电流平衡度', trigger: 'blur' },
         ],
         ],
-        type: [
-          {
-            type: "array",
-            required: true,
-            message: "请至少选择一个活动性质",
-            trigger: "change",
-          },
+        voltageBalance: [
+          { required: true, message: '请输入电压平衡度', trigger: 'blur' },
         ],
         ],
-        resource: [
-          { required: true, message: "请选择活动资源", trigger: "change" },
+        thdu: [
+          { required: true, message: '请输入谐波畸变率', trigger: 'blur' },
         ],
         ],
-        desc: [{ required: true, message: "请填写活动形式", trigger: "blur" }],
+        powerFactorTwo: [{ required: true, message: '请输入功率因数', trigger: 'blur' }],
       },
       },
-    };
-  },
-  methods: {
-    handleRemove(file) {
-      console.log(file);
-    },
-    handlePictureCardPreview(file) {
-      this.dialogImageUrl = file.url;
-      this.dialogVisible = true;
-    },
-    submitForm(formName) {
-      this.$refs[formName].validate((valid) => {
-        if (valid) {
-          alert("submit!");
-        } else {
-          console.log("error submit!!");
-          return false;
-        }
-      });
-    },
+
+      submitForm,
+      resetForm,
+    }
   },
   },
-};
+})
 </script>
 </script>
-<style scoped lang="scss">
-</style>
+

+ 56 - 48
src/views/stationManage/index.vue

@@ -7,13 +7,13 @@
         <div class="filter-item" >
         <div class="filter-item" >
           台区:
           台区:
           <el-input
           <el-input
-            v-model="input"
-            placeholder="请输入内容"
+            v-model="platformAreaName"
+            placeholder="请输入台区名称"
             style="width: 240px"
             style="width: 240px"
           ></el-input>
           ></el-input>
         </div>
         </div>
 
 
-        <el-button type="primary" icon="el-icon-search" class="search-button">
+        <el-button type="primary" icon="el-icon-search" class="search-button" @click="SearchData()">
           搜索
           搜索
         </el-button>
         </el-button>
 
 
@@ -34,30 +34,30 @@
     >
     >
       <el-table-column
       <el-table-column
         fixed
         fixed
-        prop="stationName"
+        prop="platformAreaName"
         label="台区名称"
         label="台区名称"
         width=""
         width=""
       ></el-table-column>
       ></el-table-column>
       <el-table-column
       <el-table-column
-        prop="stationCode"
+        prop="platformAreaCode"
         label="台区编号"
         label="台区编号"
         width=""
         width=""
       ></el-table-column>
       ></el-table-column>
       <el-table-column
       <el-table-column
-        prop="stationAddress"
+        prop="platformAreaAddress"
         label="台区地址"
         label="台区地址"
         width=""
         width=""
       ></el-table-column>
       ></el-table-column>
-      <el-table-column prop="pointNum" label="点位数量" width="">
+      <el-table-column prop="siteCount" label="点位数量" width="">
         <template #default="scope">
         <template #default="scope">
-          <span @click="goSiteList">{{ scope.row.pointNum }}</span>
-          <!-- <router-link style="margin-right:15px;" :to="{ path:'siteList',query:{id:scope.row.stationName}}">
-              {{ scope.row.pointNum }}
+          <span @click="goSiteList">{{ scope.row.siteCount }}</span>
+          <!-- <router-link style="margin-right:15px;" :to="{ path:'siteList',query:{id:scope.row. platformAreaName}}">
+              {{ scope.row.siteCount }}
             </router-link> -->
             </router-link> -->
         </template>
         </template>
       </el-table-column>
       </el-table-column>
       <el-table-column
       <el-table-column
-        prop="deviceNum"
+        prop="deviceCount"
         label="挂载设备数量"
         label="挂载设备数量"
         width="350"
         width="350"
       ></el-table-column>
       ></el-table-column>
@@ -96,46 +96,20 @@
 </template>
 </template>
 
 
 <script>
 <script>
-import { defineComponent, ref, reactive } from 'vue'
+import { defineComponent, ref, reactive,onMounted } from 'vue'
+import * as api from '@/api/stationManage/index.js'
+import { ElMessage } from 'element-plus'
+
 import DialogComponent from './dialogComponent'
 import DialogComponent from './dialogComponent'
 import siteList from './siteList'
 import siteList from './siteList'
 
 
 export default defineComponent({
 export default defineComponent({
   components: { DialogComponent, siteList },
   components: { DialogComponent, siteList },
   setup(props, context) {
   setup(props, context) {
-    const input = ref('请输入台区名称')
+    const platformAreaName = ref('')
     const pageShow = ref(true)
     const pageShow = ref(true)
     const showDialog = ref(false)
     const showDialog = ref(false)
-    const tableData = ref([
-      {
-        stationName: '台区1',
-        stationCode: 'tq02',
-        stationAddress: '青浦区徐泾镇',
-        pointNum: '8',
-        deviceNum: '10',
-      },
-      {
-        stationName: '台区1',
-        stationCode: 'tq02',
-        stationAddress: '青浦区徐泾镇',
-        pointNum: '8',
-        deviceNum: '10',
-      },
-      {
-        stationName: '台区1',
-        stationCode: 'tq02',
-        stationAddress: '青浦区徐泾镇',
-        pointNum: '8',
-        deviceNum: '10',
-      },
-      {
-        stationName: '台区1',
-        stationCode: 'tq02',
-        stationAddress: '青浦区徐泾镇',
-        pointNum: '8',
-        deviceNum: '10',
-      },
-    ])
+    const tableData = ref([])
 
 
     const goSiteList = () => {
     const goSiteList = () => {
       pageShow.value = !pageShow.value
       pageShow.value = !pageShow.value
@@ -166,9 +140,9 @@ export default defineComponent({
     const addItem = () => {
     const addItem = () => {
       tableItem.value = {
       tableItem.value = {
         id: '',
         id: '',
-        stationName: '',
-        stationCode: '',
-        stationAddress: '',
+         platformAreaName: '',
+        platformAreaCode: '',
+        platformAreaAddress: '',
         siteList: [],
         siteList: [],
         done: '',
         done: '',
         guaZai: '',
         guaZai: '',
@@ -177,6 +151,36 @@ export default defineComponent({
       dialogTitle.value = '新增'
       dialogTitle.value = '新增'
       showDialog.value = true
       showDialog.value = true
     }
     }
+
+    //台区列表
+    function platformList() {
+      api.platformList().then((requset) => {
+          if (requset.status === 'SUCCESS') {
+            console.log(requset.data)
+            tableData.value = requset.data
+            // total.value = requset.data.total
+            // store.state.siteList = tableData
+          } else {
+            ElMessage.error(requset.msg)
+          }
+        })
+    }
+    //查询设备列表
+    function SearchData() {
+      api.platformList({
+          "platformAreaName": platformAreaName.value,
+        })
+        .then((requset) => {
+          alert(1)
+          if (requset.status === 'SUCCESS') {
+            tableData.value = requset.data.records
+            // total.value = requset.data.total
+          } else {
+            ElMessage.error(requset.msg)
+          }
+        })
+    }
+
     // 编辑操作
     // 编辑操作
     const editRow = (row) => {
     const editRow = (row) => {
       console.log(row)
       console.log(row)
@@ -195,16 +199,20 @@ export default defineComponent({
       alert(index)
       alert(index)
     }
     }
 
 
+    onMounted(() => {
+      platformList()
+    })
+
     return {
     return {
       tableData,
       tableData,
-      input,
+      platformAreaName,
       pageShow,
       pageShow,
       dialogTitle,
       dialogTitle,
       showDialog,
       showDialog,
       props,
       props,
       context,
       context,
       tableItem,
       tableItem,
-
+      SearchData,
       goSiteList,
       goSiteList,
       getMsgFormSon,
       getMsgFormSon,
       headClass,
       headClass,