6
0
Fork 0
jiqu-library-server/app/Admin/Extensions/Form/Product/SelectAttr.php

70 lines
1.6 KiB
PHP

<?php
namespace App\Admin\Extensions\Form\Product;
use Dcat\Admin\Form\Field;
class SelectAttr extends Field
{
protected $view = 'admin.form.product-select-attr';
protected $listen = '';
protected static $js = [
'/vendor/vue/vue.js',
// 'https://cdn.jsdelivr.net/npm/vue/dist/vue.js' // 这里可以将vue.js下载下来引入
];
public function listen($listen = '')
{
$this->listen = $listen;
return $this;
}
public function render()
{
$this->addVariables(['listen' => $this->listen]);
return parent::render();
}
/**
* 格式化保存值
*
* @param [type] $data
* @return void
*/
protected function prepareInputValue($value)
{
$attrs = $value;
//过滤空值;
if ($attrs) {
$attrs =json_decode($attrs, true);
foreach ($attrs as $key=> &$attr) {
$attr['attrs'] = array_filter(array_map(function ($item) {
if (!empty($item['value'])) {
return $item;
}
}, $attr['attrs']));
//如果该组无值,则删除该组
if (count($attr['attrs']) < 1) {
unset($attrs[$key]);
}
}
}
return $attrs;
}
/**
* 格式化渲染值
*
* @param [type] $value
* @return void
*/
protected function formatFieldData($data)
{
$value = parent::formatFieldData($data);
// dd($value);
return json_encode($value);
}
}