| | |
| | | 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' |
| | | } |
| | | }, |
| | | // { |
| | | // label: "省", |
| | |
| | | // }, |
| | | // }, |
| | | { |
| | | label: "省", |
| | | fieldName: "StateMasterName", |
| | | label: '省', |
| | | fieldName: 'StateMasterName', |
| | | hideDefaultActions: true, |
| | | wrapText: true, |
| | | sortable: true, |
| | | sortable: true |
| | | }, |
| | | { |
| | | label: "销售本部医院", |
| | | fieldName: "Salesdepartment_HP__c", |
| | | label: '销售本部医院', |
| | | fieldName: 'Salesdepartment_HP__c', |
| | | hideDefaultActions: true, |
| | | sortable: true, |
| | | wrapText: 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, |
| | | wrapText: true |
| | | }, |
| | | // { |
| | | // label: "客户记录类型", |
| | |
| | | // initialWidth: 130, |
| | | // }, |
| | | { |
| | | label: "政府等级", |
| | | fieldName: "Grade__c", |
| | | label: '政府等级', |
| | | fieldName: 'Grade__c', |
| | | hideDefaultActions: true, |
| | | sortable: true, |
| | | wrapText: true, |
| | | wrapText: true |
| | | }, |
| | | // { |
| | | // label: "OCSM分类(医院)", |
| | |
| | | // }, |
| | | // }, |
| | | { |
| | | label: "市", |
| | | fieldName: "CityMasterName", |
| | | label: '市', |
| | | fieldName: 'CityMasterName', |
| | | hideDefaultActions: true, |
| | | sortable: true, |
| | | wrapText: true, |
| | | wrapText: true |
| | | }, |
| | | { |
| | | label: "县/区", |
| | | fieldName: "Town__c", |
| | | label: '县/区', |
| | | fieldName: 'Town__c', |
| | | hideDefaultActions: true, |
| | | sortable: true, |
| | | wrapText: true, |
| | | wrapText: true |
| | | }, |
| | | { |
| | | label: "客户电话", |
| | | fieldName: "Phone", |
| | | label: '客户电话', |
| | | fieldName: 'Phone', |
| | | hideDefaultActions: true, |
| | | sortable: true, |
| | | wrapText: true, |
| | | }, |
| | | wrapText: true |
| | | } |
| | | ]; |
| | | |
| | | 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' } |
| | | } |
| | | }, |
| | | // { |
| | | // label: "市", |
| | |
| | | // }, |
| | | // }, |
| | | { |
| | | label: "市", |
| | | fieldName: "CityMasterName", |
| | | label: '市', |
| | | fieldName: 'CityMasterName', |
| | | hideDefaultActions: true, |
| | | wrapText: true, |
| | | wrapText: true |
| | | }, |
| | | { |
| | | label: "县/区", |
| | | fieldName: "Town__c", |
| | | label: '县/区', |
| | | fieldName: 'Town__c', |
| | | hideDefaultActions: true, |
| | | wrapText: 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", |
| | | 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, |
| | | hideDefaultActions: true |
| | | } |
| | | ]; |
| | | export default class LexConsumableAccount extends LightningElement { |
| | |
| | | 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草案中的医院", |
| | |
| | | // 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 pageSize = 10; |
| | | @track sortBy = ''; |
| | | @track pageSize = 200; |
| | | error; |
| | | records; |
| | | currentPageToken = 0; |
| | |
| | | @track pageNumber = 1; |
| | | @track paginationVisibility = false; |
| | | @track totalPages = 1; |
| | | pageSizeOptions = [10, 25, 50, 100]; |
| | | pageSizeOptions = [100, 200, 300]; |
| | | @track recordStart = 0; |
| | | @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: 'allYear' } |
| | | ]; |
| | | @track fiscalYearOption = 'thisYear'; |
| | | @track topInfo = []; |
| | |
| | | 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]); |
| | |
| | | |
| | | 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)) |
| | | this.accountDataInfo.name = r.entity.obj.Name; |
| | | this.accountDataInfo.ownerName = 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.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.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.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.address = r.entity.obj.Address__c; |
| | | this.accountDataInfo.parentName = r.entity.obj.Parent == null ? "" : r.entity.obj.Parent.Name; |
| | | console.log('this.accountDataInfo = ' + JSON.stringify(this.accountDataInfo)) |
| | | this.printUrl = "/lexconsumableaccountinfoprint?AccId=" + this.AccId; |
| | | this.isShowAccountInfo = true; |
| | | this.isShowSpinner = false; |
| | | } else { |
| | | console.log("r = " + JSON.stringify(r)); |
| | | this.showMyToast('Error', r.msg, 'Error'); |
| | | } |
| | | }).catch((error) => { |
| | | console.log("error = " + JSON.stringify(error)); |
| | | this.showMyToast('Error', '初始化失败', 'Error'); |
| | | }); |
| | | 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) |
| | | ); |
| | | this.accountDataInfo.name = r.entity.obj.Name; |
| | | this.accountDataInfo.ownerName = |
| | | 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.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.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.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.address = r.entity.obj.Address__c; |
| | | this.accountDataInfo.parentName = |
| | | r.entity.obj.Parent == null |
| | | ? '' |
| | | : r.entity.obj.Parent.Name; |
| | | console.log( |
| | | 'this.accountDataInfo = ' + |
| | | JSON.stringify(this.accountDataInfo) |
| | | ); |
| | | this.printUrl = |
| | | '/lexconsumableaccountinfoprint?AccId=' + |
| | | this.AccId; |
| | | this.isShowAccountInfo = true; |
| | | this.isShowSpinner = false; |
| | | } else { |
| | | console.log('r = ' + JSON.stringify(r)); |
| | | this.showMyToast('Error', r.msg, 'Error'); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | console.log('error = ' + JSON.stringify(error)); |
| | | this.showMyToast('Error', '初始化失败', 'Error'); |
| | | }); |
| | | } else { |
| | | init({ |
| | | pageSizeLWC: this.pageSize, |
| | | pageTokenLWC: this.currentPageToken, |
| | | fiscalYear: this.fiscalYearOption |
| | | }).then((r) => { |
| | | r = JSON.parse(JSON.stringify(r)); |
| | | 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.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; |
| | | }) |
| | | .then((r) => { |
| | | r = JSON.parse(JSON.stringify(r)); |
| | | 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.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; |
| | | |
| | | 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); |
| | | 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].State_Master__r.Name; |
| | | 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].RecordType.Name; |
| | | } |
| | | console.log( |
| | | "this.listViewOptions = " + JSON.stringify(this.listViewOptions) |
| | | ); |
| | | |
| | | console.log('r.entity.topInfo = ' + JSON.stringify(r.entity.topInfo)) |
| | | //top10客户 |
| | | this.topInfo = r.entity.topInfo; |
| | | console.log("this.topInfo = " + JSON.stringify(this.topInfo)); |
| | | this.topAccountData = this.topInfo.acList; |
| | | console.log( |
| | | "this.topAccountData = " + JSON.stringify(this.topAccountData) |
| | | ); |
| | | console.log('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].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].City_Master__r.Name; |
| | | this.topAccountData[i]["CityMasterNameUrl"] = "/" + this.topAccountData[i].City_Master__c; |
| | | this.topAccountData[i]["RecordTypeName"] = this.topAccountData[i].RecordType.Name; |
| | | 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.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 |
| | | ); |
| | | 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].State_Master__r.Name; |
| | | 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].RecordType.Name; |
| | | } |
| | | console.log( |
| | | 'this.listViewOptions = ' + |
| | | JSON.stringify(this.listViewOptions) |
| | | ); |
| | | |
| | | console.log('this.topAccountData = ' + JSON.stringify(this.topAccountData)); |
| | | |
| | | //其他 |
| | | if (total != 100) { |
| | | this.topAccountData.push({ |
| | | accountName: '...', |
| | | accountUrl: '/s/lexconsumableaccount', |
| | | isDisable: true, |
| | | proportion: total.toFixed(2) + '%', |
| | | CityMasterName: '...', |
| | | CityMasterNameUrl: '/lexconsumableaccount', |
| | | Town__c: '...', |
| | | isShowButton: false |
| | | }) |
| | | } else { |
| | | let title = ''; |
| | | for (var key in this.fiscalYearOptions) { |
| | | if (this.fiscalYearOption == this.fiscalYearOptions[key].value) |
| | | title = this.fiscalYearOptions[key].label; |
| | | console.log( |
| | | 'r.entity.topInfo = ' + |
| | | JSON.stringify(r.entity.topInfo) |
| | | ); |
| | | //top10客户 |
| | | this.topInfo = r.entity.topInfo; |
| | | console.log( |
| | | 'this.topInfo = ' + JSON.stringify(this.topInfo) |
| | | ); |
| | | this.topAccountData = this.topInfo.acList; |
| | | console.log( |
| | | 'this.topAccountData = ' + |
| | | JSON.stringify(this.topAccountData) |
| | | ); |
| | | console.log( |
| | | '9/3 = ' + |
| | | this.keepTwoDecimalStr( |
| | | this.amend(9, 3, '/').toFixed(2) |
| | | ) |
| | | ); |
| | | let total = 100; |
| | | try { |
| | | for (var i in this.topAccountData) { |
| | | 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].City_Master__r.Name; |
| | | this.topAccountData[i]['CityMasterNameUrl'] = |
| | | '/' + this.topAccountData[i].City_Master__c; |
| | | this.topAccountData[i]['RecordTypeName'] = |
| | | this.topAccountData[i].RecordType.Name; |
| | | 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.showMyToast(title, '无数据', 'Error'); |
| | | } |
| | | this.isShowSpinner = false; |
| | | } catch (error) { |
| | | console.log('error = ' + error.message) |
| | | } |
| | | |
| | | } else { |
| | | 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( |
| | | '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', |
| | | isDisable: true, |
| | | proportion: |
| | | (total.toFixed(2) > 0.0 |
| | | ? total.toFixed(2) |
| | | : '0.00') + '%', |
| | | CityMasterName: '...', |
| | | CityMasterNameUrl: '/lexconsumableaccount', |
| | | Town__c: '...', |
| | | isShowButton: false |
| | | }); |
| | | } else { |
| | | let title = ''; |
| | | for (var key in this.fiscalYearOptions) { |
| | | if ( |
| | | this.fiscalYearOption == |
| | | this.fiscalYearOptions[key].value |
| | | ) |
| | | title = |
| | | this.fiscalYearOptions[key].label; |
| | | } |
| | | this.showMyToast(title, '无数据', 'Error'); |
| | | } |
| | | this.isShowSpinner = false; |
| | | } catch (error) { |
| | | console.log('error = ' + error.message); |
| | | } |
| | | } else { |
| | | console.log('r = ' + JSON.stringify(r)); |
| | | this.showMyToast('Error', r.msg, 'Error'); |
| | | } |
| | | }) |
| | | .catch((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); |
| | | var str1 = num1.toString(), |
| | | str2 = num2.toString(), |
| | | result, |
| | |
| | | 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: |
| | |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | |
| | | keepTwoDecimalStr(num) { |
| | | const result = Number(num.toString().match(/^\d+(?:\.\d{0,2})?/)); |
| | |
| | | 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': |
| | | this.viewOption = value; |
| | |
| | | this.isShowSpinner = true; |
| | | changeFiscalYearView({ |
| | | fiscalYear: this.fiscalYearOption |
| | | }).then((r) => { |
| | | r = JSON.parse(JSON.stringify(r)); |
| | | console.log("r = " + JSON.stringify(r)); |
| | | if (r.status == "Success") { |
| | | //top10客户 |
| | | this.topInfo = r.entity.topInfo; |
| | | console.log("this.topInfo = " + JSON.stringify(this.topInfo)); |
| | | this.topAccountData = this.topInfo.acList; |
| | | console.log( |
| | | "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"] = this.topAccountData[i].State_Master__r.Name; |
| | | 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].RecordType.Name; |
| | | 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 + '%'; |
| | | } |
| | | |
| | | // //其他 |
| | | if (total != 100) { |
| | | this.topAccountData.push({ |
| | | accountName: '...', |
| | | accountUrl: '/s/lexconsumableaccount', |
| | | isDisable: true, |
| | | proportion: total.toFixed(2) + '%', |
| | | CityMasterName: '...', |
| | | CityMasterNameUrl: '/lexconsumableaccount', |
| | | Town__c: '...', |
| | | isShowButton: false |
| | | }) |
| | | } else { |
| | | let title = ''; |
| | | for (var key in this.fiscalYearOptions) { |
| | | if (this.fiscalYearOption == this.fiscalYearOptions[key].value) |
| | | title = this.fiscalYearOptions[key].label;; |
| | | }) |
| | | .then((r) => { |
| | | r = JSON.parse(JSON.stringify(r)); |
| | | console.log('r = ' + JSON.stringify(r)); |
| | | if (r.status == 'Success') { |
| | | //top10客户 |
| | | this.topInfo = r.entity.topInfo; |
| | | console.log( |
| | | 'this.topInfo = ' + JSON.stringify(this.topInfo) |
| | | ); |
| | | this.topAccountData = this.topInfo.acList; |
| | | console.log( |
| | | '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'] = |
| | | this.topAccountData[i].State_Master__r.Name; |
| | | 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].RecordType.Name; |
| | | 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.showMyToast(title, '无数据', 'Error'); |
| | | } |
| | | |
| | | this.isShowSpinner = false; |
| | | } else { |
| | | console.log("r = " + JSON.stringify(r)); |
| | | this.showMyToast('Error', r.msg, 'Error'); |
| | | } |
| | | }).catch((error) => { |
| | | console.log("error = " + JSON.stringify(error)); |
| | | this.showMyToast('Error', '销量前十客户初始化失败', 'Error'); |
| | | }); |
| | | // //其他 |
| | | if (total != 100) { |
| | | this.topAccountData.push({ |
| | | accountName: '...', |
| | | accountUrl: '/s/lexconsumableaccount', |
| | | isDisable: true, |
| | | proportion: |
| | | (total.toFixed(2) > 0.0 |
| | | ? total.toFixed(2) |
| | | : '0.00') + '%', |
| | | CityMasterName: '...', |
| | | CityMasterNameUrl: '/lexconsumableaccount', |
| | | Town__c: '...', |
| | | isShowButton: false |
| | | }); |
| | | } else { |
| | | let title = ''; |
| | | for (var key in this.fiscalYearOptions) { |
| | | if ( |
| | | this.fiscalYearOption == |
| | | this.fiscalYearOptions[key].value |
| | | ) |
| | | title = this.fiscalYearOptions[key].label; |
| | | } |
| | | this.showMyToast(title, '无数据', 'Error'); |
| | | } |
| | | |
| | | this.isShowSpinner = false; |
| | | } else { |
| | | console.log('r = ' + JSON.stringify(r)); |
| | | this.showMyToast('Error', r.msg, 'Error'); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | console.log('error = ' + JSON.stringify(error)); |
| | | this.showMyToast('Error', '销量前十客户初始化失败', 'Error'); |
| | | }); |
| | | } |
| | | |
| | | changelistView() { |
| | |
| | | pageSizeLWC: this.pageSize, |
| | | pageTokenLWC: this.currentPageToken, |
| | | sortFieldLWC: this.sortBy, |
| | | sortOrderLWC: this.sortDirection, |
| | | sortOrderLWC: this.sortDirection |
| | | }) |
| | | .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[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].City_Master__r.Name; |
| | | this.pageRecords[i]["CityMasterNameUrl"] = "/" + this.pageRecords[i].City_Master__c; |
| | | this.pageRecords[i]["RecordTypeName"] = this.pageRecords[i].RecordType.Name; |
| | | 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].City_Master__r.Name; |
| | | 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'); |
| | | } |
| | | }).catch((error) => { |
| | | console.log('error = ' + JSON.stringify(error.message)) |
| | | }) |
| | | .catch((error) => { |
| | | console.log('error = ' + JSON.stringify(error.message)); |
| | | }); |
| | | } |
| | | |
| | |
| | | iconName = 'utility:error'; |
| | | } |
| | | if (message != '') { |
| | | content = '<h2><strong>' + title + '<strong/></h2><h5>' + message + '</h5>'; |
| | | 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); |
| | | this.template |
| | | .querySelector('c-common-toast') |
| | | .showToast(variant, content, iconName, 10000); |
| | | } |
| | | |
| | | sortByMethod(field, reverse, primer) { |
| | | const key = primer |
| | | ? function (x) { |
| | | return primer(x[field]); |
| | | } |
| | | return primer(x[field]); |
| | | } |
| | | : function (x) { |
| | | return x[field]; |
| | | }; |
| | | return x[field]; |
| | | }; |
| | | |
| | | return function (a, b) { |
| | | a = key(a); |
| | |
| | | } |
| | | |
| | | 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; |
| | | } |
| | |
| | | get nextButtonDisabled() { |
| | | return this.nextPageToken === undefined; |
| | | } |
| | | } |
| | | } |