|
@@ -8,7 +8,7 @@
|
|
|
<div class="status-l">
|
|
<div class="status-l">
|
|
|
<div class="status-title">{{ handleTagType(detail?.flowStatus) }}</div>
|
|
<div class="status-title">{{ handleTagType(detail?.flowStatus) }}</div>
|
|
|
<div class="status-sub" v-if="triggerDateText && detail?.flowStatus === 0">
|
|
<div class="status-sub" v-if="triggerDateText && detail?.flowStatus === 0">
|
|
|
- 执行时间已经过去 {{ daysDiff }} 天了
|
|
|
|
|
|
|
+ 执行时间已经过去 {{ daysDiff }} 天了
|
|
|
</div>
|
|
</div>
|
|
|
<div class="status-sub" v-if="detail?.flowStatus === 1">
|
|
<div class="status-sub" v-if="detail?.flowStatus === 1">
|
|
|
距离执行时间还差 {{ daysDiff }} 天
|
|
距离执行时间还差 {{ daysDiff }} 天
|
|
@@ -50,11 +50,11 @@
|
|
|
</div>
|
|
</div>
|
|
|
<div class="form-item">
|
|
<div class="form-item">
|
|
|
<div class="item-name">执行区域</div>
|
|
<div class="item-name">执行区域</div>
|
|
|
- <div class="item-text light-text">
|
|
|
|
|
|
|
+ <div class="item-text light-text area-text">
|
|
|
桂味种植区域
|
|
桂味种植区域
|
|
|
|
|
+ <!-- <div class="area-btn" @click="handleViewArea">查看区域</div> -->
|
|
|
|
|
+ <div class="area-btn area-btn-right" @click="toDraw">建议勾选<el-icon><ArrowRight /></el-icon></div>
|
|
|
</div>
|
|
</div>
|
|
|
- <div class="area-btn">建议勾选</div>
|
|
|
|
|
- <!-- <div class="area-btn">查看区域</div> -->
|
|
|
|
|
</div>
|
|
</div>
|
|
|
<div class="form-item">
|
|
<div class="form-item">
|
|
|
<div class="item-name">注意事项</div>
|
|
<div class="item-name">注意事项</div>
|
|
@@ -143,28 +143,36 @@
|
|
|
</div>
|
|
</div>
|
|
|
<ExecutePopup ref="executePopupRef" />
|
|
<ExecutePopup ref="executePopupRef" />
|
|
|
|
|
|
|
|
-
|
|
|
|
|
- <upload-tips v-model:show="showUploadTipsPopup" />
|
|
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ <upload-tips v-model:show="showUploadTipsPopup" />
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+ <!-- 执行区域地图弹窗 -->
|
|
|
|
|
+ <popup v-model:show="showMapPopup" closeable class="map-popup">
|
|
|
|
|
+ <map-info :farmId="detail.farmId" />
|
|
|
|
|
+ </popup>
|
|
|
</template>
|
|
</template>
|
|
|
|
|
|
|
|
<script setup>
|
|
<script setup>
|
|
|
import wx from "weixin-js-sdk";
|
|
import wx from "weixin-js-sdk";
|
|
|
import customHeader from "@/components/customHeader.vue";
|
|
import customHeader from "@/components/customHeader.vue";
|
|
|
-import { ref, computed, onActivated } from "vue";
|
|
|
|
|
|
|
+import { ref, computed, onMounted } from "vue";
|
|
|
import { useRouter } from "vue-router";
|
|
import { useRouter } from "vue-router";
|
|
|
import { formatDate } from "@/common/commonFun";
|
|
import { formatDate } from "@/common/commonFun";
|
|
|
import ExecutePopup from "./components/executePopup.vue";
|
|
import ExecutePopup from "./components/executePopup.vue";
|
|
|
import { base_img_url2 } from "@/api/config";
|
|
import { base_img_url2 } from "@/api/config";
|
|
|
import UploadTips from "@/components/popup/uploadTips.vue";
|
|
import UploadTips from "@/components/popup/uploadTips.vue";
|
|
|
|
|
+import { Popup } from "vant";
|
|
|
|
|
+import MapInfo from "./components/mapInfo.vue";
|
|
|
|
|
|
|
|
-const showUploadTipsPopup = ref(true);
|
|
|
|
|
|
|
+const showUploadTipsPopup = ref(false);
|
|
|
|
|
|
|
|
const router = useRouter();
|
|
const router = useRouter();
|
|
|
// const info = JSON.parse(localStorage.getItem("localUserInfo") || "{}");
|
|
// const info = JSON.parse(localStorage.getItem("localUserInfo") || "{}");
|
|
|
const info = { appType: 1 };
|
|
const info = { appType: 1 };
|
|
|
|
|
|
|
|
const detail = ref({
|
|
const detail = ref({
|
|
|
|
|
+ farmId: 766,
|
|
|
"consequenceText": "",
|
|
"consequenceText": "",
|
|
|
"id": null,
|
|
"id": null,
|
|
|
"reCheckText": "",
|
|
"reCheckText": "",
|
|
@@ -347,6 +355,20 @@ const detail = ref({
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+const maybeShowUploadTips = () => {
|
|
|
|
|
+ if (detail.value?.flowStatus !== 1) return;
|
|
|
|
|
+ const shown = sessionStorage.getItem('upload_tips');
|
|
|
|
|
+ if (shown === "1") return;
|
|
|
|
|
+
|
|
|
|
|
+ sessionStorage.setItem('upload_tips', "1");
|
|
|
|
|
+ showUploadTipsPopup.value = true;
|
|
|
|
|
+};
|
|
|
|
|
+
|
|
|
|
|
+onMounted(() => {
|
|
|
|
|
+ maybeShowUploadTips();
|
|
|
|
|
+});
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
// 计算距离执行时间的天数差
|
|
// 计算距离执行时间的天数差
|
|
|
const daysDiff = computed(() => {
|
|
const daysDiff = computed(() => {
|
|
|
if (!detail.value?.executeDate) {
|
|
if (!detail.value?.executeDate) {
|
|
@@ -398,10 +420,10 @@ const hasRemark = (prescription, stageIndex) => {
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
const handleTagType = (tagType) => {
|
|
const handleTagType = (tagType) => {
|
|
|
- if(tagType === 0) return "已过期";
|
|
|
|
|
- if(tagType === 1) return "待认证";
|
|
|
|
|
- if(tagType === 2) return "待触发";
|
|
|
|
|
- if(tagType === 3) return "已完成";
|
|
|
|
|
|
|
+ if (tagType === 0) return "已过期";
|
|
|
|
|
+ if (tagType === 1) return "待认证";
|
|
|
|
|
+ if (tagType === 2) return "待触发";
|
|
|
|
|
+ if (tagType === 3) return "已完成";
|
|
|
return "--"
|
|
return "--"
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -414,6 +436,16 @@ const handleExecute = () => {
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+const showMapPopup = ref(false);
|
|
|
|
|
+
|
|
|
|
|
+const handleViewArea = () => {
|
|
|
|
|
+ showMapPopup.value = true;
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+const toDraw = () => {
|
|
|
|
|
+ router.push("/draw_region");
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
const handleBack = () => {
|
|
const handleBack = () => {
|
|
|
router.back();
|
|
router.back();
|
|
|
};
|
|
};
|
|
@@ -497,18 +529,22 @@ const changeExecutionMethod = (stageIndex, value) => {
|
|
|
background: #FF4F4F;
|
|
background: #FF4F4F;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
&.status-1 {
|
|
&.status-1 {
|
|
|
&::after {
|
|
&::after {
|
|
|
background: #FF953D;
|
|
background: #FF953D;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
&.status-2 {
|
|
&.status-2 {
|
|
|
&::after {
|
|
&::after {
|
|
|
background: #C7C7C7;
|
|
background: #C7C7C7;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
&.status-3 {
|
|
&.status-3 {
|
|
|
padding-top: 30px;
|
|
padding-top: 30px;
|
|
|
|
|
+
|
|
|
&::after {
|
|
&::after {
|
|
|
background: #2199F8;
|
|
background: #2199F8;
|
|
|
}
|
|
}
|
|
@@ -534,6 +570,7 @@ const changeExecutionMethod = (stageIndex, value) => {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.box-wrap {
|
|
.box-wrap {
|
|
|
|
|
+
|
|
|
// background: #ffffff;
|
|
// background: #ffffff;
|
|
|
// border-radius: 8px;
|
|
// border-radius: 8px;
|
|
|
// padding: 14px 10px 10px 10px;
|
|
// padding: 14px 10px 10px 10px;
|
|
@@ -544,15 +581,17 @@ const changeExecutionMethod = (stageIndex, value) => {
|
|
|
padding: 14px 10px 10px 10px;
|
|
padding: 14px 10px 10px 10px;
|
|
|
box-shadow: 0 2px 8px rgba(15, 35, 52, 0.06);
|
|
box-shadow: 0 2px 8px rgba(15, 35, 52, 0.06);
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
.photo-box {
|
|
.photo-box {
|
|
|
margin-top: 10px;
|
|
margin-top: 10px;
|
|
|
padding: 11px 10px;
|
|
padding: 11px 10px;
|
|
|
font-size: 14px;
|
|
font-size: 14px;
|
|
|
-
|
|
|
|
|
|
|
+
|
|
|
.photo-title {
|
|
.photo-title {
|
|
|
color: #000;
|
|
color: #000;
|
|
|
padding-bottom: 9px;
|
|
padding-bottom: 9px;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
.photo-sub-title {
|
|
.photo-sub-title {
|
|
|
padding-bottom: 9px;
|
|
padding-bottom: 9px;
|
|
|
color: #767676;
|
|
color: #767676;
|
|
@@ -644,6 +683,19 @@ const changeExecutionMethod = (stageIndex, value) => {
|
|
|
color: #767676;
|
|
color: #767676;
|
|
|
margin-top: 4px;
|
|
margin-top: 4px;
|
|
|
|
|
|
|
|
|
|
+ .area-btn {
|
|
|
|
|
+ border: 1px solid rgba(0, 0, 0, 0.1);
|
|
|
|
|
+ padding: 0 10px;
|
|
|
|
|
+ color: #767676;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ .area-btn-right {
|
|
|
|
|
+ padding-right: 4px;
|
|
|
|
|
+ display: inline-flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 4px;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
.item-name {
|
|
.item-name {
|
|
|
padding-right: 26px;
|
|
padding-right: 26px;
|
|
|
color: rgba(0, 0, 0, 0.2);
|
|
color: rgba(0, 0, 0, 0.2);
|
|
@@ -657,6 +709,11 @@ const changeExecutionMethod = (stageIndex, value) => {
|
|
|
color: #2199F8;
|
|
color: #2199F8;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+ .area-text {
|
|
|
|
|
+ display: inline-flex;
|
|
|
|
|
+ align-items: center;
|
|
|
|
|
+ gap: 10px;
|
|
|
|
|
+ }
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
.light-text {
|
|
.light-text {
|
|
@@ -817,9 +874,11 @@ const changeExecutionMethod = (stageIndex, value) => {
|
|
|
display: flex;
|
|
display: flex;
|
|
|
// justify-content: center;
|
|
// justify-content: center;
|
|
|
justify-content: space-between;
|
|
justify-content: space-between;
|
|
|
|
|
+
|
|
|
&.center-btn {
|
|
&.center-btn {
|
|
|
justify-content: center;
|
|
justify-content: center;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
position: fixed;
|
|
position: fixed;
|
|
|
bottom: 0px;
|
|
bottom: 0px;
|
|
|
left: 0;
|
|
left: 0;
|
|
@@ -841,4 +900,12 @@ const changeExecutionMethod = (stageIndex, value) => {
|
|
|
font-size: 14px;
|
|
font-size: 14px;
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
|
|
+.map-popup {
|
|
|
|
|
+ width: 92%;
|
|
|
|
|
+ // max-width: 420px;
|
|
|
|
|
+ border-radius: 8px;
|
|
|
|
|
+ padding: 12px;
|
|
|
|
|
+ box-sizing: border-box;
|
|
|
|
|
+}
|
|
|
</style>
|
|
</style>
|