소스 검색

Merge branch 'master' of http://47.111.81.118:3000/xf15575941817/admin-fiveFollowing

fanghuisheng 3 년 전
부모
커밋
4d0851d7b5
2개의 변경된 파일269개의 추가작업 그리고 144개의 파일을 삭제
  1. 11 1
      src/api/siteManage/basicInfo.js
  2. 258 143
      src/views/siteManage/basicInfo/index.vue

+ 11 - 1
src/api/siteManage/basicInfo.js

@@ -16,4 +16,14 @@ export function dynamicPropertiesDroplist(params) {
 //         method: 'POST',
 //         data: params,
 //     })
-// }
+// }
+
+
+//站点基本信息-新增
+export function siteAdd(params) {
+    return request({
+        url: '/site/siteAdd',
+        method: 'POST',
+        data: params,
+    })
+}

+ 258 - 143
src/views/siteManage/basicInfo/index.vue

@@ -14,28 +14,28 @@
               <el-input v-model="ruleForm.siteName"></el-input>
             </el-form-item>
 
-            <el-form-item label="站点类型:" prop="name">
-              <el-input v-model="ruleForm.name"></el-input>
+            <el-form-item label="站点类型:" prop="siteType">
+              <el-input v-model="ruleForm.siteType"></el-input>
             </el-form-item>
-            <el-form-item label="用户公司:" prop="name">
-              <el-input v-model="ruleForm.name"></el-input>
+            <el-form-item label="用户公司:" prop="userCompany">
+              <el-input v-model="ruleForm.userCompany"></el-input>
             </el-form-item>
 
             <el-form-item
               label="投运时间:"
-              prop="planStartDate"
+              prop="operationTime"
               style="margin-top: 0px"
             >
               <el-date-picker
-                v-model="ruleForm.planStartDate"
+                v-model="ruleForm.operationTime"
                 width="100%"
                 type="datetime"
                 placeholder="选择日期时间"
               ></el-date-picker>
             </el-form-item>
-            <el-form-item label="服务截止:" prop="planEndDate">
+            <el-form-item label="服务截止:" prop="serviceDeadline">
               <el-date-picker
-                v-model="ruleForm.planEndDate"
+                v-model="ruleForm.serviceDeadline"
                 type="datetime"
                 placeholder="选择日期时间"
               ></el-date-picker>
@@ -44,23 +44,39 @@
             <el-form-item label="装机容量:" prop="installedCapacity">
               <el-input v-model="ruleForm.installedCapacity"></el-input>
             </el-form-item>
-            <el-form-item label="供电类型:" prop="resource">
-              <el-radio-group v-model="ruleForm.resource">
+            <el-form-item label="供电类型:" prop="powerSupplyType">
+              <el-radio-group v-model="ruleForm.powerSupplyType">
                 <el-radio label="单路"></el-radio>
                 <el-radio label="双路"></el-radio>
               </el-radio-group>
             </el-form-item>
-            <el-form-item label="电压等级:" prop="name">
-              <el-input v-model="ruleForm.name"></el-input>
+            <el-form-item label="电压等级:" prop="voltageLevel">
+              <el-input v-model="ruleForm.voltageLevel"></el-input>
             </el-form-item>
             <el-form-item label="站点地址:" prop="siteAddress">
               <el-input v-model="ruleForm.siteAddress"></el-input>
             </el-form-item>
-            <el-form-item label="所属台区:" prop="name">
-              <el-input v-model="ruleForm.name"></el-input>
+
+            <!-- <el-form-item label="所属台区:" prop="region">
+              <el-input v-model="ruleForm.region"></el-input>
+            </el-form-item> -->
+            <el-form-item label="所属台区" prop="region">
+              <el-radio-group v-model="ruleForm.region">
+                <el-radio label="宝山"></el-radio>
+                <el-radio label="嘉定"></el-radio>
+              </el-radio-group>
+            </el-form-item>
+
+            <el-form-item label="站点坐标:" prop="longitude">
+              <el-input v-model="ruleForm.longitude" placeholder="请输入经度">
+                <i
+                  :default-slot="suffix"
+                  class="el-input__icon el-icon-location-outline"
+                ></i>
+              </el-input>
             </el-form-item>
-            <el-form-item label="站点坐标:" prop="name">
-              <el-input v-model="ruleForm.name">
+            <el-form-item label="" prop="latitude">
+              <el-input v-model="ruleForm.latitude" placeholder="请输入维度">
                 <i
                   :default-slot="suffix"
                   class="el-input__icon el-icon-location-outline"
@@ -76,11 +92,11 @@
               <el-option label="监察2" value="2"></el-option>
             </el-select>
           </el-form-item> -->
-          <el-form-item label="折标准煤:" prop="name">
-            <el-input v-model="ruleForm.name"></el-input>
+          <el-form-item label="折标准煤:" prop="demolitionStandardCoal1">
+            <el-input v-model="ruleForm.demolitionStandardCoal1"></el-input>
           </el-form-item>
-          <el-form-item label="折标准煤:" prop="resource2">
-            <el-radio-group v-model="ruleForm.resource2">
+          <el-form-item label="折标准煤:" prop="demolitionStandardCoal">
+            <el-radio-group v-model="ruleForm.demolitionStandardCoal">
               <el-radio label="电力(等价)"></el-radio>
               <el-radio label="电力(当量)"></el-radio>
             </el-radio-group>
@@ -90,8 +106,8 @@
           <a class="goArchive">现场档案</a>
 
           <div class="blockTitle mt-60 mb-20">动态属性</div>
-          <el-form-item label="故障动态:" prop="gzdt">
-            <el-select v-model="ruleForm.gzdt" placeholder="请选择">
+          <el-form-item label="故障动态:" prop="faultStatus">
+            <el-select v-model="ruleForm.faultStatus" placeholder="请选择">
               <el-option
                 v-for="(item, index) in dropData"
                 :key="index"
@@ -101,8 +117,8 @@
             </el-select>
           </el-form-item>
 
-          <el-form-item label="实时负荷:" prop="ssfh">
-            <el-select v-model="ruleForm.ssfh" placeholder="请选择">
+          <el-form-item label="实时负荷:" prop="realTimeLoad">
+            <el-select v-model="ruleForm.realTimeLoad" placeholder="请选择">
               <el-option
                 v-for="(item, index) in dropData2"
                 :key="index"
@@ -112,8 +128,8 @@
             </el-select>
           </el-form-item>
 
-          <el-form-item label="总用电量:" prop="eleTotal">
-            <el-select v-model="ruleForm.eleTotal" placeholder="请选择">
+          <el-form-item label="总用电量:" prop="totalElectricity">
+            <el-select v-model="ruleForm.totalElectricity" placeholder="请选择">
               <el-option
                 v-for="(item, index) in dropData2"
                 :key="index"
@@ -123,8 +139,8 @@
             </el-select>
           </el-form-item>
 
-          <el-form-item label="功率因数:" prop="glys">
-            <el-select v-model="ruleForm.glys" placeholder="请选择">
+          <el-form-item label="功率因数:" prop="powerFactor">
+            <el-select v-model="ruleForm.powerFactor" placeholder="请选择">
               <el-option
                 v-for="(item, index) in dropData2"
                 :key="index"
@@ -140,47 +156,6 @@
               <!-- 站点照片start -->
               <div class="blockTitle mb-20">站点照片</div>
               <el-form-item label="选择文件:" prop="delivery">
-                <!-- <el-upload
-                  action="#"
-                  list-type="picture-card"
-                  :auto-upload="false"
-                  :limit="3"
-                >
-                  <i class="el-icon-plus"></i>
-                  <div>
-                    <span class="el-upload-list__item-actions">
-                      <span
-                        class="el-upload-list__item-preview"
-                        @click="handlePictureCardPreview(file)"
-                      ></span>
-                      <span
-                        v-if="!disabled"
-                        class="el-upload-list__item-delete"
-                        @click="handleRemove(file)"
-                      >
-                        <i class="el-icon-delete"></i>
-                      </span>
-                    </span>
-                  </div>
-                </el-upload> -->
-
-                <!-- <el-upload
-                  class="dl-avatar-uploader-min square"
-                  :action="uploadUrl"
-                  :on-success="handleUpAvatar"
-                  :on-remove="handleRemove"
-                  :show-file-list="fileList"
-                  :limit="3"
-                  list-type="picture-card"
-                  :headers="{ accessToken: [accessToken] }"
-                >
-                  <i class="el-icon-plus avatar-uploader-icon"></i>
-                </el-upload>
-
-                <el-dialog v-model="dialogVisible">
-                  <img width="100%" :src="dialogImageUrl" alt="" />
-                </el-dialog> -->
-
                 <el-upload
                   :action="uploadUrl"
                   :on-success="handleUpAvatar"
@@ -193,8 +168,8 @@
                 >
                   <i class="el-icon-plus"></i>
                 </el-upload>
-                <el-dialog v-model="dialogVisible"  width="400px">
-                  <img style="width:100%" :src="dialogImageUrl" alt="" />
+                <el-dialog v-model="dialogVisible" width="400px">
+                  <img style="width: 100%" :src="dialogImageUrl" alt="" />
                 </el-dialog>
               </el-form-item>
               <!-- 站点照片end -->
@@ -212,6 +187,7 @@
                 <el-input v-model="ruleForm.sparePhone"></el-input>
               </el-form-item>
             </div>
+            <br />
             <el-form-item>
               <el-button type="primary" @click="submitForm('formInfo')">
                 保存
@@ -230,9 +206,12 @@ import { defineComponent, ref, onMounted, reactive, toRefs } from 'vue'
 import * as api from '@/api/siteManage/basicInfo'
 import { ElMessage } from 'element-plus'
 
+import { useStore } from 'vuex'
+
 export default defineComponent({
   name: 'BasicInfo',
   setup() {
+    const store = useStore()
     const formInfo = ref(null)
     const dialogImageUrl = ref('')
     const dialogVisible = ref(false)
@@ -244,62 +223,48 @@ export default defineComponent({
     const dropData2 = ref([])
     const ruleForm = ref({
       siteName: '',
-      date1: '',
-      date2: '',
-      delivery: false,
-      type: [],
-      resource: '单路',
-      resource2: '电力(等价)',
-      desc: '',
-      planStartTime: '',
-      planEndTime: '',
-      gzdt:'',
-      ssfh:'',
-      eleTotal:'',
-      glys:'',
-    })
-    const rules = ref({
-      siteName: [
-        { required: true, message: '请输入站点名称', trigger: 'blur' },
-        { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' },
-      ],
-      installedCapacity: [
-        { required: true, message: '请输入装机容量', trigger: 'blur' },
-        { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' },
-      ],
-      siteAddress: [
-        { required: true, message: '请输入站点地址', trigger: 'blur' },
-        { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' },
-      ],
-      planStartDate: [
-        { required: true, message: '请选择开始日期', trigger: 'change' },
-      ],
-      planEndDate: [
-        { required: true, message: '请输入结束日期', trigger: 'change' },
-      ],
-      userName: [
-        { required: true, message: '请输入联系人1', trigger: 'blur' },
-        { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' },
-      ],
-      phone: [
-        { required: true, message: '请输入联系方式1', trigger: 'blur' },
-        { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' },
-      ],
-      spareUserName: [
-        { required: true, message: '请输入联系人2', trigger: 'blur' },
-        { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' },
-      ],
-      sparePhone: [
-        { required: true, message: '请输入联系方式2', trigger: 'blur' },
-        { min: 3, max: 5, message: '长度在 3 到 5 个字符', trigger: 'blur' },
-      ],
+      siteType: '',
+      userCompany: '',
+      operationTime: '',
+      serviceDeadline: '',
+      installedCapacity: '',
+      powerSupplyType: '单路',
+      voltageLevel: '',
+      siteAddress: '',
+      longitude: '',
+      latitude: '',
+      region: '宝山',
+
+      demolitionStandardCoal1: '',
+      demolitionStandardCoal: '电力(等价)',
+
+      faultStatus: '',
+      realTimeLoad: '',
+      totalElectricity: '',
+      powerFactor: '',
+
+      userName: '',
+      phone: '',
+      spareUserName: '',
+      sparePhone: '',
     })
 
+    /**
+     * 手机号校验
+     */
+    var validatorPhone = function (rule, value, callback) {
+      if (!/^1\d{10}$/.test(value)) {
+        callback(new Error('输入的电话号码不正确'))
+      } else {
+        callback()
+      }
+    }
+
     function handleRemove(file) {
       console.log(file)
     }
     function handlePictureCardPreview(file) {
-       console.log('file')
+      console.log('file')
       console.log(file)
       dialogImageUrl.value = file.url
       dialogVisible.value = true
@@ -320,16 +285,76 @@ export default defineComponent({
       console.log(dataSet.fileList)
     }
 
+    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
+        }
+        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]
+        }
+        if (result.length > 0 && value < 10) {
+          value = '0' + value
+        }
+        return value || 0
+      })
+    }
     //表单提交
     function submitForm() {
+      ruleForm.value.operationTime = parseTime(ruleForm.value.operationTime)
+      ruleForm.value.serviceDeadline = parseTime(ruleForm.value.serviceDeadline)
       formInfo.value.validate((valid) => {
         if (valid) {
-          // 走保存请求
-          this.$message({
-            message: '操作成功!',
-            type: 'success',
+          store
+          //  store.commit('TimeAll_function')
+          // const time = store.state.Time_Data
+          // ruleForm.value.operationTime = time[0]
+          // ruleForm.value.serviceDeadline = time[1]
+
+          api.siteAdd(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)
+            }
           })
-          this.closeDialog(1)
         } else {
           console.log('error submit!!')
           return false
@@ -341,29 +366,25 @@ export default defineComponent({
       formInfo.value.resetFields()
     }
 
-    //动态属性下拉请求
-    function dynamicPropertiesDroplist() {
-      api.dynamicPropertiesDroplist({ dataArea: 2 }).then((requset) => {
+    // 动态属性下拉请求
+    function dynamicPropertiesDroplist(dataArea) {
+      api.dynamicPropertiesDroplist({ dataArea: dataArea }).then((requset) => {
         if (requset.status === 'SUCCESS') {
-          dropData.value = requset.data
-        } else {
-          ElMessage.error(requset.msg)
-        }
-      })
-    }
-    //动态属性下拉请求 模拟量
-    function dynamicPropertiesDroplist2() {
-      api.dynamicPropertiesDroplist({ dataArea: 1 }).then((requset) => {
-        if (requset.status === 'SUCCESS') {
-          dropData2.value = requset.data
+          if (dataArea == 1) {
+            //模拟量
+            dropData2.value = requset.data
+          } else {
+            //状态量
+            dropData.value = requset.data
+          }
         } else {
           ElMessage.error(requset.msg)
         }
       })
     }
     onMounted(() => {
-      dynamicPropertiesDroplist()
-      dynamicPropertiesDroplist2()
+      dynamicPropertiesDroplist(2)
+      dynamicPropertiesDroplist(1)
     })
 
     return {
@@ -378,7 +399,101 @@ export default defineComponent({
 
       accessToken,
       ruleForm,
-      rules,
+      rules: {
+        siteName: [
+          { required: true, message: '请输入站点名称', trigger: 'blur' },
+          {
+            min: 3,
+            max: 11,
+            message: '长度在 3 到 11 个字符',
+            trigger: 'blur',
+          },
+        ],
+        siteType: [
+          { required: true, message: '请输入站点类型', trigger: 'blur' },
+        ],
+        userCompany: [
+          { required: true, message: '请输入用户公司', trigger: 'blur' },
+          {
+            min: 3,
+            max: 11,
+            message: '长度在 3 到 11 个字符',
+            trigger: 'blur',
+          },
+        ],
+        operationTime: [
+          { required: true, message: '请选择运投时间', trigger: 'change' },
+        ],
+        serviceDeadline: [
+          { required: true, message: '请选择服务截止时间', trigger: 'change' },
+        ],
+        installedCapacity: [
+          { required: true, message: '请输入装机容量', trigger: 'blur' },
+          {
+            min: 3,
+            max: 20,
+            message: '长度在 3 到 20 个字符',
+            trigger: 'blur',
+          },
+        ],
+        voltageLevel: [
+          { required: true, message: '请输入电压等级', trigger: 'blur' },
+        ],
+        siteAddress: [
+          { required: true, message: '请输入站点地址', trigger: 'blur' },
+          {
+            min: 3,
+            max: 11,
+            message: '长度在 3 到 11 个字符',
+            trigger: 'blur',
+          },
+        ],
+        longitude: [{ required: true, message: '请输入经度', trigger: 'blur' }],
+        latitude: [{ required: true, message: '请输入纬度', trigger: 'blur' }],
+        demolitionStandardCoal1: [
+          { required: true, message: '请输入折煤标准', trigger: 'blur' },
+        ],
+
+        userName: [
+          { required: true, message: '请输入联系人1', trigger: 'blur' },
+          {
+            min: 3,
+            max: 11,
+            message: '长度在 3 到 11 个字符',
+            trigger: 'blur',
+          },
+        ],
+        phone: [
+          {
+            required: true,
+            message: '请输入联系方式1',
+            trigger: 'blur',
+          },
+          {
+            validator: validatorPhone,
+            message: '输入的电话号码不正确',
+            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,
       handlePictureCardPreview,
       submitForm,