Discount.vue 6.57 KB
Newer Older
1
<template>
dragondean@qq.com's avatar
dragondean@qq.com committed
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
  <el-dialog visible :close-on-click-modal="false" :before-close="closeDialog" :title="applyType == 2 ? $t('管理折扣') : $t('优惠申请')">
    <el-form ref="form" :model="form" label-width="80px" :rules="rules">
      <el-form-item :label="$t('商品类型')">
        <span>{{ $l(productType, 'title') }}</span>
      </el-form-item>
      <el-form-item :label="$t('商品名称')">
        <span>{{ orderItem.prodTitleZh }}</span>
      </el-form-item>
      <el-form-item :label="$t('英文名称')">
        <span>{{ orderItem.prodTitleEn }}</span>
      </el-form-item>
      <el-form-item :label="$t('线路')">
<dict-tag :type="DICT_TYPE.TRANSPORT_TYPE" :value="order.transportId" />
        {{ channel ? $l(channel, 'title') : '' }}
        {{$t("从【{departureName}】发往【{objectiveName}", {departureName: $l(order.logisticsInfoDto, 'startTitle'), objectiveName: $l(order.logisticsInfoDto, 'destTitle')})}}
      </el-form-item>
      <el-form-item :label="$t('是否预付')">
        <dict-tag :type="DICT_TYPE.ECW_YESNO" :value="orderItem.isPayAdvance" />
      </el-form-item>
21

dragondean@qq.com's avatar
dragondean@qq.com committed
22 23 24 25 26 27 28 29 30 31 32 33 34 35
      <el-row v-if="!orderItem.charging">
        <el-col :span="12">
          <el-form-item :label="$t('旧运费')">
            {{form.orgFreight}} {{ currentMap[form.freightCurrency] }} / {{ unitMap[form.freightVolume] }}
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item :label="$t('旧清关费')">
            {{form.orgClearanceFreight}} {{ currentMap[form.clearanceFreightCurrency] }} / {{ unitMap[form.clearanceFreightVolume] }}
          </el-form-item>
        </el-col>
      </el-row>
      <el-row v-if="!orderItem.charging">
        <el-col :span="12">
36 37
          <el-form-item :label="$t('新运费')" style="width: 400px" prop="freight">
            <el-input v-model="form.freight" type="number" class="w-100" />
dragondean@qq.com's avatar
dragondean@qq.com committed
38 39 40 41 42 43 44 45 46 47
            {{ currentMap[form.freightCurrency] }} / {{ unitMap[form.freightVolume] }}
          </el-form-item>
        </el-col>
        <el-col :span="12">
          <el-form-item :label="$t('新清关费')" style="width: 400px" prop="clearanceFreight">
            <el-input v-model="form.clearanceFreight" type="number" class="w-100" />
            {{ currentMap[form.clearanceFreightCurrency] }} / {{ unitMap[form.clearanceFreightVolume] }}
          </el-form-item>
        </el-col>
      </el-row>
48

dragondean@qq.com's avatar
dragondean@qq.com committed
49
      <el-form-item :label="$t('旧全包价')" v-if="orderItem.charging">
50
        {{form.orgFreight}} {{ currentMap[form.freightCurrency] }} / {{ unitMap[form.freightVolume] }}
dragondean@qq.com's avatar
dragondean@qq.com committed
51 52 53 54 55
      </el-form-item>
      <el-form-item :label="$t('新全包价')" style="width: 400px" prop="clearanceFreight"  v-if="orderItem.charging">
        <el-input v-model="form.freight" type="number" class="w-100" />
        {{ currentMap[form.freightCurrency] }} / {{ unitMap[form.freightVolume] }}
      </el-form-item>
56

dragondean@qq.com's avatar
dragondean@qq.com committed
57 58 59
    </el-form>
    <div class="page-title">审批流程</div>
    <work-flow xmlkey="special_apply" v-model="ccIdArr" />
dragondean@qq.com's avatar
dragondean@qq.com committed
60
    <div v-if="form.applyStatus != 1">
61
      <el-button type="primary" @click="handleSubmit" :disabled="!submitable">提交</el-button>
dragondean@qq.com's avatar
dragondean@qq.com committed
62 63 64 65 66 67 68
    </div>
    <div v-else>
      <el-button type="primary" @click="$router.push('/bpm/process-instance/detail?id=' + form.formId)">
        <dict-tag :type="DICT_TYPE.APPLY_STATUS" :value="form.applyStatus" />
      </el-button>
    </div>
  </el-dialog>
69 70 71
</template>

<script>
dragondean@qq.com's avatar
dragondean@qq.com committed
72
import {createOrderSpecial, getOrderSpecial} from "@/api/ecw/order"
73
import {getUnitList} from "@/api/ecw/unit"
dragondean@qq.com's avatar
dragondean@qq.com committed
74
import {getChannel, getChannelList} from "@/api/ecw/channel"
75
import { getCurrencyList } from '@/api/ecw/currency'
dragondean@qq.com's avatar
dragondean@qq.com committed
76 77
import { getProductType } from '@/api/ecw/productType'
import WorkFlow from '@/components/WorkFlow'
78
export default {
dragondean@qq.com's avatar
dragondean@qq.com committed
79
  name: "OrderSpecialDiscount",
80
  props: {
dragondean@qq.com's avatar
dragondean@qq.com committed
81 82 83 84 85
    order: Object,
    orderItem: Object,
    applyType:{ // // 1是优惠申请2是管理折扣3是佣金设置4是重货优惠5是泡货优惠, 默认是优惠申请,可以设置为2表示管理折扣,公用一个组件
      type: Number,
      default: 1
86 87 88
    }
  },
  components: {
89
    WorkFlow
90 91 92
  },
  created() {
    // 查看详情,列表进来的
dragondean@qq.com's avatar
dragondean@qq.com committed
93
    this.getOrderSpecial()
94 95 96 97

    getUnitList().then(res => this.unitList = res.data)
    getCurrencyList().then(res => this.currencyList = res.data)

dragondean@qq.com's avatar
dragondean@qq.com committed
98 99 100 101 102 103 104 105
    getProductType(this.orderItem.prodType).then(res => {
      this.productType = res.data
    })
    if(this.order.channelId){
      getChannel(this.order.channelId).then(res => {
        this.channel = res.data
      })
    }
106 107 108
  },
  data() {
    return {
dragondean@qq.com's avatar
dragondean@qq.com committed
109
      // applyType: 1, // 1是优惠申请2是管理折扣3是佣金设置4是重货优惠5是泡货优惠
110
      unitList:[],
dragondean@qq.com's avatar
dragondean@qq.com committed
111
      // channelList:[],
112
      currencyList:[],
dragondean@qq.com's avatar
dragondean@qq.com committed
113 114 115 116 117 118
      // productTypeList:[],
      ccIdArr: [],
      form: { },
      rules:{
        seaFreight      : {required: true, message: '运费不能为空'},
        clearanceFreight: {required: true, message: '清关费不能为空'}
Marcus's avatar
Marcus committed
119
      },
dragondean@qq.com's avatar
dragondean@qq.com committed
120 121 122 123 124 125 126
      productType: null,
      channel: null
    }
  },
  watch:{
    ccIdArr(){
      this.$set(this.form, 'ccIds', this.ccIdArr.join(','))
127 128 129 130
    }
  },
  methods: {
    handleSubmit(){
dragondean@qq.com's avatar
dragondean@qq.com committed
131 132 133 134 135
      this.$refs.form.validate().then(res => {
        createOrderSpecial(Object.assign({}, this.form, {applyType: this.applyType})).then(res => {
          this.$message.success(this.$t('提交成功'))
          this.$emit('success')
        })
136 137 138
      })
    },
    getOrderSpecial(){
dragondean@qq.com's avatar
dragondean@qq.com committed
139
      getOrderSpecial(this.order.orderId, this.applyType, {orderItemId: this.orderItem.orderItemId}).then(r => {
140 141 142
        this.form = r.data
      })
    },
dragondean@qq.com's avatar
dragondean@qq.com committed
143 144 145 146 147
    /* getProductTypeNameById(id){
      return this.$l(this.productTypeList.find(e => e.id === id), 'title')
    }, */
    closeDialog(){
      this.$emit('close')
148 149 150
    }
  },
  computed: {
151 152 153 154 155 156 157 158 159 160 161 162 163
    // 是否可以提交
    submitable(){
      let submitable = false;
      [
        ['orgClearanceFreight', 'clearanceFreight'],
        ['orgFreight', 'freight']
      ].forEach(item => {
        if(this.form[item[0]] != this.form[item[1]]){
          submitable = true
        }
      })
      return submitable
    },
164 165 166 167 168 169 170 171 172 173
    // 根据渠道id显示渠道名
    getChannelNameById(){
      return channelId => {
        const s = this.channelList.find(item => item.channelId == channelId) ?. nameZh
        return s ? '' + s + '' : ''
      }
    },
    currentMap(){
      let map = {}
      this.currencyList.forEach(item => {
dragondean@qq.com's avatar
dragondean@qq.com committed
174
        map[item.id] = this.$l(item, 'title')
175 176 177 178 179 180
      })
      return map
    },
    unitMap(){
      let map = {}
      this.unitList.forEach(item => {
dragondean@qq.com's avatar
dragondean@qq.com committed
181
        map[item.id] = this.$l(item, 'title')
182 183 184 185 186 187
      })
      return map
    }
  }
}
</script>