d08adbdb9880e2d5e5a9a5398559bb0093dc8054.svn-base 102 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236
  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;text-align: center;"
  7. :style="{'max-height':testHeight+'px','height':testHeight+'px'}">
  8. <span style="display: flex;justify-content: center;align-items: center;border-bottom: 1px solid #ebeef5;">
  9. <el-button size="mini" :class="tabType==1 ? 'skactive' : 'sknormal'" @click="tabChange('1')">当前数据</el-button>
  10. <!-- <el-button size="mini" :class="tabType==2 ? 'skactive' : 'sknormal'" @click="tabChange('2')">历史数据</el-button>-->
  11. <el-button size="mini" :class="tabType==0 ? 'skactive' : 'sknormal'" @click="tabChange('0')">全部数据</el-button>
  12. </span>
  13. <div class="tree" style="
  14. height: calc(100% - 50px);
  15. width: 100%;
  16. overflow: auto;
  17. display: inline-flex;">
  18. <el-tree
  19. :highlight-current="true"
  20. style="height:100%;"
  21. :data="treeData"
  22. node-key="id"
  23. show-checkbox
  24. @check-change="handleCheckChange"
  25. ref="jigou_tree"
  26. >
  27. <div class="custom-tree-node" slot-scope="{ node, data }">
  28. <span style="float:left;">
  29. {{ data.pnm}}
  30. </span>
  31. <div style="float:right;display: flex;justify-content: flex-end;align-items: center;width:50%;">
  32. <span style="color:blue;width:80px;"></span>
  33. </div>
  34. </div>
  35. </el-tree>
  36. </div>
  37. </el-aside>
  38. <!-- 主要窗口 -->
  39. <el-main style="margin:0px;padding:0px;overflow-y:hidden;" class="shuiku" v-loading="exportLoading">
  40. <!-- <el-card> -->
  41. <div class="pages" :style="{'max-height':testHeight+'px'}">
  42. <div style="padding: 12px 0 0 0">
  43. <el-row type="flex" justify="space-between">
  44. <el-col :span="24">
  45. <el-form :inline="true" size="mini" class="demo-form-inline"
  46. style="padding-left: 10px;">
  47. <el-form-item label="行政区划:">
  48. <el-input
  49. resize="none"
  50. type="input"
  51. :rows="3"
  52. placeholder="请输入行政区划名称"
  53. v-model.trim="findParams.adFullName"
  54. clearable
  55. ></el-input>
  56. </el-form-item>
  57. <el-form-item label="名称:">
  58. <el-input
  59. resize="none"
  60. type="input"
  61. :rows="3"
  62. placeholder="请输入名称"
  63. v-model.trim="findParams.rsName"
  64. clearable
  65. ></el-input>
  66. </el-form-item>
  67. <el-form-item label="对象类型">
  68. <el-select v-model="findParams.type" style="width: 140px;" clearable placeholder="请选择">
  69. <el-option
  70. v-for="item in problemClasslist"
  71. :key="item.value"
  72. :label="item.label"
  73. :value="item.value">
  74. </el-option>
  75. </el-select>
  76. </el-form-item>
  77. </el-form>
  78. </el-col>
  79. </el-row>
  80. <el-row type="flex" justify="space-between" v-show="showExpandSearchPanel">
  81. <el-col :span="24">
  82. <el-form :inline="true" size="mini" class="demo-form-inline"
  83. style="padding-left: 10px;">
  84. <el-form-item label="问题类别:">
  85. <el-select v-model="findParams.inspPblmName" clearable placeholder="请选择">
  86. <el-option
  87. v-for="item in problemList"
  88. :key="item.guid"
  89. :label="item.inspPblmsName"
  90. :value="item.inspPblmsName"
  91. ></el-option>
  92. </el-select>
  93. </el-form-item>
  94. <el-form-item label="是否典型:">
  95. <el-select v-model="findParams.ifCasePblm" clearable placeholder="请选择">
  96. <el-option
  97. v-for="item in supervision"
  98. :key="item.value"
  99. :label="item.label"
  100. :value="item.value"
  101. ></el-option>
  102. </el-select>
  103. </el-form-item>
  104. <el-form-item label="问题筛选:">
  105. <el-select v-model="pblscr" clearable placeholder="请选择">
  106. <el-option
  107. v-for="item in pblscrList"
  108. :key="item.value"
  109. :label="item.lable"
  110. :value="item.value"
  111. ></el-option>
  112. </el-select>
  113. </el-form-item>
  114. <el-form-item label="上报人员:">
  115. <el-input
  116. resize="none"
  117. type="input"
  118. :rows="3"
  119. placeholder="请输入名称"
  120. v-model.trim="findParams.persName"
  121. ></el-input>
  122. </el-form-item>
  123. <!-- <el-form-item label="严重程度:">-->
  124. <!-- <el-select v-model="findParams.inspPblmCate" clearable placeholder="请选择">-->
  125. <!-- <el-option-->
  126. <!-- v-for="item in supervisionState"-->
  127. <!-- :key="item.value"-->
  128. <!-- :label="item.label"-->
  129. <!-- :value="item.value"-->
  130. <!-- ></el-option>-->
  131. <!-- </el-select>-->
  132. <!-- </el-form-item>-->
  133. <el-form-item label="发现时间:">
  134. <el-date-picker
  135. style="width: 200px;"
  136. v-model="value6"
  137. type="daterange"
  138. value-format="yyyy-MM-dd"
  139. range-separator="至"
  140. start-placeholder="开始日期"
  141. end-placeholder="结束日期"
  142. ></el-date-picker>
  143. </el-form-item>
  144. <el-form-item label="所在组:">
  145. <el-input
  146. resize="none"
  147. type="input"
  148. :rows="3"
  149. placeholder="请输入所在组名称"
  150. v-model.trim="pblscrGroup"
  151. clearable
  152. ></el-input>
  153. </el-form-item>
  154. <el-form-item label="是否包含多媒体文件:">
  155. <el-select v-model="findParams.hasVedio" clearable placeholder="请选择">
  156. <el-option
  157. v-for="item in hasVedio1"
  158. :key="item.value"
  159. :label="item.label"
  160. :value="item.value"
  161. ></el-option>
  162. </el-select>
  163. </el-form-item>
  164. <el-form-item label="问题督查状态:">
  165. <el-select v-model="findParams.state" clearable placeholder="请选择">
  166. <el-option
  167. v-for="item in stateList"
  168. :key="item.value"
  169. :label="item.label"
  170. :value="item.value"
  171. ></el-option>
  172. </el-select>
  173. </el-form-item>
  174. </el-form>
  175. </el-col>
  176. </el-row>
  177. <el-row type="flex" justify="space-between" style="border-top:1px solid #0014ff2e;">
  178. <el-col style='padding-bottom:10px;' :span="12">
  179. <el-button style="float:right;margin-right:10px;border: 1px solid #0014ff2e;
  180. border-radius: 0px 0px 5px 5px;border-top: 0px;" type="info" plain
  181. size="mini"
  182. @click="showExpandSearchPanel = !showExpandSearchPanel"
  183. >
  184. {{showExpandSearchPanel?'收起':'更多条件'}}
  185. <i class="el-icon-arrow-down el-icon--right" v-show="!showExpandSearchPanel"/>
  186. <i class="el-icon-arrow-up el-icon--right" v-show="showExpandSearchPanel"/>
  187. </el-button>
  188. </el-col>
  189. <el-col :span="12">
  190. <el-button
  191. style="color:rgba(255,255,255,1);float:right;margin-right:10px;margin-top:5px;"
  192. type="success"
  193. @click="submitBtn"
  194. >问题提交
  195. </el-button>
  196. <el-button
  197. style="color:rgba(255,255,255,1);float:right;margin-right:10px;margin-top:5px;"
  198. type="primary"
  199. icon="el-icon-search"
  200. @click="search"
  201. >&nbsp;查&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;询&nbsp;
  202. </el-button>
  203. <!-- <el-button-->
  204. <!-- style="color:rgba(255,255,255,1);float:right;margin-right:10px;margin-top:5px;"-->
  205. <!-- type="success"-->
  206. <!-- icon="el-icon-download"-->
  207. <!-- @click="exportWord"-->
  208. <!-- >导出WORD-->
  209. <!-- </el-button>-->
  210. <el-button
  211. style="color:rgba(255,255,255,1);float:right;margin-right:10px;margin-top:5px;"
  212. type="success"
  213. icon="el-icon-download"
  214. @click="exportExcel"
  215. >导出EXCEL
  216. </el-button>
  217. <el-button
  218. style="color:rgba(255,255,255,1);float:right;margin-right:10px;margin-top:5px;"
  219. type="success"
  220. icon="el-icon-download"
  221. @click="exportExceltable"
  222. >导出问题统计表
  223. </el-button>
  224. <!-- <el-button-->
  225. <!-- style="color:rgba(255,255,255,1);float:right;margin-right:10px;margin-top:5px;"-->
  226. <!-- type="success"-->
  227. <!-- icon="el-icon-download"-->
  228. <!-- @click="showPlDialog"-->
  229. <!-- :disabled="uploadDisabled"-->
  230. <!-- >上传模板-->
  231. <!-- </el-button>-->
  232. <!--<el-button-->
  233. <!--style="color:rgba(255,255,255,1);float:right;margin-right:10px;margin-top:5px;"-->
  234. <!--type="success"-->
  235. <!--icon="el-icon-download"-->
  236. <!--@click="downloadTemplate"-->
  237. <!--&gt;导出模板-->
  238. <!--</el-button>-->
  239. <shuiKuWentiPl v-if="showShuiKuTianBaoPl"
  240. :showShuiKuTianBaoPl="showShuiKuTianBaoPl"
  241. @closePlDialog="closePlDialog"></shuiKuWentiPl>
  242. </el-col>
  243. </el-row>
  244. </div>
  245. <!-- 查询展示 -->
  246. <div class="search" style="margin-top:10px;">
  247. <el-table
  248. v-loading="loading"
  249. border
  250. ref="multipleTable"
  251. :height="tableHeight"
  252. :data="searchResult"
  253. tooltip-effect="dark"
  254. style="width: 100%"
  255. @row-click="openDetails"
  256. @selection-change="handleSelectionChange"
  257. >
  258. <el-table-column
  259. type="selection"
  260. min-width="55">
  261. </el-table-column>
  262. <!-- <el-table-column align="center" type="index" label="序号" min-width="60">-->
  263. <!-- <template slot-scope="scope">{{ (currentPage - 1) * pageSize + (scope.$index + 1) }}-->
  264. <!-- </template>-->
  265. <!-- </el-table-column>-->
  266. <!-- <el-table-column header-align="center" align="center" min-width="140" prop="inspPblmName" label="小水库问题类别"></el-table-column> -->
  267. <el-table-column
  268. header-align="center"
  269. align="center"
  270. min-width="80"
  271. prop="province"
  272. label="省" v-if="isXj"
  273. show-overflow-tooltip
  274. ></el-table-column>
  275. <el-table-column
  276. header-align="center"
  277. align="center"
  278. min-width="80"
  279. prop="city"
  280. :label="ownAdName"
  281. show-overflow-tooltip
  282. ></el-table-column>
  283. <el-table-column
  284. header-align="center"
  285. align="center"
  286. min-width="80"
  287. prop="country"
  288. label="县" v-if="isXj"
  289. show-overflow-tooltip
  290. ></el-table-column>
  291. <el-table-column
  292. header-align="center"
  293. align="center"
  294. min-width="100"
  295. prop="nm"
  296. label="水库名称"
  297. show-overflow-tooltip
  298. ></el-table-column>
  299. <el-table-column
  300. header-align="center"
  301. align="center"
  302. min-width="80"
  303. prop="inspPblmName"
  304. label="问题类别"
  305. show-overflow-tooltip
  306. ></el-table-column>
  307. <el-table-column
  308. header-align="center"
  309. align="center"
  310. min-width="80"
  311. prop="inspPblmDesc"
  312. label="问题描述"
  313. show-overflow-tooltip
  314. ></el-table-column>
  315. <!-- <el-table-column-->
  316. <!-- header-align="center"-->
  317. <!-- align="center"-->
  318. <!-- min-width="80"-->
  319. <!-- prop="score"-->
  320. <!-- label="扣分值">-->
  321. <!-- </el-table-column>-->
  322. <el-table-column
  323. header-align="center"
  324. align="center"
  325. min-width="60"
  326. prop="ifCasePblm"
  327. label="典型">
  328. <template slot-scope="scope">
  329. <p v-if="scope.row.ifCasePblm == 1">是</p>
  330. <p v-if="scope.row.ifCasePblm == 0">否</p>
  331. </template>
  332. </el-table-column>
  333. <!-- <el-table-column-->
  334. <!-- header-align="center"-->
  335. <!-- align="center"-->
  336. <!-- min-width="100"-->
  337. <!-- prop="inspPblmCate"-->
  338. <!-- label="严重程度">-->
  339. <!-- <template slot-scope="scope">-->
  340. <!-- <p v-if="scope.row.inspPblmCate == 0"><span class="inspPblmCate"-->
  341. <!-- style="background: #27C19F;">一般</span>-->
  342. <!-- </p>-->
  343. <!-- <p v-if="scope.row.inspPblmCate == 1"><span class="inspPblmCate"-->
  344. <!-- style="background: #E6A23C;">较重</span>-->
  345. <!-- </p>-->
  346. <!-- <p v-if="scope.row.inspPblmCate == 2"><span class="inspPblmCate"-->
  347. <!-- style="background: #F56C6C;">严重</span>-->
  348. <!-- </p>-->
  349. <!-- <p v-if="scope.row.inspPblmCate == 3"><span class="inspPblmCate"-->
  350. <!-- style="background: #795548;">特别严重</span>-->
  351. <!-- </p>-->
  352. <!-- </template>-->
  353. <!-- </el-table-column>-->
  354. <el-table-column
  355. header-align="center"
  356. align="center"
  357. min-width="100"
  358. prop="state"
  359. label="问题督查状态">
  360. <template slot-scope="scope">
  361. <p v-if="Number(scope.row.state) === 0"><span class="inspPblmCate"
  362. style="background: #F56C6C;">未提交</span>
  363. </p>
  364. <p v-if="scope.row.state == 2"><span class="inspPblmCate"
  365. style="background: #409EFF;">已提交</span>
  366. </p>
  367. <p v-if="scope.row.state == 3"><span class="inspPblmCate"
  368. style="background: #67C23A;">已发布</span>
  369. </p>
  370. </template>
  371. </el-table-column>
  372. <!-- <el-table-column-->
  373. <!-- header-align="center"-->
  374. <!-- align="center"-->
  375. <!-- min-width="60"-->
  376. <!-- prop="oldAttach"-->
  377. <!-- label="附件"-->
  378. <!-- show-overflow-tooltip>-->
  379. <!-- <template slot-scope="scope">-->
  380. <!-- <span>{{'附件' + scope.row.oldAttach}}</span>-->
  381. <!-- </template>-->
  382. <!-- </el-table-column>-->
  383. <!-- <el-table-column-->
  384. <!-- header-align="center"-->
  385. <!-- align="center"-->
  386. <!-- min-width="80"-->
  387. <!-- prop="oldSn"-->
  388. <!-- label="问题序号"-->
  389. <!-- show-overflow-tooltip-->
  390. <!-- ></el-table-column>-->
  391. <el-table-column
  392. header-align="center"
  393. align="center"
  394. min-width="80"
  395. prop="persName"
  396. label="上报人"
  397. ></el-table-column>
  398. <el-table-column
  399. header-align="center"
  400. align="center"
  401. min-width="80"
  402. show-overflow-tooltip
  403. prop="orgNm"
  404. label="所在组"
  405. ></el-table-column>
  406. <el-table-column
  407. prop="collTime"
  408. label="上报时间"
  409. sortable
  410. align="center"
  411. min-width="100"
  412. show-overflow-tooltip>
  413. <template slot-scope="scope">
  414. {{scope.row.collTime ? formatDateTime(scope.row.collTime) : ''}}
  415. </template>
  416. </el-table-column>
  417. <el-table-column
  418. header-align="center"
  419. align="center"
  420. min-width="80"
  421. prop="hasVedio"
  422. label="是否包含多媒体文件"
  423. >
  424. <template slot-scope="scope">
  425. <p v-if="scope.row.hasVedio == 1">是</p>
  426. <p v-if="scope.row.hasVedio == 0">否</p>
  427. </template>
  428. </el-table-column>
  429. <el-table-column
  430. align="center"
  431. prop
  432. min-width="100"
  433. label="操作"
  434. show-overflow-tooltip
  435. fixed="right"
  436. >
  437. <template slot-scope="scope">
  438. <el-button icon="el-icon-view" title="查看详情" type="text"
  439. @click.native.stop="showDetails(scope.row.pblmId)"></el-button>
  440. <el-button icon="el-icon-edit" title="修改问题" type="text"
  441. @click.native.stop="changeSup(scope.row.pblmId)"
  442. v-if="isMine(scope.row) && ownPriv('manage') && scope.row.state != '2'"></el-button>
  443. <el-button
  444. icon="el-icon-delete"
  445. type="text"
  446. title="删除问题"
  447. v-if="isMine(scope.row) && ownPriv('manage') && scope.row.state != '2'"
  448. @click.native.stop="removeSuperviseOne(scope.row.pblmId)"
  449. ></el-button>
  450. <!-- <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>
  451. <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>
  452. <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>-->
  453. </template>
  454. </el-table-column>
  455. </el-table>
  456. <!-- 分页 -->
  457. <div class="paginationWarpper">
  458. <el-pagination
  459. class="paginationCenter"
  460. background
  461. @size-change="handleSizeChange"
  462. @current-change="search"
  463. :current-page.sync="currentPage"
  464. :page-sizes="[10, 20, 50, 100]"
  465. :page-size="pageSize"
  466. layout="total, sizes, prev, pager, next, jumper"
  467. :total="total"
  468. ></el-pagination>
  469. </div>
  470. </div>
  471. <!-- 详情弹框 -->
  472. <el-dialog
  473. class="outerDialog custom_dialog"
  474. title="问题详情"
  475. width="60%"
  476. v-if="supervisionDetailsVisible"
  477. :visible.sync="supervisionDetailsVisible"
  478. >
  479. <supervision-details ref="xianqing" :problemId="currentProblemId"></supervision-details>
  480. <span slot="footer">
  481. <el-button style="margin-top:5px;" @click="supervisionDetailsVisible = false">返回</el-button>
  482. </span>
  483. </el-dialog>
  484. <!-- 删除的弹窗 -->
  485. <el-dialog class="deleteDialog" title="问题删除描述" :visible.sync="problemDeleteVisible">
  486. <Problem-delete
  487. ref="deleteMiaoShu"
  488. :deleteProblemId="deleteId"
  489. @deleteSuccess="deleteSuccess"
  490. ></Problem-delete>
  491. <span slot="footer">
  492. <el-button @click="problemDeleteVisible = false">返回</el-button>
  493. </span>
  494. </el-dialog>
  495. <!-- 修改弹框 -->
  496. <el-dialog
  497. width="60%"
  498. class="outerDialog custom_dialog"
  499. title="修改督查问题"
  500. :close-on-click-modal="false"
  501. :visible.sync="changeSupervisionVisible"
  502. >
  503. <div class="scroll300">
  504. <div
  505. style="width:49%;overflow-y:auto;max-height:52vh;float:left;border:1px solid #d5d5ff;margin-right:5px;">
  506. <p style="font-weight:bolder;background-color:#d5d5ff;padding:3px;">基本信息</p>
  507. <el-form
  508. ref="changeSupFrom"
  509. :rules="rules1"
  510. :model="changeSupervision"
  511. label-width="120px"
  512. >
  513. <el-form-item label="水库名称" prop="nm">
  514. <el-input v-model="changeSupervision.nm" clearable readonly></el-input>
  515. </el-form-item>
  516. <el-form-item label="问题类别" prop="inspPblmsName">
  517. <el-select v-model="t1" value-key="inspPblmsName" placeholder="请选择"
  518. @change="problemListChange">
  519. <el-option v-for="(item,index) in problemList" :key="index"
  520. :label="item.inspPblmsName" :value="item">
  521. </el-option>
  522. </el-select>
  523. </el-form-item>
  524. <el-form-item label="检查项目" prop="checkPoint" style="text-align:left">
  525. <el-select v-model="t2" placeholder="请选择" value-key="checkPointName"
  526. @change="currentCheckPointListChange">
  527. <el-option v-for="(item,index) in currentCheckPointList" :key="index"
  528. :label="item.checkPointName" :value="item">
  529. </el-option>
  530. </el-select>
  531. </el-form-item>
  532. <el-form-item label="问题描述" prop="pblmDesc" style="text-align:left">
  533. <el-select v-model="t3" placeholder="请选择" value-key="pblmDesc"
  534. @change="currentProblemDescListChange" style="max-width: 500px">
  535. <el-option v-for="(item,index) in currentProblemDescList" :key="index"
  536. :label="item.pblmDesc" :value="item" :title="item.pblmDesc"
  537. style="max-width: 500px">
  538. </el-option>
  539. </el-select>
  540. </el-form-item>
  541. <el-form-item label="详细描述" prop="inspPblmDesc">
  542. <el-input
  543. type="textarea"
  544. :rows="2"
  545. v-model="changeSupervision.inspPblmDesc"
  546. clearable
  547. ></el-input>
  548. </el-form-item>
  549. <el-form-item label="是否为典型问题:">
  550. <el-select v-model="changeSupervision.ifCasePblm" clearable placeholder="请选择">
  551. <el-option
  552. v-for="item in supervision"
  553. :key="item.value"
  554. :label="item.label"
  555. :value="item.value"
  556. ></el-option>
  557. </el-select>
  558. </el-form-item>
  559. <!-- <el-form-item label="严重程度:">-->
  560. <!-- <el-select v-model="changeSupervision.inspPblmCate" disabled clearable-->
  561. <!-- placeholder="请选择">-->
  562. <!-- <el-option-->
  563. <!-- v-for="item in supervisionState"-->
  564. <!-- :key="item.value"-->
  565. <!-- :label="item.label"-->
  566. <!-- :value="item.value"-->
  567. <!-- ></el-option>-->
  568. <!-- </el-select>-->
  569. <!-- </el-form-item>-->
  570. <el-form-item label="扣分值:">
  571. {{changeSupervision.score}}
  572. </el-form-item>
  573. <el-form-item label="备注" prop="note">
  574. <el-input
  575. type="textarea"
  576. :rows="2"
  577. v-model.trim="changeSupervision.note"
  578. clearable
  579. ></el-input>
  580. <!-- <el-input resize="none" type="input" :rows="3" placeholder="请输入" v-model.trim="changeSupervision.pblmPersName"></el-input> -->
  581. </el-form-item>
  582. <el-form-item label="上报人" prop="persName">
  583. <el-input
  584. resize="none"
  585. type="input"
  586. :rows="3"
  587. readonly
  588. placeholder="请输入"
  589. v-model.trim="changeSupervision.persName"
  590. ></el-input>
  591. </el-form-item>
  592. <el-form-item label="上报时间" prop="collTime">
  593. <el-date-picker v-model="changeSupervision.collTime" readonly
  594. type="date"></el-date-picker>
  595. </el-form-item>
  596. </el-form>
  597. </div>
  598. <div
  599. style="width: 49%;float: left;border: 1px solid rgb(213, 213, 255);margin-right: 5px;overflow-y: auto;max-height: 52vh;"
  600. >
  601. <p style="font-weight:bolder;background-color:#d5d5ff;padding:3px;">多媒体信息</p>
  602. <el-tabs style="margin:0px 5px">
  603. <el-tab-pane :label="picturetabName">
  604. <el-row style="text-align:right;">
  605. <el-button :v-if="!addPicPanel?addPicPanel:addPicPanel"
  606. size="mini"
  607. type="text"
  608. :icon="!addPicPanel?'el-icon-circle-plus-outline':'el-icon-circle-close-outline'"
  609. @click="addPic"
  610. >{{!addPicPanel?"添加":"取消"}}
  611. </el-button>
  612. </el-row>
  613. <el-row v-show="addPicPanel">
  614. <upload ref="uploadFile"
  615. :url="`/pdcApi/file/insert?bizId=`"
  616. @uploadOver="removeNewSupervision">
  617. </upload>
  618. </el-row>
  619. <el-row>
  620. <div
  621. style="overflow-y:auto;overflow-x:hidden;max-height:30vh;padding:10px;">
  622. <div class="upload-container">
  623. <div
  624. v-for="(item, index) in pictureArray"
  625. :key="index"
  626. class="image-preview image-app-preview"
  627. >
  628. <div class="image-preview-wrapper">
  629. <img :src="`${hostUrl}/${item.filePath}`">
  630. <div class="image-preview-action">
  631. <i @click="removeFile(item.id)"
  632. class="el-icon-delete"></i>
  633. </div>
  634. </div>
  635. </div>
  636. </div>
  637. </div>
  638. </el-row>
  639. </el-tab-pane>
  640. <el-tab-pane :label="audiotabName">
  641. <el-table border :data="audioArray" style="width: 100%;margin: 0 auto;">
  642. <el-table-column header-align="center" align="center" label="音频">
  643. <template slot-scope="scope">
  644. <elaudio
  645. style="margin-left:15%;width:100px;height:30px;"
  646. :theUrl="`${hostUrl}/${scope.row.filePath}`"
  647. ></elaudio>
  648. <!-- <span>{{scope.row.fileTitle}}</span> -->
  649. </template>
  650. </el-table-column>
  651. <el-table-column header-align="center" align="center" label="操作">
  652. <template slot-scope="scope">
  653. <el-button
  654. size="mini"
  655. @click="removeFile(scope.row.id,scope.$index)"
  656. type="danger"
  657. >删除
  658. </el-button>
  659. </template>
  660. </el-table-column>
  661. </el-table>
  662. </el-tab-pane>
  663. <el-tab-pane :label="videotabName">
  664. <el-table border :data="videoArray" style="width: 100%;margin: 0 auto;">
  665. <el-table-column header-align="center" align="center" label="视频">
  666. <template slot-scope="scope">
  667. <!-- <span>{{scope.row.fileTitle}}</span> -->
  668. <video-player
  669. class="vjs-custom-skin"
  670. ref="videoPlayer"
  671. :options="scope.row"
  672. :playsinline="true"
  673. ></video-player>
  674. </template>
  675. </el-table-column>
  676. <el-table-column header-align="center" align="center" label="操作">
  677. <template slot-scope="scope">
  678. <el-button
  679. size="mini"
  680. @click="removeFile(scope.row.id,scope.$index)"
  681. type="danger"
  682. >删除
  683. </el-button>
  684. </template>
  685. </el-table-column>
  686. </el-table>
  687. </el-tab-pane>
  688. <el-tab-pane :label="filetabName">
  689. <el-table border :data="fileArray" style="width: 100%;margin: 0 auto;">
  690. <el-table-column header-align="center" align="center" label="文档">
  691. <template slot-scope="scope">
  692. <p>
  693. <a :href="`${hostUrl}/${scope.row.filePath}`" target="_blank"
  694. rel="noopener noreferrer">
  695. {{scope.row.fileName}}
  696. </a>
  697. </p>
  698. </template>
  699. </el-table-column>
  700. <el-table-column header-align="center" align="center" label="操作">
  701. <template slot-scope="scope">
  702. <el-button
  703. size="mini"
  704. @click="removeFile(scope.row.id,scope.$index)"
  705. type="danger"
  706. >删除
  707. </el-button>
  708. </template>
  709. </el-table-column>
  710. </el-table>
  711. </el-tab-pane>
  712. </el-tabs>
  713. </div>
  714. </div>
  715. <span slot="footer">
  716. <el-button
  717. type="primary"
  718. @click="changeSupervisionInfo"
  719. :loading="buttonLoading"
  720. >保存</el-button>
  721. <el-button @click="changeSupervisionVisiblefalse">取消</el-button>
  722. </span>
  723. </el-dialog>
  724. </div>
  725. </el-main>
  726. </el-container>
  727. </div>
  728. </template>
  729. <script>
  730. import {
  731. deleteFileById,
  732. getSupervisdByID,
  733. getXSKProblemNew,
  734. pblmSubmit,
  735. showDetailsXq,
  736. submitUpload,
  737. updatelist
  738. } from "../../api/duChaAPI.js";
  739. import {formatDateTime2,formatDateTime2New} from '@util/gw_date.js'
  740. import {exportModel} from "@util/gw_exportModel";
  741. import request from "../../utils/gw_ajax_request.js";
  742. import {hostUrl} from "@util/global_variable.js";
  743. import elaudio from "../../widgets/elAudioShort.vue";
  744. import inuptWithDuChaTreeNode from "../../widgets/inuptWithDuChaTreeNode.vue";
  745. import inputWidthDuChaNodes from "../../widgets/inputWithDuChaNodes.vue";
  746. import inputWidthDuChaShuiKu from "../../widgets/inputWith_sk.vue";
  747. import problemDialog from "./problemDialog.vue";
  748. import shuiKuWentiPl from "./shuiKuWenti_piliang.vue"
  749. // import { getList, persCheck } from '@/api/persCheck'
  750. export default {
  751. props: ["codeId"],
  752. components: {
  753. upload: resolve => {
  754. require(["../../widgets/uploadFile.vue"], resolve);
  755. },
  756. //详情页
  757. supervisionDetails: resolve => {
  758. require(["./supervisionDetails_shuiku.vue"], resolve);
  759. },
  760. // 删除描述页
  761. ProblemDelete: resolve => {
  762. require(["./problemDelete.vue"], resolve);
  763. },
  764. // addPicDialog: resolve => {
  765. // require(["./addPicDialog.vue"], resolve);
  766. // },
  767. elaudio: elaudio,
  768. inuptWithDuChaTreeNode: inuptWithDuChaTreeNode,
  769. inputWidthDuChaNodes: inputWidthDuChaNodes,
  770. inputWidthDuChaShuiKu: inputWidthDuChaShuiKu,
  771. problemDialog: problemDialog,
  772. shuiKuWentiPl: shuiKuWentiPl
  773. },
  774. data() {
  775. var validatePass1 = (rules1, value, callback) => {
  776. if (this.newSupervision.startTime > this.newSupervision.endTime) {
  777. callback(new Error("结束时间不能早于开始时间"));
  778. } else {
  779. callback();
  780. }
  781. };
  782. var validatePass2 = (rules1, value, callback) => {
  783. let startTime = this.changeSupervision.startTime.slice(0, 10);
  784. if (startTime > this.changeSupervision.endTime) {
  785. callback(new Error("结束时间不能早于开始时间"));
  786. } else {
  787. callback();
  788. }
  789. };
  790. var divisionList = (rules1, value, callback) => {
  791. if (this.newGroup.divisionList.length) {
  792. callback();
  793. } else {
  794. callback(new Error("至少要添加一个地区"));
  795. }
  796. };
  797. return {
  798. problemClasslist: [
  799. {
  800. label: "小水库",
  801. value: "小水库"
  802. },
  803. {
  804. label: "大中型水库",
  805. value: "大中型水库"
  806. },
  807. {
  808. label: "在建水利工程",
  809. value: "在建水利工程"
  810. },
  811. {
  812. label: "水闸工程",
  813. value: "水闸工程"
  814. },
  815. {
  816. label: "堤防工程",
  817. value: "堤防工程"
  818. },
  819. {
  820. label: "小水电站",
  821. value: "小水电站"
  822. },
  823. {
  824. label: "水利工程设施水毁修复",
  825. value: "水利工程设施水毁修复"
  826. },
  827. {
  828. label: "山洪灾害监测预警",
  829. value: "山洪灾害监测预警"
  830. },
  831. {
  832. label: "水旱灾害防御",
  833. value: "水旱灾害防御"
  834. },
  835. {
  836. label: "在建涉河建设项目和“清四乱”",
  837. value: "在建涉河建设项目和“清四乱”"
  838. },
  839. {
  840. label: "水利风景区",
  841. value: "水利风景区"
  842. },
  843. ],
  844. tabType: "0",//0全部数据,1当前数据,2历史数据
  845. showExpandSearchPanel: false,
  846. tableHeight: window.innerHeight - 291,
  847. globoId: "",
  848. addPicPanel: false,
  849. currentDate: new Date(),
  850. deleteId: "",
  851. treeNodeArray: [],
  852. treeNodeSelectVisible: false,
  853. adNodeArray: [],
  854. adNodeSelectVisible: false,
  855. areaSelectVisible: false,
  856. rsvrNodeArray: [],
  857. rsvrNodeSelectVisible: false,
  858. skSelectVisible: false,
  859. currentProblemId: "",
  860. updateIdXiuGai: "",
  861. rules1: {
  862. inspPblmName: [
  863. {
  864. required: true,
  865. message: "请输入问题名称",
  866. trigger: "blur"
  867. },
  868. {
  869. min: 1,
  870. max: 999,
  871. message: "不超过100字符",
  872. trigger: "blur"
  873. }
  874. ],
  875. inspPblmDesc: [
  876. {
  877. required: true,
  878. message: "请输入问题描述",
  879. trigger: "blur"
  880. }
  881. ],
  882. recPers: [
  883. {
  884. required: true,
  885. message: "请输入记录人",
  886. trigger: "blur"
  887. },
  888. {
  889. min: 1,
  890. max: 999,
  891. message: "不超过100字符",
  892. trigger: "blur"
  893. }
  894. ],
  895. objType: [
  896. {
  897. required: true,
  898. message: "请选择督查对象类型",
  899. trigger: "change"
  900. }
  901. ],
  902. objId: [
  903. {
  904. required: true,
  905. message: "请选择督查对象类型",
  906. trigger: "change"
  907. }
  908. ],
  909. inspPblmType: [
  910. {
  911. required: true,
  912. message: "请选择督查问题类型",
  913. trigger: "change"
  914. }
  915. ],
  916. dataStat: [
  917. {
  918. required: true,
  919. message: "请选择数据状态",
  920. trigger: "change"
  921. }
  922. ],
  923. collTime: [
  924. {
  925. required: true,
  926. message: "请选择采集时间",
  927. trigger: "change"
  928. }
  929. ],
  930. ifCasePblm: [
  931. {
  932. required: true,
  933. message: "请选择是否典型",
  934. trigger: "change"
  935. }
  936. ],
  937. pblmStat: [
  938. {
  939. required: true,
  940. message: "请选择问题类型",
  941. trigger: "change"
  942. }
  943. ],
  944. inspPblmCate: [
  945. {
  946. required: true,
  947. message: "请选择问题程度",
  948. trigger: "change"
  949. },
  950. {
  951. trigger: "change"
  952. }
  953. ]
  954. },
  955. dxdcAsideHeight: window.innerHeight - 220,
  956. maxHeight: window.innerHeight - 300,
  957. testHeight: window.innerHeight - 80,
  958. supervisionStateList: [
  959. {
  960. value: "0",
  961. label: "暂存"
  962. },
  963. {
  964. value: "1",
  965. label: "上报"
  966. }
  967. ],
  968. supervisionState: [
  969. {
  970. value: "0",
  971. label: "一般"
  972. },
  973. {
  974. value: "1",
  975. label: "较重"
  976. },
  977. {
  978. value: "2",
  979. label: "严重"
  980. },
  981. {
  982. value: "3",
  983. label: "特别严重"
  984. }
  985. ],
  986. supervision: [
  987. {
  988. value: "1",
  989. label: "是"
  990. },
  991. {
  992. value: "0",
  993. label: "否"
  994. }
  995. ],
  996. hasVedio1: [
  997. {
  998. value: "1",
  999. label: "是"
  1000. },
  1001. {
  1002. value: "0",
  1003. label: "否"
  1004. }
  1005. ],
  1006. findUseOrgArray: [],
  1007. areaInputValue: {},
  1008. memberInputValue: {},
  1009. multipleSelection: [], // 已选
  1010. selectionType: {
  1011. remove: 0,
  1012. befor: 0,
  1013. now: 0,
  1014. after: 0
  1015. },
  1016. // 根据客户点击的督查类型查找督查对象ID
  1017. // 新增
  1018. listobjId: [],
  1019. userId: localStorage.getItem("userid"),
  1020. treeData: [],
  1021. // 修改督查
  1022. pictureArray: [],
  1023. audioArray: [],
  1024. videoArray: [],
  1025. fileArray: [],
  1026. audiotabName: "",
  1027. videotabName: "",
  1028. picturetabName: "",
  1029. filetabName: "",
  1030. playerOptions: {
  1031. height: "120",
  1032. autoplay: true,
  1033. muted: true,
  1034. language: "en",
  1035. playbackRates: [0.7, 1.0, 1.5, 2.0],
  1036. sources: [
  1037. {
  1038. type: "video/mp4",
  1039. // mp4
  1040. src: "http://vjs.zencdn.net/v/oceans.mp4"
  1041. // webm
  1042. // src: "https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm"
  1043. },
  1044. {
  1045. type: "video/mp4",
  1046. // mp4
  1047. src: "http://vjs.zencdn.net/v/oceans.mp4"
  1048. // webm
  1049. // src: "https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm"
  1050. },
  1051. {
  1052. type: "video/mp4",
  1053. // mp4
  1054. src: "http://vjs.zencdn.net/v/oceans.mp4"
  1055. // webm
  1056. // src: "https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm"
  1057. },
  1058. {
  1059. type: "video/mp4",
  1060. // mp4
  1061. src: "http://vjs.zencdn.net/v/oceans.mp4"
  1062. // webm
  1063. // src: "https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm"
  1064. }
  1065. ]
  1066. },
  1067. changeSupervisionVisible: false,
  1068. changeSupervision: {
  1069. nm: "",
  1070. presId: localStorage.getItem("userid"),
  1071. endTime: "",
  1072. pblmId: "",
  1073. objId: "",
  1074. objType: "",
  1075. inspGroupId: "",
  1076. inspPblmName: "",
  1077. inspPblmDesc: "",
  1078. pblmLong: "",
  1079. pblmLat: "",
  1080. pblmStat: "",
  1081. ifCasePblm: "",
  1082. inspPblmOrgName: "",
  1083. pblmPersName: "",
  1084. inspPblmCate: "",
  1085. reviOpin: "",
  1086. reviConc: "",
  1087. reviOrgGuid: "",
  1088. collTime: "",
  1089. recPers: "",
  1090. gwComFiles: [
  1091. {
  1092. id: "",
  1093. filePath: "",
  1094. bizId: ""
  1095. }
  1096. ]
  1097. },
  1098. // 督查类型
  1099. supervisionTypeList: [
  1100. {
  1101. value: "1",
  1102. label: "小水库"
  1103. }
  1104. ],
  1105. // 查询
  1106. value6: [],
  1107. findParams: {
  1108. hasVedio: "",
  1109. adCode: "",
  1110. pblmStat: "",
  1111. inspPblmCate: "",
  1112. ifCasePblm: "",
  1113. nm: "",
  1114. rsName: "",
  1115. adFullName: "",
  1116. startTime: "",
  1117. endTime: "",
  1118. objType: 1,
  1119. inspPblmName: "",
  1120. state: "",
  1121. persId: localStorage.getItem("userid")
  1122. },
  1123. stateList: [
  1124. {
  1125. label: '未提交',
  1126. value: '0'
  1127. },
  1128. {
  1129. label: '已提交',
  1130. value: '2'
  1131. },
  1132. {
  1133. label: '已发布',
  1134. value: '3'
  1135. }
  1136. ],
  1137. currentPage: 1, // 页码
  1138. pageSize: 20, // 条数
  1139. loading: false,
  1140. total: 0, // 总数
  1141. searchResult: [], // 结果
  1142. crId: "", // 当前督查id
  1143. // 督查详情
  1144. userid: localStorage.getItem("userid"),
  1145. supervisionDetailsVisible: false,
  1146. problemDeleteVisible: false,
  1147. supervisionDetails: {},
  1148. pblmId: "",
  1149. gwComFiles: [],
  1150. pblscr: "",
  1151. pblscrList: [
  1152. {
  1153. lable: "我的问题",
  1154. value: localStorage.getItem("userid")
  1155. }
  1156. ],
  1157. pblscrGroup: "",
  1158. t1: {},
  1159. t2: {},
  1160. t3: {},
  1161. problemList: [],
  1162. currentCheckPointList: [],
  1163. currentProblemDescList: [],
  1164. xiangqingmiaoshu: '',
  1165. wenTiLeiBie: "",
  1166. jianChaXiangMu: "",
  1167. actionUrl: "",
  1168. fileList: [],
  1169. header: {
  1170. 'persId': localStorage.getItem('userid'),
  1171. 'orgId': localStorage.getItem('currentOrgId'),
  1172. 'accessToken': localStorage.getItem('accessToken')
  1173. },
  1174. fileListLength: 0,
  1175. showShuiKuTianBaoPl: false,
  1176. uploadDisabled: true,
  1177. exportLoading: false,
  1178. datas: {},
  1179. buttonLoading: false,
  1180. };
  1181. },
  1182. computed: {
  1183. persId() {
  1184. return localStorage.getItem("userid") ? localStorage.getItem("userid") : "1098101939614724096";
  1185. },
  1186. hostUrl() {
  1187. return hostUrl
  1188. },
  1189. formatDateTime() {
  1190. return formatDateTime2New
  1191. },
  1192. isGd(){
  1193. if(localStorage.getItem('currentRlcode').substring(0,2)=="44"){
  1194. return true;
  1195. }else{
  1196. return false;
  1197. }
  1198. }
  1199. },
  1200. created() {
  1201. if (this.userId) {
  1202. console.log("已经登录");
  1203. this.search();
  1204. } else {
  1205. this.$router.push("/login");
  1206. }
  1207. this.getproblemSmallType();
  1208. this.getLeftTreeData();
  1209. this.addPicPanel = false;
  1210. },
  1211. activated() {
  1212. // 监督司提的一个优化,来回切换页签的时候,能不能不主动刷新页面,这样他们不方便来回对比数据
  1213. // this.getLeftTreeData();
  1214. // this.search();
  1215. // this.findParams = {
  1216. // hasVedio:"",
  1217. // adCode: "",
  1218. // pblmStat: "",
  1219. // inspPblmCate: "",
  1220. // ifCasePblm: "",
  1221. // nm: "",
  1222. // rsName: "",
  1223. // adFullName: "",
  1224. // startTime: "",
  1225. // endTime: "",
  1226. // objType: 1,
  1227. // inspPblmName: "",
  1228. // persId: localStorage.getItem("userid")
  1229. // }
  1230. },
  1231. methods: {
  1232. isMine(row){
  1233. if(localStorage.getItem('currentRlcode').substring(0,2)=="35"){
  1234. return row.recPers == this.persId;
  1235. }else{
  1236. return true;
  1237. }
  1238. },
  1239. openDetails(row) {
  1240. this.currentProblemId = row.pblmId;
  1241. this.supervisionDetailsVisible = true;
  1242. },
  1243. tabChange(tabType) {
  1244. this.tabType = tabType;
  1245. this.getLeftTreeData();
  1246. this.search();
  1247. },
  1248. handleCheckChange(data, checked, indeterminate) {
  1249. let cNarray = this.$refs["jigou_tree"].getCheckedNodes();
  1250. console.log(cNarray);
  1251. this.treeNodeArray = cNarray;
  1252. },
  1253. getLeftTreeData() {
  1254. var _self = this;
  1255. request
  1256. .get("/dc/organization/base/getAllNode", {
  1257. params: {
  1258. userId: this.userId,
  1259. orgType: "128",
  1260. tabType: this.tabType
  1261. }
  1262. })
  1263. .then(res => {
  1264. let data = res.data;
  1265. data.forEach(ele => {
  1266. if (ele.pid == null || ele.pid == "") {
  1267. ele.pid = "001";
  1268. }
  1269. });
  1270. data = _self.getTrees(data);
  1271. _self.treeData = data;
  1272. console.log(data);
  1273. // _self.duChaType = _self.treeData[0].id.substring(2,3);
  1274. });
  1275. },
  1276. //格式化树形数据
  1277. getTrees(list) {
  1278. //@wxcwater重写方法 适应多个树
  1279. let highLevelLength = 99;//预设最大节点id长度,目前最大应该为12,所以设置为99保证正常
  1280. let _self = this;
  1281. list.forEach((item, index) => {
  1282. item['pidLength'] = item.pid && item.pid != '' ? item.pid.length : 0;
  1283. if (highLevelLength > item.pidLength) {
  1284. highLevelLength = item.pidLength;
  1285. }
  1286. });
  1287. console.log(highLevelLength);
  1288. let heightLevelNode = [];
  1289. list.forEach((item, index) => {
  1290. if (highLevelLength >= item.pidLength) {
  1291. heightLevelNode.push(item);
  1292. }
  1293. });
  1294. list.forEach((item, index) => {
  1295. heightLevelNode.forEach((pItem) => {
  1296. _self.addTreeNode(pItem, item);
  1297. });
  1298. });
  1299. console.log(heightLevelNode);
  1300. return heightLevelNode;
  1301. },
  1302. addTreeNode: function (treeNode, leafNode) {
  1303. let _self = this;
  1304. if (!treeNode.hasOwnProperty('children')) {
  1305. treeNode['children'] = [];
  1306. }
  1307. if (leafNode.pid == treeNode.id) {
  1308. treeNode.children.push(leafNode);
  1309. return;
  1310. }
  1311. treeNode.children.forEach((item) => {
  1312. _self.addTreeNode(item, leafNode);
  1313. });
  1314. },
  1315. // 查询参数逻辑
  1316. insertTreeNode: function (params) {
  1317. this.treeNodeArray.push({
  1318. name: params.name,
  1319. code: params.code
  1320. });
  1321. this.treeNodeSelectVisible = false;
  1322. this.areaSelectVisible = false;
  1323. this.skSelectVisible = false;
  1324. },
  1325. deleteTreeNode: function (tag) {
  1326. let deleteIndex;
  1327. this.treeNodeArray.forEach((item, index) => {
  1328. if (item.code == tag.code) {
  1329. deleteIndex = index;
  1330. }
  1331. });
  1332. this.treeNodeArray.splice(deleteIndex, 1);
  1333. },
  1334. selectDuChaAreaNode(params) {
  1335. this.adNodeArray.push(params);
  1336. this.areaSelectVisible = false;
  1337. this.skSelectVisible = false;
  1338. },
  1339. deleteAreaNode(tag) {
  1340. let deleteIndex;
  1341. this.adNodeArray.forEach((item, index) => {
  1342. if (item.adCode == tag.adCode) {
  1343. deleteIndex = index;
  1344. return;
  1345. }
  1346. });
  1347. this.adNodeArray.splice(deleteIndex, 1);
  1348. },
  1349. selectSkNode(params) {
  1350. this.rsvrNodeArray.push(params);
  1351. this.skSelectVisible = false;
  1352. },
  1353. deleteSkNode(tag) {
  1354. let deleteIndex;
  1355. this.rsvrNodeArray.forEach((item, index) => {
  1356. if (item.rsCode == tag.rsCode) {
  1357. deleteIndex = index;
  1358. return;
  1359. }
  1360. });
  1361. this.rsvrNodeArray.splice(deleteIndex, 1);
  1362. },
  1363. // end
  1364. handleClose(tag) {
  1365. this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);
  1366. },
  1367. showInput() {
  1368. this.inputVisible = true;
  1369. this.$nextTick(_ => {
  1370. this.$refs.saveTagInput.$refs.input.focus();
  1371. });
  1372. },
  1373. handleInputConfirm() {
  1374. // let inputValue = this.inputValue;
  1375. // if (inputValue) {
  1376. // this.dynamicTags.push(inputValue);
  1377. // }
  1378. // this.inputVisible = false;
  1379. // this.inputValue = '';
  1380. },
  1381. // 操作成功反馈
  1382. successInfo() {
  1383. this.$message({
  1384. type: "success",
  1385. message: "保存成功!"
  1386. });
  1387. },
  1388. // 操作失败反馈
  1389. failInfo(val) {
  1390. this.$message.error(val);
  1391. },
  1392. // 清空选择
  1393. toggleSelection(rows) {
  1394. this.$refs.multipleTable.clearSelection();
  1395. },
  1396. // 已选择项
  1397. handleSelectionChange(val) {
  1398. this.multipleSelection = val;
  1399. },
  1400. // 查询
  1401. search() {
  1402. this.loading = true;
  1403. let _self = this;
  1404. request
  1405. .get("/dc/organization/base/getAllNode", {
  1406. params: {
  1407. userId: this.userId,
  1408. orgType: "128",
  1409. tabType: this.tabType
  1410. }
  1411. })
  1412. .then(res => {
  1413. let orgAllNode = res.data;
  1414. _self.loading = true;
  1415. let data = _self.findParams;
  1416. data.startTime = _self.value6 && _self.value6.length > 0 ? _self.value6[0] : '';
  1417. data.endTime = _self.value6 && _self.value6.length > 0 ? _self.value6[1] : '';
  1418. data.pageNum = _self.currentPage;
  1419. data.recPers = _self.pblscr;
  1420. data.orgNm = _self.pblscrGroup;
  1421. data.pageSize = _self.pageSize;
  1422. data.villType = "0";
  1423. // data.adCode = this.codeId;
  1424. _self.findUseOrgArray = [];
  1425. _self.treeNodeArray.forEach(item => {
  1426. if (item.id.length < 12) {
  1427. orgAllNode.forEach(orgItem => {
  1428. if (orgItem.id.startsWith(item.code)) {
  1429. _self.findUseOrgArray.push(orgItem.id);
  1430. }
  1431. });
  1432. }
  1433. _self.findUseOrgArray.push(item.id);
  1434. });
  1435. if (_self.findUseOrgArray.length > 0) {
  1436. data["orgIds"] = _self.findUseOrgArray.join(",");
  1437. } else {
  1438. data["orgIds"] = "";
  1439. }
  1440. data.objType = "128";
  1441. data.tabType = this.tabType;
  1442. getXSKProblemNew(data).then(res => {
  1443. console.log(res)
  1444. _self.loading = false;
  1445. _self.multipleSelection = [];
  1446. if (res.success) {
  1447. _self.searchResult = res.data.list;
  1448. console.log( "绝对是"+searchResult)
  1449. _self.total = res.data.total;
  1450. } else {
  1451. _self.failInfo();
  1452. }
  1453. });
  1454. });
  1455. },
  1456. async submitBtn() {
  1457. if (this.multipleSelection.length === 0) {
  1458. this.$message.warning('请至少选择一条问题');
  1459. return;
  1460. }
  1461. let newArray = this.multipleSelection.map((item) => {
  1462. return {
  1463. "objId": item.objId,
  1464. "objType": item.objType,
  1465. "state": "3"
  1466. }
  1467. });
  1468. const {success, message} = await pblmSubmit(newArray);
  1469. if (success) {
  1470. this.$message.success('问题发布成功');
  1471. this.search();
  1472. } else {
  1473. this.$message.warning(message);
  1474. }
  1475. },
  1476. toForm(){
  1477. var idArr = [];
  1478. if(this.multipleSelection && this.multipleSelection.length==0){
  1479. this.$message.warning("请选择数据");
  1480. return false;
  1481. }else{
  1482. this.multipleSelection.forEach((item)=>{
  1483. idArr.push(item.pblmId);
  1484. })
  1485. }
  1486. var ids = idArr.join(",");
  1487. let host = hostUrl;
  1488. let nginx = '/pageofficePath/';
  1489. let href = 'pageoffice://|' + host + nginx + '/pageoffice/pblm/list/word?ids='+ids+'&filename=pblm|width=1100px;height=800px;ismodal=false;||91A4EE66EC1921F376873E85D6C74FFA|A890649B44577C32CE1930797E1299F9';
  1490. let a = document.createElement('a'); // 创建a标签
  1491. a.setAttribute('href', href);// href链接
  1492. a.click();// 自执行点击事件
  1493. },
  1494. async exportExceltable(){
  1495. this.exportLoading = true;
  1496. let _self = this;
  1497. let data = _self.findParams
  1498. data.objType = "128";
  1499. this.datas = JSON.stringify(data)
  1500. let url = "/pdcApi/dc/insp/pblm/genrl/statistics/export";
  1501. let type = "post";
  1502. let exportName = "问题统计表.xls"
  1503. let result = await exportModel(type, url, exportName, this.datas);
  1504. _self.exportLoading = result;
  1505. },
  1506. async exportExcel() {
  1507. this.exportLoading = true;
  1508. let _self = this;
  1509. // await request.get("/dc/insp/pblm/genrl/export", {
  1510. // params: {
  1511. // userId: this.userId,
  1512. // orgType: "128",
  1513. // }
  1514. // }).then(res => {
  1515. // let orgAllNode = res.data;
  1516. // let data = _self.findParams;
  1517. // data.pageNum = _self.currentPage;
  1518. // data.pageSize = _self.pageSize;
  1519. // data.villType = "0";
  1520. // _self.datas = JSON.stringify(data);
  1521. // _self.treeNodeArray.forEach(item => {
  1522. // console.log(item);
  1523. // if (item.id.length < 12) {
  1524. // orgAllNode.forEach(orgItem => {
  1525. // if (orgItem.id.startsWith(item.id)) {
  1526. // _self.findUseOrgArray.push(orgItem.id);
  1527. // }
  1528. // });
  1529. // } else {
  1530. // _self.findUseOrgArray.push(item.id);
  1531. // }
  1532. // });
  1533. // });
  1534. let data = _self.findParams;
  1535. data.objType = "128";
  1536. this.datas = JSON.stringify(data)
  1537. let url = "/pdcApi/dc/insp/pblm/page/rever/export";
  1538. let type = "post";
  1539. let exportName = "问题列表.xls"
  1540. let result = await exportModel(type, url, exportName, this.datas);
  1541. _self.exportLoading = result;
  1542. },
  1543. async exportWord() {
  1544. let _self = this;
  1545. _self.exportLoading = true;
  1546. await request
  1547. .get("/dc/organization/base/getAllNode", {
  1548. params: {
  1549. userId: this.userId,
  1550. orgType: "001"
  1551. }
  1552. })
  1553. .then(res => {
  1554. let orgAllNode = res.data;
  1555. let data = _self.findParams;
  1556. data.pageNum = _self.currentPage;
  1557. data.pageSize = _self.pageSize;
  1558. data.villType = "0";
  1559. this.datas = data;
  1560. _self.treeNodeArray.forEach(item => {
  1561. if (item.id.length < 12) {
  1562. orgAllNode.forEach(orgItem => {
  1563. if (orgItem.id.startsWith(item.id)) {
  1564. _self.findUseOrgArray.push(orgItem.id);
  1565. }
  1566. });
  1567. } else {
  1568. _self.findUseOrgArray.push(item.id);
  1569. }
  1570. });
  1571. });
  1572. //下载word文档2
  1573. await request.post('/rever/doc', this.datas).then(res => {
  1574. if (res.success) {
  1575. console.log(this.response)
  1576. var a = document.createElement('a');
  1577. a.href = `${this.hostUrl}${res.data.downloadPath}`;
  1578. //设置文件名称
  1579. a.download = '小水库问题详情.doc';
  1580. a.click();
  1581. // window.open(`${this.hostUrl}${res.data.downloadPath}`)
  1582. _self.exportLoading = false;
  1583. } else {
  1584. _self.$mesage.error(res.message)
  1585. }
  1586. }).catch(res => {
  1587. _self.$mesage.error(res.message)
  1588. })
  1589. },
  1590. downFile(blob, fileName) {
  1591. // 非IE下载
  1592. if ("download" in document.createElement("a")) {
  1593. let link = document.createElement("a");
  1594. link.href = window.URL.createObjectURL(blob); // 创建下载的链接
  1595. link.download = fileName; // 下载后文件名
  1596. link.style.display = "none";
  1597. document.body.appendChild(link);
  1598. link.click(); // 点击下载
  1599. window.URL.revokeObjectURL(link.href); // 释放掉blob对象
  1600. document.body.removeChild(link); // 下载完成移除元素
  1601. } else {
  1602. // IE10+下载
  1603. window.navigator.msSaveBlob(blob, fileName);
  1604. }
  1605. },
  1606. async downloadTemplate() {
  1607. let url = '/pdcApi/dc/imp/skpblm/download?userId=' + this.userId + '&orgType=001';
  1608. let downloadName = "小水库问题.xls";
  1609. let type = "get";
  1610. await exportModel(type, url, downloadName);
  1611. this.uploadDisabled = false;
  1612. },
  1613. showPlDialog() {
  1614. this.showShuiKuTianBaoPl = true
  1615. },
  1616. closePlDialog(val) {
  1617. this.showShuiKuTianBaoPl = false
  1618. this.search();
  1619. },
  1620. handleSizeChange(pageSize) {
  1621. this.pageSize = pageSize;
  1622. this.search();
  1623. },
  1624. // 新增
  1625. getDuChaId() {
  1626. //新增中 获取督查对象id
  1627. getSupervisdByID(this.userid, 1).then(res => {
  1628. if (res.success) {
  1629. // alert(1)
  1630. this.listobjId = res.data;
  1631. } else {
  1632. this.failInfo();
  1633. }
  1634. });
  1635. },
  1636. // 取消
  1637. removeNewSupervision(arg) {
  1638. this.gwComFiles = [];
  1639. if (arg) {
  1640. this.gwComFiles = arg;
  1641. this.$refs.uploadFile.init();
  1642. }
  1643. },
  1644. // 详情弹框
  1645. showDetails(id) {
  1646. this.currentProblemId = id;
  1647. this.supervisionDetailsVisible = true;
  1648. // showDetailsXq(id).then(res => {
  1649. // this.supervisionDetails = res.data;
  1650. // this.supervisionDetailsVisible = true;
  1651. // });
  1652. },
  1653. // 删除弹窗
  1654. removeSuperviseOne(id) {
  1655. this.deleteId = id;
  1656. this.problemDeleteVisible = true;
  1657. // showDetailsXq(id).then(res => {
  1658. // // console.log("123" + res.data)
  1659. // this.persNameRen = res.data.persName;
  1660. // });
  1661. },
  1662. deleteSuccess() {
  1663. this.problemDeleteVisible = false;
  1664. this.search();
  1665. this.$emit("problemCount");
  1666. },
  1667. // 修改弹窗显示
  1668. changeSup(id, deleteUpdate) {
  1669. this.currentProblemId = '';
  1670. this.pictureArray = [];
  1671. this.audioArray = [];
  1672. this.videoArray = [];
  1673. this.fileArray = [];
  1674. this.updateIdXiuGai = id;
  1675. this.t1 = {};
  1676. showDetailsXq(this.updateIdXiuGai).then(res => {
  1677. this.changeSupervision = res.data;
  1678. this.fileList = this.changeSupervision.gwComFiles;
  1679. this.t1['inspPblmsName'] = this.changeSupervision.inspPblmName;
  1680. this.problemList.forEach(ele => {
  1681. if (ele.inspPblmsName == this.t1.inspPblmsName) {
  1682. this.problemListChange(ele)
  1683. }
  1684. })
  1685. this.t2['checkPointName'] = this.changeSupervision.checkPoint
  1686. this.currentCheckPointList.forEach(ele => {
  1687. if (ele.checkPointName == this.t2.checkPointName) {
  1688. this.currentCheckPointListChange(ele)
  1689. }
  1690. })
  1691. this.t3['pblmDesc'] = this.changeSupervision.pblmDesc;
  1692. console.log(this.t1, this.t2, this.t3);
  1693. this.changeSupervisionVisible = true;
  1694. // 当删掉最后一个多媒体文件后,更新一下提交信息(解决删掉多媒体文件后台没有更改状态的问题 record by wby)
  1695. if (deleteUpdate && !res.data.gwComFiles.length) {
  1696. this.changeSupervisionInfo()
  1697. }
  1698. res.data.gwComFiles.forEach(item => {
  1699. if (
  1700. item.fileExt == "mp3" ||
  1701. item.fileExt == "MP3" ||
  1702. item.fileExt == "m4a"
  1703. ) {
  1704. this.audioArray.push(item);
  1705. } else if (
  1706. item.fileExt == "jpg" ||
  1707. item.fileExt == "JPG" ||
  1708. item.fileExt == "png" ||
  1709. item.fileExt == "PNG" ||
  1710. item.fileExt == "JPEG" ||
  1711. item.fileExt == "jpeg"
  1712. ) {
  1713. this.pictureArray.push(item);
  1714. } else if (item.fileExt == "mp4" || item.fileExt == "MP4") {
  1715. this.videoArray.push({
  1716. id: item.id,
  1717. bizId: item.bizId,
  1718. width: "130",
  1719. height: "130",
  1720. autoplay: false,
  1721. muted: true,
  1722. language: "en",
  1723. playbackRates: [0.7, 1.0, 1.5, 2.0],
  1724. sources: [
  1725. {
  1726. type: "video/mp4",
  1727. // mp4
  1728. src: this.hostUrl + item.filePath
  1729. // webm
  1730. // src: "https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm"
  1731. }
  1732. ]
  1733. });
  1734. } else {
  1735. this.fileArray.push(item);
  1736. }
  1737. });
  1738. this.picturetabName = "图片资料(" + this.pictureArray.length + ")";
  1739. this.audiotabName = "音频资料(" + this.audioArray.length + ")";
  1740. this.videotabName = "视频资料(" + this.videoArray.length + ")";
  1741. this.filetabName = "其它资料(" + this.fileArray.length + ")";
  1742. });
  1743. },
  1744. // 提交修改信息
  1745. changeSupervisionInfo() {
  1746. this.$refs.changeSupFrom.validate(valid => {
  1747. if (valid) {
  1748. this.$nextTick(() => {
  1749. // this.changeSupervisionVisible = true;
  1750. this.buttonLoading = true;
  1751. setTimeout(() => {
  1752. this.changeSupervision.inspPblmsName = this.wenTiLeiBie;
  1753. this.changeSupervision.checkPoint = this.jianChaXiangMu;
  1754. this.changeSupervision.inspPblmName = this.wenTiLeiBie; //后台只需要这一个字段和问题id inspPblmsName和checkPoint可不传
  1755. this.changeSupervision.inspPlbmType = this.t2.sort2;
  1756. this.changeSupervision.inspPblmCode = this.t3.sn;
  1757. this.changeSupervision.pblmsTypeId = this.t3.guid;
  1758. let data = this.changeSupervision;
  1759. updatelist(data).then(res => {
  1760. this.pblmId = res.data.pblmId;
  1761. this.gwComFiles = res.data.gwComFiles;
  1762. if (res.success) {
  1763. if (this.$refs.uploadFile.submitUpload(this.changeSupervision.pblmId)) {
  1764. this.removeNewSupervision();
  1765. }
  1766. this.buttonLoading = false;
  1767. this.search();
  1768. this.changeSupervisionVisible = false;
  1769. this.addPicPanel = false;
  1770. } else {
  1771. this.failInfo();
  1772. }
  1773. });
  1774. }, 1000)
  1775. })
  1776. }
  1777. });
  1778. },
  1779. // 删除图片文件
  1780. removeFile(id, index) {
  1781. var _self = this;
  1782. this.$confirm("此操作将永久删除该文件, 是否继续?", "提示", {
  1783. confirmButtonText: "确定",
  1784. cancelButtonText: "返回",
  1785. type: "warning"
  1786. }).then(
  1787. res => {
  1788. if (res === "confirm") {
  1789. deleteFileById(id, this.userId).then(res => {
  1790. if (res.success) {
  1791. this.fileListLength = 0;
  1792. this.fileList.forEach(item => {
  1793. if (
  1794. item.fileExt == "mp3" ||
  1795. item.fileExt == "MP3" ||
  1796. item.fileExt == "m4a"
  1797. ) {
  1798. this.audioArray.splice(index, 1);
  1799. } else if (
  1800. item.fileExt == "jpg" ||
  1801. item.fileExt == "JPG" ||
  1802. item.fileExt == "png" ||
  1803. item.fileExt == "PNG" ||
  1804. item.fileExt == "JPEG" ||
  1805. item.fileExt == "jpeg"
  1806. ) {
  1807. this.pictureArray.splice(index, 1);
  1808. } else if (item.fileExt == "mp4" || item.fileExt == "MP4") {
  1809. this.videoArray.splice(index, 1);
  1810. }
  1811. });
  1812. _self.changeSup(this.updateIdXiuGai, 'deleteUpdate');
  1813. } else {
  1814. this.failInfo();
  1815. }
  1816. });
  1817. }
  1818. },
  1819. res => {
  1820. console.log("返回");
  1821. }
  1822. );
  1823. },
  1824. changeSupervisionVisiblefalse() {
  1825. this.changeSupervisionVisible = false;
  1826. this.changeSupervision = {
  1827. dataStat: "",
  1828. nm: "",
  1829. endTime: "",
  1830. pblmId: "",
  1831. objId: "",
  1832. objType: "",
  1833. inspGroupId: "",
  1834. inspPblmCate: "",
  1835. inspPblmName: "",
  1836. inspPblmDesc: "",
  1837. pblmLong: "",
  1838. pblmLat: "",
  1839. pblmStat: "",
  1840. ifCasePblm: "",
  1841. inspPblmOrgName: "",
  1842. pblmPersName: "",
  1843. reviOpin: "",
  1844. reviConc: "",
  1845. reviOrgGuid: "",
  1846. collTime: "",
  1847. recPers: "",
  1848. note: "",
  1849. gwComFiles: [
  1850. {
  1851. id: "",
  1852. filePath: "",
  1853. bizId: ""
  1854. }
  1855. ]
  1856. };
  1857. this.$refs.uploadFile.init();
  1858. this.addPicPanel = false;
  1859. },
  1860. addPic() {
  1861. this.addPicPanel = !this.addPicPanel;
  1862. },
  1863. getproblemSmallType() {
  1864. let result = [];
  1865. request.get('/dc/insp/pblms/getPblmType', {
  1866. params: {
  1867. type: 1
  1868. }
  1869. }).then(res => {
  1870. if (res.success) {
  1871. res.data.forEach((ele) => {
  1872. let haveinspPblmsName = false;
  1873. result.forEach((inspPblm) => {
  1874. if (inspPblm['inspPblmsName'] == ele.inspPblmsName) {
  1875. //
  1876. let havechekPoint = false;
  1877. inspPblm['checkPoints'].forEach((chekPoint) => {
  1878. if (chekPoint['checkPointName'] == ele.checkPoint) {
  1879. //
  1880. chekPoint['pblmDescs'].push({
  1881. pblmDesc: ele.pblmDesc,
  1882. sn: ele.sn,
  1883. guid: ele.guid,
  1884. });
  1885. havechekPoint = true;
  1886. }
  1887. });
  1888. if (!havechekPoint) {
  1889. let newCheckPoint = {};
  1890. newCheckPoint['checkPointName'] = ele.checkPoint;
  1891. newCheckPoint['sort2'] = ele.sort2;
  1892. newCheckPoint['pblmDescs'] = [{
  1893. pblmDesc: ele.pblmDesc,
  1894. sn: ele.sn,
  1895. guid: ele.guid,
  1896. }]
  1897. inspPblm['checkPoints'].push(newCheckPoint);
  1898. }
  1899. haveinspPblmsName = true;
  1900. }
  1901. });
  1902. if (!haveinspPblmsName) {
  1903. let haveinspPblmsObj = {};
  1904. haveinspPblmsObj['inspPblmsName'] = ele.inspPblmsName;
  1905. haveinspPblmsObj['sort1'] = ele.sort1;
  1906. haveinspPblmsObj['checkPoints'] = [{
  1907. checkPointName: ele.checkPoint,
  1908. sort2: ele.sort2,
  1909. pblmDescs: [{
  1910. pblmDesc: ele.pblmDesc,
  1911. sn: ele.sn,
  1912. guid: ele.guid,
  1913. }]
  1914. }];
  1915. result.push(haveinspPblmsObj);
  1916. }
  1917. })
  1918. this.problemList = result;
  1919. console.log(this.problemList);
  1920. }
  1921. })
  1922. },
  1923. getYanZhongChengDu() {
  1924. request.post('/dc/insp/pblms/getByPblms', {
  1925. inspPblmsName: this.wenTiLeiBie,
  1926. checkPoint: this.jianChaXiangMu,
  1927. pblmDesc: this.t3.pblmDesc,
  1928. type: "1"
  1929. }).then(res => {
  1930. if (res.success) {
  1931. console.log("验证" + res);
  1932. this.changeSupervision.inspPblmCate = res.data.inspPblmCate;
  1933. this.changeSupervision.score = res.data.score;
  1934. }
  1935. })
  1936. },
  1937. problemListChange: function (item) {
  1938. this.t1 = item;// 解决问题编辑弹窗关闭后再打开问题类别展示第一次的问题类别 record by thy
  1939. this.wenTiLeiBie = item.inspPblmsName;
  1940. this.currentCheckPointList = item.checkPoints;
  1941. },
  1942. currentCheckPointListChange: function (item) {
  1943. this.jianChaXiangMu = item.checkPointName;
  1944. this.currentProblemDescList = item.pblmDescs;
  1945. },
  1946. currentProblemDescListChange: function (item) {
  1947. this.xiangqingmiaoshu = item.pblmDesc;
  1948. console.log(item);
  1949. },
  1950. // fileUpErr(err, file, fileList){
  1951. // this.$message.error("上传出错,请修改文件!");
  1952. // this.fileList = [];
  1953. // },
  1954. // fileSuccess(item){
  1955. // this.fileList.push(item.data);
  1956. // console.log(this.fileList);
  1957. // },
  1958. onChangeDialog() {
  1959. },
  1960. //
  1961. // addFile(file,fileList){
  1962. // this.fileListLength = fileList.length;
  1963. //
  1964. // },
  1965. // UploadUrl:function(){
  1966. // return `/pdcApi/file/insert?bizId=${this.changeSupervision.pblmId}`
  1967. // },
  1968. // beforeAvatarUpload(file) {
  1969. // console.log(file);
  1970. // }
  1971. },
  1972. watch: {
  1973. codeId: function () {
  1974. this.search();
  1975. },
  1976. 't1': {
  1977. handler: function (val, oldVal) {
  1978. this.getYanZhongChengDu()
  1979. },
  1980. deep: true
  1981. },
  1982. 't2': {
  1983. handler: function (val, oldVal) {
  1984. this.getYanZhongChengDu()
  1985. },
  1986. deep: true
  1987. },
  1988. 't3': {
  1989. handler: function (val, oldVal) {
  1990. this.getYanZhongChengDu()
  1991. },
  1992. deep: true
  1993. },
  1994. showExpandSearchPanel: function (val) {
  1995. if (val) {
  1996. this.tableHeight = window.innerHeight - 390;
  1997. } else {
  1998. this.tableHeight = window.innerHeight - 291;
  1999. }
  2000. }
  2001. },
  2002. };
  2003. </script>
  2004. <style rel="stylesheet/scss" lang="scss" scoped>
  2005. @import "./base.css";
  2006. @import url("/src/assets/iconfont/iconfont.css");
  2007. @import url("/src/assets/css/mixin.scss");
  2008. .upload-container {
  2009. width: 100%;
  2010. position: relative;
  2011. .image-uploader {
  2012. width: 35%;
  2013. float: left;
  2014. }
  2015. .image-preview {
  2016. width: 200px;
  2017. height: 200px;
  2018. position: relative;
  2019. border: 1px dashed #d9d9d9;
  2020. float: left;
  2021. // margin-left: 50px;
  2022. .image-preview-wrapper {
  2023. position: relative;
  2024. width: 100%;
  2025. height: 100%;
  2026. img {
  2027. width: 100%;
  2028. height: 100%;
  2029. }
  2030. }
  2031. .image-preview-action {
  2032. position: absolute;
  2033. width: 100%;
  2034. height: 100%;
  2035. left: 0;
  2036. top: 0;
  2037. cursor: default;
  2038. text-align: center;
  2039. color: #fff;
  2040. opacity: 0;
  2041. font-size: 20px;
  2042. background-color: rgba(0, 0, 0, 0.5);
  2043. transition: opacity 0.3s;
  2044. cursor: pointer;
  2045. text-align: center;
  2046. line-height: 200px;
  2047. .el-icon-delete {
  2048. font-size: 36px;
  2049. }
  2050. }
  2051. &:hover {
  2052. .image-preview-action {
  2053. opacity: 1;
  2054. }
  2055. }
  2056. }
  2057. .image-app-preview {
  2058. margin-bottom: 10px;
  2059. width: 40vh;
  2060. height: 180px;
  2061. position: relative;
  2062. border: 1px dashed #d9d9d9;
  2063. float: left;
  2064. // margin-left: 50px;
  2065. .app-fake-conver {
  2066. height: 44px;
  2067. position: absolute;
  2068. width: 100%; // background: rgba(0, 0, 0, .1);
  2069. text-align: center;
  2070. line-height: 64px;
  2071. color: #fff;
  2072. }
  2073. }
  2074. }
  2075. .bottom {
  2076. margin-top: 13px;
  2077. line-height: 12px;
  2078. }
  2079. .button {
  2080. padding: 0;
  2081. float: right;
  2082. }
  2083. .image {
  2084. width: 100%;
  2085. display: block;
  2086. }
  2087. .clearfix:before,
  2088. .clearfix:after {
  2089. display: table;
  2090. content: "";
  2091. }
  2092. .clearfix:after {
  2093. clear: both;
  2094. }
  2095. #wenTiContainer_sk .el-tree-node {
  2096. /* overflow: auto; */
  2097. }
  2098. #wenTiContainer_sk .el-tree-node > .el-tree-node__children {
  2099. overflow: auto;
  2100. }
  2101. .shuiku .el-date-editor.el-input {
  2102. min-width: 180px !important;
  2103. }
  2104. .shuiku .header {
  2105. padding: 0px 10px;
  2106. }
  2107. .shuiku .el-row {
  2108. margin-bottom: 5px;
  2109. }
  2110. .shuiku .content {
  2111. margin: 10px;
  2112. }
  2113. /* .search .el-table>>>.el-tooltip {
  2114. white-space: pre-wrap !important;
  2115. line-height: 30px;
  2116. font-size: 0;
  2117. } */
  2118. .shuiku .search > > > .el-table .el-button:nth-child(odd) {
  2119. margin-left: 0 !important;
  2120. }
  2121. .custom_dialog .el-dialog {
  2122. width: 60% !important;
  2123. }
  2124. .custom_dialog .scroll300 {
  2125. max-height: 60vh !important;
  2126. }
  2127. .scroll300 .el-form {
  2128. padding-top: 5px;
  2129. padding-right: 5px;
  2130. }
  2131. .shuiku .el-tag + .el-tag {
  2132. margin-left: 10px;
  2133. }
  2134. .shuiku .button-new-tag {
  2135. margin-left: 10px;
  2136. height: 28px;
  2137. line-height: 28px;
  2138. padding-top: 0;
  2139. padding-bottom: 0;
  2140. }
  2141. .shuiku .input-new-tag {
  2142. width: 90px;
  2143. margin-left: 10px;
  2144. vertical-align: bottom;
  2145. }
  2146. .inspPblmCate {
  2147. padding: 2px 10px;
  2148. border-radius: 10px;
  2149. color: #ffffff;
  2150. -webkit-border-radius: 10px;
  2151. -moz-border-radius: 10px;
  2152. border-radius: 10px;
  2153. }
  2154. #wenTiContainer_sk .el-select, #wenTiContainer_sk .el-input {
  2155. width: 140px !important;
  2156. }
  2157. .skactive {
  2158. background: #3f8eff !important;
  2159. color: white !important;
  2160. margin-top: 5px;
  2161. margin-bottom: 5px;
  2162. }
  2163. .sknormal {
  2164. background: white;
  2165. margin-top: 5px;
  2166. margin-bottom: 5px;
  2167. }
  2168. </style>