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 // initialWidth: 150 }); 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: 84 }); cols.push({ label: "注册证编码号", fieldName: "approbation_No", wrapText: true, hideDefaultActions: true, initialWidth: 104 }); cols.push({ label: "注册证效期", fieldName: "expiration_Date", wrapText: true, hideDefaultActions: true, initialWidth: 95 }); cols.push({ label: "第3分类", fieldName: "prodCategory3", wrapText: true, hideDefaultActions: true, initialWidth: 84, sortable: true }); cols.push({ label: "第4分类", fieldName: "prodCategory4", wrapText: true, hideDefaultActions: true, initialWidth: 84, sortable: true }); cols.push({ label: "第5分类", fieldName: "prodCategory5", wrapText: true, hideDefaultActions: true, initialWidth: 84, sortable: true }); if (this.cansee) { cols.push({ label: "标准单价", type: "number", typeAttributes: { minimumFractionDigits: 2 }, fieldName: "prodIntraTradeList", hideDefaultActions: true, initialWidth: 78 }); } 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: 78 }); } else { cols.push({ label: "采购数量", fieldName: "consumableCount", hideDefaultActions: true, initialWidth: 78, cellAttributes: { alignment: "right" } }); } cols.push({ label: "在库数下限", fieldName: "lowerlimit", hideDefaultActions: true, initialWidth: 86, cellAttributes: { alignment: "right" } }); cols.push({ label: "在库数上限", fieldName: "upperlimit", hideDefaultActions: true, initialWidth: 86, cellAttributes: { alignment: "right" } }); // cols.push({label:'有效期库存(盒)',fieldName:'allnumber',hideDefaultActions: true,initialWidth:105,sortable: true}); cols.push({ label: "有效期库存(盒)", type: "customInventoryColor", fieldName: "allnumber", typeAttributes: { value: { fieldName: "allnumber" }, upperlimit: { fieldName: "upperlimit" }, lowerlimit: { fieldName: "lowerlimit" }, boxPrice: "盒" }, hideDefaultActions: true, initialWidth: 122, sortable: true }); cols.push({ label: "有效期库存(个)", fieldName: "allnumber_piece", hideDefaultActions: true, initialWidth: 112, 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.consumableorderdetailsRecordsview[i].esd.Consumable_count__c = null; this.consumableorderdetailsRecordsview[i].consumableCount = null; } } } 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, cocId: this.esetId }) .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; } }