Quellcode durchsuchen

Merge branch 'master' of http://git.derkj.com:9095/waibao/NN2025081602

* 'master' of http://git.derkj.com:9095/waibao/NN2025081602:
  合并
  1. 文章排序 2. 添加推荐 3. 添加视频类型 4. 修改课程类型,增加冲刺
wesmiler vor 6 Monaten
Ursprung
Commit
93151fc321
31 geänderte Dateien mit 197 neuen und 76 gelöschten Zeilen
  1. 3 3
      addons/admin/src/config/setting.js
  2. 11 0
      addons/admin/src/constants/course.js
  3. 1 0
      addons/admin/src/views/complaint/complaint.vue
  4. 5 5
      addons/admin/src/views/dashboard/components/ExamAccessRanks.vue
  5. 2 2
      addons/admin/src/views/exam/component/PaperForm.vue
  6. 3 2
      addons/admin/src/views/exam/examList.vue
  7. 4 4
      addons/admin/src/views/exam/index1-1.vue
  8. 4 4
      addons/admin/src/views/exam/index1-3.vue
  9. 4 4
      addons/admin/src/views/exam/index1-4.vue
  10. 4 4
      addons/admin/src/views/exam/index1-5.vue
  11. 23 0
      addons/admin/src/views/exam/index1-6.vue
  12. 1 1
      addons/admin/src/views/exam/index2-1.vue
  13. 5 5
      addons/admin/src/views/exam/index2-2.vue
  14. 5 5
      addons/admin/src/views/exam/index2-3.vue
  15. 5 5
      addons/admin/src/views/exam/index2-4.vue
  16. 1 1
      addons/admin/src/views/exam/index2-5.vue
  17. 23 0
      addons/admin/src/views/exam/index2-6.vue
  18. 1 1
      addons/admin/src/views/exam/index3-1.vue
  19. 5 5
      addons/admin/src/views/exam/index3-2.vue
  20. 5 5
      addons/admin/src/views/exam/index3-3.vue
  21. 5 5
      addons/admin/src/views/exam/index3-4.vue
  22. 1 1
      addons/admin/src/views/exam/index3-5.vue
  23. 23 0
      addons/admin/src/views/exam/index3-6.vue
  24. 3 1
      addons/admin/src/views/subject/subject.vue
  25. 4 2
      addons/admin/src/views/system/article/components/ArticleForm.vue
  26. 19 4
      addons/admin/src/views/video/component/VideoForm.vue
  27. 20 0
      addons/admin/src/views/video/video.vue
  28. 1 0
      addons/admin/src/views/vip/vip.vue
  29. 0 3
      app/Models/MemberModel.php
  30. 2 1
      app/Services/Common/VideoService.php
  31. 4 3
      app/Services/Exam/SubjectService.php

+ 3 - 3
addons/admin/src/config/setting.js

@@ -9,7 +9,7 @@ export default {
   // chatURL: 'ws://127.0.4.82:8660',  // 聊天地址
   chatURL: "ws://api.bzfengsheng.cn/chat", // 聊天地址
   //   baseURL: "https://api.bzfengsheng.cn", // 测试接口地址
-  signKey: "jdApp&688", // 签名密钥
+  signKey: "stapp&688", // 签名密钥
   whiteList: ["/login", "/forget"], // 路由白名单(不需要登录的)
   keepAliveList: [], // 需要缓存的组件名称
   menuUrl: "/index/getMenuList", // 菜单数据接口
@@ -23,8 +23,8 @@ export default {
     return res;
   },
   tokenHeaderName: "Authorization", // token传递的header名称
-  tokenStoreName: "jd.access_token", // token存储的名称
-  userStoreName: "jd.user", // 用户信息存储的名称
+  tokenStoreName: "st.access_token", // token存储的名称
+  userStoreName: "st.user", // 用户信息存储的名称
   themeStoreName: "theme", // 主题配置存储的名称
   homeTitle: "主页", // 首页Tab显示标题,null会根据菜单自动获取
   watchResize: true, // 是否监听屏幕尺寸改变

+ 11 - 0
addons/admin/src/constants/course.js

@@ -0,0 +1,11 @@
+// constants/course.js
+export const COURSE_TYPE_OPTIONS = [
+  { label: "单招", value: 1 },
+  { label: "对口", value: 2 },
+  { label: "专升本", value: 3 },
+];
+
+export const getCourseTypeLabel = (value) => {
+  const item = COURSE_TYPE_OPTIONS.find((t) => t.value === value);
+  return item ? item.label : "-";
+};

+ 1 - 0
addons/admin/src/views/complaint/complaint.vue

@@ -154,6 +154,7 @@
 </template>
 
 <script>
+import { mapGetters } from 'vuex'
 export default {
     data() {
         return {

+ 5 - 5
addons/admin/src/views/dashboard/components/ExamAccessRanks.vue

@@ -40,12 +40,12 @@
 
             <el-table-column prop="scene_count1" label="每日一练" width="120" />
             <el-table-column prop="scene_count2" label="历年真题" width="120" />
-            <el-table-column prop="scene_count3" label="职业适应性模拟" width="160" />
-            <el-table-column prop="scene_count4" label="模拟" width="120" />
+            <el-table-column prop="scene_count3" label="模拟试题" width="160" />
+            <el-table-column prop="scene_count4" label="模拟考试" width="120" />
             <el-table-column prop="scene_count5" label="复习资料" width="120" />
-            <el-table-column prop="scene_count6" label="公共基础课测试" width="160" />
-            <el-table-column prop="scene_count7" label="专业基础课测试" width="160" />
-            <el-table-column prop="scene_count20" label="视频课程" width="120" />
+            <el-table-column prop="scene_count6" label="考前冲刺" width="160" />
+            <!-- <el-table-column prop="scene_count7" label="专业基础课测试" width="160" />
+            <el-table-column prop="scene_count20" label="视频课程" width="120" /> -->
         </el-table>
 
         <!-- 分页 -->

+ 2 - 2
addons/admin/src/views/exam/component/PaperForm.vue

@@ -130,8 +130,8 @@ export default {
         },
         async loadSubjects() {
             try {
-                if (!this.defaultSceneType) return;
-                const res = await this.$http.get(`/subjects/options?scene_type=${this.defaultSceneType}`);
+                if (!this.type) return;
+                const res = await this.$http.get(`/subjects/options?type=${this.type}`);
                 if (res.data.code === 0) {
                     this.subjectOptionsInternal = res.data.data.map(item => ({
                         id: item.id,

+ 3 - 2
addons/admin/src/views/exam/examList.vue

@@ -54,7 +54,8 @@
                 <el-button @click="remove()" type="danger" icon="el-icon-delete" class="ele-btn-icon mr-10" size="small"
                     v-if="permission.includes(permissionMap['delete'])">批量删除</el-button>
                 <el-button class="ele-btn-icon mr-10" size="small" icon="el-icon-setting"
-                    @click="subjectDialogVisible = true" v-if="permission.includes(permissionMap['edit'])">分类管理</el-button>
+                    @click="subjectDialogVisible = true"
+                    v-if="permission.includes(permissionMap['edit'])">分类管理</el-button>
             </div>
 
             <!-- 数据表格 -->
@@ -199,7 +200,7 @@ export default {
         },
         async loadSubjects() {
             try {
-                const res = await this.$http.get("/subjects/options?scene_type=" + this.sceneType);
+                const res = await this.$http.get("/subjects/options?type=" + this.type);
                 if (res.data.code === 0) {
                     console.log('loadSubjects', res.data.data)
                     this.subjectOptions = res.data.data.map(item => {

+ 4 - 4
addons/admin/src/views/exam/index1-1.vue

@@ -12,10 +12,10 @@ export default {
     data() {
         return {
             permissionMap: {
-                delete: "exam:sdzb:daily:delete",
-                edit: "exam:sdzb:daily:edit",
-                add: "exam:sdzb:daily:add",
-                index: "exam:sdzb:daily:index",
+                delete: "sys:duikou1:delete",
+                edit: "sys:duikou1:edit",
+                add: "sys:duikou1:add",
+                index: "sys:duikou1:index",
             }
         }
     }

+ 4 - 4
addons/admin/src/views/exam/index1-3.vue

@@ -12,10 +12,10 @@ export default {
     data() {
         return {
             permissionMap: {
-                delete: "exam:sdzb:career:delete",
-                edit: "exam:sdzb:career:edit",
-                add: "exam:sdzb:career:add",
-                index: "exam:sdzb:career:index",
+                delete: "sys:sdzb3:delete",
+                edit: "sys:sdzb3:edit",
+                add: "sys:sdzb3:add",
+                index: "sys:sdzb3:index",
             }
         }
     },

+ 4 - 4
addons/admin/src/views/exam/index1-4.vue

@@ -12,10 +12,10 @@ export default {
     data() {
         return {
             permissionMap: {
-                delete: "exam:sdzb:mock:delete",
-                edit: "exam:sdzb:mock:edit",
-                add: "exam:sdzb:mock:add",
-                index: "exam:sdzb:mock:index",
+                delete: "sys:sdzb4:delete",
+                edit: "sys:sdzb4:edit",
+                add: "sys:sdzb4:add",
+                index: "sys:sdzb4:index",
             }
         }
     },

+ 4 - 4
addons/admin/src/views/exam/index1-5.vue

@@ -12,10 +12,10 @@ export default {
     data() {
         return {
             permissionMap: {
-                delete: "exam:sdzb:review:delete",
-                edit: "exam:sdzb:review:edit",
-                add: "exam:sdzb:review:add",
-                index: "exam:sdzb:review:index",
+                delete: "sys:duikou5:delete",
+                edit: "sys:duikou5:edit",
+                add: "sys:duikou5:add",
+                index: "sys:duikou5:index",
             }
         }
     },

+ 23 - 0
addons/admin/src/views/exam/index1-6.vue

@@ -0,0 +1,23 @@
+<template>
+    <examList :type=1 :sceneType=6 :permissionMap="permissionMap" />
+</template>
+
+<script>
+import examList from "./examList"
+
+export default {
+    name: "index1-6",
+
+    components: { examList },
+    data() {
+        return {
+            permissionMap: {
+                delete: "exam:sdzb:kqcc:delete",
+                edit: "exam:sdzb:kqcc:edit",
+                add: "exam:sdzb:kqcc:add",
+                index: "exam:sdzb:kqcc:index",
+            }
+        }
+    },
+};
+</script>

+ 1 - 1
addons/admin/src/views/exam/index2-1.vue

@@ -1,5 +1,5 @@
 <template>
-    <examList :type=1 :sceneType=1 :permissionMap="permissionMap" />
+    <examList :type=2 :sceneType=1 :permissionMap="permissionMap" />
 </template>
 
 <script>

+ 5 - 5
addons/admin/src/views/exam/index2-2.vue

@@ -1,5 +1,5 @@
 <template>
-    <examList :type=1 :sceneType=2 :permissionMap="permissionMap" />
+    <examList :type=2 :sceneType=2 :permissionMap="permissionMap" />
 </template>
 
 <script>
@@ -12,10 +12,10 @@ export default {
     data() {
         return {
             permissionMap: {
-                delete: "exam:duikou:yearly:delete",
-                edit: "exam:duikou:yearly:edit",
-                add: "exam:duikou:yearly:add",
-                index: "exam:duikou:yearly:index",
+                delete: "sys:duikou2:delete",
+                edit: "sys:duikou2:edit",
+                add: "sys:duikou2:add",
+                index: "sys:duikou2:index",
             }
         }
     },

+ 5 - 5
addons/admin/src/views/exam/index2-3.vue

@@ -1,5 +1,5 @@
 <template>
-    <examList :type=1 :sceneType=3 :permissionMap="permissionMap" />
+    <examList :type=2 :sceneType=3 :permissionMap="permissionMap" />
 </template>
 
 <script>
@@ -12,10 +12,10 @@ export default {
     data() {
         return {
             permissionMap: {
-                delete: "exam:duikou:career:delete",
-                edit: "exam:duikou:career:edit",
-                add: "exam:duikou:career:add",
-                index: "exam:duikou:career:index",
+                delete: "sys:duikou3:delete",
+                edit: "sys:duikou3:edit",
+                add: "sys:duikou3:add",
+                index: "sys:duikou3:index",
             }
         }
     },

+ 5 - 5
addons/admin/src/views/exam/index2-4.vue

@@ -1,5 +1,5 @@
 <template>
-    <examList :type=1 :sceneType=4 :permissionMap="permissionMap" />
+    <examList :type=2 :sceneType=4 :permissionMap="permissionMap" />
 </template>
 
 <script>
@@ -12,10 +12,10 @@ export default {
     data() {
         return {
             permissionMap: {
-                delete: "exam:duikou:mock:delete",
-                edit: "exam:duikou:mock:edit",
-                add: "exam:duikou:mock:add",
-                index: "exam:duikou:mock:index",
+                delete: "sys:duikou4:delete",
+                edit: "sys:duikou4:edit",
+                add: "sys:duikou4:add",
+                index: "sys:duikou4:index",
             }
         }
     },

+ 1 - 1
addons/admin/src/views/exam/index2-5.vue

@@ -1,5 +1,5 @@
 <template>
-    <examList :type=1 :sceneType=5 :permissionMap="permissionMap" />
+    <examList :type=2 :sceneType=5 :permissionMap="permissionMap" />
 </template>
 
 <script>

+ 23 - 0
addons/admin/src/views/exam/index2-6.vue

@@ -0,0 +1,23 @@
+<template>
+    <examList :type=2 :sceneType=6 :permissionMap="permissionMap" />
+</template>
+
+<script>
+import examList from "./examList"
+
+export default {
+    name: "index2-6",
+
+    components: { examList },
+    data() {
+        return {
+            permissionMap: {
+                delete: "exam:duikou:kqcc:delete",
+                edit: "exam:duikou:kqcc:edit",
+                add: "exam:duikou:kqcc:add",
+                index: "exam:duikou:kqcc:index",
+            }
+        }
+    },
+};
+</script>

+ 1 - 1
addons/admin/src/views/exam/index3-1.vue

@@ -1,5 +1,5 @@
 <template>
-    <examList :type=1 :sceneType=1 :permissionMap="permissionMap" />
+    <examList :type=3 :sceneType=1 :permissionMap="permissionMap" />
 </template>
 
 <script>

+ 5 - 5
addons/admin/src/views/exam/index3-2.vue

@@ -1,5 +1,5 @@
 <template>
-    <examList :type=1 :sceneType=2 :permissionMap="permissionMap" />
+    <examList :type=3 :sceneType=2 :permissionMap="permissionMap" />
 </template>
 
 <script>
@@ -12,10 +12,10 @@ export default {
     data() {
         return {
             permissionMap: {
-                delete: "exam:zsb:yearly:delete",
-                edit: "exam:zsb:yearly:edit",
-                add: "exam:zsb:yearly:add",
-                index: "exam:zsb:yearly:index",
+                delete: "sys:duikou2:delete",
+                edit: "sys:duikou2:edit",
+                add: "sys:duikou2:add",
+                index: "sys:duikou2:index",
             }
         }
     },

+ 5 - 5
addons/admin/src/views/exam/index3-3.vue

@@ -1,5 +1,5 @@
 <template>
-    <examList :type=1 :sceneType=3 :permissionMap="permissionMap" />
+    <examList :type=3 :sceneType=3 :permissionMap="permissionMap" />
 </template>
 
 <script>
@@ -12,10 +12,10 @@ export default {
     data() {
         return {
             permissionMap: {
-                delete: "exam:zsb:career:delete",
-                edit: "exam:zsb:career:edit",
-                add: "exam:zsb:career:add",
-                index: "exam:zsb:career:index",
+                delete: "sys:zsb3:delete",
+                edit: "sys:zsb3:edit",
+                add: "sys:zsb3:add",
+                index: "sys:zsb3:index",
             }
         }
     },

+ 5 - 5
addons/admin/src/views/exam/index3-4.vue

@@ -1,5 +1,5 @@
 <template>
-    <examList :type=1 :sceneType=4 :permissionMap="permissionMap" />
+    <examList :type=3 :sceneType=4 :permissionMap="permissionMap" />
 </template>
 
 <script>
@@ -12,10 +12,10 @@ export default {
     data() {
         return {
             permissionMap: {
-                delete: "exam:zsb:mock:delete",
-                edit: "exam:zsb:mock:edit",
-                add: "exam:zsb:mock:add",
-                index: "exam:zsb:mock:index",
+                delete: "sys:zsb4:delete",
+                edit: "sys:zsb4:edit",
+                add: "sys:zsb4:add",
+                index: "sys:zsb4:index",
             }
         }
     },

+ 1 - 1
addons/admin/src/views/exam/index3-5.vue

@@ -1,5 +1,5 @@
 <template>
-    <examList :type=1 :sceneType=5 :permissionMap="permissionMap" />
+    <examList :type=3 :sceneType=5 :permissionMap="permissionMap" />
 </template>
 
 <script>

+ 23 - 0
addons/admin/src/views/exam/index3-6.vue

@@ -0,0 +1,23 @@
+<template>
+    <examList :type=3 :sceneType=6 :permissionMap="permissionMap" />
+</template>
+
+<script>
+import examList from "./examList"
+
+export default {
+    name: "index3-6",
+
+    components: { examList },
+    data() {
+        return {
+            permissionMap: {
+                delete: "exam:zsb:kqcc:delete",
+                edit: "exam:zsb:kqcc:edit",
+                add: "exam:zsb:kqcc:add",
+                index: "exam:zsb:kqcc:index",
+            }
+        }
+    },
+};
+</script>

+ 3 - 1
addons/admin/src/views/subject/subject.vue

@@ -37,7 +37,8 @@
 
             <!-- 操作按钮 -->
             <div class="ele-table-tool ele-table-tool-default">
-                <el-button type="primary" icon="el-icon-plus" @click="openForm()" v-if="permission.includes(permissionMap['edit'])">
+                <el-button type="primary" icon="el-icon-plus" @click="openForm()"
+                    v-if="permission.includes(permissionMap['edit'])">
                     新增科目
                 </el-button>
                 <el-button type="danger" icon="el-icon-delete" @click="batchRemove()"
@@ -104,6 +105,7 @@
 </template>
 
 <script>
+import { mapGetters } from 'vuex'
 export default {
     name: "SubjectPage",
     data() {

+ 4 - 2
addons/admin/src/views/system/article/components/ArticleForm.vue

@@ -21,6 +21,9 @@
                             <el-radio :label="2">不发布</el-radio>
                         </el-radio-group>
                     </el-form-item>
+                    <el-form-item label="排序:" prop="sort">
+                        <el-input v-model="formData.sort" placeholder="请输入排序号" clearable />
+                    </el-form-item>
                 </el-col>
                 <el-col :sm="12">
                     <el-form-item label="内容:" prop="content">
@@ -82,7 +85,6 @@ export default {
         },
     },
     methods: {
-        
         resetForm() {
             this.$refs.formRef && this.$refs.formRef.resetFields()
             this.formData = Object.assign({}, this.defaultData)
@@ -97,7 +99,7 @@ export default {
                         if (res.data.code === 0) {
                             this.$message.success(res.data.msg)
                             this.$emit('success')
-                            this.visible = false
+                            this.$emit('update:visible', false) // ✅ 让父组件把 visible 改成 false
                         } else {
                             this.$message.error(res.data.msg)
                         }

+ 19 - 4
addons/admin/src/views/video/component/VideoForm.vue

@@ -5,6 +5,12 @@
                 <el-form-item label="课程名称" prop="video_name">
                     <el-input v-model="formData.video_name" />
                 </el-form-item>
+                <el-form-item label="课程类型" prop="type">
+                    <el-select v-model="formData.type" placeholder="请选择课程类型">
+                        <el-option v-for="item in COURSE_TYPE_OPTIONS" :key="item.value" :label="item.label"
+                            :value="item.value" />
+                    </el-select>
+                </el-form-item>
 
                 <el-form-item label="分类" prop="category_id">
                     <el-select v-model="formData.category_id" placeholder="请选择分类">
@@ -15,7 +21,12 @@
                 <el-form-item label="封面图">
                     <uploadImage :limit="1" v-model="formData.poster"></uploadImage>
                 </el-form-item>
-
+                <el-form-item label="是否推荐" prop="is_recommend">
+                    <el-radio-group v-model="formData.is_recommend">
+                        <el-radio label="1">是</el-radio>
+                        <el-radio label="2">否</el-radio>
+                    </el-radio-group>
+                </el-form-item>
                 <el-form-item label="描述">
                     <el-input type="textarea" v-model="formData.description" rows="3" />
                 </el-form-item>
@@ -36,6 +47,8 @@
 
 <script>
 import uploadImage from '@/components/uploadImage.vue'
+import { COURSE_TYPE_OPTIONS, getCourseTypeLabel } from "@/constants/course";
+
 export default {
     components: {
         uploadImage
@@ -45,16 +58,18 @@ export default {
         visible: { type: Boolean, default: false },
         isEdit: { type: Boolean, default: false },
         videoId: { type: [Number, null], default: null },
-        categoryOptions: { type: Array, default: () => [] }
+        categoryOptions: { type: Array, default: () => [] },
     },
     data() {
         return {
+            COURSE_TYPE_OPTIONS,
             visibleInternal: this.visible,
-            formData: { id: null, video_name: "", category_id: null, poster: "", description: "", status: 1 },
+            formData: { id: null, video_name: "", category_id: null, poster: "", description: "", status: 1, type: '', is_recommend: 0 },
             loaded: false,
             saving: false,
             formRules: {
                 video_name: [{ required: true, message: "请输入课程名称", trigger: "blur" }],
+                type: [{ required: true, message: "请选择类型", trigger: "change" }],
                 category_id: [{ required: true, message: "请选择分类", trigger: "change" }]
             }
         };
@@ -70,7 +85,7 @@ export default {
                 if (this.isEdit && this.videoId) {
                     this.loadDetail();
                 } else {
-                    this.formData = { id: null, video_name: "", category_id: null, poster: "", description: "", status: 1 };
+                    this.formData = { id: null, video_name: "", category_id: null, poster: "", description: "", status: 1, type: '', is_recommend: 0 };
                     this.loaded = true;
                 }
             }

+ 20 - 0
addons/admin/src/views/video/video.vue

@@ -27,6 +27,13 @@
                             </el-select>
                         </el-form-item>
                     </el-col>
+                    <el-form-item label="课程类型:">
+                        <el-select v-model="table.where.type" placeholder="请选择课程类型" clearable class="ele-fluid">
+                            <el-option v-for="item in COURSE_TYPE_OPTIONS" :key="item.value" :label="item.label"
+                                :value="item.value" />
+                        </el-select>
+                    </el-form-item>
+
                     <el-col :md="6" :sm="12">
                         <div class="ele-form-actions">
                             <el-button type="primary" @click="$refs.table.reload()" icon="el-icon-search"
@@ -63,12 +70,21 @@
                             <el-image :src="row.poster" style="width:60px;height:40px;" fit="cover" />
                         </template>
                     </el-table-column>
+                    <el-table-column prop="type" label="课程类型" width="100"
+                        :formatter="row => getCourseTypeLabel(row.type)" />
                     <el-table-column label="状态" width="80">
                         <template slot-scope="{ row }">
                             <el-switch v-model="row.status" @change="editStatus(row)" :active-value="1"
                                 :inactive-value="2" />
                         </template>
                     </el-table-column>
+                    <el-table-column prop="is_recommend" label="推荐首页" width="100">
+                        <template slot-scope="{ row }">
+                            <el-tag :type="row.is_recommend == 1 ? 'success' : 'info'">
+                                {{ row.is_recommend == "1" ? '是' : '否' }}
+                            </el-tag>
+                        </template>
+                    </el-table-column>
                     <el-table-column label="操作" width="200" fixed="right">
                         <template slot-scope="{ row }">
                             <el-link @click="openForm(row)" icon="el-icon-edit" type="primary" :underline="false"
@@ -110,6 +126,8 @@ import VideoForm from "./component/VideoForm.vue";
 import EditForm from "./component/CoursesForm.vue";
 import { mapGetters } from "vuex";
 import CoursesDialog from "./component/CoursesDialog.vue";
+import { COURSE_TYPE_OPTIONS, getCourseTypeLabel } from "@/constants/course";
+
 
 export default {
     name: "VideoList",
@@ -119,6 +137,7 @@ export default {
     },
     data() {
         return {
+            COURSE_TYPE_OPTIONS, // 常量数组
             table: {
                 url: "/videos/index",  // 后端接口
                 where: { category_id: null, status: null, keyword: "" },
@@ -150,6 +169,7 @@ export default {
         this.loadTableData();  // 加载表格数据
     },
     methods: {
+        getCourseTypeLabel,
         async loadCategories() {
             const res = await this.$http.get("/videosCategory/options");
             if (res.data.code === 0) {

+ 1 - 0
addons/admin/src/views/vip/vip.vue

@@ -140,6 +140,7 @@
 </template>
 
 <script>
+import { mapGetters } from 'vuex'
 export default {
     name: "VipTypePage",
     data() {

+ 0 - 3
app/Models/MemberModel.php

@@ -27,8 +27,6 @@ class MemberModel extends BaseModel
 
 
     /**
-<<<<<<< HEAD
-=======
      * 仓库
      * @return \Illuminate\Database\Eloquent\Relations\BelongsTo
      */
@@ -82,7 +80,6 @@ class MemberModel extends BaseModel
 
 
     /**
->>>>>>> ace46771d25615960bdb7dfbae0035dc322e4072
      * 获取会员信息
      * @param int $id 会员ID
      * @return array|string

+ 2 - 1
app/Services/Common/VideoService.php

@@ -60,7 +60,8 @@ class VideoService extends BaseService
                 'a.sort',
                 'a.create_time',
                 'a.update_time',
-                'a.status'
+                'a.status',
+                'a.is_recommend',
             ])
             ->orderBy('a.sort', 'desc')
             ->orderBy('a.create_time', 'desc');

+ 4 - 3
app/Services/Exam/SubjectService.php

@@ -99,15 +99,16 @@ class SubjectService extends BaseService
         // 用户ID
         $keyword = getter($param, "keyword");
         $sceneType = getter($param, "scene_type");
+        $type = getter($param, "type");
         $datas = $this->model
             ->where('status', '=', 1)
             ->where('mark', '=', 1)
-            ->where(function ($query) use ($keyword, $sceneType) {
+            ->where(function ($query) use ($keyword, $sceneType, $type) {
                 if ($keyword) {
                     $query->where('subject_name', 'like', "%{$keyword}%");
                 }
-                if ($sceneType) {
-                    $query->where('type', '=', $sceneType);
+                if ($type) {
+                    $query->where('type', '=', $type);
                 }
             })
             ->select(['subject_name', 'id'])