feat(jdcookie): 添加批量校验和单个校验Cookie功能

- 新增批量校验Cookie接口及数据模型
- 新增单个校验Cookie接口及数据模型
- 扩展批量导入弹窗以支持Cookie校验展示
- 添加校验状态列和对应的状态标签显示
- 实现校验按钮及校验结果汇总提示
- 更新相关API文档和类型定义文件
This commit is contained in:
danial
2025-10-27 22:20:06 +08:00
parent 5d626219c5
commit d4d2d52e18
18 changed files with 1038 additions and 19 deletions

View File

@@ -227,6 +227,9 @@ docs/KamiApiJdCookieV1BatchCheckRes.md
docs/KamiApiJdCookieV1BatchCreateReq.md docs/KamiApiJdCookieV1BatchCreateReq.md
docs/KamiApiJdCookieV1BatchCreateRes.md docs/KamiApiJdCookieV1BatchCreateRes.md
docs/KamiApiJdCookieV1BatchCreateResult.md docs/KamiApiJdCookieV1BatchCreateResult.md
docs/KamiApiJdCookieV1BatchValidateReq.md
docs/KamiApiJdCookieV1BatchValidateRes.md
docs/KamiApiJdCookieV1BatchValidateResult.md
docs/KamiApiJdCookieV1CheckJdOrderPaymentReq.md docs/KamiApiJdCookieV1CheckJdOrderPaymentReq.md
docs/KamiApiJdCookieV1CheckJdOrderPaymentRes.md docs/KamiApiJdCookieV1CheckJdOrderPaymentRes.md
docs/KamiApiJdCookieV1CookieAccountInfo.md docs/KamiApiJdCookieV1CookieAccountInfo.md
@@ -267,6 +270,9 @@ docs/KamiApiJdCookieV1OrderHistoryReq.md
docs/KamiApiJdCookieV1OrderHistoryRes.md docs/KamiApiJdCookieV1OrderHistoryRes.md
docs/KamiApiJdCookieV1OrderInfo.md docs/KamiApiJdCookieV1OrderInfo.md
docs/KamiApiJdCookieV1UpdateAccountReq.md docs/KamiApiJdCookieV1UpdateAccountReq.md
docs/KamiApiJdCookieV1ValidateCookieItem.md
docs/KamiApiJdCookieV1ValidateCookieReq.md
docs/KamiApiJdCookieV1ValidateCookieRes.md
docs/KamiApiMerchantV1MerchantAllListRes.md docs/KamiApiMerchantV1MerchantAllListRes.md
docs/KamiApiMerchantV1MerchantConfigAddReq.md docs/KamiApiMerchantV1MerchantConfigAddReq.md
docs/KamiApiMerchantV1MerchantConfigDetailReq.md docs/KamiApiMerchantV1MerchantConfigDetailReq.md
@@ -609,6 +615,9 @@ models/kami-api-jd-cookie-v1-batch-check-res.ts
models/kami-api-jd-cookie-v1-batch-create-req.ts models/kami-api-jd-cookie-v1-batch-create-req.ts
models/kami-api-jd-cookie-v1-batch-create-res.ts models/kami-api-jd-cookie-v1-batch-create-res.ts
models/kami-api-jd-cookie-v1-batch-create-result.ts models/kami-api-jd-cookie-v1-batch-create-result.ts
models/kami-api-jd-cookie-v1-batch-validate-req.ts
models/kami-api-jd-cookie-v1-batch-validate-res.ts
models/kami-api-jd-cookie-v1-batch-validate-result.ts
models/kami-api-jd-cookie-v1-check-jd-order-payment-req.ts models/kami-api-jd-cookie-v1-check-jd-order-payment-req.ts
models/kami-api-jd-cookie-v1-check-jd-order-payment-res.ts models/kami-api-jd-cookie-v1-check-jd-order-payment-res.ts
models/kami-api-jd-cookie-v1-cookie-account-info.ts models/kami-api-jd-cookie-v1-cookie-account-info.ts
@@ -649,6 +658,9 @@ models/kami-api-jd-cookie-v1-order-history-req.ts
models/kami-api-jd-cookie-v1-order-history-res.ts models/kami-api-jd-cookie-v1-order-history-res.ts
models/kami-api-jd-cookie-v1-order-info.ts models/kami-api-jd-cookie-v1-order-info.ts
models/kami-api-jd-cookie-v1-update-account-req.ts models/kami-api-jd-cookie-v1-update-account-req.ts
models/kami-api-jd-cookie-v1-validate-cookie-item.ts
models/kami-api-jd-cookie-v1-validate-cookie-req.ts
models/kami-api-jd-cookie-v1-validate-cookie-res.ts
models/kami-api-merchant-v1-merchant-all-list-res.ts models/kami-api-merchant-v1-merchant-all-list-res.ts
models/kami-api-merchant-v1-merchant-config-add-req.ts models/kami-api-merchant-v1-merchant-config-add-req.ts
models/kami-api-merchant-v1-merchant-config-detail-req.ts models/kami-api-merchant-v1-merchant-config-detail-req.ts

View File

@@ -47,6 +47,10 @@ import type { KamiApiJdCookieV1BatchCreateReq } from '../models';
// @ts-ignore // @ts-ignore
import type { KamiApiJdCookieV1BatchCreateRes } from '../models'; import type { KamiApiJdCookieV1BatchCreateRes } from '../models';
// @ts-ignore // @ts-ignore
import type { KamiApiJdCookieV1BatchValidateReq } from '../models';
// @ts-ignore
import type { KamiApiJdCookieV1BatchValidateRes } from '../models';
// @ts-ignore
import type { KamiApiJdCookieV1CreateAccountReq } from '../models'; import type { KamiApiJdCookieV1CreateAccountReq } from '../models';
// @ts-ignore // @ts-ignore
import type { KamiApiJdCookieV1CreateAccountRes } from '../models'; import type { KamiApiJdCookieV1CreateAccountRes } from '../models';
@@ -58,6 +62,10 @@ import type { KamiApiJdCookieV1GetAccountRes } from '../models';
import type { KamiApiJdCookieV1ListAccountRes } from '../models'; import type { KamiApiJdCookieV1ListAccountRes } from '../models';
// @ts-ignore // @ts-ignore
import type { KamiApiJdCookieV1UpdateAccountReq } from '../models'; import type { KamiApiJdCookieV1UpdateAccountReq } from '../models';
// @ts-ignore
import type { KamiApiJdCookieV1ValidateCookieReq } from '../models';
// @ts-ignore
import type { KamiApiJdCookieV1ValidateCookieRes } from '../models';
/** /**
* JDCookieManagementApi - axios parameter creator * JDCookieManagementApi - axios parameter creator
*/ */
@@ -161,6 +169,54 @@ export const JDCookieManagementApiAxiosParamCreator = function (
options: localVarRequestOptions options: localVarRequestOptions
}; };
}, },
/**
*
* @summary Batch Validate Cookies
* @param {KamiApiJdCookieV1BatchValidateReq} [kamiApiJdCookieV1BatchValidateReq]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
apiJdCookieAccountBatchValidatePost: async (
kamiApiJdCookieV1BatchValidateReq?: KamiApiJdCookieV1BatchValidateReq,
options: RawAxiosRequestConfig = {}
): Promise<RequestArgs> => {
const localVarPath = `/api/jd-cookie/account/batch-validate`;
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
let baseOptions;
if (configuration) {
baseOptions = configuration.baseOptions;
}
const localVarRequestOptions = {
method: 'POST',
...baseOptions,
...options
};
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
localVarHeaderParameter['Content-Type'] = 'application/json';
setSearchParams(localVarUrlObj, localVarQueryParameter);
let headersFromBaseOptions =
baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {
...localVarHeaderParameter,
...headersFromBaseOptions,
...options.headers
};
localVarRequestOptions.data = serializeDataIfNeeded(
kamiApiJdCookieV1BatchValidateReq,
localVarRequestOptions,
configuration
);
return {
url: toPathString(localVarUrlObj),
options: localVarRequestOptions
};
},
/** /**
* *
* @summary Create Cookie Account * @summary Create Cookie Account
@@ -448,6 +504,54 @@ export const JDCookieManagementApiAxiosParamCreator = function (
configuration configuration
); );
return {
url: toPathString(localVarUrlObj),
options: localVarRequestOptions
};
},
/**
*
* @summary Validate Cookie
* @param {KamiApiJdCookieV1ValidateCookieReq} [kamiApiJdCookieV1ValidateCookieReq]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
apiJdCookieAccountValidatePost: async (
kamiApiJdCookieV1ValidateCookieReq?: KamiApiJdCookieV1ValidateCookieReq,
options: RawAxiosRequestConfig = {}
): Promise<RequestArgs> => {
const localVarPath = `/api/jd-cookie/account/validate`;
// use dummy base URL string because the URL constructor only accepts absolute URLs.
const localVarUrlObj = new URL(localVarPath, DUMMY_BASE_URL);
let baseOptions;
if (configuration) {
baseOptions = configuration.baseOptions;
}
const localVarRequestOptions = {
method: 'POST',
...baseOptions,
...options
};
const localVarHeaderParameter = {} as any;
const localVarQueryParameter = {} as any;
localVarHeaderParameter['Content-Type'] = 'application/json';
setSearchParams(localVarUrlObj, localVarQueryParameter);
let headersFromBaseOptions =
baseOptions && baseOptions.headers ? baseOptions.headers : {};
localVarRequestOptions.headers = {
...localVarHeaderParameter,
...headersFromBaseOptions,
...options.headers
};
localVarRequestOptions.data = serializeDataIfNeeded(
kamiApiJdCookieV1ValidateCookieReq,
localVarRequestOptions,
configuration
);
return { return {
url: toPathString(localVarUrlObj), url: toPathString(localVarUrlObj),
options: localVarRequestOptions options: localVarRequestOptions
@@ -533,6 +637,40 @@ export const JDCookieManagementApiFp = function (
configuration configuration
)(axios, localVarOperationServerBasePath || basePath); )(axios, localVarOperationServerBasePath || basePath);
}, },
/**
*
* @summary Batch Validate Cookies
* @param {KamiApiJdCookieV1BatchValidateReq} [kamiApiJdCookieV1BatchValidateReq]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async apiJdCookieAccountBatchValidatePost(
kamiApiJdCookieV1BatchValidateReq?: KamiApiJdCookieV1BatchValidateReq,
options?: RawAxiosRequestConfig
): Promise<
(
axios?: AxiosInstance,
basePath?: string
) => AxiosPromise<KamiApiJdCookieV1BatchValidateRes>
> {
const localVarAxiosArgs =
await localVarAxiosParamCreator.apiJdCookieAccountBatchValidatePost(
kamiApiJdCookieV1BatchValidateReq,
options
);
const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
const localVarOperationServerBasePath =
operationServerMap[
'JDCookieManagementApi.apiJdCookieAccountBatchValidatePost'
]?.[localVarOperationServerIndex]?.url;
return (axios, basePath) =>
createRequestFunction(
localVarAxiosArgs,
globalAxios,
BASE_PATH,
configuration
)(axios, localVarOperationServerBasePath || basePath);
},
/** /**
* *
* @summary Create Cookie Account * @summary Create Cookie Account
@@ -736,6 +874,40 @@ export const JDCookieManagementApiFp = function (
BASE_PATH, BASE_PATH,
configuration configuration
)(axios, localVarOperationServerBasePath || basePath); )(axios, localVarOperationServerBasePath || basePath);
},
/**
*
* @summary Validate Cookie
* @param {KamiApiJdCookieV1ValidateCookieReq} [kamiApiJdCookieV1ValidateCookieReq]
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
async apiJdCookieAccountValidatePost(
kamiApiJdCookieV1ValidateCookieReq?: KamiApiJdCookieV1ValidateCookieReq,
options?: RawAxiosRequestConfig
): Promise<
(
axios?: AxiosInstance,
basePath?: string
) => AxiosPromise<KamiApiJdCookieV1ValidateCookieRes>
> {
const localVarAxiosArgs =
await localVarAxiosParamCreator.apiJdCookieAccountValidatePost(
kamiApiJdCookieV1ValidateCookieReq,
options
);
const localVarOperationServerIndex = configuration?.serverIndex ?? 0;
const localVarOperationServerBasePath =
operationServerMap[
'JDCookieManagementApi.apiJdCookieAccountValidatePost'
]?.[localVarOperationServerIndex]?.url;
return (axios, basePath) =>
createRequestFunction(
localVarAxiosArgs,
globalAxios,
BASE_PATH,
configuration
)(axios, localVarOperationServerBasePath || basePath);
} }
}; };
}; };
@@ -786,6 +958,24 @@ export const JDCookieManagementApiFactory = function (
) )
.then(request => request(axios, basePath)); .then(request => request(axios, basePath));
}, },
/**
*
* @summary Batch Validate Cookies
* @param {JDCookieManagementApiApiJdCookieAccountBatchValidatePostRequest} requestParameters Request parameters.
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
apiJdCookieAccountBatchValidatePost(
requestParameters: JDCookieManagementApiApiJdCookieAccountBatchValidatePostRequest = {},
options?: RawAxiosRequestConfig
): AxiosPromise<KamiApiJdCookieV1BatchValidateRes> {
return localVarFp
.apiJdCookieAccountBatchValidatePost(
requestParameters.kamiApiJdCookieV1BatchValidateReq,
options
)
.then(request => request(axios, basePath));
},
/** /**
* *
* @summary Create Cookie Account * @summary Create Cookie Account
@@ -885,6 +1075,24 @@ export const JDCookieManagementApiFactory = function (
options options
) )
.then(request => request(axios, basePath)); .then(request => request(axios, basePath));
},
/**
*
* @summary Validate Cookie
* @param {JDCookieManagementApiApiJdCookieAccountValidatePostRequest} requestParameters Request parameters.
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
apiJdCookieAccountValidatePost(
requestParameters: JDCookieManagementApiApiJdCookieAccountValidatePostRequest = {},
options?: RawAxiosRequestConfig
): AxiosPromise<KamiApiJdCookieV1ValidateCookieRes> {
return localVarFp
.apiJdCookieAccountValidatePost(
requestParameters.kamiApiJdCookieV1ValidateCookieReq,
options
)
.then(request => request(axios, basePath));
} }
}; };
}; };
@@ -917,6 +1125,18 @@ export interface JDCookieManagementApiInterface {
options?: RawAxiosRequestConfig options?: RawAxiosRequestConfig
): AxiosPromise<KamiApiJdCookieV1BatchCreateRes>; ): AxiosPromise<KamiApiJdCookieV1BatchCreateRes>;
/**
*
* @summary Batch Validate Cookies
* @param {JDCookieManagementApiApiJdCookieAccountBatchValidatePostRequest} requestParameters Request parameters.
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
apiJdCookieAccountBatchValidatePost(
requestParameters?: JDCookieManagementApiApiJdCookieAccountBatchValidatePostRequest,
options?: RawAxiosRequestConfig
): AxiosPromise<KamiApiJdCookieV1BatchValidateRes>;
/** /**
* *
* @summary Create Cookie Account * @summary Create Cookie Account
@@ -986,6 +1206,18 @@ export interface JDCookieManagementApiInterface {
requestParameters?: JDCookieManagementApiApiJdCookieAccountUpdatePutRequest, requestParameters?: JDCookieManagementApiApiJdCookieAccountUpdatePutRequest,
options?: RawAxiosRequestConfig options?: RawAxiosRequestConfig
): AxiosPromise<object>; ): AxiosPromise<object>;
/**
*
* @summary Validate Cookie
* @param {JDCookieManagementApiApiJdCookieAccountValidatePostRequest} requestParameters Request parameters.
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
apiJdCookieAccountValidatePost(
requestParameters?: JDCookieManagementApiApiJdCookieAccountValidatePostRequest,
options?: RawAxiosRequestConfig
): AxiosPromise<KamiApiJdCookieV1ValidateCookieRes>;
} }
/** /**
@@ -1002,6 +1234,13 @@ export interface JDCookieManagementApiApiJdCookieAccountBatchCreatePostRequest {
readonly kamiApiJdCookieV1BatchCreateReq?: KamiApiJdCookieV1BatchCreateReq; readonly kamiApiJdCookieV1BatchCreateReq?: KamiApiJdCookieV1BatchCreateReq;
} }
/**
* Request parameters for apiJdCookieAccountBatchValidatePost operation in JDCookieManagementApi.
*/
export interface JDCookieManagementApiApiJdCookieAccountBatchValidatePostRequest {
readonly kamiApiJdCookieV1BatchValidateReq?: KamiApiJdCookieV1BatchValidateReq;
}
/** /**
* Request parameters for apiJdCookieAccountCreatePost operation in JDCookieManagementApi. * Request parameters for apiJdCookieAccountCreatePost operation in JDCookieManagementApi.
*/ */
@@ -1061,6 +1300,13 @@ export interface JDCookieManagementApiApiJdCookieAccountUpdatePutRequest {
readonly kamiApiJdCookieV1UpdateAccountReq?: KamiApiJdCookieV1UpdateAccountReq; readonly kamiApiJdCookieV1UpdateAccountReq?: KamiApiJdCookieV1UpdateAccountReq;
} }
/**
* Request parameters for apiJdCookieAccountValidatePost operation in JDCookieManagementApi.
*/
export interface JDCookieManagementApiApiJdCookieAccountValidatePostRequest {
readonly kamiApiJdCookieV1ValidateCookieReq?: KamiApiJdCookieV1ValidateCookieReq;
}
/** /**
* JDCookieManagementApi - object-oriented interface * JDCookieManagementApi - object-oriented interface
*/ */
@@ -1106,6 +1352,25 @@ export class JDCookieManagementApi
.then(request => request(this.axios, this.basePath)); .then(request => request(this.axios, this.basePath));
} }
/**
*
* @summary Batch Validate Cookies
* @param {JDCookieManagementApiApiJdCookieAccountBatchValidatePostRequest} requestParameters Request parameters.
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
public apiJdCookieAccountBatchValidatePost(
requestParameters: JDCookieManagementApiApiJdCookieAccountBatchValidatePostRequest = {},
options?: RawAxiosRequestConfig
) {
return JDCookieManagementApiFp(this.configuration)
.apiJdCookieAccountBatchValidatePost(
requestParameters.kamiApiJdCookieV1BatchValidateReq,
options
)
.then(request => request(this.axios, this.basePath));
}
/** /**
* *
* @summary Create Cookie Account * @summary Create Cookie Account
@@ -1211,6 +1476,25 @@ export class JDCookieManagementApi
) )
.then(request => request(this.axios, this.basePath)); .then(request => request(this.axios, this.basePath));
} }
/**
*
* @summary Validate Cookie
* @param {JDCookieManagementApiApiJdCookieAccountValidatePostRequest} requestParameters Request parameters.
* @param {*} [options] Override http request option.
* @throws {RequiredError}
*/
public apiJdCookieAccountValidatePost(
requestParameters: JDCookieManagementApiApiJdCookieAccountValidatePostRequest = {},
options?: RawAxiosRequestConfig
) {
return JDCookieManagementApiFp(this.configuration)
.apiJdCookieAccountValidatePost(
requestParameters.kamiApiJdCookieV1ValidateCookieReq,
options
)
.then(request => request(this.axios, this.basePath));
}
} }
export enum ApiJdCookieAccountListGetStatusEnum { export enum ApiJdCookieAccountListGetStatusEnum {

View File

@@ -6,12 +6,14 @@ All URIs are relative to _http://localhost_
| ----------------------------------------------------------------------------------- | ------------------------------------------------ | ---------------------------- | | ----------------------------------------------------------------------------------- | ------------------------------------------------ | ---------------------------- |
| [**apiJdCookieAccountBatchCheckPost**](#apijdcookieaccountbatchcheckpost) | **POST** /api/jd-cookie/account/batch-check | Batch Check Cookie Status | | [**apiJdCookieAccountBatchCheckPost**](#apijdcookieaccountbatchcheckpost) | **POST** /api/jd-cookie/account/batch-check | Batch Check Cookie Status |
| [**apiJdCookieAccountBatchCreatePost**](#apijdcookieaccountbatchcreatepost) | **POST** /api/jd-cookie/account/batch-create | Batch Create Cookie Accounts | | [**apiJdCookieAccountBatchCreatePost**](#apijdcookieaccountbatchcreatepost) | **POST** /api/jd-cookie/account/batch-create | Batch Create Cookie Accounts |
| [**apiJdCookieAccountBatchValidatePost**](#apijdcookieaccountbatchvalidatepost) | **POST** /api/jd-cookie/account/batch-validate | Batch Validate Cookies |
| [**apiJdCookieAccountCreatePost**](#apijdcookieaccountcreatepost) | **POST** /api/jd-cookie/account/create | Create Cookie Account | | [**apiJdCookieAccountCreatePost**](#apijdcookieaccountcreatepost) | **POST** /api/jd-cookie/account/create | Create Cookie Account |
| [**apiJdCookieAccountDeleteDelete**](#apijdcookieaccountdeletedelete) | **DELETE** /api/jd-cookie/account/delete | Delete Cookie Account | | [**apiJdCookieAccountDeleteDelete**](#apijdcookieaccountdeletedelete) | **DELETE** /api/jd-cookie/account/delete | Delete Cookie Account |
| [**apiJdCookieAccountDeleteInvalidDelete**](#apijdcookieaccountdeleteinvaliddelete) | **DELETE** /api/jd-cookie/account/delete-invalid | Delete All Invalid Cookies | | [**apiJdCookieAccountDeleteInvalidDelete**](#apijdcookieaccountdeleteinvaliddelete) | **DELETE** /api/jd-cookie/account/delete-invalid | Delete All Invalid Cookies |
| [**apiJdCookieAccountGetGet**](#apijdcookieaccountgetget) | **GET** /api/jd-cookie/account/get | Get Single Cookie Account | | [**apiJdCookieAccountGetGet**](#apijdcookieaccountgetget) | **GET** /api/jd-cookie/account/get | Get Single Cookie Account |
| [**apiJdCookieAccountListGet**](#apijdcookieaccountlistget) | **GET** /api/jd-cookie/account/list | Query Cookie Account List | | [**apiJdCookieAccountListGet**](#apijdcookieaccountlistget) | **GET** /api/jd-cookie/account/list | Query Cookie Account List |
| [**apiJdCookieAccountUpdatePut**](#apijdcookieaccountupdateput) | **PUT** /api/jd-cookie/account/update | Update Cookie Account | | [**apiJdCookieAccountUpdatePut**](#apijdcookieaccountupdateput) | **PUT** /api/jd-cookie/account/update | Update Cookie Account |
| [**apiJdCookieAccountValidatePost**](#apijdcookieaccountvalidatepost) | **POST** /api/jd-cookie/account/validate | Validate Cookie |
# **apiJdCookieAccountBatchCheckPost** # **apiJdCookieAccountBatchCheckPost**
@@ -113,6 +115,56 @@ No authorization required
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **apiJdCookieAccountBatchValidatePost**
> KamiApiJdCookieV1BatchValidateRes apiJdCookieAccountBatchValidatePost()
### Example
```typescript
import {
JDCookieManagementApi,
Configuration,
KamiApiJdCookieV1BatchValidateReq
} from './api';
const configuration = new Configuration();
const apiInstance = new JDCookieManagementApi(configuration);
let kamiApiJdCookieV1BatchValidateReq: KamiApiJdCookieV1BatchValidateReq; // (optional)
const { status, data } = await apiInstance.apiJdCookieAccountBatchValidatePost(
kamiApiJdCookieV1BatchValidateReq
);
```
### Parameters
| Name | Type | Description | Notes |
| ------------------------------------- | ------------------------------------- | ----------- | ----- |
| **kamiApiJdCookieV1BatchValidateReq** | **KamiApiJdCookieV1BatchValidateReq** | | |
### Return type
**KamiApiJdCookieV1BatchValidateRes**
### Authorization
No authorization required
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: application/json
### HTTP response details
| Status code | Description | Response headers |
| ----------- | ----------- | ---------------- |
| **200** | | - |
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **apiJdCookieAccountCreatePost** # **apiJdCookieAccountCreatePost**
> KamiApiJdCookieV1CreateAccountRes apiJdCookieAccountCreatePost() > KamiApiJdCookieV1CreateAccountRes apiJdCookieAccountCreatePost()
@@ -397,3 +449,53 @@ No authorization required
| **200** | | - | | **200** | | - |
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md) [[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)
# **apiJdCookieAccountValidatePost**
> KamiApiJdCookieV1ValidateCookieRes apiJdCookieAccountValidatePost()
### Example
```typescript
import {
JDCookieManagementApi,
Configuration,
KamiApiJdCookieV1ValidateCookieReq
} from './api';
const configuration = new Configuration();
const apiInstance = new JDCookieManagementApi(configuration);
let kamiApiJdCookieV1ValidateCookieReq: KamiApiJdCookieV1ValidateCookieReq; // (optional)
const { status, data } = await apiInstance.apiJdCookieAccountValidatePost(
kamiApiJdCookieV1ValidateCookieReq
);
```
### Parameters
| Name | Type | Description | Notes |
| -------------------------------------- | -------------------------------------- | ----------- | ----- |
| **kamiApiJdCookieV1ValidateCookieReq** | **KamiApiJdCookieV1ValidateCookieReq** | | |
### Return type
**KamiApiJdCookieV1ValidateCookieRes**
### Authorization
No authorization required
### HTTP request headers
- **Content-Type**: application/json
- **Accept**: application/json
### HTTP response details
| Status code | Description | Response headers |
| ----------- | ----------- | ---------------- |
| **200** | | - |
[[Back to top]](#) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to Model list]](../README.md#documentation-for-models) [[Back to README]](../README.md)

View File

@@ -0,0 +1,19 @@
# KamiApiJdCookieV1BatchValidateReq
## Properties
| Name | Type | Description | Notes |
| ----------- | ---------------------------------------------------------------------------------------------- | ----------- | ---------------------- |
| **cookies** | [**Array&lt;KamiApiJdCookieV1ValidateCookieItem&gt;**](KamiApiJdCookieV1ValidateCookieItem.md) | Cookie列表 | [default to undefined] |
## Example
```typescript
import { KamiApiJdCookieV1BatchValidateReq } from './api';
const instance: KamiApiJdCookieV1BatchValidateReq = {
cookies
};
```
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@@ -0,0 +1,25 @@
# KamiApiJdCookieV1BatchValidateRes
## Properties
| Name | Type | Description | Notes |
| ---------------- | ------------------------------------------------------------------------------------------------ | ------------ | --------------------------------- |
| **totalCount** | **number** | 总数量 | [optional] [default to undefined] |
| **validCount** | **number** | 有效数量 | [optional] [default to undefined] |
| **invalidCount** | **number** | 无效数量 | [optional] [default to undefined] |
| **results** | [**Array&lt;KamiApiJdCookieV1BatchValidateResult&gt;**](KamiApiJdCookieV1BatchValidateResult.md) | 验证结果详情 | [optional] [default to undefined] |
## Example
```typescript
import { KamiApiJdCookieV1BatchValidateRes } from './api';
const instance: KamiApiJdCookieV1BatchValidateRes = {
totalCount,
validCount,
invalidCount,
results
};
```
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@@ -0,0 +1,27 @@
# KamiApiJdCookieV1BatchValidateResult
## Properties
| Name | Type | Description | Notes |
| --------------- | ----------- | ------------------------------------ | --------------------------------- |
| **index** | **number** | 在请求中的索引(从0开始) | [optional] [default to undefined] |
| **accountName** | **string** | 账户名称 | [optional] [default to undefined] |
| **isValid** | **boolean** | Cookie是否有效 | [optional] [default to undefined] |
| **message** | **string** | 验证结果信息 | [optional] [default to undefined] |
| **cookieId** | **string** | Cookie唯一标识(仅当Cookie有效时返回) | [optional] [default to undefined] |
## Example
```typescript
import { KamiApiJdCookieV1BatchValidateResult } from './api';
const instance: KamiApiJdCookieV1BatchValidateResult = {
index,
accountName,
isValid,
message,
cookieId
};
```
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@@ -0,0 +1,23 @@
# KamiApiJdCookieV1ValidateCookieItem
## Properties
| Name | Type | Description | Notes |
| --------------- | ---------- | ---------------------------- | --------------------------------- |
| **index** | **number** | 在请求中的索引(从0开始) | [optional] [default to undefined] |
| **cookieValue** | **string** | Cookie内容 | [default to undefined] |
| **accountName** | **string** | 账户名称(可选,用于日志记录) | [optional] [default to undefined] |
## Example
```typescript
import { KamiApiJdCookieV1ValidateCookieItem } from './api';
const instance: KamiApiJdCookieV1ValidateCookieItem = {
index,
cookieValue,
accountName
};
```
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@@ -0,0 +1,19 @@
# KamiApiJdCookieV1ValidateCookieReq
## Properties
| Name | Type | Description | Notes |
| --------------- | ---------- | ----------- | ---------------------- |
| **cookieValue** | **string** | Cookie内容 | [default to undefined] |
## Example
```typescript
import { KamiApiJdCookieV1ValidateCookieReq } from './api';
const instance: KamiApiJdCookieV1ValidateCookieReq = {
cookieValue
};
```
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@@ -0,0 +1,23 @@
# KamiApiJdCookieV1ValidateCookieRes
## Properties
| Name | Type | Description | Notes |
| ------------ | ----------- | ------------------------------------ | --------------------------------- |
| **isValid** | **boolean** | Cookie是否有效 | [optional] [default to undefined] |
| **message** | **string** | 验证结果信息 | [optional] [default to undefined] |
| **cookieId** | **string** | Cookie唯一标识(仅当Cookie有效时返回) | [optional] [default to undefined] |
## Example
```typescript
import { KamiApiJdCookieV1ValidateCookieRes } from './api';
const instance: KamiApiJdCookieV1ValidateCookieRes = {
isValid,
message,
cookieId
};
```
[[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)

View File

@@ -212,6 +212,9 @@ export * from './kami-api-jd-cookie-v1-batch-check-res';
export * from './kami-api-jd-cookie-v1-batch-create-req'; export * from './kami-api-jd-cookie-v1-batch-create-req';
export * from './kami-api-jd-cookie-v1-batch-create-res'; export * from './kami-api-jd-cookie-v1-batch-create-res';
export * from './kami-api-jd-cookie-v1-batch-create-result'; export * from './kami-api-jd-cookie-v1-batch-create-result';
export * from './kami-api-jd-cookie-v1-batch-validate-req';
export * from './kami-api-jd-cookie-v1-batch-validate-res';
export * from './kami-api-jd-cookie-v1-batch-validate-result';
export * from './kami-api-jd-cookie-v1-check-jd-order-payment-req'; export * from './kami-api-jd-cookie-v1-check-jd-order-payment-req';
export * from './kami-api-jd-cookie-v1-check-jd-order-payment-res'; export * from './kami-api-jd-cookie-v1-check-jd-order-payment-res';
export * from './kami-api-jd-cookie-v1-cookie-account-info'; export * from './kami-api-jd-cookie-v1-cookie-account-info';
@@ -252,6 +255,9 @@ export * from './kami-api-jd-cookie-v1-order-history-req';
export * from './kami-api-jd-cookie-v1-order-history-res'; export * from './kami-api-jd-cookie-v1-order-history-res';
export * from './kami-api-jd-cookie-v1-order-info'; export * from './kami-api-jd-cookie-v1-order-info';
export * from './kami-api-jd-cookie-v1-update-account-req'; export * from './kami-api-jd-cookie-v1-update-account-req';
export * from './kami-api-jd-cookie-v1-validate-cookie-item';
export * from './kami-api-jd-cookie-v1-validate-cookie-req';
export * from './kami-api-jd-cookie-v1-validate-cookie-res';
export * from './kami-api-merchant-v1-merchant-all-list-res'; export * from './kami-api-merchant-v1-merchant-all-list-res';
export * from './kami-api-merchant-v1-merchant-config-add-req'; export * from './kami-api-merchant-v1-merchant-config-add-req';
export * from './kami-api-merchant-v1-merchant-config-detail-req'; export * from './kami-api-merchant-v1-merchant-config-detail-req';

View File

@@ -0,0 +1,24 @@
/* tslint:disable */
/**
*
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document:
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
// May contain unused imports in some cases
// @ts-ignore
import type { KamiApiJdCookieV1ValidateCookieItem } from './kami-api-jd-cookie-v1-validate-cookie-item';
export interface KamiApiJdCookieV1BatchValidateReq {
/**
* Cookie列表
*/
cookies: Array<KamiApiJdCookieV1ValidateCookieItem>;
}

View File

@@ -0,0 +1,36 @@
/* tslint:disable */
/**
*
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document:
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
// May contain unused imports in some cases
// @ts-ignore
import type { KamiApiJdCookieV1BatchValidateResult } from './kami-api-jd-cookie-v1-batch-validate-result';
export interface KamiApiJdCookieV1BatchValidateRes {
/**
* 总数量
*/
totalCount?: number;
/**
* 有效数量
*/
validCount?: number;
/**
* 无效数量
*/
invalidCount?: number;
/**
* 验证结果详情
*/
results?: Array<KamiApiJdCookieV1BatchValidateResult>;
}

View File

@@ -0,0 +1,36 @@
/* tslint:disable */
/**
*
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document:
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
export interface KamiApiJdCookieV1BatchValidateResult {
/**
* 在请求中的索引(从0开始)
*/
index?: number;
/**
* 账户名称
*/
accountName?: string;
/**
* Cookie是否有效
*/
isValid?: boolean;
/**
* 验证结果信息
*/
message?: string;
/**
* Cookie唯一标识(仅当Cookie有效时返回)
*/
cookieId?: string;
}

View File

@@ -0,0 +1,28 @@
/* tslint:disable */
/**
*
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document:
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
export interface KamiApiJdCookieV1ValidateCookieItem {
/**
* 在请求中的索引(从0开始)
*/
index?: number;
/**
* Cookie内容
*/
cookieValue: string;
/**
* 账户名称(可选,用于日志记录)
*/
accountName?: string;
}

View File

@@ -0,0 +1,20 @@
/* tslint:disable */
/**
*
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document:
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
export interface KamiApiJdCookieV1ValidateCookieReq {
/**
* Cookie内容
*/
cookieValue: string;
}

View File

@@ -0,0 +1,28 @@
/* tslint:disable */
/**
*
* No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
*
* The version of the OpenAPI document:
*
*
* NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
* https://openapi-generator.tech
* Do not edit the class manually.
*/
export interface KamiApiJdCookieV1ValidateCookieRes {
/**
* Cookie是否有效
*/
isValid?: boolean;
/**
* 验证结果信息
*/
message?: string;
/**
* Cookie唯一标识(仅当Cookie有效时返回)
*/
cookieId?: string;
}

View File

@@ -154,7 +154,7 @@
dataIndex: 'cookieValue', dataIndex: 'cookieValue',
ellipsis: true, ellipsis: true,
tooltip: true, tooltip: true,
width: 300 width: 280
}, },
{ {
title: '账号', title: '账号',
@@ -166,16 +166,39 @@
dataIndex: 'remark', dataIndex: 'remark',
ellipsis: true, ellipsis: true,
tooltip: true, tooltip: true,
width: 200 width: 160
},
{
title: '校验状态',
dataIndex: 'isValid',
width: 100,
slotName: 'validateStatus'
}, },
{ {
title: '状态', title: '状态',
dataIndex: 'valid', dataIndex: 'valid',
width: 80, width: 60,
slotName: 'status' slotName: 'status'
} }
]" ]"
> >
<template #validateStatus="{ record }">
<a-tag
v-if="record.isValid === true"
color="green"
size="small"
>
有效
</a-tag>
<a-tag
v-else-if="record.isValid === false"
color="red"
size="small"
>
无效
</a-tag>
<a-tag v-else color="gray" size="small">未校验</a-tag>
</template>
<template #status="{ record }"> <template #status="{ record }">
<a-tag v-if="record.valid" color="green">有效</a-tag> <a-tag v-if="record.valid" color="green">有效</a-tag>
<a-tag v-else color="red">无效</a-tag> <a-tag v-else color="red">无效</a-tag>
@@ -197,20 +220,51 @@
<!-- 底部操作区域 --> <!-- 底部操作区域 -->
<div v-if="!isFullscreen" class="footer-actions"> <div v-if="!isFullscreen" class="footer-actions">
<a-space> <div class="footer-content">
<a-button <div class="validate-section">
type="primary" <a-button
:loading="loading" type="outline"
:disabled="!hasValidData" :loading="validating"
@click="handleSubmit" :disabled="!hasValidData"
> @click="handleValidate"
<template #icon> >
<icon-import /> <template #icon>
</template> <icon-check-circle />
确认导入 ({{ parsedData.length }}) </template>
</a-button> 校验Cookie
<a-button @click="handleCancel">取消</a-button> </a-button>
</a-space> <div v-if="validationSummary" class="validation-summary">
<a-tag
:color="
validationSummary.allValid
? 'green'
: validationSummary.hasValid
? 'orange'
: 'red'
"
size="small"
>
{{ validationSummary.text }}
</a-tag>
</div>
</div>
<div class="action-buttons">
<a-space>
<a-button
type="primary"
:loading="loading"
:disabled="!hasValidData"
@click="handleSubmit"
>
<template #icon>
<icon-import />
</template>
确认导入 ({{ parsedData.length }})
</a-button>
<a-button @click="handleCancel">取消</a-button>
</a-space>
</div>
</div>
</div> </div>
</div> </div>
</a-modal> </a-modal>
@@ -228,7 +282,7 @@ import {
IconEdit, IconEdit,
IconUser, IconUser,
IconMessage, IconMessage,
IconFile IconCheckCircle
} from '@arco-design/web-vue/es/icon'; } from '@arco-design/web-vue/es/icon';
import { jdCookieClient } from '@/api'; import { jdCookieClient } from '@/api';
@@ -238,6 +292,9 @@ interface ParsedCookieItem {
remark: string; remark: string;
valid: boolean; valid: boolean;
lineNumber: number; lineNumber: number;
isValid?: boolean; // 校验结果:是否有效
validateMessage?: string; // 校验消息
cookieId?: string; // 校验成功后返回的Cookie ID
} }
interface Props { interface Props {
@@ -253,7 +310,13 @@ const props = defineProps<Props>();
const emit = defineEmits<Emits>(); const emit = defineEmits<Emits>();
const loading = ref(false); const loading = ref(false);
const validating = ref(false);
const isFullscreen = ref(false); const isFullscreen = ref(false);
const validationSummary = ref<{
allValid: boolean;
hasValid: boolean;
text: string;
} | null>(null);
// 表单数据 // 表单数据
const formModel = reactive({ const formModel = reactive({
@@ -325,6 +388,98 @@ const toggleFullscreen = (): void => {
isFullscreen.value = !isFullscreen.value; isFullscreen.value = !isFullscreen.value;
}; };
// 处理批量校验
const handleValidate = async (): Promise<void> => {
if (!formModel.cookieData.trim()) {
Message.warning('请输入Cookie数据');
return;
}
// 重新解析数据
parseCookieData();
if (parsedData.value.length === 0) {
Message.warning('没有可校验的数据');
return;
}
validating.value = true;
try {
// 准备批量校验请求
const validateCookies = parsedData.value.map(item => ({
index: item.lineNumber - 1, // 从0开始
cookieValue: item.cookieValue,
accountName: item.accountName
}));
const response = await jdCookieClient.apiJdCookieAccountBatchValidatePost({
kamiApiJdCookieV1BatchValidateReq: {
cookies: validateCookies
}
});
const results = response.data.results || [];
const validCount = response.data.validCount || 0;
const invalidCount = response.data.invalidCount || 0;
// 更新解析数据的校验结果
results.forEach(result => {
const item = parsedData.value.find(
p => p.lineNumber === (result.index || 0) + 1
);
if (item) {
item.isValid = result.isValid;
item.validateMessage = result.message;
item.cookieId = result.cookieId;
}
});
// 更新校验摘要
validationSummary.value = {
allValid: validCount === parsedData.value.length,
hasValid: validCount > 0,
text:
validCount === parsedData.value.length
? `全部有效 (${validCount})`
: validCount > 0
? `${validCount}个有效, ${invalidCount}个无效`
: `全部无效 (${invalidCount})`
};
// 显示校验结果统计
if (validCount === parsedData.value.length) {
Message.success(`校验完成,全部 ${validCount} 个Cookie都有效`);
} else if (validCount > 0) {
Message.warning(`校验完成,${validCount} 个有效,${invalidCount} 个无效`);
} else {
Message.error(`校验完成,全部 ${invalidCount} 个Cookie都无效`);
}
// 输出详细的校验结果到控制台
const validCookies = results.filter(r => r.isValid);
const invalidCookies = results.filter(r => !r.isValid);
if (validCookies.length > 0) {
console.log(
'有效的Cookie:',
validCookies.map(r => `${r.accountName}: ${r.message}`)
);
}
if (invalidCookies.length > 0) {
console.warn(
'无效的Cookie:',
invalidCookies.map(r => `${r.accountName}: ${r.message}`)
);
}
} catch (error) {
console.error('批量校验失败:', error);
Message.error('校验失败,请检查网络连接或联系管理员');
} finally {
validating.value = false;
}
};
const handleCancel = (): void => { const handleCancel = (): void => {
emit('update:visible', false); emit('update:visible', false);
formModel.cookieData = ''; formModel.cookieData = '';
@@ -332,6 +487,8 @@ const handleCancel = (): void => {
formModel.unifiedRemark = ''; formModel.unifiedRemark = '';
parsedData.value = []; parsedData.value = [];
isFullscreen.value = false; isFullscreen.value = false;
validating.value = false;
validationSummary.value = null;
}; };
const handleSubmit = async (): Promise<boolean> => { const handleSubmit = async (): Promise<boolean> => {
@@ -702,6 +859,28 @@ const handleSubmit = async (): Promise<boolean> => {
margin-top: 20px; margin-top: 20px;
} }
.footer-content {
display: flex;
justify-content: space-between;
align-items: center;
width: 100%;
}
.validate-section {
display: flex;
align-items: center;
gap: 12px;
}
.validation-summary {
display: flex;
align-items: center;
}
.action-buttons {
display: flex;
}
/* 全屏模式样式调整 */ /* 全屏模式样式调整 */
:deep(.arco-modal-fullscreen) .batch-import-container { :deep(.arco-modal-fullscreen) .batch-import-container {
height: calc(100vh - 100px); height: calc(100vh - 100px);

View File

@@ -4,7 +4,7 @@
:title="cookieId ? '编辑Cookie' : '添加Cookie'" :title="cookieId ? '编辑Cookie' : '添加Cookie'"
width="600px" width="600px"
:loading="loading" :loading="loading"
@before-ok="handleSubmit" :footer="false"
@cancel="handleCancel" @cancel="handleCancel"
> >
<a-form ref="formRef" :model="formModel" :rules="rules" layout="vertical"> <a-form ref="formRef" :model="formModel" :rules="rules" layout="vertical">
@@ -26,12 +26,63 @@
/> />
</a-form-item> </a-form-item>
</a-form> </a-form>
<!-- 校验结果区域 -->
<div v-if="validateResult" class="validate-result">
<a-alert
:type="validateResult.isValid ? 'success' : 'error'"
:message="validateResult.isValid ? 'Cookie有效' : 'Cookie无效'"
:description="validateResult.message"
show-icon
:closable="false"
>
<template #icon>
<icon-check-circle v-if="validateResult.isValid" />
<icon-close-circle v-else />
</template>
</a-alert>
</div>
<!-- 底部操作区域 -->
<div class="modal-footer">
<div class="validate-section">
<a-button
type="outline"
:loading="validating"
:disabled="!formModel.cookieValue.trim()"
@click="handleValidate"
>
<template #icon>
<icon-check-circle />
</template>
校验Cookie
</a-button>
</div>
<div class="action-section">
<a-space>
<a-button @click="handleCancel">取消</a-button>
<a-button
type="primary"
:loading="loading"
@click="
() =>
formRef.value
?.validate()
.then(res => !res && handleSubmit(() => {}))
"
>
{{ cookieId ? '修改' : '添加' }}
</a-button>
</a-space>
</div>
</div>
</a-modal> </a-modal>
</template> </template>
<script lang="ts" setup> <script lang="ts" setup>
import { ref, reactive, watch } from 'vue'; import { ref, reactive, watch } from 'vue';
import { Message, type FormInstance } from '@arco-design/web-vue'; import { Message, type FormInstance } from '@arco-design/web-vue';
import { IconCheckCircle, IconCloseCircle } from '@arco-design/web-vue/es/icon';
import { jdCookieClient } from '@/api'; import { jdCookieClient } from '@/api';
import type { import type {
KamiApiJdCookieV1CookieAccountInfo, KamiApiJdCookieV1CookieAccountInfo,
@@ -55,6 +106,12 @@ const emit = defineEmits<Emits>();
const formRef = ref<FormInstance>(); const formRef = ref<FormInstance>();
const loading = ref(false); const loading = ref(false);
const validating = ref(false);
const validateResult = ref<{
isValid: boolean;
message: string;
cookieId?: string;
} | null>(null);
// 表单数据 // 表单数据
const formModel = reactive({ const formModel = reactive({
@@ -111,9 +168,53 @@ watch(
remark: '' remark: ''
}); });
} }
// 重置校验结果
validateResult.value = null;
} }
); );
// 监听Cookie内容变化清除校验结果
watch(
() => formModel.cookieValue,
() => {
validateResult.value = null;
}
);
// 处理单个Cookie校验
const handleValidate = async (): Promise<void> => {
if (!formModel.cookieValue.trim()) {
Message.warning('请输入Cookie内容');
return;
}
validating.value = true;
try {
const response = await jdCookieClient.apiJdCookieAccountValidatePost({
kamiApiJdCookieV1ValidateCookieReq: {
cookieValue: formModel.cookieValue.trim()
}
});
validateResult.value = {
isValid: response.data.isValid || false,
message: response.data.message || '',
cookieId: response.data.cookieId
};
if (response.data.isValid) {
Message.success('Cookie校验成功状态有效');
} else {
Message.error('Cookie校验失败状态无效');
}
} catch (error) {
console.error('校验失败:', error);
Message.error('校验失败,请检查网络连接或联系管理员');
} finally {
validating.value = false;
}
};
// 提交表单 // 提交表单
const handleSubmit = (done: (closed: boolean) => void) => { const handleSubmit = (done: (closed: boolean) => void) => {
formRef.value?.validate().then(async (res: any) => { formRef.value?.validate().then(async (res: any) => {
@@ -162,5 +263,32 @@ const handleSubmit = (done: (closed: boolean) => void) => {
// 取消 // 取消
const handleCancel = (): void => { const handleCancel = (): void => {
emit('update:visible', false); emit('update:visible', false);
validateResult.value = null;
validating.value = false;
}; };
</script> </script>
<style scoped>
.validate-result {
margin: 16px 0;
}
.modal-footer {
display: flex;
justify-content: space-between;
align-items: center;
padding: 16px 0 0;
border-top: 1px solid var(--color-border-2);
margin-top: 20px;
}
.validate-section {
display: flex;
align-items: center;
}
.action-section {
display: flex;
align-items: center;
}
</style>