1
0
mirror of https://github.com/PanJiaChen/vue-element-admin.git synced 2025-08-10 20:39:48 +08:00

fix: Mandatory fields empty. (#456)

This commit is contained in:
Edwin Betancourt 2020-04-23 20:33:40 -04:00 committed by GitHub
parent 9d59700aa5
commit 0d7aa7c72f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 66 additions and 58 deletions

View File

@ -415,59 +415,7 @@ export const contextMixin = {
},
runAction(action) {
if (action.type === 'action') {
// run process or report
const fieldNotReady = this.$store.getters.isNotReadyForSubmit(this.$route.meta.uuid)
if (!fieldNotReady) {
let containerParams = this.$route.meta.uuid
if (this.lastParameter !== undefined) {
containerParams = this.lastParameter
}
let menuParentUuid = this.menuParentUuid
if (this.isEmptyValue(menuParentUuid) && this.$route.params) {
if (!this.isEmptyValue(this.$route.params.menuParentUuid)) {
menuParentUuid = this.$route.params.menuParentUuid
}
}
if (this.panelType === 'process') {
this.$store.dispatch('setTempShareLink', {
processId: this.$route.params.processId,
href: window.location.href
})
}
let reportFormat = action.reportExportType
if (this.isEmptyValue(reportFormat)) {
reportFormat = this.$route.query.reportType
if (this.isEmptyValue(reportFormat)) {
reportFormat = this.$route.meta.reportFormat
if (this.isEmptyValue(reportFormat)) {
reportFormat = 'html'
}
}
}
this.$store.dispatch(action.action, {
action,
parentUuid: this.containerUuid,
containerUuid: containerParams, // EVALUATE IF IS action.uuid
panelType: this.panelType, // determinate if get table name and record id (window) or selection (browser)
reportFormat, // this.$route.query.reportType ? this.$route.query.reportType : action.reportExportType,
menuParentUuid, // to load relationsList in context menu (report view)
routeToDelete: this.$route
})
.catch(error => {
console.warn(error)
})
} else {
this.showNotification({
type: 'warning',
title: this.$t('notifications.emptyValues'),
name: '<b>' + fieldNotReady.name + '.</b> ',
message: this.$t('notifications.fieldMandatory')
})
}
this.executeAction(action)
} else if (action.type === 'process') {
// run process associate with view (window or browser)
this.showModal(action)
@ -499,6 +447,64 @@ export const contextMixin = {
this.updateReport(action)
}
},
executeAction(action) {
let containerParams = this.$route.meta.uuid
if (this.lastParameter !== undefined) {
containerParams = this.lastParameter
}
const fieldsNotReady = this.$store.getters.getFieldListEmptyMandatory({
containerUuid: containerParams
})
// run process or report
if (this.isEmptyValue(fieldsNotReady)) {
let menuParentUuid = this.menuParentUuid
if (this.isEmptyValue(menuParentUuid) && this.$route.params) {
if (!this.isEmptyValue(this.$route.params.menuParentUuid)) {
menuParentUuid = this.$route.params.menuParentUuid
}
}
if (this.panelType === 'process') {
this.$store.dispatch('setTempShareLink', {
processId: this.$route.params.processId,
href: window.location.href
})
}
let reportFormat = action.reportExportType
if (this.isEmptyValue(reportFormat)) {
reportFormat = this.$route.query.reportType
if (this.isEmptyValue(reportFormat)) {
reportFormat = this.$route.meta.reportFormat
if (this.isEmptyValue(reportFormat)) {
reportFormat = 'html'
}
}
}
this.$store.dispatch(action.action, {
action,
parentUuid: this.containerUuid,
containerUuid: containerParams, // EVALUATE IF IS action.uuid
panelType: this.panelType, // determinate if get table name and record id (window) or selection (browser)
reportFormat, // this.$route.query.reportType ? this.$route.query.reportType : action.reportExportType,
menuParentUuid, // to load relationsList in context menu (report view)
routeToDelete: this.$route
})
.catch(error => {
console.warn(error)
})
} else {
this.showNotification({
type: 'warning',
title: this.$t('notifications.emptyValues'),
name: '<b>' + fieldsNotReady + '.</b> ',
message: this.$t('notifications.fieldMandatory'),
isRedirect: false
})
}
},
updateReport(action) {
let instanceUuid = action.instanceUuid
if (this.isEmptyValue(instanceUuid)) {

View File

@ -1049,7 +1049,7 @@ const panel = {
if (row) {
value = row[fieldItem.columnName]
}
if (fieldIsDisplayed(fieldItem) && isMandatory && !isEmptyValue(value)) {
if (fieldIsDisplayed(fieldItem) && isMandatory && isEmptyValue(value)) {
return true
}
})

View File

@ -20,7 +20,7 @@ export function hasTranslation(text) {
* @param {string} name
* @param {array} logs
*/
export function showNotification({ type, title, message, summary, name, logs = [] }) {
export function showNotification({ type, title, message, summary, name, logs = [], isRedirect = true }) {
title = hasTranslation(title)
if (message) {
message = hasTranslation(message)
@ -52,9 +52,11 @@ export function showNotification({ type, title, message, summary, name, logs = [
position: 'bottom-right',
dangerouslyUseHTMLString: true,
onClick() {
router.push({
name: 'ProcessActivity'
})
if (isRedirect) {
router.push({
name: 'ProcessActivity'
})
}
}
})
}