zhou zhou
22 小时以前 aaf8a50511d77dbc209ca93bbba308c21179a8bc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
function normalizeText(value) {
  return String(value ?? '').trim()
}
 
export const CONTRACT_REPORT_TITLE = '合同信息报表'
export const CONTRACT_REPORT_STYLE = {
  titleAlign: 'center',
  titleLevel: 'strong',
  orientation: 'portrait',
  density: 'compact',
  showSequence: true
}
 
const STATUS_META = {
  1: { text: '正常', type: 'success', bool: true },
  0: { text: '冻结', type: 'danger', bool: false }
}
 
export function createContractSearchState() {
  return {
    condition: '',
    code: '',
    name: '',
    projectName: '',
    status: '',
    memo: ''
  }
}
 
export function createContractFormState() {
  return {
    id: void 0,
    code: '',
    name: '',
    projectName: '',
    status: 1,
    memo: ''
  }
}
 
export function getContractPaginationKey() {
  return {
    current: 'current',
    size: 'pageSize'
  }
}
 
export function getContractStatusOptions() {
  return [
    { label: '正常', value: 1 },
    { label: '冻结', value: 0 }
  ]
}
 
export function getContractStatusMeta(status) {
  if (status === true || Number(status) === 1) {
    return STATUS_META[1]
  }
  if (status === false || Number(status) === 0) {
    return STATUS_META[0]
  }
  return { text: '未知', type: 'info', bool: false }
}
 
export function buildContractSearchParams(params = {}) {
  const result = {}
  ;['condition', 'code', 'name', 'projectName', 'memo'].forEach((key) => {
    const value = normalizeText(params[key])
    if (value) {
      result[key] = value
    }
  })
 
  if (params.status !== '' && params.status !== null && params.status !== undefined) {
    result.status = Number(params.status)
  }
 
  return result
}
 
export function buildContractPageQueryParams(params = {}) {
  return {
    current: params.current || 1,
    pageSize: params.pageSize || params.size || 20,
    ...buildContractSearchParams(params)
  }
}
 
export function buildContractSavePayload(formData = {}) {
  return {
    ...(formData.id !== void 0 && formData.id !== null && formData.id !== ''
      ? { id: Number(formData.id) }
      : {}),
    code: normalizeText(formData.code),
    name: normalizeText(formData.name),
    projectName: normalizeText(formData.projectName),
    status:
      formData.status !== void 0 && formData.status !== null && formData.status !== ''
        ? Number(formData.status)
        : 1,
    memo: normalizeText(formData.memo)
  }
}
 
export function buildContractDialogModel(record = {}) {
  return {
    ...createContractFormState(),
    ...(record.id !== void 0 && record.id !== null && record.id !== '' ? { id: Number(record.id) } : {}),
    code: normalizeText(record.code || ''),
    name: normalizeText(record.name || ''),
    projectName: normalizeText(record.projectName || ''),
    status: record.status !== void 0 && record.status !== null ? Number(record.status) : 1,
    memo: normalizeText(record.memo || '')
  }
}
 
export function normalizeContractListRow(record = {}) {
  const statusMeta = getContractStatusMeta(record.statusBool ?? record.status)
  return {
    ...record,
    code: normalizeText(record.code) || '--',
    name: normalizeText(record.name) || '--',
    projectName: normalizeText(record.projectName) || '--',
    memo: normalizeText(record.memo) || '--',
    statusText: statusMeta.text,
    statusType: statusMeta.type,
    statusBool: record.statusBool !== void 0 ? Boolean(record.statusBool) : statusMeta.bool,
    createByText: normalizeText(record.createBy$ || record.createBy || ''),
    createTimeText: normalizeText(record.createTime$ || record.createTime || ''),
    updateByText: normalizeText(record.updateBy$ || record.updateBy || ''),
    updateTimeText: normalizeText(record.updateTime$ || record.updateTime || '')
  }
}
 
export function normalizeContractDetailRecord(record = {}) {
  return normalizeContractListRow(record)
}
 
export function buildContractPrintRows(records = []) {
  if (!Array.isArray(records)) {
    return []
  }
  return records.map((record) => normalizeContractListRow(record))
}
 
export function buildContractReportMeta({
  previewMeta = {},
  count = 0,
  orientation = CONTRACT_REPORT_STYLE.orientation
} = {}) {
  return {
    reportTitle: CONTRACT_REPORT_TITLE,
    reportDate: previewMeta.reportDate,
    printedAt: previewMeta.printedAt,
    operator: previewMeta.operator,
    count,
    reportStyle: {
      ...CONTRACT_REPORT_STYLE,
      orientation
    }
  }
}