uview的折叠面板扩展

news2024/11/16 11:58:16

 第一个:首先要安装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>

 

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

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

相关文章

uniapp生命周期全解析

我们学习uniapp的时候会学到uniapp的生命周期&#xff0c;uniapp做到了三端适配&#xff0c;但在学uniapp的时候最好有vue和微信小程序的基础&#xff0c;这样理解起来会非常快。 uniapp 的生命周期和 vue 的生命周期基本相同&#xff0c;但是在 uniapp 中还增加了一些特定的生…

Linux9.进程(下)(僵尸,孤儿,环境变量)

1.僵尸进程 危害 2.孤儿进程 3.进程的优先级 优先级 老的优先级(越小越先被执行) nice值(可以调) 4.几个概念 上下文数据 :一个进程在运行的过程中寄存器中产生的临时数据。 当进程被切下来的时候&#xff0c;需要带走自己的上下文数据&#xff0c;下次回来的时候恢复上去。…

java之路—— 带你了解Struts与其基本的应用

创作不易&#xff0c;各位亲给个免费的呗 文章目录 前言一、什么是Struts&#xff0c;可以用来干嘛二、Struts 与 springmvc三、Struts的开发的基本步骤四、Struts的处理流程 前言 Struts是在2000年由Apache软件基金会首次发布的&#xff0c;自那时以来&#xff0c;它在Java W…

webstorm2022 TS1109: Expression expected.

在使用webstorm2022&#xff0c;加入ESLint&#xff08;已禁用&#xff09;的情况下&#xff0c;编写vue3的typescript代码时&#xff0c;报错&#xff1a; TS1109: Expression expected. 原因&#xff1a;2022版本不支持volar&#xff0c;需升级到2023版本。 官方描述为&am…

二叉树题目:单值二叉树

文章目录 题目标题和出处难度题目描述要求示例数据范围 解法一思路和算法代码复杂度分析 解法二思路和算法代码复杂度分析 题目 标题和出处 标题&#xff1a;单值二叉树 出处&#xff1a;965. 单值二叉树 难度 3 级 题目描述 要求 如果二叉树每个结点都具有相同的值&am…

Matlab 校正镜头畸变图像

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 生活中一些针孔相机会给图像带来严重的失真,这主要是由于硬件和环境的因素所示导致的,其中主要的两种畸变是径向畸变和切向畸变。 径向畸变会导致直线看起来弯曲,即点距离图像中心越远,径向畸变就越大。例如,下…

hyperf 学习 一、搭建

docker中ubuntu容器php语言hyperf框架开发环境搭建。 docker地址&#xff1a;Docker tag:20.04 docker pull ubuntu:20.04docker run --name hyperf -v D:\workspace\docker\hyperf:/wj/hyperf -p 9501:9501 -it --privileged -u root --entrypoint /bin/sh ubuntu:20.04步骤…

聊聊ChatGPT是如何组织对话的

为什么要组织对话&#xff1f; 总所周知&#xff0c;ChatGPT的训练大致可分为下图中展示的几个阶段&#xff0c;其中&#xff0c;在Pretraining阶段&#xff0c;模型的训练数据是纯文本&#xff0c;目标是根据上文预测下一个token&#xff0c;而在后面的几个阶段中&#xff0c…

16年38款,iPhone中的哪一款有最深的印象?

6月29日是一个重要的日子&#xff0c;对于智能手机领域来说尤其如此。在16年前的今天&#xff0c;乔布斯发布了第一代iPhone手机&#xff0c;这个举动彻底改变了世界&#xff0c;智能手机从此成为我们日常生活中不可或缺的一部分。 我特意调查了一下&#xff0c;苹果在过去的16…

RocketMQ on openEuler 提供高性能消息队列的稳定性解决方案

RocketMQ on openEuler&#xff0c;是一种将 RocketMQ 消息中间件通过容器化的方式部署在 openEuler 操作系统上运行&#xff0c;借助 openEuler 系统对于 OS 缓存回收效率增强的内核特性&#xff0c;提升消息中间件在面向超大规模高并发、高吞吐量、低延迟场景下稳定性和可靠性…

git常用命令之远程仓库别名

12. 远程仓库别名 12.1 查看远程仓库名称 命令作用git remote查看关联的远程分支$ git remoteorigingit remote -v查看本地仓库关联的远程仓库信息$ git remote -vorigin gitgithub.com:kaku/reading-note-tutorails.git (fetch)origin gitgithub.com:kaku/reading-note-tuto…

Telnet实验、AAA认证实验、 配置文件备份和还原实验

Telnet实验 拓扑 需求 R1远程R2 配置步骤 1&#xff09;配置接口的IP地址 2&#xff09;在R2设备配置telnet远程 3&#xff09;使用R1远程R2 配置命令 第一步&#xff1a;配置R1的IP地址 <Huawei>un t m //关闭消息 <Huawei>sys //进入系统视图 [Huaw…

量化知识点

1&#xff1a;模型量化是将浮点数替换成整数&#xff0c;并进行存储和计算的方法。 原始float数据量化后int数据量化公式 2&#xff1a;非饱和方式量化、饱和方式量化&#xff0c;对称量化、非对称量化&#xff0c;区别与关系是&#xff1f; 这个是tensorRT的量化方案&#xf…

React hooks文档笔记(三) 状态

状态 一、如何设计组件状态的步骤二、状态构造原则1. 组相关状态2. 避免矛盾/互斥状态3. 避免多余状态4. 不要把props放进state&#xff0c;除非你特别想要阻止更新 三、状态保存/重置1. 相同位置的相同组件保留状态2. 同一位置不同元素reset状态 一、如何设计组件状态的步骤 …

如何使用ChatGPT的API(一)大语言模型如何工作

这篇文章介绍大语言模型的一些概念&#xff0c;包括它是如何工作的&#xff0c;什么是Token等等。 大语言模型如何工作 我们从一个示例开始说起。 当我们写一个提示“我喜欢吃”&#xff0c;然后要求一个大型语言模型根据这个提示填写后面可能的内容。它可能会说&#xff0c…

《PyTorch深度学习实践》第三讲 梯度下降

b站刘二大人《PyTorch深度学习实践》课程第三讲梯度下降笔记与代码&#xff1a;https://www.bilibili.com/video/BV1Y7411d7Ys?p3&vd_sourceb17f113d28933824d753a0915d5e3a90 上一讲例子中&#xff0c;初始权重 w w w是随机给的&#xff0c;然后计算每个样本 x x x的预测…

JavaWeb 笔记-1

JavaWeb 笔记-1 初始JavaWeb什么是JavaWeb 一、JDBC1.1、JDBC简介1.2、API详解-DriverManager1.3、API详解-Connection1.4、API详解-Statement1.5、API详解-ResultSet1.6、API详解-PreparedStatement1.6.1、API详解-PreparedStatement-SQL注入演示1.6.2、API详解-PreparedState…

RK3568平台开发系列讲解(外设篇)RFID 模块调试

🚀返回专栏总目录 文章目录 一、RFID 工作原理二、硬件连接三、驱动程序四、设备树五、测试程序沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇我们将讲解 RFID 模块调试。 一、RFID 工作原理 射频识别技术也就是 RFID,英文名为 Radio Frequency Identificati…

玻璃活动隔断安装需要注意什么

随着社会的发展和人们对空间利用的要求不断提高&#xff0c;玻璃活动隔断逐渐成为办公室和商业空间中常见的装修选择。玻璃活动隔断不仅可以有效分割空间&#xff0c;提供私密性&#xff0c;还能保持充足的采光和视觉效果。然而&#xff0c;为了确保玻璃活动隔断的安装质量和使…

PSP - MetaPredict 预测蛋白质序列的内源性无序区域 (Intrinsically Disordered Regions)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://blog.csdn.net/caroline_wendy/article/details/131461900 MetaPredict 算法简介&#xff1a; 内源性无序区域&#xff08;IDRs&#xff09;在所有生命领域中都普遍存在&#xff0c;并…