|
@@ -2,474 +2,36 @@
|
|
<div class="payment">
|
|
<div class="payment">
|
|
<Header @search="search($event)"></Header>
|
|
<Header @search="search($event)"></Header>
|
|
<section class="section">
|
|
<section class="section">
|
|
- <div class="section__header">
|
|
|
|
- <div class="container">
|
|
|
|
- <el-breadcrumb separator="/">
|
|
|
|
- <el-breadcrumb-item :to="{ path: '/index' }"
|
|
|
|
- >首页</el-breadcrumb-item
|
|
|
|
- >
|
|
|
|
- <el-breadcrumb-item>题库</el-breadcrumb-item>
|
|
|
|
- </el-breadcrumb>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="section__body">
|
|
|
|
- <div class="container">
|
|
|
|
- <div class="course-classify">
|
|
|
|
- <div class="course-classify__list">
|
|
|
|
- <div class="left-item">教育类型:</div>
|
|
|
|
- <div class="right-item">
|
|
|
|
- <div class="list">
|
|
|
|
- <!-- <div
|
|
|
|
- class="item"
|
|
|
|
- :class="{ active: typeKey == '' }"
|
|
|
|
- @click="changeType('')"
|
|
|
|
- >
|
|
|
|
- 全部
|
|
|
|
- </div> -->
|
|
|
|
- <div
|
|
|
|
- class="item"
|
|
|
|
- v-for="(item, index) in typeList"
|
|
|
|
- :key="index"
|
|
|
|
- :class="{ active: params.educationTypeId == item.id }"
|
|
|
|
- @click="changeType(item)"
|
|
|
|
- >
|
|
|
|
- {{ item.educationName }}
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div
|
|
|
|
- class="course-classify__list"
|
|
|
|
- v-if="businessList.length > 0 && params.educationTypeId"
|
|
|
|
- >
|
|
|
|
- <div class="left-item">培训项目:</div>
|
|
|
|
- <div class="right-item">
|
|
|
|
- <div class="list">
|
|
|
|
- <!-- <div class="item active">全部</div> -->
|
|
|
|
- <div
|
|
|
|
- class="item"
|
|
|
|
- v-for="(item, index) in businessList"
|
|
|
|
- :key="index"
|
|
|
|
- :class="{ active: params.businessId == item.id }"
|
|
|
|
- @click="changeBusiness(item)"
|
|
|
|
- >
|
|
|
|
- {{ item.aliasName }}
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="course-classify__list" v-if="subjectList.length > 0">
|
|
|
|
- <div class="left-item">科目分类:</div>
|
|
|
|
- <div class="right-item">
|
|
|
|
- <div class="list">
|
|
|
|
- <div
|
|
|
|
- class="item"
|
|
|
|
- v-for="(item, index) in subjectList"
|
|
|
|
- :key="index"
|
|
|
|
- :class="{ active: params.subjectId == item.id }"
|
|
|
|
- @click="changeSubject(item)"
|
|
|
|
- >
|
|
|
|
- {{ item.subjectName }}
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
-
|
|
|
|
- <div class="section__footer">
|
|
|
|
- <div class="container">
|
|
|
|
- <div class="course-list">
|
|
|
|
- <div class="course-list__header">
|
|
|
|
- <div class="sort-list">
|
|
|
|
- <div
|
|
|
|
- class="sort-list__item"
|
|
|
|
- @click="changeSort(1)"
|
|
|
|
- :class="{ active: params.sortType == 1 ? true : false }"
|
|
|
|
- >
|
|
|
|
- 综合排序
|
|
|
|
- </div>
|
|
|
|
- <div
|
|
|
|
- class="sort-list__item"
|
|
|
|
- @click="changeSort(2)"
|
|
|
|
- :class="{ active: params.sortType == 2 ? true : false }"
|
|
|
|
- >
|
|
|
|
- 低价优先
|
|
|
|
- </div>
|
|
|
|
- <div
|
|
|
|
- class="sort-list__item"
|
|
|
|
- @click="changeSort(3)"
|
|
|
|
- :class="{ active: params.sortType == 3 ? true : false }"
|
|
|
|
- >
|
|
|
|
- 高价优先
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- <div class="course-list__body">
|
|
|
|
- <LoadingBox v-if="loading"></LoadingBox>
|
|
|
|
- <ul v-else class="list clearfix">
|
|
|
|
- <el-empty v-if="goodsList.length == 0" description="暂无数据"></el-empty>
|
|
|
|
- <li
|
|
|
|
- class="course-item"
|
|
|
|
- v-for="(item, index) in goodsList"
|
|
|
|
- :key="index"
|
|
|
|
- >
|
|
|
|
- <GoodsItem :item="item"></GoodsItem>
|
|
|
|
- </li>
|
|
|
|
- </ul>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
-
|
|
|
|
- <div class="pagination">
|
|
|
|
- <el-pagination
|
|
|
|
- @current-change="currentChange"
|
|
|
|
- background
|
|
|
|
- layout="prev, pager, next"
|
|
|
|
- :total="total"
|
|
|
|
- :pager-count="5"
|
|
|
|
- :page-size="params.pageSize"
|
|
|
|
- >
|
|
|
|
- </el-pagination>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
- </div>
|
|
|
|
|
|
+ <list-option :goodsType="2" ref="listOption"></list-option>
|
|
</section>
|
|
</section>
|
|
-
|
|
|
|
<ToolBar></ToolBar>
|
|
<ToolBar></ToolBar>
|
|
<Footer></Footer>
|
|
<Footer></Footer>
|
|
</div>
|
|
</div>
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
-import { cancel } from "@/apis/common.js";
|
|
|
|
-import LoadingBox from "@/components/loadingBox/index";
|
|
|
|
|
|
+import listOption from "@/components/listOption/index";
|
|
import Footer from "@/components/footer/index";
|
|
import Footer from "@/components/footer/index";
|
|
import Header from "@/components/header/index";
|
|
import Header from "@/components/header/index";
|
|
import ToolBar from "@/components/toolbar/index";
|
|
import ToolBar from "@/components/toolbar/index";
|
|
-import GoodsItem from "@/components/goodsItem/index";
|
|
|
|
-import { mapMutations } from "vuex";
|
|
|
|
export default {
|
|
export default {
|
|
- name: "PaymentSuccess",
|
|
|
|
|
|
+ name: "",
|
|
components: {
|
|
components: {
|
|
|
|
+ listOption,
|
|
Footer,
|
|
Footer,
|
|
Header,
|
|
Header,
|
|
- ToolBar,
|
|
|
|
- GoodsItem,
|
|
|
|
- LoadingBox
|
|
|
|
|
|
+ ToolBar
|
|
},
|
|
},
|
|
data() {
|
|
data() {
|
|
- return {
|
|
|
|
- projectId: "",
|
|
|
|
- typeList: [],
|
|
|
|
- businessList: [],
|
|
|
|
- subjectList: [],
|
|
|
|
- total: 0,
|
|
|
|
- params: {
|
|
|
|
- projectId: "",
|
|
|
|
- educationTypeId: "",
|
|
|
|
- businessId: "",
|
|
|
|
- subjectId: "",
|
|
|
|
- pageNum: 1,
|
|
|
|
- pageSize: 15,
|
|
|
|
- goodsStatus: 1,
|
|
|
|
- goodsType: 2,
|
|
|
|
- sortType: 1,
|
|
|
|
- searchKey: "",
|
|
|
|
- showStatus: 1
|
|
|
|
- },
|
|
|
|
- goodsList: [],
|
|
|
|
- loading: false
|
|
|
|
- };
|
|
|
|
- },
|
|
|
|
- mounted() {
|
|
|
|
- this.params.goodsName = this.$route.query.searchKey || "";
|
|
|
|
- // this.params.searchKey = this.$route.query.searchKey || "";
|
|
|
|
- this.params.educationTypeId = this.$route.query.educationId || "";
|
|
|
|
- // this.params.projectId = this.$route.query.projectId || "";
|
|
|
|
- this.params.businessId = this.$route.query.businessId || "";
|
|
|
|
- if (this.params.businessId) {
|
|
|
|
- this.getSubjectList();
|
|
|
|
- }
|
|
|
|
- this.getEducationTypeList();
|
|
|
|
- // this.changeSubject();
|
|
|
|
|
|
+ return {};
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
- ...mapMutations(["getCartCount"]),
|
|
|
|
search(key) {
|
|
search(key) {
|
|
- this.params.goodsName = key || "";
|
|
|
|
- // this.params.searchKey = key || "";
|
|
|
|
- this.params.projectId = "";
|
|
|
|
- this.params.educationTypeId = "";
|
|
|
|
- this.params.businessId = "";
|
|
|
|
- this.params.subjectId = "";
|
|
|
|
- this.changeSubject();
|
|
|
|
- },
|
|
|
|
- changeSort(sortType) {
|
|
|
|
- if (this.params.sortType == sortType) return;
|
|
|
|
- this.params.sortType = sortType;
|
|
|
|
- this.changeSubject();
|
|
|
|
- },
|
|
|
|
- currentChange(e) {
|
|
|
|
- this.params.pageNum = e;
|
|
|
|
- this.changeSubject();
|
|
|
|
- },
|
|
|
|
- goodsDetail(item) {
|
|
|
|
- this.$router.push({
|
|
|
|
- path: "/bank-detail/" + item.goodsId,
|
|
|
|
- query: {
|
|
|
|
- orderGoodsId: item.orderGoodsId
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- addCart(item) {
|
|
|
|
- this.$request
|
|
|
|
- .addCart({ goodsId: item.goodsId })
|
|
|
|
- .then(res => {
|
|
|
|
- this.getCartCount();
|
|
|
|
- this.$message({
|
|
|
|
- message: "加入购物车成功",
|
|
|
|
- type: "success"
|
|
|
|
- });
|
|
|
|
- })
|
|
|
|
- .catch(err => {
|
|
|
|
- if (err.code == 500) {
|
|
|
|
- this.$message({
|
|
|
|
- message: err.msg,
|
|
|
|
- type: "warning"
|
|
|
|
- });
|
|
|
|
- }
|
|
|
|
- });
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- changeType(item) {
|
|
|
|
- if (this.params.educationTypeId == item.id) {
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
- this.params.educationTypeId = item.id;
|
|
|
|
- this.params.businessId = "";
|
|
|
|
- this.businessList = [];
|
|
|
|
- this.params.subjectId = "";
|
|
|
|
- this.subjectList = [];
|
|
|
|
- this.params.pageNum = 1;
|
|
|
|
- this.getBusinessList();
|
|
|
|
- this.changeSubject();
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- changeSubject(item) {
|
|
|
|
- if (item) {
|
|
|
|
- if (this.params.subjectId != item.id) {
|
|
|
|
- this.params.subjectId = item.id;
|
|
|
|
- this.params.pageNum = 1;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- if (cancel) {
|
|
|
|
- cancel("取消请求");
|
|
|
|
- }
|
|
|
|
- this.loading = true;
|
|
|
|
- this.$request
|
|
|
|
- .goodsList(this.params)
|
|
|
|
- .then(res => {
|
|
|
|
- this.goodsList = res.rows;
|
|
|
|
- this.total = res.total;
|
|
|
|
- })
|
|
|
|
- .finally(() => {
|
|
|
|
- this.loading = false;
|
|
|
|
- });
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- getSubjectList() {
|
|
|
|
- this.$request
|
|
|
|
- .subjectList({
|
|
|
|
- businessId: this.params.businessId,
|
|
|
|
- projectId: this.projectId,
|
|
|
|
- educationId: this.params.educationTypeId
|
|
|
|
- })
|
|
|
|
- .then(res => {
|
|
|
|
- this.subjectList = res.rows;
|
|
|
|
- this.subjectList.unshift({ id: 0, subjectName: "全部" });
|
|
|
|
- this.params.subjectId = 0;
|
|
|
|
-
|
|
|
|
- this.changeSubject(this.subjectList[0]);
|
|
|
|
- });
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- changeBusiness(item) {
|
|
|
|
- if (this.params.subjectId == item.id) {
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
- this.params.businessId = item.id;
|
|
|
|
- this.projectId = item.projectId;
|
|
|
|
- this.params.subjectId = "";
|
|
|
|
- this.subjectList = [];
|
|
|
|
- this.params.pageNum = 1;
|
|
|
|
- this.getSubjectList();
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- getBusinessList() {
|
|
|
|
- this.$request
|
|
|
|
- .businessList({ educationId: this.params.educationTypeId })
|
|
|
|
- .then(res => {
|
|
|
|
- this.businessList = res.rows.filter(item => item.aliasName);
|
|
|
|
- this.projectId = this.businessList[0].projectId;
|
|
|
|
- });
|
|
|
|
- },
|
|
|
|
-
|
|
|
|
- getEducationTypeList() {
|
|
|
|
- let alls = {
|
|
|
|
- educationName: "全部",
|
|
|
|
- id: "",
|
|
|
|
- status: 1,
|
|
|
|
- sort: 0
|
|
|
|
- };
|
|
|
|
- this.$request.educationTypeList().then(res => {
|
|
|
|
- res.rows.unshift(alls);
|
|
|
|
- this.typeList = res.rows;
|
|
|
|
- if (!this.params.educationTypeId) {
|
|
|
|
- this.params.educationTypeId = res.rows[0].id;
|
|
|
|
- this.getBusinessList();
|
|
|
|
- } else {
|
|
|
|
- this.params.educationTypeId = res.rows[0].id;
|
|
|
|
- this.getBusinessList();
|
|
|
|
- }
|
|
|
|
- this.changeSubject();
|
|
|
|
- });
|
|
|
|
|
|
+ this.$refs.listOption.params.goodsName = key;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
};
|
|
};
|
|
</script>
|
|
</script>
|
|
|
|
|
|
<!-- Add "scoped" attribute to limit CSS to this component only -->
|
|
<!-- Add "scoped" attribute to limit CSS to this component only -->
|
|
-<style scoped lang="scss">
|
|
|
|
-.payment {
|
|
|
|
- .section {
|
|
|
|
- &__header {
|
|
|
|
- height: 40px;
|
|
|
|
- display: flex;
|
|
|
|
- align-items: center;
|
|
|
|
- padding: 0 20px;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- &__body {
|
|
|
|
- background: #ebf2fc;
|
|
|
|
-
|
|
|
|
- .course-classify {
|
|
|
|
- overflow: hidden;
|
|
|
|
-
|
|
|
|
- &__list {
|
|
|
|
- display: flex;
|
|
|
|
- margin: 6px 0;
|
|
|
|
- align-items: flex-start;
|
|
|
|
-
|
|
|
|
- .left-item {
|
|
|
|
- margin-top: 10px;
|
|
|
|
- padding: 8px 0;
|
|
|
|
- width: 80px;
|
|
|
|
- font-size: 16px;
|
|
|
|
- font-family: Microsoft YaHei;
|
|
|
|
- font-weight: 400;
|
|
|
|
- color: #333333;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- .right-item {
|
|
|
|
- flex: 1;
|
|
|
|
-
|
|
|
|
- .list {
|
|
|
|
- display: flex;
|
|
|
|
- flex-wrap: wrap;
|
|
|
|
-
|
|
|
|
- .item {
|
|
|
|
- cursor: pointer;
|
|
|
|
- border-radius: 8px;
|
|
|
|
- margin: 10px;
|
|
|
|
- padding: 8px 16px;
|
|
|
|
- color: #666666;
|
|
|
|
- font-size: 16px;
|
|
|
|
- background: #f7f9fc;
|
|
|
|
- color: #999;
|
|
|
|
-
|
|
|
|
- &.active {
|
|
|
|
- color: #fff;
|
|
|
|
- background: #3f8dfd;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- &__footer {
|
|
|
|
- .course-list {
|
|
|
|
- &__header {
|
|
|
|
- margin-top: 32px;
|
|
|
|
-
|
|
|
|
- .sort-list {
|
|
|
|
- display: flex;
|
|
|
|
- align-items: center;
|
|
|
|
-
|
|
|
|
- &__item {
|
|
|
|
- cursor: pointer;
|
|
|
|
- width: 96px;
|
|
|
|
- height: 32px;
|
|
|
|
- border-radius: 16px;
|
|
|
|
- background: #ffffff;
|
|
|
|
- border: 1px solid #bfbfbf;
|
|
|
|
- border-radius: 16px;
|
|
|
|
- text-align: center;
|
|
|
|
- line-height: 30px;
|
|
|
|
- font-size: 16px;
|
|
|
|
- margin-right: 20px;
|
|
|
|
-
|
|
|
|
- &.active {
|
|
|
|
- background: #ebf2fc;
|
|
|
|
- border: 1px solid #3f8dfd;
|
|
|
|
- border-radius: 16px;
|
|
|
|
- color: #3f8dfd;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- &__body {
|
|
|
|
- .list {
|
|
|
|
- width: 100%;
|
|
|
|
-
|
|
|
|
- .course-item {
|
|
|
|
- float: left;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- &__footer {
|
|
|
|
- overflow: hidden;
|
|
|
|
-
|
|
|
|
- .btn {
|
|
|
|
- cursor: pointer;
|
|
|
|
- width: 146px;
|
|
|
|
- height: 40px;
|
|
|
|
- background: #e3eaf7;
|
|
|
|
- border-radius: 8px;
|
|
|
|
- margin: 20px auto 40px;
|
|
|
|
- color: #3f8dfd;
|
|
|
|
- text-align: center;
|
|
|
|
- line-height: 40px;
|
|
|
|
-
|
|
|
|
- &:hover {
|
|
|
|
- color: #fff;
|
|
|
|
- box-shadow: 0px 8px 4px 0px rgba(7, 82, 208, 0.08);
|
|
|
|
- background: #3f8dfd;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- .pagination {
|
|
|
|
- padding: 30px 0;
|
|
|
|
- text-align: center;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-</style>
|
|
|
|
|
|
+<style scoped lang="scss"></style>
|