diff --git a/ruoyi-ui/src/router/index.js b/ruoyi-ui/src/router/index.js
index 24e46140b..8f67dd7c1 100644
--- a/ruoyi-ui/src/router/index.js
+++ b/ruoyi-ui/src/router/index.js
@@ -151,6 +151,18 @@ export const constantRoutes = [{
             meta: { title: '培训视频详情', icon: '' }
         }]
     },
+    {
+        path: '/benyi_course/theme',
+        component: Layout,
+        hidden: true,
+        children: [{
+            path: 'activity/:id(\\d+)',
+            component: () =>
+                import ('@/views/benyi/theme/activity'),
+            name: 'Theme1',
+            meta: { title: '主题整合内容', icon: '' }
+        }]
+    },
     {
         path: '/job',
         component: Layout,
diff --git a/ruoyi-ui/src/views/benyi/theme/activity.vue b/ruoyi-ui/src/views/benyi/theme/activity.vue
index eb52d007c..40f77218f 100644
--- a/ruoyi-ui/src/views/benyi/theme/activity.vue
+++ b/ruoyi-ui/src/views/benyi/theme/activity.vue
@@ -1,14 +1,15 @@
 <template>
   <div class="app-container">
     <el-form :model="queryParams" ref="queryForm" :inline="true" label-width="68px">
-      <el-form-item label="所属主题" prop="themeid">
-        <el-input
-          v-model="queryParams.themeid"
-          placeholder="请输入所属主题"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
+      <el-form-item label="主题名称" prop="themeid">
+        <el-select v-model="queryParams.themeid" size="small">
+          <el-option
+            v-for="item in themeOptions"
+            :key="item.id"
+            :label="item.name"
+            :value="item.id"
+          />
+        </el-select>
       </el-form-item>
       <el-form-item label="活动名称" prop="name">
         <el-input
@@ -21,80 +22,23 @@
       </el-form-item>
       <el-form-item label="活动形式" prop="type">
         <el-select v-model="queryParams.type" placeholder="请选择活动形式" clearable size="small">
-          <el-option label="请选择字典生成" value />
+          <el-option
+            v-for="dict in typeOptions"
+            :key="dict.dictValue"
+            :label="dict.dictLabel"
+            :value="dict.dictValue"
+          />
         </el-select>
       </el-form-item>
       <el-form-item label="活动领域" prop="field">
-        <el-input
-          v-model="queryParams.field"
-          placeholder="请输入活动领域"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="活动目标" prop="target">
-        <el-input
-          v-model="queryParams.target"
-          placeholder="请输入活动目标"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="活动材料" prop="data">
-        <el-input
-          v-model="queryParams.data"
-          placeholder="请输入活动材料"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="活动过程" prop="process">
-        <el-input
-          v-model="queryParams.process"
-          placeholder="请输入活动过程"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="活动建议" prop="proposal">
-        <el-input
-          v-model="queryParams.proposal"
-          placeholder="请输入活动建议"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="活动反思" prop="reflect">
-        <el-input
-          v-model="queryParams.reflect"
-          placeholder="请输入活动反思"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="活动附录" prop="appendix">
-        <el-input
-          v-model="queryParams.appendix"
-          placeholder="请输入活动附录"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
-      </el-form-item>
-      <el-form-item label="序号" prop="sort">
-        <el-input
-          v-model="queryParams.sort"
-          placeholder="请输入序号"
-          clearable
-          size="small"
-          @keyup.enter.native="handleQuery"
-        />
+        <el-select v-model="queryParams.field" placeholder="请选择活动领域" clearable size="small">
+          <el-option
+            v-for="dict in fieldOptions"
+            :key="dict.dictValue"
+            :label="dict.dictLabel"
+            :value="dict.dictValue"
+          />
+        </el-select>
       </el-form-item>
       <el-form-item>
         <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
@@ -132,30 +76,14 @@
           v-hasPermi="['system:activity:remove']"
         >删除</el-button>
       </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          icon="el-icon-download"
-          size="mini"
-          @click="handleExport"
-          v-hasPermi="['system:activity:export']"
-        >导出</el-button>
-      </el-col>
     </el-row>
 
     <el-table v-loading="loading" :data="activityList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="编号" align="center" prop="id" />
-      <el-table-column label="所属主题" align="center" prop="themeid" />
       <el-table-column label="活动名称" align="center" prop="name" />
-      <el-table-column label="活动形式" align="center" prop="type" />
-      <el-table-column label="活动领域" align="center" prop="field" />
-      <el-table-column label="活动目标" align="center" prop="target" />
-      <el-table-column label="活动材料" align="center" prop="data" />
-      <el-table-column label="活动过程" align="center" prop="process" />
-      <el-table-column label="活动建议" align="center" prop="proposal" />
-      <el-table-column label="活动反思" align="center" prop="reflect" />
-      <el-table-column label="活动附录" align="center" prop="appendix" />
+      <el-table-column label="活动形式" align="center" :formatter="typeFormat" prop="type" />
+      <el-table-column label="活动领域" align="center" :formatter="fieldFormat" prop="field" />
       <el-table-column label="序号" align="center" prop="sort" />
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
         <template slot-scope="scope">
@@ -186,42 +114,61 @@
     />
 
     <!-- 添加或修改主题整合活动对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+    <el-dialog :title="title" :visible.sync="open" width="1024px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="所属主题" prop="themeid">
-          <el-input v-model="form.themeid" placeholder="请输入所属主题" />
+          <el-select v-model="form.themeid" size="small" :disabled="true">
+            <el-option
+              v-for="item in themeOptions"
+              :key="item.id"
+              :label="item.name"
+              :value="item.id"
+            />
+          </el-select>
         </el-form-item>
         <el-form-item label="活动名称" prop="name">
           <el-input v-model="form.name" placeholder="请输入活动名称" />
         </el-form-item>
-        <el-form-item label="活动形式">
-          <el-select v-model="form.type" placeholder="请选择活动形式">
-            <el-option label="请选择字典生成" value />
+        <el-form-item label="活动形式" prop="type">
+          <el-select v-model="form.type" multiple placeholder="请选择活动形式" clearable size="small">
+            <el-option
+              v-for="dict in typeOptions"
+              :key="dict.dictValue"
+              :label="dict.dictLabel"
+              :value="dict.dictValue"
+            />
           </el-select>
         </el-form-item>
         <el-form-item label="活动领域" prop="field">
-          <el-input v-model="form.field" placeholder="请输入活动领域" />
+          <el-select v-model="form.field" multiple placeholder="请选择活动领域" clearable size="small">
+            <el-option
+              v-for="dict in fieldOptions"
+              :key="dict.dictValue"
+              :label="dict.dictLabel"
+              :value="dict.dictValue"
+            />
+          </el-select>
         </el-form-item>
         <el-form-item label="活动目标" prop="target">
-          <el-input v-model="form.target" placeholder="请输入活动目标" />
+          <Editor v-model="form.target" />
         </el-form-item>
         <el-form-item label="活动材料" prop="data">
-          <el-input v-model="form.data" placeholder="请输入活动材料" />
+          <Editor v-model="form.data" />
         </el-form-item>
         <el-form-item label="活动过程" prop="process">
-          <el-input v-model="form.process" placeholder="请输入活动过程" />
+          <Editor v-model="form.process" />
         </el-form-item>
         <el-form-item label="活动建议" prop="proposal">
-          <el-input v-model="form.proposal" placeholder="请输入活动建议" />
+          <Editor v-model="form.proposal" />
         </el-form-item>
         <el-form-item label="活动反思" prop="reflect">
-          <el-input v-model="form.reflect" placeholder="请输入活动反思" />
+          <Editor v-model="form.reflect" />
         </el-form-item>
         <el-form-item label="活动附录" prop="appendix">
-          <el-input v-model="form.appendix" placeholder="请输入活动附录" />
+          <Editor v-model="form.appendix" />
         </el-form-item>
         <el-form-item label="序号" prop="sort">
-          <el-input v-model="form.sort" placeholder="请输入序号" />
+          <el-input-number v-model="form.sort" controls-position="right" :min="0" />
         </el-form-item>
       </el-form>
       <div slot="footer" class="dialog-footer">
@@ -238,12 +185,16 @@ import {
   getActivity,
   delActivity,
   addActivity,
-  updateActivity,
-  exportActivity
+  updateActivity
 } from "@/api/benyi/activity";
+import { listTheme, getTheme } from "@/api/benyi/theme";
+import Editor from "@/components/Editor";
 
 export default {
   name: "Activity",
+  components: {
+    Editor
+  },
   data() {
     return {
       // 遮罩层
@@ -262,6 +213,13 @@ export default {
       title: "",
       // 是否显示弹出层
       open: false,
+      //主题
+      themeOptions: [],
+      defaultTheme: "",
+      //活动形式
+      typeOptions: [],
+      //活动领域
+      fieldOptions: [],
       // 查询参数
       queryParams: {
         pageNum: 1,
@@ -281,13 +239,87 @@ export default {
       // 表单参数
       form: {},
       // 表单校验
-      rules: {}
+      rules: {
+        name: [{ required: true, message: "名称不能为空", trigger: "blur" }],
+        type: [
+          { required: true, message: "活动形式不能为空", trigger: "blur" }
+        ],
+        field: [
+          { required: true, message: "活动领域不能为空", trigger: "blur" }
+        ],
+        target: [
+          { required: true, message: "活动目标不能为空", trigger: "blur" }
+        ],
+        data: [
+          { required: true, message: "活动材料不能为空", trigger: "blur" }
+        ],
+        process: [
+          { required: true, message: "活动过程不能为空", trigger: "blur" }
+        ],
+        proposal: [
+          { required: true, message: "活动建议不能为空", trigger: "blur" }
+        ],
+        reflect: [
+          { required: true, message: "活动反思不能为空", trigger: "blur" }
+        ],
+        sort: [{ required: true, message: "排序序号", trigger: "blur" }]
+      }
     };
   },
   created() {
-    this.getList();
+    const themeId = this.$route.params && this.$route.params.id;
+    this.getTheme(themeId);
+    this.getThemes();
+    this.getDicts("sys_theme_type").then(response => {
+      this.typeOptions = response.data;
+    });
+    this.getDicts("sys_theme_field").then(response => {
+      this.fieldOptions = response.data;
+    });
   },
   methods: {
+    // 活动领域类型--字典状态字典翻译
+    fieldFormat(row, column) {
+      //alert(row.scope.split(';').length);
+      var ilength = row.field.split(";").length;
+      var names = "";
+      for (var i = 0; i < ilength; i++) {
+        names =
+          names +
+          this.selectDictLabel(this.fieldOptions, row.field.split(";")[i]) +
+          ";";
+      }
+      //this.selectDictLabel(this.scopeOptions, row.xnxq);
+      return names;
+    },
+    // 活动形式类型--字典状态字典翻译
+    typeFormat(row, column) {
+      //alert(row.scope.split(';').length);
+      var ilength = row.type.split(";").length;
+      var names = "";
+      for (var i = 0; i < ilength; i++) {
+        names =
+          names +
+          this.selectDictLabel(this.typeOptions, row.type.split(";")[i]) +
+          ";";
+      }
+      //this.selectDictLabel(this.scopeOptions, row.xnxq);
+      return names;
+    },
+    /** 查询主题详细 */
+    getTheme(themeId) {
+      getTheme(themeId).then(response => {
+        this.queryParams.themeid = response.data.id;
+        this.defaultTheme = response.data.id;
+        this.getList();
+      });
+    },
+    //获取主题列表
+    getThemes() {
+      listTheme().then(response => {
+        this.themeOptions = response.rows;
+      });
+    },
     /** 查询主题整合活动列表 */
     getList() {
       this.loading = true;
@@ -316,7 +348,7 @@ export default {
         proposal: undefined,
         reflect: undefined,
         appendix: undefined,
-        sort: undefined,
+        sort: 0,
         createTime: undefined
       };
       this.resetForm("form");
@@ -329,6 +361,7 @@ export default {
     /** 重置按钮操作 */
     resetQuery() {
       this.resetForm("queryForm");
+      this.queryParams.themeid = this.defaultTheme;
       this.handleQuery();
     },
     // 多选框选中数据
@@ -342,6 +375,7 @@ export default {
       this.reset();
       this.open = true;
       this.title = "添加主题整合活动";
+      this.form.themeid = this.queryParams.themeid;
     },
     /** 修改按钮操作 */
     handleUpdate(row) {
@@ -349,6 +383,13 @@ export default {
       const id = row.id || this.ids;
       getActivity(id).then(response => {
         this.form = response.data;
+
+        this.typeOptions = response.types;
+        this.form.type = response.typeIds;
+
+        this.fieldOptions = response.fields;
+        this.form.field = response.fieldIds;
+
         this.open = true;
         this.title = "修改主题整合活动";
       });
@@ -357,6 +398,12 @@ export default {
     submitForm: function() {
       this.$refs["form"].validate(valid => {
         if (valid) {
+          var arrtype = this.form.type;
+          this.form.type = arrtype.join(";");
+
+          var arrfield = this.form.field;
+          this.form.field = arrfield.join(";");
+
           if (this.form.id != undefined) {
             updateActivity(this.form).then(response => {
               if (response.code === 200) {
@@ -397,22 +444,6 @@ export default {
           this.msgSuccess("删除成功");
         })
         .catch(function() {});
-    },
-    /** 导出按钮操作 */
-    handleExport() {
-      const queryParams = this.queryParams;
-      this.$confirm("是否确认导出所有主题整合活动数据项?", "警告", {
-        confirmButtonText: "确定",
-        cancelButtonText: "取消",
-        type: "warning"
-      })
-        .then(function() {
-          return exportActivity(queryParams);
-        })
-        .then(response => {
-          this.download(response.msg);
-        })
-        .catch(function() {});
     }
   }
 };
diff --git a/ruoyi-ui/src/views/benyi/theme/index.vue b/ruoyi-ui/src/views/benyi/theme/index.vue
index 029e451bb..d6c975efc 100644
--- a/ruoyi-ui/src/views/benyi/theme/index.vue
+++ b/ruoyi-ui/src/views/benyi/theme/index.vue
@@ -61,7 +61,16 @@
     <el-table v-loading="loading" :data="themeList" @selection-change="handleSelectionChange">
       <el-table-column type="selection" width="55" align="center" />
       <el-table-column label="编号" align="center" prop="id" />
-      <el-table-column label="主题名称" align="center" prop="name" />
+      <el-table-column label="主题名称" align="center" prop="name" >
+        <template slot-scope="scope">
+          <router-link
+            :to="'/benyi_course/theme/activity/' + scope.row.id"
+            class="link-dayflow"
+          >
+            <span>{{ scope.row.name }}</span>
+          </router-link>
+        </template>
+      </el-table-column>
       <el-table-column label="适用班级" align="center" prop="classid" :formatter="bjtypeFormat" />
       <el-table-column label="序号" align="center" prop="sort" />
       <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByThemeActivityController.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByThemeActivityController.java
index 292b4a879..2b6c78c76 100644
--- a/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByThemeActivityController.java
+++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByThemeActivityController.java
@@ -2,6 +2,7 @@ package com.ruoyi.project.benyi.controller;
 
 import java.util.List;
 
+import com.ruoyi.project.system.service.ISysDictDataService;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -32,6 +33,8 @@ import com.ruoyi.framework.web.page.TableDataInfo;
 public class ByThemeActivityController extends BaseController {
     @Autowired
     private IByThemeActivityService byThemeActivityService;
+    @Autowired
+    private ISysDictDataService dictDataService;
 
     /**
      * 查询主题整合活动列表
@@ -62,7 +65,21 @@ public class ByThemeActivityController extends BaseController {
     @PreAuthorize("@ss.hasPermi('benyi:theme:query')")
     @GetMapping(value = "/{id}")
     public AjaxResult getInfo(@PathVariable("id") Long id) {
-        return AjaxResult.success(byThemeActivityService.selectByThemeActivityById(id));
+        AjaxResult ajax = AjaxResult.success();
+        ByThemeActivity byThemeActivity=byThemeActivityService.selectByThemeActivityById(id);
+        String dictType = "sys_theme_type";
+        ajax.put("types", dictDataService.selectDictDataByType(dictType));
+        String strType = byThemeActivity.getType();
+        ajax.put("typeIds", strType.split(";"));
+
+        String dictField = "sys_theme_field";
+        ajax.put("fields", dictDataService.selectDictDataByType(dictField));
+        String strField = byThemeActivity.getField();
+        ajax.put("fieldIds", strField.split(";"));
+
+
+        ajax.put(AjaxResult.DATA_TAG, byThemeActivity);
+        return ajax;
     }
 
     /**