2 Incheckningar 4e6971e70b ... f27d8bff15

Upphovsman SHA1 Meddelande Datum
  lxf f27d8bff15 Merge branch 'master' of http://www.sysuimars.cn:3000/feiniao/feiniao-farm-h5 3 dagar sedan
  lxf 05076d0fc0 fix: 转发 3 dagar sedan

+ 9 - 2
src/components/album_compoents/albumCarouselItem.vue

@@ -99,7 +99,10 @@
             <!-- 底部操作按钮 -->
             <div class="bottom-actions" @click.stop="showPopup = false">
                 <div class="action-buttons">
-                    <div class="action-btn green-btn" @click.stop="handleWechat">
+                    <div class="action-btn text-btn">
+                        &lt;&lt;长按图片保存或转发&gt;&gt;
+                    </div>
+                    <!-- <div class="action-btn green-btn" @click.stop="handleWechat">
                         <div class="icon-circle">
                             <img src="@/assets/img/home/wechat.png" alt="" />
                         </div>
@@ -110,7 +113,7 @@
                             <el-icon :size="24"><Download /></el-icon>
                         </div>
                         <span class="btn-label">保存图片</span>
-                    </div>
+                    </div> -->
                 </div>
                 <div class="cancel-btn" @click="handleCancel">取消</div>
             </div>
@@ -526,6 +529,10 @@ const getPhotoSrc = (photo) => {
                 flex-direction: column;
                 align-items: center;
                 cursor: pointer;
+                &.text-btn {
+                    font-size: 12px;
+                    color: rgba(255, 255, 255, 0.7);
+                }
 
                 .icon-circle {
                     width: 48px;

+ 10 - 2
src/components/album_compoents/albumDrawBox.vue

@@ -24,7 +24,11 @@
         <!-- 底部操作按钮 -->
         <div class="bottom-actions" @click.stop="showPopup = false">
             <div class="action-buttons">
-                <div class="action-btn green-btn" @click.stop="handleWechat">
+                
+                <div class="action-btn text-btn">
+                    &lt;&lt;长按图片保存或转发&gt;&gt;
+                </div>
+                <!-- <div class="action-btn green-btn" @click.stop="handleWechat">
                     <div class="icon-circle">
                         <img src="@/assets/img/home/wechat.png" alt="" />
                     </div>
@@ -35,7 +39,7 @@
                         <el-icon :size="24"><Download /></el-icon>
                     </div>
                     <span class="btn-label">保存图片</span>
-                </div>
+                </div> -->
             </div>
             <div class="cancel-btn" @click="handleCancel">取消</div>
         </div>
@@ -759,6 +763,10 @@ canvas {
                 flex-direction: column;
                 align-items: center;
                 cursor: pointer;
+                &.text-btn {
+                    font-size: 12px;
+                    color: rgba(255, 255, 255, 0.7);
+                }
 
                 .icon-circle {
                     width: 48px;

+ 62 - 2
src/views/old_mini/achievement_report/index.vue

@@ -69,7 +69,7 @@
 
             <div class="bottom-btn">
                 <div class="btn-item second" @click="handleDownload">保存图片</div>
-                <div class="btn-item primay">转发</div>
+                <div class="btn-item primay" @click="handleForward">转发</div>
             </div>
         </div>
 
@@ -114,6 +114,7 @@ import { uploadBase64 } from "@/common/uploadImg";
 import { detectRuntimeEnvironment } from "@/common/commonFun";
 import { useRoute } from "vue-router";
 import { base_img_url2 } from "@/api/config";
+import wx from "weixin-js-sdk";
 import AlbumDrawBox from "@/components/album_compoents/albumDrawBox.vue";
 
 const route = useRoute();
@@ -159,7 +160,7 @@ const getDetail = () => {
 const isDowload = ref(true);
 const reportDom = ref(null);
 
-async function handleDownload() {
+async function handleDownload(isShare = false) {
     isDowload.value = false;
     setTimeout(async () => {
         // 获取要截图的DOM元素
@@ -304,6 +305,65 @@ function coverImageToBase64HD(imgUrl, cssWidth, cssHeight) {
     });
 }
 
+
+const userInfoStr = localStorage.getItem("localUserInfo");
+const userInfo = userInfoStr ? JSON.parse(userInfoStr) : {};
+
+async function handleForward() {
+    setTimeout(async () => {
+        // 获取要截图的DOM元素
+        const element = reportDom.value;
+
+        try {
+            const canvas = await html2canvas(element, {
+                scrollY: -window.scrollY, // 处理滚动条位置
+                allowTaint: true, // 允许跨域图片
+                useCORS: true, // 使用CORS
+                scale: 2, // 提高分辨率(2倍)
+                height: element.scrollHeight, // 设置完整高度
+                width: element.scrollWidth, // 设置完整宽度
+                logging: true, // 开启日志(调试用)
+            });
+
+            // 转换为图片并下载
+            const image = canvas.toDataURL("image/png");
+            const process = detectRuntimeEnvironment();
+            // if (process === "wechat-webview") {
+                const imgUrl = await uploadBase64(image, false);
+                const params = {
+                    val: 'share',
+                    key: "report",
+                };
+                VE_API.mine.saveSessionStore({ ...params, text: imgUrl }).then((res) => {
+                    if (res.success) {
+                        wx.miniProgram.navigateTo({
+                            url: `/pages/subPages/report_page/index`,
+                        });
+                    }
+                });
+            // }
+            isDowload.value = true;
+        } catch (error) {
+            isDowload.value = true;
+        }
+    });
+
+
+    // const image = await handleDownload(true);
+    // const imgUrl = await uploadBase64(image, false);
+    // const params = {
+    //     miniUserId: 766,
+    //     key: "report",
+    // };
+    // VE_API.mine.saveSessionStore({ ...params, text: imgUrl }).then((res) => {
+    //     if (res.success) {
+    //         wx.miniProgram.navigateTo({
+    //             url: `/pages/subPages/report_page/index`,
+    //         });
+    //     }
+    // });
+}
+
 watch(
     () => [workItem.value.executeEvidence, workItem.value.reviewImage],
     ([preImgs, reviewImgs]) => {

+ 1 - 0
src/views/old_mini/create_farm/index.vue

@@ -127,6 +127,7 @@
                                         <el-select class="select-item" v-model="ruleForm.userType" placeholder="请选择">
                                             <el-option label="普通用户" :value="1" />
                                             <el-option label="托管用户" :value="2" />
+                                            <el-option label="优质客户" :value="3" />
                                         </el-select>
                                     </el-form-item>
                                     <el-form-item label="农场名称" prop="name">

+ 11 - 0
src/views/old_mini/home/components/farmInfoPopup.vue

@@ -19,6 +19,11 @@
                             <span>{{ farmInfo.speciesName }}-{{ farmInfo.typeName }}</span>
                         </template>
                     </field>
+                    <field v-model="farmInfo.userType" readonly label="客户类型">
+                        <template #input>
+                            <span>{{ userTypeMap[farmInfo.userType] }}</span>
+                        </template>
+                    </field>
                     <field v-model="farmInfo.fzr" readonly label="联系人" />
                     <field v-model="farmInfo.tel" readonly label="联系电话" />
                     <field class="address-field" v-model="farmInfo.address" readonly label="农场位置" />
@@ -40,6 +45,12 @@ import { useRouter } from "vue-router";
 import IndexMap from "../map/index.js";
 import { useStore } from "vuex";
 
+const userTypeMap = {
+    1: '普通用户',
+    2: '托管用户',
+    3: '优质客户',
+};
+
 const props = defineProps({
     farmId: {
         type: [Number, String],

+ 1 - 1
src/views/old_mini/modify_work/reviewWork.vue

@@ -379,7 +379,7 @@ onActivated(() => {
 });
 
 const getButtonText = () => {
-    return agriculturalRole.value === 1 || workItem.value.executorUserId != userId.value;
+    return (agriculturalRole.value === 1 || workItem.value.executorUserId != userId.value) && !workItem.value?.reviewImage?.length;
 };
 
 const getDetail = () => {

+ 3 - 3
src/views/old_mini/user/index.vue

@@ -34,12 +34,12 @@
                             userType: ele.userType || '托管客户',
                             variety: ele.speciesName,
                             address: ele.address,
-                            maxWidth: '90px',
+                            maxWidth: '100%',
                             customRight: 'tag-right',
                         }"
                         @click="handleItemClick(ele)"
                     >
-                        <template #right>
+                        <!-- <template #right>
                             <el-popover title="" :popper-style="'min-width: 110px;'" :width="110" placement="left-start" trigger="click">
                                 <div class="tag-list">
                                     <div class="tag-item">全托管</div>
@@ -51,7 +51,7 @@
                                     <div class="title-tag add-tag">标记为</div>
                                 </template>
                             </el-popover>
-                        </template>
+                        </template> -->
                         <template #footerData>
                             <div class="footer-data">
                                 <div class="footer-l">