案件上报、案件检查、上报历史

This commit is contained in:
itgaojian 2023-12-07 15:45:23 +08:00
parent 6ceacf9f42
commit 41c8e18d3f
23 changed files with 1562 additions and 991 deletions

106
app.json
View File

@ -1,54 +1,56 @@
{
"pages": [
"pages/index/index",
"pages/caseCheck/caseCheck",
"pages/caseReport/caseReport",
"pages/caseDetail/caseDetail",
"pages/process/process",
"pages/waitCheck/waitCheck",
"pages/census/census",
"pages/mine/mine",
"pages/censusinput/censusinput",
"pages/chooseArea/chooseArea",
"pages/censusDetail/censusDetail",
"pages/censusEdit/censusEdit"
],
"window": {
"backgroundTextStyle": "light",
"navigationBarBackgroundColor": "#4583FE",
"navigationBarTitleText": "包头高新网格化",
"navigationBarTextStyle": "white"
},
"style": "v2",
"sitemapLocation": "sitemap.json",
"permission": {
"scope.userLocation": {
"desc": "你的位置信息将用于小程序位置接口的效果展示"
}
},
"requiredPrivateInfos": [
"getLocation"
],
"usingComponents": {
"scroller": "components/coolui-scroller/scroller/index"
},
"tabBar": {
"color": "#000",
"borderStyle": "white",
"selectedColor": "#4583FE",
"backgroundColor": "#F8F8F8",
"list": [{
"pagePath": "pages/index/index",
"iconPath": "images/ic_home_nomarl_icon.png",
"text": "首页",
"selectedIconPath": "images/ic_home_sel_icon.png"
},
{
"pagePath": "pages/mine/mine",
"iconPath": "images/ic_mine_nomarl_icon.png",
"text": "我的",
"selectedIconPath": "images/ic_mine_sel_icon.png"
}
]
}
"pages": [
"pages/index/index",
"pages/caseCheck/caseCheck",
"pages/caseReport/caseReport",
"pages/caseDetail/caseDetail",
"pages/process/process",
"pages/waitCheck/waitCheck",
"pages/census/census",
"pages/mine/mine",
"pages/censusinput/censusinput",
"pages/chooseArea/chooseArea",
"pages/censusDetail/censusDetail",
"pages/censusEdit/censusEdit",
"pages/caseHistory/caseHistory"
],
"window": {
"backgroundTextStyle": "light",
"navigationBarBackgroundColor": "#4583FE",
"navigationBarTitleText": "包头高新网格化",
"navigationBarTextStyle": "white"
},
"style": "v2",
"sitemapLocation": "sitemap.json",
"permission": {
"scope.userLocation": {
"desc": "你的位置信息将用于小程序位置接口的效果展示"
}
},
"requiredPrivateInfos": [
"getLocation"
],
"usingComponents": {
"scroller": "components/coolui-scroller/scroller/index"
},
"tabBar": {
"color": "#000",
"borderStyle": "white",
"selectedColor": "#4583FE",
"backgroundColor": "#F8F8F8",
"list": [
{
"pagePath": "pages/index/index",
"iconPath": "images/ic_home_nomarl_icon.png",
"text": "首页",
"selectedIconPath": "images/ic_home_sel_icon.png"
},
{
"pagePath": "pages/mine/mine",
"iconPath": "images/ic_mine_nomarl_icon.png",
"text": "我的",
"selectedIconPath": "images/ic_mine_sel_icon.png"
}
]
}
}

BIN
images/ic_clock_icon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 976 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

BIN
images/position_white.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 635 B

View File

@ -3,232 +3,189 @@ var bmap = require('../../lib/bmap-wx.js');
var app = getApp()
Page({
/**
* 页面的初始数据
*/
data: {
caseId: '',
longitude: '111.759608',
latitude: '40.860318',
markers: [],
caseDetail: {},
token: '',
requestUrl: app.requestUrl,
evaluateContent: '',
isPass: 1,
grade: '',
photoList: []
},
getDetail: function () {
var self = this
app.restAjax.get(app.restAjax.path('{reqesutUrl}app/reportcase/getreportcase/' + self.data.caseId, [app.requestUrl]), {}, {
headers: {
token: self.data.token
}
}, function (code, data) {
var imgArr, handleArr
imgArr = data.casePhotos.split(',')
handleArr = data.handlePhotos.split(',')
var arr = [{longitude: data.caseLongitude,latitude: data.caseLatitude,iconPath:'../../images/marker_red.png',width:'25px',height: '30px'}]
self.setData({
markers: arr
});
self.setData({
caseDetail: data,
longitude: data.caseLongitude,
latitude: data.caseLatitude,
imageList: imgArr,
handleList: handleArr
})
});
},
isQualified: function (e) {
this.setData({
isPass: e.detail.value
})
},
isSatisfied: function (e) {
this.setData({
grade: e.detail.value
})
},
// 选择图片
chooseImage: function () {
var self = this
wx.chooseImage({
count: 9 - self.data.photoList.length,
sourceType: ['album', 'camera'],
success: function (res) {
self.setData({
showPhotoList: self.data.photoList.concat(res.tempFiles)
})
wx.showToast({
title: '上传中',
icon: 'loading'
})
var arr = []
for (let i = 0; i < res.tempFiles.length; i++) {
var path = res.tempFiles[i].path;
app.restAjax.file(app.restAjax.path('{requestUrl}app/file/uploadimage', [app.requestUrl]), path, 'image', {
headers: {
token: self.data.token
}
}, function (code, data) {
var id = JSON.parse(data).data
arr.push(id)
if (arr.length == res.tempFiles.length) {
self.setData({
photoList: arr
})
wx.hideToast()
}
}, function (code, data) {
console.log(data)
})
}
}
})
},
// 删除图片
deleteImg: function (e) {
var idx = e.currentTarget.dataset.num
var self = this
self.data.photoList.splice(idx, 1)
self.data.showPhotoList.splice(idx, 1)
self.setData({
showPhotoList: self.data.showPhotoList,
photoList: self.data.photoList
})
},
// 确认处理
submitHandle: function () {
var photo = '', self = this
if (!self.data.evaluateContent) {
wx.showToast({
title: '请输入评价内容',
duration: 2000,
icon: 'none'
})
return
}
if (!self.data.grade) {
wx.showToast({
title: '请选择满意度',
duration: 2000,
icon: 'none'
})
return
}
if (this.data.photoList.length == 0) {
wx.showToast({
title: '请至少上传一张照片',
duration: 2000,
icon: 'none'
})
return
}
for (let i = 0; i < this.data.photoList.length; i++) {
if (i == this.data.photoList.length - 1) {
photo += this.data.photoList[i]
} else {
photo += this.data.photoList[i] + ','
}
}
var info = {
inspectPhotos: photo,
inspectOpinion: self.data.evaluateContent,
isPass: self.data.isPass,
grade: self.data.grade
}
app.restAjax.post(app.restAjax.path('{reqesutUrl}app/reportcase/savereportcaseinspect/' + self.data.caseId, [app.requestUrl]), info, {
headers: {
token: self.data.token
}
}, function (code, data) {
if (code == '200') {
wx.showToast({
title: '处理成功',
duration: 2000,
success: function () {
setTimeout(function () {
wx.reLaunch({
url: '../index/index',
})
}, 2000)
}
})
}
});
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.setData({
caseId: options.id
})
var self = this
wx.getStorage({
key: 'token',
success: function (res) {
self.setData({
token: res.data
})
self.getDetail()
}
})
var BMap = new bmap.BMapWX({
ak: 'Zk732rbyjd327q7Zj9EOtRjUn2ED1GWK'
});
},
/**
* 页面的初始数据
*/
data: {
caseId: '',
longitude: '111.759608',
latitude: '40.860318',
markers: [],
caseDetail: {},
token: '',
requestUrl: app.requestUrl,
evaluateContent: '',
isPass: 1,
grade: '',
photoList: [],
scrollHeight: 0,
},
getDetail: function () {
var self = this
app.restAjax.get(app.restAjax.path('{reqesutUrl}app/reportcase/getreportcase/' + self.data.caseId, [app.requestUrl]), {}, {
headers: {
token: self.data.token
}
}, function (code, data) {
var imgArr, handleArr
imgArr = data.casePhotos.split(',')
handleArr = data.handlePhotos.split(',')
var arr = [{ longitude: data.caseLongitude, latitude: data.caseLatitude, iconPath: '../../images/marker_red.png', width: '25px', height: '30px', id: 0 }]
self.setData({
markers: arr
});
self.setData({
caseDetail: data,
longitude: data.caseLongitude,
latitude: data.caseLatitude,
imageList: imgArr,
handleList: handleArr
})
});
},
isQualified: function (e) {
this.setData({
isPass: e.detail.value
})
},
isSatisfied: function (e) {
this.setData({
grade: e.detail.value
})
},
// 选择图片
chooseImage: function () {
var self = this
wx.chooseImage({
count: 9 - self.data.photoList.length,
sourceType: ['album', 'camera'],
success: function (res) {
self.setData({
showPhotoList: self.data.photoList.concat(res.tempFiles)
})
wx.showToast({
title: '上传中',
icon: 'loading'
})
var arr = []
for (let i = 0; i < res.tempFiles.length; i++) {
var path = res.tempFiles[i].path;
app.restAjax.file(app.restAjax.path('{requestUrl}app/file/uploadimage', [app.requestUrl]), path, 'image', {
headers: {
token: self.data.token
}
}, function (code, data) {
var id = JSON.parse(data).data
arr.push(id)
if (arr.length == res.tempFiles.length) {
self.setData({
photoList: arr
})
wx.hideToast()
}
}, function (code, data) {
console.log(data)
})
}
}
})
},
// 删除图片
deleteImg: function (e) {
var idx = e.currentTarget.dataset.num
var self = this
self.data.photoList.splice(idx, 1)
self.data.showPhotoList.splice(idx, 1)
self.setData({
showPhotoList: self.data.showPhotoList,
photoList: self.data.photoList
})
},
// 确认处理
submitHandle: function () {
var photo = '', self = this
if (!self.data.evaluateContent) {
wx.showToast({
title: '请输入评价内容',
duration: 2000,
icon: 'none'
})
return
}
if (!self.data.grade) {
wx.showToast({
title: '请选择满意度',
duration: 2000,
icon: 'none'
})
return
}
if (this.data.photoList.length == 0) {
wx.showToast({
title: '请至少上传一张照片',
duration: 2000,
icon: 'none'
})
return
}
for (let i = 0; i < this.data.photoList.length; i++) {
if (i == this.data.photoList.length - 1) {
photo += this.data.photoList[i]
} else {
photo += this.data.photoList[i] + ','
}
}
var info = {
inspectPhotos: photo,
inspectOpinion: self.data.evaluateContent,
isPass: self.data.isPass,
grade: self.data.grade
}
app.restAjax.post(app.restAjax.path('{reqesutUrl}app/reportcase/savereportcaseinspect/' + self.data.caseId, [app.requestUrl]), info, {
headers: {
token: self.data.token
}
}, function (code, data) {
if (code == '200') {
wx.showToast({
title: '处理成功',
duration: 2000,
success: function () {
setTimeout(function () {
const eventChannel = self.getOpenerEventChannel();
eventChannel.emit('doNeedRefresh', { data: 'test' });
wx.navigateBack();
}, 2000)
}
})
}
});
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
this.setData({
caseId: options.id
})
var self = this
wx.getStorage({
key: 'token',
success: function (res) {
self.setData({
token: res.data
})
self.getDetail()
}
})
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
var BMap = new bmap.BMapWX({
ak: 'Zk732rbyjd327q7Zj9EOtRjUn2ED1GWK'
});
let screenHeight = wx.getSystemInfoSync().windowHeight;
this.setData({
scrollHeight: screenHeight - 75
})
},
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

View File

@ -1,3 +1,4 @@
{
"usingComponents": {}
"usingComponents": {},
"navigationBarTitleText": "案件详情"
}

View File

@ -1,89 +1,94 @@
<view class="check">
<view class="case-info">
<view class="title-status">
<view class="title">{{caseDetail.communityName}}</view>
<view class="status">待处理</view>
</view>
<view class="info">
<view class="row">{{caseDetail.caseContent}}</view>
<view class="row">上报时间:{{caseDetail.reportDate}}</view>
<view class="row">上报类型:{{caseDetail.caseTypeName}}</view>
<view class="row">上报人员:{{caseDetail.caseReporter}}</view>
</view>
<view class="photo">
<image src="{{requestUrl}}route/file/downloadfile/true/{{item}}" wx:for="{{imageList}}" wx:key="index" wx:if="{{item}}"></image>
</view>
<view class="map">
<view class="position">{{caseDetail.casePosition}}</view>
<view class="map-box">
<map name="map" show-location longitude='{{longitude}}' latitude='{{latitude}}' scale='14' markers='{{markers}}'></map>
</view>
</view>
</view>
<view class="handle">
<view class="handle-title">案件处理详情</view>
<view class="info handle-info">
<view class="row">处理人员:{{caseDetail.handleUserName}}</view>
<view class="row">处理时间:{{caseDetail.handleCreateTime}}</view>
<view class="row">{{caseDetail.handleOpinion}}</view>
<view class="photo handle-photo">
<image src="{{requestUrl}}route/file/downloadfile/true/{{item}}" wx:for="{{handleList}}" wx:key="index" wx:if="{{item}}"></image>
</view>
</view>
</view>
<view class="check-container">
<view class="handle-title"><text>*</text>案件处理详情</view>
<view class="check-box">
<view class="check-content">
<textarea placeholder="请输入评价内容" model:value="{{evaluateContent}}"></textarea>
</view>
<view class="qualified">
<view class="text">是否合格</view>
<view class="input-box">
<radio-group bindchange="isQualified">
<label>
<radio value="1" color="#008cff" checked="checked">是</radio>
</label>
<label>
<radio value="0" color="#008cff">否</radio>
</label>
</radio-group>
</view>
</view>
<view class="satisfied">
<view class="satisfied-title">处理满意度</view>
<view class="satisfied-box">
<radio-group bindchange="isSatisfied">
<label>
<radio value="1" color="#008cff">非常不满意</radio>
</label>
<label>
<radio value="2" color="#008cff">不满意</radio>
</label>
<label>
<radio value="3" color="#008cff">一般</radio>
</label>
<label>
<radio value="4" color="#008cff">满意</radio>
</label>
<label>
<radio value="5" color="#008cff">非常满意</radio>
</label>
</radio-group>
</view>
</view>
<view class="choose-photo">
<view class="img-box" wx:for="{{showPhotoList}}" wx:key="index">
<image src="{{item.path}}"></image>
<image src="../../images/delete.png" class="delete-btn" data-num="{{index}}" bindtap="deleteImg"></image>
</view>
<view class="add" bindtap="chooseImage">
<image src="../../images/camera.png"></image>
</view>
</view>
</view>
</view>
<view class="submit" bindtap="submitHandle">
确认处理
</view>
</view>
<wxs src="/utils/checkutils.wxs" module="tools"></wxs>
<view class="title-box">
<image src="/images/ic_issue_state_title_icon.png" mode="aspectFill"></image>
<view class="status">{{tools.status(caseDetail.caseStatus)}}</view>
</view>
<scroll-view scroll-y style="height:{{scrollHeight}}px;" class="check">
<view style="width: 100%;">
<view class="case-info">
<view class="title-status">
<view class="title">{{caseDetail.communityName}}</view>
<view class="title-date">{{caseDetail.reportDate}}</view>
</view>
<view class="info">
<view class="row-desc">{{caseDetail.caseContent}}</view>
<view class="row">上报类型:{{caseDetail.caseTypeName}}</view>
<view class="row">上报人员:{{caseDetail.caseReporter}}</view>
</view>
<view class="photo">
<image src="{{requestUrl}}route/file/downloadfile/true/{{item}}" wx:for="{{imageList}}" wx:key="index" wx:if="{{item}}"></image>
</view>
<view class="map">
<view class="map-box">
<map name="map" show-location longitude='{{longitude}}' latitude='{{latitude}}' scale='14' markers='{{markers}}'></map>
</view>
<view class="position-box">
<image src="/images/position_white.png" mode="aspectFill"></image>
<view class="position">{{caseDetail.casePosition}}</view>
</view>
</view>
</view>
<view class="handle">
<view class="handle-title">
<view class="form-head-line"></view>
<view>案件处理详情</view>
</view>
<view class="info handle-info">
<view class="row">处理人员:{{caseDetail.handleUserName}}</view>
<view class="row">处理时间:{{caseDetail.handleCreateTime}}</view>
<view class="row">{{caseDetail.handleOpinion}}</view>
<view class="photo handle-photo">
<image src="{{requestUrl}}route/file/downloadfile/true/{{item}}" wx:for="{{handleList}}" wx:key="index" wx:if="{{item}}"></image>
</view>
</view>
</view>
<view class="check-container">
<view class="handle-title">
<view class="form-head-line"></view>
<view>案件检查</view>
</view>
<view class="check-box">
<view class="check-content">
<textarea placeholder="请输入评价内容" model:value="{{evaluateContent}}"></textarea>
</view>
<view class="qualified">
<view class="text">是否合格</view>
<view class="input-box">
<radio-group bindchange="isQualified">
<label>
<radio value="1" color="#008cff" checked="checked">是</radio>
</label>
<label>
<radio value="0" color="#008cff">否</radio>
</label>
</radio-group>
</view>
</view>
<view class="satisfied">
<view class="satisfied-title">处理满意度</view>
<view class="satisfied-box">
<radio-group bindchange="isSatisfied" class="radio-btns">
<radio value="1" color="#008cff">非常不满意</radio>
<radio value="2" color="#008cff">不满意</radio>
<radio value="3" color="#008cff">一般</radio>
<radio value="4" color="#008cff">满意</radio>
<radio value="5" color="#008cff">非常满意</radio>
</radio-group>
</view>
</view>
<view class="choose-photo">
<view class="img-box" wx:for="{{showPhotoList}}" wx:key="index">
<image src="{{item.path}}"></image>
<image src="../../images/delete.png" class="delete-btn" data-num="{{index}}" bindtap="deleteImg"></image>
</view>
<view class="add" bindtap="chooseImage">
<image src="../../images/camera.png"></image>
</view>
</view>
</view>
</view>
<view class="submit" bindtap="submitHandle">
确认处理
</view>
</view>
</scroll-view>

View File

@ -1,180 +1,293 @@
page{
background: #f2f1f6;
page {
background: #f2f1f6;
}
.check{
padding: 20rpx;
.check {
padding: 20rpx;
position: fixed;
top: 70px;
width: 95%;
border-radius: 20px;
}
.case-info{
background: #fff;
border-radius: 10rpx;
padding: 20rpx;
margin-bottom: 15rpx;
.case-info {
background: #fff;
border-radius: 10rpx;
padding: 20rpx;
margin-bottom: 15rpx;
}
.title-status{
display: flex;
justify-content: space-between;
margin-bottom: 10rpx;
.title-status {
display: flex;
justify-content: space-between;
margin-bottom: 10rpx;
}
.title{
font-size: 36rpx;
line-height: 60rpx;
display: inline-block;
max-width: 65%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
color: #06a3f6;
.radio-btns {
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: center;
}
.status{
line-height: 60rpx;
display: inline-block;
padding: 0 30rpx;
background: #fff7ec;
color: #fdc36e;
border-radius: 30rpx;
.radio-btns radio {
width: 100%;
margin-left: -25px;
}
.status.green{
color: #2dfe2e;
background: rgba(45,254,46,0.1)
.title {
font-size: 36rpx;
line-height: 60rpx;
display: inline-block;
max-width: 65%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
color: #000000;
}
.status.red{
color: red;
background: rgba(255,0,0,0.1)
.status {
line-height: 60rpx;
display: inline-block;
padding: 0 30rpx;
color: #FFFFFF;
}
.row{
border-bottom: 1px dashed #EEE;
font-size: 32rpx;
color: #888;
line-height: 60rpx;
.status.green {
color: #2dfe2e;
background: rgba(45, 254, 46, 0.1)
}
.photo{
margin: 50rpx 0;
.status.red {
color: red;
background: rgba(255, 0, 0, 0.1)
}
.photo image{
width: 140rpx;
height: 140rpx;
margin-right: 10rpx;
margin-bottom: 10rpx;
.row {
font-size: 14px;
color: #101010;
line-height: 60rpx;
}
.position{
font-size: 36rpx;
color: #06a3f6;
margin-bottom: 10rpx;
.row-desc {
color: #9A9A9A;
}
.map-box map{
width: 100%;
height: 400rpx;
.title-date {
font-size: 12px;
color: #101010;
}
.handle-info{
border-radius: 10rpx;
background: #fff;
margin-top: 15rpx;
padding: 20rpx 20rpx 10rpx;
.photo {
margin: 50rpx 0;
}
.handle-photo{
margin: 20rpx 0 0;
.photo image {
width: 140rpx;
height: 140rpx;
margin-right: 10rpx;
margin-bottom: 10rpx;
}
.handle-title{
font-size: 36rpx;
color: #888;
.position {
font-size: 14px;
}
.handle-title text{
color: red;
.position-box {
position: absolute;
bottom: 0;
width: 100%;
padding: 5px 2px;
color: #FFFFFF;
background-color: rgba(0, 0, 0, .65);
display: flex;
flex-direction: row;
align-items: center;
justify-content: flex-start;
}
.check-box{
padding: 20rpx;
background: #fff;
border-radius: 10rpx;
margin-top: 15rpx;
.position-box image {
width: 20px;
height: 20px;
}
.check-content{
background: #f2f1f6;
margin-bottom: 20rpx;
.map-box map {
width: 100%;
height: 400rpx;
}
.check-content textarea{
width: 100%;
height: 300rpx;
padding: 15rpx;
box-sizing: border-box;
.map {
width: 100%;
height: 400rpx;
position: relative;
}
.qualified{
display: flex;
justify-content: space-between;
background: #f2f1f6;
padding: 15rpx;
.handle-info {
border-radius: 10rpx;
background: #fff;
margin-top: 15rpx;
padding: 20rpx 20rpx 10rpx;
}
.qualified label{
margin-right: 20rpx;
.handle-photo {
margin: 20rpx 0 0;
}
.qualified label:last-child{
margin-right: 0;
.handle-title {
color: #000000;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
padding: 5px 0px 0px 5px;
}
.satisfied{
margin-top: 15rpx;
background: #f2f1f6;
padding: 15rpx;
.form-head-line {
height: 15px;
width: 6px;
background-color: #4985f8;
margin-right: 5px;
}
.satisfied-title{
font-size: 36rpx;
radio {
transform: scale(.8);
}
.satisfied-box label{
display: block;
margin-top: 15rpx;
.handle-title text {
color: red;
}
.choose-photo{
margin-top: 15rpx;
.handle {
background-color: #FFFFFF;
}
.choose-photo .img-box{
width: 32%;
height: 140rpx;
margin-right: 2%;
margin-bottom: 10rpx;
position: relative;
display: inline-block;
.check-box {
padding: 20rpx;
background: #fff;
border-radius: 10rpx;
margin-top: 15rpx;
}
.img-box image{
width: 100%;
height: 100%;
.check-content {
background: #f2f1f6;
margin-bottom: 20rpx;
}
.img-box .delete-btn{
position: absolute;
top: -10rpx;
right: -10rpx;
width: 40rpx;
height: 40rpx;
.check-content textarea {
width: 100%;
height: 300rpx;
padding: 15rpx;
box-sizing: border-box;
}
.choose-photo .img-box:nth-child(3n){
margin-right: 0;
.qualified {
display: flex;
justify-content: space-between;
font-size: 14px;
padding: 5px 0px;
}
.photo-main{
background: none;
padding: 0;
.qualified label {
margin-right: 20rpx;
}
.add{
display: inline-block;
width: 32%;
height: 140rpx;
background: #f1f1f6;
position: relative;
.qualified label:last-child {
margin-right: 0;
}
.add image{
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 60rpx;
height: 60rpx;
.satisfied {
padding: 5px 0px;
font-size: 14px;
}
.submit{
width: 710rpx;
height: 100rpx;
background: #008cff;
line-height: 100rpx;
text-align: center;
color: #fff;
border-radius: 10rpx;
margin: 15rpx auto;
.satisfied-title {
font-size: 14px;
}
.check-container{
margin-top: 15rpx;
.satisfied-box label {
display: block;
margin-top: 15rpx;
}
.choose-photo {
margin-top: 15rpx;
}
.choose-photo .img-box {
width: 32%;
height: 140rpx;
margin-right: 2%;
margin-bottom: 10rpx;
position: relative;
display: inline-block;
}
.img-box image {
width: 100%;
height: 100%;
}
.img-box .delete-btn {
position: absolute;
top: -10rpx;
right: -10rpx;
width: 40rpx;
height: 40rpx;
}
.choose-photo .img-box:nth-child(3n) {
margin-right: 0;
}
.photo-main {
background: none;
padding: 0;
}
.add {
display: inline-block;
width: 32%;
height: 140rpx;
background: #f1f1f6;
position: relative;
}
.add image {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 60rpx;
height: 60rpx;
}
.submit {
width: 710rpx;
height: 100rpx;
background: #008cff;
line-height: 100rpx;
text-align: center;
color: #fff;
border-radius: 10rpx;
margin: 15rpx auto;
}
.check-container {
margin-top: 15rpx;
background-color: #FFFFFF;
}
.title-box {
display: flex;
flex-direction: row;
background-color: #4583fe;
height: 100px;
align-items: center;
padding-left: 10px;
}
.title-box image {
width: 32px;
height: 32px;
}

View File

@ -4,120 +4,76 @@ var bmap = require('../../lib/bmap-wx.js');
// pages/caseDetail/caseDetail.js
Page({
/**
* 页面的初始数据
*/
data: {
requestUrl: app.requestUrl,
token: '',
caseId: '',
caseDetail: {},
longitude: '',
latitude: '',
markers: [],
imageList: []
},
// 获取详情
getDetail: function () {
var self = this
app.restAjax.get(app.restAjax.path('{reqesutUrl}app/reportcase/getreportcase/' + self.data.caseId, [app.requestUrl]), {}, {
headers: {
token: self.data.token
}
}, function (code, data) {
var imgArr
imgArr = data.casePhotos.split(',')
var arr = [{longitude: data.caseLongitude,latitude: data.caseLatitude,iconPath:'../../images/marker_red.png',width:'25px',height: '30px'}]
// varwxMarkerData = arr;
self.setData({
markers: arr
});
self.setData({
caseDetail: data,
longitude: data.caseLongitude,
latitude: data.caseLatitude,
imageList: imgArr
})
});
},
// 查看流程
goProcess: function () {
var self = this
wx.navigateTo({
url: '../process/process?id=' + self.data.caseId,
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
var self = this
this.setData({
caseId: options.id
})
wx.getStorage({
key: 'token',
success: function (res) {
self.setData({
token: res.data
})
self.getDetail()
}
})
var BMap = new bmap.BMapWX({
ak: 'Zk732rbyjd327q7Zj9EOtRjUn2ED1GWK'
});
/**
* 页面的初始数据
*/
data: {
requestUrl: app.requestUrl,
token: '',
caseId: '',
caseDetail: {},
longitude: '',
latitude: '',
markers: [],
imageList: [],
scrollHeight: 0,
},
// 获取详情
getDetail: function () {
var self = this
app.restAjax.get(app.restAjax.path('{reqesutUrl}app/reportcase/getreportcase/' + self.data.caseId, [app.requestUrl]), {}, {
headers: {
token: self.data.token
}
}, function (code, data) {
var imgArr, handleArr
imgArr = data.casePhotos.split(',')
handleArr = data.handlePhotos.split(',')
var arr = [{ longitude: data.caseLongitude, latitude: data.caseLatitude, iconPath: '../../images/marker_red.png', width: '25px', height: '30px', id: 0 }]
self.setData({
markers: arr
});
self.setData({
caseDetail: data,
longitude: data.caseLongitude,
latitude: data.caseLatitude,
imageList: imgArr,
handleList: handleArr
})
});
},
// 查看流程
goProcess: function () {
var self = this
wx.navigateTo({
url: '../process/process?id=' + self.data.caseId,
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
var self = this
this.setData({
caseId: options.id
})
wx.getStorage({
key: 'token',
success: function (res) {
self.setData({
token: res.data
})
self.getDetail()
}
})
},
var BMap = new bmap.BMapWX({
ak: 'Zk732rbyjd327q7Zj9EOtRjUn2ED1GWK'
});
let screenHeight = wx.getSystemInfoSync().windowHeight;
this.setData({
scrollHeight: screenHeight - 75
})
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
},
})

View File

@ -1,3 +1,4 @@
{
"usingComponents": {}
"usingComponents": {},
"navigationBarTitleText": "案件详情"
}

View File

@ -1,31 +1,48 @@
<view class="case">
<view class="case-info">
<view class="title-status">
<view class="title">{{caseDetail.communityName}}</view>
<view class="status" wx:if="{{caseDetail.caseStatus == 0}}">待处理</view>
<view class="status" wx:if="{{caseDetail.caseStatus == 1}}">待立案</view>
<view class="status" wx:if="{{caseDetail.caseStatus == 2}}">待下派</view>
<view class="status" wx:if="{{caseDetail.caseStatus == 3}}">待处理</view>
<view class="status" wx:if="{{caseDetail.caseStatus == 4}}">待检查</view>
<view class="status" wx:if="{{caseDetail.caseStatus == 5}}">待结案</view>
<view class="status green" wx:if="{{caseDetail.caseStatus == 6}}">已归档</view>
<view class="status red" wx:if="{{caseDetail.caseStatus == -1}}">案件异常</view>
</view>
<view class="info">
<view class="row">{{caseDetail.caseContent}}</view>
<view class="row">上报时间:{{caseDetail.reportDate}}</view>
<view class="row">上报类型:{{caseDetail.caseTypeName}}</view>
<view class="row">上报人员:{{caseDetail.caseReporter}}</view>
</view>
<view class="photo">
<image src="{{requestUrl}}route/file/downloadfile/true/{{item}}" wx:for="{{imageList}}" wx:key="index" wx:if="{{item}}"></image>
</view>
<view class="map">
<view class="position">{{caseDetail.casePosition}}</view>
<view class="map-box">
<map name="map" show-location longitude='{{longitude}}' latitude='{{latitude}}' scale='14' markers='{{markers}}'></map>
</view>
</view>
<view class="process" bindtap="goProcess">查看流程</view>
</view>
</view>
<wxs src="/utils/checkutils.wxs" module="tools"></wxs>
<view class="title-box">
<image src="/images/ic_issue_state_title_icon.png" mode="aspectFill"></image>
<view class="status">{{tools.status(caseDetail.caseStatus)}}</view>
<view class="progress-btn" bind:tap="goProcess">流程日志</view>
</view>
<scroll-view scroll-y style="height:{{scrollHeight}}px;" class="check">
<view style="width: 100%;">
<view class="case-info">
<view class="title-status">
<view class="title">{{caseDetail.communityName}}</view>
<view class="title-date">{{caseDetail.reportDate}}</view>
</view>
<view class="info">
<view class="row-desc">{{caseDetail.caseContent}}</view>
<view class="row">上报类型:{{caseDetail.caseTypeName}}</view>
<view class="row">上报人员:{{caseDetail.caseReporter}}</view>
</view>
<view class="photo">
<image src="{{requestUrl}}route/file/downloadfile/true/{{item}}" wx:for="{{imageList}}" wx:key="index" wx:if="{{item}}"></image>
</view>
<view class="map">
<view class="map-box">
<map name="map" show-location longitude='{{longitude}}' latitude='{{latitude}}' scale='14' markers='{{markers}}'></map>
</view>
<view class="position-box">
<image src="/images/position_white.png" mode="aspectFill"></image>
<view class="position">{{caseDetail.casePosition}}</view>
</view>
</view>
</view>
<view class="handle" wx:if="{{caseDetail.caseStatus=='4' || caseDetail.caseStatus=='5' || caseDetail.caseStatus=='6'}}">
<view class="handle-title">
<view class="form-head-line"></view>
<view>案件处理详情</view>
</view>
<view class="info handle-info">
<view class="row">处理人员:{{caseDetail.handleUserName}}</view>
<view class="row">处理时间:{{caseDetail.handleCreateTime}}</view>
<view class="row">{{caseDetail.handleOpinion}}</view>
<view class="photo handle-photo">
<image src="{{requestUrl}}route/file/downloadfile/true/{{item}}" wx:for="{{handleList}}" wx:key="index" wx:if="{{item}}"></image>
</view>
</view>
</view>
</view>
</scroll-view>

View File

@ -1,81 +1,306 @@
page{
background: #f2f1f6;
page {
background: #f2f1f6;
}
.case{
width: 710rpx;
margin: 20rpx auto;
padding: 20rpx;
box-sizing: border-box;
background: #fff;
border-radius: 10rpx;
.check {
padding: 20rpx;
position: fixed;
top: 70px;
width: 95%;
border-radius: 20px;
}
.case-info{
margin-bottom: 15rpx;
.case-info {
background: #fff;
border-radius: 10rpx;
padding: 20rpx;
margin-bottom: 15rpx;
}
.title-status{
display: flex;
justify-content: space-between;
margin-bottom: 10rpx;
.title-status {
display: flex;
justify-content: space-between;
margin-bottom: 10rpx;
}
.title{
font-size: 36rpx;
line-height: 60rpx;
display: inline-block;
max-width: 65%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
color: #06a3f6;
.radio-btns {
display: flex;
flex-direction: column;
justify-content: flex-start;
align-items: center;
}
.status{
line-height: 60rpx;
display: inline-block;
padding: 0 30rpx;
background: #fff7ec;
color: #fdc36e;
border-radius: 30rpx;
.radio-btns radio {
width: 100%;
margin-left: -25px;
}
.status.green{
color: #2dfe2e;
background: rgba(45,254,46,0.1)
.title {
font-size: 36rpx;
line-height: 60rpx;
display: inline-block;
max-width: 65%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
color: #000000;
}
.status.red{
color: red;
background: rgba(255,0,0,0.1)
.status {
line-height: 60rpx;
display: inline-block;
padding: 0 30rpx;
color: #FFFFFF;
}
.row{
border-bottom: 1px dashed #EEE;
font-size: 32rpx;
color: #888;
line-height: 60rpx;
.status.green {
color: #2dfe2e;
background: rgba(45, 254, 46, 0.1)
}
.photo{
margin: 50rpx 0;
.status.red {
color: red;
background: rgba(255, 0, 0, 0.1)
}
.photo image{
width: 140rpx;
height: 140rpx;
margin-right: 10rpx;
margin-bottom: 10rpx;
.row {
font-size: 14px;
color: #101010;
line-height: 60rpx;
}
.position{
font-size: 36rpx;
color: #06a3f6;
margin-bottom: 10rpx;
.row-desc {
color: #9A9A9A;
}
.map-box map{
width: 100%;
height: 400rpx;
.title-date {
font-size: 12px;
color: #101010;
}
.process{
width: 100%;
height: 80rpx;
display: flex;
justify-content: center;
align-items: center;
border-radius: 10rpx;
background: #06a3f6;
color: #fff;
font-size: 30rpx;
margin-top: 15rpx;
.photo {
margin: 50rpx 0;
}
.photo image {
width: 140rpx;
height: 140rpx;
margin-right: 10rpx;
margin-bottom: 10rpx;
}
.position {
font-size: 14px;
}
.position-box {
position: absolute;
bottom: 0;
width: 100%;
padding: 5px 2px;
color: #FFFFFF;
background-color: rgba(0, 0, 0, .65);
display: flex;
flex-direction: row;
align-items: center;
justify-content: flex-start;
}
.position-box image {
width: 20px;
height: 20px;
}
.map-box map {
width: 100%;
height: 400rpx;
}
.map {
width: 100%;
height: 400rpx;
position: relative;
}
.handle-info {
border-radius: 10rpx;
background: #fff;
margin-top: 15rpx;
padding: 20rpx 20rpx 10rpx;
}
.handle-photo {
margin: 20rpx 0 0;
}
.handle-title {
color: #000000;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
padding: 5px 0px 0px 5px;
}
.form-head-line {
height: 15px;
width: 6px;
background-color: #4985f8;
margin-right: 5px;
}
radio {
transform: scale(.8);
}
.handle-title text {
color: red;
}
.handle {
background-color: #FFFFFF;
}
.check-box {
padding: 20rpx;
background: #fff;
border-radius: 10rpx;
margin-top: 15rpx;
}
.check-content {
background: #f2f1f6;
margin-bottom: 20rpx;
}
.check-content textarea {
width: 100%;
height: 300rpx;
padding: 15rpx;
box-sizing: border-box;
}
.qualified {
display: flex;
justify-content: space-between;
font-size: 14px;
padding: 5px 0px;
}
.qualified label {
margin-right: 20rpx;
}
.qualified label:last-child {
margin-right: 0;
}
.satisfied {
padding: 5px 0px;
font-size: 14px;
}
.satisfied-title {
font-size: 14px;
}
.satisfied-box label {
display: block;
margin-top: 15rpx;
}
.choose-photo {
margin-top: 15rpx;
}
.choose-photo .img-box {
width: 32%;
height: 140rpx;
margin-right: 2%;
margin-bottom: 10rpx;
position: relative;
display: inline-block;
}
.img-box image {
width: 100%;
height: 100%;
}
.img-box .delete-btn {
position: absolute;
top: -10rpx;
right: -10rpx;
width: 40rpx;
height: 40rpx;
}
.choose-photo .img-box:nth-child(3n) {
margin-right: 0;
}
.photo-main {
background: none;
padding: 0;
}
.add {
display: inline-block;
width: 32%;
height: 140rpx;
background: #f1f1f6;
position: relative;
}
.add image {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 60rpx;
height: 60rpx;
}
.submit {
width: 710rpx;
height: 100rpx;
background: #008cff;
line-height: 100rpx;
text-align: center;
color: #fff;
border-radius: 10rpx;
margin: 15rpx auto;
}
.check-container {
margin-top: 15rpx;
background-color: #FFFFFF;
}
.title-box {
display: flex;
flex-direction: row;
background-color: #4583fe;
height: 100px;
align-items: center;
padding-left: 10px;
}
.title-box image {
width: 32px;
height: 32px;
}
.progress-btn {
position: absolute;
right: 20px;
color: #000000;
border-radius: 5px;
background-color: #FCCA00;
padding: 2px 10px;
font-size: 14px;
}
.progress-btn:active{
transform: scale(.8);
}

View File

@ -0,0 +1,135 @@
// pages/caseHistory/caseHistory.js
const app = getApp();
Page({
/**
* 页面的初始数据
*/
data: {
token: '',
list: [],
triggered: false,
page: {
page: 1,
rows: 10
},
scrollHeight: 400,
totalNum: 0,
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
var _self = this;
wx.getStorage({
key: 'token',
success: function (res) {
_self.setData({
token: res.data
})
_self.getCaseList();
}
})
let screenHeight = wx.getSystemInfoSync().windowHeight;
this.setData({
scrollHeight: screenHeight
})
},
//获取列表
getCaseList() {
var _self = this;
wx.showLoading({
title: '加载中...',
})
app.restAjax.get(app.restAjax.path('{reqesutUrl}app/reportcase/listreportcaseofmine', [app.requestUrl]), _self.data.page, {
headers: {
token: _self.data.token
}
}, function (code, data) {
wx.hideLoading();
console.log(data);
_self.setData({
totalNum: data.total
})
if (data.rows.length == 0) {
if (_self.data.page.page == 1) {
_self.setData({
list: []
})
} else {
_self.setData({
[`page.page`]: _self.data.page.page - 1
})
wx.showToast({
title: '暂无更多数据',
icon: 'none'
})
return false;
}
}
if (_self.data.page.page == 1) {
_self.setData({
list: data.rows
})
} else {
_self.setData({
list: _self.data.list.concat(data.rows)
})
}
});
},
onScrollRefresh() {
console.log('加载中...')
var _self = this;
_self.setData({
list: [],
['page.page']: 1,
triggered: false,
totalNum: 0
})
_self.getCaseList()
},
//加载更多
onLoadMore() {
console.log(this.data.list.length + "==" + this.data.totalNum)
var self = this
if (self.data.totalNum === self.data.list.length) {
wx.showToast({
title: '暂无更多数据',
icon: 'none'
})
} else {
var pageNum = 'page.page'
self.setData({
[pageNum]: self.data.page.page + 1
})
this.getCaseList()
}
},
//详情
goDetail(e) {
var _self = this;
var id = e.currentTarget.dataset.id;
var status = e.currentTarget.dataset.status;
if ('4' == status) {
//待检查
wx.navigateTo({
url: '/pages/caseCheck/caseCheck?id=' + id,
events: {
doNeedRefresh(data) {
_self.onScrollRefresh();
}
}
})
} else {
//详情
wx.navigateTo({
url: '/pages/caseDetail/caseDetail?id=' + id,
})
}
}
})

View File

@ -0,0 +1,8 @@
{
"usingComponents": {
"t-empty": "/miniprogram_npm/tdesign-miniprogram/empty/empty"
},
"navigationBarTitleText": "上报历史",
"navigationBarBackgroundColor": "#FFFFFF",
"navigationBarTextStyle": "black"
}

View File

@ -0,0 +1,21 @@
<!--pages/census/census.wxml-->
<wxs src="/utils/checkutils.wxs" module="tools" />
<view class="page-container">
<scroll-view scroll-y class="scroll-content" style="height: {{scrollHeight}}px;" refresher-enabled="{{true}}" refresher-threshold="{{100}}" refresher-default-style="black" refresher-background="white" refresher-triggered="{{triggered}}" bindrefresherrefresh="onScrollRefresh" enhanced="true" show-scrollbar="false" bindscrolltolower="onLoadMore">
<block wx:if="{{list.length>0}}">
<view class="item-container" wx:for="{{list}}" wx:for-index="index" wx:for-item="listItem" wx:key="index" data-id="{{listItem.reportCaseId}}" data-status="{{listItem.caseStatus}}" bind:tap="goDetail">
<view class="item-title-box">
<view class="title-status">{{tools.status(listItem.caseStatus)}}</view>
<view class="item-title">{{listItem.caseTypeName}}</view>
</view>
<view class="item-desc">{{listItem.handleUserDepartmentName}}</view>
<view class="item-desc">{{listItem.caseContent}}</view>
<view class="item-position">
<image src="/images/ic_clock_icon.png" mode="aspectFill"></image>
<view>{{listItem.reportDate}}</view>
</view>
</view>
</block>
<t-empty wx:else t-class="empty-cls" image="/images/ic_empty_data.png" t-class-image="t-empty_image" description="暂无数据" />
</scroll-view>
</view>

View File

@ -0,0 +1,113 @@
/* pages/census/census.wxss */
.page-container {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
background-color: #f5f5f5;
width: 100%;
height: 100%;
}
.btn-submit {
width: 100%;
position: fixed;
bottom: 0;
height: 48px;
background-color: #4985f8;
display: flex;
justify-content: center;
align-items: center;
align-self: center;
color: #FFFFFF;
z-index: 23;
}
.scroll-content {
border-radius: 10px;
padding: 5px;
width: 97%;
margin-top: 10px;
}
.item-container {
display: flex;
flex-direction: column;
align-items: flex-start;
justify-content: center;
padding: 10px;
background-color: #ffffff;
margin-top: 10px;
border-radius: 10px;
}
.item-title {
font-size: 16px;
color: #000000;
margin-left: 3px;
}
.item-title-box {
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
}
.title-status {
border-top-right-radius: 10px;
font-size: 12px;
padding: 2px 10px;
color: #FFFFFF;
margin-left: -10px;
border-bottom-right-radius: 10px;
background-color: #4985f8;
}
.item-desc {
font-size: 12px;
color: #101010;
width: 100%;
text-overflow: ellipsis;
overflow: hidden;
word-break: break-all;
white-space: nowrap;
margin-top: 3px;
}
.item-position {
margin-top: 5px;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
font-size: 12px;
color: #101010;
}
.item-position image {
width: 14px;
height: 14px;
margin-right: 5px;
}
.line {
margin-top: 5px;
margin-bottom: 5px;
border: 1px dashed #ebe9e9;
width: 100%;
}
.t-empty_image {
width: 48px !important;
height: 48px !important;
}
.empty-cls {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}

View File

@ -129,9 +129,13 @@ Page({
})
},
doCheck() {
wx.navigateTo({
url: '/pages/waitCheck/waitCheck',
})
},
doCaseHistory() {
wx.navigateTo({
url: '/pages/caseHistory/caseHistory',
})
}
})

View File

@ -1,3 +1,4 @@
{
"usingComponents": {}
"usingComponents": {},
"navigationBarTitleText": "流程日志"
}

View File

@ -1,141 +1,126 @@
const app = getApp()
// pages/caseHistory/caseHistory.js
const app = getApp();
Page({
/**
* 页面的初始数据
*/
data: {
token: '',
areaList: [],
requestUrl: app.requestUrl,
page: {
page: 1,
rows: 20,
totalPage: 1
},
},
// 查看详情
goDetail: function (e) {
if (e.currentTarget.dataset.status == '4') {
wx.navigateTo({
url: '../caseCheck/caseCheck?id=' + e.currentTarget.dataset.id,
})
} else {
wx.navigateTo({
url: '../caseDetail/caseDetail?id=' + e.currentTarget.dataset.id,
})
}
},
// 获取待检查列表
getCheckList: function () {
var self = this
wx.showToast({
title: '加载中',
icon: 'loading'
})
app.restAjax.get(app.restAjax.path('{reqesutUrl}app/reportcase/listpagereportcaseinspectofmine', [app.requestUrl]), self.data.page, {
headers: {
token: self.data.token
}
}, function (code, data) {
if(data.rows.length == 0) {
if (self.data.page.page == 1) {
self.setData({
areaList: []
})
} else {
self.setData({
[`page.page`] : self.data.page.page - 1
})
app.dialog.msg('暂无更多')
return false;
}
}
if (self.data.page.page == 1) {
self.setData({
areaList: data.rows
})
} else {
self.setData({
areaList: self.data.areaList.concat(data.rows)
})
}
wx.hideToast()
});
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
var self = this
wx.getStorage({
key: 'token',
success: function (res) {
self.setData({
token: res.data
})
self.getCheckList()
}
})
},
/**
* 页面的初始数据
*/
data: {
token: '',
list: [],
triggered: false,
page: {
page: 1,
rows: 10
},
scrollHeight: 400,
totalNum: 0,
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
var _self = this;
wx.getStorage({
key: 'token',
success: function (res) {
_self.setData({
token: res.data
})
_self.getCaseList();
}
})
let screenHeight = wx.getSystemInfoSync().windowHeight;
this.setData({
scrollHeight: screenHeight
})
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
//获取列表
getCaseList() {
var _self = this;
wx.showLoading({
title: '加载中...',
})
app.restAjax.get(app.restAjax.path('{reqesutUrl}app/reportcase/listpagetotalreportcasehandleofmine', [app.requestUrl]), _self.data.page, {
headers: {
token: _self.data.token
}
}, function (code, data) {
wx.hideLoading();
console.log(data);
_self.setData({
totalNum: data.total
})
if (data.rows.length == 0) {
if (_self.data.page.page == 1) {
_self.setData({
list: []
})
} else {
_self.setData({
[`page.page`]: _self.data.page.page - 1
})
wx.showToast({
title: '暂无更多数据',
icon: 'none'
})
return false;
}
}
if (_self.data.page.page == 1) {
_self.setData({
list: data.rows
})
} else {
_self.setData({
list: _self.data.list.concat(data.rows)
})
}
});
},
onScrollRefresh() {
console.log('加载中...')
var _self = this;
_self.setData({
list: [],
['page.page']: 1,
triggered: false,
totalNum: 0
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
var self = this
this.setData({
['page.page']: 1
})
this.getCheckList()
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
var self = this
var pageNum = 'page.page'
self.setData({
[pageNum]: self.data.page.page + 1
})
this.getCheckList()
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})
_self.getCaseList()
},
//加载更多
onLoadMore() {
console.log(this.data.list.length + "==" + this.data.totalNum)
var self = this
if (self.data.totalNum === self.data.list.length) {
wx.showToast({
title: '暂无更多数据',
icon: 'none'
})
} else {
var pageNum = 'page.page'
self.setData({
[pageNum]: self.data.page.page + 1
})
this.getCaseList()
}
},
//详情
goDetail(e) {
var _self = this;
var id = e.currentTarget.dataset.id;
wx.navigateTo({
url: '/pages/caseCheck/caseCheck?id=' + id,
events: {
doNeedRefresh(data) {
_self.onScrollRefresh();
}
}
})
}
})

View File

@ -1,3 +1,8 @@
{
"usingComponents": {}
"usingComponents": {
"t-empty": "/miniprogram_npm/tdesign-miniprogram/empty/empty"
},
"navigationBarTitleText": "待检查",
"navigationBarBackgroundColor": "#FFFFFF",
"navigationBarTextStyle": "black"
}

View File

@ -1,30 +1,21 @@
<view class="list">
<view class="list-box" wx:for="{{areaList}}" wx:key="index" data-id="{{item.reportCaseId}}" bindtap="goDetail" data-status="{{item.caseStatus}}">
<view class="avatar">
<image src="{{requestUrl}}route/file/downloadfile/true/{{item.casePhotos}}"></image>
</view>
<view class="case">
<view class="case-info">
<view class="case-title">
<view class="title">{{item.communityName}}</view>
<view class="status" wx:if="{{item.caseStatus == 0}}">待受理</view>
<view class="status" wx:if="{{item.caseStatus == 1}}">待立案</view>
<view class="status" wx:if="{{item.caseStatus == 2}}">待下派</view>
<view class="status" wx:if="{{item.caseStatus == 3}}">待处理</view>
<view class="status" wx:if="{{item.caseStatus == 4}}">待检查</view>
<view class="status" wx:if="{{item.caseStatus == 5}}">待结案</view>
<view class="status green" wx:if="{{item.caseStatus == 6}}">已归档</view>
<view class="status red" wx:if="{{item.caseStatus == -1}}">案件异常</view>
</view>
<view class="case-desc">
{{item.caseContent}}
</view>
</view>
<view class="case-postion">
<image src="../../images/position.png"></image>
{{item.casePosition}}
</view>
</view>
</view>
</view>
<!-- <view class="new-case" bindtap="goReport">案件上报</view> -->
<!--pages/census/census.wxml-->
<wxs src="/utils/checkutils.wxs" module="tools" />
<view class="page-container">
<scroll-view scroll-y class="scroll-content" style="height: {{scrollHeight}}px;" refresher-enabled="{{true}}" refresher-threshold="{{100}}" refresher-default-style="black" refresher-background="white" refresher-triggered="{{triggered}}" bindrefresherrefresh="onScrollRefresh" enhanced="true" show-scrollbar="false" bindscrolltolower="onLoadMore">
<block wx:if="{{list.length>0}}">
<view class="item-container" wx:for="{{list}}" wx:for-index="index" wx:for-item="listItem" wx:key="index" data-id="{{listItem.reportCaseId}}" bind:tap="goDetail">
<view class="item-title-box">
<view class="title-status">{{tools.status(listItem.caseStatus)}}</view>
<view class="item-title">{{listItem.caseTypeName}}</view>
</view>
<view class="item-desc">{{listItem.handleUserDepartmentName}}</view>
<view class="item-desc">{{listItem.caseContent}}</view>
<view class="item-position">
<image src="/images/ic_clock_icon.png" mode="aspectFill"></image>
<view>{{listItem.reportDate}}</view>
</view>
</view>
</block>
<t-empty wx:else t-class="empty-cls" image="/images/ic_empty_data.png" t-class-image="t-empty_image" description="暂无数据" />
</scroll-view>
</view>

View File

@ -1,110 +1,113 @@
page{
background: #f2f1f6;
/* pages/census/census.wxss */
.page-container {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
background-color: #f5f5f5;
width: 100%;
height: 100%;
}
/* .tab-box{
position: fixed;
top: 0;
left: 0;
right: 0;
height: 100rpx;
display: flex;
background: #fff;
overflow-x: auto;
.btn-submit {
width: 100%;
position: fixed;
bottom: 0;
height: 48px;
background-color: #4985f8;
display: flex;
justify-content: center;
align-items: center;
align-self: center;
color: #FFFFFF;
z-index: 23;
}
.tab{
display: flex;
flex: 1;
flex-shrink: 0;
justify-content: center;
align-items: center;
font-size: 30rpx;
box-sizing: border-box;
.scroll-content {
border-radius: 10px;
padding: 5px;
width: 97%;
margin-top: 10px;
}
.tab.active{
font-size: 36rpx;
color: #226cd9;
border-bottom: 3px solid #226cd9;
} */
.list{
/* margin-top: 100rpx; */
padding: 20rpx 20rpx 0;
.item-container {
display: flex;
flex-direction: column;
align-items: flex-start;
justify-content: center;
padding: 10px;
background-color: #ffffff;
margin-top: 10px;
border-radius: 10px;
}
.list-box{
padding: 20rpx;
background: #fff;
border-radius: 10rpx;
margin-bottom: 20rpx;
display: flex;
justify-content: space-between;
.item-title {
font-size: 16px;
color: #000000;
margin-left: 3px;
}
.avatar, .avatar image{
width: 150rpx;
height: 150rpx;
.item-title-box {
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
}
.case{
width: 500rpx;
.title-status {
border-top-right-radius: 10px;
font-size: 12px;
padding: 2px 10px;
color: #FFFFFF;
margin-left: -10px;
border-bottom-right-radius: 10px;
background-color: #4985f8;
}
.case-info{
border-bottom: 1px dashed #EEE;
.item-desc {
font-size: 12px;
color: #101010;
width: 100%;
text-overflow: ellipsis;
overflow: hidden;
word-break: break-all;
white-space: nowrap;
margin-top: 3px;
}
.case-title{
display: flex;
justify-content: space-between;
margin-bottom: 10rpx;
.item-position {
margin-top: 5px;
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
font-size: 12px;
color: #101010;
}
.title{
font-size: 36rpx;
line-height: 60rpx;
display: inline-block;
max-width: 65%;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
.item-position image {
width: 14px;
height: 14px;
margin-right: 5px;
}
.status{
line-height: 60rpx;
display: inline-block;
padding: 0 30rpx;
background: #fff7ec;
color: #fdc36e;
border-radius: 30rpx;
.line {
margin-top: 5px;
margin-bottom: 5px;
border: 1px dashed #ebe9e9;
width: 100%;
}
.status.green{
color: #2dfe2e;
background: rgba(45,254,46,0.1)
.t-empty_image {
width: 48px !important;
height: 48px !important;
}
.status.red{
color: red;
background: rgba(255,0,0,0.1)
}
.case-desc{
font-size: 28rpx;
color: #888;
margin-bottom: 10rpx;
line-height: 60rpx;
}
.case-postion{
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
font-size: 28rpx;
color: #108aff;
margin-top: 10rpx;
}
.case-postion image{
width: 30rpx;
height: 28rpx;
}
.new-case{
position: fixed;
bottom: 40rpx;
right: 40rpx;
width: 120rpx;
height: 120rpx;
background: #108aff;
color: #fff;
border-radius: 50%;
padding: 20rpx;
box-sizing: border-box;
text-align: center;
.empty-cls {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
}

View File

@ -4,4 +4,32 @@ var check = function (s) {
}
return s;
}
module.exports.check = check;
var getStatus = function (s) {
var status = '';
switch (s) {
case '0':
status = '待受理';
break;
case '1':
status = '待立案';
break;
case '2':
status = '待下派';
break;
case '3':
status = '待处理';
break;
case '4':
status = '待检查';
break;
case '5':
status = '待结案';
break;
case '6':
status = '已归档';
break;
}
return status;
}
module.exports.check = check;
module.exports.status = getStatus;