result.vue 3.92 KB
Newer Older
lanbaoming's avatar
lanbaoming committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
<template>
  <div class="app-container">
    <el-form ref="form" :model="form" :rules="rules" label-width="120px">

      <el-form-item :label="$t('报价单号')">
        <div>{{number}}</div>
      </el-form-item>

      <el-form-item :label="$t('结果')" prop="result">
        <dict-selector form-type="radio" :type="DICT_TYPE.ECW_OFFER_RESULT" v-model="form.result" />
      </el-form-item>

      <template v-if="form.result==1">
        <el-form-item :label="$t('入仓类型')" prop="warehousingType">
          <dict-selector :type="DICT_TYPE.ECW_WAREHOUSING_TYPE" v-model="form.warehousingType" />
        </el-form-item>
        <el-form-item :label="$t('关联订单')" prop="orderIds">
          <!-- <el-input v-model="form.orderIds" style="width: 206px;"></el-input> -->
          <el-select
            v-model="form.orderNo"
            filterable
            remote
            reserve-keyword
            :placeholder="$t('订单号')"
            @focus="checkOptions"
            :remote-method="remoteMethod"
            :loading="selectLoading">
            <el-option
              v-for="item in orderNoList"
              :key="item.value"
              :label="item.value"
              :value="item.value">
            </el-option>
          </el-select>
        </el-form-item>
      </template>
      <template v-else>
        <el-form-item :label="$t('原因')" prop="reason">
          <el-input style="width: 500px;" type="textarea" placeholder="" v-model="form.reason"></el-input>
        </el-form-item>
      </template>

      <el-form-item>
        <el-button type="primary" @click="submitForm">{{form.result==1? $t("确定并新增草稿订单") : $t("提交")}}</el-button>
        <el-button @click="$router.back()">{{ $t('返 回') }}</el-button>
      </el-form-item>
    </el-form>
  </div>
</template>
<script>
import { updateOfferResult } from '@/api/ecw/offer';

import CustomersSelector from '@/components/CustomersSelector'
import RoutersSelector from '@/components/RoutersSelector'
import ProductsSelector from '@/components/ProductsSelector'
import Editor from '@/components/Editor'
import Selector from '@/components/Selector/index'
import {getOrderNoSearch} from '@/api/ecw/order'
export default {
  name: "OfferResult",
  components: { CustomersSelector, RoutersSelector, ProductsSelector, Editor, Selector },
  data() {
    return {
      number: null,
      // 遮罩层
      loading: true,
      // 表单参数
      form: {
        "number": null,
        "offerId": undefined,
        "orderIds": undefined,
        "reason": undefined,
        "result": 1,
        "warehousingType": undefined
      },
      // 表单校验
      rules: {
        warehousingType: {required: true, message: this.$t('请选择入仓类型')}
      },
      selectLoading: false,
      orderNoList: []
    };
  },
  computed: {

  },
  watch: {

  },
  created() {
    if(this.$route.query.number){
      this.number = this.$route.query.number
    }
    if(this.$route.query.offerId){
      this.form.offerId = this.$route.query.offerId
    }
    
  },
  methods: {
    
    /** 提交按钮 */
    submitForm() {
      this.$refs["form"].validate((valid) => {
        if (!valid) {
          return;
        }
        let data = Object.assign({}, this.form)
        updateOfferResult(data).then(response => {
          if(response.data > 0){
            this.$message.success(this.$t('赢单成功'))
            this.$redirect('../order/edit?id=' + response.data)
            return
          }
          this.$message.success(this.$t('输单成功'))
          this.$router.back();
        });
      });
    },
    remoteMethod(query){
      this.selectLoading = true
      getOrderNoSearch({key: query, pageSize: 200}).then(res => {
        this.orderNoList = res.data.list
      }).finally(res => {
        this.selectLoading = false
      })
    },
    checkOptions(){
      if(!this.orderNoList.length){
        this.remoteMethod("")
      }
    }
  },
};
</script>