Просмотр исходного кода

feat: css and some apis

.l-flex_self
change .c-preview to .c-dialog--transparent
player onTimeUpdate -> onPlaying
table expand column add refresh prop
adjust some routes
adjust some styles
Casper Dai 3 лет назад
Родитель
Сommit
e015b55de8
33 измененных файлов с 159 добавлено и 204 удалено
  1. 1 6
      src/components/Schedule/ScheduleCalendar/index.vue
  2. 1 1
      src/components/dialog/PreviewDialog/index.vue
  3. 1 1
      src/components/dialog/ProgramDialog/index.vue
  4. 1 1
      src/components/dialog/ScheduleDialog/index.vue
  5. 34 26
      src/components/external/player.js
  6. 1 1
      src/components/table/CTable/index.vue
  7. 1 1
      src/components/table/GridTable/GridTableBody.vue
  8. 3 2
      src/components/table/Table/Column.vue
  9. 1 1
      src/components/table/Table/index.vue
  10. 12 5
      src/router/index.js
  11. 24 52
      src/scss/bem/_component.scss
  12. 6 0
      src/scss/bem/_layout.scss
  13. 1 0
      src/views/bigscreen/ast/Designer.vue
  14. 2 11
      src/views/bigscreen/ast/components/DynamicItem.vue
  15. 4 3
      src/views/device/detail/components/DeviceAlarm.vue
  16. 4 4
      src/views/device/detail/components/DeviceInfo.vue
  17. 37 19
      src/views/device/detail/index.vue
  18. 3 3
      src/views/device/index.vue
  19. 1 4
      src/views/device/record/index.vue
  20. 1 3
      src/views/device/timeline/index.vue
  21. 1 1
      src/views/platform/profile/index.vue
  22. 1 0
      src/views/realm/ai-timing/components/GroupTimingTable.vue
  23. 6 4
      src/views/realm/device/Device.vue
  24. 6 4
      src/views/realm/device/Group.vue
  25. 0 29
      src/views/realm/device/config/api.js
  26. 0 0
      src/views/realm/device/settings/api.js
  27. 0 0
      src/views/realm/device/settings/components/ContentProtectionConfigDialog.vue
  28. 0 0
      src/views/realm/device/settings/components/DeviceNormalConfig.vue
  29. 0 0
      src/views/realm/device/settings/components/RecordConfigDialog.vue
  30. 3 19
      src/views/realm/device/settings/index.vue
  31. 1 1
      src/views/review/history/index.vue
  32. 1 1
      src/views/review/workflow/index.vue
  33. 1 1
      src/views/review/workflow/mine/index.vue

+ 1 - 6
src/components/Schedule/ScheduleCalendar/index.vue

@@ -48,7 +48,7 @@
     </div>
     <component
       :is="activeComponent"
-      class="c-schedule-calendar__main"
+      class="l-flex__self"
       :editable="editable"
       :weeks="weeks"
       :cursor="weekIndex"
@@ -149,11 +149,6 @@ export default {
     font-weight: bold;
   }
 
-  &__main {
-    flex: 0 1 auto;
-    min-height: 0;
-  }
-
   &__mode {
     border-radius: $radius--mini;
     background-color: #f4f7f8;

+ 1 - 1
src/components/dialog/PreviewDialog/index.vue

@@ -1,7 +1,7 @@
 <template>
   <el-dialog
     :visible.sync="showDetail"
-    custom-class="c-preview"
+    custom-class="c-dialog--transparent"
     :close-on-click-modal="false"
     v-bind="$attrs"
     v-on="$listeners"

+ 1 - 1
src/components/dialog/ProgramDialog/index.vue

@@ -13,7 +13,7 @@
       :program="program"
     />
     <i
-      class="l-flex__none c-dialog--preview__close el-icon-close u-bold u-pointer"
+      class="l-flex__none c-dialog--preview__close has-active el-icon-close u-bold u-pointer"
       @click="onCloseScheduleDialog"
     />
   </el-dialog>

+ 1 - 1
src/components/dialog/ScheduleDialog/index.vue

@@ -14,7 +14,7 @@
       :schedule="scheduleId"
     />
     <i
-      class="l-flex__none c-dialog--preview__close el-icon-close u-bold u-pointer"
+      class="l-flex__none c-dialog--preview__close el-icon-close has-active u-bold u-pointer"
       @click="onCloseScheduleDialog"
     />
   </el-dialog>

+ 34 - 26
src/components/external/player.js

@@ -16,20 +16,26 @@ export default {
     return {
       poster: videoPoster,
       needPause: this.controls && !this.autoplay,
-      paused: false,
+      paused: true,
       loading: false,
+      waiting: false,
       needReset: true
     }
   },
   computed: {
     statusIconClass () {
-      if (this.loading) {
-        return 'el-icon-loading'
-      }
-      if (this.needReset) {
-        return 'el-icon-refresh'
+      switch (true) {
+        case this.loading:
+          return 'el-icon-loading'
+        case this.needReset:
+          return 'el-icon-refresh has-active'
+        case this.waiting:
+          return 'el-icon-loading has-active'
+        case this.paused:
+          return 'el-icon-video-play has-active'
+        default:
+          return 'el-icon-video-pause has-active'
       }
-      return this.paused ? 'el-icon-video-play has-active' : 'el-icon-video-pause has-active'
     },
     isPlaying () {
       return !(this.loading || this.needReset || this.controls && this.paused)
@@ -48,19 +54,19 @@ export default {
     },
     playUrl (url) {
       if (mpegtsjs.isSupported()) {
+        this.loading = true
         this.needReset = false
-        const player = mpegtsjs.createPlayer({
-          type: 'flv',
-          isLive: true,
-          hasAudio: false,
-          url
-        })
-        player.on(mpegtsjs.Events.ERROR, e => {
-          console.log('mpegtsjs', mpegtsjs.Events.ERROR, e)
-          this.destroyPlayer()
-        })
-
         try {
+          const player = mpegtsjs.createPlayer({
+            type: 'flv',
+            isLive: true,
+            hasAudio: false,
+            url
+          })
+          player.on(mpegtsjs.Events.ERROR, e => {
+            console.log('mpegtsjs', mpegtsjs.Events.ERROR, e)
+            this.destroyPlayer()
+          })
           this.$player = player
           this.onVideoWaiting()
           player.attachMediaElement(this.$refs.video)
@@ -77,9 +83,10 @@ export default {
       clearTimeout(this.$timer)
       this.needReset = true
       this.loading = false
+      this.waiting = false
+      this.paused = true
       const player = this.$player
       if (player) {
-        this.paused = true
         player.pause()
         player.unload()
         player.detachMediaElement()
@@ -149,7 +156,6 @@ export default {
       this.paused = false
       if (this.loading) {
         this.loading = false
-        clearTimeout(this.$timer)
         if (this.needPause) {
           this.$player.pause()
         }
@@ -158,15 +164,17 @@ export default {
     onVideoPause () {
       console.log('onVideoPause')
       this.paused = true
+      if (this.waiting) {
+        this.waiting = false
+        clearTimeout(this.$timer)
+      }
     },
     onVideoWaiting () {
       console.log('onVideoWaiting')
-      if (!this.loading) {
-        this.loading = true
-      }
+      this.waiting = true
       clearTimeout(this.$timer)
       this.$timer = setTimeout(() => {
-        if (this.loading) {
+        if (this.loading || this.waiting) {
           this.destroyPlayer()
           this.$message({
             type: 'warning',
@@ -177,8 +185,8 @@ export default {
     },
     onVideoPlaying () {
       console.log('onVideoPlaying')
-      if (this.loading) {
-        this.loading = false
+      if (this.waiting) {
+        this.waiting = false
         clearTimeout(this.$timer)
       }
     },

+ 1 - 1
src/components/table/CTable/index.vue

@@ -9,7 +9,7 @@
     </div>
     <el-table
       ref="table"
-      class="l-flex--col c-table__main"
+      class="l-flex__self l-flex--col"
       :data="options.list"
       v-bind="$attrs"
       @row-click="onClick"

+ 1 - 1
src/components/table/GridTable/GridTableBody.vue

@@ -18,7 +18,7 @@ export default {
   },
   render (h) {
     return h('div', {
-      staticClass: `l-grid ${this.size} c-table__main u-overflow-y--auto`
+      staticClass: `l-flex__self l-grid ${this.size} u-overflow-y--auto`
     }, this.itemRender && this.data?.map(this.itemRender))
   }
 }

+ 3 - 2
src/components/table/Table/Column.vue

@@ -19,7 +19,7 @@ export default {
       const { render } = this.schema
       return h('el-table-column', {
         props: {
-          width: 50,
+          width: 48,
           'label-class-name': 'o-refresh-header',
           ...props
         },
@@ -41,13 +41,14 @@ export default {
       })
     },
     renderExpandColumn (h, props) {
-      const { render } = this.schema
+      const { refresh, render } = this.schema
       return h('el-table-column', {
         props: {
           type: 'expand',
           ...props
         },
         scopedSlots: {
+          header: refresh ? this.renderRefreshColumnHeader : null,
           default ({ store, row }) {
             return render(row, store.$createElement)
           }

+ 1 - 1
src/components/table/Table/index.vue

@@ -74,7 +74,7 @@
     </div>
     <el-table
       ref="table"
-      class="l-flex--col c-table__main"
+      class="l-flex__self l-flex--col"
       :data="tableData"
       v-bind="$attrs"
       v-on="$listeners"

+ 12 - 5
src/router/index.js

@@ -169,9 +169,9 @@ export const asyncRoutes = [
         meta: { title: '我的流程' }
       },
       {
-        name: 'schedule-deploy-history',
+        name: 'deploy-history',
         path: 'history',
-        component: () => import('@/views/schedule/history/index'),
+        component: () => import('@/views/review/history/index'),
         access: [Access.MANAGE_CALENDAR, Access.MANAGE_GROUP],
         meta: { title: '发布历史' }
       }
@@ -285,9 +285,16 @@ export const asyncRoutes = [
           },
           {
             hidden: true,
-            name: 'device-config',
-            path: ':id',
-            component: () => import('@/views/realm/device/config/index'),
+            name: 'device-management-detail',
+            path: 'detail/:id',
+            component: () => import('@/views/device/detail/index'),
+            meta: { title: '详情', cache: 'DeviceManagement' }
+          },
+          {
+            hidden: true,
+            name: 'device-management-settings',
+            path: 'settings/:id',
+            component: () => import('@/views/realm/device/settings/index'),
             access: Access.MANAGE_TENANTS,
             meta: { title: '配置', cache: 'DeviceManagement' }
           }

+ 24 - 52
src/scss/bem/_component.scss

@@ -6,6 +6,7 @@
   min-height: 240px;
   max-height: 80%;
   margin-top: 10vh !important;
+  margin-bottom: 0;
   border-radius: 16px;
 
   &.large {
@@ -74,7 +75,7 @@
   height: 100%;
   min-height: 540px;
   margin-top: 0 !important;
-  margin-bottom: 0 !important;
+  margin-bottom: 0;
   box-shadow: none;
   background-color: transparent;
 
@@ -97,7 +98,6 @@
     padding: 16px;
     color: $black;
     font-size: 24px;
-    z-index: 9;
   }
 
   .el-dialog__header {
@@ -105,7 +105,6 @@
   }
 
   .el-dialog__body {
-    flex: 0 1 auto;
     display: flex;
     flex-direction: column;
     position: relative;
@@ -116,6 +115,28 @@
   }
 }
 
+.c-dialog--transparent {
+  display: flex;
+  flex-direction: column;
+  justify-content: center;
+  align-items: center;
+  width: 80%;
+  height: 80%;
+  margin-top: 10vh !important;
+  margin-bottom: 0;
+  box-shadow: none;
+  background-color: transparent;
+
+  .el-dialog__header {
+    display: none;
+  }
+
+  .el-dialog__body {
+    min-height: 0;
+    padding: 0;
+  }
+}
+
 .c-lock {
   .el-loading-spinner > i {
     font-size: 48px;
@@ -155,12 +176,6 @@
     }
   }
 
-  &__main {
-    flex: 0 1 auto;
-    min-height: 0;
-    min-width: 0;
-  }
-
   &__btn {
     display: inline-block;
     position: relative;
@@ -352,49 +367,6 @@
   background-color: transparent;
 }
 
-.c-preview {
-  display: flex;
-  flex-direction: column;
-  justify-content: center;
-  align-items: center;
-  width: 80%;
-  height: 80%;
-  margin-top: 10vh !important;
-  box-shadow: none;
-  background-color: transparent;
-
-  &.schedule {
-    min-width: 800px;
-    align-items: stretch;
-
-    .el-dialog__body {
-      display: flex;
-      min-height: 300px;
-      background-color: #fff;
-    }
-  }
-
-  &__close {
-    position: absolute;
-    top: 0;
-    right: 0;
-    padding: 16px;
-    color: $black;
-    font-size: 24px;
-  }
-
-  .el-dialog__header {
-    display: none;
-  }
-
-  .el-dialog__body {
-    flex: 0 1 auto;
-    min-height: 0;
-    padding: 0;
-    text-align: center;
-  }
-}
-
 .c-thumbnail-col .cell {
   display: flex;
   justify-content: center;

+ 6 - 0
src/scss/bem/_layout.scss

@@ -17,6 +17,12 @@
     min-height: 0;
   }
 
+  &__self {
+    flex: 0 1 auto;
+    min-width: 0;
+    min-height: 0;
+  }
+
   &__none {
     flex: none;
   }

+ 1 - 0
src/views/bigscreen/ast/Designer.vue

@@ -199,6 +199,7 @@
           <dynamic-item
             v-for="item in tab.list"
             :key="item.key"
+            class="c-sibling-item--v far"
             :root="node"
             :node="widget"
             :attr="item"

+ 2 - 11
src/views/bigscreen/ast/components/DynamicItem.vue

@@ -1,9 +1,9 @@
 <template>
   <div
     v-if="isDisplay"
-    class="c-dynamic-item"
+    class="l-flex c-dynamic-item"
   >
-    <span class="c-dynamic-item__name">{{ attrName }}</span>
+    <span class="l-flex__none c-dynamic-item__name">{{ attrName }}</span>
     <el-input-number
       v-if="isNumber"
       v-model="node[attrKey]"
@@ -278,22 +278,13 @@ export default {
 
 <style lang="scss" scoped>
 .c-dynamic-item {
-  display: flex;
-
-  & + & {
-    margin-top: $spacing;
-  }
-
   &__name {
-    flex: none;
     width: 60px;
     color: #bfcbd9;
     font-size: 12px;
   }
 
   &__value {
-    flex: 0 1 auto;
-    align-self: center;
     min-width: 0;
 
     ::v-deep .el-input__inner,

+ 4 - 3
src/views/device/detail/components/DeviceAlarm.vue

@@ -48,14 +48,15 @@ export default {
         cols: [
           { type: 'refresh' },
           { prop: 'asset', label: '截图', type: 'asset', on: this.onView },
-          { prop: 'type', label: '类型' },
+          { prop: 'type', label: '类型', 'min-width': 120 },
           { prop: 'handle', label: '处理方式' },
           { prop: 'status', label: '处理结果', type: 'tag' },
           ...AlarmStrategies.map(key => {
             return {
               prop: key,
               label: `${AlarmStrategy[key]}通知`,
-              type: 'tag'
+              type: 'tag',
+              'min-width': 100
             }
           }),
           { prop: 'happenTime', label: '时间', 'min-width': 120 }
@@ -89,7 +90,7 @@ export default {
     },
     getType (type) {
       if (type >= 1101 && type <= 1116) {
-        return '分割器异常'
+        type = 1000
       }
       return Alarm[type] || '-'
     },

+ 4 - 4
src/views/device/detail/components/DeviceInfo.vue

@@ -22,14 +22,14 @@
       </div>
     </div>
     <div class="l-flex--row c-info__block">
-      <div class="l-flex--row l-flex__fill c-info__item">
-        <div class="l-flex__none c-info__title">MAC</div>
-        <div class="l-flex__fill c-info__value">{{ device.mac }}</div>
-      </div>
       <div class="l-flex--row l-flex__fill c-info__item">
         <div class="l-flex__none c-info__title">序列号</div>
         <div class="l-flex__fill c-info__value">{{ device.serialNumber }}</div>
       </div>
+      <div class="l-flex--row l-flex__fill c-info__item">
+        <div class="l-flex__none c-info__title">MAC</div>
+        <div class="l-flex__fill c-info__value">{{ device.mac }}</div>
+      </div>
     </div>
     <div class="l-flex--row c-info__block">
       <div class="l-flex--row l-flex__fill c-info__item">

+ 37 - 19
src/views/device/detail/index.vue

@@ -5,8 +5,12 @@
     fill
   >
     <div class="l-flex__none c-detail__header">
-      <template v-if="device">
-        <div class="l-flex--row has-padding">
+      <div class="l-flex--row has-padding">
+        <i
+          class="l-flex__none o-icon medium o-icon--back el-icon-arrow-left u-bold u-pointer"
+          @click="onBack"
+        />
+        <template v-if="device">
           <i
             v-if="useDashboard"
             class="c-sibling-item c-detail__dashboard el-icon-full-screen has-active u-pointer"
@@ -22,21 +26,22 @@
             class="c-sibling-item c-detail__name u-bold"
             :text="deviceName"
           />
-        </div>
-        <el-tabs
-          v-model="active"
-          class="c-tabs padding"
-        >
-          <el-tab-pane
-            v-for="tab in tabs"
-            :key="tab.key"
-            :label="tab.label"
-            :name="tab.key"
-          />
-        </el-tabs>
-      </template>
+        </template>
+      </div>
+      <el-tabs
+        v-if="device"
+        v-model="active"
+        class="c-tabs padding"
+      >
+        <el-tab-pane
+          v-for="tab in tabs"
+          :key="tab.key"
+          :label="tab.label"
+          :name="tab.key"
+        />
+      </el-tabs>
       <warning
-        v-if="!loading && !device"
+        v-else-if="!loading"
         @click="getDevice"
       />
     </div>
@@ -154,6 +159,21 @@ export default {
     stop()
   },
   methods: {
+    onBack () {
+      console.log(this.$route.name)
+      switch (this.$route.name) {
+        case 'device-management-detail':
+          this.$router.replace({
+            name: 'device-management'
+          })
+          break
+        default:
+          this.$router.replace({
+            name: 'device-list'
+          })
+          break
+      }
+    },
     getDevice () {
       this.loading = true
       const id = this.deviceId
@@ -173,9 +193,7 @@ export default {
               type: 'warning',
               message: '设备不存在'
             })
-            this.$router.replace({
-              name: 'device-list'
-            })
+            this.onBack()
           }
         }
       }).finally(() => {

+ 3 - 3
src/views/device/index.vue

@@ -64,9 +64,9 @@ export default {
             return data.empty ? h('span', { staticClass: 'u-color--info' }, '暂无备份设备') : data.name
           } },
           { prop: 'productName', label: '产品' },
-          { prop: 'serialNumber', label: '序列号', 'min-width': 100 },
-          { prop: 'mac', label: 'MAC', 'min-width': 100 },
-          { prop: 'address', label: '地址' },
+          { prop: 'serialNumber', label: '序列号' },
+          { prop: 'mac', label: 'MAC' },
+          { prop: 'address', label: '地址', 'min-width': 100 },
           { type: 'tag', 'width': 100, render ({ empty, activate, onlineStatus }) {
             return empty
               ? null

+ 1 - 4
src/views/device/record/index.vue

@@ -33,7 +33,7 @@
         </div>
       </div>
       <div
-        class="c-record-grid u-overflow-y--auto"
+        class="l-flex__self c-record-grid u-overflow-y--auto"
         :class="gridClass"
       >
         <device-player
@@ -131,13 +131,10 @@ export default {
 }
 
 .c-record-grid {
-  flex: 0 1 auto;
   display: grid;
   grid-template-rows: max-content;
   grid-row-gap: 4px;
   grid-column-gap: 4px;
-  min-height: 0;
-  min-width: 0;
 
   &.one {
     grid-template-columns: 1fr;

+ 1 - 3
src/views/device/timeline/index.vue

@@ -81,7 +81,7 @@
           />
         </div>
       </div>
-      <div class="l-flex--col c-timeline__main u-relative">
+      <div class="l-flex__self l-flex--col c-timeline__main u-relative">
         <div class="l-flex__auto u-overflow-y--auto">
           <div
             v-for="item in deviceOptions.list"
@@ -506,8 +506,6 @@ export default {
   min-height: 400px;
 
   &__main {
-    flex: 0 1 auto;
-    min-height: 0;
     border: 1px solid $border;
   }
 

+ 1 - 1
src/views/platform/profile/index.vue

@@ -99,7 +99,7 @@
     </div>
     <el-dialog
       :visible.sync="showQr"
-      custom-class="c-preview"
+      custom-class="c-dialog--transparent"
       :close-on-click-modal="false"
     >
       <div class="c-wechat has-padding">

+ 1 - 0
src/views/realm/ai-timing/components/GroupTimingTable.vue

@@ -47,6 +47,7 @@ export default {
           { prop: 'name', label: '设备名称', 'min-width': 120 },
           { prop: 'serialNumber', label: '序列号' },
           { prop: 'mac', label: 'MAC' },
+          { prop: 'address', label: '地址' },
           { type: 'invoke', width: 180, render: [
             { label: '服务配置', on: this.onDeviceServiceConfig },
             { label: '回采记录', on: this.onDeviceHistory }

+ 6 - 4
src/views/realm/device/Device.vue

@@ -115,6 +115,7 @@ export default {
       ratio: null,
       productSelectSchema,
       schema: {
+        keepalive: true,
         condition: { productId: void 0, name: '', tenant: this.group.path },
         list: getDevicesByAdmin,
         transform: this.transform,
@@ -139,6 +140,7 @@ export default {
             return data.empty ? h('span', { staticClass: 'u-color--info' }, '暂无备份设备') : data.name
           } },
           { prop: 'productName', label: '产品' },
+          { prop: 'address', label: '地址', 'min-width': 100 },
           { type: 'tag', 'width': 100, render ({ empty, activate, onlineStatus }) {
             return empty
               ? null
@@ -161,7 +163,7 @@ export default {
           }, on: this.onTagClick },
           { type: 'invoke', width: 240, render: [
             { label: '查看', render ({ empty }) { return !empty }, on: this.onViewDevice },
-            { label: '配置', render ({ isMaster }) { return isMaster }, on: this.onConfig },
+            { label: '配置', render ({ isMaster }) { return isMaster }, on: this.onSettingDevice },
             { label: '添加备份', render ({ isMaster }) { return isMaster }, on: this.onAddSubDevice },
             { label: '删除', render ({ empty }) { return !empty }, on: this.onDelDevice }
           ] }
@@ -297,7 +299,7 @@ export default {
     },
     onViewDevice (item) {
       this.$router.push({
-        name: 'device-detail',
+        name: 'device-management-detail',
         params: {
           id: item.id
         }
@@ -367,9 +369,9 @@ export default {
         }
       })
     },
-    onConfig ({ id }) {
+    onSettingDevice ({ id }) {
       this.$router.push({
-        name: 'device-config',
+        name: 'device-management-settings',
         params: { id }
       })
     }

+ 6 - 4
src/views/realm/device/Group.vue

@@ -22,7 +22,7 @@ import {
   activateDevice,
   deactivateDevice
 } from '@/api/device'
-import RecordConfigDialog from './config/components/RecordConfigDialog'
+import RecordConfigDialog from './settings/components/RecordConfigDialog'
 
 export default {
   name: 'GroupDeviceManagement',
@@ -32,6 +32,7 @@ export default {
   data () {
     return {
       schema: {
+        keepalive: true,
         condition: { name: '', tenant: this.$store.getters.tenant },
         list: getDevicesByAdmin,
         transform: this.transform,
@@ -52,8 +53,9 @@ export default {
             return data.empty ? h('span', { staticClass: 'u-color--info' }, '暂无备份设备') : data.name
           } },
           { prop: 'productName', label: '产品' },
-          { prop: 'serialNumber', label: '序列号', 'min-width': 100 },
-          { prop: 'mac', label: 'MAC', 'min-width': 100 },
+          { prop: 'serialNumber', label: '序列号' },
+          { prop: 'mac', label: 'MAC' },
+          { prop: 'address', label: '地址', 'min-width': 100 },
           { type: 'tag', 'width': 100, render ({ empty, activate, onlineStatus }) {
             return empty
               ? null
@@ -105,7 +107,7 @@ export default {
     },
     onViewDevice (item) {
       this.$router.push({
-        name: 'device-detail',
+        name: 'device-management-detail',
         params: {
           id: item.id
         }

+ 0 - 29
src/views/realm/device/config/api.js

@@ -1,29 +0,0 @@
-import {
-  add,
-  update,
-  send
-} from '@/api/base'
-
-export function getRecordConfig (deviceId) {
-  return send({
-    url: '/deviceStream/config',
-    method: 'GET',
-    params: { deviceId }
-  })
-}
-
-export function addRecordConfig (data) {
-  return add({
-    url: '/deviceStream/config',
-    method: 'POST',
-    data
-  })
-}
-
-export function updateRecordConfig (data) {
-  return update({
-    url: '/deviceStream/config',
-    method: 'PUT',
-    data
-  })
-}

+ 0 - 0
src/views/realm/device/api.js → src/views/realm/device/settings/api.js


+ 0 - 0
src/views/realm/device/config/components/ContentProtectionConfigDialog.vue → src/views/realm/device/settings/components/ContentProtectionConfigDialog.vue


+ 0 - 0
src/views/realm/device/config/components/DeviceNormalConfig.vue → src/views/realm/device/settings/components/DeviceNormalConfig.vue


+ 0 - 0
src/views/realm/device/config/components/RecordConfigDialog.vue → src/views/realm/device/settings/components/RecordConfigDialog.vue


+ 3 - 19
src/views/realm/device/config/index.vue → src/views/realm/device/settings/index.vue

@@ -8,7 +8,7 @@
       <template v-if="device">
         <div class="l-flex--row has-padding">
           <i
-            class="l-flex__none c-device-config__back el-icon-arrow-left u-bold u-pointer"
+            class="l-flex__none o-icon medium o-icon--back el-icon-arrow-left u-bold u-pointer"
             @click="onBack"
           />
           <auto-text
@@ -50,14 +50,14 @@
 
 <script>
 import { getDevice } from '@/api/device'
-import DeviceNormalConfig from './components/DeviceNormalConfig'
 import Transmitter from '@/views/device/detail/components/external/Transmitter'
 import ReceivingCard from '@/views/device/detail/components/external/ReceivingCard'
 import Camera from '@/views/device/detail/components/external/Camera'
 import Gateway from '@/views/device/detail/components/external/Gateway'
+import DeviceNormalConfig from './components/DeviceNormalConfig'
 
 export default {
-  name: 'DeviceConfig',
+  name: 'DeviceSettings',
   components: {
     DeviceNormalConfig,
     Transmitter,
@@ -134,22 +134,6 @@ export default {
     background-color: #fff;
   }
 
-  &__back {
-    display: inline-flex;
-    justify-content: center;
-    align-items: center;
-    width: 36px;
-    height: 36px;
-    margin-right: 6px;
-    font-size: 18px;
-    border-radius: 50%;
-    transition: background-color 0.4s;
-
-    &:hover {
-      background-color: $gray--light;
-    }
-  }
-
   &__name {
     color: $black;
     font-size: 20px;

+ 1 - 1
src/views/schedule/history/index.vue → src/views/review/history/index.vue

@@ -36,7 +36,7 @@ export default {
         list: getPublishHistory,
         transform: this.transform,
         cols: [
-          { type: 'expand', render (data, h) {
+          { type: 'expand', refresh: true, render (data, h) {
             return h('div', {
               staticClass: 'o-info'
             }, [

+ 1 - 1
src/views/review/workflow/index.vue

@@ -31,7 +31,7 @@ export default {
         list: getPublishWorkflows,
         transform: this.transform,
         cols: [
-          { type: 'expand', render (data, h) {
+          { type: 'expand', refresh: true, render (data, h) {
             return h('div', {
               staticClass: 'o-info'
             }, [

+ 1 - 1
src/views/review/workflow/mine/index.vue

@@ -81,7 +81,7 @@ export default {
         list: getMyWorkflows,
         transform: this.transform,
         cols: [
-          { type: 'expand', render: this.renderRelative },
+          { type: 'expand', refresh: true, render: this.renderRelative },
           { prop: 'type', label: '类型', align: 'center', width: 100 },
           { prop: 'name', label: '', 'min-width': 100 },
           { prop: 'updateTime', label: this.active === `${State.SUBMITTED}` ? '提交时间' : '审批时间' },