h115.vue 65 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492
  1. <template>
  2. <div class="app-container">
  3. <el-form :model="queryParams" ref="queryForm" :inline="true" v-show="showSearch" label-width="68px">
  4. <el-form-item label="巡检日期" prop="recordTime">
  5. <el-date-picker
  6. v-model="queryParams.recordTime"
  7. type="month"
  8. value-format="yyyy-MM"
  9. placeholder="选择巡检日期">
  10. </el-date-picker>
  11. </el-form-item>
  12. <el-form-item>
  13. <el-button type="cyan" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
  14. <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
  15. </el-form-item>
  16. </el-form>
  17. <el-row :gutter="10" class="mb8">
  18. <el-col :span="1.5">
  19. <el-button
  20. type="success"
  21. icon="el-icon-edit"
  22. size="mini"
  23. :disabled="single"
  24. @click="handleUpdate"
  25. v-hasPermi="['production:pressure:edit']"
  26. >修改</el-button>
  27. </el-col>
  28. <!--<el-col :span="1.5">-->
  29. <!--<el-button-->
  30. <!--type="danger"-->
  31. <!--icon="el-icon-delete"-->
  32. <!--size="mini"-->
  33. <!--:disabled="multiple"-->
  34. <!--@click="handleDelete"-->
  35. <!--v-hasPermi="['production:pressure:remove']"-->
  36. <!--&gt;删除</el-button>-->
  37. <!--</el-col>-->
  38. <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
  39. </el-row>
  40. <el-table v-loading="loading" :data="pressureList" @selection-change="handleSelectionChange" :height="clientHeight" border>
  41. <el-table-column type="selection" width="55" align="center" />
  42. <el-table-column label="裂解炉名称" align="center" prop="furnanceName" :show-overflow-tooltip="true" width="100"/>
  43. <el-table-column label="巡检日期" align="center" prop="recordTime" width="150">
  44. <template slot-scope="scope">
  45. <span>{{ parseTime(scope.row.recordTime, '{y}-{m}-{d} {h}:{i}:{s}') }}</span>
  46. </template>
  47. </el-table-column>
  48. <el-table-column label="班组" align="center" prop="team" :show-overflow-tooltip="true" width="80" :formatter="teamFormat"/>
  49. <el-table-column label="状态" align="center" prop="status" :show-overflow-tooltip="true" width="80" :formatter="statusFormat"/>
  50. <el-table-column label="PASS1出口" align="center" prop="pass1" :show-overflow-tooltip="true">
  51. <!--<el-table-column label="入口" align="center" width="60">-->
  52. <el-table-column label="PG1213F" align="center" width="100">
  53. <template slot-scope="scope">
  54. <span>{{ scope.row.pass1[10] }}</span>
  55. </template>
  56. </el-table-column>
  57. <!--<el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">-->
  58. <el-table-column v-for="(item,index) in 10" :label="'PG1214F'+alphabets[index]" align="center" width="100">
  59. <template slot-scope="scope">
  60. <span>{{ scope.row.pass1[index] }}</span>
  61. </template>
  62. </el-table-column>
  63. </el-table-column>
  64. <el-table-column label="PASS2出口" align="center" prop="pass2" :show-overflow-tooltip="true">
  65. <!--<el-table-column label="入口" align="center" width="60">-->
  66. <el-table-column label="PG1223F" align="center" width="100">
  67. <template slot-scope="scope">
  68. <span>{{ scope.row.pass2[10] }}</span>
  69. </template>
  70. </el-table-column>
  71. <!--<el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">-->
  72. <el-table-column v-for="(item,index) in 10" :label="'PG1224F'+alphabets[index]" align="center" width="100">
  73. <template slot-scope="scope">
  74. <span>{{ scope.row.pass2[index] }}</span>
  75. </template>
  76. </el-table-column>
  77. </el-table-column>
  78. <el-table-column label="PASS3出口" align="center" prop="pass3" :show-overflow-tooltip="true">
  79. <!--<el-table-column label="入口" align="center" width="60">-->
  80. <el-table-column label="PG1233F" align="center" width="100">
  81. <template slot-scope="scope">
  82. <span>{{ scope.row.pass3[10] }}</span>
  83. </template>
  84. </el-table-column>
  85. <!--<el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">-->
  86. <el-table-column v-for="(item,index) in 10" :label="'PG1234F'+alphabets[index]" align="center" width="100">
  87. <template slot-scope="scope">
  88. <span>{{ scope.row.pass3[index] }}</span>
  89. </template>
  90. </el-table-column>
  91. </el-table-column>
  92. <el-table-column label="PASS4出口" align="center" prop="pass4" :show-overflow-tooltip="true">
  93. <!--<el-table-column label="入口" align="center" width="60">-->
  94. <el-table-column label="PG1243F" align="center" width="100">
  95. <template slot-scope="scope">
  96. <span>{{ scope.row.pass4[10] }}</span>
  97. </template>
  98. </el-table-column>
  99. <!--<el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">-->
  100. <el-table-column v-for="(item,index) in 10" :label="'PG1244F'+alphabets[index]" align="center" width="100">
  101. <template slot-scope="scope">
  102. <span>{{ scope.row.pass4[index] }}</span>
  103. </template>
  104. </el-table-column>
  105. </el-table-column>
  106. <el-table-column label="PASS5出口" align="center" prop="pass5" :show-overflow-tooltip="true">
  107. <!--<el-table-column label="入口" align="center" width="60">-->
  108. <el-table-column label="PG1253F" align="center" width="100">
  109. <template slot-scope="scope">
  110. <span>{{ scope.row.pass5[10] }}</span>
  111. </template>
  112. </el-table-column>
  113. <!--<el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">-->
  114. <el-table-column v-for="(item,index) in 10" :label="'PG1254F'+alphabets[index]" align="center" width="100">
  115. <template slot-scope="scope">
  116. <span>{{ scope.row.pass5[index] }}</span>
  117. </template>
  118. </el-table-column>
  119. </el-table-column>
  120. <el-table-column label="PASS6出口" align="center" prop="pass6" :show-overflow-tooltip="true">
  121. <!--<el-table-column label="入口" align="center" width="60">-->
  122. <el-table-column label="PG1263F" align="center" width="100">
  123. <template slot-scope="scope">
  124. <span>{{ scope.row.pass6[10] }}</span>
  125. </template>
  126. </el-table-column>
  127. <!--<el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">-->
  128. <el-table-column v-for="(item,index) in 10" :label="'PG1264F'+alphabets[index]" align="center" width="100">
  129. <template slot-scope="scope">
  130. <span>{{ scope.row.pass6[index] }}</span>
  131. </template>
  132. </el-table-column>
  133. </el-table-column>
  134. <el-table-column label="PASS7出口" align="center" prop="pass7" :show-overflow-tooltip="true">
  135. <!--<el-table-column label="入口" align="center" width="60">-->
  136. <el-table-column label="PG1273F" align="center" width="100">
  137. <template slot-scope="scope">
  138. <span>{{ scope.row.pass7[10] }}</span>
  139. </template>
  140. </el-table-column>
  141. <!--<el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">-->
  142. <el-table-column v-for="(item,index) in 10" :label="'PG1274F'+alphabets[index]" align="center" width="100">
  143. <template slot-scope="scope">
  144. <span>{{ scope.row.pass7[index] }}</span>
  145. </template>
  146. </el-table-column>
  147. </el-table-column>
  148. <el-table-column label="PASS8出口" align="center" prop="pass8" :show-overflow-tooltip="true">
  149. <!--<el-table-column label="入口" align="center" width="60">-->
  150. <el-table-column label="PG1283F" align="center" width="100">
  151. <template slot-scope="scope">
  152. <span>{{ scope.row.pass8[10] }}</span>
  153. </template>
  154. </el-table-column>
  155. <!--<el-table-column v-for="(item,index) in 10" :label="(index+1).toString()" align="center" width="60">-->
  156. <el-table-column v-for="(item,index) in 10" :label="'PG1284F'+alphabets[index]" align="center" width="100">
  157. <template slot-scope="scope">
  158. <span>{{ scope.row.pass8[index] }}</span>
  159. </template>
  160. </el-table-column>
  161. </el-table-column>
  162. <el-table-column label="操作" align="center" fixed="right" width="200" class-name="small-padding fixed-width">
  163. <template slot-scope="scope">
  164. <el-button
  165. size="mini"
  166. type="text"
  167. @click="handlePhoto(scope.row)"
  168. >现场照片</el-button>
  169. <el-button
  170. size="mini"
  171. type="text"
  172. icon="el-icon-edit"
  173. @click="handleUpdate(scope.row)"
  174. v-hasPermi="['production:pressure:edit']"
  175. >修改</el-button>
  176. <!--<el-button-->
  177. <!--size="mini"-->
  178. <!--type="text"-->
  179. <!--icon="el-icon-delete"-->
  180. <!--@click="handleDelete(scope.row)"-->
  181. <!--v-hasPermi="['production:pressure:remove']"-->
  182. <!--&gt;删除</el-button>-->
  183. </template>
  184. </el-table-column>
  185. </el-table>
  186. <pagination
  187. v-show="total>0"
  188. :total="total"
  189. :page.sync="queryParams.pageNum"
  190. :limit.sync="queryParams.pageSize"
  191. @pagination="getList"
  192. />
  193. <!-- 添加或修改裂解炉炉管测压对话框 -->
  194. <el-dialog :close-on-click-modal="false" :title="title" :visible.sync="open" width="600px" append-to-body>
  195. <el-form ref="form" :model="form" :rules="rules" label-width="100px">
  196. <el-form-item label="裂解炉名称" prop="furnanceName">
  197. <el-input v-model="form.furnanceName" placeholder="请输入裂解炉名称" disabled />
  198. </el-form-item>
  199. <el-form-item label="巡检日期" prop="recordTimeYmd">
  200. <el-date-picker clearable size="small" style="width: 200px"
  201. v-model="recordTimeYmd"
  202. type="date" disabled
  203. value-format="yyyy-MM-dd"
  204. placeholder="选择巡检日期">
  205. </el-date-picker>
  206. </el-form-item>
  207. <el-form-item label="巡检时间" prop="recordTimeHms">
  208. <el-time-picker
  209. v-model="recordTimeHms" disabled
  210. :picker-options="{selectableRange: '00:00:01 - 23:59:59'}"
  211. placeholder="请选择时间"
  212. value-format="HH:mm:ss"
  213. size="small"
  214. style="width: 200px">
  215. </el-time-picker>
  216. </el-form-item>
  217. <el-form-item label="班组">
  218. <el-select v-model="form.team" placeholder="请选择" size="small">
  219. <el-option
  220. v-for="item in teamOptions"
  221. :key="item.dictValue"
  222. :label="item.dictLabel"
  223. :value="item.dictValue">
  224. </el-option>
  225. </el-select>
  226. </el-form-item>
  227. <el-form-item label="记录人">
  228. <el-select v-model="form.recorder" placeholder="请选择" size="small">
  229. <el-option
  230. v-for="item in userList"
  231. :key="item.userId"
  232. :label="item.nickName"
  233. :value="item.userId">
  234. </el-option>
  235. </el-select>
  236. </el-form-item>
  237. <el-form-item label="状态">
  238. <el-select v-model="form.status" placeholder="请选择" size="small" @change="handleChange">
  239. <el-option
  240. v-for="item in statusOptions"
  241. :key="item.dictValue"
  242. :label="item.dictLabel"
  243. :value="item.dictValue">
  244. </el-option>
  245. </el-select>
  246. </el-form-item>
  247. <el-form-item label="归属部门" prop="deptId">
  248. <treeselect v-model="form.deptId" :options="deptOptions" :show-count="true" placeholder="请选择归属部门" />
  249. </el-form-item>
  250. </el-form>
  251. <el-descriptions title="PASS1出口" direction="vertical" :column="6" border>
  252. <!--<el-descriptions-item label="入口">-->
  253. <el-descriptions-item label="PG1213F">
  254. <el-input v-model="pass1[10]"/>
  255. </el-descriptions-item>
  256. <!--<el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">-->
  257. <el-descriptions-item v-for="(item, index) in 10" :label="'PG1214F'+alphabets[index]">
  258. <el-input v-model="pass1[index]"/>
  259. </el-descriptions-item>
  260. <el-descriptions-item label=""></el-descriptions-item>
  261. </el-descriptions><br/>
  262. <el-descriptions title="PASS2出口" direction="vertical" :column="6" border>
  263. <!--<el-descriptions-item label="入口">-->
  264. <el-descriptions-item label="PG1223F">
  265. <el-input v-model="pass2[10]"/>
  266. </el-descriptions-item>
  267. <!--<el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">-->
  268. <el-descriptions-item v-for="(item, index) in 10" :label="'PG1224F'+alphabets[index]">
  269. <el-input v-model="pass2[index]"/>
  270. </el-descriptions-item>
  271. <el-descriptions-item label=""></el-descriptions-item>
  272. </el-descriptions><br/>
  273. <el-descriptions title="PASS3出口" direction="vertical" :column="6" border>
  274. <!--<el-descriptions-item label="入口">-->
  275. <el-descriptions-item label="PG1233F">
  276. <el-input v-model="pass3[10]"/>
  277. </el-descriptions-item>
  278. <!--<el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">-->
  279. <el-descriptions-item v-for="(item, index) in 10" :label="'PG1234F'+alphabets[index]">
  280. <el-input v-model="pass3[index]"/>
  281. </el-descriptions-item>
  282. <el-descriptions-item label=""></el-descriptions-item>
  283. </el-descriptions><br/>
  284. <el-descriptions title="PASS4出口" direction="vertical" :column="6" border>
  285. <!--<el-descriptions-item label="入口">-->
  286. <el-descriptions-item label="PG1243F">
  287. <el-input v-model="pass4[10]"/>
  288. </el-descriptions-item>
  289. <!--<el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">-->
  290. <el-descriptions-item v-for="(item, index) in 10" :label="'PG1244F'+alphabets[index]">
  291. <el-input v-model="pass4[index]"/>
  292. </el-descriptions-item>
  293. <el-descriptions-item label=""></el-descriptions-item>
  294. </el-descriptions><br/>
  295. <el-descriptions title="PASS5出口" direction="vertical" :column="6" border>
  296. <!--<el-descriptions-item label="入口">-->
  297. <el-descriptions-item label="PG1253F">
  298. <el-input v-model="pass5[10]"/>
  299. </el-descriptions-item>
  300. <!--<el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">-->
  301. <el-descriptions-item v-for="(item, index) in 10" :label="'PG1254F'+alphabets[index]">
  302. <el-input v-model="pass5[index]"/>
  303. </el-descriptions-item>
  304. <el-descriptions-item label=""></el-descriptions-item>
  305. </el-descriptions><br/>
  306. <el-descriptions title="PASS6出口" direction="vertical" :column="6" border>
  307. <!--<el-descriptions-item label="入口">-->
  308. <el-descriptions-item label="PG1263F">
  309. <el-input v-model="pass6[10]"/>
  310. </el-descriptions-item>
  311. <!--<el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">-->
  312. <el-descriptions-item v-for="(item, index) in 10" :label="'PG1264F'+alphabets[index]">
  313. <el-input v-model="pass6[index]"/>
  314. </el-descriptions-item>
  315. <el-descriptions-item label=""></el-descriptions-item>
  316. </el-descriptions><br/>
  317. <el-descriptions title="PASS7出口" direction="vertical" :column="6" border>
  318. <!--<el-descriptions-item label="入口">-->
  319. <el-descriptions-item label="PG1273F">
  320. <el-input v-model="pass7[10]"/>
  321. </el-descriptions-item>
  322. <!--<el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">-->
  323. <el-descriptions-item v-for="(item, index) in 10" :label="'PG1274F'+alphabets[index]">
  324. <el-input v-model="pass7[index]"/>
  325. </el-descriptions-item>
  326. <el-descriptions-item label=""></el-descriptions-item>
  327. </el-descriptions><br/>
  328. <el-descriptions title="PASS8出口" direction="vertical" :column="6" border>
  329. <!--<el-descriptions-item label="入口">-->
  330. <el-descriptions-item label="PG1283F">
  331. <el-input v-model="pass8[10]"/>
  332. </el-descriptions-item>
  333. <!--<el-descriptions-item v-for="(item, index) in 10" :label="(index+1).toString()">-->
  334. <el-descriptions-item v-for="(item, index) in 10" :label="'PG1284F'+alphabets[index]">
  335. <el-input v-model="pass8[index]"/>
  336. </el-descriptions-item>
  337. <el-descriptions-item label=""></el-descriptions-item>
  338. </el-descriptions>
  339. <div slot="footer" class="dialog-footer">
  340. <el-button type="primary" @click="submitForm">确 定</el-button>
  341. <el-button @click="cancel">取 消</el-button>
  342. </div>
  343. </el-dialog>
  344. <!-- 用户导入对话框 -->
  345. <el-dialog :title="upload.title" :visible.sync="upload.open" width="400px" append-to-body>
  346. <el-upload
  347. ref="upload"
  348. :limit="1"
  349. accept=".xlsx, .xls"
  350. :headers="upload.headers"
  351. :action="upload.url + '?updateSupport=' + upload.updateSupport"
  352. :disabled="upload.isUploading"
  353. :on-progress="handleFileUploadProgress"
  354. :on-success="handleFileSuccess"
  355. :auto-upload="false"
  356. drag
  357. >
  358. <i class="el-icon-upload"></i>
  359. <div class="el-upload__text">
  360. 将文件拖到此处,或
  361. <em>点击上传</em>
  362. </div>
  363. <div class="el-upload__tip" slot="tip">
  364. <el-checkbox v-model="upload.updateSupport" />是否更新已经存在的用户数据
  365. <el-link type="info" style="font-size:12px" @click="importTemplate">下载模板</el-link>
  366. </div>
  367. <div class="el-upload__tip" style="color:red" slot="tip">提示:仅允许导入“xls”或“xlsx”格式文件!</div>
  368. </el-upload>
  369. <div slot="footer" class="dialog-footer">
  370. <el-button type="primary" @click="submitFileForm">确 定</el-button>
  371. <el-button @click="upload.open = false">取 消</el-button>
  372. </div>
  373. </el-dialog>
  374. <!-- 现场照片 -->
  375. <el-dialog :close-on-click-modal="false" v-dialogDrag :title="doc.title" :visible.sync="doc.open" width="800px" append-to-body >
  376. <el-tabs tab-position="left">
  377. <el-tab-pane label="PASS1">
  378. <el-upload ref="doc"
  379. :limit="1"
  380. :headers="doc.headers"
  381. :action="doc.url + '?pType=furnancePressurePass1&pId=' + doc.pId"
  382. :disabled="doc.isUploading"
  383. :on-progress="handleFileDocProgress"
  384. :on-success="handleFileDocSuccess"
  385. :auto-upload="true"
  386. drag
  387. >
  388. <i class="el-icon-upload"></i>
  389. <div class="el-upload__text">
  390. {{ $t('将文件拖到此处,或') }}
  391. <em>{{ $t('点击上传') }}</em>
  392. </div>
  393. </el-upload>
  394. <el-table :data="doc.commonfileList1" border>
  395. <el-table-column :label="$t('文件名')" align="center" prop="fileName" :show-overflow-tooltip="true">
  396. <template slot-scope="scope">
  397. <a class="link-type" @click="handleDownload(scope.row)">
  398. <span>{{ scope.row.fileName }}</span>
  399. </a>
  400. </template>
  401. </el-table-column>
  402. <el-table-column :label="$t('大小(Kb)')" align="center" prop="fileSize" :show-overflow-tooltip="true" width="80" />
  403. <el-table-column :label="$t('上传人')" align="center" prop="creator" :show-overflow-tooltip="true" width="120"/>
  404. <el-table-column :label="$t('操作')" align="center" width="220" class-name="small-padding fixed-width">
  405. <template slot-scope="scope">
  406. <el-button
  407. v-if="scope.row.fileName.endsWith('pdf')||scope.row.fileName.endsWith('xlsx')||scope.row.fileName.endsWith('md')
  408. ||scope.row.fileName.endsWith('docx')||scope.row.fileName.endsWith('doc')||scope.row.fileName.endsWith('txt')
  409. ||scope.row.fileName.endsWith('jpg')||scope.row.fileName.endsWith('png')||scope.row.fileName.endsWith('csv')
  410. ||scope.row.fileName.endsWith('mp4')||scope.row.fileName.endsWith('svg')||scope.row.fileName.endsWith('dwg')
  411. ||scope.row.fileName.endsWith('flv')||scope.row.fileName.endsWith('swf')||scope.row.fileName.endsWith('gif')
  412. ||scope.row.fileName.endsWith('3gp')||scope.row.fileName.endsWith('mkv')||scope.row.fileName.endsWith('tif')"
  413. size="mini"
  414. type="text"
  415. icon="el-icon-view"
  416. @click="handleSee(scope.row)"
  417. > {{ $t('预览') }}</el-button>
  418. <el-button
  419. size="mini"
  420. type="text"
  421. icon="el-icon-download"
  422. @click="handleDownload(scope.row)"
  423. >{{ $t('下载') }}</el-button>
  424. <el-button
  425. size="mini"
  426. type="text"
  427. icon="el-icon-delete"
  428. @click="handleDeleteDoc(scope.row)"
  429. >{{ $t('删除') }}</el-button>
  430. </template>
  431. </el-table-column>
  432. </el-table>
  433. </el-tab-pane>
  434. <el-tab-pane label="PASS2">
  435. <el-upload ref="doc"
  436. :limit="1"
  437. :headers="doc.headers"
  438. :action="doc.url + '?pType=furnancePressurePass2&pId=' + doc.pId"
  439. :disabled="doc.isUploading"
  440. :on-progress="handleFileDocProgress"
  441. :on-success="handleFileDocSuccess"
  442. :auto-upload="true"
  443. drag
  444. >
  445. <i class="el-icon-upload"></i>
  446. <div class="el-upload__text">
  447. {{ $t('将文件拖到此处,或') }}
  448. <em>{{ $t('点击上传') }}</em>
  449. </div>
  450. </el-upload>
  451. <el-table :data="doc.commonfileList2" border>
  452. <el-table-column :label="$t('文件名')" align="center" prop="fileName" :show-overflow-tooltip="true">
  453. <template slot-scope="scope">
  454. <a class="link-type" @click="handleDownload(scope.row)">
  455. <span>{{ scope.row.fileName }}</span>
  456. </a>
  457. </template>
  458. </el-table-column>
  459. <el-table-column :label="$t('大小(Kb)')" align="center" prop="fileSize" :show-overflow-tooltip="true" width="80" />
  460. <el-table-column :label="$t('上传人')" align="center" prop="creator" :show-overflow-tooltip="true" width="120"/>
  461. <el-table-column :label="$t('操作')" align="center" width="220" class-name="small-padding fixed-width">
  462. <template slot-scope="scope">
  463. <el-button
  464. v-if="scope.row.fileName.endsWith('pdf')||scope.row.fileName.endsWith('xlsx')||scope.row.fileName.endsWith('md')
  465. ||scope.row.fileName.endsWith('docx')||scope.row.fileName.endsWith('doc')||scope.row.fileName.endsWith('txt')
  466. ||scope.row.fileName.endsWith('jpg')||scope.row.fileName.endsWith('png')||scope.row.fileName.endsWith('csv')
  467. ||scope.row.fileName.endsWith('mp4')||scope.row.fileName.endsWith('svg')||scope.row.fileName.endsWith('dwg')
  468. ||scope.row.fileName.endsWith('flv')||scope.row.fileName.endsWith('swf')||scope.row.fileName.endsWith('gif')
  469. ||scope.row.fileName.endsWith('3gp')||scope.row.fileName.endsWith('mkv')||scope.row.fileName.endsWith('tif')"
  470. size="mini"
  471. type="text"
  472. icon="el-icon-view"
  473. @click="handleSee(scope.row)"
  474. > {{ $t('预览') }}</el-button>
  475. <el-button
  476. size="mini"
  477. type="text"
  478. icon="el-icon-download"
  479. @click="handleDownload(scope.row)"
  480. >{{ $t('下载') }}</el-button>
  481. <el-button
  482. size="mini"
  483. type="text"
  484. icon="el-icon-delete"
  485. @click="handleDeleteDoc(scope.row)"
  486. >{{ $t('删除') }}</el-button>
  487. </template>
  488. </el-table-column>
  489. </el-table>
  490. </el-tab-pane>
  491. <el-tab-pane label="PASS3">
  492. <el-upload ref="doc"
  493. :limit="1"
  494. :headers="doc.headers"
  495. :action="doc.url + '?pType=furnancePressurePass3&pId=' + doc.pId"
  496. :disabled="doc.isUploading"
  497. :on-progress="handleFileDocProgress"
  498. :on-success="handleFileDocSuccess"
  499. :auto-upload="true"
  500. drag
  501. >
  502. <i class="el-icon-upload"></i>
  503. <div class="el-upload__text">
  504. {{ $t('将文件拖到此处,或') }}
  505. <em>{{ $t('点击上传') }}</em>
  506. </div>
  507. </el-upload>
  508. <el-table :data="doc.commonfileList3" border>
  509. <el-table-column :label="$t('文件名')" align="center" prop="fileName" :show-overflow-tooltip="true">
  510. <template slot-scope="scope">
  511. <a class="link-type" @click="handleDownload(scope.row)">
  512. <span>{{ scope.row.fileName }}</span>
  513. </a>
  514. </template>
  515. </el-table-column>
  516. <el-table-column :label="$t('大小(Kb)')" align="center" prop="fileSize" :show-overflow-tooltip="true" width="80" />
  517. <el-table-column :label="$t('上传人')" align="center" prop="creator" :show-overflow-tooltip="true" width="120"/>
  518. <el-table-column :label="$t('操作')" align="center" width="220" class-name="small-padding fixed-width">
  519. <template slot-scope="scope">
  520. <el-button
  521. v-if="scope.row.fileName.endsWith('pdf')||scope.row.fileName.endsWith('xlsx')||scope.row.fileName.endsWith('md')
  522. ||scope.row.fileName.endsWith('docx')||scope.row.fileName.endsWith('doc')||scope.row.fileName.endsWith('txt')
  523. ||scope.row.fileName.endsWith('jpg')||scope.row.fileName.endsWith('png')||scope.row.fileName.endsWith('csv')
  524. ||scope.row.fileName.endsWith('mp4')||scope.row.fileName.endsWith('svg')||scope.row.fileName.endsWith('dwg')
  525. ||scope.row.fileName.endsWith('flv')||scope.row.fileName.endsWith('swf')||scope.row.fileName.endsWith('gif')
  526. ||scope.row.fileName.endsWith('3gp')||scope.row.fileName.endsWith('mkv')||scope.row.fileName.endsWith('tif')"
  527. size="mini"
  528. type="text"
  529. icon="el-icon-view"
  530. @click="handleSee(scope.row)"
  531. > {{ $t('预览') }}</el-button>
  532. <el-button
  533. size="mini"
  534. type="text"
  535. icon="el-icon-download"
  536. @click="handleDownload(scope.row)"
  537. >{{ $t('下载') }}</el-button>
  538. <el-button
  539. size="mini"
  540. type="text"
  541. icon="el-icon-delete"
  542. @click="handleDeleteDoc(scope.row)"
  543. >{{ $t('删除') }}</el-button>
  544. </template>
  545. </el-table-column>
  546. </el-table>
  547. </el-tab-pane>
  548. <el-tab-pane label="PASS4">
  549. <el-upload ref="doc"
  550. :limit="1"
  551. :headers="doc.headers"
  552. :action="doc.url + '?pType=furnancePressurePass4&pId=' + doc.pId"
  553. :disabled="doc.isUploading"
  554. :on-progress="handleFileDocProgress"
  555. :on-success="handleFileDocSuccess"
  556. :auto-upload="true"
  557. drag
  558. >
  559. <i class="el-icon-upload"></i>
  560. <div class="el-upload__text">
  561. {{ $t('将文件拖到此处,或') }}
  562. <em>{{ $t('点击上传') }}</em>
  563. </div>
  564. </el-upload>
  565. <el-table :data="doc.commonfileList4" border>
  566. <el-table-column :label="$t('文件名')" align="center" prop="fileName" :show-overflow-tooltip="true">
  567. <template slot-scope="scope">
  568. <a class="link-type" @click="handleDownload(scope.row)">
  569. <span>{{ scope.row.fileName }}</span>
  570. </a>
  571. </template>
  572. </el-table-column>
  573. <el-table-column :label="$t('大小(Kb)')" align="center" prop="fileSize" :show-overflow-tooltip="true" width="80" />
  574. <el-table-column :label="$t('上传人')" align="center" prop="creator" :show-overflow-tooltip="true" width="120"/>
  575. <el-table-column :label="$t('操作')" align="center" width="220" class-name="small-padding fixed-width">
  576. <template slot-scope="scope">
  577. <el-button
  578. v-if="scope.row.fileName.endsWith('pdf')||scope.row.fileName.endsWith('xlsx')||scope.row.fileName.endsWith('md')
  579. ||scope.row.fileName.endsWith('docx')||scope.row.fileName.endsWith('doc')||scope.row.fileName.endsWith('txt')
  580. ||scope.row.fileName.endsWith('jpg')||scope.row.fileName.endsWith('png')||scope.row.fileName.endsWith('csv')
  581. ||scope.row.fileName.endsWith('mp4')||scope.row.fileName.endsWith('svg')||scope.row.fileName.endsWith('dwg')
  582. ||scope.row.fileName.endsWith('flv')||scope.row.fileName.endsWith('swf')||scope.row.fileName.endsWith('gif')
  583. ||scope.row.fileName.endsWith('3gp')||scope.row.fileName.endsWith('mkv')||scope.row.fileName.endsWith('tif')"
  584. size="mini"
  585. type="text"
  586. icon="el-icon-view"
  587. @click="handleSee(scope.row)"
  588. > {{ $t('预览') }}</el-button>
  589. <el-button
  590. size="mini"
  591. type="text"
  592. icon="el-icon-download"
  593. @click="handleDownload(scope.row)"
  594. >{{ $t('下载') }}</el-button>
  595. <el-button
  596. size="mini"
  597. type="text"
  598. icon="el-icon-delete"
  599. @click="handleDeleteDoc(scope.row)"
  600. >{{ $t('删除') }}</el-button>
  601. </template>
  602. </el-table-column>
  603. </el-table>
  604. </el-tab-pane>
  605. <el-tab-pane label="PASS5">
  606. <el-upload ref="doc"
  607. :limit="1"
  608. :headers="doc.headers"
  609. :action="doc.url + '?pType=furnancePressurePass5&pId=' + doc.pId"
  610. :disabled="doc.isUploading"
  611. :on-progress="handleFileDocProgress"
  612. :on-success="handleFileDocSuccess"
  613. :auto-upload="true"
  614. drag
  615. >
  616. <i class="el-icon-upload"></i>
  617. <div class="el-upload__text">
  618. {{ $t('将文件拖到此处,或') }}
  619. <em>{{ $t('点击上传') }}</em>
  620. </div>
  621. </el-upload>
  622. <el-table :data="doc.commonfileList5" border>
  623. <el-table-column :label="$t('文件名')" align="center" prop="fileName" :show-overflow-tooltip="true">
  624. <template slot-scope="scope">
  625. <a class="link-type" @click="handleDownload(scope.row)">
  626. <span>{{ scope.row.fileName }}</span>
  627. </a>
  628. </template>
  629. </el-table-column>
  630. <el-table-column :label="$t('大小(Kb)')" align="center" prop="fileSize" :show-overflow-tooltip="true" width="80" />
  631. <el-table-column :label="$t('上传人')" align="center" prop="creator" :show-overflow-tooltip="true" width="120"/>
  632. <el-table-column :label="$t('操作')" align="center" width="220" class-name="small-padding fixed-width">
  633. <template slot-scope="scope">
  634. <el-button
  635. v-if="scope.row.fileName.endsWith('pdf')||scope.row.fileName.endsWith('xlsx')||scope.row.fileName.endsWith('md')
  636. ||scope.row.fileName.endsWith('docx')||scope.row.fileName.endsWith('doc')||scope.row.fileName.endsWith('txt')
  637. ||scope.row.fileName.endsWith('jpg')||scope.row.fileName.endsWith('png')||scope.row.fileName.endsWith('csv')
  638. ||scope.row.fileName.endsWith('mp4')||scope.row.fileName.endsWith('svg')||scope.row.fileName.endsWith('dwg')
  639. ||scope.row.fileName.endsWith('flv')||scope.row.fileName.endsWith('swf')||scope.row.fileName.endsWith('gif')
  640. ||scope.row.fileName.endsWith('3gp')||scope.row.fileName.endsWith('mkv')||scope.row.fileName.endsWith('tif')"
  641. size="mini"
  642. type="text"
  643. icon="el-icon-view"
  644. @click="handleSee(scope.row)"
  645. > {{ $t('预览') }}</el-button>
  646. <el-button
  647. size="mini"
  648. type="text"
  649. icon="el-icon-download"
  650. @click="handleDownload(scope.row)"
  651. >{{ $t('下载') }}</el-button>
  652. <el-button
  653. size="mini"
  654. type="text"
  655. icon="el-icon-delete"
  656. @click="handleDeleteDoc(scope.row)"
  657. >{{ $t('删除') }}</el-button>
  658. </template>
  659. </el-table-column>
  660. </el-table>
  661. </el-tab-pane>
  662. <el-tab-pane label="PASS6">
  663. <el-upload ref="doc"
  664. :limit="1"
  665. :headers="doc.headers"
  666. :action="doc.url + '?pType=furnancePressurePass6&pId=' + doc.pId"
  667. :disabled="doc.isUploading"
  668. :on-progress="handleFileDocProgress"
  669. :on-success="handleFileDocSuccess"
  670. :auto-upload="true"
  671. drag
  672. >
  673. <i class="el-icon-upload"></i>
  674. <div class="el-upload__text">
  675. {{ $t('将文件拖到此处,或') }}
  676. <em>{{ $t('点击上传') }}</em>
  677. </div>
  678. </el-upload>
  679. <el-table :data="doc.commonfileList6" border>
  680. <el-table-column :label="$t('文件名')" align="center" prop="fileName" :show-overflow-tooltip="true">
  681. <template slot-scope="scope">
  682. <a class="link-type" @click="handleDownload(scope.row)">
  683. <span>{{ scope.row.fileName }}</span>
  684. </a>
  685. </template>
  686. </el-table-column>
  687. <el-table-column :label="$t('大小(Kb)')" align="center" prop="fileSize" :show-overflow-tooltip="true" width="80" />
  688. <el-table-column :label="$t('上传人')" align="center" prop="creator" :show-overflow-tooltip="true" width="120"/>
  689. <el-table-column :label="$t('操作')" align="center" width="220" class-name="small-padding fixed-width">
  690. <template slot-scope="scope">
  691. <el-button
  692. v-if="scope.row.fileName.endsWith('pdf')||scope.row.fileName.endsWith('xlsx')||scope.row.fileName.endsWith('md')
  693. ||scope.row.fileName.endsWith('docx')||scope.row.fileName.endsWith('doc')||scope.row.fileName.endsWith('txt')
  694. ||scope.row.fileName.endsWith('jpg')||scope.row.fileName.endsWith('png')||scope.row.fileName.endsWith('csv')
  695. ||scope.row.fileName.endsWith('mp4')||scope.row.fileName.endsWith('svg')||scope.row.fileName.endsWith('dwg')
  696. ||scope.row.fileName.endsWith('flv')||scope.row.fileName.endsWith('swf')||scope.row.fileName.endsWith('gif')
  697. ||scope.row.fileName.endsWith('3gp')||scope.row.fileName.endsWith('mkv')||scope.row.fileName.endsWith('tif')"
  698. size="mini"
  699. type="text"
  700. icon="el-icon-view"
  701. @click="handleSee(scope.row)"
  702. > {{ $t('预览') }}</el-button>
  703. <el-button
  704. size="mini"
  705. type="text"
  706. icon="el-icon-download"
  707. @click="handleDownload(scope.row)"
  708. >{{ $t('下载') }}</el-button>
  709. <el-button
  710. size="mini"
  711. type="text"
  712. icon="el-icon-delete"
  713. @click="handleDeleteDoc(scope.row)"
  714. >{{ $t('删除') }}</el-button>
  715. </template>
  716. </el-table-column>
  717. </el-table>
  718. </el-tab-pane>
  719. <el-tab-pane label="PASS7">
  720. <el-upload ref="doc"
  721. :limit="1"
  722. :headers="doc.headers"
  723. :action="doc.url + '?pType=furnancePressurePass7&pId=' + doc.pId"
  724. :disabled="doc.isUploading"
  725. :on-progress="handleFileDocProgress"
  726. :on-success="handleFileDocSuccess"
  727. :auto-upload="true"
  728. drag
  729. >
  730. <i class="el-icon-upload"></i>
  731. <div class="el-upload__text">
  732. {{ $t('将文件拖到此处,或') }}
  733. <em>{{ $t('点击上传') }}</em>
  734. </div>
  735. </el-upload>
  736. <el-table :data="doc.commonfileList7" border>
  737. <el-table-column :label="$t('文件名')" align="center" prop="fileName" :show-overflow-tooltip="true">
  738. <template slot-scope="scope">
  739. <a class="link-type" @click="handleDownload(scope.row)">
  740. <span>{{ scope.row.fileName }}</span>
  741. </a>
  742. </template>
  743. </el-table-column>
  744. <el-table-column :label="$t('大小(Kb)')" align="center" prop="fileSize" :show-overflow-tooltip="true" width="80" />
  745. <el-table-column :label="$t('上传人')" align="center" prop="creator" :show-overflow-tooltip="true" width="120"/>
  746. <el-table-column :label="$t('操作')" align="center" width="220" class-name="small-padding fixed-width">
  747. <template slot-scope="scope">
  748. <el-button
  749. v-if="scope.row.fileName.endsWith('pdf')||scope.row.fileName.endsWith('xlsx')||scope.row.fileName.endsWith('md')
  750. ||scope.row.fileName.endsWith('docx')||scope.row.fileName.endsWith('doc')||scope.row.fileName.endsWith('txt')
  751. ||scope.row.fileName.endsWith('jpg')||scope.row.fileName.endsWith('png')||scope.row.fileName.endsWith('csv')
  752. ||scope.row.fileName.endsWith('mp4')||scope.row.fileName.endsWith('svg')||scope.row.fileName.endsWith('dwg')
  753. ||scope.row.fileName.endsWith('flv')||scope.row.fileName.endsWith('swf')||scope.row.fileName.endsWith('gif')
  754. ||scope.row.fileName.endsWith('3gp')||scope.row.fileName.endsWith('mkv')||scope.row.fileName.endsWith('tif')"
  755. size="mini"
  756. type="text"
  757. icon="el-icon-view"
  758. @click="handleSee(scope.row)"
  759. > {{ $t('预览') }}</el-button>
  760. <el-button
  761. size="mini"
  762. type="text"
  763. icon="el-icon-download"
  764. @click="handleDownload(scope.row)"
  765. >{{ $t('下载') }}</el-button>
  766. <el-button
  767. size="mini"
  768. type="text"
  769. icon="el-icon-delete"
  770. @click="handleDeleteDoc(scope.row)"
  771. >{{ $t('删除') }}</el-button>
  772. </template>
  773. </el-table-column>
  774. </el-table>
  775. </el-tab-pane>
  776. <el-tab-pane label="PASS8">
  777. <el-upload ref="doc"
  778. :limit="1"
  779. :headers="doc.headers"
  780. :action="doc.url + '?pType=furnancePressurePass8&pId=' + doc.pId"
  781. :disabled="doc.isUploading"
  782. :on-progress="handleFileDocProgress"
  783. :on-success="handleFileDocSuccess"
  784. :auto-upload="true"
  785. drag
  786. >
  787. <i class="el-icon-upload"></i>
  788. <div class="el-upload__text">
  789. {{ $t('将文件拖到此处,或') }}
  790. <em>{{ $t('点击上传') }}</em>
  791. </div>
  792. </el-upload>
  793. <el-table :data="doc.commonfileList8" border>
  794. <el-table-column :label="$t('文件名')" align="center" prop="fileName" :show-overflow-tooltip="true">
  795. <template slot-scope="scope">
  796. <a class="link-type" @click="handleDownload(scope.row)">
  797. <span>{{ scope.row.fileName }}</span>
  798. </a>
  799. </template>
  800. </el-table-column>
  801. <el-table-column :label="$t('大小(Kb)')" align="center" prop="fileSize" :show-overflow-tooltip="true" width="80" />
  802. <el-table-column :label="$t('上传人')" align="center" prop="creator" :show-overflow-tooltip="true" width="120"/>
  803. <el-table-column :label="$t('操作')" align="center" width="220" class-name="small-padding fixed-width">
  804. <template slot-scope="scope">
  805. <el-button
  806. v-if="scope.row.fileName.endsWith('pdf')||scope.row.fileName.endsWith('xlsx')||scope.row.fileName.endsWith('md')
  807. ||scope.row.fileName.endsWith('docx')||scope.row.fileName.endsWith('doc')||scope.row.fileName.endsWith('txt')
  808. ||scope.row.fileName.endsWith('jpg')||scope.row.fileName.endsWith('png')||scope.row.fileName.endsWith('csv')
  809. ||scope.row.fileName.endsWith('mp4')||scope.row.fileName.endsWith('svg')||scope.row.fileName.endsWith('dwg')
  810. ||scope.row.fileName.endsWith('flv')||scope.row.fileName.endsWith('swf')||scope.row.fileName.endsWith('gif')
  811. ||scope.row.fileName.endsWith('3gp')||scope.row.fileName.endsWith('mkv')||scope.row.fileName.endsWith('tif')"
  812. size="mini"
  813. type="text"
  814. icon="el-icon-view"
  815. @click="handleSee(scope.row)"
  816. > {{ $t('预览') }}</el-button>
  817. <el-button
  818. size="mini"
  819. type="text"
  820. icon="el-icon-download"
  821. @click="handleDownload(scope.row)"
  822. >{{ $t('下载') }}</el-button>
  823. <el-button
  824. size="mini"
  825. type="text"
  826. icon="el-icon-delete"
  827. @click="handleDeleteDoc(scope.row)"
  828. >{{ $t('删除') }}</el-button>
  829. </template>
  830. </el-table-column>
  831. </el-table>
  832. </el-tab-pane>
  833. </el-tabs>
  834. <div slot="footer" class="dialog-footer">
  835. <el-button @click="doc.open = false">{{ $t('返 回') }}</el-button>
  836. </div>
  837. </el-dialog>
  838. <!-- 预览对话框 -->
  839. <el-dialog :close-on-click-modal="false" v-loading="loadingFlash" element-loading-background="rgba(0,0,0,0.2)" v-dialogDrag :title="pdf.title" :visible.sync="pdf.open" width="1200px" :center="true" append-to-body>
  840. <div style="text-align: center;">
  841. <el-image :src="pdf.pdfUrl" fit="contain" width="100%"/>
  842. </div>
  843. </el-dialog>
  844. </div>
  845. </template>
  846. <script>
  847. import { listPressure, getPressure, delPressure, addPressure, updatePressure, exportPressure, importTemplate} from "@/api/production/pressure";
  848. import { treeselect } from "@/api/system/dept";
  849. import { getToken } from "@/utils/auth";
  850. import Treeselect from "@riophae/vue-treeselect";
  851. import "@riophae/vue-treeselect/dist/vue-treeselect.css";
  852. import { listUserNoPage, getUserId } from "@/api/system/user";
  853. import {addCommonfile, allFileList, delCommonfile, updateCommonfile} from "@/api/common/commonfile";
  854. export default {
  855. name: "Pressure",
  856. components: { Treeselect },
  857. data() {
  858. return {
  859. loadingFlash:false,
  860. // pdf文件参数
  861. pdf : {
  862. title: '',
  863. pdfUrl: '',
  864. numPages: null,
  865. open: false,
  866. pageNum: 1,
  867. pageTotalNum: 1,
  868. loadedRatio: 0,
  869. },
  870. // 遮罩层
  871. loading: true,
  872. // 选中数组
  873. ids: [],
  874. // 非单个禁用
  875. single: true,
  876. // 非多个禁用
  877. multiple: true,
  878. // 显示搜索条件
  879. showSearch: true,
  880. // 总条数
  881. total: 0,
  882. // 裂解炉炉管测压表格数据
  883. pressureList: [],
  884. // 弹出层标题
  885. title: "",
  886. // 部门树选项
  887. deptOptions: undefined,
  888. clientHeight:300,
  889. // 是否显示弹出层
  890. open: false,
  891. // 用户导入参数
  892. upload: {
  893. // 是否显示弹出层(用户导入)
  894. open: false,
  895. // 弹出层标题(用户导入)
  896. title: "",
  897. // 是否禁用上传
  898. isUploading: false,
  899. // 是否更新已经存在的用户数据
  900. updateSupport: 0,
  901. // 设置上传的请求头部
  902. headers: { Authorization: "Bearer " + getToken() },
  903. // 上传的地址
  904. url: process.env.VUE_APP_BASE_API + "/production/pressure/importData"
  905. },
  906. // 查询参数
  907. queryParams: {
  908. pageNum: 1,
  909. pageSize: 100,
  910. furnanceName: null,
  911. recordTime: null,
  912. pass1: null,
  913. pass2: null,
  914. pass3: null,
  915. pass4: null,
  916. pass5: null,
  917. pass6: null,
  918. pass7: null,
  919. pass8: null,
  920. pass9: null,
  921. pass10: null,
  922. pass11: null,
  923. pass12: null,
  924. pass13: null,
  925. pass14: null,
  926. pass15: null,
  927. pass16: null,
  928. deptId: null,
  929. },
  930. recordTime: null,
  931. // 表单参数
  932. form: {},
  933. pass1:[],
  934. pass2:[],
  935. pass3:[],
  936. pass4:[],
  937. pass5:[],
  938. pass6:[],
  939. pass7:[],
  940. pass8:[],
  941. pass9:[],
  942. pass10:[],
  943. pass11:[],
  944. pass12:[],
  945. pass13:[],
  946. pass14:[],
  947. pass15:[],
  948. pass16:[],
  949. // 表单校验
  950. rules: {
  951. id: [
  952. { required: true, message: "主键id不能为空", trigger: "blur" }
  953. ],
  954. },
  955. // 状态字典
  956. statusOptions: [],
  957. // 班组字典
  958. teamOptions: [],
  959. recordTimeYmd: null,
  960. recordTimeHms: null,
  961. // 用户列表
  962. userList: [],doc: {
  963. file: "",
  964. // 是否显示弹出层(报告附件)
  965. open: false,
  966. // 弹出层标题(报告附件)
  967. title: "附件",
  968. // 是否禁用上传
  969. isUploading: false,
  970. // 是否更新已经存在的用户数据
  971. updateSupport: 0,
  972. // 报告附件上传位置编号
  973. ids: 0,
  974. // 设置上传的请求头部
  975. headers: { Authorization: "Bearer " + getToken() },
  976. // 上传的地址
  977. url: process.env.VUE_APP_BASE_API + "/common/commonfile/uploadFile",
  978. commonfileList1: null,
  979. commonfileList2: null,
  980. commonfileList3: null,
  981. commonfileList4: null,
  982. commonfileList5: null,
  983. commonfileList6: null,
  984. commonfileList7: null,
  985. commonfileList8: null,
  986. queryParams: {
  987. pId: null
  988. },
  989. pId: null,
  990. form: {},
  991. alphabets: null,
  992. },
  993. };
  994. },
  995. watch: {
  996. // 根据名称筛选部门树
  997. deptName(val) {
  998. this.$refs.tree.filter(val);
  999. }
  1000. },
  1001. created() {
  1002. //设置表格高度对应屏幕高度
  1003. this.$nextTick(() => {
  1004. this.clientHeight = document.body.clientHeight -250
  1005. })
  1006. // this.getList();
  1007. this.getTreeselect();
  1008. this.getDicts("FURNANCE_STATUS").then(response => {
  1009. this.statusOptions = response.data;
  1010. });
  1011. this.getDicts("TEAM_DIVIDE").then(response => {
  1012. this.teamOptions = response.data;
  1013. });
  1014. this.listUser();
  1015. this.alphabets = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N'];
  1016. },
  1017. methods: {
  1018. handleSee (row){
  1019. //office预览
  1020. this.loadingFlash=true
  1021. this.pdf.open =true
  1022. this.pdf.title = row.fileName
  1023. this.pdf.pdfUrl =""
  1024. this.pptView=false
  1025. this.ppt=true
  1026. //如果是PDF等直接可以打开的就不调接口,否则调用接口
  1027. if(row.fileName.endsWith('pdf')){
  1028. this.pdf.pdfUrl = process.env.VUE_APP_BASE_API + '/pdf/web/viewer.html?file=' + process.env.VUE_APP_BASE_API + row.fileUrl
  1029. this.loadingFlash=false
  1030. }
  1031. else{
  1032. const formatDate =new FormData();
  1033. formatDate.append("filepath",row.fileUrl)
  1034. //调用文件预览api
  1035. let res= this.officeConvert.officeConvertCommon(formatDate)
  1036. //查看接受的全局方法的返回结果 console.log(res)
  1037. //利用.then方法接受Promise对象
  1038. res.then((result)=>{
  1039. //关闭加载中
  1040. this.loadingFlash=false
  1041. if(result.msg.includes("csv")){
  1042. this.pdf.pdfUrl =process.env.VUE_APP_BASE_API+ result.data
  1043. this.$alert(result.msg, this.$t('检查乱码'), { dangerouslyUseHTMLString: true });
  1044. // this.$message({message: result.msg, center: true,type:'warning', offset:400, });
  1045. }else if(result.msg.includes("不存在")){
  1046. //文件不存在时提示
  1047. this.pdf.pdfUrl =""
  1048. this.$alert(result.msg, this.$t('预览失败'), { dangerouslyUseHTMLString: true });
  1049. // this.$message({message: result.msg, center: true,type:'warning', offset:400, });
  1050. this.pdf.open =false
  1051. }else if(result.msg.includes("不支持此格式")){
  1052. this.pdf.pdfUrl =""
  1053. this.$alert(result.msg, this.$t('预览失败'), { dangerouslyUseHTMLString: true });
  1054. // this.$message({message: result.msg, center: true,type:'warning', offset:400, });
  1055. this.pdf.open =false
  1056. } else{
  1057. //成功时直接给地址
  1058. this.pdf.pdfUrl =process.env.VUE_APP_BASE_API+ result.data
  1059. }
  1060. // this.$nextTick(() => {
  1061. // const iframe = window.frames['iFrame']
  1062. // const handleLoad = () => {
  1063. // setTimeout(() => {
  1064. // const Do = (iframe.contentWindow || iframe.contentDocument)
  1065. // console.log(Do.document.getElementsByTagName('table')[0])
  1066. // Do.document.getElementsByTagName('table')[0].style.width = "100%"
  1067. // Do.document.getElementsByTagName('table')[0].setAttribute("class","table")
  1068. // }, 500)
  1069. // }
  1070. // iframe.addEventListener('load', handleLoad, true)
  1071. // })
  1072. }).catch(result => {
  1073. //请求失败,关闭loading,pdf地址直接为为空,不显示
  1074. this.pdf.pdfUrl =""
  1075. this.loadingFlash = false;
  1076. })
  1077. }
  1078. },
  1079. init() {
  1080. let date = new Date();
  1081. this.queryParams.recordTime = date.getFullYear() + "-" + Number(date.getMonth() + 1);
  1082. this.getList();
  1083. },
  1084. // 现场照片
  1085. handlePhoto(row) {
  1086. this.doc.id = row.id;
  1087. this.doc.title = row.furnanceName + " " + row.recordTime + " 现场照片";
  1088. this.doc.open = true;
  1089. this.doc.queryParams.pId = row.id
  1090. this.doc.pId = row.id
  1091. this.doc.commonfileList1 = null;
  1092. this.doc.commonfileList2 = null;
  1093. this.doc.commonfileList3 = null;
  1094. this.doc.commonfileList4 = null;
  1095. this.doc.commonfileList5 = null;
  1096. this.doc.commonfileList6 = null;
  1097. this.doc.commonfileList7 = null;
  1098. this.doc.commonfileList8 = null;
  1099. this.getFileList1();
  1100. this.getFileList2();
  1101. this.getFileList3();
  1102. this.getFileList4();
  1103. this.getFileList5();
  1104. this.getFileList6();
  1105. this.getFileList7();
  1106. this.getFileList8();
  1107. },
  1108. getFileList1() {
  1109. allFileList({
  1110. "pId": this.doc.queryParams.pId,
  1111. "pType": "furnancePressurePass1"
  1112. }).then(response => {
  1113. this.doc.commonfileList1 = response;
  1114. });
  1115. },
  1116. getFileList2() {
  1117. allFileList({
  1118. "pId": this.doc.queryParams.pId,
  1119. "pType": "furnancePressurePass2"
  1120. }).then(response => {
  1121. this.doc.commonfileList2 = response;
  1122. });
  1123. },
  1124. getFileList3() {
  1125. allFileList({
  1126. "pId": this.doc.queryParams.pId,
  1127. "pType": "furnancePressurePass3"
  1128. }).then(response => {
  1129. this.doc.commonfileList3 = response;
  1130. });
  1131. },
  1132. getFileList4() {
  1133. allFileList({
  1134. "pId": this.doc.queryParams.pId,
  1135. "pType": "furnancePressurePass4"
  1136. }).then(response => {
  1137. this.doc.commonfileList4 = response;
  1138. });
  1139. },
  1140. getFileList5() {
  1141. allFileList({
  1142. "pId": this.doc.queryParams.pId,
  1143. "pType": "furnancePressurePass5"
  1144. }).then(response => {
  1145. this.doc.commonfileList5 = response;
  1146. });
  1147. },
  1148. getFileList6() {
  1149. allFileList({
  1150. "pId": this.doc.queryParams.pId,
  1151. "pType": "furnancePressurePass6"
  1152. }).then(response => {
  1153. this.doc.commonfileList6 = response;
  1154. });
  1155. },
  1156. getFileList7() {
  1157. allFileList({
  1158. "pId": this.doc.queryParams.pId,
  1159. "pType": "furnancePressurePass7"
  1160. }).then(response => {
  1161. this.doc.commonfileList7 = response;
  1162. });
  1163. },
  1164. getFileList8() {
  1165. allFileList({
  1166. "pId": this.doc.queryParams.pId,
  1167. "pType": "furnancePressurePass8"
  1168. }).then(response => {
  1169. this.doc.commonfileList8 = response;
  1170. });
  1171. },
  1172. //附件上传中处理
  1173. handleFileDocProgress(event, file, fileList) {
  1174. this.doc.file = file;
  1175. this.doc.isUploading = true;
  1176. },
  1177. //附件上传成功处理
  1178. handleFileDocSuccess(response, file, fileList) {
  1179. this.doc.isUploading = false;
  1180. this.$alert(response.msg, this.$t('导入结果'), {dangerouslyUseHTMLString: true});
  1181. this.getFileList1()
  1182. this.getFileList2()
  1183. this.getFileList3()
  1184. this.getFileList4()
  1185. this.getFileList5()
  1186. this.getFileList6()
  1187. this.getFileList7()
  1188. this.getFileList8()
  1189. },
  1190. // 文件下载处理
  1191. handleDownload(row) {
  1192. var name = row.fileName;
  1193. var url = row.fileUrl;
  1194. var suffix = url.substring(url.lastIndexOf("."), url.length);
  1195. const a = document.createElement('a')
  1196. a.setAttribute('download', name)
  1197. a.setAttribute('target', '_blank')
  1198. a.setAttribute('href', process.env.VUE_APP_BASE_API + url)
  1199. a.click()
  1200. },
  1201. /** 删除按钮操作 */
  1202. handleDeleteDoc(row) {
  1203. const ids = row.id || this.ids;
  1204. this.$confirm(this.$t('是否确认删除?'), this.$t('警告'), {
  1205. confirmButtonText: this.$t('确定'),
  1206. cancelButtonText: this.$t('取消'),
  1207. type: "warning"
  1208. }).then(function () {
  1209. return delCommonfile(ids);
  1210. }).then(() => {
  1211. this.getFileList1();
  1212. this.getFileList2();
  1213. this.getFileList3();
  1214. this.getFileList4();
  1215. this.getFileList5();
  1216. this.getFileList6();
  1217. this.getFileList7();
  1218. this.getFileList8();
  1219. this.msgSuccess(this.$t('删除成功'));
  1220. })
  1221. },
  1222. listUser() {
  1223. listUserNoPage().then(response => {
  1224. this.userList = response.data;
  1225. });
  1226. },
  1227. // 班值字典翻译
  1228. teamFormat(row, column) {
  1229. return this.selectDictLabel(this.teamOptions, row.team);
  1230. },
  1231. // 字典翻译
  1232. statusFormat(row, column) {
  1233. return this.selectDictLabel(this.statusOptions, row.status);
  1234. },
  1235. handleChange() {
  1236. if (this.form.status === '2') {
  1237. this.pass1 = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"];
  1238. this.pass2 = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"];
  1239. this.pass3 = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"];
  1240. this.pass4 = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"];
  1241. this.pass5 = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"];
  1242. this.pass6 = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"];
  1243. this.pass7 = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"];
  1244. this.pass8 = ["0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"];
  1245. }
  1246. },
  1247. /** 查询裂解炉炉管测压列表 */
  1248. getList() {
  1249. this.loading = true;
  1250. this.queryParams.furnanceName = "H115";
  1251. listPressure(this.queryParams).then(response => {
  1252. for (let i = 0; i< response.rows.length; i++) {
  1253. if (response.rows[i].pass1 == null) { response.rows[i].pass1 = []; } else { response.rows[i].pass1 = response.rows[i].pass1.split(','); }
  1254. if (response.rows[i].pass2 == null) { response.rows[i].pass2 = []; } else { response.rows[i].pass2 = response.rows[i].pass2.split(','); }
  1255. if (response.rows[i].pass3 == null) { response.rows[i].pass3 = []; } else { response.rows[i].pass3 = response.rows[i].pass3.split(','); }
  1256. if (response.rows[i].pass4 == null) { response.rows[i].pass4 = []; } else { response.rows[i].pass4 = response.rows[i].pass4.split(','); }
  1257. if (response.rows[i].pass5 == null) { response.rows[i].pass5 = []; } else { response.rows[i].pass5 = response.rows[i].pass5.split(','); }
  1258. if (response.rows[i].pass6 == null) { response.rows[i].pass6 = []; } else { response.rows[i].pass6 = response.rows[i].pass6.split(','); }
  1259. if (response.rows[i].pass7 == null) { response.rows[i].pass7 = []; } else { response.rows[i].pass7 = response.rows[i].pass7.split(','); }
  1260. if (response.rows[i].pass8 == null) { response.rows[i].pass8 = []; } else { response.rows[i].pass8 = response.rows[i].pass8.split(','); }
  1261. }
  1262. this.pressureList = response.rows;
  1263. this.total = response.total;
  1264. this.loading = false;
  1265. });
  1266. },
  1267. /** 查询部门下拉树结构 */
  1268. getTreeselect() {
  1269. treeselect().then(response => {
  1270. this.deptOptions = response.data;
  1271. });
  1272. },
  1273. // 取消按钮
  1274. cancel() {
  1275. this.open = false;
  1276. this.reset();
  1277. },
  1278. // 表单重置
  1279. reset() {
  1280. this.form = {
  1281. id: null,
  1282. furnanceName: null,
  1283. recordTime: null,
  1284. pass1: null,
  1285. pass2: null,
  1286. pass3: null,
  1287. pass4: null,
  1288. pass5: null,
  1289. pass6: null,
  1290. pass7: null,
  1291. pass8: null,
  1292. pass9: null,
  1293. pass10: null,
  1294. pass11: null,
  1295. pass12: null,
  1296. pass13: null,
  1297. pass14: null,
  1298. pass15: null,
  1299. pass16: null,
  1300. deptId: null,
  1301. delFlag: null,
  1302. createBy: null,
  1303. createTime: null,
  1304. updateBy: null,
  1305. updateTime: null,
  1306. };
  1307. this.pass1 = [];
  1308. this.pass2 = [];
  1309. this.pass3 = [];
  1310. this.pass4 = [];
  1311. this.pass5 = [];
  1312. this.pass6 = [];
  1313. this.pass7 = [];
  1314. this.pass8 = [];
  1315. this.pass9 = [];
  1316. this.pass10 = [];
  1317. this.pass11 = [];
  1318. this.pass12 = [];
  1319. this.pass13 = [];
  1320. this.pass14 = [];
  1321. this.pass15 = [];
  1322. this.pass16 = [];
  1323. this.resetForm("form");
  1324. },
  1325. /** 搜索按钮操作 */
  1326. handleQuery() {
  1327. this.queryParams.pageNum = 1;
  1328. this.getList();
  1329. },
  1330. /** 重置按钮操作 */
  1331. resetQuery() {
  1332. this.resetForm("queryForm");
  1333. this.handleQuery();
  1334. },
  1335. // 多选框选中数据
  1336. handleSelectionChange(selection) {
  1337. this.ids = selection.map(item => item.id)
  1338. this.single = selection.length!==1
  1339. this.multiple = !selection.length
  1340. },
  1341. /** 新增按钮操作 */
  1342. handleAdd() {
  1343. this.reset();
  1344. getUserId().then(response => {
  1345. this.form.recorder = response.data;
  1346. this.form.furnanceName = "H115";
  1347. this.open = true;
  1348. this.title = "添加裂解炉炉管测压";
  1349. });
  1350. },
  1351. /** 修改按钮操作 */
  1352. handleUpdate(row) {
  1353. this.reset();
  1354. const id = row.id || this.ids
  1355. getPressure(id).then(response => {
  1356. this.form = response.data;
  1357. let recordTime = new Date(this.form.recordTime);
  1358. this.recordTimeYmd = recordTime.getFullYear() + "-" + (recordTime.getMonth() + 1) + "-" + recordTime.getDate();
  1359. this.recordTimeHms = recordTime.getHours() + ":" + recordTime.getMinutes() + ":" + recordTime.getSeconds();
  1360. if (response.data.pass1 == null) { this.pass1 = []; } else { this.pass1 = response.data.pass1.split(','); }
  1361. if (response.data.pass2 == null) { this.pass2 = []; } else { this.pass2 = response.data.pass2.split(','); }
  1362. if (response.data.pass3 == null) { this.pass3 = []; } else { this.pass3 = response.data.pass3.split(','); }
  1363. if (response.data.pass4 == null) { this.pass4 = []; } else { this.pass4 = response.data.pass4.split(','); }
  1364. if (response.data.pass5 == null) { this.pass5 = []; } else { this.pass5 = response.data.pass5.split(','); }
  1365. if (response.data.pass6 == null) { this.pass6 = []; } else { this.pass6 = response.data.pass6.split(','); }
  1366. if (response.data.pass7 == null) { this.pass7 = []; } else { this.pass7 = response.data.pass7.split(','); }
  1367. if (response.data.pass8 == null) { this.pass8 = []; } else { this.pass8 = response.data.pass8.split(','); }
  1368. this.open = true;
  1369. this.title = "修改裂解炉炉管测压";
  1370. });
  1371. },
  1372. /** 提交按钮 */
  1373. submitForm() {
  1374. this.form.pass1 = this.pass1.join(",");
  1375. this.form.pass2 = this.pass2.join(",");
  1376. this.form.pass3 = this.pass3.join(",");
  1377. this.form.pass4 = this.pass4.join(",");
  1378. this.form.pass5 = this.pass5.join(",");
  1379. this.form.pass6 = this.pass6.join(",");
  1380. this.form.pass7 = this.pass7.join(",");
  1381. this.form.pass8 = this.pass8.join(",");
  1382. this.form.pass9 = this.pass9.join(",");
  1383. this.form.pass10 = this.pass10.join(",");
  1384. this.form.pass11 = this.pass11.join(",");
  1385. this.form.pass12 = this.pass12.join(",");
  1386. this.form.pass13 = this.pass13.join(",");
  1387. this.form.pass14 = this.pass14.join(",");
  1388. this.form.pass15 = this.pass15.join(",");
  1389. this.form.pass16 = this.pass16.join(",");
  1390. this.form.recordTime = this.recordTimeYmd + " " + this.recordTimeHms;
  1391. this.$refs["form"].validate(valid => {
  1392. if (valid) {
  1393. if (this.form.id != null) {
  1394. updatePressure(this.form).then(response => {
  1395. if (response.code == 200) {
  1396. if (response.msg == "") {
  1397. this.msgSuccess("修改成功");
  1398. } else {
  1399. this.msgInfo("修改成功," + response.msg);
  1400. }
  1401. this.open = false;
  1402. this.getList();
  1403. } else {
  1404. this.msgInfo(response.msg);
  1405. }
  1406. });
  1407. } else {
  1408. addPressure(this.form).then(response => {
  1409. this.msgSuccess("新增成功");
  1410. this.open = false;
  1411. this.getList();
  1412. });
  1413. }
  1414. }
  1415. });
  1416. },
  1417. /** 删除按钮操作 */
  1418. handleDelete(row) {
  1419. const ids = row.id || this.ids;
  1420. this.$confirm('是否确认删除?', "警告", {
  1421. confirmButtonText: "确定",
  1422. cancelButtonText: "取消",
  1423. type: "warning"
  1424. }).then(function() {
  1425. return delPressure(ids);
  1426. }).then(() => {
  1427. this.getList();
  1428. this.msgSuccess("删除成功");
  1429. })
  1430. },
  1431. /** 导出按钮操作 */
  1432. handleExport() {
  1433. const queryParams = this.queryParams;
  1434. this.$confirm('是否确认导出所有裂解炉炉管测压数据项?', "警告", {
  1435. confirmButtonText: "确定",
  1436. cancelButtonText: "取消",
  1437. type: "warning"
  1438. }).then(function() {
  1439. return exportPressure(queryParams);
  1440. }).then(response => {
  1441. this.download(response.msg);
  1442. })
  1443. },
  1444. /** 导入按钮操作 */
  1445. handleImport() {
  1446. this.upload.title = "用户导入";
  1447. this.upload.open = true;
  1448. },
  1449. /** 下载模板操作 */
  1450. importTemplate() {
  1451. importTemplate().then(response => {
  1452. this.download(response.msg);
  1453. });
  1454. },
  1455. // 文件上传中处理
  1456. handleFileUploadProgress(event, file, fileList) {
  1457. this.upload.isUploading = true;
  1458. },
  1459. // 文件上传成功处理
  1460. handleFileSuccess(response, file, fileList) {
  1461. this.upload.open = false;
  1462. this.upload.isUploading = false;
  1463. this.$refs.upload.clearFiles();
  1464. this.$alert(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
  1465. this.getList();
  1466. },
  1467. // 提交上传文件
  1468. submitFileForm() {
  1469. this.$refs.upload.submit();
  1470. }
  1471. }
  1472. };
  1473. </script>