h111.vue 65 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488
  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. >删除</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="PG1213B" 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="'PG1214B'+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="PG1223B" 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="'PG1224B'+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="PG1233B" 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="'PG1234B'+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="PG1243B" 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="'PG1244B'+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="PG1253B" 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="'PG1254B'+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="PG1263B" 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="'PG1264B'+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="PG1273B" 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="'PG1274B'+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="PG1283B" 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="'PG1284B'+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. >删除</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="请输入裂解炉名称" />
  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"
  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"
  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="PG1213B">
  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="'PG1214B'+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="PG1223B">
  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="'PG1224B'+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="PG1233B">
  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="'PG1234B'+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="PG1243B">
  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="'PG1244B'+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="PG1253B">
  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="'PG1254B'+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="PG1263B">
  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="'PG1264B'+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="PG1273B">
  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="'PG1274B'+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="PG1283B">
  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="'PG1284B'+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 === '1') {
  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 = "H111";
  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 = "H111";
  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. this.msgSuccess("修改成功");
  1397. this.open = false;
  1398. this.getList();
  1399. } else {
  1400. this.msgInfo(response.msg);
  1401. }
  1402. });
  1403. } else {
  1404. addPressure(this.form).then(response => {
  1405. this.msgSuccess("新增成功");
  1406. this.open = false;
  1407. this.getList();
  1408. });
  1409. }
  1410. }
  1411. });
  1412. },
  1413. /** 删除按钮操作 */
  1414. handleDelete(row) {
  1415. const ids = row.id || this.ids;
  1416. this.$confirm('是否确认删除?', "警告", {
  1417. confirmButtonText: "确定",
  1418. cancelButtonText: "取消",
  1419. type: "warning"
  1420. }).then(function() {
  1421. return delPressure(ids);
  1422. }).then(() => {
  1423. this.getList();
  1424. this.msgSuccess("删除成功");
  1425. })
  1426. },
  1427. /** 导出按钮操作 */
  1428. handleExport() {
  1429. const queryParams = this.queryParams;
  1430. this.$confirm('是否确认导出所有裂解炉炉管测压数据项?', "警告", {
  1431. confirmButtonText: "确定",
  1432. cancelButtonText: "取消",
  1433. type: "warning"
  1434. }).then(function() {
  1435. return exportPressure(queryParams);
  1436. }).then(response => {
  1437. this.download(response.msg);
  1438. })
  1439. },
  1440. /** 导入按钮操作 */
  1441. handleImport() {
  1442. this.upload.title = "用户导入";
  1443. this.upload.open = true;
  1444. },
  1445. /** 下载模板操作 */
  1446. importTemplate() {
  1447. importTemplate().then(response => {
  1448. this.download(response.msg);
  1449. });
  1450. },
  1451. // 文件上传中处理
  1452. handleFileUploadProgress(event, file, fileList) {
  1453. this.upload.isUploading = true;
  1454. },
  1455. // 文件上传成功处理
  1456. handleFileSuccess(response, file, fileList) {
  1457. this.upload.open = false;
  1458. this.upload.isUploading = false;
  1459. this.$refs.upload.clearFiles();
  1460. this.$alert(response.msg, "导入结果", { dangerouslyUseHTMLString: true });
  1461. this.getList();
  1462. },
  1463. // 提交上传文件
  1464. submitFileForm() {
  1465. this.$refs.upload.submit();
  1466. }
  1467. }
  1468. };
  1469. </script>