<!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>