Commit b083c5499560e7e505596fe07a5ac7d76c1badb1

Authored by
1 parent f859853f
Exists in master

feat:柯桥点赞功能

src/views/Yanxue/achievementsOne.vue
1 <template> 1 <template>
2 - <div class="cardBox">  
3 - <!-- <van-tabs v-model="tabsName"> 2 + <div class="cardBox">
  3 + <!-- <van-tabs v-model="tabsName">
4 <van-tab title="红色教育"></van-tab> 4 <van-tab title="红色教育"></van-tab>
5 <van-tab title="劳动教育"></van-tab> 5 <van-tab title="劳动教育"></van-tab>
6 <van-tab title="课外实践"></van-tab> 6 <van-tab title="课外实践"></van-tab>
7 <van-tab title="研学旅行"></van-tab> 7 <van-tab title="研学旅行"></van-tab>
8 </van-tabs> --> 8 </van-tabs> -->
9 9
10 - <div class="contextBox" v-if="newsList.length != 0">  
11 - <div  
12 - class="art_card_pic"  
13 - v-for="(v, i) in newsList"  
14 - :key="i"  
15 - @click="toDetails(v)"  
16 - >  
17 - <div class="art_context">  
18 - <div class="art_title">{{ v.titleDesc }}</div>  
19 - <div class="art_bot">  
20 - <!-- <div class="redSticky" v-if="v.readNumber">置顶</div> -->  
21 - <!-- <div class="greyTime">发布于 {{ v.createTime ? Moment(v.createTime).format('YYYY-MM-DD HH:mm:ss') : ''}}</div> -->  
22 - <div class="greyTime">点赞量 {{ v.likeNumber }}</div>  
23 - <div class="greyFont">浏览量 {{ v.readNumber }}</div>  
24 - </div> 10 + <div class="contextBox" v-if="newsList.length != 0" @load="getData">
  11 + <van-list
  12 + v-model="loading"
  13 + :finished="finished"
  14 + finished-text="没有更多了"
  15 + @load="getData"
  16 + >
  17 + <div
  18 + class="art_card_pic"
  19 + v-for="(v, i) in newsList"
  20 + :key="i"
  21 + @click="toDetails(v)"
  22 + >
  23 + <div class="art_context">
  24 + <div class="art_title">{{ v.titleDesc }}</div>
  25 + <div class="art_bot">
  26 + <!-- <div class="redSticky" v-if="v.readNumber">置顶</div> -->
  27 + <!-- <div class="greyTime">发布于 {{ v.createTime ? Moment(v.createTime).format('YYYY-MM-DD HH:mm:ss') : ''}}</div> -->
  28 + <div class="greyTime">
  29 + 点赞量 {{ v.likeNumber }}
  30 + </div>
  31 + <div class="greyFont">
  32 + 浏览量 {{ v.readNumber }}
  33 + </div>
  34 + </div>
  35 + </div>
  36 + <div class="art_pic">
  37 + <img :src="v.imgUrl" />
  38 + </div>
  39 + </div>
  40 + </van-list>
  41 + <!-- <div
  42 + class="art_card_pic"
  43 + v-for="(v, i) in newsList"
  44 + :key="i"
  45 + @click="toDetails(v)"
  46 + >
  47 + <div class="art_context">
  48 + <div class="art_title">{{ v.titleDesc }}</div>
  49 + <div class="art_bot">
  50 + <div class="greyTime">点赞量 {{ v.likeNumber }}</div>
  51 + <div class="greyFont">浏览量 {{ v.readNumber }}</div>
  52 + </div>
  53 + </div>
  54 + <div class="art_pic">
  55 + <img :src="v.imgUrl" />
  56 + </div>
  57 + </div> -->
25 </div> 58 </div>
26 - <div class="art_pic">  
27 - <img :src="v.imgUrl" />  
28 - </div>  
29 - </div>  
30 - </div>  
31 59
32 - <van-empty description="暂无数据" v-else/> 60 + <van-empty description="暂无数据" v-else />
33 61
34 - <div class="imgPic" @click="toChoose">  
35 - <img src="@/assets/changeSchool.png" />  
36 - </div> 62 + <div class="imgPic" @click="toChoose">
  63 + <img src="@/assets/changeSchool.png" />
  64 + </div>
37 65
38 - <tabbar4 active="fruit"></tabbar4>  
39 - </div> 66 + <tabbar4 active="fruit"></tabbar4>
  67 + </div>
40 </template> 68 </template>
41 69
42 <script> 70 <script>
43 import Tabbar4 from "@/component/Tabbar4"; 71 import Tabbar4 from "@/component/Tabbar4";
44 export default { 72 export default {
45 - components: { Tabbar4 },  
46 - data() {  
47 - return {  
48 - tabsName: 1,  
49 - newsList: [],  
50 - };  
51 - },  
52 - methods: {  
53 - //详情新闻  
54 - toDetails(v) {  
55 - this.$router.push({ name: "pageDetails" ,query: {schoolId:v.schoolId,dataId: v.id}}); 73 + components: { Tabbar4 },
  74 + data() {
  75 + return {
  76 + tabsName: 1,
  77 + newsList: [],
  78 + pageNum: 1,
  79 + pageSize: 10,
  80 + finished: false,
  81 + loading: false,
  82 + };
56 }, 83 },
57 - //选择  
58 - toChoose() {  
59 - this.$router.push({ name: "chooseSchoolOne" }); 84 + methods: {
  85 + //详情新闻
  86 + toDetails(v) {
  87 + this.$router.push({
  88 + name: "pageDetails",
  89 + query: { schoolId: v.schoolId, dataId: v.id },
  90 + });
  91 + },
  92 + //选择
  93 + toChoose() {
  94 + this.$router.push({ name: "chooseSchoolOne" });
  95 + },
  96 + getData() {
  97 + this.loading = true;
  98 + let schoolId = this.$route.query.schoolId
  99 + ? this.$route.query.schoolId
  100 + : "";
  101 +
  102 + this.yxAxios
  103 + .get(
  104 + `${this.kqUrl}/schoolConsult/consultList?pageNum=${this.pageNum}&pageSize=${this.pageSize}&schoolId=` +
  105 + schoolId
  106 + )
  107 + .then((res) => {
  108 + if (res.data.code == 200) {
  109 + this.newsList = this.newsList.concat(
  110 + res.data.data.list
  111 + );
  112 + this.loading = false;
  113 + if (
  114 + this.pageSize * this.pageNum >=
  115 + res.data.data.total
  116 + ) {
  117 + this.finished = true;
  118 + } else {
  119 + this.pageNum++;
  120 + }
  121 + } else {
  122 + this.$toast.fail(res.data.message);
  123 + }
  124 + });
  125 + // this.yxAxios
  126 + // .post(`${this.dataUrl}/sys/yx/consultList`, {
  127 + // page: 1,
  128 + // pageSize: 999,
  129 + // schoolId: this.$route.query.schoolId*1
  130 + // })
  131 + // .then((res) => {
  132 + // if (res.data.success) {
  133 + // this.newsList = res.data.data.list;
  134 + // } else {
  135 + // this.$toast.fail(res.data.message);
  136 + // }
  137 + // });
  138 + },
60 }, 139 },
61 - getData() {  
62 - let schoolId = this.$route.query.schoolId?this.$route.query.schoolId: ''  
63 -  
64 - this.yxAxios  
65 - .get(`${this.kqUrl}/schoolConsult/consultList?pageNum=1&pageSize=999&schoolId=`+schoolId)  
66 - .then((res) => {  
67 - if (res.data.code == 200) {  
68 - this.newsList = res.data.data.list;  
69 - } else {  
70 - this.$toast.fail(res.data.message);  
71 - }  
72 - });  
73 - // this.yxAxios  
74 - // .post(`${this.dataUrl}/sys/yx/consultList`, {  
75 - // page: 1,  
76 - // pageSize: 999,  
77 - // schoolId: this.$route.query.schoolId*1  
78 - // })  
79 - // .then((res) => {  
80 - // if (res.data.success) {  
81 - // this.newsList = res.data.data.list;  
82 - // } else {  
83 - // this.$toast.fail(res.data.message);  
84 - // }  
85 - // }); 140 + mounted() {
  141 + this.getData();
86 }, 142 },
87 - },  
88 - mounted() {  
89 - this.getData()  
90 - }  
91 }; 143 };
92 </script> 144 </script>
93 145
94 <style lang="scss" scoped> 146 <style lang="scss" scoped>
95 .cardBox { 147 .cardBox {
96 - padding: 2vw 0;  
97 - box-sizing: border-box;  
98 -  
99 - .contextBox {  
100 - margin-bottom: 140px;  
101 - .art_card {  
102 - padding: 28px;  
103 - box-sizing: border-box;  
104 -  
105 - .art_title {  
106 - width: 100%;  
107 - font-size: 34px;  
108 - font-weight: bold;  
109 - display: -webkit-box;  
110 - -webkit-box-orient: vertical;  
111 - -webkit-line-clamp: 1; //限制行数  
112 - overflow: hidden; //超出部分隐藏  
113 - text-overflow: ellipsis; //用一个省略号代替超出的内容  
114 - }  
115 -  
116 - .art_bot {  
117 - padding-top: 22px;  
118 - box-sizing: border-box;  
119 - display: flex;  
120 - align-items: center;  
121 -  
122 - .redSticky {  
123 - color: #ff4444;  
124 - font-size: 24px;  
125 - padding: 2px;  
126 - box-sizing: border-box;  
127 - border: 1px solid #ff4444;  
128 - } 148 + padding: 2vw 0;
  149 + box-sizing: border-box;
129 150
130 - .greyTime {  
131 - color: #999;  
132 - font-size: 24px;  
133 - margin: 0 20px;  
134 - } 151 + .contextBox {
  152 + margin-bottom: 140px;
  153 + .art_card {
  154 + padding: 28px;
  155 + box-sizing: border-box;
135 156
136 - .greyFont {  
137 - color: #999;  
138 - font-size: 24px;  
139 -  
140 - }  
141 - }  
142 - }  
143 - .art_card_pic {  
144 - padding: 28px;  
145 - box-sizing: border-box;  
146 - display: flex;  
147 - justify-content: space-between;  
148 -  
149 - .art_context {  
150 - height: 180px;  
151 - display: flex;  
152 - align-content: space-between;  
153 - flex-wrap: wrap;  
154 -  
155 - .art_title {  
156 - width: 100%;  
157 - font-size: 34px;  
158 - font-weight: bold;  
159 - display: -webkit-box;  
160 - -webkit-box-orient: vertical;  
161 - -webkit-line-clamp: 2; //限制行数  
162 - overflow: hidden; //超出部分隐藏  
163 - text-overflow: ellipsis; //用一个省略号代替超出的内容  
164 - } 157 + .art_title {
  158 + width: 100%;
  159 + font-size: 34px;
  160 + font-weight: bold;
  161 + display: -webkit-box;
  162 + -webkit-box-orient: vertical;
  163 + -webkit-line-clamp: 1; //限制行数
  164 + overflow: hidden; //超出部分隐藏
  165 + text-overflow: ellipsis; //用一个省略号代替超出的内容
  166 + }
165 167
166 - .art_bot {  
167 - padding-top: 22px;  
168 - box-sizing: border-box;  
169 - display: flex;  
170 - align-items: center; 168 + .art_bot {
  169 + padding-top: 22px;
  170 + box-sizing: border-box;
  171 + display: flex;
  172 + align-items: center;
171 173
172 - .redSticky {  
173 - color: #ff4444;  
174 - font-size: 24px;  
175 - padding: 2px; 174 + .redSticky {
  175 + color: #ff4444;
  176 + font-size: 24px;
  177 + padding: 2px;
  178 + box-sizing: border-box;
  179 + border: 1px solid #ff4444;
  180 + }
  181 +
  182 + .greyTime {
  183 + color: #999;
  184 + font-size: 24px;
  185 + margin: 0 20px;
  186 + }
  187 +
  188 + .greyFont {
  189 + color: #999;
  190 + font-size: 24px;
  191 + }
  192 + }
  193 + }
  194 + .art_card_pic {
  195 + padding: 28px;
176 box-sizing: border-box; 196 box-sizing: border-box;
177 - border: 1px solid #ff4444;  
178 - }  
179 -  
180 - .greyTime {  
181 - color: #999;  
182 - font-size: 24px;  
183 - margin: 0 ;  
184 - }  
185 -  
186 - .greyFont {  
187 - color: #999;  
188 - font-size: 24px;  
189 - margin-left: 20px;  
190 - } 197 + display: flex;
  198 + justify-content: space-between;
  199 +
  200 + .art_context {
  201 + height: 180px;
  202 + display: flex;
  203 + align-content: space-between;
  204 + flex-wrap: wrap;
  205 +
  206 + .art_title {
  207 + width: 100%;
  208 + font-size: 34px;
  209 + font-weight: bold;
  210 + display: -webkit-box;
  211 + -webkit-box-orient: vertical;
  212 + -webkit-line-clamp: 2; //限制行数
  213 + overflow: hidden; //超出部分隐藏
  214 + text-overflow: ellipsis; //用一个省略号代替超出的内容
  215 + }
  216 +
  217 + .art_bot {
  218 + padding-top: 22px;
  219 + box-sizing: border-box;
  220 + display: flex;
  221 + align-items: center;
  222 +
  223 + .redSticky {
  224 + color: #ff4444;
  225 + font-size: 24px;
  226 + padding: 2px;
  227 + box-sizing: border-box;
  228 + border: 1px solid #ff4444;
  229 + }
  230 +
  231 + .greyTime {
  232 + color: #999;
  233 + font-size: 24px;
  234 + margin: 0;
  235 + }
  236 +
  237 + .greyFont {
  238 + color: #999;
  239 + font-size: 24px;
  240 + margin-left: 20px;
  241 + }
  242 + }
  243 + }
  244 + .art_pic {
  245 + width: 180px;
  246 + height: 180px;
  247 + flex-shrink: 0;
  248 + background-color: #ff4444;
  249 +
  250 + img {
  251 + width: 100%;
  252 + height: 100%;
  253 + }
  254 + }
191 } 255 }
192 - }  
193 - .art_pic {  
194 - width: 180px;  
195 - height: 180px;  
196 - flex-shrink: 0;  
197 - background-color: #ff4444; 256 + }
  257 + .imgPic {
  258 + position: fixed;
  259 + right: 2vw;
  260 + bottom: 40vw;
  261 + width: 26vw;
  262 + height: 26vw;
198 263
199 img { 264 img {
200 - width: 100%;  
201 - height: 100%; 265 + width: 100%;
  266 + height: 100%;
202 } 267 }
203 - }  
204 - }  
205 - }  
206 - .imgPic {  
207 - position: fixed;  
208 - right: 2vw;  
209 - bottom: 40vw;  
210 - width: 26vw;  
211 - height: 26vw;  
212 -  
213 - img {  
214 - width: 100%;  
215 - height: 100%;  
216 } 268 }
217 - }  
218 } 269 }
219 </style> 270 </style>
220 \ No newline at end of file 271 \ No newline at end of file
src/views/Yanxue/pageDetails.vue
@@ -34,19 +34,19 @@ @@ -34,19 +34,19 @@
34 <div v-if="v.type == 3" class="typeThree"> 34 <div v-if="v.type == 3" class="typeThree">
35 <div class="contextThree" v-html="v.context"></div> 35 <div class="contextThree" v-html="v.context"></div>
36 </div> 36 </div>
  37 + </div>
37 38
38 - <div class="thumbs" v-if="v.likeStatus">  
39 - <img src="@/assets/dz_on.png" @click="toDZ(false)" />  
40 - <span @click="toDZ(false)">{{  
41 - v.likeNumber ? v.likeNumber : 0  
42 - }}</span>  
43 - </div>  
44 - <div class="thumbs thumbs_grey" v-else>  
45 - <img src="@/assets/dz_off.png" @click="toDZ(true)" />  
46 - <span @click="toDZ(true)">{{  
47 - v.likeNumber ? v.likeNumber : 0  
48 - }}</span>  
49 - </div> 39 + <div class="thumbs" v-if="resData.likeStatus">
  40 + <img src="@/assets/dz_on.png" @click="toDZ(false)" />
  41 + <span @click="toDZ(false)">{{
  42 + resData.likeNumber ? resData.likeNumber : 0
  43 + }}</span>
  44 + </div>
  45 + <div class="thumbs thumbs_grey" v-else>
  46 + <img src="@/assets/dz_off.png" @click="toDZ(true)" />
  47 + <span @click="toDZ(true)">{{
  48 + resData.likeNumber ? resData.likeNumber : 0
  49 + }}</span>
50 </div> 50 </div>
51 </div> 51 </div>
52 </div> 52 </div>
@@ -61,7 +61,10 @@ export default { @@ -61,7 +61,10 @@ export default {
61 modelList: [], 61 modelList: [],
62 background: "", 62 background: "",
63 imgUrl: "", 63 imgUrl: "",
64 - // isOn: false, 64 + resData: {
  65 + likeStatus: 0,
  66 + likeNumber: 0,
  67 + }
65 }; 68 };
66 }, 69 },
67 methods: { 70 methods: {
@@ -70,7 +73,9 @@ export default { @@ -70,7 +73,9 @@ export default {
70 this.yxAxios 73 this.yxAxios
71 .get( 74 .get(
72 `${this.kqUrl}/schoolConsult/consultDetails?consultId=` + 75 `${this.kqUrl}/schoolConsult/consultDetails?consultId=` +
73 - this.$route.query.dataId 76 + this.$route.query.dataId +
  77 + `&userNum=` +
  78 + JSON.parse(localStorage.getItem("userInfo")).centerNo
74 ) 79 )
75 .then((res) => { 80 .then((res) => {
76 if (res.data.code == 200) { 81 if (res.data.code == 200) {
@@ -82,6 +87,7 @@ export default { @@ -82,6 +87,7 @@ export default {
82 } 87 }
83 let arr = JSON.parse(res.data.data.modelList); 88 let arr = JSON.parse(res.data.data.modelList);
84 this.modelList = arr; 89 this.modelList = arr;
  90 + this.resData = res.data.data;
85 // this.showFrame(); 91 // this.showFrame();
86 } else { 92 } else {
87 this.$toast.fail(res.data.message); 93 this.$toast.fail(res.data.message);
@@ -134,7 +140,7 @@ export default { @@ -134,7 +140,7 @@ export default {
134 }, 140 },
135 //点赞 true点赞,false取消 141 //点赞 true点赞,false取消
136 toDZ(val) { 142 toDZ(val) {
137 - this.isOn = val; 143 +
138 this.yxAxios 144 this.yxAxios
139 .post(`${this.kqUrl}/visitRecord/setConsultLike`, { 145 .post(`${this.kqUrl}/visitRecord/setConsultLike`, {
140 consultId: this.$route.query.dataId, 146 consultId: this.$route.query.dataId,
@@ -251,7 +257,9 @@ export default { @@ -251,7 +257,9 @@ export default {
251 } 257 }
252 } 258 }
253 259
254 - .thumbs { 260 +
  261 + }
  262 + .thumbs {
255 width: 100%; 263 width: 100%;
256 font-size: 33px; 264 font-size: 33px;
257 font-weight: bold; 265 font-weight: bold;
@@ -269,7 +277,6 @@ export default { @@ -269,7 +277,6 @@ export default {
269 .thumbs_grey { 277 .thumbs_grey {
270 color: #999; 278 color: #999;
271 } 279 }
272 - }  
273 } 280 }
274 } 281 }
275 </style> 282 </style>
276 \ No newline at end of file 283 \ No newline at end of file