Browse Source

fix(deploy): intercut

Casper Dai 1 year ago
parent
commit
c7217675f6

+ 3 - 0
.env.fujian

@@ -10,5 +10,8 @@ __ALARM_SMS__ = 'enabled'
 VUE_APP_NAME = '万福千屏户外安播云平台'
 # VUE_APP_NAME = '安全宣教联播联控系统'
 
+# 万福使用,其他情况需屏蔽
+VUE_APP_THUMBNAIL_ORIGIN = 'http://192.168.10.10'
+
 VUE_APP_GAODE_MAP_RANGE_LEVEL = 'province'
 VUE_APP_GAODE_MAP_RANGE = '福建省'

+ 3 - 354
src/api/merchant.js

@@ -1,50 +1,14 @@
-import request, {
-  tenantRequest,
-  downloadRequest
-} from '@/utils/request.js'
-import {
-  Dataset,
-  State
-} from '@/constant.js'
-import {
-  parseTime,
-  getAssetThumb
-} from '@/utils'
+import request from '@/utils/request.js'
+import { State } from '@/constant.js'
+import { getAssetThumb } from '@/utils'
 import {
   send,
   add,
   del,
   update,
-  submit,
-  resolve,
-  messageSend,
-  confirmAndSend,
   addTenant
 } from './base.js'
 
-function download ({ data, headers }, fileName) {
-  const blob = new Blob([data], { type: headers['content-type'] })
-  const url = window.URL.createObjectURL(blob)
-  const dom = document.createElement('a')
-  dom.href = url
-  dom.download = decodeURI(fileName)
-  dom.style.display = 'none'
-  document.body.appendChild(dom)
-  dom.click()
-  dom.parentNode.removeChild(dom)
-  window.URL.revokeObjectURL(url)
-}
-
-export function resourceExport (data) {
-  return send({
-    url: '/minio-data/usage/count/export',
-    method: 'POST',
-    data
-  }, downloadRequest).then(response => {
-    download(response, `资源曝光率${parseTime(new Date(), '{y}{m}{d}{h}{i}{s}')}.zip`)
-  })
-}
-
 export function addMerchant (data) {
   return add({
     url: '/device/siteMerchantManage',
@@ -53,14 +17,6 @@ export function addMerchant (data) {
   })
 }
 
-export function getMerchantByKeyName (keyName) {
-  return send({
-    url: '/minio-data/queryById',
-    method: 'GET',
-    params: { keyName }
-  })
-}
-
 export function getMerchantByDeviceId (id) {
   return send({
     url: '/device/siteMerchantManage/deviceId',
@@ -178,310 +134,3 @@ export function getRegion (query) {
     }
   })
 }
-
-export function getAssetUrl (keyName) {
-  return `${process.env.VUE_APP_MINIO}/${keyName}`
-}
-
-const LIMIT_SIZE = 1024 * 1024
-export function getThumbnailUrl (item, option) {
-  let url
-  if (item && typeof item === 'object') {
-    const { size, keyName } = item
-    if (size <= LIMIT_SIZE) {
-      return getAssetUrl(keyName)
-    }
-    url = getAssetUrl(keyName)
-    option = getImageProxyOption(option, size)
-  } else {
-    url = getAssetUrl(item)
-    option = getImageProxyOption(option)
-  }
-  if (url.charAt(0) === '/') {
-    url = `${process.env.VUE_APP_THUMBNAIL_ORIGIN || location.origin}${url}`
-  }
-  return `${process.env.VUE_APP_THUMBNAIL}/${option}/${url}`
-}
-
-function getImageProxyOption (option, size) {
-  switch (option) {
-    case 'size':
-      return size ? `q${Math.ceil(LIMIT_SIZE * 100 / size)}` : 'q60'
-    default:
-      return option || 'x0.2,q30'
-  }
-}
-
-export function submitAsset ({ keyName, originalName }) {
-  return submit({
-    url: '/minio-data/submit',
-    method: 'GET',
-    params: { keyName }
-  }, originalName)
-}
-
-export function resolveAsset ({ keyName, originalName }) {
-  return resolve({
-    url: '/minio-data/reviewed',
-    method: 'GET',
-    params: { keyName }
-  }, originalName)
-}
-
-export function rejectAsset ({ keyName }, remark) {
-  return messageSend({
-    url: '/minio-data/reject',
-    method: 'POST',
-    data: { keyName, remark }
-  }, '驳回')
-}
-
-export function getAssetSubTags () {
-  return tenantRequest({
-    url: '/minio-data/subtag/queryList',
-    method: 'GET',
-    params: addTenant({})
-  })
-}
-
-export function getAssetSubTagsByTenant (query) {
-  const { pageNum: pageIndex, pageSize, ...params } = query
-  return tenantRequest({
-    url: '/minio-data/subtag/queryListPage',
-    method: 'GET',
-    params: addTenant({
-      pageIndex, pageSize,
-      ...params
-    })
-  })
-}
-
-export function addAssetSubTag (data) {
-  return add({
-    url: '/minio-data/subtag/add',
-    method: 'POST',
-    data: addTenant(data)
-  }, tenantRequest)
-}
-
-export function updateAssetSubTag (data) {
-  return update({
-    url: '/minio-data/subtag/modify',
-    method: 'PUT',
-    data
-  })
-}
-
-export function deleteAssetSubTag ({ id, name }) {
-  return del({
-    url: '/minio-data/subtag/delBatchByIds',
-    method: 'POST',
-    data: [id]
-  }, name)
-}
-
-export function deleteAssetSubTags (ids) {
-  return del({
-    url: '/minio-data/subtag/delBatchByIds',
-    method: 'POST',
-    data: ids
-  }, '所选标签')
-}
-
-export function getDatasets (query) {
-  const { pageNum: pageIndex, pageSize, ...params } = query
-  return tenantRequest({
-    url: '/media/dataset/pageQuery',
-    method: 'GET',
-    params: addTenant({
-      pageIndex, pageSize,
-      ...params
-    })
-  })
-}
-
-export function addDataset (data) {
-  return add({
-    url: '/media/dataset',
-    method: 'POST',
-    data: addTenant(data)
-  }, tenantRequest)
-}
-
-export function copyDataset (data) {
-  return messageSend({
-    url: '/media/dataset/copy',
-    method: 'POST',
-    data
-  }, '复制')
-}
-
-export function updateDataset (data) {
-  return update({
-    url: '/media/dataset',
-    method: 'PUT',
-    data
-  })
-}
-
-export function getFillDataset (id) {
-  return request({
-    url: `/media/dataset/${id}`,
-    params: {
-      type: Dataset.FILL,
-      flag: 1
-    }
-  })
-}
-
-export function getCommonDataset (id) {
-  return request({
-    url: '/media/dataset/order',
-    params: {
-      id,
-      flag: 1
-    }
-  })
-}
-
-export function deleteDataset ({ id, name }) {
-  return del({
-    url: `/media/dataset/${id}`,
-    method: 'DELETE'
-  }, name)
-}
-
-export function bindAssetsToDataset (datasetId, assets) {
-  return messageSend({
-    url: '/media/dataset/batchBindAsset',
-    method: 'POST',
-    data: assets.map(item => {
-      return {
-        datasetId,
-        ...item
-      }
-    })
-  }, '添加')
-}
-
-export function updateDatasetAssets (datasetId, assets) {
-  return update({
-    url: '/media/dataset/orderBindAsset',
-    method: 'POST',
-    data: {
-      id: datasetId,
-      relationList: assets
-    }
-  })
-}
-
-export function getDevicesByDataset (query) {
-  const { pageNum: pageIndex, pageSize, ...params } = query
-  return request({
-    url: '/media/dataset/pageQueryDevice',
-    method: 'GET',
-    params: {
-      pageIndex, pageSize,
-      ...params
-    }
-  })
-}
-
-export function countByDay (query) {
-  return request({
-    url: '/minio-data/usage/countByDay',
-    method: 'GET',
-    params: query
-  })
-}
-
-// 查询媒资执行队列
-export function listActivate (query) {
-  return request({
-    url: '/minio-data/mediaProcessTask/listActivate',
-    method: 'GET',
-    params: query
-  })
-}
-
-export function mediaList (query) {
-  const { pageNum: pageIndex, pageSize, ...params } = query
-  return tenantRequest({
-    url: '/minio-data/mediaProcessTask/pageQuery',
-    method: 'GET',
-    params: addTenant({
-      pageIndex, pageSize,
-      ...params
-    })
-  })
-}
-
-// 转换旧媒资
-export function secondaryTransList (data) {
-  return request({
-    url: '/minio-data/mediaProcessTask/batchSave',
-    method: 'POST',
-    data
-  })
-}
-
-export function treeLocation (data) {
-  return request({
-    url: '/minio-data/treeLocation',
-    method: 'PUT',
-    data
-  })
-}
-
-export function getDatasetByDevice (id) {
-  return request({
-    url: `/media/dataset/${id}`,
-    params: {
-      type: 1,
-      flag: 1
-    }
-  })
-}
-
-export function bindDatasetToDevice (data) {
-  return messageSend({
-    url: '/media/dataset/bindDevice',
-    method: 'POST',
-    data
-  }, '绑定')
-}
-
-export function unbindDatasetByDevice ({ id, name }) {
-  return confirmAndSend('解绑', name, {
-    url: '/media/dataset/batchUnbindDevice',
-    method: 'POST',
-    data: [id]
-  })
-}
-
-export function unbindDatasetByDevices (ids) {
-  return confirmAndSend('解绑', '所选设备', {
-    url: '/media/dataset/batchUnbindDevice',
-    method: 'POST',
-    data: ids
-  })
-}
-
-export function unbindAssetsFromDataset (datasetId, keyNames) {
-  return messageSend({
-    url: `/media/dataset/batchUnbindAsset/${datasetId}`,
-    method: 'POST',
-    data: keyNames
-  }, '移除')
-}
-
-export function updateDatasetAssetDuration (relationId, adDuration) {
-  return update({
-    url: '/media/dataset/assetChangDuration',
-    method: 'POST',
-    data: {
-      relationId,
-      adDuration
-    }
-  })
-}

+ 2 - 2
src/utils/adapter/monitor.js

@@ -19,8 +19,8 @@ import {
   getReceivingCardStatusByMessage
 } from './nova'
 
-const TIMEOUT_MILLISECOND = 120000
-const EXPIRED_MILLISECOND = 300000
+export const TIMEOUT_MILLISECOND = 120000
+export const EXPIRED_MILLISECOND = 300000
 
 const deviceCache = new Map()
 const cbMap = new Map()

+ 6 - 1
src/views/device/detail/components/DeviceInvoke/MultifunctionCardPowerSwitch.vue

@@ -93,6 +93,7 @@ import {
 } from '@/utils'
 import {
   Status,
+  TIMEOUT_MILLISECOND,
   GET_POWER_STATUS,
   SET_POWER_STATUS,
   GET_MULTI_POWER_TIMING,
@@ -291,6 +292,10 @@ export default {
     },
     invoke () {
       if (this.powerStatus !== Status.OK) {
+        this.$message({
+          type: 'warning',
+          message: '获取电源信息中,请稍后尝试'
+        })
         this.fetchPowerStatus()
         return
       }
@@ -300,7 +305,7 @@ export default {
     },
     onCacheMessage (value) {
       const multiCard = value[ThirdPartyDevice.MULTI_FUNCTION_CARD]
-      if (multiCard.status > Status.LOADING && Date.now() - multiCard.timestamp < 30000) {
+      if (multiCard.status > Status.LOADING && Date.now() - multiCard.timestamp < TIMEOUT_MILLISECOND) {
         this.powerStatus = multiCard.status
         this.$multiCard = multiCard
         if (this.$openDialog && this.active === GET_POWER_STATUS) {

+ 23 - 13
src/views/screen/deploy/device/index.vue

@@ -86,17 +86,18 @@
         </template>
         <template v-if="isIntercut">
           <div class="c-sibling-item--v near u-font-size--sm u-required">
-            插播时段
+            下架日期
+            <span class="u-color--info u-font-size--xs">
+              下架当日插播依然生效
+            </span>
           </div>
           <el-date-picker
-            v-model="rangeDate"
-            class="c-sibling-item--v nearer u-width--lg"
-            type="daterange"
-            range-separator="至"
-            start-placeholder="开始日期"
-            end-placeholder="结束日期"
+            v-model="intercutFinishDate"
+            class="c-sibling-item--v nearer u-width--sm"
             value-format="yyyy-MM-dd"
+            placeholder="选择日期"
             :clearable="false"
+            :picker-options="pickerOptions"
           />
         </template>
       </div>
@@ -165,6 +166,7 @@
 
 <script>
 import {
+  ONE_DAY,
   State,
   EventTarget,
   WorkflowType,
@@ -235,7 +237,7 @@ export default {
           label: EventPriorityInfo[EventPriority.EMERGENT]
         }
       ],
-      rangeDate: null,
+      intercutFinishDate: null,
       timeSchema: {
         nonPagination: true,
         props: {
@@ -342,6 +344,11 @@ export default {
     },
     selectedDeviceIds () {
       return this.selectedDevices.map(device => device.id)
+    },
+    pickerOptions () {
+      return {
+        disabledDate: date => date <= Date.now() - ONE_DAY
+      }
     }
   },
   methods: {
@@ -479,7 +486,10 @@ export default {
         let devices = []
         if (type === WorkflowType.INTERCUT) {
           this.eventType = PublishDataType.INTERCUT
-          this.rangeDate = [data.startDate, data.endDate]
+          const today = toDateStr(Date.now())
+          this.intercutFinishDate = today <= data.endDate
+            ? data.endDate
+            : null
 
           this.eventTarget = this.createEventTarget({
             name: data.name,
@@ -719,10 +729,10 @@ export default {
       })
     },
     getIntercutPublishData () {
-      if (!this.rangeDate?.length) {
+      if (!this.intercutFinishDate) {
         this.$message({
           type: 'warning',
-          message: '请选择插播时段'
+          message: '请选择下架日期'
         })
         return Promise.reject('invalid event, no time')
       }
@@ -734,8 +744,8 @@ export default {
 
       const { detail } = this.$refs.eventTargetPicker.getSnapshot()
       return Promise.resolve({
-        startDate: this.rangeDate[0],
-        endDate: this.rangeDate[0],
+        startDate: toDateStr(Date.now()),
+        endDate: this.intercutFinishDate,
         deviceIdList: this.selectedDevices.map(device => device.id),
         mediaInfoDtoList: eventTarget.sources.map(item => {
           return {