Merge branch 'release/0416' into 0416/GFRS-765【0423】电投自核规则前端进行转译提示
# Conflicts: # src/assets/js/utils/validator.js # src/views/ebiz/sale/AddBeneficiaryInfo.vue # src/views/ebiz/sale/AttachmentManagement.vue # src/views/ebiz/sale/InsuredPerson.vue
@@ -18,7 +18,14 @@ export function updateCustomerInfo(data) {
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
//本人实名认证
|
||||
export function checkPhone(data) {
|
||||
return request({
|
||||
url: getUrl('/customer/checkPhone', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
//查询代理人客户信息
|
||||
export function getAgentCustomerInfo(data) {
|
||||
return request({
|
||||
|
||||
135
src/api/ebiz/manpower/manpower.js
Normal file
@@ -0,0 +1,135 @@
|
||||
import request from '@/assets/js/utils/request'
|
||||
import getUrl from '@/assets/js/utils/get-url'
|
||||
|
||||
// 个人中心 - 查询接口
|
||||
export function getPersonalInfo(data) {
|
||||
return request({
|
||||
url: getUrl('/agent/personal/getInfo', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 人才库列表查询接口
|
||||
export function getAgentPersonnelList(data = {}) {
|
||||
return request({
|
||||
url: getUrl('/agent/personnel/queryList', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
// 人才库 - 新增人才
|
||||
export function saveAgentPersonnel(data) {
|
||||
return request({
|
||||
url: getUrl('/agent/personnel/saveOrUpdate', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
// 人才库 - 查询详情
|
||||
export function getAgentPersonnelDetail(data) {
|
||||
return request({
|
||||
url: getUrl('/agent/personnel/queryDetail', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
// 人才库 - 查询人才库列表 - 导航页
|
||||
export function getAgentPersonnelListFirst(data = {}) {
|
||||
return request({
|
||||
url: getUrl('/agent/personnel/queryListFirst', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 活动量统计周报
|
||||
export function queryWeekly(data) {
|
||||
return request({
|
||||
url: getUrl('/agent/activityRecord/queryWeekly', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 查询日志页面增员列表
|
||||
export function queryRecordList(data) {
|
||||
return request({
|
||||
url: getUrl('/agent/activityRecord/queryList', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 日志详情查询
|
||||
export function queryRecordDetail(data) {
|
||||
return request({
|
||||
url: getUrl('/agent/activityRecord/queryDetail', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 新增日志
|
||||
export function saveRecord(data) {
|
||||
return request({
|
||||
url: getUrl('/agent/activityRecord/saveOrUpdate', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function getTokenForUserModel(data = {}) {
|
||||
return request({
|
||||
url: getUrl('/agent/enter/getTokenForUserModel', 1),
|
||||
method: 'get',
|
||||
params: {
|
||||
data
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 新增分享记录
|
||||
export function saveShareRecord(data) {
|
||||
return request({
|
||||
url: getUrl('/agent/share/saveRecord', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 获取分享记录的key
|
||||
export function getShareKey(data) {
|
||||
return request({
|
||||
url: getUrl('/agent/share/getKey', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 根据问卷编码获取问卷详细信息
|
||||
export function answerDetail(data = {}) {
|
||||
return request({
|
||||
url: getUrl('/customer/answer/detailByQnCode', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
//DISC性格分析列表
|
||||
export function discAnalysisList(data) {
|
||||
return request({
|
||||
url: getUrl('/customer/answer/queryList', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 答卷提交接口
|
||||
export function answerSubmit(data) {
|
||||
return request({
|
||||
url: getUrl('/customer/answer/submit', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
75
src/api/ebiz/nbs/index.js
Normal file
@@ -0,0 +1,75 @@
|
||||
import request from '@/assets/js/utils/request'
|
||||
import getUrl from '@/assets/js/utils/get-url'
|
||||
|
||||
//事件列表
|
||||
export function getList(data) {
|
||||
return request({
|
||||
url: getUrl('/proposal/nbs/getProposalNbsList', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function saveForm(data) {
|
||||
return request({
|
||||
url: getUrl('/proposal/nbs/saveOrUpdateProposalNbs', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function delNbs(data) {
|
||||
return request({
|
||||
url: getUrl('/proposal/nbs/deleteProposalNbs', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function completeNbs(data) {
|
||||
return request({
|
||||
url: getUrl('/proposal/nbs/modifyProposalNbsState', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function nbsDetail(data) {
|
||||
return request({
|
||||
url: getUrl('/proposal/nbs/getProposalNbsDemo', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function nbsChart(data) {
|
||||
return request({
|
||||
url: getUrl('/proposal/nbs/getProposalNbsStatistics', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
export function nbsTable(data) {
|
||||
return request({
|
||||
url: getUrl('/proposal/nbs/getProposalNbsStatisticsDetail', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
//NBS智能分析报告生成PDF
|
||||
export function makePDF(data) {
|
||||
return request({
|
||||
url: getUrl('/proposal/nbs/getPdfInfo', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
//NBS客户清单列表pdf生成
|
||||
export function makeCustomerPDF(data) {
|
||||
return request({
|
||||
url: getUrl('/proposal/nbs/getProposalNbsStatisticsDetailDownLoad', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
@@ -61,7 +61,14 @@ export function getAuthCode(data) {
|
||||
data
|
||||
})
|
||||
}
|
||||
|
||||
// 验证验证码
|
||||
export function autchCodeCheck(data) {
|
||||
return request({
|
||||
url: getUrl('/customer/authcode/check', 1),
|
||||
method: 'post',
|
||||
data
|
||||
})
|
||||
}
|
||||
// 上传图片
|
||||
export function uploadImg(data) {
|
||||
return request({
|
||||
|
||||
BIN
src/assets/images/DISCbtn.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
src/assets/images/DISCtop.png
Normal file
|
After Width: | Height: | Size: 595 KiB |
BIN
src/assets/images/DISCtopBg.png
Normal file
|
After Width: | Height: | Size: 24 KiB |
BIN
src/assets/images/discBg.png
Normal file
|
After Width: | Height: | Size: 320 KiB |
BIN
src/assets/images/discResBorder.png
Normal file
|
After Width: | Height: | Size: 17 KiB |
BIN
src/assets/images/discResIcon.png
Normal file
|
After Width: | Height: | Size: 1.0 KiB |
BIN
src/assets/images/headerBg.png
Normal file
|
After Width: | Height: | Size: 91 KiB |
BIN
src/assets/images/nbs/chart.png
Normal file
|
After Width: | Height: | Size: 291 B |
BIN
src/assets/images/nbs/dot.png
Normal file
|
After Width: | Height: | Size: 675 B |
BIN
src/assets/images/nbs/empty.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
src/assets/images/nbs/nav.png
Normal file
|
After Width: | Height: | Size: 53 KiB |
BIN
src/assets/images/proposal/person_br.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
src/assets/images/proposal/person_ez.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
src/assets/images/proposal/person_fq.png
Normal file
|
After Width: | Height: | Size: 13 KiB |
BIN
src/assets/images/proposal/person_mq.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
src/assets/images/proposal/person_nr.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
src/assets/images/proposal/person_po.png
Normal file
|
After Width: | Height: | Size: 15 KiB |
BIN
src/assets/images/proposal/person_qt.png
Normal file
|
After Width: | Height: | Size: 5.9 KiB |
BIN
src/assets/images/proposal/proposal_add.png
Normal file
|
After Width: | Height: | Size: 670 B |
BIN
src/assets/images/proposal/proposal_bg.png
Normal file
|
After Width: | Height: | Size: 101 KiB |
BIN
src/assets/images/proposal/proposal_company.png
Normal file
|
After Width: | Height: | Size: 7.1 KiB |
BIN
src/assets/images/proposal/proposal_down.png
Normal file
|
After Width: | Height: | Size: 2.5 KiB |
BIN
src/assets/images/proposal/proposal_gfrs_logo.png
Normal file
|
After Width: | Height: | Size: 49 KiB |
BIN
src/assets/images/proposal/proposal_lessen.png
Normal file
|
After Width: | Height: | Size: 605 B |
BIN
src/assets/images/proposal/proposal_logo.png
Normal file
|
After Width: | Height: | Size: 16 KiB |
BIN
src/assets/images/proposal/proposal_open.png
Normal file
|
After Width: | Height: | Size: 55 KiB |
BIN
src/assets/images/proposal/proposal_pdf.png
Normal file
|
After Width: | Height: | Size: 7.5 KiB |
BIN
src/assets/images/proposal/proposal_select_down.png
Normal file
|
After Width: | Height: | Size: 287 B |
BIN
src/assets/images/proposal/proposal_share_bg.png
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
BIN
src/assets/images/share@2x.png
Normal file
|
After Width: | Height: | Size: 573 B |
@@ -512,7 +512,8 @@ export default {
|
||||
idNo: appntDTO.idNo,
|
||||
appntId: appntDTO.appntId,
|
||||
healthGrade: appntDTO.healthGrade,
|
||||
lifeGrade: appntDTO.lifeGrade
|
||||
lifeGrade: appntDTO.lifeGrade,
|
||||
mobile: appntDTO.mobile
|
||||
})
|
||||
|
||||
if (insuredDTO) {
|
||||
@@ -531,7 +532,8 @@ export default {
|
||||
insuredId: insuredDTO.insuredId,
|
||||
idNo: insuredDTO.idNo,
|
||||
healthGrade: insuredDTO.healthGrade,
|
||||
lifeGrade: insuredDTO.lifeGrade
|
||||
lifeGrade: insuredDTO.lifeGrade,
|
||||
mobile: insuredDTO.mobile
|
||||
})
|
||||
|
||||
let [chooseProductCodes, mainRiskCodes, addRiskCodes] = [[], [], []]
|
||||
|
||||
@@ -206,5 +206,18 @@ export default {
|
||||
isWeixin: ua.match(/MicroMessenger/i),
|
||||
isDC: ua.match(/guofulife/i) //app环境
|
||||
}
|
||||
},
|
||||
|
||||
deepCopy: function deepCopy(source) {
|
||||
let result
|
||||
if (Array.isArray(source)) {
|
||||
result = source.map(v => deepCopy(v))
|
||||
} else if (typeof source === 'object' && source !== null) {
|
||||
result = {}
|
||||
Object.keys(source).forEach(v => (result[v] = deepCopy(source[v])))
|
||||
} else {
|
||||
result = source
|
||||
}
|
||||
return result
|
||||
}
|
||||
}
|
||||
|
||||
@@ -165,19 +165,19 @@ export default {
|
||||
id: 6,
|
||||
text: '台湾居民来往大陆通行证'
|
||||
},
|
||||
{
|
||||
/* {
|
||||
id: 7,
|
||||
text: '其他',
|
||||
disabled: true
|
||||
}*/
|
||||
{
|
||||
id: 8,
|
||||
text: '外国人永久居留身份证'
|
||||
},
|
||||
{
|
||||
id: 9,
|
||||
text: '港澳台居民居住证'
|
||||
}
|
||||
// {
|
||||
// id: 8,
|
||||
// text: '外国人永久居留身份证'
|
||||
// },
|
||||
// {
|
||||
// id: 9,
|
||||
// text: '港澳台居民居住证'
|
||||
// }
|
||||
],
|
||||
//投保人证件类型
|
||||
insuredIdType: [
|
||||
@@ -207,19 +207,19 @@ export default {
|
||||
id: 6,
|
||||
text: '台湾居民来往大陆通行证'
|
||||
},
|
||||
{
|
||||
/* {
|
||||
id: 7,
|
||||
text: '其他',
|
||||
disabled: true
|
||||
}*/
|
||||
{
|
||||
id: 8,
|
||||
text: '外国人永久居留身份证'
|
||||
},
|
||||
{
|
||||
id: 9,
|
||||
text: '港澳台居民居住证'
|
||||
}
|
||||
// {
|
||||
// id: 8,
|
||||
// text: '外国人永久居留身份证'
|
||||
// },
|
||||
// {
|
||||
// id: 9,
|
||||
// text: '港澳台居民居住证'
|
||||
// }
|
||||
],
|
||||
//出生证明
|
||||
birthType: [
|
||||
@@ -253,7 +253,7 @@ export default {
|
||||
text: '其他'
|
||||
}
|
||||
],
|
||||
//投保人/被保人关系
|
||||
//投保人/被保险人关系
|
||||
relationToAppnt: [
|
||||
{
|
||||
id: 1,
|
||||
@@ -276,7 +276,7 @@ export default {
|
||||
text: '其他'
|
||||
}
|
||||
],
|
||||
//理赔报案投保人/被保人关系
|
||||
//理赔报案投保人/被保险人关系
|
||||
relationToAppnts: [
|
||||
{
|
||||
id: '00',
|
||||
@@ -751,7 +751,7 @@ export default {
|
||||
},
|
||||
{
|
||||
id: '36',
|
||||
text: '被保人保存成功'
|
||||
text: '被保险人保存成功'
|
||||
},
|
||||
{
|
||||
id: '37',
|
||||
@@ -911,6 +911,26 @@ export default {
|
||||
shortName: '万能险',
|
||||
name: '国富人寿鑫管家终身寿险(万能型)',
|
||||
code: 'GFRS_M0017'
|
||||
},
|
||||
{
|
||||
shortName: '医疗险',
|
||||
name: '国富人寿附加住院医疗保险(医疗型)',
|
||||
code: 'GFRS_A0004'
|
||||
},
|
||||
{
|
||||
shortName: '意外险',
|
||||
name: '国富人寿附加综合意外伤害保险(意外型)',
|
||||
code: 'GFRS_A0005'
|
||||
},
|
||||
{
|
||||
shortName: '重疾险',
|
||||
name: '国富人寿国富民安重大疾病保险(重疾型)',
|
||||
code: 'GFRS_M0018'
|
||||
},
|
||||
{
|
||||
shortName: '寿险',
|
||||
name: '国富人寿国富栋梁定期寿险',
|
||||
code: 'GFRS_M0020'
|
||||
}
|
||||
],
|
||||
// 职级
|
||||
@@ -2017,5 +2037,341 @@ export default {
|
||||
{ code: '01', value: '寿险' },
|
||||
{ code: '02', value: '重疾' },
|
||||
{ code: '03', value: '年金' }
|
||||
],
|
||||
// 活动量管理 - 人才库 - 状态
|
||||
talentPoolStatus: [
|
||||
{ id: 0, text: '暂不考虑' },
|
||||
{ id: 1, text: '已加盟' },
|
||||
{ id: 2, text: '确认加盟' },
|
||||
{ id: 3, text: '三次以上接触' },
|
||||
{ id: 4, text: '二次接触' },
|
||||
{ id: 5, text: '首次接触 ' }
|
||||
],
|
||||
// 活动量管理 - 人才库 - 过往职业
|
||||
talentPoolPastOccu: [
|
||||
{ id: '001', text: '一般内勤职员' },
|
||||
{ id: '002', text: '其他金融行业' },
|
||||
{ id: '003', text: '家庭主妇' },
|
||||
{ id: '004', text: '自由职业' },
|
||||
{ id: '005', text: '离退休人员' },
|
||||
{ id: '006', text: '个体经营者' },
|
||||
{ id: '007', text: '销售' },
|
||||
{ id: '008', text: '公务员' },
|
||||
{ id: '011', text: '其他' }
|
||||
],
|
||||
// 利益演示单位
|
||||
productRateUnit: [
|
||||
{
|
||||
code: 'years',
|
||||
label: ''
|
||||
},
|
||||
{
|
||||
code: 'currentAge',
|
||||
label: '岁'
|
||||
},
|
||||
{
|
||||
code: 'currentPremium',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'totalPremium',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'majorDiseaseInsurance',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'majorDiseaseInsurance2',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'mildillnessInsurance',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'deathInsurance',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'deathInsurance_L',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'deathInsurance_M',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'deathInsurance_H',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'highDisabilityExemptionPremium',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'deathExemptionPremium',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'accidentalDeathInsurance',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'accidentalDisabilityInsurance',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'medicalInsuranceForAccidentalInjury',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'incidentalInjuryHospitalizationAllowanceInsurance',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'insurancePremiumForBedsInHospital',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'inpatientSurgeryInsurance',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'inpatientCancerRadiotherapyAndChemotherapyExpensesInsurance',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'insuranceForOtherHospitalizationExpenses',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'insuranceForSpecificCardiovascularAndCerebrovascularDiseases',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'insuranceForCertainCardiovascularAndCerebrovascularMajorDiseases',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'cashValue',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'survival',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'survival_T',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'totalSurvival',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'expireSurvival',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'birthdayGold',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'middleDiseaseInsurance',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'appntADDCExemptionPremium',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'majorMiddleMildDiseaseInsuranceExemptionPremium',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'majorTMiddleMildDiseaseInsuranceExemptionPremium',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'survival_L',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'survival_M',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'survival_H',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'seneralMedicalInsurance',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'malignantTumorMedicalInsurance',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'malignantTumorInsurance',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'specificMalignantTumorCareFor',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'strokeSequelaInsurance',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'highSchoolEducationFund',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'universityEducationFund',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'entrepreneurshipGold',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'marriageGold',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'theInitialCost',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'continueToReward',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'policyAccountValue_L',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'policyAccountValue_M',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'policyAccountValue_H',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'enterPolicyAccountValue',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'endowmentAnnuity_years',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'endowmentAnnuity_month',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'endowmentAnnuity_L',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'endowmentAnnuity_M',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'endowmentAnnuity_H',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'pensionPaymentDate',
|
||||
label: ''
|
||||
},
|
||||
{
|
||||
code: 'theCumulativeEndowmentAnnuity_L',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'theCumulativeEndowmentAnnuity_M',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'theCumulativeEndowmentAnnuity_H',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'cashValueFormula_L',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'cashValueFormula_M',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'cashValueFormula_H',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'thePremium',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'terminalIllnessBenefits',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'years',
|
||||
label: ''
|
||||
},
|
||||
{
|
||||
code: 'transport_A',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'transport_B',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'transport_C',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'transport_D',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'transport_F',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'totalSuvInterest_L',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'totalSuvInterest_M',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'totalSuvInterest_H',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'remitPremRate',
|
||||
label: ''
|
||||
},
|
||||
{
|
||||
code: 'inpatientCare',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'hospitalizationBenefit',
|
||||
label: '元'
|
||||
},
|
||||
{
|
||||
code: 'malignantTumor',
|
||||
label: '元'
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -62,7 +62,10 @@ let survey = [
|
||||
//'/customer/question/getTableId', // id 查询 -- ok
|
||||
'/customer/question/getAgentInfo' // 代理人详情
|
||||
]
|
||||
let whiteList = ['/customer/agent/getCustomersList', ...proposal, ...sale, ...agentEnter, ...claims, ...survey]
|
||||
let manpower = [
|
||||
'/customer/answer/queryList' //DISC性格分析
|
||||
]
|
||||
let whiteList = ['/customer/agent/getCustomersList', ...proposal, ...sale, ...agentEnter, ...claims, ...survey, ...manpower]
|
||||
|
||||
// 创建axios实例
|
||||
const service = axios.create({
|
||||
|
||||
@@ -90,7 +90,16 @@ Validator.extend('age', {
|
||||
return value > 17 && /^\d{1,3}$/.test(value)
|
||||
}
|
||||
})
|
||||
//被保人年龄(不得小于18周岁)
|
||||
|
||||
//年龄
|
||||
Validator.extend('maxAge', {
|
||||
getMessage: () => '年龄不得大于100周岁',
|
||||
validate: value => {
|
||||
return value <= 100 && /^\d{1,3}$/.test(value)
|
||||
}
|
||||
})
|
||||
|
||||
//被保险人年龄(不得小于18周岁)
|
||||
Validator.extend('appntAge', {
|
||||
getMessage: () => '年龄不得小于18周岁',
|
||||
validate: value => {
|
||||
@@ -169,3 +178,34 @@ Validator.extend('avoirdupois', {
|
||||
return /^[0-9]+([.]{1}[0-9]{1})?$/.test(value) && value > 0.1
|
||||
}
|
||||
})
|
||||
|
||||
//同业公司
|
||||
Validator.extend('sameCompany', {
|
||||
getMessage: () => '同业公司长度不超过120个字符,不支持特殊字符',
|
||||
validate: value => {
|
||||
return /^[0-9a-zA-Z\.\s\u4e00-\u9fa5]{1,120}$/.test(value)
|
||||
}
|
||||
})
|
||||
//从业年限
|
||||
Validator.extend('workYears', {
|
||||
getMessage: () => '从业年限仅支持阿拉伯数字,最多精确到一位小数',
|
||||
validate: value => {
|
||||
return /^[0-9]+([.]{1}[0-9]{1})?$/.test(value) && value > 0
|
||||
}
|
||||
})
|
||||
//最大长度120字符
|
||||
Validator.extend('max120', {
|
||||
getMessage: () => '输入内容不得超过120哥字符',
|
||||
validate: value => {
|
||||
return value.length < 121
|
||||
}
|
||||
})
|
||||
|
||||
//名字
|
||||
Validator.extend('manpowerName', {
|
||||
getMessage: () => '请输入正确的姓名',
|
||||
validate: value => {
|
||||
// return /^[\u4e00-\u9fa5·]{1,15}$/.test(value)
|
||||
return /^[a-zA-Z\.\s\u4e00-\u9fa5]{2,120}$/.test(value)
|
||||
}
|
||||
})
|
||||
|
||||
29
src/assets/sass/nbs.scss
Normal file
@@ -0,0 +1,29 @@
|
||||
@mixin container {
|
||||
box-sizing: border-box;
|
||||
min-height: 100vh;
|
||||
padding-bottom: 50px;
|
||||
background: #fff;
|
||||
}
|
||||
.nbs-del,
|
||||
.nbs-add {
|
||||
height: 32px;
|
||||
width: 347px;
|
||||
margin: 10px auto 0 auto;
|
||||
line-height: 32px;
|
||||
}
|
||||
.nbs-del {
|
||||
border: 1px solid #f2f2f2;
|
||||
background-color: #f2f2f2;
|
||||
font-size: 20px;
|
||||
text-align: right;
|
||||
/deep/ i {
|
||||
position: relative;
|
||||
top: 6px;
|
||||
right: 5px;
|
||||
}
|
||||
}
|
||||
.nbs-add {
|
||||
border: 1px solid #e3e3e3;
|
||||
text-align: center;
|
||||
font-size: 14px;
|
||||
}
|
||||
@@ -29,6 +29,12 @@ export default {
|
||||
return new Date('2040-12-31')
|
||||
}
|
||||
},
|
||||
minDate: {
|
||||
type: Date,
|
||||
default: () => {
|
||||
return new Date('1900-01-01')
|
||||
}
|
||||
},
|
||||
disabled: {
|
||||
type: Boolean,
|
||||
default: false
|
||||
@@ -77,8 +83,8 @@ export default {
|
||||
currentDate: beforeDate.getBeforeYear(30), //当前时间的30年前
|
||||
showDataPicker: false,
|
||||
data: '', //时间插件绑定的值
|
||||
date: '', //field显示的值
|
||||
minDate: new Date('1900-01-01') //因为VANT组件默认是十年前
|
||||
date: '' //field显示的值
|
||||
//minDate: new Date('1900-01-01') //因为VANT组件默认是十年前
|
||||
}
|
||||
},
|
||||
components: {
|
||||
|
||||
67
src/components/ebiz/manpower/ActivityLogItem.vue
Normal file
@@ -0,0 +1,67 @@
|
||||
<template>
|
||||
<div>
|
||||
<van-cell-group>
|
||||
<van-cell :title="ActivityLogInfo.name" title-class="ml10" :is-link="isEdit" value-class="text-left" @click="toEdit">
|
||||
<van-icon slot="icon" :name="ActivityLogInfo.avatarUrl || defaultAcatarUrl" style="line-height: inherit;" size="22" />
|
||||
<span class="mr20">{{ ActivityLogInfo.age }}岁</span>
|
||||
<span>{{ ActivityLogInfo.type == 0 ? '同业' : '白板' }}</span>
|
||||
<van-icon slot="right-icon" name="edit" style="line-height: inherit;" :color="isEdit ? '#ee0a24' : 'transparent'" size="24" />
|
||||
</van-cell>
|
||||
</van-cell-group>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import formatDate from '@/assets/js/utils/date-utils'
|
||||
import { Cell, CellGroup, Image } from 'vant'
|
||||
|
||||
export default {
|
||||
components: {
|
||||
[Cell.name]: Cell,
|
||||
[CellGroup.name]: CellGroup,
|
||||
[Image.name]: Image
|
||||
},
|
||||
props: {
|
||||
ActivityLogInfo: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: () => {
|
||||
return {
|
||||
recordCode: '',
|
||||
name: '王辉',
|
||||
// avatarUrl: 'https://img.yzcdn.cn/vant/cat.jpeg',
|
||||
age: '35岁',
|
||||
type: '同业',
|
||||
recordDate: ''
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
defaultAcatarUrl: 'https://b.yzcdn.cn/vant/icon-demo-1126.png'
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
toEdit() {
|
||||
this.$jump({
|
||||
flag: 'h5',
|
||||
extra: {
|
||||
url: location.origin + `/#/manpower/ActivityLog/Edit?code=${this.ActivityLogInfo.recordCode}&isEdit=${this.isEdit ? '0' : '1'}`,
|
||||
forbidSwipeBack: '1',
|
||||
needRefresh: '1'
|
||||
},
|
||||
routerInfo: { path: `/manpower/ActivityLog/Edit?code=${this.ActivityLogInfo.recordCode}&isEdit=${this.isEdit ? '0' : '1'}` }
|
||||
})
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
isEdit() {
|
||||
if (this.ActivityLogInfo.recordDate === formatDate.formatDate().split(' ')[0]) {
|
||||
return true
|
||||
} else {
|
||||
return false
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
74
src/components/ebiz/manpower/NavItem.vue
Normal file
@@ -0,0 +1,74 @@
|
||||
<!-- 导航 元素 -->
|
||||
<template>
|
||||
<!-- <div class="nav-item"> -->
|
||||
<van-cell is-link class="relative" @click="rout(config)">
|
||||
<template slot="title">
|
||||
<van-icon v-if="config.icon" color="#ee0a24" class="t-cell-icon" size="6.4vw" :name="config.icon" />
|
||||
<img v-else class="t-cell-icon" :src="config.src" alt="config" />
|
||||
<span class="custom-title c-gray-base"> {{ config.title }}</span>
|
||||
</template>
|
||||
</van-cell>
|
||||
<!-- </div> -->
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Cell } from 'vant'
|
||||
export default {
|
||||
name: 'NavItem',
|
||||
components: {
|
||||
[Cell.name]: Cell
|
||||
},
|
||||
props: {
|
||||
config: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: function() {
|
||||
return {
|
||||
title: '默认title',
|
||||
path: '/404',
|
||||
src: 'http://localhost:8080/favicon.ico'
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {}
|
||||
},
|
||||
created() {},
|
||||
methods: {
|
||||
rout(config) {
|
||||
if (!config.share) {
|
||||
let path = config.path
|
||||
this.$jump({
|
||||
flag: 'h5',
|
||||
extra: {
|
||||
url: location.origin + `/#${path}`,
|
||||
needRefresh: '1'
|
||||
},
|
||||
routerInfo: { path: path }
|
||||
})
|
||||
} else {
|
||||
// eslint-disable-next-line no-undef
|
||||
EWebBridge.webCallAppInJs('bridge', {
|
||||
flag: 'share',
|
||||
extra: config.shareConfig
|
||||
})
|
||||
// weixinShare(config.shareConfig)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
// .nav-item {
|
||||
.t-cell-icon {
|
||||
position: absolute;
|
||||
width: 6.4vw;
|
||||
height: 6.4vw;
|
||||
}
|
||||
.custom-title {
|
||||
margin-left: 8.4vw;
|
||||
}
|
||||
// }
|
||||
</style>
|
||||
52
src/components/ebiz/manpower/TalentPoolItem.vue
Normal file
@@ -0,0 +1,52 @@
|
||||
<template>
|
||||
<van-cell :title="talentPoolInfo.name" title-class="ml10" is-link value-class="text-left" @click="edit(talentPoolInfo.personnelCode)">
|
||||
<van-icon slot="icon" :name="talentPoolInfo.avatarUrl || defaultAcatarUrl" style="line-height: inherit;" size="24" />
|
||||
<span>{{ talentPoolInfo.sameCompany }}</span>
|
||||
<van-icon slot="right-icon" name="edit" style="line-height: inherit;" color="#ee0a24" size="24" />
|
||||
</van-cell>
|
||||
</template>
|
||||
<script>
|
||||
import { Cell, CellGroup, Image } from 'vant'
|
||||
|
||||
export default {
|
||||
components: {
|
||||
[Cell.name]: Cell,
|
||||
[CellGroup.name]: CellGroup,
|
||||
[Image.name]: Image
|
||||
},
|
||||
props: {
|
||||
talentPoolInfo: {
|
||||
type: Object,
|
||||
required: true,
|
||||
default: () => {
|
||||
return {
|
||||
name: '王辉',
|
||||
sameCompany: '中国人寿'
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
defaultAcatarUrl: 'https://b.yzcdn.cn/vant/icon-demo-1126.png'
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
edit(personnelCode) {
|
||||
if (personnelCode) {
|
||||
localStorage.setItem('personnelCode', personnelCode)
|
||||
this.$jump({
|
||||
flag: 'h5',
|
||||
extra: {
|
||||
url: location.origin + '/#/manpower/talentPool/Edit',
|
||||
needRefresh: '1'
|
||||
},
|
||||
routerInfo: {
|
||||
path: '/manpower/talentPool/Edit'
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
64
src/components/ebiz/manpower/UserInfoHeader.vue
Normal file
@@ -0,0 +1,64 @@
|
||||
<!-- 头部用户信息 -->
|
||||
<template>
|
||||
<div class="user-info flex p15 bg-head align-items-e">
|
||||
<img class="w40" src="../../../assets/images/bnf_avatar.png" />
|
||||
<div class="add-list flex1 ml10">
|
||||
<p class="fs16 font-bold">{{ userInfo.name }}</p>
|
||||
<div class="">工号 | {{ userInfo.jobNo }}</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getAgentInfo } from '@/api/ebiz/my/my.js'
|
||||
export default {
|
||||
name: 'UserInfoHeader',
|
||||
data() {
|
||||
return {
|
||||
userInfo: '', // 代理人信息
|
||||
activeNames: ['1']
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getInfo()
|
||||
},
|
||||
methods: {
|
||||
async getInfo() {
|
||||
// 获取代理人信息
|
||||
let userInfo = localStorage.getItem('userInfo')
|
||||
if (userInfo) {
|
||||
this.userInfo = JSON.parse(userInfo)
|
||||
} else {
|
||||
const res = await getAgentInfo({})
|
||||
if (res.result == 0) {
|
||||
this.userInfo = res
|
||||
localStorage.setItem('agentCode', res.jobNo)
|
||||
localStorage.setItem('userInfo', JSON.stringify(res))
|
||||
} else {
|
||||
this.$toast(res.resultMessage)
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
components: {}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.user-info {
|
||||
background-image: url('~@/assets/images/headerBg.png');
|
||||
background-size: cover;
|
||||
color: white;
|
||||
height: 80px;
|
||||
|
||||
.send-main {
|
||||
border-bottom: 10px solid #f5f5f5;
|
||||
}
|
||||
.add-list {
|
||||
line-height: 22px;
|
||||
}
|
||||
.font-bold {
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
@@ -46,7 +46,7 @@ export default {
|
||||
// imgfront: this.$assetsUrl + 'images/u6071.png',
|
||||
// 是否可以点击完成
|
||||
isDisabled: true,
|
||||
// 是投保人还是被保人扫描 0是投保人 1是被保人
|
||||
// 是投保人还是被保险人扫描 0是投保人 1是被保险人
|
||||
// cardScanningType: '',
|
||||
// 是否成功扫描
|
||||
state: ''
|
||||
|
||||
@@ -74,7 +74,7 @@ export default {
|
||||
imgBack: this.$assetsUrl + 'images/idCardBack.png',
|
||||
// 相机图片
|
||||
srcCamera: this.$assetsUrl + 'images/camera_copy.png',
|
||||
// 是否是投保人还是被保人扫描
|
||||
// 是否是投保人还是被保险人扫描
|
||||
scanFromInsured: '',
|
||||
state: '',
|
||||
stateBack: '',
|
||||
|
||||
@@ -65,6 +65,14 @@ export default {
|
||||
this.$refs.file.dispatchEvent(new MouseEvent('click'))
|
||||
},
|
||||
addImg(e) {
|
||||
this.$toast.loading({
|
||||
// 持续展示 toast
|
||||
duration: 0,
|
||||
// 禁用背景点击s
|
||||
forbidClick: true,
|
||||
loadingType: 'spinner',
|
||||
message: '加载中……'
|
||||
})
|
||||
let that = this
|
||||
this.file = this.$refs.file.files[0]
|
||||
var reader = new FileReader()
|
||||
|
||||
@@ -11,7 +11,7 @@ let apiDomain, imgDomain, assetsUrl, mainUrl, payUrl, zssqUrl // 保融支付的
|
||||
console.log('环境:', process.env.VUE_APP_FLAG)
|
||||
switch (process.env.VUE_APP_FLAG) {
|
||||
case 'dev':
|
||||
apiDomain = 'http://139.199.50.151:7000/api/v1' // 国富api
|
||||
apiDomain = 'http://139.199.50.151:7000/api/v1' // 国富api ///api/v1
|
||||
imgDomain = 'http://211.159.248.123:7012/updown' // dev
|
||||
// 静态服务资源
|
||||
assetsUrl = 'http://139.199.50.151:8000/app/'
|
||||
|
||||
17
src/config/manpower.js
Normal file
@@ -0,0 +1,17 @@
|
||||
// 人力发展
|
||||
|
||||
let mockBaseUrl = 'http://rap2api.taobao.org/app/mock/247074'
|
||||
export default {
|
||||
// 例子
|
||||
'/demo/url': mockBaseUrl + '/demo/url',
|
||||
// 查询日志统计周报
|
||||
'/agent/activityRecord/queryWeekly': mockBaseUrl + '/agent/activityRecord/queryWeekly',
|
||||
// 查询日志页面人才库列表
|
||||
'/agent/personnel/queryListFirst': mockBaseUrl + '/agent/personnel/queryListFirst',
|
||||
// 查询日志页面增员列表
|
||||
'/agent/activityRecord/queryList': mockBaseUrl + '/agent/activityRecord/queryList',
|
||||
// 日志详情查询
|
||||
'/agent/activityRecord/queryDetail': mockBaseUrl + '/agent/activityRecord/queryDetail',
|
||||
// 新增日志
|
||||
'/agent/activityRecord/saveOrUpdate': mockBaseUrl + '/agent/activityRecord/saveOrUpdate'
|
||||
}
|
||||
@@ -11,6 +11,7 @@ import product from './product'
|
||||
import serve from './serve'
|
||||
import common from './common'
|
||||
import survey from './survey'
|
||||
import manpower from './manpower'
|
||||
const mockBaseUrl = 'http://rap2api.taobao.org/app/mock'
|
||||
|
||||
let baseObj = {
|
||||
@@ -18,6 +19,6 @@ let baseObj = {
|
||||
'/user/info': mockBaseUrl + '/223948/info',
|
||||
'/user/logout': mockBaseUrl + '/223948/logout'
|
||||
}
|
||||
Object.assign(baseObj, proposal, sale, customer, my, product, serve, common, survey)
|
||||
Object.assign(baseObj, proposal, sale, customer, my, product, serve, common, survey, manpower)
|
||||
|
||||
export default baseObj
|
||||
|
||||
@@ -133,6 +133,11 @@ export default {
|
||||
// }
|
||||
|
||||
// return str
|
||||
|
||||
//摘自国富群:这个在报文转换的时候,核心返回“—”的时候,直接返回空。 @于维琦(于维琦) 前端如果保额为空,直接展示“—”@皮伟(皮伟) 你跟她碰一下怎么改
|
||||
if (moneyStr === null) {
|
||||
return '—'
|
||||
}
|
||||
let str = ''
|
||||
if (flag) {
|
||||
str = (moneyStr + '').replace(/\d{1,3}(?=(\d{3})+$)/g, '$&,')
|
||||
|
||||
@@ -11,4 +11,6 @@ import milestone from './milestone'
|
||||
import poster from './poster'
|
||||
import report from './report'
|
||||
import survey from './survey'
|
||||
export default [...proposal, ...sale, ...customer, ...my, ...serve, ...common, ...product, ...agentEenter, ...milestone, ...poster, ...report, ...survey] //根据需要进行删减
|
||||
import nbs from './nbs'
|
||||
import manpower from './manpower'
|
||||
export default [...proposal, ...sale, ...customer, ...my, ...serve, ...common, ...product, ...agentEenter, ...milestone, ...poster, ...report, ...survey, ...nbs, ...manpower] //根据需要进行删减
|
||||
|
||||
198
src/router/ebiz/manpower.js
Normal file
@@ -0,0 +1,198 @@
|
||||
//人力发展 定义相关组件
|
||||
|
||||
const Navigation = () => import('@/views/ebiz/manpower/Navigation')
|
||||
const PersonalCenter = () => import('@/views/ebiz/manpower/PersonalCenter')
|
||||
|
||||
const IncreaseStaffTools = () => import('@/views/ebiz/manpower/IncreaseStaffTools')
|
||||
const CompanyIntroduction = () => import('@/views/ebiz/manpower/increaseStaffTools/CompanyIntroduction')
|
||||
const PolicyOptions = () => import('@/views/ebiz/manpower/increaseStaffTools/PolicyOptions')
|
||||
const PolicyOptionsPdfShare = () => import('@/views/ebiz/manpower/increaseStaffTools/PdfShare')
|
||||
|
||||
const Training = () => import('@/views/ebiz/manpower/Training')
|
||||
|
||||
const ActiveManagement = () => import('@/views/ebiz/manpower/ActiveManagement')
|
||||
|
||||
const TalentPoolList = () => import('@/views/ebiz/manpower/talentPool/List')
|
||||
const TalentPoolAdd = () => import('@/views/ebiz/manpower/talentPool/Add')
|
||||
const TalentPoolEdit = () => import('@/views/ebiz/manpower/talentPool/Edit')
|
||||
|
||||
const ActivityLogList = () => import('@/views/ebiz/manpower/activityLog/List')
|
||||
const ActivityLogEdit = () => import('@/views/ebiz/manpower/activityLog/Edit')
|
||||
|
||||
const DiscAnalysisList = () => import('@/views/ebiz/manpower/discAnalysis/List')
|
||||
const DiscAnalysisQuestion = () => import('@/views/ebiz/manpower/discAnalysis/Question')
|
||||
const DiscAnalysisResult = () => import('@/views/ebiz/manpower/discAnalysis/Result')
|
||||
const DiscAnalysisShare = () => import('@/views/ebiz/manpower/discAnalysis/Share')
|
||||
|
||||
export default [
|
||||
{
|
||||
// 人力发展
|
||||
path: '/manpower/Navigation',
|
||||
name: 'Navigation',
|
||||
component: Navigation,
|
||||
meta: {
|
||||
title: '人力发展',
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
// 个人中心
|
||||
path: '/manpower/PersonalCenter',
|
||||
name: 'PersonalCenter',
|
||||
component: PersonalCenter,
|
||||
meta: {
|
||||
title: '人力发展',
|
||||
index: 2
|
||||
}
|
||||
},
|
||||
{
|
||||
// 增员工具
|
||||
path: '/manpower/IncreaseStaffTools',
|
||||
name: 'IncreaseStaffTools',
|
||||
component: IncreaseStaffTools,
|
||||
meta: {
|
||||
title: '增员工具',
|
||||
index: 3
|
||||
}
|
||||
},
|
||||
{
|
||||
// 公司介绍
|
||||
path: '/manpower/increaseStaffTools/CompanyIntroduction',
|
||||
name: 'CompanyIntroduction',
|
||||
component: CompanyIntroduction,
|
||||
meta: {
|
||||
title: '公司介绍',
|
||||
index: 100
|
||||
}
|
||||
},
|
||||
{
|
||||
// 政策方案
|
||||
path: '/manpower/increaseStaffTools/PolicyOptions',
|
||||
name: 'PolicyOptions',
|
||||
component: PolicyOptions,
|
||||
meta: {
|
||||
title: '政策方案',
|
||||
index: 100
|
||||
}
|
||||
},
|
||||
{
|
||||
// 政策方案展示Pdf
|
||||
path: '/manpower/increaseStaffTools/PdfShare',
|
||||
name: 'PolicyOptionsPdfShare',
|
||||
component: PolicyOptionsPdfShare,
|
||||
meta: {
|
||||
title: '政策方案',
|
||||
index: 100
|
||||
}
|
||||
},
|
||||
{
|
||||
// 培训上岗
|
||||
path: '/manpower/Training',
|
||||
name: 'Training',
|
||||
component: Training,
|
||||
meta: {
|
||||
title: '培训上岗',
|
||||
index: 100
|
||||
}
|
||||
},
|
||||
{
|
||||
// 活动量管理
|
||||
path: '/manpower/ActiveManagement',
|
||||
name: 'ActiveManagement',
|
||||
component: ActiveManagement,
|
||||
meta: {
|
||||
title: '活动量管理',
|
||||
index: 100
|
||||
}
|
||||
},
|
||||
{
|
||||
// 人才库
|
||||
path: '/manpower/TalentPool/',
|
||||
name: 'TalentPoolList',
|
||||
component: TalentPoolList,
|
||||
meta: {
|
||||
title: '人才库',
|
||||
index: 101
|
||||
}
|
||||
},
|
||||
{
|
||||
// 人才库-新增人才
|
||||
path: '/manpower/TalentPool/Add',
|
||||
name: 'TalentPoolAdd',
|
||||
component: TalentPoolAdd,
|
||||
meta: {
|
||||
title: '基本信息',
|
||||
index: 102
|
||||
}
|
||||
},
|
||||
{
|
||||
// 人才库-修改人才
|
||||
path: '/manpower/TalentPool/Edit',
|
||||
name: 'TalentPoolEdit',
|
||||
component: TalentPoolEdit,
|
||||
meta: {
|
||||
title: '基本信息',
|
||||
index: 103
|
||||
}
|
||||
},
|
||||
{
|
||||
// 当日增员活动日志
|
||||
path: '/manpower/ActivityLog/List',
|
||||
name: 'ActivityLogList',
|
||||
component: ActivityLogList,
|
||||
meta: {
|
||||
title: '当日增员活动日志',
|
||||
index: 100
|
||||
}
|
||||
},
|
||||
{
|
||||
// 日志详情
|
||||
path: '/manpower/ActivityLog/Edit',
|
||||
name: 'ActivityLogEdit',
|
||||
component: ActivityLogEdit,
|
||||
meta: {
|
||||
title: '日志详情',
|
||||
index: 100
|
||||
}
|
||||
},
|
||||
{
|
||||
// DISC性格分析
|
||||
path: '/manpower/DiscAnalysis/List',
|
||||
name: 'DiscAnalysisList',
|
||||
component: DiscAnalysisList,
|
||||
meta: {
|
||||
title: 'DISC性格分析',
|
||||
index: 200
|
||||
}
|
||||
},
|
||||
{
|
||||
// DISC性格分析结果
|
||||
path: '/manpower/DiscAnalysis/Result',
|
||||
name: 'DiscAnalysisResult',
|
||||
component: DiscAnalysisResult,
|
||||
meta: {
|
||||
title: 'DISC性格分析结果',
|
||||
index: 201
|
||||
}
|
||||
},
|
||||
{
|
||||
// DISC性格分析 分享
|
||||
path: '/manpower/DiscAnalysis/Share',
|
||||
name: 'DiscAnalysisShare',
|
||||
component: DiscAnalysisShare,
|
||||
meta: {
|
||||
title: 'DISC性格分析',
|
||||
index: 202
|
||||
}
|
||||
},
|
||||
{
|
||||
// DISC性格分析结果 -做题
|
||||
path: '/manpower/DiscAnalysis/Question',
|
||||
name: 'DiscAnalysisQuestion',
|
||||
component: DiscAnalysisQuestion,
|
||||
meta: {
|
||||
title: 'DISC性格分析',
|
||||
index: 203
|
||||
}
|
||||
}
|
||||
]
|
||||
102
src/router/ebiz/nbs.js
Normal file
@@ -0,0 +1,102 @@
|
||||
let nbsList = () => import('@/views/ebiz/nbs/List')
|
||||
let nbsNav = () => import('@/views/ebiz/nbs/Nav')
|
||||
let nbsChart = () => import('@/views/ebiz/nbs/Chart')
|
||||
let nbsResult = () => import('@/views/ebiz/nbs/Result')
|
||||
let nbsCrewList = () => import('@/views/ebiz/nbs/CrewList')
|
||||
let nbsBase = () => import('@/views/ebiz/nbs/Base')
|
||||
let nbsNecessary = () => import('@/views/ebiz/nbs/Necessary')
|
||||
let nbsPrepared = () => import('@/views/ebiz/nbs/Prepared')
|
||||
let nbsDetail = () => import('@/views/ebiz/nbs/Detail')
|
||||
let nbsPDF = () => import('@/views/ebiz/nbs/PDF')
|
||||
export default [
|
||||
{
|
||||
path: '/nbs/list',
|
||||
name: 'nbsList',
|
||||
component: nbsList,
|
||||
meta: {
|
||||
title: 'NBS智能分析',
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/nbs/nav/:id?',
|
||||
name: 'nbsNav',
|
||||
component: nbsNav,
|
||||
meta: {
|
||||
title: 'NBS智能分析',
|
||||
index: 2
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/nbs/chart',
|
||||
name: 'nbsChart',
|
||||
component: nbsChart,
|
||||
meta: {
|
||||
title: 'NBS智能分析统计',
|
||||
index: 3
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/nbs/result/:id/:half/:nbsState',
|
||||
name: 'nbsResult',
|
||||
component: nbsResult,
|
||||
meta: {
|
||||
title: 'NBS智能分析结果',
|
||||
index: 4
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/nbs/crew-list/:code',
|
||||
name: 'nbsCrewList',
|
||||
component: nbsCrewList,
|
||||
meta: {
|
||||
title: '客户清单',
|
||||
index: 5
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/nbs/base',
|
||||
name: 'nbsBase',
|
||||
component: nbsBase,
|
||||
meta: {
|
||||
title: '基本资料',
|
||||
index: 6
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/nbs/necessary',
|
||||
name: 'nbsNecessary',
|
||||
component: nbsNecessary,
|
||||
meta: {
|
||||
title: '应备费用',
|
||||
index: 7
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/nbs/prepared',
|
||||
name: 'nbsPrepared',
|
||||
component: nbsPrepared,
|
||||
meta: {
|
||||
title: '已备费用',
|
||||
index: 8
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/nbs/detail/:id/:state',
|
||||
name: 'nbsDetail',
|
||||
component: nbsDetail,
|
||||
meta: {
|
||||
title: '资料',
|
||||
index: 9
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/nbs/pdf/:content',
|
||||
name: 'nbsPDF',
|
||||
component: nbsPDF,
|
||||
meta: {
|
||||
title: 'NBS智能分析报告',
|
||||
index: 10
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -6,7 +6,8 @@ const insuredPerson = () => import('@/views/ebiz/proposal/InsuredPerson')
|
||||
const exhibition = () => import('@/views/ebiz/proposal/Exhibition')
|
||||
const companyProfile = () => import('@/views/ebiz/proposal/CompanyProfile')
|
||||
const pdf = () => import('@/views/ebiz/proposal/PDF')
|
||||
|
||||
const proposalInfo = () => import('@/views/ebiz/proposal/ProposalInfo')
|
||||
const caluePdf = () => import('@/views/ebiz/proposal/CaluePDF')
|
||||
export default [
|
||||
{
|
||||
path: '/proposal/list',
|
||||
@@ -31,7 +32,7 @@ export default [
|
||||
name: 'ChooseInsuredPerson',
|
||||
component: chooseInsuredPerson,
|
||||
meta: {
|
||||
title: '选择被保人'
|
||||
title: '选择被保险人'
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -43,13 +44,21 @@ export default [
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
path: '/proposal/proposalInfo',
|
||||
name: 'proposalInfo',
|
||||
component: proposalInfo,
|
||||
meta: {
|
||||
title: '建议书预览',
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/proposal/insuredPerson',
|
||||
name: 'InsuredPerson',
|
||||
component: insuredPerson,
|
||||
meta: {
|
||||
title: '被保人信息',
|
||||
title: '被保险人信息',
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
@@ -68,5 +77,13 @@ export default [
|
||||
meta: {
|
||||
title: 'PDF预览'
|
||||
}
|
||||
},
|
||||
{
|
||||
path: '/proposal/caluePdf',
|
||||
name: 'caluePdf',
|
||||
component: caluePdf,
|
||||
meta: {
|
||||
title: '条款PDF查看'
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
@@ -59,7 +59,7 @@ export default [
|
||||
name: 'insuredPerson',
|
||||
component: insuredPerson,
|
||||
meta: {
|
||||
title: '被保人信息',
|
||||
title: '被保险人信息',
|
||||
index: 1
|
||||
}
|
||||
},
|
||||
|
||||
@@ -10,13 +10,13 @@ export default new Vuex.Store({
|
||||
app
|
||||
},
|
||||
state: {
|
||||
pageFlag: '', //理赔申请-区分被保人/申请人页面flag
|
||||
pageFlag: '', //理赔申请-区分被保险人/申请人页面flag
|
||||
agentEnterApplyMobil: '', //自助入司-新的被增员人填好的基础信息里的电话号码
|
||||
agentEnterApplyIdNo: '', //自助入司-新的被增员人填好的基础信息里的证件号码
|
||||
refusalCause: '' //自助入司-查看审批流程-审批拒绝的原因
|
||||
},
|
||||
mutations: {
|
||||
//更新 理赔申请-区分被保人/申请人页面flag
|
||||
//更新 理赔申请-区分被保险人/申请人页面flag
|
||||
updatePageFlag(state, val) {
|
||||
state.pageFlag = val
|
||||
},
|
||||
|
||||
@@ -28,6 +28,8 @@
|
||||
<li><router-link to="/agentEenter/agentEenterBasicInfor">自助入司</router-link></li>
|
||||
<li><router-link to="/agentEenter/approve/ApproveList">入司审批列表</router-link></li>
|
||||
<li><router-link to="/survey/surveyList">问卷调查</router-link></li>
|
||||
<li><router-link to="/nbs/list">nbs列表</router-link></li>
|
||||
<li><router-link to="/manpower/DiscAnalysis/List">DISC性格分析</router-link></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
@@ -151,7 +151,7 @@ export default {
|
||||
index: '-1'
|
||||
},
|
||||
routerInfo: {
|
||||
type:2,
|
||||
type: 2,
|
||||
index: -1,
|
||||
path: '/agentEenter/agentEenterBasicFamily'
|
||||
}
|
||||
@@ -189,11 +189,11 @@ export default {
|
||||
this.fileListBank05.push({ url: config.imgDomain + `/returnImageStream?a=b.jpg&imgPath=${item.rgssUrl}` })
|
||||
break
|
||||
}
|
||||
if(item.imageInfoType == '1' && item.subBusinessType == '3'){
|
||||
if (item.imageInfoType == '1' && item.subBusinessType == '3') {
|
||||
// 申请人身份证
|
||||
this.fileListBank01.push({ url: config.imgDomain + `/returnImageStream?a=b.jpg&imgPath=${item.rgssUrl}` })
|
||||
}
|
||||
if(item.imageInfoType == '1' && item.subBusinessType == '4'){
|
||||
if (item.imageInfoType == '1' && item.subBusinessType == '4') {
|
||||
// 担保人身份证
|
||||
this.fileListBank06.push({ url: config.imgDomain + `/returnImageStream?a=b.jpg&imgPath=${item.rgssUrl}` })
|
||||
}
|
||||
@@ -212,18 +212,22 @@ export default {
|
||||
this.fileListBank01.map((item, index, array) => {
|
||||
if (item.content == file.content) {
|
||||
array.splice(index, 1)
|
||||
this.deleteImg(file, 'fileListBank01')
|
||||
} else {
|
||||
return
|
||||
}
|
||||
})
|
||||
} else if (detail.name == 'fileListBank03') {
|
||||
this.fileListBank03 = []
|
||||
this.deleteImg(file, 'fileListBank03')
|
||||
} else if (detail.name == 'fileListBank04') {
|
||||
this.fileListBank04 = []
|
||||
this.deleteImg(file, 'fileListBank04')
|
||||
} else if (detail.name == 'fileListBank05') {
|
||||
this.fileListBank05.map((item, index, array) => {
|
||||
if (item.content == file.content) {
|
||||
array.splice(index, 1)
|
||||
this.deleteImg(file, 'fileListBank05')
|
||||
} else {
|
||||
return
|
||||
}
|
||||
@@ -232,12 +236,12 @@ export default {
|
||||
this.fileListBank06.map((item, index, array) => {
|
||||
if (item.content == file.content) {
|
||||
array.splice(index, 1)
|
||||
this.deleteImg(file, 'fileListBank06')
|
||||
} else {
|
||||
return
|
||||
}
|
||||
})
|
||||
}
|
||||
this.deleteImg(file)
|
||||
})
|
||||
},
|
||||
dataURLtoFile(dataurl, filename) {
|
||||
@@ -254,8 +258,10 @@ export default {
|
||||
},
|
||||
afterRead(file) {
|
||||
let that = this
|
||||
console.log(file)
|
||||
that.file = file.content
|
||||
that.imgName = Math.floor(Math.random() * 100).toString() + new Date().getTime() + file.file.name //为图片名加随机数 与时间戳
|
||||
file.name = that.imgName
|
||||
that.uploadImg()
|
||||
},
|
||||
uploadImg() {
|
||||
@@ -268,36 +274,43 @@ export default {
|
||||
})
|
||||
let formdata = new FormData()
|
||||
formdata.append('imgPath', that.dataURLtoFile(that.file, that.imgName))
|
||||
console.log('file-----------------', that.file)
|
||||
console.log('name-----------------', that.imgName)
|
||||
|
||||
uploadImg(formdata).then(res => {
|
||||
if (res.result == '0') {
|
||||
this.$toast.clear()
|
||||
let imageInfoType = ''
|
||||
let subBusinessType = ''
|
||||
let name = ''
|
||||
|
||||
if (that.type == 'fileListBank01') {
|
||||
//身份证正面
|
||||
name = 'fileListBank01'
|
||||
imageInfoType = '1'
|
||||
subBusinessType = '3'
|
||||
} else if (that.type == 'fileListBank03') {
|
||||
//学历
|
||||
name = 'fileListBank03'
|
||||
imageInfoType = '12'
|
||||
subBusinessType = '3'
|
||||
} else if (that.type == 'fileListBank04') {
|
||||
//免冠
|
||||
name = 'fileListBank04'
|
||||
imageInfoType = '13'
|
||||
subBusinessType = '3'
|
||||
} else if (that.type == 'fileListBank05') {
|
||||
//银行卡
|
||||
name = 'fileListBank05'
|
||||
imageInfoType = '3'
|
||||
subBusinessType = '3'
|
||||
} else if (that.type == 'fileListBank06') {
|
||||
//担保人
|
||||
name = 'fileListBank06'
|
||||
imageInfoType = '1'
|
||||
subBusinessType = '4'
|
||||
}
|
||||
|
||||
let obj = {
|
||||
name: name,
|
||||
imageInfoType: imageInfoType,
|
||||
subBusinessType: subBusinessType,
|
||||
fileName: that.imgName,
|
||||
@@ -308,16 +321,20 @@ export default {
|
||||
})
|
||||
},
|
||||
// 删除图片
|
||||
deleteImg(file) {
|
||||
deleteImg(file, nameList) {
|
||||
let that = this
|
||||
//图片上传的
|
||||
if (file.file) {
|
||||
that.list.map((item, index, array) => {
|
||||
if (item.fileName.indexOf(file.file.name) == -1) {
|
||||
return
|
||||
} else {
|
||||
if (item.fileName == file.name && nameList == item.name) {
|
||||
array.splice(index, 1)
|
||||
}
|
||||
// if (item.fileName.indexOf(file.file.name) == -1) {
|
||||
// return
|
||||
// } else if (item.fileName == file.file.name && nameList == item.name) {
|
||||
// array.splice(index, 1)
|
||||
// return false
|
||||
// }
|
||||
})
|
||||
} else {
|
||||
//图片返显的
|
||||
@@ -343,11 +360,15 @@ export default {
|
||||
loadingType: 'spinner',
|
||||
message: '加载中……'
|
||||
})
|
||||
this.list.map(i => {
|
||||
delete i.name
|
||||
})
|
||||
let data = {
|
||||
// userModel: { //线上去掉
|
||||
// mobile: '13000000000'
|
||||
// },
|
||||
entryType: 'CUSTOMER_MEDIA',
|
||||
|
||||
ebizMediaDtoLst: that.list
|
||||
}
|
||||
saveOrUpdateInfo(data).then(res => {
|
||||
|
||||
@@ -42,7 +42,7 @@ export function selectComp(that, index, type = '') {
|
||||
//投保人
|
||||
localStorage.scanFromInsured = 'true'
|
||||
} else if (type == '2') {
|
||||
//被保人
|
||||
//被保险人
|
||||
localStorage.scanFromInsured = 'false'
|
||||
};
|
||||
[that.isScan, title] = [true, '身份证扫描']
|
||||
@@ -83,7 +83,7 @@ function closeBtn(that) {
|
||||
/**
|
||||
*
|
||||
* @param {*} that 上下文
|
||||
* @param {String} type 1 投保人; 2 被保人; 3 受益人
|
||||
* @param {String} type 1 投保人; 2 被保险人; 3 受益人
|
||||
*/
|
||||
export function appCallBack(that, type) {
|
||||
return function () {
|
||||
@@ -93,7 +93,7 @@ export function appCallBack(that, type) {
|
||||
title = '投保人信息'
|
||||
break
|
||||
case '2':
|
||||
title = '被保人信息'
|
||||
title = '被保险人信息'
|
||||
break
|
||||
case '3':
|
||||
title = '指定受益人信息'
|
||||
@@ -129,7 +129,7 @@ export function chooseOccupation(that, type) {
|
||||
title = '投保人信息'
|
||||
break
|
||||
case '2':
|
||||
title = '被保人信息'
|
||||
title = '被保险人信息'
|
||||
break
|
||||
case '3':
|
||||
title = '指定受益人信息'
|
||||
@@ -151,7 +151,7 @@ export function chooseOccupation(that, type) {
|
||||
* @param {*} that 上下文
|
||||
* @param {*} pickerType 弹框类型
|
||||
* @param {*} valueKey 弹框编号
|
||||
* @param {*} type 1 投保人; 2 被保人; 3 受益人
|
||||
* @param {*} type 1 投保人; 2 被保险人; 3 受益人
|
||||
*/
|
||||
export function toSelect(that, pickerType, valueKey, type) {
|
||||
//pickerType 1、民族 2、证件类型 3、文化程度 4、有无社保(弃用) 5、税收居民身份 6、婚姻状况 7、在职情况
|
||||
@@ -204,7 +204,7 @@ export function toSelect(that, pickerType, valueKey, type) {
|
||||
*
|
||||
* @param {*} that 上下文
|
||||
* @param {*} value 值
|
||||
* @param {*} type 1 投保人 2 被保人 3 受益人
|
||||
* @param {*} type 1 投保人 2 被保险人 3 受益人
|
||||
*/
|
||||
export function onConfirm(that, value, type) {
|
||||
that.popupShow = false
|
||||
@@ -324,7 +324,7 @@ export function onConfirm(that, value, type) {
|
||||
}
|
||||
break
|
||||
case '3': {
|
||||
//如果受益人是被保人本人
|
||||
//如果受益人是被保险人本人
|
||||
if (value.id == 1) {
|
||||
//获取投保人数据
|
||||
getOrderDetail({
|
||||
@@ -332,7 +332,7 @@ export function onConfirm(that, value, type) {
|
||||
}).then(res => {
|
||||
if (res.result == 0) {
|
||||
that.isInsured = true
|
||||
//获取被保人信息
|
||||
//获取被保险人信息
|
||||
let insuredInfo = res.orderDTO.insuredDTOs[0]
|
||||
for (let key in that.userInfo) {
|
||||
that.userInfo[key] = insuredInfo[key]
|
||||
@@ -505,7 +505,7 @@ export function onDateConfirm(that, val, type) {
|
||||
*
|
||||
* @param {*} that 上下文
|
||||
* @param {*} data 客户列表数据
|
||||
* @param {*} type 1 投保人; 2 被保人; 3 受益人
|
||||
* @param {*} type 1 投保人; 2 被保险人; 3 受益人
|
||||
*/
|
||||
export function chooseCustomer(that, data, type) {
|
||||
let title
|
||||
@@ -514,7 +514,7 @@ export function chooseCustomer(that, data, type) {
|
||||
title = '投保人信息'
|
||||
break
|
||||
case '2':
|
||||
title = '被保人信息'
|
||||
title = '被保险人信息'
|
||||
break
|
||||
case '3':
|
||||
title = '指定受益人信息'
|
||||
@@ -615,7 +615,7 @@ export function chooseCustomer(that, data, type) {
|
||||
/**
|
||||
*
|
||||
* @param {*} that 上下文
|
||||
* @param {*} type 1 投保人; 2 被保人; 3 受益人
|
||||
* @param {*} type 1 投保人; 2 被保险人; 3 受益人
|
||||
*/
|
||||
export function nextStep(that, type) {
|
||||
//表单校验, 成功跳转
|
||||
@@ -657,7 +657,7 @@ export function infoUpdate(that, type) {
|
||||
let flag
|
||||
switch (type) {
|
||||
case '1': {
|
||||
//取出local中的投被保人信息
|
||||
//取出local中的投被保险人信息
|
||||
let saleInsuredInfo = JSON.parse(localStorage.saleInsuredInfo)
|
||||
//如果 性别, 出生日期, 有无社保, 职业 发生变化
|
||||
if (that.userInfo.sex != saleInsuredInfo.sex || that.userInfo.birthday != saleInsuredInfo.birthday) {
|
||||
@@ -666,7 +666,7 @@ export function infoUpdate(that, type) {
|
||||
}
|
||||
break
|
||||
case '2': {
|
||||
//取出local中的被保人信息
|
||||
//取出local中的被保险人信息
|
||||
let saleInsuredPersonInfo = JSON.parse(localStorage.saleInsuredPersonInfo)
|
||||
//如果 性别, 出生日期, 有无社保, 职业 发生变化
|
||||
if (
|
||||
@@ -707,11 +707,11 @@ export function infoUpdate(that, type) {
|
||||
/**
|
||||
*
|
||||
* @param {*} that 上下文
|
||||
* @param {*} type 1 投保人 2 被保人
|
||||
* @param {*} type 1 投保人 2 被保险人
|
||||
*/
|
||||
export function save(that, type, str) {
|
||||
let params = {
|
||||
// 投被保人入参不同
|
||||
// 投被保险人入参不同
|
||||
orderType: type == '1' ? 'APPNT_ORDER' : 'INSURED_ORDER',
|
||||
orderDTO: {
|
||||
orderInfoDTO: {
|
||||
@@ -727,7 +727,7 @@ export function save(that, type, str) {
|
||||
if (type == '2' && that.userInfo.mediaDTOS == '') {
|
||||
delete that.userInfo.mediaDTOS
|
||||
}
|
||||
// 投被保人入参不同
|
||||
// 投被保险人入参不同
|
||||
type == '1' ? (params.orderDTO.appntDTO = that.userInfo) : (params.orderDTO.insuredDTOs = [that.userInfo])
|
||||
saveOrUpdateOrderInfo(params).then(res => {
|
||||
if (res.result == 0) {
|
||||
@@ -738,7 +738,7 @@ export function save(that, type, str) {
|
||||
that.countDown = 60
|
||||
that.codeDisabled = false
|
||||
// let url
|
||||
// 投被保人跳转路径不同
|
||||
// 投被保险人跳转路径不同
|
||||
if (type == '1') {
|
||||
that.$jump({
|
||||
flag: 'h5',
|
||||
@@ -815,7 +815,7 @@ export function sureArea(that, area, type, flag = false) {
|
||||
*
|
||||
* @param {*} that 上下文
|
||||
* @param {*} data 扫描数据
|
||||
* @param {*} type 1 投保人 2 被保人
|
||||
* @param {*} type 1 投保人 2 被保险人
|
||||
*/
|
||||
export function getIdentityInfo(that, data, type) {
|
||||
if (data.name && data.name != '待识别') {
|
||||
@@ -829,7 +829,7 @@ export function getIdentityInfo(that, data, type) {
|
||||
}
|
||||
that.isScan = false
|
||||
that.bankisScan = false
|
||||
let title = type == '1' ? '投保人信息' : '被保人信息'
|
||||
let title = type == '1' ? '投保人信息' : '被保险人信息'
|
||||
that.$jump({
|
||||
flag: 'navigation',
|
||||
extra: {
|
||||
@@ -882,7 +882,7 @@ export function getRelatedData(that, val) {
|
||||
/**
|
||||
*
|
||||
* @param {*} that 上下文
|
||||
* @param {*} type 1 投保人 2 被保人
|
||||
* @param {*} type 1 投保人 2 被保险人
|
||||
*/
|
||||
export function getCode(that, type) {
|
||||
if (that.userInfo.mobile == '') {
|
||||
|
||||
@@ -244,43 +244,6 @@ export default {
|
||||
} else {
|
||||
self.save()
|
||||
}
|
||||
} else if (this.userInfo.idType == '2') {
|
||||
//户口本
|
||||
if (this.userInfo.idNo.length != 18) {
|
||||
this.$toast('户口本的证件号码长度应等于18位')
|
||||
} else {
|
||||
self.save()
|
||||
}
|
||||
} else if (this.userInfo.idType == '3') {
|
||||
//出生证
|
||||
if (this.userInfo.idNo.length < 3) {
|
||||
this.$toast('出生证须大于等于3个字符')
|
||||
} else {
|
||||
self.save()
|
||||
}
|
||||
} else if (this.userInfo.idType == '4') {
|
||||
//护照
|
||||
if (this.userInfo.idNo.length < 3) {
|
||||
this.$toast('护照须大于等于3个字符')
|
||||
} else {
|
||||
self.save()
|
||||
}
|
||||
//证件是港澳居民通行证
|
||||
} else if (this.userInfo.idType == '5') {
|
||||
if (this.userInfo.idNo.length != 9) {
|
||||
this.$toast('证件类型为港澳居民通行证的,证件号码须为9位')
|
||||
} else if (!/^(H|M)[0-9]{8}$/.test(this.userInfo.idNo)) {
|
||||
this.$toast('证件类型为港澳居民通行证的,证件号码首位字母为"H"/"M",证件号码第2位至第9位为阿拉伯数字')
|
||||
} else {
|
||||
self.save()
|
||||
}
|
||||
//证件是台湾居民通行证
|
||||
} else if (this.userInfo.idType == '6') {
|
||||
if (this.userInfo.idNo.length != 8) {
|
||||
this.$toast('证件类型为台湾居民通行证的,证件号码须为8位数字')
|
||||
} else {
|
||||
self.save()
|
||||
}
|
||||
} else {
|
||||
self.save()
|
||||
}
|
||||
|
||||
@@ -110,7 +110,7 @@ export default {
|
||||
return
|
||||
}
|
||||
} else {
|
||||
//校验主合同的被保人寿险职业等级
|
||||
//校验主合同的被保险人寿险职业等级
|
||||
if (riskRules.lifeGradeLimit(resultData, this)) {
|
||||
return
|
||||
}
|
||||
@@ -122,6 +122,7 @@ export default {
|
||||
let currentProductInfo = {
|
||||
calFactorLst,
|
||||
isMainRisk: 1,
|
||||
hint: resultData.hint,
|
||||
riskType: resultData.riskType,
|
||||
riskName: this.result.riskName,
|
||||
productCode: this.result.productCode,
|
||||
@@ -166,7 +167,11 @@ export default {
|
||||
item['amt'] = factor['amt']
|
||||
}
|
||||
}
|
||||
item.columns.push({ text: factor.showContent, value: factor[item.code], flag: factor[item.code + 'Flag'], amt: factor['amt'] })
|
||||
let itemColumns = { text: factor.showContent, value: factor[item.code], flag: factor[item.code + 'Flag'], amt: factor['amt'] }
|
||||
if (factor.medical !== undefined) {
|
||||
itemColumns.medical = factor.medical
|
||||
}
|
||||
item.columns.push(itemColumns)
|
||||
})
|
||||
} else if (item.type == 1) {
|
||||
//按年龄选择
|
||||
@@ -187,7 +192,7 @@ export default {
|
||||
},
|
||||
//豁免险影响
|
||||
remitLimit(resultData) {
|
||||
//isRemit 0是豁免险 1非豁免险 remitType 0投保人 1被保人 relationToAppnt 投被关系
|
||||
//isRemit 0是豁免险 1非豁免险 remitType 0投保人 1被保险人 relationToAppnt 投被关系
|
||||
let isRemit = resultData.productTrialInfoDTO.isRemit
|
||||
if (isRemit == 1) return false
|
||||
let remitType = resultData.productTrialInfoDTO.remitType
|
||||
|
||||
@@ -77,7 +77,7 @@
|
||||
:show-minus="false"
|
||||
class="ml10 mr10"
|
||||
@focus="focusStep"
|
||||
@blur="blurStep(dutyItem)"
|
||||
@blur="blurStep(dutyItem, index)"
|
||||
@change="
|
||||
dutyStepperChange(
|
||||
item.calFactorLst[riskFactorIndex].rules[dutyItemIndex].defaultDutyAmt,
|
||||
@@ -163,7 +163,7 @@
|
||||
:show-minus="false"
|
||||
class="ml10 mr10"
|
||||
@focus="focusStep"
|
||||
@blur="blurStep(dutyItem)"
|
||||
@blur="blurStep(dutyItem, index)"
|
||||
@change="
|
||||
dutyStepperChange(
|
||||
item.calFactorLst[riskFactorIndex].rules[dutyItemIndex].defaultDutyAmt,
|
||||
@@ -216,7 +216,7 @@
|
||||
class="ml10 mr10"
|
||||
:disabled="dutyItem.changeWithMainRisk === true ? 'disabled' : ''"
|
||||
@focus="focusStep"
|
||||
@blur="blurStep(dutyItem)"
|
||||
@blur="blurStep(dutyItem, index)"
|
||||
@change="
|
||||
dutyStepperChange(
|
||||
item.calFactorLst[riskFactorIndex].rules[dutyItemIndex].defaultDutyAmt,
|
||||
@@ -246,7 +246,16 @@
|
||||
<!-- 只有万能险且只有建议书才展示 -->
|
||||
<van-field class="pv10" v-if="item.hasPredictTransferPrem === '0'" v-model="item.predictTransferPrem" label="预计转入保费" placeholder="请输入" />
|
||||
<div class="flex justify-content-s pv10 border-bottom" v-if="isRelated && isFrom != 'proposal'">
|
||||
<van-field v-model="policyNo" clearable label="关联保单" name="关联保单号" maxlength="20" placeholder="请输入保单号/投保单号" />
|
||||
<van-field
|
||||
v-model="policyNo"
|
||||
clearable
|
||||
label="关联保单"
|
||||
name="关联保单号"
|
||||
maxlength="380"
|
||||
type="textarea"
|
||||
autosize
|
||||
placeholder="请录入保单号或者投保单号,如果关联多个保单,请用\隔开"
|
||||
/>
|
||||
</div>
|
||||
<div class="flex justify-content-s pv10 border-bottom prem">
|
||||
<span
|
||||
@@ -255,7 +264,7 @@
|
||||
>首期保费(元):</span
|
||||
>
|
||||
<span style="font-weight:bold" v-else>保额(元):</span>
|
||||
<span class="fee red" v-if="trialList && trialList.length > 0">{{ trialList[index].prem.toFixed(2) | moneyFormat }}</span>
|
||||
<span class="fee red" v-if="trialList && trialList.length > 0">{{ trialList[index].showPrem.toFixed(2) | moneyFormat }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom-btn bg-white">
|
||||
@@ -307,6 +316,20 @@ const dutyRules = {
|
||||
msg: '意外住院津贴日额最低基本保险金额为10元/天,超过最低基本保险金额为10元/天整数倍,最高不得超过200元/天'
|
||||
}
|
||||
}
|
||||
const dutyGFRS_A0004Rules = {
|
||||
320205: {
|
||||
mainRisk: 'GFRS_M0005',
|
||||
msg: '住院医疗提示:金额只能是0.5、1、1.5、2',
|
||||
msg_1: '附加到国富人寿国富民惠医疗保险(2020版)最高基本保额不超过1万元。',
|
||||
msg_2: '住院医疗提示:金额只能是0.5、1',
|
||||
},
|
||||
320206: {
|
||||
msg: '住院津贴提示:投保可选责任时,可选责任最低投保 50 元,且应为 10 元的整数倍'
|
||||
},
|
||||
320207: {
|
||||
msg: '恶性肿瘤提示:投保可选责任时,可选责任最低投保 50 元,且应为 10 元的整数倍'
|
||||
}
|
||||
}
|
||||
const DUTY_DEFAULT_MUTIPLE = 1000
|
||||
const DUTY_DEFAULT_MIN = 10000
|
||||
|
||||
@@ -377,7 +400,7 @@ export default {
|
||||
if (localStorage.saleInsuredInfo) {
|
||||
this.saleInsuredInfo = JSON.parse(localStorage.saleInsuredInfo)
|
||||
}
|
||||
//获取被保人信息
|
||||
//获取被保险人信息
|
||||
if (localStorage.saleInsuredPersonInfo) {
|
||||
this.saleInsuredPersonInfo = JSON.parse(localStorage.saleInsuredPersonInfo)
|
||||
}
|
||||
@@ -407,54 +430,48 @@ export default {
|
||||
// }
|
||||
// })
|
||||
// }
|
||||
//保存险种编号
|
||||
//保存主险险种编号
|
||||
if (item.isMainRisk == 0) {
|
||||
this.mainRiskCode = item.mainRiskCode
|
||||
}
|
||||
})
|
||||
if(this.mainRiskCode == 'GFRS_M0005'){
|
||||
this.chooseProducts.map(item => {
|
||||
if(item.productCode == 'GFRS_A0004'){
|
||||
item.calFactorLst.map( item2 => {
|
||||
if(item2.code == 'dutyGroup'){
|
||||
item2.rules.map(item3 => {
|
||||
console.log(item3);
|
||||
if(item3.duty == '320205'){
|
||||
item3.maxDutyAmt = "1"
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
//GFRS_M0016需要展示免赔额和赔付比例,并需要根据是否有社保调整数值
|
||||
// let mainRiskCode = chooseProducts[0].mainRiskCode
|
||||
this.chooseProducts.map(item => {
|
||||
if (item.mainRiskCode === 'GFRS_M0016') {
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
this.dogetLimitAndGetRate().then(res => {
|
||||
if (this.chooseProducts[0].influences && this.chooseProducts[0].influences.length > 0) {
|
||||
this.influences = this.chooseProducts[0].influences
|
||||
this.chooseProducts[0].influences.forEach(item => {
|
||||
this.influenceAddRiskCodes.push(item.productCode)
|
||||
})
|
||||
}
|
||||
this.mainRiskInfluenceAddRisk()
|
||||
//初始化数据试算
|
||||
this.getTrial()
|
||||
})
|
||||
},
|
||||
//特殊处理 GFRS_M0016 GFRS_A0004 GFRS_A0005 赔付比例处理
|
||||
async dogetLimitAndGetRate() {
|
||||
const orderNo = localStorage.getItem('orderNo')
|
||||
let detailPromise = this.isFrom === 'proposal' ? new Promise(r => r(localStorage.getItem('proposalMedical'))) : getOrderDetail({ orderNo })
|
||||
detailPromise.then(res => {
|
||||
let isMedical = null
|
||||
if (this.isFrom === 'proposal') {
|
||||
isMedical = res === '1'
|
||||
} else {
|
||||
isMedical = res.orderDTO.insuredDTOs[0].medical === '0'
|
||||
}
|
||||
//根据社保写死两个字段 赔付比例和免赔额
|
||||
item.calFactorLst.map(i => {
|
||||
//免赔额
|
||||
if (i.code === 'getLimit') {
|
||||
const text = isMedical ? '0元(意外医疗)' : '100元(意外医疗)'
|
||||
const value = isMedical ? '0' : '100'
|
||||
|
||||
//保存数据
|
||||
this.medicalInfo = this.medicalInfo || {}
|
||||
this.medicalInfo.getLimit = text
|
||||
|
||||
i.showContent = text
|
||||
i.getLimit = value
|
||||
i.columns = [{ text, value }]
|
||||
}
|
||||
//赔付比例
|
||||
if (i.code === 'getRate') {
|
||||
const text = isMedical ? '80%(意外医疗)' : '70%(意外医疗)'
|
||||
const value = isMedical ? '0.8' : '0.7'
|
||||
|
||||
//保存数据
|
||||
this.medicalInfo = this.medicalInfo || {}
|
||||
this.medicalInfo.getRate = text
|
||||
|
||||
i.showContent = text
|
||||
i.getRate = value
|
||||
i.columns = [{ text, value }]
|
||||
}
|
||||
})
|
||||
this.$forceUpdate()
|
||||
})
|
||||
} else {
|
||||
let detailPromise = this.isFrom === 'proposal' ? localStorage.proposalMedical : await getOrderDetail({ orderNo })
|
||||
this.chooseProducts.map(item => {
|
||||
if (!(item.mainRiskCode === 'GFRS_M0016' || item.productCode === 'GFRS_A0004' || item.productCode === 'GFRS_A0005')) {
|
||||
//其他产品删掉两个字段
|
||||
let calFactorLst = item.calFactorLst
|
||||
for (let i = calFactorLst.length - 1; i >= 0; i--) {
|
||||
@@ -463,42 +480,68 @@ export default {
|
||||
calFactorLst.splice(i, 1)
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
if (item.mainRiskCode === 'GFRS_M0016' || item.productCode === 'GFRS_A0004' || item.productCode === 'GFRS_A0005' ) {
|
||||
let isMedical = null
|
||||
if (this.isFrom === 'proposal') {
|
||||
isMedical = detailPromise == '1'
|
||||
} else {
|
||||
isMedical = detailPromise.orderDTO.insuredDTOs[0].medical == '0'
|
||||
}
|
||||
// 赔付比例和免赔额
|
||||
item.calFactorLst.map(i => {
|
||||
if (i.code === 'getLimit') {
|
||||
let tempColumns = i.columns.filter(itemC => {
|
||||
return itemC.medical == Math.abs(isMedical - 1).toString()
|
||||
})
|
||||
if (tempColumns.length !== 0) {
|
||||
i.columns = tempColumns
|
||||
}
|
||||
i.getLimit = i.columns[0].value
|
||||
i.showContent = i.columns[0].text
|
||||
}
|
||||
//赔付比例
|
||||
if (i.code === 'getRate') {
|
||||
let tempColumns = i.columns.filter(itemC => {
|
||||
return itemC.medical == Math.abs(isMedical - 1).toString()
|
||||
})
|
||||
if (tempColumns.length !== 0) {
|
||||
i.columns = tempColumns
|
||||
}
|
||||
i.getRate = i.columns[0].value
|
||||
i.showContent = i.columns[0].text
|
||||
}
|
||||
})
|
||||
|
||||
// this.influenceAddRiskCodes
|
||||
|
||||
if (this.chooseProducts[0].influences && this.chooseProducts[0].influences.length > 0) {
|
||||
this.influences = this.chooseProducts[0].influences
|
||||
this.chooseProducts[0].influences.forEach(item => {
|
||||
this.influenceAddRiskCodes.push(item.productCode)
|
||||
})
|
||||
this.$forceUpdate()
|
||||
} else if(item.productCode === 'GFRS_A0005'){
|
||||
// GFRS_A0005 未处理
|
||||
}
|
||||
|
||||
this.mainRiskInfluenceAddRisk()
|
||||
//初始化数据试算
|
||||
this.getTrial()
|
||||
})
|
||||
},
|
||||
// 责任保额份数变化
|
||||
dutyStepperChange(value, productIndex, calFactorIndex, dutyItemIndex, isChecked, min, max) {
|
||||
//这个险种使用其他验证方式
|
||||
if (this.mainRiskCode === 'GFRS_M0016') return
|
||||
if (this.chooseProducts[productIndex].productCode === 'GFRS_M0016') return
|
||||
// 004险种其他验证方式
|
||||
if (this.chooseProducts[productIndex].productCode === 'GFRS_A0004') return
|
||||
if (this.chooseProducts[productIndex].productCode === 'GFRS_A0003') {
|
||||
this.getTrial()
|
||||
return
|
||||
}
|
||||
let currentEle = this.chooseProducts[productIndex].calFactorLst[calFactorIndex].rules[dutyItemIndex]
|
||||
let showHint = this.chooseProducts[productIndex].hint
|
||||
if (value < min || value > max) {
|
||||
this.$toast(localStorage.hint)
|
||||
this.$toast(showHint)
|
||||
} else {
|
||||
if ((Number(value) * 10000) % (Number(currentEle.limit) * 10000) != 0) {
|
||||
Dialog.alert({
|
||||
message: localStorage.hint
|
||||
message: showHint
|
||||
}).then(() => {
|
||||
currentEle.defaultDutyAmt = currentEle.minDutyAmt
|
||||
})
|
||||
|
||||
// this.$toast(localStorage.hint)
|
||||
// this.$toast(showHint)
|
||||
} else {
|
||||
// this.mainRiskInfluenceAddRisk()
|
||||
// currentEle['amt'] = Number(defalutValue) * Number(currentEle.moneyUnit)
|
||||
@@ -593,15 +636,20 @@ export default {
|
||||
].rules[dutyItemIndex]['necess']
|
||||
return false
|
||||
}
|
||||
this.valiAndSend(dutyItem)
|
||||
this.valiAndSend(dutyItem, productIndex)
|
||||
},
|
||||
valiAndSend(dutyItem) {
|
||||
valiAndSend(dutyItem, productIndex) {
|
||||
//验证责任
|
||||
let validateRiskCode = this.chooseProducts[productIndex].productCode
|
||||
let showHint = this.chooseProducts[productIndex].hint
|
||||
let inputValue = dutyItem.defaultDutyAmt,
|
||||
duty = dutyItem.duty
|
||||
if (this.mainRiskCode === 'GFRS_M0016' && !this.valiDuty(inputValue, duty)) {
|
||||
if (validateRiskCode === 'GFRS_M0016' && !this.valiDuty(inputValue, duty)) {
|
||||
//验证不通过
|
||||
return
|
||||
} else if (validateRiskCode === 'GFRS_A0004' && !this.valiA0004Duty(inputValue, showHint, dutyItem)) {
|
||||
//验证不通过 险种为GFRS_A0004 责任编码为320205
|
||||
return
|
||||
} else {
|
||||
this.mainRiskInfluenceAddRisk()
|
||||
this.getTrial()
|
||||
@@ -611,13 +659,13 @@ export default {
|
||||
focusStep() {
|
||||
this.nextStepFlag = true
|
||||
},
|
||||
blurStep(dutyItem) {
|
||||
blurStep(dutyItem, productIndex) {
|
||||
this.nextStepFlag = false
|
||||
|
||||
//失去焦点时做验证
|
||||
if (dutyItem.necess) {
|
||||
//勾选时才做验证
|
||||
this.valiAndSend(dutyItem)
|
||||
this.valiAndSend(dutyItem, productIndex)
|
||||
}
|
||||
},
|
||||
//险种GFRS_M0016的责任的验证规则
|
||||
@@ -637,6 +685,50 @@ export default {
|
||||
}
|
||||
}
|
||||
},
|
||||
//险种 GFRS_A0004 险种验证规则
|
||||
valiA0004Duty(value, showHint, currentEle) {
|
||||
/* if (!(currentEle.necess == true)) {
|
||||
this.nextStepFlag = false
|
||||
return true
|
||||
}*/
|
||||
// 验证其他 最小50 其他为50 10 倍数
|
||||
if (currentEle.duty == '320206' || currentEle.duty == '320207') {
|
||||
let numberValue = Number(value) * 10000
|
||||
if (numberValue % 10 != 0 || numberValue < 50) {
|
||||
this.$toast(dutyGFRS_A0004Rules[currentEle.duty].msg)
|
||||
this.nextStepFlag = true
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
// 保额只能为5000 10000 15000 200000
|
||||
if (currentEle.duty == '320205') {
|
||||
if (this.mainRiskCode === dutyGFRS_A0004Rules[currentEle.duty]['mainRisk']) {
|
||||
if (!(value == '0.5' || value == '1')) {
|
||||
this.$toast(dutyGFRS_A0004Rules[currentEle.duty].msg_2)
|
||||
this.nextStepFlag = true
|
||||
return false
|
||||
} else if(value-0 > 1){
|
||||
this.$toast(dutyGFRS_A0004Rules[currentEle.duty].msg_1)
|
||||
this.nextStepFlag = true
|
||||
return false
|
||||
}
|
||||
} else {
|
||||
if (!(value == '0.5' || value == '1' || value == '1.5' || value == '2')) {
|
||||
this.$toast(dutyGFRS_A0004Rules[currentEle.duty].msg)
|
||||
this.nextStepFlag = true
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
this.nextStepFlag = false
|
||||
return true
|
||||
}
|
||||
this.nextStepFlag = false
|
||||
return true
|
||||
},
|
||||
/********start 通用规则、特殊规则处理 start******/
|
||||
//通用规则1:交费方式为一次交情,无交费期限
|
||||
hiddenPayEndYear(currentEle) {
|
||||
@@ -676,7 +768,7 @@ export default {
|
||||
let age = Number(this.saleInsuredPersonInfo.age)
|
||||
for (let i = 0; i < currentEle.rules.length; i++) {
|
||||
if (currentEle.rules[i].payEndYear == value && age > currentEle.rules[i].maxAge) {
|
||||
this.$toast('被保人年龄不适合该交费期间!')
|
||||
this.$toast('被保险人年龄不适合该交费期间!')
|
||||
return true
|
||||
}
|
||||
}
|
||||
@@ -687,7 +779,7 @@ export default {
|
||||
let age = Number(this.saleInsuredPersonInfo.age)
|
||||
for (let i = 0; i < currentEle.rules.length; i++) {
|
||||
if (currentEle.rules[i].insuYear == value && age > currentEle.rules[i].maxAge) {
|
||||
this.$toast('被保人年龄不适合该保险期间!')
|
||||
this.$toast('被保险人年龄不适合该保险期间!')
|
||||
return true
|
||||
}
|
||||
}
|
||||
@@ -1013,15 +1105,27 @@ export default {
|
||||
// trialInfo.duty = [{ dutyCode: trialInfo.duty }]
|
||||
// }
|
||||
//获取投被保生日、性别
|
||||
let birthday, sex
|
||||
let birthday, sex, occupationCode, occupationName
|
||||
if (item.isRemit == '0' && item.remitType == '0') {
|
||||
;[birthday, sex] = [this.saleInsuredInfo.birthday, this.saleInsuredInfo.sex]
|
||||
;[birthday, sex, occupationCode, occupationName] = [
|
||||
this.saleInsuredInfo.birthday,
|
||||
this.saleInsuredInfo.sex,
|
||||
this.saleInsuredInfo.occupationCode,
|
||||
this.saleInsuredInfo.occupationName
|
||||
]
|
||||
} else {
|
||||
;[birthday, sex] = [this.saleInsuredPersonInfo.birthday, this.saleInsuredPersonInfo.sex]
|
||||
;[birthday, sex, occupationCode, occupationName] = [
|
||||
this.saleInsuredPersonInfo.birthday,
|
||||
this.saleInsuredPersonInfo.sex,
|
||||
this.saleInsuredPersonInfo.occupationCode,
|
||||
this.saleInsuredPersonInfo.occupationName
|
||||
]
|
||||
}
|
||||
trialInfo = Object.assign(trialInfo, {
|
||||
birthday,
|
||||
sex,
|
||||
occupationCode,
|
||||
occupationName,
|
||||
platformType: 'app',
|
||||
productCode: item.productCode,
|
||||
medical: JSON.parse(localStorage.getItem('saleInsuredPersonInfo')).medical
|
||||
@@ -1071,18 +1175,19 @@ export default {
|
||||
: this.chooseProducts[productIndex].calFactorLst[calFactorIndex]
|
||||
//改动原因:孝心保产品有对年龄的特殊要求
|
||||
//添加判断,是否是孝心保产品
|
||||
let showHint = this.chooseProducts[productIndex].hint
|
||||
let productCode = localStorage.trialList == '' ? '' : JSON.parse(localStorage.trialList)[0].productCode
|
||||
if (productCode == 'GFRS_M0014') {
|
||||
//被保人年龄如果在50-65区间
|
||||
//被保险人年龄如果在50-65区间
|
||||
if (this.saleInsuredPersonInfo.age >= 50 && this.saleInsuredPersonInfo.age <= 65) {
|
||||
//使用rules规则里的第二条控制保额份数
|
||||
if (Number(defalutValue) < Number(riskFactor.rules[1].minPrem) || Number(defalutValue) > Number(riskFactor.rules[1].maxPrem)) {
|
||||
this.$toast(localStorage.hint)
|
||||
this.$toast(showHint)
|
||||
this.nextStepFlag = true
|
||||
} else {
|
||||
if ((Number(defalutValue) * 10000) % (Number(currentEle.limit) * 10000) != 0) {
|
||||
// this.defalutAmt = currentEle.rules[productIndex].displayAmount
|
||||
this.$toast(localStorage.hint)
|
||||
this.$toast(showHint)
|
||||
this.nextStepFlag = true
|
||||
} else {
|
||||
this.mainRiskInfluenceAddRisk()
|
||||
@@ -1090,16 +1195,16 @@ export default {
|
||||
this.getTrial()
|
||||
}
|
||||
}
|
||||
//被保人年龄如果在66-75之间
|
||||
//被保险人年龄如果在66-75之间
|
||||
} else if (this.saleInsuredPersonInfo.age >= 66 && this.saleInsuredPersonInfo.age <= 75) {
|
||||
//使用rules规则里的第一条控制保额份数
|
||||
if (Number(defalutValue) < Number(riskFactor.rules[0].minPrem) || Number(defalutValue) > Number(riskFactor.rules[0].maxPrem)) {
|
||||
this.$toast(localStorage.hint)
|
||||
this.$toast(showHint)
|
||||
this.nextStepFlag = true
|
||||
} else {
|
||||
if ((Number(defalutValue) * 10000) % (Number(currentEle.limit) * 10000) != 0) {
|
||||
// this.defalutAmt = currentEle.rules[productIndex].displayAmount
|
||||
this.$toast(localStorage.hint)
|
||||
this.$toast(showHint)
|
||||
this.nextStepFlag = true
|
||||
} else {
|
||||
this.mainRiskInfluenceAddRisk()
|
||||
@@ -1144,12 +1249,12 @@ export default {
|
||||
}
|
||||
} else {
|
||||
if (Number(defalutValue) < Number(min) || Number(defalutValue) > Number(max)) {
|
||||
this.$toast(localStorage.hint)
|
||||
this.$toast(showHint)
|
||||
this.nextStepFlag = true
|
||||
} else {
|
||||
if ((Number(defalutValue) * 10000) % (Number(currentEle.limit) * 10000) != 0) {
|
||||
// defalutValue = currentEle.rules[productIndex].displayAmount
|
||||
this.$toast(localStorage.hint)
|
||||
this.$toast(showHint)
|
||||
this.nextStepFlag = true
|
||||
} else {
|
||||
this.mainRiskInfluenceAddRisk()
|
||||
@@ -1181,6 +1286,32 @@ export default {
|
||||
}
|
||||
}
|
||||
|
||||
//GFRS_A0004需要验证责任
|
||||
for (let m = 0; m < this.chooseProducts.length; m++) {
|
||||
if (this.chooseProducts[m].productCode == 'GFRS_A0004') {
|
||||
let showHint = this.chooseProducts[m].hint
|
||||
let calFactorLst = this.chooseProducts[m].calFactorLst
|
||||
for (let i = 0; i < calFactorLst.length; i++) {
|
||||
if (calFactorLst[i].code === 'dutyGroup') {
|
||||
let duties = calFactorLst[i].rules
|
||||
for (let j = 0; j < duties.length; j++) {
|
||||
let item = duties[j]
|
||||
if (!this.valiA0004Duty(item.defaultDutyAmt, showHint, item)) {
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// 验证格式
|
||||
if (this.isRelated && this.isFrom != 'proposal' && this.policyNo) {
|
||||
let vl = /^[0-9\\]+$/.test(this.policyNo)
|
||||
if (!vl) {
|
||||
return this.$toast('关联保单的格式不正确')
|
||||
}
|
||||
}
|
||||
|
||||
//组装险种提交数据
|
||||
let [mainRiskCode, riskDTOLst] = ['', []]
|
||||
let rollInResult = '' //校验预计转入保费结果
|
||||
@@ -1276,6 +1407,10 @@ export default {
|
||||
}
|
||||
|
||||
if (resultData.result == 0) {
|
||||
//电投
|
||||
if (localStorage.isFrom == 'sale' && resultData.deleteFlag == '0') {
|
||||
localStorage.salePageFlag = '4'
|
||||
}
|
||||
//建议书
|
||||
if (localStorage.isFrom == 'proposal' && resultData.content.id) {
|
||||
this.saleInsuredPersonInfo.insuredId = resultData.content.id
|
||||
|
||||
@@ -134,7 +134,7 @@ export default {
|
||||
return
|
||||
}
|
||||
} else {
|
||||
//校验主合同被保人寿险职业等级
|
||||
//校验主合同被保险人寿险职业等级
|
||||
if (riskRules.lifeGradeLimit(resultData, this)) {
|
||||
return
|
||||
}
|
||||
@@ -156,6 +156,7 @@ export default {
|
||||
calFactorLst,
|
||||
hasAddtionRisk,
|
||||
isMainRisk: 0,
|
||||
hint: resultData.hint,
|
||||
riskType: resultData.riskType,
|
||||
riskName: this.result.riskName,
|
||||
productCode: this.result.riskProductCode,
|
||||
@@ -171,6 +172,7 @@ export default {
|
||||
calFactorLst,
|
||||
hasAddtionRisk,
|
||||
isMainRisk: 0,
|
||||
hint: resultData.hint,
|
||||
riskType: resultData.riskType,
|
||||
riskName: this.result.riskName,
|
||||
productCode: this.result.riskProductCode,
|
||||
@@ -219,7 +221,11 @@ export default {
|
||||
item[item.code] = factor[item.code]
|
||||
}
|
||||
}
|
||||
item.columns.push({ text: factor.showContent, value: factor[item.code], flag: factor[item.code + 'Flag'] })
|
||||
let itemColumns = { text: factor.showContent, value: factor[item.code], flag: factor[item.code + 'Flag'] }
|
||||
if (factor.medical !== undefined) {
|
||||
itemColumns.medical = factor.medical
|
||||
}
|
||||
item.columns.push(itemColumns)
|
||||
})
|
||||
} else if (item.type == 1) {
|
||||
//按年龄选择
|
||||
|
||||
@@ -179,7 +179,7 @@ export default {
|
||||
this.isShow = true
|
||||
})
|
||||
.catch(() => {
|
||||
this.$toast('删除失败!')
|
||||
/*this.$toast('删除失败!')*/
|
||||
})
|
||||
},
|
||||
async delProduct(index) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export default {
|
||||
//投、被保人年龄对险种的限制
|
||||
//投、被保险人年龄对险种的限制
|
||||
ageLimit(resultData, vm, isApplicant) {
|
||||
let age, tips
|
||||
if (isApplicant) {
|
||||
@@ -7,7 +7,7 @@ export default {
|
||||
tips = '投保人年龄不适合此款险种,请选择其他险种!'
|
||||
} else {
|
||||
age = this.getSaleInsuredPersonInfo().age
|
||||
tips = '被保人年龄不适合此款险种,请选择其他险种!'
|
||||
tips = '被保险人年龄不适合此款险种,请选择其他险种!'
|
||||
}
|
||||
let minAge = resultData.productTrialInfoDTO.ageRange && resultData.productTrialInfoDTO.ageRange.minAge
|
||||
let maxAge = resultData.productTrialInfoDTO.ageRange && resultData.productTrialInfoDTO.ageRange.maxAge;
|
||||
@@ -24,7 +24,7 @@ export default {
|
||||
let socialInsurance = resultData.productInsuredDTO.socialInsurance
|
||||
if (socialInsurance == 0) return false
|
||||
if (currentMedical != socialInsurance) {
|
||||
vm.$toast('被保人社保情况不适合此款险种,请选择其他险种!')
|
||||
vm.$toast('被保险人社保情况不适合此款险种,请选择其他险种!')
|
||||
return true
|
||||
}
|
||||
return false
|
||||
@@ -62,7 +62,7 @@ export default {
|
||||
}
|
||||
return false
|
||||
},
|
||||
//获取被保人信息
|
||||
//获取被保险人信息
|
||||
getSaleInsuredPersonInfo() {
|
||||
return localStorage.saleInsuredPersonInfo && JSON.parse(localStorage.saleInsuredPersonInfo)
|
||||
},
|
||||
|
||||
229
src/views/ebiz/manpower/ActiveManagement.vue
Normal file
@@ -0,0 +1,229 @@
|
||||
<!-- 活动量管理 -->
|
||||
<template>
|
||||
<div class="pb40">
|
||||
<van-collapse v-model="weeklyNames">
|
||||
<van-collapse-item title="活动量统计周报" title-class="fs16 fwb" name="1">
|
||||
<van-grid :column-num="2">
|
||||
<van-grid-item>
|
||||
<p class="fs14">周白板面谈数量</p>
|
||||
<p class="fs14 mt20 fwb">{{ weeklyInfo.whiteboard }}</p>
|
||||
</van-grid-item>
|
||||
<van-grid-item>
|
||||
<p class="fs14">周同业面谈数量</p>
|
||||
<p class="fs14 mt20 fwb">{{ weeklyInfo.sameTrade }}</p>
|
||||
</van-grid-item>
|
||||
</van-grid>
|
||||
</van-collapse-item>
|
||||
</van-collapse>
|
||||
|
||||
<!-- 人才库 -->
|
||||
<div class="bg-white">
|
||||
<van-collapse v-model="talentPoolCollapse" v-if="talentPoolList.length > 0">
|
||||
<van-collapse-item name="1" title-class="fs16 fwb">
|
||||
<div slot="title" class="flex justify-content-s align-items-c">
|
||||
人才库
|
||||
<van-icon class="mr10" name="plus" @click.stop="addTalentPool" />
|
||||
</div>
|
||||
<van-cell-group>
|
||||
<TalentPoolItem v-for="talentPoolInfo in talentPoolList" :key="talentPoolInfo.personnelCode" :talentPoolInfo="talentPoolInfo"></TalentPoolItem>
|
||||
</van-cell-group>
|
||||
<p v-if="showMoreTalentPool" class="p15 text-right red" @click="toListTalentPool">查看全部 >></p>
|
||||
</van-collapse-item>
|
||||
</van-collapse>
|
||||
<template v-else>
|
||||
<van-cell class="fs16 fwb">
|
||||
<div slot="title" class="flex justify-content-s align-items-c">
|
||||
人才库
|
||||
</div>
|
||||
</van-cell>
|
||||
<van-cell>
|
||||
<template slot="title">
|
||||
<div class="text-center"><van-icon name="add-square" size="50" color="#ee0a24" @click="addTalentPool" /></div>
|
||||
</template>
|
||||
</van-cell>
|
||||
</template>
|
||||
</div>
|
||||
|
||||
<!-- 当日增员活动日志 -->
|
||||
<div class="bg-white">
|
||||
<div class="p15" v-if="recordList.length == 0">
|
||||
<p class="fs16 fwb">当日增员活动日志</p>
|
||||
<div class="text-center van-hairline--top"><van-icon name="add-square" size="50" color="#ee0a24" @click="toEdit" /></div>
|
||||
</div>
|
||||
<van-collapse v-model="recordNames" v-else>
|
||||
<van-collapse-item name="1" title-class="fs16 fwb">
|
||||
<div slot="title" class="flex justify-content-s align-items-c">当日增员活动日志 <van-icon class="mr10" name="plus" @click.stop="toEdit" /></div>
|
||||
<ActivityLogItem :ActivityLogInfo="info" v-for="(info, index) in recordList" :key="index"></ActivityLogItem>
|
||||
<p v-if="showMore" class="p15 text-right red" @click="toList">查看全部 >></p>
|
||||
</van-collapse-item>
|
||||
</van-collapse>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import formatDate from '@/assets/js/utils/date-utils'
|
||||
import { Collapse, CollapseItem, Grid, GridItem, Cell, CellGroup } from 'vant'
|
||||
import TalentPoolItem from '@/components/ebiz/manpower/TalentPoolItem'
|
||||
import ActivityLogItem from '@/components/ebiz/manpower/ActivityLogItem'
|
||||
import { getAgentPersonnelListFirst, queryWeekly, queryRecordList } from '@/api/ebiz/manpower/manpower'
|
||||
|
||||
export default {
|
||||
components: {
|
||||
[Collapse.name]: Collapse,
|
||||
[CollapseItem.name]: CollapseItem,
|
||||
[Grid.name]: Grid,
|
||||
[GridItem.name]: GridItem,
|
||||
[Cell.name]: Cell,
|
||||
[CellGroup.name]: CellGroup,
|
||||
TalentPoolItem,
|
||||
ActivityLogItem
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
weeklyNames: ['1'],
|
||||
personnelNames: ['1'],
|
||||
recordNames: ['1'],
|
||||
talentPoolInfo: {
|
||||
name: '王辉',
|
||||
sameCompany: '中国人寿'
|
||||
},
|
||||
ActivityLogInfo: {
|
||||
recordCode: '',
|
||||
name: '王辉',
|
||||
// avatarUrl: 'https://img.yzcdn.cn/vant/cat.jpeg',
|
||||
age: '35岁',
|
||||
type: '同业',
|
||||
recordDate: formatDate.formatDate().split(' ')[0]
|
||||
},
|
||||
// 日志统计周报信息
|
||||
weeklyInfo: {
|
||||
whiteboard: '', // 白板
|
||||
sameTrade: '' // 同业
|
||||
},
|
||||
// 人才列表
|
||||
showMoreTalentPool: false,
|
||||
talentPoolCollapse: ['1'],
|
||||
talentPoolList: [],
|
||||
// 日志列表
|
||||
showMore: false,
|
||||
// 增员日志列表
|
||||
recordList: []
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.queryWeekly()
|
||||
this.getAgentPersonnelListFirst()
|
||||
this.queryRecordList()
|
||||
},
|
||||
methods: {
|
||||
// 获取日志统计周报
|
||||
queryWeekly() {
|
||||
queryWeekly({})
|
||||
.then(res => {
|
||||
console.log(res)
|
||||
if (res.result == 0) {
|
||||
this.weeklyInfo = res.content.weekly
|
||||
} else {
|
||||
this.$toast(res.resultMessage)
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err)
|
||||
})
|
||||
},
|
||||
// 查询增员日志列表
|
||||
queryRecordList() {
|
||||
let data = {
|
||||
recordDate: ''
|
||||
}
|
||||
queryRecordList(data)
|
||||
.then(res => {
|
||||
if (res.result == 0) {
|
||||
let data = res.content.records
|
||||
if (data.length > 5) {
|
||||
this.showMore = true
|
||||
data = data.slice(0, 5)
|
||||
} else {
|
||||
this.showMore = false
|
||||
}
|
||||
this.recordList = data
|
||||
} else {
|
||||
this.$toast(res.resultMessage)
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err)
|
||||
})
|
||||
},
|
||||
toList() {
|
||||
this.$jump({
|
||||
flag: 'h5',
|
||||
extra: {
|
||||
url: location.origin + `/#/manpower/ActivityLog/List`,
|
||||
forbidSwipeBack: '1',
|
||||
needRefresh: '1'
|
||||
},
|
||||
routerInfo: { path: '/manpower/ActivityLog/List' }
|
||||
})
|
||||
},
|
||||
toEdit() {
|
||||
this.$jump({
|
||||
flag: 'h5',
|
||||
extra: {
|
||||
url: location.origin + `/#/manpower/ActivityLog/Edit?isEdit=0`,
|
||||
forbidSwipeBack: '1',
|
||||
needRefresh: '1'
|
||||
},
|
||||
routerInfo: { path: '/manpower/ActivityLog/Edit?isEdit=0' }
|
||||
})
|
||||
},
|
||||
addTalentPool() {
|
||||
this.$jump({
|
||||
flag: 'h5',
|
||||
extra: {
|
||||
url: location.origin + '/#/manpower/talentPool/Add',
|
||||
needRefresh: '1'
|
||||
},
|
||||
routerInfo: {
|
||||
path: '/manpower/talentPool/Add'
|
||||
}
|
||||
})
|
||||
},
|
||||
toListTalentPool() {
|
||||
this.$jump({
|
||||
flag: 'h5',
|
||||
extra: {
|
||||
url: location.origin + '/#/manpower/talentPool/',
|
||||
needRefresh: '1'
|
||||
},
|
||||
routerInfo: {
|
||||
path: '/manpower/talentPool/'
|
||||
}
|
||||
})
|
||||
},
|
||||
getAgentPersonnelListFirst() {
|
||||
getAgentPersonnelListFirst()
|
||||
.then(res => {
|
||||
if (res.result == 0) {
|
||||
let data = res.content.personnels
|
||||
if (data.length > 5) {
|
||||
this.showMoreTalentPool = true
|
||||
data = data.slice(0, 5)
|
||||
} else {
|
||||
this.showMoreTalentPool = false
|
||||
}
|
||||
this.talentPoolList = data
|
||||
} else {
|
||||
this.$toast(res.resultMessage)
|
||||
}
|
||||
})
|
||||
.catch(() => {})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.red {
|
||||
color: #ee0a24 !important;
|
||||
}
|
||||
</style>
|
||||
58
src/views/ebiz/manpower/IncreaseStaffTools.vue
Normal file
@@ -0,0 +1,58 @@
|
||||
<!-- 增员工具 -->
|
||||
<template>
|
||||
<div>
|
||||
<UserInfoHeader />
|
||||
<van-cell-group>
|
||||
<NavItem v-for="(item, index) of navList" :key="index" :config="item" />
|
||||
</van-cell-group>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import UserInfoHeader from '@/components/ebiz/manpower/UserInfoHeader'
|
||||
import NavItem from '@/components/ebiz/manpower/NavItem'
|
||||
|
||||
import { CellGroup } from 'vant'
|
||||
export default {
|
||||
name: 'IncreaseStaffTools',
|
||||
components: {
|
||||
[UserInfoHeader.name]: UserInfoHeader,
|
||||
[NavItem.name]: NavItem,
|
||||
[CellGroup.name]: CellGroup
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
active: 0,
|
||||
navList: [
|
||||
{
|
||||
title: '公司介绍',
|
||||
icon: 'hotel-o',
|
||||
path: '/manpower/increaseStaffTools/CompanyIntroduction'
|
||||
},
|
||||
{
|
||||
title: '政策方案',
|
||||
icon: 'orders-o',
|
||||
path: '/manpower/increaseStaffTools/PolicyOptions'
|
||||
},
|
||||
{
|
||||
title: '产品信息',
|
||||
icon: 'bookmark-o',
|
||||
path: '/product/productList'
|
||||
},
|
||||
{
|
||||
title: 'DISC性格分析',
|
||||
icon: 'newspaper-o',
|
||||
path: '/manpower/DiscAnalysis/List'
|
||||
}
|
||||
// {
|
||||
// title: '培训体系',
|
||||
// src: 'http://localhost:8080/favicon.ico',
|
||||
// path: '/'
|
||||
// }
|
||||
]
|
||||
}
|
||||
},
|
||||
methods: {}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped></style>
|
||||
52
src/views/ebiz/manpower/Navigation.vue
Normal file
@@ -0,0 +1,52 @@
|
||||
<template>
|
||||
<div>
|
||||
<UserInfoHeader />
|
||||
<van-cell-group>
|
||||
<NavItem v-for="(item, index) of navList" :key="index" :config="item" />
|
||||
</van-cell-group>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import UserInfoHeader from '@/components/ebiz/manpower/UserInfoHeader'
|
||||
import NavItem from '@/components/ebiz/manpower/NavItem'
|
||||
|
||||
import { CellGroup } from 'vant'
|
||||
export default {
|
||||
name: 'Navigation',
|
||||
components: {
|
||||
[UserInfoHeader.name]: UserInfoHeader,
|
||||
[NavItem.name]: NavItem,
|
||||
[CellGroup.name]: CellGroup
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
active: 0,
|
||||
navList: [
|
||||
{
|
||||
title: '个人中心',
|
||||
icon: 'user-o',
|
||||
path: '/manpower/PersonalCenter'
|
||||
},
|
||||
{
|
||||
title: '增员工具',
|
||||
icon: 'friends-o',
|
||||
path: '/manpower/IncreaseStaffTools'
|
||||
},
|
||||
{
|
||||
title: '活动量管理',
|
||||
icon: 'todo-list-o',
|
||||
path: '/manpower/ActiveManagement'
|
||||
},
|
||||
{
|
||||
title: '培训上岗',
|
||||
icon: 'records',
|
||||
path: '/manpower/Training'
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
methods: {}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped></style>
|
||||
198
src/views/ebiz/manpower/PersonalCenter.vue
Normal file
@@ -0,0 +1,198 @@
|
||||
<template>
|
||||
<div class="personal-center-main" v-if="success">
|
||||
<van-cell-group class="pl15 mt10">
|
||||
<van-cell title="姓名" :value="agentInfo.name" />
|
||||
<van-cell title="入职职级" :value="agentInfo.entryGrade" />
|
||||
<van-cell title="现任职级" :value="agentInfo.presentGrade" />
|
||||
<van-cell title="入职时间" :value="agentInfo.entryTime" />
|
||||
<van-cell title="现任职级时间" :value="agentInfo.presentGradeTime" />
|
||||
</van-cell-group>
|
||||
|
||||
<van-tabs v-model="active" class="mt10" sticky>
|
||||
<van-tab title="团队人力架构">
|
||||
<van-cell-group class="pl15">
|
||||
<van-cell title="直辖组人力" :value="teamInfo.jurisdictionGroupNum" />
|
||||
<van-cell title="直辖部人力" :value="teamInfo.jurisdictionDepartNum" />
|
||||
<van-cell title="直辖部主管数" :value="teamInfo.jurisdictionGroupManagerNum" />
|
||||
<van-cell title="大直辖人力" :value="teamInfo.majorJurisdictionNum" />
|
||||
<van-cell title="直接增员人数" :value="teamInfo.directReinforceNum" />
|
||||
<van-cell title="直接育成主管数量" :value="teamInfo.directBredManagerNum" />
|
||||
<van-cell title="直接育成部门数量" :value="teamInfo.directBredDepartNum" />
|
||||
<van-cell title="全辖团队人力" :value="teamInfo.allTeamNum" />
|
||||
</van-cell-group>
|
||||
</van-tab>
|
||||
<van-tab title="实时新增数据">
|
||||
<van-grid :border="true" :column-num="2" class="p15">
|
||||
<van-grid-item>
|
||||
当月个人新增
|
||||
<span class="c-gray-darker fwb mt20">{{ realAddDataInfo.currentMonthPersonalAdd }}</span>
|
||||
</van-grid-item>
|
||||
<van-grid-item>
|
||||
直辖组新增
|
||||
<span class="c-gray-darker fwb mt20">{{ realAddDataInfo.jurisdictionGroupAdd }}</span>
|
||||
</van-grid-item>
|
||||
<van-grid-item>
|
||||
直辖部新增
|
||||
<span class="c-gray-darker fwb mt20">{{ realAddDataInfo.jurisdictionDepartAdd }}</span>
|
||||
</van-grid-item>
|
||||
<van-grid-item>
|
||||
大直辖新增
|
||||
<span class="c-gray-darker fwb mt20">{{ realAddDataInfo.majorJurisdictionAdd }}</span>
|
||||
</van-grid-item>
|
||||
</van-grid>
|
||||
</van-tab>
|
||||
<van-tab title="人力架构">
|
||||
<van-collapse v-model="activeNames" accordion>
|
||||
<van-collapse-item v-for="(item, index) of frameworkInfoLstAdmin" :name="index" :key="index">
|
||||
<div slot="title">
|
||||
<span class="tagJOB">{{ item.gradeEnglishName }}</span>
|
||||
{{ item.agentName }} ({{ item.manageStaffNum }})
|
||||
</div>
|
||||
<van-grid :border="true" :column-num="2" class="p15">
|
||||
<van-grid-item>
|
||||
当月个人新增
|
||||
<span class="c-gray-darker fwb mt20">{{ item.personalRealAddDataInfo.currentMonthPersonalAdd }}</span>
|
||||
</van-grid-item>
|
||||
<van-grid-item>
|
||||
直辖组新增
|
||||
<span class="c-gray-darker fwb mt20">{{ item.personalRealAddDataInfo.jurisdictionGroupAdd }}</span>
|
||||
</van-grid-item>
|
||||
<van-grid-item>
|
||||
直辖部新增
|
||||
<span class="c-gray-darker fwb mt20">{{ item.personalRealAddDataInfo.jurisdictionDepartAdd }}</span>
|
||||
</van-grid-item>
|
||||
<van-grid-item>
|
||||
大直辖新增
|
||||
<span class="c-gray-darker fwb mt20">{{ item.personalRealAddDataInfo.majorJurisdictionAdd }}</span>
|
||||
</van-grid-item>
|
||||
</van-grid>
|
||||
</van-collapse-item>
|
||||
</van-collapse>
|
||||
<van-cell-group class="">
|
||||
<van-cell v-for="(item, index) of frameworkInfoLstNotAdmin" :key="index">
|
||||
<div slot="title">
|
||||
<span class="tagJOB">{{ item.gradeEnglishName }}</span>
|
||||
<span class="name">{{ item.agentName }}</span>
|
||||
</div>
|
||||
</van-cell>
|
||||
</van-cell-group>
|
||||
</van-tab>
|
||||
</van-tabs>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
const isAdmin = {
|
||||
BD: true,
|
||||
SBM: true,
|
||||
BM: true,
|
||||
SAS: true,
|
||||
AS: true,
|
||||
CM: false,
|
||||
CA: false
|
||||
}
|
||||
|
||||
import { Cell, CellGroup, Tab, Tabs, Grid, GridItem, Collapse, CollapseItem } from 'vant'
|
||||
import { getPersonalInfo } from '@/api/ebiz/manpower/manpower'
|
||||
export default {
|
||||
name: 'PersonalCenter',
|
||||
components: {
|
||||
[Cell.name]: Cell,
|
||||
[CellGroup.name]: CellGroup,
|
||||
[Tab.name]: Tab,
|
||||
[Tabs.name]: Tabs,
|
||||
[Grid.name]: Grid,
|
||||
[GridItem.name]: GridItem,
|
||||
[Collapse.name]: Collapse,
|
||||
[CollapseItem.name]: CollapseItem
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
activeNames: [],
|
||||
active: '',
|
||||
success: false,
|
||||
agentInfo: null,
|
||||
realAddDataInfo: null,
|
||||
frameworkInfoLst: null,
|
||||
teamInfo: null
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
frameworkInfoLstAdmin: function() {
|
||||
if (this.frameworkInfoLst) {
|
||||
return this.frameworkInfoLst.filter(item => {
|
||||
return isAdmin[item.gradeEnglishName]
|
||||
})
|
||||
}
|
||||
return []
|
||||
},
|
||||
frameworkInfoLstNotAdmin: function() {
|
||||
if (this.frameworkInfoLst) {
|
||||
return this.frameworkInfoLst.filter(item => {
|
||||
return !isAdmin[item.gradeEnglishName]
|
||||
})
|
||||
}
|
||||
return []
|
||||
}
|
||||
},
|
||||
watch: {},
|
||||
created() {
|
||||
getPersonalInfo({
|
||||
agentCode: localStorage.getItem('agentCode')
|
||||
})
|
||||
.then(res => {
|
||||
if (res.result == 0) {
|
||||
for (let key of Object.keys(res.content)) {
|
||||
this[key] = res.content[key]
|
||||
}
|
||||
this.success = true
|
||||
} else {
|
||||
this.$toast(res.resultMessage)
|
||||
}
|
||||
})
|
||||
.catch(() => {})
|
||||
},
|
||||
mounted() {},
|
||||
methods: {}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped="scoped" lang="scss">
|
||||
.personal-center-main {
|
||||
/deep/.van-cell:not(:last-child)::after {
|
||||
position: absolute;
|
||||
box-sizing: border-box;
|
||||
content: ' ';
|
||||
pointer-events: none;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
border-bottom: 1px solid #dadada;
|
||||
-webkit-transform: scaleY(0.5);
|
||||
transform: scaleY(0.5);
|
||||
}
|
||||
/deep/ .van-cell__value {
|
||||
text-align: left !important;
|
||||
}
|
||||
/deep/.van-collapse-item__title {
|
||||
padding-left: 60px;
|
||||
}
|
||||
.tagJOB {
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
line-height: 30px;
|
||||
font-size: 3vw;
|
||||
left: 20px;
|
||||
top: 7px;
|
||||
text-align: center;
|
||||
border-radius: 999px;
|
||||
background-color: #5ca7de;
|
||||
color: #fff;
|
||||
}
|
||||
.name {
|
||||
padding-left: 45px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
64
src/views/ebiz/manpower/Training.vue
Normal file
@@ -0,0 +1,64 @@
|
||||
<template>
|
||||
<div>
|
||||
<UserInfoHeader />
|
||||
<van-cell-group>
|
||||
<NavItem v-for="(item, index) of navList" :key="index" :config="item" />
|
||||
</van-cell-group>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import UserInfoHeader from '@/components/ebiz/manpower/UserInfoHeader'
|
||||
import NavItem from '@/components/ebiz/manpower/NavItem'
|
||||
|
||||
import { CellGroup } from 'vant'
|
||||
|
||||
import { getTokenForUserModel } from '@/api/ebiz/manpower/manpower'
|
||||
|
||||
export default {
|
||||
name: 'Navigation',
|
||||
components: {
|
||||
[UserInfoHeader.name]: UserInfoHeader,
|
||||
[NavItem.name]: NavItem,
|
||||
[CellGroup.name]: CellGroup
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
active: 0,
|
||||
navList: [
|
||||
{
|
||||
title: '增员分享',
|
||||
icon: 'cluster-o',
|
||||
path: '/',
|
||||
share: true,
|
||||
shareConfig: null
|
||||
},
|
||||
{
|
||||
title: '增员审批',
|
||||
icon: 'comment-o',
|
||||
path: '/agentEenter/approve/ApproveList'
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.getInfo()
|
||||
},
|
||||
methods: {
|
||||
async getInfo() {
|
||||
const res = await getTokenForUserModel()
|
||||
if (res.result == 0) {
|
||||
this.navList[0].shareConfig = {
|
||||
title: res.title,
|
||||
url: res.url,
|
||||
content: res.content,
|
||||
img: res.icon
|
||||
}
|
||||
} else {
|
||||
this.$toast(res.resultMessage)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped></style>
|
||||
255
src/views/ebiz/manpower/activityLog/Edit.vue
Normal file
@@ -0,0 +1,255 @@
|
||||
<!-- 活动日志-修改日志 -->
|
||||
<template>
|
||||
<div>
|
||||
<van-cell-group>
|
||||
<van-field readonly v-model="recordInfo.recordDate" label="日期" />
|
||||
<van-field
|
||||
:readonly="isDisable"
|
||||
required
|
||||
v-model="recordInfo.name"
|
||||
label="姓名"
|
||||
placeholder="请输入姓名"
|
||||
v-validate="'required|manpowerName'"
|
||||
data-vv-name="姓名"
|
||||
/>
|
||||
<van-field
|
||||
:readonly="isDisable"
|
||||
required
|
||||
v-model="recordInfo.age"
|
||||
type="digit"
|
||||
label="年龄"
|
||||
placeholder="请输入年龄"
|
||||
v-validate="'required|onlyNumber|onlyInteger|maxAge'"
|
||||
data-vv-name="年龄"
|
||||
/>
|
||||
<select-radio :disabled="isDisable" :radios="typeArr" label="类型" name="类型" :value.sync="recordInfo.type" :required="true"></select-radio>
|
||||
<van-field
|
||||
:readonly="isDisable"
|
||||
required
|
||||
v-model="recordInfo.interviewNum"
|
||||
type="digit"
|
||||
label="面谈次数"
|
||||
placeholder="请输入面谈次数"
|
||||
v-validate="'required|onlyNumber|onlyInteger'"
|
||||
data-vv-name="面谈次数"
|
||||
/>
|
||||
<van-field
|
||||
required
|
||||
readonly
|
||||
v-model="logResult"
|
||||
label="面谈结果"
|
||||
placeholder="请选择面谈结果"
|
||||
@click="handleRsult"
|
||||
v-validate="'required'"
|
||||
data-vv-name="面谈结果"
|
||||
/>
|
||||
<van-field
|
||||
required
|
||||
readonly
|
||||
v-model="logOccupation"
|
||||
label="过往职业"
|
||||
placeholder="请选择过往职业"
|
||||
@click="handleOccupation"
|
||||
v-validate="'required'"
|
||||
data-vv-name="过往职业"
|
||||
/>
|
||||
</van-cell-group>
|
||||
<van-button type="danger" class="bottom-btn" size="large" v-no-more-click="1000" v-if="isEdit == 0" @click="subInfo">保存</van-button>
|
||||
<van-popup v-model="showResultArr" position="bottom" :style="{ height: '30%' }">
|
||||
<van-picker show-toolbar :columns="resultArr" @cancel="showResultArr = false" @confirm="selectResult" />
|
||||
</van-popup>
|
||||
<van-popup v-model="showOccupationArr" position="bottom" :style="{ height: '30%' }">
|
||||
<van-picker show-toolbar :columns="occupationArr" @cancel="showOccupationArr = false" @confirm="selectOccupation" />
|
||||
</van-popup>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import formatDate from '@/assets/js/utils/date-utils'
|
||||
import { Field, CellGroup, Popup, Picker, Cell, Button } from 'vant'
|
||||
import { queryRecordDetail, saveRecord } from '@/api/ebiz/manpower/manpower'
|
||||
import SelectRadio from '@/components/ebiz/SelectRadio'
|
||||
export default {
|
||||
components: {
|
||||
[Cell.name]: Cell,
|
||||
[Field.name]: Field,
|
||||
[CellGroup.name]: CellGroup,
|
||||
[Button.name]: Button,
|
||||
[Popup.name]: Popup,
|
||||
[Picker.name]: Picker,
|
||||
[SelectRadio.name]: SelectRadio
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
recordInfo: {
|
||||
recordDate: formatDate.formatDate().split(' ')[0],
|
||||
name: '',
|
||||
age: '',
|
||||
type: 0,
|
||||
interviewNum: '', // 面试次数
|
||||
interviewResult: '', // 面谈结果
|
||||
pastOccu: '' // 过往职业
|
||||
},
|
||||
recordCode: '',
|
||||
isEdit: '',
|
||||
isDisable: '',
|
||||
// 面试结果
|
||||
showResultArr: false,
|
||||
// 职业选择
|
||||
showOccupationArr: false,
|
||||
typeArr: [
|
||||
{
|
||||
label: '同业',
|
||||
value: '0'
|
||||
},
|
||||
{
|
||||
label: '白板',
|
||||
value: '1'
|
||||
}
|
||||
],
|
||||
resultArr: [
|
||||
{ id: '0', text: '不加盟' },
|
||||
{ id: '1', text: '考虑中' },
|
||||
{ id: '2', text: '进班了解' },
|
||||
{ id: '3', text: '同意加盟' }
|
||||
],
|
||||
occupationArr: [
|
||||
{ id: '001', text: '一般内勤职员' },
|
||||
{ id: '002', text: '其他金融行业' },
|
||||
{ id: '003', text: '家庭主妇' },
|
||||
{ id: '004', text: '自由职业' },
|
||||
{ id: '005', text: '离退休人员' },
|
||||
{ id: '006', text: '个体经营者' },
|
||||
{ id: '007', text: '销售' },
|
||||
{ id: '008', text: '公务员' },
|
||||
{ id: '009', text: '保险外勤' },
|
||||
{ id: '010', text: '保险内勤' },
|
||||
{ id: '011', text: '其他' }
|
||||
]
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.recordCode = this.$route.query.code || ''
|
||||
this.isEdit = this.$route.query.isEdit
|
||||
this.isDisable = this.isEdit == '1'
|
||||
this.queryRecordDetail()
|
||||
},
|
||||
computed: {
|
||||
logResult() {
|
||||
if (this.recordInfo.interviewResult) {
|
||||
return this.resultArr.find(ele => ele.id === this.recordInfo.interviewResult).text
|
||||
} else {
|
||||
return ''
|
||||
}
|
||||
},
|
||||
logOccupation() {
|
||||
if (this.recordInfo.pastOccu) {
|
||||
return this.occupationArr.find(ele => ele.id === this.recordInfo.pastOccu).text
|
||||
} else {
|
||||
return ''
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
queryRecordDetail() {
|
||||
if (!this.recordCode) {
|
||||
return false
|
||||
}
|
||||
let data = {
|
||||
recordCode: this.recordCode
|
||||
}
|
||||
queryRecordDetail(data)
|
||||
.then(res => {
|
||||
console.log(res)
|
||||
if (res.result == 0) {
|
||||
this.recordInfo = res.content.record
|
||||
} else {
|
||||
this.$toast(res.resultMessage)
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err)
|
||||
})
|
||||
},
|
||||
subInfo() {
|
||||
this.$validator.validateAll().then(result => {
|
||||
if (result) {
|
||||
let data = {
|
||||
recordCode: this.recordCode,
|
||||
name: this.recordInfo.name,
|
||||
age: this.recordInfo.age,
|
||||
type: this.recordInfo.type || '0',
|
||||
interviewNum: this.recordInfo.interviewNum,
|
||||
interviewResult: this.recordInfo.interviewResult,
|
||||
pastOccu: this.recordInfo.pastOccu
|
||||
}
|
||||
console.log(data)
|
||||
saveRecord(data)
|
||||
.then(res => {
|
||||
console.log(res)
|
||||
if (res.result == 0) {
|
||||
this.$jump({
|
||||
flag: 'goBack',
|
||||
extra: {
|
||||
refresh: '1',
|
||||
index: '-1',
|
||||
forbidSwipeBack: '1'
|
||||
},
|
||||
routerInfo: {
|
||||
type: 2
|
||||
}
|
||||
})
|
||||
} else {
|
||||
this.$toast(res.resultMessage)
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err)
|
||||
})
|
||||
} else {
|
||||
this.$toast(this.errors.all()[0])
|
||||
}
|
||||
})
|
||||
},
|
||||
slectType(type) {
|
||||
this.recordInfo.type = type.id
|
||||
},
|
||||
handleRsult() {
|
||||
if (this.isDisable) {
|
||||
return false
|
||||
}
|
||||
this.showResultArr = true
|
||||
},
|
||||
handleOccupation() {
|
||||
if (this.isDisable) {
|
||||
return false
|
||||
}
|
||||
this.showOccupationArr = true
|
||||
},
|
||||
selectResult(val) {
|
||||
this.recordInfo.interviewResult = val.id
|
||||
this.showResultArr = false
|
||||
},
|
||||
selectOccupation(val) {
|
||||
this.recordInfo.pastOccu = val.id
|
||||
this.showOccupationArr = false
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
::v-deep .van-cell__title {
|
||||
max-width: 90px;
|
||||
}
|
||||
.type-tag {
|
||||
// display: inline-block;
|
||||
width: 40px;
|
||||
height: 16px;
|
||||
border: 1px solid gray;
|
||||
border-radius: 4px;
|
||||
}
|
||||
.select-tag {
|
||||
background: #1989fa;
|
||||
color: white;
|
||||
border: none;
|
||||
}
|
||||
</style>
|
||||
105
src/views/ebiz/manpower/activityLog/List.vue
Normal file
@@ -0,0 +1,105 @@
|
||||
<!-- 活动日志-日志列表 -->
|
||||
<template>
|
||||
<div class="pb60">
|
||||
<div class="p15 flex justify-content-s align-items-c">
|
||||
<p>
|
||||
<span v-if="isToday" class="fwb">今天</span>
|
||||
<span v-else class="blue" @click="backToday">回到今天</span>
|
||||
</p>
|
||||
<p @click="openCalendar">{{ showTime }}</p>
|
||||
</div>
|
||||
<ActivityLogItem :ActivityLogInfo="item" v-for="(item, index) in recordList" :key="index"></ActivityLogItem>
|
||||
<!-- <div class="bottom-btn text-center">
|
||||
<van-icon name="add-square" size="50" color="#ee0a24" @click="toEdit" />
|
||||
</div> -->
|
||||
<van-button type="danger" class="bottom-btn" size="large" @click="toEdit" v-no-more-click="1000">新增</van-button>
|
||||
<van-popup v-model="showDateTime" position="bottom" :style="{ height: '30%' }">
|
||||
<van-datetime-picker v-model="selectTime" type="date" :max-date="maxDate" @confirm="confirm" @cancel="cancel" />
|
||||
</van-popup>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import formatDate from '@/assets/js/utils/date-utils'
|
||||
import { DatetimePicker, Popup } from 'vant'
|
||||
import ActivityLogItem from '@/components/ebiz/manpower/ActivityLogItem'
|
||||
import { queryRecordList } from '@/api/ebiz/manpower/manpower'
|
||||
|
||||
export default {
|
||||
components: {
|
||||
[DatetimePicker.name]: DatetimePicker,
|
||||
[Popup.name]: Popup,
|
||||
ActivityLogItem
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
isToday: true,
|
||||
showTime: `< ${formatDate.formatDate().split(' ')[0]} >`,
|
||||
todayTime: `< ${formatDate.formatDate().split(' ')[0]} >`,
|
||||
selectTime: new Date(),
|
||||
maxDate: new Date(),
|
||||
showDateTime: false,
|
||||
ActivityLogInfo: {
|
||||
name: '王辉',
|
||||
// avatarUrl: 'https://img.yzcdn.cn/vant/cat.jpeg',
|
||||
age: '35岁',
|
||||
flag: '同业',
|
||||
recordDate: ''
|
||||
},
|
||||
recordList: []
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.queryRecordList(formatDate.formatDate().split(' ')[0])
|
||||
},
|
||||
methods: {
|
||||
queryRecordList(date) {
|
||||
let data = {
|
||||
recordDate: date
|
||||
}
|
||||
queryRecordList(data)
|
||||
.then(res => {
|
||||
console.log(res)
|
||||
if (res.result == 0) {
|
||||
this.recordList = res.content.records
|
||||
} else {
|
||||
this.$toast(res.resultMessage)
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err)
|
||||
})
|
||||
},
|
||||
toEdit() {
|
||||
this.$jump({
|
||||
flag: 'h5',
|
||||
extra: {
|
||||
url: location.origin + `/#/manpower/ActivityLog/Edit?isEdit=0`,
|
||||
forbidSwipeBack: '1'
|
||||
},
|
||||
routerInfo: { path: '/manpower/ActivityLog/Edit?isEdit=0' }
|
||||
})
|
||||
},
|
||||
openCalendar() {
|
||||
this.showDateTime = true
|
||||
},
|
||||
confirm(val) {
|
||||
this.showTime = `< ${formatDate.formatDate(val).split(' ')[0]} >`
|
||||
this.ActivityLogInfo.recordDate = formatDate.formatDate(val).split(' ')[0]
|
||||
if (this.showTime !== this.todayTime) {
|
||||
this.isToday = false
|
||||
}
|
||||
this.queryRecordList(formatDate.formatDate(val).split(' ')[0])
|
||||
this.showDateTime = false
|
||||
},
|
||||
cancel() {
|
||||
this.showDateTime = false
|
||||
},
|
||||
backToday() {
|
||||
this.showTime = this.todayTime
|
||||
this.ActivityLogInfo.recordDate = formatDate.formatDate().split(' ')[0]
|
||||
this.isToday = true
|
||||
this.queryRecordList(formatDate.formatDate().split(' ')[0])
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
201
src/views/ebiz/manpower/discAnalysis/List.vue
Normal file
@@ -0,0 +1,201 @@
|
||||
<!-- DISC性格分析 - 统计列表 -->
|
||||
<template>
|
||||
<div class="discAnalysis-list">
|
||||
<van-sticky>
|
||||
<div class="top-table" sticky style="background:#fff">
|
||||
<van-row type="flex" align="center">
|
||||
<van-col class="order" span="2">序号</van-col>
|
||||
<van-col class="subTime" span="6">提交时间</van-col>
|
||||
<van-col class="name" span="6">手机号</van-col>
|
||||
<van-col class="name" span="5">客户姓名</van-col>
|
||||
<van-col class="button" span="5"></van-col>
|
||||
</van-row>
|
||||
</div>
|
||||
</van-sticky>
|
||||
<van-list
|
||||
v-model="loading"
|
||||
:immediate-check="false"
|
||||
:finished="finished"
|
||||
:finished-text="finishedText"
|
||||
error-text="请求失败,点击重新加载"
|
||||
:error.sync="error"
|
||||
@load="loadMore"
|
||||
>
|
||||
<div v-if="isSuccess">
|
||||
<div v-if="answerList.length > 0" class="pb80">
|
||||
<div class="main-table" v-for="(item, index) in answerList" :key="index">
|
||||
<van-row type="flex" align="center">
|
||||
<van-col class="order" span="2">{{ index + 1 }}</van-col>
|
||||
<van-col class="subTime" span="6">{{ item.answerDate }}</van-col>
|
||||
<van-col class="name" span="6">{{ item.mobile }}</van-col>
|
||||
<van-col class="name" span="5">{{ item.customerName }}</van-col>
|
||||
<van-col class="button" span="5">
|
||||
<van-button type="danger" round size="small" class="mr5" @click="result(item)" v-no-more-click="1000">查看结果</van-button>
|
||||
</van-col>
|
||||
</van-row>
|
||||
</div>
|
||||
</div>
|
||||
<div v-else class="text-center">
|
||||
<img class="mt40" src="@/assets/images/pic_page-non.png" />
|
||||
<div class="fs17 mt40">暂无数据</div>
|
||||
</div>
|
||||
<div class=" pb20 pr20 pl20 bottom-div">
|
||||
<van-button type="danger" @click="share" style="width:90%" v-no-more-click="1000">分享给客户</van-button>
|
||||
</div>
|
||||
</div>
|
||||
</van-list>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Sticky, Row, Col, List } from 'vant'
|
||||
import { discAnalysisList } from '@/api/ebiz/manpower/manpower'
|
||||
import { weixinShare } from '@/assets/js/utils/wxShare.js'
|
||||
|
||||
export default {
|
||||
name: '',
|
||||
filters: {},
|
||||
data() {
|
||||
return {
|
||||
loading: false,
|
||||
finished: false,
|
||||
currentPage: 1, //当前页数
|
||||
error: false,
|
||||
finishedText: '',
|
||||
pageSize: 15, //每页数据条数
|
||||
isSuccess: false,
|
||||
answerList: [] //答卷列表
|
||||
}
|
||||
},
|
||||
watch: {},
|
||||
created() {},
|
||||
mounted() {
|
||||
document.body.style.backgroundColor = '#fff'
|
||||
localStorage.setItem('DISC-answerList', '')
|
||||
this.loadMore()
|
||||
weixinShare({
|
||||
title: `“客观的认识自己,正确的规划自己”`,
|
||||
imgUrl: this.$assetsUrl + 'images/logo.png',
|
||||
desc: '国富为您量身定制的保险产品,请查收'
|
||||
})
|
||||
},
|
||||
beforeRouteLeave(to, from, next) {
|
||||
document.body.style.backgroundColor = ''
|
||||
next()
|
||||
},
|
||||
methods: {
|
||||
//分页用
|
||||
loadMore() {
|
||||
let pageInfo = {
|
||||
pageNum: this.currentPage,
|
||||
pageSize: this.pageSize
|
||||
}
|
||||
this.getDiscAnalysisList(pageInfo)
|
||||
},
|
||||
//获取DISC统计列表数据
|
||||
getDiscAnalysisList(pageInfo) {
|
||||
let params = {
|
||||
...pageInfo,
|
||||
...{
|
||||
agentCode: '',
|
||||
tableCode: 'GFRS-DISC'
|
||||
}
|
||||
}
|
||||
discAnalysisList(params).then(res => {
|
||||
if (res.result == '0') {
|
||||
this.isSuccess = true
|
||||
this.currentPage++
|
||||
this.loading = false
|
||||
if (res.content == null) {
|
||||
this.finished = true
|
||||
this.loading = false
|
||||
this.finishedText = ''
|
||||
return
|
||||
}
|
||||
let answerList = res.content.answerList.list
|
||||
this.answerList = this.answerList.concat(answerList)
|
||||
if (answerList.length == 0) {
|
||||
this.finishedText = ''
|
||||
} else {
|
||||
this.finishedText = '已经全部加载'
|
||||
}
|
||||
if (this.answerList.length == 0) {
|
||||
this.isSuccess = false
|
||||
}
|
||||
this.loading = false
|
||||
if (res.content.nextPage == 0) {
|
||||
//当下一页为0时 表示全部数据加载完毕
|
||||
this.finished = true
|
||||
}
|
||||
} else {
|
||||
this.finished = true
|
||||
this.loading = false
|
||||
this.finishedText = res.resultMessage
|
||||
}
|
||||
})
|
||||
},
|
||||
//微信分享
|
||||
share() {
|
||||
let url = location.origin + '/#/manpower/DiscAnalysis/Share?token=' + localStorage.getItem('token') + '&shareTime=' + new Date().getTime()
|
||||
// console.log(url)
|
||||
// eslint-disable-next-line no-undef
|
||||
EWebBridge.webCallAppInJs('bridge', {
|
||||
flag: 'share',
|
||||
extra: {
|
||||
title: `“客观的认识自己,正确的规划自己”`,
|
||||
content: `您有一份DISC性格测试表待完成`,
|
||||
url: url,
|
||||
img: this.$assetsUrl + 'images/logo.png'
|
||||
}
|
||||
})
|
||||
},
|
||||
result(detail) {
|
||||
localStorage.setItem('DISC-answerList', JSON.stringify(detail.answerDetail))
|
||||
let url = `/manpower/DiscAnalysis/Result`
|
||||
this.$jump({
|
||||
flag: 'h5',
|
||||
extra: {
|
||||
url: location.origin + `/#${url}`
|
||||
},
|
||||
routerInfo: { path: url }
|
||||
})
|
||||
}
|
||||
},
|
||||
components: {
|
||||
[Sticky.name]: Sticky,
|
||||
[Row.name]: Row,
|
||||
[List.name]: List,
|
||||
[Col.name]: Col
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped="scoped" lang="scss">
|
||||
.top-table,
|
||||
.main-table {
|
||||
// margin: 10px 0;
|
||||
padding: 0 10px;
|
||||
}
|
||||
.van-col {
|
||||
height: 51px;
|
||||
font-size: 13px;
|
||||
font-weight: 400;
|
||||
color: rgba(0, 0, 0, 1);
|
||||
line-height: 51px;
|
||||
text-align: center;
|
||||
}
|
||||
.top-table .van-col {
|
||||
font-size: 14px;
|
||||
}
|
||||
.main-table .van-col {
|
||||
border-bottom: 1px solid #e7e7e7;
|
||||
}
|
||||
.bottom-div {
|
||||
position: fixed;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
width: 100%;
|
||||
z-index: 999;
|
||||
background: #fff;
|
||||
}
|
||||
</style>
|
||||
210
src/views/ebiz/manpower/discAnalysis/Question.vue
Normal file
@@ -0,0 +1,210 @@
|
||||
<!-- DISC性格分析 - 问卷答题页面 -->
|
||||
<template>
|
||||
<div class="container pb50">
|
||||
<van-field v-model="formData.customerName" class="mt10" required clearable label="姓名" name="姓名" placeholder="请输入" v-validate="'required|manpowerName'" />
|
||||
<van-field
|
||||
v-model="formData.mobile"
|
||||
clearable
|
||||
required
|
||||
label="手机号码"
|
||||
name="手机号码"
|
||||
placeholder="请输入"
|
||||
maxlength="11"
|
||||
type="tel"
|
||||
v-validate="'required|mobile'"
|
||||
/>
|
||||
<div :class="index>0?'mt10':''" v-for="(qesObj, index) of questions" :key="index">
|
||||
<van-cell-group>
|
||||
<van-cell class="noline">
|
||||
<template slot="title">
|
||||
<span class="qTitle fs15">{{qesObj.title}}</span>
|
||||
<van-button class="ml10 prt-3" round plain size="mini" type="info">{{qesObj.tag}}</van-button>
|
||||
</template>
|
||||
</van-cell>
|
||||
</van-cell-group>
|
||||
<template v-if="index ===0">
|
||||
<van-radio-group v-model="answerList[qItem.quCode]" v-for="(qItem, qIndex) of qesObj.questions" :class="qIndex>0?'mt10':''" :key="qIndex">
|
||||
<van-cell-group>
|
||||
<van-cell class="noline" title-class="qTitle fs15" :title="(qIndex+1)+'. '+ qItem.quTitle"></van-cell>
|
||||
<van-cell v-for="(qAns, qAIndex) of qItem.qaAnswerInfoResponseDTOList" :key="qAIndex" title-class="ml10 c-gray-dark fs14" :title="qAns.anContent" clickable @click="changeAns(qItem.quCode,qAns.anMessage)">
|
||||
<template #icon>
|
||||
<van-radio :name="qAns.anMessage" />
|
||||
</template>
|
||||
</van-cell>
|
||||
</van-cell-group>
|
||||
</van-radio-group>
|
||||
</template>
|
||||
<template v-else>
|
||||
<van-row type="flex" v-for="(qItem, qIndex) of qesObj.questions" :class="qIndex>0?'mt10':''" :key="qIndex">
|
||||
<van-col class="bg-white">
|
||||
<van-cell class="noline pr0" title-class="qTitle fs15" :title="(qIndex+11)+'. '+ qItem.quTitle"></van-cell>
|
||||
</van-col>
|
||||
<van-col>
|
||||
<van-radio-group v-model="answerList[qItem.quCode]" >
|
||||
<van-cell-group>
|
||||
<van-cell v-for="(qAns, qAIndex) of qItem.qaAnswerInfoResponseDTOList" :key="qAIndex" title-class="ml10 c-gray-dark fs14" :title="qAns.anContent" clickable @click="changeAns(qItem.quCode,qAns.anMessage)">
|
||||
<template #icon>
|
||||
<van-radio :name="qAns.anMessage" />
|
||||
</template>
|
||||
</van-cell>
|
||||
</van-cell-group>
|
||||
</van-radio-group>
|
||||
</van-col>
|
||||
</van-row>
|
||||
</template>
|
||||
|
||||
|
||||
<van-button type="danger" class="bottom-btn" size="large" @click="save" v-no-more-click="1000">提交</van-button>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Field, Radio, RadioGroup, Cell, CellGroup, Col, Row } from 'vant'
|
||||
import formatDate from '@/assets/js/utils/date-utils'
|
||||
// import { } from '@/api/ebiz/manpower/manpower'
|
||||
import { answerDetail, answerSubmit } from '@/api/ebiz/manpower/manpower'
|
||||
|
||||
export default {
|
||||
name: '',
|
||||
filters: {},
|
||||
data() {
|
||||
return {
|
||||
formData: {
|
||||
customerName: '',
|
||||
mobile: '',
|
||||
tableCode: '',
|
||||
shareTime: '',
|
||||
tableCode: 'GFRS-DISC',
|
||||
answerList:[]
|
||||
},
|
||||
answerList:{},
|
||||
questions: [],
|
||||
data4res: {}
|
||||
}
|
||||
},
|
||||
watch: {},
|
||||
created() {
|
||||
this.init()
|
||||
},
|
||||
mounted() {},
|
||||
methods: {
|
||||
init() {
|
||||
let shareTimeStamp = this.$route.query.shareTime -0;
|
||||
if(this.$route.query.token){
|
||||
localStorage.token = this.$route.query.token;
|
||||
}
|
||||
console.log(shareTimeStamp);
|
||||
this.formData.shareTime = formatDate.formatDate(new Date(shareTimeStamp));
|
||||
answerDetail({
|
||||
qnCode: 'GFRS-DISC'
|
||||
})
|
||||
.then(res => {
|
||||
if (res.result == 0) {
|
||||
res.content.questions.forEach(item => {
|
||||
this.answerList[item.quCode] = ""
|
||||
})
|
||||
this.questions = [
|
||||
{
|
||||
title: '第一部分:请就您在“生活中”的状态选择最接近自己的一个描述',
|
||||
tag: '单选',
|
||||
type: 'radio',
|
||||
questions: res.content.questions.slice(0, 10)
|
||||
},
|
||||
{
|
||||
title: '第二部分:请就您在“工作中”的状态选择最接近自己的一个描述',
|
||||
tag: '单选',
|
||||
type: 'radio',
|
||||
questions: res.content.questions.slice(10, 20)
|
||||
}
|
||||
]
|
||||
} else {
|
||||
this.$toast(res.resultMessage)
|
||||
}
|
||||
})
|
||||
.catch(err => {})
|
||||
},
|
||||
changeAns(ans, value){
|
||||
this.answerList[ans] = value;
|
||||
this.$forceUpdate()
|
||||
},
|
||||
save(){
|
||||
this.$validator.validateAll()
|
||||
.then(result => {
|
||||
if (result) {
|
||||
this.formData.answerList = []
|
||||
this.data4res = {}
|
||||
for(let key in this.answerList){
|
||||
let tempQuContent= this.answerList[key]
|
||||
if(!tempQuContent){
|
||||
return this.$toast("请完成问卷后提交")
|
||||
}
|
||||
this.formData.answerList.push({
|
||||
quCode : key,
|
||||
quContent : tempQuContent
|
||||
})
|
||||
if(this.data4res[tempQuContent]){
|
||||
this.data4res[tempQuContent] = this.data4res[tempQuContent]+1
|
||||
}else{
|
||||
this.data4res[tempQuContent] = 1
|
||||
}
|
||||
}
|
||||
answerSubmit(this.formData)
|
||||
.then(res => {
|
||||
if (res.result == 0) {
|
||||
localStorage["DISC-answerList"] = JSON.stringify(this.data4res)
|
||||
this.$jump({
|
||||
flag: 'h5',
|
||||
extra: {
|
||||
url: location.origin + `/#/manpower/DiscAnalysis/Result`,
|
||||
forbidSwipeBack: '1',
|
||||
needRefresh: '1'
|
||||
},
|
||||
routerInfo: { path: `/manpower/DiscAnalysis/Result` }
|
||||
})
|
||||
} else {
|
||||
this.$toast(res.resultMessage)
|
||||
}
|
||||
})
|
||||
.catch(err => err)
|
||||
} else {
|
||||
this.$toast(this.errors.all()[0])
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
components: {
|
||||
[Field.name]: Field,
|
||||
[Radio.name]: Radio,
|
||||
[RadioGroup.name]: RadioGroup,
|
||||
[Cell.name]: Cell,
|
||||
[CellGroup.name]: CellGroup,
|
||||
[Col.name]: Col,
|
||||
[Row.name]: Row
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped="scoped" lang="scss">
|
||||
.container {
|
||||
|
||||
.van-cell:not(:last-child)::after {
|
||||
margin-left: 30px;
|
||||
}
|
||||
|
||||
.noline:not(:last-child)::after {
|
||||
border: none !important;
|
||||
}
|
||||
|
||||
.qTitle {
|
||||
color: #333440;
|
||||
font-weight: 500;
|
||||
line-height: 22px;
|
||||
}
|
||||
|
||||
.prt-3 {
|
||||
position: relative;
|
||||
top: -3px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
112
src/views/ebiz/manpower/discAnalysis/Result.vue
Normal file
@@ -0,0 +1,112 @@
|
||||
<!-- DISC性格分析 - DISC性格分析结果 -->
|
||||
<template>
|
||||
<div class="container">
|
||||
<div class="box mt66vw ml10 mr10 p30 fs16 c-gray-darker">
|
||||
<van-row class="h40">
|
||||
<van-col span="24" class="text-center">DISC性格分析结果</van-col>
|
||||
</van-row>
|
||||
<template v-for="(value,key,index) in answerList">
|
||||
<van-row class="h40" :key="key">
|
||||
<van-col span="12">
|
||||
<span class="circular mr10" :class="'circular'+index%4" ></span>
|
||||
{{key}}
|
||||
</van-col>
|
||||
<van-col span="12" class="text-right">{{value}}</van-col>
|
||||
</van-row>
|
||||
<van-divider :key="key" />
|
||||
</template>
|
||||
<!-- <van-row class="h40">
|
||||
<van-col span="12"> <span class="circular mr10"></span> title</van-col>
|
||||
<van-col span="12" class="text-right">value</van-col>
|
||||
</van-row> -->
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Row, Col, Divider } from 'vant'
|
||||
|
||||
export default {
|
||||
name: '',
|
||||
filters: {},
|
||||
data() {
|
||||
return {
|
||||
answerList: {}
|
||||
}
|
||||
},
|
||||
watch: {},
|
||||
created() {
|
||||
this.init()
|
||||
},
|
||||
mounted() {},
|
||||
methods: {
|
||||
init() {
|
||||
let answerList = {
|
||||
"D" : 0,
|
||||
"I" : 0,
|
||||
"S" : 0,
|
||||
"C" : 0,
|
||||
}
|
||||
Object.assign(answerList,JSON.parse(localStorage["DISC-answerList"]))
|
||||
// localStorage.answerList = JSON.stringify(tmp)
|
||||
if(this.$route.query.token){
|
||||
localStorage.token = this.$route.query.token;
|
||||
}
|
||||
this.answerList = answerList
|
||||
}
|
||||
},
|
||||
components: {
|
||||
[Row.name]: Row,
|
||||
[Col.name]: Col,
|
||||
[Divider.name]: Divider
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped="scoped" lang="scss">
|
||||
.container {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: inherit;
|
||||
background-image: url('../../../../assets/images/discBg.png');
|
||||
background-size: 100% auto;
|
||||
background-repeat: no-repeat;
|
||||
background-color: #0827a9;
|
||||
|
||||
.mt66vw {
|
||||
margin-top: 66vw;
|
||||
}
|
||||
|
||||
.box {
|
||||
width: auto;
|
||||
// height: 300px;
|
||||
background-image: url('../../../../assets/images/discResBorder.png');
|
||||
background-size: 100% 100%;
|
||||
background-repeat: no-repeat;
|
||||
}
|
||||
|
||||
.circular {
|
||||
display: inline-block;
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
background: #FF651A;
|
||||
border-radius: 50%;
|
||||
}
|
||||
.circular0{
|
||||
background: #FF651A;
|
||||
}
|
||||
.circular1{
|
||||
background: #FACE01;
|
||||
}
|
||||
.circular2{
|
||||
background: #46D591;
|
||||
}
|
||||
.circular3{
|
||||
background: #12DAEC;
|
||||
}
|
||||
.h40 {
|
||||
line-height: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
51
src/views/ebiz/manpower/discAnalysis/Share.vue
Normal file
@@ -0,0 +1,51 @@
|
||||
<!-- DISC性格分析 - 分享后打开图片展示页 -->
|
||||
<template>
|
||||
<div class="DISCtopBg">
|
||||
<img style="width: 100%;" src="@/assets/images/DISCtop.png" />
|
||||
<img style="width: 52%;position: absolute;bottom: 3.6%;left: 24%;" src="@/assets/images/DISCbtn.png" @click="toTest" />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
// import { } from 'vant'
|
||||
// import { } from '@/api/ebiz/manpower/manpower'
|
||||
|
||||
export default {
|
||||
name: '',
|
||||
filters: {},
|
||||
data() {
|
||||
return {}
|
||||
},
|
||||
watch: {},
|
||||
created() {},
|
||||
mounted() {},
|
||||
methods: {
|
||||
//去做测试,跳转到测试答题页面
|
||||
toTest() {
|
||||
let token = this.$route.query.token
|
||||
let shareTime = this.$route.query.shareTime
|
||||
let url = `/manpower/DiscAnalysis/Question?token=${token}&shareTime=${shareTime}`
|
||||
this.$jump({
|
||||
flag: 'h5',
|
||||
extra: {
|
||||
url: location.origin + `/#${url}`
|
||||
},
|
||||
routerInfo: { path: url }
|
||||
})
|
||||
}
|
||||
},
|
||||
components: {
|
||||
// [Field.name]: Field,
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped="scoped" lang="scss">
|
||||
.DISCtopBg{
|
||||
background-image: url('../../../../assets/images/DISCtopBg.png');
|
||||
background-size: 100% auto;
|
||||
background-repeat: repeat-y;
|
||||
position: absolute;
|
||||
height: inherit;
|
||||
}
|
||||
</style>
|
||||
BIN
src/views/ebiz/manpower/image/1.png
Normal file
|
After Width: | Height: | Size: 92 KiB |
BIN
src/views/ebiz/manpower/image/10.png
Normal file
|
After Width: | Height: | Size: 547 KiB |
BIN
src/views/ebiz/manpower/image/11.png
Normal file
|
After Width: | Height: | Size: 2.0 MiB |
BIN
src/views/ebiz/manpower/image/12.png
Normal file
|
After Width: | Height: | Size: 295 KiB |
BIN
src/views/ebiz/manpower/image/13.png
Normal file
|
After Width: | Height: | Size: 890 KiB |
BIN
src/views/ebiz/manpower/image/2.png
Normal file
|
After Width: | Height: | Size: 851 KiB |
BIN
src/views/ebiz/manpower/image/3.png
Normal file
|
After Width: | Height: | Size: 936 KiB |
BIN
src/views/ebiz/manpower/image/4.png
Normal file
|
After Width: | Height: | Size: 897 KiB |
BIN
src/views/ebiz/manpower/image/5.png
Normal file
|
After Width: | Height: | Size: 180 KiB |
BIN
src/views/ebiz/manpower/image/6.png
Normal file
|
After Width: | Height: | Size: 1.5 MiB |
BIN
src/views/ebiz/manpower/image/7.png
Normal file
|
After Width: | Height: | Size: 2.6 MiB |
BIN
src/views/ebiz/manpower/image/8.png
Normal file
|
After Width: | Height: | Size: 1.3 MiB |
BIN
src/views/ebiz/manpower/image/9.png
Normal file
|
After Width: | Height: | Size: 338 KiB |
@@ -0,0 +1,150 @@
|
||||
<!-- 公司介绍 -->
|
||||
<template>
|
||||
<div class="p15 bg-white">
|
||||
<p class="fs18 fwb">一、公司介绍</p>
|
||||
<van-image width="100%" height="150" :src="img1" class="mt15" />
|
||||
<p class="fs14 indent">
|
||||
国富人寿保险股份有限公司由广西投资集团有限公司、广州唯品会信息科技有限公司、吉安新年广告传媒有限公司、北京信中利投资股份有限公司、湖北三峡华翔集团有限公司、广西日报传媒集团有限公司、上海恒大建材市场管理股份有限公司、广西名都生态科技发展有限公司等8家公司共同发起创立。公司注册地在我国面向东盟开放合作的前沿城市——南宁。
|
||||
</p>
|
||||
<p class="fs14 indent">
|
||||
国富人寿将秉持“老有所养,病有所医,红利共享,国富民安”的核心理念,以“让更多的人过上有尊严的健康快乐的生活”作为企业使命,树立并践行“简单、专注、诚信、激情、关爱、领先”的价值观。专注于客户体验,研发满足客户需求的产品,为客户提供有温度的服务。依法合规、稳健经营,立足广西、深耕广西、面向全国,更好地回馈社会、回报股东、与时俱进、超越自我。
|
||||
</p>
|
||||
<p class="fs18 fwb">二、国富大事件</p>
|
||||
<p class="fs14">1、国富人寿连续五个季度获得A类风险综合评级</p>
|
||||
<p class="fs14">2、国富人寿荣获第九届中国公益节“社会责任行业典范奖”</p>
|
||||
<van-image width="100%" :src="img2" class="mt15" />
|
||||
<p class="fs14">3、第十三届金蝉奖颁奖盛典举行 国富人寿获“2019年度成长力保险公司”奖</p>
|
||||
<van-image width="100%" :src="img3" class="mt15" />
|
||||
<p class="fs14">4、2019南宁国际马拉松燃情开跑!国富人寿圆满完成赛事保障工作!</p>
|
||||
<van-image width="100%" :src="img4" class="mt15" />
|
||||
<p class="fs14">5、国富人寿总经理储良出席第五届中国-东盟保险合作与发展论坛并作主题发言</p>
|
||||
<van-image width="100%" :src="img5" class="mt15" />
|
||||
<p class="fs14">6、广西广播电视台报道国富人寿为企业复工复产捐赠保险</p>
|
||||
<van-image width="100%" :src="img6" class="mt15" />
|
||||
<p class="fs14">7、共同战“疫” 勇做表率丨国富人寿党总支为都安县捐赠医用隔离衣600套</p>
|
||||
<van-image width="100%" :src="img7" class="mt15" />
|
||||
<p class="fs14">8、为广西医护人员追加近450亿保险保障 国富人寿支持抗疫再升级!</p>
|
||||
<van-image width="100%" :src="img8" class="mt15" />
|
||||
<p class="fs14">9、国富有爱 “邕”有安心 ——国富人寿为支持南宁企业复工复产捐赠包含新冠肺炎身故责任的保险</p>
|
||||
<van-image width="100%" :src="img9" class="mt15" />
|
||||
<p class="fs14">10、国富人寿为全体签约代理人及其亲属提供每人20万元专属保障</p>
|
||||
<van-image width="100%" :src="img10" class="mt15" />
|
||||
<p class="fs14">
|
||||
11、2019年10月17日,国富人寿在广西品牌节评选活动中荣获广西“杰出品牌”称号,是12家获评杰出品牌企业中唯一一家保险公司。标志着国富人寿在广西保险市场上崭露头角。
|
||||
</p>
|
||||
<van-image width="100%" :src="img11" class="mt15" />
|
||||
<p class="fs14">
|
||||
12、为广西人量身定制开发的八桂无忧重大疾病保险产品,荣获《中国保险报》评选的“2018年度健康保险产品”和行业主流媒体颁发的“2019十佳商业健康保险推荐产品”称号
|
||||
</p>
|
||||
<van-image width="100%" :src="img12" class="mt15" />
|
||||
<p class="fs14">13、热烈祝贺公司2020年期交保费超亿元!同比2019年全年成长235%!</p>
|
||||
<van-image width="100%" :src="img13" class="mt15" />
|
||||
<p class="fs14">
|
||||
14、2019年
|
||||
6月18日,国富人寿经主动排查获悉,百色市乐业县百坭村第一书记黄文秀在6月16日途经凌云时遭遇山洪不幸遇难,而黄文秀正在公司扶贫攻坚驻村第一书记赠险名单之列。获悉情况后,国富人寿总分公司联动,立即启动理赔应急预案,开启理赔绿色通道,于6月19日收齐理赔资料后,当天结案赔付,将20万元理赔金送到家属手上。
|
||||
</p>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { Image } from 'vant'
|
||||
import { getShareKey, saveShareRecord } from '@/api/ebiz/manpower/manpower'
|
||||
|
||||
export default {
|
||||
components: {
|
||||
[Image.name]: Image
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
img1: require('../image/1.png'),
|
||||
img2: require('../image/2.png'),
|
||||
img3: require('../image/3.png'),
|
||||
img4: require('../image/4.png'),
|
||||
img5: require('../image/5.png'),
|
||||
img6: require('../image/6.png'),
|
||||
img7: require('../image/7.png'),
|
||||
img8: require('../image/8.png'),
|
||||
img9: require('../image/9.png'),
|
||||
img10: require('../image/10.png'),
|
||||
img11: require('../image/11.png'),
|
||||
img12: require('../image/12.png'),
|
||||
img13: require('../image/13.png'),
|
||||
redisKey: ''
|
||||
}
|
||||
},
|
||||
mounted() {
|
||||
this.redisKey = this.$route.query.redisKey
|
||||
if (this.redisKey) {
|
||||
this.saveShareRecord('1')
|
||||
localStorage.setItem('token', this.$route.query.token)
|
||||
} else {
|
||||
this.getShareKey()
|
||||
}
|
||||
setTimeout(() => {
|
||||
// 右上角的显示
|
||||
this.$jump({
|
||||
flag: 'webview_right_button',
|
||||
extra: {
|
||||
btns: [
|
||||
{
|
||||
img: this.$assetsUrl + 'images/share@3x.png'
|
||||
}
|
||||
]
|
||||
}
|
||||
})
|
||||
}, 1000)
|
||||
window['appCallBack'] = this.appCallBack
|
||||
},
|
||||
methods: {
|
||||
appCallBack(data) {
|
||||
if (data.trigger == 'right_button_click') {
|
||||
this.saveShareRecord('0')
|
||||
let token = window.localStorage.getItem('token')
|
||||
// eslint-disable-next-line no-undef
|
||||
EWebBridge.webCallAppInJs('bridge', {
|
||||
flag: 'share',
|
||||
extra: {
|
||||
title: '国富人寿保险股份有限公司',
|
||||
content: '公司介绍',
|
||||
url: `${location.origin}/#/manpower/increaseStaffTools/CompanyIntroduction?redisKey=${this.redisKey}&token=${token}`,
|
||||
img: this.$assetsUrl + 'images/logo.png'
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
getShareKey() {
|
||||
let data = {
|
||||
linkType: '0001',
|
||||
url: `${location.origin}/#/manpower/increaseStaffTools/CompanyIntroduction`
|
||||
}
|
||||
getShareKey(data)
|
||||
.then(res => {
|
||||
console.log(res)
|
||||
if (res.result == 0) {
|
||||
this.redisKey = res.content
|
||||
} else {
|
||||
this.$toast(res.resultMessage)
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err)
|
||||
})
|
||||
},
|
||||
saveShareRecord(flag) {
|
||||
let data = {
|
||||
linkType: '0001',
|
||||
flag: flag,
|
||||
redisKey: this.redisKey
|
||||
}
|
||||
saveShareRecord(data)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="scss" scoped>
|
||||
.indent {
|
||||
text-indent: 24px;
|
||||
}
|
||||
p {
|
||||
line-height: 28px;
|
||||
}
|
||||
</style>
|
||||
108
src/views/ebiz/manpower/increaseStaffTools/PdfShare.vue
Normal file
@@ -0,0 +1,108 @@
|
||||
<template>
|
||||
<div>
|
||||
<iframe :src="src + pdfUrl" style="width:100vw;height:100vh"></iframe>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { getShareKey, saveShareRecord } from '@/api/ebiz/manpower/manpower'
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
// src: 'http://47.96.143.111/pdfjs/web/viewer.html?file=http://47.96.143.111:8000/app/images/jsSDK.pdf'
|
||||
pdfUrl: '',
|
||||
src: location.origin + '/pdfjs/web/viewer.html?file=',
|
||||
shareContent: '',
|
||||
redisKey: ''
|
||||
}
|
||||
},
|
||||
created() {
|
||||
setTimeout(() => {
|
||||
// 右上角的显示
|
||||
this.$jump({
|
||||
flag: 'webview_right_button',
|
||||
extra: {
|
||||
btns: [
|
||||
{
|
||||
img: this.$assetsUrl + 'images/share@3x.png'
|
||||
}
|
||||
]
|
||||
}
|
||||
})
|
||||
}, 1000)
|
||||
window['appCallBack'] = this.appCallBack
|
||||
},
|
||||
mounted() {
|
||||
this.init()
|
||||
this.redisKey = this.$route.query.redisKey
|
||||
if (this.redisKey) {
|
||||
this.saveShareRecord('1')
|
||||
localStorage.setItem('token', this.$route.query.token)
|
||||
} else {
|
||||
this.getShareKey()
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
init() {
|
||||
let num = this.$route.query.pdf
|
||||
switch (num) {
|
||||
case '0':
|
||||
this.pdfUrl = this.$assetsUrl + 'personnel/recruitment.pdf'
|
||||
this.shareContent = '个险渠道2020年聘才方案'
|
||||
document.title = '个险渠道2020年聘才方案'
|
||||
break
|
||||
case '1':
|
||||
this.pdfUrl = this.$assetsUrl + 'personnel/allowance.pdf'
|
||||
this.shareContent = '个险渠道筹备津贴方案'
|
||||
document.title = '个险渠道筹备津贴方案'
|
||||
break
|
||||
}
|
||||
},
|
||||
// 原生点击右上角按钮事件
|
||||
appCallBack(data) {
|
||||
if (data.trigger == 'right_button_click') {
|
||||
this.saveShareRecord('0')
|
||||
let pdf = this.$route.query.pdf
|
||||
let token = window.localStorage.getItem('token')
|
||||
// eslint-disable-next-line no-undef
|
||||
EWebBridge.webCallAppInJs('bridge', {
|
||||
flag: 'share',
|
||||
extra: {
|
||||
title: '国富人寿欢迎您!',
|
||||
content: this.shareContent,
|
||||
url: `${location.origin}/#/manpower/increaseStaffTools/PdfShare?pdf=${pdf}&redisKey=${this.redisKey}&token=${token}`,
|
||||
img: this.$assetsUrl + 'images/logo.png'
|
||||
}
|
||||
})
|
||||
}
|
||||
},
|
||||
getShareKey() {
|
||||
let data = {
|
||||
linkType: '0002',
|
||||
url: `${location.origin}/pdfjs/web/viewer.html?file=${this.pdfUrl}`
|
||||
}
|
||||
getShareKey(data)
|
||||
.then(res => {
|
||||
console.log(res)
|
||||
if (res.result == 0) {
|
||||
this.redisKey = res.content
|
||||
} else {
|
||||
this.$toast(res.resultMessage)
|
||||
}
|
||||
})
|
||||
.catch(err => {
|
||||
console.log(err)
|
||||
})
|
||||
},
|
||||
saveShareRecord(flag) {
|
||||
let data = {
|
||||
linkType: '0002',
|
||||
flag: flag,
|
||||
redisKey: this.redisKey
|
||||
}
|
||||
saveShareRecord(data)
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
32
src/views/ebiz/manpower/increaseStaffTools/PolicyOptions.vue
Normal file
@@ -0,0 +1,32 @@
|
||||
<!-- 政策方案 -->
|
||||
<template>
|
||||
<div>
|
||||
<van-cell-group>
|
||||
<van-cell value="个险渠道2020年聘才方案" is-link @click="toPdf(0)" />
|
||||
<van-cell value="个险渠道筹备津贴方案" is-link @click="toPdf(1)" />
|
||||
</van-cell-group>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { Cell, CellGroup } from 'vant'
|
||||
|
||||
export default {
|
||||
components: {
|
||||
[Cell.name]: Cell,
|
||||
[CellGroup.name]: CellGroup
|
||||
},
|
||||
methods: {
|
||||
toPdf(num) {
|
||||
console.log(num)
|
||||
this.$jump({
|
||||
flag: 'h5',
|
||||
extra: {
|
||||
url: location.origin + `/#/manpower/increaseStaffTools/PdfShare?pdf=${num}`,
|
||||
forbidSwipeBack: '1'
|
||||
},
|
||||
routerInfo: { path: `/manpower/increaseStaffTools/PdfShare?pdf=${num}` }
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
@@ -0,0 +1 @@
|
||||
<!-- 产品信息 -->
|
||||
@@ -0,0 +1 @@
|
||||
<!-- 培训体系 -->
|
||||
2
src/views/ebiz/manpower/js/verification.js
Normal file
@@ -0,0 +1,2 @@
|
||||
//验证
|
||||
export function demo(par) {}
|
||||
157
src/views/ebiz/manpower/talentPool/Add.vue
Normal file
@@ -0,0 +1,157 @@
|
||||
<!-- 人才库-新增人才 -->
|
||||
<template>
|
||||
<div class="container">
|
||||
<van-field v-model="formData.name" required clearable label="姓名" name="姓名" placeholder="请输入" v-validate="'required|manpowerName'" />
|
||||
<van-field v-model="formData.mobile" clearable label="手机号码" name="手机号码" placeholder="请输入" maxlength="11" type="tel" v-validate="'mobile'" />
|
||||
<select-radio :radios="isSame" label="是否同业" name="是否同业" :value.sync="formData.isSame" :required="true"></select-radio>
|
||||
<!-- 为 异业公司 时,要求填写 -->
|
||||
<template v-if="formData.isSame == '1'">
|
||||
<van-field
|
||||
:value="formData.pastOccu | idToText('talentPoolPastOccu')"
|
||||
readonly
|
||||
required
|
||||
label="过往职业"
|
||||
name="过往职业"
|
||||
right-icon="arrow"
|
||||
placeholder="请选择"
|
||||
@click="toSelect('pastOccu')"
|
||||
/>
|
||||
</template>
|
||||
<!-- 为 异业公司 时,要求填写 end-->
|
||||
<!-- 为 同业公司 时,要求填写 -->
|
||||
<template v-if="formData.isSame == '0'">
|
||||
<van-field v-model="formData.sameCompany" required clearable label="同业公司" name="同业公司" placeholder="请输入" v-validate="'required|sameCompany'" />
|
||||
<select-radio
|
||||
:radios="gradeType"
|
||||
label="岗位类型"
|
||||
name="岗位类型"
|
||||
:value.sync="formData.gradeType"
|
||||
:required="true"
|
||||
v-validate="'required'"
|
||||
></select-radio>
|
||||
<van-field v-model="formData.grade" required clearable label="职级/岗位" name="职级/岗位" placeholder="请输入" v-validate="'required|max120'" />
|
||||
<van-field v-model="formData.workYears" required clearable label="从业年限" name="从业年限" placeholder="请输入" v-validate="'required|workYears'" />
|
||||
</template>
|
||||
<!-- 为 同业公司 时,要求填写 end -->
|
||||
<van-field
|
||||
:value="formData.status | idToText('talentPoolStatus')"
|
||||
readonly
|
||||
required
|
||||
label="状态"
|
||||
name="状态"
|
||||
right-icon="arrow"
|
||||
placeholder="请选择"
|
||||
@click="toSelect('status')"
|
||||
/>
|
||||
<van-button type="danger" class="bottom-btn" size="large" @click="save">保存</van-button>
|
||||
<van-popup v-model="popupShow" position="bottom"><van-picker show-toolbar :columns="columns" @confirm="onConfirm" @cancel="popupShow = false"/></van-popup>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Field, CellGroup, Cell, Popup, Picker } from 'vant'
|
||||
import filter from '@/filters/index'
|
||||
import DataDictionary from '@/assets/js/utils/data-dictionary'
|
||||
import SelectRadio from '@/components/ebiz/SelectRadio'
|
||||
|
||||
import { saveAgentPersonnel } from '@/api/ebiz/manpower/manpower'
|
||||
|
||||
export default {
|
||||
name: 'TalentPoolAdd',
|
||||
components: {
|
||||
[Field.name]: Field,
|
||||
[CellGroup.name]: CellGroup,
|
||||
[Cell.name]: Cell,
|
||||
[Popup.name]: Popup,
|
||||
[Picker.name]: Picker,
|
||||
[SelectRadio.name]: SelectRadio
|
||||
},
|
||||
filters: {
|
||||
idToText: filter.idToText
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
selected: '',
|
||||
popupShow: false,
|
||||
formData: {
|
||||
name: '',
|
||||
mobile: '',
|
||||
isSame: '0',
|
||||
pastOccu: '01',
|
||||
sameCompany: '',
|
||||
gradeType: '0',
|
||||
grade: '',
|
||||
workYears: '',
|
||||
status: 0
|
||||
},
|
||||
gradeType: [
|
||||
{
|
||||
label: '内勤',
|
||||
value: '0'
|
||||
},
|
||||
{
|
||||
label: '外勤',
|
||||
value: '1'
|
||||
}
|
||||
],
|
||||
isSame: [
|
||||
{
|
||||
label: '是',
|
||||
value: '0'
|
||||
},
|
||||
{
|
||||
label: '否',
|
||||
value: '1'
|
||||
}
|
||||
],
|
||||
columns: null
|
||||
}
|
||||
},
|
||||
watch: {},
|
||||
created() {},
|
||||
mounted() {},
|
||||
methods: {
|
||||
toSelect(name) {
|
||||
this.selected = name
|
||||
this.popupShow = true
|
||||
switch (name) {
|
||||
case 'pastOccu':
|
||||
this.columns = DataDictionary.talentPoolPastOccu
|
||||
break
|
||||
case 'status':
|
||||
this.columns = DataDictionary.talentPoolStatus
|
||||
break
|
||||
default:
|
||||
break
|
||||
}
|
||||
},
|
||||
onConfirm(value) {
|
||||
this.popupShow = false
|
||||
this.formData[this.selected] = value.id
|
||||
},
|
||||
save() {
|
||||
this.$validator.validateAll().then(result => {
|
||||
if (result) {
|
||||
saveAgentPersonnel(this.formData)
|
||||
.then(res => {
|
||||
if (res.result == 0) {
|
||||
//eslint-disable-next-line
|
||||
EWebBridge.webCallAppInJs('goBack', {
|
||||
refresh: '1',
|
||||
index: '-1'
|
||||
})
|
||||
} else {
|
||||
this.$toast(res.resultMessage)
|
||||
}
|
||||
})
|
||||
.catch(() => {})
|
||||
} else {
|
||||
this.$toast(this.errors.all()[0])
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped="scoped" lang="scss"></style>
|
||||
170
src/views/ebiz/manpower/talentPool/Edit.vue
Normal file
@@ -0,0 +1,170 @@
|
||||
<!-- 人才库-修改人才 -->
|
||||
<template>
|
||||
<div class="container" v-show="show">
|
||||
<van-field v-model="formData.name" required clearable label="姓名" name="姓名" placeholder="请输入" v-validate="'required|manpowerName'" />
|
||||
<van-field v-model="formData.mobile" clearable label="手机号码" name="手机号码" placeholder="请输入" maxlength="11" type="tel" v-validate="'mobile'" />
|
||||
<select-radio :disabled="true" :radios="isSame" label="是否同业" name="是否同业" :value.sync="formData.isSame" :required="true"></select-radio>
|
||||
<!-- 为 异业公司 时,要求填写 -->
|
||||
<template v-if="formData.isSame == '1'">
|
||||
<van-field
|
||||
:value="formData.pastOccu | idToText('talentPoolPastOccu')"
|
||||
readonly
|
||||
required
|
||||
label="过往职业"
|
||||
name="过往职业"
|
||||
right-icon="arrow"
|
||||
placeholder="请选择"
|
||||
@click="toSelect('pastOccu')"
|
||||
/>
|
||||
</template>
|
||||
<!-- 为 异业公司 时,要求填写 end-->
|
||||
<!-- 为 同业公司 时,要求填写 -->
|
||||
<template v-if="formData.isSame == '0'">
|
||||
<van-field v-model="formData.sameCompany" required clearable label="同业公司" name="同业公司" placeholder="请输入" v-validate="'required|sameCompany'" />
|
||||
<select-radio
|
||||
:radios="gradeType"
|
||||
label="岗位类型"
|
||||
name="岗位类型"
|
||||
:value.sync="formData.gradeType"
|
||||
:required="true"
|
||||
v-validate="'required'"
|
||||
></select-radio>
|
||||
<van-field v-model="formData.grade" required clearable label="职级/岗位" name="职级/岗位" placeholder="请输入" v-validate="'required|max120'" />
|
||||
<van-field v-model="formData.workYears" required clearable label="从业年限" name="从业年限" placeholder="请输入" v-validate="'required|workYears'" />
|
||||
</template>
|
||||
<!-- 为 同业公司 时,要求填写 end -->
|
||||
<van-field
|
||||
:value="formData.status | idToText('talentPoolStatus')"
|
||||
readonly
|
||||
required
|
||||
label="状态"
|
||||
name="状态"
|
||||
right-icon="arrow"
|
||||
placeholder="请选择"
|
||||
@click="toSelect('status')"
|
||||
/>
|
||||
<van-button type="danger" class="bottom-btn" size="large" @click="save">保存</van-button>
|
||||
<van-popup v-model="popupShow" position="bottom"><van-picker show-toolbar :columns="columns" @confirm="onConfirm" @cancel="popupShow = false"/></van-popup>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Field, CellGroup, Cell, Popup, Picker } from 'vant'
|
||||
import filter from '@/filters/index'
|
||||
import DataDictionary from '@/assets/js/utils/data-dictionary'
|
||||
import SelectRadio from '@/components/ebiz/SelectRadio'
|
||||
|
||||
import { getAgentPersonnelDetail, saveAgentPersonnel } from '@/api/ebiz/manpower/manpower'
|
||||
|
||||
export default {
|
||||
name: 'TalentPoolAdd',
|
||||
components: {
|
||||
[Field.name]: Field,
|
||||
[CellGroup.name]: CellGroup,
|
||||
[Cell.name]: Cell,
|
||||
[Popup.name]: Popup,
|
||||
[Picker.name]: Picker,
|
||||
[SelectRadio.name]: SelectRadio
|
||||
},
|
||||
filters: {
|
||||
idToText: filter.idToText
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
show: false,
|
||||
selected: '',
|
||||
popupShow: false,
|
||||
formData: {
|
||||
name: '',
|
||||
mobile: '',
|
||||
isSame: '0',
|
||||
pastOccu: '01',
|
||||
sameCompany: '',
|
||||
gradeType: '0',
|
||||
grade: '',
|
||||
workYears: '',
|
||||
status: 0
|
||||
},
|
||||
gradeType: [
|
||||
{
|
||||
label: '内勤',
|
||||
value: '0'
|
||||
},
|
||||
{
|
||||
label: '外勤',
|
||||
value: '1'
|
||||
}
|
||||
],
|
||||
isSame: [
|
||||
{
|
||||
label: '是',
|
||||
value: '0'
|
||||
},
|
||||
{
|
||||
label: '否',
|
||||
value: '1'
|
||||
}
|
||||
],
|
||||
columns: null
|
||||
}
|
||||
},
|
||||
watch: {},
|
||||
created() {
|
||||
const personnelCode = localStorage.getItem('personnelCode')
|
||||
getAgentPersonnelDetail({ personnelCode: personnelCode })
|
||||
.then(res => {
|
||||
if (res.result == 0) {
|
||||
this.formData = res.content.personnel
|
||||
this.show = true
|
||||
} else {
|
||||
this.$toast(res.resultMessage)
|
||||
}
|
||||
})
|
||||
.catch(() => {})
|
||||
},
|
||||
mounted() {},
|
||||
methods: {
|
||||
toSelect(name) {
|
||||
this.selected = name
|
||||
this.popupShow = true
|
||||
switch (name) {
|
||||
case 'pastOccu':
|
||||
this.columns = DataDictionary.talentPoolPastOccu
|
||||
break
|
||||
case 'status':
|
||||
this.columns = DataDictionary.talentPoolStatus
|
||||
break
|
||||
default:
|
||||
break
|
||||
}
|
||||
},
|
||||
onConfirm(value) {
|
||||
this.popupShow = false
|
||||
this.formData[this.selected] = value.id
|
||||
},
|
||||
save() {
|
||||
this.$validator.validateAll().then(result => {
|
||||
if (result) {
|
||||
saveAgentPersonnel(this.formData)
|
||||
.then(res => {
|
||||
if (res.result == 0) {
|
||||
//eslint-disable-next-line
|
||||
EWebBridge.webCallAppInJs('goBack', {
|
||||
refresh: '1',
|
||||
index: '-1'
|
||||
})
|
||||
} else {
|
||||
this.$toast(res.resultMessage)
|
||||
}
|
||||
})
|
||||
.catch(() => {})
|
||||
} else {
|
||||
this.$toast(this.errors.all()[0])
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped="scoped" lang="scss"></style>
|
||||
101
src/views/ebiz/manpower/talentPool/List.vue
Normal file
@@ -0,0 +1,101 @@
|
||||
<!-- 人才库-人才列表 -->
|
||||
<template>
|
||||
<div class="container">
|
||||
<van-search placeholder="请输入要查询人的姓名" v-model="searchName" @change="searchList" @keyup.enter="searchList" />
|
||||
<div v-if="hasTalentPoolList" class="mb60">
|
||||
<van-index-bar :index-list="indexList">
|
||||
<div v-for="(item, key) in talentPoolList" :key="key" class="bg-white mb10 mr20">
|
||||
<van-index-anchor :index="key" class="border-gb" />
|
||||
<van-cell-group>
|
||||
<TalentPoolItem v-for="talentPoolInfo in item" :key="talentPoolInfo.personnelCode" :talentPoolInfo="talentPoolInfo"> </TalentPoolItem>
|
||||
</van-cell-group>
|
||||
</div>
|
||||
</van-index-bar>
|
||||
</div>
|
||||
<div v-else class="text-center">
|
||||
<img class="mt40" src="@/assets/images/pic_page-non.png" />
|
||||
<div class="fs17 mt40">暂无数据</div>
|
||||
</div>
|
||||
<van-button type="danger" class="bottom-btn" size="large" @click="add" v-no-more-click="1000">新增</van-button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import { Search, Cell, IndexBar, IndexAnchor, Popup, Button, Tag, CellGroup } from 'vant'
|
||||
import TalentPoolItem from '@/components/ebiz/manpower/TalentPoolItem'
|
||||
|
||||
import { getAgentPersonnelList } from '@/api/ebiz/manpower/manpower'
|
||||
|
||||
export default {
|
||||
name: 'TalentPoolList',
|
||||
components: {
|
||||
[Search.name]: Search,
|
||||
[Cell.name]: Cell,
|
||||
[CellGroup.name]: CellGroup,
|
||||
[IndexBar.name]: IndexBar,
|
||||
[IndexAnchor.name]: IndexAnchor,
|
||||
[Popup.name]: Popup,
|
||||
[Button.name]: Button,
|
||||
[Tag.name]: Tag,
|
||||
TalentPoolItem
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
hasTalentPoolList: false,
|
||||
searchName: '',
|
||||
indexList: ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', '#'],
|
||||
talentPoolList: {}
|
||||
}
|
||||
},
|
||||
watch: {},
|
||||
created() {
|
||||
this.searchList()
|
||||
},
|
||||
mounted() {},
|
||||
methods: {
|
||||
searchList() {
|
||||
this.hasTalentPoolList = false
|
||||
getAgentPersonnelList({ name: this.searchName })
|
||||
.then(res => {
|
||||
if (res.result == 0) {
|
||||
if (Object.keys(res.content.personnels).length == 0) {
|
||||
return false
|
||||
}
|
||||
const data = res.content.personnels
|
||||
this.talentPoolList = {}
|
||||
for (let item of this.indexList) {
|
||||
if (data[item]) {
|
||||
this.talentPoolList[item] = data[item]
|
||||
}
|
||||
}
|
||||
this.hasTalentPoolList = true
|
||||
}
|
||||
})
|
||||
.catch(() => {})
|
||||
},
|
||||
add() {
|
||||
this.$jump({
|
||||
flag: 'h5',
|
||||
extra: {
|
||||
url: location.origin + '/#/manpower/talentPool/Add'
|
||||
},
|
||||
routerInfo: {
|
||||
path: '/manpower/talentPool/Add'
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped="scoped" lang="scss">
|
||||
.container {
|
||||
.van-search__content {
|
||||
background: #fff !important;
|
||||
border-radius: 10px;
|
||||
}
|
||||
.van-search {
|
||||
background: none !important;
|
||||
}
|
||||
}
|
||||
</style>
|
||||