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

@@ -1,83 +1,171 @@
<include file="/public/header" />
<!-- // 重定位style -->
<!---->
<link href="__STATICADMIN__css/content.css" rel="stylesheet" type="text/css" />
<div class="layui-fluid">
<form class="layui-form layui-card" >
<div class="layui-card-body">
<gt name="$data.id" value="0">
<input type="text" name="id" value="{$data.id}" hidden="">
<else/>
<input type="text" name="id" value="" hidden="">
</gt>
<div class="layui-form-item" >
<label class="layui-form-label">排序</label>
<div class="layui-input-block"><input class="layui-input" name="sort" placeholder="请输入" lay-verify=""value="{$data.sort}" ></div>
</div>
<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-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">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" >
<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">
<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="上传成功后渲染" >
<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">
<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="上传成功后渲染" >
<span class="layui-badge layui-upload-clear">删除</span>
</div>
<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">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>
</notempty>
</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"><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">注释</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-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['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">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-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>
<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" />
<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(',',' ');
}
},title:'{:__("器件绑定")}'},
{field:'attachment',templet:function(d) {
return '<a href="'+d.attachment+'" target="_blank" ><img class="filesuffix" src="'+d.attachment+'"></a>';
},title:'{:__("Symbol文件")}'},
{field:'content',title:'{:__("注释")}'},
{field:'status',templet: '#columnStatus',title:'{:__("状态")}'},
{align: 'center', toolbar: '#tableBar', width:160, fixed: 'right', title: '{:__("操作")}'},
]]
<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: '', // 叶子节点的图标
}
},
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: 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>