CN-868 fix: 修复report customize类别下endTime选取逻辑不对的问题
This commit is contained in:
@@ -8,7 +8,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="right-box__container">
|
<div class="right-box__container">
|
||||||
<div class="container__form">
|
<div class="container__form">
|
||||||
<el-form ref="userForm" :model="editObject" :rules="rules" label-position="top" label-width="120px">
|
<el-form ref="reportForm" :model="editObject" :rules="rules" label-position="top" label-width="120px">
|
||||||
<!--name-->
|
<!--name-->
|
||||||
<el-form-item :label="$t('report.name')" prop="name">
|
<el-form-item :label="$t('report.name')" prop="name">
|
||||||
<el-input id="account-input-name" v-model="editObject.name" maxlength="64" placeholder=" " show-word-limit size="small" type="text"></el-input>
|
<el-input id="account-input-name" v-model="editObject.name" maxlength="64" placeholder=" " show-word-limit size="small" type="text"></el-input>
|
||||||
@@ -76,7 +76,6 @@
|
|||||||
:disabled="!!editObject.id"
|
:disabled="!!editObject.id"
|
||||||
:disabled-date="startDisabledDate"
|
:disabled-date="startDisabledDate"
|
||||||
@change="startTimeChang"
|
@change="startTimeChang"
|
||||||
@focus="startFocus"
|
|
||||||
prefix-icon="cn-icon cn-icon-shijian"
|
prefix-icon="cn-icon cn-icon-shijian"
|
||||||
type="datetime"
|
type="datetime"
|
||||||
placeholder=" "
|
placeholder=" "
|
||||||
@@ -96,7 +95,6 @@
|
|||||||
:disabled="!!editObject.id"
|
:disabled="!!editObject.id"
|
||||||
:disabled-date="endDisabledDate"
|
:disabled-date="endDisabledDate"
|
||||||
@change="endTimeChange"
|
@change="endTimeChange"
|
||||||
@focus="endFocus"
|
|
||||||
prefix-icon="cn-icon cn-icon-shijian"
|
prefix-icon="cn-icon cn-icon-shijian"
|
||||||
type="datetime"
|
type="datetime"
|
||||||
placeholder=" "
|
placeholder=" "
|
||||||
@@ -283,28 +281,8 @@ import { api } from '@/utils/api'
|
|||||||
import _ from 'lodash'
|
import _ from 'lodash'
|
||||||
import { get, post, put } from '@/utils/http'
|
import { get, post, put } from '@/utils/http'
|
||||||
import { dateFormat, getMillisecond } from '@/utils/date-util'
|
import { dateFormat, getMillisecond } from '@/utils/date-util'
|
||||||
import { ref } from 'vue'
|
import { ref, getCurrentInstance } from 'vue'
|
||||||
const paramValidator = (rule, value, callback) => {
|
import i18n from '@/i18n'
|
||||||
let validate = true
|
|
||||||
if (value && value.length > 0) {
|
|
||||||
const hasEmpty = value.some(v => {
|
|
||||||
return !v.value && v.value !== 0
|
|
||||||
})
|
|
||||||
validate = !hasEmpty
|
|
||||||
}
|
|
||||||
return validate
|
|
||||||
}
|
|
||||||
const nameValidator = (rule, value, callback) => {
|
|
||||||
let validate = true
|
|
||||||
const reg = /^[\u4e00-\u9fa5A-Za-z0-9\-\_]*$/
|
|
||||||
if (reg.test(value)) {
|
|
||||||
validate = true
|
|
||||||
} else {
|
|
||||||
validate = false
|
|
||||||
}
|
|
||||||
return validate
|
|
||||||
}
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'ReportBox',
|
name: 'ReportBox',
|
||||||
mixins: [rightBoxMixin],
|
mixins: [rightBoxMixin],
|
||||||
@@ -313,32 +291,21 @@ export default {
|
|||||||
currentCategoryId: Number
|
currentCategoryId: Number
|
||||||
},
|
},
|
||||||
setup () {
|
setup () {
|
||||||
|
const { proxy } = getCurrentInstance()
|
||||||
|
|
||||||
const startTime = ref('')
|
const startTime = ref('')
|
||||||
const endTime = ref('')
|
const endTime = ref('')
|
||||||
const focus = ref('')
|
|
||||||
const focusDate = ref('')
|
|
||||||
function endTimeChange (val) {
|
function endTimeChange (val) {
|
||||||
endTime.value = val
|
endTime.value = val
|
||||||
}
|
}
|
||||||
function startTimeChang (val) {
|
function startTimeChang (val) {
|
||||||
startTime.value = val
|
startTime.value = val
|
||||||
}
|
}
|
||||||
function startFocus (val) {
|
|
||||||
focus.value = val.target.value
|
|
||||||
}
|
|
||||||
function endFocus (val) {
|
|
||||||
focusDate.value = val.target.value
|
|
||||||
}
|
|
||||||
const endDisabledDate = (time) => {
|
const endDisabledDate = (time) => {
|
||||||
if (time.getTime() > new Date()) {
|
if (time.getTime() > new Date()) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
if (startTime.value != '' && startTime.value > time) {
|
if (startTime.value !== '' && startTime.value > time) {
|
||||||
return true
|
|
||||||
}
|
|
||||||
if (focusDate.value != '' && endTime.value > time) {
|
|
||||||
return false
|
|
||||||
} else if (endTime.value != '' && endTime.value < time) {
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -346,22 +313,71 @@ export default {
|
|||||||
if (time.getTime() > new Date()) {
|
if (time.getTime() > new Date()) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
if (focus.value != '' && startTime.value > time) {
|
if (endTime.value !== '' && endTime.value < time) {
|
||||||
return false
|
|
||||||
} else if (startTime.value != '' && startTime.value > time) {
|
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
if (endTime.value != '' && endTime.value < time) {
|
}
|
||||||
return true
|
|
||||||
|
const paramValidator = (rule, value, callback) => {
|
||||||
|
let validate = true
|
||||||
|
if (value && value.length > 0) {
|
||||||
|
const hasEmpty = value.some(v => {
|
||||||
|
return !v.value && v.value !== 0
|
||||||
|
})
|
||||||
|
validate = !hasEmpty
|
||||||
}
|
}
|
||||||
|
return validate
|
||||||
|
}
|
||||||
|
const nameValidator = (rule, value, callback) => {
|
||||||
|
let validate = true
|
||||||
|
const reg = /^[\u4e00-\u9fa5A-Za-z0-9\-\_]*$/
|
||||||
|
validate = reg.test(value)
|
||||||
|
return validate
|
||||||
|
}
|
||||||
|
const startTimeValidator = (rule, value, callback) => {
|
||||||
|
const form = proxy.$refs.reportForm
|
||||||
|
if (form.model.config.endTime) {
|
||||||
|
form.validateField('config.endTime', () => null)
|
||||||
|
}
|
||||||
|
callback()
|
||||||
|
}
|
||||||
|
const endTimeValidator = (rule, value, callback) => {
|
||||||
|
let validate = true
|
||||||
|
if (startTime.value !== '' && value <= startTime.value) {
|
||||||
|
validate = false
|
||||||
|
}
|
||||||
|
return validate
|
||||||
|
}
|
||||||
|
const rules = { // 表单校验规则
|
||||||
|
name: [
|
||||||
|
{ required: true, message: i18n.global.t('validate.required'), trigger: 'blur' },
|
||||||
|
{ validator: nameValidator, message: i18n.global.t('validate.onlyAllowNumberLetterChinese-_'), trigger: 'blur' }
|
||||||
|
],
|
||||||
|
categoryId: [
|
||||||
|
{ required: true, message: i18n.global.t('validate.required'), trigger: 'change' }
|
||||||
|
],
|
||||||
|
schedulerStart: [
|
||||||
|
{ required: true, message: i18n.global.t('validate.required'), trigger: 'change' }
|
||||||
|
],
|
||||||
|
'config.startTime': [
|
||||||
|
{ required: true, message: i18n.global.t('validate.required'), trigger: 'change' },
|
||||||
|
{ validator: startTimeValidator, trigger: 'change' }
|
||||||
|
],
|
||||||
|
'config.endTime': [
|
||||||
|
{ required: true, message: i18n.global.t('validate.required'), trigger: 'change' },
|
||||||
|
{ validator: endTimeValidator, message: i18n.global.t('validate.endTimeGreaterThanStart'), trigger: 'change' }
|
||||||
|
],
|
||||||
|
categoryParams: [
|
||||||
|
{ required: true, message: i18n.global.t('validate.required'), trigger: 'blur' },
|
||||||
|
{ validator: paramValidator, message: i18n.global.t('validate.required'), trigger: 'blur' }
|
||||||
|
]
|
||||||
}
|
}
|
||||||
return {
|
return {
|
||||||
endDisabledDate,
|
endDisabledDate,
|
||||||
startDisabledDate,
|
startDisabledDate,
|
||||||
startTimeChang,
|
startTimeChang,
|
||||||
endTimeChange,
|
endTimeChange,
|
||||||
startFocus,
|
rules
|
||||||
endFocus
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
data () {
|
data () {
|
||||||
@@ -391,28 +407,6 @@ export default {
|
|||||||
monthWeekdayCheckedAll: false,
|
monthWeekdayCheckedAll: false,
|
||||||
monthWeekdayIsIndeterminate: false,
|
monthWeekdayIsIndeterminate: false,
|
||||||
|
|
||||||
rules: { // 表单校验规则
|
|
||||||
name: [
|
|
||||||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' },
|
|
||||||
{ validator: nameValidator, message: this.$t('validate.onlyAllowNumberLetterChinese-_'), trigger: 'blur' }
|
|
||||||
],
|
|
||||||
categoryId: [
|
|
||||||
{ required: true, message: this.$t('validate.required'), trigger: 'change' }
|
|
||||||
],
|
|
||||||
schedulerStart: [
|
|
||||||
{ required: true, message: this.$t('validate.required'), trigger: 'change' }
|
|
||||||
],
|
|
||||||
'config.startTime': [
|
|
||||||
{ required: true, message: this.$t('validate.required'), trigger: 'change' }
|
|
||||||
],
|
|
||||||
'config.endTime': [
|
|
||||||
{ required: true, message: this.$t('validate.required'), trigger: 'change' }
|
|
||||||
],
|
|
||||||
categoryParams: [
|
|
||||||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' },
|
|
||||||
{ validator: paramValidator, message: this.$t('validate.required'), trigger: 'blur' }
|
|
||||||
]
|
|
||||||
},
|
|
||||||
paramsOptions: []
|
paramsOptions: []
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -592,7 +586,7 @@ export default {
|
|||||||
if (this.blockOperation.save) { return }
|
if (this.blockOperation.save) { return }
|
||||||
this.blockOperation.save = true
|
this.blockOperation.save = true
|
||||||
|
|
||||||
this.$refs.userForm.validate((valid) => {
|
this.$refs.reportForm.validate((valid) => {
|
||||||
if (valid) {
|
if (valid) {
|
||||||
let startTime = ''
|
let startTime = ''
|
||||||
let endTime = ''
|
let endTime = ''
|
||||||
|
|||||||
Reference in New Issue
Block a user