0ce17529206c384b3b836ecebc2bd0807f5114e2.svn-base 108 KB

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