buli
2023-04-25 5ae6900f38713063c21c8985aafc8abbe8a77256
force-app/main/default/lwc/lexOverdueStock/lexOverdueStock.js
@@ -5,261 +5,266 @@
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import { NavigationMixin } from 'lightning/navigation';
//过期库存一览
const columns = [
    {
      label: '是否盘点',
      fieldName: 'iscount',
      type: 'checkbox',
      hideDefaultActions: true,
      initialWidth: 250,
        label: '是否销存',
        fieldName: 'iscount',
        type: 'checkbox',
        hideDefaultActions: true
        // initialWidth: 250,
    },
    {
      label: '消耗品名称',
      fieldName: 'prodname',
      type: 'prodname',
      initialWidth: 350,
      hideDefaultActions: true
        label: '消耗品名称',
        fieldName: 'prodname',
        type: 'prodname',
        // initialWidth: 350,
        hideDefaultActions: true
    },
    {
      label: '单位',
      fieldName: 'boxPiece',
      hideDefaultActions: true,
      initialWidth: 250,
        label: '单位',
        fieldName: 'boxPiece',
        hideDefaultActions: true,
        initialWidth: 250
    },
    {
      label: '过期数量',
      fieldName: 'overlimitCount',
      hideDefaultActions: true,
      initialWidth: 250,
        label: '过期数量',
        fieldName: 'overlimitCount',
        hideDefaultActions: true,
        initialWidth: 250
    },
    {
      label: '销存数量',
      fieldName: 'pandian',
      hideDefaultActions: true,
      initialWidth: 250,
    //   cellAttributes: { alignment: 'center' }
        label: '销存数量',
        fieldName: 'pandian',
        hideDefaultActions: true,
        initialWidth: 250
        //   cellAttributes: { alignment: 'center' }
    }
  ];
  //过期库存一览
];
//销存明细
const column = [
    {
      label: '消耗品名称',
      fieldName: 'Name__c',
      type: 'Name',
      initialWidth : 300,
      hideDefaultActions: true,
      cellAttributes: { alignment: 'left' }
        label: '消耗品名称',
        fieldName: 'Name__c',
        type: 'Name',
        // initialWidth : 300,
        hideDefaultActions: true,
        cellAttributes: { alignment: 'left' }
    },
    {
      label: '单位',
      fieldName: 'Box_Piece__c',
      initialWidth : 250,
      hideDefaultActions: true
        label: '单位',
        fieldName: 'Box_Piece__c',
        initialWidth: 250,
        hideDefaultActions: true
    },
    {
      label: 'BarCode',
      fieldName: 'Bar_Code__c',
      hideDefaultActions: true,
      initialWidth : 250
        label: 'BarCode',
        fieldName: 'Bar_Code__c',
        hideDefaultActions: true,
        initialWidth: 250
    },
    {
      label: '使用期限',
      fieldName: 'Sterilization_limit__c',
      hideDefaultActions: true,
      initialWidth : 250
        label: '使用期限',
        fieldName: 'Sterilization_limit__c',
        hideDefaultActions: true,
        initialWidth: 250
    },
    {
        label: '销存原因',
        fieldName: 'diffReason',
        hideDefaultActions: true,
        initialWidth: 100
    }
    ,
    {
      label: '销存原因',
      fieldName: 'diffReason',
      hideDefaultActions: true,
      initialWidth: 100
    }
  ];
];
export default class LexOverdueStock extends NavigationMixin (LightningElement ){
    columns = columns
    column = column
    @track data =[];
export default class LexOverdueStock extends NavigationMixin(LightningElement) {
    columns = columns;
    column = column;
    @track data = [];
    @track overduePageRecords = [];
    @track iSinventory = false
    @track iSinventory = false;
    //加载框
    // @track casesSpinner = true;
    @track showSpinner =true;
    @track showSpinner = true;
    //显示口
    @track showbutton = false
    @track showbutton = false;
    @track showTable = false;
    @track showTables = false;
    //销存一览数据
    @track accountName
    @track agencyProType
    @track userWorkLocation
    @track barcode = ''
    @track orderDetZaiku
    @track accountName;
    @track agencyProType;
    @track userWorkLocation;
    @track barcode = '';
    @track orderDetZaiku;
    @track selectedRows = [];
    @track codPageRecordsLWC
    @track Id
    @track codPageRecordsLWC;
    @track Id;
    @track overdueList = [];
    //初始化
    connectedCallback() {
        console.log('初始化');
        this.showSpinner = true;
        init().then((result) => {
            result = JSON.parse(JSON.stringify(result));
            console.log('result ='+JSON.stringify(result));
            console.log('result 1='+result.entity.codPageRecords);
            if(result.status = 'Success'){
                this.data = JSON.parse(result.entity.codPageRecords);
                this.codPageRecordsLWC = result.entity.codPageRecords;
                console.log('this.data'+this.data);
                this.accountName = result.entity.accountName;
                this.agencyProType = result.entity.agencyProType;
                this.userWorkLocation = result.entity.userWorkLocation;
                this.showTable = true;
                // this.casesSpinner = false;
                this.showSpinner = false;
            }else {
                console.log('Error:' + result.errorMsg);
                const evt = new ShowToastEvent({
                  title: '解析失败',
                  message: result.errorMsg,
                  variant: 'error'
                });
                this.dispatchEvent(evt);
              }
        }).catch((error) => {
            console.log('error = ' + JSON.stringify(error));
          });
        init()
            .then((result) => {
                result = JSON.parse(JSON.stringify(result));
                console.log('result =' + JSON.stringify(result));
                console.log('result 1=' + result.entity.codPageRecords);
                if ((result.status = 'Success')) {
                    this.data = JSON.parse(result.entity.codPageRecords);
                    this.codPageRecordsLWC = result.entity.codPageRecords;
                    console.log('this.data' + this.data);
                    this.accountName = result.entity.accountName;
                    this.agencyProType = result.entity.agencyProType;
                    this.userWorkLocation = result.entity.userWorkLocation;
                    this.showTable = true;
                    // this.casesSpinner = false;
                    this.showSpinner = false;
                } else {
                    console.log('Error:' + result.errorMsg);
                    const evt = new ShowToastEvent({
                        title: '解析失败',
                        message: result.errorMsg,
                        variant: 'error'
                    });
                    this.dispatchEvent(evt);
                }
            })
            .catch((error) => {
                console.log('error = ' + JSON.stringify(error));
            });
    }
    //barcode录入
    barcodeEntrys(){
    barcodeEntrys() {
        this.showSpinner = true;
        this.showTable = false;
        console.log('code'+this.barcode);
        console.log(' this.accountName'+ this.accountName);
        console.log('code' + this.barcode);
        console.log(' this.accountName' + this.accountName);
        barcodeEntry({
            accountNameLWC: this.accountName,
            agencyProTypeLWC: this.agencyProType,
            userWorkLocationLWC:this.userWorkLocation,
            barcodeLWC:this.barcode,
            codPageRecordsLWC:this.codPageRecordsLWC
        }).then((result)=>{
            result = JSON.parse(JSON.stringify(result));
            if (result.status == 'Success') {
            this.overduePageRecords = JSON.parse(result.entity.overduePageRecords);
            this.iSinventory = result.entity.iSinventory;
            console.log('result录入'+JSON.stringify( result));
            console.log(JSON.stringify( this.overduePageRecords ));
            for(let i in this.overduePageRecords){
                this.overduePageRecords[i]['Name__c'] = this.overduePageRecords[i].Prod.Name__c;
                this.overduePageRecords[i]['Bar_Code__c'] = this.overduePageRecords[i].orderdetails2.Bar_Code__c;
                this.overduePageRecords[i]['Box_Piece__c'] = this.overduePageRecords[i].orderdetails2.Box_Piece__c;
                this.overduePageRecords[i]['Sterilization_limit__c'] = this.overduePageRecords[i].orderdetails2.Sterilization_limit__c;
            }
           this.data = JSON.parse(result.entity.codPageRecords);
           console.log(' this.data'+ JSON.stringify(this.data));
           for (var i in this.data) {
            if (this.data[i]['check']) {
              this.selectedRows.push(this.data[i].prodid);
              console.log('selectedRows:' + this.selectedRows);
            }
          }
          this.showSpinner = false;
          this.showTables = true;
          this.showTable = true;
        }else{
          console.log('result.msg = ' + result.msg);
          const evt = new ShowToastEvent({
            title: '录入失败',
            message: result.msg,
            variant: 'error'
          });
          this.dispatchEvent(evt);
        }
        }).catch((error) => {
            console.log('error = ' + JSON.stringify(error));
          });
    }
     //获取当前输入值
  handleChange(event) {
    let value = event.detail.value;
    console.log('value' + value);
    this.barcode = value;
    console.log('this.barcode'+this.barcode);
  }
  getSelectedRows(event) {
    console.log('打勾');
    const selectedRows = event.detail.selectedRows;
    console.log('this.selectedRows = ' + this.selectedRows);
    for (var i in this.data) {
      this.data[i]['check'] = false;
    }
    for (var i in this.data) {
      for (var j in selectedRows) {
        console.log('this.selectedRows111 = ' + selectedRows[j].prodid);
        console.log('this.selectedRows1112 = ' + this.data[i].prodid );
        if (this.data[i].prodid == selectedRows[j].prodid) {
          this.data[i]['check'] = true;
        }
      }
    }
  }
  //保存
  saveConfirm() {
    console.log('进入销存确认');
    var el = this.template.querySelector('c-lex-custom-lightning-datatable');
    var selected = el.getSelectedRows();
    this.selectedData = selected;
    console.log('选中数据' + JSON.stringify(this.selectedData));
    save({
      iSinventory: this.iSinventory,
      saveCodPageRecords:  JSON.stringify(this.selectedData)
    }).then((result) => {
        result = JSON.parse(JSON.stringify(result));
        console.log('result保存 = ' + JSON.stringify(result));
        if (result.status == 'Success') {
            this[NavigationMixin.Navigate]({
                type: 'standard__recordPage',
                attributes: {
                    recordId:result.entity.Id,
                    objectApiName: 'Consumable_order__c',
                    actionName: 'view'
            userWorkLocationLWC: this.userWorkLocation,
            barcodeLWC: this.barcode,
            codPageRecordsLWC: this.codPageRecordsLWC
        })
            .then((result) => {
                result = JSON.parse(JSON.stringify(result));
                if (result.status == 'Success') {
                    this.overduePageRecords = JSON.parse(
                        result.entity.overduePageRecords
                    );
                    this.overdueList = result.entity.overdueList;
                    this.iSinventory = result.entity.iSinventory;
                    console.log('result录入' + JSON.stringify(result));
                    for (let i in this.overduePageRecords) {
                        if (this.overduePageRecords[i].Prod != null) {
                            this.overduePageRecords[i]['Name__c'] =
                                this.overduePageRecords[i].Prod.Name__c;
                        }
                        this.overduePageRecords[i]['Bar_Code__c'] =
                            this.overduePageRecords[
                                i
                            ].orderdetails2.Bar_Code__c;
                        this.overduePageRecords[i]['Box_Piece__c'] =
                            this.overduePageRecords[
                                i
                            ].orderdetails2.Box_Piece__c;
                        this.overduePageRecords[i]['Sterilization_limit__c'] =
                            this.overduePageRecords[
                                i
                            ].orderdetails2.Sterilization_limit__c;
                    }
                    this.data = JSON.parse(result.entity.codPageRecords);
                    console.log(' this.data' + JSON.stringify(this.data));
                    for (var i in this.data) {
                        if (this.data[i]['check']) {
                            this.selectedRows.push(this.data[i].prodid);
                            console.log('selectedRows:' + this.selectedRows);
                        }
                    }
                    this.showSpinner = false;
                    // this.showTables = true;
                    this.showTable = true;
                } else {
                    console.log('result.msg = ' + result.msg);
                    const evt = new ShowToastEvent({
                        title: '录入失败',
                        message: result.msg,
                        variant: 'error'
                    });
                    this.dispatchEvent(evt);
                    this.showSpinner = false;
                }
            })
            .catch((error) => {
                console.log('error = ' + JSON.stringify(error));
            });
        } else {
          console.log('result.msg = ' + result.msg);
          const evt = new ShowToastEvent({
            title: '失败',
            message: result.msg,
            variant: 'error'
          });
          this.dispatchEvent(evt);
    }
    //获取当前输入值
    handleChange(event) {
        let value = event.detail.value;
        console.log('value' + value);
        this.barcode = value;
        console.log('this.barcode' + this.barcode);
    }
    getSelectedRows(event) {
        console.log('打勾');
        const selectedRows = event.detail.selectedRows;
        console.log('this.selectedRows = ' + this.selectedRows);
        for (var i in this.data) {
            this.data[i]['check'] = false;
        }
      })
      .catch((error) => {
        console.log('error = ' + JSON.stringify(error));
      });
  }
        for (var i in this.data) {
            for (var j in selectedRows) {
                console.log('this.selectedRows111 = ' + selectedRows[j].prodid);
                console.log('this.selectedRows1112 = ' + this.data[i].prodid);
                if (this.data[i].prodid == selectedRows[j].prodid) {
                    this.data[i]['check'] = true;
                }
            }
        }
    }
    //保存
}
    saveConfirm() {
        console.log('进入销存确认');
        var el = this.template.querySelector(
            'c-lex-custom-lightning-datatable'
        );
        var selected = el.getSelectedRows();
        this.selectedData = selected;
        console.log('选中数据' + JSON.stringify(this.selectedData));
        save({
            iSinventory: this.iSinventory,
            saveCodPageRecords: JSON.stringify(this.selectedData),
            saveoverdueList: JSON.stringify(this.overdueList)
        })
            .then((result) => {
                result = JSON.parse(JSON.stringify(result));
                console.log('result保存 = ' + JSON.stringify(result));
                if (result.status == 'Success') {
                    this[NavigationMixin.Navigate]({
                        type: 'standard__recordPage',
                        attributes: {
                            recordId: result.entity.Id,
                            objectApiName: 'Consumable_order__c',
                            actionName: 'view'
                        }
                    });
                } else {
                    console.log('result.msg = ' + result.msg);
                    const evt = new ShowToastEvent({
                        title: '失败',
                        message: result.msg,
                        variant: 'error'
                    });
                    this.dispatchEvent(evt);
                }
            })
            .catch((error) => {
                console.log('error = ' + JSON.stringify(error));
            });
    }
}