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,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>