index.vue 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745
  1. <template>
  2. <div class="app-container ">
  3. <div id="full-calendar" class="conference">
  4. <div class='conference-right'>
  5. <FullCalendar
  6. ref="fullCalendar"
  7. class='calendar-full'
  8. :options='calendarOptions'>
  9. </FullCalendar>
  10. </div>
  11. <div style="position: absolute; top:40px; left:200px">
  12. 会议室:
  13. <el-select v-model="queryParams.roomId" placeholder="请选择会议室" style="width:300px; " size='small'@change="handleQuery" >
  14. <el-option
  15. v-for="dict in roomOptions"
  16. :key="dict.id"
  17. :label="dict.roomName"
  18. :value="dict.id"
  19. >
  20. </el-option>
  21. </el-select>
  22. </div>
  23. <div style="position: absolute; top:40px; right:300px">
  24. <el-button
  25. type="primary"
  26. size="mini"
  27. @click="goToList"
  28. >预约记录
  29. </el-button>
  30. </div>
  31. <!-- 添加或修改会议预约信息对话框 -->
  32. <el-dialog :title="title" :visible.sync="open" width="700px" append-to-body>
  33. <el-form ref="form" :model="form" :rules="rules" label-width="80px">
  34. <el-form-item label="会议主题" prop="subject">
  35. <el-input v-model="form.subject" placeholder="请输入会议主题" />
  36. </el-form-item>
  37. <el-form-item label="召集人" prop="convenerId">
  38. <el-input v-model="form.convenerId" placeholder="请输入召集人" />
  39. </el-form-item>
  40. <el-form-item label="会议室名称" prop="roomId">
  41. <el-select v-model="form.roomId">
  42. <el-option
  43. v-for="dict in roomOptions"
  44. :key="dict.id"
  45. :label="dict.roomName"
  46. :value="dict.id"
  47. ></el-option>
  48. </el-select>
  49. </el-form-item>
  50. <el-form-item label="参会人" prop="participantsList">
  51. <el-input v-model="form.participantsList" placeholder="请输入参会人" />
  52. </el-form-item>
  53. <el-form-item label="会议开始时间" prop="beginDatetime">
  54. <el-date-picker clearable size="small" style="width: 200px"
  55. v-model="form.beginDatetime"
  56. type="datetime"
  57. value-format="yyyy-MM-dd HH:mm:ss"
  58. align="right"
  59. :picker-options="pickerOptions"
  60. placeholder="选择会议开始时间">
  61. </el-date-picker>
  62. </el-form-item>
  63. <el-form-item label="会议结束时间" prop="endDatetime">
  64. <el-date-picker clearable size="small" style="width: 200px"
  65. v-model="form.endDatetime"
  66. type="datetime"
  67. value-format="yyyy-MM-dd HH:mm:ss"
  68. align="right"
  69. :picker-options="pickerOptions"
  70. placeholder="选择会议结束时间">
  71. </el-date-picker>
  72. </el-form-item>
  73. <el-form-item label="颜色" prop="color">
  74. <el-color-picker v-model="form.color" show-alpha></el-color-picker>
  75. </el-form-item>
  76. <el-form-item label="全天显示" prop="isAllday">
  77. <el-select v-model="form.isAllday" placeholder="请输入全天显示 ">
  78. <el-option label="否" value="0" />
  79. <el-option label="是" value="1" />
  80. </el-select>
  81. </el-form-item>
  82. <!-- <el-form-item label="生成频率" prop="genFrequency">
  83. <el-select v-model="form.genFrequency" placeholder="请输入生成频率 ">
  84. <el-option label="只生成一次" value="1-N" />
  85. <el-option label="一天一次" value="1-D" />
  86. <el-option label="一周一次" value="1-W" />
  87. <el-option label="一月一次" value="1-M" />
  88. </el-select>
  89. </el-form-item>-->
  90. <!-- <el-form-item label="生成月" prop="genMonth">
  91. <el-input v-model="form.genMonth" placeholder="请输入生成月" />
  92. </el-form-item>
  93. <el-form-item label="生成日" prop="genDay">
  94. <el-input v-model="form.genDay" placeholder="请输入生成日" />
  95. </el-form-item>
  96. <el-form-item label="生成日期" prop="genDate">
  97. <el-input v-model="form.genDate" placeholder="请输入生成日期" />
  98. </el-form-item>
  99. <el-form-item label="生成时间" prop="genDatetime">
  100. <el-input v-model="form.genDatetime" placeholder="请输入生成时间" />
  101. </el-form-item>-->
  102. <el-form-item label="备注" prop="remarks">
  103. <el-input v-model="form.remarks" placeholder="请输入备注" />
  104. </el-form-item>
  105. </el-form>
  106. <div slot="footer" class="dialog-footer">
  107. <el-button type="primary" @click="submitForm">确 定</el-button>
  108. <el-button @click="cancel">取 消</el-button>
  109. </div>
  110. </el-dialog>
  111. </div>
  112. </div>
  113. </template>
  114. <script>
  115. import {
  116. listConfInfo,
  117. getConfInfo,
  118. delConfInfo,
  119. addConfInfo,
  120. updateConfInfo,
  121. exportConfInfo,
  122. importTemplate
  123. } from "@/api/plant/confInfo";
  124. import {treeselect} from "@/api/system/dept";
  125. import {getToken} from "@/utils/auth";
  126. import Treeselect from "@riophae/vue-treeselect";
  127. import "@riophae/vue-treeselect/dist/vue-treeselect.css";
  128. import FullCalendar from '@fullcalendar/vue'
  129. import dayGridPlugin from '@fullcalendar/daygrid'
  130. import timeGridPlugin from '@fullcalendar/timegrid'
  131. import interactionPlugin from '@fullcalendar/interaction'
  132. import momentPlugin from '@fullcalendar/moment'
  133. import listPlugin from '@fullcalendar/list';
  134. import bootstrapPlugin from '@fullcalendar/bootstrap';
  135. import {INITIAL_EVENTS, createEventId} from '@/utils/event-utils'
  136. // import 'bootstrap/dist/css/bootstrap.css';
  137. import {dateFormat} from '@/utils/date';
  138. import {listConfRoom} from "@/api/plant/confRoom";
  139. export default {
  140. name: "ConfInfo",
  141. components: {Treeselect, FullCalendar},
  142. data() {
  143. return {
  144. // 遮罩层
  145. loading: true,
  146. calendarOptions: {
  147. plugins: [
  148. //resourceTimeGridPlugin,
  149. bootstrapPlugin,
  150. listPlugin,
  151. momentPlugin,
  152. dayGridPlugin,
  153. timeGridPlugin,
  154. interactionPlugin // needed for dateClick
  155. ],
  156. //schedulerLicenseKey: 'GPL-My-Project-Is-Open-Source',
  157. themeSystem: 'bootstrap',
  158. headerToolbar: {
  159. left: 'prev,next,today',
  160. center: 'title',
  161. right: 'listWeek,dayGridMonth,timeGridWeek,timeGridDay'
  162. },
  163. initialView: 'dayGridMonth',
  164. resources: [
  165. {id: 'a', title: 'Auditorium A'},
  166. {id: 'b', title: 'Auditorium B'},
  167. {id: 'c', title: 'Auditorium C'}
  168. ],
  169. initialEvents: INITIAL_EVENTS, // alternatively, use the `events` setting to fetch from a feed
  170. editable: true,
  171. dayMaxEvents: true,
  172. weekends: true,
  173. select: this.handleDateSelect,
  174. eventClick: this.handleEventClick,
  175. eventsSet: this.handleEvents,
  176. dateClick: this.handleDateClick,
  177. // dayCellDidMount: function(info) {
  178. // //this.$console.log('info===',info);
  179. // return 'test001'
  180. // },
  181. eventDidMount: function (info) {
  182. //$(info.el).tooltip({title: '11111'});
  183. //this.$console.log('info===',info);
  184. // var tooltip = new Tooltip(info.el, {
  185. // title: info.event.extendedProps.description,
  186. // placement: 'top',
  187. // trigger: 'hover',
  188. // container: 'body'
  189. // });
  190. },
  191. eventRender: function (event, element) {
  192. element.attr('title', event.tip);
  193. },
  194. height: '100%',
  195. events: [],
  196. week: 'narrow',
  197. buttonText: {
  198. next: '>',
  199. prev: '<',
  200. allday: '整天',
  201. today: '今天',
  202. month: '月',
  203. week: '周',
  204. day: '天',
  205. listWeek: '周列表'
  206. },
  207. // titleFormat: {
  208. // month: 'long',
  209. // year: 'numeric',
  210. // day: 'numeric',
  211. // weekday: 'long'
  212. // },
  213. // 整体控制月、周、天顶部的日期显示
  214. dayHeaderFormat: {
  215. weekday: 'short',
  216. // year: 'numeric',
  217. // month: 'numeric',
  218. // day: 'numeric',
  219. omitCommas: true
  220. },
  221. // 单独控制月、周、天顶部的日期显示
  222. views: {
  223. timeGridWeek: {
  224. dayHeaderFormat: {
  225. weekday: 'short',
  226. // year: 'numeric',
  227. month: 'numeric',
  228. day: 'numeric',
  229. omitCommas: true
  230. },
  231. },
  232. },
  233. selectMirror: 'true',
  234. slotMinTime: '06:00:00',
  235. slotMaxTime: '24:00:00',
  236. selectable: 'true',
  237. locale: 'zh-cn',
  238. slotEventOverlap: 'false',
  239. unselectAuto: 'false',
  240. selectOverlap: 'false',
  241. businessHours: [],
  242. firstDay: 1,
  243. allDaySlot: 'true',
  244. slotDuration: '00:30',
  245. slotLabelFormat: 'HH:mm',
  246. allDayContent: '全天',
  247. // 随时判断时间是否合法,通过返回true/false来判断是否能够选择
  248. selectAllow: info => {
  249. const currentDate = new Date()
  250. const start = info.start
  251. const end = info.end
  252. return (start <= end && start >= currentDate) || (dateFormat(start).substring(0, 10) === dateFormat(currentDate).substring(0, 10))
  253. },
  254. eventMouseEnter: this.eventMouseEnter,
  255. //eventDragStop: this.eventDragStop,
  256. // 拖拽结束后
  257. eventDrop: this.eventDragStop,
  258. // 调整大小
  259. eventResize: this.eventResize,
  260. dragOpacity: {
  261. agenda: .1, //对于agenda试图
  262. '': 1.0 //其他视图
  263. },
  264. //dayCellContent: ''
  265. /* you can update a remote database when these fire:
  266. eventAdd:
  267. eventChange:
  268. eventRemove:
  269. */
  270. },
  271. // 会议控制
  272. conferenceInfo: {
  273. defultConferenceRoomId: '',
  274. conferenceRoom: [],
  275. // 参会人options
  276. participantsOptions: [],
  277. // 召集人options
  278. convenerOptions: [],
  279. // 当前日期所在的时间段的开始时间和结束时间
  280. currentStartTime: '',
  281. currentEndTime: '',
  282. conferenceVisible: false,
  283. isAdd: false,
  284. isEdit: false,
  285. validFlag: false,
  286. conferenceList: [],
  287. loading: false,
  288. conferenceTypeOptions: [],
  289. isTencentMeeting: false,
  290. shareVisible: false,
  291. shareText: '',
  292. },
  293. // 选中数组
  294. ids: [],
  295. // 非单个禁用
  296. single: true,
  297. // 非多个禁用
  298. multiple: true,
  299. // 显示搜索条件
  300. showSearch: false,
  301. // 总条数
  302. total: 0,
  303. // 会议预约信息表格数据
  304. confInfoList: [],
  305. // 弹出层标题
  306. title: "",
  307. // 部门树选项
  308. deptOptions: undefined,
  309. roomOptions: [],
  310. pickerOptions: {
  311. selectableRange: '00:00:00 - 23:59:59',
  312. disabledDate(time) {
  313. const date = new Date();
  314. let timeStr = dateFormat(time).substring(0, 10);
  315. let nowStr = dateFormat(date).substring(0, 10);
  316. return new Date(timeStr) < new Date(nowStr);
  317. },
  318. shortcuts: [
  319. {
  320. text: '现在',
  321. onClick(picker) {
  322. const date = new Date();
  323. picker.$emit('pick', date);
  324. }
  325. },
  326. {
  327. text: '一小时后',
  328. onClick(picker) {
  329. const date = new Date();
  330. date.setTime(date.getTime() + 3600 * 1000);
  331. picker.$emit('pick', date);
  332. }
  333. },
  334. {
  335. text: '两小时后',
  336. onClick(picker) {
  337. const date = new Date();
  338. date.setTime(date.getTime() + 7200 * 1000);
  339. picker.$emit('pick', date);
  340. }
  341. },
  342. {
  343. text: '三小时后',
  344. onClick(picker) {
  345. const date = new Date();
  346. date.setTime(date.getTime() + 10800 * 1000);
  347. picker.$emit('pick', date);
  348. }
  349. }
  350. ]
  351. },
  352. clientHeight: 300,
  353. // 是否显示弹出层
  354. open: false,
  355. // 用户导入参数
  356. upload: {
  357. // 是否显示弹出层(用户导入)
  358. open: false,
  359. // 弹出层标题(用户导入)
  360. title: "",
  361. // 是否禁用上传
  362. isUploading: false,
  363. // 是否更新已经存在的用户数据
  364. updateSupport: 0,
  365. // 设置上传的请求头部
  366. headers: {Authorization: "Bearer " + getToken()},
  367. // 上传的地址
  368. url: process.env.VUE_APP_BASE_API + "/plant/confInfo/importData"
  369. },
  370. // 查询参数
  371. queryParams: {
  372. pageNum: 1,
  373. pageSize: 50,
  374. roomId: null,
  375. subject: null,
  376. convenerId: null,
  377. convenerName: null,
  378. roomName: null,
  379. beginDatetime: null,
  380. endDatetime: null,
  381. },
  382. // 表单参数
  383. form: {},
  384. // 表单校验
  385. rules: {
  386. roomId: [
  387. { required: true, message: "会议室不能为空", trigger: "blur" }
  388. ],
  389. subject: [
  390. { required: true, message: "会议主题不能为空", trigger: "blur" }
  391. ],
  392. beginDatetime: [
  393. { required: true, message: "会议开始时间不能为空", trigger: "blur" }
  394. ],
  395. endDatetime: [
  396. { required: true, message: "会议结束时间不能为空", trigger: "blur" }
  397. ],
  398. }
  399. };
  400. },
  401. watch: {
  402. // 根据名称筛选部门树
  403. deptName(val) {
  404. this.$refs.tree.filter(val);
  405. }
  406. },
  407. created() {
  408. //设置表格高度对应屏幕高度
  409. this.$nextTick(() => {
  410. this.clientHeight = document.body.clientHeight - 250
  411. })
  412. listConfRoom({}).then(response => {
  413. this.roomOptions = response.rows;
  414. });
  415. this.getList();
  416. this.getTreeselect();
  417. },
  418. mounted() {
  419. let _self = this;
  420. this.$nextTick(() => {
  421. // 监听fullcalendar的事件
  422. let fullCalDom = document.querySelectorAll('.fc-header-toolbar .fc-toolbar-chunk .btn-group >button');
  423. for (let button of fullCalDom) {
  424. button.addEventListener('click', function () {
  425. _self.changeDurationTime();
  426. });
  427. }
  428. let calendarApi = this.$refs.fullCalendar.getApi()
  429. this.conferenceInfo.currentStartTime = dateFormat(new Date(calendarApi.view.currentStart));
  430. this.conferenceInfo.currentEndTime = dateFormat(new Date(calendarApi.view.currentEnd));
  431. this.getList()
  432. });
  433. },
  434. methods: {
  435. /** 查询会议预约信息列表 */
  436. getList() {
  437. this.loading = true;
  438. listConfInfo(this.queryParams).then(response => {
  439. this.confInfoList = response.rows;
  440. let result = response.rows;
  441. if(result.length > 0){
  442. this.calendarOptions.events = [];
  443. result.forEach(item => {
  444. let allDay = false;
  445. let end = item.endDatetime;
  446. if(item.isAllday === '0'){
  447. allDay = false;
  448. }else if(item.isAllday === '1'){
  449. allDay = true;
  450. if(item.endDatetime.substring(11, 19) !== '00:00:00'){
  451. end = new Date(new Date(item.endDatetime).getTime() + 1000 * 60 * 60 * 24);
  452. }
  453. }
  454. this.calendarOptions.events.push({
  455. id: item.id,
  456. description: item.remarks,
  457. title: item.subject + ' [' + item.roomName + ']',
  458. start: item.beginDatetime,
  459. end: end,
  460. color: item.color,
  461. allDay: allDay
  462. })
  463. });
  464. }
  465. else{
  466. this.calendarOptions.events = [];
  467. //改写No Event To Display;
  468. var ele =document.getElementsByClassName('fc-list-empty-cushion');
  469. console.log(ele)
  470. if(ele.length > 0){
  471. setTimeout(() => {
  472. ele[0].innerText = '没有更多数据!';
  473. }, 100);
  474. }
  475. }
  476. // 保存当前页面上的日程信息
  477. this.conferenceInfo.conferenceList = result;
  478. this.conferenceInfo.loading = false;
  479. }, error => {
  480. //this.$console.log(error);
  481. this.conferenceInfo.loading = false;
  482. });
  483. },
  484. /** 查询部门下拉树结构 */
  485. getTreeselect() {
  486. treeselect().then(response => {
  487. this.deptOptions = response.data;
  488. });
  489. },
  490. // 取消按钮
  491. cancel() {
  492. this.open = false;
  493. this.reset();
  494. },
  495. // 表单重置
  496. reset() {
  497. this.form = {
  498. id: null,
  499. roomId: null,
  500. subject: null,
  501. convenerId: null,
  502. convenerName: null,
  503. roomName: null,
  504. participantsList: null,
  505. beginDatetime: null,
  506. endDatetime: null,
  507. color: null,
  508. isAllday: null,
  509. genFrequency: null,
  510. genMonth: null,
  511. genDay: null,
  512. genDate: null,
  513. genDatetime: null,
  514. delFlag: null,
  515. createrCode: null,
  516. createdate: null,
  517. updaterCode: null,
  518. updatedate: null,
  519. deptId: null,
  520. remarks: null
  521. };
  522. this.resetForm("form");
  523. },
  524. /** 搜索按钮操作 */
  525. handleQuery() {
  526. this.queryParams.pageNum = 1;
  527. this.getList();
  528. },
  529. /** 重置按钮操作 */
  530. resetQuery() {
  531. this.resetForm("queryForm");
  532. this.handleQuery();
  533. },
  534. // 多选框选中数据
  535. handleSelectionChange(selection) {
  536. this.ids = selection.map(item => item.id)
  537. this.single = selection.length !== 1
  538. this.multiple = !selection.length
  539. },
  540. /** 新增按钮操作 */
  541. handleAdd() {
  542. this.reset();
  543. this.open = true;
  544. this.title = "添加会议预约信息";
  545. },
  546. /**
  547. * 打开新建时初始化日期
  548. */
  549. handleDateSelect(selectInfo) {
  550. console.log(selectInfo)
  551. this.reset();
  552. this.open = true;
  553. this.title = "添加会议预约信息";
  554. let startDate = selectInfo.start
  555. },
  556. /** 修改按钮操作 */
  557. handleUpdate(row) {
  558. this.reset();
  559. const id = row.id || this.ids
  560. getConfInfo(id).then(response => {
  561. this.form = response.data;
  562. this.open = true;
  563. this.title = "修改会议预约信息";
  564. });
  565. },
  566. /**
  567. * 点击会议查询当前会议记录
  568. */
  569. handleEventClick(clickInfo) {
  570. this.reset();
  571. const id = clickInfo.event.id
  572. getConfInfo(id).then(response => {
  573. this.form = response.data;
  574. this.open = true;
  575. this.title = "修改会议预约信息";
  576. });
  577. },
  578. /** 提交按钮 */
  579. submitForm() {
  580. this.$refs["form"].validate(valid => {
  581. if (valid) {
  582. if (this.form.id != null) {
  583. updateConfInfo(this.form).then(response => {
  584. this.msgSuccess("修改成功");
  585. this.open = false;
  586. this.getList();
  587. });
  588. } else {
  589. addConfInfo(this.form).then(response => {
  590. this.msgSuccess("新增成功");
  591. this.open = false;
  592. this.getList();
  593. });
  594. }
  595. }
  596. });
  597. },
  598. /** 删除按钮操作 */
  599. handleDelete(row) {
  600. const ids = row.id || this.ids;
  601. this.$confirm('是否确认删除?', "警告", {
  602. confirmButtonText: "确定",
  603. cancelButtonText: "取消",
  604. type: "warning"
  605. }).then(function () {
  606. return delConfInfo(ids);
  607. }).then(() => {
  608. this.getList();
  609. this.msgSuccess("删除成功");
  610. })
  611. },
  612. // 修改日程查询的开始和结束日期
  613. changeDurationTime() {
  614. //
  615. let calendarApi = this.$refs.fullCalendar.getApi()
  616. this.conferenceInfo.currentStartTime = dateFormat(new Date(calendarApi.view.activeStart));
  617. this.conferenceInfo.currentEndTime = dateFormat(new Date(calendarApi.view.activeEnd));
  618. console.log("=========changeDurationTime========")
  619. this.getConferenceList();
  620. },
  621. goToList() {
  622. this.$router.push("/plant/confInfoList");
  623. }
  624. }
  625. };
  626. </script>
  627. <style lang='css' scoped>
  628. @import '../../../assets/styles/bootstrap.css';
  629. .conference {
  630. display: flex;
  631. min-height: 100%;
  632. height: 800px;
  633. font-family: Arial, Helvetica Neue, Helvetica, sans-serif;
  634. font-size: 14px;
  635. background-color: #fff;
  636. }
  637. .conference .el-calendar__header {
  638. padding: 12px 10px;
  639. }
  640. .conference .el-calendar__header .el-calendar__button-group {
  641. width: 35%;
  642. text-align: right;
  643. }
  644. .conference .el-calendar__header .el-calendar__button-group .el-button-group > button:nth-of-type(1) {
  645. width: 20%;
  646. border: 0;
  647. padding: 5px 10px 5px 5px;
  648. font-size: 12px;
  649. }
  650. .conference .el-calendar__header .el-calendar__button-group .el-button-group > button:nth-of-type(2) {
  651. border: 0;
  652. padding: 5px 5px 5px 5px;
  653. }
  654. .conference .el-calendar__header .el-calendar__button-group .el-button-group > button:nth-of-type(3) {
  655. width: 20%;
  656. border: 0;
  657. padding: 5px 5px 5px 5px;
  658. }
  659. .is-selected {
  660. color: #1989FA;
  661. }
  662. .conference-right {
  663. flex-grow: 1;
  664. padding: 1em;
  665. }
  666. .fc { /* the calendar root */
  667. /* max-width: 1100px; */
  668. margin: 0 auto;
  669. }
  670. .conference-right .fc-header-toolbar .btn {
  671. line-height: 1 !important;
  672. }
  673. .is-selected {
  674. color: #1989FA;
  675. }
  676. .calendar-add-icon:hover {
  677. border: 1px solid #cccccc;
  678. border-radius: 3px;
  679. background-color: #f1f1f1;
  680. }
  681. .conference .el-input {
  682. border-bottom: 0 !important;
  683. }
  684. .conference .dialogFormItem {
  685. width: 450px;
  686. }
  687. .conference .dialogFormItem .half-input .el-input__inner {
  688. width: 320px;
  689. }
  690. .conference .mini-dialogFormItem .mini-input .el-input__inner {
  691. width: 120px;
  692. }
  693. .conference .full-dialogFormItem .full-input .el-input__inner {
  694. width: 780px;
  695. }
  696. .conference .full-dialogFormItem .full-input .el-textarea__inner {
  697. width: 780px;
  698. }
  699. .send-wechat-div {
  700. }
  701. .el-col-slotBtn {
  702. width: 25% !important;
  703. }
  704. .el-col-slotBtn .el-form-item__content {
  705. margin-left: 40px !important;
  706. }
  707. </style>