155 lines
4.7 KiB
Vue
155 lines
4.7 KiB
Vue
<!--
|
|
ADempiere-Vue (Frontend) for ADempiere ERP & CRM Smart Business Solution
|
|
Copyright (C) 2017-Present E.R.P. Consultores y Asociados, C.A.
|
|
Contributor(s): Elsio Sanchez esanchez@erpya.com www.erpya.com
|
|
This program is free software: you can redistribute it and/or modify
|
|
it under the terms of the GNU General Public License as published by
|
|
the Free Software Foundation, either version 3 of the License, or
|
|
(at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program. If not, see <https:www.gnu.org/licenses/>.
|
|
-->
|
|
<template>
|
|
<div>
|
|
<el-card class="box-card" style="padding: 1%;">
|
|
<div slot="header" class="clearfix">
|
|
<span>
|
|
{{ $t('field.field') }}
|
|
<b> {{ fieldAttributes.name }} </b>
|
|
</span>
|
|
</div>
|
|
<el-scrollbar wrap-class="scroll-child">
|
|
<el-form ref="form" label-position="top" label-width="120px" style="overflow: auto;" @submit.native.prevent="notSubmitForm">
|
|
<el-form-item v-if="!isEmptyValue(messageText)" :label="$t('field.contextInfo')">
|
|
{{ messageText }}
|
|
</el-form-item>
|
|
<el-form-item :label="$t('field.container.description')">
|
|
{{ fieldAttributes.description }}
|
|
</el-form-item>
|
|
<el-form-item :label="$t('field.container.help')">
|
|
{{ fieldAttributes.help }}
|
|
</el-form-item>
|
|
</el-form>
|
|
</el-scrollbar>
|
|
<template v-for="(zoomItem, index) in fieldAttributes.reference.zoomWindows">
|
|
<el-button
|
|
:key="index"
|
|
type="text"
|
|
@click="redirect({ window: zoomItem })"
|
|
>
|
|
{{ $t('table.ProcessActivity.zoomIn') }}
|
|
{{ zoomItem.name }}
|
|
</el-button>
|
|
</template>
|
|
</el-card>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import { recursiveTreeSearch } from '@/utils/ADempiere/valueUtils.js'
|
|
import { parseContext } from '@/utils/ADempiere/contextUtils'
|
|
|
|
export default {
|
|
name: 'FieldContextInfo',
|
|
props: {
|
|
fieldAttributes: {
|
|
type: Object,
|
|
required: true
|
|
},
|
|
fieldValue: {
|
|
type: [Number, String, Boolean, Array, Object, Date],
|
|
default: undefined
|
|
}
|
|
},
|
|
data() {
|
|
return {
|
|
value: this.fieldValue
|
|
}
|
|
},
|
|
computed: {
|
|
permissionRoutes() {
|
|
return this.$store.getters.permission_routes
|
|
},
|
|
messageText() {
|
|
if (!this.isEmptyValue(this.fieldAttributes.contextInfo.sqlStatement)) {
|
|
const contextInfo = this.$store.getters.getContextInfoField(this.fieldAttributes.contextInfo.uuid, this.fieldAttributes.contextInfo.sqlStatement)
|
|
if (this.isEmptyValue(contextInfo)) {
|
|
return ''
|
|
}
|
|
return contextInfo.messageText
|
|
}
|
|
return ''
|
|
}
|
|
},
|
|
watch: {
|
|
fieldValue(value) {
|
|
this.value = value
|
|
}
|
|
},
|
|
created() {
|
|
if (!this.isEmptyValue(this.fieldAttributes.contextInfo.sqlStatement)) {
|
|
const sqlParse = parseContext({
|
|
parentUuid: this.fieldAttributes.parentUuid,
|
|
containerUuid: this.fieldAttributes.containerUuid,
|
|
value: this.fieldAttributes.contextInfo.sqlStatement,
|
|
isBooleanToString: true
|
|
})
|
|
this.$store.dispatch('getContextInfoValueFromServer', {
|
|
contextInfoId: this.fieldAttributes.contextInfo.id,
|
|
contextInfoUuid: this.fieldAttributes.contextInfo.uuid,
|
|
sqlStatement: sqlParse.value
|
|
})
|
|
}
|
|
},
|
|
methods: {
|
|
notSubmitForm(event) {
|
|
event.preventDefault()
|
|
return false
|
|
},
|
|
redirect({ window }) {
|
|
const viewSearch = recursiveTreeSearch({
|
|
treeData: this.permissionRoutes,
|
|
attributeValue: window.uuid,
|
|
attributeName: 'meta',
|
|
secondAttribute: 'uuid',
|
|
attributeChilds: 'children'
|
|
})
|
|
|
|
if (viewSearch) {
|
|
this.$router.push({
|
|
name: viewSearch.name,
|
|
query: {
|
|
action: 'advancedQuery',
|
|
tabParent: 0,
|
|
[this.fieldAttributes.columnName]: this.value
|
|
}
|
|
}, () => {})
|
|
} else {
|
|
this.$message({
|
|
type: 'error',
|
|
showClose: true,
|
|
message: this.$t('notifications.noRoleAccess')
|
|
})
|
|
}
|
|
this.$store.commit('changeShowRigthPanel', false)
|
|
if (!this.isEmptyValue(this.$route.query.fieldColumnName)) {
|
|
this.$router.push({
|
|
name: this.$route.name,
|
|
query: {
|
|
...this.$route.query,
|
|
typeAction: '',
|
|
fieldColumnName: ''
|
|
}
|
|
}, () => {})
|
|
}
|
|
}
|
|
}
|
|
}
|
|
</script>
|