/** Code purpose (plain language): receives the service that coordinates WeCom assets and referenced assets. Related files: WecomAccountService.java. Data flow: HTTP controller -> service -> mappers. */
/** Code purpose (plain language): returns the paged enterprise WeChat asset list and optional registration-phone filter. Related files: WecomAccountPageQuery.java, WecomAccountService.java. Data flow: list query -> GET -> service.page -> table. */
/** Code purpose (plain language): searches registration subjects by company name or short name. Related files: CompanyProfileLookupResponse.java, WecomAccountService.java. Data flow: remote select -> GET -> compact options. */
/** Code purpose (plain language): finds active company profiles for the registration-subject selector. Related files: WecomAccountController.java, CompanyProfileEntity.java. Data flow: form keyword -> GET lookup -> mapper -> compact DTO. */
/** Code purpose (plain language): finds active phone assets which may be reused as registration phones. Related files: WecomAccountController.java, PhoneAssetEntity.java. Data flow: form keyword -> GET lookup -> mapper -> compact DTO. */
/** Code purpose (plain language): finds active company people for the optional WeCom owner selector. Related files: WecomAccountController.java, CompanyPersonEntity.java. Data flow: form keyword -> GET lookup -> mapper -> compact DTO. */
/** Code purpose (plain language): removes the China country prefix and only accepts an eleven-digit mobile number before it is looked up or created. Related files: WecomAccountSaveRequest.java, PhoneAssetService.java. Data flow: create form -> normalization -> lookup/create. */
* 关联逻辑(调用链/数据流):实体 + 名称 Map -> Response -> ApiResponse -> Element Plus 表格。
*/
/** Code purpose (plain language): safely reads an optional relation name without passing a null key to immutable empty maps. Related files: WecomAccountResponse.java. Data flow: optional relation ID -> safe map lookup -> response. */
@@ -169,4 +171,21 @@ class WecomAccountServiceTest {
entity.setPersonName("王五");
returnentity;
}
}
/** Code purpose (plain language): proves an entered existing number is reused and marked as an existing link. Related files: WecomAccountService.java, WecomAccountSaveRequest.java. Data flow: create request -> existing phone -> WeCom response. */
/** Code purpose (plain language): proves a missing number creates an external phone asset and traces it back to the WeCom record. Related files: WecomAccountService.java, PhoneAssetEntity.java. Data flow: create request -> new phone -> new WeCom -> source update. */
/** Code purpose (plain language): restores the status filter to its explicit All selection after the clear icon is clicked. Related files: PhoneAssetView.js, phone-api-client.js. Data flow: clear icon -> ALL -> request omits status -> full list. */
/** Code purpose (plain language): converts stored disposal status values into the shorter labels required by the list UI. Related files: PhoneAssetService.java, PhoneAssetView.js. Data flow: API record -> formatDisposalStatus -> table/status option label. */
* 关联逻辑(调用链/数据流):路由进入页面 -> setup 初始化 -> loadPage -> API -> Element Plus 表格。
*/
/** Code purpose (plain language): owns list, dialog, and selector state for this page. Related files: wecom-api-client.js, WecomAccountController.java. Data flow: route -> setup -> API -> Element Plus controls. */
* 关联逻辑(调用链/数据流):页面事件 -> listWecomAccounts -> GET API -> records/total -> 表格和分页器。
*/
/** Code purpose (plain language): reloads the table using the active filters. Related files: wecom-api-client.js, WecomAccountService.java. Data flow: page action -> GET -> records/total -> table. */
/** Code purpose (plain language): resets the create form to the business defaults. Related files: WecomAccountSaveRequest.java. Data flow: add button -> reset -> dialog form. */
/** Code purpose (plain language): saves a new asset and refreshes the first page. Related files: wecom-api-client.js, WecomAccountService.java. Data flow: dialog submit -> POST -> transaction -> table refresh. */
/** Code purpose (plain language): supplies existing phone assets to the autocomplete while leaving a typed new number usable. Related files: wecom-api-client.js, WecomAccountService.java. Data flow: phone input -> lookup -> autocomplete suggestions. */
/** Code purpose (plain language): looks up registration subjects by name or abbreviation. Related files: wecom-api-client.js, WecomAccountService.java. Data flow: remote select -> lookup -> option list. */
/** Code purpose (plain language): restores the registration-subject filter to its explicit All selection after the clear icon is clicked. Related files: WecomAccountView.js, wecom-api-client.js. Data flow: clear icon -> ALL -> query omits filter -> full list. */
/** Code purpose (plain language): restores the real-name-status filter to its explicit All selection after the clear icon is clicked. Related files: WecomAccountView.js, wecom-api-client.js. Data flow: clear icon -> ALL -> query omits filter -> full list. */
/** Code purpose (plain language): searches again from the first page. Related files: WecomAccountView.js. Data flow: filter change -> filters.page -> loadPage. */
/** Code purpose (plain language): clears list text filters but retains an incoming phone-asset route filter until the user explicitly removes it. Related files: WecomAccountView.js. Data flow: reset -> default filters -> loadPage. */
/** Code purpose (plain language): formats an optional referenced ID for table display. Related files: WecomAccountResponse.java. Data flow: API record -> formatter -> table cell. */
/** Code purpose (plain language): sends an API request and exposes either its data or readable error. Related files: WecomAccountView.js, WecomAccountController.java. Data flow: view action -> request -> ApiResponse -> view state. */
/** Code purpose (plain language): searches company profiles for the registration-subject picker. Related files: WecomAccountView.js, WecomAccountController.java. Data flow: remote select -> GET lookup -> options. */