import { LightningElement,wire,api,track } from 'lwc'; import { CurrentPageReference } from 'lightning/navigation'; import { ShowToastEvent } from 'lightning/platformShowToastEvent'; import { NavigationMixin } from 'lightning/navigation'; import initPage from '@salesforce/apex/LexConsumableController.init'; import categoryAllload from '@salesforce/apex/LexConsumableController.categoryAllload'; import categoryload from '@salesforce/apex/LexConsumableController.categoryload'; import searchConsumableorderdetails from '@salesforce/apex/LexConsumableController.searchConsumableorderdetails'; import searchorderdetails from '@salesforce/apex/LexConsumableController.searchorderdetails'; import save from '@salesforce/apex/LexConsumableController.save'; import ordrCopy from '@salesforce/apex/LexConsumableController.ordrCopy'; import setEditAble from '@salesforce/apex/LexConsumableController.setEditAble'; import backOrder from '@salesforce/apex/LexConsumableController.backOrder'; import delConsumable from '@salesforce/apex/LexConsumableController.delConsumable'; import sorder from '@salesforce/apex/LexConsumableController.sorder'; import filesUpload from '@salesforce/apex/LexConsumableController.filesUpload'; import initHospital from '@salesforce/apex/LexSearchHospitalController.init'; import searchHospital from '@salesforce/apex/LexSearchHospitalController.searchHospital'; import initContract from '@salesforce/apex/LexSearchContractController.init'; import searchContract from '@salesforce/apex/LexSearchContractController.searchContract'; import deleteAtt from '@salesforce/apex/LexConsumableController.deleteAtt'; //table css import { loadStyle } from "lightning/platformResourceLoader"; import WrappedHeaderTable from "@salesforce/resourceUrl/lexdatatable"; export default class LexConsumable extends NavigationMixin(LightningElement) { //页面基础数据 @track editAble; @track pageType; @track esetId; @track keyWords; @track coc; @track cocId; @track userWorkLocation; @track accountName; @track accountid; @track specialCampaign = false; @track dealerProductId = []; @track category1; @track category3 = ''; @track category4 = ''; @track category5 = ''; @track category_Goods; @track category3Option = []; @track category4Option = []; @track category5Option = []; @track consumableorderdetailsRecordsview = []; @track currentRecord = [];//分页 @track selectRows = []; @track attachmentRecoeds = []; @track contactDealer = []; @track proLimitAndDate = []; @track agencyProType; @track agencyProType1; @track OSHFLG = false; @track bargainPrice; @track showOrderDate = false; @track showAttUploadDate = false; @track edoffersPrice = false; @track editDelCommitBtnDisabled = false; @track showEditBtn = false; @track disabledEditBtn = false; @track showPrintSheetBtn = false; @track showUploadSheetBtn = false; @track disabledUploadSheetBtn = false; @track showSubOrderbtn = false; @track disabledSubOrderbtn = false; @track showSaveOrderbtn1 = false; @track showSaveOrderbtn2 = false; @track showDeleteBtn = false; @track disabledDeleteBtn = false; @track showOfferPriceInputBtn = false; @track disabledOfferPriceInputBtn = false; @track showReapplyBtn = false; @track showHospital = false; @track showPage = false; @track cansee = false; @track showSpinner = true; @track showPopSpinner = false; stylesLoaded = false; //是否一直显示提示 @track isNoteStay = true; //排序相关 @track sortDirection = 'asc'; @track sortedBy; //分页 @track currentPage = 1; @track pageSize = 10; // @track totalPage = 0; @track pageSizeOptions = [10, 25, 50, 100]; @track recordStart = 0; @track recordEnd = 0; //报错提醒 // @track hasError = false; @track errorMsgs = []; // @track hasWarning = false; @track warningMsgs = []; //附件上传 @track showAttPop = false; @track filesUploaded = []; @track fileName; file; fileContents; fileReader; content; //医院搜索 @track showAttHosPop = false; @track hospitalList = []; @track searchNameHos; @track chooseHospital; @track chooseHospitalId; @track hospitalId; @track hospitalName; @track tempidHp; @track hosCols = [ // {label:'医院名称',fieldName:'Name',type:'button',typeAttributes:{label:{fieldName:'Name'},variant:'base'}}, {label:'',type:'button',typeAttributes:{label:'选择'},initialWidth:90,hideDefaultActions: true,wrapText:true}, {label:'医院名称',fieldName:'Name',initialWidth:380,wrapText:true,hideDefaultActions: true}, {label:'省份',fieldName:'StateMaster',initialWidth:80,hideDefaultActions: true,wrapText:true}, {label:'地址',fieldName:'Address__c',hideDefaultActions: true,wrapText:true} ]; //合同搜索 @track contractLabel; @track showConPop = false; @track contractList = []; @track searchNameCon; @track chooseContract; @track chooseContractId; @track contractId; @track contractName; @track tempidPp; @track conCols = [ {label:'',type:'button',typeAttributes:{label:'选择'},initialWidth:90,hideDefaultActions: true,wrapText:true}, {label:'合同名称',fieldName:'Name',wrapText:true,hideDefaultActions: true}, {label:'省份',fieldName:'StateMaster',initialWidth:80,hideDefaultActions: true,wrapText:true}, {label:'申请销售课',fieldName:'Sales_Section__c',initialWidth:160,hideDefaultActions: true,wrapText:true}, {label:'允许报价期间(开始日)',fieldName:'Contract_Decide_Start_Date__c',initialWidth:175,hideDefaultActions: true,wrapText:true}, {label:'允许报价期间(结束日)',fieldName:'Contract_Decide_End_Date__c',initialWidth:175,hideDefaultActions: true,wrapText:true} ]; //消耗品数据col get cols(){ var cols = []; cols.push({label:'消耗品名称',fieldName:'prodName',wrapText:true,hideDefaultActions: true,sortable: true}); cols.push({label:'规格',fieldName:'packing_list',wrapText:true,hideDefaultActions: true,initialWidth:50,cellAttributes: { alignment: "right" }}); cols.push({label:'CFDA状态',fieldName:'prodSFDAStatus',wrapText:true,hideDefaultActions: true,initialWidth:97}); cols.push({label:'注册证编码号',fieldName:'approbation_No',wrapText:true,hideDefaultActions: true,initialWidth:120}); cols.push({label:'注册证效期',fieldName:'expiration_Date',wrapText:true,hideDefaultActions: true,initialWidth:105}); cols.push({label:'第3分类',fieldName:'prodCategory3',wrapText:true,hideDefaultActions: true,initialWidth:78,sortable: true}); cols.push({label:'第4分类',fieldName:'prodCategory4',wrapText:true,hideDefaultActions: true,initialWidth:107,sortable: true}); cols.push({label:'第5分类',fieldName:'prodCategory5',wrapText:true,hideDefaultActions: true,initialWidth:80,sortable: true}); if(this.cansee){ cols.push({label:'标准单价',type:'number',typeAttributes:{minimumFractionDigits: 2},fieldName:'prodIntraTradeList',hideDefaultActions: true,initialWidth:80}); } if(this.editAble){ cols.push( {label:'采购数量', type: "customTableInput",typeAttributes: { recordId: { fieldName: "recordId" }, inputValue: { fieldName: "consumableCount" }, upperLimit: { fieldName: "upperlimit" }, lowerLimit: { fieldName: "lowerlimit" }, allnumber: { fieldName: "allnumber" }, valueType: 'Number' }, hideDefaultActions: true,initialWidth:80}); }else{ cols.push({label:'采购数量',fieldName:'consumableCount',hideDefaultActions: true,initialWidth:80,cellAttributes: { alignment: "right" }}); } cols.push({label:'在库数下限',fieldName:'lowerlimit',hideDefaultActions: true,initialWidth:100,cellAttributes: { alignment: "right" }}); cols.push({label:'在库数上限',fieldName:'upperlimit',hideDefaultActions: true,initialWidth:100,cellAttributes: { alignment: "right" }}); // cols.push({label:'有效期库存(盒)',fieldName:'allnumber',hideDefaultActions: true,initialWidth:105,sortable: true}); cols.push( {label:'有效期库存(盒)', type: "customInventoryColor", typeAttributes: { value: { fieldName: "allnumber" }, upperlimit: { fieldName: "upperlimit" }, lowerlimit: { fieldName: "lowerlimit" }, boxPrice: '盒' }, hideDefaultActions: true,initialWidth:126}); cols.push({label:'有效期库存(个)',fieldName:'allnumber_piece',hideDefaultActions: true,initialWidth:126,cellAttributes: { alignment: "right" }}); return cols; } //附件cols @track attCols = [ {label:'标题',fieldName:'attUrl',type:'url',typeAttributes:{label:{fieldName:'fileName'},target: "_blank"},hideDefaultActions: true}, {label:'创建人',fieldName:'ownerUrl',type:'url',typeAttributes:{label:{fieldName:'ownerName'},target: "_blank"},hideDefaultActions: true}, {label:'上传日期',fieldName:'updateDate',hideDefaultActions: true}, {label:'',type:'tableCellIcon',typeAttributes:{iconName:'utility:delete',recordId:{fieldName : 'recordId'}},initialWidth:50,hideDefaultActions: true} ]; //取得所有被勾选的产品id getAllChecked(){ this.selectRows = []; for(var i in this.currentRecord){ if(this.currentRecord[i].check){ this.selectRows.push(this.currentRecord[i].recordId); } } } //勾选操作 checkRows(event){ this.selectRows = []; const selectedRows = event.detail.selectedRows; for(var i in this.consumableorderdetailsRecordsview){ var count = 0; for(var j in selectedRows){ if(this.consumableorderdetailsRecordsview[i].recordId == selectedRows[j].recordId){ count++ console.log("checkId:"+selectedRows[j].recordId+'---'+this.consumableorderdetailsRecordsview[i].prodName); } } if(count == 0){ this.consumableorderdetailsRecordsview[i].check = false; }else{ this.consumableorderdetailsRecordsview[i].check = true; this.selectRows.push(this.consumableorderdetailsRecordsview[i].recordId); } } for(var i in this.selectRows){ console.log("checkId1:"+this.selectRows[i]); for(var i in this.currentRecord){ if(this.currentRecord[i].recordId == this.selectRows[i]){ console.log("currentRecord:"+this.selectRows[i]); } } } } //采购数量获取 conCountChange(event){ var recordId = event.detail.data.recordId; var conCount = event.detail.data.value; console.log('countChange:'+recordId+'---'+conCount); for(var i in this.consumableorderdetailsRecordsview){ if(this.consumableorderdetailsRecordsview[i].recordId == recordId){ this.consumableorderdetailsRecordsview[i].esd.Consumable_count__c = conCount; this.consumableorderdetailsRecordsview[i].consumableCount = conCount; if(conCount != null && conCount !=0 && conCount!=''){ this.consumableorderdetailsRecordsview[i].check = true; }else{ this.consumableorderdetailsRecordsview[i].check = false; } } } this.getAllChecked(); for(var i in this.currentRecord){ if(this.currentRecord[i].recordId == recordId){ console.log("currentRecord1:"+this.currentRecord[i].esd.Consumable_count__c); } } } //采购数量失焦 conCountBlur(event){ var conCount = event.detail.data.value; var allnumber = event.detail.data.allnumber; var upperLimit = event.detail.data.upperLimit; var lowerLimit = event.detail.data.lowerLimit; console.log('limit:'+conCount+'---'+ allnumber+'---'+lowerLimit+'---'+allnumber); if(upperLimit != null && lowerLimit != null && conCount != null && allnumber != null){ if(parseInt(allnumber) + parseInt(conCount) > upperLimit){ // window.alert("该产品订购数量超出库存上限!"); this.showMyToast('该产品订购数量超出库存上限!','','error'); } if(parseInt(allnumber) + parseInt(conCount) < lowerLimit){ // window.alert("该产品订购数量低于库存下限!"); this.showMyToast('该产品订购数量低于库存下限!','','error'); } } } @wire(CurrentPageReference) getStateParameters(currentPageReference) { console.log('CurrentPageReference'); if (currentPageReference) { this.pageType = currentPageReference.state?.type; this.esetId = currentPageReference.state?.ESetid; this.keyWords = currentPageReference.state?.KeyWords; console.log('type:'+this.pageType); console.log('esetId:'+this.esetId); console.log('keyWords:'+this.keyWords); } } renderedCallback(){ if (!this.stylesLoaded) { Promise.all([loadStyle(this, WrappedHeaderTable)]) .then(() => { console.log("Custom styles loaded"); this.stylesLoaded = true; }) .catch((error) => { console.error("Error loading custom styles"); }); } } //页面初始化 connectedCallback(){ this.showSpinner = true; initPage({type:this.pageType, esetId:this.esetId, keywordStr:this.keyWords}) .then(result=>{ this.isNoteStay = result.isNoteStay; if(result.result == 'Success'){ this.editAble = result.editAble; this.edoffersPrice = result.edoffersPrice; this.cansee = result.cansee; this.editDelCommitBtnDisabled = result.editDelCommitBtnDisabled; this.category3Option = result.category3Option; this.category4Option = result.category4Option; this.category5Option = result.category5Option; this.agencyProType = result.agencyProType; this.agencyProType1 = result.agencyProType1; this.OSHFLG = result.OSHFLG; this.hospitalName = result.hospitalName; this.contractName = result.contractName; this.contractLabel = '经销商有效合同'; this.consumableorderdetailsRecordsview = result.consumableorderdetailsRecordsview; this.currentPage = 1; this.showCurrentReocrd(); this.getAllChecked(); this.attachmentRecoeds = result.attachmentRecoeds; console.log("attSize:"+this.attachmentRecoeds.length); for(var i in this.attachmentRecoeds){ this.attachmentRecoeds[i]['recordId'] = this.attachmentRecoeds[i].Concc.Id; this.attachmentRecoeds[i]['documentId'] = this.attachmentRecoeds[i].Concc.ContentDocumentId; this.attachmentRecoeds[i]['fileFullName'] = this.attachmentRecoeds[i].Concc.Title; var contractionName = this.attachmentRecoeds[i].Concc.Title; // var contractionName = '长文件长文件长文件长文件'; if(contractionName.length > 25){ contractionName = contractionName.substr(0,21) + "..."; } this.attachmentRecoeds[i]['fileName'] = contractionName; this.attachmentRecoeds[i]['ownerName'] = this.attachmentRecoeds[i].Concc.Owner.Name; this.attachmentRecoeds[i]['downloadUrl'] = '/sfc/servlet.shepherd/document/download/'+this.attachmentRecoeds[i].Concc.ContentDocumentId+'?operationContext=S1'; // var date = this.attachmentRecoeds[i].Concc.CreatedDate; // var year = date.getFullYear(); // var month = date.getMonth(); // var day = date.getDay(); // console.log(year+'-'+month+'-'+day); this.attachmentRecoeds[i]['updateDate'] = new Date(Date.parse(this.attachmentRecoeds[i].Concc.CreatedDate)).toLocaleString(); this.attachmentRecoeds[i]['attUrl'] = '/'+this.attachmentRecoeds[i].Concc.Id; this.attachmentRecoeds[i]['ownerUrl'] = '/'+this.attachmentRecoeds[i].Concc.OwnerId; } this.errorMsgs = result.errorMsgList; this.warningMsgs = result.warningMsgList; this.userWorkLocation = result.userWorkLocation; this.accountName = result.accountName; this.accountid = result.accountid; this.hospitalId = result.hospitalId; this.contractId = result.contractId; this.category_Goods = result.category_Goods; this.specialCampaign = result.specialCampaign; this.dealerProductId = result.dealerProductId; this.contactDealer = result.contactDealer; this.pageType = result.methodType; this.proLimitAndDate = result.proLimitAndDate; console.log("proLimitAndDate:"+JSON.stringify(this.proLimitAndDate)); this.coc = result.coc; this.cocId = this.coc.Id; if(this.pageType == 'hospitalorder' && this.agencyProType != 'ET'){ this.showHospital = true; } if(this.coc.Order_status__c == "已提交" || this.coc.Order_status__c == "批准"){ this.showOrderDate = true; } if(this.coc.Consumable_pdf_insert_day__c != null){ this.showAttUploadDate = true; } if(!(this.editAble || this.edoffersPrice)){ this.showEditBtn = true; this.showOfferPriceInputBtn = true; } if(this.coc.Order_status__c == "已提交" || this.coc.Order_status__c == "批准" || this.coc.Order_status__c == "驳回"){ this.disabledEditBtn = true; this.disabledUploadSheetBtn = true; this.disabledSubOrderbtn = true; this.disabledDeleteBtn = true; this.disabledOfferPriceInputBtn = true; } if(!(this.editDelCommitBtnDisabled || this.editAble || this.edoffersPrice)){ this.showPrintSheetBtn = true; this.showUploadSheetBtn = true; this.showSubOrderbtn = true; this.showDeleteBtn = true; } if((this.editDelCommitBtnDisabled || this.editAble || this.edoffersPrice) && this.coc.Order_status__c != "驳回"){ this.showSaveOrderbtn1 = true; } if(this.coc.Order_status__c == "驳回" && this.editAble){ this.showSaveOrderbtn2 = true; } if(this.coc.Order_status__c == "驳回" && !this.editAble){ this.showReapplyBtn = true; } this.showSpinner = false; this.showPage = true; }else{ this.showSpinner = false; console.log("Error:"+result.errorMsg); this.showMyToast('初始化页面失败',result.errorMsg,'error'); } }) .catch(error=>{ this.showSpinner = false; console.log("error:"+error); this.showMyToast('初始化页面失败',error,'error'); }) } //排序 onHandleSort(event){ //将已经选好了的放到前面,不进行排序 console.log('sort'); if(this.editAble){ const { fieldName: sortedBy, sortDirection } = event.detail; const cloneData = [...this.currentRecord]; cloneData.sort(this.sortBy(sortedBy, sortDirection === 'asc' ? 1 : -1)); let index = 0; let selectedRows = this.template.querySelector('c-lex-custom-lightning-datatable').getSelectedRows(); let selectedRowsIds = []; for(var i in selectedRows){ selectedRowsIds.push(selectedRows[i].recordId); } console.log('selectedRowsIds = ' + JSON.stringify(selectedRowsIds)); for(var i = 0;i < cloneData.length ; i++){ if(selectedRowsIds.indexOf(cloneData[i].recordId) != -1){ if(i != 0){ let temp = cloneData[index]; cloneData[index] = cloneData[i]; cloneData[i] = temp; } index++; } } this.currentRecord = cloneData; this.sortDirection = sortDirection; this.sortedBy = sortedBy; }else{ const { fieldName: sortedBy, sortDirection } = event.detail; const cloneData = [...this.currentRecord]; cloneData.sort(this.sortBy(sortedBy, sortDirection === 'asc' ? 1 : -1)); this.currentRecord = cloneData; this.sortDirection = sortDirection; this.sortedBy = sortedBy; } } sortBy(field, reverse, primer) { const key = primer ? function (x) { return primer(x[field]); } : function (x) { return x[field]; }; return function (a, b) { a = key(a); b = key(b); return reverse * ((a > b) - (b > a)); }; } //是否有警告 get hasWarning(){ if(this.warningMsgs == null || this.warningMsgs.length == 0){ return false; } if(this.warningMsgs.length > 0){ return true; } } //是否有错误 get hasError(){ if(this.errorMsgs == null || this.errorMsgs.length == 0){ return false; } if(this.errorMsgs.length > 0){ return true; } } //特价change事件 offerPriceChange(event){ this.coc.Offers_Price__c = event.detail.value; } //消耗品名称change事件 category1Change(event){ this.category1 = event.detail.value; } //第三分类change事件 category3Change(event){ this.showSpinner = true; this.category3 = event.detail.value; this.category4 = ''; this.category5 = ''; categoryAllload({agencyProTypeStr:this.agencyProType, category3Str:this.category3}) .then(result=>{ if(result.result == 'Success'){ this.category4Option = result.category4Option; this.category5Option = result.category5Option; this.showSpinner = false; }else{ this.showSpinner = false; console.log("Error:"+result.errorMsg); this.showMyToast('加载分类失败',result.errorMsg,'error'); } }) } //第四分类change事件 category4Change(event){ this.showSpinner = true; this.category4 = event.detail.value; this.category5 = ''; categoryload({agencyProTypeStr:this.agencyProType, category3Str:this.category3, category4Str:this.category4}) .then(result=>{ if(result.result == 'Success'){ this.category4Option = result.category4Option; this.category5Option = result.category5Option; this.showSpinner = false; }else{ this.showSpinner = false; console.log("Error:"+result.errorMsg); this.showMyToast('加载分类失败',result.errorMsg,'error'); } }) } //第五分类change事件 category5Change(event){ this.category5 = event.detail.value; } //搜索产品 searchProduct(event){ this.showSpinner = true; searchConsumableorderdetails({userWorkLocationStr:this.userWorkLocation, agencyProTypeStr:this.agencyProType, accountNameStr:this.accountName, accountIdStr:this.accountid, contractIdStr:this.contractId, hospitalIdStr:this.hospitalId, category1Str:this.category1, category3Str:this.category3, category4Str:this.category4, category5Str:this.category5, category_GoodStr:this.category_Goods, specialCampaignStr:this.specialCampaign, dealerProductIdStr:JSON.stringify(this.dealerProductId), methodTypeStr:this.pageType, editAbleStr:this.editAble, consumableorderdetailsRecordsviewStr:JSON.stringify(this.consumableorderdetailsRecordsview), proLimitAndDateList : this.proLimitAndDate }) .then(result=>{ if(result.result == 'Success'){ this.consumableorderdetailsRecordsview = result.consumableorderdetailsRecordsview; this.currentPage = 1; this.currentRecord = []; this.showCurrentReocrd(); this.getAllChecked(); this.showSpinner = false; this.errorMsgs = result.errorMsgList; this.warningMsgs = result.warningMsgList; // this.hasError = result.hasError; // this.hasWarning = result.hasWarning; this.showMyToast('搜索成功',result.errorMsg,'success'); }else{ this.showSpinner = false; console.log("Error:"+result.errorMsg); if(result.errorMsg == '没有搜索到相关数据'){ this.showMyToast(result.errorMsg,'','error'); }else{ this.showMyToast('搜索失败',result.errorMsg,'error'); } } }) .catch(error=>{ console.log("Error:"+error); }) } //清除搜索栏 clear(event){ this.category1 = ''; this.category3 = ''; this.category4 = ''; this.category5 = ''; this.showSpinner = true; searchConsumableorderdetails({ userWorkLocationStr:this.userWorkLocation, agencyProTypeStr:this.agencyProType, accountNameStr:this.accountName, accountIdStr:this.accountid, contractIdStr:this.contractId, hospitalIdStr:this.hospitalId, category1Str:this.category1, category3Str:this.category3, category4Str:this.category4, category5Str:this.category5, category_GoodStr:this.category_Goods, specialCampaignStr:this.specialCampaign, dealerProductIdStr:JSON.stringify(this.dealerProductId), methodTypeStr:this.pageType, editAbleStr:this.editAble, consumableorderdetailsRecordsviewStr:JSON.stringify(this.consumableorderdetailsRecordsview), proLimitAndDateList : this.proLimitAndDate }).then(result=>{ if(result.result == 'Success'){ this.consumableorderdetailsRecordsview = result.consumableorderdetailsRecordsview; this.currentPage = 1; this.currentRecord = []; this.showCurrentReocrd(); this.getAllChecked(); this.showSpinner = false; this.showMyToast('搜索成功',result.errorMsg,'success'); }else{ this.showSpinner = false; console.log("Error:"+result.errorMsg); if(result.errorMsg == '没有搜索到相关数据'){ this.showMyToast(result.errorMsg,'','error'); }else{ this.showMyToast('搜索失败',result.errorMsg,'error'); } } }) } //选择所有 checkAll(event){ for(let i=0, len=this.consumableorderdetailsRecordsview.length; i < len ;i++){ this.consumableorderdetailsRecordsview[i].check = event.target.checked; } } //选择 check(event){ let index = event.target.getAttribute("data-index"); this.consumableorderdetailsRecordsview[index].check = event.target.checked; } //采购数量change事件 // consumableCountChange(event){ // let index = event.target.getAttribute("data-index"); // var value = event.target.value; // this.consumableorderdetailsRecordsview[index].esd.Consumable_count__c = value; // if(isNaN(value)){ // value=0.00; // } // if(value != null && value !=0 && value!=''){ // this.consumableorderdetailsRecordsview[index].check = true; // }else{ // this.consumableorderdetailsRecordsview[index].check = false; // } // } //保存订单 saveOrder(event){ this.showSpinner = true; console.log('start save'); save({ contractNameStr:this.contractName, cocStr:JSON.stringify(this.coc), agencyProTypeStr:this.agencyProType, accountidStr:this.accountid, consumableorderdetailsRecordsviewStr:JSON.stringify(this.consumableorderdetailsRecordsview), contactDealerStr:JSON.stringify(this.contactDealer), methodTypeStr:this.pageType, eSetIdStr:this.esetId, hospitalIdStr : this.hospitalId, contractIdStr : this.contractId, agencyProType1Str : this.agencyProType1, OSHFLGStr : this.OSHFLG }).then(result=>{ this.showSpinner = false; if(result.result == 'Success'){ this.esetId = result.eSetId; const config = { type: 'standard__webPage', attributes: { url: '/lexconsumable?ESetid=' + this.esetId + '&type=' + this.pageType } }; this[NavigationMixin.Navigate](config); }else{ this.showSpinner = false; console.log("Error:"+result.errorMsg); this.showMyToast('保存失败',result.errorMsg,'error'); } }) } //保存订单(驳回) orderCopy(event){ this.showSpinner = true; ordrCopy({ contractNameStr:this.contractName, cocStr:JSON.stringify(this.coc), agencyProTypeStr:this.agencyProType, accountidStr:this.accountid, consumableorderdetailsRecordsviewStr:JSON.stringify(this.consumableorderdetailsRecordsview), contactDealerStr:JSON.stringify(this.contactDealer), methodTypeStr:this.pageType, hospitalIdStr:this.hospitalId, contractIdStr : this.contractId, agencyProType1Str : this.agencyProType1, OSHFLGStr : this.OSHFLG }).then(result=>{ this.showSpinner = false; if(result.result == 'Success'){ this.esetId = result.eSetId; const config = { type: 'standard__webPage', attributes: { url: '/lexconsumable?ESetid=' + this.esetId + '&type=' + this.pageType } }; this[NavigationMixin.Navigate](config); }else{ this.showSpinner = false; console.log("Error:"+result.errorMsg); this.showMyToast('保存失败',result.errorMsg,'error'); } }) } //编辑 editOrder(event){ setEditAble({eSetidStr:this.esetId}) .then(result=>{ if(result.result == 'Success'){ const config = { type: 'standard__webPage', attributes: { url: result.url } }; this[NavigationMixin.Navigate](config); }else{ this.showSpinner = false; console.log("Error:"+result.errorMsg); this.showMyToast('编辑失败',result.errorMsg,'error'); } }) } //打印配置单 printOrder(event){ var site = window.location.origin; const config = { type: 'standard__webPage', attributes: { url: site+'/consumable/PrintConsumblePDF?ESetid='+this.esetId } }; this[NavigationMixin.Navigate](config); } //上传配置单 uploadOrder(event){ this.showAttPop = true; } //提交订单 submitOrder(event){ sorder({eSetidStr:this.esetId,accountidStr:this.accountid}) .then(result=>{ if(result.result == 'Success'){ const config = { type: 'standard__webPage', attributes: { url: result.url } }; this[NavigationMixin.Navigate](config); }else{ this.showSpinner = false; this.errorMsgs = result.errorMsgList; this.warningMsgs = result.warningMsgList; console.log("Error:"+result.errorMsg); if(result.errorMsg.indexOf("请上传订货配置单附件") != -1){ result.errorMsg = '请上传订货配置单附件'; } this.showMyToast('提交失败',result.errorMsg,'error'); } }) .catch(error=>{ console.log("Error:"+error); }) } //删除订单 deleteOrder(event){ if(!window.confirm('删除是不可恢复的,你确认要删除吗?')){ return; } delConsumable({eSetidStr:this.esetId}) .then(result=>{ if(result.result == 'Success'){ const config = { type: 'standard__webPage', attributes: { url: result.url } }; this[NavigationMixin.Navigate](config); }else{ this.showSpinner = false; console.log("Error:"+result.errorMsg); this.showMyToast('删除失败',result.errorMsg,'error'); } }) } //特价金额录入 inputOfferPrice(event){ this.edoffersPrice = true; if(!(this.editAble || this.edoffersPrice)){ this.showEditBtn = true; this.showOfferPriceInputBtn = true; }else{ this.showEditBtn = false; this.showOfferPriceInputBtn = false; } if(!(this.editDelCommitBtnDisabled || this.editAble || this.edoffersPrice)){ this.showPrintSheetBtn = true; this.showUploadSheetBtn = true; this.showSubOrderbtn = true; this.showDeleteBtn = true; }else{ this.showPrintSheetBtn = false; this.showUploadSheetBtn = false; this.showSubOrderbtn = false; this.showDeleteBtn = false; } if((this.editDelCommitBtnDisabled || this.editAble || this.edoffersPrice) && this.coc.Order_status__c != "驳回"){ this.showSaveOrderbtn1 = true; }else{ this.showSaveOrderbtn1 = false; } } //再申请 reapplyOrder(event){ backOrder({eSetidStr:this.esetId}) .then(result=>{ if(result.result == 'Success'){ const config = { type: 'standard__webPage', attributes: { url: result.url } }; this[NavigationMixin.Navigate](config); }else{ this.showSpinner = false; console.log("Error:"+result.errorMsg); this.showMyToast('再申请失败',result.errorMsg,'error'); } }) } //附件change事件 attChange(event){ if(event.target.files.length > 0) { this.filesUploaded = event.target.files; this.fileName = event.target.files[0].name; console.log('this.fileName:'+this.fileName); } } //是否显示附件移除 get attDelBtn(){ if(this.fileName != '' && this.fileName != null && this.fileName != '请选择一个文件上传'){ return true; }else{ return false; } } //关闭附件弹窗 closePop(){ this.showAttPop = false; this.filesUploaded = []; this.fileName = null; } //移除附件 removeAtt(){ this.filesUploaded = []; this.fileName = ''; } //上传附件 uploadAtt(event){ if(this.filesUploaded.length > 0) { this.file = this.filesUploaded[0]; if (this.file.size > this.MAX_FILE_SIZE) { window.console.log('文件过大'); return ; } this.fileReader= new FileReader(); this.fileReader.onloadend = (() => { this.fileContents = this.fileReader.result; let base64 = 'base64,'; this.content = this.fileContents.indexOf(base64) + base64.length; this.fileContents = this.fileContents.substring(this.content); this.saveToFile(); }); this.fileReader.readAsDataURL(this.file); } else { this.fileName = '请选择一个文件上传'; } } //调用上传附件后台方法 saveToFile() { this.showPopSpinner = true; filesUpload({pId:this.esetId, fileName: this.file.name, base64Data: encodeURIComponent(this.fileContents)}) .then(result => { this.showPopSpinner = false; if(result.result == 'Success'){ this.closePop(); window.location.reload(); }else{ console.log("Error:"+result.errorMsg); this.showMyToast('上传失败',result.errorMsg,'error'); } }) .catch(error => { this.showPopSpinner = false; this.showMyToast('上传失败',error,'error'); }); } //删除附件 deleteAtt(event){ this.showSpinner = true; var recordId = event.target.getAttribute("data-fileid"); console.log('attid:'+recordId); deleteAtt({contentVersionId : recordId}) .then(result=>{ this.showSpinner = false; if(result.result == 'Success'){ window.location.reload(); }else{ console.log("Error:"+result.errorMsg); this.showMyToast('删除失败',result.errorMsg,'error'); } }) .catch(error=>{ this.showSpinner = false; console.log("Error:"+error); this.showMyToast('删除失败',JSON.stringify(error),'error'); }) } //预览附件 previweAtt(event){ var recordId = event.target.getAttribute("data-fileid"); console.log(recordId); this[NavigationMixin.Navigate]({ type:'standard__namedPage', attributes:{ pageName:'filePreview' }, state:{ recordIds: recordId, selectedRecordId: recordId } }); } //打开搜索弹窗,并初始化弹窗 showSearchHos(event){ initHospital() .then(result=>{ if(result.result == 'Success'){ this.showAttHosPop = true; this.hospitalList = result.attList; for(var i in this.hospitalList){ if(this.hospitalList[i].State_Master__c){ this.hospitalList[i]['StateMaster'] = this.hospitalList[i].State_Master__r.Name; } } }else{ console.log("Error:"+result.errorMsg); this.showMyToast('初始化检索医院页面失败',result.errorMsg,'error'); } }) .catch(error=>{ console.log("Error:"+error); this.showMyToast('初始化检索医院页面失败',error,'error'); }) } //检索医院 searchHos(event){ searchHospital({searchName:this.searchNameHos, accountId:this.accountid}) .then(result=>{ if(result.result == 'Success'){ this.hospitalList = result.attList; for(var i in this.hospitalList){ if(this.hospitalList[i].State_Master__c){ this.hospitalList[i]['StateMaster'] = this.hospitalList[i].State_Master__r.Name; } } }else{ console.log("Error:"+result.errorMsg); this.showMyToast('搜索失败',result.errorMsg,'error'); } }) .catch(error=>{ console.log("Error:"+error); this.showMyToast('搜索失败',error,'error'); }) } //医院名称change searchNameHosChange(event){ this.searchNameHos = event.detail.value; } //关闭弹窗 closeHospitalPop(){ this.showAttHosPop = false; this.chooseHospital = ''; this.chooseHospitalId = ''; } // //选择医院 // chooseHos(event){ // var hosName = event.target.getAttribute("data-name"); // var hosid = event.target.getAttribute("data-hosid"); // console.log('hos:'+hosName+'---'+hosid); // this.chooseHospital = hosName; // this.chooseHospitalId = hosid; // } changeHos(event){ this.hospitalName = event.detail.value; } changeCon(event){ this.contractName = event.detail.value; } chooseHos(event){ const row = event.detail.row; this.chooseHospitalId = row.Id; this.chooseHospital = row.Name; console.log('row.Id:'+row.Id); console.log('row.Name:'+row.Name); this.confirmHospital(); } //确认选择医院 confirmHospital(){ if(this.chooseHospital != '' && this.chooseHospital != null){ this.hospitalId = this.chooseHospitalId; this.tempidHp = this.chooseHospitalId; this.hospitalName = this.chooseHospital; this.closeHospitalPop(); //消除警告 var arr = []; for(var i in this.warningMsgs){ if(this.warningMsgs[i] != '请选择医院'){ arr.push(this.warningMsgs[i]); } } this.warningMsgs = arr; if(this.tempidHp != 'tempId' && this.tempidHp != ''){ searchorderdetails({ methodTypeStr : this.pageType, accountIdStr : this.accountid, hospitalIdStr : this.hospitalId, contractIdStr : this.contractId, userWorkLocationStr : this.userWorkLocation, accountNameStr : this.accountName, proLimitAndDateList : this.proLimitAndDate, editAbleStr : this.editAble }).then(result=>{ if(result.result == 'Success'){ this.consumableorderdetailsRecordsview = result.consumableorderdetailsRecordsview; this.currentPage = 1; this.currentRecord = []; this.showCurrentReocrd(); this.getAllChecked(); this.showMyToast('搜索成功',result.errorMsg,'success'); }else{ console.log("Error:"+result.errorMsg); if(result.errorMsg == '没有搜索到相关数据'){ this.showMyToast(result.errorMsg,'','error'); }else{ this.showMyToast('搜索产品失败',result.errorMsg,'error'); } } }) .catch(error=>{ console.log("Error:"+error); this.showMyToast('搜索产品失败',error,'error'); }) this.tempidHp = 'tempId'; } }else{ this.showMyToast('请选择医院','','error'); } } //打开合同检索弹窗并初始化 showSearchCon(){ initContract({ctype:this.agencyProType1}) .then(result=>{ if(result.result == 'Success'){ this.showConPop = true; this.contractList = result.attList; for(var i in this.contractList){ if(this.contractList[i].State_Master__c){ this.contractList[i]['StateMaster'] = this.contractList[i].State_Master__r.Name; } } }else{ console.log("Error:"+result.errorMsg); this.showMyToast('初始化检索合同页面失败',result.errorMsg,'error'); } }) .catch(error=>{ console.log("Error:"+error); this.showMyToast('初始化检索合同页面失败',error,'error'); }) } //检索合同 searchCon(){ searchContract({searchName:this.searchNameCon, accountId:this.accountid, ctype:this.agencyProType1,OSHFLGStr : this.OSHFLG}) .then(result=>{ if(result.result == 'Success'){ this.contractList = result.attList; for(var i in this.contractList){ if(this.contractList[i].State_Master__c){ this.contractList[i]['StateMaster'] = this.contractList[i].State_Master__r.Name; } } }else{ console.log("Error:"+result.errorMsg); this.showMyToast('搜索失败',result.errorMsg,'error'); } }) .catch(error=>{ console.log("Error:"+error); this.showMyToast('搜索失败',error,'error'); }) } searchNameConChange(event){ this.searchNameCon = event.detail.value; } //关闭弹窗 closeContractPop(){ this.showConPop = false; this.chooseContract = ''; this.chooseContractId = ''; } //选择合同 // chooseCon(event){ // var conName = event.target.getAttribute("data-name"); // var conid = event.target.getAttribute("data-hosid"); // console.log('hos:'+conName+'---'+conid); // this.chooseContract = conName; // this.chooseContractId = conid; // } chooseCon(event){ const row = event.detail.row; this.chooseContractId = row.Id; this.chooseContract = row.Name; console.log('row.Id:'+row.Id); console.log('row.Name:'+row.Name); this.confirmContract(); } //确认选择合同 confirmContract(){ if(this.chooseContract != '' && this.chooseContract != null){ this.contractId = this.chooseContractId; this.tempidPp = this.chooseContractId; this.contractName = this.chooseContract; this.closeContractPop(); if(this.tempidPp != 'tempId' && this.tempidPp != '' && this.contractId != '' && this.pageType == 'promotionorder'){ searchorderdetails({ methodTypeStr : this.pageType, accountIdStr : this.accountid, hospitalIdStr : this.hospitalId, contractIdStr : this.contractId, userWorkLocationStr : this.userWorkLocation, accountNameStr : this.accountName, proLimitAndDateList : this.proLimitAndDate, editAbleStr : this.editAble }).then(result=>{ if(result.result == 'Success'){ this.consumableorderdetailsRecordsview = result.consumableorderdetailsRecordsview; this.currentPage = 1; this.currentRecord = []; this.showCurrentReocrd(); this.getAllChecked(); this.showMyToast('搜索成功',result.errorMsg,'success'); }else{ console.log("Error:"+result.errorMsg); if(result.errorMsg == '没有搜索到相关数据'){ this.showMyToast(result.errorMsg,'','error'); }else{ this.showMyToast('搜索产品失败',result.errorMsg,'error'); } } }) .catch(error=>{ console.log("Error:"+error); this.showMyToast('搜索产品失败',error,'error'); }) this.tempidPp = 'tempId'; } }else{ this.showMyToast('请选择合同','','error'); } } showMyToast(title, message, variant) { console.log('show custom message'); var iconName = ''; var content = ''; if(variant == 'success'){ iconName = 'utility:check'; }else{ iconName = 'utility:error'; } if(message != ''){ content = '

'+title+'

'+message+'
'; }else{ content = '

'+title+'

'; } this.template.querySelector('c-common-toast'). showToast(variant,content,iconName,10000); // var mode; // if(this.isNoteStay){ // mode ='sticky'; // }else{ // mode = 'dismissable'; // } // const evt = new ShowToastEvent({ // title: title, // message: message, // variant: variant, // mode: mode // }); // this.dispatchEvent(evt); } //分页 showCurrentReocrd(){ var startIndex = 0; var endIndex = 0; console.log('len:'+this.consumableorderdetailsRecordsview.length); if(this.consumableorderdetailsRecordsview != null && this.consumableorderdetailsRecordsview.length > 0){ var currentRecord = []; var currentCount = 0; var mu = this.consumableorderdetailsRecordsview.length % this.pageSize; if(this.currentPage == this.totalPage){ if(mu != 0){ currentCount = mu; }else{ currentCount = this.pageSize; } }else{ currentCount = this.pageSize; } console.log('this.totalPage:'+this.totalPage); console.log('this.pageSize:'+this.pageSize); console.log('mu:'+mu); console.log('currentCount:'+currentCount); startIndex = (this.currentPage - 1) * this.pageSize; endIndex = parseInt(startIndex) + parseInt(currentCount) - 1; console.log('startIndex:'+startIndex); console.log('endIndex:'+endIndex); if(this.editAble){ for(var i in this.currentRecord){ if(this.currentRecord[i].check){ currentRecord.push(this.currentRecord[i]); } } } for(var i = startIndex; i <= endIndex; i++){ var count = 0; for(var j in this.currentRecord){ if(this.consumableorderdetailsRecordsview[i].recordId == this.currentRecord[j].recordId){ count++; } } if(count == 0){ currentRecord.push(this.consumableorderdetailsRecordsview[i]); } } this.recordStart = startIndex + 1; this.recordEnd = endIndex + 1; this.currentRecord = currentRecord; }else{ this.currentPage = 0; this.currentRecord = []; } } get prePage(){ return this.currentPage - 1; } get nextPage(){ return this.currentPage + 1; } get totalPage(){ if(this.consumableorderdetailsRecordsview.length % this.pageSize == 0){ return Math.trunc(this.consumableorderdetailsRecordsview.length / this.pageSize); }else{ return Math.trunc(this.consumableorderdetailsRecordsview.length / this.pageSize) + 1; } } get totalRecords(){ return this.consumableorderdetailsRecordsview.length; } //第一页 goFirstPage(){ this.currentPage = 1; this.showCurrentReocrd(); } //最后一页 goLastPage(){ this.currentPage = this.totalPage; this.showCurrentReocrd(); } //上一页 prePageClick(){ this.currentPage = this.currentPage - 1; this.showCurrentReocrd(); } //下一页 nextPageClick(){ this.currentPage = this.currentPage + 1; this.showCurrentReocrd(); } //page size change pageSizeChange(event){ console.log('pagesize:'+event.detail); this.pageSize = event.detail; this.currentPage = 1; this.currentRecord = []; this.showCurrentReocrd(); } //上一页按钮是否disable get previousButtonDisabled() { return this.currentPage == 1 || this.currentPage == 0; } //下一页按钮是否disable get nextButtonDisabled() { return this.currentPage == this.totalPage; } }