<!doctype html>
<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>
		
		<script type="text/javascript">
			var pageVue = null;
			function loadJsCss(callback) {
				var jscss_urls = [
					{id: "css_m1", type: "css", url: "root/css/tree.css"},
				];
				window.top.initJsCss(document, jscss_urls, callback);
			};
			
			function initVue() {
				new TreeVue({
					el: "#vbody",
					data: {
						title: "商务架构",
						dataname: "md_position_business",
						treeTxtFormatter: "{name}【{md_position_employee__remark}】",
						maxlevel: 6,
						filterObjBydefault: {
							// "md_position.category_code": "Business"
						},
						filterTxt:"",
						isTreeReadonly: false,
						
						dataRequest: [
							{
								name: "md_org", // 公司
								dataname: "md_org_master",
								// url: "root/data/newEntity",
								// paramsobj: {dataname: "md_org_data", type_code:"Distributor"},
								isnotoption: false, //true:不是选项
								code:"id",//是下拉选项时设置
								label:"short_name",//是下拉选项时设置
								filter: "category_code='Master'"
								
							},
							{
								name: "md_bu", // BU
								dataname: "md_bu",
								// url: "root/data/newEntity",
								// paramsobj: {dataname: "md_org_data", type_code:"Distributor"},
								isnotoption: false, //true:不是选项
								code:"id",//是下拉选项时设置
								label:"name",//是下拉选项时设置
								// orderby: "index_no",
								filter: ""
							},
							
							{
								name: "md_bu_org", // 公司+BU
								dataname: "md_bu_org",
								// url: "root/data/newEntity",
								// paramsobj: {dataname: "md_org_data", type_code:"Distributor"},
								isnotoption: true, //true:不是选项
								orderby: "company_id, bu_id",
								filter: "state_code='Open'"
							},
						],
						
						org_bu_list: [], // 公司+BU的数组
						dataRequestObj:{},
						
						treeFilter: {
							orgid: "",
							buid: "",
						},
						optionsOrg: [],
						optionsBU: [],
						
						
						activeName: "basicInformation",
						// 岗位员工
						dataname_q:'md_position_employee',
						tableFields_q: [],
						tableData_q: [],
						tablebuttonClick_q: [],
						pagesize_q: 10,
						pagenum_q: 1,
						total_q: 0,
						filtersobj_q: {},
						filterFieldsObj_q: {},
						
						formAttr: {
							istitle: false,
							title: "表单名称",
							columnnumber: 1,
							labelwidth: "140px",
							labelposition: "left",//"left",// right//top
							size: "mini",
							border: "10px solid #c6c6c600"
						},
						formFields: [],
						formData: {},
						formfieldClick:{},
						
						
						// 辖区医院
						dataname_p: "md_position_hospital",
						tablebuttonClick_p: [],
						pagesize_p: 10,
						pagenum_p: 1,
						total_p: 0,
						tableFields_p: [],
						tableData_p: [],
						isRefresh_p: true,
						tableHeight_p: 100,
						
						tablefieldClick: {},
						filtersobj:{},  
						filterFieldsObj_p: {},
						currentnodekey: "",
						defaultExpandedKeys: [],
						filter_node_id: "1<>1",
						cbuttons_r: {},
					},

					created() {
						
					},
					
					mounted() {
						var me = this;
						if (window.top.tab.selected.option.page_id) {
							getPageByPageId(window.top.tab.selected.option.page_id, function(result){
								me.cbuttons_r = result.buttons_r;
								//预加载数据
								if (me.dataRequest && me.dataRequest.length) {
									var result = {};
									me.loadRequestData(me.dataRequest, result, function(data) {
										me.dataRequestObj = data;
										//预加载数据后给哪些字段设置options或formatterjson
										if (me.dataRequestObj.md_org) {
											var optionOrg_all = {code: "", value: "全部公司"};
											var optionsOrg_ = clone(me.dataRequestObj.md_org);
											optionsOrg_.unshift(optionOrg_all);
											me.optionsOrg = optionsOrg_;
										}
										if (me.dataRequestObj.md_bu) {
											var optionBU_all = {code: "", value: "全部BU"};
											var optionsBU_ = clone(me.dataRequestObj.md_bu);
											optionsBU_.unshift(optionBU_all);
											me.optionsBU = optionsBU_;
										}
										
										if (me.dataRequestObj.md_bu_org) {
											// org_bu_list: [], // 公司+BU的数组 md_bu_org
											var org_bu_list_ = [];
											me.dataRequestObj.md_bu_org.map(ob=>{
												var r_ = {
													id: ob.company_id + ob.bu_id,
													parent_id: ob.company_id,
													company_id: ob.company_id,
													bu_id: ob.bu_id,
													name: ob.bu_name
												}
												org_bu_list_.push(r_);
											})
											me.org_bu_list = clone(org_bu_list_);
										}
										
										//获取数据
										me.initData();
										
										// me.getFormMeta();
										me.tablebuttonClickQ();
										me.getTableMetaByUser();
										me.tablebuttonClickP();
										me.getTableMetaByHost();
										
										me.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
											hideLoading();
										});
									});
								}
								else {
									//获取数据
									me.initData();
									
									// me.getFormMeta();
									me.tablebuttonClickQ();
									me.getTableMetaByUser();
									me.tablebuttonClickP();
									me.getTableMetaByHost();
									
									me.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
										hideLoading();
									});
								}
							})
						}
					},
					
					methods:{
						initData() {
							var me = this;
							
							this.onQuery(function(result, callback) {//查询后的回调,用于获取字段的
								// me.dataRequestObj.md_org.map(org=>{
								// 	org.isnotnode_edit = true; // 节点不可增删改
								// 	if (me.treeFilter.orgid) {
								// 		if (org.id == me.treeFilter.orgid) {
								// 			me.initTreeData.unshift(org)
								// 		}
								// 	}
								// 	else {
								// 		me.initTreeData.unshift(org)
								// 	}
								// })
								// me.org_bu_list.map(ob=>{
								// 	ob.isnot_nodeedit = true; // 节点不可改
								// 	ob.isnot_nodedel = true; // 节点不可删
								// 	if (me.treeFilter.orgid && me.treeFilter.buid) {
								// 		if (ob.company_id == me.treeFilter.orgid && ob.bu_id == me.treeFilter.buid) {
								// 			me.initTreeData.unshift(ob)
								// 		}
								// 	}
								// 	else if (me.treeFilter.buid) {
								// 		if (ob.bu_id == me.treeFilter.buid) {
								// 			me.initTreeData.unshift(ob)
								// 		}
								// 	}
								// 	else {
								// 		me.initTreeData.unshift(ob)
								// 	}
								// })
								me.initTreeData.map(nodedata=>{
									if (!nodedata.parent_id) {
										nodedata.parent_id = nodedata.company_id + nodedata.bu_id
									}
									
									if (nodedata.isbottom) { // 判断是否存在最底标识,有则不能有添加按键
										
									}
									else {
										nodedata.ishnodeadd = true;
									}
								})
								
								let initTreeData_ = ArrayToTree(clone(me.initTreeData), "name", "parent_id"); // ishnodeadd
								me.treeData = initTreeData_;
								
								if (callback) {
									callback();
								}
								
								if(me.treeData[0] && !me.currentnodekey) {
									const leafNode = me.findLeafNode(me.treeData[0]);
									let objInit = {
										data: leafNode,
										node: {},
										el: {},
									};
									me.currentnodekey = leafNode.id;
									me.onNodeClick(objInit);
								}
							});
                         
						},
						
						onTreeFilterChange() {
							var me = this;
							this.filterTxt = " 1=1 ";
							// 获取过滤公司值
							if (this.treeFilter.orgid == "") {
								var orgid_ = "md_position.company_id in (";
								this.optionsOrg.map(oo=>{
									orgid_ += "'" + oo.code + "',"
								})
								orgid_ = orgid_.substring(0, orgid_.length - 1);
								orgid_ += ")";
								this.filterTxt = orgid_;
							}
							else {
								this.filterTxt = "md_position.company_id='" + this.treeFilter.orgid + "'";
							}
							// 获取过滤BU值
							if (this.treeFilter.buid == "") {
								var buid_ = "md_position.bu_id in (";
								this.optionsBU.map(ob=>{
									buid_ += "'" + ob.code + "',"
								})
								buid_ = buid_.substring(0, buid_.length - 1);
								buid_ += ")";
								this.filterTxt += " and " + buid_;
							}
							else {
								this.filterTxt += " and md_position.bu_id='" + this.treeFilter.buid + "'";
							}
							
							// 获取岗位树
							this.initData();
						},

						findLeafNode(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;
							let me = this;
							var config = {
								totab: false, //true: 以Tab导航的方式打开
								width: "500px",
								height: "500px",
								icon: "icon-product",
								text: "岗位节点信息",
								id: "popup_position_edit",//totab: true时需设置,用于判断是否已打开此页面
								url: "module/md/page/popup/page/popup_position_edit.html",
								data: {},
								delta: {treedata: me.treeData, category_code: "Business"},
								sceneCode: "add",//"refuseedit",//"approval", //"add"//"browse",
								callback: function(popupobj, callback) {
									// 获取岗位树
									me.initData();
									if (callback) {
										callback();
									}
								}
							};
							me.doPopupByPublic(config);
						},
						
						onEditNode(obj) {
							var data = obj.data, node = obj.node;
							var me = this;
							var config = {
								totab: false, //true: 以Tab导航的方式打开
								width: "500px",
								height: "500px",
								icon: "icon-product",
								text: "岗位节点信息",
								id: "popup_position_edit",//totab: true时需设置,用于判断是否已打开此页面
								url: "module/md/page/popup/page/popup_position_edit.html",
								data: data,
								delta: {treedata: me.treeData, category_code: "Business"},
								sceneCode: "edit",//"refuseedit",//"approval", //"add"//"browse",
								callback: function(popupobj, callback) {
									// 获取岗位树
									me.initData();
									if (callback) {
										callback();
									}
								}
							};
							me.doPopupByPublic(config);
						},
						
						onDelNode(obj) {
							var data = obj.data, node = obj.node;
							let me = this;
							Root.confirm('确定删除-' + data.name + '-吗?', '删除提示', {
							  confirmButtonText: '删除',
							  cancelButtonText: '取消',
							  type: 'warning'
							}).then(() => {
								me.dodeldata(data, node, me.dataname);
							}).catch(() => {
								Root.message({
									type: 'info',
									message: '已取消删除'
								});
							});
						},
						
						dodeldata(row, node, tablename) {
							if (row.id) {
								let param = {
									dataname: tablename,
									id: row.id
								}
								
								Server.call("root/data/deleteEntity", param, function(result) {
									console.log(result);
									if (result && result.data) {
										const parent = node.parent;
										const children = parent.data.children || parent.data;
										const index = children.findIndex(d => d.id === row.id);
										children.splice(index, 1);
										
										Root.message({
											type: 'success',
											message: '删除成功!'
										});
									}
								});
							}
						},
						
						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 filter_node_id = "";
						    filter_node_id = "position_id='" + data.id + "'";
							
							// this.filterObjBydefault.category_name = val
							this.defaultExpandedKeys = [data.id];
							this.currentnodekey = data.id;
							this.selectedrow = data;
							this.filterObj = {};
							this.filtersobj_q = {};
							this.filtersobj = {};
							this.pagenum_p = 1;
							
							this.filter_node_id = filter_node_id;
							this.getDataByNode();
							
						},
						
						getDataByNode() {
							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.filter_node_id;
							// 获取人员
							this.getUserBypositionId();
							// 获取辖区医院
							this.getHospitalBypositionId();
							
						},

						// 获取人员
						getUserBypositionId() {
							var me = this;
							var filter_ = this.filter_node_id;
							filter_ = me.getFilterData(filter_, me.filtersobj_q, me.filterFieldsObj_q, true, {}, "");
							
							var param_q = {
								dataname: me.dataname_q, 
								filter: filter_,
								page: {
									pageno: me.pagenum_q,
									pagesize: me.pagesize_q
								},
							}
							me.tableData_q = [];
							Server.call("root/data/getEntitySet", param_q, function(result) {
								if (result && result.data && result.data.entityset) {
									var data_ = result.data.entityset;
									me.tableData_q = data_;
									me.total_q = result.data.page.recordcount;
								}
								else {
									me.total_q = 0;
								}
							})
						},
						
						refreshHierarchy() {
							var me = this;
							var param = {}
							// Server.call("root/org/createPositionSpeedTable", param, function(result) {
								me.onTreeFilterChange()
							// })
						},
						
						getHospitalBypositionId() {
							var me = this;
							var filter_ = this.filter_node_id;
							if (filter_) {
								filter_ = "md_position_hospital." + filter_
							}
							filter_ = me.getFilterData(filter_, me.filtersobj, me.filterFieldsObj_p, true, {}, "");
							var param_ = {
								dataname: me.dataname_p,
								filter: filter_,
								// orderby: "name",
								page: {
									pageno: me.pagenum_p,
									pagesize: me.pagesize_p
								},
							}
							me.tableData_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;
								}
							})
						},
						
						getTableMetaByUser() {
							var me = this;
							var param_ = {
								dataname: this.dataname_q,
								filter: "1<>1",
								attachMeta: true,
							}
							
							Server.call("root/data/getEntitySet", param_, function(result) {
								if (result.meta && result.meta[me.dataname_q] && result.meta[me.dataname_q].fields) {
									var metas = clone(result.meta[me.dataname_q].fields);
									
									var filterFields_ = [];
									var filterFieldsObj_ = {};
									var tableFields_ = [];
									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.tableFields_q.length == 0) {
										me.tableFields_q = clone(tableFields_);
									}
									
									filterFields_.map(f=>{
										if (f.inputtype == "date") {
											f.type = "daterange";
											f.filteroperator = "inScopeInclude";
										}
										if (f.inputtypefilter) {
											f.type = f.inputtypefilter;
										}
										filterFieldsObj_[f.field] = f;
									});
									
									me.filterFieldsObj_q = filterFieldsObj_;
								}
								
							})
						},
						
						getTableMetaByHost() {
							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 filterFieldsObj_ = {};
									var tableFields_ = [];
									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.tableFields_p || (me.tableFields_p && me.tableFields_p.length == 0)) {
										me.tableFields_p = clone(tableFields_);
									}
									
									filterFields_.map(f=>{
										if (f.inputtype == "date") {
											f.type = "daterange";
											f.filteroperator = "inScopeInclude";
										}
										if (f.inputtypefilter) {
											f.type = f.inputtypefilter;
										}
										filterFieldsObj_[f.field] = f;
									});
									
									me.filterFieldsObj_p = filterFieldsObj_;
									
								}
								
								//字段数组转字段obj,目的为了筛选时获取字段属性
								me.tableFieldClick();
							})
						},
						
						// 设置表格工具栏按键事件
						tablebuttonClickQ() { // 员工列表按键
							var me = this;
							var tablebuttonClick = [
								{
									isbuttonshow: true, // me.cbuttons_r.add, //type: "",
									code: "add", isselected: false, classname:"",
									onclick: function(obj) {
										me.openEmployeeByOrgBU();
									}
								},
								{
									isbuttonshow: true, // me.cbuttons_r.delete, 
									type: "danger",
									code: "delete", isselected: true, classname:"",
									onclick: function(obj) {
										me.deldataEmployeeByPosition(obj.selectedList[0], function() {
											// 获取人员
											me.getUserBypositionId();
											// 刷新架构
											me.refreshHierarchy(function(){
												// me.onTreeFilterChange()
											})
										});
									}
								}
							]
							this.tablebuttonClick_q = tablebuttonClick;
						},
						
						tablebuttonClickP() { // 医院列表按键
							var me = this;
							var tablebuttonClick = [
								{
									isbuttonshow: me.cbuttons_r.add, //type: "",
									code: "add", isselected: false, classname:"",
									onclick: function(obj) {
										me.openHospital("add", obj, function() {
											// 获取辖区医院
											me.getHospitalBypositionId();
										});
									}
								},
								{
									isbuttonshow: me.cbuttons_r.delete, type: "danger",
									code: "delete", isselected: true, classname:"",
									onclick: function(obj) {
										me.deldataHospitalByPosition(obj.selectedList[0], function() {
											// 获取辖区医院
											me.getHospitalBypositionId();
										});
									}
								}
							]
							this.tablebuttonClick_p = tablebuttonClick;
						},

						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: 以Tab导航的方式打开
												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);
										},
									},	
								},
							};
						},
						
						openEmployeeByOrgBU() {
							var me = this;
							var config = {
								totab: false, //true: 以Tab导航的方式打开
								width: "800px",
								height: "520px",
								icon: "icon-product",
								text: "选择员工",
								id: "popup_employee",//totab: true时需设置,用于判断是否已打开此页面
								url: "module/md/page/popup/page/popup_employee.html",
								data: {},
								delta: "",
								filter: "",
								sceneCode: "add", //"refuseedit",//"approval", //"add"//"browse",
								callback: function(popupobj, popupcallback) {
									let formData_ = clone(me.formData);
									var entity = {
										company_id: me.selectedrow.company_id,
										bu_id: me.selectedrow.bu_id,
										employee_id: popupobj.row.id,
										position_id: me.selectedrow.id,
										remark: popupobj.row.name,
									}
									let param = {
										dataname: "md_position_employee",
										data: {},
									}
									param.data["md_position_employee"] = entity;
									
									Server.call("root/data/saveEntity", param, function(result) {
										console.log(result);
										if (result.success) {
											Root.message({
												type: 'success',
												message: '保存成功'
											}); 
											// 获取人员
											me.getUserBypositionId();
											// 刷新架构
											me.refreshHierarchy(function(){
												// me.onTreeFilterChange()
											})
										}
									});
									if (popupcallback) {
										popupcallback();
									}
								}
							};
							me.doPopupByPublic(config);
						},
						
						openHospital(sceneCode, obj, callback) {
							var me = this;
							var data_ = {};
							var config = {
								totab: false, //true: 以Tab导航的方式打开
								width: "800px",
								height: "520px",
								icon: "icon-product",
								text: "医院选择",
								id: "popup_hospital_target",//totab: true时需设置,用于判断是否已打开此页面
								url: "module/md/page/popup/page/popup_hospital_target.html",
								data: data_,
								delta: {},
								filter: "",
								sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse",
								callback: function(popupobj, popupcallback) {
									let formData_ = clone(me.formData);
									var entity = {
										company_id: me.selectedrow.company_id,
										bu_id: me.selectedrow.bu_id,
										hospital_id: popupobj.row.hospital_id,
										position_id: me.selectedrow.id
									}
									let param = {
										dataname: "md_position_hospital",
										data: {},
									}
									param.data["md_position_hospital"] = entity;
									
									Server.call("root/data/saveEntity", param, function(result) {
										console.log(result);
										if (result.success) {
											Root.message({
												type: 'success',
												message: '保存成功'
											}); 
											callback()
										}
									});
									if (popupcallback) {
										popupcallback();
									}
								}
							};
							me.doPopupByPublic(config);
						},
						onQueryAfter() {
							this.pagenum_p = 1;
							this.tableData_p = [];
							this.total_p = 0;
						},
						getData_q(page) {
							this.pagesize_q = page.pagesize;
							this.pagenum_q = page.pagenum;
							if (page.filtersobj) {
								this.filtersobj_q = page.filtersobj;
							}
							this.getUserBypositionId();
						},
						getData_p(page) {
							this.pagesize_p = page.pagesize;
							this.pagenum_p = page.pagenum;
							if (page.filtersobj) {
								this.filtersobj = page.filtersobj;
							}
							this.getHospitalBypositionId();
						},
						
						openPositionEmployeeByNode(sceneCode, obj, callback) {
							var me = this;
							var data_ = {};
							if (sceneCode == "edit") {
								data_ = obj.selectedList[0]
							}
							var config = {
								totab: false, //true: 以Tab导航的方式打开
								width: "800px",
								height: "320px",
								icon: "icon-product",
								text: "岗位员工",
								id: "popup_position_employee",//totab: true时需设置,用于判断是否已打开此页面
								url: "module/md/page/popup/page/popup_position_employee.html",
								data: data_,
								delta: {positiondata: me.selectedrow},
								filter: "",
								sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse",
								callback: function(popupobj, popupcallback) {
									callback();
									if (popupcallback) {
										popupcallback();
									}
								}
							};
							me.doPopupByPublic(config);
						},
						
						openPositionHospitalByNode(sceneCode, obj, callback) {
							var me = this;
							var data_ = {};
							if (sceneCode == "edit") {
								data_ = obj.selectedList[0]
							}
							var config = {
								totab: false, //true: 以Tab导航的方式打开
								width: "800px",
								height: "320px",
								icon: "icon-product",
								text: "辖区医院",
								id: "popup_position_hospital",//totab: true时需设置,用于判断是否已打开此页面
								url: "module/md/page/popup/page/popup_position_hospital.html",
								data: data_,
								delta: {positiondata: me.selectedrow},
								filter: "",
								sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse",
								callback: function(popupobj, popupcallback) {
									callback();
									if (popupcallback) {
										popupcallback();
									}
								}
							};
							me.doPopupByPublic(config);
						},

						onAddData(dataname, rowdata, callback) {
							var me = this;
							let param = {
								dataname: dataname,
								operator: "save",
								data: {},
							}
							param.data[dataname] = rowdata;
							
							Server.call("root/data/saveEntity", param, function(result) {
								console.log(result);
								if (result.success) {
									if(me.isCommit){
										me.isCommit = false;
										Root.message({
											type: 'success',
											message: '提交成功'
										}); 
										callback();
									}
									else {
										Root.message({
											type: 'success',
											message: '保存成功'
										}); 
										callback();
									}
								}
							});
						},
						
						deldataEmployeeByPosition(row, callback) {
							let me = this;
							// 需要考虑批量删除的接口
							Root.confirm('确定删除岗位员工-' + row.md_employee__name + '-吗?', '删除提示', {
							  confirmButtonText: '删除',
							  cancelButtonText: '取消',
							  type: 'warning'
							}).then(() => {
								if (row.id) {
									let param = {
										dataname: me.dataname_q,
										id: row.id
									}
									Server.call("root/data/deleteEntity", param, function(result) {
										console.log(result);
										if (result && result.data) {
											Root.message({
												type: 'success',
												message: '删除成功!'
											});
											callback();
										}
									});
								}
							}).catch(() => {
								Root.message({
									type: 'info',
									message: '已取消删除'
								});
							});
						},
						
						deldataHospitalByPosition(row, callback) {
							let me = this;
							// 需要考虑批量删除的接口
							Root.confirm('确定删除辖区医院-' + row.md_hospital__name + '-吗?', '删除提示', {
							  confirmButtonText: '删除',
							  cancelButtonText: '取消',
							  type: 'warning'
							}).then(() => {
								if (row.id) {
									let param = {
										dataname: me.dataname_p,
										id: row.id
									}
									Server.call("root/data/deleteEntity", param, function(result) {
										console.log(result);
										if (result && result.data) {
											Root.message({
												type: 'success',
												message: '删除成功!'
											});
											callback();
										}
									});
								}
							}).catch(() => {
								Root.message({
									type: 'info',
									message: '已取消删除'
								});
							});
						},
					
						onInitFilter: function() {
							this.filterObj = {};
							this.filterQuery();
						},

						onDownload() {
							let me = this;
							// var filter_ = "code is not null and code <> '' and " + me.filter_node_id; 标识二:暂时屏蔽
							// filter_ = this.getFilterData(filter_, me.filtersobj, me.filterFieldsObj);
							var filter_ = "1 = 1";
							filter_ = this.getFilterData(filter_);
							let param = {
								sign: "md_position",
								filename: '销售架构信息导出' + String(new Date().getTime()),
								filter: filter_,
								ioname:"export_md_position",
								orderby: "",
								token: Root.getToken()
							}
							window.top.vue.textdownloadForm(param);
						},
						
						onShowVER() {
							var me = this;
							var config = {
								totab: true, //true: 以Tab导航的方式打开
								width: "800px",
								height: "320px",
								icon: "icon-product",
								text: "版本架构",
								id: "hierarchyByVER_list_old",//totab: true时需设置,用于判断是否已打开此页面
								url: "module/md/page/framework/page/hierarchyByVER_list_old.html",
								data: {},
								delta: {},
								filter: "",
								sceneCode: "",//"refuseedit",//"approval", //"add"//"browse",
								callback: function(popupobj, popupcallback) {
									if (popupcallback) {
										popupcallback();
									}
								}
							};
							me.doPopupByPublic(config);
						}
						
						
						
					}
				});
			};
			
			loadJsCss(function () {
				initVue();
			});
		</script>
		<style>
			/*  在vue.js中 v-cloak 这个指令是防止页面加载时出现 vuejs 的变量名而设计的 */
			[v-cloak] {
				display: none !important;
			}
			.el-tabs__nav-scroll {
			    overflow: hidden;
			    position: relative;
			    padding-left: 20px;
			}
			.nodeLabel {
			    max-width: 250px !important;
			}
		</style>
		
	</head>
	
	<body style="margin: 0px;">
		<div v-cloak id="vbody">
			<div id="page_root">
				<div class="topbar">
					<span>{{title}}</span>
					<div :class="page_title == 'right' ? 'h_page_button_left' : 'h_page_button_right'">
						<el-button-group style="margin-left: 3px;">
							<el-button v-show="cbuttons_r.onShowVER" @click="onShowVER":icon="buttonsconfig.export.icon">版本</el-button>
							<el-button v-show="cbuttons_r.export" type="primary" @click="onDownload" :icon="buttonsconfig.export.icon">{{buttonsconfig.export.name}}</el-button>
						</el-button-group>
					</div>
				</div>
				
				<div class="h_dialog__body">
					<div :style="{position: 'absolute', left: '16px', width: '40%', top: '40px', bottom: '10px', border: '1px solid #E4E7ED'}">
						<div style="height: 32px;line-height: 32px;border-bottom: 1px solid #E4E7ED ;">
							<span style="font-size: 14px;margin-left: 20px;">商务架构</span>
							<!-- <div style="padding: 0.5px 20px;box-sizing: border-box; width: 100%;border-bottom: 1px solid #e4e7ed;"> -->
							<!-- <div style="margin: 0.5px 12px;">  
								<el-select v-model="treeFilter.orgid" placeholder="选择公司" style="width: 49%;" @change="onTreeFilterChange()">
									<el-option
									  v-for="item in optionsOrg"
									  :key="item.code"
									  :label="item.value"
									  :value="item.code">
									</el-option>
								</el-select>
								<el-select v-model="treeFilter.buid" placeholder="选择BU" style="width: 49%;float: right;" @change="onTreeFilterChange()">
									<el-option
									  v-for="item in optionsBU"
									  :key="item.code"
									  :label="item.value"
									  :value="item.code">
									</el-option>
								</el-select>
							</div> -->
						</div>
			

						<!-- <div style=" position: relative; height: 52px; box-sizing: border-box;"> -->
						<!-- <div style="height: 32px;line-height: 32px;border-bottom: 1px solid #ccc ;">
							<div style="margin: 0.5px 20px;">  

						
							</div>
						</div> -->
						<div :style="{padding: '5px 0', height: treeHeight - 10  + 'px', overflow: 'auto'}">
							<h-tree
							v-if="isRefresh"
							:isfilter="true"
							:tree-data="treeData"
							:tree-txt-formatter="treeTxtFormatter"
							:currentnodekey="currentnodekey"
							:is-readonly="isTreeReadonly"
							:treeheight="treeHeight - 20"
							:maxlevel="maxlevel"
							:default-expand-all="false"
							:default-expanded-keys="defaultExpandedKeys"
							
							@node-click="onNodeClick"
							@add-node="onAddNode"
							@edit-node="onEditNode"
							@del-node="onDelNode"
							>
							</h-tree>
						</div>
					</div>
					<div style="position: absolute; left: 42%;right: 16px; top: 40px; bottom: 10px; border: 1px solid #E4E7ED">
						<div>
							<el-tabs v-model="activeName" style="width: 100%;">
								<!-- 按钮 -->
								<!-- <el-button v-if="activeName == 'basicInformation' && versionObj.status !== 'locked'" icon="el-icon-check" style="float: right; margin: 1em" @click="":icon="buttonsconfig.save.icon">{{buttonsconfig.save.name}}</el-button> -->
								
								<!-- <el-tab-pane label="岗位信息" name="basicInformation">
									<div style="padding: 1em; padding-right: 2em; overflow: auto;">
										<h-form
											ref="form2"
											:form-attr="formAttr"
											:table-fields="formFields"
											:form-data="formData"
											:table-field-click="formfieldClick"
										>
										</h-form>
									</div>
								</el-tab-pane> -->
								<el-tab-pane label="人员信息" name="basicInformation">
									<!-- <div :style="{padding: '10px 0', height: (treeHeight - 20) + 'px', overflow: 'auto'}">
										<h-form
											ref="form2"
											:form-attr="formAttr"
											:table-fields="formFields"
											:form-data="formData"
											:table-field-click="formfieldClick"
										>
										</h-form>
									</div> -->
									
									<div style="width: 100% ;">
										<h-table v-if="tableFields_q.length"
											:table-fields="tableFields_q" 
											:table-data="tableData_q"
											:pagesize="pagesize_q"
											:pagenum="pagenum_q"
											:total="total_q"
											:table-height="treeHeight - 172 + 40 + 32"
											:is-highlight-row="true"
											:table-buttons-click="tablebuttonClick_q"
											:filtersobj="filtersobj_q"
											:isdraggableorder="false"
											
											v-on:get-data="getData_q"
										>
										</h-table>
									</div>
									
								</el-tab-pane>
								<!-- <el-tab-pane label="辖区医院" name="jurisdictionBusiness">
									<div style="width: 100% ;">
										<h-table
											v-if="tableFields_p.length"
											ref="table_p"
											:table-fields="tableFields_p" 
											:table-data="tableData_p" 
											:pagesize="pagesize_p"
											:pagenum="pagenum_p"
											:total="total_p"
											:table-height="treeHeight - 172 + 70"
											:is-highlight-row="true"
											:table-buttons-click="tablebuttonClick_p"
											:table-field-click="tablefieldClick"
											:filtersobj="filtersobj"
											
											v-on:get-data="getData_p"
										>
										</h-table>
									</div>
								</el-tab-pane> -->
							</el-tabs>				
						</div>
					</div>
					
				</div>
			</div>
		</div>
		
		<div id="page_loading" style="position: absolute; top:0px; width: 100vw; height: 50vh;">
			<div class="spinner">
			  <div class="cube1"></div>
			  <div class="cube2"></div>
			</div>
		</div>
		
	</body>
</html>