homeTask.vue 46 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657
  1. <template>
  2. <div style="display: flex; justify-content: space-between">
  3. <div class="taskbox">
  4. <div class="tit">
  5. <span style="font-weight: bold">待办任务</span>
  6. </div>
  7. <div style="background: #fff; padding: 20px; min-height: 400px">
  8. <div class="tabbox">
  9. <el-table
  10. class="com-table"
  11. ref="multipleTable"
  12. :data="niticList"
  13. tooltip-effect="dark"
  14. size="small"
  15. border
  16. style="width: 100%"
  17. height="350px"
  18. >
  19. <el-table-column prop="woTitle" label="工单标题">
  20. <template slot-scope="scope">
  21. <span
  22. :style="scope.row.woTypeDesc == '预警工单' ? 'color:red' : ''"
  23. >{{ scope.row.woTitle }}</span
  24. >
  25. </template>
  26. </el-table-column>
  27. <el-table-column prop="sendTime" label="发起时间">
  28. <template slot-scope="scope">
  29. <span>{{ $formatDate(scope.row.sendTime, "YYYY-MM-DD") }}</span>
  30. </template>
  31. </el-table-column>
  32. <!-- <el-table-column prop="sendNo" label="发起工号">
  33. </el-table-column> -->
  34. <el-table-column prop="sendName" label="发起姓名">
  35. <template slot-scope="scope">
  36. <span>{{ $desensitization(scope.row.sendName, 1) }}</span>
  37. </template>
  38. </el-table-column>
  39. <el-table-column label="操作" align="center" width="120">
  40. <template slot-scope="scope">
  41. <el-button
  42. size="mini"
  43. type="primary"
  44. @click="checkNotic(1, scope.row)"
  45. >查看</el-button
  46. >
  47. <el-button
  48. v-if="scope.row.sts == '2' || scope.row.sts == '4'"
  49. size="mini"
  50. type="primary"
  51. @click="checkNotic(2, scope.row)"
  52. >处理</el-button
  53. >
  54. <el-button
  55. v-if="
  56. scope.row.sts == '0' && scope.row.woTypeDesc == '预警工单'
  57. "
  58. size="mini"
  59. type="primary"
  60. @click="checkNotic(2, scope.row)"
  61. >处理</el-button
  62. >
  63. <el-button
  64. v-if="
  65. scope.row.sts == 3 && scope.row.woTypeDesc == '信息上报'
  66. "
  67. size="mini"
  68. type="primary"
  69. @click="checkNotic(2, scope.row)"
  70. >处理</el-button
  71. >
  72. <el-button
  73. v-if="scope.row.sts == 0 && scope.row.woTypeDesc == '工单'"
  74. size="mini"
  75. type="danger"
  76. @click="checkNotic(3, scope.row)"
  77. >审核</el-button
  78. >
  79. <el-button
  80. v-if="
  81. scope.row.sts == 1 && scope.row.woTypeDesc == '预警工单'
  82. "
  83. size="mini"
  84. type="danger"
  85. @click="checkNotic(3, scope.row)"
  86. >审核</el-button
  87. >
  88. <el-button
  89. v-if="
  90. scope.row.sts == 0 && scope.row.woTypeDesc == '信息上报'
  91. "
  92. size="mini"
  93. type="danger"
  94. @click="checkNotic(3, scope.row)"
  95. >审核</el-button
  96. >
  97. </template>
  98. </el-table-column>
  99. </el-table>
  100. </div>
  101. </div>
  102. </div>
  103. <div class="taskbox">
  104. <div class="tit">
  105. <span style="font-weight: bold">已办任务</span>
  106. <span style="cursor: pointer" @click="newtask">发起</span>
  107. </div>
  108. <div style="background: #fff; min-height: 400px; padding: 20px">
  109. <div class="tabbox">
  110. <el-table
  111. class="com-table"
  112. ref="tableDatayj"
  113. :data="tableDatayj"
  114. tooltip-effect="dark"
  115. size="small"
  116. border
  117. style="width: 100%"
  118. height="350px"
  119. >
  120. <el-table-column prop="woTitle" label="工单标题"> </el-table-column>
  121. <el-table-column prop="sendTime" label="发起时间">
  122. <template slot-scope="scope">
  123. <span>{{ $formatDate(scope.row.sendTime, "YYYY-MM-DD") }}</span>
  124. </template>
  125. </el-table-column>
  126. <!-- <el-table-column prop="sendNo" label="发起工号"> </el-table-column> -->
  127. <el-table-column prop="sendName" label="发起姓名">
  128. <template slot-scope="scope">
  129. <span>{{ $desensitization(scope.row.sendName, 1) }}</span>
  130. </template>
  131. </el-table-column>
  132. <el-table-column label="操作" align="center">
  133. <template slot-scope="scope">
  134. <el-button
  135. size="mini"
  136. type="primary"
  137. @click="checkNotic(1, scope.row)"
  138. >
  139. 查看</el-button
  140. >
  141. </template>
  142. </el-table-column>
  143. </el-table>
  144. </div>
  145. </div>
  146. </div>
  147. <el-dialog
  148. title="工单"
  149. :visible.sync="tasksts"
  150. width="70%"
  151. :close-on-press-escape="false"
  152. :show-close="true"
  153. :destroy-on-close="true"
  154. :modal-append-to-body="false"
  155. :close-on-click-modal="false"
  156. :fullscreen="true"
  157. >
  158. <div class="dialog-l">
  159. <el-tabs tab-position="left" v-model="activeName">
  160. <el-tab-pane
  161. v-for="item in routerList"
  162. :key="item.label"
  163. :name="item.label"
  164. :label="item.name"
  165. >
  166. </el-tab-pane>
  167. </el-tabs>
  168. </div>
  169. <div class="dialog-r">
  170. <el-form
  171. :model="infolist"
  172. ref="infolist"
  173. :rules="rules"
  174. style="height: calc(100vh - 180px); overflow-y: scroll"
  175. >
  176. <div class="info-line">
  177. <el-form-item prop="woTitle">
  178. <span>工单标题</span>
  179. <el-input v-model="infolist.woTitle" placeholder="工单标题">
  180. </el-input>
  181. </el-form-item>
  182. <el-form-item prop="requireTime">
  183. <span>反馈时间</span>
  184. <el-date-picker
  185. :append-to-body="false"
  186. v-model="infolist.requireTime"
  187. type="date"
  188. placeholder="要求反馈时间"
  189. >
  190. </el-date-picker>
  191. </el-form-item>
  192. </div>
  193. <el-form-item prop="visiblec" class="info-line online">
  194. <span>接收人员</span>
  195. <deptTreeOnly
  196. class="tree"
  197. @treeCheck="treeCheckonly"
  198. ></deptTreeOnly>
  199. <div class="tree treeUser">
  200. <p>{{ treeListonly.leaderAuditName }}</p>
  201. </div>
  202. </el-form-item>
  203. <el-form-item class="info-line online">
  204. <span>任务描述</span>
  205. <el-input
  206. v-model="infolist.arcDesc"
  207. placeholder="任务描述"
  208. type="textarea"
  209. :rows="3"
  210. ></el-input>
  211. </el-form-item>
  212. <div style="padding-left: 80px">
  213. <myUpload
  214. @uploadBack="uploadBack"
  215. :fileInfo="fileInfo"
  216. :fileList="fileInfo.fileList"
  217. >
  218. </myUpload>
  219. </div>
  220. </el-form>
  221. <div slot="footer" class="dialog-footer myfooter">
  222. <el-button
  223. @click="dialogCliadd(1)"
  224. type="primary"
  225. v-if="activeName != '2'"
  226. >确 定</el-button
  227. >
  228. <el-button
  229. type="primary"
  230. @click="dialogCliadd(3)"
  231. v-if="activeName == '2'"
  232. >通 过</el-button
  233. >
  234. <el-button
  235. type="primary"
  236. @click="dialogCliadd(4)"
  237. v-if="activeName == '2'"
  238. >打 回</el-button
  239. >
  240. <el-button @click="dialogCliadd(2)">取 消</el-button>
  241. </div>
  242. </div>
  243. </el-dialog>
  244. <el-dialog
  245. title="审核工单"
  246. :visible.sync="taskstsh"
  247. width="70%"
  248. :close-on-press-escape="false"
  249. :show-close="true"
  250. :destroy-on-close="true"
  251. :modal-append-to-body="false"
  252. :close-on-click-modal="false"
  253. :fullscreen="true"
  254. >
  255. <div class="dialog-l">
  256. <el-tabs tab-position="left" v-model="activeName">
  257. <el-tab-pane
  258. v-for="item in routerList"
  259. :key="item.label"
  260. :name="item.label"
  261. :label="item.name"
  262. >
  263. </el-tab-pane>
  264. </el-tabs>
  265. </div>
  266. <div class="dialog-r">
  267. <el-form
  268. :model="infolist"
  269. ref="infolist"
  270. :rules="rules"
  271. style="height: calc(100vh - 180px); overflow-y: scroll"
  272. >
  273. <div class="info-line" style="margin-bottom: 10px">
  274. <span>工单标题</span>
  275. <el-input
  276. v-model="infolist.woTitle"
  277. placeholder="工单标题"
  278. disabled
  279. >
  280. </el-input>
  281. </div>
  282. <div
  283. style="margin-bottom: 10px"
  284. class="info-line online"
  285. v-if="activeName == '1'"
  286. >
  287. <span>接收人员</span>
  288. <deptTreeOnly
  289. class="tree"
  290. @treeCheck="treeCheckonly"
  291. ></deptTreeOnly>
  292. <div class="tree treeUser">
  293. <p>{{ treeListonly.leaderAuditName }}</p>
  294. </div>
  295. </div>
  296. <el-form-item class="info-line online">
  297. <span>工单备注</span>
  298. <el-input
  299. v-model="infolist.dealRemark"
  300. placeholder="工单备注"
  301. type="textarea"
  302. :rows="3"
  303. >
  304. </el-input>
  305. </el-form-item>
  306. </el-form>
  307. <div slot="footer" class="dialog-footer myfooter">
  308. <el-button
  309. @click="dialogCliup(1)"
  310. type="primary"
  311. v-if="activeName != '2'"
  312. >确 定</el-button
  313. >
  314. <el-button
  315. type="primary"
  316. @click="dialogCliup(3)"
  317. v-if="activeName == '2'"
  318. >通 过</el-button
  319. >
  320. <el-button
  321. type="primary"
  322. @click="dialogCliup(4)"
  323. v-if="activeName == '2'"
  324. >打 回</el-button
  325. >
  326. <el-button @click="dialogCliup(2)">取 消</el-button>
  327. </div>
  328. </div>
  329. </el-dialog>
  330. <el-dialog
  331. title="处理工单"
  332. :visible.sync="taskstcl"
  333. width="70%"
  334. :close-on-press-escape="false"
  335. :show-close="true"
  336. :destroy-on-close="true"
  337. :modal-append-to-body="false"
  338. :close-on-click-modal="false"
  339. :fullscreen="true"
  340. >
  341. <div class="dialog-l">
  342. <el-tabs tab-position="left" v-model="activeName">
  343. <el-tab-pane
  344. v-for="item in routerList"
  345. :key="item.label"
  346. :name="item.label"
  347. :label="item.name"
  348. >
  349. </el-tab-pane>
  350. </el-tabs>
  351. </div>
  352. <div class="dialog-r">
  353. <el-form
  354. :model="infolist"
  355. style="height: calc(100vh - 180px); overflow-y: scroll"
  356. >
  357. <div class="info-line" style="margin-bottom: 10px">
  358. <span>工单标题</span>
  359. <el-input
  360. v-model="infolist.woTitle"
  361. placeholder="工单标题"
  362. disabled
  363. >
  364. </el-input>
  365. </div>
  366. <div
  367. class="info-line online"
  368. style="margin-bottom: 10px"
  369. v-if="activeName != '3'"
  370. >
  371. <span>接收人员</span>
  372. <deptTreeOnly
  373. class="tree"
  374. @treeCheck="treeCheckonly"
  375. ></deptTreeOnly>
  376. <div class="tree treeUser">
  377. <p>{{ treeListonly.leaderAuditName }}</p>
  378. </div>
  379. </div>
  380. <el-form-item class="info-line online">
  381. <span>工单备注</span>
  382. <el-input
  383. v-model="infolist.dealRemark"
  384. placeholder="工单备注"
  385. type="textarea"
  386. :rows="3"
  387. >
  388. </el-input>
  389. </el-form-item>
  390. <div style="padding-left: 80px" v-if="activeName == '3'">
  391. <myUpload
  392. @uploadBack="uploadBack"
  393. :fileInfo="fileInfo"
  394. :fileList="fileInfo.fileList"
  395. >
  396. </myUpload>
  397. </div>
  398. </el-form>
  399. <div slot="footer" class="dialog-footer myfooter">
  400. <el-button type="primary" @click="dialogClicl(2)">确 定</el-button>
  401. <el-button @click="dialogClicl(1)">取 消</el-button>
  402. </div>
  403. </div>
  404. </el-dialog>
  405. <el-dialog
  406. title="查看工单"
  407. :visible.sync="dialogInfo"
  408. width="70%"
  409. :close-on-press-escape="false"
  410. :show-close="true"
  411. :destroy-on-close="true"
  412. :modal-append-to-body="false"
  413. :close-on-click-modal="false"
  414. :fullscreen="true"
  415. >
  416. <div style="height: calc(100vh - 180px); overflow-y: scroll">
  417. <orderCheck
  418. :historySts="historySts"
  419. :infolist="infolist"
  420. :datalist="datalist"
  421. :backlist="backlist"
  422. :dialogInfo="dialogInfo"
  423. ></orderCheck>
  424. </div>
  425. <div class="dialog-footer myfooter">
  426. <el-button @click="dialoginfoCli(1)" type="primary">轨 迹</el-button>
  427. <el-button @click="dialoginfoCli(3)">取 消</el-button>
  428. </div>
  429. </el-dialog>
  430. <el-dialog
  431. title="审核预警工单"
  432. :visible.sync="taskstyjsh"
  433. width="70%"
  434. :close-on-press-escape="false"
  435. :show-close="true"
  436. :destroy-on-close="true"
  437. :modal-append-to-body="false"
  438. :close-on-click-modal="false"
  439. :fullscreen="true"
  440. >
  441. <el-form
  442. :model="infolist"
  443. ref="infolist"
  444. style="height: calc(100vh - 180px); overflow-y: scroll"
  445. >
  446. <div class="info-line">
  447. <el-form-item>
  448. <span>预警规则</span>
  449. <el-input
  450. v-model="infolist.ruleName"
  451. placeholder="工单标题"
  452. disabled
  453. ></el-input>
  454. </el-form-item>
  455. <el-form-item>
  456. <span>工单标题</span>
  457. <el-input
  458. v-model="infolist.woName"
  459. placeholder="工单标题"
  460. disabled
  461. ></el-input>
  462. </el-form-item>
  463. </div>
  464. <el-form-item class="info-line online">
  465. <span>任务描述</span>
  466. <el-input
  467. v-model="infolist.description"
  468. disabled
  469. placeholder="任务描述"
  470. type="textarea"
  471. :rows="3"
  472. >
  473. </el-input>
  474. </el-form-item>
  475. <div
  476. style="padding-left: 100px; padding-right: 20px; margin-bottom: 20px"
  477. >
  478. <uploadDown
  479. :datalist="datalist"
  480. :dialogStatus="uploadstatus"
  481. ></uploadDown>
  482. </div>
  483. <el-form-item class="info-line online">
  484. <span>工单备注</span>
  485. <el-input
  486. v-model="infolist.replyDesc"
  487. placeholder="工单备注"
  488. type="textarea"
  489. :rows="3"
  490. ></el-input>
  491. </el-form-item>
  492. </el-form>
  493. <div slot="footer" class="dialog-footer">
  494. <el-button @click="dialogCliyj(3)" type="primary">通 过</el-button>
  495. <el-button @click="dialogCliyj(4)" type="primary">打 回</el-button>
  496. <el-button @click="dialogCliyj(2)">取 消</el-button>
  497. </div>
  498. </el-dialog>
  499. <el-dialog
  500. title="查看"
  501. :visible.sync="dialogInfoyj"
  502. width="70%"
  503. :close-on-press-escape="false"
  504. :show-close="true"
  505. :destroy-on-close="true"
  506. :modal-append-to-body="false"
  507. :close-on-click-modal="false"
  508. :fullscreen="true"
  509. >
  510. <div style="height: calc(100vh - 180px); overflow-y: scroll">
  511. <ruleCheck
  512. :infolist="infolist"
  513. :datalist="datalist"
  514. :dialogInfo="dialogInfo"
  515. :historySts="historySts"
  516. ></ruleCheck>
  517. </div>
  518. <div class="dialog-footer myfooter">
  519. <el-button @click="dialoginfoCliyj(1)" type="primary">轨 迹</el-button>
  520. <el-button
  521. @click="dialoginfoCliyj(2)"
  522. type="primary"
  523. v-if="infolist.sts == '1'"
  524. >处 理</el-button
  525. >
  526. <el-button @click="dialoginfoCliyj(3)">取 消</el-button>
  527. </div>
  528. </el-dialog>
  529. <el-dialog
  530. title="预警工单处理"
  531. :visible.sync="dialogStatusyj"
  532. width="60%"
  533. :close-on-press-escape="false"
  534. :show-close="true"
  535. :destroy-on-close="true"
  536. :modal-append-to-body="false"
  537. :close-on-click-modal="false"
  538. :fullscreen="true"
  539. >
  540. <div class="dialog-l">
  541. <el-tabs tab-position="left" v-model="activeName">
  542. <el-tab-pane
  543. v-if="item.label != '3'"
  544. v-for="item in routerList"
  545. :key="item.label"
  546. :name="item.label"
  547. :label="item.name"
  548. >
  549. </el-tab-pane>
  550. </el-tabs>
  551. </div>
  552. <div class="dialog-r">
  553. <el-form
  554. :model="infolist"
  555. ref="infolist"
  556. style="height: calc(100vh - 180px); overflow-y: scroll"
  557. >
  558. <div class="info-line">
  559. <el-form-item>
  560. <span>预警规则</span>
  561. <el-input
  562. v-model="infolist.ruleName"
  563. placeholder="工单标题"
  564. disabled
  565. ></el-input>
  566. </el-form-item>
  567. <el-form-item>
  568. <span>工单标题</span>
  569. <el-input
  570. v-model="infolist.woName"
  571. placeholder="工单标题"
  572. ></el-input>
  573. </el-form-item>
  574. </div>
  575. <el-form-item class="info-line online">
  576. <span>接收人员</span>
  577. <deptTreeOnly
  578. class="tree"
  579. @treeCheck="treeCheckonly"
  580. ></deptTreeOnly>
  581. <div class="tree treeUser">
  582. <p>{{ treeListonly.leaderAuditName }}</p>
  583. </div>
  584. </el-form-item>
  585. <el-form-item class="info-line online">
  586. <span>工单备注</span>
  587. <el-input
  588. v-model="infolist.replyDesc"
  589. placeholder="工单备注"
  590. type="textarea"
  591. :rows="3"
  592. ></el-input>
  593. </el-form-item>
  594. </el-form>
  595. </div>
  596. <div slot="footer" class="dialog-footer">
  597. <el-button @click="dialogCliyjt(1)" type="primary">确 定</el-button>
  598. <el-button @click="dialogCliyjt(2)">取 消</el-button>
  599. </div>
  600. </el-dialog>
  601. <el-dialog
  602. title="信息上报审核"
  603. :visible.sync="taskstxxsh"
  604. width="50%"
  605. :close-on-press-escape="false"
  606. :show-close="true"
  607. :destroy-on-close="true"
  608. :modal-append-to-body="false"
  609. :close-on-click-modal="false"
  610. :fullscreen="true"
  611. >
  612. <div>
  613. <el-form :model="infolist" ref="infolist">
  614. <div style="height: calc(100vh - 180px); overflow-y: scroll">
  615. <orderCheck :infolist="infolist" :mini="1"></orderCheck>
  616. <div style="padding: 0 30px 0 20px" v-if="this.attList.length > 0">
  617. <uploadDown
  618. :datalist="datalist"
  619. :dialogStatus="uploadstatus"
  620. ></uploadDown>
  621. </div>
  622. </div>
  623. </el-form>
  624. <div slot="footer" class="dialog-footer myfooter">
  625. <el-button type="primary" @click="dialogClixx(1)">通 过</el-button>
  626. <el-button type="primary" @click="dialogClixx(3)">打 回</el-button>
  627. <el-button @click="dialogClixx(2)">取 消</el-button>
  628. </div>
  629. </div>
  630. </el-dialog>
  631. <el-dialog
  632. title="信息上报处理"
  633. :visible.sync="dialogStatusxx"
  634. width="50%"
  635. :close-on-press-escape="false"
  636. :show-close="true"
  637. :destroy-on-close="true"
  638. :modal-append-to-body="false"
  639. :close-on-click-modal="false"
  640. :fullscreen="true"
  641. >
  642. <div class="dialog-l">
  643. <el-tabs tab-position="left" v-model="activeName">
  644. <el-tab-pane
  645. v-for="item in routerListx"
  646. :key="item.label"
  647. :name="item.label"
  648. :label="item.name"
  649. >
  650. </el-tab-pane>
  651. </el-tabs>
  652. </div>
  653. <div class="dialog-r">
  654. <el-form
  655. :model="infolist"
  656. ref="infolist"
  657. :rules="rules"
  658. style="height: calc(100vh - 180px); overflow-y: scroll"
  659. >
  660. <div class="info-line">
  661. <el-form-item prop="msgTital">
  662. <span>上报标题</span>
  663. <el-input
  664. v-model="infolist.msgTital"
  665. placeholder="标题"
  666. :disabled="disableStatus"
  667. >
  668. </el-input>
  669. </el-form-item>
  670. <el-form-item prop="msgType">
  671. <span>信息分类</span>
  672. <el-select
  673. @change="changemsgType"
  674. v-model="infolist.msgType"
  675. placeholder="信息分类"
  676. clearable
  677. :disabled="disableStatus"
  678. >
  679. <el-option
  680. v-for="item in typelist"
  681. :key="item.id"
  682. :label="item.msgType"
  683. :value="item.id"
  684. >
  685. </el-option>
  686. </el-select>
  687. </el-form-item>
  688. </div>
  689. <el-form-item
  690. prop="visiblec"
  691. class="info-line online"
  692. v-if="activeName == 1"
  693. >
  694. <span>接收人员</span>
  695. <deptTreeOnly
  696. class="tree"
  697. @treeCheck="treeCheckonly"
  698. ></deptTreeOnly>
  699. <div class="tree treeUser">
  700. <p>{{ treeListonly.leaderAuditName }}</p>
  701. </div>
  702. </el-form-item>
  703. <el-form-item
  704. prop="visiblec"
  705. class="info-line online"
  706. v-if="activeName == 2"
  707. >
  708. <span>接收人员</span>
  709. <div class="treedept">
  710. <p v-for="item in exaList" :key="item.loginNoStr">
  711. <el-checkbox
  712. @change="exachange(item)"
  713. v-model="item.sts"
  714. style="margin-right: 10px"
  715. ></el-checkbox
  716. >{{ item.loginNameStr }}
  717. </p>
  718. </div>
  719. </el-form-item>
  720. <el-form-item class="info-line online" prop="msgInfo">
  721. <span>上报内容</span>
  722. <el-input
  723. v-model="infolist.msgInfo"
  724. placeholder="上报内容"
  725. type="textarea"
  726. :rows="3"
  727. :disabled="disableStatus"
  728. ></el-input>
  729. </el-form-item>
  730. <div style="padding-left: 80px" v-if="!disableStatus">
  731. <myUpload
  732. @uploadBack="uploadBack"
  733. :fileInfo="fileInfo"
  734. :fileList="fileInfo.fileList"
  735. >
  736. </myUpload>
  737. </div>
  738. </el-form>
  739. <div slot="footer" class="dialog-footer myfooter">
  740. <el-button @click="dialogCli(2)" v-if="disableStatus"
  741. >确 定</el-button
  742. >
  743. <el-button type="primary" @click="dialogCli(1)" v-if="!disableStatus"
  744. >确 定</el-button
  745. >
  746. <el-button @click="dialogCli(2)">取 消</el-button>
  747. </div>
  748. </div>
  749. </el-dialog>
  750. </div>
  751. </template>
  752. <script>
  753. import uploadDown from "../../../components/uploadDown";
  754. import myUpload from "../../../components/upload.vue";
  755. import deptTree from "../../../components/deptTreeUser.vue";
  756. import deptTreeOnly from "../../../components/deptTreeOnly.vue";
  757. import orderCheck from "../workOrderManage/orderCheck.vue";
  758. import ruleCheck from "../warnManage/ruleCheck.vue";
  759. export default {
  760. components: {
  761. uploadDown,
  762. myUpload,
  763. deptTree,
  764. deptTreeOnly,
  765. orderCheck,
  766. ruleCheck,
  767. },
  768. data() {
  769. const woTitle = (rule, value, callback) => {
  770. if (!this.infolist.woTitle) {
  771. callback(new Error("不能为空"));
  772. } else {
  773. callback();
  774. }
  775. };
  776. const requireTime = (rule, value, callback) => {
  777. if (!this.infolist.requireTime) {
  778. callback(new Error("不能为空"));
  779. } else {
  780. callback();
  781. }
  782. };
  783. return {
  784. rules: {
  785. woTitle: [
  786. {
  787. required: true,
  788. trigger: "blur",
  789. validator: woTitle,
  790. },
  791. ],
  792. requireTime: [
  793. {
  794. required: true,
  795. trigger: "change",
  796. validator: requireTime,
  797. },
  798. ],
  799. },
  800. noticeData: [],
  801. knowledgeData: [],
  802. srcsc: "",
  803. ifrshow: false,
  804. infolist: {},
  805. infolistyj: {},
  806. dialogStatus: false,
  807. dialogStatusyj: false,
  808. dialogStatusxx: false,
  809. diaKnowStatus: false,
  810. uploadstatus: false,
  811. datalist: {
  812. url: "/sysmgr/noticeatt/downfile",
  813. type: 1,
  814. },
  815. backlist: {
  816. url: "/sysmgr/noticeatt/downfile",
  817. type: 1,
  818. },
  819. datalistk: {
  820. url: "/market/compatt/downfile",
  821. type: 1,
  822. },
  823. attList: [],
  824. niticList: [],
  825. datalistn: {
  826. url: "/sysmgr/noticeatt/downfile",
  827. type: 1,
  828. },
  829. noticStatus: false,
  830. typelist: [],
  831. userInfo: {},
  832. knowledgeData: [],
  833. tableDatayj: [],
  834. btnsts: null,
  835. disableStatus: false,
  836. visiblec: [],
  837. typeOptions: [],
  838. fileInfo: {
  839. limit: 10,
  840. url: "/market/cwo/upload",
  841. fileList: [],
  842. },
  843. btnctrlStatus: false,
  844. tasksts: false,
  845. taskstsh: false,
  846. taskstyjsh: false,
  847. taskstxxsh: false,
  848. taskstcl: false,
  849. dialogInfo: false,
  850. treeList: [],
  851. treeListonly: [],
  852. activeName: "1",
  853. routerList: [
  854. {
  855. name: "其他人办理",
  856. label: "1",
  857. },
  858. {
  859. name: "领导审批",
  860. label: "2",
  861. },
  862. {
  863. name: "办理结束",
  864. label: "3",
  865. },
  866. ],
  867. routerListx: [
  868. {
  869. name: "上报",
  870. label: "1",
  871. },
  872. {
  873. name: "审批",
  874. label: "2",
  875. },
  876. ],
  877. historySts: false,
  878. dialogInfoyj: false,
  879. exaList: [],
  880. };
  881. },
  882. methods: {
  883. dialoginfoCli(v) {
  884. if (v == 1) {
  885. this.historySts = !this.historySts;
  886. } else if (v == 3) {
  887. this.dialogInfo = false;
  888. this.historySts = false;
  889. this.infolist = {};
  890. }
  891. },
  892. //新增待办工单
  893. dialogCliadd(v) {
  894. if (v === 2) {
  895. this.tasksts = false;
  896. return;
  897. } else if (v === 1) {
  898. let _this = this;
  899. let params = {};
  900. if (this.activeName == "1") {
  901. params.sts = "2";
  902. params.stsDesc = "待处理";
  903. params.auditName = this.treeListonly.leaderAuditName;
  904. params.auditNo = this.treeListonly.leaderAuditNo;
  905. params.leaderAuditName = this.treeListonly.leaderAuditName;
  906. params.leaderAuditNo = this.treeListonly.leaderAuditNo;
  907. if (!this.treeListonly.leaderAuditName) {
  908. this.$message({
  909. message: "请选择接单人!",
  910. type: "error",
  911. });
  912. return;
  913. }
  914. } else if (this.activeName == "2") {
  915. params.sts = "0";
  916. params.stsDesc = "待审核";
  917. params.auditName = this.userInfo.loginName;
  918. params.auditNo = this.userInfo.loginNo;
  919. params.leaderAuditName = this.treeListonly.leaderAuditName;
  920. params.leaderAuditNo = this.treeListonly.leaderAuditNo;
  921. if (!this.treeListonly.leaderAuditName) {
  922. this.$message({
  923. message: "请选择接单人!",
  924. type: "error",
  925. });
  926. return;
  927. }
  928. } else if (this.activeName == "3") {
  929. params.sts = "1";
  930. params.stsDesc = "已处理";
  931. }
  932. params.stepSts = this.activeName;
  933. params.sendNo = this.userInfo.loginNo;
  934. params.sendName = this.userInfo.loginName;
  935. params.woTitle = this.infolist.woTitle;
  936. params.arcDesc = this.infolist.arcDesc;
  937. params.sendTime = this.$formatDate(new Date(), "YYYY-MM-DD");
  938. params.requireTime = this.$formatDate(
  939. this.infolist.requireTime,
  940. "YYYY-MM-DD"
  941. );
  942. let attList = [];
  943. for (let i = 0; i < this.attList.length; i++) {
  944. attList.push({
  945. id: this.attList[i].id,
  946. fileCode: this.attList[i].fileCode,
  947. fileName: this.attList[i].fileName,
  948. opName: this.attList[i].opName,
  949. opNo: this.attList[i].opNo,
  950. opTime: this.attList[i].opTime,
  951. woNo: this.infolist.woNo,
  952. });
  953. }
  954. params.attList = attList;
  955. this.$http({
  956. url: "/market/cwo/add",
  957. method: "post",
  958. headers: {
  959. "Content-Type": "application/json",
  960. },
  961. data: params,
  962. }).then((res) => {
  963. if (res.data.result === 1) {
  964. _this.$message({
  965. message: res.data.desc,
  966. type: "error",
  967. });
  968. } else {
  969. _this.$message({
  970. message: "成功",
  971. type: "success",
  972. });
  973. }
  974. _this.tasksts = false;
  975. _this.treeListonly = {};
  976. _this.attList = [];
  977. _this.infolist = {};
  978. });
  979. }
  980. },
  981. //待办任务查询
  982. daiban() {
  983. this.$http({
  984. url: "/market/cwo/queryQaToDoList",
  985. method: "post",
  986. headers: {
  987. "Content-Type": "application/json",
  988. page: '{"pageNo":"' + 1 + '","pageSize":"100"}',
  989. },
  990. data: {},
  991. }).then((res) => {
  992. this.niticList = res.data.data;
  993. });
  994. },
  995. //待办任务详情
  996. checkNotic(n, v) {
  997. let u = "";
  998. let params = {};
  999. if (v.woTypeDesc == "工单") {
  1000. u = "/market/cwo/queryInfo";
  1001. params.woNo = v.woNo;
  1002. } else if (v.woTypeDesc == "预警工单") {
  1003. u = "/market/alarmCWo/Cquery";
  1004. params.woNo = v.woNo;
  1005. } else {
  1006. u = "/market/cqamsg/queryInfo";
  1007. params.id = v.woNo;
  1008. }
  1009. this.$http({
  1010. url: u,
  1011. method: "post",
  1012. headers: {
  1013. "Content-Type": "application/json",
  1014. },
  1015. data: params,
  1016. }).then((res) => {
  1017. this.activeName = v.stepSts;
  1018. this.infolist = res.data;
  1019. if (v.woTypeDesc == "信息上报") {
  1020. this.infolist.id = res.data.id;
  1021. } else {
  1022. this.infolist.id = v.id;
  1023. }
  1024. if (n === 1) {
  1025. this.datalist.attList = res.data.attList;
  1026. if (v.woTypeDesc == "工单") {
  1027. this.backlist.attList = res.data.revertAttList;
  1028. this.dialogInfo = true;
  1029. } else if (v.woTypeDesc == "预警工单") {
  1030. this.infolist.attList = res.data.attList;
  1031. this.dialogInfoyj = true;
  1032. } else if (v.woTypeDesc == "信息上报") {
  1033. this.infolist.id = res.data.id;
  1034. this.infolist.attList = res.data.attList;
  1035. this.dialogInfoyj = true;
  1036. }
  1037. } else if (n === 2) {
  1038. this.activeName = "3";
  1039. if (v.woTypeDesc == "工单") {
  1040. this.taskstcl = true;
  1041. } else if (v.woTypeDesc == "预警工单") {
  1042. this.infolist.attList = res.data.attList;
  1043. this.datalist.attList = res.data.attList;
  1044. this.dialogStatusyj = true;
  1045. } else if (v.woTypeDesc == "信息上报") {
  1046. this.infolist.id = res.data.id;
  1047. this.infolist.attList = res.data.attList;
  1048. this.datalist.attList = res.data.attList;
  1049. this.dialogStatusxx = true;
  1050. }
  1051. } else if (n === 3) {
  1052. if (v.woTypeDesc == "工单") {
  1053. this.taskstsh = true;
  1054. } else if (v.woTypeDesc == "预警工单") {
  1055. this.taskstyjsh = true;
  1056. this.infolist.attList = res.data.attList;
  1057. this.datalist.attList = res.data.attList;
  1058. } else if (v.woTypeDesc == "信息上报") {
  1059. this.infolist.id = res.data.id;
  1060. this.taskstxxsh = true;
  1061. this.infolist.attList = res.data.attList;
  1062. this.datalist.attList = res.data.attList;
  1063. }
  1064. this.activeName = "2";
  1065. }
  1066. this.attList = [];
  1067. this.fileInfo.fileList = [];
  1068. if (res.data.attList) {
  1069. res.data.attList.forEach((item) => {
  1070. this.fileInfo.fileList.push({
  1071. name: item.fileName,
  1072. url: "",
  1073. id: item.id,
  1074. fileName: item.fileName,
  1075. fileCode: item.fileCode,
  1076. });
  1077. this.attList.push({
  1078. name: item.fileName,
  1079. url: "",
  1080. id: item.id,
  1081. fileName: item.fileName,
  1082. fileCode: item.fileCode,
  1083. });
  1084. });
  1085. }
  1086. });
  1087. },
  1088. //审核待办工单
  1089. dialogCliup(v) {
  1090. if (v === 2) {
  1091. this.taskstsh = false;
  1092. return;
  1093. }
  1094. let params = {
  1095. woNo: this.infolist.woNo,
  1096. taskId: this.infolist.taskId,
  1097. woTitle: this.infolist.woTitle,
  1098. sts: "4",
  1099. stsDesc: v === 3 ? "通过" : "打回",
  1100. };
  1101. params.leaderAuditName = this.infolist.auditName;
  1102. params.leaderAuditNo = this.infolist.auditNo;
  1103. params.stepSts = this.activeName;
  1104. if (this.infolist.auditNo != this.infolist.sendNo) {
  1105. params.sts = "2";
  1106. params.stsDesc = "待处理";
  1107. }
  1108. if (this.activeName == "1") {
  1109. params.sts = "0";
  1110. params.stsDesc = "待审核";
  1111. params.leaderAuditName = this.treeListonly.leaderAuditName;
  1112. params.leaderAuditNo = this.treeListonly.leaderAuditNo;
  1113. if (!this.treeListonly.leaderAuditName) {
  1114. this.$message({
  1115. message: "请选择接单人!",
  1116. type: "error",
  1117. });
  1118. return;
  1119. }
  1120. } else if (this.activeName == "3") {
  1121. params.sts = "1";
  1122. params.stsDesc = "已处理";
  1123. }
  1124. this.submitdaiban("/market/cwo/chkWoInfo", params);
  1125. },
  1126. //回复待办工单
  1127. dialogClicl(v) {
  1128. if (v == 1) {
  1129. this.infolist = {};
  1130. this.taskstcl = false;
  1131. return;
  1132. } else if (v == 2) {
  1133. let params = {
  1134. woNo: this.infolist.woNo,
  1135. woTitle: this.infolist.woTitle,
  1136. dealRemark: this.infolist.dealRemark,
  1137. revertAttList: [],
  1138. };
  1139. if (this.activeName == "1") {
  1140. params.sts = "2";
  1141. params.stsDesc = "待处理";
  1142. params.auditName = this.treeListonly.leaderAuditName;
  1143. params.auditNo = this.treeListonly.leaderAuditNo;
  1144. if (!this.treeListonly.leaderAuditName) {
  1145. this.$message({
  1146. message: "请选择接单人!",
  1147. type: "error",
  1148. });
  1149. return;
  1150. }
  1151. } else if (this.activeName == "2") {
  1152. params.sts = "0";
  1153. params.stsDesc = "待审核";
  1154. params.leaderAuditName = this.treeListonly.leaderAuditName;
  1155. params.leaderAuditNo = this.treeListonly.leaderAuditNo;
  1156. if (!this.treeListonly.leaderAuditName) {
  1157. this.$message({
  1158. message: "请选择接单人!",
  1159. type: "error",
  1160. });
  1161. return;
  1162. }
  1163. } else if (this.activeName == "3") {
  1164. params.sts = "1";
  1165. params.stsDesc = "已处理";
  1166. }
  1167. let attList = [];
  1168. for (let i = 0; i < this.attList.length; i++) {
  1169. attList.push({
  1170. id: this.attList[i].id,
  1171. fileCode: this.attList[i].fileCode,
  1172. fileName: this.attList[i].fileName,
  1173. });
  1174. }
  1175. params.revertAttList = attList;
  1176. params.stepSts = this.activeName;
  1177. this.submitdaiban("/market/cwo/recWoInfo", params);
  1178. }
  1179. },
  1180. //调用接口
  1181. submitdaiban(u, params) {
  1182. let _this = this;
  1183. this.$http({
  1184. url: u,
  1185. method: "post",
  1186. headers: {
  1187. "Content-Type": "application/json",
  1188. },
  1189. data: params,
  1190. }).then((res) => {
  1191. if (res.data.result === 1) {
  1192. _this.$message({
  1193. message: res.data.desc,
  1194. type: "error",
  1195. });
  1196. } else {
  1197. _this.$message({
  1198. message: "成功",
  1199. type: "success",
  1200. });
  1201. _this.infolist = {};
  1202. _this.taskstsh = false;
  1203. _this.taskstcl = false;
  1204. _this.treeListonly = {};
  1205. _this.daiban();
  1206. }
  1207. });
  1208. },
  1209. //已办列表
  1210. getListyj() {
  1211. let _this = this;
  1212. this.$http({
  1213. url: "/market/cwo/queryQaFinishList",
  1214. method: "post",
  1215. headers: {
  1216. "Content-Type": "application/json",
  1217. page: '{"pageNo":"' + 1 + '","pageSize":"100"}',
  1218. },
  1219. data: {},
  1220. }).then((res) => {
  1221. this.tableDatayj = res.data.data;
  1222. });
  1223. },
  1224. dialogCliyj(v) {
  1225. if (v === 2) {
  1226. this.infolist = {};
  1227. this.taskstyjsh = false;
  1228. return;
  1229. }
  1230. let info = {};
  1231. info.woNo = this.infolist.woNo;
  1232. info.auditRemarks = this.infolist.auditRemarks;
  1233. info.auditTime = this.$formatDate(new Date(), "YYYY-MM-DD");
  1234. info.auditName = this.userInfo.loginName;
  1235. info.auditNo = this.userInfo.loginNo;
  1236. info.auditRemarks = this.infolist.auditRemarks;
  1237. if (v == 3) {
  1238. info.sts = "1";
  1239. info.stsDesc = "通过";
  1240. } else {
  1241. info.sts = "2";
  1242. info.stsDesc = "打回";
  1243. }
  1244. this.submitInfoyj("/market/alarmCWo/examineAlarmWo", info);
  1245. },
  1246. submitInfoyj(u, v) {
  1247. let _this = this;
  1248. this.$refs.infolist.validate((valid) => {
  1249. if (valid) {
  1250. this.$http({
  1251. url: u,
  1252. method: "post",
  1253. headers: {
  1254. "Content-Type": "application/json",
  1255. },
  1256. data: v,
  1257. }).then((res) => {
  1258. if (res.data.result === 1) {
  1259. _this.$message({
  1260. message: res.data.desc,
  1261. type: "error",
  1262. });
  1263. } else {
  1264. _this.$message({
  1265. message: "成功",
  1266. type: "success",
  1267. });
  1268. _this.infolist = {};
  1269. _this.taskstyjsh = false;
  1270. _this.daiban();
  1271. }
  1272. });
  1273. }
  1274. });
  1275. },
  1276. dialoginfoCliyj(v) {
  1277. if (v == 1) {
  1278. this.historySts = !this.historySts;
  1279. } else if (v == 2) {
  1280. this.btnsts = 3;
  1281. this.titname = "审核";
  1282. this.dialogInfoyj = false;
  1283. this.dialogStatus = true;
  1284. this.historySts = false;
  1285. } else if (v == 3) {
  1286. this.dialogInfoyj = false;
  1287. this.infolist = {};
  1288. this.fileInfo.fileList = [];
  1289. this.historySts = false;
  1290. }
  1291. },
  1292. dialogCliyjt(v) {
  1293. if (v === 2) {
  1294. this.infolist = {};
  1295. this.dialogStatusyj = false;
  1296. return;
  1297. }
  1298. let info = {};
  1299. info.woNo = this.infolist.woNo;
  1300. info.woName = this.infolist.woName;
  1301. info.replyDesc = this.infolist.replyDesc;
  1302. let attList = [];
  1303. for (let i = 0; i < this.attList.length; i++) {
  1304. attList.push({
  1305. id: this.attList[i].id,
  1306. fileCode: this.attList[i].fileCode,
  1307. fileName: this.attList[i].fileName,
  1308. woNo: this.infolist.woNo,
  1309. });
  1310. }
  1311. info.attList = attList;
  1312. if (this.activeName == "1") {
  1313. info.sts = "0";
  1314. info.stsDesc = "待回复";
  1315. info.receiveName = this.treeListonly.leaderAuditName;
  1316. info.receiveNo = this.treeListonly.leaderAuditNo;
  1317. this.submitInfot("/market/alarmCWo/redeploySQaAlarmWo", info);
  1318. } else if (this.activeName == "2") {
  1319. info.sts = "1";
  1320. info.stsDesc = "待审核";
  1321. info.auditName = this.treeListonly.leaderAuditName;
  1322. info.auditNo = this.treeListonly.leaderAuditNo;
  1323. this.submitInfot("/market/alarmCWo/replyAlarmWo", info);
  1324. }
  1325. },
  1326. submitInfot(u, v) {
  1327. let _this = this;
  1328. this.$refs.infolist.validate((valid) => {
  1329. if (valid) {
  1330. this.$http({
  1331. url: u,
  1332. method: "post",
  1333. headers: {
  1334. "Content-Type": "application/json",
  1335. },
  1336. data: v,
  1337. }).then((res) => {
  1338. if (res.data.result === 1) {
  1339. _this.$message({
  1340. message: res.data.desc,
  1341. type: "error",
  1342. });
  1343. } else {
  1344. _this.$message({
  1345. message: "成功",
  1346. type: "success",
  1347. });
  1348. _this.infolist = {};
  1349. _this.dialogStatusyj = false;
  1350. _this.daiban();
  1351. }
  1352. });
  1353. }
  1354. });
  1355. },
  1356. dialogClixx(v) {
  1357. this.datalist.attList = [];
  1358. if (v === 2) {
  1359. this.fileInfo.fileList = [];
  1360. this.infolist = {};
  1361. this.taskstxxsh = false;
  1362. return;
  1363. }
  1364. let info = {};
  1365. info.auditTime = this.$formatDate(new Date(), "YYYY-MM-DD");
  1366. info.auditNo = this.userInfo.loginNo;
  1367. info.auditName = this.userInfo.loginName;
  1368. info.id = this.infolist.id;
  1369. info.auditResultRemark = this.infolist.auditResultRemark;
  1370. if (v === 1) {
  1371. info.dealType = "2";
  1372. info.stsDesc = "通过";
  1373. } else {
  1374. info.dealType = "3";
  1375. info.stsDesc = "打回";
  1376. }
  1377. this.submitInfoxx("/market/cqamsg/chkQaMsg", info);
  1378. },
  1379. submitInfoxx(u, v) {
  1380. let _this = this;
  1381. this.$refs.infolist.validate((valid) => {
  1382. if (valid) {
  1383. this.loadinged = true;
  1384. this.$http({
  1385. url: u,
  1386. method: "post",
  1387. headers: {
  1388. "Content-Type": "application/json",
  1389. },
  1390. data: v,
  1391. }).then((res) => {
  1392. this.loadinged = false;
  1393. if (res.data.result === 1) {
  1394. _this.$message({
  1395. message: res.data.desc,
  1396. type: "error",
  1397. });
  1398. } else {
  1399. _this.$message({
  1400. message: "成功",
  1401. type: "success",
  1402. });
  1403. _this.fileInfo.fileList = [];
  1404. _this.infolist = {};
  1405. _this.infolist.deptCode = "";
  1406. _this.taskstxxsh = false;
  1407. _this.daiban();
  1408. }
  1409. });
  1410. }
  1411. });
  1412. },
  1413. //文件返回值
  1414. uploadBack(v) {
  1415. this.attList = v;
  1416. },
  1417. treeCheckonly(v) {
  1418. this.treeListonly = v;
  1419. },
  1420. //发起工单
  1421. newtask() {
  1422. this.tasksts = true;
  1423. },
  1424. changemsgType() {
  1425. for (let i = 0; i < this.typelist.length; i++) {
  1426. if (this.infolist.msgType === this.typelist[i].id) {
  1427. this.infolist.msgTypeName = this.typelist[i].msgType;
  1428. }
  1429. }
  1430. },
  1431. getType() {
  1432. this.$http({
  1433. url: "/market/qatype/queryPage",
  1434. method: "post",
  1435. headers: {
  1436. "Content-Type": "application/json",
  1437. page: '{"pageNo":"' + 1 + '","pageSize":"100"}',
  1438. },
  1439. data: {
  1440. sts: 0,
  1441. },
  1442. }).then((res) => {
  1443. this.typelist = res.data.data;
  1444. });
  1445. },
  1446. exachange(v) {
  1447. for (let i = 0; i < this.exaList.length; i++) {
  1448. this.exaList[i].sts = false;
  1449. if (this.exaList[i].id == v.id) {
  1450. this.exaList[i].sts = true;
  1451. let opt = {
  1452. leaderAuditNo: this.exaList[i].loginNoStr,
  1453. leaderAuditName: this.exaList[i].loginNameStr,
  1454. displayname: this.exaList[i].groupName,
  1455. };
  1456. this.treeListonly = opt;
  1457. }
  1458. }
  1459. this.$forceUpdate();
  1460. },
  1461. //获取人员
  1462. getDepot() {
  1463. this.$http({
  1464. url: "/sysmgr/csysuserinfo/queryOwnDeptUserListByLoginNo",
  1465. method: "post",
  1466. headers: {
  1467. "Content-Type": "application/json",
  1468. },
  1469. data: {},
  1470. }).then((res) => {
  1471. this.exaList = res.data;
  1472. });
  1473. },
  1474. },
  1475. mounted() {
  1476. this.daiban();
  1477. this.getType();
  1478. this.getListyj();
  1479. this.userInfo = JSON.parse(window.sessionStorage.userInfo);
  1480. },
  1481. created() {},
  1482. };
  1483. </script>
  1484. <style lang="scss" scoped>
  1485. .dialog-footer {
  1486. padding-right: 20px;
  1487. text-align: right;
  1488. margin-top: 20px;
  1489. }
  1490. .taskbox {
  1491. width: 49.5%;
  1492. display: inline-block;
  1493. }
  1494. .tit {
  1495. margin-top: 10px;
  1496. clear: both;
  1497. height: 47px;
  1498. background: #fff;
  1499. line-height: 47px;
  1500. padding: 0 20px;
  1501. display: flex;
  1502. justify-content: space-between;
  1503. border-bottom: 1px solid black;
  1504. }
  1505. .info-line {
  1506. width: 100%;
  1507. display: block;
  1508. padding-left: 20px;
  1509. div {
  1510. width: 50%;
  1511. display: inline-block;
  1512. overflow: hidden;
  1513. }
  1514. .mytxt {
  1515. height: 40px;
  1516. padding-left: 20px;
  1517. border: 1px solid #ddd;
  1518. border-radius: 5px;
  1519. width: calc(100% - 100px);
  1520. float: left;
  1521. }
  1522. .mytxtinfo {
  1523. line-height: 40px;
  1524. height: auto;
  1525. padding-left: 20px;
  1526. border: 1px solid #ddd;
  1527. border-radius: 5px;
  1528. width: calc(100% - 100px);
  1529. }
  1530. span {
  1531. width: 80px;
  1532. display: inline-block;
  1533. text-align: left;
  1534. float: left;
  1535. i {
  1536. color: red;
  1537. display: inline-block;
  1538. padding-right: 5px;
  1539. }
  1540. }
  1541. .el-select,
  1542. .el-input {
  1543. width: calc(100% - 100px);
  1544. }
  1545. }
  1546. .online {
  1547. width: 100%;
  1548. .el-select {
  1549. width: calc(100% - 100px);
  1550. }
  1551. span {
  1552. vertical-align: top;
  1553. }
  1554. .el-textarea {
  1555. width: calc(100% - 100px);
  1556. }
  1557. .tree {
  1558. width: calc(50% - 60px);
  1559. display: inline-block;
  1560. margin-right: 20px;
  1561. height: 300px;
  1562. overflow-y: scroll;
  1563. }
  1564. .treeUser {
  1565. margin: 0;
  1566. border: 1px solid #ddd;
  1567. p {
  1568. background: #f4f4f4;
  1569. padding: 0 20px;
  1570. margin-bottom: 5px;
  1571. }
  1572. }
  1573. .treeUserb {
  1574. width: calc(100% - 100px);
  1575. border: 1px solid #ddd;
  1576. background: #f4f4f4;
  1577. border-radius: 3px;
  1578. height: auto;
  1579. overflow: hidden;
  1580. p {
  1581. display: inline-block;
  1582. padding: 0 20px;
  1583. margin-bottom: 5px;
  1584. }
  1585. }
  1586. .treedept {
  1587. width: calc(100% - 100px);
  1588. // display: inline-block;
  1589. margin-right: 20px;
  1590. border: 1px solid #ddd;
  1591. border-radius: 3px;
  1592. padding: 0 20px;
  1593. p {
  1594. display: inline-block;
  1595. margin-right: 20px;
  1596. }
  1597. }
  1598. }
  1599. </style>