1897c6736f2de94230fcbbb6961d2b27a720e504.svn-base 100 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193
  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. >导出问题清单表
  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. _self.total = res.data.total;
  1405. } else {
  1406. _self.failInfo();
  1407. }
  1408. });
  1409. });
  1410. },
  1411. async submitBtn() {
  1412. if (this.multipleSelection.length === 0) {
  1413. this.$message.warning('请至少选择一条问题');
  1414. return;
  1415. }
  1416. let newArray = this.multipleSelection.map((item) => {
  1417. return {
  1418. "objId": item.objId,
  1419. "objType": item.objType,
  1420. "state": "3"
  1421. }
  1422. });
  1423. const {success, message} = await pblmSubmit(newArray);
  1424. if (success) {
  1425. this.$message.success('问题发布成功');
  1426. this.search();
  1427. } else {
  1428. this.$message.warning(message);
  1429. }
  1430. },
  1431. toForm(){
  1432. var idArr = [];
  1433. if(this.multipleSelection && this.multipleSelection.length==0){
  1434. this.$message.warning("请选择数据");
  1435. return false;
  1436. }else{
  1437. this.multipleSelection.forEach((item)=>{
  1438. idArr.push(item.pblmId);
  1439. })
  1440. }
  1441. var ids = idArr.join(",");
  1442. let host = hostUrl;
  1443. let nginx = '/pageofficePath/';
  1444. let href = 'pageoffice://|' + host + nginx + '/pageoffice/pblm/list/word?ids='+ids+'&filename=pblm|width=1100px;height=800px;ismodal=false;||91A4EE66EC1921F376873E85D6C74FFA|A890649B44577C32CE1930797E1299F9';
  1445. let a = document.createElement('a'); // 创建a标签
  1446. a.setAttribute('href', href);// href链接
  1447. a.click();// 自执行点击事件
  1448. },
  1449. async exportExceltable(){
  1450. this.exportLoading = true;
  1451. let _self = this;
  1452. let data = _self.findParams
  1453. data.objType = "128";
  1454. data.orgIds = this.treeNodeArray.map(item => item.id).join(",");
  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. data.orgIds = this.treeNodeArray.map(item => item.id).join(",");
  1493. this.datas = JSON.stringify(data)
  1494. let url = "/pdcApi/dc/insp/pblm/genrl/export";
  1495. let type = "post";
  1496. let exportName = "问题列表.xls"
  1497. let result = await exportModel(type, url, exportName, this.datas);
  1498. _self.exportLoading = result;
  1499. },
  1500. async exportWord() {
  1501. let _self = this;
  1502. _self.exportLoading = true;
  1503. await request
  1504. .get("/dc/organization/base/getAllNode", {
  1505. params: {
  1506. userId: this.userId,
  1507. orgType: "001"
  1508. }
  1509. })
  1510. .then(res => {
  1511. let orgAllNode = res.data;
  1512. let data = _self.findParams;
  1513. data.pageNum = _self.currentPage;
  1514. data.pageSize = _self.pageSize;
  1515. data.villType = "0";
  1516. this.datas = data;
  1517. _self.treeNodeArray.forEach(item => {
  1518. if (item.id.length < 12) {
  1519. orgAllNode.forEach(orgItem => {
  1520. if (orgItem.id.startsWith(item.id)) {
  1521. _self.findUseOrgArray.push(orgItem.id);
  1522. }
  1523. });
  1524. } else {
  1525. _self.findUseOrgArray.push(item.id);
  1526. }
  1527. });
  1528. });
  1529. //下载word文档2
  1530. await request.post('/rever/doc', this.datas).then(res => {
  1531. if (res.success) {
  1532. console.log(this.response)
  1533. var a = document.createElement('a');
  1534. a.href = `${this.hostUrl}${res.data.downloadPath}`;
  1535. //设置文件名称
  1536. a.download = '小水库问题详情.doc';
  1537. a.click();
  1538. // window.open(`${this.hostUrl}${res.data.downloadPath}`)
  1539. _self.exportLoading = false;
  1540. } else {
  1541. _self.$mesage.error(res.message)
  1542. }
  1543. }).catch(res => {
  1544. _self.$mesage.error(res.message)
  1545. })
  1546. },
  1547. downFile(blob, fileName) {
  1548. // 非IE下载
  1549. if ("download" in document.createElement("a")) {
  1550. let link = document.createElement("a");
  1551. link.href = window.URL.createObjectURL(blob); // 创建下载的链接
  1552. link.download = fileName; // 下载后文件名
  1553. link.style.display = "none";
  1554. document.body.appendChild(link);
  1555. link.click(); // 点击下载
  1556. window.URL.revokeObjectURL(link.href); // 释放掉blob对象
  1557. document.body.removeChild(link); // 下载完成移除元素
  1558. } else {
  1559. // IE10+下载
  1560. window.navigator.msSaveBlob(blob, fileName);
  1561. }
  1562. },
  1563. async downloadTemplate() {
  1564. let url = '/pdcApi/dc/imp/skpblm/download?userId=' + this.userId + '&orgType=001';
  1565. let downloadName = "小水库问题.xls";
  1566. let type = "get";
  1567. await exportModel(type, url, downloadName);
  1568. this.uploadDisabled = false;
  1569. },
  1570. showPlDialog() {
  1571. this.showShuiKuTianBaoPl = true
  1572. },
  1573. closePlDialog(val) {
  1574. this.showShuiKuTianBaoPl = false
  1575. this.search();
  1576. },
  1577. handleSizeChange(pageSize) {
  1578. this.pageSize = pageSize;
  1579. this.search();
  1580. },
  1581. // 新增
  1582. getDuChaId() {
  1583. //新增中 获取督查对象id
  1584. getSupervisdByID(this.userid, 1).then(res => {
  1585. if (res.success) {
  1586. // alert(1)
  1587. this.listobjId = res.data;
  1588. } else {
  1589. this.failInfo();
  1590. }
  1591. });
  1592. },
  1593. // 取消
  1594. removeNewSupervision(arg) {
  1595. this.gwComFiles = [];
  1596. if (arg) {
  1597. this.gwComFiles = arg;
  1598. this.$refs.uploadFile.init();
  1599. }
  1600. },
  1601. // 详情弹框
  1602. showDetails(id) {
  1603. this.currentProblemId = id;
  1604. this.supervisionDetailsVisible = true;
  1605. // showDetailsXq(id).then(res => {
  1606. // this.supervisionDetails = res.data;
  1607. // this.supervisionDetailsVisible = true;
  1608. // });
  1609. },
  1610. // 删除弹窗
  1611. removeSuperviseOne(id) {
  1612. this.deleteId = id;
  1613. this.problemDeleteVisible = true;
  1614. // showDetailsXq(id).then(res => {
  1615. // // console.log("123" + res.data)
  1616. // this.persNameRen = res.data.persName;
  1617. // });
  1618. },
  1619. deleteSuccess() {
  1620. this.problemDeleteVisible = false;
  1621. this.search();
  1622. this.$emit("problemCount");
  1623. },
  1624. // 修改弹窗显示
  1625. changeSup(id, deleteUpdate) {
  1626. this.currentProblemId = '';
  1627. this.pictureArray = [];
  1628. this.audioArray = [];
  1629. this.videoArray = [];
  1630. this.fileArray = [];
  1631. this.updateIdXiuGai = id;
  1632. this.t1 = {};
  1633. showDetailsXq(this.updateIdXiuGai).then(res => {
  1634. this.changeSupervision = res.data;
  1635. this.fileList = this.changeSupervision.gwComFiles;
  1636. this.t1['inspPblmsName'] = this.changeSupervision.inspPblmName;
  1637. this.problemList.forEach(ele => {
  1638. if (ele.inspPblmsName == this.t1.inspPblmsName) {
  1639. this.problemListChange(ele)
  1640. }
  1641. })
  1642. this.t2['checkPointName'] = this.changeSupervision.checkPoint
  1643. this.currentCheckPointList.forEach(ele => {
  1644. if (ele.checkPointName == this.t2.checkPointName) {
  1645. this.currentCheckPointListChange(ele)
  1646. }
  1647. })
  1648. this.t3['pblmDesc'] = this.changeSupervision.pblmDesc;
  1649. console.log(this.t1, this.t2, this.t3);
  1650. this.changeSupervisionVisible = true;
  1651. // 当删掉最后一个多媒体文件后,更新一下提交信息(解决删掉多媒体文件后台没有更改状态的问题 record by wby)
  1652. if (deleteUpdate && !res.data.gwComFiles.length) {
  1653. this.changeSupervisionInfo()
  1654. }
  1655. res.data.gwComFiles.forEach(item => {
  1656. if (
  1657. item.fileExt == "mp3" ||
  1658. item.fileExt == "MP3" ||
  1659. item.fileExt == "m4a"
  1660. ) {
  1661. this.audioArray.push(item);
  1662. } else if (
  1663. item.fileExt == "jpg" ||
  1664. item.fileExt == "JPG" ||
  1665. item.fileExt == "png" ||
  1666. item.fileExt == "PNG" ||
  1667. item.fileExt == "JPEG" ||
  1668. item.fileExt == "jpeg"
  1669. ) {
  1670. this.pictureArray.push(item);
  1671. } else if (item.fileExt == "mp4" || item.fileExt == "MP4") {
  1672. this.videoArray.push({
  1673. id: item.id,
  1674. bizId: item.bizId,
  1675. width: "130",
  1676. height: "130",
  1677. autoplay: false,
  1678. muted: true,
  1679. language: "en",
  1680. playbackRates: [0.7, 1.0, 1.5, 2.0],
  1681. sources: [
  1682. {
  1683. type: "video/mp4",
  1684. // mp4
  1685. src: this.hostUrl + item.filePath
  1686. // webm
  1687. // src: "https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm"
  1688. }
  1689. ]
  1690. });
  1691. } else {
  1692. this.fileArray.push(item);
  1693. }
  1694. });
  1695. this.picturetabName = "图片资料(" + this.pictureArray.length + ")";
  1696. this.audiotabName = "音频资料(" + this.audioArray.length + ")";
  1697. this.videotabName = "视频资料(" + this.videoArray.length + ")";
  1698. this.filetabName = "其它资料(" + this.fileArray.length + ")";
  1699. });
  1700. },
  1701. // 提交修改信息
  1702. changeSupervisionInfo() {
  1703. this.$refs.changeSupFrom.validate(valid => {
  1704. if (valid) {
  1705. this.$nextTick(() => {
  1706. // this.changeSupervisionVisible = true;
  1707. this.buttonLoading = true;
  1708. setTimeout(() => {
  1709. this.changeSupervision.inspPblmsName = this.wenTiLeiBie;
  1710. this.changeSupervision.checkPoint = this.jianChaXiangMu;
  1711. this.changeSupervision.inspPblmName = this.wenTiLeiBie; //后台只需要这一个字段和问题id inspPblmsName和checkPoint可不传
  1712. this.changeSupervision.inspPlbmType = this.t2.sort2;
  1713. this.changeSupervision.inspPblmCode = this.t3.sn;
  1714. this.changeSupervision.pblmsTypeId = this.t3.guid;
  1715. let data = this.changeSupervision;
  1716. updatelist(data).then(res => {
  1717. this.pblmId = res.data.pblmId;
  1718. this.gwComFiles = res.data.gwComFiles;
  1719. if (res.success) {
  1720. if (this.$refs.uploadFile.submitUpload(this.changeSupervision.pblmId)) {
  1721. this.removeNewSupervision();
  1722. }
  1723. this.buttonLoading = false;
  1724. this.search();
  1725. this.changeSupervisionVisible = false;
  1726. this.addPicPanel = false;
  1727. } else {
  1728. this.failInfo();
  1729. }
  1730. });
  1731. }, 1000)
  1732. })
  1733. }
  1734. });
  1735. },
  1736. // 删除图片文件
  1737. removeFile(id, index) {
  1738. var _self = this;
  1739. this.$confirm("此操作将永久删除该文件, 是否继续?", "提示", {
  1740. confirmButtonText: "确定",
  1741. cancelButtonText: "返回",
  1742. type: "warning"
  1743. }).then(
  1744. res => {
  1745. if (res === "confirm") {
  1746. deleteFileById(id, this.userId).then(res => {
  1747. if (res.success) {
  1748. this.fileListLength = 0;
  1749. this.fileList.forEach(item => {
  1750. if (
  1751. item.fileExt == "mp3" ||
  1752. item.fileExt == "MP3" ||
  1753. item.fileExt == "m4a"
  1754. ) {
  1755. this.audioArray.splice(index, 1);
  1756. } else if (
  1757. item.fileExt == "jpg" ||
  1758. item.fileExt == "JPG" ||
  1759. item.fileExt == "png" ||
  1760. item.fileExt == "PNG" ||
  1761. item.fileExt == "JPEG" ||
  1762. item.fileExt == "jpeg"
  1763. ) {
  1764. this.pictureArray.splice(index, 1);
  1765. } else if (item.fileExt == "mp4" || item.fileExt == "MP4") {
  1766. this.videoArray.splice(index, 1);
  1767. }
  1768. });
  1769. _self.changeSup(this.updateIdXiuGai, 'deleteUpdate');
  1770. } else {
  1771. this.failInfo();
  1772. }
  1773. });
  1774. }
  1775. },
  1776. res => {
  1777. console.log("返回");
  1778. }
  1779. );
  1780. },
  1781. changeSupervisionVisiblefalse() {
  1782. this.changeSupervisionVisible = false;
  1783. this.changeSupervision = {
  1784. dataStat: "",
  1785. nm: "",
  1786. endTime: "",
  1787. pblmId: "",
  1788. objId: "",
  1789. objType: "",
  1790. inspGroupId: "",
  1791. inspPblmCate: "",
  1792. inspPblmName: "",
  1793. inspPblmDesc: "",
  1794. pblmLong: "",
  1795. pblmLat: "",
  1796. pblmStat: "",
  1797. ifCasePblm: "",
  1798. inspPblmOrgName: "",
  1799. pblmPersName: "",
  1800. reviOpin: "",
  1801. reviConc: "",
  1802. reviOrgGuid: "",
  1803. collTime: "",
  1804. recPers: "",
  1805. note: "",
  1806. gwComFiles: [
  1807. {
  1808. id: "",
  1809. filePath: "",
  1810. bizId: ""
  1811. }
  1812. ]
  1813. };
  1814. this.$refs.uploadFile.init();
  1815. this.addPicPanel = false;
  1816. },
  1817. addPic() {
  1818. this.addPicPanel = !this.addPicPanel;
  1819. },
  1820. getproblemSmallType() {
  1821. let result = [];
  1822. request.get('/dc/insp/pblms/getPblmType', {
  1823. params: {
  1824. type: 1
  1825. }
  1826. }).then(res => {
  1827. if (res.success) {
  1828. res.data.forEach((ele) => {
  1829. let haveinspPblmsName = false;
  1830. result.forEach((inspPblm) => {
  1831. if (inspPblm['inspPblmsName'] == ele.inspPblmsName) {
  1832. //
  1833. let havechekPoint = false;
  1834. inspPblm['checkPoints'].forEach((chekPoint) => {
  1835. if (chekPoint['checkPointName'] == ele.checkPoint) {
  1836. //
  1837. chekPoint['pblmDescs'].push({
  1838. pblmDesc: ele.pblmDesc,
  1839. sn: ele.sn,
  1840. guid: ele.guid,
  1841. });
  1842. havechekPoint = true;
  1843. }
  1844. });
  1845. if (!havechekPoint) {
  1846. let newCheckPoint = {};
  1847. newCheckPoint['checkPointName'] = ele.checkPoint;
  1848. newCheckPoint['sort2'] = ele.sort2;
  1849. newCheckPoint['pblmDescs'] = [{
  1850. pblmDesc: ele.pblmDesc,
  1851. sn: ele.sn,
  1852. guid: ele.guid,
  1853. }]
  1854. inspPblm['checkPoints'].push(newCheckPoint);
  1855. }
  1856. haveinspPblmsName = true;
  1857. }
  1858. });
  1859. if (!haveinspPblmsName) {
  1860. let haveinspPblmsObj = {};
  1861. haveinspPblmsObj['inspPblmsName'] = ele.inspPblmsName;
  1862. haveinspPblmsObj['sort1'] = ele.sort1;
  1863. haveinspPblmsObj['checkPoints'] = [{
  1864. checkPointName: ele.checkPoint,
  1865. sort2: ele.sort2,
  1866. pblmDescs: [{
  1867. pblmDesc: ele.pblmDesc,
  1868. sn: ele.sn,
  1869. guid: ele.guid,
  1870. }]
  1871. }];
  1872. result.push(haveinspPblmsObj);
  1873. }
  1874. })
  1875. this.problemList = result;
  1876. console.log(this.problemList);
  1877. }
  1878. })
  1879. },
  1880. getYanZhongChengDu() {
  1881. request.post('/dc/insp/pblms/getByPblms', {
  1882. inspPblmsName: this.wenTiLeiBie,
  1883. checkPoint: this.jianChaXiangMu,
  1884. pblmDesc: this.t3.pblmDesc,
  1885. type: "1"
  1886. }).then(res => {
  1887. if (res.success) {
  1888. console.log("验证" + res);
  1889. this.changeSupervision.inspPblmCate = res.data.inspPblmCate;
  1890. this.changeSupervision.score = res.data.score;
  1891. }
  1892. })
  1893. },
  1894. problemListChange: function (item) {
  1895. this.t1 = item;// 解决问题编辑弹窗关闭后再打开问题类别展示第一次的问题类别 record by thy
  1896. this.wenTiLeiBie = item.inspPblmsName;
  1897. this.currentCheckPointList = item.checkPoints;
  1898. },
  1899. currentCheckPointListChange: function (item) {
  1900. this.jianChaXiangMu = item.checkPointName;
  1901. this.currentProblemDescList = item.pblmDescs;
  1902. },
  1903. currentProblemDescListChange: function (item) {
  1904. this.xiangqingmiaoshu = item.pblmDesc;
  1905. console.log(item);
  1906. },
  1907. // fileUpErr(err, file, fileList){
  1908. // this.$message.error("上传出错,请修改文件!");
  1909. // this.fileList = [];
  1910. // },
  1911. // fileSuccess(item){
  1912. // this.fileList.push(item.data);
  1913. // console.log(this.fileList);
  1914. // },
  1915. onChangeDialog() {
  1916. },
  1917. //
  1918. // addFile(file,fileList){
  1919. // this.fileListLength = fileList.length;
  1920. //
  1921. // },
  1922. // UploadUrl:function(){
  1923. // return `/pdcApi/file/insert?bizId=${this.changeSupervision.pblmId}`
  1924. // },
  1925. // beforeAvatarUpload(file) {
  1926. // console.log(file);
  1927. // }
  1928. },
  1929. watch: {
  1930. codeId: function () {
  1931. this.search();
  1932. },
  1933. 't1': {
  1934. handler: function (val, oldVal) {
  1935. this.getYanZhongChengDu()
  1936. },
  1937. deep: true
  1938. },
  1939. 't2': {
  1940. handler: function (val, oldVal) {
  1941. this.getYanZhongChengDu()
  1942. },
  1943. deep: true
  1944. },
  1945. 't3': {
  1946. handler: function (val, oldVal) {
  1947. this.getYanZhongChengDu()
  1948. },
  1949. deep: true
  1950. },
  1951. showExpandSearchPanel: function (val) {
  1952. if (val) {
  1953. this.tableHeight = window.innerHeight - 390;
  1954. } else {
  1955. this.tableHeight = window.innerHeight - 291;
  1956. }
  1957. }
  1958. },
  1959. };
  1960. </script>
  1961. <style rel="stylesheet/scss" lang="scss" scoped>
  1962. @import "./base.css";
  1963. @import url("/src/assets/iconfont/iconfont.css");
  1964. @import url("/src/assets/css/mixin.scss");
  1965. .upload-container {
  1966. width: 100%;
  1967. position: relative;
  1968. .image-uploader {
  1969. width: 35%;
  1970. float: left;
  1971. }
  1972. .image-preview {
  1973. width: 200px;
  1974. height: 200px;
  1975. position: relative;
  1976. border: 1px dashed #d9d9d9;
  1977. float: left;
  1978. // margin-left: 50px;
  1979. .image-preview-wrapper {
  1980. position: relative;
  1981. width: 100%;
  1982. height: 100%;
  1983. img {
  1984. width: 100%;
  1985. height: 100%;
  1986. }
  1987. }
  1988. .image-preview-action {
  1989. position: absolute;
  1990. width: 100%;
  1991. height: 100%;
  1992. left: 0;
  1993. top: 0;
  1994. cursor: default;
  1995. text-align: center;
  1996. color: #fff;
  1997. opacity: 0;
  1998. font-size: 20px;
  1999. background-color: rgba(0, 0, 0, 0.5);
  2000. transition: opacity 0.3s;
  2001. cursor: pointer;
  2002. text-align: center;
  2003. line-height: 200px;
  2004. .el-icon-delete {
  2005. font-size: 36px;
  2006. }
  2007. }
  2008. &:hover {
  2009. .image-preview-action {
  2010. opacity: 1;
  2011. }
  2012. }
  2013. }
  2014. .image-app-preview {
  2015. margin-bottom: 10px;
  2016. width: 40vh;
  2017. height: 180px;
  2018. position: relative;
  2019. border: 1px dashed #d9d9d9;
  2020. float: left;
  2021. // margin-left: 50px;
  2022. .app-fake-conver {
  2023. height: 44px;
  2024. position: absolute;
  2025. width: 100%; // background: rgba(0, 0, 0, .1);
  2026. text-align: center;
  2027. line-height: 64px;
  2028. color: #fff;
  2029. }
  2030. }
  2031. }
  2032. .bottom {
  2033. margin-top: 13px;
  2034. line-height: 12px;
  2035. }
  2036. .button {
  2037. padding: 0;
  2038. float: right;
  2039. }
  2040. .image {
  2041. width: 100%;
  2042. display: block;
  2043. }
  2044. .clearfix:before,
  2045. .clearfix:after {
  2046. display: table;
  2047. content: "";
  2048. }
  2049. .clearfix:after {
  2050. clear: both;
  2051. }
  2052. #wenTiContainer_sk .el-tree-node {
  2053. /* overflow: auto; */
  2054. }
  2055. #wenTiContainer_sk .el-tree-node > .el-tree-node__children {
  2056. overflow: auto;
  2057. }
  2058. .shuiku .el-date-editor.el-input {
  2059. min-width: 180px !important;
  2060. }
  2061. .shuiku .header {
  2062. padding: 0px 10px;
  2063. }
  2064. .shuiku .el-row {
  2065. margin-bottom: 5px;
  2066. }
  2067. .shuiku .content {
  2068. margin: 10px;
  2069. }
  2070. /* .search .el-table>>>.el-tooltip {
  2071. white-space: pre-wrap !important;
  2072. line-height: 30px;
  2073. font-size: 0;
  2074. } */
  2075. .shuiku .search > > > .el-table .el-button:nth-child(odd) {
  2076. margin-left: 0 !important;
  2077. }
  2078. .custom_dialog .el-dialog {
  2079. width: 60% !important;
  2080. }
  2081. .custom_dialog .scroll300 {
  2082. max-height: 60vh !important;
  2083. }
  2084. .scroll300 .el-form {
  2085. padding-top: 5px;
  2086. padding-right: 5px;
  2087. }
  2088. .shuiku .el-tag + .el-tag {
  2089. margin-left: 10px;
  2090. }
  2091. .shuiku .button-new-tag {
  2092. margin-left: 10px;
  2093. height: 28px;
  2094. line-height: 28px;
  2095. padding-top: 0;
  2096. padding-bottom: 0;
  2097. }
  2098. .shuiku .input-new-tag {
  2099. width: 90px;
  2100. margin-left: 10px;
  2101. vertical-align: bottom;
  2102. }
  2103. .inspPblmCate {
  2104. padding: 2px 10px;
  2105. border-radius: 10px;
  2106. color: #ffffff;
  2107. -webkit-border-radius: 10px;
  2108. -moz-border-radius: 10px;
  2109. border-radius: 10px;
  2110. }
  2111. #wenTiContainer_sk .el-select, #wenTiContainer_sk .el-input {
  2112. width: 140px !important;
  2113. }
  2114. .skactive {
  2115. background: #3f8eff !important;
  2116. color: white !important;
  2117. margin-top: 5px;
  2118. margin-bottom: 5px;
  2119. }
  2120. .sknormal {
  2121. background: white;
  2122. margin-top: 5px;
  2123. margin-bottom: 5px;
  2124. }
  2125. </style>