Bläddra i källkod

refactor(device): delete

Casper Dai 3 år sedan
förälder
incheckning
3241572ae0
2 ändrade filer med 51 tillägg och 32 borttagningar
  1. 21 14
      src/api/device.js
  2. 30 18
      src/views/platform/tenant/device/components/Device.vue

+ 21 - 14
src/api/device.js

@@ -74,22 +74,29 @@ export function updateDevice (data) {
   })
 }
 
-export function deleteDevice ({ id, name }) {
-  return send({
-    url: `/device/${id}/standbyDevice`,
-    method: 'GET',
-    params: { pageNum: 1, pageSize: 1 }
-  }).then(({ data }) => confirm(
-    data.length
-      ? `删除主设备后备份设备也将删除`
-      : `删除 ${name} ?`,
-    data.length
-      ? `删除 ${name}`
-      : null
-  )).then(() => messageSend({
+function deleteDeviceById (id) {
+  return messageSend({
     url: `/device/${id}`,
     method: 'DELETE'
-  }, '删除'))
+  }, '删除')
+}
+
+export function deleteDevice ({ id, name, masterId }) {
+  if (__SUB_DEVICE__) {
+    if (masterId) {
+      return confirm(`删除备份设备【${name}】?`).then(() => deleteDeviceById(id))
+    }
+    return send({
+      url: `/device/${id}/standbyDevice`,
+      method: 'GET',
+      params: { pageNum: 1, pageSize: 1 }
+    }).then(({ data }) => confirm(
+      data.length
+        ? `删除主设备【${name}】后备份设备也将删除`
+        : `删除设备【${name}】?`
+    )).then(() => deleteDeviceById(id))
+  }
+  return confirm(`删除设备【${name}】?`).then(() => deleteDeviceById(id))
 }
 
 export function getDevices (query, options) {

+ 30 - 18
src/views/platform/tenant/device/components/Device.vue

@@ -24,7 +24,6 @@
           class="u-width"
           :schema="productSelectSchema"
           placeholder="请选择配置"
-          :disabled="isSub"
         />
         <span class="c-grid-form__label u-required">序列号</span>
         <el-input
@@ -223,16 +222,31 @@ export default {
       this.onAdd()
     },
     onAdd () {
-      this.currObj = {
-        name: '',
-        productId: this.$master?.productId,
-        serialNumber: '',
-        mac: '',
-        range: ['07:00', '22:00'],
-        address: '',
-        longitude: '',
-        latitude: '',
-        tenant: this.tenant
+      if (this.isSub) {
+        const { productId, openTime, closeTime, address, longitude, latitude } = this.$master
+        this.currObj = {
+          name: '',
+          productId,
+          serialNumber: '',
+          mac: '',
+          range: [openTime, closeTime],
+          address,
+          longitude,
+          latitude,
+          tenant: this.tenant
+        }
+      } else {
+        this.currObj = {
+          name: '',
+          productId: '',
+          serialNumber: '',
+          mac: '',
+          range: ['07:00', '22:00'],
+          address: '',
+          longitude: '',
+          latitude: '',
+          tenant: this.tenant
+        }
       }
       this.$refs.editDialog.show()
     },
@@ -343,15 +357,13 @@ export default {
       })
     },
     onDelDevice (item) {
-      if (item.isMaster) {
-        deleteDevice(item).then(() => {
+      deleteDevice(item).then(() => {
+        if (item.isMaster) {
           this.$refs.table.decrease(1)
-        })
-      } else {
-        deleteDevice(item).then(() => {
+        } else {
           this.reloadSubDevices(item.parent)
-        })
-      }
+        }
+      })
     },
     reloadSubDevices (item) {
       item.loaded = false