buli
2023-07-11 cd05a7b0ab8dd5838f8998fb36fc0435fd9c5b84
force-app/main/default/lwc/lexConsumableAccount/lexConsumableAccount.js
@@ -1,27 +1,27 @@
import { LightningElement, wire, api, track } from 'lwc';
import { ShowToastEvent } from 'lightning/platformShowToastEvent';
import init from '@salesforce/apex/LexConsumableAccountController.init';
import changeFiscalYearView from '@salesforce/apex/LexConsumableAccountController.changeFiscalYearView';
import changelistView from '@salesforce/apex/LexConsumableAccountController.changelistView';
import accountInit from '@salesforce/apex/LexConsumableAccountInfoController.init';
import { LightningElement, wire, api, track } from "lwc";
import { ShowToastEvent } from "lightning/platformShowToastEvent";
import init from "@salesforce/apex/LexConsumableAccountController.init";
import changeFiscalYearView from "@salesforce/apex/LexConsumableAccountController.changeFiscalYearView";
import changelistView from "@salesforce/apex/LexConsumableAccountController.changelistView";
import accountInit from "@salesforce/apex/LexConsumableAccountInfoController.init";
//table css
import { loadStyle } from 'lightning/platformResourceLoader';
import WrappedHeaderTable from '@salesforce/resourceUrl/lexdatatable';
import { loadStyle } from "lightning/platformResourceLoader";
import WrappedHeaderTable from "@salesforce/resourceUrl/lexdatatable";
const columns = [
    {
        label: '客户名',
        fieldName: 'NameUrl',
    label: "客户名",
    fieldName: "NameUrl",
        hideDefaultActions: true,
        wrapText: true,
        initialWidth: 200,
        sortable: true,
        type: 'url',
    type: "url",
        typeAttributes: {
            label: {
                fieldName: 'Name'
        fieldName: "Name"
            },
            target: '_blank'
      target: "_blank"
        }
    },
    // {
@@ -39,36 +39,36 @@
    //     },
    // },
    {
        label: '省',
        fieldName: 'StateMasterName',
    label: "省",
    fieldName: "StateMasterName",
        hideDefaultActions: true,
        wrapText: true,
        sortable: true
    },
    {
        label: '销售本部医院',
        fieldName: 'Salesdepartment_HP__c',
    label: "销售本部医院",
    fieldName: "Salesdepartment_HP__c",
        hideDefaultActions: true,
        sortable: true,
        wrapText: true
    },
    {
        label: '创建日期',
        fieldName: 'CreatedDate',
    label: "创建日期",
    fieldName: "CreatedDate",
        hideDefaultActions: true,
        sortable: true,
        wrapText: true,
        type: 'date',
    type: "date",
        typeAttributes: {
            timeZone: 'Asia/Shanghai',
            day: 'numeric',
            month: 'numeric',
            year: 'numeric'
      timeZone: "Asia/Shanghai",
      day: "numeric",
      month: "numeric",
      year: "numeric"
        }
    },
    {
        label: '有效/无效',
        fieldName: 'Is_Active__c',
    label: "有效/无效",
    fieldName: "Is_Active__c",
        hideDefaultActions: true,
        sortable: true,
        wrapText: true
@@ -82,8 +82,8 @@
    //     initialWidth: 130,
    // },
    {
        label: '政府等级',
        fieldName: 'Grade__c',
    label: "政府等级",
    fieldName: "Grade__c",
        hideDefaultActions: true,
        sortable: true,
        wrapText: true
@@ -110,22 +110,22 @@
    //     },
    // },
    {
        label: '市',
        fieldName: 'CityMasterName',
    label: "市",
    fieldName: "CityMasterName",
        hideDefaultActions: true,
        sortable: true,
        wrapText: true
    },
    {
        label: '县/区',
        fieldName: 'Town__c',
    label: "县/区",
    fieldName: "Town__c",
        hideDefaultActions: true,
        sortable: true,
        wrapText: true
    },
    {
        label: '客户电话',
        fieldName: 'Phone',
    label: "客户电话",
    fieldName: "Phone",
        hideDefaultActions: true,
        sortable: true,
        wrapText: true
@@ -134,15 +134,15 @@
const topColumns = [
    {
        label: '客户名',
    label: "客户名",
        hideDefaultActions: true,
        fieldName: 'accountName',
    fieldName: "accountName",
        wrapText: true,
        type: 'customShowAccountUrl',
    type: "customShowAccountUrl",
        typeAttributes: {
            accountName: { fieldName: 'accountName' },
            accountUrl: { fieldName: 'accountUrl' },
            isDisable: { fieldName: 'isDisable' }
      accountName: { fieldName: "accountName" },
      accountUrl: { fieldName: "accountUrl" },
      isDisable: { fieldName: "isDisable" }
        }
    },
    // {
@@ -158,34 +158,34 @@
    //     },
    // },
    {
        label: '市',
        fieldName: 'CityMasterName',
    label: "市",
    fieldName: "CityMasterName",
        hideDefaultActions: true,
        wrapText: true
    },
    {
        label: '县/区',
        fieldName: 'Town__c',
    label: "县/区",
    fieldName: "Town__c",
        hideDefaultActions: true,
        wrapText: true
    },
    {
        label: '销量占比',
        fieldName: 'proportion',
    label: "销量占比",
    fieldName: "proportion",
        hideDefaultActions: true,
        wrapText: true,
        initialWidth: 100,
        cellAttributes: { alignment: 'right' }
    cellAttributes: { alignment: "right" }
    },
    {
        label: '操作',
        fieldName: 'Town__c',
        type: 'weeklyReport',
    label: "操作",
    fieldName: "Town__c",
    type: "weeklyReport",
        initialWidth: 150,
        typeAttributes: {
            recordId: { fieldName: 'Id' },
            hospitalName: { fieldName: 'Name' },
            isShowButton: { fieldName: 'isShowButton' }
      recordId: { fieldName: "Id" },
      hospitalName: { fieldName: "Name" },
      isShowButton: { fieldName: "isShowButton" }
        },
        hideDefaultActions: true
    }
@@ -195,13 +195,13 @@
    topColumns = topColumns;
    @track isShowSpinner = false;
    @track pageRecords = [];
    @track accountId = '';
    @track agencyProType = '';
    @track agencyProTypestr = '';
  @track accountId = "";
  @track agencyProType = "";
  @track agencyProTypestr = "";
    @track listViewOptions = [
        {
            label: '01. 医院_Hospital',
            value: '01. 医院_Hospital'
      label: "01. 医院_Hospital",
      value: "01. 医院_Hospital"
        },
        // {
        //     label: "61. 医院_Hospital草案中的医院",
@@ -212,22 +212,22 @@
        //     value: "62. 医院_Hospital申请中的医院",
        // },
        {
            label: '63. 医院_Hospital上周创建的医院',
            value: '63. 医院_Hospital上周创建的医院'
      label: "63. 医院_Hospital上周创建的医院",
      value: "63. 医院_Hospital上周创建的医院"
        }
    ];
    @track viewOption = '01. 医院_Hospital';
  @track viewOption = "01. 医院_Hospital";
    @track isShowAccountInfo = false;
    @track topAccountData = [];
    //前端排序
    defaultSortDirection = 'asc';
    sortDirection = 'asc';
  defaultSortDirection = "asc";
  sortDirection = "asc";
    sortedBy;
    //分页start
    @track sortBy = '';
  @track sortBy = "";
    @track pageSize = 10;
    error;
    records;
@@ -243,59 +243,59 @@
    @track recordEnd = 0;
    //end
    @track AccId = '';
    @track printUrl = '';
  @track AccId = "";
  @track printUrl = "";
    @track accountDataInfo = {
        name: '',
        ownerName: '',
        site: '',
        isActive: '',
        aliasName2: '',
        banOnUseReason: '',
        grade: '',
        attributeType: '',
        oCMCategory: '',
        specialityType: '',
        stateMasterName: '',
        phone: '',
        cityMasterName: '',
        phoneCall: '',
        town: '',
        fax: '',
        street: '',
        postalCode: '',
        address: '',
        parentName: ''
    name: "",
    ownerName: "",
    site: "",
    isActive: "",
    aliasName2: "",
    banOnUseReason: "",
    grade: "",
    attributeType: "",
    oCMCategory: "",
    specialityType: "",
    stateMasterName: "",
    phone: "",
    cityMasterName: "",
    phoneCall: "",
    town: "",
    fax: "",
    street: "",
    postalCode: "",
    address: "",
    parentName: ""
    };
    stylesLoaded = false;
    //财年
    @track fiscalYearOptions = [
        { label: '本财年', value: 'thisYear' },
        { label: '上一财年', value: 'lastYear' },
        { label: '上一财年+本财年', value: 'allYear' }
    { label: "本财年", value: "thisYear" },
    { label: "上一财年", value: "lastYear" },
    { label: "上一财年+本财年", value: "allYear" }
    ];
    @track fiscalYearOption = 'thisYear';
  @track fiscalYearOption = "thisYear";
    @track topInfo = [];
    renderedCallback() {
        if (!this.stylesLoaded) {
            Promise.all([loadStyle(this, WrappedHeaderTable)])
                .then(() => {
                    console.log('Custom styles loaded');
          console.log("Custom styles loaded");
                    this.stylesLoaded = true;
                })
                .catch((error) => {
                    console.error('Error loading custom styles');
          console.error("Error loading custom styles");
                });
        }
    }
    //获取链接参数
    getQueryString(name) {
        console.log('getQueryString name ' + name);
        let reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)', 'i');
    console.log("getQueryString name " + name);
    let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
        let r = window.location.search.substr(1).match(reg);
        if (r != null) {
            return decodeURIComponent(r[2]);
@@ -305,77 +305,63 @@
    connectedCallback() {
        this.isShowSpinner = true;
        this.AccId = this.getQueryString('AccId');
        this.AccId = this.AccId == null ? '' : this.AccId;
        if (this.AccId != '') {
            console.log('this.AccId = ' + this.AccId);
    this.AccId = this.getQueryString("AccId");
    this.AccId = this.AccId == null ? "" : this.AccId;
    if (this.AccId != "") {
      console.log("this.AccId = " + this.AccId);
            accountInit({
                accId: this.AccId
            })
                .then((r) => {
                    r = JSON.parse(JSON.stringify(r));
                    console.log('r = ' + JSON.stringify(r));
                    if (r.status == 'Success') {
                        console.log(
                            'r.entity.obj = ' + JSON.stringify(r.entity.obj)
                        );
          console.log("r = " + JSON.stringify(r));
          if (r.status == "Success") {
            console.log("r.entity.obj = " + JSON.stringify(r.entity.obj));
                        this.accountDataInfo.name = r.entity.obj.Name;
                        this.accountDataInfo.ownerName =
                            r.entity.obj.Owner == null
                                ? ''
                                : r.entity.obj.Owner.Name;
              r.entity.obj.Owner == null ? "" : r.entity.obj.Owner.Name;
                        this.accountDataInfo.site = r.entity.obj.site;
                        this.accountDataInfo.isActive =
                            r.entity.obj.Is_Active__c;
                        this.accountDataInfo.aliasName2 =
                            r.entity.obj.Alias_Name2__c;
            this.accountDataInfo.isActive = r.entity.obj.Is_Active__c;
            this.accountDataInfo.aliasName2 = r.entity.obj.Alias_Name2__c;
                        this.accountDataInfo.banOnUseReason =
                            r.entity.obj.Ban_On_Use_Reason__c;
                        this.accountDataInfo.grade = r.entity.obj.Grade__c;
                        this.accountDataInfo.attributeType =
                            r.entity.obj.Attribute_Type__c;
                        this.accountDataInfo.oCMCategory =
                            r.entity.obj.OCM_Category__c;
            this.accountDataInfo.attributeType = r.entity.obj.Attribute_Type__c;
            this.accountDataInfo.oCMCategory = r.entity.obj.OCM_Category__c;
                        this.accountDataInfo.specialityType =
                            r.entity.obj.Speciality_Type__c;
                        this.accountDataInfo.stateMasterName =
                            r.entity.obj.State_Master__r == null
                                ? ''
                ? ""
                                : r.entity.obj.State_Master__r.Name;
                        this.accountDataInfo.phone = r.entity.obj.Phone;
                        this.accountDataInfo.cityMasterName =
                            r.entity.obj.City_Master__r == null
                                ? ''
                ? ""
                                : r.entity.obj.City_Master__r.Name;
                        this.accountDataInfo.phoneCall =
                            r.entity.obj.PhoneCall__c;
            this.accountDataInfo.phoneCall = r.entity.obj.PhoneCall__c;
                        this.accountDataInfo.town = r.entity.obj.Town__c;
                        this.accountDataInfo.fax = r.entity.obj.Fax;
                        this.accountDataInfo.street = r.entity.obj.Street__c;
                        this.accountDataInfo.postalCode =
                            r.entity.obj.Postal_Code__c;
            this.accountDataInfo.postalCode = r.entity.obj.Postal_Code__c;
                        this.accountDataInfo.address = r.entity.obj.Address__c;
                        this.accountDataInfo.parentName =
                            r.entity.obj.Parent == null
                                ? ''
                                : r.entity.obj.Parent.Name;
              r.entity.obj.Parent == null ? "" : r.entity.obj.Parent.Name;
                        console.log(
                            'this.accountDataInfo = ' +
                                JSON.stringify(this.accountDataInfo)
              "this.accountDataInfo = " + JSON.stringify(this.accountDataInfo)
                        );
                        this.printUrl =
                            '/lexconsumableaccountinfoprint?AccId=' +
                            this.AccId;
              "/lexconsumableaccountinfoprint?AccId=" + this.AccId;
                        this.isShowAccountInfo = true;
                        this.isShowSpinner = false;
                    } else {
                        console.log('r = ' + JSON.stringify(r));
                        this.showMyToast('Error', r.msg, 'Error');
            console.log("r = " + JSON.stringify(r));
            this.showMyToast("Error", r.msg, "Error");
                    }
                })
                .catch((error) => {
                    console.log('error = ' + JSON.stringify(error));
                    this.showMyToast('Error', '初始化失败', 'Error');
          console.log("error = " + JSON.stringify(error));
          this.showMyToast("Error", "初始化失败", "Error");
                });
        } else {
            init({
@@ -385,165 +371,151 @@
            })
                .then((r) => {
                    r = JSON.parse(JSON.stringify(r));
                    console.log('r = ' + JSON.stringify(r));
                    if (r.status == 'Success') {
          console.log("r = " + JSON.stringify(r));
          if (r.status == "Success") {
                        //分页
                        this.nextPageToken =
                            r.entity.paginatedAccounts.nextPageToken;
                        this.totalRecords =
                            r.entity.paginatedAccounts.totalRecords;
                        this.recordStart =
                            r.entity.paginatedAccounts.recordStart;
            this.nextPageToken = r.entity.paginatedAccounts.nextPageToken;
            this.totalRecords = r.entity.paginatedAccounts.totalRecords;
            this.recordStart = r.entity.paginatedAccounts.recordStart;
                        this.recordEnd = r.entity.paginatedAccounts.recordEnd;
                        this.totalPages = Math.ceil(
                            r.entity.paginatedAccounts.totalRecords /
                                this.pageSize
              r.entity.paginatedAccounts.totalRecords / this.pageSize
                        );
                        console.log('this.totalPages = ' + this.totalPages);
                        this.paginationVisibility =
                            this.totalPages > 1 ? true : false;
            console.log("this.totalPages = " + this.totalPages);
            this.paginationVisibility = this.totalPages > 1 ? true : false;
                        this.pageRecords = r.entity.pageRecords;
                        this.accountId = r.entity.accountId;
                        this.agencyProType = r.entity.agencyProType;
                        this.agencyProTypestr = r.entity.agencyProTypestr;
                        console.log(
                            'this.agencyProTypestr = ' + this.agencyProTypestr
                        );
            console.log("this.agencyProTypestr = " + this.agencyProTypestr);
                        for (var i in this.pageRecords) {
                            this.pageRecords[i]['Is_Active__c'] =
                                this.pageRecords[i].Is_Active__c.replace(
                                    '効',
                                    '效'
                                );
                            this.pageRecords[i]['NameUrl'] =
                                '/s/lexconsumableaccount?AccId=' +
                                this.pageRecords[i].Id;
                            this.pageRecords[i]['StateMasterName'] =
              this.pageRecords[i]["Is_Active__c"] = this.pageRecords[
                i
              ].Is_Active__c.replace("効", "效");
              this.pageRecords[i]["NameUrl"] =
                "/s/lexconsumableaccount?AccId=" + this.pageRecords[i].Id;
              this.pageRecords[i]["StateMasterName"] =
                                this.pageRecords[i].State_Master__r.Name;
                            this.pageRecords[i]['StateMasterUrl'] =
                                '/' + this.pageRecords[i].State_Master__c;
                            this.pageRecords[i]['CityMasterName'] =
              this.pageRecords[i]["StateMasterUrl"] =
                "/" + this.pageRecords[i].State_Master__c;
              this.pageRecords[i]["CityMasterName"] =
                                this.pageRecords[i].City_Master__r.Name;
                            this.pageRecords[i]['CityMasterNameUrl'] =
                                '/' + this.pageRecords[i].City_Master__c;
                            this.pageRecords[i]['RecordTypeName'] =
              this.pageRecords[i]["CityMasterNameUrl"] =
                "/" + this.pageRecords[i].City_Master__c;
              this.pageRecords[i]["RecordTypeName"] =
                                this.pageRecords[i].RecordType.Name;
                        }
                        console.log(
                            'this.listViewOptions = ' +
                                JSON.stringify(this.listViewOptions)
              "this.listViewOptions = " + JSON.stringify(this.listViewOptions)
                        );
                        console.log(
                            'r.entity.topInfo = ' +
                                JSON.stringify(r.entity.topInfo)
              "r.entity.topInfo = " + JSON.stringify(r.entity.topInfo)
                        );
                        //top10客户
                        this.topInfo = r.entity.topInfo;
                        console.log(
                            'this.topInfo = ' + JSON.stringify(this.topInfo)
                        );
            console.log("this.topInfo = " + JSON.stringify(this.topInfo));
                        this.topAccountData = this.topInfo.acList;
                        console.log(
                            'this.topAccountData = ' +
                                JSON.stringify(this.topAccountData)
              "this.topAccountData = " + JSON.stringify(this.topAccountData)
                        );
                        console.log(
                            '9/3 = ' +
                                this.keepTwoDecimalStr(
                                    this.amend(9, 3, '/').toFixed(2)
                                )
              "9/3 = " +
                this.keepTwoDecimalStr(this.amend(9, 3, "/").toFixed(2))
                        );
                        let total = 100;
                        try {
                            for (var i in this.topAccountData) {
                                console.log('i = ' + i);
                                this.topAccountData[i]['accountName'] =
                this.topAccountData[i]["accountName"] =
                                    this.topAccountData[i].Name;
                                this.topAccountData[i]['accountUrl'] =
                                    '/s/lexconsumableaccount?AccId=' +
                                    this.topAccountData[i].Id;
                                this.topAccountData[i]['isDisable'] = false;
                                this.topAccountData[i]['StateMasterName'] =
                this.topAccountData[i]["accountUrl"] =
                  "/s/lexconsumableaccount?AccId=" + this.topAccountData[i].Id;
                this.topAccountData[i]["isDisable"] = false;
                this.topAccountData[i]["StateMasterName"] =
                                    this.topAccountData[i].State_Master__r.Name;
                                this.topAccountData[i]['StateMasterUrl'] =
                                    '/' +
                                    this.topAccountData[i].State_Master__c;
                                this.topAccountData[i]['CityMasterName'] =
                this.topAccountData[i]["StateMasterUrl"] =
                  "/" + this.topAccountData[i].State_Master__c;
                this.topAccountData[i]["CityMasterName"] =
                                    this.topAccountData[i].City_Master__r.Name;
                                this.topAccountData[i]['CityMasterNameUrl'] =
                                    '/' + this.topAccountData[i].City_Master__c;
                                this.topAccountData[i]['RecordTypeName'] =
                this.topAccountData[i]["CityMasterNameUrl"] =
                  "/" + this.topAccountData[i].City_Master__c;
                this.topAccountData[i]["RecordTypeName"] =
                                    this.topAccountData[i].RecordType.Name;
                                this.topAccountData[i]['isShowButton'] = true;
                this.topAccountData[i]["isShowButton"] = true;
                                let number = this.keepTwoDecimalStr(
                                    (
                                        this.amend(
                                            this.topInfo.deList[i],
                                            this.topInfo.saleAmount,
                                            '/'
                      "/"
                                        ) * 100
                                    ).toFixed(2)
                                );
                console.log(
                  "this.amend = " +
                    this.amend(
                      this.topInfo.deList[i],
                      this.topInfo.saleAmount,
                      "/"
                    ) *
                      100
                );
                                total -= number;
                                this.topAccountData[i]['proportion'] =
                                    number + '%';
                this.topAccountData[i]["proportion"] = number + "%";
                            }
                            console.log(
                                'this.topAccountData = ' +
                                    JSON.stringify(this.topAccountData)
                "this.topAccountData = " + JSON.stringify(this.topAccountData)
                            );
                            //其他
              console.log(
                "(total.toFixed(2) > 0.00 ? total.toFixed(2) : 0.00) = " +
                  (total.toFixed(2) > 0.0 ? total.toFixed(2) : "0.00")
              );
                            if (total != 100) {
                                this.topAccountData.push({
                                    accountName: '...',
                                    accountUrl: '/s/lexconsumableaccount',
                  accountName: "...",
                  accountUrl: "/s/lexconsumableaccount",
                                    isDisable: true,
                                    proportion: total.toFixed(2) + '%',
                                    CityMasterName: '...',
                                    CityMasterNameUrl: '/lexconsumableaccount',
                                    Town__c: '...',
                  proportion:
                    (total.toFixed(2) > 0.0 ? total.toFixed(2) : "0.00") + "%",
                  CityMasterName: "...",
                  CityMasterNameUrl: "/lexconsumableaccount",
                  Town__c: "...",
                                    isShowButton: false
                                });
                            } else {
                                let title = '';
                let title = "";
                                for (var key in this.fiscalYearOptions) {
                                    if (
                                        this.fiscalYearOption ==
                                        this.fiscalYearOptions[key].value
                    this.fiscalYearOption == this.fiscalYearOptions[key].value
                                    )
                                        title =
                                            this.fiscalYearOptions[key].label;
                    title = this.fiscalYearOptions[key].label;
                                }
                                this.showMyToast(title, '无数据', 'Error');
                this.showMyToast(title, "无数据", "Error");
                            }
                            this.isShowSpinner = false;
                        } catch (error) {
                            console.log('error = ' + error.message);
              console.log("error = " + error.message);
                        }
                    } else {
                        console.log('r = ' + JSON.stringify(r));
                        this.showMyToast('Error', r.msg, 'Error');
            console.log("r = " + JSON.stringify(r));
            this.showMyToast("Error", r.msg, "Error");
                    }
                })
                .catch((error) => {
                    console.log('error = ' + JSON.stringify(error));
                    this.showMyToast(
                        'Error',
                        '销量前十客户初始化失败',
                        'Error'
                    );
          console.log("error = " + JSON.stringify(error));
          this.showMyToast("Error", "销量前十客户初始化失败", "Error");
                });
        }
    }
    amend(num1, num2, symbol) {
        console.log('num1 = ' + num1);
        console.log('num2 = ' + num2);
        console.log('symbol = ' + symbol);
    console.log("num1 = " + num1);
    console.log("num2 = " + num2);
    console.log("symbol = " + symbol);
        var str1 = num1.toString(),
            str2 = num2.toString(),
            result,
@@ -551,28 +523,28 @@
            str2Length;
        //解决整数没有小数点方法
        try {
            str1Length = str1.split('.')[1].length;
      str1Length = str1.split(".")[1].length;
        } catch (error) {
            str1Length = 0;
        }
        try {
            str2Length = str2.split('.')[1].length;
      str2Length = str2.split(".")[1].length;
        } catch (error) {
            str2Length = 0;
        }
        var step = Math.pow(10, Math.max(str1Length, str2Length));
        console.log(step);
        switch (symbol) {
            case '+':
      case "+":
                result = (num1 * step + num2 * step) / step;
                break;
            case '-':
      case "-":
                result = (num1 * step - num2 * step) / step;
                break;
            case '*':
      case "*":
                result = (num1 * step * (num2 * step)) / step / step;
                break;
            case '/':
      case "/":
                result = (num1 * step) / (num2 * step);
                break;
            default:
@@ -584,27 +556,27 @@
    keepTwoDecimalStr(num) {
        const result = Number(num.toString().match(/^\d+(?:\.\d{0,2})?/));
        let s = result.toString();
        let rs = s.indexOf('.');
    let rs = s.indexOf(".");
        if (rs < 0) {
            rs = s.length;
            s += '.';
      s += ".";
        }
        while (s.length <= rs + 2) {
            s += '0';
      s += "0";
        }
        return s;
    }
    dataChange(event) {
        let fieldName = event.target.getAttribute('data-field');
    let fieldName = event.target.getAttribute("data-field");
        let value = event.detail.value;
        console.log('fieldName = ' + fieldName + ' value = ' + value);
    console.log("fieldName = " + fieldName + " value = " + value);
        switch (fieldName) {
            case 'viewOption':
      case "viewOption":
                this.viewOption = value;
                this.changelistView();
                break;
            case 'fiscalYearOption':
      case "fiscalYearOption":
                this.fiscalYearOption = value;
                this.changeFiscalYear();
                break;
@@ -618,84 +590,77 @@
        })
            .then((r) => {
                r = JSON.parse(JSON.stringify(r));
                console.log('r = ' + JSON.stringify(r));
                if (r.status == 'Success') {
        console.log("r = " + JSON.stringify(r));
        if (r.status == "Success") {
                    //top10客户
                    this.topInfo = r.entity.topInfo;
                    console.log(
                        'this.topInfo = ' + JSON.stringify(this.topInfo)
                    );
          console.log("this.topInfo = " + JSON.stringify(this.topInfo));
                    this.topAccountData = this.topInfo.acList;
                    console.log(
                        'this.topAccountData = ' +
                            JSON.stringify(this.topAccountData)
            "this.topAccountData = " + JSON.stringify(this.topAccountData)
                    );
                    let total = 100;
                    for (var i in this.topAccountData) {
                        console.log('i = ' + i);
                        this.topAccountData[i]['accountName'] =
                            this.topAccountData[i].Name;
                        this.topAccountData[i]['accountUrl'] =
                            '/s/lexconsumableaccount?AccId=' +
                            this.topAccountData[i].Id;
                        this.topAccountData[i]['isDisable'] = false;
                        this.topAccountData[i]['StateMasterName'] =
            console.log("i = " + i);
            this.topAccountData[i]["accountName"] = this.topAccountData[i].Name;
            this.topAccountData[i]["accountUrl"] =
              "/s/lexconsumableaccount?AccId=" + this.topAccountData[i].Id;
            this.topAccountData[i]["isDisable"] = false;
            this.topAccountData[i]["StateMasterName"] =
                            this.topAccountData[i].State_Master__r.Name;
                        this.topAccountData[i]['StateMasterUrl'] =
                            '/' + this.topAccountData[i].State_Master__c;
                        this.topAccountData[i]['CityMasterName'] =
            this.topAccountData[i]["StateMasterUrl"] =
              "/" + this.topAccountData[i].State_Master__c;
            this.topAccountData[i]["CityMasterName"] =
                            this.topAccountData[i].City_Master__r.Name;
                        this.topAccountData[i]['CityMasterNameUrl'] =
                            '/' + this.topAccountData[i].City_Master__c;
                        this.topAccountData[i]['RecordTypeName'] =
            this.topAccountData[i]["CityMasterNameUrl"] =
              "/" + this.topAccountData[i].City_Master__c;
            this.topAccountData[i]["RecordTypeName"] =
                            this.topAccountData[i].RecordType.Name;
                        this.topAccountData[i]['isShowButton'] = true;
            this.topAccountData[i]["isShowButton"] = true;
                        let number = this.keepTwoDecimalStr(
                            (
                                this.amend(
                                    this.topInfo.deList[i],
                                    this.topInfo.saleAmount,
                                    '/'
                  "/"
                                ) * 100
                            ).toFixed(2)
                        );
                        total -= number;
                        this.topAccountData[i]['proportion'] = number + '%';
            this.topAccountData[i]["proportion"] = number + "%";
                    }
                    // //其他
                    if (total != 100) {
                        this.topAccountData.push({
                            accountName: '...',
                            accountUrl: '/s/lexconsumableaccount',
              accountName: "...",
              accountUrl: "/s/lexconsumableaccount",
                            isDisable: true,
                            proportion: total.toFixed(2) + '%',
                            CityMasterName: '...',
                            CityMasterNameUrl: '/lexconsumableaccount',
                            Town__c: '...',
              proportion:
                (total.toFixed(2) > 0.0 ? total.toFixed(2) : "0.00") + "%",
              CityMasterName: "...",
              CityMasterNameUrl: "/lexconsumableaccount",
              Town__c: "...",
                            isShowButton: false
                        });
                    } else {
                        let title = '';
            let title = "";
                        for (var key in this.fiscalYearOptions) {
                            if (
                                this.fiscalYearOption ==
                                this.fiscalYearOptions[key].value
                            )
              if (this.fiscalYearOption == this.fiscalYearOptions[key].value)
                                title = this.fiscalYearOptions[key].label;
                        }
                        this.showMyToast(title, '无数据', 'Error');
            this.showMyToast(title, "无数据", "Error");
                    }
                    this.isShowSpinner = false;
                } else {
                    console.log('r = ' + JSON.stringify(r));
                    this.showMyToast('Error', r.msg, 'Error');
          console.log("r = " + JSON.stringify(r));
          this.showMyToast("Error", r.msg, "Error");
                }
            })
            .catch((error) => {
                console.log('error = ' + JSON.stringify(error));
                this.showMyToast('Error', '销量前十客户初始化失败', 'Error');
        console.log("error = " + JSON.stringify(error));
        this.showMyToast("Error", "销量前十客户初始化失败", "Error");
            });
    }
@@ -712,75 +677,66 @@
        })
            .then((r) => {
                r = JSON.parse(JSON.stringify(r));
                console.log('r = ' + JSON.stringify(r));
                if (r.status == 'Success') {
        console.log("r = " + JSON.stringify(r));
        if (r.status == "Success") {
                    //分页
                    this.nextPageToken =
                        r.entity.paginatedAccounts.nextPageToken;
          this.nextPageToken = r.entity.paginatedAccounts.nextPageToken;
                    this.totalRecords = r.entity.paginatedAccounts.totalRecords;
                    this.recordStart = r.entity.paginatedAccounts.recordStart;
                    this.recordEnd = r.entity.paginatedAccounts.recordEnd;
                    this.totalPages = Math.ceil(
                        r.entity.paginatedAccounts.totalRecords / this.pageSize
                    );
                    console.log('this.totalPages = ' + this.totalPages);
                    this.paginationVisibility =
                        this.totalPages > 1 ? true : false;
          console.log("this.totalPages = " + this.totalPages);
          this.paginationVisibility = this.totalPages > 1 ? true : false;
                    this.pageRecords = r.entity.pageRecords;
                    console.log(
                        'this.pageRecords = ' + JSON.stringify(this.pageRecords)
                    );
          console.log("this.pageRecords = " + JSON.stringify(this.pageRecords));
                    for (var i in this.pageRecords) {
                        this.pageRecords[i]['Is_Active__c'] = this.pageRecords[
            this.pageRecords[i]["Is_Active__c"] = this.pageRecords[
                            i
                        ].Is_Active__c.replace('効', '效');
                        this.pageRecords[i]['NameUrl'] =
                            '/s/lexconsumableaccount?AccId=' +
                            this.pageRecords[i].Id;
                        this.pageRecords[i]['StateMasterName'] =
            ].Is_Active__c.replace("効", "效");
            this.pageRecords[i]["NameUrl"] =
              "/s/lexconsumableaccount?AccId=" + this.pageRecords[i].Id;
            this.pageRecords[i]["StateMasterName"] =
                            this.pageRecords[i].State_Master__r.Name;
                        this.pageRecords[i]['StateMasterUrl'] =
                            '/' + this.pageRecords[i].State_Master__c;
                        this.pageRecords[i]['CityMasterName'] =
            this.pageRecords[i]["StateMasterUrl"] =
              "/" + this.pageRecords[i].State_Master__c;
            this.pageRecords[i]["CityMasterName"] =
                            this.pageRecords[i].City_Master__r.Name;
                        this.pageRecords[i]['CityMasterNameUrl'] =
                            '/' + this.pageRecords[i].City_Master__c;
                        this.pageRecords[i]['RecordTypeName'] =
            this.pageRecords[i]["CityMasterNameUrl"] =
              "/" + this.pageRecords[i].City_Master__c;
            this.pageRecords[i]["RecordTypeName"] =
                            this.pageRecords[i].RecordType.Name;
                    }
                    this.isShowSpinner = false;
                } else {
                    this.showMyToast('Error', r.msg, 'Error');
          this.showMyToast("Error", r.msg, "Error");
                }
            })
            .catch((error) => {
                console.log('error = ' + JSON.stringify(error.message));
        console.log("error = " + JSON.stringify(error.message));
            });
    }
    showMyToast(title, message, variant) {
        this.isShowSpinner = false;
        console.log('show custom message');
        var iconName = '';
        var content = '';
        if (variant.toLowerCase() == 'success') {
            iconName = 'utility:check';
    console.log("show custom message");
    var iconName = "";
    var content = "";
    if (variant.toLowerCase() == "success") {
      iconName = "utility:check";
        } else {
            iconName = 'utility:error';
      iconName = "utility:error";
        }
        if (message != '') {
    if (message != "") {
            content =
                '<h2><strong>' +
                title +
                '<strong/></h2><h5>' +
                message +
                '</h5>';
        "<h2><strong>" + title + "<strong/></h2><h5>" + message + "</h5>";
        } else {
            content = '<h2><strong>' + title + '<strong/></h2>';
      content = "<h2><strong>" + title + "<strong/></h2>";
        }
        this.template
            .querySelector('c-common-toast')
      .querySelector("c-common-toast")
            .showToast(variant, content, iconName, 10000);
    }
@@ -801,28 +757,29 @@
    }
    onHandleSort(event) {
    console.log("event.detail.fieldName = " + event.detail.fieldName);
        this.sortBy = event.detail.fieldName;
        switch (this.sortBy) {
            case 'NameUrl':
                this.sortBy = 'Name';
      case "NameUrl":
        this.sortBy = "Name";
                break;
            case 'StateMasterUrl':
                this.sortBy = 'State_Master__r.Name';
      case "StateMasterName":
        this.sortBy = "State_Master__r.Name";
                break;
            case 'RecordTypeName':
                this.sortBy = 'RecordType.Name';
      case "RecordTypeName":
        this.sortBy = "RecordType.Name";
                break;
            case 'CityMasterNameUrl':
                this.sortBy = 'City_Master__r.Name';
      case "CityMasterName":
        this.sortBy = "City_Master__r.Name";
                break;
        }
        this.sortDirection = event.detail.sortDirection;
        this.currentPageToken = 0;
        console.log('this.sortBy = ' + this.sortBy);
        console.log('this.sortDirection = ' + this.sortDirection);
    console.log("this.sortBy = " + this.sortBy);
    console.log("this.sortDirection = " + this.sortDirection);
        this.changelistView();
        const { fieldName: sortedBy, sortDirection } = event.detail;
        this.sortByMethod(sortedBy, sortDirection === 'asc' ? 1 : -1);
    this.sortByMethod(sortedBy, sortDirection === "asc" ? 1 : -1);
        this.sortDirection = sortDirection;
        this.sortedBy = sortedBy;
    }