主要更新uniapp相关功能

This commit is contained in:
hero920103 committed 2026-10-07 00:59:05 +08:00
1 parent aa92ca40a2
commit 5b4dbb2b46
65 files changed
+8532 -1921

No files matched your search

+71
View File
@@ -0,0 +1,71 @@
/**
* 通讯录(移动端)接口封装。
* 对应后端 go/controllers/app_contact.go 的 /app/oa/contact/* 只读接口。
*/
import { request } from '@/api/request.js'
/** 联系人类型:1-内部员工 2-外部联系人 */
export const CONTACT_TYPE_OPTIONS = [
{ value: 1, label: '内部' },
{ value: 2, label: '外部' }
]
export function getContactTypeLabel(value) {
return Number(value) === 2 ? '外部' : '内部'
}
/**
* 多手机号格式化:JSON 数组 / 分隔符字符串 / 单个号码 → "138…、139…"(无内容返回空串)。
* 与 Web 管理端 contact/index.vue 的 formatMobiles 口径保持一致。
*/
export function formatMobiles(val) {
if (!val) return ''
let arr = []
if (Array.isArray(val)) {
arr = val
} else {
const s = String(val).trim()
if (!s) return ''
try {
const parsed = JSON.parse(s)
arr = Array.isArray(parsed) ? parsed : [s]
} catch (e) {
arr = s.split(/[,,、;;\s]+/)
}
}
return arr.map((m) => String(m || '').trim()).filter(Boolean).join('、')
}
/** 取联系人首选号码:优先 phone,其次 mobiles 中的第一个 */
export function primaryPhone(contact) {
if (!contact) return ''
const phone = String(contact.phone || '').trim()
if (phone) return phone
const first = formatMobiles(contact.mobiles)
return first ? first.split('、')[0] : ''
}
/** 分页查询通讯录 */
export async function fetchContacts(params = {}) {
const data = await request({
url: '/app/oa/contact/list',
data: {
page: params.page || 1,
pageSize: params.pageSize || 20,
keyword: params.keyword || '',
org_id: params.orgId || 0,
contact_type: params.contactType || 0
}
})
return { list: (data && data.list) || [], total: (data && data.total) || 0 }
}
/** 组织架构树(含各部门内部联系人数量) */
export function fetchContactOrgTree() {
return request({ url: '/app/oa/contact/org-tree' })
}
/** 联系人详情 */
export function getContact(id) {
return request({ url: `/app/oa/contact/${id}` })
}