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

395 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>合格.{{ 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>