This commit is contained in:
Your Name
2026-04-21 09:49:44 +08:00
parent c9e0419895
commit c15c348b7a
454 changed files with 5391 additions and 25651 deletions
+184
View File
@@ -0,0 +1,184 @@
import request from '@/utils/request'
/** 企业微信 员工↔客户 消息收发(企业群发 + 会话内容存档) */
/** 会话列表(按最近消息时间倒序) */
export interface QywxMsgSession {
id: number
staff_userid: string
external_userid: string
roomid: string
session_type: number // 1=单聊 2=群聊
last_msg_id: string
last_msg_seq: number
last_msg_time: number
last_msg_type: string
last_msg_summary: string
unread_staff: number
create_time: number
update_time: number
customer?: {
name?: string
avatar?: string
type?: number
gender?: number
corp_name?: string
unionid?: string
} | null
staff?: {
id?: number
name?: string
avatar?: string
} | null
}
export interface QywxMsgArchiveItem {
id: number
msgid: string
seq: number
action: 'send' | 'recall' | 'switch'
from_user: string
from_is_staff: boolean
to_list: string[]
roomid: string
msgtype: string
content: string
media_id: string
md5sum: string
file_name: string
file_size: number
file_ext: string
play_length: number
send_time: number
from_profile?: Record<string, any> | null
media?: Array<{
id: number
sdkfileid: string
status: number
file_path: string
file_url: string
file_size: number
}>
}
export interface QywxSendTask {
id: number
admin_id: number
sender_userid: string
external_userids: string[]
chat_type: number
msg_payload: any
msg_template_id: string
fail_list: any[]
status: number
error: string
create_time: number
update_time: number
}
export interface QywxMsgAttachment {
msgtype: 'image' | 'video' | 'file' | 'link' | 'miniprogram'
image?: { media_id: string }
video?: { media_id: string }
file?: { media_id: string }
link?: { title: string; picurl?: string; desc?: string; url: string }
miniprogram?: { title: string; pic_media_id: string; appid: string; page: string }
}
export interface QywxSendPayload {
text?: { content: string }
attachments?: QywxMsgAttachment[]
}
/** 会话列表 */
export function qywxMsgSessionLists(params: {
page_no?: number
page_size?: number
admin_id?: number
staff_userid?: string
external_userid?: string
keyword?: string
only_unread?: 0 | 1
}) {
return request.get({ url: '/qywx.message/session_list', params })
}
/** 单会话消息历史 */
export function qywxMsgArchiveLists(params: {
page_no?: number
page_size?: number
session_id?: number
staff_userid?: string
external_userid?: string
roomid?: string
before_time?: number
after_time?: number
}) {
return request.get({ url: '/qywx.message/archive_list', params })
}
/** 清零会话未读 */
export function qywxMsgMarkRead(session_id: number) {
return request.post({ url: '/qywx.message/mark_read', params: { session_id } })
}
/** 创建企业群发任务(员工代发) */
export function qywxMsgSend(params: {
sender_userid: string
external_userids: string[]
msg_payload: QywxSendPayload
chat_type?: 'single' | 'group'
}) {
return request.post({ url: '/qywx.message/send', params })
}
/** 群发任务列表 */
export function qywxMsgSendTaskLists(params: {
page_no?: number
page_size?: number
sender_userid?: string
status?: number
}) {
return request.get({ url: '/qywx.message/send_task_list', params })
}
/** 群发任务送达详情 */
export function qywxMsgSendTaskDetail(task_id: number, cursor = '') {
return request.get({ url: '/qywx.message/send_task_detail', params: { task_id, cursor } })
}
/** 可代发员工(已绑定企微 userid) */
export function qywxMsgStaffList(keyword = '') {
return request.get({ url: '/qywx.message/staff_list', params: { keyword } })
}
/** 某员工的客户 */
export function qywxMsgCustomerOfStaff(params: {
staff_userid: string
keyword?: string
limit?: number
}) {
return request.get({ url: '/qywx.message/customer_of_staff', params })
}
/** 会话存档状态(SDK / 私钥诊断) */
export function qywxMsgArchiveStatus() {
return request.get({ url: '/qywx.message/archive_status' })
}
/** 手动触发一次会话存档拉取 */
export function qywxMsgPullArchive(max_batches = 5, download = false) {
return request.post({ url: '/qywx.message/pull_archive', params: { max_batches, download } })
}
/** 上传媒体文件到企微,返回 media_id(用于 attachments */
export async function qywxMsgUploadMedia(file: File, type: 'image' | 'voice' | 'video' | 'file') {
const fd = new FormData()
fd.append('file', file)
fd.append('type', type)
return request.post({
url: '/qywx.message/upload_to_qywx',
data: fd,
headers: { 'Content-Type': 'multipart/form-data' }
})
}
+4 -1
View File
@@ -307,7 +307,10 @@ export function prescriptionOrderLists(params: any) {
return request.get({ url: '/tcm.prescriptionOrder/lists', params })
}
/** 诊单下可关联的支付单(待支付/已支付的 zyt_order,已占用且未撤回的会排除;编辑时传 prescription_order_id 保留当前单已选) */
/**
* 诊单下可关联的支付单(已支付 zyt_order;已占用且未撤回的会排除;编辑时传 prescription_order_id 保留当前单已选)。
* 服务端仅返回创建时间在 2026-04-20(含)之后的支付单;编辑时本单已关联的旧单仍会出现在列表中。
*/
export function prescriptionOrderPaidPayOrders(params: {
diagnosis_id: number
prescription_order_id?: number