|
@@ -20,7 +20,8 @@
|
|
|
<!-- 未上传状态内容 -->
|
|
<!-- 未上传状态内容 -->
|
|
|
<div class="uploaded-content" v-show="item.isConfirmed == null || item.expanded">
|
|
<div class="uploaded-content" v-show="item.isConfirmed == null || item.expanded">
|
|
|
<div class="content-wrapper">
|
|
<div class="content-wrapper">
|
|
|
- <div class="item-desc">{{ item.reason }}</div>
|
|
|
|
|
|
|
+ <text-ellipsis class="item-desc" rows="2" :content="item.reason" expand-text="展开"
|
|
|
|
|
+ collapse-text="收起" />
|
|
|
<div class="tip-box">如果不确定是否发生,直接上传照片即可</div>
|
|
<div class="tip-box">如果不确定是否发生,直接上传照片即可</div>
|
|
|
<div class="example-wrapper">
|
|
<div class="example-wrapper">
|
|
|
<div class="example-header">
|
|
<div class="example-header">
|
|
@@ -34,11 +35,15 @@
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+ <text-ellipsis class="patrol-suggestion" rows="2" :content="'巡园建议:' + item.patrolSuggestion">
|
|
|
|
|
+ <template #action="{ expanded }"><span class="action-text">{{ expanded ? '收起' : '展开'
|
|
|
|
|
+ }}</span></template>
|
|
|
|
|
+ </text-ellipsis>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<!-- 展开状态内容 -->
|
|
<!-- 展开状态内容 -->
|
|
|
<div class="expanded-content"
|
|
<div class="expanded-content"
|
|
|
- v-show="item.isConfirmed != null && item.expanded && item.imagePaths.length > 0">
|
|
|
|
|
|
|
+ v-show="item.imagePaths.length > 0">
|
|
|
<!-- 原因说明 -->
|
|
<!-- 原因说明 -->
|
|
|
<div class="reason-text">上传照片({{ item.exampleImagesJson.length }}张)</div>
|
|
<div class="reason-text">上传照片({{ item.exampleImagesJson.length }}张)</div>
|
|
|
<!-- 图片展示 -->
|
|
<!-- 图片展示 -->
|
|
@@ -46,10 +51,6 @@
|
|
|
<img class="uploaded-img" v-for="image in item.imagePaths" :key="image"
|
|
<img class="uploaded-img" v-for="image in item.imagePaths" :key="image"
|
|
|
:src="base_img_url2 + image" alt="" />
|
|
:src="base_img_url2 + image" alt="" />
|
|
|
</div>
|
|
</div>
|
|
|
- <!-- <div class="continue-upload-btn">
|
|
|
|
|
- <el-icon><Plus /></el-icon>
|
|
|
|
|
- <span>继续上传照片</span>
|
|
|
|
|
- </div> -->
|
|
|
|
|
<uploader class="upload-wrap continue-upload-btn" multiple :max-count="10"
|
|
<uploader class="upload-wrap continue-upload-btn" multiple :max-count="10"
|
|
|
:after-read="afterReadUpload">
|
|
:after-read="afterReadUpload">
|
|
|
<div class="upload-btn">
|
|
<div class="upload-btn">
|
|
@@ -62,8 +63,8 @@
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<!-- 上传按钮 -->
|
|
<!-- 上传按钮 -->
|
|
|
- <uploader class="upload-wrap" multiple :max-count="10" :after-read="afterReadUpload"
|
|
|
|
|
- v-show="item.isConfirmed == null">
|
|
|
|
|
|
|
+ <uploader v-if="item.imagePaths.length === 0" @click="handleUploadClick(item)" class="upload-wrap" multiple :max-count="10"
|
|
|
|
|
+ :after-read="afterReadUpload" v-show="item.isConfirmed == null">
|
|
|
<div class="upload-btn">
|
|
<div class="upload-btn">
|
|
|
<el-icon>
|
|
<el-icon>
|
|
|
<Plus />
|
|
<Plus />
|
|
@@ -72,24 +73,27 @@
|
|
|
</div>
|
|
</div>
|
|
|
</uploader>
|
|
</uploader>
|
|
|
|
|
|
|
|
- <div class="question-wrapper" v-show="item.isConfirmed != null">
|
|
|
|
|
|
|
+ <div class="question-wrapper">
|
|
|
<div class="question-text">
|
|
<div class="question-text">
|
|
|
- <span class="text-title">{{ item.phenologyName }}占比</span>
|
|
|
|
|
- <el-input v-model="item.replyText" type="number" style="width: 80px" />
|
|
|
|
|
- <span class="text-unit">%</span>
|
|
|
|
|
|
|
+ <span class="text-title">{{ item.question }}</span>
|
|
|
|
|
+ <el-input v-model="item.triggerValue" type="number" style="width: 80px">
|
|
|
|
|
+ <template #suffix>
|
|
|
|
|
+ <span class="text-unit">%</span>
|
|
|
|
|
+ </template>
|
|
|
|
|
+ </el-input>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="draw-region-btn" @click="handleDrawRegion(item)">查看发生区域</div>
|
|
|
|
|
|
|
+ <!-- <div class="draw-region-btn" @click="handleDrawRegion(item)">查看发生区域</div> -->
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<!-- 输入框 -->
|
|
<!-- 输入框 -->
|
|
|
<div class="input-wrapper">
|
|
<div class="input-wrapper">
|
|
|
- <el-input v-model="item.remark" placeholder="请输入您咨询的问题" clearable />
|
|
|
|
|
|
|
+ <el-input v-model="item.replyText" placeholder="请输入您咨询的问题" clearable />
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
<!-- 按钮区域 -->
|
|
<!-- 按钮区域 -->
|
|
|
<div class="button-group" v-show="item.isConfirmed == null">
|
|
<div class="button-group" v-show="item.isConfirmed == null">
|
|
|
<div class="btn-not-reached" @click="handleNotReached(item)">{{ item.cancelButtonName }}</div>
|
|
<div class="btn-not-reached" @click="handleNotReached(item)">{{ item.cancelButtonName }}</div>
|
|
|
- <div class="btn-confirm" @click="handleConfirm(item)">确认提交</div>
|
|
|
|
|
|
|
+ <div class="btn-default" :class="{ 'btn-confirm': item.imagePaths.length > 0 }" @click="handleConfirm(item)">确认提交</div>
|
|
|
</div>
|
|
</div>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
@@ -113,11 +117,11 @@
|
|
|
<div class="empty-data" v-if="!loading && listData.length === 0">暂无数据</div>
|
|
<div class="empty-data" v-if="!loading && listData.length === 0">暂无数据</div>
|
|
|
</div>
|
|
</div>
|
|
|
|
|
|
|
|
- <div class="custom-bottom-fixed-btns" :class="{ 'center-btn': false }">
|
|
|
|
|
|
|
+ <!-- <div class="custom-bottom-fixed-btns" :class="{ 'center-btn': false }">
|
|
|
<div class="bottom-btn secondary-btn" @click="handleShowDroneConsultPopup">获取自动飞行航线</div>
|
|
<div class="bottom-btn secondary-btn" @click="handleShowDroneConsultPopup">获取自动飞行航线</div>
|
|
|
<div class="bottom-btn secondary-btn">邀请农情互动</div>
|
|
<div class="bottom-btn secondary-btn">邀请农情互动</div>
|
|
|
- <!-- <div class="bottom-btn primary-btn" @click="handleSubmitAll">一键提交</div> -->
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ <div class="bottom-btn primary-btn" @click="handleSubmitAll">一键提交</div>
|
|
|
|
|
+ </div> -->
|
|
|
|
|
|
|
|
<!-- 农场信息完善弹窗 -->
|
|
<!-- 农场信息完善弹窗 -->
|
|
|
<farm-info-popup :oldUser="oldUser" :expertMiniUserId="query.expertMiniUserId" v-model:show="showFarmInfoPopup" />
|
|
<farm-info-popup :oldUser="oldUser" :expertMiniUserId="query.expertMiniUserId" v-model:show="showFarmInfoPopup" />
|
|
@@ -129,10 +133,15 @@
|
|
|
title="蒂蛀虫示例图" />
|
|
title="蒂蛀虫示例图" />
|
|
|
<!-- 照片上传进度 -->
|
|
<!-- 照片上传进度 -->
|
|
|
<popup v-model:show="showUploadProgressPopup" round class="upload-progress-popup">
|
|
<popup v-model:show="showUploadProgressPopup" round class="upload-progress-popup">
|
|
|
- <div class="upload-progress-title">
|
|
|
|
|
- <span>照片上传进度</span>
|
|
|
|
|
- <el-progress class="upload-progress" :percentage="50" :stroke-width="10" :format="format" />
|
|
|
|
|
- </div>
|
|
|
|
|
|
|
+ <div class="upload-progress-title">
|
|
|
|
|
+ <span>照片上传进度</span>
|
|
|
|
|
+ <el-progress
|
|
|
|
|
+ class="upload-progress"
|
|
|
|
|
+ :percentage="uploadPercentage"
|
|
|
|
|
+ :stroke-width="10"
|
|
|
|
|
+ :format="format"
|
|
|
|
|
+ />
|
|
|
|
|
+ </div>
|
|
|
<div class="upload-box">
|
|
<div class="upload-box">
|
|
|
<!-- 把已经上传成功的图片传给 upload 组件做回显,同时保持原有上传事件不变 -->
|
|
<!-- 把已经上传成功的图片传给 upload 组件做回显,同时保持原有上传事件不变 -->
|
|
|
<upload :maxCount="10" :initImgArr="initImgArr" @handleUpload="handleUploadSuccess">
|
|
<upload :maxCount="10" :initImgArr="initImgArr" @handleUpload="handleUploadSuccess">
|
|
@@ -140,14 +149,14 @@
|
|
|
</div>
|
|
</div>
|
|
|
<div class="input-box">
|
|
<div class="input-box">
|
|
|
<div class="input-item">
|
|
<div class="input-item">
|
|
|
- <span class="label-text">长势异常的果园占比</span>
|
|
|
|
|
- <el-input v-model="uploadFormData.num" placeholder="请输入" type="number">
|
|
|
|
|
|
|
+ <span class="label-text">{{ currentItem.question }}</span>
|
|
|
|
|
+ <el-input class="label-input" v-model="answerValue" placeholder="请输入" type="number">
|
|
|
<template #suffix>
|
|
<template #suffix>
|
|
|
<span class="unit">%</span>
|
|
<span class="unit">%</span>
|
|
|
</template>
|
|
</template>
|
|
|
</el-input>
|
|
</el-input>
|
|
|
</div>
|
|
</div>
|
|
|
- <el-input class="input-item" v-model="uploadFormData.text" placeholder="请输入您咨询的问题" clearable />
|
|
|
|
|
|
|
+ <el-input class="input-item" v-model="currentItem.replyText" placeholder="请输入您咨询的问题" clearable />
|
|
|
</div>
|
|
</div>
|
|
|
<div class="region-tips">勾画新发生区域,精准匹配专属农事方案</div>
|
|
<div class="region-tips">勾画新发生区域,精准匹配专属农事方案</div>
|
|
|
<div class="region-map" ref="mapContainer" @click="handleDrawRegion">
|
|
<div class="region-map" ref="mapContainer" @click="handleDrawRegion">
|
|
@@ -160,12 +169,12 @@
|
|
|
<more-popup ref="morePopupRef" />
|
|
<more-popup ref="morePopupRef" />
|
|
|
|
|
|
|
|
<tip-popup v-model:show="showTipPopup" type="success" text="2025.02.05农情报告已生成
|
|
<tip-popup v-model:show="showTipPopup" type="success" text="2025.02.05农情报告已生成
|
|
|
-请点击查看" buttonText="查看报告" @confirm="handleBtn" :zIndex="9999" />
|
|
|
|
|
|
|
+ 请点击查看" buttonText="查看报告" @confirm="handleBtn" :zIndex="9999" />
|
|
|
</template>
|
|
</template>
|
|
|
<script setup>
|
|
<script setup>
|
|
|
-import { ref, onMounted, onActivated } from "vue";
|
|
|
|
|
|
|
+import { ref, onMounted, onActivated, computed } from "vue";
|
|
|
import { ElMessage } from "element-plus";
|
|
import { ElMessage } from "element-plus";
|
|
|
-import { Uploader, Popup } from "vant";
|
|
|
|
|
|
|
+import { Uploader, Popup, TextEllipsis } from "vant";
|
|
|
import customHeader from "@/components/customHeader.vue";
|
|
import customHeader from "@/components/customHeader.vue";
|
|
|
import upload from "@/components/upload.vue";
|
|
import upload from "@/components/upload.vue";
|
|
|
import FarmInfoPopup from "@/components/popup/farmInfoPopup.vue";
|
|
import FarmInfoPopup from "@/components/popup/farmInfoPopup.vue";
|
|
@@ -202,11 +211,18 @@ const query = ref(useRoute().query);
|
|
|
const morePopupRef = ref(null);
|
|
const morePopupRef = ref(null);
|
|
|
//照片上传进度
|
|
//照片上传进度
|
|
|
const showUploadProgressPopup = ref(false);
|
|
const showUploadProgressPopup = ref(false);
|
|
|
-const uploadFormData = ref({
|
|
|
|
|
- num: '',
|
|
|
|
|
- text: ''
|
|
|
|
|
|
|
+const answerValue = ref('');
|
|
|
|
|
+// 上传进度统计
|
|
|
|
|
+const totalUploadCount = ref(0); // 本次选择的总文件数(固定不随上传成功变化)
|
|
|
|
|
+const uploadedSuccessCount = ref(0); // 已上传成功的文件数
|
|
|
|
|
+const uploadPercentage = computed(() => {
|
|
|
|
|
+ if (!totalUploadCount.value) return 0;
|
|
|
|
|
+ return Math.round((uploadedSuccessCount.value / totalUploadCount.value) * 100);
|
|
|
});
|
|
});
|
|
|
-const format = (percentage) => (percentage === 100 ? '上传完成' : `5/10`)
|
|
|
|
|
|
|
+const format = () => {
|
|
|
|
|
+ if (!totalUploadCount.value) return '0/0';
|
|
|
|
|
+ return `${uploadedSuccessCount.value}/${totalUploadCount.value}`;
|
|
|
|
|
+};
|
|
|
|
|
|
|
|
const drawRegionMap = new DrawRegionMap();
|
|
const drawRegionMap = new DrawRegionMap();
|
|
|
const mapContainer = ref(null);
|
|
const mapContainer = ref(null);
|
|
@@ -231,13 +247,19 @@ const renderRegionFromSession = () => {
|
|
|
const uploadFileObj = new UploadFile();
|
|
const uploadFileObj = new UploadFile();
|
|
|
const initImgArr = ref([]);
|
|
const initImgArr = ref([]);
|
|
|
const miniUserId = localStorage.getItem("MINI_USER_ID");
|
|
const miniUserId = localStorage.getItem("MINI_USER_ID");
|
|
|
|
|
+//弹窗问题
|
|
|
const afterReadUpload = async (data) => {
|
|
const afterReadUpload = async (data) => {
|
|
|
initImgArr.value = [];
|
|
initImgArr.value = [];
|
|
|
- drawRegionMap.clearLayer && drawRegionMap.clearLayer();
|
|
|
|
|
- sessionStorage.removeItem("drawRegionPolygonData");
|
|
|
|
|
|
|
+ // 本次上传的总数 = 选择的文件数量(固定,用于做进度的“总数”)
|
|
|
if (!Array.isArray(data)) {
|
|
if (!Array.isArray(data)) {
|
|
|
data = [data];
|
|
data = [data];
|
|
|
}
|
|
}
|
|
|
|
|
+ totalUploadCount.value = data.length;
|
|
|
|
|
+ uploadedSuccessCount.value = 0;
|
|
|
|
|
+ drawRegionMap.clearLayer && drawRegionMap.clearLayer();
|
|
|
|
|
+ sessionStorage.removeItem("drawRegionPolygonData");
|
|
|
|
|
+ answerValue.value = '';
|
|
|
|
|
+
|
|
|
for (let file of data) {
|
|
for (let file of data) {
|
|
|
// 将文件上传至服务器
|
|
// 将文件上传至服务器
|
|
|
let fileVal = file.file;
|
|
let fileVal = file.file;
|
|
@@ -246,9 +268,12 @@ const afterReadUpload = async (data) => {
|
|
|
let ext = getFileExt(fileVal.name);
|
|
let ext = getFileExt(fileVal.name);
|
|
|
let key = `birdseye-look-mini/${miniUserId}/${new Date().getTime()}.${ext}`;
|
|
let key = `birdseye-look-mini/${miniUserId}/${new Date().getTime()}.${ext}`;
|
|
|
let resFilename = await uploadFileObj.put(key, fileVal)
|
|
let resFilename = await uploadFileObj.put(key, fileVal)
|
|
|
- file.status = "done";
|
|
|
|
|
- file.message = "";
|
|
|
|
|
if (resFilename) {
|
|
if (resFilename) {
|
|
|
|
|
+ file.status = "done";
|
|
|
|
|
+ file.message = "";
|
|
|
|
|
+ // 记录成功数量,用于进度条“当前成功数”
|
|
|
|
|
+ uploadedSuccessCount.value += 1;
|
|
|
|
|
+ // 记录已上传成功的图片路径,用于回显
|
|
|
initImgArr.value.push(resFilename)
|
|
initImgArr.value.push(resFilename)
|
|
|
} else {
|
|
} else {
|
|
|
file.status = 'failed';
|
|
file.status = 'failed';
|
|
@@ -275,6 +300,11 @@ const afterReadUpload = async (data) => {
|
|
|
}, 100);
|
|
}, 100);
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
+
|
|
|
|
|
+const currentItem = ref(null);
|
|
|
|
|
+const handleUploadClick = (item) => {
|
|
|
|
|
+ currentItem.value = item;
|
|
|
|
|
+};
|
|
|
// 示例照片轮播
|
|
// 示例照片轮播
|
|
|
const showExamplePopup = ref(false);
|
|
const showExamplePopup = ref(false);
|
|
|
const exampleList = ref([]);
|
|
const exampleList = ref([]);
|
|
@@ -289,7 +319,7 @@ const showExample = (list, index) => {
|
|
|
const loadData = async () => {
|
|
const loadData = async () => {
|
|
|
loading.value = true;
|
|
loading.value = true;
|
|
|
try {
|
|
try {
|
|
|
- const { data } = await VE_API.home.listTriggeredByFarm({ farmId: 766 })
|
|
|
|
|
|
|
+ const { data } = await VE_API.home.listTriggeredByFarm({ farmId: localStorage.getItem("selectedFarmId") })
|
|
|
listData.value = data.map(item => {
|
|
listData.value = data.map(item => {
|
|
|
// 将 exampleImagesJson 转换为数组
|
|
// 将 exampleImagesJson 转换为数组
|
|
|
if (item.exampleImagesJson) {
|
|
if (item.exampleImagesJson) {
|
|
@@ -308,8 +338,7 @@ const loadData = async () => {
|
|
|
item.exampleImagesJson = [];
|
|
item.exampleImagesJson = [];
|
|
|
}
|
|
}
|
|
|
return {
|
|
return {
|
|
|
- ...item,
|
|
|
|
|
- isConfirmed: false
|
|
|
|
|
|
|
+ ...item
|
|
|
};
|
|
};
|
|
|
});
|
|
});
|
|
|
} catch (error) {
|
|
} catch (error) {
|
|
@@ -350,41 +379,71 @@ const handleNotReached = async (item) => {
|
|
|
|
|
|
|
|
// 确认上传
|
|
// 确认上传
|
|
|
const handleConfirm = async (item) => {
|
|
const handleConfirm = async (item) => {
|
|
|
- if (!item.phenologyName) {
|
|
|
|
|
|
|
+ if (item.triggerValue.length === 0) {
|
|
|
ElMessage.warning("请输入当前果园比例");
|
|
ElMessage.warning("请输入当前果园比例");
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
- if (uploadData.value.length === 0) {
|
|
|
|
|
|
|
+ if (item.imagePaths.length === 0 && uploadData.value.length === 0) {
|
|
|
ElMessage.warning("请上传图片");
|
|
ElMessage.warning("请上传图片");
|
|
|
return;
|
|
return;
|
|
|
}
|
|
}
|
|
|
const parmas = {
|
|
const parmas = {
|
|
|
isConfirmed: true,
|
|
isConfirmed: true,
|
|
|
farmId: localStorage.getItem("selectedFarmId"),
|
|
farmId: localStorage.getItem("selectedFarmId"),
|
|
|
- imagePaths: uploadData.value,
|
|
|
|
|
- isUploadPhoto: uploadData.value.length > 0 ? true : false,
|
|
|
|
|
|
|
+ imagePaths: item.imagePaths.concat(uploadData.value),
|
|
|
|
|
+ isUploadPhoto: item.imagePaths.concat(uploadData.value).length > 0 ? true : false,
|
|
|
rangeWkt: sessionStorage.getItem("drawRegionPolygonData"),
|
|
rangeWkt: sessionStorage.getItem("drawRegionPolygonData"),
|
|
|
interactionId: item.id,
|
|
interactionId: item.id,
|
|
|
- replyText: item.replyText
|
|
|
|
|
|
|
+ replyText: item.replyText,
|
|
|
|
|
+ answerValues: [item.triggerValue]
|
|
|
}
|
|
}
|
|
|
- const { code, msg } = await VE_API.home.uploadAnswer(parmas);
|
|
|
|
|
|
|
+ console.log("上传数据", parmas);
|
|
|
|
|
+ // const { code, msg } = await VE_API.home.uploadAnswer(parmas);
|
|
|
|
|
+ // if (code === 0) {
|
|
|
|
|
+ // ElMessage.success("上传成功");
|
|
|
|
|
+ // // 清空上传数据
|
|
|
|
|
+ // uploadData.value = [];
|
|
|
|
|
+ // // 刷新列表
|
|
|
|
|
+ // await refreshList();
|
|
|
|
|
+ // } else {
|
|
|
|
|
+ // ElMessage.error(msg || '上传失败');
|
|
|
|
|
+ // }
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+const handleConfirmUpload = async () => {
|
|
|
|
|
+ // 校验是否有上传图片
|
|
|
|
|
+ if (!uploadData.value || uploadData.value.length === 0) {
|
|
|
|
|
+ ElMessage.warning("请先上传照片");
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ // 校验是否填写了输入框内容(百分比)
|
|
|
|
|
+ if (answerValue.value === '' || answerValue.value === null || answerValue.value === undefined) {
|
|
|
|
|
+ ElMessage.warning("请输入占比数值");
|
|
|
|
|
+ return;
|
|
|
|
|
+ }
|
|
|
|
|
+ console.log("上传数据", sessionStorage.getItem("drawRegionPolygonData"));
|
|
|
|
|
+ const parmas = {
|
|
|
|
|
+ interactionId: currentItem.value.id,
|
|
|
|
|
+ farmId: localStorage.getItem("selectedFarmId"),
|
|
|
|
|
+ imagePaths: uploadData.value,
|
|
|
|
|
+ rangeWkt: sessionStorage.getItem("drawRegionPolygonData") || '',
|
|
|
|
|
+ replyText: currentItem.value.replyText,
|
|
|
|
|
+ answerValues: [answerValue.value],
|
|
|
|
|
+ }
|
|
|
|
|
+ const { code, msg } = await VE_API.home.uploadAnswerData(parmas);
|
|
|
if (code === 0) {
|
|
if (code === 0) {
|
|
|
- ElMessage.success("上传成功");
|
|
|
|
|
|
|
+ ElMessage.success("确认成功");
|
|
|
// 清空上传数据
|
|
// 清空上传数据
|
|
|
uploadData.value = [];
|
|
uploadData.value = [];
|
|
|
|
|
+ sessionStorage.removeItem("drawRegionPolygonData");
|
|
|
|
|
+ showUploadProgressPopup.value = false;
|
|
|
// 刷新列表
|
|
// 刷新列表
|
|
|
await refreshList();
|
|
await refreshList();
|
|
|
} else {
|
|
} else {
|
|
|
- ElMessage.error(msg || '上传失败');
|
|
|
|
|
|
|
+ ElMessage.error(msg || '确认失败');
|
|
|
}
|
|
}
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
-const handleConfirmUpload = () => {
|
|
|
|
|
- console.log("确认上传", uploadFormData.value);
|
|
|
|
|
- showUploadProgressPopup.value = false;
|
|
|
|
|
- sessionStorage.removeItem("drawRegionPolygonData");
|
|
|
|
|
-};
|
|
|
|
|
-
|
|
|
|
|
// 切换展开/收起
|
|
// 切换展开/收起
|
|
|
const toggleExpand = (item) => {
|
|
const toggleExpand = (item) => {
|
|
|
item.expanded = !item.expanded;
|
|
item.expanded = !item.expanded;
|
|
@@ -554,7 +613,8 @@ const handleSubmitAll = () => {
|
|
|
color: #3C3C3C;
|
|
color: #3C3C3C;
|
|
|
margin-bottom: 10px;
|
|
margin-bottom: 10px;
|
|
|
}
|
|
}
|
|
|
- .tip-box{
|
|
|
|
|
|
|
+
|
|
|
|
|
+ .tip-box {
|
|
|
font-size: 12px;
|
|
font-size: 12px;
|
|
|
color: #2199F8;
|
|
color: #2199F8;
|
|
|
padding: 3px 5px;
|
|
padding: 3px 5px;
|
|
@@ -606,6 +666,15 @@ const handleSubmitAll = () => {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+ .patrol-suggestion {
|
|
|
|
|
+ color: rgba(60, 60, 60, 0.4);
|
|
|
|
|
+ margin-top: 10px;
|
|
|
|
|
+
|
|
|
|
|
+ .action-text {
|
|
|
|
|
+ color: #727272;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.upload-wrap {
|
|
.upload-wrap {
|
|
@@ -642,7 +711,7 @@ const handleSubmitAll = () => {
|
|
|
gap: 12px;
|
|
gap: 12px;
|
|
|
|
|
|
|
|
.btn-not-reached,
|
|
.btn-not-reached,
|
|
|
- .btn-confirm {
|
|
|
|
|
|
|
+ .btn-default {
|
|
|
flex: 1;
|
|
flex: 1;
|
|
|
text-align: center;
|
|
text-align: center;
|
|
|
border-radius: 4px;
|
|
border-radius: 4px;
|
|
@@ -656,17 +725,17 @@ const handleSubmitAll = () => {
|
|
|
border: 1px solid rgba(88, 88, 88, 0.2);
|
|
border: 1px solid rgba(88, 88, 88, 0.2);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- .btn-confirm {
|
|
|
|
|
|
|
+ .btn-default {
|
|
|
background: #F1F1F1;
|
|
background: #F1F1F1;
|
|
|
color: #999999;
|
|
color: #999999;
|
|
|
border: 1px solid #F1F1F1;
|
|
border: 1px solid #F1F1F1;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // .btn-confirm {
|
|
|
|
|
- // background: #2199f8;
|
|
|
|
|
- // color: #ffffff;
|
|
|
|
|
- // border: 1px solid #2199f8;
|
|
|
|
|
- // }
|
|
|
|
|
|
|
+ .btn-confirm {
|
|
|
|
|
+ background: #2199f8;
|
|
|
|
|
+ color: #ffffff;
|
|
|
|
|
+ border: 1px solid #2199f8;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.proportion-info {
|
|
.proportion-info {
|
|
@@ -765,6 +834,11 @@ const handleSubmitAll = () => {
|
|
|
|
|
|
|
|
.upload-progress {
|
|
.upload-progress {
|
|
|
width: 55%;
|
|
width: 55%;
|
|
|
|
|
+ ::v-deep{
|
|
|
|
|
+ .el-progress__text{
|
|
|
|
|
+ min-width: fit-content;
|
|
|
|
|
+ }
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -776,10 +850,11 @@ const handleSubmitAll = () => {
|
|
|
.input-item {
|
|
.input-item {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
align-items: center;
|
|
align-items: center;
|
|
|
|
|
+ justify-content: space-between;
|
|
|
gap: 6px;
|
|
gap: 6px;
|
|
|
|
|
|
|
|
- .label-text {
|
|
|
|
|
- width: 220px;
|
|
|
|
|
|
|
+ .label-input {
|
|
|
|
|
+ width: 140px;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|