|
@@ -0,0 +1,333 @@
|
|
|
+<template>
|
|
|
+ <div class="add-business">
|
|
|
+ <div class="first-step-form-wrap" v-show="step===1">
|
|
|
+ <el-form
|
|
|
+ :model="firstFormData"
|
|
|
+ :rules="rules"
|
|
|
+ ref="firstFormEl"
|
|
|
+ label-width="120px"
|
|
|
+ inline
|
|
|
+ class="first-step-form"
|
|
|
+ >
|
|
|
+ <el-form-item label="所属区域" prop="areaType">
|
|
|
+ <el-radio-group v-model="firstFormData.areaType">
|
|
|
+ <el-radio :label="1">国内</el-radio>
|
|
|
+ <el-radio :label="2">海外</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="商家名称" prop="name">
|
|
|
+ <autocomplete
|
|
|
+ ref="auto"
|
|
|
+ v-model="firstFormData.name"
|
|
|
+ :fetch-suggestions="callbackHandle"
|
|
|
+ placeholder="请输入商家名称"
|
|
|
+ @blur="checkCompany"
|
|
|
+ @select="customNameSelect"
|
|
|
+ @focus="checkCompanyfocus"
|
|
|
+ :disabled='inquireSuccess'
|
|
|
+ clearable
|
|
|
+ value-key="value"
|
|
|
+ style="width:400px"
|
|
|
+ :popper-class="isCheck?'el-autocomplete-none':'el-autocomplete-suggestion-data-entry'"
|
|
|
+ class="autocomplete-input"
|
|
|
+ >
|
|
|
+ <span
|
|
|
+ v-if="firstFormData.name.length > 3"
|
|
|
+ style="color:#409EFF;cursor: pointer;" slot="suffix"
|
|
|
+ @click="$refs.auto.search(firstFormData.name)"
|
|
|
+ > 查询</span>
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <div v-if="scope.item.KeyNo">{{scope.item.Name}}</div>
|
|
|
+ <div v-else style="text-align:center">暂无数据</div>
|
|
|
+ </template>
|
|
|
+ </autocomplete>
|
|
|
+ <!-- <el-input placeholder="请输入商家名称" v-model="firstFormData.name"/> -->
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="社会信用码" prop="creditCode">
|
|
|
+ <el-input disabled placeholder="请输入社会信用码" v-model="firstFormData.creditCode"/>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="商家地址" prop="city">
|
|
|
+ <el-cascader
|
|
|
+ v-model="firstFormData.address"
|
|
|
+ :props="locationProps"
|
|
|
+ clearable
|
|
|
+ :options="locationOptions"
|
|
|
+ @change="handleChangeLocation"
|
|
|
+ placeholder="请选择客户地址"
|
|
|
+ style="width:200px;marginRight:10px;marginBottom:8px;"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="决策人" prop="decisionMaker">
|
|
|
+ <el-input placeholder="请输入决策人" v-model="firstFormData.decisionMaker"/>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="研究团队规模" prop="teamSize">
|
|
|
+ <el-select
|
|
|
+ v-model="firstFormData.teamSize"
|
|
|
+ placeholder="请选择研究团队规模"
|
|
|
+ clearable
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in teamSizeOpts"
|
|
|
+ :key="item.val"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.val">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="资金规模" prop="fundsize">
|
|
|
+ <el-input placeholder="请输入资金规模" v-model="firstFormData.fundsize"/>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="所属行业" prop="industry">
|
|
|
+ <el-select
|
|
|
+ v-model="firstFormData.industry"
|
|
|
+ placeholder="请选择行业"
|
|
|
+ clearable
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in tradeArr"
|
|
|
+ :key="item.IndustryId"
|
|
|
+ :label="item.IndustryName"
|
|
|
+ :value="item.IndustryId">
|
|
|
+ </el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="用户上限" prop="userMax">
|
|
|
+ <el-input type="number" placeholder="请输入用户上限" v-model="firstFormData.userMax"/>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="所属销售" prop="saller">
|
|
|
+ <el-select
|
|
|
+ v-model="firstFormData.saller"
|
|
|
+ placeholder="请选择销售"
|
|
|
+ filterable
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="item in salesArr"
|
|
|
+ :key="item.AdminId"
|
|
|
+ :label="item.RealName"
|
|
|
+ :value="item.AdminId"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+ <div class="second-step-form-wrap" v-show="step===2">
|
|
|
+ <el-form
|
|
|
+ :model="secondFormData"
|
|
|
+ :rules="rules"
|
|
|
+ ref="secondFormEl"
|
|
|
+ label-width="120px"
|
|
|
+ inline
|
|
|
+ class="second-step-form"
|
|
|
+ >
|
|
|
+ <el-form-item label="签约日期" prop="signDate">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="secondFormData.signDate"
|
|
|
+ type="date"
|
|
|
+ placeholder="选择日期"
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="到期日期" prop="expirationDate">
|
|
|
+ <el-date-picker
|
|
|
+ v-model="secondFormData.expirationDate"
|
|
|
+ type="date"
|
|
|
+ placeholder="选择日期"
|
|
|
+ value-format="YYYY-MM-DD"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ <div class="btns-box">
|
|
|
+ <el-button style="width:80px" type="primary" v-show="step===1" @click="handleStepSecond">下一步</el-button>
|
|
|
+ <el-button style="width:80px" type="primary" v-show="step===1" plain @click="$router.back()">取消</el-button>
|
|
|
+ <el-button style="width:80px" type="primary" v-show="step===2" plain @click="step--">上一步</el-button>
|
|
|
+ <el-button style="width:80px" type="primary" v-show="step===2">保存</el-button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+import { customInterence } from '@/api/api.js'
|
|
|
+import autocomplete from "@/components/autocomplete.vue";
|
|
|
+import {locationOptions} from "@/views/custom_manage/customList/location"
|
|
|
+export default {
|
|
|
+ components: {autocomplete},
|
|
|
+ data() {
|
|
|
+ return {
|
|
|
+ locationOptions,
|
|
|
+ locationProps:{
|
|
|
+ value:'name',
|
|
|
+ children:'city',
|
|
|
+ label:'name'
|
|
|
+ },
|
|
|
+
|
|
|
+ isCheckCompanyInfo:false, //
|
|
|
+ checkCompanyfocusIs:false, //
|
|
|
+ inquireSuccess:false,
|
|
|
+ nameRepeat:false,
|
|
|
+ codeRepeat:false,
|
|
|
+ isCheck:false,//检查客户弹窗
|
|
|
+ repeatId:'',//重复公司id
|
|
|
+ repeatName:'',//重复公司类型
|
|
|
+
|
|
|
+ salesArr:[],
|
|
|
+
|
|
|
+ step:1,//第几步
|
|
|
+ teamSizeOpts:[
|
|
|
+ {
|
|
|
+ val:'50人及以下',
|
|
|
+ label:'50人及以下'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ val:'200人及以下',
|
|
|
+ label:'200人及以下'
|
|
|
+ },
|
|
|
+ {
|
|
|
+ val:'超过200人',
|
|
|
+ label:'超过200人'
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ tradeArr:[],
|
|
|
+ rules:{
|
|
|
+ areaType:[{ required: true, message: '请选择所属区域', trigger: 'change' },],
|
|
|
+ name:[{ required: true, message: '请输入商家名称', trigger: 'blur' },],
|
|
|
+ creditCode:[{ required: true, message: '请输入社会信用码', trigger: 'blur' },],
|
|
|
+ address:[{ required: true, message: '请选择商家地址', trigger: 'change' },],
|
|
|
+ decisionMaker:[{required: true, message: '请输入决策人', trigger: 'blur' },],
|
|
|
+ teamSize:[{required: true, message: '请选择研究团队规模', trigger: 'change' },],
|
|
|
+ industry:[{required: true, message: '请选择所属行业', trigger: 'change' },],
|
|
|
+ userMax:[{required: true, message: '请输入用户上限', trigger: 'blur' },],
|
|
|
+ signDate:[{required: true, message: '请选择签署日期', trigger: 'change' },],
|
|
|
+ expirationDate:[{required: true, message: '请选择签署日期', trigger: 'change' },],
|
|
|
+ saller:[{required: true, message: '请选择所属销售', trigger: 'change' },],
|
|
|
+ },
|
|
|
+ firstFormData:{
|
|
|
+ areaType:1,//1国内 2国外
|
|
|
+ name:'',
|
|
|
+ creditCode:'',
|
|
|
+ address:'',
|
|
|
+ decisionMaker:'',
|
|
|
+ teamSize:'',
|
|
|
+ fundsize:'',
|
|
|
+ industry:'',
|
|
|
+ userMax:'',
|
|
|
+ saller:''
|
|
|
+ },
|
|
|
+ secondFormData:{
|
|
|
+ signDate:'',
|
|
|
+ expirationDate:''
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ this.getIndustry()
|
|
|
+ this.getSale()
|
|
|
+ },
|
|
|
+ methods: {
|
|
|
+ //跳转到第二步
|
|
|
+ handleStepSecond(){
|
|
|
+ this.$refs.firstFormEl.validate((valid)=>{
|
|
|
+ if(valid){
|
|
|
+ this.step++
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+
|
|
|
+ async callbackHandle(data,cb) {
|
|
|
+ if (data) {
|
|
|
+ this.isCheckCompanyInfo =true
|
|
|
+ cb([]);
|
|
|
+ let res = await customInterence.companyQccSearch({ KeyWord: data});
|
|
|
+ if (res.Ret === 200) {
|
|
|
+ this.isCheckCompanyInfo =false;
|
|
|
+ if (res.Data && res.Data.length > 0) {
|
|
|
+ let arr = res.Data.map((item) => {
|
|
|
+ return { value:item.Name, ...item };
|
|
|
+ });
|
|
|
+ cb(arr);
|
|
|
+ }else{
|
|
|
+ cb([{}]);
|
|
|
+ // this.checkCompany()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+
|
|
|
+ checkCompanyfocus(){
|
|
|
+ this.checkCompanyfocusIs =true;
|
|
|
+ setTimeout(() => {
|
|
|
+ this.checkCompanyfocusIs =false;
|
|
|
+ },500)
|
|
|
+ },
|
|
|
+
|
|
|
+ //选中后增加社会信用码
|
|
|
+ customNameSelect(value) {
|
|
|
+ this.firstFormData.creditCode = value.CreditCode
|
|
|
+ this.inquireSuccess = true;
|
|
|
+ setTimeout(async()=>{
|
|
|
+ this.checkCompany()
|
|
|
+ },10)
|
|
|
+ },
|
|
|
+
|
|
|
+ /* 客户名称/信用码失焦时校验客户名称是否存在 存在就提示 */
|
|
|
+ checkCompany() {
|
|
|
+ setTimeout(()=>{
|
|
|
+ if(this.checkCompanyfocusIs) return
|
|
|
+ if((!this.firstFormData.name && !this.firstFormData.creditCode) || (this.isCheckCompanyInfo && this.firstFormData.name)) return
|
|
|
+ customInterence.checkCompanyInfo({
|
|
|
+ CompanyName:this.firstFormData.name,
|
|
|
+ CreditCode:this.firstFormData.creditCode
|
|
|
+ }).then(res =>{
|
|
|
+ if(res.Ret === 200){
|
|
|
+ if(res.Data.RepeatStatus > 0) {
|
|
|
+ this.repeatId = res.Data.CompanyId;
|
|
|
+ this.repeatName = res.Data.ProductName;
|
|
|
+ this.nameRepeat = res.Data.RepeatStatus
|
|
|
+ this.codeRepeat = res.Data.Status
|
|
|
+ this.isCheck = true;
|
|
|
+ }else {
|
|
|
+ this.nameRepeat = 0
|
|
|
+ this.isCheck = false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },500)
|
|
|
+ },
|
|
|
+
|
|
|
+ selectRegion(e){
|
|
|
+ this.firstFormData.province=e.province.value
|
|
|
+ this.firstFormData.city=e.city.value =='市'?'':e.city.value;
|
|
|
+ },
|
|
|
+ /* 根据类型获取行业 */
|
|
|
+ getIndustry() {
|
|
|
+ customInterence.getindustry({
|
|
|
+ Classify:'ficc'
|
|
|
+ }).then(res => {
|
|
|
+ if(res.Ret === 200) {
|
|
|
+ this.tradeArr = res.Data.List || [];
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ /* 获取销售 */
|
|
|
+ getSale() {
|
|
|
+ customInterence.saleslist().then(res => {
|
|
|
+ if(res.Ret === 200) {
|
|
|
+ this.salesArr = res.Data.List;
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ },
|
|
|
+}
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="scss" scoped>
|
|
|
+.btns-box{
|
|
|
+ position: fixed;
|
|
|
+ left: 50%;
|
|
|
+ bottom: 100px;
|
|
|
+ transform: translateX(-50%);
|
|
|
+ width: 200px;
|
|
|
+ z-index: 99;
|
|
|
+}
|
|
|
+</style>
|