mirror of
https://gitee.com/ulthon/ulthon_admin.git
synced 2026-07-01 15:32:48 +08:00
- 新增 `tools:ua:build` 命令,用于合并前端模块文件 - 添加构建配置文件 `ua.build.json` 定义源文件和输出 - 引入基础服务类 `ToolsUaServiceBase` 处理路径和配置读取 - 创建命令基类 `ToolsUaBuildBase` 实现文件合并逻辑 - 注册新命令到 UlthonAdminService 服务容器 - 提供完整的模块化前端代码结构(core、common、table、listen、api、utils) - 添加详细的使用说明文档 README.md - 包含示例 Scheme 文件展示功能
121 lines
4.8 KiB
PHP
121 lines
4.8 KiB
PHP
<?php
|
|
|
|
namespace app\admin\scheme;
|
|
|
|
use app\common\scheme\BaseScheme;
|
|
use app\common\scheme\attribute\Table;
|
|
use app\common\scheme\attribute\Field;
|
|
use app\common\scheme\attribute\Component;
|
|
use app\common\scheme\attribute\Index;
|
|
|
|
#[Table(name: 'ul_test_goods', comment: '')]
|
|
#[Index(columns: ['uid'], name: 'uid', type: 'UNIQUE')]
|
|
#[Index(columns: ['cate_id'], name: 'cate_id', type: 'NORMAL')]
|
|
#[Index(columns: ['detail'], name: 'detail', type: 'FULLTEXT')]
|
|
class TestGoods extends BaseScheme
|
|
{
|
|
#[Field(type: 'int', length: 11, nullable: false, unsigned: true, autoIncrement: true, primary: true)]
|
|
public $id;
|
|
|
|
#[Field(type: 'bigint', length: 11, nullable: false, default: '0', comment: '分类ID', unsigned: true)]
|
|
#[Component(type: 'relation', options: ['table' => 'mall_cate', 'relationBindSelect' => 'title'])]
|
|
public $cate_id;
|
|
|
|
#[Field(type: 'char', length: 20, precision: 20, nullable: false, default: '', comment: '商品名称')]
|
|
public $title;
|
|
|
|
#[Field(type: 'char', length: 255, precision: 255, nullable: false, comment: '商品logo')]
|
|
#[Component(type: 'image', options: [])]
|
|
public $logo;
|
|
|
|
#[Field(type: 'text', nullable: false, comment: '商品图片')]
|
|
#[Component(type: 'images', options: [])]
|
|
public $images;
|
|
|
|
#[Field(type: 'text', nullable: false, comment: '商品描述')]
|
|
#[Component(type: 'editor', options: [])]
|
|
public $describe;
|
|
|
|
#[Field(type: 'int', length: 11, nullable: false, default: '0', comment: '总库存', unsigned: true)]
|
|
public $total_stock;
|
|
|
|
#[Field(type: 'int', length: 11, nullable: false, default: '0', comment: '排序', unsigned: true)]
|
|
public $sort;
|
|
|
|
#[Field(type: 'int', length: 11, nullable: false, default: '0', comment: '状态', unsigned: true)]
|
|
#[Component(type: 'radio', options: ['正常', '禁用'])]
|
|
public $status;
|
|
|
|
#[Field(length: 100, precision: 100, nullable: false, comment: '合格证')]
|
|
#[Component(type: 'file', options: [])]
|
|
public $cert_file;
|
|
|
|
#[Field(type: 'text', nullable: false, comment: '检测报告')]
|
|
#[Component(type: 'files', options: [])]
|
|
public $verfiy_file;
|
|
|
|
#[Field(type: 'char', length: 255, precision: 255, nullable: false, default: '', comment: '备注说明')]
|
|
public $remark;
|
|
|
|
#[Field(type: 'int', length: 11, nullable: false, default: '0', unsigned: true)]
|
|
public $create_time;
|
|
|
|
#[Field(type: 'int', length: 11, nullable: false, default: '0', unsigned: true)]
|
|
public $update_time;
|
|
|
|
#[Field(type: 'int', length: 11, nullable: false, default: '0', unsigned: true)]
|
|
public $delete_time;
|
|
|
|
#[Field(type: 'datetime', nullable: false, comment: '发布日期')]
|
|
#[Component(type: 'date', options: ['date'])]
|
|
public $publish_time;
|
|
|
|
#[Field(type: 'date', nullable: false, comment: '售卖日期')]
|
|
#[Component(type: 'date', options: ['datetime'])]
|
|
public $sale_time;
|
|
|
|
#[Field(length: 100, precision: 100, nullable: false, comment: '简介')]
|
|
#[Component(type: 'textarea', options: [])]
|
|
public $intro;
|
|
|
|
#[Field(type: 'int', length: 11, nullable: false, comment: '秒杀状态', unsigned: true)]
|
|
#[Component(type: 'select', options: [0 => '未参加', 1 => '已开始', 3 => '已结束'])]
|
|
public $time_status;
|
|
|
|
#[Field(type: 'int', length: 11, nullable: false, default: '0', comment: '是否推荐')]
|
|
#[Component(type: 'switch', options: ['不推荐', '推荐'])]
|
|
public $is_recommend;
|
|
|
|
#[Field(length: 100, precision: 100, nullable: false, default: '0', comment: '商品类型')]
|
|
#[Component(type: 'checkbox', options: ['taobao' => '淘宝', 'jd' => '京东'])]
|
|
public $shop_type;
|
|
|
|
#[Field(length: 100, precision: 100, nullable: false, comment: '商品标签')]
|
|
#[Component(type: 'table', options: ['table' => 'mall_tag', 'type' => 'checkbox', 'valueField' => 'id', 'fieldName' => 'title'])]
|
|
public $tag;
|
|
|
|
#[Field(length: 100, precision: 100, comment: '商品标签(单选)')]
|
|
#[Component(type: 'table', options: ['table' => 'mall_tag', 'type' => 'radio', 'valueField' => 'id', 'fieldName' => 'title'])]
|
|
public $tag_backup;
|
|
|
|
#[Field(length: 100, precision: 100, nullable: false, comment: '产地')]
|
|
#[Component(type: 'city', options: ['name-province' => '0', 'code' => '0'])]
|
|
public $from_area;
|
|
|
|
#[Field(length: 100, precision: 100, nullable: false, default: '山东省/临沂市', comment: '仓库')]
|
|
#[Component(type: 'city', options: ['level' => 'city'])]
|
|
public $store_city;
|
|
|
|
#[Field(length: 100, precision: 100, nullable: false, comment: '商品标签 (输入)')]
|
|
#[Component(type: 'tag', options: [])]
|
|
public $tag_input;
|
|
|
|
#[Field(length: 100, precision: 100, nullable: false, comment: '唯一id')]
|
|
public $uid;
|
|
|
|
#[Field(type: 'decimal', length: 10, precision: 10, comment: '价格')]
|
|
public $price;
|
|
|
|
#[Field(type: 'text', comment: '详情')]
|
|
public $detail;
|
|
} |