Переглянути джерело

LY 周会定时任务修改

ly 1 рік тому
батько
коміт
0fca356cc2

+ 1 - 1
master/src/main/java/com/ruoyi/common/sendEmail/IMailService.java

@@ -18,7 +18,7 @@ public interface IMailService {
      * @param content 内容
      */
     public void sendHtmlMail(String to, String subject, String content);
-
+    public void sendHtmlMail(String[] to, String subject, String content);
     /**
      * 发送HTML邮件
      *

+ 31 - 0
master/src/main/java/com/ruoyi/common/sendEmail/IMailServiceImpl.java

@@ -100,6 +100,37 @@ public class IMailServiceImpl implements IMailService {
         }
     }
 
+    /**
+     * html邮件
+     *
+     * @param to      收件人
+     * @param subject 主题
+     * @param content 内容
+     */
+    @Override
+    public void sendHtmlMail(String[] to, String subject, String content) {
+        //获取MimeMessage对象
+        MimeMessage message = mailSender.createMimeMessage();
+        MimeMessageHelper messageHelper;
+        try {
+            messageHelper = new MimeMessageHelper(message, true);
+            //邮件发送人
+            messageHelper.setFrom(from);
+            //邮件接收人
+            messageHelper.setTo(to);
+            //邮件主题
+            message.setSubject(subject);
+            //邮件内容,html格式
+            messageHelper.setText(content, true);
+            //发送
+            mailSender.send(message);
+            //日志信息
+            logger.info("邮件已经发送。");
+        } catch (Exception e) {
+            logger.error("发送邮件时发生异常!", e);
+        }
+    }
+
     /**
      * html邮件
      *

+ 116 - 0
master/src/main/java/com/ruoyi/framework/task/confRoom/ConfInfoTask.java

@@ -0,0 +1,116 @@
+package com.ruoyi.framework.task.confRoom;
+
+import com.ruoyi.common.sendEmail.IMailService;
+import com.ruoyi.framework.config.RuoYiConfig;
+import com.ruoyi.framework.web.controller.BaseController;
+import com.ruoyi.project.plant.domain.TConfInfo;
+import com.ruoyi.project.plant.domain.TConfRoom;
+import com.ruoyi.project.plant.domain.TMtActionlist;
+import com.ruoyi.project.plant.domain.TMtKeymaintenance;
+import com.ruoyi.project.plant.mapper.TConfInfoMapper;
+import com.ruoyi.project.plant.mapper.TConfRoomMapper;
+import com.ruoyi.project.plant.service.*;
+import com.ruoyi.project.system.domain.SysUser;
+import com.ruoyi.project.system.service.ISysUserService;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
+import java.time.*;
+import java.time.temporal.TemporalAdjusters;
+import java.util.*;
+
+/**
+ * 定时任务调度测试
+ *
+ * @author ruoyi
+ */
+@Component("confInfoTask")
+public class ConfInfoTask extends BaseController
+{
+    @Autowired
+    private ITConfInfoService tConfInfoService;
+    @Autowired
+    private ITConfRoomService tConfRoomService;
+    @Resource
+    private TConfRoomMapper tConfRoomMapper;
+    @Resource
+    private TConfInfoMapper tConfInfoMapper;
+
+    public void confInfoTask(Long RoomId)
+    {
+        TConfRoom room = tConfRoomMapper.selectTConfRoomById(RoomId);
+        ;
+        //周一
+        TConfInfo week1 = new TConfInfo();
+        week1.setRoomName(room.getRoomName());
+        week1.setRoomId(RoomId);
+        week1.setBeginDatetime(getTime(DayOfWeek.MONDAY,8,30));
+        week1.setEndDatetime(getTime(DayOfWeek.MONDAY,9,0));
+        week1.setSubject("早调会");
+        checktime(week1);
+        //周2
+        TConfInfo week2 = new TConfInfo();
+        week2.setRoomName(room.getRoomName());
+        week2.setRoomId(RoomId);
+        week2.setBeginDatetime(getTime(DayOfWeek.TUESDAY,8,30));
+        week2.setEndDatetime(getTime(DayOfWeek.TUESDAY,9,0));
+        week2.setSubject("早调会");
+        checktime(week2);
+        //周一
+        TConfInfo week3 = new TConfInfo();
+        week3.setRoomName(room.getRoomName());
+        week3.setRoomId(RoomId);
+        week3.setBeginDatetime(getTime(DayOfWeek.WEDNESDAY,8,30));
+        week3.setEndDatetime(getTime(DayOfWeek.WEDNESDAY,9,0));
+        week3.setSubject("早调会");
+        checktime(week3);
+        //周一
+        TConfInfo week4 = new TConfInfo();
+        week4.setRoomName(room.getRoomName());
+        week4.setRoomId(RoomId);
+        week4.setBeginDatetime(getTime(DayOfWeek.THURSDAY,8,30));
+        week4.setEndDatetime(getTime(DayOfWeek.THURSDAY,9,0));
+        week4.setSubject("早调会");
+        checktime(week4);
+        //周一
+        TConfInfo week5 = new TConfInfo();
+        week5.setRoomName(room.getRoomName());
+        week5.setRoomId(RoomId);
+        week5.setBeginDatetime(getTime(DayOfWeek.FRIDAY,8,30));
+        week5.setEndDatetime(getTime(DayOfWeek.FRIDAY,9,0));
+        week5.setSubject("早调会");
+        checktime(week5);
+
+    }
+    public void checktime(TConfInfo tConfInfo) {
+        List<TConfInfo> list = tConfInfoMapper.selectTConfInfoByTime(tConfInfo);
+        if (list.size() > 0) {
+
+        }else {
+            tConfInfoMapper.insertTConfInfo(tConfInfo);
+        }
+
+    };
+
+
+    private Date getTime(DayOfWeek monday, int h, int m) {
+        // 获取当前时间
+        LocalDateTime now = LocalDateTime.now();
+
+        // 计算下周一的日期
+        LocalDateTime nextMonday = now.with(TemporalAdjusters.next(monday));
+
+        // 获取下周一的早上8点半
+        LocalDateTime localDateTime = nextMonday.with(LocalTime.of(h, m));
+
+        Date date = Date.from(localDateTime.atZone(ZoneId.systemDefault()).toInstant());
+
+        return date;
+    }
+
+
+
+}

+ 173 - 1
master/src/main/java/com/ruoyi/framework/task/meeting/WeekMeetingTask.java

@@ -1,8 +1,26 @@
 package com.ruoyi.framework.task.meeting;
 
+import com.alibaba.fastjson.JSON;
+import com.ruoyi.common.sendEmail.IMailService;
+import com.ruoyi.framework.config.RuoYiConfig;
 import com.ruoyi.framework.web.controller.BaseController;
+import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.project.plant.domain.TMtActionlist;
+import com.ruoyi.project.plant.domain.TMtKeymaintenance;
+import com.ruoyi.project.plant.domain.TMtMessageattention;
+import com.ruoyi.project.plant.domain.TMtdEmail;
+import com.ruoyi.project.plant.service.ITMtActionlistService;
+import com.ruoyi.project.plant.service.ITMtKeymaintenanceService;
+import com.ruoyi.project.plant.service.ITMtMessageattentionService;
+import com.ruoyi.project.system.domain.SysUser;
+import com.ruoyi.project.system.service.ISysUserService;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.text.SimpleDateFormat;
+import java.util.*;
+
 /**
  * 定时任务调度测试
  *
@@ -11,9 +29,163 @@ import org.springframework.stereotype.Component;
 @Component("weekMeetingTask")
 public class WeekMeetingTask extends BaseController
 {
-    public void TestTask()
+    @Autowired
+    private ITMtActionlistService tMtActionlistService;
+    @Autowired
+    private ITMtKeymaintenanceService tMtKeymaintenanceService;
+    @Autowired
+    private ITMtMessageattentionService tMtMessageattentionService;
+    @Autowired
+    private ISysUserService sysUserService;
+    //系统基础配置
+    @Autowired
+    private RuoYiConfig ruoyiConfig;
+
+    @Autowired
+    private IMailService mailService;
+
+    public void weekMeetingTask()
     {
+        //会议执行
+        TMtActionlist actionParam = new TMtActionlist();
+        actionParam.setIsHis(0l);
+        List<TMtActionlist> actionlists = tMtActionlistService.selectTMtActionlistList(actionParam);
+        for (TMtActionlist t: actionlists
+             ) {
+            if ( "1".equals(t.getIsPerson()) && !"3".equals(t.getStatus()) ) {
+                long now = System.currentTimeMillis();
+                long diff = t.getDeadline().getTime() - now;
+                long nd = 1000 * 24 * 60 * 60;
+                long day = diff / nd;
+                // 60天到53天
+                if (day > 53 && day <= 60) {
+                    sendContent(t);
+                }else if (day <= 30) {
+                    sendContent(t);
+                }
+            }
+        }
+        //关键维修
+        TMtKeymaintenance keyParam = new TMtKeymaintenance();
+        keyParam.setIsHis(0l);
+        List<TMtKeymaintenance> keylists = tMtKeymaintenanceService.selectTMtKeymaintenanceList(keyParam);
+        for (TMtKeymaintenance t: keylists
+        ) {
+            if ( "1".equals(t.getIsPerson()) && !"3".equals(t.getStatus()) ) {
+                long now = System.currentTimeMillis();
+                long diff = t.getDeadline().getTime() - now;
+                long nd = 1000 * 24 * 60 * 60;
+                long day = diff / nd;
+                // 60天到53天
+                if (day > 53 && day <= 60) {
+                    sendContent(t);
+                }else if (day <= 30) {
+                    sendContent(t);
+                }
+            }
+        }
+
+        //信息
+//        TMtMessageattention meParam = new TMtMessageattention();
+//        meParam.setIsHis(0l);
+//        List<TMtMessageattention> melists = tMtMessageattentionService.selectTMtMessageattentionList(meParam);
+//        for (TMtMessageattention t: melists
+//        ) {
+//            if ( "1".equals(t.getIsPerson()) && !"3".equals(t.getStatus()) ) {
+//                long now = System.currentTimeMillis();
+//                long diff = t.getDeadline().getTime() - now;
+//                long nd = 1000 * 24 * 60 * 60;
+//                long day = diff / nd;
+//                // 60天到53天
+//                if (day > 53 && day <= 60) {
+//                    sendContent(t);
+//                }else if (day <= 30) {
+//                    sendContent(t);
+//                }
+//            }
+//        }
+
+    }
+
+    private void sendContent(TMtKeymaintenance t) {
+    }
+
+    private void sendContent(TMtActionlist t) {
+        ArrayList<String> emailList = new ArrayList<>();
+        if (StringUtils.isNotEmpty(t.getResponsible())) {
+            String[] respArr = t.getResponsible().split(",");
+            for (int i = 0; i < respArr.length; i++) {
+                SysUser user = sysUserService.selectUserByStaffId(respArr[i]);
+                if (user != null) {
+                   emailList.add(user.getEmail());
+                }
+            }
+        }
+        Map<String,String> action = new HashMap<>();
+
+        String pattern = "yyyy年MM月dd日"; // 定义日期格式化模板
+        SimpleDateFormat dateFormat = new SimpleDateFormat(pattern); // 创建日期格式化器
+        action.put("action",t.getAction());
+        action.put("deadline",dateFormat.format(t.getDeadline()));
+        logger.info(JSON.toJSONString(action));
+        logger.info(JSON.toJSONString(emailList));
+        sendMail(action ,emailList );
+    }
+
+    private void sendMail(Map<String, String> action, ArrayList<String> emailList) {
+        try {
+            //写html开始内容
+            String start = "<!DOCTYPE html><html><head><meta charset=\"utf-8\"><title></title></head><body><div style=\"background-color:#ECECEC; padding: 35px;\">" +
+                    "<table cellpadding=\"0\" align=\"center\"" +
+                    "style=\"width: 600px; margin: 0px auto; text-align: left; position: relative; border-top-left-radius: 5px; border-top-right-radius: 5px; border-bottom-right-radius: 5px; border-bottom-left-radius: 5px; font-size: 14px; font-family:微软雅黑, 黑体; line-height: 1.5; box-shadow: rgb(153, 153, 153) 0px 0px 5px; border-collapse: collapse; background-position: initial initial; background-repeat: initial initial;background:#fff;\">" +
+                    "<tbody><tr><th valign=\"middle\" style=\"height: 25px; line-height: 25px; padding: 15px 35px; border-bottom-width: 1px; border-bottom-style: solid; border-bottom-color: #42a3d3; background-color: #49bcff; border-top-left-radius: 5px; border-top-right-radius: 5px; border-bottom-right-radius: 0px; border-bottom-left-radius: 0px;\">" +
+                    "<font face=\"微软雅黑\" size=\"5\" style=\"color: rgb(255, 255, 255); \">化工装置管理系统 </font><font face=\"微软雅黑\" size=\"3\" style=\"color: rgb(255, 255, 255); \">Chemical Plant Management System(CPMS)</font></th></tr>";
+            //写html结尾内容
+            String end = "</tbody></table></div></body></html>";
+            String username = "";
 
+//        email = "735032128@qq.com";
+            //表html中间内容
+            String prime = "";
+            String firstcenter = "<tr><td><div style=\"padding:25px 35px 40px; background-color:#fff;\"><h2 style=\"margin: 5px 0px; \">" +
+                    "<font color=\"#333333\" style=\"line-height: 20px; \"><font style=\"line-height: 22px; \" size=\"4\">" +
+                    "亲爱的 CPMS用户</font><br><font style=\"line-height: 22px; \" size=\"4\">" +
+                    "<p>您有一条周会议待完成:<br>" +
+                    "行动:<b>action</b><br>" +
+                    "截止日期:<b>deadline</b><br>" +
+                    "请前往<a href=\"requestJumpPath/plant/meeting/meeting\">周历史会议</a>查看或下载邮件附件。<br>" +
+                    "<p align=\"right\">date</p>" +
+                    "<div style=\"width:700px;margin:0 auto;\">" +
+                    "<div style=\"padding:10px 10px 0;border-top:1px solid #ccc;color:#747474;margin-bottom:20px;line-height:1.3em;font-size:12px;\">" +
+                    "<p>此为系统邮件,请勿回复<br>This e-Mail is an automatic reminder sent by CPMS, please do not reply</p>" +
+                    "</div></div></div></td></tr>";
 
+            String pattern = "yyyy年MM月dd日"; // 定义日期格式化模板
+
+            SimpleDateFormat dateFormat = new SimpleDateFormat(pattern); // 创建日期格式化器
+
+
+
+            String one = firstcenter.replaceFirst("action", action.get("action"));
+            String two = one.replace("deadline", action.get("deadline"));
+            String three = two.replace("requestJumpPath", this.ruoyiConfig.getRequestJumpPath());
+            String result = three.replaceFirst("date", dateFormat.format(new Date()));
+            prime = prime + result;
+            //拼接html
+            String html = start + prime + end;
+            String[] email = emailList.toArray(new String[emailList.size()]);
+            mailService.sendHtmlMail(email, "周会议预警:您有一条周会议行动项待完成", html);
+
+        } catch (Exception e) {
+
+            logger.error("e" , e);
+        }finally {
+
+        }
     }
+
+
+
+
+
 }

+ 22 - 0
master/src/main/java/com/ruoyi/project/plant/controller/TConfInfoController.java

@@ -3,6 +3,8 @@ package com.ruoyi.project.plant.controller;
 import java.util.List;
 
 import com.ruoyi.project.plant.domain.TConfRoom;
+import com.ruoyi.project.plant.mapper.TConfInfoMapper;
+import com.ruoyi.project.plant.mapper.TConfRoomMapper;
 import com.ruoyi.project.plant.service.ITConfRoomService;
 import org.springframework.security.access.prepost.PreAuthorize;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -23,6 +25,8 @@ import com.ruoyi.framework.web.domain.AjaxResult;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.framework.web.page.TableDataInfo;
 
+import javax.annotation.Resource;
+
 /**
  * 会议预约信息Controller
  *
@@ -37,6 +41,11 @@ public class TConfInfoController extends BaseController
     private ITConfInfoService tConfInfoService;
     @Autowired
     private ITConfRoomService tConfRoomService;
+    @Resource
+    private TConfRoomMapper tConfRoomMapper;
+    @Resource
+    private TConfInfoMapper tConfInfoMapper;
+
     /**
      * 查询会议预约信息列表
      */
@@ -80,6 +89,11 @@ public class TConfInfoController extends BaseController
     @PostMapping
     public AjaxResult add(@RequestBody TConfInfo tConfInfo)
     {
+        //判断会议时间是否合法
+        if (!this.checktime(tConfInfo)) {
+            return AjaxResult.error("会议时间冲突");
+        }
+
         TConfRoom room = tConfRoomService.selectTConfRoomById(tConfInfo.getRoomId());
         tConfInfo.setRoomName(room.getRoomName());
         return toAjax(tConfInfoService.insertTConfInfo(tConfInfo));
@@ -108,4 +122,12 @@ public class TConfInfoController extends BaseController
     {
         return toAjax(tConfInfoService.deleteTConfInfoByIds(ids));
     }
+
+    public boolean checktime(TConfInfo tConfInfo) {
+        List<TConfInfo> list = tConfInfoMapper.selectTConfInfoByTime(tConfInfo);
+        if (list.size() > 0) {
+            return false;
+        }
+        return true;
+    };
 }

+ 2 - 0
master/src/main/java/com/ruoyi/project/plant/mapper/TConfInfoMapper.java

@@ -60,4 +60,6 @@ public interface TConfInfoMapper
      * @return 结果
      */
     public int deleteTConfInfoByIds(Long[] ids);
+
+    List<TConfInfo> selectTConfInfoByTime(TConfInfo tConfInfo);
 }

+ 8 - 1
master/src/main/java/com/ruoyi/project/sems/controller/TMeasureRecordController.java

@@ -132,6 +132,7 @@ public class TMeasureRecordController extends BaseController {
         TMeasureRecord t = new TMeasureRecord();
         t.setMeasureId(id);
         List<TMeasureRecord> list = tMeasureRecordService.selectTMeasureRecordList(t);
+        logger.info("查询数量" + list.size());
         if (list != null) {
             if (list.size() > 1 ) {
                 logger.info(JSON.toJSONString(list));
@@ -191,10 +192,13 @@ public class TMeasureRecordController extends BaseController {
                     Calendar calendar = new GregorianCalendar();
                     calendar.setTime(r1.getMeasureDate());
                     calendar.add(calendar.DATE, dayCycel);
+                    logger.info("计算下次侧厚日期" , calendar.getTime());
                     thickness.setNextWarnDate(calendar.getTime());
+                    thickness.setRecorder(r1.getRecorder());
                 }
             }catch (Exception e) {
                 logger.error("计算下次侧厚日期出错" , JSON.toJSONString(e));
+                e.printStackTrace();
             }
         }
         thickness.setIsSend(0);
@@ -281,19 +285,22 @@ public class TMeasureRecordController extends BaseController {
             try {
                 //保存测厚记录
                 Long id = this.tMeasureThicknessMapper.selectByRecord(t);
-                logger.info(id.toString());
                 t.setMeasureId(id.toString());
                 this.tMeasureRecordService.deleteTMeasureRecordByDate(t);
                 this.tMeasureRecordService.insertTMeasureRecord(t);
                 try {
+                    logger.info("更新速率id:",id);
+
                     this.updateMeasure(id + "");
                 }catch (Exception e) {
                     logger.error("更新速率错误e:" + e);
+                    e.printStackTrace();
                 }
                 successNumber++;
             } catch (Exception e) {
                 failNumber++;
                 logger.error("e:" + e);
+                e.printStackTrace();
                 failRow.add(failNum + 1);
             }
         }

+ 12 - 0
master/src/main/resources/mybatis/plant/TConfInfoMapper.xml

@@ -52,6 +52,18 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         ${params.dataScope}
     </select>
 
+    <select id="selectTConfInfoByTime" parameterType="TConfInfo" resultMap="TConfInfoResult">
+        select d.id, d.room_id, d.subject, d.convener_id, d.convener_name, d.room_name, d.participants_list, d.begin_datetime, d.end_datetime, d.color, d.is_allday, d.gen_frequency, d.gen_month, d.gen_day, d.gen_date, d.gen_datetime, d.del_flag, d.creater_code, d.createdate, d.updater_code, d.updatedate, d.dept_id, d.remarks from t_conf_info d
+        <where>
+            d.room_id = #{roomId}
+            <if test="beginDatetime != null "> and  end_datetime > #{beginDatetime}</if>
+            <if test="endDatetime != null "> and #{endDatetime} > begin_datetime </if>
+            and d.del_flag = 0
+        </where>
+    </select>
+
+
+
     <select id="selectTConfInfoById" parameterType="Long" resultMap="TConfInfoResult">
         <include refid="selectTConfInfoVo"/>
         where id = #{id}

+ 3 - 2
ui/src/views/components/meeting/actionlist.vue

@@ -59,6 +59,7 @@
           icon="el-icon-plus"
           size="mini"
           @click="handleAdd"
+          v-hasPermi="['plant:meeting:add']"
         >{{ $t('新增') }}</el-button>
       </el-col>
       <el-col :span="1.5">
@@ -123,14 +124,14 @@
             type="text"
             icon="el-icon-edit"
             @click="handleUpdate(scope.row)"
-            v-if="checkPermi(['plant:meeting:edit']) || getStaffId(scope.row.responsible,scope.row.createrCode)"
+            v-if="checkPermi(['plant:meeting:edit']) "
           >{{ $t('修改') }}</el-button>
           <el-button
             size="mini"
             type="text"
             icon="el-icon-delete"
             @click="handleDelete(scope.row)"
-            v-if="checkPermi(['plant:meeting:remove']) || getStaffId(scope.row.responsible,scope.row.createrCode)"
+            v-if="checkPermi(['plant:meeting:remove'])"
           >{{ $t('删除') }}</el-button>
         </template>
       </el-table-column>

+ 2 - 1
ui/src/views/components/meeting/messageattention.vue

@@ -43,6 +43,7 @@
           icon="el-icon-plus"
           size="mini"
           @click="handleAdd"
+          v-hasPermi="['plant:meeting:add']"
         >{{ $t('新增') }}</el-button>
       </el-col>
       <el-col :span="1.5">
@@ -94,7 +95,7 @@
             type="text"
             icon="el-icon-edit"
             @click="handleUpdate(scope.row)"
-            v-if="checkPermi(['plant:meeting:edit']) || getStaffId(scope.row.responsible,scope.row.createrCode)"
+            v-if="checkPermi(['plant:meeting:edit'])"
           >{{ $t('修改') }}</el-button>
           <el-button
             size="mini"

+ 92 - 74
ui/src/views/plant/confInfo/index.vue

@@ -1,5 +1,6 @@
 <template>
-  <div class="app-container conference">
+  <div class="app-container ">
+    <div id="full-calendar" class="conference">
     <div class='conference-right'>
       <FullCalendar
         ref="fullCalendar"
@@ -30,7 +31,7 @@
     </div>
 
     <!-- 添加或修改会议预约信息对话框 -->
-    <el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
+    <el-dialog :title="title" :visible.sync="open" width="700px" append-to-body>
       <el-form ref="form" :model="form" :rules="rules" label-width="80px">
         <el-form-item label="会议主题" prop="subject">
           <el-input v-model="form.subject" placeholder="请输入会议主题" />
@@ -112,6 +113,7 @@
         <el-button @click="cancel">取 消</el-button>
       </div>
     </el-dialog>
+    </div>
   </div>
 </template>
 
@@ -390,7 +392,20 @@ export default {
       // 表单参数
       form: {},
       // 表单校验
-      rules: {}
+      rules: {
+        roomId: [
+          { required: true, message: "会议室不能为空", trigger: "blur" }
+        ],
+        subject: [
+          { required: true, message: "会议主题不能为空", trigger: "blur" }
+        ],
+        beginDatetime: [
+          { required: true, message: "会议开始时间不能为空", trigger: "blur" }
+        ],
+        endDatetime: [
+          { required: true, message: "会议结束时间不能为空", trigger: "blur" }
+        ],
+      }
     };
   },
   watch: {
@@ -623,7 +638,7 @@ export default {
   }
 };
 </script>
-<style lang='css'>
+<style lang='css' scoped>
 .conference {
   display: flex;
   min-height: 100%;
@@ -633,94 +648,97 @@ export default {
   background-color: #fff;
 }
 
-.conference .el-calendar__header {
-  padding: 12px 10px;
-}
 
-.conference .el-calendar__header .el-calendar__button-group {
-  width: 35%;
-  text-align: right;
-}
+  .conference .el-calendar__header {
+    padding: 12px 10px;
+  }
 
-.conference .el-calendar__header .el-calendar__button-group .el-button-group > button:nth-of-type(1) {
-  width: 20%;
-  border: 0;
-  padding: 5px 10px 5px 5px;
-  font-size: 12px;
-}
+  .conference .el-calendar__header .el-calendar__button-group {
+    width: 35%;
+    text-align: right;
+  }
 
-.conference .el-calendar__header .el-calendar__button-group .el-button-group > button:nth-of-type(2) {
-  border: 0;
-  padding: 5px 5px 5px 5px;
-}
+  .conference .el-calendar__header .el-calendar__button-group .el-button-group > button:nth-of-type(1) {
+    width: 20%;
+    border: 0;
+    padding: 5px 10px 5px 5px;
+    font-size: 12px;
+  }
 
-.conference .el-calendar__header .el-calendar__button-group .el-button-group > button:nth-of-type(3) {
-  width: 20%;
-  border: 0;
-  padding: 5px 5px 5px 5px;
-}
+  .conference .el-calendar__header .el-calendar__button-group .el-button-group > button:nth-of-type(2) {
+    border: 0;
+    padding: 5px 5px 5px 5px;
+  }
 
-.is-selected {
-  color: #1989FA;
-}
+  .conference .el-calendar__header .el-calendar__button-group .el-button-group > button:nth-of-type(3) {
+    width: 20%;
+    border: 0;
+    padding: 5px 5px 5px 5px;
+  }
 
-.conference-right {
-  flex-grow: 1;
-  padding: 1em;
-}
+  .is-selected {
+    color: #1989FA;
+  }
 
-.fc { /* the calendar root */
-  /* max-width: 1100px; */
-  margin: 0 auto;
-}
+  .conference-right {
+    flex-grow: 1;
+    padding: 1em;
+  }
 
-.conference-right .fc-header-toolbar .btn {
-  line-height: 1 !important;
-}
+  .fc { /* the calendar root */
+    /* max-width: 1100px; */
+    margin: 0 auto;
+  }
 
-.is-selected {
-  color: #1989FA;
-}
+  .conference-right .fc-header-toolbar .btn {
+    line-height: 1 !important;
+  }
 
-.calendar-add-icon:hover {
-  border: 1px solid #cccccc;
-  border-radius: 3px;
-  background-color: #f1f1f1;
-}
+  .is-selected {
+    color: #1989FA;
+  }
 
-.conference .el-input {
-  border-bottom: 0 !important;
-}
+  .calendar-add-icon:hover {
+    border: 1px solid #cccccc;
+    border-radius: 3px;
+    background-color: #f1f1f1;
+  }
 
-.conference .dialogFormItem {
-  width: 450px;
-}
+  .conference .el-input {
+    border-bottom: 0 !important;
+  }
 
-.conference .dialogFormItem .half-input .el-input__inner {
-  width: 320px;
-}
+  .conference .dialogFormItem {
+    width: 450px;
+  }
 
-.conference .mini-dialogFormItem .mini-input .el-input__inner {
-  width: 120px;
-}
+  .conference .dialogFormItem .half-input .el-input__inner {
+    width: 320px;
+  }
 
-.conference .full-dialogFormItem .full-input .el-input__inner {
-  width: 780px;
-}
+  .conference .mini-dialogFormItem .mini-input .el-input__inner {
+    width: 120px;
+  }
 
-.conference .full-dialogFormItem .full-input .el-textarea__inner {
-  width: 780px;
-}
+  .conference .full-dialogFormItem .full-input .el-input__inner {
+    width: 780px;
+  }
 
-.send-wechat-div {
+  .conference .full-dialogFormItem .full-input .el-textarea__inner {
+    width: 780px;
+  }
 
-}
+  .send-wechat-div {
+
+  }
+
+  .el-col-slotBtn {
+    width: 25% !important;
+  }
+
+  .el-col-slotBtn .el-form-item__content {
+    margin-left: 40px !important;
+  }
 
-.el-col-slotBtn {
-  width: 25% !important;
-}
 
-.el-col-slotBtn .el-form-item__content {
-  margin-left: 40px !important;
-}
 </style>