<!doctype html> <html> <head> <meta charset="utf-8"><meta http-equiv="Expires" content="0"><meta http-equiv="Pragma" content="no-cache"><meta http-equiv="Cache-control" content="no-cache"><meta http-equiv="Cache" content="no-cache"> <title>åº“å˜æˆ–æ¤å…¥æ˜Žç»†åˆ—表</title> <script type="text/javascript"> var pageVue = null; function loadJsCss(callback) { var jscss_urls = []; window.top.initJsCss(document, jscss_urls, callback); }; function initVue() { pageVue = new TabTableVue({ el: "#vbody", data: { title: "åº“å˜æˆ–æ¤å…¥æ˜Žç»†åˆ—表", //Tab项设置 tabs_d: [ {code: "book", name: "åº“å˜æ˜Žç»†", dataname: "wm_book_detail", filterTxt: " type_code<>'Freeze' ", orderby: ""}, {code: "implantDetail", name: "æ¤å…¥æ˜Žç»†", dataname: "so_implant_detail", filterTxt: "1 = 1", orderby: ""}, ], d_tabs: { book: true, implantDetail: true, }, tabs: [], tabsobj: {}, popupParames: {}, formData: {}, filterTxt: "", paramObjBydefault: {}, isedit: false, pageAttr: { heightType: "popuppage" }, dataRequest: [ { name: "org_product", dataname: "md_org_product",//授æƒäº§å“分类 //url: "root/front/getOneDictionary", //paramsobj: { code: "OrgType", }, filter: "parent_id='" + window.top.vue.userinfo.org.id + "'", isnotoption: false, //true:䏿˜¯é€‰é¡¹ code:"product_category_name",//是下拉选项时设置 label:"product_category_name",//是下拉选项时设置 }, { name: "wm_warehouse", dataname: "wm_warehouse",//授æƒäº§å“分类 //url: "root/front/getOneDictionary", //paramsobj: { code: "OrgType", }, filter: "org_id='" + window.top.vue.userinfo.org.id + "' and is_active='T'", isnotoption: false, //true:䏿˜¯é€‰é¡¹ code:"code",//是下拉选项时设置 label:"name",//是下拉选项时设置 }, ], dataRequestObj: {}, default_tableData: [], filterfieldClick: {}, tablefieldClick: {}, formfieldClick: {}, formData: {}, filterData: {}, rowkey: "id", lazy: true, selectedparentrow: {}, id_: 1, iscustomer: false, }, created() { var me = this; this.tabs = this.tabs_d; this.popupParames = clone(Root.popupParames); this.title = this.popupParames.title || this.popupParames.text if (this.popupParames.data) { this.formData = this.popupParames.data } if (this.popupParames.delta) { if(this.popupParames.delta.wh) { this.filterData = this.popupParames.delta.wh; } console.log(this.selectTabObj); this.tabs_d[0].filterTxt = this.popupParames.delta.book || "1 = 1"; this.tabs_d[1].filterTxt = this.popupParames.delta.implantDetail || "1 = 1"; // if(this.selectTabObj.code = "book") { // this.filterTxt = this.popupParames.delta.book || "1 = 1"; // } // if(this.selectTabObj.code = "implantDetail") { // this.filterTxt = this.popupParames.delta.implantDetail || "1 = 1"; // } } if (this.popupParames.sceneCode) { if (this.popupParames.sceneCode == "add") {//新增 this.isedit = true; } } }, mounted() { var me = this; //é¢„åŠ è½½æ•°æ® if (this.dataRequest && this.dataRequest.length) { var result = {}; this.loadRequestData(this.dataRequest, result, function(data) { me.dataRequestObj = data; if(me.tabs.length>0){ me.activeTabName = me.tabs[0].code; } //åˆå§‹åŒ–Tabs me.initTabsPage(function() { //èŽ·å–æ•°æ® me.initData(); }); me.$nextTick(() => { // 以æœåŠ¡çš„æ–¹å¼è°ƒç”¨çš„ Loading 需è¦å¼‚æ¥å…³é— hideLoading(); }); }); } else { //åˆå§‹åŒ–Tabs me.initTabsPage(function() { //èŽ·å–æ•°æ® me.initData(); }); me.$nextTick(() => { // 以æœåŠ¡çš„æ–¹å¼è°ƒç”¨çš„ Loading 需è¦å¼‚æ¥å…³é— hideLoading(); }); } }, methods:{ //å…³é—弹窗 closeDialog() { this.docloseDialog(true); }, //å…³é—å‰è°ƒå›žè°ƒ saveAfter() { var me = this; if(this.popupParames.callback) { let obj = { detailType: me.selectTabObj.code, row: clone(this.selectTabObj.selectedrow) } this.popupParames.callback(obj, function() { me.docloseDialog(); }); } else { me.docloseDialog(); } }, onhandleClick() { this.initData(); }, initData() { var me = this; this.doQueryByTab(function(result, callback) {//查询åŽçš„回调,用于获å–å—æ®µçš„ if (result.meta && result.meta[me.selectTabObj.dataname] && result.meta[me.selectTabObj.dataname].fields) { var metas = clone(result.meta[me.selectTabObj.dataname].fields); var filterFields_ = []; var tableFields_ = []; metas.map(f=>{ f.isshow = "T"; if(f.field == "org_code" || f.field == "org_name" || f.field == "price" || f.field == "amt"){ if(me.iscustomer){ f.isfilter = false; f.isshow = "F"; } } else if(f.field == "warehouse_name" || f.field == "warehouse_code"){ if(me.formData.from_warehouse_name){ f.isfilter = false; f.isshow = "F"; } } if (f.isfilter) { if(f.field == "category_name") {//授æƒäº§å“ f.options = me.dataRequestObj.org_product; } if (f.field == "warehouse_name") {//仓库åç§° f.options = me.dataRequestObj.wm_warehouse } filterFields_.push(clone(f)); } else { var filter_f = clone(f); filter_f.isshow = "F"; filterFields_.push(filter_f); } if (f.field == "cpid" || f.field == "is_active") { } else { tableFields_.push(clone(f)); } }) if (!me.selectTabObj.filterFields || (me.selectTabObj.filterFields && me.selectTabObj.filterFields.length == 0)) { me.selectTabObj.filterFields = clone(filterFields_); me.selectTabObj.tableFields = clone(tableFields_); //å—æ®µæ•°ç»„è½¬å—æ®µobj,目的为了ç›é€‰æ—¶èŽ·å–å—æ®µå±žæ€§ me.fieldsToFieldsObj(); //è®¾ç½®å—æ®µäº‹ä»¶ me.tableFieldClick(); } if(me.selectTabObj == "book") { } me.onQueryAfter(); // var tableData_ = clone(me.selectTabObj.tableData); // tableData_.map(stock=>{ // //rowkey // var key_ = stock.warehouse_id + stock.product_code + "_" + stock.batch_no // if (stock.batch_sn) {//有åºåˆ—å· // key_ = stock.warehouse_id + stock.product_code + "_" + stock.batch_no + "_" + stock.batch_sn // } // if (me.filterData[key_]) { // // stock.cssname = "z_notrowclick"; // stock.h_classname = "z_notrowclick"; // } // }) // me.selectTabObj.tableData = clone(tableData_); } if (callback) { callback(); } }); }, onQueryAfter() { var me = this; var tableData_ = clone(me.selectTabObj.tableData); tableData_.map(stock=>{ //rowkey var key_ = stock.warehouse_id + stock.product_code + "_" + stock.batch_no if (stock.batch_sn) {//有åºåˆ—å· key_ = stock.warehouse_id + stock.product_code + "_" + stock.batch_no + "_" + stock.batch_sn } if (me.filterData[key_]) { // stock.cssname = "z_notrowclick"; stock.h_classname = "z_notrowclick"; } }) me.selectTabObj.tableData = clone(tableData_); }, tableFieldClick() { var me = this; var tablefieldClick = {}; //è¡¨æ ¼å—æ®µäº‹ä»¶è®¾ç½® tablefieldClick.input = {}; tablefieldClick.all = {}; this.selectTabObj.tablefieldClick = tablefieldClick[this.activeTabName]; }, // onRowDblClick() { // if (this.isedit) { // this.saveAfter(); // } // }, rowClick(obj) { this.selectTabObj.selectedrow = obj.row; if (this.onRowClick) { this.onRowClick.call(this, obj); return; } }, rowDblclick(obj) { this.selectTabObj.selectedrow = obj.row; if (this.isedit) { this.saveAfter(); } }, } }); }; loadJsCss(function () { initVue(); }); </script> <style> /* 在vue.jsä¸ v-cloak 这个指令是防æ¢é¡µé¢åŠ è½½æ—¶å‡ºçŽ° vuejs çš„å˜é‡å而设计的 */ [v-cloak] { display: none !important; } .el-tabs__nav-scroll { overflow: hidden; position: relative; padding-left: 20px; } .el-table__body tr.z_notrowclick>td{ background-color: #aaa !important; } .el-table__body tr.z_notrowclick>td:hover { cursor: not-allowed; } </style> </head> <body style="margin: 0px;"> <div v-cloak id="vbody"> <div id="page_root"> <div class="popup_topbar"> <span>{{title}}</span> </div> <div> <el-tabs v-model="activeTabName" @tab-click="handleClick"> <el-tab-pane v-for="(tab, k) in tabs" :label="tab.name" :name="tab.code" :key="k"></el-tab-pane> </el-tabs> </div> <div class="topbar-line"> <div class="query-bar"> <h-form-filter v-if="selectTabObj.filterFields" ref="form1" :form-attr="filterAttr" :table-fields="selectTabObj.filterFields" :form-data="selectTabObj.filterObj" :table-field-click="selectTabObj.filterfieldClick" :isdraggableorder="true" v-on:on-query="onQuery" v-on:on-init-query="onInitFilter" v-on:on-edit-query="onEditFilter" v-on:order-fields="orderFilterFields" > </h-form-filter> </div> </div> <div class="h_dialog__body"> <h-table v-if="isRefresh && selectTabObj.tableFields" ref="table1" :table-fields="selectTabObj.tableFields" :table-data="selectTabObj.tableData" :is-edit-table-data="selectTabObj.isEditTableData" :pagesize="selectTabObj.pagesize" :pagenum="selectTabObj.pagenum" :total="selectTabObj.total" :table-height="selectTabObj.tableHeight" :table-field-click="selectTabObj.tablefieldClick" :is-show-index="selectTabObj.isShowIndex" :is-highlight-row="isedit" :tableloading="tableloading" :isdraggableorder="false" :is-pagination="true" :rowkey="rowkey" :lazy="lazy" v-on:get-data="getData" v-on:row-click="rowClick" v-on:row-dblclick="rowDblclick" v-on:order-fields="orderTableFields" > </h-table> </div> <!-- 底部工具æ --> <div class="el-dialog__footer"> <el-button size="small" type="default" @click="closeDialog">å– æ¶ˆ</el-button> <el-button v-if="isedit" size="small" :disabled = "!(selectTabObj.selectedrow && selectTabObj.selectedrow.id)" type="primary" @click="saveAfter">ç¡® 定</el-button> </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>