Skip to content

Commit 6e48289

Browse files
committed
fix(pet): 宠物类型修正
1 parent a8f321e commit 6e48289

4 files changed

Lines changed: 64 additions & 57 deletions

File tree

src/components/pet/tabs.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,8 @@ export default {
8282
},
8383
typeOptions() {
8484
return this.types.map(item => ({
85-
type: item.class ?? item.ID,
86-
name: item.name || item.TypeName
85+
type: item.class,
86+
name: item.name
8787
}));
8888
},
8989
sourceOptions() {

src/views/pet/PetList.vue

Lines changed: 9 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ import petItem from "@/components/pet/item";
5757
import luckyItem from "@/components/pet/lucky";
5858
import { clone, debounce } from "lodash";
5959
import { isPhone } from "@/utils/index";
60+
import Type from "@/assets/data/pet_type.json";
6061
import { getPets, getPetSearchOptions, getPetLucky, getSliders, getMapList } from "@/service/pet";
6162
import dayjs from "@/plugins/day";
6263
@@ -72,7 +73,7 @@ export default {
7273
return {
7374
tabsData: {}, // 标签筛选数据
7475
active: "", // 当前激活的分类ID
75-
Type: [], // 宠物类型配置
76+
Type, // 宠物类型配置
7677
Source: [], // 宠物来源配置
7778
list: [], // 单分类宠物列表
7879
page: 1, // 当前页码
@@ -88,7 +89,12 @@ export default {
8889
count: 0, // 每行卡片数
8990
searchReady: false, // 筛选项是否已加载
9091
// 分类宠物列表(首页按分类展示)
91-
list_type: [],
92+
list_type: [
93+
{ class: 1, type: 1, name: "水族", list: [] },
94+
{ class: 2, type: 2, name: "禽鸟", list: [] },
95+
{ class: 3, type: 3, name: "走兽", list: [] },
96+
{ class: 4, type: 4, name: "机关", list: [] },
97+
],
9298
};
9399
},
94100
computed: {
@@ -152,32 +158,20 @@ export default {
152158
methods: {
153159
/**
154160
* 获取宠物筛选项
155-
* 种类对应宠物 Class 字段,来源对应宠物 Source 字段
161+
* 来源对应宠物 Source 字段;种类仍遵循本地 Class 配置
156162
*/
157163
getPetSearchOptions() {
158164
return getPetSearchOptions()
159165
.then((res) => {
160166
const data = Array.isArray(res.data) ? res.data : [];
161-
const typeOptions = data
162-
.filter((item) => item.Type === 1 && item.TypeName)
163-
.map((item) => ({
164-
class: item.ID,
165-
type: item.ID,
166-
name: item.TypeName,
167-
}));
168167
const sourceOptions = data
169168
.filter((item) => item.Type === 2 && item.TypeName)
170169
.map((item) => ({
171170
source: item.ID,
172171
name: item.TypeName,
173172
}));
174173
175-
this.Type = [{ class: "", type: 0, name: "所有种类" }, ...typeOptions];
176174
this.Source = [{ source: "", name: "所有途径" }, ...sourceOptions];
177-
this.list_type = typeOptions.map((item) => ({
178-
...item,
179-
list: [],
180-
}));
181175
})
182176
.catch((err) => {
183177
console.error("获取宠物筛选项失败", err);

src/views/pet/miniprogram/PetList.vue

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ import { __cdn } from "@/utils/config";
8383
import { extractTextContent, iconLink, resolveImagePath } from "@jx3box/jx3box-common/js/utils";
8484
8585
import { clone } from "lodash";
86-
import { getPetLucky, getPetSearchOptions, getPets, getSliders } from "@/service/pet";
86+
import { getPetLucky, getPets, getSliders } from "@/service/pet";
8787
import dayjs from "@/plugins/day";
8888
import PvxSuspension from "@/components/PvxSuspension.vue";
8989
@@ -101,8 +101,31 @@ export default {
101101
pages: 1,
102102
total: 0,
103103
luckyList:[],
104-
searchReady: false,
105-
list_type: [],
104+
list_type: [
105+
{
106+
class: 1,
107+
type: 1,
108+
name: "水族",
109+
list: [],
110+
},
111+
{
112+
class: 2,
113+
type: 2,
114+
name: "禽鸟",
115+
list: [],
116+
},
117+
{
118+
class: 3,
119+
type: 3,
120+
name: "走兽",
121+
list: [],
122+
},
123+
{
124+
class: 4,
125+
type: 4,
126+
name: "机关",
127+
list: [],
128+
},]
106129
};
107130
},
108131
computed: {
@@ -125,14 +148,12 @@ export default {
125148
deep: true,
126149
immediate: true,
127150
handler(val) {
128-
if (!this.searchReady) return;
129151
this.getPetListInit();
130152
},
131153
},
132154
},
133155
created() {
134156
this.getPetLucky();
135-
this.getPetSearchOptions();
136157
},
137158
methods: {
138159
iconLink,
@@ -182,27 +203,6 @@ export default {
182203
this.page = 1;
183204
document.documentElement.scrollTop = 0;
184205
},
185-
getPetSearchOptions() {
186-
getPetSearchOptions()
187-
.then((res) => {
188-
const data = Array.isArray(res.data) ? res.data : [];
189-
this.list_type = data
190-
.filter((item) => item.Type === 1 && item.TypeName)
191-
.map((item) => ({
192-
class: item.ID,
193-
type: item.ID,
194-
name: item.TypeName,
195-
list: [],
196-
}));
197-
})
198-
.catch((err) => {
199-
console.error("获取宠物筛选项失败", err);
200-
})
201-
.finally(() => {
202-
this.searchReady = true;
203-
this.getPetListInit();
204-
});
205-
},
206206
207207
getPetListInit() {
208208
if (!this.active) {

src/views/pet/miniprogram/PetSearch.vue

Lines changed: 27 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@
9898
</template>
9999

100100
<script>
101+
import Type from "@/assets/data/pet_type.json";
101102
import { getPets, getPetSearchOptions, getMapList } from "@/service/pet";
102103
import { extractTextContent, iconLink } from "@jx3box/jx3box-common/js/utils";
103104
import { cloneDeep } from "lodash";
@@ -107,7 +108,7 @@ export default {
107108
data() {
108109
return {
109110
activeNames: "",
110-
Type: [],
111+
Type,
111112
Source: [],
112113
tabsData:{},
113114
list: [],
@@ -123,7 +124,31 @@ export default {
123124
Name: "",
124125
Class:'',
125126
},
126-
list_type: [],
127+
list_type: [
128+
{
129+
class: 1,
130+
type: 1,
131+
name: "水族",
132+
list: [],
133+
},
134+
{
135+
class: 2,
136+
type: 2,
137+
name: "禽鸟",
138+
list: [],
139+
},
140+
{
141+
class: 3,
142+
type: 3,
143+
name: "走兽",
144+
list: [],
145+
},
146+
{
147+
class: 4,
148+
type: 4,
149+
name: "机关",
150+
list: [],
151+
},],
127152
mapList:[]
128153
};
129154
},
@@ -174,26 +199,14 @@ export default {
174199
getPetSearchOptions()
175200
.then((res) => {
176201
const data = Array.isArray(res.data) ? res.data : [];
177-
const typeOptions = data
178-
.filter((item) => item.Type === 1 && item.TypeName)
179-
.map((item) => ({
180-
class: item.ID,
181-
type: item.ID,
182-
name: item.TypeName,
183-
}));
184202
const sourceOptions = data
185203
.filter((item) => item.Type === 2 && item.TypeName)
186204
.map((item) => ({
187205
source: item.ID,
188206
name: item.TypeName,
189207
}));
190208
191-
this.Type = [{ class: "", type: 0, name: "所有种类" }, ...typeOptions];
192209
this.Source = [{ source: "", name: "所有途径" }, ...sourceOptions];
193-
this.list_type = typeOptions.map((item) => ({
194-
...item,
195-
list: [],
196-
}));
197210
})
198211
.catch((err) => {
199212
console.error("获取宠物筛选项失败", err);

0 commit comments

Comments
 (0)