123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156 |
- 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
- },
- }
- }
|