Giter VIP home page Giter VIP logo

china-distpicker's People

Contributors

a443939412 avatar health901 avatar ignoracenfly avatar jxlwqq avatar z-song avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

china-distpicker's Issues

一对多场景中,"新增"后distpicker失效

$form->hasMany('template_rules','收费标准',function (Form\NestedForm $form) { //My codes. });
如上所示,当我进入新增/编辑表单中,点击"新增",第一个能够正常选择:
image
但是新增第二个失败,无法选择这些地市:
image

使用的是laravel-admin1.8.17,模型关联正常,关联数据正常显示
//model A //... public function template_rules(){ return $this->hasMany(PostageTemplateRoule::class,'template_id'); } //...

省市区后面想要直接跟具体的街道地址

微信截图_20191211182555

如图,项目中大部分情况下都需要选择省市区之后直接跟上具体的街道地址。希望新版本能够支持。本人前端能力太弱,无法提价pr,只能暂时使用 html 组件自己写……

数据库字段使用 char 类型而出现的问题

数据库:

PostgreSQL 9.6.8 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18), 64-bit

char 会输出空字符串, 就像如下

$("").distpicker({
  province: '450000        ', // 出现空字符
  city: '450100',
  district: '450107'
});

去除空字符即可正常

ViewException In Distpicker.php line 104 :

PHP version PHP/7.4.7
Laravel version 6.18.38
Laravel Admin Version 1.8.4

 ViewException In Distpicker.php line 104 :
  Call to a member function with() on string (View: /www/localhost/blog/vendor/encore/laravel-admin/resources/views/form.blade.php)


#0 /www/localhost/blog/vendor/encore/laravel-admin/src/../resources/views/form.blade.php(31): Encore\ChinaDistpicker\Distpicker->render()
#1 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php(43): include('/www/localhost/...')
#2 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php(59): Illuminate\View\Engines\PhpEngine->evaluatePath('/www/localhost/...', Array)
#3 /www/localhost/blog/vendor/facade/ignition/src/Views/Engines/CompilerEngine.php(36): Illuminate\View\Engines\CompilerEngine->get('/www/localhost/...', Array)
#4 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/View/View.php(143): Facade\Ignition\Views\Engines\CompilerEngine->get('/www/localhost/...', Array)
#5 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/View/View.php(126): Illuminate\View\View->getContents()
#6 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/View/View.php(91): Illuminate\View\View->renderContents()
#7 /www/localhost/blog/vendor/encore/laravel-admin/src/Form/Builder.php(673): Illuminate\View\View->render()
#8 /www/localhost/blog/vendor/encore/laravel-admin/src/Form.php(1402): Encore\Admin\Form\Builder->render()
#9 /www/localhost/blog/vendor/encore/laravel-admin/src/Layout/Column.php(100): Encore\Admin\Form->render()
#10 /www/localhost/blog/vendor/encore/laravel-admin/src/Layout/Row.php(80): Encore\Admin\Layout\Column->build()
#11 /www/localhost/blog/vendor/encore/laravel-admin/src/Layout/Content.php(215): Encore\Admin\Layout\Row->build()
#12 /www/localhost/blog/vendor/encore/laravel-admin/src/Layout/Content.php(308): Encore\Admin\Layout\Content->build()
#13 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Http/Response.php(42): Encore\Admin\Layout\Content->render()
#14 /www/localhost/blog/vendor/symfony/http-foundation/Response.php(205): Illuminate\Http\Response->setContent(Object(Encore\Admin\Layout\Content))
#15 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Routing/Router.php(749): Symfony\Component\HttpFoundation\Response->__construct(Object(Encore\Admin\Layout\Content), 200, Array)
#16 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Routing/Router.php(721): Illuminate\Routing\Router::toResponse(Object(Illuminate\Http\Request), Object(Encore\Admin\Layout\Content))
#17 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Routing/Router.php(681): Illuminate\Routing\Router->prepareResponse(Object(Illuminate\Http\Request), Object(Encore\Admin\Layout\Content))
#18 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(130): Illuminate\Routing\Router->Illuminate\Routing\{closure}(Object(Illuminate\Http\Request))
#19 /www/localhost/blog/vendor/encore/laravel-admin/src/Middleware/Permission.php(46): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#20 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Encore\Admin\Middleware\Permission->handle(Object(Illuminate\Http\Request), Object(Closure))
#21 /www/localhost/blog/vendor/encore/laravel-admin/src/Middleware/Bootstrap.php(15): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#22 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Encore\Admin\Middleware\Bootstrap->handle(Object(Illuminate\Http\Request), Object(Closure))
#23 /www/localhost/blog/vendor/encore/laravel-admin/src/Middleware/LogOperation.php(39): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#24 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Encore\Admin\Middleware\LogOperation->handle(Object(Illuminate\Http\Request), Object(Closure))
#25 /www/localhost/blog/vendor/encore/laravel-admin/src/Middleware/Pjax.php(24): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#26 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Encore\Admin\Middleware\Pjax->handle(Object(Illuminate\Http\Request), Object(Closure))
#27 /www/localhost/blog/vendor/encore/laravel-admin/src/Middleware/Authenticate.php(26): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#28 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Encore\Admin\Middleware\Authenticate->handle(Object(Illuminate\Http\Request), Object(Closure))
#29 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php(41): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#30 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Routing\Middleware\SubstituteBindings->handle(Object(Illuminate\Http\Request), Object(Closure))
#31 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(77): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#32 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Foundation\Http\Middleware\VerifyCsrfToken->handle(Object(Illuminate\Http\Request), Object(Closure))
#33 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#34 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\View\Middleware\ShareErrorsFromSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#35 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(56): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#36 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Session\Middleware\StartSession->handle(Object(Illuminate\Http\Request), Object(Closure))
#37 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#38 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse->handle(Object(Illuminate\Http\Request), Object(Closure))
#39 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#40 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Cookie\Middleware\EncryptCookies->handle(Object(Illuminate\Http\Request), Object(Closure))
#41 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(105): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#42 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Routing/Router.php(683): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#43 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Routing/Router.php(658): Illuminate\Routing\Router->runRouteWithinStack(Object(Illuminate\Routing\Route), Object(Illuminate\Http\Request))
#44 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Routing/Router.php(624): Illuminate\Routing\Router->runRoute(Object(Illuminate\Http\Request), Object(Illuminate\Routing\Route))
#45 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Routing/Router.php(613): Illuminate\Routing\Router->dispatchToRoute(Object(Illuminate\Http\Request))
#46 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(170): Illuminate\Routing\Router->dispatch(Object(Illuminate\Http\Request))
#47 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(130): Illuminate\Foundation\Http\Kernel->Illuminate\Foundation\Http\{closure}(Object(Illuminate\Http\Request))
#48 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#49 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#50 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php(21): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#51 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Foundation\Http\Middleware\TransformsRequest->handle(Object(Illuminate\Http\Request), Object(Closure))
#52 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ValidatePostSize.php(27): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#53 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Foundation\Http\Middleware\ValidatePostSize->handle(Object(Illuminate\Http\Request), Object(Closure))
#54 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php(63): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#55 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode->handle(Object(Illuminate\Http\Request), Object(Closure))
#56 /www/localhost/blog/vendor/fideloper/proxy/src/TrustProxies.php(57): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#57 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(171): Fideloper\Proxy\TrustProxies->handle(Object(Illuminate\Http\Request), Object(Closure))
#58 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(105): Illuminate\Pipeline\Pipeline->Illuminate\Pipeline\{closure}(Object(Illuminate\Http\Request))
#59 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(145): Illuminate\Pipeline\Pipeline->then(Object(Closure))
#60 /www/localhost/blog/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php(110): Illuminate\Foundation\Http\Kernel->sendRequestThroughRouter(Object(Illuminate\Http\Request))
#61 /www/localhost/blog/public/index.php(55): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#62 {main}

如果需要保存 data-text 的值

下拉组件在 form 提交时默认是将地址 code 传给后端,如果需要保存地址 data-text,可以试试在构造 form 的时候添加三个隐藏域,并用 js 绑定地址下拉框选择事件,将选中的地址 text 传给隐藏域:

...
$form->hidden('province');
$form->hidden('city');
$form->hidden('district');
...
\Admin::script(
    "$('select[name=\"address[province_code]\"]').change(function() {
        $('input[name=\"address[province]\"]').val($('select[name=\"address[province_code]\"] option:selected').text());
    });
    $('select[name=\"address[city_code]\"]').change(function() {
        $('input[name=\"address[city]\"]').val($('select[name=\"address[city_code]\"] option:selected').text());
    });
    $('select[name=\"address[district_code]\"]').change(function() {
        $('input[name=\"address[district]\"]').val($('select[name=\"address[district_code]\"] option:selected').text());
    });
    "
);

getPlaceholder和laravel-admin 1.7.8 不兼容

Encore\Admin\Form\Field:中的getPlaceHolder定义

    public function getPlaceholder(): string
    {
        return $this->placeholder ?: trans('admin.input').' '.$this->label;
    }

要求返回值是string
Encore\ChinaDistpicker\Distpicker 中定义的
protected $placeholder= []; 为数组,使用时报错。

可否为 data-value-type 增加一个配置选项

因后端查询时需要得知具体的省市区名称,如果储存地区编号则需要单独维护一张表去获取地区名称,插件是否可以增加一个 data-value-type 配置选项来改变前台传入的省市区数据类型。

关于一对一的使用问题

在 $form 里,因为是一对一的关系,所以我写成:
$form->distpicker( [ 'pdetails.country' => '省' , 'pdetails.province' => '市' , 'pdetails.city' => '区' ] )->autoselect( 2 );
如果我这样写,就获取不到值。这三个字段是 一对一的副表 pdetails 表里的字段,我如何使用?
但是我写成:
$form->distpicker( [ 'country' => '省' , 'province' => '市' , 'city' => '区' ] )->autoselect( 2 );

就可以获取到值。但是保存的时候,提示我字段不存在,因为这三个字段不存在在主表里。

如何解决?

如何在 grid 里展示数据

现在设置是可以设置的,但是无法在 filter 里加过滤的级联,而且如何展示设置好的数据?

看样子是把 code 存在了字段里,难道说展示的时候需要自己建表去库里查询吗?

新版本添加的问题

使用dev-master的版本时,报了一个方法找不到
Method Encore\ChinaDistpicker\Distpicker::getValidationMessages does not exis

关于更新数据的问题。

如题。我想更新数据。默认好像是走的插件里JS写好的数据。而没走数据库。是直接改JS里的数据就可以了么?求大佬指导。

只能选三级

如果只想选省份或者只想使用省份和城市的话就会报错。。

如何在 grid 里展示数据?

现在设置是可以设置的,但是无法在 filter 里加过滤的级联,而且如何展示设置好的数据?

看样子是把 code 存在了字段里,难道说展示的时候需要自己建表去库里查询吗?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.