更新数据维护和查询等功能,适配CIS数据表实体表善事查询。

This commit is contained in:
panx
2025-01-13 22:28:27 +08:00
parent 018322d8c1
commit 2c167222bd
18 changed files with 928 additions and 119 deletions

View File

@@ -58,7 +58,7 @@ class PdmFootprint extends AdminController
* @throws DbException
* @throws ModelNotFoundException
*/
public function dataList(array $params): array
public static function dataList(array $params): array
{
// $where = array();
// if (!empty($params['footprint'])) {
@@ -80,14 +80,16 @@ class PdmFootprint extends AdminController
// return [$count, $list->toArray()];
$where = $this->buildSelectParams();
$count = $this->model->where($where)->count();
$fieldList = $this->model->getFields();
$controller = new PdmFootprint();
$where = $controller->buildSelectParams();
$count = $controller->model->where($where)->count();
$fieldList = $controller->model->getFields();
$order = !array_key_exists('sort', $fieldList) ? 'id' : 'sort';
$subQuery = $this->model->field('id')->where($where)->order($order, 'asc')->buildSql();
$subQuery = $controller->model->field('id')->where($where)->order($order, 'asc')->buildSql();
$subQuery = '( SELECT object.id FROM ' . $subQuery . ' AS object )';
// $list = $this->model->with($this->relationModel)->where('id in' . $subQuery)->order($order, 'asc')->select()->toArray(); // 如果是'desc' list_to_tree 函数返回为空!
$list = $this->model->with($this->relationModel)->where('id in' . $subQuery)->order($order, 'asc')->select(); // 如果是'desc' list_to_tree 函数返回为空!
$list = $controller->model->with($controller->relationModel)->where('id in' . $subQuery)->order($order, 'asc')->select(); // 如果是'desc' list_to_tree 函数返回为空!
foreach($list as $key => $value){
// throw new \Exception(json_encode($value));
@@ -107,8 +109,8 @@ class PdmFootprint extends AdminController
foreach($list as $key => $value){
if(!in_array($value['pid'],$nodeid) && $value['pid'] > 0){
$nodeid[] = $value['pid'];
$nodevalue = $this->model->find($value['pid']);
$nodevalue = $this->model->find($value['pid'])->toArray();
$nodevalue = $controller->model->find($value['pid']);
$nodevalue = $controller->model->find($value['pid'])->toArray();
if(!empty($nodevalue)){
$list[] = &$nodevalue;

View File

@@ -5,6 +5,8 @@ namespace app\admin\controller;
use app\AdminController;
use Webman\Http\Request;
use app\admin\model\PdmPartitemRelation as PdmPartitemRelationModel;
use app\admin\model\PdmSymbol as PdmSymbolModel;
use app\admin\model\PdmFootprint as PdmFootprintModel;
use support\Response;
/**
@@ -93,7 +95,7 @@ class PdmPartitemRelation extends AdminController
$subQuery = $this->model->field('id')->where($where)->order($order, 'desc')->limit($limit)->page($page)->buildSql();
$subQuery = '( SELECT object.id FROM ' . $subQuery . ' AS object )';
// $list = $this->model->with($this->relationModel)->where('id in' . $subQuery)->order($order, 'asc')->select()->toArray(); // 如果是'desc' list_to_tree 函数返回为空!
$list = $this->model->with($this->relationModel)->where('id in' . $subQuery)->order($order, 'asc')->select(); // 如果是'desc' list_to_tree 函数返回为空!
$list = $this->model->with($this->relationModel)->where('id in' . $subQuery)->order($order, 'desc')->select(); // 如果是'desc' list_to_tree 函数返回为空!
foreach($list as $key => $value){
// throw new \Exception(json_encode($value));
@@ -134,7 +136,7 @@ class PdmPartitemRelation extends AdminController
}
}
}
$list = list_sort_by($list,'id','asc');
// $list = list_sort_by($list,'id','asc');
// usort($list, function($a, $b) {
// return $a['id'] <=> $b['id']; // 对 'id' 进行升序排序
// });
@@ -144,5 +146,264 @@ class PdmPartitemRelation extends AdminController
}
/**
* 添加节点数据
* @return Response
*/
public function add(): Response
{
$symbol = PdmSymbolModel::select()->toArray();
$footprint = PdmFootprintModel::select()->toArray();
if (request()->isPost()) {
$post = \request()->post();
// validate(\app\common\validate\system\AdminRules::class . '.add')->check($post);
$userid = get_admin_id();
$admin_info = get_admin_info();
// throw new \Exception(json_encode($admin_info));
$post['creatorid'] = $userid ;
$post['departmentid'] = $admin_info['department_id'] ;
if ($this->model->create($post)) {
return $this->success('添加数据关系成功!');
}
}
$data = $this->getTableFields();
$data['pid'] = input('pid', 0);
// $data['auth'] = 1;
// $data['type'] = 1;
list($count, $list) = PdmPartitemRelation::dataList(request()->all());
return view('/pdm_partitem_relation/add', [
'data' => $data,
'symbol' => json_encode( list_to_tree($symbol), JSON_UNESCAPED_UNICODE),
'footprint' => json_encode( list_to_tree($footprint), JSON_UNESCAPED_UNICODE),
// 'parttype' => $this->parttype,
'list' => 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);
// $parttypeid = $data['parttypeid'];
$symbolid = $data['symbolid'];
$footprintid = $data['footprintid'];
// $parems['id'] = input('parttypeid', 0);
$symbol = PdmSymbolModel::find($symbolid)->toArray();
list($countsymbol, $symbol) = \app\admin\controller\PdmSymbol::dataList($symbol);
$footprint = PdmFootprintModel::find($footprintid)->toArray();
list($countfootprint, $footprint) = \app\admin\controller\PdmFootprint::dataList($footprint);
if (request()->isPost()) {
$post = \request()->post();
// validate(\app\common\validate\system\AdminRules::class . '.edit')->check($post);
if ($this->model->update($post)) {
return $this->success('更新数据关系成功!');
}
}
list($count, $list) = PdmPartitemRelation::dataList(request()->all());
// throw new \Exception(json_encode($parttype));
// throw new \Exception( json_encode(list_to_tree($parttype)));
return view('/pdm_partitem_relation/add', [
'data' => $data,
'symbol' => json_encode( list_to_tree($symbol), JSON_UNESCAPED_UNICODE),
'footprint' => json_encode( list_to_tree($footprint), JSON_UNESCAPED_UNICODE),
// 'parttype' => json_encode( $parttype, JSON_UNESCAPED_UNICODE),
'list' => json_encode( list_to_tree($list), JSON_UNESCAPED_UNICODE),
]);
}
/**
* 更新数据到CIS数据表
* @return Response
* @throws DbException
*/
public function updata(): Response
{
$id = input('id');
if (!empty($id)) {
$data = $this->model->find($id);
$department = $data->department;
$pdmPartitemIndex = $data->pdmPartitemIndex;
// $departmentid = $department['id'];
$partnumber = $pdmPartitemIndex['partnumber'];
$partnumber = $pdmPartitemIndex['partnumber'];
// $parttypeid = $pdmPartitemIndex['parttypeid'];
$tablesuffix1= $department['suffix'];
// return $this->success($tablesuffix1."_");
$pdmParttype = $pdmPartitemIndex->pdmParttype;
if($pdmParttype['pid']!=0){
$pdmParttype1 = \app\admin\model\PdmParttype::find($pdmParttype['pid']);
$tablesuffix2= $pdmParttype1['suffix'];
}else{
$tablesuffix2= $pdmParttype['suffix'];
}
// $table = "pdm_partitem";
$suffix = '_'.$tablesuffix1."_".$tablesuffix2;
$partitem = \app\admin\model\PdmPartitem::suffix($suffix)->where(['partnumber' => $partnumber])->select()->toArray();
$partitem_view = \app\admin\model\PdmPartitemView::where(['partnumber' => $partnumber])->select()->toArray();
// throw new \Exception(json_encode(count($partitem)));
if(count($partitem_view)==1){
if(count($partitem)<1){
unset($partitem_view[0]['id']);
}else if(count($partitem)==1){
$partitem_view[0]['id'] = $partitem[0]['id'];
}else {
$status = \app\admin\model\PdmPartitem::suffix($suffix)->where(['partnumber' => $partnumber])->delete();
if($status){
// throw new \Exception(json_encode(count($partitem))."删除数据成功。");
}else{
// throw new \Exception(json_encode(count($partitem))."删除数据失败!");
return $this->error('有'.count($partitem).'个数据:'.$partnumber.',删除数据失败!');
}
unset($partitem_view[0]['id']);
}
$status = \app\admin\model\PdmPartitem::suffix($suffix)->saveAll($partitem_view);
}
// if(!empty($partitem)){
// $status = \app\admin\model\PdmPartitem::suffix($suffix)->update($partitem_view[0]);
// }else{
// $status = \app\admin\model\PdmPartitem::suffix($suffix)->create($partitem_view[0]);
// }
if($status){
return $this->success('更新数据成功。'. \app\admin\model\PdmPartitem::suffix($suffix)->getTable());
}else {
return $this->error('更新数据失败!');
}
// // 查询子节点
// if ($this->model->where('pid',$id)->count()) {
// return $this->error('当前分类存在子项!');
// }
// // 删除单个
// if ($this->model::destroy($id)) {
// return $this->success('删除FootPrint成功');
// }
}
return $this->error('更新失败,请检查您的参数!');
}
/**
* 更新数据到CIS数据表
* @return Response
* @throws DbException
*/
public function updataAll(): Response
{
// $where = $this->buildSelectParams();
$where = [];
$lists = \app\admin\model\PdmPartitemRelation::where($where)->select();
foreach( $lists as $key => $value){
$id = $value['id'] ;
if (!empty($id)) {
$data = $this->model->find($id);
$department = $data->department;
$pdmPartitemIndex = $data->pdmPartitemIndex;
// $departmentid = $department['id'];
$partnumber = $pdmPartitemIndex['partnumber'];
$partnumber = $pdmPartitemIndex['partnumber'];
// $parttypeid = $pdmPartitemIndex['parttypeid'];
$tablesuffix1= $department['suffix'];
// return $this->success($tablesuffix1."_");
$pdmParttype = $pdmPartitemIndex->pdmParttype;
if($pdmParttype['pid']!=0){
$pdmParttype1 = \app\admin\model\PdmParttype::find($pdmParttype['pid']);
$tablesuffix2= $pdmParttype1['suffix'];
}else{
$tablesuffix2= $pdmParttype['suffix'];
}
// $table = "pdm_partitem";
$suffix = '_'.$tablesuffix1."_".$tablesuffix2;
$partitem = \app\admin\model\PdmPartitem::suffix($suffix)->where(['partnumber' => $partnumber])->select()->toArray();
$partitem_view = \app\admin\model\PdmPartitemView::where(['partnumber' => $partnumber])->select()->toArray();
// throw new \Exception(json_encode(count($partitem)));
if(count($partitem_view)==1){
if(count($partitem)<1){
unset($partitem_view[0]['id']);
}else if(count($partitem)==1){
$partitem_view[0]['id'] = $partitem[0]['id'];
}else {
$status = \app\admin\model\PdmPartitem::suffix($suffix)->where(['partnumber' => $partnumber])->delete();
if($status){
// throw new \Exception(json_encode(count($partitem))."删除数据成功。");
}else{
// throw new \Exception(json_encode(count($partitem))."删除数据失败!");
return $this->error('有'.count($partitem).'个数据:'.$partnumber.',删除数据失败!');
}
unset($partitem_view[0]['id']);
}
$status = \app\admin\model\PdmPartitem::suffix($suffix)->saveAll($partitem_view);
}
// if(!empty($partitem)){
// $status = \app\admin\model\PdmPartitem::suffix($suffix)->update($partitem_view[0]);
// }else{
// $status = \app\admin\model\PdmPartitem::suffix($suffix)->create($partitem_view[0]);
// }
if($status){
// return $this->success('更新数据成功。'. \app\admin\model\PdmPartitem::suffix($suffix)->getTable());
}else {
return $this->error('更新数据失败!');
}
}
// // 查询子节点
// if ($this->model->where('pid',$id)->count()) {
// return $this->error('当前分类存在子项!');
// }
// // 删除单个
// if ($this->model::destroy($id)) {
// return $this->success('删除FootPrint成功');
// }
}
if($status){
return $this->success('更新数据成功。'. \app\admin\model\PdmPartitem::suffix($suffix)->getTable());
}else {
return $this->error('更新数据失败!');
}
return $this->error('更新失败,请检查您的参数!');
}
}

View File

@@ -67,7 +67,7 @@ class PdmPartitemView extends AdminController
$subQuery = '( SELECT object.id FROM ' . $subQuery . ' AS object )';
// $list = $this->model->where($where)->limit((int)$limit)->page((int)$page)->select();
$list = $this->model->with($this->relationModel)->where('id in' . $subQuery)->order($order, 'asc')->select() ;
$list = $this->model->with($this->relationModel)->where('id in' . $subQuery)->order($order, 'desc')->select() ;
// $list = $this->model->where($where)->limit((int)$limit)->page((int)$page)->select();
return $this->success('查询成功', null, $list, $count);

View File

@@ -66,7 +66,7 @@ class PdmPurchasecode extends AdminController
$subQuery = '( SELECT object.id FROM ' . $subQuery . ' AS object )';
// $list = $this->model->where($where)->limit((int)$limit)->page((int)$page)->select();
$list = $this->model->with($this->relationModel)->where('id in' . $subQuery)->order($order, 'asc')->select() ;
$list = $this->model->with($this->relationModel)->where('id in' . $subQuery)->order($order, 'desc')->select() ;
// $list = $this->model->where($where)->limit((int)$limit)->page((int)$page)->select();
return $this->success('查询成功', null, $list, $count);

View File

@@ -58,7 +58,7 @@ class PdmSymbol extends AdminController
* @throws DbException
* @throws ModelNotFoundException
*/
public function dataList(array $params): array // static 限定后, $this-> 不可用。
public static function dataList(array $params): array // static 限定后, $this-> 不可用。
{
// $where = array();
// if (!empty($params['status'])) {
@@ -71,14 +71,16 @@ class PdmSymbol extends AdminController
// $count = $this->model->where($where)->count();
// $list = $this->model->where($where)->order('sort asc')->select()->toArray();
$where = $this->buildSelectParams();
$count = $this->model->where($where)->count();
$fieldList = $this->model->getFields();
$controller = new PdmSymbol();
$where = $controller->buildSelectParams();
$count = $controller->model->where($where)->count();
$fieldList = $controller->model->getFields();
$order = !array_key_exists('sort', $fieldList) ? 'id' : 'sort';
$subQuery = $this->model->field('id')->where($where)->order($order, 'asc')->buildSql();
$subQuery = $controller->model->field('id')->where($where)->order($order, 'asc')->buildSql();
$subQuery = '( SELECT object.id FROM ' . $subQuery . ' AS object )';
// $list = $this->model->with($this->relationModel)->where('id in' . $subQuery)->order($order, 'asc')->select()->toArray(); // 如果是'desc' list_to_tree 函数返回为空!
$list = $this->model->with($this->relationModel)->where('id in' . $subQuery)->order($order, 'asc')->select(); // 如果是'desc' list_to_tree 函数返回为空!
$list = $controller->model->with($controller->relationModel)->where('id in' . $subQuery)->order($order, 'asc')->select(); // 如果是'desc' list_to_tree 函数返回为空!
foreach($list as $key => $value){
// throw new \Exception(json_encode($value));
@@ -98,9 +100,9 @@ class PdmSymbol extends AdminController
foreach($list as $key => $value){
if(!in_array($value['pid'],$nodeid) && $value['pid'] > 0){
$nodeid[] = $value['pid'];
$nodevalue = $this->model->find($value['pid']);
$nodevalue = $controller->model->find($value['pid']);
// throw new \Exception(json_encode($nodevalue));
$nodevalue = $this->model->find($value['pid'])->toArray();
$nodevalue = $controller->model->find($value['pid'])->toArray();
// throw new \Exception(json_encode($nodevalue));
// throw new \Exception(json_encode($list));
if(!empty($nodevalue)){

View File

@@ -0,0 +1,90 @@
<?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 PdmPartitem 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 pdmParttype()
// {
// return $this->hasOne(\app\admin\model\PdmParttype::Class,'id','parttypeid')->bind(['name']);
// }
// /**
// * 定义 sa_admin 关联模型
// * @localKey parttypeid
// * @bind name
// */
// public function pdmMfgName()
// {
// return $this->hasOne(\app\admin\model\PdmMfgName::Class,'id','mfg_id')->bind(['mfgname']);
// }
// /**
// * 定义 sa_admin 关联模型
// * @localKey parttypeid
// * @bind name
// */
// public function pdmPurchasecode()
// {
// return $this->hasOne(\app\admin\model\PdmPurchasecode::Class,'purchasecode','purchasecode')->bind(['mpn']);
// }
// public function setPartattributeAttr($value)
// {
// if (!empty($value) && is_array($value)) {
// $arr = [];
// foreach ($value['key'] as $key => $elem) {
// $arr[$elem] = $value['value'][$key];
// }
// $value = json_encode($arr,JSON_UNESCAPED_UNICODE);
// }
// return $value ?: json_encode([]);
// }
// public function getPartattributeAttr($value)
// {
// if (!empty($value) && is_string($value)) {
// $value = json_decode($value, true);
// }
// return $value;
// }
}

View File

@@ -39,7 +39,7 @@ class PdmPartitemRelation extends Model
*/
public function pdmPartitemIndex()
{
return $this->hasOne(\app\admin\model\PdmPartitemIndex::Class,'partnumber','partnumber')->bind(['description','value','purchasecode']);
return $this->hasOne(\app\admin\model\PdmPartitemIndex::Class,'partnumber','partnumber')->bind(['description','value','purchasecode','datasheet']);
}
/**
* 定义 sa_pdm_symbol 关联模型
@@ -48,7 +48,7 @@ class PdmPartitemRelation extends Model
*/
public function pdmSymbol()
{
return $this->hasOne(\app\admin\model\PdmSymbol::Class,'id','symbolid')->bind(['symbolname','view','attachment']);
return $this->hasOne(\app\admin\model\PdmSymbol::Class,'id','symbolid')->bind(['symbolname']);
}
/**
* 定义 sa_pdm_footprint 关联模型
@@ -57,7 +57,7 @@ class PdmPartitemRelation extends Model
*/
public function pdmFootprint()
{
return $this->hasOne(\app\admin\model\PdmFootprint::Class,'id','footprintid')->bind(['footprint','manufacture','view','attachment']);
return $this->hasOne(\app\admin\model\PdmFootprint::Class,'id','footprintid')->bind(['footprint','manufacture']);
}
/**
* 定义 sa_department 关联模型

View File

@@ -8,8 +8,10 @@
<div class="layui-card-body">
<gt name="$data.id" value="0">
<input type="text" name="id" value="{$data.id}" hidden="">
<input type="text" class="pid" name="pid" value="{$data.pid}" hidden="">
<else />
<input type="text" name="id" value="" hidden="">
<input type="text" class="pid" name="pid" value="" hidden="">
</gt>
<div class="layui-form-item">
<label class="layui-form-label">封装分类</label>

View File

@@ -121,9 +121,15 @@
<!-- // 列表工具栏 -->
<script type="text/html" id="tableBar">
<!--formBegin-->
{{# if(d.pid ===0) {
}}
<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>
@@ -135,6 +141,48 @@
<script type="text/html" id="tableButton"></script>
<!-- 文件预览模板 -->
<!-- 内部模板的嵌套 {-{ }-} 会有问题-->
<script type="text/html" id="filepreviewtpl">
{{#
if(d.attachment) {
var fileExt = d.attachment.split('.').pop().toLowerCase();
var imageExts = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp'];
if (imageExts.indexOf(fileExt) !== -1) {
}}
<!-- 图片文件显示图片并链接到原文件 -->
<a href="{{d.attachment}}" target="_blank">
<img class="filesuffix" src="{{d.attachment}}" alt="Image Preview" style="max-width: 100px; height: auto;" />
</a>
{{#
} else if (fileExt === 'pdf') {
}}
<!-- PDF 文件显示 PDF 图标并链接到 PDF 文件 -->
<a href="{{d.attachment}}" target="_blank" style="display: flex; align-items: center;">
<i class="layui-icon layui-icon-file" style="font-size: 24px; color: #e64340; margin-right: 5px;"></i>
<span>PDF{{d.attachment}}</span>
</a>
{{#
} else {
}}
<!-- 其他文件类型显示通用文件图标并链接到文件 -->
<a href="{{d.attachment}}" target="_blank" style="display: flex; align-items: center;">
<i class="layui-icon layui-icon-file" style="font-size: 24px; color: #1E9FFF; margin-right: 5px;"></i>
<span>Other{{d.attachment}}</span>
</a>
{{#
}
}
}}
</script>
<include file="/public/footer" />
@@ -183,12 +231,13 @@
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: 'manufacture', title: '{:__("加工方式")}' },
//{
// field: 'attachment', templet: function (d) {
// return '<a href="' + d.attachment + '" target="_blank" ><img class="filesuffix" src="' + d.attachment + '"></a>';
// }, title: '{:__("封装文件")}'
//},
{ field: 'attachment', width: 160, templet: '#filepreviewtpl', title: '{:__("封装文件")}' },
{ field: 'nickname', title: '{:__("创建者")}' },
{field:'content',title:'{:__("注释")}'},
{ field: 'status', templet: '#columnStatus', title: '{:__("状态")}' },

View File

@@ -8,32 +8,44 @@
<div class="layui-card-body">
<gt name="$data.id" value="0">
<input type="text" name="id" value="{$data.id}" hidden="">
<input type="text" class="pid" name="pid" value="{$data.pid}" hidden="">
<else />
<input type="text" name="id" value="" hidden="">
<input type="text" class="pid" name="pid" 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="mfgname" placeholder="请输入" required="1" lay-verify=""value="{$data.mfgname}" ></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">
<font color="blue">* </font>制造商名称格式eg.TI德州仪器
<i class="layui-icon layui-icon-about" lay-tips="消息提示如果无中文名称可以忽略xx的内容。" 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 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 class="layui-input-block"><input class="layui-input" name="mfgsite" placeholder="请输入"
lay-verify="" value="{$data.mfgsite}"></div>
</div>
<div class="layui-form-item">
<div class="layui-input-block"><div class="layui-input-inline">
<div class="layui-input-block">
<div class="layui-input-inline">
<!-- <label class="layui-form-label"> -->
<font color="blue">* </font>网站主页格式eg.https://www.ti.com
<!-- </label> -->
<i class="layui-icon layui-icon-about" lay-tips="消息提示:如果无主页路径,可以忽略。" data-offset="4"></i>
<i class="layui-icon layui-icon-about" lay-tips="消息提示:如果无主页路径,可以忽略。"
data-offset="4"></i>
</div>
</div>
</div>
@@ -41,18 +53,29 @@
</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" value="{$data.sort}"/>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">备注</label>
<div class="layui-input-block"><textarea class="layui-textarea" name="mfgrmark" placeholder="请输入" >{$data.mfgrmark}</textarea></div>
<div class="layui-input-block"><textarea class="layui-textarea" name="mfgrmark"
placeholder="请输入">{$data.mfgrmark}</textarea></div>
</div>
<div class="layui-form-item">
<div class="layui-input-block"><hr class="layui-border-black"></div>
<div class="layui-input-block">
<hr class="layui-border-black">
</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 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">

View File

@@ -8,8 +8,10 @@
<div class="layui-card-body">
<gt name="$data.id" value="0">
<input type="text" name="id" value="{$data.id}" hidden="">
<input type="text" class="pid" name="pid" value="{$data.pid}" hidden="">
<else />
<input type="text" name="id" value="" hidden="">
<input type="text" class="pid" name="pid" value="" hidden="">
</gt>
<div class="layui-form-item">
<label class="layui-form-label">PartNumber</label>
@@ -17,6 +19,13 @@
lay-verify="" value="{$data.partnumber}"></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" value="{$data.sort}"/>
</div>
</div>
<div class="layui-form-item">
<!-- <label class="layui-form-label">ParttypeID</label>
@@ -139,7 +148,7 @@
xmSelect.render({
el: '#treeNode',
tips: '请选择上级菜单',
tips: '请选择PartType',
// name: 'pid',
name: 'parttypeid',
height: '260px',

View File

@@ -236,13 +236,13 @@
{ field: 'id', align: 'center', sort: true, width: 60, title: 'ID' },
{ field: 'partnumber', width: 180, title: '{:__("PartNumber")}' },
//{ field: 'parttypeid', width: 80, title: '{:__("ParttypeID")}' },
{ field: 'parttype', width: 80, title: '{:__("Parttype")}' },
{ field: 'parttype', width: 120, title: '{:__("Parttype")}' },
{ field: 'purchasecode', width: 150, title: '{:__("采购编码")}' },
{ field: 'value', width: 120, title: '{:__("Value")}' },
{ field: 'description', width: 250, title: '{:__("描述")}' },
//{ field: 'mfg_id', title: '{:__("MFGID")}' },
{ field: 'mpn',width: 160, title: '{:__("MPN")}' },
{ field: 'mfg_name',width: 120, title: '{:__("MFG")}' },
{ field: 'mfg_name',width: 140, title: '{:__("MFG")}' },
//{
// field: 'datasheet', width: 160, templet: function (d) {

View File

@@ -8,8 +8,10 @@
<div class="layui-card-body">
<gt name="$data.id" value="0">
<input type="text" name="id" value="{$data.id}" hidden="">
<input type="text" class="pid" name="pid" value="{$data.pid}" hidden="">
<else />
<input type="text" name="id" value="" hidden="">
<input type="text" class="pid" name="pid" value="" hidden="">
</gt>
<div class="layui-form-item">
<label class="layui-form-label">PartNumber</label>
@@ -18,22 +20,43 @@
</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" value="{$data.sort}" />
</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> -->
<div class="layui-form-item">
<label class="layui-form-label">Symbol</label>
<div class="layui-input-block">
<div id="symbolNode" name="symbolid" lay-filter="symbolNode" data-pid="{$data.symbolid|default=0}"></div>
</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> -->
<div class="layui-form-item">
<label class="layui-form-label">Footprint</label>
<div class="layui-input-block">
<div id="footprintNode" name="footprintid" lay-filter="footprintNode" data-pid="{$data.footprintid|default=0}"></div>
</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> -->
<div class="layui-form-item">
<label class="layui-form-label">注释</label>
@@ -47,5 +70,123 @@
</div>
</form>
</div>
<script src="__STATICADMIN__module/xmselect/xmselect.js?v={:release()}"></script>
<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 = {$list|raw};
let symboldata= {$symbol|raw};
let footprintdata= {$footprint|raw};
// 提交参数
form.on("submit(submit)",function(data){
$.post("{:Url('/PdmPartitemIndex/')}"+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: '#symbolNode',
tips: '请选择Symbol',
// name: 'pid',
name: 'symbolid',
height: '260px',
data: symboldata,
// data: data,
radio: true,
clickClose: true,
initValue:[$('#symbolNode').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'
}
})
xmSelect.render({
el: '#footprintNode',
tips: '请选择Footprint',
// name: 'pid',
name: 'footprintid',
height: '260px',
data: footprintdata,
// data: data,
radio: true,
clickClose: true,
initValue:[$('#footprintNode').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

@@ -107,6 +107,13 @@
data-maxmin="true" data-url="{:url('/PdmPartitemRelation/add')}">
<i class="layui-icon layui-icon-add-1"></i>{:__('添加')}
</button>
<!-- 自定义功能按钮 -->
<button id="updataAll" class="layui-btn layui-btn-primary">
<i class="layui-icon layui-icon-refresh"></i>{:__('更新CIS数据')}
</button>
<!--formEnd-->
</div>
</div>
@@ -130,6 +137,13 @@
<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>
<div class="layui-divider layui-divider-vertical"></div>
<!-- <a class="layui-table-text" data-title="{:__('更新')}"
callback="test" data-url="{:url('/PdmPartitemRelation/update')}?id={{d.id}}" lay-event="test" >{:__('更新')}</a> -->
<a class="layui-table-text" data-title="{:__('更新')}"
data-url="{:url('/PdmPartitemRelation/updata')}?id={{d.id}}" lay-event="userdf" >{:__('更新')}</a>
</script>
@@ -138,10 +152,14 @@
<include file="/public/footer" />
<script>
layui.use(['admin', 'table'], function () {
layui.use(['jquery','admin', 'table' ,'show' ,'i18n'], function () {
let $ = layui.jquery;
var admin = layui.admin;
var table = layui.table;
let i18n = layui.i18n;
// 自定义消息通知
let show = layui.show;
/*
* 初始化表格
@@ -164,13 +182,171 @@
{ field: 'footprint', width: 180,title: '{:__("Footprint")}' },
{ field: 'manufacture', width: 120,title: '{:__("Manufacture")}' },
//{ field: 'creatorid', title: '{:__("创建者ID")}' },
{ field: 'creator', title: '{:__("创建者")}' },
{ field: 'creator', width: 120,title: '{:__("创建者")}' },
//{ field: 'departmentid', title: '{:__("部门ID")}' },
{ field: 'departmenttitle', title: '{:__("部门")}' },
{ field: 'departmenttitle',width: 120, title: '{:__("部门")}' },
{ field: 'status', templet: '#columnStatus', title: '{:__("状态")}' },
{ align: 'center', toolbar: '#tableBar', width: 160, fixed: 'right', title: '{:__("操作")}' },
{ align: 'center', toolbar: '#tableBar', width: 220, fixed: 'right', title: '{:__("操作")}' },
]]
})
/**
* 监听表格事件
*/
table.on("tool(lay-tableList)", function (obj) {
let data = obj.data
, reqData = {}
, selector = $(this).parents('table').find('tbody tr')
, callback = {
success: function (res) {
obj.del();
if ((selector.length - 1) === 0 ||
typeof selector.length === 'undefined') {
table.reloadData("lay-tableList");
}
show.msg(res.msg);
},
error: function (res) {
show.error(res.msg);
}
}
, userdfcallback = {
success: function (res) {
// obj.del();
// if ((selector.length - 1) === 0 ||
// typeof selector.length === 'undefined') {
// table.reloadData("lay-tableList");
// }
show.msg(res.msg);
},
error: function (res) {
show.error(res.msg);
}
}
, othis = $(this)
, title = othis.data("title") || undefined
, field = $(this).data('field');
if (typeof (field) === "undefined") {
reqData = {
id: data.id
}
} else {
var array = field.split(",");
for (let d in array) {
reqData[d] = data[d];
}
}
if (obj.event === "edit") {
admin.event.open(othis, obj);
} else if (obj.event === "del") {
var tips = i18n.prop('确定要删除吗');
if (typeof title !== "undefined") {
tips += ' ' + title + ' ';
}
layer.confirm(tips, function (index) {
admin.event.request(othis, reqData, callback);
layer.close(index);
})
} else if (obj.event === "ajax") {
admin.event.request(othis, reqData, callback);
}else if(obj.event === "userdf"){
var tips = i18n.prop('确定要删除吗');
if (typeof title !== "undefined") {
tips += ' ' + title + ' ';
}
layer.confirm(tips, function (index) {
admin.event.request(othis, reqData, userdfcallback);
layer.close(index);
})
} else {
admin.event.open(othis, obj);
}
})
// // 添加 / 编辑用户
// admin.callback.updata = function(clickthis,colletction,config) {
// // 获取表格对象
// var tableThis = colletction.tableThis,
// status = typeof(tableThis) === "undefined" ? true : false;
// layui.msg("dddddd");
// // // 监听权限提交
// // form.on("submit(submitPage)",function(post){
// // // 获取用户id
// // var pageThat = layui.$(this),
// // _pageUrl = !status ? pageThat.attr('lay-edit') : pageThat.attr('lay-add');
// // // 开始POST提交数据
// // layui.$.post(_pageUrl,
// // post.field, function(res){
// // if (res.code === 200) {
// // layer.msg(res.msg);
// // // 关闭当前窗口
// // table.reload('lay-tableList');
// // layer.close(colletction.index);
// // pageThat.attr("disabled",true);
// // }
// // else {
// // layui.show.error(res.msg);
// // }
// // }, 'json');
// // return false;
// // })
// }
// 自定义更新数据按钮点击事件
document.getElementById('updataAll').addEventListener('click', function () {
// 确认用户希望导出全部数据
layer.confirm('确定更新所有数据到 CIS数据表 吗?', { icon: 3, title: '更新确认' }, function(index){
layer.close(index);
exportAllDataToExcel();
});
});
// 自定义导出功能
function exportAllDataToExcel(){
// 获取当前的过滤条件例如pid
// let selectedData = table.checkStatus('lay-tableGroup').data;
// let pid = selectedData.length ? selectedData[0].id : 0;
let url = "{:url('/PdmPartitemRelation/updataAll')}";
// 异步获取所有数据(不分页)
layer.msg('异步获取所有数据不分页超时限制30s');
$.ajax({
url: url ,// 后端需要根据 'export=1' 返回所有数据
// method: 'GET',
type: 'POST',
dataType: 'json',
timeout: 30000,
success: function(res){
if(res.code === 200){
layer.msg('更新数据成功:'+ res.msg);
}
},
error: function(jqXHR, textStatus, errorThrown){
if(textStatus === 'timeout') {
layer.msg('请求超时,请稍后重试。');
} else {
layer.msg('数据获取失败,请稍后重试: ' + errorThrown);
}
}
});
}
})
</script>

View File

@@ -8,8 +8,10 @@
<div class="layui-card-body">
<gt name="$data.id" value="0">
<input type="text" name="id" value="{$data.id}" hidden="">
<input type="text" class="pid" name="pid" value="{$data.pid}" hidden="">
<else />
<input type="text" name="id" value="" hidden="">
<input type="text" class="pid" name="pid" value="" hidden="">
</gt>
<div class="layui-form-item">
<label class="layui-form-label">PartClass</label>

View File

@@ -8,8 +8,10 @@
<div class="layui-card-body">
<gt name="$data.id" value="0">
<input type="text" name="id" value="{$data.id}" hidden="">
<input type="text" class="pid" name="pid" value="{$data.pid}" hidden="">
<else />
<input type="text" name="id" value="" hidden="">
<input type="text" class="pid" name="pid" value="" hidden="">
</gt>
<div class="layui-form-item layui-row">
<div class="layui-col-md6 layui-grid-0" data-index="0">
@@ -21,6 +23,14 @@
required="1" lay-verify="" value="{$data.purchasecode}"></div>
</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" value="{$data.sort}"/>
</div>
</div>
<div class="layui-col-md6 layui-grid-1" data-index="1">
<div class="layui-form-item">
<label class="layui-form-label">物料描述</label>
@@ -33,8 +43,8 @@
<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 class="layui-input-block"><input class="layui-input" name="preferredlevel"
placeholder="请输入" lay-verify="" value="{$data.preferredlevel}"></div>
</div>
</div>
<div class="layui-col-md6 layui-grid-1" data-index="1">

View File

@@ -8,8 +8,10 @@
<div class="layui-card-body">
<gt name="$data.id" value="0">
<input type="text" name="id" value="{$data.id}" hidden="">
<input type="text" class="pid" name="pid" value="{$data.pid}" hidden="">
<else />
<input type="text" name="id" value="" hidden="">
<input type="text" class="pid" name="pid" value="" hidden="">
</gt>
<div class="layui-form-item">
<label class="layui-form-label">Symbol分类</label>

View File

@@ -142,6 +142,46 @@
<script type="text/html" id="tableButton"></script>
<!-- 文件预览模板 -->
<!-- 内部模板的嵌套 {-{ }-} 会有问题-->
<script type="text/html" id="filepreviewtpl">
{{#
if(d.attachment) {
var fileExt = d.attachment.split('.').pop().toLowerCase();
var imageExts = ['jpg', 'jpeg', 'png', 'gif', 'bmp', 'webp'];
if (imageExts.indexOf(fileExt) !== -1) {
}}
<!-- 图片文件显示图片并链接到原文件 -->
<a href="{{d.attachment}}" target="_blank">
<img class="filesuffix" src="{{d.attachment}}" alt="Image Preview" style="max-width: 100px; height: auto;" />
</a>
{{#
} else if (fileExt === 'pdf') {
}}
<!-- PDF 文件显示 PDF 图标并链接到 PDF 文件 -->
<a href="{{d.attachment}}" target="_blank" style="display: flex; align-items: center;">
<i class="layui-icon layui-icon-file" style="font-size: 24px; color: #e64340; margin-right: 5px;"></i>
<span>PDF{{d.attachment}}</span>
</a>
{{#
} else {
}}
<!-- 其他文件类型显示通用文件图标并链接到文件 -->
<a href="{{d.attachment}}" target="_blank" style="display: flex; align-items: center;">
<i class="layui-icon layui-icon-file" style="font-size: 24px; color: #1E9FFF; margin-right: 5px;"></i>
<span>Other{{d.attachment}}</span>
</a>
{{#
}
}
}}
</script>
<include file="/public/footer" />
@@ -191,12 +231,12 @@
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: 'attachment', templet: function (d) {
// return '<a href="' + d.attachment + '" target="_blank" ><img class="filesuffix" src="' + d.attachment + '"></a>';
// }, title: '{:__("Symbol文件")}'
// },
{ field: 'attachment', width: 160, templet: '#filepreviewtpl', title: '{:__("封装文件")}' },
{ field: 'nickname', title: '{:__("创建者")}' },
{ field: 'content', title: '{:__("注释")}' },
{ field: 'status', templet: '#columnStatus', title: '{:__("状态")}' },