PDM更新数据结构后,基础数据查询和BOM初始查询等基本功能都已经OK,待完善和细化相关的上传和下载服务等。

This commit is contained in:
panx
2024-12-29 22:18:05 +08:00
parent d3d429e964
commit d70fcccc1d
99 changed files with 4877 additions and 948 deletions

View File

@@ -0,0 +1,165 @@
<?php
declare (strict_types = 1);
namespace app\admin\controller;
use app\AdminController;
use Webman\Http\Request;
use app\admin\model\PdmFootprint as PdmFootprintModel;
use support\Response;
/**
* pdm_footprint
* 封装设计
* <!--partmanage-->
* Class PdmFootprint
* @package app\admin\controller
*/
class PdmFootprint extends AdminController
{
/**
* PdmFootprint模型对象
* @var \app\admin\model\PdmFootprint
*/
public function __construct()
{
parent::__construct();
$this->model = new PdmFootprintModel;
}
/**
* 默认生成的方法为index/add/edit/del/status 五个方法
* 当创建CURD的时候DIY的函数体和模板为空请自行编写代码
*/
/**
* 获取资源列表
* return Response
*/
public function index(): Response
{
if (request()->isAjax()) {
list($count, $list) = PdmFootprint::dataList(request()->all());
// $rules = list_to_tree($list,'id','pid','children',0);
$lists = list_to_tree($list,'id','pid','children',0);
return $this->success('获取成功', '/',$lists, $count);
// return $this->success('获取成功', '/');
}
return view('/pdm_footprint/index');
}
/**
* 获取资源列表
* @param array $params
* @return array
* @throws DataNotFoundException
* @throws DbException
* @throws ModelNotFoundException
*/
public static function dataList(array $params): array
{
$where = array();
if (!empty($params['footprint'])) {
$where[] = ['footprint','like','%'.$params['footprint'].'%'];
}
if (!empty($params['content'])) {
$where[] = ['content','like','%'.$params['content'].'%'];
}
$model = new PdmFootprintModel();
// $model = $this->model;
$count = $model->where($where)->count();
// $list = $model->where($where)->order('sort asc')->select()->toArray();
$list = $model->where($where)->order('sort asc')->select();
foreach($list as $key => $value){
// throw new \Exception(json_encode($value));
// throw new \Exception(json_encode($list[$key]->admin['nickname']));
$list[$key]['creator'] =__($list[$key]->admin['nickname']);
}
return [$count, $list->toArray()];
}
/**
* 添加节点数据
* @return Response
*/
public function add(): Response
{
if (request()->isPost()) {
$post = \request()->post();
// validate(\app\common\validate\system\AdminRules::class . '.add')->check($post);
$userid = get_admin_id();
$post['creatorid'] = $userid ;
if ($this->model->create($post)) {
return $this->success('添加FootPrint成功');
}
}
$data = $this->getTableFields();
$data['pid'] = input('pid', 0);
// $data['auth'] = 1;
// $data['type'] = 1;
list($count, $list) = PdmFootprint::dataList(request()->all());
return view('/pdm_footprint/add', [
'data' => $data,
'rules' => json_encode( list_to_tree($list), JSON_UNESCAPED_UNICODE),
]);
}
/**
* 编辑节点数据
* @return Response
* @throws DbException
* @throws DataNotFoundException
* @throws ModelNotFoundException
*/
public function edit(): Response
{
$id = input('id', 0);
$data = $this->model->find($id);
if (request()->isPost()) {
$post = \request()->post();
// validate(\app\common\validate\system\AdminRules::class . '.edit')->check($post);
if ($this->model->update($post)) {
return $this->success('更新FootPrint成功');
}
}
list($count, $list) = PdmFootprint::dataList(request()->all());
return view('/pdm_footprint/add', [
'data' => $data,
'rules' => json_encode( list_to_tree($list), JSON_UNESCAPED_UNICODE),
]);
}
/**
* 删除节点数据
* @return Response
* @throws DbException
*/
public function del(): Response
{
$id = input('id');
if (!empty($id)) {
// 查询子节点
if ($this->model->where('pid',$id)->count()) {
return $this->error('当前分类存在子项!');
}
// 删除单个
if ($this->model::destroy($id)) {
return $this->success('删除FootPrint成功');
}
}
return $this->error('删除失败,请检查您的参数!');
}
}

View File

@@ -4,7 +4,7 @@ namespace app\admin\controller;
use app\AdminController;
use Webman\Http\Request;
use app\common\model\PdmMfgName as PdmMfgNameModel;
use app\admin\model\PdmMfgName as PdmMfgNameModel;
use support\Response;
/**
* pdm_mfg_name
@@ -17,7 +17,7 @@ class PdmMfgName extends AdminController
{
/**
* PdmMfgName模型对象
* @var \app\common\model\PdmMfgName
* @var \app\admin\model\PdmMfgName
*/
public function __construct()
@@ -31,6 +31,43 @@ class PdmMfgName extends AdminController
* 当创建CURD的时候DIY的函数体和模板为空请自行编写代码
*/
/**
* 获取资源列表
* return Response
*/
public function index(): Response
{
$params = request()->all();
$where = array();
if (!empty($params['mfgname'])) {
$where[] = ['mfgname','like','%'.$params['mfgname'].'%'];
// $where[] = ['mfgname','like','%'.'ABRACON'.'%'];
}
if (!empty($params['mfgsite'])) {
$where[] = ['mfgsite','like','%'.$params['mfgsite'].'%'];
}
// $where[] = ['mfgname','like','%'.'ABRACON'.'%'];
$listtemp = $this->model->where($where)->select();
// $listtemp = $this->model->where($where);
// $listtemp = $this->model->find(1);
// throw new \Exception(json_encode($listtemp));
// $admin = $this->model->admin()->where($where)->select()->toArray();
// $admin = $listtemp->admin;
// throw new \Exception(json_encode($admin));
if (request()->isAjax()) {
list($count, $list) = PdmMfgName::dataList(request()->all());
// $rules = list_to_tree($list,'id','pid','children',0);
$lists = list_to_tree($list,'id','pid','children',0);
return $this->success('获取成功', '/',$lists, $count);
// return $this->success('获取成功', '/');
}
return view('/pdm_mfg_name/index');
}
/**
* 获取资源列表
@@ -46,47 +83,51 @@ class PdmMfgName extends AdminController
if (!empty($params['mfgname'])) {
$where[] = ['mfgname','like','%'.$params['mfgname'].'%'];
}
if (!empty($params['status'])) {
$where[] = ['status','like','%'.$params['status'].'%'];
if (!empty($params['mfgsite'])) {
$where[] = ['mfgsite','like','%'.$params['mfgsite'].'%'];
}
$model = new PdmMfgNameModel();
$count = $model->where($where)->count();
$list = $model->where($where)->order('sort asc')->select()->toArray();
// $list = $model->where($where)->order('sort asc')->select()->toArray();
$list = $model->where($where)->order('sort asc')->select();
foreach($list as $key => $value){
// throw new \Exception(json_encode($value));
// throw new \Exception(json_encode($lists[$key]->admin['nickname']));
$list[$key]['creator'] =__($list[$key]->admin['nickname']);
}
// $pidlist = array();
foreach ($list as $key => $value) {
$list[$key]['mfgname'] = __($value['mfgname']);
}
// $users = array();
$users = $model->usernames();
// throw new \Exception(json_encode($users));
foreach ($list as $key => $value) {
foreach ($users as $keyuser => $valueuser) {
if ($value['createrid'] == $valueuser['id']) {
// $list[$key]['createrid'] = __($valueuser['name']);
$list[$key]['createrid'] = __($valueuser['nickname']);
break;
}else{
$list[$key]['createrid'] =$list[$key]['createrid'].'|'. __('未知用户');
}
}
}
return [$count, $list];
// $users = $model->usernames();
// // throw new \Exception(json_encode($users));
// foreach ($list as $key => $value) {
// foreach ($users as $keyuser => $valueuser) {
// // if ($users[$keyuser]['id'] == $list[$key]['id']){
// // // $list[$key]['creatorid'] = __($users[$keyuser]['nickname']);
// // $list[$key]['creatorid'] = __($users[$keyuser]['name']);
// // break;
// // }
// if ($value['creatorid'] == $valueuser['id']) {
// // $list[$key]['creatorid'] = __($valueuser['name']);
// $list[$key]['creatorid'] = __($valueuser['nickname']);
// break;
// }else{
// $list[$key]['creatorid'] =$list[$key]['creatorid'].'|'. __('未知用户');
// }
// }
// }
return [$count, $list->toArray()];
}
/**
* 获取资源列表
* return Response
*/
public function index(): Response
{
if (request()->isAjax()) {
list($count, $list) = PdmMfgName::dataList(request()->all());
$rules = list_to_tree($list,'id','pid','children',0);
return $this->success('获取成功', '/',$rules, $count);
}
return view('/pdm_mfg_name/index');
}
/**
* 添加节点数据
* @return Response
@@ -97,19 +138,21 @@ class PdmMfgName extends AdminController
$post = \request()->post();
// validate(\app\common\validate\system\AdminRules::class . '.add')->check($post);
$userid = get_admin_id();
$post['createrid'] = $userid ;
$post['creatorid'] = $userid ;
// if(empty($userid)){
// $post['creatorid'] = 'empty';
// }else{
// $post['creatorid'] = 'noneempty' ;
// }
if ($this->model->create($post)) {
return $this->success('添加成功!');
}else{
return $this->error('添加失败!');
return $this->success('添加分类成功!');
}
}
$data = $this->getTableFields();
$data['pid'] = input('pid', 0);
$data['auth'] = 1;
$data['type'] = 1;
// $data['auth'] = 1;
// $data['type'] = 1;
list($count, $list) = PdmMfgName::dataList(request()->all());
return view('/pdm_mfg_name/add', [
@@ -118,54 +161,5 @@ class PdmMfgName extends AdminController
]);
}
/**
* 编辑节点数据
* @return Response
* @throws DbException
* @throws DataNotFoundException
* @throws ModelNotFoundException
*/
public function edit(): Response
{
$id = input('id', 0);
$data = $this->model->find($id);
if (request()->isPost()) {
$post = \request()->post();
// validate(\app\common\validate\system\AdminRules::class . '.edit')->check($post);
if ($this->model->update($post)) {
return $this->success('更新成功!');
}else{
return $this->error('更新失败!');
}
}
list($count, $list) = PdmMfgName::dataList(request()->all());
return view('/pdm_mfg_name/add', [
'data' => $data,
'rules' => json_encode( list_to_tree($list), JSON_UNESCAPED_UNICODE),
]);
}
/**
* 删除节点数据
* @return Response
* @throws DbException
*/
public function del(): Response
{
$id = input('id');
if (!empty($id)) {
// 查询子节点
if ($this->model->where('pid',$id)->count()) {
return $this->error('当前菜单存在子菜单!');
}
// 删除单个
if ($this->model::destroy($id)) {
return $this->success('删除菜单成功!');
}
}
return $this->error('删除失败,请检查您的参数!');
}
}

View File

@@ -0,0 +1,170 @@
<?php
declare (strict_types = 1);
namespace app\admin\controller;
use app\AdminController;
use Webman\Http\Request;
use app\admin\model\PdmPartitemIndex as PdmPartitemIndexModel;
use support\Response;
/**
* pdm_partitem_index
* Partnumber管理
* <!--partmanage-->
* Class PdmPartitemIndex
* @package app\admin\controller
*/
class PdmPartitemIndex extends AdminController
{
/**
* PdmPartitemIndex模型对象
* @var \app\admin\model\PdmPartitemIndex
*/
public function __construct()
{
parent::__construct();
$this->model = new PdmPartitemIndexModel;
}
/**
* 默认生成的方法为index/add/edit/del/status 五个方法
* 当创建CURD的时候DIY的函数体和模板为空请自行编写代码
*/
/**
* 获取资源列表
* return Response
*/
public function index(): Response
{
if (request()->isAjax()) {
list($count, $list) = PdmPartitemIndex::dataList(request()->all());
// $rules = list_to_tree($list,'id','pid','children',0);
$lists = list_to_tree($list,'id','pid','children',0);
return $this->success('获取成功', '/',$lists, $count);
// return $this->success('获取成功', '/');
}
return view('/pdm_partitem_index/index');
}
/**
* 获取资源列表
* @param array $params
* @return array
* @throws DataNotFoundException
* @throws DbException
* @throws ModelNotFoundException
*/
public static function dataList(array $params): array
{
$where = array();
if (!empty($params['partnumber'])) {
$where[] = ['partnumber','like','%'.$params['partnumber'].'%'];
}
if (!empty($params['content'])) {
$where[] = ['content','like','%'.$params['content'].'%'];
}
$model = new PdmPartitemIndexModel();
// $model = $this->model;
$count = $model->where($where)->count();
// $list = $model->where($where)->order('sort asc')->select()->toArray();
$list = $model->where($where)->order('sort asc')->select();
foreach($list as $key => $value){
// throw new \Exception(json_encode($value));
// throw new \Exception(json_encode($list[$key]->admin['nickname']));
$list[$key]['creator'] =__($list[$key]->admin == null?'': $list[$key]->admin['nickname']);
$list[$key]['parttype'] =__($list[$key]->parttype ==null?'': $list[$key]->parttype['name']);
$list[$key]['mfg_name'] =__($list[$key]->mfgname == null ?'': $list[$key]->mfgname['mfgname']);
// if($list[$key]->mfgname == null){
// $list[$key]['mfg_name'] ='';
// }else{
// $list[$key]['mfg_name'] =$list[$key]->mfgname['mfgname'];
// }
}
return [$count, $list->toArray()];
}
/**
* 添加节点数据
* @return Response
*/
public function add(): Response
{
if (request()->isPost()) {
$post = \request()->post();
// validate(\app\common\validate\system\AdminRules::class . '.add')->check($post);
$userid = get_admin_id();
$post['creatorid'] = $userid ;
if ($this->model->create($post)) {
return $this->success('添加FootPrint成功');
}
}
$data = $this->getTableFields();
$data['pid'] = input('pid', 0);
// $data['auth'] = 1;
// $data['type'] = 1;
list($count, $list) = PdmPartitemIndex::dataList(request()->all());
return view('/pdm_partitem_index/add', [
'data' => $data,
'rules' => json_encode( list_to_tree($list), JSON_UNESCAPED_UNICODE),
]);
}
/**
* 编辑节点数据
* @return Response
* @throws DbException
* @throws DataNotFoundException
* @throws ModelNotFoundException
*/
public function edit(): Response
{
$id = input('id', 0);
$data = $this->model->find($id);
if (request()->isPost()) {
$post = \request()->post();
// validate(\app\common\validate\system\AdminRules::class . '.edit')->check($post);
if ($this->model->update($post)) {
return $this->success('更新FootPrint成功');
}
}
list($count, $list) = PdmPartitemIndex::dataList(request()->all());
return view('/pdm_partitem_index/add', [
'data' => $data,
'rules' => json_encode( list_to_tree($list), JSON_UNESCAPED_UNICODE),
]);
}
/**
* 删除节点数据
* @return Response
* @throws DbException
*/
public function del(): Response
{
$id = input('id');
if (!empty($id)) {
// 查询子节点
if ($this->model->where('pid',$id)->count()) {
return $this->error('当前分类存在子项!');
}
// 删除单个
if ($this->model::destroy($id)) {
return $this->success('删除FootPrint成功');
}
}
return $this->error('删除失败,请检查您的参数!');
}
}

View File

@@ -4,26 +4,26 @@ namespace app\admin\controller;
use app\AdminController;
use Webman\Http\Request;
use app\admin\model\PdmPartitem as PdmPartitemModel;
use app\admin\model\PdmPartitemRelation as PdmPartitemRelationModel;
/**
* pdm_partitem
* 部件
* <!---->
* Class PdmPartitem
* pdm_partitem_relation
* PN关系维护
* <!--partmanage-->
* Class PdmPartitemRelation
* @package app\admin\controller
*/
class PdmPartitem extends AdminController
class PdmPartitemRelation extends AdminController
{
/**
* PdmPartitem模型对象
* @var \app\admin\model\PdmPartitem
* PdmPartitemRelation模型对象
* @var \app\admin\model\PdmPartitemRelation
*/
public function __construct()
{
parent::__construct();
$this->model = new PdmPartitemModel;
$this->model = new PdmPartitemRelationModel;
}
/**

View File

@@ -0,0 +1,83 @@
<?php
declare (strict_types = 1);
namespace app\admin\controller;
use app\AdminController;
use Webman\Http\Request;
use app\admin\model\PdmPartitemView as PdmPartitemViewModel;
/**
* pdm_partitem_view
* PN查询
* <!--partview-->
* Class PdmPartitemView
* @package app\admin\controller
*/
class PdmPartitemView extends AdminController
{
/**
* PdmPartitemView模型对象
* @var \app\admin\model\PdmPartitemView
*/
public function __construct()
{
parent::__construct();
$this->model = new PdmPartitemViewModel;
}
/**
* 默认生成的方法为index/add/edit/del/status 五个方法
* 当创建CURD的时候DIY的函数体和模板为空请自行编写代码
*/
public function index(): \support\Response
{
// $post = input();
// $post = request()->post();
$post = request()->all();
// $post['partnumber'] = input('partnumber');
$pid = input('pid');
$limit = input('limit') ?? 10;
$page = input('page') ?? 1;
// if ($pid == null) {
// $pid = (string)$this->model->minId();
// }
if (request()->isAjax()) {
// 生成查询数据
// $pid = !str_contains($pid, ',') ? $pid : explode(',',$pid);
// $where[] = ['pid','in',$pid];
// $where[] = [];
if (!empty($post['keyword'])) {
$where[] = ['partnumber|purchasecode|parttype|value|description|mpn|mfgname|symbol|footprint|datasheet|usernickname|department','like','%'.$post['keyword'].'%'];
// $where[] = ['reference','like','%'.$post['keyword'].'%'];
// $where[] = ['content','like','%'.$post['keyword'].'%'];
// $where[] = ['item','like','%'.$post['keyword'].'%'];
}else{
// $where[] = ['pid','in',$pid];
// $where[] = ['partnumber','like','%'.$post['partnumber'].'%'];
$where[] = ['partnumber|purchasecode|parttype|value|description|mpn|mfgname|symbol|footprint|datasheet|usernickname|department','like','%'.'%'];
}
$count = $this->model->where($where)->count();
// $list = $this->model->where($where)->limit((int)$limit)->page((int)$page)->select()
// ->each(function($item,$key) use ($pid){
// if ($key == 0 && $pid == '0') {
// $item['LAY_CHECKED'] = true;
// }
// return $item;
// });
$list = $this->model->where($where)->limit((int)$limit)->page((int)$page)->select();
return $this->success('查询成功', null, $list, $count);
}
return view('/pdm_partitem_view/index',[ ]);
}
}

View File

@@ -0,0 +1,92 @@
<?php
declare (strict_types = 1);
namespace app\admin\controller;
use app\AdminController;
use Webman\Http\Request;
use app\admin\model\PdmPartlist as PdmPartlistModel;
use support\Response;
use think\db\exception\DataNotFoundException;
use think\db\exception\DbException;
use think\db\exception\ModelNotFoundException;
/**
* pdm_partlist
* BOM查询
* <!--partlist-->
* Class PdmPartlist
* @package app\admin\controller
*/
class PdmPartlist extends AdminController
{
/**
* PdmPartlist模型对象
* @var \app\admin\model\PdmPartlist
*/
public function __construct()
{
parent::__construct();
$this->model = new PdmPartlistModel;
}
/**
* 默认生成的方法为index/add/edit/del/status 五个方法
* 当创建CURD的时候DIY的函数体和模板为空请自行编写代码
*/
/**
* 字典首页
* @return Response
* @throws DataNotFoundException
* @throws DbException
* @throws ModelNotFoundException
*/
public function index(): \support\Response
{
// $post = input();
// $post = request()->post();
$post = request()->all();
// $post['partnumber'] = input('partnumber');
$pid = input('pid');
$limit = input('limit') ?? 10;
$page = input('page') ?? 1;
if ($pid == null) {
$pid = (string)$this->model->minId();
}
if (request()->isAjax()) {
// 生成查询数据
$pid = !str_contains($pid, ',') ? $pid : explode(',',$pid);
$where[] = ['pid','in',$pid];
if (!empty($post['keyword'])) {
$where[] = ['partnumber|reference|content|item','like','%'.$post['keyword'].'%'];
// $where[] = ['reference','like','%'.$post['keyword'].'%'];
// $where[] = ['content','like','%'.$post['keyword'].'%'];
// $where[] = ['item','like','%'.$post['keyword'].'%'];
}else{
// $where[] = ['pid','in',$pid];
// $where[] = ['partnumber','like','%'.$post['partnumber'].'%'];
}
$count = $this->model->where($where)->count();
$list = $this->model->where($where)->limit((int)$limit)->page((int)$page)->select()
->each(function($item,$key) use ($pid){
if ($key == 0 && $pid == '0') {
$item['LAY_CHECKED'] = true;
}
// throw new \Exception(json_encode($item->admin['nickname']));
$item['creator'] = $item->admin ==null?'': $item->admin['nickname'];
// $item['purchasecode'] = $item->partitemview == null?'': $item->partitemview['purchasecode'];
$item->partitemview ;
return $item;
});
// throw new \Exception(json_encode($list));
return $this->success('查询成功', null, $list, $count);
}
return view('/pdm_partlist/index',[ 'pid' => $pid]);
}
}

View File

@@ -3,14 +3,13 @@ declare (strict_types = 1);
namespace app\admin\controller;
use app\AdminController;
use app\admin\service\AdminRuleService;
use Webman\Http\Request;
use app\admin\model\PdmParttype as PdmParttypeModel;
use support\Response;
/**
* pdm_parttype
* 分类目录
* <!---->
* <!--partmanage-->
* Class PdmParttype
* @package app\admin\controller
*/
@@ -42,7 +41,6 @@ class PdmParttype extends AdminController
list($count, $list) = PdmParttype::dataList(request()->all());
$rules = list_to_tree($list,'id','pid','children',0);
return $this->success('获取成功', '/',$rules, $count);
}
@@ -60,41 +58,24 @@ class PdmParttype extends AdminController
public static function dataList(array $params): array
{
$where = array();
if (!empty($params['parttypetitle'])) {
$where[] = ['parttypetitle','like','%'.$params['parttypetitle'].'%'];
if (!empty($params['name'])) {
$where[] = ['name','like','%'.$params['name'].'%'];
}
if (!empty($params['parttypevalue'])) {
$where[] = ['parttypevalue','like','%'.$params['parttypevalue'].'%'];
if (!empty($params['value'])) {
$where[] = ['value','like','%'.$params['value'].'%'];
}
$model = new PdmParttypeModel();
$count = $model->where($where)->count();
$list = $model->where($where)->order('sort asc')->select()->toArray();
// $list = $model->where($where)->order('sort asc')->select()->toArray();
$list = $model->where($where)->order('sort asc')->select();
foreach ($list as $key => $value) {
$list[$key]['parttypetitle'] = __($value['parttypetitle']);
}
// $users = array();
$users = $model->usernames();
// throw new \Exception(json_encode($users));
foreach ($list as $key => $value) {
foreach ($users as $keyuser => $valueuser) {
// if ($users[$keyuser]['id'] == $list[$key]['id']){
// // $list[$key]['createrid'] = __($users[$keyuser]['nickname']);
// $list[$key]['createrid'] = __($users[$keyuser]['name']);
// break;
// }
if ($value['createrid'] == $valueuser['id']) {
// $list[$key]['createrid'] = __($valueuser['name']);
$list[$key]['createrid'] = __($valueuser['nickname']);
break;
}else{
$list[$key]['createrid'] =$list[$key]['createrid'].'|'. __('未知用户');
}
// $list[$key]['name'] = __($value['name']);
$list[$key]['creator'] = __($list[$key]->admin['nickname']);
}
}
return [$count, $list];
return [$count, $list->toArray()];
}
@@ -109,11 +90,11 @@ class PdmParttype extends AdminController
$post = \request()->post();
// validate(\app\common\validate\system\AdminRules::class . '.add')->check($post);
$userid = get_admin_id();
$post['createrid'] = $userid ;
$post['creatorid'] = $userid ;
// if(empty($userid)){
// $post['createrid'] = 'empty';
// $post['creatorid'] = 'empty';
// }else{
// $post['createrid'] = 'noneempty' ;
// $post['creatorid'] = 'noneempty' ;
// }
if ($this->model->create($post)) {
return $this->success('添加分类成功!');
@@ -122,8 +103,8 @@ class PdmParttype extends AdminController
$data = $this->getTableFields();
$data['pid'] = input('pid', 0);
$data['auth'] = 1;
$data['type'] = 1;
// $data['auth'] = 1;
// $data['type'] = 1;
list($count, $list) = PdmParttype::dataList(request()->all());
return view('/pdm_parttype/add', [
@@ -169,12 +150,12 @@ class PdmParttype extends AdminController
if (!empty($id)) {
// 查询子节点
if ($this->model->where('pid',$id)->count()) {
return $this->error('当前菜单存在子菜单');
return $this->error('当前分类存在子分类');
}
// 删除单个
if ($this->model::destroy($id)) {
return $this->success('删除菜单成功!');
return $this->success('删除分类成功!');
}
}

View File

@@ -4,7 +4,7 @@ namespace app\admin\controller;
use app\AdminController;
use Webman\Http\Request;
use app\common\model\PdmPurchasecode as PdmPurchasecodeModel;
use app\admin\model\PdmPurchasecode as PdmPurchasecodeModel;
/**
* pdm_purchasecode
@@ -17,7 +17,7 @@ class PdmPurchasecode extends AdminController
{
/**
* PdmPurchasecode模型对象
* @var \app\common\model\PdmPurchasecode
* @var \app\admin\model\PdmPurchasecode
*/
public function __construct()

View File

@@ -4,12 +4,13 @@ namespace app\admin\controller;
use app\AdminController;
use Webman\Http\Request;
use app\common\model\PdmSymbol as PdmSymbolModel;
use app\admin\model\PdmSymbol as PdmSymbolModel;
use support\Response;
/**
* pdm_symbol
* 原理符号
* <!---->
* <!--partmanage-->
* Class PdmSymbol
* @package app\admin\controller
*/
@@ -17,7 +18,7 @@ class PdmSymbol extends AdminController
{
/**
* PdmSymbol模型对象
* @var \app\common\model\PdmSymbol
* @var \app\admin\model\PdmSymbol
*/
public function __construct()
@@ -31,6 +32,132 @@ class PdmSymbol extends AdminController
* 当创建CURD的时候DIY的函数体和模板为空请自行编写代码
*/
/**
* 获取资源列表
* return Response
*/
public function index(): Response
{
if (request()->isAjax()) {
list($count, $list) = PdmSymbol::dataList(request()->all());
// $rules = list_to_tree($list,'id','pid','children',0);
$lists = list_to_tree($list,'id','pid','children',0);
return $this->success('获取成功', '/',$lists, $count);
// return $this->success('获取成功', '/');
}
return view('/pdm_symbol/index');
}
/**
* 获取资源列表
* @param array $params
* @return array
* @throws DataNotFoundException
* @throws DbException
* @throws ModelNotFoundException
*/
public static function dataList(array $params): array
{
$where = array();
if (!empty($params['symbolname'])) {
$where[] = ['symbolname','like','%'.$params['symbolname'].'%'];
}
if (!empty($params['content'])) {
$where[] = ['content','like','%'.$params['content'].'%'];
}
$model = new PdmSymbolModel();
// $model = $this->model;
$count = $model->where($where)->count();
// $list = $model->where($where)->order('sort asc')->select()->toArray();
$list = $model->where($where)->order('sort asc')->select();
foreach($list as $key => $value){
// throw new \Exception(json_encode($value));
// throw new \Exception(json_encode($list[$key]->admin['nickname']));
$list[$key]['creator'] =__($list[$key]->admin['nickname']);
}
return [$count, $list->toArray()];
}
/**
* 添加节点数据
* @return Response
*/
public function add(): Response
{
if (request()->isPost()) {
$post = \request()->post();
// validate(\app\common\validate\system\AdminRules::class . '.add')->check($post);
$userid = get_admin_id();
$post['creatorid'] = $userid ;
if ($this->model->create($post)) {
return $this->success('添加FootPrint成功');
}
}
$data = $this->getTableFields();
$data['pid'] = input('pid', 0);
// $data['auth'] = 1;
// $data['type'] = 1;
list($count, $list) = PdmSymbol::dataList(request()->all());
return view('/pdm_symbol/add', [
'data' => $data,
'rules' => json_encode( list_to_tree($list), JSON_UNESCAPED_UNICODE),
]);
}
/**
* 编辑节点数据
* @return Response
* @throws DbException
* @throws DataNotFoundException
* @throws ModelNotFoundException
*/
public function edit(): Response
{
$id = input('id', 0);
$data = $this->model->find($id);
if (request()->isPost()) {
$post = \request()->post();
// validate(\app\common\validate\system\AdminRules::class . '.edit')->check($post);
if ($this->model->update($post)) {
return $this->success('更新Symbol成功');
}
}
list($count, $list) = PdmSymbol::dataList(request()->all());
return view('/pdm_symbol/add', [
'data' => $data,
'rules' => json_encode( list_to_tree($list), JSON_UNESCAPED_UNICODE),
]);
}
/**
* 删除节点数据
* @return Response
* @throws DbException
*/
public function del(): Response
{
$id = input('id');
if (!empty($id)) {
// 查询子节点
if ($this->model->where('pid',$id)->count()) {
return $this->error('当前分类存在子项!');
}
// 删除单个
if ($this->model::destroy($id)) {
return $this->success('删除Symbol成功');
}
}
return $this->error('删除失败,请检查您的参数!');
}
}

View File

@@ -0,0 +1,33 @@
<?php
declare(strict_types = 1);
namespace app\admin\controller\partlist;
use app\AdminController;
use support\Response;
/**
* BOM管理后台控制器
* <!--Partlist-->
*/
class Index extends AdminController {
// 初始化函数
public function __construct()
{
parent::__construct();
/**
* TODO...
*/
}
/**
* 初始化后台首页
* @return Response
*/
public function index(): Response
{
echo '后台 BOM管理 控制器<br/>';
return $this->view();
}
}

View File

@@ -0,0 +1,33 @@
<?php
declare(strict_types = 1);
namespace app\admin\controller\partview;
use app\AdminController;
use support\Response;
/**
* 部件查询后台控制器
* <!--Partview-->
*/
class Index extends AdminController {
// 初始化函数
public function __construct()
{
parent::__construct();
/**
* TODO...
*/
}
/**
* 初始化后台首页
* @return Response
*/
public function index(): Response
{
echo '后台 部件查询 控制器<br/>';
return $this->view();
}
}

View File

@@ -41,7 +41,8 @@ class Dictionary extends AdminController
*/
public function index(): \support\Response
{
$post = input();
// $post = input();
$post = request()->all();
$pid = input('pid');
$limit = input('limit') ?? 10;
$page = input('page') ?? 1;

View File

@@ -0,0 +1,38 @@
<?php
namespace app\admin\model;
use think\Model;
use think\model\concern\SoftDelete;
/**
* pdm_footprint
* <!--partmanage-->
* 封装设计
* Class PdmFootprint
* @package app\admin\model
*/
class PdmFootprint extends Model
{
use SoftDelete;
// 定义时间戳字段名
protected $createTime = 'create_time';
protected $updateTime = 'update_time';
protected $deleteTime = 'delete_time';
/**
* 定义 sa_admin 关联模型
* @localKey creatorid
* @bind nickname,name
*/
public function admin()
{
return $this->hasOne(\app\common\model\system\Admin::Class,'id','creatorid')->bind(['nickname','name']);
}
}

View File

@@ -0,0 +1,38 @@
<?php
namespace app\admin\model;
use think\Model;
use think\model\concern\SoftDelete;
/**
* pdm_mfg_name
* <!--partmanage-->
* 制造商名录
* Class PdmMfgName
* @package app\admin\model
*/
class PdmMfgName extends Model
{
use SoftDelete;
// 定义时间戳字段名
protected $createTime = 'create_time';
protected $updateTime = 'update_time';
protected $deleteTime = 'delete_time';
/**
* 定义 sa_admin 关联模型
* @localKey creatorid
* @bind nickname
*/
public function admin()
{
return $this->hasOne(\app\common\model\system\Admin::Class,'id','creatorid')->bind(['nickname']);
}
}

View File

@@ -1,59 +0,0 @@
<?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

@@ -0,0 +1,80 @@
<?php
namespace app\admin\model;
use think\Model;
use think\model\concern\SoftDelete;
/**
* pdm_partitem_index
* <!--partmanage-->
* Partnumber管理
* Class PdmPartitemIndex
* @package app\admin\model
*/
class PdmPartitemIndex extends Model
{
use SoftDelete;
// 定义时间戳字段名
protected $createTime = 'create_time';
protected $updateTime = 'update_time';
protected $deleteTime = 'delete_time';
/**
* 定义 sa_admin 关联模型
* @localKey creatorid
* @bind nickname,name
*/
public function admin()
{
return $this->hasOne(\app\common\model\system\Admin::Class,'id','creatorid')->bind(['nickname','name']);
}
/**
* 定义 sa_admin 关联模型
* @localKey parttypeid
* @bind name
*/
public function parttype()
{
return $this->hasOne(\app\admin\model\PdmParttype::Class,'id','parttypeid')->bind(['name']);
}
/**
* 定义 sa_admin 关联模型
* @localKey parttypeid
* @bind name
*/
public function mfgname()
{
return $this->hasOne(\app\admin\model\PdmMfgName::Class,'id','mfg_id')->bind(['mfgname']);
}
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,38 @@
<?php
namespace app\admin\model;
use think\Model;
use think\model\concern\SoftDelete;
/**
* pdm_partitem_relation
* <!--partmanage-->
* PN关系维护
* Class PdmPartitemRelation
* @package app\admin\model
*/
class PdmPartitemRelation extends Model
{
use SoftDelete;
// 定义时间戳字段名
protected $createTime = 'create_time';
protected $updateTime = 'update_time';
protected $deleteTime = 'delete_time';
/**
* 定义 sa_admin 关联模型
* @localKey creatorid
* @bind name,nickname
*/
public function admin()
{
return $this->hasOne(\app\common\model\system\Admin::Class,'id','creatorid')->bind(['name','nickname']);
}
}

View File

@@ -0,0 +1,29 @@
<?php
namespace app\admin\model;
use think\Model;
/**
* pdm_partitem_view
* <!--partview-->
* PN查询
* Class PdmPartitemView
* @package app\admin\model
*/
class PdmPartitemView extends Model
{
// 定义时间戳字段名
protected $createTime = false;
protected $updateTime = false;
protected $deleteTime = false;
}

View File

@@ -0,0 +1,87 @@
<?php
namespace app\admin\model;
use think\Model;
use think\model\concern\SoftDelete;
/**
* pdm_partlist
* <!--partlist-->
* BOM查询
* Class PdmPartlist
* @package app\admin\model
*/
class PdmPartlist extends Model
{
use SoftDelete;
// 定义时间戳字段名
protected $createTime = 'create_time';
protected $updateTime = 'update_time';
protected $deleteTime = 'delete_time';
/**
* 定义 sa_admin 关联模型
* @localKey creatorid
* @bind name,nickname
*/
public function admin()
{
return $this->hasOne(\app\common\model\system\Admin::Class,'id','creatorid')->bind(['name','nickname']);
}
/**
* 定义 sa_admin 关联模型
* @localKey creatorid
* @bind name,nickname
*/
public function partitemview()
{
return $this->hasOne(\app\admin\model\PdmPartitemView::Class,'partnumber','partnumber')->bind(['purchasecode','parttype','value','description','mpn','mfgname','footprint','manufacture']);
}
// 字段修改器
public function setSortAttr($value)
{
if (is_empty($value)) {
return self::max('id') + 1;
}
return $value;
}
/**
* 获取字典信息
* @param string $value
* @return array
* @throws DataNotFoundException
* @throws DbException
* @throws ModelNotFoundException
*/
public static function getValueList(string $value = ''): array
{
$list = [];
$data = self::where(['pid' => 0,'value' => $value])->find();
if (!empty($data)) {
$list = self::where('pid', $data['id'])->select()->toArray();
}
return $list;
}
/**
* 返回最小id
* @return int
*/
public static function minId(): int
{
return (int)self::where('pid', '0')->min('id');
}
}

View File

@@ -7,7 +7,7 @@ use think\model\concern\SoftDelete;
/**
* pdm_parttype
* <!---->
* <!--partmanage-->
* 分类目录
* Class PdmParttype
* @package app\admin\model
@@ -24,22 +24,16 @@ class PdmParttype extends Model
/**
* 定义 sa_user 关联模型
* @localKey id
* @bind name,nickname
* 定义 sa_admin 关联模型
* @localKey creatorid
* @bind nickname
*/
public function user()
public function admin()
{
return $this->hasOne(\app\common\model\system\User::Class,'createrid','id')->bind(['nickname']);
return $this->hasOne(\app\common\model\system\Admin::Class,'id','creatorid')->bind(['nickname']);
}
public function usernames()
{
// return \app\common\model\system\User::select()->toArray();
return \app\common\model\system\Admin::select()->toArray();
}
public function setPartattributeAttr($value)
public function setAttributeAttr($value)
{
if (!empty($value) && is_array($value)) {
$arr = [];
@@ -53,7 +47,7 @@ class PdmParttype extends Model
return $value ?: json_encode([]);
}
public function getPartattributeAttr($value)
public function getAttributeAttr($value)
{
if (!empty($value) && is_string($value)) {
$value = json_decode($value, true);
@@ -62,6 +56,4 @@ class PdmParttype extends Model
return $value;
}
}

View File

@@ -1,6 +1,6 @@
<?php
namespace app\common\model;
namespace app\admin\model;
use think\Model;
use think\model\concern\SoftDelete;
@@ -10,7 +10,7 @@ use think\model\concern\SoftDelete;
* <!--partmanage-->
* 采购编码
* Class PdmPurchasecode
* @package app\common\model
* @package app\admin\model
*/
class PdmPurchasecode extends Model
{
@@ -24,13 +24,13 @@ class PdmPurchasecode extends Model
/**
* 定义 sa_user 关联模型
* @localKey user_id
* @bind nickname,name
* 定义 sa_admin 关联模型
* @localKey creatorid
* @bind nickname
*/
public function user()
public function admin()
{
return $this->hasOne(\app\common\model\system\User::Class,'id','user_id')->bind(['nickname','name']);
return $this->hasOne(\app\common\model\system\Admin::Class,'id','creatorid')->bind(['nickname']);
}
public function setAttributeAttr($value)

View File

@@ -1,16 +1,16 @@
<?php
namespace app\common\model;
namespace app\admin\model;
use think\Model;
use think\model\concern\SoftDelete;
/**
* pdm_symbol
* <!---->
* <!--partmanage-->
* 原理符号
* Class PdmSymbol
* @package app\common\model
* @package app\admin\model
*/
class PdmSymbol extends Model
{
@@ -24,13 +24,13 @@ class PdmSymbol extends Model
/**
* 定义 sa_user 关联模型
* @localKey admin_id
* @bind nickname,name
* 定义 sa_admin 关联模型
* @localKey createrid
* @bind nickname
*/
public function user()
public function admin()
{
return $this->hasOne(\app\common\model\system\User::Class,'id','admin_id')->bind(['nickname','name']);
return $this->hasOne(\app\common\model\system\Admin::Class,'id','creatorid')->bind(['nickname']);
}

View File

@@ -0,0 +1,35 @@
<?php
declare (strict_types = 1);
namespace app\admin\model\partlist;
use think\Model;
/**
* BOM管理模型类
* <!--Partlist-->
* @mixin Model
*/
class Partlist extends Model
{
// 自动写入时间戳字段
protected $autoWriteTimestamp = 'int';
// 定义时间戳字段名
protected $createTime = 'create_time';
protected $updatetime = 'update_time';
/**
* 字段修改器
* @param $value
* @return int|mixed
*/
public function setSortAttr($value)
{
if (is_empty($value)) {
return self::max('id') + 1;
}
return $value;
}
}

View File

@@ -0,0 +1,35 @@
<?php
declare (strict_types = 1);
namespace app\admin\model\partview;
use think\Model;
/**
* 部件查询模型类
* <!--Partview-->
* @mixin Model
*/
class Partview extends Model
{
// 自动写入时间戳字段
protected $autoWriteTimestamp = 'int';
// 定义时间戳字段名
protected $createTime = 'create_time';
protected $updatetime = 'update_time';
/**
* 字段修改器
* @param $value
* @return int|mixed
*/
public function setSortAttr($value)
{
if (is_empty($value)) {
return self::max('id') + 1;
}
return $value;
}
}

View File

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

View File

@@ -1,13 +1,13 @@
<?php
namespace app\common\validate;
namespace app\admin\validate;
use think\Validate;
/**
* <!--partmanage-->
* PdmMfgName 验证器
* Class PdmMfgName
* @package app\common\validate
* @package app\admin\validate
*/
class PdmMfgName extends Validate
{

View File

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

View File

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

View File

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

View File

@@ -4,12 +4,12 @@ namespace app\admin\validate;
use think\Validate;
/**
* <!---->
* PdmPartitem 验证器
* Class PdmPartitem
* <!--partlist-->
* PdmPartlist 验证器
* Class PdmPartlist
* @package app\admin\validate
*/
class PdmPartitem extends Validate
class PdmPartlist extends Validate
{
/**
* 验证规则

View File

@@ -4,7 +4,7 @@ namespace app\admin\validate;
use think\Validate;
/**
* <!---->
* <!--partmanage-->
* PdmParttype 验证器
* Class PdmParttype
* @package app\admin\validate

View File

@@ -1,13 +1,13 @@
<?php
namespace app\common\validate;
namespace app\admin\validate;
use think\Validate;
/**
* <!--partmanage-->
* PdmPurchasecode 验证器
* Class PdmPurchasecode
* @package app\common\validate
* @package app\admin\validate
*/
class PdmPurchasecode extends Validate
{

View File

@@ -1,13 +1,13 @@
<?php
namespace app\common\validate;
namespace app\admin\validate;
use think\Validate;
/**
* <!---->
* <!--partmanage-->
* PdmSymbol 验证器
* Class PdmSymbol
* @package app\common\validate
* @package app\admin\validate
*/
class PdmSymbol extends Validate
{

View File

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

View File

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

View File

@@ -0,0 +1,13 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>我是后台首页控制器模板</title>
</head>
<!--Partlist-->
<body>
我是 Partlist 控制器模板
</body>
</html>

View File

@@ -0,0 +1,13 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>我是后台首页控制器模板</title>
</head>
<!--Partview-->
<body>
我是 Partview 控制器模板
</body>
</html>

View File

@@ -0,0 +1,176 @@
<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">
<label class="layui-form-label">封装分类</label>
<div class="layui-input-block">
<div id="treeNode" name="pid" lay-filter="treeNode" data-pid="{$data.pid|default=0}"></div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">{:__('排序号')}</label>
<div class="layui-input-block">
<input name="sort" placeholder="{:__('默认自动生成')}" type="number" value="{$data.sort}"
class="layui-input" />
</div>
</div>
<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="footprint" placeholder="请输入"
required="1" lay-verify="" value="{$data.footprint}"></div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">
<!-- <font color="red">* </font> -->
封装预览
</label>
<div class="layui-input-block"> <input class="layui-input layui-input-upload view" name="view"
value="{$data.view}">
<button type="button" class="layui-btn" lay-choose="view" data-type="images">
<i class="layui-icon layui-icon-windows"></i> 选择
</button>
<div class="clear"></div>
<notempty name="$data['view']">
<div class="layui-upload-drag layui-uplpad-image mt10" lay-upload="view" 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.view}" class="layui-upload-dragimg view" alt="上传成功后渲染">
<span class="layui-badge layui-upload-clear">删除</span>
</div>
</div>
<else />
<div class="layui-upload-drag layui-uplpad-image mt10" lay-upload="view" 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.view}" class="layui-upload-dragimg view" 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">
<input type="text" name="attachment" value="{$data.attachment}"
class="layui-input layui-input-upload attachment">
<button type="button" class="layui-btn" lay-upload="attachment" data-type="normal"
data-accept="file" data-size="102400">
<i class="layui-icon layui-icon-upload"></i> 上传
</button>
<button type="button" class="layui-btn ml10" lay-choose="attachment" data-type="file">
<i class="layui-icon layui-icon-windows"></i> 选择
</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" />
<script>
layui.use(['jquery', 'iconPicker', 'form'], function () {
let $ = layui.jquery;
let show = layui.show;
let form = layui.form;
let iconPicker = layui.iconPicker;
let data = {$rules|raw};
// 提交参数
form.on("submit(submit)", function (data) {
$.post("{:Url('/PdmFootprint/')}" + app_Config.action, data.field, function (res) {
if (res.code === 200) {
show.msg(res.msg);
parent.layui.table.reloadData('lay-tableList');
parent.layer.closeAll();
// 调用接口更新菜单
top.layui.admin.reloadLayout();
} else {
show.error(res.msg);
}
});
return false;
})
xmSelect.render({
el: '#treeNode',
tips: '请选择上级分类',
name: 'pid',
height: '260px',
data: data,
radio: true,
clickClose: true,
initValue: [$('#treeNode').data('pid')],
prop: {
value: 'id',
name: 'footprint'
},
tree: {
show: true,
strict: false,
showLine: false,
clickExpand: false,
},
model: {
icon: 'hidden',
label: {
type: 'text'
}
},
theme: {
color: '#1890FF'
}
})
iconPicker.render({
elem: '#iconPicker',
type: 'fontClass',
search: true,
cellWidth: "19%",
page: true,
limit: 12,
// 点击回调
click: function (data) { // 点击回调
$('#iconPicker').val(data.icon);
},
success: function (d) { // 渲染成功后的回调
}
});
$('.router').bind('input change', function (data) {
let router = $('.router').val();
router = router.substring(1);
$('.alias').val(router.replaceAll('/', ':'));
})
})
</script>

View File

@@ -0,0 +1,233 @@
<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="view" 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="attachment" 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="creator" 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="footprint" 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="1100px,750px"
data-maxmin="true" data-url="{:url('/PdmFootprint/add')}">
<i class="layui-icon layui-icon-add-1"></i>{:__('添加')}
</button>
<button class="layui-btn layui-btn-primary icon-btn" id="expandAll"><i
class="layui-icon layui-icon-templeate-1"></i>{:__('展开全部')}</button>
<button class="layui-btn layui-btn-danger icon-btn" id="foldAll"><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('/PdmFootprint/status')}" value="{{d.id}}" lay-skin="switch" {{d.status==1?'checked':''}} />
</script>
<!-- // 列表工具栏 -->
<script type="text/html" id="tableBar">
<!--formBegin-->
<a class="layui-table-text" lay-open data-title="{:__('添加菜单')}" data-url="{:url('/PdmFootprint/add')}?pid={{d.id}}"
data-area="1100px,750px">{:__('添加')}</a>
<div class="layui-divider layui-divider-vertical"></div>
<a class="layui-table-text" data-title="{:__('编辑')}" data-area="1100px,750px" data-maxmin="true"
data-url="{:url('/PdmFootprint/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('/PdmFootprint/del')}?id={{d.id}}" lay-event="del">{:__('删除')}</a>
</script>
<script type="text/html" id="tableButton"></script>
<include file="/public/footer" />
<script type="text/javascript">
layui.use(['form', 'treeTable'], function () {
let $ = layui.jquery;
let form = layui.form;
let treeTable = layui.treeTable;
let tableURL = "{:url('/PdmFootprint/index')}";
// 渲染初始化表格
let renderTable = function (tableURL) {
treeTable.render({
id: 'lay-tableList',
elem: '#lay-tableList',
url: tableURL,
toolbar: '#tableButton',
defaultToolbar: ['filter', 'exports', 'print', 'search'],
cellMinWidth: 160,
page: true,
limit: 18,
tree: {
customName: {
pid: 'pid',
icon: 'icon1',
},
view: {
iconClose: '', // 关闭时候的图标
iconOpen: '', // 打开时候的图标
iconLeaf: '', // 叶子节点的图标
}
},
cols: [[
//{type: 'checkbox', width: 50},
{ type: 'numbers' },
//{field: 'id', align: 'center',sort: true,width: 80, title: 'ID'},
//{field:'parttypetitle',title:'{:__("Title")}'},
{
field: 'name', title: '{:__("封装名称")}', templet: function (d) {
return d.footprint;
},
},
{
field: 'view', templet: function (d) {
return '<a href="javascript:"><img class="filesuffix" lay-image-click src="' + d.view + '"></a>';
}, title: '{:__("封装预览")}'
},
{
field: 'attachment', templet: function (d) {
return '<a href="' + d.attachment + '" target="_blank" ><img class="filesuffix" src="' + d.attachment + '"></a>';
}, title: '{:__("封装文件")}'
},
{ field: 'nickname', title: '{:__("创建者")}' },
{field:'content',title:'{:__("注释")}'},
{ field: 'status', templet: '#columnStatus', title: '{:__("状态")}' },
{ align: 'center', toolbar: '#tableBar', width: 220, fixed: 'right', title: '{:__("操作")}' },
]]
});
}
// 监听搜索 serialize
form.on('submit(treeSearch)', function (data) {
let whereURL = '',
field = data.field;
for (let key in field) {
whereURL += key + '=' + field[key];
whereURL += '&';
}
// 拼接字符串
whereURL = whereURL.replace(/(.*)&/, '$1 ');
whereURL = tableURL + '?' + whereURL;
renderTable(whereURL);
})
// 展开所有
$('#expandAll').click(function () {
treeTable.expandAll('lay-tableList', true);
})
// 折叠所有
$('#foldAll').click(function () {
treeTable.expandAll('lay-tableList', false);
});
// 执行初始化
renderTable(tableURL);
});
</script>

View File

@@ -11,29 +11,20 @@
<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">上级分类</label>
<div class="layui-input-block">
<div id="treeNode" name="pid" lay-filter="treeNode" data-pid="{$data.pid|default=0}"></div>
</div>
<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="mfgname" placeholder="请输入" required="1" lay-verify=""value="{$data.mfgname}" ></div>
</div>
<div class="layui-form-item" >
<div class="layui-input-block">
<div class="layui-input-inline">
<!-- <label class="layui-form-label"> -->
<font color="blue">* </font>制造商名称格式eg.TI德州仪器
<!-- </label> -->
<i class="layui-icon layui-icon-about" lay-tips="消息提示:如果无中文名称,可以忽略。" data-offset="4"></i>
<i class="layui-icon layui-icon-about" lay-tips="消息提示如果无中文名称可以忽略xx的内容。" data-offset="4"></i>
</div>
</div>
</div>
</div><div class="layui-col-md6 layui-grid-1" data-index="1"><div class="layui-form-item" >
</div>
<div class="layui-col-md6 layui-grid-1" data-index="1"><div class="layui-form-item" >
<label class="layui-form-label">网站主页</label>
<div class="layui-input-block"><input class="layui-input" name="mfgsite" placeholder="请输入" lay-verify=""value="{$data.mfgsite}" ></div>
</div>
@@ -57,12 +48,6 @@
<div class="layui-form-item" >
<div class="layui-input-block"><hr class="layui-border-black"></div>
<label class="layui-form-label">排序</label>
<div class="layui-input-block">
<!-- <input class="layui-input" name="sort" placeholder="{:__('默认自动生成')}" required="" lay-verify=""value="{$data.sort}" > -->
<input name="sort" placeholder="{:__('默认自动生成')}" type="number" value="{$data.sort}" class="layui-input"/>
</div>
</div>
<div class="layui-form-item" >
@@ -78,80 +63,3 @@
</div>
<include file="/public/static" />
<include file="/public/footer" />
<script>
layui.use(['jquery', 'iconPicker','form'],function() {
let $ = layui.jquery;
let show = layui.show;
let form = layui.form;
let iconPicker = layui.iconPicker;
let data = {$rules|raw};
// 提交参数
form.on("submit(submit)",function(data){
$.post("{:Url('/PdmMfgName/')}"+app_Config.action,data.field,function(res){
if(res.code === 200){
show.msg(res.msg);
parent.layui.table.reloadData('lay-tableList');
parent.layer.closeAll();
// 调用接口更新菜单
top.layui.admin.reloadLayout();
}else{
show.error(res.msg);
}
});
return false;
})
xmSelect.render({
el: '#treeNode',
tips: '请选择上级菜单',
name: 'pid',
height: '260px',
data: data,
radio: true,
clickClose: true,
initValue:[$('#treeNode').data('pid')],
prop: {
value: 'id',
name:'mfgname'
},
tree: {
show: true,
strict: false,
showLine: false,
clickExpand: false,
},
model: {
icon: 'hidden',
label: {
type: 'text'
}
},
theme: {
color: '#1890FF'
}
})
iconPicker.render({
elem: '#iconPicker',
type: 'fontClass',
search: true,
cellWidth: "19%",
page: true,
limit: 12,
// 点击回调
click: function(data) { // 点击回调
$('#iconPicker').val(data.icon);
},
success: function(d) { // 渲染成功后的回调
}
});
$('.router').bind('input change',function(data){
let router = $('.router').val();
router = router.substring(1);
$('.alias').val(router.replaceAll('/',':'));
})
})
</script>

View File

@@ -35,6 +35,13 @@
</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 ">
@@ -45,7 +52,7 @@
<div class="layui-inline">
<div class="layui-form-label">{:__('创建者')}</div>
<div class="layui-input-inline ">
<input name="createrid" class="layui-input" type="text" placeholder="{:__('创建者')}"/>
<input name="creatorid" class="layui-input" type="text" placeholder="{:__('创建者')}"/>
</div>
</div>
@@ -85,9 +92,6 @@
<button class="layui-btn icon-btn" lay-open="" data-title="{:__('添加')}" data-area="1100px,750px" data-maxmin="true" data-url="{:url('/PdmMfgName/add')}" >
<i class="layui-icon layui-icon-add-1"></i>{:__('添加')}
</button>
<button class="layui-btn layui-btn-primary icon-btn" id="expandAll" ><i class="layui-icon layui-icon-templeate-1"></i>{:__('展开全部')}</button>
<button class="layui-btn layui-btn-danger icon-btn" id="foldAll" ><i class="layui-icon layui-icon-add-1"></i>{:__('折叠全部')}</button>
<!--formEnd-->
</div>
</div>
@@ -119,88 +123,37 @@
<include file="/public/footer" />
<script>
layui.use(['form','treeTable'], function () {
layui.use(['admin','table'], function () {
let $ = layui.jquery;
let form = layui.form;
let treeTable = layui.treeTable;
let tableURL = "{:url('/PdmMfgName/index')}";
var admin = layui.admin;
var table = layui.table;
// 渲染初始化表格
let renderTable = function (tableURL) {
treeTable.render({
id: 'lay-tableList',
elem: '#lay-tableList',
url: tableURL,
toolbar: '#tableButton',
defaultToolbar: ['filter', 'exports', 'print','search'],
cellMinWidth: 160, // 限定了最小的 单元格宽度;
page: true,
limit: 18,
tree: {
customName: {
pid: 'pid',
icon: 'icon1',
},
view: {
iconClose: '', // 关闭时候的图标
iconOpen: '', // 打开时候的图标
iconLeaf: '', // 叶子节点的图标
}
},
cols: [[
//{type: 'checkbox', width: 50},
{type: 'numbers'},
//{field: 'id', align: 'center',sort: true,width: 80, title: 'ID'},
{field:'name',title:'{:__("制造商名称")}',templet: function(d) {
return d.mfgname;
},},
/*
* 初始化表格
*/
var isTable = table.render({
elem: "#lay-tableList"
,url: "{:url('/PdmMfgName/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:'mfgname',title:'{:__("制造商名称")}'},
{field:'mfgsite',title:'{:__("网站主页")}',templet: function(d) {
// return '<a href="https://' +d.mfgsite+ '" target="_blank">'+ d.mfgsite +'</a>';
return '<a href="' +d.mfgsite+ '" target="_blank">'+ d.mfgsite +'</a>';
},}, //https://www.ti.com/
} },
{field:'mfgrmark',title:'{:__("备注")}'},
{field:'sort',title:'{:__("排序")}'},
{field:'content',title:'{:__("注释")}'},
{field:'createrid',title:'{:__("创建者")}'},
{field:'status',templet: '#columnStatus',title:'{:__("状态")}'},
{field:'content',title:'{:__("注释")}',width: 350}, //,fixed: 'right'
<!-- {field:'creatorid',title:'{:__("创建者ID")}',align: 'center'}, -->
{field:'creator',title:'{:__("创建者")}',align: 'center'},
{field:'status',templet: '#columnStatus',title:'{:__("状态")}',width: 100,fixed: 'right'},
{align: 'center', toolbar: '#tableBar', width:160, fixed: 'right', title: '{:__("操作")}'},
]]
});
}
// 监听搜索 serialize
form.on('submit(treeSearch)',function(data) {
let whereURL = '',
field = data.field;
for (let key in field ) {
whereURL += key + '=' + field[key];
whereURL += '&';
}
// 拼接字符串
whereURL = whereURL.replace(/(.*)&/,'$1 ');
whereURL = tableURL + '?' + whereURL;
renderTable(whereURL);
})
// 展开所有
$('#expandAll').click(function(){
treeTable.expandAll('lay-tableList', true);
})
// 折叠所有
$('#foldAll').click(function () {
treeTable.expandAll('lay-tableList',false);
});
// 执行初始化
renderTable(tableURL);
});
</script>

View File

@@ -0,0 +1,81 @@
<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" >
<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">ParttypeID</label>
<div class="layui-input-block"><input class="layui-input" name="parttypeid" placeholder="请输入" lay-verify=""value="{$data.parttypeid}" ></div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">采购编码</label>
<div class="layui-input-block"><input class="layui-input" name="purchasecode" placeholder="请输入" lay-verify=""value="{$data.purchasecode}" ></div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">Value</label>
<div class="layui-input-block"><input class="layui-input" name="value" placeholder="请输入" lay-verify=""value="{$data.value}" ></div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">描述</label>
<div class="layui-input-block"><textarea class="layui-textarea" name="description" placeholder="请输入" >{$data.description}</textarea></div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">MFGID</label>
<div class="layui-input-block"><input class="layui-input" name="mfg_id" placeholder="请输入" lay-verify=""value="{$data.mfg_id}" ></div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">规格书</label>
<div class="layui-input-block"><input class="layui-input" name="datasheet" placeholder="请输入" lay-verify=""value="{$data.datasheet}" ></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-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,217 @@
<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">{:__('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="purchasecode" class="layui-input" type="text" placeholder="{:__('采购编码')}" />
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('Value')}</div>
<div class="layui-input-inline ">
<input name="value" class="layui-input" type="text" placeholder="{:__('Value')}" />
</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">{:__('MFGID')}</div>
<div class="layui-input-inline ">
<input name="mfg_id" class="layui-input" type="text" placeholder="{:__('MFGID')}" />
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('规格书')}</div>
<div class="layui-input-inline ">
<input name="datasheet" 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="creatorid" 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('/PdmPartitemIndex/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('/PdmPartitemIndex/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('/PdmPartitemIndex/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('/PdmPartitemIndex/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('/PdmPartitemIndex/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: 60, title: 'ID' },
{ field: 'partnumber',width: 100, title: '{:__("PartNumber")}' },
<!-- { field: 'parttypeid', width: 80, title: '{:__("ParttypeID")}' }, -->
{ field: 'parttype', width: 60, title: '{:__("Parttype")}' },
{ field: 'purchasecode', width: 100, title: '{:__("采购编码")}' },
{ field: 'value', title: '{:__("Value")}' },
{ field: 'description',width: 250, title: '{:__("描述")}' },
<!-- { field: 'mfg_id', title: '{:__("MFGID")}' }, -->
{ field: 'mfg_name', title: '{:__("MFG")}' },
{ field: 'datasheet',templet: function (d) {
return '<a href="/upload/' + d.datasheet + '" target="_blank" ><img class="filesuffix" src="/upload/' + d.datasheet + '"></a>';
}, title: '{:__("规格书")}' },
<!-- { field: 'creatorid', title: '{:__("创建者")}' }, -->
{ field: 'nickname', title: '{:__("创建者")}' },
{ field: 'status', templet: '#columnStatus', title: '{:__("状态")}' },
{ align: 'center', toolbar: '#tableBar', width: 160, fixed: 'right', title: '{:__("操作")}' },
]]
})
})
</script>

View File

@@ -0,0 +1,51 @@
<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">
<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">SymbolID</label>
<div class="layui-input-block"><input class="layui-input" name="symbolid" placeholder="请输入"
lay-verify="" value="{$data.symbolid}"></div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">FootprintID</label>
<div class="layui-input-block"><input class="layui-input" name="footprintid" placeholder="请输入"
lay-verify="" value="{$data.footprintid}"></div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">部门ID</label>
<div class="layui-input-block"><input class="layui-input" name="departmentid" placeholder="请输入"
lay-verify="" value="{$data.departmentid}"></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,171 @@
<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">{:__('SymbolID')}</div>
<div class="layui-input-inline ">
<input name="symbolid" class="layui-input" type="text" placeholder="{:__('SymbolID')}" />
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('FootprintID')}</div>
<div class="layui-input-inline ">
<input name="footprintid" class="layui-input" type="text"
placeholder="{:__('FootprintID')}" />
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('创建者ID')}</div>
<div class="layui-input-inline ">
<input name="creatorid" 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="departmentid" 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">{:__('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('/PdmPartitemRelation/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('/PdmPartitemRelation/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('/PdmPartitemRelation/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('/PdmPartitemRelation/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('/PdmPartitemRelation/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: 'symbolid', title: '{:__("SymbolID")}' },
{ field: 'footprintid', title: '{:__("FootprintID")}' },
{ field: 'creatorid', title: '{:__("创建者ID")}' },
{ field: 'departmentid', title: '{:__("部门ID")}' },
{ field: 'status', templet: '#columnStatus', title: '{:__("状态")}' },
{ align: 'center', toolbar: '#tableBar', width: 160, fixed: 'right', title: '{:__("操作")}' },
]]
})
})
</script>

View File

@@ -0,0 +1,66 @@
<include file="/public/header" />
<!-- // 重定位style -->
<!--partview-->
<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="purchasecode" placeholder="请输入" lay-verify=""value="{$data.purchasecode}" ></div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">PartType</label>
<div class="layui-input-block"><input class="layui-input" name="parttype" placeholder="请输入" lay-verify=""value="{$data.parttype}" ></div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">Value</label>
<div class="layui-input-block"><input class="layui-input" name="value" placeholder="请输入" lay-verify=""value="{$data.value}" ></div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">描述</label>
<div class="layui-input-block"><textarea class="layui-textarea" name="description" placeholder="请输入" >{$data.description}</textarea></div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">物料描述</label>
<div class="layui-input-block"><input class="layui-input" name="mpn" placeholder="请输入" lay-verify=""value="{$data.mpn}" ></div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">制造商名称</label>
<div class="layui-input-block"><input class="layui-input" name="mfgname" placeholder="请输入" lay-verify=""value="{$data.mfgname}" ></div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">规格书</label>
<div class="layui-input-block"><input class="layui-input" name="datasheet" placeholder="请输入" lay-verify=""value="{$data.datasheet}" ></div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">部门名称</label>
<div class="layui-input-block"><input class="layui-input" name="department" placeholder="请输入" lay-verify=""value="{$data.department}" ></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,171 @@
<include file="/public/header" />
<!--partview-->
<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">{:__('采购编码')}</div>
<div class="layui-input-inline ">
<input name="purchasecode" class="layui-input" type="text" placeholder="{:__('采购编码')}" />
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('PartType')}</div>
<div class="layui-input-inline ">
<input name="parttype" class="layui-input" type="text" placeholder="{:__('PartType')}" />
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('Value')}</div>
<div class="layui-input-inline ">
<input name="value" class="layui-input" type="text" placeholder="{:__('Value')}" />
</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="mpn" 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="mfgname" class="layui-input" type="text" placeholder="{:__('制造商名称')}" />
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('SymbolName')}</div>
<div class="layui-input-inline ">
<input name="symbol" class="layui-input" type="text" placeholder="{:__('SymbolName')}" />
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('封装名称')}</div>
<div class="layui-input-inline ">
<input name="footprint" 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="datasheet" 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="usernickname" 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="department" class="layui-input" type="text" placeholder="{:__('部门名称')}" />
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<div class="layui-form-label">{:__('Keyword')}</div>
<div class="layui-input-inline ">
<input name="keyword" 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="1100px,750px"
data-maxmin="true" data-url="{:url('/PdmPartitemView/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('/PdmPartitemView/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('/PdmPartitemView/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('/PdmPartitemView/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('/PdmPartitemView/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: 40, fixed: 'left', title: 'ID' },
{ field: 'partnumber', width: 80, fixed: 'left', title: '{:__("PartNumber")}' },
{ field: 'purchasecode', width: 80, title: '{:__("采购编码")}' },
{ field: 'parttype', sort: true,width: 80, title: '{:__("PartType")}' },
{ field: 'value', sort: true,width: 80, title: '{:__("Value")}' },
{ field: 'description', width: 200, title: '{:__("描述")}' },
{ field: 'mpn', sort: true, width: 80, title: '{:__("MPN")}' },
{ field: 'mfgname', sort: true, width: 80, title: '{:__("制造商名称")}' },
{ field: 'symbol', title: '{:__("SymbolName")}' },
{ field: 'footprint', sort: true, title: '{:__("Footprint")}' },
{ field: 'datasheet', title: '{:__("规格书")}' },
{ field: 'usernickname', sort: true, title: '{:__("用户昵称")}' },
{ field: 'department', sort: true, title: '{:__("部门名称")}' },
{ align: 'center', toolbar: '#tableBar', width: 160, fixed: 'right', title: '{:__("操作")}' },
]]
})
})
</script>

View File

@@ -0,0 +1,51 @@
<include file="/public/header" />
<!-- // 重定位style -->
<!--partlist-->
<link href="__STATICADMIN__css/content.css" rel="stylesheet" type="text/css" />
<!-- // 添加编辑数据 -->
<section id="editforms" class="layui-hide">
<div class="layui-fluid layui-bg-white">
<form class="layui-form layui-form-fixed" lay-filter="editforms">
<input type="text" name="id" hidden="">
<input type="text" class="pid" name="pid" value="{$pid}" hidden="">
<div class="layui-form-item">
<label class="layui-form-label"><span style="color: red; ">* </span>{:__('BOM名称')}</label>
<div class="layui-input-block">
<input name="name" placeholder="{:__('请输入BOM名称')}" type="text" class="layui-input"
lay-verify="required" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">{:__('BOM值')}</label>
<div class="layui-input-block">
<input name="value" placeholder="{:__('请输入BOM值')}" class="layui-input" lay-verify="required" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">{:__('排序号')}</label>
<div class="layui-input-block">
<input name="sort" placeholder="{:__('默认自动生成')}" type="number" class="layui-input" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">{:__('BOM备注')}</label>
<div class="layui-input-block">
<textarea name="content" id="content" style="min-height: 80px;" placeholder="{:__('请输入BOM备注')}"
class="layui-textarea"></textarea>
</div>
</div>
<div class="layui-footer layui-form-item layui-center">
<button class="layui-btn layui-btn-primary" type="button"
sa-event="closePageDialog">{:__('取消')}</button>
<button class="layui-btn" lay-add="{:url('/PdmPartlist/add')}" lay-edit="{:url('/PdmPartlist/edit')}"
lay-filter="submitPage" lay-submit>{:__('提交')}</button>
</div>
</form>
</div>
</section>
<include file="/public/static" />
<include file="/public/footer" />

View File

@@ -0,0 +1,308 @@
<include file="/public/header" />
<!-- // 重定位Style -->
<style>
.layui-card-header.layadmin-card-header-auto {
border-bottom: 0px;
padding-bottom: 0px;
}
.layui-card-header h5 {
font-size: 16px;
}
#layui-dic_group {
padding-bottom: 25px;
}
#layui-dic_group .layui-table-view .layui-table {
width: 100%;
}
#layui-dic_group table thead tr:first-child i {
display: none;
}
@media screen and (max-width: 1200px) {
.layui-table-tool-temp .layui-btn {
height: 30px;
line-height: 30px;
padding: 0 10px;
font-size: 12px;
}
.layui-table-tool-temp .layui-btn:nth-last-child(3) {
display: none;
}
}
</style>
<div class="layui-col-md4">
<div class="layui-fluid">
<div class="layui-card">
<div class="layui-card-header layadmin-card-header-auto" style="padding-bottom: 5px">
<div class="layui-inline layui-hide" id="toolbar">
<!-- // 打开添加页面 -->
<button class="layui-btn icon-btn" lay-open="add" data-title="{:__('添加BOM')}" data-area="600px"
data-url="#editforms" callback="edit">
<i class="layui-icon layui-icon-add-1"></i>{:__('添加')}
</button>
<!-- // 修改页面 -->
<button class="layui-btn icon-btn" lay-open="edit" data-title="{:__('修改BOM')}" data-area="600px"
data-url="#editforms" callback="edit">
<i class="layui-icon layui-icon-edit"></i>{:__('修改')}
</button>
<!-- // 删除所有 -->
<button class="layui-btn icon-btn layui-btn-danger" lay-batch="" data-table="lay-tableGroup"
data-url="{:url('/PdmPartlist/del')}">
<i class="layui-icon layui-icon-delete"></i>{:__('删除')}
</button>
</div>
</div>
<div class="layui-card-body" id="layui-dic_group">
<!-- // 创建字典组实例 -->
<table id="lay-tableGroup" lay-filter="lay-tableGroup"></table>
</div>
</div>
</div>
</div>
<div class="layui-col-md8">
<!-- // 展示数据 -->
<div class="layui-fluid">
<div class="layui-card">
<!-- // 默认操作按钮 -->
<div class="layui-card-header layadmin-card-header-auto ">
<div class="layui-form">
<div class="layui-form-item">
<!-- <div class="layui-inline">
<div class="layui-input-inline">
<select name="status">
<option value="">{:__('按状态查询')}</option>
<option value="2" >{:__('正常')}</option>
<option value="1" >{:__('关闭')}</option>
</select>
</div>
</div> -->
<div class="layui-inline">
<div class="layui-input-inline ">
<input name="keyword" 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>
<!-- // 打开添加页面 -->
<button class="layui-btn icon-btn" lay-open="" data-title="{:__('添加BOM项')}"
data-area="600px" data-url="#editforms">
<i class="layui-icon layui-icon-add-1"></i>{:__('添加')}
</button>
<!-- // 删除所有 -->
<button class="layui-btn icon-btn layui-btn-danger" lay-batch data-table="lay-tableList"
data-url="{:url('/PdmPartlist/del')}">
<i class="layui-icon layui-icon-delete"></i>{:__('删除')}
</button>
</div>
</div>
</div>
</div>
<!-- // 创建数据实例 -->
<table id="lay-tableList" lay-filter="lay-tableList"></table>
</div>
</div>
</div>
<!-- // 添加编辑数据 -->
<section id="editforms" class="layui-hide">
<div class="layui-fluid layui-bg-white">
<form class="layui-form layui-form-fixed" lay-filter="editforms">
<input type="text" name="id" hidden="">
<input type="text" class="pid" name="pid" value="{$pid}" hidden="">
<div class="layui-form-item">
<label class="layui-form-label">{:__('Item')}</label>
<div class="layui-input-block">
<input name="item" placeholder="{:__('请输入item')}" type="text" class="layui-input"
lay-verify="" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><span style="color: red; ">* </span>{:__('BOM编码')}</label>
<div class="layui-input-block">
<input name="partnumber" placeholder="{:__('请输入BOM编码')}" type="text" class="layui-input"
lay-verify="required" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">{:__('位号')}</label>
<div class="layui-input-block">
<input name="reference" placeholder="{:__('请输入位号')}" class="layui-input" lay-verify="" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">{:__('用量')}</label>
<div class="layui-input-block">
<input name="quantity" placeholder="{:__('请输入用量')}" class="layui-input" lay-verify="" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">{:__('单位')}</label>
<div class="layui-input-block">
<input name="unit" placeholder="{:__('请输入单位')}" class="layui-input" lay-verify="" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">{:__('排序号')}</label>
<div class="layui-input-block">
<input name="sort" placeholder="{:__('默认自动生成')}" type="number" class="layui-input" />
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">{:__('BOM备注')}</label>
<div class="layui-input-block">
<textarea name="content" id="content" style="min-height: 80px;" placeholder="{:__('请输入BOM备注')}"
class="layui-textarea"></textarea>
</div>
</div>
<div class="layui-footer layui-form-item layui-center">
<button class="layui-btn layui-btn-primary" type="button"
sa-event="closePageDialog">{:__('取消')}</button>
<button class="layui-btn" lay-add="{:url('/PdmPartlist/add')}" lay-edit="{:url('/PdmPartlist/edit')}"
lay-filter="submitPage" lay-submit>{:__('提交')}</button>
</div>
</form>
</div>
</section>
<!-- // 列表编辑框 -->
<script type="text/html" id="tableBar">
<a class="layui-table-text" data-title="{:__('编辑BOM项')}" data-url="#editforms" data-area="600px" lay-event="edit" >{:__('编辑')}</a>
<div class="layui-divider layui-divider-vertical"></div>
<a class="layui-table-text" data-url="{:url('/PdmPartlist/del')}?id={{d.id}}" lay-event="del" >{:__('删除')}</a>
</script>
<include file="/public/footer" />
<script>
layui.use(['admin', 'jquery', 'table', 'form'], function () {
let admin = layui.admin;
let $ = layui.jquery;
let table = layui.table;
let form = layui.form;
// 定义表格URL
let tableURL = "{:url('/PdmPartlist/index')}";
// 字典类表格
let isClass = table.render({
elem: "#lay-tableGroup"
, url: tableURL + "?pid=0"
, toolbar: '#toolbar'
, defaultToolbar: []
, page: true
, limit: 18
, cols: [[
{ type: 'radio', align: 'left', title: '{:__("ID")}' },
{ field: 'partnumber', align: 'center', title: '{:__("BOM编码")}' },
// { field: 'reference', align: 'center', title: '{:__("位号")}' },
{ field: 'content', align: 'center', title: '{:__("备注")}' },
]]
})
// 基础表格
let isTable = table.render({
elem: "#lay-tableList"
, url: tableURL
, page: true
, limit: 18
, cols: [[
{type: 'checkbox'},
// {field: 'id', align: 'center',sort: true,width: 80, title: 'ID'},
{ field: 'item', align: 'center', width: 40,title: '{:__("Item")}' },
{ field: 'partnumber', align: 'left', width: 180,title: '{:__("Partnumber")}' },
{ field: 'parttype', align: 'left', width: 100,title: '{:__("Parttype")}' },
{ field: 'purchasecode', align: 'left', width: 160,title: '{:__("Purchasecode")}' },
{ field: 'value', align: 'left', width: 100,title: '{:__("Value")}' },
{ field: 'description', align: 'left', width: 200,title: '{:__("Description")}' },
{ field: 'mpn', align: 'left', width: 150,title: '{:__("MPN")}' },
{ field: 'mfgname', align: 'left', width: 150,title: '{:__("MFG")}' },
{ field: 'footprint', align: 'left', width: 150,title: '{:__("Footprint")}' },
{ field: 'manufacture', align: 'left', width: 120,title: '{:__("Manufacture")}' },
{ field: 'reference', align: 'left',width: 250, title: '{:__("位号")}' },
// {field: 'sort', align: 'center', width: 135, title: '{:__("排序号")}'},
{ field: 'quantity', align: 'center', width: 100, title: '{:__("Quantity")}' },
{ field: 'unit', align: 'center', width: 80, title: '{:__("Unit")}' },
{ field: 'content', align: 'left', title: '{:__("备注")}' },
// {field: 'create_time', align: 'center', width: 180,title: '{:__("创建时间")}'},
{ align: 'center', toolbar: '#tableBar', width: 135, fixed:'right', title: '{:__("操作")}' },
]]
})
table.on('radio(lay-tableGroup)', function (obj) {
let data = table.checkStatus('lay-tableGroup').data;
let ids = [];
if (data.length) {
for (const key in data) {
ids.push(data[key].id);
}
let url = tableURL + '?pid=' + ids.join(',');
table.reloadData('lay-tableList', {
url: url
});
// 获取最后点击
if (obj.checked === true) {
$('#editforms').find('.pid').attr('value', obj.data.id);
}
}
});
// 全局回调函数
admin.callback.edit = function (clickthis, colletction, config) {
let status = true;
let action = clickthis.attr('lay-open');
let data = table.checkStatus('lay-tableGroup').data;
if (action === 'edit') {
status = false;
form.val('editforms', data[0]);
}
form.on("submit(submitPage)", function (post) {
let pageThat = $(this),
_pageUrl = !status ? pageThat.attr('lay-edit') : pageThat.attr('lay-add');
post.field.pid = 0;
// 开始POST提交数据
$.post(_pageUrl,
post.field, function (res) {
if (res.code === 200) {
table.reloadData('lay-tableGroup');
table.reloadData('lay-tableList');
// 关闭当前窗口
layer.msg(res.msg);
layer.close(colletction.index);
pageThat.attr("disabled", true);
}
else {
layui.show.error(res.msg);
}
}, 'json');
return false;
})
}
});
</script>

View File

@@ -1,38 +1,52 @@
<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" >
<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/>
<else />
<input type="text" name="id" value="" hidden="">
</gt>
<div class="layui-form-item" >
<label class="layui-form-label">上级分类</label>
<div class="layui-form-item">
<label class="layui-form-label">PartClass</label>
<div class="layui-input-block">
<div id="treeNode" name="pid" lay-filter="treeNode" data-pid="{$data.pid|default=0}"></div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">{:__('排序号')}</label>
<div class="layui-input-block">
<input name="sort" placeholder="{:__('默认自动生成')}" type="number" value="{$data.sort}" class="layui-input"/>
<input name="sort" placeholder="{:__('默认自动生成')}" type="number" value="{$data.sort}"
class="layui-input" />
</div>
</div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label"><font color="red">* </font>Title/分类</label>
<div class="layui-input-block"><input class="layui-input" name="parttypetitle" placeholder="请输入" required="1" lay-verify=""value="{$data.parttypetitle}" ></div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">
<font color="red">* </font>PartType
</label>
<div class="layui-input-block"><input class="layui-input" name="name" placeholder="请输入" required="1"
lay-verify="" value="{$data.name}"></div>
</div>
<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="parttypevalue" placeholder="请输入" required="1" lay-verify=""value="{$data.parttypevalue}" ></div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">
<font color="red">* </font>Value
</label>
<div class="layui-input-block"><input class="layui-input" name="value" placeholder="请输入"
required="1" lay-verify="" value="{$data.value}"></div>
</div>
<div class="layui-form-item" >
<div class="layui-form-item">
<label class="layui-form-label">分类描述</label>
<div class="layui-input-block"><textarea class="layui-textarea" name="description"
placeholder="请输入">{$data.description}</textarea></div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">分类属性</label>
<div class="layui-input-block">
<table class="layui-table">
@@ -44,28 +58,34 @@
</tr>
</thead>
<tbody>
<notempty name="data.partattribute">
<volist name="data.partattribute" id="vo" key="i">
<notempty name="data.attribute">
<volist name="data.attribute" 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>
<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="partattribute">追加</button>
<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-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 layui-btn-primary" type="button"
sa-event="closeDialog">{:__('取消')}</button>
<button class="layui-btn" type="button" lay-filter="submitIframe" lay-submit>{:__('提交')}</button>
</div>
</form>
@@ -74,7 +94,7 @@
<include file="/public/footer" />
<script>
layui.use(['jquery', 'iconPicker','form'],function() {
layui.use(['jquery', 'iconPicker', 'form'], function () {
let $ = layui.jquery;
let show = layui.show;
let form = layui.form;
@@ -82,15 +102,15 @@
let data = {$rules|raw};
// 提交参数
form.on("submit(submit)",function(data){
$.post("{:Url('/PdmParttype/')}"+app_Config.action,data.field,function(res){
if(res.code === 200){
form.on("submit(submit)", function (data) {
$.post("{:Url('/PdmParttype/')}" + app_Config.action, data.field, function (res) {
if (res.code === 200) {
show.msg(res.msg);
parent.layui.table.reloadData('lay-tableList');
parent.layer.closeAll();
// 调用接口更新菜单
top.layui.admin.reloadLayout();
}else{
} else {
show.error(res.msg);
}
});
@@ -99,16 +119,16 @@
xmSelect.render({
el: '#treeNode',
tips: '请选择上级菜单',
tips: '请选择上级分类',
name: 'pid',
height: '260px',
data: data,
radio: true,
clickClose: true,
initValue:[$('#treeNode').data('pid')],
initValue: [$('#treeNode').data('pid')],
prop: {
value: 'id',
name:'parttypetitle'
name: 'name'
},
tree: {
show: true,
@@ -135,17 +155,17 @@
page: true,
limit: 12,
// 点击回调
click: function(data) { // 点击回调
click: function (data) { // 点击回调
$('#iconPicker').val(data.icon);
},
success: function(d) { // 渲染成功后的回调
success: function (d) { // 渲染成功后的回调
}
});
$('.router').bind('input change',function(data){
$('.router').bind('input change', function (data) {
let router = $('.router').val();
router = router.substring(1);
$('.alias').val(router.replaceAll('/',':'));
$('.alias').val(router.replaceAll('/', ':'));
})
})
</script>

View File

@@ -1,84 +1,115 @@
<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 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')}"/>
<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')}"/>
<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="{:__('排序')}"/>
<input name="sort" class="layui-input" type="text" placeholder="{:__('排序')}" />
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('描述')}</div>
<div class="layui-form-label">{:__('PartType')}</div>
<div class="layui-input-inline ">
<input name="parttypevalue" class="layui-input" type="text" placeholder="{:__('描述')}"/>
<input name="value" class="layui-input" type="text" placeholder="{:__('PartType')}" />
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('用户')}</div>
<div class="layui-form-label">{:__('分类描述')}</div>
<div class="layui-input-inline ">
<input name="createrid" class="layui-input" type="text" placeholder="{:__('用户')}"/>
<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="attribute" 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="creator" 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="{:__('注释')}"/>
<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="{:__('更新时间')}"/>
<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="{:__('创建时间')}"/>
<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">
<div class="layui-form-label">{:__('Parttype')}</div>
<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">{:__('PartType')}</div>
<div class="layui-input-inline ">
<input name="parttypetitle" class="layui-input" type="text" placeholder="{:__('Parttype')}"/>
<input name="name" class="layui-input" type="text" placeholder="{:__('PartType')}" />
</div>
</div>
<div class="layui-inline" >
<div class="layui-inline">
<!-- // 默认搜索 -->
<button class="layui-btn icon-btn" lay-filter="formSearch" lay-submit><i class="layui-icon layui-icon-search"></i>{:__('搜索')}</button>
<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('/PdmParttype/add')}" >
<button class="layui-btn icon-btn" lay-open="" data-title="{:__('添加')}" data-area="1100px,750px"
data-maxmin="true" data-url="{:url('/PdmParttype/add')}">
<i class="layui-icon layui-icon-add-1"></i>{:__('添加')}
</button>
<button class="layui-btn layui-btn-primary icon-btn" id="expandAll" ><i class="layui-icon layui-icon-templeate-1"></i>{:__('展开全部')}</button>
<button class="layui-btn layui-btn-danger icon-btn" id="foldAll" ><i class="layui-icon layui-icon-add-1"></i>{:__('折叠全部')}</button>
<button class="layui-btn layui-btn-primary icon-btn" id="expandAll"><i
class="layui-icon layui-icon-templeate-1"></i>{:__('展开全部')}</button>
<button class="layui-btn layui-btn-danger icon-btn" id="foldAll"><i
class="layui-icon layui-icon-add-1"></i>{:__('折叠全部')}</button>
<!--formEnd-->
</div>
</div>
@@ -98,14 +129,13 @@
<script type="text/html" id="tableBar">
<!--formBegin-->
<a class="layui-table-text" lay-open data-title="{:__('添加菜单')}" data-url="{:url('/PdmParttype/add')}?pid={{d.id}}"
data-area="1100px,750px" >{:__('添加')}</a>
data-area="1100px,750px">{:__('添加')}</a>
<div class="layui-divider layui-divider-vertical"></div>
<a class="layui-table-text" data-title="{:__('编辑')}" data-area="1100px,750px" data-maxmin="true"
data-url="{:url('/PdmParttype/edit')}?id={{d.id}}" lay-event="edit" >{:__('编辑')}</a>
data-url="{:url('/PdmParttype/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('/PdmParttype/del')}?id={{d.id}}" lay-event="del" >{:__('删除')}</a>
<a class="layui-table-text" data-url="{:url('/PdmParttype/del')}?id={{d.id}}" lay-event="del">{:__('删除')}</a>
</script>
@@ -113,8 +143,8 @@
<script type="text/html" id="tableButton"></script>
<include file="/public/footer" />
<script>
layui.use(['form','treeTable'], function () {
<script type="text/javascript">
layui.use(['form', 'treeTable'], function () {
let $ = layui.jquery;
let form = layui.form;
@@ -128,7 +158,7 @@
elem: '#lay-tableList',
url: tableURL,
toolbar: '#tableButton',
defaultToolbar: ['filter', 'exports', 'print','search'],
defaultToolbar: ['filter', 'exports', 'print', 'search'],
cellMinWidth: 160,
page: true,
limit: 18,
@@ -145,47 +175,59 @@
},
cols: [[
//{type: 'checkbox', width: 50},
{type: 'numbers'},
{ type: 'numbers' },
//{field: 'id', align: 'center',sort: true,width: 80, title: 'ID'},
//{field:'parttypetitle',title:'{:__("Title")}'},
{field: 'name', title: '{:__("Parttype")}',templet: function(d) {
return d.parttypetitle;
},},
{field:'parttypevalue',title:'{:__("描述")}'},
{field:'createrid',title:'{:__("创建者")}',templet: function(d) {
return d.createrid ;
},},
{field:'sort',title:'{:__("排序")}'},
{
field: 'name', title: '{:__("Parttype")}', templet: function (d) {
return d.name;
},
},
{ field: 'value', title: '{:__("描述")}' },
//{
// field: 'creatorid', title: '{:__("创建者ID")}', templet: function (d) {
// return d.creatorid;
// },
//},
//{
// field: 'creator', title: '{:__("创建者")}', templet: function (d) {
// return d.creator;
// },
//},
{ field: 'sort', title: '{:__("排序")}' },
<!-- { field: 'creator', title: '{:__("创建者")}' }, -->
{ field: 'nickname', title: '{:__("创建者")}' },
{field:'content',title:'{:__("注释")}'},
{align: 'center', toolbar: '#tableBar', width:220, fixed: 'right', title: '{:__("操作")}'},
{ align: 'center', toolbar: '#tableBar', width: 220, fixed: 'right', title: '{:__("操作")}' },
]]
});
}
// 监听搜索 serialize
form.on('submit(treeSearch)',function(data) {
form.on('submit(treeSearch)', function (data) {
let whereURL = '',
field = data.field;
for (let key in field ) {
for (let key in field) {
whereURL += key + '=' + field[key];
whereURL += '&';
}
// 拼接字符串
whereURL = whereURL.replace(/(.*)&/,'$1 ');
whereURL = whereURL.replace(/(.*)&/, '$1 ');
whereURL = tableURL + '?' + whereURL;
renderTable(whereURL);
})
// 展开所有
$('#expandAll').click(function(){
$('#expandAll').click(function () {
treeTable.expandAll('lay-tableList', true);
})
// 折叠所有
$('#foldAll').click(function () {
treeTable.expandAll('lay-tableList',false);
treeTable.expandAll('lay-tableList', false);
});
// 执行初始化

View File

@@ -11,44 +11,78 @@
<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 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">物料描述</label>
<div class="layui-input-block"><input class="layui-input" name="mpn" placeholder="请输入" lay-verify=""value="{$data.mpn}" ></div>
</div>
</div></div>
<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">优选等级</label>
<div class="layui-input-block"><input class="layui-input" name="preferencelevel" placeholder="请输入" lay-verify=""value="{$data.preferencelevel}" ></div>
</div>
</div><div class="layui-col-md6 layui-grid-1" data-index="1"><div class="layui-form-item" >
<label class="layui-form-label">交期</label>
<div class="layui-input-block"><input class="layui-input" name="ltime" placeholder="请输入" lay-verify="number"value="{$data.ltime}" ></div>
</div>
</div></div>
<div class="layui-form-item" >
<label class="layui-form-label">MOQ</label>
<div class="layui-input-block"><input class="layui-input" name="moq" placeholder="请输入" lay-verify=""value="{$data.moq}" ></div>
</div>
<div class="layui-input-block">
<div class="layui-input-inline">
<!-- <label class="layui-form-label"> -->
<font color="blue">* </font><a target="_blank" href="http://oa.aeroht.local/seeyon/main.do">OA系统物料编码查询。</a>
<!-- </label> -->
<i class="layui-icon layui-icon-about" lay-tips="实际的OA编码可能有多个非唯一码。" data-offset="4"></i>
</div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">MPQ</label>
<div class="layui-input-block"><input class="layui-input" name="mpq" placeholder="请输入" lay-verify=""value="{$data.mpq}" ></div>
</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 class="layui-form-item" >
<label class="layui-form-label">产地</label>
<div class="layui-input-block"><input class="layui-input" name="origin" placeholder="请输入" lay-verify=""value="{$data.origin}" ></div>
</div>
<div class="layui-input-block">
<div class="layui-input-inline">
<!-- <label class="layui-form-label"> -->
<font color="blue">* </font><a target="_blank" href="http://oa.aeroht.local/seeyon/main.do">OA系统物料编码对应的物料描述(MF_PN)。</a>
<!-- </label> -->
<i class="layui-icon layui-icon-about" lay-tips="实际的OA编码可能有多个非唯一码。" data-offset="4"></i>
</div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">汇天独有</label>
<div class="layui-input-block"> <input type="hidden" type="checkbox" name="specificforht" value="0" />
<input type="checkbox" name="specificforht" value="1" <eq name="$data.specificforht" value="1" > checked </eq> lay-skin="switch" /></div>
</div>
</div>
</div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">物料属性</label>
<div class="layui-input-block">
<table class="layui-table">
<div class="layui-form-item" >
<label class="layui-form-label">小鹏共用</label>
<div class="layui-input-block"> <input type="hidden" type="checkbox" name="sharewithxp" value="0" />
<input type="checkbox" name="sharewithxp" value="1" <eq name="$data.sharewithxp" value="1" > checked </eq> lay-skin="switch" /></div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">是否EOL</label>
<div class="layui-input-block"> <input type="hidden" type="checkbox" name="eol" value="0" />
<input type="checkbox" name="eol" value="1" <eq name="$data.eol" value="1" > checked </eq> lay-skin="switch" /></div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">是否NRND</label>
<div class="layui-input-block"> <input type="hidden" type="checkbox" name="nrnd" value="0" />
<input type="checkbox" name="nrnd" value="1" <eq name="$data.nrnd" value="1" > checked </eq> lay-skin="switch" /></div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">是否NCNR</label>
<div class="layui-input-block"> <input type="hidden" type="checkbox" name="ncnr" value="0" />
<input type="checkbox" name="ncnr" value="1" <eq name="$data.ncnr" value="1" > checked </eq> lay-skin="switch" /></div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">状态</label>
<div class="layui-input-block"> <input type="hidden" type="checkbox" name="status" value="0" />
<input type="checkbox" name="status" value="1" <eq name="$data.status" value="1" > checked </eq> lay-skin="switch" /></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>
@@ -68,14 +102,13 @@
</notempty>
</tbody>
</table>
<button type="button" class="layui-btn layui-btn-normal layui-jsonvar-add" data-name="attribute">追加</button>
</div>
</div>
<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-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>

View File

@@ -31,7 +31,14 @@
<div class="layui-inline">
<div class="layui-form-label">{:__('物料描述')}</div>
<div class="layui-input-inline ">
<input name="partitemmfpn" class="layui-input" type="text" placeholder="{:__('物料描述')}"/>
<input name="mpn" 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="preferencelevel" class="layui-input" type="text" placeholder="{:__('优选等级')}"/>
</div>
</div>
@@ -43,16 +50,72 @@
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('管理员ID')}</div>
<div class="layui-form-label">{:__('是否EOL')}</div>
<div class="layui-input-inline ">
<input name="admin_id" class="layui-input" type="text" placeholder="{:__('管理员ID')}"/>
<input name="eol" class="layui-input" type="text" placeholder="{:__('是否EOL')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('会员ID')}</div>
<div class="layui-form-label">{:__('MOQ')}</div>
<div class="layui-input-inline ">
<input name="user_id" class="layui-input" type="text" placeholder="{:__('会员ID')}"/>
<input name="moq" class="layui-input" type="text" placeholder="{:__('MOQ')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('MPQ')}</div>
<div class="layui-input-inline ">
<input name="mpq" class="layui-input" type="text" placeholder="{:__('MPQ')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('是否NRND')}</div>
<div class="layui-input-inline ">
<input name="nrnd" class="layui-input" type="text" placeholder="{:__('是否NRND')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('是否NCNR')}</div>
<div class="layui-input-inline ">
<input name="ncnr" class="layui-input" type="text" placeholder="{:__('是否NCNR')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('交期')}</div>
<div class="layui-input-inline ">
<input name="ltime" 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="origin" 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="specificforht" 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="sharewithxp" 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="creatorid" class="layui-input" type="text" placeholder="{:__('创建者')}"/>
</div>
</div>
@@ -87,9 +150,9 @@
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('物料编码')}</div>
<div class="layui-form-label">{:__('采购编码')}</div>
<div class="layui-input-inline ">
<input name="purchasecode" class="layui-input" type="text" placeholder="{:__('物料(OA)编码')}"/>
<input name="purchasecode" class="layui-input" type="text" placeholder="{:__('采购编码')}"/>
</div>
</div>
<div class="layui-inline" >
@@ -147,12 +210,16 @@
,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: 220,title:'{:__("物料(OA)编码")}'},
{field:'partitemmfpn',sort: true,title:'{:__("物料描述")}'},
{field:'content',title:'{:__("注释")}'},
{field:'status',fixed: 'right',width: 50,templet: '#columnStatus',title:'{:__("状态")}'},
{type: 'checkbox', width: 50},
{field: 'id', align: 'center',sort: true,width: 80, title: 'ID'},
{field:'purchasecode',title:'{:__("采购编码")}'},
{field:'mpn',title:'{:__("物料描述")}'},
{field:'preferencelevel',title:'{:__("优选等级")}'},
{field:'eol',title:'{:__("是否EOL")}'},
{field:'moq',title:'{:__("MOQ")}'},
{field:'mpq',title:'{:__("MPQ")}'},
{field:'ltime',title:'{:__("交期")}'},
{field:'status',templet: '#columnStatus',title:'{:__("状态")}'},
{align: 'center', toolbar: '#tableBar', width:160, fixed: 'right', title: '{:__("操作")}'},
]]
})

View File

@@ -1,77 +1,87 @@
<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" >
<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/>
<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="sort" placeholder="请输入" lay-verify=""value="{$data.sort}" ></div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">Symbol分类</label>
<div class="layui-input-block">
<div id="treeNode" name="pid" lay-filter="treeNode" data-pid="{$data.pid|default=0}"></div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">{:__('排序号')}</label>
<div class="layui-input-block">
<input name="sort" placeholder="{:__('默认自动生成')}" type="number" value="{$data.sort}"
class="layui-input" />
</div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">Symbol名称</label>
<div class="layui-input-block"><input class="layui-input" name="symbolname" placeholder="请输入" lay-verify=""value="{$data.symbolname}" ></div>
</div>
<div class="layui-form-item">
<label class="layui-form-label"><font color="red">* </font>Symbol名称</label>
<div class="layui-input-block"><input class="layui-input" name="symbolname" placeholder="请输入"
required="1" lay-verify="" value="{$data.symbolname}"></div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">Symbol文件</label>
<div class="layui-input-block">
<input type="text" name="attachment" value="{$data.attachment}" class="layui-input layui-input-upload attachment" >
<button type="button" class="layui-btn" lay-upload="attachment" data-type="normal" data-accept="file" data-size="102400">
<i class="layui-icon layui-icon-upload"></i> 上传
</button>
<button type="button" class="layui-btn ml10" lay-choose="attachment" data-type="file" >
<i class="layui-icon layui-icon-windows"></i> 选择
</button>
</div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">Symbol预览</label>
<div class="layui-input-block"> <input class="layui-input layui-input-upload symbolview" name="symbolview" value="{$data.symbolview}">
<button type="button" class="layui-btn" lay-choose="symbolview" data-type="images" >
<div class="layui-form-item">
<label class="layui-form-label">SymbolView</label>
<div class="layui-input-block"> <input class="layui-input layui-input-upload view" name="view"
value="{$data.view}">
<button type="button" class="layui-btn" lay-choose="view" data-type="images">
<i class="layui-icon layui-icon-windows"></i> 选择
</button>
<div class="clear"></div>
<notempty name="$data['symbolview']" >
<div class="layui-upload-drag layui-uplpad-image mt10" lay-upload="symbolview" data-type="images" data-accept="file" data-size="102400">
<notempty name="$data['view']">
<div class="layui-upload-drag layui-uplpad-image mt10" lay-upload="view" 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.symbolview}" class="layui-upload-dragimg symbolview" alt="上传成功后渲染" >
<div>
<hr><img src="{$data.view}" class="layui-upload-dragimg view" alt="上传成功后渲染">
<span class="layui-badge layui-upload-clear">删除</span>
</div>
</div>
<else/>
<div class="layui-upload-drag layui-uplpad-image mt10" lay-upload="symbolview" data-type="images" data-accept="file" data-size="102400">
<else />
<div class="layui-upload-drag layui-uplpad-image mt10" lay-upload="view" 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.symbolview}" class="layui-upload-dragimg symbolview" alt="上传成功后渲染" >
<hr><img src="{$data.view}" class="layui-upload-dragimg view" alt="上传成功后渲染">
<span class="layui-badge layui-upload-clear">删除</span>
</div>
</div>
</notempty>
</div>
</div>
</div>
</div>
<div class="layui-form-item" >
<label class="layui-form-label">器件绑定</label>
<div class="layui-input-block"><input type="text" lay-tags="" id="bindpartnumber" name="bindpartnumber" value="{$data.bindpartnumber}" class="layui-input" ></div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">Symbol文件</label>
<div class="layui-input-block">
<input type="text" name="attachment" value="{$data.attachment}"
class="layui-input layui-input-upload attachment">
<button type="button" class="layui-btn" lay-upload="attachment" data-type="normal"
data-accept="file" data-size="102400">
<i class="layui-icon layui-icon-upload"></i> 上传
</button>
<button type="button" class="layui-btn ml10" lay-choose="attachment" data-type="file">
<i class="layui-icon layui-icon-windows"></i> 选择
</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-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>
@@ -81,3 +91,81 @@
</div>
<include file="/public/static" />
<include file="/public/footer" />
<script>
layui.use(['jquery', 'iconPicker', 'form'], function () {
let $ = layui.jquery;
let show = layui.show;
let form = layui.form;
let iconPicker = layui.iconPicker;
let data = {$rules|raw};
// 提交参数
form.on("submit(submit)", function (data) {
$.post("{:Url('/PdmSymbol/')}" + app_Config.action, data.field, function (res) {
if (res.code === 200) {
show.msg(res.msg);
parent.layui.table.reloadData('lay-tableList');
parent.layer.closeAll();
// 调用接口更新菜单
top.layui.admin.reloadLayout();
} else {
show.error(res.msg);
}
});
return false;
})
xmSelect.render({
el: '#treeNode',
tips: '请选择上级分类',
name: 'pid',
height: '260px',
data: data,
radio: true,
clickClose: true,
initValue: [$('#treeNode').data('pid')],
prop: {
value: 'id',
name: 'symbolname'
},
tree: {
show: true,
strict: false,
showLine: false,
clickExpand: false,
},
model: {
icon: 'hidden',
label: {
type: 'text'
}
},
theme: {
color: '#1890FF'
}
})
iconPicker.render({
elem: '#iconPicker',
type: 'fontClass',
search: true,
cellWidth: "19%",
page: true,
limit: 12,
// 点击回调
click: function (data) { // 点击回调
$('#iconPicker').val(data.icon);
},
success: function (d) { // 渲染成功后的回调
}
});
$('.router').bind('input change', function (data) {
let router = $('.router').val();
router = router.substring(1);
$('.alias').val(router.replaceAll('/', ':'));
})
})
</script>

View File

@@ -1,5 +1,5 @@
<include file="/public/header" />
<!---->
<!--partmanage-->
<div class="layui-fluid">
<div class="layui-card">
<!-- // 默认操作按钮 -->
@@ -29,16 +29,9 @@
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('Symbol预览')}</div>
<div class="layui-form-label">{:__('SymbolView')}</div>
<div class="layui-input-inline ">
<input name="symbolview" class="layui-input" type="text" placeholder="{:__('Symbol预览')}"/>
</div>
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('器件绑定')}</div>
<div class="layui-input-inline ">
<input name="bindpartnumber" class="layui-input" type="text" placeholder="{:__('器件绑定')}"/>
<input name="view" class="layui-input" type="text" placeholder="{:__('SymbolView')}"/>
</div>
</div>
@@ -50,16 +43,9 @@
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('用户ID')}</div>
<div class="layui-form-label">{:__('创建者')}</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">{:__('管理员ID')}</div>
<div class="layui-input-inline ">
<input name="admin_id" class="layui-input" type="text" placeholder="{:__('管理员ID')}"/>
<input name="creator" class="layui-input" type="text" placeholder="{:__('创建者')}"/>
</div>
</div>
@@ -94,9 +80,9 @@
</div>
<div class="layui-inline">
<div class="layui-form-label">{:__('Symbol名称')}</div>
<div class="layui-form-label">{:__('SymbolName')}</div>
<div class="layui-input-inline ">
<input name="symbolname" class="layui-input" type="text" placeholder="{:__('Symbol名称')}"/>
<input name="symbolname" class="layui-input" type="text" placeholder="{:__('SymbolName')}"/>
</div>
</div>
<div class="layui-inline" >
@@ -106,6 +92,12 @@
<button class="layui-btn icon-btn" lay-open="" data-title="{:__('添加')}" data-area="1100px,750px" data-maxmin="true" data-url="{:url('/PdmSymbol/add')}" >
<i class="layui-icon layui-icon-add-1"></i>{:__('添加')}
</button>
<button class="layui-btn layui-btn-primary icon-btn" id="expandAll"><i
class="layui-icon layui-icon-templeate-1"></i>{:__('展开全部')}</button>
<button class="layui-btn layui-btn-danger icon-btn" id="foldAll"><i
class="layui-icon layui-icon-add-1"></i>{:__('折叠全部')}</button>
<!--formEnd-->
</div>
</div>
@@ -124,6 +116,9 @@
<!-- // 列表工具栏 -->
<script type="text/html" id="tableBar">
<!--formBegin-->
<a class="layui-table-text" lay-open data-title="{:__('添加菜单')}" data-url="{:url('/PdmFootprint/add')}?pid={{d.id}}"
data-area="1100px,750px">{:__('添加')}</a>
<div class="layui-divider layui-divider-vertical"></div>
<a class="layui-table-text" data-title="{:__('编辑')}" data-area="1100px,750px" data-maxmin="true"
data-url="{:url('/PdmSymbol/edit')}?id={{d.id}}" lay-event="edit" >{:__('编辑')}</a>
<div class="layui-divider layui-divider-vertical"></div>
@@ -136,45 +131,98 @@
<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('/PdmSymbol/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:'symbolname',title:'{:__("Symbol名称")}'},
{field:'symbolview',templet:function(d) {
return '<a href="javascript:"><img class="filesuffix" lay-image-click src="'+d.symbolview+'"></a>';
},title:'{:__("Symbol预览")}'},
{field:'bindpartnumber',templet:function(d) {
if( d.bindpartnumber ==null || d.bindpartnumber =='' || d.bindpartnumber ==undefined ){
return '';
}else{
return d.bindpartnumber.replace(',',' ');
<script type="text/javascript">
layui.use(['form', 'treeTable'], function () {
let $ = layui.jquery;
let form = layui.form;
let treeTable = layui.treeTable;
let tableURL = "{:url('/PdmSymbol/index')}";
// 渲染初始化表格
let renderTable = function (tableURL) {
treeTable.render({
id: 'lay-tableList',
elem: '#lay-tableList',
url: tableURL,
toolbar: '#tableButton',
defaultToolbar: ['filter', 'exports', 'print', 'search'],
cellMinWidth: 160,
page: true,
limit: 18,
tree: {
customName: {
pid: 'pid',
icon: 'icon1',
},
view: {
iconClose: '', // 关闭时候的图标
iconOpen: '', // 打开时候的图标
iconLeaf: '', // 叶子节点的图标
}
},title:'{:__("器件绑定")}'},
{field:'attachment',templet:function(d) {
return '<a href="'+d.attachment+'" target="_blank" ><img class="filesuffix" src="'+d.attachment+'"></a>';
},title:'{:__("Symbol文件")}'},
},
cols: [[
//{type: 'checkbox', width: 50},
{ type: 'numbers' },
//{field: 'id', align: 'center',sort: true,width: 80, title: 'ID'},
//{field:'parttypetitle',title:'{:__("Title")}'},
{
field: 'name', title: '{:__("SymbolName")}', templet: function (d) {
return d.symbolname;
},
},
{
field: 'view', templet: function (d) {
return '<a href="javascript:"><img class="filesuffix" lay-image-click src="' + d.view + '"></a>';
}, title: '{:__("SymbolView")}'
},
{
field: 'attachment', templet: function (d) {
return '<a href="' + d.attachment + '" target="_blank" ><img class="filesuffix" src="' + d.attachment + '"></a>';
}, title: '{:__("Symbol文件")}'
},
{ field: 'nickname', title: '{:__("创建者")}' },
{field:'content',title:'{:__("注释")}'},
{field:'status',templet: '#columnStatus',title:'{:__("状态")}'},
{align: 'center', toolbar: '#tableBar', width:160, fixed: 'right', title: '{:__("操作")}'},
{ field: 'status', templet: '#columnStatus', title: '{:__("状态")}' },
{ align: 'center', toolbar: '#tableBar', width: 220, fixed: 'right', title: '{:__("操作")}' },
]]
});
}
// 监听搜索 serialize
form.on('submit(treeSearch)', function (data) {
let whereURL = '',
field = data.field;
for (let key in field) {
whereURL += key + '=' + field[key];
whereURL += '&';
}
// 拼接字符串
whereURL = whereURL.replace(/(.*)&/, '$1 ');
whereURL = tableURL + '?' + whereURL;
renderTable(whereURL);
})
// 展开所有
$('#expandAll').click(function () {
treeTable.expandAll('lay-tableList', true);
})
// 折叠所有
$('#foldAll').click(function () {
treeTable.expandAll('lay-tableList', false);
});
// 执行初始化
renderTable(tableURL);
});
</script>

View File

@@ -1,42 +0,0 @@
<?php
namespace app\common\model;
use think\Model;
use think\model\concern\SoftDelete;
/**
* pdm_mfg_name
* <!--partmanage-->
* 制造商名录
* Class PdmMfgName
* @package app\common\model
*/
class PdmMfgName extends Model
{
use SoftDelete;
// 定义时间戳字段名
protected $createTime = 'create_time';
protected $updateTime = 'update_time';
protected $deleteTime = 'delete_time';
/**
* 定义 sa_user 关联模型
* @localKey createrid
* @bind name,nickname
*/
public function user()
{
return $this->hasOne(\app\common\model\system\User::Class,'id','createrid')->bind(['name','nickname']);
}
public function usernames()
{
// return \app\common\model\system\User::select()->toArray();
return \app\common\model\system\Admin::select()->toArray();
}
}

View File

@@ -0,0 +1,55 @@
<?php
declare (strict_types = 1);
// +----------------------------------------------------------------------
// | swiftAdmin 极速开发框架 [基于 WebMan 开发]
// +----------------------------------------------------------------------
// | Copyright (c) 2020-2099 http://www.swiftadmin.net
// +----------------------------------------------------------------------
// | swiftAdmin.net High Speed Development Framework
// +----------------------------------------------------------------------
// | Author: meystack <coolsec@foxmail.com> Apache2
// +----------------------------------------------------------------------
namespace app\index\controller;
use app\HomeController;
use support\Response;
/**
* 首页控制器
* <!--Partlist-->
* Class Index
* @package app\index\controller
*/
class Partlist extends HomeController
{
/**
* 鉴权控制器
*/
public $needLogin = false;
/**
* 非鉴权方法
* @var array
*/
public $noNeedAuth = ['index', 'home'];
// 初始化函数
public function __construct()
{
parent::__construct();
}
/**
* Partlist 首页
* @return Response
* @throws InvalidArgumentException
*/
public function index(): Response
{
return response('Partlist 前台首页模板');
}
}

View File

@@ -0,0 +1,55 @@
<?php
declare (strict_types = 1);
// +----------------------------------------------------------------------
// | swiftAdmin 极速开发框架 [基于 WebMan 开发]
// +----------------------------------------------------------------------
// | Copyright (c) 2020-2099 http://www.swiftadmin.net
// +----------------------------------------------------------------------
// | swiftAdmin.net High Speed Development Framework
// +----------------------------------------------------------------------
// | Author: meystack <coolsec@foxmail.com> Apache2
// +----------------------------------------------------------------------
namespace app\index\controller;
use app\HomeController;
use support\Response;
/**
* 首页控制器
* <!--Partview-->
* Class Index
* @package app\index\controller
*/
class Partview extends HomeController
{
/**
* 鉴权控制器
*/
public $needLogin = false;
/**
* 非鉴权方法
* @var array
*/
public $noNeedAuth = ['index', 'home'];
// 初始化函数
public function __construct()
{
parent::__construct();
}
/**
* Partview 首页
* @return Response
* @throws InvalidArgumentException
*/
public function index(): Response
{
return response('Partview 前台首页模板');
}
}

View File

@@ -2,7 +2,7 @@
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>SwiftAdmin 官方演示站</title>
<title>产品数据管理PDM平台</title>
<meta http-equiv="Cache-Control" content="no-transform " />
<include file="public:header" />
</head>
@@ -16,7 +16,7 @@
<div class="layui-row">
<div class="layui-col-md6">
<div class="layui-swift-box">
<h1>SWIFTADMIN 极速开发框架</h1>
<h1>基于 SWIFTADMIN 极速开发框架,搭建 PDM系统。</h1>
<h1 style="font-size: 26px; font-weight: 300">基于高性能WM框架性能在TP5 10倍以上</h1>
<p>SwiftAdmin框架主张简单就是高效的原则在设计和运维上采用最精简最高效的做法去完成业务系统的需求并且基于ant Design的设计原则是一款优秀的前后台极速开发解决方案。相信你第一眼就有立刻想体验SwiftAdmin框架的冲动和热情</p>
<div class="layui-swift-desc">

View File

@@ -0,0 +1,22 @@
<!--Partlist-->
<layout name="layout:layout"/>
<!-- 内容主体区域 -->
<div id="content">
<div class="layui-card">
<div class="layui-card-body"> 示例页面 TODO...</div>
<!-- // 创建数据实例 -->
<table id="lay-tableList" lay-filter="lay-tableList"></table>
</div>
</div>
<!-- // 列表工具栏 -->
<script type="text/html" id="tableBar">
<!-- // TODO-->
</script>
<script>
layui.use(['table','jquery'], function () {
let $ = layui.jquery;
let table = layui.table;
})
</script>

View File

@@ -0,0 +1,22 @@
<!--Partview-->
<layout name="layout:layout"/>
<!-- 内容主体区域 -->
<div id="content">
<div class="layui-card">
<div class="layui-card-body"> 示例页面 TODO...</div>
<!-- // 创建数据实例 -->
<table id="lay-tableList" lay-filter="lay-tableList"></table>
</div>
</div>
<!-- // 列表工具栏 -->
<script type="text/html" id="tableBar">
<!-- // TODO-->
</script>
<script>
layui.use(['table','jquery'], function () {
let $ = layui.jquery;
let table = layui.table;
})
</script>

View File

@@ -17,6 +17,7 @@
<li class="layui-nav-item"><a href="/index/user/register" target="_blank">注册</a></li>
<li class="layui-nav-item"><a href="/index/user/login" target="_blank">登录</a></li>
<li class="layui-nav-item"><a id="ajaxLogin" href="javascript:;" lay-open data-title="用户登录" data-area="450px,420px" data-url="/index/user/ajaxLogin" >Ajax登录</a></li>
<li class="layui-nav-item"><a href="/manage" target="_blank"><font color="blue">管理后台</font></a></li>
</notempty>
</div>
</div>

View File

@@ -0,0 +1,55 @@
<?php
namespace plugin\partlist;
use app\PluginController;
/**
* BOM管理插件
*/
class Partlist extends PluginController
{
/**
* 插件安装方法
* @return bool
*/
public function install()
{
return true;
}
/**
* 插件卸载方法
* @return bool
*/
public function uninstall()
{
return true;
}
/**
* 插件启用方法
* @return bool
*/
public function enabled()
{
return true;
}
/**
* 插件禁用方法
* @return bool
*/
public function disabled()
{
return true;
}
/**
* 插件初始化
* @return bool
*/
public function appInit()
{}
}

29
plugin/partlist/README.md Normal file
View File

@@ -0,0 +1,29 @@
// +----------------------------------------------------------------------
// | swiftAdmin 极速开发框架 [基于 WebMan 开发]
// +----------------------------------------------------------------------
// | Copyright (c) 2020-2099 http://www.swiftadmin.net
// +----------------------------------------------------------------------
// | swiftAdmin.net High Speed Development Framework
// +----------------------------------------------------------------------
// | Author: meystack <coolsec@foxmail.com> Apache2
// +----------------------------------------------------------------------
* app 文件夹下所有文件将复制到根目录
* public 文件夹下所有文件将复制到根目录
* Partlist.php 为插件的核心安装文件,请务必按要求书写代码
> 请注意钩子函数为public类型如需非钩子函数可使用protected类型
* function.php 为当前插件的函数库文件
* config.json 为当前插件的配置信息文件
* config.html 为当前配置模板,存在才会出现配置按钮
* install.sql 插件的数据库安装文件,不需要可删除!!
*
* uninstall.sql 插件的数据库卸载文件,不需要可删除!!
* library 该目录下为第三方类库文件如果你的类库文件存在命名空间问题可手动修改或自行实现install方法将第三方类库复制到extend文件夹下

View File

@@ -0,0 +1,21 @@
<?php
namespace plugin\partlist;
/**
* BOM管理插件
*/
class Upgrade
{
/**
* 插件升级方法
* @access public
* @param $oldVersion
* @param $newVersion
* @return bool
*/
public function execute($oldVersion, $newVersion): bool
{
return true;
}
}

View File

@@ -0,0 +1,33 @@
<?php
declare(strict_types = 1);
namespace app\admin\controller\partlist;
use app\AdminController;
use support\Response;
/**
* BOM管理后台控制器
* <!--Partlist-->
*/
class Index extends AdminController {
// 初始化函数
public function __construct()
{
parent::__construct();
/**
* TODO...
*/
}
/**
* 初始化后台首页
* @return Response
*/
public function index(): Response
{
echo '后台 BOM管理 控制器<br/>';
return $this->view();
}
}

View File

@@ -0,0 +1,35 @@
<?php
declare (strict_types = 1);
namespace app\admin\model\partlist;
use think\Model;
/**
* BOM管理模型类
* <!--Partlist-->
* @mixin Model
*/
class Partlist extends Model
{
// 自动写入时间戳字段
protected $autoWriteTimestamp = 'int';
// 定义时间戳字段名
protected $createTime = 'create_time';
protected $updatetime = 'update_time';
/**
* 字段修改器
* @param $value
* @return int|mixed
*/
public function setSortAttr($value)
{
if (is_empty($value)) {
return self::max('id') + 1;
}
return $value;
}
}

View File

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

View File

@@ -0,0 +1,13 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>我是后台首页控制器模板</title>
</head>
<!--Partlist-->
<body>
我是 Partlist 控制器模板
</body>
</html>

View File

@@ -0,0 +1,55 @@
<?php
declare (strict_types = 1);
// +----------------------------------------------------------------------
// | swiftAdmin 极速开发框架 [基于 WebMan 开发]
// +----------------------------------------------------------------------
// | Copyright (c) 2020-2099 http://www.swiftadmin.net
// +----------------------------------------------------------------------
// | swiftAdmin.net High Speed Development Framework
// +----------------------------------------------------------------------
// | Author: meystack <coolsec@foxmail.com> Apache2
// +----------------------------------------------------------------------
namespace app\index\controller;
use app\HomeController;
use support\Response;
/**
* 首页控制器
* <!--Partlist-->
* Class Index
* @package app\index\controller
*/
class Partlist extends HomeController
{
/**
* 鉴权控制器
*/
public $needLogin = false;
/**
* 非鉴权方法
* @var array
*/
public $noNeedAuth = ['index', 'home'];
// 初始化函数
public function __construct()
{
parent::__construct();
}
/**
* Partlist 首页
* @return Response
* @throws InvalidArgumentException
*/
public function index(): Response
{
return response('Partlist 前台首页模板');
}
}

View File

@@ -0,0 +1,22 @@
<!--Partlist-->
<layout name="layout:layout"/>
<!-- 内容主体区域 -->
<div id="content">
<div class="layui-card">
<div class="layui-card-body"> 示例页面 TODO...</div>
<!-- // 创建数据实例 -->
<table id="lay-tableList" lay-filter="lay-tableList"></table>
</div>
</div>
<!-- // 列表工具栏 -->
<script type="text/html" id="tableBar">
<!-- // TODO-->
</script>
<script>
layui.use(['table','jquery'], function () {
let $ = layui.jquery;
let table = layui.table;
})
</script>

View File

@@ -0,0 +1,88 @@
<include file="/public/header" />
<link rel="stylesheet" type="text/css" href="__STATICADMIN__css/plugin.css?v={:release()}">
<!-- // 重定位style -->
<style>
body {
background: #fff;
}
</style>
<div class="layui-fluid">
<form action="{:url('/system/Plugin/config')}" class="layui-form layui-form-fixed" >
<input type="text" name="name" value="Partlist" hidden="">
<blockquote class="layui-elem-quote">配置项提示信息 TODO...</blockquote>
<div class="layui-form-item">
<label class="layui-form-label">{:__('配置项')}</label>
<div class="layui-input-block">
<input name="extends[title]"
type="text" class="layui-input"
value="{$config.extends.title}"
lay-verType="tips" lay-verify="required"
placeholder="{:__('请填写配置项')}"/>
</div>
</div>
<div class="layui-form-item">
<blockquote class="layui-elem-quote">{:__('伪静态规则')}</blockquote>
<div class="layui-card">
<table class="layui-table" lay-skin="nob">
<colgroup>
<col width="100">
<col width="200">
<col width="100">
</colgroup>
<thead>
<tr>
<th>变量名</th>
<th>变量值</th>
<th>操作</th>
</tr>
</thead>
<tbody id="layui-variable-content">
<volist name="$config['rewrite']" id="vo">
<tr>
<td><input type="text" value="{$key}" class="layui-input layui-variable-key" lay-verType="tips" lay-verify="required" ></td>
<td><input type="text" name="rewrite[{$key}]" value="{$vo}" class="layui-input layui-variable-value"></td>
<td><button type="button" class="layui-btn layui-btn-primary layui-btn-xs"><i class="layui-icon layui-icon-delete"></i></button></td>
</tr>
</volist>
</tbody>
</table>
</div>
<button type="button" class="layui-btn layui-btn-sm layui-variable-add" >{:__('增加变量')}</button>
</div>
<div class="layui-footer layui-form-item layui-center ">
<button class="layui-btn layui-btn-primary" type="button" sa-event="closeDialog">{:__('取消')}</button>
<button class="layui-btn" lay-filter="submitIframe" lay-submit>{:__('提交')}</button>
</div>
</form>
</div>
<include file="/public/footer" />
<script>
layui.use(['layer', 'admin'], function () {
var $ = layui.jquery;
var admin = layui.admin;
// 增加变量
$('.layui-variable-add').on('click',function(){
var html = '<tr>';
html += '<td><input type="text" class="layui-input layui-variable-key" lay-verType="tips" lay-verify="required" ><\/td>';
html += '<td><input type="text" class="layui-input layui-variable-value"><\/td>';
html += '<td><button type="button" class="layui-btn layui-btn-primary layui-btn-xs"><i class="layui-icon layui-icon-delete"><\/i><\/button><\/td>';
html += '<\/tr>';
$('#layui-variable-content').append(html);
})
// 改变表单值
$('body').on('change','.layui-variable-key',function() {
var that = $(this),
name = 'rewrite['+ that.val() +']';
$(that).parents('tr').find('.layui-variable-value').attr('name',name);
})
// 删除自定义变量
$('body').on('click','#layui-variable-content .layui-btn',function() {
$(this).parents('tr').remove();
})
});
</script>

View File

@@ -0,0 +1,22 @@
{
"name": "partlist",
"title": "BOM管理",
"intro": "BOM管理",
"icon": "fa-home",
"author": "Panjz",
"home": "",
"version": "1.0.0",
"config": 1,
"menu": 1,
"import": 0,
"rewrite": [],
"extends": {
"title": "BOM管理"
},
"area": [
"600px",
"650px"
],
"path": "\/home\/bt_www\/www\/wwwroot\/pdmweb.sa.com_8989\/plugin\/partlist\/",
"status": 1
}

View File

@@ -0,0 +1,16 @@
<?php
/**
* Partlist插件公共函数库
*/
if (!function_exists('format_time')) {
/*
* 格式化时间戳
*/
function format_time()
{
return date('Y-m-d H:i:s', time());
}
}

View File

@@ -0,0 +1,24 @@
/*
Navicat Premium Data Transfer
Source Server : database
Source Server Type : MySQL
Source Server Version : 50737
Source Host : 127.0.0.1:3306
Source Schema : database
Target Server Type : MySQL
Target Server Version : 50737
File Encoding : 65001
Date: 01/01/2022 00:00:00
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for __PREFIX__TABLE
-- ----------------------------
SET FOREIGN_KEY_CHECKS = 1;

View File

@@ -0,0 +1 @@
// 前端JS文件

View File

@@ -0,0 +1 @@
// 后端JS文件

View File

View File

@@ -0,0 +1,55 @@
<?php
namespace plugin\partview;
use app\PluginController;
/**
* 部件查询插件
*/
class Partview extends PluginController
{
/**
* 插件安装方法
* @return bool
*/
public function install()
{
return true;
}
/**
* 插件卸载方法
* @return bool
*/
public function uninstall()
{
return true;
}
/**
* 插件启用方法
* @return bool
*/
public function enabled()
{
return true;
}
/**
* 插件禁用方法
* @return bool
*/
public function disabled()
{
return true;
}
/**
* 插件初始化
* @return bool
*/
public function appInit()
{}
}

29
plugin/partview/README.md Normal file
View File

@@ -0,0 +1,29 @@
// +----------------------------------------------------------------------
// | swiftAdmin 极速开发框架 [基于 WebMan 开发]
// +----------------------------------------------------------------------
// | Copyright (c) 2020-2099 http://www.swiftadmin.net
// +----------------------------------------------------------------------
// | swiftAdmin.net High Speed Development Framework
// +----------------------------------------------------------------------
// | Author: meystack <coolsec@foxmail.com> Apache2
// +----------------------------------------------------------------------
* app 文件夹下所有文件将复制到根目录
* public 文件夹下所有文件将复制到根目录
* Partview.php 为插件的核心安装文件,请务必按要求书写代码
> 请注意钩子函数为public类型如需非钩子函数可使用protected类型
* function.php 为当前插件的函数库文件
* config.json 为当前插件的配置信息文件
* config.html 为当前配置模板,存在才会出现配置按钮
* install.sql 插件的数据库安装文件,不需要可删除!!
*
* uninstall.sql 插件的数据库卸载文件,不需要可删除!!
* library 该目录下为第三方类库文件如果你的类库文件存在命名空间问题可手动修改或自行实现install方法将第三方类库复制到extend文件夹下

View File

@@ -0,0 +1,21 @@
<?php
namespace plugin\partview;
/**
* 部件查询插件
*/
class Upgrade
{
/**
* 插件升级方法
* @access public
* @param $oldVersion
* @param $newVersion
* @return bool
*/
public function execute($oldVersion, $newVersion): bool
{
return true;
}
}

View File

@@ -0,0 +1,33 @@
<?php
declare(strict_types = 1);
namespace app\admin\controller\partview;
use app\AdminController;
use support\Response;
/**
* 部件查询后台控制器
* <!--Partview-->
*/
class Index extends AdminController {
// 初始化函数
public function __construct()
{
parent::__construct();
/**
* TODO...
*/
}
/**
* 初始化后台首页
* @return Response
*/
public function index(): Response
{
echo '后台 部件查询 控制器<br/>';
return $this->view();
}
}

View File

@@ -0,0 +1,35 @@
<?php
declare (strict_types = 1);
namespace app\admin\model\partview;
use think\Model;
/**
* 部件查询模型类
* <!--Partview-->
* @mixin Model
*/
class Partview extends Model
{
// 自动写入时间戳字段
protected $autoWriteTimestamp = 'int';
// 定义时间戳字段名
protected $createTime = 'create_time';
protected $updatetime = 'update_time';
/**
* 字段修改器
* @param $value
* @return int|mixed
*/
public function setSortAttr($value)
{
if (is_empty($value)) {
return self::max('id') + 1;
}
return $value;
}
}

View File

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

View File

@@ -0,0 +1,13 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>我是后台首页控制器模板</title>
</head>
<!--Partview-->
<body>
我是 Partview 控制器模板
</body>
</html>

View File

@@ -0,0 +1,55 @@
<?php
declare (strict_types = 1);
// +----------------------------------------------------------------------
// | swiftAdmin 极速开发框架 [基于 WebMan 开发]
// +----------------------------------------------------------------------
// | Copyright (c) 2020-2099 http://www.swiftadmin.net
// +----------------------------------------------------------------------
// | swiftAdmin.net High Speed Development Framework
// +----------------------------------------------------------------------
// | Author: meystack <coolsec@foxmail.com> Apache2
// +----------------------------------------------------------------------
namespace app\index\controller;
use app\HomeController;
use support\Response;
/**
* 首页控制器
* <!--Partview-->
* Class Index
* @package app\index\controller
*/
class Partview extends HomeController
{
/**
* 鉴权控制器
*/
public $needLogin = false;
/**
* 非鉴权方法
* @var array
*/
public $noNeedAuth = ['index', 'home'];
// 初始化函数
public function __construct()
{
parent::__construct();
}
/**
* Partview 首页
* @return Response
* @throws InvalidArgumentException
*/
public function index(): Response
{
return response('Partview 前台首页模板');
}
}

View File

@@ -0,0 +1,22 @@
<!--Partview-->
<layout name="layout:layout"/>
<!-- 内容主体区域 -->
<div id="content">
<div class="layui-card">
<div class="layui-card-body"> 示例页面 TODO...</div>
<!-- // 创建数据实例 -->
<table id="lay-tableList" lay-filter="lay-tableList"></table>
</div>
</div>
<!-- // 列表工具栏 -->
<script type="text/html" id="tableBar">
<!-- // TODO-->
</script>
<script>
layui.use(['table','jquery'], function () {
let $ = layui.jquery;
let table = layui.table;
})
</script>

View File

@@ -0,0 +1,88 @@
<include file="/public/header" />
<link rel="stylesheet" type="text/css" href="__STATICADMIN__css/plugin.css?v={:release()}">
<!-- // 重定位style -->
<style>
body {
background: #fff;
}
</style>
<div class="layui-fluid">
<form action="{:url('/system/Plugin/config')}" class="layui-form layui-form-fixed" >
<input type="text" name="name" value="Partview" hidden="">
<blockquote class="layui-elem-quote">配置项提示信息 TODO...</blockquote>
<div class="layui-form-item">
<label class="layui-form-label">{:__('配置项')}</label>
<div class="layui-input-block">
<input name="extends[title]"
type="text" class="layui-input"
value="{$config.extends.title}"
lay-verType="tips" lay-verify="required"
placeholder="{:__('请填写配置项')}"/>
</div>
</div>
<div class="layui-form-item">
<blockquote class="layui-elem-quote">{:__('伪静态规则')}</blockquote>
<div class="layui-card">
<table class="layui-table" lay-skin="nob">
<colgroup>
<col width="100">
<col width="200">
<col width="100">
</colgroup>
<thead>
<tr>
<th>变量名</th>
<th>变量值</th>
<th>操作</th>
</tr>
</thead>
<tbody id="layui-variable-content">
<volist name="$config['rewrite']" id="vo">
<tr>
<td><input type="text" value="{$key}" class="layui-input layui-variable-key" lay-verType="tips" lay-verify="required" ></td>
<td><input type="text" name="rewrite[{$key}]" value="{$vo}" class="layui-input layui-variable-value"></td>
<td><button type="button" class="layui-btn layui-btn-primary layui-btn-xs"><i class="layui-icon layui-icon-delete"></i></button></td>
</tr>
</volist>
</tbody>
</table>
</div>
<button type="button" class="layui-btn layui-btn-sm layui-variable-add" >{:__('增加变量')}</button>
</div>
<div class="layui-footer layui-form-item layui-center ">
<button class="layui-btn layui-btn-primary" type="button" sa-event="closeDialog">{:__('取消')}</button>
<button class="layui-btn" lay-filter="submitIframe" lay-submit>{:__('提交')}</button>
</div>
</form>
</div>
<include file="/public/footer" />
<script>
layui.use(['layer', 'admin'], function () {
var $ = layui.jquery;
var admin = layui.admin;
// 增加变量
$('.layui-variable-add').on('click',function(){
var html = '<tr>';
html += '<td><input type="text" class="layui-input layui-variable-key" lay-verType="tips" lay-verify="required" ><\/td>';
html += '<td><input type="text" class="layui-input layui-variable-value"><\/td>';
html += '<td><button type="button" class="layui-btn layui-btn-primary layui-btn-xs"><i class="layui-icon layui-icon-delete"><\/i><\/button><\/td>';
html += '<\/tr>';
$('#layui-variable-content').append(html);
})
// 改变表单值
$('body').on('change','.layui-variable-key',function() {
var that = $(this),
name = 'rewrite['+ that.val() +']';
$(that).parents('tr').find('.layui-variable-value').attr('name',name);
})
// 删除自定义变量
$('body').on('click','#layui-variable-content .layui-btn',function() {
$(this).parents('tr').remove();
})
});
</script>

View File

@@ -0,0 +1,22 @@
{
"name": "partview",
"title": "部件查询",
"intro": "部件查询",
"icon": "fa-search",
"author": "Panjz",
"home": "",
"version": "1.0.0",
"config": 1,
"menu": 1,
"import": 0,
"rewrite": [],
"extends": {
"title": "部件查询"
},
"area": [
"600px",
"650px"
],
"path": "\/home\/bt_www\/www\/wwwroot\/pdmweb.sa.com_8989\/plugin\/partview\/",
"status": 1
}

View File

@@ -0,0 +1,16 @@
<?php
/**
* Partview插件公共函数库
*/
if (!function_exists('format_time')) {
/*
* 格式化时间戳
*/
function format_time()
{
return date('Y-m-d H:i:s', time());
}
}

View File

@@ -0,0 +1,24 @@
/*
Navicat Premium Data Transfer
Source Server : database
Source Server Type : MySQL
Source Server Version : 50737
Source Host : 127.0.0.1:3306
Source Schema : database
Target Server Type : MySQL
Target Server Version : 50737
File Encoding : 65001
Date: 01/01/2022 00:00:00
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for __PREFIX__TABLE
-- ----------------------------
SET FOREIGN_KEY_CHECKS = 1;

View File

@@ -0,0 +1 @@
// 前端JS文件

View File

@@ -0,0 +1 @@
// 后端JS文件

View File

View File

@@ -0,0 +1 @@
// 前端JS文件

View File

@@ -0,0 +1 @@
// 前端JS文件

View File

@@ -0,0 +1 @@
// 后端JS文件

View File

@@ -0,0 +1 @@
// 后端JS文件

Binary file not shown.

After

Width:  |  Height:  |  Size: 413 KiB