You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
309 lines
9.1 KiB
309 lines
9.1 KiB
<template> |
|
<u-row> |
|
<u-col> |
|
<view class="card-container border-box"> |
|
<view class="card-item border-box" v-for="(item,index) in lists"> |
|
<view class="card-main border-box"> |
|
<view class="background-view " :class="item.status === 1 ?'blue':'green'"></view> |
|
<view class="title-group row"> |
|
<view class="label">提交时间</view> |
|
<view class="content">{{item.create_time}}</view> |
|
<view class="status" :class="item.status === 1 ?'blue':'green'">{{ item.status === 1 ?'待办结':'已办结' }}</view> |
|
</view> |
|
<view class="main-hr"></view> |
|
<view class="body-group border-box"> |
|
<view class="body-item row"> |
|
<view class="label">事件类型</view> |
|
<view class="content">{{item.clue_type}}</view> |
|
</view> |
|
<view class="body-item row"> |
|
<view class="label">事件地址</view> |
|
<view class="content col"> |
|
<u-text |
|
:text="item.address" |
|
size="28" |
|
color="#020B18" |
|
custom-style="display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 1; overflow: hidden; "></u-text> |
|
|
|
</view> |
|
</view> |
|
<view class="body-item row"> |
|
<view class="label">文字说明</view> |
|
<view class="content">{{item.describe}}</view> |
|
</view> |
|
<view class="body-item row image" v-if="item.images || item.video"> |
|
<view class="label">图片视频</view> |
|
<view class="content row"> |
|
<view class="content-img col-6" v-for="itemImg in item.images" v-if="item.images"> |
|
<u-image v-show="itemImg" :src="itemImg" :lazy-load="true" width="100%" height="180" mode="widthFix"></u-image> |
|
</view> |
|
<view class="content-img col-6" v-if="item.video"> |
|
<video v-show="item.video" :src="item.video" style="width:100%;height:180rpx"></video> |
|
</view> |
|
</view> |
|
</view> |
|
</view> |
|
</view> |
|
<view class="card-ext"> |
|
<view class="card-main border-box" v-if="item.handle_time && (item.status ===2)"> |
|
<view class="line-gun-container"> |
|
<view class="line-gun row"> |
|
<u-image mode="widthFix" width="24" height="84" :src="staticImage.lineGun"></u-image> |
|
<u-image mode="widthFix" width="24" height="84" :src="staticImage.lineGun"></u-image> |
|
</view> |
|
</view> |
|
<view class="body-group border-box"> |
|
<view class="body-item row"> |
|
<view class="label">处理时间</view> |
|
<view class="content">{{item.handle_time}}</view> |
|
</view> |
|
<view class="body-item row"> |
|
<view class="label">处理部门</view> |
|
<view class="content">{{item.handle_department}}</view> |
|
</view> |
|
<view class="body-item row"> |
|
<view class="label">丰行侠暖新币</view> |
|
<view class="content orange">{{ item.coin_number }}币</view> |
|
</view> |
|
<view class="body-item row image"> |
|
<view class="label">处理结果</view> |
|
<view class="content"> |
|
{{item.handle_res}} |
|
</view> |
|
<!-- <view class="content row">--> |
|
<!-- <view class="content-img col-6">--> |
|
<!-- <u-image :src="item.video" :lazy-load="true" width="100%" height="180" mode="widthFix"></u-image>--> |
|
<!-- </view>--> |
|
<!-- <view class="content-img col-6">--> |
|
<!-- <u-image :src="item.video" :lazy-load="true" width="100%" height="180" mode="widthFix"></u-image>--> |
|
<!-- </view>--> |
|
<!-- </view>--> |
|
</view> |
|
</view> |
|
</view> |
|
</view> |
|
</view> |
|
<u-loadmore :status="status" fontSize="28" marginBottom="50" marginTop="30" @loadmore="getLineList()"/> |
|
</view> |
|
</u-col> |
|
</u-row> |
|
<uv-datetime-picker |
|
ref="startTimePicker" |
|
v-model="pages.starttime" |
|
@confirm="selectStart" |
|
mode="date" |
|
></uv-datetime-picker> |
|
<uv-datetime-picker |
|
ref="endTimePicker" |
|
v-model="pages.endtime" |
|
@confirm="selectEnd" |
|
mode="date" |
|
></uv-datetime-picker> |
|
<uv-picker |
|
ref="typePicker" |
|
:show="typeShow" |
|
:columns="[columns]" |
|
keyName="name" |
|
@close="typeShow = false" |
|
@cancel="typeShow = false" |
|
@confirm="selectType"></uv-picker> |
|
</template> |
|
|
|
<script> |
|
import { |
|
imghost |
|
} from '@/config/host.js' |
|
import api from '@/utils/functions.js'; |
|
import MzCard from "@/components/MzCard/index.vue"; |
|
import {lineList, lineType} from "@/api/line"; |
|
import {userLineList} from "@/api/user"; |
|
|
|
|
|
export default { |
|
components:{ |
|
MzCard |
|
}, |
|
name:'lineLists', |
|
props:{ |
|
isUserList:{ |
|
type:Boolean, |
|
default:false |
|
} |
|
}, |
|
data() { |
|
return { |
|
columns:[], |
|
typeShow:false, |
|
startShow:false, |
|
endShow:false, |
|
status: 'loadmore', |
|
page:1, |
|
lists: [], |
|
title: '暖新人', |
|
loading: true, |
|
pages:{ |
|
page:1, |
|
limit:10, |
|
clue_type_id:'', |
|
status:'', |
|
starttime:'', |
|
endtime:'', |
|
}, |
|
staticImage:{ |
|
lineGun:imghost+'/line-gun.png' |
|
} |
|
} |
|
}, |
|
onLoad() { |
|
|
|
}, |
|
onReady() { |
|
let that = this; |
|
let info = uni.createSelectorQuery().in(this).select('.foot-button'); |
|
info.boundingClientRect(function (data) { |
|
that.size.height = data.height; |
|
}).exec(function (res) {}); |
|
}, |
|
methods: { |
|
showStartTimePicker(){ |
|
this.$refs.startTimePicker.open(); |
|
}, |
|
showEndTimePicker(){ |
|
this.$refs.endTimePicker.open(); |
|
}, |
|
showTypePicker(){ |
|
this.$refs.typePicker.open(); |
|
}, |
|
//获取线索类型 |
|
getLineType(){ |
|
lineType({}).then((res) => { |
|
this.columns = res.data; |
|
}) |
|
}, |
|
checkboxClick(index){ |
|
this.tags[index].checked = !this.tags[index].checked; |
|
}, |
|
userCouponsPage() { |
|
wx.navigateTo({ |
|
url: '/pages/UserCoupons/index' |
|
}) |
|
}, |
|
navTo(url) { |
|
wx.navigateTo({ |
|
url: url |
|
}) |
|
}, |
|
updateUserInfo() { |
|
|
|
}, |
|
getLineList(clear = false){ |
|
console.log('getLineList') |
|
if(clear){ |
|
this.status = 'loadmore' |
|
this.pages.page = 1; |
|
this.pages.limit = 10; |
|
this.lists = []; |
|
} |
|
if(this.status === 'nomore'){ |
|
return false; |
|
} |
|
this.status = 'loading'; |
|
let data = this.pages; |
|
data.starttime = uni.$u.timeFormat(data.starttime, 'yyyy-mm-dd 00:00:00') |
|
data.endtime = uni.$u.timeFormat(data.endtime, 'yyyy-mm-dd 23:59:59') |
|
|
|
if(!this.isUserList){ |
|
lineList(data).then(res => { |
|
if(res.data.length === 0){ |
|
this.status = 'nomore'; |
|
}else{ |
|
this.status = 'loadmore'; |
|
} |
|
this.lists = this.lists.concat(res.data); |
|
}); |
|
}else{ |
|
userLineList(data).then(res => { |
|
if(res.data.length === 0){ |
|
this.status = 'nomore'; |
|
}else{ |
|
this.status = 'loadmore'; |
|
} |
|
this.lists = this.lists.concat(res.data); |
|
}); |
|
} |
|
|
|
this.pages.page++; |
|
}, |
|
//选择事件类型 |
|
selectType(e){ |
|
this.pages.clue_type_id = e.value[0].id |
|
this.$emit('typeCheck', e.value[0].name) |
|
this.typeShow = false; |
|
}, |
|
//选择开始时间 |
|
selectStart(e){ |
|
this.pages.starttime = e.value; |
|
this.startShow = false; |
|
this.endShow = true; |
|
this.showEndTimePicker(); |
|
}, |
|
selectEnd(e){ |
|
this.pages.endtime = e.value; |
|
this.startShow = false; |
|
this.endShow = false; |
|
this.getLineList(true); |
|
}, |
|
}, |
|
onPageScroll(res) { |
|
if (res.scrollTop <= 20) { |
|
uni.$emit('isTop', true); |
|
} else { |
|
uni.$emit('isTop', false); |
|
} |
|
}, |
|
created() { |
|
this.pagePadding = (api.navHeight().navPaddingTop + |
|
api.navHeight().navHeight + (api.navHeight().headerPadding * 2)) |
|
}, |
|
mounted() { |
|
this.getLineType(); |
|
this.getLineList(true); |
|
}, |
|
updated() { |
|
|
|
}, |
|
watch: { |
|
"$store.state.userInfo": { |
|
handler(newVal, oldVal) { |
|
this.userInfo = newVal; |
|
this.updateUserInfo(); |
|
} |
|
}, |
|
"$store.state.userExtends": { |
|
handler(newVal, oldVal) { |
|
this.userExtends = newVal; |
|
this.updateUserInfo(); |
|
} |
|
}, |
|
"pages.starttime": { |
|
handler(newVal, oldVal) { |
|
this.$emit('startTime', this.pages.starttime) |
|
} |
|
}, |
|
"pages.endtime": { |
|
handler(newVal, oldVal) { |
|
this.$emit('endTime', this.pages.endtime) |
|
} |
|
}, |
|
"pages.clue_type_id": { |
|
handler(newVal, oldVal) { |
|
this.getLineList(true) |
|
} |
|
}, |
|
} |
|
} |
|
</script> |
|
|
|
<style lang="scss"> |
|
@import './components/index.scss'; |
|
</style> |