feat(card): 更新名片夹相关文本和导航,优化用户体验

This commit is contained in:
2026-10-12 15:56:40 +08:00
parent 053cb00826
commit 8cf70b617d
4 changed files with 8 additions and 45 deletions

View File

@@ -1489,7 +1489,7 @@
{
"path": "card/leads",
"style": {
"navigationBarTitleText": "我的线索",
"navigationBarTitleText": "潜在客户",
"enablePullDownRefresh": true
}
},

View File

@@ -10,12 +10,12 @@
</view>
</scroll-view>
<!-- 线索列表 -->
<!-- 客户列表 -->
<view class="lead-list">
<view v-for="(item, index) in list" :key="item.id || index" class="lead-item">
<view class="lead-top" @tap="callPhone(item.mobile)">
<view class="lead-name">{{ item.name || '未留姓名' }}</view>
<view class="lead-status" :class="'st-' + item.status">{{ item.status_text || '新线索' }}</view>
<view class="lead-status" :class="'st-' + item.status">{{ item.status_text || '新客户' }}</view>
</view>
<view class="lead-mobile" v-if="item.mobile" @tap="callPhone(item.mobile)">📱 {{ item.mobile }}</view>
<view class="lead-note" v-if="item.note">「{{ item.note }}」</view>
@@ -36,15 +36,15 @@
</view>
<ns-empty v-if="!isLoading && list.length === 0" isIndex="false"
:text="'暂无线索,访客在你的名片页留资后会出现在这里'"></ns-empty>
:text="'暂无意向客户,访客在你的名片页留资后会出现在这里'"></ns-empty>
</view>
</view>
</template>
<script>
// 与后端 Lead::STATUSES 一致: 0=新线索 1=已联系 2=已成交 3=无效
// 与后端 Lead::STATUSES 一致: 0=新客户 1=已联系 2=已成交 3=无效
const STATUS_MAP = [
{ value: 0, label: '新线索' },
{ value: 0, label: '新客户' },
{ value: 1, label: '已联系' },
{ value: 2, label: '已成交' },
{ value: 3, label: '无效' }

View File

@@ -19,15 +19,6 @@
<diy-group ref="diyGroup" v-if="diyData.value" :diyData="diyData" :scrollTop="scrollTop" />
<ns-copyright v-show="isShowCopyRight" />
<!-- 我的名片夹固定入口(P1)。
注意: 个人中心主菜单走 DIY 装修(diy-listmenu), 装修模式下
建议由后台加菜单项链接 /pages_tool/card/list; 本行为非装修分支的兜底入口 -->
<view class="card-wallet-entry" v-if="storeToken" @tap="tourl('/pages_tool/card/list')">
<text class="entry-icon">📇</text>
<text class="entry-title">我的名片夹</text>
<text class="entry-arrow">›</text>
</view>
<view class="foot">
<view class="item" @tap="tourl('/pages_tool/agreement/contenr?type=0')">{{
$lang('privacyPolicy') }}</view>
@@ -240,32 +231,4 @@ export default {
color: #fff;
}
/* 我的名片夹固定入口(P1) */
.card-wallet-entry {
display: flex;
align-items: center;
width: 80%;
margin: 40rpx auto 0;
padding: 24rpx 30rpx;
background-color: #fff;
border-radius: 16rpx;
box-shadow: 0 2rpx 8rpx rgba(0, 0, 0, 0.04);
.entry-icon {
font-size: 32rpx;
margin-right: 16rpx;
}
.entry-title {
flex: 1;
font-size: 28rpx;
color: #333;
font-weight: 500;
}
.entry-arrow {
color: #ccc;
font-size: 36rpx;
}
}
</style>

View File

@@ -258,10 +258,10 @@ test('card_id 编码幂等: 纯 ASCII 编号 encodeURIComponent 不变(双编码
});
// =============================================================
// 8. 名片夹入口导航走 $util.redirectTo(鸿蒙安全)
// 8. member/index.vue 的 tourl 导航走 $util.redirectTo(鸿蒙安全)
// =============================================================
test('名片夹入口: member/index.vue 的 tourl 走 $util.redirectTo', () => {
test('member/index.vue 的 tourl 走 $util.redirectTo(鸿蒙安全)', () => {
const memberSrc = fs.readFileSync(
path.resolve(__dirname, '../pages_tool/member/index.vue'), 'utf8');
const m = memberSrc.match(/tourl\(url\)\s*\{([\s\S]*?)\n\t\t\}/);