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

395 lines
13 KiB
Vue
Raw Normal View History

2024-02-03 09:32:20 +08:00
<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>合格.{{ item.OPERATION_TYPE === 1 ? item.CHECK_QUALIFIED : '' }}</text>
</view>
<view v-if="item.ISNORMAL==0" @click="$noMultipleClicks(gotoAddImg,item.RECORDITEM_ID)" class="cuIcon-infofill text-blue unqualified"></view>
</view>
<view v-if="item.ISNORMAL==0 && item.OPERATION_TYPE === 2" class="input">
<textarea maxlength="-1" v-model="item.CHECK_UNQUALIFIED" placeholder="合格信息详细描述(必填项)"></textarea>
</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_UNQUALIFIED: item.item.CHECK_UNQUALIFIED
})">
<radio class='red mr10' :class="item.ISNORMAL==1?'checked':''" :checked="item.ISNORMAL==1" disabled ></radio>
<text>不合格.{{ item.OPERATION_TYPE === 1 ? item.CHECK_UNQUALIFIED : '' }}</text>
</view>
<view v-if="item.ISNORMAL==1" @click="$noMultipleClicks(goToEdit,item.HIDDEN_ID)" class="cuIcon-infofill text-blue unqualified"></view>
<view v-if="item.ISNORMAL==1 && item.OPERATION_TYPE === 2" class="input">
<textarea maxlength="-1" disabled v-model="item.CHECK_UNQUALIFIED" placeholder="不合格信息详细描述(必填项)"></textarea>
</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>
</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',
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;
// _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 (){
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) {
CHECK_RESULT = _this.list[i].CHECK_QUALIFIED
} else if (this.list[i].ISNORMAL === 1) {
CHECK_RESULT = _this.list[i].CHECK_UNQUALIFIED
} else if (this.list[i].ISNORMAL === 2) {
CHECK_RESULT = "不涉及"
}
if (!CHECK_RESULT) {
uni.showToast({
icon: 'none',
title: '第'+(i+1)+'项检查为填写检查,检查结果不能为空',
duration: 1500
});
return;
}
}
}
if (!_this.other[0].USER_ID) {
uni.showToast({
icon: 'none',
title: '请添加检查人',
duration: 1500
});
return;
}
var _this = this;
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) {
item.CHECK_RESULT = _this.list[i].CHECK_QUALIFIED
} else if (_this.list[i].ISNORMAL === 1) {
item.CHECK_RESULT = _this.list[i].CHECK_UNQUALIFIED
} 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();//强制刷新
}
},
//跳转事件
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_UNQUALIFIED='+ encodeURIComponent(JSON.stringify(e.CHECK_UNQUALIFIED))
+'&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);
}
</style>