Explorar o código

change: 商品碳相关内容调整.

peter hai 1 día
pai
achega
6b0c5b77bf

+ 2 - 2
components/FootprintReportDialog.vue

@@ -19,8 +19,8 @@
           </el-form-item>
           <el-form-item label="Transport" style="flex:1;margin-left:10px;">
             <el-select v-model="form.transport" placeholder="Please select" style="width:100%;" clearable>
-              <el-option label="AU-Sea" value="AU-Sea" />
-              <el-option label="AU-Air" value="AU-Air" />
+              <el-option label="UK-Sea" value="UK-Sea" />
+              <el-option label="UK-Air" value="UK-Air" />
             </el-select>
           </el-form-item>
         </div>

+ 26 - 64
components/product/ProductRight.vue

@@ -82,9 +82,15 @@
         <div
           class="details-1"
           v-if="pageData.carbon?.length">
-          <p><span>Carbon Footprint Transparency</span></p>
-          <p>This product has undergone mid-lifecycle carbon footprint assessment. Click the ‌<span>Carbon Footprint</span> project to view detailed calculations by transport mode;</p>
-          <p>We offer <span>Gold Standard-ceriied carbon offset proiects</span> for neutralization, ensuring full transparency and compliance with global sustainability standards. Contact us for detailed reports.</p>
+          <h3>Carbon Footprint Transparency</h3>
+          <p>
+            This product has undergone mid-lifecycle carbon footprint assessment. Click the
+            <span>Carbon Footprint</span> project to view detailed calculations by transport mode;
+          </p>
+          <p>
+            We offer <span>Gold Standard-ceriied carbon offset proiects</span> for neutralization, ensuring full
+            transparency and compliance with global sustainability standards. Contact us for detailed reports.
+          </p>
         </div>
         <div
           class="details-2"
@@ -140,17 +146,9 @@
                 <nuxt-link
                   v-if="isProduct(item.trim())"
                   :to="{ name: 'product-code', params: { code: item.trim() } }"
-                  ><span
-                    >{{ item
-                    }}<em v-if="i < comIncluded_packaging.length - 1"
-                      >,</em
-                    ></span
-                  ></nuxt-link
-                >
-                <span v-else
-                  >{{ item
-                  }}<em v-if="i < comIncluded_packaging.length - 1">,</em></span
+                  ><span>{{ item }}<em v-if="i < comIncluded_packaging.length - 1">,</em></span></nuxt-link
                 >
+                <span v-else>{{ item }}<em v-if="i < comIncluded_packaging.length - 1">,</em></span>
               </div>
             </li>
             <li v-if="comInfo.optional_packaging">
@@ -162,17 +160,9 @@
                 <nuxt-link
                   v-if="isProduct(item.trim())"
                   :to="{ name: 'product-code', params: { code: item.trim() } }"
-                  ><span
-                    >{{ item
-                    }}<em v-if="i < comOptional_packaging.length - 1"
-                      >,</em
-                    ></span
-                  ></nuxt-link
-                >
-                <span v-else
-                  >{{ item
-                  }}<em v-if="i < comOptional_packaging.length - 1">,</em></span
+                  ><span>{{ item }}<em v-if="i < comOptional_packaging.length - 1">,</em></span></nuxt-link
                 >
+                <span v-else>{{ item }}<em v-if="i < comOptional_packaging.length - 1">,</em></span>
               </div>
             </li>
             <li v-if="comInfo.optional_attachments">
@@ -182,12 +172,7 @@
                   :to="{ name: 'product-code', params: { code: item } }"
                   v-for="(item, i) in comOptional_attachments"
                   :key="item"
-                  ><span
-                    >{{ item
-                    }}<em v-if="i < comOptional_attachments.length - 1"
-                      >,</em
-                    ></span
-                  ></nuxt-link
+                  ><span>{{ item }}<em v-if="i < comOptional_attachments.length - 1">,</em></span></nuxt-link
                 >
               </div>
             </li>
@@ -206,12 +191,7 @@
           </ul>
           <!-- <el-button @click="ticketFormVisible = true"
           v-if="isLogin && /\@promocollection.uk/.test(userInfo.email)">Ticket</el-button> -->
-          <ul
-            v-if="
-              comInfo.print_position ||
-              comInfo.print_size_area ||
-              comInfo.print_marketing
-            ">
+          <ul v-if="comInfo.print_position || comInfo.print_size_area || comInfo.print_marketing">
             <li>
               <div class="title">Print Info</div>
             </li>
@@ -292,9 +272,8 @@
           </ul>
         </div>
         <p class="details-1">
-          Due to differences between production batches, product sizes may vary
-          slightly. The above Colours and measurements are approximate, and for
-          guidance only.
+          Due to differences between production batches, product sizes may vary slightly. The above Colours and
+          measurements are approximate, and for guidance only.
         </p>
         <!-- <div v-for="(item,index) in pageData.showcase" :key="index" class="showcase">
             <a :href="item.url">
@@ -315,16 +294,12 @@
         v-show="false">
         <div v-if="stockData.length > 0">
           <stock-table :data="stockData"></stock-table>
-          <p class="quote-tips">
-            For quantities over available stock levels, please contact us for
-            pricing and timing
-          </p>
+          <p class="quote-tips">For quantities over available stock levels, please contact us for pricing and timing</p>
         </div>
         <div
           class="quote-tips"
           v-else>
-          This product is made offshore, and is available for any quantity equal
-          to, or above the listed MOQ
+          This product is made offshore, and is available for any quantity equal to, or above the listed MOQ
         </div>
       </div>
       <div v-show="typeTab == 3">
@@ -390,17 +365,13 @@
       <!-- 右侧project浮动框 -->
       <project
         :productInfo="pageData"
-        :domainList="domainList"
-        @handleAdd="openProjectdDialog"
-        @handleOpenTicket="openTicket"
-        @handleOpenFootprint="footprintVisible = true"
-        @save-selected-data="saveUserSelected"></project>
+        @handleOpenFootprint="footprintVisible = true"></project>
       <!-- 加入project弹框 -->
-      <project-dialog
+      <!-- <project-dialog
         :visible.sync="projectdDialogVisible"
         :id="pageData.id"
         :projectObj="projectObj"
-        :isCopy="false"></project-dialog>
+        :isCopy="false"></project-dialog> -->
       <ElImageViewer
         v-if="showViewer"
         :on-close="closeViewer"
@@ -482,12 +453,8 @@ export default {
         { prop: '反馈详情', type: 'textarea' },
       ],
       rules: {
-        问题类型: [
-          { required: true, message: 'Please select', trigger: 'change' },
-        ],
-        反馈详情: [
-          { required: true, message: 'Please enter', trigger: 'blur' },
-        ],
+        问题类型: [{ required: true, message: 'Please select', trigger: 'change' }],
+        反馈详情: [{ required: true, message: 'Please enter', trigger: 'blur' }],
       },
       footprintVisible: false,
     }
@@ -574,9 +541,7 @@ export default {
       if (Array.isArray(printService) && printService.length) {
         printService.forEach(item => {
           if (item.decorationSelectId) {
-            const temp = item.decorationList.filter(
-              i => i.id === item.decorationSelectId
-            )
+            const temp = item.decorationList.filter(i => i.id === item.decorationSelectId)
             result.printService[`${item.id}`] = {
               id: item.decorationSelectId,
               num: temp[0].num,
@@ -584,10 +549,7 @@ export default {
           }
         })
       }
-      localStorage.setItem(
-        `product-user-select-${this.$route.params.code}`,
-        JSON.stringify(result)
-      )
+      localStorage.setItem(`product-user-select-${this.$route.params.code}`, JSON.stringify(result))
     },
     // getStock() {
     //   this.$axios.get('/api/quote/stock_new', { params: {id: this.id} }).then(res => {

+ 15 - 148
components/product/product.scss

@@ -41,8 +41,7 @@ $deep-blue: #004a97;
           cursor: pointer;
           width: 28px;
           height: 28px;
-          box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16),
-            0 1px 2px rgba(0, 0, 0, 0.23);
+          box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 1px 2px rgba(0, 0, 0, 0.23);
           border-radius: 20px;
           transition: all 0.2s;
           img {
@@ -74,9 +73,18 @@ $deep-blue: #004a97;
       }
       .details-1 {
         margin-bottom: 15px;
-        p,
+        p {
+          color: #4a596c;
+          word-break: keep-all;
+          span {
+            color: #444;
+            font-weight: 600;
+          }
+        }
         li {
           color: #4a596c;
+          // white-space: pre-wrap;
+          word-break: keep-all;
         }
         ul {
           padding-left: 20px;
@@ -189,155 +197,14 @@ $deep-blue: #004a97;
         height: 60px;
         margin-right: 20px;
         margin-bottom: 20px;
-        .details {
-          h3 {
-            font-size: 20px;
-            margin-bottom: 10px;
-          }
-          p,
-          li {
-            line-height: 1.8;
-            font-size: 16px;
-          }
-          .details-1 {
-            margin-bottom: 15px;
-            p {
-              color: #4a596c;
-              word-break: keep-all;
-              span {
-                color: #444;
-                font-weight: 600;
-              }
-            }
-            li {
-              color: #4a596c;
-              white-space: pre-wrap;
-              word-break: keep-all;
-            }
-            ul {
-              padding-left: 20px;
-              li {
-                list-style-type: disc;
-              }
-            }
-          }
-          .details-2 {
-            h3 {
-              text-align: center;
-            }
-            p {
-              text-indent: 2em;
-              color: #ff4500;
-              font-weight: bold;
-              text-align: center;
-            }
-          }
-          .details-3 {
-            position: relative;
-            ul {
-              position: relative;
-              z-index: 1;
-              margin-top: 15px;
-              li {
-                border-bottom: 1px solid rgba(190, 190, 190, 0.2);
-                display: flex;
-                div {
-                  line-height: 1.5;
-                  padding: 5px 0 5px 20px;
-                }
-                .title {
-                  font-size: 16px;
-                  text-align: center;
-                  background-color: $deep-blue;
-                  width: 100%;
-                  color: #fff;
-                }
-                .point {
-                  min-width: 193px;
-                  background-color: #f5f5f5;
-                  font-size: 16px;
-                }
-                .info {
-                  font-size: 14px;
-                  color: #4a596c;
-                  & + .info {
-                    padding-left: 0;
-                  }
-                }
-                a {
-                  color: #6495ed;
-                }
-              }
-            }
-          }
-          button {
-            position: absolute;
-            top: 0;
-            right: 0; /* 初始位置在 ul 区域的右边 */
-            transition: right 1.5s; /* 右移效果和 z-index 延迟变更 */
-            z-index: 0;
-            height: 34px;
-            display: flex;
-            align-items: center;
-          }
-
-          .details-3:hover .el-button {
-            right: -75px; /* 鼠标移入 ul 区域时滑出到右上角 */
-            transition: right 1.5s;
-          }
-
-          .showcase {
-            height: 60px;
-            // margin-top: 20px;
-            .banner {
-              width: 100%;
-              height: 100%;
-              background-size: cover;
-              background-repeat: no-repeat;
-              background-position: center;
-            }
-          }
-        }
-        h5 {
-          font-size: 16px;
-          margin-bottom: 20px;
-        }
-        .resources {
-          width: 450px;
-          margin-left: 20px;
-        }
-        .maketing {
-          display: grid;
-          grid-template-columns: repeat(2, 1fr);
-          p {
-            cursor: pointer;
-            margin-bottom: 30px;
-            display: inline-block;
-            img {
-              margin-right: 10px;
-              vertical-align: middle;
-            }
-            vertical-align: middle;
-          }
-        }
-        .compliance {
-          img {
-            height: 60px;
-            margin-right: 20px;
-            margin-bottom: 20px;
-            cursor: pointer;
-          }
-        }
-        .quote-tips {
-          font-size: 16px;
-        }
-        .red-text {
-          color: #ef4135;
-        }
+        cursor: pointer;
       }
     }
     .quote-tips {
       font-size: 16px;
     }
+    .red-text {
+      color: #ef4135;
+    }
   }
 }