moldDetail.vue 63 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423
  1. <template>
  2. <section>
  3. <!--工具条-->
  4. <el-col :span="24" class="toolbar" style="padding-bottom: 0px;">
  5. <el-form :inline="true">
  6. <el-form-item>
  7. <el-button type="text" @click="backToList" icon="el-icon-back" class="back">返回</el-button>
  8. </el-form-item>
  9. <el-form-item class="divLine"></el-form-item>
  10. <el-form-item>
  11. <span class="projectTitle">{{moldDetail.modelName}}</span>
  12. </el-form-item>
  13. <el-form-item class="state">
  14. 当前状态:
  15. <a style="color: #999999; cursor: pointer" @click="toDetection" v-if="moldDetail.state == 0">静止</a>
  16. <a style="color: #00CD66; cursor: pointer" @click="toDetection" v-if="moldDetail.state == 1">运行</a>
  17. <span class="tips">(点击查看运行状态)</span>
  18. </el-form-item>
  19. </el-form>
  20. </el-col>
  21. <!-- 主区域 -->
  22. <el-col :span="24" :style="allDetail">
  23. <el-col :span="24" class="title">
  24. 模具基本信息
  25. <!-- <i class="el-icon-edit editDetail" v-if="user.id == moldDetail.managerId || user.id == moldDetail.creatorId" @click="edit"></i> -->
  26. </el-col>
  27. <el-col :span="24" class="main">
  28. <el-col :span="6" class="detail">
  29. 模具编号:
  30. <span class="info">{{moldDetail.modelNo}}</span>
  31. </el-col>
  32. <el-col :span="6" class="detail">
  33. 云模盒编号:
  34. <span class="info">{{moldDetail.equipmentNo}}</span>
  35. </el-col>
  36. <el-col :span="6" class="detail">
  37. 设备电量:
  38. <span class="info">{{moldDetail.hillNumber}}</span>
  39. </el-col>
  40. <el-col :span="6" class="detail">
  41. 倒计时:
  42. <span class="info">{{moldDetail.diffTime}}</span>
  43. </el-col>
  44. <el-col :span="6" class="detail">
  45. 初始模次:
  46. <span class="info">{{moldDetail.initialModulus}}</span>
  47. </el-col>
  48. <el-col :span="6" class="detail">
  49. 模次寿命:
  50. <span class="info">{{moldDetail.settingLife}}</span>
  51. </el-col>
  52. <el-col :span="6" class="detail">
  53. 对应RFID码:
  54. <span class="info">{{moldDetail.rfid}}</span>
  55. </el-col>
  56. <el-col :span="6" class="detail">
  57. 穴数:
  58. <span class="info">{{moldDetail.holes}}</span>
  59. </el-col>
  60. <el-col :span="12" class="detail">
  61. 所属项目:
  62. <span class="info belongPro" @click="toPro(moldDetail.projectId)">{{moldDetail.projectName}}</span>
  63. </el-col>
  64. <el-col :span="24" class="detail">
  65. 生产方:
  66. <!-- <span class="info" v-for="(item, index) in customCompany">
  67. {{item.companyName}}
  68. <span v-if="index != customCompany.length-1">、</span>
  69. </span> -->
  70. <span class="info">{{moldDetail.produceCompany}}</span>
  71. </el-col>
  72. <el-col :span="24" class="detail">
  73. 生产方地址:
  74. <!-- <span class="info" v-for="(item, index) in customCompany">
  75. {{item.companyName}}
  76. <span v-if="index != customCompany.length-1">、</span>
  77. </span> -->
  78. <span class="info">{{moldDetail.area}}</span>
  79. </el-col>
  80. </el-col>
  81. <el-col :span="24" class="title">
  82. 文档资料
  83. <!-- 上传 模具0 时 -->
  84. <el-dropdown trigger="click" style="float: right;" v-show="activeTab == 0 && update == 1">
  85. <el-button size="mini" type="primary" :loading="uploading[0]">
  86. 上传
  87. <i class="el-icon-arrow-down el-icon--right"></i>
  88. </el-button>
  89. <el-dropdown-menu slot="dropdown">
  90. <el-upload ref="upload" action="customize" :http-request="uploadFile" :show-file-list="false" multiple :limit="5" style="float:right;">
  91. <el-dropdown-item @click.native="fileType = 0">2D图档</el-dropdown-item>
  92. <el-dropdown-item @click.native="fileType = 1">3D图档</el-dropdown-item>
  93. </el-upload>
  94. </el-dropdown-menu>
  95. </el-dropdown>
  96. <!-- 上传 零件1 时 -->
  97. <el-button size="mini" type="primary" style="float:right;" v-show="activeTab == 1 && update == 1" @click.native="fileType = 0;centerDialog4Visible = true;">
  98. 上传
  99. </el-button>
  100. <!-- 零件1 新建零件 -->
  101. <el-dropdown trigger="click" style="float: right; margin-right: 10px;" v-show=" activeTab == 1 && update == 1">
  102. <el-button size="mini" type="primary">
  103. 新建零件
  104. <i class="el-icon-arrow-down el-icon--right"></i>
  105. </el-button>
  106. <el-dropdown-menu slot="dropdown">
  107. <el-dropdown-item @click.native="centerDialog3Visible = true">单个新建</el-dropdown-item>
  108. <el-dropdown-item>
  109. <el-upload ref="upload" action="customize" :http-request="uploadPart" :show-file-list="false" :limit="1">
  110. 批量导入
  111. </el-upload>
  112. </el-dropdown-item>
  113. </el-dropdown-menu>
  114. </el-dropdown>
  115. <!-- 上传 试模2 保养3 时 -->
  116. <el-upload ref="upload"
  117. v-show="(activeTab == 2 || activeTab == 3) && update == 1"
  118. action="customize"
  119. :http-request="uploadFile"
  120. :show-file-list="false"
  121. multiple
  122. :limit="5"
  123. style="float:right;"
  124. >
  125. <el-button size="mini" type="primary" :loading="uploading[1]">上传</el-button>
  126. </el-upload>
  127. <!-- 更新4 -->
  128. <el-button
  129. v-show="activeTab == 4 && user.id == moldDetail.managerId"
  130. size="mini"
  131. type="primary"
  132. style="float: right;"
  133. @click="updateRequest"
  134. >申请</el-button>
  135. <!-- 上传 报废5 时 -->
  136. <el-button
  137. v-show="activeTab == 5 && update == 1"
  138. size="mini"
  139. type="primary"
  140. style="float: right;"
  141. @click="centerDialog2Visible = true;"
  142. >上传</el-button>
  143. </el-col>
  144. <!-- 文档列表部分 -->
  145. <el-col :span="24">
  146. <el-tabs v-model="activePage" @tab-click="handleClick">
  147. <!-- 模具文档 -->
  148. <el-tab-pane label="模具文档" name="0">
  149. <el-table
  150. :data="documents.mould"
  151. highlight-current-row
  152. v-loading="listLoading"
  153. style="width: 100%;"
  154. >
  155. <el-table-column type="index" width="40"></el-table-column>
  156. <el-table-column prop="fileName" label="名称" sortable></el-table-column>
  157. <el-table-column prop="fileSize" label="大小" width="200" align="center" sortable></el-table-column>
  158. <el-table-column prop="uploadtor" label="上传者" width="200" align="center" sortable></el-table-column>
  159. <el-table-column prop="indate" label="上传时间" width="200" sortable></el-table-column>
  160. <el-table-column label="状态" width="120" align="center" sortable>
  161. <template slot-scope="scope">
  162. <span v-if="scope.row.state == -2">生产方审核不通过</span>
  163. <span v-else-if="scope.row.state == -1">资产方审核不通过</span>
  164. <span v-else-if="scope.row.state == 0">待双方审核</span>
  165. <span v-else-if="scope.row.state == 1">待生产方审核</span>
  166. <span v-else-if="scope.row.state == 2">待资产方审核</span>
  167. <span v-else-if="scope.row.state == 3">审核通过</span>
  168. </template>
  169. </el-table-column>
  170. <el-table-column label="操作" width="200" align="center" sortable>
  171. <template slot-scope="scope">
  172. <el-button size="small"
  173. v-if="approve == 1 && (scope.row.state == 0 || (scope.row.state == 1 && user.subordinateType == 1) || (scope.row.state == 2 && user.subordinateType == 0))"
  174. @click="checkOpen(scope.row.id, scope.row.fileName)">审批</el-button>
  175. <a :href="scope.row.fileUrl" :download="scope.row.fileName" v-if="download == 1 && scope.row.state == 3">
  176. <el-button size="small" @click="dowloadfile(scope.row.id)">下载</el-button>
  177. </a>
  178. <el-button size="small"
  179. v-if="scope.row.uplodtorId == user.id && scope.row.state <= 0"
  180. @click="deleteFile(scope.row.id)" type="danger">删除</el-button>
  181. </template>
  182. </el-table-column>
  183. </el-table>
  184. </el-tab-pane>
  185. <!-- 零件文档 -->
  186. <el-tab-pane label="零件文档" name="1">
  187. <el-table
  188. :data="documents.part"
  189. highlight-current-row
  190. v-loading="listLoading"
  191. style="width: 100%;"
  192. >
  193. <el-table-column type="index" width="40"></el-table-column>
  194. <el-table-column prop="partNo" label="零件编号" width="150" sortable></el-table-column>
  195. <el-table-column prop="partName" label="零件名称" sortable></el-table-column>
  196. <el-table-column prop="partLife" label="寿命次数" align="center" width="100" sortable></el-table-column>
  197. <el-table-column prop="isVulnerable" label="易损件" align="center" width="100" sortable>
  198. <template slot-scope="scope">{{scope.row.isVulnerable==0?'否':'是'}}</template>
  199. </el-table-column>
  200. <el-table-column prop="part3dFile.fileName" label="3D图档" width="200" sortable>
  201. <template slot-scope="scope" v-if="scope.row.part3dFile != null">
  202. <a class="download" :href="scope.row.part3dFile.fileUrl" target="_blank">{{scope.row.part3dFile.fileName}}</a>
  203. <!-- :download="scope.row.part3dFile.fileName" -->
  204. </template>
  205. </el-table-column>
  206. <el-table-column prop="part2dFile.fileName" label="2D图档" width="200" sortable>
  207. <template slot-scope="scope" v-if="scope.row.part2dFile != null">
  208. <a class="download" :href="scope.row.part2dFile.fileUrl" :download="scope.row.part2dFile.fileName">{{scope.row.part2dFile.fileName}}</a>
  209. </template>
  210. </el-table-column>
  211. <el-table-column prop="indate" label="上传时间" width="200" align="center" sortable></el-table-column>
  212. <el-table-column label="状态" width="120" align="center" sortable>
  213. <template slot-scope="scope">
  214. <span v-if="scope.row.state == -2">生产方审核不通过</span>
  215. <span v-else-if="scope.row.state == -1">资产方审核不通过</span>
  216. <span v-else-if="scope.row.state == 0">待双方审核</span>
  217. <span v-else-if="scope.row.state == 1">待生产方审核</span>
  218. <span v-else-if="scope.row.state == 2">待资产方审核</span>
  219. <span v-else-if="scope.row.state == 3">审核通过</span>
  220. </template>
  221. </el-table-column>
  222. <el-table-column label="操作" width="200" align="center" sortable>
  223. <template slot-scope="scope">
  224. <el-button size="small"
  225. v-if="approve == 1 && (scope.row.state == 0
  226. || (scope.row.state == 1 && user.subordinateType == 1)
  227. || (scope.row.state == 2 && user.subordinateType == 0))"
  228. @click="checkOpenPort(scope.row)">审批</el-button>
  229. <el-button size="small" @click="editPort(scope.row)" v-if="scope.row.creatorId == user.id">
  230. 修改
  231. </el-button>
  232. <!-- <el-button size="small" @click="dowloadfile(scope.row.id)" v-if="download == 1 && scope.row.state == 3 ">
  233. <a :href="scope.row.fileUrl" :download="scope.row.fileName">下载 </a>
  234. </el-button> -->
  235. <!-- <el-button size="small"
  236. v-if="scope.row.uplodtorId == user.id && scope.row.state <= 0"
  237. @click="deleteFile(scope.row.id)" type="danger">删除</el-button> -->
  238. </template>
  239. </el-table-column>
  240. </el-table>
  241. </el-tab-pane>
  242. <!-- 试模及验收 -->
  243. <el-tab-pane label="试模及验收" name="2">
  244. <el-table
  245. :data="documents.check"
  246. highlight-current-row
  247. v-loading="listLoading"
  248. style="width: 100%;"
  249. >
  250. <el-table-column type="index" width="40"></el-table-column>
  251. <el-table-column prop="fileName" label="名称" sortable></el-table-column>
  252. <el-table-column prop="fileSize" label="大小" width="200" sortable></el-table-column>
  253. <el-table-column prop="uploadtor" label="上传者" width="200" sortable></el-table-column>
  254. <el-table-column prop="indate" label="上传时间" width="200" sortable></el-table-column>
  255. <el-table-column label="状态" width="120" sortable>
  256. <template slot-scope="scope">
  257. <span v-if="scope.row.state == -2">生产方审核不通过</span>
  258. <span v-else-if="scope.row.state == -1">资产方审核不通过</span>
  259. <span v-else-if="scope.row.state == 0">待双方审核</span>
  260. <span v-else-if="scope.row.state == 1">待生产方审核</span>
  261. <span v-else-if="scope.row.state == 2">待资产方审核</span>
  262. <span v-else-if="scope.row.state == 3">审核通过</span>
  263. </template>
  264. </el-table-column>
  265. <el-table-column label="操作" width="200" sortable>
  266. <template slot-scope="scope">
  267. <el-button size="small"
  268. v-if="approve == 1 && (scope.row.state == 0 || (scope.row.state == 1 && user.subordinateType == 1) || (scope.row.state == 2 && user.subordinateType == 0))"
  269. @click="checkOpen(scope.row.id, scope.row.fileName)">审批</el-button>
  270. <a :href="scope.row.fileUrl" :download="scope.row.fileName" v-if="download == 1 && scope.row.state == 3">
  271. <el-button size="small" @click="dowloadfile(scope.row.id)">下载</el-button>
  272. </a>
  273. <el-button size="small"
  274. v-if="scope.row.uplodtorId == user.id && scope.row.state <= 0"
  275. @click="deleteFile(scope.row.id)" type="danger">删除</el-button>
  276. </template>
  277. </el-table-column>
  278. </el-table>
  279. </el-tab-pane>
  280. <!-- 保养方案 -->
  281. <el-tab-pane label="保养方案" name="3">
  282. <el-table
  283. :data="documents.maintain"
  284. highlight-current-row
  285. v-loading="listLoading"
  286. style="width: 100%;"
  287. >
  288. <el-table-column type="index" width="40"></el-table-column>
  289. <el-table-column prop="fileName" label="名称" sortable></el-table-column>
  290. <el-table-column prop="fileSize" label="大小" width="200" sortable></el-table-column>
  291. <el-table-column prop="uploadtor" label="上传者" width="200" sortable></el-table-column>
  292. <el-table-column prop="indate" label="上传时间" width="200" sortable></el-table-column>
  293. <el-table-column label="状态" width="120" sortable>
  294. <template slot-scope="scope">
  295. <span v-if="scope.row.state == -2">生产方审核不通过</span>
  296. <span v-else-if="scope.row.state == -1">资产方审核不通过</span>
  297. <span v-else-if="scope.row.state == 0">待双方审核</span>
  298. <span v-else-if="scope.row.state == 1">待生产方审核</span>
  299. <span v-else-if="scope.row.state == 2">待资产方审核</span>
  300. <span v-else-if="scope.row.state == 3">审核通过</span>
  301. </template>
  302. </el-table-column>
  303. <el-table-column label="操作" width="200" sortable>
  304. <template slot-scope="scope">
  305. <el-button size="small"
  306. v-if="approve == 1 && (scope.row.state == 0 || (scope.row.state == 1 && user.subordinateType == 1) || (scope.row.state == 2 && user.subordinateType == 0))"
  307. @click="checkOpen(scope.row.id, scope.row.fileName)">审批</el-button>
  308. <a :href="scope.row.fileUrl" :download="scope.row.fileName" v-if="download == 1 && scope.row.state == 3">
  309. <el-button size="small" @click="dowloadfile(scope.row.id)">下载</el-button>
  310. </a>
  311. <el-button size="small"
  312. v-if="scope.row.uplodtorId == user.id && scope.row.state <= 0"
  313. @click="deleteFile(scope.row.id)" type="danger">删除</el-button>
  314. </template>
  315. </el-table-column>
  316. </el-table>
  317. </el-tab-pane>
  318. <!-- 模具更新 -->
  319. <el-tab-pane label="模具更新" name="4">
  320. <el-table :data="documents.update" highlight-current-row v-loading="listLoading" style="width: 100%;">
  321. <el-table-column type="index" width="40"></el-table-column>
  322. <el-table-column prop="uploadtor" label="申请人" sortable></el-table-column>
  323. <el-table-column prop="indate" label="申请时间" width="200" sortable></el-table-column>
  324. <el-table-column label="状态" width="120" sortable>
  325. <template slot-scope="scope">
  326. <span v-if="scope.row.state == -2">生产方审核不通过</span>
  327. <span v-else-if="scope.row.state == -1">资产方审核不通过</span>
  328. <span v-else-if="scope.row.state == 0">待双方审核</span>
  329. <span v-else-if="scope.row.state == 1">待生产方审核</span>
  330. <span v-else-if="scope.row.state == 2">待资产方审核</span>
  331. <span v-else-if="scope.row.state == 3">审核通过</span>
  332. </template>
  333. </el-table-column>
  334. <el-table-column label="操作" width="200" sortable>
  335. <template slot-scope="scope">
  336. <el-button size="small" @click="checkUpdate(scope.row.id, true)" type="primary">通过</el-button>
  337. <el-button size="small" @click="checkUpdate(scope.row.id, false)" type="danger">拒绝</el-button>
  338. </template>
  339. </el-table-column>
  340. </el-table>
  341. </el-tab-pane>
  342. <!-- 模具报废 -->
  343. <el-tab-pane label="模具报废" name="5">
  344. <el-table :data="documents.abandon" highlight-current-row v-loading="listLoading" style="width: 100%;">
  345. <el-table-column type="index" width="40"></el-table-column>
  346. <el-table-column prop="fileName" label="名称" sortable></el-table-column>
  347. <el-table-column prop="fileSize" label="大小" width="200" sortable></el-table-column>
  348. <el-table-column prop="uploadtor" label="上传者" width="200" sortable></el-table-column>
  349. <el-table-column prop="indate" label="上传时间" width="200" sortable></el-table-column>
  350. <el-table-column label="状态" width="120" sortable>
  351. <template slot-scope="scope">
  352. <span v-if="scope.row.state == -2">生产方审核不通过</span>
  353. <span v-else-if="scope.row.state == -1">资产方审核不通过</span>
  354. <span v-else-if="scope.row.state == 0">待双方审核</span>
  355. <span v-else-if="scope.row.state == 1">待生产方审核</span>
  356. <span v-else-if="scope.row.state == 2">待资产方审核</span>
  357. <span v-else-if="scope.row.state == 3">审核通过</span>
  358. </template>
  359. </el-table-column>
  360. <el-table-column label="操作" width="200" sortable>
  361. <template slot-scope="scope">
  362. <el-button size="small"
  363. v-if="approve == 1 && (scope.row.state == 0 || (scope.row.state == 1 && user.subordinateType == 1) || (scope.row.state == 2 && user.subordinateType == 0))"
  364. @click="checkOpen(scope.row.id, scope.row.fileName)">审批</el-button>
  365. <a :href="scope.row.fileUrl" :download="scope.row.fileName" v-if="download == 1 && scope.row.state == 3">
  366. <el-button size="small" @click="dowloadfile(scope.row.id)">下载</el-button>
  367. </a>
  368. <el-button size="small"
  369. v-if="scope.row.uplodtorId == user.id && scope.row.state <= 0"
  370. @click="deleteFile(scope.row.id)" type="danger">删除</el-button>
  371. </template>
  372. </el-table-column>
  373. </el-table>
  374. </el-tab-pane>
  375. </el-tabs>
  376. </el-col>
  377. <!-- 操作记录 -->
  378. <el-col :span="24" class="title">
  379. {{activeTab == 4?"更新":"操作"}}记录
  380. <el-button v-if="user.id == moldDetail.managerId" size="mini" type="primary" style="float: right;" @click="centerDialog5Visible = true">导出</el-button>
  381. </el-col>
  382. <el-table :data="operations" highlight-current-row v-loading="listLoading" style="width: 100%;">
  383. <el-table-column type="index" width="40"></el-table-column>
  384. <el-table-column prop="content" label="操作" width="120" sortable></el-table-column>
  385. <el-table-column v-if="activeTab!= 4" prop="fileName" label="操作文档名称" sortable></el-table-column>
  386. <el-table-column prop="operatorName" label="操作人" align="center" width="120" sortable></el-table-column>
  387. <el-table-column prop="indate" label="操作时间" width="200" align="center" sortable></el-table-column>
  388. </el-table>
  389. </el-col>
  390. <!-- 审批弹窗 -->
  391. <el-dialog title="审批" :visible.sync="centerDialogVisible" width="100" center>
  392. <span>{{this.activeFileName}}</span>
  393. <span slot="footer" class="dialog-footer">
  394. <el-button @click="check(false)">不通过</el-button>
  395. <el-button type="primary" @click="check(true)">通过</el-button>
  396. </span>
  397. </el-dialog>
  398. <!-- 模具报废上传弹窗 -->
  399. <el-dialog title="模具报废上传" :visible.sync="centerDialog2Visible" width="100" :before-close="clearFileRecord" center>
  400. <p>申请单</p>
  401. <el-upload ref="upload1" action="customize" :http-request="uploadFile" :limit="1" :auto-upload="false">
  402. <el-button size="small" type="primary">上传</el-button>
  403. </el-upload>
  404. <p>报废单</p>
  405. <el-upload ref="upload2" action="customize" :http-request="uploadFile" :limit="1" :auto-upload="false">
  406. <el-button size="small" type="primary">上传</el-button>
  407. </el-upload>
  408. <span slot="footer" class="dialog-footer">
  409. <el-button @click="confirmUpload" :loading="uploading[3]">确定</el-button>
  410. </span>
  411. </el-dialog>
  412. <!-- 零件文档上传弹窗 -->
  413. <el-dialog title="零件文档上传" v-if="centerDialog4Visible" :visible.sync="centerDialog4Visible" width="100" :before-close="clearFileRecord2" center>
  414. <p style="color:#ccc;">文件命名规则:零件编号+2D/3D 如 LJ001+2D.dwg</p>
  415. <el-upload ref="upload4" action="uploadFile" :http-request="uploadPartFile" :show-file-list="true" :before-remove="beforeRemove" multiple>
  416. <el-button size="small" type="primary" :loading="uploading[2]">上传</el-button>
  417. </el-upload>
  418. <span slot="footer" class="dialog-footer">
  419. <el-button @click="uploadFilePart">确定</el-button>
  420. </span>
  421. </el-dialog>
  422. <!-- 批量导出操作记录弹窗 -->
  423. <el-dialog title="批量导出操作记录" v-if="centerDialog5Visible" :visible.sync="centerDialog5Visible" width="35%" center>
  424. <span style="line-height: 40px;">请输入需要导出的时间段</span>
  425. <el-date-picker v-model="recordTime" type="datetimerange" placeholder="选择日期时间" style="float: right;"></el-date-picker>
  426. <span slot="footer" class="dialog-footer">
  427. <el-button @click="centerDialog5Visible = false">取消</el-button>
  428. <el-button type="primary" @click="exportRecords">确定</el-button>
  429. </span>
  430. </el-dialog>
  431. <!-- 单个新增零件弹窗 -->
  432. <el-dialog title="新增零件" v-if="centerDialog3Visible" :visible.sync="centerDialog3Visible" :close-on-click-modal="false" customClass="customWidth">
  433. <el-form :model="newParts" label-width="100px" :rules="formRules" ref="newParts" :inline="true" class="demo-form-inline">
  434. <el-form-item label="零件编号" prop="number">
  435. <el-input v-model="newParts.number" autocomplete="off" placeholder="请输入零件编号"></el-input>
  436. </el-form-item>
  437. <el-form-item label="零件名称" prop="name">
  438. <el-input v-model="newParts.name" autocomplete="off" placeholder="请输入零件名称"></el-input>
  439. </el-form-item>
  440. <el-form-item label="零件寿命" prop="life">
  441. <el-input v-model="newParts.life" autocomplete="off" placeholder="请输入零件寿命"></el-input>
  442. </el-form-item>
  443. </el-form>
  444. <div slot="footer" class="dialog-footer">
  445. <el-button @click.native="centerDialog3Visible = false">取消</el-button>
  446. <el-button type="primary" @click.native="subPart" :loading="editLoading">提交</el-button>
  447. </div>
  448. </el-dialog>
  449. <!-- 单个编辑零件弹窗 -->
  450. <el-dialog title="编辑零件" v-if="editPortVisible" :visible.sync="editPortVisible" :close-on-click-modal="false" customClass="customWidth">
  451. <el-form :model="editParts" label-width="100px" :rules="formRules" ref="editParts" :inline="true" class="demo-form-inline">
  452. <el-form-item label="零件编号" prop="number">
  453. <el-input v-model="editParts.number" autocomplete="off" placeholder="请输入零件编号"></el-input>
  454. </el-form-item>
  455. <el-form-item label="零件名称" prop="name">
  456. <el-input v-model="editParts.name" autocomplete="off" placeholder="请输入零件名称"></el-input>
  457. </el-form-item>
  458. <el-form-item label="零件寿命" prop="life">
  459. <el-input v-model="editParts.life" autocomplete="off" placeholder="请输入零件寿命"></el-input>
  460. </el-form-item>
  461. </el-form>
  462. <div slot="footer" class="dialog-footer">
  463. <el-button @click.native="editPortVisible = false">取消</el-button>
  464. <el-button type="primary" @click.native="editPartVisible" :loading="editLoading">提交</el-button>
  465. </div>
  466. </el-dialog>
  467. <!--编辑界面-->
  468. <el-dialog title="编辑模具" v-if="editFormVisible" :visible.sync="editFormVisible" :close-on-click-modal="false" customClass="customWidth">
  469. <el-form :model="editForm" label-width="100px" :rules="formRules" ref="editForm" :inline="true" class="demo-form-inline">
  470. <el-form-item label="模具名称" prop="modelName">
  471. <el-input v-model="editForm.modelName" autocomplete="off" placeholder="请输入模具名称"></el-input>
  472. </el-form-item>
  473. <el-form-item label="模具编号" prop="modelNo">
  474. <el-input v-model="editForm.modelNo" autocomplete="off" placeholder="请输入模具编号"></el-input>
  475. </el-form-item>
  476. <el-form-item label="云模盒编号" prop="equipmentId">
  477. <el-select v-model="editForm.equipmentId" clearable filterable placeholder="请选择云模盒编号" style="width:202px">
  478. <el-option v-for="item in boxes" :key="item.id" :label="item.equipmentNo" :value="item.id"></el-option>
  479. </el-select>
  480. </el-form-item>
  481. <el-form-item label="初始模次">
  482. <el-input v-model="editForm.initialModulus" autocomplete="off" placeholder="请输入初始模次"></el-input>
  483. </el-form-item>
  484. <el-form-item label="模次寿命">
  485. <el-input v-model="editForm.settingLife" autocomplete="off" placeholder="请输入模次寿命"></el-input>
  486. </el-form-item>
  487. <el-form-item label="RIFD码">
  488. <el-input v-model="editForm.rfid" autocomplete="off" placeholder="请输入RIFD码"></el-input>
  489. </el-form-item>
  490. <el-form-item label="保养次数">
  491. <el-select v-model="editForm.maintainCount" clearable multiple allow-create filterable default-first-option placeholder="请选择保养次数" style="width:202px">
  492. <el-option v-for="item in maintainCount" :key="item" :label="item" :value="item"></el-option>
  493. </el-select>
  494. </el-form-item>
  495. <el-form-item label="所属生产方" v-if="moldDetail.projectId != null">
  496. <el-select v-model="editForm.produceCompanyId" clearable filterable placeholder="请选择所属生产方" style="width:202px">
  497. <el-option v-for="item in customCompany" :key="item.companyId" :label="item.companyName" :value="item.companyId"></el-option>
  498. </el-select>
  499. </el-form-item>
  500. </el-form>
  501. <div slot="footer" class="dialog-footer">
  502. <el-button @click.native="editFormVisible = false">取消</el-button>
  503. <el-button type="primary" @click.native="addSubmit" :loading="editLoading">提交</el-button>
  504. </div>
  505. </el-dialog>
  506. </section>
  507. </template>
  508. <script>
  509. import util from "../../common/js/util";
  510. export default {
  511. data() {
  512. return {
  513. detailId: this.$route.params.id,
  514. user: JSON.parse(sessionStorage.getItem("user")),
  515. moldDetail: {},
  516. customCompany: [],
  517. boxes: [],
  518. //操作记录的时间
  519. recordTime: "",
  520. //单独新增零件时所需的三个变量
  521. newParts: {
  522. number: "",
  523. name: "",
  524. life: ""
  525. },
  526. uploading:[false, false, false, false],
  527. editParts: {
  528. id: 0,
  529. number: "",
  530. name: "",
  531. life: ""
  532. },
  533. maintainCount: [5000,10000],
  534. formRules: {
  535. modelNo: [
  536. { required: true, message: "请输入模具编号", trigger: "blur" }
  537. ],
  538. modelName: [
  539. { required: true, message: "请输入模具名称", trigger: "blur" }
  540. ],
  541. equipmentId: [
  542. {
  543. required: true,
  544. message: "请选择云模盒编号",
  545. trigger: ["blur", "change"]
  546. }
  547. ],
  548. number: [
  549. { required: true, message: "请输入零件编号", trigger: "blur" }
  550. ],
  551. name: [
  552. { required: true, message: "请输入零件名称", trigger: "blur" }
  553. ],
  554. life: [
  555. { required: true, message: "请输入零件寿命次数", trigger: "blur" }
  556. ],
  557. },
  558. //权限
  559. update: 0,
  560. download: 0,
  561. view: 0,
  562. approve: 0,
  563. //6种文档
  564. documents: {
  565. mould: [],
  566. part: [],
  567. check: [],
  568. maintain: [],
  569. update: [],
  570. abandon: []
  571. },
  572. //2D还是3D
  573. fileType: 1,
  574. //操作记录
  575. operations: [],
  576. allDetail: {
  577. overflow: "auto",
  578. padding: "0px 5px",
  579. height: 0
  580. },
  581. centerDialogVisible: false, //审批界面
  582. centerDialog2Visible: false, //模具界面
  583. centerDialog3Visible: false, //创建零件界面
  584. centerDialog4Visible: false, //零件文档上传界面
  585. centerDialog5Visible: false, //批量导出操作界面
  586. editPortVisible: false,//编辑零件界面
  587. listLoading: false,
  588. activeTab: 0,
  589. activePage: 0,
  590. activeArticleId: null,
  591. activeFileName: null,
  592. editFormVisible: false, //修改界面是否显示
  593. editLoading: false,
  594. //修改界面数据
  595. editForm: {
  596. id: 0,
  597. modelName: "",
  598. modelNo: "",
  599. equipmentId: "",
  600. initialModulus: "",
  601. settingLife: "",
  602. rfid: "",
  603. produceCompanyId: "",
  604. maintainCount: [],
  605. flag: 1
  606. },
  607. files: [],
  608. twoId: null,
  609. threeId: null,
  610. };
  611. },
  612. methods: {
  613. backToList() {
  614. this.$router.go(-1);
  615. },
  616. toDetection() {
  617. this.$router.push("/detection");
  618. },
  619. toPro(id) {
  620. this.$router.push('/project/' + id);
  621. },
  622. //标签页面切换时
  623. handleClick(tab, event) {
  624. this.activeTab = tab.name;
  625. this.getOperationRecord(this.activeTab);
  626. },
  627. getMsg() {
  628. this.http.post( this.port.base.moulds, {
  629. belongCompanyId: this.user.companyId,
  630. mouldId: this.detailId
  631. },
  632. res => {
  633. if (res.code == "ok") {
  634. this.boxes = res.data;
  635. } else {
  636. this.$message({
  637. message: res.msg,
  638. type: "error"
  639. });
  640. }
  641. },
  642. error => {
  643. this.listLoading = false;
  644. this.$message({
  645. message: error,
  646. type: "error"
  647. });
  648. });
  649. },
  650. //模具详情
  651. getDetail() {
  652. this.http.post( this.port.mold.moldDetail, {
  653. id: this.detailId
  654. },
  655. res => {
  656. if (res.code == "ok") {
  657. var detail = res.data.vo;
  658. if (detail.endTime == null) {
  659. detail.diffTime = "";
  660. } else {
  661. detail.diffTime = util.formatDate.dateDiff(
  662. util.formatDate.format(new Date(detail.endTime), "yyyy-MM-dd"),
  663. util.formatDate.format(new Date(new Date()), "yyyy-MM-dd")
  664. );
  665. }
  666. this.moldDetail = detail;
  667. this.customCompany = res.data.customCompany;
  668. this.update = res.data.update;
  669. this.download = res.data.download;
  670. this.view = res.data.view;
  671. this.approve = res.data.approve;
  672. this.getDocument();
  673. this.getPartList();
  674. } else {
  675. this.$message({
  676. message: res.msg,
  677. type: "error"
  678. });
  679. }
  680. },
  681. error => {
  682. this.$message({
  683. message: error,
  684. type: "error"
  685. });
  686. });
  687. },
  688. //打开编辑
  689. edit() {
  690. this.editFormVisible = true;
  691. var maintainCount = this.moldDetail.maintainCount;
  692. maintainCount = maintainCount.split(",");
  693. this.editForm = {
  694. id: this.moldDetail.id,
  695. modelName: this.moldDetail.modelName,
  696. modelNo: this.moldDetail.modelNo,
  697. equipmentId: this.moldDetail.equipmentId,
  698. initialModulus: this.moldDetail.initialModulus,
  699. settingLife: this.moldDetail.settingLife,
  700. rfid: this.moldDetail.rfid,
  701. produceCompanyId: this.moldDetail.produceCompanyId,
  702. maintainCount: maintainCount,
  703. flag: 1
  704. };
  705. },
  706. addSubmit() {
  707. this.$refs.editForm.validate(valid => {
  708. if (valid) {
  709. this.editLoading = true;
  710. var maintainCount = this.editForm.maintainCount , str = "";
  711. for(var i in maintainCount) {
  712. if(i == maintainCount.length-1){
  713. str += maintainCount[i]
  714. } else {
  715. str += maintainCount[i] + ","
  716. }
  717. }
  718. this.editForm.maintainCount = str;
  719. this.http.post( this.port.mold.addMold, this.editForm,
  720. res => {
  721. this.editLoading = false;
  722. if (res.code == "ok") {
  723. this.editFormVisible = false;
  724. this.$message({
  725. message: "修改成功",
  726. type: "success"
  727. });
  728. this.getDetail();
  729. } else {
  730. this.$message({
  731. message: res.msg,
  732. type: "error"
  733. });
  734. }
  735. },
  736. error => {
  737. this.editLoading = false;
  738. this.editFormVisible = false;
  739. this.$message({
  740. message: error,
  741. type: "error"
  742. });
  743. });
  744. }
  745. });
  746. },
  747. //获取文档
  748. getDocument() {
  749. this.http.post( this.port.mold.moldFileListAll, {
  750. mouldId: this.detailId
  751. },
  752. res => {
  753. if (res.code == "ok") {
  754. for(var i in res.data){
  755. this.setList(res.data[i].list,i);
  756. }
  757. //顺便再把下面操作记录读取一下
  758. this.getOperationRecord(this.activeTab);
  759. } else {
  760. this.$message({
  761. message: res.msg,
  762. type: "error"
  763. });
  764. }
  765. },
  766. error => {
  767. this.$message({
  768. message: error,
  769. type: "error"
  770. });
  771. });
  772. },
  773. //将list中对应的文件传入相应的document下
  774. setList(list, num) {
  775. var array = [];
  776. for(var i in list){
  777. if(this.approve == 1){
  778. array.push(list[i]);
  779. } else {
  780. if(list[i].uplodtorId == this.user.id && list[i].state <= 0){
  781. array.push(list[i]);
  782. }
  783. }
  784. }
  785. if(num == 0){
  786. this.documents.mould = array;
  787. } else if(num == 1) {
  788. //this.documents.part = array;
  789. } else if(num == 2) {
  790. this.documents.check = array;
  791. } else if(num == 3) {
  792. this.documents.maintain = array;
  793. } else if(num == 4) {
  794. this.documents.update = array;
  795. } else if(num == 5) {
  796. this.documents.abandon = array;
  797. }
  798. },
  799. //打开审批窗口
  800. checkOpen(id, name) {
  801. this.activeArticleId = id;
  802. this.activeFileName = name;
  803. this.twoId = null;
  804. this.threeId = null;
  805. this.centerDialogVisible = true;
  806. },
  807. //打开审批窗口
  808. checkOpenPort(row) {
  809. if(row.part2dFile != null) {
  810. this.twoId = row.part2dFile.id
  811. }
  812. if(row.part3dFile != null) {
  813. this.threeId = row.part3dFile.id
  814. }
  815. this.activeArticleId = null;
  816. this.activeFileName = null;
  817. this.centerDialogVisible = true;
  818. },
  819. //清理报废文档上传窗口中的文件
  820. clearFileRecord() {
  821. this.centerDialog2Visible = false;
  822. this.$refs.upload1.clearFiles();
  823. this.$refs.upload2.clearFiles();
  824. },
  825. //清理零件文档上传窗口中的文件
  826. clearFileRecord2() {
  827. this.centerDialog4Visible = false;
  828. this.$refs.upload4.clearFiles();
  829. },
  830. //审批文件
  831. check(adoption) {
  832. if(this.activeArticleId != null) {
  833. this.onSubMit(this.activeArticleId , adoption , 0)
  834. }
  835. if(this.twoId != null) {
  836. this.onSubMit(this.twoId , adoption , 1)
  837. }
  838. if(this.threeId != null) {
  839. this.onSubMit(this.threeId , adoption , 1)
  840. }
  841. },
  842. onSubMit(id , type , from) {
  843. this.http.post( this.port.mold.moldFileCheck, {
  844. mouldFileId: id,
  845. isPass: type ? 1 : 0 //通过为1 不通过为0
  846. },
  847. res => {
  848. if (res.code == "ok") {
  849. this.centerDialogVisible = false;
  850. this.$message({
  851. message: "审批成功",
  852. type: "success"
  853. });
  854. if(from == 0){
  855. this.getDocument();
  856. } else {
  857. this.getPartList();
  858. }
  859. } else {
  860. this.$message({
  861. message: res.msg,
  862. type: "error"
  863. });
  864. }
  865. },
  866. error => {
  867. this.$message({
  868. message: error,
  869. type: "error"
  870. });
  871. }
  872. );
  873. },
  874. //更新审批通过
  875. checkUpdate(id, approval) {
  876. var tipString = "";
  877. if(confirm){
  878. tipString = "确认审批通过吗?";
  879. }else{
  880. tipString = "确认审批拒绝吗?";
  881. }
  882. this.$confirm(tipString, '审批', {
  883. type: 'info'
  884. }).then(() => {
  885. this.http.post( this.port.mold.moldFileCheck, {
  886. mouldFileId: id,
  887. isPass: confirm ? 1 : 0 //通过为1 不通过为0
  888. },
  889. res => {
  890. if (res.code == "ok") {
  891. this.$message({
  892. message: "审批完成",
  893. type: "success"
  894. });
  895. this.getDocument();
  896. } else {
  897. this.$message({
  898. message: res.msg,
  899. type: "error"
  900. });
  901. }
  902. },
  903. error => {
  904. this.$message({
  905. message: error,
  906. type: "error"
  907. });
  908. }
  909. );
  910. })
  911. },
  912. //报废文件上传
  913. confirmUpload() {
  914. if (this.$refs.upload1.uploadFiles.length == 1 && this.$refs.upload2.uploadFiles.length == 1) {
  915. this.$refs.upload1.submit();
  916. this.$refs.upload2.submit();
  917. this.centerDialog2Visible = false;
  918. this.clearFileRecord();
  919. } else {
  920. this.$message({
  921. message: "必须各上传一个文件",
  922. type: "error"
  923. });
  924. }
  925. },
  926. //文件上传
  927. uploadFile(params) {
  928. var fileObj = params.file;
  929. var form = new FormData();
  930. form.append("file", fileObj);
  931. form.append("belongType", this.activeTab);
  932. form.append("mouldId", this.detailId);
  933. if (this.activeTab == 0 || this.activeTab == 1) {
  934. form.append("dwgType", this.fileType);
  935. }
  936. this.http.uploadFile( this.port.mold.moldFileUpload, form,
  937. res => {
  938. if (res.code == "ok") {
  939. this.$message({
  940. message: "上传成功",
  941. type: "success"
  942. });
  943. this.$refs.upload.clearFiles();
  944. this.getDocument();
  945. } else {
  946. this.$message({
  947. message: res.msg,
  948. type: "error"
  949. });
  950. }
  951. },
  952. error => {
  953. this.$message({
  954. message: error,
  955. type: "error"
  956. });
  957. });
  958. },
  959. //文件下载
  960. dowloadfile(id) {
  961. this.http.post( this.port.mold.moldFileDowload, {
  962. id: id
  963. },
  964. res => {
  965. this.getOperationRecord(this.activePage);
  966. },
  967. error => {
  968. this.$message({
  969. message: error,
  970. type: "error"
  971. });
  972. });
  973. },
  974. //文件删除
  975. deleteFile(fileId) {
  976. this.$confirm('确认删除该文档吗?', '提示', {
  977. type: 'warning'
  978. }).then(() => {
  979. this.http.post( this.port.mold.moldFileDelete, { id: fileId },
  980. res => {
  981. if (res.code == "ok") {
  982. this.$message({
  983. message: "删除成功",
  984. type: "success"
  985. });
  986. this.getDocument();
  987. } else {
  988. this.$message({
  989. message: res.msg,
  990. type: "error"
  991. });
  992. }
  993. },
  994. error => {
  995. this.$message({
  996. message: error,
  997. type: "error"
  998. });
  999. });
  1000. }).catch(() => {});
  1001. },
  1002. //零件新建
  1003. subPart() {
  1004. this.$refs.newParts.validate(valid => {
  1005. if (valid) {
  1006. this.editLoading = true;
  1007. this.http.post( this.port.mold.addPart, {
  1008. partNo: this.newParts.number,
  1009. partName: this.newParts.name,
  1010. partLife: this.newParts.life,
  1011. mouldId: this.detailId
  1012. },
  1013. res => {
  1014. this.editLoading = false;
  1015. if (res.code == "ok") {
  1016. this.centerDialog3Visible = false;
  1017. this.$message({
  1018. message: "新建成功",
  1019. type: "success"
  1020. });
  1021. this.getPartList();
  1022. } else {
  1023. this.$message({
  1024. message: res.msg,
  1025. type: "error"
  1026. });
  1027. }
  1028. },
  1029. error => {
  1030. this.editLoading = false;
  1031. this.centerDialog3Visible = false;
  1032. this.$message({
  1033. message: error,
  1034. type: "error"
  1035. });
  1036. });
  1037. }
  1038. })
  1039. },
  1040. //打开零件修改
  1041. editPort(row) {
  1042. this.editPortVisible = true;
  1043. this.editParts = {
  1044. id: row.id,
  1045. number: row.partNo,
  1046. name: row.partName,
  1047. life: row.partLife
  1048. }
  1049. },
  1050. editPartVisible() {
  1051. this.$refs.editParts.validate(valid => {
  1052. if (valid) {
  1053. this.editLoading = true;
  1054. this.http.post( this.port.mold.addPart, {
  1055. partNo: this.editParts.number,
  1056. partName: this.editParts.name,
  1057. partLife: this.editParts.life,
  1058. mouldId: this.detailId
  1059. },
  1060. res => {
  1061. this.editLoading = false;
  1062. if (res.code == "ok") {
  1063. this.editPortVisible = false;
  1064. this.$message({
  1065. message: "新建成功",
  1066. type: "success"
  1067. });
  1068. this.getPartList();
  1069. } else {
  1070. this.$message({
  1071. message: res.msg,
  1072. type: "error"
  1073. });
  1074. }
  1075. },
  1076. error => {
  1077. this.editLoading = false;
  1078. this.editPortVisible = false;
  1079. this.$message({
  1080. message: error,
  1081. type: "error"
  1082. });
  1083. });
  1084. }
  1085. })
  1086. },
  1087. //零件列表
  1088. getPartList() {
  1089. this.http.post( this.port.mold.partList, {
  1090. mouldId: this.detailId
  1091. },
  1092. res => {
  1093. if (res.code == "ok") {
  1094. var list = res.data;
  1095. for(var i in list){
  1096. if(list[i].state == null){
  1097. list[i].state = 100;
  1098. }
  1099. }
  1100. // console.log(list)
  1101. this.documents.part = list;
  1102. } else {
  1103. this.$message({
  1104. message: res.msg,
  1105. type: "error"
  1106. });
  1107. }
  1108. },
  1109. error => {
  1110. this.$message({
  1111. message: error,
  1112. type: "error"
  1113. });
  1114. });
  1115. },
  1116. //零件导入
  1117. uploadPart(params) {
  1118. var fileObj = params.file;
  1119. var form = new FormData();
  1120. form.append("file", fileObj);
  1121. form.append("mouldId", this.detailId);
  1122. this.http.uploadFile( this.port.mold.importPart, form,
  1123. res => {
  1124. if (res.code == "ok") {
  1125. this.$message({
  1126. message: "上传成功",
  1127. type: "success"
  1128. });
  1129. this.$refs.upload.clearFiles();
  1130. this.getPartList();
  1131. } else {
  1132. this.$message({
  1133. message: res.msg,
  1134. type: "error"
  1135. });
  1136. }
  1137. },
  1138. error => {
  1139. this.$message({
  1140. message: error,
  1141. type: "error"
  1142. });
  1143. });
  1144. },
  1145. //零件文档批量
  1146. beforeRemove(params) {
  1147. for(var i in this.files){
  1148. if(this.files[i].uid == params.uid) {
  1149. this.files.splice(i , 1);
  1150. }
  1151. }
  1152. },
  1153. uploadPartFile(params) {
  1154. this.files.push(params.file)
  1155. return false;
  1156. },
  1157. uploadFilePart() {
  1158. var fileObj = this.files;
  1159. var form = new FormData();
  1160. for(var i in fileObj){
  1161. form.append("file", fileObj[i]);
  1162. }
  1163. form.append("mouldId", this.detailId);
  1164. this.http.uploadFile( this.port.mold.partUpload, form,
  1165. res => {
  1166. if (res.code == "ok") {
  1167. this.$message({
  1168. message: "上传成功",
  1169. type: "success"
  1170. });
  1171. this.centerDialog4Visible = false;
  1172. this.$refs.upload4.clearFiles();
  1173. this.getPartList();
  1174. } else {
  1175. this.$message({
  1176. message: res.msg,
  1177. type: "error"
  1178. });
  1179. }
  1180. },
  1181. error => {
  1182. this.centerDialog4Visible = false;
  1183. this.$message({
  1184. message: error,
  1185. type: "error"
  1186. });
  1187. });
  1188. },
  1189. //获取操作记录
  1190. getOperationRecord(type) {
  1191. this.http.post( this.port.mold.moldOperationList, {
  1192. mouldId: this.detailId,
  1193. belongType: type
  1194. },
  1195. res => {
  1196. if (res.code == "ok") {
  1197. this.operations = res.data;
  1198. } else {
  1199. this.$message({
  1200. message: res.msg,
  1201. type: "error"
  1202. });
  1203. }
  1204. },
  1205. error => {
  1206. this.$message({
  1207. message: error,
  1208. type: "error"
  1209. });
  1210. });
  1211. },
  1212. //更新申请
  1213. updateRequest(){
  1214. this.$confirm('要申请更新模具吗?', '申请', {
  1215. type: 'info'
  1216. }).then(() => {
  1217. this.http.post( this.port.mold.moldFileUpload, {
  1218. belongType: 4,
  1219. mouldId: this.detailId
  1220. },
  1221. res => {
  1222. if (res.code == "ok") {
  1223. this.$message({
  1224. message: "申请成功",
  1225. type: "success"
  1226. });
  1227. this.getDocument();
  1228. } else {
  1229. this.$message({
  1230. message: res.msg,
  1231. type: "error"
  1232. });
  1233. }
  1234. },
  1235. error => {
  1236. this.$message({
  1237. message: error,
  1238. type: "error"
  1239. });
  1240. });
  1241. }).catch(() => {});
  1242. },
  1243. //导出操作记录
  1244. exportRecords(){
  1245. if(this.recordTime[0] == null || this.recordTime[1] == null){
  1246. this.$message({
  1247. message: "未输入时间",
  1248. type: "error"
  1249. });
  1250. }else{
  1251. this.centerDialog5Visible = false;
  1252. this.http.post( this.port.mold.exportOperationExcel, {
  1253. mouldId: this.detailId,
  1254. startTime: this.recordTime[0],
  1255. endTime: this.recordTime[1]
  1256. },
  1257. res => {
  1258. if (res.code == "ok") {
  1259. console.log("进行下载,我文件呢???")
  1260. } else {
  1261. this.$message({
  1262. message: res.msg,
  1263. type: "error"
  1264. });
  1265. }
  1266. },
  1267. error => {
  1268. this.$message({
  1269. message: error,
  1270. type: "error"
  1271. });
  1272. });
  1273. }
  1274. }
  1275. },
  1276. created() {
  1277. let height = window.innerHeight;
  1278. this.allDetail.height = height - 170 + "px";
  1279. const that = this;
  1280. window.onresize = function temp() {
  1281. that.allDetail.height = window.innerHeight - 170;
  1282. };
  1283. },
  1284. mounted() {
  1285. this.getMsg();
  1286. this.getDetail();
  1287. }
  1288. };
  1289. </script>
  1290. <style scoped>
  1291. .toolbar .el-form-item {
  1292. font-size: 14px;
  1293. vertical-align: middle;
  1294. }
  1295. .back {
  1296. font-size: 16px;
  1297. }
  1298. .divLine {
  1299. width: 2px;
  1300. background: #c3c3c3;
  1301. height: 100%;
  1302. }
  1303. .projectTitle {
  1304. font-size: 18px;
  1305. color: #333;
  1306. }
  1307. .state {
  1308. float: right;
  1309. }
  1310. .tips {
  1311. color: #bbb;
  1312. }
  1313. .title {
  1314. padding-left: 10px;
  1315. padding-bottom: 0px;
  1316. margin: 20px 0;
  1317. font-size: 16px;
  1318. line-height: 24px;
  1319. border-left: 1px #20a0ff solid;
  1320. }
  1321. .editDetail {
  1322. margin-left: 10px;
  1323. color: #20a0ff;
  1324. cursor: pointer;
  1325. }
  1326. .download {
  1327. text-decoration:none;
  1328. color: #20a0ff;
  1329. cursor: pointer;
  1330. }
  1331. .info {
  1332. color: grey;
  1333. }
  1334. .belongPro {
  1335. cursor: pointer;
  1336. color:#20a0ff;
  1337. }
  1338. .main {
  1339. padding-left: 10px;
  1340. }
  1341. .detail {
  1342. margin-bottom: 20px;
  1343. }
  1344. </style>