-
{
- if (newLinkTag.type === 'url' || newLinkTag.type === 'ckb') setNewLinkTag({ ...newLinkTag, url: e.target.value })
- else setNewLinkTag({ ...newLinkTag, appId: e.target.value })
- }} />
+ {newLinkTag.type === 'miniprogram' && linkedMps.length > 0 ? (
+
+
{
+ const v = e.target.value
+ setMpSearchQuery(v)
+ setMpDropdownOpen(true)
+ if (!linkedMps.some((m) => m.key === v)) setNewLinkTag({ ...newLinkTag, appId: v })
+ }}
+ onFocus={() => {
+ setMpSearchQuery(newLinkTag.appId)
+ setMpDropdownOpen(true)
+ }}
+ onBlur={() => setTimeout(() => setMpDropdownOpen(false), 150)}
+ />
+ {mpDropdownOpen && (
+
+ {filteredLinkedMps.length === 0 ? (
+
无匹配,可手动输入密钥
+ ) : (
+ filteredLinkedMps.map((m) => (
+
+ ))
+ )}
+
+ )}
+
+ ) : (
+
{
+ if (newLinkTag.type === 'url' || newLinkTag.type === 'ckb') setNewLinkTag({ ...newLinkTag, url: e.target.value })
+ else setNewLinkTag({ ...newLinkTag, appId: e.target.value })
+ }}
+ />
+ )}
+
setNewLinkTag({ ...newLinkTag, pagePath: e.target.value })} />
@@ -2284,6 +2364,7 @@ export function ContentPage() {
return
}
const payload = { ...newLinkTag }
+ if (payload.type === 'miniprogram') payload.url = ''
await post('/api/db/link-tags', payload)
setNewLinkTag({ tagId: '', label: '', url: '', type: 'url', appId: '', pagePath: '' })
setEditingLinkTagId(null)
@@ -2325,7 +2406,9 @@ export function ContentPage() {
>
{t.type === 'url' ? '网页' : t.type === 'ckb' ? '存客宝' : '小程序'}
- {t.url && (
+ {t.type === 'miniprogram' ? (
+
{t.appId} {t.pagePath ? `· ${t.pagePath}` : ''}
+ ) : t.url ? (
{t.url}
- )}
+ ) : null}