From e1ec4e662636af70085e9148c9672e5951d3d568 Mon Sep 17 00:00:00 2001
From: zhangyanpeng <bob.zhang@highdatas.com>
Date: 星期五, 02 八月 2024 14:31:57 +0800
Subject: [PATCH] 新增拜访

---
 module/order/page/implanted_date.html                           |  240 
 module/flow/page/flow_sales_list.html                           | 1095 +++++
 login.css                                                       |    1 
 module/visit/page/popup/visit_log_detail.html                   | 1570 +++++++
 module/md/page/terminal/page/linkpharmacy_info.html             |  650 +++
 login.html                                                      |   16 
 module/system/page/home/page/home_customer.html                 |   20 
 module/system/page/home/page/home_sale.html                     |   20 
 module/flow/page/flow_purchase_list.html                        | 1095 +++++
 module/system/page/coming.html                                  |    2 
 module/flow/page/flow_clean_list.html                           | 1095 +++++
 module/flow/page/flow_inventory_list.html                       | 1095 +++++
 module/md/page/terminal/page/linkpharmacy_list.html             | 1394 ++++++
 module/visit/page/script_list.html                              |  745 +++
 module/md/page/popup/page/popup_target_dealer_edit.html         |  119 
 module/md/page/terminal/page/hospital_list.html                 |   28 
 module/system/page/main.html                                    |   24 
 module/visit/page/visit_schedule_list.html                      | 1128 +++++
 module/agreement/page/agreement_mould_list.html                 |    2 
 module/system/page/home/page/home_org.html                      |   18 
 module/md/page/terminal/page/popup/popup_hospital_list.html     |   36 
 module/md/page/terminal/page/popup/popup_linkpharmacy_list.html |  222 +
 module/md/page/customer/page/customer_list_agreement_edit.html  |   98 
 img/org/logo.png                                                |    0 
 js/myelement.js                                                 |    4 
 module/md/page/popup/page/popup_hospitalToList.html             |    6 
 module/md/page/terminal/page/hospital_list_warehouse.html       |    5 
 module/system/page/home/page/home_business.html                 |  165 
 module/visit/page/visit_log_list.html                           | 1049 ++++
 module/visit/page/process_definition.html                       |  803 +++
 js/config.js                                                    |    4 
 31 files changed, 12,419 insertions(+), 330 deletions(-)

diff --git a/img/org/logo.png b/img/org/logo.png
index cda3ab1..d388512 100644
--- a/img/org/logo.png
+++ b/img/org/logo.png
Binary files differ
diff --git a/js/config.js b/js/config.js
index 24550a1..fbde41f 100644
--- a/js/config.js
+++ b/js/config.js
@@ -17,10 +17,10 @@
 	jscssversion: "2024072901", //.js/.css鏂囦欢鐨勭増鏈彿锛屽幓闄ゅ墠绔紦瀛樼殑涓�绉嶆満鍒�
 	isupgrading: false, //鏄惁鍗囩骇涓�
 	appName: "TPP",
-	title: "缁堢鎺ㄥ箍骞冲彴",
+	title: "钀ラ攢涓�浣撳寲杩愯惀骞冲彴",
 	servertype: "", // 閮ㄧ讲鐨勭幆澧�
 	sqltype: "", // 鏁版嵁搴撶被鍨婱ySql/Oracle锛屼笉濉啓榛樿涓篗ySql銆傜瓫閫夎繃婊ゆ潯浠舵椂鐨勬嫾鎺�
-	period: "2022骞�12鏈�",
+	// period: "2022骞�12鏈�",
 	isDebug: false, //娴忚鍣ㄦ槸鍚︽墦鍗拌姹傛棩蹇�
 	url_root: basicURL + "/",
 	url_page: basicPageURL,
diff --git a/js/myelement.js b/js/myelement.js
index 48750a0..45e76e4 100644
--- a/js/myelement.js
+++ b/js/myelement.js
@@ -3060,7 +3060,9 @@
 				})
 				
 				// 琛ㄦ牸瀛楁鍒嗙粍锛屾牴鎹畉ableformgroup鍒ゆ柇tablegroupname鏄惁琛ㄦ牸鍗曞厓鏍间腑鐨勮〃鍗曞垎缁� 
-				me_tableFields = listTOTableFieldsGroupByType(me_tableFields);
+				// me_tableFields = listTOTableFieldsGroupByType(me_tableFields);
+				me_tableFields = listTOTableFieldsGroupByType(me.showTableFields);
+				
 			}
 			me_tableFields.map(t=>{
 				if (t.inputtype && !t.type) {
diff --git a/login.css b/login.css
index 364064c..8fc0998 100644
--- a/login.css
+++ b/login.css
@@ -49,6 +49,7 @@
   left: 5%;
   top: 5px; */
   margin-left: 4%;
+  margin-bottom: 10px;
 }
 .header-label{
 	display: inline-block; 
diff --git a/login.html b/login.html
index a132848..7bb7200 100644
--- a/login.html
+++ b/login.html
@@ -7,16 +7,16 @@
 	<meta http-equiv="Cache-control" content="no-cache">
 	<meta http-equiv="Cache" content="no-cache">
 	<title>缁堢鎺ㄥ箍骞冲彴</title>
-	<link href="./login.css?v=2024071401" rel="stylesheet">
+	<link href="./login.css?v=2024073101" rel="stylesheet">
 	<link href="./css/picture.css" rel="stylesheet">
 	<link href="./img/org/head.png" rel="shortcut icon" type="image/x-icon">
 	
-	<script src="./js/config.js?v=2024071401"></script>
+	<script src="./js/config.js?v=2024073101"></script>
 	<script src="./js/jquery-3.5.1.min.js"></script>
 	
-	<script src="./js/foundation.js?v=2024071401"></script>
-	<script src="./js/picture.js?v=2024071401"></script>
-	<script src="./js/vue/page.js?v=2024071401"></script>
+	<script src="./js/foundation.js?v=2024073101"></script>
+	<script src="./js/picture.js?v=2024073101"></script>
+	<script src="./js/vue/page.js?v=2024073101"></script>
 	
 	<script type="text/javascript">
 		var browsertype, edt_username, edt_password, lbl_message, servertype, background_img, returnbutton;
@@ -159,11 +159,11 @@
 
 <body>
 	<div class="header">
-		<img class="header-logo" src="./img/org/gp_logo.png" height="60">
+		<img class="header-logo" src="./img/org/gp_logo.png" height="50">
 		<div class="header-label" >
-			<label class="header-label-cn">缁堢鎺ㄥ箍骞冲彴<span id="servertype"></span></label>
+			<label class="header-label-cn">钀ラ攢涓�浣撳寲杩愯惀骞冲彴<span id="servertype"></span></label>
 			<br/>
-			<label class="header-label-en">TerminalPromotionPlatform</label>
+			<label class="header-label-en">MarketingIntegratedOperationPlatform</label>
 			<br/>
 			<br/>
 			<div style="height: 1px; overflow: hidden;">&nbsp;</div>
diff --git a/module/agreement/page/agreement_mould_list.html b/module/agreement/page/agreement_mould_list.html
index eb72669..250ba22 100644
--- a/module/agreement/page/agreement_mould_list.html
+++ b/module/agreement/page/agreement_mould_list.html
@@ -40,7 +40,7 @@
 						tabs: [
 							{code: "Open", name: "鐢熸晥", dataname: "agm_template", orderby: "update_time", filterTxt: "state_code = 'Open'",},
 							{code: "Close", name: "浣滃簾", dataname: "agm_template", orderby: "update_time desc", filterTxt: "state_code = 'Cancel'",},
-							{code: "Overdue", name: "閫炬湡", dataname: "agm_template", orderby: "update_time desc", filterTxt: "date_to < NOW()", },
+							// {code: "Overdue", name: "閫炬湡", dataname: "agm_template", orderby: "update_time desc", filterTxt: "date_to < NOW()", },
 							{code: "All", name: "鍏ㄩ儴", dataname: "agm_template", orderby: "update_time desc", filterTxt: "1=1",},
 						],
 						tabsobj: {},
diff --git a/module/flow/page/flow_clean_list.html b/module/flow/page/flow_clean_list.html
new file mode 100644
index 0000000..5289dc6
--- /dev/null
+++ b/module/flow/page/flow_clean_list.html
@@ -0,0 +1,1095 @@
+<!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: "month", name: "鏈堟祦鍚�", dataname: "flow_daily_sell", filterTxt: "", orderby: ""},
+							{code: "daily", name: "鏃ユ祦鍚�", dataname: "flow_month_sell", filterTxt: "", orderby: ""},
+						],
+						d_tabs: {
+							month: true,
+							daily: true,
+						},
+						tabs: [],
+						tabsobj: {},
+
+						dataRequest: [],
+						authTableFields: [
+							{field: "code", name: "鍖婚櫌缂栫爜", isshow: "T", align: "center",width: "150"},
+							{field: "name", name: "鍖婚櫌鍚嶇О", isshow: "T", align: "left",width: "200", isminwidth: true},
+							{field: "org_code", name: "缁忛攢鍟嗙紪鐮�", isshow: "T", align: "center",width: "150"},
+							{field: "org_name", name: "缁忛攢鍟嗗悕绉�", isshow: "T", align: "left",width: "200", isminwidth: true},
+						],
+						authFilterFields: [
+							{isshow: "T", field: "code", name: "鍖婚櫌缂栫爜", filterfield:"", filteroperator: "like", type: ""},
+							{isshow: "T", field: "name", name: "鍖婚櫌鍚嶇О", filterfield:"", filteroperator: "like", type: ""},
+							{isshow: "T", field: "org_code", name: "缁忛攢鍟嗙紪鐮�", filterfield:"", filteroperator: "like", type: ""},
+							{isshow: "T", field: "org_name", name: "缁忛攢鍟嗗悕绉�", filterfield:"", filteroperator: "like", type: ""},
+						],
+						
+						cbuttons_r: {},
+						ctabs_r: {},
+						filterTxt: "",
+						iscustomer: false,
+
+						isSales: false,//閿�鍞汉鍛橈紙閿�鍞唬琛ㄣ�佸ぇ鍖虹粡鐞嗐�佸皬鍖虹粡鐞嗭級
+						isRegionR: false,//澶у尯缁忕悊
+						saveUser: null,//鐧诲綍鑰卛d
+					},
+					created() {
+						if (window.top.vue.userinfo) {
+							this.saveUser = window.top.vue.userinfo.id;
+							if (window.top.vue.userinfo.currentactor.code == "Capacity-Sale" || window.top.vue.userinfo.currentactor.code == "Capacity-Region-R" || window.top.vue.userinfo.currentactor.code == "Capacity-Region-M") {
+								this.isSales = true;
+								if(window.top.vue.userinfo.currentactor.code == "Capacity-Region-R") {
+									this.isRegionR = true;
+								}
+							}
+						}
+					},
+					
+					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.cbuttons_r = result.buttons_r;
+								me.ctabs_r = result.tabs_r;
+								// me.ctabs_r = me.d_tabs
+								
+								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.tabs.length>0){
+											me.activeTabName = me.tabs[0].code;
+										}
+										//鑾峰彇鏁版嵁
+										//鍒濆鍖朤abs
+										me.initTabsPage(function() {
+											//鑾峰彇鏁版嵁
+											me.initData();
+										});
+										me.$nextTick(() => { // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
+											hideLoading();
+										});
+									});
+								}
+								else {
+									if(me.tabs.length>0){
+										me.activeTabName = me.tabs[0].code;
+									}
+									//鑾峰彇鏁版嵁
+									//鍒濆鍖朤abs
+									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_ = [];
+									// if(me.selectTabObj.code == 'authorize') {
+									// 	tableFields_ = clone(me.authTableFields);
+									// 	filterFields_ = clone(me.authFilterFields);
+									// } 
+									
+									metas.map(f=>{
+										// if(me.selectTabObj.code == 'authorize') {
+										// 	if (f.field == "begin_date" || f.field == "end_date" || f.field == "authorization_type" || f.field == "category_name") {
+										// 		f.isshow = "T";
+										// 		tableFields_.push(clone(f));
+										// 	}
+										// } else {
+										f.isshow = "T";
+										// if(f.field == "state_name") {
+										// 	if(me.selectTabObj.code == "hospital") {
+										// 		f.isshow = "F";
+										// 	}
+										// }
+										tableFields_.push(clone(f));
+
+										
+										if(f.field == "province") {
+											f.options = me.dataRequestObj.md_province;
+										}
+										if (f.isfilter) {
+											filterFields_.push(clone(f));
+										}
+										// else if (f.field == "state_name"){
+										// 	f.inputtypefilter = "select";
+										// 	f.filterfield = "state_code";
+
+										// 	if(me.selectTabObj.code == "infoAll" || me.selectTabObj.code == "authAll"){
+										// 		f.options = me.dataRequestObj.machine_state;
+										// 		filterFields_.push(clone(f));
+										// 	}
+										// }
+										else {
+											var filter_f = clone(f);
+											filter_f.isshow = "F";
+											filterFields_.push(filter_f);
+										}
+									})
+									if (!me.selectTabObj.filterFields || (me.selectTabObj.filterFields && me.selectTabObj.filterFields.length == 0)) {
+										me.selectTabObj.filterFields = clone(filterFields_);
+										me.selectTabObj.tableFields = clone(tableFields_);
+										
+										//瀛楁鏁扮粍杞瓧娈祇bj锛岀洰鐨勪负浜嗙瓫閫夋椂鑾峰彇瀛楁灞炴��
+										me.fieldsToFieldsObj();
+										
+										//璁剧疆瀛楁浜嬩欢
+										me.tableFieldClick();
+										
+									}
+								}
+								
+								if (callback) {
+									callback();
+								}
+							});
+						},
+						
+						tableFieldClick() {
+							var me = this;
+							//杈栧尯鍖婚櫌鍒楄〃
+							var tablefieldClick_hospital = {
+								code: {//瀛楁浜嬩欢璁剧疆
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											me.showInfo(obj); 
+										},
+									},
+								}
+							};
+							//杈栧尯鍙樻洿
+							var tablefieldClick_info = {
+								//waiting
+								hospital_code: {//瀛楁浜嬩欢璁剧疆
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											me.showChangeInfo(obj); 
+										},
+									},
+								},
+								state_name: {//鐘舵��
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: ["鑽夌","鑽夌"],
+										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: {},
+												sceneCode: "browse",
+												callback: function(obj, callback) {
+													if (callback) {
+														callback();
+													}
+												}
+											};
+											me.doPopupByPublic(config);
+										},
+									},	
+								},
+							};
+							//鍖婚櫌鎺堟潈鍒楄〃
+							var tablefieldClick_org = {
+								category_name: {//鎺堟潈浜у搧
+									val: {
+										notclick_val: "",//涓嶅彲鐐瑰嚮鐨勫��,1銆佹槸鏁扮粍["11","22"]锛�2銆佷互鈥�;鈥濆垎闅旂殑瀛楃涓�"111;222"
+										notclick_bindfield: [
+											{
+												field: "id", 
+												val: null,
+											}
+										],//褰撹瀛楁鍊肩瓑浜庢寚瀹氬瓧娈靛�兼椂涓嶅彲鐐瑰嚮["filterfield": "111"]
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											me.showAuthInfo(obj.row)
+										},
+									},
+									defaultval: {
+										val: "鏌ョ湅",//绌哄�兼椂鐨勬樉绀哄��
+										onclick: function(obj) {//榛樿鍊肩偣鍑讳簨浠�,姝や簨浠堕渶瑕佽缃畍al鎵嶆湁鏁�
+											me.showAuthInfo(obj.row)
+										}
+									},
+								},
+								state_name: {//鐘舵��
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: ["鑽夌","鑽夌"],
+										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: {},
+												sceneCode: "browse",
+												callback: function(obj, callback) {
+													if (callback) {
+														callback();
+													}
+												}
+											};
+											me.doPopupByPublic(config);
+										},
+									},	
+								},
+							};
+							//鎺堟潈鍙樻洿
+							var tablefieldClick_auth = {
+								state_name: {//鐘舵��
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: ["鑽夌","鑽夌"],
+										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: {},
+												sceneCode: "browse",
+												callback: function(obj, callback) {
+													if (callback) {
+														callback();
+													}
+												}
+											};
+											me.doPopupByPublic(config);
+										},
+									},	
+								},
+								type_name: {//鎺堟潈浜у搧
+									val: {
+										notclick_val: "",//涓嶅彲鐐瑰嚮鐨勫��,1銆佹槸鏁扮粍["11","22"]锛�2銆佷互鈥�;鈥濆垎闅旂殑瀛楃涓�"111;222"
+										notclick_bindfield: [],//褰撹瀛楁鍊肩瓑浜庢寚瀹氬瓧娈靛�兼椂涓嶅彲鐐瑰嚮["filterfield": "111"]
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											me.showAuthChange(obj.row)
+										},
+									},
+									defaultval: {
+										val: "鏌ョ湅",//绌哄�兼椂鐨勬樉绀哄��
+										onclick: function(obj) {//榛樿鍊肩偣鍑讳簨浠�,姝や簨浠堕渶瑕佽缃畍al鎵嶆湁鏁�
+											me.showAuthChange(obj.row)
+										}
+									},
+								},
+							};
+							
+							var filterfieldClick = {};
+							
+							//鍖婚櫌绠$悊鍒楄〃-杈栧尯鍖婚櫌tab
+							if (this.selectTabObj.code == "hospital") {
+								this.selectTabObj.tablefieldClick = tablefieldClick_hospital;
+							}
+							//杈栧尯鏂板/鍙樻洿-杈栧尯瀹℃壒涓�佸叏閮ㄨ緰鍖虹敵璇穞ab
+							else if (this.selectTabObj.code == "infoUnderApproval" || this.selectTabObj.code == "infoAll") {
+								this.selectTabObj.tablefieldClick = tablefieldClick_info;
+							}
+							//鍖婚櫌鎺堟潈鍒楄〃-鍖婚櫌鎺堟潈tab
+							else if (this.selectTabObj.code == "authorize") {
+								this.selectTabObj.tablefieldClick = tablefieldClick_org;
+							}
+							//鎺堟潈鍙樻洿-鎺堟潈瀹℃壒涓�佸叏閮ㄦ巿鏉冪敵璇穞ab
+							else if (this.selectTabObj.code == "authUnderApproval" || this.selectTabObj.code == "authAll") {
+								this.selectTabObj.tablefieldClick = tablefieldClick_auth;
+							}
+							
+							this.filterfieldClick = filterfieldClick;
+						},
+						
+						tableButtonClick() {
+							var me = this;
+							var tablebuttonClick = {};
+							tablebuttonClick.hospital = [
+								{
+									isbuttonshow: me.cbuttons_r.add ? me.cbuttons_r.add : false,type:"primary",
+									code: "add",isselected: false,classname: "",
+									onclick: function(obj) {
+										me.openPolicy('add', {})
+									}
+								},
+								{
+									// name: "鎻愪氦", // type: "primary", // icon: "el-icon-edit",
+									isbuttonshow:  me.cbuttons_r.submit ? me.cbuttons_r.submit : false,	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) {
+										// me.commitData(obj.selectedList[0]);
+										me.openPolicy('edit', obj.selectedList[0])
+									}
+								},
+								{
+									isbuttonshow: me.cbuttons_r.edit ? me.cbuttons_r.edit : false,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.openPolicy('edit', obj.selectedList[0])
+									}
+								},
+								{
+									isbuttonshow:  me.cbuttons_r.delete ? me.cbuttons_r.delete : false, 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.delDataPolicy(obj, obj.selectedList[0])
+									}
+								}
+							];
+							
+							tablebuttonClick.infoUnderApproval = [
+								{
+									isbuttonshow:  me.cbuttons_r.formdetail ? me.cbuttons_r.formdetail : false,type:"primary",
+									code: "formdetail",isselected: false,classname: "",
+									onclick: function(obj) {
+										me.openPolicy("browse", obj.selectedList[0])
+									}
+								},
+									
+							]
+							tablebuttonClick.infoAll = [
+								{
+									isbuttonshow:  me.cbuttons_r.formdetail ? me.cbuttons_r.formdetail : false,type:"primary",
+									code: "formdetail",isselected: false,classname: "",
+									onclick: function(obj) {
+										me.openPolicy("browse", obj.selectedList[0])
+									}
+								},
+								
+							]
+							if (tablebuttonClick[this.activeTabName]) {
+								this.selectTabObj.tablebuttonClick = tablebuttonClick[this.activeTabName];
+							}
+							else {
+								this.selectTabObj.tablebuttonClick = []
+							}
+						},
+						
+						delDataPolicy(obj, row) {
+							let me = this;
+							let name_ = "璇ユ暟鎹�";
+							
+							if (!row.id) {
+								Root.message({
+									type: 'warning',
+									message: '璇烽�夋嫨鍒犻櫎鏁版嵁'
+								});  
+								return
+							}
+							if (row.md_hospital__name) {
+								name_ = "_" + row.md_hospital__name + "_";
+							}
+							
+							Root.confirm('纭畾鍒犻櫎' + name_ + '鍚楋紵', '鍒犻櫎鎻愮ず', {
+							  confirmButtonText: '鍒犻櫎',
+							  cancelButtonText: '鍙栨秷',
+							  type: 'warning'
+							}).then(() => {
+								let param = {
+									id: row.id,
+									dataname: me.selectTabObj.dataname,
+								}
+								Server.call("root/data/deleteEntity", param, function(result) {
+									Root.message({
+										type: 'success',
+										message: '鍒犻櫎鎴愬姛!'
+									});
+									me.onQuery();
+								});
+							}).catch(() => {
+								Root.message({
+									type: 'info',
+									message: '宸插彇娑堝垹闄�'
+								});          
+							});
+						},
+						
+						commitData(obj) {
+							var me = this;
+							Root.confirm('纭畾鎻愪氦杈栧尯鍖婚櫌' + obj.md_hospital__name + '鍚楋紵', '鎻愪氦鎻愮ず', {
+							  confirmButtonText: '鎻愪氦',
+							  cancelButtonText: '鍙栨秷',
+							  type: 'warning'
+							}).then(() => {
+								var param = {
+									dataname: me.selectTabObj.dataname,
+									id: obj.id,
+									to_state: "OpeningApproval" 
+								}
+								console.log(me.selectTabObj)
+								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: '宸插彇娑�'
+								});          
+							});
+						},
+						
+						openPolicy(sceneCode, row) {
+							let me = this;
+							var text = "";
+							
+							// type_code: "", // Standard鏍囧噯浠风洰琛ㄣ�丆ustomer缁忛攢鍟嗕环鐩〃
+							if (sceneCode == "add") {
+							}
+							else if (sceneCode == "edit" || sceneCode == "browse") {
+								if(!row){
+									Root.message({
+										type: 'warning',
+										message: '璇烽�夋嫨涓�鏉℃暟鎹�'
+									});
+									return;
+								}
+								
+								// if (row.customer_name) {
+								// 	text = row.customer_name;
+								// }
+								
+							}
+							
+							var config = {
+								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "320px",
+								icon: "icon-product",
+								text: "杈栧尯鍖婚櫌" + text,
+								id: "popup_position_hospital" + row.id + sceneCode,//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/popup/popup_position_hospital.html",
+								data: row,
+								delta: {dataname: me.selectTabObj.dataname,},
+								sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+
+						//杈栧尯鍖婚櫌鏂板
+						onAddData() {
+							var me = this;
+							
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "900px",
+								icon: "icon-product",
+								text: "鍖婚櫌绠$悊淇℃伅",
+								id: "hospital_list_info",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/hospital_list_info.html",
+								data: {},
+								delta: {},
+								sceneCode: "add",//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									//isSales鎻愪氦鍚庡埛鏂�'杈栧尯瀹℃壒涓�'tab
+									// if(me.isSales) {
+										var tab = {
+											name: 'infoUnderApproval',
+										};
+										me.activeTabName = 'infoUnderApproval';
+										me.handleClick(tab);
+										me.onQuery();
+									// } else {
+									// 	me.onQuery();
+									// }
+
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+						//杈栧尯鍖婚櫌淇℃伅鏌ョ湅
+						showInfo(obj) {
+							var me = this;
+							
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "1200px",
+								height: "600px",
+								icon: "icon-product",
+								text: obj.row.name  + " 鍖婚櫌绠$悊淇℃伅",
+								id: "hospital_list_info" + "browse" + obj.row.id,//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/hospital_list_info.html",
+								data: obj.row,
+								delta: {},
+								sceneCode: "browse", //"add"//"browse",
+								callback: function(obj, callback) {
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+						//杈栧尯鍖婚櫌鍙樻洿
+						onEditDataChange(config) {
+							var me = this;
+							var row = me.selectTabObj.selectedrow;
+
+							config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "500px",
+								icon: "icon-product",
+								text: row.name  + " 淇℃伅鍙樻洿",
+								id: "hospital_list_info" + row.id + "_edit",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/hospital_list_info.html",
+								data: row,
+								delta: {},
+								sceneCode: "change",//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									//isSales鎻愪氦鍚庡埛鏂�'杈栧尯瀹℃壒涓�'tab
+									// if(me.isSales) {
+										var tab = {
+											name: 'infoUnderApproval',
+										};
+										me.activeTabName = 'infoUnderApproval';
+										me.handleClick(tab);
+										me.onQuery();
+									// } else {
+									// 	me.onQuery();
+									// }
+
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+
+						//杈栧尯鍖婚櫌鍙樻洿鏌ョ湅
+						showChangeInfo(obj) {
+							var me = this;
+
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "500px",
+								icon: "icon-product",
+								text: obj.row.hospital_name + " 鍙樻洿淇℃伅",
+								id: "hospitalInfoChange" + obj.row.id + "infoChange_browse",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/hospital_list_info.html",
+								data: obj.row,
+								delta: {},
+								sceneCode: "infoChange_browse",//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+
+						//杈栧尯鍖婚櫌閫�鍥炵紪杈�
+						reEditInfo() {
+							var me = this;
+							var row = me.selectTabObj.selectedrow;
+
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "500px",
+								icon: "icon-product",
+								text: row.hospital_name + " 鍙樻洿淇℃伅",
+								id: "hospitalInfoChange" + row.id + "infoChange_browse",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/hospital_list_info.html",
+								data: row,
+								delta: {},
+								sceneCode: 'reEdit',//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									var tab = {
+										name: 'infoUnderApproval',
+									};
+									me.activeTabName = 'infoUnderApproval';
+									me.handleClick(tab);
+									me.onQuery();
+									
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+
+						//鎺堟潈淇℃伅鏌ョ湅
+						showAuthInfo(row) {
+							let me = this;
+							var delta_ = {};
+							if(!row.id) {
+								Root.message({
+									type: 'warning',
+									message: '璇ュ尰闄㈡殏鏃犳巿鏉冩暟鎹�'
+								});
+								return;
+							}
+							
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "950px",
+								height: "500px",
+								icon: "icon-product",
+								text: row.name + " 鎺堟潈淇℃伅",
+								id: "org_hospital_edit" + row.id + "browse",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/popup/org_hospital_edit.html",
+								data: row,
+								delta: delta_,
+								// filter: "state_code!='UnderApproval'",
+								sceneCode: "browse",//"edit", //"add"//"browse",
+								callback: function(obj, callback) {
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+
+						//鍖婚櫌鎺堟潈鍙樻洿
+						onAuthorize(auth_type) {
+							var me = this;
+							var row = me.selectTabObj.selectedrow;
+							
+							//3. popup
+							config = {
+								totab: true,
+								icon: "icon-product",
+								text: "鎺堟潈淇℃伅",
+								width: "900px",
+								height: "460px",
+								// id: "authorize_customer_list" + "edit" + row.id,
+								// url: "module/md/page/terminal/page/popup/authorize_customer_list.html",
+								// filter: "hospital_id='"+ row.id +"'",
+								// sceneCode: "edit",
+								id: "org_hospital_edit" + auth_type + row.id,
+								url: "module/md/page/terminal/page/popup/org_hospital_edit.html",
+								filter: "hospital_id='"+ row.id +"'",
+								sceneCode: auth_type,
+								data: row,
+								delta: {},
+								callback: function(obj, callback) {
+									//isSales鎻愪氦鍚庡埛鏂�'鎺堟潈瀹℃壒涓�'tab
+									if(me.isSales) {
+										var tab = {
+											name: 'authUnderApproval',
+										};
+										me.activeTabName = 'authUnderApproval';
+										me.handleClick(tab);
+										me.onQuery();
+									} else {
+										var tab = {
+											name: 'authorize',
+										};
+										me.activeTabName = 'authorize';
+										me.handleClick(tab);
+										me.onQuery();
+									}
+									if (callback) {
+										callback();
+									}
+								},
+							};
+							me.doPopupByPublic(config);
+						},
+
+						//鎺堟潈鍙樻洿鏌ョ湅
+						showAuthChange(row) {
+						    let me = this;
+						    var delta_ = {};
+
+						    var config = {
+						        totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+						        width: "950px",
+						        height: "500px",
+						        icon: "icon-product",
+						        text: row.hospital_name + " 鎺堟潈鍙樻洿淇℃伅",
+						        id: "org_hospital_edit" + row.id + "authChange_browse",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+						        url: "module/md/page/terminal/page/popup/org_hospital_edit.html",
+						        data: row,
+						        delta: delta_,
+						        // filter: "state_code!='UnderApproval'",
+						        sceneCode: 'authChange_browse',//"edit", //"add"//"browse",
+						        callback: function(obj, callback) {
+									//鍥為��缂栬緫鏃讹紝isSales鎻愪氦鍚庡埛鏂�'鎺堟潈瀹℃壒涓�'tab
+									if(sceneCode_ == "reEdit") {
+										if(me.isSales) {
+											var tab = {
+												name: 'authUnderApproval',
+											};
+											me.activeTabName = 'authUnderApproval';
+											me.handleClick(tab);
+											me.onQuery();
+										} else {
+											me.onQuery();
+										}
+									}
+									
+						            if (callback) {
+						                callback();
+						            }
+						        }
+						    };
+						    me.doPopupByPublic(config);
+						},
+
+						//鎺堟潈閫�鍥炵紪杈�
+						reEditAuth() {
+							var me = this;
+							var row = me.selectTabObj.selectedrow;
+
+							var config = {
+						        totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+						        width: "950px",
+						        height: "500px",
+						        icon: "icon-product",
+						        text: row.hospital_name + " 鎺堟潈鍙樻洿淇℃伅",
+						        id: "org_hospital_edit" + row.id + "reEdit",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+						        url: "module/md/page/terminal/page/popup/org_hospital_edit.html",
+						        data: row,
+						        delta: {},
+						        // filter: "state_code!='UnderApproval'",
+						        sceneCode: 'reEdit',//"edit", //"add"//"browse",
+						        callback: function(obj, callback) {
+									var tab = {
+										name: 'authUnderApproval',
+									};
+									me.activeTabName = 'authUnderApproval';
+									me.handleClick(tab);
+									me.onQuery();
+									
+						            if (callback) {
+						                callback();
+						            }
+						        }
+						    };
+						    me.doPopupByPublic(config);
+						},
+						
+						onDownload() {
+							let me = this;
+							var ioname = "export_md_position_hospital";
+							var sign = "md_position_hospital";
+							var filename = '杈栧尯鍖婚櫌瀵煎嚭' + String(new Date().getTime());
+							var filter_ = "1 = 1";
+							filter_ = this.getFilterData(filter_);
+							let param = {
+								sign: sign,
+								filename: filename,
+								filter: filter_,
+								ioname:ioname,
+								orderby: "",
+								token: Root.getToken()
+							}
+							window.top.vue.textdownloadForm(param);
+						},
+						
+						// DownloadTemplate() {
+						// 	var pathurl = "template/1.瀵煎叆妯℃澘/鐩爣鍖婚櫌妞嶅叆鎸囨爣.xlsx";
+						// 	handleDownload(pathurl);
+						// },
+						
+						DownloadTemplate() {
+							let me = this;
+							let param = {
+								// sign: "md_target_hospital",
+								ioname:"export_md_position_hospital_template",
+								orderby: "",
+								token: Root.getToken()
+							}
+							window.top.vue.textdownloadForm(param);
+						},
+												
+						onPopupByUploadFile() {
+							var me = this;
+							var ioname_ = "import_md_position_hospital"
+							var delta_ = {
+								filetypelist: [], 
+								isToDB: true,
+								dataname: this.selectTabObj.dataname,
+								tableFields: this.selectTabObj.tableFields,
+								otherSave: "salesBizLogic/saveDealerTargetByImport",
+							}
+							var config = {
+								totab: false,
+								width: "500px",
+								icon: "icon-product",
+								text: "鏁版嵁鏂囦欢涓婁紶",
+								id: "popup_uploadFileToDB",
+								url: "module/tool/page/popup_uploadFileToDB.html",
+								data: {
+									uploadType: "dealertarget",
+									tempTable: "temp_target_dealer",
+									operate_type: "dealertarget",
+									userid: me.userid,
+									ioname:ioname_,
+								},
+								delta: delta_,
+								callback: function(obj, callback) {
+									me.$message({
+										showClose: true,
+										message: '涓婁紶鎴愬姛锛�',
+										type: 'success'
+									});
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							this.doPopupByPublic(config);
+						},
+						
+						onShowLinkPharmacy() {
+							var me = this;
+							var row = me.selectTabObj.selectedrow;
+						
+							var config = {
+								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "950px",
+								height: "300px",
+								icon: "icon-product",
+								text: row.hospital_name + "-鍏宠仈闄㈠搴�",
+								id: "popup_linkpharmacy_list" + row.id + "browse",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/popup/popup_linkpharmacy_list.html",
+								data: row,
+								delta: {},
+								filter: "hospital_id='"+ row.hospital_id +"'",
+								sceneCode: 'browse',//"edit", //"add"//"browse",
+								callback: function(obj, callback) {
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+					}
+				});
+			};
+			
+			loadJsCss(function () {
+				initVue();
+			});
+		</script>
+		<style>
+			/* 鍦╲ue.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">
+			<div id="page_root">
+				<div class="topbar">
+					<span>{{title}}</span>
+
+					<div style="float: right;">
+						<el-button-group style="margin-left: 3px">
+							<el-button v-show="cbuttons_r.linkpharmacy" @click="onShowLinkPharmacy">鍏宠仈闄㈠搴�</el-button>
+							<el-button v-show="cbuttons_r.downloadTemplate" @click="DownloadTemplate">妯℃澘涓嬭浇</el-button>
+							<el-tooltip class="item" effect="dark" :content="buttonsconfig.clearandappend.tooltip" placement="top-start">
+								<el-button v-show="cbuttons_r.import" @click="onPopupByUploadFile":icon="buttonsconfig.clearandappend.icon">{{buttonsconfig.clearandappend.name}}</el-button>
+							</el-tooltip>
+							<el-button v-show="cbuttons_r.export" type="primary" @click="onDownload" :icon="buttonsconfig.export.icon">{{buttonsconfig.export.name}}</el-button>
+						</el-button-group>
+						<!-- <el-button 
+							v-show="cbuttons_r.Add && selectTabObj.code == 'hospital'" @click="addData":icon="buttonsconfig.add.icon">{{buttonsconfig.add.name}}
+						</el-button>
+						<el-button
+							v-show="cbuttons_r.Add && selectTabObj.code == 'hospital'"
+							:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id)"
+							@click="onEditDataChange" :icon="buttonsconfig.change.icon">鍙樻洿
+						</el-button>
+
+						<el-button
+							v-show="cbuttons_r.Auth && selectTabObj.code == 'hospital'"
+							:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id)"
+							@click="onAuthorize('add')" :icon="buttonsconfig.authorize.icon">鏂板鎺堟潈
+						</el-button>
+
+						<el-button-group v-show="selectTabObj.code == 'authorize'" style="margin-left: 3px;">
+							<el-button
+								v-show="cbuttons_r.Auth"
+								@click="onAuthorize('add')" :icon="buttonsconfig.authorize.icon">鏂板鎺堟潈
+							</el-button>
+							<el-button
+								v-show="cbuttons_r.Auth"
+								:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id)"
+								@click="onAuthorize('change')" :icon="buttonsconfig.authorize.icon">鍙樻洿鎺堟潈
+							</el-button>
+							<el-button
+								v-show="cbuttons_r.Auth"
+								:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id)"
+								type="danger"
+								@click="onAuthorize('delete')" :icon="buttonsconfig.authorize.icon">鍙栨秷鎺堟潈
+							</el-button>
+						</el-button-group>
+
+						<el-button-group v-show="selectTabObj.code == 'infoAll'" style="margin-left: 3px;">
+							<el-button
+								v-show="cbuttons_r.Add"
+								:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id && (selectTabObj.selectedrow.state_code == 'Rejected' || selectTabObj.selectedrow.state_code == 'Input') && selectTabObj.selectedrow.create_id == saveUser)"
+								@click="reEditInfo" :icon="buttonsconfig.edit.icon">缂栬緫
+							</el-button>
+						</el-button-group>
+
+						<el-button-group v-show="selectTabObj.code == 'authAll'" style="margin-left: 3px;">
+							<el-button
+								v-show="cbuttons_r.Auth"
+								:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id && (selectTabObj.selectedrow.state_code == 'Rejected' || selectTabObj.selectedrow.state_code == 'Input') && selectTabObj.selectedrow.create_id == saveUser)"
+								@click="reEditAuth" :icon="buttonsconfig.edit.icon">缂栬緫
+							</el-button>
+						</el-button-group> -->
+					</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"
+						:filtersobj="selectTabObj.filterObj"
+						:is-show-index="selectTabObj.isShowIndex"
+						:tableloading="tableloading"
+						:isdraggableorder="false"
+						:is-highlight-row="true"
+						
+						v-on:get-data="getData"
+						v-on:row-click="rowClick"
+					>
+					</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>
diff --git a/module/flow/page/flow_inventory_list.html b/module/flow/page/flow_inventory_list.html
new file mode 100644
index 0000000..92d4946
--- /dev/null
+++ b/module/flow/page/flow_inventory_list.html
@@ -0,0 +1,1095 @@
+<!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: "month", name: "鏈堟祦鍚�", dataname: "flow_daily_sell", filterTxt: "", orderby: ""},
+							{code: "daily", name: "鏃ユ祦鍚�", dataname: "flow_month_sell", filterTxt: "", orderby: ""},
+						],
+						d_tabs: {
+							month: true,
+							daily: true,
+						},
+						tabs: [],
+						tabsobj: {},
+
+						dataRequest: [],
+						authTableFields: [
+							{field: "code", name: "鍖婚櫌缂栫爜", isshow: "T", align: "center",width: "150"},
+							{field: "name", name: "鍖婚櫌鍚嶇О", isshow: "T", align: "left",width: "200", isminwidth: true},
+							{field: "org_code", name: "缁忛攢鍟嗙紪鐮�", isshow: "T", align: "center",width: "150"},
+							{field: "org_name", name: "缁忛攢鍟嗗悕绉�", isshow: "T", align: "left",width: "200", isminwidth: true},
+						],
+						authFilterFields: [
+							{isshow: "T", field: "code", name: "鍖婚櫌缂栫爜", filterfield:"", filteroperator: "like", type: ""},
+							{isshow: "T", field: "name", name: "鍖婚櫌鍚嶇О", filterfield:"", filteroperator: "like", type: ""},
+							{isshow: "T", field: "org_code", name: "缁忛攢鍟嗙紪鐮�", filterfield:"", filteroperator: "like", type: ""},
+							{isshow: "T", field: "org_name", name: "缁忛攢鍟嗗悕绉�", filterfield:"", filteroperator: "like", type: ""},
+						],
+						
+						cbuttons_r: {},
+						ctabs_r: {},
+						filterTxt: "",
+						iscustomer: false,
+
+						isSales: false,//閿�鍞汉鍛橈紙閿�鍞唬琛ㄣ�佸ぇ鍖虹粡鐞嗐�佸皬鍖虹粡鐞嗭級
+						isRegionR: false,//澶у尯缁忕悊
+						saveUser: null,//鐧诲綍鑰卛d
+					},
+					created() {
+						if (window.top.vue.userinfo) {
+							this.saveUser = window.top.vue.userinfo.id;
+							if (window.top.vue.userinfo.currentactor.code == "Capacity-Sale" || window.top.vue.userinfo.currentactor.code == "Capacity-Region-R" || window.top.vue.userinfo.currentactor.code == "Capacity-Region-M") {
+								this.isSales = true;
+								if(window.top.vue.userinfo.currentactor.code == "Capacity-Region-R") {
+									this.isRegionR = true;
+								}
+							}
+						}
+					},
+					
+					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.cbuttons_r = result.buttons_r;
+								me.ctabs_r = result.tabs_r;
+								// me.ctabs_r = me.d_tabs
+								
+								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.tabs.length>0){
+											me.activeTabName = me.tabs[0].code;
+										}
+										//鑾峰彇鏁版嵁
+										//鍒濆鍖朤abs
+										me.initTabsPage(function() {
+											//鑾峰彇鏁版嵁
+											me.initData();
+										});
+										me.$nextTick(() => { // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
+											hideLoading();
+										});
+									});
+								}
+								else {
+									if(me.tabs.length>0){
+										me.activeTabName = me.tabs[0].code;
+									}
+									//鑾峰彇鏁版嵁
+									//鍒濆鍖朤abs
+									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_ = [];
+									// if(me.selectTabObj.code == 'authorize') {
+									// 	tableFields_ = clone(me.authTableFields);
+									// 	filterFields_ = clone(me.authFilterFields);
+									// } 
+									
+									metas.map(f=>{
+										// if(me.selectTabObj.code == 'authorize') {
+										// 	if (f.field == "begin_date" || f.field == "end_date" || f.field == "authorization_type" || f.field == "category_name") {
+										// 		f.isshow = "T";
+										// 		tableFields_.push(clone(f));
+										// 	}
+										// } else {
+										f.isshow = "T";
+										// if(f.field == "state_name") {
+										// 	if(me.selectTabObj.code == "hospital") {
+										// 		f.isshow = "F";
+										// 	}
+										// }
+										tableFields_.push(clone(f));
+
+										
+										if(f.field == "province") {
+											f.options = me.dataRequestObj.md_province;
+										}
+										if (f.isfilter) {
+											filterFields_.push(clone(f));
+										}
+										// else if (f.field == "state_name"){
+										// 	f.inputtypefilter = "select";
+										// 	f.filterfield = "state_code";
+
+										// 	if(me.selectTabObj.code == "infoAll" || me.selectTabObj.code == "authAll"){
+										// 		f.options = me.dataRequestObj.machine_state;
+										// 		filterFields_.push(clone(f));
+										// 	}
+										// }
+										else {
+											var filter_f = clone(f);
+											filter_f.isshow = "F";
+											filterFields_.push(filter_f);
+										}
+									})
+									if (!me.selectTabObj.filterFields || (me.selectTabObj.filterFields && me.selectTabObj.filterFields.length == 0)) {
+										me.selectTabObj.filterFields = clone(filterFields_);
+										me.selectTabObj.tableFields = clone(tableFields_);
+										
+										//瀛楁鏁扮粍杞瓧娈祇bj锛岀洰鐨勪负浜嗙瓫閫夋椂鑾峰彇瀛楁灞炴��
+										me.fieldsToFieldsObj();
+										
+										//璁剧疆瀛楁浜嬩欢
+										me.tableFieldClick();
+										
+									}
+								}
+								
+								if (callback) {
+									callback();
+								}
+							});
+						},
+						
+						tableFieldClick() {
+							var me = this;
+							//杈栧尯鍖婚櫌鍒楄〃
+							var tablefieldClick_hospital = {
+								code: {//瀛楁浜嬩欢璁剧疆
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											me.showInfo(obj); 
+										},
+									},
+								}
+							};
+							//杈栧尯鍙樻洿
+							var tablefieldClick_info = {
+								//waiting
+								hospital_code: {//瀛楁浜嬩欢璁剧疆
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											me.showChangeInfo(obj); 
+										},
+									},
+								},
+								state_name: {//鐘舵��
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: ["鑽夌","鑽夌"],
+										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: {},
+												sceneCode: "browse",
+												callback: function(obj, callback) {
+													if (callback) {
+														callback();
+													}
+												}
+											};
+											me.doPopupByPublic(config);
+										},
+									},	
+								},
+							};
+							//鍖婚櫌鎺堟潈鍒楄〃
+							var tablefieldClick_org = {
+								category_name: {//鎺堟潈浜у搧
+									val: {
+										notclick_val: "",//涓嶅彲鐐瑰嚮鐨勫��,1銆佹槸鏁扮粍["11","22"]锛�2銆佷互鈥�;鈥濆垎闅旂殑瀛楃涓�"111;222"
+										notclick_bindfield: [
+											{
+												field: "id", 
+												val: null,
+											}
+										],//褰撹瀛楁鍊肩瓑浜庢寚瀹氬瓧娈靛�兼椂涓嶅彲鐐瑰嚮["filterfield": "111"]
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											me.showAuthInfo(obj.row)
+										},
+									},
+									defaultval: {
+										val: "鏌ョ湅",//绌哄�兼椂鐨勬樉绀哄��
+										onclick: function(obj) {//榛樿鍊肩偣鍑讳簨浠�,姝や簨浠堕渶瑕佽缃畍al鎵嶆湁鏁�
+											me.showAuthInfo(obj.row)
+										}
+									},
+								},
+								state_name: {//鐘舵��
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: ["鑽夌","鑽夌"],
+										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: {},
+												sceneCode: "browse",
+												callback: function(obj, callback) {
+													if (callback) {
+														callback();
+													}
+												}
+											};
+											me.doPopupByPublic(config);
+										},
+									},	
+								},
+							};
+							//鎺堟潈鍙樻洿
+							var tablefieldClick_auth = {
+								state_name: {//鐘舵��
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: ["鑽夌","鑽夌"],
+										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: {},
+												sceneCode: "browse",
+												callback: function(obj, callback) {
+													if (callback) {
+														callback();
+													}
+												}
+											};
+											me.doPopupByPublic(config);
+										},
+									},	
+								},
+								type_name: {//鎺堟潈浜у搧
+									val: {
+										notclick_val: "",//涓嶅彲鐐瑰嚮鐨勫��,1銆佹槸鏁扮粍["11","22"]锛�2銆佷互鈥�;鈥濆垎闅旂殑瀛楃涓�"111;222"
+										notclick_bindfield: [],//褰撹瀛楁鍊肩瓑浜庢寚瀹氬瓧娈靛�兼椂涓嶅彲鐐瑰嚮["filterfield": "111"]
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											me.showAuthChange(obj.row)
+										},
+									},
+									defaultval: {
+										val: "鏌ョ湅",//绌哄�兼椂鐨勬樉绀哄��
+										onclick: function(obj) {//榛樿鍊肩偣鍑讳簨浠�,姝や簨浠堕渶瑕佽缃畍al鎵嶆湁鏁�
+											me.showAuthChange(obj.row)
+										}
+									},
+								},
+							};
+							
+							var filterfieldClick = {};
+							
+							//鍖婚櫌绠$悊鍒楄〃-杈栧尯鍖婚櫌tab
+							if (this.selectTabObj.code == "hospital") {
+								this.selectTabObj.tablefieldClick = tablefieldClick_hospital;
+							}
+							//杈栧尯鏂板/鍙樻洿-杈栧尯瀹℃壒涓�佸叏閮ㄨ緰鍖虹敵璇穞ab
+							else if (this.selectTabObj.code == "infoUnderApproval" || this.selectTabObj.code == "infoAll") {
+								this.selectTabObj.tablefieldClick = tablefieldClick_info;
+							}
+							//鍖婚櫌鎺堟潈鍒楄〃-鍖婚櫌鎺堟潈tab
+							else if (this.selectTabObj.code == "authorize") {
+								this.selectTabObj.tablefieldClick = tablefieldClick_org;
+							}
+							//鎺堟潈鍙樻洿-鎺堟潈瀹℃壒涓�佸叏閮ㄦ巿鏉冪敵璇穞ab
+							else if (this.selectTabObj.code == "authUnderApproval" || this.selectTabObj.code == "authAll") {
+								this.selectTabObj.tablefieldClick = tablefieldClick_auth;
+							}
+							
+							this.filterfieldClick = filterfieldClick;
+						},
+						
+						tableButtonClick() {
+							var me = this;
+							var tablebuttonClick = {};
+							tablebuttonClick.hospital = [
+								{
+									isbuttonshow: me.cbuttons_r.add ? me.cbuttons_r.add : false,type:"primary",
+									code: "add",isselected: false,classname: "",
+									onclick: function(obj) {
+										me.openPolicy('add', {})
+									}
+								},
+								{
+									// name: "鎻愪氦", // type: "primary", // icon: "el-icon-edit",
+									isbuttonshow:  me.cbuttons_r.submit ? me.cbuttons_r.submit : false,	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) {
+										// me.commitData(obj.selectedList[0]);
+										me.openPolicy('edit', obj.selectedList[0])
+									}
+								},
+								{
+									isbuttonshow: me.cbuttons_r.edit ? me.cbuttons_r.edit : false,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.openPolicy('edit', obj.selectedList[0])
+									}
+								},
+								{
+									isbuttonshow:  me.cbuttons_r.delete ? me.cbuttons_r.delete : false, 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.delDataPolicy(obj, obj.selectedList[0])
+									}
+								}
+							];
+							
+							tablebuttonClick.infoUnderApproval = [
+								{
+									isbuttonshow:  me.cbuttons_r.formdetail ? me.cbuttons_r.formdetail : false,type:"primary",
+									code: "formdetail",isselected: false,classname: "",
+									onclick: function(obj) {
+										me.openPolicy("browse", obj.selectedList[0])
+									}
+								},
+									
+							]
+							tablebuttonClick.infoAll = [
+								{
+									isbuttonshow:  me.cbuttons_r.formdetail ? me.cbuttons_r.formdetail : false,type:"primary",
+									code: "formdetail",isselected: false,classname: "",
+									onclick: function(obj) {
+										me.openPolicy("browse", obj.selectedList[0])
+									}
+								},
+								
+							]
+							if (tablebuttonClick[this.activeTabName]) {
+								this.selectTabObj.tablebuttonClick = tablebuttonClick[this.activeTabName];
+							}
+							else {
+								this.selectTabObj.tablebuttonClick = []
+							}
+						},
+						
+						delDataPolicy(obj, row) {
+							let me = this;
+							let name_ = "璇ユ暟鎹�";
+							
+							if (!row.id) {
+								Root.message({
+									type: 'warning',
+									message: '璇烽�夋嫨鍒犻櫎鏁版嵁'
+								});  
+								return
+							}
+							if (row.md_hospital__name) {
+								name_ = "_" + row.md_hospital__name + "_";
+							}
+							
+							Root.confirm('纭畾鍒犻櫎' + name_ + '鍚楋紵', '鍒犻櫎鎻愮ず', {
+							  confirmButtonText: '鍒犻櫎',
+							  cancelButtonText: '鍙栨秷',
+							  type: 'warning'
+							}).then(() => {
+								let param = {
+									id: row.id,
+									dataname: me.selectTabObj.dataname,
+								}
+								Server.call("root/data/deleteEntity", param, function(result) {
+									Root.message({
+										type: 'success',
+										message: '鍒犻櫎鎴愬姛!'
+									});
+									me.onQuery();
+								});
+							}).catch(() => {
+								Root.message({
+									type: 'info',
+									message: '宸插彇娑堝垹闄�'
+								});          
+							});
+						},
+						
+						commitData(obj) {
+							var me = this;
+							Root.confirm('纭畾鎻愪氦杈栧尯鍖婚櫌' + obj.md_hospital__name + '鍚楋紵', '鎻愪氦鎻愮ず', {
+							  confirmButtonText: '鎻愪氦',
+							  cancelButtonText: '鍙栨秷',
+							  type: 'warning'
+							}).then(() => {
+								var param = {
+									dataname: me.selectTabObj.dataname,
+									id: obj.id,
+									to_state: "OpeningApproval" 
+								}
+								console.log(me.selectTabObj)
+								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: '宸插彇娑�'
+								});          
+							});
+						},
+						
+						openPolicy(sceneCode, row) {
+							let me = this;
+							var text = "";
+							
+							// type_code: "", // Standard鏍囧噯浠风洰琛ㄣ�丆ustomer缁忛攢鍟嗕环鐩〃
+							if (sceneCode == "add") {
+							}
+							else if (sceneCode == "edit" || sceneCode == "browse") {
+								if(!row){
+									Root.message({
+										type: 'warning',
+										message: '璇烽�夋嫨涓�鏉℃暟鎹�'
+									});
+									return;
+								}
+								
+								// if (row.customer_name) {
+								// 	text = row.customer_name;
+								// }
+								
+							}
+							
+							var config = {
+								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "320px",
+								icon: "icon-product",
+								text: "杈栧尯鍖婚櫌" + text,
+								id: "popup_position_hospital" + row.id + sceneCode,//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/popup/popup_position_hospital.html",
+								data: row,
+								delta: {dataname: me.selectTabObj.dataname,},
+								sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+
+						//杈栧尯鍖婚櫌鏂板
+						onAddData() {
+							var me = this;
+							
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "900px",
+								icon: "icon-product",
+								text: "鍖婚櫌绠$悊淇℃伅",
+								id: "hospital_list_info",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/hospital_list_info.html",
+								data: {},
+								delta: {},
+								sceneCode: "add",//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									//isSales鎻愪氦鍚庡埛鏂�'杈栧尯瀹℃壒涓�'tab
+									// if(me.isSales) {
+										var tab = {
+											name: 'infoUnderApproval',
+										};
+										me.activeTabName = 'infoUnderApproval';
+										me.handleClick(tab);
+										me.onQuery();
+									// } else {
+									// 	me.onQuery();
+									// }
+
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+						//杈栧尯鍖婚櫌淇℃伅鏌ョ湅
+						showInfo(obj) {
+							var me = this;
+							
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "1200px",
+								height: "600px",
+								icon: "icon-product",
+								text: obj.row.name  + " 鍖婚櫌绠$悊淇℃伅",
+								id: "hospital_list_info" + "browse" + obj.row.id,//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/hospital_list_info.html",
+								data: obj.row,
+								delta: {},
+								sceneCode: "browse", //"add"//"browse",
+								callback: function(obj, callback) {
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+						//杈栧尯鍖婚櫌鍙樻洿
+						onEditDataChange(config) {
+							var me = this;
+							var row = me.selectTabObj.selectedrow;
+
+							config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "500px",
+								icon: "icon-product",
+								text: row.name  + " 淇℃伅鍙樻洿",
+								id: "hospital_list_info" + row.id + "_edit",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/hospital_list_info.html",
+								data: row,
+								delta: {},
+								sceneCode: "change",//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									//isSales鎻愪氦鍚庡埛鏂�'杈栧尯瀹℃壒涓�'tab
+									// if(me.isSales) {
+										var tab = {
+											name: 'infoUnderApproval',
+										};
+										me.activeTabName = 'infoUnderApproval';
+										me.handleClick(tab);
+										me.onQuery();
+									// } else {
+									// 	me.onQuery();
+									// }
+
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+
+						//杈栧尯鍖婚櫌鍙樻洿鏌ョ湅
+						showChangeInfo(obj) {
+							var me = this;
+
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "500px",
+								icon: "icon-product",
+								text: obj.row.hospital_name + " 鍙樻洿淇℃伅",
+								id: "hospitalInfoChange" + obj.row.id + "infoChange_browse",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/hospital_list_info.html",
+								data: obj.row,
+								delta: {},
+								sceneCode: "infoChange_browse",//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+
+						//杈栧尯鍖婚櫌閫�鍥炵紪杈�
+						reEditInfo() {
+							var me = this;
+							var row = me.selectTabObj.selectedrow;
+
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "500px",
+								icon: "icon-product",
+								text: row.hospital_name + " 鍙樻洿淇℃伅",
+								id: "hospitalInfoChange" + row.id + "infoChange_browse",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/hospital_list_info.html",
+								data: row,
+								delta: {},
+								sceneCode: 'reEdit',//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									var tab = {
+										name: 'infoUnderApproval',
+									};
+									me.activeTabName = 'infoUnderApproval';
+									me.handleClick(tab);
+									me.onQuery();
+									
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+
+						//鎺堟潈淇℃伅鏌ョ湅
+						showAuthInfo(row) {
+							let me = this;
+							var delta_ = {};
+							if(!row.id) {
+								Root.message({
+									type: 'warning',
+									message: '璇ュ尰闄㈡殏鏃犳巿鏉冩暟鎹�'
+								});
+								return;
+							}
+							
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "950px",
+								height: "500px",
+								icon: "icon-product",
+								text: row.name + " 鎺堟潈淇℃伅",
+								id: "org_hospital_edit" + row.id + "browse",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/popup/org_hospital_edit.html",
+								data: row,
+								delta: delta_,
+								// filter: "state_code!='UnderApproval'",
+								sceneCode: "browse",//"edit", //"add"//"browse",
+								callback: function(obj, callback) {
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+
+						//鍖婚櫌鎺堟潈鍙樻洿
+						onAuthorize(auth_type) {
+							var me = this;
+							var row = me.selectTabObj.selectedrow;
+							
+							//3. popup
+							config = {
+								totab: true,
+								icon: "icon-product",
+								text: "鎺堟潈淇℃伅",
+								width: "900px",
+								height: "460px",
+								// id: "authorize_customer_list" + "edit" + row.id,
+								// url: "module/md/page/terminal/page/popup/authorize_customer_list.html",
+								// filter: "hospital_id='"+ row.id +"'",
+								// sceneCode: "edit",
+								id: "org_hospital_edit" + auth_type + row.id,
+								url: "module/md/page/terminal/page/popup/org_hospital_edit.html",
+								filter: "hospital_id='"+ row.id +"'",
+								sceneCode: auth_type,
+								data: row,
+								delta: {},
+								callback: function(obj, callback) {
+									//isSales鎻愪氦鍚庡埛鏂�'鎺堟潈瀹℃壒涓�'tab
+									if(me.isSales) {
+										var tab = {
+											name: 'authUnderApproval',
+										};
+										me.activeTabName = 'authUnderApproval';
+										me.handleClick(tab);
+										me.onQuery();
+									} else {
+										var tab = {
+											name: 'authorize',
+										};
+										me.activeTabName = 'authorize';
+										me.handleClick(tab);
+										me.onQuery();
+									}
+									if (callback) {
+										callback();
+									}
+								},
+							};
+							me.doPopupByPublic(config);
+						},
+
+						//鎺堟潈鍙樻洿鏌ョ湅
+						showAuthChange(row) {
+						    let me = this;
+						    var delta_ = {};
+
+						    var config = {
+						        totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+						        width: "950px",
+						        height: "500px",
+						        icon: "icon-product",
+						        text: row.hospital_name + " 鎺堟潈鍙樻洿淇℃伅",
+						        id: "org_hospital_edit" + row.id + "authChange_browse",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+						        url: "module/md/page/terminal/page/popup/org_hospital_edit.html",
+						        data: row,
+						        delta: delta_,
+						        // filter: "state_code!='UnderApproval'",
+						        sceneCode: 'authChange_browse',//"edit", //"add"//"browse",
+						        callback: function(obj, callback) {
+									//鍥為��缂栬緫鏃讹紝isSales鎻愪氦鍚庡埛鏂�'鎺堟潈瀹℃壒涓�'tab
+									if(sceneCode_ == "reEdit") {
+										if(me.isSales) {
+											var tab = {
+												name: 'authUnderApproval',
+											};
+											me.activeTabName = 'authUnderApproval';
+											me.handleClick(tab);
+											me.onQuery();
+										} else {
+											me.onQuery();
+										}
+									}
+									
+						            if (callback) {
+						                callback();
+						            }
+						        }
+						    };
+						    me.doPopupByPublic(config);
+						},
+
+						//鎺堟潈閫�鍥炵紪杈�
+						reEditAuth() {
+							var me = this;
+							var row = me.selectTabObj.selectedrow;
+
+							var config = {
+						        totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+						        width: "950px",
+						        height: "500px",
+						        icon: "icon-product",
+						        text: row.hospital_name + " 鎺堟潈鍙樻洿淇℃伅",
+						        id: "org_hospital_edit" + row.id + "reEdit",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+						        url: "module/md/page/terminal/page/popup/org_hospital_edit.html",
+						        data: row,
+						        delta: {},
+						        // filter: "state_code!='UnderApproval'",
+						        sceneCode: 'reEdit',//"edit", //"add"//"browse",
+						        callback: function(obj, callback) {
+									var tab = {
+										name: 'authUnderApproval',
+									};
+									me.activeTabName = 'authUnderApproval';
+									me.handleClick(tab);
+									me.onQuery();
+									
+						            if (callback) {
+						                callback();
+						            }
+						        }
+						    };
+						    me.doPopupByPublic(config);
+						},
+						
+						onDownload() {
+							let me = this;
+							var ioname = "export_md_position_hospital";
+							var sign = "md_position_hospital";
+							var filename = '杈栧尯鍖婚櫌瀵煎嚭' + String(new Date().getTime());
+							var filter_ = "1 = 1";
+							filter_ = this.getFilterData(filter_);
+							let param = {
+								sign: sign,
+								filename: filename,
+								filter: filter_,
+								ioname:ioname,
+								orderby: "",
+								token: Root.getToken()
+							}
+							window.top.vue.textdownloadForm(param);
+						},
+						
+						// DownloadTemplate() {
+						// 	var pathurl = "template/1.瀵煎叆妯℃澘/鐩爣鍖婚櫌妞嶅叆鎸囨爣.xlsx";
+						// 	handleDownload(pathurl);
+						// },
+						
+						DownloadTemplate() {
+							let me = this;
+							let param = {
+								// sign: "md_target_hospital",
+								ioname:"export_md_position_hospital_template",
+								orderby: "",
+								token: Root.getToken()
+							}
+							window.top.vue.textdownloadForm(param);
+						},
+												
+						onPopupByUploadFile() {
+							var me = this;
+							var ioname_ = "import_md_position_hospital"
+							var delta_ = {
+								filetypelist: [], 
+								isToDB: true,
+								dataname: this.selectTabObj.dataname,
+								tableFields: this.selectTabObj.tableFields,
+								otherSave: "salesBizLogic/saveDealerTargetByImport",
+							}
+							var config = {
+								totab: false,
+								width: "500px",
+								icon: "icon-product",
+								text: "鏁版嵁鏂囦欢涓婁紶",
+								id: "popup_uploadFileToDB",
+								url: "module/tool/page/popup_uploadFileToDB.html",
+								data: {
+									uploadType: "dealertarget",
+									tempTable: "temp_target_dealer",
+									operate_type: "dealertarget",
+									userid: me.userid,
+									ioname:ioname_,
+								},
+								delta: delta_,
+								callback: function(obj, callback) {
+									me.$message({
+										showClose: true,
+										message: '涓婁紶鎴愬姛锛�',
+										type: 'success'
+									});
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							this.doPopupByPublic(config);
+						},
+						
+						onShowLinkPharmacy() {
+							var me = this;
+							var row = me.selectTabObj.selectedrow;
+						
+							var config = {
+								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "950px",
+								height: "300px",
+								icon: "icon-product",
+								text: row.hospital_name + "-鍏宠仈闄㈠搴�",
+								id: "popup_linkpharmacy_list" + row.id + "browse",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/popup/popup_linkpharmacy_list.html",
+								data: row,
+								delta: {},
+								filter: "hospital_id='"+ row.hospital_id +"'",
+								sceneCode: 'browse',//"edit", //"add"//"browse",
+								callback: function(obj, callback) {
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+					}
+				});
+			};
+			
+			loadJsCss(function () {
+				initVue();
+			});
+		</script>
+		<style>
+			/* 鍦╲ue.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">
+			<div id="page_root">
+				<div class="topbar">
+					<span>{{title}}</span>
+
+					<div style="float: right;">
+						<el-button-group style="margin-left: 3px">
+							<el-button v-show="cbuttons_r.linkpharmacy" @click="onShowLinkPharmacy">鍏宠仈闄㈠搴�</el-button>
+							<el-button v-show="cbuttons_r.downloadTemplate" @click="DownloadTemplate">妯℃澘涓嬭浇</el-button>
+							<el-tooltip class="item" effect="dark" :content="buttonsconfig.clearandappend.tooltip" placement="top-start">
+								<el-button v-show="cbuttons_r.import" @click="onPopupByUploadFile":icon="buttonsconfig.clearandappend.icon">{{buttonsconfig.clearandappend.name}}</el-button>
+							</el-tooltip>
+							<el-button v-show="cbuttons_r.export" type="primary" @click="onDownload" :icon="buttonsconfig.export.icon">{{buttonsconfig.export.name}}</el-button>
+						</el-button-group>
+						<!-- <el-button 
+							v-show="cbuttons_r.Add && selectTabObj.code == 'hospital'" @click="addData":icon="buttonsconfig.add.icon">{{buttonsconfig.add.name}}
+						</el-button>
+						<el-button
+							v-show="cbuttons_r.Add && selectTabObj.code == 'hospital'"
+							:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id)"
+							@click="onEditDataChange" :icon="buttonsconfig.change.icon">鍙樻洿
+						</el-button>
+
+						<el-button
+							v-show="cbuttons_r.Auth && selectTabObj.code == 'hospital'"
+							:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id)"
+							@click="onAuthorize('add')" :icon="buttonsconfig.authorize.icon">鏂板鎺堟潈
+						</el-button>
+
+						<el-button-group v-show="selectTabObj.code == 'authorize'" style="margin-left: 3px;">
+							<el-button
+								v-show="cbuttons_r.Auth"
+								@click="onAuthorize('add')" :icon="buttonsconfig.authorize.icon">鏂板鎺堟潈
+							</el-button>
+							<el-button
+								v-show="cbuttons_r.Auth"
+								:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id)"
+								@click="onAuthorize('change')" :icon="buttonsconfig.authorize.icon">鍙樻洿鎺堟潈
+							</el-button>
+							<el-button
+								v-show="cbuttons_r.Auth"
+								:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id)"
+								type="danger"
+								@click="onAuthorize('delete')" :icon="buttonsconfig.authorize.icon">鍙栨秷鎺堟潈
+							</el-button>
+						</el-button-group>
+
+						<el-button-group v-show="selectTabObj.code == 'infoAll'" style="margin-left: 3px;">
+							<el-button
+								v-show="cbuttons_r.Add"
+								:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id && (selectTabObj.selectedrow.state_code == 'Rejected' || selectTabObj.selectedrow.state_code == 'Input') && selectTabObj.selectedrow.create_id == saveUser)"
+								@click="reEditInfo" :icon="buttonsconfig.edit.icon">缂栬緫
+							</el-button>
+						</el-button-group>
+
+						<el-button-group v-show="selectTabObj.code == 'authAll'" style="margin-left: 3px;">
+							<el-button
+								v-show="cbuttons_r.Auth"
+								:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id && (selectTabObj.selectedrow.state_code == 'Rejected' || selectTabObj.selectedrow.state_code == 'Input') && selectTabObj.selectedrow.create_id == saveUser)"
+								@click="reEditAuth" :icon="buttonsconfig.edit.icon">缂栬緫
+							</el-button>
+						</el-button-group> -->
+					</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"
+						:filtersobj="selectTabObj.filterObj"
+						:is-show-index="selectTabObj.isShowIndex"
+						:tableloading="tableloading"
+						:isdraggableorder="false"
+						:is-highlight-row="true"
+						
+						v-on:get-data="getData"
+						v-on:row-click="rowClick"
+					>
+					</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>
diff --git a/module/flow/page/flow_purchase_list.html b/module/flow/page/flow_purchase_list.html
new file mode 100644
index 0000000..acb6fe5
--- /dev/null
+++ b/module/flow/page/flow_purchase_list.html
@@ -0,0 +1,1095 @@
+<!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: "month", name: "鏈堟祦鍚�", dataname: "flow_daily_sell", filterTxt: "", orderby: ""},
+							{code: "daily", name: "鏃ユ祦鍚�", dataname: "flow_month_sell", filterTxt: "", orderby: ""},
+						],
+						d_tabs: {
+							month: true,
+							daily: true,
+						},
+						tabs: [],
+						tabsobj: {},
+
+						dataRequest: [],
+						authTableFields: [
+							{field: "code", name: "鍖婚櫌缂栫爜", isshow: "T", align: "center",width: "150"},
+							{field: "name", name: "鍖婚櫌鍚嶇О", isshow: "T", align: "left",width: "200", isminwidth: true},
+							{field: "org_code", name: "缁忛攢鍟嗙紪鐮�", isshow: "T", align: "center",width: "150"},
+							{field: "org_name", name: "缁忛攢鍟嗗悕绉�", isshow: "T", align: "left",width: "200", isminwidth: true},
+						],
+						authFilterFields: [
+							{isshow: "T", field: "code", name: "鍖婚櫌缂栫爜", filterfield:"", filteroperator: "like", type: ""},
+							{isshow: "T", field: "name", name: "鍖婚櫌鍚嶇О", filterfield:"", filteroperator: "like", type: ""},
+							{isshow: "T", field: "org_code", name: "缁忛攢鍟嗙紪鐮�", filterfield:"", filteroperator: "like", type: ""},
+							{isshow: "T", field: "org_name", name: "缁忛攢鍟嗗悕绉�", filterfield:"", filteroperator: "like", type: ""},
+						],
+						
+						cbuttons_r: {},
+						ctabs_r: {},
+						filterTxt: "",
+						iscustomer: false,
+
+						isSales: false,//閿�鍞汉鍛橈紙閿�鍞唬琛ㄣ�佸ぇ鍖虹粡鐞嗐�佸皬鍖虹粡鐞嗭級
+						isRegionR: false,//澶у尯缁忕悊
+						saveUser: null,//鐧诲綍鑰卛d
+					},
+					created() {
+						if (window.top.vue.userinfo) {
+							this.saveUser = window.top.vue.userinfo.id;
+							if (window.top.vue.userinfo.currentactor.code == "Capacity-Sale" || window.top.vue.userinfo.currentactor.code == "Capacity-Region-R" || window.top.vue.userinfo.currentactor.code == "Capacity-Region-M") {
+								this.isSales = true;
+								if(window.top.vue.userinfo.currentactor.code == "Capacity-Region-R") {
+									this.isRegionR = true;
+								}
+							}
+						}
+					},
+					
+					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.cbuttons_r = result.buttons_r;
+								me.ctabs_r = result.tabs_r;
+								// me.ctabs_r = me.d_tabs
+								
+								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.tabs.length>0){
+											me.activeTabName = me.tabs[0].code;
+										}
+										//鑾峰彇鏁版嵁
+										//鍒濆鍖朤abs
+										me.initTabsPage(function() {
+											//鑾峰彇鏁版嵁
+											me.initData();
+										});
+										me.$nextTick(() => { // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
+											hideLoading();
+										});
+									});
+								}
+								else {
+									if(me.tabs.length>0){
+										me.activeTabName = me.tabs[0].code;
+									}
+									//鑾峰彇鏁版嵁
+									//鍒濆鍖朤abs
+									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_ = [];
+									// if(me.selectTabObj.code == 'authorize') {
+									// 	tableFields_ = clone(me.authTableFields);
+									// 	filterFields_ = clone(me.authFilterFields);
+									// } 
+									
+									metas.map(f=>{
+										// if(me.selectTabObj.code == 'authorize') {
+										// 	if (f.field == "begin_date" || f.field == "end_date" || f.field == "authorization_type" || f.field == "category_name") {
+										// 		f.isshow = "T";
+										// 		tableFields_.push(clone(f));
+										// 	}
+										// } else {
+										f.isshow = "T";
+										// if(f.field == "state_name") {
+										// 	if(me.selectTabObj.code == "hospital") {
+										// 		f.isshow = "F";
+										// 	}
+										// }
+										tableFields_.push(clone(f));
+
+										
+										if(f.field == "province") {
+											f.options = me.dataRequestObj.md_province;
+										}
+										if (f.isfilter) {
+											filterFields_.push(clone(f));
+										}
+										// else if (f.field == "state_name"){
+										// 	f.inputtypefilter = "select";
+										// 	f.filterfield = "state_code";
+
+										// 	if(me.selectTabObj.code == "infoAll" || me.selectTabObj.code == "authAll"){
+										// 		f.options = me.dataRequestObj.machine_state;
+										// 		filterFields_.push(clone(f));
+										// 	}
+										// }
+										else {
+											var filter_f = clone(f);
+											filter_f.isshow = "F";
+											filterFields_.push(filter_f);
+										}
+									})
+									if (!me.selectTabObj.filterFields || (me.selectTabObj.filterFields && me.selectTabObj.filterFields.length == 0)) {
+										me.selectTabObj.filterFields = clone(filterFields_);
+										me.selectTabObj.tableFields = clone(tableFields_);
+										
+										//瀛楁鏁扮粍杞瓧娈祇bj锛岀洰鐨勪负浜嗙瓫閫夋椂鑾峰彇瀛楁灞炴��
+										me.fieldsToFieldsObj();
+										
+										//璁剧疆瀛楁浜嬩欢
+										me.tableFieldClick();
+										
+									}
+								}
+								
+								if (callback) {
+									callback();
+								}
+							});
+						},
+						
+						tableFieldClick() {
+							var me = this;
+							//杈栧尯鍖婚櫌鍒楄〃
+							var tablefieldClick_hospital = {
+								code: {//瀛楁浜嬩欢璁剧疆
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											me.showInfo(obj); 
+										},
+									},
+								}
+							};
+							//杈栧尯鍙樻洿
+							var tablefieldClick_info = {
+								//waiting
+								hospital_code: {//瀛楁浜嬩欢璁剧疆
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											me.showChangeInfo(obj); 
+										},
+									},
+								},
+								state_name: {//鐘舵��
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: ["鑽夌","鑽夌"],
+										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: {},
+												sceneCode: "browse",
+												callback: function(obj, callback) {
+													if (callback) {
+														callback();
+													}
+												}
+											};
+											me.doPopupByPublic(config);
+										},
+									},	
+								},
+							};
+							//鍖婚櫌鎺堟潈鍒楄〃
+							var tablefieldClick_org = {
+								category_name: {//鎺堟潈浜у搧
+									val: {
+										notclick_val: "",//涓嶅彲鐐瑰嚮鐨勫��,1銆佹槸鏁扮粍["11","22"]锛�2銆佷互鈥�;鈥濆垎闅旂殑瀛楃涓�"111;222"
+										notclick_bindfield: [
+											{
+												field: "id", 
+												val: null,
+											}
+										],//褰撹瀛楁鍊肩瓑浜庢寚瀹氬瓧娈靛�兼椂涓嶅彲鐐瑰嚮["filterfield": "111"]
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											me.showAuthInfo(obj.row)
+										},
+									},
+									defaultval: {
+										val: "鏌ョ湅",//绌哄�兼椂鐨勬樉绀哄��
+										onclick: function(obj) {//榛樿鍊肩偣鍑讳簨浠�,姝や簨浠堕渶瑕佽缃畍al鎵嶆湁鏁�
+											me.showAuthInfo(obj.row)
+										}
+									},
+								},
+								state_name: {//鐘舵��
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: ["鑽夌","鑽夌"],
+										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: {},
+												sceneCode: "browse",
+												callback: function(obj, callback) {
+													if (callback) {
+														callback();
+													}
+												}
+											};
+											me.doPopupByPublic(config);
+										},
+									},	
+								},
+							};
+							//鎺堟潈鍙樻洿
+							var tablefieldClick_auth = {
+								state_name: {//鐘舵��
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: ["鑽夌","鑽夌"],
+										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: {},
+												sceneCode: "browse",
+												callback: function(obj, callback) {
+													if (callback) {
+														callback();
+													}
+												}
+											};
+											me.doPopupByPublic(config);
+										},
+									},	
+								},
+								type_name: {//鎺堟潈浜у搧
+									val: {
+										notclick_val: "",//涓嶅彲鐐瑰嚮鐨勫��,1銆佹槸鏁扮粍["11","22"]锛�2銆佷互鈥�;鈥濆垎闅旂殑瀛楃涓�"111;222"
+										notclick_bindfield: [],//褰撹瀛楁鍊肩瓑浜庢寚瀹氬瓧娈靛�兼椂涓嶅彲鐐瑰嚮["filterfield": "111"]
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											me.showAuthChange(obj.row)
+										},
+									},
+									defaultval: {
+										val: "鏌ョ湅",//绌哄�兼椂鐨勬樉绀哄��
+										onclick: function(obj) {//榛樿鍊肩偣鍑讳簨浠�,姝や簨浠堕渶瑕佽缃畍al鎵嶆湁鏁�
+											me.showAuthChange(obj.row)
+										}
+									},
+								},
+							};
+							
+							var filterfieldClick = {};
+							
+							//鍖婚櫌绠$悊鍒楄〃-杈栧尯鍖婚櫌tab
+							if (this.selectTabObj.code == "hospital") {
+								this.selectTabObj.tablefieldClick = tablefieldClick_hospital;
+							}
+							//杈栧尯鏂板/鍙樻洿-杈栧尯瀹℃壒涓�佸叏閮ㄨ緰鍖虹敵璇穞ab
+							else if (this.selectTabObj.code == "infoUnderApproval" || this.selectTabObj.code == "infoAll") {
+								this.selectTabObj.tablefieldClick = tablefieldClick_info;
+							}
+							//鍖婚櫌鎺堟潈鍒楄〃-鍖婚櫌鎺堟潈tab
+							else if (this.selectTabObj.code == "authorize") {
+								this.selectTabObj.tablefieldClick = tablefieldClick_org;
+							}
+							//鎺堟潈鍙樻洿-鎺堟潈瀹℃壒涓�佸叏閮ㄦ巿鏉冪敵璇穞ab
+							else if (this.selectTabObj.code == "authUnderApproval" || this.selectTabObj.code == "authAll") {
+								this.selectTabObj.tablefieldClick = tablefieldClick_auth;
+							}
+							
+							this.filterfieldClick = filterfieldClick;
+						},
+						
+						tableButtonClick() {
+							var me = this;
+							var tablebuttonClick = {};
+							tablebuttonClick.hospital = [
+								{
+									isbuttonshow: me.cbuttons_r.add ? me.cbuttons_r.add : false,type:"primary",
+									code: "add",isselected: false,classname: "",
+									onclick: function(obj) {
+										me.openPolicy('add', {})
+									}
+								},
+								{
+									// name: "鎻愪氦", // type: "primary", // icon: "el-icon-edit",
+									isbuttonshow:  me.cbuttons_r.submit ? me.cbuttons_r.submit : false,	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) {
+										// me.commitData(obj.selectedList[0]);
+										me.openPolicy('edit', obj.selectedList[0])
+									}
+								},
+								{
+									isbuttonshow: me.cbuttons_r.edit ? me.cbuttons_r.edit : false,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.openPolicy('edit', obj.selectedList[0])
+									}
+								},
+								{
+									isbuttonshow:  me.cbuttons_r.delete ? me.cbuttons_r.delete : false, 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.delDataPolicy(obj, obj.selectedList[0])
+									}
+								}
+							];
+							
+							tablebuttonClick.infoUnderApproval = [
+								{
+									isbuttonshow:  me.cbuttons_r.formdetail ? me.cbuttons_r.formdetail : false,type:"primary",
+									code: "formdetail",isselected: false,classname: "",
+									onclick: function(obj) {
+										me.openPolicy("browse", obj.selectedList[0])
+									}
+								},
+									
+							]
+							tablebuttonClick.infoAll = [
+								{
+									isbuttonshow:  me.cbuttons_r.formdetail ? me.cbuttons_r.formdetail : false,type:"primary",
+									code: "formdetail",isselected: false,classname: "",
+									onclick: function(obj) {
+										me.openPolicy("browse", obj.selectedList[0])
+									}
+								},
+								
+							]
+							if (tablebuttonClick[this.activeTabName]) {
+								this.selectTabObj.tablebuttonClick = tablebuttonClick[this.activeTabName];
+							}
+							else {
+								this.selectTabObj.tablebuttonClick = []
+							}
+						},
+						
+						delDataPolicy(obj, row) {
+							let me = this;
+							let name_ = "璇ユ暟鎹�";
+							
+							if (!row.id) {
+								Root.message({
+									type: 'warning',
+									message: '璇烽�夋嫨鍒犻櫎鏁版嵁'
+								});  
+								return
+							}
+							if (row.md_hospital__name) {
+								name_ = "_" + row.md_hospital__name + "_";
+							}
+							
+							Root.confirm('纭畾鍒犻櫎' + name_ + '鍚楋紵', '鍒犻櫎鎻愮ず', {
+							  confirmButtonText: '鍒犻櫎',
+							  cancelButtonText: '鍙栨秷',
+							  type: 'warning'
+							}).then(() => {
+								let param = {
+									id: row.id,
+									dataname: me.selectTabObj.dataname,
+								}
+								Server.call("root/data/deleteEntity", param, function(result) {
+									Root.message({
+										type: 'success',
+										message: '鍒犻櫎鎴愬姛!'
+									});
+									me.onQuery();
+								});
+							}).catch(() => {
+								Root.message({
+									type: 'info',
+									message: '宸插彇娑堝垹闄�'
+								});          
+							});
+						},
+						
+						commitData(obj) {
+							var me = this;
+							Root.confirm('纭畾鎻愪氦杈栧尯鍖婚櫌' + obj.md_hospital__name + '鍚楋紵', '鎻愪氦鎻愮ず', {
+							  confirmButtonText: '鎻愪氦',
+							  cancelButtonText: '鍙栨秷',
+							  type: 'warning'
+							}).then(() => {
+								var param = {
+									dataname: me.selectTabObj.dataname,
+									id: obj.id,
+									to_state: "OpeningApproval" 
+								}
+								console.log(me.selectTabObj)
+								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: '宸插彇娑�'
+								});          
+							});
+						},
+						
+						openPolicy(sceneCode, row) {
+							let me = this;
+							var text = "";
+							
+							// type_code: "", // Standard鏍囧噯浠风洰琛ㄣ�丆ustomer缁忛攢鍟嗕环鐩〃
+							if (sceneCode == "add") {
+							}
+							else if (sceneCode == "edit" || sceneCode == "browse") {
+								if(!row){
+									Root.message({
+										type: 'warning',
+										message: '璇烽�夋嫨涓�鏉℃暟鎹�'
+									});
+									return;
+								}
+								
+								// if (row.customer_name) {
+								// 	text = row.customer_name;
+								// }
+								
+							}
+							
+							var config = {
+								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "320px",
+								icon: "icon-product",
+								text: "杈栧尯鍖婚櫌" + text,
+								id: "popup_position_hospital" + row.id + sceneCode,//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/popup/popup_position_hospital.html",
+								data: row,
+								delta: {dataname: me.selectTabObj.dataname,},
+								sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+
+						//杈栧尯鍖婚櫌鏂板
+						onAddData() {
+							var me = this;
+							
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "900px",
+								icon: "icon-product",
+								text: "鍖婚櫌绠$悊淇℃伅",
+								id: "hospital_list_info",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/hospital_list_info.html",
+								data: {},
+								delta: {},
+								sceneCode: "add",//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									//isSales鎻愪氦鍚庡埛鏂�'杈栧尯瀹℃壒涓�'tab
+									// if(me.isSales) {
+										var tab = {
+											name: 'infoUnderApproval',
+										};
+										me.activeTabName = 'infoUnderApproval';
+										me.handleClick(tab);
+										me.onQuery();
+									// } else {
+									// 	me.onQuery();
+									// }
+
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+						//杈栧尯鍖婚櫌淇℃伅鏌ョ湅
+						showInfo(obj) {
+							var me = this;
+							
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "1200px",
+								height: "600px",
+								icon: "icon-product",
+								text: obj.row.name  + " 鍖婚櫌绠$悊淇℃伅",
+								id: "hospital_list_info" + "browse" + obj.row.id,//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/hospital_list_info.html",
+								data: obj.row,
+								delta: {},
+								sceneCode: "browse", //"add"//"browse",
+								callback: function(obj, callback) {
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+						//杈栧尯鍖婚櫌鍙樻洿
+						onEditDataChange(config) {
+							var me = this;
+							var row = me.selectTabObj.selectedrow;
+
+							config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "500px",
+								icon: "icon-product",
+								text: row.name  + " 淇℃伅鍙樻洿",
+								id: "hospital_list_info" + row.id + "_edit",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/hospital_list_info.html",
+								data: row,
+								delta: {},
+								sceneCode: "change",//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									//isSales鎻愪氦鍚庡埛鏂�'杈栧尯瀹℃壒涓�'tab
+									// if(me.isSales) {
+										var tab = {
+											name: 'infoUnderApproval',
+										};
+										me.activeTabName = 'infoUnderApproval';
+										me.handleClick(tab);
+										me.onQuery();
+									// } else {
+									// 	me.onQuery();
+									// }
+
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+
+						//杈栧尯鍖婚櫌鍙樻洿鏌ョ湅
+						showChangeInfo(obj) {
+							var me = this;
+
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "500px",
+								icon: "icon-product",
+								text: obj.row.hospital_name + " 鍙樻洿淇℃伅",
+								id: "hospitalInfoChange" + obj.row.id + "infoChange_browse",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/hospital_list_info.html",
+								data: obj.row,
+								delta: {},
+								sceneCode: "infoChange_browse",//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+
+						//杈栧尯鍖婚櫌閫�鍥炵紪杈�
+						reEditInfo() {
+							var me = this;
+							var row = me.selectTabObj.selectedrow;
+
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "500px",
+								icon: "icon-product",
+								text: row.hospital_name + " 鍙樻洿淇℃伅",
+								id: "hospitalInfoChange" + row.id + "infoChange_browse",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/hospital_list_info.html",
+								data: row,
+								delta: {},
+								sceneCode: 'reEdit',//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									var tab = {
+										name: 'infoUnderApproval',
+									};
+									me.activeTabName = 'infoUnderApproval';
+									me.handleClick(tab);
+									me.onQuery();
+									
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+
+						//鎺堟潈淇℃伅鏌ョ湅
+						showAuthInfo(row) {
+							let me = this;
+							var delta_ = {};
+							if(!row.id) {
+								Root.message({
+									type: 'warning',
+									message: '璇ュ尰闄㈡殏鏃犳巿鏉冩暟鎹�'
+								});
+								return;
+							}
+							
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "950px",
+								height: "500px",
+								icon: "icon-product",
+								text: row.name + " 鎺堟潈淇℃伅",
+								id: "org_hospital_edit" + row.id + "browse",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/popup/org_hospital_edit.html",
+								data: row,
+								delta: delta_,
+								// filter: "state_code!='UnderApproval'",
+								sceneCode: "browse",//"edit", //"add"//"browse",
+								callback: function(obj, callback) {
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+
+						//鍖婚櫌鎺堟潈鍙樻洿
+						onAuthorize(auth_type) {
+							var me = this;
+							var row = me.selectTabObj.selectedrow;
+							
+							//3. popup
+							config = {
+								totab: true,
+								icon: "icon-product",
+								text: "鎺堟潈淇℃伅",
+								width: "900px",
+								height: "460px",
+								// id: "authorize_customer_list" + "edit" + row.id,
+								// url: "module/md/page/terminal/page/popup/authorize_customer_list.html",
+								// filter: "hospital_id='"+ row.id +"'",
+								// sceneCode: "edit",
+								id: "org_hospital_edit" + auth_type + row.id,
+								url: "module/md/page/terminal/page/popup/org_hospital_edit.html",
+								filter: "hospital_id='"+ row.id +"'",
+								sceneCode: auth_type,
+								data: row,
+								delta: {},
+								callback: function(obj, callback) {
+									//isSales鎻愪氦鍚庡埛鏂�'鎺堟潈瀹℃壒涓�'tab
+									if(me.isSales) {
+										var tab = {
+											name: 'authUnderApproval',
+										};
+										me.activeTabName = 'authUnderApproval';
+										me.handleClick(tab);
+										me.onQuery();
+									} else {
+										var tab = {
+											name: 'authorize',
+										};
+										me.activeTabName = 'authorize';
+										me.handleClick(tab);
+										me.onQuery();
+									}
+									if (callback) {
+										callback();
+									}
+								},
+							};
+							me.doPopupByPublic(config);
+						},
+
+						//鎺堟潈鍙樻洿鏌ョ湅
+						showAuthChange(row) {
+						    let me = this;
+						    var delta_ = {};
+
+						    var config = {
+						        totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+						        width: "950px",
+						        height: "500px",
+						        icon: "icon-product",
+						        text: row.hospital_name + " 鎺堟潈鍙樻洿淇℃伅",
+						        id: "org_hospital_edit" + row.id + "authChange_browse",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+						        url: "module/md/page/terminal/page/popup/org_hospital_edit.html",
+						        data: row,
+						        delta: delta_,
+						        // filter: "state_code!='UnderApproval'",
+						        sceneCode: 'authChange_browse',//"edit", //"add"//"browse",
+						        callback: function(obj, callback) {
+									//鍥為��缂栬緫鏃讹紝isSales鎻愪氦鍚庡埛鏂�'鎺堟潈瀹℃壒涓�'tab
+									if(sceneCode_ == "reEdit") {
+										if(me.isSales) {
+											var tab = {
+												name: 'authUnderApproval',
+											};
+											me.activeTabName = 'authUnderApproval';
+											me.handleClick(tab);
+											me.onQuery();
+										} else {
+											me.onQuery();
+										}
+									}
+									
+						            if (callback) {
+						                callback();
+						            }
+						        }
+						    };
+						    me.doPopupByPublic(config);
+						},
+
+						//鎺堟潈閫�鍥炵紪杈�
+						reEditAuth() {
+							var me = this;
+							var row = me.selectTabObj.selectedrow;
+
+							var config = {
+						        totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+						        width: "950px",
+						        height: "500px",
+						        icon: "icon-product",
+						        text: row.hospital_name + " 鎺堟潈鍙樻洿淇℃伅",
+						        id: "org_hospital_edit" + row.id + "reEdit",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+						        url: "module/md/page/terminal/page/popup/org_hospital_edit.html",
+						        data: row,
+						        delta: {},
+						        // filter: "state_code!='UnderApproval'",
+						        sceneCode: 'reEdit',//"edit", //"add"//"browse",
+						        callback: function(obj, callback) {
+									var tab = {
+										name: 'authUnderApproval',
+									};
+									me.activeTabName = 'authUnderApproval';
+									me.handleClick(tab);
+									me.onQuery();
+									
+						            if (callback) {
+						                callback();
+						            }
+						        }
+						    };
+						    me.doPopupByPublic(config);
+						},
+						
+						onDownload() {
+							let me = this;
+							var ioname = "export_md_position_hospital";
+							var sign = "md_position_hospital";
+							var filename = '杈栧尯鍖婚櫌瀵煎嚭' + String(new Date().getTime());
+							var filter_ = "1 = 1";
+							filter_ = this.getFilterData(filter_);
+							let param = {
+								sign: sign,
+								filename: filename,
+								filter: filter_,
+								ioname:ioname,
+								orderby: "",
+								token: Root.getToken()
+							}
+							window.top.vue.textdownloadForm(param);
+						},
+						
+						// DownloadTemplate() {
+						// 	var pathurl = "template/1.瀵煎叆妯℃澘/鐩爣鍖婚櫌妞嶅叆鎸囨爣.xlsx";
+						// 	handleDownload(pathurl);
+						// },
+						
+						DownloadTemplate() {
+							let me = this;
+							let param = {
+								// sign: "md_target_hospital",
+								ioname:"export_md_position_hospital_template",
+								orderby: "",
+								token: Root.getToken()
+							}
+							window.top.vue.textdownloadForm(param);
+						},
+												
+						onPopupByUploadFile() {
+							var me = this;
+							var ioname_ = "import_md_position_hospital"
+							var delta_ = {
+								filetypelist: [], 
+								isToDB: true,
+								dataname: this.selectTabObj.dataname,
+								tableFields: this.selectTabObj.tableFields,
+								otherSave: "salesBizLogic/saveDealerTargetByImport",
+							}
+							var config = {
+								totab: false,
+								width: "500px",
+								icon: "icon-product",
+								text: "鏁版嵁鏂囦欢涓婁紶",
+								id: "popup_uploadFileToDB",
+								url: "module/tool/page/popup_uploadFileToDB.html",
+								data: {
+									uploadType: "dealertarget",
+									tempTable: "temp_target_dealer",
+									operate_type: "dealertarget",
+									userid: me.userid,
+									ioname:ioname_,
+								},
+								delta: delta_,
+								callback: function(obj, callback) {
+									me.$message({
+										showClose: true,
+										message: '涓婁紶鎴愬姛锛�',
+										type: 'success'
+									});
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							this.doPopupByPublic(config);
+						},
+						
+						onShowLinkPharmacy() {
+							var me = this;
+							var row = me.selectTabObj.selectedrow;
+						
+							var config = {
+								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "950px",
+								height: "300px",
+								icon: "icon-product",
+								text: row.hospital_name + "-鍏宠仈闄㈠搴�",
+								id: "popup_linkpharmacy_list" + row.id + "browse",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/popup/popup_linkpharmacy_list.html",
+								data: row,
+								delta: {},
+								filter: "hospital_id='"+ row.hospital_id +"'",
+								sceneCode: 'browse',//"edit", //"add"//"browse",
+								callback: function(obj, callback) {
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+					}
+				});
+			};
+			
+			loadJsCss(function () {
+				initVue();
+			});
+		</script>
+		<style>
+			/* 鍦╲ue.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">
+			<div id="page_root">
+				<div class="topbar">
+					<span>{{title}}</span>
+
+					<div style="float: right;">
+						<el-button-group style="margin-left: 3px">
+							<el-button v-show="cbuttons_r.linkpharmacy" @click="onShowLinkPharmacy">鍏宠仈闄㈠搴�</el-button>
+							<el-button v-show="cbuttons_r.downloadTemplate" @click="DownloadTemplate">妯℃澘涓嬭浇</el-button>
+							<el-tooltip class="item" effect="dark" :content="buttonsconfig.clearandappend.tooltip" placement="top-start">
+								<el-button v-show="cbuttons_r.import" @click="onPopupByUploadFile":icon="buttonsconfig.clearandappend.icon">{{buttonsconfig.clearandappend.name}}</el-button>
+							</el-tooltip>
+							<el-button v-show="cbuttons_r.export" type="primary" @click="onDownload" :icon="buttonsconfig.export.icon">{{buttonsconfig.export.name}}</el-button>
+						</el-button-group>
+						<!-- <el-button 
+							v-show="cbuttons_r.Add && selectTabObj.code == 'hospital'" @click="addData":icon="buttonsconfig.add.icon">{{buttonsconfig.add.name}}
+						</el-button>
+						<el-button
+							v-show="cbuttons_r.Add && selectTabObj.code == 'hospital'"
+							:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id)"
+							@click="onEditDataChange" :icon="buttonsconfig.change.icon">鍙樻洿
+						</el-button>
+
+						<el-button
+							v-show="cbuttons_r.Auth && selectTabObj.code == 'hospital'"
+							:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id)"
+							@click="onAuthorize('add')" :icon="buttonsconfig.authorize.icon">鏂板鎺堟潈
+						</el-button>
+
+						<el-button-group v-show="selectTabObj.code == 'authorize'" style="margin-left: 3px;">
+							<el-button
+								v-show="cbuttons_r.Auth"
+								@click="onAuthorize('add')" :icon="buttonsconfig.authorize.icon">鏂板鎺堟潈
+							</el-button>
+							<el-button
+								v-show="cbuttons_r.Auth"
+								:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id)"
+								@click="onAuthorize('change')" :icon="buttonsconfig.authorize.icon">鍙樻洿鎺堟潈
+							</el-button>
+							<el-button
+								v-show="cbuttons_r.Auth"
+								:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id)"
+								type="danger"
+								@click="onAuthorize('delete')" :icon="buttonsconfig.authorize.icon">鍙栨秷鎺堟潈
+							</el-button>
+						</el-button-group>
+
+						<el-button-group v-show="selectTabObj.code == 'infoAll'" style="margin-left: 3px;">
+							<el-button
+								v-show="cbuttons_r.Add"
+								:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id && (selectTabObj.selectedrow.state_code == 'Rejected' || selectTabObj.selectedrow.state_code == 'Input') && selectTabObj.selectedrow.create_id == saveUser)"
+								@click="reEditInfo" :icon="buttonsconfig.edit.icon">缂栬緫
+							</el-button>
+						</el-button-group>
+
+						<el-button-group v-show="selectTabObj.code == 'authAll'" style="margin-left: 3px;">
+							<el-button
+								v-show="cbuttons_r.Auth"
+								:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id && (selectTabObj.selectedrow.state_code == 'Rejected' || selectTabObj.selectedrow.state_code == 'Input') && selectTabObj.selectedrow.create_id == saveUser)"
+								@click="reEditAuth" :icon="buttonsconfig.edit.icon">缂栬緫
+							</el-button>
+						</el-button-group> -->
+					</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"
+						:filtersobj="selectTabObj.filterObj"
+						:is-show-index="selectTabObj.isShowIndex"
+						:tableloading="tableloading"
+						:isdraggableorder="false"
+						:is-highlight-row="true"
+						
+						v-on:get-data="getData"
+						v-on:row-click="rowClick"
+					>
+					</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>
diff --git a/module/flow/page/flow_sales_list.html b/module/flow/page/flow_sales_list.html
new file mode 100644
index 0000000..ed91521
--- /dev/null
+++ b/module/flow/page/flow_sales_list.html
@@ -0,0 +1,1095 @@
+<!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: "month", name: "鏈堟祦鍚�", dataname: "flow_daily_sell", filterTxt: "", orderby: ""},
+							{code: "daily", name: "鏃ユ祦鍚�", dataname: "flow_month_sell", filterTxt: "", orderby: ""},
+						],
+						d_tabs: {
+							month: true,
+							daily: true,
+						},
+						tabs: [],
+						tabsobj: {},
+
+						dataRequest: [],
+						authTableFields: [
+							{field: "code", name: "鍖婚櫌缂栫爜", isshow: "T", align: "center",width: "150"},
+							{field: "name", name: "鍖婚櫌鍚嶇О", isshow: "T", align: "left",width: "200", isminwidth: true},
+							{field: "org_code", name: "缁忛攢鍟嗙紪鐮�", isshow: "T", align: "center",width: "150"},
+							{field: "org_name", name: "缁忛攢鍟嗗悕绉�", isshow: "T", align: "left",width: "200", isminwidth: true},
+						],
+						authFilterFields: [
+							{isshow: "T", field: "code", name: "鍖婚櫌缂栫爜", filterfield:"", filteroperator: "like", type: ""},
+							{isshow: "T", field: "name", name: "鍖婚櫌鍚嶇О", filterfield:"", filteroperator: "like", type: ""},
+							{isshow: "T", field: "org_code", name: "缁忛攢鍟嗙紪鐮�", filterfield:"", filteroperator: "like", type: ""},
+							{isshow: "T", field: "org_name", name: "缁忛攢鍟嗗悕绉�", filterfield:"", filteroperator: "like", type: ""},
+						],
+						
+						cbuttons_r: {},
+						ctabs_r: {},
+						filterTxt: "",
+						iscustomer: false,
+
+						isSales: false,//閿�鍞汉鍛橈紙閿�鍞唬琛ㄣ�佸ぇ鍖虹粡鐞嗐�佸皬鍖虹粡鐞嗭級
+						isRegionR: false,//澶у尯缁忕悊
+						saveUser: null,//鐧诲綍鑰卛d
+					},
+					created() {
+						if (window.top.vue.userinfo) {
+							this.saveUser = window.top.vue.userinfo.id;
+							if (window.top.vue.userinfo.currentactor.code == "Capacity-Sale" || window.top.vue.userinfo.currentactor.code == "Capacity-Region-R" || window.top.vue.userinfo.currentactor.code == "Capacity-Region-M") {
+								this.isSales = true;
+								if(window.top.vue.userinfo.currentactor.code == "Capacity-Region-R") {
+									this.isRegionR = true;
+								}
+							}
+						}
+					},
+					
+					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.cbuttons_r = result.buttons_r;
+								me.ctabs_r = result.tabs_r;
+								// me.ctabs_r = me.d_tabs
+								
+								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.tabs.length>0){
+											me.activeTabName = me.tabs[0].code;
+										}
+										//鑾峰彇鏁版嵁
+										//鍒濆鍖朤abs
+										me.initTabsPage(function() {
+											//鑾峰彇鏁版嵁
+											me.initData();
+										});
+										me.$nextTick(() => { // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
+											hideLoading();
+										});
+									});
+								}
+								else {
+									if(me.tabs.length>0){
+										me.activeTabName = me.tabs[0].code;
+									}
+									//鑾峰彇鏁版嵁
+									//鍒濆鍖朤abs
+									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_ = [];
+									// if(me.selectTabObj.code == 'authorize') {
+									// 	tableFields_ = clone(me.authTableFields);
+									// 	filterFields_ = clone(me.authFilterFields);
+									// } 
+									
+									metas.map(f=>{
+										// if(me.selectTabObj.code == 'authorize') {
+										// 	if (f.field == "begin_date" || f.field == "end_date" || f.field == "authorization_type" || f.field == "category_name") {
+										// 		f.isshow = "T";
+										// 		tableFields_.push(clone(f));
+										// 	}
+										// } else {
+										f.isshow = "T";
+										// if(f.field == "state_name") {
+										// 	if(me.selectTabObj.code == "hospital") {
+										// 		f.isshow = "F";
+										// 	}
+										// }
+										tableFields_.push(clone(f));
+
+										
+										if(f.field == "province") {
+											f.options = me.dataRequestObj.md_province;
+										}
+										if (f.isfilter) {
+											filterFields_.push(clone(f));
+										}
+										// else if (f.field == "state_name"){
+										// 	f.inputtypefilter = "select";
+										// 	f.filterfield = "state_code";
+
+										// 	if(me.selectTabObj.code == "infoAll" || me.selectTabObj.code == "authAll"){
+										// 		f.options = me.dataRequestObj.machine_state;
+										// 		filterFields_.push(clone(f));
+										// 	}
+										// }
+										else {
+											var filter_f = clone(f);
+											filter_f.isshow = "F";
+											filterFields_.push(filter_f);
+										}
+									})
+									if (!me.selectTabObj.filterFields || (me.selectTabObj.filterFields && me.selectTabObj.filterFields.length == 0)) {
+										me.selectTabObj.filterFields = clone(filterFields_);
+										me.selectTabObj.tableFields = clone(tableFields_);
+										
+										//瀛楁鏁扮粍杞瓧娈祇bj锛岀洰鐨勪负浜嗙瓫閫夋椂鑾峰彇瀛楁灞炴��
+										me.fieldsToFieldsObj();
+										
+										//璁剧疆瀛楁浜嬩欢
+										me.tableFieldClick();
+										
+									}
+								}
+								
+								if (callback) {
+									callback();
+								}
+							});
+						},
+						
+						tableFieldClick() {
+							var me = this;
+							//杈栧尯鍖婚櫌鍒楄〃
+							var tablefieldClick_hospital = {
+								code: {//瀛楁浜嬩欢璁剧疆
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											me.showInfo(obj); 
+										},
+									},
+								}
+							};
+							//杈栧尯鍙樻洿
+							var tablefieldClick_info = {
+								//waiting
+								hospital_code: {//瀛楁浜嬩欢璁剧疆
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											me.showChangeInfo(obj); 
+										},
+									},
+								},
+								state_name: {//鐘舵��
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: ["鑽夌","鑽夌"],
+										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: {},
+												sceneCode: "browse",
+												callback: function(obj, callback) {
+													if (callback) {
+														callback();
+													}
+												}
+											};
+											me.doPopupByPublic(config);
+										},
+									},	
+								},
+							};
+							//鍖婚櫌鎺堟潈鍒楄〃
+							var tablefieldClick_org = {
+								category_name: {//鎺堟潈浜у搧
+									val: {
+										notclick_val: "",//涓嶅彲鐐瑰嚮鐨勫��,1銆佹槸鏁扮粍["11","22"]锛�2銆佷互鈥�;鈥濆垎闅旂殑瀛楃涓�"111;222"
+										notclick_bindfield: [
+											{
+												field: "id", 
+												val: null,
+											}
+										],//褰撹瀛楁鍊肩瓑浜庢寚瀹氬瓧娈靛�兼椂涓嶅彲鐐瑰嚮["filterfield": "111"]
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											me.showAuthInfo(obj.row)
+										},
+									},
+									defaultval: {
+										val: "鏌ョ湅",//绌哄�兼椂鐨勬樉绀哄��
+										onclick: function(obj) {//榛樿鍊肩偣鍑讳簨浠�,姝や簨浠堕渶瑕佽缃畍al鎵嶆湁鏁�
+											me.showAuthInfo(obj.row)
+										}
+									},
+								},
+								state_name: {//鐘舵��
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: ["鑽夌","鑽夌"],
+										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: {},
+												sceneCode: "browse",
+												callback: function(obj, callback) {
+													if (callback) {
+														callback();
+													}
+												}
+											};
+											me.doPopupByPublic(config);
+										},
+									},	
+								},
+							};
+							//鎺堟潈鍙樻洿
+							var tablefieldClick_auth = {
+								state_name: {//鐘舵��
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: ["鑽夌","鑽夌"],
+										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: {},
+												sceneCode: "browse",
+												callback: function(obj, callback) {
+													if (callback) {
+														callback();
+													}
+												}
+											};
+											me.doPopupByPublic(config);
+										},
+									},	
+								},
+								type_name: {//鎺堟潈浜у搧
+									val: {
+										notclick_val: "",//涓嶅彲鐐瑰嚮鐨勫��,1銆佹槸鏁扮粍["11","22"]锛�2銆佷互鈥�;鈥濆垎闅旂殑瀛楃涓�"111;222"
+										notclick_bindfield: [],//褰撹瀛楁鍊肩瓑浜庢寚瀹氬瓧娈靛�兼椂涓嶅彲鐐瑰嚮["filterfield": "111"]
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											me.showAuthChange(obj.row)
+										},
+									},
+									defaultval: {
+										val: "鏌ョ湅",//绌哄�兼椂鐨勬樉绀哄��
+										onclick: function(obj) {//榛樿鍊肩偣鍑讳簨浠�,姝や簨浠堕渶瑕佽缃畍al鎵嶆湁鏁�
+											me.showAuthChange(obj.row)
+										}
+									},
+								},
+							};
+							
+							var filterfieldClick = {};
+							
+							//鍖婚櫌绠$悊鍒楄〃-杈栧尯鍖婚櫌tab
+							if (this.selectTabObj.code == "hospital") {
+								this.selectTabObj.tablefieldClick = tablefieldClick_hospital;
+							}
+							//杈栧尯鏂板/鍙樻洿-杈栧尯瀹℃壒涓�佸叏閮ㄨ緰鍖虹敵璇穞ab
+							else if (this.selectTabObj.code == "infoUnderApproval" || this.selectTabObj.code == "infoAll") {
+								this.selectTabObj.tablefieldClick = tablefieldClick_info;
+							}
+							//鍖婚櫌鎺堟潈鍒楄〃-鍖婚櫌鎺堟潈tab
+							else if (this.selectTabObj.code == "authorize") {
+								this.selectTabObj.tablefieldClick = tablefieldClick_org;
+							}
+							//鎺堟潈鍙樻洿-鎺堟潈瀹℃壒涓�佸叏閮ㄦ巿鏉冪敵璇穞ab
+							else if (this.selectTabObj.code == "authUnderApproval" || this.selectTabObj.code == "authAll") {
+								this.selectTabObj.tablefieldClick = tablefieldClick_auth;
+							}
+							
+							this.filterfieldClick = filterfieldClick;
+						},
+						
+						tableButtonClick() {
+							var me = this;
+							var tablebuttonClick = {};
+							tablebuttonClick.hospital = [
+								{
+									isbuttonshow: me.cbuttons_r.add ? me.cbuttons_r.add : false,type:"primary",
+									code: "add",isselected: false,classname: "",
+									onclick: function(obj) {
+										me.openPolicy('add', {})
+									}
+								},
+								{
+									// name: "鎻愪氦", // type: "primary", // icon: "el-icon-edit",
+									isbuttonshow:  me.cbuttons_r.submit ? me.cbuttons_r.submit : false,	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) {
+										// me.commitData(obj.selectedList[0]);
+										me.openPolicy('edit', obj.selectedList[0])
+									}
+								},
+								{
+									isbuttonshow: me.cbuttons_r.edit ? me.cbuttons_r.edit : false,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.openPolicy('edit', obj.selectedList[0])
+									}
+								},
+								{
+									isbuttonshow:  me.cbuttons_r.delete ? me.cbuttons_r.delete : false, 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.delDataPolicy(obj, obj.selectedList[0])
+									}
+								}
+							];
+							
+							tablebuttonClick.infoUnderApproval = [
+								{
+									isbuttonshow:  me.cbuttons_r.formdetail ? me.cbuttons_r.formdetail : false,type:"primary",
+									code: "formdetail",isselected: false,classname: "",
+									onclick: function(obj) {
+										me.openPolicy("browse", obj.selectedList[0])
+									}
+								},
+									
+							]
+							tablebuttonClick.infoAll = [
+								{
+									isbuttonshow:  me.cbuttons_r.formdetail ? me.cbuttons_r.formdetail : false,type:"primary",
+									code: "formdetail",isselected: false,classname: "",
+									onclick: function(obj) {
+										me.openPolicy("browse", obj.selectedList[0])
+									}
+								},
+								
+							]
+							if (tablebuttonClick[this.activeTabName]) {
+								this.selectTabObj.tablebuttonClick = tablebuttonClick[this.activeTabName];
+							}
+							else {
+								this.selectTabObj.tablebuttonClick = []
+							}
+						},
+						
+						delDataPolicy(obj, row) {
+							let me = this;
+							let name_ = "璇ユ暟鎹�";
+							
+							if (!row.id) {
+								Root.message({
+									type: 'warning',
+									message: '璇烽�夋嫨鍒犻櫎鏁版嵁'
+								});  
+								return
+							}
+							if (row.md_hospital__name) {
+								name_ = "_" + row.md_hospital__name + "_";
+							}
+							
+							Root.confirm('纭畾鍒犻櫎' + name_ + '鍚楋紵', '鍒犻櫎鎻愮ず', {
+							  confirmButtonText: '鍒犻櫎',
+							  cancelButtonText: '鍙栨秷',
+							  type: 'warning'
+							}).then(() => {
+								let param = {
+									id: row.id,
+									dataname: me.selectTabObj.dataname,
+								}
+								Server.call("root/data/deleteEntity", param, function(result) {
+									Root.message({
+										type: 'success',
+										message: '鍒犻櫎鎴愬姛!'
+									});
+									me.onQuery();
+								});
+							}).catch(() => {
+								Root.message({
+									type: 'info',
+									message: '宸插彇娑堝垹闄�'
+								});          
+							});
+						},
+						
+						commitData(obj) {
+							var me = this;
+							Root.confirm('纭畾鎻愪氦杈栧尯鍖婚櫌' + obj.md_hospital__name + '鍚楋紵', '鎻愪氦鎻愮ず', {
+							  confirmButtonText: '鎻愪氦',
+							  cancelButtonText: '鍙栨秷',
+							  type: 'warning'
+							}).then(() => {
+								var param = {
+									dataname: me.selectTabObj.dataname,
+									id: obj.id,
+									to_state: "OpeningApproval" 
+								}
+								console.log(me.selectTabObj)
+								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: '宸插彇娑�'
+								});          
+							});
+						},
+						
+						openPolicy(sceneCode, row) {
+							let me = this;
+							var text = "";
+							
+							// type_code: "", // Standard鏍囧噯浠风洰琛ㄣ�丆ustomer缁忛攢鍟嗕环鐩〃
+							if (sceneCode == "add") {
+							}
+							else if (sceneCode == "edit" || sceneCode == "browse") {
+								if(!row){
+									Root.message({
+										type: 'warning',
+										message: '璇烽�夋嫨涓�鏉℃暟鎹�'
+									});
+									return;
+								}
+								
+								// if (row.customer_name) {
+								// 	text = row.customer_name;
+								// }
+								
+							}
+							
+							var config = {
+								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "320px",
+								icon: "icon-product",
+								text: "杈栧尯鍖婚櫌" + text,
+								id: "popup_position_hospital" + row.id + sceneCode,//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/popup/popup_position_hospital.html",
+								data: row,
+								delta: {dataname: me.selectTabObj.dataname,},
+								sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+
+						//杈栧尯鍖婚櫌鏂板
+						onAddData() {
+							var me = this;
+							
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "900px",
+								icon: "icon-product",
+								text: "鍖婚櫌绠$悊淇℃伅",
+								id: "hospital_list_info",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/hospital_list_info.html",
+								data: {},
+								delta: {},
+								sceneCode: "add",//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									//isSales鎻愪氦鍚庡埛鏂�'杈栧尯瀹℃壒涓�'tab
+									// if(me.isSales) {
+										var tab = {
+											name: 'infoUnderApproval',
+										};
+										me.activeTabName = 'infoUnderApproval';
+										me.handleClick(tab);
+										me.onQuery();
+									// } else {
+									// 	me.onQuery();
+									// }
+
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+						//杈栧尯鍖婚櫌淇℃伅鏌ョ湅
+						showInfo(obj) {
+							var me = this;
+							
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "1200px",
+								height: "600px",
+								icon: "icon-product",
+								text: obj.row.name  + " 鍖婚櫌绠$悊淇℃伅",
+								id: "hospital_list_info" + "browse" + obj.row.id,//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/hospital_list_info.html",
+								data: obj.row,
+								delta: {},
+								sceneCode: "browse", //"add"//"browse",
+								callback: function(obj, callback) {
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+						//杈栧尯鍖婚櫌鍙樻洿
+						onEditDataChange(config) {
+							var me = this;
+							var row = me.selectTabObj.selectedrow;
+
+							config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "500px",
+								icon: "icon-product",
+								text: row.name  + " 淇℃伅鍙樻洿",
+								id: "hospital_list_info" + row.id + "_edit",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/hospital_list_info.html",
+								data: row,
+								delta: {},
+								sceneCode: "change",//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									//isSales鎻愪氦鍚庡埛鏂�'杈栧尯瀹℃壒涓�'tab
+									// if(me.isSales) {
+										var tab = {
+											name: 'infoUnderApproval',
+										};
+										me.activeTabName = 'infoUnderApproval';
+										me.handleClick(tab);
+										me.onQuery();
+									// } else {
+									// 	me.onQuery();
+									// }
+
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+
+						//杈栧尯鍖婚櫌鍙樻洿鏌ョ湅
+						showChangeInfo(obj) {
+							var me = this;
+
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "500px",
+								icon: "icon-product",
+								text: obj.row.hospital_name + " 鍙樻洿淇℃伅",
+								id: "hospitalInfoChange" + obj.row.id + "infoChange_browse",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/hospital_list_info.html",
+								data: obj.row,
+								delta: {},
+								sceneCode: "infoChange_browse",//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+
+						//杈栧尯鍖婚櫌閫�鍥炵紪杈�
+						reEditInfo() {
+							var me = this;
+							var row = me.selectTabObj.selectedrow;
+
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "500px",
+								icon: "icon-product",
+								text: row.hospital_name + " 鍙樻洿淇℃伅",
+								id: "hospitalInfoChange" + row.id + "infoChange_browse",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/hospital_list_info.html",
+								data: row,
+								delta: {},
+								sceneCode: 'reEdit',//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									var tab = {
+										name: 'infoUnderApproval',
+									};
+									me.activeTabName = 'infoUnderApproval';
+									me.handleClick(tab);
+									me.onQuery();
+									
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+
+						//鎺堟潈淇℃伅鏌ョ湅
+						showAuthInfo(row) {
+							let me = this;
+							var delta_ = {};
+							if(!row.id) {
+								Root.message({
+									type: 'warning',
+									message: '璇ュ尰闄㈡殏鏃犳巿鏉冩暟鎹�'
+								});
+								return;
+							}
+							
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "950px",
+								height: "500px",
+								icon: "icon-product",
+								text: row.name + " 鎺堟潈淇℃伅",
+								id: "org_hospital_edit" + row.id + "browse",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/popup/org_hospital_edit.html",
+								data: row,
+								delta: delta_,
+								// filter: "state_code!='UnderApproval'",
+								sceneCode: "browse",//"edit", //"add"//"browse",
+								callback: function(obj, callback) {
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+
+						//鍖婚櫌鎺堟潈鍙樻洿
+						onAuthorize(auth_type) {
+							var me = this;
+							var row = me.selectTabObj.selectedrow;
+							
+							//3. popup
+							config = {
+								totab: true,
+								icon: "icon-product",
+								text: "鎺堟潈淇℃伅",
+								width: "900px",
+								height: "460px",
+								// id: "authorize_customer_list" + "edit" + row.id,
+								// url: "module/md/page/terminal/page/popup/authorize_customer_list.html",
+								// filter: "hospital_id='"+ row.id +"'",
+								// sceneCode: "edit",
+								id: "org_hospital_edit" + auth_type + row.id,
+								url: "module/md/page/terminal/page/popup/org_hospital_edit.html",
+								filter: "hospital_id='"+ row.id +"'",
+								sceneCode: auth_type,
+								data: row,
+								delta: {},
+								callback: function(obj, callback) {
+									//isSales鎻愪氦鍚庡埛鏂�'鎺堟潈瀹℃壒涓�'tab
+									if(me.isSales) {
+										var tab = {
+											name: 'authUnderApproval',
+										};
+										me.activeTabName = 'authUnderApproval';
+										me.handleClick(tab);
+										me.onQuery();
+									} else {
+										var tab = {
+											name: 'authorize',
+										};
+										me.activeTabName = 'authorize';
+										me.handleClick(tab);
+										me.onQuery();
+									}
+									if (callback) {
+										callback();
+									}
+								},
+							};
+							me.doPopupByPublic(config);
+						},
+
+						//鎺堟潈鍙樻洿鏌ョ湅
+						showAuthChange(row) {
+						    let me = this;
+						    var delta_ = {};
+
+						    var config = {
+						        totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+						        width: "950px",
+						        height: "500px",
+						        icon: "icon-product",
+						        text: row.hospital_name + " 鎺堟潈鍙樻洿淇℃伅",
+						        id: "org_hospital_edit" + row.id + "authChange_browse",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+						        url: "module/md/page/terminal/page/popup/org_hospital_edit.html",
+						        data: row,
+						        delta: delta_,
+						        // filter: "state_code!='UnderApproval'",
+						        sceneCode: 'authChange_browse',//"edit", //"add"//"browse",
+						        callback: function(obj, callback) {
+									//鍥為��缂栬緫鏃讹紝isSales鎻愪氦鍚庡埛鏂�'鎺堟潈瀹℃壒涓�'tab
+									if(sceneCode_ == "reEdit") {
+										if(me.isSales) {
+											var tab = {
+												name: 'authUnderApproval',
+											};
+											me.activeTabName = 'authUnderApproval';
+											me.handleClick(tab);
+											me.onQuery();
+										} else {
+											me.onQuery();
+										}
+									}
+									
+						            if (callback) {
+						                callback();
+						            }
+						        }
+						    };
+						    me.doPopupByPublic(config);
+						},
+
+						//鎺堟潈閫�鍥炵紪杈�
+						reEditAuth() {
+							var me = this;
+							var row = me.selectTabObj.selectedrow;
+
+							var config = {
+						        totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+						        width: "950px",
+						        height: "500px",
+						        icon: "icon-product",
+						        text: row.hospital_name + " 鎺堟潈鍙樻洿淇℃伅",
+						        id: "org_hospital_edit" + row.id + "reEdit",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+						        url: "module/md/page/terminal/page/popup/org_hospital_edit.html",
+						        data: row,
+						        delta: {},
+						        // filter: "state_code!='UnderApproval'",
+						        sceneCode: 'reEdit',//"edit", //"add"//"browse",
+						        callback: function(obj, callback) {
+									var tab = {
+										name: 'authUnderApproval',
+									};
+									me.activeTabName = 'authUnderApproval';
+									me.handleClick(tab);
+									me.onQuery();
+									
+						            if (callback) {
+						                callback();
+						            }
+						        }
+						    };
+						    me.doPopupByPublic(config);
+						},
+						
+						onDownload() {
+							let me = this;
+							var ioname = "export_md_position_hospital";
+							var sign = "md_position_hospital";
+							var filename = '杈栧尯鍖婚櫌瀵煎嚭' + String(new Date().getTime());
+							var filter_ = "1 = 1";
+							filter_ = this.getFilterData(filter_);
+							let param = {
+								sign: sign,
+								filename: filename,
+								filter: filter_,
+								ioname:ioname,
+								orderby: "",
+								token: Root.getToken()
+							}
+							window.top.vue.textdownloadForm(param);
+						},
+						
+						// DownloadTemplate() {
+						// 	var pathurl = "template/1.瀵煎叆妯℃澘/鐩爣鍖婚櫌妞嶅叆鎸囨爣.xlsx";
+						// 	handleDownload(pathurl);
+						// },
+						
+						DownloadTemplate() {
+							let me = this;
+							let param = {
+								// sign: "md_target_hospital",
+								ioname:"export_md_position_hospital_template",
+								orderby: "",
+								token: Root.getToken()
+							}
+							window.top.vue.textdownloadForm(param);
+						},
+												
+						onPopupByUploadFile() {
+							var me = this;
+							var ioname_ = "import_md_position_hospital"
+							var delta_ = {
+								filetypelist: [], 
+								isToDB: true,
+								dataname: this.selectTabObj.dataname,
+								tableFields: this.selectTabObj.tableFields,
+								otherSave: "salesBizLogic/saveDealerTargetByImport",
+							}
+							var config = {
+								totab: false,
+								width: "500px",
+								icon: "icon-product",
+								text: "鏁版嵁鏂囦欢涓婁紶",
+								id: "popup_uploadFileToDB",
+								url: "module/tool/page/popup_uploadFileToDB.html",
+								data: {
+									uploadType: "dealertarget",
+									tempTable: "temp_target_dealer",
+									operate_type: "dealertarget",
+									userid: me.userid,
+									ioname:ioname_,
+								},
+								delta: delta_,
+								callback: function(obj, callback) {
+									me.$message({
+										showClose: true,
+										message: '涓婁紶鎴愬姛锛�',
+										type: 'success'
+									});
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							this.doPopupByPublic(config);
+						},
+						
+						onShowLinkPharmacy() {
+							var me = this;
+							var row = me.selectTabObj.selectedrow;
+						
+							var config = {
+								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "950px",
+								height: "300px",
+								icon: "icon-product",
+								text: row.hospital_name + "-鍏宠仈闄㈠搴�",
+								id: "popup_linkpharmacy_list" + row.id + "browse",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/popup/popup_linkpharmacy_list.html",
+								data: row,
+								delta: {},
+								filter: "hospital_id='"+ row.hospital_id +"'",
+								sceneCode: 'browse',//"edit", //"add"//"browse",
+								callback: function(obj, callback) {
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+					}
+				});
+			};
+			
+			loadJsCss(function () {
+				initVue();
+			});
+		</script>
+		<style>
+			/* 鍦╲ue.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">
+			<div id="page_root">
+				<div class="topbar">
+					<span>{{title}}</span>
+
+					<div style="float: right;">
+						<el-button-group style="margin-left: 3px">
+							<el-button v-show="cbuttons_r.linkpharmacy" @click="onShowLinkPharmacy">鍏宠仈闄㈠搴�</el-button>
+							<el-button v-show="cbuttons_r.downloadTemplate" @click="DownloadTemplate">妯℃澘涓嬭浇</el-button>
+							<el-tooltip class="item" effect="dark" :content="buttonsconfig.clearandappend.tooltip" placement="top-start">
+								<el-button v-show="cbuttons_r.import" @click="onPopupByUploadFile":icon="buttonsconfig.clearandappend.icon">{{buttonsconfig.clearandappend.name}}</el-button>
+							</el-tooltip>
+							<el-button v-show="cbuttons_r.export" type="primary" @click="onDownload" :icon="buttonsconfig.export.icon">{{buttonsconfig.export.name}}</el-button>
+						</el-button-group>
+						<!-- <el-button 
+							v-show="cbuttons_r.Add && selectTabObj.code == 'hospital'" @click="addData":icon="buttonsconfig.add.icon">{{buttonsconfig.add.name}}
+						</el-button>
+						<el-button
+							v-show="cbuttons_r.Add && selectTabObj.code == 'hospital'"
+							:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id)"
+							@click="onEditDataChange" :icon="buttonsconfig.change.icon">鍙樻洿
+						</el-button>
+
+						<el-button
+							v-show="cbuttons_r.Auth && selectTabObj.code == 'hospital'"
+							:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id)"
+							@click="onAuthorize('add')" :icon="buttonsconfig.authorize.icon">鏂板鎺堟潈
+						</el-button>
+
+						<el-button-group v-show="selectTabObj.code == 'authorize'" style="margin-left: 3px;">
+							<el-button
+								v-show="cbuttons_r.Auth"
+								@click="onAuthorize('add')" :icon="buttonsconfig.authorize.icon">鏂板鎺堟潈
+							</el-button>
+							<el-button
+								v-show="cbuttons_r.Auth"
+								:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id)"
+								@click="onAuthorize('change')" :icon="buttonsconfig.authorize.icon">鍙樻洿鎺堟潈
+							</el-button>
+							<el-button
+								v-show="cbuttons_r.Auth"
+								:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id)"
+								type="danger"
+								@click="onAuthorize('delete')" :icon="buttonsconfig.authorize.icon">鍙栨秷鎺堟潈
+							</el-button>
+						</el-button-group>
+
+						<el-button-group v-show="selectTabObj.code == 'infoAll'" style="margin-left: 3px;">
+							<el-button
+								v-show="cbuttons_r.Add"
+								:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id && (selectTabObj.selectedrow.state_code == 'Rejected' || selectTabObj.selectedrow.state_code == 'Input') && selectTabObj.selectedrow.create_id == saveUser)"
+								@click="reEditInfo" :icon="buttonsconfig.edit.icon">缂栬緫
+							</el-button>
+						</el-button-group>
+
+						<el-button-group v-show="selectTabObj.code == 'authAll'" style="margin-left: 3px;">
+							<el-button
+								v-show="cbuttons_r.Auth"
+								:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id && (selectTabObj.selectedrow.state_code == 'Rejected' || selectTabObj.selectedrow.state_code == 'Input') && selectTabObj.selectedrow.create_id == saveUser)"
+								@click="reEditAuth" :icon="buttonsconfig.edit.icon">缂栬緫
+							</el-button>
+						</el-button-group> -->
+					</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"
+						:filtersobj="selectTabObj.filterObj"
+						:is-show-index="selectTabObj.isShowIndex"
+						:tableloading="tableloading"
+						:isdraggableorder="false"
+						:is-highlight-row="true"
+						
+						v-on:get-data="getData"
+						v-on:row-click="rowClick"
+					>
+					</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>
diff --git a/module/md/page/customer/page/customer_list_agreement_edit.html b/module/md/page/customer/page/customer_list_agreement_edit.html
index 6fcdaa7..0435348 100644
--- a/module/md/page/customer/page/customer_list_agreement_edit.html
+++ b/module/md/page/customer/page/customer_list_agreement_edit.html
@@ -161,6 +161,8 @@
 						
 						old_agm_record_product_obj: {},
 						old_agm_record_province_obj: {},
+						tab3tableFields: [], // 鎺堟潈鍖婚櫌鎸囨爣鐨勫瓧娈�
+						isTarget: true,
 					},
 					created() {
 						this.popupParames = clone(Root.popupParames);
@@ -477,7 +479,6 @@
 											f.inputtype = "date";
 											f.required = false;
 											f.width = "150";
-											
 										}
 										else {
 											f.inputtype = "span";
@@ -490,7 +491,28 @@
 											f.isshow = "T";
 										}
 										
+										// 鎺堟潈鍖婚櫌鏄惁鍖呭惈鎸囨爣璁剧疆
+										if (tab.code == "tab3" && me.formData.category_id) {
+											let category_id_length_ = me.formData.category_id.length;
+											if (me.options_categoryobj[me.formData.category_id[category_id_length_ - 1]]) {
+												let category_ = me.options_categoryobj[me.formData.category_id[category_id_length_ - 1]];
+												if (category_.name.indexOf('搴曚环') != -1 || category_.name.indexOf('浣i噾') != -1) {
+													me.isTarget = false;
+													//濡傛灉鏄簳浠锋垨浣i噾鐨勬病鏈夋寚鏍囧綍鍏�
+													console.log("璁剧疆鏄惁瀛樺湪鎸囨爣瀛楁");
+													if (f.field.indexOf('amt_') != -1 || f.field.indexOf('qty_') != -1) {
+														f.isshow = "F";
+													}
+												}
+											}
+										}
+										
+										if (tab.code == "tab3") {
+											me.tab3tableFields.push(clone(f));
+										}
+										
 										tableFields_.push(clone(f));
+										
 									})
 									tab.tableFields = clone(tableFields_);
 									tab.tableData = clone(datas[tab.dataname]);
@@ -1128,7 +1150,8 @@
 								delta: {
 									agreementdata: this.formData,
 									options_product: options_product_,
-									productobj_map: clone(me.productobj_map)
+									productobj_map: clone(me.productobj_map),
+									isTarget: this.isTarget
 								},
 								sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse",
 								callback: function(popupobj, callback) {
@@ -1332,6 +1355,8 @@
 												row_.category_name = selectoption.name;
 												// 鑾峰彇鍗忚绫诲瀷瀵瑰簲鐨勬ā鏉�
 												me.getTemplateByCategoryId(selectoption.id);
+												
+												me.setTabModuleByCategory(selectoption);
 											}
 											
 											me.formData = clone(row_);
@@ -1729,6 +1754,51 @@
 								}
 							})
 						},
+						setTabModuleByCategory(category) {
+							/* 
+							 tab.tableFields = clone(tableFields_);
+							 	tab.tableData = clone(datas[tab.dataname]);
+							 }
+							 
+							 this.TabObjMap[tab.code] = clone(tab);
+							 me.selectTabObj = clone(me.TabObjMap["tab3"]);
+							 tab3tableFields
+							*/
+							var me = this;
+							// 鎺堟潈鍖婚櫌鏄惁鍖呭惈鎸囨爣璁剧疆
+							var tableFields_ = []
+							this.isTarget = true;
+							if (category.id) {
+								this.tab3tableFields.map(f=>{
+									if (category.name.indexOf('搴曚环') != -1 || category.name.indexOf('浣i噾') != -1) {
+										this.isTarget = false;
+										//濡傛灉鏄簳浠锋垨浣i噾鐨勬病鏈夋寚鏍囧綍鍏�
+										console.log("璁剧疆鏄惁瀛樺湪鎸囨爣瀛楁");
+										if (f.field.indexOf('amt_') != -1 || f.field.indexOf('qty_') != -1) {
+											f.isshow = "F";
+										}
+									}
+									else {
+										if (f.field.indexOf('amt_') != -1 || f.field.indexOf('qty_') != -1) {
+											f.isshow = "T";
+										}
+									}
+								})
+								tableFields_ = clone(this.tab3tableFields);
+							}
+							var TabObjMap_ = clone(this.TabObjMap["tab3"]);
+							TabObjMap_.tableFields = tableFields_
+							this.TabObjMap["tab3"] = clone(TabObjMap_);
+							if (this.activeTabName == 'tab3') {
+								this.isRefresh = false;
+								this.selectTabObj = {}
+								this.$nextTick(() => { // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
+									this.selectTabObj = clone(this.TabObjMap["tab3"]);
+									this.isRefresh = true;
+								});
+							}
+						},
+						
 						openAccount(sceneCode, obj, callback) {
 							var me = this;
 							var data_ = {};
@@ -2148,23 +2218,23 @@
 								})
 							}
 							
-							if (me.TabObjMap["tab2"].tableData.length) {
-								account_hospital_ = clone(me.TabObjMap["tab2"].tableData);
-							}
+							// if (me.TabObjMap["tab2"].tableData.length) {
+							// 	account_hospital_ = clone(me.TabObjMap["tab2"].tableData);
+							// }
 							
 							if (me.TabObjMap["tab3"].tableData.length) {
 								target_dealer_ = clone(me.TabObjMap["tab3"].tableData);
 							}
 							
-							if (me.TabObjMap["tab4"].tableData.length) {
-								price_policy_ = clone(me.TabObjMap["tab4"].tableData);
-							}
-							if (me.TabObjMap["tab6"].tableData.length) {
-								gift_policy_ = clone(me.TabObjMap["tab6"].tableData);
-							}
-							if (me.TabObjMap["tab7"].tableData.length) {
-								rate_policy_ = clone(me.TabObjMap["tab7"].tableData);
-							}
+							// if (me.TabObjMap["tab4"].tableData.length) {
+							// 	price_policy_ = clone(me.TabObjMap["tab4"].tableData);
+							// }
+							// if (me.TabObjMap["tab6"].tableData.length) {
+							// 	gift_policy_ = clone(me.TabObjMap["tab6"].tableData);
+							// }
+							// if (me.TabObjMap["tab7"].tableData.length) {
+							// 	rate_policy_ = clone(me.TabObjMap["tab7"].tableData);
+							// }
 							
 							let param = {
 								dataname: me.dataname,
diff --git a/module/md/page/popup/page/popup_hospitalToList.html b/module/md/page/popup/page/popup_hospitalToList.html
index 2efff67..6b5e179 100644
--- a/module/md/page/popup/page/popup_hospitalToList.html
+++ b/module/md/page/popup/page/popup_hospitalToList.html
@@ -32,12 +32,16 @@
 						formfieldClick: {},
 						
 						selectedrows: [],
+						isselection: true, // 榛樿澶氶��
 					},
 					created() {
 						this.popupParames = clone(Root.popupParames);
 						this.title = this.popupParames.title || this.popupParames.text
 						if (this.popupParames.filter) {
 							this.filterTxt = this.popupParames.filter
+						}
+						if (this.popupParames.delta && this.popupParames.delta.isoneselection) {
+							this.isselection = false
 						}
 						
 						if (this.popupParames.dataname) {
@@ -194,7 +198,7 @@
 							v-on:row-click="rowClick"
 							
 							:select-table-data="selectedrows"
-							:is-selection="true"
+							:is-selection="isselection"
 							:isshow-shoppingcart="true"
 							v-on:selection-change="selectionChange"
 							v-on:save-shoppingcart="saveShoppingcart"
diff --git a/module/md/page/popup/page/popup_target_dealer_edit.html b/module/md/page/popup/page/popup_target_dealer_edit.html
index 4677b29..559a26b 100644
--- a/module/md/page/popup/page/popup_target_dealer_edit.html
+++ b/module/md/page/popup/page/popup_target_dealer_edit.html
@@ -50,7 +50,8 @@
 						agreementdata: {},
 						options_product: [], // 鎺堟潈浜у搧椤�
 						productobj_map: {},
-						
+						isTarget: true,
+						hospitalname: ""
 					},
 					created() {
 						this.popupParames = clone(Root.popupParames);
@@ -67,6 +68,9 @@
 						}
 						if (this.popupParames.delta && this.popupParames.delta.productobj_map) {
 							this.productobj_map = clone(this.popupParames.delta.productobj_map);
+						}
+						if (this.popupParames.delta) {
+							this.isTarget = this.popupParames.delta.isTarget ? true : false;
 						}
 						
 						if (this.popupParames.sceneCode) {
@@ -234,7 +238,13 @@
 											f.options = clone(me.options_product);
 										}
 										
-										formFields_.push(clone(f));
+										if (!me.isTarget && (f.field.indexOf('amt_') != -1 || f.field.indexOf('qty_') != -1)) {
+											f.isshow = "F";
+										}
+										else {
+											formFields_.push(clone(f));
+										}
+										
 									})
 									if (!me.formFields || (me.formFields && me.formFields.length == 0)) {
 										me.formFields = clone(formFields_);
@@ -279,6 +289,82 @@
 										}
 									},
 								},
+								
+								hospital_name: {
+									input: {
+										valuekey: "md_hospital__name", // 杈撳叆妗嗘悳绱㈡椂鐨勯�夐」瀵瑰簲瀛楁
+										tagfields: ["company_name", "bu_name", "org_name", "department"], // 
+										onQuerySearch: function(obj, callback) { // 杈撳叆妗嗘悳绱簨浠�
+											if (obj.inputstring != me.hospitalname) {
+												me.formData.hospital_id = "";
+												me.formData.hospital_code = "";
+												me.formData.department = null;
+											}
+											
+											let param_ = {
+												dataname: "md_position_hospital",
+												filter: "md_hospital.name like '%" + obj.inputstring + "%' and md_hospital.type_code='hospital'",
+											}
+											
+											Server.call("root/data/getEntitySet", param_, function(result) {
+												var inputoptions_ = []
+												if (result && result.data && result.data.entityset) {
+													inputoptions_ = result.data.entityset;
+													callback(inputoptions_)
+												}
+												else {
+													callback(inputoptions_)
+												}
+											});
+										},
+										onselectchange: function(obj) {
+											var selectoption = clone(obj.selectoption);
+											
+											let formData_ = clone(me.formData);
+											formData_.hospital_id = selectoption.hospital_id;
+											formData_.hospital_code = selectoption.md_hospital__code;
+											formData_.hospital_name = selectoption.md_hospital__name;
+											
+											me.formData = clone(formData_);
+										},
+										
+										onchange: function(obj) {
+											if (!me.formData.hospital_id) {
+												me.formData.hospital_name = ""
+												me.hospitalname = ""
+											}
+										}
+									},
+									popup: {
+										onclick: function(obj) {//寮圭獥鐐瑰嚮浜嬩欢
+											//鎵撳紑
+											me.openHospital("add", "hospital", function(popupobj) {
+												let formData_ = clone(me.formData);
+												formData_.hospital_id = popupobj.list[0].hospital_id;
+												formData_.hospital_code = popupobj.list[0].md_hospital__code;
+												formData_.hospital_name = popupobj.list[0].md_hospital__name;
+												
+												me.formData = clone(formData_);
+											})
+										}
+									},
+								},
+								drugstore_name: {
+									popup: {
+										onclick: function(obj) {//寮圭獥鐐瑰嚮浜嬩欢
+											//鎵撳紑寮�鎴峰簱寮圭獥
+											me.openHospital("add", "hospital", function(popupobj) {
+												let formData_ = clone(me.formData);
+												formData_.drugstore_id = popupobj.list[0].hospital_id;
+												formData_.drugstore_code = popupobj.list[0].md_hospital__code;
+												formData_.drugstore_name = popupobj.list[0].md_hospital__name;
+												
+												me.formData = clone(formData_);
+											})
+										}
+									},
+								}
+								
 								// product_id: {
 								// 	val: {
 								// 		onchange: function(obj) {//涓嬫媺鏇存敼浜嬩欢
@@ -306,6 +392,33 @@
 								// value_q4: {input: {onchange: function(obj) {me.avgValue();}}},
 							};
 						},
+						
+						openHospital(sceneCode, type_code, callback) {
+							var me = this;
+							var data_ = {};
+							var config = {
+								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "800px",
+								height: "520px",
+								icon: "icon-product",
+								text: "鍖婚櫌閫夋嫨",
+								id: "popup_hospitalToList",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/popup/page/popup_hospitalToList.html",
+								data: data_,
+								delta: {isoneselection: true},
+								// filter: "org_id='"+ me.selectedrow.org_id + "' and bu_id='" + me.selectedrow.bu_id + "'",
+								filter: "md_position_hospital.company_id='" + me.formData.company_id + "' and md_position_hospital.bu_id='" + me.formData.bu_id + "' and md_hospital.type_code='" + type_code + "'",
+								sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(popupobj, popupcallback) {
+									callback(popupobj);
+									if (popupcallback) {
+										popupcallback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
 						sumValue() { // 姹囨��
 							var formData_ = clone(this.formData);
 							var sum_fields = [ // 鎸夐『搴忚繘琛屾眹鎬�
@@ -666,7 +779,7 @@
 						</div>
 					</div>
 					<div class="el-dialog__footer">
-						<el-button-group style="float: left;" >
+						<el-button-group style="float: left;" v-if="isTarget">
 							<el-button size="small" type="warning" plain @click="avgValue()">瀛e害鍒嗚В</el-button>
 							<el-button size="small" type="danger" plain @click="sumValue()">鏈堝害姹囨��</el-button>
 						</el-button-group>
diff --git a/module/md/page/terminal/page/hospital_list.html b/module/md/page/terminal/page/hospital_list.html
index a94d4b8..c611ae3 100644
--- a/module/md/page/terminal/page/hospital_list.html
+++ b/module/md/page/terminal/page/hospital_list.html
@@ -964,7 +964,32 @@
 							};
 							this.doPopupByPublic(config);
 						},
-												
+						
+						onShowLinkPharmacy() {
+							var me = this;
+							var row = me.selectTabObj.selectedrow;
+						
+							var config = {
+								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "950px",
+								height: "300px",
+								icon: "icon-product",
+								text: row.hospital_name + "-鍏宠仈闄㈠搴�",
+								id: "popup_linkpharmacy_list" + row.id + "browse",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/popup/popup_linkpharmacy_list.html",
+								data: row,
+								delta: {},
+								filter: "hospital_id='"+ row.hospital_id +"'",
+								sceneCode: 'browse',//"edit", //"add"//"browse",
+								callback: function(obj, callback) {
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
 					}
 				});
 			};
@@ -995,6 +1020,7 @@
 
 					<div style="float: right;">
 						<el-button-group style="margin-left: 3px">
+							<el-button v-show="cbuttons_r.linkpharmacy" @click="onShowLinkPharmacy">鍏宠仈闄㈠搴�</el-button>
 							<el-button v-show="cbuttons_r.downloadTemplate" @click="DownloadTemplate">妯℃澘涓嬭浇</el-button>
 							<el-tooltip class="item" effect="dark" :content="buttonsconfig.clearandappend.tooltip" placement="top-start">
 								<el-button v-show="cbuttons_r.import" @click="onPopupByUploadFile":icon="buttonsconfig.clearandappend.icon">{{buttonsconfig.clearandappend.name}}</el-button>
diff --git a/module/md/page/terminal/page/hospital_list_warehouse.html b/module/md/page/terminal/page/hospital_list_warehouse.html
index 188f695..7763ddb 100644
--- a/module/md/page/terminal/page/hospital_list_warehouse.html
+++ b/module/md/page/terminal/page/hospital_list_warehouse.html
@@ -18,7 +18,10 @@
 						title: "鍏捣鍖婚櫌",
 						//Tab椤硅缃�
 						tabs_d: [
-							{code: "Open", name: "鍖婚櫌搴�", dataname: "md_hospital", filterTxt: "", orderby: "update_time desc"},
+							{code: "Open", name: "鍖婚櫌搴�", dataname: "md_hospital", filterTxt: "", orderby: ""},
+							{code: "alias", name: "鍒悕搴�", dataname: "md_hospital_alias", filterTxt: "", orderby: ""},
+							{code: "uploadlog", name: "璋冩暣璁板綍", dataname: "md_hospital_apply", filterTxt: "", orderby: ""},
+							
 							
 							// {code: "applyInput", name: "鍙樻洿鐢宠", dataname: "md_org_account_hospital", filterTxt: "1=1", orderby: "update_time desc"},
 							// {code: "applyUnderApproval", name: "鍙樻洿鍘嗗彶", dataname: "md_position_hospital_apply", filterTxt: "state_code='Open'", orderby: "update_time desc"},
diff --git a/module/md/page/terminal/page/linkpharmacy_info.html b/module/md/page/terminal/page/linkpharmacy_info.html
new file mode 100644
index 0000000..2e661b0
--- /dev/null
+++ b/module/md/page/terminal/page/linkpharmacy_info.html
@@ -0,0 +1,650 @@
+<!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() {
+				new FormVue({
+					el: "#vbody",
+					data: {
+						dataname: "md_position_hospital_pharmacy",
+						title: "鍏宠仈闄㈠搴椾俊鎭�",
+						dataRequest: [],
+						
+						options_md_org_master: [],
+						md_bu_org_obj: {},
+						options_md_bu: [],
+						productobj_map: {},
+						md_bu_product_obj: {},
+						md_bu_product_bu_obj: {},
+						md_prod_sku_obj: {},
+						
+						formAttr: {
+							istitle: false,
+							title: "琛ㄥ崟鍚嶇О",
+							columnnumber: 1,
+							labelwidth: "80px",
+							labelposition: "left",//"left",// right//top
+							size: "mini",
+							border: "10px solid #c6c6c600",
+							borderleft: "0px"
+						},
+						
+						formFields: [],
+						
+						newformData: {
+							// state_code: "Input",
+							// state_name: "褰曞叆",
+							// is_active: true,
+							// source: "鎵嬪姩褰曞叆",
+							// type_code: "Customer", // Standard鏍囧噯浠风洰琛ㄣ�丆ustomer缁忛攢鍟嗕环鐩〃
+						},
+						formData: {},
+						
+						//鎸夐敭鏉冮檺璁剧疆
+						isedit: false,//鎻愪氦鍓嶇紪杈戯紝淇濆瓨/鎻愪氦
+						isrefuseedit: false,//鎷掔粷鍚庣紪杈戯紝淇濆瓨/鍐嶆鎻愪氦
+						isapproval: false,//瀹℃壒锛屽悓鎰�/鎷掔粷/杞姙/閫�鍥�
+						
+						iscommit: false,//鎻愪氦鏍囪
+						
+						//寮圭獥鍙傛暟
+						popupParames: {},
+						//瀛楁璁剧疆
+						tablefieldClick: {},
+						formfieldClick: {},
+						dheight: null,
+						
+						agreementdata: {},
+						options_product: [],
+						
+						//瀹℃壒鐩稿叧鍙橀噺
+						reasonvisible:false,//瀹℃壒閫氳繃鎴栨嫆缁濆~鍐欏師鍥�
+						approveremark: '',//濉啓鐞嗙敱
+						passOrRefuse:false,
+						loading_pass: false,
+					},
+					created() {
+						this.popupParames = clone(Root.popupParames);
+						this.title = this.popupParames.title || this.popupParames.text
+						if (this.popupParames.data) {
+							this.formData = clone(this.popupParames.data);
+						}
+						if (this.popupParames.delta && this.popupParames.delta.dataname) {
+							this.dataname = clone(this.popupParames.delta.dataname);
+						}
+						
+						if (this.popupParames.delta && this.popupParames.delta.agreementdata) {
+							this.agreementdata = clone(this.popupParames.delta.agreementdata);
+						}
+						if (this.popupParames.delta && this.popupParames.delta.options_product) {
+							this.options_product = clone(this.popupParames.delta.options_product);
+						}
+						
+						if (this.popupParames.sceneCode) {
+							if (this.popupParames.sceneCode == "add") {//鏂板
+								var newEntity_ = {
+									name: "newEntity",
+									url: "root/data/newEntity",
+									paramsobj: {dataname: this.dataname},
+									isnotoption: true, //true:涓嶆槸閫夐」
+								}
+								this.dataRequest.push(newEntity_);
+								for (var k in this.popupParames.data) {
+									this.newformData[k] = this.popupParames.data[k]
+								}
+								this.isedit = true;
+							}
+							else if (this.popupParames.sceneCode == "addbyagreement") {// 鍥哄畾缁忛攢鍟嗘柊澧�
+								var newEntity_ = {
+									name: "newEntity",
+									url: "root/data/newEntity",
+									paramsobj: {dataname: this.dataname},
+									isnotoption: true, //true:涓嶆槸閫夐」
+								}
+								this.dataRequest.push(newEntity_);
+								for (var k in this.popupParames.data) {
+									this.newformData[k] = this.popupParames.data[k]
+								}
+								this.isedit = true;
+							}
+							else if (this.popupParames.sceneCode == "browse") {//鍙
+								this.formAttr.disabled = true;
+							}
+							else if (this.popupParames.sceneCode == "edit" || this.popupParames.sceneCode == "editbyagreement") {//缂栬緫
+								this.isedit = true;
+							}
+							else if (this.popupParames.sceneCode == "approval") {//瀹℃壒
+								this.formAttr.disabled = true;
+								this.isapproval = true;
+							}
+							else if (this.popupParames.sceneCode == "refuseedit") {//鎷掔粷鍚庣殑缂栬緫
+								this.isrefuseedit = true;
+							}
+						}
+					},
+					
+					mounted() {
+						var me = this;
+						var title_h = 0;
+						if (me.popupParames.totab){
+							title_h = 42;
+						}
+						me.dheight = document.documentElement.clientHeight - 50 - title_h;
+						//棰勫姞杞芥暟鎹�
+						if (this.dataRequest && this.dataRequest.length) {
+							var result = {};
+							this.loadRequestData(this.dataRequest, result, function(data) {
+								me.dataRequestObj = data;
+								//棰勫姞杞芥暟鎹悗缁欏摢浜涘瓧娈佃缃畂ptions鎴杅ormatterjson
+								if (me.dataRequestObj.newEntity) {
+									var formData = clone(me.dataRequestObj.newEntity.data[me.dataname]);
+									if (me.newformData) {
+										let formData_ = clone(formData);
+										
+										for (var k in me.newformData) {
+											if (!formData_[k]) {
+												formData_[k] = me.newformData[k];
+											}
+										}
+								
+										me.formData = formData_;
+									}
+								}
+								
+								me.initData();
+							});
+						}
+						else {
+							this.initData();
+						}
+						
+						// 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
+						this.$nextTick(() => { 
+							hideLoading();
+						});
+					},
+					
+					methods:{
+						//鍏抽棴寮圭獥
+						closeDialog() {
+							var me = this;
+							if (me.popupParames.totab){
+								Root.tab.removeItem(Root.tab.selected);
+								Root.tab.open(me.popupParames.parentOption, false); 
+							}
+							else {
+								Root.hidePopup();
+							}
+						},
+						//鍏抽棴鍓嶈皟鍥炶皟
+						saveAfter() {
+							var me = this;
+							if(this.popupParames.callback) {
+								let obj = {
+									//row: this.formData
+								}
+								this.popupParames.callback(obj, function() {
+									me.closeDialog();
+								});
+							}
+							else {
+								me.closeDialog();
+							}
+						},
+						
+						initData() {
+							let me = this;
+							var id_ = null;
+							if (this.formData.id) {
+								id_ = this.formData.id;
+							}
+							this.getRowDataById(id_, function(result) {//鏌ヨ鍚庣殑鍥炶皟锛岀敤浜庤幏鍙栧瓧娈电殑
+								if (result.meta && result.meta[me.dataname] && result.meta[me.dataname].fields) {
+									var metas = clone(result.meta[me.dataname].fields);
+									var formFields_ = [];
+									
+									metas.map(f=>{
+										f.isshow = "T";
+										formFields_.push(clone(f));
+									})
+									if (!me.formFields || (me.formFields && me.formFields.length == 0)) {
+										me.formFields = clone(formFields_);
+										
+										//瀛楁鏁扮粍杞瓧娈祇bj锛岀洰鐨勪负浜嗙瓫閫夋椂鑾峰彇瀛楁灞炴��
+										me.fieldsToFieldsObj();
+										
+										//璁剧疆瀛楁浜嬩欢
+										me.tableFieldClick();
+									}
+									
+								}
+							})
+						},
+						
+						tableFieldClick() {
+							var me = this;
+							//琛ㄥ崟瀛楁浜嬩欢璁剧疆
+							this.formfieldClick = {
+								hospital_name: {
+									popup: {
+										onclick: function(obj) {//寮圭獥鐐瑰嚮浜嬩欢
+											//鎵撳紑寮�鎴峰簱寮圭獥
+											me.openHospital("add", "hospital", function(popupobj){
+												let formData_ = clone(me.formData);
+												formData_.hospital_id = popupobj.row.id;
+												formData_.hospital_code = popupobj.row.code;
+												formData_.hospital_name = popupobj.row.name;
+												
+												me.formData = clone(formData_);
+											});
+										}
+									},
+								},
+								pharmacy_name: {
+									popup: {
+										onclick: function(obj) {//寮圭獥鐐瑰嚮浜嬩欢
+											//鎵撳紑寮�鎴峰簱寮圭獥
+											me.openHospital("add", "pharmacy", function(popupobj){
+												let formData_ = clone(me.formData);
+												formData_.pharmacy_id = popupobj.row.id;
+												formData_.pharmacy_code = popupobj.row.code;
+												formData_.pharmacy_name = popupobj.row.name;
+												
+												me.formData = clone(formData_);
+											});
+										}
+									},
+								},
+							};
+						},
+						
+						openHospital(sceneCode, type, callback) {
+							var me = this;
+							var data_ = {};
+							var filter_ = "";
+							if (type == "hospital") {
+								filter_ = "type_code='hospital'";
+							}
+							else if (type == "pharmacy") {
+								filter_ = "type_code='Pharmacy'";
+							}
+							
+							var config = {
+								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "800px",
+								height: "520px",
+								icon: "icon-product",
+								text: "鍖婚櫌閫夋嫨",
+								id: "popup_hospital_target",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/popup/popup_hospital_list.html",
+								data: data_,
+								delta: {},
+								filter: filter_,
+								sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(popupobj, popupcallback) {
+									callback(popupobj)
+									
+									if (popupcallback) {
+										popupcallback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						//鎻愪氦
+						submitRowTable() {
+							var me = this;
+							var bo_ = this.$refs.form1.checkForm();
+							
+							if (!bo_) {
+								bo_ = false;
+								Root.message({
+								    type: 'error',
+								    message: '璇峰~鍐欏繀濉」'
+								});
+								return
+							}
+							this.iscommit = true;
+							this.saveRowTable();
+						},
+						
+						//淇濆瓨
+						saveRowTable() {
+							var me = this;
+							var operator_ = "uniqueSaveEntity";//淇濆瓨
+							if(me.iscommit) {
+								operator_ = "commit";//鎻愪氦
+							}
+							
+							var entity_ = clone(this.formData);
+							var entity = {};
+							var product_ = [];
+							for (var r in entity_) {
+								if (entity_[r] || entity_[r] ==  "" || entity_[r] == false || entity_[r] == 0) {
+									entity[r] = entity_[r];
+								}
+							}
+							
+							let param = {
+								dataname: me.dataname,
+								data: {},
+								check_exists: true
+							}
+							if (me.formData.id) {
+								param.id = me.formData.id
+							}
+							param.data[me.dataname] = entity;
+							
+							Server.call("root/data/" + operator_, param, function(result) {
+								console.log(result);
+								if (result.success) {
+									if(me.iscommit){
+										me.iscommit = false;
+										Root.message({
+											type: 'success',
+											message: '鎻愪氦鎴愬姛'
+										}); 
+										me.saveAfter();
+									}
+									else {
+										Root.message({
+											type: 'success',
+											message: '淇濆瓨鎴愬姛'
+										}); 
+										me.saveAfter();
+									}
+								}
+							}, function(errorresult) {
+								console.log("閿欒淇℃伅", errorresult);
+								
+								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 if (errorresult.exists_errors && errorresult.exists_errors.length) {
+									var messages_list = []
+									var index_ = 0;
+									errorresult.exists_errors.map(r=>{
+										index_ ++;
+										var messages_ = {
+											step: index_,
+											level: "Error",
+											message: r.title
+										}
+										messages_list.push(messages_)
+									})
+									me.iscommit = false;
+									var config = {
+										totab: false,
+										// width: "1200px",
+										// height: 800,
+										icon: "icon-product",
+										text: "閿欒淇℃伅",
+										url: "module/tool/page/popup_error_messages.html",
+										data: {},
+										delta: messages_list,
+										callback: function(obj, callback) {
+											if (callback) {
+												callback();
+											}
+										}
+									};
+									me.doPopupByPublic(config);
+								}
+								else {
+									if (me.iscommit) {
+										Root.message({
+											type: 'error',
+											message: '鎻愪氦澶辫触'
+										}); 
+										me.iscommit = false;
+									}
+									else {
+										Root.message({
+											type: 'error',
+											message: '淇濆瓨澶辫触'
+										}); 
+									}
+									
+								}
+							});
+						},
+						
+						// 閫氳繃鎴栨嫆缁�
+						onShowApproval(passOrRefuse) {
+							this.approveremark = "";
+							this.reasonvisible = true;//瀹℃壒澶囨敞濉啓寮圭獥
+							this.passOrRefuse = passOrRefuse;// commit涓嬩竴涓姸鎬�;approve閫氳繃;gohome;//鎷掔粷 goback;//鍥為��
+						},
+						saveReason() {
+							this.loading_pass = true;
+							if(this.passOrRefuse == "commit" || this.passOrRefuse == "approve"){
+								this.doApproval();
+							}
+							else{
+								if(this.approveremark != ""){
+									this.doApproval();
+								}
+								else{
+									Root.message({
+										type: 'warning',
+										message: '璇峰~鍐欏師鍥�'
+									});
+									this.loading_pass = false;
+								}
+							}
+						},
+						doApproval(bo) {
+							var me = this;
+							this.getMachine(function(next_step, up_step) { // 
+								me.doRunApproval(next_step, up_step);
+							});
+						},
+						
+						getMachine(callback) {
+							var me = this;
+							let param = {
+								dataname: me.dataname,
+							}
+							Server.call("root/state/getMachine", param, function(result) {
+								var next_step = {}; // 鍚戜笅娴佺▼
+								var up_step = {}; // 鍚戜笂娴佺▼
+								
+								if (result && result.machine && result.machine.detail) {
+									result.machine.detail.map(md=>{
+										next_step[md.from_code] = md.to_code;
+										up_step[md.to_code] = md.from_code;
+									})
+									
+									callback(next_step, up_step);
+								}
+							})
+						},
+						
+						doRunApproval(next_step, up_step) {
+							var me = this;
+							this.passOrRefuse;//棣栨寮�鎴�-閫氳繃
+							// commit // 涓嬩竴涓姸鎬�
+							// approve // 閫氳繃
+							// gohome // 鎷掔粷
+							// goback // 鍥為��
+							
+							var to_state_ = "";
+							if (this.passOrRefuse == "commit") { 
+								to_state_ = next_step[this.formData.state_code];
+							}
+							else if (this.passOrRefuse == "approve") { 
+								
+							}
+							else if (this.passOrRefuse == "gohome") {
+								// to_state_ = up_step[this.formData.state_code];
+							}
+							else if (this.passOrRefuse == "goback") {
+								to_state_ = up_step[this.formData.state_code];
+							}
+							
+							let param = {
+								dataname: me.dataname,
+								id: me.formData.id,
+								to_state: to_state_,
+								remark: this.approveremark
+							}
+							//
+							// return
+							Server.call("root/data/" + this.passOrRefuse, param, function(result) {
+								me.loading_pass = false;
+								console.log(result);
+								if (me.passOrRefuse == "commit" || me.passOrRefuse == "approve") {
+									Root.message({
+										type: 'success',
+										message: '瀹℃壒鎴愬姛'
+									}); 
+								}
+								else if (me.passOrRefuse == "goback") {
+									Root.message({
+										type: 'success',
+										message: '宸查��鍥�'
+									}); 
+								}
+								else if (me.passOrRefuse == "gohome") {
+									Root.message({
+										type: 'success',
+										message: '宸叉嫆缁�'
+									}); 
+								}
+								me.saveAfter();
+							}, function(errorresult) {
+								console.log("閿欒淇℃伅", errorresult);
+								me.loading_pass = false;
+								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>
+			/*  鍦╲ue.js涓� v-cloak 杩欎釜鎸囦护鏄槻姝㈤〉闈㈠姞杞芥椂鍑虹幇 vuejs 鐨勫彉閲忓悕鑰岃璁$殑 */
+			[v-cloak] {
+				display: none !important;
+			}
+		</style>
+		
+	</head>
+	
+	<body style="margin: 0px;">
+		<div v-cloak id="vbody">
+			<div id="page_root">
+				<div ref="popup_body" style="padding: 0 20px;">
+					<div v-if="popupParames.totab" class="el-dialog__header">
+						<div class="dialog-title">
+						  <i class="iconfont icon-customermanagement"></i>
+						  <span> {{title}}</span>
+						</div>
+					</div>
+					<div :style="{height: dheight + 'px', 'overflow-y': 'auto'}">
+						<div class="el-dialog__body">
+							<h-form
+								ref="form1"
+								:form-attr="formAttr"
+								:table-fields="formFields"
+								:form-data="formData"
+								:table-field-click="formfieldClick"
+							>
+							</h-form>
+						</div>
+					</div>
+					<el-dialog title="濉啓鍘熷洜" :visible.sync="reasonvisible" height="50%">
+						<el-input
+						type="textarea"
+						:autosize="{ minRows: 2, maxRows: 10}"
+						placeholder="璇疯緭鍏ュ師鍥�"
+						v-model="approveremark">
+						</el-input>
+						
+						<div slot="footer" class="dialog-footer" >
+						<el-button type="default" @click="reasonvisible = false">鍙� 娑�</el-button>
+						<el-button type="primary" :loading="loading_pass" @click="saveReason">纭� 瀹�</el-button>
+						</div>
+					</el-dialog>
+					<div class="el-dialog__footer">
+						<el-button-group style="margin-right: 80px;" >		
+							<el-button  size="small" v-if="isapproval" type="warning" plain @click="onShowApproval('gohome')">閫�鍥炲埌鐢宠浜�</el-button>
+							<el-button  size="small" v-if="isapproval" type="danger" plain @click="onShowApproval('goback')">閫�鍥炲埌涓婁竴姝�</el-button>
+						</el-button-group>
+						<el-button size="small" type="default" @click="closeDialog">鍙� 娑�</el-button>
+						<el-button size="small" v-if="isedit || isrefuseedit" type="primary" :loading="loading_save" @click="saveRowTable":icon="buttonsconfig.save.icon">{{buttonsconfig.save.name}}</el-button>
+						<el-button size="small" v-if="isedit && !formData.agreement_id" type="success" :loading="loading_submit" @click="submitRowTable":icon="buttonsconfig.submit.icon">{{buttonsconfig.submit.name}}</el-button>
+						<el-button size="small" v-if="isrefuseedit" type="success" @click="">鍐嶆鎻愪氦</el-button>
+						
+						<el-button size="small" v-if="isapproval" type="success" @click="onShowApproval('approve')">閫� 杩�</el-button>
+					</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>
diff --git a/module/md/page/terminal/page/linkpharmacy_list.html b/module/md/page/terminal/page/linkpharmacy_list.html
new file mode 100644
index 0000000..bcd9bff
--- /dev/null
+++ b/module/md/page/terminal/page/linkpharmacy_list.html
@@ -0,0 +1,1394 @@
+<!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: "鍏宠仈闄㈠搴�",
+						dataname: "md_position_hospital_pharmacy",
+						//Tab椤硅缃�
+						tabs_d: [//
+							{code: "Input", name: "闄㈠搴楃敵璇�", dataname: "md_position_hospital_pharmacy", filterTxt: " (md_position_hospital_pharmacy.state_code='Input' or md_position_hospital_pharmacy.state_code='Rejected' or md_position_hospital_pharmacy.state_code='UnderApproval')", orderby: "md_position_hospital_pharmacy.update_time desc",},
+							{code: "Open", name: "鐢熸晥", dataname: "md_position_hospital_pharmacy", filterTxt: " md_position_hospital_pharmacy.state_code='Open'", orderby: "md_position_hospital_pharmacy.update_time desc", },
+						],
+						// d_tabs: {
+						// 	Input: true,
+						// 	Open: true,
+						// },
+						tabsobj: {},
+						tabs: [],
+						cbuttons_r: {},
+						ctabs_r: {},
+						selectedrows: [],
+						markSelected: false,
+						isCustomer: false,
+					},
+					created() {
+						this.isCustomer = window.top.vue.isCustomer
+					},
+					
+					mounted() {
+						var me = this;
+						if (window.top.tab.selected.option.page_id) {
+							this.title = window.top.tab.selected.option.menutitle
+							getPageByPageId(window.top.tab.selected.option.page_id, function(result){
+								me.cbuttons_r = result.buttons_r;
+								me.ctabs_r = result.tabs_r;
+								// me.ctabs_r = me.d_tabs;
+								
+								var tabsarr = [];
+								me.tabs_d.map(e=>{
+									if(me.ctabs_r[e.code]){
+										tabsarr.push(e)
+									}
+								})
+								me.tabs = tabsarr;
+								
+								if(me.tabs.length>0){
+									me.activeTabName = me.tabs[0].code;
+								}
+								
+								//鍒濆鍖朤abs
+								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 (me.selectTabObj.code == 'Input') {
+											if (f.field == 'contract_attachment_name') {
+												f.isshow = "F";
+											}
+										}
+										
+										if (me.isCustomer && (f.field == "contact_department" || f.field == "contact_phone" 
+											|| f.field == "template_attachment_name" || f.field == "logistics_code"  
+											|| f.field == "creator_name" || f.field == "create_time" || f.field == "update_time" 
+										)) {
+											f.isshow = "F"
+											f.isfilter = false
+										}
+										
+										if (me.isCustomer && me.selectTabObj.code != "Close" && (f.field == "suspend_date" || f.field == "suspend_remark")) {
+											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_);
+
+										// me.selectTabObj.filterFields = clone(me.default_filterFields);
+										// me.selectTabObj.tableFields = clone(me.default_tableFields);
+										
+										//瀛楁鏁扮粍杞瓧娈祇bj锛岀洰鐨勪负浜嗙瓫閫夋椂鑾峰彇瀛楁灞炴��
+										me.fieldsToFieldsObj();
+										
+										//璁剧疆瀛楁浜嬩欢
+										me.tableFieldClick();
+									}
+								}
+								
+								if (callback) {
+									callback();
+								}
+							});
+						},
+						
+						// 璁剧疆琛ㄦ牸宸ュ叿鏍忔寜閿簨浠�
+						tableButtonClick() {
+							var me = this;
+							var tablebuttonClick = {};
+							tablebuttonClick.Input = [
+								{
+									// name: "鏂板", // type: "primary", // icon: "el-icon-edit",
+									isbuttonshow: me.cbuttons_r.add ? me.cbuttons_r.add : false,
+									code: "add", isselected: false, classname: "",
+									onclick: function(obj) {
+										// obj.selectedList
+										me.openAgreement('add', obj.selectedList[0]);
+									}
+								},
+								{
+									// name: "鎻愪氦", // type: "primary", // icon: "el-icon-edit",
+									isbuttonshow: me.cbuttons_r.submit ? me.cbuttons_r.submit : false,	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) {
+										
+										// obj.selectedList
+										// me.closeData('browse', obj.selectedList[0]);
+										// me.commitData(obj.selectedList[0]);
+										me.openAgreement('edit', obj.selectedList[0]);
+									}
+								},
+								{
+									// name: "璇︽儏", // type: "primary", // icon: "el-icon-edit",
+									isbuttonshow: me.cbuttons_r.formdetail ? me.cbuttons_r.formdetail : false,	
+									code: "formdetail", isselected: true, classname: "",
+									disabled: function(selectRowList) {
+										var bo_ = true;
+										if (selectRowList[0]) {
+											bo_ = false;
+										}
+										return bo_
+									},
+									onclick: function(obj) {
+										// obj.selectedList
+										me.openAgreement('browse', obj.selectedList[0]);
+									}
+								},
+								{
+									// name: "缂栬緫", // type: "primary", // icon: "el-icon-edit",
+									isbuttonshow: me.cbuttons_r.edit ? me.cbuttons_r.edit : false,
+									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) {
+										// obj.selectedList
+										me.openAgreement('edit', obj.selectedList[0]);
+									}
+								},
+								{
+									// name: "鍒犻櫎", // type: "primary", // icon: "el-icon-edit",
+									isbuttonshow: me.cbuttons_r.delete ? me.cbuttons_r.delete : false,	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.delData()
+										// obj.selectedList
+										// me.closeData('browse', obj.selectedList[0]);
+										// me.closeData();
+									}
+								},
+							]
+							
+							tablebuttonClick.Open = [
+								// {
+								// 	name: "鐗╂祦鍗曞彿", type: "primary", icon: "el-icon-truck",
+								// 	isbuttonshow: me.cbuttons_r.logisticsCode ? me.cbuttons_r.logisticsCode : false,
+								// 	code: "logisticsCode", isselected: true, classname: "",
+								// 	disabled: function(selectRowList, selectedList) {
+								// 		var bo_ = true;
+								// 		if (selectRowList[0]) {
+								// 			bo_ = false;
+								// 		}
+								// 		return bo_
+								// 	},
+								// 	onclick: function(obj) {
+								// 		// obj.selectedList
+								// 		me.editLogisticsCode();
+								// 	}
+								// },
+								
+								{
+									name: "鍗忚鎵撳嵃", type: "primary", icon: "el-icon-copy-document",
+									isbuttonshow: me.cbuttons_r.PDFFile ? me.cbuttons_r.PDFFile : false,
+									code: "PDFFile", isselected: true, classname: "",
+									disabled: function(selectRowList, selectedList) {
+										var bo_ = true;
+										if (selectRowList[0] && selectRowList[0].comeback_attachment_id) {
+											bo_ = false;
+										}
+										return bo_
+									},
+									onclick: function(obj) {
+										// obj.selectedList
+										me.showFileImgByFileId(me.selectTabObj.selectedrow, 'comeback_attachment_name', 'comeback_attachment_id', me.dataname)
+									}
+								},
+								{
+									name: "鍗忚鍥炴寕", type: "primary", icon: "el-icon-copy-document",
+									isbuttonshow: me.cbuttons_r.uploadFilePDF ? me.cbuttons_r.uploadFilePDF : false,
+									code: "uploadFilePDF", isselected: true, classname: "",
+									disabled: function(selectRowList, selectedList) {
+										var bo_ = true;
+										if (selectRowList[0]) {
+											bo_ = false;
+										}
+										return bo_
+									},
+									onclick: function(obj) {
+										// obj.selectedList
+										me.onPopupByUploadFile(me.selectTabObj.selectedrow, 'comeback_attachment_name', 'comeback_attachment_id', me.dataname)
+									}
+								},
+								{
+									name: "缁", type: "primary", icon: "el-icon-copy-document",
+									isbuttonshow: me.cbuttons_r.agmCopy ? me.cbuttons_r.agmCopy : false,
+									code: "agmCopy", isselected: true, classname: "",
+									islistselected: true, // 鍙互澶氶��
+									disabled: function(selectRowList, selectedList) {
+										var bo_ = true;
+										if (selectedList.length) { // 鍙互澶氶��
+											bo_ = false;
+										}
+										return bo_
+									},
+									onclick: function(obj) {
+										me.onCopyList(function(suspendData){
+											var selectedList_ = clone(obj.selectedList);
+											var newList_ = [];
+											selectedList_.map(row=>{
+												var old_row = clone(row);
+												var new_row = clone(row);
+												
+												// 鍘熷崗璁殑涓嬩竴澶�
+												var nextDate = new Date(old_row.date_to);
+												if (old_row.suspend_date) { // 濡傛灉鏈夌粓姝㈡棩鏈�
+													nextDate = new Date(old_row.suspend_date);
+												}
+												nextDate.setDate(nextDate.getDate() + 1);
+												
+												new_row.id = "";
+												new_row.agreement_no = "";
+												new_row.state_code = "Input";
+												new_row.state_name = "鑽夌";
+												
+												new_row.date_from = dateFormat(nextDate, "yyyy-MM-dd");
+												new_row.date_to = suspendData.date_to;
+												new_row.suspend_date = null;
+												
+												new_row.contract_attachment_id = null;
+												new_row.contract_attachment_name = null;
+												new_row.comeback_attachment_id = null;
+												new_row.comeback_attachment_name = null;
+												new_row.logistics_code = "";
+												
+												new_row.source_id = old_row.id;
+												newList_.push(new_row);
+											})
+											me.onSaveList(newList_);
+										})
+									}
+								},
+								{
+									name: "鍙樻洿", // type: "primary", // icon: "el-icon-edit",
+									isbuttonshow: me.cbuttons_r.change ? me.cbuttons_r.change : false,
+									code: "change", 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.openAgreement('change', obj.selectedList[0]);
+									}
+								},
+								{
+									// name: "浣滃簾", // type: "primary", // icon: "el-icon-edit",
+									isbuttonshow: me.cbuttons_r.repeal ? me.cbuttons_r.repeal : false,	type: "danger",
+									code: "suspend", isselected: true, classname: "",
+									islistselected: true, // 鍙互澶氶��
+									disabled: function(selectRowList, selectedList) {
+										var bo_ = true;
+										if (selectedList.length) { // 鍙互澶氶��
+											bo_ = false;
+										}
+										return bo_
+									},
+									onclick: function(obj) {
+										me.onSuspend(function(suspendData){
+											var selectedList_ = clone(obj.selectedList);
+											selectedList_.map(row=>{
+												row.suspend_date = suspendData.suspend_date
+												row.suspend_remark = suspendData.suspend_remark
+											})
+											me.onSaveSuspend(selectedList_);
+										})
+										
+										// me.cancelConfirm();
+									}
+								},
+								
+							]
+							
+							tablebuttonClick.Close = [
+								{
+									name: "缁", type: "primary", icon: "el-icon-copy-document",
+									isbuttonshow: me.cbuttons_r.agmCopy ? me.cbuttons_r.agmCopy : false,
+									code: "agmCopy", isselected: true, classname: "",
+									islistselected: true, // 鍙互澶氶��
+									disabled: function(selectRowList, selectedList) {
+										var bo_ = true;
+										if (selectedList.length) { // 鍙互澶氶��
+											bo_ = false;
+										}
+										return bo_
+									},
+									onclick: function(obj) {
+										// obj.selectedList
+										me.onCopyList(function(suspendData){
+											var selectedList_ = clone(obj.selectedList);
+											var newList_ = [];
+											selectedList_.map(row=>{
+												var old_row = clone(row);
+												var new_row = clone(row);
+												
+												// 鍘熷崗璁殑涓嬩竴澶�
+												var nextDate = new Date(old_row.date_to);
+												if (old_row.suspend_date) { // 濡傛灉鏈夌粓姝㈡棩鏈�
+													nextDate = new Date(old_row.suspend_date);
+												}
+												nextDate.setDate(nextDate.getDate() + 1);
+												
+												new_row.id = "";
+												new_row.agreement_no = "";
+												new_row.state_code = "Input";
+												new_row.state_name = "鑽夌";
+												
+												new_row.date_from = dateFormat(nextDate, "yyyy-MM-dd");
+												new_row.date_to = suspendData.date_to;
+												new_row.suspend_date = null;
+												
+												new_row.contract_attachment_id = null;
+												new_row.contract_attachment_name = null;
+												new_row.comeback_attachment_id = null;
+												new_row.comeback_attachment_name = null;
+												new_row.logistics_code = "";
+												
+												new_row.source_id = old_row.id;
+												newList_.push(new_row);
+											})
+											me.onSaveList(newList_);
+										})
+									}
+								},
+							]
+							
+							if (tablebuttonClick[this.activeTabName]) {
+								this.selectTabObj.tablebuttonClick = tablebuttonClick[this.activeTabName];
+							}
+							else {
+								this.selectTabObj.tablebuttonClick = []
+							}
+						},
+						
+						onSaveSuspend(list) {
+							var me = this;
+							if (list.length) {
+								var row = list[0];
+								var param = {
+									dataname: me.selectTabObj.dataname,
+									data: {},
+								}
+								param.data[me.selectTabObj.dataname] = {
+									id: row.id,
+									suspend_date: row.suspend_date,
+									suspend_remark: row.suspend_remark
+								};
+								
+								// 濡傛灉缁堟鏃ユ湡灏忎簬绛変簬褰撳ぉ锛屽垽鏂澶囨鏄惁鍦ㄧ粓姝㈡棩鏈熷悗琚娇鐢ㄨ繃
+								var suspend_date_ = dateFormat(new Date(row.suspend_date), "yyyy-MM-dd")
+								var new_date_ = dateFormat(new Date(), "yyyy-MM-dd")
+								if (suspend_date_ == new_date_ || new Date(row.suspend_date) < new Date()) {
+									param.data[me.selectTabObj.dataname].state_code = "Closed"
+									param.data[me.selectTabObj.dataname].state_name = "宸茬粓姝�"
+								}
+								Server.call("root/data/saveEntity", param, function(result) {
+									console.log(result);
+									if (result.success) {
+										list.remove(row);
+										me.onSaveSuspend(list);
+									}
+								});
+							}
+							else {
+								me.onQuery();
+							}
+							
+						},
+						
+						onSaveList(list) {
+							var me = this;
+							if (list.length) {
+								var row = list[0];
+								var list_ = []
+								list.map(f=>{
+									list_.push(f.id)
+								})
+								var param = {
+									dataname: me.selectTabObj.dataname,
+									refer: {
+										id: row.source_id
+									},
+									data: {
+									    agm_agreement: row
+									},
+								}
+								
+								Server.call("root/data/clone", param, function(result) {
+									console.log(result);
+									if (result.success) {
+										Root.message({
+											type: 'success',
+											message: '缁鎴愬姛'
+										});
+										list.remove(row);
+										me.onSaveList(list);
+									}
+								});
+							}
+							else {
+								me.onQuery();
+							}
+						},
+						
+						// 鍏嬮殕
+						onCloneList(list) {
+							var me = this;
+							if (list.length) {
+								var row = list[0];
+								var list_ = []
+								list.map(f=>{
+									list_.push(f.id)
+								})
+								var param = {
+									dataname: me.selectTabObj.dataname,
+									id:row.id
+								}
+								Server.call("root/data/clone", param, function(result) {
+									console.log(result);
+									if (result.success) {
+										Root.message({
+											type: 'success',
+											message: '缁鎴愬姛'
+										});
+										list.remove(row);
+										me.onCloneList(list);
+									}
+								});
+							}
+							else {
+								me.onQuery();
+							}
+							
+						},
+						
+						tableFieldClick() {
+							var me = this;
+							var tablefieldClick = {};
+							//琛ㄦ牸瀛楁浜嬩欢璁剧疆
+							tablefieldClick = {
+								agreement_no: {//瀛楁浜嬩欢璁剧疆
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: "",//涓嶅彲鐐瑰嚮鐨勫��,1銆佹槸鏁扮粍["11","22"]锛�2銆佷互鈥�;鈥濆垎闅旂殑瀛楃涓�"111;222"
+										notclick_bindfield: [],//褰撹瀛楁鍊肩瓑浜庢寚瀹氬瓧娈靛�兼椂涓嶅彲鐐瑰嚮["filterfield": "111"]
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											//鎵撳紑
+											me.onShowData(obj);
+										},
+									},
+									defaultval: {
+										val: "鏌ョ湅",//绌哄�兼椂鐨勬樉绀哄��
+										onclick: function(obj) {//榛樿鍊肩偣鍑讳簨浠�,姝や簨浠堕渶瑕佽缃畍al鎵嶆湁鏁�
+											me.onShowData(obj);
+										}
+									},
+								},
+								state_name: {//鐘舵��
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: ["鑽夌","鑽夌"],
+										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: {},
+												sceneCode: "browse",
+												callback: function(obj, callback) {
+													if (callback) {
+														callback();
+													}
+												}
+											};
+											me.doPopupByPublic(config);
+										},
+									},	
+								},
+								template_attachment_name: {//瀛楁浜嬩欢璁剧疆
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: "",//涓嶅彲鐐瑰嚮鐨勫��,1銆佹槸鏁扮粍["11","22"]锛�2銆佷互鈥�;鈥濆垎闅旂殑瀛楃涓�"111;222"
+										notclick_bindfield: [{field:"contract_attachment_id", val: null}],//褰撹瀛楁鍊肩瓑浜庢寚瀹氬瓧娈靛�兼椂涓嶅彲鐐瑰嚮["filterfield": "111"]
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											//鎵撳紑
+											me.showFileImgByFileId(obj.row, "template_attachment_name", "contract_attachment_id", me.dataname);
+										},
+									},
+								},
+								contract_attachment_name: {//瀛楁浜嬩欢璁剧疆
+									defaultval: {
+										val: "鍘熷崗璁笂浼�",//绌哄�兼椂鐨勬樉绀哄��
+										onclick: function(obj) {//榛樿鍊肩偣鍑讳簨浠�,姝や簨浠堕渶瑕佽缃畍al鎵嶆湁鏁�
+											me.onPopupByUploadFile(obj.row, "contract_attachment_name", "contract_attachment_id", me.dataname);
+										}
+									},
+									val:{
+										onclick: function(obj){
+											me.showFileImgByFileId(obj.row, "contract_attachment_name", "contract_attachment_id", me.dataname);
+										}
+									},
+									suffixval: {
+										val: "鍘熷崗璁笂浼�",//鏈夊�兼椂鐨勫悗缂�锛屾鍚庣紑鍜屽崟浣嶅悗缂�涓嶅悓锛屽锛氳鎯咃紝鏇村锛屾煡鐪嬬瓑
+										onclick: function(obj) {//鏈夊�兼椂鐨勫悗缂�鐐瑰嚮浜嬩欢,姝や簨浠堕渶瑕佽缃畍al鎵嶆湁鏁�
+											me.onPopupByUploadFile(obj.row, "contract_attachment_name", "contract_attachment_id", me.dataname);
+										}
+									},
+								},
+								
+								comeback_attachment_name: {//瀛楁浜嬩欢璁剧疆
+									defaultval: {
+										val: "鍗忚鍥炴寕",//绌哄�兼椂鐨勬樉绀哄��
+										onclick: function(obj) {//榛樿鍊肩偣鍑讳簨浠�,姝や簨浠堕渶瑕佽缃畍al鎵嶆湁鏁�
+											me.onPopupByUploadFile(obj.row, "comeback_attachment_name", "comeback_attachment_id", me.dataname);
+										}
+									},
+									val:{
+										onclick: function(obj){
+											me.showFileImgByFileId(obj.row, "comeback_attachment_name", "comeback_attachment_id", me.dataname);
+										}
+									},
+									suffixval: {
+										val: "鍗忚鍥炴寕",//鏈夊�兼椂鐨勫悗缂�锛屾鍚庣紑鍜屽崟浣嶅悗缂�涓嶅悓锛屽锛氳鎯咃紝鏇村锛屾煡鐪嬬瓑
+										onclick: function(obj) {//鏈夊�兼椂鐨勫悗缂�鐐瑰嚮浜嬩欢,姝や簨浠堕渶瑕佽缃畍al鎵嶆湁鏁�
+											me.onPopupByUploadFile(obj.row, "comeback_attachment_name", "comeback_attachment_id", me.dataname);
+										}
+									},
+								},
+							};
+
+							tablefieldClickBeforeOpen = {
+								agreement_no: {//瀛楁浜嬩欢璁剧疆
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: "",//涓嶅彲鐐瑰嚮鐨勫��,1銆佹槸鏁扮粍["11","22"]锛�2銆佷互鈥�;鈥濆垎闅旂殑瀛楃涓�"111;222"
+										notclick_bindfield: [],//褰撹瀛楁鍊肩瓑浜庢寚瀹氬瓧娈靛�兼椂涓嶅彲鐐瑰嚮["filterfield": "111"]
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											//鎵撳紑
+											me.onShowData(obj);
+										},
+									},
+									defaultval: {
+										val: "鏌ョ湅",//绌哄�兼椂鐨勬樉绀哄��
+										onclick: function(obj) {//榛樿鍊肩偣鍑讳簨浠�,姝や簨浠堕渶瑕佽缃畍al鎵嶆湁鏁�
+											me.onShowData(obj);
+										}
+									},
+								},
+								state_name: {//鐘舵��
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: ["鑽夌","鑽夌"],
+										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: {},
+												sceneCode: "browse",
+												callback: function(obj, callback) {
+													if (callback) {
+														callback();
+													}
+												}
+											};
+											me.doPopupByPublic(config);
+										},
+									},
+								},
+								template_attachment_name: {//瀛楁浜嬩欢璁剧疆
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: "",//涓嶅彲鐐瑰嚮鐨勫��,1銆佹槸鏁扮粍["11","22"]锛�2銆佷互鈥�;鈥濆垎闅旂殑瀛楃涓�"111;222"
+										notclick_bindfield: [{field:"contract_attachment_id", val: null}],//褰撹瀛楁鍊肩瓑浜庢寚瀹氬瓧娈靛�兼椂涓嶅彲鐐瑰嚮["filterfield": "111"]
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											//鎵撳紑
+											me.showFileImgByFileId(obj.row, "template_attachment_name", "contract_attachment_id", me.dataname);
+										},
+									},
+								},
+							};
+
+							if (this.selectTabObj.code != 'Input') {
+								this.selectTabObj.tablefieldClick = tablefieldClick;
+							} else {
+								this.selectTabObj.tablefieldClick = tablefieldClickBeforeOpen;
+							}
+						},
+						
+						onSuspend(callback) {
+							var me = this;
+							var config = {
+								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "400px",
+								height: "400px",
+								icon: "icon-product",
+								text: "缁堟璁剧疆",
+								url: "module/tool/page/popup_suspend.html",
+								data: {},
+								delta: {},
+								sceneCode: "add", //"add"//"browse",
+								callback: function(popupobj, popupcallback) {
+									callback(popupobj.row);
+									if (popupcallback) {
+										popupcallback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+						onShowData(obj) {
+							var me = this;
+							var row = obj.row;
+						
+							//1. empty row
+							if (!row || !row.id) {
+								Root.message({
+									type: 'warning',
+									message: '璇烽�夋嫨瑕佹煡鐪嬬殑鏁版嵁'
+								});  
+								return false;
+							}
+							
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "900px",
+								icon: "icon-product",
+								text: "鍗忚璇︽儏",
+								id: "apply_edit_b" + row.id,
+								url: "module/md/page/customer/page/customer_list_agreement_edit.html",
+								data: row,
+								delta: {},
+								sceneCode: "browse", //"add"//"browse",
+								callback: function(obj, callback) {
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+						onAddData() {
+							var me = this;
+							
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								icon: "icon-product",
+								text: "鍗忚淇℃伅",
+								id: "apply_edit",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/customer/page/customer_list_agreement_edit.html",
+								data: {},
+								delta: {},
+								sceneCode: "add",//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+						commitData(obj) {
+							var me = this;
+							Root.confirm('纭畾鎻愪氦鍗忚' + obj.agreement_no + '鍚楋紵', '鎻愪氦鎻愮ず', {
+							  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: '宸插彇娑�'
+								});          
+							});
+						},
+						
+						onEditData() {
+							var me = this;
+							var row = this.selectTabObj.selectedrow;;
+						
+							//1. empty row
+							if (!row || !row.id) {
+								Root.message({
+									type: 'warning',
+									message: '璇烽�夋嫨瑕佺紪杈戠殑鏁版嵁'
+								});  
+								return false;
+							}
+
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								icon: "icon-product",
+								text: "鍗忚淇℃伅",
+								id: "apply_edit" + row.id,//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/customer/page/customer_list_agreement_edit.html",
+								data: row,
+								delta: {},
+								sceneCode: "edit",//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						delData: function(scope) {
+							let me = this;
+							var row = me.selectTabObj.selectedrow;
+							let name_ = "璇ユ暟鎹�";
+							
+							if (!row.id) {
+								Root.message({
+									type: 'warning',
+									message: '璇ヤ簨浠堕渶瀛樺湪鏁版嵁ID'
+								});  
+								return
+							}
+							if (row.agreement_no) {
+								name_ = "_" + row.agreement_no + "_";
+							}
+							
+							Root.confirm('纭畾鍒犻櫎' + name_ + '鍚楋紵', '鍒犻櫎鎻愮ず', {
+							  confirmButtonText: '鍒犻櫎',
+							  cancelButtonText: '鍙栨秷',
+							  type: 'warning'
+							}).then(() => {
+								let param = {
+									id: row.id,
+									dataname: me.selectTabObj.dataname,
+								}
+								Server.call("root/data/deleteEntity", param, function(result) {
+									Root.message({
+										type: 'success',
+										message: '鍒犻櫎鎴愬姛!'
+									});
+									me.onQuery();
+								});
+							}).catch(() => {
+								Root.message({
+									type: 'info',
+									message: '宸插彇娑堝垹闄�'
+								});          
+							});
+						},
+
+						//浣滃簾妯℃澘
+						cancelConfirm() {
+							let me = this;
+							data = me.selectTabObj.selectedrow;
+							Root.confirm('纭畾缁堟-' + data.agreement_no + '-鍚楋紵', '缁堟鎻愮ず', {
+							  confirmButtonText: '纭畾',
+							  cancelButtonText: '鍙栨秷',
+							  type: 'warning'
+							}).then(() => {
+								me.onCancelData();
+							}).catch(() => {
+								Root.message({
+									type: 'info',
+									message: '宸插彇娑堢粓姝�'
+								});
+							});
+						},
+						
+						onCancelData() {
+							var me = this;
+							
+							let param = {
+								dataname: me.dataname,
+								data: {
+									"agm_agreement" :{
+										id: me.selectTabObj.selectedrow.id,
+										date_suspend: "", // 缁堟鏃ユ湡
+										remark_suspend: "", // 缁堟璇存槑
+										state_code: "Cancel",
+										state_name: "缁堟",
+									}
+								},
+							}
+							
+							Server.call("root/data/saveEntity", param, function(result) {
+								console.log(result);
+								Root.message({
+									type: 'success',
+									message: '宸蹭綔搴�'
+								}); 
+								me.onQuery();
+							});
+						},
+
+						showFileImgByFileId(row, filenamefield, fileidfield, dataname) {
+							let me = this;
+							var file_name = row[filenamefield];
+							var file_id = 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: dataname
+									}
+						
+									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, dataname);
+								}
+							}
+						},
+
+						onPopupByUploadFile(row, filenamefield, fileidfield, dataname) {
+							var me = this;
+							if (row.state_code != 'Open') {
+								Root.message({
+									type: 'warning',
+									message: '浠呯敓鏁堟暟鎹彲浠ヨ繘琛屽崗璁洖鎸�'
+								});  
+								return;
+							}
+							var txt_ = "";
+							var isexists = false;
+							if (filenamefield == "comeback_attachment_name") { // 鍗忚鍥炴寕
+								txt_ = "閲嶆柊杩涜鍗忚鍥炴寕灏嗘浛鎹㈠師鍥炴寕鍗忚";
+								if (row.comeback_attachment_id) {
+									isexists = true;
+								}
+							}
+							else if (filenamefield == "contract_attachment_name") { // 鍗忚鍘熶欢
+								txt_ = "閲嶆柊涓婁紶鍗忚鍘熶欢灏嗘浛鎹㈠師鍗忚鍘熶欢";
+								if (row.contract_attachment_id) {
+									isexists = true;
+								}
+							}
+							
+
+							if (isexists) {
+								Root.confirm(txt_, '涓婁紶鎻愮ず', {
+								confirmButtonText: '纭畾',
+								cancelButtonText: '鍙栨秷',
+								type: 'warning'
+								}).then(() => {
+									me.doPopupByUploadFile(row, filenamefield, fileidfield, dataname);
+								}).catch(() => {
+									Root.message({
+										type: 'info',
+										message: '宸插彇娑堜笂浼�'
+									});          
+								});
+							} else {
+								me.doPopupByUploadFile(row, filenamefield, fileidfield, dataname);
+							}
+						},
+
+						doPopupByUploadFile(row, filenamefield, fileidfield, dataname) {
+							var me = this;
+							var analysistype_ = "";
+							var delta_ = {filetypelist: []}//[".png", ".jpg", ".pdf"]
+							var config = {
+								totab: false,
+								width: "500px",
+								icon: "icon-product",
+								text: "闄勪欢涓婁紶",
+								id: "popupByUploadFile",
+								url: "module/tool/page/popup_uploadFile.html",
+								data: {
+									dataName: dataname,
+									fileidfieldName: fileidfield,
+									id: row.id,
+									fileNamefieldName: filenamefield
+								},
+								delta: delta_,
+								callback: function(fileobj, callback) {
+									me.$message({
+										showClose: true,
+										message: '涓婁紶鎴愬姛锛�',
+										type: 'success'
+									});
+									row[filenamefield] =decodeURI(fileobj.row[0].name);
+									row[fileidfield] = fileobj.row[0].id;
+									me.onQuery();
+
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							this.doPopupByPublic(config);
+						},
+
+						download() {
+							var fileid = this.selectTabObj.selectedrow.template_attachment_id;
+							handleDownload(fileid);
+						},
+
+						// 缁
+						onCopy(row) {
+							//
+							let me = this;
+							var old_row = clone(row);
+							var new_row = clone(row);
+							
+							// 鍘熷崗璁殑涓嬩竴澶�
+							var nextDate = new Date(old_row.date_to);
+							if (old_row.suspend_date) { // 濡傛灉鏈夌粓姝㈡棩鏈�
+								nextDate = new Date(old_row.suspend_date);
+							}
+							nextDate.setDate(nextDate.getDate() + 1);
+							
+							new_row.id = "";
+							new_row.agreement_no = "";
+							new_row.state_code = "";
+							new_row.state_name = "";
+							
+							new_row.date_from = dateFormat(nextDate, "yyyy-MM-dd");
+							new_row.date_to = "";
+							new_row.suspend_date = "";
+							
+							new_row.contract_attachment_id = "";
+							new_row.contract_attachment_name = "";
+							new_row.comeback_attachment_id = "";
+							new_row.comeback_attachment_name = "";
+							new_row.logistics_code = "";
+							
+							new_row.source_id = old_row.id;
+							
+							Root.confirm('纭畾缁鍚楋紵', '缁鎻愮ず', {
+							  confirmButtonText: '纭畾',
+							  cancelButtonText: '鍙栨秷',
+							  type: 'warning'
+							}).then(() => {
+								var me = this;
+								return
+								var config = {
+									totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+									icon: "icon-product",
+									text: "鍗忚淇℃伅",
+									id: "customer_list_agreement_edit",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+									url: "module/md/page/customer/page/customer_list_agreement_edit.html",
+									data: {},
+									delta: {
+										rows: rows,
+									},
+									sceneCode: "copyAdd",//"refuseedit",//"approval", //"add"//"browse",
+									callback: function(obj, callback) {
+										// me.emptyShoppingcart();
+										me.$refs[me.selectTabObj.code].emptyShoppingcart();
+										console.log(me.selectTabObj.selectedrows);
+										console.log(me.$refs);
+										me.onQuery();
+										if (callback) {
+											callback();
+										}
+									}
+								};
+								me.doPopupByPublic(config);
+							}).catch(() => {
+								Root.message({
+									type: 'info',
+									message: '宸插彇娑堢画绛�'
+								});          
+							});
+						},
+						// 鎵归噺缁
+						onCopyList(callback) {
+							var me = this;
+							var config = {
+								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "400px",
+								height: "400px",
+								icon: "icon-product",
+								text: "缁鏃堕棿璁剧疆",
+								url: "module/tool/page/popup_renewal.html",
+								data: {},
+								delta: {},
+								sceneCode: "add", //"add"//"browse",
+								callback: function(popupobj, popupcallback) {
+									callback(popupobj.row);
+									if (popupcallback) {
+										popupcallback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+						
+						selectionChange(obj){
+							var me = this;
+							me.selectTabObj.selectedrows = obj;
+						},
+						saveShoppingcart(list) {
+							var me = this;
+							me.selectTabObj.selectedrows = list;
+						},
+						onDownload() {
+							let me = this;
+							var ioname = ""
+							var filename = '鍗忚瀵煎嚭' + String(new Date().getTime());
+							var filter_ = "1 = 1";
+							filter_ = this.getFilterData(filter_);
+							if (me.selectTabObj.code == "Input") {
+								ioname = "export_agm"
+								filename = '鍗忚鐢宠瀵煎嚭' + String(new Date().getTime());
+							}
+							else if (me.selectTabObj.code == "Open") {
+								ioname = "export_agm_apply"
+							}
+							let param = {
+								sign: "agm_agreement",
+								filename: filename,
+								filter: filter_,
+								ioname:ioname,
+								orderby: "",
+								token: Root.getToken()
+							}
+							window.top.vue.textdownloadForm(param);
+						},
+
+						editLogisticsCode() {
+							var me = this;
+							var config = {
+								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "500px",
+								height: "300px",
+								icon: "icon-product",
+								text: "缂栬緫鐗╂祦鍗曞彿",
+								id: "delivery_info_expresscode" + me.selectTabObj.selectedrow.id,//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/customer/page/agreement-popup/delivery_info_expresscode.html",
+								data: me.selectTabObj.selectedrow,
+								delta: {},
+								sceneCode: "edit",//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+						openAgreement(sceneCode, obj) {
+							let me = this;
+							var row = {}
+							if (sceneCode == "edit" || sceneCode == "browse" || sceneCode == "change") {
+								row = me.selectTabObj.selectedrow;
+								if(!row){
+									Root.message({
+										type: 'warning',
+										message: '璇烽�夋嫨涓�鏉℃暟鎹�'
+									});
+									return;
+								}
+							}
+							
+							var config = {
+								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "320px",
+								icon: "icon-product",
+								text: "鍏宠仈闄㈠搴�" + (row.pharmacy_name ? ("-" + row.pharmacy_name ) : ""),
+								id: "linkpharmacy_info" + row.id + sceneCode,//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/linkpharmacy_info.html",
+								data: row,
+								delta: {},
+								sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						DownloadTemplate() {
+							var pathurl = "";
+							if (this.selectTabObj.code == "Input") {
+								pathurl = "template/1.瀵煎叆妯℃澘/0_鍗忚鐢宠瀵煎叆.xlsx"; 
+							}
+							handleDownload(pathurl);
+						},
+						
+
+						onPopupByUploadFileToDB() {
+							var me = this;
+							var delta_ = {
+								filetypelist: [], 
+								isToDB: true,
+								dataname: this.selectTabObj.dataname,
+								tableFields: this.selectTabObj.tableFields,
+								otherSave: "salesBizLogic/saveDealerTargetByImport",
+							}
+							var config = {
+								totab: false,
+								width: "500px",
+								icon: "icon-product",
+								text: "鏁版嵁鏂囦欢涓婁紶",
+								id: "popup_uploadFileToDB",
+								url: "module/tool/page/popup_uploadFileToDB.html",
+								data: {
+									uploadType: "dealertarget",
+									tempTable: "temp_target_dealer",
+									operate_type: "dealertarget",
+									userid: me.userid,
+									ioname:"",
+									// position_id: me.position_id,
+								},
+								delta: delta_,
+								callback: function(obj, callback) {
+									me.$message({
+										showClose: true,
+										message: '涓婁紶鎴愬姛锛�',
+										type: 'success'
+									});
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							this.doPopupByPublic(config);
+						},
+						
+					}
+				});
+			};
+			
+			loadJsCss(function () {
+				initVue();
+			});
+		</script>
+		<style>
+			/* 鍦╲ue.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">
+			<div id="page_root">
+				<div class="topbar">
+					<span :class="page_title == 'right' ? 'h_page_title_right' : 'h_page_title_left'"><span class="h_page_title_txt">{{title}}</span></span>
+					
+					<div :class="page_title == 'right' ? 'h_page_button_left' : 'h_page_button_right'">
+						<!-- <el-button v-show="cbuttons_r.logisticsCode  && (selectTabObj.code == 'Open' || selectTabObj.code == 'All')" type="primary" @click="editLogisticsCode" :disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id && selectTabObj.selectedrow.state_code == 'Open') || (selectedrows.length > 0)">缂栬緫鐗╂祦鍗曞彿</el-button> -->
+
+						<!-- <el-button-group v-show= "selectTabObj.code == 'Input'" style="margin-left: 3px;">
+							<el-button v-show="cbuttons_r.Add" @click="addData" :icon="buttonsconfig.add.icon">{{buttonsconfig.add.name}}</el-button>
+							<el-button v-show="cbuttons_r.Edit" @click="onEditData" :disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id)" :icon="buttonsconfig.edit.icon">{{buttonsconfig.edit.name}}</el-button>
+							<el-button type="danger" @click="onDelData" :disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id)" :icon="buttonsconfig.delete.icon">{{buttonsconfig.delete.name}}</el-button>
+						</el-button-group> -->
+
+						<!-- <el-button-group v-show= "selectTabObj.code == 'Open'" style="margin-left: 3px;">
+							<el-button v-show="cbuttons_r.PDFFile" @click="showFileImgByFileId(selectTabObj.selectedrow, 'template_attachment_name', 'template_attachment_id')" :disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id && selectTabObj.selectedrow.template_attachment_id) || (selectedrows.length > 0)">鍗忚鎵撳嵃</el-button>
+							<el-button v-show="cbuttons_r.uploadFilePDF"  @click="onPopupByUploadFile(selectTabObj.selectedrow, 'contract_attachment_name', 'contract_attachment_id', dataname)" :disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id) || (selectedrows.length > 0)">鍗忚鍥炴寕</el-button> 
+							<el-button v-show="cbuttons_r.repeal" type="danger" @click="cancelConfirm" :disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id) || (selectedrows.length > 0)">浣� 搴�</el-button>
+							<el-button v-show="cbuttons_r.agmCopy" @click="onCopy" :disabled="!(selectedrows.length > 0)">鍗忚缁</el-button>
+						</el-button-group> -->
+
+						<!-- <el-button-group v-show= "selectTabObj.code == 'Overdue'" style="margin-left: 3px;">
+							<el-button v-show="cbuttons_r.Renew" @click="onCopy" :disabled="!(selectedrows.length > 0)">鍗忚缁</el-button>
+						</el-button-group> -->
+						<el-button-group style="margin-left: 3px;">
+							<el-button v-show="cbuttons_r.downloadTemplate && selectTabObj.code == 'Input'" @click="DownloadTemplate">妯℃澘涓嬭浇</el-button>
+							<el-button v-show="cbuttons_r.import && selectTabObj.code == 'Input'" @click="onPopupByUploadFileToDB":icon="buttonsconfig.import.icon">{{buttonsconfig.import.name}}</el-button>
+							<el-button v-show="cbuttons_r.export && (selectTabObj.code == 'Input' || selectTabObj.code == 'Open')" type="primary" @click="onDownload" :icon="buttonsconfig.export.icon">{{buttonsconfig.export.name}}</el-button>
+						</el-button-group>
+					</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="topbar-line">
+					<div class="query-icon">
+						<i class="iconfont icon-query"></i>
+					</div>
+					<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> -->
+			
+				<div class="h_dialog__body">
+					<h-table
+						v-if="isRefresh && selectTabObj.tableFields && selectTabObj.tableFields.length"
+						:ref="selectTabObj.code"
+						: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"
+						:is-show-index="false"
+						:is-highlight-row="true"
+						:tableloading="tableloading"
+						:table-buttons-click="selectTabObj.tablebuttonClick"
+						:filtersobj="selectTabObj.filterObj"
+						
+						v-on:get-data="getData"
+						v-on:edit-data="editData"
+						v-on:del-data="delData"
+						v-on:row-click="rowClick" 
+
+						:select-table-data="selectTabObj.selectedrows"
+						:is-selection="(selectTabObj.code == 'Open' || selectTabObj.code == 'Close')"
+						:isshow-shoppingcart="(selectTabObj.code == 'Open' || selectTabObj.code == 'Close')"
+						v-on:selection-change="selectionChange"
+						v-on:save-shoppingcart="saveShoppingcart"
+						
+					>
+					</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>
diff --git a/module/md/page/terminal/page/popup/popup_hospital_list.html b/module/md/page/terminal/page/popup/popup_hospital_list.html
index 57456d3..4a78d9f 100644
--- a/module/md/page/terminal/page/popup/popup_hospital_list.html
+++ b/module/md/page/terminal/page/popup/popup_hospital_list.html
@@ -30,7 +30,7 @@
 						// 	state_name: "宸插紑鎴�"
 						// },
 						filterTxt: "",
-						org_list: []
+						org_list: [],
 					},
 					
 					created() {
@@ -169,6 +169,12 @@
 			[v-cloak] {
 				display: none !important;
 			}
+			.el-dialog__footer {
+				position: absolute;
+				bottom: 0px;
+				left: 0px;
+				right: 0px;
+			}
 		</style>
 	</head>
 	
@@ -176,33 +182,9 @@
 		<div v-cloak id="vbody">
 			<div id="page_root">
 				<div ref="popup_body" style="padding: 0 20px;  ">
-					<!-- 鏍囬 -->
-					<div class="popup_el-dialog__header">
-						<div class="dialog-title">
-						  <i class="iconfont icon-customermanagement"></i>
-						  <span>{{title}}</span>
-						</div>
-					</div>	
-
-					<!-- 涓讳綋 -->
-					<div class="topbar-line">
-						<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="onQuery"
-								v-on:on-init-query="onInitFilter"
-								>
-							</h-form-filter>
-						</div>
-					</div>
-				
 					<div class="h_dialog__body">
 						<h-table
-							v-if="isRefresh"
+							v-if="isRefresh && tableFields"
 							ref="table1"
 							:table-fields="tableFields" 
 							:table-data="tableData" 
@@ -212,6 +194,8 @@
 							:table-height="tableHeight"
 							:table-field-click="tablefieldClick"
 							:is-highlight-row="isedit"
+							:filtersobj="filterObj"
+							:tableloading="tableloading"
 							
 							v-on:get-data="getData"
 							v-on:row-click="rowClick"
diff --git a/module/md/page/terminal/page/popup/popup_linkpharmacy_list.html b/module/md/page/terminal/page/popup/popup_linkpharmacy_list.html
new file mode 100644
index 0000000..d258c86
--- /dev/null
+++ b/module/md/page/terminal/page/popup/popup_linkpharmacy_list.html
@@ -0,0 +1,222 @@
+<!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() {
+				new ListVue({
+					el: "#vbody",
+					data: {
+						dataname: "md_position_hospital_pharmacy",//"md_org_account - 鏃犲叧鑱旂粡閿�鍟� , md_org_data - 鏈夊叧鑱旂粡閿�鍟�"
+						title: "鍏宠仈闄㈠搴楀垪琛�",
+						pageAttr: {
+							heightType: "popuppage"
+						},
+
+						filterfieldClick: {},
+						tablefieldClick: {},
+						formfieldClick: {},
+						formData:{},
+						// filterObjBydefault: {
+						// 	state_name: "宸插紑鎴�"
+						// },
+						filterTxt: "",
+						org_list: [],
+					},
+					
+					created() {
+						this.popupParames = clone(Root.popupParames);
+						Root.setPopupTitle(this.title);
+						// this.title = this.popupParames.title || this.popupParames.text
+						if (this.popupParames.filter) {
+							this.filterTxt = this.popupParames.filter
+						}
+						
+						if (this.popupParames.sceneCode) {
+							if (this.popupParames.sceneCode == "add") {//鏂板
+								this.isedit = true;
+							}
+						}
+					},
+					
+					mounted() {
+						//鑾峰彇鏁版嵁
+						this.initData();
+
+						// 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
+						this.$nextTick(() => { 
+							hideLoading();
+							
+							//閲嶆柊璁剧疆寮圭獥瀹介珮
+							this.$nextTick(function(){
+								//let w_ = this.$refs.popup_body.offsetWidth + "px";
+								let w_ = "1000px";
+								let h_ = "350px";
+								Root.setPopupWH(w_, h_);
+							})
+						});
+					},
+					
+					methods:{
+						//鍏抽棴寮圭獥
+						closeDialog() {
+							this.docloseDialog(true);
+						},
+						
+						//鍏抽棴鍓嶈皟鍥炶皟
+						saveAfter() {
+							var me = this;
+							if(this.popupParames.callback) {
+								let obj = {
+									row: clone(this.selectedrow)
+								}
+								this.popupParames.callback(obj, function() {
+									me.docloseDialog();
+								});
+							}
+							else {
+								me.docloseDialog();
+							}
+						},
+						
+						initData() {
+							var me = this;
+							this.onQuery(function(result, callback) {//鏌ヨ鍚庣殑鍥炶皟锛岀敤浜庤幏鍙栧瓧娈电殑
+								if (result.meta && result.meta[me.dataname] && result.meta[me.dataname].fields) {
+									var metas = clone(result.meta[me.dataname].fields);
+									var filterFields_ = [];
+									var tableFields_ = [];
+									
+									metas.map(f=>{
+										f.isshow = "T";
+										if (f.field == "state_name") {
+											f.isfilter = false;
+										}
+										if (f.isfilter) {
+											filterFields_.push(clone(f));
+										}
+									
+										tableFields_.push(clone(f));
+									})
+									if (!me.filterFields || (me.filterFields && me.filterFields.length == 0)) {
+										me.filterFields = clone(filterFields_);
+										me.tableFields = clone(tableFields_);
+										
+										//瀛楁鏁扮粍杞瓧娈祇bj锛岀洰鐨勪负浜嗙瓫閫夋椂鑾峰彇瀛楁灞炴��
+										me.fieldsToFieldsObj();
+										
+										//璁剧疆瀛楁浜嬩欢
+										me.tableFieldClick();
+									}
+								}
+								
+								if (callback) {
+									callback();
+								}
+							});
+						},
+						
+						tableFieldClick() {
+							var me = this;
+							//绛涢�夊瓧娈典簨浠惰缃�
+							this.filterfieldClick = {
+								
+							};
+
+							//琛ㄦ牸瀛楁浜嬩欢璁剧疆
+							this.tablefieldClick = {
+								
+								
+							};
+						
+							//琛ㄥ崟瀛楁浜嬩欢璁剧疆
+							this.formfieldClick = {
+								
+							};
+						},
+						
+						onRowDblClick() {
+							if (this.isedit) {
+								this.saveAfter();
+							}
+						},
+						
+						onInitFilter(){
+							this.filterObj = {};
+							this.onQuery();
+						},
+						
+					}
+				});
+			};
+			
+			loadJsCss(function () {
+				initVue();
+			});
+		</script>
+
+		<style>
+			/* 鍦╲ue.js涓� v-cloak 杩欎釜鎸囦护鏄槻姝㈤〉闈㈠姞杞芥椂鍑虹幇 vuejs 鐨勫彉閲忓悕鑰岃璁$殑 */
+			[v-cloak] {
+				display: none !important;
+			}
+			.el-dialog__footer {
+				position: absolute;
+				bottom: 0px;
+				left: 0px;
+				right: 0px;
+			}
+		</style>
+	</head>
+	
+	<body style="margin: 0px;">
+		<div v-cloak id="vbody">
+			<div id="page_root">
+				<div ref="popup_body" style="padding: 0 20px;  ">
+					<div class="h_dialog__body">
+						<h-table
+							v-if="isRefresh && tableFields"
+							ref="table1"
+							:table-fields="tableFields" 
+							:table-data="tableData" 
+							:pagesize="pagesize"
+							:pagenum="pagenum"
+							:total="total"
+							:table-height="tableHeight"
+							:table-field-click="tablefieldClick"
+							:is-highlight-row="isedit"
+							:filtersobj="filterObj"
+							:tableloading="tableloading"
+							
+							v-on:get-data="getData"
+							v-on:row-click="rowClick"
+							v-on:row-dblclick="rowDblclick"
+							>
+						</h-table>
+					</div>
+					
+					<!-- 搴曢儴宸ュ叿鏍� -->
+					<div class="el-dialog__footer">
+						<el-button size="small" type="default" @click="closeDialog">鍙� 娑�</el-button>
+						<el-button size="small" v-if="isedit" type="primary" @click="saveAfter">纭� 瀹�</el-button>
+					</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>
diff --git a/module/order/page/implanted_date.html b/module/order/page/implanted_date.html
index 7848a1e..fbcac42 100644
--- a/module/order/page/implanted_date.html
+++ b/module/order/page/implanted_date.html
@@ -217,20 +217,16 @@
 										is_implant_alter_open: false,
 										is_order_open: false,
 										is_order_close: false,
-										is_implant_close: false,
 										order_open_time: "",
-										implant_open_time: "",
 										month_implant: "",
 										month_implant_alter: "",
 									}
 									this.load_data.push(r_);
 									this.load_data_map[slotData.day] = r_;
 								}
+								
 								if (this.load_data_map[slotData.day] && this.load_data_map[slotData.day].is_order_close) {
-									class_ += " orderclose";
-								}
-								if (this.load_data_map[slotData.day] && this.load_data_map[slotData.day].is_implant_close) {
-									class_ += " implantclose";
+									class_ += " close";
 								}
 								if (this.load_data_map[slotData.day] && this.load_data_map[slotData.day].is_implant_open) {
 									class_ += " implant";
@@ -238,7 +234,6 @@
 								if (this.load_data_map[slotData.day] && this.load_data_map[slotData.day].is_order_open) {
 									class_ += " order";
 								}
-								
 								// if (this.load_data_map[slotData.day] && this.load_data_map[slotData.day].is_implant_alter_open) {
 								// 	class_ += " implantAlterCancel";
 								// }
@@ -285,15 +280,15 @@
 							else if (type == "is_order_close") { // 鍏宠处鏃�
 								if (row.is_order_close) { // 濡傛灉鏄叧璐︽棩鏈�
 									row.is_order_close = false // 璁剧疆涓嶆槸鍏宠处鏃�
-									row.is_order_open = true // 璁剧疆鍙笅鍗�
-									// row.is_implant_open = true // 璁剧疆鍙鍏�
+									row.is_order_open = false // 璁剧疆鍙笅鍗�
+									row.is_implant_open = false // 璁剧疆鍙鍏�
 									row.order_open_time = ""
 									action = "del"
 								}
 								else {
 									row.is_order_close = true
 									row.is_order_open = false // 璁剧疆涓嶅彲涓嬪崟
-									// row.is_implant_open = false // 璁剧疆涓嶅彲妞嶅叆
+									row.is_implant_open = false // 璁剧疆涓嶅彲妞嶅叆
 									row.order_open_time = "00:00" // 鍏宠处鏃ヤ腑浠庡嚑鐐瑰紑濮嬪叧璐�
 									
 									action = "add"
@@ -302,27 +297,6 @@
 							else if (type == "order_open_time") { // 鍏宠处鏃ヤ粠鍑犵偣寮�濮嬪叧璐�
 								action = "add"
 							}
-							else if (type == "is_implant_close") { // 鍏宠处鏃�
-								if (row.is_implant_close) { // 濡傛灉鏄叧璐︽棩鏈�
-									row.is_implant_close = false // 璁剧疆涓嶆槸鍏宠处鏃�
-									// row.is_order_open = true // 璁剧疆鍙笅鍗�
-									row.is_implant_open = true // 璁剧疆鍙鍏�
-									row.implant_open_time = ""
-									action = "del"
-								}
-								else {
-									row.is_implant_close = true
-									// row.is_order_open = false // 璁剧疆涓嶅彲涓嬪崟
-									row.is_implant_open = false // 璁剧疆涓嶅彲妞嶅叆
-									row.implant_open_time = "00:00" // 鍏宠处鏃ヤ腑浠庡嚑鐐瑰紑濮嬪叧璐�
-									
-									action = "add"
-								}
-							}
-							else if (type == "implant_open_time") { // 鍏宠处鏃ヤ粠鍑犵偣寮�濮嬪叧璐�
-								action = "add"
-							}
-							
 							
 							this.load_data_map[slotData.day] = row
 							this.setDayData(action, row, type);
@@ -411,129 +385,91 @@
 			.el-calendar-day>div{
 				border-radius: 6px;
 				height: 100%;
-				padding: 2px;
+				padding: 8px;
 				box-sizing: border-box;
 			}
-			/* 
-			鍏敤锛歜utton_div
-			
-			璁㈠崟锛歰rder orderclose
-			鎸夐敭锛歜utton_order_open
-			鏂囨湰锛歰rder_txt orderclose_txt
-			
-			*/
-		   
-			.button_implantclose, .button_orderclose{
-				display: inline;
+			.implant_txt {
+				display: none;
+			}
+			.order_txt {
+				display: none;
+			}
+			.close_txt {
+				display: none;
+			}
+			.button_implant_open, .button_order_open{
+				display: inline-flex;
 				width: 45%;
 				height: 100%;
-				background-color: #f1f1f1;
-				border-radius: 5px;
-				font-size: 12px;
-			}
-			
-			.button_div {
-				display: flex;
-				height: 45%;
-				align-items: center; /* 鍨傜洿灞呬腑 */
-				justify-content: center; /* 姘村钩灞呬腑 */
-			}
-			
-			.button_implant_open, .button_order_open{
-				display: flex;
-				width: 100%;
-				height: 50%;
 				background-color: #d8d8d8;
 				align-items: center; /* 鍨傜洿灞呬腑 */
 				justify-content: center; /* 姘村钩灞呬腑 */
 				border-radius: 5px;
 			}
-			.orderclose_txt {
-				display: flex;
-				color: #fff;
-			}
-			.order_txt {
-				display: flex;
-				height: 45%;
-				color: #fff;
-				align-items: center; /* 鍨傜洿灞呬腑 */
-				justify-content: center; /* 姘村钩灞呬腑 */
-			}
-			.current .order .button_order_open {
-				background-color: #55aa7f;
-				border-radius: 5px;
-			} 
-			/* .current .order .order_txt{
-				display: flex;
-				color: #fff;
-			} */
-			
-			.current .implantclose .button_implant_open, .current .orderclose .button_order_open {
+			.button_order_close{
 				display: none;
-			}
-			.current .orderclose .button_orderclose{
-				background-color: #d5726b;
-				color: #fff;
-			}
-			/* .current .orderclose .orderclose_txt{
-				display: flex;
-			} */
-			.current .orderclose .close_endtime{
-				display: flex;
-			}
-			
-			
-			.implantclose_txt {
-				display: flex;
-				color: #fff;
-			}
-			.implant_txt {
-				display: flex;
-				height: 45%;
-				color: #fff;
-				align-items: center; /* 鍨傜洿灞呬腑 */
-				justify-content: center; /* 姘村钩灞呬腑 */
 			}
 			.current .implant .button_implant_open {
 				background-color: #6495ed;
+				color: #fff;
 				border-radius: 5px;
 			} 
-			/* .current .implant .implant_txt{
+			.current .implant .implant_txt{
 				display: flex;
+				font-size: 12px;
+			}
+			.current .order .button_order_open {
+				background-color: #55aa7f;
 				color: #fff;
-			} */
-			.current .implantclose .button_implantclose{
+				border-radius: 5px;
+			} 
+			.current .order .order_txt{
+				display: flex;
+				font-size: 12px;
+			}
+			
+			.current .close {
 				background-color: #d5726b;
 				color: #fff;
 			}
-			/* .current .implantclose .implantclose_txt{
-				display: flex;
-			} */
-			.current .implantclose .close_endtime{
-				display: flex;
+			.current .close .button_order_close{
+				display: inline-flex;
+				width: 80%;
+				height: 100%;
+				background-color: #d8d8d8;
+				align-items: center; /* 鍨傜洿灞呬腑 */
+				justify-content: center; /* 姘村钩灞呬腑 */
+				border-radius: 5px;
 			}
-			
-			
-			.current .close_endtime .el-input--prefix .el-input__inner, .current .close_endtime .el-input--prefix .el-input__inner{
+			.current .close .close_endtime{
+				display: flex;
+				font-size: 12px;
+				color: #fff;
+			}
+			.current .close .close_endtime .el-input--prefix .el-input__inner, .current .close .close_endtime .el-input--prefix .el-input__inner{
 				padding-left: 5px !important;
 				padding-right: 5px !important;
 			}
 			.el-input__prefix {
 				display: none;
 			}
+			.current .close .close_txt{
+				display: inline;
+				font-size: 12px;
+				color: #fff;
+			}
+			.current .close .button_implant_open, .current .close .button_order_open {
+				display: none;
+			}
 			
+			.current .implantAlterCancel {
+				background-color: #c38e39;
+				color: #fff;
+			} 
 			.h_table {
 				margin-top: 0px;
 			}
 			
-			.card-box table {
-			  border-collapse: collapse !important;
-			  border: none !important;
-			}
-			 
-			.h_c_table td {
-			  border: none !important
-			}
 			
 		</style>
 
@@ -544,59 +480,23 @@
 				</div>
 				
 				<div :style="{display: 'flex', width: '100%', height: bodyHeight + 'px'}">
+					
 					<div v-loading="load_loading" style="width: 95%; height: 100%; padding:1% 0px 0% 1%">
 						<div :style="{width: '100%', height: calendarHeight + 'px', display: 'flex', opacity: '1'}">
 							<el-card class="card-box" shadow="always">
 								<el-calendar v-model="calendar_month" ref="ref_calendar">
 									<template slot="dateCell" slot-scope="{date, data}">
-										<div :class="setDateClass(date, data)">
-											<table class="h_c_table" style="width: 100%; height: 100%;">
-												<tr>
-													<td style="width: 22px;">
-														{{ data.day.split('-').slice(2).join('-')}}
-													</td>
-													<td>
-														<div style="height: 100%; display: flex; justify-content: space-around;">
-															<div class="button_implantclose" @click.stop="onDay(date, data, 'is_implant_close')">
-																<div class="button_div">
-																	<span class="implantclose_txt">妞嶅叆鍏宠处</span>
-																</div>
-																<div class="button_implant_open" @click.stop="onDay(date, data, 'is_implant_open')">
-																	<div class="implant_txt">鍙鍏�</div>
-																</div>
-																<div v-if="load_data_map[data.day] && load_data_map[data.day].is_implant_close" class="close_endtime" @click.stop="onTempDay(date, data, 'is_implant_open')">
-																	<el-time-select :readonly="!cbuttons_r.edit" v-model="load_data_map[data.day].implant_open_time" style="width: 100%;" :clearable="false" size="mini" @change="onDay(date, data, 'implant_open_time')" :picker-options="{
-																		start: '00:00',
-																		step: '00:30',
-																		end: '24:00'
-																	  }"
-																	  placeholder="閫夋嫨鏃堕棿">
-																	</el-time-select>
-																</div>
-															</div>
-															<div class="button_orderclose" @click.stop="onDay(date, data, 'is_order_close')">
-																<div class="button_div">
-																	<span class="orderclose_txt">璁㈠崟鍏宠处</span>
-																</div>
-																<div class="button_order_open" @click.stop="onDay(date, data, 'is_order_open')">
-																	<div class="order_txt">鍙笅鍗�</div>
-																</div>
-																<div v-if="load_data_map[data.day] && load_data_map[data.day].is_order_close" class="close_endtime" @click.stop="onTempDay(date, data, 'is_order_open')">
-																	<el-time-select :readonly="!cbuttons_r.edit" v-model="load_data_map[data.day].order_open_time" style="width: 100%;" :clearable="false" size="mini" @change="onDay(date, data, 'order_open_time')" :picker-options="{
-																		start: '00:00',
-																		step: '00:30',
-																		end: '24:00'
-																	  }"
-																	  placeholder="閫夋嫨鏃堕棿">
-																	</el-time-select>
-																</div>
-															</div>
-															
-														</div>
-													</td>
-												</tr>
-											</table>
-											
+										<div :class="setDateClass(date, data)" @click="onDay(date, data, 'is_order_close')">
+											{{ data.day.split('-').slice(2).join('-')}}
+											<span class="close_txt">娴佸悜鐢宠瘔</span>
+											<div style="height: 60%; display: flex; justify-content: space-around;">
+												<div class="button_implant_open" @click.stop="onDay(date, data, 'is_implant_open')">
+													<div class="implant_txt">鍒濈増娴佸悜</div>
+												</div>
+												<div class="button_order_open" @click.stop="onDay(date, data, 'is_order_open')">
+													<div class="order_txt">缁堢増鐗堟祦鍚�</div>
+												</div>
+											</div>
 										</div>
 									</template>
 								</el-calendar>
diff --git a/module/system/page/coming.html b/module/system/page/coming.html
index 07fe3bf..460c77e 100644
--- a/module/system/page/coming.html
+++ b/module/system/page/coming.html
@@ -3,7 +3,7 @@
 	<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>
-		<link href="../../../css/common.css" rel="stylesheet">
+		<!-- <link href="../../../css/common.css" rel="stylesheet"> -->
 		<link href="../../../css/control.css" rel="stylesheet">
 	    <style>
 	    	.div_coming_label{ margin:30px; color:#808080; text-align:center;font-size: 22px;font-family: STHupo; }
diff --git a/module/system/page/home/page/home_business.html b/module/system/page/home/page/home_business.html
index 3d0921a..136acc0 100644
--- a/module/system/page/home/page/home_business.html
+++ b/module/system/page/home/page/home_business.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;
@@ -15,7 +15,7 @@
 				new BasicsVue({
 					el: "#vbody",
 					data: {
-						title: "鍟嗗姟棣栭〉",
+						title: "杩愯惀棣栭〉",
 						tableData: [],
 						dataRequest: [
 							{
@@ -69,12 +69,12 @@
 						
 						// 棣栭〉妯℃澘鍒楄〃
 						modulelist: [
-							{isshow: "T", code: "M001", title: "鎴戠殑閫氱煡", layout: "left", width: "100%", height: "30%", order_no: 1},
+							{isshow: "T", code: "M001", title: "鎴戠殑閫氱煡", layout: "left", width: "100%", height: "40%", order_no: 1},
 							// {isshow: "T", code: "M002", title: "鎴戠殑鐢宠", layout: "left", width: "50%", height: "30%", order_no: 2},
-							{isshow: "T", code: "M003", title: "鎴戠殑鎸囨爣", layout: "left", width: "100%", height: "306px", order_no: 3},
-							{isshow: "T", code: "M004", title: "鎴戠殑瀹㈡埛", layout: "left", width: "100%", height: "148px", order_no: 4},
+							{isshow: "T", code: "M003", title: "鎴戠殑宸ヤ綔", layout: "left", width: "100%", height: "30%", order_no: 3},
+							{isshow: "T", code: "M004", title: "鎴戠殑瀹㈡埛", layout: "left", width: "100%", height: "30%", order_no: 4},
 							{isshow: "T", code: "M002", title: "鎴戠殑鎻愰啋", layout: "right", width: "100%", height: "20%", order_no: 5},
-							{isshow: "T", code: "M005", title: "妞嶅叆鏃ュ巻", layout: "right", width: "100%", height: "50%", order_no: 5},
+							{isshow: "T", code: "M005", title: "宸ヤ綔鏃ュ巻", layout: "right", width: "100%", height: "50%", order_no: 5},
 							{isshow: "T", code: "M006", title: "蹇嵎鍏ュ彛", layout: "right", width: "100%", height: "30%", order_no: 6},
 						],
 						moduleLayout: {
@@ -85,7 +85,7 @@
 							// 	{isshow: "T", code: "004", title: "鎴戠殑瀹㈡埛", layout: "left", width: "100%", height: "30%", order_no: 4},
 							// ],
 							// right: [
-							// 	{isshow: "T", code: "005", title: "妞嶅叆鏃ュ巻", layout: "right", width: "100%", height: "50%", order_no: 5},
+							// 	{isshow: "T", code: "005", title: "宸ヤ綔鏃ュ巻", layout: "right", width: "100%", height: "50%", order_no: 5},
 							// 	{isshow: "T", code: "006", title: "蹇嵎鍏ュ彛", layout: "right", width: "100%", height: "50%", order_no: 6},
 							// ],
 						},
@@ -110,6 +110,10 @@
 										year: {},
 										quarter: {},
 										month: {},
+										
+										customer: {val_sale: 300, rate_completion: 50},
+										terminal: {val_sale: 100, rate_completion: 66},
+										flow: {val_sale: 2560, rate_completion: 30},
 										
 										// year: {year:"2023", quarter: "3", month:"7", val_target: 600, val_sale: 300, rate_completion: 50},
 										// quarter: {year:"2023", quarter: "3", month:"7", val_target: 150, val_sale: 100, rate_completion: 66},
@@ -286,9 +290,9 @@
 									if (me.dataRequestObj.sys_notify_message && me.dataRequestObj.sys_notify_message.data && me.dataRequestObj.sys_notify_message.data.entityset) {
 										dataobj_.M001 = clone(me.dataRequestObj.sys_notify_message.data.entityset)
 										var file_ = {
-											id: "111", type_code: "sale", title: "銆婂鎴稤MS鎿嶄綔鎵嬪唽-绠�鐗�-1.1銆�", create_time: "2024-03-20 15:48:04",
+											id: "111", type_code: "sale", title: "銆婅惀閿�涓�浣撳寲杩愯惀骞冲彴鎿嶄綔鎵嬪唽1.1銆�", create_time: "2024-03-20 15:48:04",
 											files: [
-												{filename: "瀹㈡埛DMS鎿嶄綔鎵嬪唽-绠�鐗�-1.1.pdf", fileid: "11111", dataname: "sys_notify_message"},
+												{filename: "钀ラ攢涓�浣撳寲杩愯惀骞冲彴鎿嶄綔鎵嬪唽1.1.pdf", fileid: "11111", dataname: "sys_notify_message"},
 										]}
 										dataobj_.M001.push(file_);
 											
@@ -333,8 +337,8 @@
 												val_target: summary_obj_dealer.month_qty_target_sum, val_sale: summary_obj_dealer.month_qty_achieve_sum, 
 												rate_completion: summary_obj_dealer.month_qty_target_sum ? window.top.toPercent((summary_obj_dealer.month_qty_achieve_sum / summary_obj_dealer.month_qty_target_sum) * 100) : ""},
 										}
-										dataobj_.M003.shangcai.amt = clone(M003_sc_amt);
-										dataobj_.M003.shangcai.qty = clone(M003_sc_qty);
+										// dataobj_.M003.shangcai.amt = clone(M003_sc_amt);
+										// dataobj_.M003.shangcai.qty = clone(M003_sc_qty);
 									}
 									// 妞嶅叆
 									if (me.dataRequestObj.business_data_summary_zr && me.dataRequestObj.business_data_summary_zr.data) {
@@ -392,14 +396,14 @@
 										 */
 										var M004_ = {
 											Customer: [
-												{type:"first", actor: "鐩撮噰瀹㈠晢", cnt: channel_qtysum_obj.first ? channel_qtysum_obj.first : 0},
-												{type:"platform", actor: "骞冲彴鍟�", cnt: channel_qtysum_obj.platform ? channel_qtysum_obj.platform : 0},
-												{type:"second", actor: "闈炵洿閲囧鍟�", cnt: channel_qtysum_obj.second ? channel_qtysum_obj.second : 0},
-												{type:"distribute", actor: "閰嶉�佸晢", cnt: channel_qtysum_obj.distribute ? channel_qtysum_obj.distribute : 0},
+												{type:"first", actor: "鍌ㄥ", cnt: channel_qtysum_obj.first ? channel_qtysum_obj.first : 0},
+												{type:"platform", actor: "棰勫悎浣�", cnt: channel_qtysum_obj.platform ? channel_qtysum_obj.platform : 0},
+												{type:"second", actor: "鍚堜綔涓�", cnt: channel_qtysum_obj.second ? channel_qtysum_obj.second : 0},
+												{type:"distribute", actor: "閫�鍑�/璋冩暣", cnt: channel_qtysum_obj.distribute ? channel_qtysum_obj.distribute : 0},
 											],
 											Hospital: [
-												{type:"hospital", actor: "杈栧尯鍖婚櫌", cnt: channel_qtysum_obj.hospital ? channel_qtysum_obj.hospital : 0},
-												// {type:"hospital", actor: "鍏跺畠鍖婚櫌", cnt: 12},
+												{type:"hospital", actor: "鍖婚櫌", cnt: channel_qtysum_obj.hospital ? channel_qtysum_obj.hospital : 0},
+												{type:"pharmacy", actor: "鑽簵", cnt: 12},
 											]
 										}
 										
@@ -602,7 +606,7 @@
 									if (this.calendar_month_map[slotData.day].order_open_time && this.calendar_month_map[slotData.day].order_open_time != "00:00") {
 										tooltip_ = "鍏宠处鏃ャ��"+ this.calendar_month_map[slotData.day].order_open_time +"銆戝悗涓嶅厑璁镐笅鍗曘��";
 									}else {
-										tooltip_ = "鍏宠处鏃ュ唴涓嶅厑璁镐笅鍗曘��";
+										tooltip_ = "娴佸悜鍙敵璇�";
 									}
 								}
 								
@@ -615,39 +619,23 @@
 								}
 								
 								if (this.calendar_month_map[slotData.day] && this.calendar_month_map[slotData.day].is_implant_open) {
-									tooltip_ += "銆愬厑璁告鍏ヤ笂鎶ャ�戙��";
+									tooltip_ += "銆愬垵鐗堟祦鍚戙��";
 								}
 								if (this.calendar_month_map[slotData.day] && this.calendar_month_map[slotData.day].is_order_open) {
-									tooltip_ += "銆愬厑璁镐笅鍗曘�戙��";
+									tooltip_ += "銆愮粓鐗堟祦鍚戙��";
 								}
 							}
 							return tooltip_;
 						},
 						
 						// 蹇嵎鍏ュ彛
-						arriveAddOrder() {
-							console.log("Order");
-
-							var me = this;
-							var config = {
-								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
-								width: "900px",
-								height: "900px",
-								icon: "icon-product",
-								text: "鐩撮攢璁㈠崟淇℃伅",
-								id: "direct_order_list_info" + "add",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
-								url: "module/order/page/direct_order_list_info.html",
-								data: {},
-								delta: {},
-								sceneCode: "add",//"refuseedit",//"approval", //"add"//"browse",
-								callback: function(obj, callback) {
-									// me.onQuery();
-									if (callback) {
-										callback();
-									}
-								}
-							};
-							me.doPopupByPublic(config);
+						quickClick(type) {
+							if (type == "signatures") {
+								window.open("http://esign.highdatas.com")
+							}
+							else if (type == "highdatas") {
+								window.open("http://highdatas.com/")
+							}
 						},
 						
 						//鎵撳紑瀹㈡埛涓绘暟鎹垨杈栧尯鍖婚櫌鍒楄〃椤�
@@ -969,6 +957,7 @@
 				/* border-left: 1px solid #6495ed; */
 				border-right: 1px solid #6495ed;
 				border-bottom: 1px solid #6495ed;
+				background-color: #6495ed;
 				border-radius: 5px;
 				cursor: pointer;
 			}
@@ -976,6 +965,7 @@
 				/* border-left: 1px solid #55aa7f; */
 				border-right: 1px solid #55aa7f;
 				border-bottom: 1px solid #55aa7f;
+				background-color: #55aa7f;
 				border-radius: 5px;
 				cursor: pointer;
 			}
@@ -1065,11 +1055,6 @@
 									<el-card class="h_card" :body-style="{width: '100%', height: '100%', 'overflow-y': 'auto', position: 'relative'}" shadow="always">
 										<div class="h_card_title">
 											<span>{{module_l.title}}</span>
-											
-											<el-radio-group style="float: right;" v-if="module_l.code == 'M003'" v-model="target_type" size="mini" @input="targetTypeChange">
-											    <el-radio-button label="amt">閲戦</el-radio-button>
-											    <el-radio-button label="qty">鏁伴噺</el-radio-button>
-											</el-radio-group>
 										</div>
 										
 										<!-- 鎴戠殑閫氱煡 -->
@@ -1101,8 +1086,62 @@
 										
 										<!-- 鎴戠殑鎸囨爣 -->
 										<div v-else-if="module_l.code == 'M003'" class="h_card_body">
-											<!-- 鍟嗛噰鎸囨爣 -->
 											<el-row >
+												<el-col :span="8">
+													<div style="font-size: 14px;">
+														<div class="h_title_fontsize">
+															<span style="border-bottom: 1px solid #0270c1;">鎺ㄥ箍鍟�</span>
+														</div>
+														<div class="h_card_fontsize" style="text-align: center;">
+															<el-col :span="12" class="h_card_fontsize_dc">
+																<div><span class="h_cnt20_fontsize">{{dataobj[module_l.code].shangcai[target_type].customer.val_sale ? dataobj[module_l.code].shangcai[target_type].customer.val_sale :'0'}}</span></div>
+																<div>棰勫悎浣�</div>
+															</el-col>
+															<el-col :span="12" class="h_card_fontsize_dc">
+																<div><span class="h_cnt20_fontsize">{{dataobj[module_l.code].shangcai[target_type].customer.rate_completion ? dataobj[module_l.code].shangcai[target_type].customer.rate_completion :'0'}}</span></div>
+																<div>瀹℃壒涓�</div>
+															</el-col>
+														</div>
+													</div>
+												</el-col>
+												<el-col :span="8">
+													<div style="font-size: 14px;">
+														<div class="h_title_fontsize">
+															<span style="border-bottom: 1px solid #0270c1;">鍖婚櫌鎺ㄥ箍</span>
+														</div>
+														<div class="h_card_fontsize" style="text-align: center;">
+															<el-col :span="12" class="h_card_fontsize_dc" style="border-left: 1px solid #0270c1;">
+																<div><span class="h_cnt20_fontsize">{{dataobj[module_l.code].shangcai[target_type].terminal.val_sale ? dataobj[module_l.code].shangcai[target_type].terminal.val_sale :'0'}}</span></div>
+																<div>鏈湡鏂板</div>
+															</el-col>
+															<el-col :span="12" class="h_card_fontsize_dc">
+																<div><span class="h_cnt20_fontsize">{{dataobj[module_l.code].shangcai[target_type].terminal.rate_completion ? dataobj[module_l.code].shangcai[target_type].terminal.rate_completion :'0'}}</span></div>
+																<div>寰呯‘璁�</div>
+															</el-col>
+														</div>
+													</div>
+												</el-col>
+												<el-col :span="8">
+													<div style="font-size: 14px;">
+														<div class="h_title_fontsize">
+															<span style="border-bottom: 1px solid #0270c1;">娓犻亾娴佸悜</span>
+														</div>
+														<div class="h_card_fontsize" style="text-align: center;">
+															<el-col :span="12" class="h_card_fontsize_dc" style="border-left: 1px solid #0270c1;">
+																<div><span class="h_cnt20_fontsize">{{dataobj[module_l.code].shangcai[target_type].flow.val_sale ? dataobj[module_l.code].shangcai[target_type].flow.val_sale :'0'}}</span></div>
+																<div>缁堢绾攢</div>
+															</el-col>
+															<el-col :span="12" class="h_card_fontsize_dc">
+																<div><span class="h_cnt20_fontsize">{{dataobj[module_l.code].shangcai[target_type].flow.rate_completion ? dataobj[module_l.code].shangcai[target_type].flow.rate_completion :'0'}}</span></div>
+																<div>鐢宠瘔娴佸悜</div>
+															</el-col>
+														</div>
+													</div>
+													
+												</el-col>
+											</el-row>
+											<!-- 鍟嗛噰鎸囨爣 -->
+											<!-- <el-row >
 												<el-col :span="8">
 													<div style="font-size: 14px;">
 														<div class="h_title_fontsize">
@@ -1173,9 +1212,9 @@
 													</div>
 													
 												</el-col>
-											</el-row>
+											</el-row> -->
 											<!-- 妞嶅叆鎸囨爣 -->
-											<el-row >
+											<!-- <el-row >
 												<el-col :span="8">
 													<div style="font-size: 14px;">
 														<div class="h_title_fontsize">
@@ -1246,17 +1285,17 @@
 													</div>
 													
 												</el-col>
-											</el-row>
+											</el-row> -->
 										</div>
 										
 										<!-- 鎴戠殑瀹㈡埛 -->
 										<div v-else-if="module_l.code == 'M004'" class="h_card_body">
 											<el-row >
-												<el-col :span="20">
+												<el-col :span="18">
 													<div style="font-size: 14px;">
 													<div class="h_title_fontsize" >
 														<i class="iconfont icon-gongwenbao h_cellclick" style="color: #ff5500;" @click="onOpenMenu('org')"></i>
-														<span class="h_cellclick" @click="onOpenMenu('org')">缁忛攢鍟�</span>
+														<span class="h_cellclick" @click="onOpenMenu('org')">鎺ㄥ箍鍟�</span>
 													</div>
 														<div class="h_div_flex">
 															<div v-for="(data_1, key1) in dataobj[module_l.code].Customer" style="display: block;">
@@ -1266,15 +1305,15 @@
 														</div>
 													</div>
 												</el-col>
-												<el-col :span="4">
+												<el-col :span="6">
 													<div style="font-size: 14px;">
 														<div class="h_title_fontsize" >
 															<i class="iconfont icon-yiyuan h_cellclick" style="color: #ff5500;" @click="onOpenMenu('hospital')"></i>
-															<span class=" h_cellclick" @click="onOpenMenu('hospital')">鍖婚櫌</span>
+															<span class=" h_cellclick" @click="onOpenMenu('hospital')">缁堢</span>
 														</div>
-														<div class="h_div_flex" style="border-left: 1px solid #0270c1; justify-content: center;">
+														<div class="h_div_flex" style="border-left: 1px solid #0270c1;">
 															<div v-for="(data_1, key1) in dataobj[module_l.code].Hospital" style="display: block;">
-																<div style="text-align: center;"><span class="h_cnt20_fontsize">{{data_1.cnt}}</span>瀹�</div>
+																<div><span class="h_cnt20_fontsize">{{data_1.cnt}}</span>瀹�</div>
 																<div>{{data_1.actor}}</div>
 															</div>
 														</div>
@@ -1332,15 +1371,15 @@
 										<!-- 蹇嵎鍏ュ彛 -->
 										<div v-else-if="module_r.code == 'M006'" class="h_card_body">
 											<div class="button-wrap">
-												<!-- <div class="button implanted click_button" @click = "">
+												<div class="button implanted click_button" @click = "quickClick('signatures')">
 													<img class="icon-button" src="implanted.png" alt="cart">
-													<span>鍗� 璁�</span>
+													<span>鐢靛瓙绛剧珷</span>
 												</div>
-												<div class="button order click_button" @click = "">
+												<div class="button order click_button" @click = "quickClick('highdatas')">
 													<img class="icon-button" src="implanted.png" alt="cart">
-													<span>澶� 妗�</span>
+													<span>鍏充簬鐎氭疆</span>
 												</div>
-												<div class="button receive click_button" @click = "">
+												<!-- <div class="button receive click_button" @click = "">
 													<img class="icon-button" src="implanted.png" alt="cart">
 													<span>杈� 鍖�</span>
 												</div>
diff --git a/module/system/page/home/page/home_customer.html b/module/system/page/home/page/home_customer.html
index b79589f..4d0024a 100644
--- a/module/system/page/home/page/home_customer.html
+++ b/module/system/page/home/page/home_customer.html
@@ -58,7 +58,7 @@
 							// {isshow: "T", code: "M003", title: "鎴戠殑鎸囨爣", layout: "left", width: "100%", height: "35%", order_no: 3},
 							// {isshow: "T", code: "M004", title: "鎴戠殑瀹㈡埛", layout: "left", width: "100%", height: "35%", order_no: 4},
 							{isshow: "T", code: "M007", title: "璇佺収鏈夋晥鏈�", layout: "right", width: "100%", height: "20%", order_no: 2},
-							{isshow: "T", code: "M005", title: "妞嶅叆鏃ュ巻", layout: "right", width: "100%", height: "50%", order_no: 5},
+							{isshow: "T", code: "M005", title: "宸ヤ綔鏃ュ巻", layout: "right", width: "100%", height: "50%", order_no: 5},
 							{isshow: "T", code: "M006", title: "蹇嵎鍏ュ彛", layout: "right", width: "100%", height: "30%", order_no: 6},
 						],
 						moduleLayout: {
@@ -69,16 +69,16 @@
 							// 	{isshow: "T", code: "004", title: "鎴戠殑瀹㈡埛", layout: "left", width: "100%", height: "30%", order_no: 4},
 							// ],
 							// right: [
-							// 	{isshow: "T", code: "005", title: "妞嶅叆鏃ュ巻", layout: "right", width: "100%", height: "50%", order_no: 5},
+							// 	{isshow: "T", code: "005", title: "宸ヤ綔鏃ュ巻", layout: "right", width: "100%", height: "50%", order_no: 5},
 							// 	{isshow: "T", code: "006", title: "蹇嵎鍏ュ彛", layout: "right", width: "100%", height: "50%", order_no: 6},
 							// ],
 						},
 						
 						dataobj: {
 							M001: [
-								// {id: "111", title: "銆婂鎴稤MS鎿嶄綔鎵嬪唽-绠�鐗�-1.1銆�", create_time: "2024-03-20 15:48:04",
+								// {id: "111", title: "銆婅惀閿�涓�浣撳寲杩愯惀骞冲彴鎿嶄綔鎵嬪唽1.1銆�", create_time: "2024-03-20 15:48:04",
 								// files: [
-								// 	{filename: "瀹㈡埛DMS鎿嶄綔鎵嬪唽-绠�鐗�-1.1.pdf", fileid: "11111", dataname: "sys_notify_message"},
+								// 	{filename: "钀ラ攢涓�浣撳寲杩愯惀骞冲彴鎿嶄綔鎵嬪唽1.1.pdf", fileid: "11111", dataname: "sys_notify_message"},
 								// ]},
 							],
 							M002: [
@@ -284,9 +284,9 @@
 										me.dataobj.M001.push(welcome_);
 									}
 									
-									var file_ = {id: "111", title: "銆婂鎴稤MS鎿嶄綔鎵嬪唽-绠�鐗�-1.1銆�", create_time: "2024-03-20 15:48:04",
+									var file_ = {id: "111", title: "銆婅惀閿�涓�浣撳寲杩愯惀骞冲彴鎿嶄綔鎵嬪唽1.1銆�", create_time: "2024-03-20 15:48:04",
 										files: [
-											{filename: "瀹㈡埛DMS鎿嶄綔鎵嬪唽-绠�鐗�-1.1.pdf", fileid: "11111", dataname: "sys_notify_message"},
+											{filename: "钀ラ攢涓�浣撳寲杩愯惀骞冲彴鎿嶄綔鎵嬪唽1.1.pdf", fileid: "11111", dataname: "sys_notify_message"},
 										],
 									}
 									me.dataobj.M001.push(file_);
@@ -477,7 +477,7 @@
 									if (this.calendar_month_map[slotData.day].order_open_time && this.calendar_month_map[slotData.day].order_open_time != "00:00") {
 										tooltip_ = "鍏宠处鏃ャ��"+ this.calendar_month_map[slotData.day].order_open_time +"銆戝悗涓嶅厑璁镐笅鍗曘��";
 									}else {
-										tooltip_ = "鍏宠处鏃ュ唴涓嶅厑璁镐笅鍗曘��";
+										tooltip_ = "娴佸悜鍙敵璇�";
 									}
 								}
 								
@@ -490,10 +490,10 @@
 								}
 								
 								if (this.calendar_month_map[slotData.day] && this.calendar_month_map[slotData.day].is_implant_open) {
-									tooltip_ += "銆愬厑璁告鍏ヤ笂鎶ャ�戙��";
+									tooltip_ += "銆愬垵鐗堟祦鍚戙��";
 								}
 								if (this.calendar_month_map[slotData.day] && this.calendar_month_map[slotData.day].is_order_open) {
-									tooltip_ += "銆愬厑璁镐笅鍗曘�戙��";
+									tooltip_ += "銆愮粓鐗堟祦鍚戙��";
 								}
 							}
 							return tooltip_;
@@ -849,6 +849,7 @@
 				/* border-left: 1px solid #6495ed; */
 				border-right: 1px solid #6495ed;
 				border-bottom: 1px solid #6495ed;
+				background-color: #6495ed;
 				border-radius: 5px;
 				cursor: pointer;
 			}
@@ -856,6 +857,7 @@
 				/* border-left: 1px solid #55aa7f; */
 				border-right: 1px solid #55aa7f;
 				border-bottom: 1px solid #55aa7f;
+				background-color: #55aa7f;
 				border-radius: 5px;
 				cursor: pointer;
 			}
diff --git a/module/system/page/home/page/home_org.html b/module/system/page/home/page/home_org.html
index dff3020..95113e5 100644
--- a/module/system/page/home/page/home_org.html
+++ b/module/system/page/home/page/home_org.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;
@@ -15,7 +15,7 @@
 				new BasicsVue({
 					el: "#vbody",
 					data: {
-						title: "閿�鍞椤�",
+						title: "鍏徃棣栭〉",
 						tableData: [],
 						dataRequest: [
 							{
@@ -46,7 +46,7 @@
 							// {isshow: "T", code: "M002", title: "鎴戠殑鐢宠", layout: "left", width: "50%", height: "30%", order_no: 2},
 							{isshow: "T", code: "M003", title: "鎴戠殑鎸囨爣", layout: "left", width: "100%", height: "306px", order_no: 3},
 							{isshow: "T", code: "M004", title: "鎴戠殑瀹㈡埛", layout: "left", width: "100%", height: "148px", order_no: 4},
-							{isshow: "T", code: "M005", title: "妞嶅叆鏃ュ巻", layout: "right", width: "100%", height: "50%", order_no: 5},
+							{isshow: "T", code: "M005", title: "宸ヤ綔鏃ュ巻", layout: "right", width: "100%", height: "50%", order_no: 5},
 							{isshow: "T", code: "M006", title: "蹇嵎鍏ュ彛", layout: "right", width: "100%", height: "50%", order_no: 6},
 						],
 						moduleLayout: {},
@@ -235,9 +235,9 @@
 									if (me.dataRequestObj.sys_notify_message && me.dataRequestObj.sys_notify_message.data && me.dataRequestObj.sys_notify_message.data.entityset) {
 										dataobj_.M001 = clone(me.dataRequestObj.sys_notify_message.data.entityset)
 										var file_ = {
-											id: "111", type_code: "sale", title: "銆婂鎴稤MS鎿嶄綔鎵嬪唽-绠�鐗�-1.1銆�", create_time: "2024-03-20 15:48:04",
+											id: "111", type_code: "sale", title: "銆婅惀閿�涓�浣撳寲杩愯惀骞冲彴鎿嶄綔鎵嬪唽1.1銆�", create_time: "2024-03-20 15:48:04",
 											files: [
-												{filename: "瀹㈡埛DMS鎿嶄綔鎵嬪唽-绠�鐗�-1.1.pdf", fileid: "11111", dataname: "sys_notify_message"},
+												{filename: "钀ラ攢涓�浣撳寲杩愯惀骞冲彴鎿嶄綔鎵嬪唽1.1.pdf", fileid: "11111", dataname: "sys_notify_message"},
 										]}
 										dataobj_.M001.push(file_);
 											
@@ -535,7 +535,7 @@
 									if (this.calendar_month_map[slotData.day].order_open_time && this.calendar_month_map[slotData.day].order_open_time != "00:00") {
 										tooltip_ = "鍏宠处鏃ャ��"+ this.calendar_month_map[slotData.day].order_open_time +"銆戝悗涓嶅厑璁镐笅鍗曘��";
 									}else {
-										tooltip_ = "鍏宠处鏃ュ唴涓嶅厑璁镐笅鍗曘��";
+										tooltip_ = "娴佸悜鍙敵璇�";
 									}
 								}
 								
@@ -548,10 +548,10 @@
 								}
 								
 								if (this.calendar_month_map[slotData.day] && this.calendar_month_map[slotData.day].is_implant_open) {
-									tooltip_ += "銆愬厑璁告鍏ヤ笂鎶ャ�戙��";
+									tooltip_ += "銆愬垵鐗堟祦鍚戙��";
 								}
 								if (this.calendar_month_map[slotData.day] && this.calendar_month_map[slotData.day].is_order_open) {
-									tooltip_ += "銆愬厑璁镐笅鍗曘�戙��";
+									tooltip_ += "銆愮粓鐗堟祦鍚戙��";
 								}
 							}
 							return tooltip_;
@@ -867,6 +867,7 @@
 				/* border-left: 1px solid #6495ed; */
 				border-right: 1px solid #6495ed;
 				border-bottom: 1px solid #6495ed;
+				background-color: #6495ed;
 				border-radius: 5px;
 				cursor: pointer;
 			}
@@ -874,6 +875,7 @@
 				/* border-left: 1px solid #55aa7f; */
 				border-right: 1px solid #55aa7f;
 				border-bottom: 1px solid #55aa7f;
+				background-color: #55aa7f;
 				border-radius: 5px;
 				cursor: pointer;
 			}
diff --git a/module/system/page/home/page/home_sale.html b/module/system/page/home/page/home_sale.html
index 5be8809..548a2ab 100644
--- a/module/system/page/home/page/home_sale.html
+++ b/module/system/page/home/page/home_sale.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;
@@ -15,7 +15,7 @@
 				new BasicsVue({
 					el: "#vbody",
 					data: {
-						title: "閿�鍞椤�",
+						title: "鐪佸尯缁忕悊棣栭〉",
 						tableData: [],
 						dataRequest: [
 							// {
@@ -60,7 +60,7 @@
 							// {isshow: "T", code: "M002", title: "鎴戠殑鐢宠", layout: "left", width: "50%", height: "30%", order_no: 2},
 							{isshow: "T", code: "M003", title: "鎴戠殑鎸囨爣", layout: "left", width: "100%", height: "306px", order_no: 3},
 							{isshow: "T", code: "M004", title: "鎴戠殑瀹㈡埛", layout: "left", width: "100%", height: "148px", order_no: 4},
-							{isshow: "T", code: "M005", title: "妞嶅叆鏃ュ巻", layout: "right", width: "100%", height: "50%", order_no: 5},
+							{isshow: "T", code: "M005", title: "宸ヤ綔鏃ュ巻", layout: "right", width: "100%", height: "50%", order_no: 5},
 							{isshow: "T", code: "M006", title: "蹇嵎鍏ュ彛", layout: "right", width: "100%", height: "50%", order_no: 6},
 						],
 						moduleLayout: {
@@ -71,7 +71,7 @@
 							// 	{isshow: "T", code: "004", title: "鎴戠殑瀹㈡埛", layout: "left", width: "100%", height: "30%", order_no: 4},
 							// ],
 							// right: [
-							// 	{isshow: "T", code: "005", title: "妞嶅叆鏃ュ巻", layout: "right", width: "100%", height: "50%", order_no: 5},
+							// 	{isshow: "T", code: "005", title: "宸ヤ綔鏃ュ巻", layout: "right", width: "100%", height: "50%", order_no: 5},
 							// 	{isshow: "T", code: "006", title: "蹇嵎鍏ュ彛", layout: "right", width: "100%", height: "50%", order_no: 6},
 							// ],
 						},
@@ -289,9 +289,9 @@
 									if (me.dataRequestObj.sys_notify_message && me.dataRequestObj.sys_notify_message.data && me.dataRequestObj.sys_notify_message.data.entityset) {
 										dataobj_.M001 = clone(me.dataRequestObj.sys_notify_message.data.entityset)
 										var file_ = {
-											id: "111", type_code: "sale", title: "銆婂鎴稤MS鎿嶄綔鎵嬪唽-绠�鐗�-1.1銆�", create_time: "2024-03-20 15:48:04",
+											id: "111", type_code: "sale", title: "銆婅惀閿�涓�浣撳寲杩愯惀骞冲彴鎿嶄綔鎵嬪唽1.1銆�", create_time: "2024-03-20 15:48:04",
 											files: [
-												{filename: "瀹㈡埛DMS鎿嶄綔鎵嬪唽-绠�鐗�-1.1.pdf", fileid: "11111", dataname: "sys_notify_message"},
+												{filename: "钀ラ攢涓�浣撳寲杩愯惀骞冲彴鎿嶄綔鎵嬪唽1.1.pdf", fileid: "11111", dataname: "sys_notify_message"},
 										]}
 										// dataobj_.M001.unshift(file_);
 										dataobj_.M001.push(file_);
@@ -646,7 +646,7 @@
 									if (this.calendar_month_map[slotData.day].order_open_time && this.calendar_month_map[slotData.day].order_open_time != "00:00") {
 										tooltip_ = "鍏宠处鏃ャ��"+ this.calendar_month_map[slotData.day].order_open_time +"銆戝悗涓嶅厑璁镐笅鍗曘��";
 									}else {
-										tooltip_ = "鍏宠处鏃ュ唴涓嶅厑璁镐笅鍗曘��";
+										tooltip_ = "娴佸悜鍙敵璇�";
 									}
 								}
 								
@@ -659,10 +659,10 @@
 								}
 								
 								if (this.calendar_month_map[slotData.day] && this.calendar_month_map[slotData.day].is_implant_open) {
-									tooltip_ += "銆愬厑璁告鍏ヤ笂鎶ャ�戙��";
+									tooltip_ += "銆愬垵鐗堟祦鍚戙��";
 								}
 								if (this.calendar_month_map[slotData.day] && this.calendar_month_map[slotData.day].is_order_open) {
-									tooltip_ += "銆愬厑璁镐笅鍗曘�戙��";
+									tooltip_ += "銆愮粓鐗堟祦鍚戙��";
 								}
 							}
 							return tooltip_;
@@ -1034,6 +1034,7 @@
 				/* border-left: 1px solid #6495ed; */
 				border-right: 1px solid #6495ed;
 				border-bottom: 1px solid #6495ed;
+				background-color: #6495ed;
 				border-radius: 5px;
 				cursor: pointer;
 			}
@@ -1041,6 +1042,7 @@
 				/* border-left: 1px solid #55aa7f; */
 				border-right: 1px solid #55aa7f;
 				border-bottom: 1px solid #55aa7f;
+				background-color: #55aa7f;
 				border-radius: 5px;
 				cursor: pointer;
 			}
diff --git a/module/system/page/main.html b/module/system/page/main.html
index c2dba55..4536f68 100644
--- a/module/system/page/main.html
+++ b/module/system/page/main.html
@@ -7,27 +7,27 @@
 	<meta http-equiv="Cache-control" content="no-cache">
 	<meta http-equiv="Cache" content="no-cache">
 	<title>缁堢鎺ㄥ箍骞冲彴</title>
-	<link href="../css/main.css?v=2024071401" rel="stylesheet">
-	<link href="../../../css/control.css?v=2024071401" rel="stylesheet">
-	<link href="../../../css/page.css?v=2024071401" rel="stylesheet">
-	<link href="../../../css/icon/iconfont.css?v=2024071401" rel="stylesheet">
+	<link href="../css/main.css?v=2024073101" rel="stylesheet">
+	<link href="../../../css/control.css?v=2024073101" rel="stylesheet">
+	<link href="../../../css/page.css?v=2024073101" rel="stylesheet">
+	<link href="../../../css/icon/iconfont.css?v=2024073101" rel="stylesheet">
 	<link href="../../../js/vue/element-ui/lib/theme-chalk/index.css" rel="stylesheet">
 	<link href="../../../img/org/head.png" rel="shortcut icon" type="image/x-icon">
-	<link href="../../../css/myelement.css?v=2024071401" rel="stylesheet">
+	<link href="../../../css/myelement.css?v=2024073101" rel="stylesheet">
 	
 	<script src="../../../js/jquery-3.5.1.min.js"></script>
 	<script src="../../../js/vue/vue.js"></script>
 	
-	<script src="../../../js/config.js?v=2024071401"></script>
+	<script src="../../../js/config.js?v=2024073101"></script>
 	<script src="../../../data/data.js"></script>
 	<script src="../../../js/vue/elementDefault.js"></script>
 	<script src="../../../js/vue/element-ui/lib/index.js"></script>
 	<script src="../../../js/Sortable.js"></script>
-	<script src="../../../js/vue/page.js?v=2024071401"></script>
-	<script src="../../../js/foundation.js?v=2024071401"></script>
-	<script src="../../../js/control.js?v=2024071401"></script>
+	<script src="../../../js/vue/page.js?v=2024073101"></script>
+	<script src="../../../js/foundation.js?v=2024073101"></script>
+	<script src="../../../js/control.js?v=2024073101"></script>
 	<script src="../../../js/loadJsCss.js"></script>
-	<script src="../../../js/myelement.js?v=2024071401"></script>
+	<script src="../../../js/myelement.js?v=2024073101"></script>
 	
 </head>
 	
@@ -50,7 +50,7 @@
 			<div id="pnl_header" class="header">
 				<!-- 椤堕儴鑿滃崟鐨勬敹璧峰睍寮� -->
 				<div v-show="cardtablist.length > 1" id="btn_toggle" class="but_toggle">
-					<el-popover v-model="showTopMenu" placement="bottom-start"  trigger="hover" popper-class="h_top_menu ">
+					<el-popover v-model="showTopMenu" placement="bottom-start"  trigger="click" popper-class="h_top_menu ">
 					  <template v-for="pageno in cardlist_pagesize">
 					  	<div v-if="cardtablist[(cardlist_pagesize * (pagenum - 1)) + (pageno - 1)]" 
 					  	:class="['h_card', selectCard.id == cardtablist[(cardlist_pagesize * (pagenum - 1)) + (pageno - 1)].id ? 'active_card' : '']" 
@@ -190,7 +190,7 @@
 					<div class="logoText" style="overflow: hidden; line-height: 52px;" align="center">
 						<span class="close_logo">{{simplify_title}}</span>
 						<div style="height: 52px; display: flex; justify-content: center; align-items: center;background-color: #fff;">
-						   	<img src="../../../img/org/logo.png" style="width: 85%">
+						   	<img src="../../../img/org/logo.png" style="width: 75%">
 							<!-- style="height: 34px" -->
 						</div>
 					</div>
diff --git a/module/visit/page/popup/visit_log_detail.html b/module/visit/page/popup/visit_log_detail.html
new file mode 100644
index 0000000..13c0a71
--- /dev/null
+++ b/module/visit/page/popup/visit_log_detail.html
@@ -0,0 +1,1570 @@
+<!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() {
+				new FormVue({
+					el: "#vbody",
+					data: {
+						dataname: "md_terminal_visition",
+						table_dataname: "wm_transfer_detail",
+						title: "鎷滆璇︽儏",
+						dataRequest: [
+							{
+							 name: "wm_stock_type",
+							 dataname: "wm_stock_type",
+							// filter: " table_name='agm_record'",
+							 orderby: "name",
+							 isnotoption: false, //true:涓嶆槸閫夐」
+							 code:"code",//鏄笅鎷夐�夐」鏃惰缃�
+							 label:"name",//鏄笅鎷夐�夐」鏃惰缃�
+							},
+							{
+								name: "wm_warehouse",
+								dataname: "wm_warehouse_all",
+								// filter: "org_id='"+window.top.vue.userinfo.org_id+"'", // 鏍囪瘑
+								isnotoption: false, //true:涓嶆槸閫夐」
+								code:"code",//鏄笅鎷夐�夐」鏃惰缃�
+								label:"name",//鏄笅鎷夐�夐」鏃惰缃�
+							},
+						],
+						options_wm_warehouse: [],
+						oldFormData:[],
+						formAttr: {
+							istitle: false,
+							title: "琛ㄥ崟鍚嶇О",
+							columnnumber: 2,
+							labelwidth: "120px",
+							labelposition: "left",//"left",// right//top
+							size: "mini",
+							border: "5px solid #c6c6c600"
+						},
+						
+						formFields: [],
+						
+						newformData: {
+							code: createCode("DB"),
+							doc_date: createDate(),
+							create_time: createDatetime(),
+							state_code: "Input",
+							state_name: "鑽夌",
+							// account_id:window.top.vue.userinfo.currentactor.target_id,
+							// company_id:window.top.vue.userinfo.currentactor.company_id,
+							// bu_id:window.top.vue.userinfo.currentactor.bu_id,
+							to_account_id:"",
+							// to_company_id:window.top.vue.userinfo.currentactor.company_id,
+							// to_bu_id:window.top.vue.userinfo.currentactor.bu_id,
+							// org_id: window.top.vue.userinfo.org.id,
+							// org_code: window.top.vue.userinfo.org.code,
+							// org_name: window.top.vue.userinfo.org.name,
+							type_code: "channel_transfer",
+							creator_name: window.top.vue.userinfo.name,
+						},
+						formData: {},
+						
+						isRefresh: true,
+						tablebuttonClick:[],
+						tableFields: [],
+						newTableData: {
+							create_time: createDatetime(),
+							creator_name: window.top.vue.userinfo.name,
+						},
+						tableData: [],
+						
+						//鎸夐敭鏉冮檺璁剧疆
+						isedit: false,//鎻愪氦鍓嶇紪杈戯紝淇濆瓨/鎻愪氦
+						isrefuseedit: false,//鎷掔粷鍚庣紪杈戯紝淇濆瓨/鍐嶆鎻愪氦
+						isapproval: false,//瀹℃壒锛屽悓鎰�/鎷掔粷/杞姙/閫�鍥�
+						
+						iscommit: false,//鎻愪氦鏍囪
+						
+						//寮圭獥鍙傛暟
+						popupParames: {},
+						//瀛楁璁剧疆
+						tablefieldClick: {},
+						formfieldClick: {},
+						dheight: 0,
+						qty_available:0,
+						checkarr:[],//鏍囪瘑涓�
+						delarr:[],//鏍囪瘑浜�
+						operate: "",
+						
+						//瀹℃壒鐩稿叧鍙橀噺
+						loading_save: false,
+						loading_pass: false,
+						reasonvisible:false,//瀹℃壒閫氳繃鎴栨嫆缁濆~鍐欏師鍥�
+						approveremark: "",//濉啓鐞嗙敱
+						passOrRefuse:false,
+						iscustomer:false,
+						tableAttr:{},
+					},
+					created() {
+						this.iscustomer = window.top.vue.isCustomer
+						
+						if (this.iscustomer) {
+							this.newformData.account_id = window.top.vue.userinfo.currentactor.target_id
+							this.newformData.company_id = window.top.vue.userinfo.currentactor.company_id
+							this.newformData.bu_name = window.top.vue.userinfo.currentactor.bu_name
+							this.newformData.bu_id = window.top.vue.userinfo.currentactor.bu_id
+							this.newformData.to_company_id = window.top.vue.userinfo.currentactor.company_id
+							this.newformData.to_bu_name = window.top.vue.userinfo.currentactor.bu_name
+							this.newformData.to_bu_id = window.top.vue.userinfo.currentactor.bu_id
+							this.newformData.org_id = window.top.vue.userinfo.org.id
+							this.newformData.org_code = window.top.vue.userinfo.org.code
+							this.newformData.org_name = window.top.vue.userinfo.org.name
+							
+							if (window.top.vue.userinfo && window.top.vue.userinfo.currentactor && window.top.vue.userinfo.currentactor.actor_id == "Actor-Customer-Platform") {
+								this.newformData.type_code = "to_second"
+							}
+						}
+						
+						this.dheight = document.documentElement.clientHeight - 92;
+						this.popupParames = clone(Root.popupParames);
+						this.operate = this.popupParames.sceneCode;
+						this.title = this.popupParames.title || this.popupParames.text
+						if (this.popupParames.data) {
+							this.formData = clone(this.popupParames.data);
+						}
+						
+						if (this.popupParames.sceneCode) {
+							if (this.popupParames.sceneCode == "add") {//鏂板
+								// if (this.newformData) {
+								// 	let formData_ = clone(this.formData);
+									
+								// 	for (var k in this.newformData) {
+								// 		formData_[k] = this.newformData[k];
+								// 	}
+								// 	this.formData = formData_;
+								// }
+								
+								// if (this.newTableData) {
+								// 	this.tableData.push(clone(this.newTableData));
+								// }
+								
+								//鍔ㄦ�佽幏鍙栭粯璁ゆ暟鎹�
+								var newEntity_ = {
+									name: "newEntity",
+									url: "root/data/newEntity",
+									paramsobj: {dataname: this.dataname},
+									isnotoption: true, //true:涓嶆槸閫夐」
+								}
+								this.dataRequest.push(newEntity_);
+								
+								this.isedit = true;
+							}
+							else if (this.popupParames.sceneCode == "browse") {//鍙
+								this.formAttr.disabled = true;
+								this.isedit = false;
+							}
+							else if (this.popupParames.sceneCode == "edit") {//缂栬緫
+								this.isedit = true;
+							}
+							else if (this.popupParames.sceneCode == "approval") {//瀹℃壒
+								this.formAttr.disabled = true;
+								this.isapproval = true;
+							}
+							else if (this.popupParames.sceneCode == "refuseedit") {//鎷掔粷鍚庣殑缂栬緫
+								this.isrefuseedit = true;
+							}
+						}
+					},
+					
+					mounted() {
+						var me = this;
+						//棰勫姞杞芥暟鎹�
+						if (this.dataRequest && this.dataRequest.length) {
+							var result = {};
+							this.loadRequestData(this.dataRequest, result, function(data) {
+								me.dataRequestObj = data;
+								//棰勫姞杞芥暟鎹悗缁欏摢浜涘瓧娈佃缃畂ptions鎴杅ormatterjson
+								if(me.dataRequestObj.wm_warehouse) {
+									me.options_wm_warehouse = me.dataRequestObj.wm_warehouse;
+								}
+								
+								if (me.dataRequestObj.newEntity) {
+									var formData = clone(me.dataRequestObj.newEntity.data[me.dataname]);
+									if (me.newformData) {
+										let formData_ = clone(formData);
+										
+										for (var k in me.newformData) {
+											if (!formData_[k]) {
+												formData_[k] = me.newformData[k];
+											}
+										}
+										
+										if (!formData_.doc_date) {
+											formData_.doc_date = formData_.create_time
+										}
+								
+										me.formData = formData_;
+									}
+								}
+								me.initData();
+
+							});
+						}
+						else {
+							this.initData();
+						}
+						
+						// 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
+						this.$nextTick(() => { 
+							hideLoading();
+							
+							//閲嶆柊璁剧疆寮圭獥瀹介珮
+							this.$nextTick(function(){
+								//let w_ = this.$refs.popup_body.offsetWidth + "px";
+								let w_ = "900px";
+								let h_ = this.$refs.popup_body.offsetHeight + "px";
+								Root.setPopupWH(w_, h_);
+							})
+						});
+					},
+					
+					methods:{
+						//鍏抽棴寮圭獥
+						closeDialog() {
+							var me = this;
+							if (me.popupParames.totab){
+								Root.tab.removeItem(Root.tab.selected);
+								Root.tab.open(me.popupParames.parentOption, false); 
+							}
+							else {
+								Root.hidePopup();
+							}
+						},
+						//鍏抽棴鍓嶈皟鍥炶皟
+						saveAfter() {
+							var me = this;
+							if(this.popupParames.callback) {
+								let obj = {
+									//row: this.formData
+								}
+								this.popupParames.callback(obj, function() {
+									me.closeDialog();
+								});
+							}
+							else {
+								me.closeDialog();
+							}
+						},
+						
+						initData() {
+							let me = this
+							var id_ = null;
+							
+							if (this.formData.id) {
+								id_ = this.formData.id;
+							}
+							me.tableButtonClick();
+							this.getRowDataById(id_, function(result) {//鏌ヨ鍚庣殑鍥炶皟锛岀敤浜庤幏鍙栧瓧娈电殑
+								if (result.meta && result.meta[me.dataname] && result.meta[me.dataname].fields) {
+									var metas = clone(result.meta[me.dataname].fields);
+									var table_dataname_ = "";
+									for (var dataname_ in result.meta) {
+										if (dataname_ != me.dataname && !table_dataname_) {
+											table_dataname_ = dataname_;
+										}
+									}
+									var table_metas = [];
+									if (table_dataname_) {
+										me.table_dataname = table_dataname_;
+										table_metas = clone(result.meta[table_dataname_].fields);
+
+									}
+									
+									var formFields_ = [];
+									var tableFields_ = [];
+									metas.map(f=>{
+										f.isshow = "T";
+										if(f.field == "from_warehouse_name") {											
+											f.options = me.options_wm_warehouse
+										}
+										if(f.field == "to_warehouse_name") {
+											f.options = me.options_wm_warehouse
+										}
+										if (f.field == "org_name" && me.iscustomer) {
+											f.inputtype = "span"
+										}
+										if(f.field == "doc_date") {
+											f.disabled = true
+										}
+										
+										formFields_.push(clone(f));
+									})
+									table_metas.map(f=>{
+										f.isshow = "T";
+										if (f.field == "stock_type_code") {
+											f.options = me.dataRequestObj.wm_stock_type
+											var formatterjson_ = {};
+											me.dataRequestObj.wm_stock_type.map(r=>{
+												formatterjson_[r.code] = r.name;
+											})
+											f.formatterjson = formatterjson_
+											
+										}
+										if (f.field == "qty") {
+											f.inputkeys = "number";//鎸夐敭姝f暣鏁�
+										}
+										tableFields_.push(clone(f));
+									})
+									
+									if (!me.formFields || (me.formFields && me.formFields.length == 0)) {
+										me.formFields = clone(formFields_);
+										me.tableFields = clone(tableFields_);
+									}
+								}
+
+								if (me.rowData[me.dataname]) {
+									me.formData = me.rowData[me.dataname];
+								}
+								if (me.rowData[me.table_dataname]) {
+									me.tableData = me.rowData[me.table_dataname];
+								}
+								
+								// 璋冩嫧闄勪欢鐨勮祴鍊�
+								if (me.rowData["wm_transfer_file"] && me.rowData["wm_transfer_file"].length) {
+									var comeback_attachment_name_ = []
+									me.rowData["wm_transfer_file"].map(f=>{
+										var f_ = {
+											id: f.id,
+											file_name: f.file_name
+										}
+										comeback_attachment_name_.push(f_);
+										
+									})
+									me.$set(me.formData, "transfer_file", comeback_attachment_name_);
+								}
+							})
+
+							
+							//瀛楁鏁扮粍杞瓧娈祇bj锛岀洰鐨勪负浜嗙瓫閫夋椂鑾峰彇瀛楁灞炴��
+							me.fieldsToFieldsObj();
+									
+							//璁剧疆瀛楁浜嬩欢
+							me.tableFieldClick();
+						},
+						
+						tableFieldClick() {
+							var me = this;
+							//琛ㄥ崟瀛楁浜嬩欢璁剧疆
+							this.formfieldClick = {
+								org_name: {
+									popup: {
+										onclick: function(obj) {//寮圭獥鐐瑰嚮浜嬩欢
+											me.openOrg(obj,function(popupobj){
+												let formData_ = clone(me.formData);
+												formData_.org_name = popupobj.row.account_name;
+												formData_.org_id = popupobj.row.org_id;
+												formData_.org_code = popupobj.row.code;												
+												formData_.account_id = popupobj.row.id; //account_id锛屽緟楠岃瘉
+												formData_.company_id = popupobj.row.company_id;
+												formData_.bu_name = popupobj.row.bu_name;
+												formData_.bu_id = popupobj.row.bu_id;
+												formData_.from_warehouse_name = "";//鏍囪瘑锛氭洿鎹㈠叕鍙稿悗锛岀浉搴旂殑浠撳簱閲嶆柊閫夋嫨
+												formData_.from_warehouse_id = "";
+												formData_.from_warehouse_code = "";
+												
+												if (popupobj.row.actor_code == "Platform") { // 濡傛灉鏄钩鍙板晢
+													formData_.type_code = "to_second"
+												}
+												else {
+													formData_.type_code = "channel_transfer"
+												}
+												me.formData = formData_;
+												// me.onQuery();
+											})
+										}
+									}
+								},
+								to_org_name: {
+									popup: {
+										onclick: function(obj) {//寮圭獥鐐瑰嚮浜嬩欢
+											me.openOrg(obj,function(popupobj){
+												let formData_ = clone(me.formData);
+												formData_.to_org_name = popupobj.row.account_name;
+												formData_.to_org_id = popupobj.row.org_id;
+												formData_.to_org_code = popupobj.row.code;												
+												formData_.to_account_id = popupobj.row.id; //to_account_id涓巌d寰呴獙璇�
+												formData_.to_company_id = popupobj.row.company_id;
+												formData_.to_bu_name = popupobj.row.bu_name;
+												formData_.to_bu_id = popupobj.row.bu_id;
+												formData_.to_warehouse_name = "";//鏍囪瘑锛氭洿鎹㈠叕鍙稿悗锛岀浉搴旂殑浠撳簱閲嶆柊閫夋嫨
+												formData_.to_warehouse_id = "";
+												formData_.to_warehouse_code = "";
+												me.formData = formData_;
+												// me.onQuery();
+											})
+										}
+									}
+								},
+								// to_org_name: { 
+								// 	popup: {
+								// 		onclick: function(obj) {//寮圭獥鐐瑰嚮浜嬩欢
+								// 			//鎵撳紑
+								// 			me.tablePopup_customerList(obj)
+								// 		}
+								// 	},
+								// },
+								from_warehouse_name: {
+									visible: {
+											onchange: function(obj) {
+												me.oldFormData = clone(me.formData)
+												// me.formData.from_warehouse_name//杩欐槸鍑轰粨椤�
+												var formFields_ = [];
+												var options_ = []
+												formFields_ = clone(me.formFields)
+												me.options_wm_warehouse.map(f=>{ 
+													if(f.org_id == me.formData.org_id && f.account_id == me.formData.account_id) { //鍑轰粨椤规牴鎹搴斿叕鍙稿拰鎴峰ご杩囨护
+														options_.push(clone(f))
+													}
+													// if(f.name != me.formData.to_warehouse_name) {//鍑哄叆浠撻」浜掓枼
+													// 	options_.push(clone(f))
+													// }
+												})
+												formFields_.map(f=>{
+													if(f.field == "from_warehouse_name") {
+														f.options = clone(options_)
+													}
+												})
+												me.formFields = clone(formFields_)
+												if(me.formData.from_warehouse_name) {
+													Root.confirm('鏇存崲璋冨嚭浠撳簱灏嗕細閲嶇疆鏄庣粏锛屾槸鍚︾户缁紵', '鏇存崲鎻愮ず', { //涓嬫媺鎻愮ず
+													confirmButtonText: '纭畾',
+													// cancelButtonText: '鍙栨秷',
+													showCancelButton:false,
+													type: 'warning'
+													}).then(() => {
+														return		
+													}).catch(() => {
+														return						      
+													});
+												}
+											}
+									},
+									select: {
+										onchange: function(obj) {
+											// if(JSON.stringify(obj.selectoption)=="{}") {
+											// 	if(me.formData.from_warehouse_name) {
+											// 		Root.confirm('锛屾槸鍚︾户缁紵', '鏇存崲鎻愮ず', { //涓嬫媺鎻愮ず
+											// 		confirmButtonText: '纭畾',
+											// 		// cancelButtonText: '鍙栨秷',
+											// 		showCancelButton:false,
+											// 		type: 'warning'
+											// 		}).then(() => {
+											// 			return		
+											// 		}).catch(() => {
+											// 			return						      
+											// 		});
+											// 	}
+											// }
+											me.tableData = []
+											obj.data.from_warehouse_name = obj.selectoption.value//灏嗛�変腑椤硅祴鍊�
+											obj.data.from_warehouse_id = obj.selectoption.id
+											obj.data.from_warehouse_code = obj.selectoption.code 										
+										}
+									}
+									
+								},
+								to_warehouse_name: {
+									visible: {
+										onchange: function(obj) {
+											var formFields_ = [];
+											var options_ = []
+											formFields_ = clone(me.formFields)
+											me.options_wm_warehouse.map(f=>{
+												//鏍囪瘑浜�
+												if(f.org_id == me.formData.to_org_id && f.account_id == me.formData.to_account_id) { //鍏ヤ粨椤规牴鎹搴斿叕鍙稿拰鎴峰ご杩囨护
+													options_.push(clone(f))
+												}
+
+											})
+											formFields_.map(f=>{
+												if(f.field == "to_warehouse_name") {
+													f.options = clone(options_)
+												}
+											})
+											me.formFields = clone(formFields_)
+											
+										}
+									},
+									select: {
+										onchange: function(obj){
+											obj.data.to_warehouse_name = obj.selectoption.value
+											obj.data.to_warehouse_id = obj.selectoption.id
+											obj.data.to_warehouse_code = obj.selectoption.code
+										}
+									}
+								},
+								
+								transfer_file: { // 鐩稿叧闄勪欢锛堝闄勪欢锛�
+									buttonarray: {
+										onclick: function(obj) {
+											var filenamefield = obj.obj.field;
+											var fileidfield = "";
+											
+											if(obj.buttonobj && obj.buttonobj.code == "showfilebyfile"){
+												me.showFileImgByFileId_n(filenamefield, obj.buttonobj.fileobj, obj.formdata);
+											}else if (obj.buttonobj && obj.buttonobj.code == "uploadlist"){
+												me.onPopupByUploadFile_n(filenamefield, fileidfield, "wm_transfer", obj.formdata);
+											}else if (obj.buttonobj && obj.buttonobj.code == "delfilebyfile"){
+												me.deleteByFileId_n(filenamefield, obj.buttonobj.fileobj, obj.formdata);
+											}
+										},
+										
+									}
+								},
+							};
+							
+							//琛ㄦ牸瀛楁浜嬩欢璁剧疆
+							this.tablefieldClick = {
+								
+								qty: {
+									input: {
+										onchange: function(obj) {//杈撳叆鏇存敼浜嬩欢
+											// if (!obj.row.material_name) {
+											// 	Root.message({
+											// 		type: 'warning',
+											// 		message: "璇峰厛閫夋嫨浜у搧鐗╂枡"
+											// 	});
+											// 	obj.row.qty = null;
+											// 	return
+											// }
+											
+											if (obj.row.qty * 1 < 0) {
+												Root.message({
+													type: 'warning',
+													message: "璋冨嚭閲忓繀椤诲ぇ浜�0"
+												});
+												obj.row.qty = 0;
+												return
+											}
+											
+											if (obj.row.qty * 1 > obj.row.stock_qty * 1) {
+												Root.message({
+													type: 'warning',
+													message: "鍙敤閲忎笉瓒�"
+												});
+												obj.row.qty = 0;
+												return
+											}
+											//灏嗙被浼尖��00099鈥欎箣绫荤殑鏁板瓧锛屽墠闈㈢殑0閮藉垹鎺�
+											if (obj.row.qty && obj.row.qty.length > 1) {
+												var p = 0;
+												for (q = 0; q <= (obj.row.qty.length + p); q++) {
+													if (obj.row.qty[0]*1 == 0) {
+														obj.row.qty = obj.row.qty.substring(1);
+														p ++;
+													} else {
+														break;
+													}
+												}
+											}
+										}
+									},
+									
+								}
+								
+								
+							};
+						},
+						// 璁剧疆琛ㄦ牸宸ュ叿鏍忔寜閿簨浠�
+						tableButtonClick() {
+							var me = this;
+							var tablebuttonclick = [];
+							tablebuttonclick = [
+								{	
+									name:"鏂板鏄庣粏",
+									isbuttonshow: me.isedit, type: "primary",
+									code: "addDetail", isselected: false, classname:"",
+								
+									onclick: function(obj) {
+										console.log(obj)
+										// if(!me.formData.from_warehouse_name){ //  || !me.formData.to_warehouse_name
+										// 	Root.message({
+										// 		type: 'warning',
+										// 		message: '璇峰厛閫夋嫨璋冨嚭浠撳簱'
+										// 	});
+										// 	return;
+										// }
+										if(!me.formData.account_id){ //  || !me.formData.to_warehouse_name
+											Root.message({
+												type: 'warning',
+												message: '璇峰厛閫夋嫨璋冨嚭瀹㈠晢'
+											});
+											return;
+										}
+										
+										me.tablepopup_productlist("add", obj, function(popupobj){
+											// let row_ = clone(me.formData)
+											var tableData_ = clone(me.tableData);
+				// 							var newrow = {
+				// 								product_id: popupobj.row.product_id,
+				// 								product_code: popupobj.row.product_code,
+				// 								product_name: popupobj.row.product_name,
+				// 								// material_code: popupobj.row.material_code,
+				// 								// material_name: popupobj.row.material_name,
+				// 								spec: popupobj.row.spec,
+
+				// 								unit: popupobj.row.unit,
+				// 								batch_no: popupobj.row.batch_no,
+				// 								batch_sn: popupobj.row.batch_sn,
+				
+				// 								valid_from: popupobj.row.valid_from,
+				// 								valid_to: popupobj.row.valid_to,
+				// 								stock_type_code: popupobj.row.stock_type_code,
+				// 								stock_type_name: popupobj.row.stock_type_name,
+				// 								stock_qty: popupobj.row.qty_total * 1 - popupobj.row.qty_frozen * 1,
+				// 								qty: 1,
+				// 							}
+											
+				// 							tableData_.unshift(clone(newrow));
+											
+											
+											// if (popupobj.rowlist && popupobj.rowlist.length) {
+											// 	popupobj.rowlist.map(row=>{
+											// 		var newrow = {
+											// 			from_warehouse_id: row.warehouse_id,
+											// 			from_warehouse_code: row.wm_warehouse__code,
+											// 			from_warehouse_name: row.wm_warehouse__name,
+														
+											// 			// book_detail_id: popupobj.row.book_detail_id,
+											// 			product_id: row.product_id,
+											// 			product_code: row.product_code,
+											// 			product_name: row.product_name,
+											// 			// material_code: row.material_code,
+											// 			// material_name: row.material_name,
+											// 			spec: row.spec,
+													
+											// 			unit: row.unit,
+											// 			batch_no: row.batch_no,
+											// 			batch_sn: row.batch_sn,
+											// 			// batch_no_flag: row.batch_no_flag,
+											// 			// batch_sn_flag: row.batch_sn_flag,
+											// 			valid_from: row.valid_from,
+											// 			valid_to: row.valid_to,
+											// 			stock_type_code: row.stock_type_code,
+											// 			stock_type_name: row.stock_type_name,
+											// 			stock_qty: row.qty_total * 1 - row.qty_frozen * 1,
+											// 			// stock_qty:row.qty_total,//鏍囪瘑浜岋紝寰呰皟鏁�
+											// 			qty: 1,//鏍囪瘑浜岋紝寰呰皟鏁�
+											// 		}
+											// 		tableData_.unshift(clone(newrow));
+											// 	})
+											// }
+											
+											// me.tableData = clone(tableData_)
+												var list_h = clone(popupobj.list); //璐墿杞﹁繑鍥炰竴涓暟缁�
+												if (popupobj.type == "upload_sku") { // 瀵煎叆鐨勪骇鍝侊紝鍏ㄩ儴鏇挎崲鏄庣粏
+													var tableData_ = [];
+													list_h.map(row=>{
+														var table_row = {
+															from_warehouse_id: row.warehouse_id,
+															from_warehouse_code: row.warehouse_code,
+															from_warehouse_name: row.warehouse_name,
+															product_id: row.product_id,
+															product_code: row.product_code,
+															product_name: row.product_name,
+															spec: row.spec,
+															unit: row.unit,
+															// qty: row.qty_available,
+															stock_qty: row.qty_available ?  row.qty_available:1,
+															qty: row.qty ? row.qty : 1, // 璁㈠崟鏁伴噺
+															batch_no: row.batch_no,
+															batch_sn: row.batch_sn,
+															valid_from: row.valid_from,
+															valid_to: row.valid_to,
+															
+														};
+														tableData_.unshift(table_row)
+													})
+													me.tableData = clone(tableData_);
+												}
+												else {
+													var tableData_ = clone(me.tableData);
+													list_h.map(row=>{
+														var table_row = {
+															from_warehouse_id: row.warehouse_id,
+															from_warehouse_code: row.warehouse_code,
+															from_warehouse_name: row.warehouse_name,
+															product_id: row.product_id,
+															product_code: row.product_code,
+															product_name: row.product_name,
+															spec: row.spec,
+															unit: row.unit,
+
+															// qty: row.qty_available,
+															stock_qty: row.qty_available ?  row.qty_available:1,
+															qty: row.input_qty ? row.input_qty : 1, // 璁㈠崟鏁伴噺
+															batch_no: row.batch_no,
+															batch_sn: row.batch_sn,
+															valid_from: row.valid_from,
+															valid_to: row.valid_to,
+														};
+														tableData_.unshift(table_row)
+													})
+													me.tableData = clone(tableData_);
+												}
+										})
+
+									}
+								},
+								{
+									isbuttonshow: me.isedit, type: "danger",
+									code: "delete", isselected: true, classname:"",
+									disabled: function(selectRowList) {
+									    var bo_ = true ;
+									    if (selectRowList[0]) {
+									        bo_ = false
+									    }
+									    return bo_; 
+									},
+									onclick: function(obj) {
+										var row = obj.selectedList[0];
+										var txt = clone(row.product_name);
+										me.deleteDataById(row.id, "wm_transfer_detail", "銆�" + txt + "銆�", function(){
+											me.tableData.splice(obj.selectRowIndex, 1);
+										})
+									}
+								}
+							]
+							me.tablebuttonClick = tablebuttonclick
+							
+						},
+						
+						tablepopup_productlist(sceneCode, obj , callback) {
+							var me = this;
+							var data_ = {};
+							var selectmap_ = {};
+							console.log(obj);
+							
+							//鎺掗櫎宸查�夌墿鏂�
+							me.tableData.map(row=>{
+								if (row.batch_sn) {
+									var key_ = row.from_warehouse_id + "_" + row.product_code + "_" + row.batch_no + "_" + row.batch_sn
+									selectmap_[key_] = true
+								}
+								else if (row.product_code) {
+									var key_ = row.from_warehouse_id + "_" + row.product_code + "_" + row.batch_no
+									selectmap_[key_] = true
+								}
+							})
+							
+							var config = {
+								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "1100px",
+								height: "520px",
+								icon: "icon-product",
+								text: "鏄庣粏閫夋嫨",
+								id: "popup_book_detail",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/popup/page/popup_bookDetail_upload_transfer.html",
+								data: data_,
+								delta: {isinputqty: true, selectmap: selectmap_, customer_id: this.formData.account_id},
+								// filter: "org_id='"+ me.selectedrow.org_id + "' and bu_id='" + me.selectedrow.bu_id + "'",
+								// filter: "warehouse_name='" + me.formData.from_warehouse_name +"'" , 
+								filter: "qty_available > 0 and wm_book_detail.account_id='" + me.formData.account_id +"'" , 
+								sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(popupobj, popupcallback) {
+									callback(popupobj);
+									if (popupcallback) {
+										popupcallback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						deleteDataById(id, dataname, confirm_txt, callback){
+							var me = this;
+							var formData_ = clone(me.formData);
+							Root.confirm('纭畾鍒犻櫎璇�' + confirm_txt + '鍚楋紵', '鍒犻櫎鎻愮ず', {
+							  confirmButtonText: '鍒犻櫎',
+							  cancelButtonText: '鍙栨秷',
+							  type: 'warning'
+							}).then(() => {
+								if (id) {
+									let param = {
+										dataname: dataname,
+										id: id
+									}
+									Server.call("root/data/deleteEntity", param, function(result) {
+										console.log(result);
+										if (result && result.data) {
+											callback();
+										}
+									});
+								}
+								else {
+									callback();
+								}
+								
+							}).catch(() => {
+								Root.message({
+									type: 'info',
+									message: '宸插彇娑堝垹闄�'
+								});          
+							});
+							
+						},
+						
+						showFileImgByFileId_n(filenamefield, fileobj, objformdata){
+							let me = this;
+							var formData_ = clone(me.formData);
+							var file_id = fileobj.id
+							var file_name = fileobj.file_name
+							var dataname_ = this.dataname
+							
+							this.zzimg = {};
+							this.zzimgList = [];
+							this.file_txt = false;
+							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 == ".jpeg" || suffix == ".pdf") {
+									var row = {
+										fileid: fileid,
+										dataname: dataname_,
+										filename: fileName
+									}
+									var config = {
+										totab: false,
+										width: "1200px",
+										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, dataname_);
+								}
+							}
+						},
+						onPopupByUploadFile_n(filenamefield, fileidfield, dataname, objformdata) {
+							var me = this;
+							var analysistype_ = "";
+							var sender_id_ = ""; // 涓氬姟鏁版嵁id;
+							if (objformdata.id) {
+								sender_id_ = objformdata.id;
+							}
+							
+							// var analysistype = "invoiceIdentify"; // 鍙戠エ楠岀湡
+							// if (me.formData.implant_evidence_code == "deliver") { // 鍑哄簱鍗�
+							// 	analysistype = "";
+							// }
+							var delta_ = {filetypelist: [".png", ".jpg", ".jpeg",".pdf"]}; //, ".pdf"
+							var config = {
+								totab: false,
+								width: "500px",
+								icon: "icon-product",
+								text: "闄勪欢涓婁紶",
+								id: "popupByUploadFile",
+								url: "module/tool/page/popup_uploadFile.html",
+								data: {
+									dataName: dataname,
+									fileidfieldName: fileidfield,
+									id: sender_id_,
+									fileNamefieldName: filenamefield
+								},
+								delta: delta_,
+								callback: function(obj, callback) {
+									var f_ = {
+										id: obj.row[0].id,
+										file_name: decodeURI(obj.row[0].name)
+									}
+									if (!objformdata[filenamefield]) {
+										objformdata[filenamefield] = []
+									}
+									me.$message({
+										showClose: true,
+										message: '涓婁紶鎴愬姛锛�',
+										type: 'success'
+									});
+									
+									objformdata[filenamefield].push(f_);
+									if (!objformdata.id) {
+										objformdata.id = obj.row[0].sender_id;
+									}
+									
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							this.doPopupByPublic(config);
+						},
+						
+						deleteByFileId_n(filenamefield, fileobj, objformdata){
+							var me = this;
+							var formData_ = clone(me.formData);
+							Root.confirm('纭畾鍒犻櫎闄勪欢銆�' + fileobj.file_name + '銆戝悧锛�', '鍒犻櫎鎻愮ず', {
+							  confirmButtonText: '鍒犻櫎',
+							  cancelButtonText: '鍙栨秷',
+							  type: 'warning'
+							}).then(() => {
+								if (fileobj.id) {
+									let param = {
+										dataname: "wm_transfer_file",
+										id: fileobj.id
+									}
+									
+									Server.call("root/data/deleteEntity", param, function(result) {
+										console.log(result);
+										if (result && result.data) {
+											objformdata[filenamefield].remove(fileobj);
+											// me.formData[filenamefield].remove(fileobj);
+											
+											// me.formData = formData_;
+											Root.message({
+												type: 'success',
+												message: '鍒犻櫎鎴愬姛!'
+											});
+										}
+									});
+								}
+							}).catch(() => {
+								Root.message({
+									type: 'info',
+									message: '宸插彇娑堝垹闄�'
+								});          
+							});
+							
+						},
+
+						dddd(obj){
+							var me = this;
+							me.checkarr = obj;
+						},
+						
+						openOrg(obj,callback){
+							var me = this;
+							var filter_ = " 1=1 ";
+							if (obj.obj.field == "to_org_name" && me.formData.company_id && me.formData.bu_id) {
+								filter_ = "company_id='"+me.formData.company_id+"' and bu_id='"+me.formData.bu_id+"'" //鏍规嵁璋冨嚭鍏徃id鍜宐uid
+							}
+							
+							if (me.formData.account_id) {
+								filter_ += " and md_org_account.id!='" +me.formData.account_id+ "'"
+							}
+							if (me.formData.to_account_id) {
+								filter_ += " and md_org_account.id!='" +me.formData.to_account_id+ "'"
+							}
+							
+							var config = {
+								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "800px",
+								height: "520px",
+								icon: "icon-product",
+								text: "閫夋嫨鍏徃",
+								id: "popup_org",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/inventory/page/popup/popup_account.html", //鏍囪瘑锛氭澶勯�夋嫨寮�鎴风粡閿�鍟�
+								data: {},
+								delta: {field: obj.obj.field},
+								// filter: "org_id='"+ me.positiondata.org_id + "' and bu_id='" + me.positiondata.bu_id + "'",
+								filter: filter_ ,  //缁忛攢鍟嗙瓫閫�
+								sceneCode: "add",//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(popupobj, popupcallback) {	
+									callback(popupobj)							
+									if (popupcallback) {
+										popupcallback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+						// tablePopup_customerList(obj){ 
+						// 	var me = this;
+						// 	Root.showPopup({
+						// 		url: "module/inventory/page/popup/popup_customer_list.html",
+						// 		width: 1200,
+						// 		height: 600,
+						// 		data: {
+						// 			org_id: this.formData.org_id
+						// 		},
+						// 		//filter: "state_name = '宸插紑鎴�'",
+						// 		dataname: "customer",
+						// 		sceneCode: "add",
+						// 		callback: function(obj, callback) {
+						// 			let formData_ = clone(me.formData);
+									
+						// 			formData_.to_warehouse_id = obj.row.warehouse_id;
+						// 			formData_.to_warehouse_code = obj.row.warehouse_code;
+						// 			formData_.to_warehouse_name = obj.row.warehouse_name;
+									
+						// 			formData_.to_org_id = obj.row.id;
+						// 			formData_.to_org_code = obj.row.code;
+						// 			formData_.to_org_name = obj.row.name;
+									
+						// 			me.formData = formData_;
+						// 			if (callback) {
+						// 				callback();
+						// 			}
+						// 		}
+						// 	});
+						// },
+						
+						
+						
+						
+						
+						GFG_Fun() { //鏍囪瘑鍥�
+							var suiji = Math.random().toString(36).slice(2);
+							return suiji;
+						},
+						
+						
+						
+						rowChange(row, type, tablename) {
+							var me = this;
+							if (type == "add") {
+								this.tableData.unshift(row);
+							}
+							else if (type == "del") {
+								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) {
+											me.tableData.remove(row);
+											
+											Root.message({
+												type: 'success',
+												message: '鍒犻櫎鎴愬姛!'
+											});
+										}
+									});
+								}
+								else {
+									this.tableData.remove(row);
+								}
+							}
+							else {
+							
+							}
+						},
+						
+						//鎻愪氦
+						// submitRowTable() {
+						// 	this.iscommit = true;
+						// 	this.saveRowTable();
+						// },
+						
+						//淇濆瓨
+						// saveRowTable() {
+						// 	var me = this;
+						// 	var operator_ = "save";//淇濆瓨
+						// 	if(me.iscommit) {
+						// 		operator_ = "commit";//鎻愪氦
+						// 	}
+							
+						// 	var entity_ = clone(this.formData);
+						// 	var entity = {};
+						// 	for (var r in entity_) {
+						// 		if (entity_[r] || entity_[r] == "" || entity_[r] == false || entity_[r] == 0) {
+						// 			entity[r] = entity_[r];
+						// 		}
+						// 	}
+							
+						// 	var tableData_ = [];
+						// 	this.tableData.map(r=>{
+						// 		var row_ = {};
+						// 		for (var k in r) {
+						// 			if (r[k]) {
+						// 				row_[k] = r[k];
+						// 			}
+						// 		}
+						// 		tableData_.push(row_);
+						// 	})
+							
+						// 	if (tableData_.length == 0) {
+						// 		Root.message({
+						// 			type: 'warning',
+						// 			message: '璇峰厛娣诲姞鏄庣粏鏁版嵁'
+						// 		});
+						// 		return
+						// 	}
+							
+						// 	let param = {
+						// 		dataname: this.dataname,
+						// 		// operator: operator_,
+						// 		data: {},
+						// 	}
+						// 	param.data[this.dataname] = entity;
+						// 	param.data[this.table_dataname] = tableData_;
+							
+						// 	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: '鎻愪氦鎴愬姛'
+						// 				}); 
+						// 				me.saveAfter();
+						// 			}
+						// 			else {
+						// 				Root.message({
+						// 					type: 'success',
+						// 					message: '淇濆瓨鎴愬姛'
+						// 				}); 
+						// 				me.saveAfter();
+						// 			}
+						// 		}
+						// 	});
+						// },
+						
+						submitRowTable() {
+							var me = this;
+							var bo_ = true;
+							var batch_no_ = true;
+							
+							var bo_ = this.$refs.form1.checkForm();
+							if (!bo_) {
+								bo_ = false;
+								Root.message({
+									type: 'error',
+									message: '璇峰~鍐欏繀濉」'
+								});
+								return
+							}
+							
+							if (me.tableData.length == 0) {
+								bo_ = false;
+								Root.message({
+									type: 'warning',
+									message: '璇峰厛娣诲姞鏄庣粏鏁版嵁'
+								});
+								return
+							}
+							
+							me.tableData.map(r=>{
+								if (r.qty == null || r.qty === "" || isNaN(r.qty) || r.qty == 0) {
+									bo_ = false;
+								}
+								if (r.batch_no == null || r.batch_no === "") {
+									batch_no_ = false;
+								}
+							})
+							if (!bo_) {
+								Root.message({
+									type: 'error',
+									message: '鏄庣粏涓瓨鍦ㄦ暟閲忎负绌虹殑鏁版嵁'
+								});
+								return
+							}
+							
+							// if (!batch_no_) {
+							// 	Root.message({
+							// 		type: 'error',
+							// 		message: '鏄庣粏涓瓨鍦ㄦ壒鍙蜂负绌虹殑鏁版嵁'
+							// 	});
+							// 	return
+							// }
+							
+							this.iscommit = true;
+							this.saveRowTable();
+						},
+						
+						saveRowTable() {
+							var me = this;
+							var operator_ = "saveEntity";//淇濆瓨
+							if(me.iscommit) {
+								operator_ = "commit";//鎻愪氦
+							}
+							
+							var entity_ = clone(this.formData);
+							var entity = {};
+							for (var r in entity_) {
+								if (entity_[r] || entity_[r] == "" || entity_[r] == false || entity_[r] == 0) {
+									entity[r] = entity_[r];
+								}
+							}
+							
+							var tableData_ = [];
+							var qty_total_ = 0;
+							this.tableData.map(r=>{
+								var row_ = {};
+								for (var k in r) {
+									if (r[k]) {
+										row_[k] = r[k];
+									}
+								}
+								qty_total_ += row_.qty ? row_.qty*1 : 0;
+								tableData_.push(row_);
+							})
+							entity.qty_total = qty_total_;
+							if (tableData_.length == 0) {
+								Root.message({
+									type: 'warning',
+									message: '璇峰厛娣诲姞鏄庣粏鏁版嵁'
+								});
+								return
+							}
+							var dataname_ = this.dataname.toString()
+							if (entity.type_code == "to_second") {
+								dataname_ = "wm_transfer_to_second"
+							}
+							
+							let param = {
+								dataname: dataname_,
+								data: {},
+							}
+							param.data[dataname_] = entity;
+							param.data[this.table_dataname] = tableData_;
+							
+							// if(me.iscommit) {
+							// 	param.book_command = "Transfer.open"
+							// }
+							if (this.formData.id) {
+								param.id = this.formData.id
+							}
+							Server.call("root/data/" + operator_, param, function(result) {
+								console.log(result);
+								if (result.success) {
+									if(me.iscommit){
+										me.iscommit = false;
+										me.formData.state_code = "Input"
+										me.formData.state_name = "鐢熸晥"
+										Root.message({
+											type: 'success',
+											message: '鎻愪氦鎴愬姛'
+										}); 
+										me.saveAfter();
+									}
+									else {
+										Root.message({
+											type: 'success',
+											message: '淇濆瓨鎴愬姛'
+										}); 
+										me.saveAfter();
+									}
+								}
+							}, function(errorresult) {
+								console.log("閿欒淇℃伅", errorresult);
+								
+								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 {
+									if (me.iscommit) {
+										Root.message({
+											type: 'error',
+											message: '鎻愪氦澶辫触'
+										}); 
+										me.iscommit = false;
+									}
+									else {
+										Root.message({
+											type: 'error',
+											message: '淇濆瓨澶辫触'
+										}); 
+									}
+									
+								}
+							});
+						},
+						
+						// 閫氳繃鎴栨嫆缁�
+						onShowApproval(passOrRefuse) {
+							this.approveremark = "";
+							this.reasonvisible = true;//瀹℃壒澶囨敞濉啓寮圭獥
+							this.passOrRefuse = passOrRefuse;// commit涓嬩竴涓姸鎬�;approve閫氳繃;gohome;//鎷掔粷 goback;//鍥為��
+						},
+						saveReason() {
+							this.loading_pass = true;
+							if(this.passOrRefuse == "commit" || this.passOrRefuse == "approve"){
+								this.doApproval();
+							}
+							else{
+								if(this.approveremark != ""){
+									this.doApproval();
+								}
+								else{
+									Root.message({
+										type: 'warning',
+										message: '璇峰~鍐欏師鍥�'
+									});
+									this.loading_pass = false;
+								}
+							}
+						},
+						doApproval(bo) {
+							var me = this;
+							this.getMachine(function(next_step, up_step) { // 
+								me.doRunApproval(next_step, up_step);
+							});
+						},
+						
+						getMachine(callback) {
+							var me = this;
+							let param = {
+								dataname: me.dataname,
+							}
+							Server.call("root/state/getMachine", param, function(result) {
+								var next_step = {}; // 鍚戜笅娴佺▼
+								var up_step = {}; // 鍚戜笂娴佺▼
+								
+								if (result && result.machine && result.machine.detail) {
+									result.machine.detail.map(md=>{
+										next_step[md.from_code] = md.to_code;
+										up_step[md.to_code] = md.from_code;
+									})
+									
+									callback(next_step, up_step);
+								}
+							})
+						},
+						
+						doRunApproval(next_step, up_step) {
+							var me = this;
+							this.passOrRefuse;//棣栨寮�鎴�-閫氳繃
+							// commit // 涓嬩竴涓姸鎬�
+							// approve // 閫氳繃
+							// gohome // 鎷掔粷
+							// goback // 鍥為��
+							
+							var to_state_ = "";
+							if (this.passOrRefuse == "commit") { 
+								to_state_ = next_step[this.formData.state_code];
+							}
+							else if (this.passOrRefuse == "approve") { 
+								
+							}
+							else if (this.passOrRefuse == "gohome") {
+								// to_state_ = up_step[this.formData.state_code];
+							}
+							else if (this.passOrRefuse == "goback") {
+								to_state_ = up_step[this.formData.state_code];
+							}
+							
+							var dataname_ = me.dataname.toString()
+							if (this.formData.type_code == "to_second") {
+								dataname_ = "wm_transfer_to_second"
+							}
+							
+							let param = {
+								dataname: dataname_,
+								id: me.formData.id,
+								to_state: to_state_,
+								remark: this.approveremark
+							}
+							//
+							// return
+							Server.call("root/data/" + this.passOrRefuse, param, function(result) {
+								me.loading_pass = false;
+								console.log(result);
+								if (me.passOrRefuse == "commit" || me.passOrRefuse == "approve") {
+									Root.message({
+										type: 'success',
+										message: '瀹℃壒鎴愬姛'
+									}); 
+								}
+								else if (me.passOrRefuse == "goback") {
+									Root.message({
+										type: 'success',
+										message: '宸查��鍥�'
+									}); 
+								}
+								else if (me.passOrRefuse == "gohome") {
+									Root.message({
+										type: 'success',
+										message: '宸叉嫆缁�'
+									}); 
+								}
+								me.saveAfter();
+							}, function(errorresult) {
+								console.log("閿欒淇℃伅", errorresult);
+								me.loading_pass = false;
+								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>
+			/*  鍦╲ue.js涓� v-cloak 杩欎釜鎸囦护鏄槻姝㈤〉闈㈠姞杞芥椂鍑虹幇 vuejs 鐨勫彉閲忓悕鑰岃璁$殑 */
+			[v-cloak] {
+				display: none !important;
+			}
+		</style>
+		
+	</head>
+	
+	<body style="margin: 0px;">
+		<div v-cloak id="vbody">
+			<div id="page_root">
+				<div ref="popup_body" style="padding: 0 20px;">
+					<div class="el-dialog__header">
+						<div class="dialog-title">
+						  <i class="iconfont icon-customermanagement"></i>
+						  <span> {{title}}</span>
+						</div>
+					</div>	
+					<div :style="{height: dheight + 'px', 'overflow-y': 'auto'}">
+						<div class="el-dialog__body">
+							<h-form
+								ref="form1"
+								:form-attr="formAttr"
+								:table-fields="formFields"
+								:form-data="formData"
+								:table-field-click="formfieldClick"
+							>
+							</h-form>
+							
+							<div class="h_dialog__body">
+								<div v-if="isedit || isrefuseedit" style=" text-align: right; margin-top: 20px;">
+									<!-- 宸ュ叿鏍� -->
+									<!-- <div style=" display: inline-block; width: 90px;">
+										<el-button-group style="display: flex;justify-content: center;"> -->
+											<!-- <el-button>鎵归噺瀵煎叆</el-button>
+											<el-button type = "danger" @click="delDetail">鍒� 闄�</el-button>
+											<el-button>瀵煎叆妯℃澘涓嬭浇</el-button> -->
+											<!-- <el-button @click="addTableData">鏂板鏄庣粏</el-button> -->
+										<!-- </el-button-group>
+									</div> -->
+								</div>
+								<h-table
+									v-if="isRefresh && tableFields.length"
+									ref="table1"
+									:table-fields="tableFields" 
+									:table-data="tableData" 
+									:is-within-edit-table-data="isedit || isrefuseedit"
+									:is-pagination="false"
+									:table-field-click="tablefieldClick"
+									:table-buttons-click="tablebuttonClick"								
+									:is-selection="false"
+									:isfilterfield="false"
+									:istablebuttons="false"
+									:isbasicfilterfields="false"
+									:isdraggableorder="false"
+									:show-summary="true"
+
+									v-on:get-data="getData"
+									v-on:del-data="delData"
+								>
+								<!-- :is-selection="true"
+								@selection-change = "dddd" -->
+								</h-table>
+							</div>
+							<el-dialog title="濉啓鍘熷洜" :visible.sync="reasonvisible" height="50%">
+								<el-input
+								  type="textarea"
+								  :autosize="{ minRows: 2, maxRows: 10}"
+								  placeholder="璇疯緭鍏ュ師鍥�"
+								  v-model="approveremark">
+								</el-input>
+								
+								<div slot="footer" class="dialog-footer" >
+								  <el-button type="primary" :loading="loading_pass" @click="saveReason">纭� 瀹�</el-button>
+								  <el-button type="default" @click="reasonvisible = false">鍙� 娑�</el-button>
+								</div>
+							</el-dialog>
+							
+						</div>
+					</div>
+					<div class="el-dialog__footer">
+						<el-button-group style="margin-right: 80px;" >
+							<el-button  size="small" v-if="isapproval" type="warning" plain @click="onShowApproval('gohome')">閫�鍥炲埌鐢宠浜�</el-button>
+							<el-button  size="small" v-if="isapproval" type="danger" plain @click="onShowApproval('goback')">閫�鍥炲埌涓婁竴姝�</el-button>
+						</el-button-group>
+						<el-button size="small" type="default" @click="closeDialog">鍙� 娑�</el-button>
+						<el-button size="small" v-if="isedit || isrefuseedit" type="primary" @click="saveRowTable":icon="buttonsconfig.save.icon">{{buttonsconfig.save.name}}</el-button>
+						<el-button size="small" v-if="isedit" type="success" @click="submitRowTable":icon="buttonsconfig.submit.icon">{{buttonsconfig.submit.name}}</el-button>
+						<!-- <el-button size="small" v-if="isrefuseedit" type="success" @click="">鍐嶆鎻愪氦</el-button> -->
+						
+						<!-- <el-button size="small" v-if="isapproval" type="danger" @click="onRefuseApproval">鎷� 缁�</el-button> -->
+						<!-- <el-button size="small" v-if="isapproval" type="success" @click="onPassApproval">閫� 杩�</el-button> -->
+						<el-button size="small" v-if="isapproval" type="success" @click="onShowApproval('approve')">閫� 杩�</el-button>
+						<!-- <el-button size="small" v-if="isapproval" type="primary" @click="">杞� 鍔�</el-button> -->
+						<!-- <el-button size="small" v-if="isapproval" type="success" @click="">閫� 鍥�</el-button> -->
+					</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>
diff --git a/module/visit/page/process_definition.html b/module/visit/page/process_definition.html
new file mode 100644
index 0000000..9ee7c68
--- /dev/null
+++ b/module/visit/page/process_definition.html
@@ -0,0 +1,803 @@
+<!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: {
+						dataname: "md_bu_product", // "md_prod_category",
+						title: "浜у搧鍒楄〃",
+						tree_title: "BU/浜у搧",
+						treeTxtFormatter: "{name}",
+						isTreeReadonly: true,
+						
+						dataname_p: "md_prod_sku",
+						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: "",
+						filter_node_val: "1<>1",
+						cbuttons_r: {},
+						tablebuttonClick: [],
+						
+					},
+					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.cbuttons_r = result.buttons_r;
+								
+								//鑾峰彇鏁版嵁
+								me.initData();
+								me.$nextTick(() => { // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
+									hideLoading();
+								});
+							})
+						}
+					},
+					
+					methods:{
+						initData() {
+							var me = this;
+							this.onQuery(function(result, callback) {//鏌ヨ鍚庣殑鍥炶皟锛岀敤浜庤幏鍙栧瓧娈电殑
+								var treeData_ = [];
+								var buobj_ = {};
+								var initTreeData = clone(me.initTreeData);
+								initTreeData.map(td=>{
+									if (!buobj_[td.bu_id]) {
+										var bu_= {
+											id: td.bu_id,
+											bu_id: td.bu_id,
+											name: td.bu_name,
+										}
+										treeData_.push(bu_);
+										buobj_[td.bu_id] = bu_
+									}
+									td.id = td.bu_id + "_" + td.product_id;
+									td.parent_id = td.bu_id;
+									td.name = td.product_name;
+									treeData_.push(td);
+								})
+								
+								me.initTreeData = clone(treeData_)
+								
+								var orderArray = ["鍐犺剦浠嬪叆","绁炵粡浠嬪叆","澶栧懆浠嬪叆","琛�绠″唴鎴愬儚", "鐢电敓鐞�"];
+								let initTreeData_ = ArrayToTree(clone(me.initTreeData), "name", "parent_id", null, null, null, orderArray);
+								if (me.cbuttons_r.allocation) {
+									var notAllocationProduct = {
+										id: "notAllocationProduct",
+										name: "鏈垎閰嶄骇鍝�"
+									}
+									initTreeData_.push(notAllocationProduct);
+								}
+								
+								me.treeData = initTreeData_;
+								
+								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);
+								}
+								
+								me.tableButtonClick()
+							});
+						},
+
+						//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;
+							}
+							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: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "500px",
+								height: "300px",
+								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",
+								callback: function(obj, callback) {
+									me.type_treedata = 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",
+								width: 800,
+								height: 230,
+								data: data,
+								sceneCode: "edit",
+								callback: function(options_obj, callback) {
+									me.type_treedata = options_obj.options
+									if (callback) {
+										callback();
+									}
+								}
+							});
+						},
+						
+						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, "agm_category");
+							}).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_val = "";
+							if (data.id == "notAllocationProduct") { // 鏈垎閰嶇殑浜у搧
+								filter_node_val = "NOT EXISTS ( SELECT * FROM md_bu_product where md_prod_sku.product_id = product_id)"
+							}
+							else if (!data.product_id) {
+								var filter_node_val_ = "";
+								if (data.children && data.children.length) {
+									data.children.map(p=>{
+										if (!filter_node_val_) {
+											filter_node_val_ = "('" + p.product_id;
+										}
+										else {
+											filter_node_val_ += "','" + p.product_id;
+										}
+									})
+									filter_node_val_ += "')";
+								}
+								if (filter_node_val_) {
+									filter_node_val = "md_prod_sku.product_id in " + filter_node_val_;
+								}
+								else {
+									filter_node_val = "1<>1"
+								}
+							}
+							else {
+								filter_node_val = "md_prod_sku.product_id='" + data.product_id + "'"
+							}
+							
+							// this.filterObjBydefault.category_name = val
+							this.selectedrow = data;
+							this.setSelectedRowId = null;//Brooke
+							this.filterObj = {};
+							this.pagenum_p = 1;
+							
+							this.filter_node_val = filter_node_val;
+							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() {
+							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_val;
+							var param_ = {
+								dataname: me.dataname_p,
+								filter: filter_,
+								orderby: "md_prod_sku.product_name, md_prod_sku.spec",
+								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);
+										},
+									},	
+								},
+							};
+						},
+						tableButtonClick() {
+						    var me = this;
+						    var tablebuttonClick = [];
+						    tablebuttonClick = [
+								{ //me.cbuttons_r.allocation
+									isbuttonshow: me.cbuttons_r.allocation, type:"primary", icon: "el-icon-copy-document",
+									name: "鍒嗛厤BU",
+									code: "allocation", isselected: true, classname:"",
+									
+									onclick: function(obj) {
+										me.onAllocation(function(suspendData){
+											var selectedList_ = clone(obj.selectedList);
+											var BUProduct_ = [];
+											selectedList_.map(row=>{
+												var bp_ = {
+													bu_id: suspendData.bu_id,
+													product_id: row.product_id,
+													product_name: row.product_name
+												}
+												if (row.md_bu_product__id) {
+													bp_.id = row.md_bu_product__id
+												}
+												BUProduct_.push(bp_)
+											})
+											
+											me.onSaveBUProduct(BUProduct_);
+										})
+						            }
+								},
+							]
+							
+						    me.tablebuttonClick = tablebuttonClick;
+						},
+						
+						onAllocation(callback) {
+							var me = this;
+							if (!this.selectedrow.id) {
+								return
+							}
+							
+							var config = {
+								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "400px",
+								height: "400px",
+								icon: "icon-product",
+								text: "浜у搧鍒嗛厤",
+								url: "module/tool/page/popup_allocation.html",
+								data: this.selectedrow,
+								delta: {},
+								sceneCode: "add", //"add"//"browse",
+								callback: function(popupobj, popupcallback) {
+									callback(popupobj.row);
+									if (popupcallback) {
+										popupcallback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+						onSaveBUProduct(list) {
+							var me = this;
+							if (list.length) {
+								var row = list[0];
+								var param = {
+									dataname: "md_bu_product",
+									data: {},
+								}
+								param.data["md_bu_product"] = row;
+								Server.call("root/data/saveEntity", param, function(result) {
+									console.log(result);
+									if (result.success) {
+										list.remove(row);
+										me.onSaveBUProduct(list);
+									}
+								});
+							}
+							else {
+								me.initData();
+							}
+							
+						},
+						
+						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;
+							if (page.filtersobj) { //  && Object.keys(page.filtersobj).length
+								this.filterObj = page.filtersobj;
+							}
+							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_ =  me.filter_node_val;
+							filter_ = me.getFilterData(filter_, me.filterObj, me.filterFieldsObj, true);
+
+							var param_ = {
+								dataname: me.dataname_p,
+								filter: filter_,
+								// orderby: "name",
+								orderby: "md_prod_sku.product_name, md_prod_sku.spec",
+								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;
+							var filter_ =  me.filter_node_val;
+							filter_ = me.getFilterData(filter_, me.filterObj, me.filterFieldsObj, true);
+
+							let param = {
+								ioname:"export_md_prod_sku",
+								orderby: "",
+								filter:  filter_,
+								token: Root.getToken()
+							}
+							window.top.vue.textdownloadForm(param);
+						},
+					}
+				});
+			};
+			
+			loadJsCss(function () {
+				initVue();
+			});
+		</script>
+		<style>
+			/*  鍦╲ue.js涓� v-cloak 杩欎釜鎸囦护鏄槻姝㈤〉闈㈠姞杞芥椂鍑虹幇 vuejs 鐨勫彉閲忓悕鑰岃璁$殑 */
+			[v-cloak] {
+				display: none !important;
+			}
+			.el-tabs__nav-scroll {
+			    overflow: hidden;
+			    position: relative;
+			    padding-left: 20px;
+			}
+			.nodeLabel {
+			    max-width: 220px !important;
+			}
+		</style>
+		
+	</head>
+	
+	<body style="margin: 0px;">
+		<div v-cloak id="vbody">
+			<div id="page_root">
+				<div class="topbar">
+					<span>{{title}}</span>
+					<div style="float: right;">
+						<el-button v-show="cbuttons_r.export" @click="onDownload":icon="buttonsconfig.export.icon">{{buttonsconfig.export.name}}</el-button>
+					</div>
+				</div>
+				
+				<div class="h_dialog__body">
+					<div :style="{position: 'absolute', left: '16px', width: '320px', top: '40px', 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>
+						</div>
+						<div :style="{padding: '16px 0', height: treeHeight - 55 + 'px', overflow: 'auto'}">
+							<h-tree
+							v-if="isRefresh"
+							:tree-data="treeData"
+							:tree-txt-formatter="treeTxtFormatter"
+							:currentnodekey="currentnodekey"
+							:is-readonly="isTreeReadonly"
+							
+							@node-click="onNodeClick"
+							@add-node="onAddNode"
+							@edit-node="onEditNode"
+							@del-node="onDelNode"
+							>
+							</h-tree>
+						</div>
+					</div>
+					<div :style="{position: 'absolute', left: '350px', right: '16px', top: '40px', bottom: '10px', border: '1px solid #ccc'}">
+						<div>
+							<div style="height: 32px; border-bottom: 1px solid #aaa;">
+								<div class="table_title" style="float: left;">
+									<span>SKU鍒楄〃</span>
+								</div>
+								<!-- <div style=" text-align: right; ">
+									<el-button v-show="cbuttons_r.RuleValue" :disabled="!(setSelectedRowId)" @click="setRuleValue" >璁剧疆涓嬪崟鍊嶆暟</el-button>
+								</div> -->
+							</div>
+
+							<h-table
+								v-if="isRefresh_p && 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="tableHeight_p - 132"
+								:is-highlight-row="true"
+								:table-field-click="tablefieldClick"
+								:table-buttons-click="tablebuttonClick"
+								
+								v-on:get-data="getData_p"
+								v-on:row-click="getRow"
+							>
+							</h-table>
+							
+						</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>
diff --git a/module/visit/page/script_list.html b/module/visit/page/script_list.html
new file mode 100644
index 0000000..b9ad7d2
--- /dev/null
+++ b/module/visit/page/script_list.html
@@ -0,0 +1,745 @@
+	<!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() {
+				new ListVue({
+					el: "#vbody",
+					data: {
+						dataname: "md_org_account_position_list",
+						title: "璇濇湳绠$悊",
+						orderby: "md_org_account_position.update_time desc",
+						filterfieldClick: {},
+						tablefieldClick: {},
+						formfieldClick: {},
+
+						dataRequest: [
+							// {
+							// 	name: "md_province",
+							// 	dataname: "md_province",
+							// 	// url: "root/data/newEntity",
+							// 	// paramsobj: {dataname: "md_org_data", type_code:"Distributor"},
+							// 	isnotoption: false, //true:涓嶆槸閫夐」
+							// 	code:"name",//鏄笅鎷夐�夐」鏃惰缃�
+							// 	label:"name",//鏄笅鎷夐�夐」鏃惰缃�
+							// 	filter: ""
+								
+							// },
+							// {
+							// 	name: "machine_state",
+							// 	dataname: "v_state_machine_state",
+							// 	// url: "root/data/newEntity",
+							// 	// paramsobj: {dataname: "md_org_data", type_code:"Distributor"},
+							// 	isnotoption: false, //true:涓嶆槸閫夐」
+							// 	code:"code",//鏄笅鎷夐�夐」鏃惰缃�
+							// 	label:"name",//鏄笅鎷夐�夐」鏃惰缃�
+							// 	// orderby: "index_no",
+							// 	filter: "parent_id='md_org_data'"
+							// }
+							
+						],
+						dataRequestObj:{},
+
+						filterFields: [
+							// {isshow: "T", field: "code", name: "缂栫爜", filterfield:"", filteroperator: "like", type: ""},
+							// {isshow: "T", field: "name", name: "缁忛攢鍟嗗悕绉�", filterfield:"", filteroperator: "like", type: ""},
+							// {isshow: "T", field: "state_name", name: "鐘舵��", filterfield:"", filteroperator: "like", type: ""},
+						],
+						tableFields: [
+							// {field: "state_name", name: "鐘舵��", isshow: "T"},
+							// {field: "code", name: "缂栫爜", isshow: "T"},
+							// {field: "name", name: "缁忛攢鍟嗗悕绉�", isshow: "T",width:"240",align:"left"},
+							// {field: "short_name", name: "缁忛攢鍟嗙畝绉�", isshow: "T",width:"150",align:"left"},
+							// {field: "type_name", name: "缁忛攢鍟嗙被鍨�", isshow: "T",width:"100"},
+							// {field: "province", name: "鐪佷唤", isshow: "T",width:"120"},
+							// {field: "city", name: "鍩庡競", isshow: "T",width:"120"},
+							// {field: "county", name: "鍖哄幙", isshow: "T",width:"120"},
+							// {field: "address", name: "娉ㄥ唽鍦板潃", isshow: "T",width:"300",align:"left"},
+							// {field: "field1", name: "缁忚惀鍦板潃", isshow: "T",width:"300",align:"left"},
+							// {field: "field2", name: "涓氬姟璐熻矗浜�", isshow: "T",width:"100"},
+							// {field: "field3", name: "鑱旂郴鏂瑰紡", isshow: "T",width:"150"},
+							// {field: "field4", name: "閭", isshow: "T",width:"200",align:"left"},
+							// {field: "field5", name: "鎺堟潈浜у搧", isshow: "T",width:"200",align:"left"},
+							// {field: "field6", name: "缁忛攢鍟嗘巿鏉冪被鍨�", isshow: "T",width:"200"},
+							// {field: "field7", name: "鍏宠仈鍏徃鎯呭喌璇存槑", isshow: "T",width:"300",align:"left"},
+							// {field: "field8", name: "鎺堟潈鍖婚櫌鍒楄〃", isshow: "T",width:"280",align:"left"},
+							// {field: "field9", name: "鎺堟潈鍐呭", isshow: "T",width:"280",align:"left"},
+							// {field: "field11", name: "涓氬姟闇�姹傚師鍥�", isshow: "T",width:"300",align:"left"},
+						],
+						cbuttons_r: {},
+						ctabs_r: {},
+						isCustomer: false,
+					},
+					created() {
+						//鏈彁浜ょ殑鏁版嵁浠呭垱寤轰汉鍙
+						// 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.fieldsToFieldsObj();//鏍囪瘑2锛氫负浠�涔堣繖閲屽瓧娈垫暟缁勮浆瀛楁obj浜嗭紝鍚庨潰onQuery閲岃繕瑕佽浆
+						this.isCustomer = window.top.vue.isCustomer
+					},
+					mounted() {
+						var me = this;
+						if (window.top.tab.selected.option.page_id) {
+							this.title = window.top.tab.selected.option.menutitle
+							getPageByPageId(window.top.tab.selected.option.page_id, function(result){
+								me.cbuttons_r = result.buttons_r;
+								//鏍囪1锛氶鍔犺浇鏁版嵁锛宑buttons_r锛宐uttons_r鍦ㄥ摢娌℃壘鍒帮紝dataRequestObj鏄紵锛屼互鍙婁笂鏂筰f锛屾槸if涓簍rue鎵嶉鍔犺浇锛岄偅if鐨勬槸锛�
+								//棰勫姞杞芥暟鎹�
+								if (me.dataRequest && me.dataRequest.length) {
+									var result = {};
+									me.loadRequestData(me.dataRequest, result, function(data) {
+										me.dataRequestObj = data;
+										//棰勫姞杞芥暟鎹悗缁欏摢浜涘瓧娈佃缃畂ptions鎴杅ormatterjson
+										
+										me.initData();
+									});
+								}
+								else {
+									me.initData();
+								}
+								
+								me.$nextTick(() => { // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
+									hideLoading();
+								});
+							})
+						}
+					},
+					methods:{
+						initData() {
+							var me = this;
+							
+							this.onQuery(function(result, callback) {//鏌ヨ鍚庣殑鍥炶皟锛岀敤浜庤幏鍙栧瓧娈电殑
+								if (result.meta && result.meta[me.dataname] && result.meta[me.dataname].fields) {
+									var metas = clone(result.meta[me.dataname].fields);
+									var filterFields_ = [];
+									var tableFields_ = [];
+									
+									metas.map(f=>{
+										f.isshow = "T";
+										
+										if (f.field == "md_org_account__bu_name") {
+											f.optionsgroup = "bu"
+										}
+										if (f.field == "md_org_account__company_name") {
+											f.optionsgroup = "company"
+										}
+										
+										
+										if (f.field == "province") {
+											f.options = me.dataRequestObj.md_province
+										}
+										
+										if (f.field == "is_editable") {
+											f.isshow = "F"
+										}
+										// if (f.field == "city") {
+										// 	f.options = me.dataRequestObj.md_city
+										// }
+										if (me.isCustomer && f.field == "md_position_hierarchy__position_path") {
+											f.isshow = "F"
+											f.isfilter = false
+										}
+										
+										if (f.isfilter) {
+											if (f.field == "state_name") {
+												f.filterfield = "state_code";
+												f.options = me.dataRequestObj.machine_state;
+											}
+											filterFields_.push(clone(f));
+										}
+
+										else {
+											var filter_f = clone(f);
+											filter_f.isshow = "F";
+											filterFields_.push(filter_f);
+										}
+										
+										tableFields_.push(clone(f));
+									})
+									if (!me.filterFields || (me.filterFields && me.filterFields.length == 0)) {
+										me.filterFields = clone(filterFields_);
+										me.tableFields = clone(tableFields_);
+										
+										//瀛楁鏁扮粍杞瓧娈祇bj锛岀洰鐨勪负浜嗙瓫閫夋椂鑾峰彇瀛楁灞炴��
+										me.fieldsToFieldsObj();
+										
+										//璁剧疆瀛楁浜嬩欢
+										me.tableFieldClick();
+									}
+								}
+								
+								if (callback) {
+									callback();
+								}
+							});
+						},
+						
+						tableFieldClick() {
+							var me = this;
+
+
+							//琛ㄦ牸瀛楁浜嬩欢璁剧疆
+							this.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: {//瀛楁浜嬩欢璁剧疆
+									// prefixclass: {
+									// 	setclass: function(row, field){
+									// 		// 鏍规嵁閫昏緫杩斿洖class鍚嶇О
+											
+									// 		return "prefixclass"
+									// 	}
+									// },
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: "",//涓嶅彲鐐瑰嚮鐨勫��,1銆佹槸鏁扮粍["11","22"]锛�2銆佷互鈥�;鈥濆垎闅旂殑瀛楃涓�"111;222"
+										notclick_bindfield: [],//褰撹瀛楁鍊肩瓑浜庢寚瀹氬瓧娈靛�兼椂涓嶅彲鐐瑰嚮["filterfield": "111"]
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											var sceneCode_ = "browse";
+											//濡傛灉鏄垱寤轰汉涓旀槸褰曞叆鐘舵�佹垨閫�鍥炵姸鎬佸垯鏄紪杈戠姸鎬�
+											if (obj.row.creator_id == window.top.vue.userinfo.id && (obj.row.state_code == "Input" || obj.row.state_code == "input" || obj.row.state_code == "Rejected")) {
+												sceneCode_ = "edit";
+											}
+											
+											var config = {
+												totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+												width: "1100px",
+												height: "520px",
+												icon: "icon-product",
+												text: "鍟嗕笟淇℃伅 " + (obj.row.name ? obj.row.name : ""),
+												id: "customer_edit_browse" + obj.row.id,//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+												url: "module/md/page/customer/page/customer_edit.html",
+												data: obj.row,
+												delta: {closeCode:"1"},
+												sceneCode: sceneCode_,//"refuseedit",//"approval", //"add"//"browse",
+												callback: function(obj, callback) {
+													me.onQuery();
+													if (callback) {
+														callback();
+													}
+												}
+											};
+											me.doPopupByPublic(config);
+										},
+									},	
+								},
+								credit_quota: {
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: "",//涓嶅彲鐐瑰嚮鐨勫��,1銆佹槸鏁扮粍["11","22"]锛�2銆佷互鈥�;鈥濆垎闅旂殑瀛楃涓�"111;222"
+										notclick_bindfield: [],//褰撹瀛楁鍊肩瓑浜庢寚瀹氬瓧娈靛�兼椂涓嶅彲鐐瑰嚮["filterfield": "111"]
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											var menuobj = getMainMenuById("A6-01-02");
+											var parames = {
+												menuid: "A6-01-02",
+												delta: {
+													filterobj: {
+														customer_code: obj.row.code,
+														customer_name: obj.row.name
+													}
+												}
+											}
+											Root.popupParames = parames;
+											Root.tab.open(menuobj, false); 
+										
+											// var config = {
+											// 	totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+											// 	icon: "icon-product",
+											// 	text: "瀹㈡埛寮�鎴�",
+											// 	id: "A6-01-02",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+											// 	url: "module/md/page/customer/page/customer_acct.html",
+											// 	data: obj.row,
+											// 	delta: {closeCode:"1"},
+											// 	sceneCode: "browse",//"refuseedit",//"approval", //"add"//"browse",
+											// 	callback: function(obj, callback) {
+											// 		me.onQuery();
+											// 		if (callback) {
+											// 			callback();
+											// 		}
+											// 	}
+											// };
+											// me.doPopupByPublic(config);
+										},
+									},
+								}
+							};
+						},
+						
+						rowClick(obj){
+							var me = this;
+							me.selectedrow = obj.row;
+						},
+						
+						addCustomer(){
+							let me = this;
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "1000px",
+								height: "500px",
+								icon: "icon-product",
+								text: "鍟嗕笟鏂板",
+								id: "customer_edit",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/customer/page/customer_edit.html",
+								data: {},
+								delta: {},
+								sceneCode: "add",//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						editData(sceneCode){
+							var me = this;
+							var row = me.selectedrow;
+							if(!row){
+								Root.message({
+									type: 'warning',
+									message: '璇烽�夋嫨涓�鏉℃暟鎹�'
+								});
+								return;
+							}
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "500px",
+								icon: "icon-product",
+								text: "瀹㈡埛缂栬緫",
+								id: "customer_edit" + row.id,//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/customer/page/customer_edit.html",
+								data: row,
+								delta: {},
+								sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+						changeData() {
+							var me = this;
+							Root.confirm('纭畾鍙樻洿銆�' + this.selectedrow.name + '銆戝悧锛�', '鍙樻洿鎻愮ず', {
+							  confirmButtonText: '鍙� 鏇�',
+							  cancelButtonText: '鍙� 娑�',
+							  type: 'warning'
+							}).then(() => {
+								me.doChangeData();
+							}).catch(() => {
+								Root.message({
+									type: 'info',
+									message: '宸插彇娑堝彉鏇�'
+								});          
+							});
+						},
+						
+						doChangeData(){
+							var me = this;
+							var row = me.selectedrow;
+							if(!row){
+								Root.message({
+									type: 'warning',
+									message: '璇烽�夋嫨涓�鏉℃暟鎹�'
+								});
+								return;
+							}
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "500px",
+								icon: "icon-product",
+								text: "缁忛攢鍟嗗彉鏇�",
+								id: "customer_change" + row.id,//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/customer/page/customer_change.html",
+								data: row,
+								delta: {},
+								sceneCode: "change",//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+						// openCustomer(){
+						// 	let me = this;
+						// 	var row = me.selectedrow;
+						// 	if(!row){
+						// 		Root.message({
+						// 			type: 'warning',
+						// 			message: '璇烽�夋嫨涓�鏉℃暟鎹�'
+						// 		});
+						// 		return;
+						// 	}
+						// 	if(row.state_name == "宸插紑鎴�"){
+						// 		Root.message({
+						// 			type: 'warning',
+						// 			message: '璇ョ粡閿�鍟嗗凡寮�鎴�'
+						// 		});
+						// 		return;
+						// 	}
+						// 	var config = {
+						// 		totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+						// 		width: "1100px",
+						// 		height: "520px",
+						// 		icon: "icon-product",
+						// 		text: "瀹㈡埛寮�鎴�",
+						// 		id: "test_page",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+						// 		url: "module/md/page/customer/page/customer_acct.html",
+						// 		data: row,
+						// 		delta: {},
+						// 		sceneCode: "add",//"refuseedit",//"approval", //"add"//"browse",
+						// 		callback: function(obj, callback) {
+						// 			me.onQuery();
+						// 			if (callback) {
+						// 				callback();
+						// 			}
+						// 		}
+						// 	};
+						// 	me.doPopupByPublic(config);
+						// },
+						// approvalData(){
+						// 	let me = this;
+						// 	var row = me.selectedrow;
+						// 	if(!row){
+						// 		Root.message({
+						// 			type: 'warning',
+						// 			message: '璇烽�夋嫨涓�鏉℃暟鎹�'
+						// 		});
+						// 		return;
+						// 	}
+							
+						// 	var config = {
+						// 		totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+						// 		width: "1100px",
+						// 		height: "520px",
+						// 		icon: "icon-product",
+						// 		text: "瀹㈡埛寮�鎴峰鎵�",
+						// 		id: "test_page",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+						// 		url: "module/md/page/customer/page/customer_acct.html",
+						// 		data: row,
+						// 		delta: {},
+						// 		sceneCode: "approval",//"refuseedit",//"approval", //"add"//"browse",
+						// 		callback: function(obj, callback) {
+						// 			me.onQuery();
+						// 			if (callback) {
+						// 				callback();
+						// 			}
+						// 		}
+						// 	};
+						// 	me.doPopupByPublic(config);
+						// },
+						
+						//鍏虫埛鎴栦綔搴�
+						// changeData() {
+						// 	var me = this;
+						// 	Root.confirm('纭畾鍙樻洿銆�' + this.selectedrow.name + '銆戝悧锛�', '鍙樻洿鎻愮ず', {
+						// 	  confirmButtonText: '鍙� 鏇�',
+						// 	  cancelButtonText: '鍙� 娑�',
+						// 	  type: 'warning'
+						// 	}).then(() => {
+						// 		me.editData();
+						// 	}).catch(() => {
+						// 		Root.message({
+						// 			type: 'info',
+						// 			message: '宸插彇娑堝彉鏇�'
+						// 		});          
+						// 	});
+						// },
+						
+						//鍏虫埛鎴栦綔搴�
+						// closeData() {
+						// 	var me = this;
+						// 	Root.confirm('纭畾灏嗐��' + this.selectedrow.name + '銆戝叧鎴峰悧锛�', '鍏虫埛鎻愮ず', {
+						// 	  confirmButtonText: '鍏� 鎴�',
+						// 	  cancelButtonText: '鍙� 娑�',
+						// 	  type: 'warning'
+						// 	}).then(() => {
+						// 		let param = {
+						// 			id: me.selectedrow.id,
+						// 			dataname: "md_org",
+						// 		}
+						// 		Server.call("root/data/Close", param, function(result) {
+						// 			console.log(result);
+						// 			Root.message({
+						// 				type: 'success',
+						// 				message: '宸插叧鎴�'
+						// 			}); 
+						// 			me.onQuery();
+						// 		});
+						// 	}).catch(() => {
+						// 		Root.message({
+						// 			type: 'info',
+						// 			message: '宸插彇娑堝叧鎴�'
+						// 		});          
+						// 	});
+						// },
+						
+						//涓荤晫闈㈡彁浜�
+						dataSubmit() {
+							var me = this;
+							var row = this.selectedrow;
+						
+							let param = {
+								dataName: "md_org_data",
+								id: row.id,
+							}
+							Server.call("root/data/InputCommit", param, function(result) {  //鏍囪1锛歩nputCommit鏄摢閲岀殑锛岃繖涓猟ataName鏄�庝箞鏉ョ殑
+								Root.message({
+									type: 'success',
+									message: '鎻愪氦鎴愬姛'
+								}); 
+								me.onQuery();
+							});
+						},
+						
+						onAddRecord() {
+							var menuobj = getMainMenuById("A6-01-03");
+							var parames = {
+								menuid: "A6-01-03",
+								delta: {
+									filterobj: {
+										customer_name: this.selectedrow.name
+									}
+								}
+							}
+							Root.popupParames = parames;
+							Root.tab.open(menuobj, false); 
+						},
+						
+						onAddRecord2() {
+							var me = this;
+							
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								icon: "icon-product",
+								text: "澶囨鐢宠",
+								id: "record_add_c" + me.selectedrow.id,//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/agreement/page/record_add.html",
+								data: {},
+								delta: {org: me.selectedrow},
+								sceneCode: "add",//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+
+						// onDownload() {
+						// 	let me = this;
+						// 	var filter_ = "1 = 1";
+						// 	// if(me.saveUser != "") {
+						// 	// 	filter_ = " customer_code = '" + me.saveUser + "'";
+						// 	// }
+						// 	filter_ = this.getFilterData(filter_);
+							
+						// 	let param = {
+						// 		dataname: "orgAddReport", //'md_org_data',
+						// 		filename: '缁忛攢鍟嗘柊澧炲鍑�' + String(new Date().getTime()),
+						// 		filter: filter_,
+						// 		orderby: "update_time desc",
+						// 		token: Root.getToken()
+						// 	}
+
+						// 	textdownloadForm(param);
+						// },
+
+						onDownload() {
+							let me = this;
+							var filter_ = "1 = 1";
+							filter_ = this.getFilterData(filter_);
+							console.log("download", filter_);
+							let param = {
+								sign: "md_org_data",
+								filename: '缁忛攢鍟嗘柊澧炲鍑�' + String(new Date().getTime()),
+								filter: filter_,
+								orderby: "update_time desc",
+								token: Root.getToken()
+							}
+
+							me.textdownloadForm(param);
+						},
+
+						textdownloadForm(params) {//post鏂囦欢娴佷笅杞�
+							let form = document.createElement('form');
+							form.id = 'form_download';
+							form.name = 'form_download';
+							document.body.appendChild(form);
+							//寰幆鍒涘缓input妗�
+							for (let obj in params) {
+								if (params.hasOwnProperty(obj)) {
+									let input = document.createElement('input')
+									input.type = 'hidden'
+									input.name = obj;
+									input.value = params[obj]
+									form.appendChild(input)
+								}
+							};
+							form.method = 'post'; //璇锋眰鏂瑰紡
+							form.action = window.top.config.url_root + "root/exports/exportSheetsExcel?token=" + Root.getToken();
+							form.submit(); // form琛ㄥ崟鎻愪氦
+							
+							document.body.removeChild(form); // 绉婚櫎鍒涘缓鐨勫厓绱�
+						},
+						
+						//淇℃伅淇敼
+						editPart() {
+							var me = this;
+							var row = me.selectedrow;
+
+							if(!row){
+								Root.message({
+									type: 'warning',
+									message: '璇烽�夋嫨涓�鏉℃暟鎹�'
+								});
+								return;
+							}
+							var config = {
+								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "600px",
+								height: "200px",
+								icon: "icon-product",
+								text: "瀹㈡埛淇℃伅淇敼",
+								id: "customer_edit_part" + row.id,//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/customer/page/customer_edit_part.html",
+								data: row,
+								delta: {},
+								sceneCode: "edit",//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+					}
+				});
+			};
+			loadJsCss(function () {
+				initVue();
+			});
+		</script>
+	</head>
+	
+	<body style="margin: 0px;" >
+		<div v-cloak id="vbody">
+			<div id="page_root">
+				<div class="topbar">
+					<span :class="page_title == 'right' ? 'h_page_title_right' : 'h_page_title_left'"><span class="h_page_title_txt">{{title}}</span></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.BSEdit" :disabled="!(selectedrow.id )" @click="editPart">淇℃伅淇敼</el-button>
+							<el-button v-show="cbuttons_r.adminEdit" :disabled="!(selectedrow.id )" @click="editData('adminedit')">绠$悊鍛樹慨鏀�</el-button>
+							<el-button v-show="cbuttons_r.Add" @click="addCustomer" :icon="buttonsconfig.add.icon">{{buttonsconfig.add.name}}</el-button>
+							<el-button v-show="cbuttons_r.Edit" :disabled="!(selectedrow.id && (!selectedrow.state_code || selectedrow.state_code == 'Input'))" @click="editData('edit') " :icon="buttonsconfig.alter.icon":icon="buttonsconfig.alter.icon">{{buttonsconfig.alter.name}}</el-button>
+							<!-- <el-button v-show="cbuttons_r.Edit" :disabled="!(selectedrow.id && selectedrow.state_code && (selectedrow.state_code == 'WaitOpen' || selectedrow.state_code == 'Open' || selectedrow.state_code == 'Close'))" @click="changeData()" :icon="buttonsconfig.change.icon":icon="buttonsconfig.change.icon">{{buttonsconfig.change.name}}</el-button> -->
+						</el-button-group>
+						
+						<el-button-group style="margin-left: 3px;">
+							<el-button v-show="cbuttons_r.Submit" :disabled="!(selectedrow.id && (!selectedrow.state_code || selectedrow.state_code == 'Input' || selectedrow.state_code == 'Close'))" type="success" @click="dataSubmit" :icon="buttonsconfig.submit.icon">鎻愪氦</el-button>
+							<!-- @click="dataSubmit" -->
+						</el-button-group>
+						
+						<el-button v-show="cbuttons_r.export ? cbuttons_r.export : false" @click="onDownload" :icon="buttonsconfig.export.icon">{{buttonsconfig.export.name}}</el-button>
+						<!-- <el-button-group style="margin-left: 3px;">
+							<el-button v-show="cbuttons_r.Export" disabled :icon="buttonsconfig.export.icon">{{buttonsconfig.export.name}}</el-button>
+						</el-button-group> -->
+					</div>
+				</div>
+			
+		
+			
+				<div class="h_dialog__body">
+					<h-table
+						v-if="isRefresh"
+						ref="table1"
+						:table-fields="tableFields" 
+						:table-data="tableData" 
+						:is-edit-table-data="isEditTableData"
+						:table-field-click="tablefieldClick"
+						:pagesize="pagesize"
+						:pagenum="pagenum"
+						:total="total"
+						:table-height="tableHeight"
+						:is-highlight-row="true"
+						:isdraggableorder="cbuttons_r.Set"
+						
+						v-on:get-data="getData"
+						
+						v-on:cell-click="cellClick"
+						v-on:row-click="rowClick"
+						v-on:order-fields="orderTableFields"
+					>
+					</h-table>
+					<!-- v-on:edit-data="editData"
+					v-on:del-data="delData" -->
+				</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>
+		
+		<style>
+			[v-cloak] {
+				display: none !important;
+			}
+			.prefixclass {
+				width: 10px;
+				height: 10px;
+				border-radius: 5px;
+				background-color: #e6372b;
+				display: inline-block;
+			}
+		</style>
+	</body>
+</html>
diff --git a/module/visit/page/visit_log_list.html b/module/visit/page/visit_log_list.html
new file mode 100644
index 0000000..83832a0
--- /dev/null
+++ b/module/visit/page/visit_log_list.html
@@ -0,0 +1,1049 @@
+<!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: "month", name: "鏈堝害缁熻", dataname: "v_customer_visition", filterTxt: "", orderby: ""},
+							{code: "detail", name: "鎷滆鏄庣粏", dataname: "md_terminal_visition", filterTxt: "", orderby: ""},
+							{code: "clocklog", name: "鎵撳崱璁板綍", dataname: "md_terminal_promotion_detail", filterTxt: "", orderby: ""},
+						],
+						d_tabs: {
+							month: true,
+							detail: true,
+							clocklog: true,
+						},
+						tabs: [],
+						tabsobj: {},
+
+						dataRequest: [],
+						authTableFields: [
+							{field: "code", name: "鍖婚櫌缂栫爜", isshow: "T", align: "center",width: "150"},
+							{field: "name", name: "鍖婚櫌鍚嶇О", isshow: "T", align: "left",width: "200", isminwidth: true},
+							{field: "org_code", name: "缁忛攢鍟嗙紪鐮�", isshow: "T", align: "center",width: "150"},
+							{field: "org_name", name: "缁忛攢鍟嗗悕绉�", isshow: "T", align: "left",width: "200", isminwidth: true},
+						],
+						authFilterFields: [
+							{isshow: "T", field: "code", name: "鍖婚櫌缂栫爜", filterfield:"", filteroperator: "like", type: ""},
+							{isshow: "T", field: "name", name: "鍖婚櫌鍚嶇О", filterfield:"", filteroperator: "like", type: ""},
+							{isshow: "T", field: "org_code", name: "缁忛攢鍟嗙紪鐮�", filterfield:"", filteroperator: "like", type: ""},
+							{isshow: "T", field: "org_name", name: "缁忛攢鍟嗗悕绉�", filterfield:"", filteroperator: "like", type: ""},
+						],
+						
+						cbuttons_r: {},
+						ctabs_r: {},
+						filterTxt: "",
+						iscustomer: false,
+
+						isSales: false,//閿�鍞汉鍛橈紙閿�鍞唬琛ㄣ�佸ぇ鍖虹粡鐞嗐�佸皬鍖虹粡鐞嗭級
+						isRegionR: false,//澶у尯缁忕悊
+						saveUser: null,//鐧诲綍鑰卛d
+					},
+					created() {
+						if (window.top.vue.userinfo) {
+							this.saveUser = window.top.vue.userinfo.id;
+							if (window.top.vue.userinfo.currentactor.code == "Capacity-Sale" || window.top.vue.userinfo.currentactor.code == "Capacity-Region-R" || window.top.vue.userinfo.currentactor.code == "Capacity-Region-M") {
+								this.isSales = true;
+								if(window.top.vue.userinfo.currentactor.code == "Capacity-Region-R") {
+									this.isRegionR = true;
+								}
+							}
+						}
+					},
+					
+					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.cbuttons_r = result.buttons_r;
+								me.ctabs_r = result.tabs_r;
+								// me.ctabs_r = me.d_tabs
+								
+								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.tabs.length>0){
+											me.activeTabName = me.tabs[0].code;
+										}
+										//鑾峰彇鏁版嵁
+										//鍒濆鍖朤abs
+										me.initTabsPage(function() {
+											//鑾峰彇鏁版嵁
+											me.initData();
+										});
+										me.$nextTick(() => { // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
+											hideLoading();
+										});
+									});
+								}
+								else {
+									if(me.tabs.length>0){
+										me.activeTabName = me.tabs[0].code;
+									}
+									//鑾峰彇鏁版嵁
+									//鍒濆鍖朤abs
+									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_ = [];
+									// if(me.selectTabObj.code == 'authorize') {
+									// 	tableFields_ = clone(me.authTableFields);
+									// 	filterFields_ = clone(me.authFilterFields);
+									// } 
+									
+									metas.map(f=>{
+										// if(me.selectTabObj.code == 'authorize') {
+										// 	if (f.field == "begin_date" || f.field == "end_date" || f.field == "authorization_type" || f.field == "category_name") {
+										// 		f.isshow = "T";
+										// 		tableFields_.push(clone(f));
+										// 	}
+										// } else {
+										f.isshow = "T";
+										// if(f.field == "state_name") {
+										// 	if(me.selectTabObj.code == "hospital") {
+										// 		f.isshow = "F";
+										// 	}
+										// }
+										tableFields_.push(clone(f));
+
+										
+										if(f.field == "province") {
+											f.options = me.dataRequestObj.md_province;
+										}
+										if (f.isfilter) {
+											filterFields_.push(clone(f));
+										}
+										// else if (f.field == "state_name"){
+										// 	f.inputtypefilter = "select";
+										// 	f.filterfield = "state_code";
+
+										// 	if(me.selectTabObj.code == "infoAll" || me.selectTabObj.code == "authAll"){
+										// 		f.options = me.dataRequestObj.machine_state;
+										// 		filterFields_.push(clone(f));
+										// 	}
+										// }
+										else {
+											var filter_f = clone(f);
+											filter_f.isshow = "F";
+											filterFields_.push(filter_f);
+										}
+									})
+									if (!me.selectTabObj.filterFields || (me.selectTabObj.filterFields && me.selectTabObj.filterFields.length == 0)) {
+										me.selectTabObj.filterFields = clone(filterFields_);
+										me.selectTabObj.tableFields = clone(tableFields_);
+										
+										//瀛楁鏁扮粍杞瓧娈祇bj锛岀洰鐨勪负浜嗙瓫閫夋椂鑾峰彇瀛楁灞炴��
+										me.fieldsToFieldsObj();
+										
+										//璁剧疆瀛楁浜嬩欢
+										me.tableFieldClick();
+										
+									}
+								}
+								
+								if (callback) {
+									callback();
+								}
+							});
+						},
+						
+						tableFieldClick() {
+							var me = this;
+							//杈栧尯鍖婚櫌鍒楄〃
+							var tablefieldClick_detail = {
+								code: {//瀛楁浜嬩欢璁剧疆
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											me.showInfo(obj); 
+										},
+									},
+								}
+							};
+							//杈栧尯鍙樻洿
+							var tablefieldClick_info = {
+								//waiting
+								hospital_code: {//瀛楁浜嬩欢璁剧疆
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											me.showChangeInfo(obj); 
+										},
+									},
+								},
+								state_name: {//鐘舵��
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: ["鑽夌","鑽夌"],
+										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: {},
+												sceneCode: "browse",
+												callback: function(obj, callback) {
+													if (callback) {
+														callback();
+													}
+												}
+											};
+											me.doPopupByPublic(config);
+										},
+									},	
+								},
+							};
+							//鍖婚櫌鎺堟潈鍒楄〃
+							var tablefieldClick_org = {
+								category_name: {//鎺堟潈浜у搧
+									val: {
+										notclick_val: "",//涓嶅彲鐐瑰嚮鐨勫��,1銆佹槸鏁扮粍["11","22"]锛�2銆佷互鈥�;鈥濆垎闅旂殑瀛楃涓�"111;222"
+										notclick_bindfield: [
+											{
+												field: "id", 
+												val: null,
+											}
+										],//褰撹瀛楁鍊肩瓑浜庢寚瀹氬瓧娈靛�兼椂涓嶅彲鐐瑰嚮["filterfield": "111"]
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											me.showAuthInfo(obj.row)
+										},
+									},
+									defaultval: {
+										val: "鏌ョ湅",//绌哄�兼椂鐨勬樉绀哄��
+										onclick: function(obj) {//榛樿鍊肩偣鍑讳簨浠�,姝や簨浠堕渶瑕佽缃畍al鎵嶆湁鏁�
+											me.showAuthInfo(obj.row)
+										}
+									},
+								},
+								state_name: {//鐘舵��
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: ["鑽夌","鑽夌"],
+										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: {},
+												sceneCode: "browse",
+												callback: function(obj, callback) {
+													if (callback) {
+														callback();
+													}
+												}
+											};
+											me.doPopupByPublic(config);
+										},
+									},	
+								},
+							};
+							//鎺堟潈鍙樻洿
+							var tablefieldClick_auth = {
+								state_name: {//鐘舵��
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: ["鑽夌","鑽夌"],
+										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: {},
+												sceneCode: "browse",
+												callback: function(obj, callback) {
+													if (callback) {
+														callback();
+													}
+												}
+											};
+											me.doPopupByPublic(config);
+										},
+									},	
+								},
+								type_name: {//鎺堟潈浜у搧
+									val: {
+										notclick_val: "",//涓嶅彲鐐瑰嚮鐨勫��,1銆佹槸鏁扮粍["11","22"]锛�2銆佷互鈥�;鈥濆垎闅旂殑瀛楃涓�"111;222"
+										notclick_bindfield: [],//褰撹瀛楁鍊肩瓑浜庢寚瀹氬瓧娈靛�兼椂涓嶅彲鐐瑰嚮["filterfield": "111"]
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											me.showAuthChange(obj.row)
+										},
+									},
+									defaultval: {
+										val: "鏌ョ湅",//绌哄�兼椂鐨勬樉绀哄��
+										onclick: function(obj) {//榛樿鍊肩偣鍑讳簨浠�,姝や簨浠堕渶瑕佽缃畍al鎵嶆湁鏁�
+											me.showAuthChange(obj.row)
+										}
+									},
+								},
+							};
+							
+							var filterfieldClick = {};
+							
+							//鍖婚櫌绠$悊鍒楄〃-杈栧尯鍖婚櫌tab
+							if (this.selectTabObj.code == "detail") {
+								this.selectTabObj.tablefieldClick = tablefieldClick_detail;
+							}
+							//杈栧尯鏂板/鍙樻洿-杈栧尯瀹℃壒涓�佸叏閮ㄨ緰鍖虹敵璇穞ab
+							else if (this.selectTabObj.code == "infoUnderApproval" || this.selectTabObj.code == "infoAll") {
+								this.selectTabObj.tablefieldClick = tablefieldClick_info;
+							}
+							//鍖婚櫌鎺堟潈鍒楄〃-鍖婚櫌鎺堟潈tab
+							else if (this.selectTabObj.code == "authorize") {
+								this.selectTabObj.tablefieldClick = tablefieldClick_org;
+							}
+							//鎺堟潈鍙樻洿-鎺堟潈瀹℃壒涓�佸叏閮ㄦ巿鏉冪敵璇穞ab
+							else if (this.selectTabObj.code == "authUnderApproval" || this.selectTabObj.code == "authAll") {
+								this.selectTabObj.tablefieldClick = tablefieldClick_auth;
+							}
+							
+							this.filterfieldClick = filterfieldClick;
+						},
+						
+						tableButtonClick() {
+							var me = this;
+							var tablebuttonClick = {};
+							tablebuttonClick.hospital = [
+								{
+									isbuttonshow: me.cbuttons_r.add ? me.cbuttons_r.add : false,type:"primary",
+									code: "add",isselected: false,classname: "",
+									onclick: function(obj) {
+										me.openPolicy('add', {})
+									}
+								},
+								{
+									// name: "鎻愪氦", // type: "primary", // icon: "el-icon-edit",
+									isbuttonshow:  me.cbuttons_r.submit ? me.cbuttons_r.submit : false,	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) {
+										// me.commitData(obj.selectedList[0]);
+										me.openPolicy('edit', obj.selectedList[0])
+									}
+								},
+								{
+									isbuttonshow: me.cbuttons_r.edit ? me.cbuttons_r.edit : false,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.openPolicy('edit', obj.selectedList[0])
+									}
+								},
+								{
+									isbuttonshow:  me.cbuttons_r.delete ? me.cbuttons_r.delete : false, 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.delDataPolicy(obj, obj.selectedList[0])
+									}
+								}
+							];
+							
+							tablebuttonClick.infoUnderApproval = [
+								{
+									isbuttonshow:  me.cbuttons_r.formdetail ? me.cbuttons_r.formdetail : false,type:"primary",
+									code: "formdetail",isselected: false,classname: "",
+									onclick: function(obj) {
+										me.openPolicy("browse", obj.selectedList[0])
+									}
+								},
+									
+							]
+							tablebuttonClick.infoAll = [
+								{
+									isbuttonshow:  me.cbuttons_r.formdetail ? me.cbuttons_r.formdetail : false,type:"primary",
+									code: "formdetail",isselected: false,classname: "",
+									onclick: function(obj) {
+										me.openPolicy("browse", obj.selectedList[0])
+									}
+								},
+								
+							]
+							if (tablebuttonClick[this.activeTabName]) {
+								this.selectTabObj.tablebuttonClick = tablebuttonClick[this.activeTabName];
+							}
+							else {
+								this.selectTabObj.tablebuttonClick = []
+							}
+						},
+						
+						delDataPolicy(obj, row) {
+							let me = this;
+							let name_ = "璇ユ暟鎹�";
+							
+							if (!row.id) {
+								Root.message({
+									type: 'warning',
+									message: '璇烽�夋嫨鍒犻櫎鏁版嵁'
+								});  
+								return
+							}
+							if (row.md_hospital__name) {
+								name_ = "_" + row.md_hospital__name + "_";
+							}
+							
+							Root.confirm('纭畾鍒犻櫎' + name_ + '鍚楋紵', '鍒犻櫎鎻愮ず', {
+							  confirmButtonText: '鍒犻櫎',
+							  cancelButtonText: '鍙栨秷',
+							  type: 'warning'
+							}).then(() => {
+								let param = {
+									id: row.id,
+									dataname: me.selectTabObj.dataname,
+								}
+								Server.call("root/data/deleteEntity", param, function(result) {
+									Root.message({
+										type: 'success',
+										message: '鍒犻櫎鎴愬姛!'
+									});
+									me.onQuery();
+								});
+							}).catch(() => {
+								Root.message({
+									type: 'info',
+									message: '宸插彇娑堝垹闄�'
+								});          
+							});
+						},
+						
+						commitData(obj) {
+							var me = this;
+							Root.confirm('纭畾鎻愪氦杈栧尯鍖婚櫌' + obj.md_hospital__name + '鍚楋紵', '鎻愪氦鎻愮ず', {
+							  confirmButtonText: '鎻愪氦',
+							  cancelButtonText: '鍙栨秷',
+							  type: 'warning'
+							}).then(() => {
+								var param = {
+									dataname: me.selectTabObj.dataname,
+									id: obj.id,
+									to_state: "OpeningApproval" 
+								}
+								console.log(me.selectTabObj)
+								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: '宸插彇娑�'
+								});          
+							});
+						},
+						
+						openPolicy(sceneCode, row) {
+							let me = this;
+							var text = "";
+							
+							// type_code: "", // Standard鏍囧噯浠风洰琛ㄣ�丆ustomer缁忛攢鍟嗕环鐩〃
+							if (sceneCode == "add") {
+							}
+							else if (sceneCode == "edit" || sceneCode == "browse") {
+								if(!row){
+									Root.message({
+										type: 'warning',
+										message: '璇烽�夋嫨涓�鏉℃暟鎹�'
+									});
+									return;
+								}
+								
+								// if (row.customer_name) {
+								// 	text = row.customer_name;
+								// }
+								
+							}
+							
+							var config = {
+								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "320px",
+								icon: "icon-product",
+								text: "杈栧尯鍖婚櫌" + text,
+								id: "popup_position_hospital" + row.id + sceneCode,//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/popup/popup_position_hospital.html",
+								data: row,
+								delta: {dataname: me.selectTabObj.dataname,},
+								sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+
+						//杈栧尯鍖婚櫌鏂板
+						onAddData() {
+							var me = this;
+							
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "900px",
+								icon: "icon-product",
+								text: "鍖婚櫌绠$悊淇℃伅",
+								id: "hospital_list_info",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/hospital_list_info.html",
+								data: {},
+								delta: {},
+								sceneCode: "add",//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									//isSales鎻愪氦鍚庡埛鏂�'杈栧尯瀹℃壒涓�'tab
+									// if(me.isSales) {
+										var tab = {
+											name: 'infoUnderApproval',
+										};
+										me.activeTabName = 'infoUnderApproval';
+										me.handleClick(tab);
+										me.onQuery();
+									// } else {
+									// 	me.onQuery();
+									// }
+
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+						//杈栧尯鍖婚櫌淇℃伅鏌ョ湅
+						showInfo(obj) {
+							var me = this;
+							
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "1200px",
+								height: "600px",
+								icon: "icon-product",
+								text: obj.row.hospital_name  + " 鎷滆璇︽儏",
+								id: "visit_log_detail" + "browse" + obj.row.id,//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/visit/page/popup/visit_log_detail.html",
+								data: obj.row,
+								delta: {},
+								sceneCode: "browse", //"add"//"browse",
+								callback: function(obj, callback) {
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+						//杈栧尯鍖婚櫌鍙樻洿
+						onEditDataChange(config) {
+							var me = this;
+							var row = me.selectTabObj.selectedrow;
+
+							config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "500px",
+								icon: "icon-product",
+								text: row.name  + " 淇℃伅鍙樻洿",
+								id: "hospital_list_info" + row.id + "_edit",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/hospital_list_info.html",
+								data: row,
+								delta: {},
+								sceneCode: "change",//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									//isSales鎻愪氦鍚庡埛鏂�'杈栧尯瀹℃壒涓�'tab
+									// if(me.isSales) {
+										var tab = {
+											name: 'infoUnderApproval',
+										};
+										me.activeTabName = 'infoUnderApproval';
+										me.handleClick(tab);
+										me.onQuery();
+									// } else {
+									// 	me.onQuery();
+									// }
+
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+
+						//杈栧尯鍖婚櫌鍙樻洿鏌ョ湅
+						showChangeInfo(obj) {
+							var me = this;
+
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "500px",
+								icon: "icon-product",
+								text: obj.row.hospital_name + " 鍙樻洿淇℃伅",
+								id: "hospitalInfoChange" + obj.row.id + "infoChange_browse",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/hospital_list_info.html",
+								data: obj.row,
+								delta: {},
+								sceneCode: "infoChange_browse",//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+
+						//杈栧尯鍖婚櫌閫�鍥炵紪杈�
+						reEditInfo() {
+							var me = this;
+							var row = me.selectTabObj.selectedrow;
+
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "500px",
+								icon: "icon-product",
+								text: row.hospital_name + " 鍙樻洿淇℃伅",
+								id: "hospitalInfoChange" + row.id + "infoChange_browse",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/hospital_list_info.html",
+								data: row,
+								delta: {},
+								sceneCode: 'reEdit',//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									var tab = {
+										name: 'infoUnderApproval',
+									};
+									me.activeTabName = 'infoUnderApproval';
+									me.handleClick(tab);
+									me.onQuery();
+									
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+
+						//鎺堟潈淇℃伅鏌ョ湅
+						showAuthInfo(row) {
+							let me = this;
+							var delta_ = {};
+							if(!row.id) {
+								Root.message({
+									type: 'warning',
+									message: '璇ュ尰闄㈡殏鏃犳巿鏉冩暟鎹�'
+								});
+								return;
+							}
+							
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "950px",
+								height: "500px",
+								icon: "icon-product",
+								text: row.name + " 鎺堟潈淇℃伅",
+								id: "org_hospital_edit" + row.id + "browse",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/popup/org_hospital_edit.html",
+								data: row,
+								delta: delta_,
+								// filter: "state_code!='UnderApproval'",
+								sceneCode: "browse",//"edit", //"add"//"browse",
+								callback: function(obj, callback) {
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+
+						//鍖婚櫌鎺堟潈鍙樻洿
+						onAuthorize(auth_type) {
+							var me = this;
+							var row = me.selectTabObj.selectedrow;
+							
+							//3. popup
+							config = {
+								totab: true,
+								icon: "icon-product",
+								text: "鎺堟潈淇℃伅",
+								width: "900px",
+								height: "460px",
+								// id: "authorize_customer_list" + "edit" + row.id,
+								// url: "module/md/page/terminal/page/popup/authorize_customer_list.html",
+								// filter: "hospital_id='"+ row.id +"'",
+								// sceneCode: "edit",
+								id: "org_hospital_edit" + auth_type + row.id,
+								url: "module/md/page/terminal/page/popup/org_hospital_edit.html",
+								filter: "hospital_id='"+ row.id +"'",
+								sceneCode: auth_type,
+								data: row,
+								delta: {},
+								callback: function(obj, callback) {
+									//isSales鎻愪氦鍚庡埛鏂�'鎺堟潈瀹℃壒涓�'tab
+									if(me.isSales) {
+										var tab = {
+											name: 'authUnderApproval',
+										};
+										me.activeTabName = 'authUnderApproval';
+										me.handleClick(tab);
+										me.onQuery();
+									} else {
+										var tab = {
+											name: 'authorize',
+										};
+										me.activeTabName = 'authorize';
+										me.handleClick(tab);
+										me.onQuery();
+									}
+									if (callback) {
+										callback();
+									}
+								},
+							};
+							me.doPopupByPublic(config);
+						},
+
+						//鎺堟潈鍙樻洿鏌ョ湅
+						showAuthChange(row) {
+						    let me = this;
+						    var delta_ = {};
+
+						    var config = {
+						        totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+						        width: "950px",
+						        height: "500px",
+						        icon: "icon-product",
+						        text: row.hospital_name + " 鎺堟潈鍙樻洿淇℃伅",
+						        id: "org_hospital_edit" + row.id + "authChange_browse",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+						        url: "module/md/page/terminal/page/popup/org_hospital_edit.html",
+						        data: row,
+						        delta: delta_,
+						        // filter: "state_code!='UnderApproval'",
+						        sceneCode: 'authChange_browse',//"edit", //"add"//"browse",
+						        callback: function(obj, callback) {
+									//鍥為��缂栬緫鏃讹紝isSales鎻愪氦鍚庡埛鏂�'鎺堟潈瀹℃壒涓�'tab
+									if(sceneCode_ == "reEdit") {
+										if(me.isSales) {
+											var tab = {
+												name: 'authUnderApproval',
+											};
+											me.activeTabName = 'authUnderApproval';
+											me.handleClick(tab);
+											me.onQuery();
+										} else {
+											me.onQuery();
+										}
+									}
+									
+						            if (callback) {
+						                callback();
+						            }
+						        }
+						    };
+						    me.doPopupByPublic(config);
+						},
+
+						//鎺堟潈閫�鍥炵紪杈�
+						reEditAuth() {
+							var me = this;
+							var row = me.selectTabObj.selectedrow;
+
+							var config = {
+						        totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+						        width: "950px",
+						        height: "500px",
+						        icon: "icon-product",
+						        text: row.hospital_name + " 鎺堟潈鍙樻洿淇℃伅",
+						        id: "org_hospital_edit" + row.id + "reEdit",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+						        url: "module/md/page/terminal/page/popup/org_hospital_edit.html",
+						        data: row,
+						        delta: {},
+						        // filter: "state_code!='UnderApproval'",
+						        sceneCode: 'reEdit',//"edit", //"add"//"browse",
+						        callback: function(obj, callback) {
+									var tab = {
+										name: 'authUnderApproval',
+									};
+									me.activeTabName = 'authUnderApproval';
+									me.handleClick(tab);
+									me.onQuery();
+									
+						            if (callback) {
+						                callback();
+						            }
+						        }
+						    };
+						    me.doPopupByPublic(config);
+						},
+						
+						onDownload() {
+							let me = this;
+							var ioname = "export_md_position_hospital";
+							var sign = "md_position_hospital";
+							var filename = '杈栧尯鍖婚櫌瀵煎嚭' + String(new Date().getTime());
+							var filter_ = "1 = 1";
+							filter_ = this.getFilterData(filter_);
+							let param = {
+								sign: sign,
+								filename: filename,
+								filter: filter_,
+								ioname:ioname,
+								orderby: "",
+								token: Root.getToken()
+							}
+							window.top.vue.textdownloadForm(param);
+						},
+						
+						// DownloadTemplate() {
+						// 	var pathurl = "template/1.瀵煎叆妯℃澘/鐩爣鍖婚櫌妞嶅叆鎸囨爣.xlsx";
+						// 	handleDownload(pathurl);
+						// },
+						
+						DownloadTemplate() {
+							let me = this;
+							let param = {
+								// sign: "md_target_hospital",
+								ioname:"export_md_position_hospital_template",
+								orderby: "",
+								token: Root.getToken()
+							}
+							window.top.vue.textdownloadForm(param);
+						},
+												
+						onPopupByUploadFile() {
+							var me = this;
+							var ioname_ = "import_md_position_hospital"
+							var delta_ = {
+								filetypelist: [], 
+								isToDB: true,
+								dataname: this.selectTabObj.dataname,
+								tableFields: this.selectTabObj.tableFields,
+								otherSave: "salesBizLogic/saveDealerTargetByImport",
+							}
+							var config = {
+								totab: false,
+								width: "500px",
+								icon: "icon-product",
+								text: "鏁版嵁鏂囦欢涓婁紶",
+								id: "popup_uploadFileToDB",
+								url: "module/tool/page/popup_uploadFileToDB.html",
+								data: {
+									uploadType: "dealertarget",
+									tempTable: "temp_target_dealer",
+									operate_type: "dealertarget",
+									userid: me.userid,
+									ioname:ioname_,
+								},
+								delta: delta_,
+								callback: function(obj, callback) {
+									me.$message({
+										showClose: true,
+										message: '涓婁紶鎴愬姛锛�',
+										type: 'success'
+									});
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							this.doPopupByPublic(config);
+						},
+						
+						onShowLinkPharmacy() {
+							var me = this;
+							var row = me.selectTabObj.selectedrow;
+						
+							var config = {
+								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "950px",
+								height: "300px",
+								icon: "icon-product",
+								text: row.hospital_name + "-鍏宠仈闄㈠搴�",
+								id: "popup_linkpharmacy_list" + row.id + "browse",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/popup/popup_linkpharmacy_list.html",
+								data: row,
+								delta: {},
+								filter: "hospital_id='"+ row.hospital_id +"'",
+								sceneCode: 'browse',//"edit", //"add"//"browse",
+								callback: function(obj, callback) {
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+					}
+				});
+			};
+			
+			loadJsCss(function () {
+				initVue();
+			});
+		</script>
+		<style>
+			/* 鍦╲ue.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">
+			<div id="page_root">
+				<div class="topbar">
+					<span>{{title}}</span>
+
+					<div style="float: right;">
+						<el-button-group style="margin-left: 3px">
+							<el-button v-show="cbuttons_r.linkpharmacy" @click="onShowLinkPharmacy">鍏宠仈闄㈠搴�</el-button>
+							<el-button v-show="cbuttons_r.downloadTemplate" @click="DownloadTemplate">妯℃澘涓嬭浇</el-button>
+							<el-tooltip class="item" effect="dark" :content="buttonsconfig.clearandappend.tooltip" placement="top-start">
+								<el-button v-show="cbuttons_r.import" @click="onPopupByUploadFile":icon="buttonsconfig.clearandappend.icon">{{buttonsconfig.clearandappend.name}}</el-button>
+							</el-tooltip>
+							<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>
+					<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"
+						:filtersobj="selectTabObj.filterObj"
+						:is-show-index="selectTabObj.isShowIndex"
+						:tableloading="tableloading"
+						:isdraggableorder="false"
+						:is-highlight-row="true"
+						
+						v-on:get-data="getData"
+						v-on:row-click="rowClick"
+					>
+					</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>
diff --git a/module/visit/page/visit_schedule_list.html b/module/visit/page/visit_schedule_list.html
new file mode 100644
index 0000000..393fc15
--- /dev/null
+++ b/module/visit/page/visit_schedule_list.html
@@ -0,0 +1,1128 @@
+<!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椤硅缃�
+						/* 
+						 schedule	杩涘害姹囨��
+						 detail	杩涘害鏄庣粏
+						 warning	棰勮鍒楄〃
+						 */
+						tabs_d: [
+							{code: "schedule", name: "杩涘害姹囨��", dataname: "v_customer_promotion", filterTxt: "", orderby: ""},
+							{code: "detail", name: "杩涘害鏄庣粏", dataname: "", filterTxt: "md_terminal_promotion", orderby: ""},
+							{code: "warning", name: "棰勮鍒楄〃", dataname: "", filterTxt: "md_terminal_promotion_detail", orderby: ""},
+						],
+						d_tabs: {
+							hospital: true,
+							authorize: true,
+							infoUnderApproval: true,
+							authUnderApproval: true,
+							infoAll: true,
+							authAll: true,
+						},
+						tabs: [],
+						tabsobj: {},
+
+						dataRequest: [
+							// {
+							// 	name: "md_province",
+							// 	dataname: "md_province",
+							// 	// url: "root/data/newEntity",
+							// 	// paramsobj: {dataname: "md_org_data", type_code:"Distributor"},
+							// 	isnotoption: false, //true:涓嶆槸閫夐」
+							// 	code:"name",//鏄笅鎷夐�夐」鏃惰缃�
+							// 	label:"name",//鏄笅鎷夐�夐」鏃惰缃�
+							// 	filter: ""
+							// },
+							// {
+							// 	name: "machine_state",
+							// 	dataname: "v_state_machine_state",
+							// 	// url: "root/data/newEntity",
+							// 	// paramsobj: {dataname: "md_org_data", type_code:"Distributor"},
+							// 	isnotoption: false, //true:涓嶆槸閫夐」
+							// 	code:"code",//鏄笅鎷夐�夐」鏃惰缃�
+							// 	label:"name",//鏄笅鎷夐�夐」鏃惰缃�
+							// 	// orderby: "index_no",
+							// 	filter: "parent_id='md_hospital_business_change'",
+							// },
+						],
+
+						authTableFields: [
+							{field: "code", name: "鍖婚櫌缂栫爜", isshow: "T", align: "center",width: "150"},
+							{field: "name", name: "鍖婚櫌鍚嶇О", isshow: "T", align: "left",width: "200", isminwidth: true},
+							{field: "org_code", name: "缁忛攢鍟嗙紪鐮�", isshow: "T", align: "center",width: "150"},
+							{field: "org_name", name: "缁忛攢鍟嗗悕绉�", isshow: "T", align: "left",width: "200", isminwidth: true},
+						],
+						authFilterFields: [
+							{isshow: "T", field: "code", name: "鍖婚櫌缂栫爜", filterfield:"", filteroperator: "like", type: ""},
+							{isshow: "T", field: "name", name: "鍖婚櫌鍚嶇О", filterfield:"", filteroperator: "like", type: ""},
+							{isshow: "T", field: "org_code", name: "缁忛攢鍟嗙紪鐮�", filterfield:"", filteroperator: "like", type: ""},
+							{isshow: "T", field: "org_name", name: "缁忛攢鍟嗗悕绉�", filterfield:"", filteroperator: "like", type: ""},
+						],
+						
+						cbuttons_r: {},
+						ctabs_r: {},
+						filterTxt: "",
+						iscustomer: false,
+
+						isSales: false,//閿�鍞汉鍛橈紙閿�鍞唬琛ㄣ�佸ぇ鍖虹粡鐞嗐�佸皬鍖虹粡鐞嗭級
+						isRegionR: false,//澶у尯缁忕悊
+						saveUser: null,//鐧诲綍鑰卛d
+					},
+					created() {
+						if (window.top.vue.userinfo) {
+							this.saveUser = window.top.vue.userinfo.id;
+							if (window.top.vue.userinfo.currentactor.code == "Capacity-Sale" || window.top.vue.userinfo.currentactor.code == "Capacity-Region-R" || window.top.vue.userinfo.currentactor.code == "Capacity-Region-M") {
+								this.isSales = true;
+								if(window.top.vue.userinfo.currentactor.code == "Capacity-Region-R") {
+									this.isRegionR = true;
+								}
+							}
+						}
+					},
+					
+					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.cbuttons_r = result.buttons_r;
+								me.ctabs_r = result.tabs_r;
+								// me.ctabs_r = me.d_tabs
+								
+								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.tabs.length>0){
+											me.activeTabName = me.tabs[0].code;
+										}
+										//鑾峰彇鏁版嵁
+										//鍒濆鍖朤abs
+										me.initTabsPage(function() {
+											//鑾峰彇鏁版嵁
+											me.initData();
+										});
+										me.$nextTick(() => { // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
+											hideLoading();
+										});
+									});
+								}
+								else {
+									if(me.tabs.length>0){
+										me.activeTabName = me.tabs[0].code;
+									}
+									//鑾峰彇鏁版嵁
+									//鍒濆鍖朤abs
+									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_ = [];
+									// if(me.selectTabObj.code == 'authorize') {
+									// 	tableFields_ = clone(me.authTableFields);
+									// 	filterFields_ = clone(me.authFilterFields);
+									// } 
+									
+									metas.map(f=>{
+										// if(me.selectTabObj.code == 'authorize') {
+										// 	if (f.field == "begin_date" || f.field == "end_date" || f.field == "authorization_type" || f.field == "category_name") {
+										// 		f.isshow = "T";
+										// 		tableFields_.push(clone(f));
+										// 	}
+										// } else {
+										f.isshow = "T";
+										// if(f.field == "state_name") {
+										// 	if(me.selectTabObj.code == "hospital") {
+										// 		f.isshow = "F";
+										// 	}
+										// }
+										tableFields_.push(clone(f));
+
+										
+										if(f.field == "province") {
+											f.options = me.dataRequestObj.md_province;
+										}
+										if (f.isfilter) {
+											filterFields_.push(clone(f));
+										}
+										// else if (f.field == "state_name"){
+										// 	f.inputtypefilter = "select";
+										// 	f.filterfield = "state_code";
+
+										// 	if(me.selectTabObj.code == "infoAll" || me.selectTabObj.code == "authAll"){
+										// 		f.options = me.dataRequestObj.machine_state;
+										// 		filterFields_.push(clone(f));
+										// 	}
+										// }
+										else {
+											var filter_f = clone(f);
+											filter_f.isshow = "F";
+											filterFields_.push(filter_f);
+										}
+									})
+									if (!me.selectTabObj.filterFields || (me.selectTabObj.filterFields && me.selectTabObj.filterFields.length == 0)) {
+										me.selectTabObj.filterFields = clone(filterFields_);
+										me.selectTabObj.tableFields = clone(tableFields_);
+										
+										//瀛楁鏁扮粍杞瓧娈祇bj锛岀洰鐨勪负浜嗙瓫閫夋椂鑾峰彇瀛楁灞炴��
+										me.fieldsToFieldsObj();
+										
+										//璁剧疆瀛楁浜嬩欢
+										me.tableFieldClick();
+										
+									}
+								}
+								
+								if (callback) {
+									callback();
+								}
+							});
+						},
+						
+						tableFieldClick() {
+							var me = this;
+							//杈栧尯鍖婚櫌鍒楄〃
+							var tablefieldClick_hospital = {
+								code: {//瀛楁浜嬩欢璁剧疆
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											me.showInfo(obj); 
+										},
+									},
+								}
+							};
+							//杈栧尯鍙樻洿
+							var tablefieldClick_info = {
+								//waiting
+								hospital_code: {//瀛楁浜嬩欢璁剧疆
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											me.showChangeInfo(obj); 
+										},
+									},
+								},
+								state_name: {//鐘舵��
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: ["鑽夌","鑽夌"],
+										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: {},
+												sceneCode: "browse",
+												callback: function(obj, callback) {
+													if (callback) {
+														callback();
+													}
+												}
+											};
+											me.doPopupByPublic(config);
+										},
+									},	
+								},
+							};
+							//鍖婚櫌鎺堟潈鍒楄〃
+							var tablefieldClick_org = {
+								category_name: {//鎺堟潈浜у搧
+									val: {
+										notclick_val: "",//涓嶅彲鐐瑰嚮鐨勫��,1銆佹槸鏁扮粍["11","22"]锛�2銆佷互鈥�;鈥濆垎闅旂殑瀛楃涓�"111;222"
+										notclick_bindfield: [
+											{
+												field: "id", 
+												val: null,
+											}
+										],//褰撹瀛楁鍊肩瓑浜庢寚瀹氬瓧娈靛�兼椂涓嶅彲鐐瑰嚮["filterfield": "111"]
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											me.showAuthInfo(obj.row)
+										},
+									},
+									defaultval: {
+										val: "鏌ョ湅",//绌哄�兼椂鐨勬樉绀哄��
+										onclick: function(obj) {//榛樿鍊肩偣鍑讳簨浠�,姝や簨浠堕渶瑕佽缃畍al鎵嶆湁鏁�
+											me.showAuthInfo(obj.row)
+										}
+									},
+								},
+								state_name: {//鐘舵��
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: ["鑽夌","鑽夌"],
+										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: {},
+												sceneCode: "browse",
+												callback: function(obj, callback) {
+													if (callback) {
+														callback();
+													}
+												}
+											};
+											me.doPopupByPublic(config);
+										},
+									},	
+								},
+							};
+							//鎺堟潈鍙樻洿
+							var tablefieldClick_auth = {
+								state_name: {//鐘舵��
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: ["鑽夌","鑽夌"],
+										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: {},
+												sceneCode: "browse",
+												callback: function(obj, callback) {
+													if (callback) {
+														callback();
+													}
+												}
+											};
+											me.doPopupByPublic(config);
+										},
+									},	
+								},
+								type_name: {//鎺堟潈浜у搧
+									val: {
+										notclick_val: "",//涓嶅彲鐐瑰嚮鐨勫��,1銆佹槸鏁扮粍["11","22"]锛�2銆佷互鈥�;鈥濆垎闅旂殑瀛楃涓�"111;222"
+										notclick_bindfield: [],//褰撹瀛楁鍊肩瓑浜庢寚瀹氬瓧娈靛�兼椂涓嶅彲鐐瑰嚮["filterfield": "111"]
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											me.showAuthChange(obj.row)
+										},
+									},
+									defaultval: {
+										val: "鏌ョ湅",//绌哄�兼椂鐨勬樉绀哄��
+										onclick: function(obj) {//榛樿鍊肩偣鍑讳簨浠�,姝や簨浠堕渶瑕佽缃畍al鎵嶆湁鏁�
+											me.showAuthChange(obj.row)
+										}
+									},
+								},
+							};
+							
+							var filterfieldClick = {};
+							
+							//鍖婚櫌绠$悊鍒楄〃-杈栧尯鍖婚櫌tab
+							if (this.selectTabObj.code == "hospital") {
+								this.selectTabObj.tablefieldClick = tablefieldClick_hospital;
+							}
+							//杈栧尯鏂板/鍙樻洿-杈栧尯瀹℃壒涓�佸叏閮ㄨ緰鍖虹敵璇穞ab
+							else if (this.selectTabObj.code == "infoUnderApproval" || this.selectTabObj.code == "infoAll") {
+								this.selectTabObj.tablefieldClick = tablefieldClick_info;
+							}
+							//鍖婚櫌鎺堟潈鍒楄〃-鍖婚櫌鎺堟潈tab
+							else if (this.selectTabObj.code == "authorize") {
+								this.selectTabObj.tablefieldClick = tablefieldClick_org;
+							}
+							//鎺堟潈鍙樻洿-鎺堟潈瀹℃壒涓�佸叏閮ㄦ巿鏉冪敵璇穞ab
+							else if (this.selectTabObj.code == "authUnderApproval" || this.selectTabObj.code == "authAll") {
+								this.selectTabObj.tablefieldClick = tablefieldClick_auth;
+							}
+							
+							this.filterfieldClick = filterfieldClick;
+						},
+						
+						tableButtonClick() {
+							var me = this;
+							var tablebuttonClick = {};
+							tablebuttonClick.hospital = [
+								{
+									isbuttonshow: me.cbuttons_r.add ? me.cbuttons_r.add : false,type:"primary",
+									code: "add",isselected: false,classname: "",
+									onclick: function(obj) {
+										me.openPolicy('add', {})
+									}
+								},
+								{
+									// name: "鎻愪氦", // type: "primary", // icon: "el-icon-edit",
+									isbuttonshow:  me.cbuttons_r.submit ? me.cbuttons_r.submit : false,	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) {
+										// me.commitData(obj.selectedList[0]);
+										me.openPolicy('edit', obj.selectedList[0])
+									}
+								},
+								{
+									isbuttonshow: me.cbuttons_r.edit ? me.cbuttons_r.edit : false,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.openPolicy('edit', obj.selectedList[0])
+									}
+								},
+								{
+									isbuttonshow:  me.cbuttons_r.delete ? me.cbuttons_r.delete : false, 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.delDataPolicy(obj, obj.selectedList[0])
+									}
+								}
+							];
+							
+							tablebuttonClick.infoUnderApproval = [
+								{
+									isbuttonshow:  me.cbuttons_r.formdetail ? me.cbuttons_r.formdetail : false,type:"primary",
+									code: "formdetail",isselected: false,classname: "",
+									onclick: function(obj) {
+										me.openPolicy("browse", obj.selectedList[0])
+									}
+								},
+									
+							]
+							tablebuttonClick.infoAll = [
+								{
+									isbuttonshow:  me.cbuttons_r.formdetail ? me.cbuttons_r.formdetail : false,type:"primary",
+									code: "formdetail",isselected: false,classname: "",
+									onclick: function(obj) {
+										me.openPolicy("browse", obj.selectedList[0])
+									}
+								},
+								
+							]
+							if (tablebuttonClick[this.activeTabName]) {
+								this.selectTabObj.tablebuttonClick = tablebuttonClick[this.activeTabName];
+							}
+							else {
+								this.selectTabObj.tablebuttonClick = []
+							}
+						},
+						
+						delDataPolicy(obj, row) {
+							let me = this;
+							let name_ = "璇ユ暟鎹�";
+							
+							if (!row.id) {
+								Root.message({
+									type: 'warning',
+									message: '璇烽�夋嫨鍒犻櫎鏁版嵁'
+								});  
+								return
+							}
+							if (row.md_hospital__name) {
+								name_ = "_" + row.md_hospital__name + "_";
+							}
+							
+							Root.confirm('纭畾鍒犻櫎' + name_ + '鍚楋紵', '鍒犻櫎鎻愮ず', {
+							  confirmButtonText: '鍒犻櫎',
+							  cancelButtonText: '鍙栨秷',
+							  type: 'warning'
+							}).then(() => {
+								let param = {
+									id: row.id,
+									dataname: me.selectTabObj.dataname,
+								}
+								Server.call("root/data/deleteEntity", param, function(result) {
+									Root.message({
+										type: 'success',
+										message: '鍒犻櫎鎴愬姛!'
+									});
+									me.onQuery();
+								});
+							}).catch(() => {
+								Root.message({
+									type: 'info',
+									message: '宸插彇娑堝垹闄�'
+								});          
+							});
+						},
+						
+						commitData(obj) {
+							var me = this;
+							Root.confirm('纭畾鎻愪氦杈栧尯鍖婚櫌' + obj.md_hospital__name + '鍚楋紵', '鎻愪氦鎻愮ず', {
+							  confirmButtonText: '鎻愪氦',
+							  cancelButtonText: '鍙栨秷',
+							  type: 'warning'
+							}).then(() => {
+								var param = {
+									dataname: me.selectTabObj.dataname,
+									id: obj.id,
+									to_state: "OpeningApproval" 
+								}
+								console.log(me.selectTabObj)
+								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: '宸插彇娑�'
+								});          
+							});
+						},
+						
+						openPolicy(sceneCode, row) {
+							let me = this;
+							var text = "";
+							
+							// type_code: "", // Standard鏍囧噯浠风洰琛ㄣ�丆ustomer缁忛攢鍟嗕环鐩〃
+							if (sceneCode == "add") {
+							}
+							else if (sceneCode == "edit" || sceneCode == "browse") {
+								if(!row){
+									Root.message({
+										type: 'warning',
+										message: '璇烽�夋嫨涓�鏉℃暟鎹�'
+									});
+									return;
+								}
+								
+								// if (row.customer_name) {
+								// 	text = row.customer_name;
+								// }
+								
+							}
+							
+							var config = {
+								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "320px",
+								icon: "icon-product",
+								text: "杈栧尯鍖婚櫌" + text,
+								id: "popup_position_hospital" + row.id + sceneCode,//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/popup/popup_position_hospital.html",
+								data: row,
+								delta: {dataname: me.selectTabObj.dataname,},
+								sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+
+						//杈栧尯鍖婚櫌鏂板
+						onAddData() {
+							var me = this;
+							
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "900px",
+								icon: "icon-product",
+								text: "鍖婚櫌绠$悊淇℃伅",
+								id: "hospital_list_info",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/hospital_list_info.html",
+								data: {},
+								delta: {},
+								sceneCode: "add",//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									//isSales鎻愪氦鍚庡埛鏂�'杈栧尯瀹℃壒涓�'tab
+									// if(me.isSales) {
+										var tab = {
+											name: 'infoUnderApproval',
+										};
+										me.activeTabName = 'infoUnderApproval';
+										me.handleClick(tab);
+										me.onQuery();
+									// } else {
+									// 	me.onQuery();
+									// }
+
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+						//杈栧尯鍖婚櫌淇℃伅鏌ョ湅
+						showInfo(obj) {
+							var me = this;
+							
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "1200px",
+								height: "600px",
+								icon: "icon-product",
+								text: obj.row.name  + " 鍖婚櫌绠$悊淇℃伅",
+								id: "hospital_list_info" + "browse" + obj.row.id,//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/hospital_list_info.html",
+								data: obj.row,
+								delta: {},
+								sceneCode: "browse", //"add"//"browse",
+								callback: function(obj, callback) {
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+						//杈栧尯鍖婚櫌鍙樻洿
+						onEditDataChange(config) {
+							var me = this;
+							var row = me.selectTabObj.selectedrow;
+
+							config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "500px",
+								icon: "icon-product",
+								text: row.name  + " 淇℃伅鍙樻洿",
+								id: "hospital_list_info" + row.id + "_edit",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/hospital_list_info.html",
+								data: row,
+								delta: {},
+								sceneCode: "change",//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									//isSales鎻愪氦鍚庡埛鏂�'杈栧尯瀹℃壒涓�'tab
+									// if(me.isSales) {
+										var tab = {
+											name: 'infoUnderApproval',
+										};
+										me.activeTabName = 'infoUnderApproval';
+										me.handleClick(tab);
+										me.onQuery();
+									// } else {
+									// 	me.onQuery();
+									// }
+
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+
+						//杈栧尯鍖婚櫌鍙樻洿鏌ョ湅
+						showChangeInfo(obj) {
+							var me = this;
+
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "500px",
+								icon: "icon-product",
+								text: obj.row.hospital_name + " 鍙樻洿淇℃伅",
+								id: "hospitalInfoChange" + obj.row.id + "infoChange_browse",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/hospital_list_info.html",
+								data: obj.row,
+								delta: {},
+								sceneCode: "infoChange_browse",//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+
+						//杈栧尯鍖婚櫌閫�鍥炵紪杈�
+						reEditInfo() {
+							var me = this;
+							var row = me.selectTabObj.selectedrow;
+
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "500px",
+								icon: "icon-product",
+								text: row.hospital_name + " 鍙樻洿淇℃伅",
+								id: "hospitalInfoChange" + row.id + "infoChange_browse",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/hospital_list_info.html",
+								data: row,
+								delta: {},
+								sceneCode: 'reEdit',//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									var tab = {
+										name: 'infoUnderApproval',
+									};
+									me.activeTabName = 'infoUnderApproval';
+									me.handleClick(tab);
+									me.onQuery();
+									
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+
+						//鎺堟潈淇℃伅鏌ョ湅
+						showAuthInfo(row) {
+							let me = this;
+							var delta_ = {};
+							if(!row.id) {
+								Root.message({
+									type: 'warning',
+									message: '璇ュ尰闄㈡殏鏃犳巿鏉冩暟鎹�'
+								});
+								return;
+							}
+							
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "950px",
+								height: "500px",
+								icon: "icon-product",
+								text: row.name + " 鎺堟潈淇℃伅",
+								id: "org_hospital_edit" + row.id + "browse",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/popup/org_hospital_edit.html",
+								data: row,
+								delta: delta_,
+								// filter: "state_code!='UnderApproval'",
+								sceneCode: "browse",//"edit", //"add"//"browse",
+								callback: function(obj, callback) {
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+
+						//鍖婚櫌鎺堟潈鍙樻洿
+						onAuthorize(auth_type) {
+							var me = this;
+							var row = me.selectTabObj.selectedrow;
+							
+							//3. popup
+							config = {
+								totab: true,
+								icon: "icon-product",
+								text: "鎺堟潈淇℃伅",
+								width: "900px",
+								height: "460px",
+								// id: "authorize_customer_list" + "edit" + row.id,
+								// url: "module/md/page/terminal/page/popup/authorize_customer_list.html",
+								// filter: "hospital_id='"+ row.id +"'",
+								// sceneCode: "edit",
+								id: "org_hospital_edit" + auth_type + row.id,
+								url: "module/md/page/terminal/page/popup/org_hospital_edit.html",
+								filter: "hospital_id='"+ row.id +"'",
+								sceneCode: auth_type,
+								data: row,
+								delta: {},
+								callback: function(obj, callback) {
+									//isSales鎻愪氦鍚庡埛鏂�'鎺堟潈瀹℃壒涓�'tab
+									if(me.isSales) {
+										var tab = {
+											name: 'authUnderApproval',
+										};
+										me.activeTabName = 'authUnderApproval';
+										me.handleClick(tab);
+										me.onQuery();
+									} else {
+										var tab = {
+											name: 'authorize',
+										};
+										me.activeTabName = 'authorize';
+										me.handleClick(tab);
+										me.onQuery();
+									}
+									if (callback) {
+										callback();
+									}
+								},
+							};
+							me.doPopupByPublic(config);
+						},
+
+						//鎺堟潈鍙樻洿鏌ョ湅
+						showAuthChange(row) {
+						    let me = this;
+						    var delta_ = {};
+
+						    var config = {
+						        totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+						        width: "950px",
+						        height: "500px",
+						        icon: "icon-product",
+						        text: row.hospital_name + " 鎺堟潈鍙樻洿淇℃伅",
+						        id: "org_hospital_edit" + row.id + "authChange_browse",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+						        url: "module/md/page/terminal/page/popup/org_hospital_edit.html",
+						        data: row,
+						        delta: delta_,
+						        // filter: "state_code!='UnderApproval'",
+						        sceneCode: 'authChange_browse',//"edit", //"add"//"browse",
+						        callback: function(obj, callback) {
+									//鍥為��缂栬緫鏃讹紝isSales鎻愪氦鍚庡埛鏂�'鎺堟潈瀹℃壒涓�'tab
+									if(sceneCode_ == "reEdit") {
+										if(me.isSales) {
+											var tab = {
+												name: 'authUnderApproval',
+											};
+											me.activeTabName = 'authUnderApproval';
+											me.handleClick(tab);
+											me.onQuery();
+										} else {
+											me.onQuery();
+										}
+									}
+									
+						            if (callback) {
+						                callback();
+						            }
+						        }
+						    };
+						    me.doPopupByPublic(config);
+						},
+
+						//鎺堟潈閫�鍥炵紪杈�
+						reEditAuth() {
+							var me = this;
+							var row = me.selectTabObj.selectedrow;
+
+							var config = {
+						        totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+						        width: "950px",
+						        height: "500px",
+						        icon: "icon-product",
+						        text: row.hospital_name + " 鎺堟潈鍙樻洿淇℃伅",
+						        id: "org_hospital_edit" + row.id + "reEdit",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+						        url: "module/md/page/terminal/page/popup/org_hospital_edit.html",
+						        data: row,
+						        delta: {},
+						        // filter: "state_code!='UnderApproval'",
+						        sceneCode: 'reEdit',//"edit", //"add"//"browse",
+						        callback: function(obj, callback) {
+									var tab = {
+										name: 'authUnderApproval',
+									};
+									me.activeTabName = 'authUnderApproval';
+									me.handleClick(tab);
+									me.onQuery();
+									
+						            if (callback) {
+						                callback();
+						            }
+						        }
+						    };
+						    me.doPopupByPublic(config);
+						},
+						
+						onDownload() {
+							let me = this;
+							var ioname = "export_md_position_hospital";
+							var sign = "md_position_hospital";
+							var filename = '杈栧尯鍖婚櫌瀵煎嚭' + String(new Date().getTime());
+							var filter_ = "1 = 1";
+							filter_ = this.getFilterData(filter_);
+							let param = {
+								sign: sign,
+								filename: filename,
+								filter: filter_,
+								ioname:ioname,
+								orderby: "",
+								token: Root.getToken()
+							}
+							window.top.vue.textdownloadForm(param);
+						},
+						
+						// DownloadTemplate() {
+						// 	var pathurl = "template/1.瀵煎叆妯℃澘/鐩爣鍖婚櫌妞嶅叆鎸囨爣.xlsx";
+						// 	handleDownload(pathurl);
+						// },
+						
+						DownloadTemplate() {
+							let me = this;
+							let param = {
+								// sign: "md_target_hospital",
+								ioname:"export_md_position_hospital_template",
+								orderby: "",
+								token: Root.getToken()
+							}
+							window.top.vue.textdownloadForm(param);
+						},
+												
+						onPopupByUploadFile() {
+							var me = this;
+							var ioname_ = "import_md_position_hospital"
+							var delta_ = {
+								filetypelist: [], 
+								isToDB: true,
+								dataname: this.selectTabObj.dataname,
+								tableFields: this.selectTabObj.tableFields,
+								otherSave: "salesBizLogic/saveDealerTargetByImport",
+							}
+							var config = {
+								totab: false,
+								width: "500px",
+								icon: "icon-product",
+								text: "鏁版嵁鏂囦欢涓婁紶",
+								id: "popup_uploadFileToDB",
+								url: "module/tool/page/popup_uploadFileToDB.html",
+								data: {
+									uploadType: "dealertarget",
+									tempTable: "temp_target_dealer",
+									operate_type: "dealertarget",
+									userid: me.userid,
+									ioname:ioname_,
+								},
+								delta: delta_,
+								callback: function(obj, callback) {
+									me.$message({
+										showClose: true,
+										message: '涓婁紶鎴愬姛锛�',
+										type: 'success'
+									});
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							this.doPopupByPublic(config);
+						},
+						
+						onShowLinkPharmacy() {
+							var me = this;
+							var row = me.selectTabObj.selectedrow;
+						
+							var config = {
+								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "950px",
+								height: "300px",
+								icon: "icon-product",
+								text: row.hospital_name + "-鍏宠仈闄㈠搴�",
+								id: "popup_linkpharmacy_list" + row.id + "browse",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/terminal/page/popup/popup_linkpharmacy_list.html",
+								data: row,
+								delta: {},
+								filter: "hospital_id='"+ row.hospital_id +"'",
+								sceneCode: 'browse',//"edit", //"add"//"browse",
+								callback: function(obj, callback) {
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+					}
+				});
+			};
+			
+			loadJsCss(function () {
+				initVue();
+			});
+		</script>
+		<style>
+			/* 鍦╲ue.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">
+			<div id="page_root">
+				<div class="topbar">
+					<span>{{title}}</span>
+
+					<div style="float: right;">
+						<el-button-group style="margin-left: 3px">
+							<el-button v-show="cbuttons_r.linkpharmacy" @click="onShowLinkPharmacy">鍏宠仈闄㈠搴�</el-button>
+							<el-button v-show="cbuttons_r.downloadTemplate" @click="DownloadTemplate">妯℃澘涓嬭浇</el-button>
+							<el-tooltip class="item" effect="dark" :content="buttonsconfig.clearandappend.tooltip" placement="top-start">
+								<el-button v-show="cbuttons_r.import" @click="onPopupByUploadFile":icon="buttonsconfig.clearandappend.icon">{{buttonsconfig.clearandappend.name}}</el-button>
+							</el-tooltip>
+							<el-button v-show="cbuttons_r.export" type="primary" @click="onDownload" :icon="buttonsconfig.export.icon">{{buttonsconfig.export.name}}</el-button>
+						</el-button-group>
+						<!-- <el-button 
+							v-show="cbuttons_r.Add && selectTabObj.code == 'hospital'" @click="addData":icon="buttonsconfig.add.icon">{{buttonsconfig.add.name}}
+						</el-button>
+						<el-button
+							v-show="cbuttons_r.Add && selectTabObj.code == 'hospital'"
+							:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id)"
+							@click="onEditDataChange" :icon="buttonsconfig.change.icon">鍙樻洿
+						</el-button>
+
+						<el-button
+							v-show="cbuttons_r.Auth && selectTabObj.code == 'hospital'"
+							:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id)"
+							@click="onAuthorize('add')" :icon="buttonsconfig.authorize.icon">鏂板鎺堟潈
+						</el-button>
+
+						<el-button-group v-show="selectTabObj.code == 'authorize'" style="margin-left: 3px;">
+							<el-button
+								v-show="cbuttons_r.Auth"
+								@click="onAuthorize('add')" :icon="buttonsconfig.authorize.icon">鏂板鎺堟潈
+							</el-button>
+							<el-button
+								v-show="cbuttons_r.Auth"
+								:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id)"
+								@click="onAuthorize('change')" :icon="buttonsconfig.authorize.icon">鍙樻洿鎺堟潈
+							</el-button>
+							<el-button
+								v-show="cbuttons_r.Auth"
+								:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id)"
+								type="danger"
+								@click="onAuthorize('delete')" :icon="buttonsconfig.authorize.icon">鍙栨秷鎺堟潈
+							</el-button>
+						</el-button-group>
+
+						<el-button-group v-show="selectTabObj.code == 'infoAll'" style="margin-left: 3px;">
+							<el-button
+								v-show="cbuttons_r.Add"
+								:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id && (selectTabObj.selectedrow.state_code == 'Rejected' || selectTabObj.selectedrow.state_code == 'Input') && selectTabObj.selectedrow.create_id == saveUser)"
+								@click="reEditInfo" :icon="buttonsconfig.edit.icon">缂栬緫
+							</el-button>
+						</el-button-group>
+
+						<el-button-group v-show="selectTabObj.code == 'authAll'" style="margin-left: 3px;">
+							<el-button
+								v-show="cbuttons_r.Auth"
+								:disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.id && (selectTabObj.selectedrow.state_code == 'Rejected' || selectTabObj.selectedrow.state_code == 'Input') && selectTabObj.selectedrow.create_id == saveUser)"
+								@click="reEditAuth" :icon="buttonsconfig.edit.icon">缂栬緫
+							</el-button>
+						</el-button-group> -->
+					</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"
+						:filtersobj="selectTabObj.filterObj"
+						:is-show-index="selectTabObj.isShowIndex"
+						:tableloading="tableloading"
+						:isdraggableorder="false"
+						:is-highlight-row="true"
+						
+						v-on:get-data="getData"
+						v-on:row-click="rowClick"
+					>
+					</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>

--
Gitblit v1.8.0