344 lines
9.5 KiB
Vue
344 lines
9.5 KiB
Vue
|
<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.94m*2.02m",
|
|||
|
// 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>
|