Browse Source

电单车线下

panxiandiao_i 5 years ago
parent
commit
683c70d762

+ 8 - 10
src/router/index.js

@@ -526,16 +526,14 @@ export const constantRoutes = [
       path: 'HMvehicle',
       name: '电单车',
       component: () => import('@/views/virtualDevices/HMvehicle.vue'),
-      meta: { title: '电单车' },
-      children: [
-        {
-          path: 'HTvehicleCreate',
-          name: '新增电单车',
-          hidden: true,
-          component: () => import('@/views/virtualDevices/HMvehicleCreate.vue'),
-          meta: { title: '新增电单车' }
-        }
-      ]
+      meta: { title: '电单车' }
+    },
+    {
+      path: 'HMvehicle/HTvehicleCreate',
+      name: '新增电单车',
+      hidden: true,
+      component: () => import('@/views/virtualDevices/HMvehicleCreate.vue'),
+      meta: { title: '新增电单车' }
     }
     ]
   }

+ 1 - 1
src/views/projectManage/projectList/projectListIndex.vue

@@ -136,7 +136,7 @@ export default {
       }
       projectInit(this.queryListData).then(response => {
         this.list = response.data
-        this.total = this.list.length
+        this.total = response.total
         this.statusOptionss = response.query.processStatusEnumList
       })
     },

+ 1 - 3
src/views/projectManage/taskList/taskListIndex.vue

@@ -183,9 +183,7 @@ export default {
       // 任务list
       taskListGet({ bizId: this.bizJson }).then(response => {
         this.tableData = response.data
-        if (response.data) {
-          this.total = response.data.length
-        }
+        this.total = response.total
         this.loadingOnlineProcess = false
         // const processStatusEnumMap = this.processStatusEnumList.reduce((a, c) => {
         //   return {

+ 4 - 4
src/views/quality/qualityMeasurement.vue

@@ -800,10 +800,10 @@ export default {
     .fontScale >>> .el-table__header-wrapper .cell
       font-size 12px
       padding 0
-    .aside >>> .el-tree-node__content .el-tree-node__label
-      font-size 13px
-    .aside >>> .el-tree-node__children .el-tree-node__label
-      font-size 12px
+    // .aside >>> .el-tree-node__content .el-tree-node__label
+    //   font-size 13px
+    // .aside >>> .el-tree-node__children .el-tree-node__label
+    //   font-size 12px
     // .aside >>> .el-tree-node__children
     //   overflow auto
 </style>

+ 15 - 6
src/views/virtualDevices/HMvehicle.vue

@@ -1,5 +1,5 @@
 <template>
-  <div style="width: 100%;position: relative;">
+  <div style="width: 100%;">
     <div class="set-background">
       <div class="block">
         <el-form :model="queryCode">
@@ -29,6 +29,7 @@
           <div class="set-between">
             <el-button type="primary" size="medium" plain @click="dataQuery(queryCode)">搜索</el-button>
             <el-button type="primary" size="medium" plain @click="createdCode()">新增</el-button>
+            <el-button type="primary" size="medium" plain @click="oneKeyCreate()">一键创建</el-button>
           </div>
         </el-form>
         <div class="set-locate">
@@ -95,7 +96,7 @@
                 <div class="specail-lock">
                   <div :class="{ 'el-icon-lock': scope.row.lockStatus === 0 ,'el-icon-unlock': scope.row.lockStatus === 1}" @click="updateLock(scope.row.ecuId, scope.row.lockStatus, scope.row.isActive)" />
                   <div>
-                    <el-button size="mini" type="warning" plain @click="activate(scope.row.ecuId)">激活</el-button>
+                    <el-button size="mini" type="success" plain @click="activate(scope.row.ecuId)">激活</el-button>
                     <el-button size="mini" type="info" plain @click="offHmvirtual(scope.row.ecuId)">下线</el-button>
                     <el-button size="mini" type="danger" @click="dialogBug(scope.row.ecuId)">删除</el-button>
                     <el-button size="mini" type="primary">....</el-button>
@@ -118,15 +119,12 @@
         </div>
       </div>
     </div>
-    <keep-alive>
-      <router-view />
-    </keep-alive>
   </div>
 </template>
 
 <script>
 import { cityJson } from '@/views/virtualDevices/city'
-import { queryDeviceInfo, delHmVirtualDevice, offHmvirtualDevice, updateLockStatus, activeHmVirtualDevice } from '@/api/HMvehicle'
+import { createHmVirtualDevice, queryDeviceInfo, delHmVirtualDevice, offHmvirtualDevice, updateLockStatus, activeHmVirtualDevice } from '@/api/HMvehicle'
 
 export default {
   filters: {
@@ -185,6 +183,7 @@ export default {
       const params = { page: this.curIndex, pageSize: this.pageSize }
       queryDeviceInfo(params).then(res => {
         res.code === 200 ? this.tableData = res.data : this.errorFun(res.msg)
+        // this.total = res.data.length
         this.loading = false
       })
     },
@@ -200,6 +199,16 @@ export default {
         res.code === 200 ? this.tableData = res.data : this.errorFun(res.msg)
       })
     },
+    oneKeyCreate() {
+      createHmVirtualDevice(this.form).then(res => {
+        if (res.code === 200) {
+          this.successFun('create')
+          this._queryDeviceInfo()
+        } else {
+          this.errorFun(res.msg)
+        }
+      })
+    },
     createdCode() {
       this.$router.push({ name: '新增电单车', params: { formData: this.form }, query: { id: this.form.id }})
     },

+ 80 - 31
src/views/virtualDevices/HMvehicleCreate.vue

@@ -3,29 +3,29 @@
     <el-form ref="form" :model="form" hide-required-asterisk :rules="serviceDataRules">
       <div class="block">
         <el-form-item label="Eculd" prop="ecuId" :label-width="formLabelWidth">
-          <el-input v-model="form.ecuId" style="width: 35%;" autocomplete="off" />
+          <el-input v-model="form.ecuId" style="width: 35%;" autocomplete="off" placeholder="硬件中控ID" />
           <div class="tip"><p>13位数字 , 示例 : ECA0419070800454</p></div>
         </el-form-item>
         <el-form-item label="BatteryId" prop="batteryId" :label-width="formLabelWidth">
-          <el-input v-model="form.batteryId" style="width: 35%;" autocomplete="off" />
+          <el-input v-model="form.batteryId" style="width: 35%;" autocomplete="off" placeholder="电池ID" />
           <div class="tip"><p>13位数字 , 示例 : BAA3218101509005</p></div>
         </el-form-item>
         <el-form-item label="VehicleId" prop="vehicleId" :label-width="formLabelWidth">
-          <el-input v-model="form.vehicleId" style="width: 35%;" autocomplete="off" />
+          <el-input v-model="form.vehicleId" style="width: 35%;" autocomplete="off" placeholder="车辆ID" />
           <div class="tip"><p>8位数字 , 示例 : 92264605</p></div>
         </el-form-item>
         <el-form-item label="Imei" prop="imei" :label-width="formLabelWidth">
-          <el-input v-model="form.imei" style="width: 35%;" autocomplete="off" />
+          <el-input v-model="form.imei" style="width: 35%;" autocomplete="off" placeholder="终端IMEI码" />
           <div class="tip"><p>15位数字 , 示例 : 967047046635466</p></div>
         </el-form-item>
         <el-form-item label="Imsi" prop="imsi" :label-width="formLabelWidth">
-          <el-input v-model="form.imsi" style="width: 35%;" autocomplete="off" />
+          <el-input v-model="form.imsi" style="width: 35%;" autocomplete="off" placeholder="终端IMSI码" />
           <div class="tip"><p>15位数字 , 示例 : 960046550508466</p></div>
         </el-form-item>
       </div>
       <div class="block">
         <el-form-item label="City" prop="cityName" :label-width="formLabelWidth">
-          <el-select v-model="form.cityName" style="width: 35%;" filterable placeholder="请选择">
+          <el-select v-model="form.cityName" style="width: 35%;" filterable clearable placeholder="请选择城市">
             <el-option
               v-for="item in city"
               :key="item.CityID"
@@ -35,27 +35,31 @@
           </el-select>
         </el-form-item>
         <el-form-item label="Lat" prop="lat" :label-width="formLabelWidth">
-          <el-input v-model="form.lat" style="width: 35%;" autocomplete="off" />
+          <el-input v-model="form.lat" style="width: 35%;" autocomplete="off" placeholder="纬度" />
           <div class="tip"><p>保留15位小数 , 示例 : 30.290707717493753</p></div>
         </el-form-item>
         <el-form-item label="Lng" prop="lng" :label-width="formLabelWidth">
-          <el-input v-model="form.lng" style="width: 35%;" autocomplete="off" />
+          <el-input v-model="form.lng" style="width: 35%;" autocomplete="off" placeholder="经度" />
           <div class="tip"><p>保留15位小数 , 示例 : 120.07451533496764</p></div>
         </el-form-item>
       </div>
       <div class="block">
         <el-form-item label="VehicleVersion" :label-width="formLabelWidth">
-          <el-input v-model="form.vehicleVersion" style="width: 35%;" autocomplete="off" />
+          <el-input v-model="form.vehicleVersion" style="width: 35%;" autocomplete="off" placeholder="整车版本" />
+          <div class="tip"><p>H1、H2等等,默认给H1</p></div>
         </el-form-item>
         <el-form-item label="VehicleStatus" :label-width="formLabelWidth">
-          <el-input v-model="form.vehicleStatus" style="width: 35%;" autocomplete="off" />
+          <el-input v-model="form.vehicleStatus" style="width: 35%;" autocomplete="off" placeholder="车辆状态" />
+          <div class="tip"><p>默认给0,0-正常;1-故障;2-高危不可用;10-低危;11-高危可用</p></div>
         </el-form-item>
         <el-form-item label="OperationStatus" :label-width="formLabelWidth">
-          <el-input v-model="form.operationStatus" style="width: 35%;" autocomplete="off" />
+          <el-input v-model="form.operationStatus" style="width: 35%;" autocomplete="off" placeholder="运营状态" />
+          <el-tooltip effect="dark" content="默认给100,100:运营中; 200:待运营-出厂; 201:待运营-库存; 202:待运营-移库; 301:停运-调度中; 304:停运-没收; 306:停运-已返厂; 307:停运-在库; 400:退出运营-报废" placement="top">
+            <div class="tip"><p>默认给100,100:运营中; 200:待运营-出厂; 201:待运营-库存 ...</p></div>
+          </el-tooltip>
         </el-form-item>
         <el-form-item class="submit">
           <el-button size="mini" type="primary" @click="createFormData(form)">确 认</el-button>
-          <el-button size="mini" type="success" @click="oneKeyCreate()">一键创建</el-button>
           <el-button size="mini" type="danger" @click="$router.go(-1)">取 消</el-button>
         </el-form-item>
       </div>
@@ -89,24 +93,75 @@ export default {
   methods: {
     // 提交表单并且返回刷新
     createFormData(form) {
-      if (this.form.ecuId || this.form.batteryId || this.form.imei || this.form.imsi || this.form.vehicleId) {
-        this.$refs.form.validateField(['ecuId', 'batteryId', 'imei', 'imsi', 'vehicleId'], (valid) => {
-          if (!valid) {
-            console.log('Timer')
-          // createHmVirtualDevice(form).then(res => {
-          //   if (res.code === 200) {
-          //     this.successFun('create')
-          //     this.$router.go(-1)
-          //   } else {
-          //     this.errorFun(res.msg)
-          //   }
-          // })
+      if (!this.form.cityName && !this.form.lat && !this.form.lng && (this.form.ecuId || this.form.batteryId || this.form.imei || this.form.imsi || this.form.vehicleId)) {
+        console.log(1)
+        const fieldsToValidate = ['ecuId', 'batteryId', 'imei', 'imsi', 'vehicleId']
+        const _self = this
+        Promise.all(fieldsToValidate.map(item => {
+          const p = new Promise(function(resolve, reject) {
+            _self.$refs.form.validateField(item, (error) => {
+              resolve(error)
+            })
+          })
+          return p
+        })).then((data) => {
+          if (JSON.stringify(data) === '["","","","",""]') {
+            this.oneKeyCreate()
+          } else {
+            this.errorFun('还有未填写的数据')
           }
+        // data 里是各个字段的验证错误信息, 如果为空串则认为验证通过, 如果数组里全为空串则所有验证通过
+        // 判断data 里是否全是空串
         })
+        return
+      } else if (!this.form.ecuId && !this.form.batteryId && !this.form.imei && !this.form.imsi && !this.form.vehicleId && (this.form.cityName || this.form.lat || this.form.lng)) {
+        console.log(2)
+        const fieldsToValidate = ['cityName', 'lat', 'lng']
+        const _self = this
+        Promise.all(fieldsToValidate.map(item => {
+          const p = new Promise(function(resolve, reject) {
+            _self.$refs.form.validateField(item, (error) => {
+              resolve(error)
+            })
+          })
+          return p
+        })).then((data) => {
+          if (JSON.stringify(data) === '["","",""]') {
+            this.oneKeyCreate()
+          } else {
+            this.errorFun('还有未填写的数据')
+          }
+        // data 里是各个字段的验证错误信息, 如果为空串则认为验证通过, 如果数组里全为空串则所有验证通过
+        // 判断data 里是否全是空串
+        })
+        return
+      } else if ((this.form.ecuId || this.form.batteryId || this.form.imei || this.form.imsi || this.form.vehicleId) && (this.form.cityName || this.form.lat || this.form.lng)) {
+        console.log(3)
+        const fieldsToValidate = ['ecuId', 'batteryId', 'imei', 'imsi', 'vehicleId', 'cityName', 'lat', 'lng']
+        const _self = this
+        Promise.all(fieldsToValidate.map(item => {
+          const p = new Promise(function(resolve, reject) {
+            _self.$refs.form.validateField(item, (error) => {
+              resolve(error)
+            })
+          })
+          return p
+        })).then((data) => {
+          if (JSON.stringify(data) === '["","","","","","","",""]') {
+            this.oneKeyCreate()
+          } else {
+            this.errorFun('还有未填写的数据')
+          }
+        // data 里是各个字段的验证错误信息, 如果为空串则认为验证通过, 如果数组里全为空串则所有验证通过
+        // 判断data 里是否全是空串
+        })
+        return
+      } else {
+        this.oneKeyCreate()
       }
     },
     oneKeyCreate() {
-      createHmVirtualDevice({}).then(res => {
+      createHmVirtualDevice(this.form).then(res => {
         if (res.code === 200) {
           this.successFun('create')
           this.$router.go(-1)
@@ -131,12 +186,6 @@ export default {
     display flex
     justify-content center
     min-width 700px
-    position: absolute
-    z-index: 2000
-    left 0
-    right 0
-    bottom 0
-    top 0
   .set-background >>> .el-form
     width 100%
     overflow auto