overseas.ts 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765
  1. import request from '@/utils/request';
  2. // 出国申请查询参数类型
  3. export interface OverseasApplicationQuery {
  4. pageNum: number;
  5. pageSize: number;
  6. applicantName?: string;
  7. department?: string;
  8. purpose?: string;
  9. destination?: string;
  10. status?: string;
  11. approvalLevel?: string;
  12. currentApprover?: string;
  13. applicantId?: number;
  14. budgetMin?: number;
  15. budgetMax?: number;
  16. applyTimeBegin?: string;
  17. applyTimeEnd?: string;
  18. startDateBegin?: string;
  19. startDateEnd?: string;
  20. params?: Record<string, any>;
  21. }
  22. // 出国申请数据类型
  23. export interface OverseasApplicationVO {
  24. applicationId: number | string;
  25. serialNumber?: string; // 编号
  26. applicantId: number;
  27. applicantName: string;
  28. gender?: string; // 性别
  29. birthDate?: string; // 出生日期
  30. photo?: string; // 照片地址
  31. idNumber?: string; // 身份证号
  32. politicalStatus?: string; // 政治面貌
  33. registeredAddress?: string; // 户籍所在地
  34. department: string;
  35. position?: string; // 职务
  36. professionalTitle?: string; // 职称
  37. administrativeLevel?: string; // 行政职级
  38. personnelCategory?: string; // 人员类别代码
  39. registrationUnit?: string; // 登记备案责任单位
  40. unitLeaderSignature?: string; // 单位负责人签名
  41. unitContact?: string; // 单位联系人
  42. officePhone?: string; // 办公电话
  43. mobilePhone?: string; // 移动电话
  44. contactPhone: string;
  45. documentName?: string; // 申领证件名称
  46. documentNumber?: string; // 证件号码
  47. destinationCountry?: string; // 前往国家
  48. exitReason?: string; // 出境事由
  49. visitRelationship?: string; // 探望对象姓名及与申请者关系
  50. remarks?: string; // 备注
  51. emergencyContact?: string; // 应急联系人及电话
  52. signature?: string; // 手写签字
  53. stampedRegistrationFilePath?: string; // 登记备案表盖章文件路径
  54. stampedRegistrationFileName?: string; // 登记备案表盖章文件名
  55. stampedFileUploadTime?: string; // 盖章文件上传时间
  56. stampedFileUploadStatus?: string; // 盖章文件上传状态
  57. purpose: string;
  58. purposeDetail: string;
  59. destination: string;
  60. destinationCity?: string;
  61. startDate: string;
  62. endDate: string;
  63. duration: number;
  64. budget: number;
  65. invitation?: string;
  66. itinerary: string;
  67. accommodationPlan?: string;
  68. transportationPlan?: string;
  69. status: string;
  70. currentApprover?: string;
  71. approvalLevel: string;
  72. applyTime: string;
  73. approvalTime?: string;
  74. adminRemark?: string;
  75. applicantRemark?: string;
  76. createTime: string;
  77. updateTime: string;
  78. createBy: string;
  79. updateBy: string;
  80. // 显示字段
  81. statusText: string;
  82. purposeText: string;
  83. approvalLevelText: string;
  84. genderText?: string;
  85. politicalStatusText?: string;
  86. administrativeLevelText?: string;
  87. personnelCategoryText?: string;
  88. }
  89. // 出国申请表单类型
  90. export interface OverseasApplicationForm {
  91. applicationId?: number | string;
  92. serialNumber?: string; // 编号
  93. applicantId?: number;
  94. applicantName?: string;
  95. gender?: string; // 性别
  96. birthDate?: string; // 出生日期
  97. photo?: string; // 照片地址
  98. idNumber?: string; // 身份证号
  99. politicalStatus?: string; // 政治面貌
  100. registeredAddress?: string; // 户籍所在地
  101. department?: string; // 所属部门/现工作部门
  102. position?: string; // 职务
  103. professionalTitle?: string; // 职称
  104. administrativeLevel?: string; // 行政职级
  105. personnelCategory?: string; // 人员类别代码
  106. unitLeaderSignature?: string; // 单位负责人签名
  107. unitContact?: string; // 单位联系人
  108. officePhone?: string; // 办公电话
  109. mobilePhone?: string; // 移动电话
  110. contactPhone?: string; // 联系电话(保留兼容性)
  111. documentName?: string; // 申领证件名称
  112. documentNumber?: string; // 证件号码
  113. destinationCountry?: string; // 前往国家
  114. exitReason?: string; // 出境事由
  115. visitRelationship?: string; // 探望对象姓名及与申请者关系
  116. remarks?: string; // 备注
  117. emergencyContact?: string; // 应急联系人及电话
  118. signature?: string; // 手写签字(base64格式)
  119. stampedRegistrationFilePath?: string; // 登记备案表盖章文件路径
  120. stampedRegistrationFileName?: string; // 登记备案表盖章文件名
  121. stampedFileUploadTime?: string; // 盖章文件上传时间
  122. stampedFileUploadStatus?: string; // 盖章文件上传状态:0-未上传,1-已上传
  123. partyRetentionFilePath?: string; // 党籍保留附件文件路径
  124. partyRetentionFileName?: string; // 党籍保留附件文件名
  125. partyRetentionUploadTime?: string; // 党籍保留附件上传时间
  126. partyRetentionUploadStatus?: string; // 党籍保留附件上传状态:0-未上传,1-已上传
  127. purpose: string;
  128. purposeDetail: string;
  129. destination: string;
  130. destinationCity?: string; // 目的地城市
  131. startDate: string;
  132. endDate: string;
  133. duration?: number; // 自动计算
  134. budget: number;
  135. invitation?: string;
  136. itinerary: string;
  137. accommodationPlan?: string;
  138. transportationPlan?: string;
  139. applicantRemark?: string;
  140. }
  141. // 审批请求类型
  142. export interface ApprovalRequest {
  143. applicationId: number | string;
  144. approvalStatus: string;
  145. approvalOpinion?: string;
  146. }
  147. // 出国记录查询参数类型
  148. export interface OverseasRecordQuery {
  149. pageNum: number;
  150. pageSize: number;
  151. applicantName?: string;
  152. department?: string;
  153. purpose?: string;
  154. destination?: string;
  155. completionStatus?: string;
  156. applicantId?: number;
  157. applicationId?: number;
  158. actualStartDateBegin?: string;
  159. actualStartDateEnd?: string;
  160. actualEndDateBegin?: string;
  161. actualEndDateEnd?: string;
  162. params?: Record<string, any>;
  163. }
  164. // 出国记录数据类型
  165. export interface OverseasRecordVO {
  166. recordId: number | string;
  167. applicationId: number;
  168. applicantId: number;
  169. applicantName: string;
  170. department: string;
  171. position: string;
  172. contactPhone: string;
  173. contactEmail: string;
  174. purpose: string;
  175. purposeDetail: string;
  176. destination: string;
  177. destinationCity: string;
  178. actualStartDate: string;
  179. actualEndDate: string;
  180. actualDuration: number;
  181. actualBudget: number;
  182. invitation: string;
  183. itinerary: string;
  184. accommodationPlan: string;
  185. transportationPlan: string;
  186. completionStatus: string;
  187. achievement: string;
  188. reportContent: string;
  189. certificatePath: string;
  190. createTime: string;
  191. updateTime: string;
  192. createBy: string;
  193. updateBy: string;
  194. // 显示字段
  195. purposeText: string;
  196. status?: string; // 申请状态(来自申请表)
  197. statusText?: string; // 申请状态文本(来自申请表)
  198. completionStatusText: string;
  199. // 来自申请表的扩展字段
  200. gender?: string;
  201. genderText?: string;
  202. birthDate?: string;
  203. politicalStatus?: string;
  204. politicalStatusText?: string;
  205. professionalTitle?: string;
  206. documentName?: string;
  207. documentNumber?: string;
  208. mobilePhone?: string;
  209. destinationCountry?: string;
  210. exitReason?: string;
  211. emergencyContact?: string;
  212. remarks?: string;
  213. }
  214. // 出国记录表单类型
  215. export interface OverseasRecordForm {
  216. recordId?: number | string;
  217. applicationId: number;
  218. applicantId?: number;
  219. applicantName?: string;
  220. department?: string;
  221. position?: string;
  222. contactPhone?: string;
  223. contactEmail?: string;
  224. purpose?: string;
  225. purposeDetail?: string;
  226. destination?: string;
  227. destinationCity?: string;
  228. actualStartDate: string;
  229. actualEndDate: string;
  230. actualDuration?: number;
  231. actualBudget: number;
  232. completionStatus: string;
  233. achievement?: string;
  234. reportContent?: string;
  235. certificatePath?: string;
  236. }
  237. // 完成状态更新请求类型
  238. export interface CompletionRequest {
  239. recordId: number | string;
  240. completionStatus: string;
  241. achievement?: string;
  242. reportContent?: string;
  243. }
  244. // 出国审批记录查询参数类型
  245. export interface OverseasApprovalQuery {
  246. pageNum: number;
  247. pageSize: number;
  248. applicationId?: number;
  249. approverId?: number;
  250. approverName?: string;
  251. approvalLevel?: string;
  252. approvalStatus?: string;
  253. approvalTimeBegin?: string;
  254. approvalTimeEnd?: string;
  255. applicantName?: string;
  256. department?: string;
  257. destination?: string;
  258. params?: Record<string, any>;
  259. }
  260. // 出国审批记录数据类型
  261. export interface OverseasApprovalVO {
  262. approvalId: number | string;
  263. applicationId: number;
  264. approverId: number;
  265. approverName: string;
  266. approvalLevel: string;
  267. approvalStatus: string;
  268. approvalOpinion: string;
  269. approvalTime: string;
  270. createTime: string;
  271. updateTime: string;
  272. createBy: string;
  273. updateBy: string;
  274. // ==================== 申请信息相关字段 ====================
  275. applicantId: number;
  276. applicantName: string;
  277. department: string;
  278. purpose: string;
  279. destination: string;
  280. startDate: string;
  281. endDate: string;
  282. duration: number;
  283. // 显示字段
  284. approvalLevelText: string;
  285. approvalStatusText: string;
  286. purposeText: string;
  287. }
  288. // ==================== 出国申请相关API ====================
  289. // 查询出国申请列表
  290. export function listOverseasApplication(query: OverseasApplicationQuery) {
  291. return request({
  292. url: '/rs/overseas/application/list',
  293. method: 'get',
  294. params: query
  295. });
  296. }
  297. // 查询我的出国申请列表
  298. export function listMyOverseasApplication(query: OverseasApplicationQuery) {
  299. return request({
  300. url: '/rs/overseas/application/my/list',
  301. method: 'get',
  302. params: query
  303. });
  304. }
  305. // 查询待审批的申请列表
  306. export function listPendingOverseasApplication(query: OverseasApplicationQuery) {
  307. return request({
  308. url: '/rs/overseas/application/pending/list',
  309. method: 'get',
  310. params: query
  311. });
  312. }
  313. // 根据状态查询申请列表
  314. export function listOverseasApplicationByStatus(status: string) {
  315. return request({
  316. url: `/rs/overseas/application/status/${status}`,
  317. method: 'get'
  318. });
  319. }
  320. // 查询出国申请详细
  321. export function getOverseasApplication(applicationId: string | number) {
  322. return request({
  323. url: `/rs/overseas/application/detail/${applicationId}`,
  324. method: 'get'
  325. });
  326. }
  327. // 新增出国申请
  328. export function addOverseasApplication(data: OverseasApplicationForm) {
  329. return request({
  330. url: '/rs/overseas/application',
  331. method: 'post',
  332. data: data
  333. });
  334. }
  335. // 修改出国申请
  336. export function updateOverseasApplication(data: OverseasApplicationForm) {
  337. return request({
  338. url: '/rs/overseas/application',
  339. method: 'put',
  340. data: data
  341. });
  342. }
  343. // 提交出国申请
  344. export function submitOverseasApplication(applicationId: string | number) {
  345. return request({
  346. url: `/rs/overseas/application/submit/${applicationId}`,
  347. method: 'put'
  348. });
  349. }
  350. // 重新提交被拒绝的出国申请
  351. export function resubmitOverseasApplication(applicationId: string | number, data: OverseasApplicationForm) {
  352. return request({
  353. url: `/rs/overseas/application/resubmit/${applicationId}`,
  354. method: 'put',
  355. data: data
  356. });
  357. }
  358. // 校验出国申请前置条件
  359. export function validateApplicationPrerequisites(politicalStatus?: string, duration?: number) {
  360. return request({
  361. url: '/rs/overseas/application/validatePrerequisites',
  362. method: 'get',
  363. params: {
  364. politicalStatus,
  365. duration
  366. }
  367. });
  368. }
  369. // 取消出国申请
  370. export function cancelOverseasApplication(applicationId: string | number, reason?: string) {
  371. return request({
  372. url: `/rs/overseas/application/cancel/${applicationId}`,
  373. method: 'put',
  374. params: { reason }
  375. });
  376. }
  377. // 审批出国申请
  378. export function approveOverseasApplication(data: ApprovalRequest) {
  379. return request({
  380. url: '/rs/overseas/application/approve',
  381. method: 'post',
  382. data: data
  383. });
  384. }
  385. // 删除出国申请
  386. export function delOverseasApplication(applicationId: string | number | Array<string | number>) {
  387. return request({
  388. url: `/rs/overseas/application/${typeof applicationId === 'object' ? applicationId.join(',') : applicationId}`,
  389. method: 'delete'
  390. });
  391. }
  392. // 导出出国申请
  393. export function exportOverseasApplication(query: OverseasApplicationQuery) {
  394. return request({
  395. url: '/rs/overseas/application/export',
  396. method: 'post',
  397. data: query
  398. });
  399. }
  400. // ==================== 出国记录相关API ====================
  401. // 查询出国记录列表
  402. export function listOverseasRecord(query: OverseasRecordQuery) {
  403. return request({
  404. url: '/rs/overseas/record/list',
  405. method: 'get',
  406. params: query
  407. });
  408. }
  409. // 查询我的出国记录列表
  410. export function listMyOverseasRecord(query: OverseasRecordQuery) {
  411. return request({
  412. url: '/rs/overseas/record/my/list',
  413. method: 'get',
  414. params: query
  415. });
  416. }
  417. // 根据申请ID查询出国记录
  418. export function getOverseasRecordByApplication(applicationId: string | number) {
  419. return request({
  420. url: `/rs/overseas/record/application/${applicationId}`,
  421. method: 'get'
  422. });
  423. }
  424. // 查询出国记录详细
  425. export function getOverseasRecord(recordId: string | number) {
  426. return request({
  427. url: `/rs/overseas/record/${recordId}`,
  428. method: 'get'
  429. });
  430. }
  431. // 新增出国记录
  432. export function addOverseasRecord(data: OverseasRecordForm) {
  433. return request({
  434. url: '/rs/overseas/record',
  435. method: 'post',
  436. data: data
  437. });
  438. }
  439. // 修改出国记录
  440. export function updateOverseasRecord(data: OverseasRecordForm) {
  441. return request({
  442. url: '/rs/overseas/record',
  443. method: 'put',
  444. data: data
  445. });
  446. }
  447. // 基于申请信息创建出国记录
  448. export function createOverseasRecordFromApplication(applicationId: string | number) {
  449. return request({
  450. url: `/rs/overseas/record/create/${applicationId}`,
  451. method: 'post'
  452. });
  453. }
  454. // 更新出国记录完成状态
  455. export function updateOverseasRecordCompletion(data: CompletionRequest) {
  456. return request({
  457. url: '/rs/overseas/record/complete',
  458. method: 'put',
  459. data: data
  460. });
  461. }
  462. // 删除出国记录
  463. export function delOverseasRecord(recordId: string | number | Array<string | number>) {
  464. return request({
  465. url: `/rs/overseas/record/${typeof recordId === 'object' ? recordId.join(',') : recordId}`,
  466. method: 'delete'
  467. });
  468. }
  469. // 导出出国记录
  470. export function exportOverseasRecord(query: OverseasRecordQuery) {
  471. return request({
  472. url: '/rs/overseas/record/export',
  473. method: 'post',
  474. data: query
  475. });
  476. }
  477. // 初始化出国记录测试数据(临时接口)
  478. export function initOverseasRecordTestData() {
  479. return request({
  480. url: '/rs/overseas/record/initTestData',
  481. method: 'post'
  482. });
  483. }
  484. // ==================== 出国审批记录相关API ====================
  485. // 查询出国审批记录列表
  486. export function listOverseasApproval(query: OverseasApprovalQuery) {
  487. return request({
  488. url: '/rs/overseas/approval/list',
  489. method: 'get',
  490. params: query
  491. });
  492. }
  493. // 查询我的审批记录列表
  494. export function listMyOverseasApproval(query: OverseasApprovalQuery) {
  495. return request({
  496. url: '/rs/overseas/approval/my/list',
  497. method: 'get',
  498. params: query
  499. });
  500. }
  501. // 根据申请ID查询审批记录列表
  502. export function getOverseasApprovalByApplication(applicationId: string | number) {
  503. return request({
  504. url: `/rs/overseas/approval/application/${applicationId}`,
  505. method: 'get'
  506. });
  507. }
  508. // 查询出国审批记录详细
  509. export function getOverseasApproval(approvalId: string | number) {
  510. return request({
  511. url: `/rs/overseas/approval/${approvalId}`,
  512. method: 'get'
  513. });
  514. }
  515. // 导出出国审批记录
  516. export function exportOverseasApproval(query: OverseasApprovalQuery) {
  517. return request({
  518. url: '/rs/overseas/approval/export',
  519. method: 'post',
  520. data: query
  521. });
  522. }
  523. // 获取出国申请审批历史
  524. export function getOverseasApprovalHistory(applicationId: string | number) {
  525. return request({
  526. url: `/rs/overseas/application/approval/history/${applicationId}`,
  527. method: 'get'
  528. });
  529. }
  530. // 新增出国审批记录
  531. export function addOverseasApproval(data: any) {
  532. return request({
  533. url: '/rs/overseas/approval',
  534. method: 'post',
  535. data: data
  536. });
  537. }
  538. // 修改出国审批记录
  539. export function updateOverseasApproval(data: any) {
  540. return request({
  541. url: '/rs/overseas/approval',
  542. method: 'put',
  543. data: data
  544. });
  545. }
  546. // 删除出国审批记录
  547. export function delOverseasApproval(approvalIds: string | number | Array<string | number>) {
  548. return request({
  549. url: `/rs/overseas/approval/${approvalIds}`,
  550. method: 'delete'
  551. });
  552. }
  553. // 修复审批记录数据
  554. export function fixOverseasApprovalData() {
  555. return request({
  556. url: '/rs/overseas/approval/fixData',
  557. method: 'post'
  558. });
  559. }
  560. // 修复已审批通过但未创建记录的申请
  561. export function fixApprovedOverseasRecords() {
  562. return request({
  563. url: '/rs/overseas/application/fix/records',
  564. method: 'post'
  565. });
  566. }
  567. // ==================== PDF生成相关接口 ====================
  568. // 生成登记表请求参数类型
  569. export interface GenerateRegistrationFormRequest {
  570. applicationId: number;
  571. documentNumber?: string;
  572. format?: string;
  573. }
  574. // 登记表生成响应类型
  575. export interface RegistrationFormResponse {
  576. documentId: string;
  577. fileName: string;
  578. downloadUrl: string;
  579. previewUrl: string;
  580. fileSize: number;
  581. generateTime: string;
  582. documentNumber: string;
  583. applicationId: number;
  584. }
  585. // 生成出国申请登记表PDF
  586. export function generateRegistrationForm(data: GenerateRegistrationFormRequest) {
  587. return request({
  588. url: '/rs/overseas/application/generateRegistrationForm',
  589. method: 'post',
  590. data: data
  591. });
  592. }
  593. // 下载生成的PDF文档
  594. export function downloadRegistrationFormPdf(documentId: string) {
  595. return request({
  596. url: `/rs/overseas/application/downloadPdf/${documentId}`,
  597. method: 'get',
  598. responseType: 'blob'
  599. });
  600. }
  601. // 预览生成的PDF文档
  602. export function previewRegistrationFormPdf(documentId: string) {
  603. return request({
  604. url: `/rs/overseas/application/previewPdf/${documentId}`,
  605. method: 'get',
  606. responseType: 'blob'
  607. });
  608. }
  609. // 下载登记备案附件模板
  610. export function downloadRegistrationTemplate() {
  611. return request({
  612. url: '/rs/overseas/application/downloadRegistrationTemplate',
  613. method: 'get',
  614. responseType: 'blob'
  615. });
  616. }
  617. // 下载保留党籍申请模板
  618. export function downloadPartyMembershipTemplate() {
  619. return request({
  620. url: '/rs/overseas/application/downloadPartyMembershipTemplate',
  621. method: 'get',
  622. responseType: 'blob'
  623. });
  624. }
  625. // ==================== 出国申请附件相关API ====================
  626. // 附件数据类型
  627. export interface OverseasAttachmentVO {
  628. attachmentId: number | string;
  629. applicationId: number;
  630. attachmentTitle: string;
  631. attachmentContent?: string;
  632. fileName: string;
  633. fileOriginalName: string;
  634. filePath: string;
  635. fileSize: number;
  636. fileSizeFormatted?: string;
  637. fileType?: string;
  638. mimeType?: string;
  639. uploadTime?: string;
  640. uploadUserId?: number;
  641. uploadUserName?: string;
  642. createTime?: string;
  643. updateTime?: string;
  644. }
  645. // 附件BO
  646. export interface OverseasAttachmentBo {
  647. attachmentId?: number | string;
  648. applicationId: number;
  649. attachmentTitle: string;
  650. attachmentContent?: string;
  651. }
  652. // 查询出国申请的附件列表
  653. export function listOverseasAttachments(applicationId: string | number) {
  654. return request({
  655. url: `/rs/overseas/attachment/list/${applicationId}`,
  656. method: 'get'
  657. });
  658. }
  659. // 查询附件详情
  660. export function getOverseasAttachment(attachmentId: string | number) {
  661. return request({
  662. url: `/rs/overseas/attachment/${attachmentId}`,
  663. method: 'get'
  664. });
  665. }
  666. // 上传附件
  667. export function uploadOverseasAttachment(data: FormData) {
  668. return request({
  669. url: '/rs/overseas/attachment/upload',
  670. method: 'post',
  671. headers: {
  672. 'Content-Type': 'multipart/form-data'
  673. },
  674. data: data
  675. });
  676. }
  677. // 更新附件信息(标题和内容)
  678. export function updateOverseasAttachment(data: OverseasAttachmentBo) {
  679. return request({
  680. url: '/rs/overseas/attachment',
  681. method: 'put',
  682. data: data
  683. });
  684. }
  685. // 删除附件
  686. export function deleteOverseasAttachment(attachmentId: string | number) {
  687. return request({
  688. url: `/rs/overseas/attachment/${attachmentId}`,
  689. method: 'delete'
  690. });
  691. }
  692. // 批量删除附件
  693. export function deleteOverseasAttachments(attachmentIds: Array<string | number>) {
  694. return request({
  695. url: '/rs/overseas/attachment/batch',
  696. method: 'delete',
  697. data: attachmentIds
  698. });
  699. }