添加测试的代码生成以及采购编码的页面的代码生成

This commit is contained in:
panx
2024-08-23 16:04:38 +08:00
parent 3566f03653
commit abccb6c47c
19 changed files with 1397 additions and 0 deletions

View File

@@ -0,0 +1,52 @@
<?php
declare (strict_types = 1);
namespace app\admin\controller;
use app\AdminController;
use Webman\Http\Request;
use app\admin\model\Ceshi as CeshiModel;
/**
* ceshi
* 测试代码
* <!---->
* Class Ceshi
* @package app\admin\controller
*/
class Ceshi extends AdminController
{
/**
* Ceshi模型对象
* @var \app\admin\model\Ceshi
*/
public function __construct()
{
parent::__construct();
$this->model = new CeshiModel;
}
/**
* 默认生成的方法为index/add/edit/del/status 五个方法
* 当创建CURD的时候DIY的函数体和模板为空请自行编写代码
*/
/**
* zdy 函数
*/
public function zdy()
{
return $this->view();
}
/**
* xiaoMing 函数
*/
public function xiaoMing()
{
return $this->view();
}
}

View File

@@ -0,0 +1,36 @@
<?php
declare (strict_types = 1);
namespace app\admin\controller;
use app\AdminController;
use Webman\Http\Request;
use app\admin\model\PdmPartitem as PdmPartitemModel;
/**
* pdm_partitem
* 部件
* <!---->
* Class PdmPartitem
* @package app\admin\controller
*/
class PdmPartitem extends AdminController
{
/**
* PdmPartitem模型对象
* @var \app\admin\model\PdmPartitem
*/
public function __construct()
{
parent::__construct();
$this->model = new PdmPartitemModel;
}
/**
* 默认生成的方法为index/add/edit/del/status 五个方法
* 当创建CURD的时候DIY的函数体和模板为空请自行编写代码
*/
}

View File

@@ -0,0 +1,36 @@
<?php
declare (strict_types = 1);
namespace app\admin\controller;
use app\AdminController;
use Webman\Http\Request;
use app\common\model\PdmPurchasecode as PdmPurchasecodeModel;
/**
* pdm_purchasecode
* 采购编码
* <!--partmanage-->
* Class PdmPurchasecode
* @package app\admin\controller
*/
class PdmPurchasecode extends AdminController
{
/**
* PdmPurchasecode模型对象
* @var \app\common\model\PdmPurchasecode
*/
public function __construct()
{
parent::__construct();
$this->model = new PdmPurchasecodeModel;
}
/**
* 默认生成的方法为index/add/edit/del/status 五个方法
* 当创建CURD的时候DIY的函数体和模板为空请自行编写代码
*/
}

95
app/admin/model/Ceshi.php Normal file
View File

@@ -0,0 +1,95 @@
<?php
namespace app\admin\model;
use think\Model;
use think\model\concern\SoftDelete;
/**
* ceshi
* <!---->
* 测试代码
* Class Ceshi
* @package app\admin\model
*/
class Ceshi extends Model
{
use SoftDelete;
// 定义时间戳字段名
protected $createTime = 'create_time';
protected $updateTime = 'update_time';
protected $deleteTime = 'delete_time';
/**
* 定义 sa_user 关联模型
* @localKey id
* @bind nickname
*/
public function user()
{
return $this->hasOne(\app\common\model\system\User::Class,'group_id','id')->bind(['nickname']);
}
public function setHobbyAttr($value)
{
if (!empty($value) && is_array($value)) {
$value = implode(',',$value);
}
return $value;
}
public function getHobbyAttr($value)
{
if (!empty($value) && is_string($value)) {
$value = explode(',',$value);
}
return $value;
}
public function setAlbumAttr($value)
{
if (!empty($value)) {
$value = serialize($value);
}
return $value;
}
public function getAlbumAttr($value)
{
if (!empty($value)) {
$value = unserialize($value);
}
return $value;
}
public function setJsonAttr($value)
{
if (!empty($value) && is_array($value)) {
$arr = [];
foreach ($value['key'] as $key => $elem) {
$arr[$elem] = $value['value'][$key];
}
$value = json_encode($arr,JSON_UNESCAPED_UNICODE);
}
return $value ?: json_encode([]);
}
public function getJsonAttr($value)
{
if (!empty($value) && is_string($value)) {
$value = json_decode($value, true);
}
return $value;
}
}

View File

@@ -0,0 +1,59 @@
<?php
namespace app\admin\model;
use think\Model;
use think\model\concern\SoftDelete;
/**
* pdm_partitem
* <!---->
* 部件
* Class PdmPartitem
* @package app\admin\model
*/
class PdmPartitem extends Model
{
use SoftDelete;
// 定义时间戳字段名
protected $createTime = 'create_time';
protected $updateTime = 'update_time';
protected $deleteTime = 'delete_time';
/**
* 定义 sa_user 关联模型
* @localKey createrid
* @bind nickname,name
*/
public function user()
{
return $this->hasOne(\app\common\model\system\User::Class,'id','createrid')->bind(['nickname','name']);
}
public function setPartattributeAttr($value)
{
if (!empty($value) && is_array($value)) {
$arr = [];
foreach ($value['key'] as $key => $elem) {
$arr[$elem] = $value['value'][$key];
}
$value = json_encode($arr,JSON_UNESCAPED_UNICODE);
}
return $value ?: json_encode([]);
}
public function getPartattributeAttr($value)
{
if (!empty($value) && is_string($value)) {
$value = json_decode($value, true);
}
return $value;
}
}

View File

@@ -39,7 +39,28 @@ class PdmParttype extends Model
return \app\common\model\system\Admin::select()->toArray();
}
public function setPartattributeAttr($value)
{
if (!empty($value) && is_array($value)) {
$arr = [];
foreach ($value['key'] as $key => $elem) {
$arr[$elem] = $value['value'][$key];
}
$value = json_encode($arr,JSON_UNESCAPED_UNICODE);
}
return $value ?: json_encode([]);
}
public function getPartattributeAttr($value)
{
if (!empty($value) && is_string($value)) {
$value = json_decode($value, true);
}
return $value;
}

View File

@@ -0,0 +1,36 @@
<?php
namespace app\admin\validate;
use think\Validate;
/**
* <!---->
* Ceshi 验证器
* Class Ceshi
* @package app\admin\validate
*/
class Ceshi extends Validate
{
/**
* 验证规则
*/
protected $rule = [
];
/**
* 提示消息
*/
protected $message = [
];
/**
* 验证场景
*/
protected $scene = [
'add' => [],
'edit' => [],
];
}

View File

@@ -0,0 +1,36 @@
<?php
namespace app\admin\validate;
use think\Validate;
/**
* <!---->
* PdmPartitem 验证器
* Class PdmPartitem
* @package app\admin\validate
*/
class PdmPartitem extends Validate
{
/**
* 验证规则
*/
protected $rule = [
];
/**
* 提示消息
*/
protected $message = [
];
/**
* 验证场景
*/
protected $scene = [
'add' => [],
'edit' => [],
];
}

View File

@@ -0,0 +1,155 @@
<include file="/public/header" />
<!-- // 重定位style -->
<!---->
<link href="__STATICADMIN__css/content.css" rel="stylesheet" type="text/css" />
<div class="layui-fluid">
<form class="layui-form layui-card" >
<div class="layui-card-body">
<gt name="$data.id" value="0">
<input type="text" name="id" value="{$data.id}" hidden="">
<else/>
<input type="text" name="id" value="" hidden="">
</gt>
<div class="layui-form-item" >
<label class="layui-form-label">姓名</label>
<div class="layui-input-block"><input class="layui-input" name="name" placeholder="请输入" lay-verify=""value="{$data.name}" ></div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">性别</label>
<div class="layui-input-block">
<php>$Sex_LIST = [0=>['title'=>'男','value'=>'1','checked'=>true,],1=>['title'=>'女','value'=>'0','checked'=>false,],];</php>
<volist name="Sex_LIST" id="vo">
<input type="radio" name="sex" value="{$vo.value}" title="{$vo.title}"
<if (isset($data['id']) && $data['id']) >
<eq name="$vo.value" value="$data.sex">checked</eq>
<else/>
<eq name="$vo.checked" value="true">checked</eq>
</if>
>
</volist></div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">用户头像</label>
<div class="layui-input-block"> <input class="layui-input layui-input-upload avatar" name="avatar" value="{$data.avatar}">
<button type="button" class="layui-btn" lay-choose="avatar" data-type="images" >
<i class="layui-icon layui-icon-windows"></i> 选择
</button>
<div class="clear"></div>
<notempty name="$data['avatar']" >
<div class="layui-upload-drag layui-uplpad-image mt10" lay-upload="avatar" data-type="images" data-accept="file" data-size="102400">
<i class="layui-icon layui-icon-upload layui-hide"></i>
<p class="layui-hide">点击上传,或将文件拖拽到此处</p>
<div >
<hr><img src="{$data.avatar}" class="layui-upload-dragimg avatar" alt="上传成功后渲染" >
<span class="layui-badge layui-upload-clear">删除</span>
</div>
</div>
<else/>
<div class="layui-upload-drag layui-uplpad-image mt10" lay-upload="avatar" data-type="images" data-accept="file" data-size="102400">
<i class="layui-icon layui-icon-upload"></i>
<p>点击上传,或将文件拖拽到此处</p>
<div class="layui-hide">
<hr><img src="{$data.avatar}" class="layui-upload-dragimg avatar" alt="上传成功后渲染" >
<span class="layui-badge layui-upload-clear">删除</span>
</div>
</div>
</notempty>
</div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">相册</label>
<div class="layui-input-block">
<div class="layui-imagesbox">
<!-- // 循环输出代码 -->
<notempty name="$data['album']" >
<volist name="$data['album']" id="vo">
<div class="layui-input-inline layui-uplpad-image">
<img src="{$vo.src}" lay-image-hover >
<input type="text" name="album[{$key}][src]" class="layui-hide" value="{$vo.src}" >
<input type="text" name="album[{$key}][title]" class="layui-input" value="{$vo.title}" placeholder="图片简介">
<span class="layui-badge layui-badge-red" data-name="album" onclick="layui.admin.resetInput(this,'images');">删除</span>
</div>
</volist>
</notempty>
<div class="layui-input-inline layui-uplpad-image">
<div class="layui-upload-drag" lay-upload="album" data-type="multiple" data-accept="file" data-size="102400">
<i class="layui-icon layui-icon-upload"></i>
<p>点击上传,或将文件拖拽到此处</p>
<div class="layui-hide"></div>
</div>
<button type="button" class="layui-btn layui-btn-xs layui-btn-fluid" lay-choose="album" data-name="album" data-type="multiple">
<i class="layui-icon layui-icon-windows"></i> 选择
</button>
</div>
</div></div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">星级</label>
<div class="layui-input-block"> <input class="layui-input layui-hide" name="stars" value="{$data.stars}" >
<div lay-rate="stars" name="stars" data-default="1" data-length="5" data-half="" data-theme="#1890ff" ></div></div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">城市</label>
<div class="layui-input-block"> <input type="text" id="city" class="layui-hide" lay-cascader="" name="city" data-value="label" data-parents="1" value="{$data.city}" /></div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">爱好</label>
<div class="layui-input-block">
<php>$Hobby_LIST = [0=>['title'=>'写作','value'=>'write','checked'=>true,],1=>['title'=>'阅读','value'=>'read','checked'=>true,],2=>['title'=>'游戏','value'=>'game','checked'=>false,],];</php>
<volist name="Hobby_LIST" id="vo">
<input type="checkbox" name="hobby[]" lay-skin="primary" value="{$vo.value}" title="{$vo.title}"
<if (isset($data['id']) && $data['id']) >
<in name="$vo.value" value="$data.hobby">checked</in>
<else/>
<eq name="$vo.checked" value="true">checked</eq>
</if>
>
</volist></div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">数组组件</label>
<div class="layui-input-block"> <table class="layui-table">
<thead>
<tr>
<th>名称</th>
<th>变量值</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<notempty name="data.json">
<volist name="data.json" id="vo" key="i">
<tr>
<td><input type="text" class="layui-input" name="json[key][]" value="{$key}" ></td>
<td><input type="text" class="layui-input" name="json[value][]" value="{$vo}"></td>
<td><i class="layui-icon fa-times" data-name="json" onclick="layui.admin.resetInput(this);"></i></td>
</tr>
</volist>
</notempty>
</tbody>
</table>
<button type="button" class="layui-btn layui-btn-normal layui-jsonvar-add" data-name="json">追加</button></div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">编辑器</label>
<div class="layui-input-block"> <textarea id="content" lay-editor class="layui-hide" name="content" type="layui-textarea" >{$data.content}</textarea></div>
</div>
<div class="layui-footer layui-form-footer">
<button class="layui-btn layui-btn-primary" type="button" sa-event="closeDialog">{:__('取消')}</button>
<button class="layui-btn" type="button" lay-filter="submitIframe" lay-submit>{:__('提交')}</button>
</div>
</form>
</div>
<include file="/public/static" />
<include file="/public/footer" />

View File

@@ -0,0 +1,269 @@
<include file="/public/header" />
<!---->
<div class="layui-fluid">
<div class="layui-card">
<!-- // 默认操作按钮 -->
<div class="layui-card-header layadmin-card-header-auto ">
<div class="layui-form">
<!-- // 自定义搜索参数 -->
<div id="laytable-search" class="layui-form-item" >
<div class="layui-inline">
<div class="layui-form-label">{:__('ID')}</div>
<div class="layui-input-inline ">
<input name="id" class="layui-input" type="text" placeholder="{:__('ID')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('性别')}</div>
<div class="layui-input-inline ">
<php> $Sex_list = [0=>['title'=>'男','value'=>'1','checked'=>true,],1=>['title'=>'女','value'=>'0','checked'=>false,],]; </php>
<select name="sex" lay-search >
<option value="">{:__('请选择')}</option>
<volist name="Sex_list" id="vo">
<option value="{$vo.value}">{$vo.title}</option>
</volist>
</select>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('头像')}</div>
<div class="layui-input-inline ">
<input name="avatar" class="layui-input" type="text" placeholder="{:__('头像')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('爱好')}</div>
<div class="layui-input-inline ">
<php> $Hobby_list = [0=>['title'=>'写作','value'=>'write','checked'=>true,],1=>['title'=>'阅读','value'=>'read','checked'=>true,],2=>['title'=>'游戏','value'=>'game','checked'=>false,],]; </php>
<select name="hobby" lay-search >
<option value="">{:__('请选择')}</option>
<volist name="Hobby_list" id="vo">
<option value="{$vo.value}">{$vo.title}</option>
</volist>
</select>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('内容页')}</div>
<div class="layui-input-inline ">
<input name="text" class="layui-input" type="text" placeholder="{:__('内容页')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('年龄')}</div>
<div class="layui-input-inline ">
<input name="age" class="layui-input" type="text" placeholder="{:__('年龄')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('关键词')}</div>
<div class="layui-input-inline ">
<input name="tags" class="layui-input" type="text" placeholder="{:__('关键词')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('相册')}</div>
<div class="layui-input-inline ">
<input name="album" class="layui-input" type="text" placeholder="{:__('相册')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('星级')}</div>
<div class="layui-input-inline" style="max-height:20px;">
<input name="stars" class="layui-input layui-hide stars" type="text" placeholder="{:__('星级')}"/>
<div lay-rate="stars" data-default="1" data-theme="#1890ff" data-length="5" class="layui-inline"></div>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('签名')}</div>
<div class="layui-input-inline ">
<input name="interest" class="layui-input" type="text" placeholder="{:__('签名')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('星期')}</div>
<div class="layui-input-inline ">
<input name="week" class="layui-input" type="text" placeholder="{:__('星期')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('生日')}</div>
<div class="layui-input-inline ">
<input name="birthday" class="layui-input" type="text" placeholder="{:__('生日')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('数组')}</div>
<div class="layui-input-inline ">
<input name="json" class="layui-input" type="text" placeholder="{:__('数组')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('色彩')}</div>
<div class="layui-input-inline ">
<input name="color" class="layui-input" type="text" placeholder="{:__('色彩')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('额度')}</div>
<div class="layui-input-inline ">
<input name="lines" class="layui-input" type="text" placeholder="{:__('额度')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('城市')}</div>
<div class="layui-input-inline ">
<input name="city" lay-cascader="" class="layui-input" type="text" placeholder="{:__('城市')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('内容')}</div>
<div class="layui-input-inline ">
<input name="content" class="layui-input" type="text" placeholder="{:__('内容')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('更新时间')}</div>
<div class="layui-input-inline ">
<input name="update_time" lay-datetime data-range="true" data-type="date" data-dateformat="yyyy/MM/dd" class="layui-input" type="text" placeholder="{:__('更新时间')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('创建时间')}</div>
<div class="layui-input-inline ">
<input name="create_time" lay-datetime data-range="true" data-type="date" data-dateformat="yyyy/MM/dd" class="layui-input" type="text" placeholder="{:__('创建时间')}"/>
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<select name="status">
<option value="">{:__('按状态查询')}</option>
<option value="2" >{:__('正常')}</option>
<option value="1" >{:__('关闭')}</option>
</select>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('姓名')}</div>
<div class="layui-input-inline ">
<input name="name" class="layui-input" type="text" placeholder="{:__('姓名')}"/>
</div>
</div>
<div class="layui-inline" >
<!-- // 默认搜索 -->
<button class="layui-btn icon-btn" lay-filter="formSearch" lay-submit><i class="layui-icon layui-icon-search"></i>{:__('搜索')}</button>
<!--formBegin-->
<button class="layui-btn icon-btn" lay-open="" data-title="{:__('添加')}" data-area="1200px,900px" data-maxmin="true" data-url="{:url('/ceshi/add')}" >
<i class="layui-icon layui-icon-add-1"></i>{:__('添加')}
</button>
<!--formEnd-->
</div>
</div>
</div>
</div>
<!-- // 创建数据实例 -->
<table id="lay-tableList" lay-filter="lay-tableList"></table>
</div>
</div>
<!-- // 列表状态栏 -->
<script type="text/html" id="columnStatus">
<input type="checkbox" lay-filter="switchStatus" data-url="{:url('/ceshi/status')}" value="{{d.id}}" lay-skin="switch" {{d.status==1?'checked':''}} />
</script>
<!-- // 列表工具栏 -->
<script type="text/html" id="tableBar">
<!--formBegin-->
<a class="layui-table-text" data-title="{:__('编辑')}" data-area="1200px,900px" data-maxmin="true"
data-url="{:url('/ceshi/edit')}?id={{d.id}}" lay-event="edit" >{:__('编辑')}</a>
<div class="layui-divider layui-divider-vertical"></div>
<!--formEnd-->
<a class="layui-table-text" data-url="{:url('/ceshi/del')}?id={{d.id}}" lay-event="del" >{:__('删除')}</a>
</script>
<script type="text/html" id="tableButton"></script>
<include file="/public/footer" />
<script>
layui.use(['admin','table'], function () {
var admin = layui.admin;
var table = layui.table;
/*
* 初始化表格
*/
var isTable = table.render({
elem: "#lay-tableList"
,url: "{:url('/ceshi/index')}"
,toolbar: '#tableButton'
,defaultToolbar: ['filter', 'exports', 'print','search']
,cellMinWidth: 160
,page: true
,limit: 18
,cols: [[
{type: 'checkbox', width: 50},
{field: 'id', align: 'center',sort: true,width: 80, title: 'ID'},
{field:'name',title:'{:__("姓名")}'},
{field:'sex',templet:function(d) {
var colsArr = [{"title":"{:__('男')}","value":"1","checked":true},{"title":"{:__('女')}","value":"0","checked":false}];
return colsArr[d.sex].title;
},title:'{:__("性别")}'},
{field:'avatar',templet:function(d) {
return '<a href="javascript:"><img class="filesuffix" lay-image-click src="'+d.avatar+'"></a>';
},title:'{:__("头像")}'},
{field:'hobby',templet:function(d) {
var colsTit = [];
var colsArr = [{"title":"{:__('写作')}","value":"write","checked":true},{"title":"{:__('阅读')}","value":"read","checked":true},{"title":"{:__('游戏')}","value":"game","checked":false}];
for (var key in colsArr) {
let el = colsArr[key];
if (d.hobby.indexOf(el.value) !== -1) {
colsTit.push(el.title);
}
}
return colsTit.join(' ');
},title:'{:__("爱好")}'},
{field:'age',title:'{:__("年龄")}'},
{field:'tags',title:'{:__("关键词")}'},
{field:'album',templet:function(d) {
var album = [];
for (var i in d.album) {
album[i] = '<a href="javascript:" class="fileslink" ><img class="filesuffix" lay-image-click src="'+d.album[i].src+'"></a>'
}
return album.join('');
},title:'{:__("相册")}'},
{field:'stars',title:'{:__("星级")}'},
{field:'json',templet:function(d) {
return JSON.stringify(d.json);
},title:'{:__("数组")}'},
{field:'city',title:'{:__("城市")}'},
{align: 'center', toolbar: '#tableBar', width:160, fixed: 'right', title: '{:__("操作")}'},
]]
})
})
</script>

View File

@@ -0,0 +1,9 @@
<include file="/public/header" />
<!-- // 重定位style -->
<!---->
<link href="__STATICADMIN__css/content.css" rel="stylesheet" type="text/css" />
<div class="layui-fluid">
示例模板,可自行开发
</div>
<include file="/public/static" />
<include file="/public/footer" />

View File

@@ -0,0 +1,9 @@
<include file="/public/header" />
<!-- // 重定位style -->
<!---->
<link href="__STATICADMIN__css/content.css" rel="stylesheet" type="text/css" />
<div class="layui-fluid">
示例模板,可自行开发
</div>
<include file="/public/static" />
<include file="/public/footer" />

View File

@@ -0,0 +1,67 @@
<include file="/public/header" />
<!-- // 重定位style -->
<!---->
<link href="__STATICADMIN__css/content.css" rel="stylesheet" type="text/css" />
<div class="layui-fluid">
<form class="layui-form layui-card" >
<div class="layui-card-body">
<gt name="$data.id" value="0">
<input type="text" name="id" value="{$data.id}" hidden="">
<else/>
<input type="text" name="id" value="" hidden="">
</gt>
<div class="layui-form-item" >
<label class="layui-form-label">PartNumber</label>
<div class="layui-input-block"><input class="layui-input" name="partnumber" placeholder="请输入" lay-verify=""value="{$data.partnumber}" ></div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">描述</label>
<div class="layui-input-block"><input class="layui-input" name="description" placeholder="请输入" lay-verify=""value="{$data.description}" ></div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">部件属性</label>
<div class="layui-input-block">
<table class="layui-table">
<thead>
<tr>
<th>名称</th>
<th>变量值</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<notempty name="data.partattribute">
<volist name="data.partattribute" id="vo" key="i">
<tr>
<td><input type="text" class="layui-input" name="partattribute[key][]" value="{$key}" ></td>
<td><input type="text" class="layui-input" name="partattribute[value][]" value="{$vo}"></td>
<td><i class="layui-icon fa-times" data-name="partattribute" onclick="layui.admin.resetInput(this);"></i></td>
</tr>
</volist>
</notempty>
</tbody>
</table>
<button type="button" class="layui-btn layui-btn-normal layui-jsonvar-add" data-name="partattribute">追加</button>
</div>
</div>
<div class="layui-form-item" >
<div class="layui-input-block"><blockquote class="layui-elem-quote">便签信息</blockquote></div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">注释</label>
<div class="layui-input-block"> <textarea id="content" lay-editor class="layui-hide" name="content" type="layui-textarea" >{$data.content}</textarea></div>
</div>
<div class="layui-footer layui-form-footer">
<button class="layui-btn layui-btn-primary" type="button" sa-event="closeDialog">{:__('取消')}</button>
<button class="layui-btn" type="button" lay-filter="submitIframe" lay-submit>{:__('提交')}</button>
</div>
</form>
</div>
<include file="/public/static" />
<include file="/public/footer" />

View File

@@ -0,0 +1,172 @@
<include file="/public/header" />
<!---->
<div class="layui-fluid">
<div class="layui-card">
<!-- // 默认操作按钮 -->
<div class="layui-card-header layadmin-card-header-auto ">
<div class="layui-form">
<!-- // 自定义搜索参数 -->
<div id="laytable-search" class="layui-form-item" >
<div class="layui-inline">
<div class="layui-form-label">{:__('ID')}</div>
<div class="layui-input-inline ">
<input name="id" class="layui-input" type="text" placeholder="{:__('ID')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('父ID')}</div>
<div class="layui-input-inline ">
<input name="pid" class="layui-input" type="text" placeholder="{:__('父ID')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('ParttypeID')}</div>
<div class="layui-input-inline ">
<input name="parttypeid" class="layui-input" type="text" placeholder="{:__('ParttypeID')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('排序')}</div>
<div class="layui-input-inline ">
<input name="sort" class="layui-input" type="text" placeholder="{:__('排序')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('描述')}</div>
<div class="layui-input-inline ">
<input name="description" class="layui-input" type="text" placeholder="{:__('描述')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('部件属性')}</div>
<div class="layui-input-inline ">
<input name="partattribute" class="layui-input" type="text" placeholder="{:__('部件属性')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('属性字段')}</div>
<div class="layui-input-inline ">
<input name="partattributetitle" class="layui-input" type="text" placeholder="{:__('属性字段')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('创建者')}</div>
<div class="layui-input-inline ">
<input name="createrid" class="layui-input" type="text" placeholder="{:__('创建者')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('注释')}</div>
<div class="layui-input-inline ">
<input name="content" class="layui-input" type="text" placeholder="{:__('注释')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('更新时间')}</div>
<div class="layui-input-inline ">
<input name="update_time" lay-datetime data-range="true" data-type="date" data-dateformat="yyyy/MM/dd" class="layui-input" type="text" placeholder="{:__('更新时间')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('创建时间')}</div>
<div class="layui-input-inline ">
<input name="create_time" lay-datetime data-range="true" data-type="date" data-dateformat="yyyy/MM/dd" class="layui-input" type="text" placeholder="{:__('创建时间')}"/>
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<select name="status">
<option value="">{:__('按状态查询')}</option>
<option value="2" >{:__('正常')}</option>
<option value="1" >{:__('关闭')}</option>
</select>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('PartNumber')}</div>
<div class="layui-input-inline ">
<input name="partnumber" class="layui-input" type="text" placeholder="{:__('PartNumber')}"/>
</div>
</div>
<div class="layui-inline" >
<!-- // 默认搜索 -->
<button class="layui-btn icon-btn" lay-filter="formSearch" lay-submit><i class="layui-icon layui-icon-search"></i>{:__('搜索')}</button>
<!--formBegin-->
<button class="layui-btn icon-btn" lay-open="" data-title="{:__('添加')}" data-area="1100px,750px" data-maxmin="true" data-url="{:url('/PdmPartitem/add')}" >
<i class="layui-icon layui-icon-add-1"></i>{:__('添加')}
</button>
<!--formEnd-->
</div>
</div>
</div>
</div>
<!-- // 创建数据实例 -->
<table id="lay-tableList" lay-filter="lay-tableList"></table>
</div>
</div>
<!-- // 列表状态栏 -->
<script type="text/html" id="columnStatus">
<input type="checkbox" lay-filter="switchStatus" data-url="{:url('/PdmPartitem/status')}" value="{{d.id}}" lay-skin="switch" {{d.status==1?'checked':''}} />
</script>
<!-- // 列表工具栏 -->
<script type="text/html" id="tableBar">
<!--formBegin-->
<a class="layui-table-text" data-title="{:__('编辑')}" data-area="1100px,750px" data-maxmin="true"
data-url="{:url('/PdmPartitem/edit')}?id={{d.id}}" lay-event="edit" >{:__('编辑')}</a>
<div class="layui-divider layui-divider-vertical"></div>
<!--formEnd-->
<a class="layui-table-text" data-url="{:url('/PdmPartitem/del')}?id={{d.id}}" lay-event="del" >{:__('删除')}</a>
</script>
<script type="text/html" id="tableButton"></script>
<include file="/public/footer" />
<script>
layui.use(['admin','table'], function () {
var admin = layui.admin;
var table = layui.table;
/*
* 初始化表格
*/
var isTable = table.render({
elem: "#lay-tableList"
,url: "{:url('/PdmPartitem/index')}"
,toolbar: '#tableButton'
,defaultToolbar: ['filter', 'exports', 'print','search']
,cellMinWidth: 160
,page: true
,limit: 18
,cols: [[
{type: 'checkbox', width: 50},
{field: 'id', align: 'center',sort: true,width: 80, title: 'ID'},
{field:'partnumber',title:'{:__("PartNumber")}'},
{field:'description',title:'{:__("描述")}'},
{field:'partattribute',templet:function(d) {
return JSON.stringify(d.partattribute);
},title:'{:__("部件属性")}'},
{field:'createrid',title:'{:__("创建者")}'},
{field:'content',title:'{:__("注释")}'},
{field:'status',templet: '#columnStatus',title:'{:__("状态")}'},
{align: 'center', toolbar: '#tableBar', width:160, fixed: 'right', title: '{:__("操作")}'},
]]
})
})
</script>

View File

@@ -32,6 +32,33 @@
<div class="layui-input-block"><input class="layui-input" name="parttypevalue" placeholder="请输入" required="1" lay-verify=""value="{$data.parttypevalue}" ></div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">分类属性</label>
<div class="layui-input-block">
<table class="layui-table">
<thead>
<tr>
<th>名称</th>
<th>变量值</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<notempty name="data.partattribute">
<volist name="data.partattribute" id="vo" key="i">
<tr>
<td><input type="text" class="layui-input" name="partattribute[key][]" value="{$key}" ></td>
<td><input type="text" class="layui-input" name="partattribute[value][]" value="{$vo}"></td>
<td><i class="layui-icon fa-times" data-name="partattribute" onclick="layui.admin.resetInput(this);"></i></td>
</tr>
</volist>
</notempty>
</tbody>
</table>
<button type="button" class="layui-btn layui-btn-normal layui-jsonvar-add" data-name="partattribute">追加</button>
</div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">注释</label>
<div class="layui-input-block"> <textarea id="content" lay-editor class="layui-hide" name="content" type="layui-textarea" >{$data.content}</textarea></div>

View File

@@ -0,0 +1,62 @@
<include file="/public/header" />
<!-- // 重定位style -->
<!--partmanage-->
<link href="__STATICADMIN__css/content.css" rel="stylesheet" type="text/css" />
<div class="layui-fluid">
<form class="layui-form layui-card" >
<div class="layui-card-body">
<gt name="$data.id" value="0">
<input type="text" name="id" value="{$data.id}" hidden="">
<else/>
<input type="text" name="id" value="" hidden="">
</gt>
<div class="layui-form-item layui-row" ><div class="layui-col-md6 layui-grid-0" data-index="0"><div class="layui-form-item" >
<label class="layui-form-label"><font color="red">* </font>物料编码</label>
<div class="layui-input-block"><input class="layui-input" name="purchasecode" placeholder="请输入" required="1" lay-verify=""value="{$data.purchasecode}" ></div>
</div>
</div><div class="layui-col-md6 layui-grid-1" data-index="1"><div class="layui-form-item" >
<label class="layui-form-label"><font color="red">* </font>物料描述</label>
<div class="layui-input-block"><input class="layui-input" name="partitemmfpn" placeholder="请输入" required="1" lay-verify=""value="{$data.partitemmfpn}" ></div>
</div>
</div></div>
<div class="layui-form-item" >
<label class="layui-form-label">物料属性</label>
<div class="layui-input-block">
<table class="layui-table">
<thead>
<tr>
<th>名称</th>
<th>变量值</th>
<th>操作</th>
</tr>
</thead>
<tbody>
<notempty name="data.attribute">
<volist name="data.attribute" id="vo" key="i">
<tr>
<td><input type="text" class="layui-input" name="attribute[key][]" value="{$key}" ></td>
<td><input type="text" class="layui-input" name="attribute[value][]" value="{$vo}"></td>
<td><i class="layui-icon fa-times" data-name="attribute" onclick="layui.admin.resetInput(this);"></i></td>
</tr>
</volist>
</notempty>
</tbody>
</table>
<button type="button" class="layui-btn layui-btn-normal layui-jsonvar-add" data-name="attribute">追加</button>
</div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">注释</label>
<div class="layui-input-block"> <textarea id="content" lay-editor class="layui-hide" name="content" type="layui-textarea" >{$data.content}</textarea></div>
</div>
<div class="layui-footer layui-form-footer">
<button class="layui-btn layui-btn-primary" type="button" sa-event="closeDialog">{:__('取消')}</button>
<button class="layui-btn" type="button" lay-filter="submitIframe" lay-submit>{:__('提交')}</button>
</div>
</form>
</div>
<include file="/public/static" />
<include file="/public/footer" />

View File

@@ -0,0 +1,161 @@
<include file="/public/header" />
<!--partmanage-->
<div class="layui-fluid">
<div class="layui-card">
<!-- // 默认操作按钮 -->
<div class="layui-card-header layadmin-card-header-auto ">
<div class="layui-form">
<!-- // 自定义搜索参数 -->
<div id="laytable-search" class="layui-form-item" >
<div class="layui-inline">
<div class="layui-form-label">{:__('ID')}</div>
<div class="layui-input-inline ">
<input name="id" class="layui-input" type="text" placeholder="{:__('ID')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('父ID')}</div>
<div class="layui-input-inline ">
<input name="pid" class="layui-input" type="text" placeholder="{:__('父ID')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('排序')}</div>
<div class="layui-input-inline ">
<input name="sort" class="layui-input" type="text" placeholder="{:__('排序')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('物料描述')}</div>
<div class="layui-input-inline ">
<input name="partitemmfpn" class="layui-input" type="text" placeholder="{:__('物料描述')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('物料属性')}</div>
<div class="layui-input-inline ">
<input name="attribute" class="layui-input" type="text" placeholder="{:__('物料属性')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('管理员ID')}</div>
<div class="layui-input-inline ">
<input name="admin_id" class="layui-input" type="text" placeholder="{:__('管理员ID')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('会员ID')}</div>
<div class="layui-input-inline ">
<input name="user_id" class="layui-input" type="text" placeholder="{:__('会员ID')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('注释')}</div>
<div class="layui-input-inline ">
<input name="content" class="layui-input" type="text" placeholder="{:__('注释')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('更新时间')}</div>
<div class="layui-input-inline ">
<input name="update_time" lay-datetime data-range="true" data-type="date" data-dateformat="yyyy/MM/dd" class="layui-input" type="text" placeholder="{:__('更新时间')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('创建时间')}</div>
<div class="layui-input-inline ">
<input name="create_time" lay-datetime data-range="true" data-type="date" data-dateformat="yyyy/MM/dd" class="layui-input" type="text" placeholder="{:__('创建时间')}"/>
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<select name="status">
<option value="">{:__('按状态查询')}</option>
<option value="2" >{:__('正常')}</option>
<option value="1" >{:__('关闭')}</option>
</select>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('物料编码')}</div>
<div class="layui-input-inline ">
<input name="purchasecode" class="layui-input" type="text" placeholder="{:__('物料(OA)编码')}"/>
</div>
</div>
<div class="layui-inline" >
<!-- // 默认搜索 -->
<button class="layui-btn icon-btn" lay-filter="formSearch" lay-submit><i class="layui-icon layui-icon-search"></i>{:__('搜索')}</button>
<!--formBegin-->
<button class="layui-btn icon-btn" lay-open="" data-title="{:__('添加')}" data-area="1000px,750px" data-maxmin="true" data-url="{:url('/PdmPurchasecode/add')}" >
<i class="layui-icon layui-icon-add-1"></i>{:__('添加')}
</button>
<!--formEnd-->
</div>
</div>
</div>
</div>
<!-- // 创建数据实例 -->
<table id="lay-tableList" lay-filter="lay-tableList"></table>
</div>
</div>
<!-- // 列表状态栏 -->
<script type="text/html" id="columnStatus">
<input type="checkbox" lay-filter="switchStatus" data-url="{:url('/PdmPurchasecode/status')}" value="{{d.id}}" lay-skin="switch" {{d.status==1?'checked':''}} />
</script>
<!-- // 列表工具栏 -->
<script type="text/html" id="tableBar">
<!--formBegin-->
<a class="layui-table-text" data-title="{:__('编辑')}" data-area="1000px,750px" data-maxmin="true"
data-url="{:url('/PdmPurchasecode/edit')}?id={{d.id}}" lay-event="edit" >{:__('编辑')}</a>
<div class="layui-divider layui-divider-vertical"></div>
<!--formEnd-->
<a class="layui-table-text" data-url="{:url('/PdmPurchasecode/del')}?id={{d.id}}" lay-event="del" >{:__('删除')}</a>
</script>
<script type="text/html" id="tableButton"></script>
<include file="/public/footer" />
<script>
layui.use(['admin','table'], function () {
var admin = layui.admin;
var table = layui.table;
/*
* 初始化表格
*/
var isTable = table.render({
elem: "#lay-tableList"
,url: "{:url('/PdmPurchasecode/index')}"
,toolbar: '#tableButton'
,defaultToolbar: ['filter', 'exports', 'print','search']
,cellMinWidth: 160
,page: true
,limit: 18
,cols: [[
//{type: 'checkbox', width: 50},
{field: 'id', fixed: 'left', align: 'center',sort: true,width: 50, title: 'ID'},
{field:'purchasecode',fixed: 'left',sort: true,width: 80,title:'{:__("物料(OA)编码")}'},
{field:'partitemmfpn',sort: true,title:'{:__("物料描述")}'},
{field:'content',title:'{:__("注释")}'},
{field:'status',fixed: 'right',width: 50,templet: '#columnStatus',title:'{:__("状态")}'},
{align: 'center', toolbar: '#tableBar', width:160, fixed: 'right', title: '{:__("操作")}'},
]]
})
})
</script>

View File

@@ -0,0 +1,59 @@
<?php
namespace app\common\model;
use think\Model;
use think\model\concern\SoftDelete;
/**
* pdm_purchasecode
* <!--partmanage-->
* 采购编码
* Class PdmPurchasecode
* @package app\common\model
*/
class PdmPurchasecode extends Model
{
use SoftDelete;
// 定义时间戳字段名
protected $createTime = 'create_time';
protected $updateTime = 'update_time';
protected $deleteTime = 'delete_time';
/**
* 定义 sa_user 关联模型
* @localKey user_id
* @bind nickname,name
*/
public function user()
{
return $this->hasOne(\app\common\model\system\User::Class,'id','user_id')->bind(['nickname','name']);
}
public function setAttributeAttr($value)
{
if (!empty($value) && is_array($value)) {
$arr = [];
foreach ($value['key'] as $key => $elem) {
$arr[$elem] = $value['value'][$key];
}
$value = json_encode($arr,JSON_UNESCAPED_UNICODE);
}
return $value ?: json_encode([]);
}
public function getAttributeAttr($value)
{
if (!empty($value) && is_string($value)) {
$value = json_decode($value, true);
}
return $value;
}
}

View File

@@ -0,0 +1,36 @@
<?php
namespace app\common\validate;
use think\Validate;
/**
* <!--partmanage-->
* PdmPurchasecode 验证器
* Class PdmPurchasecode
* @package app\common\validate
*/
class PdmPurchasecode extends Validate
{
/**
* 验证规则
*/
protected $rule = [
];
/**
* 提示消息
*/
protected $message = [
];
/**
* 验证场景
*/
protected $scene = [
'add' => [],
'edit' => [],
];
}