2 Star 4 Fork 0

tjztjspz / tp-script-vue-curd

Create your Gitee Account
Explore and code with more than 6 million developers,Free private repositories !:)
Sign up
Clone or download
Cancel
Notice: Creating folder will generate an empty file .keep, because not support in Git
Loading...
README.md

tp-script-vue-curd


thinkphp6 script方式引入vue 自动生成curd逻辑

Vue Version ThinkPHP Version ant-design-vue Version

项目初衷

只需在 模型表 中配置字段信息,就可以生成 列表、筛选、编辑 页面,且页面灵活,可适应多种情况。

文档

访问 https://www.yuque.com/junt/tp-script-vue-curd

生成页面预览

  1. 列表列表
  2. 编辑编辑
  3. 子表子表

安装配置

  1. 安装
    composer require tj/tp-script-vue-curd
  2. 复制composer安装后的文件‘vendor/tj/tp-script-vue-curd/copy/tp-script-vue-curd-static.php’到项目public目录下。

  3. 复制composer安装后的文件‘vendor/tj/tp-script-vue-curd/copy/tp-script-vue-curd-config.php’到项目引用目录中,如:app/admin/。

  4. 在应用目录中的common.php文件(如:app/admin/common.php)中,引入tp-script-vue-curd-config.php。
    require_once 'tp-script-vue-curd-config.php';
    (注意:此时common.php文件与tp-script-vue-curd-config.php在同一目录中;如果应用目录没有common.php文件,需在应用目录中创建common.php文件)

  5. 修改复制出来的文件[ tp-script-vue-curd-config.php ],配置相关代码。

使用示例

1.数据库中建示例项目表

CREATE TABLE `tp-script-vue-curd-testdb`.`project`  (
             `id` int NOT NULL AUTO_INCREMENT,
             `name` varchar(120) NOT NULL DEFAULT '' COMMENT '项目名称',
             `type` varchar(30) NOT NULL DEFAULT '' COMMENT '项目分类',
             `start_time` int NOT NULL DEFAULT 0 COMMENT '项目开始时间',
             `end_time` int NOT NULL DEFAULT 0 COMMENT '项目结束时间',
             `money` decimal(11, 2) NOT NULL DEFAULT 0 COMMENT '项目金额',
             `create_time` int(10) NOT NULL DEFAULT 0 COMMENT '创建时间',
             `create_admin_id` int(11) NOT NULL DEFAULT 0 COMMENT '创建人',
             `update_time` int(10) NOT NULL DEFAULT 0 COMMENT '更新时间',
             `delete_time` int(10) NOT NULL DEFAULT 0 COMMENT '删除时间',
             `delete_admin_id` int(11) NOT NULL DEFAULT 0 COMMENT '删除人',
             `update_admin_id` int(11) NOT NULL DEFAULT 0 COMMENT '修改人',
             PRIMARY KEY (`id`)
           ) COMMENT = '项目表';

2.建立模型与控制器文件

a)在模型目录(无规定)中创建Project模型文件
b)在控制器目录(无规定)中创建Project控制器文件

3.模型与控制器配置示例

a)模型示例

    <?php
      namespace app\model;

      use tpScriptVueCurd\field\DateField;
      use tpScriptVueCurd\field\DecimalField;
      use tpScriptVueCurd\field\RadioField;
      use tpScriptVueCurd\field\StringField;
      use tpScriptVueCurd\FieldCollection;
      
      /**
       * 需要继承 \tpScriptVueCurd\base\model\BaseModel 模型类
       * Class Project
       * @package app\model
       */
      class Project extends \tpScriptVueCurd\base\model\BaseModel
      {
          /**
           * 关联的控制器配置
           * @return string
           */
          public static function getControllerClass(): string
          {
              return \app\controller\Project::class;
          }

          /**
           * 表字段配置
           * @return FieldCollection
           */
          public function fields(): FieldCollection
          {
              //FieldCollection 继承了thinkphp6的 \think\Collection,所以返回的对象可以使用 \think\Collection的方法,比如->toArray();
              return FieldCollection::make([
                  //input输入框
                  StringField::init('name','项目名称')
                      ->required(true) //必填
                      ->listShow(true)//在列表中显示此字段
                  //单选
                  ,RadioField::init('type','项目类型')
                      ->items(['A类项目','B类项目'])//选项
                      ->required(true) //必填
                      ->listShow(true)//在列表中显示此字段
                  //日期选择
                  ,DateField::init('start_time','项目开始时间')
                      ->required(true) //必填
                      ->listShow(true)//在列表中显示此字段
                  //日期选择
                  ,DateField::init('end_time','项目结束时间')
                      ->required(true) //必填
                      ->listShow(true)//在列表中显示此字段
                  //小数
                  ,DecimalField::init('salary', '项目金额')
                      ->listShow(true)
                      ->ext('元')//薪资单位,结尾
                      ->required(true)
                      //筛选配置
                      ->doFilter(fn(\tpScriptVueCurd\filter\BetweenFilter $filter)=>$filter->setItems([
                          ['start'=>0,'end'=>999.99,'title'=>'1000元以下'],
                          ['start'=>1000,'end'=>2999.99,'title'=>'1000到3000(不包含)'],
                          ['start'=>3000,'end'=>4999.99,'title'=>'3000到5000(不包含)'],
                          ['start'=>5000,'end'=>9999.99,'title'=>'5000到10000(不包含)'],
                          ['start'=>10000,'end'=>0,'title'=>'10000元及以上'],
                      ])),
              ]);
          }
      }

a)控制器示例

    <?php
      namespace app\controller;
      
      use app\BaseController;
      class Project extends BaseController
      {
          //不需要 extends ,但是需要 use trait文件:\tpScriptVueCurd\base\controller\BaseController;
          use \tpScriptVueCurd\base\controller\BaseController;

          /**
          * 控制器名称
          * @return string
          */
          public static function getTitle(): string
          {
              return '项目信息';
          }
          /**
           * 配置控制器对应的模型类
           * @return string
           */
          public static function modelClassPath(): string
          {
              return \app\model\Project::class;
          }
      }

4.然后浏览器访问这个控制器的index方法就能查看结果了(如:http://127.0.0.1:8000/index.php/project/index)。更多高级使用方法,后期再写一个文档

相关示例项目

gitee:tp-script-vue-curd-test,点击访问

Comments ( 1 )

Sign in for post a comment

About

vue(script引入)+antdv+thinkphp6,composer安装后,配置模型字段就可生成页面列表、编辑、筛选和其他高级功能。适合与后台一起使用、可以与其他框架混合使用 spread retract
PHP
MIT
Cancel

Releases (13)

All

Contributors

All

Activities

load more
can not load any more
PHP
1
https://gitee.com/tjztjspz/tp-script-vue-curd.git
git@gitee.com:tjztjspz/tp-script-vue-curd.git
tjztjspz
tp-script-vue-curd
tp-script-vue-curd
master

Search