内部地址
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
18631081161 2026-04-06 14:09:54 +08:00
parent 3f23dee33f
commit 236ee5570e

View File

@ -16,7 +16,11 @@
{{ row.linkType === 'External' ? '外部链接' : '内部页面' }}
</template>
</el-table-column>
<el-table-column prop="linkUrl" label="链接地址" show-overflow-tooltip />
<el-table-column prop="linkUrl" label="链接地址" show-overflow-tooltip>
<template #default="{ row }">
{{ row.linkType === 'Internal' ? (internalPages.find(p => '/' + p.path === row.linkUrl)?.label || row.linkUrl) : row.linkUrl }}
</template>
</el-table-column>
<el-table-column prop="sortOrder" label="排序" width="80" />
<el-table-column label="启用状态" width="100">
<template #default="{ row }">
@ -56,13 +60,16 @@
</div>
</el-form-item>
<el-form-item label="链接类型" prop="linkType">
<el-select v-model="form.linkType" style="width: 100%;">
<el-select v-model="form.linkType" style="width: 100%;" @change="form.linkUrl = ''">
<el-option label="外部链接" value="External" />
<el-option label="内部页面" value="Internal" />
</el-select>
</el-form-item>
<el-form-item label="链接地址" prop="linkUrl">
<el-input v-model="form.linkUrl" placeholder="链接地址" />
<el-select v-if="form.linkType === 'Internal'" v-model="form.linkUrl" placeholder="请选择页面" style="width: 100%;" filterable>
<el-option v-for="p in internalPages" :key="p.path" :label="p.label" :value="'/' + p.path" />
</el-select>
<el-input v-else v-model="form.linkUrl" placeholder="请输入外部链接地址" />
</el-form-item>
<el-form-item label="排序权重" prop="sortOrder">
<el-input-number v-model="form.sortOrder" :min="0" />
@ -94,6 +101,31 @@ const formRef = ref(null)
const uploadHeaders = { Authorization: `Bearer ${localStorage.getItem('admin_token')}` }
/** 小程序内部页面列表 */
const internalPages = [
{ path: 'pages/index/index', label: '首页' },
{ path: 'pages/order-hall/order-hall', label: '订单大厅' },
{ path: 'pages/message/message', label: '消息' },
{ path: 'pages/mine/mine', label: '我的' },
{ path: 'pages/pickup/pickup', label: '代取' },
{ path: 'pages/delivery/delivery', label: '代送' },
{ path: 'pages/help/help', label: '万能帮' },
{ path: 'pages/purchase/purchase', label: '代购' },
{ path: 'pages/food/food', label: '美食街' },
{ path: 'pages/order/my-orders', label: '我的订单' },
{ path: 'pages/order/my-taken', label: '我的接单' },
{ path: 'pages/mine/earnings', label: '我的收益' },
{ path: 'pages/mine/profile', label: '编辑资料' },
{ path: 'pages/runner/certification', label: '跑腿认证' },
{ path: 'pages/config/agreement', label: '用户协议' },
{ path: 'pages/config/privacy', label: '隐私政策' },
{ path: 'pages/config/qrcode', label: '客服二维码' },
{ path: 'pages/config/runner-agreement', label: '跑腿协议' },
{ path: 'pages/message/system-msg', label: '系统消息' },
{ path: 'pages/message/order-notify', label: '订单通知' },
{ path: 'pages/mine/earnings-record', label: '收益记录' }
]
/** 上传成功回调 */
function onUploadSuccess(res) {
form.imageUrl = res.url