import { mapGetters } from 'vuex' import { isArray, isObject } from '@/utils/types.js' export default { computed: { ...mapGetters({ calcStatus: 'base/calcStatus' }) }, methods: { getFieldValue(item) { if (this.$isEmpty(item.value)) return '' const value = item.value switch (item.formType) { case 'check_status': // 审批状态 return this.calcStatus(value).label || '' case 'map_address': // 地址 // eslint-disable-next-line no-case-declarations const areaStr = value.address.replace(/,/g, '') return value.detailAddress.startsWith(areaStr) ? value.detailAddress : (areaStr + value.detailAddress) // return value.address.replace(/,/g, '') + value.detailAddress case 'contract': // 合同 if (isArray(value)) { return value.map(o => o.contractNum).join(',') } else if (isObject(value)) { return value.contractNum } return value case 'contacts': // 联系人 if (isArray(value)) { return value.map(o => o.contactsName).join(',') } else if (isObject(value)) { return value.name } return value case 'business_type': // 商机状态组 if (this.detailData) { return this.detailData.typeName } return value case 'business_status': // 商机阶段 if ([1, 2, 3].includes(value)) { return ['', '赢单', '输单', '无效'][value] } if (this.detailData) { return this.detailData.statusName } return value case 'category': // 产品类别 if (this.detailData) { return this.detailData.categoryName } return value case 'receivables_plan': if (this.detailData) { return this.detailData.planNum } return value case 'structure': // 部门 if (isArray(value)) { return value.map(o => o.name).join(',') } else if (isObject(value)) { return value.name } return value case 'text': // 邮箱地址 if (isArray(value)) { return value.map(o => o.name).join(',') } else if (isObject(value)) { return value.name } return value case 'location': return value.address || '' case 'position': if (isArray(value)) { return value.map(o => o.name).join('') } else { return value } case 'boolean_value': return Number(value) ? '是' : '否' case 'percent': return value + '%' case 'date_interval': return value.join('~') case 'select': if (isObject(item.setting[0]) && !isArray(value)) { // { name: '', value: '' } const findRes = item.setting.find(o => o.value === value) return findRes ? (findRes.name || value) : value } break } if ([ 'user', 'single_user' ].includes(item.formType)) { if (isArray(value)) { return value.map(o => o.realname).join(',') } else if (isObject(value)) { return value.realname || value.name } } if (isArray(value)) { if (value.length === 0) return '' if (typeof value[0] === 'string') return value.join(',') if (isObject(value[0])) { let key = item.formType + 'Name' if (value[0].hasOwnProperty(key)) { return value.map(o => o[key]).join(',') } return value } } else if (isObject(value)) { let key = item.formType + 'Name' if (value.hasOwnProperty(key)) return value[key] return value } return value }, /** * 是否为电话 */ isTel(item) { if (item.formType === 'mobile') { return true } else if (!item.fieldName) { return false } else if ( item.fieldName === 'mobile' || item.fieldName === 'telephone' ) { return true } return false }, /** * 判断是否为网址 * @param {Object} item */ isWebSite(item) { // #ifdef APP-PLUS | H5 if (item.formType === 'website') return true return item.fieldName && item.fieldName === 'website' // #endif // eslint-disable-next-line no-unreachable return false }, } }