<!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: "md_org_hospital", title: "授æƒåŒ»é™¢", formAttr: { istitle: false, title: "表å•åç§°", columnnumber: 2, labelwidth: "140px", labelposition: "left",//"left",// right//top size: "mini", border: "10px solid #c6c6c600" }, default_formFields: [ {isshow: "T", field: "authorization_type", name: "授æƒç±»åž‹", type: "select", options:[ {code:"long-term",value:"长期授æƒ"}, {code:"temp-term",value:"临时授æƒ"}, ]}, ], formFields: [], newformData: { //id: uuid_short(), // code: createCode("BA"), create_time: createDatetime(), }, formData: {}, dataRequest: [ { name: "product_group", dataname: "md_product_authorize", // url: "root/data/newEntity", // paramsobj: {dataname: "md_org_data", type_code:"Distributor"}, isnotoption: false, //true:䏿˜¯é€‰é¡¹ code:"id",//是下拉选项时设置 label:"name",//是下拉选项时设置 filter: "", orderby: "order_no" } ], product_group_all: [], product_group_map_all: [], product_group: [], product_group_map: {}, old_org_product: [], //按键æƒé™è®¾ç½® isedit: false,//æäº¤å‰ç¼–辑,ä¿å˜/æäº¤ isrefuseedit: false,//æ‹’ç»åŽç¼–辑,ä¿å˜/冿¬¡æäº¤ isapproval: false,//å®¡æ‰¹ï¼ŒåŒæ„/æ‹’ç»/转办/退回 iscommit: false,//æäº¤æ ‡è®° //å¼¹çª—å‚æ•° popupParames: {}, //å—æ®µè®¾ç½® tablefieldClick: {}, formfieldClick: {}, isConnect : false, connectCode : "", filterList : [], state_code: "", //å…³è”ç»é”€å•†çš„æŽˆæƒåŒ»é™¢å¼€å§‹/æˆªæ¢æ—¥æœŸ connectOpenDate: "", connectEndDate: "", //一级ç»é”€å•†ä¿å˜åŽŸæŽˆæƒæ—¥æœŸèŒƒå›´ï¼Œä»¥é™åˆ¶å˜æ›´èŒƒå›´åªèƒ½æ‰©å¤§ oldOpenDate: null, oldEndDate: null, t_height: null, isAdmin: false, filterH: null, tableFields: [ {isshow: "T", field: "field1", name: "医院编ç ",width:"120"}, {isshow: "T", field: "field2", name: "医院åç§°",width:"120"}, {isshow: "T", field: "field3", name: "医院ç‰çº§",width:"120"}, {isshow: "T", field: "field4", name: "çœä»½"}, {isshow: "T", field: "field5", name: "城市"}, {isshow: "T", field: "field6", name: "区县"}, ], tableData: [], tableHeight: 200, }, created() { this.popupParames = clone(Root.popupParames); this.title = this.popupParames.title || this.popupParames.text if (this.popupParames.data) { this.formData = clone(this.popupParames.data); } if (this.popupParames.delta) { console.log(this.popupParames.delta); this.product_group = clone(this.popupParames.delta.product_group); this.product_group_map = clone(this.popupParames.delta.product_group_map); this.isConnect = clone(this.popupParames.delta.isConnect); this.connectCode = clone(this.popupParames.delta.connectCode); this.state_code = clone(this.popupParames.delta.state_code); this.oldOpenDate = this.formData.begin_date; this.oldEndDate = this.formData.end_date; if(this.popupParames.delta.idList) { this.filterList = clone(this.popupParames.delta.idList); } //Brooke if(this.popupParames.delta.isAdmin) { this.isAdmin = true; } if(this.popupParames.delta.filter) { this.filterH = clone(this.popupParames.delta.filter); console.log(this.filterH); } } if (this.popupParames.sceneCode) { if (this.popupParames.sceneCode == "add") {//新增 if (this.newformData) { let formData_ = clone(this.formData); for (var k in this.newformData) { formData_[k] = this.newformData[k]; } this.formData = formData_; } this.isedit = true; } else if (this.popupParames.sceneCode == "browse") {//åªè¯» this.formAttr.disabled = true; } else if (this.popupParames.sceneCode == "edit") {//编辑 this.isedit = true; } } }, mounted() { var me = this; me.t_height = 352; //é¢„åŠ è½½æ•°æ® if (this.dataRequest && this.dataRequest.length) { var result = {}; this.loadRequestData(this.dataRequest, result, function(data) { me.dataRequestObj = data; //é¢„åŠ è½½æ•°æ®åŽç»™å“ªäº›å—段设置options或formatterjson if (me.dataRequestObj.product_group) { console.log(me.dataRequestObj); me.product_group_all = me.dataRequestObj.product_group; me.product_group_map_all = me.dataRequestObj.map.product_group; if (!me.product_group) { me.product_group = me.dataRequestObj.product_group } if (me.product_group.length) { var product_group_f_ = []; me.product_group_all.map(p=>{ // if (me.product_group_map[p.code]) { product_group_f_.push(p); // } }) me.product_group = clone(product_group_f_); } } me.initData(); }); } else { this.initData(); } // 以æœåŠ¡çš„æ–¹å¼è°ƒç”¨çš„ Loading 需è¦å¼‚æ¥å…³é— this.$nextTick(() => { hideLoading(); //釿–°è®¾ç½®å¼¹çª—宽高 this.$nextTick(function(){ // let w_ = this.$refs.popup_body.offsetWidth + "px"; let w_ = "1000px"; 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(me.popupParames.callback) { let obj = { row: me.formData } me.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) {//查询åŽçš„回调,用于获å–å—æ®µçš„ if (result.meta && result.meta[me.dataname] && result.meta[me.dataname].fields) { var metas = clone(result.meta[me.dataname].fields); var formFields_ = []; console.log(metas); console.log(me.isConnect); metas.map(f=>{ f.isshow = "T"; if (f.field == "category_name") { f.isshow = "F"; f.options = me.product_group } if (f.field == "certificate_material_code" || f.field == "certificate_material_name") { f.isshow = "F"; } formFields_.push(clone(f)); }) var f1_ = {isshow: "T", field: "field_cpx", name: "产å“线", type: "checkboxobj", options: [ {code: "RESTORE", value: "RESTORE"}, {code: "APERTO", value: "APERTO"}, ], colspan: 4, required: true}; var f2_ = {isshow: "T", field: "field_cp", name: "产å“", type: "checkboxobj", options: [ {code: "P001-001", value: "ç´«æ‰é†‡é‡Šæ”¾å† 脉çƒå›Šæ‰©å¼ 导管"}, {code: "P002-001", value: "ç´«æ‰é†‡é‡Šæ”¾é«˜åŽ‹åˆ†æµçƒå›Šæ‰©å¼ 导管"}, ], colspan: 4, required: true}; formFields_.push(clone(f1_)); formFields_.push(clone(f2_)); var ftcompany_ = {isshow: "T", field: "company_name", name: "å…¬å¸", type: "select", options:[ {code: "凯德诺", value: "凯德诺"}, ]}; var ftbu_ = {isshow: "T", field: "bu", name: "BU", type: "select",options:[ {code: "å† è„‰", value: "å† è„‰"}, ]}; formFields_.unshift(ftbu_); formFields_.unshift(ftcompany_); me.$set(me.formData, "company_name", "凯德诺 ");//å† è„‰ me.$set(me.formData, "bu", "å† è„‰");//å† è„‰ if (me.rowData.md_org_hospital_category) { me.old_org_product = clone(me.rowData.md_org_hospital_category); var md_org_hospital_category_ = []; me.rowData.md_org_hospital_category.map(p=>{ md_org_hospital_category_.push(p.category_id); }) me.$set(me.formData, "category_name", md_org_hospital_category_); } else { me.$set(me.formData, "category_name", []); } console.log(me.formData); if (!me.formFields || (me.formFields && me.formFields.length == 0)) { // me.formFields = clone(me.default_formFields); me.formFields = clone(formFields_); //å—æ®µæ•°ç»„è½¬å—æ®µobj,目的为了ç›é€‰æ—¶èŽ·å–å—æ®µå±žæ€§ me.fieldsToFieldsObj(); //è®¾ç½®å—æ®µäº‹ä»¶ me.tableFieldClick(); } } }) }, tableFieldClick() { var me = this; //è¡¨æ ¼å—æ®µäº‹ä»¶è®¾ç½® this.tablefieldClick = { }; //表å•å—æ®µäº‹ä»¶è®¾ç½® this.formfieldClick = { name: { popup: { onclick: function(obj) {//弹窗点击事件 if(me.isConnect) { me.openConnectHospital(me.connectCode); } else { me.openHospitalList(); } } }, }, begin_date: {//开始日期 val: { onchange: function(obj) { //已开户ç»é”€å•†â€”管ç†å‘˜ä¿®æ”¹ï¼ˆå˜æ›´ï¼‰â€”授æƒåŒ»é™¢çš„æŽˆæƒæ—¶é—´èŒƒå›´åªèƒ½æ‰©å¤§ä¸èƒ½ç¼©å° if(me.oldOpenDate && obj.data.begin_date && me.isAdmin && (me.state_code == 'Open' || me.state_code == 'open')) { if(new Date(obj.data.begin_date.replace(/-/g, '/')) > new Date (me.oldOpenDate)) { Root.message({ type: 'warning', message: '开始日期ä¸èƒ½å»¶åŽ' }); obj.data.begin_date = me.oldOpenDate; } } //å¼€å§‹æ—¥æœŸè¦æ—©äºŽæˆªæ¢æ—¥æœŸ if (obj.data.begin_date && obj.data.end_date) { if (new Date(obj.data.begin_date) > new Date(obj.data.end_date)) { Root.message({ type: 'warning', message: '开始日期ä¸èƒ½æ™šäºŽæˆªæ¢æ—¥æœŸ' }); obj.data.begin_date = null; } } //å…³è”ç»é”€å•†æŽˆæƒæ—¥æœŸé™åˆ¶ if (me.connectOpenDate && obj.data.begin_date) { if (new Date(obj.data.begin_date.replace(/-/g, '/')) < new Date(me.connectOpenDate)) { Root.message({ type: 'warning', message: '开始日期ä¸èƒ½æ—©äºŽæ‰€å…³è”的一级ç»é”€å•†å¼€å§‹æ—¥æœŸ' }); obj.data.begin_date = me.connectOpenDate; } } } } }, end_date: {//æˆªæ¢æ—¥æœŸ val: { onchange: function(obj) { //已开户ç»é”€å•†â€”管ç†å‘˜ä¿®æ”¹ï¼ˆå˜æ›´ï¼‰â€”授æƒåŒ»é™¢çš„æŽˆæƒæ—¶é—´èŒƒå›´åªèƒ½æ‰©å¤§ä¸èƒ½ç¼©å° if(me.oldEndDate && obj.data.end_date && me.isAdmin && (me.state_code == 'Open' || me.state_code == 'open')) { if(new Date(obj.data.end_date.replace(/-/g, '/')) < new Date (me.oldEndDate)) { Root.message({ type: 'warning', message: 'æˆªæ¢æ—¥æœŸä¸èƒ½æå‰' }); obj.data.end_date = me.oldEndDate; } } //æˆªæ¢æ—¥æœŸè¦æ™šäºŽå¼€å§‹æ—¥æœŸ if (obj.data.begin_date && obj.data.end_date) { if (new Date(obj.data.begin_date) > new Date(obj.data.end_date)) { Root.message({ type: 'warning', message: 'æˆªæ¢æ—¥æœŸä¸èƒ½æ—©äºŽå¼€å§‹æ—¥æœŸ' }); obj.data.end_date = null; } } //å…³è”ç»é”€å•†æŽˆæƒæ—¥æœŸé™åˆ¶ if (me.connectEndDate && obj.data.end_date) { if (new Date(obj.data.end_date.replace(/-/g, '/')) > new Date(me.connectEndDate)) { Root.message({ type: 'warning', message: 'æˆªæ¢æ—¥æœŸä¸èƒ½æ™šäºŽæ‰€å…³è”的一级ç»é”€å•†æˆªæ¢æ—¥æœŸ' }); obj.data.end_date = me.connectEndDate; } } } } }, }; }, openConnectHospital(code) { var me = this; var filter_ = "org_code ='" + code + "'"; if(me.filterH) { filter_ += "and " + me.filterH; } console.log(me.filterH); var config = { totab: false, //true: 以Tabå¯¼èˆªçš„æ–¹å¼æ‰“å¼€ width: "950px", height: "500px", icon: "icon-product", text: "å…³è”æŽˆæƒåŒ»é™¢é€‰æ‹©", id: "connect_org_hospital_list" + "add",//totab: trueæ—¶éœ€è®¾ç½®ï¼Œç”¨äºŽåˆ¤æ–æ˜¯å¦å·²æ‰“å¼€æ¤é¡µé¢ url: "module/md/page/customer/page/popup/connect_org_hospital_list.html", filter: filter_, sceneCode: "add",//"edit", //"add"//"browse", callback: function(obj, callback) { var formData = clone(me.formData); console.log(obj); formData.category_name = []; formData.category_id = []; formData.authorization_type = clone(obj.row.authorization_type); formData.begin_date = me.connectOpenDate = clone(obj.row.begin_date); formData.end_date = me.connectEndDate = clone(obj.row.end_date); formData.hospital_id = obj.row.hospital_id; formData.code = obj.row.code; formData.name = obj.row.name; formData.province = obj.row.province; formData.city = obj.row.city; formData.county = obj.row.county; formData.level = obj.row.level; formData.grade = obj.row.grade; let param = { dataname: "md_org_hospital", id: obj.row.id, } Server.call("root/data/getEntity", param, function(result) { if(result && result.data && result.data.md_org_hospital_category) { // console.log(((result.data.md_org_hospital_category).map(e => e.category_id))); var selections = (result.data.md_org_hospital_category).map(e => e.category_id); var formFields = clone(me.formFields); var selection_limit; formFields.map(f => { if(f.field == "category_name") { selection_limit = clone(f.options.map(o => o.code)); console.log(selection_limit); } }) // formData.category_name = clone((result.data.md_org_hospital_category).map(e => e.category_id)); // formData.category_name.map(s => { // if(selection_limit.includes(s)) { // var option = { // code: s, // value: me.product_group_map[s] // } // options_.push(s); // } // }) let intersection = selection_limit.filter(function (val) { return (selections.indexOf(val) > -1) }); var options_ = []; intersection.map(o => { var option = { code: o, value: me.product_group_map[o], } options_.push(option); }) formFields.map(f => { if(f.field == "category_name") { f.options = options_; console.log(f.options); if(f.options.length < 1) { Root.message({ type: 'warning', message: 'æ— å¯é€‰æŽˆæƒäº§å“ï¼Œè¯·æ›´æ¢æŽˆæƒåŒ»é™¢æˆ–å…³è”的开户ç»é”€å•†' }); } } }) } me.formFields = clone(formFields); me.formData = clone(formData); if (callback) { callback(); } }) } }; me.doPopupByPublic(config); }, openHospitalList() { var me = this; if(me.filterH) { var filter_ = me.filterH; } console.log(me.filterH); var config = { totab: false, //true: 以Tabå¯¼èˆªçš„æ–¹å¼æ‰“å¼€ width: "950px", height: "500px", icon: "icon-product", text: "医院选择", filter: filter_, id: "terminal_list",//totab: trueæ—¶éœ€è®¾ç½®ï¼Œç”¨äºŽåˆ¤æ–æ˜¯å¦å·²æ‰“å¼€æ¤é¡µé¢ // url: "module/md/page/customer/page/popup/terminal_list.html", url: "module/md/page/customer/page/popup/hospital_grant_list.html", data: {}, delta: {}, // filter: "state_code!='UnderApproval'", sceneCode: "add",//"edit", //"add"//"browse", callback: function(obj, callback) { var formData = clone(me.formData); // if(formData.hospital_id != obj.row.id){ formData.authorization_type = ''; formData.category_name = []; formData.begin_date = null; formData.end_date = null; // } formData.hospital_id = obj.row.id; formData.code = obj.row.code; formData.name = obj.row.name; formData.province = obj.row.province; formData.city = obj.row.city; formData.county = obj.row.county; formData.level = obj.row.level; formData.grade = obj.row.grade; me.formData = formData; if (callback) { callback(); } } }; me.doPopupByPublic(config); }, saveRowTable() { var me = this; me.loading_save = true; var operator_ = "saveEntity";//ä¿å˜ var bo = me.$refs.form1.checkForm(); if(!bo) { Root.message({ type: 'warning', message: '请填写必填项' }); me.loading_save = false; return; } if(me.iscommit) { operator_ = "commit";//æäº¤ } var entity_ = me.formData; var entity = {}; var product_category_ = []; for (var r in entity_) { if (r == "category_name") { product_category_ = entity_[r]; } else if (entity_[r] || entity_[r] == "" || entity_[r] == false || entity_[r] == 0) { entity[r] = entity_[r]; } } //Brooke—ä¿å˜æ—¶ä¼ sceneCode if(me.popupParames.sceneCode == "add") { entity.operate_type = 'insert'; }else if (me.popupParames.sceneCode == "edit") { entity.operate_type = 'update'; } //å表授æƒäº§å“ var product_group_ = []; product_category_.map(pcid=>{ var pcobj_name = me.product_group_map[pcid]; var row_pcobj = { category_id: pcid, category_name: pcobj_name } product_group_.push(row_pcobj); }) me.old_org_product.map(old_p=>{ var del_row_pcobj = { id: old_p.id, _operator: "delete" } product_group_.push(del_row_pcobj); }) let param = { dataname: this.dataname, data: {}, } param.data[this.dataname] = entity; param.data["md_org_hospital_category"] = product_group_; console.log(param); //Brooke - admin修改,弹出æç¤ºåŠä¿®æ”¹æŽ¥å£ if(me.isAdmin && (me.state_code == "Open" || me.state_code == "open") ) { Root.confirm('将修改客户授æƒä¿¡æ¯ï¼Œå¹¶æ›´æ–°æŽˆæƒä¹¦', '修改æç¤º', { confirmButtonText: '确定', cancelButtonText: 'å–æ¶ˆ', type: 'warning' }).then(() => { me.adminSaveRowTable(param, me.popupParames.sceneCode);//ç‰å¾…接å£å®Œå–„ // console.log("test admin") }).catch(() => { Root.message({ type: 'info', message: '已喿¶ˆä¿®æ”¹' }); me.loading_save = false; }); } else { Server.call("root/data/" + operator_, param, function(result) { me.loading_save = false; console.log(result); if (result.success) { if(me.iscommit){ me.iscommit = false; Root.message({ type: 'success', message: 'æäº¤æˆåŠŸ' }); me.saveAfter(); } else { Root.message({ type: 'success', message: 'ä¿å˜æˆåŠŸ' }); me.saveAfter(); } } }, function(error) { me.loading_save = false; Root.message({ type: 'error', message: 'ä¿å˜å¤±è´¥' }); }); // Root.confirm('将修改客户授æƒä¿¡æ¯', '修改æç¤º', { // confirmButtonText: '确定', // cancelButtonText: 'å–æ¶ˆ', // type: 'warning' // }).then(() => { // Server.call("root/data/" + operator_, param, function(result) { // me.loading_save = false; // console.log(result); // if (result.success) { // if(me.iscommit){ // me.iscommit = false; // Root.message({ // type: 'success', // message: 'æäº¤æˆåŠŸ' // }); // me.saveAfter(); // } // else { // Root.message({ // type: 'success', // message: 'ä¿å˜æˆåŠŸ' // }); // me.saveAfter(); // } // } // }, function(error) { // me.loading_save = false; // Root.message({ // type: 'error', // message: 'ä¿å˜å¤±è´¥' // }); // }); // }).catch(() => { // Root.message({ // type: 'info', // message: '已喿¶ˆä¿®æ”¹' // }); // me.loading_save = false; // }); } }, //Brooke,ç‰å¾…接å£å®Œå–„ adminSaveRowTable(param, sceneCode) { var me = this; let param_admin = clone(param); if(sceneCode == "add") { param_admin.data[me.dataname].operate_type = 'insert'; }else if (sceneCode == "edit") { param_admin.data[me.dataname].operate_type = 'update'; } Server.call("root/data/saveEntity", param, function(result) { if (result.success) { // console.log("admin saved!"); //ç‰å¾…æŽ¥å£æŽ¥å…¥ Server.call("root/orgBizLogic/authorizationBook", param_admin, function(result) { if(result.success) { me.loading_save = false; Root.message({ type: 'success', message: '客户授æƒä¿¡æ¯åŠæŽˆæƒä¹¦æ›´æ–°æˆåŠŸ' }); me.saveAfter(); } }, function(error) { me.loading_save = false; Root.message({ type: 'error', message: '授æƒä¹¦æ›´æ–°å¤±è´¥' }); }); } }, function(error) { me.loading_save = false; Root.message({ type: 'error', message: '客户授æƒä¿¡æ¯ä¿å˜å¤±è´¥' }); }); }, } }); }; 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 class="popup_el-dialog__header"> <div class="dialog-title"> <i class="iconfont icon-customermanagement"></i> <span> {{title}}</span> </div> </div> <div :style="{height: t_height +'px', 'overflow-y': 'auto'}"> <!-- <div style="overflow-y: auto;"> --> <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 style="text-align: right; width: 100%;"> <el-button @click="" :icon="buttonsconfig.add.icon">{{buttonsconfig.add.name}}</el-button> </div> <h-table v-if="tableFields" ref="table4" :table-fields="tableFields" :table-data="tableData" :table-height="tableHeight" :is-pagination="false" > </h-table> </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" :loading="loading_save" @click="saveRowTable">ä¿ å˜</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>