- La Città non si vede se non l'ho aggiunta a mano... occorre mandare anche la descrizione...

(remote_field)
This commit is contained in:
paoloar77
2022-02-03 10:28:21 +01:00
parent 124cb5cc64
commit 45a771fab2
4 changed files with 51 additions and 0 deletions

View File

@@ -91,6 +91,7 @@
optval="_id" optlab="label" optval="_id" optlab="label"
:useinput="false" :useinput="false"
:col="col" :col="col"
:row="row"
:options="tools.SelectHours"> :options="tools.SelectHours">
</CMySelect> </CMySelect>
</div> </div>
@@ -159,6 +160,7 @@
<div v-if="isInModif" class="justify-center q-gutter-sm clgutter q-mt-sm"> <div v-if="isInModif" class="justify-center q-gutter-sm clgutter q-mt-sm">
<CMySelect <CMySelect
:col="col" :col="col"
:row="row"
:label="col.label" :label="col.label"
v-model:value="myvalue" v-model:value="myvalue"
@update:value="changevalRec" @update:value="changevalRec"
@@ -178,6 +180,7 @@
<div v-if="isInModif" class="justify-center q-gutter-sm clgutter q-mt-sm"> <div v-if="isInModif" class="justify-center q-gutter-sm clgutter q-mt-sm">
<CMySelect <CMySelect
:col="col" :col="col"
:row="row"
:label="col.label" :label="col.label"
v-model:value="myvalue" v-model:value="myvalue"
@update:value="changevalRec" @update:value="changevalRec"
@@ -252,6 +255,7 @@
<div v-if="isInModif"> <div v-if="isInModif">
<CMySelect <CMySelect
:col="col" :col="col"
:row="row"
:multiple="true" :multiple="true"
:withToggle="true" :withToggle="true"
:label="col.label" :label="col.label"
@@ -318,6 +322,7 @@
<div v-if="isInModif"> <div v-if="isInModif">
<CMySelect <CMySelect
:col="col" :col="col"
:row="row"
:label="col.label" :label="col.label"
v-model:value="myvalue" v-model:value="myvalue"
:pickup="col.fieldtype === costanti.FieldType.select_by_server" :pickup="col.fieldtype === costanti.FieldType.select_by_server"
@@ -348,6 +353,7 @@
<div v-else-if="col.fieldtype === costanti.FieldType.multiselect_by_server"> <div v-else-if="col.fieldtype === costanti.FieldType.multiselect_by_server">
<CMySelect <CMySelect
:col="col" :col="col"
:row="row"
:multiselect_by_server="true" :multiselect_by_server="true"
:label="col.label" :label="col.label"
v-model:arrvalue="myvalue" v-model:arrvalue="myvalue"
@@ -372,6 +378,7 @@
<div v-if="isInModif"> <div v-if="isInModif">
<CMySelect <CMySelect
:col="col" :col="col"
:row="row"
:label="col.label" :label="col.label"
v-model:value="myvalue" v-model:value="myvalue"
@update:value="changevalRec" @update:value="changevalRec"
@@ -534,6 +541,7 @@
<div v-if="isFieldDb()"> <div v-if="isFieldDb()">
<CMySelect <CMySelect
:col="col" :col="col"
:row="row"
label="Ore" v-model:value="myvalue" label="Ore" v-model:value="myvalue"
optval="value" optlab="label" optval="value" optlab="label"
:dense="false" :dense="false"
@@ -556,6 +564,7 @@
v-else-if="(col.fieldtype === costanti.FieldType.select) || (col.fieldtype === costanti.FieldType.select_by_server)"> v-else-if="(col.fieldtype === costanti.FieldType.select) || (col.fieldtype === costanti.FieldType.select_by_server)">
<CMySelect <CMySelect
:col="col" :col="col"
:row="row"
:label="col.label" :label="col.label"
v-model:value="scope.value" v-model:value="scope.value"
:pickup="col.fieldtype === costanti.FieldType.select_by_server" :pickup="col.fieldtype === costanti.FieldType.select_by_server"
@@ -573,6 +582,7 @@
<div v-else-if="col.fieldtype === costanti.FieldType.multiselect_by_server"> <div v-else-if="col.fieldtype === costanti.FieldType.multiselect_by_server">
<CMySelect <CMySelect
:col="col" :col="col"
:row="row"
:multiselect_by_server="true" :multiselect_by_server="true"
:label="col.label" :label="col.label"
v-model:arrvalue="scope.value" v-model:arrvalue="scope.value"
@@ -628,6 +638,7 @@
<div class="justify-center q-gutter-sm clgutter q-mt-sm"> <div class="justify-center q-gutter-sm clgutter q-mt-sm">
<CMySelect <CMySelect
:col="col" :col="col"
:row="row"
:label="col.label" :label="col.label"
v-model:value="scope.value" v-model:value="scope.value"
@update:value="changevalRec" @update:value="changevalRec"
@@ -647,6 +658,7 @@
<div class="justify-center q-gutter-sm clgutter q-mt-sm"> <div class="justify-center q-gutter-sm clgutter q-mt-sm">
<CMySelect <CMySelect
:col="col" :col="col"
:row="row"
:label="col.label" :label="col.label"
v-model:value="scope.value" v-model:value="scope.value"
@update:value="changevalRec" @update:value="changevalRec"
@@ -672,6 +684,7 @@
<div v-else-if="col.fieldtype === costanti.FieldType.star5"> <div v-else-if="col.fieldtype === costanti.FieldType.star5">
<CMySelect <CMySelect
:col="col" :col="col"
:row="row"
:label="col.label" :label="col.label"
v-model:value="scope.value" v-model:value="scope.value"
:optval="fieldsTable.getKeyByTable(col.jointable)" :optval="fieldsTable.getKeyByTable(col.jointable)"

View File

@@ -44,6 +44,13 @@ export default defineComponent({
required: false, required: false,
default: 0 default: 0
}, },
row: {
type: Object,
required: false,
default: () => {
return {}
},
},
col: { col: {
type: Object as PropType<IColGridTable>, type: Object as PropType<IColGridTable>,
required: false, required: false,
@@ -265,6 +272,28 @@ export default defineComponent({
} }
} }
// Check if exist other array:
if (props.col) {
if (props.col.remote_table && props.col.remote_key && props.col.remote_field) {
try {
const myarrremote = props.row[props.col.remote_table]
for (const myrec of myarrremote) {
let myidkey = myrec[props.col.remote_key]
if (!arrtempOpt.value.includes(myidkey)){
let myobj: any = {}
myobj[props.col.remote_key] = myidkey
myobj[props.col.remote_field] = myrec[props.col.remote_field]
arrtempOpt.value.push(myobj)
}
}
}catch (e){}
}
}
myarrvalue.value = [] myarrvalue.value = []
for (const val of props.arrvalue) { for (const val of props.arrvalue) {
rec = arrtempOpt.value.find((myrec: any) => val === (myrec[`${props.optval}`])) rec = arrtempOpt.value.find((myrec: any) => val === (myrec[`${props.optval}`]))

View File

@@ -508,6 +508,9 @@ export interface IColGridTable {
maxlength?: number maxlength?: number
filter_table?: string filter_table?: string
filter_field?: string filter_field?: string
remote_table?: string
remote_key?: string
remote_field?: string
field_extra1?: string field_extra1?: string
subfield_extra1?: string subfield_extra1?: string
allowNewValue?: boolean allowNewValue?: boolean

View File

@@ -73,6 +73,9 @@ function AddCol(params: IColGridTable) {
noshowlabel: (params.noshowlabel === undefined) ? false : params.noshowlabel, noshowlabel: (params.noshowlabel === undefined) ? false : params.noshowlabel,
notsave: (params.notsave === undefined) ? false : params.notsave, notsave: (params.notsave === undefined) ? false : params.notsave,
filter_table: (params.filter_table === undefined) ? '' : params.filter_table, filter_table: (params.filter_table === undefined) ? '' : params.filter_table,
remote_table: (params.remote_table === undefined) ? '' : params.remote_table,
remote_key: (params.remote_key === undefined) ? '' : params.remote_key,
remote_field: (params.remote_field === undefined) ? '' : params.remote_field,
maxlength: (params.maxlength === undefined) ? 0 : params.maxlength, maxlength: (params.maxlength === undefined) ? 0 : params.maxlength,
filter_field: (params.filter_field === undefined) ? '' : params.filter_field, filter_field: (params.filter_field === undefined) ? '' : params.filter_field,
} }
@@ -463,6 +466,9 @@ export const colmyUserGroup = [
noshowlabel: true, noshowlabel: true,
icon: 'fas fa-map-marker-alt', icon: 'fas fa-map-marker-alt',
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView, showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView,
remote_table: 'comune',
remote_key: '_id',
remote_field: 'comune',
}), }),
AddCol({ name: 'date_created', label_trans: 'reg.date_created', fieldtype: costanti.FieldType.onlydate, AddCol({ name: 'date_created', label_trans: 'reg.date_created', fieldtype: costanti.FieldType.onlydate,
showWhen: costanti.showWhen.InPage + costanti.showWhen.InView_OnlyifExist }), showWhen: costanti.showWhen.InPage + costanti.showWhen.InView_OnlyifExist }),