Parcourir la source

🎨 修改细节问题

快乐的梦鱼 il y a 2 semaines
Parent
commit
d549eec073

+ 10 - 19
package-lock.json

@@ -24,8 +24,8 @@
         "@dcloudio/uni-mp-weixin": "3.0.0-4070620250821001",
         "@dcloudio/uni-mp-xhs": "3.0.0-4070620250821001",
         "@dcloudio/uni-quickapp-webview": "3.0.0-4070620250821001",
-        "@imengyu/imengyu-utils": "^0.0.25",
-        "@imengyu/js-request-transform": "^0.3.7",
+        "@imengyu/imengyu-utils": "^0.0.27",
+        "@imengyu/js-request-transform": "^0.4.0",
         "async-validator": "^4.2.5",
         "crypto-js": "^4.2.0",
         "pinia": "^3.0.1",
@@ -6031,22 +6031,19 @@
       }
     },
     "node_modules/@imengyu/imengyu-utils": {
-      "version": "0.0.25",
-      "resolved": "https://registry.npmmirror.com/@imengyu/imengyu-utils/-/imengyu-utils-0.0.25.tgz",
-      "integrity": "sha512-xs+8dLnG4o4ssPgtoRUfUq8n64yoyj0rAGQlDsxWy+4BBdEpRowPtznlcaEHWnM5p6PukVfWTr0JVkzKhTa2Vg==",
+      "version": "0.0.27",
+      "resolved": "https://registry.npmmirror.com/@imengyu/imengyu-utils/-/imengyu-utils-0.0.27.tgz",
+      "integrity": "sha512-gDfOtmHyQ1ExgEe9vaEpTNsvMK/NZEnDDRas6evejPAIH7Qhu6+435Or/9jwsjbIB/vEVPHYUBl8mMqqqyLAKQ==",
       "license": "MIT",
       "dependencies": {
-        "@imengyu/js-request-transform": "^0.3.6"
+        "@imengyu/js-request-transform": "^0.4.0"
       }
     },
     "node_modules/@imengyu/js-request-transform": {
-      "version": "0.3.7",
-      "resolved": "https://registry.npmmirror.com/@imengyu/js-request-transform/-/js-request-transform-0.3.7.tgz",
-      "integrity": "sha512-DeFvljuiOwzJ5gibHaQAFWShetSjgiZUdu98lOpAi4VN2JFOtChmUCUdfzAmjrfy2/MHKLYObbbtghHCco40JQ==",
-      "license": "MIT",
-      "dependencies": {
-        "dayjs": "^1.11.7"
-      }
+      "version": "0.4.0",
+      "resolved": "https://registry.npmmirror.com/@imengyu/js-request-transform/-/js-request-transform-0.4.0.tgz",
+      "integrity": "sha512-gVS9y1EdS1r9Eg8/srCSUKFw2qJZ4kYLiOVIMPUan4TT2CXbFsqZIUcMA43mvIkSXQXgapmhV1WxABb/6ejYxg==",
+      "license": "MIT"
     },
     "node_modules/@intlify/core-base": {
       "version": "9.1.9",
@@ -9438,12 +9435,6 @@
         "node": ">=10"
       }
     },
-    "node_modules/dayjs": {
-      "version": "1.11.13",
-      "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz",
-      "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==",
-      "license": "MIT"
-    },
     "node_modules/de-indent": {
       "version": "1.0.2",
       "resolved": "https://registry.npmmirror.com/de-indent/-/de-indent-1.0.2.tgz",

+ 2 - 2
package.json

@@ -51,8 +51,8 @@
     "@dcloudio/uni-mp-weixin": "3.0.0-4070620250821001",
     "@dcloudio/uni-mp-xhs": "3.0.0-4070620250821001",
     "@dcloudio/uni-quickapp-webview": "3.0.0-4070620250821001",
-    "@imengyu/imengyu-utils": "^0.0.25",
-    "@imengyu/js-request-transform": "^0.3.7",
+    "@imengyu/imengyu-utils": "^0.0.27",
+    "@imengyu/js-request-transform": "^0.4.0",
     "async-validator": "^4.2.5",
     "crypto-js": "^4.2.0",
     "pinia": "^3.0.1",

+ 2 - 3
src/api/BaseAppServerRequestModule.ts

@@ -79,7 +79,7 @@ export class BaseAppServerRequestModule<T extends DataModel> extends RequestCore
     this.config.baseUrl = baseUrl;
     this.config.errCodes = [];
     //请求拦截器
-    this.config.requestInceptor = (url, req) => {
+    this.config.requestInterceptor = (url, req) => {
       //获取app中的token,追加到头;
       const app = getApp();
       if (StringUtils.isNullOrEmpty((req.headers as KeyValue).token as string)) {
@@ -142,7 +142,6 @@ export class BaseAppServerRequestModule<T extends DataModel> extends RequestCore
             data = json;
             message = json.msg || response.statusText;
           }
-
           return new RequestApiResult(
             resultModelClass ?? instance.config.modelClassCreator,
             json?.code || response.status,
@@ -213,7 +212,7 @@ export class BaseAppServerRequestModule<T extends DataModel> extends RequestCore
       }
     };
     //错误报告处理
-    this.config.responseErrReoprtInceptor = (instance, response) => {
+    this.config.responseErrorReportInterceptor = (instance, response) => {
       return (
         (response.errorType !== 'businessError' && response.errorType !== 'networkError') ||
         matchNotReportMessage(response.code, response.errorMessage) === true

+ 31 - 24
src/api/CommonContent.ts

@@ -2,7 +2,7 @@ import { DataModel, transformArrayDataModel, type NewDataModel } from '@imengyu/
 import ApiCofig from '@/common/config/ApiCofig';
 import { AppServerRequestModule } from './RequestModules';
 import { transformSomeToArray } from './Utils';
-import { RequestApiConfig, RequestOptions, type QueryParams } from '@imengyu/imengyu-utils';
+import { assertNotNull, RequestApiConfig, RequestOptions, type QueryParams } from '@imengyu/imengyu-utils';
 
 export class GetColumListParams extends DataModel<GetColumListParams> {
   
@@ -325,12 +325,12 @@ export class CommonContentApi extends AppServerRequestModule<DataModel> {
     type?: number,
     withself?: boolean,
   ) {
-    const res = await this.get('/content/category/getCategoryList', '获取分类列表', {
+    const res = await this.get<any[]>('/content/category/getCategoryList', '获取分类列表', {
       type,
       is_tree: false,
       withself,
     });
-    return transformArrayDataModel<CategoryListItem>(CategoryListItem, res.data2, `获取分类列表`, true);
+    return transformArrayDataModel<CategoryListItem>(CategoryListItem, res.requireData(), `获取分类列表`, true);
   }
   /**
    * 用于获取某一个分类需要用的子级
@@ -343,7 +343,7 @@ export class CommonContentApi extends AppServerRequestModule<DataModel> {
     });
     return transformArrayDataModel<CategoryListItem>(
       CategoryListItem, 
-      transformSomeToArray(res.data2), 
+      transformSomeToArray(res.data), 
       `获取分类列表`, 
       true
     );
@@ -355,15 +355,19 @@ export class CommonContentApi extends AppServerRequestModule<DataModel> {
    * @returns 
    */
   async getColumList<T extends DataModel = GetColumContentList>(params: GetColumListParams, modelClassCreator: NewDataModel = GetColumContentList, querys?: QueryParams) {
-    const res = await this.get('/content/content/getMainBodyColumnContentList', `${this.debugName} 主体栏目列表`, {
+    const res = await this.get<{
+      list: T[],
+      total: number,
+    }>('/content/content/getMainBodyColumnContentList', `${this.debugName} 主体栏目列表`, {
       main_body_id: this.mainBodyId,
       model_id: this.modelId,
       ...params.toServerSide(),
       ...querys,
     });
+    assertNotNull(res.data, '获取主体栏目列表失败');
     return {
-      list: transformArrayDataModel<T>(modelClassCreator, res.data2.list, `${this.debugName} 主体栏目列表`, true),
-      total: res.data2.total as number,
+      list: transformArrayDataModel<T>(modelClassCreator, res.data.list, `${this.debugName} 主体栏目列表`, true),
+      total: res.data.total as number,
     };
   }
   /**
@@ -375,7 +379,10 @@ export class CommonContentApi extends AppServerRequestModule<DataModel> {
    * @returns 
    */
   async getContentList<T extends DataModel = GetContentListItem>(params: GetContentListParams, page: number, pageSize: number = 10, modelClassCreator: NewDataModel = GetContentListItem, querys?: QueryParams) {
-    const res = await this.get('/content/content/getContentList', `${this.debugName} 模型内容列表`, {
+    const res = await this.get<{
+      list: any[],
+      total: number,
+    }>('/content/content/getContentList', `${this.debugName} 模型内容列表`, {
       ...params.toServerSide(),
       model_id: params.modelId || this.modelId,
       main_body_id: params.mainBodyId || this.mainBodyId,
@@ -387,12 +394,12 @@ export class CommonContentApi extends AppServerRequestModule<DataModel> {
     let resList : any = null;
     let resTotal : any = null;
 
-    if (res.data2?.list && Array.isArray(res.data2.list)) {
-      resList = res.data2.list;
-      resTotal = res.data2.total ?? resList.length;
+    if (res.data?.list && Array.isArray(res.data.list)) {
+      resList = res.data.list;
+      resTotal = res.data.total ?? resList.length;
     }
-    else if (res.data2 && Array.isArray(res.data2)) {
-      resList = res.data2;
+    else if (res.data && Array.isArray(res.data)) {
+      resList = res.data;
       resTotal = resList.length;
     } else
       resList = res.data;
@@ -423,21 +430,21 @@ export class CommonContentApi extends AppServerRequestModule<DataModel> {
    * 上传文件到服务器
    */
   async uploadFile(file: string, fileType?: "image" | "video" | "audio" | undefined, name = 'file', data?: any, receiveTask?: (result: UniApp.UploadTask) => void) {
+    let url = RequestApiConfig.getConfig().BaseUrl + '/common/upload';
+    let req : RequestOptions = {
+      method: 'POST',
+      data: data,
+      headers: {},
+    }
+    if (this.config.requestInterceptor) {
+      const { newReq, newUrl } = await this.config.requestInterceptor(url, req);
+      url = newUrl;
+      data = newReq;
+    }
     return new Promise<{
       fullurl: string,
       url: string
     }>((resolve, reject) => {
-      let url = RequestApiConfig.getConfig().BaseUrl + '/common/upload';
-      let req : RequestOptions = {
-        method: 'POST',
-        data: data,
-        headers: {},
-      }
-      if (this.config.requestInceptor) {
-        const { newReq, newUrl } = this.config.requestInceptor(url, req);
-        url = newUrl;
-        data = newReq;
-      }
       const task = uni.uploadFile({
         url: url,
         name,

+ 1 - 1
src/api/RequestModules.ts

@@ -26,7 +26,7 @@ export class AppServerRequestModule<T extends DataModel> extends BaseAppServerRe
 export class MapServerRequestModule<T extends DataModel> extends BaseAppServerRequestModule<T> {
   constructor() {
     super('https://restapi.amap.com');
-    this.config.requestInceptor = (url, req) => {
+    this.config.requestInterceptor = (url, req) => {
       url = appendGetUrlParams(url, 'key', ApiCofig.amapServerKey);
       return { newUrl: url, newReq: req };
     };

+ 21 - 20
src/api/inhert/VillageApi.ts

@@ -1,4 +1,4 @@
-import { CONVERTER_ADD_DEFAULT, DataModel, transformArrayDataModel } from '@imengyu/js-request-transform';
+import { CONVERTER_ADD_DEFAULT, DataModel, transformArrayDataModel, type KeyValue } from '@imengyu/js-request-transform';
 import { AppServerRequestModule } from '../RequestModules';
 import { findAProp, transformSomeToArray } from '../Utils';
 import { LoginResult } from '../auth/UserApi';
@@ -203,13 +203,13 @@ export class VillageApi extends AppServerRequestModule<DataModel> {
     const res = await this.get('/village/village/getVillageList', '获取已认领村落', {
       village_volunteer_id: volunteerId,
     });
-    return transformArrayDataModel<VillageListItem>(VillageListItem, transformSomeToArray(res.data2), `村落`, true);
+    return transformArrayDataModel<VillageListItem>(VillageListItem, transformSomeToArray(res.data), `村落`, true);
   }
   async getCanClaimVallageList() {
     const res = await this.get('/village/village/getClaimList', '可认领村落列表', {
       main_body_id: 2,
     });
-    return transformArrayDataModel<VillageListItem>(VillageListItem, transformSomeToArray(res.data2), `村落`, true);
+    return transformArrayDataModel<VillageListItem>(VillageListItem, transformSomeToArray(res.data), `村落`, true);
   }
   async claimVallage(data: any) {
     return this.post('/village/village/addVillageClaim', '认领村落', data);
@@ -219,17 +219,17 @@ export class VillageApi extends AppServerRequestModule<DataModel> {
       history_level: level,
       status,
     });
-    return transformArrayDataModel<VillageListItem>(VillageListItem, transformSomeToArray(res.data2), `村落`, true);
+    return transformArrayDataModel<VillageListItem>(VillageListItem, transformSomeToArray(res.data), `村落`, true);
   }
   async getVolunteerInfo() {
     const res = await this.post('/village/volunteer/getInfo', '获取志愿者信息', {}, undefined, VolunteerInfo);
     return res.data as VolunteerInfo;
   }
   async getVolunteerRanklist(category?: number) {
-    const res = await this.post('/village/volunteer/getRanklist', '志愿者排行榜', {
+    const res = await this.post<any[]>('/village/volunteer/getRanklist', '志愿者排行榜', {
       category,
     });
-    return transformArrayDataModel<VolunteerRanklistItem>(VolunteerRanklistItem, res.data2, ``, true);
+    return transformArrayDataModel<VolunteerRanklistItem>(VolunteerRanklistItem, res.data ?? [], ``, true);
   }
   
   async addVolunteer(data: VolunteerInfo) {
@@ -280,7 +280,7 @@ export class VillageApi extends AppServerRequestModule<DataModel> {
       village_id: villageId,
       status,
     });
-    return transformArrayDataModel<VolunteerInfo>(VolunteerInfo, res.data2 || [], ``, true);
+    return transformArrayDataModel<VolunteerInfo>(VolunteerInfo, res.data || [], ``, true);
   }
   async reviewVillageVolunteer(villageId: number, volunteerId: number, status: number) {
     return this.post('/village/village/claimReview', '审核志愿者', {
@@ -291,48 +291,49 @@ export class VillageApi extends AppServerRequestModule<DataModel> {
   }
 
   async getCollectModuleList() {
-    const res = await this.get('/village/volunteer/getCollectModuleList', '获取采集版块列表', {});
+    const res = await this.get<KeyValue>('/village/volunteer/getCollectModuleList', '获取采集版块列表', {});
     const result = [] as {
       value: string,
       label: string,
     }[];
-    for (const key in res.data2) {
+    const data = res.data ?? {};
+    for (const key in data) {
       result.push({
         value: key,
-        label: res.data2[key],
+        label: data[key] as string,
       });
     }
     return result;
   }
 
   async getCollectModuleMap() {
-    const res = await this.post('/village/volunteer/getCollectModuleList', '采集板块列表', {});
+    const res = await this.post<any[]>('/village/volunteer/getCollectModuleList', '采集板块列表', {});
     const map = new Map<string, number>();
-    if (!res.data2 || typeof res.data2 !== 'object') 
+    if (!res.data || typeof res.data !== 'object') 
       return map;
-    for (const key in res.data2) {
-      if (typeof res.data2[key] !== 'string')
-        throw new Error(`采集板块列表键值对值不是字符串: ${key} -> ${res.data2[key]}`);
+    for (const key in res.data || []) {
+      if (typeof res.data[key] !== 'string')
+        throw new Error(`采集板块列表键值对值不是字符串: ${key} -> ${res.data[key]}`);
       if (isNaN(Number(key)))
         throw new Error(`采集板块列表键值对键不是数字: ${key}`);
-      map.set(res.data2[key], Number(key));
+      map.set(res.data[key], Number(key));
     }
     return map;
   }
 
   async getCatalogList(villageId?: number, volunteerId?: number, pid?: number) {
-    const res = await this.get('/village/village/getCatalogList', '村落目录列表', {
+    const res = await this.get<any[]>('/village/village/getCatalogList', '村落目录列表', {
       village_id: villageId,
       village_volunteer_id: volunteerId,
       pid: pid === 0 ? undefined : pid,
     });
-    return transformArrayDataModel<VillageCatalogListItem>(VillageCatalogListItem, res.data2, `村落目录列表`, true);
+    return transformArrayDataModel<VillageCatalogListItem>(VillageCatalogListItem, res.data ?? [], `村落目录列表`, true);
   }
   async getVillageMenuList(id: number) {
-    const res = await this.get('/village/menu/getList', '村落菜单列表', {
+    const res = await this.get<any[]>('/village/menu/getList', '村落菜单列表', {
       village_id: id,
     });
-    return transformArrayDataModel<VillageMenuListItem>(VillageMenuListItem, res.data2, `村落菜单`, true);
+    return transformArrayDataModel<VillageMenuListItem>(VillageMenuListItem, res.data ?? [], `村落菜单`, true);
   }
 
 }

+ 19 - 8
src/api/inhert/VillageInfoApi.ts

@@ -1,4 +1,4 @@
-import { DataModel, transformArrayDataModel, transformDataModel } from '@imengyu/js-request-transform';
+import { DataModel, transformArrayDataModel, transformDataModel, type KeyValue } from '@imengyu/js-request-transform';
 import { AppServerRequestModule } from '../RequestModules';
 import CommonContent from '../CommonContent';
 
@@ -209,11 +209,11 @@ export class VillageInfoApi extends AppServerRequestModule<DataModel> {
     villageId: number,
     villageVolunteerId: number,
   ) {
-    return (this.post(`/village/overview/getInfo`, '获取村社概览', {
+    return (this.post<KeyValue>(`/village/overview/getInfo`, '获取村社概览', {
       village_id: villageId,
       village_volunteer_id: villageVolunteerId,
     }))
-      .then(res => transformDataModel(CommonInfoModel, res.data2))
+      .then(res => transformDataModel(CommonInfoModel, res.requireData()))
       .catch(e => { throw e });
   }
 
@@ -246,7 +246,10 @@ export class VillageInfoApi extends AppServerRequestModule<DataModel> {
     status?: number|undefined,
     modelClassCreator: (new () => T) = CommonInfoModel as any ,
   ) {
-    return (this.post(`/village/collect/list`, '获取信息详情', {
+    return (this.post<{
+      total: number,
+      data: any[],
+    }>(`/village/collect/list`, '获取信息详情', {
       collect_module_id: collectModuleId,
       [subKey ? subKey : 'type']: subId,
       village_id: villageId,
@@ -256,20 +259,23 @@ export class VillageInfoApi extends AppServerRequestModule<DataModel> {
       pageSize: pageSize,
       status,
     }))
-      .then(res => transformArrayDataModel<T>(modelClassCreator, (res.data2.data || res.data2) ?? [], `获取分类列表`, true))
+      .then(res => transformArrayDataModel<T>(modelClassCreator, res.data?.data ?? [], `获取分类列表`, true))
       .catch(e => { throw e });
   }
 
   async getListForDiscover(page: number, pageSize: number, keywords?: string) {
-    return (this.post(`/village/collect/list`, '获取信息详情', {
+    return (this.post<{
+      total: number,
+      data: any[],
+    }>(`/village/collect/list`, '获取信息详情', {
       page,
       page_size: pageSize,
       keywords,
       status: 4,
     }))
       .then(res => ({
-        total: res.data2.total as number,
-        list: transformArrayDataModel<CommonInfoModel>(CommonInfoModel, (res.data2.data || res.data2) ?? [], `获取分类列表`, true)
+        total: res.data?.total as number ?? 0,
+        list: transformArrayDataModel<CommonInfoModel>(CommonInfoModel, res.data?.data ?? [], `获取分类列表`, true)
       }))
       .catch(e => { throw e });
   }
@@ -280,6 +286,11 @@ export class VillageInfoApi extends AppServerRequestModule<DataModel> {
     }, undefined, CommonInfoModel)).data as CommonInfoModel
   }
 
+  async deleteInfo(id: number) {
+    return (await this.post(`/village/collect/del`, '删除信息详情', {
+      id,
+    }, undefined, CommonInfoModel)).data as CommonInfoModel
+  }
   async updateInfo<T extends DataModel>(
     collectModuleId: number|undefined,
     subType: string,

+ 1 - 1
src/api/map/MapApi.ts

@@ -36,7 +36,7 @@ export class MapApi extends MapServerRequestModule<DataModel> {
     return this.get(`/v3/place/text?keywords=${encodeURIComponent(name)}&citylimit=true&offset=${size}&page=${page}`, `搜索POI ${name} 第${page}页`, {
       ...querys,
     })
-      .then(res => transformArrayDataModel(Poi, res.data2 ?? [], ''))
+      .then(res => transformArrayDataModel(Poi, res.data ?? [], ''))
       .catch(e => { throw e });
   }
   regeo(lat: number, lng: number, querys?: QueryParams) {

+ 12 - 0
src/common/components/rich/InjectMPRender.vue

@@ -0,0 +1,12 @@
+<template>
+  <text v-if="type === 'test'"> 测试嵌入 </text>
+  <Alert v-else type="error" :message="'不支持的渲染类型:' + type" />
+</template>
+
+<script setup lang="ts">
+import Alert from '@/components/feedback/Alert.vue';
+
+const props = withDefaults(defineProps<{
+  type: string;
+}>(), {});
+</script>

+ 11 - 4
src/common/composeabe/LoadQuerys.ts

@@ -11,17 +11,23 @@ export function useLoadQuerys<T extends Record<string, any>>(
   afterLoad?: (querys: T) => void
 ) {
   const querys = ref<T>(defaults) as Ref<T>; 
+  const rawQuerys = ref({}) as Ref<Record<string, any>>; 
 
   onLoad((_querys) => {
+    rawQuerys.value = _querys || {};
     if (_querys) {
-      for (const key in querys.value) {
+      for (const key in defaults) {
+        const isDefined = _querys[key] !== undefined && _querys[key] !== 'undefined';
         if (typeof defaults[key] === 'number')
-          (querys.value as Record<string, any>)[key] = Number(_querys[key]); 
+          (querys.value as Record<string, any>)[key] = isDefined ? Number(_querys[key]) : defaults[key]; 
         else if (typeof defaults[key] === 'boolean')
-          (querys.value as Record<string, any>)[key] = _querys[key] === 'true'; 
+          (querys.value as Record<string, any>)[key] = isDefined ? Boolean(_querys[key]) && _querys[key] != 'false' : defaults[key]; 
+        else if (typeof defaults[key] === 'object')
+          (querys.value as Record<string, any>)[key] = isDefined ? JSON.parse(decodeURIComponent(_querys[key])) : defaults[key]; 
         else
-          querys.value[key] = _querys[key];
+          querys.value[key] = isDefined ? decodeURIComponent(decodeURIComponent(_querys[key])) as any : defaults[key];
       }
+      console.log('querys', querys.value);
     }
     nextTick(() => {
       afterLoad?.(querys.value);
@@ -30,6 +36,7 @@ export function useLoadQuerys<T extends Record<string, any>>(
 
   return {
     querys,
+    rawQuerys,
   }
 }
 

+ 1 - 2
src/pages/dig/details.vue

@@ -2,9 +2,8 @@
   <FlexCol :padding="30" :gap="20">
     <Image
       src="https://mn.wenlvti.net/app_static/xiangan/banner_dig_1.jpg" 
-      :radius="20"
-      round
       mode="widthFix"
+      :radius="20"
       :width="690" 
     />
     <FlexRow align="center" :gap="10" backgroundColor="white" :padding="20" :radius="20">

+ 34 - 4
src/pages/dig/forms/common.vue

@@ -1,8 +1,8 @@
 <template>
-  <view>
+  <FlexCol :padding="30">
     <CommonRoot>
       <LoadingPage v-if="loading" /> 
-      <FlexCol :padding="30">
+      <FlexCol>
         <Alert
           v-if="localSavedState"
           type="info"
@@ -17,11 +17,14 @@
         />
         <Height :height="20" />
         <Button v-if="querys.isView" type="primary" :loading="loading" @click="backPrev(false)">返回</Button>
-        <Button v-else type="primary" :loading="loading" @click="submit">提交</Button>
+        <FlexCol v-else :gap="10">
+          <Button type="primary" :loading="loading" @click="debounceSubmit.executeWithDelay()">提交</Button>
+          <Button type="danger" :loading="loading" @click="deleteInfo">删除</Button>
+        </FlexCol>
       </FlexCol>
       <XBarSpace />
     </CommonRoot>
-  </view>
+  </FlexCol>
 </template>
 
 <script setup lang="ts">
@@ -158,6 +161,8 @@ const { querys } = useLoadQuerys({
     canSaveNow = true;
 });
 
+const debounceSubmit = new Debounce(1000, submit);
+
 async function submit() {
   if (!formRef.value)
     return;
@@ -203,6 +208,7 @@ async function submit() {
   } catch (e) {
     showError(e);
   } finally {
+    await waitTimeOut(2000);
     loading.value = false;
   }
 }
@@ -212,6 +218,30 @@ function backPrev(needRefresh: boolean) {
   });
 }
 
+async function deleteInfo() {
+  const res = await confirm({
+    content: '确认要删除该信息吗?删除后将无法恢复请谨慎操作!',
+    cancelText: '取消',
+    confirmText: '删除',
+    confirmColor: 'danger',
+    confirmCountDown: 10,
+    icon: 'delete-filling',
+    iconColor: 'danger',
+  });
+  if (!res)
+    return;
+  loading.value = true;
+  try {
+    await waitTimeOut(800);
+    await VillageInfoApi.deleteInfo(querys.value.id);
+    toast('删除成功');
+    backPrev(true);
+  } catch (e) {
+    showError(e);
+  } finally {
+    loading.value = false;
+  }
+}
 const localSavedState = ref(false);
 const saveLocalSaveDebounce = new Debounce(1000, saveLocalSave);
 let canSaveNow = false;

+ 0 - 1
src/pages/home/index.vue

@@ -42,7 +42,6 @@
               height="200rpx" 
               :radius="15" 
               mode="aspectFill" 
-              round
             />
             <Text :text="item.title" />
           </Touchable>

+ 1 - 2
src/pages/home/store/index.vue

@@ -50,8 +50,7 @@
               :width="120" 
               :height="120" 
               :radius="15" 
-              mode="aspectFill" 
-              round
+              mode="aspectFill"
             />
           </Touchable>
         </FlexCol>

+ 8 - 1
src/pages/test/topic.vue

@@ -2,6 +2,8 @@
   <official-account-publish 
     path="/pages/index" 
     @error="onError"
+    @publishsuccess="onPublishSuccess"
+    @publishfail="onPublishFail"
   />
 </template>
 
@@ -10,6 +12,11 @@
 function onError(e: any) {
   console.error(e);
 }
-
+function onPublishSuccess(e: any) {
+  console.log(e);
+}
+function onPublishFail(e: any) {
+  console.error(e);
+}
 
 </script>