This commit is contained in:
”Rain“ 2024-05-24 19:01:59 +08:00
parent 60b57a0082
commit afb67831c3
6 changed files with 195 additions and 104 deletions

View File

@ -41,8 +41,8 @@ if (process.env.NODE_ENV === 'development') {
// Vue.prototype.url_config = 'http://182.90.224.237:51234/' //雄哥内网穿透地址 // Vue.prototype.url_config = 'http://182.90.224.237:51234/' //雄哥内网穿透地址
// Vue.prototype.url_config = 'http://jxj.zhgdyun.com:61212/' //杰哥内网穿透地址 // Vue.prototype.url_config = 'http://jxj.zhgdyun.com:61212/' //杰哥内网穿透地址
// Vue.prototype.url_config = ' http://192.168.34.221:28888/' //郭圣雄本地 // Vue.prototype.url_config = ' http://192.168.34.221:28888/' //郭圣雄本地
// Vue.prototype.url_config = 'http://192.168.34.221:9111/' //郭圣雄本地 Vue.prototype.url_config = 'http://192.168.34.221:9111/' //郭圣雄本地
Vue.prototype.url_config = 'http://192.168.34.155:19111/' //彭洁本地 // Vue.prototype.url_config = 'http://192.168.34.155:19111/' //彭洁本地
// Vue.prototype.work_url = 'http://47.93.215.234:19997' // 工作流线上地址(弃用) // Vue.prototype.work_url = 'http://47.93.215.234:19997' // 工作流线上地址(弃用)
// Vue.prototype.work_url = 'http://42.180.188.17:19997' // 工作流线上地址 // Vue.prototype.work_url = 'http://42.180.188.17:19997' // 工作流线上地址
// Vue.prototype.work_url = 'http://42.180.188.17:19097' // 工作流测试地址 // Vue.prototype.work_url = 'http://42.180.188.17:19097' // 工作流测试地址

View File

@ -2,7 +2,8 @@
"easycom": { "easycom": {
"^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue" "^u-(.*)": "@/uview-ui/components/u-$1/u-$1.vue"
}, },
"pages": [{ "pages": [
{
"path": "pages/login/login", "path": "pages/login/login",
"style": {} "style": {}
}, },
@ -2420,12 +2421,10 @@
{ {
"path": "pages/personLocation/exam/examresult/examresult", "path": "pages/personLocation/exam/examresult/examresult",
"style": { "style": {
"app-plus": { // "app-plus": {
"titleNView": { // "titleView":false
"titleColor": "#ffffff", // },
"autoBackButton": false // "navigationStyle": "custom",
}
},
"navigationBarTitleText": "考试结果" "navigationBarTitleText": "考试结果"
} }
}, },

View File

@ -17,13 +17,13 @@
<text>对于成绩不满意可再次考试</text> <text>对于成绩不满意可再次考试</text>
</view> </view>
<button type="primary" class="btn" <button type="primary" class="btn"
@click="examAgain('/personLocation/exam/beginexam/beginexam')">再考一次</button> @click="goHiidden('/personLocation/exam/beginexam/beginexam')">再考一次</button>
<button type="primary" class="btn1" plain="true" <button type="primary" class="btn1" plain="true"
@click="goHiidden('/personLocation/exam/index/index')">返回</button> @click="goHiidden('/personLocation/exam/index/index')">返回</button>
</view> </view>
<view class="examresult" v-else> <view class="examresult" v-else>
<view class="text-success"> <view class="text-success">
<text>{{pageData.score}}</text> <text>80</text>
</view> </view>
<view class="image-tip"> <view class="image-tip">
<image src="/static/exam/examSuccess.png" mode=""></image> <image src="/static/exam/examSuccess.png" mode=""></image>
@ -32,7 +32,7 @@
<text>恭喜您通过考试</text> <text>恭喜您通过考试</text>
</view> </view>
<button type="primary" class="btn" <button type="primary" class="btn"
@click="goHiidden('/personLocation/exam/index/index')">返回</button> @click="goHiidden('/personLocation/exam/beginexam/beginexam')">返回</button>
</view> </view>
<levitatedsphere :x="100" :y="80"></levitatedsphere> <levitatedsphere :x="100" :y="80"></levitatedsphere>
</view> </view>
@ -47,21 +47,12 @@
pageData: {} pageData: {}
} }
}, },
created() {
// document.querySelector('.uni-page-head-hd').style.display = 'none'
},
onLoad(options) { onLoad(options) {
this.pageData = JSON.parse(options.examData) this.pageData = JSON.parse(options.examData)
}, },
methods: { methods: {
examAgain(url){
uni.redirectTo({
url: `/pages${url}?transportData=` + JSON.stringify(this
.pageData)
});
},
goHiidden(url) { goHiidden(url) {
uni.redirectTo({ uni.navigateTo({
url: `/pages${url}` url: `/pages${url}`
}); });
}, },
@ -74,14 +65,15 @@
padding: 61rpx 40rpx; padding: 61rpx 40rpx;
text-align: center; text-align: center;
.text { .text {
font-size: 182.69rpx; font-size: 182.69rpx;
color: #EA3941; color: #EA3941;
} }
.text-success {
font-size: 182.69rpx; .text-success {
color: #07CC88; font-size: 182.69rpx;
} color: #07CC88;
}
} }
.image-tip { .image-tip {
@ -94,7 +86,8 @@
justify-content: center; justify-content: center;
align-items: center; align-items: center;
margin: 0 auto; margin: 0 auto;
image{
image {
width: 150rpx; width: 150rpx;
height: 150rpx; height: 150rpx;
margin-top: 40rpx; margin-top: 40rpx;

View File

@ -8,7 +8,7 @@
<image class="scancode" src="@/static/scancode.png" mode=""></image> <image class="scancode" src="@/static/scancode.png" mode=""></image>
</view> </view>
</headers> </headers>
<view class="content"> <view class="content" :style="{ 'padding-top': (statusBarHeight+52) + 'px' }">
<view class="coordinate"> <view class="coordinate">
<view class="coordinate-header"> <view class="coordinate-header">
<view> <view>
@ -25,46 +25,56 @@
</view> </view>
</view> </view>
<view class="coordinate-item"> <view class="coordinate-item">
<view> <view :class="{'abnormal':item.inspectStatus == 2}" v-for="item in checkingList" :key="item.id">
<image src="@/static/ppt.png" mode=""></image> <image :src="statusList[item.inspectStatus].image" mode=""></image>
<text>{{item.checkingPointName}}</text>
</view>
<!-- <view class="abnormal">
<image src="@/static/inspectelcon-abnormal.png" mode=""></image>
<text>1号巡检点</text> <text>1号巡检点</text>
</view> </view>
<view> <view>
<image src="@/static/ppt.png" mode=""></image> <image src="@/static/inspecteIcon-normal.png" mode=""></image>
<text>1号巡检点</text> <text>1号巡检点</text>
</view> </view>
<view> <view>
<image src="@/static/ppt.png" mode=""></image> <image src="@/static/inspecteIcon-normal.png" mode=""></image>
<text>1号巡检555555555555点</text>
</view>
<view>
<image src="@/static/inspecteIcon-normal.png" mode=""></image>
<text>1号巡检点</text> <text>1号巡检点</text>
</view> </view>
<view> <view>
<image src="@/static/ppt.png" mode=""></image> <image src="@/static/inspecteIcon-normal.png" mode=""></image>
<text>1号巡检点</text> <text>1号巡检点</text>
</view> </view>
<view> <view>
<image src="@/static/ppt.png" mode=""></image> <image src="@/static/inspecteIcon-normal.png" mode=""></image>
<text>1号巡检点</text> <text>1号巡检点</text>
</view> </view> -->
<view>
<image src="@/static/ppt.png" mode=""></image>
<text>1号巡检点</text>
</view>
</view> </view>
</view> </view>
<view class="detail-main">
<view class="detail-main" v-for="item in checkingInfoList" :key="item.id">
<view class="title"> <view class="title">
1号巡检点 {{item.checkingPointName}}
</view> </view>
<view class="detail-content"> <view class="detail-content">
<view>巡检点名称:1号巡检点</view> <view>巡检点名称:{{item.checkingPointName}}</view>
<view>巡检点位置:东北角大院</view> <view>巡检点位置:东北角大院</view>
<view>巡检人员:张三</view> <view>巡检人员:{{item.checkingPointUserName}}</view>
<view>巡检通知人员:李四</view> <view>巡检通知人员:{{item.noticeUserNames}}</view>
<view>状态:正常</view> <view>状态:{{item.status == 1 ? '正常' : '异常'}}</view>
<view>巡检时间:2024-09-01 12:09:09</view> <view>巡检时间:{{item.createDate}}</view>
<view>异常详情:xx发现一个明风险,需要尽快处理</view> <view v-if="item.status == 2">异常详情:{{item.alarmDetails}}</view>
<view>异常图片:</view> <view v-if="item.status == 2" class="detail-image">
异常图片:
<view v-if="item.alarmImage && JSON.parse(item.alarmImage).length > 0" >
<image v-for="ele in JSON.parse(item.alarmImage)" @click="previewImage(url_config+'image/'+ele.url)" :src="url_config+'image/'+ele.url" mode=""></image>
</view>
</view>
</view> </view>
</view> </view>
</view> </view>
@ -75,7 +85,23 @@
export default { export default {
data() { data() {
return { return {
info:{}, info: {},
checkingList: [],
statusList: [{
id: 1,
statusName: "未巡检",
image: "/static/inspectelcon-not.png",
}, {
id: 2,
statusName: "正常",
image: "/static/inspecteIcon-normal.png",
}, {
id: 3,
statusName: "异常",
image: "/static/inspectelcon-abnormal.png",
}],
checkingInfoList:[],
statusBarHeight:0,
} }
}, },
onLoad(options) { onLoad(options) {
@ -95,12 +121,14 @@
method: 'post', method: 'post',
data: { data: {
projectSn: this.projectSn, projectSn: this.projectSn,
xzCheckingRouteTaskId: this.info.xzCheckingRoute.id, xzCheckingRouteTaskId: this.info.id,
checkingPointUserId:this.info.xzCheckingRoute.inspectUserIds, // checkingPointUserId: this.info.xzCheckingRoute.inspectUserIds,
pageNo: 1,
pageSize: 99999,
}, },
success: res => { success: res => {
console.log(res); console.log(res.result.records);
// that.emergencyTypeList = res.result; that.checkingList = res.result.records;
} }
}) })
}, },
@ -112,17 +140,20 @@
method: 'post', method: 'post',
data: { data: {
projectSn: this.projectSn, projectSn: this.projectSn,
xzCheckingRouteTaskId: this.info.xzCheckingRoute.id, // xzCheckingRouteTaskId: this.info.id,
checkingPointUserId:this.info.xzCheckingRoute.inspectUserIds, checkingPointId:"",
// checkingPointUserId: this.info.xzCheckingRoute.inspectUserIds,
pageNo: 1,
pageSize: 10,
}, },
success: res => { success: res => {
console.log(res); console.log(res);
// that.emergencyTypeList = res.result; that.checkingInfoList = res.result.records;
} }
}) })
}, },
getScanCode(){ getScanCode() {
uni.scanCode({ uni.scanCode({
scanType: ['qrCode'], scanType: ['qrCode'],
success: function(res) { success: function(res) {
@ -130,7 +161,7 @@
uni.navigateTo({ uni.navigateTo({
url: '../scan/saoSao?data=' + res.result url: '../scan/saoSao?data=' + res.result
}) })
// let qrcodeVal=JSON.parse(res.result) // let qrcodeVal=JSON.parse(res.result)
// let param={ // let param={
// checkingPointId:qrcodeVal.checkingPointId, // checkingPointId:qrcodeVal.checkingPointId,
@ -139,7 +170,7 @@
// checkingPointUserName:that.userInfo.realName||that.userInfo.account, // checkingPointUserName:that.userInfo.realName||that.userInfo.account,
// position:qrcodeVal.position // position:qrcodeVal.position
// } // }
// that.sendRequest({ // that.sendRequest({
// url: "xmgl/checkingPointInfo/add", // url: "xmgl/checkingPointInfo/add",
// data:param, // data:param,
@ -156,7 +187,13 @@
// }) // })
} }
}) })
} },
//
previewImage(url) {
uni.previewImage({
urls: [url]
})
},
} }
} }
</script> </script>
@ -168,8 +205,8 @@
left: 0; left: 0;
width: 100%; width: 100%;
z-index: 2; z-index: 2;
/deep/ .backImg { /deep/ .backImg {
color: #fff !important; color: #fff !important;
} }
@ -185,6 +222,7 @@
top: 50%; top: 50%;
z-index: 4; z-index: 4;
transform: translateY(-50%); transform: translateY(-50%);
.scancode { .scancode {
width: 56rpx; width: 56rpx;
height: 56rpx; height: 56rpx;
@ -193,7 +231,7 @@
} }
.content { .content {
padding: 88rpx 26rpx 15%; padding: 0 26rpx 15%;
box-sizing: border-box; box-sizing: border-box;
width: 100%; width: 100%;
@ -218,17 +256,19 @@
>view { >view {
display: flex; display: flex;
align-items: center; align-items: center;
>image { >image {
width: 50rpx; width: 50rpx;
height: 60rpx; height: 60rpx;
margin-right: 8rpx; margin-right: 8rpx;
} }
} }
.abnormal{ }
>image {
width: 60rpx !important; .abnormal {
height: 60rpx; >image {
} width: 60rpx !important;
height: 60rpx;
} }
} }
@ -249,6 +289,14 @@
height: 60rpx; height: 60rpx;
margin-right: 8rpx; margin-right: 8rpx;
} }
>text {
width: 107rpx;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
text-align: center;
}
} }
} }
} }
@ -284,6 +332,17 @@
>view { >view {
font-size: 28rpx; font-size: 28rpx;
} }
.detail-image {
display: flex;
image {
width: 128rpx;
height: 112rpx;
margin-left: 8rpx;
}
}
} }
} }
} }

View File

@ -10,7 +10,7 @@
</dateTimePiccker> </dateTimePiccker>
</view> </view>
</headers> </headers>
<view class="content"> <view class="content" :style="{ 'padding-top': (statusBarHeight+52) + 'px' }">
<view class="inspectedstay-item" v-for="item in listData" :key="item.id" @click="goDetail(item)"> <view class="inspectedstay-item" v-for="item in listData" :key="item.id" @click="goDetail(item)">
<view> <view>
巡检路线:{{item.xzCheckingRoute.routeName}} 巡检路线:{{item.xzCheckingRoute.routeName}}
@ -32,21 +32,21 @@
</view> </view>
<view> <view>
<text>巡检点情况:</text> <text>巡检点情况:</text>
<text>10/{{item.checkingPointNum}}</text> <text>{{item.taskToInspectUser ? (item.taskToInspectUser.normalCheckingPointNum + item.taskToInspectUser.abnormalCheckingPointNum) : 0}}/{{item.taskToInspectUser ? item.taskToInspectUser.checkingPointNum : 0}}</text>
</view> </view>
</view> </view>
<view class="item-box"> <view class="item-box">
<view> <view>
<text>正常点位:</text> <text>正常点位:</text>
<text>0</text> <text>{{item.taskToInspectUser ? item.taskToInspectUser.normalCheckingPointNum : 0}}</text>
</view> </view>
<view> <view>
<text>异常点位:</text> <text>异常点位:</text>
<text>10</text> <text>{{item.taskToInspectUser ? item.taskToInspectUser.abnormalCheckingPointNum : 0}}</text>
</view> </view>
</view> </view>
<view class="status" style="background-color: #EA3941;"> <view class="status" :style="`background-color: ${item.taskToInspectUser && statusList[item.taskToInspectUser.inspectStatus - 1].color};`">
逾期 {{item.taskToInspectUser && statusList[item.taskToInspectUser.inspectStatus - 1].statusName}}
</view> </view>
</view> </view>
</view> </view>
@ -55,19 +55,19 @@
</view> </view>
<view class="footers_box"> <view class="footers_box">
<ul> <ul>
<li> <li @click="footersChangTab(0)">
<view class="icon_box"> <view class="icon_box">
<image v-if="tabIndex == 0" class="tabIcon" src="/static/inspecteIcon2.png"></image> <image v-if="tabIndex == 0" class="tabIcon" src="/static/inspecteIcon2.png"></image>
<image v-else class="tabIcon" src="/static/inspecteIcon1.png"></image> <image v-else class="tabIcon" src="/static/inspecteIcon1.png"></image>
</view> </view>
<view class="icon_box" :class="{ active: tabIndex == 0 }" @click="footersChangTab(0)">待巡检</view> <view class="icon_box" :class="{ active: tabIndex == 0 }">待巡检</view>
</li> </li>
<li> <li @click="footersChangTab(1)">
<view class="icon_box"> <view class="icon_box">
<image v-if="tabIndex == 1" class="tabIcon" src="/static/inspecteIcon4.png"></image> <image v-if="tabIndex == 1" class="tabIcon" src="/static/inspecteIcon4.png"></image>
<image v-else class="tabIcon" src="/static/inspecteIcon3.png"></image> <image v-else class="tabIcon" src="/static/inspecteIcon3.png"></image>
</view> </view>
<view class="icon_box" :class="{ active: tabIndex == 1 }" @click="footersChangTab(1)">已巡检</view> <view class="icon_box" :class="{ active: tabIndex == 1 }">已巡检</view>
</li> </li>
</ul> </ul>
</view> </view>
@ -87,6 +87,23 @@
//------------ //------------
type: 1, type: 1,
statusList:[{
id:1,
statusName:"未开始",
color:"#EA3941",
},{
id:2,
statusName:"进行中",
color:"#5282F6",
},{
id:3,
statusName:"已完成",
color:"#0DB027",
},{
id:4,
statusName:"已逾期",
color:"#EA3941",
}],
listData: [], listData: [],
checkedTab: 0, checkedTab: 0,
condition: { condition: {
@ -105,17 +122,17 @@
actualFinishDate: '', actualFinishDate: '',
teach: true, teach: true,
numberTasks: 0, numberTasks: 0,
statusBarHeight:0,
} }
}, },
onLoad() { onLoad() {
this.checkingPointUserId = JSON.parse(uni.getStorageSync('userInfo')).userId this.checkingPointUserId = JSON.parse(uni.getStorageSync('userInfo')).userId
this.condition.projectSn = JSON.parse(uni.getStorageSync('projectDetail')).projectSn; this.condition.projectSn = JSON.parse(uni.getStorageSync('projectDetail')).projectSn;
this.statusBarHeight = uni.getStorageSync('systemInfo').statusBarHeight; this.statusBarHeight = uni.getStorageSync('systemInfo').statusBarHeight;
console.log(this.checkingPointUserId,JSON.parse(uni.getStorageSync('userInfo')));
}, },
onShow() { onShow() {
this.listData = []; this.onRefresh();
this.condition.pageNo = 1;
this.condition.pageSize = 10;
this.getListData(); this.getListData();
}, },
// //
@ -132,7 +149,10 @@
this.sendRequest({ this.sendRequest({
url: 'xmgl/xzCheckingRouteTask/page', url: 'xmgl/xzCheckingRouteTask/page',
method: 'get', method: 'get',
data: that.condition, data: {
...that.condition,
isInspect: that.tabIndex,
},
success: res => { success: res => {
let arr = JSON.parse(JSON.stringify(this.listData)); let arr = JSON.parse(JSON.stringify(this.listData));
if (res.result.records.length > 0) { if (res.result.records.length > 0) {
@ -143,8 +163,8 @@
that.teach = true; that.teach = true;
} }
that.listData = newArr; that.listData = newArr;
that.numberTasks = newArr.length that.numberTasks = newArr.length;
console.log('进度数据', that.listData) console.log('进度数据', that.listData);
} else { } else {
that.teach = false; that.teach = false;
} }
@ -158,8 +178,15 @@
if (type == 'startTime') { if (type == 'startTime') {
// this.form.changeLimitTime = e.f3; // this.form.changeLimitTime = e.f3;
this.condition.date = e.f3; this.condition.date = e.f3;
this.onRefresh();
this.getListData();
} }
}, },
onRefresh(){
this.listData = [];
this.condition.pageNo = 1;
this.condition.pageSize = 10;
},
goDetail(item) { goDetail(item) {
uni.navigateTo({ uni.navigateTo({
url: `/pages/projectEnd/InspectionRoute/inspecteddetail?info=${JSON.stringify(item)}` url: `/pages/projectEnd/InspectionRoute/inspecteddetail?info=${JSON.stringify(item)}`
@ -167,16 +194,10 @@
}, },
//tab //tab
footersChangTab(val) { footersChangTab(val) {
this.listData = []; this.onRefresh();
this.condition.pageNo = 1;
this.condition.pageSize = 10; this.tabIndex = val;
// this.condition.dutyUserId = '';
this.tabIndex = val
// if (val == 1) {
// this.condition.dutyUserId = this.dutyUserId
// } else {
// this.condition.dutyUserId = ''
// }
this.getListData(); this.getListData();
}, },
getDate(type) { getDate(type) {
@ -221,7 +242,7 @@
} }
.content { .content {
padding: 88rpx 26rpx 15%; padding: 0 26rpx 15%;
box-sizing: border-box; box-sizing: border-box;
width: 100%; width: 100%;
// margin-top: 3%; // margin-top: 3%;

View File

@ -27,7 +27,7 @@
<view class="title"> <view class="title">
最低巡检时长 最低巡检时长
</view> </view>
<input v-model="form.posiTion" type="text" disabled /> <input v-model="form.minInspectName" type="text" disabled />
</view> </view>
<view class="item" v-for="(item,index) in form.templateList" :key="index"> <view class="item" v-for="(item,index) in form.templateList" :key="index">
<view class="title"> <view class="title">
@ -95,6 +95,8 @@
createData: "", // createData: "", //
templateList: [], templateList: [],
status: 1, status: 1,
minInspectTime:"", //
minInspectName:"", //
}, },
fileList: [], fileList: [],
status: false, status: false,
@ -240,6 +242,9 @@
that.form.posiTion = responseData.position that.form.posiTion = responseData.position
that.form.inPointId = responseData.checkingPointId that.form.inPointId = responseData.checkingPointId
that.form.templateList = JSON.parse(responseData.template) that.form.templateList = JSON.parse(responseData.template)
that.form.minInspectTime = responseData.minInspectTime;
that.form.minInspectName = responseData.minInspectTime + '分钟';
uni.hideLoading() uni.hideLoading()
} }
}) })
@ -335,9 +340,10 @@
buttonText: '确定', buttonText: '确定',
success: function(res) { success: function(res) {
if (res.confirm) { if (res.confirm) {
uni.navigateTo({ // uni.navigateTo({
url: '../projectIndex/projectIndex' // url: '../projectIndex/projectIndex'
}) // })
uni.navigateBack();
} }
} }
}); });
@ -348,6 +354,19 @@
}, },
// //
addBtn() { addBtn() {
if (this.time < (this.form.minInspectTime * 60)) {
uni.showModal({
title: '提示',
content: "巡检时长没达标",
confirmColor: '#ee6666', //
showCancel: false, //
buttonText: '确定',
success: function(res) {
},
});
return;
}
if (!this.form.alarmDetails && this.form.status == 2) { if (!this.form.alarmDetails && this.form.status == 2) {
uni.showModal({ uni.showModal({
title: '提示', title: '提示',