From 2278ff7c0401f7f97e168a0943192357c1999cbf Mon Sep 17 00:00:00 2001
From: tom <tom.he@highdatas.com>
Date: 星期六, 03 八月 2024 13:50:15 +0800
Subject: [PATCH] Merge branch 'master' of http://highdatas.com:9000/r/promotion/promotion_html

---
 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/report/page/channelCustomerLayoutStructure.html          | 1145 +++
 module/system/page/home/page/home_sale.html                     |   20 
 module/flow/page/flowStock.html                                 |  528 +
 module/md/page/customer/page/customer_basic.html                |  238 
 module/target/page/customer_target_list.html                    |    4 
 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/customer/page/evaluation_management.html         |    6 
 module/flow/page/flowPurchase.html                              |  635 +
 module/flow/page/flowSales.html                                 |  634 +
 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                 |  185 
 module/md/page/customer/page/customer_list_authorization.html   |    4 
 module/system/page/main.html                                    |   26 
 module/visit/page/visit_schedule_list.html                      | 1134 +++
 module/agreement/page/agreement_mould_list.html                 |    2 
 module/report/page/overallChannelSalesProgress.html             | 2025 +++++
 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  |  106 
 module/report/page/report_list_detail.html                      |    6 
 img/org/logo.png                                                |    0 
 module/md/page/customer/page/channel_relationship.html          |    6 
 js/myelement.js                                                 |    2 
 module/report/page/channelInventoryComposition.html             |  848 ++
 module/md/page/popup/page/popup_hospitalToList.html             |    6 
 module/md/page/terminal/page/hospital_list_warehouse.html       |    5 
 module/report/page/salesPerformance.html                        |  492 +
 module/report/page/netProgress.html                             | 1294 +++
 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                                                    |    6 
 module/target/page/terminal_target_list.html                    |    8 
 module/report/page/report_list.html                             |  387 
 47 files changed, 20,460 insertions(+), 722 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..e72d157 100644
--- a/js/config.js
+++ b/js/config.js
@@ -14,13 +14,13 @@
 
 
 config = {
-	jscssversion: "2024072901", //.js/.css鏂囦欢鐨勭増鏈彿锛屽幓闄ゅ墠绔紦瀛樼殑涓�绉嶆満鍒�
+	jscssversion: "2024080201", //.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..4a7bc36 100644
--- a/js/myelement.js
+++ b/js/myelement.js
@@ -3061,6 +3061,8 @@
 				
 				// 琛ㄦ牸瀛楁鍒嗙粍锛屾牴鎹畉ableformgroup鍒ゆ柇tablegroupname鏄惁琛ㄦ牸鍗曞厓鏍间腑鐨勮〃鍗曞垎缁� 
 				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/flowPurchase.html b/module/flow/page/flowPurchase.html
new file mode 100644
index 0000000..2f7d0dd
--- /dev/null
+++ b/module/flow/page/flowPurchase.html
@@ -0,0 +1,635 @@
+<!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">
+			function loadJsCss(callback) {
+				var jscss_urls = [];
+				window.top.initJsCss(document, jscss_urls, callback);
+			};
+			
+			function initVue() {
+				new TabTableVue({
+					el: "#vbody",
+					data: {
+						title: "閲囪喘娴佸悜",
+						//Tab椤硅缃�
+						tabs_d: [
+							{code: "monthflow", name: "鏈堟祦鍚�", dataname: "sys_data_property", filterTxt: "", orderby: ""},
+							{code: "dayflow", name: "鏃ユ祦鍚�", dataname: "sys_data_property", filterTxt: "", orderby: ""},
+						],
+						
+						d_tabs: {
+							monthflow: true,
+							dayflow: true,
+						},
+						filterTxt: "1<>1",
+						tabs: [],
+						tabsobj: {},
+						newdate: "",
+						
+						default_filterFields: {
+							monthflow: [
+								{isshow: "T", field: "year", name: "骞翠唤", type: "year", filterfield: "id", filteroperator: "="},
+								{isshow: "T", field: "month", name: "鏈堜唤", type: "month", filterfield: "id", filteroperator: "="},
+								{isshow: "T",field: "sell_customer_code",name: "鍗栨柟缂栫爜",filterfield: "",filteroperator: "like"},
+								{isshow: "T",field: "sell_customer_name",name: "鍗栨柟鍚嶇О",filterfield: "",filteroperator: "like"},
+								{isshow: "T",field: "buy_customer_code",name: "涔版柟缂栫爜",filterfield: "",filteroperator: "like"},
+								{isshow: "T",field: "buy_customer_name",name: "涔版柟鍚嶇О",filterfield: "",filteroperator: "like"},
+								{isshow: "T",field: "product_code",name: "浜у搧缂栫爜",filterfield: "",filteroperator: "like"},
+								{isshow: "T",field: "product_name",name: "浜у搧鍚嶇О",filterfield: "",filteroperator: "like"},
+								{isshow: "F", field: "dition_type",name: "", filterfield: "", filteroperator: "=", 
+								type: "radio", options: [
+									{code: "1", value: "鍒濈増"},
+									{code: "2", value: "缁堢増"},
+								]},
+							],
+							
+							dayflow: [
+								{isshow: "T", field: "year", name: "骞翠唤", type: "year", filterfield: "id", filteroperator: "="},
+								{isshow: "T", field: "month", name: "鏈堜唤", type: "month", filterfield: "id", filteroperator: "="},
+								{isshow: "T",field: "sell_customer_code",name: "鍗栨柟缂栫爜",filterfield: "",filteroperator: "like"},
+								{isshow: "T",field: "sell_customer_name",name: "鍗栨柟鍚嶇О",filterfield: "",filteroperator: "like"},
+								{isshow: "T",field: "buy_customer_code",name: "涔版柟缂栫爜",filterfield: "",filteroperator: "like"},
+								{isshow: "T",field: "buy_customer_name",name: "涔版柟鍚嶇О",filterfield: "",filteroperator: "like"},
+								{isshow: "T",field: "product_code",name: "浜у搧缂栫爜",filterfield: "",filteroperator: "like"},
+								{isshow: "T",field: "product_name",name: "浜у搧鍚嶇О",filterfield: "",filteroperator: "like"},
+							]
+						},
+						
+						default_filterObj: {
+							monthflow: {
+								year: new Date().getFullYear().toString(),
+								month: dateFormat(new Date(), "yyyy-MM"),
+								//month: new Date().getFullYear() + "-" + new Date().getMonth()+1,
+								dition_type: "1"
+							},
+							dayflow: {
+								year: new Date().getFullYear().toString(),
+								// month: new Date().getMonth()+1,
+								month: dateFormat(new Date(), "yyyy-MM"),
+							},
+						},
+						
+						
+						default_tableFields: [
+							{isshow: "T", field: "year", name: "骞翠唤", align: "center",width: "80"},
+							{isshow: "T", field: "month", name: "鏈堜唤", align: "center",width: "80"},
+							{isshow: "T",field: "biz_date",name: "鏃ユ湡",width: "120", formatter: "formatter_date"},
+							{isshow: "T",field: "sell_customer_code",name: "鍗栨柟缂栫爜",width: "100",align: "center"},
+							{isshow: "T",field: "sell_customer_name",name: "鍗栨柟鍚嶇О",align: "left", width: "200", isminwidth: true},
+							{isshow: "T",field: "sell_customer_name_old",name: "鍗栨柟鍘熷鍚嶇О",align: "left", width: "200", isminwidth: true},
+							{isshow: "T",field: "sell_province",name: "鍗栨柟鐪佷唤",width: "120"},
+							{isshow: "T",field: "sell_city",name: "鍗栨柟鍩庡競",width: "120"},
+							{isshow: "T",field: "sell_county",name: "鍗栨柟鍖哄幙",width: "120"},
+							{isshow: "T",field: "buy_customer_code",name: "涔版柟缂栫爜",width: "100",align: "center"},
+							{isshow: "T",field: "buy_customer_name",name: "涔版柟鍚嶇О",align: "left", width: "200", isminwidth: true},
+							{isshow: "T",field: "buy_customer_name_old",name: "涔版柟鍘熷鍚嶇О",align: "left", width: "200", isminwidth: true},
+							{isshow: "T",field: "buy_province",name: "涔版柟鐪佷唤",width: "120"},
+							{isshow: "T",field: "buy_city",name: "涔版柟鍩庡競",width: "120"},
+							{isshow: "T",field: "buy_county",name: "涔版柟鍖哄幙",width: "120"},
+							{isshow: "T",field: "product_code", name: "浜у搧缂栫爜", align: "center", width: "100"},
+							{isshow: "T", field: "product_name", name: "浜у搧鍚嶇О", align: "left", width: "180"},
+							{isshow: "T", field: "unit", name: "鍗曚綅", align: "left", width: "80", align: "center"},
+							{isshow: "T", field: "price", name: "鍗曚环", align: "right", width: "100",formatter: "formatter_money"},
+							{isshow: "T", field: "qty", name: "鏁伴噺", align: "right", width: "100"},
+							{isshow: "T", field: "amt", name: "閿�鍞噾棰�", align: "right", width: "100",formatter: "formatter_money"},
+							{isshow: "T", field: "batch_number", name: "鎵瑰彿", align: "center", width: "100"},
+						],
+						default_tableData: [
+							{
+								"year":"2023",
+								"month":"3",
+								"biz_date":"2023-03-10",
+								"sell_customer_code":"D00000119",
+								"sell_customer_name":"鍚夊畨甯傚悏宸炲尯鍙岄┈鍟嗚锤鏈夐檺鍏徃",
+								"sell_customer_name_old":"鍚夊畨甯傚悏宸炲尯鍙岄┈鍟嗚锤鏈夐檺鍏徃",
+								"sell_province":"姹熻タ鐪�",
+								"sell_city":"鍚夊畨甯�",
+								"sell_county":"鍚夊窞鍖�",
+								"buy_customer_code":"D00001158",
+								"buy_customer_name":"涓婃捣閫氭嘲鎱峰尰鐤楃鎶�鏈夐檺鍏徃",
+								"buy_customer_name_old":"涓婃捣閫氭嘲鎱峰尰鐤楃鎶�鏈夐檺鍏徃",
+								"buy_province":"涓婃捣甯�",
+								"buy_city":"涓婃捣甯�",
+								"buy_county":"闈掓郸鍖�",
+								"product_code":"00258",
+								"product_name":"鎰熷啋鐏甸绮�",
+								"unit":"鐩�",
+								"price":"13.98",
+								"qty":"100",
+								"amt":"1398",
+								"batch_number":"1001",
+							},
+							{
+								"year":"2023",
+								"month":"3",
+								"biz_date":"2023-03-11",
+								"sell_customer_code":"D00000055",
+								"sell_customer_name":"骞垮窞鍋ヨ寳鍖荤枟鍣ㄦ鏈夐檺鍏徃",
+								"sell_customer_name_old":"骞垮窞鍋ヨ寳鍖荤枟鍣ㄦ鏈夐檺鍏徃",
+								"sell_province":"骞夸笢鐪�",
+								"sell_city":"骞垮窞甯�",
+								"sell_county":"鑽旀咕鍖�",
+								"buy_customer_code":"D00000036",
+								"buy_customer_name":"骞垮窞寰锋眹鍚屽垱鍖荤枟鍣ㄦ鏈夐檺鍏徃",
+								"buy_customer_name_old":"骞垮窞寰锋眹鍚屽垱鍖荤枟鍣ㄦ鏈夐檺鍏徃",
+								"buy_province":"骞夸笢鐪�",
+								"buy_city":"骞垮窞甯�",
+								"buy_county":"鑽旀咕鍖�",
+								"product_code":"00258",
+								"product_name":"鎰熷啋鐏甸绮�",
+								"unit":"鐩�",
+								"price":"13.98",
+								"qty":"100",
+								"amt":"1398",
+								"batch_number":"1001",
+							},
+							{
+								"year":"2023",
+								"month":"3",
+								"biz_date":"2022-03-10",
+								"sell_customer_code":"D00000054",
+								"sell_customer_name":"骞垮窞鐟炴櫀鍖荤枟绉戞妧鏈夐檺鍏徃",
+								"sell_customer_name_old":"骞垮窞鐟炴櫀鍖荤枟绉戞妧鏈夐檺鍏徃",
+								"sell_province":"骞夸笢鐪�",
+								"sell_city":"骞垮窞甯�",
+								"sell_county":"鑽旀咕鍖�",
+								"buy_customer_code":"D00001038",
+								"buy_customer_name":"闀挎矙瑾夌編鍖荤枟鍣ㄦ璐告槗鏈夐檺鍏徃",
+								"buy_customer_name_old":"闀挎矙瑾夌編鍖荤枟鍣ㄦ璐告槗鏈夐檺鍏徃",
+								"buy_province":"婀栧崡鐪�",
+								"buy":"闀挎矙甯�",
+								"buy_county":"寮�绂忓尯",
+								"product_code":"00258",
+								"product_name":"鎰熷啋鐏甸绮�",
+								"unit":"鐩�",
+								"price":"13.98",
+								"qty":"100",
+								"amt":"1398",
+								"batch_number":"1001",
+							},
+							{
+								"year":"2023",
+								"month":"3",
+								"biz_date":"2022-03-10",
+								"sell_customer_code":"D00000039",
+								"sell_customer_name":"骞垮窞娉板皵搴疯锤鏄撴湁闄愬叕鍙�",
+								"sell_customer_name_old":"骞垮窞娉板皵搴疯锤鏄撴湁闄愬叕鍙�",
+								"sell_province":"骞夸笢鐪�",
+								"sell_city":"骞垮窞甯�",
+								"sell_county":"鑽旀咕鍖�",
+								"buy_customer_code":"D00000030",
+								"buy_customer_name":"姹熻タ瀹忎匠椤哄尰鐤楀櫒姊版湁闄愬叕鍙�",
+								"buy_customer_name_old":"姹熻タ瀹忎匠椤哄尰鐤楀櫒姊版湁闄愬叕鍙�",
+								"buy_province":"姹熻タ鐪�",
+								"buy_city":"钀嶄埂甯�",
+								"buy_county":"瀹夋簮鍖�",
+								"product_code":"00258",
+								"product_name":"鎰熷啋鐏甸绮�",
+								"unit":"鐩�",
+								"price":"13.98",
+								"qty":"100",
+								"amt":"1398",
+								"batch_number":"1001",
+							},
+							{
+								"year":"2023",
+								"month":"3",
+								"biz_date":"2023-01-10",
+								"sell_customer_code":"D00000030",
+								"sell_customer_name":"姹熻タ瀹忎匠椤哄尰鐤楀櫒姊版湁闄愬叕鍙�",
+								"sell_customer_name_old":"姹熻タ瀹忎匠椤哄尰鐤楀櫒姊版湁闄愬叕鍙�",
+								"sell_province":"姹熻タ鐪�",
+								"sell_city":"钀嶄埂甯�",
+								"sell_county":"瀹夋簮鍖�",
+								"buy_customer_code":"D00001165",
+								"buy_customer_name":"骞胯タ鐜嬪淇濆尰鑽俊鎭挩璇㈡湁闄愬叕鍙�",
+								"buy_customer_name_old":"骞胯タ鐜嬪淇濆尰鑽俊鎭挩璇㈡湁闄愬叕鍙�",
+								"buy_province":"骞胯タ澹棌鑷不鍖�",
+								"buy_city":"鍗楀畞甯�",
+								"buy_county":"姹熷崡鍖�",
+								"product_code":"00258",
+								"product_name":"鎰熷啋鐏甸绮�",
+								"unit":"鐩�",
+								"price":"13.98",
+								"qty":"100",
+								"amt":"1398",
+								"batch_number":"1001",
+							},
+							{
+								"year":"2023",
+								"month":"3",
+								"biz_date":"2022-01-15",
+								"sell_customer_code":"D00001038",
+								"sell_customer_name":"闀挎矙瑾夌編鍖荤枟鍣ㄦ璐告槗鏈夐檺鍏徃",
+								"sell_customer_name_old":"闀挎矙瑾夌編鍖荤枟鍣ㄦ璐告槗鏈夐檺鍏徃",
+								"sell_province":"婀栧崡鐪�",
+								"sell_city":"闀挎矙甯�",
+								"sell_county":"寮�绂忓尯",
+								"buy_customer_code":"D00000119",
+								"buy_customer_name":"鍚夊畨甯傚悏宸炲尯鍙岄┈鍟嗚锤鏈夐檺鍏徃",
+								"buy_customer_name_old":"鍚夊畨甯傚悏宸炲尯鍙岄┈鍟嗚锤鏈夐檺鍏徃",
+								"buy_province":"姹熻タ鐪�",
+								"buy_city":"鍚夊畨甯�",
+								"buy_county":"鍚夊窞鍖�",
+								"product_code":"00296",
+								"product_name":"鎰熷啋鐏甸绮�",
+								"unit":"鐩�",
+								"price":"9.98",
+								"qty":"100",
+								"amt":"998",
+								"batch_number":"1009",
+							},
+							{
+								"year":"2023",
+								"month":"3",
+								"biz_date":"2023-01-19",
+								"sell_customer_code":"D00000036",
+								"sell_customer_name":"骞垮窞寰锋眹鍚屽垱鍖荤枟鍣ㄦ鏈夐檺鍏徃",
+								"sell_customer_name_old":"骞垮窞寰锋眹鍚屽垱鍖荤枟鍣ㄦ鏈夐檺鍏徃",
+								"sell_province":"骞夸笢鐪�",
+								"sell_city":"骞垮窞甯�",
+								"sell_county":"鑽旀咕鍖�",
+								"buy_customer_code":"D00000055",
+								"buy_customer_name":"骞垮窞鍋ヨ寳鍖荤枟鍣ㄦ鏈夐檺鍏徃",
+								"buy_customer_name_old":"骞垮窞鍋ヨ寳鍖荤枟鍣ㄦ鏈夐檺鍏徃",
+								"buy_province":"骞夸笢鐪�",
+								"buy_city":"骞垮窞甯�",
+								"buy_county":"鑽旀咕鍖�",
+								"product_code":"00358",
+								"product_name":"鎰熷啋鐏甸绮�",
+								"unit":"鐩�",
+								"price":"15.98",
+								"qty":"100",
+								"amt":"1598",
+								"batch_number":"3001",
+							},
+							{
+								"year":"2023",
+								"month":"2",
+								"biz_date":"2023-02-09",
+								"sell_customer_code":"D00001158",
+								"sell_customer_name":"涓婃捣閫氭嘲鎱峰尰鐤楃鎶�鏈夐檺鍏徃",
+								"sell_customer_name_old":"涓婃捣閫氭嘲鎱峰尰鐤楃鎶�鏈夐檺鍏徃",
+								"sell_province":"涓婃捣甯�",
+								"sell_city":"涓婃捣甯�",
+								"sell_county":"闈掓郸鍖�",
+								"buy_customer_code":"D00000054",
+								"buy_customer_name":"骞垮窞鐟炴櫀鍖荤枟绉戞妧鏈夐檺鍏徃",
+								"buy_customer_name_old":"骞垮窞鐟炴櫀鍖荤枟绉戞妧鏈夐檺鍏徃",
+								"buy_province":"骞夸笢鐪�",
+								"buy_city":"骞垮窞甯�",
+								"buy_county":"鑽旀咕鍖�",
+								"product_code":"00278",
+								"product_name":"鎰熷啋鐏甸绮�",
+								"unit":"鐩�",
+								"price":"23.98",
+								"qty":"100",
+								"amt":"2398",
+								"batch_number":"1101",
+							},
+							{
+								"year":"2023",
+								"month":"2",
+								"biz_date":"2023-02-17",
+								"sell_customer_code":"D00000098",
+								"sell_customer_name":"骞垮窞绂忔簮鍖荤枟绉戞妧鏈夐檺鍏徃",
+								"sell_customer_name_old":"骞垮窞绂忔簮鍖荤枟绉戞妧鏈夐檺鍏徃",
+								"sell_province":"骞夸笢鐪�",
+								"sell_city":"骞垮窞甯�",
+								"sell_county":"鑽旀咕鍖�",
+								"buy_customer_code":"D00000039",
+								"buy_customer_name":"骞垮窞娉板皵搴疯锤鏄撴湁闄愬叕鍙�",
+								"buy_customer_name_old":"骞垮窞娉板皵搴疯锤鏄撴湁闄愬叕鍙�",
+								"buy_province":"骞夸笢鐪�",
+								"buy_city":"骞垮窞甯�",
+								"buy_county":"鑽旀咕鍖�",
+								"product_code":"01258",
+								"product_name":"鎰熷啋鐏甸绮�",
+								"unit":"鐩�",
+								"price":"20.98",
+								"qty":"100",
+								"amt":"2098",
+								"batch_number":"1001",
+							},
+							{
+								"year":"2023",
+								"month":"2",
+								"biz_date":"2023-02-27",
+								"sell_customer_code":"D00001165",
+								"sell_customer_name":"骞胯タ鐜嬪淇濆尰鑽俊鎭挩璇㈡湁闄愬叕鍙�",
+								"sell_customer_name_old":"骞胯タ鐜嬪淇濆尰鑽俊鎭挩璇㈡湁闄愬叕鍙�",
+								"sell_province":"骞胯タ澹棌鑷不鍖�",
+								"sell_city":"鍗楀畞甯�",
+								"sell_county":"姹熷崡鍖�",
+								"buy_customer_code":"D00000098",
+								"buy_customer_name":"骞垮窞绂忔簮鍖荤枟绉戞妧鏈夐檺鍏徃",
+								"buy_customer_name_old":"骞垮窞绂忔簮鍖荤枟绉戞妧鏈夐檺鍏徃",
+								"buy_province":"骞夸笢鐪�",
+								"buy_city":"骞垮窞甯�",
+								"buy_county":"鑽旀咕鍖�",
+								"product_code":"00258",
+								"product_name":"鎰熷啋鐏甸绮�",
+								"unit":"鐩�",
+								"price":"13.98",
+								"qty":"100",
+								"amt":"1398",
+								"batch_number":"1001",
+							},
+							
+						],
+					},
+					created() {
+						this.newdate_month = dateFormat(new Date(), "yyyy骞碝M鏈�")
+						this.newdate_day = dateFormat(new Date(), "yyyy骞碝M鏈坉d鏃�")
+					},
+					
+					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.tabs.length>0){
+									me.activeTabName = me.tabs[0].code;
+								}
+								console.log(me.cbuttons_r)
+								
+								//鍒濆鍖朤abs
+								me.initTabsPage(function() {
+									//鑾峰彇鏁版嵁
+									me.initData();
+								});
+								
+								me.$nextTick(() => { // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
+									hideLoading();
+								});
+							})
+						}
+						
+						
+						// this.activeTabName = "input";
+						// //鑾峰彇鏁版嵁
+						// this.initTabsPage(function() {
+						// 	me.initData();
+						// });
+						
+						// this.$nextTick(() => { // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
+						// 	hideLoading();
+						// });
+					},
+					
+					methods:{
+						onhandleClick() {
+							this.initData();
+						},
+						
+						initData() {
+							var me = this;
+							this.doQueryByTab(function(result, callback) {//鏌ヨ鍚庣殑鍥炶皟锛岀敤浜庤幏鍙栧瓧娈电殑
+								if (result.meta && result.meta[me.selectTabObj.dataname] && result.meta[me.selectTabObj.dataname].fields) {
+									var metas = clone(result.meta[me.selectTabObj.dataname].fields);
+									var filterFields_ = [];
+									var tableFields_ = [];
+									
+									metas.map(f=>{
+										f.isshow = "T";
+										
+										if (f.isfilter) {
+											filterFields_.push(clone(f));
+										}
+										else {
+											var filter_f = clone(f);
+											filter_f.isshow = "F";
+											filterFields_.push(filter_f);
+										}
+										
+										tableFields_.push(clone(f));
+									})
+									if (!me.selectTabObj.filterFields || (me.selectTabObj.filterFields && me.selectTabObj.filterFields.length == 0)) {
+										me.selectTabObj.filterFields = clone(me.default_filterFields[me.selectTabObj.code]);
+										me.selectTabObj.tableFields = clone(me.default_tableFields);
+										
+										me.selectTabObj.filterObj = clone(me.default_filterObj[me.selectTabObj.code])
+										
+										me.selectTabObj.tableData = clone(me.default_tableData);
+										
+										// me.selectTabObj.filterFields = clone(filterFields_);
+										// me.selectTabObj.tableFields = clone(tableFields_);
+										
+										//瀛楁鏁扮粍杞瓧娈祇bj
+										me.fieldsToFieldsObj();
+										
+										//璁剧疆瀛楁浜嬩欢
+										me.tableFieldClick();
+									}
+								}
+								
+								if (callback) {
+									callback();
+								}
+							});
+						},
+						
+						tableFieldClick() {
+							var me = this;
+							var tablefieldClick = {};
+							//琛ㄦ牸瀛楁浜嬩欢璁剧疆
+							tablefieldClick.input = {
+								code: {//瀛楁浜嬩欢璁剧疆
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: "PS-001",//涓嶅彲鐐瑰嚮鐨勫��,1銆佹槸鏁扮粍["11","22"]锛�2銆佷互鈥�;鈥濆垎闅旂殑瀛楃涓�"111;222"
+										notclick_bindfield: [],//褰撹瀛楁鍊肩瓑浜庢寚瀹氬瓧娈靛�兼椂涓嶅彲鐐瑰嚮["filterfield": "111"]
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											Root.message({
+												type: 'success',
+												message: obj.val + '鐐瑰嚮浜嬩欢'
+											}); 
+											//鎵撳紑
+											me.opentest(obj)
+										},
+									},
+								},
+							};
+							tablefieldClick.all = {
+								status: {//瀛楁浜嬩欢璁剧疆
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: "PS-001",//涓嶅彲鐐瑰嚮鐨勫��,1銆佹槸鏁扮粍["11","22"]锛�2銆佷互鈥�;鈥濆垎闅旂殑瀛楃涓�"111;222"
+										notclick_bindfield: [],//褰撹瀛楁鍊肩瓑浜庢寚瀹氬瓧娈靛�兼椂涓嶅彲鐐瑰嚮["filterfield": "111"]
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											Root.message({
+												type: 'success',
+												message: obj.val + '鐐瑰嚮浜嬩欢'
+											}); 
+											//鎵撳紑
+											me.opentest(obj)
+										},
+									},
+								},
+							};
+							
+							this.selectTabObj.tablefieldClick = tablefieldClick[this.activeTabName];
+						},
+						
+						opentest(obj) {
+							var me = this;
+							Root.message({
+								type: 'success',
+								message: '鍚庣紑鐐瑰嚮浜嬩欢'
+							});
+							
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "900px",
+								icon: "icon-product",
+								text: "琛ㄥ崟鏍蜂緥椤甸潰",
+								id: "test_page" + obj.row.id,//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/system/page/sample/sample_form.html",
+								data: obj.row,
+								delta: {},
+								sceneCode: "browse",//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+						rowClick(obj){
+							var me = this;
+							me.selectTabObj.selectedrow = obj.row;
+						},
+						
+						onAddSS() {
+							var me = this;
+							Root.message({
+								type: 'success',
+								message: '鐢宠瘔浜嬩欢'
+							});
+						}
+					}
+				});
+			};
+			
+			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 style="float: left;">{{title}}</span>
+					
+					<div style="float: right; margin-right: 18px;">
+						<el-button-group v-if="selectTabObj && selectTabObj.code == 'monthflow' && selectTabObj.filterObj.dition_type == '1'" style="margin-left: 3px;">
+							<el-button :disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.biz_date)" type="primary" @click="onAddSS":icon="buttonsconfig.add.icon">鐢宠瘔</el-button>
+						</el-button-group>
+						<el-button-group style="margin-left: 3px;">
+							<el-button type="primary" @click="":icon="buttonsconfig.import.icon">{{buttonsconfig.import.name}}</el-button>
+							<el-button type="primary" @click="":icon="buttonsconfig.export.icon">{{buttonsconfig.export.name}}</el-button>
+						</el-button-group>
+					</div>
+					
+					<div style="float: left; margin-left: 20%;">
+						<span>鎶ュ憡鏃ユ湡锛�</span>
+						<span v-if="selectTabObj && selectTabObj.code == 'monthflow'">{{newdate_month}}</span>
+						<span v-if="selectTabObj && selectTabObj.code == 'dayflow'">{{newdate_day}}</span>
+						<el-radio-group style="margin-left: 10px;" v-if="selectTabObj && selectTabObj.filterObj && selectTabObj.code=='monthflow'" v-model="selectTabObj.filterObj.dition_type" size="mini" fill="#4cb108">
+						    <el-radio-button label="1">鍒濈増</el-radio-button>
+						    <el-radio-button label="2">缁堢増</el-radio-button>
+						</el-radio-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-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"
+							:isdraggableorder="false"
+							
+							v-on:on-query="onQuery"
+							v-on:on-init-query="onInitFilter"
+							v-on:on-edit-query="onEditFilter"
+							v-on:order-fields="orderFilterFields"
+							>
+						</h-form-filter>
+					</div>
+				</div>
+			
+				<div class="h_dialog__body">
+					<h-table
+						v-if="isRefresh && selectTabObj.tableFields"
+						ref="table1"
+						:table-fields="selectTabObj.tableFields" 
+						:table-data="default_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="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/flowSales.html b/module/flow/page/flowSales.html
new file mode 100644
index 0000000..8d2d537
--- /dev/null
+++ b/module/flow/page/flowSales.html
@@ -0,0 +1,634 @@
+<!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">
+			function loadJsCss(callback) {
+				var jscss_urls = [];
+				window.top.initJsCss(document, jscss_urls, callback);
+			};
+			
+			function initVue() {
+				new TabTableVue({
+					el: "#vbody",
+					data: {
+						title: "閿�鍞祦鍚�",
+						//Tab椤硅缃�
+						tabs_d: [
+							{code: "monthflow", name: "鏈堟祦鍚�", dataname: "sys_data_property", filterTxt: "", orderby: ""},
+							{code: "dayflow", name: "鏃ユ祦鍚�", dataname: "sys_data_property", filterTxt: "", orderby: ""},
+						],
+						
+						d_tabs: {
+							monthflow: true,
+							dayflow: true,
+						},
+						filterTxt: "1<>1",
+						tabs: [],
+						tabsobj: {},
+						newdate_month: "",
+						newdate_day: "",
+						default_filterFields: {
+							monthflow: [
+								{isshow: "T", field: "year", name: "骞翠唤", type: "year", filterfield: "id", filteroperator: "="},
+								{isshow: "T", field: "month", name: "鏈堜唤", type: "month", filterfield: "id", filteroperator: "="},
+								{isshow: "T", field: "sell_customer_code",name: "鍗栨柟缂栫爜", filterfield: "", filteroperator: "like"},
+								{isshow: "T", field: "sell_customer_name",name: "鍗栨柟鍚嶇О", filterfield: "", filteroperator: "like"},
+								{isshow: "T", field: "buy_customer_code",name: "涔版柟缂栫爜", filterfield: "", filteroperator: "like"},
+								{isshow: "T", field: "buy_customer_name",name: "涔版柟鍚嶇О", filterfield: "", filteroperator: "like"},
+								{isshow: "T", field: "product_code",name: "浜у搧缂栫爜", filterfield: "", filteroperator: "like"},
+								{isshow: "T", field: "product_name",name: "浜у搧鍚嶇О", filterfield: "", filteroperator: "like"},
+								{isshow: "F", field: "dition_type",name: "", filterfield: "", filteroperator: "=", 
+								type: "radio", options: [
+									{code: "1", value: "鍒濈増"},
+									{code: "2", value: "缁堢増"},
+								]},
+							],
+							
+							dayflow: [
+								{isshow: "T", field: "year", name: "骞翠唤", type: "year", filterfield: "id", filteroperator: "="},
+								{isshow: "T", field: "month", name: "鏈堜唤", type: "month", filterfield: "id", filteroperator: "="},
+								{isshow: "T", field: "sell_customer_code",name: "鍗栨柟缂栫爜", filterfield: "", filteroperator: "like"},
+								{isshow: "T", field: "sell_customer_name",name: "鍗栨柟鍚嶇О", filterfield: "", filteroperator: "like"},
+								{isshow: "T", field: "buy_customer_code",name: "涔版柟缂栫爜", filterfield: "", filteroperator: "like"},
+								{isshow: "T", field: "buy_customer_name",name: "涔版柟鍚嶇О", filterfield: "", filteroperator: "like"},
+								{isshow: "T", field: "product_code",name: "浜у搧缂栫爜", filterfield: "", filteroperator: "like"},
+								{isshow: "T", field: "product_name",name: "浜у搧鍚嶇О", filterfield: "", filteroperator: "like"},
+							]
+						},
+						 
+						default_filterObj: {
+							monthflow: {
+								year: new Date().getFullYear().toString(),
+								month: dateFormat(new Date(), "yyyy-MM"),
+								//month: new Date().getFullYear() + "-" + new Date().getMonth()+1,
+								dition_type: "1"
+							},
+							dayflow: {
+								year: new Date().getFullYear().toString(),
+								// month: new Date().getMonth()+1,
+								month: dateFormat(new Date(), "yyyy-MM"),
+							},
+						},
+						
+						default_tableFields: [
+							{isshow: "T", field: "year", name: "骞翠唤", align: "center",width: "80"},
+							{isshow: "T", field: "month", name: "鏈堜唤", align: "center",width: "80"},
+							{isshow: "T", field: "biz_date",name: "娴佸悜鏃ユ湡",width: "120", formatter: "formatter_date"},
+							{isshow: "T", field: "sell_customer_code",name: "鍗栨柟缂栫爜",width: "100",align: "center"},
+							{isshow: "T", field: "sell_customer_name",name: "鍗栨柟鍚嶇О",align: "left", width: "200", isminwidth: true},
+							{isshow: "T", field: "sell_customer_name_old",name: "鍗栨柟鍘熷鍚嶇О",align: "left", width: "200", isminwidth: true},
+							{isshow: "T", field: "sell_province",name: "鍗栨柟鐪佷唤",width: "120"},
+							{isshow: "T", field: "sell_city",name: "鍗栨柟鍩庡競",width: "120"},
+							{isshow: "T", field: "sell_county",name: "鍗栨柟鍖哄幙",width: "120"},
+							{isshow: "T", field: "buy_customer_code",name: "涔版柟缂栫爜",width: "100",align: "center"},
+							{isshow: "T", field: "buy_customer_name",name: "涔版柟鍚嶇О",align: "left", width: "200", isminwidth: true},
+							{isshow: "T", field: "buy_customer_name_old",name: "涔版柟鍘熷鍚嶇О",align: "left", width: "200", isminwidth: true},
+							{isshow: "T", field: "buy_province",name: "涔版柟鐪佷唤",width: "120"},
+							{isshow: "T", field: "buy_city",name: "涔版柟鍩庡競",width: "120"},
+							{isshow: "T", field: "buy_county",name: "涔版柟鍖哄幙",width: "120"},
+							{isshow: "T", field: "product_code", name: "浜у搧缂栫爜", align: "center", width: "100"},
+							{isshow: "T", field: "product_name", name: "浜у搧鍚嶇О", align: "left", width: "180"},
+							{isshow: "T", field: "unit", name: "鍗曚綅", align: "left", width: "80", align: "center"},
+							{isshow: "T", field: "price", name: "鍗曚环", align: "right", width: "100",formatter: "formatter_money"},
+							{isshow: "T", field: "qty", name: "鏁伴噺", align: "right", width: "100"},
+							{isshow: "T", field: "amt", name: "閿�鍞噾棰�", align: "right", width: "120",formatter: "formatter_money"},
+							{isshow: "T", field: "batch_number", name: "鎵瑰彿", align: "center", width: "100"},
+						],
+						default_tableData: [
+							{
+								"year":"2023",
+								"month":"3",
+								"biz_date":"2023-01-10",
+								"sell_customer_code":"D00000030",
+								"sell_customer_name":"姹熻タ瀹忎匠椤哄尰鐤楀櫒姊版湁闄愬叕鍙�",
+								"sell_customer_name_old":"姹熻タ瀹忎匠椤哄尰鐤楀櫒姊版湁闄愬叕鍙�",
+								"sell_province":"姹熻タ鐪�",
+								"sell_city":"钀嶄埂甯�",
+								"sell_county":"瀹夋簮鍖�",
+								"buy_customer_code":"D00001165",
+								"buy_customer_name":"骞胯タ鐜嬪淇濆尰鑽俊鎭挩璇㈡湁闄愬叕鍙�",
+								"buy_customer_name_old":"骞胯タ鐜嬪淇濆尰鑽俊鎭挩璇㈡湁闄愬叕鍙�",
+								"buy_province":"骞胯タ澹棌鑷不鍖�",
+								"buy_city":"鍗楀畞甯�",
+								"buy_county":"姹熷崡鍖�",
+								"product_code":"00258",
+								"product_name":"甯冩礇鑺紦閲婅兌鍥�",
+								"unit":"鐩�",
+								"price":"13.98",
+								"qty":"100",
+								"amt":"1398",
+								"batch_number":"1001",
+							},
+							{
+								"year":"2023",
+								"month":"3",
+								"biz_date":"2022-01-15",
+								"sell_customer_code":"D00001038",
+								"sell_customer_name":"闀挎矙瑾夌編鍖荤枟鍣ㄦ璐告槗鏈夐檺鍏徃",
+								"sell_customer_name_old":"闀挎矙瑾夌編鍖荤枟鍣ㄦ璐告槗鏈夐檺鍏徃",
+								"sell_province":"婀栧崡鐪�",
+								"sell_city":"闀挎矙甯�",
+								"sell_county":"寮�绂忓尯",
+								"buy_customer_code":"D00000119",
+								"buy_customer_name":"鍚夊畨甯傚悏宸炲尯鍙岄┈鍟嗚锤鏈夐檺鍏徃",
+								"buy_customer_name_old":"鍚夊畨甯傚悏宸炲尯鍙岄┈鍟嗚锤鏈夐檺鍏徃",
+								"buy_province":"姹熻タ鐪�",
+								"buy_city":"鍚夊畨甯�",
+								"buy_county":"鍚夊窞鍖�",
+								"product_code":"00296",
+								"product_name":"甯冩礇鑺紦閲婅兌鍥�",
+								"unit":"鐩�",
+								"price":"9.98",
+								"qty":"100",
+								"amt":"998",
+								"batch_number":"1009",
+							},
+							{
+								"year":"2023",
+								"month":"3",
+								"biz_date":"2023-01-19",
+								"sell_customer_code":"D00000036",
+								"sell_customer_name":"骞垮窞寰锋眹鍚屽垱鍖荤枟鍣ㄦ鏈夐檺鍏徃",
+								"sell_customer_name_old":"骞垮窞寰锋眹鍚屽垱鍖荤枟鍣ㄦ鏈夐檺鍏徃",
+								"sell_province":"骞夸笢鐪�",
+								"sell_city":"骞垮窞甯�",
+								"sell_county":"鑽旀咕鍖�",
+								"buy_customer_code":"D00000055",
+								"buy_customer_name":"骞垮窞鍋ヨ寳鍖荤枟鍣ㄦ鏈夐檺鍏徃",
+								"buy_customer_name_old":"骞垮窞鍋ヨ寳鍖荤枟鍣ㄦ鏈夐檺鍏徃",
+								"buy_province":"骞夸笢鐪�",
+								"buy_city":"骞垮窞甯�",
+								"buy_county":"鑽旀咕鍖�",
+								"product_code":"00358",
+								"product_name":"甯冩礇鑺紦閲婅兌鍥�",
+								"unit":"鐩�",
+								"price":"15.98",
+								"qty":"100",
+								"amt":"1598",
+								"batch_number":"3001",
+							},
+							{
+								"year":"2023",
+								"month":"3",
+								"biz_date":"2023-02-09",
+								"sell_customer_code":"D00001158",
+								"sell_customer_name":"涓婃捣閫氭嘲鎱峰尰鐤楃鎶�鏈夐檺鍏徃",
+								"sell_customer_name_old":"涓婃捣閫氭嘲鎱峰尰鐤楃鎶�鏈夐檺鍏徃",
+								"sell_province":"涓婃捣甯�",
+								"sell_city":"涓婃捣甯�",
+								"sell_county":"闈掓郸鍖�",
+								"buy_customer_code":"D00000054",
+								"buy_customer_name":"骞垮窞鐟炴櫀鍖荤枟绉戞妧鏈夐檺鍏徃",
+								"buy_customer_name_old":"骞垮窞鐟炴櫀鍖荤枟绉戞妧鏈夐檺鍏徃",
+								"buy_province":"骞夸笢鐪�",
+								"buy_city":"骞垮窞甯�",
+								"buy_county":"鑽旀咕鍖�",
+								"product_code":"00278",
+								"product_name":"甯冩礇鑺紦閲婅兌鍥�",
+								"unit":"鐩�",
+								"price":"23.98",
+								"qty":"100",
+								"amt":"2398",
+								"batch_number":"1101",
+							},
+							{
+								"year":"2023",
+								"month":"3",
+								"biz_date":"2023-02-17",
+								"sell_customer_code":"D00000098",
+								"sell_customer_name":"骞垮窞绂忔簮鍖荤枟绉戞妧鏈夐檺鍏徃",
+								"sell_customer_name_old":"骞垮窞绂忔簮鍖荤枟绉戞妧鏈夐檺鍏徃",
+								"sell_province":"骞夸笢鐪�",
+								"sell_city":"骞垮窞甯�",
+								"sell_county":"鑽旀咕鍖�",
+								"buy_customer_code":"D00000039",
+								"buy_customer_name":"骞垮窞娉板皵搴疯锤鏄撴湁闄愬叕鍙�",
+								"buy_customer_name_old":"骞垮窞娉板皵搴疯锤鏄撴湁闄愬叕鍙�",
+								"buy_province":"骞夸笢鐪�",
+								"buy_city":"骞垮窞甯�",
+								"buy_county":"鑽旀咕鍖�",
+								"product_code":"01258",
+								"product_name":"甯冩礇鑺紦閲婅兌鍥�",
+								"unit":"鐩�",
+								"price":"20.98",
+								"qty":"100",
+								"amt":"2098",
+								"batch_number":"1001",
+							},
+							{
+								"year":"2023",
+								"month":"3",
+								"biz_date":"2023-02-27",
+								"sell_customer_code":"D00001165",
+								"sell_customer_name":"骞胯タ鐜嬪淇濆尰鑽俊鎭挩璇㈡湁闄愬叕鍙�",
+								"sell_customer_name_old":"骞胯タ鐜嬪淇濆尰鑽俊鎭挩璇㈡湁闄愬叕鍙�",
+								"sell_province":"骞胯タ澹棌鑷不鍖�",
+								"sell_city":"鍗楀畞甯�",
+								"sell_county":"姹熷崡鍖�",
+								"buy_customer_code":"D00000098",
+								"buy_customer_name":"骞垮窞绂忔簮鍖荤枟绉戞妧鏈夐檺鍏徃",
+								"buy_customer_name_old":"骞垮窞绂忔簮鍖荤枟绉戞妧鏈夐檺鍏徃",
+								"buy_province":"骞夸笢鐪�",
+								"buy_city":"骞垮窞甯�",
+								"buy_county":"鑽旀咕鍖�",
+								"product_code":"00258",
+								"product_name":"甯冩礇鑺紦閲婅兌鍥�",
+								"unit":"鐩�",
+								"price":"13.98",
+								"qty":"100",
+								"amt":"1398",
+								"batch_number":"1001",
+							},
+							{
+								"year":"2023",
+								"month":"3",
+								"biz_date":"2023-03-10",
+								"sell_customer_code":"D00000119",
+								"sell_customer_name":"鍚夊畨甯傚悏宸炲尯鍙岄┈鍟嗚锤鏈夐檺鍏徃",
+								"sell_customer_name_old":"鍚夊畨甯傚悏宸炲尯鍙岄┈鍟嗚锤鏈夐檺鍏徃",
+								"sell_province":"姹熻タ鐪�",
+								"sell_city":"鍚夊畨甯�",
+								"sell_county":"鍚夊窞鍖�",
+								"buy_customer_code":"D00001158",
+								"buy_customer_name":"涓婃捣閫氭嘲鎱峰尰鐤楃鎶�鏈夐檺鍏徃",
+								"buy_customer_name_old":"涓婃捣閫氭嘲鎱峰尰鐤楃鎶�鏈夐檺鍏徃",
+								"buy_province":"涓婃捣甯�",
+								"buy_city":"涓婃捣甯�",
+								"buy_county":"闈掓郸鍖�",
+								"product_code":"00258",
+								"product_name":"鏉胯摑鏍归绮�",
+								"unit":"鐩�",
+								"price":"13.98",
+								"qty":"100",
+								"amt":"1398",
+								"batch_number":"1001",
+							},
+							{
+								"year":"2023",
+								"month":"3",
+								"biz_date":"2023-03-11",
+								"sell_customer_code":"D00000055",
+								"sell_customer_name":"骞垮窞鍋ヨ寳鍖荤枟鍣ㄦ鏈夐檺鍏徃",
+								"sell_customer_name_old":"骞垮窞鍋ヨ寳鍖荤枟鍣ㄦ鏈夐檺鍏徃",
+								"sell_province":"骞夸笢鐪�",
+								"sell_city":"骞垮窞甯�",
+								"sell_county":"鑽旀咕鍖�",
+								"buy_customer_code":"D00000036",
+								"buy_customer_name":"骞垮窞寰锋眹鍚屽垱鍖荤枟鍣ㄦ鏈夐檺鍏徃",
+								"buy_customer_name_old":"骞垮窞寰锋眹鍚屽垱鍖荤枟鍣ㄦ鏈夐檺鍏徃",
+								"buy_province":"骞夸笢鐪�",
+								"buy_city":"骞垮窞甯�",
+								"buy_county":"鑽旀咕鍖�",
+								"product_code":"00258",
+								"product_name":"鏉胯摑鏍归绮�",
+								"unit":"鐩�",
+								"price":"13.98",
+								"qty":"100",
+								"amt":"1398",
+								"batch_number":"1001",
+							},
+							{
+								"year":"2023",
+								"month":"3",
+								"biz_date":"2022-03-10",
+								"sell_customer_code":"D00000054",
+								"sell_customer_name":"骞垮窞鐟炴櫀鍖荤枟绉戞妧鏈夐檺鍏徃",
+								"sell_customer_name_old":"骞垮窞鐟炴櫀鍖荤枟绉戞妧鏈夐檺鍏徃",
+								"sell_province":"骞夸笢鐪�",
+								"sell_city":"骞垮窞甯�",
+								"sell_county":"鑽旀咕鍖�",
+								"buy_customer_code":"D00001038",
+								"buy_customer_name":"闀挎矙瑾夌編鍖荤枟鍣ㄦ璐告槗鏈夐檺鍏徃",
+								"buy_customer_name_old":"闀挎矙瑾夌編鍖荤枟鍣ㄦ璐告槗鏈夐檺鍏徃",
+								"buy_province":"婀栧崡鐪�",
+								"buy":"闀挎矙甯�",
+								"buy_county":"寮�绂忓尯",
+								"product_code":"00258",
+								"product_name":"鏉胯摑鏍归绮�",
+								"unit":"鐩�",
+								"price":"13.98",
+								"qty":"100",
+								"amt":"1398",
+								"batch_number":"1001",
+							},
+							{
+								"year":"2023",
+								"month":"3",
+								"biz_date":"2022-03-10",
+								"sell_customer_code":"D00000039",
+								"sell_customer_name":"骞垮窞娉板皵搴疯锤鏄撴湁闄愬叕鍙�",
+								"sell_customer_name_old":"骞垮窞娉板皵搴疯锤鏄撴湁闄愬叕鍙�",
+								"sell_province":"骞夸笢鐪�",
+								"sell_city":"骞垮窞甯�",
+								"sell_county":"鑽旀咕鍖�",
+								"buy_customer_code":"D00000030",
+								"buy_customer_name":"姹熻タ瀹忎匠椤哄尰鐤楀櫒姊版湁闄愬叕鍙�",
+								"buy_customer_name_old":"姹熻タ瀹忎匠椤哄尰鐤楀櫒姊版湁闄愬叕鍙�",
+								"buy_province":"姹熻タ鐪�",
+								"buy_city":"钀嶄埂甯�",
+								"buy_county":"瀹夋簮鍖�",
+								"product_code":"00258",
+								"product_name":"鏉胯摑鏍归绮�",
+								"unit":"鐩�",
+								"price":"13.98",
+								"qty":"100",
+								"amt":"1398",
+								"batch_number":"1001",
+							},
+						],
+					},
+					created() {
+						this.newdate_month = dateFormat(new Date(), "yyyy骞碝M鏈�")
+						this.newdate_day = dateFormat(new Date(), "yyyy骞碝M鏈坉d鏃�")
+					},
+					
+					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.tabs.length>0){
+									me.activeTabName = me.tabs[0].code;
+								}
+								console.log(me.cbuttons_r)
+								
+								//鍒濆鍖朤abs
+								me.initTabsPage(function() {
+									//鑾峰彇鏁版嵁
+									me.initData();
+								});
+								
+								me.$nextTick(() => { // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
+									hideLoading();
+								});
+							})
+						}
+						
+						
+						// this.activeTabName = "input";
+						// //鑾峰彇鏁版嵁
+						// this.initTabsPage(function() {
+						// 	me.initData();
+						// });
+						
+						// this.$nextTick(() => { // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
+						// 	hideLoading();
+						// });
+					},
+					
+					methods:{
+						onhandleClick() {
+							this.initData();
+						},
+						
+						initData() {
+							var me = this;
+							this.doQueryByTab(function(result, callback) {//鏌ヨ鍚庣殑鍥炶皟锛岀敤浜庤幏鍙栧瓧娈电殑
+								if (result.meta && result.meta[me.selectTabObj.dataname] && result.meta[me.selectTabObj.dataname].fields) {
+									var metas = clone(result.meta[me.selectTabObj.dataname].fields);
+									var filterFields_ = [];
+									var tableFields_ = [];
+									
+									metas.map(f=>{
+										f.isshow = "T";
+										
+										if (f.isfilter) {
+											filterFields_.push(clone(f));
+										}
+										else {
+											var filter_f = clone(f);
+											filter_f.isshow = "F";
+											filterFields_.push(filter_f);
+										}
+										
+										tableFields_.push(clone(f));
+									})
+									if (!me.selectTabObj.filterFields || (me.selectTabObj.filterFields && me.selectTabObj.filterFields.length == 0)) {
+										me.selectTabObj.filterFields = clone(me.default_filterFields[me.selectTabObj.code]);
+										me.selectTabObj.tableFields = clone(me.default_tableFields);
+										
+										me.selectTabObj.filterObj = clone(me.default_filterObj[me.selectTabObj.code])
+										
+										me.selectTabObj.tableData = clone(me.default_tableData);
+										// me.selectTabObj.filterFields = clone(filterFields_);
+										// me.selectTabObj.tableFields = clone(tableFields_);
+										
+										//瀛楁鏁扮粍杞瓧娈祇bj
+										me.fieldsToFieldsObj();
+										
+										//璁剧疆瀛楁浜嬩欢
+										me.tableFieldClick();
+									}
+								}
+								
+								if (callback) {
+									callback();
+								}
+							});
+						},
+						
+						tableFieldClick() {
+							var me = this;
+							var tablefieldClick = {};
+							//琛ㄦ牸瀛楁浜嬩欢璁剧疆
+							tablefieldClick.input = {
+								code: {//瀛楁浜嬩欢璁剧疆
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: "PS-001",//涓嶅彲鐐瑰嚮鐨勫��,1銆佹槸鏁扮粍["11","22"]锛�2銆佷互鈥�;鈥濆垎闅旂殑瀛楃涓�"111;222"
+										notclick_bindfield: [],//褰撹瀛楁鍊肩瓑浜庢寚瀹氬瓧娈靛�兼椂涓嶅彲鐐瑰嚮["filterfield": "111"]
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											Root.message({
+												type: 'success',
+												message: obj.val + '鐐瑰嚮浜嬩欢'
+											}); 
+											//鎵撳紑
+											me.opentest(obj)
+										},
+									},
+								},
+							};
+							tablefieldClick.all = {
+								status: {//瀛楁浜嬩欢璁剧疆
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: "PS-001",//涓嶅彲鐐瑰嚮鐨勫��,1銆佹槸鏁扮粍["11","22"]锛�2銆佷互鈥�;鈥濆垎闅旂殑瀛楃涓�"111;222"
+										notclick_bindfield: [],//褰撹瀛楁鍊肩瓑浜庢寚瀹氬瓧娈靛�兼椂涓嶅彲鐐瑰嚮["filterfield": "111"]
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											Root.message({
+												type: 'success',
+												message: obj.val + '鐐瑰嚮浜嬩欢'
+											}); 
+											//鎵撳紑
+											me.opentest(obj)
+										},
+									},
+								},
+							};
+							
+							this.selectTabObj.tablefieldClick = tablefieldClick[this.activeTabName];
+						},
+						
+						opentest(obj) {
+							var me = this;
+							Root.message({
+								type: 'success',
+								message: '鍚庣紑鐐瑰嚮浜嬩欢'
+							});
+							
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "900px",
+								icon: "icon-product",
+								text: "琛ㄥ崟鏍蜂緥椤甸潰",
+								id: "test_page" + obj.row.id,//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/system/page/sample/sample_form.html",
+								data: obj.row,
+								delta: {},
+								sceneCode: "browse",//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+						rowClick(obj){
+							var me = this;
+							me.selectTabObj.selectedrow = obj.row;
+						},
+						
+						onAddSS() {
+							var me = this;
+							Root.message({
+								type: 'success',
+								message: '鐢宠瘔浜嬩欢'
+							});
+						}
+						
+						
+					}
+				});
+			};
+			
+			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 style="float: left;">{{title}}</span>
+					
+					<div style="float: right; margin-right: 18px;">
+						<el-button-group v-if="selectTabObj && selectTabObj.code == 'monthflow' && selectTabObj.filterObj.dition_type == '1'" style="margin-left: 3px;">
+							<el-button :disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.biz_date)" type="primary" @click="onAddSS":icon="buttonsconfig.add.icon">鐢宠瘔</el-button>
+						</el-button-group>
+						
+						<el-button-group style="margin-left: 3px;">
+							<el-button type="primary" @click="":icon="buttonsconfig.import.icon">{{buttonsconfig.import.name}}</el-button>
+							<el-button type="primary" @click="":icon="buttonsconfig.export.icon">{{buttonsconfig.export.name}}</el-button>
+						</el-button-group>
+					</div>
+					
+					<div style="float: left; margin-left: 20%;">
+						<span>鎶ュ憡鏃ユ湡锛�</span>
+						<span v-if="selectTabObj && selectTabObj.code == 'monthflow'">{{newdate_month}}</span>
+						<span v-if="selectTabObj && selectTabObj.code == 'dayflow'">{{newdate_day}}</span>
+						<el-radio-group style="margin-left: 10px;" v-if="selectTabObj && selectTabObj.filterObj && selectTabObj.code=='monthflow'" v-model="selectTabObj.filterObj.dition_type" size="mini" fill="#4cb108">
+						    <el-radio-button label="1">鍒濈増</el-radio-button>
+						    <el-radio-button label="2">缁堢増</el-radio-button>
+						</el-radio-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-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"
+							:isdraggableorder="false"
+							
+							v-on:on-query="onQuery"
+							v-on:on-init-query="onInitFilter"
+							v-on:on-edit-query="onEditFilter"
+							v-on:order-fields="orderFilterFields"
+							>
+						</h-form-filter>
+					</div>
+				</div>
+			
+				<div class="h_dialog__body">
+					<h-table
+						v-if="isRefresh && selectTabObj.tableFields"
+						ref="table1"
+						:table-fields="selectTabObj.tableFields" 
+						:table-data="default_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="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/flowStock.html b/module/flow/page/flowStock.html
new file mode 100644
index 0000000..6b18606
--- /dev/null
+++ b/module/flow/page/flowStock.html
@@ -0,0 +1,528 @@
+<!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">
+			function loadJsCss(callback) {
+				var jscss_urls = [];
+				window.top.initJsCss(document, jscss_urls, callback);
+			};
+			
+			function initVue() {
+				new TabTableVue({
+					el: "#vbody",
+					data: {
+						title: "搴撳瓨娴佸悜",
+						//Tab椤硅缃�
+						tabs_d: [
+							{code: "monthflow", name: "鏈堟祦鍚�", dataname: "sys_data_property", filterTxt: "", orderby: ""},
+							{code: "dayflow", name: "鏃ユ祦鍚�", dataname: "sys_data_property", filterTxt: "", orderby: ""},
+						],
+						
+						d_tabs: {
+							monthflow: true,
+							dayflow: true,
+						},
+						filterTxt: "1<>1",
+						tabs: [],
+						tabsobj: {},
+						newdate: "",
+						default_filterFields: {
+							monthflow: [
+								{isshow: "T", field: "year", name: "骞翠唤", type: "year", filterfield: "id", filteroperator: "="},
+								{isshow: "T", field: "month", name: "鏈堜唤", type: "month", filterfield: "id", filteroperator: "="},
+								{isshow: "T",field: "customer_code",name: "瀹㈡埛缂栫爜",filterfield: "",filteroperator: "like"},
+								{isshow: "T",field: "customer_name_old",name: "瀹㈡埛鍘熷鍚嶇О",filterfield: "",filteroperator: "like"},
+								{isshow: "T",field: "product_code",name: "浜у搧缂栫爜",filterfield: "",filteroperator: "like"},
+								{isshow: "T",field: "product_name",name: "浜у搧鍘熷鍚嶇О",filterfield: "",filteroperator: "like"},
+								{isshow: "F", field: "dition_type",name: "", filterfield: "", filteroperator: "=", 
+								type: "radio", options: [
+									{code: "1", value: "鍒濈増"},
+									{code: "2", value: "缁堢増"},
+								]},
+							],
+							
+							dayflow: [
+								{isshow: "T", field: "year", name: "骞翠唤", type: "year", filterfield: "id", filteroperator: "="},
+								{isshow: "T", field: "month", name: "鏈堜唤", type: "month", filterfield: "id", filteroperator: "="},
+								{isshow: "T",field: "customer_code",name: "瀹㈡埛缂栫爜",filterfield: "",filteroperator: "like"},
+								{isshow: "T",field: "customer_name_old",name: "瀹㈡埛鍘熷鍚嶇О",filterfield: "",filteroperator: "like"},
+								{isshow: "T",field: "product_code",name: "浜у搧缂栫爜",filterfield: "",filteroperator: "like"},
+								{isshow: "T",field: "product_name",name: "浜у搧鍘熷鍚嶇О",filterfield: "",filteroperator: "like"},
+							]
+						},
+						
+						default_filterObj: {
+							monthflow: {
+								year: new Date().getFullYear().toString(),
+								month: dateFormat(new Date(), "yyyy-MM"),
+								//month: new Date().getFullYear() + "-" + new Date().getMonth()+1,
+								dition_type: "1"
+							},
+							dayflow: {
+								year: new Date().getFullYear().toString(),
+								// month: new Date().getMonth()+1,
+								month: dateFormat(new Date(), "yyyy-MM"),
+							},
+						},
+						
+						default_tableFields: [
+							{isshow: "T", field: "year", name: "骞翠唤", align: "center",width: "80"},
+							{isshow: "T", field: "month", name: "鏈堜唤", align: "center",width: "80"},
+							{isshow: "T",field: "customer_code",name: "瀹㈡埛缂栫爜",width: "100",align: "center"},
+							{isshow: "T",field: "customer_name_old",name: "瀹㈡埛鍘熷鍚嶇О",align: "left", width: "200", isminwidth: true},
+							{isshow: "T",field: "province",name: "瀹㈡埛鐪佷唤",width: "120"},
+							{isshow: "T",field: "city",name: "瀹㈡埛鍩庡競",width: "120"},
+							{isshow: "T",field: "county",name: "瀹㈡埛鍖哄幙",width: "120"},
+							{isshow: "T",field: "product_code", name: "浜у搧缂栫爜", align: "center", width: "100"},
+							{isshow: "T", field: "product_name", name: "浜у搧鍘熷鍚嶇О", align: "left", width: "180"},
+							{isshow: "T", field: "unit", name: "鏍囧噯鍗曚綅", width: "80", align: "center"},
+							{isshow: "T", field: "unit_old", name: "鍘熷鍗曚綅", width: "80", align: "center"},
+							{isshow: "T", field: "qty", name: "鏁伴噺", align: "right", width: "100"},
+							{isshow: "T", field: "batch_number", name: "鎵瑰彿", align: "center", width: "100"},
+						],
+						default_tableData: [
+							{
+								"year":"2023",
+								"month":"3",
+								"customer_code":"D00000030",
+								"customer_name_old":"姹熻タ瀹忎匠椤哄尰鐤楀櫒姊版湁闄愬叕鍙�",
+								"province":"姹熻タ鐪�",
+								"city":"钀嶄埂甯�",
+								"county":"瀹夋簮鍖�",
+								"product_code":"00258",
+								"product_name":"鏉胯摑鏍归绮�",
+								"unit":"鐩�",
+								"unit_old":"鐩�",
+								"qty":"80",
+								"batch_number":"1001",
+							},
+							{
+								"year":"2023",
+								"month":"3",
+								"customer_code":"D00000030",
+								"customer_name_old":"姹熻タ瀹忎匠椤哄尰鐤楀櫒姊版湁闄愬叕鍙�",
+								"province":"姹熻タ鐪�",
+								"city":"钀嶄埂甯�",
+								"county":"瀹夋簮鍖�",
+								"product_code":"00258",
+								"product_name":"鏉胯摑鏍归绮�",
+								"unit":"鐩�",
+								"unit_old":"鐩�",
+								"qty":"60",
+								"batch_number":"1001",
+							},
+							{
+								"year":"2023",
+								"month":"3",
+								"customer_code":"D00000030",
+								"customer_name_old":"姹熻タ瀹忎匠椤哄尰鐤楀櫒姊版湁闄愬叕鍙�",
+								"province":"姹熻タ鐪�",
+								"city":"钀嶄埂甯�",
+								"county":"瀹夋簮鍖�",
+								"product_code":"00258",
+								"product_name":"鏉胯摑鏍归绮�",
+								"unit":"鐩�",
+								"unit_old":"鐩�",
+								"qty":"30",
+								"batch_number":"1001",
+							},
+							{
+								"year":"2023",
+								"month":"3",
+								"customer_code":"D00000030",
+								"customer_name_old":"姹熻タ瀹忎匠椤哄尰鐤楀櫒姊版湁闄愬叕鍙�",
+								"province":"姹熻タ鐪�",
+								"city":"钀嶄埂甯�",
+								"county":"瀹夋簮鍖�",
+								"product_code":"00258",
+								"product_name":"鏉胯摑鏍归绮�",
+								"unit":"鐩�",
+								"unit_old":"鐩�",
+								"qty":"30",
+								"batch_number":"1001",
+							},
+							
+							{
+								"year":"2023",
+								"month":"2",
+								"customer_code":"D00000119",
+								"customer_name_old":"鍚夊畨甯傚悏宸炲尯鍙岄┈鍟嗚锤鏈夐檺鍏徃",
+								"province":"姹熻タ鐪�",
+								"city":"鍚夊畨甯�",
+								"county":"鍚夊窞鍖�",
+								"product_code":"00258",
+								"product_name":"鏉胯摑鏍归绮�",
+								"unit":"鐩�",
+								"unit_old":"鐩�",
+								"qty":"60",
+								"batch_number":"1001",
+							},
+							{
+								"year":"2023",
+								"month":"2",
+								"customer_code":"D00000119",
+								"customer_name_old":"鍚夊畨甯傚悏宸炲尯鍙岄┈鍟嗚锤鏈夐檺鍏徃",
+								"province":"姹熻タ鐪�",
+								"city":"鍚夊畨甯�",
+								"county":"鍚夊窞鍖�",
+								"product_code":"00258",
+								"product_name":"甯冩礇鑺紦閲婅兌鍥�",
+								"unit":"鐩�",
+								"unit_old":"鐩�",
+								"qty":"55",
+								"batch_number":"1001",
+							},
+							{
+								"year":"2023",
+								"month":"2",
+								"customer_code":"D00000119",
+								"customer_name_old":"鍚夊畨甯傚悏宸炲尯鍙岄┈鍟嗚锤鏈夐檺鍏徃",
+								"province":"姹熻タ鐪�",
+								"city":"鍚夊畨甯�",
+								"county":"鍚夊窞鍖�",
+								"product_code":"00258",
+								"product_name":"甯冩礇鑺紦閲婅兌鍥�",
+								"unit":"鐩�",
+								"unit_old":"鐩�",
+								"qty":"85",
+								"batch_number":"1001",
+							},
+							{
+								"year":"2023",
+								"month":"2",
+								"customer_code":"D00000119",
+								"customer_name_old":"鍚夊畨甯傚悏宸炲尯鍙岄┈鍟嗚锤鏈夐檺鍏徃",
+								"province":"姹熻タ鐪�",
+								"city":"鍚夊畨甯�",
+								"county":"鍚夊窞鍖�",
+								"product_code":"00258",
+								"product_name":"甯冩礇鑺紦閲婅兌鍥�",
+								"unit":"鐩�",
+								"unit_old":"鐩�",
+								"qty":"69",
+								"batch_number":"1001",
+							},
+							{
+								"year":"2023",
+								"month":"2",
+								"customer_code":"D00000119",
+								"customer_name_old":"鍚夊畨甯傚悏宸炲尯鍙岄┈鍟嗚锤鏈夐檺鍏徃",
+								"province":"姹熻タ鐪�",
+								"city":"鍚夊畨甯�",
+								"county":"鍚夊窞鍖�",
+								"product_code":"00258",
+								"product_name":"甯冩礇鑺紦閲婅兌鍥�",
+								"unit":"鐩�",
+								"unit_old":"鐩�",
+								"qty":"12",
+								"batch_number":"1001",
+							},
+							{
+								"year":"2023",
+								"month":"2",
+								"customer_code":"D00000119",
+								"customer_name_old":"鍚夊畨甯傚悏宸炲尯鍙岄┈鍟嗚锤鏈夐檺鍏徃",
+								"province":"姹熻タ鐪�",
+								"city":"鍚夊畨甯�",
+								"county":"鍚夊窞鍖�",
+								"product_code":"00258",
+								"product_name":"甯冩礇鑺紦閲婅兌鍥�",
+								"unit":"鐩�",
+								"unit_old":"鐩�",
+								"qty":"965",
+								"batch_number":"1001",
+							},
+						],
+					},
+					created() {
+						this.newdate_month = dateFormat(new Date(), "yyyy骞碝M鏈�")
+						this.newdate_day = dateFormat(new Date(), "yyyy骞碝M鏈坉d鏃�")
+					},
+					
+					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.tabs.length>0){
+									me.activeTabName = me.tabs[0].code;
+								}
+								console.log(me.cbuttons_r)
+								
+								//鍒濆鍖朤abs
+								me.initTabsPage(function() {
+									//鑾峰彇鏁版嵁
+									me.initData();
+								});
+								
+								me.$nextTick(() => { // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
+									hideLoading();
+								});
+							})
+						}
+						
+						
+						// this.activeTabName = "input";
+						// //鑾峰彇鏁版嵁
+						// this.initTabsPage(function() {
+						// 	me.initData();
+						// });
+						
+						// this.$nextTick(() => { // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
+						// 	hideLoading();
+						// });
+					},
+					
+					methods:{
+						onhandleClick() {
+							this.initData();
+						},
+						
+						initData() {
+							var me = this;
+							this.doQueryByTab(function(result, callback) {//鏌ヨ鍚庣殑鍥炶皟锛岀敤浜庤幏鍙栧瓧娈电殑
+								if (result.meta && result.meta[me.selectTabObj.dataname] && result.meta[me.selectTabObj.dataname].fields) {
+									var metas = clone(result.meta[me.selectTabObj.dataname].fields);
+									var filterFields_ = [];
+									var tableFields_ = [];
+									
+									metas.map(f=>{
+										f.isshow = "T";
+										
+										if (f.isfilter) {
+											filterFields_.push(clone(f));
+										}
+										else {
+											var filter_f = clone(f);
+											filter_f.isshow = "F";
+											filterFields_.push(filter_f);
+										}
+										
+										tableFields_.push(clone(f));
+									})
+									if (!me.selectTabObj.filterFields || (me.selectTabObj.filterFields && me.selectTabObj.filterFields.length == 0)) {
+										me.selectTabObj.filterFields = clone(me.default_filterFields[me.selectTabObj.code]);
+										me.selectTabObj.tableFields = clone(me.default_tableFields);
+										
+										me.selectTabObj.filterObj = clone(me.default_filterObj[me.selectTabObj.code])
+										
+										me.selectTabObj.tableData = clone(me.default_tableData);
+										
+										// me.selectTabObj.filterFields = clone(filterFields_);
+										// me.selectTabObj.tableFields = clone(tableFields_);
+										
+										//瀛楁鏁扮粍杞瓧娈祇bj
+										me.fieldsToFieldsObj();
+										
+										//璁剧疆瀛楁浜嬩欢
+										me.tableFieldClick();
+									}
+								}
+								
+								if (callback) {
+									callback();
+								}
+							});
+						},
+						
+						tableFieldClick() {
+							var me = this;
+							var tablefieldClick = {};
+							//琛ㄦ牸瀛楁浜嬩欢璁剧疆
+							tablefieldClick.input = {
+								code: {//瀛楁浜嬩欢璁剧疆
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: "PS-001",//涓嶅彲鐐瑰嚮鐨勫��,1銆佹槸鏁扮粍["11","22"]锛�2銆佷互鈥�;鈥濆垎闅旂殑瀛楃涓�"111;222"
+										notclick_bindfield: [],//褰撹瀛楁鍊肩瓑浜庢寚瀹氬瓧娈靛�兼椂涓嶅彲鐐瑰嚮["filterfield": "111"]
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											Root.message({
+												type: 'success',
+												message: obj.val + '鐐瑰嚮浜嬩欢'
+											}); 
+											//鎵撳紑
+											me.opentest(obj)
+										},
+									},
+								},
+							};
+							tablefieldClick.all = {
+								status: {//瀛楁浜嬩欢璁剧疆
+									val: {//鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: "PS-001",//涓嶅彲鐐瑰嚮鐨勫��,1銆佹槸鏁扮粍["11","22"]锛�2銆佷互鈥�;鈥濆垎闅旂殑瀛楃涓�"111;222"
+										notclick_bindfield: [],//褰撹瀛楁鍊肩瓑浜庢寚瀹氬瓧娈靛�兼椂涓嶅彲鐐瑰嚮["filterfield": "111"]
+										onclick: function(obj) {//鏁版嵁鍊肩偣鍑讳簨浠�
+											Root.message({
+												type: 'success',
+												message: obj.val + '鐐瑰嚮浜嬩欢'
+											}); 
+											//鎵撳紑
+											me.opentest(obj)
+										},
+									},
+								},
+							};
+							
+							this.selectTabObj.tablefieldClick = tablefieldClick[this.activeTabName];
+						},
+						
+						opentest(obj) {
+							var me = this;
+							Root.message({
+								type: 'success',
+								message: '鍚庣紑鐐瑰嚮浜嬩欢'
+							});
+							
+							var config = {
+								totab: true, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "900px",
+								icon: "icon-product",
+								text: "琛ㄥ崟鏍蜂緥椤甸潰",
+								id: "test_page" + obj.row.id,//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/system/page/sample/sample_form.html",
+								data: obj.row,
+								delta: {},
+								sceneCode: "browse",//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						rowClick(obj){
+							var me = this;
+							me.selectTabObj.selectedrow = obj.row;
+						},
+						
+						onAddSS() {
+							var me = this;
+							Root.message({
+								type: 'success',
+								message: '鐢宠瘔浜嬩欢'
+							});
+						}
+						
+					}
+				});
+			};
+			
+			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 style="float: left;">{{title}}</span>
+					
+					<div style="float: right; margin-right: 18px;">
+						<el-button-group v-if="selectTabObj && selectTabObj.code == 'monthflow' && selectTabObj.filterObj.dition_type == '1'" style="margin-left: 3px;">
+							<el-button :disabled="!(selectTabObj.selectedrow && selectTabObj.selectedrow.biz_date)" type="primary" @click="onAddSS":icon="buttonsconfig.add.icon">鐢宠瘔</el-button>
+						</el-button-group>
+						<el-button-group style="margin-left: 3px;">
+							<el-button type="primary" @click="":icon="buttonsconfig.import.icon">{{buttonsconfig.import.name}}</el-button>
+							<el-button type="primary" @click="":icon="buttonsconfig.export.icon">{{buttonsconfig.export.name}}</el-button>
+						</el-button-group>
+					</div>
+					<div style="float: left; margin-left: 20%;">
+						<span>鎶ュ憡鏃ユ湡锛�</span>
+						<span v-if="selectTabObj && selectTabObj.code == 'monthflow'">{{newdate_month}}</span>
+						<span v-if="selectTabObj && selectTabObj.code == 'dayflow'">{{newdate_day}}</span>
+						<el-radio-group style="margin-left: 10px;" v-if="selectTabObj && selectTabObj.filterObj && selectTabObj.code=='monthflow'" v-model="selectTabObj.filterObj.dition_type" size="mini" fill="#4cb108">
+						    <el-radio-button label="1">鍒濈増</el-radio-button>
+						    <el-radio-button label="2">缁堢増</el-radio-button>
+						</el-radio-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-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"
+							:isdraggableorder="false"
+							
+							v-on:on-query="onQuery"
+							v-on:on-init-query="onInitFilter"
+							v-on:on-edit-query="onEditFilter"
+							v-on:order-fields="orderFilterFields"
+							>
+						</h-form-filter>
+					</div>
+				</div>
+			
+				<div class="h_dialog__body">
+					<h-table
+						v-if="isRefresh && selectTabObj.tableFields"
+						ref="table1"
+						:table-fields="selectTabObj.tableFields" 
+						:table-data="default_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="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_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..a132704
--- /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..5d5e5ce
--- /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/channel_relationship.html b/module/md/page/customer/page/channel_relationship.html
index e51535f..7b69e03 100644
--- a/module/md/page/customer/page/channel_relationship.html
+++ b/module/md/page/customer/page/channel_relationship.html
@@ -34,7 +34,7 @@
 						
 						tabs: [],
 						tabsobj: {},
-
+						isShowTab: false,
 						dataRequest: [
 							
 						],
@@ -323,12 +323,12 @@
 					<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-if="cbuttons_r.refresh" type="primary" @click="onRefreshChannelStructure" icon="el-icon-refresh-right">閲嶆柊鐢熸垚</el-button>
+							<!-- <el-button v-if="cbuttons_r.refresh" type="primary" @click="onRefreshChannelStructure" icon="el-icon-refresh-right">閲嶆柊鐢熸垚</el-button> -->
 							<el-button type="primary" @click="onDownload" :icon="buttonsconfig.export.icon">{{buttonsconfig.export.name}}</el-button>
 						</el-button-group>
 					</div>
 				</div>
-				<div>
+				<div v-show="isShowTab">
 					<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>
diff --git a/module/md/page/customer/page/customer_basic.html b/module/md/page/customer/page/customer_basic.html
index 506c8b7..31a9cb7 100644
--- a/module/md/page/customer/page/customer_basic.html
+++ b/module/md/page/customer/page/customer_basic.html
@@ -87,7 +87,8 @@
 						
 						formFields: [],
 						formFields_criteria: [],
-						
+						fileobj: {},
+						ocrobj: {},
 						formData: {},
 						formData_criteria: {},
 						formData1:[],
@@ -556,39 +557,170 @@
 								}
 							});
 						},
-						uploadFileFun_file(one,fileList,type) {
-							var me = this; 
-							me.imgLoading = true
-							me.imgurl =URL.createObjectURL(one.raw) //淇濇寔鏂囦欢鍦ㄦ湰绐楀彛锛屽惁鍒欎細鍔犺浇澶辫触
-							// me.imgurl = one.url
-							// console.log(one+fileList+type)
-					
+						uploadFileFun_file(one, fileList, type) {
+						    let me = this;
+						    let formData = new FormData()
+						    formData.append("category" , "org");
+						    formData.append("oneFile" , one.raw);
+						    
+						    formData.append("id", me.formData.id);
+						    formData.append("dataName", "md_org_register");
+						    formData.append("field_fileName", "file_name_certificate_original");
+						    formData.append("field_fileId", "file_certificate_original");
+						    
+						    me.imgLoading = true;
+						    uploadFileOCR("bizLicense", me, formData, function(result_){
+						        var form_data_ = {};
+						        
+						        if (result_.data && result_.data.data &&  result_.data.data.upload && result_.data.data.ocr && result_.data.data.ocr.operator) {
+						            var file_ = result_.data.data.upload;
+						            var ocr_ = result_.data.data.ocr;
+						            
+						            if (typeof(ocr_.content)=="string") {
+						                ocr_.content = JSON.parse(ocr_.content);
+						            }
+						            
+						            for (var k in ocr_.content) {
+						                // var v_ = decodeURI(ocr_[k]);
+						                var v_ = ocr_.content[k];
+						                if ( "string" == typeof v_) {
+						                    //鍘婚櫎涓ょ鐨勭┖鏍�
+						                    v_ = v_.replace(/(^\s*)|(\s*$)/g, "");
+						                    //鍘婚櫎涓棿鐨勫洖杞︽崲琛�
+						                    v_ = v_.replace(/[\r\n]/g,"");
+						                    //鍘婚櫎涓棿鎵�鏈�"
+						                    v_ = v_.replace(/\"/g,"");
+						                }
+						                form_data_[k] = v_;
+						            }
+						            
+						            me.fileobj = file_;
+						            me.ocrobj = form_data_;
+						            console.log("璇嗗埆淇℃伅",form_data_);
+						            me.imgurl = config.url_root + "root/file/getFile?category=org&token=" + Root.getToken() + "&id=" + file_.indexid;
+						        }
+						        else {
+						            me.$message({
+						                type:"warning",
+						                message:"璇嗗埆澶辫触"
+						            })
+						        }
+						        
+						        if (me.ocrobj.validToDate) {
+						            var txt = me.ocrobj.validToDate;
+						            me.ocrobj.validToDate = me.newOcrDate(txt);
+						        }
+						        
+						        if (me.ocrobj.validFromDate) {
+						            var txt = me.ocrobj.validFromDate;
+						            me.ocrobj.validFromDate = me.newOcrDate(txt);
+						        }
+						        
+						        var from_ = clone(me.formData);
+						        console.log(form_data_);
+						        // from_.register_address = form_data_.Address || null;
+						        // from_.certificate_no = me.ocrobj.RegNum || null; // 钀ヤ笟鎵х収-璇佺収缂栧彿
+						        // from_.name = form_data_.Name;
+						        // from_.certificate_date_from = form_data_.SetDate;
+						        // from_.certificate_date_to = form_data_.Period;
+						        // from_.certificate_legal_representative = form_data_.Person;
+						        // from_.certificate_scope = form_data_.Business;
+						
+						        from_.register_address = form_data_.businessAddress || null;
+						        from_.license_business_no = me.ocrobj.creditCode || null; // 钀ヤ笟鎵х収-璇佺収缂栧彿
+						        from_.license_business_name = form_data_.companyName;
+						        from_.license_business_date_from = form_data_.validFromDate;
+						        from_.license_business_date_to = form_data_.validToDate;
+						        from_.certificate_legal_representative = form_data_.legalPerson;
+						        from_.certificate_scope = form_data_.businessScope;
+						        
+						        me.formData = from_;
+						        
+						        me.imgLoading = false;
+						        
+						    }, function() {
+						        me.$message({
+						            type:"warning",
+						            message:"璇嗗埆澶辫触"
+						        })
+						        me.imgLoading = false;
+						    });
 						},
+						
+						newOcrDate(txt) {
+						    var txtList = txt.split("鑷�");
+						    if(txtList[0] == "骞存湀鏃�"){
+						        txt = "2099-12-31";
+						    }
+						    else {
+						        if (txtList.length > 1) {
+						            if(txtList[1].indexOf("闀挎湡") != -1 || txtList[1].indexOf("姘镐箙") != -1 || txtList[1].indexOf("涓嶇害瀹氭湡闄�") != -1){//涓嶇害瀹氭湡闄�
+						                txt = "2099-12-31";
+						            }
+						            else {
+						                txt = txtList[1];
+						                
+						                txt = txt.replace("骞�", "-");
+						                txt = txt.replace("鏈�", "-");
+						                txt = txt.replace("鏃�", "");
+						                var datas_ = txt.split("-");
+						                var txt_ = "";
+						                datas_.map(d=>{
+						                    d = d * 1;
+						                    if (txt_ == "") {
+						                        txt_ = d;
+						                    }
+						                    else {
+						                        txt_ += "-" + d;
+						                    }
+						                })
+						                txt = txt_.toString();
+						                if(txt && txt.search && txt.search(/^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$/) == -1) {
+						                    txt = ""
+						                }
+						                //licenceObj_[k] = txt;
+						            }
+						        }
+						        else if (txtList.length == 1) {
+						            txt = txtList[0];
+						            if(txt.indexOf("闀挎湡") != -1 || txt.indexOf("姘镐箙") != -1 || txt.indexOf("涓嶇害瀹氭湡闄�") != -1){
+						                txt = "2099-12-31";
+						            }
+						            if (txt.indexOf("骞�") != -1) {
+						                var Date = txt.replace("骞�", "-").replace("鏈�", "-").replace("鏃�", "");
+						                txt = Date;
+						            } else if (txt.length == 8) {
+						                var Date = txt.slice(0, 4) + "-" + txt.slice(4, 6) + "-" + txt.slice(6, 8);
+						                txt = Date;
+						            } else {
+						                txt = "";
+						            }
+						
+						            if(txt && txt.search && txt.search(/^[0-9]{4}-[0-9]{1,2}-[0-9]{1,2}$/) == -1) {
+						                txt = ""
+						            }
+						        }
+						    }
+						    return txt;
+						},
+						
 						showThumbnail(file, type, num) {
-							var me = this;
-                            
-                            if(num == "2"){
-                                return me.fileUrl;
-                            }
-                            if(type == "pic") {
-                                return file.url;
-                            }
-							console.log(file)
-                            // var me = this;
-                            
-                            // if(num == "2"){
-                            //     return me.fileUrl;
-                            // }
-                            // if(type == "pic") {
-							// 	me.imgurl = file.url
-                            //     return file.url;
-                            // }
-                            
-                        },
+						    var me = this;
+						    
+						    if(num == "2"){
+						        return me.fileUrl;
+						    }
+						    if(type == "pic") {
+						        return file.url;
+						    }
+						},
+						
 						delyyzz() {//鍒犻櫎钀ヤ笟鎵х収
 							var me = this;
-                            me.imgurl = "";
-							me.formData1 = []
+							me.imgurl = "";
+							if (me.fileobj.indexid) {
+								me.fileobj.indexid = ""
+							}
 						},
 						
 						//鎻愪氦
@@ -907,29 +1039,33 @@
 					</div>	
 					<div :style="{height: dheight + 'px', 'overflow-y': 'auto'}">
 					<!-- <div style="position: absolute; top:40px; bottom: 50px; left: 0px; right: 0px;  overflow-y: auto;"> -->
-						<div class="el-dialog__body" style="width: 20%; float: left;">
-							<el-image 
-								v-if="imgurl.length>0" 
-								:style="{width: '100%', 'max-height': dheight + 'px'}" 
-								:src="imgurl"
-								:preview-src-list="[imgurl]">
-							</el-image>
-							<el-upload
-								v-else-if="!imgurl"
-								class="ocr_img"
-								action="#" style="margin-top: 15px;margin-bottom: 15px;" accept="image/jpeg,image/gif,image/png"
-								ref="reportUpload1" list-type="picture-card" :file-list="formData1"
-								:on-change="(file, fileList) => {uploadFileFun_file(file, fileList, '1')}" :auto-upload="false">
-								<!-- <i slot="default" class="el-icon-plus"></i> -->
-								<span style="font-size: 14px; color: #909399;">钀ヤ笟鎵х収涓婁紶</span>
-								<div slot="file" slot-scope="{file}">
-									<img class="el-upload-list__item-thumbnail" :src="showThumbnail(file, 'pic', '1')" alt="">
-								</div>
-							</el-upload>
-							<el-button v-if="imgurl" size="small" type="danger" @click="delyyzz">鍒犻櫎钀ヤ笟鎵х収</el-button>
+						<div v-loading.fullscreen.lock="imgLoading" element-loading-text="OCR璇嗗埆涓�" style="width: 30%; float: left; overflow: hidden;">
+						    <el-image 
+						        v-if="imgurl && !imgLoading"
+						        :style="{width: '100%', 'max-height': dheight - 50 + 'px'}"
+						        :src="imgurl" 
+						        :preview-src-list="[imgurl]">
+						    </el-image>
+						      
+						    <div v-else-if="!imgLoading && (isedit || isrefuseedit)" class="ocr_img">
+						        <el-upload action="#" style="margin-top: 15px;margin-bottom: 15px;"
+						        accept="image/jpeg,image/gif,image/png"
+								ref="reportUpload1"
+						        list-type="picture-card" 
+						        :file-list="formData1.mdm_img"
+						        :on-change="(file, fileList) => {uploadFileFun_file(file, fileList, '1')}"
+						        :auto-upload="false">
+						            <!-- <i slot="default" class="el-icon-plus"></i> -->
+						            <span style="font-size: 14px; color: #909399;">钀ヤ笟鎵х収涓婁紶</span>
+						            <div slot="file" slot-scope="{file}">
+						                <img class="el-upload-list__item-thumbnail" :src="showThumbnail(file, 'pic', '1')" alt="">
+						            </div>
+						        </el-upload>
+						    </div>
+						    <el-button v-if="imgurl && (isedit || isrefuseedit)" size="small" type="danger" @click="delyyzz">鍒犻櫎钀ヤ笟鎵х収</el-button>
 						</div>
 
-						<div class="el-dialog__body" style="width: 79%; float: right;">
+						<div class="el-dialog__body" style="width: 69%; float: right;">
 							<h-form
 								ref="form1"
 								:form-attr="formAttr"
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..f78b671 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,30 @@
 											f.isshow = "T";
 										}
 										
-										tableFields_.push(clone(f));
+										// 鎺堟潈鍖婚櫌鏄惁鍖呭惈鎸囨爣璁剧疆
+										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));
+										}
+										
+										if (f.isshow == "T") {
+											tableFields_.push(clone(f));
+										}
+										
 									})
 									tab.tableFields = clone(tableFields_);
 									tab.tableData = clone(datas[tab.dataname]);
@@ -1128,7 +1152,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 +1357,8 @@
 												row_.category_name = selectoption.name;
 												// 鑾峰彇鍗忚绫诲瀷瀵瑰簲鐨勬ā鏉�
 												me.getTemplateByCategoryId(selectoption.id);
+												
+												me.setTabModuleByCategory(selectoption);
 											}
 											
 											me.formData = clone(row_);
@@ -1729,6 +1756,55 @@
 								}
 							})
 						},
+						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";
+										}
+									}
+									
+									if (f.isshow == "T") {
+										tableFields_.push(clone(f));
+									}
+								})
+								// 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 +2224,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/customer/page/customer_list_authorization.html b/module/md/page/customer/page/customer_list_authorization.html
index 9ab94e0..d5ab6e1 100644
--- a/module/md/page/customer/page/customer_list_authorization.html
+++ b/module/md/page/customer/page/customer_list_authorization.html
@@ -18,11 +18,11 @@
 						title: "鎺堟潈绠$悊",
 						//Tab椤硅缃�
 						tabs_d: [
-							{code: "agmAll", name: "鍚堝悓鍖婚櫌姹囨��", dataname: "md_org_account_hospital", filterTxt: "agreement_id is not null and (md_org_account_hospital.state_code='Open' or md_org_account_hospital.state_code='Closed')", orderby: "md_org_account_hospital.date_to"},
+							{code: "agmAll", name: "鍗忚鍖婚櫌", dataname: "md_org_account_hospital", filterTxt: "agreement_id is not null and (md_org_account_hospital.state_code='Open' or md_org_account_hospital.state_code='Closed')", orderby: "md_org_account_hospital.date_to"},
 							// {code: "Input", name: "鎺堟潈鐢宠", dataname: "md_org_account_hospital_apply", filterTxt: "(state_code='Input' or state_code='OpeningApproval')", orderby: "md_org_account_hospital_apply.date_to"},
 							// {code: "Open", name: "鐢熸晥", dataname: "md_org_account_hospital", filterTxt: "apply_id is not null and md_org_account_hospital.state_code='Open'", orderby: "md_org_account_hospital.date_to"},
 							// {code: "Close", name: "缁堟", dataname: "md_org_account_hospital", filterTxt: "apply_id is not null and md_org_account_hospital.state_code='Closed'", orderby: "md_org_account_hospital.date_to"},
-							{code: "All", name: "闈炲崗璁尰闄㈠妗�", dataname: "md_org_account_hospital", filterTxt: "apply_id is not null and (md_org_account_hospital.state_code='Open' or md_org_account_hospital.state_code='Closed')", orderby: "md_org_account_hospital.date_to"},
+							{code: "All", name: "闈炲崗璁尰闄�", dataname: "md_org_account_hospital", filterTxt: "apply_id is not null and (md_org_account_hospital.state_code='Open' or md_org_account_hospital.state_code='Closed')", orderby: "md_org_account_hospital.date_to"},
 						],
 						d_tabs: {
 							Input: true,
diff --git a/module/md/page/customer/page/evaluation_management.html b/module/md/page/customer/page/evaluation_management.html
index c398eb9..14af912 100644
--- a/module/md/page/customer/page/evaluation_management.html
+++ b/module/md/page/customer/page/evaluation_management.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;
@@ -80,6 +80,8 @@
 							// },
 						],
 						dataRequestObj: {},
+						
+						isShowTab: false,
 					},
 					created() {},
 					
@@ -351,7 +353,7 @@
 						</el-button-group>
 					</div>
 				</div>
-				<div>
+				<div v-show="isShowTab">
 					<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>
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..b4981b4 100644
--- a/module/md/page/terminal/page/hospital_list.html
+++ b/module/md/page/terminal/page/hospital_list.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,10 +15,11 @@
 				pageVue = new TabTableVue({
 					el: "#vbody",
 					data: {
-						title: "鍖婚櫌绠$悊",
+						title: "杈栧尯缁堢",
 						//Tab椤硅缃�
 						tabs_d: [
-							{code: "hospital", name: "杈栧尯鍖婚櫌", dataname: "md_position_hospital", filterTxt: "", orderby: "md_position_hospital.update_time desc"},
+							{code: "hospital", name: "杈栧尯缁堢", dataname: "md_position_hospital", filterTxt: "", orderby: "md_position_hospital.update_time desc"},
+							{code: "linkpharmacy", name: "鍏宠仈鑽簵", dataname: "md_position_hospital_pharmacy", filterTxt: "", orderby: "md_position_hospital_pharmacy.update_time desc"},
 							// {code: "hospital", name: "杈栧尯鍖婚櫌鐢宠", dataname: "md_position_hospital", filterTxt: " (md_position_hospital.state_code='Input' or md_position_hospital.state_code='OpeningApproval')", orderby: "update_time desc"},
 							// {code: "infoAll", name: "杈栧尯鍖婚櫌", dataname: "md_position_hospital", filterTxt: "md_position_hospital.state_code='Open'", orderby: "update_time desc"},
 						],
@@ -232,6 +233,34 @@
 									},
 								}
 							};
+							var tablefieldClick_linkpharmacy = {
+								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_info = {
 								//waiting
@@ -369,6 +398,10 @@
 							if (this.selectTabObj.code == "hospital") {
 								this.selectTabObj.tablefieldClick = tablefieldClick_hospital;
 							}
+							// 鍏宠仈鑽簵
+							else if (this.selectTabObj.code == "linkpharmacy") {
+								this.selectTabObj.tablefieldClick = tablefieldClick_linkpharmacy;
+							}
 							//杈栧尯鏂板/鍙樻洿-杈栧尯瀹℃壒涓�佸叏閮ㄨ緰鍖虹敵璇穞ab
 							else if (this.selectTabObj.code == "infoUnderApproval" || this.selectTabObj.code == "infoAll") {
 								this.selectTabObj.tablefieldClick = tablefieldClick_info;
@@ -441,7 +474,86 @@
 									}
 								}
 							];
-							
+							tablebuttonClick.linkpharmacy = [
+								{
+									// 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.openLinkpharmacy('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.openLinkpharmacy('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.openLinkpharmacy('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.openLinkpharmacy('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.infoUnderApproval = [
 								{
 									isbuttonshow:  me.cbuttons_r.formdetail ? me.cbuttons_r.formdetail : false,type:"primary",
@@ -538,6 +650,41 @@
 									message: '宸插彇娑�'
 								});          
 							});
+						},
+						
+						openLinkpharmacy(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);
 						},
 						
 						openPolicy(sceneCode, row) {
@@ -964,7 +1111,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);
+						},
+						
 					}
 				});
 			};
@@ -994,7 +1166,8 @@
 					<span>{{title}}</span>
 
 					<div style="float: right;">
-						<el-button-group style="margin-left: 3px">
+						<el-button-group v-if="selectTabObj && selectTabObj.code == 'hospital'" 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/report/page/channelCustomerLayoutStructure.html b/module/report/page/channelCustomerLayoutStructure.html
new file mode 100644
index 0000000..9c424a6
--- /dev/null
+++ b/module/report/page/channelCustomerLayoutStructure.html
@@ -0,0 +1,1145 @@
+<!DOCTYPE html>
+<html>
+	<head> 
+		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+		<title>娓犻亾瀹㈡埛甯冨眬缁撴瀯</title>
+	</head>
+
+	<body>
+		<style type="text/css">
+			h5,ul,h1 {
+				margin: 0;
+				padding: 0;
+			}
+			li {
+				list-style: none;
+			}
+		</style>
+		<div v-cloak id="hbody" class="h_body" style="margin: 0;padding: 0;">
+			<div ref="ref_header" class="v_header">
+			</div>
+			<div ref="ref_main" class="v_main" style="padding: 0px 36px;">
+				<!-- <h1 style="font-weight: 600;color: #3A63A6;">娓犻亾瀹㈡埛甯冨眬缁撴瀯</h1> -->
+				<div style="display: flex;justify-content: flex-start;width: 100%;height: 100%;">
+					<div style="width: 50%;height: 100%;">
+						<h3 style="font-weight: 600;color: #3A63A6;text-align: center;">娓犻亾瀹㈡埛甯冨眬缁撴瀯</h3>
+						<div style="width: 100%;height: 10px;background-color: #3A63A6;"></div>
+						<div style="width: 100%;height: 50%;display: flex;justify-content: flex-start;">
+							<div style="width: 49%;height: 100%;">
+								<div id = "clientAmount" style = "width:100%; height:100%;" ></div>
+							</div>
+							<div style="width: 1%;background-color: #3A63A6;height: 100%;margin-top: 15px;"></div>
+							<div style="width: 49%;height: 100%;">
+								<div id = "ytd" style = "width: 100%; height: 100%;" ></div>
+							</div>
+						</div>
+						<div style="width: 100%;height: 40%;display: flex;justify-content: flex-start;">
+							<div style="width: 49%;height: 100%;">
+								<div id = "time" style = "width: 100%; height: 100%;" ></div>
+							</div>
+							<div style="width: 49%;height: 100%;">
+								<div id = "product" style = "width: 100%; height: 100%;" ></div>
+							</div>
+						</div>
+					</div>
+					<div style="width: 6%;height: 100%;"></div>
+					<div style="width: 50%;height: 100%;">
+						<h3 style="font-weight: 600;color: #3A63A6;text-align: center;">娓犻亾瀹㈡埛灞炴��</h3>
+						<div style="width: 100%;height: 10px;background-color: #3A63A6;"></div>
+						<div style="width: 100%;height: 50%;display: flex;justify-content: flex-start;">
+							<div style="width: 98%;height: 100%;overflow: hidden!important;">
+								<div id = "propertyCa" style = "width: 100%; height: 100%;" ></div>
+							</div>
+							<!-- <div style="width: 1%;background-color: #3A63A6;height: 100%;margin-top: 15px;"></div>
+							<div style="width: 49%;height: 100%;">
+								<div id = "propertyYtd" style = "width: 100%; height: 100%;" ></div>
+							</div> -->
+						</div>
+						<div style="width: 100%;height: 40%;display: flex;justify-content: flex-start;">
+							<div style="width: 49%;height: 100%;">
+								<div id = "propertyType" style = "width: 100%; height: 100%;" ></div>
+							</div>
+							<div style="width: 49%;height: 100%;">
+								<div id = "propertyProduct" style = "width: 100%; height: 100%;" ></div>
+							</div>
+						</div>
+					</div>
+				</div>
+				<div style="width: 100%;height: 30px;"></div>
+			</div>
+		</div>
+		
+		<script type="text/javascript">
+			function loadJsCss(callback) {
+				var jscss_urls = [
+					{id: "js6", type: "js", url: "root/js/echarts.js"},
+				];
+				window.top.initJsCss(document, jscss_urls, callback);
+			}
+		
+			function initVue() {
+				new BasicsVue({
+					el: "#hbody",
+					data: {
+						radio1: '鎬婚噺',
+						radio2: '浜у搧',
+						cardtablist: [
+							// {id: "6-5-2-2-1", type: "cardtab", name: "鏂板鍗忎細鏅哄簱", icon:"", img: "../../img/page/associationLibraryList.png", enname:"", url: "../../page/flow_manage/addAssociationLibraryList.html", parentid: "1", opentype: "add"},
+							// {id: "2-1-2", type: "cardtab", name: "涓ぎ涓撳搴�", icon:"", img: "../../img/page/icon_open@2x.png", enname:"", url: "../../page/flow_manage/centralfileList.html", parentid: "2", opentype: "add"},
+						],
+						page_url: "",
+						rowkey: "id",
+						dataname: "",
+						module_title: "",
+						tableHeight: 500,
+						filterAttr: {
+							columnnumber: 4,
+							labelwidth: "100px",
+							labelposition: "left",//"left",//"right",
+							size: "medium",
+							borderleft: "0px solid #c6c6c600",
+							bordertop: "8px solid #c6c6c600",
+							borderright: "0px solid #c6c6c600",
+							borderbottom: "0px solid #c6c6c600",
+							border: "3px solid #c6c6c600"
+						},
+						formButton: {
+							query: true,
+							empty: true,
+							add: false,
+							import: false,
+							export: false
+						},
+						filterObj: {},
+						filterFieldsObj: {},
+						filterFields: [
+							{isshow: "T",fieldname: "province", field: "province", name: "鐪佷唤", type: "select"},
+							{isshow: "T", fieldname: "city",field: "city",name: "鍩庡競", type: "select"},
+							// {isshow: "T", field: "field1", name: "瀹㈡埛缂栧彿", type: "select"},
+							// {isshow: "T", field: "name", fieldname: "name", name: "瀹㈡埛鍚嶇О", fieldtype: "like", type: "select"},
+							// {isshow: "T", field: "creator_name", fieldname: "creator_name", name: "瀹㈡埛灞炴��", fieldtype: "like"},
+							// {isshow: "T", field: "createtime", name: "鏄惁鍚敤",fieldtype: "inScopeInclude"},
+						],
+						
+						//Tab椤�
+						activeName: "code1",
+						wrapStyle: "",
+						viewStyle: "",
+						
+						tabList: [
+							{code: "code1", name: "鍒楄〃"},
+						],
+						tabsObj: {
+							code1: true,
+						},
+						
+						isRefresh: true,
+						pagesize: 10,
+						pagenum: 0,
+						total: 0,
+						orderby:"createtime desc",
+					},
+					created() {
+						var me = this;
+						this.popupParames = clone(Root.popupParames);
+						
+					},
+				
+					mounted() {
+						var me = this;
+						// this.initData();
+						this.$nextTick(function() {
+							let w_ = this.$refs.ref_header.offsetWidth;
+							let h_ = this.$refs.ref_header.offsetHeight;
+							//let h_ = 0;
+							let clientHeight = document.documentElement.clientHeight;
+							var m_h = clientHeight - h_ - 10;
+							this.tableHeight = clientHeight - h_ - 252;
+							
+							this.wrapStyle = "overflow-y: auto; width: 100%; height: " + (m_h - 50) + "px";
+							this.viewStyle = "max-height: " + (m_h - 50) + "px";
+							this.$refs.ref_main.style.height = m_h + "px";
+							//this.$refs.ref_v_body.style.height = m_h + "px";
+						})
+						setTimeout(function(){
+							me.clientAmount();
+							me.ytd();
+							me.time();
+							me.product();
+							me.propertyCa();
+							// me.propertyYtd();
+							me.propertyType();
+							me.propertyProduct();
+						},500);
+						
+					},
+					methods: {
+						//娓犻亾瀹㈡埛甯冨眬缁撴瀯鈥斺�旀寜瀹㈡埛鏁�
+						clientAmount(){
+							var caDom = document.getElementById('clientAmount');
+							var caChart = echarts.init(caDom);
+										
+							var caOption = {
+								color:['Salmon','LightSalmon','Orange','Gold','LimeGreen'],
+								title:{
+									text:'鎸夊鎴锋暟',
+									left:'center'
+								},
+								tooltip: {
+									trigger: 'item'
+								},
+								legend: {
+									top:'bottom',
+									left: 'center',
+									// right: 'right',
+								},
+								series: [
+									{
+									name: '鎸夊鎴锋暟',
+									type: 'pie',
+									radius: ['40%', '70%'],
+									center: ['45%', '50%'],
+									avoidLabelOverlap: false,
+									itemStyle: {
+										borderRadius: 10,
+										borderColor: '#fff',
+										borderWidth: 2,
+									},
+									label: {
+										show: true,
+										position: 'inner',
+										formatter:'{d}%'
+									},
+									emphasis: {
+										label: {
+										show: true,
+										fontSize: '40',
+										fontWeight: 'bold'
+										}
+									},
+									labelLine: {
+										show: true
+									},
+									data: [
+										{ value: 1048, name: '涓�绾у晢' },
+										{ value: 735, name: '浜岀骇鍟�' },
+										{ value: 580, name: 'DTP鑽埧' },
+										{ value: 484, name: '闄㈣竟搴�' },
+										{ value: 300, name: '鍖婚櫌鑷垂鑽埧' }
+									]
+									}
+								]
+							};
+							caChart.setOption(caOption);
+						},
+						
+						//娓犻亾瀹㈡埛甯冨眬鈥斺�旀寜YTD绾攢浠介
+						ytd(){
+							var ytdDom = document.getElementById('ytd');
+							var ytdChart = echarts.init(ytdDom);
+							
+							var ytdOption = {
+							  color:['CornflowerBlue','Orange','Gold','LimeGreen','LightBlue'],
+							  title:{
+							      text:'鎸塝TD绾攢浠介',
+							      left:'center'
+							  },
+							  tooltip: {
+							      trigger: 'item'
+							  },
+							  legend: {
+							      top:'bottom',
+							      left: 'center',
+							      // orient:'vertical'
+							  },
+							  series: [
+							      {
+							      name: '鎸塝TD绾攢浠介',
+							      type: 'pie',
+							      radius: ['40%', '70%'],
+							      center: ['55%', '50%'],
+							      avoidLabelOverlap: false,
+							      itemStyle: {
+							          borderRadius: 10,
+							          borderColor: '#fff',
+							          borderWidth: 2
+							      },
+							      label: {
+							          show: true,
+							          position: 'inner',
+							          formatter:'{d}%'
+							      },
+							      emphasis: {
+							          label: {
+							          show: true,
+							          fontSize: '40',
+							          fontWeight: 'bold'
+							          }
+							      },
+							      labelLine: {
+							          show: true
+							      },
+							      data: [
+							          { value: 10418, name: '鍖荤枟鏈烘瀯' },
+							          { value: 5180, name: 'DTP鑽埧' },
+							          { value: 4814, name: '闄㈣竟搴�' },
+							          { value: 1300, name: '鍖婚櫌鑷垂鑽埧' },
+							          { value: 7135, name: '鍏朵粬' },
+							      ]
+							      }
+							  ]
+							};
+							ytdChart.setOption(ytdOption);
+							
+						},
+						
+						//娓犻亾瀹㈡埛甯冨眬缁撴瀯鈥斺��2.1bar&time
+						time(){
+							var timeDom = document.getElementById('time');
+							var timeChart = echarts.init(timeDom);
+							
+							var timeOption = {
+							  color:['CornflowerBlue','Orange','Gold','LimeGreen','LightBlue'],
+							  tooltip: {
+							      trigger: 'axis',
+							      show: true,
+							      axisPointer: {
+							      // axis: 'y',
+							      // Use axis to trigger tooltip
+							      type: 'shadow' ,// 'shadow' as default; can also be 'line' or 'shadow'
+							      // label: {
+							      //   show: true,
+							      //   formatter:function(params){
+							      //     return params.value + '%';
+							      //   }
+							      // },
+							      },
+							  },
+							  legend: {
+							      show:false
+							  },
+							  grid: {
+							      left: '3%',
+							      right: '4%',
+							      bottom: '3%',
+							      containLabel: true
+							  }, 
+							  xAxis: {
+							      type: 'category',
+							      data: ['2021.05', '2021.06','2021.07', '2021.08', '2021.09', '2021.10', '2021.11', '2021.12', '2022.01', '2022.02', '2022.03', '2022.04', '2022.05']
+							  },
+							  yAxis: {
+							      type: 'value',
+							      axisLabel: {
+							      formatter: '{value}%'
+							      }
+							  },
+							  series: [
+							      {
+							      name: '鍏珛涓夌敳',
+							      type: 'bar',
+							      stack: 'total',
+							      label: {
+							          show: false,
+							          formatter:function(params){
+							          return params.value;
+							          }
+							      },
+							      tooltip: {
+							          valueFormatter: function (value) {
+							          return value + '%';
+							          }
+							      },
+							      emphasis: {
+							          focus: 'series'
+							      },
+							      data: [31, 16, 40, 15, 42, 14, 10, 20, 30 , 40 , 25, 10,25]
+							      },
+							      {
+							      name: '鍏珛涓変箼',
+							      type: 'bar',
+							      stack: 'total',
+							      label: {
+							          show: false,
+							          formatter:function(params){
+							          return params.value;
+							          }
+							      },
+							      tooltip: {
+							          valueFormatter: function (value) {
+							          return value + '%';
+							          }
+							      },
+							      emphasis: {
+							          focus: 'series'
+							      },
+							      data: [12, 12, 11, 14, 9, 13, 11, 15, 10, 5, 15, 15, 20]
+							      },
+							      {
+							      name: '鍏珛浜岀敳',
+							      type: 'bar',
+							      stack: 'total',
+							      label: {
+							          show: false,
+							          formatter:function(params){
+							          return params.value;
+							          }
+							      },
+							      tooltip: {
+							          valueFormatter: function (value) {
+							          return value + '%';
+							          }
+							      },
+							      emphasis: {
+							          focus: 'series'
+							      },
+							      data: [22, 18, 19, 23, 29, 13, 20, 10, 15, 10 , 10, 15, 20]
+							      },
+							      {
+							      name: '鍏朵粬鏈烘瀯',
+							      type: 'bar',
+							      stack: 'total',
+							      label: {
+							          show: false,        
+							          formatter:function(params){
+							          return params.value;
+							          }
+							      },
+							      tooltip: {
+							          valueFormatter: function (value) {
+							          return value + '%';
+							          }
+							      },
+							      emphasis: {
+							          focus: 'series',
+							      },
+							      data: [15, 22, 21, 14, 10, 30, 39, 30, 25, 20, 15, 25, 15]
+							      },
+							      {
+							      name: '绉佺珛鍖婚櫌',
+							      type: 'bar',
+							      stack: 'total',
+							      label: {
+							          show: false,
+							          formatter:function(params){
+							          return params.value;
+							          }
+							      },
+							      tooltip: {
+							          valueFormatter: function (value) {
+							          return value + '%';
+							          }
+							      },
+							      emphasis: {
+							          focus: 'series'
+							      },
+							      data: [20, 32, 9, 34, 10, 30, 20, 25,20, 25, 35, 35, 20]
+							      }
+							  ]
+							};
+							timeChart.setOption(timeOption);
+						},
+						
+						//娓犻亾瀹㈡埛甯冨眬-2.2bar
+						product(){
+							var productDom = document.getElementById('product');
+							var productChart = echarts.init(productDom);
+							
+							var productOption = {
+							  color:['CornflowerBlue','Orange','Gold','LimeGreen','LightBlue'],
+							  tooltip: {
+							      trigger: 'axis',
+							      show: true,
+							      axisPointer: {
+							      // axis: 'y',
+							      // Use axis to trigger tooltip
+							      type: 'shadow' ,// 'shadow' as default; can also be 'line' or 'shadow'
+							      // label: {
+							      //   show: true,
+							      //   formatter:function(params){
+							      //     return params.value + '%';
+							      //   }
+							      // },
+							      },
+							  },
+							  legend: {
+							      show:false
+							  },
+							  grid: {
+							      left: '3%',
+							      right: '4%',
+							      bottom: '3%',
+							      containLabel: true
+							  }, 
+							  xAxis: {
+							      type: 'category',
+							      data: ['浜у搧A', '浜у搧B','浜у搧C', '浜у搧D']
+							  },
+							  yAxis: {
+							      type: 'value',
+							      axisLabel: {
+							          formatter: '{value}%'
+							      }
+							  },
+							  series: [
+							      {
+							      name: '鍏珛涓夌敳',
+							      type: 'bar',
+							      stack: 'total',
+							      label: {
+							          show: true,
+							          formatter:function(params){
+							          return params.value+'%';
+							          }
+							      },
+							      tooltip: {
+							          valueFormatter: function (value) {
+							          return value + '%';
+							          }
+							      },
+							      emphasis: {
+							          focus: 'series'
+							      },
+							      data: [31, 16, 40, 15]
+							      },
+							      {
+							      name: '鍏珛涓変箼',
+							      type: 'bar',
+							      stack: 'total',
+							      label: {
+							          show: true,
+							          formatter:function(params){
+							          return params.value+'%';
+							          }
+							      },
+							      tooltip: {
+							          valueFormatter: function (value) {
+							          return value + '%';
+							          }
+							      },
+							      emphasis: {
+							          focus: 'series'
+							      },
+							      data: [12, 12, 11, 14]
+							      },
+							      {
+							      name: '鍏珛浜岀敳',
+							      type: 'bar',
+							      stack: 'total',
+							      label: {
+							          show: true,
+							          formatter:function(params){
+							          return params.value+'%';
+							          }
+							      },
+							      tooltip: {
+							          valueFormatter: function (value) {
+							          return value + '%';
+							          }
+							      },
+							      emphasis: {
+							          focus: 'series'
+							      },
+							      data: [22, 18, 19, 23]
+							      },
+							      {
+							      name: '鍏朵粬鏈烘瀯',
+							      type: 'bar',
+							      stack: 'total',
+							      label: {
+							          show: true,        
+							          formatter:function(params){
+							          return params.value+'%';
+							          }
+							      },
+							      tooltip: {
+							          valueFormatter: function (value) {
+							          return value + '%';
+							          }
+							      },
+							      emphasis: {
+							          focus: 'series',
+							      },
+							      data: [15, 22, 21, 14]
+							      },
+							      {
+							      name: '绉佺珛鍖婚櫌',
+							      type: 'bar',
+							      stack: 'total',
+							      label: {
+							          show: true,
+							          formatter:function(params){
+							          return params.value+'%';
+							          }
+							      },
+							      tooltip: {
+							          valueFormatter: function (value) {
+							          return value + '%';
+							          }
+							      },
+							      emphasis: {
+							          focus: 'series'
+							      },
+							      data: [20, 32, 9, 34]
+							      }
+							  ]
+							};
+							productChart.setOption(productOption);
+						},
+						
+						//娓犻亾瀹㈡埛灞炴�р�斺��1
+						propertyCa(){
+							var pCaDom = document.getElementById('propertyCa');
+							var pCaChart = echarts.init(pCaDom);
+							
+							var pCaOption = {
+							  color:['Teal','MediumSeaGreen','LightGreen','DarkSeaGreen'],
+							  dataset: [
+							      {
+							      source: [
+							          ['customer', 'amount', 'type'],
+							          ['涓夊ぇ闆嗗洟', 1048, '鎸夊鎴锋暟'],
+							          ['鍥芥湁榫欏ご', 735, '鎸夊鎴锋暟'],
+							          ['姘戣惀涓婂競', 580, '鎸夊鎴锋暟'],
+							          ['鍏朵粬', 484, '鎸夊鎴锋暟'],
+							          ['涓夊ぇ闆嗗洟', 148, '鎸塝TD绾攢浠介'],
+							          ['鍥芥湁榫欏ご', 735, '鎸塝TD绾攢浠介'],
+							          ['姘戣惀涓婂競', 580, '鎸塝TD绾攢浠介'],
+							          ['鍏朵粬', 484, '鎸塝TD绾攢浠介']
+							      ]
+							      },
+							      {
+							      transform: {
+							          type: 'filter',
+							          config: { dimension: 'type', value: '鎸夊鎴锋暟' }
+							      }
+							      },
+							      {
+							      transform: {
+							          type: 'filter',
+							          config: { dimension: 'type', value: '鎸塝TD绾攢浠介' }
+							      }
+							      }
+							  ],
+							  title: [
+							      {
+							      text: '鎸夊鎴锋暟',
+							      left: '14%',
+							      // top: '10%'
+							      },
+							      {
+							      text: '鎸塝TD绾攢浠介',
+							      left: '50%',
+							      // top: '10%'
+							      }
+							  ],
+							  tooltip: {
+							      trigger: 'item'
+							  },
+							  legend: {
+							      top: 'bottom',
+							      left: '10%',
+							      orient: 'horizontal',
+							  },
+							  series: [
+							      {
+							      name: '鎸夊鎴锋暟',
+							      type: 'pie',
+							      radius: ['30%', '47%'],
+							      center: ['25%', '50%'],
+							      avoidLabelOverlap: false,
+							      itemStyle: {
+							          borderRadius: 10,
+							          borderColor: '#fff',
+							          borderWidth: 2
+							      },
+							      label: {
+							          show: true,
+							          position: 'inner',
+							          formatter: '{d}%'
+							      },
+							      emphasis: {
+							          label: {
+							          show: true,
+							          fontSize: '40',
+							          fontWeight: 'bold'
+							          }
+							      },
+							      labelLine: {
+							          show: true
+							      },
+							      datasetIndex: 1
+							      },
+							      {
+							      name: '鎸塝TD绾攢浠介',
+							      type: 'pie',
+								  radius: ['30%', '47%'],
+							      center: ['75%', '50%'],
+							      avoidLabelOverlap: false,
+							      itemStyle: {
+							          borderRadius: 10,
+							          borderColor: '#fff',
+							          borderWidth: 2
+							      },
+							      label: {
+							          show: true,
+							          position: 'inner',
+							          formatter: '{d}%'
+							      },
+							      emphasis: {
+							          label: {
+							          show: true,
+							          fontSize: '40',
+							          fontWeight: 'bold'
+							          }
+							      },
+							      labelLine: {
+							          show: true
+							      },
+							      datasetIndex: 2
+							      }
+							  ]
+							};
+							pCaChart.setOption(pCaOption);
+							
+						},
+						
+						//娓犻亾瀹㈡埛灞炴�р�斺��2.1
+						propertyType(){
+							var pTDom = document.getElementById('propertyType');
+							var pTChart = echarts.init(pTDom);
+							
+							var pTOption = {
+							  color:['Teal','MediumSeaGreen','LightGreen','DarkSeaGreen'],
+							  tooltip: {
+							      trigger: 'axis',
+							      axisPointer: {
+							      // Use axis to trigger tooltip
+							      type: 'shadow' // 'shadow' as default; can also be 'line' or 'shadow'
+							      }
+							  },
+							  legend: {
+							      show:false
+							  },
+							  grid: {
+							      left: '3%',
+							      right: '4%',
+							      bottom: '3%',
+							      containLabel: true
+							  },
+							  xAxis: {
+							      type: 'value'
+							  },
+							  yAxis: {
+							      type: 'category',
+							      data: ['鍖婚櫌鑷垂鑽埧', '闄㈣竟搴�', 'DTP鑽埧', '浜岀骇缁忛攢鍟�', '涓�绾х粡閿�鍟�']
+							  },
+							  series: [
+							      {
+							      name: '涓夊ぇ闆嗗洟',
+							      type: 'bar',
+							      stack: 'total',
+							      label: {
+							          show: true
+							      },
+							      emphasis: {
+							          focus: 'series'
+							      },
+							      data: [255, 302, 301, 390, 450]
+							      },
+							      {
+							      name: '鍥芥湁榫欏ご',
+							      type: 'bar',
+							      stack: 'total',
+							      label: {
+							          show: true
+							      },
+							      emphasis: {
+							          focus: 'series'
+							      },
+							      data: [98, 132, 101, 165, 190]
+							      },
+							      {
+							      name: '姘戣惀涓婂競',
+							      type: 'bar',
+							      stack: 'total',
+							      label: {
+							          show: true
+							      },
+							      emphasis: {
+							          focus: 'series'
+							      },
+							      data: [156, 182, 191, 234, 350]
+							      },
+							      {
+							      name: '鍏朵粬',
+							      type: 'bar',
+							      stack: 'total',
+							      label: {
+							          show: true
+							      },
+							      emphasis: {
+							          focus: 'series'
+							      },
+							      data: [177, 212, 201, 174, 290]
+							      },
+							  ]
+							};
+							pTChart.setOption(pTOption);
+						},
+						
+						//娓犻亾瀹㈡埛灞炴�р�斺��2.2
+						propertyProduct(){
+							var pPDom = document.getElementById('propertyProduct');
+							var pPChart = echarts.init(pPDom);
+							
+							var pPOption = {
+							  color:['Teal','MediumSeaGreen','LightGreen','DarkSeaGreen'],
+							  tooltip: {
+							      trigger: 'axis',
+							      axisPointer: {
+							      // Use axis to trigger tooltip
+							      type: 'shadow' // 'shadow' as default; can also be 'line' or 'shadow'
+							      }
+							  },
+							  legend: {
+							      show:false
+							  },
+							  grid: {
+							      left: '3%',
+							      right: '4%',
+							      bottom: '3%',
+							      containLabel: true
+							  },
+							  xAxis: {
+							      type: 'value'
+							  },
+							  yAxis: {
+							      type: 'category',
+							      data: ['浜у搧A', '浜у搧B', '浜у搧C']
+							  },
+							  series: [
+							      {
+							      name: '涓夊ぇ闆嗗洟',
+							      type: 'bar',
+							      stack: 'total',
+							      label: {
+							          show: true
+							      },
+							      emphasis: {
+							          focus: 'series'
+							      },
+							      data: [32, 32, 31]
+							      },
+							      {
+							      name: '鍥芥湁榫欏ご',
+							      type: 'bar',
+							      stack: 'total',
+							      label: {
+							          show: true
+							      },
+							      emphasis: {
+							          focus: 'series'
+							      },
+							      data: [20, 32, 11]
+							      },
+							      {
+							      name: '姘戣惀涓婂競',
+							      type: 'bar',
+							      stack: 'total',
+							      label: {
+							          show: true
+							      },
+							      emphasis: {
+							          focus: 'series'
+							      },
+							      data: [22, 18, 19]
+							      },
+							      {
+							      name: '鍏朵粬',
+							      type: 'bar',
+							      stack: 'total',
+							      label: {
+							          show: true
+							      },
+							      emphasis: {
+							          focus: 'series'
+							      },
+							      data: [15, 22, 21]
+							      },
+							  ]
+							};
+							pPChart.setOption(pPOption);
+						},
+						
+						initData() {
+							var me = this;
+							let param_ = {
+								isClientMode: false,
+								dataname: this.dataname,
+								page: {
+									pageno: this.pagenum,
+									pagesize: this.pagesize
+								},
+							}
+							Server.call("root/data/getEntitySet", param_, function(result) {
+								me.total = 0;
+								me.tableData = [];
+								if (result && result.data) {
+									me.total = result.data.page.recordcount;
+									var data_ = result.data.entityset;
+									// console.log(data_)
+									me.tableData = data_;
+								}
+							});
+						},
+						showFilterPopup() {
+							
+						},
+						onInitFilter() {
+							this.filterObj = {}
+							this.onQuery();
+						},
+						onEditFilter() {
+							
+						},
+						getData(page) {
+							this.pagesize = page.pagesize;
+							this.pagenum = page.pagenum;
+							this.doQuery();
+						},
+						handleClick(tab) {
+							this.AnchorLinkTo(tab.name);
+						},
+						formSelectChange(obj) {
+							var me = this;
+							var fieldObj = obj.fieldobj;
+							var filterFieldsData = clone(me.filterFields);
+							
+							if (fieldObj.field == "province") {
+								var filterObj_ = clone(me.filterObj);
+								filterObj_.city = null;
+								me.filterObj = filterObj_;
+								let param_ = {
+									isClientMode: false,
+									dataname: "md_province",
+									filter: [
+										{field: "name", value:obj.data.province}
+									]
+								}
+								Server.call("root/data/getEntitySet", param_, function(result) {
+									if (result && result.data) {
+										let param_ = {
+											isClientMode: false,
+											dataname: "md_vip_area",
+											filter:[
+												{"field": "province_id", "value":result.data.entityset[0].id}
+											]
+										}
+										Server.call("root/data/getEntitySet", param_, function(result) {
+											if (result && result.data) {
+												var options_ = result.data.entityset;
+												for(var i=0; i<options_.length;i++) {
+													options_[i].label = options_[i].name;
+													options_[i].value = options_[i].name;
+													
+												}
+												filterFieldsData.map(e=>{
+													if(e.field == "city") {
+														e.options = options_;
+													}
+												})
+											}
+											me.filterFields = filterFieldsData;
+										});
+									}
+								});
+							}
+						},
+						
+						//鍔ㄦ�佸姞杞戒笅鎷夐」
+						cellVisibleChange(obj, row) {
+							let me = this;
+							var filterFieldsData = clone(me.filterFields);
+							if (obj.field == "province") {
+								var filterFieldsData = clone(me.filterFields);
+								let param_ = {
+									isClientMode: false,
+									dataname: "md_province",
+								}
+								Server.call("root/data/getEntitySet", param_, function(result) {
+									if (result && result.data) {
+										var options_ = result.data.entityset;
+										for(var i=0; i<options_.length;i++) {
+											options_[i].label = options_[i].name;
+											options_[i].value = options_[i].name;
+										}
+										filterFieldsData.map(e=>{
+											if(e.field == "province") {
+												e.options = options_;
+											}
+										})
+									}
+									me.filterFields = filterFieldsData;
+								});
+							}
+						},
+						
+						onFormButtonByCode(code) {
+							if (code == "add") {//娣诲姞
+								// let me = this;
+								// var config = {
+								// 	totab: true,
+								// 	title: "瀹㈡埛涓绘暟鎹柊澧�",
+								// 	url: "../home/masterDataAdd.html",
+								// 	data: {},
+								// 	delta: {},
+								// 	opentype: "add",
+								// 	sceneCode: "add",
+								// 	width: 780,
+								// 	height: 420,
+								// 	callback: function(obj, callback) {
+								// 		me.onQuery();
+								// 		if (callback) {
+								// 			callback();
+								// 		}
+								// 	}
+								// };
+								// Root.showPopup(config);
+								// this.tabCardClick(config);
+							}
+							else if (code == "import") {//瀵煎叆
+								
+							}
+							else if (code == "export") {//瀵煎嚭
+								
+							}
+						},
+						cellClick(obj) {//鍗曞厓鏍肩偣鍑�
+							var field = obj.column.property;
+							var row = obj.row;
+							var tableField = obj.tableField;
+							// if(tableField.field == "field2") {
+							// 	var to_page = {
+							// 		totab: true,
+							// 		title: "瀹㈡埛鏄庣粏(涓绘暟鎹�)",
+							// 		url: "../home/masterDataCustomerDetails.html",
+							// 		data: {},
+							// 		delta: {},
+							// 		opentype: "add",
+							// 		sceneCode: "add",
+							// 		width: 1100,
+							// 		height: 550,
+							// 		callback: function(obj, callback) {
+							// 			me.onQuery();
+							// 			if (callback) {
+							// 				callback();
+							// 			}
+							// 		}
+							// 	};
+							// 	Root.showPopup(to_page);
+							// }
+						},
+						queryData(row) {
+							let me = this;
+							
+							// var config = {
+							// 	width: 1000,
+							// 	height: 550,
+							// 	title: "鏌ョ湅鍗忎細鏅哄簱妗f",
+							// 	url: "../flow_manage/addAssociationLibraryList.html",
+							// 	totab: true,
+							// 	sceneCode: "query",
+							// 	opentype: "add",
+							// 	data: row,
+							// 	delta: {},
+							// 	callback: function(obj, callback) {
+							// 		if (callback) {
+							// 			callback();
+							// 		}
+							// 	}
+							// };
+							// // this.doPopup(config);
+							// this.tabCardClick(config);
+						},
+						cellButtonClick(obj) {
+							var type_ = obj.column.property;
+							var row = obj.row;
+							var field = "name";
+							var tips = "";
+							
+							if(type_ == "delete"){
+								this.delData(row,field,tips);
+							} else if (type_ == "update"){
+								this.editData(obj);
+							} else if (type_ == "query"){
+								this.queryData(row);
+							}
+						},
+						//淇敼鏁版嵁浜嬩欢
+						onEditData(config, scope) {
+							var me = this;
+							var row = scope.row;
+							// var config = {
+							// 	width: 1000,
+							// 	height: 550,
+							// 	title: "缂栬緫瀹㈡埛涓绘暟鎹�",
+							// 	url: "../home/masterDataAdd.html",
+							// 	totab: true,
+							// 	sceneCode: "edit",
+							// 	opentype: "add",
+							// 	data: row,
+							// 	delta: {},
+							// 	callback: function(obj, callback) {
+							// 		me.initData();
+							// 		if (callback) {
+							// 			callback();
+							// 		}
+							// 	}
+							// };
+							// this.doPopup(config);
+						},
+						
+						
+						
+						//婊氬姩浜嬩欢
+						myFunction(e) {
+							var isToBottom_ = this.isToBottom(e);
+							if (isToBottom_) {
+								this.org_footer = true;
+							}
+							else {
+								this.org_footer = false;
+							}
+						},
+						
+						isToBottom(e) {
+							var bo_ = false;
+							if(e.srcElement.scrollTop + e.srcElement.offsetHeight >= e.srcElement.scrollHeight){
+						銆�銆�銆�銆�//宸茬粡鍒版渶搴曢儴浜�
+								bo_ = true;
+						銆�銆�}
+							return bo_;
+						},
+						
+					}
+				});
+			}
+		
+			loadJsCss(function() {
+				initVue();
+			});
+		</script>
+
+		<style>
+			[v-cloak] {
+				display: none !important;
+			}
+			
+			.v_header .v_header_query{
+			    padding: 0px 36px;
+			    box-sizing: border-box;
+			}
+		</style>
+	</body>
+</html>
diff --git a/module/report/page/channelInventoryComposition.html b/module/report/page/channelInventoryComposition.html
new file mode 100644
index 0000000..a2f60bd
--- /dev/null
+++ b/module/report/page/channelInventoryComposition.html
@@ -0,0 +1,848 @@
+<!DOCTYPE html>
+<html>
+	<head> 
+		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+		<title>娓犻亾搴撳瓨涓庣粓绔瀯鎴�</title>
+	</head>
+
+	<body>
+		<style type="text/css">
+			h5,ul,h1 {
+				margin: 0;
+				padding: 0;
+			}
+			li {
+				list-style: none;
+			}
+		</style>
+		<div v-cloak id="hbody" class="h_body" style="margin: 0;padding: 0;">
+			<div ref="ref_header" class="v_header">
+			</div>
+			<div ref="ref_main" class="v_main" style="padding: 0px 36px;">
+				<div style="display: flex;justify-content: flex-start;width: 100%;height: 90%;">
+					<div style="width: 50%;height: 100%;">
+						<h3 style="font-weight: 600;color: #3A63A6;text-align: center;">娓犻亾搴撳瓨鏋勬垚</h3>
+						<div style="width: 100%;height: 10px;background-color: #3A63A6;"></div>
+						<div style="width: 100%;height: 50%;display: flex;justify-content: flex-start;">
+							<div style="width: 30%;height: 100%;">
+								<div id = "propertion" style = "width:100%; height: 100%;" ></div>
+							</div>
+							<div style="width: 70%;height: 100%;">
+								<div id = "channel" style = "width:100%; height: 100%;" ></div>
+							</div>
+						</div>
+					</div>
+					<div style="width: 6%;height: 100%;"></div>
+					<div style="width: 50%;height: 100%;">
+						<h3 style="font-weight: 600;color: #3A63A6;text-align: center;">娓犻亾瀹㈡埛灞炴��</h3>
+						<div style="width: 100%;height: 10px;background-color: #3A63A6;"></div>
+						<div style="width: 100%;height: 50%;display: flex;justify-content: flex-start;">
+							<div style="width: 100%;height: 100%;">
+								<div id = "sale" style = "width:100%; height: 100%;" ></div>
+							</div>
+							<!-- <div style="width: 39%;height: 100%;">
+								<div id = "propertion" style = "width:100%; height: 100%;" ></div>
+							</div> -->
+						</div>
+					</div>
+				</div>
+				<div style="width: 100%;height:50%;margin-top: -280px;">
+					<div id = "province" style = "width:100%; height: 100%;"></div>
+				</div>
+				<div style="width: 100%;height: 30px;"></div>
+			</div>
+			
+			
+		</div>
+		
+		<script type="text/javascript">
+			function loadJsCss(callback) {
+				var jscss_urls = [
+					{id: "js6", type: "js", url: "root/js/echarts.js"},
+				];
+				window.top.initJsCss(document, jscss_urls, callback);
+			}
+		
+			function initVue() {
+				new BasicsVue({
+					el: "#hbody",
+					data: {
+						radio1: '鎬婚噺',
+						radio2: '浜у搧',
+						cardtablist: [
+							// {id: "6-5-2-2-1", type: "cardtab", name: "鏂板鍗忎細鏅哄簱", icon:"", img: "../../img/page/associationLibraryList.png", enname:"", url: "../../page/flow_manage/addAssociationLibraryList.html", parentid: "1", opentype: "add"},
+							// {id: "2-1-2", type: "cardtab", name: "涓ぎ涓撳搴�", icon:"", img: "../../img/page/icon_open@2x.png", enname:"", url: "../../page/flow_manage/centralfileList.html", parentid: "2", opentype: "add"},
+						],
+						page_url: "",
+						rowkey: "id",
+						dataname: "",
+						module_title: "",
+						tableHeight: 500,
+						filterAttr: {
+							columnnumber: 4,
+							labelwidth: "100px",
+							labelposition: "left",//"left",//"right",
+							size: "medium",
+							borderleft: "0px solid #c6c6c600",
+							bordertop: "8px solid #c6c6c600",
+							borderright: "0px solid #c6c6c600",
+							borderbottom: "0px solid #c6c6c600",
+							border: "3px solid #c6c6c600"
+						},
+						formButton: {
+							query: true,
+							empty: true,
+							add: false,
+							import: false,
+							export: false
+						},
+						filterObj: {},
+						filterFieldsObj: {},
+						filterFields: [
+							{isshow: "T",fieldname: "province", field: "province", name: "鐪佷唤", type: "select"},
+							{isshow: "T", fieldname: "city",field: "city",name: "鍩庡競", type: "select"},
+							// {isshow: "T", field: "field1", name: "瀹㈡埛缂栧彿", type: "select"},
+							// {isshow: "T", field: "name", fieldname: "name", name: "瀹㈡埛鍚嶇О", fieldtype: "like", type: "select"},
+							// {isshow: "T", field: "creator_name", fieldname: "creator_name", name: "瀹㈡埛灞炴��", fieldtype: "like"},
+							// {isshow: "T", field: "createtime", name: "鏄惁鍚敤",fieldtype: "inScopeInclude"},
+						],
+						
+						//Tab椤�
+						activeName: "code1",
+						wrapStyle: "",
+						viewStyle: "",
+						
+						tabList: [
+							{code: "code1", name: "鍒楄〃"},
+						],
+						tabsObj: {
+							code1: true,
+						},
+						
+						isRefresh: true,
+						pagesize: 10,
+						pagenum: 0,
+						total: 0,
+						orderby:"createtime desc",
+					},
+					created() {
+						var me = this;
+						this.popupParames = clone(Root.popupParames);
+						
+					},
+				
+					mounted() {
+						var me = this;
+						// this.initData();
+						this.$nextTick(function() {
+							let w_ = this.$refs.ref_header.offsetWidth;
+							let h_ = this.$refs.ref_header.offsetHeight;
+							//let h_ = 0;
+							let clientHeight = document.documentElement.clientHeight;
+							var m_h = clientHeight - h_ - 10;
+							this.tableHeight = clientHeight - h_ - 252;
+							
+							this.wrapStyle = "overflow-y: auto; width: 100%; height: " + (m_h - 50) + "px";
+							this.viewStyle = "max-height: " + (m_h - 50) + "px";
+							this.$refs.ref_main.style.height = m_h + "px";
+							//this.$refs.ref_v_body.style.height = m_h + "px";
+						})
+						setTimeout(function(){
+							me.channel();
+							me.sale();
+							me.propertion();
+							me.province();
+						},500);
+						
+					},
+					methods: {
+						//鎶樻煴
+						province(){
+							var provinceDom = document.getElementById('province');
+						  var provinceChart = echarts.init(provinceDom);
+				
+						  var provinceOption = {
+							color:['Teal','DarkOrange'],
+							tooltip: {
+								trigger: 'axis',
+								// axisPointer: {
+								//     type: 'cross',
+								//     crossStyle: {
+								//         color: '#999'
+								//     }
+								// }
+							},
+							legend: {
+								data: ['娓犻亾搴撳瓨閲戦', '搴撳瓨澶╂暟'],
+								bottom:'bottom'
+							},
+							xAxis: [
+								{
+								type: 'category',
+								data: ['姹熻嫃', '骞夸笢', '娴欐睙', '灞变笢', '娌冲崡', '涓婃捣', '瀹夊窘', '婀栧崡', '鍥涘窛', '姹熻タ', '绂忓缓', '娌冲寳', '鍖椾含', '婀栧寳', '灞辫タ', '骞胯タ', '閲嶅簡', '闄曡タ', '澶╂触', '杈藉畞', '鏂扮枂', '鍚夋灄', '鐢樿們', '榛戦緳姹�', '浜戝崡', '鍐呰挋鍙�', '璐靛窞', '娴峰崡', '闈掓捣', '瀹佸'],
+								axisPointer: {
+									type: 'shadow'
+								},
+								axisLabel:{
+									interval : '0'
+								}
+								}
+							],
+							yAxis: [
+								{
+								type: 'value',
+								min:0,
+								max:300,
+								axisLabel: {
+									formatter: '{value} '
+								},
+								show:false
+								},
+								{
+								type: 'value',
+								min:0,
+								max:200,
+								axisLabel: {
+									formatter: '{value} '
+								},
+								show:false
+								}
+							],
+							series: [
+								{
+								name: '娓犻亾搴撳瓨閲戦',
+								type: 'bar',
+								tooltip: {
+									// valueFormatter: function (value) {
+									//   return value;
+									// }
+								},
+								data: [
+									23, 29, 30, 23, 25, 36, 35, 12, 36, 20, 34, 33,22,25,13,15,23,25,34,25,32,34,26,23,34,24,13,16,21,23
+								]
+								},
+								{
+								name: '搴撳瓨澶╂暟',
+								type: 'line',
+								yAxisIndex: 1,
+								tooltip: {
+									// valueFormatter: function (value) {
+									//   return value;
+									// }
+								},
+								label:{
+									show:true
+								},
+								data: [43, 42, 40, 36, 26, 41, 48, 42, 23, 51, 51, 31,38,40,41,36,39,35,26,76,45,39,35,34,51,44,33,42,44,36,]
+								}
+							]
+						  };
+						  provinceChart.setOption(provinceOption);
+						},
+						
+						//娓犻亾搴撳瓨鏋勬垚鈥斺��1
+						propertion(){
+							var propertionDom = document.getElementById('propertion');
+						  var propertionChart = echarts.init(propertionDom);
+				
+						  var propertionOption = {
+							tooltip: {
+								trigger: 'axis',
+								position: ['50%', '50%'],
+								axisPointer: {
+								// Use axis to trigger tooltip
+								type: 'shadow' // 'shadow' as default; can also be 'line' or 'shadow'
+								}
+							},
+							
+							grid: {
+								left: '3%',
+								right: '4%',
+								bottom: '3%',
+								containLabel: true,
+								width: '125px',
+								height: '200',
+							},
+							yAxis: {
+								type: 'value',
+								axisLabel: {
+								formatter: '{value}%'
+								},
+								show:false
+							},
+							xAxis: {
+								type: 'category',
+								data: ['Total'],
+								show:false
+							},
+							series: [
+								{
+								name: '涓�绾х粡閿�鍟�',
+								type: 'bar',
+								stack: 'total',
+								label: {
+									show: false,
+									formatter:function(params){
+									return params.value + '%';
+									}
+								},
+								tooltip: {
+									valueFormatter: function (value) {
+										return value + '%';
+									}
+								},
+								emphasis: {
+									focus: 'series'
+								},
+								data: [79.1]
+								},
+								{
+								name: '浜岀骇缁忛攢鍟�',
+								type: 'bar',
+								stack: 'total',
+								label: {
+									show: false,
+									formatter:function(params){
+									return params.value + '%';
+									}
+								},
+								tooltip: {
+									valueFormatter: function (value) {
+										return value + '%';
+									}
+								},
+								emphasis: {
+									focus: 'series'
+								},
+								data: [5.1]
+								},
+								{
+								name: 'DTP鑽埧',
+								type: 'bar',
+								stack: 'total',
+								label: {
+									show: false,
+									formatter:function(params){
+									return params.value + '%';
+									}
+								},
+								tooltip: {
+									valueFormatter: function (value) {
+										return value + '%';
+									}
+								},
+								emphasis: {
+									focus: 'series'
+								},
+								data: [10]
+								},
+								{
+								name: '闄㈣竟搴�',
+								type: 'bar',
+								stack: 'total',
+								label: {
+									show: false,
+									formatter:function(params){
+									return params.value + '%';
+									}
+								},
+								tooltip: {
+									valueFormatter: function (value) {
+										return value + '%';
+									}
+								},
+								emphasis: {
+									focus: 'series'
+								},
+								data: [2.9]
+								},
+									{
+								name: '鍏朵粬闈炴笭閬撳鎴�',
+								type: 'bar',
+								stack: 'total',
+								label: {
+									show: false,
+									formatter:function(params){
+									return params.value + '%';
+									}
+								},
+								tooltip: {
+									valueFormatter: function (value) {
+										return value + '%';
+									}
+								},
+								emphasis: {
+									focus: 'series'
+								},
+								data: [2.8]
+								},
+							]
+						  };
+						  propertionChart.setOption(propertionOption);
+						},
+						
+						//娓犻亾瀹㈡埛灞炴��
+						sale(){
+							var saleDom = document.getElementById('sale');
+						  var saleChart = echarts.init(saleDom);
+				
+						  var saleOption = {
+							color:['Teal','MediumSeaGreen','LightGreen','DarkSeaGreen','Orange','Khaki'],
+							title: {
+								text: '甯傚満绾攢鐨勭粓绔鎴锋瀯鎴�',
+								left: 'center'
+							},
+							tooltip: {
+								trigger: 'item'
+							},
+							legend: {
+								left: '150',
+								orient:'',
+								top:'middle'
+							},
+							series: [
+								{
+								name: '甯傚満绾攢鐨勭粓绔鎴锋瀯鎴�',
+								// valueType:'percent',
+								type: 'pie',
+								radius: '50%',
+								center: ['70%','50%'],
+								data: [
+									{ value: 1048, name: '鍖婚櫌' },
+									{ value: 735, name: '鍖婚櫌澶勬柟' },
+									{ value: 580, name: '鑽簵-鍖婚櫌鑷垂鑽埧' },
+									{ value: 484, name: '鑽簵-闄㈣竟搴�' },
+									{ value: 300, name: '鑽簵-鍏朵粬鑽簵' },
+									{ value: 200, name: '鍏朵粬缁忛攢鍟�' }
+								],
+								label: {
+									show: true,
+									position: 'inner',
+									formatter:'{d}%'
+								},
+								// tooltip: {
+								//     valueFormatter:'{d}%'
+								// },
+								emphasis: {
+									itemStyle: {
+									shadowBlur: 10,
+									shadowOffsetX: 0,
+									shadowColor: 'rgba(0, 0, 0, 0.5)'
+									}
+								}
+								}
+							]
+						  };
+						  saleChart.setOption(saleOption);
+				
+					},
+					
+					//娓犻亾搴撳瓨鏋勬垚鈥斺��2
+					channel(){
+						var clDom = document.getElementById('channel');
+						  var clChart = echarts.init(clDom);
+				
+						  var clOption = {
+							tooltip: {
+								trigger: 'axis',
+								axisPointer: {
+									axis:'y', 
+									// Use axis to trigger tooltip
+									type: 'shadow' // 'shadow' as default; can also be 'line' or 'shadow'
+								}
+							},
+							legend: {
+								left:'center',
+							},
+							grid: {
+								left: '3%',
+								right: '4%',
+								bottom: '3%',
+								containLabel: true
+							},
+							xAxis: {
+								type: 'value',
+								axisLabel: {
+									formatter: '{value}%'
+								}
+							},
+							yAxis: {
+								type: 'category',
+								data: ['浜у搧A', '浜у搧B', '浜у搧C', '浜у搧D']
+							},
+							series: [
+								{
+								name: '涓�绾х粡閿�鍟�',
+								type: 'bar',
+								stack: 'total',
+								label: {
+									show: true,
+									formatter:function(params){
+										return params.value + '%';
+									}
+								},
+								tooltip: {
+									valueFormatter: function (value) {
+										return value + '%';
+									}
+								},
+								emphasis: {
+									focus: 'series'
+								},
+								data: [50, 45, 56, 59]
+								},
+								{
+								name: '浜岀骇缁忛攢鍟�',
+								type: 'bar',
+								stack: 'total',
+								label: {
+									show: true,
+									formatter:function(params){
+										return params.value + '%';
+									}
+								},
+								tooltip: {
+									valueFormatter: function (value) {
+										return value + '%';
+									}
+								},
+								emphasis: {
+									focus: 'series'
+								},
+								data: [19, 8, 11, 13]
+								},
+								{
+								name: 'DTP鑽埧',
+								type: 'bar',
+								stack: 'total',
+								label: {
+									show: true,
+									formatter:function(params){
+									return params.value + '%';
+									}
+								},
+								tooltip: {
+									valueFormatter: function (value) {
+										return value + '%';
+									}
+								},
+								emphasis: {
+									focus: 'series'
+								},
+								data: [15, 18, 15, 11]
+								},
+								{
+								name: '闄㈣竟搴�',
+								type: 'bar',
+								stack: 'total',
+								label: {
+									show: true,
+									formatter:function(params){
+									return params.value + '%';
+									}
+								},
+								tooltip: {
+									valueFormatter: function (value) {
+										return value + '%';
+									}
+								},
+								emphasis: {
+									focus: 'series'
+								},
+								data: [6, 18, 8, 7]
+								},
+								{
+								name: '鍏朵粬闈炴笭閬撳鎴�',
+								type: 'bar',
+								stack: 'total',
+								label: {
+									show: true,
+									formatter:function(params){
+									return params.value + '%';
+									}
+								},
+								tooltip: {
+									valueFormatter: function (value) {
+										return value + '%';
+									}
+								},
+								emphasis: {
+									focus: 'series'
+								},
+								data: [10, 11, 10, 10]
+								},
+							]
+						  };
+						  clChart.setOption(clOption);
+						},
+						initData() {
+							var me = this;
+							let param_ = {
+								isClientMode: false,
+								dataname: this.dataname,
+								page: {
+									pageno: this.pagenum,
+									pagesize: this.pagesize
+								},
+							}
+							Server.call("root/data/getEntitySet", param_, function(result) {
+								me.total = 0;
+								me.tableData = [];
+								if (result && result.data) {
+									me.total = result.data.page.recordcount;
+									var data_ = result.data.entityset;
+									// console.log(data_)
+									me.tableData = data_;
+								}
+							});
+						},
+						showFilterPopup() {
+							
+						},
+						onInitFilter() {
+							this.filterObj = {}
+							this.onQuery();
+						},
+						onEditFilter() {
+							
+						},
+						getData(page) {
+							this.pagesize = page.pagesize;
+							this.pagenum = page.pagenum;
+							this.doQuery();
+						},
+						handleClick(tab) {
+							this.AnchorLinkTo(tab.name);
+						},
+						formSelectChange(obj) {
+							var me = this;
+							var fieldObj = obj.fieldobj;
+							var filterFieldsData = clone(me.filterFields);
+							
+							if (fieldObj.field == "province") {
+								var filterObj_ = clone(me.filterObj);
+								filterObj_.city = null;
+								me.filterObj = filterObj_;
+								let param_ = {
+									isClientMode: false,
+									dataname: "md_province",
+									filter: [
+										{field: "name", value:obj.data.province}
+									]
+								}
+								Server.call("root/data/getEntitySet", param_, function(result) {
+									if (result && result.data) {
+										let param_ = {
+											isClientMode: false,
+											dataname: "md_vip_area",
+											filter:[
+												{"field": "province_id", "value":result.data.entityset[0].id}
+											]
+										}
+										Server.call("root/data/getEntitySet", param_, function(result) {
+											if (result && result.data) {
+												var options_ = result.data.entityset;
+												for(var i=0; i<options_.length;i++) {
+													options_[i].label = options_[i].name;
+													options_[i].value = options_[i].name;
+													
+												}
+												filterFieldsData.map(e=>{
+													if(e.field == "city") {
+														e.options = options_;
+													}
+												})
+											}
+											me.filterFields = filterFieldsData;
+										});
+									}
+								});
+							}
+						},
+						
+						//鍔ㄦ�佸姞杞戒笅鎷夐」
+						cellVisibleChange(obj, row) {
+							let me = this;
+							var filterFieldsData = clone(me.filterFields);
+							if (obj.field == "province") {
+								var filterFieldsData = clone(me.filterFields);
+								let param_ = {
+									isClientMode: false,
+									dataname: "md_province",
+								}
+								Server.call("root/data/getEntitySet", param_, function(result) {
+									if (result && result.data) {
+										var options_ = result.data.entityset;
+										for(var i=0; i<options_.length;i++) {
+											options_[i].label = options_[i].name;
+											options_[i].value = options_[i].name;
+										}
+										filterFieldsData.map(e=>{
+											if(e.field == "province") {
+												e.options = options_;
+											}
+										})
+									}
+									me.filterFields = filterFieldsData;
+								});
+							}
+						},
+						
+						onFormButtonByCode(code) {
+							if (code == "add") {//娣诲姞
+								// let me = this;
+								// var config = {
+								// 	totab: true,
+								// 	title: "瀹㈡埛涓绘暟鎹柊澧�",
+								// 	url: "../home/masterDataAdd.html",
+								// 	data: {},
+								// 	delta: {},
+								// 	opentype: "add",
+								// 	sceneCode: "add",
+								// 	width: 780,
+								// 	height: 420,
+								// 	callback: function(obj, callback) {
+								// 		me.onQuery();
+								// 		if (callback) {
+								// 			callback();
+								// 		}
+								// 	}
+								// };
+								// Root.showPopup(config);
+								// this.tabCardClick(config);
+							}
+							else if (code == "import") {//瀵煎叆
+								
+							}
+							else if (code == "export") {//瀵煎嚭
+								
+							}
+						},
+						cellClick(obj) {//鍗曞厓鏍肩偣鍑�
+							var field = obj.column.property;
+							var row = obj.row;
+							var tableField = obj.tableField;
+							// if(tableField.field == "field2") {
+							// 	var to_page = {
+							// 		totab: true,
+							// 		title: "瀹㈡埛鏄庣粏(涓绘暟鎹�)",
+							// 		url: "../home/masterDataCustomerDetails.html",
+							// 		data: {},
+							// 		delta: {},
+							// 		opentype: "add",
+							// 		sceneCode: "add",
+							// 		width: 1100,
+							// 		height: 550,
+							// 		callback: function(obj, callback) {
+							// 			me.onQuery();
+							// 			if (callback) {
+							// 				callback();
+							// 			}
+							// 		}
+							// 	};
+							// 	Root.showPopup(to_page);
+							// }
+						},
+						queryData(row) {
+							let me = this;
+							
+							// var config = {
+							// 	width: 1000,
+							// 	height: 550,
+							// 	title: "鏌ョ湅鍗忎細鏅哄簱妗f",
+							// 	url: "../flow_manage/addAssociationLibraryList.html",
+							// 	totab: true,
+							// 	sceneCode: "query",
+							// 	opentype: "add",
+							// 	data: row,
+							// 	delta: {},
+							// 	callback: function(obj, callback) {
+							// 		if (callback) {
+							// 			callback();
+							// 		}
+							// 	}
+							// };
+							// // this.doPopup(config);
+							// this.tabCardClick(config);
+						},
+						cellButtonClick(obj) {
+							var type_ = obj.column.property;
+							var row = obj.row;
+							var field = "name";
+							var tips = "";
+							
+							if(type_ == "delete"){
+								this.delData(row,field,tips);
+							} else if (type_ == "update"){
+								this.editData(obj);
+							} else if (type_ == "query"){
+								this.queryData(row);
+							}
+						},
+						//淇敼鏁版嵁浜嬩欢
+						onEditData(config, scope) {
+							var me = this;
+							var row = scope.row;
+							// var config = {
+							// 	width: 1000,
+							// 	height: 550,
+							// 	title: "缂栬緫瀹㈡埛涓绘暟鎹�",
+							// 	url: "../home/masterDataAdd.html",
+							// 	totab: true,
+							// 	sceneCode: "edit",
+							// 	opentype: "add",
+							// 	data: row,
+							// 	delta: {},
+							// 	callback: function(obj, callback) {
+							// 		me.initData();
+							// 		if (callback) {
+							// 			callback();
+							// 		}
+							// 	}
+							// };
+							// this.doPopup(config);
+						},
+						
+						
+						
+						//婊氬姩浜嬩欢
+						myFunction(e) {
+							var isToBottom_ = this.isToBottom(e);
+							if (isToBottom_) {
+								this.org_footer = true;
+							}
+							else {
+								this.org_footer = false;
+							}
+						},
+						
+						isToBottom(e) {
+							var bo_ = false;
+							if(e.srcElement.scrollTop + e.srcElement.offsetHeight >= e.srcElement.scrollHeight){
+						銆�銆�銆�銆�//宸茬粡鍒版渶搴曢儴浜�
+								bo_ = true;
+						銆�銆�}
+							return bo_;
+						},
+						
+					}
+				});
+			}
+		
+			loadJsCss(function() {
+				initVue();
+			});
+		</script>
+		
+		<style>
+			[v-cloak] {
+				display: none !important;
+			}
+			
+			.v_header .v_header_query{
+			    padding: 0px 36px;
+			    box-sizing: border-box;
+			}
+		</style>
+	</body>
+</html>
diff --git a/module/report/page/netProgress.html b/module/report/page/netProgress.html
new file mode 100644
index 0000000..b4ce640
--- /dev/null
+++ b/module/report/page/netProgress.html
@@ -0,0 +1,1294 @@
+<!DOCTYPE html>
+<html>
+	<head> 
+		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+		<title>鐪佺骇鎸傜綉杩涘睍</title>
+	</head>
+
+	<body>
+		<style type="text/css">
+			h1 {
+				margin: 0;
+				padding: 0;
+			}
+			li {
+				list-style: none;
+			}
+		</style>
+		<div v-cloak id="hbody" class="h_body" style="margin: 0;padding: 0;">
+			<div ref="ref_header" class="v_header">
+			</div>
+			<div ref="ref_main" class="v_main" style="padding: 0px 36px;">
+				<h1 style="font-weight: 600;color: #3A63A6;text-align: center;">鐪佺骇鎸傜綉杩涘睍</h1>
+				<div style="display: flex;justify-content: center;margin-top: 15px;">
+					<el-radio-group v-model="radio1" size="large" @change="change">
+					    <el-radio-button label="浜у搧1"></el-radio-button>
+					    <el-radio-button label="浜у搧2"></el-radio-button>
+					    <el-radio-button label="浜у搧3"></el-radio-button>
+					    <el-radio-button label="浜у搧4"></el-radio-button>
+					</el-radio-group>
+				</div>
+				<div class="block" style="margin-top: 15px;margin-left: 20px;">
+				   <span class="demonstration">鍒囨崲骞翠唤</span>
+				   <el-date-picker
+					 v-model="value3"
+					 type="year"
+					 @change="changeyear"
+					 placeholder="閫夋嫨骞�">
+				   </el-date-picker>
+				</div>
+				<div v-show="radio1 == '浜у搧1'" style="width: 100%;height: 100%;display: flex;justify-content: center;margin-top: 20px;">
+					<div ref="csyb" style="width: 80%;height:80%;overflow: hidden;">
+						<div id = "spread1" style="width: 100%;height: 100%;"></div>
+					</div>
+				</div>
+				 <div v-show="radio1 == '浜у搧2'" style="width: 100%;height: 100%;display: flex;justify-content: center;margin-top: 20px;">
+					<div style="width: 80%;height: 80%;overflow: hidden;">
+						<div id = "spread2" :style="{width: ewidth, height: eheight}"></div>
+					</div>
+				</div>
+				
+				<div v-show="radio1 == '浜у搧3'" style="width: 100%;height: 100%;display: flex;justify-content: center;margin-top: 20px;">
+					<div style="width: 80%;height: 80%;overflow: hidden;">
+						<div id = "spread3" :style="{width: ewidth, height: eheight}"></div>
+					</div>
+				</div>
+				<div v-show="radio1 == '浜у搧4'" style="width: 100%;height: 100%;display: flex;justify-content: center;margin-top: 20px;">
+					<div style="width: 80%;height: 80%;overflow: hidden;">
+						<div id = "spread4" :style="{width: ewidth, height: eheight}"></div>
+					</div>
+				</div>
+			</div>
+		</div>
+		
+		<script type="text/javascript">
+			function loadJsCss(callback) {
+				var jscss_urls = [
+					{id: "js6", type: "js", url: "root/js/echarts.js"},
+					{id: "js6", type: "js", url: "root/js/China.js"},
+				];
+				window.top.initJsCss(document, jscss_urls, callback);
+			}
+		
+			function initVue() {
+				new BasicsVue({
+					el: "#hbody",
+					data: {
+						value3:"2022",
+						radio1: '浜у搧1',
+						cardtablist: [
+							// {id: "6-5-2-2-1", type: "cardtab", name: "鏂板鍗忎細鏅哄簱", icon:"", img: "../../img/page/associationLibraryList.png", enname:"", url: "../../page/flow_manage/addAssociationLibraryList.html", parentid: "1", opentype: "add"},
+							// {id: "2-1-2", type: "cardtab", name: "涓ぎ涓撳搴�", icon:"", img: "../../img/page/icon_open@2x.png", enname:"", url: "../../page/flow_manage/centralfileList.html", parentid: "2", opentype: "add"},
+						],
+						page_url: "",
+						rowkey: "id",
+						dataname: "",
+						module_title: "",
+						tableHeight: 500,
+						filterAttr: {
+							columnnumber: 4,
+							labelwidth: "100px",
+							labelposition: "left",//"left",//"right",
+							size: "medium",
+							borderleft: "0px solid #c6c6c600",
+							bordertop: "8px solid #c6c6c600",
+							borderright: "0px solid #c6c6c600",
+							borderbottom: "0px solid #c6c6c600",
+							border: "3px solid #c6c6c600"
+						},
+						formButton: {
+							query: true,
+							empty: true,
+							add: false,
+							import: false,
+							export: false
+						},
+						filterObj: {},
+						filterFieldsObj: {},
+						filterFields: [
+							{isshow: "T",fieldname: "province", field: "province", name: "鐪佷唤", type: "select"},
+							{isshow: "T", fieldname: "city",field: "city",name: "鍩庡競", type: "select"},
+							// {isshow: "T", field: "field1", name: "瀹㈡埛缂栧彿", type: "select"},
+							// {isshow: "T", field: "name", fieldname: "name", name: "瀹㈡埛鍚嶇О", fieldtype: "like", type: "select"},
+							// {isshow: "T", field: "creator_name", fieldname: "creator_name", name: "瀹㈡埛灞炴��", fieldtype: "like"},
+							// {isshow: "T", field: "createtime", name: "鏄惁鍚敤",fieldtype: "inScopeInclude"},
+						],
+						
+						//Tab椤�
+						activeName: "code1",
+						wrapStyle: "",
+						viewStyle: "",
+						
+						tabList: [
+							{code: "code1", name: "鍒楄〃"},
+						],
+						tabsObj: {
+							code1: true,
+						},
+						
+						isRefresh: true,
+						pagesize: 10,
+						pagenum: 0,
+						total: 0,
+						orderby:"createtime desc",
+						ewidth:"",
+						eheight:"",
+						year:"2022",
+						dataarr:[
+							{ name: '鍖椾含', value: '宸叉寕缃�' },
+							{ name: '澶╂触', value: '宸叉寕缃�' },
+							{ name: '涓婃捣', value: '宸叉寕缃�' },
+							{ name: '閲嶅簡', value: '宸叉寕缃�' },
+							{ name: '瑗胯棌', value: '宸叉寕缃�' },
+							{ name: '瀹佸', value: '宸叉寕缃�' },
+							{ name: '鏂扮枂', value: '杩涜涓�' },
+							{ name: '棣欐腐', value: '杩涜涓�' },
+							{ name: '婢抽棬', value: '寮冭惤鏍�' },
+							{ name: '娌冲寳', value: '杩涜涓�' },
+							{ name: '灞辫タ', value: '杩涜涓�' },
+							{ name: '杈藉畞', value: '杩涜涓�' },
+							{ name: '鍚夋灄', value: '杩涜涓�' },
+							{ name: '榛戦緳姹�', value: '寰呯敵鎶�' },
+							{ name: '姹熻嫃', value: '寰呯敵鎶�' },
+							{ name: '娴欐睙', value: '寰呯敵鎶�' },
+							{ name: '瀹夊窘', value: '寰呯敵鎶�' },
+							{ name: '绂忓缓', value: '寰呯敵鎶�' },
+							{ name: '姹熻タ', value: '寰呯敵鎶�' },
+							{ name: '灞变笢', value: '寰呯敵鎶�' },
+							{ name: '娌冲崡', value: '寰呯敵鎶�' },
+							{ name: '婀栧寳', value: '寰呯敵鎶�'},
+							{ name: '婀栧崡', value: '寰呯敵鎶�' },
+							{ name: '骞夸笢', value: '寰呯敵鎶�' },
+							{ name: '娴峰崡', value: '寰呯敵鎶�' },
+							{ name: '鍥涘窛', value: '寮冭惤鏍�' },
+							{ name: '璐靛窞', value: '寮冭惤鏍�' },
+							{ name: '浜戝崡', value: '寮冭惤鏍�' },
+							{ name: '闄曡タ', value: '寮冭惤鏍�' },
+							{ name: '鐢樿們', value: '寮冭惤鏍�' },
+							{ name: '闈掓捣', value: '寮冭惤鏍�' },
+							{ name: '鍐呰挋鍙�', value: '宸叉寕缃�' },
+							{ name: '骞胯タ', value: '寰呯敵鎶�' },
+							],
+						dataarrt:[
+							{ name: '鍖椾含', value: '宸叉寕缃�' },
+							{ name: '澶╂触', value: '宸叉寕缃�' },
+							{ name: '涓婃捣', value: '寮冭惤鏍�' },
+							{ name: '閲嶅簡', value: '宸叉寕缃�' },
+							{ name: '瑗胯棌', value: '寮冭惤鏍�' },
+							{ name: '瀹佸', value: '宸叉寕缃�' },
+							{ name: '鏂扮枂', value: '杩涜涓�' },
+							{ name: '棣欐腐', value: '杩涜涓�' },
+							{ name: '婢抽棬', value: '寮冭惤鏍�' },
+							{ name: '娌冲寳', value: '杩涜涓�' },
+							{ name: '灞辫タ', value: '寮冭惤鏍�' },
+							{ name: '杈藉畞', value: '杩涜涓�' },
+							{ name: '鍚夋灄', value: '杩涜涓�' },
+							{ name: '榛戦緳姹�', value: '寰呯敵鎶�' },
+							{ name: '姹熻嫃', value: '宸叉寕缃�' },
+							{ name: '娴欐睙', value: '寰呯敵鎶�' },
+							{ name: '瀹夊窘', value: '寰呯敵鎶�' },
+							{ name: '绂忓缓', value: '宸叉寕缃�' },
+							{ name: '姹熻タ', value: '宸叉寕缃�' },
+							{ name: '灞变笢', value: '寰呯敵鎶�' },
+							{ name: '娌冲崡', value: '寰呯敵鎶�' },
+							{ name: '婀栧寳', value: '寰呯敵鎶�'},
+							{ name: '婀栧崡', value: '宸叉寕缃�' },
+							{ name: '骞夸笢', value: '寰呯敵鎶�' },
+							{ name: '娴峰崡', value: '寰呯敵鎶�' },
+							{ name: '鍥涘窛', value: '寮冭惤鏍�' },
+							{ name: '璐靛窞', value: '杩涜涓�' },
+							{ name: '浜戝崡', value: '寮冭惤鏍�' },
+							{ name: '闄曡タ', value: '杩涜涓�' },
+							{ name: '鐢樿們', value: '寮冭惤鏍�' },
+							{ name: '闈掓捣', value: '寮冭惤鏍�' },
+							{ name: '鍐呰挋鍙�', value: '宸叉寕缃�' },
+							{ name: '骞胯タ', value: '寰呯敵鎶�' },
+							],
+						dataarre:[
+							{ name: '鍖椾含', value: '宸叉寕缃�' },
+							{ name: '澶╂触', value: '宸叉寕缃�' },
+							{ name: '涓婃捣', value: '宸叉寕缃�' },
+							{ name: '閲嶅簡', value: '寰呯敵鎶�' },
+							{ name: '瑗胯棌', value: '寰呯敵鎶�' },
+							{ name: '瀹佸', value: '宸叉寕缃�' },
+							{ name: '鏂扮枂', value: '寰呯敵鎶�' },
+							{ name: '棣欐腐', value: '杩涜涓�' },
+							{ name: '婢抽棬', value: '寰呯敵鎶�' },
+							{ name: '娌冲寳', value: '杩涜涓�' },
+							{ name: '灞辫タ', value: '寰呯敵鎶�' },
+							{ name: '杈藉畞', value: '杩涜涓�' },
+							{ name: '鍚夋灄', value: '杩涜涓�' },
+							{ name: '榛戦緳姹�', value: '寰呯敵鎶�' },
+							{ name: '姹熻嫃', value: '杩涜涓�' },
+							{ name: '娴欐睙', value: '杩涜涓�' },
+							{ name: '瀹夊窘', value: '寰呯敵鎶�' },
+							{ name: '绂忓缓', value: '杩涜涓�' },
+							{ name: '姹熻タ', value: '寰呯敵鎶�' },
+							{ name: '灞变笢', value: '寰呯敵鎶�' },
+							{ name: '娌冲崡', value: '寰呯敵鎶�' },
+							{ name: '婀栧寳', value: '宸叉寕缃�'},
+							{ name: '婀栧崡', value: '寰呯敵鎶�' },
+							{ name: '骞夸笢', value: '寰呯敵鎶�' },
+							{ name: '娴峰崡', value: '寰呯敵鎶�' },
+							{ name: '鍥涘窛', value: '宸叉寕缃�' },
+							{ name: '璐靛窞', value: '宸叉寕缃�' },
+							{ name: '浜戝崡', value: '宸叉寕缃�' },
+							{ name: '闄曡タ', value: '寮冭惤鏍�' },
+							{ name: '鐢樿們', value: '宸叉寕缃�' },
+							{ name: '闈掓捣', value: '寮冭惤鏍�' },
+							{ name: '鍐呰挋鍙�', value: '宸叉寕缃�' },
+							{ name: '骞胯タ', value: '寰呯敵鎶�' },
+							],
+						dataarrf:[
+							{ name: '鍖椾含', value: '宸叉寕缃�' },
+							{ name: '澶╂触', value: '宸叉寕缃�' },
+							{ name: '涓婃捣', value: '杩涜涓�' },
+							{ name: '閲嶅簡', value: '杩涜涓�' },
+							{ name: '瑗胯棌', value: '宸叉寕缃�' },
+							{ name: '瀹佸', value: '宸叉寕缃�' },
+							{ name: '鏂扮枂', value: '杩涜涓�' },
+							{ name: '棣欐腐', value: '杩涜涓�' },
+							{ name: '婢抽棬', value: '寮冭惤鏍�' },
+							{ name: '娌冲寳', value: '杩涜涓�' },
+							{ name: '灞辫タ', value: '杩涜涓�' },
+							{ name: '杈藉畞', value: '杩涜涓�' },
+							{ name: '鍚夋灄', value: '杩涜涓�' },
+							{ name: '榛戦緳姹�', value: '寰呯敵鎶�' },
+							{ name: '姹熻嫃', value: '杩涜涓�' },
+							{ name: '娴欐睙', value: '宸叉寕缃�' },
+							{ name: '瀹夊窘', value: '杩涜涓�' },
+							{ name: '绂忓缓', value: '寰呯敵鎶�' },
+							{ name: '姹熻タ', value: '宸叉寕缃�' },
+							{ name: '灞变笢', value: '杩涜涓�' },
+							{ name: '娌冲崡', value: '寰呯敵鎶�' },
+							{ name: '婀栧寳', value: '宸叉寕缃�'},
+							{ name: '婀栧崡', value: '寰呯敵鎶�' },
+							{ name: '骞夸笢', value: '寰呯敵鎶�' },
+							{ name: '娴峰崡', value: '寰呯敵鎶�' },
+							{ name: '鍥涘窛', value: '宸叉寕缃�' },
+							{ name: '璐靛窞', value: '寰呯敵鎶�' },
+							{ name: '浜戝崡', value: '寰呯敵鎶�' },
+							{ name: '闄曡タ', value: '寰呯敵鎶�' },
+							{ name: '鐢樿們', value: '寮冭惤鏍�' },
+							{ name: '闈掓捣', value: '寮冭惤鏍�' },
+							{ name: '鍐呰挋鍙�', value: '宸叉寕缃�' },
+							{ name: '骞胯タ', value: '寰呯敵鎶�' },
+							],
+						dataarr1:[
+							{ name: '鍖椾含', value: '宸叉寕缃�' },
+							{ name: '澶╂触', value: '杩涜涓�' },
+							{ name: '涓婃捣', value: '杩涜涓�' },
+							{ name: '閲嶅簡', value: '宸叉寕缃�' },
+							{ name: '瑗胯棌', value: '宸叉寕缃�' },
+							{ name: '瀹佸', value: '宸叉寕缃�' },
+							{ name: '鏂扮枂', value: '杩涜涓�' },
+							{ name: '棣欐腐', value: '杩涜涓�' },
+							{ name: '婢抽棬', value: '寮冭惤鏍�' },
+							{ name: '娌冲寳', value: '杩涜涓�' },
+							{ name: '灞辫タ', value: '杩涜涓�' },
+							{ name: '杈藉畞', value: '杩涜涓�' },
+							{ name: '鍚夋灄', value: '杩涜涓�' },
+							{ name: '榛戦緳姹�', value: '寰呯敵鎶�' },
+							{ name: '姹熻嫃', value: '寰呯敵鎶�' },
+							{ name: '娴欐睙', value: '寮冭惤鏍�' },
+							{ name: '瀹夊窘', value: '寮冭惤鏍�' },
+							{ name: '绂忓缓', value: '寮冭惤鏍�' },
+							{ name: '姹熻タ', value: '寰呯敵鎶�' },
+							{ name: '灞变笢', value: '寰呯敵鎶�' },
+							{ name: '娌冲崡', value: '寰呯敵鎶�' },
+							{ name: '婀栧寳', value: '寰呯敵鎶�'},
+							{ name: '婀栧崡', value: '寰呯敵鎶�' },
+							{ name: '骞夸笢', value: '寰呯敵鎶�' },
+							{ name: '娴峰崡', value: '寰呯敵鎶�' },
+							{ name: '鍥涘窛', value: '寮冭惤鏍�' },
+							{ name: '璐靛窞', value: '寮冭惤鏍�' },
+							{ name: '浜戝崡', value: '寰呯敵鎶�' },
+							{ name: '闄曡タ', value: '寰呯敵鎶�' },
+							{ name: '鐢樿們', value: '寰呯敵鎶�' },
+							{ name: '闈掓捣', value: '寮冭惤鏍�' },
+							{ name: '鍐呰挋鍙�', value: '宸叉寕缃�' },
+							{ name: '骞胯タ', value: '寰呯敵鎶�' },
+							],
+						dataarr2:[
+							{ name: '鍖椾含', value: '宸叉寕缃�' },
+							{ name: '澶╂触', value: '宸叉寕缃�' },
+							{ name: '涓婃捣', value: '宸叉寕缃�' },
+							{ name: '閲嶅簡', value: '宸叉寕缃�' },
+							{ name: '瑗胯棌', value: '宸叉寕缃�' },
+							{ name: '瀹佸', value: '杩涜涓�' },
+							{ name: '鏂扮枂', value: '杩涜涓�' },
+							{ name: '棣欐腐', value: '寮冭惤鏍�' },
+							{ name: '婢抽棬', value: '寮冭惤鏍�' },
+							{ name: '娌冲寳', value: '杩涜涓�' },
+							{ name: '灞辫タ', value: '杩涜涓�' },
+							{ name: '杈藉畞', value: '杩涜涓�' },
+							{ name: '鍚夋灄', value: '杩涜涓�' },
+							{ name: '榛戦緳姹�', value: '寰呯敵鎶�' },
+							{ name: '姹熻嫃', value: '寰呯敵鎶�' },
+							{ name: '娴欐睙', value: '宸叉寕缃�' },
+							{ name: '瀹夊窘', value: '寮冭惤鏍�' },
+							{ name: '绂忓缓', value: '寰呯敵鎶�' },
+							{ name: '姹熻タ', value: '寰呯敵鎶�' },
+							{ name: '灞变笢', value: '宸叉寕缃�' },
+							{ name: '娌冲崡', value: '寰呯敵鎶�' },
+							{ name: '婀栧寳', value: '寮冭惤鏍�'},
+							{ name: '婀栧崡', value: '寰呯敵鎶�' },
+							{ name: '骞夸笢', value: '宸叉寕缃�' },
+							{ name: '娴峰崡', value: '寰呯敵鎶�' },
+							{ name: '鍥涘窛', value: '寮冭惤鏍�' },
+							{ name: '璐靛窞', value: '寮冭惤鏍�' },
+							{ name: '浜戝崡', value: '寮冭惤鏍�' },
+							{ name: '闄曡タ', value: '杩涜涓�' },
+							{ name: '鐢樿們', value: '寮冭惤鏍�' },
+							{ name: '闈掓捣', value: '杩涜涓�' },
+							{ name: '鍐呰挋鍙�', value: '宸叉寕缃�' },
+							{ name: '骞胯タ', value: '寰呯敵鎶�' },
+							],
+						dataarr3:[
+							{ name: '鍖椾含', value: '宸叉寕缃�' },
+							{ name: '澶╂触', value: '宸叉寕缃�' },
+							{ name: '涓婃捣', value: '杩涜涓�' },
+							{ name: '閲嶅簡', value: '宸叉寕缃�' },
+							{ name: '瑗胯棌', value: '宸叉寕缃�' },
+							{ name: '瀹佸', value: '宸叉寕缃�' },
+							{ name: '鏂扮枂', value: '宸叉寕缃�' },
+							{ name: '棣欐腐', value: '杩涜涓�' },
+							{ name: '婢抽棬', value: '寮冭惤鏍�' },
+							{ name: '娌冲寳', value: '杩涜涓�' },
+							{ name: '灞辫タ', value: '寰呯敵鎶�' },
+							{ name: '杈藉畞', value: '杩涜涓�' },
+							{ name: '鍚夋灄', value: '寮冭惤鏍�' },
+							{ name: '榛戦緳姹�', value: '寰呯敵鎶�' },
+							{ name: '姹熻嫃', value: '杩涜涓�' },
+							{ name: '娴欐睙', value: '寰呯敵鎶�' },
+							{ name: '瀹夊窘', value: '杩涜涓�' },
+							{ name: '绂忓缓', value: '杩涜涓�' },
+							{ name: '姹熻タ', value: '寰呯敵鎶�' },
+							{ name: '灞变笢', value: '杩涜涓�' },
+							{ name: '娌冲崡', value: '寰呯敵鎶�' },
+							{ name: '婀栧寳', value: '寰呯敵鎶�'},
+							{ name: '婀栧崡', value: '寰呯敵鎶�' },
+							{ name: '骞夸笢', value: '寰呯敵鎶�' },
+							{ name: '娴峰崡', value: '杩涜涓�' },
+							{ name: '鍥涘窛', value: '寮冭惤鏍�' },
+							{ name: '璐靛窞', value: '寮冭惤鏍�' },
+							{ name: '浜戝崡', value: '寰呯敵鎶�' },
+							{ name: '闄曡タ', value: '寰呯敵鎶�' },
+							{ name: '鐢樿們', value: '寮冭惤鏍�' },
+							{ name: '闈掓捣', value: '寮冭惤鏍�' },
+							{ name: '鍐呰挋鍙�', value: '宸叉寕缃�' },
+							{ name: '骞胯タ', value: '寰呯敵鎶�' },
+							],
+						dataarr4:[
+							{ name: '鍖椾含', value: '寮冭惤鏍�' },
+							{ name: '澶╂触', value: '宸叉寕缃�' },
+							{ name: '涓婃捣', value: '寮冭惤鏍�' },
+							{ name: '閲嶅簡', value: '宸叉寕缃�' },
+							{ name: '瑗胯棌', value: '宸叉寕缃�' },
+							{ name: '瀹佸', value: '宸叉寕缃�' },
+							{ name: '鏂扮枂', value: '寮冭惤鏍�' },
+							{ name: '棣欐腐', value: '杩涜涓�' },
+							{ name: '婢抽棬', value: '寮冭惤鏍�' },
+							{ name: '娌冲寳', value: '杩涜涓�' },
+							{ name: '灞辫タ', value: '杩涜涓�' },
+							{ name: '杈藉畞', value: '寮冭惤鏍�' },
+							{ name: '鍚夋灄', value: '杩涜涓�' },
+							{ name: '榛戦緳姹�', value: '寰呯敵鎶�' },
+							{ name: '姹熻嫃', value: '寰呯敵鎶�' },
+							{ name: '娴欐睙', value: '宸叉寕缃�' },
+							{ name: '瀹夊窘', value: '寰呯敵鎶�' },
+							{ name: '绂忓缓', value: '寰呯敵鎶�' },
+							{ name: '姹熻タ', value: '宸叉寕缃�' },
+							{ name: '灞变笢', value: '寰呯敵鎶�' },
+							{ name: '娌冲崡', value: '宸叉寕缃�' },
+							{ name: '婀栧寳', value: '寰呯敵鎶�'},
+							{ name: '婀栧崡', value: '宸叉寕缃�' },
+							{ name: '骞夸笢', value: '寰呯敵鎶�' },
+							{ name: '娴峰崡', value: '寰呯敵鎶�' },
+							{ name: '鍥涘窛', value: '寮冭惤鏍�' },
+							{ name: '璐靛窞', value: '寮冭惤鏍�' },
+							{ name: '浜戝崡', value: '宸叉寕缃�' },
+							{ name: '闄曡タ', value: '寮冭惤鏍�' },
+							{ name: '鐢樿們', value: '宸叉寕缃�' },
+							{ name: '闈掓捣', value: '寮冭惤鏍�' },
+							{ name: '鍐呰挋鍙�', value: '宸叉寕缃�' },
+							{ name: '骞胯タ', value: '寰呯敵鎶�' },
+							],
+						dataarr5:[
+							{ name: '鍖椾含', value: '宸叉寕缃�' },
+							{ name: '澶╂触', value: '宸叉寕缃�' },
+							{ name: '涓婃捣', value: '寰呯敵鎶�' },
+							{ name: '閲嶅簡', value: '宸叉寕缃�' },
+							{ name: '瑗胯棌', value: '寰呯敵鎶�' },
+							{ name: '瀹佸', value: '宸叉寕缃�' },
+							{ name: '鏂扮枂', value: '宸叉寕缃�' },
+							{ name: '棣欐腐', value: '宸叉寕缃�' },
+							{ name: '婢抽棬', value: '寮冭惤鏍�' },
+							{ name: '娌冲寳', value: '宸叉寕缃�' },
+							{ name: '灞辫タ', value: '杩涜涓�' },
+							{ name: '杈藉畞', value: '宸叉寕缃�' },
+							{ name: '鍚夋灄', value: '宸叉寕缃�' },
+							{ name: '榛戦緳姹�', value: '寰呯敵鎶�' },
+							{ name: '姹熻嫃', value: '寰呯敵鎶�' },
+							{ name: '娴欐睙', value: '寰呯敵鎶�' },
+							{ name: '瀹夊窘', value: '寰呯敵鎶�' },
+							{ name: '绂忓缓', value: '寰呯敵鎶�' },
+							{ name: '姹熻タ', value: '寰呯敵鎶�' },
+							{ name: '灞变笢', value: '寰呯敵鎶�' },
+							{ name: '娌冲崡', value: '杩涜涓�' },
+							{ name: '婀栧寳', value: '寰呯敵鎶�'},
+							{ name: '婀栧崡', value: '杩涜涓�' },
+							{ name: '骞夸笢', value: '寰呯敵鎶�' },
+							{ name: '娴峰崡', value: '寰呯敵鎶�' },
+							{ name: '鍥涘窛', value: '寮冭惤鏍�' },
+							{ name: '璐靛窞', value: '杩涜涓�' },
+							{ name: '浜戝崡', value: '寮冭惤鏍�' },
+							{ name: '闄曡タ', value: '寮冭惤鏍�' },
+							{ name: '鐢樿們', value: '杩涜涓�' },
+							{ name: '闈掓捣', value: '寮冭惤鏍�' },
+							{ name: '鍐呰挋鍙�', value: '宸叉寕缃�'},
+							{ name: '骞胯タ', value: '寰呯敵鎶�' },
+							],
+					},
+					created() {
+						var me = this;
+						this.popupParames = clone(Root.popupParames);
+						
+					},
+				
+					mounted() {
+						var me = this;
+						// this.initData();
+						this.$nextTick(function() {
+							let w_ = this.$refs.ref_header.offsetWidth;
+							let h_ = this.$refs.ref_header.offsetHeight;
+							//let h_ = 0;
+							let clientHeight = document.documentElement.clientHeight;
+							var m_h = clientHeight - h_ - 10;
+							this.tableHeight = clientHeight - h_ - 252;
+							
+							this.wrapStyle = "overflow-y: auto; width: 100%; height: " + (m_h - 50) + "px";
+							this.viewStyle = "max-height: " + (m_h - 50) + "px";
+							this.$refs.ref_main.style.height = m_h + "px";
+							me.ewidth = this.$refs.csyb.clientWidth + "px";
+							me.eheight = this.$refs.csyb.clientHeight + "px";
+							//this.$refs.ref_v_body.style.height = m_h + "px";
+						})
+						setTimeout(function(){
+							me.spread1();
+						},200);
+						setTimeout(function(){
+							me.spread2();
+							me.spread3();
+							me.spread4();
+						},500);
+					},
+					methods: {
+						GMTToStr(time){
+						    let date = new Date(time)
+						    let Str=date.getFullYear()
+						    return Str
+						},
+						changeyear(){
+							var me = this;
+							var year = me.value3;
+							year = this.GMTToStr(year)
+							if(year == "2022"){
+								me.dataarr = me.dataarr;
+								me.dataarrt = me.dataarrt;
+								me.dataarre = me.dataarre;
+								me.dataarrf = me.dataarrf;
+							}else if(year == "2021"){
+								me.dataarr = me.dataarr1;
+								me.dataarrt = me.dataarr1;
+								me.dataarre = me.dataarr1;
+								me.dataarrf = me.dataarr1;
+							}else if(year == "2020"){
+								me.dataarr = me.dataarr2;
+								me.dataarrt = me.dataarr2;
+								me.dataarre = me.dataarr2;
+								me.dataarrf = me.dataarr2;
+							}else if(year == "2019" || year == "2018" || year == "2017"){
+								me.dataarr = me.dataarr3;
+								me.dataarrt = me.dataarr3;
+								me.dataarre = me.dataarr3;
+								me.dataarrf = me.dataarr3;
+							}else if(year == "2016" || year == "2015" || year == "2014"){
+								me.dataarr = me.dataarr4;
+								me.dataarrt = me.dataarr4;
+								me.dataarre = me.dataarr4;
+								me.dataarrf = me.dataarr4;
+							}else if(year == "2013" || year == "2012" || year == "2011"){
+								me.dataarr = me.dataarr5;
+								me.dataarrt = me.dataarr5;
+								me.dataarre = me.dataarr5;
+								me.dataarrf = me.dataarr5;
+							}else if(year == "2010" || year == "2009" || year == "2008"){
+								me.dataarr = me.dataarr2;
+								me.dataarrt = me.dataarr2;
+								me.dataarre = me.dataarr2;
+								me.dataarrf = me.dataarr2;
+							}
+							this.spread1();
+							this.spread2();
+							this.spread3();
+							this.spread4();
+						},
+						change() {
+							// console.log('123')
+						},
+						spread1(){
+							var spreadDom1 = document.getElementById('spread1');
+							var spreadChart1 = echarts.init(spreadDom1);
+							var me = this;
+							const data = me.dataarr;
+							
+							//鍙栧悇鐪佷唤鐨勪腑蹇冨潗鏍囧瓨鍒癵eoCoordMap涓�
+							let geoCoordMap = {};
+							const getGeo = function(areaName){
+								for (let i = 0; i < areaName.features.length; i++) {
+									geoCoordMap[areaName.features[i].properties.name] = areaName.features[i].properties.center;
+								}
+								return geoCoordMap;
+							}
+							getGeo(China);
+							
+							const convertData = function (data) {
+							    var res = [];
+							    for (var i = 0; i < data.length; i++) {
+							        var geoCoord = geoCoordMap[data[i].name];
+							        if (geoCoord) {
+							        res.push({
+							            name: data[i].name,
+							            value: geoCoord.concat(data[i].value)
+							        });
+							        }
+							        // console.log(res)
+							    }
+							    return res;
+							};
+							var spreadOption1 = {
+							    // 鑳屾櫙棰滆壊
+							    backgroundColor: "",
+							    // 鎻愮ず娴獥鏍峰紡
+							    tooltip: {
+							        show: true,
+							        formatter:function(params){
+							            // console.log(params)
+							            return params.name+'  :  '+params.data.value[2]
+							        },
+							        trigger: "item",
+							        alwaysShowContent: false,
+							        backgroundColor: "#0C121C",
+							        borderColor: "rgba(0, 0, 0, 0.16);",
+							        hideDelay: 100,
+							        triggerOn: "mousemove",
+							        enterable: true,
+							        textStyle: {
+							            color: "#DADADA",
+							            fontSize: "12",
+							            width: 20,
+							            height: 30,
+							            overflow: "break",
+							        },
+							        showDelay: 100,
+							    },
+							    visualMap: {
+							        label:{
+							            // show:false
+							        },
+							        show:true,
+							        type:'piecewise',
+							        // dimension:2,
+							        categories:['宸叉寕缃�','杩涜涓�','寰呯敵鎶�','寮冭惤鏍�'],
+							        inRange: {
+							            color: ['ForestGreen', 'Gold', 'LightSalmon','Red']
+							        }
+							    },
+							    series:[
+							        {
+							            name:'鐪佺骇鎸傜綉杩涘睍',
+							            type:'map',
+							            mapType:'china',
+							            geoIndex:0,
+							            data:convertData(data),
+							        }
+							    ],
+							    geo: {
+							        map: "china",
+							        // left:"40px",
+							        // right:"40px",
+							        top:'30%',
+							        zoom:1.6,
+							        label: {
+							            // 閫氬父鐘舵�佷笅鐨勬牱寮�
+							            normal: {
+							                show: true,
+							                textStyle: {
+							                    color: "white",
+							                    fontWeight:'bold',
+							                    fontSize:10                        
+							                },
+							            },
+							            // 榧犳爣鏀句笂鍘荤殑鏍峰紡
+							            emphasis: {
+							                // show:false,
+							                textStyle: {
+							                    color: "#fff",
+							                },
+							            },
+							        },
+							        // 鍦板浘鍖哄煙鐨勬牱寮忚缃�
+							        itemStyle: {
+							            normal: {
+							                borderColor: "rgba(32,178,170, 0.5)",
+							                borderWidth: 1,
+							                areaColor: '#f0e68c',
+							            },
+							            // 榧犳爣鏀句笂鍘婚珮浜殑鏍峰紡
+							            emphasis: {
+							                areaColor: "MediumAquamarine",
+							                borderWidth: 0,
+							            }
+							        },
+							    },
+							};
+							
+							// 鍦板浘娉ㄥ唽锛岀涓�涓弬鏁扮殑鍚嶅瓧蹇呴』鍜宱ption.geo.map涓�鑷�
+							echarts.registerMap("china",China)
+							spreadChart1.setOption(spreadOption1);
+						},
+						spread2(){
+							var spreadDom2 = document.getElementById('spread2');
+							var spreadChart2 = echarts.init(spreadDom2);
+							var me = this;
+							const data = me.dataarrt;
+							
+							//鍙栧悇鐪佷唤鐨勪腑蹇冨潗鏍囧瓨鍒癵eoCoordMap涓�
+							let geoCoordMap = {};
+							const getGeo = function(areaName){
+								for (let i = 0; i < areaName.features.length; i++) {
+									geoCoordMap[areaName.features[i].properties.name] = areaName.features[i].properties.center;
+								}
+								return geoCoordMap;
+							}
+							getGeo(China);
+							
+							const convertData = function (data) {
+							    var res = [];
+							    for (var i = 0; i < data.length; i++) {
+							        var geoCoord = geoCoordMap[data[i].name];
+							        if (geoCoord) {
+							        res.push({
+							            name: data[i].name,
+							            value: geoCoord.concat(data[i].value)
+							        });
+							        }
+							        // console.log(res)
+							    }
+							    return res;
+							};
+							var spreadOption2 = {
+							    // 鑳屾櫙棰滆壊
+							    backgroundColor: "",
+							    // 鎻愮ず娴獥鏍峰紡
+							    tooltip: {
+							        show: true,
+							        formatter:function(params){
+							            // console.log(params)
+							            return params.name+'  :  '+params.data.value[2]
+							        },
+							        trigger: "item",
+							        alwaysShowContent: false,
+							        backgroundColor: "#0C121C",
+							        borderColor: "rgba(0, 0, 0, 0.16);",
+							        hideDelay: 100,
+							        triggerOn: "mousemove",
+							        enterable: true,
+							        textStyle: {
+							            color: "#DADADA",
+							            fontSize: "12",
+							            width: 20,
+							            height: 30,
+							            overflow: "break",
+							        },
+							        showDelay: 100,
+							    },
+							    visualMap: {
+							        label:{
+							            // show:false
+							        },
+							        show:true,
+							        type:'piecewise',
+							        // dimension:2,
+							        categories:['宸叉寕缃�','杩涜涓�','寰呯敵鎶�','寮冭惤鏍�'],
+							        inRange: {
+							            color: ['ForestGreen', 'Gold', 'LightSalmon','Red']
+							        }
+							    },
+							    series:[
+							        {
+							            name:'鐪佺骇鎸傜綉杩涘睍',
+							            type:'map',
+							            mapType:'china',
+							            geoIndex:0,
+							            data:convertData(data),
+							        }
+							    ],
+							    geo: {
+							        map: "china",
+							        // left:"40px",
+							        // right:"40px",
+							        top:'30%',
+							        zoom:1.6,
+							        label: {
+							            // 閫氬父鐘舵�佷笅鐨勬牱寮�
+							            normal: {
+							                show: true,
+							                textStyle: {
+							                    color: "white",
+							                    fontWeight:'bold',
+							                    fontSize:10                        
+							                },
+							            },
+							            // 榧犳爣鏀句笂鍘荤殑鏍峰紡
+							            emphasis: {
+							                // show:false,
+							                textStyle: {
+							                    color: "#fff",
+							                },
+							            },
+							        },
+							        // 鍦板浘鍖哄煙鐨勬牱寮忚缃�
+							        itemStyle: {
+							            normal: {
+							                borderColor: "rgba(32,178,170, 0.5)",
+							                borderWidth: 1,
+							                areaColor: '#f0e68c',
+							            },
+							            // 榧犳爣鏀句笂鍘婚珮浜殑鏍峰紡
+							            emphasis: {
+							                areaColor: "MediumAquamarine",
+							                borderWidth: 0,
+							            }
+							        },
+							    },
+							};
+							
+							// 鍦板浘娉ㄥ唽锛岀涓�涓弬鏁扮殑鍚嶅瓧蹇呴』鍜宱ption.geo.map涓�鑷�
+							echarts.registerMap("china",China)
+							spreadChart2.setOption(spreadOption2);
+						},
+						spread3(){
+							var spreadDom3 = document.getElementById('spread3');
+							var spreadChart3 = echarts.init(spreadDom3);
+							var me = this;
+							const data = me.dataarre;
+							
+							//鍙栧悇鐪佷唤鐨勪腑蹇冨潗鏍囧瓨鍒癵eoCoordMap涓�
+							let geoCoordMap = {};
+							const getGeo = function(areaName){
+								for (let i = 0; i < areaName.features.length; i++) {
+									geoCoordMap[areaName.features[i].properties.name] = areaName.features[i].properties.center;
+								}
+								return geoCoordMap;
+							}
+							getGeo(China);
+							
+							const convertData = function (data) {
+							    var res = [];
+							    for (var i = 0; i < data.length; i++) {
+							        var geoCoord = geoCoordMap[data[i].name];
+							        if (geoCoord) {
+							        res.push({
+							            name: data[i].name,
+							            value: geoCoord.concat(data[i].value)
+							        });
+							        }
+							        // console.log(res)
+							    }
+							    return res;
+							};
+							var spreadOption3 = {
+							    // 鑳屾櫙棰滆壊
+							    backgroundColor: "",
+							    // 鎻愮ず娴獥鏍峰紡
+							    tooltip: {
+							        show: true,
+							        formatter:function(params){
+							            // console.log(params)
+							            return params.name+'  :  '+params.data.value[2]
+							        },
+							        trigger: "item",
+							        alwaysShowContent: false,
+							        backgroundColor: "#0C121C",
+							        borderColor: "rgba(0, 0, 0, 0.16);",
+							        hideDelay: 100,
+							        triggerOn: "mousemove",
+							        enterable: true,
+							        textStyle: {
+							            color: "#DADADA",
+							            fontSize: "12",
+							            width: 20,
+							            height: 30,
+							            overflow: "break",
+							        },
+							        showDelay: 100,
+							    },
+							    visualMap: {
+							        label:{
+							            // show:false
+							        },
+							        show:true,
+							        type:'piecewise',
+							        // dimension:2,
+							        categories:['宸叉寕缃�','杩涜涓�','寰呯敵鎶�','寮冭惤鏍�'],
+							        inRange: {
+							            color: ['ForestGreen', 'Gold', 'LightSalmon','Red']
+							        }
+							    },
+							    series:[
+							        {
+							            name:'鐪佺骇鎸傜綉杩涘睍',
+							            type:'map',
+							            mapType:'china',
+							            geoIndex:0,
+							            data:convertData(data),
+							        }
+							    ],
+							    geo: {
+							        map: "china",
+							        // left:"40px",
+							        // right:"40px",
+							        top:'30%',
+							        zoom:1.6,
+							        label: {
+							            // 閫氬父鐘舵�佷笅鐨勬牱寮�
+							            normal: {
+							                show: true,
+							                textStyle: {
+							                    color: "white",
+							                    fontWeight:'bold',
+							                    fontSize:10                        
+							                },
+							            },
+							            // 榧犳爣鏀句笂鍘荤殑鏍峰紡
+							            emphasis: {
+							                // show:false,
+							                textStyle: {
+							                    color: "#fff",
+							                },
+							            },
+							        },
+							        // 鍦板浘鍖哄煙鐨勬牱寮忚缃�
+							        itemStyle: {
+							            normal: {
+							                borderColor: "rgba(32,178,170, 0.5)",
+							                borderWidth: 1,
+							                areaColor: '#f0e68c',
+							            },
+							            // 榧犳爣鏀句笂鍘婚珮浜殑鏍峰紡
+							            emphasis: {
+							                areaColor: "MediumAquamarine",
+							                borderWidth: 0,
+							            }
+							        },
+							    },
+							};
+							
+							// 鍦板浘娉ㄥ唽锛岀涓�涓弬鏁扮殑鍚嶅瓧蹇呴』鍜宱ption.geo.map涓�鑷�
+							echarts.registerMap("china",China)
+							spreadChart3.setOption(spreadOption3);
+						},
+						spread4(){
+							var spreadDom4 = document.getElementById('spread4');
+							var spreadChart4 = echarts.init(spreadDom4);
+							var me = this;
+							const data = me.dataarrf;
+							
+							//鍙栧悇鐪佷唤鐨勪腑蹇冨潗鏍囧瓨鍒癵eoCoordMap涓�
+							let geoCoordMap = {};
+							const getGeo = function(areaName){
+								for (let i = 0; i < areaName.features.length; i++) {
+									geoCoordMap[areaName.features[i].properties.name] = areaName.features[i].properties.center;
+								}
+								return geoCoordMap;
+							}
+							getGeo(China);
+							
+							const convertData = function (data) {
+							    var res = [];
+							    for (var i = 0; i < data.length; i++) {
+							        var geoCoord = geoCoordMap[data[i].name];
+							        if (geoCoord) {
+							        res.push({
+							            name: data[i].name,
+							            value: geoCoord.concat(data[i].value)
+							        });
+							        }
+							        // console.log(res)
+							    }
+							    return res;
+							};
+							var spreadOption4 = {
+							    // 鑳屾櫙棰滆壊
+							    backgroundColor: "",
+							    // 鎻愮ず娴獥鏍峰紡
+							    tooltip: {
+							        show: true,
+							        formatter:function(params){
+							            // console.log(params)
+							            return params.name+'  :  '+params.data.value[2]
+							        },
+							        trigger: "item",
+							        alwaysShowContent: false,
+							        backgroundColor: "#0C121C",
+							        borderColor: "rgba(0, 0, 0, 0.16);",
+							        hideDelay: 100,
+							        triggerOn: "mousemove",
+							        enterable: true,
+							        textStyle: {
+							            color: "#DADADA",
+							            fontSize: "12",
+							            width: 20,
+							            height: 30,
+							            overflow: "break",
+							        },
+							        showDelay: 100,
+							    },
+							    visualMap: {
+							        label:{
+							            // show:false
+							        },
+							        show:true,
+							        type:'piecewise',
+							        // dimension:2,
+							        categories:['宸叉寕缃�','杩涜涓�','寰呯敵鎶�','寮冭惤鏍�'],
+							        inRange: {
+							            color: ['ForestGreen', 'Gold', 'LightSalmon','Red']
+							        }
+							    },
+							    series:[
+							        {
+							            name:'鐪佺骇鎸傜綉杩涘睍',
+							            type:'map',
+							            mapType:'china',
+							            geoIndex:0,
+							            data:convertData(data),
+							        }
+							    ],
+							    geo: {
+							        map: "china",
+							        // left:"40px",
+							        // right:"40px",
+							        top:'30%',
+							        zoom:1.6,
+							        label: {
+							            // 閫氬父鐘舵�佷笅鐨勬牱寮�
+							            normal: {
+							                show: true,
+							                textStyle: {
+							                    color: "white",
+							                    fontWeight:'bold',
+							                    fontSize:10                        
+							                },
+							            },
+							            // 榧犳爣鏀句笂鍘荤殑鏍峰紡
+							            emphasis: {
+							                // show:false,
+							                textStyle: {
+							                    color: "#fff",
+							                },
+							            },
+							        },
+							        // 鍦板浘鍖哄煙鐨勬牱寮忚缃�
+							        itemStyle: {
+							            normal: {
+							                borderColor: "rgba(32,178,170, 0.5)",
+							                borderWidth: 1,
+							                areaColor: '#f0e68c',
+							            },
+							            // 榧犳爣鏀句笂鍘婚珮浜殑鏍峰紡
+							            emphasis: {
+							                areaColor: "MediumAquamarine",
+							                borderWidth: 0,
+							            }
+							        },
+							    },
+							};
+							
+							// 鍦板浘娉ㄥ唽锛岀涓�涓弬鏁扮殑鍚嶅瓧蹇呴』鍜宱ption.geo.map涓�鑷�
+							echarts.registerMap("china",China)
+							spreadChart4.setOption(spreadOption4);
+						},
+						initData() {
+							var me = this;
+							let param_ = {
+								isClientMode: false,
+								dataname: this.dataname,
+								page: {
+									pageno: this.pagenum,
+									pagesize: this.pagesize
+								},
+							}
+							Server.call("root/data/getEntitySet", param_, function(result) {
+								me.total = 0;
+								me.tableData = [];
+								if (result && result.data) {
+									me.total = result.data.page.recordcount;
+									var data_ = result.data.entityset;
+									// console.log(data_)
+									me.tableData = data_;
+								}
+							});
+						},
+						showFilterPopup() {
+							
+						},
+						onInitFilter() {
+							this.filterObj = {}
+							this.onQuery();
+						},
+						onEditFilter() {
+							
+						},
+						getData(page) {
+							this.pagesize = page.pagesize;
+							this.pagenum = page.pagenum;
+							this.doQuery();
+						},
+						handleClick(tab) {
+							this.AnchorLinkTo(tab.name);
+						},
+						formSelectChange(obj) {
+							var me = this;
+							var fieldObj = obj.fieldobj;
+							var filterFieldsData = clone(me.filterFields);
+							
+							if (fieldObj.field == "province") {
+								var filterObj_ = clone(me.filterObj);
+								filterObj_.city = null;
+								me.filterObj = filterObj_;
+								let param_ = {
+									isClientMode: false,
+									dataname: "md_province",
+									filter: [
+										{field: "name", value:obj.data.province}
+									]
+								}
+								Server.call("root/data/getEntitySet", param_, function(result) {
+									if (result && result.data) {
+										let param_ = {
+											isClientMode: false,
+											dataname: "md_vip_area",
+											filter:[
+												{"field": "province_id", "value":result.data.entityset[0].id}
+											]
+										}
+										Server.call("root/data/getEntitySet", param_, function(result) {
+											if (result && result.data) {
+												var options_ = result.data.entityset;
+												for(var i=0; i<options_.length;i++) {
+													options_[i].label = options_[i].name;
+													options_[i].value = options_[i].name;
+													
+												}
+												filterFieldsData.map(e=>{
+													if(e.field == "city") {
+														e.options = options_;
+													}
+												})
+											}
+											me.filterFields = filterFieldsData;
+										});
+									}
+								});
+							}
+						},
+						
+						//鍔ㄦ�佸姞杞戒笅鎷夐」
+						cellVisibleChange(obj, row) {
+							let me = this;
+							var filterFieldsData = clone(me.filterFields);
+							if (obj.field == "province") {
+								var filterFieldsData = clone(me.filterFields);
+								let param_ = {
+									isClientMode: false,
+									dataname: "md_province",
+								}
+								Server.call("root/data/getEntitySet", param_, function(result) {
+									if (result && result.data) {
+										var options_ = result.data.entityset;
+										for(var i=0; i<options_.length;i++) {
+											options_[i].label = options_[i].name;
+											options_[i].value = options_[i].name;
+										}
+										filterFieldsData.map(e=>{
+											if(e.field == "province") {
+												e.options = options_;
+											}
+										})
+									}
+									me.filterFields = filterFieldsData;
+								});
+							}
+						},
+						
+						onFormButtonByCode(code) {
+							if (code == "add") {//娣诲姞
+								// let me = this;
+								// var config = {
+								// 	totab: true,
+								// 	title: "瀹㈡埛涓绘暟鎹柊澧�",
+								// 	url: "../home/masterDataAdd.html",
+								// 	data: {},
+								// 	delta: {},
+								// 	opentype: "add",
+								// 	sceneCode: "add",
+								// 	width: 780,
+								// 	height: 420,
+								// 	callback: function(obj, callback) {
+								// 		me.onQuery();
+								// 		if (callback) {
+								// 			callback();
+								// 		}
+								// 	}
+								// };
+								// Root.showPopup(config);
+								// this.tabCardClick(config);
+							}
+							else if (code == "import") {//瀵煎叆
+								
+							}
+							else if (code == "export") {//瀵煎嚭
+								
+							}
+						},
+						cellClick(obj) {//鍗曞厓鏍肩偣鍑�
+							var field = obj.column.property;
+							var row = obj.row;
+							var tableField = obj.tableField;
+							// if(tableField.field == "field2") {
+							// 	var to_page = {
+							// 		totab: true,
+							// 		title: "瀹㈡埛鏄庣粏(涓绘暟鎹�)",
+							// 		url: "../home/masterDataCustomerDetails.html",
+							// 		data: {},
+							// 		delta: {},
+							// 		opentype: "add",
+							// 		sceneCode: "add",
+							// 		width: 1100,
+							// 		height: 550,
+							// 		callback: function(obj, callback) {
+							// 			me.onQuery();
+							// 			if (callback) {
+							// 				callback();
+							// 			}
+							// 		}
+							// 	};
+							// 	Root.showPopup(to_page);
+							// }
+						},
+						queryData(row) {
+							let me = this;
+							
+							// var config = {
+							// 	width: 1000,
+							// 	height: 550,
+							// 	title: "鏌ョ湅鍗忎細鏅哄簱妗f",
+							// 	url: "../flow_manage/addAssociationLibraryList.html",
+							// 	totab: true,
+							// 	sceneCode: "query",
+							// 	opentype: "add",
+							// 	data: row,
+							// 	delta: {},
+							// 	callback: function(obj, callback) {
+							// 		if (callback) {
+							// 			callback();
+							// 		}
+							// 	}
+							// };
+							// // this.doPopup(config);
+							// this.tabCardClick(config);
+						},
+						cellButtonClick(obj) {
+							var type_ = obj.column.property;
+							var row = obj.row;
+							var field = "name";
+							var tips = "";
+							
+							if(type_ == "delete"){
+								this.delData(row,field,tips);
+							} else if (type_ == "update"){
+								this.editData(obj);
+							} else if (type_ == "query"){
+								this.queryData(row);
+							}
+						},
+						//淇敼鏁版嵁浜嬩欢
+						onEditData(config, scope) {
+							var me = this;
+							var row = scope.row;
+							// var config = {
+							// 	width: 1000,
+							// 	height: 550,
+							// 	title: "缂栬緫瀹㈡埛涓绘暟鎹�",
+							// 	url: "../home/masterDataAdd.html",
+							// 	totab: true,
+							// 	sceneCode: "edit",
+							// 	opentype: "add",
+							// 	data: row,
+							// 	delta: {},
+							// 	callback: function(obj, callback) {
+							// 		me.initData();
+							// 		if (callback) {
+							// 			callback();
+							// 		}
+							// 	}
+							// };
+							// this.doPopup(config);
+						},
+						
+						
+						
+						//婊氬姩浜嬩欢
+						myFunction(e) {
+							var isToBottom_ = this.isToBottom(e);
+							if (isToBottom_) {
+								this.org_footer = true;
+							}
+							else {
+								this.org_footer = false;
+							}
+						},
+						
+						isToBottom(e) {
+							var bo_ = false;
+							if(e.srcElement.scrollTop + e.srcElement.offsetHeight >= e.srcElement.scrollHeight){
+						銆�銆�銆�銆�//宸茬粡鍒版渶搴曢儴浜�
+								bo_ = true;
+						銆�銆�}
+							return bo_;
+						},
+						
+					}
+				});
+			}
+		
+			loadJsCss(function() {
+				initVue();
+			});
+		</script>
+		
+		<style>
+			[v-cloak] {
+				display: none !important;
+			}
+			
+			.v_header .v_header_query{
+			    padding: 0px 36px;
+			    box-sizing: border-box;
+			}
+		</style>
+	</body>
+</html>
diff --git a/module/report/page/overallChannelSalesProgress.html b/module/report/page/overallChannelSalesProgress.html
new file mode 100644
index 0000000..01a9527
--- /dev/null
+++ b/module/report/page/overallChannelSalesProgress.html
@@ -0,0 +1,2025 @@
+<!DOCTYPE html>
+<html>
+	<head> 
+		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+		<title>娓犻亾鏁翠綋閿�鍞繘灞�</title>
+	</head>
+
+	<body>
+		<style type="text/css">
+			h5,ul,h1 {
+				margin: 0;
+				padding: 0;
+			}
+			li {
+				list-style: none;
+			}
+		</style>
+		<div v-cloak id="hbody" class="h_body" style="margin: 0;padding: 0;">
+			<div ref="ref_header" class="v_header">
+			</div>
+			<div ref="ref_main" class="v_main" style="padding: 0px 36px;">
+				<div style="width: 100%;height: 150vh;">
+					<h1 style="font-weight: 600;color: #3A63A6;text-align: center;margin-bottom: 20px;">娓犻亾鏁翠綋閿�鍞繘灞�</h1>
+					<div class="block" style="margin-top: 15px;margin-left: 20px;">
+					   <span class="demonstration">鍒囨崲鏈堜唤</span>
+					   <el-date-picker
+					     v-model="value2"
+					     type="month"
+						 @change="changemon"
+					     placeholder="閫夋嫨鏈�">
+					   </el-date-picker>
+					</div>
+					<div style="width: 75%;height: 150vh;float: left;">
+						<div style="width: 100%;height: 40%;float: left;display: flex;justify-content: center;align-items: center;">
+							<div id = "invoicing" style = "width: 100%; height: 100%;" ></div>
+						</div>
+						<div style="width: 100%;height: 60%;float: left;">
+							<div style="width: 100%;height: 50%;display: flex;justify-content: center;align-items: center;">
+								<div style="width: 45%;height: 100%;display: flex;justify-content: center;align-items: center;">
+									<div id = "sale1" style = "width: 100%; height: 100%;" ></div>
+								</div>
+								<div style="width: 45%;height: 100%;display: flex;justify-content: center;align-items: center;">
+									<div id = "sale2" style = "width: 100%; height: 100%;" ></div>
+								</div>
+							</div>
+							<div style="width: 100%;height: 50%;display: flex;justify-content: center;align-items: center;">
+								<div style="width: 45%;height: 100%;">
+									<div id = "sale3" style = "width: 100%; height: 100%;" ></div>
+								</div>
+								<div style="width: 45%;height: 100%;display: flex;justify-content: center;align-items: center;">
+									<div id = "sale4" style = "width: 100%; height: 100%;" ></div>
+								</div>
+							</div>
+						</div>
+					</div>
+					<div style="width: 25%;height: 150vh;float: left;display: flex;flex-direction: column;justify-content: flex-start;">
+						<div style="width: 100%;height: 33.33%;float: left;display: flex;justify-content: center;align-items: center;">
+							<div id = "pie1" style = "width: 100%; height: 100%;" ></div>
+						</div>
+						<div style="width: 100%;height: 33.33%;float: left;display: flex;justify-content: center;align-items: center;">
+							<div id = "pie2" style = "width: 100%; height: 100%;" ></div>
+						</div>
+						<div style="width: 100%;height: 33.33%;float: left;display: flex;justify-content: center;align-items: center;">
+							<div id = "pie3" style = "width: 100%; height: 100%;" ></div>
+						</div>
+					</div>
+				</div>
+				<div style="width: 100%;height: 75vh;margin-top: 60px;">
+					<div id = "sales" style="width: 100%; height: 100%"></div>
+				</div>
+				<div style="width: 100%;height: 30px;"></div>
+			</div>
+			
+		</div>
+		
+		<script type="text/javascript">
+			function loadJsCss(callback) {
+				var jscss_urls = [
+					{id: "js6", type: "js", url: "root/js/echarts.js"},
+					{id: "js7", type: "js", url: "root/js/China.js"},
+					{id: "js8", type: "js", url: "root/js/Province.js"},
+				];
+				window.top.initJsCss(document, jscss_urls, callback);
+			}
+		
+			function initVue() {
+				new BasicsVue({
+					el: "#hbody",
+					data: {
+						value2:"2022-06",
+						radio1: '鎬婚噺',
+						radio2: '浜у搧',
+						cardtablist: [
+							// {id: "6-5-2-2-1", type: "cardtab", name: "鏂板鍗忎細鏅哄簱", icon:"", img: "../../img/page/associationLibraryList.png", enname:"", url: "../../page/flow_manage/addAssociationLibraryList.html", parentid: "1", opentype: "add"},
+							// {id: "2-1-2", type: "cardtab", name: "涓ぎ涓撳搴�", icon:"", img: "../../img/page/icon_open@2x.png", enname:"", url: "../../page/flow_manage/centralfileList.html", parentid: "2", opentype: "add"},
+						],
+						page_url: "",
+						rowkey: "id",
+						dataname: "",
+						module_title: "",
+						tableHeight: 500,
+						filterAttr: {
+							columnnumber: 4,
+							labelwidth: "100px",
+							labelposition: "left",//"left",//"right",
+							size: "medium",
+							borderleft: "0px solid #c6c6c600",
+							bordertop: "8px solid #c6c6c600",
+							borderright: "0px solid #c6c6c600",
+							borderbottom: "0px solid #c6c6c600",
+							border: "3px solid #c6c6c600"
+						},
+						formButton: {
+							query: true,
+							empty: true,
+							add: false,
+							import: false,
+							export: false
+						},
+						filterObj: {},
+						filterFieldsObj: {},
+						filterFields: [
+							{isshow: "T",fieldname: "province", field: "province", name: "鐪佷唤", type: "select"},
+							{isshow: "T", fieldname: "city",field: "city",name: "鍩庡競", type: "select"},
+							// {isshow: "T", field: "field1", name: "瀹㈡埛缂栧彿", type: "select"},
+							// {isshow: "T", field: "name", fieldname: "name", name: "瀹㈡埛鍚嶇О", fieldtype: "like", type: "select"},
+							// {isshow: "T", field: "creator_name", fieldname: "creator_name", name: "瀹㈡埛灞炴��", fieldtype: "like"},
+							// {isshow: "T", field: "createtime", name: "鏄惁鍚敤",fieldtype: "inScopeInclude"},
+						],
+						//Tab椤�
+						activeName: "code1",
+						wrapStyle: "",
+						viewStyle: "",
+						
+						tabList: [
+							{code: "code1", name: "鍒楄〃"},
+						],
+						tabsObj: {
+							code1: true,
+						},
+						
+						isRefresh: true,
+						pagesize: 10,
+						pagenum: 0,
+						total: 0,
+						orderby:"createtime desc",
+						year:"",
+						month:"",
+						datearr:['2021-06', '2021-07', '2021-08', '2021-09', '2021-10', '2021-11', '2021-12', '2022-01', '2022-02', '2022-03', '2022-04', '2022-05', '2022-06'],
+					},
+					created() {
+						var me = this;
+						this.popupParames = clone(Root.popupParames);
+					},
+				
+					mounted() {
+						var me = this;
+						// this.initData();
+						this.$nextTick(function() {
+							let w_ = this.$refs.ref_header.offsetWidth;
+							let h_ = this.$refs.ref_header.offsetHeight;
+							//let h_ = 0;
+							let clientHeight = document.documentElement.clientHeight;
+							var m_h = clientHeight - h_ - 10;
+							this.tableHeight = clientHeight - h_ - 252;
+							
+							this.wrapStyle = "overflow-y: auto; width: 100%; height: " + (m_h - 50) + "px";
+							this.viewStyle = "max-height: " + (m_h - 50) + "px";
+							this.$refs.ref_main.style.height = m_h + "px";
+							//this.$refs.ref_v_body.style.height = m_h + "px";
+							me.invoicing();
+							me.pie1();
+							me.sale1();
+							me.sale2();
+							me.pie2();
+							me.sale3();
+							me.sale4();
+							me.pie3();
+							me.sales();
+						})
+					},
+					methods: {
+						GMTToStr(time){
+						    let date = new Date(time)
+						    let Str=date.getFullYear() + '-' +
+						    (date.getMonth() + 1) + '-' +
+						    date.getDate()
+						    return Str
+						},
+						changemon(){
+							var me = this;
+							me.value2 = this.GMTToStr(me.value2)
+							var year = me.value2.split('-')[0];
+							var month = me.value2.split('-')[1];
+							var mon = this.getNearMonth(year,month);
+							// mon = mon.reverse();
+							// console.log(mon)
+						},
+						getNearMonth(year,month) {
+							var me = this;
+							var dataArr = [];
+							// var data = new Date();
+							// var year = data.getFullYear();
+							year = parseInt(year);
+							month = parseInt(month);
+							// console.log(month,year)
+							month = month + 1;//鑾峰彇鍒板綋鍓嶆湀浠�,璁剧疆鏈堜唤
+							for (var i = 0; i < 13; i++) {
+							    month = month - 1;//姣忔寰幆涓�娆� 鏈堜唤鍊煎噺1
+							    var m = month;
+							    m = m < 10 ? "0" + m : m;
+							    dataArr.push(year + "-" + (m))
+								if(m == 1){
+									year--;
+									month = 13
+								}
+							}
+							dataArr = dataArr.reverse();
+							me.datearr = dataArr;
+							// console.log(me.datearr);
+							me.invoicing();
+							me.sale1();
+							me.sale2();
+							me.sale3();
+							me.sale4();
+						},
+						
+						//鍦板浘
+						sales(){
+							 var salesDom = document.getElementById('sales');
+							        var salesChart = echarts.init(salesDom);
+							
+							        //鍦板浘鏄剧ずname涓庡湴鍥炬敞鍐宯ame鐨勬槧灏�
+							        const dict = {
+							            "鍖椾含":'Beijing',
+							            "澶╂触":'Tianjin',
+							            "涓婃捣":'Shanghai',
+							            "閲嶅簡":'Chongqing',
+							            "瑗胯棌":'Xizang',
+							            "瀹佸":'Ningxia',
+							            "鏂扮枂":'Xinjiang',
+							            "棣欐腐":'Xianggang',
+							            // "婢抽棬":'Aomen',
+							            "娌冲寳":'Hebei',
+							            "灞辫タ":'Shanxi1',
+							            "杈藉畞":'Liaoning',
+							            "鍚夋灄":'Jilin',
+							            "榛戦緳姹�":'Heilongjiang',
+							            "姹熻嫃":'Jiangsu',
+							            "娴欐睙":'Zhejiang',
+							            "瀹夊窘":'Anhui',
+							            "绂忓缓":'Fujian',
+							            "姹熻タ":'Jiangxi',
+							            "灞变笢":'Shandong',
+							            "娌冲崡":'Henan',
+							            "婀栧寳":'Hubei',
+							            "婀栧崡":'Hunan',
+							            "骞夸笢":'Guangdong',
+							            "娴峰崡":'Hainan',
+							            "鍥涘窛":'Sichuan',
+							            "璐靛窞":'Guizhou',
+							            "浜戝崡":'Yunnan',
+							            "闄曡タ":'Shanxi3',
+							            "鐢樿們":'Gansu',
+							            "闈掓捣":'Qinghai',
+							            "鍐呰挋鍙�":'Neimenggu',
+							            "骞胯タ":'Guangxi',
+							
+							        }
+							
+							        //鍦板浘娉ㄥ唽name涓巎s涓彉閲忕殑鏄犲皠
+							        const mapData ={
+							            'Beijing':Beijing,
+							            'Tianjin':Tianjin,
+							            'Shanghai':Shanghai,
+							            'Chongqing':Chongqing,
+							            'Xizang':Xizang,
+							            'Ningxia':Ningxia,
+							            'Xinjiang':Xinjiang,
+							            'Xianggang':Xianggang,
+							            // 'Aomen':Aomen,
+							            'Hebei':Hebei,
+							            'Shanxi1':Shanxi1,
+							            'Liaoning':Liaoning,
+							            'Jilin':Jilin,
+							            'Heilongjiang':Heilongjiang,
+							            'Jiangsu':Jiangsu,
+							            'Zhejiang':Zhejiang,
+							            'Anhui':Anhui,
+							            'Fujian':Fujian,
+							            'Jiangxi':Jiangxi,
+							            'Shandong':Shandong,
+							            'Henan':Henan,
+							            'Hubei':Hubei,
+							            'Hunan':Hunan,
+							            'Guangdong':Guangdong,
+							            'Hainan':Hainan,
+							            'Sichuan':Sichuan,
+							            'Guizhou':Guizhou,
+							            'Yunnan':Yunnan,
+							            'Shanxi3':Shanxi3,
+							            'Gansu':Gansu,
+							            'Qinghai':Qinghai,
+							            'Neimenggu':Neimenggu,
+							            'Guangxi':Guangxi,
+							        }
+							
+							        //鐪佷唤涓巘op鍚嶅瓧瀵瑰簲
+							        const mapTop ={
+							            'Beijing':"鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃,鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃,鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃,鍥界憺澶ц嵂鎴挎湁闄愬叕鍙�,瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙�,鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃,闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃,鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃,鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�",
+							            'Tianjin':"鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃,鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃,鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃,鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃,鍥界憺澶ц嵂鎴挎湁闄愬叕鍙�,瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙�,闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃,鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃,鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�",
+							            'Shanghai':"鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃,闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃,鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃,鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃,鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃,鍥界憺澶ц嵂鎴挎湁闄愬叕鍙�,鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙�,鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃,鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�",
+							            'Chongqing':"鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃,鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃,鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃,鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃,鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃,鍥界憺澶ц嵂鎴挎湁闄愬叕鍙�,闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃,瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙�,鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�",
+							            'Xizang':"鍥界憺澶ц嵂鎴挎湁闄愬叕鍙�,闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃,鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃,鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃,鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃,鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃,鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃,瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙�",
+							            'Ningxia':"瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙�,闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃,鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃,鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃,鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃,鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃,鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃,鍥界憺澶ц嵂鎴挎湁闄愬叕鍙�",
+							            'Xinjiang':"鍥界憺澶ц嵂鎴挎湁闄愬叕鍙�,鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃,闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃,鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃,鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙�,鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃,鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃,鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃",
+							            'Xianggang':"鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃,鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃,鍥界憺澶ц嵂鎴挎湁闄愬叕鍙�,瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙�,鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃,鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃,鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃,鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃",
+							            'Hebei':"鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙�,鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃,鍥界憺澶ц嵂鎴挎湁闄愬叕鍙�,鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃,鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃,鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃,闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃,鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃",
+							            'Shanxi1':"闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃,瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙�,鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃,鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃,鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃,鍥界憺澶ц嵂鎴挎湁闄愬叕鍙�,鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃,鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃,鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�",
+							            'Liaoning':"鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃,鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙�,闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃,鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃,鍥界憺澶ц嵂鎴挎湁闄愬叕鍙�,鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃,鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃,鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃",
+							            'Jilin':"鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃,闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃,鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙�,鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃,鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃,鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃,鍥界憺澶ц嵂鎴挎湁闄愬叕鍙�,鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃",
+							            'Heilongjiang':"鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃,鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃,瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙�,鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃,鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃,鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃,鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃,鍥界憺澶ц嵂鎴挎湁闄愬叕鍙�",
+							            'Jiangsu':"瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙�,闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃,鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃,鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃,鍥界憺澶ц嵂鎴挎湁闄愬叕鍙�,鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃,鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃,鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃",
+							            'Zhejiang':"鍥界憺澶ц嵂鎴挎湁闄愬叕鍙�,鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃,鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃,鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃,鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃,鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃,瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙�,鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃",
+							            'Anhui':"鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃,鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃,鍥界憺澶ц嵂鎴挎湁闄愬叕鍙�,鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃,瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙�,鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃,鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃,闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃",
+							            'Fujian':"鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃,鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃,鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃,鍥界憺澶ц嵂鎴挎湁闄愬叕鍙�,鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃,瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙�,鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃,鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃",
+							            'Jiangxi':"鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃,鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃,鍥界憺澶ц嵂鎴挎湁闄愬叕鍙�,鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃,鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙�,鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃,鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃,鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃",
+							            'Shandong':"鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃,鍥界憺澶ц嵂鎴挎湁闄愬叕鍙�,鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃,鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙�,鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃,鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃,闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃,鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃",
+							            'Henan':"鍥界憺澶ц嵂鎴挎湁闄愬叕鍙�,鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃,鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃,瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙�,鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃,闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃,鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃,鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃",
+							            'Hubei':"鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃,鍥界憺澶ц嵂鎴挎湁闄愬叕鍙�,鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃,瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙�,鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃,闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃,鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃,鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃,鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�",
+							            'Hunan':"鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃,鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃,鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃,鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃,鍥界憺澶ц嵂鎴挎湁闄愬叕鍙�,闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃,瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙�,鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃,鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�",
+							            'Guangdong':"鍥界憺澶ц嵂鎴挎湁闄愬叕鍙�,瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙�,鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃,鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃,鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃,鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃,鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃,鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃",
+							            'Hainan':"瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙�,鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃,闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃,鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃,鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃,鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃,鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鍥界憺澶ц嵂鎴挎湁闄愬叕鍙�,鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃,鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�",
+							            'Sichuan':"鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃,鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃,闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃,鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙�,鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃,鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃,鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鍥界憺澶ц嵂鎴挎湁闄愬叕鍙�,鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃",
+							            'Guizhou':"鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃,鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃,闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃,鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙�,鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃,鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃,鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃,鍥界憺澶ц嵂鎴挎湁闄愬叕鍙�",
+							            'Yunnan':"鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃,鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃,瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙�,闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃,鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鍥界憺澶ц嵂鎴挎湁闄愬叕鍙�,鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃,鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃,鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃",
+							            'Shanxi3':"闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃,瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙�,鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃,鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃,鍥界憺澶ц嵂鎴挎湁闄愬叕鍙�,鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃,鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃,鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃",
+							            'Gansu':"鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃,鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鍥界憺澶ц嵂鎴挎湁闄愬叕鍙�,鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃,鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃,瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙�,闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃,鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃,鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃",
+							            'Qinghai':"鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃,鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鍥界憺澶ц嵂鎴挎湁闄愬叕鍙�,瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙�,鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃,鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃,鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃,鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃,闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃",
+							            'Neimenggu':"鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鍥界憺澶ц嵂鎴挎湁闄愬叕鍙�,瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙�,鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃,鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃,鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃,鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃,鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃,鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃",
+							            'Guangxi':"鍥界憺澶ц嵂鎴挎湁闄愬叕鍙�,闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃,鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙�,鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃,鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃,鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃,鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃,鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙�,鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃",
+							        }
+							
+									//鐪佷唤涓嶵op閿�閲忔暟鎹搴�
+							        const salesData = {
+							            'Beijing':"1983,1794,1619,880,766,554,542,432,321,210",
+							            'Tianjin':"1868,979,828,757,636,525,444,333,222,111",
+							            'Shanghai':"1045,987,876,765,654,543,432,321,213,112",
+							            'Chongqing':"1432,1324,1234,1134,997,885,775,634,515,413",
+							            'Xizang':"1672,1423,1328,1288,1067,982,678,536,409,123",
+							            'Ningxia':"1272,1123,1028,988,867,782,678,536,409,223",
+							            'Xinjiang':"672,423,328,288,167,152,137,136,99,63",
+							            'Xianggang':"972,823,728,688,567,482,378,236,109,23",
+							            'Hebei':"1072,923,828,788,667,582,478,336,209,123",
+							            'Shanxi1':"1672,914,813,712,610,598,467,353,240,112",
+							            'Liaoning':"1234,987,876,765,654,543,432,321,210,109",
+							            'Jilin':"1098,901,890,789,678,567,456,345,234,123",
+							            'Heilongjiang':"1010,909,808,707,606,505,44,303,202,101",
+							            'Jiangsu':"1111,902,803,704,605,506,407,308,209,110",
+							            'Zhejiang':"1111,902,803,704,605,506,407,308,209,110",
+							            'Anhui':"1010,909,808,707,606,505,44,303,202,101",
+							            'Fujian':"1098,901,890,789,678,567,456,345,234,123",
+							            'Jiangxi':"1234,987,876,765,654,543,432,321,210,109",
+							            'Shandong':"1672,914,813,712,610,598,467,353,240,112",
+							            'Henan':"1072,923,828,788,667,582,478,336,209,123",
+							            'Hubei':"972,823,728,688,567,482,378,236,109,23",
+							            'Hunan':"672,423,328,288,167,152,137,136,99,63",
+							            'Guangdong':"1272,1123,1028,988,867,782,678,536,409,223",
+							            'Hainan':"1672,1423,1328,1288,1067,982,678,536,409,123",
+							            'Sichuan':"1432,1324,1234,1134,997,885,775,634,515,413",
+							            'Guizhou':"1045,987,876,765,654,543,432,321,213,112",
+							            'Yunnan':"1868,979,828,757,636,525,444,333,222,111",
+							            'Shanxi3':"1983,1794,1619,880,766,554,542,432,321,210",
+							            'Gansu':"1234,987,876,765,654,543,432,321,210,109",
+							            'Qinghai':"1072,923,828,788,667,582,478,336,209,123",
+							            'Neimenggu':"672,423,328,288,167,152,137,136,99,63",
+							            'Guangxi':"972,823,728,688,567,482,378,236,109,23",
+							        }
+							
+							        //Top鍚嶇О鎹㈣鏄剧ず锛宮apTop瀵硅薄涓�煎瓧绗︿覆涓殑閫楀彿鍧囨浛鎹负鎹㈣绗�
+							        for (let city of Object.keys(mapTop)) {
+							            mapTop[city] = mapTop[city].replace(/,/g,'\n\n')
+							        }
+							
+							        for (let city of Object.keys(salesData)) {
+							            salesData[city] = salesData[city].replace(/,/g,'\n\n')
+							        }
+							
+							        //鏍规嵁鍦ㄤ竴绾у湴鍥句笂鐐瑰嚮鐨勫尯鍩焠ame锛岃繑鍥炲搴旂殑娉ㄥ唽鍦板浘name锛宩s鍙橀噺锛孴op鍚嶇О锛孴op閿�閲忔暟鎹�
+							        const getMap = function (mapName){
+							            var cityName = dict[mapName]
+							            if(cityName){
+							                return [cityName, mapData[cityName], mapTop[cityName],salesData[cityName]]
+							            }
+							            // return ['china',China]
+							        }
+							
+							        //鍚勭渷浠介攢閲忔暟鎹�
+							        const data = [
+							        { name: '鍖椾含', value: 3456 },
+							        { name: '澶╂触', value: 2342 },
+							        { name: '涓婃捣', value: 3423 },
+							        { name: '閲嶅簡', value: 1233 },
+							        { name: '瑗胯棌', value: 999},
+							        { name: '瀹佸', value: 888},
+							        { name: '鏂扮枂', value: 567 },
+							        { name: '棣欐腐', value: 345 },
+							        // { name: '婢抽棬', value: 456 },
+							        { name: '娌冲寳', value: 1234 },
+							        { name: '灞辫タ', value: 1355 },
+							        { name: '杈藉畞', value: 2678 },
+							        { name: '鍚夋灄', value: 3523 },
+							        { name: '榛戦緳姹�', value: 2654 },
+							        { name: '姹熻嫃', value: 5463 },
+							        { name: '娴欐睙', value: 7533 },
+							        { name: '瀹夊窘', value: 2342 },
+							        { name: '绂忓缓', value: 3421 },
+							        { name: '姹熻タ', value: 1323 },
+							        { name: '灞变笢', value: 4221 },
+							        { name: '娌冲崡', value: 4324 },
+							        { name: '婀栧寳', value: 3452},
+							        { name: '婀栧崡', value: 2789 },
+							        { name: '骞夸笢', value: 1789 },
+							        { name: '娴峰崡', value: 1252 },
+							        { name: '鍥涘窛', value: 2131 },
+							        { name: '璐靛窞', value: 1765 },
+							        { name: '浜戝崡', value: 1654 },
+							        { name: '闄曡タ', value: 2000 },
+							        { name: '鐢樿們', value: 1298 },
+							        { name: '闈掓捣', value: 1231 },
+							        { name: '鍐呰挋鍙�', value: 899 },
+							        { name: '骞胯タ', value: 1089 },
+							        ];
+							
+							        //鍚勫尯閿�閲忔暟鎹�
+							        const dataDetail = [
+							        { name: '涓滃煄鍖�', value: 123, province:'鍖椾含' },
+							        { name: '瑗垮煄鍖�', value: 456, province:'鍖椾含' },
+							        { name: '鏈濋槼鍖�', value: 543, province:'鍖椾含' },
+							        { name: '涓板彴鍖�', value: 654, province:'鍖椾含' },
+							        { name: '鐭虫櫙灞卞尯', value: 332, province:'鍖椾含' },
+							        { name: '娴锋穩鍖�', value: 265, province:'鍖椾含' },
+							        { name: '闂ㄥご娌熷尯', value: 876, province:'鍖椾含' },
+							        { name: '鎴垮北鍖�', value: 421, province:'鍖椾含' },
+							        { name: '閫氬窞鍖�', value: 234, province:'鍖椾含' },
+							        { name: '椤轰箟鍖�', value: 113, province:'鍖椾含' },
+							        { name: '鏄屽钩鍖�', value: 123, province:'鍖椾含' },
+							        { name: '澶у叴鍖�', value: 123, province:'鍖椾含' },
+							        { name: '鎬�鏌斿尯', value: 342, province:'鍖椾含' },
+							        { name: '骞宠胺鍖�', value: 213, province:'鍖椾含' },
+							        { name: '瀵嗕簯鍖�', value: 132, province:'鍖椾含' },
+							        { name: '寤跺簡鍖�', value: 231, province:'鍖椾含' },
+							        { name: '鍜屽钩鍖�', value: 213, province:'澶╂触' },
+							        { name: '娌充笢鍖�', value: 222, province:'澶╂触' },
+							        { name: '娌宠タ鍖�', value: 155, province:'澶╂触' },
+							        { name: '鍗楀紑鍖�', value: 321, province:'澶╂触' },
+							        { name: '娌冲寳鍖�', value: 123, province:'澶╂触' },
+							        { name: '绾㈡ˉ鍖�', value: 232, province:'澶╂触' },
+							        { name: '涓滀附鍖�', value: 221, province:'澶╂触' },
+							        { name: '瑗块潚鍖�', value: 123, province:'澶╂触' },
+							        { name: '娲ュ崡鍖�', value: 344, province:'澶╂触' },
+							        { name: '鍖楄景鍖�', value:124, province:'澶╂触' },
+							        { name: '姝︽竻鍖�', value:453, province:'澶╂触' },
+							        { name: '瀹濆澔鍖�', value: 123, province:'澶╂触' },
+							        { name: '婊ㄦ捣鏂板尯', value: 98, province:'澶╂触' },
+							        { name: '瀹佹渤鍖�', value: 121, province:'澶╂触' },
+							        { name: '闈欐捣鍖�', value: 212, province:'澶╂触' },
+							        { name: '钃熷窞鍖�', value: 121, province:'澶╂触' },
+							        { name: '榛勬郸鍖�', value: 122, province:'涓婃捣' },
+							        { name: '寰愭眹鍖�', value: 122, province:'涓婃捣' },
+							        { name: '闀垮畞鍖�', value: 22, province:'涓婃捣' },
+							        { name: '闈欏畨鍖�', value: 33, province:'涓婃捣' },
+							        { name: '鏅檧鍖�', value: 44, province:'涓婃捣' },
+							        { name: '铏瑰彛鍖�', value: 55, province:'涓婃捣' },
+							        { name: '鏉ㄦ郸鍖�', value: 66, province:'涓婃捣' },
+							        { name: '闂佃鍖�', value: 77, province:'涓婃捣' },
+							        { name: '瀹濆北鍖�', value: 88, province:'涓婃捣' },
+							        { name: '鍢夊畾鍖�', value: 99, province:'涓婃捣' },
+							        { name: '娴︿笢鏂板尯', value: 632, province:'涓婃捣' },
+							        { name: '閲戝北鍖�', value: 222, province:'涓婃捣' },
+							        { name: '鏉炬睙鍖�', value: 122, province:'涓婃捣' },
+							        { name: '闈掓郸鍖�', value: 121, province:'涓婃捣' },
+							        { name: '濂夎搐鍖�', value: 211, province:'涓婃捣' },
+							        { name: '宕囨槑鍖�', value: 212, province:'涓婃捣' },
+							        { name: '涓囧窞鍖�', value: 12, province:'閲嶅簡' },
+							        { name: '娑櫟鍖�', value: 13, province:'閲嶅簡' },
+							        { name: '娓濅腑鍖�', value: 14, province:'閲嶅簡' },
+							        { name: '姹熷寳鍖�', value: 15, province:'閲嶅簡' },
+							        { name: '娌欏潽鍧濆尯', value: 16, province:'閲嶅簡' },
+							        { name: '涔濋緳鍧″尯', value: 17, province:'閲嶅簡' },
+							        { name: '鍗楀哺鍖�', value: 18, province:'閲嶅簡' },
+							        { name: '鍖楃鍖�', value: 19, province:'閲嶅簡' },
+							        { name: '缍︽睙鍖�', value: 20, province:'閲嶅簡' },
+							        { name: '澶ц冻鍖�', value: 21, province:'閲嶅簡' },
+							        { name: '娓濆寳鍖�', value: 22, province:'閲嶅簡' },
+							        { name: '闀垮鍖�', value: 23, province:'閲嶅簡' },
+							        { name: '姹熸触鍖�', value: 24, province:'閲嶅簡' },
+							        { name: '鍚堝窛鍖�', value: 25, province:'閲嶅簡' },
+							        { name: '姘稿窛鍖�', value: 26, province:'閲嶅簡' },
+							        { name: '鍗楀窛鍖�', value: 27, province:'閲嶅簡' },
+							        { name: '鐠у北鍖�', value: 28, province:'閲嶅簡' },
+							        { name: '閾滄鍖�', value: 29, province:'閲嶅簡' },
+							        { name: '娼煎崡鍖�', value: 30, province:'閲嶅簡' },
+							        { name: '鑽f槍鍖�', value: 31, province:'閲嶅簡' },
+							        { name: '寮�宸炲尯', value: 32, province:'閲嶅簡' },
+							        { name: '姊佸钩鍖�', value: 23, province:'閲嶅簡' },
+							        { name: '姝﹂殕鍖�', value: 43, province:'閲嶅簡' },
+							        { name: '鍩庡彛鍘�', value: 32, province:'閲嶅簡' },
+							        { name: '涓伴兘鍘�', value: 33, province:'閲嶅簡' },
+							        { name: '鍨睙鍘�', value: 34, province:'閲嶅簡' },
+							        { name: '蹇犲幙', value: 25, province:'閲嶅簡' },
+							        { name: '浜戦槼鍘�', value: 21, province:'閲嶅簡' },
+							        { name: '濂夎妭鍘�', value: 22, province:'閲嶅簡' },
+							        { name: '宸北鍘�', value: 33, province:'閲嶅簡' },
+							        { name: '宸邯鍘�', value: 44, province:'閲嶅簡' },
+							        { name: '鐭虫煴鍦熷鏃忚嚜娌诲幙', value: 12, province:'閲嶅簡' },
+							        { name: '绉�灞卞湡瀹舵棌鑻楁棌鑷不鍘�', value: 13, province:'閲嶅簡' },
+							        { name: '閰夐槼鍦熷鏃忚嫍鏃忚嚜娌诲幙', value: 13, province:'閲嶅簡' },
+							        { name: '褰按鑻楁棌鍦熷鏃忚嚜娌诲幙', value: 15, province:'閲嶅簡' },
+							        { name: '鎷夎惃甯�', value: 123, province:'瑗胯棌' },
+							        { name: '鏃ュ杸鍒欏競', value: 213, province:'瑗胯棌' },
+							        { name: '鏄岄兘甯�', value:123, province:'瑗胯棌' },
+							        { name: '鏋楄姖甯�', value: 122, province:'瑗胯棌' },
+							        { name: '灞卞崡甯�', value: 212, province:'瑗胯棌' },
+							        { name: '閭f洸甯�', value: 112, province:'瑗胯棌' },
+							        { name: '闃块噷灞卞湴鍖�', value: 114, province:'瑗胯棌' },
+							        { name: '閾跺窛甯�', value:213, province:'瀹佸' },
+							        { name: '鐭冲槾灞卞競', value: 78, province:'瀹佸' },
+							        { name: '鍚村繝甯�', value: 76, province:'瀹佸' },
+							        { name: '鍥哄師甯�', value: 66, province:'瀹佸' },
+							        { name: '涓崼甯�', value: 44, province:'瀹佸' },
+							        { name: '涔岄瞾鏈ㄩ綈甯�', value: 12, province:'鏂扮枂' },
+							        { name: '鍏嬫媺鐜涗緷甯�', value: 21, province:'鏂扮枂' },
+							        { name: '鍚愰瞾鐣競', value: 22, province:'鏂扮枂' },
+							        { name: '鍝堝瘑甯�', value: 44, province:'鏂扮枂' },
+							        { name: '鏄屽悏鍥炴棌鑷不宸�', value: 34, province:'鏂扮枂' },
+							        { name: '鍗氬皵濉旀媺钂欏彜鑷不宸�', value:24 , province:'鏂扮枂' },
+							        { name: '闃垮厠鑻忓湴鍖�', value: 21, province:'鏂扮枂' },
+							        { name: '鍏嬪瓬鍕掕嫃鏌皵鍏嬪瓬鑷不宸�', value: 12, province:'鏂扮枂' },
+							        { name: '鍠�浠�鍦板尯', value: 33, province:'鏂扮枂' },
+							        { name: '鍜岀敯鍦板尯', value: 13, province:'鏂扮枂' },
+							        { name: '浼婄妬鍝堣惃鍏嬭嚜娌诲窞', value: 23, province:'鏂扮枂' },
+							        { name: '濉斿煄鍦板尯', value: 65, province:'鏂扮枂' },
+							        { name: '闃垮嫆娉板湴鍖�', value: 99, province:'鏂扮枂' },
+							        { name: '鐭虫渤瀛愬競', value: 88, province:'鏂扮枂' },
+							        { name: '闃挎媺灏斿競', value: 77, province:'鏂扮枂' },
+							        { name: '鍥炬湪鑸掑厠甯�', value: 55, province:'鏂扮枂' },
+							        { name: '浜斿娓犲競', value: 66, province:'鏂扮枂' },
+							        { name: '鍖楀悲甯�', value: 44, province:'鏂扮枂' },
+							        { name: '閾侀棬鍏冲競', value: 33, province:'鏂扮枂' },
+							        { name: '鍙屾渤甯�', value: 11, province:'鏂扮枂' },
+							        { name: '鍙厠杈炬媺甯�', value: 22, province:'鏂扮枂' },
+							        { name: '鏄嗙帀甯�', value: 12, province:'鏂扮枂' },
+							        { name: '鑳℃潹娌冲競', value: 21, province:'鏂扮枂' },
+							        { name: '涓タ鍖�', value: 11, province:'棣欐腐' },
+							        { name: '婀句粩鍖�', value: 12, province:'棣欐腐' },
+							        { name: '涓滃尯', value: 13, province:'棣欐腐' },
+							        { name: '鍗楀尯', value: 14, province:'棣欐腐' },
+							        { name: '娌瑰皷鏃哄尯', value: 15, province:'棣欐腐' },
+							        { name: '娣辨按鍩楀尯', value: 16, province:'棣欐腐' },
+							        { name: '涔濋緳鍩庡尯', value: 17, province:'棣欐腐' },
+							        { name: '榛勫ぇ浠欏尯', value: 18, province:'棣欐腐' },
+							        { name: '瑙傚鍖�', value: 19, province:'棣欐腐' },
+							        { name: '鑽冩咕鍖�', value: 21, province:'棣欐腐' },
+							        { name: '灞棬鍖�', value: 22, province:'棣欐腐' },
+							        { name: '鍏冩湕鍖�', value: 23, province:'棣欐腐' },
+							        { name: '鍖楀尯', value: 24, province:'棣欐腐' },
+							        { name: '澶у煍鍖�', value: 25, province:'棣欐腐' },
+							        { name: '瑗胯础鍖�', value: 26, province:'棣欐腐' },
+							        { name: '娌欑敯鍖�', value: 27, province:'棣欐腐' },
+							        { name: '钁甸潚鍖�', value: 28, province:'棣欐腐' },
+							        { name: '绂诲矝鍖�', value: 29, province:'棣欐腐' },
+							        { name: '鐭冲搴勫競', value: 22, province:'娌冲寳' },
+							        { name: '鍞愬北甯�', value: 32, province:'娌冲寳' },
+							        { name: '绉︾殗宀涘競', value: 24, province:'娌冲寳' },
+							        { name: '閭兏甯�', value: 12, province:'娌冲寳' },
+							        { name: '閭㈠彴甯�', value: 21, province:'娌冲寳' },
+							        { name: '淇濆畾甯�', value: 21, province:'娌冲寳' },
+							        { name: '寮犲鍙e競', value: 34, province:'娌冲寳' },
+							        { name: '鎵垮痉甯�', value: 12, province:'娌冲寳' },
+							        { name: '娌у窞甯�', value: 22, province:'娌冲寳' },
+							        { name: '寤婂潑甯�', value: 12, province:'娌冲寳' },
+							        { name: '琛℃按甯�', value: 23, province:'娌冲寳' },
+							        { name: '澶師甯�', value: 21, province:'灞辫タ' },
+							        { name: '澶у悓甯�', value: 43, province:'灞辫タ' },
+							        { name: '闃虫硥甯�', value: 12, province:'灞辫タ' },
+							        { name: '闀挎不甯�', value: 23, province:'灞辫タ' },
+							        { name: '鏅嬪煄甯�', value: 33, province:'灞辫タ' },
+							        { name: '鏈斿窞甯�', value: 22, province:'灞辫タ' },
+							        { name: '鏅嬩腑甯�', value: 21, province:'灞辫タ' },
+							        { name: '杩愬煄甯�', value: 12, province:'灞辫タ' },
+							        { name: '蹇诲窞甯�', value: 22, province:'灞辫タ' },
+							        { name: '涓存本甯�', value: 11, province:'灞辫タ' },
+							        { name: '鍚曟甯�', value: 22, province:'灞辫タ' },
+							        { name: '娌堥槼甯�', value: 123, province:'杈藉畞' },
+							        { name: '澶ц繛甯�', value: 12, province:'杈藉畞' },
+							        { name: '闉嶅北甯�', value: 13, province:'杈藉畞' },
+							        { name: '鎶氶『甯�', value: 23, province:'杈藉畞' },
+							        { name: '鏈邯甯�', value: 43, province:'杈藉畞' },
+							        { name: '涓逛笢甯�', value: 53, province:'杈藉畞' },
+							        { name: '閿﹀窞甯�', value: 246, province:'杈藉畞' },
+							        { name: '钀ュ彛甯�', value: 64, province:'杈藉畞' },
+							        { name: '闃滄柊甯�', value: 34, province:'杈藉畞' },
+							        { name: '杈介槼甯�', value: 245, province:'杈藉畞' },
+							        { name: '鐩橀敠甯�', value: 54, province:'杈藉畞' },
+							        { name: '閾佸箔甯�', value: 45, province:'杈藉畞' },
+							        { name: '鏈濋槼甯�', value: 45, province:'杈藉畞' },
+							        { name: '钁姦宀涘競', value: 32, province:'杈藉畞' },
+							        { name: '闀挎槬甯�', value: 31, province:'鍚夋灄' },
+							        { name: '鍚夋灄甯�', value: 21, province:'鍚夋灄' },
+							        { name: '鍥涘钩甯�', value: 22, province:'鍚夋灄' },
+							        { name: '杈芥簮甯�', value: 42, province:'鍚夋灄' },
+							        { name: '閫氬寲甯�', value: 42, province:'鍚夋灄' },
+							        { name: '鐧藉北甯�', value: 32, province:'鍚夋灄' },
+							        { name: '鏉惧師甯�', value: 41, province:'鍚夋灄' },
+							        { name: '鐧藉煄甯�', value: 53, province:'鍚夋灄' },
+							        { name: '寤惰竟鏈濋矞鏃忚嚜娌诲窞', value: 43, province:'鍚夋灄' },
+							        { name: '鍝堝皵婊ㄥ競', value: 23, province:'榛戦緳姹�' },
+							        { name: '榻愰綈鍝堝皵甯�', value: 21, province:'榛戦緳姹�' },
+							        { name: '楦¤タ甯�', value: 23, province:'榛戦緳姹�' },
+							        { name: '楣ゅ矖甯�', value: 32, province:'榛戦緳姹�' },
+							        { name: '鍙岄腑灞卞競', value: 12, province:'榛戦緳姹�' },
+							        { name: '澶у簡甯�', value: 42, province:'榛戦緳姹�' },
+							        { name: '浼婃槬甯�', value: 22, province:'榛戦緳姹�' },
+							        { name: '浣虫湪鏂競', value: 34, province:'榛戦緳姹�' },
+							        { name: '涓冨彴娌冲競', value: 22, province:'榛戦緳姹�' },
+							        { name: '鐗′腹姹熷競', value: 44, province:'榛戦緳姹�' },
+							        { name: '榛戞渤甯�', value: 12, province:'榛戦緳姹�' },
+							        { name: '缁ュ寲甯�', value: 32, province:'榛戦緳姹�' },
+							        { name: '澶у叴瀹夊箔甯�', value: 24, province:'榛戦緳姹�' },
+							        { name: '鍗椾含甯�', value: 23, province:'姹熻嫃' },
+							        { name: '鏃犻敗甯�', value: 12, province:'姹熻嫃' },
+							        { name: '寰愬窞甯�', value: 34, province:'姹熻嫃' },
+							        { name: '甯稿窞甯�', value: 324, province:'姹熻嫃' },
+							        { name: '鑻忓窞甯�', value: 123, province:'姹熻嫃' },
+							        { name: '鍗楅�氬競', value: 23, province:'姹熻嫃' },
+							        { name: '杩炰簯娓競', value: 31, province:'姹熻嫃' },
+							        { name: '娣畨甯�', value: 312, province:'姹熻嫃' },
+							        { name: '鐩愬煄甯�', value: 213, province:'姹熻嫃' },
+							        { name: '鎵窞甯�', value: 23, province:'姹熻嫃' },
+							        { name: '闀囨睙甯�', value: 34, province:'姹熻嫃' },
+							        { name: '娉板窞甯�', value: 21, province:'姹熻嫃' },
+							        { name: '瀹胯縼甯�', value: 34, province:'姹熻嫃' },
+							        { name: '鏉窞甯�', value: 56, province:'娴欐睙' },
+							        { name: '瀹佹尝甯�', value: 24, province:'娴欐睙' },
+							        { name: '娓╁窞甯�', value: 53, province:'娴欐睙' },
+							        { name: '鍢夊叴甯�', value: 54, province:'娴欐睙' },
+							        { name: '婀栧窞甯�', value: 67, province:'娴欐睙' },
+							        { name: '缁嶅叴甯�', value: 234, province:'娴欐睙' },
+							        { name: '閲戝崕甯�', value: 53, province:'娴欐睙' },
+							        { name: '琛㈠窞甯�', value: 546, province:'娴欐睙' },
+							        { name: '鑸熷北甯�', value: 223, province:'娴欐睙' },
+							        { name: '鍙板窞甯�', value: 123, province:'娴欐睙' },
+							        { name: '涓芥按甯�', value: 34, province:'娴欐睙' },
+							        { name: '鍚堣偉甯�', value: 43, province:'瀹夊窘' },
+							        { name: '鑺滄箹甯�', value: 34, province:'瀹夊窘' },
+							        { name: '铓屽煚甯�', value: 45, province:'瀹夊窘' },
+							        { name: '娣崡甯�', value: 54, province:'瀹夊窘' },
+							        { name: '椹瀺灞卞競', value: 334, province:'瀹夊窘' },
+							        { name: '娣寳甯�', value: 45, province:'瀹夊窘' },
+							        { name: '閾滈櫟甯�', value: 56, province:'瀹夊窘' },
+							        { name: '瀹夊簡甯�', value: 67, province:'瀹夊窘' },
+							        { name: '榛勫北甯�', value: 76, province:'瀹夊窘' },
+							        { name: '婊佸窞甯�', value: 67, province:'瀹夊窘' },
+							        { name: '闃滈槼甯�', value: 44, province:'瀹夊窘' },
+							        { name: '瀹垮窞甯�', value: 56, province:'瀹夊窘' },
+							        { name: '鍏畨甯�', value: 34, province:'瀹夊窘' },
+							        { name: '姣窞甯�', value: 76, province:'瀹夊窘' },
+							        { name: '姹犲窞甯�', value: 78, province:'瀹夊窘' },
+							        { name: '瀹e煄甯�', value: 78, province:'瀹夊窘' },
+							        { name: '绂忓窞甯�', value: 34, province:'绂忓缓' },
+							        { name: '鍘﹂棬甯�', value: 23, province:'绂忓缓' },
+							        { name: '鑾嗙敯甯�', value: 445, province:'绂忓缓' },
+							        { name: '涓夋槑甯�', value: 23, province:'绂忓缓' },
+							        { name: '娉夊窞甯�', value: 23, province:'绂忓缓' },
+							        { name: '婕冲窞甯�', value: 12, province:'绂忓缓' },
+							        { name: '鍗楀钩甯�', value: 45, province:'绂忓缓' },
+							        { name: '榫欏博甯�', value: 56, province:'绂忓缓' },
+							        { name: '瀹佸痉甯�', value: 75, province:'绂忓缓' },
+							        { name: '鍗楁槍甯�', value: 23, province:'姹熻タ' },
+							        { name: '鏅痉闀囧競', value: 323, province:'姹熻タ' },
+							        { name: '钀嶄埂甯�', value: 34, province:'姹熻タ' },
+							        { name: '涔濇睙甯�', value: 45, province:'姹熻タ' },
+							        { name: '鏂颁綑甯�', value: 45, province:'姹熻タ' },
+							        { name: '楣版江甯�', value: 56, province:'姹熻タ' },
+							        { name: '璧e窞甯�', value: 56, province:'姹熻タ' },
+							        { name: '鍚夊畨甯�', value: 76, province:'姹熻タ' },
+							        { name: '瀹滄槬甯�', value: 56, province:'姹熻タ' },
+							        { name: '鎶氬窞甯�', value: 67, province:'姹熻タ' },
+							        { name: '涓婇ザ甯�', value: 67, province:'姹熻タ' },
+							        { name: '娴庡崡甯�', value: 43, province:'灞变笢' },
+							        { name: '闈掑矝甯�', value: 243, province:'灞变笢' },
+							        { name: '娣勫崥甯�', value: 324, province:'灞变笢' },
+							        { name: '鏋e簞甯�', value: 454, province:'灞变笢' },
+							        { name: '涓滆惀甯�', value: 45, province:'灞变笢' },
+							        { name: '鐑熷彴甯�', value: 45, province:'灞变笢' },
+							        { name: '娼嶅潑甯�', value: 2, province:'灞变笢' },
+							        { name: '娴庡畞甯�', value: 23, province:'灞变笢' },
+							        { name: '娉板畨甯�', value: 12, province:'灞变笢' },
+							        { name: '濞佹捣甯�', value: 4, province:'灞变笢' },
+							        { name: '鏃ョ収甯�', value: 454, province:'灞变笢' },
+							        { name: '涓存矀甯�', value: 56, province:'灞变笢' },
+							        { name: '寰峰窞甯�', value: 23, province:'灞变笢' },
+							        { name: '鑱婂煄甯�', value: 12, province:'灞变笢' },
+							        { name: '婊ㄥ窞甯�', value: 12, province:'灞变笢' },
+							        { name: '鑿忔辰甯�', value: 12, province:'灞变笢' },
+							        { name: '閮戝窞甯�', value: 34, province:'娌冲崡' },
+							        { name: '寮�灏佸競', value: 34, province:'娌冲崡' },
+							        { name: '娲涢槼甯�', value: 354, province:'娌冲崡' },
+							        { name: '骞抽《灞卞競', value: 465, province:'娌冲崡' },
+							        { name: '瀹夐槼甯�', value: 122, province:'娌冲崡' },
+							        { name: '楣ゅ甯�', value: 12, province:'娌冲崡' },
+							        { name: '鏂颁埂甯�', value: 12, province:'娌冲崡' },
+							        { name: '鐒︿綔甯�', value: 23, province:'娌冲崡' },
+							        { name: '婵槼甯�', value: 24, province:'娌冲崡' },
+							        { name: '璁告槍甯�', value: 45, province:'娌冲崡' },
+							        { name: '婕渤甯�', value: 45, province:'娌冲崡' },
+							        { name: '涓夐棬宄″競', value: 56, province:'娌冲崡' },
+							        { name: '鍗楅槼甯�', value: 645, province:'娌冲崡' },
+							        { name: '淇¢槼甯�', value: 65, province:'娌冲崡' },
+							        { name: '鍛ㄥ彛甯�', value: 565, province:'娌冲崡' },
+							        { name: '椹婚┈搴楀競', value: 56, province:'娌冲崡' },
+							        { name: '娴庢簮甯�', value: 34, province:'娌冲崡' },
+							        { name: '姝︽眽甯�', value: 76, province:'婀栧寳' },
+							        { name: '榛勭煶甯�', value: 8, province:'婀栧寳' },
+							        { name: '鍗佸牥甯�', value: 34, province:'婀栧寳' },
+							        { name: '瀹滄槍甯�', value: 45, province:'婀栧寳' },
+							        { name: '瑗勯槼甯�', value: 23, province:'婀栧寳' },
+							        { name: '閯傚窞甯�', value: 45, province:'婀栧寳' },
+							        { name: '鑽嗛棬甯�', value: 45, province:'婀栧寳' },
+							        { name: '榛勫唸甯�', value: 45, province:'婀栧寳' },
+							        { name: '鍜稿畞甯�', value: 76, province:'婀栧寳' },
+							        { name: '闅忓窞甯�', value: 645, province:'婀栧寳' },
+							        { name: '鎭╂柦鍦熷鏃忚嫍鏃忚嚜娌诲窞', value: 67, province:'婀栧寳' },
+							        { name: '浠欐甯�', value: 56, province:'婀栧寳' },
+							        { name: '娼滄睙甯�', value: 546, province:'婀栧寳' },
+							        { name: '澶╅棬甯�', value: 456, province:'婀栧寳' },
+							        { name: '绁炲啘鏋舵灄鍖�', value: 6, province:'婀栧寳' },
+							        { name: '闀挎矙甯�', value: 34, province:'婀栧崡' },
+							        { name: '鏍床甯�', value: 35, province:'婀栧崡' },
+							        { name: '婀樻江甯�', value: 657, province:'婀栧崡' },
+							        { name: '琛¢槼甯�', value: 45, province:'婀栧崡' },
+							        { name: '閭甸槼甯�', value: 34, province:'婀栧崡' },
+							        { name: '宀抽槼甯�', value: 234, province:'婀栧崡' },
+							        { name: '甯稿痉甯�', value: 6, province:'婀栧崡' },
+							        { name: '寮犲鐣屽競', value: 56, province:'婀栧崡' },
+							        { name: '鐩婇槼甯�', value: 76, province:'婀栧崡' },
+							        { name: '閮村窞甯�', value: 23, province:'婀栧崡' },
+							        { name: '姘稿窞甯�', value: 463, province:'婀栧崡' },
+							        { name: '鎬�鍖栧競', value: 56, province:'婀栧崡' },
+							        { name: '濞勫簳甯�', value: 46, province:'婀栧崡' },
+							        { name: '婀樿タ鍦熷鏃忚嫍鏃忚嚜娌诲窞', value: 34, province:'婀栧崡' },
+							        { name: '骞垮窞甯�', value: 54, province:'骞夸笢' },
+							        { name: '闊跺叧甯�', value: 34, province:'骞夸笢' },
+							        { name: '娣卞湷甯�', value: 234, province:'骞夸笢' },
+							        { name: '鐝犳捣甯�', value: 65, province:'骞夸笢' },
+							        { name: '姹曞ご甯�', value: 67, province:'骞夸笢' },
+							        { name: '浣涘北甯�', value: 98, province:'骞夸笢' },
+							        { name: '姹熼棬甯�', value: 45, province:'骞夸笢' },
+							        { name: '婀涙睙甯�', value: 34, province:'骞夸笢' },
+							        { name: '鑼傚悕甯�', value: 54, province:'骞夸笢' },
+							        { name: '鑲囧簡甯�', value: 67, province:'骞夸笢' },
+							        { name: '鎯犲窞甯�', value: 78, province:'骞夸笢' },
+							        { name: '姊呭窞甯�', value: 23, province:'骞夸笢' },
+							        { name: '姹曞熬甯�', value: 43, province:'骞夸笢' },
+							        { name: '娌虫簮甯�', value: 56, province:'骞夸笢' },
+							        { name: '闃虫睙甯�', value: 23, province:'骞夸笢' },
+							        { name: '娓呰繙甯�', value: 34, province:'骞夸笢' },
+							        { name: '涓滆帪甯�', value: 54, province:'骞夸笢' },
+							        { name: '涓北甯�', value: 4, province:'骞夸笢' },
+							        { name: '娼窞甯�', value: 3, province:'骞夸笢' },
+							        { name: '鎻槼甯�', value: 56, province:'骞夸笢' },
+							        { name: '浜戞诞甯�', value: 47, province:'骞夸笢' },
+							        { name: '娴峰彛甯�', value: 45, province:'娴峰崡' },
+							        { name: '鎴愰兘甯�', value: 234, province:'鍥涘窛' },
+							        { name: '鑷础甯�', value: 63, province:'鍥涘窛' },
+							        { name: '鏀�鏋濊姳甯�', value: 24, province:'鍥涘窛' },
+							        { name: '娉稿窞甯�', value: 234, province:'鍥涘窛' },
+							        { name: '寰烽槼甯�', value: 245, province:'鍥涘窛' },
+							        { name: '缁甸槼甯�', value: 452, province:'鍥涘窛' },
+							        { name: '骞垮厓甯�', value: 43, province:'鍥涘窛' },
+							        { name: '閬傚畞甯�', value: 34, province:'鍥涘窛' },
+							        { name: '鍐呮睙甯�', value: 342, province:'鍥涘窛' },
+							        { name: '涔愬北甯�', value: 24, province:'鍥涘窛' },
+							        { name: '鍗楀厖甯�', value: 43, province:'鍥涘窛' },
+							        { name: '鐪夊北甯�', value: 34, province:'鍥涘窛' },
+							        { name: '瀹滃甯�', value: 123, province:'鍥涘窛' },
+							        { name: '骞垮畨甯�', value: 12, province:'鍥涘窛' },
+							        { name: '杈惧窞甯�', value: 21, province:'鍥涘窛' },
+							        { name: '闆呭畨甯�', value: 34, province:'鍥涘窛' },
+							        { name: '宸翠腑甯�', value: 56, province:'鍥涘窛' },
+							        { name: '璧勯槼甯�', value: 78, province:'鍥涘窛' },
+							        { name: '闃垮潩钘忔棌缇屾棌鑷不宸�', value: 536, province:'鍥涘窛' },
+							        { name: '鐢樺瓬钘忔棌鑷不宸�', value: 44, province:'鍥涘窛' },
+							        { name: '鍑夊北褰濇棌鑷不宸�', value: 34, province:'鍥涘窛' },
+							        { name: '璐甸槼甯�', value: 23, province:'璐靛窞' },
+							        { name: '鍏洏姘村競', value: 34, province:'璐靛窞' },
+							        { name: '閬典箟甯�', value: 45, province:'璐靛窞' },
+							        { name: '瀹夐『甯�', value: 56, province:'璐靛窞' },
+							        { name: '姣曡妭甯�', value: 6, province:'璐靛窞' },
+							        { name: '閾滀粊甯�', value: 45, province:'璐靛窞' },
+							        { name: '榛旇タ鍗楀竷渚濇棌鑻楁棌鑷不宸�', value: 36, province:'璐靛窞' },
+							        { name: '榛斾笢鍗楄嫍鏃忎緱鏃忚嚜娌诲窞', value: 35, province:'璐靛窞' },
+							        { name: '瑗垮畨甯�', value: 36, province:'闄曡タ' },
+							        { name: '閾滃窛甯�', value: 234, province:'闄曡タ' },
+							        { name: '瀹濋浮甯�', value: 56, province:'闄曡タ' },
+							        { name: '閾滃窛甯�', value: 346, province:'闄曡タ' },
+							        { name: '瀹濋浮甯�', value: 354, province:'闄曡タ' },
+							        { name: '鍜搁槼甯�', value: 45, province:'闄曡タ' },
+							        { name: '娓崡甯�', value: 45, province:'闄曡タ' },
+							        { name: '寤跺畨甯�', value: 5, province:'闄曡タ' },
+							        { name: '姹変腑甯�', value: 54, province:'闄曡タ' },
+							        { name: '姒嗘灄甯�', value: 342, province:'闄曡タ' },
+							        { name: '瀹夊悍甯�', value: 6, province:'闄曡タ' },
+							        { name: '鍟嗘礇甯�', value: 6, province:'闄曡タ' },
+							        { name: '鍏板窞甯�', value: 6, province:'鐢樿們' },
+							        { name: '鍢夊唱鍏冲競', value: 5, province:'鐢樿們' },
+							        { name: '閲戞槍甯�', value: 431, province:'鐢樿們' },
+							        { name: '鐧介摱甯�', value: 243, province:'鐢樿們' },
+							        { name: '澶╂按甯�', value: 423, province:'鐢樿們' },
+							        { name: '姝﹀▉甯�', value: 123, province:'鐢樿們' },
+							        { name: '寮犳帠甯�', value: 43, province:'鐢樿們' },
+							        { name: '骞冲噳甯�', value: 32, province:'鐢樿們' },
+							        { name: '閰掓硥甯�', value: 32, province:'鐢樿們' },
+							        { name: '搴嗛槼甯�', value: 54, province:'鐢樿們' },
+							        { name: '瀹氳タ甯�', value: 64, province:'鐢樿們' },
+							        { name: '闄囧崡甯�', value: 34, province:'鐢樿們' },
+							        { name: '涓村鍥炴棌鑷不宸�', value: 34, province:'鐢樿們' },
+							        { name: '鐢樺崡钘忔棌鑷不宸�', value: 23, province:'鐢樿們' },
+							        { name: '瑗垮畞甯�', value: 43, province:'闈掓捣' },
+							        { name: '娴蜂笢甯�', value: 54, province:'闈掓捣' },
+							        { name: '娴峰寳钘忔棌鑷不宸�', value: 34, province:'闈掓捣' },
+							        { name: '榛勫崡钘忔棌鑷不宸�', value: 23, province:'闈掓捣' },
+							        { name: '娴峰崡钘忔棌鑷不宸�', value: 54, province:'闈掓捣' },
+							        { name: '鏋滄礇钘忔棌鑷不宸�', value: 54, province:'闈掓捣' },
+							        { name: '鐜夋爲钘忔棌鑷不宸�', value: 67, province:'闈掓捣' },
+							        { name: '娴疯タ钂欏彜鏃忚棌鏃忚嚜娌诲窞', value: 54, province:'闈掓捣' },
+							        { name: '鍛煎拰娴╃壒甯�', value: 34, province:'鍐呰挋鍙�' },
+							        { name: '鍖呭ご甯�', value: 56, province:'鍐呰挋鍙�' },
+							        { name: '璧ゅ嘲甯�', value: 78, province:'鍐呰挋鍙�' },
+							        { name: '閫氳窘甯�', value: 78, province:'鍐呰挋鍙�' },
+							        { name: '閯傚皵澶氭柉甯�', value: 46, province:'鍐呰挋鍙�' },
+							        { name: '鍛间鸡璐濆皵甯�', value:67 , province:'鍐呰挋鍙�' },
+							        { name: '宸村溅娣栧皵甯�', value: 35, province:'鍐呰挋鍙�' },
+							        { name: '涔屽叞瀵熷竷甯�', value: 35, province:'鍐呰挋鍙�' },
+							        { name: '鍏村畨鐩�', value: 4, province:'鍐呰挋鍙�' },
+							        { name: '閿℃灄閮嫆鐩�', value: 4, province:'鍐呰挋鍙�' },
+							        { name: '闃挎媺鍠勭洘', value: 56, province:'鍐呰挋鍙�' },
+							        { name: '鏄嗘槑甯�', value: 56, province:'浜戝崡' },
+							        { name: '鏇查潠甯�', value: 56, province:'浜戝崡' },
+							        { name: '鐜夋邯甯�', value: 43, province:'浜戝崡' },
+							        { name: '淇濆北甯�', value: 67, province:'浜戝崡' },
+							        { name: '鏄�氬競', value: 78, province:'浜戝崡' },
+							        { name: '涓芥睙甯�', value: 34, province:'浜戝崡' },
+							        { name: '鏅幢甯�', value: 8, province:'浜戝崡' },
+							        { name: '涓存钵甯�', value: 89, province:'浜戝崡' },
+							        { name: '妤氶泟褰濇棌鑷不宸�', value: 34, province:'浜戝崡' },
+							        { name: '绾㈡渤鍝堝凹鏃忓綕鏃忚嚜娌诲窞', value: 34, province:'浜戝崡' },
+							        { name: '鏂囧北澹棌鑻楁棌鑷不宸�', value: 23, province:'浜戝崡' },
+							        { name: '瑗垮弻鐗堢撼鍌f棌鑷不宸�', value: 23, province:'浜戝崡' },
+							        { name: '澶х悊鐧芥棌鑷不宸�', value: 5, province:'浜戝崡' },
+							        { name: '寰峰畯鍌f棌鏅鑷不宸�', value: 34, province:'浜戝崡' },
+							        { name: '鎬掓睙鍌堝兂鏃忚嚜娌诲窞', value: 34, province:'浜戝崡' },
+							        { name: '杩簡钘忔棌鑷不宸�', value: 23, province:'浜戝崡' },
+							        { name: '鍗楀畞甯�', value: 23, province:'骞胯タ' },
+							        { name: '鏌冲窞甯�', value: 23, province:'骞胯タ' },
+							        { name: '妗傛灄甯�', value: 54, province:'骞胯タ' },
+							        { name: '姊у窞甯�', value: 54, province:'骞胯タ' },
+							        { name: '鍖楁捣甯�', value: 6, province:'骞胯タ' },
+							        { name: '闃插煄娓競', value: 57, province:'骞胯タ' },
+							        { name: '閽﹀窞甯�', value: 46, province:'骞胯タ' },
+							        { name: '璐垫腐甯�', value: 243, province:'骞胯タ' },
+							        { name: '鐜夋灄甯�', value: 24, province:'骞胯タ' },
+							        { name: '鐧捐壊甯�', value: 67, province:'骞胯タ' },
+							        { name: '璐哄窞甯�', value: 34, province:'骞胯タ' },
+							        { name: '娌虫睜甯�', value: 67, province:'骞胯タ' },
+							        { name: '鏉ュ甯�', value: 4, province:'骞胯タ' },
+							        { name: '宕囧乏甯�', value: 34, province:'骞胯タ' },
+							        ];
+									
+									//鍙栧悇鍖哄煙鐨勪腑蹇冨潗鏍囧瓨鍒癵eoCoorMap涓�
+									let geoCoordMap = {};
+									const getGeo = function (areaName) {
+										for (let i = 0; i < areaName.features.length; i++) {
+											geoCoordMap[areaName.features[i].properties.name] = areaName.features[i].properties.center;
+										}
+										return geoCoordMap;
+									};
+									
+									getGeo(China);
+									for (let city of Object.keys(mapData)) {
+										getGeo(mapData[city]);
+									}
+							
+							        //鍏ㄥ浗閿�閲忔暟鎹浆鎹㈡柟娉�
+							        const convertData = function (data) {
+							            var res = [];
+							            for (var i = 0; i < data.length; i++) {
+							                var geoCoord = geoCoordMap[data[i].name];
+							                if (geoCoord) {
+							                    res.push({
+							                        name: data[i].name,
+							                        value: geoCoord.concat(data[i].value)
+							                    });
+							                }
+							                // console.log(data)
+							                // console.log(res)
+							            }
+							            return res;
+							        };
+							
+							        //鍚勫尯閿�閲忔暟鎹浆鎹㈡柟娉�
+							        const convertDetail = function (data, provinceName) {
+							            var res = [];
+							            for (var i = 0; i < data.length; i++) {
+							                if(provinceName == data[i].province){
+							                    var geoCoord = geoCoordMap[data[i].name];
+							                    if (geoCoord) {
+							                        res.push({
+							                            name: data[i].name,
+							                            value: geoCoord.concat(data[i].value)
+							                        });
+							                    }
+							                }
+							                // console.log(data)
+							                // console.log(res)
+							            }
+							            return res;
+							        };
+							
+							        //鍒濆option锛屽嵆China option
+							        var salesOption = {
+							            // 鑳屾櫙棰滆壊
+							            backgroundColor: "",
+							            graphic:[
+							                {
+							                    type:'text',
+							                    left:'65%',
+							                    top:'15%',
+							                    style:{
+							                        text:'鍏ㄥ浗閿�閲廡op10:',
+							                        font: 'bolder 16px "Microsoft YaHei", sans-serif',
+							                        // 瀛椾綋棰滆壊
+							                        fill: "black"
+							                    }
+							                },
+							                {
+							                    // 姘村嵃绫诲瀷
+							                    type: 'text',
+							                    // 鐩稿浜庡鍣ㄧ殑浣嶇疆
+							                    left:'65%',
+							                    top: '23%',
+							                    // 鏍峰紡璁剧疆
+							                    style: {
+							                        // 鏂囨湰鍐呭
+							                        text: "鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃\n\n鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃\n\n鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃\n\n鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃\n\n鍥界憺澶ц嵂鎴挎湁闄愬叕鍙竆n\n瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙竆n\n鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙竆n\n鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃\n\n鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙竆n\n闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃",
+							                        // 瀛椾綋绮楃粏銆佸ぇ灏忋�佸瓧浣�
+							                        font: 'bolder 16px "Microsoft YaHei", sans-serif',
+							                        // 瀛椾綋棰滆壊
+							                        fill: "#99CCFF"
+							                    }
+							                },
+							                {
+							                    type: 'text',
+							                    left:'85%',
+							                    top:'23%',
+							                    style:{
+							                        text:'28000\n\n26000\n\n23456\n\n21000\n\n19999\n\n16000\n\n15432\n\n14321\n\n13000\n\n12345',
+							                        font: 'bolder 16px "Microsoft YaHei", sans-serif',
+							                        fill:'Crimson'
+							                    }
+							                },
+							                {
+							                    type:'text',
+							                    left:'2%',
+							                    bottom:'7%',
+							                    style:{
+							                        text:'',
+							                        font: 'bolder 16px "Microsoft YaHei", sans-serif',
+							                        // 瀛椾綋棰滆壊
+							                        fill: "#777777"
+							                    }
+							                },
+							            ],
+							
+							            // 鎻愮ず娴獥鏍峰紡
+							            tooltip: {
+							                show: true,
+							                formatter:function(params){
+							                    console.log(params)
+							                    return params.name+'  :  '+params.data.value[2]
+							                },
+							                trigger: "item",
+							                alwaysShowContent: false,
+							                backgroundColor: "#0C121C",
+							                borderColor: "rgba(0, 0, 0, 0.16);",
+							                hideDelay: 100,
+							                triggerOn: "mousemove",
+							                enterable: true,
+							                textStyle: {
+							                    color: "#DADADA",
+							                    fontSize: "12",
+							                    width: 20,
+							                    height: 30,
+							                    overflow: "break",
+							                },
+							                showDelay: 100,
+							            }, 
+							
+							            series: [
+							                {
+							                    name: '閿�閲�',
+							                    type: "scatter",
+							                    symbol: "pin",
+							                    legendHoverLink: true,
+							                    symbolSize: [45, 45],
+							                    coordinateSystem: 'geo',
+							                    data: convertData(data),
+							                    encode: {
+							                        value: 2
+							                    },
+							                    label: {
+							                        show: true,
+							                        formatter(params) {
+							                            return params.data.value[2];
+							                        },
+							                        color: "white",
+							                        fontWeight:'bold',
+							                    },
+							                    itemStyle: {
+							                        normal: {
+							                            color: "rgba(255,0,0,.6)",
+							                            shadowBlur: 2,
+							                            shadowColor: "D8BC37",
+							                        },
+							                    },
+							                        showEffectOn: "render",
+							                        rippleEffect: {
+							                            brushType: "stroke",
+							                        },
+							                        hoverAnimation: true,
+							                        zlevel: 1,
+							                        emphasis: {
+							                            label: {
+							                            show: true
+							                            }
+							                        }
+							                    },        
+							            ],
+							
+							            geo: {
+							                map: "china",
+							                left:"15%",
+							                // right:"40px",
+							                top:'30%',
+							                zoom:1.6,
+							                // roam:true,
+							                label: {
+							                    // 閫氬父鐘舵�佷笅鐨勬牱寮�
+							                    normal: {
+							                        show: true,
+							                        textStyle: {
+							                            color: "white",
+							                            fontWeight:'bold',
+							                            fontSize:10                        
+							                        },
+							                    },
+							                    // 榧犳爣鏀句笂鍘荤殑鏍峰紡
+							                    emphasis: {
+							                        // show:false,
+							                        textStyle: {
+							                            color: "#fff",
+							                        },
+							                    },
+							                },
+							                // 鍦板浘鍖哄煙鐨勬牱寮忚缃�
+							                itemStyle: {
+							                    normal: {//姝e父鐘舵��
+							                        borderColor: "darkorange",//鍖哄煙杈圭晫棰滆壊
+							                        borderWidth: 1,
+							                        areaColor: '#99CCFF',//鍖哄煙棰滆壊
+							                    },
+							                    // 榧犳爣鏀句笂鍘婚珮浜殑鏍峰紡
+							                    emphasis: {
+							                        areaColor: "MediumAquamarine",//楂樹寒鐘舵�佸尯鍩熼鑹�
+							                        borderWidth: 0,
+							                    }
+							                },
+							            },
+							        };
+							        // 鍦板浘娉ㄥ唽锛岀涓�涓弬鏁扮殑鍚嶅瓧蹇呴』鍜宱ption.geo.map涓�鑷�
+							        echarts.registerMap("china",China)
+							        salesChart.setOption(salesOption);
+							
+							        //鑳芥垚鍔熶竴娆�
+							        // const save = JSON.parse(JSON.stringify(salesOption.series));
+							        //鎶ラ敊
+							        // const save = $.extend(true, [], salesOption.series);
+							        //鑳芥垚鍔熶竴娆�
+							        // const save = [...salesOption.series]
+							
+							
+							        //浜岀骇鍦板浘鐘舵�佷笅锛岀偣鍑荤┖鐧藉杩斿洖涓�绾у湴鍥撅紝搴旀仮澶嶆暟鎹樉绀�
+							        salesChart.getZr().on('click',(event)=>{
+							            if(!event.target){
+							                salesOption.geo.map = 'china'
+							                salesOption.geo.zoom = 1.6
+							                salesOption.geo.top = "30%"
+							                salesOption.geo.left="15%"
+							                // salesOption.series=save
+							                salesOption.graphic[0].style.text= "鍏ㄥ浗閿�閲廡op10:"
+							                salesOption.graphic[1].style.text= "鍗庢鼎鍖昏嵂鍟嗕笟闆嗗洟鏈夐檺鍏徃\n\n鐧炬嘲鐢熺墿鑽笟鏈夐檺鍏徃\n\n鍗庡畯鍖昏嵂杩為攣鏈夐檺鍏徃\n\n鎭掓嘲鍖昏嵂杩為攣鏈夐檺鍏徃\n\n鍥界憺澶ц嵂鎴挎湁闄愬叕鍙竆n\n瀛樹粊鍫傚尰鑽繛閿佹湁闄愯矗浠诲叕鍙竆n\n鍗庝笢澶ц嵂鎴胯繛閿佹湁闄愬叕鍙竆n\n鑻辩壒鐢靛瓙鍟嗗姟鏈夐檺鍏徃\n\n鐖卞�嶇敓澶ц嵂鎴胯繛閿佹湁闄愬叕鍙竆n\n闅嗚��鍖昏嵂杩為攣鏈夐檺鍏徃"
+							                salesOption.graphic[2].style.text= "28000\n\n26000\n\n23456\n\n21000\n\n19999\n\n16000\n\n15432\n\n14321\n\n13000\n\n12345"
+							                salesOption.graphic[3].style.text= ""
+							                echarts.registerMap('china', China)
+							                salesChart.setOption(salesOption)
+							            }
+							        })
+							
+							
+							        salesChart.getZr().on('mousemove',(event) =>{
+							            if(!event.target){
+							                console.log('uh')
+							            }
+							            else{
+							                console.log('hello')
+							            }
+							        })
+							
+							        
+							        //涓�绾у湴鍥剧姸鎬佷笅锛岀偣鍑荤渷浠藉尯鍩燂紝杩涘叆浜岀骇鍦板浘锛屽簲娓呯┖鏁版嵁鏄剧ず
+							        salesChart.on('click',({name})=>{         
+							            // var newOption = salesChart.getOption(salesOption);
+							            // salesChart.clear();
+							            // newOption.series.splice(0);
+							
+							            var newOption ={
+							                ...salesOption,
+							                series: [
+							                    {
+							                        name: '閿�閲�',
+							                        type: "scatter",
+							                        symbol: "pin",
+							                        legendHoverLink: true,
+							                        symbolSize: [45, 45],
+							                        coordinateSystem: 'geo',
+							                        data: convertDetail(dataDetail,name),
+							                        encode: {
+							                            value: 2
+							                        },
+							                        label: {
+							                            show: true,
+							                            formatter(params) {
+							                                return params.data.value[2];
+							                            },
+							                            color: "white",
+							                            fontWeight:'bold',
+							                        },
+							                        itemStyle: {
+							                            normal: {
+							                                color: "rgba(255, 165, 0,1)",
+							                                shadowBlur: 2,
+							                                shadowColor: "D8BC37",
+							                            },
+							                        },
+							                            showEffectOn: "render",
+							                            rippleEffect: {
+							                                brushType: "stroke",
+							                            },
+							                            hoverAnimation: true,
+							                            zlevel: 1,
+							                            emphasis: {
+							                                label: {
+							                                show: true
+							                                }
+							                            }
+							                        },        
+							                ],
+							            }
+							
+							            var [mapName,mapJs,mapShow,dataShow]=getMap(name);
+							            newOption.geo.map = mapName
+							            newOption.geo.zoom = 0.8
+							            newOption.geo.top = "10%"
+							            newOption.geo.left = "10%"
+							            newOption.graphic[0].style.text= name + "閿�閲廡op10:"
+							            newOption.graphic[1].style.text= mapShow
+							            newOption.graphic[2].style.text= dataShow
+							            newOption.graphic[3].style.text= '鐐瑰嚮绌虹櫧澶勮繑鍥炲叏鍥藉湴鍥�'
+							            echarts.registerMap(mapName, mapJs) 
+							          
+							            salesChart.setOption(newOption, true)
+							            
+							
+							            // var [mapName,mapJs,mapShow]=getMap(name);
+							            // salesOption.geo.map = mapName
+							            // salesOption.geo.zoom = 0.8
+							            // salesOption.geo.top = "20%"
+							            // salesOption.geo.left = "20%"
+							            // salesOption.graphic.style.text= "Top10 :"+ " " + mapShow
+							            // salesOption.series.splice(0)
+							            // echarts.registerMap(mapName, mapJs) 
+							          
+							            // salesChart.setOption(salesOption,true)
+							        })
+						},
+						
+						//浜у搧A
+						sale1(){
+							var sale1Dom = document.getElementById('sale1');
+							var sale1Chart = echarts.init(sale1Dom);
+							var me = this;
+							var sale1Option = {
+							  title:{
+							      text:"浜у搧A",    
+							      left : 'center',
+							  },
+							  xAxis: [
+							      {
+							      type: 'category',
+								  data: me.datearr,
+							      axisPointer: {
+							          type: 'shadow'
+							      }
+							      }
+							  ],
+							  yAxis: [
+							      {
+							      type: 'value',
+							      interval: 50,
+							      show:false
+							      },
+							      {
+							      type: 'value',
+							      name: '澧為暱鐜�',
+							      min: -1000,
+							      max: 38,
+							      interval: 5,
+							      axisLabel: {
+							          formatter: '{value} %'
+							      },
+							      show:false
+							      }
+							  ],
+							  series: [
+							      {
+							      type: 'bar',
+							      tooltip: {
+							          valueFormatter: function (value) {
+							          return value;
+							          }
+							      },
+							      label:{
+							          show:true
+							      },
+							      data: [
+							          62597, 76731, 86663, 87943, 106989, 77349, 97822, 98787, 113409, 71545, 98501, 85470,95450
+							      ]
+							      },
+							      {
+							      name: '澧為暱鐜�',
+							      type: 'line',
+							      yAxisIndex: 1,
+							      tooltip: {
+							          valueFormatter: function (value) {
+							          return value + ' %';
+							          }
+							      },
+							      label:{
+							          show:true,
+							          formatter:function(params){
+							          return params.value+'%';
+							          }
+							      },
+							      data: [3, 23, 13, 1, 22, -28, 26, 1, 15, -37, 38, -13, 12]
+							      }
+							  ]
+							};
+							sale1Chart.setOption(sale1Option);
+						},
+						
+						//浜у搧B
+						sale2(){
+							var sale2Dom = document.getElementById('sale2');
+							var sale2Chart = echarts.init(sale2Dom);
+							var me = this;
+							var sale2Option = {
+							  title:{
+							      text:"浜у搧B",    
+							      left : 'center',
+							  },
+							  xAxis: [
+							      {
+							      type: 'category',
+								  data: me.datearr,
+							      axisPointer: {
+							          type: 'shadow'
+							      }
+							      }
+							  ],
+							  yAxis: [
+							      {
+							      type: 'value',
+							      interval: 50,
+							      show:false
+							      },
+							      {
+							      type: 'value',
+							      name: '澧為暱鐜�',
+							      min: -1000,
+							      max: 100,
+							      interval: 5,
+							      axisLabel: {
+							          formatter: '{value} %'
+							      },
+							      show:false
+							      }
+							  ],
+							  series: [
+							      {
+							      type: 'bar',
+							      tooltip: {
+							          valueFormatter: function (value) {
+							          return value;
+							          }
+							      },
+							      label:{
+							          show:true
+							      },
+							      data: [
+							          20, 30, 40, 50,443, 989, 2481, 4019, 5367, 3536, 7023, 8044, 9130
+							      ]
+							      },
+							      {
+							      name: '澧為暱鐜�',
+							      type: 'line',
+							      yAxisIndex: 1,
+							      tooltip: {
+							          valueFormatter: function (value) {
+							          return value + ' %';
+							          }
+							      },
+							      label:{
+							          show:true,
+							          formatter:function(params){
+							          return params.value+'%';
+							          }
+							      },
+							      data: [0, 0, 0, 0, 0, 0, 62, 62, 34, -34, 99, 15, 14]
+							      }
+							  ]
+							};
+							sale2Chart.setOption(sale2Option);
+						},
+						
+						//浜у搧C
+						sale3(){
+							var sale3Dom = document.getElementById('sale3');
+							var sale3Chart = echarts.init(sale3Dom);
+							var me = this;
+							var sale3Option = {
+							  title:{
+							      text:'浜у搧C',    
+							      left : 'center',
+							  },
+							  xAxis: [
+							      {
+							      type: 'category',
+								  data: me.datearr,
+							      axisPointer: {
+							          type: 'shadow'
+							      }
+							      }
+							  ],
+							  yAxis: [
+							      {
+							      type: 'value',
+							      interval: 50,
+							      show:false
+							      },
+							      {
+							      type: 'value',
+							      name: '澧為暱鐜�',
+							      min: -1000,
+							      max: 200,
+							      interval: 5,
+							      axisLabel: {
+							          formatter: '{value} %'
+							      },
+							      show:false
+							      }
+							  ],
+							  series: [
+							      {
+							      type: 'bar',
+							      tooltip: {
+							          valueFormatter: function (value) {
+							          return value;
+							          }
+							      },
+							      label:{
+							          show:true
+							      },
+							      data: [0, 0, 0, 0, 2974, 4297, 7137, 19367, 34183, 29336, 47642, 54915, 57600]
+							      },
+							      {
+							      name: '澧為暱鐜�',
+							      type: 'line',
+							      yAxisIndex: 1,
+							      tooltip: {
+							          valueFormatter: function (value) {
+							          return value + ' %';
+							          }
+							      },
+							      label:{
+							          show:true,
+							          formatter:function(params){
+							          return params.value+'%';
+							          }
+							      },
+							      data: [0, 0, 0, 0, 47.5, 44, 66, 171, 77, -134, 62, 15, 5]
+							      }
+							  ]
+							};
+							sale3Chart.setOption(sale3Option);
+						},
+						
+						//浜у搧D
+						sale4(){
+							var me = this;
+							var sale4Dom = document.getElementById('sale4');
+							var sale4Chart = echarts.init(sale4Dom);
+							
+							var sale4Option = {
+							  title:{
+							      text:"浜у搧D",    
+							      left : 'center',
+							  },
+							  xAxis: [
+							      {
+							      type: 'category',
+								  data: me.datearr,
+							      axisPointer: {
+							          type: 'shadow'
+							      }
+							      }
+							  ],
+							  yAxis: [
+							      {
+							      type: 'value',
+							      interval: 50,
+							      show:false
+							      },
+							      {
+							      type: 'value',
+							      name: '澧為暱鐜�',
+							      min: -1000,
+							      max: 200,
+							      interval: 5,
+							      axisLabel: {
+							          formatter: '{value} %'
+							      },
+							      show:false
+							      }
+							  ],
+							  series: [
+							      {
+							      type: 'bar',
+							      tooltip: {
+							          valueFormatter: function (value) {
+							          return value;
+							          }
+							      },
+							      label:{
+							          show:true
+							      },
+							      data: [0, 0, 0, 0, 0, 0, 0, 0, 03, 036, 329, 915, 1860]
+							      },
+							      {
+							      name: '澧為暱鐜�',
+							      type: 'line',
+							      yAxisIndex: 1,
+							      tooltip: {
+							          valueFormatter: function (value) {
+							          return value + ' %';
+							          }
+							      },
+							      label:{
+							          show:true,
+							          formatter:function(params){
+							          return params.value+'%';
+							          }
+							      },
+							      data: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 143.7, 108.3]
+							      }
+							  ]
+							};
+							sale4Chart.setOption(sale4Option);
+						},
+						
+						//pie1
+						pie1(){
+							var pie1Dom = document.getElementById('pie1');
+							var pie1Chart = echarts.init(pie1Dom);
+							
+							var pie1Option = {
+							  title: {
+							              text: '鎸塡n鍑篭n鍘俓n閿�\n鍞�',
+							              top:'middle',
+							              orient:'vertical'
+							          },
+							  tooltip: {
+							      trigger: 'item'
+							  },
+							 legend: {
+							             // left: 'left',
+										 // type:'scroll',
+							             top:'70',
+							         },
+							  series: [
+							      {
+							      name: '鎸夊嚭鍘傞攢鍞�',
+							      type: 'pie',
+							      radius: '50%',
+							      data: [
+							          { value: 148, name: '浜у搧A' },
+							          { value: 75, name: '浜у搧B' },
+							          { value: 58, name: '浜у搧C' },
+							          { value: 44, name: '浜у搧D' }
+							      ],
+							      label:{
+							          show:true,
+							          position:'inner',
+							          formatter:'{d}%'
+							      },
+							      emphasis: {
+							          itemStyle: {
+							          shadowBlur: 10,
+							          shadowOffsetX: 0,
+							          shadowColor: 'rgba(0, 0, 0, 0.5)'
+							          }
+							      }
+							      }
+							  ]
+							};
+							pie1Chart.setOption(pie1Option);
+						},
+						
+						//pie2
+						pie2(){
+							var pie2Dom = document.getElementById('pie2');
+							var pie2Chart = echarts.init(pie2Dom);
+							
+							var pie2Option = {
+							  title: {
+								  text: '鎸塡n甯俓n鍦篭n绾痋n閿�',
+								  top:'middle',
+								  orient:'vertical'
+							  },
+							  tooltip: {
+							      trigger: 'item'
+							  },
+							  legend: {
+							              // left: 'center',
+							              top:'70',
+										  // top:'bottom',
+							          },
+							  series: [
+							      {
+							      name: '鎸夊競鍦虹函閿�',
+							      type: 'pie',
+							      radius: '50%',
+							      data: [
+							          { value: 1048, name: '浜у搧A' },
+							          { value: 735, name: '浜у搧B' },
+							          { value: 580, name: '浜у搧C' },
+							          { value: 484, name: '浜у搧D' }
+							      ],
+							      label:{
+							          show:true,
+							          position:'inner',
+							          formatter:'{d}%'
+							      },
+							      emphasis: {
+							          itemStyle: {
+							          shadowBlur: 10,
+							          shadowOffsetX: 0,
+							          shadowColor: 'rgba(0, 0, 0, 0.5)'
+							          }
+							      }
+							      }
+							  ]
+							};
+							pie2Chart.setOption(pie2Option);
+						},
+						
+						//pie3
+						pie3(){
+							var pie3Dom = document.getElementById('pie3');
+							var pie3Chart = echarts.init(pie3Dom);
+							
+							var pie3Option = {
+							  title: {
+								  text: '鎸塡n娓燶n閬揬n搴揬n瀛�',
+								  top:'middle',
+								  orient:'vertical'
+							  },
+							  tooltip: {
+							      trigger: 'item'
+							  },
+							  legend: {
+							              left: 'left',
+							              top:'70'
+							          },
+							  series: [
+							      {
+							      name: '鎸夋笭閬撳簱瀛�',
+							      type: 'pie',
+							      radius: '50%',
+							      data: [
+							          { value: 248, name: '浜у搧A' },
+							          { value: 75, name: '浜у搧B' },
+							          { value: 58, name: '浜у搧C' },
+							          { value: 144, name: '浜у搧D' }
+							      ],
+							      label:{
+							          show:true,
+							          position:'inner',
+							          formatter:'{d}%'
+							      },
+							      emphasis: {
+							          itemStyle: {
+							          shadowBlur: 10,
+							          shadowOffsetX: 0,
+							          shadowColor: 'rgba(0, 0, 0, 0.5)'
+							          }
+							      }
+							      }
+							  ]
+							};
+							pie3Chart.setOption(pie3Option);
+						},
+						
+						//鎶樻煴
+						invoicing(){
+							var me = this;
+							var inDom = document.getElementById('invoicing');
+							var inChart = echarts.init(inDom);
+							
+							var inOption = {
+							  tooltip: {
+							      trigger: 'axis',
+							      axisPointer: {
+							      type: 'cross',
+							      crossStyle: {
+							          color: '#999'
+							      }
+							      }
+							  },
+							  toolbox: {
+							      feature: {
+							      dataView: { show: false, readOnly: false },
+							      magicType: { show: true, type: ['line', 'bar'] },
+							      restore: { show: true },
+							      saveAsImage: { show: true }
+							      }
+							  },
+							  legend: {},
+							  xAxis: [
+							      {
+							      type: 'category',
+							      data: me.datearr,
+							      axisPointer: {
+							          type: 'shadow'
+							      }
+							      }
+							  ],
+							  yAxis: [
+							      {
+							      type: 'value',
+							      name: 'Million',
+							      },
+							      {
+							      type: 'value',
+							      show:false,
+							      min:0,
+							      max:62
+							      }
+							  ],
+							  series: [
+							      {
+							      name: '鍑哄巶閿�鍞�',
+							      type: 'bar',
+							      tooltip: {
+							      valueFormatter: function (value) {
+							          return value;
+							          }
+							      },
+							      label:{
+							          show:true
+							      },
+							      data: [
+							          185, 147, 161, 203, 284, 271, 204, 313, 350, 237, 281, 297,165
+							      ]
+							      },
+							      {
+							      name: '绾攢閿�鍞�',
+							      type: 'bar',
+							      tooltip: {
+							          valueFormatter: function (value) {
+							          return value;
+							          }
+							      },
+							      label:{
+							          show:true
+							      },
+							      data: [
+							          137, 168, 190, 194, 288, 175, 224, 239, 286, 188, 267, 247,273
+							      ]
+							      },
+							          {
+							      name: '娓犻亾搴撳瓨',
+							      type: 'bar',
+							      tooltip: {
+							          valueFormatter: function (value) {
+							          return value;
+							          }
+							      },
+							      label:{
+							          show:true
+							      },
+							      data: [
+							          292, 271, 243, 252, 298, 393, 372, 449, 513, 562, 575, 625, 516
+							      ]
+							      },
+							          {
+							      name: '搴撳瓨澶╂暟',
+							      type: 'line',
+							      yAxisIndex: 1,
+							      tooltip: {
+							          valueFormatter: function (value) {
+							          return value;
+							          }
+							      },
+							      label:{
+							          show:true
+							      },
+							      data: [49, 40, 31, 29, 31, 53, 43, 42, 44, 50, 56, 62, 50]
+							      },
+							  ]
+							};
+							inChart.setOption(inOption);
+						},
+						
+						initData() {
+							var me = this;
+							let param_ = {
+								isClientMode: false,
+								dataname: this.dataname,
+								page: {
+									pageno: this.pagenum,
+									pagesize: this.pagesize
+								},
+							}
+							Server.call("root/data/getEntitySet", param_, function(result) {
+								me.total = 0;
+								me.tableData = [];
+								if (result && result.data) {
+									me.total = result.data.page.recordcount;
+									var data_ = result.data.entityset;
+									// console.log(data_)
+									me.tableData = data_;
+								}
+							});
+						},
+						showFilterPopup() {
+							
+						},
+						onInitFilter() {
+							this.filterObj = {}
+							this.onQuery();
+						},
+						onEditFilter() {
+							
+						},
+						getData(page) {
+							this.pagesize = page.pagesize;
+							this.pagenum = page.pagenum;
+							this.doQuery();
+						},
+						handleClick(tab) {
+							this.AnchorLinkTo(tab.name);
+						},
+						formSelectChange(obj) {
+							var me = this;
+							var fieldObj = obj.fieldobj;
+							var filterFieldsData = clone(me.filterFields);
+							
+							if (fieldObj.field == "province") {
+								var filterObj_ = clone(me.filterObj);
+								filterObj_.city = null;
+								me.filterObj = filterObj_;
+								let param_ = {
+									isClientMode: false,
+									dataname: "md_province",
+									filter: [
+										{field: "name", value:obj.data.province}
+									]
+								}
+								Server.call("root/data/getEntitySet", param_, function(result) {
+									if (result && result.data) {
+										let param_ = {
+											isClientMode: false,
+											dataname: "md_vip_area",
+											filter:[
+												{"field": "province_id", "value":result.data.entityset[0].id}
+											]
+										}
+										Server.call("root/data/getEntitySet", param_, function(result) {
+											if (result && result.data) {
+												var options_ = result.data.entityset;
+												for(var i=0; i<options_.length;i++) {
+													options_[i].label = options_[i].name;
+													options_[i].value = options_[i].name;
+													
+												}
+												filterFieldsData.map(e=>{
+													if(e.field == "city") {
+														e.options = options_;
+													}
+												})
+											}
+											me.filterFields = filterFieldsData;
+										});
+									}
+								});
+							}
+						},
+						
+						//鍔ㄦ�佸姞杞戒笅鎷夐」
+						cellVisibleChange(obj, row) {
+							let me = this;
+							var filterFieldsData = clone(me.filterFields);
+							if (obj.field == "province") {
+								var filterFieldsData = clone(me.filterFields);
+								let param_ = {
+									isClientMode: false,
+									dataname: "md_province",
+								}
+								Server.call("root/data/getEntitySet", param_, function(result) {
+									if (result && result.data) {
+										var options_ = result.data.entityset;
+										for(var i=0; i<options_.length;i++) {
+											options_[i].label = options_[i].name;
+											options_[i].value = options_[i].name;
+										}
+										filterFieldsData.map(e=>{
+											if(e.field == "province") {
+												e.options = options_;
+											}
+										})
+									}
+									me.filterFields = filterFieldsData;
+								});
+							}
+						},
+						
+						onFormButtonByCode(code) {
+							if (code == "add") {//娣诲姞
+								// let me = this;
+								// var config = {
+								// 	totab: true,
+								// 	title: "瀹㈡埛涓绘暟鎹柊澧�",
+								// 	url: "../home/masterDataAdd.html",
+								// 	data: {},
+								// 	delta: {},
+								// 	opentype: "add",
+								// 	sceneCode: "add",
+								// 	width: 780,
+								// 	height: 420,
+								// 	callback: function(obj, callback) {
+								// 		me.onQuery();
+								// 		if (callback) {
+								// 			callback();
+								// 		}
+								// 	}
+								// };
+								// Root.showPopup(config);
+								// this.tabCardClick(config);
+							}
+							else if (code == "import") {//瀵煎叆
+								
+							}
+							else if (code == "export") {//瀵煎嚭
+								
+							}
+						},
+						cellClick(obj) {//鍗曞厓鏍肩偣鍑�
+							var field = obj.column.property;
+							var row = obj.row;
+							var tableField = obj.tableField;
+							// if(tableField.field == "field2") {
+							// 	var to_page = {
+							// 		totab: true,
+							// 		title: "瀹㈡埛鏄庣粏(涓绘暟鎹�)",
+							// 		url: "../home/masterDataCustomerDetails.html",
+							// 		data: {},
+							// 		delta: {},
+							// 		opentype: "add",
+							// 		sceneCode: "add",
+							// 		width: 1100,
+							// 		height: 550,
+							// 		callback: function(obj, callback) {
+							// 			me.onQuery();
+							// 			if (callback) {
+							// 				callback();
+							// 			}
+							// 		}
+							// 	};
+							// 	Root.showPopup(to_page);
+							// }
+						},
+						queryData(row) {
+							let me = this;
+							
+							// var config = {
+							// 	width: 1000,
+							// 	height: 550,
+							// 	title: "鏌ョ湅鍗忎細鏅哄簱妗f",
+							// 	url: "../flow_manage/addAssociationLibraryList.html",
+							// 	totab: true,
+							// 	sceneCode: "query",
+							// 	opentype: "add",
+							// 	data: row,
+							// 	delta: {},
+							// 	callback: function(obj, callback) {
+							// 		if (callback) {
+							// 			callback();
+							// 		}
+							// 	}
+							// };
+							// // this.doPopup(config);
+							// this.tabCardClick(config);
+						},
+						cellButtonClick(obj) {
+							var type_ = obj.column.property;
+							var row = obj.row;
+							var field = "name";
+							var tips = "";
+							
+							if(type_ == "delete"){
+								this.delData(row,field,tips);
+							} else if (type_ == "update"){
+								this.editData(obj);
+							} else if (type_ == "query"){
+								this.queryData(row);
+							}
+						},
+						//淇敼鏁版嵁浜嬩欢
+						onEditData(config, scope) {
+							var me = this;
+							var row = scope.row;
+							// var config = {
+							// 	width: 1000,
+							// 	height: 550,
+							// 	title: "缂栬緫瀹㈡埛涓绘暟鎹�",
+							// 	url: "../home/masterDataAdd.html",
+							// 	totab: true,
+							// 	sceneCode: "edit",
+							// 	opentype: "add",
+							// 	data: row,
+							// 	delta: {},
+							// 	callback: function(obj, callback) {
+							// 		me.initData();
+							// 		if (callback) {
+							// 			callback();
+							// 		}
+							// 	}
+							// };
+							// this.doPopup(config);
+						},
+						
+						
+						
+						//婊氬姩浜嬩欢
+						myFunction(e) {
+							var isToBottom_ = this.isToBottom(e);
+							if (isToBottom_) {
+								this.org_footer = true;
+							}
+							else {
+								this.org_footer = false;
+							}
+						},
+						
+						isToBottom(e) {
+							var bo_ = false;
+							if(e.srcElement.scrollTop + e.srcElement.offsetHeight >= e.srcElement.scrollHeight){
+						銆�銆�銆�銆�//宸茬粡鍒版渶搴曢儴浜�
+								bo_ = true;
+						銆�銆�}
+							return bo_;
+						},
+						
+					}
+				});
+			}
+		
+			loadJsCss(function() {
+				initVue();
+			});
+		</script>
+
+		<style>
+			[v-cloak] {
+				display: none !important;
+			}
+			
+			.v_header .v_header_query{
+			    padding: 0px 36px;
+			    box-sizing: border-box;
+			}
+		</style>
+	</body>
+</html>
diff --git a/module/report/page/report_list.html b/module/report/page/report_list.html
index 76f086a..1346615 100644
--- a/module/report/page/report_list.html
+++ b/module/report/page/report_list.html
@@ -5,7 +5,6 @@
 		<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"},
@@ -17,28 +16,28 @@
 				new TreeVue({
 					el: "#vbody",
 					data: {
-						dataname: "md_product_category",
-						title: "鎶ヨ〃绠$悊",
+						dataname: "sys_report_echarts",
+						title: "鍒嗘瀽鎶ヨ〃",
 						tree_title: "鎶ヨ〃鍒嗙被",
 						treeTxtFormatter: "{name}",
 						isTreeReadonly: false,
 						selectnodedata: {},
 						dataRequest: [
-							{
-								 name: "sys_report",
-								 //url: "root/front/getOneDictionary",
-								 //paramsobj: { code: "OrgType", },
-								 //filter: " type='agreement'",
-								 isnotoption: true, //true:涓嶆槸閫夐」
-							},
-							{
-								 name: "jimu_report",
-								 //url: "root/front/getOneDictionary",
-								 //paramsobj: { code: "OrgType", },
-								 isnotoption: true, //true:涓嶆槸閫夐」
-								 filter: "type in ('datainfo', 'chartinfo', 'printinfo')",//:"id",//鏄笅鎷夐�夐」鏃惰缃�
-								 orderby: "update_time desc"
-							},
+							// {
+							// 	 name: "sys_report_echarts",
+							// 	 //url: "root/front/getOneDictionary",
+							// 	 //paramsobj: { code: "OrgType", },
+							// 	 //filter: " type='agreement'",
+							// 	 isnotoption: true, //true:涓嶆槸閫夐」
+							// },
+							// {
+							// 	 name: "jimu_report",
+							// 	 //url: "root/front/getOneDictionary",
+							// 	 //paramsobj: { code: "OrgType", },
+							// 	 isnotoption: true, //true:涓嶆槸閫夐」
+							// 	 filter: "type in ('datainfo', 'chartinfo', 'printinfo')",//:"id",//鏄笅鎷夐�夐」鏃惰缃�
+							// 	 orderby: "update_time desc"
+							// },
 						],
 						dataRequestObj: {},
 						report_url: "",
@@ -76,22 +75,22 @@
 								me.dataRequestObj = data;
 								//棰勫姞杞芥暟鎹悗缁欏摢浜涘瓧娈佃缃畂ptions鎴杅ormatterjson
 								
-								me.dataRequestObj.sys_report.map(r=>{
+								me.dataRequestObj.sys_report_echarts.map(r=>{
 									r.disabled = true;
 									r.parent_id = "z1";
 								})
-								me.dataRequestObj.jimu_report.map(r=>{
-									r.parent_id = "z2";
-								})
+								// me.dataRequestObj.jimu_report.map(r=>{
+								// 	r.parent_id = "z2";
+								// })
 								
 								var treeData_ = [
 									{id: "z1", name: "缁煎悎鎶ヨ〃", disabled: true, children: []},
-									{id: "z2", name: "鑷畾涔夋姤琛�", edit_disabled: true, children: []},
+									// {id: "z2", name: "鑷畾涔夋姤琛�", edit_disabled: true, children: []},
 								]
 								
-								me.selectnodedata = me.dataRequestObj.sys_report[0];
-								treeData_[0].children = me.dataRequestObj.sys_report;
-								treeData_[1].children = me.dataRequestObj.jimu_report;
+								me.selectnodedata = me.dataRequestObj.sys_report_echarts[0];
+								treeData_[0].children = me.dataRequestObj.sys_report_echarts;
+								// treeData_[1].children = me.dataRequestObj.jimu_report;
 								me.treeData = treeData_;
 								me.initData();
 							});
@@ -105,138 +104,58 @@
 					},
 					
 					methods:{
-						onQuery() {
-							var me = this;
-							let param_ = {
-								dataname: "jimu_report",
-								filter: "type in ('datainfo', 'chartinfo', 'printinfo')",
-								orderby: "update_time desc"
-							}
-							Server.call("root/data/getEntitySet", param_, function(result) {
-								console.log(result.data.entityset)
-								if (result && result.data.entityset && result.data.entityset.length) {
-									result.data.entityset.map(r=>{
-										r.parent_id = "z2";
-									})
-									
-									var treeData_ = clone(me.treeData);
-									treeData_[1].children = result.data.entityset;
-									me.treeData = treeData_;
-									me.initData();
-								}
-							});
-						},
-						
 						initData() {
 							var me = this;
-							// this.onQuery(function(result, callback) {//鏌ヨ鍚庣殑鍥炶皟锛岀敤浜庤幏鍙栧瓧娈电殑
-							// 	me.treeData = me.initTreeData;
-							// 	if (callback) {
-							// 		callback();
-							// 	}
+							this.onQuery(function(result, callback) {//鏌ヨ鍚庣殑鍥炶皟锛岀敤浜庤幏鍙栧瓧娈电殑
+								var treeData_ = []
+								var buobj_ = {};
+								var initTreeData = clone(me.initTreeData);
+								initTreeData.map(r=>{
+									r.disabled = true;
+									r.parent_id = "z1";
+								})
+								var data_p_ = {id: "z1", name: "缁煎悎鎶ヨ〃", disabled: true, children: []}
+								initTreeData.unshift(data_p_)
+								me.initTreeData = clone(initTreeData)
 								
-							// 	me.getTableMeta();
-							// });
-							this.tableDataAfter();
-							this.defaultexpandedkeys = [this.selectnodedata.id];
-							this.currentnodekey = this.selectnodedata.id;
-							var data = this.selectnodedata;
-							if (data.url) {
-								url_ = data.url;
-								this.report_url = window.top.config.url_page + url_;
-							}
-							else if (data.id) {// design
-								url_ = "root/report/showReport?token=" + Root.getToken() + "&type=design&id=" + data.id
-								this.report_url = window.top.config.url_root + url_;
-							}
-						},
-						
-						onAddNode(obj) {
-							var data = obj.data, node = obj.node;
-							this.addData()
-						},
-						
-						onEditNode(obj) {
-							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();
-							// 		}
-							// 	}
-							// });
-							
-							var data = obj.data, node = obj.node, el = obj.el;
-							var val = data.name;
-							var url_ = "";
-							if (data.url) {
-								url_ = data.url;
-								this.report_url = window.top.config.url_page + url_;
-							}
-							else if (data.id) {// design
-								url_ = "root/report/showReport?token=" + Root.getToken() + "&type=design&id=" + data.id
-								this.report_url = window.top.config.url_root + url_;
-							}
-							
-						},
-						
-						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: '宸插彇娑堝垹闄�'
-								});
+								let initTreeData_ = ArrayToTree(clone(me.initTreeData), "name", "parent_id", null, null, null, null);
+								me.treeData = initTreeData_;
+								
+								if (callback) {
+									callback();
+								}
+								if(me.treeData[0]) {
+									const leafNode = me.findLeafNode(me.treeData[0]);
+									let objInit = {
+										data: leafNode,
+										node: {},
+										el: {},
+									};
+									me.currentnodekey = leafNode.id;
+									me.onNodeClick(objInit);
+								}
 							});
 						},
 						
-						dodeldata(row, node, tablename) {
-							if (row.id) {
-								let param = {
-									
-									dataname: tablename,
-									id: row.id
+						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;
 								}
-								
-								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';
-							}
+							return null;
 						},
 						
 						onNodeClick(obj) {
+							console.log(obj);
 							var data = obj.data, node = obj.node, el = obj.el;
-							var val = data.name;
+							var filter_node_val = "";
+							this.selectedrow = data;
 							var url_ = "";
 							if (data.url) {
 								url_ = data.url;
@@ -246,110 +165,6 @@
 								url_ = "root/report/showReport?token=" + Root.getToken() + "&type=view&id=" + data.id
 								this.report_url = window.top.config.url_root + url_;
 							}
-							// 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();
-						// },
-						
-						
-						getTableMeta() {
-							var me = this;
-							var param_ = {
-								dataname: this.dataname_p,
-								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";
-										tableFields_.push(clone(f));
-									})
-									if (!me.tableFields_p || (me.tableFields_p && me.tableFields_p.length == 0)) {
-										me.tableFields_p = clone(tableFields_);
-									}
-								}
-								
-								me.tableDataAfter_p();
-							})
-						},
-						
-						tableDataAfter_p() {
-							var me = this;
-							if (this.tableFields_p.length > 0){
-								this.isRefresh_p = false;
-								this.$nextTick(function(){
-									this.isRefresh_p = true;
-									this.$nextTick(function(){
-										var el_list = [];
-										me.tableHeight_p = me.treeHeight;
-									})
-								})
-							}
-						},
-						
-						onQueryAfter() {
-							this.pagenum_p = 1;
-							this.tableData_p = [];
-							this.total_p = 0;
-						},
-						
-						getData_p(page) {
-							this.pagesize_p = page.pagesize;
-							this.pagenum_p = page.pagenum;
-							
-							this.getDataByNode();
-						},
-						
-						addData() {
-							let me = this;
-							var config = {
-								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
-								width: "98vw",
-								height: "600px",
-								icon: "icon-product",
-								text: "鎶ヨ〃璁捐",
-								id: "page_form_add",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
-								url: "module/report/page/report_add.html",
-								data: {},
-								delta: {},
-								sceneCode: "add",//"refuseedit",//"approval", //"add"//"browse",
-								closecallback: function(obj, callback) {
-									me.onQuery();
-									if (callback) {
-										callback();
-									}
-								},
-								callback: function(obj, callback) {
-									me.onQuery();
-									if (callback) {
-										callback();
-									}
-								}
-							};
-							me.doPopupByPublic(config);
 						},
 						
 					}
@@ -382,18 +197,10 @@
 			<div id="page_root">
 				<div class="topbar">
 					<span>{{title}}</span>
-					
-					<!-- 宸ュ叿鏍� -->
-					<div style="float: right; margin-right: 18px">
-						<el-button  @click="addData">鍒涘缓鑷畾涔夋姤琛�</el-button><!-- v-show="cbuttons_r.Add"  -->
-					</div>
 				</div>
 				
 				<div class="h_dialog__body">
-					<div :style="{position: 'absolute', left: '10px', width: '300px', height: treeHeight + 'px', 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="{position: 'absolute', left: '10px', width: '205px', height: treeHeight + 'px', border: '1px solid #ccc'}">
 						<div :style="{padding: '10px 0', height: treeHeight - 30 + 'px', overflow: 'auto'}">
 							<h-tree ref="tree"
 							v-if="isRefresh"
@@ -403,75 +210,17 @@
 							:edit-tree-button="editTreeButton"
 							:default-expanded-keys="defaultexpandedkeys"
 							:currentnodekey="currentnodekey"
-							:default-expand-all="false"
-							
 							
 							@node-click="onNodeClick"
-							@add-node="onAddNode"
-							@edit-node="onEditNode"
-							@del-node="onDelNode"
 							>
 							</h-tree>
-							
-							<!-- <el-tree ref="hierTree" class="filter-tree" node-key="id" :indent="24" 
-							 default-expand-all
-							 highlight-current 
-							 :data="treeData" 
-							 show-checkbox
-							 :expand-on-click-node="true" 
-							 @node-click="onNodeClick"
-							 >
-								<span class="custom-tree-node z_menu_tree" slot-scope="{ node, data, itm }"
-								 @mouseenter="node_isShow(data, true)"
-								 @mouseleave="node_isShow(data, false)"
-								>
-									<span>
-										<div class="nodeLabel nodeLabel_l" style="height: 32px; line-height: 32px;">
-										</div>
-										<div class="nodeLabel z_left_menu_tree_txt">
-											<i v-if="!node.isLeaf" :class="!node.expanded ? 'el-icon-plus':'el-icon-minus'" style="font-size: 10px; margin-right: 10px; border: 1px solid #a7a9a9; color: #a7a9a9;"></i>
-										</div>
-										<div class="nodeLabel z_left_menu_tree_txt">
-											<span>{{ data.name }}</span>
-											<el-badge :ref="'dadgeid_' + data.id" v-show="data.isBadge ? true : false" is-dot class="item">
-											</el-badge>
-										</div>
-									</span>
-									<span>
-										<div :ref="data.id" v-show="false" class="nodeLabel" style="width: 128px;max-width: 128px;">
-											<el-button v-if="!data.parent_id" type="text" 
-											@click.stop="addNode(data,node)" class="z_node_button" icon="el-icon-circle-plus-outline">
-											</el-button>
-											<el-button type="text" 
-											@click.stop="editNode(data,node)" class="z_node_button" icon="el-icon-edit">
-											</el-button>
-											<el-button v-if="!(data.children && data.children.length)" type="text" 
-											@click.stop="delNode(data,node)" class="z_node_button" icon="el-icon-delete">
-											</el-button>
-										</div>
-										
-										<div class="nodeLabel" style="margin-right: 30px;">
-											<span v-if="!node.isLeaf">{{data.children.length}}</span>
-										</div>
-									</span>
-								</span>
-							</el-tree> -->
 						</div>
 					</div>
-					<div :style="{position: 'absolute', left: '320px', right: '10px', height: treeHeight + 'px', border: '1px solid #ccc'}">
+					<div :style="{position: 'absolute', left: '220px', right: '10px', height: treeHeight + 'px', border: '1px solid #ccc'}">
 						<div>
-							<!-- <div style="height: 32px; border-bottom: 1px solid #aaa;">
-								<div class="table_title" style="float: left;">
-									<span>鎶ヨ〃棰勮</span>
-								</div>
-							</div> -->
 							<div  v-if="report_url" :style="{height: treeHeight + 'px'}" align="center">
-								<!-- <div v-if="report_url" class="tools-news" ref="msgtop" align="center"> -->
-									<iframe style="width: 100%; height: 100%;" frameborder="0" :src="report_url"></iframe>
-								<!-- </div> -->
+								<iframe style="width: 100%; height: 100%;" frameborder="0" :src="report_url"></iframe>
 							</div>
-							<div></div>
-							
 						</div>
 					</div>
 					
diff --git a/module/report/page/report_list_detail.html b/module/report/page/report_list_detail.html
index ca4ebfb..5ec3638 100644
--- a/module/report/page/report_list_detail.html
+++ b/module/report/page/report_list_detail.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;
@@ -16,8 +16,8 @@
 					el: "#vbody",
 					data: {
 						dataname: "sys_page_report", // "md_prod_category",
-						title: "鎶ヨ〃涓績",
-						tree_title: "鎶ヨ〃鑿滃崟",
+						title: "鏄庣粏鎶ヨ〃",
+						tree_title: "鏄庣粏鎶ヨ〃",
 						treeTxtFormatter: "{title}",
 						isTreeReadonly: true,
 						
diff --git a/module/report/page/salesPerformance.html b/module/report/page/salesPerformance.html
new file mode 100644
index 0000000..cfa9cc8
--- /dev/null
+++ b/module/report/page/salesPerformance.html
@@ -0,0 +1,492 @@
+<!DOCTYPE html>
+<html>
+	<head> 
+		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+		<title>鏈珵鍝佸垎鐪侀攢鍞〃鐜�</title>
+	</head>
+
+	<body>
+		<style type="text/css">
+			h5,ul,h1 {
+				margin: 0;
+				padding: 0;
+			}
+			li {
+				list-style: none;
+			}
+		</style>
+		<div v-cloak id="hbody" class="h_body" style="margin: 0;padding: 0;">
+			<div ref="ref_header" class="v_header">
+			</div>
+			<div ref="ref_main" class="v_main" style="padding: 0px 36px;">
+				<h1 style="font-weight: 600;color: #3A63A6;text-align: center;">鏈珵鍝佸垎鐪侀攢鍞〃鐜�</h1>
+				<div style="width: 100%;height: 100%;display: flex;justify-content: center;">
+					<div id = "competitor" style="width: 90%;height: 90%;"></div>
+				</div>
+			</div>
+		</div>
+		
+		<script type="text/javascript">
+			function loadJsCss(callback) {
+				var jscss_urls = [
+					{id: "js6", type: "js", url: "root/js/echarts.js"},
+				];
+				window.top.initJsCss(document, jscss_urls, callback);
+			}
+		
+			function initVue() {
+				new BasicsVue({
+					el: "#hbody",
+					data: {
+						cardtablist: [
+							// {id: "6-5-2-2-1", type: "cardtab", name: "鏂板鍗忎細鏅哄簱", icon:"", img: "../../img/page/associationLibraryList.png", enname:"", url: "../../page/flow_manage/addAssociationLibraryList.html", parentid: "1", opentype: "add"},
+							// {id: "2-1-2", type: "cardtab", name: "涓ぎ涓撳搴�", icon:"", img: "../../img/page/icon_open@2x.png", enname:"", url: "../../page/flow_manage/centralfileList.html", parentid: "2", opentype: "add"},
+						],
+						page_url: "",
+						rowkey: "id",
+						dataname: "",
+						module_title: "",
+						tableHeight: 500,
+						filterAttr: {
+							columnnumber: 4,
+							labelwidth: "100px",
+							labelposition: "left",//"left",//"right",
+							size: "medium",
+							borderleft: "0px solid #c6c6c600",
+							bordertop: "8px solid #c6c6c600",
+							borderright: "0px solid #c6c6c600",
+							borderbottom: "0px solid #c6c6c600",
+							border: "3px solid #c6c6c600"
+						},
+						formButton: {
+							query: true,
+							empty: true,
+							add: false,
+							import: false,
+							export: false
+						},
+						filterObj: {},
+						filterFieldsObj: {},
+						filterFields: [
+							{isshow: "T",fieldname: "province", field: "province", name: "鐪佷唤", type: "select"},
+							{isshow: "T", fieldname: "city",field: "city",name: "鍩庡競", type: "select"},
+							// {isshow: "T", field: "field1", name: "瀹㈡埛缂栧彿", type: "select"},
+							// {isshow: "T", field: "name", fieldname: "name", name: "瀹㈡埛鍚嶇О", fieldtype: "like", type: "select"},
+							// {isshow: "T", field: "creator_name", fieldname: "creator_name", name: "瀹㈡埛灞炴��", fieldtype: "like"},
+							// {isshow: "T", field: "createtime", name: "鏄惁鍚敤",fieldtype: "inScopeInclude"},
+						],
+						
+						//Tab椤�
+						activeName: "code1",
+						wrapStyle: "",
+						viewStyle: "",
+						
+						tabList: [
+							{code: "code1", name: "鍒楄〃"},
+						],
+						tabsObj: {
+							code1: true,
+						},
+						
+						isRefresh: true,
+						pagesize: 10,
+						pagenum: 0,
+						total: 0,
+						orderby:"createtime desc",
+					},
+					created() {
+						var me = this;
+						this.popupParames = clone(Root.popupParames);
+						
+					},
+				
+					mounted() {
+						var me = this;
+						// this.initData();
+						this.$nextTick(function() {
+							let w_ = this.$refs.ref_header.offsetWidth;
+							let h_ = this.$refs.ref_header.offsetHeight;
+							//let h_ = 0;
+							let clientHeight = document.documentElement.clientHeight;
+							var m_h = clientHeight - h_ - 10;
+							this.tableHeight = clientHeight - h_ - 252;
+							
+							this.wrapStyle = "overflow-y: auto; width: 100%; height: " + (m_h - 50) + "px";
+							this.viewStyle = "max-height: " + (m_h - 50) + "px";
+							this.$refs.ref_main.style.height = m_h + "px";
+							//this.$refs.ref_v_body.style.height = m_h + "px";
+						})
+						setTimeout(function(){
+							me.competitor();
+						},500);
+						
+					},
+					methods: {
+						competitor(){
+							var cpDom = document.getElementById('competitor');
+							var cpChart = echarts.init(cpDom);
+							
+							var cpOption = {
+							  tooltip: {
+							      trigger: 'axis',
+							      axisPointer: {
+							      // Use axis to trigger tooltip
+							      type: 'shadow' // 'shadow' as default; can also be 'line' or 'shadow'
+							      }
+							  },
+							  legend: {
+								  top:'20',
+							  },
+							  grid: {
+							      left: '3%',
+							      right: '4%',
+							      bottom: '3%',
+							      containLabel: true
+							  },
+							  xAxis: {
+							      type: 'value'
+							  },
+							  yAxis: {
+							      type: 'category',
+							      axisLabel:{
+							      interval:'0'
+							      },
+							      data: ['姹熻嫃', '骞夸笢', '娴欐睙', '灞变笢', '娌冲崡', '涓婃捣', '瀹夊窘', '婀栧崡', '鍥涘窛', '姹熻タ', '绂忓缓', '娌冲寳', '鍖椾含', '婀栧寳', '灞辫タ', '骞胯タ', '閲嶅簡', '闄曡タ', '澶╂触', '杈藉畞', '鏂扮枂', '鍚夋灄', '鐢樿們', '榛戦緳姹�', '浜戝崡', '鍐呰挋鍙�', '璐靛窞', '娴峰崡', '闈掓捣', '瀹佸'],
+							  },
+							  series: [
+							      {
+							      name: '澶╁',
+							      type: 'bar',
+							      stack: 'total',
+							      label: {
+							          show: true,
+							          formatter:function(params){
+							              return params.value+"%";
+							          }
+							      },
+							      emphasis: {
+							          focus: 'series'
+							      },
+							      data: [32, 30, 31, 33, 39, 35, 37,25,30,35,20,30,40,25,35,35,25,20,30,40,25,30,35,20,20,25,30,35,40,25]
+							      },
+							      {
+							      name: '鐧炬祹',
+							      type: 'bar',
+							      stack: 'total',
+							      label: {
+							          show: true,
+							          formatter:function(params){
+							              return params.value+"%";
+							          }
+							      },
+							      emphasis: {
+							          focus: 'series'
+							      },
+							      data: [19, 23, 20, 23, 19, 27, 21,20,25,15,20,25,20,25,20,15,20,15,20,25,20,25,15,20,15,20,25,20,15,20]
+							      },
+							      {
+							      name: '寰风惇',
+							      type: 'bar',
+							      stack: 'total',
+							      label: {
+							          show: true,
+							          formatter:function(params){
+							              return params.value+"%";
+							          }
+							      },
+							      emphasis: {
+							          focus: 'series'
+							      },
+							      data: [24, 26, 27, 30, 23, 19, 11,10,25,20,10,15,20,15,20,25,20,15,20,10,20,25,15,20,25,30,15,20,25,20]
+							      },
+							      {
+							      name: '鏉ㄦ.',
+							      type: 'bar',
+							      stack: 'total',
+							      label: {
+							          show: true,
+							          formatter:function(params){
+							              return params.value+"%";
+							          }
+							      },
+							      emphasis: {
+							          focus: 'series'
+							      },
+							      data: [25, 21, 22, 14, 19, 19, 31,45,20,30,50,30,20,35,25,25,35,50,30,25,35,20,35,40,40,25,30,25,20,35]
+							      },
+							  ]
+							};
+							cpChart.setOption(cpOption);
+						},
+						initData() {
+							var me = this;
+							let param_ = {
+								isClientMode: false,
+								dataname: this.dataname,
+								page: {
+									pageno: this.pagenum,
+									pagesize: this.pagesize
+								},
+							}
+							Server.call("root/data/getEntitySet", param_, function(result) {
+								me.total = 0;
+								me.tableData = [];
+								if (result && result.data) {
+									me.total = result.data.page.recordcount;
+									var data_ = result.data.entityset;
+									// console.log(data_)
+									me.tableData = data_;
+								}
+							});
+						},
+						showFilterPopup() {
+							
+						},
+						onInitFilter() {
+							this.filterObj = {}
+							this.onQuery();
+						},
+						onEditFilter() {
+							
+						},
+						getData(page) {
+							this.pagesize = page.pagesize;
+							this.pagenum = page.pagenum;
+							this.doQuery();
+						},
+						handleClick(tab) {
+							this.AnchorLinkTo(tab.name);
+						},
+						formSelectChange(obj) {
+							var me = this;
+							var fieldObj = obj.fieldobj;
+							var filterFieldsData = clone(me.filterFields);
+							
+							if (fieldObj.field == "province") {
+								var filterObj_ = clone(me.filterObj);
+								filterObj_.city = null;
+								me.filterObj = filterObj_;
+								let param_ = {
+									isClientMode: false,
+									dataname: "md_province",
+									filter: [
+										{field: "name", value:obj.data.province}
+									]
+								}
+								Server.call("root/data/getEntitySet", param_, function(result) {
+									if (result && result.data) {
+										let param_ = {
+											isClientMode: false,
+											dataname: "md_vip_area",
+											filter:[
+												{"field": "province_id", "value":result.data.entityset[0].id}
+											]
+										}
+										Server.call("root/data/getEntitySet", param_, function(result) {
+											if (result && result.data) {
+												var options_ = result.data.entityset;
+												for(var i=0; i<options_.length;i++) {
+													options_[i].label = options_[i].name;
+													options_[i].value = options_[i].name;
+													
+												}
+												filterFieldsData.map(e=>{
+													if(e.field == "city") {
+														e.options = options_;
+													}
+												})
+											}
+											me.filterFields = filterFieldsData;
+										});
+									}
+								});
+							}
+						},
+						
+						//鍔ㄦ�佸姞杞戒笅鎷夐」
+						cellVisibleChange(obj, row) {
+							let me = this;
+							var filterFieldsData = clone(me.filterFields);
+							if (obj.field == "province") {
+								var filterFieldsData = clone(me.filterFields);
+								let param_ = {
+									isClientMode: false,
+									dataname: "md_province",
+								}
+								Server.call("root/data/getEntitySet", param_, function(result) {
+									if (result && result.data) {
+										var options_ = result.data.entityset;
+										for(var i=0; i<options_.length;i++) {
+											options_[i].label = options_[i].name;
+											options_[i].value = options_[i].name;
+										}
+										filterFieldsData.map(e=>{
+											if(e.field == "province") {
+												e.options = options_;
+											}
+										})
+									}
+									me.filterFields = filterFieldsData;
+								});
+							}
+						},
+						
+						onFormButtonByCode(code) {
+							if (code == "add") {//娣诲姞
+								// let me = this;
+								// var config = {
+								// 	totab: true,
+								// 	title: "瀹㈡埛涓绘暟鎹柊澧�",
+								// 	url: "../home/masterDataAdd.html",
+								// 	data: {},
+								// 	delta: {},
+								// 	opentype: "add",
+								// 	sceneCode: "add",
+								// 	width: 780,
+								// 	height: 420,
+								// 	callback: function(obj, callback) {
+								// 		me.onQuery();
+								// 		if (callback) {
+								// 			callback();
+								// 		}
+								// 	}
+								// };
+								// Root.showPopup(config);
+								// this.tabCardClick(config);
+							}
+							else if (code == "import") {//瀵煎叆
+								
+							}
+							else if (code == "export") {//瀵煎嚭
+								
+							}
+						},
+						cellClick(obj) {//鍗曞厓鏍肩偣鍑�
+							var field = obj.column.property;
+							var row = obj.row;
+							var tableField = obj.tableField;
+							// if(tableField.field == "field2") {
+							// 	var to_page = {
+							// 		totab: true,
+							// 		title: "瀹㈡埛鏄庣粏(涓绘暟鎹�)",
+							// 		url: "../home/masterDataCustomerDetails.html",
+							// 		data: {},
+							// 		delta: {},
+							// 		opentype: "add",
+							// 		sceneCode: "add",
+							// 		width: 1100,
+							// 		height: 550,
+							// 		callback: function(obj, callback) {
+							// 			me.onQuery();
+							// 			if (callback) {
+							// 				callback();
+							// 			}
+							// 		}
+							// 	};
+							// 	Root.showPopup(to_page);
+							// }
+						},
+						queryData(row) {
+							let me = this;
+							
+							// var config = {
+							// 	width: 1000,
+							// 	height: 550,
+							// 	title: "鏌ョ湅鍗忎細鏅哄簱妗f",
+							// 	url: "../flow_manage/addAssociationLibraryList.html",
+							// 	totab: true,
+							// 	sceneCode: "query",
+							// 	opentype: "add",
+							// 	data: row,
+							// 	delta: {},
+							// 	callback: function(obj, callback) {
+							// 		if (callback) {
+							// 			callback();
+							// 		}
+							// 	}
+							// };
+							// // this.doPopup(config);
+							// this.tabCardClick(config);
+						},
+						cellButtonClick(obj) {
+							var type_ = obj.column.property;
+							var row = obj.row;
+							var field = "name";
+							var tips = "";
+							
+							if(type_ == "delete"){
+								this.delData(row,field,tips);
+							} else if (type_ == "update"){
+								this.editData(obj);
+							} else if (type_ == "query"){
+								this.queryData(row);
+							}
+						},
+						//淇敼鏁版嵁浜嬩欢
+						onEditData(config, scope) {
+							var me = this;
+							var row = scope.row;
+							// var config = {
+							// 	width: 1000,
+							// 	height: 550,
+							// 	title: "缂栬緫瀹㈡埛涓绘暟鎹�",
+							// 	url: "../home/masterDataAdd.html",
+							// 	totab: true,
+							// 	sceneCode: "edit",
+							// 	opentype: "add",
+							// 	data: row,
+							// 	delta: {},
+							// 	callback: function(obj, callback) {
+							// 		me.initData();
+							// 		if (callback) {
+							// 			callback();
+							// 		}
+							// 	}
+							// };
+							// this.doPopup(config);
+						},
+						
+						
+						
+						//婊氬姩浜嬩欢
+						myFunction(e) {
+							var isToBottom_ = this.isToBottom(e);
+							if (isToBottom_) {
+								this.org_footer = true;
+							}
+							else {
+								this.org_footer = false;
+							}
+						},
+						
+						isToBottom(e) {
+							var bo_ = false;
+							if(e.srcElement.scrollTop + e.srcElement.offsetHeight >= e.srcElement.scrollHeight){
+						銆�銆�銆�銆�//宸茬粡鍒版渶搴曢儴浜�
+								bo_ = true;
+						銆�銆�}
+							return bo_;
+						},
+						
+					}
+				});
+			}
+		
+			loadJsCss(function() {
+				initVue();
+			});
+		</script>
+		
+		
+		<style>
+			[v-cloak] {
+				display: none !important;
+			}
+			
+			.v_header .v_header_query{
+			    padding: 0px 36px;
+			    box-sizing: border-box;
+			}
+		</style>
+	</body>
+</html>
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..20d1f7a 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=2024080201" rel="stylesheet">
+	<link href="../../../css/control.css?v=2024080201" rel="stylesheet">
+	<link href="../../../css/page.css?v=2024080201" rel="stylesheet">
+	<link href="../../../css/icon/iconfont.css?v=2024080201" 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=2024080201" 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=2024080201"></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=2024080201"></script>
+	<script src="../../../js/foundation.js?v=2024080201"></script>
+	<script src="../../../js/control.js?v=2024080201"></script>
 	<script src="../../../js/loadJsCss.js"></script>
-	<script src="../../../js/myelement.js?v=2024071401"></script>
+	<script src="../../../js/myelement.js?v=2024080201"></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 " @show="top_popup_background = true" @hide="onContentClick">
 					  <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>
@@ -847,6 +847,8 @@
 					this.isshowmessage = false;
 					// 涓婚璁剧疆
 					this.isshowthemeconfig = false;
+					// 妗岄潰寮瑰嚭
+					this.showTopMenu = false;
 					
 					this.message_show = false;
 					this.div_message_show = false;
diff --git a/module/target/page/customer_target_list.html b/module/target/page/customer_target_list.html
index 9e7c53b..b4212f7 100644
--- a/module/target/page/customer_target_list.html
+++ b/module/target/page/customer_target_list.html
@@ -25,8 +25,8 @@
 							// // {code: "Closed", name: "澶辨晥", dataname:"so_implant", filterTxt: "state_code='Open'",},
 							// {code: "All", name: "鍏ㄩ儴", dataname: "md_target_dealer", filterTxt: "1 = 1", orderby: "update_time desc"},
 
-							{code: "Open", name: "鍟嗛噰鎸囨爣", dataname: "md_target_dealer", filterTxt: "(type_code='target_dealer_sc' or type_code='dealer')", orderby: "md_target_dealer.update_time desc"},
-							{code: "TargetSum", name: "妞嶅叆鎬绘寚鏍�", dataname: "md_target_dealer", filterTxt: "(type_code='target_dealer_zr' or type_code='implant')", orderby: "md_target_dealer.update_time desc"},
+							{code: "Open", name: "鎺ㄥ箍鍟嗘寚鏍�", dataname: "md_target_dealer", filterTxt: "(type_code='target_dealer_sc' or type_code='dealer')", orderby: "md_target_dealer.update_time desc"},
+							{code: "TargetSum", name: "鐪佸尯缁忕悊鎸囨爣", dataname: "md_target_dealer", filterTxt: "(type_code='target_dealer_zr' or type_code='implant')", orderby: "md_target_dealer.update_time desc"},
 							// {code: "Apply", name: "鎸囨爣鐢宠", dataname: "md_target_apply", filterTxt: "1 = 1", orderby: "update_time desc"},
 						],
 						tabs: [],
diff --git a/module/target/page/terminal_target_list.html b/module/target/page/terminal_target_list.html
index 2c0a148..5b8ecdb 100644
--- a/module/target/page/terminal_target_list.html
+++ b/module/target/page/terminal_target_list.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 @@
 				pageVue = new TabTableVue({
 					el: "#vbody",
 					data: {
-						title: "鐩爣鍖婚櫌",
+						title: "缁堢鎸囨爣",
 
 						//Tab椤硅缃�
 						tabs_d: [
@@ -26,7 +26,7 @@
 						],
 						tabs: [],
 						tabsobj: {},
-						
+						isShowTab: false,
 						filterFields: [],
 						tableFields: [],
 						tableData: [],
@@ -852,7 +852,7 @@
 						</el-button-group> -->
 					</div>
 				</div>
-				<div>
+				<div v-show="isShowTab">
 					<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>
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..8c6d440
--- /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_common_phrases",
+						title: "璇濇湳绠$悊",
+						orderby: "",
+						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..01e180e
--- /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_visition_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..a0ced22
--- /dev/null
+++ b/module/visit/page/visit_schedule_list.html
@@ -0,0 +1,1134 @@
+<!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: "md_terminal_promotion", filterTxt: "", orderby: ""},
+							{code: "warning", name: "棰勮鍒楄〃", dataname: "md_terminal_promotion_detail", filterTxt: "", 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);
+										}
+									})
+									
+									me.selectTabObj.tableData.map(d=>{
+										d.val_ratio = 50
+									})
+									
+									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_detail = {
+							
+								code: { //瀛楁浜嬩欢璁剧疆
+									val: { //鏈夊�兼椂鐨勭偣鍑讳簨浠�
+										notclick_val: "", //涓嶅彲鐐瑰嚮鐨勫��,1銆佹槸鏁扮粍["11","22"]锛�2銆佷互鈥�;鈥濆垎闅旂殑瀛楃涓�"111;222"
+										notclick_bindfield: [], //褰撹瀛楁鍊肩瓑浜庢寚瀹氬瓧娈靛�兼椂涓嶅彲鐐瑰嚮["filterfield": "111"]
+										onclick: function(obj) { //鏁版嵁鍊肩偣鍑讳簨浠�
+											me.showInfo(obj)
+										},
+									},
+								},
+								is_clinical: {
+									chart: {
+										type: "progress",// 杩涘害鏉$被鍨�
+										field: "val_ratio",//杩涘害鍊煎瓧娈�
+										progresswidth: 20,//绮楀害
+										isshowtext: true,//鏄惁鏄剧ず鍊�
+										istextinside: true//鏄惁鍦ㄨ繘搴︽潯鍐呮樉绀哄��
+									}
+								},
+								is_clinical_purchase: {
+									chart: {
+										type: "progress",
+										field: "val_ratio",
+										progresswidth: 10,
+										isshowtext: true
+									}
+								},
+								is_formal_purchase: {
+									chart: {
+										type: "progress",
+										field: "val_ratio",
+										progresswidth: 10,
+										isshowtext: false
+									}
+								},
+							};
+							//鍖婚櫌鎺堟潈鍒楄〃
+							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.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