4d9a317ffa8eda3e711e6c3625ee23f6449fceed.svn-base 98 KB

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