You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.4 KiB
50 lines
1.4 KiB
import {LinkType} from '@ui/type'; |
|
import {saveConnection} from './link_set.service'; |
|
|
|
const mixinName = 'dec.dcm.minxin.linkset'; |
|
const Mixin = { |
|
setConnectionNameErr(err: string) { |
|
this.model.connectionNameErr = err; |
|
}, |
|
setEdit(type: boolean) { |
|
this.model.linkSelected = { |
|
...this.model.linkSelected, |
|
isSelected: type, |
|
}; |
|
this.model.linkUpdate = this.model.linkSelected; |
|
}, |
|
setCancel() { |
|
const linkSelected: LinkType = this.model.linkSelected; |
|
const linkList: LinkType[] = this.model.linkList; |
|
if (linkSelected.connectionId) { |
|
this.setEdit(false); |
|
} else { |
|
this.model.linkList = [ |
|
...linkList.filter(item => !!item.connectionId), |
|
]; |
|
if (this.model.linkList.length > 0) { |
|
this.model.linkList[0].isSelected = true; |
|
this.model.linkSelected = { |
|
...this.model.linkList[0], |
|
isSelected: false, |
|
}; |
|
} else { |
|
this.model.linkSelected = {}; |
|
} |
|
this.model.linkUpdate = this.model.linkSelected; |
|
} |
|
}, |
|
saveLink() { |
|
const pluginData = this.model.linkUpdate.text ? BI.Constants.getConstant(`dec.constant.database.conf.connect.form.${this.model.linkUpdate.text.toLowerCase()}.value`) : {}; |
|
const update = { |
|
...this.model.linkUpdate, |
|
...pluginData, |
|
}; |
|
saveConnection(update).then(() => { |
|
this.setEdit(false); |
|
}); |
|
}, |
|
}; |
|
|
|
Fix.mixin(mixinName, Mixin); |
|
export default mixinName;
|
|
|