new-home.vue 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761
  1. <template>
  2. <div class="app-container">
  3. <el-row>
  4. <el-col :span="12" class="firstcol">
  5. <div class="vue-grid-item cssTransforms">
  6. <div class="el-card ibps-desktop-dashboard is-always-shadow jbd-home-card" alias="paddingApprove">
  7. <div class="el-card__header">
  8. <div class="clearfix">
  9. <span class="jbd-font-style"><i class="el-icon-edit"></i> 待办事宜</span>
  10. </div>
  11. </div>
  12. <el-table
  13. v-loading="waitLoading"
  14. :data="pendingData"
  15. style="color: #000"
  16. align="center"
  17. size="mini"
  18. border
  19. class="jbd-home-task"
  20. @row-click="handleLinkClick"
  21. :row-class-name="tableRowClassName"
  22. >
  23. <el-table-column show-overflow-tooltip label="年份" width="60">
  24. <template slot-scope="scope">
  25. {{ getParenthesesStr(scope.row.subject)[0] }}
  26. </template>
  27. </el-table-column>
  28. <el-table-column
  29. prop="subject"
  30. label="事务名称"
  31. show-overflow-tooltip
  32. >
  33. <template slot-scope="scope">
  34. {{ scope.row.subject.split('(')[0] }}
  35. </template>
  36. </el-table-column>
  37. <el-table-column
  38. show-overflow-tooltip
  39. width="100"
  40. label="状态"
  41. >
  42. <template slot-scope="scope">
  43. {{ '待' + scope.row.name }}
  44. </template>
  45. </el-table-column>
  46. <el-table-column
  47. prop="startDept"
  48. show-overflow-tooltip
  49. width="80"
  50. label="发起部门"
  51. />
  52. <el-table-column
  53. prop="forwardBy"
  54. show-overflow-tooltip
  55. width="100"
  56. label="任务提交人"
  57. />
  58. <el-table-column
  59. show-overflow-tooltip
  60. width="145"
  61. label="时间"
  62. >
  63. <template slot-scope="scope">
  64. {{ scope.row.createTime.slice(0, 16) }}
  65. </template>
  66. </el-table-column>
  67. </el-table>
  68. <div>
  69. <el-pagination
  70. @current-change="handleCurrentChange"
  71. :current-page.sync="pendingPage.page"
  72. :page-size="pendingPage.limit"
  73. layout="total, prev, pager, next"
  74. :total="pendingPage.totalCount"
  75. >
  76. </el-pagination>
  77. </div>
  78. </div>
  79. </div>
  80. <bpmn-formrender
  81. :visible="dialogFormVisible"
  82. :task-id="taskId"
  83. :waiJian="waiJian"
  84. :title="FlowName"
  85. :processName="processName"
  86. @callback="getWait()"
  87. @close="visible => (dialogFormVisible = visible)"
  88. />
  89. </el-col>
  90. <el-col :span="12" class="firstcol">
  91. <!-- 展开工作栏-->
  92. <div
  93. v-if="!drawer"
  94. class="jbd-control-cont"
  95. style="background-color: #ddfff1"
  96. >
  97. <el-button
  98. type="success"
  99. icon="el-icon-caret-right"
  100. style="width: 100%; height: 100%"
  101. plain
  102. circle
  103. @mouseover.native="handleClose()"
  104. @mouseleave.native="handleClose()"
  105. />
  106. <p style="color: #000000; font-size: 14px">公</p>
  107. <p style="color: #000000; font-size: 14px">告</p>
  108. </div>
  109. <div class="vue-grid-item cssTransforms">
  110. <div
  111. class="el-card ibps-desktop-dashboard is-always-shadow jbd-home-card"
  112. alias="paddingApprove"
  113. style="width: 100%"
  114. >
  115. <div class="el-card__header">
  116. <div class="clearfix">
  117. <span class="jbd-font-style"><i class="el-icon-document-remove" /> 已办事宜</span>
  118. </div>
  119. </div>
  120. <el-table
  121. v-loading="orverLoading"
  122. :data="handledData"
  123. align="center"
  124. style="color: #000"
  125. class="jbd-home-task"
  126. :row-class-name="tableRowClassName"
  127. border
  128. size="mini"
  129. @row-click="handleLinkClickOrver"
  130. >
  131. <el-table-column
  132. show-overflow-tooltip
  133. label="年份"
  134. width="60"
  135. >
  136. <template slot-scope="scope">
  137. {{ getParenthesesStr(scope.row.subject)[0] }}
  138. </template>
  139. </el-table-column>
  140. <el-table-column
  141. prop="subject"
  142. label="事务名称"
  143. show-overflow-tooltip
  144. >
  145. <template slot-scope="scope">
  146. {{ scope.row.subject.split('(')[0] }}
  147. </template>
  148. </el-table-column>
  149. <el-table-column
  150. show-overflow-tooltip
  151. label="状态"
  152. width="100"
  153. >
  154. <template slot-scope="scope">
  155. {{ scope.row.curNode ? scope.row.status == 'running' ? '已发起' : '已' + scope.row.curNode : contOfValue(scope.row.status) }}
  156. </template>
  157. </el-table-column>
  158. <el-table-column
  159. show-overflow-tooltip
  160. label="发起部门"
  161. width="80"
  162. >
  163. <template slot-scope="scope">
  164. {{ getParenthesesStr(scope.row.subject)[1] }}
  165. </template>
  166. </el-table-column>
  167. <el-table-column
  168. show-overflow-tooltip
  169. label="任务提交人"
  170. width="100"
  171. >
  172. <template slot-scope="scope">
  173. {{ getParenthesesStr(scope.row.subject)[2] }}
  174. </template>
  175. </el-table-column>
  176. <el-table-column
  177. show-overflow-tooltip
  178. width="145"
  179. label="办理时间"
  180. >
  181. <template slot-scope="scope">
  182. {{ scope.row.createTime.slice(0, 16) }}
  183. </template>
  184. </el-table-column>
  185. </el-table>
  186. <div>
  187. <el-pagination
  188. @current-change="orverCurrentChange"
  189. :current-page.sync="orverPage.page"
  190. :page-size="orverPage.limit"
  191. layout="total, prev, pager, next"
  192. :total="orverPage.totalCount"
  193. >
  194. </el-pagination>
  195. </div>
  196. <!-- <div class="el-card__body">
  197. <div class="el-scrollbar" style="height: 100%;width: 100%;">
  198. <div class="ibps-scrollbar-wrapper el-scrollbar__wrap" style="margin-bottom: -8px; margin-right: -8px;">
  199. <div class="el-scrollbar__view">
  200. <div class="pending-Tabs el-tabs el-tabs--top">
  201. <div class="el-tabs__content">
  202. <div class="el-tab-pane">
  203. <div class="ibps-pr-10 ibps-list ibps-list-default ibps-list-horizontal ibps-list-split">
  204. <div class="ibps-list-container">
  205. <ul
  206. v-for='(item0,index1) in handledData'
  207. :key='index1'
  208. class="ibps-list-items"
  209. >
  210. <li
  211. class="ibps-list-item"
  212. style="cursor: pointer;"
  213. @click="handleLinkClickOrver(item0.id)"
  214. >
  215. <div class="ibps-list-item-meta">
  216. <div class="ibps-list-item-meta-avatar">
  217. <span class="el-avatar el-avatar--icon el-avatar--circle" style="background:#CC7832;"><i class="el-icon-document-copy"></i></span>
  218. </div>
  219. <div class="ibps-list-item-meta-content">
  220. <div class="ibps-list-item-meta-title" style="margin-bottom: 0px;">
  221. <el-link type="primary" :underline="false">
  222. <span class="el-link--inner" style="color: #909399;">{{item0.subject}}</span>
  223. </el-link>
  224. </div>
  225. <div class="ibps-list-item-meta-description">{{ item0.createTime }}</div>
  226. </div>
  227. </div>
  228. <div class="ibps-list-item-extra"></div>
  229. </li>
  230. </ul>
  231. </div>
  232. </div>
  233. </div>
  234. </div>
  235. </div>
  236. </div>
  237. </div>
  238. </div>
  239. </div> -->
  240. </div>
  241. </div>
  242. <bpmn-formrender
  243. :visible="orverDialogFormVisible"
  244. :instance-id="instanceId"
  245. :processName="processName"
  246. @callback="getOrver()"
  247. @close="visible => (orverDialogFormVisible = visible)"
  248. />
  249. </el-col>
  250. </el-row>
  251. <el-drawer
  252. title=""
  253. style="overflow: auto"
  254. :visible.sync="drawer"
  255. :direction="direction"
  256. :before-close="handleClose"
  257. >
  258. <el-row>
  259. <el-col :span="24">
  260. <div class="vue-grid-item cssTransforms" style="margin-bottom: 10px">
  261. <div
  262. class="el-card box-card is-always-shadow jbd-home-card"
  263. alias="userInfo"
  264. style="display: none"
  265. >
  266. <div class="el-card__body">
  267. <div class="ibps-list-item-meta">
  268. <div class="ibps-list-item-meta-avatar">
  269. <span
  270. class="el-avatar el-avatar--icon el-avatar--circle"
  271. style="
  272. height: 50px;
  273. width: 50px;
  274. line-height: 50px;
  275. font-size: 50px;
  276. color: rgb(192, 196, 204);
  277. background: rgb(255, 255, 255);
  278. "
  279. >
  280. <i class="ibps-icon-user-circle"></i>
  281. </span>
  282. </div>
  283. <div class="ibps-list-item-meta-content">
  284. <div class="ibps-list-item-meta-title">
  285. <div class="ibps-item-content">
  286. <!-- <span class="ibps-item-content-title">您好!
  287. <span>{{ orgName }}</span>
  288. <label>{{ name }}</label>
  289. </span><br><br> -->
  290. <div slot="label" class="ibps-item-content-label" style="display: none">
  291. <span style="color: #000000">所属部门<div class="home-text-border">{{ orgName }}</div></span>
  292. <span style="color: #000000">所处岗位<div class="home-text-border">{{ posName }}</div></span>
  293. <span style="color: #000000">拥有角色<div class="home-text-border">{{ roleName }}</div></span>
  294. <!-- <span>邮箱:<span> {{ email }}</span><br><br></span>
  295. <span>当前日期:<span> {{ getDate }}</span><br><br></span> -->
  296. </div>
  297. </div>
  298. </div>
  299. </div>
  300. </div>
  301. </div>
  302. <!-- <div style="margin-left:3%;"> <slot name="myslot"></slot></div> -->
  303. </div>
  304. </div>
  305. </el-col>
  306. </el-row>
  307. <el-row>
  308. <el-col :span="24" style="margin-top: 5px; font-size: 14px; margin-bottom: 10px">
  309. <div class="vue-grid-item cssTransforms">
  310. <div
  311. class="el-card ibps-desktop-dashboard is-always-shadow jbd-home-card"
  312. alias="paddingApprove"
  313. style="width: 100%"
  314. >
  315. <div class="el-card__header">
  316. <div class="clearfix">
  317. <span class="jbd-font-style" style="font-family: KaiTi">公告栏目</span>
  318. </div>
  319. </div>
  320. <div class="el-card__body">
  321. <div class="el-scrollbar" style="height: 100%; width: 100%">
  322. <div class="ibps-scrollbar-wrapper el-scrollbar__wrap" style="margin-bottom: -8px;margin-right: -8px">
  323. <div class="el-scrollbar__view">
  324. <div class="pending-Tabs el-tabs el-tabs--top">
  325. <div class="el-tabs__content">
  326. <div class="el-tab-pane">
  327. <div class="ibps-pr-10 ibps-list ibps-list-default ibps-list-horizontal ibps-list-split">
  328. <div class="ibps-list-container">
  329. <ul class="ibps-list-items">
  330. <!-- <li class="ibps-list-item" style="cursor: pointer;" v-for='(item,index0) in newsData' :key='index0' @click="handelInteriorClick(item.id)" >
  331. <div class="ibps-list-item-meta">
  332. <div class="ibps-list-item-meta-content">
  333. <div class="ibps-list-item-meta-title">
  334. <a class="el-link el-link--primary">
  335. <span class="el-link--inner jbd-font-style" style="font-size: 14px;font-family: KaiTi;">{{ item.title }}</span>
  336. </a>
  337. </div>
  338. </div>
  339. </div>
  340. <div class="ibps-list-item-extra">
  341. <div><i class="ibps-icon ibps-icon-dot-circle-o" style="color: rgb(54, 198, 211);"></i>{{ item.userName }} | {{item.publicDate.substring(0,7)}}</div>
  342. </div>
  343. </li> -->
  344. <li
  345. class="ibps-list-item"
  346. style="cursor: pointer"
  347. v-for="(item, index0) in newsDataCms.dataResult"
  348. :key="index0"
  349. @click="handelInteriorClick(item.sendtime_)"
  350. >
  351. <div class="ibps-list-item-meta">
  352. <div class="ibps-list-item-meta-content">
  353. <div class="ibps-list-item-meta-title">
  354. <a class="el-link el-link--primary">
  355. <span class="el-link--inner jbd-font-style" style="font-size: 14px; font-family: KaiTi;">
  356. <div><span>{{ item.templatename_ }}</span></div>
  357. </span>
  358. </a>
  359. </div>
  360. </div>
  361. </div>
  362. <div class="ibps-list-item-extra">
  363. <div><i class="ibps-icon ibps-icon-dot-circle-o" style="color: rgb(54, 198, 211)"></i>{{ item.tong_zhi_ren_ }} | {{ item.create_time_.substring(0, 10) }}</div>
  364. </div>
  365. </li>
  366. </ul>
  367. </div>
  368. </div>
  369. </div>
  370. </div>
  371. </div>
  372. </div>
  373. </div>
  374. </div>
  375. </div>
  376. </div>
  377. </div>
  378. </el-col>
  379. </el-row>
  380. <!-- <el-row>
  381. <el-col :span="24" style="margin-top: 5px;">
  382. <div class="vue-grid-item cssTransforms">
  383. <div
  384. class="el-card ibps-desktop-dashboard is-always-shadow"
  385. alias="paddingApprove"
  386. style="height:434px;width: 100%;"
  387. >
  388. <div class="el-card__body">
  389. <homeCalendar></homeCalendar>
  390. </div>
  391. </div>
  392. </div>
  393. </el-col>
  394. </el-row> -->
  395. </el-drawer>
  396. </div>
  397. </template>
  398. <script>
  399. import { getAccountInfo, findBpm, getNews, unreadMessage, getCmsNews } from '@/api/demo/newHomeApi'
  400. import homeCalendar from './home-calendar'
  401. import { pending, handledTask } from '@/api/platform/office/bpmReceived'
  402. import BpmnFormrender from '@/business/platform/bpmn/form/dialog'
  403. import ActionUtils from '@/utils/action'
  404. export default {
  405. components: { BpmnFormrender, homeCalendar },
  406. name: 'calendar',
  407. data() {
  408. const { testingList } = this.$store.getters
  409. return {
  410. taskId: '', // 编辑dialog需要使用
  411. waiJian: '', // 编辑dialog需要使用
  412. waitLoading: false,
  413. drawer: false,
  414. bpmData: [],
  415. newsData: [],
  416. newsDataCms: [],
  417. pendingData: [],
  418. pendingPage: {},
  419. orverPage: {},
  420. handledData: [],
  421. unreadMessageData: [],
  422. instanceId: '',
  423. orverDialogFormVisible: false,
  424. dialogFormVisible: false,
  425. orverLoading: false,
  426. direction: 'rtl',
  427. orgName: '',
  428. roleName: '',
  429. name: '',
  430. email: '',
  431. title: '',
  432. userName: '',
  433. selectName: 'one',
  434. FlowName: '',
  435. activeName: 'first',
  436. getDate: '',
  437. posName: '',
  438. pagination: { page: 1, limit: 10 },
  439. orverPagination: { page: 1, limit: 10 },
  440. sorts: {},
  441. testingList
  442. }
  443. },
  444. mounted: function () {
  445. this.loadData()
  446. },
  447. methods: {
  448. loadData() {
  449. let user = this.$store.getters.userInfo
  450. let pos, role
  451. this.orgName = user.employee.orgName
  452. for (let i in user.positions) {
  453. if (i == 0) pos = user.positions[0].name
  454. else pos = pos + ',' + user.positions[i].name
  455. }
  456. let contRole = this.unique(user.role) //去重
  457. for (let i in contRole) {
  458. if (i == 0) role = contRole[0].name
  459. else role = role + ',' + contRole[i].name
  460. }
  461. this.posName = pos
  462. this.roleName = role
  463. /* 用户消息 */
  464. this.getMessage() /* 获取公告 */
  465. this.getWait() /* 待办任务*/
  466. this.getOrver() /* 已办任务*/
  467. },
  468. tableRowClassName({ row, rowIndex }) {
  469. if (rowIndex % 2 === 1) return 'warning-row'
  470. return 'success-row'
  471. },
  472. /* 数组去重*/
  473. unique(arr) {
  474. const res = new Map()
  475. return arr.filter(arr => !res.has(arr.id) && res.set(arr.id, 1))
  476. },
  477. /* 待办分页*/
  478. handleCurrentChange(val) {
  479. this.pagination.page = val
  480. this.getWait()
  481. },
  482. /* 将状态码遍历成结果*/
  483. contOfValue(cont) {
  484. if (cont == 'running') {
  485. return '已发起'
  486. } else if (cont == 'end') {
  487. return '已结束'
  488. } else if (cont == 'manualend') {
  489. return '已结束'
  490. } else {
  491. return '暂停'
  492. }
  493. },
  494. /* 待办任务*/
  495. getWait() {
  496. this.waitLoading = true
  497. pending(this.getFormatParams(null, this.pagination)).then(response => {
  498. if (response.data.dataResult) {
  499. this.pendingData = response.data.dataResult
  500. this.pendingPage = response.data.pageResult
  501. }
  502. this.waitLoading = false
  503. }).catch(() => {
  504. this.waitLoading = false
  505. }) /* 获取待办任务 */
  506. },
  507. /* 已办分页*/
  508. orverCurrentChange(val) {
  509. this.orverPagination.page = val
  510. this.getOrver()
  511. },
  512. /* 已办任务 status*/
  513. getOrver() {
  514. this.orverLoading = true
  515. handledTask(this.getFormatParams(1, this.orverPagination)).then(response => {
  516. if (response.data.dataResult.length > 0) {
  517. this.handledData = response.data.dataResult
  518. this.orverPage = response.data.pageResult
  519. }
  520. this.orverLoading = false
  521. }).catch(() => {
  522. this.orverLoading = false
  523. }) /*获取已办任务 */
  524. },
  525. getMessage() {
  526. // console.log("当前用户id",this.$store.getters.userId)
  527. // console.log(this.$store)
  528. console.log('当前用户信息', this.$store.getters.userInfo.employee)
  529. // getNews().then(response => {
  530. // this.newsData = response.data;
  531. // this.loading = false
  532. // }).catch(() => {
  533. // this.loading = false
  534. // })
  535. //新公告
  536. let params = {
  537. parameters: [
  538. {
  539. key: 'response_data',
  540. value: '{"template_id":"961299238640156672","template_type":"","attrs":{"init_query":"Y","need_page":"Y","page_size":20},"query_columns":[{"label":"接收人","name":"received_","rights":[{"type":"all"}],"common":"Y","same":"Y","field_type":"text","field_options":{},"data_type":"varchar"},{"label":"编制部门","name":"bian_zhi_bu_men_","field_type":"selector","field_options":{"default_value_type":"present","placeholder":"请选择","selector_type":"org","store":"id","multiple":false,"filter":[],"required":false,"hide_rights":false,"read_rights":false,"hide_label":false,"is_width":false,"width":100,"width_unit":"%","is_label_width":false,"label_width":100,"label_width_unit":"px","mobile":true,"display":true,"clearable":true},"data_type":"varchar"}],"display_columns":[{"label":"方式","name":"fa_song_fang_shi_","rights":[{"type":"all"}],"noRightStyle":"","align":"left","sortable":true,"width":"80","same":"Y","field_type":"radio","field_options":{"required":false,"hide_rights":false,"read_rights":false,"hide_label":false,"is_label_width":false,"label_width":100,"label_width_unit":"px","mobile":true,"arrangement":"horizontal","default_value_type":"fixed","datasource":"custom","options":[{"val":"公告","label":"系统内","checked":true},{"val":"短信","label":"短信","checked":false},{"val":"短信和公告","label":"短信和系统内","disabled":false,"checked":false}],"display":true,"clearable":true,"custom_class":"font-weight:bolder"},"data_type":"varchar"},{"label":"类型","name":"templatename_","rights":[{"type":"all"}],"noRightStyle":"","align":"left","sortable":true,"width":"80","same":"Y","field_type":"text","field_options":{"default_value_type":"fixed","placeholder":"请输入","required":false,"is_min_length":false,"is_max_length":false,"hide_rights":true,"read_rights":false,"hide_label":false,"is_width":false,"width":100,"width_unit":"%","is_label_width":false,"label_width":100,"label_width_unit":"px","clearable":true,"mobile":true,"display":true},"data_type":"varchar"},{"label":"通知内容","name":"content_","rights":[{"type":"all"}],"noRightStyle":"","align":"left","sortable":true,"width":"","same":"Y","field_type":"textarea","field_options":{"default_value_type":"fixed","placeholder":"","required":false,"is_min_length":false,"is_max_length":false,"hide_rights":true,"read_rights":false,"hide_label":false,"is_width":false,"width":100,"width_unit":"%","is_label_width":false,"label_width":100,"label_width_unit":"px","clearable":true,"mobile":true,"display":true,"default_value":""},"data_type":"varchar"},{"label":"状态","name":"state_","rights":[{"type":"all"}],"noRightStyle":"","align":"left","sortable":true,"width":"80","same":"Y","field_type":"text","field_options":{},"data_type":"varchar"},{"label":"接收人","name":"received_","rights":[{"type":"all"}],"noRightStyle":"","align":"left","sortable":true,"width":"240","same":"Y","field_type":"text","field_options":{},"data_type":"varchar"},{"label":"发送时间","name":"sendtime_","rights":[{"type":"all"}],"noRightStyle":"","align":"left","sortable":true,"width":"150","same":"Y","field_type":"datePicker","field_options":{"default_value_type":"today","placeholder":"请选择","datefmt_type":"datetime","datefmt":"yyyy-MM-dd HH:mm:ss","required":false,"is_start_date":false,"is_end_date":false,"hide_rights":true,"read_rights":false,"hide_label":false,"is_width":false,"width":100,"width_unit":"%","is_label_width":false,"label_width":100,"label_width_unit":"px","clearable":true,"mobile":true,"display":true},"data_type":"varchar"},{"label":"部门","name":"bian_zhi_bu_men_","rights":[{"type":"all"}],"noRightStyle":"","align":"left","sortable":true,"width":"80","same":"Y","field_type":"selector","field_options":{"default_value_type":"present","placeholder":"请选择","selector_type":"org","store":"id","multiple":false,"filter":[],"required":false,"hide_rights":false,"read_rights":false,"hide_label":false,"is_width":false,"width":100,"width_unit":"%","is_label_width":false,"label_width":100,"label_width_unit":"px","mobile":true,"display":true,"clearable":true},"data_type":"varchar"},{"label":"通知人","name":"bian_zhi_ren_","rights":[{"type":"all"}],"noRightStyle":"","align":"left","sortable":true,"width":"120","same":"Y","field_type":"selector","field_options":{"default_value_type":"present","placeholder":"请选择","selector_type":"user","store":"id","multiple":false,"filter":[],"required":false,"hide_rights":false,"read_rights":false,"hide_label":false,"is_width":false,"width":100,"width_unit":"%","is_label_width":false,"label_width":100,"label_width_unit":"px","mobile":true,"display":true,"clearable":true},"data_type":"varchar"},{"label":"通知人","name":"tong_zhi_ren_","field_type":"text","field_options":{"default_value_type":"fixed","placeholder":"请输入","required":false,"is_min_length":false,"is_max_length":false,"hide_rights":true,"read_rights":true,"hide_label":false,"is_width":false,"width":100,"width_unit":"%","is_label_width":false,"label_width":100,"label_width_unit":"px","clearable":true,"mobile":true,"display":true},"data_type":"varchar"}],"orig_display_columns":"","filter_conditions":[{"label":"默认条件","key":"ffc246c0-5132-4c64-a31c-e46e240f4574","type":"condition","rights":[{"type":"all"}],"filter":{"condition":"OR","rules":[{"id":"fa_song_fang_shi_","field":"fa_song_fang_shi_","label":"发送方式","type":"string","input":"text","operator":"equal","source":"fixed","value":"公告"},{"id":"fa_song_fang_shi_","field":"fa_song_fang_shi_","label":"发送方式","type":"string","input":"text","operator":"equal","source":"fixed","value":"短信和公告"}]}}],"result_columns":[{"label":"主键","name":"id_"},{"label":"租户ID","name":"tenant_id_"},{"label":"IP地址","name":"ip_"},{"label":"创建人","name":"create_by_"},{"label":"发送时间","name":"create_time_","rights":[{"type":"all"}],"same":"Y","field_type":"orig","field_options":{"datefmt_type":"date","datefmt":"yyyy-MM-dd","selector_type":"user","options":[{"val":"","label":""}],"store":"id","dictionary":"","dictionary_name":""}},{"label":"更新时间","name":"update_time_"},{"label":"更新人","name":"update_by_"},{"label":"是否过审","name":"shi_fou_guo_shen_"},{"label":"编制人","name":"bian_zhi_ren_"},{"label":"编制部门","name":"bian_zhi_bu_men_"},{"label":"编制时间","name":"bian_zhi_shi_jian"},{"label":"sendTime","name":"sendtime_"},{"label":"state","name":"state_"},{"label":"templateCode","name":"templatecode_"},{"label":"receive","name":"received_"},{"label":"content","name":"content_"},{"label":"phone","name":"phone_"},{"label":"templateName","name":"templatename_"},{"label":"字段一","name":"zi_duan_yi_"},{"label":"字段二","name":"zi_duan_er_"},{"label":"字段三","name":"zi_duan_san_"},{"label":"通知部门","name":"tong_zhi_bu_men_"},{"label":"发送方式","name":"fa_song_fang_shi_"},{"label":"通知人","name":"tong_zhi_ren_"}],"sort_columns":[{"label":"创建时间","name":"create_time_","direction":"desc"}],"buttons":{"function_buttons":[{"button_type":"search","label":"查询","position":"toolbar"},{"label":"添加","button_type":"custom","rights":[{"type":"all"}],"position":"toolbar","code":"openTask","style":"success"},{"label":"删除","button_type":"remove","rights":[{"type":"all"}],"position":"toolbar"}],"edit_buttons":[{"button_type":"close","label":"关闭"},{"button_type":"save","label":"保存"}]},"export_columns":"","ext_columns":"","datasetKey":"dxtz","unique":"id_","dynamic_params":{}}'
  541. },
  542. {
  543. key: 'filter_condition_key',
  544. value: ''
  545. }
  546. ],
  547. requestPage: {
  548. pageNo: 1,
  549. limit: 20
  550. },
  551. sorts: []
  552. }
  553. getCmsNews(params).then(response => {
  554. console.log(response.data.dataResult)
  555. this.newsDataCms = response.data
  556. }).catch(() => {
  557. this.loading = false
  558. })
  559. },
  560. getFormatParams(v, pagination) {
  561. const params = this.$refs['crud'] ? this.$refs['crud'].getSearcFormData() : {}
  562. return ActionUtils.formatParams(params, pagination, this.sorts)
  563. },
  564. /**
  565. * 处理排序
  566. */
  567. handleSortChange(sort) {
  568. ActionUtils.setSorts(this.sorts, sort)
  569. this.loadData()
  570. },
  571. handelundeMes(id) {
  572. this.newsEditId = id
  573. this.$emit('handleUnreadMessage', id)
  574. unreadMessage().then(response => {
  575. this.$nextTick(() => {
  576. this.unreadMessageData = response.data.system
  577. this.loading = false
  578. })
  579. }).catch(() => {
  580. this.loading = false
  581. })
  582. },
  583. handelInteriorClick(id) {
  584. this.messageEditId = id
  585. this.$emit('handleApprove', id)
  586. console.log('id是:' + id)
  587. },
  588. /**
  589. * 点击待办表格
  590. */
  591. handleLinkClick(cont) {
  592. this.taskId = cont.id || ''
  593. this.waiJian = cont.waiJian || ''
  594. this.FlowName = cont.name
  595. this.processName = this.getProjectName(cont.procDefKey)
  596. this.dialogFormVisible = true
  597. },
  598. /**
  599. * 点击已办表格
  600. */
  601. handleLinkClickOrver(cont) {
  602. this.processName = this.getProjectName(cont.procDefKey)
  603. this.instanceId = cont.id || ''
  604. this.orverDialogFormVisible = true
  605. },
  606. /* 开关右侧栏抽屉*/
  607. handleClose() {
  608. this.drawer = !this.drawer
  609. },
  610. /* 文字替换*/
  611. getParenthesesStr(text) {
  612. let result = ''
  613. if (!text) return result
  614. let regex = /\((.+?)\)/g
  615. let options = text.match(regex)
  616. if (options) {
  617. let option = options[0]
  618. if (option) {
  619. result = option.substring(1, option.length - 1)
  620. }
  621. if (options[1]) {
  622. let yersOption = options[1]
  623. if (yersOption) {
  624. result = result + '/' + yersOption.substring(1, yersOption.length - 1)
  625. }
  626. }
  627. }
  628. return result.split('/')
  629. },
  630. // 获取检测流程对应的检测项目名称
  631. getProjectName(v) {
  632. if (!this.testingList.length) {
  633. this.testingList = this.$store.getters.testingList
  634. }
  635. let res = this.testingList.find(item => item.processKey === v)
  636. return res ? res.name : ''
  637. }
  638. }
  639. }
  640. </script>
  641. <style lang="scss" scoped>
  642. .el-completing {
  643. background: #409eff !important;
  644. }
  645. .el-col {
  646. min-height: 1px;
  647. }
  648. .firstcol {
  649. padding-right: 10px;
  650. }
  651. .el-nothing {
  652. font-size: 13px;
  653. }
  654. .calendar-day {
  655. text-align: center;
  656. color: #202535;
  657. line-height: 30px;
  658. font-size: 12px;
  659. }
  660. .is-selected {
  661. color: #f8a535;
  662. font-size: 10px;
  663. margin-top: 5px;
  664. }
  665. #calendar .el-button-group > .el-button:not(:first-child):not(:last-child):after {
  666. content: '当月';
  667. }
  668. #calendar .item {
  669. position: relative;
  670. margin: 0;
  671. padding: 0;
  672. height: auto;
  673. border-radius: 4px;
  674. -webkit-box-sizing: border-box;
  675. box-sizing: border-box;
  676. overflow: hidden;
  677. color: #f8a535;
  678. }
  679. .ibps-list-split .ibps-list-item {
  680. border-bottom: 1px solid #dcdfe6;
  681. padding: 6px 0;
  682. }
  683. .jbd-font-style {
  684. font-weight: bold;
  685. }
  686. .home-text-border {
  687. color: #999999;
  688. box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.1), 0 0 0 0 rgba(0, 0, 0, 0.1), 0 0 0 0 rgba(0, 0, 0, 0.1), 0 1px 0px 0 rgba(0, 0, 0, 0.1);
  689. min-height: 20px;
  690. font-size: 14px;
  691. margin-left: 60px;
  692. margin-bottom: 5px;
  693. }
  694. .jbd-home-card {
  695. overflow: auto;
  696. }
  697. .jbd-home-task {
  698. width: 100%;
  699. padding: 10px;
  700. cursor: pointer;
  701. font-size: 12px;
  702. margin-bottom: 35px;
  703. }
  704. .jbd-home-card::-webkit-scrollbar {
  705. display: none;
  706. }
  707. .jbd-control-cont {
  708. text-align: center;
  709. position: absolute;
  710. z-index: 10;
  711. right: 0px;
  712. top: 50%;
  713. }
  714. </style>
  715. <style>
  716. .app-container .el-drawer.rtl {
  717. overflow: scroll;
  718. }
  719. .app-container .el-table th {
  720. background-color: #a7d6f8 !important;
  721. font-size: 14px;
  722. font-weight: bold;
  723. color: #000000;
  724. border: 0px;
  725. }
  726. .app-container .el-table td {
  727. padding: 4px;
  728. }
  729. .app-container .el-table .warning-row {
  730. background: #d3ebfc;
  731. color: #000000;
  732. }
  733. .app-container .el-table .success-row {
  734. background: #f9ffff;
  735. color: #000000;
  736. }
  737. </style>