fc68a9066cb3ad6050d6b5e9e18f084bb31fd8d8.svn-base 100 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192
  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 duChaclass from "../duChaWenTi/duchaClass.json"
  750. // import { getList, persCheck } from '@/api/persCheck'
  751. export default {
  752. props: ["codeId"],
  753. components: {
  754. upload: resolve => {
  755. require(["../../widgets/uploadFile.vue"], resolve);
  756. },
  757. //详情页
  758. supervisionDetails: resolve => {
  759. require(["./supervisionDetails_shuiku.vue"], resolve);
  760. },
  761. // 删除描述页
  762. ProblemDelete: resolve => {
  763. require(["./problemDelete.vue"], resolve);
  764. },
  765. // addPicDialog: resolve => {
  766. // require(["./addPicDialog.vue"], resolve);
  767. // },
  768. elaudio: elaudio,
  769. inuptWithDuChaTreeNode: inuptWithDuChaTreeNode,
  770. inputWidthDuChaNodes: inputWidthDuChaNodes,
  771. inputWidthDuChaShuiKu: inputWidthDuChaShuiKu,
  772. problemDialog: problemDialog,
  773. shuiKuWentiPl: shuiKuWentiPl
  774. },
  775. data() {
  776. var validatePass1 = (rules1, value, callback) => {
  777. if (this.newSupervision.startTime > this.newSupervision.endTime) {
  778. callback(new Error("结束时间不能早于开始时间"));
  779. } else {
  780. callback();
  781. }
  782. };
  783. var validatePass2 = (rules1, value, callback) => {
  784. let startTime = this.changeSupervision.startTime.slice(0, 10);
  785. if (startTime > this.changeSupervision.endTime) {
  786. callback(new Error("结束时间不能早于开始时间"));
  787. } else {
  788. callback();
  789. }
  790. };
  791. var divisionList = (rules1, value, callback) => {
  792. if (this.newGroup.divisionList.length) {
  793. callback();
  794. } else {
  795. callback(new Error("至少要添加一个地区"));
  796. }
  797. };
  798. return {
  799. problemClasslist:duChaclass,
  800. tabType: "0",//0全部数据,1当前数据,2历史数据
  801. showExpandSearchPanel: false,
  802. tableHeight: window.innerHeight - 291,
  803. globoId: "",
  804. addPicPanel: false,
  805. currentDate: new Date(),
  806. deleteId: "",
  807. treeNodeArray: [],
  808. treeNodeSelectVisible: false,
  809. adNodeArray: [],
  810. adNodeSelectVisible: false,
  811. areaSelectVisible: false,
  812. rsvrNodeArray: [],
  813. rsvrNodeSelectVisible: false,
  814. skSelectVisible: false,
  815. currentProblemId: "",
  816. updateIdXiuGai: "",
  817. rules1: {
  818. inspPblmName: [
  819. {
  820. required: true,
  821. message: "请输入问题名称",
  822. trigger: "blur"
  823. },
  824. {
  825. min: 1,
  826. max: 999,
  827. message: "不超过100字符",
  828. trigger: "blur"
  829. }
  830. ],
  831. inspPblmDesc: [
  832. {
  833. required: true,
  834. message: "请输入问题描述",
  835. trigger: "blur"
  836. }
  837. ],
  838. recPers: [
  839. {
  840. required: true,
  841. message: "请输入记录人",
  842. trigger: "blur"
  843. },
  844. {
  845. min: 1,
  846. max: 999,
  847. message: "不超过100字符",
  848. trigger: "blur"
  849. }
  850. ],
  851. objType: [
  852. {
  853. required: true,
  854. message: "请选择督查对象类型",
  855. trigger: "change"
  856. }
  857. ],
  858. objId: [
  859. {
  860. required: true,
  861. message: "请选择督查对象类型",
  862. trigger: "change"
  863. }
  864. ],
  865. inspPblmType: [
  866. {
  867. required: true,
  868. message: "请选择督查问题类型",
  869. trigger: "change"
  870. }
  871. ],
  872. dataStat: [
  873. {
  874. required: true,
  875. message: "请选择数据状态",
  876. trigger: "change"
  877. }
  878. ],
  879. collTime: [
  880. {
  881. required: true,
  882. message: "请选择采集时间",
  883. trigger: "change"
  884. }
  885. ],
  886. ifCasePblm: [
  887. {
  888. required: true,
  889. message: "请选择是否典型",
  890. trigger: "change"
  891. }
  892. ],
  893. pblmStat: [
  894. {
  895. required: true,
  896. message: "请选择问题类型",
  897. trigger: "change"
  898. }
  899. ],
  900. inspPblmCate: [
  901. {
  902. required: true,
  903. message: "请选择问题程度",
  904. trigger: "change"
  905. },
  906. {
  907. trigger: "change"
  908. }
  909. ]
  910. },
  911. dxdcAsideHeight: window.innerHeight - 220,
  912. maxHeight: window.innerHeight - 300,
  913. testHeight: window.innerHeight - 80,
  914. supervisionStateList: [
  915. {
  916. value: "0",
  917. label: "暂存"
  918. },
  919. {
  920. value: "1",
  921. label: "上报"
  922. }
  923. ],
  924. supervisionState: [
  925. {
  926. value: "0",
  927. label: "一般"
  928. },
  929. {
  930. value: "1",
  931. label: "较重"
  932. },
  933. {
  934. value: "2",
  935. label: "严重"
  936. },
  937. {
  938. value: "3",
  939. label: "特别严重"
  940. }
  941. ],
  942. supervision: [
  943. {
  944. value: "1",
  945. label: "是"
  946. },
  947. {
  948. value: "0",
  949. label: "否"
  950. }
  951. ],
  952. hasVedio1: [
  953. {
  954. value: "1",
  955. label: "是"
  956. },
  957. {
  958. value: "0",
  959. label: "否"
  960. }
  961. ],
  962. findUseOrgArray: [],
  963. areaInputValue: {},
  964. memberInputValue: {},
  965. multipleSelection: [], // 已选
  966. selectionType: {
  967. remove: 0,
  968. befor: 0,
  969. now: 0,
  970. after: 0
  971. },
  972. // 根据客户点击的督查类型查找督查对象ID
  973. // 新增
  974. listobjId: [],
  975. userId: localStorage.getItem("userid"),
  976. treeData: [],
  977. // 修改督查
  978. pictureArray: [],
  979. audioArray: [],
  980. videoArray: [],
  981. fileArray: [],
  982. audiotabName: "",
  983. videotabName: "",
  984. picturetabName: "",
  985. filetabName: "",
  986. playerOptions: {
  987. height: "120",
  988. autoplay: true,
  989. muted: true,
  990. language: "en",
  991. playbackRates: [0.7, 1.0, 1.5, 2.0],
  992. sources: [
  993. {
  994. type: "video/mp4",
  995. // mp4
  996. src: "http://vjs.zencdn.net/v/oceans.mp4"
  997. // webm
  998. // src: "https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm"
  999. },
  1000. {
  1001. type: "video/mp4",
  1002. // mp4
  1003. src: "http://vjs.zencdn.net/v/oceans.mp4"
  1004. // webm
  1005. // src: "https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm"
  1006. },
  1007. {
  1008. type: "video/mp4",
  1009. // mp4
  1010. src: "http://vjs.zencdn.net/v/oceans.mp4"
  1011. // webm
  1012. // src: "https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm"
  1013. },
  1014. {
  1015. type: "video/mp4",
  1016. // mp4
  1017. src: "http://vjs.zencdn.net/v/oceans.mp4"
  1018. // webm
  1019. // src: "https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm"
  1020. }
  1021. ]
  1022. },
  1023. changeSupervisionVisible: false,
  1024. changeSupervision: {
  1025. nm: "",
  1026. presId: localStorage.getItem("userid"),
  1027. endTime: "",
  1028. pblmId: "",
  1029. objId: "",
  1030. objType: "",
  1031. inspGroupId: "",
  1032. inspPblmName: "",
  1033. inspPblmDesc: "",
  1034. pblmLong: "",
  1035. pblmLat: "",
  1036. pblmStat: "",
  1037. ifCasePblm: "",
  1038. inspPblmOrgName: "",
  1039. pblmPersName: "",
  1040. inspPblmCate: "",
  1041. reviOpin: "",
  1042. reviConc: "",
  1043. reviOrgGuid: "",
  1044. collTime: "",
  1045. recPers: "",
  1046. gwComFiles: [
  1047. {
  1048. id: "",
  1049. filePath: "",
  1050. bizId: ""
  1051. }
  1052. ]
  1053. },
  1054. // 督查类型
  1055. supervisionTypeList: [
  1056. {
  1057. value: "1",
  1058. label: "小水库"
  1059. }
  1060. ],
  1061. // 查询
  1062. value6: [],
  1063. findParams: {
  1064. hasVedio: "",
  1065. adCode: "",
  1066. pblmStat: "",
  1067. inspPblmCate: "",
  1068. ifCasePblm: "",
  1069. nm: "",
  1070. rsName: "",
  1071. adFullName: "",
  1072. startTime: "",
  1073. endTime: "",
  1074. objType: 1,
  1075. inspPblmName: "",
  1076. state: "",
  1077. persId: localStorage.getItem("userid")
  1078. },
  1079. stateList: [
  1080. {
  1081. label: '未提交',
  1082. value: '0'
  1083. },
  1084. {
  1085. label: '已提交',
  1086. value: '2'
  1087. },
  1088. {
  1089. label: '已发布',
  1090. value: '3'
  1091. }
  1092. ],
  1093. currentPage: 1, // 页码
  1094. pageSize: 20, // 条数
  1095. loading: false,
  1096. total: 0, // 总数
  1097. searchResult: [], // 结果
  1098. crId: "", // 当前督查id
  1099. // 督查详情
  1100. userid: localStorage.getItem("userid"),
  1101. supervisionDetailsVisible: false,
  1102. problemDeleteVisible: false,
  1103. supervisionDetails: {},
  1104. pblmId: "",
  1105. gwComFiles: [],
  1106. pblscr: "",
  1107. pblscrList: [
  1108. {
  1109. lable: "我的问题",
  1110. value: localStorage.getItem("userid")
  1111. }
  1112. ],
  1113. pblscrGroup: "",
  1114. t1: {},
  1115. t2: {},
  1116. t3: {},
  1117. problemList: [],
  1118. currentCheckPointList: [],
  1119. currentProblemDescList: [],
  1120. xiangqingmiaoshu: '',
  1121. wenTiLeiBie: "",
  1122. jianChaXiangMu: "",
  1123. actionUrl: "",
  1124. fileList: [],
  1125. header: {
  1126. 'persId': localStorage.getItem('userid'),
  1127. 'orgId': localStorage.getItem('currentOrgId'),
  1128. 'accessToken': localStorage.getItem('accessToken')
  1129. },
  1130. fileListLength: 0,
  1131. showShuiKuTianBaoPl: false,
  1132. uploadDisabled: true,
  1133. exportLoading: false,
  1134. datas: {},
  1135. buttonLoading: false,
  1136. };
  1137. },
  1138. computed: {
  1139. persId() {
  1140. return localStorage.getItem("userid") ? localStorage.getItem("userid") : "1098101939614724096";
  1141. },
  1142. hostUrl() {
  1143. return hostUrl
  1144. },
  1145. formatDateTime() {
  1146. return formatDateTime2New
  1147. },
  1148. isGd(){
  1149. if(localStorage.getItem('currentRlcode').substring(0,2)=="44"){
  1150. return true;
  1151. }else{
  1152. return false;
  1153. }
  1154. }
  1155. },
  1156. created() {
  1157. if (this.userId) {
  1158. console.log("已经登录");
  1159. this.search();
  1160. } else {
  1161. this.$router.push("/login");
  1162. }
  1163. this.getproblemSmallType();
  1164. this.getLeftTreeData();
  1165. this.addPicPanel = false;
  1166. },
  1167. activated() {
  1168. // 监督司提的一个优化,来回切换页签的时候,能不能不主动刷新页面,这样他们不方便来回对比数据
  1169. // this.getLeftTreeData();
  1170. // this.search();
  1171. // this.findParams = {
  1172. // hasVedio:"",
  1173. // adCode: "",
  1174. // pblmStat: "",
  1175. // inspPblmCate: "",
  1176. // ifCasePblm: "",
  1177. // nm: "",
  1178. // rsName: "",
  1179. // adFullName: "",
  1180. // startTime: "",
  1181. // endTime: "",
  1182. // objType: 1,
  1183. // inspPblmName: "",
  1184. // persId: localStorage.getItem("userid")
  1185. // }
  1186. },
  1187. methods: {
  1188. isMine(row){
  1189. if(localStorage.getItem('currentRlcode').substring(0,2)=="35"){
  1190. return row.recPers == this.persId;
  1191. }else{
  1192. return true;
  1193. }
  1194. },
  1195. openDetails(row) {
  1196. this.currentProblemId = row.pblmId;
  1197. this.supervisionDetailsVisible = true;
  1198. },
  1199. tabChange(tabType) {
  1200. this.tabType = tabType;
  1201. this.getLeftTreeData();
  1202. this.search();
  1203. },
  1204. handleCheckChange(data, checked, indeterminate) {
  1205. let cNarray = this.$refs["jigou_tree"].getCheckedNodes();
  1206. console.log(cNarray);
  1207. this.treeNodeArray = cNarray;
  1208. },
  1209. getLeftTreeData() {
  1210. var _self = this;
  1211. request
  1212. .get("/dc/organization/base/getAllNode", {
  1213. params: {
  1214. userId: this.userId,
  1215. orgType: "128",
  1216. tabType: this.tabType
  1217. }
  1218. })
  1219. .then(res => {
  1220. let data = res.data;
  1221. data.forEach(ele => {
  1222. if (ele.pid == null || ele.pid == "") {
  1223. ele.pid = "001";
  1224. }
  1225. });
  1226. data = _self.getTrees(data);
  1227. _self.treeData = data;
  1228. console.log(data);
  1229. // _self.duChaType = _self.treeData[0].id.substring(2,3);
  1230. });
  1231. },
  1232. //格式化树形数据
  1233. getTrees(list) {
  1234. //@wxcwater重写方法 适应多个树
  1235. let highLevelLength = 99;//预设最大节点id长度,目前最大应该为12,所以设置为99保证正常
  1236. let _self = this;
  1237. list.forEach((item, index) => {
  1238. item['pidLength'] = item.pid && item.pid != '' ? item.pid.length : 0;
  1239. if (highLevelLength > item.pidLength) {
  1240. highLevelLength = item.pidLength;
  1241. }
  1242. });
  1243. console.log(highLevelLength);
  1244. let heightLevelNode = [];
  1245. list.forEach((item, index) => {
  1246. if (highLevelLength >= item.pidLength) {
  1247. heightLevelNode.push(item);
  1248. }
  1249. });
  1250. list.forEach((item, index) => {
  1251. heightLevelNode.forEach((pItem) => {
  1252. _self.addTreeNode(pItem, item);
  1253. });
  1254. });
  1255. console.log(heightLevelNode);
  1256. return heightLevelNode;
  1257. },
  1258. addTreeNode: function (treeNode, leafNode) {
  1259. let _self = this;
  1260. if (!treeNode.hasOwnProperty('children')) {
  1261. treeNode['children'] = [];
  1262. }
  1263. if (leafNode.pid == treeNode.id) {
  1264. treeNode.children.push(leafNode);
  1265. return;
  1266. }
  1267. treeNode.children.forEach((item) => {
  1268. _self.addTreeNode(item, leafNode);
  1269. });
  1270. },
  1271. // 查询参数逻辑
  1272. insertTreeNode: function (params) {
  1273. this.treeNodeArray.push({
  1274. name: params.name,
  1275. code: params.code
  1276. });
  1277. this.treeNodeSelectVisible = false;
  1278. this.areaSelectVisible = false;
  1279. this.skSelectVisible = false;
  1280. },
  1281. deleteTreeNode: function (tag) {
  1282. let deleteIndex;
  1283. this.treeNodeArray.forEach((item, index) => {
  1284. if (item.code == tag.code) {
  1285. deleteIndex = index;
  1286. }
  1287. });
  1288. this.treeNodeArray.splice(deleteIndex, 1);
  1289. },
  1290. selectDuChaAreaNode(params) {
  1291. this.adNodeArray.push(params);
  1292. this.areaSelectVisible = false;
  1293. this.skSelectVisible = false;
  1294. },
  1295. deleteAreaNode(tag) {
  1296. let deleteIndex;
  1297. this.adNodeArray.forEach((item, index) => {
  1298. if (item.adCode == tag.adCode) {
  1299. deleteIndex = index;
  1300. return;
  1301. }
  1302. });
  1303. this.adNodeArray.splice(deleteIndex, 1);
  1304. },
  1305. selectSkNode(params) {
  1306. this.rsvrNodeArray.push(params);
  1307. this.skSelectVisible = false;
  1308. },
  1309. deleteSkNode(tag) {
  1310. let deleteIndex;
  1311. this.rsvrNodeArray.forEach((item, index) => {
  1312. if (item.rsCode == tag.rsCode) {
  1313. deleteIndex = index;
  1314. return;
  1315. }
  1316. });
  1317. this.rsvrNodeArray.splice(deleteIndex, 1);
  1318. },
  1319. // end
  1320. handleClose(tag) {
  1321. this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);
  1322. },
  1323. showInput() {
  1324. this.inputVisible = true;
  1325. this.$nextTick(_ => {
  1326. this.$refs.saveTagInput.$refs.input.focus();
  1327. });
  1328. },
  1329. handleInputConfirm() {
  1330. // let inputValue = this.inputValue;
  1331. // if (inputValue) {
  1332. // this.dynamicTags.push(inputValue);
  1333. // }
  1334. // this.inputVisible = false;
  1335. // this.inputValue = '';
  1336. },
  1337. // 操作成功反馈
  1338. successInfo() {
  1339. this.$message({
  1340. type: "success",
  1341. message: "保存成功!"
  1342. });
  1343. },
  1344. // 操作失败反馈
  1345. failInfo(val) {
  1346. this.$message.error(val);
  1347. },
  1348. // 清空选择
  1349. toggleSelection(rows) {
  1350. this.$refs.multipleTable.clearSelection();
  1351. },
  1352. // 已选择项
  1353. handleSelectionChange(val) {
  1354. this.multipleSelection = val;
  1355. },
  1356. // 查询
  1357. search() {
  1358. this.loading = true;
  1359. let _self = this;
  1360. request
  1361. .get("/dc/organization/base/getAllNode", {
  1362. params: {
  1363. userId: this.userId,
  1364. orgType: "128",
  1365. tabType: this.tabType
  1366. }
  1367. })
  1368. .then(res => {
  1369. let orgAllNode = res.data;
  1370. _self.loading = true;
  1371. let data = _self.findParams;
  1372. data.startTime = _self.value6 && _self.value6.length > 0 ? _self.value6[0] : '';
  1373. data.endTime = _self.value6 && _self.value6.length > 0 ? _self.value6[1] : '';
  1374. data.pageNum = _self.currentPage;
  1375. data.recPers = _self.pblscr;
  1376. data.orgNm = _self.pblscrGroup;
  1377. data.pageSize = _self.pageSize;
  1378. data.villType = "0";
  1379. // data.adCode = this.codeId;
  1380. _self.findUseOrgArray = [];
  1381. _self.treeNodeArray.forEach(item => {
  1382. if (item.id.length < 12) {
  1383. orgAllNode.forEach(orgItem => {
  1384. if (orgItem.id.startsWith(item.code)) {
  1385. _self.findUseOrgArray.push(orgItem.id);
  1386. }
  1387. });
  1388. }
  1389. _self.findUseOrgArray.push(item.id);
  1390. });
  1391. if (_self.findUseOrgArray.length > 0) {
  1392. data["orgIds"] = _self.findUseOrgArray.join(",");
  1393. } else {
  1394. data["orgIds"] = "";
  1395. }
  1396. data.objType = "128";
  1397. data.tabType = this.tabType;
  1398. getXSKProblemNew(data).then(res => {
  1399. console.log(res)
  1400. _self.loading = false;
  1401. _self.multipleSelection = [];
  1402. if (res.success) {
  1403. _self.searchResult = res.data.list;
  1404. console.log( "绝对是"+searchResult)
  1405. _self.total = res.data.total;
  1406. } else {
  1407. _self.failInfo();
  1408. }
  1409. });
  1410. });
  1411. },
  1412. async submitBtn() {
  1413. if (this.multipleSelection.length === 0) {
  1414. this.$message.warning('请至少选择一条问题');
  1415. return;
  1416. }
  1417. let newArray = this.multipleSelection.map((item) => {
  1418. return {
  1419. "objId": item.objId,
  1420. "objType": item.objType,
  1421. "state": "3"
  1422. }
  1423. });
  1424. const {success, message} = await pblmSubmit(newArray);
  1425. if (success) {
  1426. this.$message.success('问题发布成功');
  1427. this.search();
  1428. } else {
  1429. this.$message.warning(message);
  1430. }
  1431. },
  1432. toForm(){
  1433. var idArr = [];
  1434. if(this.multipleSelection && this.multipleSelection.length==0){
  1435. this.$message.warning("请选择数据");
  1436. return false;
  1437. }else{
  1438. this.multipleSelection.forEach((item)=>{
  1439. idArr.push(item.pblmId);
  1440. })
  1441. }
  1442. var ids = idArr.join(",");
  1443. let host = hostUrl;
  1444. let nginx = '/pageofficePath/';
  1445. let href = 'pageoffice://|' + host + nginx + '/pageoffice/pblm/list/word?ids='+ids+'&filename=pblm|width=1100px;height=800px;ismodal=false;||91A4EE66EC1921F376873E85D6C74FFA|A890649B44577C32CE1930797E1299F9';
  1446. let a = document.createElement('a'); // 创建a标签
  1447. a.setAttribute('href', href);// href链接
  1448. a.click();// 自执行点击事件
  1449. },
  1450. async exportExceltable(){
  1451. this.exportLoading = true;
  1452. let _self = this;
  1453. let data = _self.findParams
  1454. data.objType = "128";
  1455. this.datas = JSON.stringify(data)
  1456. let url = "/pdcApi/dc/insp/pblm/genrl/statistics/export";
  1457. let type = "post";
  1458. let exportName = "问题统计表.xls"
  1459. let result = await exportModel(type, url, exportName, this.datas);
  1460. _self.exportLoading = result;
  1461. },
  1462. async exportExcel() {
  1463. this.exportLoading = true;
  1464. let _self = this;
  1465. // await request.get("/dc/insp/pblm/genrl/export", {
  1466. // params: {
  1467. // userId: this.userId,
  1468. // orgType: "128",
  1469. // }
  1470. // }).then(res => {
  1471. // let orgAllNode = res.data;
  1472. // let data = _self.findParams;
  1473. // data.pageNum = _self.currentPage;
  1474. // data.pageSize = _self.pageSize;
  1475. // data.villType = "0";
  1476. // _self.datas = JSON.stringify(data);
  1477. // _self.treeNodeArray.forEach(item => {
  1478. // console.log(item);
  1479. // if (item.id.length < 12) {
  1480. // orgAllNode.forEach(orgItem => {
  1481. // if (orgItem.id.startsWith(item.id)) {
  1482. // _self.findUseOrgArray.push(orgItem.id);
  1483. // }
  1484. // });
  1485. // } else {
  1486. // _self.findUseOrgArray.push(item.id);
  1487. // }
  1488. // });
  1489. // });
  1490. let data = _self.findParams;
  1491. data.objType = "128";
  1492. this.datas = JSON.stringify(data)
  1493. let url = "/pdcApi/dc/insp/pblm/genrl/export";
  1494. let type = "post";
  1495. let exportName = "问题列表.xls"
  1496. let result = await exportModel(type, url, exportName, this.datas);
  1497. _self.exportLoading = result;
  1498. },
  1499. async exportWord() {
  1500. let _self = this;
  1501. _self.exportLoading = true;
  1502. await request
  1503. .get("/dc/organization/base/getAllNode", {
  1504. params: {
  1505. userId: this.userId,
  1506. orgType: "001"
  1507. }
  1508. })
  1509. .then(res => {
  1510. let orgAllNode = res.data;
  1511. let data = _self.findParams;
  1512. data.pageNum = _self.currentPage;
  1513. data.pageSize = _self.pageSize;
  1514. data.villType = "0";
  1515. this.datas = data;
  1516. _self.treeNodeArray.forEach(item => {
  1517. if (item.id.length < 12) {
  1518. orgAllNode.forEach(orgItem => {
  1519. if (orgItem.id.startsWith(item.id)) {
  1520. _self.findUseOrgArray.push(orgItem.id);
  1521. }
  1522. });
  1523. } else {
  1524. _self.findUseOrgArray.push(item.id);
  1525. }
  1526. });
  1527. });
  1528. //下载word文档2
  1529. await request.post('/rever/doc', this.datas).then(res => {
  1530. if (res.success) {
  1531. console.log(this.response)
  1532. var a = document.createElement('a');
  1533. a.href = `${this.hostUrl}${res.data.downloadPath}`;
  1534. //设置文件名称
  1535. a.download = '小水库问题详情.doc';
  1536. a.click();
  1537. // window.open(`${this.hostUrl}${res.data.downloadPath}`)
  1538. _self.exportLoading = false;
  1539. } else {
  1540. _self.$mesage.error(res.message)
  1541. }
  1542. }).catch(res => {
  1543. _self.$mesage.error(res.message)
  1544. })
  1545. },
  1546. downFile(blob, fileName) {
  1547. // 非IE下载
  1548. if ("download" in document.createElement("a")) {
  1549. let link = document.createElement("a");
  1550. link.href = window.URL.createObjectURL(blob); // 创建下载的链接
  1551. link.download = fileName; // 下载后文件名
  1552. link.style.display = "none";
  1553. document.body.appendChild(link);
  1554. link.click(); // 点击下载
  1555. window.URL.revokeObjectURL(link.href); // 释放掉blob对象
  1556. document.body.removeChild(link); // 下载完成移除元素
  1557. } else {
  1558. // IE10+下载
  1559. window.navigator.msSaveBlob(blob, fileName);
  1560. }
  1561. },
  1562. async downloadTemplate() {
  1563. let url = '/pdcApi/dc/imp/skpblm/download?userId=' + this.userId + '&orgType=001';
  1564. let downloadName = "小水库问题.xls";
  1565. let type = "get";
  1566. await exportModel(type, url, downloadName);
  1567. this.uploadDisabled = false;
  1568. },
  1569. showPlDialog() {
  1570. this.showShuiKuTianBaoPl = true
  1571. },
  1572. closePlDialog(val) {
  1573. this.showShuiKuTianBaoPl = false
  1574. this.search();
  1575. },
  1576. handleSizeChange(pageSize) {
  1577. this.pageSize = pageSize;
  1578. this.search();
  1579. },
  1580. // 新增
  1581. getDuChaId() {
  1582. //新增中 获取督查对象id
  1583. getSupervisdByID(this.userid, 1).then(res => {
  1584. if (res.success) {
  1585. // alert(1)
  1586. this.listobjId = res.data;
  1587. } else {
  1588. this.failInfo();
  1589. }
  1590. });
  1591. },
  1592. // 取消
  1593. removeNewSupervision(arg) {
  1594. this.gwComFiles = [];
  1595. if (arg) {
  1596. this.gwComFiles = arg;
  1597. this.$refs.uploadFile.init();
  1598. }
  1599. },
  1600. // 详情弹框
  1601. showDetails(id) {
  1602. this.currentProblemId = id;
  1603. this.supervisionDetailsVisible = true;
  1604. // showDetailsXq(id).then(res => {
  1605. // this.supervisionDetails = res.data;
  1606. // this.supervisionDetailsVisible = true;
  1607. // });
  1608. },
  1609. // 删除弹窗
  1610. removeSuperviseOne(id) {
  1611. this.deleteId = id;
  1612. this.problemDeleteVisible = true;
  1613. // showDetailsXq(id).then(res => {
  1614. // // console.log("123" + res.data)
  1615. // this.persNameRen = res.data.persName;
  1616. // });
  1617. },
  1618. deleteSuccess() {
  1619. this.problemDeleteVisible = false;
  1620. this.search();
  1621. this.$emit("problemCount");
  1622. },
  1623. // 修改弹窗显示
  1624. changeSup(id, deleteUpdate) {
  1625. this.currentProblemId = '';
  1626. this.pictureArray = [];
  1627. this.audioArray = [];
  1628. this.videoArray = [];
  1629. this.fileArray = [];
  1630. this.updateIdXiuGai = id;
  1631. this.t1 = {};
  1632. showDetailsXq(this.updateIdXiuGai).then(res => {
  1633. this.changeSupervision = res.data;
  1634. this.fileList = this.changeSupervision.gwComFiles;
  1635. this.t1['inspPblmsName'] = this.changeSupervision.inspPblmName;
  1636. this.problemList.forEach(ele => {
  1637. if (ele.inspPblmsName == this.t1.inspPblmsName) {
  1638. this.problemListChange(ele)
  1639. }
  1640. })
  1641. this.t2['checkPointName'] = this.changeSupervision.checkPoint
  1642. this.currentCheckPointList.forEach(ele => {
  1643. if (ele.checkPointName == this.t2.checkPointName) {
  1644. this.currentCheckPointListChange(ele)
  1645. }
  1646. })
  1647. this.t3['pblmDesc'] = this.changeSupervision.pblmDesc;
  1648. console.log(this.t1, this.t2, this.t3);
  1649. this.changeSupervisionVisible = true;
  1650. // 当删掉最后一个多媒体文件后,更新一下提交信息(解决删掉多媒体文件后台没有更改状态的问题 record by wby)
  1651. if (deleteUpdate && !res.data.gwComFiles.length) {
  1652. this.changeSupervisionInfo()
  1653. }
  1654. res.data.gwComFiles.forEach(item => {
  1655. if (
  1656. item.fileExt == "mp3" ||
  1657. item.fileExt == "MP3" ||
  1658. item.fileExt == "m4a"
  1659. ) {
  1660. this.audioArray.push(item);
  1661. } else if (
  1662. item.fileExt == "jpg" ||
  1663. item.fileExt == "JPG" ||
  1664. item.fileExt == "png" ||
  1665. item.fileExt == "PNG" ||
  1666. item.fileExt == "JPEG" ||
  1667. item.fileExt == "jpeg"
  1668. ) {
  1669. this.pictureArray.push(item);
  1670. } else if (item.fileExt == "mp4" || item.fileExt == "MP4") {
  1671. this.videoArray.push({
  1672. id: item.id,
  1673. bizId: item.bizId,
  1674. width: "130",
  1675. height: "130",
  1676. autoplay: false,
  1677. muted: true,
  1678. language: "en",
  1679. playbackRates: [0.7, 1.0, 1.5, 2.0],
  1680. sources: [
  1681. {
  1682. type: "video/mp4",
  1683. // mp4
  1684. src: this.hostUrl + item.filePath
  1685. // webm
  1686. // src: "https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm"
  1687. }
  1688. ]
  1689. });
  1690. } else {
  1691. this.fileArray.push(item);
  1692. }
  1693. });
  1694. this.picturetabName = "图片资料(" + this.pictureArray.length + ")";
  1695. this.audiotabName = "音频资料(" + this.audioArray.length + ")";
  1696. this.videotabName = "视频资料(" + this.videoArray.length + ")";
  1697. this.filetabName = "其它资料(" + this.fileArray.length + ")";
  1698. });
  1699. },
  1700. // 提交修改信息
  1701. changeSupervisionInfo() {
  1702. this.$refs.changeSupFrom.validate(valid => {
  1703. if (valid) {
  1704. this.$nextTick(() => {
  1705. // this.changeSupervisionVisible = true;
  1706. this.buttonLoading = true;
  1707. setTimeout(() => {
  1708. this.changeSupervision.inspPblmsName = this.wenTiLeiBie;
  1709. this.changeSupervision.checkPoint = this.jianChaXiangMu;
  1710. this.changeSupervision.inspPblmName = this.wenTiLeiBie; //后台只需要这一个字段和问题id inspPblmsName和checkPoint可不传
  1711. this.changeSupervision.inspPlbmType = this.t2.sort2;
  1712. this.changeSupervision.inspPblmCode = this.t3.sn;
  1713. this.changeSupervision.pblmsTypeId = this.t3.guid;
  1714. let data = this.changeSupervision;
  1715. updatelist(data).then(res => {
  1716. this.pblmId = res.data.pblmId;
  1717. this.gwComFiles = res.data.gwComFiles;
  1718. if (res.success) {
  1719. if (this.$refs.uploadFile.submitUpload(this.changeSupervision.pblmId)) {
  1720. this.removeNewSupervision();
  1721. }
  1722. this.buttonLoading = false;
  1723. this.search();
  1724. this.changeSupervisionVisible = false;
  1725. this.addPicPanel = false;
  1726. } else {
  1727. this.failInfo();
  1728. }
  1729. });
  1730. }, 1000)
  1731. })
  1732. }
  1733. });
  1734. },
  1735. // 删除图片文件
  1736. removeFile(id, index) {
  1737. var _self = this;
  1738. this.$confirm("此操作将永久删除该文件, 是否继续?", "提示", {
  1739. confirmButtonText: "确定",
  1740. cancelButtonText: "返回",
  1741. type: "warning"
  1742. }).then(
  1743. res => {
  1744. if (res === "confirm") {
  1745. deleteFileById(id, this.userId).then(res => {
  1746. if (res.success) {
  1747. this.fileListLength = 0;
  1748. this.fileList.forEach(item => {
  1749. if (
  1750. item.fileExt == "mp3" ||
  1751. item.fileExt == "MP3" ||
  1752. item.fileExt == "m4a"
  1753. ) {
  1754. this.audioArray.splice(index, 1);
  1755. } else if (
  1756. item.fileExt == "jpg" ||
  1757. item.fileExt == "JPG" ||
  1758. item.fileExt == "png" ||
  1759. item.fileExt == "PNG" ||
  1760. item.fileExt == "JPEG" ||
  1761. item.fileExt == "jpeg"
  1762. ) {
  1763. this.pictureArray.splice(index, 1);
  1764. } else if (item.fileExt == "mp4" || item.fileExt == "MP4") {
  1765. this.videoArray.splice(index, 1);
  1766. }
  1767. });
  1768. _self.changeSup(this.updateIdXiuGai, 'deleteUpdate');
  1769. } else {
  1770. this.failInfo();
  1771. }
  1772. });
  1773. }
  1774. },
  1775. res => {
  1776. console.log("返回");
  1777. }
  1778. );
  1779. },
  1780. changeSupervisionVisiblefalse() {
  1781. this.changeSupervisionVisible = false;
  1782. this.changeSupervision = {
  1783. dataStat: "",
  1784. nm: "",
  1785. endTime: "",
  1786. pblmId: "",
  1787. objId: "",
  1788. objType: "",
  1789. inspGroupId: "",
  1790. inspPblmCate: "",
  1791. inspPblmName: "",
  1792. inspPblmDesc: "",
  1793. pblmLong: "",
  1794. pblmLat: "",
  1795. pblmStat: "",
  1796. ifCasePblm: "",
  1797. inspPblmOrgName: "",
  1798. pblmPersName: "",
  1799. reviOpin: "",
  1800. reviConc: "",
  1801. reviOrgGuid: "",
  1802. collTime: "",
  1803. recPers: "",
  1804. note: "",
  1805. gwComFiles: [
  1806. {
  1807. id: "",
  1808. filePath: "",
  1809. bizId: ""
  1810. }
  1811. ]
  1812. };
  1813. this.$refs.uploadFile.init();
  1814. this.addPicPanel = false;
  1815. },
  1816. addPic() {
  1817. this.addPicPanel = !this.addPicPanel;
  1818. },
  1819. getproblemSmallType() {
  1820. let result = [];
  1821. request.get('/dc/insp/pblms/getPblmType', {
  1822. params: {
  1823. type: 1
  1824. }
  1825. }).then(res => {
  1826. if (res.success) {
  1827. res.data.forEach((ele) => {
  1828. let haveinspPblmsName = false;
  1829. result.forEach((inspPblm) => {
  1830. if (inspPblm['inspPblmsName'] == ele.inspPblmsName) {
  1831. //
  1832. let havechekPoint = false;
  1833. inspPblm['checkPoints'].forEach((chekPoint) => {
  1834. if (chekPoint['checkPointName'] == ele.checkPoint) {
  1835. //
  1836. chekPoint['pblmDescs'].push({
  1837. pblmDesc: ele.pblmDesc,
  1838. sn: ele.sn,
  1839. guid: ele.guid,
  1840. });
  1841. havechekPoint = true;
  1842. }
  1843. });
  1844. if (!havechekPoint) {
  1845. let newCheckPoint = {};
  1846. newCheckPoint['checkPointName'] = ele.checkPoint;
  1847. newCheckPoint['sort2'] = ele.sort2;
  1848. newCheckPoint['pblmDescs'] = [{
  1849. pblmDesc: ele.pblmDesc,
  1850. sn: ele.sn,
  1851. guid: ele.guid,
  1852. }]
  1853. inspPblm['checkPoints'].push(newCheckPoint);
  1854. }
  1855. haveinspPblmsName = true;
  1856. }
  1857. });
  1858. if (!haveinspPblmsName) {
  1859. let haveinspPblmsObj = {};
  1860. haveinspPblmsObj['inspPblmsName'] = ele.inspPblmsName;
  1861. haveinspPblmsObj['sort1'] = ele.sort1;
  1862. haveinspPblmsObj['checkPoints'] = [{
  1863. checkPointName: ele.checkPoint,
  1864. sort2: ele.sort2,
  1865. pblmDescs: [{
  1866. pblmDesc: ele.pblmDesc,
  1867. sn: ele.sn,
  1868. guid: ele.guid,
  1869. }]
  1870. }];
  1871. result.push(haveinspPblmsObj);
  1872. }
  1873. })
  1874. this.problemList = result;
  1875. console.log(this.problemList);
  1876. }
  1877. })
  1878. },
  1879. getYanZhongChengDu() {
  1880. request.post('/dc/insp/pblms/getByPblms', {
  1881. inspPblmsName: this.wenTiLeiBie,
  1882. checkPoint: this.jianChaXiangMu,
  1883. pblmDesc: this.t3.pblmDesc,
  1884. type: "1"
  1885. }).then(res => {
  1886. if (res.success) {
  1887. console.log("验证" + res);
  1888. this.changeSupervision.inspPblmCate = res.data.inspPblmCate;
  1889. this.changeSupervision.score = res.data.score;
  1890. }
  1891. })
  1892. },
  1893. problemListChange: function (item) {
  1894. this.t1 = item;// 解决问题编辑弹窗关闭后再打开问题类别展示第一次的问题类别 record by thy
  1895. this.wenTiLeiBie = item.inspPblmsName;
  1896. this.currentCheckPointList = item.checkPoints;
  1897. },
  1898. currentCheckPointListChange: function (item) {
  1899. this.jianChaXiangMu = item.checkPointName;
  1900. this.currentProblemDescList = item.pblmDescs;
  1901. },
  1902. currentProblemDescListChange: function (item) {
  1903. this.xiangqingmiaoshu = item.pblmDesc;
  1904. console.log(item);
  1905. },
  1906. // fileUpErr(err, file, fileList){
  1907. // this.$message.error("上传出错,请修改文件!");
  1908. // this.fileList = [];
  1909. // },
  1910. // fileSuccess(item){
  1911. // this.fileList.push(item.data);
  1912. // console.log(this.fileList);
  1913. // },
  1914. onChangeDialog() {
  1915. },
  1916. //
  1917. // addFile(file,fileList){
  1918. // this.fileListLength = fileList.length;
  1919. //
  1920. // },
  1921. // UploadUrl:function(){
  1922. // return `/pdcApi/file/insert?bizId=${this.changeSupervision.pblmId}`
  1923. // },
  1924. // beforeAvatarUpload(file) {
  1925. // console.log(file);
  1926. // }
  1927. },
  1928. watch: {
  1929. codeId: function () {
  1930. this.search();
  1931. },
  1932. 't1': {
  1933. handler: function (val, oldVal) {
  1934. this.getYanZhongChengDu()
  1935. },
  1936. deep: true
  1937. },
  1938. 't2': {
  1939. handler: function (val, oldVal) {
  1940. this.getYanZhongChengDu()
  1941. },
  1942. deep: true
  1943. },
  1944. 't3': {
  1945. handler: function (val, oldVal) {
  1946. this.getYanZhongChengDu()
  1947. },
  1948. deep: true
  1949. },
  1950. showExpandSearchPanel: function (val) {
  1951. if (val) {
  1952. this.tableHeight = window.innerHeight - 390;
  1953. } else {
  1954. this.tableHeight = window.innerHeight - 291;
  1955. }
  1956. }
  1957. },
  1958. };
  1959. </script>
  1960. <style rel="stylesheet/scss" lang="scss" scoped>
  1961. @import "./base.css";
  1962. @import url("/src/assets/iconfont/iconfont.css");
  1963. @import url("/src/assets/css/mixin.scss");
  1964. .upload-container {
  1965. width: 100%;
  1966. position: relative;
  1967. .image-uploader {
  1968. width: 35%;
  1969. float: left;
  1970. }
  1971. .image-preview {
  1972. width: 200px;
  1973. height: 200px;
  1974. position: relative;
  1975. border: 1px dashed #d9d9d9;
  1976. float: left;
  1977. // margin-left: 50px;
  1978. .image-preview-wrapper {
  1979. position: relative;
  1980. width: 100%;
  1981. height: 100%;
  1982. img {
  1983. width: 100%;
  1984. height: 100%;
  1985. }
  1986. }
  1987. .image-preview-action {
  1988. position: absolute;
  1989. width: 100%;
  1990. height: 100%;
  1991. left: 0;
  1992. top: 0;
  1993. cursor: default;
  1994. text-align: center;
  1995. color: #fff;
  1996. opacity: 0;
  1997. font-size: 20px;
  1998. background-color: rgba(0, 0, 0, 0.5);
  1999. transition: opacity 0.3s;
  2000. cursor: pointer;
  2001. text-align: center;
  2002. line-height: 200px;
  2003. .el-icon-delete {
  2004. font-size: 36px;
  2005. }
  2006. }
  2007. &:hover {
  2008. .image-preview-action {
  2009. opacity: 1;
  2010. }
  2011. }
  2012. }
  2013. .image-app-preview {
  2014. margin-bottom: 10px;
  2015. width: 40vh;
  2016. height: 180px;
  2017. position: relative;
  2018. border: 1px dashed #d9d9d9;
  2019. float: left;
  2020. // margin-left: 50px;
  2021. .app-fake-conver {
  2022. height: 44px;
  2023. position: absolute;
  2024. width: 100%; // background: rgba(0, 0, 0, .1);
  2025. text-align: center;
  2026. line-height: 64px;
  2027. color: #fff;
  2028. }
  2029. }
  2030. }
  2031. .bottom {
  2032. margin-top: 13px;
  2033. line-height: 12px;
  2034. }
  2035. .button {
  2036. padding: 0;
  2037. float: right;
  2038. }
  2039. .image {
  2040. width: 100%;
  2041. display: block;
  2042. }
  2043. .clearfix:before,
  2044. .clearfix:after {
  2045. display: table;
  2046. content: "";
  2047. }
  2048. .clearfix:after {
  2049. clear: both;
  2050. }
  2051. #wenTiContainer_sk .el-tree-node {
  2052. /* overflow: auto; */
  2053. }
  2054. #wenTiContainer_sk .el-tree-node > .el-tree-node__children {
  2055. overflow: auto;
  2056. }
  2057. .shuiku .el-date-editor.el-input {
  2058. min-width: 180px !important;
  2059. }
  2060. .shuiku .header {
  2061. padding: 0px 10px;
  2062. }
  2063. .shuiku .el-row {
  2064. margin-bottom: 5px;
  2065. }
  2066. .shuiku .content {
  2067. margin: 10px;
  2068. }
  2069. /* .search .el-table>>>.el-tooltip {
  2070. white-space: pre-wrap !important;
  2071. line-height: 30px;
  2072. font-size: 0;
  2073. } */
  2074. .shuiku .search > > > .el-table .el-button:nth-child(odd) {
  2075. margin-left: 0 !important;
  2076. }
  2077. .custom_dialog .el-dialog {
  2078. width: 60% !important;
  2079. }
  2080. .custom_dialog .scroll300 {
  2081. max-height: 60vh !important;
  2082. }
  2083. .scroll300 .el-form {
  2084. padding-top: 5px;
  2085. padding-right: 5px;
  2086. }
  2087. .shuiku .el-tag + .el-tag {
  2088. margin-left: 10px;
  2089. }
  2090. .shuiku .button-new-tag {
  2091. margin-left: 10px;
  2092. height: 28px;
  2093. line-height: 28px;
  2094. padding-top: 0;
  2095. padding-bottom: 0;
  2096. }
  2097. .shuiku .input-new-tag {
  2098. width: 90px;
  2099. margin-left: 10px;
  2100. vertical-align: bottom;
  2101. }
  2102. .inspPblmCate {
  2103. padding: 2px 10px;
  2104. border-radius: 10px;
  2105. color: #ffffff;
  2106. -webkit-border-radius: 10px;
  2107. -moz-border-radius: 10px;
  2108. border-radius: 10px;
  2109. }
  2110. #wenTiContainer_sk .el-select, #wenTiContainer_sk .el-input {
  2111. width: 140px !important;
  2112. }
  2113. .skactive {
  2114. background: #3f8eff !important;
  2115. color: white !important;
  2116. margin-top: 5px;
  2117. margin-bottom: 5px;
  2118. }
  2119. .sknormal {
  2120. background: white;
  2121. margin-top: 5px;
  2122. margin-bottom: 5px;
  2123. }
  2124. </style>