From d0fab39db8c50fb72d7311b0d4c80e475af47c76 Mon Sep 17 00:00:00 2001
From: zhangyanpeng <bob.zhang@highdatas.com>
Date: 星期日, 04 八月 2024 00:34:02 +0800
Subject: [PATCH] 调整

---
 module/md/page/product/page/batch_number.html |  995 +++++++++++++++++++++++++++-------------------------------
 1 files changed, 464 insertions(+), 531 deletions(-)

diff --git a/module/md/page/product/page/batch_number.html b/module/md/page/product/page/batch_number.html
index 0c066d2..66c9858 100644
--- a/module/md/page/product/page/batch_number.html
+++ b/module/md/page/product/page/batch_number.html
@@ -2,7 +2,7 @@
 <html>
 	<head>
 		<meta charset="utf-8"><meta http-equiv="Expires" content="0"><meta http-equiv="Pragma" content="no-cache"><meta http-equiv="Cache-control" content="no-cache"><meta http-equiv="Cache" content="no-cache">
-		<title>浜у搧妫�楠屾姤鍛�</title>
+		<title>璧勬枡搴�</title>
 		
 		<script type="text/javascript">
 			var pageVue = null;
@@ -14,57 +14,91 @@
 			};
 			
 			function initVue() {
-				new TreeVue({
+				pageVue = new TabTableVue({
 					el: "#vbody",
 					data: {
-						// dataname: "md_prod_library",
-						dataname: "md_prod_category",
-						title: "浜у搧妫�楠屾姤鍛�",
-						tree_title: "浜у搧绫诲瀷",
+						title: "璧勬枡搴�",
+						dataname: "sys_dossier",
 						treeTxtFormatter: "{name}",
-						isTreeReadonly: true,
+						isTreeReadonly: false,
+						dataRequest: [
+							{
+								isClientMode: false,
+								name: "md_prod_category",
+								//url: "root/front/getOneDictionary",
+								//paramsobj: { code: "OrgType", },
+								isnotoption: false, //true:涓嶆槸閫夐」
+								code:"id",//鏄笅鎷夐�夐」鏃惰缃�
+								label:"name",//鏄笅鎷夐�夐」鏃惰缃�
+							},
+						],
+						type_treedata: [],
+						defaultProps: {value: "name", label: "name"},
+						filterObjBydefault: {},
 						
-						dataname_p: "md_prod_library_detail",
-						pagesize_p: 10,
-						pagenum_p: 1,
-						total_p: 0,
-						tableData_p: [],
-						tableFields_p: [],
-						isRefresh_p: true,
-						tableHeight_p: 100,
-						
-						tablefieldClick: {},
-
-						setSelectedRowId: null,
-
-						//filter
-						filterObj: {},
-						filterAttr: {
-							columnnumber: 3,
-							labelwidth: "100px",
-							labelposition: "right",
-							size: "medium",
-							border: "3px solid #c6c6c600"
-						},
-						filterFields: [],
-						filterfieldClick: {},
-						currentnodekey: "",
-						authorize_category_ids: "1<>1",
+						//Tab椤硅缃�
+						tabs: [
+							{code: "Open", name: "鐢熸晥", dataname: "sys_dossier", orderby: "update_time", filterTxt: "state_code = 'Open'",},
+							{code: "Close", name: "浣滃簾", dataname: "sys_dossier", orderby: "update_time desc", filterTxt: "state_code = 'Cancel'",},
+							// {code: "Overdue", name: "閫炬湡", dataname: "sys_dossier", orderby: "update_time desc", filterTxt: "date_to < NOW()", },
+							{code: "All", name: "鍏ㄩ儴", dataname: "sys_dossier", orderby: "update_time desc", filterTxt: "1=1",},
+						],
+						tabsobj: {},
 						cbuttons_r: {},
+						ctabs_r: {},
+						report_url: {isshow: "T", field: "report_url", name: "妯℃澘璁捐", width: "100"},
+
+						clickChildNode: false,
+						currentnodekey: "",
+						nodeName: "",
+						maxlevel: 3,
 					},
 					created() {
-						
 					},
 					
 					mounted() {
 						var me = this;
 						if (window.top.tab.selected.option.page_id) {
-							// this.page_id = window.top.tab.selected.option.page_id;
 							getPageByPageId(window.top.tab.selected.option.page_id, function(result){
+								me.activeTabName="Open";
 								me.cbuttons_r = result.buttons_r;
+								//棰勫姞杞芥暟鎹�
+								if (me.dataRequest.length) {
+									var result = {};
+									me.loadRequestData(me.dataRequest, result, function(data) {
+										me.dataRequestObj = data;
+										//棰勫姞杞芥暟鎹悗缁欏摢浜涘瓧娈佃缃畂ptions鎴杅ormatterjson
+										let addNode = clone(data.md_prod_category);
+										// addNode.map( n => {
+										// 	me.$set(n, "ishnodeadd", true);
+										// })
+										let md_prod_category_ = ArrayToTree(clone(addNode), "name", "parent_id");
+										me.type_treedata = clone(md_prod_category_);
+
+										me.initTabsPage(function() {
+											// me.initData();
+											if(me.type_treedata[0]) {
+												const leafNode = me.findLeafNode(me.type_treedata[0]);
+												let objInit = {
+													data: leafNode,
+													node: {},
+													el: {},
+												};
+												me.currentnodekey = leafNode.id;
+
+												// this.filterObjBydefault.category_id = leafNode.id;
+												me.onNodeClick(objInit);
+											}
+										});
+									});
+								}
+								else {
+									//鑾峰彇鏁版嵁
+									me.initTabsPage(function() {
+										me.initData();
+									});
+								}
 								
-								//鑾峰彇鏁版嵁
-								me.initData();
 								me.$nextTick(() => { // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
 									hideLoading();
 								});
@@ -73,82 +107,60 @@
 					},
 					
 					methods:{
+						onhandleClick() {
+							this.selectTabObj = this.tabspageobj[this.activeTabName];
+							this.selectTabObj.filterObjBydefault = this.filterObjBydefault;
+							this.initData();
+						},
+						
 						initData() {
 							var me = this;
-							this.onQuery(function(result, callback) {//鏌ヨ鍚庣殑鍥炶皟锛岀敤浜庤幏鍙栧瓧娈电殑
-								let initTreeData_ = ArrayToTree(clone(me.initTreeData), "name", "parent_id");
-								me.treeData = initTreeData_;
+							me.tableButtonClick();
+							this.doQueryByTab(function(result, callback) {//鏌ヨ鍚庣殑鍥炶皟锛岀敤浜庤幏鍙栧瓧娈电殑
+								if (result.meta && result.meta[me.selectTabObj.dataname] && result.meta[me.selectTabObj.dataname].fields) {
+									var metas = clone(result.meta[me.selectTabObj.dataname].fields);
+									var filterFields_ = [];
+									var tableFields_ = [];
+									
+									// tableFields_.push(me.report_url);
+									
+									metas.map(f=>{
+										f.isshow = "T";
+										
+										if (f.isfilter) {
+											filterFields_.push(clone(f));
+										}
+										else {
+											var filter_f = clone(f);
+											filter_f.isshow = "F";
+											filterFields_.push(filter_f);
+										}
+										
+										tableFields_.push(clone(f));
+									})
+									
+									if (!me.selectTabObj.filterFields || (me.selectTabObj.filterFields && me.selectTabObj.filterFields.length == 0)) {
+										// me.selectTabObj.filterFields = clone(me.default_filterFields);
+										// me.selectTabObj.tableFields = clone(me.default_tableFields);
+										
+										me.selectTabObj.filterFields = clone(filterFields_);
+										me.selectTabObj.tableFields = clone(tableFields_);
+										
+										//瀛楁鏁扮粍杞瓧娈祇bj锛岀洰鐨勪负浜嗙瓫閫夋椂鑾峰彇瀛楁灞炴��
+										me.fieldsToFieldsObj();
+										
+										//璁剧疆瀛楁浜嬩欢
+										me.tableFieldClick();
+									}
+								}
 								
 								if (callback) {
 									callback();
 								}
-								
-								me.getTableMeta();
-
-								//寰呭畬鍠�
-								// if(me.treeData[0].children[0].children[0]) {
-								// 	let objInit = {
-								// 		data: clone(me.treeData[0].children[0].children[0]),
-								// 		node: {},
-								// 		el: {},
-								// 	};
-								// 	me.onNodeClick(objInit);
-								// }
-
-								//Brooke
-								// console.log(me.treeData);
-								// if(me.treeData[0]) {
-								// 	let objInit = me.findNodeInit(me.treeData[0]);
-								// 	console.log(objInit);
-								// }
-
-								//GPT3.5
-								// const deepestNode = me.findDeepestNode(me.treeData[0]);
-								// console.log(deepestNode);
-
-								if(me.treeData[0]) {
-									const leafNode = me.findLeafNode(me.treeData[0]);
-									let objInit = {
-										data: leafNode,
-										node: {},
-										el: {},
-									};
-									me.currentnodekey = leafNode.id;
-									me.onNodeClick(objInit);
-								}
 							});
 						},
 
-						//Brooke
-						// findNodeInit(arr) {
-						// 	var me = this;
-						// 	if(!arr.children || arr.children.length === 0) {
-						// 		return arr;
-						// 	} else {
-						// 		let child = arr.children[0];
-						// 		const nodeInit = findNodeInit(child);
-						// 		if(nodeInit) {
-						// 			return nodeInit;
-						// 		} esle
-						// 	}
-						// },
-
-						//GPT3.5
-						// findDeepestNode(node) {
-						// 	if (!node.children || node.children.length === 0) {
-						// 		return node;
-						// 	}
-						// 	let deepestChild = node.children[0];
-						// 	for (let i = 1; i < node.children.length; i++) {
-						// 		const child = node.children[i];
-						// 		const deepestGrandchild = this.findDeepestNode(child);
-						// 		if (deepestGrandchild.depth > deepestChild.depth) {
-						// 		deepestChild = deepestGrandchild;
-						// 		}
-						// 	}
-						// 	return deepestChild;
-						// },
-
+						//鎵惧埌绗竴绾ф爲鐨勬渶娣卞眰瀛愯妭鐐�
 						findLeafNode(node) {
 							if (!node.children || node.children.length === 0) {
 								return node;
@@ -162,23 +174,157 @@
 							}
 							return null;
 						},
+
+						//鎵惧埌鎵�鏈夌殑瀛愯妭鐐�
+						findAllLeafNode(node) {
+							// if (!node.children || node.children.length === 0) {
+							// 	return node;
+							// }
+							// for (let i = 0; i < node.children.length; i++) {
+							// 	const child = node.children[i];
+							// 	const leafNode = this.findLeafNode(child);
+							// 	if (leafNode) {
+							// 		return leafNode;
+							// 	}
+							// }
+							// return null;
+						},
 						
-						onAddNode(obj) {
-							var data = obj.data, node = obj.node;
+						// 璁剧疆琛ㄦ牸宸ュ叿鏍忔寜閿簨浠�
+						tableButtonClick() {
+							var me = this;
+							var tablebuttonClick = {};
+							tablebuttonClick.Open = [
+								{
+									isbuttonshow: true,type:"primary",
+									code: "add",isselected: false,classname: "",
+									onclick: function(obj) {
+										me.onAddData('add')
+									}
+								},
+								{
+									isbuttonshow: true,type: "danger",
+									code: "repeal",isselected: true,classname: "",
+									disabled: function(selectRowList) {
+										var bo_ = true;
+										if (selectRowList[0] && selectRowList[0].state_code == 'Open') {
+											bo_ = false;
+										}
+										return bo_
+									},
+									onclick: function(obj) {
+										me.cancelConfirm()
+									}
+								}
+							]
+							tablebuttonClick.All = [
+								{
+									// name: "璇︽儏", // type: "primary", // icon: "el-icon-edit",
+									isbuttonshow: true,
+									code: "formdetail", isselected: true, classname: "",
+									onclick: function(obj) {
+										// obj.selectedList
+										me.openCustomerUser('browse', obj.selectedList[0]);
+									}
+								},
+							]
+							
+							
+							if (tablebuttonClick[this.activeTabName]) {
+								this.selectTabObj.tablebuttonClick = tablebuttonClick[this.activeTabName];
+							}
+							else {
+								this.selectTabObj.tablebuttonClick = []
+							}
+						},
+						
+						tableFieldClick() {
+							var me = this;
+							var tablefieldClick = {};
+							//琛ㄦ牸瀛楁浜嬩欢璁剧疆
+							tablefieldClick = {
+								name: {//瀛楁浜嬩欢璁剧疆
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: "",//涓嶅彲鐐瑰嚮鐨勫��,1銆佹槸鏁扮粍["11","22"]锛�2銆佷互鈥�;鈥濆垎闅旂殑瀛楃涓�"111;222"
+										notclick_bindfield: [],//褰撹瀛楁鍊肩瓑浜庢寚瀹氬瓧娈靛�兼椂涓嶅彲鐐瑰嚮["filterfield": "111"]
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											me.onShowData(obj);
+										},
+									},
+								},
+								template_attachment: {//瀛楁浜嬩欢璁剧疆
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: "",//涓嶅彲鐐瑰嚮鐨勫��,1銆佹槸鏁扮粍["11","22"]锛�2銆佷互鈥�;鈥濆垎闅旂殑瀛楃涓�"111;222"
+										notclick_bindfield: [],//褰撹瀛楁鍊肩瓑浜庢寚瀹氬瓧娈靛�兼椂涓嶅彲鐐瑰嚮["filterfield": "111"]
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											//鎵撳紑
+											me.showFileImgByFileId(obj, "template_attachment", "template_attachment_id");
+										},
+									},
+								},
+							};
+							this.selectTabObj.tablefieldClick = tablefieldClick;
+						},
+
+						//闄勪欢棰勮
+						showFileImgByFileId(obj, filenamefield, fileidfield) {
 							let me = this;
+							var file_name = obj.row[filenamefield];
+							var file_id = obj.row[fileidfield];
+							if(file_id) {
+								var fileid = file_id;
+								let fileName = clone(file_name);
+								let index1 = fileName.lastIndexOf(".");
+								let index2 = fileName.length;
+								let suffix = fileName.substring(index1, index2).toLowerCase(); //鍚庣紑鍚�
+								if (suffix == ".png" || suffix == ".jpg" || suffix == ".pdf") {
+									var row = {
+										fileid: fileid,
+										filename: fileName,
+										dataname: "sys_dossier"
+									}
+						
+									var config = {
+										totab: false,
+										width: "1000px",
+										height: 800,
+										icon: "icon-product",
+										text: "闄勪欢棰勮",
+										id: "pdf_" + fileid,
+										url: "module/tool/page/popup_file_pdf.html",
+										data: row,
+										delta: {},
+										callback: function(obj, callback) {
+											if (callback) {
+												callback();
+											}
+										}
+									};
+									this.doPopupByPublic(config);
+								}
+								else {//鍙彲涓嬭浇锛屼笉鍙瑙�
+									// handleDownloadUrl(fileid,false);
+									handleDownload(fileid, "sys_dossier");
+								}
+							}
+						},
+						
+						//妯℃澘璇︽儏
+						onShowData(obj) {
+							var me = this;
+							
 							var config = {
-								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
-								width: "500px",
-								height: "300px",
+								totab: false,
 								icon: "icon-product",
-								text: "浜у搧绫诲瀷淇℃伅",
-								id: "product_type_edit",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
-								url: "module/md/page/product/page/product_type_edit.html",
-								data: {},
-								delta: {},
-								sceneCode: "add",//"refuseedit",//"approval", //"add"//"browse",
+								text: "璧勬枡璇︽儏",
+								id: "agreement_mould_edit" + obj.row.id,//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								// url: "module/agreement/page/agreement_mould_edit.html",
+								url: "module/md/page/product/page/batch_number_edit.html",
+								data: obj.row,
+								delta: {},//澶囨鐗堟湰,
+								sceneCode: "browse",//"refuseedit",//"approval", //"add"//"browse",
 								callback: function(obj, callback) {
-									me.type_treedata = obj.options
+									me.onQuery();
 									if (callback) {
 										callback();
 									}
@@ -187,13 +333,155 @@
 							me.doPopupByPublic(config);
 						},
 						
+						//鏂板妯℃澘
+						onAddData(config) {
+							var me = this;
+							var type = "";
+							var delta_ = {
+								nodeKey: this.filterObjBydefault.category_id,
+							}
+							if (this.nodeName) {
+								type = this.nodeName;
+							}
+							var config = {
+								totab: false,
+								icon: "icon-product",
+								text: "璧勬枡淇℃伅" + " - " + type,
+								id: "agreement_mould_edit",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								// url: "module/agreement/page/agreement_mould_edit.html",
+								url: "module/md/page/product/page/batch_number_edit.html",
+								data: {},
+								delta: delta_,
+								sceneCode: "add",//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+
+						//浣滃簾妯℃澘纭
+						cancelConfirm() {
+							let me = this;
+							data = me.selectTabObj.selectedrow;
+							Root.confirm('纭畾浣滃簾-' + data.name + '-鍚楋紵', '浣滃簾鎻愮ず', {
+							  confirmButtonText: '纭畾',
+							  cancelButtonText: '鍙栨秷',
+							  type: 'warning'
+							}).then(() => {
+								me.doCloseApproval();
+							}).catch(() => {
+								Root.message({
+									type: 'info',
+									message: '宸插彇娑堜綔搴�'
+								});
+							});
+						},
+						//浣滃簾妯℃澘
+						doCloseApproval() {
+							var me = this;
+							
+							let param = {
+								dataname: me.dataname,
+								data: {
+									"sys_dossier" :{
+										id: me.selectTabObj.selectedrow.id,
+										state_code: "Cancel",
+										state_name: "浣滃簾",
+									}
+								},
+							}
+							
+							Server.call("root/data/saveEntity", param, function(result) {
+								console.log(result);
+								Root.message({
+									type: 'success',
+									message: '宸蹭綔搴�'
+								}); 
+								me.onQuery();
+							});
+						},
+						
+						//鐐瑰嚮鑺傜偣
+						onNodeClick(obj) {
+							var data = obj.data, node = obj.node, el = obj.el;
+							var val = data.id;
+							console.log(obj);
+							if (data.parent_id) {
+								this.clickChildNode = true;
+								this.nodeName = data.name;
+							} else {
+								this.clickChildNode = false;
+							}
+							//old
+							if (data.children && data.children.length) {
+								// val = "";
+								data.children.map(r=>{
+									if (val == "") {
+										val = r.id;
+									}
+									else {
+										val += "','" + r.id;
+									}
+								})
+							}
+
+							// if (data.children && data.children.length) {
+							// 	// val = "";
+							// 	data.children.map(r=>{
+							// 		if (val == "") {
+							// 			val = r.id;
+							// 		}
+							// 		else {
+							// 			val += "','" + r.id;
+							// 		}
+							// 	})
+							// }
+							
+							// this.selectedrow = data;
+							this.filterObjBydefault.category_id = val;
+							this.activeTabName = "Open";
+							this.selectTabObj = this.tabspageobj[this.activeTabName];
+							this.onhandleClick();
+						},
+						
+						//澧炲姞鑺傜偣
+						onAddNode(obj) {
+							var data = obj.data, node = obj.node;
+							let me = this;
+							var config = {
+								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "500px",
+								height: "300px",
+								icon: "icon-product",
+								text: "璧勬枡鍒嗙被",
+								id: "category_edit",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/product/page/category_edit.html",
+								data: {},
+								delta: {},
+								sceneCode: "add",//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(options_obj, callback) {
+									me.type_treedata = options_obj.options;
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+						//缂栬緫鑺傜偣
 						onEditNode(obj) {
 							var data = obj.data, node = obj.node;
 							var me = this;
 							Root.showPopup({
-								url: "module/md/page/product/page/product_type_edit.html",
+								url: "module/md/page/product/page/category_edit.html",
 								width: 800,
 								height: 230,
+								text: "璧勬枡鍒嗙被",
 								data: data,
 								sceneCode: "edit",
 								callback: function(options_obj, callback) {
@@ -203,8 +491,10 @@
 									}
 								}
 							});
+							
 						},
 						
+						//鍒犻櫎鑺傜偣
 						onDelNode(obj) {
 							var data = obj.data, node = obj.node;
 							let me = this;
@@ -213,7 +503,7 @@
 							  cancelButtonText: '鍙栨秷',
 							  type: 'warning'
 							}).then(() => {
-								me.dodeldata(data, node, "agm_category");
+								me.dodeldata(data, node, "md_prod_category");
 							}).catch(() => {
 								Root.message({
 									type: 'info',
@@ -221,11 +511,9 @@
 								});
 							});
 						},
-						
 						dodeldata(row, node, tablename) {
 							if (row.id) {
 								let param = {
-									
 									dataname: tablename,
 									id: row.id
 								}
@@ -247,318 +535,9 @@
 							}
 						},
 						
-						node_isShow(data, isShow) {
-							if (this.$refs[data.id]) {
-								this.$refs[data.id].style.display = isShow ? '' : 'none';
-							}
-						},
-						
-						onNodeClick(obj) {
-							console.log(obj);
-							var data = obj.data, node = obj.node, el = obj.el;
-							var authorize_category_ids = "";
-							if (data.children && data.children.length) {
-								authorize_category_ids = "category_name='" + data.name + "'"
-							}
-							else {
-								authorize_category_ids = "product_name='" + data.name + "'"
-							}
-							
-							// this.filterObjBydefault.category_name = val
-							this.selectedrow = data;
-							this.setSelectedRowId = null;//Brooke
-							this.filterObj = {};
-							this.pagenum_p = 1;
-							
-							this.authorize_category_ids = authorize_category_ids;
-							this.getDataByNode();
-
-						},
-						
-						// onNodeClick(data, node, el) {
-						// 	var val = data.name;
-						// 	if (data.children && data.children.length) {
-						// 		val = "";
-						// 		data.children.map(r=>{
-						// 			if (val == "") {
-						// 				val = r.name;
-						// 			}
-						// 			else {
-						// 				val += "','" + r.name;
-						// 			}
-						// 		})
-						// 	}
-							
-						// 	// this.filterObjBydefault.category_name = val
-						// 	this.selectedrow = data;
-						// 	this.pagenum_p = 1;
-						// 	this.getDataByNode();
-						// },
-						
-						getDataByNode() {
+						rowClick(obj){
 							var me = this;
-							if (!me.selectedrow.id) {
-								return
-							}
-							
-							var filter_ = "";
-							
-							// filter_ = " product_line_name like '" + this.selectedrow.name + "' or authorize_category_name like '" + this.selectedrow.name + "'"
-							//filter_ = " code is not null and code <> '' and (authorize_category_id = '" + me.selectedrow.type_id + "' or authorize_category_name like '" + me.selectedrow.name + "')"
-							
-							filter_ =  this.authorize_category_ids;
-							var param_ = {
-								dataname: me.dataname_p,
-								filter: filter_,
-								orderby: "product_name",
-								page: {
-									pageno: me.pagenum_p,
-									pagesize: me.pagesize_p
-								},
-							}
-							
-							Server.call("root/data/getEntitySet", param_, function(result) {
-								if (result && result.data && result.data.entityset) {
-									var data_ = result.data.entityset;
-									me.tableData_p = data_;
-									me.total_p = result.data.page.recordcount;
-								}
-								else {
-									me.total_p = 0;
-								}
-							})
-						},
-						
-						getTableMeta() {
-							var me = this;
-							var param_ = {
-								dataname: this.dataname_p,
-								filter: "1<>1",
-								attachMeta: true,
-							}
-							
-							Server.call("root/data/getEntitySet", param_, function(result) {
-								if (result.meta && result.meta[me.dataname_p] && result.meta[me.dataname_p].fields) {
-									var metas = clone(result.meta[me.dataname_p].fields);
-									var filterFields_ = [];
-									var tableFields_ = [];
-									
-									metas.map(f=>{
-										f.isshow = "T";
-										//filter
-										if (f.isfilter) {
-											filterFields_.push(clone(f));
-										}
-										else {
-											var filter_f = clone(f);
-											filter_f.isshow = "F";
-											filterFields_.push(filter_f);
-										}
-										
-										if(f.field == "rule_code") {
-											f.isshow = "F";
-										}
-
-										tableFields_.push(clone(f));
-									})
-									if (!me.tableFields_p || (me.tableFields_p && me.tableFields_p.length == 0)) {
-										me.tableFields_p = clone(tableFields_);
-										me.filterFields = clone(filterFields_);
-
-										var filterObj_ = getDataByFields(me.filterObj, me.filterFields);
-										me.filterObj = clone(filterObj_);
-									}
-								}
-								//瀛楁鏁扮粍杞瓧娈祇bj锛岀洰鐨勪负浜嗙瓫閫夋椂鑾峰彇瀛楁灞炴��
-								me.fieldsToFieldsObj();
-
-								me.tableFieldClick();
-								me.tableDataAfter_p();
-							})
-						},
-
-						fieldsToFieldsObj() {
-							//瀛楁杞崲
-							var formFieldsObj_ = {};
-							var tableFieldsObj_ = {};
-							this.formFieldsObj_ = {};
-							this.tableFieldsObj = {};
-							var filterFieldsObj_ = {};
-							this.filterFieldsObj = {};
-
-							
-							this.formFields.map(f=>{
-								if (f.inputtypefilter) {
-									f.type = f.inputtypefilter;
-								}
-								formFieldsObj_[f.field] = f;
-							});
-							
-							this.formFieldsObj = clone(formFieldsObj_);
-							
-							if (this.tableFields && this.tableFields.length) {
-								var tableFields_ = TreeToArray(this.tableFields, "field");
-								tableFields_.map(f=>{
-									tableFieldsObj_[f.field] = f;
-								});
-								
-								this.tableFieldsObj = clone(tableFieldsObj_);
-							}
-							
-
-							this.filterFields.map(f=>{
-								if (f.inputtype == "date") {
-									f.type = "daterange";
-									f.filteroperator = "inScopeInclude";
-								}
-								if (f.inputtypefilter) {
-									f.type = f.inputtypefilter;
-								}
-								filterFieldsObj_[f.field] = f;
-							});
-							
-							this.filterFieldsObj = clone(filterFieldsObj_);
-						},
-
-						tableFieldClick() {
-							var me = this;
-						
-							//琛ㄦ牸瀛楁浜嬩欢璁剧疆
-							this.tablefieldClick = {
-								material_code: {//瀛楁浜嬩欢璁剧疆
-									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
-										notclick_val: "",//涓嶅彲鐐瑰嚮鐨勫��,1銆佹槸鏁扮粍["11","22"]锛�2銆佷互鈥�;鈥濆垎闅旂殑瀛楃涓�"111;222"
-										notclick_bindfield: [],//褰撹瀛楁鍊肩瓑浜庢寚瀹氬瓧娈靛�兼椂涓嶅彲鐐瑰嚮["filterfield": "111"]
-										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
-											var config = {
-												totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
-												width: "1100px",
-												height: "520px",
-												icon: "icon-product",
-												text: "鎺堟潈鑼冨洿" + (obj.row.material_code ? "-" + obj.row.material_code : ""),
-												id: "popup_sku_relation" + obj.row.id,//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
-												url: "module/md/page/product/page/popup_sku_relation.html",
-												data: obj.row,
-												delta: "",
-												filter: "product_id='"+obj.row.id+"'",
-												sceneCode: "browse",//"refuseedit",//"approval", //"add"//"browse",
-												callback: function(obj, callback) {
-													if (callback) {
-														callback();
-													}
-												}
-											};
-											me.doPopupByPublic(config);
-										},
-									},	
-								},
-							};
-						},
-						
-						tableDataAfter_p() {
-							var me = this;
-							if (this.tableFields_p.length > 0){
-								this.isRefresh_p = false;
-								this.$nextTick(function(){
-									this.isRefresh_p = true;
-									this.$nextTick(function(){
-										var el_list = [];
-										me.tableHeight_p = me.treeHeight;
-									})
-								})
-							}
-						},
-						
-						onQueryAfter() {
-							this.pagenum_p = 1;
-							this.tableData_p = [];
-							this.total_p = 0;
-						},
-						
-						getData_p(page) {
-							this.pagesize_p = page.pagesize;
-							this.pagenum_p = page.pagenum;
-							
-							this.filterQuery();
-						},
-
-						getRow(obj) {
-							this.setSelectedRowId = clone(obj.row.id);
-						},
-						
-						setRuleValue() {
-							let me = this;
-							let obj ={
-								row: {
-									id: me.setSelectedRowId,
-								},
-							} 
-
-							var config = {
-								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
-								width: "600px",
-								height: "500px",
-								icon: "icon-product",
-								text: "涓� " + obj.row.id + " 璁剧疆涓嬪崟鍊嶆暟",
-								id: "popup_setRuleValue",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
-								url: "module/md/page/product/page/popup_setRuleValue.html",
-								data: obj.row,
-								delta: "",
-								// filter: "id = '3018004'",
-								sceneCode: "edit",//"refuseedit",//"approval", //"add"//"browse",
-								callback: function(obj, callback) {
-									me.filterQuery();
-									if (callback) {
-										callback();
-									}
-								}
-							};
-							me.doPopupByPublic(config);
-						},
-
-						filterQuery() {
-							var me = this;
-							// var filter_ = " code is not null and code <> '' and (authorize_category_id = '" + me.selectedrow.type_id + "' or authorize_category_name like '" + me.selectedrow.name + "')"
-							var filter_ = " code is not null and code <> '' and " + me.authorize_category_ids;
-							
-							filter_ = me.getFilterData(filter_, me.filterObj, me.filterFieldsObj);
-							console.log(filter_);
-
-							var param_ = {
-								dataname: me.dataname_p,
-								filter: filter_,
-								orderby: "name",
-								page: {
-									pageno: me.pagenum_p,
-									pagesize: me.pagesize_p
-								},
-							}
-							
-							Server.call("root/data/getEntitySet", param_, function(result) {
-								if (result && result.data && result.data.entityset) {
-									var data_ = result.data.entityset;
-									me.tableData_p = data_;
-									me.total_p = result.data.page.recordcount;
-								}
-								else {
-									me.total_p = 0;
-								}
-							})
-						},
-
-						onInitFilter: function() {
-							this.filterObj = {};
-							this.filterQuery();
-						},
-
-						onDownload() {
-							let me = this;
-							let param = {
-								ioname:"export_md_prod_library_detail",
-								orderby: "",
-								token: Root.getToken()
-							}
-							window.top.vue.textdownloadForm(param);
+							me.selectTabObj.selectedrow = obj.row;
 						},
 					}
 				});
@@ -569,7 +548,7 @@
 			});
 		</script>
 		<style>
-			/*  鍦╲ue.js涓� v-cloak 杩欎釜鎸囦护鏄槻姝㈤〉闈㈠姞杞芥椂鍑虹幇 vuejs 鐨勫彉閲忓悕鑰岃璁$殑 */
+			/* 鍦╲ue.js涓� v-cloak 杩欎釜鎸囦护鏄槻姝㈤〉闈㈠姞杞芥椂鍑虹幇 vuejs 鐨勫彉閲忓悕鑰岃璁$殑 */
 			[v-cloak] {
 				display: none !important;
 			}
@@ -577,9 +556,6 @@
 			    overflow: hidden;
 			    position: relative;
 			    padding-left: 20px;
-			}
-			.nodeLabel {
-			    max-width: 220px !important;
 			}
 		</style>
 		
@@ -590,126 +566,83 @@
 			<div id="page_root">
 				<div class="topbar">
 					<span>{{title}}</span>
-					<div style="float: right; margin-right: 10px">
-						<el-button v-show="cbuttons_r.export" @click="onDownload":icon="buttonsconfig.export.icon">{{buttonsconfig.export.name}}</el-button>
+
+					<div style="float: right; margin-right: 18px;">
+						<el-button v-show="cbuttons_r.Add" :disabled="!clickChildNode" @click="addData" :icon="buttonsconfig.add.icon">{{buttonsconfig.add.name}}</el-button>
+						<!-- <el-button v-show="activeTabName == 'Open'" :disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id && selectTabObj.selectedrow.state_code == 'Open')" type="danger" @click="cancelConfirm">浣� 搴�</el-button> -->
 					</div>
 				</div>
 				
 				<div class="h_dialog__body">
-					<div :style="{position: 'absolute', left: '10px', width: '320px', top: '40px', bottom: '10px', border: '1px solid #ccc'}">
+					<div style="position: absolute;left: 10px; top:45px;width: 320px; bottom: 10px;border: 1px solid #ccc;">
 						<div style="height: 32px;line-height: 32px;border-bottom: 1px solid #ccc ;">
-							<span style="font-size: 14px;margin-left: 20px;">{{tree_title}}</span>
+							<span style="font-size: 14px;margin-left: 20px;">璧勬枡鍒嗙被</span>
 						</div>
-						<div :style="{padding: '10px 0', height: treeHeight - 55 + 'px', overflow: 'auto'}">
-							<h-tree
-							v-if="isRefresh"
-							:tree-data="treeData"
+						
+						<h-tree
+							v-if="type_treedata && type_treedata.length"
+							:tree-data="type_treedata"
 							:tree-txt-formatter="treeTxtFormatter"
-							:currentnodekey="currentnodekey"
 							:is-readonly="isTreeReadonly"
+							:currentnodekey="currentnodekey"
+							:maxlevel = "maxlevel"
 							
 							@node-click="onNodeClick"
 							@add-node="onAddNode"
 							@edit-node="onEditNode"
 							@del-node="onDelNode"
 							>
-							</h-tree>
-							
-							<!-- <el-tree ref="hierTree" class="filter-tree" node-key="id" :indent="24" 
-							 default-expand-all
-							 highlight-current 
-							 :data="treeData" 
-							 show-checkbox
-							 :expand-on-click-node="true" 
-							 @node-click="onNodeClick"
-							 >
-								<span class="custom-tree-node z_menu_tree" slot-scope="{ node, data, itm }"
-								 @mouseenter="node_isShow(data, true)"
-								 @mouseleave="node_isShow(data, false)"
-								>
-									<span>
-										<div class="nodeLabel nodeLabel_l" style="height: 32px; line-height: 32px;">
-										</div>
-										<div class="nodeLabel z_left_menu_tree_txt">
-											<i v-if="!node.isLeaf" :class="!node.expanded ? 'el-icon-plus':'el-icon-minus'" style="font-size: 10px; margin-right: 10px; border: 1px solid #a7a9a9; color: #a7a9a9;"></i>
-										</div>
-										<div class="nodeLabel z_left_menu_tree_txt">
-											<span>{{ data.name }}</span>
-											<el-badge :ref="'dadgeid_' + data.id" v-show="data.isBadge ? true : false" is-dot class="item">
-											</el-badge>
-										</div>
-									</span>
-									<span>
-										<div :ref="data.id" v-show="false" class="nodeLabel" style="width: 128px;max-width: 128px;">
-											<el-button v-if="!data.parent_id" type="text" 
-											@click.stop="addNode(data,node)" class="z_node_button" icon="el-icon-circle-plus-outline">
-											</el-button>
-											<el-button type="text" 
-											@click.stop="editNode(data,node)" class="z_node_button" icon="el-icon-edit">
-											</el-button>
-											<el-button v-if="!(data.children && data.children.length)" type="text" 
-											@click.stop="delNode(data,node)" class="z_node_button" icon="el-icon-delete">
-											</el-button>
-										</div>
-										
-										<div class="nodeLabel" style="margin-right: 30px;">
-											<span v-if="!node.isLeaf">{{data.children.length}}</span>
-										</div>
-									</span>
-								</span>
-							</el-tree> -->
-						</div>
+						</h-tree>
 					</div>
-					<div :style="{position: 'absolute', left: '340px', right: '10px', top: '40px', bottom: '10px', border: '1px solid #ccc'}">
+					<div style="position: absolute;left: 340px; top:45px; right: 10px; bottom: 10px;border: 1px solid #ccc;">
 						<div>
-							<div style="height: 32px; border-bottom: 1px solid #aaa;">
-								<div class="table_title" style="float: left;">
-									<span>浜у搧鍒楄〃</span>
-								</div>
-								<div style=" text-align: right; ">
-									<el-button v-show="cbuttons_r.RuleValue" :disabled="!(setSelectedRowId)" @click="setRuleValue" >璁剧疆涓嬪崟鍊嶆暟</el-button>
-								</div>
+							<el-tabs v-model="activeTabName" @tab-click="handleClick">
+								<el-tab-pane v-for="(tab, k) in tabs" :label="tab.name" :name="tab.code" :key="k"></el-tab-pane>
+							</el-tabs>
+						</div>
+						<!-- <div class="topbar-line">
+							<div class="query-bar">
+								<h-form-filter v-if="selectTabObj.filterFields" ref="form1" 
+									:form-attr="filterAttr" 
+									:table-fields="selectTabObj.filterFields" 
+									:form-data="selectTabObj.filterObj" 
+									:table-field-click="selectTabObj.filterfieldClick"
+									
+									v-on:on-query="onQuery"
+									v-on:on-init-query="onInitFilter"
+									v-on:on-edit-query="onEditFilter"
+									>
+								</h-form-filter>
 							</div>
-
-							<div class="topbar-line">
-								<!-- <div class="query-icon">
-									<i class="iconfont icon-query"></i>
-								</div> -->
-								<div class="query-bar">
-									<!-- <h-form-filter 
-										ref="form1" 
-										:form-attr="filterAttr"
-										:table-fields="filterFields" 
-										:form-data="filterObj" 
-										:table-field-click="filterfieldClick"
-										
-										v-on:on-query="filterQuery"
-										v-on:on-init-query="onInitFilter"
-										>
-									</h-form-filter> -->
-								</div>
-							</div>
-
+						</div> -->
+									
+						<div class="h_dialog__body">
 							<h-table
-								v-if="isRefresh_p"
-								ref="table_p"
-								:table-fields="tableFields_p" 
-								:table-data="tableData_p" 
-								:pagesize="pagesize_p"
-								:pagenum="pagenum_p"
-								:total="total_p"
-								:table-height="tableHeight_p - 132"
+								v-if="isRefresh && selectTabObj.tableFields"
+								ref="table1"
+								:table-fields="selectTabObj.tableFields" 
+								:table-data="selectTabObj.tableData" 
+								:is-edit-table-data="selectTabObj.isEditTableData"
+								:pagesize="selectTabObj.pagesize"
+								:pagenum="selectTabObj.pagenum"
+								:total="selectTabObj.total"
+								:table-height="selectTabObj.tableHeight - 10"
+								:table-field-click="selectTabObj.tablefieldClick"
+								:is-show-index="selectTabObj.isShowIndex"
+								:tableloading="tableloading"
+								:isdraggableorder="false"
 								:is-highlight-row="true"
-								:table-field-click="tablefieldClick"
+								:isfilterfield="false"
+								:table-buttons-click="selectTabObj.tablebuttonClick"
 								
-								v-on:get-data="getData_p"
-								v-on:row-click="getRow"
+								v-on:get-data="getData"
+								v-on:edit-data="editData"
+								v-on:row-click="rowClick"
+								v-on:order-fields="orderTableFields"
 							>
 							</h-table>
-							
 						</div>
 					</div>
-					
 				</div>
 			</div>
 		</div>

--
Gitblit v1.8.0