<!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: "so_order_detail", title: "订å•çŽ°å®žä¹°èµ ä¿¡æ¯", formAttr: { istitle: false, title: "çŽ°å®žä¹°èµ ä¿¡æ¯", columnnumber: 1, labelwidth: "100px", labelposition: "top", //"left", size: "medium", border: "10px solid #c6c6c600" }, formFields: [], options_md_geo_province: [], newformData: {}, formData: {}, //é¢„åŠ è½½è®¾ç½® dataRequest: [ ], dataRequestObj: {}, //按键æƒé™è®¾ç½® isedit: false,//æäº¤å‰ç¼–辑,ä¿å˜/æäº¤ isrefuseedit: false,//æ‹’ç»åŽç¼–辑,ä¿å˜/冿¬¡æäº¤ isapproval: false,//å®¡æ‰¹ï¼ŒåŒæ„/æ‹’ç»/转办/退回 iscommit: false,//æäº¤æ ‡è®° //å¼¹çª—å‚æ•° popupParames: {}, //å—æ®µè®¾ç½® tablefieldClick: {}, formfieldClick: {}, pageHeight: 0, company_id: "", bu_id: "", customer_id: "", }, created() { this.popupParames = clone(Root.popupParames); this.title = this.popupParames.title || this.popupParames.text; // this.pageHeight = this.popupParames.height.replace("px", "") * 1 - 92 this.pageHeight = document.documentElement.clientHeight * 1 - 52 ; if (this.popupParames.data) { this.formData = clone(this.popupParames.data); } if (this.popupParames.delta) { this.company_id = clone(this.popupParames.delta.company_id); this.bu_id = clone(this.popupParames.delta.bu_id); this.customer_id = clone(this.popupParames.delta.customer_id); } 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_); this.isedit = true; } else if (this.popupParames.sceneCode == "browse") {//åªè¯» this.formAttr.disabled = true; } else if (this.popupParames.sceneCode == "edit") {//编辑 this.isedit = true; } else if (this.popupParames.sceneCode == "approval") {//审批 this.formAttr.disabled = true; this.isapproval = true; } else if (this.popupParames.sceneCode == "refuseedit") {//æ‹’ç»åŽçš„编辑 this.isrefuseedit = true; } } }, mounted() { var me = this; //é¢„åŠ è½½æ•°æ® if (this.dataRequest && this.dataRequest.length) { var result = {}; this.loadRequestData(this.dataRequest, result, function(data) { me.dataRequestObj = data; // é¢„åŠ è½½æ•°æ®åŽç»™å“ªäº›å—段设置options或formatterjson if (me.dataRequestObj.newEntity) { var formData = clone(me.dataRequestObj.newEntity.data[me.dataname]); // formData.product_category_name = []; if (me.newformData) { let formData_ = clone(formData); for (var k in me.newformData) { if (!formData_[k]) { formData_[k] = me.newformData[k]; } } me.formData = formData_; } } me.initData(); }); } else { this.initData(); } // 以æœåŠ¡çš„æ–¹å¼è°ƒç”¨çš„ Loading 需è¦å¼‚æ¥å…³é— this.$nextTick(() => { hideLoading(); //釿–°è®¾ç½®å¼¹çª—宽高 this.$nextTick(function(){ //let w_ = this.$refs.popup_body.offsetWidth + "px"; // let w_ = "900px"; // let h_ = this.$refs.popup_body.offsetHeight + "px"; // Root.setPopupWH(w_, h_); }) }); }, 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) {//查询åŽçš„回调,用于获å–å—æ®µçš„ console.log(result) if (result.meta) { var metas = clone(result.meta[me.dataname].fields); var formFields_ = []; metas.map(f=>{ f.isshow = "F"; if (f.field == "record_no" || f.field == "product_name") { f.inputtype = "popup" } if (f.field == "record_id" || f.field == "record_no" || f.field == "product_id" || f.field == "product_code" || f.field == "product_name" || f.field == "spec" ) { f.isshow = "T"; } formFields_.push(clone(f)); }) if (!me.formFields || (me.formFields && me.formFields.length == 0)) { me.formFields = clone(formFields_); } } me.tableFieldClick(); }) }, tableFieldClick() { var me = this; //è¡¨æ ¼å—æ®µäº‹ä»¶è®¾ç½® this.tablefieldClick = { }; //表å•å—æ®µäº‹ä»¶è®¾ç½® this.formfieldClick = { record_no: { popup: { onclick: function(obj) { // 获å–çŽ°å®žä¹°èµ å¤‡æ¡ˆ me.openRealityGiftRecordByOrgBU("add", function(popupobj){ var formData_ = clone(me.formData); formData_ = { product_name: "", product_code: "", product_id: "", sku_id: "", spec: "", unit: "", type_code: "realitygift", type_name: "çŽ°å®žä¹°èµ ", record_id: popupobj.row.id, record_no: popupobj.row.record_no, qty: 1, price_before_tax: 0, } me.formData = clone(formData_) }); } } }, product_name: { popup: { onclick: function(obj) { // èŽ·å–æ»¡è¶³é€‰æ‹©å¤‡æ¡ˆçš„SKU me.openProductList("add", function(popupobj){ // qtyä¹°èµ , amt折扣 var formData_ = clone(me.formData); formData_.product_name = popupobj.row.product_name formData_.product_code = popupobj.row.product_code formData_.product_id = popupobj.row.product_id formData_.sku_id = popupobj.row.id formData_.spec = popupobj.row.spec formData_.unit = popupobj.row.unit me.formData = clone(formData_) }); } } }, }; }, openRealityGiftRecordByOrgBU(sceneCode, callback) { var me = this; var config = { totab: false, //true: 以Tabå¯¼èˆªçš„æ–¹å¼æ‰“å¼€ width: "800px", height: "520px", icon: "icon-product", text: "é€‰æ‹©çŽ°å®žä¹°èµ å¤‡æ¡ˆ", id: "popup_record",//totab: trueæ—¶éœ€è®¾ç½®ï¼Œç”¨äºŽåˆ¤æ–æ˜¯å¦å·²æ‰“å¼€æ¤é¡µé¢ url: "module/order/page/popup/popup_record.html", data: {}, delta: "", filter: "company_id='"+ me.company_id + "' and bu_id='" + me.bu_id + "'", sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse", callback: function(popupobj, popupcallback) { callback(popupobj) if (popupcallback) { popupcallback(); } } }; me.doPopupByPublic(config); }, openProductList(sceneCode, callback) { var me = this; var data_ = {}; var text_ = "产å“"; var config = { totab: false, //true: 以Tabå¯¼èˆªçš„æ–¹å¼æ‰“å¼€ width: "1100px", height: "520px", icon: "icon-product", text: text_ + "选择", id: "popup_rebatedetail",//totab: trueæ—¶éœ€è®¾ç½®ï¼Œç”¨äºŽåˆ¤æ–æ˜¯å¦å·²æ‰“å¼€æ¤é¡µé¢ // url: "module/performance/page/popup/page/popup_rebatedetail.html", url: "module/md/page/popup/page/popup_product_sku.html", dataname: "", data: data_, delta: {}, filter: "EXISTS ( SELECT * FROM md_bu_product where md_prod_sku.product_id = product_id and bu_id='" + me.bu_id + "')", sceneCode: sceneCode,//"refuseedit",//"approval", //"add"//"browse", callback: function(popupobj, popupcallback) { callback(popupobj) if (popupcallback) { popupcallback(); } } }; me.doPopupByPublic(config); }, saveRowTable() { //å¿…å¡«é¡¹æ ¡éªŒ var bo1 = this.$refs.form1.checkForm(); if(!bo1){ Root.message({ type: 'error', message: '请填写必填项' }); return; } this.saveAfter() } } }); }; 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 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="{'overflow-y': 'auto', height: pageHeight + 'px'}"> <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> <div class="el-dialog__footer"> <el-button size="small" type="default" @click="closeDialog">å– æ¶ˆ</el-button> <el-button size="small" v-if="isedit || isrefuseedit" type="primary" @click="saveRowTable":icon="buttonsconfig.save.icon">ç¡® 定</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>