flying-monkey/pagesA/dataQuery/projectQuery.vue

344 lines
9.5 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<template>
<view class="content">
<statusNav returnColor="#c2c2c2" navBarTitle="(项目)查询结果"></statusNav>
<container-subgroup-two>
<view slot="content" style="margin: 0 -30rpx;">
<view class="project-list">
<view class="li animated fadeIn" @click="projectDetailsFun(item.id)" v-for="(item,index) in projectQuery" :key="index">
<view class="message pad-s10">
<!-- 项目图片 -->
<image class="img" :src="item.img" mode="aspectFill" lazy-load></image>
<view class="text">
<view class="title">{{item.name}}</view>
<view class="serial-number">项目编号{{item.code}}</view>
<view class="specification" v-if="item.model">{{item.model}}</view>
<view class="specification" v-if="item.size">{{item.size}}</view>
<view class="installation-site" v-if="item.installationSite">{{item.installationSite}}</view>
</view>
</view>
<view class="project-list-address disjbac">
<view class="address">
<image class="img flexs" src="../../static/iocn/im.png" mode="" lazy-load></image>
<!-- 地址 -->
<view class="text">{{item.address}}</view>
</view>
<!-- 时间 -->
<view class="date col6">{{item.date}}</view>
</view>
<!-- 状态 -->
<view class="icon" :style="{backgroundColor: item.statusStyle.color}">
<view class="posir disac" style="width: 135rpx;height: 40rpx;">
<span class="posia" :style="{border: `6rpx solid ${item.statusStyle.color}`,borderBottom: `6rpx solid transparent`,borderRight: `6rpx solid transparent`}" style="display: block;width: 0;height: 0;transform: rotate(45deg);right: -4rpx;top: 2rpx;"></span>
<span class="posia width100">{{item.statusStyle.text}}</span>
</view>
</view>
<!-- <view class="icon iconBer" v-if="item.state==0"></view>
<view class="icon iconBera" v-if="item.state==1"></view>
<view class="icon iconBerb" v-if="item.state==2"></view> -->
</view>
<pitera v-if="total==projectQuery.length && !ifLoading" textStr="查询数据加载完毕~" textFontSize="30rpx" textColor="#b5b2b2"></pitera>
</view>
</view>
</container-subgroup-two>
</view>
</template>
<script>
import statusNav from '../../components/status-nav.vue';
import containerSubgroupTwo from '@/components/containers/container-subgroup-two.vue';
import {queryFun} from '../../jsFile/public-api.js';
import pitera from '@/components/nothing/pitera.vue';
export default {
components:{
containerSubgroupTwo,
statusNav,
pitera
},
data() {
return {
projectQuery: [
// {
// id:1,
// name: "湖南工业大学化工学院会议室P2.5全彩LED显示屏",
// img: "../../static/del/img001.png",
// code: "20220108-1001",
// model: "DS-CK25FI/H",
// size: "3.94*2.02",
// installationSite: "xxx综合楼2楼会议室",
// address: "湖南省长沙市高新开发区谷园路109号像素大厦1205",
// date: "2022/01/08",
// state: 1
// }
],
list_rows:20,
page:1,
total:0,
key_word:'',//关键词
ifLoading:true
}
},
onReachBottom() {
if(this.total!=this.projectQuery.length) {
this.page++;
this.queryFunEv();
}
},
onLoad(op) {
if(op.key_word!=undefined) {
this.key_word = op.key_word;
// 调用查询(项目)列表事件
this.queryFunEv();
}
},
methods: {
projectDetailsFun(id){
uni.navigateTo({
url:`/pagesA/dataQuery/projectDetails?id=${id}`
})
},
// 查询(项目)列表事件
queryFunEv(){
uni.showLoading({
title:'加载中...',
mask:true
})
let params = {
type_id:2,
keyword:this.key_word,
list_rows:this.list_rows,
page:this.page
}
queryFun(params).then(res=>{
if(res.code) {
this.total = res.data.total;//设置总条数
if(this.page==1) this.projectQuery = [];
if(res.data.data.length) {
res.data.data.forEach(item=>{
let newTime = item.joint_starting_times.slice(0,10).split('-');
newTime = newTime.join('/');
let obj = {
id:item.project_id,
name: item.project_name,//项目名称
img: item.completed_img,//项目图片
code: item.project_number,//项目编号
model: item.product_model,//规格型号
size: item.product_size,//产品尺寸
installationSite: item.installation_location,//安装位置
address: item.address,//详细地址
date: newTime,
state: 1,
statusStyle:item.attributes//状态颜色和文字
}
this.projectQuery.push(obj);
})
}
} else {
this.$toolAll.tools.showToast(res.msg);
}
uni.hideLoading();
this.ifLoading = false;
})
},
bindPickerChange(data){
console.log(data)
},
bindDateChange(date){
console.log(date)
},
getDate(type) {
const date = new Date();
let year = date.getFullYear();
let month = date.getMonth() + 1;
let day = date.getDate();
if (type === 'start') {
year = year - 60;
} else if (type === 'end') {
year = year + 2;
}
month = month > 9 ? month : '0' + month;
day = day > 9 ? day : '0' + day;
console.log(year,month,day)
return `${year}-${month}-${day}`;
}
}
}
</script>
<style scoped>
page {
background-color: #F7F7F7;
}
.content{
}
.project-list-input {
width: 100%;
height: 114rpx;
position: relative;
padding: 20rpx 16rpx;
box-sizing: border-box;
background-color: #FFFFFF;
}
.project-list-input .int {
width: 100%;
height: 100%;
background-color: #F7F7F7;
padding: 0 25rpx;
box-sizing: border-box;
border-radius: 36rpx;
}
.project-list-input .search {
width: 28rpx;
height: 28rpx;
position: absolute;
right: 43rpx;
top: 50%;
margin-top: -14rpx;
}
.screen {
display: flex;
justify-content: space-around;
padding: 46rpx 20rpx;
}
.screen .li {
display: flex;
align-items: center;
}
.screen .li .text {
font-size: 32rpx;
color: #333333;
margin-right: 10rpx;
}
.screen .li .img {
width: 14rpx;
height: 8rpx;
}
.screen .li .imgA {
width: 24rpx;
height: 23rpx;
}
.project-list .li {
width: 100%;
box-sizing: border-box;
background-color: #FFFFFF;
position: relative;
margin: auto;
margin-bottom: 20rpx;
padding: 40rpx;
}
.project-list .li .icon {
width: 135rpx;
height: 40rpx;
position: absolute;
font-size: 24rpx;
color: #FFFFFF;
right: 23rpx;
line-height: 40rpx;
text-align: center;
background-size: 100% 100%;
top: 0rpx;
border-radius: 6rpx 0 6rpx 6rpx;
}
.project-list .li .message {
display: flex;
}
.project-list .li .message .img {
width: 230rpx;
margin-right: 16rpx;
height: 190rpx;
}
.project-list .li .message .text {
flex: 1;
}
.project-list .li .message .text .title {
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
overflow: hidden;
text-overflow: ellipsis;
word-wrap: break-word;
word-break: break-all;
margin-bottom: 15rpx;
font-size: 28rpx;
line-height: 30rpx;
color: #333333;
font-weight: bold;
}
.project-list .li .message .serial-number {
color: #ff8800;
font-size: 24rpx;
margin-bottom: 15rpx;
line-height: 24rpx;
}
.project-list .li .message .specification {
color: #00b1ff;
font-size: 24rpx;
margin-bottom: 15rpx;
line-height: 24rpx;
}
.project-list .li .message .installation-site {
color: #6b6a6a;
font-size: 24rpx;
margin-bottom: 15rpx;
line-height: 24rpx;
}
.project-list-address {
display: flex;
margin-top: 10rpx;
/* justify-content: space-between; */
}
.project-list-address .text {
font-size: 24rpx;
}
.project-list-address .date {
font-size: 24rpx;
text-align: right;
}
.project-list-address .img {
width: 23rpx;
height: 28rpx;
margin-right: 10rpx;
}
.project-list-address .address {
display: flex;
color: #666666;
align-items: center;
}
.pickerDate {
width: 300rpx;
height: 300rpx;
}
</style>