2649d8d02b0d19b9e06075f5d67f8fb3bcd5d29a.svn-base 86 KB

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