更新下拉列表的功能以及增加下拉列表的筛选功能
This commit is contained in:
7
.gitignore
vendored
7
.gitignore
vendored
@@ -1,2 +1,9 @@
|
||||
public/static/json/2/treeTable/demo-1.json
|
||||
public/test.html
|
||||
app/admin/view/pdm_partlist/add copy.html
|
||||
app/admin/view/pdm_partlist/index copy.html
|
||||
app/admin/view/pdm_partitem_relation copy/add.html
|
||||
app/admin/view/pdm_partitem_relation copy/index.html
|
||||
|
||||
public/upload/datasheet/*
|
||||
public/upload/datasheet*
|
||||
@@ -59,7 +59,7 @@ class PdmPartitemIndex extends AdminController
|
||||
* @throws DbException
|
||||
* @throws ModelNotFoundException
|
||||
*/
|
||||
public function dataList(array $params): array
|
||||
public static function dataList(array $params): array
|
||||
{
|
||||
// $where = array();
|
||||
// if (!empty($params['partnumber'])) {
|
||||
@@ -91,14 +91,17 @@ class PdmPartitemIndex extends AdminController
|
||||
|
||||
$page = (int)input('page', 1);
|
||||
$limit = (int)input('limit', 18);
|
||||
$where = $this->buildSelectParams();
|
||||
$count = $this->model->where($where)->count();
|
||||
$fieldList = $this->model->getFields();
|
||||
|
||||
$controller = new PdmPartitemIndex();
|
||||
|
||||
$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, 'desc')->limit($limit)->page($page)->buildSql();
|
||||
$subQuery = $controller->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 = $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));
|
||||
@@ -127,8 +130,8 @@ class PdmPartitemIndex 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;
|
||||
|
||||
@@ -7,6 +7,7 @@ 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 app\admin\model\PdmPartitemIndex as PdmPartitemIndexModel;
|
||||
use support\Response;
|
||||
|
||||
/**
|
||||
@@ -154,6 +155,7 @@ class PdmPartitemRelation extends AdminController
|
||||
{
|
||||
$symbol = PdmSymbolModel::select()->toArray();
|
||||
$footprint = PdmFootprintModel::select()->toArray();
|
||||
$partitemIndex = PdmPartitemIndexModel::select()->toArray();
|
||||
|
||||
if (request()->isPost()) {
|
||||
$post = \request()->post();
|
||||
@@ -179,6 +181,7 @@ class PdmPartitemRelation extends AdminController
|
||||
'data' => $data,
|
||||
'symbol' => json_encode( list_to_tree($symbol), JSON_UNESCAPED_UNICODE),
|
||||
'footprint' => json_encode( list_to_tree($footprint), JSON_UNESCAPED_UNICODE),
|
||||
'partitemIndex' => json_encode( list_to_tree($partitemIndex), JSON_UNESCAPED_UNICODE),
|
||||
// 'parttype' => $this->parttype,
|
||||
'list' => json_encode( list_to_tree($list), JSON_UNESCAPED_UNICODE),
|
||||
]);
|
||||
@@ -199,12 +202,18 @@ class PdmPartitemRelation extends AdminController
|
||||
|
||||
$symbolid = $data['symbolid'];
|
||||
$footprintid = $data['footprintid'];
|
||||
$partnumbertemp = $data['partnumber'];
|
||||
|
||||
// $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);
|
||||
$where = ['partnumber' => $partnumbertemp];
|
||||
// $partnumbertemp1 = PdmPartitemIndexModel::find($partnumbertemp)->toArray();
|
||||
$partnumbertemp1 = PdmPartitemIndexModel::where($where)->select()->toArray();
|
||||
list($countpartnumberIndex, $partitemIndex) = \app\admin\controller\PdmPartitemIndex::dataList($partnumbertemp1);
|
||||
|
||||
|
||||
if (request()->isPost()) {
|
||||
$post = \request()->post();
|
||||
@@ -221,6 +230,7 @@ class PdmPartitemRelation extends AdminController
|
||||
'data' => $data,
|
||||
'symbol' => json_encode( list_to_tree($symbol), JSON_UNESCAPED_UNICODE),
|
||||
'footprint' => json_encode( list_to_tree($footprint), JSON_UNESCAPED_UNICODE),
|
||||
'partitemIndex' => json_encode( list_to_tree($partitemIndex), JSON_UNESCAPED_UNICODE),
|
||||
// 'parttype' => json_encode( $parttype, JSON_UNESCAPED_UNICODE),
|
||||
'list' => json_encode( list_to_tree($list), JSON_UNESCAPED_UNICODE),
|
||||
]);
|
||||
|
||||
@@ -152,6 +152,7 @@
|
||||
theme: {
|
||||
color: '#1890FF'
|
||||
}
|
||||
,filterable: true // 启用筛选功能
|
||||
})
|
||||
|
||||
iconPicker.render({
|
||||
|
||||
@@ -1,67 +0,0 @@
|
||||
<include file="/public/header" />
|
||||
<!-- // 重定位style -->
|
||||
<!---->
|
||||
<link href="__STATICADMIN__css/content.css" rel="stylesheet" type="text/css" />
|
||||
<div class="layui-fluid">
|
||||
<form class="layui-form layui-card" >
|
||||
|
||||
<div class="layui-card-body">
|
||||
<gt name="$data.id" value="0">
|
||||
<input type="text" name="id" value="{$data.id}" hidden="">
|
||||
<else/>
|
||||
<input type="text" name="id" value="" hidden="">
|
||||
</gt>
|
||||
<div class="layui-form-item" >
|
||||
<label class="layui-form-label">PartNumber</label>
|
||||
<div class="layui-input-block"><input class="layui-input" name="partnumber" placeholder="请输入" lay-verify=""value="{$data.partnumber}" ></div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item" >
|
||||
<label class="layui-form-label">描述</label>
|
||||
<div class="layui-input-block"><input class="layui-input" name="description" placeholder="请输入" lay-verify=""value="{$data.description}" ></div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item" >
|
||||
<label class="layui-form-label">部件属性</label>
|
||||
<div class="layui-input-block">
|
||||
<table class="layui-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>名称</th>
|
||||
<th>变量值</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<notempty name="data.partattribute">
|
||||
<volist name="data.partattribute" id="vo" key="i">
|
||||
<tr>
|
||||
<td><input type="text" class="layui-input" name="partattribute[key][]" value="{$key}" ></td>
|
||||
<td><input type="text" class="layui-input" name="partattribute[value][]" value="{$vo}"></td>
|
||||
<td><i class="layui-icon fa-times" data-name="partattribute" onclick="layui.admin.resetInput(this);"></i></td>
|
||||
</tr>
|
||||
</volist>
|
||||
</notempty>
|
||||
</tbody>
|
||||
</table>
|
||||
<button type="button" class="layui-btn layui-btn-normal layui-jsonvar-add" data-name="partattribute">追加</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item" >
|
||||
<div class="layui-input-block"><blockquote class="layui-elem-quote">便签信息</blockquote></div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item" >
|
||||
<label class="layui-form-label">注释</label>
|
||||
<div class="layui-input-block"> <textarea id="content" lay-editor class="layui-hide" name="content" type="layui-textarea" >{$data.content}</textarea></div>
|
||||
</div>
|
||||
|
||||
<div class="layui-footer layui-form-footer">
|
||||
<button class="layui-btn layui-btn-primary" type="button" sa-event="closeDialog">{:__('取消')}</button>
|
||||
<button class="layui-btn" type="button" lay-filter="submitIframe" lay-submit>{:__('提交')}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<include file="/public/static" />
|
||||
<include file="/public/footer" />
|
||||
@@ -1,172 +0,0 @@
|
||||
<include file="/public/header" />
|
||||
<!---->
|
||||
<div class="layui-fluid">
|
||||
<div class="layui-card">
|
||||
<!-- // 默认操作按钮 -->
|
||||
<div class="layui-card-header layadmin-card-header-auto ">
|
||||
<div class="layui-form">
|
||||
<!-- // 自定义搜索参数 -->
|
||||
<div id="laytable-search" class="layui-form-item" >
|
||||
<div class="layui-inline">
|
||||
<div class="layui-form-label">{:__('ID')}</div>
|
||||
<div class="layui-input-inline ">
|
||||
<input name="id" class="layui-input" type="text" placeholder="{:__('ID')}"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-inline">
|
||||
<div class="layui-form-label">{:__('父ID')}</div>
|
||||
<div class="layui-input-inline ">
|
||||
<input name="pid" class="layui-input" type="text" placeholder="{:__('父ID')}"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-inline">
|
||||
<div class="layui-form-label">{:__('ParttypeID')}</div>
|
||||
<div class="layui-input-inline ">
|
||||
<input name="parttypeid" class="layui-input" type="text" placeholder="{:__('ParttypeID')}"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-inline">
|
||||
<div class="layui-form-label">{:__('排序')}</div>
|
||||
<div class="layui-input-inline ">
|
||||
<input name="sort" class="layui-input" type="text" placeholder="{:__('排序')}"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-inline">
|
||||
<div class="layui-form-label">{:__('描述')}</div>
|
||||
<div class="layui-input-inline ">
|
||||
<input name="description" class="layui-input" type="text" placeholder="{:__('描述')}"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-inline">
|
||||
<div class="layui-form-label">{:__('部件属性')}</div>
|
||||
<div class="layui-input-inline ">
|
||||
<input name="partattribute" class="layui-input" type="text" placeholder="{:__('部件属性')}"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-inline">
|
||||
<div class="layui-form-label">{:__('属性字段')}</div>
|
||||
<div class="layui-input-inline ">
|
||||
<input name="partattributetitle" class="layui-input" type="text" placeholder="{:__('属性字段')}"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-inline">
|
||||
<div class="layui-form-label">{:__('创建者')}</div>
|
||||
<div class="layui-input-inline ">
|
||||
<input name="createrid" class="layui-input" type="text" placeholder="{:__('创建者')}"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-inline">
|
||||
<div class="layui-form-label">{:__('注释')}</div>
|
||||
<div class="layui-input-inline ">
|
||||
<input name="content" class="layui-input" type="text" placeholder="{:__('注释')}"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-inline">
|
||||
<div class="layui-form-label">{:__('更新时间')}</div>
|
||||
<div class="layui-input-inline ">
|
||||
<input name="update_time" lay-datetime data-range="true" data-type="date" data-dateformat="yyyy/MM/dd" class="layui-input" type="text" placeholder="{:__('更新时间')}"/>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-inline">
|
||||
<div class="layui-form-label">{:__('创建时间')}</div>
|
||||
<div class="layui-input-inline ">
|
||||
<input name="create_time" lay-datetime data-range="true" data-type="date" data-dateformat="yyyy/MM/dd" class="layui-input" type="text" placeholder="{:__('创建时间')}"/>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-form-item">
|
||||
<div class="layui-inline">
|
||||
<select name="status">
|
||||
<option value="">{:__('按状态查询')}</option>
|
||||
<option value="2" >{:__('正常')}</option>
|
||||
<option value="1" >{:__('关闭')}</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<div class="layui-inline">
|
||||
<div class="layui-form-label">{:__('PartNumber')}</div>
|
||||
<div class="layui-input-inline ">
|
||||
<input name="partnumber" class="layui-input" type="text" placeholder="{:__('PartNumber')}"/>
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline" >
|
||||
<!-- // 默认搜索 -->
|
||||
<button class="layui-btn icon-btn" lay-filter="formSearch" lay-submit><i class="layui-icon layui-icon-search"></i>{:__('搜索')}</button>
|
||||
<!--formBegin-->
|
||||
<button class="layui-btn icon-btn" lay-open="" data-title="{:__('添加')}" data-area="1100px,750px" data-maxmin="true" data-url="{:url('/PdmPartitem/add')}" >
|
||||
<i class="layui-icon layui-icon-add-1"></i>{:__('添加')}
|
||||
</button>
|
||||
<!--formEnd-->
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- // 创建数据实例 -->
|
||||
<table id="lay-tableList" lay-filter="lay-tableList"></table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- // 列表状态栏 -->
|
||||
<script type="text/html" id="columnStatus">
|
||||
<input type="checkbox" lay-filter="switchStatus" data-url="{:url('/PdmPartitem/status')}" value="{{d.id}}" lay-skin="switch" {{d.status==1?'checked':''}} />
|
||||
</script>
|
||||
|
||||
<!-- // 列表工具栏 -->
|
||||
<script type="text/html" id="tableBar">
|
||||
<!--formBegin-->
|
||||
<a class="layui-table-text" data-title="{:__('编辑')}" data-area="1100px,750px" data-maxmin="true"
|
||||
data-url="{:url('/PdmPartitem/edit')}?id={{d.id}}" lay-event="edit" >{:__('编辑')}</a>
|
||||
<div class="layui-divider layui-divider-vertical"></div>
|
||||
<!--formEnd-->
|
||||
<a class="layui-table-text" data-url="{:url('/PdmPartitem/del')}?id={{d.id}}" lay-event="del" >{:__('删除')}</a>
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<script type="text/html" id="tableButton"></script>
|
||||
|
||||
<include file="/public/footer" />
|
||||
<script>
|
||||
layui.use(['admin','table'], function () {
|
||||
|
||||
var admin = layui.admin;
|
||||
var table = layui.table;
|
||||
|
||||
/*
|
||||
* 初始化表格
|
||||
*/
|
||||
var isTable = table.render({
|
||||
elem: "#lay-tableList"
|
||||
,url: "{:url('/PdmPartitem/index')}"
|
||||
,toolbar: '#tableButton'
|
||||
,defaultToolbar: ['filter', 'exports', 'print','search']
|
||||
,cellMinWidth: 160
|
||||
,page: true
|
||||
,limit: 18
|
||||
,cols: [[
|
||||
{type: 'checkbox', width: 50},
|
||||
{field: 'id', align: 'center',sort: true,width: 80, title: 'ID'},
|
||||
{field:'partnumber',title:'{:__("PartNumber")}'},
|
||||
{field:'description',title:'{:__("描述")}'},
|
||||
{field:'partattribute',templet:function(d) {
|
||||
return JSON.stringify(d.partattribute);
|
||||
},title:'{:__("部件属性")}'},
|
||||
{field:'createrid',title:'{:__("创建者")}'},
|
||||
{field:'content',title:'{:__("注释")}'},
|
||||
{field:'status',templet: '#columnStatus',title:'{:__("状态")}'},
|
||||
{align: 'center', toolbar: '#tableBar', width:160, fixed: 'right', title: '{:__("操作")}'},
|
||||
]]
|
||||
})
|
||||
|
||||
})
|
||||
</script>
|
||||
@@ -176,6 +176,7 @@
|
||||
theme: {
|
||||
color: '#1890FF'
|
||||
}
|
||||
,filterable: true // 启用筛选功能
|
||||
})
|
||||
|
||||
// iconPicker.render({
|
||||
|
||||
@@ -13,10 +13,17 @@
|
||||
<input type="text" name="id" value="" hidden="">
|
||||
<input type="text" class="pid" name="pid" value="" hidden="">
|
||||
</gt>
|
||||
<div class="layui-form-item">
|
||||
<!-- <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">Symbol</label>
|
||||
<div class="layui-input-block">
|
||||
<div id="partnumberNode" name="partnumber" lay-filter="partnumberNode" data-pid="{$data.partnumber|default=''}"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="layui-form-item">
|
||||
@@ -85,6 +92,7 @@
|
||||
let data = {$list|raw};
|
||||
let symboldata= {$symbol|raw};
|
||||
let footprintdata= {$footprint|raw};
|
||||
let partnumberdata= {$partitemIndex|raw};
|
||||
|
||||
// 提交参数
|
||||
form.on("submit(submit)",function(data){
|
||||
@@ -132,6 +140,7 @@
|
||||
theme: {
|
||||
color: '#1890FF'
|
||||
}
|
||||
,filterable: true // 启用筛选功能
|
||||
})
|
||||
|
||||
|
||||
@@ -165,6 +174,40 @@
|
||||
theme: {
|
||||
color: '#1890FF'
|
||||
}
|
||||
,filterable: true // 启用筛选功能
|
||||
})
|
||||
|
||||
xmSelect.render({
|
||||
el: '#partnumberNode',
|
||||
tips: '请选择Partnumber',
|
||||
// name: 'pid',
|
||||
name: 'partnumber',
|
||||
height: '260px',
|
||||
data: partnumberdata,
|
||||
// data: data,
|
||||
radio: true,
|
||||
clickClose: true,
|
||||
initValue:[$('#partnumberNode').data('pid')],
|
||||
prop: {
|
||||
value: 'partnumber',
|
||||
name:'partnumber'
|
||||
},
|
||||
tree: {
|
||||
show: true,
|
||||
strict: false,
|
||||
showLine: false,
|
||||
clickExpand: false,
|
||||
},
|
||||
model: {
|
||||
icon: 'hidden',
|
||||
label: {
|
||||
type: 'text'
|
||||
}
|
||||
},
|
||||
theme: {
|
||||
color: '#1890FF'
|
||||
}
|
||||
,filterable: true // 启用筛选功能
|
||||
})
|
||||
|
||||
// iconPicker.render({
|
||||
|
||||
@@ -195,7 +195,7 @@
|
||||
{ field: 'value', sort: true,width: 160, title: '{:__("Value")}' },
|
||||
{ field: 'description', width: 250, title: '{:__("描述")}' },
|
||||
{ field: 'mpn', sort: true, width: 160, title: '{:__("MPN")}' },
|
||||
{ field: 'mfgname', sort: true, width: 160, title: '{:__("制造商名称")}' },
|
||||
{ field: 'mfg', sort: true, width: 160, title: '{:__("制造商名称")}' },
|
||||
{ field: 'symbol', width: 160, title: '{:__("SymbolName")}' },
|
||||
{ field: 'footprint',width: 160, sort: true, title: '{:__("Footprint")}' },
|
||||
//{ field: 'datasheet', title: '{:__("规格书")}' },
|
||||
|
||||
@@ -147,6 +147,7 @@
|
||||
theme: {
|
||||
color: '#1890FF'
|
||||
}
|
||||
,filterable: true // 启用筛选功能
|
||||
})
|
||||
|
||||
iconPicker.render({
|
||||
|
||||
@@ -147,6 +147,7 @@
|
||||
theme: {
|
||||
color: '#1890FF'
|
||||
}
|
||||
,filterable: true // 启用筛选功能
|
||||
})
|
||||
|
||||
iconPicker.render({
|
||||
|
||||
Reference in New Issue
Block a user