1
0
mirror of https://github.com/cjango/dcat-vue.git synced 2025-12-06 14:20:03 +08:00

checkbox & watch

This commit is contained in:
weiwait
2023-03-08 15:20:40 +08:00
parent b22d185482
commit 0f0153b348
18 changed files with 417 additions and 380 deletions

View File

@@ -1 +1 @@
.file-list-wrap[data-v-4317a8d6]{margin-top:6px!important}.cropper-container{direction:ltr;font-size:0;line-height:0;position:relative;touch-action:none;user-select:none}.cropper-container img{backface-visibility:hidden;display:block;height:100%;image-orientation:0deg;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}.cropper-wrap-box,.cropper-canvas,.cropper-drag-box,.cropper-crop-box,.cropper-modal{bottom:0;left:0;position:absolute;right:0;top:0}.cropper-wrap-box,.cropper-canvas{overflow:hidden}.cropper-drag-box{background-color:#fff;opacity:0}.cropper-modal{background-color:#000;opacity:.5}.cropper-view-box{display:block;height:100%;outline:1px solid #39f;outline-color:#3399ffbf;overflow:hidden;width:100%}.cropper-dashed{border:0 dashed #eee;display:block;opacity:.5;position:absolute}.cropper-dashed.dashed-h{border-bottom-width:1px;border-top-width:1px;height:33.3333333333%;left:0;top:33.3333333333%;width:100%}.cropper-dashed.dashed-v{border-left-width:1px;border-right-width:1px;height:100%;left:33.3333333333%;top:0;width:33.3333333333%}.cropper-center{display:block;height:0;left:50%;opacity:.75;position:absolute;top:50%;width:0}.cropper-center:before,.cropper-center:after{background-color:#eee;content:" ";display:block;position:absolute}.cropper-center:before{height:1px;left:-3px;top:0;width:7px}.cropper-center:after{height:7px;left:0;top:-3px;width:1px}.cropper-face,.cropper-line,.cropper-point{display:block;height:100%;opacity:.1;position:absolute;width:100%}.cropper-face{background-color:#fff;left:0;top:0}.cropper-line{background-color:#39f}.cropper-line.line-e{cursor:ew-resize;right:-3px;top:0;width:5px}.cropper-line.line-n{cursor:ns-resize;height:5px;left:0;top:-3px}.cropper-line.line-w{cursor:ew-resize;left:-3px;top:0;width:5px}.cropper-line.line-s{bottom:-3px;cursor:ns-resize;height:5px;left:0}.cropper-point{background-color:#39f;height:5px;opacity:.75;width:5px}.cropper-point.point-e{cursor:ew-resize;margin-top:-3px;right:-3px;top:50%}.cropper-point.point-n{cursor:ns-resize;left:50%;margin-left:-3px;top:-3px}.cropper-point.point-w{cursor:ew-resize;left:-3px;margin-top:-3px;top:50%}.cropper-point.point-s{bottom:-3px;cursor:s-resize;left:50%;margin-left:-3px}.cropper-point.point-ne{cursor:nesw-resize;right:-3px;top:-3px}.cropper-point.point-nw{cursor:nwse-resize;left:-3px;top:-3px}.cropper-point.point-sw{bottom:-3px;cursor:nesw-resize;left:-3px}.cropper-point.point-se{bottom:-3px;cursor:nwse-resize;height:20px;opacity:1;right:-3px;width:20px}@media (min-width: 768px){.cropper-point.point-se{height:15px;width:15px}}@media (min-width: 992px){.cropper-point.point-se{height:10px;width:10px}}@media (min-width: 1200px){.cropper-point.point-se{height:5px;opacity:.75;width:5px}}.cropper-point.point-se:before{background-color:#39f;bottom:-50%;content:" ";display:block;height:200%;opacity:0;position:absolute;right:-50%;width:200%}.cropper-invisible{opacity:0}.cropper-bg{background-image:url(../images/bg.png)}.cropper-hide{display:block;height:0;position:absolute;width:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-drag-box,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed}.n-modal-container{z-index:99999999!important}.modal-container[data-v-546838c3]{border-radius:10px}.modal-container .cropper-container[data-v-546838c3]{width:480px;height:270px}.modal-container .cropper-container img[data-v-546838c3]{max-width:100%;display:block}.modal-container .large[data-v-546838c3]{width:960px!important;height:540px!important}.modal-container .cropper-controls[data-v-546838c3]{padding:11px 0 11px 11px;background-color:#c9c9c9;border-radius:0 0 6px 6px}.file-list-wrap[data-v-38bcae26]{margin-top:2px!important}.preview[data-v-38bcae26]{width:138px;height:138px;border:1px solid #dae1e7;border-radius:10px;background-color:#f1f1f1;display:flex;justify-content:center;align-items:center}.preview img[data-v-38bcae26]{max-width:100%;max-height:100%;border-radius:4px;padding:1px}.preview[data-v-38bcae26]:hover{border:1px dashed #2dd3c4}.custom-upload-dragger[data-v-38bcae26]{width:138px;height:138px;display:flex;justify-content:center;align-items:center;border-radius:10px}.custom-upload-dragger .btn-plus[data-v-38bcae26]{font-size:88px;color:#b0b0b0}.add[data-v-9ae53601]{font-size:20px}.map-container{margin-top:18px;height:var(--f14f1f20)}.map-container canvas{border-radius:10px;box-shadow:1px 1px 6px #aaa}
.file-list-wrap[data-v-938bf30a]{margin-top:6px!important}.cropper-container{direction:ltr;font-size:0;line-height:0;position:relative;touch-action:none;user-select:none}.cropper-container img{backface-visibility:hidden;display:block;height:100%;image-orientation:0deg;max-height:none!important;max-width:none!important;min-height:0!important;min-width:0!important;width:100%}.cropper-wrap-box,.cropper-canvas,.cropper-drag-box,.cropper-crop-box,.cropper-modal{bottom:0;left:0;position:absolute;right:0;top:0}.cropper-wrap-box,.cropper-canvas{overflow:hidden}.cropper-drag-box{background-color:#fff;opacity:0}.cropper-modal{background-color:#000;opacity:.5}.cropper-view-box{display:block;height:100%;outline:1px solid #39f;outline-color:#3399ffbf;overflow:hidden;width:100%}.cropper-dashed{border:0 dashed #eee;display:block;opacity:.5;position:absolute}.cropper-dashed.dashed-h{border-bottom-width:1px;border-top-width:1px;height:33.3333333333%;left:0;top:33.3333333333%;width:100%}.cropper-dashed.dashed-v{border-left-width:1px;border-right-width:1px;height:100%;left:33.3333333333%;top:0;width:33.3333333333%}.cropper-center{display:block;height:0;left:50%;opacity:.75;position:absolute;top:50%;width:0}.cropper-center:before,.cropper-center:after{background-color:#eee;content:" ";display:block;position:absolute}.cropper-center:before{height:1px;left:-3px;top:0;width:7px}.cropper-center:after{height:7px;left:0;top:-3px;width:1px}.cropper-face,.cropper-line,.cropper-point{display:block;height:100%;opacity:.1;position:absolute;width:100%}.cropper-face{background-color:#fff;left:0;top:0}.cropper-line{background-color:#39f}.cropper-line.line-e{cursor:ew-resize;right:-3px;top:0;width:5px}.cropper-line.line-n{cursor:ns-resize;height:5px;left:0;top:-3px}.cropper-line.line-w{cursor:ew-resize;left:-3px;top:0;width:5px}.cropper-line.line-s{bottom:-3px;cursor:ns-resize;height:5px;left:0}.cropper-point{background-color:#39f;height:5px;opacity:.75;width:5px}.cropper-point.point-e{cursor:ew-resize;margin-top:-3px;right:-3px;top:50%}.cropper-point.point-n{cursor:ns-resize;left:50%;margin-left:-3px;top:-3px}.cropper-point.point-w{cursor:ew-resize;left:-3px;margin-top:-3px;top:50%}.cropper-point.point-s{bottom:-3px;cursor:s-resize;left:50%;margin-left:-3px}.cropper-point.point-ne{cursor:nesw-resize;right:-3px;top:-3px}.cropper-point.point-nw{cursor:nwse-resize;left:-3px;top:-3px}.cropper-point.point-sw{bottom:-3px;cursor:nesw-resize;left:-3px}.cropper-point.point-se{bottom:-3px;cursor:nwse-resize;height:20px;opacity:1;right:-3px;width:20px}@media (min-width: 768px){.cropper-point.point-se{height:15px;width:15px}}@media (min-width: 992px){.cropper-point.point-se{height:10px;width:10px}}@media (min-width: 1200px){.cropper-point.point-se{height:5px;opacity:.75;width:5px}}.cropper-point.point-se:before{background-color:#39f;bottom:-50%;content:" ";display:block;height:200%;opacity:0;position:absolute;right:-50%;width:200%}.cropper-invisible{opacity:0}.cropper-bg{background-image:url(../images/bg.png)}.cropper-hide{display:block;height:0;position:absolute;width:0}.cropper-hidden{display:none!important}.cropper-move{cursor:move}.cropper-crop{cursor:crosshair}.cropper-disabled .cropper-drag-box,.cropper-disabled .cropper-face,.cropper-disabled .cropper-line,.cropper-disabled .cropper-point{cursor:not-allowed}.n-modal-container{z-index:99999999!important}.modal-container[data-v-546838c3]{border-radius:10px}.modal-container .cropper-container[data-v-546838c3]{width:480px;height:270px}.modal-container .cropper-container img[data-v-546838c3]{max-width:100%;display:block}.modal-container .large[data-v-546838c3]{width:960px!important;height:540px!important}.modal-container .cropper-controls[data-v-546838c3]{padding:11px 0 11px 11px;background-color:#c9c9c9;border-radius:0 0 6px 6px}.file-list-wrap[data-v-7c5aa1a1]{margin-top:2px!important}.preview[data-v-7c5aa1a1]{width:138px;height:138px;border:1px solid #dae1e7;border-radius:10px;background-color:#f1f1f1;display:flex;justify-content:center;align-items:center}.preview img[data-v-7c5aa1a1]{max-width:100%;max-height:100%;border-radius:4px;padding:1px}.preview[data-v-7c5aa1a1]:hover{border:1px dashed #2dd3c4}.custom-upload-dragger[data-v-7c5aa1a1]{width:138px;height:138px;display:flex;justify-content:center;align-items:center;border-radius:10px}.custom-upload-dragger .btn-plus[data-v-7c5aa1a1]{font-size:88px;color:#b0b0b0}.add[data-v-139ef708]{font-size:20px}.map-container{margin-top:18px;height:var(--6102778f)}.map-container canvas{border-radius:10px;box-shadow:1px 1px 6px #aaa}

File diff suppressed because one or more lines are too long

View File

@@ -6,6 +6,7 @@ use Dcat\Admin\Extend\ServiceProvider;
use Dcat\Admin\Admin;
use Dcat\Admin\Form;
use Illuminate\Support\Facades\Event;
use Weiwait\DcatVue\Field\Checkbox;
use Weiwait\DcatVue\Field\DateRange;
use Weiwait\DcatVue\Field\Distpicker;
use Weiwait\DcatVue\Field\File;
@@ -59,6 +60,7 @@ class DcatVueServiceProvider extends ServiceProvider
Form::extend('vSelect', Select::class);
Form::extend('vMultipleSelect', MultipleSelect::class);
Form::extend('vNumber', Number::class);
Form::extend('vCheckbox', Checkbox::class);
Admin::requireAssets('@weiwait.dcat-vue');
}

View File

@@ -6,12 +6,12 @@ use Dcat\Admin\Form\Field;
use Dcat\Admin\Support\Helper;
use Dcat\Admin\Widgets\Checkbox as WidgetCheckbox;
use Weiwait\DcatVue\Field\Traits\FieldCommon;
use Weiwait\DcatVue\Field\Traits\HasOptions;
use Weiwait\DcatVue\Field\Traits\HasWatch;
class Vue extends Field\Checkbox
class Checkbox extends Field\Checkbox
{
use FieldCommon;
protected array $watch = [];
use FieldCommon, HasOptions, HasWatch;
public function render()
{
@@ -30,9 +30,10 @@ class Vue extends Field\Checkbox
$this->addVariables([
'checked' => $this->checked,
'watch' => $this->watch,
]);
$this->withProvides();
$this->addVariables([
'provides' => $this->variables(),
]);
@@ -45,7 +46,7 @@ class Vue extends Field\Checkbox
return $this->attributes;
}
public function disabled($disabled): Vue
public function disabled($disabled): static
{
$this->addVariables([
'disabled' => (array) $disabled
@@ -54,14 +55,11 @@ class Vue extends Field\Checkbox
return $this;
}
public function watch($column, $handler): Vue
protected function withProvides()
{
$this->watch[] = [
'type' => "$column:change",
'handler' => $handler,
];
return $this;
$this->addVariables([
'component' => 'Checkbox',
]);
}
protected function checkboxRender()

View File

@@ -6,10 +6,11 @@ use Dcat\Admin\Form\Field;
use Dcat\Admin\Support\Helper;
use Illuminate\Support\Str;
use Weiwait\DcatVue\Field\Traits\FieldCommon;
use Weiwait\DcatVue\Field\Traits\HasWatch;
class DateRange extends Field\DateRange
{
use FieldCommon;
use FieldCommon, HasWatch;
public function render()
{

View File

@@ -6,10 +6,11 @@ use Dcat\Admin\Form\Field;
use Exception;
use Illuminate\Support\Str;
use Weiwait\DcatVue\Field\Traits\FieldCommon;
use Weiwait\DcatVue\Field\Traits\HasWatch;
class Distpicker extends Field
{
use FieldCommon;
use FieldCommon, HasWatch;
// 地图高度
protected string $height = '380px';
// 模板id

View File

@@ -5,11 +5,12 @@ namespace Weiwait\DcatVue\Field;
use Dcat\Admin\Form\Field;
use Illuminate\Support\Str;
use Weiwait\DcatVue\Field\Traits\FieldCommon;
use Weiwait\DcatVue\Field\Traits\HasWatch;
use Weiwait\DcatVue\Models\WeiwaitUpload;
class File extends Field\File
{
use FieldCommon;
use FieldCommon, HasWatch;
protected string $disk;

View File

@@ -6,11 +6,12 @@ use Dcat\Admin\Form\Field;
use Dcat\Admin\Support\Helper;
use Illuminate\Support\Str;
use Weiwait\DcatVue\Field\Traits\FieldCommon;
use Weiwait\DcatVue\Field\Traits\HasWatch;
use Weiwait\DcatVue\Models\WeiwaitUpload;
class Image extends Field\Image
{
use FieldCommon;
use FieldCommon, HasWatch;
protected string $disk;
protected bool $disableCropper = false;

View File

@@ -8,11 +8,12 @@ use Illuminate\Support\Arr;
use Illuminate\Support\MessageBag;
use Illuminate\Support\Str;
use Weiwait\DcatVue\Field\Traits\FieldCommon;
use Weiwait\DcatVue\Field\Traits\HasWatch;
use function Swoole\Coroutine\map;
class KeyValue extends Field\KeyValue
{
use FieldCommon;
use FieldCommon, HasWatch;
private bool $is_list = false;
private bool $is_serial = false;

View File

@@ -6,10 +6,11 @@ use Dcat\Admin\Form\Field;
use Dcat\Admin\Support\Helper;
use Illuminate\Support\Str;
use Weiwait\DcatVue\Field\Traits\FieldCommon;
use Weiwait\DcatVue\Field\Traits\HasWatch;
class ListField extends Field\ListField
{
use FieldCommon;
use FieldCommon, HasWatch;
public function render()
{

View File

@@ -5,11 +5,12 @@ namespace Weiwait\DcatVue\Field;
use Dcat\Admin\Form\Field;
use Illuminate\Support\Str;
use Weiwait\DcatVue\Field\Traits\FieldCommon;
use Weiwait\DcatVue\Field\Traits\HasWatch;
use Weiwait\DcatVue\Models\WeiwaitUpload;
class MultipleFile extends Field\MultipleFile
{
use FieldCommon;
use FieldCommon, HasWatch;
protected string $disk;

View File

@@ -6,11 +6,12 @@ use Dcat\Admin\Form\Field;
use Dcat\Admin\Support\Helper;
use Illuminate\Support\Str;
use Weiwait\DcatVue\Field\Traits\FieldCommon;
use Weiwait\DcatVue\Field\Traits\HasWatch;
use Weiwait\DcatVue\Models\WeiwaitUpload;
class MultipleImage extends Field\MultipleImage
{
use FieldCommon;
use FieldCommon, HasWatch;
protected string $disk;

View File

@@ -6,10 +6,11 @@ use Dcat\Admin\Form\Field;
use Dcat\Admin\Support\Helper;
use Illuminate\Support\Str;
use Weiwait\DcatVue\Field\Traits\FieldCommon;
use Weiwait\DcatVue\Field\Traits\HasWatch;
class MultipleSelect extends Field\MultipleSelect
{
use FieldCommon;
use FieldCommon, HasWatch;
private string $optionsFromKeyValueField = '';
private string $concatSeparator = '';

View File

@@ -5,10 +5,11 @@ namespace Weiwait\DcatVue\Field;
use Dcat\Admin\Form\Field;
use Illuminate\Support\Str;
use Weiwait\DcatVue\Field\Traits\FieldCommon;
use Weiwait\DcatVue\Field\Traits\HasWatch;
class Number extends Field\Number
{
use FieldCommon;
use FieldCommon, HasWatch;
public function render()
{

View File

@@ -6,10 +6,11 @@ use Dcat\Admin\Form\Field;
use Dcat\Admin\Support\Helper;
use Weiwait\DcatVue\Field\Traits\FieldCommon;
use Weiwait\DcatVue\Field\Traits\HasOptions;
use Weiwait\DcatVue\Field\Traits\HasWatch;
class Select extends Field\Select
{
use HasOptions, FieldCommon;
use HasOptions, FieldCommon, HasWatch;
private string $optionsFromKeyValueField = '';
private string $concatSeparator = '';

View File

@@ -6,10 +6,11 @@ use Dcat\Admin\Form\Field;
use Dcat\Admin\Support\Helper;
use Illuminate\Support\Str;
use Weiwait\DcatVue\Field\Traits\FieldCommon;
use Weiwait\DcatVue\Field\Traits\HasWatch;
class Tag extends Field\Tags
{
use FieldCommon;
use FieldCommon, HasWatch;
public function render()
{

View File

@@ -0,0 +1,22 @@
<?php
namespace Weiwait\DcatVue\Field\Traits;
use Dcat\Admin\Exception\RuntimeException;
use Dcat\Admin\Form\Field;
use Illuminate\Database\Eloquent\Model;
trait HasWatch
{
public function watch(string $field, string $handler): static
{
$this->addVariables([
'watches' => array_merge(
$this->variables()['watches'] ?? [],
[compact('field', 'handler')]
)
]);
return $this;
}
}

View File

@@ -113,4 +113,7 @@ return [
'2.8.5' => [
'fixed replace of multiple image',
],
'2.9.0' => [
'checkbox & watch',
],
];