index.vue 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847
  1. <template>
  2. <view style="height: 100%;">
  3. <!-- <u-navbar :bgImg="bgImg" title="首页" :titleStyle="{ color:'#fff', letterSpacing:'0.3em',fontSize:'18px'}" :safeAreaInsetTop="true" ></u-navbar> -->
  4. <!-- <navInfo :title="'首页'" :titleStyle="{ color:'#fff', letterSpacing:'0.3em',fontSize:'18px'}"></navInfo>
  5. <view class="bgTopImg">
  6. <image slot="right" :src="`${urls}/navBg@2x.png`" class="bgTopImg"></image>
  7. </view> -->
  8. <view class="container uni-container"
  9. style="display:flex;flex-direction: column;justify-content: space-around;height: 100%;">
  10. <view class="nav">
  11. <!-- <u-scroll-list indicatorColor="#fff0f0" indicatorActiveColor="#f56c6c" >
  12. <view class="scroll-list" style="flex-direction: row;">
  13. <view class="scroll-list__goods-item" v-for="(item, index) in goodsArr" :key="index"
  14. :class="[(index === 4) && 'scroll-list__goods-item--no-margin-right']">
  15. <image class="scroll-list__goods-item__image " :src=" item.thumbnail" mode="">
  16. </image>
  17. <text class="scroll-list__goods-item__text">{{ item.name }}</text>
  18. </view>
  19. </view>
  20. </u-scroll-list> -->
  21. <view>
  22. <u-grid :border="false" col="4" v-if="!isStreet">
  23. <u-grid-item v-for="(item, listIndex) in goodsArr" :key="listIndex">
  24. <image @click="handleToInfo(item.menuUrl)" class="scroll-list__goods-item__image "
  25. :src="item.thumbnail" mode=""></image>
  26. <text class="grid-text">{{ item.name }}</text>
  27. </u-grid-item>
  28. </u-grid>
  29. <u-grid :border="false" col="3" v-else>
  30. <u-grid-item v-for="(item, listIndex) in goodsStreet" :key="listIndex">
  31. <image @click="handleToInfo(item.menuUrl)" class="scroll-list__goods-item__image"
  32. :src="item.thumbnail" mode=""></image>
  33. <text class="grid-text">{{ item.name }}</text>
  34. </u-grid-item>
  35. </u-grid>
  36. <u-toast ref="uToast" />
  37. </view>
  38. </view>
  39. <!-- <view style="margin-bottom: 20rpx;">
  40. <u-button :plain="true" text="全部已读" @click="cleanUnread" style="width: 23%;float: right;"></u-button>
  41. </view> -->
  42. <!-- <view class="grid-body" v-for="(item, index) in tableDatas" :key="index">
  43. <uni-card class="cards">
  44. <u-cell-group :border="false">
  45. <u-cell :border="false" :title="item.name" :icon="item.icon" :boritemder="false" isLink
  46. titleStyle="font-weight:600" rightIconStyle="color:#4CB2B6;font-size: 24rpx;"
  47. >
  48. <text slot="value" v-if="tableData.length!=0" @click="cleanUnread" class="weidu">全部已读</text>
  49. <text slot="value" style="font-size: 24rpx;color: #4CB2B6;" @click="goInformDetails(item.comType)">更多</text>
  50. </u-cell>
  51. </u-cell-group>
  52. <view v-if="tableData[index]!=''">
  53. <view v-for="(item1, index1) in tableData" :key="index1"
  54. @click.nativite="onNoticeClick(item1)" link
  55. >
  56. <uni-row class="demo-uni-row padding-top text-sm" :gutter="20"
  57. style="margin:0rpx 30rpx 0rpx -24rpx;width: 100%;">
  58. <uni-col :span="16">
  59. <u-notice-bar :text="item1.comTitle?item1.comTitle:''" speed="40"></u-notice-bar>
  60. <text class="uni-body text-1cut" v-if="item1.length==0">暂无{{item}}</text>
  61. </uni-col>
  62. <uni-col :span="8">
  63. </uni-col>
  64. </uni-row>
  65. </view>
  66. </view>
  67. <view v-else class="no-notice"> 暂无{{item.name}}
  68. </view>
  69. </uni-card>
  70. </view> -->
  71. <!-- <view class="grid-body" >
  72. <uni-card class="cards" > -->
  73. <!-- <u-cell-group :border="false">
  74. <u-cell :border="false" title="通知公告" icon="@/static/images/checkActive/tongzhi@2x.png" :boritemder="false" isLink
  75. titleStyle="font-weight:600" rightIconStyle="color:#4CB2B6;font-size: 24rpx;">
  76. <text slot="value" v-if="tableData.length!=0" @click="cleanUnread" class="weidu">全部已读</text>
  77. <text slot="value" style="font-size: 24rpx;color: #4CB2B6;" @click="goInformDetails(item.comType)">更多</text>
  78. </u-cell>
  79. </u-cell-group> -->
  80. <!-- <view v-if="tableData.length>0">
  81. <view v-for="(item1, index1) in tableData" :key="index1"
  82. @click.nativite="onNoticeClick(item1)" link>
  83. <uni-row class="demo-uni-row padding-top text-sm" :gutter="20"
  84. style="margin:0rpx 30rpx 0rpx -24rpx;width: 100%;">
  85. <uni-col :span="16">
  86. <u-notice-bar :text="item1.title?item1.title:''" speed="40"></u-notice-bar>
  87. </uni-col>
  88. <uni-col :span="8">
  89. </uni-col>
  90. </uni-row>
  91. </view>
  92. </view>
  93. <view v-else class="no-notice"> 暂无数据
  94. </view>
  95. </uni-card>
  96. </view> -->
  97. <view v-if="tableData">
  98. <view class="back-image">
  99. <image :src="laba" class="back-notice"></image>
  100. <view style="display: flex;padding-top: 40rpx;cursor: pointer;">
  101. <image :src="tongzhi" class="back-size"></image>
  102. <view v-if="arrtongzhi.length !=0" @click.nativite="onNoticeClick(arrtongzhi[0])">
  103. {{ arrtongzhi[0].title }}
  104. </view>
  105. <view v-else>暂无通知</view>
  106. </view>
  107. </view>
  108. <view v-if="remindData.length !=0">
  109. <view class="" v-for="(item,index) in remindData" :key="index">
  110. <view class="back-image" v-if="isStreet" @click.nativite="onRemindClick(item)">
  111. <image :src="laba" class="back-notice"></image>
  112. <view style="display: flex;padding-top: 40rpx;cursor: pointer;">
  113. <image :src="gonggao" class="back-size-tips"></image>
  114. <view>
  115. <view >
  116. {{ item.remind_title }}
  117. </view>
  118. </view>
  119. </view>
  120. </view>
  121. </view>
  122. </view>
  123. <view v-else>暂无重要提醒</view>
  124. <!-- <view class="back-image back-image2">
  125. <image :src="laba" class="back-notice"></image>
  126. <view style="display: flex;padding-top: 40rpx;">
  127. <image :src="gonggao" class="back-size"></image>
  128. <view v-if="arrgonggao.length != []" @click.nativite="onNoticeClick(arrgonggao[0])">
  129. {{ arrgonggao[0].title }}
  130. </view>
  131. <view v-else>暂无公告</view>
  132. </view>
  133. </view> -->
  134. </view>
  135. <view class="" v-if="!isStreet">
  136. <u-cell-group :border="false">
  137. <u-cell :border="false" :boritemder="false" isLink rightIconStyle="color:#4CB2B6;font-size: 24rpx;">
  138. <view slot="title" class="u-slot-title">
  139. <text class="u-cell-text">待办任务</text>
  140. </view>
  141. <text slot="value" style="font-size: 28rpx;color: #4CB2B6;cursor: pointer;"
  142. @click="goInformDetails">更多</text>
  143. </u-cell>
  144. </u-cell-group>
  145. <uni-card v-if="tableDatas.length>0">
  146. <uni-row class="demo-uni-row" :gutter="20" width="100%">
  147. <uni-col :span="24"
  148. style="margin-bottom: 10rpx;display: flex;justify-content:space-between;"><text
  149. style="font-weight:600;font-size: 34rpx;">{{ tableDatas[0].taskName }}</text>
  150. <image :src="zhuanfa" class="back-size back-sizes" @click="forward(tableDatas[0])"></image>
  151. </uni-col>
  152. <uni-col :span="24" style="margin-bottom: 10rpx;display: flex;"><text
  153. style="color:#728F90">任务说明:</text><rich-text
  154. :nodes="tableDatas[0].taskContent?tableDatas[0].taskContent:''"
  155. class="conts"></rich-text>
  156. </uni-col>
  157. <uni-col :span="24"><text
  158. style="color:#728F90">任务发布者:</text><text>{{tableDatas[0].senderName}}</text>
  159. </uni-col>
  160. </uni-row>
  161. <uni-row class="demo-uni-row" :gutter="20" width="100%">
  162. <!-- <uni-col :span="24"> -->
  163. <view class="flex btn-box" style="width: 50%;float: right;">
  164. <u-button shape="circle" size="small" color="#F7C41E" text="查看详情"
  165. @click="addClickDetail(tableDatas[0].broadId)" style="margin-right: 10rpx;"></u-button>
  166. <u-button shape="circle" size="small" color="#4CB2B6" style="margin-left: 10rpx;" text="去完成"
  167. @click="addClickModify(tableDatas[0])"></u-button>
  168. </view>
  169. <!-- </uni-col> -->
  170. </uni-row>
  171. </uni-card>
  172. <uni-card v-else style="text-align:center">
  173. 今日暂无任务,可前往查看是否有往日任务
  174. </uni-card>
  175. </view>
  176. <!-- 图表-->
  177. <view class="charts-box">
  178. <!-- 注意:这里的opts是uCharts的配置,eopts是ECharts的配置,不要搞混,如果不需要用在各种小程序端,是不需要传uCharts的opts的,只需要传eopts即可!!!这里加opts是为了覆盖uCharts的rose图的默认图例配置的位置 -->
  179. <!-- <qiun-data-charts type="column" :eopts="opts" :opts="opts" :chartData="chartsDataLine3" v-if="chartsDataLine3.series[0].itemStyle.normal.color=='#D2D8E2'"
  180. :echartsH5="true" :echartsApp="true" /> -->
  181. </view>
  182. </view>
  183. <!-- 单位进来转发任务显示人员 -->
  184. <u-popup :show="checkboxShow2" :round="10" @close="checkboxShow2=false" style="position: relative;"
  185. mode="center">
  186. <view style="width: 90vw;padding: 10px;">
  187. <text class="text-xl">检查人员</text>
  188. <view class="" class="person-forward" v-if="personInfo">
  189. <u-checkbox-group v-model="item.checkboxValue1" v-for="(item, index) in personInfo" :key="index"
  190. placement="column" @change="checkboxChange2(item.user_id,$event)">
  191. <u-checkbox :customStyle="{marginBottom: '8px'}" :label="item.nickname" :name="item.id">
  192. </u-checkbox>
  193. </u-checkbox-group>
  194. </view>
  195. <view v-else>
  196. 此单位下暂无可转发人员
  197. </view>
  198. <view class="flex flex-direction-row " style="margin: 30rpx 0;">
  199. <u-button shape="circle" type="primary" color="#4CB2B6" text="确定" @click="checkboxConfirm2"
  200. customStyle="margin-right:20px;padding:0 30px">
  201. </u-button>
  202. <u-button type="primary" plain color="#4CB2B6" text="取消" shape="circle" @click="checkboxCancel2"
  203. customStyle="padding:0 30px">
  204. </u-button>
  205. </view>
  206. </view>
  207. </u-popup>
  208. <!-- 加载中 -->
  209. <isLodingModel></isLodingModel>
  210. <u-modal :show="show" @confirm="confirm" @cancel="cancel" @close="close" asyncClose closeOnClickOverlay
  211. showCancelButton confirmColor="red" :title="title" :content="content" ref="uModal"></u-modal>
  212. </view>
  213. </template>
  214. <script>
  215. import {
  216. getNoticeList,
  217. getNoticeAllRead,
  218. getNoticeOlnyRead,
  219. isNeedInfo,
  220. getRemindLists
  221. } from '@/api/notice'; // 通知公告列表
  222. import {getRemindOlnyRead} from '@/api/remind'
  223. import {
  224. checkGetPerson, //单位转发任务获取人员
  225. taskList, //获取除草稿箱以外的列表 //获取当前日期的任务列表
  226. checkSubmitForwardTask, //确认转发任务
  227. } from "@/api/check_active";
  228. import storage from '@/utils/storage';
  229. // import gonggao from '@/static/appimg/impt_tip.png'
  230. let that = null;
  231. import config from '@/config'
  232. const baseUrlImg = config.baseUrlImg
  233. export default {
  234. data() {
  235. return {
  236. urls: baseUrlImg,
  237. bgImg: `${baseUrlImg}/navBg@2x.png`,
  238. isStreet: null, //判断是否是街道人员
  239. opts: {
  240. legend: {
  241. show: false
  242. },
  243. color: ["#D2D8E2"],
  244. yAxis: {
  245. data: [{
  246. min: 0,
  247. axisLine: false,
  248. }],
  249. axisLine: false,
  250. },
  251. disabled: false,
  252. xAxis: {
  253. axisLine: {
  254. show: false
  255. },
  256. },
  257. tooltip: {
  258. trigger: 'axis',
  259. axisPointer: {
  260. type: 'none'
  261. }
  262. },
  263. extra: {
  264. column: {
  265. type: 'group',
  266. barBorderRadius: [6, 6, 6, 6],
  267. // activeBgColor: "#4CB2B6",
  268. // activeBgOpacity:1
  269. },
  270. tooltip: {
  271. horizentalLine: false,
  272. splitLine: false
  273. }
  274. }
  275. },
  276. chartsDataLine3: {},
  277. tongzhi: `${baseUrlImg}/tongzhi.png`,
  278. gonggao: `${baseUrlImg}/impt_tip.png`,
  279. gonggao: gonggao,
  280. laba: `${baseUrlImg}/laba.png`,
  281. //import biankuang from '@/static/images/biankuang.png'
  282. LoadingModel: false,
  283. show: false, //弹出框
  284. title: '完善个人信息',
  285. content: '个人信息尚未完善,是否完善个人基本信息?',
  286. arrtongzhi: [],
  287. arrgonggao: [],
  288. personInfo: [],
  289. checkedList2: [], //检查单位已选择列表
  290. // 数据 //数据接口,已读接口(id,全部)---通知列表,详情
  291. // tableDatas: [{
  292. // name: '通知',
  293. // icon: tongzhi,
  294. // comType: '1'
  295. // }
  296. // , {
  297. // name: '公告',
  298. // icon: gonggao,
  299. // comType: "2"
  300. // }, {
  301. // name: '指令',
  302. // icon: zhiling,
  303. // comType: "3"
  304. // },
  305. // ],
  306. tableDatas: [], //任务数据
  307. formData: {
  308. pageNo: 1,
  309. pageSize: 10,
  310. receivDate: '',
  311. receiver: this.$store.state.user.id,
  312. taskType: "3"
  313. },
  314. FormDataTask: {
  315. "broadId": 0,
  316. "deptId": [],
  317. "id": 0,
  318. "orgId": [],
  319. "sender": this.$store.state.user.id,
  320. "receiver": [],
  321. "status": 0,
  322. "taskContent": "",
  323. "taskName": "",
  324. "taskStatus": 0,
  325. "taskType": "" //任务类型 1对应主动检查
  326. },
  327. zhuanfa: `${baseUrlImg}/zhuanfa.png`,
  328. // 通知公告数据
  329. tableData: [],
  330. remindData:[],
  331. // tableData数据加载中
  332. loading: false,
  333. // echarts数据
  334. checkactiveOption: {},
  335. goodsArr: [{
  336. name: '每日巡查',
  337. thumbnail: `${baseUrlImg}/meirixuncha.png`,
  338. menuUrl: '/pagesA/fire/inspection_active/index'
  339. },
  340. {
  341. name: '任务派遣',
  342. thumbnail: `${baseUrlImg}/zhudongjiancha.png`,
  343. menuUrl: `/pagesA/fire/check_active/index?type=2`
  344. },
  345. {
  346. name: '主动检查',
  347. thumbnail: `${baseUrlImg}/renwuguanli.png`,
  348. menuUrl: `/pagesA/fire/check_inspection/check_inspection`
  349. },
  350. {
  351. name: '隐患管理',
  352. thumbnail: `${baseUrlImg}/yinhuanguanli.png`,
  353. menuUrl: '/pagesA/fire/hidden_trouble/index'
  354. }
  355. ],
  356. goodsStreet: [{
  357. name: '街道消防检查',
  358. thumbnail: `${baseUrlImg}/working/fire_street.png`,
  359. menuUrl: '/pagesA/fire/fire_inspetItem/fire_inspetItem'
  360. },
  361. {
  362. name: '消防工作档案',
  363. thumbnail: `${baseUrlImg}/working/archive.png`,
  364. menuUrl: `/pagesA/fire/archive/nav`
  365. },
  366. {
  367. name: '微型消防站',
  368. thumbnail: `${baseUrlImg}/working/fire_extinguishe.png`,
  369. menuUrl: `/pagesA/fire/fire_station/index`
  370. },
  371. ],
  372. checkboxShow2: false,
  373. isStreetPerson: false
  374. };
  375. },
  376. // 在 vue页面,向起始页通过事件传递数据
  377. onShow: function() {
  378. this.getServerData();
  379. this.isStreet = uni.getStorageSync('getUserInfo_key').streetInfo; //登录用户的街道
  380. const date = new Date()
  381. this.formData.receivDate = uni.$u.timeFormat(date, 'yyyy-mm-dd')
  382. this.getDatas()
  383. this.getData();
  384. this.getRemind();
  385. const deptId = uni.getStorageSync('getUserInfo_key').streetInfo ? uni.getStorageSync('getUserInfo_key')
  386. .streetInfo
  387. .id : ''; //登录用户
  388. if (deptId != '') {
  389. this.isStreetPerson = true
  390. this.$forceUpdate()
  391. } else {
  392. this.isStreetPerson = false
  393. }
  394. },
  395. onLoad: function(option) {
  396. that = this;
  397. // // 判断用户信息是否需要完善
  398. // const value = uni.getStorageSync('getUserInfo_key');
  399. // if (
  400. // value.userRoles.appRoles.length > 0 &&
  401. // value.userRoles.appRoles[0].role_id != '' &&
  402. // value.userRoles.appRoles[0].user_id != ''
  403. // ) {
  404. // const appRoleId = value.userRoles.appRoles[0].role_id;
  405. // const userId = value.userRoles.appRoles[0].user_id;
  406. // isNeedInfo({
  407. // appRoleId: appRoleId,
  408. // userId: userId
  409. // }).then(response => {
  410. // if (response.code != 0) {
  411. // that.show = true;
  412. // }
  413. // });
  414. // } else {
  415. // that.show = true;
  416. // }
  417. },
  418. onReady() {},
  419. methods: {
  420. //图表
  421. getServerData() {
  422. //区域图
  423. this.chartsDataLine3 = {
  424. categories: ['提交', '待完成', '审核', '打回', '完成'],
  425. series: [{
  426. name: "",
  427. barWidth: 26,
  428. data: [30, 80, 100, 49, 112],
  429. itemStyle: {
  430. normal: {
  431. //这里设置柱形图圆角 [左上角,右上角,右下角,左下角]
  432. barBorderRadius: [6, 6, 4, 4],
  433. color: '#D2D8E2'
  434. },
  435. emphasis: {
  436. color: '#68BCBF' //点击后高亮颜色
  437. }
  438. }
  439. }]
  440. }
  441. },
  442. getRemind(){
  443. getRemindLists().then(res=>{
  444. if(!res.data.records) return;
  445. if( res.data.records.length>3){
  446. this.remindData = res.data.records.slice(0,3);
  447. }else{
  448. this.remindData = res.data.records;
  449. }
  450. })
  451. },
  452. // 获取数据
  453. getData() {
  454. this.$modal.isLoadingModel(true);
  455. this.LoadingModel = true;
  456. getNoticeList({
  457. }).then(response => {
  458. this.LoadingModel = false;
  459. this.$modal.isLoadingModel(this.LoadingModel);
  460. // 为数据赋值:通过展开运算符的形式,进行新旧数据的拼接
  461. // this.tableData = response.data ?? [...this.tableData, ...response.data.list];
  462. if (this.tableData && response.data?.list.length > 0) {
  463. this.arrtongzhi = response.data.list.filter(i => i.type == 1);
  464. this.arrgonggao = response.data.list.filter(i => i.type == 2);
  465. }
  466. // this.checkactiveGetEchart();
  467. });
  468. },
  469. goInformDetails(val) {
  470. //点击更多,查看所有的通知列表
  471. // uni.navigateTo({
  472. // url: '/pagesA/fire/notice/index?id=' + val
  473. // });
  474. //查看所有的每日任务列表
  475. uni.navigateTo({
  476. url: '/pagesA/fire/inspection_active/index'
  477. });
  478. },
  479. //清楚所有未读
  480. cleanUnread() {
  481. getNoticeAllRead({
  482. userId: this.$store.state.user.id
  483. }).then(response => {
  484. if (response.data == true) {
  485. this.getData();
  486. }
  487. });
  488. },
  489. // 单个公告详情点击事件
  490. onNoticeClick(val) {
  491. getNoticeOlnyRead({
  492. id: val.id
  493. }).then(response => {
  494. if (response.data == true) {
  495. this.getData();
  496. }
  497. });
  498. uni.navigateTo({
  499. url: `/pagesA/fire/notice/notcice_details/notcice_details?id=${val.id}`,
  500. success: function(res) {
  501. // 通过eventChannel向被打开页面传送数据
  502. res.eventChannel.emit('acceptDataFromOpenerPage', val);
  503. }
  504. });
  505. },
  506. onRemindClick(val){
  507. uni.navigateTo({
  508. url: `/pagesA/fire/remind/details/details?id=${val.broad_id}`,
  509. success: function(res) {
  510. // 通过eventChannel向被打开页面传送数据
  511. res.eventChannel.emit('acceptDataFromOpenerPage', val);
  512. }
  513. });
  514. },
  515. // 根据不同的url,进行页面的跳转
  516. handleToInfo(url) {
  517. this.$tab.navigateTo(url);
  518. },
  519. // 模态框确认,取消操作
  520. confirm() {
  521. this.show = false;
  522. uni.navigateTo({
  523. url: '/pages/mine/info/edit'
  524. });
  525. },
  526. close() {
  527. this.show = false;
  528. },
  529. cancel() {
  530. this.show = false;
  531. },
  532. // ================================================================
  533. //查看详情
  534. addClickDetail(val) {
  535. uni.navigateTo({
  536. url: `/pagesA/fire/check_active/check_list/check_list?id=${val}&current=${this.current}`,
  537. success: function(res) {
  538. res.eventChannel.emit('acceptDataFromOpenerPage', val);
  539. }
  540. })
  541. },
  542. //去完成
  543. addClickModify(val) {
  544. uni.navigateTo({
  545. url: `/pagesA/fire/check_active/check_implement/check_implement?broadId=${val.broadId}`,
  546. success: function(res) {
  547. res.eventChannel.emit('acceptDataFromOpenerPage', val);
  548. }
  549. })
  550. },
  551. //转发
  552. forward(val) { //展示转发的弹出层
  553. this.ids = val.id //当前点击任务的id
  554. this.checkboxShow2 = true
  555. this.FormDataTask.broadId = val.broadId
  556. this.FormDataTask.id = this.ids
  557. this.FormDataTask.taskName = val.taskName
  558. this.FormDataTask.taskStatus = val.taskStatus
  559. this.FormDataTask.taskContent = val.taskContent
  560. this.FormDataTask.orgId.push(val.orgId)
  561. checkGetPerson({
  562. orgId: val.orgId
  563. }).then(response => {
  564. this.personInfo = response.data
  565. })
  566. },
  567. checkboxChange2(i, n) {
  568. if (i && n.length != 0) {
  569. this.checkedList2.push(i)
  570. } else if (i && n.length == 0) {
  571. this.checkedList2 = this.checkedList2.filter(item => item != i)
  572. }
  573. },
  574. //popup检查单位确定============
  575. checkboxConfirm2() {
  576. checkSubmitForwardTask(JSON.stringify(this.FormDataTask)).then(response => {
  577. if (response.data) {
  578. this.$modal.msg('转发成功')
  579. this.checkboxShow2 = false
  580. } else {
  581. this.$modal.msgError(response.msg)
  582. }
  583. })
  584. },
  585. //popup取消
  586. checkboxCancel2() {
  587. this.checkboxShow2 = false
  588. },
  589. getDatas() {
  590. this.loading = true
  591. this.pageNo = 1
  592. taskList(JSON.stringify(this.formData)).then(response => {
  593. this.tableDatas = response.data.list
  594. })
  595. },
  596. // =====================================================
  597. }
  598. };
  599. </script>
  600. <style lang="scss" scoped>
  601. .album {
  602. @include flex;
  603. align-items: flex-start;
  604. &__avatar {
  605. background-color: $u-bg-color;
  606. padding: 5px;
  607. border-radius: 3px;
  608. }
  609. &__content {
  610. margin-left: 10px;
  611. flex: 1;
  612. }
  613. }
  614. .container {
  615. border-radius: 30px 30px 0px 0px;
  616. background: #fff;
  617. // top:200rpx;
  618. z-index: 99;
  619. position: relative;
  620. }
  621. body {
  622. // background-image: linear-gradient(#4cb2b6, #f0f8f9) !important;
  623. }
  624. uni-page-body {
  625. // background-image: linear-gradient(#4cb2b6, #f0f8f9) !important;
  626. height: 100% !important;
  627. // height: 100%;
  628. }
  629. .grid-body {
  630. // height: 30%;
  631. margin-bottom: 20rpx;
  632. }
  633. .cards {
  634. height: 100%;
  635. }
  636. /deep/.uni-card--shadow {
  637. border-radius: 24rpx;
  638. }
  639. /deep/.u-button.data-v-3bf2dba7,
  640. .u-grid-item {
  641. width: 30%;
  642. float: right;
  643. }
  644. /deep/.uni-card--border {
  645. border-radius: 24rpx !important;
  646. box-shadow: 0px 1px 14px 0px rgba(211, 211, 211, 0.3) !important;
  647. border: none !important;
  648. }
  649. ::v-deep .u-navbar__content {
  650. background-color: #4cb2b6 !important;
  651. }
  652. .container {
  653. // height: 90vh !important;
  654. // background-image: linear-gradient(#4cb2b6, #f0f8f9);
  655. }
  656. // 已读
  657. .read {
  658. color: #000;
  659. padding-left: 40rpx;
  660. }
  661. .unread {
  662. color: red;
  663. padding-left: 40rpx;
  664. }
  665. .no-notice {
  666. text-align: center;
  667. }
  668. .text {
  669. text-align: center;
  670. color: #000;
  671. font-size: 26rpx;
  672. margin-top: 10rpx;
  673. }
  674. .grid-item-box {
  675. flex: 1;
  676. display: flex;
  677. flex-direction: column;
  678. align-items: center;
  679. justify-content: center;
  680. padding: 15px 0;
  681. }
  682. .scroll-list__goods-item__image {
  683. width: 85rpx;
  684. height: 92rpx;
  685. }
  686. .grid-text {
  687. font-size: 11px;
  688. color: #383838;
  689. padding: 10rpx 0 20rpx 0rpx;
  690. /* #ifndef APP-PLUS */
  691. box-sizing: border-box;
  692. /* #endif */
  693. }
  694. .nav {
  695. // margin-bottom: 30rpx;
  696. .u-grid-item[data-v-99a45d26],
  697. .u-grid-item.data-v-99a45d26,
  698. .u-grid-item {
  699. margin-bottom: 30rpx;
  700. }
  701. }
  702. /deep/.uni-col-16.data-v-fff79656,
  703. /deep/.uni-col-16[data-v-fff79656] {
  704. width: 100%;
  705. }
  706. /deep/.uni-col-16 {
  707. width: 100%;
  708. }
  709. /deep/.uni-row {
  710. margin: 0 30rpx 10rpx -6rpx !important;
  711. }
  712. /deep/.u-notice-bar {
  713. background-color: rgb(235, 246, 247) !important;
  714. }
  715. /deep/.u-notice-bar[data-v-4eff50a7],
  716. /deep/.u-notice-bar.data-v-4eff50a7,
  717. /deep/.u-notice-bar {
  718. border-radius: 20rpx;
  719. }
  720. .yidu {
  721. font-size: 24rpx;
  722. background-color: #f8f8f8;
  723. padding: 10rpx 20rpx;
  724. border-radius: 10rpx;
  725. color: rgb(255, 178, 62);
  726. margin-right: 20rpx;
  727. }
  728. .weidu {
  729. font-size: 24rpx;
  730. background-color: #f8f8f8;
  731. padding: 10rpx 20rpx;
  732. border-radius: 10rpx;
  733. margin-right: 20rpx;
  734. color: #a5a9ac;
  735. }
  736. .back-image {
  737. margin-bottom: 20rpx;
  738. height: 115rpx;
  739. background: url('~@/static/images/biankuang.png') no-repeat;
  740. background-size: 100% 115rpx;
  741. position: relative;
  742. }
  743. .back-image2 {
  744. margin-bottom: 0;
  745. }
  746. .back-size,
  747. .back-sizes {
  748. width: 60rpx;
  749. height: 30rpx;
  750. margin: 0 20rpx 0 60rpx;
  751. }
  752. .back-size {
  753. width: 30px;
  754. height: 21px;
  755. }
  756. .back-sizes {
  757. width: 32rpx;
  758. height: 32rpx;
  759. }
  760. .back-size-tips {
  761. width: 59px;
  762. height: 21px;
  763. margin: 0 20rpx 0 60rpx;
  764. }
  765. .back-notice {
  766. position: absolute;
  767. top: 0;
  768. left: 0;
  769. width: 48rpx;
  770. height: 52rpx;
  771. }
  772. .charts-box {
  773. margin-top: 20rpx;
  774. width: 100%;
  775. height: 600rpx;
  776. }
  777. /deep/.u-navbar__content__left[data-v-75dad532],
  778. /deep/.u-navbar__content__right[data-v-75dad532],
  779. /deep/.u-navbar__content__right {
  780. display: none !important;
  781. }
  782. .u-cell-text {
  783. font-weight: 700;
  784. font-size: 32rpx;
  785. padding-left: 10rpx;
  786. margin-left: -10rpx;
  787. border-left: 6rpx solid #4CB2B6;
  788. }
  789. </style>