<!doctype html>
<html>
	<head>
		<meta charset="utf-8"><meta http-equiv="Expires" content="0"><meta http-equiv="Pragma" content="no-cache"><meta http-equiv="Cache-control" content="no-cache"><meta http-equiv="Cache" content="no-cache">
		<title>产品工厂关系</title>
		
		<script type="text/javascript">
			var pageVue = null;
			function loadJsCss(callback) {
				var jscss_urls = [];
				window.top.initJsCss(document, jscss_urls, callback);
			};
			
			function initVue() {
				new ListVue({
					el: "#vbody",
					data: {
						dataname: "md_factory",
						title: "产品工厂关系",
						
						default_filterFields: [
							{isshow: "T", field: "product_name", name: "产品名称", filterfield:"", filteroperator: "like", type: ""},
						],
						default_tableFields: [
							{field: "year", name: "年份", isshow: "T", align: "center",width: "50"},
							{field: "monthno", name: "月份", isshow: "T", align: "center",width: "100"},
							{field: "product_code", name: "产品编码", isshow: "T", align: "center", width: "100"},
							{field: "product_name", name: "产品名称", isshow: "T", align: "left"},
							{field: "qty_begin", name: "期初数量", isshow: "T", align: "right", width: "80"},
							{field: "qty_in", name: "本期入", isshow: "T", align: "right", width: "80"},
							{field: "qty_out", name: "本期出", isshow: "T", align: "right", width: "80"},
							{field: "qty_end", name: "期末数量", isshow: "T", align: "right", width: "80"},
							{field: "qty_available", name: "占用数量", isshow: "T", align: "right", width: "80"},
						],
						
						dataname_p: "md_product",
						isRefresh_p: true,
						tableFields_p: [],
						tableData_p: [],
						pagesize_p: 10,
						pagenum_p: 1,
						total_p: 0,
						tableHeight_p: 100,
						
						filterfieldClick: {},
						tablefieldClick: {},
						formfieldClick: {},
						
					},
					created() {
						
					},
					
					mounted() {
						//获取数据
						this.initData();
						this.$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.isfilter) {
											filterFields_.push(clone(f));
										}
										else {
											var filter_f = clone(f);
											filter_f.isshow = "F";
											filterFields_.push(filter_f);
										}
										
										tableFields_.push(clone(f));
									})
									if (!me.filterFields || (me.filterFields && me.filterFields.length == 0)) {
										me.filterFields = clone(filterFields_);
										me.tableFields = clone(tableFields_);
										
										//字段数组转字段obj,目的为了筛选时获取字段属性
										me.fieldsToFieldsObj();
										
										//设置字段事件
										me.tableFieldClick();
									}
								}
								
								if (callback) {
									callback();
								}
								
								me.getProductMeta();
							});
						},
						
						getProductMeta() {
							var me = this;
							var param_ = {
								dataname: this.dataname_p,
								attachMeta: true,
							}
							
							Server.call("root/data/getEntitySet", param_, function(result) {
								if (result.meta && result.meta[me.dataname_p] && result.meta[me.dataname_p].fields) {
									var metas = clone(result.meta[me.dataname_p].fields);
									var filterFields_ = [];
									var tableFields_ = [];
									
									metas.map(f=>{
										f.isshow = "T";
										tableFields_.push(clone(f));
									})
									if (!me.tableFields_p || (me.tableFields_p && me.tableFields_p.length == 0)) {
										me.tableFields_p = clone(tableFields_);
									}
								}
								
								me.tableDataAfter_p();
							})
						},
						
						tableDataAfter_p() {
							var me = this;
							if (this.tableFields_p.length > 0){
								this.isRefresh_p = false;
								this.$nextTick(function(){
									this.isRefresh_p = true;
									this.$nextTick(function(){
										me.tableHeight_p = me.tableHeight
									})
								})
							}
						},
						
						tableFieldClick() {
							var me = this;
							//筛选字段事件设置
							
							//表格字段事件设置
							
							//表单字段事件设置
							
						},
						
						rowClick(obj) {
							this.selectedrow = obj.row;
							this.pagenum_p = 1;
							this.getProductByFactory();
						},
						
						onQueryAfter() {
							this.pagenum_p = 1;
							this.tableData_p = [];
							this.total_p = 0;
						},
						
						getData_p(page) {
							this.pagesize_p = page.pagesize;
							this.pagenum_p = page.pagenum;
							
							this.getProductByFactory();
						},
						
						getProductByFactory() {
							var me = this;
							if (!this.selectedrow.id) {
								return
							}
							var filter_ = "manufacturer_id='" + this.selectedrow.id + "'"
							var param_ = {
								dataname: this.dataname_p,
								filter: filter_,
								orderby: "name",
								page: {
									pageno: this.pagenum_p,
									pagesize: this.pagesize_p
								},
							}
							
							Server.call("root/data/getEntitySet", param_, function(result) {
								if (result && result.data && result.data.entityset) {
									var data_ = result.data.entityset;
									me.tableData_p = data_;
									me.total_p = result.data.page.recordcount;
								}
								else {
									me.total_p = 0;
								}
							})
						},
					}
				});
			};
			
			loadJsCss(function () {
				initVue();
			});
		</script>
		<style>
			/* 在vue.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 class="topbar">
					<span>{{title}}</span>
				</div>
			
				<div class="topbar-line">
					<div class="query-icon">
						<i class="iconfont icon-query"></i>
					</div>
					<div class="query-bar">
					</div>
				</div>
			
				<div class="h_dialog__body">
					<div style="width: 100%; height: 100%; box-sizing: border-box;">
						<div style="width: 30%; height: 100%; float: left; border: 1px solid #ccc;">
							<div style="height: 32px; border-bottom: 1px solid #aaa;">
								<div class="table_title" style="float: left; line-height: 32px;">
									<span>工厂列表</span>
								</div>
							</div>
							<h-table
								v-if="isRefresh"
								ref="table1"
								:table-fields="tableFields" 
								:table-data="tableData" 
								:is-edit-table-data="isEditTableData"
								:pagesize="pagesize"
								:pagenum="pagenum"
								:total="total"
								:table-height="tableHeight - 42"
								:table-field-click="tablefieldClick"
								:is-highlight-row="true"
								:tableloading="tableloading"
								
								v-on:get-data="getData"
								v-on:row-click="rowClick"
							>
							</h-table>
						</div>
						<div :style="{width: '69%', height: tableHeight + 65+'px', float: 'right', border: '1px solid #ccc'}">
							<div style="height: 32px; border-bottom: 1px solid #aaa;">
								<div class="table_title" style="float: left; line-height: 32px;">
									<span>产品列表</span>
								</div>
							</div>
							<h-table
								v-if="isRefresh_p"
								ref="table2"
								:table-fields="tableFields_p" 
								:table-data="tableData_p" 
								:pagesize="pagesize_p"
								:pagenum="pagenum_p"
								:total="total_p"
								:table-height="tableHeight_p - 42"
								:is-highlight-row="true"
								
								v-on:get-data="getData_p"
							>
							</h-table>
						</div>
					</div>
					
				</div>
			</div>
		</div>
		
		<div id="page_loading" style="position: absolute; top:0px; width: 100vw; height: 50vh;">
			<div class="spinner">
			  <div class="cube1"></div>
			  <div class="cube2"></div>
			</div>
		</div>
		
	</body>
</html>