integrated_traffic_uniapp/pages/application/hidden-danger-check-standard/custom/list-item-check-list.vue

396 lines
13 KiB
Vue
Raw 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><!-- 源自pages/application/hidden-trouble-investigation/hidden-trouble-app/check-items-custom-list.vue -->
<view>
<cu-custom bgColor="bg-gradual-blueness" :isBack="true">
<block slot="backText">返回</block>
<block slot="content">隐患排查项</block>
</cu-custom>
<scroll-view scroll-y>
<view class="check-items" v-for="(item,index) in list" :key="item.CUSTOM_ITEM_ID">
<view class="title">检查内容:{{item.CHECK_CONTENT}}</view>
<view class="title">检查标准:{{item.CHECK_STANDARD}}</view>
<view v-if="item.REFERENCE_BASIS" class="title">参考依据:{{item.REFERENCE_BASIS}}</view>
<view class="check-items-select">
<radio-group class="block">
<view class="flex justify-between padding-sm">
<view class="select">
<view @click="checkTrue({index:index},item.HASHIDDEN,0)" class="flex align-center">
<radio class='mr10' :class="item.ISNORMAL==0?'checked':''" :checked="item.ISNORMAL==0" disabled></radio>
<text>合格</text>
</view>
<view v-if="item.ISNORMAL==0" @click="$noMultipleClicks(gotoAddImg,item.RECORDITEM_ID)" class="cuIcon-infofill text-blue unqualified"></view>
</view>
<view class="select">
<view class="flex align-center" @click="$noMultipleClicks(goToAdd,
{
CHECK_CONTENT:item.CHECK_CONTENT,
CUSTOM_ITEM_ID:item.CUSTOM_ITEM_ID,
RECORDITEM_ID:item.RECORDITEM_ID,
index:index,
CUSTOM_ID:item.CUSTOM_ID,
HASHIDDEN:item.HASHIDDEN,
CHECK_CATEGORY:item.CHECK_CATEGORY,
CHECK_CATEGORY_NAME:item.CHECK_CATEGORY_NAME,
CHECK_ITEM:item.CHECK_ITEM,
CHECK_ITEM_NAME:item.CHECK_ITEM_NAME,
CHECK_STANDARD: item.CHECK_STANDARD,
REFERENCE_BASIS: item.REFERENCE_BASIS,
CHECK_RESULT: item.CHECK_UNQUALIFIED
})">
<radio class='red mr10' :class="item.ISNORMAL==1?'checked':''" :checked="item.ISNORMAL==1" disabled ></radio>
<text>不合格</text>
</view>
<view v-if="item.ISNORMAL==1" @click="$noMultipleClicks(goToEdit,item.HIDDEN_ID)" class="cuIcon-infofill text-blue unqualified"></view>
</view>
<view class="select">
<view @click="checkTrue({index:index},item.HASHIDDEN,2)" class="flex align-center">
<radio class='mr10' :class="item.ISNORMAL==2?'checked':''" :checked="item.ISNORMAL==2" disabled></radio>
<text>不涉及</text>
</view>
</view>
</view>
<view v-if="item.ISNORMAL==0 || item.ISNORMAL==1" class="input" >
<textarea :disabled="item.OPERATION_TYPE === 1 ? true : false" maxlength="-1" v-model="item.CHECK_RESULT" placeholder="检查详细描述(必填项)" :class="item.OPERATION_TYPE === 1 ? 'bgh' : ''" style="border: 1px solid #eeeeee; z-index: 999; height: 50px; padding: 10px;font-size: 12px; width: 100%"></textarea>
</view>
</radio-group>
</view>
</view>
<view class="cu-tabbar-height"></view>
</scroll-view>
<view class="bottom-fixed" @tap.stop="openAuth('ACCESS_FINE_LOCATION')">
<button :loading="buttonloading" class="cu-btn bg-green" >提交</button>
</view>
<yk-authpup ref="authpup" type="top" @changeAuth="$noMultipleClicks(save)" :permissionID="permissionID"></yk-authpup>
</view>
</template>
<script>
import {
basePath,corpinfoId,loginUser,loginSession
} from '@/common/tool.js';
import gcoord from '@/common/gcoord.js'
import ykAuthpup from "@/components/yk-authpup/yk-authpup"
export default {
data() {
return {
permissionID:'',
noClick:true,
buttonloading: false,
listId:'',
listName:'',
baoBaoType:'',
list: [],
pd:[],
CHECKRECORD_ID:'',
}
},
onLoad(e){
this.listId=e.listId;
this.listName=e.listName;
this.baoBaoType=e.baoBaoType
this.CHECKRECORD_ID=e.CHECKRECORD_ID;
this.getData();
loginSession();
},
onShow() {
var _this = this;
if(_this.initflag){
_this.initflag = false;
_this.$forceUpdate();//强制刷新
}
},
methods: {
getData() {
var _this = this;
uni.showLoading({
title: '请稍候'
})
uni.request({
url: basePath + '/app/hiddenDangerCheckStandardCustom/goCheck', // /app/listmanager/goCheck
method: 'POST',
dataType: 'json',
header: {
'Content-type':'application/x-www-form-urlencoded'
},
data: {
CUSTOM_ID: _this.listId,
USER_NAME : loginUser.NAME,
CORPINFO_ID:loginUser.CORPINFO_ID,
USER_ID:loginUser.USER_ID,
},
success: (res) => {
if("success" == res.data.result){
uni.hideLoading();
_this.pd=res.data.pd;
_this.list = res.data.varList;
if(res.data.records){
for (var i = 0; i <_this.list.length ; i++) {
for (var j = 0; j <res.data.records.length ; j++) {
if(_this.list[i].CUSTOM_ITEM_ID==res.data.records[j].CUSTOM_ITEM_ID){
_this.list[i].ISNORMAL = res.data.records[j].ISNORMAL;
_this.list[i].HIDDEN_ID = res.data.records[j].HIDDEN_ID;
_this.list[i].CHECKRECORD_ID = res.data.records[j].CHECKRECORD_ID;
_this.list[i].RECORDITEM_ID = res.data.records[j].RECORDITEM_ID;
if (res.data.records[j].ISNORMAL === 0) {
_this.list[i].CHECK_QUALIFIED = res.data.records[j].CHECK_RESULT;
} else if (res.data.records[j].ISNORMAL === 1) {
_this.list[i].CHECK_UNQUALIFIED = res.data.records[j].CHECK_RESULT;
}
// _this.list[i].is_checked = 1;
}
}
}
}
} else {
uni.showToast({
title: res.data.message,
duration: 2000
});
}
}
});
},
openAuth(permissionID){
this.permissionID = permissionID;
setTimeout(()=>{
this.$refs['authpup'].open();
},200)
},
//去保存
save: function (){
var _this = this;
for(var i=0;i<_this.list.length;i++){
if(this.list[i].ISNORMAL && this.list[i].OPERATION_TYPE === 2) {
var CHECK_RESULT = ''
if (this.list[i].ISNORMAL === 0 || this.list[i].ISNORMAL === 1) {
CHECK_RESULT = _this.list[i].CHECK_RESULT
} else if (this.list[i].ISNORMAL === 2) {
CHECK_RESULT = "不涉及"
}
if (!CHECK_RESULT) {
uni.showToast({
icon: 'none',
title: ''+(i+1)+'',
duration: 1500
});
return;
}
}
}
uni.showLoading({
title: ''
})
var items=[];
var ids=[];
for(var i=0;i<_this.list.length;i++){
var item = {};
if(_this.list[i].ISNORMAL>-1 || _this.list[i].HASHIDDEN > 0) {
item.CUSTOM_ITEM_ID = _this.list[i].CUSTOM_ITEM_ID
item.ISNORMAL = _this.list[i].ISNORMAL
if (_this.list[i].ISNORMAL === 0 || _this.list[i].ISNORMAL === 1) {
item.CHECK_RESULT = _this.list[i].CHECK_RESULT
} else {
item.CHECK_RESULT = ''
}
item.RECORDITEM_ID = _this.list[i].RECORDITEM_ID
items.push(item)
if (_this.list[i].HIDDEN_ID) {
ids.push(_this.list[i].HIDDEN_ID)
}
}
}
let longitude;
let latitude;
uni.getLocation({
type: 'GCJ02',
success: function (res1) {
longitude = res1.longitude;
latitude = res1.latitude;
var result = gcoord.transform(
[longitude, latitude], // 经纬度坐标
gcoord.GCJ02, // 当前坐标系
gcoord.BD09 // 目标坐标系
);
longitude = result[0];
latitude = result[1];
//发送 post 请求提交保存
this.buttonloading = true
uni.request({
url: basePath+'/app/customCheckRecord/add', // /app/checkrecord/add'
xhrFields: {
withCredentials: true
},
method: 'POST',
dataType: 'json',
header: {
'Content-type':'application/x-www-form-urlencoded'
},
data: {
CUSTOM_ID:_this.listId,
LIST_NAME:_this.listName,
CREATOR:loginUser.NAME,
LATITUDE:latitude,
LONGITUDE:longitude,
ITEMS:JSON.stringify(items),
IDS:ids.join(","),
CHECKRECORD_ID:_this.CHECKRECORD_ID,
tm:new Date().getTime(),
CORPINFO_ID:loginUser.CORPINFO_ID,
USER_ID:loginUser.USER_ID,
},
success: function(res){
this.buttonloading = false
if("success" == res.data.result){
uni.showToast({
icon: 'none',
title: '提交成功',
duration: 1500
});
setTimeout(function(){
var pages = getCurrentPages(); // 获取当前页面栈
var prePage = pages[pages.length - 2]; // 上一个页面
prePage.$vm.initflag = true; // A 页面 init方法 为true
uni.navigateBack({});
uni.hideLoading();
},1500);
}else {
uni.showToast({
title: "系统错误",
duration: 2000
});
}
}
})
},
fail: function(res){
uni.hideLoading();
uni.showToast({
title: "获取位置失败",
duration: 2000
});
}
});
},
//点击合格
checkTrue(e,HASHIDDEN,STATUS) {
if(HASHIDDEN > 0){
uni.showToast({
icon:'none',
title: "此检查内容存在未处理隐患,无法检查",
duration: 1000
});
return;
}
// if(this.list[e.index].ISNORMAL==1){
// return;
// }
let _this=this;
if(_this.list[e.index].HIDDEN_ID){
//不合格改为合格时 删除旧隐患
uni.request({
url: basePath+'/app/customHidden/delete', // /app/hidden/delete
xhrFields: {
withCredentials: true
},
method: 'POST',
dataType: 'json',
header: {
'Content-type':'application/x-www-form-urlencoded'
},
data: {
HIDDEN_ID:_this.list[e.index].HIDDEN_ID,
CORPINFO_ID:loginUser.CORPINFO_ID,
USER_ID:loginUser.USER_ID,
loginUserName:loginUser.USER_NAME
},
success: function(res){
if("success" == res.data.result){
_this.list[e.index].ISNORMAL=STATUS;
_this.list[e.index].HIDDEN_ID='';
_this.$forceUpdate();//强制刷新
}else {
uni.showToast({
title: "系统错误",
duration: 2000
});
}
}
})
}else{
_this.list[e.index].ISNORMAL=STATUS;
_this.list[e.index].HIDDEN_ID='';
_this.$forceUpdate();//强制刷新
}
if (STATUS === 0) {
_this.$set(_this.list[e.index], 'CHECK_RESULT', _this.list[e.index].CHECK_QUALIFIED)
} else if (STATUS === 1) {
_this.$set(_this.list[e.index], 'CHECK_RESULT', _this.list[e.index].CHECK_UNQUALIFIED)
} else {
_this.$set(_this.list[e.index], 'CHECK_RESULT', '不涉及')
}
},
//跳转事件
goToAdd(e) {
if (e.HASHIDDEN > 0) {
uni.showToast({
icon: 'none',
title: "此检查内容存在未处理隐患,无法检查",
duration: 1000
});
return;
}
if (this.list[e.index].ISNORMAL == 1) {
return;
}
uni.navigateTo({
url: '/pages/application/hidden-danger-check-standard/custom/list-item-check-hidden-form?'
+'CHECK_CONTENT='+encodeURIComponent(JSON.stringify(e.CHECK_CONTENT.replace('%','%25')))
+'&CUSTOM_ITEM_ID='+ encodeURIComponent(JSON.stringify(e.CUSTOM_ITEM_ID))
+'&CHECKRECORD_ID='+ encodeURIComponent(JSON.stringify(e.CHECKRECORD_ID))
+'&RECORDITEM_ID='+ encodeURIComponent(JSON.stringify(e.RECORDITEM_ID))
+'&CUSTOM_ID='+ encodeURIComponent(JSON.stringify(e.CUSTOM_ID))
+'&CHECK_CATEGORY='+ encodeURIComponent(JSON.stringify(e.CHECK_CATEGORY))
+'&CHECK_CATEGORY_NAME='+ encodeURIComponent(JSON.stringify(e.CHECK_CATEGORY_NAME))
+'&CHECK_ITEM='+ encodeURIComponent(JSON.stringify(e.CHECK_ITEM))
+'&CHECK_ITEM_NAME='+ encodeURIComponent(JSON.stringify(e.CHECK_ITEM_NAME))
+'&CHECK_STANDARD='+ encodeURIComponent(JSON.stringify(e.CHECK_STANDARD))
+'&REFERENCE_BASIS='+ encodeURIComponent(JSON.stringify(e.REFERENCE_BASIS))
+'&CHECK_RESULT='+ encodeURIComponent(JSON.stringify(e.CHECK_RESULT))
+'&index='+e.index
+'&baoBaoType='+this.baoBaoType
});
},
//跳转事件
goToEdit(e) {
uni.navigateTo({
url: '/pages/application/hidden-danger-check-standard/custom/list-item-check-hidden-form?HIDDEN_ID='+e
});
},
//添加合格照片
gotoAddImg(e) {
uni.navigateTo({
url: '/pages/application/hidden-danger-check-standard/custom/list-item-check-imgs?RECORDITEM_ID='+e
});
},
}
}
</script>
<style>
.select radio {
transform: scale(0.9);
}
.bgh{
background: #f8f6f6;
color: #d9d7d7;
}
</style>