Pārlūkot izejas kodu

🎨 优化日期组件为中文

快乐的梦鱼 3 nedēļas atpakaļ
vecāks
revīzija
ee687fbbe6

+ 1 - 0
.npmrc

@@ -0,0 +1 @@
+registry=https://registry.npmjs.com/

Failā izmaiņas netiks attēlotas, jo tās ir par lielu
+ 9716 - 4734
package-lock.json


+ 4 - 5
package.json

@@ -15,11 +15,11 @@
     "updater": "node src/scripts/UpdateScript/index.mjs"
   },
   "dependencies": {
-    "@imengyu/imengyu-utils": "^0.0.17",
-    "@imengyu/js-request-transform": "^0.3.7",
+    "@imengyu/imengyu-utils": "^0.0.28",
+    "@imengyu/js-request-transform": "^0.4.0",
     "@imengyu/vue-dynamic-form": "^0.1.9",
-    "@imengyu/vue-dynamic-form-ant": "^0.0.8",
-    "@imengyu/vue-dynamic-form-rich": "^0.0.2",
+    "@imengyu/vue-dynamic-form-ant": "^0.1.0",
+    "@imengyu/vue-dynamic-form-rich": "^0.0.4",
     "@imengyu/vue-scroll-rect": "^0.1.3",
     "@tinymce/tinymce-vue": "^6.3.0",
     "@vuemap/vue-amap": "^2.1.12",
@@ -28,7 +28,6 @@
     "async-validator": "^4.2.5",
     "axios": "^1.11.0",
     "bootstrap": "^5.3.0",
-    "dayjs": "^1.11.18",
     "lodash-es": "^4.17.21",
     "md5": "^2.3.0",
     "mitt": "^3.0.1",

+ 3 - 3
src/App.vue

@@ -25,11 +25,11 @@
 import { onMounted, watch } from 'vue';
 import { RouterView, useRoute } from 'vue-router'
 import { useAuthStore } from './stores/auth';
-import NavBar from './components/NavBar.vue';
-import zhCN from 'ant-design-vue/es/locale/zh_CN';
 import { useRedirectLoginPage } from './common/LoginPageRedirect';
+import { useAppConfiguration } from './api/system/useAppConfiguration';
+import NavBar from './components/NavBar.vue';
+import zhCN from "ant-design-vue/es/locale/zh_CN";
 import FooterSmall from './components/FooterSmall.vue';
-import { useAppConfiguration } from './api/system/useAppConfiguration.ts';
 
 const authStore = useAuthStore();
 const { checkAndRedirectLoginPage } = useRedirectLoginPage();

+ 18 - 12
src/api/CommonContent.ts

@@ -323,12 +323,12 @@ export class CommonContentApi extends AppServerRequestModule<DataModel> {
   ) {
     if (type === 1)
       withself = true;
-    return (this.get('/content/category/getCategoryList', '获取分类列表', {
+    return (this.get<any>('/content/category/getCategoryList', '获取分类列表', {
       type,
       is_tree: false,
       withself,
     }))
-      .then(res => transformArrayDataModel<CategoryListItem>(CategoryListItem, res.data2, `获取分类列表`, true))
+      .then(res => transformArrayDataModel<CategoryListItem>(CategoryListItem, res.requireData(), `获取分类列表`, true))
       .catch(e => { throw e });
   }
   /**
@@ -337,12 +337,12 @@ export class CommonContentApi extends AppServerRequestModule<DataModel> {
    * @returns 
    */
   async getCategoryChildList(pid?: number) {
-    return (this.get('/content/category/getCategoryOnlyChildList', '获取分类子级列表', {
+    return (this.get<any>('/content/category/getCategoryOnlyChildList', '获取分类子级列表', {
       pid,
     }))
       .then(res => transformArrayDataModel<CategoryListItem>(
         CategoryListItem, 
-        transformSomeToArray(res.data2), 
+        transformSomeToArray(res.data), 
         `获取分类列表`, 
         true
       ))
@@ -362,14 +362,17 @@ export class CommonContentApi extends AppServerRequestModule<DataModel> {
    * @returns 
    */
   getColumList<T extends DataModel = GetColumContentList>(params: GetColumListParams, modelClassCreator: NewDataModel = GetColumContentList, querys?: QueryParams) {
-    return this.get('/content/content/getMainBodyColumnContentList', `${this.debugName} 主体栏目列表`, {
+    return this.get<{
+      list: any[],
+      total: number,
+    }>('/content/content/getMainBodyColumnContentList', `${this.debugName} 主体栏目列表`, {
       model_id: this.modelId,
       ...params.toServerSide(),
       ...querys,
     })
       .then(res => ({
-        list: transformArrayDataModel<T>(modelClassCreator, res.data2.list, `${this.debugName} 主体栏目列表`, true),
-        total: res.data2.total as number,
+        list: transformArrayDataModel<T>(modelClassCreator, res.requireData().list, `${this.debugName} 主体栏目列表`, true),
+        total: res.requireData().total,
       }))
       .catch(e => { throw e });
   }
@@ -382,7 +385,10 @@ export class CommonContentApi extends AppServerRequestModule<DataModel> {
    * @returns 
    */
   getContentList<T extends DataModel = GetContentListItem>(params: GetContentListParams, page: number, pageSize: number = 10, modelClassCreator: NewDataModel = GetContentListItem, querys?: QueryParams) {
-    return this.get('/content/content/getContentList', `${this.debugName} 模型内容列表`, {
+    return this.get<{
+      list: any[],
+      total: number,
+    }>('/content/content/getContentList', `${this.debugName} 模型内容列表`, {
       ...params.toServerSide(),
       ...querys,
       model_id: params.modelId || this.modelId,
@@ -391,8 +397,8 @@ export class CommonContentApi extends AppServerRequestModule<DataModel> {
       pageSize,
     })
       .then(res => ({ 
-        list: transformArrayDataModel<T>(modelClassCreator, res.data2.list, `${this.debugName} 模型内容列表`, true),
-        total: res.data2.total as number,
+        list: transformArrayDataModel<T>(modelClassCreator, res.requireData().list, `${this.debugName} 模型内容列表`, true),
+        total: res.requireData().total,
       }))
       .catch(e => { throw e });
   }
@@ -445,8 +451,8 @@ export class CommonContentApi extends AppServerRequestModule<DataModel> {
         };
 
         // 应用请求拦截器
-        if (this.config.requestInceptor) {
-          const { newReq, newUrl } = this.config.requestInceptor(url, requestOptions as any);
+        if (this.config.requestInterceptor) {
+          const { newReq, newUrl } = await this.config.requestInterceptor(url, requestOptions as any);
           url = newUrl;
           requestOptions = newReq as RequestInit;
         }

+ 30 - 28
src/api/RequestModules.ts

@@ -16,7 +16,9 @@ import {
   RequestResponse,
   WebFetchImplementer,
   appendGetUrlParams, appendPostParams,
-  RandomUtils
+  RandomUtils,
+  type RequestApiInfoStruct,
+  formatError
 } from "@imengyu/imengyu-utils";
 import type { DataModel, KeyValue, NewDataModel } from "@imengyu/js-request-transform";
 import { useAuthStore } from "@/stores/auth";
@@ -39,14 +41,14 @@ function matchNotReportMessage(str: string) {
 }
 
 //请求拦截器
-function requestInceptor(url: string, req: RequestOptions) {
+function requestInterceptor(url: string, req: RequestOptions) {
   //获取store中的token,追加到头;
   const autoStore = useAuthStore();
-  if (!req.header)
-    req.header = {};
-  if (StringUtils.isNullOrEmpty((req.header as KeyValue).token as string)) {
-    req.header['token'] = autoStore.token;
-    req.header['__token__'] = autoStore.token;
+  if (!req.headers)
+    req.headers = {};
+  if (StringUtils.isNullOrEmpty(req.headers.token as string)) {
+    req.headers['token'] = autoStore.token;
+    req.headers['__token__'] = autoStore.token;
   }
   if (req.method == 'GET') {
     //追加GET参数
@@ -59,7 +61,9 @@ function requestInceptor(url: string, req: RequestOptions) {
   return { newUrl: url, newReq: req };
 }
 //响应数据处理函数
-function responseDataHandler<T extends DataModel>(response: RequestResponse, req: RequestOptions, resultModelClass: NewDataModel|undefined, instance: RequestCoreInstance<T>, apiName: string | undefined): Promise<RequestApiResult<T>> {
+function responseDataHandler<T extends DataModel>(
+  response: RequestResponse, req: RequestOptions, resultModelClass: NewDataModel | undefined, instance: RequestCoreInstance<T>, apiInfo: RequestApiInfoStruct
+): Promise<RequestApiResult<T>> {
   return new Promise<RequestApiResult<T>>((resolve, reject) => {
     const method = req.method || 'GET';
     response.json().then((json) => {
@@ -72,9 +76,8 @@ function responseDataHandler<T extends DataModel>(response: RequestResponse, req
             response.status,
             null,
             null,
-            req,
-            apiName,
-            response.url
+            apiInfo.apiRawReq?.headers,
+            apiInfo,
           ));
           return;
         }
@@ -153,19 +156,18 @@ function responseDataHandler<T extends DataModel>(response: RequestResponse, req
           response.status,
           null,
           null,
-          req,
-          apiName,
-          response.url
+          apiInfo.apiRawReq?.headers,
+          apiInfo,
         ));
       }
     }).catch((err) => {
       //错误统一处理
-      defaultResponseDataHandlerCatch(method, req, response, null, err, apiName, response.url, reject, instance);
+      defaultResponseDataHandlerCatch(method, req, response, null, err, apiInfo, response.url, reject, instance);
     });
   });
 }
 //错误报告处理
-function responseErrReoprtInceptor<T extends DataModel>(instance: RequestCoreInstance<T>, response: RequestApiError) {
+function responseErrorReportInterceptor<T extends DataModel>(instance: RequestCoreInstance<T>, response: RequestApiError) {
   return (
     (response.errorType !== 'businessError' && response.errorType !== 'networkError') ||
     notReportErrorCode.indexOf(response.code) >= 0 ||
@@ -181,7 +183,7 @@ export function reportError<T extends DataModel>(instance: RequestCoreInstance<T
       console.log(response.apiName);
       console.log(response.errorMessage);
       console.log(response.apiUrl);
-      console.log(response.rawRequest);
+      console.log(response.apiRawReq);
       console.log(response.rawData);
       console.log(response.code);
       console.log(response.errorCodeMessage);
@@ -200,7 +202,7 @@ export function reportError<T extends DataModel>(instance: RequestCoreInstance<T
     });
   }
 }
-function responseErrorHandler<T extends DataModel>(err: Error, instance: RequestCoreInstance<T>, apiName: string | undefined) : RequestApiError {
+function responseErrorHandler<T extends DataModel>(err: unknown, instance: RequestCoreInstance<T>, apiInfo: RequestApiInfoStruct) : RequestApiError {
   if (err instanceof TypeError) {
     let errorMessage = '';
     if (err.message.indexOf('Failed to fetch') >= 0)
@@ -215,9 +217,9 @@ function responseErrorHandler<T extends DataModel>(err: Error, instance: Request
       errorMessage = '无效URL';
     else 
       errorMessage = err.message;
-    return new RequestApiError('networkError', errorMessage, '', 0, null, null, null, apiName, '');
+    return new RequestApiError('networkError', errorMessage, '', 0, null, null, undefined, apiInfo);
   }
-  return new RequestApiError('networkError', err.message, '', 0, null, null, null, apiName, '');
+  return new RequestApiError('networkError', formatError(err), '', 0, null, null, undefined, apiInfo);
 }
 
 /**
@@ -228,10 +230,10 @@ export class AppServerRequestModule<T extends DataModel> extends RequestCoreInst
     super(WebFetchImplementer);
     this.config.baseUrl = ApiCofig.serverProd;
     this.config.errCodes = []; //
-    this.config.requestInceptor = requestInceptor;
+    this.config.requestInterceptor = requestInterceptor;
     this.config.responseDataHandler = responseDataHandler;
     this.config.responseErrorHandler = responseErrorHandler;
-    this.config.responseErrReoprtInceptor = responseErrReoprtInceptor;
+    this.config.responseErrorReportInterceptor = responseErrorReportInterceptor;
     this.config.reportError = reportError;
   }
 }
@@ -242,17 +244,17 @@ export class MengyuServerRequestModule<T extends DataModel> extends RequestCoreI
   constructor() {
     super(WebFetchImplementer);
     this.config.baseUrl = 'https://update-server1.imengyu.top';
-    this.config.requestInceptor = (url, req) => {
-      if (!req.header)
-        req.header = {};
-      req.header['Authorization'] = JSON.stringify({
+    this.config.requestInterceptor = (url, req) => {
+      if (!req.headers)
+        req.headers = {};
+      req.headers['Authorization'] = JSON.stringify({
         "apiKey":"MQQDGbn8QfFJ7kStNtkxwifHP4sBTSDd",
         "apiSecret":"3BNAdR7NXGwfiRmQZkRcRM8PsyHPeBmaay2k2F4TXhGEziXSJ3ceEtH2ApfHsMhR"
       });
       url = appendGetUrlParams(url, 'identifier', this.getDeviceUid());
       return { newUrl: url, newReq: req };
     };
-    this.config.responseDataHandler = async function responseDataHandler<T extends DataModel>(response: RequestResponse, req: RequestOptions, resultModelClass: NewDataModel | undefined, instance: RequestCoreInstance<T>): Promise<RequestApiResult<T>> {
+    this.config.responseDataHandler = async function responseDataHandler<T extends DataModel>(response: RequestResponse, req: RequestOptions, resultModelClass: NewDataModel | undefined, instance: RequestCoreInstance<T>, apiInfo: RequestApiInfoStruct): Promise<RequestApiResult<T>> {
       const method = req.method || 'GET';
       try {
         const json = await response.json();
@@ -297,7 +299,7 @@ export class MengyuServerRequestModule<T extends DataModel> extends RequestCoreI
         }
         //错误统一处理
         return new Promise<RequestApiResult<T>>((resolve, reject) => {
-          defaultResponseDataHandlerCatch(method, req, response, null, err as any, '', response.url, reject, instance);
+          defaultResponseDataHandlerCatch(method, req, response, null, err as any, apiInfo, response.url, reject, instance);
         });
       }
     };

+ 2 - 1
src/api/agent/Agent.ts

@@ -11,8 +11,9 @@ export class AgentApi extends MengyuServerRequestModule<DataModel> {
   chat(options: OpenAI.Chat.Completions.ChatCompletionCreateParamsNonStreaming) {
     return this.post<OpenAI.Chat.Completions.ChatCompletion>(
       '/content/agent/chat',
-      { options },
       'AI对话(非流式)',
+      { options },
+      
     );
   }
 }

+ 5 - 5
src/api/auth/UserApi.ts

@@ -88,26 +88,26 @@ export class UserApi extends AppServerRequestModule<DataModel> {
     mobile: string,
     password: string,
   }) {
-    return (await this.post('/ich/inheritor/login', data, '登录', undefined, LoginResult)).data as LoginResult;
+    return (await this.post('/ich/inheritor/login', '登录', data, undefined, LoginResult)).data as LoginResult;
   }
   async loginAdmin(data: {
     account: string,
     password: string,
   }) {
-    return (await this.post('/user/adminLogin', {
+    return (await this.post('/user/adminLogin', '登录', {
       account: data?.account,
       password: data?.password,
-    }, '登录', undefined, LoginResult)).data as LoginResult;
+    }, undefined, LoginResult)).data as LoginResult;
   }
   async updatePassword(data: {
     newpassword: string,
     oldpassword: string,
   }) {
-    return (await this.post('/content/main_body_user/changepwd', data, '更新密码'))
+    return (await this.post('/content/main_body_user/changepwd', '更新密码', data))
   }
 
   async refresh() {
-    return (await this.post('/ich/inheritor/refresh', {}, '刷新token', undefined, LoginResult)).data as LoginResult;
+    return (await this.post('/ich/inheritor/refresh', '刷新token', {}, undefined, LoginResult)).data as LoginResult;
   }
 
   

+ 37 - 32
src/api/collect/AssessmentContent.ts

@@ -315,6 +315,7 @@ export class InheritorCheckBasicInfo extends DataModel<InheritorCheckBasicInfo>
   education = '' as string|null;
   ichName = '' as string;
   unit = '' as string;
+  /** 国家级(23), 省级(24), 市级(25) */
   level = 0 as number;
   idCard = '' as string;
   address = '' as string;
@@ -389,8 +390,12 @@ export class SelfAssessmentDetail extends DataModel<SelfAssessmentDetail> {
 
       },
       awardTime: {
-        clientSide: 'dayjs',
-        clientSideDateFormat: 'YYYY-MM-DD',
+        customToClientFn: (value) => {
+          if (value) {
+            return dayjs(value as string);
+          }
+          return value;
+        },
         serverSide: 'string',
         serverSideDateFormat: 'YYYY-MM-DD',
       },
@@ -667,7 +672,7 @@ export class AssessmentContentApi extends AppServerRequestModule<DataModel> {
   }
 
   async getCheckItems(level: number) {
-    const res = await this.post('/ich/check/getCheckItems', { level }, '自查计分项目');
+    const res = await this.post('/ich/check/getCheckItems', '自查计分项目', { level });
     const list = transformSomeToArray(res.data) as KeyValue[];
     const items = transformArrayDataModel<CheckItemInfo>(CheckItemInfo, list, 'data') as CheckItemInfo[];
     const map = new Map<number, CheckItemInfo>();
@@ -691,7 +696,7 @@ export class AssessmentContentApi extends AppServerRequestModule<DataModel> {
     page?: number;
     pageSize?: number;
   }) {
-    const res = await this.post('/ich/check/getList', {
+    const res = await this.post<KeyValue>('/ich/check/getList', '评估表列表', {
       user_id: data.userId,
       progress: data.progress,
       level: data.level,
@@ -699,8 +704,8 @@ export class AssessmentContentApi extends AppServerRequestModule<DataModel> {
       keywords: data.keywords,
       page: data.page,
       pageSize: data.pageSize,
-    }, '评估表列表');
-    return normalizePaginated<SelfAssessmentListRow>(SelfAssessmentListRow, res.data as KeyValue);
+    });
+    return normalizePaginated<SelfAssessmentListRow>(SelfAssessmentListRow, res.requireData());
   }
 
   async getAgreementList(data: {
@@ -711,15 +716,15 @@ export class AssessmentContentApi extends AppServerRequestModule<DataModel> {
     page?: number;
     pageSize?: number;
   }) {
-    const res = await this.post('/ich/check/getAgreementList', {
+    const res = await this.post<KeyValue>('/ich/check/getAgreementList', '传承协议列表', {
       user_id: data.userId,
       level: data.level,
       year: data.year,
       keywords: data.keywords,
       page: data.page,
       pageSize: data.pageSize,
-    }, '传承协议列表');
-    return normalizePaginated<AgreementListRow>(AgreementListRow, res.data as KeyValue);
+    });
+    return normalizePaginated<AgreementListRow>(AgreementListRow, res.requireData());
   }
 
   /**
@@ -735,7 +740,7 @@ export class AssessmentContentApi extends AppServerRequestModule<DataModel> {
     page?: number;
     pageSize?: number;
   }) {
-    const res = await this.post('/ich/check/getUserAgreement', {
+    const res = await this.post<KeyValue>('/ich/check/getUserAgreement', '传承人传承协议列表', {
       user_id: data.userId,
       progress: data.progress,
       level: data.level,
@@ -743,8 +748,8 @@ export class AssessmentContentApi extends AppServerRequestModule<DataModel> {
       keywords: data.keywords,
       page: data.page,
       pageSize: data.pageSize,
-    }, '传承人传承协议列表');
-    return normalizePaginated<UserAgreementListRow>(UserAgreementListRow, res.data as KeyValue);
+    });
+    return normalizePaginated<UserAgreementListRow>(UserAgreementListRow, res.requireData());
   }
 
   /**
@@ -760,7 +765,7 @@ export class AssessmentContentApi extends AppServerRequestModule<DataModel> {
     page?: number;
     pageSize?: number;
   }) {
-    const res = await this.post('/ich/check/getInheritorList', {
+    const res = await this.post<KeyValue>('/ich/check/getInheritorList', '传承人列表', {
       user_id: data.userId,
       progress: data.progress,
       level: data.level,
@@ -768,19 +773,19 @@ export class AssessmentContentApi extends AppServerRequestModule<DataModel> {
       keywords: data.keywords,
       page: data.page,
       pageSize: data.pageSize,
-    }, '传承人列表');
-    return normalizePaginated<InheritorCheckListRow>(InheritorCheckListRow, res.data as KeyValue);
+    });
+    return normalizePaginated<InheritorCheckListRow>(InheritorCheckListRow, res.requireData());
   }
 
   async saveAgreement(dataModel: AgreementDetail) {
-    return this.post('/ich/check/saveAgreement', dataModel.toServerSide(), '传承协议保存');
+    return this.post('/ich/check/saveAgreement', '传承协议保存', dataModel.toServerSide());
   }
 
   async saveSelfAssessment(dataModel: SelfAssessmentDetail, progress?: number) {
     const data = dataModel.toServerSide();
     if (progress !== undefined)
       data.progress = progress;
-    return this.post('/ich/check/save', data, '自查评估表保存');
+    return this.post('/ich/check/save', '自查评估表保存', data);
   }
 
   /**
@@ -788,7 +793,7 @@ export class AssessmentContentApi extends AppServerRequestModule<DataModel> {
    * POST `/ich/check/review`
    */
   async reviewSelfAssessment(payload: IchCheckReviewPayload) {
-    return this.post('/ich/check/review', {
+    return this.post('/ich/check/review', '自查评估表审核', {
       id: payload.id,
       ich_unit: payload.ichUnit,
       unit_points: payload.unitPoints,
@@ -801,7 +806,7 @@ export class AssessmentContentApi extends AppServerRequestModule<DataModel> {
       progress: payload.progress,
       reject_type: payload.rejectType || 0,
       reject_reason: payload.rejectReason,
-    }, '自查评估表审核');
+    });
   }
 
   async downloadSelfAssessmentPdf(id: number) {
@@ -813,7 +818,7 @@ export class AssessmentContentApi extends AppServerRequestModule<DataModel> {
   }
 
   async saveAnnex(payload: SaveCheckAnnexPayload) {
-    return this.post('/ich/check/saveAnnex', {
+    return this.post('/ich/check/saveAnnex', '证明材料保存', {
       id: payload.id,
       name: payload.name,
       form_id: payload.formId,
@@ -824,36 +829,36 @@ export class AssessmentContentApi extends AppServerRequestModule<DataModel> {
       mimetype: payload.mimetype,
       attach_id: payload.attachId,
       filesize: payload.fileSize,
-    }, '证明材料保存');
+    });
   }
 
   async getAnnexList(formId: number, itemId?: number) {
-    const res = await this.post('/ich/check/getAnnexList', {
+    const res = await this.post<KeyValue>('/ich/check/getAnnexList', '证明材料列表', {
       form_id: formId,
       item_id: itemId,
-    }, '证明材料列表');
-    return normalizePaginated<CheckAnnexListItem>(CheckAnnexListItem, res.data as KeyValue);
+    });
+    return normalizePaginated<CheckAnnexListItem>(CheckAnnexListItem, res.requireData());
   }
 
   async delAnnex(id: number) {
-    return this.post('/ich/check/delAnnex', { id }, '删除证明材料');
+    return this.post('/ich/check/delAnnex', '删除证明材料', { id });
   }
 
   async getInheritorBasic(userId?: number) {
-    const res = await this.post('/ich/check/basic', {
+    const res = await this.post<KeyValue>('/ich/check/basic', '传承人自查基础信息', {
       user_id: userId,
-    }, '传承人自查基础信息');
-    return transformDataModel<InheritorCheckBasicInfo>(InheritorCheckBasicInfo, res.data as KeyValue);
+    });
+    return transformDataModel<InheritorCheckBasicInfo>(InheritorCheckBasicInfo, res.requireData());
   }
 
   async getSelfAssessmentDetail(id: number, userId?: number) {
-    const res = await this.post('/ich/check/detail', { id, user_id: userId }, '评估表详情');
-    return transformDataModel<SelfAssessmentDetail>(SelfAssessmentDetail, res.data as KeyValue);
+    const res = await this.post<KeyValue>('/ich/check/detail', '评估表详情', { id, user_id: userId });
+    return transformDataModel<SelfAssessmentDetail>(SelfAssessmentDetail, res.requireData());
   }
 
   async getAgreementDetail(id: number, userId?: number) {
-    const res = await this.post('/ich/check/agreementDetail', { id, user_id: userId }, '传承协议详情');
-    return transformDataModel<AgreementDetail>(AgreementDetail, res.data as KeyValue);
+    const res = await this.post<KeyValue>('/ich/check/agreementDetail', '传承协议详情', { id, user_id: userId });
+    return transformDataModel<AgreementDetail>(AgreementDetail, res.requireData());
   }
 }
 

+ 38 - 35
src/api/inheritor/InheritorContent.ts

@@ -528,11 +528,11 @@ export class InheritorContentApi extends AppServerRequestModule<DataModel> {
   }
 
   async getBaseInfo<T extends DataModel>(id: number|undefined, newDataModel: new () => T, contentId?: number) {
-    return (await this.post('/ich/inheritor/baseInfo', {
+    return (await this.post('/ich/inheritor/baseInfo', '基础表信息', {
       model_id: new newDataModel().modelId,
       id,
       content_id: contentId,
-    }, '基础表信息', undefined, newDataModel)).data as T;
+    }, undefined, newDataModel)).data as T;
   }
   /**
    * 项目五年计划
@@ -543,44 +543,44 @@ export class InheritorContentApi extends AppServerRequestModule<DataModel> {
   async getPlanList(ichId: number, progress?: number) {
     return transformArrayDataModel<PlanInfo>(
       PlanInfo,
-      (await this.post('/ich/inheritor/plans', {
+      (await this.post<any>('/ich/inheritor/plans', '获取计划列表', {
         ich_id: ichId,
         progress,
-      }, '获取计划列表')).data2.data,
+      })).requireData().data,
       "data2"
     );
   }
   async saveBaseInfo<T extends DataModel>(dataModel: T) {
-    return (await this.post('/ich/inheritor/saveBase', dataModel.toServerSide(), '基础内容表采集(非遗,传承人,传习所)'));
+    return (await this.post('/ich/inheritor/saveBase', '基础内容表采集(非遗,传承人,传习所)', dataModel.toServerSide()));
   }
   async getExpandInfo<T extends DataModel>(id: number|undefined, newDataModel: new () => T) : Promise<T | null> {
-    return this.post('/ich/inheritor/expandInfo', {
+    return this.post('/ich/inheritor/expandInfo', '扩展表信息', {
       model_id: new newDataModel().modelId,
       id,
-    }, '扩展表信息', undefined).then((res) => {
-      if (!res.data2) 
+    }, undefined).then((res) => {
+      if (!res.data) 
         return null;
-      return transformDataModel(newDataModel, res.data2) as T;
+      return transformDataModel(newDataModel, res.data) as T;
     })
   }
   async saveExpandInfo<T extends DataModel>(dataModel: T) {
-    return (await this.post('/ich/inheritor/saveExpand', dataModel.toServerSide(), '扩展内容表采集(非遗,传承人,传习所)'));
+    return (await this.post('/ich/inheritor/saveExpand', '扩展内容表采集(非遗,传承人,传习所)', dataModel.toServerSide()));
   }
   async saveWorkInfo(dataModel: InheritorWorkInfo) {
-    return (await this.post('/ich/inheritor/saveWork', {
+    return (await this.post('/ich/inheritor/saveWork', '保存传承人作品信息', {
       ...dataModel.toServerSide(),
-    }, '保存传承人作品信息'));
+    }));
   }
   async savePlanInfo(dataModel: PlanInfo) {
-    return (await this.post('/ich/inheritor/savePlans', dataModel.toServerSide(), '保存项目五年计划'));
+    return (await this.post('/ich/inheritor/savePlans', '保存项目五年计划', dataModel.toServerSide()));
   }
 
   async getCollectListInfo<T extends DataModel>(dataModel: new () => T, id: number) {
-    return this.post('/ich/inheritor/collectInfo', {
+    return this.post<any>('/ich/inheritor/collectInfo', '获取采集记录详情', {
       model_id: new dataModel().modelId,
       id,
-    }, '获取采集记录详情', undefined).then((res) => {
-      return transformDataModel(dataModel, res.data2);
+    }, undefined).then((res) => {
+      return transformDataModel(dataModel, res.requireData());
     })
   }
   /**
@@ -614,7 +614,10 @@ export class InheritorContentApi extends AppServerRequestModule<DataModel> {
     page?: number,
     pageSize?: number,
   }) {
-    return this.post('/ich/inheritor/collectList', {
+    return this.post<{
+      data: any[],
+      total: number,
+    }>('/ich/inheritor/collectList', '获取采集列表', {
       collect_type: data.collectType,
       model_id: new dataModel().modelId,
       user_id: data.userId,
@@ -623,29 +626,29 @@ export class InheritorContentApi extends AppServerRequestModule<DataModel> {
       content_id: data.contentId,
       page: data.page,
       pageSize: data.pageSize,
-    }, '获取采集列表', undefined).then((res) => {
+    }, undefined).then((res) => {
       return {
-        data: transformArrayDataModel<T>(dataModel, transformSomeToArray(res.data2.data), 'data2'),
-        total: res.data2.total,
+        data: transformArrayDataModel<T>(dataModel, transformSomeToArray(res.requireData().data), 'data2'),
+        total: res.requireData().total,
       }
     })
   }
 
   async getInheritorAccountInfo(contentId: number) {
-    return this.post('/ich/inheritor/getAccount', {
+    return this.post<any>('/ich/inheritor/getAccount', '获取传承人账号信息', {
       content_id: contentId,
-    }, '获取传承人账号信息', undefined).then((res) => {
-      const arr = transformSomeToArray(res.data2);
+    }, undefined).then((res) => {
+      const arr = transformSomeToArray(res.requireData());
       if (arr.length === 0)
         return null;
       return transformDataModel(InheritorAccountInfo, arr[0]);
     })
   }
   async getInheritorSubmtList(modelId: number) {
-    return this.post('/ich/inheritor/list', {
+    return this.post<any>('/ich/inheritor/list', '获取传承人采集数据列表', {
       model_id: modelId
-    }, '获取传承人采集数据列表', undefined).then((res) => {
-      return transformArrayDataModel<InheritorSubmitInfo>(InheritorSubmitInfo, transformSomeToArray(res.data2), 'data2');
+    }, undefined).then((res) => {
+      return transformArrayDataModel<InheritorSubmitInfo>(InheritorSubmitInfo, transformSomeToArray(res.requireData()), 'data2');
     })
   }  
 
@@ -655,13 +658,13 @@ export class InheritorContentApi extends AppServerRequestModule<DataModel> {
     pageSize?: number,
     keywords?: string,
   }) {
-    return this.post('/ich/inheritor/sites', {
+    return this.post<any>('/ich/inheritor/sites', '获取传习所列表', {
       ich_id: data.ichId,
       page: data.page,
       pageSize: data.pageSize,
       keywords: data.keywords,
-    }, '获取传习所列表', undefined).then((res) => {
-      return transformArrayDataModel<SeminarInfo>(SeminarInfo, transformSomeToArray(res.data2), 'data2');
+    }, undefined).then((res) => {
+      return transformArrayDataModel<SeminarInfo>(SeminarInfo, transformSomeToArray(res.requireData()), 'data2');
     })
   }
   async getIchWorksInfo(data: {
@@ -669,20 +672,20 @@ export class InheritorContentApi extends AppServerRequestModule<DataModel> {
     page?: number,
     pageSize?: number,
   }) {
-    return this.post('/ich/inheritor/works', {
+    return this.post<any>('/ich/inheritor/works', '获取项目作品列表', {
       ich_id: data.ichId,
       page: data.page,
       pageSize: data.pageSize,
-    }, '获取项目作品列表', undefined).then((res) => {
-      return transformArrayDataModel<InheritorWorkInfo>(InheritorWorkInfo, res.data2.data, 'data2');
+    }, undefined).then((res) => {
+      return transformArrayDataModel<InheritorWorkInfo>(InheritorWorkInfo, res.requireData().data, 'data2');
     })
   }
   async getIchWorksDetail(id: number) {
-    return this.post('/ich/inheritor/info', {
+    return this.post<any>('/ich/inheritor/info', '获取项目作品详情', {
       id,
       model_id: 16,
-    }, '获取项目作品详情', undefined).then((res) => {
-      return transformDataModel<InheritorWorkInfo>(InheritorWorkInfo, res.data2);
+    }, undefined).then((res) => {
+      return transformDataModel<InheritorWorkInfo>(InheritorWorkInfo, res.requireData());
     })
   }
 

+ 1 - 0
src/composeables/SimplePagerDataLoader.ts

@@ -77,6 +77,7 @@ export function useSimplePagerDataLoader<T, P = any>(
       error.value = '';
       loading.value = false;
     } catch(e) {
+      console.error(e);
       error.value = '' + e;
       status.value = 'error';
       loading.value = false;

+ 1 - 0
src/composeables/useSimpleDataLoader.ts

@@ -18,6 +18,7 @@ export function useSimpleDataLoader<T>(
       status.value = 'finished'
       loading.value = false
     }).catch((err) => {
+      console.error(err);
       error.value = err
       status.value = 'error'
       loading.value = false

+ 5 - 0
src/main.ts

@@ -19,6 +19,11 @@ import { registryConvert } from '@/common/ConvertRgeistry'
 import { initAMapApiLoader } from '@vuemap/vue-amap';
 import { QuillEditor } from '@vueup/vue-quill'
 import { configDynamicForm } from './components/dynamicf';
+import dayjs from 'dayjs';
+import 'dayjs/locale/zh-cn';
+
+// 必须调用这一句,否则月份/星期仍是英文
+dayjs.locale('zh-cn');
 
 initAMapApiLoader({
   key: '212b86dc49a5116a34e945d31da7ad14',