|
@@ -1,4 +1,4 @@
|
|
|
-// 模板字符串
|
|
|
+// 模板字符串
|
|
|
var temp = `
|
|
|
<div>
|
|
|
<div class="user-data-dialog" id="collectUserInfoDialog" v-if="showForm">
|
|
@@ -41,10 +41,10 @@ var temp = `
|
|
|
<div class="form-main">
|
|
|
<div class="long-control" style="position: relative;">
|
|
|
<el-form-item label="公司名称 :" prop="companyName">
|
|
|
- <el-input
|
|
|
- v-model.trim="form.companyName"
|
|
|
+ <el-input
|
|
|
+ v-model.trim="form.companyName"
|
|
|
data-long-input
|
|
|
- class="item-input company-name"
|
|
|
+ class="item-input company-name"
|
|
|
@focus="companyFocus"
|
|
|
@input="searchCompany"
|
|
|
placeholder="请输入公司名称">
|
|
@@ -60,16 +60,12 @@ var temp = `
|
|
|
<el-option v-for="item in jobData" :key="item.value" :label="item.label" :value="item.value">
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
- </el-form-item>
|
|
|
- <el-form-item label="部门 :" prop="branch">
|
|
|
- <el-select v-model="form.branch" placeholder="请选择部门" data-short-input clearable>
|
|
|
+ <el-select v-show="showBranch" v-model="form.branch" placeholder="请选择部门" class="item-input short-input" clearable>
|
|
|
<el-option v-for="item in branchData" :key="item.value" :label="item.label" :value="item.value">
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
</el-form-item>
|
|
|
</div>
|
|
|
-
|
|
|
-
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="dialog-footer">
|
|
@@ -109,7 +105,7 @@ var temp = `
|
|
|
</div>
|
|
|
`
|
|
|
var jobJson = [
|
|
|
- '总裁',
|
|
|
+ '总裁',
|
|
|
'总经理',
|
|
|
'总监',
|
|
|
'经理',
|
|
@@ -120,7 +116,8 @@ var branchJson = [
|
|
|
'市场',
|
|
|
'产品',
|
|
|
'销售',
|
|
|
- '渠道'
|
|
|
+ '渠道',
|
|
|
+ '其他'
|
|
|
]
|
|
|
var jobData = jobJson.map(function (item) {
|
|
|
return {
|
|
@@ -212,44 +209,18 @@ var vm = new Vue({
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- // var validJob = function(rule,value,callback) {
|
|
|
- // if(value === '') {
|
|
|
- // return callback();
|
|
|
- // } else {
|
|
|
- // if (value === '其他' && vm.form.otherJob === '') {
|
|
|
- // return callback();
|
|
|
- // } else {
|
|
|
- // callback();
|
|
|
- // }
|
|
|
- // }
|
|
|
- // }
|
|
|
var validJob = function(rule,value,callback) {
|
|
|
if(value === '') {
|
|
|
- return callback(new Error('职位不能为空'));
|
|
|
+ return callback(new Error('职位为必填项'));
|
|
|
+ return callback();
|
|
|
} else {
|
|
|
- if (value === '其他' && this.form.otherJob === '') {
|
|
|
- return callback(new Error('请输入职位'));
|
|
|
+ if (value === '其他' && vm.form.otherJob === '') {
|
|
|
+ return callback();
|
|
|
} else {
|
|
|
callback();
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- var validBranch = function(rule,value,callback) {
|
|
|
- if(value === '') {
|
|
|
- return callback(new Error('部门不能为空'));
|
|
|
- } else {
|
|
|
- callback();
|
|
|
- }
|
|
|
- // if(this.form.job.indexOf('总裁') > -1 || this.form.job.indexOf('总经理') > -1){
|
|
|
- // this.from.branch = ""
|
|
|
- // } else {
|
|
|
- // if(value === '') {
|
|
|
- // return callback(new Error('部门不能为空'));
|
|
|
- // } else {
|
|
|
- // callback();
|
|
|
- // }
|
|
|
- // }
|
|
|
- }
|
|
|
return {
|
|
|
dialogTitle: '为给您匹配精准的推荐信息,请完善个人信息',
|
|
|
jobData: jobData, // 职位数据
|
|
@@ -310,12 +281,6 @@ var vm = new Vue({
|
|
|
{
|
|
|
required: true,
|
|
|
validator: validJob,
|
|
|
- }
|
|
|
- ],
|
|
|
- branch: [
|
|
|
- {
|
|
|
- required: true,
|
|
|
- validator: validBranch,
|
|
|
trigger: 'blur'
|
|
|
}
|
|
|
]
|
|
@@ -353,19 +318,29 @@ var vm = new Vue({
|
|
|
mounted() {
|
|
|
var that = this;
|
|
|
$(document).on('click', function (e) {
|
|
|
- let dom = $('.company-name')[0];
|
|
|
- if (dom) {
|
|
|
- // 如果点击的区域不在自定义dom范围
|
|
|
- if (!dom.contains((e.target))) {
|
|
|
- that.showSearchResult = false
|
|
|
- }
|
|
|
- }
|
|
|
+ let dom = $('.company-name')[0];
|
|
|
+ if (dom) {
|
|
|
+ // 如果点击的区域不在自定义dom范围
|
|
|
+ if (!dom.contains((e.target))) {
|
|
|
+ that.showSearchResult = false
|
|
|
+ }
|
|
|
+ }
|
|
|
})
|
|
|
+ $(window).on('resize', this.changeTop)
|
|
|
},
|
|
|
beforeDestroy() {
|
|
|
$(document).off('click')
|
|
|
},
|
|
|
methods: {
|
|
|
+ changeTop: function () {
|
|
|
+ this.$nextTick(function () {
|
|
|
+ var dialogDom = $('#collectUserInfoDialog .dialog-container')
|
|
|
+ var diffHeight = window.innerHeight - dialogDom.height() - 200
|
|
|
+ if (diffHeight < 0) {
|
|
|
+ dialogDom.css('margin-top', diffHeight.toString() + 'px')
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
nameFocus:function(){
|
|
|
this.$refs['ruleForm'].clearValidate(['name']);
|
|
|
},
|
|
@@ -466,18 +441,36 @@ var vm = new Vue({
|
|
|
},
|
|
|
success:function (res) {
|
|
|
// 判断当前信息否在其他页面留资 如果全部留资 直接弹窗提交成功
|
|
|
- if(res.info.branch && res.info.company && res.info.name && res.info.phone &&res.info.position&&res.info.mail){
|
|
|
- _this.showSuccess=true
|
|
|
- return true
|
|
|
- }
|
|
|
- if (res.data) {
|
|
|
+ var checkKeys = ['name', 'phone', 'company', 'mail', 'branch', 'position']
|
|
|
+ var result = checkRequiredKeys(checkKeys, res.info)
|
|
|
+ if (result) {
|
|
|
+ callback && callback()
|
|
|
+ } else if (res.data) {
|
|
|
+ _this.isForce = res.data.fource
|
|
|
if (res.data.retainedCapital) {
|
|
|
_this.showForm = true
|
|
|
- _this.getOldInfo()
|
|
|
+ _this.changeTop()
|
|
|
+ if (res.info) {
|
|
|
+ echoRequiredValues(_this.form, res.info, ['name', 'phone', 'mail', 'branch'])
|
|
|
+ // 原有赋值回显逻辑
|
|
|
+ _this.form.oldPhone = res.info.phone ? res.info.phone : ''
|
|
|
+ _this.form.companyName = res.info.company ? res.info.company : ''
|
|
|
+ if (res.info.position) {
|
|
|
+ if (jobJson.indexOf(res.info.position) == -1) {
|
|
|
+ // _this.form.job = '其他'
|
|
|
+ // _this.form.otherJob = res.data.position.replace('其他/', '')
|
|
|
+ _this.form.job = ''
|
|
|
+ _this.form.otherJob = ''
|
|
|
+ } else {
|
|
|
+ _this.form.job = res.info.position
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ _this.form.job = ''
|
|
|
+ }
|
|
|
+ }
|
|
|
} else {
|
|
|
callback && callback()
|
|
|
}
|
|
|
- _this.isForce = res.data.fource
|
|
|
}
|
|
|
}
|
|
|
})
|
|
@@ -499,10 +492,10 @@ var vm = new Vue({
|
|
|
var params = {
|
|
|
source: source,
|
|
|
name: this.form.name,
|
|
|
- phone: this.form.phone,
|
|
|
+ phone: this.form.phone,
|
|
|
mail: this.form.mail,
|
|
|
company: this.form.companyName, // 公司名称
|
|
|
- position: this.form.job == '其他' ? this.form.job + '/' + this.form.otherJob : this.form.job,
|
|
|
+ position: this.form.job == '其他' ? this.form.job + '/' + this.form.otherJob : this.form.job,
|
|
|
code: this.form.code,
|
|
|
agree: true, // 原来留资模块的同意协议字段,,,默认传一个true 方便后端处理
|
|
|
branch: this.form.branch.indexOf('总裁') > -1 || this.form.branch.indexOf('总经理') > -1 || !this.form.job ? '' : this.form.branch
|
|
@@ -527,36 +520,6 @@ var vm = new Vue({
|
|
|
inputPhone: function(val) {
|
|
|
this.form.phone = val.replace(/[^\d]/g,'')
|
|
|
},
|
|
|
- // 查询表单回显信息
|
|
|
- getOldInfo: function() {
|
|
|
- var _this = this
|
|
|
- $.ajax({
|
|
|
- type:'POST',
|
|
|
- url:'/salesLeads/echoInfo?t=' + Date.now(),
|
|
|
- success:function (res) {
|
|
|
- if (res.data) {
|
|
|
- _this.form.oldPhone = res.data.phone ? res.data.phone : ''
|
|
|
- _this.form.name = res.data.name ? res.data.name : ''
|
|
|
- _this.form.phone = res.data.phone ? res.data.phone : ''
|
|
|
- _this.form.mail = res.data.mail ? res.data.mail : ''
|
|
|
- _this.form.companyName = res.data.company ? res.data.company : ''
|
|
|
- _this.form.branch = res.data.branch || ''
|
|
|
- if (res.data.position) {
|
|
|
- if (jobJson.indexOf(res.data.position) == -1) {
|
|
|
- // _this.form.job = '其他'
|
|
|
- // _this.form.otherJob = res.data.position.replace('其他/', '')
|
|
|
- _this.form.job = ''
|
|
|
- _this.form.otherJob = ''
|
|
|
- } else {
|
|
|
- _this.form.job = res.data.position
|
|
|
- }
|
|
|
- } else {
|
|
|
- _this.form.job = ''
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- })
|
|
|
- },
|
|
|
// 企业名称联想
|
|
|
getResult:function(name) {
|
|
|
// 名称为空或长度小于2不发请求
|
|
@@ -604,7 +567,7 @@ var vm = new Vue({
|
|
|
return val
|
|
|
}
|
|
|
},
|
|
|
- // 暂不提供
|
|
|
+ // 暂不提供
|
|
|
cancelForm: function() {
|
|
|
this.form.name = ''
|
|
|
this.form.phone = ''
|