import { LightningElement, track, wire, api } from 'lwc';
|
import {CurrentPageReference,NavigationMixin} from 'lightning/navigation';
|
import { getObjectInfo } from 'lightning/uiObjectInfoApi';
|
import Maintenance_Contract__c from '@salesforce/schema/Maintenance_Contract__c';
|
|
import init from '@salesforce/apex/lexToAddMaintenanceContractController.init';
|
import searchMc from '@salesforce/apex/lexToAddMaintenanceContractController.searchMc';
|
import exchangeMc from '@salesforce/apex/lexToAddMaintenanceContractController.exchangeMc';
|
|
export default class lexToAddMaintenanceContract extends LightningElement {
|
sobjectType = 'Maintenance_Contract__c';
|
@track labelMap = {};
|
@api recordId;
|
contractType;
|
textOpts;
|
text1;
|
cond1 = 'equals';
|
val1;
|
IsLoading = true;
|
allDatas = [];
|
allColumns = [];
|
selectedDatas = [];
|
selectedColumns = [];
|
searchHospital;
|
|
|
|
@wire(getObjectInfo, { objectApiName: Maintenance_Contract__c })
|
getMcInfo({data,error}){
|
if(data){
|
this.labelMap ={
|
'Name' : data.fields.Name.label,
|
'Management_Code__c' : data.fields.Management_Code__c.label,
|
'Hospital__c' : data.fields.Hospital__c.label,
|
'Service_Contract_Staff__c' : data.fields.Service_Contract_Staff__c.label,
|
}
|
this.textOpts = [{ label: this.labelMap.Management_Code__c, value: 'S:Management_Code__c' },
|
{ label:this.labelMap.Name, value: 'S:Name' }];
|
this.text1 = 'S:Management_Code__c';
|
|
|
this.allColumns =[
|
{ type: "button", typeAttributes: {
|
label: '选择',
|
name: 'Select',
|
title: '选择',
|
disabled: false,
|
value: '选择',
|
iconPosition: 'left' ,
|
}},
|
{ label: this.labelMap.Name,fieldName:'Name', type: 'text'},
|
{ label: this.labelMap.Management_Code__c, fieldName:"Management_Code__c", type: 'text'},
|
{ label: this.labelMap.Hospital__c, fieldName: 'Hospital__c', type: 'text'},
|
{ label: this.labelMap.Service_Contract_Staff__c, fieldName: 'Service_Contract_Staff__c', type: 'text'}];
|
|
this.selectedColumns =[
|
{ type: "button", typeAttributes: {
|
label: '删除',
|
name: 'Delete',
|
title: '删除',
|
disabled: false,
|
value: '删除',
|
iconPosition: 'left' ,
|
|
}},
|
{ label: this.labelMap.Name,fieldName:'Name', type: 'text'},
|
{ label: this.labelMap.Management_Code__c, fieldName:"Management_Code__c", type: 'text'},
|
{ label: this.labelMap.Hospital__c, fieldName: 'Hospital__c', type: 'text'},
|
{ label: this.labelMap.Service_Contract_Staff__c, fieldName: 'Service_Contract_Staff__c', type: 'text'}];
|
|
}
|
}
|
|
|
|
equalOpts = [{ label: '等于', value: 'equals' },
|
{ label:'包含', value: 'contains' }];
|
|
|
//==================服务打包合同的id================
|
ParamIdStr = ''; // url 参数Id
|
getQueryVariable(variable){
|
var query = window.location.search.substring(1);
|
var vars = query.split("&");
|
for (var i=0;i<vars.length;i++) {
|
var pair = vars[i].split("=");
|
if(pair[0] == variable){return pair[1];}
|
}
|
return(false);
|
}
|
handleSearchText(event) {
|
this.text1 = event.target.value;
|
console.log(this.text1);
|
}
|
handleSearchCond(event){
|
this.cond1 = event.target.value;
|
console.log(this.cond1);
|
}
|
handleSearchVal(event){
|
this.val1 = event.target.value;
|
console.log(this.val1);
|
}
|
handleSearchHospital(event) {
|
this.searchHospital = event.target.value;
|
console.log(this.searchHospital);
|
}
|
searchMc() {
|
this.IsLoading = true;
|
console.log('this.contractType:'+this.contractType);
|
searchMc({
|
contractType:this.contractType,
|
txt:this.text1,
|
con:this.cond1,
|
val:this.val1,
|
searchHospital:this.searchHospital
|
}).then(result => {
|
console.log(result);
|
var searchResultDatas = [];
|
for(let i=0;i<result.length;i++) {
|
var mcObj = {};
|
mcObj.Id = result[i].Id;
|
mcObj.Name = result[i].Name;
|
if(result[i].Hospital__r) {
|
mcObj.Hospital__c = result[i].Hospital__r.Name;
|
}
|
mcObj.Management_Code__c = result[i].Management_Code__c;
|
mcObj.Service_Contract_Staff__c = result[i].Service_Contract_Staff__r.Name;
|
if(!this.selectedDatas.some(mc=>mc.Id ===mcObj.Id)) {
|
searchResultDatas.push(mcObj);
|
}
|
}
|
this.allDatas = searchResultDatas;
|
this.IsLoading = false;
|
}).catch(error => {
|
console.log("error");
|
console.log(error);
|
});
|
|
}
|
|
|
connectedCallback(){
|
var selectedDatasTemp = [];
|
var allDatasTemp = [];
|
var contractType = this.getQueryVariable('contractType');
|
var paramId = this.getQueryVariable('id');
|
if (paramId == null || paramId == '') {
|
return ;
|
}
|
this.recordId = paramId;
|
if (contractType) {
|
this.contractType = contractType;
|
}
|
console.log(this.recordId);
|
console.log(this.contractType);
|
init({
|
recordId: this.recordId,
|
contractType:this.contractType
|
}).then(result => {
|
console.log(result);
|
for(let i=0;i<result.selectedMcLists.length;i++) {
|
var mcObj = {};
|
mcObj.Id = result.selectedMcLists[i].Id;
|
mcObj.Name = result.selectedMcLists[i].Name;
|
mcObj.Management_Code__c = result.selectedMcLists[i].Management_Code__c;
|
if(result.selectedMcLists[i].Hospital__r) {
|
mcObj.Hospital__c = result.selectedMcLists[i].Hospital__r.Name;
|
}
|
mcObj.Service_Contract_Staff__c = result.selectedMcLists[i].Service_Contract_Staff__r.Name;
|
selectedDatasTemp.push(mcObj);
|
}
|
for(let i=0;i<result.allMcLists.length;i++) {
|
var mcObj = {};
|
mcObj.Id = result.allMcLists[i].Id;
|
mcObj.Name = result.allMcLists[i].Name;
|
mcObj.Management_Code__c = result.allMcLists[i].Management_Code__c;
|
if(result.allMcLists[i].Hospital__r) {
|
mcObj.Hospital__c = result.allMcLists[i].Hospital__r.Name;
|
}
|
mcObj.Service_Contract_Staff__c = result.allMcLists[i].Service_Contract_Staff__r.Name;
|
if(!selectedDatasTemp.some(mc=>mc.Id ===mcObj.Id)) {
|
allDatasTemp.push(mcObj);
|
}
|
}
|
|
this.selectedDatas = selectedDatasTemp;
|
this.allDatas = allDatasTemp;
|
console.log(this.allDatas);
|
this.IsLoading = false;
|
|
|
}).catch(error => {
|
console.log("error");
|
console.log(error);
|
});
|
|
}
|
|
callRowAction(event) {
|
const recId = event.detail.row.Id;
|
const actionName = event.detail.action.name;
|
if (actionName === 'Delete') {
|
this.handleDeleteRow(recId);
|
} else if(actionName === 'Select') {
|
this.handleSelectRow(recId);
|
}
|
}
|
handleSelectRow(recId) {
|
console.log('select recId:'+recId);
|
let tempSelected = [];
|
let tempNotSelected = [];
|
this.selectedDatas.forEach((obj)=>{
|
tempSelected.push(obj);
|
});
|
this.allDatas.forEach((obj)=>{
|
if(obj.Id ===recId) {
|
tempSelected.push(obj);
|
} else {
|
tempNotSelected.push(obj);
|
}
|
});
|
this.selectedDatas = tempSelected;
|
this.allDatas = tempNotSelected;
|
}
|
handleDeleteRow(recId) {
|
console.log('delete recId:'+recId);
|
let tempSelected = [];
|
let tempNotSelected = [];
|
this.allDatas.forEach((obj)=>{
|
tempNotSelected.push(obj);
|
});
|
this.selectedDatas.forEach((obj)=>{
|
if(obj.Id ===recId) {
|
tempNotSelected.push(obj);
|
} else {
|
tempSelected.push(obj);
|
}
|
});
|
this.selectedDatas = tempSelected;
|
this.allDatas = tempNotSelected;
|
}
|
|
//获取选中MC
|
saveMc() {
|
this.IsLoading = true;
|
var selectedIds = [];
|
for (let i = 0; i < this.selectedDatas.length; i++) {
|
selectedIds.push(this.selectedDatas[i].Id);
|
}
|
exchangeMc({
|
selectedMcs:selectedIds,
|
recordId:this.recordId
|
}).then(result=>{
|
this.IsLoading = false;
|
if(result == '1') {
|
|
alert('合同添加成功');
|
window.location = '/'+this.recordId;
|
// window.open('/'+this.recordId, '_self');
|
} else {
|
alert(result);
|
}
|
console.log('exchangeMc:')
|
console.log(result);
|
});
|
|
}
|
}
|