<template>
<view class="wrap">
<u-form :model="model" :rules="rules" ref="uForm" label-width="160">
<!-- <u-form-item label="用热卡号" prop="RESCARDNUM">
<u-input type="text" v-model="model.RESCARDNUM" placeholder="请输入用热卡号" disabled></u-input>
</u-form-item> -->
<u-form-item label="住户地址" prop="HOMEADDRESS">
<u-input type="text" v-model="model.HOMEADDRESS" placeholder="请输入住户地址" disabled></u-input>
</u-form-item>
<!-- <u-form-item label="住户姓名" prop="RESNAME">
<u-input type="text" v-model="model.RESNAME" placeholder="请输入住户姓名" disabled></u-input>
</u-form-item> -->
<u-form-item label="稽查人员" prop="INSPECTOR">
<u-input type="text" v-model="model.INSPECTOR" placeholder="请输入稽查人员"></u-input>
</u-form-item>
<u-form-item label="稽查时间" prop="INSPECTORTIME">
<u-input type="text" v-model="model.INSPECTORTIME" placeholder="请输入稽查时间" disabled></u-input>
</u-form-item>
<u-form-item label="稽查模式" required>
<uni-data-select v-model="DataSelectJC" :localdata="rangeJC" @change="selcetchangeJC"></uni-data-select>
</u-form-item>
<u-form-item label="整改时间" v-if="jcItem">
<view class="u-demo-area" @click="showChange">
<u-calendar v-model="showDate" ref="calendar" max-date="2050-01-01"
@change="changeDate"></u-calendar>
<view class="u-demo-result-line text-black">
{{model.RECTIFICATION||"请输入整改时间"}}
</view>
</view>
</u-form-item>
<u-form-item label="稽查结果" required v-if="jcItem">
<uni-data-select v-model="DataSelectClqkvalue" :localdata="range"
@change="selcetchange"></uni-data-select>
</u-form-item>
<u-form-item label="稽查备注" prop="NOTES" v-if="jcItem">
<u-input type="textarea" v-model="model.NOTES" placeholder="请输入稽查备注信息"></u-input>
</u-form-item>
<u-form-item label="信誉等级" >
<uni-data-select v-if="pfShow" v-model="DataSelectPfvalue" :localdata="Pfrange"
@change="selcetPfchange"></uni-data-select>
</u-form-item>
<u-form-item label="上传图片" prop="photo" v-if="jcItem" required>
<u-upload ref="uUpload" :action="uploadUrl" :auto-upload="autoUpload" :file-list="fileList"
:max-count="maxCount" @on-list-change="onListChange"></u-upload>
</u-form-item>
<u-form-item label="上传视频" prop="video" v-if="jcItem">
<view class="video-upload-container">
<view class="video-preview" v-if="videoUrl">
<video :src="videoUrl" controls></video>
<view class="video-delete-icon" @click="deleteVideo">
<u-icon name="close-circle" size="24" color="#ff4d4f"></u-icon>
</view>
</view>
<view class="video-upload-btn" @click="chooseVideo" v-else>
<u-icon name="plus" size="40"></u-icon>
<text>点击拍摄/选择视频</text>
</view>
</view>
</u-form-item>
</u-form>
<u-button type="warning" v-if="!isSaved" @click="submit">提交</u-button>
<!-- <u-button type="warning" v-if="!isSaved" @click="SaveScore">提交</u-button> -->
<u-button type="default" v-if="isSaved" @click="btnBack">返回</u-button>
</view>
</template>
<script>
export default {
data() {
return {
// 表单对象属性
model: {
RESCARDNUM: "",
RESNAME: '',
HOMEADDRESS: "",
INSPECTOR: "",
ISFAST: "",
INSPECTORTIME: "",
photo: '',
NOTES: '',
GNJID: '',
RESIDENTID:'',
USER_ID:'',
},
// 表单验证规则
rules: {},
codeTips: '',
// 上传参数
uploadUrl: this.$config.baseUrl +
'/api/WebApi/UploadImage', //上传地址 'http://localhost:57047/api/WebApi/UploadImage',
autoUpload: false, //自动上传
maxCount: 5, //最大文件个数
//上传控件 1
fileList: [], // 预置上传列表 [{url: 'http://...',error: false,progress: 100}],
lists: [], // 组件内部的文件列表
//所有上传列表
uploadList: [], //上传列表
uploadPath: "/Upload/check/", //上传文件保存目录
keyId: "", //上传文件关联主键ID
isSaved: false, //是否保存数据
DataSelectClqkvalue: '',
range: [],
showDate: false,
DataSelectJC: '',
rangeJC: [],
hasFile: "",
jcItem: true,
userInfo: '',
score: null,
scoreLevel: '',
DataSelectPfvalue: '',
Pfrange: [],
pfShow: false,
videoUrl: '', // 存储视频临时路径
videoFile: null, // 存储视频文件对象
maxVideoCount: 1, // 最大视频数量
uploadingVideo: false, // 是否正在上传视频
imgname:[],//存储上传名称
};
},
onLoad(option) {
console.log("稽查页面加载 option==", option);
//console.log("option.resName==", option.resName);
if (option.resName != "null") {
this.model.RESNAME = option.resName ? option.resName : '';
} else {
this.model.RESNAME = "暂无姓名";
}
this.model.RESCARDNUM = option.resCardNum;
this.model.HOMEADDRESS = option.homeAddress;
this.model.RESIDENTID = option.resIdentid;
// 获取登录信息
this.userInfo = this.$base.getStorage("userInfo");
//nsole.log('userInfo:', this.userInfo);
this.model.INSPECTOR = this.userInfo.USER_NAME || "";
this.model.INSPECTORTIME = this.$common.getNowDate("yyyy-mm-dd hh:mm:ss");
// 获取主键ID
this.getKeyId();
this.getGdlxData();
this.getJCData();
this.getPflxData();
},
onReady() {
//console.log('变更申请 页面加载 完成');
// 表单绑定验证规则
this.$refs.uForm.setRules(this.rules);
this.getGNJData();
},
methods: {
// 选择视频
chooseVideo() {
uni.chooseVideo({
count: this.maxVideoCount,
sourceType: ['camera', 'album'], // 从相机或相册选择
maxDuration: 120, // 最长拍摄时间,默认60s
camera: 'back', // 默认后置摄像头
success: (res) => {
console.log('选择视频成功', res);
this.videoUrl = res.tempFilePath;
this.videoFile = {
tempFilePath: res.tempFilePath,
size: res.size,
duration: res.duration,
width: res.width,
height: res.height
};
},
fail: (err) => {
console.error('选择视频失败', err);
uni.showToast({
title: '选择视频失败',
icon: 'none'
});
}
});
},
// 删除视频
deleteVideo() {
this.videoUrl = ''; // 清空视频临时路径
this.videoFile = null; // 清空视频文件对象
// 如果 uploadList 或 lists 存储了视频记录,也需要移除
if (this.uploadList && this.uploadList.length > 0) {
this.uploadList = this.uploadList.filter(item => item.type !== 7); // 假设 type=7 是视频类型
}
if (this.lists && this.lists.length > 0) {
this.lists = this.lists.filter(item => item.type !== 7);
}
},
selcetPfchange(e) {
this.DataSelectPfvalue = e.toString();
if (this.DataSelectPfvalue === "10") {
this.score = '10';
} else if (this.DataSelectPfvalue === "7") {
this.score = '7';
} else if (this.DataSelectPfvalue === "4") {
this.score = '4';
} else if (this.DataSelectPfvalue === "1") {
this.score = '1';
}
},
//查询评分等级数据
getPflxData() {
//console.log("================执行事件getGdlxData() 方法=====================lxType=");
var where = " and type_parent_id=647";
console.log("where==", where)
this.$api.request({
url: '/GetQueryData',
data: {
jsonData: {
tableName: "SYS_TYPE",
where: where,
fields: "TYPE_ID,TYPE_NAME",
sortName: "SORT_INDEX",
sortOrder: "asc"
}
},
success: (res) => {
for (var i = 0; i < res.length; i++) {
var item = {
text: res[i].TYPE_NAME,
value: res[i].TYPE_NAME,
//label: res[i].TYPE_NAME,
};
this.Pfrange.push(item);
}
this.pfShow = true;
},
});
},
//日期改变事件
changeDate(e) {
this.model.RECTIFICATION = e.result;
},
//显示日历
showChange(index) {
this.showDate = !this.showDate;
},
//返回按钮
btnBack() {
uni.navigateBack();
},
selcetchange(e) {
const selectedOption = this.range.find(item => item.value === e.toString());
if (selectedOption) {
this.model.CONTENT = selectedOption.value; // 保存显示文本(原逻辑)
this.model.CONTENTTYPE = selectedOption.typeId; // 新增:保存 TYPE_ID
}
//console.log("this.model.CONTENT==", this.model.CONTENT)
},
selcetchangeJC(e) {
this.model.ISFAST = e.toString();
if (this.model.ISFAST == 641) {
this.jcItem = false;
} else {
this.jcItem = true;
}
console.log("this.model.ISFAST==", this.model.ISFAST)
},
// 表单提交方法
submit() {
// 表单验证
// this.$refs.uForm.validate(valid => {
// if (valid) {
// console.log('验证通过');
// console.log('上传列表1 this.lists==', this.lists);
// if (!this.lists.length) {
// uni.showToast({
// title: "请上传图片",
// icon: "none"
// });
// return;
// }
// // 验证通过 保存数据
// this.upload();
// } else {
// console.log('验证失败');
// }
// });
//判断整改时间不能为空
// if (!this.model.RECTIFICATION) {
// uni.showToast({
// title: "整改时间不能为空",
// icon: "none"
// });
// return;
// }
if (this.model.ISFAST == 641) {
console.log("快速稽查,可以不填信息====");
this.saveChange();
} else {
if (!this.model.CONTENT) {
uni.showToast({
title: "稽查结果不能为空",
icon: "none"
});
return;
}
}
// 检查是否上传了图片(必填项)
if (!this.lists || this.lists.length === 0) {
uni.showToast({
title: "请上传至少一张图片",
icon: "none",
});
return;
}
this.upload();
},
//调用并执行父页面窗口中的事件方法
InvokeAndExecuteParentMethod() {
//console.log("==============执行事件InvokeAndExecuteParentMethod()方法================");
const eventChannel = this.getOpenerEventChannel();
eventChannel.emit('openedEvent', {
data: 'lin'
});
this.$emit("close", "");
},
//上传方法
upload() {
console.log("开始上传图片和视频...");
//上传文件列表
this.uploadList = this.lists;
// 初始化上传计数器
this.uploadedImageCount = 0;
if (this.uploadList) {
this.totalImageCount = this.uploadList.length;
console.log("总图片数量:", this.totalImageCount);
} else {
this.totalImageCount = 0;
}
// 重置上传状态
if (this.uploadList) {
this.uploadList.forEach(item => {
item.progress = 0; // 重置进度
});
}
if (this.videoFile) {
this.videoFile.progress = 0; // 重置视频进度
}
// 先上传图片
if (this.uploadList && this.uploadList.length > 0) {
console.log("有图片需要上传,数量:", this.uploadList.length);
this.uploadList.forEach((item, index) => {
//判断是否上传
if (item.progress === 0) {
var path = item.url;
var name = "app_jc_" + this.$common.getNowTimestamp() + "_" + this.$common
.getRandomCode();
item.name = name;
console.log(`开始上传图片 ${index+1}/${this.uploadList.length}, 文件名: ${name}`);
uni.uploadFile({
url: this.uploadUrl,
filePath: path,
name: 'file',
formData: {
'fileName': name,
"filePath": this.uploadPath,
},
success: (res) => {
console.log(`图片 ${index+1} 上传成功 res.data==`, res);
if (res.statusCode === 200) {
item.progress = 100;
this.uploadedImageCount++;
console.log(
`图片 ${index+1} 上传完成, 已上传完成的图片数量: ${this.uploadedImageCount}/${this.totalImageCount}`
);
const name = JSON.parse(JSON.parse(res.data));
//console.log("所有图片123:", name);
this.imgname.push(name); // 添加到数组
this.setProgress([]); // 更新进度状态
// 检查是否所有图片都已上传完成
if (this.uploadedImageCount === this.totalImageCount) {
console.log("所有图片已上传完成");
console.log("所有图片名称:", this.imgname); // 打印所有图片名称
// const name = JSON.parse(JSON.parse(res.data));
// console.log("所有图片123:", name);
// this.imgname.push(name); // 添加到数组
// console.log("所有图片456:", this.imgname.push(name));
// 开始上传视频
if (this.videoFile) {
this.uploadVideoFile(); // 上传视频
} else {
// 没有视频,直接保存数据
console.log("没有视频需要上传,直接保存数据");
this.saveFile();
}
} else {
console.log("仍有图片未上传完成");
}
} else {
uni.showToast({
title: "图片上传失败,状态码: " + res.statusCode,
icon: "none"
});
}
},
fail: (res) => {
console.log(`图片 ${index+1} 上传失败 res==`, res);
uni.showToast({
title: "图片上传失败,请重试",
icon: "none"
});
// 即使图片上传失败,也增加计数,以便流程可以继续
this.uploadedImageCount++;
if (this.uploadedImageCount === this.totalImageCount) {
// 即使有图片上传失败,也继续流程
if (this.videoFile) {
this.uploadVideoFile(); // 上传视频
} else {
// 没有视频,直接保存数据
console.log("没有视频需要上传,直接保存数据");
this.saveFile();
}
}
}
});
} else {
console.log(`图片 ${index+1} 已经上传完成,跳过`);
this.uploadedImageCount++; // 如果图片已经上传完成,也增加计数
}
});
} else {
// 如果没有图片,直接检查视频
console.log("没有图片需要上传");
if (this.videoFile) {
this.uploadVideoFile(); // 直接上传视频
} else {
// 既没有图片也没有视频,直接保存数据
console.log("既没有图片也没有视频,直接保存数据");
//this.saveFile();
this.saveChange();
}
}
},
// 上传视频文件
uploadVideoFile() {
if (!this.videoFile || this.videoFile.progress === 100) {
// 如果没有视频或视频已上传完成,直接保存文件
this.saveFile();
return;
}
console.log("开始上传视频...");
var name = "app_jc_video_" + this.$common.getNowTimestamp() + "_" + this.$common.getRandomCode();
this.videoFile.name = name;
console.log("视频文件名 name====" + JSON.stringify(name));
console.log("视频上传路径 this.uploadUrl====" + this.uploadUrl);
console.log("视频临时路径 this.videoFile.tempFilePath====" + this.videoFile.tempFilePath)
uni.uploadFile({
url: this.uploadUrl,
filePath: this.videoFile.tempFilePath,
name: 'file',
formData: {
'fileName': name,
"filePath": this.uploadPath,
},
success: (res) => {
console.log("视频上传成功 res.data==", res);
if (res.statusCode === 200) {
this.videoFile.progress = 100; // 设置上传进度为100%
this.setVideoProgress([]); // 更新视频进度状态
// 检查是否所有文件(图片和视频)都已上传完成
if (this.isAllUploaded()) {
this.saveFile(); // 保存文件信息到数据库
}
} else {
uni.showToast({
title: "视频上传失败,状态码: " + res.statusCode,
icon: "none"
});
}
},
fail: (res) => {
console.log("视频上传失败 res==", res);
uni.showToast({
title: "视频上传失败,请重试",
icon: "none"
});
}
});
},
//设置文件上传进度
setProgress(data) {
if (data && Array.isArray(data) && data[0]) {
var name = data[0];
var ext = name.substr(name.lastIndexOf("."));
// 循环设置上传进度
for (var i = 0; i < this.uploadList.length; i++) {
var fileName = this.uploadList[i].name;
if (fileName && name.endsWith(ext)) { // 检查文件名是否匹配
this.uploadList[i].progress = 100; // 上传完成
console.log("文件上传完成:", fileName);
}
}
} else {
// 如果没有特定数据,确保所有图片的progress属性已初始化
if (this.uploadList && this.uploadList.length > 0) {
for (let i = 0; i < this.uploadList.length; i++) {
if (this.uploadList[i].progress === undefined) {
this.uploadList[i].progress = 0; // 确保progress已初始化
}
}
}
}
},
//上传列表改变事件 1
onListChange(lists) {
console.log('onListChange', lists);
this.lists = lists;
//循环添加属性
this.lists.forEach(item => {
// item.tag = 1;
item.tag = "稽查图片";
item.info = "稽查信息";
item.type = 7; // sys_type 表类型配置
// 确保每个item都有progress属性,初始值为0
if (item.progress === undefined) {
item.progress = 0;
}
});
},
//设置视频上传进度
setVideoProgress(data) {
if (data && Array.isArray(data) && data[0]) {
var name = data[0];
var ext = name.substr(name.lastIndexOf("."));
this.videoFile.progress = 100; // 上传成功
console.log("视频上传完成:", name);
} else {
if (this.videoFile) {}
}
// 检查是否所有文件都已上传完成
if (this.isAllUploaded()) {
this.saveFile(); // 保存文件信息到数据库
}
},
// setProgress(data) {
// if (data) {
// var name = data[0];
// var ext = name.substr(name.lastIndexOf("."));
// //循环设置上传进度
// for (var i = 0; i < this.uploadList.length; i++) {
// var fileName = this.uploadList[i].name + ext;
// if (name == fileName) {
// this.uploadList[i].name = name;
// this.uploadList[i].ext = ext;
// this.uploadList[i].progress = 100; //上传进度
// //console.log("设置上传进度 this.uploadList[i].progress==", this.uploadList[i].progress);
// }
// }
// }
// //判断是否全部上传成功
// if (this.isAllUploaded()) {
// //保存数据
// //console.log("全部上传成功==");
// //保存文件
// this.saveFile();
// }
// },
//判断是否全部上传成功
isAllUploaded() {
var allSuccess = true;
// 检查图片是否全部上传完成(允许部分失败)
if (this.uploadList && this.uploadList.length > 0) {
for (let i = 0; i < this.uploadList.length; i++) {
// 只要有任何一个图片未开始上传(progress为0),就认为未全部完成
if (this.uploadList[i].progress === 0) {
allSuccess = false;
break;
}
}
} else {
console.log("没有图片需要上传");
}
// 检查视频是否上传完成
if (this.videoFile) {
if (this.videoFile.progress === 0) {
allSuccess = false; // 视频未开始上传
}
} else {
console.log("没有视频需要上传");
}
console.log("图片和视频上传状态: allSuccess=", allSuccess);
return allSuccess;
},
//保存文件
saveFile() {
//循环保存文件
for (var i = 0; i < this.uploadList.length; i++) {
this.imgname.forEach(name => {
console.log("图片名称:", name);
var data = this.uploadList[i];
//console.log('保存文件 data==', data);
// 序列名称,使用object对象方式,解决回调时获取文件信息异常的问题
data.seqName = "SQ_SYS_FILE";
// 获取序列
this.getSeqId(data, (result) => {
console.log("获取序列 result==", result);
//循环保存文件
this.$api.request({
url: '/AddDetailData',
data: {
jsonData: {
tableName: "SYS_FILE",
keyName: "FILE_ID",
keyValue: result.seqId,
FILE_NAME: name[0],
FILE_PATH: this.uploadPath,
FILE_TYPE: result.type, // sys_type 表类型配置
//FILE_EXT: result.ext,
// FILE_EXT: (() => {
// const lastDotIndex = result.url.lastIndexOf(".");
// if (lastDotIndex !== -1 && lastDotIndex < result.url
// .length - 1) {
// const ext = result.url.substring(lastDotIndex + 1);
// // 这里可以添加对扩展名的合法性检查,例如检查是否在允许的扩展名列表中
// if (this.isValidExtension(ext)) {
// return ext;
// }
// }
// return ".jpg"; // 默认扩展名
// })(),
FILE_SIZE: result.file.size,
FILE_INFO: result.info,
FILE_TAG: result.tag,
KEY_ID: this.keyId || "",
}
},
success: (res) => {
//console.log("保存文件信息 res==", res);
console.log("保存图片信息 res.data==" + JSON.stringify(res));
if (res.iserror) {
//console.log("保存文件信息 失败 res.message==" + res.message);
uni.showToast({
title: "保存文件信息失败,请重试",
icon: "none"
});
} else {
// 设置保存成功状态
//console.log("保存文件信息 成功 result.name==" + result.name);
//上传成功,设置文件保存状态
this.setSaved(result.name);
}
},
});
});
});
}
// 保存视频文件
if (this.videoFile && this.videoFile.progress === 100) {
var videoData = {
seqName: "SQ_SYS_FILE",
name: this.videoFile.name,
ext: this.videoFile.tempFilePath.substr(this.videoFile.tempFilePath.lastIndexOf(".")),
type: 7, // 视频类型
file: {
path: this.videoFile.tempFilePath,
size: this.videoFile.size
},
tag: "稽查视频",
info: "稽查信息"
};
this.getSeqId(videoData, (result) => {
this.$api.request({
url: '/AddDetailData',
data: {
jsonData: {
tableName: "SYS_FILE",
keyName: "FILE_ID",
keyValue: result.seqId,
FILE_NAME: result.name,
FILE_PATH: this.uploadPath,
FILE_TYPE: videoData.type,
FILE_EXT: videoData.ext,
FILE_SIZE: videoData.file.size,
FILE_INFO: videoData.info,
FILE_TAG: videoData.tag,
KEY_ID: this.keyId || "",
}
},
success: (res) => {
console.log("保存视频信息 res.data==" + JSON.stringify(res));
if (res.iserror) {
uni.showToast({
title: "保存视频文件信息失败,请重试",
icon: "none"
});
} else {
this.setSavedVideo(result.name);
}
},
});
});
}
},
// 假设的验证扩展名是否合法的函数
isValidExtension(extension) {
const allowedExtensions = ["jpg", "png", "jpeg"]; // 允许的扩展名列表
return allowedExtensions.includes(extension.toLowerCase());
},
//上传成功,设置文件保存状态
setSaved(name) {
//console.log("设置保存状态 name==" + name);
//循环设置设置保存状态
for (var i = 0; i < this.uploadList.length; i++) {
// console.log("设置保存状态 this.uploadList[i].name==" + this.uploadList[i].name);
if (name == this.uploadList[i].name) {
this.uploadList[i].saved = true;
//console.log("设置保存状态 this.uploadList[i].saved==", this.uploadList[i].saved);
}
}
//判断是否全部保存成功
if (this.isAllSaved()) {
//保存数据
//console.log("全部保存成功==");
//保存稽查信息
this.saveChange();
}
},
// 设置视频保存状态
setSavedVideo(name) {
if (name == this.videoFile.name) {
this.videoFile.saved = true;
console.log("设置视频保存状态 this.videoFile.saved==", this.videoFile.saved);
}
// 判断是否全部保存成功(图片和视频)
if (this.isAllSaved()) {
// 保存稽查信息
this.saveChange();
}
},
//判断是否全部保存成功
isAllSaved() {
var allSuccess = false;
if (this.uploadList) {
allSuccess = true;
//循环判断
for (var i = 0; i < this.uploadList.length; i++) {
if (!this.uploadList[i].saved) {
allSuccess = false;
}
}
}
console.log("是否全部保存成功==", allSuccess);
return allSuccess;
},
//获取序列
getSeqId(data, callback) {
//判断参数是对象还是字符串
var seqName = data.seqName || data;
//console.log("获取序列 seqName==", seqName);
this.$api.request({
url: '/GetSeqId',
data: {
jsonData: {
seqName: seqName,
}
},
success: (res) => {
console.log("获取序列 res==", res);
//返回数据处理,如果是object对象,则添加seqId后返回
if (data.seqName) {
data.seqId = res;
} else {
data = res;
}
// 回调方法
if (callback) {
callback(data);
}
},
})
},
// 获取主键ID
getKeyId() {
// 获取序列
this.getSeqId("SQ_HM_CHECK", (result) => {
this.keyId = result;
});
},
//保存稽查信息
saveChange() {
this.hasFile = this.uploadList.length ? 1 : 0; //有没有附件;默认0为没有,1为有
//循环保存文件
this.$api.request({
url: '/AddDetailData',
data: {
jsonData: {
tableName: "HM_CHECK",
keyName: "CHECK_ID",
keyValue: this.keyId,
RESCARDNUM: this.model.RESCARDNUM, //用户卡号
RESNAME: this.model.RESNAME, //用户名称
HOMEADDRESS: this.model.HOMEADDRESS, //用户地址
INSPECTOR: this.model.INSPECTOR, //稽查人员
CONTENT: this.model.CONTENT, //稽查信息
INSPECTORTIME: this.model.INSPECTORTIME, //稽查时间
HAVE_OR_NOT: this.hasFile, //有没有附件;默认0为没有,1为有
NOTES: this.model.NOTES, //备注
RECTIFICATION: this.model.RECTIFICATION, //整改时间
GNJID: this.model.GNJID, //供暖季ID
ISFAST: this.model.ISFAST, //是否快速稽查,640否,641是
RESIDENTID: this.model.RESIDENTID,//新增:用户信息表主键
CONTENTTYPE: this.model.CONTENTTYPE, // 新增:稽查结果类型ID
USER_ID: this.userInfo.USER_ID,//当前登录人员ID
}
},
success: (res) => {
//console.log("保存稽查信息 res==", res);
// console.log("保存文件信息 res.data==" + JSON.stringify(res));
if (res.iserror) {
//console.log("保存稽查信息 失败 res.message==" + res.message);
// uni.showModal({
// content: "保存稽查信息失败,请重试",
// });
} else {
// 设置保存成功状态
//console.log("保存稽查信息 成功 res.data==" + res.data);
this.isSaved = true;
//在实时数据表和历史数据表中保存稽查实时信息
//如果实时数据表存在则更新,如果不存在则插入,历史数据表需要写入
this.getFormInfo();
this.SaveScore();
}
},
});
},
////信誉度评分
SaveScore() {
this.$api.request({
url: '/AddDetailData',
data: {
jsonData: {
tableName: "SCORE_LOG",
keyName: "LOG_ID",
keyValue: "",
USER_ID: this.userInfo.USER_ID, //评分人
FRACTION: this.score, //分数
FRACTION_NAME: this.DataSelectPfvalue, //分数名称
WAY: "APP稽查", //途径
RESCARDNUM: this.model.RESCARDNUM, //卡号
GENERALID: this.keyId, //稽查主键ID
USER_NAME: this.userInfo.USER_NAME, //评分人姓名
WEIGHT: 644
}
},
success: (res) => {
if (res.iserror) {
console.log("保存信息失败");
} else {
console.log("保存信息成功");
this.SetResidentScore();
}
},
});
},
SetResidentScore() {
this.$api.request({
url: '/SetResidentScore',
data: {
jsonData: {
QProcName: "Proc_SetResidentScore", //存储过程名称
QResCardNum: this.RESCARDNUM, //用户卡号
//QFraction: this.score, //分数
Qtype: 2, //类别
}
},
success: (res) => {
//console.log("保存成功 res==", JSON.stringify(res));
if (res.iserror) {
console.log("失败===")
} else {
console.log("成功===")
}
},
});
},
//查询该用户的稽查信息
getFormInfo() {
//console.log("查询表单信息");
this.$api.request({
url: '/GetSingleData',
data: {
jsonData: {
tableName: 'HM_CHECK_REALTIME',
where: " and RESCARDNUM = " + this.model.RESCARDNUM,
}
},
success: (res) => {
//console.log("查询表单信息 res==" + JSON.stringify(res));
if (res) {
this.UpdateCheck_Real();
} else {
this.AddCheck_Real();
}
//数据保存成功后,调用父界面的方法刷新数据
this.InvokeAndExecuteParentMethod();
//数据保存成功后 返回到上一级界面
uni.navigateBack();
},
});
},
//保存实时稽查数据
AddCheck_Real() {
//console.log("进入AddCheck_Real方法====");
//循环保存文件
this.$api.request({
url: '/AddDetailData',
data: {
jsonData: {
tableName: "HM_CHECK_REALTIME",
keyName: "CHECK_ID",
keyValue: this.keyId,
RESCARDNUM: this.model.RESCARDNUM, //用户卡号
RESNAME: this.model.RESNAME, //用户名称
HOMEADDRESS: this.model.HOMEADDRESS, //用户地址
INSPECTOR: this.model.INSPECTOR, //稽查人员
CONTENT: this.model.CONTENT, //稽查信息
INSPECTORTIME: this.model.INSPECTORTIME, //稽查时间
HAVE_OR_NOT: this.hasFile, //有没有附件;默认0为没有,1为有
NOTES: this.model.NOTES, //备注
RECTIFICATION: this.model.RECTIFICATION, //整改时间
GNJID: this.model.GNJID, //供暖季ID
ISFAST: this.model.ISFAST, //是否快速稽查,640否,641是
RESIDENTID: this.model.RESIDENTID,//新增:用户信息表主键
CONTENTTYPE: this.model.CONTENTTYPE, // 新增:稽查结果类型ID
USER_ID: this.userInfo.USER_ID,//当前登录人员ID
}
},
success: (res) => {
//console.log("保存稽查信息 res==", res);
if (res.iserror) {
//console.log("保存稽查信息 失败 res.message==" + res.message);
uni.showModal({
content: "保存稽查实时信息失败,请重试",
});
} else {
uni.showModal({
content: "保存稽查信息成功",
success: (res) => {
console.log("保存稽查信息成功");
// if (res.confirm) {
// uni.navigateBack();
// } else {
// uni.navigateBack();
// }
// //数据保存成功后,调用父界面的方法刷新数据
// this.InvokeAndExecuteParentMethod();
// //数据保存成功后 返回到上一级界面
// uni.navigateBack();
}
});
}
},
});
},
//修改稽查实时数据
UpdateCheck_Real() {
//console.log("进入UpdateCheck_Real方法====");
//循环保存文件
this.$api.request({
url: '/UpdateDetailData',
data: {
jsonData: {
tableName: "HM_CHECK_REALTIME",
keyName: "RESCARDNUM",
keyValue: this.model.RESCARDNUM,
RESCARDNUM: this.model.RESCARDNUM, //用户卡号
CONTENT: this.model.CONTENT, //稽查信息
HAVE_OR_NOT: this.hasFile, //有没有附件;默认0为没有,1为有
INSPECTOR: this.model.INSPECTOR, //稽查人员
INSPECTORTIME: this.model.INSPECTORTIME, //稽查时间
NOTES: this.model.NOTES, //备注
RECTIFICATION: this.model.RECTIFICATION, //整改时间
GNJID: this.model.GNJID, //供暖季ID
ISFAST: this.model.ISFAST, //是否快速稽查,640否,641是
RESIDENTID: this.model.RESIDENTID,//新增:用户信息表主键
CONTENTTYPE: this.model.CONTENTTYPE, // 新增:稽查结果类型ID
USER_ID: this.userInfo.USER_ID,//当前登录人员ID
}
},
success: (res) => {
//console.log("保存稽查信息 res==", res);
if (res.iserror) {
//console.log("保存稽查信息 失败 res.message==" + res.message);
uni.showModal({
content: "保存稽查实时信息失败,请重试",
});
} else {
uni.showModal({
content: "保存稽查信息成功",
success: (res) => {
// if (res.confirm) {
// uni.navigateBack();
// } else {
// uni.navigateBack();
// }
}
});
}
},
});
},
//查询上传文件信息
getFileData() {
console.log("查询上传文件信息");
this.$api.request({
url: '/GetQueryData',
data: {
jsonData: {
tableName: "sys_file",
where: "and file_type=7 and key_id=" + this.keyId,
}
},
success: (res) => {
console.log("查询上传文件信息 res=", res)
// console.log("查询上传文件信息 res=" + JSON.stringify(res));
//判断是否成功
if (res.length) {
//设置文件列表
this.setFileData(res);
} else {
uni.showModal({
content: "查询数据异常"
});
}
}
});
},
//查询供暖季ID
getGNJData() {
//console.log("查询供暖季信息");
this.$api.request({
url: '/GetQueryData',
data: {
jsonData: {
tableName: "FEE_HEATINGSEASON_INFO",
where: "and ISNOTCURRENTYEAR=851 ",
}
},
success: (res) => {
//console.log("查询供暖季信息 res=" + JSON.stringify(res));
this.model.GNJID = res[0].GNJID;
//console.log("this.model.GNJID=" + this.model.GNJID);
}
});
},
//设置文件列表
setFileData(data) {
this.lists = [];
if (data.length) {
//循环处理文件列表
for (var i = 0; i < data.length; i++) {
var path = this.$config.baseUrl + data[i].FILE_PATH + data[i].FILE_NAME;
var item = {
url: path,
progress: 100,
error: false,
saved: true,
file: {
path: path,
size: data[i].FILE_SIZE
},
tag: data[i].FILE_TAG
};
//根据类型设置列表
this.lists.push(item);
}
}
this.fileList = this.lists;
},
//查询稽查数据
getGdlxData() {
var where = " and type_parent_id=508";
this.$api.request({
url: '/GetQueryData',
data: {
jsonData: {
tableName: "SYS_TYPE",
where: where,
fields: "TYPE_ID,TYPE_NAME",
sortName: "SORT_INDEX",
sortOrder: "asc"
}
},
success: (res) => {
for (var i = 0; i < res.length; i++) {
var item = {
text: res[i].TYPE_NAME,
value: res[i].TYPE_NAME,
typeId: res[i].TYPE_ID ,
//label: res[i].TYPE_NAME,
};
this.range.push(item);
}
},
});
},
//查询是否快速稽查
getJCData() {
var where = " and type_parent_id=639";
this.$api.request({
url: '/GetQueryData',
data: {
jsonData: {
tableName: "SYS_TYPE",
where: where,
fields: "TYPE_ID,TYPE_NAME",
sortName: "SORT_INDEX",
sortOrder: "asc"
}
},
success: (res) => {
for (var i = 0; i < res.length; i++) {
var item = {
text: res[i].TYPE_NAME,
value: res[i].TYPE_ID,
//label: res[i].TYPE_NAME,
};
this.rangeJC.push(item);
this.DataSelectJC = this.rangeJC[0]?.value || '';
}
},
});
}
}
};
</script>
<style scoped lang="scss">
.container {
padding: 10px;
}
.score-input {
display: flex;
align-items: center;
margin-bottom: 10rpx;
}
.score-input label {
margin-right: 10px;
}
.score-input input {
flex: 1;
}
.score-result {
font-size: 15px;
font-weight: bold;
}
.wrap {
padding: 30rpx;
}
//============================视频相关样式
.video-upload-container {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 100%;
height: 200rpx;
border: 1px dashed #dcdfe6;
border-radius: 8rpx;
padding: 20rpx;
box-sizing: border-box;
.video-preview {
width: 95%;
height: 95%;
//position: relative; // 关键:让删除图标可以绝对定位
video {
width: 95%;
height: 95%;
object-fit: cover; // 或者使用 contain,根据需求调整
}
.video-delete-icon {
position: absolute; // 绝对定位
top: 0rpx; // 距离顶部 10rpx
right: 30rpx; // 距离右侧 10rpx
z-index: 10; // 确保删除图标在最上层
}
}
.video-upload-btn {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
width: 100%;
height: 100%;
color: #909399;
text {
margin-top: 10rpx;
font-size: 24rpx;
}
}
}
/* 确保 u-form-item 不裁剪子元素 */
.u-form-item {
overflow: visible;
}
/* 确保删除图标无额外 margin/padding */
.video-delete-icon {
margin: 0;
padding: 0;
}
//========================
/**/
.u-demo-wrap {
background-color: #FFFFFF;
padding: 40rpx 8rpx;
margin-left: -14rpx;
margin-right: -14rpx;
}
.u-add-wrap {
flex-direction: column;
color: $u-content-color;
font-size: 28rpx;
}
::v-deep .slot-btn {
width: 329rpx;
height: 140rpx;
display: flex;
justify-content: center;
align-items: center;
background: rgb(244, 245, 246);
border-radius: 10rpx;
}
.slot-btn__hover {
background-color: rgb(235, 236, 238);
}
.pre-box {
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
}
.pre-item {
flex: 0 0 48.5%;
border-radius: 10rpx;
height: 140rpx;
overflow: hidden;
position: relative;
margin-bottom: 20rpx;
}
.u-progress {
position: absolute;
bottom: 10rpx;
left: 8rpx;
right: 8rpx;
z-index: 9;
width: auto;
}
.pre-item-image {
width: 100%;
height: 140rpx;
}
.u-delete-icon {
position: absolute;
top: 10rpx;
right: 10rpx;
z-index: 10;
background-color: $u-type-error;
border-radius: 100rpx;
width: 44rpx;
height: 44rpx;
display: flex;
align-items: center;
justify-content: center;
}
</style>
在以上代码中,上传了两张图片,在保存图片的时候会保存两张,但是在数据库中保存却保存了4张,什么地方出了问题
最新发布