<!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 = [];
				window.top.initJsCss(document, jscss_urls, callback);
			};
			
			function initVue() {
				pageVue = new TabTableVue({
					el: "#vbody",
					data: {
						title: "换货订单",
						//Tab项设置
						tabs_d: [
							{code: "Input", name: "订单申请", dataname:"so_order", orderby: "update_time desc" ,filterTxt: "(state_code='Input' or state_code='Rejected' or state_code='UnderApproval') and type_code='barter'"},
							{code: "Part", name: "执行中", dataname:"so_order", orderby: "update_time desc" ,filterTxt: "(state_code='Open' or state_code='Partial') and type_code='barter'"},
							{code: "Whole", name: "执行完成", dataname:"so_order", orderby: "update_time desc" ,filterTxt: "(state_code='Whole' or state_code='Complete') and type_code='barter'"},
							{code: "All", name: "全部订单", dataname:"so_order", orderby: "update_time desc", filterTxt: "(state_code!='Input' and state_code!='Rejected' and state_code!='UnderApproval') and type_code='barter'"},
						],	
						tabs: [],
						tabsobj: {},

						// filterFields:[],
						tableFields:[],

						dataRequest: [
							{
								name: "implant_alter_date_day",//植入上报
								url: "root/data/getEntitySet",
								paramsobj: {dataname: "md_calendar", filter: "doc_date='" + dateFormat(new Date(), "yyyy-MM-dd") + "'"},
								isnotoption: true, //true:不是选项
							},
						],
						dataRequestObj: {},

						cbuttons_r: {
							edit: true
						},
						ctabs_r: {},
						iscustomer: false,
						iscustomerfreeze: false,//是否经销商冻结
						isCancel: false, //admin/商务负责人/商务助理1/2/对已经审批完成的订单进行撤销
						saveUser: "",
						loading_table: false,
						calendar_day: {}, // 当天的日历设置,含是否允许植入,是否允许订单
					},

					created() {
						if (window.top.vue.userinfo && window.top.vue.userinfo.currentactor && window.top.vue.userinfo.currentactor.source) {
							if (window.top.vue.userinfo.currentactor.source == "Org") {
								this.iscustomer = true; // 是经销商账号
							}
						}
						
						// if (window.top.vue.userinfo && window.top.vue.userinfo.org && window.top.vue.userinfo.org.is_account) {
						// 	var filterTxt_ = " ((creator_id='"+ window.top.vue.userinfo.id +"' and (state_code in ('Input', 'input', 'Rejected', '') or state_code is null )) or (state_code not in ('Input', 'input', 'Rejected', '') and state_code is not null))"
						// 	// this.filterTxt = "customer_id='" + window.top.vue.userinfo.org.id + "'";
						// 	this.filterTxt = "customer_id='" + window.top.vue.userinfo.org.id + "' and" + filterTxt_;
						// 	this.saveUser = window.top.vue.userinfo.org.code;
						// 	this.iscustomer = true;
						// 	if (window.top.vue.userinfo.org.isfreeze) {
						// 		this.iscustomerfreeze = true;
						// 	}
							
						// }else {
						// 	// this.filterTxt = " ((creator_id='"+ window.top.vue.userinfo.id +"' and (state_code in ('Input', 'input', 'Rejected', '') or state_code is null )) or (state_code not in ('Input', 'input', 'Rejected', '') and state_code is not null))"
						// 	this.filterTxt = " (((state_code in ('Input', 'input', 'Rejected', '') or state_code is null )) or (state_code not in ('Input', 'input', 'Rejected', '') and state_code is not null))"
						// 	//admin/商务负责人/商务助理1/2/3对已经审批完成的订单进行撤销
						// 	var currentcapacity = window.top.vue.userinfo.currentactor;
						// 	if (currentcapacity.code == "Capacity-Admin" || currentcapacity.code == "Capacity-M001" || currentcapacity.code == "Capacity-M002" || currentcapacity.code == "Capacity-M003") {
						// 		this.isCancel = true;
						// 	}
						// }
					},
					
					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;
								me.ctabs_r = result.tabs_r;
								
								var tabsarr = [];
								me.tabs_d.map(e=>{
									if(me.ctabs_r[e.code]){
										tabsarr.push(e)
									}
								})
								me.tabs = tabsarr;

								//预加载数据
								if (me.dataRequest && me.dataRequest.length) {
									var result = {};
									me.loadRequestData(me.dataRequest, result, function(data) {
										me.dataRequestObj = data;
										
										if (me.dataRequestObj.implant_alter_date_day) {
											var calendar_day_ = {}
											calendar_day_ = clone(me.dataRequestObj.implant_alter_date_day.data.entityset[0]);
											me.calendar_day = calendar_day_
										}
										//获取数据
										//初始化Tabs
										if(me.tabs.length>0){
											me.activeTabName = me.tabs[0].code;
										}
										me.initTabsPage(function() {
											//获取数据
											me.initData();
										});
										me.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
											hideLoading();
										});
									});
								}
								else {
									if(me.tabs.length>0){
										me.activeTabName = me.tabs[0].code;
									}
									//获取数据
									//初始化Tabs
									me.initTabsPage(function() {
										//获取数据
										me.initData();
									});
									me.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
										hideLoading();
									});
								}
							})
						}
					},
					
					methods:{
						onhandleClick() {
							this.initData();
						},
						
						initData() {
							var me = this;
							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_ = [];
									
									metas.map(f=>{
										f.isshow = "T";
										
										// if(f.field == 'state_delivery_name' || f.field == 'qty_total' || f.field == 'qty_delivery') {
										// 	if(me.selectTabObj.code == "Input"){
										// 		f.isshow = 'F';
										// 	}
										
										if (me.iscustomer && (f.field == 'customer_code' || f.field == 'customer_name' || f.field == "oa_sync_state")) {
											f.isshow = 'F';
											f.isfilter = false
										}
									
										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(filterFields_);
										me.selectTabObj.tableFields = clone(tableFields_);
										
										//字段数组转字段obj,目的为了筛选时获取字段属性
										me.fieldsToFieldsObj();
										
										//设置字段事件
										if (me.iscustomer) {
											me.tableFieldClick_customer();
										}
										else {
											me.tableFieldClick();
										}
									}
								}
								
								if (callback) {
									callback();
								}
							});
						},
						
						tableFieldClick_customer() {
							var me = this;
							var tablefieldClick = {};
							//表格字段事件设置
							tablefieldClick = {
								state_name: {//状态
									val: {//有值时的点击事件
										notclick_val: ["草稿", "草稿"],//"生效", "审批中", "待收货", "部分收货", "全部收货" //不可点击的值,1、是数组["11","22"];2、以“;”分隔的字符串"111;222"
										notclick_bindfield: [],
										onclick: function(obj) {
											var config = {
												totab: false,
												width: "1100px",
												height: "520px",
												icon: "icon-product",
												text: "流程步骤",
												id: "popup_workflow_step_user" + obj.row.id,
												url: "module/tool/page/popup_workflow_step_user.html?v=2023020703",
												data: obj.row,
												delta: {},//{machine_code: "Org_Account_Open"},
												sceneCode: "browse",//"refuseedit",//"approval", //"add"//"browse",
												callback: function(obj, callback) {
													if (callback) {
														callback();
													}
												}
											};
											me.doPopupByPublic(config);
										},
									},	
								},
								code: {//字段事件设置
									val: {//有值时的点击事件
										onclick: function(obj) {//数据值点击事件
											me.showInfo(obj)
										},
									},
								},
							};
							
							this.selectTabObj.tablefieldClick = tablefieldClick;
						},
						// 设置表格工具栏按键事件
						tableButtonClick() {
							var me = this ;
							var tablebuttonClick = {};
							tablebuttonClick.Input = [
								{
									isbuttonshow: me.cbuttons_r.add,type:"primary",
									code: "add", isselected: false, classname:"",
									// disabled: function(selectRowList) {
									//     var bo_ = true ;
									// 	// 不是关户日期才可下单
									//     if (!me.calendar_day.is_order_close) {
									//         bo_ = false
									//     }
									//     return bo_;
									// },
									onclick: function(obj) {
										me.onAddData();
									}
								},
								// {
								// 	name: "重推OA", type: "warning", icon: "el-icon-position",
								// 	isbuttonshow: !this.iscustomer && me.cbuttons_r.toOA,
								// 	code: "toOA", isselected: true, classname: "",
								// 	disabled: function(selectRowList) {
								// 		var bo_ = true;
								// 		if (selectRowList[0] && selectRowList[0].state_code == "Open") {
								// 			bo_ = false;
								// 		}
								// 		return bo_
								// 	},
								// 	onclick: function(obj) {
								// 		// obj.selectedList
								// 		// me.openOrder('browse', obj.selectedList[0]);
								// 	}
								// },
								{
									// name: "提交", // type: "primary", // icon: "el-icon-edit",
									isbuttonshow: me.cbuttons_r.submit,	type: "success",
									code: "submit", isselected: true, classname: "",
									disabled: function(selectRowList) {
										var bo_ = true;
										if (selectRowList[0] && selectRowList[0].state_code == "Input") {
											bo_ = false;
										}
										return bo_
									},
									onclick: function(obj) {
										if (me.calendar_day.is_order_close) {
											Root.message({
												type: 'warning',
												message: '关账期间不允许提交订单'
											});
											return
										}
										// obj.selectedList
										// me.closeData('browse', obj.selectedList[0]);
										// me.commitData(obj.selectedList[0]);
										me.onEditData();
									}
								},
								{
									// name: "详情", // type: "primary", // icon: "el-icon-edit",
									isbuttonshow: me.cbuttons_r.formdetail,	
									code: "formdetail", isselected: true, classname: "",
									disabled: function(selectRowList) {
										var bo_ = true;
										if (selectRowList[0]) {
											bo_ = false;
										}
										return bo_
									},
									onclick: function(obj) {
										// obj.selectedList
										me.openOrder('browse', obj.selectedList[0]);
									}
								},
								
								{
									isbuttonshow: me.cbuttons_r.edit, type: "primary",
									code: "edit", isselected: true, classname:"",
									disabled: function(selectRowList) {
									    var bo_ = true ;
									    if (selectRowList[0] && selectRowList[0].state_code == "Input") {
											bo_ = false
									    }
									    return bo_; 
									},
									onclick: function(obj) {
										me.onEditData();
									}
								},
								{
									name: "撤销", // type: "primary", // icon: "el-icon-edit",
									isbuttonshow: window.top.vue.userinfo.currentactor.code == "Actor-Business-Director" && me.cbuttons_r.revoke, type: "danger",
									code: "revoke", isselected: true, classname: "",
									onclick: function(obj) {
										var row = obj.selectedList[0];
										var txt = clone(row.product_name);
										me.revokeDataById(row.id, "so_order", "【" + txt + "】", function(){
										})
									}
								},
								{
									isbuttonshow:  me.cbuttons_r.delete, type: "danger",
									code: "delete", isselected: true, classname:"",
                                    disabled: function(selectRowList) {
                                        var bo_ = true ;
                                        if (selectRowList[0] && selectRowList[0].state_code == "Input") {
											bo_ = false
                                        }
                                        return bo_; 
                                    },
									onclick: function(obj) {
										me.onDelData();
									}
								},
							]
							
							tablebuttonClick.Part = [
								{
									name: "重推OA", type: "warning", icon: "el-icon-position",
									isbuttonshow: !this.iscustomer && me.cbuttons_r.toOA,
									code: "toOA", isselected: true, classname: "",
									disabled: function(selectRowList) {
										var bo_ = true;
										if (selectRowList[0] && selectRowList[0].state_code == "Open" && (!selectRowList[0].oa_sync_state || selectRowList[0].oa_sync_state == "未同步")) {
											bo_ = false;
										}
										return bo_
									},
									onclick: function(obj) {
										// obj.selectedList
										me.OrderToOA(obj.selectedList[0], function() {
											me.initData();
										});
									}
								},
								{
									name: "订单关闭", type: "danger", icon: "el-icon-circle-close",
									isbuttonshow: me.cbuttons_r.entireclose,	
									code: "entireclose", isselected: true, classname: "",
									disabled: function(selectRowList) {
										var bo_ = true;
										if (selectRowList[0]) {
											bo_ = false;
										}
										return bo_
									},
									onclick: function(obj) {
										// obj.selectedList
										// me.openOrder('browse', obj.selectedList[0]);
									}
								},
								{
									// name: "详情", // type: "primary", // icon: "el-icon-edit",
									isbuttonshow: me.cbuttons_r.formdetail,	
									code: "formdetail", isselected: true, classname: "",
									disabled: function(selectRowList) {
										var bo_ = true;
										if (selectRowList[0]) {
											bo_ = false;
										}
										return bo_
									},
									onclick: function(obj) {
										// obj.selectedList
										me.openOrder('browse', obj.selectedList[0]);
									}
								},
								
							]
							
							tablebuttonClick.Whole = [
								{
									name: "订单关闭", type: "danger", icon: "el-icon-circle-close",
									isbuttonshow:  me.cbuttons_r.entireclose,	
									code: "entireclose", isselected: true, classname: "",
									disabled: function(selectRowList) {
										var bo_ = true;
										if (selectRowList[0]) {
											bo_ = false;
										}
										return bo_
									},
									onclick: function(obj) {
										// obj.selectedList
										// me.openOrder('browse', obj.selectedList[0]);
									}
								},
								{
									// name: "详情", // type: "primary", // icon: "el-icon-edit",
									isbuttonshow: me.cbuttons_r.formdetail,	
									code: "formdetail", isselected: true, classname: "",
									disabled: function(selectRowList) {
										var bo_ = true;
										if (selectRowList[0]) {
											bo_ = false;
										}
										return bo_
									},
									onclick: function(obj) {
										// obj.selectedList
										me.openOrder('browse', obj.selectedList[0]);
									}
								},
							]
							
							tablebuttonClick.All = [
								{
									name: "订单关闭", type: "danger", icon: "el-icon-circle-close",
									isbuttonshow: me.cbuttons_r.entireclose,	
									code: "entireclose", isselected: true, classname: "",
									disabled: function(selectRowList) {
										var bo_ = true;
										if (selectRowList[0]) {
											bo_ = false;
										}
										return bo_
									},
									onclick: function(obj) {
										// obj.selectedList
										// me.openOrder('browse', obj.selectedList[0]);
									}
								},
								{
									// name: "详情", // type: "primary", // icon: "el-icon-edit",
									isbuttonshow: me.cbuttons_r.formdetail,	
									code: "formdetail", isselected: true, classname: "",
									disabled: function(selectRowList) {
										var bo_ = true;
										if (selectRowList[0]) {
											bo_ = false;
										}
										return bo_
									},
									onclick: function(obj) {
										// obj.selectedList
										me.openOrder('browse', obj.selectedList[0]);
									}
								},
							]
							

							if (tablebuttonClick[this.activeTabName]) {
								me.selectTabObj.tablebuttonClick = tablebuttonClick[this.activeTabName]
							}
							else {
								me.selectTabObj.tablebuttonClick = []
							}
						},
						
						tableFieldClick() {
							var me = this;
							var tablefieldClick = {};
							//表格字段事件设置
							tablefieldClick = {
								state_name: {//状态
									val: {//有值时的点击事件
										notclick_val: ["草稿", "草稿"],//不可点击的值,1、是数组["11","22"];2、以“;”分隔的字符串"111;222"
										notclick_bindfield: [],
										onclick: function(obj) {
											var config = {
												totab: false,
												width: "1100px",
												height: "520px",
												icon: "icon-product",
												text: "流程步骤",
												id: "popup_workflow_step_user" + obj.row.id,
												url: "module/tool/page/popup_workflow_step_user.html?v=2023020703",
												data: obj.row,
												delta: {},//{machine_code: "Org_Account_Open"},
												sceneCode: "browse",//"refuseedit",//"approval", //"add"//"browse",
												callback: function(obj, callback) {
													if (callback) {
														callback();
													}
												}
											};
											
											me.doPopupByPublic(config);
										},
									},	
								},
								code: {//字段事件设置
									val: {//有值时的点击事件
										onclick: function(obj) {//数据值点击事件
											me.showInfo(obj)
										},
									},
								},
							};
							
							this.selectTabObj.tablefieldClick = tablefieldClick;
						},
						
						OrderToOA(row, callback) {
							var me = this;
							let param = {
								id: row.id,
								dataname: "so_order",
								icall: "so_order",
							}
							me.loading_table = true;
							Server.call("root/data/callRemoteServer", param, function(result) {
								me.loading_table = false;
								
								callback();
							})
						},
						
						// commitData(obj) {
						// 	var me = this;
						// 	if (me.calendar_day.is_order_close) {
						// 		Root.message({
						// 			type: 'warning',
						// 			message: '关账期间不允许下订单'
						// 		});
						// 		return
						// 	}
							
						// 	Root.confirm('确定提交订单' + obj.code + '吗?', '提交提示', {
						// 	  confirmButtonText: '提交',
						// 	  cancelButtonText: '取消',
						// 	  type: 'warning'
						// 	}).then(() => {
						// 		var param = {
						// 			dataname: me.selectTabObj.dataname,
						// 			id: obj.id,
						// 			// to_state: "OpeningApproval" 
						// 		}
						// 		Server.call("root/data/commit", param, function(result) {
						// 			console.log(result);
						// 			if (result.success) {
						// 				Root.message({
						// 					type: 'success',
						// 					message: '提交成功'
						// 				}); 
						// 				me.onQuery();
						// 			}
						// 		});
						// 	}).catch(() => {
						// 		Root.message({
						// 			type: 'info',
						// 			message: '已取消'
						// 		});          
						// 	});
						// },

						showInfo(obj){
							var me = this;
							var sceneCode_ = "browse"
							//如果是创建人且状态是录入或修改并且经销商非冻结则sceneCode是edit
							// if (obj.row.creator_id == window.top.vue.userinfo.id && (obj.row.state_code == "Input" || obj.row.state_code == "Rejected") && !this.iscustomerfreeze) {
							// 	sceneCode_ = "edit"
							// }
							
							var config = {
								totab: true, //true: 以Tab导航的方式打开
								width: "900px",
								height: "900px",
								icon: "icon-product",
								text: "换货订单信息",
								id: "porder_list_edit" + "browse" + obj.row.id + "barter",//totab: true时需设置,用于判断是否已打开此页面
								url: "module/order/page/porder_list_edit.html",
								data: obj.row,
								delta: {freeze: me.iscustomerfreeze, scene: "barter"},
								sceneCode: sceneCode_,//"refuseedit",//"approval", //"add"//"browse",
								callback: function(obj, callback) {
									// if(obj.mark && obj.mark == "copy") {
									me.onQuery();
									// }
									if (callback) {
										callback();
									}
								}
							};
							me.doPopupByPublic(config);
						},

						//新增订单button
						onAddData() {
							var me = this;
							// if (me.calendar_day.is_order_close) {
							// 	Root.message({
							// 		type: 'warning',
							// 		message: '关账期间不允许下订单'
							// 	});
							// 	return
							// }
							//如果是冻结状态的需要获取一下=最新的状态
							if (this.iscustomerfreeze) {
								let param_ = {
									dataname: "md_org",
									id: window.top.vue.userinfo.org.id
								}
								
								Server.call("root/data/getEntity", param_, function(result) {
									console.log(result);
									//冻结状态
									if (result && result.data && result.data.md_org && result.data.md_org.is_frozen) {
										Root.message({
											type: "warning",
											message: "冻结状态不可下订单",
										});
									}
									else {//已解冻
										//刷新经销商信息
										window.top.vue.userinfo.org.isfreeze = result.data.md_org.is_frozen;
										me.onDoAddData();
									}
								});
							}
							else {
								me.onDoAddData();
							}
						},
						
						onDoAddData() {
							var me = this;
							var config = {
								totab: true, //true: 以Tab导航的方式打开
								width: "900px",
								height: "900px",
								icon: "icon-product",
								text: "换货订单信息",
								id: "porder_list_edit" + "add"  + "barter",//totab: true时需设置,用于判断是否已打开此页面
								url: "module/order/page/porder_list_edit.html",
								data: {},
								delta: {scene: "barter"},
								sceneCode: "add",//"refuseedit",//"approval", //"add"//"browse",
								callback: function(obj, callback) {
									me.onQuery();
									if (callback) {
										callback();
									}
								}
							};
							me.doPopupByPublic(config);
						},
						revokeDataById(id, dataname, confirm_txt, callback){
							var me = this;
							var formData_ = clone(me.formData);
							Root.confirm('确定撤销该' + me.selectTabObj.name + confirm_txt + '吗?', '撤销提示', {
							  confirmButtonText: '确定',
							  cancelButtonText: '取消',
							  type: 'warning'
							}).then(() => {
								if (id) {
									let param = {
										dataname: dataname,
										id: id
									}
									Server.call("root/data/revoke", param, function(result) {//标识2:接口待接
										console.log(result);
										if (result && result.data) {
											callback();
										}
									});
								}
								else {
									callback();
								}
								
							}).catch(() => {
								Root.message({
									type: 'info',
									message: '已取消'
								});          
							});
							
						},
						
						onDelData() {
							var me = this;
							//如果是冻结状态的需要获取一下=最新的状态
							if (this.iscustomerfreeze) {
								let param_ = {
									dataname: "md_org",
									id: window.top.vue.userinfo.org.id
								}
								
								Server.call("root/data/getEntity", param_, function(result) {
									console.log(result);
									//冻结状态
									if (result && result.data && result.data.md_org && result.data.md_org.is_frozen) {
										Root.message({
											type: "warning",
											message: "冻结状态不可删除订单",
										});
									}
									else {//已解冻
										//刷新经销商信息
										window.top.vue.userinfo.org.isfreeze = result.data.md_org.is_frozen;
										me.onDoDelData();
									}
								});
							}
							else {
								me.onDoDelData();
							}
						},
						
						onDoDelData() {
							var me = this;
							var row = me.selectTabObj.selectedrow;
							// 1. not input
							if (!(row.state_code == "Input" || row.state_code == "Rejected")) {
								Root.message({
									type: "warning",
									message: "当前数据不是输入状态",
								});
								return false;
							}

							Root.confirm('确定删除订单 ' + row.code + ' 吗?', '删除提示', {
								confirmButtonText: '删除',
								cancelButtonText: '取消',
								type: 'warning'
							}).then(() => {
								let param = {
									id: row.id,
									dataname: 'so_order',
								}
								Server.call("root/data/deleteEntity", param, function(result) {
									console.log(result);
									Root.message({
										type: 'success',
										message: '删除成功!'
									});
									me.onQuery();
								});
							}).catch(() => {
								Root.message({
									type: 'info',
									message: '已取消删除'
								});          
							});
						},
						
						onCancelData() {//撤销订单
							var me = this;
							var row = me.selectTabObj.selectedrow;
							// 1. not input
							Root.confirm('确定撤销订单 ' + row.code + ' 吗?', '撤销提示', {
								confirmButtonText: '撤销',
								cancelButtonText: '取消',
								type: 'warning'
							}).then(() => {
								// Root.message({
								// 	type: 'info',
								// 	message: '接口对接中'
								// });
								let param = {
									id: row.id,
									// dataname: 'general_sales_order',
									operation_type: ""
								}
								Server.call("root/salesBizLogic/orderCancel", param, function(result) {
									me.loading_save = false;
									console.log(result);
									if (result.success) {
										Root.message({
											type: 'success',
											message: '已撤销完成'
										}); 
										me.onQuery();
									}
								}, function(errorresult) {
									console.log("错误信息", errorresult);
									me.loading_save = false;
									me.loading_page = false;
									if (errorresult.messages && errorresult.messages.count && errorresult.messages.count.error) {
										me.iscommit = false;
										if (errorresult.messages.list) {
											var config = {
												totab: false,
												// width: "1200px",
												// height: 800,
												icon: "icon-product",
												text: "错误信息",
												url: "module/tool/page/popup_error_messages.html",
												data: {},
												delta: errorresult.messages.list,
												callback: function(obj, callback) {
													if (callback) {
														callback();
													}
												}
											};
											me.doPopupByPublic(config);
										}
									}
									else {
										Root.message({
											type: 'error',
											message: '撤销失败'
										}); 
									}
								});
							}).catch(() => {
								Root.message({
									type: 'info',
									message: '已取消删除'
								});          
							});
						},
						
						openOrder(sceneCode, obj) {
							let me = this;
							var row = {}
							if (sceneCode == "edit" || sceneCode == "browse") {
								row = me.selectTabObj.selectedrow;
								if(!row){
									Root.message({
										type: 'warning',
										message: '请选择一条数据'
									});
									return;
								}
							}
							
							var config = {
								totab: true, //true: 以Tab导航的方式打开
								width: "1100px",
								height: "520px",
								icon: "icon-product",
								text: "订单详情" + (row.code ? ("-" + row.code) : ""),
								id: "porder_list_edi" + row.id + sceneCode + "barter",
								url: "module/order/page/porder_list_edit.html",
								data: row,
								delta: {scene: "barter"},
								sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse",
								callback: function(obj, callback) {
									me.onQuery();
									if (callback) {
										callback();
									}
								}
							};
							me.doPopupByPublic(config);
						},
						
						//编 辑——编辑
						onEditData() {
							var me = this;
							// if (me.calendar_day.is_order_close) {
							// 	Root.message({
							// 		type: 'warning',
							// 		message: '关账期间不允许下订单'
							// 	});
							// 	return
							// }
							//如果是冻结状态的需要获取一下=最新的状态
							if (this.iscustomerfreeze) {
								let param_ = {
									dataname: "md_org",
									id: window.top.vue.userinfo.org.id
								}
								
								Server.call("root/data/getEntity", param_, function(result) {
									console.log(result);
									//冻结状态
									if (result && result.data && result.data.md_org && result.data.md_org.is_frozen) {
										Root.message({
											type: "warning",
											message: "冻结状态不可编辑订单",
										});
									}
									else {//已解冻
										//刷新经销商信息
										window.top.vue.userinfo.org.isfreeze = result.data.md_org.is_frozen;
										me.onDoEditData();
									}
								});
							}
							else {
								me.onDoEditData();
							}
						},
						
						onDoEditData(config) {
							var me = this;
							var row = me.selectTabObj.selectedrow;
						
							//3. popup
							config = {
								totab: true,
								icon: "icon-product",
								text: "订单信息",
								width: "900px",
								height: "900px",
								id: "porder_list_edi" + row.id + "edit" + "barter",
								url: "module/order/page/porder_list_edit.html",
								sceneCode: "edit",
								data: row,
								delta: {scene: "barter"},
								callback: function(obj, callback) {
									me.onQuery();
									if (callback) {
										callback();
									}
								},
							};
							me.doPopupByPublic(config);
						},

						//主界面提交
						dataSubmit() {
							var me = this;
							var row = me.selectTabObj.selectedrow;
						
							config = {
								totab: true,
								icon: "icon-product",
								text: "普通销售订单信息",
								width: "900px",
								height: "900px",
								id: "porder_general_info" + row.id + "edit",
								url: "module/order/page/porder_general_info.html",
								sceneCode: "edit",
								data: row,
								delta: {},
								callback: function(obj, callback) {
									me.onQuery();
									if (callback) {
										callback();
									}
								},
							};
							me.doPopupByPublic(config);
						},

						onCopyData(){
							var me = this;
							var row = me.selectTabObj.selectedrow;

							var param = {
								id: row.id,
								duplicate_type: "order",
							};
							Server.call("root/salesBizLogic/duplicateBill", param, function(result) {
								console.log(result);
								if (result.success) {
									if(result.messages && result.messages.count.total && result.messages.list.length > 0) {
										if(result.messages.list[0].level == 'error') {
											Root.message({
												type: 'error',
												message: result.messages.list[0].message,
											}); 
										}
										else if(result.messages.list[0].level == 'alert') {
											Root.message({
												type: 'alert',
												message: result.messages.list[0].message,
											}); 
										}
										else {
											Root.message({
												type: 'success',
												message: result.messages.list[0].message,
											}); 
										}
									}
									me.onQuery();//怎么切换到第一个tab?
									// me.activeTabName = me.tabs[0].code;
									// me.initTabsPage(function() {
									// 	//获取数据
									// 	me.initData();
									// });
									// me.$nextTick(() => { // 以服务的方式调用的 Loading 需要异步关闭
									// 	hideLoading();
									// });
								}

								else {
									Root.message({
										type: 'error',
										message: '订单复制失败',
									}); 
								}
							},)
						},
						onDownload() {
							let me = this;
							let param = {
								ioname:"export_so_order",
								orderby: "",
								token: Root.getToken()
							}
							window.top.vue.textdownloadForm(param);
						},
						
						
						createDelivery() {
							var me = this;
							
							Root.confirm('确定发货吗?', '发货提示', {
							  confirmButtonText: '发货',
							  cancelButtonText: '取消',
							  type: 'warning'
							}).then(() => {
								me.doCreateDelivery();
							}).catch(() => {
								Root.message({
									type: 'info',
									message: '已取消收货'
								});          
							});
						},
						
						doCreateDelivery() {
							var me = this;
							let param = {
								order_no: this.selectTabObj.selectedrow.code,
							}
							Server.call("root/order/createDelivery", param, function(result) {
								console.log(result);
								if (result.success) {
									Root.message({
										type: 'success',
										message: '发货成功'
									}); 
									me.onQuery();
								}
								else {
									Root.message({
										type: 'error',
										message: '发货失败'
									}); 
								}
							}, function(errorresult) {
								console.log("错误信息", errorresult);
								if (errorresult.messages && errorresult.messages.count && errorresult.messages.count.error) {
									if (errorresult.messages.list) {
										var config = {
											totab: false,
											// width: "1200px",
											// height: 800,
											icon: "icon-product",
											text: "错误信息",
											url: "module/tool/page/popup_error_messages.html",
											data: {},
											delta: errorresult.messages.list,
											callback: function(obj, callback) {
												if (callback) {
													callback();
												}
											}
										};
										me.doPopupByPublic(config);
									}
								}
								else {
									Root.message({
										type: 'error',
										message: '收货失败'
									}); 
								}
							});
						},
						
						
					}
				});
			};
			
			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;
			}
		</style>
	</head>
	
	<body style="margin: 0px;">
		<div v-cloak id="vbody" v-loading.fullscreen.lock="loading_table">
			<div id="page_root" >
				<div class="topbar">
					<span>{{title}}</span>
					
					<div style="float: right;">
						<!-- <el-button
							v-show="cbuttons_r.Add"
							:disabled="iscustomerfreeze || !(selectTabObj.selectedrow && selectTabObj.selectedrow.id)"
							icon="el-icon-document-copy"
							@click="onCopyData">再来一单
						</el-button> -->
						<el-button v-show="cbuttons_r.createDelivery && selectTabObj.code == 'Part'" @click="createDelivery">模拟发货</el-button>
						<el-button-group v-show= "selectTabObj.code == 'Input'" style="margin-left: 3px">
							<el-button  v-show="cbuttons_r.export" @click="onDownload" :icon="buttonsconfig.export.icon">{{buttonsconfig.export.name}}</el-button>

							<!-- <el-button 
								v-show="cbuttons_r.Edit"
								@click="selectTabObj.isEditTableData = !selectTabObj.isEditTableData" :icon="selectTabObj.isEditTableData ? buttonsconfig.closeEdit.icon: buttonsconfig.edit.icon">{{selectTabObj.isEditTableData ? buttonsconfig.closeEdit.name : buttonsconfig.edit.name}}
							</el-button> -->

							<!-- <el-button
								v-show="cbuttons_r.Edit"
								:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id && (selectTabObj.selectedrow.state_code == 'Input' || selectTabObj.selectedrow.state_code == 'Rejected'))"
								@click="onEditData" :icon="buttonsconfig.edit.icon">{{buttonsconfig.edit.name}}
							</el-button>

							<el-button
								v-show="cbuttons_r.Edit"
								:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id && (selectTabObj.selectedrow.state_code == 'Input' || selectTabObj.selectedrow.state_code == 'Rejected'))"
								type = "danger"
								@click="onDelData" :icon="buttonsconfig.delete.icon">{{buttonsconfig.delete.name}}
							</el-button> -->

							<!-- <el-button 
								v-show="cbuttons_r.Submit"
								:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id && selectTabObj.selectedrow.state_code == 'Input')"
								@click="dataSubmit" type="success" :icon="buttonsconfig.submit.icon">{{buttonsconfig.submit.name}}
							</el-button> -->
						</el-button-group>
						
						<!-- <el-button-group v-show="isCancel" style="margin-left: 3px">
							<el-button
								:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id && (selectTabObj.selectedrow.state_code == 'Open' || selectTabObj.selectedrow.state_code == 'Receiving'))"
								type = "danger"
								@click="onCancelData" :icon="buttonsconfig.cancel.icon">{{buttonsconfig.cancel.name}}
							</el-button>
							
						</el-button-group> -->

						
						<!-- <el-button 
							:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id && selectTabObj.selectedrow.state_code == 'UnderApproval')"
							@click="onApproveData" type="success">审 批
						</el-button> -->
					</div>
				</div>

				<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="h_dialog__body">
					<h-table
						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"
						:table-field-click="selectTabObj.tablefieldClick"
						:table-buttons-click="selectTabObj.tablebuttonClick"
						:is-show-index="selectTabObj.isShowIndex"
						:tableloading="tableloading"
						:isdraggableorder="cbuttons_r.Set"
						:is-highlight-row="selectTabObj.isHighlightRow"
						:filtersobj="selectTabObj.filterObj"
						
						v-on:get-data="getData"
						v-on:edit-data="editData"
						v-on:del-data="delData"
						v-on:row-click="rowClick"
						v-on:order-fields="orderTableFields"
						>
					</h-table>
				</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>