当前位置: 首页 > news >正文

vue3组合式api单文件组件写法

一,模板部分 

<template><div class="device container"><breadcrumb :list="['首页', '应急处置']" /><div class="search_box"><div class="left"><span style="margin-right: 15px" @click="searchDevice">查询</span><el-date-picker v-model="time" type="datetimerange" start-placeholder="开始时间" end-placeholder="结束时间"format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" range-separator="至" /><el-button size="large" type="primary" class="searchButton" style="margin-top: -4px" @click="searchDevice">查询</el-button></div></div><!-- 表格 --><el-table :data="deviceList"><el-table-column prop="userName" label="处置人" align="center" /><el-table-column prop="commandTime" label="处置时间" align="center" /><el-table-column prop="method" label="处置指令" align="center" :formatter="methodFormatter" /><el-table-column prop="execList[0].status" label="指令状态" align="center" :formatter="exceFormatter" /><!-- 原因 --><el-table-column prop="reason" label="原因" align="center" /><el-table-column prop="param.vins[0]" label="车架号" align="center" width="180" /><el-table-column prop="execList[0].targetOrgName" label="所属企业" align="center" /><!-- 操作列 --><el-table-column label="操作" align="center"><template #default="scope"><el-button type="primary" @click="getDeta(scope.row.id)">查看</el-button></template></el-table-column></el-table><!-- 分页 --><div class="page"><el-pagination :current-page="queryInfo.pageNo" :page-size="queryInfo.pageSize" :total="total" backgroundprev-text="上一页" next-text="下一页" layout="sizes,prev, pager, next, jumper" :page-sizes="[10, 20, 50]"@current-change="handleCurrentChange" @size-change="handleSizeChange" /></div><!-- 详情信息对话框 --><el-dialog v-model="detaDialogVisible" title="应急处置详情" width="70%" :destroy-on-close="true" @close="detaClose"><el-form :model="deta"><el-row><el-col :span="12"><el-form-item label="处置人"><el-input v-model="deta.userName" /></el-form-item></el-col><el-col :span="12"><el-form-item label="处置时间"><el-input v-model="deta.commandTime" /></el-form-item></el-col></el-row><el-row><el-col :span="12"><el-form-item label="处置指令"><el-input v-model="deta.method" /></el-form-item></el-col><el-col :span="12"><el-form-item label="指令状态"><el-input v-model="status" /></el-form-item></el-col></el-row><el-row><el-col :span="12"><el-form-item label="原因"><el-input v-model="deta.reason" type="textarea" :row="2" /></el-form-item></el-col><el-col :span="12"><el-form-item label="内容"><el-input v-model="deta.content" type="textarea" :row="2" /></el-form-item></el-col></el-row><el-row><el-col :span="12"><el-form-item label="车架号"><el-select v-model="detaParam"><el-option v-for="item in deta.param.vins" :key="item" :label="item" :value="item" /></el-select></el-form-item></el-col><el-col :span="12"><el-form-item label="所属机构"><el-input v-model="targetOrgName" /></el-form-item></el-col></el-row></el-form><el-table :data="detaTable"><el-table-column prop="reqTime" label="请求时间" align="center" /><el-table-column prop="respTime" label="响应时间" align="center" /><el-table-column prop="status" label="状态" align="center" width="80" /><el-table-column prop="message" label="消息" align="center" /><el-table-column prop="data" label="数据" align="center" /></el-table><template #footer><span class="dialog-footer"><el-button @click="detaDialogVisible = false">取 消</el-button><el-button type="primary" @click="detaDialogVisible = false">确定</el-button></span></template></el-dialog></div>
</template>

二,js逻辑部分 

<script setup>
import { ref, reactive } from "vue";
import { queryCommand, getCommand } from "@/api/emergencyResponse";
const detaDialogVisible = ref(false)
const deviceList = ref([])
const total = ref(0)
const status = ref(null)
const detaParam = ref(null)
const targetOrgName = ref(null)
const time = ref([])
const detaTable = ref([])
const deta = ref({param: {}
})
const queryInfo = reactive({pageNo: 1,pageSize: 10,startTime: '',endTime: '',kind: 'Emergency',
})
const queryDevice = async () => {const res = await queryCommand(queryInfo)if (res.code == 0) {deviceList.value = res.datatotal.value = res.totalElements}
}
queryDevice()
const searchDevice = async () => {queryInfo.startTime = ""queryInfo.endTime = ""if (time.value != null) {queryInfo.startTime = time.value[0]queryInfo.endTime = time.value[1]}const res = await queryCommand(queryInfo)if (res.code == 0) {deviceList.value = res.datatotal.value = res.totalElements}
}
const getDeta = async (vin) => {detaDialogVisible.value = trueconst res = await getCommand(vin)deta.value = res.datastatus.value = deta.value.execList[0].statusdetaTable.value = deta.value.execList[0].execLogsdetaParam.value = deta.value.param.vins[0]targetOrgName.value = deta.value.execList[0].targetOrgName
}
</script>

http://www.lryc.cn/news/118053.html

相关文章:

  • Unity游戏源码分享-多角色fps射击游戏
  • 在Cesium中给管道添加水流效果
  • 测试平台——项目模块模型类设计
  • 【Android】MVC,MVP,MVVM三种架构模式的区别
  • 代码质量检查工具SonarQube
  • 开发命名规范
  • 12. Redis分布式高可用集群搭建
  • 【微信小程序篇】-请求封装
  • 区块链-Web3.0-什么是Web3.0?
  • 动手学深度学习(三)线性神经网络—softmax回归
  • ios swift alert 自定义弹框 点击半透明部分弹框消失
  • HCIP STP(生成树)
  • 【Unity开发必备】100多个 Unity 学习网址 资源 收藏整理大全【持续更新】
  • Alpine Ridge控制器使其具备多种使用模式 - 英特尔发布雷电3接口:竟和USB Type-C统一了
  • 容器——2.Collection 子接口之 List
  • 【工作记录】docker安装gitlab、重置密码@20230809
  • 数据挖掘的基本概念和大数据的特点
  • LabVIEW开发分段反射器测试台
  • 二级python和二级c哪个简单,二级c语言和二级python
  • E: Package ‘curl‘ has no installation candidate/ E:软件包没有可用的安装源
  • 代理模式及常见的3种代理类型对比
  • 8.6 校招 内推 面经
  • 【大数据之Flume】七、Flume进阶之自定义Sink
  • vue对于时间的处理
  • Apache DolphinScheduler 3.1.8 版本发布,修复 SeaTunnel 相关 Bug
  • 科技云报道:一波未平一波又起?AI大模型再出邪恶攻击工具
  • 深度对话|如何设计合适的网络经济激励措施
  • opencv带GStreamer之Windows编译
  • Java并发编程之锁的升级
  • 多核异构处理器A核与M核通信过程