|
|
@@ -39,7 +39,7 @@
|
|
|
</template>
|
|
|
</c-dialog>
|
|
|
<task-dialog
|
|
|
- ref="editDialog"
|
|
|
+ ref="taskDialog"
|
|
|
:title="dialogTitle"
|
|
|
cron
|
|
|
single-time
|
|
|
@@ -97,11 +97,19 @@
|
|
|
|
|
|
<script>
|
|
|
import { mapGetters } from 'vuex'
|
|
|
-import { ThirdPartyDevice } from '@/constant'
|
|
|
-import { parseTime } from '@/utils'
|
|
|
import {
|
|
|
- addListener as adapterAddListener,
|
|
|
- removeListener as adapterRemoveListener
|
|
|
+ ThirdPartyDevice,
|
|
|
+ Frequency
|
|
|
+} from '@/constant'
|
|
|
+import {
|
|
|
+ parseTime,
|
|
|
+ transformToCron
|
|
|
+} from '@/utils'
|
|
|
+import {
|
|
|
+ addListener,
|
|
|
+ removeListener,
|
|
|
+ addInjectListener,
|
|
|
+ removeInjectListener
|
|
|
} from '@/utils/adapter'
|
|
|
import {
|
|
|
Status,
|
|
|
@@ -120,12 +128,7 @@ import {
|
|
|
savePowerLogger,
|
|
|
sendDeviceAlarm
|
|
|
} from '@/api/platform'
|
|
|
-import {
|
|
|
- addListener,
|
|
|
- removeListener
|
|
|
-} from '../../monitor'
|
|
|
import baseMixin from './mixins/base'
|
|
|
-import TaskDialog, { Freq } from './mixins/TaskDialog'
|
|
|
|
|
|
const ErrorMessage = {
|
|
|
TIMEOUT: '暂未获取到操作反馈,请回读查看',
|
|
|
@@ -149,9 +152,6 @@ const PowerAction = {
|
|
|
|
|
|
export default {
|
|
|
name: 'MultifunctionCardPowerSwitch',
|
|
|
- components: {
|
|
|
- TaskDialog
|
|
|
- },
|
|
|
mixins: [baseMixin],
|
|
|
data () {
|
|
|
return {
|
|
|
@@ -290,7 +290,7 @@ export default {
|
|
|
{ prop: 'freqInfo', label: '执行方式' },
|
|
|
{ label: '生效日期', render: ({ freq, startTime, endTime }) => {
|
|
|
switch (freq) {
|
|
|
- case Freq.ONCE:
|
|
|
+ case Frequency.ONCE:
|
|
|
return startTime
|
|
|
default:
|
|
|
return endTime === FOREVER ? '永久有效' : `${startTime} 至 ${endTime}`
|
|
|
@@ -318,13 +318,13 @@ export default {
|
|
|
}
|
|
|
},
|
|
|
mounted () {
|
|
|
- addListener('multifunction', this.onMessage)
|
|
|
- adapterAddListener(this.device.id, this.onCacheMessage)
|
|
|
+ addListener(this.device.id, this.onCacheMessage)
|
|
|
+ addInjectListener(this.device.id, this.onMessage)
|
|
|
},
|
|
|
beforeDestroy () {
|
|
|
this.$openDialog = false
|
|
|
- removeListener('multifunction', this.onMessage)
|
|
|
- adapterRemoveListener(this.device.id, this.onCacheMessage)
|
|
|
+ removeListener(this.device.id, this.onCacheMessage)
|
|
|
+ removeInjectListener(this.device.id, this.onMessage)
|
|
|
},
|
|
|
methods: {
|
|
|
isDisableDate (date) {
|
|
|
@@ -812,23 +812,23 @@ export default {
|
|
|
transfromDataToTask ({ type, flag, powerIndex, enable, startTime, endTime, cron }) {
|
|
|
const strArr = cron[0].split(' ')
|
|
|
const freq = strArr[3] === '*' && strArr[5] === '?'
|
|
|
- ? Freq.DAILY
|
|
|
+ ? Frequency.DAILY
|
|
|
: strArr[5] === '?'
|
|
|
- ? Freq.ONCE
|
|
|
- : Freq.WEEKLY
|
|
|
+ ? Frequency.ONCE
|
|
|
+ : Frequency.WEEKLY
|
|
|
return {
|
|
|
type, flag, powerIndex, enable, startTime, endTime,
|
|
|
freq,
|
|
|
freqInfo: this.getFreqInfo(freq, strArr[5]),
|
|
|
- dayOfWeek: freq === Freq.WEEKLY ? strArr[5] : '',
|
|
|
+ dayOfWeek: freq === Frequency.WEEKLY ? strArr[5] : '',
|
|
|
executeTime: `${strArr[2].padStart(2, '0')}:${strArr[1].padStart(2, '0')}:${strArr[0].padStart(2, '0')}`
|
|
|
}
|
|
|
},
|
|
|
getFreqInfo (freq, val = '') {
|
|
|
switch (freq) {
|
|
|
- case Freq.ONCE:
|
|
|
+ case Frequency.ONCE:
|
|
|
return '单次'
|
|
|
- case Freq.DAILY:
|
|
|
+ case Frequency.DAILY:
|
|
|
return '每天'
|
|
|
default:
|
|
|
return `每周${val.split(',').map(val => ['', '一', '二', '三', '四', '五', '六', '日'][val])}`
|
|
|
@@ -929,7 +929,7 @@ export default {
|
|
|
map[from.portIndex].commands.push({
|
|
|
conditions: [{
|
|
|
type, flag, action, powerIndex, enable, startTime, endTime,
|
|
|
- cron: [this.getCron(executeTime, freq, startTime, dayOfWeek)]
|
|
|
+ cron: [transformToCron(executeTime, freq, startTime, dayOfWeek)]
|
|
|
}]
|
|
|
})
|
|
|
})
|
|
|
@@ -958,7 +958,7 @@ export default {
|
|
|
}
|
|
|
map[from.portIndex].conditions.push({
|
|
|
type, flag, action, powerIndex, enable, startTime, endTime,
|
|
|
- cron: [this.getCron(executeTime, freq, startTime, dayOfWeek)]
|
|
|
+ cron: [transformToCron(executeTime, freq, startTime, dayOfWeek)]
|
|
|
})
|
|
|
})
|
|
|
savePowerLogger({
|
|
|
@@ -973,33 +973,10 @@ export default {
|
|
|
return {
|
|
|
type, powerIndex, enable, startTime, endTime,
|
|
|
status: action ^ 1,
|
|
|
- cron: [this.getCron(executeTime, freq, startTime, dayOfWeek)]
|
|
|
+ cron: [transformToCron(executeTime, freq, startTime, dayOfWeek)]
|
|
|
}
|
|
|
})
|
|
|
},
|
|
|
- // dayOfWeek,周一至周日对应1~7
|
|
|
- // 最终cron数据对应的为秒、分、时、日、月、星期、年,例如'30 0 12 14 11 ? 2022'
|
|
|
- getCron (executeTime, freq, startTime, dayOfWeek) {
|
|
|
- let suffix = null
|
|
|
- switch (freq) {
|
|
|
- case Freq.DAILY:
|
|
|
- suffix = ['*', '*', '?', '*']
|
|
|
- break
|
|
|
- case Freq.WEEKLY:
|
|
|
- suffix = ['?', '*', dayOfWeek, '*']
|
|
|
- break
|
|
|
- default:
|
|
|
- suffix = startTime.split('-').reverse()
|
|
|
- suffix.splice(2, 0, '?')
|
|
|
- break
|
|
|
- }
|
|
|
- return executeTime
|
|
|
- .split(':')
|
|
|
- .map(val => Number(val))
|
|
|
- .reverse()
|
|
|
- .concat(suffix)
|
|
|
- .join(' ')
|
|
|
- },
|
|
|
onToggle (task) {
|
|
|
this.hasChanged = true
|
|
|
task.flag = `${Date.now()}`
|
|
|
@@ -1012,7 +989,7 @@ export default {
|
|
|
this.taskTime = today
|
|
|
this.taskDate = [today, today]
|
|
|
this.taskAction = PowerAction.OPEN
|
|
|
- this.$refs.editDialog.show()
|
|
|
+ this.$refs.taskDialog.show()
|
|
|
},
|
|
|
onEdit (task) {
|
|
|
const { from, type, freq, dayOfWeek, executeTime, startTime, endTime, action } = task
|
|
|
@@ -1022,7 +999,7 @@ export default {
|
|
|
this.taskTime = startTime
|
|
|
this.taskDate = [startTime, endTime]
|
|
|
this.taskAction = action
|
|
|
- this.$refs.editDialog.show({ freq, dayOfWeek, executeTime })
|
|
|
+ this.$refs.taskDialog.show({ freq, dayOfWeek, executeTime })
|
|
|
},
|
|
|
onSave ({ value, done }) {
|
|
|
const { freq, executeTime, dayOfWeek = '' } = value
|
|
|
@@ -1042,14 +1019,14 @@ export default {
|
|
|
return
|
|
|
}
|
|
|
}
|
|
|
- if (freq !== Freq.ONCE && (!this.taskDate[0] || !this.taskDate[1]) || freq === Freq.ONCE && !this.taskTime) {
|
|
|
+ if (freq !== Frequency.ONCE && (!this.taskDate[0] || !this.taskDate[1]) || freq === Frequency.ONCE && !this.taskTime) {
|
|
|
this.$message({
|
|
|
type: 'warning',
|
|
|
message: '请选择生效日期'
|
|
|
})
|
|
|
return
|
|
|
}
|
|
|
- const endTime = freq === Freq.ONCE ? this.taskTime : this.taskDate[1]
|
|
|
+ const endTime = freq === Frequency.ONCE ? this.taskTime : this.taskDate[1]
|
|
|
if (this.isExpired({ endTime, executeTime })) {
|
|
|
this.$message({
|
|
|
type: 'warning',
|
|
|
@@ -1072,7 +1049,7 @@ export default {
|
|
|
freqInfo: this.getFreqInfo(freq, dayOfWeek),
|
|
|
executeTime,
|
|
|
dayOfWeek,
|
|
|
- startTime: freq === Freq.ONCE ? this.taskTime : this.taskDate[0],
|
|
|
+ startTime: freq === Frequency.ONCE ? this.taskTime : this.taskDate[0],
|
|
|
endTime,
|
|
|
flag: `${Date.now()}`
|
|
|
}
|