inform.vue 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736
  1. <template>
  2. <div class="inform">
  3. <div class="search">
  4. <el-input placeholder="请输入标题" class="search-input" clearable v-model="mixins_query.location"></el-input>
  5. <el-select placeholder="请选择所属社区" v-model="mixins_query.communityId" clearable>
  6. <el-option v-for="(item, index) in communityList" :key="index" :label="item.label" :value="item.id"></el-option>
  7. <!-- <el-option v-for="(item, index) in communityList" :key="index" :label="item.label" :value="item.regionId"></el-option> -->
  8. </el-select>
  9. <el-date-picker
  10. v-model="searchTime"
  11. value-format="yyyy-MM-dd"
  12. type="daterange"
  13. range-separator="至"
  14. start-placeholder="开始日期"
  15. end-placeholder="结束日期"
  16. :picker-options="pickerOptions"
  17. :editable="false"
  18. ></el-date-picker>
  19. <el-button type="primary" placeholder="状态" class="search-btn" @click="searchInfo" icon="el-icon-search">查询 </el-button>
  20. <div class="add">
  21. <img src="../../assets/img/btn_tianjia@2x.png" alt="" @click="add" />
  22. </div>
  23. </div>
  24. <div class="content">
  25. <div class="roles-wrap">
  26. <zz-table
  27. :cols="cols"
  28. :settings="{ showNumber: true, stripe: true, showNumberWidth: '120' }"
  29. :data="mixins_list"
  30. :pageset="mixins_pageset"
  31. @page-change="pageChange"
  32. >
  33. <!-- :loading="mixins_onQuery" -->
  34. <template slot-scope="scope" slot="releaseTime">
  35. <div>
  36. {{ scope.row.pubDate }}
  37. </div>
  38. </template>
  39. <template slot-scope="scope" slot="opt">
  40. <div class="opt" @click="clickDatail(scope.row)">
  41. <img src="../../assets/img/icon_biaodan@2x.png" alt="" />
  42. </div>
  43. </template>
  44. </zz-table>
  45. </div>
  46. <!-- 添加弹框 -->
  47. <div class="dialog-info">
  48. <el-dialog :visible.sync="centerDialogVisible" width="986px" :close-on-click-modal="false">
  49. <div class="dialog">
  50. <div class="dialog-header">
  51. <i class="el-dialog__close el-icon el-icon-close" @click="dialogButton('clear')"></i>
  52. <div class="dialogTitle" v-if="showDetail">
  53. 物业通知发布(
  54. <span style="color: #ff7f7f"> *</span>
  55. 为必填项)
  56. </div>
  57. <div class="dialogTitle" v-else>物业通知发布</div>
  58. </div>
  59. <div class="dialog-contents">
  60. <div class="dialog-left">
  61. <div v-if="showDetail">
  62. <el-form :model="ruleForm" :rules="rules" ref="ruleForm" label-width="101px" class="demo-ruleForm">
  63. <el-form-item label="所属社区" prop="popCommunityId">
  64. <el-select
  65. placeholder="请选择所属地区"
  66. v-model="ruleForm.popCommunityId"
  67. clearable
  68. class="dialog-select"
  69. >
  70. <el-option
  71. v-for="(item, index) in communityList"
  72. :key="index"
  73. :label="item.label"
  74. :value="item.id"
  75. ></el-option>
  76. </el-select>
  77. </el-form-item>
  78. <el-form-item label="发布对象" prop="issueRoom">
  79. <div class="issueRoom">
  80. <div class="radio-room">
  81. <el-checkbox
  82. label="社区住户"
  83. name="type"
  84. v-model="ruleForm.issueRoom.checkAll"
  85. ></el-checkbox>
  86. <el-radio-group v-model="ruleForm.issueRoom.radioRoom" @change="changeRadioRoom">
  87. <el-radio label="全部房间"></el-radio>
  88. <el-radio label="指定房间"></el-radio>
  89. </el-radio-group>
  90. </div>
  91. <div class="selet-room">
  92. <!-- <building-tree
  93. @buildingInformation="buildingInformation"
  94. :buildingType="1"
  95. v-if="!showaddDialog"
  96. ></building-tree> -->
  97. <el-select
  98. multiple
  99. v-model="selectRoom"
  100. collapse-tags
  101. :disabled="!ruleForm.disabledRoom"
  102. >
  103. <el-option
  104. v-for="item in optionsRoom"
  105. :key="item.value"
  106. :label="item.label"
  107. :value="item.value"
  108. >
  109. </el-option>
  110. </el-select>
  111. </div>
  112. </div>
  113. <div class="issueRoom">
  114. <div class="radio-room">
  115. <el-checkbox
  116. label="物业员工"
  117. name="type"
  118. v-model="ruleForm.issueRoom.staff"
  119. @change="changeCheckboxStaffRoom"
  120. ></el-checkbox>
  121. <el-radio-group v-model="ruleForm.issueRoom.radioStaff" @change="changeRadioStaffRoom">
  122. <el-radio label="全部员工"></el-radio>
  123. <el-radio label="指定员工"></el-radio>
  124. </el-radio-group>
  125. </div>
  126. <div class="selet-room">
  127. <el-select multiple v-model="selectStaff" :disabled="!ruleForm.disabledStaffRoom">
  128. <el-option
  129. v-for="item in optionsStaff"
  130. :key="item.value"
  131. :label="item.label"
  132. :value="item.value"
  133. >
  134. </el-option>
  135. </el-select>
  136. </div>
  137. </div>
  138. </el-form-item>
  139. <el-form-item label="通知类型" prop="informType">
  140. <el-select
  141. v-model="ruleForm.informType"
  142. @change="changeInformType"
  143. clearable
  144. class="dialog-select"
  145. >
  146. <el-option
  147. v-for="(item, index) in informTypes"
  148. :key="index"
  149. :label="item.label"
  150. :value="item.status"
  151. >{{ item.label }}</el-option
  152. >
  153. </el-select>
  154. </el-form-item>
  155. <el-form-item label="标题" prop="title">
  156. <el-input v-model="ruleForm.title" placeholder="不能超过20字" maxlength="20"></el-input>
  157. </el-form-item>
  158. <el-form-item label="是否紧急" prop="exigencyOr">
  159. <el-radio-group v-model="ruleForm.exigencyOr" @change="changeRadioExigencyOr">
  160. <el-radio label="是"></el-radio>
  161. <el-radio label="否"></el-radio>
  162. </el-radio-group>
  163. </el-form-item>
  164. <el-form-item label="请选择时间" prop="activeTime">
  165. <el-date-picker
  166. v-model="ruleForm.activeTime"
  167. value-format="yyyy-MM-dd"
  168. type="daterange"
  169. range-separator="至"
  170. start-placeholder="开始日期"
  171. end-placeholder="结束日期"
  172. :picker-options="pickerOptions"
  173. :editable="false"
  174. ></el-date-picker>
  175. </el-form-item>
  176. <el-form-item label="主题图片" prop="image" v-if="showUploadImage">
  177. <div>
  178. <el-upload
  179. class="avatar-uploader"
  180. action="/sc-community-web/upload/uploadFile"
  181. :show-file-list="false"
  182. :on-success="handleAvatarSuccess"
  183. :before-upload="beforeAvatarUpload"
  184. >
  185. <img v-if="imageUrl" :src="imageUrl" class="prev-image" />
  186. <div class="avatar-uploader-icon">
  187. <el-button type="primary" @click="clickUploadImage">点击上传</el-button>
  188. </div>
  189. </el-upload>
  190. <span class="uploader-explain">
  191. <el-upload
  192. v-if="showImageUrlTwo"
  193. class="avatar-uploader"
  194. action="/sc-community-web/upload/uploadFile"
  195. :show-file-list="false"
  196. :on-success="handleAvatarSuccessTwo"
  197. :before-upload="beforeAvatarUpload"
  198. >
  199. <img v-if="imageUrlTwo" :src="imageUrlTwo" class="prev-image" />
  200. <div class="avatar-uploader-icon">
  201. <el-button type="primary">点击上传</el-button>
  202. </div>
  203. </el-upload>
  204. <span v-if="showUploadImageText">
  205. 图片像素为670px * 300px,jpg/png图片格式,文件大小在 2M内,最多可上传2张图片</span
  206. >
  207. </span>
  208. </div></el-form-item
  209. >
  210. <el-form-item label="通知内容" prop="informContent">
  211. <!-- tui-editor 富文本编辑器 -->
  212. <div class="editor-container">
  213. <markdown-editor
  214. ref="markdownEditor"
  215. v-model="markdownEditorContent"
  216. :language="language"
  217. height="180px"
  218. width="543"
  219. />
  220. </div>
  221. <!-- <el-button type="primary" icon="el-icon-document" @click="getHtml"> 预览 </el-button> -->
  222. </el-form-item>
  223. <el-form-item label="文件上传" prop="fill">
  224. <div>
  225. <el-upload
  226. class="upload-fill"
  227. action="/sc-community-web/upload/uploadFile"
  228. :on-preview="handlePreview"
  229. :on-remove="handleRemove"
  230. :before-remove="beforeRemove"
  231. multiple
  232. :limit="3"
  233. :on-exceed="handleExceed"
  234. :file-list="fileList"
  235. >
  236. <el-button size="small" icon="el-icon-paperclip">选择附件</el-button>
  237. <div slot="tip" class="el-upload-text">
  238. 支持格式:.rar .zip .doc .docx .pdf ,单个文件不能超过20MB
  239. </div>
  240. </el-upload>
  241. </div>
  242. </el-form-item>
  243. <el-form-item class="dialog-footer">
  244. <span>
  245. <el-button type="primary" @click="dialogButton('clear')" plain>取消</el-button>
  246. <el-button type="primary" @click="dialogButton('prev')">发布</el-button>
  247. </span>
  248. </el-form-item>
  249. </el-form>
  250. </div>
  251. <div v-else>
  252. <previe-inform :dataDetail="rowDetail"></previe-inform>
  253. </div>
  254. </div>
  255. <div class="dialog-right">
  256. <div class="dialog-right-top">
  257. <img src="../../assets/img/phoneHeader.png" alt="" />
  258. </div>
  259. <div class="dialog-right-header">
  260. <i class="el-icon-arrow-left"></i>
  261. <div>社区活动</div>
  262. </div>
  263. <div class="center-padding"></div>
  264. <GeminiScrollbar class="my-scroll-bar" :autoshow="false" :color="red">
  265. <div class="dialog-right-content">
  266. <div class="dialog-title">
  267. <div class="dialog-titles">{{ ruleForm.title ? ruleForm.title : '标题' }}</div>
  268. <div class="dialog-urgency" v-if="ruleForm.exigencyText">紧急</div>
  269. </div>
  270. <div class="dialog-right-time">{{ new Date() | filterTime }}</div>
  271. <div></div>
  272. <div class="content">
  273. <div class="content-text">
  274. <div v-html="html" id="content" />
  275. </div>
  276. <!-- <div><img style="width: 100px; height: 100px" :src="imageUrl" alt="" /></div> -->
  277. <div class="content-inform">
  278. <div>滨江华府物业管理公司</div>
  279. <div>2021-11-11</div>
  280. <div>物业电话:010-12345678</div>
  281. </div>
  282. </div>
  283. <div></div>
  284. </div>
  285. </GeminiScrollbar>
  286. </div>
  287. </div>
  288. </div>
  289. </el-dialog>
  290. </div>
  291. </div>
  292. </div>
  293. </template>
  294. <script>
  295. import list from '@utils/list.js';
  296. import previeInform from './common/previeInform';
  297. // tuieditor富文本编辑器
  298. import MarkdownEditor from '@/components/MarkdownEditor';
  299. const content = `您好!为了给大家提供一个舒适、卫生的生活环境,进一步有效控制小区“四害”孳生,减少四害对大家生活影响,管理处计划12月份安排小区公共区域集中消杀4次。`;
  300. export default {
  301. mixins: [list],
  302. components: { previeInform, MarkdownEditor },
  303. data() {
  304. let _this = this;
  305. return {
  306. // 文件上传
  307. fileList: [],
  308. // 显示图片上传
  309. imageUrl: '',
  310. imageUrlTwo: '',
  311. showUploadImage: false,
  312. showImageUrlTwo: false,
  313. showUploadImageText: true,
  314. dialogImageUrl: '',
  315. dialogVisible: false,
  316. disabled: false,
  317. // 显示详情
  318. showDetail: true,
  319. rowDetail: '',
  320. // 富文本编辑器
  321. markdownEditorContent: content,
  322. html: content,
  323. languageTypeList: {
  324. en: 'en_US',
  325. zh: 'zh_CN',
  326. es: 'es_ES'
  327. },
  328. // 查询的时间
  329. searchTime: [],
  330. // 选择的房间
  331. selectRoom: [],
  332. optionsRoom: [
  333. {
  334. value: '选项1',
  335. label: '滨江华府-A栋-10单元-1001,滨江华府-A栋-10单元-1002'
  336. },
  337. {
  338. value: '选项2',
  339. label: '滨江华府-A栋-10单元-1002'
  340. }
  341. ],
  342. // 选择的员工
  343. selectStaff: [],
  344. optionsStaff: [
  345. {
  346. value: '选项1',
  347. label: '员工A'
  348. },
  349. {
  350. value: '选项2',
  351. label: '员工B'
  352. }
  353. ],
  354. // 添加弹框信息
  355. ruleForm: {
  356. popCommunityId: '', //所属社区
  357. //发布对象
  358. issueRoom: {
  359. checkAll: true,
  360. radioRoom: '全部房间',
  361. staff: false,
  362. radioStaff: ''
  363. },
  364. disabledRoom: false, //单选框是否禁用
  365. disabledStaffRoom: false,
  366. informType: '物业通知', //通知类型
  367. title: '', //标题
  368. exigencyOr: '是', //是否紧急
  369. exigencyText: true,
  370. activeTime: [],
  371. informContent: content, //通知内容
  372. upload: '' // 文件上传
  373. },
  374. rules: {
  375. popCommunityId: [{ required: true, message: '请选择社区', trigger: 'change' }],
  376. issueRoom: [{ required: true, message: '请选择房间', trigger: 'change' }],
  377. informType: [{ required: true, message: '请选择通知类型', trigger: 'change' }],
  378. title: [{ required: true, message: '请输入标题', trigger: 'blur' }],
  379. exigencyOr: [{ required: true, message: '请选择是否紧急', trigger: 'change' }],
  380. activeTime: [{ required: true, message: '请选择时间', trigger: 'change' }],
  381. informContent: [{ required: true, message: '请选择内容', trigger: 'blur' }] //通知内容
  382. },
  383. // 输入地址
  384. location: '',
  385. // 通知类型
  386. informTypes: [
  387. {
  388. status: 1,
  389. label: '物业通知'
  390. },
  391. {
  392. status: 2,
  393. label: '社区活动'
  394. }
  395. ],
  396. cols: [
  397. {
  398. label: '标题',
  399. prop: 'title',
  400. width: 200
  401. },
  402. {
  403. label: '所属社区',
  404. prop: 'communityName',
  405. width: 200
  406. },
  407. {
  408. label: '通知类型',
  409. prop: 'type',
  410. width: 200,
  411. format(val) {
  412. if (val == 0) {
  413. return '物业通知';
  414. } else if (val == 1) {
  415. return '社区活动';
  416. } else {
  417. return '其他';
  418. }
  419. }
  420. },
  421. {
  422. label: '是否紧急',
  423. prop: 'urgentFlag',
  424. width: 210,
  425. format(val) {
  426. if (val == 0) {
  427. return '不紧急';
  428. } else if (val == 1) {
  429. return '紧急';
  430. } else {
  431. return '---';
  432. }
  433. }
  434. },
  435. {
  436. label: '发布时间',
  437. prop: 'pubDate',
  438. width: 240,
  439. slot: 'releaseTime'
  440. },
  441. {
  442. label: '状态',
  443. prop: 'status',
  444. width: 190,
  445. format(val) {
  446. return val ? val : '已发布';
  447. }
  448. },
  449. {
  450. label: '发布人',
  451. prop: 'pubPeople',
  452. width: 210
  453. },
  454. {
  455. label: '操作',
  456. prop: 'id',
  457. slot: 'opt'
  458. }
  459. ],
  460. mixins_post: 'post',
  461. // 显隐弹框
  462. centerDialogVisible: false,
  463. // 保存上传的文本
  464. newConten: ''
  465. // 获取的房间信息
  466. };
  467. },
  468. created() {
  469. this.mixins_post;
  470. if (this.$store.getters['getAreaSelect'].length === 0) {
  471. this.getCommunityList();
  472. }
  473. this.mixins_dataUrl = '/sc-community-web/notice/page';
  474. this.mixins_query = {};
  475. this.mixins_search();
  476. // 获取房间
  477. let query = { buildingType: 1 };
  478. this.$http.get('/sc-community/assets/tree/community/find', query).then((res) => {
  479. this.optionsRoom = res.data;
  480. console.log('获取房间', res);
  481. });
  482. },
  483. computed: {
  484. language() {
  485. return this.languageTypeList['en'];
  486. }
  487. },
  488. mounted() {},
  489. watch: {
  490. html(newv, oldv) {
  491. console.log('watch', newv, oldv);
  492. },
  493. markdownEditorContent(newv, oldv) {
  494. this.ruleForm.informContent = newv;
  495. // if (newv != oldv) {
  496. // this.html = newv;
  497. // }
  498. console.log('watch markdownEditorContent', newv, oldv);
  499. this.html = this.$refs.markdownEditor.getHtml();
  500. },
  501. newConten(newv, oldv) {
  502. console.log('newConten', newv, oldv);
  503. }
  504. },
  505. methods: {
  506. // 房间树
  507. buildingInformation(data) {
  508. if (!!data.type && data.type == 'community') {
  509. this.mixins_query = { communityId: data.value, buildingType: 1 };
  510. } else {
  511. this.mixins_query.communityId = data.communityId;
  512. this.mixins_query.id = data.roomId;
  513. this.mixins_query.buildingId = data.buildingId;
  514. this.mixins_query.unitName = data.unitId;
  515. }
  516. this.mixins_search();
  517. },
  518. // 上传文件
  519. handleRemove(file, fileList) {
  520. console.log(file, fileList);
  521. },
  522. handlePreview(file) {
  523. console.log(file);
  524. },
  525. handleExceed(files, fileList) {
  526. this.$message.warning(
  527. `当前限制选择 3 个文件,本次选择了 ${files.length} 个文件,共选择了 ${files.length + fileList.length} 个文件`
  528. );
  529. },
  530. beforeRemove(file, fileList) {
  531. return this.$confirm(`确定移除 ${file.name}?`);
  532. },
  533. /**上传图片*/
  534. clickUploadImage() {
  535. this.showImageUrlTwo = true;
  536. this.showUploadImageText = false;
  537. this.html = this.$refs.markdownEditor.getHtml();
  538. console.log('富文本内容', this.markdownEditorContent);
  539. },
  540. handleAvatarSuccess(res, file) {
  541. // this.imageUrl = URL.createObjectURL(file.raw);
  542. this.imageUrl = res.data;
  543. let contentText = document.getElementById('content');
  544. let image = document.createElement('img');
  545. image.src = res.data;
  546. contentText.appendChild(image);
  547. this.newConten = contentText;
  548. console.log('获取最新预览文本内容', contentText);
  549. console.log('this.imageUrl', this.imageUrl);
  550. console.log('handleAvatarSuccess', res, file);
  551. },
  552. handleAvatarSuccessTwo(res, file) {
  553. this.imageUrlTwo = URL.createObjectURL(file.raw);
  554. console.log('handleAvatarSuccess', res, file);
  555. },
  556. beforeAvatarUpload(file) {
  557. const isJPG = file.type === 'image/jpeg';
  558. const isPNG = file.type === 'image/png';
  559. const isLt2M = file.size / 1024 / 1024 < 2;
  560. if (!isJPG && !isPNG) {
  561. this.$message.error('上传头像图片只能是 JPG或PNG格式!');
  562. }
  563. if (!isLt2M) {
  564. this.$message.error('上传头像图片大小不能超过 2MB!');
  565. }
  566. return isJPG && isLt2M;
  567. },
  568. handleRemove(file) {
  569. console.log(file);
  570. },
  571. handlePictureCardPreview(file) {
  572. this.dialogImageUrl = file.url;
  573. this.dialogVisible = true;
  574. },
  575. handleDownload(file) {
  576. console.log(file);
  577. },
  578. /**监听单选框变化*/
  579. changeRadioRoom(val) {
  580. if (val == '指定房间') {
  581. this.ruleForm.disabledRoom = true;
  582. } else {
  583. this.ruleForm.disabledRoom = false;
  584. }
  585. console.log('监听房间单选框变化', val);
  586. },
  587. // 监听复选框变化
  588. changeCheckboxStaffRoom(val) {
  589. console.log('监听复选框变化', val);
  590. if (val) {
  591. this.ruleForm.issueRoom.radioStaff = '全部员工';
  592. }
  593. },
  594. // 指定员工
  595. changeRadioStaffRoom(val) {
  596. if (val == '指定员工') {
  597. this.ruleForm.disabledStaffRoom = true;
  598. } else {
  599. this.ruleForm.disabledStaffRoom = false;
  600. }
  601. console.log('监听员工单选框变化', val, this.ruleForm.issueRoom.staff);
  602. },
  603. // 是否紧急
  604. changeRadioExigencyOr(val) {
  605. if (val == '否') {
  606. this.ruleForm.exigencyText = false;
  607. } else {
  608. this.ruleForm.exigencyText = true;
  609. }
  610. },
  611. // 发布活动类型
  612. changeInformType(val) {
  613. if (val == 2) {
  614. this.showUploadImage = true;
  615. }
  616. console.log('发布活动类型', val);
  617. },
  618. /**添加按钮 */
  619. add() {
  620. this.showDetail = true;
  621. this.centerDialogVisible = true;
  622. },
  623. /**查询按钮*/
  624. searchInfo() {
  625. let detaH = this.$moment(new Date()).format('HH');
  626. let detaM = this.$moment(new Date()).format('mm');
  627. let detaS = this.$moment(new Date()).format('ss');
  628. let d = detaH + ':' + detaM + ':' + detaS;
  629. if (this.searchTime && this.searchTime.length) {
  630. this.mixins_query.startTime = `${this.searchTime[0]}T${d}`;
  631. this.mixins_query.endTime = `${this.searchTime[1]}T${d}`;
  632. } else {
  633. this.mixins_query.startTime = this.$moment(new Date()).subtract(1, 'months').format('YYYY-MM-DDTHH:mm:ss');
  634. this.mixins_query.endTime = this.$moment(new Date()).format('YYYY-MM-DDTHH:mm:ss');
  635. }
  636. console.log('点击查询', this.searchTime);
  637. this.mixins_search();
  638. },
  639. /**预览富文本内容*/
  640. getHtml() {
  641. this.html = this.$refs.markdownEditor.getHtml();
  642. console.log('====================, this.markdownEditorContent================');
  643. console.log(this.html);
  644. let contentText = document.getElementById('content');
  645. this.markdownEditorContent = contentText;
  646. console.log('获取最新预览文本内容', contentText);
  647. console.log('====================================');
  648. },
  649. /**
  650. * 弹框按钮
  651. * @param type 类型
  652. * @return {void}
  653. * */
  654. dialogButton(type) {
  655. console.log('点击发布', this.selectStaff);
  656. // console.log('点击发布===========', this.ruleForm.popCommunityId);
  657. // console.log('获取富文本内容', this.html);
  658. if (type === 'prev') {
  659. this.$refs['ruleForm'].validate((valid) => {
  660. if (valid) {
  661. this.showDetail = false;
  662. let detaH = this.$moment(new Date()).format('HH');
  663. let detaM = this.$moment(new Date()).format('mm');
  664. let detaS = this.$moment(new Date()).format('ss');
  665. let d = detaH + ':' + detaM + ':' + detaS;
  666. let startTime = `${this.ruleForm.activeTime[0]}T${d}`;
  667. let endTime = `${this.ruleForm.activeTime[1]}T${d}`;
  668. let query = {
  669. communityId: this.ruleForm.popCommunityId,
  670. content: this.html,
  671. endTime: endTime,
  672. // filePath": "",
  673. id: 1,
  674. pubDate: this.$moment(new Date()).format(`YYYY-MM-DDTHH:mm:ss`),
  675. // pubPeople:ruleForm.informType,
  676. // pubStatus: "",
  677. startTime: startTime,
  678. // themePictrue: '',
  679. userId: [1, 2, 3],
  680. title: this.ruleForm.title,
  681. type: this.ruleForm.informType === '物业通知' ? 0 : 1,
  682. urgentFlag: this.ruleForm.exigencyOr == '是' ? 1 : 0
  683. // userId: [],
  684. // userType: 0
  685. };
  686. this.$http.post('/sc-community-web/notice/add', query).then((res) => {
  687. console.log('点击发布', res);
  688. });
  689. } else {
  690. return false;
  691. }
  692. });
  693. } else if (type == 'clear') {
  694. this.centerDialogVisible = false;
  695. } else {
  696. this.centerDialogVisible = false;
  697. this.$refs['ruleForm'].resetFields();
  698. }
  699. },
  700. /** 获取社区列表*/
  701. getCommunityList() {
  702. this.communityList = [];
  703. let onOption = '';
  704. this.$http.get('/sc-community/assets/community/list', {}).then((res) => {
  705. console.log('获取社区列表', res);
  706. res.data.map((res) => {
  707. onOption = {
  708. label: res.communityName,
  709. id: res.id
  710. };
  711. this.communityList.push(onOption);
  712. });
  713. });
  714. },
  715. /** 查看详情*/
  716. clickDatail(row) {
  717. console.log('查看详情', row);
  718. this.centerDialogVisible = true;
  719. this.showDetail = false;
  720. this.ruleForm.title = row.managementName;
  721. this.ruleForm.newPhone = row.phone;
  722. this.rowDetail = row;
  723. }
  724. }
  725. };
  726. </script>
  727. <style lang="scss" scoped>
  728. @import './style.scss';
  729. </style>