buli
2023-06-09 f94d7f9cd1d2d467e7242245719192d7157e3ede
force-app/main/default/lwc/lexConsumable/lexConsumable.js
@@ -1,1388 +1,1690 @@
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 { 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}
   ];
  //页面基础数据
  @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
         }
  //消耗品数据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;
  }
   //打开搜索弹窗,并初始化弹窗
   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');
         })
   }
  //附件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
    }
  ];
   //检索医院
   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');
  //取得所有被勾选的产品id
  getAllChecked() {
    this.selectRows = [];
    for (var i in this.currentRecord) {
      if (this.currentRecord[i].check) {
        this.selectRows.push(this.currentRecord[i].recordId);
      }
   }
    }
  }
   //打开合同检索弹窗并初始化
   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;
               }
  //勾选操作
  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) + "...";
            }
         }else{
            console.log("Error:"+result.errorMsg);
            this.showMyToast('初始化检索合同页面失败',result.errorMsg,'error');
         }
            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=>{
         console.log("Error:"+error);
         this.showMyToast('初始化检索合同页面失败',error,'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);
      });
  }
   //检索合同
   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;
               }
  //清除搜索栏
  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
            }
         }else{
            console.log("Error:"+result.errorMsg);
            this.showMyToast('搜索失败',result.errorMsg,'error');
         }
          };
          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);
         this.showMyToast('搜索失败',error,'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");
      });
  }
   searchNameConChange(event){
      this.searchNameCon = event.detail.value;
   }
  //删除附件
  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");
      });
  }
   //关闭弹窗
   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');
  //预览附件
  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
      }
   }
    });
  }
   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 = '<h2><strong>'+title+'<strong/></h2><h5>'+message+'</h5>';
      }else{
         content = '<h2><strong>'+title+'<strong/></h2>';
      }
      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;
  //打开搜索弹窗,并初始化弹窗
  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{
            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]);
               }
          }
        } 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;
            }
         }
         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 = [];
          }
        } 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]);
        }
      }
   }
   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;
      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");
    }
  }
   get totalRecords(){
      return this.consumableorderdetailsRecordsview.length;
   }
  //打开合同检索弹窗并初始化
  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");
      });
  }
   //第一页
   goFirstPage(){
      this.currentPage = 1;
      this.showCurrentReocrd();
   }
  //检索合同
  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");
      });
  }
   //最后一页
   goLastPage(){
      this.currentPage = this.totalPage;
      this.showCurrentReocrd();
   }
  searchNameConChange(event) {
    this.searchNameCon = event.detail.value;
  }
   //上一页
   prePageClick(){
      this.currentPage = this.currentPage - 1;
      this.showCurrentReocrd();
   }
  //关闭弹窗
  closeContractPop() {
    this.showConPop = false;
    this.chooseContract = "";
    this.chooseContractId = "";
  }
   //下一页
   nextPageClick(){
      this.currentPage = this.currentPage + 1;
      this.showCurrentReocrd();
   }
  //选择合同
  // 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;
  // }
   //page size change
   pageSizeChange(event){
      console.log('pagesize:'+event.detail);
      this.pageSize = event.detail;
      this.currentPage = 1;
  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 =
        "<h2><strong>" + title + "<strong/></h2><h5>" + message + "</h5>";
    } else {
      content = "<h2><strong>" + title + "<strong/></h2>";
    }
    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 = [];
      this.showCurrentReocrd();
   }
   //上一页按钮是否disable
   get previousButtonDisabled() {
      return this.currentPage == 1 || this.currentPage == 0;
   }
    }
  }
   //下一页按钮是否disable
   get nextButtonDisabled() {
      return this.currentPage == this.totalPage;
   }
}
  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;
  }
}