'Acciones', 'code' => 'Código', 'name' => 'Nombre de la tienda', 'description' => 'Descripción', 'manager_name' => 'Gerente', 'pais' => 'País', 'estado' => 'Estado', 'localidad' => 'Localidad', 'municipio' => 'Municipio', 'codigo_postal' => 'Código Postal', 'colonia' => 'Colonia', 'direccion' => 'Dirección', 'lat' => 'Latitud', 'lng' => 'Longitud', 'email' => 'Correo de la tienda', 'tel' => 'Teléfono', 'tel2' => 'Teléfono Alternativo', 'rfc' => 'RFC', 'nombre_fiscal' => 'Nombre Fiscal', 'regimen_fiscal' => 'Régimen Fiscal', 'domicilio_fiscal' => 'Domicilio Fiscal', 'show_on_website' => 'Visible en Sitio Web', 'enable_ecommerce' => 'eCommerce', 'status' => 'Estatus', 'created_at' => 'Creada', 'updated_at' => 'Modificada', ]; } /** * Retorna el formato (formatter) para cada columna (similar a 'bt_datatable.format'). * * @return array */ protected function format(): array { return [ 'action' => [ 'formatter' => 'storeActionFormatter', 'onlyFormatter' => true, ], 'code' => [ 'formatter' => [ 'name' => 'dynamicBadgeFormatter', 'params' => ['color' => 'secondary'], ], 'align' => 'center', 'switchable' => false, ], 'name' => [ 'switchable' => false, ], 'description' => [ 'visible' => false, ], 'codigo_postal' => [ 'align' => 'center', 'visible' => false, ], 'manager_name' => [ 'formatter' => 'managerFormatter', 'visible' => true, ], 'pais' => [ 'align' => 'center', ], 'estado' => [ 'formatter' => 'textNowrapFormatter', 'align' => 'center', ], 'localidad' => [ 'formatter' => 'textNowrapFormatter', 'visible' => false, ], 'municipio' => [ 'formatter' => 'textNowrapFormatter', 'visible' => false, ], // la segunda definición de 'codigo_postal' la omites, pues ya está arriba 'colonia' => [ 'formatter' => 'textNowrapFormatter', 'visible' => false, ], 'direccion' => [ 'formatter' => 'direccionFormatter', 'visible' => false, ], 'lat' => [ 'align' => 'center', 'visible' => false, ], 'lng' => [ 'align' => 'center', 'visible' => false, ], 'email' => [ 'visible' => true, 'formatter' => 'emailFormatter', ], 'tel' => [ 'formatter' => 'telFormatter', ], 'tel2' => [ 'formatter' => 'telFormatter', 'visible' => false, ], 'rfc' => [ 'align' => 'center', 'visible' => false, ], 'nombre_fiscal' => [ 'formatter' => 'textNowrapFormatter', 'visible' => false, ], 'regimen_fiscal' => [ 'visible' => false, ], 'domicilio_fiscal' => [ 'align' => 'center', 'visible' => false, ], 'show_on_website' => [ 'formatter' => 'dynamicBooleanFormatter', 'align' => 'center', ], 'enable_ecommerce' => [ 'formatter' => 'dynamicBooleanFormatter', 'align' => 'center', ], 'status' => [ 'formatter' => [ 'name' => 'dynamicBooleanFormatter', 'params' => ['tag' => 'activo'], ], 'align' => 'center', ], 'created_at' => [ 'formatter' => 'textNowrapFormatter', 'align' => 'center', 'visible' => false, ], 'updated_at' => [ 'formatter' => 'textNowrapFormatter', 'align' => 'center', 'visible' => false, ], ]; } /** * Sobrescribe la config base de la tabla para inyectar * tus valores (similar a 'bt_datatable'). * * @return array */ protected function bootstraptableConfig(): array { // Llamamos al padre y reemplazamos/ajustamos lo que necesitemos. return array_merge(parent::bootstraptableConfig(), [ 'sortName' => 'code', 'exportFileName' => 'Tiendas', 'showFullscreen' => false, 'showPaginationSwitch'=> false, 'showRefresh' => false, 'pagination' => false, ]); } /** * Montamos el componente (ajustando rutas o algo adicional), * y llamamos al parent::mount() para que se configure la tabla. */ public function mount(): void { parent::mount(); // Definimos las rutas específicas de este componente $this->routes = [ 'admin.store-manager.stores.edit' => route('admin.store-manager.stores.edit', ['store' => ':id']), 'admin.store-manager.stores.delete' => route('admin.store-manager.stores.delete', ['store' => ':id']), ]; } /** * Retorna la vista a renderizar por este componente. * * @return string */ protected function viewPath(): string { return 'vuexy-store-manager::livewire.stores.index'; } }