uview的折叠面板和u-tabs的扩展

news2024/12/24 20:46:23

 第一个:首先要安装uview UI框架 (已发布如何安装)

 第二个:使用uview 中的折叠面板(Collapse 折叠面板 | uView 2.0 - 全面兼容nvue的uni-app生态框架 - uni-app UI框架)

  第三点:明白一个插槽使用方式(代码如下)

<u-collapse :value="['0']">
  <u-collapse-item v-for="(item, index) in 5" :name="index">
    <view slot="title" class="power">标题内容</view>
    <!-- 此处为折叠内容的插槽 -->
  </u-collapse-item>
</u-collapse>

修改的内容是根据原型图来的 

注意点:如果title 上有 点击效果 一定要使用 click.stop  可以阻止change 原本事件的发生-----吃过亏一定 要注意的

下方是 我修改的一部分的内容 可以参考一下

先看效果图、

上代码

<template>
	<view class="content">
		<view class="navbar">
			<view v-for="(item, index) in navList" :key="index" class="nav-item" :class="{ current: tabCurrentIndex === index }" @click="tabClick(index)">
				{{ item.text }}({{ item.num }}条)
			</view>
		</view>
		<view v-if="tabCurrentIndex === 0">
			<u-collapse :value="['0']">
				<u-collapse-item v-for="(item, index) in 5" :name="index">
					<view slot="title" class="power">
						<view @click.stop="followup()" class="logo">+跟进</view>
						<view class="text">
							<view class="textname">张三</view>
							<view class="">13062758841</view>
						</view>
						<view class="callimg" @click.stop="networkcall()">
							<image class="callimg-img" src="./intercall.png" mode="widthFix"></image>
							<view class="callimg-text">网络电话</view>
						</view>
						<view class="callimg" @click.stop="mycall()">
							<image class="callimg-img" src="./mycall.png" mode="widthFix"></image>
							<view class="callimg-text">自己电话</view>
						</view>
					</view>
					<view class="u-collapse-content">
						<view class="post">
							<view class="col-6">渠道来源:李四</view>
							<view class="col-6">预产期:2023-06-29</view>
						</view>
						<view class="post">
							<view class="col-6">产检医院</view>
							<view class="col-6">上海第一人民医院</view>
						</view>
						<view class="post line">
							<view class="col-6">客户住址</view>
							<view class="col-6">上海市宝山区富锦路</view>
						</view>
					</view>
					<view class="models">
						<view class="post">
							<view class="col-6">王武 呼出</view>
							<view class="col-6">2023-06-29 13:35:20</view>
						</view>
						<view class="post">
							<view class="col-6">接入状态:拒接挂断</view>
							<view class="col-6">通话时长:00:05:52</view>
						</view>
					</view>
					<view class="models">
						<view class="post">
							<view class="col-6">王武 呼出</view>
							<view class="col-6">2023-06-29 13:35:20</view>
						</view>
						<view class="post">
							<view class="col-12">接入状态已经跟客户联系过,客户有意向可以持续跟进拒接挂断</view>
							<u-icon @click="isshow = true" class="icons" name="arrow-right" color="#1296db" size="25"></u-icon>
						</view>
					</view>
				</u-collapse-item>
			</u-collapse>
		</view>
		<view v-if="tabCurrentIndex === 1"></view>
		<!-- 跟进弹窗 -->
		<u-overlay :show="show">
			<view class="showmodel">
				<view class="title">
					添加跟进记录
					<u-icon @click="show = false" class="close" name="close" color="#000" size="23"></u-icon>
				</view>
				<view class="text">
					<u--textarea class="textarea" v-model="followtext" placeholder="请输入内容"></u--textarea>
				</view>
				<u-button class="primary-btn" type="primary" text="确认添加跟进记录"></u-button>
			</view>
		</u-overlay>
		<!-- 显示记录 -->
		<u-overlay :show="isshow">
			<view class="showmodel">
				<view class="title">
					添加跟进记录
					<u-icon @click="isshow = false" class="close" name="close" color="#000" size="23"></u-icon>
				</view>
				<view class="text">
					<u--textarea class="textarea" v-model="isfollowtext" placeholder="请输入内容"></u--textarea>
				</view>
			</view>
		</u-overlay>
		<!-- <button @click="callphone()">拨打电话</button> -->
	</view>
</template>

<script>
import { launchMiniprogram } from '@/utils/workwx/wxCodeAuth.js';
export default {
	data() {
		return {
			show: false,
			tabCurrentIndex: 0,
			followtext: '',
			isshow: false,
			isfollowtext: '',
			navList: [
				{
					text: '未跟进',
					num: 0
				},
				{
					text: '已跟进',
					num: 0
				}
			]
		};
	},
	methods: {
		// 点击跟进展开弹窗
		followup() {
			this.show = true;
		},
		// 网络电话
		networkcall() {
			const id = 'admin-1400811633';
			const phone = '13062758841';
			launchMiniprogram(id, phone);
		},
		// 自己电话
		mycall() {
			const phone = '13062758841';
			const res = uni.getSystemInfoSync();
			if (res.platform == 'ios') {
				uni.makePhoneCall({
					phoneNumber: phone,
					success() {},
					fail() {}
				});
			} else {
				uni.showActionSheet({
					itemList: [phone, '呼叫'],
					success: function (res) {
						console.log(res);
						if (res.tapIndex == 1) {
							uni.makePhoneCall({
								phoneNumber: phone
							});
						}
					}
				});
			}
		},
		//顶部tab点击
		tabClick(index) {
			this.tabCurrentIndex = index;
		}
	}
};
</script>

<style lang="scss" scoped>
.content {
	padding-top: 10px;
	width: 94%;
	margin: auto;
	/deep/.u-collapse-item {
		background-color: white;
		margin-top: 10rpx;
		border-radius: 10rpx;
	}
	/deep/.u-icon__icon--info {
		font-size: 30rpx !important;
		font-weight: 600 !important;
		color: #1296db;
	}
	/deep/.u-collapse-item__content__text {
		padding: 10rpx 15rpx;
		padding-bottom: 30rpx;
	}
	.post {
		position: relative;
		display: flex;
		color: black;
		font-size: 28rpx;
		line-height: 60rpx;
		padding: 0 40rpx;
		.icons {
			position: absolute;
			right: -5rpx;
			top: 0rpx;
			transform: translate(0, -50%);
		}
	}
	.line {
		border-bottom: 1rpx solid darkgrey;
	}
	.col-6 {
		width: 50%;
	}
	.col-6:nth-child(even) {
		text-align: right;
	}
	.col-12 {
		width: 100%;
		overflow: hidden;
		white-space: nowrap;
		text-overflow: ellipsis;
		-o-text-overflow: ellipsis;
		color: rgba(0, 0, 0, 0.6);
	}
	.models {
		border-radius: 10rpx;
		padding: 10rpx 0;
		background-color: rgba(0, 0, 0, 0.06);
		margin-top: 15rpx;
	}
	.power {
		display: flex;
		height: 90rpx;
		.logo {
			color: white;
			background-color: #1296db;
			font-size: 30rpx;
			width: 90rpx;
			height: 90rpx;
			line-height: 90rpx;
			border-radius: 50%;
			text-align: center;
		}
		.text {
			font-size: 28rpx;
			// line-height: 90rpx;
			padding-left: 10rpx;
			padding-right: 35rpx;
			display: flex;
			align-items: center;
			.textname {
				font-weight: 600;
				padding-right: 10rpx;
			}
		}
		.callimg {
			width: 100rpx;
			.callimg-img {
				width: 50rpx;
				margin: auto;
				display: block;
			}
			.callimg-text {
				font-size: 20rpx;
				text-align: center;
			}
		}
	}
	.navbar {
		display: flex;
		height: 38px;
		padding: 0px 10px 5px 5px;
		background: #fff;
		box-shadow: 0 1px 5px rgba(0, 0, 0, 0.06);
		position: relative;
		z-index: 10;
		border-radius: 10rpx;

		.nav-item {
			flex: 1;
			display: flex;
			justify-content: center;
			align-items: center;
			height: 100%;
			font-size: 15px;
			color: black;
			position: relative;

			&.current {
				color: rgb(95, 174, 227);
				font-weight: 600;

				&:after {
					content: '';
					position: absolute;
					left: 50%;
					bottom: 0;
					transform: translateX(-50%);
					width: 100%;
					height: 0;
					border-bottom: 2px solid rgb(95, 174, 227);
				}
			}
		}
	}
}
.showmodel {
	position: absolute;
	border-radius: 10rpx;
	padding-bottom: 20rpx;
	left: 50%;
	top: 40%;
	width: 90%;
	background-color: white;
	transform: translate(-50%, -50%);
	.title {
		font-size: 28rpx;
		line-height: 60rpx;
		border-bottom: 2rpx solid darkgray;
		padding: 0 20rpx;
	}
	.close {
		float: right;
		margin-top: 10rpx;
	}
	.text {
		padding: 20rpx;
		.textarea {
			border: 1rpx solid darkgray;
			height: 400rpx;
		}
	}
	.primary-btn {
		width: 80%;
	}
}
</style>

u-tabs 的扩展 一般都是一个标题和一个徽章  现在修改为 标题(剩余条数)

 

<u-tabs
			:list="tabList"
			@click="click"
			@change="changelist"
			lineWidth="150"
			lineHeight="2"
			lineColor="#02A7F0"
			:activeStyle="{
				color: '#02A7F0',
				fontWeight: 'bold'
			}"
			:inactiveStyle="{
				color: '#000000'
			}"
			itemStyle=" height: 34px; width: 44%"
		></u-tabs>
data() {
		return {
			notFollowUpCount: 40,
			followedUpCount: 0,
			 
		};
	},
	computed: {
		tabList() {
			return [{ name: `未跟进(${this.notFollowUpCount})` }, { name: `已跟进(${this.followedUpCount})` }];
		}
	},

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/702153.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

linux - spin lock实现分析

linux - spin lock实现分析 spinlock1 spinlock的数据结构2 spinlock的接口2.1 spin_lock_init2.2 spin_lock2.3 spin_unlock2.4 spin_lock_irq2.5 spin_unlock_irq2.6 spin_lock_irqsave2.7 spin_unlock_irqrestore2.8 spin_lock_bh2.9 spin_unlock_bh spinlock 1 spinlock的数…

第四十三章 开发Productions - ObjectScript Productions - 使用记录映射器 - 编辑记录映射字段和组合

文章目录 第四十三章 开发Productions - ObjectScript Productions - 使用记录映射器 - 编辑记录映射字段和组合编辑记录映射字段和组合NameDatatypeAnnotationWidth (fixed-width record maps only)RequiredRepeating (delimited record maps only)IgnoreTrailing Data (fixed…

RabbitMQ快速上手(延迟队列)

安装 官网 参考文章&#xff1a; ​ https://blog.csdn.net/miaoye520/article/details/123207661 ​ https://blog.csdn.net/lvoelife/article/details/126658695 安装Erlang&#xff0c;并添加环境变量ERLANG_HOME&#xff0c;命令行运行erl 安装rabbitmq&#xff0c;rab…

Pastebin设计之旅:从零设计网络文本存储系统

项目简介&#xff1a;Pastebin是一个在线的文本存储平台&#xff0c;让用户可以存储和分享代码片段或者其他类型的文本。它支持多种编程和标记语言的语法高亮&#xff0c;用户可以选择让他们的"paste"公开或私有。无需注册就可以使用&#xff0c;但注册用户可以更方便…

森海塞尔重磅推出TC Bars智能音视频一体机, 为中小型协作空间缔造理想解决方案

森海塞尔重磅推出TC Bars智能音视频一体机&#xff0c; 为中小型协作空间缔造理想解决方案 全球音频行业先驱森海塞尔重磅推出首款内置摄像头的可扩展一体化会议设备 德国韦德马克&#xff0c;2023年6月13日——森海塞尔作为先进音频技术的首选&#xff0c;致力于使协作与学习…

力扣 617. 合并二叉树

题目来源&#xff1a; C题解1&#xff1a;使用队列实现层序遍历。基于root1&#xff0c;遇到可覆盖部分&#xff0c;直接将该节点指向对应节点&#xff0c;遇到重复部分&#xff0c;则修改root1该节点相应的值。 /*** Definition for a binary tree node.* struct TreeNode {*…

超市零售数据可视化分析(Plotly 指南)

CSDN 上不能插入 HTML&#xff0c;可以在 GitHub Page 上查看&#xff1a; https://paradiseeee.github.io/2022/07/30/超市零售数据可视化分析/ 项目首次发布于 Kesci 上 – 超市零售数据分析。感兴趣的可以直接上去 Fork 之后自己做。由于上面只能用 Jupyter Notebook&#x…

多旋翼无人机试验系统设计与实现

摘 要 世界的航空业的大门被20世纪莱特兄弟制造的“飞行者一号”开启&#xff0c;直至今日处于飞速发展的阶段。随着时代的进步&#xff0c;各种微电子、微传感、通信技术的飞速发展&#xff0c;让无人机在时代内成为一种新型的空中力量。除了军用方面的多种用途&#xff0c;无…

《Linux操作系统编程》第九章 数据查找和筛选工具 : 了解流编辑器sed和报表生成器awk的简单使用

&#x1f337;&#x1f341; 博主 libin9iOak带您 Go to New World.✨&#x1f341; &#x1f984; 个人主页——libin9iOak的博客&#x1f390; &#x1f433; 《面试题大全》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33…

uni-app滚动分页 兼容(App 小程序 H5)

因为手机端本身屏幕空间不大 所以大家一般都会选择用滚动分页 首先 我在根目录下创建了一个 api目录 下面创建了一个bookApi.js 其中写了一个请求函数 getBookList 根据当前页 page 和 每页展示多少条 pageSize 获取数据 那么 我的组件代码是这样的 <template><scro…

MacBook Pro Apple M2 Max安装MySQL-8.0.33

文章目录 下载安装程序安装数据库配环境变量查看数据库状态 系统&#xff1a;macOS Ventura 芯片&#xff1a;M2 数据库&#xff1a;MySQL 8.0.33 下载安装程序 官网地址&#xff1a;https://www.mysql.com/ 点击页签“DOWLOADS“后将页面拖到底部&#xff0c;点MySQL Commu…

U盘的文件系统为FAT32才可以同时在苹果电脑和windows电脑中正常使用

文章目录 1.驱动器F中的磁盘未被格式化。想现在格式化吗&#xff1f;2.U盘插到苹果电脑上后无法写入 1.驱动器F中的磁盘未被格式化。想现在格式化吗&#xff1f; 我之前U盘的文件系统为exFAT&#xff0c;插入Windows Server 2003系统的电脑中&#xff0c;打开时弹出上面的提示框…

2023上半年软考系统分析师科目一整理-14

2023上半年软考系统分析师科目一整理-14 计算机系统性能评估中&#xff0c;( A )通常采用加法指令的运算速度来衡量计算机的速度。(D )首先计算出处理部件每个计算单元的有效计算率&#xff0c;再按不同字长加以调整&#xff0c;得出该计算单元的理论性能&#xff0c;所有组成该…

JavaFX学习:Observable Collections(观察集合)

JavaFX中的观察集合&#xff08;Observable Collections&#xff09;继承自Java的集合&#xff08;Collections&#xff09;。Java集合提供了List、Map、Set三种集合接口。JavaFX在Java集合基础上派生出可以监听集合内容变化的三种集合接口。接口如下&#xff1a; ObservableL…

【算法与数据结构】剑指 Offer 05、LeetCode替换空格

文章目录 一、题目二、双指针法三、完整代码 所有的LeetCode题解索引&#xff0c;可以看这篇文章——【算法和数据结构】LeetCode题解。 一、题目 二、双指针法 思路分析&#xff1a;这道题使用双指针法就能不用额外的辅助空间。首先计算字符串中的空格数量&#xff0c;然后重设…

函数模板和类模板 知识点总结 C++程序设计与算法笔记总结(七) 北京大学 郭炜

函数模板 交换两个整型变量的值的Swap函数&#xff1a; void Swap(int & x,int & y) { int tmp x; x y; y tmp; } 交换两个double型变量的值的Swap函数: void Swap(double & x,double & y) { double tmp x; x y; y tmp; }用函数模板解决&#xff1a; …

MAYA动力学曲线带动骨骼

例子 2 自由下落了 对比测试 尖端 太麻烦&#xff0c;使用风 nucleus1.windDirectionZ10*sin(time) 把球合成一个 删除一个解算器&#xff0c;就不动了

Redis 性能管理/优化 双一致性问题 缓存雪崩/击穿/穿透

---------------------- Redis 性能管理 ---------------------------------------- ----- 查看Redis内存使用 ----- info memoryredis-cli -a abc123 info memory ----- 内存碎片率 ----- used_memory_rss&#xff1a;是Redis向操作系统申请的内存。used_memory&#xff1a;是…

从有序顺序表中删除所有其值重复的元素(用不同的负数代替),使所有元素的值均不同。

题目要求&#xff1a;从有序顺序表中删除所有其值重复的元素&#xff08;用不同的负数代替&#xff09;&#xff0c;使所有元素的值均不同。 0&#xff1a;有序顺序表 1&#xff1a;删除所有其值重复的元素 2&#xff1a;用不同的负数代替 3&#xff1a;顺序表中所有元素的值均…

Maven中依赖使用范围

IDEA中help中show Log in Explorer可以查看idea日志 依赖使用范围 构建包含的流程&#xff1a;编译 &#xff0c;测试 &#xff0c;运行 &#xff0c;打包 &#xff0c;安装 &#xff0c;部署 comile test package install deploy 使用标签 1&#xff1a;compile 缺省值 伴随者…