laravel - Laravel/VueJs。如何根据传入的列值显示不同颜色的按钮?
问题描述
我正在遍历用户表。每个用户表都有一个按钮,用于在用户表上切换(更新:布尔类型)用户状态。我希望每个用户的按钮在用户的状态值为 0 时显示为红色,在状态为 1 时显示为绿色。我还希望按钮在每次单击时根据状态值更改颜色(LIVE) .
组件:ToggleStatus.vue
<template>
<div>
<button type="button" v-bind:class="buttonStatus" @click="goOnline">
<span class="ion-ios-wifi" ></span>
</button>
</div>
</template>
<script>
export default {
props: ['userId', 'onlinestat'],
mounted() {
console.log('Component mounted.')
},
data: function() {
return {
status: this.onlinestat,
}
},
methods: {
goOnline() {
axios.post('/reservation/online/' + this.userId )
.then(response => {
this.status =! this.status;
console.log(response.data);
})
.catch(errors => {
if (errors.response.status == 401){
window.location = '/login';
}
});
}
},
computed: {
buttonStatus() {
return(this.status) ? 'btn btn-outline-danger text-danger' : 'btn btn-success ';
}
}
}
</script>
控制器:
$authUser = Auth::user()->business_id;
$employee = User::where('business_id', $authUser)->get()->sortBy('name');
return view('backend.reservation.index', compact('employee'));
视图/刀片
<div class="container-fluid flex-grow-1 container-p-y">
<div class="uikit-example">
<div class="row">
@foreach ($employee as $key => $emp)
<div class="col-lg-4 col-md-4 col-sm-12">
<div class="card mb-4">
<div class="card-body">
<div class="media align-items-center">
<img src="{{ asset('Upload/Images/Media/Avatar/Thumb/'.$emp->image) }}" alt class="ui-w-60 rounded-circle">
<div class="media-body pt-2 ml-3">
<h5 class="mb-2">{{ $emp->name }}</h5>
<div class="text-muted small mb-2">{{ $emp->phone }}</div>
<div class="text-muted small mb-2">{{ $emp->email }}</div>
<div class="text-muted small mb-2"><span>ID: </span>{{ $emp->user_code }}</div>
</div>
<div class="">
<toggleonline user-id="{{ $emp->id }}" onlinestat="{{ $emp->onlinestatus }}"></toggleonline>
</div>
</div>
</div>
<div class="card-footer text-center py-3">
{{-- <a href="#" class="btn btn-success rounded-pill">+ Go Online</a> --}}
{{-- <a href="#" class="btn icon-btn btn-default md-btn-flat rounded-pill"><span class="ion ion-md-mail"></span></a> --}}
{{-- <div class="float-right"> --}}
<a href="#" class="btn btn-primary rounded-pill mt-2"> My Reservations</a>
{{-- </div> --}}
</div>
</div>
</div>
@endforeach
</div>
</div>
</div>
我得到的结果是按钮确实切换,但所有用户的切换按钮在刷新页面或页面加载后变为红色。
解决方案
尝试
buttonStatus() {
return(this.status==0) ? 'btn btn-outline-danger text-danger' : 'btn btn-success ';
}
推荐阅读
- python - 使用 OpenCV 检测并替换从一张图像到另一张图像的区域
- c# - C# OpenGL OpenTK - 当我调整 eye.X 值时,相机会远离绘图
- javascript - 有没有办法阻止chrome使用javascript在chrome的下拉列表中显示建议?
- c++ - 使用make将一个目录下的所有cpp文件编译成自己的g++可执行文件
- python - 如何将随机项目从列表转换为字符串?
- c# - 如何在String C#中将单词或单词获取为char
- node.js - 你如何在 ramdaJS 中将数据操作到 Json
- sql - 如何将某个日期范围的 MS SQL 数据库数据复制到另一台计算机上的数据库中?
- .net-core - Update-Database 不会将迁移应用到数据库
- cassandra - 使用两个数据中心和 LOCAL_QUORUM 写入 Cassandra 时的同步延迟