createLog.vue 6 KB
Newer Older
我在何方's avatar
我在何方 committed
1 2 3
<template>
  <div class="app-container">
    <el-card>
dragondean@qq.com's avatar
dragondean@qq.com committed
4
      <div slot="header" class="card-title">{{$t('报表跟进')}}</div>
我在何方's avatar
我在何方 committed
5
    <el-form ref="form" :model="form" :rules="rules" label-width="120px" label-position="left">
dragondean@qq.com's avatar
dragondean@qq.com committed
6
      <el-form-item :label="$t('报价单号')" prop="number" style="width: 46%;display: inline-block;">
我在何方's avatar
我在何方 committed
7
        <label>{{form.number}}</label>
Marcus's avatar
Marcus committed
8
<!--        <el-input :value="form.number" disabled :placeholder="$t('请输入报价单号')" /> -->
我在何方's avatar
我在何方 committed
9
      </el-form-item>
dragondean@qq.com's avatar
dragondean@qq.com committed
10 11
      <el-form-item :label="$t('跟进类型')" prop="type" style="width: 46%;display: inline-block;margin-left:8%">
        <el-radio v-model="form.type" label="2">{{$t('商务洽谈')}}</el-radio>
我在何方's avatar
我在何方 committed
12
      </el-form-item>
dragondean@qq.com's avatar
dragondean@qq.com committed
13 14
      <el-form-item :label="$t('跟进时间')" prop="followUpTime" style="width: 46%;display: inline-block">
        <el-date-picker clearable v-model="form.followUpTime" value-format="yyyy-MM-dd HH:mm:ss" format="yyyy-MM-dd HH:mm:ss" type="datetime" :placeholder="$t('选择跟进时间')" />
我在何方's avatar
我在何方 committed
15
      </el-form-item>
我在何方's avatar
我在何方 committed
16
      <el-form-item :label="$t('客户经理')" prop="followUpSalesmanId" style="width: 46%;display: inline-block;;margin-left:8%">
我在何方's avatar
我在何方 committed
17
       <el-select v-model="form.followUpSalesmanId" :placeholder="$t('请选择跟进业务员')" clearable>
我在何方's avatar
我在何方 committed
18 19 20 21
        <el-option v-for="item in creatorData"
                        :key="item.id" :label="item.nickname" :value="item.id"/>
        </el-select>
      </el-form-item>
dragondean@qq.com's avatar
dragondean@qq.com committed
22
      <el-form-item :label="$t('联系人')" prop="contacts" style="width: 46%;display: inline-block">
我在何方's avatar
我在何方 committed
23
       <el-select v-model="form.contacts" :placeholder="$t('请选择联系人')" clearable>
我在何方's avatar
我在何方 committed
24 25
          <el-option v-for="item in contactsData" :key="item.id" :label="item.name" :value="item.id"/>
          </el-select>
我在何方's avatar
我在何方 committed
26
      </el-form-item>
dragondean@qq.com's avatar
dragondean@qq.com committed
27
      <el-form-item :label="$t('跟进方式')" prop="followUpMethod" style="width: 46%;display: inline-block;margin-left:8%">
我在何方's avatar
我在何方 committed
28
        <dict-selector
我在何方's avatar
我在何方 committed
29
          :type="DICT_TYPE.CUSTOMER_FOLLOW_METHOD"
dragondean@qq.com's avatar
dragondean@qq.com committed
30
          :placeholder="$t('请选择跟进方式')"
我在何方's avatar
我在何方 committed
31 32
          v-model="form.followUpMethod"
          form-type="select"
我在何方's avatar
我在何方 committed
33
          :clearable="true"
我在何方's avatar
我在何方 committed
34 35
        />
      </el-form-item>
dragondean@qq.com's avatar
dragondean@qq.com committed
36 37
      <el-form-item :label="$t('客户反馈')" prop="customerFeedback">
        <el-input type="textarea" :rows="3" v-model="form.customerFeedback" :placeholder="$t('请输入客户反馈')" />
我在何方's avatar
我在何方 committed
38
      </el-form-item>
dragondean@qq.com's avatar
dragondean@qq.com committed
39 40
      <el-form-item :label="$t('处理结果')" prop="processingResults">
        <el-input type="textarea" :rows="3" v-model="form.processingResults" :placeholder="$t('请输入处理结果')" />
我在何方's avatar
我在何方 committed
41 42 43 44 45 46
      </el-form-item>
    </el-form>


    </el-card>
    <div slot="footer" class="dialog-footer">
dragondean@qq.com's avatar
dragondean@qq.com committed
47
      <el-button type="primary" @click="submitForm">{{$t('确定')}}</el-button>
我在何方's avatar
我在何方 committed
48 49 50 51 52 53 54 55 56
    </div>
  </div>
</template>

<script>
  import { createOfferLog } from "@/api/ecw/offerLog"
  import { userList } from "@/api/system/user"
  import { getCustomerContactsListByCustomer } from "@/api/ecw/customerContacts"
  import {DICT_TYPE} from  '@/utils/dict'
我在何方's avatar
我在何方 committed
57 58
  import {getOffer} from '@/api/ecw/offer'
  import {getCustomerContactsSelect} from '@/api/ecw/customerContacts'
我在何方's avatar
我在何方 committed
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73
  export default {
    name: "OfferLog",
    components: {
    },
    data() {
      return {
        // 遮罩层
        loading: true,
        open: false,
        contactsData:[],
        creatorData:[],
        // 表单参数
        form: {
          type:'2',
          offerId:0,
我在何方's avatar
我在何方 committed
74
          number:0,
我在何方's avatar
我在何方 committed
75 76 77 78
        },
        relationId:0,
        // 表单校验
        rules: {
dragondean@qq.com's avatar
dragondean@qq.com committed
79 80
          type: [{ required: true, message: this.$t("请选择跟进类型"), trigger: "change" }],
          followUpTime: [{ required: true, message: this.$t("跟进时间不能为空"), trigger: "blur" }],
我在何方's avatar
我在何方 committed
81
          followUpSalesmanId: [{ required: true, message: this.$t("客户经理不能为空"), trigger: "change" }],
dragondean@qq.com's avatar
dragondean@qq.com committed
82 83 84 85
          contacts: [{ required: true, message: this.$t("联系人不能为空"), trigger: "blur" }],
          followUpMethod: [{ required: true, message: this.$t("请选择跟进方式"), trigger: "change" }],
          customerFeedback: [{ required: true, message: this.$t("客户反馈不能为空"), trigger: "blur" }],
          processingResults: [{ required: true, message: this.$t("处理结果不能为空"), trigger: "blur" }],
我在何方's avatar
我在何方 committed
86 87
        },
        list:[]
我在何方's avatar
我在何方 committed
88 89 90 91 92
      };
    },
    created() {
      if(this.$route.query.offerId){
        this.form.offerId = this.$route.query.offerId
我在何方's avatar
我在何方 committed
93
        this.getList();
我在何方's avatar
我在何方 committed
94 95 96 97
        }
        if(this.$route.query.number){
          this.form.number = this.$route.query.number
        }
我在何方's avatar
我在何方 committed
98
        userList('customer service').then(res =>this.creatorData = res.data)
我在何方's avatar
我在何方 committed
99 100
    },
    methods: {
我在何方's avatar
我在何方 committed
101 102 103 104 105 106 107 108
      getList() {
        let that = this
        // 执行查询
        getOffer(that.form.offerId).then(response => {
          that.list = response.data;
          that.getContactsData()
        })
      },
我在何方's avatar
我在何方 committed
109
      getContactsData(){
我在何方's avatar
我在何方 committed
110 111 112 113 114 115
        getCustomerContactsSelect({ids: [this.list.consigneeId, this.list.consignorId].join(',')}).then((res) => {
            if(res.data.list.length>0){
              this.contactsData.push({name:res.data.list[0].contactsName+'('+this.$t('发货人')+')',id:res.data.list[0].customerContactsId})
              this.contactsData.push({name:res.data.list[1].contactsName+'('+this.$t('收货人')+')',id:res.data.list[1].customerContactsId})
            }

我在何方's avatar
我在何方 committed
116
        })
我在何方's avatar
我在何方 committed
117 118 119
        // getCustomerContactsListByCustomer({customerId:this.relationId}).then(response => {
        //   this.contactsData = response.data
        // })
我在何方's avatar
我在何方 committed
120 121 122 123 124 125 126 127 128 129 130
      },
      /** 提交按钮 */
      submitForm() {
        this.$refs["form"].validate(valid => {
          if (!valid) {
            return;
          }
          // 添加的提交
          this.form.type = parseInt(this.form.type)
          this.form.followUpMethod = parseInt(this.form.followUpMethod)
          createOfferLog(this.form).then(response => {
dragondean@qq.com's avatar
dragondean@qq.com committed
131
            this.$modal.msgSuccess(this.$t("新增成功"));
我在何方's avatar
我在何方 committed
132
            this.$store.dispatch('tagsView/delCurrentView')
我在何方's avatar
我在何方 committed
133 134 135 136 137 138 139
          });
        });
      },
    }
  };
</script>

我在何方's avatar
我在何方 committed
140
<style scoped>
我在何方's avatar
我在何方 committed
141 142 143 144
  .dialog-footer{
    padding: 40px;
  }
</style>