index.vue 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869
  1. <template>
  2. <div class="app-container">
  3. <!-- 搜索工作栏 -->
  4. <el-form
  5. :model="queryParams"
  6. ref="queryForm"
  7. size="small"
  8. :inline="true"
  9. v-show="showSearch"
  10. label-width="68px"
  11. >
  12. <el-form-item label="提醒标题" prop="remindTitle">
  13. <el-input
  14. v-model="queryParams.remindTitle"
  15. placeholder="请输入提醒标题"
  16. clearable
  17. @keyup.enter.native="handleQuery"
  18. />
  19. </el-form-item>
  20. <!-- <el-form-item label="提醒类型" prop="remindType">
  21. <el-select v-model="queryParams.remindType" placeholder="请选择提醒类型" clearable size="small">
  22. <el-option label="请选择字典生成" value="" />
  23. </el-select>
  24. </el-form-item>
  25. <el-form-item label="提醒状态" prop="remindStatus">
  26. <el-select v-model="queryParams.remindStatus" placeholder="请选择提醒状态" clearable size="small">
  27. <el-option label="请选择字典生成" value="" />
  28. </el-select>
  29. </el-form-item> -->
  30. <el-form-item label="发布日期" prop="pubDate">
  31. <el-date-picker
  32. v-model="queryParams.pubDate"
  33. style="width: 240px"
  34. value-format="yyyy-MM-dd"
  35. type="daterange"
  36. range-separator="-"
  37. start-placeholder="开始日期"
  38. end-placeholder="结束日期"
  39. />
  40. </el-form-item>
  41. <el-form-item label="完成日期" prop="doneDate">
  42. <el-date-picker
  43. v-model="queryParams.doneDate"
  44. style="width: 240px"
  45. value-format="yyyy-MM-dd"
  46. type="daterange"
  47. range-separator="-"
  48. start-placeholder="开始日期"
  49. end-placeholder="结束日期"
  50. />
  51. </el-form-item>
  52. <el-form-item>
  53. <el-button type="primary" icon="el-icon-search" @click="handleQuery"
  54. >搜索</el-button
  55. >
  56. <el-button icon="el-icon-refresh" @click="resetQuery">重置</el-button>
  57. </el-form-item>
  58. </el-form>
  59. <!-- 操作工具栏 -->
  60. <el-row :gutter="10" class="mb8">
  61. <el-col :span="1.5">
  62. <el-button
  63. v-if="taskStatus == 0"
  64. type="primary"
  65. plain
  66. icon="el-icon-plus"
  67. size="mini"
  68. @click="handleAdd"
  69. v-hasPermi="['backend:remind-info:create']"
  70. >新增</el-button
  71. >
  72. </el-col>
  73. <!-- <el-col :span="1.5">
  74. <el-button
  75. type="warning"
  76. plain
  77. icon="el-icon-download"
  78. size="mini"
  79. @click="handleExport"
  80. :loading="exportLoading"
  81. v-hasPermi="['backend:remind-info:export']"
  82. >导出</el-button
  83. >
  84. </el-col> -->
  85. <right-toolbar
  86. :showSearch.sync="showSearch"
  87. @queryTable="getList"
  88. ></right-toolbar>
  89. </el-row>
  90. <!-- 列表 -->
  91. <el-tabs
  92. type="border-card"
  93. v-model.trim="selectedTab"
  94. @tab-click="clickTab"
  95. >
  96. <el-tab-pane label="已下发" name="type0">
  97. <el-table v-loading="loading" :data="list">
  98. <el-table-column label="序号" align="center" type="index" />
  99. <el-table-column label="提醒标题" align="center" prop="remindTitle" />
  100. <el-table-column label="提醒内容" align="center" prop="remindContent">
  101. <template slot-scope="scope">
  102. <div class="ellipsis-text" v-html="scope.row.remindContent"></div>
  103. </template>
  104. </el-table-column>
  105. <!-- <el-table-column label="提醒类型" align="center" prop="remindType" />
  106. <el-table-column label="提醒状态" align="center" prop="remindStatus" /> -->
  107. <el-table-column label="所属部门" align="center" prop="deptName" />
  108. <el-table-column label="发布日期" align="center" prop="pubDate" />
  109. <el-table-column
  110. label="操作"
  111. align="center"
  112. class-name="small-padding fixed-width"
  113. >
  114. <!-- 如果发布了只有查看 -->
  115. <template v-slot="scope">
  116. <el-button
  117. size="mini"
  118. type="text"
  119. icon="el-icon-delete"
  120. @click="handleDelete(scope.row)"
  121. v-hasPermi="['backend:remind-info:delete']"
  122. >删除</el-button
  123. >
  124. <el-button
  125. size="mini"
  126. type="text"
  127. icon="el-icon-view"
  128. @click="handleSee(scope.row)"
  129. >查看</el-button
  130. >
  131. </template>
  132. </el-table-column>
  133. </el-table>
  134. </el-tab-pane>
  135. <el-tab-pane label="已接受" name="type1">
  136. <el-table v-loading="loading" :data="list">
  137. <el-table-column label="序号" align="center" type="index" />
  138. <!-- <el-table-column label="提醒信息id" align="center" prop="remindInfoId" /> -->
  139. <!-- <el-table-column label="广播接收组织类型2:大队,3:街道,4社会单位" align="center" prop="broadType" /> -->
  140. <el-table-column
  141. label="提醒标题"
  142. align="center"
  143. prop="remind_title"
  144. />
  145. <el-table-column label="发送组织" align="center" prop="deptName" />
  146. <el-table-column label="接收组织" align="center" prop="reciverName" />
  147. <el-table-column label="发布日期" align="center" prop="pubDate">
  148. <template v-slot="scope">
  149. <span>{{ parseTime(scope.row.pub_date, "{y}-{m}-{d}") }}</span>
  150. </template>
  151. </el-table-column>
  152. <el-table-column label="完成日期" align="center" prop="doneDate"
  153. ><template v-slot="scope">
  154. <span>{{ parseTime(scope.row.done_date, "{y}-{m}-{d}") }}</span>
  155. </template>
  156. </el-table-column>
  157. <el-table-column label="是否已读" align="center" prop="isRead">
  158. <template v-slot="scope">
  159. <span>{{ scope.row.is_read == 0 ? "未读" : "已读" }}</span>
  160. </template>
  161. </el-table-column>
  162. <el-table-column label="是否完成" align="center" prop="isDone">
  163. <template v-slot="scope">
  164. <span>{{ scope.row.is_done == 0 ? "否" : "是" }}</span></template
  165. >
  166. </el-table-column>
  167. <el-table-column
  168. label="操作"
  169. align="center"
  170. class-name="small-padding fixed-width"
  171. >
  172. <template v-slot="scope">
  173. <el-button
  174. size="mini"
  175. type="text"
  176. icon="el-icon-edit"
  177. @click="handleComplete(scope.row)"
  178. v-if="scope.row.is_done == 0"
  179. >完成</el-button
  180. >
  181. <el-button
  182. size="mini"
  183. type="text"
  184. icon="el-icon-view"
  185. @click="handleSee2(scope.row)"
  186. >查看</el-button
  187. >
  188. </template>
  189. </el-table-column>
  190. </el-table>
  191. </el-tab-pane>
  192. <el-tab-pane label="信息反馈" name="type2">
  193. <el-table v-loading="loading" :data="list">
  194. <el-table-column label="序号" align="center" type="index" />
  195. <el-table-column
  196. label="提醒标题"
  197. align="center"
  198. prop="remind_title"
  199. />
  200. <el-table-column label="发送组织" align="center" prop="deptName" />
  201. <el-table-column label="接收组织" align="center" prop="reciverName" />
  202. <el-table-column label="发布日期" align="center" prop="pubDate">
  203. <template v-slot="scope">
  204. <span>{{ parseTime(scope.row.pub_date, "{y}-{m}-{d}") }}</span>
  205. </template>
  206. </el-table-column>
  207. <el-table-column label="完成日期" align="center" prop="doneDate"
  208. ><template v-slot="scope">
  209. <span>{{ parseTime(scope.row.done_date, "{y}-{m}-{d}") }}</span>
  210. </template>
  211. </el-table-column>
  212. <el-table-column label="是否已读" align="center" prop="isRead">
  213. <template v-slot="scope">
  214. <span>{{ scope.row.is_read == 0 ? "未读" : "已读" }}</span>
  215. </template>
  216. </el-table-column>
  217. <el-table-column label="是否完成" align="center" prop="isDone">
  218. <template v-slot="scope">
  219. <span>{{
  220. scope.row.is_done == 0 ? "未读" : "已读"
  221. }}</span></template
  222. >
  223. </el-table-column>
  224. <el-table-column
  225. label="操作"
  226. align="center"
  227. class-name="small-padding fixed-width"
  228. >
  229. <template v-slot="scope">
  230. <el-button
  231. size="mini"
  232. type="text"
  233. icon="el-icon-edit"
  234. @click="handleComplete(scope.row)"
  235. v-if="scope.row.is_done == 0"
  236. >完成</el-button
  237. >
  238. <el-button
  239. size="mini"
  240. type="text"
  241. icon="el-icon-view"
  242. @click="handleSee2(scope.row)"
  243. >查看</el-button
  244. >
  245. </template>
  246. </el-table-column>
  247. </el-table>
  248. </el-tab-pane>
  249. </el-tabs>
  250. <!-- 分页组件 -->
  251. <pagination
  252. v-show="total > 0"
  253. :total="total"
  254. :page.sync="queryParams.pageNo"
  255. :limit.sync="queryParams.pageSize"
  256. @pagination="getList"
  257. />
  258. <!-- 对话框(添加 / 修改) -->
  259. <el-dialog
  260. :title="title"
  261. :visible.sync="open"
  262. width="80%"
  263. v-dialogDrag
  264. append-to-body
  265. >
  266. <el-form ref="form" :model="form" :rules="rules" label-width="80px">
  267. <el-form-item label="提醒标题" prop="remindTitle">
  268. <el-input v-model="form.remindTitle" placeholder="请输入提醒标题" />
  269. </el-form-item>
  270. <el-form-item label="提醒内容">
  271. <editor v-model="form.remindContent" :min-height="192" />
  272. </el-form-item>
  273. <el-form-item label="附件内容">
  274. <fileUpload v-model="form.fileUrls" :fileType="files" />
  275. </el-form-item>
  276. <!-- <el-form-item label="提醒类型" prop="remindType">
  277. <el-select v-model="form.remindType" placeholder="请选择提醒类型">
  278. <el-option label="请选择字典生成" value="" />
  279. </el-select>
  280. </el-form-item>
  281. <el-form-item label="提醒状态" prop="remindStatus">
  282. <el-select v-model="form.remindStatus" placeholder="请选择提醒状态">
  283. <el-option label="请选择字典生成" value="" />
  284. </el-select>
  285. </el-form-item> -->
  286. <!-- <el-form-item label="所属部门id" prop="deptId">
  287. <el-input v-model="form.deptId" placeholder="请输入所属部门id" />
  288. </el-form-item> -->
  289. <el-form-item label="选择组织">
  290. <span
  291. type="primary"
  292. plain
  293. @click="chooseOrgan(2)"
  294. class="type-org"
  295. :class="{ active: clickType == 2 }"
  296. >大队</span
  297. >
  298. <span
  299. type="primary"
  300. plain
  301. @click="chooseOrgan(3)"
  302. class="type-org"
  303. :class="{ active: clickType == 3 }"
  304. >街道</span
  305. >
  306. </el-form-item>
  307. <choiceOrange
  308. ref="choiceSelect"
  309. :userId="form.id"
  310. :type="'comInfo'"
  311. :clickType="clickType"
  312. :open="open"
  313. :userType="userType"
  314. ></choiceOrange>
  315. </el-form>
  316. <div slot="footer" class="dialog-footer">
  317. <el-button type="primary" @click="submitForm">确 定</el-button>
  318. <el-button @click="cancel">取 消</el-button>
  319. </div>
  320. </el-dialog>
  321. <el-dialog
  322. title="详细信息查看"
  323. :visible.sync="openSeedialog"
  324. width="85vw"
  325. class="detail detail-style"
  326. >
  327. <el-form
  328. ref="form"
  329. :model="deatilData"
  330. label-width="auto"
  331. label-position="left"
  332. >
  333. <el-row :gutter="20">
  334. <el-col :span="10">
  335. <el-form-item label="提醒标题:" prop="remindTitle">
  336. <div>{{ deatilData.remindTitle }}</div>
  337. </el-form-item></el-col
  338. >
  339. <el-col :span="14">
  340. <el-form-item label="提醒内容:" prop="remindContent" style="line-height:6px !important">
  341. <span v-html="deatilData.remindContent" style="display: flex;justify-content: start;"></span>
  342. </el-form-item>
  343. </el-col>
  344. </el-row>
  345. <el-row :gutter="20">
  346. <el-col :span="14">
  347. <el-form-item label="发布日期:" prop="pubDate">
  348. <div v-html="deatilData.pubDate"></div>
  349. </el-form-item>
  350. </el-col>
  351. </el-row>
  352. <el-row :gutter="20">
  353. <el-col :span="14">
  354. <el-form-item label="附件内容:" prop="pubDate">
  355. <fileUpload v-model="deatilData.fileUrls" :isShowTip="false" />
  356. </el-form-item>
  357. </el-col>
  358. </el-row>
  359. </el-form>
  360. <span slot="footer" class="dialog-footer">
  361. <el-button @click="openSeedialog = false">关 闭</el-button>
  362. </span>
  363. </el-dialog>
  364. <!-- 已接受和信息反馈 -->
  365. <el-dialog
  366. title="详细信息查看"
  367. :visible.sync="openSeedialog2"
  368. width="85vw"
  369. class="detail detail-style"
  370. >
  371. <el-form
  372. ref="form"
  373. :model="deatilData2"
  374. label-width="auto"
  375. label-position="left"
  376. >
  377. <el-row :gutter="20">
  378. <el-col :span="10">
  379. <el-form-item label="提醒标题:">
  380. <div>{{ deatilData2.remindInfoRespVO?.remindTitle }}</div>
  381. </el-form-item></el-col
  382. >
  383. <el-col :span="14">
  384. <el-form-item label="提醒内容:" prop="remindContent">
  385. <div v-html="deatilData2.remindInfoRespVO?.remindContent"></div>
  386. </el-form-item>
  387. </el-col>
  388. </el-row>
  389. <el-row :gutter="20">
  390. <el-col :span="10">
  391. <el-form-item label="发布日期:" prop="pubDate">
  392. <div>{{ deatilData2.pubDate }}</div>
  393. </el-form-item>
  394. </el-col>
  395. <el-col :span="14">
  396. <el-form-item label="完成日期:" prop="doneDate">
  397. <div>{{ deatilData2.doneDate }}</div>
  398. </el-form-item>
  399. </el-col>
  400. </el-row>
  401. <el-row :gutter="20">
  402. <el-col :span="14">
  403. <el-form-item label="完成情况描述:" prop="remindContent">
  404. <div v-html="deatilData2.donetext"></div>
  405. </el-form-item>
  406. </el-col>
  407. </el-row>
  408. <el-row :gutter="20">
  409. <el-col :span="14">
  410. <el-form-item label="附件内容:" prop="pubDate">
  411. <fileUpload v-model="deatilData2.fileUrls" :isShowTip="false" />
  412. </el-form-item>
  413. </el-col>
  414. </el-row>
  415. <el-row :gutter="20" v-if="deatilData2.doneFileUrls">
  416. <el-col :span="14">
  417. <el-form-item label="完成情况附件:" prop="doneFileUrls">
  418. <fileUpload v-model="deatilData2.doneFileUrls" :isShowTip="false" />
  419. </el-form-item>
  420. </el-col>
  421. </el-row>
  422. </el-form>
  423. <span slot="footer" class="dialog-footer">
  424. <el-button @click="openSeedialog2 = false">关 闭</el-button>
  425. </span>
  426. </el-dialog>
  427. <!-- 完成的弹窗 -->
  428. <el-dialog
  429. :title="title"
  430. :visible.sync="openSeeComplete"
  431. width="80%"
  432. v-dialogDrag
  433. append-to-body
  434. >
  435. <el-form ref="form" :model="form" :rules="rules" label-width="120px">
  436. <el-form-item label="提醒标题" prop="remindTitle">
  437. <el-input v-model="form.remindTitle" disabled />
  438. </el-form-item>
  439. <el-form-item label="提醒内容">
  440. <el-input v-model="form.remindContent" disabled />
  441. </el-form-item>
  442. <el-form-item label="完成情况描述">
  443. <el-input v-model="form.donetext" />
  444. </el-form-item>
  445. <el-form-item label="附件内容">
  446. <fileUpload v-model="form.fileUrls" :fileType="files" />
  447. </el-form-item>
  448. </el-form>
  449. <div slot="footer" class="dialog-footer">
  450. <el-button type="primary" @click="submitFormComplete">确 定</el-button>
  451. <el-button @click="cancelComplete">取 消</el-button>
  452. </div>
  453. </el-dialog>
  454. </div>
  455. </template>
  456. <script>
  457. import {
  458. createRemindInfo,
  459. updateRemindInfo,
  460. deleteRemindInfo,
  461. getRemindInfo,
  462. getRemindInfoPage,
  463. exportRemindInfoExcel,
  464. getuserinfo,
  465. remindBroadFinish,
  466. } from "@/api/backend/remindInfo";
  467. import { getRemindBroad, getRemindBroadPage, getDepts } from "@/api/backend/remindBroad";
  468. import { getUserProfile } from "@/api/system/user";
  469. import Editor from "@/components/Editor";
  470. import choiceOrange from "@/components/choiceOrange";
  471. import FileUpload from "@/components/FileUpload";
  472. import { getTime } from "../../../utils";
  473. import { getNowDateTime } from "@/utils/ruoyi";
  474. export default {
  475. name: "RemindInfo",
  476. components: {
  477. Editor,
  478. choiceOrange,
  479. FileUpload,
  480. },
  481. data() {
  482. return {
  483. // 遮罩层
  484. loading: true,
  485. // 导出遮罩层
  486. exportLoading: false,
  487. // 显示搜索条件
  488. showSearch: true,
  489. // 总条数
  490. total: 0,
  491. // 重要提醒信息列表
  492. list: [],
  493. // 弹出层标题
  494. title: "",
  495. // 是否显示弹出层
  496. open: false,
  497. // 查询参数
  498. queryParams: {
  499. pageNo: 1,
  500. pageSize: 10,
  501. remindTitle: null,
  502. // remindType: 1,
  503. // remindStatus: 1,
  504. pubDate: [],
  505. doneDate: [],
  506. id: null,
  507. pubDateStart: null,
  508. pubDateEnd: null,
  509. doneDateStart: null,
  510. doneDateEnd: null,
  511. },
  512. // 表单参数
  513. form: {
  514. deptId: null,
  515. remindZzList: [],
  516. },
  517. // 表单校验
  518. rules: {
  519. remindTitle: [
  520. { required: true, message: "提醒标题不能为空", trigger: "blur" },
  521. ],
  522. },
  523. selectedTab: "type0",
  524. taskStatus: "0",
  525. files: ["png", "jpg", "jpeg", "doc", "xls", "ppt", "txt", "pdf"],
  526. clickType: 2,
  527. openSeedialog: false,
  528. deatilData: {},
  529. listDeptData: [],
  530. userType: null,
  531. allStreetData: null,
  532. streetId: null, //当前登录用户对应的id
  533. deatilData2: {},
  534. openSeedialog2: false, //已接受和信息反馈
  535. openSeeComplete: false, //完成的弹窗
  536. clickComplete: {}, //完成自动显示的数据
  537. };
  538. },
  539. created() {
  540. this.allStreetData = JSON.parse(localStorage.getItem("streetList"));
  541. this.getDeptId();
  542. this.getAllDept();
  543. },
  544. methods: {
  545. chooseOrgan(type) {
  546. this.clickType = type;
  547. },
  548. //获取街道id
  549. getDeptId() {
  550. getUserProfile().then((response) => {
  551. this.form.deptId = response.data ? response.data.dept.id : "";
  552. this.userType = this.form.deptId;
  553. console.log('this.userType', this.userType)
  554. getuserinfo(response.data.id)
  555. .then((res) => {
  556. this.streetId = res.data.streetInfo.id;
  557. // this.streetId = res.data.street
  558. console.log("res=====", res);
  559. })
  560. .catch((err) => {
  561. console.log("err", err);
  562. });
  563. console.log("this.form.response", response);
  564. });
  565. },
  566. //获取所有的部门
  567. getAllDept() {
  568. getDepts().then((response) => {
  569. this.listDeptData = response.data;
  570. this.getList();
  571. console.log("response===", response);
  572. });
  573. },
  574. /** 查询列表 */
  575. getList() {
  576. this.loading = true;
  577. this.queryParams.userId = this.$store.state.user.id;
  578. // 执行查询
  579. if (this.taskStatus == 0) {
  580. getRemindInfoPage(this.queryParams).then((response) => {
  581. this.loading = false;
  582. this.listDeptData.forEach((item) => {
  583. response.data.list.forEach((key) => {
  584. if (item.id == key.deptId) {
  585. key.deptName = item.name;
  586. }
  587. });
  588. });
  589. this.list = response.data.list;
  590. this.total = response.data.total;
  591. });
  592. } else {
  593. //已接受和信息反馈的接口
  594. if (this.taskStatus == 1) {
  595. this.queryParams.reciver =
  596. this.userType > 10000 ? this.streetId : this.userType;
  597. this.queryParams.sender = null;
  598. } else {
  599. this.queryParams.sender = this.userType;
  600. this.queryParams.reciver = null;
  601. }
  602. getRemindBroadPage(this.queryParams).then((response) => {
  603. this.loading = false;
  604. console.log("this.listDeptData", this.listDeptData);
  605. response.data.records.forEach((key) => {
  606. this.listDeptData.forEach((item) => {
  607. if (item.id == key.sender) {
  608. key.deptName = item.name;
  609. } else if (item.id == key.reciver) {
  610. key.reciverName = item.name;
  611. }
  612. });
  613. this.allStreetData.forEach((item) => {
  614. if (item.key == key.reciver) {
  615. key.reciverName = item.value;
  616. }
  617. });
  618. });
  619. this.list = response.data.records;
  620. console.log("response.data.records", response.data.records);
  621. this.total = response.data.total;
  622. });
  623. }
  624. },
  625. /** 取消按钮 */
  626. cancel() {
  627. this.open = false;
  628. this.reset();
  629. },
  630. /** 表单重置 */
  631. reset() {
  632. this.form = {
  633. id: undefined,
  634. remindTitle: undefined,
  635. remindContent: undefined,
  636. remindType: undefined,
  637. remindStatus: undefined,
  638. deptId: undefined,
  639. pubDate: undefined,
  640. remindZzList: [],
  641. };
  642. this.resetForm("form");
  643. },
  644. /** 搜索按钮操作 */
  645. handleQuery() {
  646. this.queryParams.pageNo = 1;
  647. if (this.queryParams.pubDate.length > 0) {
  648. this.queryParams.pubDateStart = this.queryParams.pubDate[0];
  649. this.queryParams.pubDateEnd = this.queryParams.pubDate[1];
  650. }
  651. if (this.queryParams.doneDate.length > 0) {
  652. this.queryParams.doneDateStart = this.queryParams.doneDate[0];
  653. this.queryParams.doneDateEnd = this.queryParams.doneDate[1];
  654. }
  655. console.log(
  656. "ssssssss",
  657. this.queryParams.pubDate,
  658. this.queryParams.doneDate
  659. );
  660. this.getList();
  661. },
  662. /** 重置按钮操作 */
  663. resetQuery() {
  664. this.resetForm("queryForm");
  665. this.handleQuery();
  666. },
  667. /** 新增按钮操作 */
  668. handleAdd() {
  669. this.reset();
  670. this.open = true;
  671. this.clickType = 2;
  672. this.title = "添加重要提醒信息";
  673. this.getDeptId();
  674. },
  675. /** 查看按钮操作 */
  676. handleSee(row) {
  677. const id = row.id;
  678. getRemindInfo(id).then((response) => {
  679. this.deatilData = response.data;
  680. this.openSeedialog = true;
  681. this.title = "查看重要提醒信息";
  682. });
  683. },
  684. // 已接受和信息反馈查看按钮
  685. handleSee2(row) {
  686. console.log("row", row);
  687. const id = row.broad_id;
  688. getRemindBroad(id).then((response) => {
  689. this.deatilData2 = response.data;
  690. this.openSeedialog2 = true;
  691. this.title = "查看重要提醒信息";
  692. });
  693. },
  694. //完成
  695. handleComplete(row) {
  696. this.clickComplete = row;
  697. this.openSeeComplete = true;
  698. this.form.remindTitle = row.remind_title;
  699. this.form.remindContent = row.remind_content;
  700. this.form.broadId = row.broad_id;
  701. this.form.broadType = row.broad_type;
  702. },
  703. submitFormComplete() {
  704. console.log("this.form222222", this.form);
  705. this.form.fileUrls =
  706. this.form.fileUrls && this.form.fileUrls.length > 0
  707. ? this.form.fileUrls.split(",")
  708. : [];
  709. this.form.doneDate = "2024-3-6";
  710. this.$refs["form"].validate((valid) => {
  711. if (!valid) {
  712. return;
  713. }
  714. remindBroadFinish(this.form).then((response) => {
  715. this.$modal.msgSuccess("提交成功");
  716. this.openSeeComplete = false;
  717. this.getList();
  718. });
  719. });
  720. },
  721. /** 取消按钮 */
  722. cancelComplete() {
  723. this.openSeeComplete = false;
  724. this.reset();
  725. },
  726. /** 提交按钮 */
  727. submitForm() {
  728. // this.alreadySelectedOrgList = this.$refs["choiceSelect"].confirmMSg()
  729. // this.orgType = this.$refs["choiceSelect"].confirmoOrgTypeMSg()
  730. const alreadyChooseOrg = this.$refs["choiceSelect"].confirmMSg();
  731. alreadyChooseOrg.forEach((item) => {
  732. if (item.deptName) {
  733. this.form.remindZzList.push({
  734. broadType: 2,
  735. reciver: parseInt(item.id),
  736. });
  737. } else if (item.sjxfjg) {
  738. this.form.remindZzList.push({
  739. broadType: 3,
  740. reciver: parseInt(item.id),
  741. });
  742. }
  743. });
  744. this.$refs["form"].validate((valid) => {
  745. if (!valid) {
  746. return;
  747. }
  748. if (this.form.remindZzList.length < 1) {
  749. return this.$modal.msgError("请选择组织到右侧");
  750. }
  751. // 修改的提交
  752. // if (this.form.id != null) {
  753. // updateRemindInfo(this.form).then((response) => {
  754. // this.$modal.msgSuccess("修改成功");
  755. // this.open = false;
  756. // this.getList();
  757. // });
  758. // return;
  759. // }
  760. // 添加的提交
  761. this.form.fileUrls = this.form.fileUrls
  762. ? this.form.fileUrls.split(",")
  763. : [];
  764. console.log("this.form", this.form);
  765. createRemindInfo(this.form).then((response) => {
  766. this.$modal.msgSuccess("新增成功");
  767. this.open = false;
  768. this.getList();
  769. });
  770. });
  771. },
  772. /** 删除按钮操作 */
  773. handleDelete(row) {
  774. const id = row.id;
  775. this.$modal
  776. .confirm('是否确认删除重要提醒信息编号为"' + id + '"的数据项?')
  777. .then(function () {
  778. return deleteRemindInfo(id);
  779. })
  780. .then(() => {
  781. this.getList();
  782. this.$modal.msgSuccess("删除成功");
  783. })
  784. .catch(() => {});
  785. },
  786. /** 导出按钮操作 */
  787. handleExport() {
  788. // 处理查询参数
  789. let params = { ...this.queryParams };
  790. params.pageNo = undefined;
  791. params.pageSize = undefined;
  792. this.$modal
  793. .confirm("是否确认导出所有重要提醒信息数据项?")
  794. .then(() => {
  795. this.exportLoading = true;
  796. return exportRemindInfoExcel(params);
  797. })
  798. .then((response) => {
  799. this.$download.excel(response, "重要提醒信息.xls");
  800. this.exportLoading = false;
  801. })
  802. .catch(() => {});
  803. },
  804. clickTab(e) {
  805. console.log(e._props.name, "e._props.name;e._props.name;");
  806. const name = e._props.name;
  807. this.queryParams.pageNo = 1;
  808. this.list = [];
  809. switch (name) {
  810. case "type0":
  811. this.taskStatus = "0";
  812. this.getList();
  813. break;
  814. case "type1":
  815. this.taskStatus = "1";
  816. this.getList();
  817. break;
  818. case "type2":
  819. this.taskStatus = "2";
  820. this.getList();
  821. break;
  822. default:
  823. break;
  824. }
  825. },
  826. },
  827. };
  828. </script>
  829. <style scoped lang="scss">
  830. .type-org {
  831. border: 1px solid #a3d3ff;
  832. color: #1890ff;
  833. background: #e8f4ff;
  834. margin-right: 20px;
  835. padding: 5px 20px;
  836. border-radius: 3px;
  837. cursor: pointer;
  838. }
  839. .active {
  840. color: #fff;
  841. background: #46a6ff;
  842. }
  843. .ellipsis-text {
  844. display: -webkit-box;
  845. -webkit-line-clamp: 2; /* 控制显示的行数 */
  846. -webkit-box-orient: vertical;
  847. overflow: hidden;
  848. text-overflow: ellipsis;
  849. white-space: normal; /* 确保文字正常换行 */
  850. word-break: break-all; /* 确保长单词或URL正常换行 */
  851. }
  852. .detail-style {
  853. ::v-deep .el-row {
  854. border-bottom: 1px solid #eaeef0 !important;
  855. margin-bottom: 10px !important;
  856. }
  857. ::v-deep .el-dialog__header {
  858. background: #e1e9f4 !important;
  859. }
  860. }
  861. </style>