1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- import { isArray, isObject } from '@/utils/types.js'
- export default {
- methods: {
- /**
- * 格式化默认获取到的字段值
- * @param {Object} field
- */
- mixinsFormatFieldValue(field) {
- let value = field.value || field.defaultValue || ''
- if (['select', 'checkbox'].includes(field.formType)) {
- if (this.$isEmpty(value)) return []
- if (isArray(value)) {
- return value.map(o => {
- return isObject(o) ? o : { label: o, value: o }
- })
- } else {
- return value.split(',').map(o => {
- return { label: o, value: o }
- })
- }
- }
- switch (field.formType) {
- case 'single_user':
- if (this.$isEmpty(value)) return []
- if (!isArray(value)) return [value]
- return value
- case 'user':
- if (this.$isEmpty(value)) return []
- if (!isArray(value)) return [value]
- return value
- case 'contract':
- if (this.$isEmpty(value)) return []
- return value.map(o => {
- if (!o.hasOwnProperty('num')) {
- return {
- contractId: o.contractId,
- num: o.contractNum
- }
- } else {
- return o
- }
- })
- case 'receivables_plan':
- if (this.$isEmpty(value)) return []
- if (!isArray(value)) return [value]
- return value
- case 'date_interval':
- if (this.$isEmpty(value)) return []
- if (!isArray(value)) return []
- return value
- case 'detail_table':
- if (this.$isEmpty(field.value)) return []
- return value
- }
- return value
- },
- /**
- * 获取所有与逻辑表单相关字段的 formAssistId
- */
- getAllFormAssistId(fieldArr = []) {
- let ids = []
- for (let i = 0; i < fieldArr.length; i++) {
- const field = fieldArr[i]
- if (![
- 'select',
- 'checkbox'
- ].includes(field.formType)) continue
- if (field.remark !== 'options_type') continue
- ids.push(field.formAssistId)
- Object.keys(field.optionsData).forEach(key => {
- ids = ids.concat(field.optionsData[key])
- })
- }
- ids = ids.filter(o => Boolean(o))
- return Array.from(new Set(ids))
- }
- }
- }
|