【Vue】【uni-app】工单管理页面实现

用的是uni-app的uni-ui拓展组件实现的

功能是对工单进行一个展示,并对工单根据一些筛选条件进行搜索

目前是实现了除了日期之外的搜索功能,测试数据是下面这个tableData.js,都是我自己手写的,后端请求也稍微写了一些,不过没用上

export default [{
		"ID": "0001",
		"title": "火灾排查",
		"associateID": "00001",
		"kind": "紧急工单",
		"state": "待完成",
		"overdue": "否",
		"taskDate": "2023-01-02",
		"dispatchDate": "2023-01-02",
		"personID": "0001",
		"note": "xxxx",
	},
	{
		"ID": "0002",
		"title": "野狗出现",
		"associateID": "00001",
		"kind": "临时工单",
		"state": "已完成",
		"overdue": "否",
		"taskDate": "2023-01-02",
		"dispatchDate": "2023-01-02",
		"personID": "0003",
		"note": "xxxx",
	},
	{
		"ID": "0003",
		"title": "温度过高",
		"associateID": "00001",
		"kind": "紧急工单",
		"state": "已完成",
		"overdue": "否",
		"taskDate": "2023-01-02",
		"dispatchDate": "2023-01-02",
		"personID": "0005",
		"note": "xxxx",
	},
	{
		"ID": "0004",
		"title": "火灾排查",
		"associateID": "00001",
		"kind": "定时工单",
		"state": "逾期",
		"overdue": "否",
		"taskDate": "2023-01-02",
		"dispatchDate": "2023-01-02",
		"personID": "0002",
		"note": "xxxx",
	},
	{
		"ID": "0005",
		"title": "常规巡检",
		"associateID": "00001",
		"kind": "紧急工单",
		"state": "待完成",
		"overdue": "否",
		"taskDate": "2023-01-02",
		"dispatchDate": "2023-01-02",
		"personID": "0001",
		"note": "xxxx",
	},
	{
		"ID": "0006",
		"title": "常规巡检",
		"associateID": "00001",
		"kind": "紧急工单",
		"state": "待完成",
		"overdue": "否",
		"taskDate": "2023-01-02",
		"dispatchDate": "2023-01-02",
		"personID": "0001",
		"note": "xxxx",
	},
]

还有旁边的导航栏我给你们去掉一下,这样可以直接copy下来跑

 简陋代码如下:

<template>
<!-- 	<navgation /> -->
<!-- 	<view class="right"> -->
		<h2 class="section">工单管理</h2>
		<view class="section">
			<text>工单状态: </text>
			<view>
				<uni-data-checkbox v-model="state" :localdata="states" @change="inputState"></uni-data-checkbox>
			</view>
			<text>工单类型: </text>
			<view class="block">
				<uni-data-select v-model="kind" :localdata="kinds" @change="inputKind"></uni-data-select>
			</view>
		</view>
		<view class="section">
			<text>工单ID: </text>
			<view class="block">
				<uni-easyinput placeholder="请输入ID" @change="inputID"></uni-easyinput>
			</view>
			<text>负责人员ID: </text>
			<view class="block">
				<uni-easyinput placeholder="请输入ID" @change="inputPersonID"></uni-easyinput>
			</view>
			<text>关联养殖场ID: </text>
			<view class="block">
				<uni-easyinput placeholder="请输入ID" @change="inputAssociateID"></uni-easyinput>
			</view>
		</view>
		<view class="section">
			<text>派发日期: </text>
			<view class="block">
				<uni-datetime-picker type="range" v-model="dispatchDate"></uni-datetime-picker>
			</view>
		</view>
		<view class="section">
			<text>指定完成日期: </text>
			<view class="block">
				<uni-datetime-picker type="range" v-model="taskDate"></uni-datetime-picker>
			</view>
		</view>
		<view class="section">
			<view>
				<button type="primary" size="mini" @click="search">搜索</button>
			</view>
		</view>
		<view>
			<uni-table ref="table" :loading="loading" border stripe type="selection" emptyText="暂无更多数据"
				@selection-change="selectionChange">
				<uni-tr>
					<uni-th align="center">工单ID</uni-th>
					<uni-th align="center">工单标题</uni-th>
					<uni-th align="center">关联养殖场ID</uni-th>
					<uni-th align="center">工单类型</uni-th>
					<uni-th align="center">工单状态</uni-th>
					<uni-th align="center">逾期</uni-th>
					<uni-th align="center">指定完成日期</uni-th>
					<uni-th align="center">派发日期</uni-th>
					<uni-th align="center">负责人员ID</uni-th>
					<uni-th align="center">备注</uni-th>
					<uni-th align="center">操作</uni-th>
				</uni-tr>
				<uni-tr v-for="(item, index) in tableData" :key="index">
					<uni-td align="center">{{ item.ID }}</uni-td>
					<uni-td align="center">{{ item.title }}</uni-td>
					<uni-td align="center">{{ item.associateID }}</uni-td>
					<uni-td align="center">{{ item.kind }}</uni-td>
					<uni-td align="center">{{ item.state }}</uni-td>
					<uni-td align="center">{{ item.overdue }}</uni-td>
					<uni-td align="center">{{ item.taskDate }}</uni-td>
					<uni-td align="center">{{ item.dispatchDate }}</uni-td>
					<uni-td align="center">{{ item.personID }}</uni-td>
					<uni-td align="center">{{ item.note }}</uni-td>
					<uni-td align="center">
						<button size="mini" type="primary">详情</button>
						<button size="mini" type="warn">删除</button>
					</uni-td>
				</uni-tr>
			</uni-table>
			<view><uni-pagination show-icon :page-size="pageSize" :current="pageCurrent" :total="total"
					@change="change" /></view>
		</view>
<!-- 	</view> -->
</template>

<script>
	// import navigation from '../../components/navgation/navgation.vue';
	import tableData from '../../pages/WorkOrderManagement/tableData.js';
	export default {
		data() {
			return {
				state: 0,
				states: [{
					text: '全选',
					value: 0
				}, {
					text: '待完成',
					value: 1
				}, {
					text: '已完成',
					value: 2
				}, {
					text: '逾期',
					value: 3
				}],
				kind: '',
				kinds: [{
					text: '周期工单',
					value: 0
				}, {
					text: '临时工单',
					value: 1
				}, {
					text: '紧急工单',
					value: 2
				}],
				ID: "",
				personID: "",
				associateID: "",
				dispatchDate: [],
				taskDate: [],
				searchVal: '',
				tableData: [],
				// 每页数据量
				pageSize: 5,
				// 当前页
				pageCurrent: 1,
				// 数据总量
				total: 0,
				loading: false
			};
		},
		onLoad() {
			this.selectedIndexs = []
			this.getData(1)
		},
		methods: {
			inputID(e) {
				this.ID = e;
				this.searchVal = e;
			},
			inputPersonID(e) {
				this.personID = e;
				this.searchVal = e;
			},
			inputAssociateID(e) {
				this.associateID = e;
				this.searchVal = e;
			},
			inputState() {
				this.searchVal = this.states[this.state].text;
				if (this.searchVal == '全选') {
					this.searchVal = '';
				}
			},
			inputKind() {
				this.searchVal = this.kinds[this.kind].text;
			},
			// 多选处理
			selectedItems() {
				return this.selectedIndexs.map(i => this.tableData[i])
			},
			// 多选
			selectionChange(e) {
				this.selectedIndexs = e.detail.index
			},
			//批量删除
			delTable() {
				console.log(this.selectedItems())
			},
			// 分页触发
			change(e) {
				this.$refs.table.clearSelection()
				this.selectedIndexs.length = 0
				this.getData(e.current, this.searchVal)
			},
			// 搜索
			search() {
				this.getData(1, this.searchVal);
			},
			// 获取数据
			getData(pageCurrent, value = '') {
				this.loading = true
				this.pageCurrent = pageCurrent
				this.request({
					pageSize: this.pageSize,
					pageCurrent: pageCurrent,
					value: value,
					success: res => {
						// console.log('data', res);
						this.tableData = res.data
						this.total = res.total
						this.loading = false
					}
				})
			},
			// 伪request请求
			request(options) {
				const {
					pageSize,
					pageCurrent,
					success,
					value
				} = options;
				let total = tableData.length;
				let data = [];
				if (value) {
					// 如果有搜索值,根据条件筛选数据
					data = tableData.filter(item => {
						return (
							item.ID.includes(value) ||
							item.personID.includes(value) ||
							item.associateID.includes(value) ||
							item.kind.includes(value) ||
							item.state.includes(value)
						);
					});
					total = data.length;
				} else {
					// 如果没有搜索值,直接分页显示数据
					data = tableData;
				}
				data = data.slice((pageCurrent - 1) * pageSize, pageCurrent * pageSize);
				setTimeout(() => {
					typeof success === 'function' && success({
						data,
						total
					});
				}, 0);
			},
			// 向后端发送请求,暂没有使用
			fetchData() {
				// 向后端发送请求
				uni.request({
					url: 'https://your-backend-api-endpoint', // 替换为你的后端API地址
					method: 'GET',
					success: (res) => {
						// 请求成功处理逻辑
						if (res.statusCode === 200) {
							this.workOrders = res.data; // 将获取到的工单数据存储到data中的workOrders变量中
						} else {
							// 请求失败处理逻辑
							console.error('Request failed with status code', res.statusCode);
						}
					},
					fail: (error) => {
						// 网络请求失败处理逻辑
						console.error('Network request failed', error);
					}
				});
			}

		}
	}
</script>

<style lang="scss">
	.right {
		margin-top: 40rpx;
		margin-left: 440rpx;
	}

	.section {
		display: flex;
		align-items: center;
		column-gap: 20rpx;
		margin: 20rpx;
	}

	.block {
		width: 20%;
		border-radius: 10rpx;
	}

	button {
		margin: 10rpx;
		border-radius: 20rpx;
	}
</style>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

让你认识C++中的模板

目录 一. 泛型编程1、定义 二、函数模板1、定义2、格式3、函数模板的实例化&#xff08;1&#xff09;、强制转化&#xff08;2&#xff09;、显式实例化 三、类模板1、 类模板的定义格式2、实例3、 类模板的实例化 一. 泛型编程 1、定义 泛型编程&#xff1a;编写与类型无关…

电大搜题:为湖北开放大学学子提供便捷学习辅助工具

湖北开放大学作为一所具有重要社会影响力的学府&#xff0c;为广大在职人士和学习追求者提供了便利的高等教育机会。然而&#xff0c;在学习过程中&#xff0c;同学们常常会遇到繁重的课业压力和难以解决的学习难题。为了解决这一问题&#xff0c;湖北开放大学与广播电视大学合…

页表和cache

页表基本原理 页表主要用来将虚拟地址映射到物理地址&#xff0c;在使用虚拟地址访问内存时&#xff0c;微处理器首先将虚拟地址拆分成页号和页内偏移量&#xff0c;然后使用页号在页表中查找对应的物理页框号&#xff0c;将物理页地址加上页内偏移量&#xff0c;得到最终的物…

STM32 LED编程 GPIO的初始化(标准库)

实验的电路图介绍 实验的电路图类似于开漏接法 要初始化GPIOC接口 标准库的模板 GPIO的标准库编程接口 GPIO引脚的初始化 GPIO作为片上外设 每一个片上外设使用前一定要使能时钟 为什么要使能时钟&#xff1f;时钟是啥 时钟的使能 stm32的每一个片上外设都是时序电路 时序…

element-ui的form校验失败

数值与字符串混淆 数值 <el-input type"number" v-model.number"form.averageFruitWeight" placeholder"请输入平均单果重"/>字符串 fruitDevelopmentStage: [{pattern: ^[-\\]?([0-9]\\.?)?[0-9]$, message: 输入必须为数字, trigge…

AI由许多不同的技术组成,其中一些最核心的技术如下

AI由许多不同的技术组成&#xff0c;其中一些最核心的技术包括&#xff1a; 机器学习&#xff1a;这是一种让计算机从数据中学习的技术&#xff0c;它可以根据已有的数据预测未来的趋势和行为。机器学习包括监督学习、无监督学习和强化学习等多种类型。深度学习&#xff1a;这…

出现“线程无法访问非本线程创建的资源”的错误

出现原因 在WinForm中&#xff0c;如果你尝试在一个线程上操作另一个线程创建的控件&#xff0c;就会出现“线程无法访问非本线程创建的资源”的错误。这是因为Windows窗体的设计原则是单线程模型&#xff0c;即只有创建该控件的线程才能对其进行操作。 解决方法 1.使用 Contr…

【星海随笔】SDN neutron (一)

一、SDN的原理&#xff1a; 控制平面与数据平面分离&#xff1a;传统网络中&#xff0c;网络设备同时承担控制和数据转发功能&#xff0c;而SDN将这两个功能分离&#xff0c;使得网络控制集中在一个中心控制器上。 中心控制器&#xff1a;SDN架构中的中心控制器负责网络的全局…

强化学习 - 策略梯度(Policy Gradient)

引言 强化学习常见的方法为基于值函数或者基于策略梯度。 值函数&#xff1a;值函数最优时得到最优策略&#xff0c;即状态s下&#xff0c;最大行为值函数maxQ(s,a)对应的动作。 但对于机器人连续动作空间&#xff0c;动作连续时&#xff0c;基于值函数&#xff0c;存在以下问…

C语言C位出道心法(五):内存管理

C语言C位出道心法(一):基础语法 C语言C位出道心法(二):结构体|结构体指针|链表 C语言C位出道心法(三):共用体|枚举 C语言C位出道心法(四):文件操作 C语言C位出道心法(五):内存管理 一:C语言内存管理认知 二:C语言中内存堆|栈认知 三:C语言中引用内存丢失认知

秋招进入尾声了,还有哪些公司和岗位可以投递?

24届秋招基本已经进入尾声了&#xff0c;接下来就是秋招补录了&#xff0c;最近在微信群看到一些同学再问哪些公司还在招人的。 在这里跟大家分享一份2024届秋招信息汇总表&#xff0c;目前已更新2000家&#xff0c;不仅有互联网公司&#xff0c;还有外企、国企、各类研究所&am…

使用WinDbg分析CPU100%的问题

在我们软件运行的时候&#xff0c;偶尔会出现CPU占比100%的问题&#xff0c;而且极其不容易排查&#xff0c;概率极低&#xff0c;我硬是操作了一个下午&#xff0c;出现了一次&#xff0c;然后找到了dmp文件&#xff0c;也没有任何的规律&#xff0c;那么就可以借助windbg进行…

轻松下载网页音频和视频

在网页上看到好看的视频或者听到的音乐想保存&#xff0c;让我来教你&#xff08;仅供学习&#xff09; 注意&#xff1a;有极少部分的网站视频经过加密&#xff0c;无法下载 一、视频下载 1.打开视频网页 2.右键“检查” 3.刷新网页 4.按照下图中步骤操作 5.把复制的链接放…

如何利用产品帮助中心提升用户体验

在当今竞争激烈的市场中&#xff0c;提供优秀的用户体验是吸引和保留客户的关键。而一个高效和易于使用的产品帮助中心&#xff0c;正成为越来越多企业用以提升用户体验的重要工具。产品帮助中心是一个集中的信息库&#xff0c;为用户提供关于产品功能、故障排除、常见问题解答…

11.10

.text .global _start _start: 1.RCC时钟使能GPIOE RCC_MP_AHB4ENSETR[4]->1 LDR R0,0x50000a28 LDR R1,[R0] ORR R1,R1,#(0x3<<4) ORR R1,R1,#(0x1<<1) STR R1,[R0] 2.设置PE10为输出模式 GPIOE_MODER[21:20]->01 先清0 LDR R0,0x50006000 LDR R1,[R0]…

思科C9300交换机堆叠

思科C9300交换机堆叠仅支持同质堆叠&#xff0c;即仅以Cisco Catalyst 9300系列交换机作为堆叠成员的Cisco Catalyst 930O系列交换机堆叠。需要专用电缆&#xff0c;除数据交接支持堆叠外&#xff0c;还支持电源的堆叠。 在所有交换机上运行命令 "switch convert mode sta…

金融帝国实验室(Capitalism Lab)官方正版游戏『最新销售政策』

「金融帝国实验室」&#xff08;Capitalism Lab&#xff09;Enlight 官方正版游戏「2023双11特卖」 ■优惠时限&#xff1a;2023.11.01&#xff5e;11.30 ■游戏开发商&#xff1a;Enlight Software Ltd. 请您认准以下官方正版游戏购买链接&#xff1a;支持“支付宝&am…

如何在苹果iOS系统ipa应用中获取当前版本号和Bundle ID

在iOS应用开发过程中&#xff0c;了解如何获取和使用应用的当前版本号、Bundle ID和其他相关信息是至关重要的。无论是在应用内显示这些信息&#xff0c;还是在编写一些版本依赖的逻辑时&#xff0c;掌握这些知识点都将帮助开发者进行更有效的管理和维护。本文将详细介绍如何在…

数据分析是什么?

第一章- 数据分析是什么 数据分析是指 根据分析目的&#xff0c;用适当的分析方法及工具&#xff0c;对数据进行分析&#xff0c;提取有价值的信息&#xff0c;形成有效结论的过程。 数据分析的作用 通过观察数据&#xff0c;知道当前发生什么&#xff1f;通过具体的数据拆解…

Matplotlib数据可视化综合应用Matplotlib图形配置在线闯关_头歌实践教学平台

Matplotlib数据可视化综合应用图形配置 第1关 配置颜色条第2关 设置注释第3关 自定义坐标刻度第4关 配置文件与样式表 第1关 配置颜色条 任务描述 本关任务&#xff1a;使用colorbar绘制一个热成像图。 编程要求 在右侧编辑器Begin-End处补充代码&#xff0c;根据输入数据绘制…