ee20cc1f0921d5cc4dd8ed15ca4d8cfd3c8e9983.svn-base 70 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666
  1. <template>
  2. <div style="height:100%;width:100%" id="wenTiContainer_sk">
  3. <el-container>
  4. <el-aside
  5. width="318px"
  6. style="border-right:2px solid #d5d5ff;float:left"
  7. :style="{'max-height':testHeight+'px','height':testHeight+'px'}"
  8. >
  9. <div class="tree" style="
  10. height: 100%;
  11. width: 100%;
  12. overflow: auto;
  13. display: inline-flex;">
  14. <el-tree
  15. :highlight-current="true"
  16. style="height:100%;"
  17. :data="treeData"
  18. node-key="id"
  19. show-checkbox
  20. @check-change="handleCheckChange"
  21. ref="jigou_tree"
  22. >
  23. <div class="custom-tree-node" slot-scope="{ node, data }">
  24. <span style="float:left;">
  25. {{ data.pnm}}
  26. </span>
  27. <div
  28. style="float:right;display: flex;justify-content: flex-end;align-items: center;width:50%;"
  29. >
  30. <span style="color:blue;width:80px;"></span>
  31. </div>
  32. </div>
  33. </el-tree>
  34. </div>
  35. </el-aside>
  36. <!-- 主要窗口 -->
  37. <el-main style="margin:0px;padding:0px;overflow-y:hidden;" class="shuiku" v-loading="exportLoading">
  38. <!-- <el-card> -->
  39. <div class="pages" :style="{'max-height':testHeight+'px'}">
  40. <div style="padding: 12px 0 0 0">
  41. <el-row type="flex" justify="space-between">
  42. <el-col :span="24">
  43. <el-form :inline="true" size="mini" class="demo-form-inline"
  44. style="padding-left: 10px;">
  45. <el-form-item label="行政区划:">
  46. <el-input
  47. resize="none"
  48. type="input"
  49. :rows="3"
  50. placeholder="请输入行政区划名称"
  51. v-model.trim="findParams.adFullName"
  52. clearable
  53. ></el-input>
  54. </el-form-item>
  55. <el-form-item label="水库名称:">
  56. <el-input
  57. resize="none"
  58. type="input"
  59. :rows="3"
  60. placeholder="请输入水库名称"
  61. v-model.trim="findParams.nm"
  62. clearable
  63. ></el-input>
  64. </el-form-item>
  65. </el-form>
  66. </el-col>
  67. </el-row>
  68. <el-row type="flex" justify="space-between" v-show="showExpandSearchPanel">
  69. <el-col :span="24">
  70. <el-form :inline="true" size="mini" class="demo-form-inline"
  71. style="padding-left: 10px;">
  72. <el-form-item label="检查事项:">
  73. <el-select v-model="findParams.bplmsTypeId" clearable placeholder="请选择">
  74. <el-option
  75. v-for="item in problemList"
  76. :key="item.guid"
  77. :label="item.inspPblmsName"
  78. :value="item.guid"
  79. ></el-option>
  80. </el-select>
  81. </el-form-item>
  82. <el-form-item label="是否典型:">
  83. <el-select v-model="findParams.ifCasePblm" clearable placeholder="请选择">
  84. <el-option
  85. v-for="item in supervision"
  86. :key="item.value"
  87. :label="item.label"
  88. :value="item.value"
  89. ></el-option>
  90. </el-select>
  91. </el-form-item>
  92. <el-form-item label="问题筛选:">
  93. <el-select v-model="pblscr" clearable placeholder="请选择">
  94. <el-option
  95. v-for="item in pblscrList"
  96. :key="item.value"
  97. :label="item.lable"
  98. :value="item.value"
  99. ></el-option>
  100. </el-select>
  101. </el-form-item>
  102. <el-form-item label="上报人员:">
  103. <el-input
  104. resize="none"
  105. type="input"
  106. :rows="3"
  107. placeholder="请输入名称"
  108. v-model.trim="findParams.persName"
  109. ></el-input>
  110. </el-form-item>
  111. <!--<el-form-item label="严重程度:">-->
  112. <!--<el-select v-model="findParams.inspPblmCate" clearable placeholder="请选择">-->
  113. <!--<el-option-->
  114. <!--v-for="item in supervisionState"-->
  115. <!--:key="item.value"-->
  116. <!--:label="item.label"-->
  117. <!--:value="item.value"-->
  118. <!--&gt;</el-option>-->
  119. <!--</el-select>-->
  120. <!--</el-form-item>-->
  121. <el-form-item label="发现时间:">
  122. <el-date-picker
  123. style="width: 200px;"
  124. v-model="value6"
  125. type="daterange"
  126. value-format="yyyy-MM-dd"
  127. range-separator="至"
  128. start-placeholder="开始日期"
  129. end-placeholder="结束日期"
  130. ></el-date-picker>
  131. </el-form-item>
  132. <el-form-item label="所在组:">
  133. <el-input
  134. resize="none"
  135. type="input"
  136. :rows="3"
  137. placeholder="请输入所在组名称"
  138. v-model.trim="pblscrGroup"
  139. clearable
  140. ></el-input>
  141. </el-form-item>
  142. <el-form-item label="是否包含多媒体文件:">
  143. <el-select v-model="findParams.hasVedio" clearable placeholder="请选择">
  144. <el-option
  145. v-for="item in hasVedio1"
  146. :key="item.value"
  147. :label="item.label"
  148. :value="item.value"
  149. ></el-option>
  150. </el-select>
  151. </el-form-item>
  152. <el-form-item label="问题督查状态:">
  153. <el-select v-model="findParams.state" clearable placeholder="请选择">
  154. <el-option
  155. v-for="item in stateList"
  156. :key="item.value"
  157. :label="item.label"
  158. :value="item.value"
  159. ></el-option>
  160. </el-select>
  161. </el-form-item>
  162. </el-form>
  163. </el-col>
  164. </el-row>
  165. <el-row type="flex" justify="space-between" style="border-top:1px solid #0014ff2e;">
  166. <el-col style='padding-bottom:10px;' :span="12">
  167. <el-button style="float:right;margin-right:10px;border: 1px solid #0014ff2e;
  168. border-radius: 0px 0px 5px 5px;border-top: 0px;" type="info" plain
  169. size="mini"
  170. @click="showExpandSearchPanel = !showExpandSearchPanel"
  171. >
  172. {{showExpandSearchPanel?'收起':'更多条件'}}
  173. <i class="el-icon-arrow-down el-icon--right" v-show="!showExpandSearchPanel"/>
  174. <i class="el-icon-arrow-up el-icon--right" v-show="showExpandSearchPanel"/>
  175. </el-button>
  176. </el-col>
  177. <el-col :span="12">
  178. <el-button
  179. style="color:rgba(255,255,255,1);float:right;margin-right:10px;margin-top:5px;"
  180. type="success"
  181. @click="submitBtn"
  182. >问题提交
  183. </el-button>
  184. <el-button
  185. style="color:rgba(255,255,255,1);float:right;margin-right:10px;margin-top:5px;"
  186. type="primary"
  187. icon="el-icon-search"
  188. @click="search"
  189. >&nbsp;查&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;询&nbsp;
  190. </el-button>
  191. <el-button
  192. style="color:rgba(255,255,255,1);float:right;margin-right:10px;margin-top:5px;"
  193. type="success"
  194. icon="el-icon-download"
  195. @click="exportExcel"
  196. >导出EXCEL
  197. </el-button>
  198. <el-button
  199. v-if="isGd"
  200. style="color:rgba(255,255,255,1);float:right;margin-right:10px;margin-top:5px;"
  201. type="success"
  202. icon="el-icon-download"
  203. @click="toForm"
  204. >导出一表一单
  205. </el-button>
  206. <!--<el-button-->
  207. <!--style="color:rgba(255,255,255,1);float:right;margin-right:10px;margin-top:5px;"-->
  208. <!--type="success"-->
  209. <!--icon="el-icon-download"-->
  210. <!--@click="exportWord"-->
  211. <!--&gt;导出WORD-->
  212. <!--</el-button>-->
  213. <!--<el-button-->
  214. <!--style="color:rgba(255,255,255,1);float:right;margin-right:10px;margin-top:5px;"-->
  215. <!--type="success"-->
  216. <!--icon="el-icon-download"-->
  217. <!--@click="exportExcel"-->
  218. <!--&gt;导出EXCEL-->
  219. <!--</el-button>-->
  220. <!--<el-button-->
  221. <!--style="color:rgba(255,255,255,1);float:right;margin-right:10px;margin-top:5px;"-->
  222. <!--type="success"-->
  223. <!--icon="el-icon-download"-->
  224. <!--@click="showPlDialog"-->
  225. <!--:disabled="uploadDisabled"-->
  226. <!--&gt;上传模板-->
  227. <!--</el-button>-->
  228. <!--<el-button-->
  229. <!--style="color:rgba(255,255,255,1);float:right;margin-right:10px;margin-top:5px;"-->
  230. <!--type="success"-->
  231. <!--icon="el-icon-download"-->
  232. <!--@click="downloadTemplate"-->
  233. <!--&gt;导出模板-->
  234. <!--</el-button>-->
  235. <shuiKuWentiPl v-if="showShuiKuTianBaoPl"
  236. :showShuiKuTianBaoPl="showShuiKuTianBaoPl"
  237. @closePlDialog="closePlDialog"></shuiKuWentiPl>
  238. </el-col>
  239. </el-row>
  240. </div>
  241. <!-- 查询展示 -->
  242. <div class="search" style="margin-top:10px;">
  243. <el-table
  244. v-loading="loading"
  245. border
  246. ref="multipleTable"
  247. :height="tableHeight"
  248. :data="searchResult"
  249. tooltip-effect="dark"
  250. style="width: 100%"
  251. @selection-change="handleSelectionChange"
  252. >
  253. <el-table-column align="center" type="index" label="序号" min-width="25">
  254. <template slot-scope="scope">{{ (currentPage - 1) * pageSize + (scope.$index + 1) }}
  255. </template>
  256. </el-table-column>
  257. <el-table-column
  258. type="selection"
  259. min-width="55">
  260. </el-table-column>
  261. <!-- <el-table-column header-align="center" align="center" min-width="140" prop="inspPblmName" label="小水库问题类别"></el-table-column> -->
  262. <el-table-column
  263. header-align="center"
  264. align="center"
  265. min-width="60"
  266. prop="province"
  267. label="省" v-if="isXj"
  268. show-overflow-tooltip
  269. ></el-table-column>
  270. <el-table-column
  271. header-align="center"
  272. align="center"
  273. min-width="60"
  274. prop="city"
  275. :label="ownAdName"
  276. show-overflow-tooltip
  277. ></el-table-column>
  278. <el-table-column
  279. header-align="center"
  280. align="center"
  281. min-width="60"
  282. prop="country"
  283. label="县" v-if="isXj"
  284. show-overflow-tooltip
  285. ></el-table-column>
  286. <el-table-column
  287. header-align="center"
  288. align="center"
  289. min-width="110"
  290. prop="nm"
  291. label="督查水库名称"
  292. show-overflow-tooltip
  293. ></el-table-column>
  294. <el-table-column
  295. header-align="center"
  296. align="center"
  297. min-width="140"
  298. prop="inspPblmsName"
  299. label="检查事项"
  300. show-overflow-tooltip
  301. ></el-table-column>
  302. <el-table-column
  303. header-align="center"
  304. align="center"
  305. min-width="160"
  306. prop="inspPblmDesc"
  307. label="问题描述"
  308. show-overflow-tooltip
  309. ></el-table-column>
  310. <el-table-column
  311. header-align="center"
  312. align="center"
  313. min-width="60"
  314. prop="ifCasePblm"
  315. label="典型">
  316. <template slot-scope="scope">
  317. <p v-if="scope.row.ifCasePblm == 1">是</p>
  318. <p v-if="scope.row.ifCasePblm == 0">否</p>
  319. </template>
  320. </el-table-column>
  321. <!--<el-table-column-->
  322. <!--header-align="center"-->
  323. <!--align="center"-->
  324. <!--min-width="100"-->
  325. <!--prop="inspPblmCate"-->
  326. <!--label="程度">-->
  327. <!--<template slot-scope="scope">-->
  328. <!--<p v-if="scope.row.inspPblmCate == 0"><span class="inspPblmCate"-->
  329. <!--style="background: #27C19F;">一般</span>-->
  330. <!--</p>-->
  331. <!--<p v-if="scope.row.inspPblmCate == 1"><span class="inspPblmCate"-->
  332. <!--style="background: #E6A23C;">较重</span>-->
  333. <!--</p>-->
  334. <!--<p v-if="scope.row.inspPblmCate == 2"><span class="inspPblmCate"-->
  335. <!--style="background: #F56C6C;">严重</span>-->
  336. <!--</p>-->
  337. <!--<p v-if="scope.row.inspPblmCate == 3"><span class="inspPblmCate"-->
  338. <!--style="background: #795548;">特别严重</span>-->
  339. <!--</p>-->
  340. <!--</template>-->
  341. <!--</el-table-column>-->
  342. <el-table-column
  343. header-align="center"
  344. align="center"
  345. min-width="100"
  346. prop="state"
  347. label="问题督查状态">
  348. <template slot-scope="scope">
  349. <p v-if="Number(scope.row.state) === 0"><span class="inspPblmCate"
  350. style="background: #F56C6C;">未提交</span>
  351. </p>
  352. <p v-if="scope.row.state == 2"><span class="inspPblmCate"
  353. style="background: #409EFF;">已提交</span>
  354. </p>
  355. <p v-if="scope.row.state == 3"><span class="inspPblmCate"
  356. style="background: #67C23A;">已发布</span>
  357. </p>
  358. </template>
  359. </el-table-column>
  360. <el-table-column
  361. header-align="center"
  362. align="center"
  363. min-width="60"
  364. prop="attach"
  365. label="附件"
  366. show-overflow-tooltip>
  367. <template slot-scope="scope">
  368. <span>{{'附件' + scope.row.attach}}</span>
  369. </template>
  370. </el-table-column>
  371. <el-table-column
  372. header-align="center"
  373. align="center"
  374. min-width="80"
  375. prop="snNum"
  376. label="问题序号"
  377. show-overflow-tooltip
  378. ></el-table-column>
  379. <el-table-column
  380. header-align="center"
  381. align="center"
  382. min-width="70"
  383. prop="persName"
  384. label="上报人"
  385. ></el-table-column>
  386. <el-table-column
  387. header-align="center"
  388. align="center"
  389. min-width="80"
  390. show-overflow-tooltip
  391. prop="orgNm"
  392. label="所在组"
  393. ></el-table-column>
  394. <el-table-column
  395. prop="collTime"
  396. label="上报时间"
  397. sortable
  398. align="center"
  399. min-width="110"
  400. show-overflow-tooltip>
  401. <template slot-scope="scope">
  402. {{scope.row.collTime ? formatDateTime(scope.row.collTime) : ''}}
  403. </template>
  404. </el-table-column>
  405. <el-table-column
  406. header-align="center"
  407. align="center"
  408. min-width="150"
  409. prop="hasVedio"
  410. label="是否包含多媒体文件"
  411. >
  412. <template slot-scope="scope">
  413. <p v-if="scope.row.hasVedio == 1">是</p>
  414. <p v-if="scope.row.hasVedio == 0">否</p>
  415. </template>
  416. </el-table-column>
  417. <el-table-column
  418. align="center"
  419. prop
  420. min-width="100"
  421. label="操作"
  422. show-overflow-tooltip
  423. fixed="right"
  424. >
  425. <template slot-scope="scope">
  426. <el-button icon="el-icon-view" title="查看详情" type="text"
  427. @click="showDetails(scope.row.pblmId)"></el-button>
  428. <el-button icon="el-icon-edit" type="text" title="修改问题"
  429. @click="changeSup(scope.row.pblmId)"
  430. v-if="ownPriv('manage')"></el-button>
  431. <el-button
  432. icon="el-icon-delete"
  433. type="text"
  434. v-if="ownPriv('manage')"
  435. title="删除问题" @click="removeSuperviseOne(scope.row.pblmId)"
  436. ></el-button>
  437. <!-- <el-button icon="el-icon-view" title="查看详情"@click="showDetails(scope.row.pblmId)" style="background:#409EFF;border-radius:15px;color:rgba(255,255,255,1)"></el-button>
  438. <el-button style=" margin:2px 20px;padding: 5px 15px;background-color:#909399;border-radius:15px;color:rgba(255,255,255,1)" type="info" icon="el-icon-edit" @click="changeSup(scope.row.pblmId)"></el-button>
  439. <el-button style=" margin:2px 20px;padding: 5px 15px;background-color:#F56C6C;border-radius:15px;color:rgba(255,255,255,1)" type="danger" icon="el-icon-delete" title="删除问题" @click="removeSuperviseOne(scope.row.pblmId)"></el-button>-->
  440. </template>
  441. </el-table-column>
  442. </el-table>
  443. <!-- 分页 -->
  444. <div class="paginationWarpper">
  445. <el-pagination
  446. class="paginationCenter"
  447. background
  448. @size-change="handleSizeChange"
  449. @current-change="search"
  450. :current-page.sync="currentPage"
  451. :page-sizes="[10, 20, 50, 100]"
  452. :page-size="pageSize"
  453. layout="total, sizes, prev, pager, next, jumper"
  454. :total="total"
  455. ></el-pagination>
  456. </div>
  457. </div>
  458. <!-- 详情弹框 -->
  459. <el-dialog
  460. class="outerDialog custom_dialog"
  461. title="问题详情"
  462. width="60%"
  463. v-if="supervisionDetailsVisible"
  464. :visible.sync="supervisionDetailsVisible"
  465. >
  466. <supervision-details ref="xianqing" :problemId="currentProblemId"></supervision-details>
  467. <span slot="footer">
  468. <el-button style="margin-top:5px;" @click="supervisionDetailsVisible = false">返回</el-button>
  469. </span>
  470. </el-dialog>
  471. <!-- 删除的弹窗 -->
  472. <el-dialog class="deleteDialog" title="问题删除描述" :visible.sync="problemDeleteVisible">
  473. <Problem-delete
  474. ref="deleteMiaoShu"
  475. :deleteProblemId="deleteId"
  476. @deleteSuccess="deleteSuccess"
  477. ></Problem-delete>
  478. <span slot="footer">
  479. <el-button @click="problemDeleteVisible = false">返回</el-button>
  480. </span>
  481. </el-dialog>
  482. </div>
  483. </el-main>
  484. </el-container>
  485. <!-- 编辑问题 -->
  486. <problem-edit :editId="editId" @closeEditDialog="closeEditDialog" v-if="changeSupervisionVisible"
  487. pType="24"></problem-edit>
  488. </div>
  489. </template>
  490. <script>
  491. import {deleteFileById, getSupervisdByID, submitUpload, updatelist, pblmSubmit} from "../../api/duChaAPI.js";
  492. import {formatDateTime2} from '@util/gw_date.js'
  493. import {exportModel} from "@util/gw_exportModel";
  494. import request from "../../utils/gw_ajax_request.js";
  495. import {hostUrl} from "@util/global_variable.js";
  496. import elaudio from "../../widgets/elAudioShort.vue";
  497. import inuptWithDuChaTreeNode from "../../widgets/inuptWithDuChaTreeNode.vue";
  498. import inputWidthDuChaNodes from "../../widgets/inputWithDuChaNodes.vue";
  499. import inputWidthDuChaShuiKu from "../../widgets/inputWith_sk.vue";
  500. import problemDialog from "./problemDialog.vue";
  501. import shuiKuWentiPl from "./shuiKuWenti_piliang.vue"
  502. import {getXskBzhPblm, getXskbzhProblemNew} from "@api/fujian_api"
  503. export default {
  504. props: ["codeId"],
  505. components: {
  506. upload: resolve => {
  507. require(["../../widgets/uploadFile.vue"], resolve);
  508. },
  509. //详情页
  510. supervisionDetails: resolve => {
  511. require(["./supervisionDetails_xskbzh.vue"], resolve);
  512. },
  513. // 删除描述页
  514. ProblemDelete: resolve => {
  515. require(["./problemDelete.vue"], resolve);
  516. },
  517. // addPicDialog: resolve => {
  518. // require(["./addPicDialog.vue"], resolve);
  519. // },
  520. elaudio: elaudio,
  521. inuptWithDuChaTreeNode: inuptWithDuChaTreeNode,
  522. inputWidthDuChaNodes: inputWidthDuChaNodes,
  523. inputWidthDuChaShuiKu: inputWidthDuChaShuiKu,
  524. problemDialog: problemDialog,
  525. shuiKuWentiPl: shuiKuWentiPl,
  526. // 修改问题
  527. problemEdit: resolve => {
  528. require(["../duChaWenTi/xskbzhProblemModify.vue"], resolve);
  529. },
  530. },
  531. data() {
  532. var validatePass1 = (rules1, value, callback) => {
  533. if (this.newSupervision.startTime > this.newSupervision.endTime) {
  534. callback(new Error("结束时间不能早于开始时间"));
  535. } else {
  536. callback();
  537. }
  538. };
  539. var validatePass2 = (rules1, value, callback) => {
  540. let startTime = this.changeSupervision.startTime.slice(0, 10);
  541. if (startTime > this.changeSupervision.endTime) {
  542. callback(new Error("结束时间不能早于开始时间"));
  543. } else {
  544. callback();
  545. }
  546. };
  547. var divisionList = (rules1, value, callback) => {
  548. if (this.newGroup.divisionList.length) {
  549. callback();
  550. } else {
  551. callback(new Error("至少要添加一个地区"));
  552. }
  553. };
  554. return {
  555. showExpandSearchPanel: false,
  556. tableHeight: window.innerHeight - 291,
  557. globoId: "",
  558. addPicPanel: false,
  559. currentDate: new Date(),
  560. deleteId: "",
  561. treeNodeArray: [],
  562. treeNodeSelectVisible: false,
  563. adNodeArray: [],
  564. adNodeSelectVisible: false,
  565. areaSelectVisible: false,
  566. rsvrNodeArray: [],
  567. rsvrNodeSelectVisible: false,
  568. skSelectVisible: false,
  569. currentProblemId: "",
  570. updateIdXiuGai: "",
  571. dxdcAsideHeight: window.innerHeight - 220,
  572. maxHeight: window.innerHeight - 300,
  573. testHeight: window.innerHeight - 80,
  574. supervisionStateList: [
  575. {
  576. value: "0",
  577. label: "暂存"
  578. },
  579. {
  580. value: "1",
  581. label: "上报"
  582. }
  583. ],
  584. supervisionState: [
  585. {
  586. value: "0",
  587. label: "一般"
  588. },
  589. {
  590. value: "1",
  591. label: "较重"
  592. },
  593. {
  594. value: "2",
  595. label: "严重"
  596. },
  597. {
  598. value: "3",
  599. label: "特别严重"
  600. }
  601. ],
  602. supervision: [
  603. {
  604. value: "1",
  605. label: "是"
  606. },
  607. {
  608. value: "0",
  609. label: "否"
  610. }
  611. ],
  612. hasVedio1: [
  613. {
  614. value: "1",
  615. label: "是"
  616. },
  617. {
  618. value: "0",
  619. label: "否"
  620. }
  621. ],
  622. findUseOrgArray: [],
  623. areaInputValue: {},
  624. memberInputValue: {},
  625. multipleSelection: [], // 已选
  626. selectionType: {
  627. remove: 0,
  628. befor: 0,
  629. now: 0,
  630. after: 0
  631. },
  632. // 根据客户点击的督查类型查找督查对象ID
  633. // 新增
  634. listobjId: [],
  635. userId: localStorage.getItem("userid"),
  636. treeData: [],
  637. // 修改督查
  638. pictureArray: [],
  639. audioArray: [],
  640. videoArray: [],
  641. fileArray: [],
  642. audiotabName: "",
  643. videotabName: "",
  644. picturetabName: "",
  645. filetabName: "",
  646. playerOptions: {
  647. height: "120",
  648. autoplay: true,
  649. muted: true,
  650. language: "en",
  651. playbackRates: [0.7, 1.0, 1.5, 2.0],
  652. sources: [
  653. {
  654. type: "video/mp4",
  655. // mp4
  656. src: "http://vjs.zencdn.net/v/oceans.mp4"
  657. // webm
  658. // src: "https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm"
  659. },
  660. {
  661. type: "video/mp4",
  662. // mp4
  663. src: "http://vjs.zencdn.net/v/oceans.mp4"
  664. // webm
  665. // src: "https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm"
  666. },
  667. {
  668. type: "video/mp4",
  669. // mp4
  670. src: "http://vjs.zencdn.net/v/oceans.mp4"
  671. // webm
  672. // src: "https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm"
  673. },
  674. {
  675. type: "video/mp4",
  676. // mp4
  677. src: "http://vjs.zencdn.net/v/oceans.mp4"
  678. // webm
  679. // src: "https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm"
  680. }
  681. ]
  682. },
  683. changeSupervisionVisible: false,
  684. changeSupervision: {
  685. nm: "",
  686. presId: localStorage.getItem("userid"),
  687. endTime: "",
  688. pblmId: "",
  689. objId: "",
  690. objType: "",
  691. inspGroupId: "",
  692. inspPblmName: "",
  693. inspPblmDesc: "",
  694. pblmLong: "",
  695. pblmLat: "",
  696. pblmStat: "",
  697. ifCasePblm: "",
  698. inspPblmOrgName: "",
  699. pblmPersName: "",
  700. // inspPblmCate: "",
  701. reviOpin: "",
  702. reviConc: "",
  703. reviOrgGuid: "",
  704. collTime: "",
  705. recPers: "",
  706. gwComFiles: [
  707. {
  708. id: "",
  709. filePath: "",
  710. bizId: ""
  711. }
  712. ]
  713. },
  714. flash: false,
  715. // 督查类型
  716. supervisionTypeList: [
  717. {
  718. value: "1",
  719. label: "小水库"
  720. }
  721. ],
  722. // 查询
  723. value6: [],
  724. findParams: {
  725. hasVedio: "",
  726. adCode: "",
  727. pblmStat: "",
  728. // inspPblmCate: "",
  729. ifCasePblm: "",
  730. nm: "",
  731. // rsName: "",
  732. adFullName: "",
  733. startTime: "",
  734. endTime: "",
  735. pType: 24,
  736. bplmsTypeId: "",
  737. state: "",
  738. persId: localStorage.getItem("userid")
  739. },
  740. stateList: [
  741. {
  742. label: '未提交',
  743. value: '0'
  744. },
  745. {
  746. label: '已提交',
  747. value: '2'
  748. },
  749. {
  750. label: '已发布',
  751. value: '3'
  752. }
  753. ],
  754. currentPage: 1, // 页码
  755. pageSize: 20, // 条数
  756. loading: false,
  757. total: 0, // 总数
  758. searchResult: [], // 结果
  759. crId: "", // 当前督查id
  760. // 督查详情
  761. userid: localStorage.getItem("userid"),
  762. supervisionDetailsVisible: false,
  763. problemDeleteVisible: false,
  764. supervisionDetails: {},
  765. pblmId: "",
  766. gwComFiles: [],
  767. pblscr: "",
  768. pblscrList: [
  769. {
  770. lable: "我的问题",
  771. value: localStorage.getItem("userid")
  772. }
  773. ],
  774. pblscrGroup: "",
  775. t1: {},
  776. t2: {},
  777. t3: {},
  778. problemList: [],
  779. currentCheckPointList: [],
  780. currentProblemDescList: [],
  781. xiangqingmiaoshu: '',
  782. wenTiLeiBie: "",
  783. jianChaXiangMu: "",
  784. actionUrl: "",
  785. fileList: [],
  786. header: {
  787. 'persId': localStorage.getItem('userid'),
  788. 'orgId': localStorage.getItem('currentOrgId'),
  789. 'accessToken': localStorage.getItem('accessToken')
  790. },
  791. fileListLength: 0,
  792. showShuiKuTianBaoPl: false,
  793. uploadDisabled: true,
  794. exportLoading: false,
  795. datas: {},
  796. buttonLoading: false,
  797. editId: "",
  798. };
  799. },
  800. computed: {
  801. hostUrl() {
  802. return hostUrl
  803. },
  804. formatDateTime() {
  805. return formatDateTime2
  806. },
  807. isGd(){
  808. if(localStorage.getItem('currentRlcode').substring(0,2)=="44"){
  809. return true;
  810. }else{
  811. return false;
  812. }
  813. }
  814. },
  815. created() {
  816. if (this.userId) {
  817. console.log("已经登录");
  818. this.search();
  819. } else {
  820. this.$router.push("/login");
  821. }
  822. this.getproblemSmallType();
  823. this.getLeftTreeData();
  824. this.addPicPanel = false;
  825. },
  826. activated() {
  827. // 监督司提的一个优化,来回切换页签的时候,能不能不主动刷新页面,这样他们不方便来回对比数据
  828. // this.getLeftTreeData();
  829. // this.search();
  830. // this.findParams = {
  831. // hasVedio:"",
  832. // adCode: "",
  833. // pblmStat: "",
  834. // inspPblmCate: "",
  835. // ifCasePblm: "",
  836. // nm: "",
  837. // rsName: "",
  838. // adFullName: "",
  839. // startTime: "",
  840. // endTime: "",
  841. // objType: 1,
  842. // inspPblmName: "",
  843. // persId: localStorage.getItem("userid")
  844. // }
  845. },
  846. methods: {
  847. handleCheckChange(data, checked, indeterminate) {
  848. let cNarray = this.$refs["jigou_tree"].getCheckedNodes();
  849. console.log(cNarray);
  850. this.treeNodeArray = cNarray;
  851. },
  852. getLeftTreeData() {
  853. var _self = this;
  854. request
  855. .get("/dc/organization/base/getAllNode", {
  856. params: {
  857. userId: this.userId,
  858. orgType: "024"
  859. }
  860. })
  861. .then(res => {
  862. let data = res.data;
  863. data.forEach(ele => {
  864. if (ele.pid == null || ele.pid == "") {
  865. ele.pid = "024";
  866. }
  867. });
  868. data = _self.getTrees(data);
  869. _self.treeData = data;
  870. console.log(data);
  871. // _self.duChaType = _self.treeData[0].id.substring(2,3);
  872. });
  873. },
  874. //格式化树形数据
  875. getTrees(list) {
  876. //@wxcwater重写方法 适应多个树
  877. let highLevelLength = 99;//预设最大节点id长度,目前最大应该为12,所以设置为99保证正常
  878. let _self = this;
  879. list.forEach((item, index) => {
  880. item['pidLength'] = item.pid && item.pid != '' ? item.pid.length : 0;
  881. if (highLevelLength > item.pidLength) {
  882. highLevelLength = item.pidLength;
  883. }
  884. });
  885. console.log(highLevelLength);
  886. let heightLevelNode = [];
  887. list.forEach((item, index) => {
  888. if (highLevelLength >= item.pidLength) {
  889. heightLevelNode.push(item);
  890. }
  891. });
  892. list.forEach((item, index) => {
  893. heightLevelNode.forEach((pItem) => {
  894. _self.addTreeNode(pItem, item);
  895. });
  896. });
  897. console.log(heightLevelNode);
  898. return heightLevelNode;
  899. },
  900. addTreeNode: function (treeNode, leafNode) {
  901. let _self = this;
  902. if (!treeNode.hasOwnProperty('children')) {
  903. treeNode['children'] = [];
  904. }
  905. if (leafNode.pid == treeNode.id) {
  906. treeNode.children.push(leafNode);
  907. return;
  908. }
  909. treeNode.children.forEach((item) => {
  910. _self.addTreeNode(item, leafNode);
  911. });
  912. },
  913. // 查询参数逻辑
  914. insertTreeNode: function (params) {
  915. this.treeNodeArray.push({
  916. name: params.name,
  917. code: params.code
  918. });
  919. this.treeNodeSelectVisible = false;
  920. this.areaSelectVisible = false;
  921. this.skSelectVisible = false;
  922. },
  923. deleteTreeNode: function (tag) {
  924. let deleteIndex;
  925. this.treeNodeArray.forEach((item, index) => {
  926. if (item.code == tag.code) {
  927. deleteIndex = index;
  928. }
  929. });
  930. this.treeNodeArray.splice(deleteIndex, 1);
  931. },
  932. selectDuChaAreaNode(params) {
  933. this.adNodeArray.push(params);
  934. this.areaSelectVisible = false;
  935. this.skSelectVisible = false;
  936. },
  937. deleteAreaNode(tag) {
  938. let deleteIndex;
  939. this.adNodeArray.forEach((item, index) => {
  940. if (item.adCode == tag.adCode) {
  941. deleteIndex = index;
  942. return;
  943. }
  944. });
  945. this.adNodeArray.splice(deleteIndex, 1);
  946. },
  947. selectSkNode(params) {
  948. this.rsvrNodeArray.push(params);
  949. this.skSelectVisible = false;
  950. },
  951. deleteSkNode(tag) {
  952. let deleteIndex;
  953. this.rsvrNodeArray.forEach((item, index) => {
  954. if (item.rsCode == tag.rsCode) {
  955. deleteIndex = index;
  956. return;
  957. }
  958. });
  959. this.rsvrNodeArray.splice(deleteIndex, 1);
  960. },
  961. // end
  962. handleClose(tag) {
  963. this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);
  964. },
  965. showInput() {
  966. this.inputVisible = true;
  967. this.$nextTick(_ => {
  968. this.$refs.saveTagInput.$refs.input.focus();
  969. });
  970. },
  971. // 操作成功反馈
  972. successInfo() {
  973. this.$message({
  974. type: "success",
  975. message: "保存成功!"
  976. });
  977. },
  978. // 操作失败反馈
  979. failInfo(val) {
  980. this.$message.error(val);
  981. },
  982. // 清空选择
  983. toggleSelection(rows) {
  984. this.$refs.multipleTable.clearSelection();
  985. },
  986. // 已选择项
  987. handleSelectionChange(val) {
  988. this.multipleSelection = val;
  989. },
  990. // 查询
  991. search() {
  992. this.loading = true;
  993. let _self = this;
  994. // request.get("/dc/organization/base/getAllNode", {
  995. // params: {
  996. // userId: this.userId,
  997. // orgType: "024"
  998. // }
  999. // })
  1000. // .then(res => {
  1001. // let orgAllNode = res.data;
  1002. _self.loading = true;
  1003. let data = _self.findParams;
  1004. data.startTime = _self.value6 && _self.value6.length > 0 ? _self.value6[0] : '';
  1005. data.endTime = _self.value6 && _self.value6.length > 0 ? _self.value6[1] : '';
  1006. data.pageNum = _self.currentPage;
  1007. data.recPers = _self.pblscr;
  1008. data.orgNm = _self.pblscrGroup;
  1009. data.pageSize = _self.pageSize;
  1010. // data.villType = "0";
  1011. // _self.findUseOrgArray = [];
  1012. // _self.treeNodeArray.forEach(item => {
  1013. // if (item.id.length < 12) {
  1014. // orgAllNode.forEach(orgItem => {
  1015. // if (orgItem.id.startsWith(item.code)) {
  1016. // _self.findUseOrgArray.push(orgItem.id);
  1017. // }
  1018. // });
  1019. // }
  1020. // _self.findUseOrgArray.push(item.id);
  1021. // });
  1022. //
  1023. // if (_self.findUseOrgArray.length > 0) {
  1024. // data["orgIds"] = _self.findUseOrgArray.join(",");
  1025. // } else {
  1026. // data["orgIds"] = "";
  1027. // }
  1028. getXskbzhProblemNew(data).then(res => {
  1029. _self.loading = false;
  1030. _self.multipleSelection = [];
  1031. if (res.success) {
  1032. _self.searchResult = res.data.list;
  1033. _self.total = res.data.total;
  1034. } else {
  1035. _self.failInfo();
  1036. }
  1037. });
  1038. // });
  1039. },
  1040. async submitBtn() {
  1041. if (this.multipleSelection.length === 0) {
  1042. this.$message.warning('请至少选择一条问题');
  1043. return;
  1044. }
  1045. let newArray = this.multipleSelection.map((item) => {
  1046. return {
  1047. "objId": item.objId,
  1048. "objType": item.objType,
  1049. "state": "3"
  1050. }
  1051. });
  1052. const {success, message} = await pblmSubmit(newArray);
  1053. if (success) {
  1054. this.$message.success('问题发布成功');
  1055. this.search();
  1056. } else {
  1057. this.$message.warning(message);
  1058. }
  1059. },
  1060. closeEditDialog() {
  1061. this.changeSupervisionVisible = false;
  1062. this.search();
  1063. },
  1064. toForm(){
  1065. var idArr = [];
  1066. if(this.multipleSelection && this.multipleSelection.length==0){
  1067. this.$message.warning("请选择数据");
  1068. return false;
  1069. }else{
  1070. this.multipleSelection.forEach((item)=>{
  1071. idArr.push(item.pblmId);
  1072. })
  1073. }
  1074. var ids = idArr.join(",");
  1075. let host = hostUrl;
  1076. let nginx = '/pageofficePath/';
  1077. let href = 'pageoffice://|' + host + nginx + '/pageoffice/pblm/list/word?ids='+ids+'&filename=pblm|width=1100px;height=800px;ismodal=false;||91A4EE66EC1921F376873E85D6C74FFA|A890649B44577C32CE1930797E1299F9';
  1078. let a = document.createElement('a'); // 创建a标签
  1079. a.setAttribute('href', href);// href链接
  1080. a.click();// 自执行点击事件
  1081. },
  1082. async exportExcel() {
  1083. this.exportLoading = true;
  1084. let _self = this;
  1085. await request.get("/dc/organization/base/getAllNode", {
  1086. params: {
  1087. userId: this.userId,
  1088. orgType: "024"
  1089. }
  1090. }).then(res => {
  1091. let orgAllNode = res.data;
  1092. let data = _self.findParams;
  1093. data.pageNum = _self.currentPage;
  1094. data.pageSize = _self.pageSize;
  1095. data.villType = "0";
  1096. _self.datas = JSON.stringify(data);
  1097. _self.treeNodeArray.forEach(item => {
  1098. console.log(item);
  1099. if (item.id.length < 12) {
  1100. orgAllNode.forEach(orgItem => {
  1101. if (orgItem.id.startsWith(item.id)) {
  1102. _self.findUseOrgArray.push(orgItem.id);
  1103. }
  1104. });
  1105. } else {
  1106. _self.findUseOrgArray.push(item.id);
  1107. }
  1108. });
  1109. });
  1110. let url = "/pdcApi/dc/insp/pblm/page/export";
  1111. let type = "post";
  1112. let exportName = "小水库标准化问题列表.xls"
  1113. let result = await exportModel(type, url, exportName, this.datas);
  1114. _self.exportLoading = result;
  1115. },
  1116. async exportWord() {
  1117. let _self = this;
  1118. _self.exportLoading = true;
  1119. await request
  1120. .get("/dc/organization/base/getAllNode", {
  1121. params: {
  1122. userId: this.userId,
  1123. orgType: "024"
  1124. }
  1125. })
  1126. .then(res => {
  1127. let orgAllNode = res.data;
  1128. let data = _self.findParams;
  1129. data.pageNum = _self.currentPage;
  1130. data.pageSize = _self.pageSize;
  1131. data.villType = "0";
  1132. this.datas = data;
  1133. _self.treeNodeArray.forEach(item => {
  1134. if (item.id.length < 12) {
  1135. orgAllNode.forEach(orgItem => {
  1136. if (orgItem.id.startsWith(item.id)) {
  1137. _self.findUseOrgArray.push(orgItem.id);
  1138. }
  1139. });
  1140. } else {
  1141. _self.findUseOrgArray.push(item.id);
  1142. }
  1143. });
  1144. });
  1145. //下载word文档2
  1146. await request.post('/rever/doc', this.datas).then(res => {
  1147. if (res.success) {
  1148. console.log(this.response)
  1149. var a = document.createElement('a');
  1150. a.href = `${this.hostUrl}${res.data.downloadPath}`;
  1151. //设置文件名称
  1152. a.download = '小水库问题详情.doc';
  1153. a.click();
  1154. // window.open(`${this.hostUrl}${res.data.downloadPath}`)
  1155. _self.exportLoading = false;
  1156. } else {
  1157. _self.$mesage.error(res.message)
  1158. }
  1159. }).catch(res => {
  1160. _self.$mesage.error(res.message)
  1161. })
  1162. },
  1163. downFile(blob, fileName) {
  1164. // 非IE下载
  1165. if ("download" in document.createElement("a")) {
  1166. let link = document.createElement("a");
  1167. link.href = window.URL.createObjectURL(blob); // 创建下载的链接
  1168. link.download = fileName; // 下载后文件名
  1169. link.style.display = "none";
  1170. document.body.appendChild(link);
  1171. link.click(); // 点击下载
  1172. window.URL.revokeObjectURL(link.href); // 释放掉blob对象
  1173. document.body.removeChild(link); // 下载完成移除元素
  1174. } else {
  1175. // IE10+下载
  1176. window.navigator.msSaveBlob(blob, fileName);
  1177. }
  1178. },
  1179. async downloadTemplate() {
  1180. let url = '/pdcApi/dc/imp/skpblm/download?userId=' + this.userId + '&orgType=024';
  1181. let downloadName = "小水库问题.xls";
  1182. let type = "get";
  1183. await exportModel(type, url, downloadName);
  1184. this.uploadDisabled = false;
  1185. },
  1186. showPlDialog() {
  1187. this.showShuiKuTianBaoPl = true
  1188. },
  1189. closePlDialog(val) {
  1190. this.showShuiKuTianBaoPl = false
  1191. this.search();
  1192. },
  1193. handleSizeChange(pageSize) {
  1194. this.pageSize = pageSize;
  1195. this.search();
  1196. },
  1197. // 新增
  1198. getDuChaId() {
  1199. //新增中 获取督查对象id
  1200. getSupervisdByID(this.userid, 1).then(res => {
  1201. if (res.success) {
  1202. // alert(1)
  1203. this.listobjId = res.data;
  1204. } else {
  1205. this.failInfo();
  1206. }
  1207. });
  1208. },
  1209. // 取消
  1210. removeNewSupervision(arg) {
  1211. this.gwComFiles = [];
  1212. if (arg) {
  1213. this.gwComFiles = arg;
  1214. this.$refs.uploadFile.init();
  1215. }
  1216. },
  1217. // 详情弹框
  1218. showDetails(id) {
  1219. this.currentProblemId = id;
  1220. this.supervisionDetailsVisible = true;
  1221. },
  1222. // 删除弹窗
  1223. removeSuperviseOne(id) {
  1224. this.deleteId = id;
  1225. this.problemDeleteVisible = true;
  1226. // showDetailsXq(id).then(res => {
  1227. // // console.log("123" + res.data)
  1228. // this.persNameRen = res.data.persName;
  1229. // });
  1230. },
  1231. deleteSuccess() {
  1232. this.problemDeleteVisible = false;
  1233. this.search();
  1234. this.$emit("problemCount");
  1235. },
  1236. // 修改弹窗显示
  1237. changeSup(id) {
  1238. this.editId = id;
  1239. this.changeSupervisionVisible = true;
  1240. },
  1241. // 提交修改信息
  1242. changeSupervisionInfo() {
  1243. this.$refs.changeSupFrom.validate(valid => {
  1244. if (valid) {
  1245. this.$nextTick(() => {
  1246. this.changeSupervisionVisible = true;
  1247. this.buttonLoading = true;
  1248. if (this.$refs.uploadFile.submitUpload(this.changeSupervision.pblmId)) {
  1249. this.removeNewSupervision();
  1250. }
  1251. setTimeout(() => {
  1252. this.changeSupervision.inspPblmsName = this.wenTiLeiBie;
  1253. this.changeSupervision.checkPoint = this.jianChaXiangMu;
  1254. this.changeSupervision.inspPblmName = this.wenTiLeiBie; //后台只需要这一个字段和问题id inspPblmsName和checkPoint可不传
  1255. this.changeSupervision.inspPlbmType = this.t2.sort2;
  1256. this.changeSupervision.inspPblmCode = this.t3.sn;
  1257. this.changeSupervision.pblmsTypeId = this.t3.guid;
  1258. this.changeSupervision.gwComFiles = this.gwComFiles;
  1259. let data = this.changeSupervision;
  1260. updatelist(data).then(res => {
  1261. this.pblmId = res.data.pblmId;
  1262. this.gwComFiles = res.data.gwComFiles;
  1263. if (res.success) {
  1264. this.buttonLoading = false;
  1265. this.search();
  1266. this.changeSupervisionVisible = false;
  1267. this.addPicPanel = false;
  1268. } else {
  1269. this.failInfo();
  1270. }
  1271. });
  1272. }, 1000)
  1273. })
  1274. }
  1275. });
  1276. },
  1277. // 删除图片文件
  1278. removeFile(id, index) {
  1279. var _self = this;
  1280. this.$confirm("此操作将永久删除该文件, 是否继续?", "提示", {
  1281. confirmButtonText: "确定",
  1282. cancelButtonText: "返回",
  1283. type: "warning"
  1284. }).then(
  1285. res => {
  1286. if (res === "confirm") {
  1287. deleteFileById(id, this.userId).then(res => {
  1288. if (res.success) {
  1289. this.fileListLength = 0;
  1290. this.fileList.forEach(item => {
  1291. if (
  1292. item.fileExt == "mp3" ||
  1293. item.fileExt == "MP3" ||
  1294. item.fileExt == "m4a"
  1295. ) {
  1296. this.audioArray.splice(index, 1);
  1297. } else if (
  1298. item.fileExt == "jpg" ||
  1299. item.fileExt == "JPG" ||
  1300. item.fileExt == "png" ||
  1301. item.fileExt == "PNG" ||
  1302. item.fileExt == "JPEG" ||
  1303. item.fileExt == "jpeg"
  1304. ) {
  1305. this.pictureArray.splice(index, 1);
  1306. } else if (item.fileExt == "mp4" || item.fileExt == "MP4") {
  1307. this.videoArray.splice(index, 1);
  1308. }
  1309. });
  1310. _self.changeSup(this.updateIdXiuGai);
  1311. } else {
  1312. this.failInfo();
  1313. }
  1314. });
  1315. }
  1316. },
  1317. res => {
  1318. console.log("返回");
  1319. }
  1320. );
  1321. },
  1322. changeSupervisionVisiblefalse() {
  1323. this.$nextTick(() => {
  1324. if (this.flash) {
  1325. this.flash = false;
  1326. this.search();
  1327. }
  1328. });
  1329. this.changeSupervisionVisible = false;
  1330. this.changeSupervision = {
  1331. dataStat: "",
  1332. nm: "",
  1333. endTime: "",
  1334. pblmId: "",
  1335. objId: "",
  1336. objType: "",
  1337. inspGroupId: "",
  1338. // inspPblmCate: "",
  1339. inspPblmName: "",
  1340. inspPblmDesc: "",
  1341. pblmLong: "",
  1342. pblmLat: "",
  1343. pblmStat: "",
  1344. ifCasePblm: "",
  1345. inspPblmOrgName: "",
  1346. pblmPersName: "",
  1347. reviOpin: "",
  1348. reviConc: "",
  1349. reviOrgGuid: "",
  1350. collTime: "",
  1351. recPers: "",
  1352. note: "",
  1353. gwComFiles: [
  1354. {
  1355. id: "",
  1356. filePath: "",
  1357. bizId: ""
  1358. }
  1359. ]
  1360. };
  1361. // this.$refs.uploadFile.init();
  1362. this.addPicPanel = false;
  1363. },
  1364. addPic() {
  1365. this.addPicPanel = !this.addPicPanel;
  1366. },
  1367. getproblemSmallType() {
  1368. getXskBzhPblm().then(res => {
  1369. if (res.success) {
  1370. this.problemList = res.data;
  1371. }
  1372. }).catch(err => {
  1373. })
  1374. },
  1375. // getYanZhongChengDu() {
  1376. // request.post('/dc/insp/pblms/getByPblms', {
  1377. // inspPblmsName: this.wenTiLeiBie,
  1378. // checkPoint: this.jianChaXiangMu,
  1379. // pblmDesc: this.xiangqingmiaoshu
  1380. // }).then(res => {
  1381. // if (res.success) {
  1382. // console.log("验证" + res);
  1383. // this.changeSupervision.inspPblmCate = res.data.inspPblmCate;
  1384. // }
  1385. // })
  1386. // },
  1387. problemListChange: function (item) {
  1388. this.wenTiLeiBie = item.inspPblmsName;
  1389. this.currentCheckPointList = item.checkPoints;
  1390. },
  1391. currentCheckPointListChange: function (item) {
  1392. this.jianChaXiangMu = item.checkPointName;
  1393. this.currentProblemDescList = item.pblmDescs;
  1394. },
  1395. currentProblemDescListChange: function (item) {
  1396. this.xiangqingmiaoshu = item.pblmDesc;
  1397. console.log(item);
  1398. },
  1399. // fileUpErr(err, file, fileList){
  1400. // this.$message.error("上传出错,请修改文件!");
  1401. // this.fileList = [];
  1402. // },
  1403. // fileSuccess(item){
  1404. // this.fileList.push(item.data);
  1405. // console.log(this.fileList);
  1406. // },
  1407. onChangeDialog() {
  1408. },
  1409. //
  1410. // addFile(file,fileList){
  1411. // this.fileListLength = fileList.length;
  1412. //
  1413. // },
  1414. // UploadUrl:function(){
  1415. // return `/pdcApi/file/insert?bizId=${this.changeSupervision.pblmId}`
  1416. // },
  1417. // beforeAvatarUpload(file) {
  1418. // console.log(file);
  1419. // }
  1420. },
  1421. watch: {
  1422. codeId: function () {
  1423. this.search();
  1424. },
  1425. // 't1': {
  1426. // handler: function (val, oldVal) {
  1427. // this.getYanZhongChengDu()
  1428. // },
  1429. // deep: true
  1430. // },
  1431. // 't2': {
  1432. // handler: function (val, oldVal) {
  1433. // this.getYanZhongChengDu()
  1434. // },
  1435. // deep: true
  1436. // },
  1437. // 't3': {
  1438. // handler: function (val, oldVal) {
  1439. // this.getYanZhongChengDu()
  1440. // },
  1441. // deep: true
  1442. // },
  1443. showExpandSearchPanel: function (val) {
  1444. if (val) {
  1445. this.tableHeight = window.innerHeight - 390;
  1446. } else {
  1447. this.tableHeight = window.innerHeight - 291;
  1448. }
  1449. }
  1450. },
  1451. };
  1452. </script>
  1453. <style rel="stylesheet/scss" lang="scss" scoped>
  1454. @import "./base.css";
  1455. @import url("/src/assets/iconfont/iconfont.css");
  1456. @import url("/src/assets/css/mixin.scss");
  1457. .upload-container {
  1458. width: 100%;
  1459. position: relative;
  1460. .image-uploader {
  1461. width: 35%;
  1462. float: left;
  1463. }
  1464. .image-preview {
  1465. width: 200px;
  1466. height: 200px;
  1467. position: relative;
  1468. border: 1px dashed #d9d9d9;
  1469. float: left;
  1470. // margin-left: 50px;
  1471. .image-preview-wrapper {
  1472. position: relative;
  1473. width: 100%;
  1474. height: 100%;
  1475. img {
  1476. width: 100%;
  1477. height: 100%;
  1478. }
  1479. }
  1480. .image-preview-action {
  1481. position: absolute;
  1482. width: 100%;
  1483. height: 100%;
  1484. left: 0;
  1485. top: 0;
  1486. cursor: default;
  1487. text-align: center;
  1488. color: #fff;
  1489. opacity: 0;
  1490. font-size: 20px;
  1491. background-color: rgba(0, 0, 0, 0.5);
  1492. transition: opacity 0.3s;
  1493. cursor: pointer;
  1494. text-align: center;
  1495. line-height: 200px;
  1496. .el-icon-delete {
  1497. font-size: 36px;
  1498. }
  1499. }
  1500. &:hover {
  1501. .image-preview-action {
  1502. opacity: 1;
  1503. }
  1504. }
  1505. }
  1506. .image-app-preview {
  1507. margin-bottom: 10px;
  1508. width: 40vh;
  1509. height: 180px;
  1510. position: relative;
  1511. border: 1px dashed #d9d9d9;
  1512. float: left;
  1513. // margin-left: 50px;
  1514. .app-fake-conver {
  1515. height: 44px;
  1516. position: absolute;
  1517. width: 100%; // background: rgba(0, 0, 0, .1);
  1518. text-align: center;
  1519. line-height: 64px;
  1520. color: #fff;
  1521. }
  1522. }
  1523. }
  1524. .bottom {
  1525. margin-top: 13px;
  1526. line-height: 12px;
  1527. }
  1528. .button {
  1529. padding: 0;
  1530. float: right;
  1531. }
  1532. .image {
  1533. width: 100%;
  1534. display: block;
  1535. }
  1536. .clearfix:before,
  1537. .clearfix:after {
  1538. display: table;
  1539. content: "";
  1540. }
  1541. .clearfix:after {
  1542. clear: both;
  1543. }
  1544. #wenTiContainer_sk .el-tree-node {
  1545. /* overflow: auto; */
  1546. }
  1547. #wenTiContainer_sk .el-tree-node > .el-tree-node__children {
  1548. overflow: auto;
  1549. }
  1550. .shuiku .el-date-editor.el-input {
  1551. min-width: 180px !important;
  1552. }
  1553. .shuiku .header {
  1554. padding: 0px 10px;
  1555. }
  1556. .shuiku .el-row {
  1557. margin-bottom: 5px;
  1558. }
  1559. .shuiku .content {
  1560. margin: 10px;
  1561. }
  1562. /* .search .el-table>>>.el-tooltip {
  1563. white-space: pre-wrap !important;
  1564. line-height: 30px;
  1565. font-size: 0;
  1566. } */
  1567. .shuiku .search > > > .el-table .el-button:nth-child(odd) {
  1568. margin-left: 0 !important;
  1569. }
  1570. .custom_dialog .el-dialog {
  1571. width: 60% !important;
  1572. }
  1573. .custom_dialog .scroll300 {
  1574. max-height: 60vh !important;
  1575. }
  1576. .scroll300 .el-form {
  1577. padding-top: 5px;
  1578. padding-right: 5px;
  1579. }
  1580. .shuiku .el-tag + .el-tag {
  1581. margin-left: 10px;
  1582. }
  1583. .shuiku .button-new-tag {
  1584. margin-left: 10px;
  1585. height: 28px;
  1586. line-height: 28px;
  1587. padding-top: 0;
  1588. padding-bottom: 0;
  1589. }
  1590. .shuiku .input-new-tag {
  1591. width: 90px;
  1592. margin-left: 10px;
  1593. vertical-align: bottom;
  1594. }
  1595. .inspPblmCate {
  1596. padding: 2px 10px;
  1597. border-radius: 10px;
  1598. color: #ffffff;
  1599. -webkit-border-radius: 10px;
  1600. -moz-border-radius: 10px;
  1601. border-radius: 10px;
  1602. }
  1603. #wenTiContainer_sk .el-select, #wenTiContainer_sk .el-input {
  1604. width: 140px !important;
  1605. }
  1606. </style>