window.componentes = window.componentes || {}; const BaseSysUsersNew = { template: `

ph-duotone ph-plus New User

mdi-content-save-all-outline Save
`, data() { return { key:this.$uniqid(), data:{"fullname":null,"email":null,"phone":null,"birthday":null,"position":null,"role":null,"password":null,"bio":null}, fields: [{"tag":"input","hint":"Insert Fullname","name":"fullname","label":"Fullname","active":true,"disabled":false,"key":"6a9b0a65898a1","0":{"tag":"input","hint":"Insert Email","name":"email","label":"Email","active":true,"disabled":false,"key":"6a9b0a65898a2"},"1":{"tag":"input","hint":"Insert Phone","name":"phone","label":"Phone","active":true,"disabled":false,"key":"6a9b0a65898a3"}},[{"tag":"date","hint":"Insert Birthday","name":"birthday","label":"Birthday","active":true,"disabled":false,"key":"6a9b0a65898a4"},{"tag":"input","hint":"Insert Position","name":"position","label":"Position","active":true,"disabled":false,"key":"6a9b0a65898a5"},{"tag":"select","hint":"Insert Role","name":"role","items":[{"text":"Admin","value":"admin"},{"text":"User","value":"user"}],"label":"Role","active":true,"disabled":false,"item-text":"text","item-value":"value","key":"6a9b0a65898a6"}],{"tag":"input","hint":"Insert Password","name":"password","type":"password","label":"Password","active":true,"disabled":false,"key":"6a9b0a65898a7"},{"tag":"input","hint":"Insert Bio","name":"bio","label":"Bio","active":true,"disabled":false,"key":"6a9b0a65898a8"}], helper:{ loading:false, error:null }, valid:{ base_sys_users_new_6a9b0a658989e:null } }; }, props: { page: { type: String, default: "list" }, send_to: { type: String, default: null }, extra: { type: Array, default: () => [] }, allow: { type: Array, default: () => [] }, attrs: { type: Object, default: () => {} }, inline:{ type: Boolean, default: false }, admin:{ type: Boolean, default: true }, binds: { type: Object, default: () => {} }, received_values: { type: Object, default: () => {} } }, watch:{ binds: { handler(newValue, oldValue) { Object.keys(newValue).forEach((item)=>{ this.data[item] = newValue[item] }) }, immediate: true, // Ejecutar inmediatamente deep: true // Usar true si es un objeto/array }, /** received_values: { handler(newValue, oldValue) { Object.keys(newValue).forEach((item)=>{ this.data[item] = newValue[item] }) }, immediate: true, deep: true } **/ }, computed:{ render_fields(){ let fields = [] if (this.fields.length>0) { this.fields.forEach((field)=>{ if(Array.isArray(field)){ let s_field = [] field.forEach((f)=>{ if ("parent_field" in f && "child_field" in f) { f.where[f.child_field] = this.data[f.parent_field] f.key = this.data[f.parent_field] } s_field.push({... f }); }) fields.push([... s_field ]); } else { if ("parent_field" in field && "child_field" in field) { field.where[field.child_field] = this.data[field.parent_field] field.key = this.data[field.parent_field] } fields.push({... field }); } }) } return fields }, }, methods: { async Save() { this.helper.loading = true if(this.valid['base_sys_users_new_6a9b0a658989e'] == true){ const formData = new FormData this.$form_data(formData,this.data) let destination = 'sys_users' if(this.send_to){ destination = this.send_to } let update = null const promise = await this.$you.save(destination,formData,update); if (promise) { this.helper.loading = false if(promise.data.success==true){ this.$toast_success("New User saved successfully!.") this.$hash('home') } else { this.$toast_warning(promise.data.error.message) } } } else { this.helper.loading = false } }, validate(id,value){ this.valid[id] = value }, }, created(){ }, }; window.componentes.BaseSysUsersNew = BaseSysUsersNew; const BaseSysUsersUpdate = { template: `

ph-duotone ph-pencil-simple-line Edit User

mdi-content-save-all-outline Save
`, data() { return { key:this.$uniqid(), data:{"fullname":null,"email":null,"phone":null,"birthday":null,"position":null,"role":null,"bio":null}, fields: [{"tag":"input","hint":"Insert Fullname","name":"fullname","label":"Fullname","active":true,"disabled":false,"key":"6a9b0a65898cb","0":{"tag":"input","hint":"Insert Email","name":"email","label":"Email","active":true,"disabled":false,"key":"6a9b0a65898cc"},"1":{"tag":"input","hint":"Insert Phone","name":"phone","label":"Phone","active":true,"disabled":false,"key":"6a9b0a65898cd"}},[{"tag":"date","hint":"Insert Birthday","name":"birthday","label":"Birthday","active":true,"disabled":false,"key":"6a9b0a65898ce"},{"tag":"input","hint":"Insert Position","name":"position","label":"Position","active":true,"disabled":false,"key":"6a9b0a65898cf"},{"tag":"select","hint":"Insert Role","name":"role","items":[{"text":"Admin","value":"admin"},{"text":"User","value":"user"}],"label":"Role","active":true,"disabled":false,"item-text":"text","item-value":"value","key":"6a9b0a65898d0"}],{"tag":"input","hint":"Insert Bio","name":"bio","label":"Bio","active":true,"disabled":false,"key":"6a9b0a65898d1"}], helper:{ loading:false, error:null }, valid:{ base_sys_users_update_6a9b0a65898c9:null } }; }, props: { page: { type: String, default: "list" }, send_to: { type: String, default: null }, extra: { type: Array, default: () => [] }, allow: { type: Array, default: () => [] }, attrs: { type: Object, default: () => {} }, inline:{ type: Boolean, default: false }, admin:{ type: Boolean, default: true }, binds: { type: Object, default: () => {} }, received_values: { type: Object, default: () => {} } }, watch:{ binds: { handler(newValue, oldValue) { Object.keys(newValue).forEach((item)=>{ this.data[item] = newValue[item] }) }, immediate: true, // Ejecutar inmediatamente deep: true // Usar true si es un objeto/array }, /** received_values: { handler(newValue, oldValue) { Object.keys(newValue).forEach((item)=>{ this.data[item] = newValue[item] }) }, immediate: true, deep: true } **/ }, computed:{ render_fields(){ let fields = [] if (this.fields.length>0) { this.fields.forEach((field)=>{ if(Array.isArray(field)){ let s_field = [] field.forEach((f)=>{ if ("parent_field" in f && "child_field" in f) { f.where[f.child_field] = this.data[f.parent_field] f.key = this.data[f.parent_field] } s_field.push({... f }); }) fields.push([... s_field ]); } else { if ("parent_field" in field && "child_field" in field) { field.where[field.child_field] = this.data[field.parent_field] field.key = this.data[field.parent_field] } fields.push({... field }); } }) } return fields }, }, methods: { async Save() { this.helper.loading = true if(this.valid['base_sys_users_update_6a9b0a65898c9'] == true){ const formData = new FormData this.$form_data(formData,this.data) let destination = 'sys_users' if(this.send_to){ destination = this.send_to } let update = this.$root.url.param const promise = await this.$you.save(destination,formData,update); if (promise) { this.helper.loading = false if(promise.data.success==true){ this.$toast_success("Edit User updated successfully!.") this.$hash('home') } else { this.$toast_warning(promise.data.error.message) } } } else { this.helper.loading = false } }, validate(id,value){ this.valid[id] = value }, async Get() { this.helper.loading = true const promise = await this.$you.find('sys_users',{ id:this.$root.url.param }); if(promise && promise.data.data){ this.fields.forEach((item)=>{ if(Array.isArray(item)){ item.forEach((field)=>{ if(field.active==1){ this.data[field.name] = promise.data.data[0][field.name] } }) } else { if(item.active==1){ this.data[item.name] = promise.data.data[0][item.name] } } }) } this.helper.loading = false }, }, created(){ this.Get() }, }; window.componentes.BaseSysUsersUpdate = BaseSysUsersUpdate; const EvaluationsAdd = { template: `

ph-duotone ph-plus Agregar Evaluacion

mdi-content-save-all-outline Save
`, data() { return { key:this.$uniqid(), data:{"subject_id":null,"school_year_id":null,"grade_id":null,"section_id":null,"period_id":null,"name":null,"description":null,"max_score":null,"due_date":null}, fields: [{"name":"subject_id","label":"Materia","active":true,"disabled":false,"tag":"combobox","validation":"alphaNum","required":true,"hint":"","items":[],"table":"subjects","where":{"code":"USER_FULLNAME"},"parent_field":"","child_field":"","item-value":"","item-text":"","key":"6a9b0a65898e5"},{"name":"school_year_id","label":"Periodo Escolar","active":true,"disabled":false,"tag":"combobox","validation":"alphaNum","required":true,"hint":"","table":"school_years","item-value":"id","item-text":"name","key":"6a9b0a65898e6"},{"name":"grade_id","label":"Grado","active":true,"disabled":false,"tag":"combobox","validation":"alphaNum","required":true,"hint":"","table":"grades","item-value":"id","item-text":"name","key":"6a9b0a65898e7"},{"name":"section_id","label":"Seccion","active":true,"disabled":false,"tag":"combobox","validation":"alphaNum","required":true,"hint":"","table":"sections","item-value":"id","item-text":"name","key":"6a9b0a65898e8"},{"name":"period_id","label":"Lapso","active":true,"disabled":false,"tag":"combobox","validation":"alphaNum","required":true,"hint":"","table":"periods","item-value":"id","item-text":"name","key":"6a9b0a65898e9"},{"name":"name","label":"Titulo","active":true,"disabled":false,"tag":"input","validation":"alphaNum","required":true,"hint":"","type":"text","key":"6a9b0a65898ea"},{"name":"description","label":"Descripcion","active":true,"disabled":false,"tag":"editor","validation":"ip","required":true,"hint":"","key":"6a9b0a65898eb"},{"name":"max_score","label":"Nota Maxima","active":true,"disabled":false,"tag":"input","validation":"number","required":true,"hint":"","type":"number","key":"6a9b0a65898ec"},{"name":"due_date","label":"Fecha de Evaluacion","active":true,"disabled":false,"tag":"input","validation":"date","required":true,"hint":"","type":"date","key":"6a9b0a65898ed"}], helper:{ loading:false, error:null }, valid:{ evaluations_add_6a9b0a65898e3:null } }; }, props: { page: { type: String, default: "list" }, send_to: { type: String, default: null }, extra: { type: Array, default: () => [] }, allow: { type: Array, default: () => [] }, attrs: { type: Object, default: () => {} }, inline:{ type: Boolean, default: false }, admin:{ type: Boolean, default: true }, binds: { type: Object, default: () => {} }, received_values: { type: Object, default: () => {} } }, watch:{ binds: { handler(newValue, oldValue) { Object.keys(newValue).forEach((item)=>{ this.data[item] = newValue[item] }) }, immediate: true, // Ejecutar inmediatamente deep: true // Usar true si es un objeto/array }, /** received_values: { handler(newValue, oldValue) { Object.keys(newValue).forEach((item)=>{ this.data[item] = newValue[item] }) }, immediate: true, deep: true } **/ }, computed:{ render_fields(){ let fields = [] if (this.fields.length>0) { this.fields.forEach((field)=>{ if(Array.isArray(field)){ let s_field = [] field.forEach((f)=>{ if ("parent_field" in f && "child_field" in f) { f.where[f.child_field] = this.data[f.parent_field] f.key = this.data[f.parent_field] } s_field.push({... f }); }) fields.push([... s_field ]); } else { if ("parent_field" in field && "child_field" in field) { field.where[field.child_field] = this.data[field.parent_field] field.key = this.data[field.parent_field] } fields.push({... field }); } }) } return fields }, }, methods: { async Save() { this.helper.loading = true if(this.valid['evaluations_add_6a9b0a65898e3'] == true){ const formData = new FormData this.$form_data(formData,this.data) let destination = 'evaluations' if(this.send_to){ destination = this.send_to } let update = null const promise = await this.$you.save(destination,formData,update); if (promise) { this.helper.loading = false if(promise.data.success==true){ this.$toast_success("Agregar Evaluacion saved successfully!.") this.$hash('home') } else { this.$toast_warning(promise.data.error.message) } } } else { this.helper.loading = false } }, validate(id,value){ this.valid[id] = value }, }, created(){ }, }; window.componentes.EvaluationsAdd = EvaluationsAdd; const GradesAdd = { template: `

ph-duotone ph-plus Grados

mdi-content-save-all-outline Save
;
`, data() { return { key:this.$uniqid(), data:{"name":null,"code":null,"year_number":null,"description":null,"status":null}, fields: [{"name":"name","label":"Name","active":true,"disabled":false,"tag":"input","validation":"alphaNum","required":true,"hint":"Insert 'Name'","type":"text","key":"6a9b0a658990b"},{"name":"code","label":"Code","active":true,"disabled":false,"tag":"input","validation":"alphaNum","required":true,"hint":"Insert 'Code'","type":"text","key":"6a9b0a658990c"},{"name":"year_number","label":"Year Number","active":true,"disabled":false,"tag":"input","validation":"number","required":true,"hint":"Insert 'Year Number'","type":"number","key":"6a9b0a658990d"},{"name":"description","label":"Description","active":true,"disabled":false,"tag":"textarea","validation":"ip","required":true,"hint":"Insert 'Description'","autoGrow":true,"key":"6a9b0a658990e"},{"name":"status","label":"Status","active":true,"disabled":false,"tag":"input","validation":"alphaNum","required":true,"hint":"Insert 'Status'","type":"text","key":"6a9b0a658990f"}], helper:{ loading:false, error:null }, valid:{ grades_add_6a9b0a658990a:null } }; }, props: { page: { type: String, default: "list" }, send_to: { type: String, default: null }, extra: { type: Array, default: () => [] }, allow: { type: Array, default: () => [] }, attrs: { type: Object, default: () => {} }, inline:{ type: Boolean, default: false }, admin:{ type: Boolean, default: true }, binds: { type: Object, default: () => {} }, received_values: { type: Object, default: () => {} } }, watch:{ binds: { handler(newValue, oldValue) { Object.keys(newValue).forEach((item)=>{ this.data[item] = newValue[item] }) }, immediate: true, // Ejecutar inmediatamente deep: true // Usar true si es un objeto/array }, /** received_values: { handler(newValue, oldValue) { Object.keys(newValue).forEach((item)=>{ this.data[item] = newValue[item] }) }, immediate: true, deep: true } **/ }, computed:{ render_fields(){ let fields = [] if (this.fields.length>0) { this.fields.forEach((field)=>{ if(Array.isArray(field)){ let s_field = [] field.forEach((f)=>{ if ("parent_field" in f && "child_field" in f) { f.where[f.child_field] = this.data[f.parent_field] f.key = this.data[f.parent_field] } s_field.push({... f }); }) fields.push([... s_field ]); } else { if ("parent_field" in field && "child_field" in field) { field.where[field.child_field] = this.data[field.parent_field] field.key = this.data[field.parent_field] } fields.push({... field }); } }) } return fields }, }, methods: { async Save() { this.helper.loading = true if(this.valid['grades_add_6a9b0a658990a'] == true){ const formData = new FormData this.$form_data(formData,this.data) let destination = 'grades' if(this.send_to){ destination = this.send_to } let update = null const promise = await this.$you.save(destination,formData,update); if (promise) { this.helper.loading = false if(promise.data.success==true){ this.$toast_success("Grados saved successfully!.") this.$hash('home') } else { this.$toast_warning(promise.data.error.message) } } } else { this.helper.loading = false } }, validate(id,value){ this.valid[id] = value }, }, created(){ }, }; window.componentes.GradesAdd = GradesAdd; const PeriodsAdd = { template: `

ph-duotone ph-plus Lapsos

mdi-content-save-all-outline Save
;
`, data() { return { key:this.$uniqid(), data:{"school_year_id":null,"name":null,"code":null,"number":null,"start_date":null,"end_date":null,"weight_percentage":null,"status":null}, fields: [{"name":"school_year_id","label":"School Year Id","active":true,"disabled":false,"tag":"combobox","validation":"alphaNum","required":true,"hint":"Insert 'School Year Id'","table":"school_years","item-value":"id","item-text":"name","key":"6a9b0a6589920"},{"name":"name","label":"Name","active":true,"disabled":false,"tag":"input","validation":"alphaNum","required":true,"hint":"Insert 'Name'","type":"text","key":"6a9b0a6589921"},{"name":"code","label":"Code","active":true,"disabled":false,"tag":"input","validation":"alphaNum","required":true,"hint":"Insert 'Code'","type":"text","key":"6a9b0a6589922"},{"name":"number","label":"Number","active":true,"disabled":false,"tag":"input","validation":"number","required":true,"hint":"Insert 'Number'","type":"number","key":"6a9b0a6589923"},{"name":"start_date","label":"Start Date","active":true,"disabled":false,"tag":"input","validation":"date","required":true,"hint":"Insert 'Start Date'","type":"date","key":"6a9b0a6589924"},{"name":"end_date","label":"End Date","active":true,"disabled":false,"tag":"input","validation":"date","required":true,"hint":"Insert 'End Date'","type":"date","key":"6a9b0a6589925"},{"name":"weight_percentage","label":"Weight Percentage","active":true,"disabled":false,"tag":"input","validation":"number","required":true,"hint":"Insert 'Weight Percentage'","type":"number","key":"6a9b0a6589926"},{"name":"status","label":"Status","active":true,"disabled":false,"tag":"input","validation":"alphaNum","required":true,"hint":"Insert 'Status'","type":"text","key":"6a9b0a6589927"}], helper:{ loading:false, error:null }, valid:{ periods_add_6a9b0a658991f:null } }; }, props: { page: { type: String, default: "list" }, send_to: { type: String, default: null }, extra: { type: Array, default: () => [] }, allow: { type: Array, default: () => [] }, attrs: { type: Object, default: () => {} }, inline:{ type: Boolean, default: false }, admin:{ type: Boolean, default: true }, binds: { type: Object, default: () => {} }, received_values: { type: Object, default: () => {} } }, watch:{ binds: { handler(newValue, oldValue) { Object.keys(newValue).forEach((item)=>{ this.data[item] = newValue[item] }) }, immediate: true, // Ejecutar inmediatamente deep: true // Usar true si es un objeto/array }, /** received_values: { handler(newValue, oldValue) { Object.keys(newValue).forEach((item)=>{ this.data[item] = newValue[item] }) }, immediate: true, deep: true } **/ }, computed:{ render_fields(){ let fields = [] if (this.fields.length>0) { this.fields.forEach((field)=>{ if(Array.isArray(field)){ let s_field = [] field.forEach((f)=>{ if ("parent_field" in f && "child_field" in f) { f.where[f.child_field] = this.data[f.parent_field] f.key = this.data[f.parent_field] } s_field.push({... f }); }) fields.push([... s_field ]); } else { if ("parent_field" in field && "child_field" in field) { field.where[field.child_field] = this.data[field.parent_field] field.key = this.data[field.parent_field] } fields.push({... field }); } }) } return fields }, }, methods: { async Save() { this.helper.loading = true if(this.valid['periods_add_6a9b0a658991f'] == true){ const formData = new FormData this.$form_data(formData,this.data) let destination = 'periods' if(this.send_to){ destination = this.send_to } let update = null const promise = await this.$you.save(destination,formData,update); if (promise) { this.helper.loading = false if(promise.data.success==true){ this.$toast_success("Lapsos saved successfully!.") this.$hash('home') } else { this.$toast_warning(promise.data.error.message) } } } else { this.helper.loading = false } }, validate(id,value){ this.valid[id] = value }, }, created(){ }, }; window.componentes.PeriodsAdd = PeriodsAdd; const SchoolYearsPostNewRezpEAsx = { template: `

ph-duotone ph-plus Agregar Periodo Escolar

mdi-content-save-all-outline Save
`, data() { return { key:this.$uniqid(), data:{"name":null,"code":null,"start_date":null,"end_date":null,"is_current":null}, fields: [{"name":"name","label":"Nombre","active":true,"disabled":false,"tag":"input","validation":"alphaNum","required":true,"hint":"Insert [Name]","type":"text","key":"6a9b0a6589940"},{"name":"code","label":"Codigo","active":true,"disabled":false,"tag":"input","validation":"alphaNum","required":true,"hint":"Insert [Code]","type":"text","key":"6a9b0a6589941"},{"name":"start_date","label":"Fecha de Inicio","active":true,"disabled":false,"tag":"input","validation":"date","required":true,"hint":"Insert [Start Date]","type":"date","key":"6a9b0a6589942"},{"name":"end_date","label":"Fecha de Finalizacion","active":true,"disabled":false,"tag":"input","validation":"date","required":true,"hint":"Insert [End Date]","type":"date","key":"6a9b0a6589943"},{"name":"is_current","label":"En Curso","active":true,"disabled":false,"tag":"input","validation":"number","required":true,"hint":"Insert [Is Current]","type":"number","key":"6a9b0a6589944"}], helper:{ loading:false, error:null }, valid:{ school_years_post_new_RezpEAsx_6a9b0a658993f:null } }; }, props: { page: { type: String, default: "list" }, send_to: { type: String, default: null }, extra: { type: Array, default: () => [] }, allow: { type: Array, default: () => [] }, attrs: { type: Object, default: () => {} }, inline:{ type: Boolean, default: false }, admin:{ type: Boolean, default: true }, binds: { type: Object, default: () => {} }, received_values: { type: Object, default: () => {} } }, watch:{ binds: { handler(newValue, oldValue) { Object.keys(newValue).forEach((item)=>{ this.data[item] = newValue[item] }) }, immediate: true, // Ejecutar inmediatamente deep: true // Usar true si es un objeto/array }, /** received_values: { handler(newValue, oldValue) { Object.keys(newValue).forEach((item)=>{ this.data[item] = newValue[item] }) }, immediate: true, deep: true } **/ }, computed:{ render_fields(){ let fields = [] if (this.fields.length>0) { this.fields.forEach((field)=>{ if(Array.isArray(field)){ let s_field = [] field.forEach((f)=>{ if ("parent_field" in f && "child_field" in f) { f.where[f.child_field] = this.data[f.parent_field] f.key = this.data[f.parent_field] } s_field.push({... f }); }) fields.push([... s_field ]); } else { if ("parent_field" in field && "child_field" in field) { field.where[field.child_field] = this.data[field.parent_field] field.key = this.data[field.parent_field] } fields.push({... field }); } }) } return fields }, }, methods: { async Save() { this.helper.loading = true if(this.valid['school_years_post_new_RezpEAsx_6a9b0a658993f'] == true){ const formData = new FormData this.$form_data(formData,this.data) let destination = 'school_years' if(this.send_to){ destination = this.send_to } let update = null const promise = await this.$you.save(destination,formData,update); if (promise) { this.helper.loading = false if(promise.data.success==true){ this.$toast_success("Agregar Periodo Escolar saved successfully!.") this.$hash('home') } else { this.$toast_warning(promise.data.error.message) } } } else { this.helper.loading = false } }, validate(id,value){ this.valid[id] = value }, }, created(){ }, }; window.componentes.SchoolYearsPostNewRezpEAsx = SchoolYearsPostNewRezpEAsx; const SectionsAdd = { template: `

ph-duotone ph-plus Secciones

mdi-content-save-all-outline Save
;
`, data() { return { key:this.$uniqid(), data:{"name":null,"code":null,"capacity":null,"status":null}, fields: [{"name":"name","label":"Name","active":true,"disabled":false,"tag":"input","validation":"alphaNum","required":true,"hint":"Insert 'Name'","type":"text","key":"6a9b0a658995e"},{"name":"code","label":"Code","active":true,"disabled":false,"tag":"input","validation":"alphaNum","required":true,"hint":"Insert 'Code'","type":"text","key":"6a9b0a658995f"},{"name":"capacity","label":"Capacity","active":true,"disabled":false,"tag":"input","validation":"number","required":true,"hint":"Insert 'Capacity'","type":"number","key":"6a9b0a6589960"},{"name":"status","label":"Status","active":true,"disabled":false,"tag":"input","validation":"alphaNum","required":true,"hint":"Insert 'Status'","type":"text","key":"6a9b0a6589961"}], helper:{ loading:false, error:null }, valid:{ sections_add_6a9b0a658995d:null } }; }, props: { page: { type: String, default: "list" }, send_to: { type: String, default: null }, extra: { type: Array, default: () => [] }, allow: { type: Array, default: () => [] }, attrs: { type: Object, default: () => {} }, inline:{ type: Boolean, default: false }, admin:{ type: Boolean, default: true }, binds: { type: Object, default: () => {} }, received_values: { type: Object, default: () => {} } }, watch:{ binds: { handler(newValue, oldValue) { Object.keys(newValue).forEach((item)=>{ this.data[item] = newValue[item] }) }, immediate: true, // Ejecutar inmediatamente deep: true // Usar true si es un objeto/array }, /** received_values: { handler(newValue, oldValue) { Object.keys(newValue).forEach((item)=>{ this.data[item] = newValue[item] }) }, immediate: true, deep: true } **/ }, computed:{ render_fields(){ let fields = [] if (this.fields.length>0) { this.fields.forEach((field)=>{ if(Array.isArray(field)){ let s_field = [] field.forEach((f)=>{ if ("parent_field" in f && "child_field" in f) { f.where[f.child_field] = this.data[f.parent_field] f.key = this.data[f.parent_field] } s_field.push({... f }); }) fields.push([... s_field ]); } else { if ("parent_field" in field && "child_field" in field) { field.where[field.child_field] = this.data[field.parent_field] field.key = this.data[field.parent_field] } fields.push({... field }); } }) } return fields }, }, methods: { async Save() { this.helper.loading = true if(this.valid['sections_add_6a9b0a658995d'] == true){ const formData = new FormData this.$form_data(formData,this.data) let destination = 'sections' if(this.send_to){ destination = this.send_to } let update = null const promise = await this.$you.save(destination,formData,update); if (promise) { this.helper.loading = false if(promise.data.success==true){ this.$toast_success("Secciones saved successfully!.") this.$hash('home') } else { this.$toast_warning(promise.data.error.message) } } } else { this.helper.loading = false } }, validate(id,value){ this.valid[id] = value }, }, created(){ }, }; window.componentes.SectionsAdd = SectionsAdd; const StudentAdd = { template: `

ph-duotone ph-plus Agregar Estudiante

mdi-content-save-all-outline Save
;
`, data() { return { key:this.$uniqid(), data:{"student_code":null,"first_name":null,"last_name":null,"date_of_birth":null,"gender":null,"phone":null,"email":null,"address":null,"school_year_id":null,"grade_id":null,"section_id":null,"enrollment_status":null,"created_at":null,"updated_at":null}, fields: [{"name":"student_code","label":"Student Code","active":true,"disabled":false,"tag":"input","validation":"alphaNum","required":true,"hint":"Insert 'Student Code'","type":"text","key":"6a9b0a658996f"},{"name":"first_name","label":"First Name","active":true,"disabled":false,"tag":"input","validation":"alphaNum","required":true,"hint":"Insert 'First Name'","type":"text","key":"6a9b0a6589970"},{"name":"last_name","label":"Last Name","active":true,"disabled":false,"tag":"input","validation":"alphaNum","required":true,"hint":"Insert 'Last Name'","type":"text","key":"6a9b0a6589971"},{"name":"date_of_birth","label":"Date Of Birth","active":true,"disabled":false,"tag":"input","validation":"date","required":true,"hint":"Insert 'Date Of Birth'","type":"date","key":"6a9b0a6589972"},{"name":"gender","label":"Gender","active":true,"disabled":false,"tag":"input","validation":"alphaNum","required":true,"hint":"Insert 'Gender'","type":"text","key":"6a9b0a6589973"},{"name":"phone","label":"Phone","active":true,"disabled":false,"tag":"input","validation":"phone","required":true,"hint":"Insert 'Phone'","type":"text","key":"6a9b0a6589974"},{"name":"email","label":"Email","active":true,"disabled":false,"tag":"input","validation":"email","required":true,"hint":"Insert 'Email'","type":"text","key":"6a9b0a6589975"},{"name":"address","label":"Address","active":true,"disabled":false,"tag":"textarea","validation":"alphaNum","required":true,"hint":"Insert 'Address'","autoGrow":true,"key":"6a9b0a6589976"},{"name":"school_year_id","label":"School Year Id","active":true,"disabled":false,"tag":"combobox","validation":"alphaNum","required":true,"hint":"Insert 'School Year Id'","table":"school_years","item-value":"id","item-text":"name","key":"6a9b0a6589977"},{"name":"grade_id","label":"Grade Id","active":true,"disabled":false,"tag":"combobox","validation":"alphaNum","required":true,"hint":"Insert 'Grade Id'","table":"grades","item-value":"id","item-text":"name","key":"6a9b0a6589978"},{"name":"section_id","label":"Section Id","active":true,"disabled":false,"tag":"combobox","validation":"alphaNum","required":true,"hint":"Insert 'Section Id'","table":"sections","item-value":"id","item-text":"name","key":"6a9b0a6589979"},{"name":"enrollment_status","label":"Enrollment Status","active":true,"disabled":false,"tag":"input","validation":"alphaNum","required":true,"hint":"Insert 'Enrollment Status'","type":"text","key":"6a9b0a658997a"},{"name":"created_at","label":"Created At","active":true,"disabled":false,"tag":"input","validation":"date","required":true,"hint":"Insert 'Created At'","type":"date","key":"6a9b0a658997b"},{"name":"updated_at","label":"Updated At","active":true,"disabled":false,"tag":"input","validation":"date","required":true,"hint":"Insert 'Updated At'","type":"date","key":"6a9b0a658997c"}], helper:{ loading:false, error:null }, valid:{ student_add_6a9b0a658996d:null } }; }, props: { page: { type: String, default: "list" }, send_to: { type: String, default: null }, extra: { type: Array, default: () => [] }, allow: { type: Array, default: () => [] }, attrs: { type: Object, default: () => {} }, inline:{ type: Boolean, default: false }, admin:{ type: Boolean, default: true }, binds: { type: Object, default: () => {} }, received_values: { type: Object, default: () => {} } }, watch:{ binds: { handler(newValue, oldValue) { Object.keys(newValue).forEach((item)=>{ this.data[item] = newValue[item] }) }, immediate: true, // Ejecutar inmediatamente deep: true // Usar true si es un objeto/array }, /** received_values: { handler(newValue, oldValue) { Object.keys(newValue).forEach((item)=>{ this.data[item] = newValue[item] }) }, immediate: true, deep: true } **/ }, computed:{ render_fields(){ let fields = [] if (this.fields.length>0) { this.fields.forEach((field)=>{ if(Array.isArray(field)){ let s_field = [] field.forEach((f)=>{ if ("parent_field" in f && "child_field" in f) { f.where[f.child_field] = this.data[f.parent_field] f.key = this.data[f.parent_field] } s_field.push({... f }); }) fields.push([... s_field ]); } else { if ("parent_field" in field && "child_field" in field) { field.where[field.child_field] = this.data[field.parent_field] field.key = this.data[field.parent_field] } fields.push({... field }); } }) } return fields }, }, methods: { async Save() { this.helper.loading = true if(this.valid['student_add_6a9b0a658996d'] == true){ const formData = new FormData this.$form_data(formData,this.data) let destination = 'students' if(this.send_to){ destination = this.send_to } let update = null const promise = await this.$you.save(destination,formData,update); if (promise) { this.helper.loading = false if(promise.data.success==true){ this.$toast_success("Agregar Estudiante saved successfully!.") this.$hash('home') } else { this.$toast_warning(promise.data.error.message) } } } else { this.helper.loading = false } }, validate(id,value){ this.valid[id] = value }, }, created(){ }, }; window.componentes.StudentAdd = StudentAdd;