Просмотр исходного кода

🎨 修改传习所细节问题

快乐的梦鱼 дней назад: 3
Родитель
Сommit
68a403cee6

+ 2 - 0
src/api/inheritor/InheritorContent.ts

@@ -653,11 +653,13 @@ export class InheritorContentApi extends AppServerRequestModule<DataModel> {
     ichId?: number,
     page?: number,
     pageSize?: number,
+    keywords?: string,
   }) {
     return this.post('/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');
     })

+ 1 - 0
src/pages/admin.vue

@@ -192,6 +192,7 @@ async function loadSeminarData(page: number, pageSize: number, dropDownValues: n
   if (page === 1) {
     const res = await InheritorContent.getIchSeminarInfo({
       ichId: undefined,
+      keywords: searchText,
     });
     return {
       page,

+ 24 - 2
src/pages/admin/seminar.vue

@@ -13,7 +13,19 @@
         <EmptyToRecord title="传习所" :loader="worksData" :showEdited="false" :showAdd="false">
           <div class="d-flex justify-content-between p-2">
             <a-button @click="router.back" :icon="h(ArrowLeftOutlined)">返回</a-button>
-            <a-button type="primary" @click="handleNewSeminar">+ 新增</a-button>
+            <div class="d-flex flex-row">
+              <SimpleInput v-model="searchText" placeholder="请输入关键词" @search="handleSearch">
+                <template #suffix>
+                  <IconSearch
+                    class="search-icon"
+                    src="@/assets/images/news/IconSearch.png"
+                    alt="搜索" 
+                    @click="handleSearch"
+                  />
+                </template>
+              </SimpleInput>
+              <a-button type="primary" @click="handleNewSeminar">+ 新增</a-button>
+            </div>
           </div>
           <a-list class="light-round" item-layout="horizontal" :data-source="worksData?.content.value || []">
             <template #renderItem="{ item }">
@@ -44,14 +56,18 @@ import { useSimpleDataLoader } from '@/composeable/SimpleDataLoader';
 import EmptyToRecord from '@/components/parts/EmptyToRecord.vue';
 import InheritorContent, { InheritorWorkInfo } from '@/api/inheritor/InheritorContent';
 import { ArrowLeftOutlined } from '@ant-design/icons-vue';
-import { h } from 'vue';
+import { h, ref } from 'vue';
+import SimpleInput from '@/components/controls/SimpleInput.vue';
+import IconSearch from '@/components/icons/IconSearch.vue';
 
 const router = useRouter();
 const route = useRoute();
+const searchText = ref('');
 
 const worksData = useSimpleDataLoader(async () => {
   const ichId = route.query.ichId ? parseFloat(route.query.ichId as string) : undefined;
   return (await InheritorContent.getIchSeminarInfo({
+    keywords: searchText.value,
     ichId: ichId!,
     page: 1,
     pageSize: 100,
@@ -61,6 +77,7 @@ const worksData = useSimpleDataLoader(async () => {
 function handleNewSeminar() {
   router.push({ name: 'FormSeminar', query: { 
     ichId: route.query.ichId,
+    id: -1,
   } })
 }
 
@@ -71,4 +88,9 @@ function handleGoSeminar(item: InheritorWorkInfo) {
   } })
 }
 
+
+function handleSearch() {
+  worksData.loadData(undefined, true);
+}
+
 </script>

+ 6 - 1
src/pages/forms/seminar.vue

@@ -21,6 +21,7 @@ import type { AddressItem } from '@/components/dynamicf/Map/AddressSercher.vue';
 import { useAuthStore } from '@/stores/auth';
 import { useAliOssUploadCo } from '@/common/upload/AliOssUploadCo';
 import { useBeforeUploadImageChecker, type UploadImageFormItemProps } from '@/components/dynamicf/UploadImageFormItem';
+import { useRoute } from 'vue-router';
 
 const authStore = useAuthStore();
 const formRef = ref();
@@ -291,8 +292,12 @@ const formExtendOptions = ref<IDynamicFormOptions>({
   }
 });
 
+const route = useRoute();
+
 async function loadData(id: number|undefined) {
-  formModel.value = id ? await InheritorContent.getSeminarInfo(id) : new SeminarInfo();
+  formModel.value = id === undefined || id > 0 ? await InheritorContent.getSeminarInfo(id) : new SeminarInfo();
+  if (id === -1)
+    formModel.value.associationId = (route.query.ichId ? parseFloat(route.query.ichId as string) : undefined) ?? 0;
   formModel.value.expandInfo = id ? await InheritorContent.getSeminarExpandInfo(id) : new SeminarExpandInfo();
   formExtendModel.value = formModel.value.expandInfo || new SeminarExpandInfo(); 
 }