integrated_traffic_uniapp/pages/application/safetymeeting/safetymeeting-detail.vue

288 lines
8.0 KiB
Vue
Raw Normal View History

2024-03-05 18:13:32 +08:00
<template>
<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="dy-card">
<view class="dy-card-title">
<text>{{pd.MEETING_TITLE}}</text>
</view>
<view class="dy-card-content">
<view class="dy-card-content-item">
<text>主持人</text>
<text>{{pd.HOST_PERSON}}</text>
</view>
<view class="dy-card-content-item">
<text>记录人</text>
<text>{{pd.RECORDER}}</text>
</view>
<view class="dy-card-content-item">
<text>会议开始时间</text>
<text>{{pd.MEETING_DATE_START}}</text>
</view>
<view class="dy-card-content-item">
<text>会议结束时间</text>
<text>{{pd.MEETING_DATE_END}}</text>
</view>
<view class="dy-card-content-item">
<text>会议类型</text>
<text>{{pd.MEETING_TYPE === '1' ? '安全生产例会' : pd.MEETING_TYPE === '2' ? '安全生产委员会会议' : ''}}</text>
</view>
<view class="dy-card-content-item">
<text>会议内容</text>
<rich-text :nodes="pd.MEETING_CONTENT"></rich-text>
</view>
</view>
</view>
<view class="cu-tabbar-height"></view>
</scroll-view>
<uni-drawer ref="showHiddenWindow" mode="right" :mask-click="true">
<scroll-view scroll-y="true" style="height: 100vh;">
<!-- 实时照片部分 -->
<view class="cu-form-group image-upload-container">
<view class="title">实时照片</view>
<view class="icon-upload" v-if="!livePhotos.length" @click="chooseImage('LIVEPHOTOS')">
<text class='cuIcon-cameraadd'></text>
</view>
<!-- 图片预览区 -->
<view class="image-preview" v-for="(photo, index) in livePhotos" :key="index">
<image :src="photo" mode="aspectFill" class="upload-image"></image>
<!-- 删除按钮 -->
<view class="delete-icon" @tap.stop="removeImage(index, 'LIVEPHOTOS')">
<text class='cuIcon-close'></text>
</view>
</view>
</view>
<!-- 签字照片部分 -->
<view class="cu-form-group image-upload-container">
<view class="title">签字照片</view>
<view class="icon-upload" v-if="!signaturePicture" @click="chooseImage('SIGNATUREPICTURE')">
<text class='cuIcon-edit'></text>
</view>
<!-- 图片预览区 -->
<view class="image-preview" v-if="signaturePicture">
<image :src="signaturePicture" mode="aspectFill" class="upload-image"></image>
</view>
<!-- 删除按钮 -->
<view>
<view class="delete-icon" @tap.stop="removeImage('SIGNATUREPICTURE')">
<text class='cuIcon-close'></text>
</view>
</view>
</view>
</scroll-view>
<button @click="saveAndCloseDrawer"></button>
</uni-drawer>
<view class="cu-form-group">
<view class="title">是否参会</view>
<button class="cu-btn round bg-blue" @click="addHidden"></button>
</view>
<yk-authpup ref="authpup" type="top" @changeAuth="$noMultipleClicks(editLocation)" :permissionID="permissionID"></yk-authpup>
</view>
</template>
<script>
import {
basePath,loginUser
} from '@/common/tool.js';
import ykAuthpup from "@/components/yk-authpup/yk-authpup"
export default {
components: {
ykAuthpup
},
data() {
return {
permissionID:'',
SAFETY_MEETING_ID : '',
varList:[],
pd:[],
noClick:true,
ACCIDENTS_NAME:"",
MEETING_TITLE:"",
MEETING_TYPE:"",
MEETING_ADDRESS:"",
HOST_PERSON:"",
MEETING_CONTENT:"",
RECORDER:"",
MEETING_DATE_START:"",
MEETING_DATE_END:"",
livePhotos: [],
signaturePicture: [],
}
},
onLoad(e){
var _this = this;
_this.SAFETY_MEETING_ID=e.id;
_this.getData();
},
methods: {
//跳转事件
goToEdit(e) {
uni.navigateTo({
url: '/pages/application/basic-info-manage/basic-information/basic-information-edit'
});
},
getData() {
var _this = this;
uni.showLoading({
title: '请稍候'
})
uni.request({
url: basePath + '/app/safetymeeting/goEdit',
method: 'POST',
dataType: 'json',
header:{
'Content-type':'application/x-www-form-urlencoded'
},
data: {
SAFETY_MEETING_ID: _this.SAFETY_MEETING_ID,
CORPINFO_ID:loginUser.CORPINFO_ID,
USER_ID:loginUser.USER_ID,
},
success: (res) => {
if (res.data != null) {
uni.hideLoading();
_this.pd = res.data.pd;
} else {
uni.showToast({
title: res.data.message,
duration: 2000
});
}
}
});
},
addHidden() {
if (this.$refs.showHiddenWindow) {
this.$refs.showHiddenWindow.open();
}
this.creatorList = [{
NAME: loginUser.NAME,
USER_ID: loginUser.USER_ID
}]
this.$refs['showHiddenWindow'].open()
this.showHiddenWindow = true
this.hiddenIsEdit = true
},
chooseImage(type) {
uni.chooseImage({
count: 1, // 限制只能选择一张图片
success: (res) => {
if (type === 'LIVEPHOTOS' && res.tempFilePaths.length) {
this.livePhotos = res.tempFilePaths[0]; // 如果是单图,确保赋值字符串
} else if (type === 'SIGNATUREPICTURE' && res.tempFilePaths.length) {
this.signaturePicture = res.tempFilePaths[0]; // 确保赋值为字符串路径
}
},
});
},
removeImage(type) {
if (type === 'LIVEPHOTOS') {
this.livePhotos = []; // 清空数组即可移除图片
} else {
this.signaturePicture = null; // 设为null即可移除图片
}
},
openAuth(permissionID){
this.permissionID = permissionID;
setTimeout(()=>{
this.$refs['authpup'].open();
},200)
},
}
}
</script>
<style>
.dy-card {
background-color: #fff;
border-radius: 10upx;
margin: 30upx;
}
.dy-card-title {
display: flex;
justify-content: space-between;
border-bottom: 1px solid #eee;
min-height: 80upx;
line-height: 80upx;
padding: 0 30upx;
}
.dy-card-content {
padding: 0upx 30upx 30upx;
}
.dy-card-content-item {
margin-top: 20upx;
}
.dy-card-content-item .title {
display: flex;
align-items: center;
}
/* 注释掉未使用的样式 */
/* .dy-card-content-item .title .l {
width: 10upx;
height: 30upx;
border-radius: 20upx;
background-color: #666;
margin-right: 10upx;
} */
.dy-card-content-item .content,
.dy-card-content-item .name text {
background-color: #F1F1F1;
padding: 10upx 14upx;
margin-top: 14upx;
line-height: 1.6;
display: inline-block; /* 如果需要显示为inline-block */
}
.image-upload-container {
position: relative;
padding: 10px;
}
.upload-image {
width: 100%; /* 宽度占满容器,根据需要调整 */
height: auto; /* 高度自适应 */
border-radius: 4px; /* 轻微圆角 */
}
.image-preview {
position: relative;
width: 90px; /* 根据需要调整 */
height: 90px; /* 根据需要调整 */
margin-right: 10px; /* 与下一张图片的间距 */
display: inline-block; /* 使图片并排显示 */
}
.delete-icon {
position: absolute;
top: -10px; /* 超出图片范围的一部分,根据需要调整 */
right: -10px; /* 超出图片范围的一部分,根据需要调整 */
background-color: #ff4949; /* 您的红色背景 */
width: 20px; /* 删除图标的大小,根据实际情况调整 */
height: 20px;
border-radius: 10px; /* 圆形 */
display: flex;
align-items: center;
justify-content: center;
}
.delete-icon text {
color: white; /* 图标颜色为白色 */
font-size: 14px; /* 图标大小,根据需要调整 */
}
</style>