<!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 src="../../../jsnew/elementDefault.js?v=20220425"></script>
        <script src="../../../jsnew/vue/vue.js"></script>
		<script src="../../../jsnew/vue/element-ui/element-ui_15/index.js"></script>
		<script src="../../../jsnew/myelement.js?v=20220425"></script>
		<script src="../../../jsnew/page.js?v=20220425"></script>
		<!-- <script src="../../../setting.js"></script> -->
		
		<link href="../../../jsnew/vue/element-ui/element-ui_15/theme-chalk/index.css" rel="stylesheet">
		<link href="../../../jsnew/myelement.css?v=20220426" rel="stylesheet">
		<link href="../../../jsnew/theme.css?v=20220426" rel="stylesheet">
		<link href="../../../css/iconfont.css" rel="stylesheet">
		<link href="../../../jsnew/page.css?v=20220425" rel="stylesheet">
		<link href="//at.alicdn.com/t/font_2374495_13ltsxm2eor.css" rel="stylesheet">
	</head>
	
	<body style="margin: 0px;">
		<div v-cloak id="vbody">
			<div id="page_root">
				<div ref="popup_body" style="padding: 0 20px;  ">
					<!-- 标题 -->
					<div class="el-dialog__header">
						<div class="dialog-title">
						  <i class="iconfont icon-customermanagement"></i>
						  <span>{{title}}</span>
						</div>
					</div>	
					<!-- 主体 -->
					<div class="topbar-line">
						<div class="query-bar">
							<h-form-filter ref="form1" 
								:form-attr="filterAttr" 
								:table-fields="filterFields" 
								:form-data="filterObj" 
								:table-field-click="filterfieldClick"
								
								v-on:on-query="onQuery"
								v-on:on-init-query="onInitFilter"
								>
							</h-form-filter>
						</div>
					</div>
				
					<div class="h_dialog__body">
						<h-table
							v-if="isRefresh"
							ref="table1"
							:table-fields="tableFields" 
							:table-data="tableData" 
							:pagesize="pagesize"
							:pagenum="pagenum"
							:total="total"
							:table-height="tableHeight"
							:table-field-click="tablefieldClick"
							:is-highlight-row="isedit"
                            :is-within-edit-table-data="false"
							
							:select-table-data="selectedrows"
							:is-selection="isSelects && tableData.length>0"
							:isshow-shoppingcart="true"
							v-on:selection-change="selectionChange"
							v-on:save-shoppingcart="saveShoppingcart"
							
							v-on:get-data="getData"
							v-on:row-click="rowClick"
							v-on:row-dblclick="rowDblclick"
						>
						</h-table>
					</div>
					
					<!-- 底部工具栏 -->
					<div class="el-dialog__footer">
						<el-button size="small" type="default" @click="closeDialog">取 消</el-button>
						<el-button size="small" v-if="isedit" type="primary" :disabled = "!((selectedrow && selectedrow.id && !isSelects) || (selectedrows.length>0 && isSelects))" @click="saveAfter">确 定</el-button>
					</div>
				</div>
			</div>
		</div>
		
		<div id="page_loading" style="position: absolute; top:0px; width: 100vw; height: 50vh;">
			<div class="spinner">
			  <div class="cube1"></div>
			  <div class="cube2"></div>
			</div>
		</div>
	</body>

	<script type="text/javascript">
		function initVue() {
			new ListVue({
				el: "#vbody",
				data: {
					dataname: "md_org_data",
					dataurl: "rootjemin/data/getEntitySet",
					title: "商业信息",

					pageAttr: {
						heightType: "popuppage"
					},
					
					dataRequest: [
						{
							name: "md_province",
							url: "rootjemin/data/getEntitySet",
							paramsobj: {dataname: "md_division", filter: "level = '1'"},
							isnotoption: false, //true:不是选项
							label: "name",
							code: "code"
						},
						{
							name: "delivery_organization",
							url: "root/data/getEntitySet",
							paramsobj: {dataname: "delivery_organization",},
							isnotoption: false,
						}
					],

					default_filterFields: [
						{isshow: "T", field: "province", name: "省份", width: "200", type:"select",},
                        {isshow: "T", field: "md_code", name: "商业编码", width: "150", filteroperator: "like",},
						{isshow: "T", field: "md_description", name: "商业名称", width: "200", filteroperator: "like",},
					],

					default_tableFields: [
						{isshow: "T", field: "md_code", name: "商业编码", width: "200", type: "span"},
						{isshow: "T", field: "md_description", name: "商业名称", width: "200", type:"span", align: "left", isminwidth: true,},
					],
					tableData: [],

					filterfieldClick: {},
					tablefieldClick: {},
					formfieldClick: {},
					selectedrows: [],
					isSelects: false
				},
				
				created() {
					this.popupParames = clone(Root.popupParames);
					// Root.setPopupTitle(this.title);
					this.title = this.popupParames.title || this.popupParames.text;
					if (this.popupParames.filter) {
						this.filterTxt = this.popupParames.filter;
					}
					if (this.popupParames.dataname) {
						this.dataname = this.popupParames.dataname;
					}
					if (this.popupParames.delta) {
						if (this.popupParames.delta.isSelects) {
							this.isSelects = true
						}
					}
					
					if (this.popupParames.sceneCode) {
						if (this.popupParames.sceneCode == "add") {//新增
							this.isedit = true;
						}
					}
				},
				
				mounted() {
					let me = this
					//获取数据
					if (this.dataRequest && this.dataRequest.length) {
						var result = {};
						this.loadRequestData(this.dataRequest, result, function(data) {
							me.dataRequestObj = data;
							//预加载数据后给哪些字段设置options或formatterjson
							
							
							me.initData();
						});
					}
					else {
						this.initData();
					}

					// 以服务的方式调用的 Loading 需要异步关闭
					this.$nextTick(() => { 
						hideLoading();
					});
				},
				
				methods:{
					//关闭弹窗
					closeDialog() {
						this.docloseDialog(true);
					},
					
					//关闭前调回调
					saveAfter() {
						var me = this;
						if(this.popupParames.callback) {
							let data = {
								row: clone(this.selectedrow)
							}
							if (this.isSelects) {
								data = clone(this.selectedrows)
							}
							this.popupParames.callback(data, function() {
								me.docloseDialog();
							});
						}
						else {
							me.docloseDialog();
						}
					},
					
					initData() {
						var me = this;

						// if (!me.filterFields || (me.filterFields && me.filterFields.length == 0)) {
						// 	me.filterFields = clone(me.default_filterFields);
						// 	me.tableFields = clone(me.default_tableFields);
							
						// 	//字段数组转字段obj
						// 	me.fieldsToFieldsObj();
							
						// 	//设置字段事件
						// 	me.tableFieldClick();

						// 	//me.filterObj.province = "云南省";
						// 	//me.filterObj.code = "10010064";
						// }
						// this.onQuery()
						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_ = [];
								// var options_ = [];
								metas.map(f=>{
									f.isshow = "T";
									
									if (f.isfilter) {
										if(f.field == "delivery_part_name") {
											f.isfilterable = true
											me.dataRequestObj.delivery_organization.data.entityset.map(e => {
												e.value = e.name
												e.code = e.name
												// me.tableData.map(s => {
												// 	if(e.name == s.delivery_part_name) {
												// 		options_.push(e)
												// 	}
												// })
											})
											// f.options = clone(options_)
											f.options = me.dataRequestObj.delivery_organization.data.entityset
										}
										filterFields_.push(clone(f));
									}
									else {
										var filter_f = clone(f);
										filter_f.isshow = "F";
										filterFields_.push(filter_f);
									}
									
									if (f.field == 'province') {
										me.dataRequestObj.md_province.data.entityset.map(e => {
											e.value = e.name
										})
										f.options = me.dataRequestObj.md_province.data.entityset
									}
									
									tableFields_.push(clone(f));
								})
								if (!me.filterFields || (me.filterFields && me.filterFields.length == 0)) {
									me.filterFields = clone(filterFields_);
									me.tableFields = clone(tableFields_);
									
									//字段数组转字段obj
									me.fieldsToFieldsObj();
									
									//设置字段事件
									me.tableFieldClick();
								}
								
								//重新设置弹窗宽高
								me.$nextTick(function(){
									//let w_ = this.$refs.popup_body.offsetWidth  "px";
									let w_ = "900px";
									// let h_ = "650px";
									let h_ = me.$refs.popup_body.offsetHeight - 80 + "px";
									Root.setPopupWH(w_, h_);
								})
							}
							
							if (callback) {
								callback();
							}
						});
					},

					tableFieldClick() {
						var me = this;
						//筛选字段事件设置
						this.filterfieldClick = {
							province: {//字段事件设置
								visible: {
									onchange: function(obj) {//下拉展开事件
										var formFields_ = clone(me.filterFields);
										let param_ = {
											isClientMode: false,
											"dataName": "md_division",
											"filter":"level = '1'",
										}
										Server.call("rootjemin/data/getEntitySet", param_, function(result) {
											if (result && result.data) {
												var options_ = result.data.entityset;
												for(var i=0; i<options_.length;i++) {
													options_[i].code = options_[i].code;
													options_[i].value = options_[i].name;
												}
												formFields_.map(e=>{
													if(e.field == "province") {
														e.options = options_;
													}
												})
											}
											me.filterFields = formFields_;
										});
									},
								},
							}
						};

						//表格字段事件设置
						this.tablefieldClick = {
							
						};
					
						//表单字段事件设置
						this.formfieldClick = {
							
						};
					},
					
					onRowDblClick() {
						if (this.isedit && !this.isSelects) {
							this.saveAfter();
						}
					},
					selectionChange(obj){
						var me = this;
						// me.selectedrows = obj;
					},
					saveShoppingcart(list) {
						var me = this;
						// me.selectedrows = list;
					},
				}
			});
		};
		
		initVue();
	</script>

	<style>
		/* 在vue.js中 v-cloak 这个指令是防止页面加载时出现 vuejs 的变量名而设计的 */
		[v-cloak] {
			display: none !important;
		}
	</style>
</html>