提交 ffb57350 编写于 作者: Skyeye云's avatar Skyeye云

数据字典支持树状列表展示

上级 a1a5d13f
......@@ -74,9 +74,9 @@ layui.config({
function details(data) {
rowId = data.id;
_openNewWindows({
url: "../../tpl/material/materialdetails.html",
url: "../../tpl/material/materialDetails.html",
title: systemLanguage["com.skyeye.detailsPageTitle"][languageType],
pageId: "materialdetails",
pageId: "materialDetails",
area: ['90vw', '90vh'],
callBack: function (refreshCode) {
}});
......
......@@ -171,9 +171,9 @@ layui.config({
function details(data) {
rowId = data.materialId;
_openNewWindows({
url: "../../tpl/material/materialdetails.html",
url: "../../tpl/material/materialDetails.html",
title: systemLanguage["com.skyeye.detailsPageTitle"][languageType],
pageId: "materialdetails",
pageId: "materialDetails",
area: ['90vw', '90vh'],
callBack: function (refreshCode) {
}});
......
......@@ -5,86 +5,43 @@ layui.config({
version: skyeyeVersion
}).extend({
window: 'js/winui.window'
}).define(['window', 'table', 'jquery', 'winui', 'form', 'tableCheckBoxUtil', 'fsCommon', 'fsTree'], function (exports) {
}).define(['window', 'table', 'jquery', 'winui', 'form', 'tableCheckBoxUtil'], function (exports) {
winui.renderColor();
var index = parent.layer.getFrameIndex(window.name);
var $ = layui.$,
form = layui.form,
table = layui.table,
fsTree = layui.fsTree,
fsCommon = layui.fsCommon,
tableCheckBoxUtil = layui.tableCheckBoxUtil;
//选择的多商品列表
// 选择的多商品列表
productMationList = parent.productMationList;
//设置提示信息
// 设置提示信息
var s = "商品选择规则:1.多选;如没有查到要选择的商品,请检查商品信息是否满足当前规则。";
$("#showInfo").html(s);
/********* tree 处理 start *************/
//初始商品分类类型
var materialCategoryType;
fsTree.render({
id: "materialCategoryType",
url: flowableBasePath + "materialcategory008",
checkEnable: false,
loadEnable: false,//异步加载
showLine: false,
showIcon: true,
expandSpeed: 'fast',
clickCallback: zTreeOnClick
}, function(id){
materialCategoryType = $.fn.zTree.getZTreeObj(id);
//加载商品列表
var categoryId = "";
sysDictDataUtil.showDictDataListByDictTypeCode(sysDictData["erpMaterialCategory"]["key"], 'selectTree', "materialCategoryType", '', form, function () {
initTable();
});
//节点点击事件
function zTreeOnClick(event, treeId, treeNode) {
categoryId = treeNode.id == 0 ? '' : treeNode.id;
}, function (chooseId) {
categoryId = chooseId;
refreshTable();
}
$("body").on("input", "#name", function() {
searchZtree(materialCategoryType, $("#name").val());
});
//ztree查询
var hiddenNodes = [];
function searchZtree(ztreeObj, ztreeInput) {
//显示上次搜索后隐藏的结点
ztreeObj.showNodes(hiddenNodes);
function filterFunc(node) {
var keyword = ztreeInput;
//如果当前结点,或者其父结点可以找到,或者当前结点的子结点可以找到,则该结点不隐藏
if(searchParent(keyword, node) || searchChildren(keyword, node.children)) {
return false;
}
return true;
};
//获取不符合条件的叶子结点
hiddenNodes = ztreeObj.getNodesByFilter(filterFunc);
//隐藏不符合条件的叶子结点
ztreeObj.hideNodes(hiddenNodes);
}
/********* tree 处理 end *************/
//树节点选中的商品类型id
var categoryId = "";
function initTable(){
//初始化值
var ids = [];
$.each(productMationList, function(i, item) {
ids.push(item.productId);
});
tableCheckBoxUtil.setIds({
gridId: 'messageTable',
fieldName: 'productId',
fieldName: 'materialId',
ids: ids
});
tableCheckBoxUtil.init({
gridId: 'messageTable',
filterId: 'messageTable',
fieldName: 'productId'
fieldName: 'materialId'
});
table.render({
......@@ -100,10 +57,8 @@ layui.config({
cols: [[
{ type: 'checkbox'},
{ title: systemLanguage["com.skyeye.serialNumber"][languageType], type: 'numbers' },
{ field: 'productName', title: '商品名称', align: 'left', width: 150, templet: function (d) {
return '<a lay-event="details" class="notice-title-click">' + d.productName + '</a>';
}},
{ field: 'productModel', title: '型号', align: 'left', width: 150 },
{ field: 'materialName', title: '商品名称', align: 'left', width: 150 },
{ field: 'materialModel', title: '型号', align: 'left', width: 150 },
{ field: 'categoryName', title: '所属类型', align: 'left', width: 100 },
{ field: 'typeName', title: '商品来源', align: 'left', width: 100 },
{ field: 'procedureMationList', title: '工序', align: 'left', width: 100, templet: function (d) {
......@@ -120,7 +75,7 @@ layui.config({
// 设置选中
tableCheckBoxUtil.checkedDefault({
gridId: 'messageTable',
fieldName: 'productId'
fieldName: 'materialId'
});
initTableSearchUtil.initAdvancedSearch(this, json.searchFilter, form, "请输入商品名称,型号", function () {
......@@ -129,29 +84,9 @@ layui.config({
}
});
table.on('tool(messageTable)', function (obj) {
var data = obj.data;
var layEvent = obj.event;
if (layEvent === 'details') { //详情
details(data);
}
});
form.render();
}
//详情
function details(data) {
rowId = data.productId;
_openNewWindows({
url: "../../tpl/material/materialdetails.html",
title: systemLanguage["com.skyeye.detailsPageTitle"][languageType],
pageId: "materialdetails",
area: ['90vw', '90vh'],
callBack: function (refreshCode) {
}});
}
var $step = $("#step");
$step.step({
index: 0,
......@@ -159,7 +94,7 @@ layui.config({
title: ["选择商品", "选择规格"]
});
//下一步
// 下一步
$("body").on("click", "#nextTab", function() {
var selectedData = tableCheckBoxUtil.getValue({
gridId: 'messageTable'
......@@ -182,7 +117,7 @@ layui.config({
}});
});
//保存
// 保存
$("body").on("click", "#saveChoose", function() {
var rows = $("#tBody tr");
if(rows.length == 0){
......@@ -264,14 +199,13 @@ layui.config({
}
}
//上一步
// 上一步
$("body").on("click", "#prevTab", function() {
$step.prevStep();
$("#firstTab").show();
$("#secondTab").hide();
});
form.render();
$("body").on("click", "#reloadTable", function() {
loadTable();
......
......@@ -108,9 +108,9 @@ layui.config({
function details(data) {
rowId = data.id;
_openNewWindows({
url: "../../tpl/material/materialdetails.html",
url: "../../tpl/material/materialDetails.html",
title: systemLanguage["com.skyeye.detailsPageTitle"][languageType],
pageId: "materialdetails",
pageId: "materialDetails",
area: ['90vw', '90vh'],
callBack: function (refreshCode) {
}});
......
......@@ -124,9 +124,9 @@ layui.config({
function details(data) {
rowId = data.id;
_openNewWindows({
url: "../../tpl/material/materialdetails.html",
url: "../../tpl/material/materialDetails.html",
title: systemLanguage["com.skyeye.detailsPageTitle"][languageType],
pageId: "materialdetails",
pageId: "materialDetails",
area: ['90vw', '90vh'],
callBack: function (refreshCode) {
}});
......
......@@ -157,9 +157,9 @@ layui.config({
function details(data) {
rowId = data.id;
_openNewWindows({
url: "../../tpl/material/materialdetails.html",
url: "../../tpl/material/materialDetails.html",
title: systemLanguage["com.skyeye.detailsPageTitle"][languageType],
pageId: "materialdetails",
pageId: "materialDetails",
area: ['90vw', '90vh'],
callBack: function (refreshCode) {
}});
......
......@@ -5,8 +5,6 @@
<title></title>
<link href="../../assets/lib/layui/css/layui.css" rel="stylesheet" />
<link href="../../assets/lib/winui/css/winui.css" rel="stylesheet" />
<link href="../../assets/lib/layui/lay/modules/ztree/css/zTreeStyle/zTreeStyle.css" rel="stylesheet" />
<link href="../../assets/lib/layui/lay/modules/contextMenu/jquery.contextMenu.min.css" rel="stylesheet" />
<link href="../../assets/lib/layui/lay/modules/jqueryStep/css/jquery.step.css" rel="stylesheet" />
<style>
.layui-input{
......@@ -30,16 +28,8 @@
</div>
</div>
<div style="margin:auto 10px;">
<div style="width: 200px; float: left;">
<div class="layui-inline" style="width: 100%">
<div class="layui-input-inline" style="width: 100%">
<input type="text" id="name" name="name" placeholder="请输入要搜索的节点" class="layui-input" />
</div>
</div>
<div class="layui-inline" style="width: 100%">
<ul id="materialCategoryType" class="ztree fsTree" method="get" isRoot="1"
treeIdKey="id" inputs="parentId" treePIdKey="pId" clickCallbackInputs="parentId:$id" treeName="name" style="overflow-y: auto; height: 100%;"></ul>
</div>
<div style="width: 200px; float: left;" id="materialCategoryType">
</div>
<div style="width: calc(100% - 200px); float: left;">
<div style="margin:auto 10px;">
......@@ -61,8 +51,8 @@
<th>型号</th>
<th>所属类型</th>
<th>商品来源</th>
<th>BOM方案选择</th>
<th>规格选择</th>
<th>规格选择</th>
<th>BOM方案选择</th>
<th>工序</th>
</tr>
</thead>
......@@ -91,17 +81,17 @@
<option value="2">外购</option>
</select>
</td>
<td>
<select lay-filter="bomListChoose" lay-search="" id="bom{{productId}}">
<option value="">全部</option>
{{#each bomList}}
<option value="{{id}}">{{name}}</option>
<td>
<select lay-filter="unitListChoose" lay-search="" id="norms{{productId}}">
{{#each unitList}}
<option value="{{id}}">{{name}}</option>
{{/each}}
</select>
</td>
<td>
<select lay-filter="unitListChoose" lay-search="" id="norms{{productId}}">
{{#each unitList}}
<select lay-filter="bomListChoose" lay-search="" id="bom{{productId}}">
<option value="">全部</option>
{{#each bomList}}
<option value="{{id}}">{{name}}</option>
{{/each}}
</select>
......@@ -117,12 +107,8 @@
<script src="../../assets/lib/layui/layui.js"></script>
<script src="../../assets/lib/layui/custom.js"></script>
<script type="text/javascript" src="../../assets/lib/layui/lay/modules/jquery-min.js"></script>
<script type="text/javascript" src="../../assets/lib/layui/lay/modules/jquery-min.js"></script>
<script type="text/javascript" src="../../assets/lib/layui/lay/modules/jqueryStep/js/jquery.step.min.js"></script>
<script type="text/javascript" src="../../assets/lib/layui/lay/modules/contextMenu/jquery.contextMenu.min.js"></script>
<script type="text/javascript" src="../../assets/lib/layui/lay/modules/ztree/js/jquery.ztree.all.min.js"></script>
<script type="text/javascript" src="../../assets/lib/layui/lay/modules/ztree/js/jquery.ztree.exhide.min.js"></script>
<script type="text/javascript" src="../../assets/lib/layui/lay/modules/ztree/js/fuzzysearch.js"></script>
<script type="text/javascript">
layui.config({base: '../../js/material/'}).use('materialChooseToProduce');
</script>
......
......@@ -101,7 +101,7 @@
<script src="../../assets/lib/layui/layui.js"></script>
<script src="../../assets/lib/layui/custom.js"></script>
<script type="text/javascript">
layui.config({base: '../../js/material/'}).use('materialdetails');
layui.config({base: '../../js/material/'}).use('materialDetails');
</script>
</body>
</html>
\ No newline at end of file
......@@ -107,9 +107,9 @@ layui.config({
$("body").on("click", ".productNameMation", function() {
rowId = $(this).attr("rowid");
_openNewWindows({
url: "../../tpl/material/materialdetails.html",
url: "../../tpl/material/materialDetails.html",
title: "商品详情",
pageId: "licencedetails",
pageId: "materialDetails",
area: ['90vw', '90vh'],
callBack: function (refreshCode) {
}});
......@@ -119,9 +119,9 @@ layui.config({
$("body").on("click", ".faultKeyPartsNameMation", function() {
rowId = $(this).attr("rowid");
_openNewWindows({
url: "../../tpl/material/materialdetails.html",
url: "../../tpl/material/materialDetails.html",
title: "组件详情",
pageId: "licencedetails",
pageId: "materialDetails",
area: ['90vw', '90vh'],
callBack: function (refreshCode) {
}});
......
......@@ -57,7 +57,7 @@ var sysDictDataUtil = {
}
form.render('checkbox');
} else if (showType == 'radioTree') {
var _html = sysDictDataUtil.getShowTteeHtml();
var _html = sysDictDataUtil.getShowTteeHtml(showBoxId, '0');
var _js = `<script>
layui.define(["jquery", 'fsTree'], function(exports) {
var jQuery = layui.jquery,
......@@ -93,7 +93,7 @@ var sysDictDataUtil = {
</script>`;
$("#" + showBoxId).append(_html + _js);
} else if (showType == 'selectTree') {
var _html = sysDictDataUtil.getShowTteeHtml();
var _html = sysDictDataUtil.getShowTteeHtml(showBoxId, '1');
var _js = `<script>
layui.define(["jquery", 'fsTree'], function(exports) {
var jQuery = layui.jquery,
......@@ -102,9 +102,8 @@ var sysDictDataUtil = {
fsTree.render({
id: "${showBoxId}Tree",
simpleData: '` + JSON.stringify(json.treeRows) + `',
checkEnable: true,
checkEnable: false,
loadEnable: false,
chkStyle: "radio",
showLine: false,
showIcon: true,
expandSpeed: 'fast',
......@@ -120,13 +119,16 @@ var sysDictDataUtil = {
} else {
chooseId = treeNode.id;
}
if (typeof (chooseCallback) == "function") {
chooseCallback(chooseId);
}
$('#${showBoxId}Choose').val(chooseId).change();
}
})(jQuery);});
</script>`;
$("#" + showBoxId).append(_html + _js);
$("#" + showBoxId + "Choose").on("change", function() {
if (typeof (chooseCallback) == "function") {
chooseCallback($(this).val());
}
});
}
if (typeof (callback) == "function") {
callback(json);
......@@ -134,16 +136,17 @@ var sysDictDataUtil = {
});
},
getShowTteeHtml: function (showBoxId) {
getShowTteeHtml: function (showBoxId, isRoot) {
var _html = `<link href="../../assets/lib/layui/lay/modules/ztree/css/zTreeStyle/zTreeStyle.css" rel="stylesheet" />
<link href="../../assets/lib/layui/lay/modules/contextMenu/jquery.contextMenu.min.css" rel="stylesheet" />
<div class="layui-inline" style="width: 100%">
<div class="layui-input-inline">
<input type="text" id="${showBoxId}Name" name="${showBoxId}Name" placeholder="请输入要搜索的节点" class="layui-input" />
<input type="hidden" id="${showBoxId}Choose" name="${showBoxId}Choose" class="layui-input" />
</div>
</div>
<div class="layui-inline" style="max-height: 200px; width: 100%; overflow-y: auto;">
<ul id="${showBoxId}Tree" class="ztree fsTree" method="get" isRoot="0" isLoad="0" treeIdKey="id" inputs="parentId" treePIdKey="pId"
<ul id="${showBoxId}Tree" class="ztree fsTree" method="get" isRoot="${isRoot}" isLoad="0" treeIdKey="id" inputs="parentId" treePIdKey="parentId"
clickCallbackInputs="parentId:$id" treeName="name" style="overflow-y: auto; height: 100%;"></ul>
</div>
<script type="text/javascript" src="../../assets/lib/layui/lay/modules/jquery-min.js"></script>
......
......@@ -281,17 +281,16 @@ layui.define(['layer', "fsCommon"], function(exports) {
_this.config.otherParam = otherParam;
if (domTree.attr("isLoad") === "0") {
var array = new Array();
if (domTree.attr("isRoot") !== "0") { // 是否显示根目录
var array = [].concat(simpleData);
if (domTree.attr("isRoot") !== "0") {
var arr = {};
arr["open"] = true;
arr["isParent"] = true;
arr["drag"] = false;
arr[_this.config.treeName] = "全部";
arr[_this.config.treeIdKey] = 0;
arr[_this.config.treeIdKey] = "0";
array.push(arr);
}
array = $.extend(true, array, simpleData);
_this.showTree(array);
} else {
var method = domTree.attr("method"); // 请求方式
......@@ -306,13 +305,13 @@ layui.define(['layer', "fsCommon"], function(exports) {
if (!$.isArray(array)) {
array = new Array();
}
if (domTree.attr("isRoot") !== "0") { // 是否显示根目录
if (domTree.attr("isRoot") !== "0") {
var arr = {};
arr["open"] = true;
arr["isParent"] = true;
arr["drag"] = false;
arr[_this.config.treeName] = "全部";
arr[_this.config.treeIdKey] = 0;
arr[_this.config.treeIdKey] = "0";
array.push(arr);
}
_this.showTree(array);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册