2831b10ee3b1ff76749ebd7e5b7e24fba07734d6.svn-base 54 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376
  1. <template>
  2. <div style="height:100%;width:100%" id="wenTiContainer_dxs">
  3. <el-container>
  4. <el-aside width="250px" style="border-right:2px solid #d5d5ff;float:left" :style="{'max-height':testHeight+'px','height':testHeight+'px'}">
  5. <div class="tree" style="
  6. height: 100%;
  7. width: 100%;
  8. overflow: auto;
  9. display: inline-flex;">
  10. <el-tree :highlight-current="true" style="height:100%;" :data="treeData" node-key="id" show-checkbox @check-change="handleCheckChange" ref="jigou_tree">
  11. <div class="custom-tree-node" slot-scope="{ node, data }">
  12. <span style="float:left;">{{ data.pnm}}
  13. </span>
  14. <div style="float:right;display: flex;justify-content: flex-end;align-items: center;width:50%;">
  15. <span style="color:blue;width:80px;"></span>
  16. </div>
  17. </div>
  18. </el-tree>
  19. </div>
  20. </el-aside>
  21. <el-main style='margin:0px;padding:0px;overflow-y:hidden;' class="shuiku">
  22. <!-- <el-card> -->
  23. <div class="pages" :style="{'max-height':testHeight+'px'}">
  24. <div style="padding: 10px 10px 0 10px;">
  25. <el-row type="flex" justify="space-bv-fortween">
  26. <el-col :span="24">
  27. <el-form :inline="true" size="mini" class="demo-form-inline" style="padding-left: 10px;">
  28. <el-form-item label="行政区划:">
  29. <el-input resize="none" type="input" :rows="3" placeholder="请输入行政区划名称" v-model.trim="findParams.adFullName" clearable></el-input>
  30. </el-form-item>
  31. <el-form-item label="测站名称:">
  32. <el-input resize="none" type="input" :rows="3" placeholder="请输入测站名称" v-model.trim="findParams.nm" clearable></el-input>
  33. </el-form-item>
  34. <el-form-item label="问题类别:">
  35. <el-select v-model="findParams.inspPblmName" clearable placeholder="请选择">
  36. <el-option v-for="item in leibie" :key="item.guid" :label="item.inspPblmsName" :value="item.inspPblmsName"></el-option>
  37. </el-select>
  38. </el-form-item>
  39. <el-form-item label="是否典型:">
  40. <el-select v-model="findParams.ifCasePblm" clearable placeholder="请选择">
  41. <el-option v-for="item in supervision" :key="item.value" :label="item.label" :value="item.value"></el-option>
  42. </el-select>
  43. </el-form-item>
  44. <el-form-item label="问题筛选:">
  45. <el-select v-model="pblscr" clearable placeholder="请选择">
  46. <el-option v-for="item in pblscrList" :key="item.value" :label="item.lable" :value="item.value"></el-option>
  47. </el-select>
  48. </el-form-item>
  49. <el-form-item label="上报人员:">
  50. <el-input resize="none" type="input" :rows="3" placeholder="请输入名称" v-model.trim="findParams.persName"></el-input>
  51. </el-form-item>
  52. <el-form-item label="所在组:">
  53. <el-input resize="none" type="input" :rows="3" placeholder="请输入所在组名称" v-model.trim="pblscrGroup" clearable></el-input>
  54. </el-form-item>
  55. <el-form-item label="是否包含多媒体文件:">
  56. <el-select v-model="findParams.hasVedio" clearable placeholder="请选择">
  57. <el-option
  58. v-for="item in hasVedio1"
  59. :key="item.value"
  60. :label="item.label"
  61. :value="item.value"
  62. ></el-option>
  63. </el-select>
  64. </el-form-item>
  65. <el-form-item label="发现时间:">
  66. <el-date-picker v-model="value6" type="daterange" value-format="yyyy-MM-dd" style="width:240px" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期">
  67. </el-date-picker>
  68. </el-form-item>
  69. <el-button style="float:right;margin-right:10px;" type="primary" icon="el-icon-search" @click="search">查询</el-button>
  70. </el-form>
  71. </el-col>
  72. </el-row>
  73. </div>
  74. <!-- 查询展示 -->
  75. <div style="margin-top:10px;">
  76. <el-table v-loading="loading" border ref="multipleTable" :data="searchResult" :height="tableHeight" tooltip-effect="dark" style="width: 100%" @selection-change="handleSelectionChange">
  77. <el-table-column align="center" type="index" label="序号" min-width="25">
  78. <template slot-scope="scope">{{ (currentPage - 1) * pageSize + (scope.$index + 1) }}</template>
  79. </el-table-column>
  80. <!-- <el-table-column header-align="center" align="center" min-width="140" prop="inspPblmName" label="小水库问题类别"></el-table-column> -->
  81. <el-table-column header-align="center" align="center" min-width="60" prop="province" label="省" v-if="isXj" show-overflow-tooltip></el-table-column>
  82. <!--<el-table-column header-align="center" align="center" min-width="60" prop="city" :label="ownAdName" show-overflow-tooltip></el-table-column>-->
  83. <el-table-column header-align="center" align="center" min-width="60" prop="country" label="县" v-if="isXj" show-overflow-tooltip></el-table-column>
  84. <el-table-column header-align="center" align="center" min-width="100" prop="nm" label="测站名称" show-overflow-tooltip></el-table-column>
  85. <el-table-column header-align="center" align="center" min-width="150" prop="inspPblmDesc" label="问题描述" show-overflow-tooltip>
  86. </el-table-column>
  87. <el-table-column header-align="center" align="center" min-width="60" prop="persName" label="上报人">
  88. </el-table-column>
  89. <el-table-column header-align="center" align="center" min-width="80" show-overflow-tooltip prop="orgNm" label="所在组">
  90. </el-table-column>
  91. <el-table-column prop="collTime" label="上报时间" :formatter="timestampToTime" sortable align="center" min-width="100" show-overflow-tooltip></el-table-column>
  92. <el-table-column header-align="center" align="center" min-width="150" prop="inspPblmName" label="问题类别" show-overflow-tooltip>
  93. </el-table-column>
  94. <el-table-column
  95. align="center"
  96. prop
  97. min-width="100"
  98. label="操作"
  99. show-overflow-tooltip
  100. fixed="right"
  101. >
  102. <template slot-scope="scope">
  103. <el-button icon="el-icon-view" title="查看详情"type="text" @click="showDetails(scope.row.pblmId)"></el-button>
  104. <!--<el-button icon="el-icon-edit" type="text" title="修改问题" @click="changeSup(scope.row.pblmId)"></el-button>-->
  105. <!--<el-button icon="el-icon-delete" type="text" title="删除问题" @click="removeSuperviseOne(scope.row.pblmId)"></el-button>-->
  106. <!-- <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>
  107. <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>
  108. <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> -->
  109. </template>
  110. </el-table-column>
  111. </el-table>
  112. <!-- 分页 -->
  113. <div class="paginationWarpper">
  114. <el-pagination
  115. class="paginationCenter"
  116. background
  117. @size-change="handleSizeChange"
  118. @current-change="search"
  119. :current-page.sync="currentPage"
  120. :page-sizes="[10, 20, 50, 100]"
  121. :page-size="pageSize"
  122. layout="total, sizes, prev, pager, next, jumper"
  123. :total="total"
  124. ></el-pagination>
  125. </div>
  126. </div>
  127. <!-- 详情弹框 -->
  128. <el-dialog class="outerDialog custom_dialog" title="问题详情" width="60%" :visible.sync="supervisionDetailsVisible" v-if="supervisionDetailsVisible">
  129. <supervision-details ref="xianqing" :problemId="currentProblemId"></supervision-details>
  130. <span slot="footer">
  131. <el-button style="margin-top:5px;" @click="supervisionDetailsVisible = false">返回</el-button>
  132. </span>
  133. </el-dialog>
  134. <!-- 删除的弹窗 -->
  135. <el-dialog class="deleteDialog" title="问题删除描述" :visible.sync="problemDeleteVisible">
  136. <Problem-delete ref="deleteMiaoShu" :deleteProblemId="deleteId" @deleteSuccess="deleteSuccess"></Problem-delete>
  137. <span slot="footer">
  138. <el-button @click="problemDeleteVisible = false">返回</el-button>
  139. </span>
  140. </el-dialog>
  141. <!-- 修改弹框 -->
  142. <el-dialog class="outerDialog custom_dialog" title="修改督查问题" width="60%" :close-on-click-modal="false" :visible.sync="changeSupervisionVisible">
  143. <div class="scroll300">
  144. <div style="width:49%;height:500px;float:left;border:1px solid #d5d5ff;margin-right:5px;">
  145. <p style="font-weight:bolder;background-color:#d5d5ff;padding:3px;">基本信息</p>
  146. <el-form ref="changeSupFrom" :rules="rules1" :model="changeSupervision" label-width="120px">
  147. <el-form-item label="测站名称" prop="nm">
  148. <el-input v-model="changeSupervision.nm" clearable readonly></el-input>
  149. </el-form-item>
  150. <el-form-item label="问题类别">
  151. <el-select v-model="changeSupervision.inspPblmName" clearable placeholder="请选择">
  152. <el-option v-for="(item,index) in leibie" :key="index" :label="item.inspPblmsName" :value="item.inspPblmsName"></el-option>
  153. </el-select>
  154. </el-form-item>
  155. <el-form-item label="检查项目">
  156. <el-select v-model="changeSupervision.inspPblmsName" clearable placeholder="请选择" @change="checkPointChange">
  157. <el-option v-for="item in checkPointList" :key="item" :label="item.inspPblmsName" :value="item.inspPblmsName"></el-option>
  158. </el-select>
  159. </el-form-item>
  160. <el-form-item label="问题描述">
  161. <el-input type="textarea" :rows="2" v-model="changeSupervision.inspPblmDesc" clearable></el-input>
  162. </el-form-item>
  163. <el-form-item label="是否为典型问题:">
  164. <el-select v-model="changeSupervision.ifCasePblm" clearable placeholder="请选择">
  165. <el-option v-for="item in supervision" :key="item.value" :label="item.label" :value="item.value"></el-option>
  166. </el-select>
  167. </el-form-item>
  168. <el-form-item label="整改意见" prop="note">
  169. <el-input type="textarea" :rows="2" v-model.trim="changeSupervision.note" clearable></el-input>
  170. </el-form-item>
  171. <el-form-item label="上报人" prop="persName">
  172. <el-input resize="none" type="input" :rows="3" placeholder="请输入" readonly v-model.trim="changeSupervision.persName"></el-input>
  173. </el-form-item>
  174. <el-form-item label="采集时间">
  175. <el-date-picker v-model="changeSupervision.collTime" type="date" readonly></el-date-picker>
  176. </el-form-item>
  177. </el-form>
  178. </div>
  179. <div style="width:49%;height: 500px;float:left;border:1px solid #d5d5ff;">
  180. <p style="font-weight:bolder;background-color:#d5d5ff;padding:3px;">多媒体信息</p>
  181. <el-tabs style="height: 300px;margin:0px 5px">
  182. <el-tab-pane :label="picturetabName" style="height: 300px;">
  183. <el-row style="text-align:right;">
  184. <el-button :v-if="!addPicPanel?addPicPanel:addPicPanel"
  185. size="mini"
  186. type="text"
  187. :icon="!addPicPanel?'el-icon-circle-plus-outline':'el-icon-circle-close-outline'"
  188. @click="addPic"
  189. >{{!addPicPanel?"添加":"取消"}}</el-button>
  190. </el-row>
  191. <el-row v-if="addPicPanel">
  192. <upload ref="uploadFile" :url="`/pdcApi/file/insert?bizId=`" @uploadOver="removeNewSupervision"></upload>
  193. </el-row>
  194. <el-row>
  195. <div style="overflow-y:auto;overflow-x:hidden;max-height:30vh;padding:10px;">
  196. <div class="upload-container">
  197. <div
  198. v-for="(item, index) in pictureArray"
  199. :key="index"
  200. class="image-preview image-app-preview"
  201. >
  202. <div class="image-preview-wrapper">
  203. <img :src="`${hostUrl}/${item.filePath}`">
  204. <div class="image-preview-action">
  205. <i @click="removeFile(item.id)" class="el-icon-delete"></i>
  206. </div>
  207. </div>
  208. </div>
  209. </div>
  210. </div>
  211. </el-row>
  212. </el-tab-pane>
  213. <el-tab-pane :label="audiotabName">
  214. <el-table border :data="audioArray" style="width: 100%;margin: 0 auto;">
  215. <el-table-column header-align="center" align="center" label="音频">
  216. <template slot-scope="scope">
  217. <elaudio style="margin-left:15%;width:100px;height:30px;" :theUrl="`${hostUrl}/${scope.row.filePath}`"></elaudio>
  218. <!-- <span>{{scope.row.fileTitle}}</span> -->
  219. </template>
  220. </el-table-column>
  221. <el-table-column header-align="center" align="center" label="操作">
  222. <template slot-scope="scope">
  223. <el-button size="mini" @click="removeFile(scope.row.id,scope.$index)" type="danger">删除</el-button>
  224. </template>
  225. </el-table-column>
  226. </el-table>
  227. </el-tab-pane>
  228. <el-tab-pane :label="videotabName">
  229. <el-table border :data="videoArray" style="width: 100%;margin: 0 auto;">
  230. <el-table-column header-align="center" align="center" label="视频">
  231. <template slot-scope="scope">
  232. <!-- <span>{{scope.row.fileTitle}}</span> -->
  233. <video-player class="vjs-custom-skin" ref="videoPlayer" :options="scope.row" :playsinline="true">
  234. </video-player>
  235. </template>
  236. </el-table-column>
  237. <el-table-column header-align="center" align="center" label="操作">
  238. <template slot-scope="scope">
  239. <el-button size="mini" @click="removeFile(scope.row.id,scope.$index)" type="danger">删除</el-button>
  240. </template>
  241. </el-table-column>
  242. </el-table>
  243. </el-tab-pane>
  244. </el-tabs>
  245. </div>
  246. <!-- <upload ref="changeUploadFile" :url="`/pdcApi/file/insert?bizId=`" @uploadOver="removeNewSupervision"></upload> -->
  247. </div>
  248. <span slot="footer">
  249. <el-button
  250. type="primary"
  251. @click="changeSupervisionInfo"
  252. >保存</el-button>
  253. <el-button @click="changeSupervisionVisiblefalse">取消</el-button>
  254. </span>
  255. </el-dialog>
  256. </div>
  257. <!-- </el-card> -->
  258. </el-main>
  259. </el-container>
  260. </div>
  261. </template>
  262. <script>
  263. import {
  264. findPageInfoShuiKu,
  265. getShuiKuWenTi,
  266. getXSKProblemNewExport,
  267. findPageInfo,
  268. getDXSProblemNew,
  269. removeSupervise,
  270. showDetailsXq,
  271. submitUpload,
  272. creatSupervise,
  273. getSupervisdByID,
  274. deleteFileById,
  275. updatelist,
  276. getEngId
  277. } from "../../api/duChaAPI.js";
  278. import request from '../../utils/gw_ajax_request.js'
  279. import { hostUrl } from "@util/global_variable.js";
  280. import elaudio from '../../widgets/elAudioShort.vue'
  281. import inuptWithDuChaTreeNode from '../../widgets/inuptWithDuChaTreeNode.vue'
  282. import inputWidthDuChaNodes from '../../widgets/inputWithDuChaNodes.vue'
  283. import inputWidthDuChaShuiKu from '../../widgets/inputWith_sk.vue'
  284. export default {
  285. props: ["codeId"],
  286. components: {
  287. upload: resolve => {
  288. require(["../../widgets/uploadFile.vue"], resolve);
  289. },
  290. //详情页
  291. supervisionDetails: resolve => {
  292. require(["./supervisionDetails_dxs.vue"], resolve);
  293. },
  294. // 删除描述页
  295. ProblemDelete: resolve => {
  296. require(["./problemDelete.vue"], resolve);
  297. },
  298. elaudio: elaudio,
  299. inuptWithDuChaTreeNode: inuptWithDuChaTreeNode,
  300. inputWidthDuChaNodes: inputWidthDuChaNodes,
  301. inputWidthDuChaShuiKu: inputWidthDuChaShuiKu,
  302. },
  303. data() {
  304. var validatePass1 = (rules1, value, callback) => {
  305. if (this.newSupervision.startTime > this.newSupervision.endTime) {
  306. callback(new Error("结束时间不能早于开始时间"));
  307. } else {
  308. callback();
  309. }
  310. };
  311. var validatePass2 = (rules1, value, callback) => {
  312. let startTime = this.changeSupervision.startTime.slice(0, 10);
  313. if (startTime > this.changeSupervision.endTime) {
  314. callback(new Error("结束时间不能早于开始时间"));
  315. } else {
  316. callback();
  317. }
  318. };
  319. var divisionList = (rules1, value, callback) => {
  320. if (this.newGroup.divisionList.length) {
  321. callback();
  322. } else {
  323. callback(new Error("至少要添加一个地区"));
  324. }
  325. };
  326. return {
  327. addPicPanel: false,
  328. tableHeight: window.innerHeight - 190,
  329. deleteId: "",
  330. treeNodeArray: [],
  331. treeNodeSelectVisible: false,
  332. adNodeArray: [],
  333. adNodeSelectVisible: false,
  334. areaSelectVisible: false,
  335. rsvrNodeArray: [],
  336. rsvrNodeSelectVisible: false,
  337. skSelectVisible: false,
  338. currentProblemId: '',
  339. updateIdXiuGai: '',
  340. rules1: {
  341. inspPblmName: [{
  342. required: true,
  343. message: "请输入问题名称",
  344. trigger: "blur"
  345. },
  346. {
  347. min: 1,
  348. max: 999,
  349. message: "不超过100字符",
  350. trigger: "blur"
  351. }
  352. ],
  353. inspPblmDesc: [{
  354. required: true,
  355. message: "请输入问题描述",
  356. trigger: "blur"
  357. }],
  358. recPers: [{
  359. required: true,
  360. message: "请输入记录人",
  361. trigger: "blur"
  362. },
  363. {
  364. min: 1,
  365. max: 999,
  366. message: "不超过100字符",
  367. trigger: "blur"
  368. }
  369. ],
  370. objType: [{
  371. required: true,
  372. message: "请选择督查对象类型",
  373. trigger: "change"
  374. }],
  375. objId: [{
  376. required: true,
  377. message: "请选择督查对象类型",
  378. trigger: "change"
  379. }],
  380. inspPblmType: [{
  381. required: true,
  382. message: "请选择督查问题类型",
  383. trigger: "change"
  384. }],
  385. dataStat: [{
  386. required: true,
  387. message: "请选择数据状态",
  388. trigger: "change"
  389. }],
  390. collTime: [{
  391. required: true,
  392. message: "请选择采集时间",
  393. trigger: "change"
  394. }],
  395. ifCasePblm: [{
  396. required: true,
  397. message: "请选择是否典型",
  398. trigger: "change"
  399. }],
  400. pblmStat: [{
  401. required: true,
  402. message: "请选择问题类型",
  403. trigger: "change"
  404. }],
  405. inspPblmCate: [{
  406. required: true,
  407. message: "请选择问题程度",
  408. trigger: "change"
  409. },
  410. {
  411. trigger: "change"
  412. }
  413. ]
  414. },
  415. testHeight: window.innerHeight,
  416. supervisionStateList: [{
  417. value: "0",
  418. label: "暂存"
  419. },
  420. {
  421. value: "1",
  422. label: "上报"
  423. },
  424. ],
  425. supervisionState: [{
  426. value: "0",
  427. label: "一般"
  428. },
  429. {
  430. value: "1",
  431. label: "较重"
  432. },
  433. {
  434. value: "2",
  435. label: "严重"
  436. }
  437. ],
  438. supervision: [{
  439. value: "1",
  440. label: "是"
  441. },
  442. {
  443. value: "0",
  444. label: "否"
  445. }
  446. ],
  447. findUseOrgArray: [],
  448. areaInputValue: {},
  449. memberInputValue: {},
  450. multipleSelection: [], // 已选
  451. selectionType: {
  452. remove: 0,
  453. befor: 0,
  454. now: 0,
  455. after: 0
  456. },
  457. // 根据客户点击的督查类型查找督查对象ID
  458. // 新增
  459. listobjId: [],
  460. userId: localStorage.getItem("userid"),
  461. treeData: [],
  462. // 修改督查
  463. pictureArray: [],
  464. audioArray: [],
  465. videoArray: [],
  466. audiotabName: "",
  467. videotabName: "",
  468. picturetabName: "",
  469. playerOptions: {
  470. height: '120',
  471. autoplay: true,
  472. muted: true,
  473. language: 'en',
  474. playbackRates: [0.7, 1.0, 1.5, 2.0],
  475. sources: [{
  476. type: "video/mp4",
  477. // mp4
  478. src: "http://vjs.zencdn.net/v/oceans.mp4",
  479. // webm
  480. // src: "https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm"
  481. },
  482. {
  483. type: "video/mp4",
  484. // mp4
  485. src: "http://vjs.zencdn.net/v/oceans.mp4",
  486. // webm
  487. // src: "https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm"
  488. },
  489. {
  490. type: "video/mp4",
  491. // mp4
  492. src: "http://vjs.zencdn.net/v/oceans.mp4",
  493. // webm
  494. // src: "https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm"
  495. },
  496. {
  497. type: "video/mp4",
  498. // mp4
  499. src: "http://vjs.zencdn.net/v/oceans.mp4",
  500. // webm
  501. // src: "https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm"
  502. }
  503. ],
  504. },
  505. changeSupervisionVisible: false,
  506. changeSupervisionLoading: false,
  507. changeSupervision: {
  508. nm: "",
  509. presId: localStorage.getItem('userid'),
  510. endTime: "",
  511. pblmId: "",
  512. objId: "",
  513. objType: "",
  514. inspGroupId: "",
  515. inspPblmName: "",
  516. inspPblmDesc: "",
  517. pblmLong: "",
  518. pblmLat: "",
  519. pblmStat: "",
  520. ifCasePblm: "",
  521. inspPblmOrgName: "",
  522. pblmPersName: "",
  523. inspPblmCate: "",
  524. reviOpin: "",
  525. reviConc: "",
  526. reviOrgGuid: "",
  527. collTime: "",
  528. recPers: "",
  529. gwComFiles: [{
  530. id: "",
  531. filePath: "",
  532. bizId: ""
  533. }]
  534. },
  535. // 文件弹框
  536. fileList: [], // 当前文件列表
  537. flash: false,
  538. // 督查类型
  539. supervisionTypeList: [{
  540. value: "5",
  541. label: "地下水"
  542. },
  543. ],
  544. leibie: [],
  545. checkPointList: [],
  546. // 查询
  547. value6: [],
  548. hasVedio1: [
  549. {
  550. value: "1",
  551. label: "是"
  552. },
  553. {
  554. value: "0",
  555. label: "否"
  556. }
  557. ],
  558. findParams: {
  559. hasVedio:"",
  560. adCode: "",
  561. pblmStat: "",
  562. inspPblmCate: "",
  563. ifCasePblm: "",
  564. nm: "",
  565. rsName: '',
  566. adFullName: '',
  567. startTime: '',
  568. endTime: '',
  569. objType: '5',
  570. inspPblmName: "",
  571. persId: localStorage.getItem('userid')
  572. },
  573. currentPage: 1, // 页码
  574. pageSize: 20, // 条数
  575. loading: false,
  576. total: 0, // 总数
  577. searchResult: [], // 结果
  578. crId: "", // 当前督查id
  579. // 督查详情
  580. userid: localStorage.getItem("userid"),
  581. supervisionDetailsVisible: false,
  582. problemDeleteVisible: false,
  583. supervisionDetails: {},
  584. pblmId: "",
  585. gwComFiles: [],
  586. pblscr: "",
  587. pblscrList: [{
  588. lable: '我的问题',
  589. value: localStorage.getItem("userid"),
  590. }, ],
  591. pblscrGroup: "",
  592. };
  593. },
  594. computed:{
  595. hostUrl(){
  596. return hostUrl
  597. }
  598. },
  599. created() {
  600. if (this.userId) {
  601. console.log("已经登录");
  602. this.search();
  603. } else {
  604. this.$router.push("/login");
  605. }
  606. this.getproblemSmallType();
  607. this.getLeftTreeData();
  608. },
  609. methods: {
  610. handleCheckChange(data, checked, indeterminate) {
  611. let cNarray = this.$refs['jigou_tree'].getCheckedNodes();
  612. console.log(cNarray);
  613. this.treeNodeArray = cNarray;
  614. },
  615. getLeftTreeData() {
  616. var _self = this;
  617. request.get('/dc/organization/base/getAllNode', {
  618. params: {
  619. 'userId': this.userId,
  620. 'orgType': '005'
  621. }
  622. }).then((res) => {
  623. let data = res.data
  624. data.forEach(ele => {
  625. if (ele.pid == null || ele.pid == '') {
  626. ele.pid = '005'
  627. }
  628. });
  629. data = _self.getTrees(data)
  630. _self.treeData = data;
  631. console.log(data);
  632. // _self.duChaType = _self.treeData[0].id.substring(2,3);
  633. })
  634. },
  635. //格式化树形数据
  636. getTrees(list) {
  637. //@wxcwater重写方法 适应多个树
  638. let highLevelLength = 99;//预设最大节点id长度,目前最大应该为12,所以设置为99保证正常
  639. let _self =this;
  640. list.forEach((item,index)=>{
  641. item['pidLength'] = item.pid&&item.pid!=''?item.pid.length:0;
  642. if(highLevelLength>item.pidLength){
  643. highLevelLength = item.pidLength;
  644. }
  645. });
  646. console.log(highLevelLength);
  647. let heightLevelNode = [];
  648. list.forEach((item,index)=>{
  649. if(highLevelLength>=item.pidLength){
  650. heightLevelNode.push(item);
  651. }
  652. });
  653. list.forEach((item,index)=>{
  654. heightLevelNode.forEach((pItem)=>{
  655. _self.addTreeNode(pItem,item);
  656. });
  657. });
  658. console.log(heightLevelNode);
  659. return heightLevelNode;
  660. },
  661. addTreeNode:function(treeNode,leafNode){
  662. let _self = this;
  663. if(!treeNode.hasOwnProperty('children')){
  664. treeNode['children'] = [];
  665. }
  666. if(leafNode.pid == treeNode.id){
  667. treeNode.children.push(leafNode);
  668. return;
  669. }
  670. treeNode.children.forEach((item) => {
  671. _self.addTreeNode(item,leafNode);
  672. });
  673. },
  674. // 查询参数逻辑
  675. insertTreeNode: function (params) {
  676. this.treeNodeArray.push({
  677. name: params.name,
  678. code: params.code,
  679. });
  680. this.treeNodeSelectVisible = false;
  681. this.areaSelectVisible = false;
  682. this.skSelectVisible = false;
  683. },
  684. deleteTreeNode: function (tag) {
  685. let deleteIndex;
  686. this.treeNodeArray.forEach((item, index) => {
  687. if (item.code == tag.code) {
  688. deleteIndex = index;
  689. }
  690. });
  691. this.treeNodeArray.splice(deleteIndex, 1);
  692. },
  693. selectDuChaAreaNode(params) {
  694. this.adNodeArray.push(params);
  695. this.areaSelectVisible = false;
  696. this.skSelectVisible = false;
  697. },
  698. deleteAreaNode(tag) {
  699. let deleteIndex;
  700. this.adNodeArray.forEach((item, index) => {
  701. if (item.adCode == tag.adCode) {
  702. deleteIndex = index;
  703. return
  704. }
  705. });
  706. this.adNodeArray.splice(deleteIndex, 1);
  707. },
  708. selectSkNode(params) {
  709. this.rsvrNodeArray.push(params);
  710. this.skSelectVisible = false;
  711. },
  712. deleteSkNode(tag) {
  713. let deleteIndex;
  714. this.rsvrNodeArray.forEach((item, index) => {
  715. if (item.rsCode == tag.rsCode) {
  716. deleteIndex = index;
  717. return
  718. }
  719. });
  720. this.rsvrNodeArray.splice(deleteIndex, 1);
  721. },
  722. // end
  723. handleClose(tag) {
  724. this.dynamicTags.splice(this.dynamicTags.indexOf(tag), 1);
  725. },
  726. showInput() {
  727. this.inputVisible = true;
  728. this.$nextTick(_ => {
  729. this.$refs.saveTagInput.$refs.input.focus();
  730. });
  731. },
  732. // 操作成功反馈
  733. successInfo() {
  734. this.$message({
  735. type: "success",
  736. message: "操作成功!"
  737. });
  738. },
  739. // 操作失败反馈
  740. failInfo(val) {
  741. this.$message.error(val);
  742. },
  743. // 清空选择
  744. toggleSelection(rows) {
  745. this.$refs.multipleTable.clearSelection();
  746. },
  747. // 已选择项
  748. handleSelectionChange(val) {
  749. this.multipleSelection = val;
  750. },
  751. // 文件上传
  752. submitUpload() {
  753. this.$refs.upload.submit();
  754. },
  755. handleRemove(file, fileList) {
  756. console.log(file, fileList);
  757. },
  758. handlePreview(file) {
  759. console.log(file);
  760. },
  761. // 查询
  762. search() {
  763. this.loading = true;
  764. let _self = this;
  765. request.get('/dc/organization/base/getAllNode', {
  766. params: {
  767. 'userId': this.userId,
  768. 'orgType': '005'
  769. }
  770. }).then((res) => {
  771. let orgAllNode = res.data
  772. _self.loading = true;
  773. let data = _self.findParams;
  774. data.startTime=this.value6[0];
  775. data.endTime=this.value6[1];
  776. data.pageNum = _self.currentPage;
  777. data.recPers = _self.pblscr;
  778. data.orgNm = _self.pblscrGroup;
  779. data.pageSize = _self.pageSize;
  780. _self.findUseOrgArray = [];
  781. _self.treeNodeArray.forEach((item) => {
  782. if (item.id.length < 12) {
  783. orgAllNode.forEach((orgItem) => {
  784. if (orgItem.id.startsWith(item.code)) {
  785. _self.findUseOrgArray.push(orgItem.id);
  786. }
  787. });
  788. }
  789. _self.findUseOrgArray.push(item.id);
  790. });
  791. if (_self.findUseOrgArray.length > 0) {
  792. data['orgIds'] = _self.findUseOrgArray.join(',');
  793. } else {
  794. data['orgIds'] = '';
  795. }
  796. getDXSProblemNew(data).then(res => {
  797. _self.loading = false;
  798. _self.multipleSelection = [];
  799. if (res.success) {
  800. _self.searchResult = res.data.list;
  801. _self.total = res.data.total;
  802. } else {
  803. _self.failInfo();
  804. }
  805. });
  806. })
  807. },
  808. exportExcel() {
  809. let _self = this;
  810. request.get('/dc/organization/base/getAllNode', {
  811. params: {
  812. 'userId': this.userId,
  813. 'orgType': '005'
  814. }
  815. }).then((res) => {
  816. let orgAllNode = res.data
  817. let data = _self.findParams;
  818. data.pageNum = _self.currentPage;
  819. data.pageSize = _self.pageSize;
  820. _self.treeNodeArray.forEach((item) => {
  821. console.log(item)
  822. if (item.id.length < 12) {
  823. orgAllNode.forEach((orgItem) => {
  824. if (orgItem.id.startsWith(item.id)) {
  825. _self.findUseOrgArray.push(orgItem.id);
  826. }
  827. });
  828. } else {
  829. _self.findUseOrgArray.push(item.id);
  830. }
  831. });
  832. var xhr = new XMLHttpRequest();
  833. xhr.open('post', '/pdcApi/dc/insp/pblm/page/grw/export', true);
  834. xhr.responseType = 'blob';
  835. xhr.setRequestHeader('Content-Type', 'application/json;charset=utf-8');
  836. xhr.setRequestHeader('persId', localStorage.getItem('userid') ? localStorage.getItem('userid') : '');
  837. xhr.onload = function () {
  838. if (this.status == 200) {
  839. var blob = this.response;
  840. var a = document.createElement('a');
  841. var url = window.URL.createObjectURL(blob);
  842. a.href = url;
  843. //设置文件名称
  844. a.download = '地下水问题列表.xls';
  845. a.click();
  846. }
  847. }
  848. xhr.send(JSON.stringify(data));
  849. })
  850. },
  851. exportWord() {
  852. let _self = this;
  853. request.get('/dc/organization/base/getAllNode', {
  854. params: {
  855. 'userId': this.userId,
  856. 'orgType': '005'
  857. }
  858. }).then((res) => {
  859. let orgAllNode = res.data
  860. let data = _self.findParams;
  861. data.pageNum = _self.currentPage;
  862. data.pageSize = _self.pageSize;
  863. _self.treeNodeArray.forEach((item) => {
  864. console.log(item)
  865. if (item.id.length < 12) {
  866. orgAllNode.forEach((orgItem) => {
  867. if (orgItem.id.startsWith(item.id)) {
  868. _self.findUseOrgArray.push(orgItem.id);
  869. }
  870. });
  871. } else {
  872. _self.findUseOrgArray.push(item.id);
  873. }
  874. });
  875. //下载word文档2
  876. request.post('/grw/doc',data).then(res=>{
  877. if(res.success){
  878. console.log(this.response)
  879. var a = document.createElement('a');
  880. a.href = `${this.hostUrl}${res.data.downloadPath}`;
  881. //设置文件名称
  882. a.download = '地下水问题详情.doc';
  883. a.click();
  884. // window.open(`${this.hostUrl}${res.data.downloadPath}`)
  885. }else{
  886. _self.$mesage.error(res.message)
  887. }
  888. }).catch(res=>{
  889. _self.$mesage.error(res.message)
  890. })
  891. })
  892. },
  893. downFile(blob, fileName) {
  894. // 非IE下载
  895. if ('download' in document.createElement('a')) {
  896. let link = document.createElement('a');
  897. link.href = window.URL.createObjectURL(blob); // 创建下载的链接
  898. link.download = fileName; // 下载后文件名
  899. link.style.display = 'none';
  900. document.body.appendChild(link);
  901. link.click(); // 点击下载
  902. window.URL.revokeObjectURL(link.href); // 释放掉blob对象
  903. document.body.removeChild(link); // 下载完成移除元素
  904. } else {
  905. // IE10+下载
  906. window.navigator.msSaveBlob(blob, fileName);
  907. }
  908. },
  909. handleSizeChange(pageSize) {
  910. this.pageSize = pageSize;
  911. this.search();
  912. },
  913. // 新增
  914. getDuChaId() {
  915. //新增中 获取督查对象id
  916. getSupervisdByID(this.userid, 5).then(res => {
  917. if (res.success) {
  918. // alert(1)
  919. this.listobjId = res.data;
  920. } else {
  921. this.failInfo();
  922. }
  923. });
  924. },
  925. // 取消
  926. removeNewSupervision(arg) {
  927. if (arg) {
  928. console.log(arg);
  929. var args = this.gwComFiles.concat(arg);
  930. this.updatefilelist(args);
  931. }
  932. this.search();
  933. this.gwComFiles = [];
  934. this.newSupervisionVisible = false;
  935. this.changeSupervisionVisible = false;
  936. this.newSupervision = {
  937. id: "",
  938. checkPoint: "",
  939. presId: localStorage.getItem('userid'),
  940. dataStat: "",
  941. nm: "",
  942. endTime: "",
  943. pblmId: "",
  944. objId: "",
  945. objType: "",
  946. inspGroupId: "",
  947. inspPblmCate: "",
  948. inspPblmName: "",
  949. inspPblmDesc: "",
  950. pblmLong: "",
  951. pblmLat: "",
  952. pblmStat: "",
  953. ifCasePblm: "",
  954. inspPblmOrgName: "",
  955. pblmPersName: "",
  956. inspPblmCate: "",
  957. reviOpin: "",
  958. reviConc: "",
  959. reviOrgGuid: "",
  960. collTime: "",
  961. recPers: "",
  962. note: ""
  963. };
  964. // this.$refs.uploadFile.init();
  965. },
  966. // 详情弹框
  967. showDetails(id) {
  968. this.currentProblemId = id;
  969. this.supervisionDetailsVisible = true;
  970. },
  971. // 删除弹窗
  972. removeSuperviseOne(id) {
  973. this.deleteId = id;
  974. this.problemDeleteVisible = true;
  975. },
  976. deleteSuccess() {
  977. this.problemDeleteVisible = false;
  978. this.search();
  979. this.$emit('problemCount')
  980. },
  981. // 修改弹窗显示
  982. changeSup(id) {
  983. this.pictureArray = [];
  984. this.audioArray = [];
  985. this.videoArray = [];
  986. this.updateIdXiuGai = id;
  987. showDetailsXq(this.updateIdXiuGai).then(res => {
  988. // if(this.usersId==)
  989. this.changeSupervision = res.data;
  990. this.changeSupervisionVisible = true;
  991. res.data.gwComFiles.forEach(
  992. (item) => {
  993. if (item.fileExt == 'mp3' || item.fileExt == 'MP3'||item.fileExt == 'm4a') {
  994. this.audioArray.push(item);
  995. } else if (item.fileExt == 'jpg' || item.fileExt == 'JPEG' || item.fileExt == 'jpeg' || item.fileExt == 'JPG' || item.fileExt == 'png' || item.fileExt == 'PNG') {
  996. this.pictureArray.push(item);
  997. } else if (item.fileExt == 'mp4' || item.fileExt == 'MP4') {
  998. this.videoArray.push({
  999. width: '130',
  1000. height: '130',
  1001. autoplay: false,
  1002. muted: true,
  1003. language: 'en',
  1004. playbackRates: [0.7, 1.0, 1.5, 2.0],
  1005. sources: [{
  1006. type: "video/mp4",
  1007. // mp4
  1008. src: this.hostUrl + item.filePath,
  1009. // webm
  1010. // src: "https://cdn.theguardian.tv/webM/2015/07/20/150716YesMen_synd_768k_vp8.webm"
  1011. }],
  1012. }, );
  1013. }
  1014. }
  1015. );
  1016. this.picturetabName = "图片资料(" + this.pictureArray.length + ")";
  1017. this.audiotabName = "音频资料(" + this.audioArray.length + ")";
  1018. this.videotabName = "视频资料(" + this.videoArray.length + ")";
  1019. });
  1020. },
  1021. // 提交修改信息
  1022. changeSupervisionInfo() {
  1023. this.changeSupervisionVisible = true;
  1024. this.$refs.changeSupFrom.validate(valid => {
  1025. if (valid) {
  1026. this.changeSupervisionLoading = true;
  1027. let data = this.changeSupervision;
  1028. updatelist(data).then(res => {
  1029. this.pblmId = res.data.pblmId;
  1030. this.gwComFiles = res.data.gwComFiles;
  1031. this.changeSupervisionLoading = false;
  1032. if (res.success) {
  1033. this.removeNewSupervision();
  1034. this.successInfo()
  1035. if (this.$refs.uploadFile.submitUpload(data.pblmId)) {
  1036. this.removeNewSupervision();
  1037. this.successInfo();
  1038. }
  1039. } else {
  1040. this.failInfo();
  1041. }
  1042. });
  1043. }
  1044. });
  1045. },
  1046. // 时间格式化
  1047. timestampToTime(row, column) {
  1048. var date = new Date(row.collTime);
  1049. var Y = date.getFullYear() + "-";
  1050. var M =
  1051. (date.getMonth() + 1 < 10 ?
  1052. "0" + (date.getMonth() + 1) :
  1053. "0" + date.getMonth() + 1) + "-";
  1054. var D =
  1055. (date.getDate() < 10 ? "0" + date.getDate() : date.getDate()) + " ";
  1056. var h =
  1057. (date.getHours() < 10 ? "0" + date.getHours() : date.getHours()) + ":";
  1058. var m =
  1059. date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes();
  1060. return Y + M + D;
  1061. },
  1062. // 删除图片文件
  1063. removeFile(id, index) {
  1064. this.$confirm("此操作将永久删除该文件, 是否继续?", "提示", {
  1065. confirmButtonText: "确定",
  1066. cancelButtonText: "返回",
  1067. type: "warning"
  1068. }).then(
  1069. res => {
  1070. if (res === "confirm") {
  1071. deleteFileById(id, this.userId).then(res => {
  1072. if (res.success) {
  1073. // this.changeSupervision.gwComFiles.splice(index, 1);
  1074. this.changeSupervision.gwComFiles.forEach((item) => {
  1075. if (item.fileExt == 'mp3' || item.fileExt == 'MP3'||item.fileExt == 'm4a') {
  1076. this.audiotabName.splice(index, 1)
  1077. } else if (item.fileExt == 'jpg' || item.fileExt == 'JPEG' || item.fileExt == 'jpeg' || item.fileExt == 'JPG' || item.fileExt == 'png' || item.fileExt == 'PNG') {
  1078. this.pictureArray.splice(index, 1)
  1079. } else if (item.fileExt == 'mp4' || item.fileExt == 'MP4') {
  1080. this.videoArray.splice(index, 1)
  1081. }
  1082. })
  1083. } else {
  1084. this.failInfo();
  1085. }
  1086. });
  1087. }
  1088. },
  1089. res => {
  1090. console.log("返回");
  1091. }
  1092. );
  1093. },
  1094. changeSupervisionVisiblefalse() {
  1095. this.$nextTick(() => {
  1096. if (this.flash) {
  1097. this.flash = false;
  1098. this.search();
  1099. }
  1100. });
  1101. this.changeSupervisionVisible = false;
  1102. this.changeSupervision = {
  1103. dataStat: "",
  1104. nm: "",
  1105. endTime: "",
  1106. pblmId: "",
  1107. objId: "",
  1108. objType: "",
  1109. inspGroupId: "",
  1110. inspPblmCate: "",
  1111. inspPblmName: "",
  1112. inspPblmDesc: "",
  1113. pblmLong: "",
  1114. pblmLat: "",
  1115. pblmStat: "",
  1116. ifCasePblm: "",
  1117. inspPblmOrgName: "",
  1118. pblmPersName: "",
  1119. inspPblmCate: "",
  1120. reviOpin: "",
  1121. reviConc: "",
  1122. reviOrgGuid: "",
  1123. collTime: "",
  1124. recPers: "",
  1125. note: "",
  1126. gwComFiles: [{
  1127. id: "",
  1128. filePath: "",
  1129. bizId: ""
  1130. }]
  1131. };
  1132. // this.$refs.changeUploadFile.init();
  1133. },
  1134. //地下水查询下拉框数据
  1135. getproblemSmallType() {
  1136. request.get('/dc/insp/pblms/getPblmType', {
  1137. params: {
  1138. type: 5
  1139. }
  1140. }).then(res => {
  1141. if (res.success) {
  1142. this.leibie = res.data;
  1143. }
  1144. })
  1145. },
  1146. addPic() {
  1147. this.addPicPanel = !this.addPicPanel;
  1148. },
  1149. getCheckPointPblm(guid){
  1150. let _this = this
  1151. request.get('/dc/insp/pblms/getPblmType',{params:{'type':5,'pguid':guid}}).then(res=>{
  1152. if(res.success){
  1153. _this.checkPointList = res.data
  1154. }
  1155. })
  1156. },
  1157. checkPointChange(val){
  1158. this.checkPointList.forEach(ele=>{
  1159. if(ele.inspPblmsName == this.changeSupervision.inspPblmsName){
  1160. this.changeSupervision.pblmsTypeId = ele.guid
  1161. this.changeSupervision.checkPoint = ele.inspPblmsName
  1162. }
  1163. })
  1164. }
  1165. },
  1166. watch: {
  1167. codeId: function () {
  1168. this.search()
  1169. },
  1170. 'changeSupervision.inspPblmName':{
  1171. deep:true,
  1172. handler(val){
  1173. this.leibie.forEach(ele=>{
  1174. if(val == ele.inspPblmsName){
  1175. this.getCheckPointPblm(ele.guid)
  1176. }
  1177. })
  1178. }
  1179. }
  1180. }
  1181. };
  1182. </script>
  1183. <style lang="scss" >
  1184. @import "./base.css";
  1185. @import url("/src/assets/iconfont/iconfont.css");
  1186. .el-form-item--mini.el-form-item, {
  1187. margin-bottom: 8px;
  1188. }
  1189. .el-table__header tr,
  1190. .el-table__header th {
  1191. padding: 0;
  1192. height: 35px;
  1193. }
  1194. .upload-container {
  1195. width: 100%;
  1196. position: relative;
  1197. .image-uploader {
  1198. width: 35%;
  1199. float: left;
  1200. }
  1201. .image-preview {
  1202. width: 200px;
  1203. height: 200px;
  1204. position: relative;
  1205. border: 1px dashed #d9d9d9;
  1206. float: left;
  1207. // margin-left: 50px;
  1208. .image-preview-wrapper {
  1209. position: relative;
  1210. width: 100%;
  1211. height: 100%;
  1212. img {
  1213. width: 100%;
  1214. height: 100%;
  1215. }
  1216. }
  1217. .image-preview-action {
  1218. position: absolute;
  1219. width: 100%;
  1220. height: 100%;
  1221. left: 0;
  1222. top: 0;
  1223. cursor: default;
  1224. text-align: center;
  1225. color: #fff;
  1226. opacity: 0;
  1227. font-size: 20px;
  1228. background-color: rgba(0, 0, 0, 0.5);
  1229. transition: opacity 0.3s;
  1230. cursor: pointer;
  1231. text-align: center;
  1232. line-height: 200px;
  1233. .el-icon-delete {
  1234. font-size: 36px;
  1235. }
  1236. }
  1237. &:hover {
  1238. .image-preview-action {
  1239. opacity: 1;
  1240. }
  1241. }
  1242. }
  1243. .image-app-preview {
  1244. margin-bottom: 10px;
  1245. width: 40vh;
  1246. height: 180px;
  1247. position: relative;
  1248. border: 1px dashed #d9d9d9;
  1249. float: left;
  1250. // margin-left: 50px;
  1251. .app-fake-conver {
  1252. height: 44px;
  1253. position: absolute;
  1254. width: 100%; // background: rgba(0, 0, 0, .1);
  1255. text-align: center;
  1256. line-height: 64px;
  1257. color: #fff;
  1258. }
  1259. }
  1260. }
  1261. #wenTiContainer_sk .el-tree-node {
  1262. /* overflow: auto; */
  1263. }
  1264. #wenTiContainer_sk .el-tree-node>.el-tree-node__children {
  1265. overflow: auto;
  1266. }
  1267. .shuiku .el-date-editor.el-input {
  1268. min-width: 180px !important;
  1269. }
  1270. .shuiku .header {
  1271. padding: 0px 10px;
  1272. }
  1273. .shuiku .el-row {
  1274. margin-bottom: 5px;
  1275. }
  1276. .shuiku .content {
  1277. margin: 10px;
  1278. }
  1279. /* .search .el-table>>>.el-tooltip {
  1280. white-space: pre-wrap !important;
  1281. line-height: 30px;
  1282. font-size: 0;
  1283. } */
  1284. .shuiku .search>>>.el-table .el-button:nth-child(odd) {
  1285. margin-left: 0 !important;
  1286. }
  1287. .custom_dialog .el-dialog {
  1288. width: 60% !important;
  1289. }
  1290. .custom_dialog .scroll300 {
  1291. max-height: 340px !important;
  1292. }
  1293. .scroll300 .el-form{
  1294. padding-top: 5px;
  1295. padding-right: 5px;
  1296. }
  1297. .shuiku .el-tag+.el-tag {
  1298. margin-left: 10px;
  1299. }
  1300. .shuiku .button-new-tag {
  1301. margin-left: 10px;
  1302. height: 28px;
  1303. line-height: 28px;
  1304. padding-top: 0;
  1305. padding-bottom: 0;
  1306. }
  1307. .shuiku .input-new-tag {
  1308. width: 90px;
  1309. margin-left: 10px;
  1310. vertical-align: bottom;
  1311. }
  1312. .pages .el-select, .pages .el-input {
  1313. width: 100px;
  1314. }
  1315. #wenTiContainer_dxs .el-dialog {
  1316. width: 72% !important;
  1317. }
  1318. </style>