Sfoglia il codice sorgente

1.课程关联医生 2.医生文章关联课程 3.医生新增医生视频

wjj 4 settimane fa
parent
commit
66625d3c45

+ 9 - 0
src/api/course/userCourse.js

@@ -97,3 +97,12 @@ export function editConfig(data) {
     data: data
   })
 }
+
+
+export function courseListptions() {
+  return request({
+    url: '/course/userCourse/courseList',
+    method: 'get',
+
+  })
+}

+ 8 - 0
src/api/his/doctor.js

@@ -150,3 +150,11 @@ export function getChooseDoctorList(query) {
     params: query
   })
 }
+
+export function doctorOptions() {
+  return request({
+    url: '/his/doctor/options',
+    method: 'get',
+
+  })
+}

+ 24 - 0
src/views/course/userCourse/index.vue

@@ -256,6 +256,16 @@
             />
           </el-select>
         </el-form-item>
+        <el-form-item label="关联医生" prop="tags">
+          <el-select v-model="doctorIds" multiple placeholder="请选择医生" filterable clearable style="width: 90%;">
+            <el-option
+              v-for="dict in doctorOptions"
+              :key="dict.dictValue"
+              :label="dict.dictLabel"
+              :value="dict.dictValue"
+            />
+          </el-select>
+        </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
         <el-button type="primary" @click="submitForm">确 定</el-button>
@@ -369,6 +379,7 @@ import {listBySearch} from "@/api/course/userTalent";
 import userCourseCatalogDetails from '../../components/course/userCourseCatalogDetails.vue';
 import {getAllCourseCategoryList, getCatePidList, getCateListByPid} from "@/api/course/userCourseCategory";
 import {allList} from "@/api/company/company";
+import {doctorOptions} from "@/api/his/doctor";
 
 export default {
   name: "UserCourse",
@@ -400,6 +411,8 @@ export default {
       categoryOptions: [],
       subCategoryOptions: [],
       querySubCateOptions: [],
+      doctorIds: [],
+      doctorOptions: [],
       // 遮罩层
       loading: true,
       // 导出遮罩层
@@ -594,6 +607,9 @@ export default {
     allList().then(response => {
       this.companyOptions = response.rows;
     });
+    doctorOptions().then(res => {
+      this.doctorOptions = res.rows;
+    });
   },
   methods: {
     selectTalent() {
@@ -712,6 +728,7 @@ export default {
       this.tags = [];
       this.subCategoryOptions = []
       this.companyIds = []
+      this.doctorIds = []
       this.resetForm("form");
     },
     /** 搜索按钮操作 */
@@ -773,6 +790,12 @@ export default {
           this.companyIds = []
         }
 
+        if (this.form.doctorIds != null) {
+          this.doctorIds = ((this.form.doctorIds).split(",").map(item => item.trim()).filter(item => item.length > 0))
+        } else {
+          this.doctorIds = []
+        }
+
         listBySearch(this.talentParam).then(response => {
           this.talentList = response.data;
         });
@@ -786,6 +809,7 @@ export default {
         if (valid) {
 
           this.form.companyIds = this.companyIds.toString()
+          this.form.doctorIds = this.doctorIds.toString()
           // 私域课程
           this.form.isPrivate = 1
           if (this.form.courseId != null) {

+ 109 - 200
src/views/course/userCourse/public.vue

@@ -3,42 +3,25 @@
     <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="100px">
       <el-form-item label="课堂分类" prop="cateId">
         <el-select v-model="queryParams.cateId" placeholder="请选择" clearable size="small"
-                   @change="getQuerySubCateList(queryParams.cateId)">
-          <el-option
-            v-for="dict in categoryOptions"
-            :key="dict.dictValue"
-            :label="dict.dictLabel"
-            :value="dict.dictValue"
-          />
+          @change="getQuerySubCateList(queryParams.cateId)">
+          <el-option v-for="dict in categoryOptions" :key="dict.dictValue" :label="dict.dictLabel"
+            :value="dict.dictValue" />
         </el-select>
       </el-form-item>
       <el-form-item label="课堂子分类" prop="subCateId">
         <el-select v-model="queryParams.subCateId" placeholder="请选择" clearable size="small">
-          <el-option
-            v-for="dict in querySubCateOptions"
-            :key="dict.dictValue"
-            :label="dict.dictLabel"
-            :value="dict.dictValue"
-          />
+          <el-option v-for="dict in querySubCateOptions" :key="dict.dictValue" :label="dict.dictLabel"
+            :value="dict.dictValue" />
         </el-select>
       </el-form-item>
       <el-form-item label="课堂名称" prop="courseName">
-        <el-input
-          v-model="queryParams.courseName"
-          placeholder="请输入课堂名称"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
+        <el-input v-model="queryParams.courseName" placeholder="请输入课堂名称" clearable size="small"
+          @keyup.enter.native="handleQuery" />
       </el-form-item>
       <el-form-item label="课堂类型" prop="isPrivate" style="display: none">
         <el-select v-model="queryParams.isPrivate" placeholder="请选择" clearable size="small">
-          <el-option
-            v-for="dict in courseTypeOptions"
-            :key="dict.dictValue"
-            :label="dict.dictLabel"
-            :value="dict.dictValue"
-          />
+          <el-option v-for="dict in courseTypeOptions" :key="dict.dictValue" :label="dict.dictLabel"
+            :value="dict.dictValue" />
         </el-select>
       </el-form-item>
       <el-form-item>
@@ -49,76 +32,33 @@
 
     <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="el-icon-plus"
-          size="mini"
-          @click="handleAdd"
-          v-hasPermi="['course:userCourse:publicAdd']"
-        >新增
+        <el-button type="primary" plain icon="el-icon-plus" size="mini" @click="handleAdd"
+          v-hasPermi="['course:userCourse:publicAdd']">新增
         </el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button
-          type="success"
-          plain
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="single"
-          @click="handleUpdate"
-          v-hasPermi="['course:userCourse:publicEdit']"
-        >修改
+        <el-button type="success" plain icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate"
+          v-hasPermi="['course:userCourse:publicEdit']">修改
         </el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="el-icon-delete"
-          size="mini"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['course:userCourse:publicRemove']"
-        >删除
+        <el-button type="danger" plain icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete"
+          v-hasPermi="['course:userCourse:publicRemove']">删除
         </el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="el-icon-download"
-          size="mini"
-          :loading="exportLoading"
-          @click="handleExport"
-          v-hasPermi="['course:userCourse:publicExport']"
-        >导出
+        <el-button type="warning" plain icon="el-icon-download" size="mini" :loading="exportLoading"
+          @click="handleExport" v-hasPermi="['course:userCourse:publicExport']">导出
         </el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button
-          v-if="queryParams.isShow==0"
-          type="success"
-          plain
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="multiple"
-          @click="putOn"
-          v-hasPermi="['course:userCourse:publicPutOn']"
-        >上架
+        <el-button v-if="queryParams.isShow == 0" type="success" plain icon="el-icon-edit" size="mini"
+          :disabled="multiple" @click="putOn" v-hasPermi="['course:userCourse:publicPutOn']">上架
         </el-button>
       </el-col>
       <el-col :span="1.5">
-        <el-button
-          v-if="queryParams.isShow==1"
-          type="success"
-          plain
-          icon="el-icon-edit"
-          size="mini"
-          :disabled="multiple"
-          @click="pullOff"
-          v-hasPermi="['course:userCourse:publicPutOff']"
-        >下架
+        <el-button v-if="queryParams.isShow == 1" type="success" plain icon="el-icon-edit" size="mini"
+          :disabled="multiple" @click="pullOff" v-hasPermi="['course:userCourse:publicPutOff']">下架
         </el-button>
       </el-col>
       <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
@@ -129,16 +69,12 @@
       <el-tab-pane label="待上架" name="0"></el-tab-pane>
     </el-tabs>
     <el-table height="600" border v-loading="loading" :data="userCourseList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center"/>
-      <el-table-column label="课程ID" align="center" prop="courseId"/>
-      <el-table-column label="所属项目" align="center" prop="projectName"/>
+      <el-table-column type="selection" width="55" align="center" />
+      <el-table-column label="课程ID" align="center" prop="courseId" />
+      <el-table-column label="所属项目" align="center" prop="projectName" />
       <el-table-column label="封面图片" align="center" prop="imgUrl" width="120">
         <template slot-scope="scope">
-          <el-popover
-            placement="right"
-            title=""
-            trigger="hover"
-          >
+          <el-popover placement="right" title="" trigger="hover">
             <img slot="reference" :src="scope.row.imgUrl" width="100">
             <img :src="scope.row.imgUrl" style="max-width: 300px;">
           </el-popover>
@@ -146,68 +82,40 @@
       </el-table-column>
       <el-table-column label="小封面" align="center" prop="secondImg" width="100">
         <template slot-scope="scope">
-          <el-popover
-            placement="right"
-            title=""
-            trigger="hover"
-          >
+          <el-popover placement="right" title="" trigger="hover">
             <img slot="reference" :src="scope.row.secondImg" width="50">
             <img :src="scope.row.secondImg" style="max-width: 100px;">
           </el-popover>
         </template>
       </el-table-column>
-      <el-table-column label="课堂名称" align="center" show-overflow-tooltip prop="courseName"/>
-      <el-table-column label="排序" align="center" prop="sort"/>
-      <el-table-column label="分类名称" align="center" prop="cateName"/>
-      <el-table-column label="子分类名称" align="center" prop="subCateName"/>
-      <el-table-column label="原价" align="center" prop="price"/>
-      <el-table-column label="售价" align="center" prop="sellPrice"/>
-      <el-table-column label="单节积分" align="center" prop="integral"/>
+      <el-table-column label="课堂名称" align="center" show-overflow-tooltip prop="courseName" />
+      <el-table-column label="排序" align="center" prop="sort" />
+      <el-table-column label="分类名称" align="center" prop="cateName" />
+      <el-table-column label="子分类名称" align="center" prop="subCateName" />
+      <el-table-column label="原价" align="center" prop="price" />
+      <el-table-column label="售价" align="center" prop="sellPrice" />
+      <el-table-column label="单节积分" align="center" prop="integral" />
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
-          <el-button
-            size="mini"
-            type="text"
-            @click="handleCatalog(scope.row)"
-            v-hasPermi="['course:userCourse:publicCateManage']"
-          >目录管理
+          <el-button size="mini" type="text" @click="handleCatalog(scope.row)"
+            v-hasPermi="['course:userCourse:publicCateManage']">目录管理
           </el-button>
-          <el-button
-            size="mini"
-            type="text"
-            :icon="scope.row.isShow === 1 ? 'el-icon-close' : 'el-icon-open'"
-            @click="handleShow(scope.row)"
-            v-hasPermi="['course:userCourse:publicUpdateIsShow']"
-          >
+          <el-button size="mini" type="text" :icon="scope.row.isShow === 1 ? 'el-icon-close' : 'el-icon-open'"
+            @click="handleShow(scope.row)" v-hasPermi="['course:userCourse:publicUpdateIsShow']">
             {{ scope.row.isShow === 1 ? '下架' : '上架' }}
           </el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-edit"
-            @click="handleUpdate(scope.row)"
-            v-hasPermi="['course:userCourse:publicEdit']"
-          >修改
+          <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)"
+            v-hasPermi="['course:userCourse:publicEdit']">修改
           </el-button>
-          <el-button
-            size="mini"
-            type="text"
-            icon="el-icon-delete"
-            @click="handleDelete(scope.row)"
-            v-hasPermi="['course:userCourse:publicRemove']"
-          >删除
+          <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)"
+            v-hasPermi="['course:userCourse:publicRemove']">删除
           </el-button>
         </template>
       </el-table-column>
     </el-table>
 
-    <pagination
-      v-show="total>0"
-      :total="total"
-      :page.sync="queryParams.pageNum"
-      :limit.sync="queryParams.pageSize"
-      @pagination="getList"
-    />
+    <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize"
+      @pagination="getList" />
 
     <!-- 添加或修改课程对话框 -->
     <el-dialog :title="title" :visible.sync="open" width="1200px" append-to-body>
@@ -215,43 +123,31 @@
         <el-row>
           <el-form-item label="所属项目" prop="project">
             <el-select v-model="form.project" placeholder="请选择项目" filterable clearable size="small">
-              <el-option
-                v-for="dict in projectOptions"
-                :key="dict.dictValue"
-                :label="dict.dictLabel"
-                :value="dict.dictValue"
-              />
+              <el-option v-for="dict in projectOptions" :key="dict.dictValue" :label="dict.dictLabel"
+                :value="dict.dictValue" />
             </el-select>
           </el-form-item>
         </el-row>
         <el-row>
           <el-col :span="8">
             <el-form-item label="课堂名称" prop="courseName">
-              <el-input v-model="form.courseName" placeholder="请输入课堂名称"/>
+              <el-input v-model="form.courseName" placeholder="请输入课堂名称" />
             </el-form-item>
           </el-col>
           <el-col :span="8">
             <el-form-item label="课堂分类" prop="cateId">
               <el-select v-model="form.cateId" placeholder="请选择" clearable size="small"
-                         @change="getSubCateList(form.cateId)">
-                <el-option
-                  v-for="dict in categoryOptions"
-                  :key="dict.dictValue"
-                  :label="dict.dictLabel"
-                  :value="dict.dictValue"
-                />
+                @change="getSubCateList(form.cateId)">
+                <el-option v-for="dict in categoryOptions" :key="dict.dictValue" :label="dict.dictLabel"
+                  :value="dict.dictValue" />
               </el-select>
             </el-form-item>
           </el-col>
           <el-col :span="8">
             <el-form-item label="课堂子分类" prop="subCateId">
               <el-select v-model="form.subCateId" placeholder="请选择" clearable size="small">
-                <el-option
-                  v-for="dict in subCategoryOptions"
-                  :key="dict.dictValue"
-                  :label="dict.dictLabel"
-                  :value="dict.dictValue"
-                />
+                <el-option v-for="dict in subCategoryOptions" :key="dict.dictValue" :label="dict.dictLabel"
+                  :value="dict.dictValue" />
               </el-select>
             </el-form-item>
           </el-col>
@@ -271,12 +167,9 @@
           </el-col> -->
           <el-col :span="8">
             <el-form-item label="关联达人">
-              <el-select v-model="form.talentId" remote filterable clearable reserve-keyword
-                         placeholder="输入手机号搜索" :remote-method="talentMethod">
-                <el-option
-                  v-for="item in talentList"
-                  :key="item.talentId"
-                  :label="item.nickName +'#'+item.phone"
+              <el-select v-model="form.talentId" remote filterable clearable reserve-keyword placeholder="输入手机号搜索"
+                :remote-method="talentMethod">
+                <el-option v-for="item in talentList" :key="item.talentId" :label="item.nickName + '#' + item.phone"
                   :value="item.talentId">
                   <span style="float: left">{{ item.talentId }}</span>
                   <span style="margin-left: 30px ;">{{ item.nickName }}</span>
@@ -285,30 +178,34 @@
               </el-select>
             </el-form-item>
           </el-col>
+          <el-col :span="8">
+            <el-form-item label="关联医生" prop="tags">
+              <el-select v-model="doctorIds" multiple placeholder="请选择医生" filterable clearable style="width: 90%;">
+                <el-option v-for="dict in doctorOptions" :key="dict.dictValue" :label="dict.dictLabel"
+                  :value="dict.dictValue" />
+              </el-select>
+            </el-form-item>
+          </el-col>
         </el-row>
         <el-row>
           <el-col :span="24">
             <el-form-item label="课堂简介" prop="description">
-              <el-input v-model="form.description" type="textarea" :rows="2" placeholder="请输入课堂简介"/>
+              <el-input v-model="form.description" type="textarea" :rows="2" placeholder="请输入课堂简介" />
             </el-form-item>
           </el-col>
         </el-row>
         <el-form-item label="课程封面" prop="imgUrl">
-          <ImageUpload v-model="form.imgUrl" type="image" :num="10" :width="150" :height="150"/>
+          <ImageUpload v-model="form.imgUrl" type="image" :num="10" :width="150" :height="150" />
         </el-form-item>
         <el-form-item label="小封面" prop="imgUrl">
-          <ImageUpload v-model="form.secondImg" type="image" :num="10" :width="150" :height="150"/>
+          <ImageUpload v-model="form.secondImg" type="image" :num="10" :width="150" :height="150" />
         </el-form-item>
         <el-row>
           <el-col :span="12">
             <el-form-item label="标签" prop="tags">
               <el-select v-model="tags" multiple placeholder="请选择标签" filterable clearable size="small">
-                <el-option
-                  v-for="dict in tagsOptions"
-                  :key="dict.dictValue"
-                  :label="dict.dictLabel"
-                  :value="dict.dictValue"
-                />
+                <el-option v-for="dict in tagsOptions" :key="dict.dictValue" :label="dict.dictLabel"
+                  :value="dict.dictValue" />
               </el-select>
             </el-form-item>
           </el-col>
@@ -413,17 +310,17 @@
         <el-row>
           <el-col :span="8">
             <el-form-item label="课程原价" prop="price">
-              <el-input v-model="form.price" placeholder="请输入课程原价"/>
+              <el-input v-model="form.price" placeholder="请输入课程原价" />
             </el-form-item>
           </el-col>
           <el-col :span="8">
             <el-form-item label="课程售价" prop="sellPrice">
-              <el-input v-model="form.sellPrice" placeholder="请输入课程售价"/>
+              <el-input v-model="form.sellPrice" placeholder="请输入课程售价" />
             </el-form-item>
           </el-col>
           <el-col :span="8">
-            <el-form-item label="单节所需积分" prop="integral" v-if="form.isIntegral==1">
-              <el-input v-model="form.integral" placeholder="请输入单节所需积分"/>
+            <el-form-item label="单节所需积分" prop="integral" v-if="form.isIntegral == 1">
+              <el-input v-model="form.integral" placeholder="请输入单节所需积分" />
             </el-form-item>
           </el-col>
         </el-row>
@@ -433,11 +330,8 @@
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
-    <el-drawer
-      :with-header="false"
-      size="75%"
-      :title="show.title" :visible.sync="show.open" append-to-body>
-      <userCourseCatalogDetails ref="userCourseCatalogDetails"/>
+    <el-drawer :with-header="false" size="75%" :title="show.title" :visible.sync="show.open" append-to-body>
+      <userCourseCatalogDetails ref="userCourseCatalogDetails" />
     </el-drawer>
   </div>
 </template>
@@ -455,15 +349,16 @@ import {
   pullOff
 } from "@/api/course/userCoursePublic";
 
-import {getSelectableRange} from "@/api/qw/sopTemp";
+import { getSelectableRange } from "@/api/qw/sopTemp";
 import Treeselect from "@riophae/vue-treeselect";
 import "@riophae/vue-treeselect/dist/vue-treeselect.css";
 import Editor from '@/components/Editor/wang';
 import ImageUpload from '@/components/ImageUpload/index';
-import {listBySearch} from "@/api/course/userTalent";
+import { listBySearch } from "@/api/course/userTalent";
 import userCourseCatalogDetails from '../../components/course/userCourseCatalogDetails.vue';
-import {getAllCourseCategoryList, getCatePidList, getCateListByPid} from "@/api/course/userCourseCategory";
-import {allList} from "@/api/company/company";
+import { getAllCourseCategoryList, getCatePidList, getCateListByPid } from "@/api/course/userCourseCategory";
+import { allList } from "@/api/company/company";
+import {doctorOptions} from "@/api/his/doctor";
 
 export default {
   name: "UserCoursePublic",
@@ -473,7 +368,7 @@ export default {
   },
   data() {
     return {
-      isRequireTalentId:process.env.VUE_APP_TITLE_INDEX !== '存在文化互联网医院',
+      isRequireTalentId: process.env.VUE_APP_TITLE_INDEX !== '存在文化互联网医院',
       talentParam: {
         phone: null,
         talentId: null
@@ -541,55 +436,58 @@ export default {
       },
       // 表单参数
       form: {},
+
+      doctorIds: [],
+      doctorOptions: [],
       // 表单校验
       rules: {
         courseName: [
-          {required: true, message: "课堂名称不能为空", trigger: "blur"}
+          { required: true, message: "课堂名称不能为空", trigger: "blur" }
         ],
         imgUrl: [
-          {required: true, message: "封面图片不能为空", trigger: "blur"}
+          { required: true, message: "封面图片不能为空", trigger: "blur" }
         ],
         /* talentId: [
           {required: this.isRequireTalentId, message: "关联达人不能为空", trigger: "blur"}
         ], */
         isTui: [
-          {required: true, message: "是否推荐不能为空", trigger: "blur"}
+          { required: true, message: "是否推荐不能为空", trigger: "blur" }
         ],
         isBest: [
-          {required: true, message: "是否精选不能为空", trigger: "blur"}
+          { required: true, message: "是否精选不能为空", trigger: "blur" }
         ],
         isFast: [
-          {required: true, message: "是否允许快进不能为空", trigger: "blur"}
+          { required: true, message: "是否允许快进不能为空", trigger: "blur" }
         ],
         isAutoPlay: [
-          {required: true, message: "是否自动播放不能为空", trigger: "blur"}
+          { required: true, message: "是否自动播放不能为空", trigger: "blur" }
         ],
         sort: [
-          {required: true, message: "排序不能为空", trigger: "blur"}
+          { required: true, message: "排序不能为空", trigger: "blur" }
         ],
         views: [
-          {required: true, message: "播放量不能为空", trigger: "blur"}
+          { required: true, message: "播放量不能为空", trigger: "blur" }
         ],
         likes: [
-          {required: true, message: "点赞数不能为空", trigger: "blur"}
+          { required: true, message: "点赞数不能为空", trigger: "blur" }
         ],
         favoriteNum: [
-          {required: true, message: "收藏数不能为空", trigger: "blur"}
+          { required: true, message: "收藏数不能为空", trigger: "blur" }
         ],
         shares: [
-          {required: true, message: "分享数不能为空", trigger: "blur"}
+          { required: true, message: "分享数不能为空", trigger: "blur" }
         ],
         isIntegral: [
-          {required: true, message: "是否允许积分兑换不能为空", trigger: "blur"}
+          { required: true, message: "是否允许积分兑换不能为空", trigger: "blur" }
         ],
         isShow: [
-          {required: true, message: "上架状态不能为空", trigger: "blur"}
+          { required: true, message: "上架状态不能为空", trigger: "blur" }
         ],
         isPrivate: [
-          {required: true, message: "公私域不能为空", trigger: "blur"}
+          { required: true, message: "公私域不能为空", trigger: "blur" }
         ],
         integral: [
-          {required: true, message: "小节兑换积分不能为空", trigger: "blur"}
+          { required: true, message: "小节兑换积分不能为空", trigger: "blur" }
         ],
       }
     };
@@ -626,6 +524,9 @@ export default {
     allList().then(response => {
       this.companyOptions = response.rows;
     });
+    doctorOptions().then(res => {
+      this.doctorOptions = res.rows;
+    });
   },
   methods: {
     selectTalent() {
@@ -662,7 +563,7 @@ export default {
     },
     handleShow(row) {
       var isShowValue = row.isShow === 0 ? 1 : 0;
-      var course = {courseId: row.courseId, isShow: isShowValue};
+      var course = { courseId: row.courseId, isShow: isShowValue };
       updateIsShow(course).then(response => {
         this.msgSuccess("修改成功");
         this.getList();
@@ -747,6 +648,7 @@ export default {
       };
       this.tags = [];
       this.subCategoryOptions = []
+      this.doctorIds = []
       this.resetForm("form");
     },
     /** 搜索按钮操作 */
@@ -806,6 +708,12 @@ export default {
           this.companyIds = []
         }
 
+        if (this.form.doctorIds != null) {
+          this.doctorIds = ((this.form.doctorIds).split(",").map(item => item.trim()).filter(item => item.length > 0))
+        } else {
+          this.doctorIds = []
+        }
+
         listBySearch(this.talentParam).then(response => {
           this.talentList = response.data;
         });
@@ -821,6 +729,7 @@ export default {
             return;
         } */
         if (valid) {
+          this.form.doctorIds = this.doctorIds.toString()
           if (this.tags.length > 0) {
             this.form.tags = this.tags.toString();
           } else {

+ 49 - 1
src/views/his/doctor/type1.vue

@@ -415,6 +415,23 @@
           <el-input-number v-model="form.sort"   label="排序"></el-input-number>
         </el-form-item>
 
+        <el-form-item label="视频地址" prop="videoUrl">
+         <div>
+             <el-upload
+               ref="upload"
+               class="upload-demo"
+               :action="uploadUrl"
+               :on-success="handleSuccess"
+               :before-upload="beforeUpload"
+               :limit="1"
+               :accept="videoAccept"
+             >
+            <el-button size="small" type="primary">点击上传视频</el-button>
+            </el-upload>
+            <video v-if="form.videoUrl" :src="form.videoUrl" controls style="max-width: 400px; max-height: 400px;"></video>
+         </div>
+        </el-form-item>
+
         <el-form-item label="简介" prop="introduction">
           <el-input type="textarea" :rows="4" v-model="form.introduction" placeholder="请输入简介" maxlength="200"/>
         </el-form-item>
@@ -789,6 +806,9 @@ export default {
   components: { doctorDetails,doctorinquiryDetails,ImageUpload },
   data() {
     return {
+      videoUrl: "",
+      videoAccept:"video/*",
+      baseUrl: process.env.VUE_APP_BASE_API,
       // 医生组别字典
       groupCodeOptions: [],
       doctorName: {name:"1"},
@@ -1010,6 +1030,33 @@ export default {
       this.getAllAiRoleList();
   },
   methods: {
+
+    handleSuccess(response, file) {
+          // 上传成功后的回调函数
+          this.myloading.close();
+          this.form.videoUrl = response.url;
+          console.log("sss",this.form)
+          this.$refs.upload.clearFiles();
+        },
+    beforeUpload(file) {
+      // 上传前的钩子函数,可以在这里对文件进行处理
+      // 返回 false 则取消上传
+
+      // 例如限制文件大小
+      const isLt2M = file.size / 1024 / 1024 < 200;
+      if (!isLt2M) {
+        this.$message.error('上传视频文件大小不能超过 200MB!');
+        return false;
+      }
+      this.myloading = this.$loading({
+        lock: true,
+        text: '上传中',
+        spinner: 'el-icon-loading',
+        background: 'rgba(0, 0, 0, 0.7)'
+      });
+
+    },
+
      getlistdocuser(){
          listdocuser(this.doctorName).then(response => {
            this.docuser=response.rows;
@@ -1290,7 +1337,8 @@ export default {
         isSelf:null,
         sort:null,
         isShow:null,
-        groupCode: null
+        groupCode: null,
+        videoUrl:null,
       };
       this.resetForm("form");
     },

+ 19 - 0
src/views/his/doctorArticle/index.vue

@@ -184,6 +184,17 @@
           </el-select>
         </el-form-item>
 
+        <el-form-item label="关联课程" prop="tags">
+          <el-select v-model="form.courseId"  placeholder="请选择课程" filterable clearable style="width: 90%;">
+            <el-option
+              v-for="dict in courseOptions"
+              :key="dict.courseId"
+              :label="dict.courseName"
+              :value="dict.courseId"
+            />
+          </el-select>
+        </el-form-item>
+
         <el-form-item label="封面图" prop="imageUrl">
            <el-upload
                       v-model="form.imageUrl"
@@ -256,11 +267,16 @@ import {listdocuser, listArticle, getArticle, delArticle, addArticle, updateArti
 import articleDetails from '../../components/his/doctorArticleDetails.vue';
 import { getAllArticleCateList} from "@/api/his/doctorArticleCate";
 import Editor from '@/components/Editor/wang';
+import {courseListptions} from "@/api/course/userCourse";
 export default {
   name: "Article",
   components: { articleDetails,Editor },
   data() {
     return {
+
+      courseOptions:[],
+
+
       videoUrl: "",
       videoAccept:"video/*",
       uploadUrl:process.env.VUE_APP_BASE_API+"/common/uploadOSS",
@@ -339,6 +355,9 @@ export default {
     this.getDicts("sys_doctor_article_status").then(response => {
       this.articleStatus = response.data;
     });
+    courseListptions().then(res => {
+      this.courseOptions = res.rows;
+    });
   },
   methods: {
     handleSuccess(response, file) {