+ {this.c.pickupView ? (
+ [
+
+ {h(viewShell, {
+ context: this.context,
+ params: this.params,
+ modal: { mode: ViewMode.EMBED },
+ modelData: this.c.pickupView,
+ onSelectionChange: this.onSelectionChange,
+ })}
+
,
+
+ {this.$props.value ? (
+ this.$props.value.split(',').map(item => {
+ return {item}; ;
+ })
+ ) : (
+ {this.c.placeHolder}
+ )}
+
,
+ ]
+ ) : (
+
{this.c.placeHolder}
+ )}
+
+ );
+ },
+});
diff --git a/src/editor/data-picker/ibiz-picker-link/ibiz-picker-link.scss b/src/editor/data-picker/ibiz-picker-link/ibiz-picker-link.scss
new file mode 100644
index 000000000..b936a4344
--- /dev/null
+++ b/src/editor/data-picker/ibiz-picker-link/ibiz-picker-link.scss
@@ -0,0 +1,11 @@
+@include b(picker-link) {
+ color: getCssVar('color', 'primary');
+ cursor: pointer;
+
+ @include m(disabled) {
+ cursor: not-allowed;
+ }
+ @include m(readonly) {
+ color: getCssVar('text-color', 'readonly');
+ }
+}
diff --git a/src/editor/data-picker/ibiz-picker-link/ibiz-picker-link.tsx b/src/editor/data-picker/ibiz-picker-link/ibiz-picker-link.tsx
new file mode 100644
index 000000000..b015134d4
--- /dev/null
+++ b/src/editor/data-picker/ibiz-picker-link/ibiz-picker-link.tsx
@@ -0,0 +1,59 @@
+import { defineComponent, ref, Ref, watch } from 'vue';
+import {
+ getDataPickerProps,
+ getEditorEmits,
+ useNamespace,
+} from '@ibiz-template/vue3-util';
+import './ibiz-picker-link.scss';
+import { PickerEditorController } from '../picker-editor.controller';
+
+export const IBizPickerLink = defineComponent({
+ name: 'IBizPickerLink',
+ props: getDataPickerProps