From f9d42f7a3929dacb96446e873ab992f9560ac9c9 Mon Sep 17 00:00:00 2001
From: zhangyanpeng <bob.zhang@highdatas.com>
Date: 星期二, 20 八月 2024 12:21:05 +0800
Subject: [PATCH] 调整

---
 module/flow/page/cleanHome.html                   |  528 +++++++++++
 css/myelement.css                                 |    9 
 js/myelement.js                                   |    2 
 module/fee/page/popup/popup_edit_fee_execute.html |  951 ++++++++++++++++++++
 module/fee/page/popup/popup_edit_fee_qty.html     |  951 ++++++++++++++++++++
 module/system/page/main.html                      |   20 
 js/config.js                                      |    2 
 module/fee/page/fee_execute.html                  |  334 +++++++
 8 files changed, 2,785 insertions(+), 12 deletions(-)

diff --git a/css/myelement.css b/css/myelement.css
index ecf9620..52fc6ca 100644
--- a/css/myelement.css
+++ b/css/myelement.css
@@ -390,7 +390,16 @@
 .h_table .el-input--mini .el-input__inner {
     height: 24px;
     line-height: 24px;
+	text-align: right;
+	padding-left: 5px;
+	padding-right: 5px;
 }
+
+.h_table .el-input-number .el-input-number__decrease, 
+.h_table .el-input-number .el-input-number__increase {
+	display: none;
+}
+
 .h_table .el-input--mini .el-input__icon {
 	line-height: 26px;
 }
diff --git a/js/config.js b/js/config.js
index e72d157..3fdb7e8 100644
--- a/js/config.js
+++ b/js/config.js
@@ -14,7 +14,7 @@
 
 
 config = {
-	jscssversion: "2024080201", //.js/.css鏂囦欢鐨勭増鏈彿锛屽幓闄ゅ墠绔紦瀛樼殑涓�绉嶆満鍒�
+	jscssversion: "2024081901", //.js/.css鏂囦欢鐨勭増鏈彿锛屽幓闄ゅ墠绔紦瀛樼殑涓�绉嶆満鍒�
 	isupgrading: false, //鏄惁鍗囩骇涓�
 	appName: "TPP",
 	title: "钀ラ攢涓�浣撳寲杩愯惀骞冲彴",
diff --git a/js/myelement.js b/js/myelement.js
index 9c453ab..02cf998 100644
--- a/js/myelement.js
+++ b/js/myelement.js
@@ -1985,7 +1985,7 @@
 			// 鏁版嵁鍔犺浇鏃剁殑杞湀鍦�
 			'<div v-loading="istableloading" v-if="istableloading" class="h_table_loading"></div> '+
 			// 琛ㄦ牸宸ュ叿鏍� - 鏍囬銆佸姛鑳界粍銆佸閫�
-			'<div v-if="isshowtool && ((tableAttr.istitle && tableAttr.title) || (istablebuttons && tablebuttons.length) || ((isbasicfilterfields && (tableAttr.toolbarobj && tableAttr.toolbarobj.isbasicfilterfields) && tableBasicFilterFields.length) || (isfilterfield && (tableAttr.toolbarobj && tableAttr.toolbarobj.isfilterfield))) || (tableAttr.tag && tableAttr.tag.name)) || ((tableAttr.toolbarobj && ((isbasicfilterfields && tableAttr.toolbarobj.isbasicfilterfields) || (tableAttr.toolbarobj.more_datalist && tableAttr.toolbarobj.more_datalist.length))) || (isshowShoppingcart && (tableAttr.isSelection || isSelection)) || (tableToolButtons && tableToolButtons.length))"  class="h_h_table" :ref="\'h_tabletool\' + href"> '+
+			'<div v-if="isshowtool && ((tableAttr.istitle && tableAttr.title) || (istablebuttons && tablebuttons.length) || ((isbasicfilterfields && (tableAttr.toolbarobj && tableAttr.toolbarobj.isbasicfilterfields) && tableBasicFilterFields.length) || (isfilterfield && (tableAttr.toolbarobj && tableAttr.toolbarobj.isfilterfield))) || (tableAttr.tag && tableAttr.tag.name)) || ((tableAttr.toolbarobj &&  (tableAttr.toolbarobj.more_datalist && tableAttr.toolbarobj.more_datalist.length)) || (isshowShoppingcart && (tableAttr.isSelection || isSelection)) || (tableToolButtons && tableToolButtons.length))"  class="h_h_table aaa" :ref="\'h_tabletool\' + href"> '+
 				// 琛ㄦ牸鏈韩鍔熻兘锛堟爣棰樸�佸瓧娈甸『搴忋�佽〃鍒锋柊銆佽〃鏍囩锛�
 				'<div v-if="(tableAttr.istitle && tableAttr.title) || (istablebuttons && tablebuttons.length) || ((isbasicfilterfields && (tableAttr.toolbarobj && tableAttr.toolbarobj.isbasicfilterfields) && tableBasicFilterFields.length) || (isfilterfield && (tableAttr.toolbarobj && tableAttr.toolbarobj.isfilterfield))) || (tableAttr.tag && tableAttr.tag.name)" class="h_table_tool_left">'+
 					// 鏍囬
diff --git a/module/fee/page/fee_execute.html b/module/fee/page/fee_execute.html
new file mode 100644
index 0000000..aa2d175
--- /dev/null
+++ b/module/fee/page/fee_execute.html
@@ -0,0 +1,334 @@
+<!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: "fee_guide_settle_execute",
+						title: "鎵ц鍗�",
+						orderby: "",
+						filterfieldClick: {},
+						tablefieldClick: {},
+						formfieldClick: {},
+
+						dataRequest: [],
+						dataRequestObj:{},
+
+						filterFields: [],
+						tableFields: [],
+						cbuttons_r: {},
+						ctabs_r: {},
+						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;
+								//棰勫姞杞芥暟鎹�
+								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 (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: {//瀛楁浜嬩欢璁剧疆
+									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);
+										},
+									},	
+								},
+							};
+						},
+						
+						rowClick(obj) {
+							var me = this;
+							me.selectedrow = obj.row;
+						},
+						
+						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: "popup_edit_fee_qty" + sceneCode + row.id,//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/fee/page/popup/popup_edit_fee_qty.html",
+								data: row,
+								delta: {},
+								sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(obj, callback) {
+									me.onQuery();
+									if (callback) {
+										callback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+						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); // 绉婚櫎鍒涘缓鐨勫厓绱�
+						},
+						
+					}
+				});
+			};
+			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 :disabled="!(selectedrow.id)" @click="editData('edit') " :icon="buttonsconfig.alter.icon":icon="buttonsconfig.alter.icon">{{buttonsconfig.alter.name}}</el-button>
+						</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>
+					</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="false"
+						v-on:get-data="getData"
+						
+						v-on:cell-click="cellClick"
+						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>
+		
+		<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/fee/page/popup/popup_edit_fee_execute.html b/module/fee/page/popup/popup_edit_fee_execute.html
new file mode 100644
index 0000000..029b720
--- /dev/null
+++ b/module/fee/page/popup/popup_edit_fee_execute.html
@@ -0,0 +1,951 @@
+<!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: "fee_guide_settle_execute",
+						table_dataname: "fee_working_out_base_execute",
+						title: "鎵ц鍗曚俊鎭�",
+						dataRequest: [
+							{
+								name: "fee_working_out_base_execute", // 涓氬姟璐熻矗浜哄瓧娈�
+								dataname: "fee_working_out_base_execute",
+								url: "root/data/getEntitySet",
+								paramsobj: {dataname: "fee_working_out_base_execute", attachMeta: true, filter: "1<>1"},
+								isnotoption: true, //true:涓嶆槸閫夐」
+							}
+						],
+						meta_fee_working_out_base_execute: [],
+						
+						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: 3,
+							labelwidth: "100px",
+							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: {},
+						
+						isRefresh: true,
+						tableFields: [],
+						tableData: [],
+						//瀛楁璁剧疆
+						tablefieldClick: {},
+						pagesize: 10,
+						pagenum: 1,
+						total: 0,
+						tableHeight: 200,
+						tableloading: false,
+						
+						
+						//鎸夐敭鏉冮檺璁剧疆
+						isedit: false,//鎻愪氦鍓嶇紪杈戯紝淇濆瓨/鎻愪氦
+						isrefuseedit: false,//鎷掔粷鍚庣紪杈戯紝淇濆瓨/鍐嶆鎻愪氦
+						isapproval: false,//瀹℃壒锛屽悓鎰�/鎷掔粷/杞姙/閫�鍥�
+						
+						iscommit: false,//鎻愪氦鏍囪
+						
+						//寮圭獥鍙傛暟
+						popupParames: {},
+						
+						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) {
+							if (this.popupParames.data._datano) {
+								this.title = this.title + this.popupParames.data._datano;
+							}
+							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 == "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;
+								
+								if (this.formData.current_step_name && this.formData.current_step_name == "杩愯惀閮ㄩ棬澶嶆牳") {
+									this.isedit = 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_;
+									}
+								}
+								// 鑾峰彇鍙樻洿鐨勫瓧娈�
+								if (me.dataRequestObj.fee_working_out_base_execute) {
+								    let meta_ = me.dataRequestObj.fee_working_out_base_execute.meta.fee_working_out_base_execute.fields;
+									meta_.map(f=>{
+										f.isshow = "T";
+										if (f.field == "_qty_trans" || f.field == "_qty_cal" || f.field == "_qty_final" || f.field == "_amt_final") {
+											f.isfixed = "right";
+										}
+									})
+									me.meta_fee_working_out_base_execute = clone(meta_)
+								}
+								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";
+										if (f.field == "company_id") {
+											// f.isshow = "F";
+											f.options = me.options_md_org_master
+										}
+										
+										if (f.field == "product_id") {
+											f.props = {label: "value", value: "code", multiple: false};
+											if (me.options_product.length) {
+												f.options = clone(me.options_product);
+											}
+											else if (me.formData.bu_id && me.md_bu_product_obj[me.formData.bu_id]) {
+												f.options = clone(me.md_bu_product_obj[me.formData.bu_id].children);
+											}
+											else {
+												f.options = [];
+											}
+										}
+										
+										// if (f.field == "customer_name" && (me.popupParames.sceneCode == "addbyagreement" || me.popupParames.sceneCode == "editbyagreement")) {
+										// 	f.disabled = true;
+										// }
+										// if ((f.field == "date_from" || f.field == "date_to") && (me.popupParames.sceneCode == "addbyagreement" || me.popupParames.sceneCode == "editbyagreement")) {
+										// 	f.isshow = false;
+										// }
+										
+										formFields_.push(clone(f));
+									})
+									if (!me.formFields || (me.formFields && me.formFields.length == 0)) {
+										me.formFields = clone(formFields_);
+										me.tableFields = clone(me.meta_fee_working_out_base_execute);
+										
+										//璁剧疆瀛楁浜嬩欢
+										me.tableFieldClick();
+									}
+									
+									if (me.formData.company_id) {
+										var formFields_ = clone(me.formFields);
+										formFields_.map(f=>{
+											if (f.field == "bu_id") {
+												if (me.md_bu_org_obj[me.formData.company_id] && me.md_bu_org_obj[me.formData.company_id].length) {
+													f.options = clone(me.md_bu_org_obj[me.formData.company_id])
+												}	
+											}
+										})
+										me.formFields = clone(formFields_);
+									}
+									
+									if (me.formData.product_id) {
+										var select_p_ = [me.formData.product_id];
+										me.formData.product_id = clone(select_p_);
+										
+										var formFields_ = clone(me.formFields);
+										formFields_.map(f=>{
+											if (f.field == "spec") {
+												if (me.formData.product_id) {
+													f.options = clone(me.md_prod_sku_obj[me.formData.product_id[0]]);
+												}
+												else {
+													f.options = [];	
+												}
+											}
+										})
+										me.formFields = clone(formFields_);
+									}
+									me.onTableQuery();
+								}
+							})
+						},
+						
+						tableFieldClick() {
+							var me = this;
+							//琛ㄥ崟瀛楁浜嬩欢璁剧疆
+							this.formfieldClick = {
+								type_code: {
+									select: {
+									    onchange: function(obj,refreshCallback) {//涓嬫媺灞曞紑浜嬩欢
+									        obj.data.type_name = obj.selectoption.value || "";
+											var formFields_ = clone(me.formFields);
+											formFields_.map(f=>{
+												if (f.field == "account_name") { // f.field == "company_id" || f.field == "bu_id" ||
+													if (obj.data.type_code == "Onsite") { // 浼樻儬浠锋牸
+														f.required = false
+													}
+													else {
+														f.required = true
+													}
+												}
+											})
+											me.formFields = clone(formFields_);
+									    },
+									},
+								},
+								_qty_trans: {
+									val: {
+										onchange: function(obj) {
+											var formData_ = clone(me.formData);
+											formData_._qty_trans = formData_._qty_trans * 1;
+											if (formData_._qty_cal) {
+												formData_._qty_final = (formData_._qty_cal * 1) - (formData_._qty_trans * 1)
+												formData_._amt_final = formData_._qty_final  * formData_._taxunitprice
+											}
+											me.formData = clone(formData_);
+										}
+                                    },
+                                    input: {
+										onchange: function(obj) {
+											var formData_ = clone(me.formData);
+											formData_._qty_trans = formData_._qty_trans * 1;
+											if (formData_._qty_cal) {
+												formData_._qty_final = (formData_._qty_cal * 1) - (formData_._qty_trans * 1)
+												formData_._amt_final = formData_._qty_final  * formData_._taxunitprice
+											}
+											me.formData = clone(formData_);
+										}
+                                    }
+                                },
+								
+							};
+							
+							this.tablefieldClick = {
+								_qty_trans: {
+								    input: {
+										onchange: function(obj) {
+											obj.row._qty_trans = obj.row._qty_trans * 1;
+											if (obj.row._qty_cal) {
+												obj.row._qty_final = (obj.row._qty_cal * 1) - (obj.row._qty_trans * 1)
+												obj.row._amt_final = obj.row._qty_final  * obj.row._taxunitprice
+											}
+											
+											me.saveTableRow(obj.row);
+										}
+								    }
+								},
+							}
+						},
+						
+						saveTableRow(row) {
+							var me = this;
+							var entity_ = clone(row);
+							var entity = {
+								_qty_trans: entity_._qty_trans,
+								_qty_final: entity_._qty_final,
+								_amt_final: entity_._amt_final,
+								id: entity_.id
+							};
+							
+							let param = {
+								dataname: me.table_dataname,
+								data: {},
+							}
+							if (entity.id) {
+								param.id = entity.id
+							}
+							param.data[me.table_dataname] = entity;
+							Server.call("root/data/saveEntity", param, function(result) {
+								
+							}, function(errorresult) {
+								console.log("閿欒淇℃伅", errorresult);
+								if (errorresult.messages && errorresult.messages.count && errorresult.messages.count.error) {
+									if (errorresult.messages.list) {
+										var config = {
+											totab: false,
+											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 + "銆�" + r.errors[0].record_no +  r.errors[0].record_name?r.errors[0].record_name: '' + "銆�"
+										}
+										messages_list.push(messages_)
+									})
+									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 {
+									Root.message({
+										type: 'error',
+										message: '璋冩暣澶辫触'
+									});
+								}
+							});
+						},
+						
+						openAccount(sceneCode, obj, callback) {
+							var me = this;
+							var data_ = {};
+							var config = {
+								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "800px",
+								height: "520px",
+								icon: "icon-product",
+								text: "缁忛攢鍟嗛�夋嫨",
+								id: "popup_account",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/popup/page/popup_account.html",
+								data: data_,
+								delta: {},
+								// filter: "org_id='"+ me.selectedrow.org_id + "' and bu_id='" + me.selectedrow.bu_id + "'",
+								filter: "md_org_account.state_code='Open'",
+								sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(popupobj, popupcallback) {
+									callback(popupobj);
+									if (popupcallback) {
+										popupcallback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						openOrg(sceneCode, obj, callback) {
+							var me = this;
+							var config = {
+								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "800px",
+								height: "520px",
+								icon: "icon-product",
+								text: "閫夋嫨閰嶉�佸晢",
+								id: "popup_customer",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/popup/page/popup_customer.html",
+								data: {},
+								delta: "",
+								// filter: "category_code='"+ me.positiondata.org_id + "' and bu_id='" + me.positiondata.bu_id + "'",
+								filter: "is_distributor='T'",
+								sceneCode: "add",//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(popupobj, popupcallback) {
+									callback(popupobj);
+									if (popupcallback) {
+										popupcallback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						openHospital(sceneCode, obj, callback) {
+							var me = this;
+							var data_ = {};
+							var config = {
+								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "800px",
+								height: "520px",
+								icon: "icon-product",
+								text: "鍖婚櫌閫夋嫨",
+								id: "popup_hospital",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/popup/page/popup_hospital.html",
+								data: data_,
+								delta: {},
+								// filter: "org_id='"+ me.selectedrow.org_id + "' and bu_id='" + me.selectedrow.bu_id + "'",
+								filter: "",
+								sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(popupobj, popupcallback) {
+									callback(popupobj);
+									if (popupcallback) {
+										popupcallback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+						open_productlist(obj) {
+							var me = this;
+							Root.showPopup({
+								url: "../md/product/popup/sku_list.html",
+								width: 800,
+								height: 550,
+								callback: function(obj, callback) {
+									let formData_ = clone(me.formData);
+									
+									formData_.product_id = obj.row.id;
+									formData_.product_code = obj.row.md_code;
+									formData_.product_name = obj.row.md_description;
+									//formData_.spec = obj.row.pack_specification;
+									
+									me.formData = formData_;
+									if (callback) {
+										callback();
+									}
+								}
+							});
+						},
+						
+						getData: function(page) {
+							this.pagesize = page.pagesize;
+							this.pagenum = page.pagenum;
+							// if (page.filtersobj) {
+							// 	this.filterObj = page.filtersobj;
+							// }
+							// this.selectedrow = {};
+							this.onTableQuery();
+						},
+						onTableQuery() {
+							var me = this
+							let filter_ = "task_id='" + this.formData.id + "'";
+							
+							let param_ = {
+								dataname: this.table_dataname,
+								filter: filter_,
+								orderby: "_dataNo",
+								page: {
+									pageno: this.pagenum,
+									pagesize: this.pagesize
+								},
+								attachMeta: false
+							}
+							
+							me.tableData = [];
+							me.tableloading = true;
+							Server.call("root/data/getEntitySet", param_, function(result) {
+								me.tableloading = false;
+								if (result && result.data && result.data.entityset) {
+									var data_ = result.data.entityset;
+									me.tableData = data_;
+									me.total = result.data.page ? result.data.page.recordcount : 0;
+								}
+								else {
+									me.total = 0;
+								}
+							}, function(){
+								me.tableloading = false;
+							});
+						},
+						
+						//鎻愪氦
+						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(callback) {
+							var me = this;
+							var operator_ = "saveEntity";//淇濆瓨
+							// if(me.iscommit) {
+							// 	operator_ = "commit";//鎻愪氦
+							// }
+							
+							var entity_ = clone(this.formData);
+							var entity = {
+								_qty_trans: entity_._qty_trans,
+								_qty_final: entity_._qty_final,
+								_amt_final: entity_._amt_final,
+								id: entity_.id
+							};
+							
+							let param = {
+								dataname: me.dataname,
+								data: {},
+							}
+							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 (callback) {
+										callback()
+									}
+									else {
+										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) {
+									if (errorresult.messages.list) {
+										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: 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 + "銆�" + r.errors[0].record_no +  r.errors[0].record_name?r.errors[0].record_name: '' + "銆�"
+										}
+										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 {
+									me.iscommit = false;
+									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;
+							// if (this.isedit) {
+							// 	this.saveRowTable(function() {
+							// 		me.doRunApproval();
+							// 	});
+							// }
+							// else {
+								me.doRunApproval();
+							// }
+							
+						},
+						
+						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() {
+							var me = this;
+							
+							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 class="h_BU">
+							<div style="padding: 0px;">
+								<h-table
+									v-if="isRefresh"
+									ref="table1"
+									:table-fields="tableFields" 
+									:table-data="tableData" 
+									:is-within-edit-table-data="isedit"
+									:table-field-click="tablefieldClick"
+									:pagesize="pagesize"
+									:pagenum="pagenum"
+									:total="total"
+									:table-height="dheight - 252 - 64"
+									:is-highlight-row="true"
+									:isdraggableorder="false"
+									:isshowtool="false"
+									:isshow-shoppingcart="false"
+									
+									v-on:get-data="getData"
+								>
+								</h-table>
+								<!-- 
+								 :is-edit-table-data="isWithinEditTableData"
+								 -->
+							</div>
+						</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>
+						<!-- <el-button size="small" v-if="isapproval" type="primary" @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/fee/page/popup/popup_edit_fee_qty.html b/module/fee/page/popup/popup_edit_fee_qty.html
new file mode 100644
index 0000000..fdfa1c8
--- /dev/null
+++ b/module/fee/page/popup/popup_edit_fee_qty.html
@@ -0,0 +1,951 @@
+<!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: "fee_guide_settle_qty",
+						table_dataname: "fee_working_out_base_qty",
+						title: "鏁伴噺鍗曚俊鎭�",
+						dataRequest: [
+							{
+								name: "fee_working_out_base_qty", // 涓氬姟璐熻矗浜哄瓧娈�
+								dataname: "fee_working_out_base_qty",
+								url: "root/data/getEntitySet",
+								paramsobj: {dataname: "fee_working_out_base_qty", attachMeta: true, filter: "1<>1"},
+								isnotoption: true, //true:涓嶆槸閫夐」
+							}
+						],
+						meta_fee_working_out_base_qty: [],
+						
+						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: 3,
+							labelwidth: "100px",
+							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: {},
+						
+						isRefresh: true,
+						tableFields: [],
+						tableData: [],
+						//瀛楁璁剧疆
+						tablefieldClick: {},
+						pagesize: 10,
+						pagenum: 1,
+						total: 0,
+						tableHeight: 200,
+						tableloading: false,
+						
+						
+						//鎸夐敭鏉冮檺璁剧疆
+						isedit: false,//鎻愪氦鍓嶇紪杈戯紝淇濆瓨/鎻愪氦
+						isrefuseedit: false,//鎷掔粷鍚庣紪杈戯紝淇濆瓨/鍐嶆鎻愪氦
+						isapproval: false,//瀹℃壒锛屽悓鎰�/鎷掔粷/杞姙/閫�鍥�
+						
+						iscommit: false,//鎻愪氦鏍囪
+						
+						//寮圭獥鍙傛暟
+						popupParames: {},
+						
+						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) {
+							if (this.popupParames.data._datano) {
+								this.title = this.title + this.popupParames.data._datano;
+							}
+							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 == "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;
+								
+								if (this.formData.current_step_name && this.formData.current_step_name == "杩愯惀閮ㄩ棬澶嶆牳") {
+									this.isedit = 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_;
+									}
+								}
+								// 鑾峰彇鍙樻洿鐨勫瓧娈�
+								if (me.dataRequestObj.fee_working_out_base_qty) {
+								    let meta_ = me.dataRequestObj.fee_working_out_base_qty.meta.fee_working_out_base_qty.fields;
+									meta_.map(f=>{
+										f.isshow = "T";
+										if (f.field == "_qty_trans" || f.field == "_qty_cal" || f.field == "_qty_final" || f.field == "_amt_final") {
+											f.isfixed = "right";
+										}
+									})
+									me.meta_fee_working_out_base_qty = clone(meta_)
+								}
+								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";
+										if (f.field == "company_id") {
+											// f.isshow = "F";
+											f.options = me.options_md_org_master
+										}
+										
+										if (f.field == "product_id") {
+											f.props = {label: "value", value: "code", multiple: false};
+											if (me.options_product.length) {
+												f.options = clone(me.options_product);
+											}
+											else if (me.formData.bu_id && me.md_bu_product_obj[me.formData.bu_id]) {
+												f.options = clone(me.md_bu_product_obj[me.formData.bu_id].children);
+											}
+											else {
+												f.options = [];
+											}
+										}
+										
+										// if (f.field == "customer_name" && (me.popupParames.sceneCode == "addbyagreement" || me.popupParames.sceneCode == "editbyagreement")) {
+										// 	f.disabled = true;
+										// }
+										// if ((f.field == "date_from" || f.field == "date_to") && (me.popupParames.sceneCode == "addbyagreement" || me.popupParames.sceneCode == "editbyagreement")) {
+										// 	f.isshow = false;
+										// }
+										
+										formFields_.push(clone(f));
+									})
+									if (!me.formFields || (me.formFields && me.formFields.length == 0)) {
+										me.formFields = clone(formFields_);
+										me.tableFields = clone(me.meta_fee_working_out_base_qty);
+										
+										//璁剧疆瀛楁浜嬩欢
+										me.tableFieldClick();
+									}
+									
+									if (me.formData.company_id) {
+										var formFields_ = clone(me.formFields);
+										formFields_.map(f=>{
+											if (f.field == "bu_id") {
+												if (me.md_bu_org_obj[me.formData.company_id] && me.md_bu_org_obj[me.formData.company_id].length) {
+													f.options = clone(me.md_bu_org_obj[me.formData.company_id])
+												}	
+											}
+										})
+										me.formFields = clone(formFields_);
+									}
+									
+									if (me.formData.product_id) {
+										var select_p_ = [me.formData.product_id];
+										me.formData.product_id = clone(select_p_);
+										
+										var formFields_ = clone(me.formFields);
+										formFields_.map(f=>{
+											if (f.field == "spec") {
+												if (me.formData.product_id) {
+													f.options = clone(me.md_prod_sku_obj[me.formData.product_id[0]]);
+												}
+												else {
+													f.options = [];	
+												}
+											}
+										})
+										me.formFields = clone(formFields_);
+									}
+									me.onTableQuery();
+								}
+							})
+						},
+						
+						tableFieldClick() {
+							var me = this;
+							//琛ㄥ崟瀛楁浜嬩欢璁剧疆
+							this.formfieldClick = {
+								type_code: {
+									select: {
+									    onchange: function(obj,refreshCallback) {//涓嬫媺灞曞紑浜嬩欢
+									        obj.data.type_name = obj.selectoption.value || "";
+											var formFields_ = clone(me.formFields);
+											formFields_.map(f=>{
+												if (f.field == "account_name") { // f.field == "company_id" || f.field == "bu_id" ||
+													if (obj.data.type_code == "Onsite") { // 浼樻儬浠锋牸
+														f.required = false
+													}
+													else {
+														f.required = true
+													}
+												}
+											})
+											me.formFields = clone(formFields_);
+									    },
+									},
+								},
+								_qty_trans: {
+									val: {
+										onchange: function(obj) {
+											var formData_ = clone(me.formData);
+											formData_._qty_trans = formData_._qty_trans * 1;
+											if (formData_._qty_cal) {
+												formData_._qty_final = (formData_._qty_cal * 1) - (formData_._qty_trans * 1)
+												formData_._amt_final = formData_._qty_final  * formData_._taxunitprice
+											}
+											me.formData = clone(formData_);
+										}
+                                    },
+                                    input: {
+										onchange: function(obj) {
+											var formData_ = clone(me.formData);
+											formData_._qty_trans = formData_._qty_trans * 1;
+											if (formData_._qty_cal) {
+												formData_._qty_final = (formData_._qty_cal * 1) - (formData_._qty_trans * 1)
+												formData_._amt_final = formData_._qty_final  * formData_._taxunitprice
+											}
+											me.formData = clone(formData_);
+										}
+                                    }
+                                },
+								
+							};
+							
+							this.tablefieldClick = {
+								_qty_trans: {
+								    input: {
+										onchange: function(obj) {
+											obj.row._qty_trans = obj.row._qty_trans * 1;
+											if (obj.row._qty_cal) {
+												obj.row._qty_final = (obj.row._qty_cal * 1) - (obj.row._qty_trans * 1)
+												obj.row._amt_final = obj.row._qty_final  * obj.row._taxunitprice
+											}
+											
+											me.saveTableRow(obj.row);
+										}
+								    }
+								},
+							}
+						},
+						
+						saveTableRow(row) {
+							var me = this;
+							var entity_ = clone(row);
+							var entity = {
+								_qty_trans: entity_._qty_trans,
+								_qty_final: entity_._qty_final,
+								_amt_final: entity_._amt_final,
+								id: entity_.id
+							};
+							
+							let param = {
+								dataname: me.table_dataname,
+								data: {},
+							}
+							if (entity.id) {
+								param.id = entity.id
+							}
+							param.data[me.table_dataname] = entity;
+							Server.call("root/data/saveEntity", param, function(result) {
+								
+							}, function(errorresult) {
+								console.log("閿欒淇℃伅", errorresult);
+								if (errorresult.messages && errorresult.messages.count && errorresult.messages.count.error) {
+									if (errorresult.messages.list) {
+										var config = {
+											totab: false,
+											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 + "銆�" + r.errors[0].record_no +  r.errors[0].record_name?r.errors[0].record_name: '' + "銆�"
+										}
+										messages_list.push(messages_)
+									})
+									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 {
+									Root.message({
+										type: 'error',
+										message: '璋冩暣澶辫触'
+									});
+								}
+							});
+						},
+						
+						openAccount(sceneCode, obj, callback) {
+							var me = this;
+							var data_ = {};
+							var config = {
+								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "800px",
+								height: "520px",
+								icon: "icon-product",
+								text: "缁忛攢鍟嗛�夋嫨",
+								id: "popup_account",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/popup/page/popup_account.html",
+								data: data_,
+								delta: {},
+								// filter: "org_id='"+ me.selectedrow.org_id + "' and bu_id='" + me.selectedrow.bu_id + "'",
+								filter: "md_org_account.state_code='Open'",
+								sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(popupobj, popupcallback) {
+									callback(popupobj);
+									if (popupcallback) {
+										popupcallback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						openOrg(sceneCode, obj, callback) {
+							var me = this;
+							var config = {
+								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "800px",
+								height: "520px",
+								icon: "icon-product",
+								text: "閫夋嫨閰嶉�佸晢",
+								id: "popup_customer",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/popup/page/popup_customer.html",
+								data: {},
+								delta: "",
+								// filter: "category_code='"+ me.positiondata.org_id + "' and bu_id='" + me.positiondata.bu_id + "'",
+								filter: "is_distributor='T'",
+								sceneCode: "add",//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(popupobj, popupcallback) {
+									callback(popupobj);
+									if (popupcallback) {
+										popupcallback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						openHospital(sceneCode, obj, callback) {
+							var me = this;
+							var data_ = {};
+							var config = {
+								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "800px",
+								height: "520px",
+								icon: "icon-product",
+								text: "鍖婚櫌閫夋嫨",
+								id: "popup_hospital",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								url: "module/md/page/popup/page/popup_hospital.html",
+								data: data_,
+								delta: {},
+								// filter: "org_id='"+ me.selectedrow.org_id + "' and bu_id='" + me.selectedrow.bu_id + "'",
+								filter: "",
+								sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse",
+								callback: function(popupobj, popupcallback) {
+									callback(popupobj);
+									if (popupcallback) {
+										popupcallback();
+									}
+								}
+							};
+							me.doPopupByPublic(config);
+						},
+						
+						open_productlist(obj) {
+							var me = this;
+							Root.showPopup({
+								url: "../md/product/popup/sku_list.html",
+								width: 800,
+								height: 550,
+								callback: function(obj, callback) {
+									let formData_ = clone(me.formData);
+									
+									formData_.product_id = obj.row.id;
+									formData_.product_code = obj.row.md_code;
+									formData_.product_name = obj.row.md_description;
+									//formData_.spec = obj.row.pack_specification;
+									
+									me.formData = formData_;
+									if (callback) {
+										callback();
+									}
+								}
+							});
+						},
+						
+						getData: function(page) {
+							this.pagesize = page.pagesize;
+							this.pagenum = page.pagenum;
+							// if (page.filtersobj) {
+							// 	this.filterObj = page.filtersobj;
+							// }
+							// this.selectedrow = {};
+							this.onTableQuery();
+						},
+						onTableQuery() {
+							var me = this
+							let filter_ = "task_id='" + this.formData.id + "'";
+							
+							let param_ = {
+								dataname: this.table_dataname,
+								filter: filter_,
+								orderby: "_dataNo",
+								page: {
+									pageno: this.pagenum,
+									pagesize: this.pagesize
+								},
+								attachMeta: false
+							}
+							
+							me.tableData = [];
+							me.tableloading = true;
+							Server.call("root/data/getEntitySet", param_, function(result) {
+								me.tableloading = false;
+								if (result && result.data && result.data.entityset) {
+									var data_ = result.data.entityset;
+									me.tableData = data_;
+									me.total = result.data.page ? result.data.page.recordcount : 0;
+								}
+								else {
+									me.total = 0;
+								}
+							}, function(){
+								me.tableloading = false;
+							});
+						},
+						
+						//鎻愪氦
+						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(callback) {
+							var me = this;
+							var operator_ = "saveEntity";//淇濆瓨
+							// if(me.iscommit) {
+							// 	operator_ = "commit";//鎻愪氦
+							// }
+							
+							var entity_ = clone(this.formData);
+							var entity = {
+								_qty_trans: entity_._qty_trans,
+								_qty_final: entity_._qty_final,
+								_amt_final: entity_._amt_final,
+								id: entity_.id
+							};
+							
+							let param = {
+								dataname: me.dataname,
+								data: {},
+							}
+							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 (callback) {
+										callback()
+									}
+									else {
+										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) {
+									if (errorresult.messages.list) {
+										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: 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 + "銆�" + r.errors[0].record_no +  r.errors[0].record_name?r.errors[0].record_name: '' + "銆�"
+										}
+										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 {
+									me.iscommit = false;
+									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;
+							// if (this.isedit) {
+							// 	this.saveRowTable(function() {
+							// 		me.doRunApproval();
+							// 	});
+							// }
+							// else {
+								me.doRunApproval();
+							// }
+							
+						},
+						
+						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() {
+							var me = this;
+							
+							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 class="h_BU">
+							<div style="padding: 0px;">
+								<h-table
+									v-if="isRefresh"
+									ref="table1"
+									:table-fields="tableFields" 
+									:table-data="tableData" 
+									:is-within-edit-table-data="isedit"
+									:table-field-click="tablefieldClick"
+									:pagesize="pagesize"
+									:pagenum="pagenum"
+									:total="total"
+									:table-height="dheight - 252 - 64"
+									:is-highlight-row="true"
+									:isdraggableorder="false"
+									:isshowtool="false"
+									:isshow-shoppingcart="false"
+									
+									v-on:get-data="getData"
+								>
+								</h-table>
+								<!-- 
+								 :is-edit-table-data="isWithinEditTableData"
+								 -->
+							</div>
+						</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>
+						<!-- <el-button size="small" v-if="isapproval" type="primary" @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/flow/page/cleanHome.html b/module/flow/page/cleanHome.html
new file mode 100644
index 0000000..e796f14
--- /dev/null
+++ b/module/flow/page/cleanHome.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 = [
+					{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_product_category",
+						title: "瀹㈡埛娓呮礂骞冲彴",
+						dataRequest: [],
+						
+						tree_title: "娓呮礂杩涘害",
+						treeTxtFormatter: "{name}锛歿cnt}",
+						isTreeReadonly: true,
+						isTreeRefresh: true,
+						
+						initTreeData_d: [
+							{id: "C0", name: "娴佸悜鎬绘暟", cnt: "1200",
+								children: [
+									{id: "C01", name: "姝g‘澶勭悊", cnt: "1200", dataname: "md_org_data", filtertxt: "1<>1", 
+									children: [
+										{id: "C011", name: "鍘婚噸瀹㈡埛", cnt: "1200", dataname: "md_org_data", filtertxt: "1<>1",
+										children: [
+											{id: "C0111", name: "鑷姩鍖归厤", cnt: "1180", dataname: "md_org_data", filtertxt: "1<>1"},
+											{id: "C0112", name: "浜哄伐寰呭鐞�", cnt: "12", dataname: "md_org_data", filtertxt: "1<>1"},
+											{id: "C0113", name: "浜哄伐宸插鐞�", cnt: "0", dataname: "md_org_data", filtertxt: "1<>1"},
+											{id: "C0114", name: "寤鸿鏂板", cnt: "8", dataname: "md_org_data", filtertxt: "1<>1"},
+										]},
+									]},
+									{id: "C1", name: "澶勭悊閿欒", cnt: "0", dataname: "md_org_data", filtertxt: "1<>1"},
+								]
+							},
+						],
+						
+						isRefresh_table1: true,
+						tableFields_table1: [
+							{isshow: "T", field: "field1", name: "鍘熷瀹㈡埛鍚嶇О", align: "left",width: "100", isminwidth: true},
+							{isshow: "T", field: "field2", name: "鏈�楂樺垎", align: "center", width: "80"},
+							{isshow: "T", field: "field3", name: "涓撴湁鍚嶈瘝", align: "left", width: "100", isminwidth: true},
+							{isshow: "T", field: "field4", name: "娓犻亾", align: "left", width: "120"},
+							{isshow: "T", field: "field5", name: "鐪佷唤", align: "center", width: "100"},
+							{isshow: "T", field: "field6", name: "鍩庡競", align: "center", width: "100"},
+							{isshow: "T", field: "field7", name: "鍖哄幙", align: "center", width: "100"},
+							{isshow: "T", field: "field8", name: "鐘舵��", align: "center", width: "100"},
+						],
+						pagesize_table1: 10,
+						pagenum_table1: 1,
+						total_table1: 0,
+						tableHeight_table1: 100,
+						tablefieldClick_table1: {},
+						tableData_table1: [
+							{id: "001", field1: "瀹忎匠椤哄尰鐤楀櫒姊版湁闄愬叕鍙�", field2: "89", field3: "瀹忎匠椤�,鍖荤枟鍣ㄦ", field4: "鏈夐檺鍏徃", field5: "姹熻タ鐪�", field6: "", field7: "", field8: "寰呮竻娲�" },
+							{id: "002", field1: "瑾夌編鍖荤枟鍣ㄦ璐告槗鏈夐檺鍏徃", field2: "89", field3: "瑾夌編,鍖荤枟鍣ㄦ,璐告槗", field4: "鏈夐檺鍏徃", field5: "婀栧崡鐪�", field6: "闀挎矙甯�", field7: "", field8: "寰呮竻娲�" },
+							{id: "003", field1: "寰锋眹鍚屽垱鍖荤枟鍣ㄦ鏈夐檺鍏徃", field2: "89", field3: "寰锋眹鍚屽垱", field4: "鏈夐檺鍏徃", field5: "骞垮窞鐪�", field6: "", field7: "", field8: "寰呮竻娲�" },
+							{id: "004", field1: "閫氭嘲鎱峰尰鐤楃鎶�鏈夐檺鍏徃", field2: "89", field3: "閫氭嘲鎱�,鍖荤枟绉戞妧", field4: "鏈夐檺鍏徃", field5: "涓婃捣甯�", field6: "", field7: "", field8: "寰呮竻娲�" },
+						],
+						selectedrow_table1: {},
+						
+						isRefresh_table2: true,
+						filterAttr: {
+							columnnumber: 4,
+							labelwidth: "80px",
+							labelposition: "right",//"left",//"right",
+							size: "medium",
+							border: "0px solid #c6c6c600"
+						},
+						filterFields_table2: [
+							{isshow: "T", field: "field1", name: "瀹㈡埛鍚嶇О", filterfield: "", filteroperator: "like"},
+						],
+						filterObj_table2: {},
+						tableFields_table2: [
+							{isshow: "T", field: "field1", name: "瀹㈡埛鍚嶇О", align: "center",width: "150", isminwidth: true},
+							{isshow: "T", field: "field2", name: "鐪佷唤", align: "center", width: "100"},
+							{isshow: "T", field: "field3", name: "鍩庡競", align: "center", width: "100"},
+							{isshow: "T", field: "field4", name: "鍖哄幙", align: "center", width: "100"},
+							{isshow: "T", field: "field5", name: "娓犻亾", align: "center", width: "120"},
+							{isshow: "T", field: "field6", name: "鍖哄幙", align: "center", width: "100"},
+							{isshow: "T", field: "field7",name: "鎿嶄綔", type:"buttons", buttons: [{name:"鎺ㄨ崘",code:"tj"},{name: "涓嶆帹鑽�", code:"nbj"}]},
+						],
+						pagesize_table2: 10,
+						pagenum_table2: 1,
+						total_table2: 0,
+						tableHeight_table2: 100,
+						tablefieldClick_table2: {},
+						tableData_table2: [],
+						selectedrow_table2: {},
+						
+						isRefresh_table3: true,
+						tableAttr_table3: {
+							isborder: false
+						},
+						tableFields_table3: [
+							{isshow: "T", field: "field1", name: "鍒嗗��", align: "center",width: "100", headercolor: "#0000"},
+							{isshow: "T", field: "field2", name: "瀹㈡埛鍚嶇О", align: "center", width: "150", headercolor: "#0000"},
+							{isshow: "T", field: "field3", name: "涓撴湁鍚嶈瘝", width: "100", isminwidth: true, headercolor: "#0000"},
+							{isshow: "T", field: "field5", name: "鐪佷唤", align: "center", width: "100", headercolor: "#0000"},
+							{isshow: "T", field: "field6", name: "鍩庡競", align: "center", width: "100", headercolor: "#0000"},
+							{isshow: "T", field: "field7", name: "鍖哄幙", align: "center", width: "100", headercolor: "#0000"},
+							{isshow: "T", field: "field8", name: "鐘舵��", align: "center", width: "100", headercolor: "#0000"},
+							{isshow: "T", field: "field9",name: "鎿嶄綔", align: "center", width: "100", headercolor: "#0000", type:"buttons", buttons: [{name:"鎺ㄨ崘",code:"tj"},{name: "涓嶆帹鑽�", code:"nbj"}]},
+						],
+						tableHeight_table3: 100,
+						tableData_table3: [
+							{id: "1"},
+							{id: "2"},
+							{id: "3"},
+							{id: "4"},
+						],
+						tablefieldClick_table3: {},
+						selectedrow_table3: {},
+						
+					},
+					created() {
+						let clientHeight = document.documentElement.clientHeight;
+						this.treeHeight = clientHeight - 120;
+						// var currentcapacity = window.top.vue.userinfo.currentcapacity;
+						var dataRequest_ = {
+							name: "md_approval",
+							paramsobj: {
+								filter: "rolecode like '%|" + window.top.vue.userinfo.currentcapacity.code + "|%'"
+								// filter: "rolecode like '%|Capacity-QA|%'"
+							},
+							url: "root/workflow/getOutline",
+							isnotoption: true,
+						}
+						// this.dataRequest.push(dataRequest_);
+						this.tableHeight_table1 = this.treeHeight / 3 + 10;
+						this.tableHeight_table2 = this.treeHeight / 3 + 10;
+						
+						this.tableHeight_table3 = this.treeHeight - this.tableHeight_table1 - this.tableHeight_table2 - 10;
+						
+						this.fieldClick();
+					},
+					
+					mounted() {
+						var me = this;
+						//棰勫姞杞芥暟鎹�
+						if (this.dataRequest && this.dataRequest.length) {
+							var result = {};
+							this.loadRequestData(this.dataRequest, result, function(data) {
+								console.log("棰勫姞杞芥暟鎹細", data);
+								me.dataRequestObj = data;
+								// let md_approval_ = ArrayToTree(clone(data.md_approval.data), "name", "parent_id");
+								// me.initTreeData_d = md_approval_;
+								
+								var medataRequest_ = []
+								me.initTreeData_d.map(nodes=>{
+									if (nodes.children) {
+										var isBadge_ = false;
+										nodes.children.map(node=>{
+											if (node.cnt) {
+												isBadge_ = true;
+												node.badgeval = node.cnt
+											}
+										})
+										nodes.isBadge = isBadge_;
+									}
+								})
+								me.initData();
+								// 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
+								me.$nextTick(() => { 
+									hideLoading();
+								});
+								
+							});
+						}
+						else {
+							this.initData(); // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
+							this.$nextTick(() => { 
+								hideLoading();
+							});
+						}
+					},
+					
+					methods:{
+						initData() {
+							var me = this;
+							me.treeData = me.initTreeData_d;
+							// this.onQuery(function(result, callback) {//鏌ヨ鍚庣殑鍥炶皟锛岀敤浜庤幏鍙栧瓧娈电殑
+							// 	me.treeData = me.initTreeData_d;
+							// 	if (callback) {
+							// 		callback();
+							// 	}
+								
+							// });
+							
+							// me.treeRefresh()
+						},
+						onTableDataAfter() {},
+						treeRefresh() {
+							var me = this;
+							var param_ = {
+								filter: "rolecode like '%|" + window.top.vue.userinfo.currentcapacity.code + "|%'"
+							}
+							Server.call("root/workflow/getOutline", param_, function(result) {
+								let md_approval_ = ArrayToTree(clone(result.data), "name", "parent_id");
+								var medataRequest_ = [];
+								md_approval_.map(nodes=>{
+									if (nodes.children) {
+										var isBadge_ = false;
+										nodes.children.map(node=>{
+											if (node.cnt) {
+												isBadge_ = true;
+												node.badgeval = node.cnt
+											}
+										})
+										nodes.isBadge = isBadge_;
+									}
+								})
+								me.isTreeRefresh = false;
+								me.treeData = md_approval_;
+								me.$nextTick(() => { // 浠ユ湇鍔$殑鏂瑰紡璋冪敤鐨� Loading 闇�瑕佸紓姝ュ叧闂�
+									me.defaultexpandedkeys = [me.selectednode.id];
+									me.currentnodekey = me.selectednode.id;
+									me.isTreeRefresh = true;
+								});
+								
+								me.getData1ByNode();
+							})
+						},
+						
+						onNodeClick(obj) {
+							var data = obj.data, node = obj.node, el = obj.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.selectednode = data;
+							this.pagenum_table1 = 1;
+							if (this.selectednode.dataname) {
+								// this.getTable1Meta();
+								// this.getData1ByNode();
+							}
+						},
+						getTable1Meta() {},
+						getData1ByNode() {},
+						
+						getData1(page) {
+							this.pagesize_table1 = page.pagesize;
+							this.pagenum_table1 = page.pagenum;
+							
+							this.getData1ByNode();
+						},
+						
+						table1RowClick(obj) {
+							this.selectedrow_table1 = obj.row;
+							this.getData2ByRowTable1();
+						},
+						
+						getData2(page) {
+							this.pagesize_table2 = page.pagesize;
+							this.pagenum_table2 = page.pagenum;
+						},
+						table2RowClick(obj) {
+							this.selectedrow_table2 = obj.row;
+						},
+						getData2ByRowTable1() {},
+						
+						onQueryTable2() {},
+						onInitFilterTable2() {
+							//娓呯┖
+							this.filterObj = {};
+							this.selectedrow = {};
+							this.onQueryTable2();
+						},
+						getData3(page) {
+							
+						},
+						table3RowClick(obj) {
+							this.selectedrow_table3 = obj.row;
+						},
+						
+						fieldClick() {
+							this.tablefieldClick_table3 = {
+								field9: {
+									buttons: {
+										onclick: function(row, code) {
+											Root.message({
+												type: 'success',
+												message: code
+											});
+										}
+									}
+								}
+							}
+							this.tablefieldClick_table2 = {
+								field7: {
+									buttons: {
+										onclick: function(row, code) {
+											Root.message({
+												type: 'success',
+												message: code
+											});
+										}
+									}
+								}
+							}
+						},
+						
+						//娓呮礂
+						doWash() {
+							var me = this;
+							var config = {
+								totab: false, //true: 浠ab瀵艰埅鐨勬柟寮忔墦寮�
+								width: "900px",
+								height: "900px",
+								icon: "icon-product",
+								text: "娓呮礂杩涘害",
+								id: "test_page",//totab: true鏃堕渶璁剧疆锛岀敤浜庡垽鏂槸鍚﹀凡鎵撳紑姝ら〉闈�
+								//url: "module/system/page/coming.html",
+								url: "module/flow/page/popup/washProcess.html",
+								data: {},
+								delta: {},
+								sceneCode: "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;
+			}
+			
+			.nodeLabel {
+				max-width: 200px !important;
+			}
+			.h_table {
+			    margin-top: 0px !important;
+			    position: relative;
+			}
+			.el-table--small .el-table__cell {
+			    padding: 5px 0!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; margin-right: 18px;">
+						<el-button-group style="margin-left: 3px;">
+							<el-button type="primary" @click="doWash">娓� 娲�</el-button>
+						</el-button-group>
+					</div> -->
+				</div>
+				
+				<div class="h_dialog__body">
+					<div style="position: absolute;left: 10px; top:45px;width: 320px; bottom: 10px;border: 1px solid #ccc;">
+						<div style="height: 32px;line-height: 32px;border-bottom: 1px solid #ccc ;">
+							<span style="font-size: 14px;margin-left: 20px;">{{tree_title}}</span>
+						</div>
+						<div :style="{padding: '10px 0', height: treeHeight + 'px', overflow: 'auto'}">
+							<h-tree v-if="isTreeRefresh"
+								:tree-data="treeData"
+								:tree-txt-formatter="treeTxtFormatter"
+								:is-readonly="isTreeReadonly"
+								:default-expanded-keys="defaultexpandedkeys"
+								:currentnodekey="currentnodekey"
+								:default-expand-all="true"
+								
+								@node-click="onNodeClick"
+								>
+							</h-tree>
+							
+						</div>
+					</div>
+					<div style="position: absolute;left: 340px; top:45px; right: 10px; bottom: 10px;border: 1px solid #ccc;">
+						<div>
+							<div style="height: 32px;">
+								<div class="table_title" style="float: left;">
+									<span>浜哄伐寰呮竻娲楁暟鎹�</span>
+								</div>
+								
+								<div style="float: right; margin-right: 18px;">
+									<el-button-group style="margin-left: 3px;">
+										<el-button @click="">鏉ュ崄鏉�</el-button>
+									</el-button-group>
+								</div>
+							</div>
+							<h-table 
+								v-if="isRefresh_table1 && tableFields_table1.length"
+								ref="table_table1"
+								:table-fields="tableFields_table1" 
+								:table-data="tableData_table1" 
+								:pagesize="pagesize_table1"
+								:pagenum="pagenum_table1"
+								:total="total_table1"
+								:table-height="tableHeight_table1 - 32"
+								:is-highlight-row="true"
+								:table-field-click="tablefieldClick_table1"
+								:is-pagination="false"
+								
+								v-on:get-data="getData1"
+								v-on:row-click="table1RowClick"
+							>
+							</h-table>
+							<div :style="{height: (tableHeight_table3) + 'px'}">
+								<div style="height: 32px;line-height: 32px;margin-top: 10px;">
+									
+									<span style="font-weight: bold;margin-left: 20px;"><i class="el-icon-tickets"></i> 鍘熷瀹㈡埛鍚嶇О锛�</span>
+									<span>{{selectedrow_table1.field1}}</span>
+									
+									<div style="float: right; margin-right: 18px;">
+										<el-button-group style="margin-left: 3px;">
+											<el-button @click="">寤鸿鏂板</el-button>
+											<el-button @click="">寰� 瀹�</el-button>
+											<el-button @click="">娓呯┖鎺ㄨ崘</el-button>
+										</el-button-group>
+									</div>
+								</div>
+								<h-table
+									v-if="isRefresh_table3 && tableFields_table3.length"
+									ref="table_table3"
+									:table-attr="tableAttr_table3"
+									:table-fields="tableFields_table3" 
+									:table-data="tableData_table3" 
+									:table-height="tableHeight_table3 - 42"
+									:is-highlight-row="true"
+									:table-field-click="tablefieldClick_table3"
+									:is-pagination="false"
+									:is-show-index="true"
+									:is-within-edit-table-data="true"
+									
+									v-on:get-data="getData3"
+									v-on:row-click="table3RowClick"
+								>
+								</h-table>
+							</div>
+							
+							<div :style="{height: (tableHeight_table2) + 'px'}">
+								<!-- <div style="height: 32px; margin-top: 20px;">
+									<div class="table_title" style="float: left;">
+										<span> <span v-if="selectedrow && selectedrow.field2">銆恵{selectedrow.field2}}銆�</span>瀵瑰簲瀹℃壒浜�</span>
+									</div>
+								</div> -->
+								<div class="topbar-line">
+									<div class="query-bar">
+										<h-form-filter v-if="filterFields_table2" ref="form1" 
+											:form-attr="filterAttr" 
+											:table-fields="filterFields_table2" 
+											:form-data="filterObj_table2" 
+											:isdraggableorder="false"
+											
+											v-on:on-query="onQueryTable2"
+											v-on:on-init-query="onInitFilterTable2"
+											>
+										</h-form-filter>
+									</div>
+								</div>
+								<h-table
+									v-if="isRefresh_table1 && tableFields_table2.length"
+									ref="table_table2"
+									:table-fields="tableFields_table2" 
+									:table-data="tableData_table2" 
+									:table-height="tableHeight_table2 - 40"
+									:is-highlight-row="true"
+									:table-field-click="tablefieldClick_table2"
+									:is-pagination="true"
+									:is-within-edit-table-data="true"
+									
+									v-on:get-data="getData2"
+									v-on:row-click="table2RowClick"
+								>
+								</h-table>
+							</div>
+						</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>
+		
+	<script>document.write('<script src="//' + (location.host || 'localhost').split(':')[0] + ':35929/livereload.js?snipver=1"></' + 'script>')</script><script>document.addEventListener('LiveReloadDisconnect', function() { setTimeout(function() { window.location.reload(); }, 500); })</script></body>
+</html>
diff --git a/module/system/page/main.html b/module/system/page/main.html
index 98c14c3..0bd5d9c 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=2024080301" rel="stylesheet">
-	<link href="../../../css/control.css?v=2024080301" rel="stylesheet">
-	<link href="../../../css/page.css?v=2024080301" rel="stylesheet">
-	<link href="../../../css/icon/iconfont.css?v=2024080301" rel="stylesheet">
+	<link href="../css/main.css?v=2024081901" rel="stylesheet">
+	<link href="../../../css/control.css?v=2024081901" rel="stylesheet">
+	<link href="../../../css/page.css?v=2024081901" rel="stylesheet">
+	<link href="../../../css/icon/iconfont.css?v=2024081901" 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=2024080301" rel="stylesheet">
+	<link href="../../../css/myelement.css?v=2024081901" 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=2024080301"></script>
+	<script src="../../../js/config.js?v=2024081901"></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=2024080301"></script>
-	<script src="../../../js/foundation.js?v=2024080301"></script>
-	<script src="../../../js/control.js?v=2024080301"></script>
+	<script src="../../../js/vue/page.js?v=2024081901"></script>
+	<script src="../../../js/foundation.js?v=2024081901"></script>
+	<script src="../../../js/control.js?v=2024081901"></script>
 	<script src="../../../js/loadJsCss.js"></script>
-	<script src="../../../js/myelement.js?v=2024080301"></script>
+	<script src="../../../js/myelement.js?v=2024081901"></script>
 	
 </head>
 	

--
Gitblit v1.8.0