From 089bf5d2378b3c4a61d795b2a92bede2c193b771 Mon Sep 17 00:00:00 2001
From: admin <344137771@qq.com>
Date: Tue, 06 Jan 2026 11:22:58 +0800
Subject: [PATCH] 1

---
 src/views/modules/prod/prod-transport.vue |  138 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 138 insertions(+), 0 deletions(-)

diff --git a/src/views/modules/prod/prod-transport.vue b/src/views/modules/prod/prod-transport.vue
new file mode 100644
index 0000000..6b63f9c
--- /dev/null
+++ b/src/views/modules/prod/prod-transport.vue
@@ -0,0 +1,138 @@
+<template>
+  <div class="mod-prod-prod-transport">
+    <el-form-item label="运费设置"
+                  :rules="[{ required: true, message: '运费模板不能为空'}]">
+      <el-select v-model="transportId"
+                 placeholder="请选择"
+                 @change="changeTransport">
+        <el-option v-for="transport in transportList"
+                   :key="transport.transportId"
+                   :label="transport.transName"
+                   :value="transport.transportId">
+        </el-option>
+      </el-select>
+    </el-form-item>
+    <el-form-item>
+      <el-table :data="transportInfo.transfees"
+                style="width: 100%"
+                v-if="transportInfo.transfees">
+        <el-table-column label="配送区域"
+                         width="350">
+          <template slot-scope="scope">
+            <span v-if="!scope.row.cityList.length">所有地区</span>
+            <el-tag v-for="city in scope.row.cityList"
+                    :key="city.areaId"
+                    v-else>{{city.areaName}}</el-tag>
+          </template>
+        </el-table-column>
+        <el-table-column prop="firstPiece"
+                         :label="tableTitle[0]">
+        </el-table-column>
+        <el-table-column prop="firstFee"
+                         :label="tableTitle[1]">
+        </el-table-column>
+        <el-table-column prop="continuousPiece"
+                         :label="tableTitle[2]">
+        </el-table-column>
+        <el-table-column prop="continuousFee"
+                         :label="tableTitle[3]">
+        </el-table-column>
+      </el-table>
+    </el-form-item>
+    <el-form-item v-if="transportInfo.hasFreeCondition === 1">
+      <el-table :data="transportInfo.transfeeFrees"
+                style="width: 100%">
+        <el-table-column label="指定区域"
+                         width="350">
+          <template slot-scope="scope">
+            <el-tag v-for="city in scope.row.freeCityList"
+                    :key="city.areaId">{{city.areaName}}</el-tag>
+          </template>
+        </el-table-column>
+        <el-table-column prop="freeType"
+                         label="包邮条件">
+          <template slot-scope="scope">
+            <span v-if="scope.row.freeType === 0">满件/重量/体积包邮</span>
+            <span v-if="scope.row.freeType === 1">满金额包邮</span>
+            <span v-if="scope.row.freeType === 2">满件/重量/体积且满金额包邮</span>
+          </template>
+        </el-table-column>
+        <el-table-column prop="amount">
+          <template slot-scope="scope">
+            <span v-if="scope.row.freeType === 1">满{{scope.row.amount}}元金额包邮</span>
+            <span v-if="scope.row.freeType === 0">满{{scope.row.piece}}件/重量/体积包邮</span>
+            <span v-if="scope.row.freeType === 2">满{{scope.row.piece}}件/重量/体积且满{{scope.row.amount}}元金额包邮</span>
+          </template>
+        </el-table-column>
+      </el-table>
+    </el-form-item>
+  </div>
+</template>
+
+<script>
+export default {
+  data () {
+    return {
+      transportId: null,
+      transportList: [{
+        transportId: null,
+        transName: ''
+      }],
+      transportInfo: {
+        hasFreeCondition: false,
+        transfeeFrees: [{ freeCityList: [] }]
+      }
+    }
+  },
+  props: {
+    value: {
+      default: null,
+      type: Number
+    }
+  },
+  computed: {
+    tableTitle () {
+      var titles = [['首件(个)', '运费(元)', '续件(个)', '续费(元)'], ['首重(kg)', '运费(元)', '续重(kg)', '续费(元)'], ['首体积(m³)', '运费(元)', '续体积(m³)', '续费(元)']]
+      if (this.transportInfo.chargeType) {
+        return titles[this.transportInfo.chargeType]
+      }
+      return titles[0]
+    }
+  },
+  created () {
+    this.getTransportList()
+  },
+  watch: {
+    value: function (transportId) {
+      this.transportId = transportId
+    }
+  },
+  methods: {
+    getTransportList () {
+      this.$http({
+        url: this.$http.adornUrl('/shop/transport/list'),
+        method: 'get',
+        params: this.$http.adornParams({})
+      }).then(({ data }) => {
+        this.transportList = data
+      })
+    },
+    changeTransport (transportId) {
+      this.$emit('input', transportId)
+      if (!transportId) {
+        return
+      }
+      this.$http({
+        url: this.$http.adornUrl(`/shop/transport/info/${transportId}`),
+        method: 'get',
+        params: this.$http.adornParams({})
+      }).then(({ data }) => {
+        this.transportInfo = data
+      })
+    }
+  }
+}
+</script>
+
+<style lang="scss" scoped>
+</style>

--
Gitblit v1.9.3