|
@@ -6,22 +6,28 @@
|
|
|
<div class="container">
|
|
|
<el-row :gutter="20">
|
|
|
<el-col :span="4">
|
|
|
- <mymenu showHeader />
|
|
|
+ <mymenu showHeader @change="typeId => (params.typeId = typeId)" />
|
|
|
</el-col>
|
|
|
<el-col :span="20">
|
|
|
<div class="items">
|
|
|
- <div class="item" v-for="x in 8" :key="x">
|
|
|
- <div class="img">
|
|
|
- <img src="@assets/shangpin.png" alt="" />
|
|
|
+ <load-more
|
|
|
+ url="/goods/info/page"
|
|
|
+ :params="params"
|
|
|
+ v-slot="{
|
|
|
+ item: { id, name, companyId, price, cover, companyName }
|
|
|
+ }"
|
|
|
+ >
|
|
|
+ <div class="item">
|
|
|
+ <div class="img">
|
|
|
+ <img :src="`${$basePath}${cover}`" />
|
|
|
+ </div>
|
|
|
+ <span>{{ name }}</span>
|
|
|
+ <div class="pay">
|
|
|
+ <span>¥ {{ price }}</span>
|
|
|
+ <router-link :to="`${id}`"> 立即购买 </router-link>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- <span>多功能钢制文件柜</span>
|
|
|
- <div class="pay">
|
|
|
- <span>¥ 1800</span>
|
|
|
- <router-link to="2">
|
|
|
- 立即购买
|
|
|
- </router-link>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
+ </load-more>
|
|
|
</div>
|
|
|
</el-col>
|
|
|
</el-row>
|
|
@@ -29,12 +35,26 @@
|
|
|
</div>
|
|
|
</template>
|
|
|
<script lang="ts">
|
|
|
-import { Component, Vue, Watch } from "vue-property-decorator";
|
|
|
+import { Component, Vue, Prop, Watch } from "vue-property-decorator";
|
|
|
import mymenu from "@/components/menu.vue";
|
|
|
+import loadMore from "@/components/loadMore.vue";
|
|
|
@Component({
|
|
|
- components: { mymenu }
|
|
|
+ components: { mymenu, loadMore }
|
|
|
})
|
|
|
-export default class extends Vue {}
|
|
|
+export default class extends Vue {
|
|
|
+ private params: IAny | null = null;
|
|
|
+ @Prop() private shopInfo!: IAny;
|
|
|
+ @Prop(String) private keyWord!: string;
|
|
|
+ @Watch("shopInfo", { immediate: true })
|
|
|
+ shopChange({ id: companyId }: IAny) {
|
|
|
+ if (!companyId) return;
|
|
|
+ this.params = { companyId, typeId: 0, name: this.keyWord };
|
|
|
+ }
|
|
|
+ @Watch("keyWord")
|
|
|
+ search(name: string) {
|
|
|
+ this.params = { ...this.params, name };
|
|
|
+ }
|
|
|
+}
|
|
|
</script>
|
|
|
<style lang="scss" scoped>
|
|
|
.products {
|
|
@@ -47,6 +67,10 @@ export default class extends Vue {}
|
|
|
font-weight: bold;
|
|
|
text-align: center;
|
|
|
background: rgb(220, 220, 220);
|
|
|
+ img {
|
|
|
+ width: 100%;
|
|
|
+ height: 100%;
|
|
|
+ }
|
|
|
}
|
|
|
.container {
|
|
|
padding: 20px 0;
|