0df4ee3b6a41b7805e2fa955aa1a41ef7be6bc70.svn-base 98 KB

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