You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2728 lines
95 KiB

4 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
3 years ago
3 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
3 years ago
4 years ago
3 years ago
4 years ago
3 years ago
3 years ago
4 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
  1. <template>
  2. <div class="mod-config">
  3. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
  4. <el-form-item>
  5. <span slot="label" style="" @click="getSearchModal()"><a herf="#">{{ labels.partNo }}</a></span>
  6. <el-input v-model="mainData.partNo" readonly style="width: 130px"></el-input>
  7. </el-form-item>
  8. <el-form-item :label="labels.spec">
  9. <el-input v-model="mainData.spec" readonly style="width: 274px"></el-input>
  10. </el-form-item>
  11. <el-form-item :label="labels.status">
  12. <el-input v-model="mainData.status" readonly style="width: 130px"></el-input>
  13. </el-form-item>
  14. <el-form-item :label="labels.site">
  15. <el-input v-model="mainData.site" readonly style="width: 130px"></el-input>
  16. <el-button @click="getPartDetail()" type="primary" style="margin-left: 2px;margin-top: 0px">
  17. {{ buttons.getPartDetail }}
  18. </el-button>
  19. <el-button @click="changeStatus()" type="primary" style="margin-left: 2px;margin-top: 0px">
  20. {{ buttons.changeStatus }}
  21. </el-button>
  22. </el-form-item>
  23. </el-form>
  24. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
  25. <el-form-item :label="labels.routingType">
  26. <el-input v-model="mainData.routingType" readonly style="width: 130px"></el-input>
  27. </el-form-item>
  28. <el-form-item :label="labels.revNo">
  29. <el-input v-model="mainData.revNo" readonly style="width: 130px"></el-input>
  30. </el-form-item>
  31. <el-form-item :label="labels.phaseInDate">
  32. <el-input v-model="mainData.phaseInDate" readonly style="width: 130px"></el-input>
  33. </el-form-item>
  34. <el-form-item :label="labels.phaseOutDate">
  35. <el-input v-model="mainData.phaseOutDate" readonly style="width: 130px"></el-input>
  36. </el-form-item>
  37. <el-form-item :label="labels.umid">
  38. <el-input v-model="mainData.umid" readonly style="width: 130px"></el-input>
  39. <el-button @click="tongBuOrder()" type="primary" style="margin-left: 2px;margin-top: 0px">
  40. {{ buttons.tongBuOrder }}
  41. </el-button>
  42. </el-form-item>
  43. </el-form>
  44. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
  45. <el-form-item :label="labels.remark">
  46. <el-input v-model="mainData.remark" readonly style="width: 417px"></el-input>
  47. <!-- <el-checkbox style="margin-left: 20px" disabled v-model="mainData.defaultflag">默认</el-checkbox>-->
  48. <!-- <el-checkbox style="margin-left: 80px" disabled v-model="mainData.repairFlag">修复版本</el-checkbox>-->
  49. </el-form-item>
  50. <el-form-item :label="labels.defaultflag">
  51. <el-checkbox style="margin-left: 0px" disabled v-model="mainData.defaultflag"></el-checkbox>
  52. </el-form-item>
  53. <el-form-item :label="labels.repairFlag" style="margin-left: 20px">
  54. <el-checkbox style="margin-left: 0px" disabled v-model="mainData.repairFlag"></el-checkbox>
  55. <el-button @click="setDefault()" type="primary" style="margin-left: 58px;margin-top: 0px">
  56. {{ buttons.setDefault }}
  57. </el-button>
  58. <el-button @click="copyRouting()" type="primary" style="margin-left: 2px;margin-top: 0px">
  59. {{ buttons.copyRouting }}
  60. </el-button>
  61. <el-button @click="addRoutingHeaderModel()" :disabled="authAdd" type="primary"
  62. style="margin-left: 2px;margin-top: 0px">{{ buttons.addPart }}
  63. </el-button>
  64. </el-form-item>
  65. </el-form>
  66. <el-tabs v-model="activeName">
  67. <el-tab-pane :label="labels.detail" name="first">
  68. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
  69. <el-button @click="addRoutingDetail()" type="primary" :disabled="authAdd"
  70. style="margin-left: 2px;margin-top: 0px">{{ buttons.add }}
  71. </el-button>
  72. <el-button @click="editRoutingDetail()" type="primary" :disabled="authEdit"
  73. style="margin-left: 2px;margin-top: 0px">{{ buttons.update }}
  74. </el-button>
  75. <el-button @click="copyItemRouting()" type="primary" :disabled="authEdit"
  76. style="margin-left: 2px;margin-top: 0px">{{ '复制' }}
  77. </el-button>
  78. <el-button @click="deleteRoutingDetail()" type="primary" :disabled="authDelete"
  79. style="margin-left: 2px;margin-top: 0px">{{ buttons.delete }}
  80. </el-button>
  81. <el-button @click="jumpWorkCenter()" type="primary" :disabled="!jumpFlag"
  82. style="margin-left: 2px;margin-top: 0px">{{ buttons.workCenter }}
  83. </el-button>
  84. <el-button @click="getResourceModel()" type="primary" style="margin-left: 2px;margin-top: 0px">
  85. {{ buttons.availableResource }}
  86. </el-button>
  87. </el-form>
  88. <el-table
  89. :height="height"
  90. :data="dataList2"
  91. border
  92. @row-click="clickData"
  93. highlight-current-row
  94. v-loading="dataListLoading"
  95. style="width: 100%;">
  96. <el-table-column
  97. v-for="(item,index) in columnList2" :key="index"
  98. :sortable="item.columnSortable"
  99. :prop="item.columnProp"
  100. :header-align="item.headerAlign"
  101. :show-overflow-tooltip="item.showOverflowTooltip"
  102. :align="item.align"
  103. :fixed="item.fixed==''?false:item.fixed"
  104. :width="item.columnWidth"
  105. :label="item.columnLabel">
  106. <template slot-scope="scope">
  107. <span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>
  108. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  109. style="width: 100px; height: 80px"/></span>
  110. </template>
  111. </el-table-column>
  112. </el-table>
  113. </el-tab-pane>
  114. <el-tab-pane :label="labels.toolDetail" name="second">
  115. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
  116. <el-button @click="addRoutingTool()" type="primary" :disabled="authAdd"
  117. style="margin-left: 2px;margin-top: 0px">{{ buttons.add }}
  118. </el-button>
  119. <el-button @click="editRoutingTool()" type="primary" :disabled="authEdit"
  120. style="margin-left: 2px;margin-top: 0px">{{ buttons.update }}
  121. </el-button>
  122. <el-button @click="deleteRoutingTool()" type="primary" :disabled="authDelete"
  123. style="margin-left: 2px;margin-top: 0px">{{ buttons.delete }}
  124. </el-button>
  125. <el-button @click="jumpToolInfo()" type="primary" :disabled="!jumpFlag2"
  126. style="margin-left: 2px;margin-top: 0px">{{ buttons.toolDetail }}
  127. </el-button>
  128. </el-form>
  129. <el-table
  130. :height="height"
  131. :data="dataList3"
  132. border
  133. @row-click="clickData2"
  134. highlight-current-row
  135. v-loading="dataListLoading"
  136. style="width: 100%;">
  137. <el-table-column
  138. v-for="(item,index) in columnList3" :key="index"
  139. :sortable="item.columnSortable"
  140. :prop="item.columnProp"
  141. :header-align="item.headerAlign"
  142. :show-overflow-tooltip="item.showOverflowTooltip"
  143. :align="item.align"
  144. :fixed="item.fixed==''?false:item.fixed"
  145. :width="item.columnWidth"
  146. :label="item.columnLabel">
  147. <template slot-scope="scope">
  148. <span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>
  149. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  150. style="width: 100px; height: 80px"/></span>
  151. </template>
  152. </el-table-column>
  153. </el-table>
  154. </el-tab-pane>
  155. </el-tabs>
  156. <el-dialog :title="labels.dataList" :close-on-click-modal="false" v-drag :visible.sync="modelFlag" width="680px">
  157. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
  158. <el-form-item :label="labels.partNo">
  159. <el-input v-model="searchPartNo" style="width: 130px"></el-input>
  160. <el-button @click="searchRoutingWithPartNo()" type="primary">{{ buttons.search }}</el-button>
  161. <!-- <el-button @click="addRoutingHeaderModel()" :disabled="authAdd" type="primary">{{ buttons.add }}</el-button>-->
  162. </el-form-item>
  163. </el-form>
  164. <el-table
  165. height="300"
  166. :data="dataList"
  167. border
  168. @row-dblclick="tableHanddle"
  169. v-loading="dataListLoading"
  170. style="width: 100%;">
  171. <el-table-column
  172. header-align="center"
  173. align="center"
  174. width="150"
  175. :label="labels.do">
  176. <template slot-scope="scope">
  177. <a type="text" size="small" v-if="!authEdit"
  178. @click="editRoutingHeaderModel(scope.row)">{{ buttons.update }}</a>
  179. <a type="text" size="small" v-if="!authDelete"
  180. @click="deleteRoutingHeaderData(scope.row)">{{ buttons.delete }}</a>
  181. </template>
  182. </el-table-column>
  183. <el-table-column
  184. v-for="(item,index) in columnList" :key="index"
  185. :sortable="item.columnSortable"
  186. :prop="item.columnProp"
  187. :header-align="item.headerAlign"
  188. :show-overflow-tooltip="item.showOverflowTooltip"
  189. :align="item.align"
  190. :fixed="item.fixed==''?false:item.fixed"
  191. :min-width="item.columnWidth"
  192. :label="item.columnLabel">
  193. <template slot-scope="scope">
  194. <span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>
  195. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  196. style="width: 100px; height: 80px"/></span>
  197. </template>
  198. </el-table-column>
  199. </el-table>
  200. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  201. <el-button type="primary" @click="modelFlag = false">{{ buttons.close }}</el-button>
  202. </el-footer>
  203. </el-dialog>
  204. <el-dialog title="维护工艺路线明细" :close-on-click-modal="false" v-drag :visible.sync="detailmodelFlag"
  205. width="620px">
  206. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: 0px;">
  207. <el-form-item :label="labels.itemNo">
  208. <el-input v-model="detailData.itemNo" :disabled="detailmodelInputFlag" style="width: 130px;text-align: right"
  209. type="number"></el-input>
  210. </el-form-item>
  211. <el-form-item :label="labels.operationDesc">
  212. <el-input v-model="detailData.operationDesc" style="width: 130px"></el-input>
  213. </el-form-item>
  214. <el-form-item>
  215. <span slot="label" style="" @click="getBaseList(24,0)"><a herf="#">{{ labels.workCenterNo }}</a></span>
  216. <el-input v-model="detailData.workCenterNo" style="width: 130px"></el-input>
  217. </el-form-item>
  218. <el-form-item :label="labels.machSetupTime">
  219. <el-input v-model="detailData.machSetupTime" style="width: 130px"></el-input>
  220. </el-form-item>
  221. </el-form>
  222. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: 0px;">
  223. <el-form-item :label="labels.machRunFactor">
  224. <el-input v-model="detailData.machRunFactor" type="number" style="width: 130px"></el-input>
  225. </el-form-item>
  226. <el-form-item :label="labels.factorUnit">
  227. <el-select filterable v-model="detailData.factorUnit" style="width: 130px">
  228. <el-option :label="labels.oneandtime" value="单位/小时"></el-option>
  229. <el-option :label="labels.time" value="小时"></el-option>
  230. </el-select>
  231. </el-form-item>
  232. <el-form-item :label="labels.jjgzUnitPrice">
  233. <el-input v-model="detailData.jjgzUnitPrice" type="number" style="width: 130px"></el-input>
  234. </el-form-item>
  235. <el-form-item :label="labels.jjgzUnitFactor">
  236. <el-select filterable v-model="detailData.jjgzUnitFactor" style="width: 130px">
  237. <el-option :label="labels.time" value="小时"></el-option>
  238. <el-option :label="labels.one" value="件"></el-option>
  239. </el-select>
  240. </el-form-item>
  241. </el-form>
  242. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: 0px;">
  243. <el-form-item :label="labels.efficiency">
  244. <el-input v-model="detailData.efficiency" type="number" style="width: 130px"></el-input>
  245. </el-form-item>
  246. <el-form-item :label="labels.crewsize">
  247. <el-input v-model="detailData.crewsize" type="number" style="width: 130px"></el-input>
  248. </el-form-item>
  249. <el-form-item :label="labels.remark">
  250. <el-input v-model="detailData.remark" style="width: 130px"></el-input>
  251. </el-form-item>
  252. </el-form>
  253. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  254. <el-button type="primary" @click="saveRoutingDetailData()">{{ buttons.save }}</el-button>
  255. <el-button type="primary" @click="detailmodelFlag = false">{{ buttons.close }}</el-button>
  256. </el-footer>
  257. </el-dialog>
  258. <el-dialog :title="labels.updateRoutingTool" :close-on-click-modal="false" v-drag :visible.sync="ToolmodelFlag"
  259. width="480px">
  260. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: 0px;">
  261. <el-form-item :label="labels.itemNo">
  262. <el-select v-model="toolData.itemNo" @change="getOperationDesc()" :disabled="toolmodelInputFlag"
  263. style="width: 130px" placeholder="请选择">
  264. <el-option
  265. v-for="(item,index) in selectList"
  266. :key="index"
  267. :label="item.label"
  268. :value="item.value"
  269. >
  270. </el-option>
  271. </el-select>
  272. </el-form-item>
  273. <el-form-item :label="labels.operationDesc">
  274. <el-input v-model="toolData.operationDesc" disabled style="width: 130px;text-align: right"></el-input>
  275. </el-form-item>
  276. <el-form-item>
  277. <span slot="label" style="" @click="getBaseList(70,0)"><a herf="#">{{ labels.toolID }}</a></span>
  278. <el-input v-model="toolData.newToolId" @change="getToolDesc()"
  279. style="width: 130px;text-align: right"></el-input>
  280. </el-form-item>
  281. </el-form>
  282. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: 0px;">
  283. <el-form-item :label="labels.toolDescription">
  284. <el-input v-model="toolData.toolDescription" disabled style="width: 130px;text-align: right"></el-input>
  285. </el-form-item>
  286. <el-form-item :label="labels.spec2">
  287. <el-input v-model="toolData.spec" disabled style="width: 275px;text-align: right"></el-input>
  288. </el-form-item>
  289. </el-form>
  290. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: 0px;">
  291. <el-form-item :label="labels.toolQty">
  292. <el-input v-model="toolData.toolQty" style="width: 130px;text-align: right" type="number"></el-input>
  293. </el-form-item>
  294. <el-form-item :label="labels.remark">
  295. <el-input v-model="toolData.remark" style="width: 275px;text-align: right"></el-input>
  296. </el-form-item>
  297. </el-form>
  298. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  299. <el-button type="primary" @click="saveRoutingTool()">{{ buttons.save }}</el-button>
  300. <el-button type="primary" @click="ToolmodelFlag = false">{{ buttons.close }}</el-button>
  301. </el-footer>
  302. </el-dialog>
  303. <el-dialog :title="labels.availableResource" :close-on-click-modal="false" v-drag :visible.sync="routingModelFlag"
  304. width="800px">
  305. <el-container>
  306. <el-main style="width: 300px">
  307. <span style="">{{ labels.chooseableResource }}</span>
  308. <el-table
  309. height="300px"
  310. :data="resourceList1"
  311. border
  312. @row-click="clickData3"
  313. highlight-current-row
  314. v-loading="dataListLoading"
  315. style="width: 100%">
  316. <el-table-column
  317. v-for="(item,index) in columnList4" :key="index"
  318. :sortable="item.columnSortable"
  319. :prop="item.columnProp"
  320. :header-align="item.headerAlign"
  321. :show-overflow-tooltip="item.showOverflowTooltip"
  322. :align="item.align"
  323. :fixed="item.fixed==''?false:item.fixed"
  324. :min-width="item.columnWidth"
  325. :label="item.columnLabel">
  326. <template slot-scope="scope">
  327. <span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>
  328. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  329. style="width: 100px; height: 80px"/></span>
  330. </template>
  331. </el-table-column>
  332. </el-table>
  333. </el-main>
  334. <el-main style="width: 100px">
  335. <div style="margin-top: 100px">
  336. <el-button type="primary" @click="addResource()">{{ buttons.addResource }}>></el-button>
  337. </div>
  338. <div style="margin-top: 20px">
  339. <el-button type="primary" @click="deleteResource()">{{ buttons.deleteResource }}<<</el-button>
  340. </div>
  341. </el-main>
  342. <el-main style="width: 300px">
  343. <span style="">{{ labels.choosedResource }}</span>
  344. <el-table
  345. height="300px"
  346. :data="resourceList2"
  347. border
  348. @row-click="clickData4"
  349. highlight-current-row
  350. v-loading="dataListLoading"
  351. style="width: 100%">
  352. <el-table-column
  353. v-for="(item,index) in columnList5" :key="index"
  354. :sortable="item.columnSortable"
  355. :prop="item.columnProp"
  356. :header-align="item.headerAlign"
  357. :show-overflow-tooltip="item.showOverflowTooltip"
  358. :align="item.align"
  359. :fixed="item.fixed==''?false:item.fixed"
  360. :min-width="item.columnWidth"
  361. :label="item.columnLabel">
  362. <template slot-scope="scope">
  363. <span v-if="!item.columnHidden"> {{ scope.row[item.columnProp] }}</span>
  364. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  365. style="width: 100px; height: 80px"/></span>
  366. </template>
  367. </el-table-column>
  368. </el-table>
  369. </el-main>
  370. </el-container>
  371. <!-- <el-footer style="height:40px;margin-top: 20px;text-align:center">-->
  372. <!-- <el-button type="primary" @click="routingModelFlag = false">关闭</el-button>-->
  373. <!-- </el-footer>-->
  374. </el-dialog>
  375. <el-dialog :title="labels.partDesc" :close-on-click-modal="false" v-drag :visible.sync="partFlag" width="630px">
  376. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  377. <el-form-item :label="labels.partNo">
  378. <el-input v-model="partData.partNo" readonly style="width: 130px"></el-input>
  379. </el-form-item>
  380. <el-form-item :label="labels.partDescription">
  381. <el-input v-model="partData.partDescription" readonly style="width: 260px"></el-input>
  382. </el-form-item>
  383. <el-form-item :label="labels.site">
  384. <el-input v-model="partData.site" readonly style="width: 130px"></el-input>
  385. </el-form-item>
  386. </el-form>
  387. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  388. <el-form-item :label="labels.createDate">
  389. <el-input v-model="partData.createDate" readonly style="width: 130px"></el-input>
  390. </el-form-item>
  391. <el-form-item :label="labels.umid">
  392. <el-input v-model="partData.umid" readonly style="width: 130px"></el-input>
  393. </el-form-item>
  394. <el-form-item :label="labels.active" style="margin-left: 130px">
  395. <el-input v-model="partData.active" readonly style="width: 130px;"></el-input>
  396. </el-form-item>
  397. </el-form>
  398. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">
  399. <el-form-item :label="labels.configurationTemplateID">
  400. <el-input v-model="partData.configurationTemplateID" readonly style="width: 130px"></el-input>
  401. </el-form-item>
  402. <el-form-item :label="labels.partNo2">
  403. <el-input v-model="partData.remark" readonly style="width: 260px"></el-input>
  404. </el-form-item>
  405. </el-form>
  406. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  407. <el-button type="primary" @click="partFlag = false">{{ buttons.close }}</el-button>
  408. </el-footer>
  409. </el-dialog>
  410. <el-dialog :title="labels.更改状态" :close-on-click-modal="false" v-drag :visible.sync="statusFlag" width="240px">
  411. <el-form :inline="true" label-position="top" style="margin-left: 0px;margin-top: -5px;">
  412. <el-form-item :label="labels.status" style="margin-left: 48px">
  413. <el-select v-model="status" style="width: 120px">
  414. <el-option :label="labels.test" value="试验"></el-option>
  415. <el-option :label="labels.product" value="投产"></el-option>
  416. <el-option :label="labels.stopUse" value="停用"></el-option>
  417. </el-select>
  418. </el-form-item>
  419. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  420. <el-button type="primary" @click="saveStatus()">{{ buttons.save }}</el-button>
  421. <el-button type="primary" @click="statusFlag = false">{{ buttons.close }}</el-button>
  422. </el-footer>
  423. </el-form>
  424. </el-dialog>
  425. <el-dialog :title="labels.copyRouting" :close-on-click-modal="false" v-drag :visible.sync="copyRoutingModelFlag"
  426. width="600px">
  427. <el-container>
  428. <el-main style="width: 450px;margin-top: -20px">
  429. <fieldset style="margin-left: 0px; margin-top: 0px; width: 420px;">
  430. <legend>{{ labels.oldRouting }}</legend>
  431. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: -8px;">
  432. <el-form-item :label="labels.partNo3">
  433. <el-input v-model="copyRoutingData.partNo" disabled style="width: 120px;text-align: right"></el-input>
  434. </el-form-item>
  435. <el-form-item :label="labels.partDescription2">
  436. <el-input v-model="copyRoutingData.partDescription" disabled
  437. style="width: 250px;text-align: right"></el-input>
  438. </el-form-item>
  439. </el-form>
  440. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: -0px;">
  441. <el-form-item :label="labels.revNo">
  442. <el-input v-model="copyRoutingData.revNo" disabled style="width: 120px;text-align: right"></el-input>
  443. </el-form-item>
  444. <el-form-item :label="labels.phaseInDate">
  445. <el-input v-model="copyRoutingData.phaseInDate" disabled
  446. style="width: 120px;text-align: right"></el-input>
  447. </el-form-item>
  448. <el-form-item :label="labels.repairFlag">
  449. <el-checkbox style="margin-left: 0px" disabled v-model="copyRoutingData.repairFlag"></el-checkbox>
  450. </el-form-item>
  451. </el-form>
  452. </fieldset>
  453. <fieldset style="margin-left: 0px; margin-top: 0px; width: 420px;">
  454. <legend>{{ labels.newRouting }}</legend>
  455. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: -8px;">
  456. <el-form-item>
  457. <span slot="label" style="" @click="getBaseList(5,1)"><a herf="#">工艺路线编码</a></span>
  458. <el-input v-model="copyRoutingData.partNo1" @change="getPartDescription()"
  459. style="width: 120px;text-align: right"></el-input>
  460. </el-form-item>
  461. <el-form-item :label="labels.partNo3">
  462. <el-input v-model="copyRoutingData.partDescription1" disabled
  463. style="width: 250px;text-align: right"></el-input>
  464. </el-form-item>
  465. </el-form>
  466. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: -0px;">
  467. <el-form-item :label="labels.revNo">
  468. <el-input v-model="copyRoutingData.revNo1" style="width: 120px;text-align: right"></el-input>
  469. </el-form-item>
  470. <el-form-item :label="labels.phaseInDate">
  471. <el-date-picker
  472. style="width: 130px"
  473. v-model="copyRoutingData.phaseInDate1"
  474. value-format="yyyy-MM-dd"
  475. :placeholder="labels.chooseDate">
  476. </el-date-picker>
  477. </el-form-item>
  478. <el-form-item :label="labels.repairFlag">
  479. <el-checkbox style="margin-left: 0px" v-model="copyRoutingData.repairFlag1"></el-checkbox>
  480. </el-form-item>
  481. </el-form>
  482. </fieldset>
  483. </el-main>
  484. <el-main style="width: 140px">
  485. <div style="width: 115px;">
  486. <el-checkbox style="margin-left: 0px" v-model="copyRoutingData.oldFlag"></el-checkbox>
  487. <span style="font-size: 11px">{{ labels.oldFlag }} </span>
  488. </div>
  489. <div>
  490. <span style="font-size: 11px;width: 115px">
  491. (仅用于相同产品版本升级的时候)
  492. </span>
  493. </div>
  494. <div style="width: 115px;margin-top: 15px">
  495. <el-checkbox style="margin-left: 0px" v-model="copyRoutingData.toolFlag"></el-checkbox>
  496. <span style="font-size: 11px">{{ labels.toolFlag }} </span>
  497. </div>
  498. <div style="width: 115px;margin-top: 15px">
  499. <el-checkbox style="margin-left: 0px" v-model="copyRoutingData.resourceFlag"></el-checkbox>
  500. <span style="font-size: 11px">{{ labels.resourceFlag }} </span>
  501. </div>
  502. </el-main>
  503. </el-container>
  504. <el-footer style="height:40px;margin-top: 0px;text-align:center">
  505. <el-button type="primary" @click="saveCopyRouting()">{{ buttons.save }}</el-button>
  506. <el-button type="primary" @click="copyRoutingModelFlag = false">{{ buttons.close }}</el-button>
  507. </el-footer>
  508. </el-dialog>
  509. <el-dialog :title="labels.updateRouting" :close-on-click-modal="false" v-drag :visible.sync="routingHeaderModelFlag"
  510. width="480px">
  511. <el-form :inline="true" label-position="top" style="margin-left: 0px;margin-top: -5px;">
  512. <el-form-item>
  513. <span slot="label" style="" @click="getBaseList(5,2)"><a herf="#">{{ labels.partNo3 }}</a></span>
  514. <el-input v-model="routingHeaderData.partNo" :disabled="routingHeaderInputFlag"
  515. style="width: 130px;text-align: right"></el-input>
  516. </el-form-item>
  517. <el-form-item :label="labels.site">
  518. <el-input v-model="routingHeaderData.site" disabled style="width: 130px;text-align: right"></el-input>
  519. </el-form-item>
  520. <el-form-item :label="labels.status">
  521. <el-input v-model="routingHeaderData.status" disabled style="width: 130px;text-align: right"></el-input>
  522. </el-form-item>
  523. </el-form>
  524. <el-form :inline="true" label-position="top" style="margin-left: 0px;margin-top: -5px;">
  525. <el-form-item :label="labels.revNo">
  526. <el-input v-model="routingHeaderData.revNo" :disabled="routingHeaderInputFlag"
  527. style="width: 130px;text-align: right"></el-input>
  528. </el-form-item>
  529. <el-form-item :label="labels.phaseInDate">
  530. <el-date-picker
  531. style="width: 130px"
  532. v-model="routingHeaderData.phaseInDate"
  533. value-format="yyyy-MM-dd"
  534. :placeholder="labels.chooseDate">
  535. </el-date-picker>
  536. </el-form-item>
  537. <el-form-item :label="labels.phaseOutDate">
  538. <el-date-picker
  539. style="width: 130px"
  540. v-model="routingHeaderData.phaseOutDate"
  541. value-format="yyyy-MM-dd"
  542. :placeholder="labels.chooseDate">
  543. </el-date-picker>
  544. </el-form-item>
  545. </el-form>
  546. <el-form :inline="true" label-position="top" style="margin-left: 0px;margin-top: -5px;">
  547. <el-form-item :label="labels.routingType">
  548. <el-input v-model="routingHeaderData.routingType" disabled style="width: 130px;text-align: right"></el-input>
  549. </el-form-item>
  550. <el-form-item :label="labels.remark">
  551. <el-input v-model="routingHeaderData.remark" style="width: 275px;text-align: right"></el-input>
  552. </el-form-item>
  553. </el-form>
  554. <el-form :inline="true" label-position="top" style="margin-left: 0px;margin-top: -5px;">
  555. <el-form-item :label="labels.defaultflag">
  556. <el-select v-model="routingHeaderData.defaultflag" :disabled="routingHeaderInputFlag" style="width: 130px">
  557. <el-option :label="labels.yes" value="Y"></el-option>
  558. <el-option :label="labels.no" value="N"></el-option>
  559. </el-select>
  560. </el-form-item>
  561. <el-form-item :label="labels.repairFlag">
  562. <el-select v-model="routingHeaderData.repairFlag" style="width: 130px">
  563. <el-option :label="labels.yes" value="Y"></el-option>
  564. <el-option :label="labels.no" value="N"></el-option>
  565. </el-select>
  566. </el-form-item>
  567. </el-form>
  568. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  569. <el-button type="primary" @click="saveRoutingHeaderData()">{{ buttons.save }}</el-button>
  570. <el-button type="primary" @click="routingHeaderModelFlag = false">{{ buttons.close }}</el-button>
  571. </el-footer>
  572. </el-dialog>
  573. <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
  574. </div>
  575. </template>
  576. <script>
  577. import {
  578. searchRoutingWithPartNo,
  579. searchRoutingDetailData,
  580. saveRoutingDetailData,
  581. deleteRoutingDetail,
  582. searchRoutingToolData,
  583. searchUsedResource,
  584. searchAllResource,
  585. addRoutingResource,
  586. deleteRoutingResource,
  587. getItemSelect,
  588. getToolDesc,
  589. saveRoutingTool,
  590. deleteRoutingTool,
  591. searchPartNoData,
  592. changeRoutingStatus,
  593. checkRoutingAndOrder,
  594. changeOrderRouting,
  595. saveCopyRouting,
  596. setDefault,
  597. saveRoutingHeaderData,
  598. deleteRoutingHeaderData,
  599. getPartNoRouteInMaxItemNo
  600. } from "@/api/base/site.js"
  601. import Chooselist from '@/views/modules/common/Chooselist'
  602. import {
  603. searchFunctionButtonList,
  604. } from "@/api/sysLanguage.js"
  605. var functionId = '103006';
  606. export default {
  607. name: "maintainProductRouting",
  608. components: {
  609. Chooselist
  610. },
  611. data() {
  612. return {
  613. labels: {
  614. site: '工厂编号:',
  615. partNo: '物料编码:',
  616. spec: '物料名称/规格型号:',
  617. status: '状态:',
  618. routingType: '工艺路线类型:',
  619. revNo: '版本号:',
  620. phaseInDate: '启用日期:',
  621. phaseOutDate: '停用日期:',
  622. umid: '计量单位:',
  623. remark: '备注:',
  624. defaultflag: '默认:',
  625. repairFlag: '修复版本:',
  626. detail: '明细',
  627. toolDetail: '工具清单',
  628. dataList: '数据表',
  629. do: '操作',
  630. itemNo: '工序号:',
  631. operationDesc: '工序名称:',
  632. workCenterNo: '加工中心编码:',
  633. machSetupTime: '准备时间:',
  634. machRunFactor: '单位产出量:',
  635. factorUnit: '产出单位:',
  636. jjgzUnitPrice: '计价单价:',
  637. jjgzUnitFactor: '单位:',
  638. efficiency: '效率:',
  639. crewsize: '操作工人数:',
  640. updateRoutingTool: '维护工艺路线工具',
  641. toolID: '工具编号:',
  642. toolDescription: '工具名称:',
  643. spec2: '规格型号:',
  644. toolQty: '工具数量:',
  645. availableResource: '可用机台',
  646. chooseableResource: '可选机台',
  647. choosedResource: '已选机台:',
  648. partDescription: '物料名称:',
  649. createDate: '新增日期:',
  650. active: '在用:',
  651. configurationTemplateID: '客户名称:',
  652. partNo2: '客户产品料号:',
  653. partDesc: '物料信息:',
  654. oneandtime: '单位/小时',
  655. time: '小时',
  656. one: '件',
  657. changeStatus: '更改状态',
  658. test: '试验',
  659. product: '投产',
  660. stopUse: '停用',
  661. copyRouting: '复制产品工艺路线',
  662. oldRouting: '源产品工艺路线',
  663. partNo3: '工艺路线编码:',
  664. partDescription2: '工艺路线名称:',
  665. newRouting: '新产品工艺路线',
  666. chooseDate: '选择日期',
  667. oldFlag: '自动停用早期所有版本:',
  668. toolFlag: '复制工具信息:',
  669. resourceFlag: '复制可用机台:',
  670. updateRouting: '维护工艺路线',
  671. yes: '是',
  672. no: '否',
  673. error: '错误',
  674. true: '确定',
  675. inRoutingNo: '请输入工艺路线号!',
  676. inRevNo: '请输入版本号!',
  677. inPhaseInDate: '请选择启用日期!',
  678. doYes: '操作成功!',
  679. cancel: '取消',
  680. deleteRoutingAsk: '是否删除此工艺路线的所有数据?',
  681. point: '提示',
  682. inPartNo: '请选择物料编码!',
  683. inItemNo: '请输入工序号!',
  684. inOperationDesc: '请输入工序名称!',
  685. inMachSetupTime: '请输入准备时间!',
  686. inWorkCenterNo: '请输入加工中心编码!',
  687. inJjgzUnitPrice: '请输入计价单价!',
  688. inCrewsize: '请输入操作员人数!',
  689. inEfficiency: '请输入效率!',
  690. efficiencyAsk: '效率必须大于0!',
  691. inRoutingItem: '请选择工艺路线工序!',
  692. deleteItemAsk: '是否删除此工艺路线工序?',
  693. inAvailableResource: '请选择可选机台:',
  694. inTool: '请选择工具!',
  695. chooseItem: '请选择工序号!',
  696. inToolId: '请输入工具编号!',
  697. inToolQty: '请输入工具数量!',
  698. deleteToolAsk: '是否删除此工具信息?',
  699. deleteResourceAsk: '是否删除机台',
  700. chooseResourceCan: '请选择可选机台',
  701. partNoNot: '该物料编码不存在',
  702. partNoNO1: '该物料状态为',
  703. partNoNO2: ',不需要修改!',
  704. cannottongbu: '特殊订单无法同步!',
  705. orderAsk: '确定要把该工艺路线同步到该产品的未开工生产订单上吗?',
  706. orderContinue: '个生产订单将会被同步是否继续?',
  707. inNewPartNo: '请输入新物料号!',
  708. inNewRevNo: '请输入新版本号!',
  709. inNewPhaseInDate: '请选择新启用日期!',
  710. defaultflagAsk: '是否将此工艺路线版本设为默认?',
  711. },
  712. buttons: {
  713. search: '查询',
  714. getPartDetail: '物料信息',
  715. changeStatus: '更改状态',
  716. download: '导出',
  717. tongBuOrder: '同步工艺路线到订单',
  718. setDefault: '设为默认',
  719. copyRouting: '复制产品工艺路线',
  720. add: '新增',
  721. addPart: '新增物料',
  722. close: '关闭',
  723. update: '修改',
  724. delete: '删除',
  725. workCenter: '加工中心',
  726. availableResource: '可用机台',
  727. toolDetail: '工具信息',
  728. save: '保存',
  729. addResource: '添加机台',
  730. deleteResource: '删除机台',
  731. },
  732. queryButton: {
  733. functionId: functionId,
  734. table_id: '*',
  735. languageCode: this.$i18n.locale,
  736. objectType: 'button'
  737. },
  738. queryLabel: {
  739. functionId: functionId,
  740. table_id: '*',
  741. languageCode: this.$i18n.locale,
  742. objectType: 'label'
  743. },
  744. routingHeaderInputFlag: false,
  745. routingHeaderModelFlag: false,
  746. routingHeaderData: {
  747. partNo: '',
  748. site: '',
  749. status: '',
  750. revNo: '',
  751. phaseInDate: '',
  752. phaseOutDate: '',
  753. routingType: '',
  754. remark: '',
  755. defaultflag: '',
  756. repairFlag: '',
  757. add: '',
  758. },
  759. selectList: [],
  760. resourceList1: [],
  761. resourceList2: [],
  762. currentRow4: null,
  763. currentRow3: null,
  764. currentRow2: null,
  765. currentRow: null,
  766. tagNo: '',
  767. status: '',
  768. dataListLoading: false,
  769. searchPartNo: '',
  770. height: 200,
  771. mainData: {
  772. partNo: '',
  773. spec: '',
  774. status: '',
  775. site: '',
  776. routingType: '',
  777. revNo: '',
  778. phaseInDate: '',
  779. phaseOutDate: '',
  780. umid: '',
  781. remark: '',
  782. defaultflag: '',
  783. repairFlag: '',
  784. },
  785. partData: {
  786. partNo: '',
  787. partDescription: '',
  788. site: '',
  789. createDate: '',
  790. umid: '',
  791. active: '',
  792. configurationTemplateID: '',
  793. modelFlag: '',
  794. },
  795. copyRoutingData: {
  796. partNo: '',
  797. partDescription: '',
  798. revNo: '',
  799. phaseInDate: '',
  800. repairFlag: '',
  801. partNo1: '',
  802. partDescription1: '',
  803. revNo1: '',
  804. phaseInDate1: '',
  805. repairFlag1: false,
  806. oldFlag: false,
  807. toolFlag: false,
  808. resourceFlag: false,
  809. },
  810. activeName: 'first',
  811. modelFlag: false,
  812. ToolmodelFlag: false,
  813. detailmodelFlag: false,
  814. detailmodelInputFlag: false,
  815. toolmodelInputFlag: false,
  816. copyRoutingModelFlag: false,
  817. partFlag: false,
  818. statusFlag: false,
  819. dataList: [],
  820. dataList2: [],
  821. dataList3: [],
  822. toolData: {
  823. site: '',
  824. partNo: '',
  825. revNo: '',
  826. itemNo: '',
  827. operationDesc: '',
  828. toolID: '',
  829. toolDescription: '',
  830. spec: '',
  831. toolQty: '',
  832. remark: '',
  833. user: '',
  834. add: '',
  835. newToolId: ''
  836. },
  837. columnList: [
  838. {
  839. userId: this.$store.state.user.name,
  840. functionId: 6040,
  841. serialNumber: '6040TablePartNo',
  842. tableId: "6040Table",
  843. tableName: "维护工艺路线数据表",
  844. columnProp: "partNo",
  845. headerAlign: "center",
  846. align: "left",
  847. columnLabel: "物料编码",
  848. columnHidden: false,
  849. columnImage: false,
  850. columnSortable: false,
  851. sortLv: 0,
  852. status: true,
  853. fixed: '',
  854. columnWidth: 100
  855. },
  856. {
  857. userId: this.$store.state.user.name,
  858. functionId: 6040,
  859. serialNumber: '6040TableSpec',
  860. tableId: "6040Table",
  861. tableName: "维护工艺路线数据表",
  862. columnProp: "spec",
  863. headerAlign: "center",
  864. align: "left",
  865. columnLabel: "名称/规格",
  866. columnHidden: false,
  867. columnImage: false,
  868. columnSortable: false,
  869. sortLv: 0,
  870. status: true,
  871. fixed: '',
  872. columnWidth: 120
  873. },
  874. {
  875. userId: this.$store.state.user.name,
  876. functionId: 6040,
  877. serialNumber: '6040TableRoutingType',
  878. tableId: "6040Table",
  879. tableName: "维护工艺路线数据表",
  880. columnProp: "routingType",
  881. headerAlign: "center",
  882. align: "left",
  883. columnLabel: "工艺路线类型",
  884. columnHidden: false,
  885. columnImage: false,
  886. columnSortable: false,
  887. sortLv: 0,
  888. status: true,
  889. fixed: '',
  890. columnWidth: 80
  891. },
  892. {
  893. userId: this.$store.state.user.name,
  894. functionId: 6040,
  895. serialNumber: '6040TableRevNo',
  896. tableId: "6040Table",
  897. tableName: "维护工艺路线数据表",
  898. columnProp: "revNo",
  899. headerAlign: "center",
  900. align: "left",
  901. columnLabel: "版本号",
  902. columnHidden: false,
  903. columnImage: false,
  904. columnSortable: false,
  905. sortLv: 0,
  906. status: true,
  907. fixed: '',
  908. columnWidth: 60
  909. },
  910. {
  911. userId: this.$store.state.user.name,
  912. functionId: 6040,
  913. serialNumber: '6040TablePhaseInDate',
  914. tableId: "6040Table",
  915. tableName: "维护工艺路线数据表",
  916. columnProp: "phaseInDate",
  917. headerAlign: "center",
  918. align: "left",
  919. columnLabel: "启用日期",
  920. columnHidden: false,
  921. columnImage: false,
  922. columnSortable: false,
  923. sortLv: 0,
  924. status: true,
  925. fixed: '',
  926. columnWidth: 80
  927. },
  928. {
  929. userId: this.$store.state.user.name,
  930. functionId: 6040,
  931. serialNumber: '6040TablePhaseOutDate',
  932. tableId: "6040Table",
  933. tableName: "维护工艺路线数据表",
  934. columnProp: "phaseOutDate",
  935. headerAlign: "center",
  936. align: "left",
  937. columnLabel: "停用日期",
  938. columnHidden: false,
  939. columnImage: false,
  940. columnSortable: false,
  941. sortLv: 0,
  942. status: true,
  943. fixed: '',
  944. columnWidth: 80
  945. },
  946. {
  947. userId: this.$store.state.user.name,
  948. functionId: 6040,
  949. serialNumber: '6040TableStatus',
  950. tableId: "6040Table",
  951. tableName: "维护工艺路线数据表",
  952. columnProp: "status",
  953. headerAlign: "center",
  954. align: "left",
  955. columnLabel: "状态",
  956. columnHidden: false,
  957. columnImage: false,
  958. columnSortable: false,
  959. sortLv: 0,
  960. status: true,
  961. fixed: '',
  962. columnWidth: 40
  963. },
  964. {
  965. userId: this.$store.state.user.name,
  966. functionId: 6040,
  967. serialNumber: '6040TableSite',
  968. tableId: "6040Table",
  969. tableName: "维护工艺路线数据表",
  970. columnProp: "site",
  971. headerAlign: "center",
  972. align: "left",
  973. columnLabel: "工厂编码",
  974. columnHidden: false,
  975. columnImage: false,
  976. columnSortable: false,
  977. sortLv: 0,
  978. status: true,
  979. fixed: '',
  980. columnWidth: 60
  981. },
  982. ],
  983. columnList2: [
  984. {
  985. userId: this.$store.state.user.name,
  986. functionId: 6040,
  987. serialNumber: '6040Table2ItemNo',
  988. tableId: "6040Table2",
  989. tableName: "维护工艺路线工序表",
  990. columnProp: "itemNo",
  991. headerAlign: "center",
  992. align: "right",
  993. columnLabel: "工序号",
  994. columnHidden: false,
  995. columnImage: false,
  996. columnSortable: false,
  997. sortLv: 0,
  998. status: true,
  999. fixed: '',
  1000. columnWidth: 60
  1001. },
  1002. {
  1003. userId: this.$store.state.user.name,
  1004. functionId: 6040,
  1005. serialNumber: '6040Table2OperationDesc',
  1006. tableId: "6040Table2",
  1007. tableName: "维护工艺路线工序表",
  1008. columnProp: "operationDesc",
  1009. headerAlign: "center",
  1010. align: "left",
  1011. columnLabel: "工序名称",
  1012. columnHidden: false,
  1013. columnImage: false,
  1014. columnSortable: false,
  1015. sortLv: 0,
  1016. status: true,
  1017. fixed: '',
  1018. columnWidth: 300
  1019. },
  1020. {
  1021. userId: this.$store.state.user.name,
  1022. functionId: 6040,
  1023. serialNumber: '6040Table2WorkCenterNo',
  1024. tableId: "6040Table2",
  1025. tableName: "维护工艺路线工序表",
  1026. columnProp: "workCenterNo",
  1027. headerAlign: "center",
  1028. align: "left",
  1029. columnLabel: "加工中心编码",
  1030. columnHidden: false,
  1031. columnImage: false,
  1032. columnSortable: false,
  1033. sortLv: 0,
  1034. status: true,
  1035. fixed: '',
  1036. columnWidth: 100
  1037. },
  1038. {
  1039. userId: this.$store.state.user.name,
  1040. functionId: 6040,
  1041. serialNumber: '6040Table2WorkCenterDesc',
  1042. tableId: "6040Table2",
  1043. tableName: "维护工艺路线工序表",
  1044. columnProp: "workCenterDesc",
  1045. headerAlign: "center",
  1046. align: "left",
  1047. columnLabel: "加工中心名称",
  1048. columnHidden: false,
  1049. columnImage: false,
  1050. columnSortable: false,
  1051. sortLv: 0,
  1052. status: true,
  1053. fixed: '',
  1054. columnWidth: 100
  1055. },
  1056. {
  1057. userId: this.$store.state.user.name,
  1058. functionId: 6040,
  1059. serialNumber: '6040Table2MachSetupTime',
  1060. tableId: "6040Table2",
  1061. tableName: "维护工艺路线工序表",
  1062. columnProp: "machSetupTime",
  1063. headerAlign: "center",
  1064. align: "right",
  1065. columnLabel: "准备时间(小时)",
  1066. columnHidden: false,
  1067. columnImage: false,
  1068. columnSortable: false,
  1069. sortLv: 0,
  1070. status: true,
  1071. fixed: '',
  1072. columnWidth: 100
  1073. },
  1074. {
  1075. userId: this.$store.state.user.name,
  1076. functionId: 6040,
  1077. serialNumber: '6040Table2MachRunFactor',
  1078. tableId: "6040Table2",
  1079. tableName: "维护工艺路线工序表",
  1080. columnProp: "machRunFactor",
  1081. headerAlign: "center",
  1082. align: "right",
  1083. columnLabel: "单位产出量",
  1084. columnHidden: false,
  1085. columnImage: false,
  1086. columnSortable: false,
  1087. sortLv: 0,
  1088. status: true,
  1089. fixed: '',
  1090. columnWidth: 100
  1091. },
  1092. {
  1093. userId: this.$store.state.user.name,
  1094. functionId: 6040,
  1095. serialNumber: '6040Table2FactorUnit',
  1096. tableId: "6040Table2",
  1097. tableName: "维护工艺路线工序表",
  1098. columnProp: "factorUnit",
  1099. headerAlign: "center",
  1100. align: "left",
  1101. columnLabel: "产出单位",
  1102. columnHidden: false,
  1103. columnImage: false,
  1104. columnSortable: false,
  1105. sortLv: 0,
  1106. status: true,
  1107. fixed: '',
  1108. columnWidth: 100
  1109. },
  1110. {
  1111. userId: this.$store.state.user.name,
  1112. functionId: 6040,
  1113. serialNumber: '6040Table2Efficiency',
  1114. tableId: "6040Table2",
  1115. tableName: "维护工艺路线工序表",
  1116. columnProp: "efficiency",
  1117. headerAlign: "center",
  1118. align: "right",
  1119. columnLabel: "效率(%)",
  1120. columnHidden: false,
  1121. columnImage: false,
  1122. columnSortable: false,
  1123. sortLv: 0,
  1124. status: true,
  1125. fixed: '',
  1126. columnWidth: 80
  1127. },
  1128. {
  1129. userId: this.$store.state.user.name,
  1130. functionId: 6040,
  1131. serialNumber: '6040Table2Remark',
  1132. tableId: "6040Table2",
  1133. tableName: "维护工艺路线工序表",
  1134. columnProp: "remark",
  1135. headerAlign: "center",
  1136. align: "left",
  1137. columnLabel: "备注",
  1138. columnHidden: false,
  1139. columnImage: false,
  1140. columnSortable: false,
  1141. sortLv: 0,
  1142. status: true,
  1143. fixed: '',
  1144. columnWidth: 160
  1145. },
  1146. {
  1147. userId: this.$store.state.user.name,
  1148. functionId: 6040,
  1149. serialNumber: '6040Table2JJGZUnitPrice',
  1150. tableId: "6040Table2",
  1151. tableName: "维护工艺路线工序表",
  1152. columnProp: "jjgzUnitPrice",
  1153. headerAlign: "center",
  1154. align: "right",
  1155. columnLabel: "每件计价",
  1156. columnHidden: false,
  1157. columnImage: false,
  1158. columnSortable: false,
  1159. sortLv: 0,
  1160. status: true,
  1161. fixed: '',
  1162. columnWidth: 100
  1163. },
  1164. {
  1165. userId: this.$store.state.user.name,
  1166. functionId: 6040,
  1167. serialNumber: '6040Table2JJGZUnitFactor',
  1168. tableId: "6040Table2",
  1169. tableName: "维护工艺路线工序表",
  1170. columnProp: "jjgzUnitFactor",
  1171. headerAlign: "center",
  1172. align: "left",
  1173. columnLabel: "计价单位",
  1174. columnHidden: false,
  1175. columnImage: false,
  1176. columnSortable: false,
  1177. sortLv: 0,
  1178. status: true,
  1179. fixed: '',
  1180. columnWidth: 100
  1181. },
  1182. {
  1183. userId: this.$store.state.user.name,
  1184. functionId: 6040,
  1185. serialNumber: '6040Table2Crewsize',
  1186. tableId: "6040Table2",
  1187. tableName: "维护工艺路线工序表",
  1188. columnProp: "crewsize",
  1189. headerAlign: "center",
  1190. align: "left",
  1191. columnLabel: "操作工人数",
  1192. columnHidden: false,
  1193. columnImage: false,
  1194. columnSortable: false,
  1195. sortLv: 0,
  1196. status: true,
  1197. fixed: '',
  1198. columnWidth: 100
  1199. },
  1200. {
  1201. userId: this.$store.state.user.name,
  1202. functionId: 6040,
  1203. serialNumber: '6040Table2WorkCenterType',
  1204. tableId: "6040Table2",
  1205. tableName: "维护工艺路线工序表",
  1206. columnProp: "workCenterType",
  1207. headerAlign: "center",
  1208. align: "left",
  1209. columnLabel: "加工中心类型",
  1210. columnHidden: false,
  1211. columnImage: false,
  1212. columnSortable: false,
  1213. sortLv: 0,
  1214. status: true,
  1215. fixed: '',
  1216. columnWidth: 100
  1217. },
  1218. {
  1219. userId: this.$store.state.user.name,
  1220. functionId: 6040,
  1221. serialNumber: '6040Table2WXPartNo',
  1222. tableId: "6040Table2",
  1223. tableName: "维护工艺路线工序表",
  1224. columnProp: "wxPartNo",
  1225. headerAlign: "center",
  1226. align: "left",
  1227. columnLabel: "费用结算料号",
  1228. columnHidden: false,
  1229. columnImage: false,
  1230. columnSortable: false,
  1231. sortLv: 0,
  1232. status: true,
  1233. fixed: '',
  1234. columnWidth: 120
  1235. },
  1236. {
  1237. userId: this.$store.state.user.name,
  1238. functionId: 6040,
  1239. serialNumber: '6040Table2WXSpec',
  1240. tableId: "6040Table2",
  1241. tableName: "维护工艺路线工序表",
  1242. columnProp: "wxSpec",
  1243. headerAlign: "center",
  1244. align: "left",
  1245. columnLabel: "费用结算物料名称/规格",
  1246. columnHidden: false,
  1247. columnImage: false,
  1248. columnSortable: false,
  1249. sortLv: 0,
  1250. status: true,
  1251. fixed: '',
  1252. columnWidth: 250
  1253. },
  1254. ],
  1255. columnList3: [
  1256. {
  1257. userId: this.$store.state.user.name,
  1258. functionId: 6040,
  1259. serialNumber: '6040Table3RevNo',
  1260. tableId: "6040Table3",
  1261. tableName: "维护工艺路线工具表",
  1262. columnProp: "revNo",
  1263. headerAlign: "center",
  1264. align: "left",
  1265. columnLabel: "版本号",
  1266. columnHidden: false,
  1267. columnImage: false,
  1268. columnSortable: false,
  1269. sortLv: 0,
  1270. status: true,
  1271. fixed: '',
  1272. columnWidth: 80
  1273. },
  1274. {
  1275. userId: this.$store.state.user.name,
  1276. functionId: 6040,
  1277. serialNumber: '6040Table3ItemNo',
  1278. tableId: "6040Table3",
  1279. tableName: "维护工艺路线工具表",
  1280. columnProp: "itemNo",
  1281. headerAlign: "center",
  1282. align: "right",
  1283. columnLabel: "工序号",
  1284. columnHidden: false,
  1285. columnImage: false,
  1286. columnSortable: false,
  1287. sortLv: 0,
  1288. status: true,
  1289. fixed: '',
  1290. columnWidth: 80
  1291. },
  1292. {
  1293. userId: this.$store.state.user.name,
  1294. functionId: 6040,
  1295. serialNumber: '6040Table3ToolID',
  1296. tableId: "6040Table3",
  1297. tableName: "维护工艺路线工具表",
  1298. columnProp: "toolID",
  1299. headerAlign: "center",
  1300. align: "left",
  1301. columnLabel: "工具编号",
  1302. columnHidden: false,
  1303. columnImage: false,
  1304. columnSortable: false,
  1305. sortLv: 0,
  1306. status: true,
  1307. fixed: '',
  1308. columnWidth: 150
  1309. },
  1310. {
  1311. userId: this.$store.state.user.name,
  1312. functionId: 6040,
  1313. serialNumber: '6040Table3ToolDescription',
  1314. tableId: "6040Table3",
  1315. tableName: "维护工艺路线工具表",
  1316. columnProp: "toolDescription",
  1317. headerAlign: "center",
  1318. align: "left",
  1319. columnLabel: "工具名称",
  1320. columnHidden: false,
  1321. columnImage: false,
  1322. columnSortable: false,
  1323. sortLv: 0,
  1324. status: true,
  1325. fixed: '',
  1326. columnWidth: 200
  1327. },
  1328. {
  1329. userId: this.$store.state.user.name,
  1330. functionId: 6040,
  1331. serialNumber: '6040Table3Spec',
  1332. tableId: "6040Table3",
  1333. tableName: "维护工艺路线工具表",
  1334. columnProp: "spec",
  1335. headerAlign: "center",
  1336. align: "left",
  1337. columnLabel: "规格型号",
  1338. columnHidden: false,
  1339. columnImage: false,
  1340. columnSortable: false,
  1341. sortLv: 0,
  1342. status: true,
  1343. fixed: '',
  1344. columnWidth: 150
  1345. },
  1346. {
  1347. userId: this.$store.state.user.name,
  1348. functionId: 6040,
  1349. serialNumber: '6040Table3ToolQty',
  1350. tableId: "6040Table3",
  1351. tableName: "维护工艺路线工具表",
  1352. columnProp: "toolQty",
  1353. headerAlign: "center",
  1354. align: "right",
  1355. columnLabel: "工具数量",
  1356. columnHidden: false,
  1357. columnImage: false,
  1358. columnSortable: false,
  1359. sortLv: 0,
  1360. status: true,
  1361. fixed: '',
  1362. columnWidth: 80
  1363. },
  1364. {
  1365. userId: this.$store.state.user.name,
  1366. functionId: 6040,
  1367. serialNumber: '6040Table3Active',
  1368. tableId: "6040Table3",
  1369. tableName: "维护工艺路线工具表",
  1370. columnProp: "active",
  1371. headerAlign: "center",
  1372. align: "left",
  1373. columnLabel: "在用",
  1374. columnHidden: false,
  1375. columnImage: false,
  1376. columnSortable: false,
  1377. sortLv: 0,
  1378. status: true,
  1379. fixed: '',
  1380. columnWidth: 60
  1381. },
  1382. {
  1383. userId: this.$store.state.user.name,
  1384. functionId: 6040,
  1385. serialNumber: '6040Table3FamilyID',
  1386. tableId: "6040Table3",
  1387. tableName: "维护工艺路线工具表",
  1388. columnProp: "familyID",
  1389. headerAlign: "center",
  1390. align: "left",
  1391. columnLabel: "工具分类",
  1392. columnHidden: false,
  1393. columnImage: false,
  1394. columnSortable: false,
  1395. sortLv: 0,
  1396. status: true,
  1397. fixed: '',
  1398. columnWidth: 100
  1399. },
  1400. {
  1401. userId: this.$store.state.user.name,
  1402. functionId: 6040,
  1403. serialNumber: '6040Table3FamilyName',
  1404. tableId: "6040Table3",
  1405. tableName: "维护工艺路线工具表",
  1406. columnProp: "familyName",
  1407. headerAlign: "center",
  1408. align: "left",
  1409. columnLabel: "工具分类名称",
  1410. columnHidden: false,
  1411. columnImage: false,
  1412. columnSortable: false,
  1413. sortLv: 0,
  1414. status: true,
  1415. fixed: '',
  1416. columnWidth: 150
  1417. },
  1418. {
  1419. userId: this.$store.state.user.name,
  1420. functionId: 6040,
  1421. serialNumber: '6040Table3Remark',
  1422. tableId: "6040Table3",
  1423. tableName: "维护工艺路线工具表",
  1424. columnProp: "remark",
  1425. headerAlign: "center",
  1426. align: "left",
  1427. columnLabel: "备注",
  1428. columnHidden: false,
  1429. columnImage: false,
  1430. columnSortable: false,
  1431. sortLv: 0,
  1432. status: true,
  1433. fixed: '',
  1434. columnWidth: 200
  1435. },
  1436. {
  1437. userId: this.$store.state.user.name,
  1438. functionId: 6040,
  1439. serialNumber: '6040Table3CreateDate',
  1440. tableId: "6040Table3",
  1441. tableName: "维护工艺路线工具表",
  1442. columnProp: "createDate",
  1443. headerAlign: "center",
  1444. align: "left",
  1445. columnLabel: "录入日期",
  1446. columnHidden: false,
  1447. columnImage: false,
  1448. columnSortable: false,
  1449. sortLv: 0,
  1450. status: true,
  1451. fixed: '',
  1452. columnWidth: 160
  1453. },
  1454. {
  1455. userId: this.$store.state.user.name,
  1456. functionId: 6040,
  1457. serialNumber: '6040Table3CreatedBy',
  1458. tableId: "6040Table3",
  1459. tableName: "维护工艺路线工具表",
  1460. columnProp: "createdBy",
  1461. headerAlign: "center",
  1462. align: "left",
  1463. columnLabel: "录入人",
  1464. columnHidden: false,
  1465. columnImage: false,
  1466. columnSortable: false,
  1467. sortLv: 0,
  1468. status: true,
  1469. fixed: '',
  1470. columnWidth: 100
  1471. },
  1472. ],
  1473. columnList4: [
  1474. {
  1475. userId: this.$store.state.user.name,
  1476. functionId: 6040,
  1477. serialNumber: '6040Table4ResourceID',
  1478. tableId: "6040Table4",
  1479. tableName: "维护工艺路线可用机台表",
  1480. columnProp: "resourceID",
  1481. headerAlign: "center",
  1482. align: "left",
  1483. columnLabel: "机台编码",
  1484. columnHidden: false,
  1485. columnImage: false,
  1486. columnSortable: false,
  1487. sortLv: 0,
  1488. status: true,
  1489. fixed: '',
  1490. columnWidth: 70
  1491. },
  1492. {
  1493. userId: this.$store.state.user.name,
  1494. functionId: 6040,
  1495. serialNumber: '6040Table4ResourceDesc',
  1496. tableId: "6040Table4",
  1497. tableName: "维护工艺路线可用机台表",
  1498. columnProp: "resourceDesc",
  1499. headerAlign: "center",
  1500. align: "left",
  1501. columnLabel: "机台名称",
  1502. columnHidden: false,
  1503. columnImage: false,
  1504. columnSortable: false,
  1505. sortLv: 0,
  1506. status: true,
  1507. fixed: '',
  1508. columnWidth: 160
  1509. },
  1510. {
  1511. userId: this.$store.state.user.name,
  1512. functionId: 6040,
  1513. serialNumber: '6040Table4Active',
  1514. tableId: "6040Table4",
  1515. tableName: "维护工艺路线可用机台表",
  1516. columnProp: "active",
  1517. headerAlign: "center",
  1518. align: "left",
  1519. columnLabel: "在用",
  1520. columnHidden: false,
  1521. columnImage: false,
  1522. columnSortable: false,
  1523. sortLv: 0,
  1524. status: true,
  1525. fixed: '',
  1526. columnWidth: 50
  1527. },
  1528. ],
  1529. columnList5: [
  1530. {
  1531. userId: this.$store.state.user.name,
  1532. functionId: 6040,
  1533. serialNumber: '6040Table5ResourceID',
  1534. tableId: "6040Table5",
  1535. tableName: "维护工艺路线已选机台表",
  1536. columnProp: "resourceID",
  1537. headerAlign: "center",
  1538. align: "left",
  1539. columnLabel: "机台编码",
  1540. columnHidden: false,
  1541. columnImage: false,
  1542. columnSortable: false,
  1543. sortLv: 0,
  1544. status: true,
  1545. fixed: '',
  1546. columnWidth: 70
  1547. },
  1548. {
  1549. userId: this.$store.state.user.name,
  1550. functionId: 6040,
  1551. serialNumber: '6040Table5ResourceDesc',
  1552. tableId: "6040Table5",
  1553. tableName: "维护工艺路线已选机台表",
  1554. columnProp: "resourceDesc",
  1555. headerAlign: "center",
  1556. align: "left",
  1557. columnLabel: "机台名称",
  1558. columnHidden: false,
  1559. columnImage: false,
  1560. columnSortable: false,
  1561. sortLv: 0,
  1562. status: true,
  1563. fixed: '',
  1564. columnWidth: 160
  1565. },
  1566. {
  1567. userId: this.$store.state.user.name,
  1568. functionId: 6040,
  1569. serialNumber: '6040Table5Active',
  1570. tableId: "6040Table5",
  1571. tableName: "维护工艺路线已选机台表",
  1572. columnProp: "active",
  1573. headerAlign: "center",
  1574. align: "left",
  1575. columnLabel: "在用",
  1576. columnHidden: false,
  1577. columnImage: false,
  1578. columnSortable: false,
  1579. sortLv: 0,
  1580. status: true,
  1581. fixed: '',
  1582. columnWidth: 50
  1583. },
  1584. ],
  1585. routingModelFlag: false,
  1586. detailData: {
  1587. itemNo: '',
  1588. operationDesc: '',
  1589. workCenterNo: '',
  1590. machSetupTime: '',
  1591. machRunFactor: '',
  1592. factorUnit: '单位/小时',
  1593. jjgzUnitPrice: '',
  1594. jjgzUnitFactor: '小时',
  1595. efficiency: '',
  1596. crewsize: 1,
  1597. remark: '',
  1598. site: '',
  1599. partNo: '',
  1600. revNo: '',
  1601. add: '',
  1602. user: '',
  1603. },
  1604. tagNo2: '',
  1605. authEdit: false,
  1606. authAdd: false,
  1607. authDelete: false,
  1608. menuId: this.$route.meta.menuId,
  1609. jumpFlag: true,
  1610. jumpFlag2: true,
  1611. }
  1612. },
  1613. watch: {
  1614. toolData: {
  1615. deep: true,
  1616. handler: function (newV, oldV) {
  1617. //this.toolData.toolID = this.toolData.toolID.toUpperCase()
  1618. this.toolData.newToolId = this.toolData.newToolId.toUpperCase()
  1619. }
  1620. },
  1621. detailData: {
  1622. deep: true,
  1623. handler: function (newV, oldV) {
  1624. this.detailData.workCenterNo = this.detailData.workCenterNo.toUpperCase()
  1625. }
  1626. }
  1627. },
  1628. mounted() {
  1629. this.$nextTick(() => {
  1630. this.height = window.innerHeight - 310;
  1631. })
  1632. },
  1633. methods: {
  1634. // 复制
  1635. copyItemRouting() {
  1636. if (!this.currentRow) {
  1637. this.$message.warning('请选择需要复制的工序!')
  1638. return
  1639. }
  1640. // 获取
  1641. getPartNoRouteInMaxItemNo(this.currentRow).then(({data}) => {
  1642. if (data.code == 0) {
  1643. let maxItem = JSON.parse(JSON.stringify(this.currentRow))
  1644. maxItem.itemNo = Number(data.data) + 10
  1645. let dto = {
  1646. itemNo: Number(data.data) + 10,
  1647. add: 0,
  1648. crewsize: maxItem.crewsize,
  1649. efficiency: maxItem.efficiency,
  1650. factorUnit: maxItem.factorUnit,
  1651. jjgzUnitFactor: maxItem.jjgzUnitFactor,
  1652. jjgzUnitPrice: maxItem.jjgzUnitPrice,
  1653. machRunFactor: maxItem.machRunFactor,
  1654. machSetupTime: maxItem.machSetupTime,
  1655. operationDesc: maxItem.operationDesc,
  1656. partNo: maxItem.partNo,
  1657. remark: maxItem.remark,
  1658. revNo: maxItem.revNo,
  1659. site: maxItem.site,
  1660. user:this.$store.state.user.name,
  1661. workCenterNo: maxItem.workCenterNo,
  1662. }
  1663. // 保存信息
  1664. saveRoutingDetailData(dto).then(({data}) => {
  1665. if (data && data.code == 200) {
  1666. this.detailmodelFlag = false
  1667. let data1 = {
  1668. site: this.mainData.site,
  1669. partNo: this.mainData.partNo,
  1670. revNo: this.mainData.revNo,
  1671. }
  1672. searchRoutingDetailData(data1).then(({data}) => {
  1673. if (data.total == 0) {
  1674. this.dataList2 = []
  1675. } else {
  1676. this.dataList2 = data.rows;
  1677. }
  1678. })
  1679. this.$message.success(this.labels.doYes)
  1680. } else {
  1681. this.$alert(data.msg, this.labels.error, {
  1682. confirmButtonText: this.labels.true
  1683. })
  1684. }
  1685. })
  1686. }
  1687. })
  1688. },
  1689. editRoutingHeaderModel(row) {
  1690. this.routingHeaderData = {
  1691. partNo: row.partNo,
  1692. site: row.site,
  1693. status: row.status,
  1694. revNo: row.revNo,
  1695. phaseInDate: row.phaseInDate,
  1696. phaseOutDate: row.phaseOutDate,
  1697. routingType: row.routingType,
  1698. remark: row.remark,
  1699. defaultflag: row.defaultflag,
  1700. repairFlag: row.repairFlag,
  1701. add: 1,
  1702. };
  1703. this.routingHeaderInputFlag = true;
  1704. this.routingHeaderModelFlag = true;
  1705. },
  1706. addRoutingHeaderModel() {
  1707. this.routingHeaderData = {
  1708. partNo: '',
  1709. site: this.$store.state.user.site,
  1710. status: '试验',
  1711. revNo: '',
  1712. phaseInDate: new Date(),
  1713. phaseOutDate: null,
  1714. routingType: '制造',
  1715. remark: '',
  1716. defaultflag: 'Y',
  1717. repairFlag: 'N',
  1718. add: 0,
  1719. };
  1720. this.routingHeaderInputFlag = false;
  1721. this.routingHeaderModelFlag = true;
  1722. },
  1723. saveRoutingHeaderData() {
  1724. if (this.routingHeaderData.partNo == '' || this.routingHeaderData.partNo == null) {
  1725. this.$alert(this.labels.inRoutingNo, this.labels.error, {
  1726. confirmButtonText: this.labels.true
  1727. })
  1728. return false;
  1729. }
  1730. if (this.routingHeaderData.revNo == '' || this.routingHeaderData.revNo == null) {
  1731. this.$alert(this.labels.inRevNo, this.labels.error, {
  1732. confirmButtonText: this.labels.true
  1733. })
  1734. return false;
  1735. }
  1736. if (this.routingHeaderData.phaseInDate == '' || this.routingHeaderData.phaseInDate == null) {
  1737. this.$alert(this.labels.inPhaseInDate, this.labels.error, {
  1738. confirmButtonText: this.labels.true
  1739. })
  1740. return false;
  1741. }
  1742. saveRoutingHeaderData(this.routingHeaderData).then(({data}) => {
  1743. if (data && data.code == 200) {
  1744. this.routingHeaderModelFlag = false;
  1745. //设置查询的物料编码
  1746. this.searchPartNo = this.routingHeaderData.partNo;
  1747. this.tableHanddle(this.routingHeaderData);
  1748. //this.searchRoutingWithPartNo(); 调用有问题2022-12-26
  1749. this.$message.success(this.labels.doYes)
  1750. } else {
  1751. this.$alert(data.msg, this.labels.error, {
  1752. confirmButtonText: this.labels.true
  1753. })
  1754. }
  1755. })
  1756. },
  1757. deleteRoutingHeaderData(row) {
  1758. this.$confirm(this.labels.deleteRoutingAsk, this.labels.point, {
  1759. confirmButtonText: this.labels.true,
  1760. cancelButtonText: this.labels.cancel,
  1761. type: 'warning'
  1762. }).then(() => {
  1763. let inData = {
  1764. site: row.site,
  1765. partNo: row.partNo,
  1766. revNo: row.revNo,
  1767. }
  1768. deleteRoutingHeaderData(inData).then(({data}) => {
  1769. if (data && data.code == 200) {
  1770. this.searchRoutingWithPartNo();
  1771. } else {
  1772. this.$alert(data.msg, this.labels.error, {
  1773. confirmButtonText: this.labels.true
  1774. })
  1775. }
  1776. })
  1777. })
  1778. },
  1779. getBaseData(val) {
  1780. if (this.tagNo === 24) {
  1781. this.detailData.workCenterNo = val.WorkCenterNo
  1782. }
  1783. if (this.tagNo === 70) {
  1784. this.toolData.newToolId = val.ToolID
  1785. this.getToolDesc();
  1786. }
  1787. if (this.tagNo === 5) {
  1788. if (this.tagNo2 === 1) {
  1789. this.copyRoutingData.partNo1 = val.PartNo
  1790. this.getPartDescription();
  1791. } else {
  1792. this.routingHeaderData.partNo = val.PartNo
  1793. }
  1794. }
  1795. },
  1796. // 获取基础数据列表
  1797. getBaseList(val, val2) {
  1798. this.tagNo = val
  1799. this.tagNo2 = val2
  1800. this.$nextTick(() => {
  1801. let strVal = "";
  1802. if (val === 24) {
  1803. strVal = this.detailData.workCenterNo
  1804. }
  1805. if (val === 70) {
  1806. strVal = this.toolData.toolID
  1807. }
  1808. if (val === 5) {
  1809. if (val2 === 1) {
  1810. strVal = this.copyRoutingData.partNo1
  1811. } else {
  1812. strVal = this.routingHeaderData.partNo
  1813. }
  1814. }
  1815. this.$refs.baseList.init(val, strVal)
  1816. })
  1817. },
  1818. addRoutingDetail() {
  1819. if (this.mainData.partNo == null || this.mainData.partNo == '') {
  1820. this.$alert(this.labels.inPartNo, this.labels.error, {
  1821. confirmButtonText: this.labels.true
  1822. })
  1823. return false;
  1824. }
  1825. let itemNo;
  1826. if (this.dataList2 === [] || this.dataList2.length == 0) {
  1827. itemNo = 10;
  1828. } else {
  1829. itemNo = this.dataList2[0].itemNo;
  1830. for (let i = 0; i < this.dataList2.length; i++) {
  1831. if (itemNo < this.dataList2[i].itemNo) {
  1832. itemNo = this.dataList2[i].itemNo
  1833. }
  1834. }
  1835. itemNo += 10;
  1836. }
  1837. // if(this.dataList2){
  1838. // size=this.dataList2.length;
  1839. // itemNo=this.dataList2[Number(size-1)].itemNo+10;
  1840. // }else {
  1841. // itemNo=10;
  1842. // }
  1843. this.detailData = {
  1844. itemNo: itemNo,
  1845. operationDesc: '',
  1846. workCenterNo: '',
  1847. machSetupTime: 0,
  1848. machRunFactor: 0,
  1849. factorUnit: '单位/小时',
  1850. jjgzUnitFactor: '小时',
  1851. jjgzUnitPrice: 0,
  1852. efficiency: 100,
  1853. crewsize: 1,
  1854. remark: '',
  1855. add: 0,
  1856. partNo: this.mainData.partNo,
  1857. revNo: this.mainData.revNo,
  1858. site: this.mainData.site,
  1859. user: this.$store.state.user.name,
  1860. }
  1861. this.detailmodelInputFlag = false;
  1862. this.detailmodelFlag = true;
  1863. },
  1864. saveRoutingDetailData() {
  1865. if (this.detailData.itemNo == '' || this.detailData.itemNo == null) {
  1866. this.$alert(this.labels.inItemNo, this.labels.error, {
  1867. confirmButtonText: this.labels.true
  1868. })
  1869. return false;
  1870. }
  1871. if (this.detailData.operationDesc == '' || this.detailData.operationDesc == null) {
  1872. this.$alert(this.labels.inOperationDesc, this.labels.error, {
  1873. confirmButtonText: this.labels.true
  1874. })
  1875. return false;
  1876. }
  1877. if (this.detailData.machSetupTime === '' || this.detailData.machSetupTime == null) {
  1878. this.$alert(this.labels.inMachSetupTime, this.labels.error, {
  1879. confirmButtonText: this.labels.true
  1880. })
  1881. return false;
  1882. }
  1883. if (this.detailData.workCenterNo == '' || this.detailData.workCenterNo == null) {
  1884. this.$alert(this.labels.inWorkCenterNo, this.labels.error, {
  1885. confirmButtonText: this.labels.true
  1886. })
  1887. return false;
  1888. }
  1889. // if (this.detailData.jjgzUnitPrice === '' || this.detailData.jjgzUnitPrice == null) {
  1890. // this.$alert(this.labels.inJjgzUnitPrice, this.labels.error, {
  1891. // confirmButtonText: this.labels.true
  1892. // })
  1893. // return false;
  1894. // }
  1895. if (this.detailData.crewsize === '' || this.detailData.crewsize == null) {
  1896. this.$alert(this.labels.inCrewsize, this.labels.error, {
  1897. confirmButtonText: this.labels.true
  1898. })
  1899. return false;
  1900. }
  1901. if (this.detailData.efficiency === '' || this.detailData.efficiency == null) {
  1902. this.$alert(this.labels.inEfficiency, this.labels.error, {
  1903. confirmButtonText: this.labels.true
  1904. })
  1905. return false;
  1906. }
  1907. if (this.detailData.efficiency <= 0) {
  1908. this.$alert(this.labels.efficiencyAsk, this.labels.error, {
  1909. confirmButtonText: this.labels.true
  1910. })
  1911. return false;
  1912. }
  1913. if (this.detailData.machRunFactor <= 0) {
  1914. this.$message.warning('单位产出量不能小于0!')
  1915. return
  1916. }
  1917. if (this.detailData.crewsize < 1) {
  1918. this.$message.warning('操作工人数不能少于1!')
  1919. return
  1920. }
  1921. saveRoutingDetailData(this.detailData).then(({data}) => {
  1922. this.currentRow = null;
  1923. if (data && data.code == 200) {
  1924. this.detailmodelFlag = false
  1925. let data1 = {
  1926. site: this.mainData.site,
  1927. partNo: this.mainData.partNo,
  1928. revNo: this.mainData.revNo,
  1929. }
  1930. searchRoutingDetailData(data1).then(({data}) => {
  1931. if (data.total == 0) {
  1932. this.dataList2 = []
  1933. } else {
  1934. this.dataList2 = data.rows;
  1935. }
  1936. })
  1937. this.$message.success(this.labels.doYes)
  1938. } else {
  1939. this.$alert(data.msg, this.labels.error, {
  1940. confirmButtonText: this.labels.true
  1941. })
  1942. }
  1943. })
  1944. },
  1945. deleteRoutingDetail() {
  1946. if (this.currentRow == null) {
  1947. this.$alert(this.labels.inRoutingItem, this.labels.error, {
  1948. confirmButtonText: this.labels.true
  1949. })
  1950. return false;
  1951. }
  1952. this.$confirm(this.labels.deleteItemAsk, this.labels.point, {
  1953. confirmButtonText: this.labels.true,
  1954. cancelButtonText: this.labels.cancel,
  1955. type: 'warning'
  1956. }).then(() => {
  1957. deleteRoutingDetail(this.currentRow).then(({data}) => {
  1958. this.currentRow = null;
  1959. if (data && data.code == 200) {
  1960. let data1 = {
  1961. site: this.mainData.site,
  1962. partNo: this.mainData.partNo,
  1963. revNo: this.mainData.revNo,
  1964. }
  1965. searchRoutingDetailData(data1).then(({data}) => {
  1966. this.dataList2 = data.rows;
  1967. })
  1968. this.$message({
  1969. message: this.labels.doYes,
  1970. type: 'success',
  1971. duration: 1500,
  1972. onClose: () => {
  1973. }
  1974. })
  1975. this.$message.success(this.labels.doYes)
  1976. } else {
  1977. this.$alert(data.msg, this.labels.error, {
  1978. confirmButtonText: this.labels.true
  1979. })
  1980. }
  1981. })
  1982. })
  1983. },
  1984. tableHanddle(row) {
  1985. let data = {
  1986. partNo: row.partNo,
  1987. site: row.site,
  1988. revNo: row.revNo,
  1989. }
  1990. searchRoutingWithPartNo(data).then(({data}) => {
  1991. if (data.rows.length > 0) {
  1992. if (data.rows[0].repairFlag == 'Y') {
  1993. data.rows[0].repairFlag = true;
  1994. } else {
  1995. data.rows[0].repairFlag = false;
  1996. }
  1997. if (data.rows[0].defaultflag == 'Y') {
  1998. data.rows[0].defaultflag = true;
  1999. } else {
  2000. data.rows[0].defaultflag = false;
  2001. }
  2002. this.mainData = data.rows[0]
  2003. let data1 = {
  2004. site: data.rows[0].site,
  2005. partNo: data.rows[0].partNo,
  2006. revNo: data.rows[0].revNo,
  2007. }
  2008. searchRoutingDetailData(data1).then(({data}) => {
  2009. this.dataList2 = data.rows;
  2010. })
  2011. searchRoutingToolData(data1).then(({data}) => {
  2012. this.dataList3 = data.rows;
  2013. })
  2014. }
  2015. })
  2016. this.modelFlag = false;
  2017. },
  2018. getResourceModel() {
  2019. if (this.currentRow == null) {
  2020. this.$alert(this.labels.inRoutingItem, this.labels.error, {
  2021. confirmButtonText: this.labels.true
  2022. })
  2023. return false;
  2024. }
  2025. let data1 = {
  2026. site: this.mainData.site,
  2027. workCenterNo: this.currentRow.workCenterNo,
  2028. }
  2029. searchAllResource(data1).then(({data}) => {
  2030. this.resourceList1 = data.rows
  2031. })
  2032. let data2 = {
  2033. site: this.mainData.site,
  2034. partNo: this.mainData.partNo,
  2035. revNo: this.currentRow.revNo,
  2036. itemNo: this.currentRow.itemNo
  2037. }
  2038. searchUsedResource(data2).then(({data}) => {
  2039. this.resourceList2 = data.rows
  2040. })
  2041. this.routingModelFlag = true;
  2042. },
  2043. getSearchModal() {
  2044. this.searchPartNo = '';
  2045. // this.searchRoutingWithPartNo();
  2046. this.modelFlag = true;
  2047. },
  2048. editRoutingDetail() {
  2049. if (this.currentRow == null) {
  2050. this.$alert(this.labels.inRoutingItem, this.labels.error, {
  2051. confirmButtonText: this.labels.true
  2052. })
  2053. return false;
  2054. }
  2055. this.detailData = {
  2056. itemNo: this.currentRow.itemNo,
  2057. operationDesc: this.currentRow.operationDesc,
  2058. workCenterNo: this.currentRow.workCenterNo,
  2059. machSetupTime: this.currentRow.machSetupTime,
  2060. machRunFactor: this.currentRow.machRunFactor,
  2061. factorUnit: this.currentRow.factorUnit,
  2062. jjgzUnitPrice: this.currentRow.jjgzUnitPrice,
  2063. jjgzUnitFactor: this.currentRow.jjgzUnitFactor,
  2064. efficiency: this.currentRow.efficiency,
  2065. crewsize: this.currentRow.crewsize,
  2066. remark: this.currentRow.remark,
  2067. add: 1,
  2068. partNo: this.mainData.partNo,
  2069. revNo: this.mainData.revNo,
  2070. site: this.mainData.site,
  2071. user: this.$store.state.user.name,
  2072. }
  2073. this.detailmodelInputFlag = true;
  2074. this.detailmodelFlag = true;
  2075. },
  2076. searchRoutingWithPartNo() {
  2077. let data = {
  2078. partNo: this.searchPartNo
  2079. }
  2080. searchRoutingWithPartNo(data).then(({data}) => {
  2081. this.dataList = data.rows
  2082. })
  2083. },
  2084. clickData(row) {
  2085. this.currentRow = JSON.parse(JSON.stringify(row));
  2086. },
  2087. clickData2(row) {
  2088. this.currentRow2 = JSON.parse(JSON.stringify(row));
  2089. },
  2090. clickData3(row) {
  2091. this.currentRow3 = JSON.parse(JSON.stringify(row));
  2092. },
  2093. clickData4(row) {
  2094. this.currentRow4 = JSON.parse(JSON.stringify(row));
  2095. },
  2096. addResource() {
  2097. if (this.currentRow3 == null) {
  2098. this.$alert(this.labels.inAvailableResource, this.labels.error, {
  2099. confirmButtonText: this.labels.true
  2100. })
  2101. return false;
  2102. }
  2103. let inData = {
  2104. site: this.mainData.site,
  2105. partNo: this.mainData.partNo,
  2106. revNo: this.mainData.revNo,
  2107. itemNo: this.currentRow.itemNo,
  2108. resourceID: this.currentRow3.resourceID
  2109. }
  2110. addRoutingResource(inData).then(({data}) => {
  2111. if (data && data.code == 200) {
  2112. let data2 = {
  2113. site: this.mainData.site,
  2114. partNo: this.mainData.partNo,
  2115. revNo: this.currentRow.revNo,
  2116. itemNo: this.currentRow.itemNo
  2117. }
  2118. searchUsedResource(data2).then(({data}) => {
  2119. this.resourceList2 = data.rows
  2120. })
  2121. } else {
  2122. this.$alert(data.msg, this.labels.error, {
  2123. confirmButtonText: this.labels.true
  2124. })
  2125. }
  2126. })
  2127. },
  2128. addRoutingTool() {
  2129. if (this.mainData.partNo == null || this.mainData.partNo == '') {
  2130. this.$alert(this.labels.inPartNo, this.labels.error, {
  2131. confirmButtonText: this.labels.true
  2132. })
  2133. return false;
  2134. }
  2135. this.toolData = {
  2136. site: this.mainData.site,
  2137. partNo: this.mainData.partNo,
  2138. revNo: this.mainData.revNo,
  2139. itemNo: '',
  2140. operationDesc: '',
  2141. toolID: '',
  2142. newToolId: '',
  2143. toolDescription: '',
  2144. spec: '',
  2145. toolQty: '',
  2146. remark: '',
  2147. user: this.$store.state.user.name,
  2148. add: 0,
  2149. };
  2150. this.selectList = [];
  2151. let data = {
  2152. site: this.mainData.site,
  2153. partNo: this.mainData.partNo,
  2154. revNo: this.mainData.revNo,
  2155. }
  2156. getItemSelect(data).then(({data}) => {
  2157. let list = data.rows;
  2158. for (let i = 0; i < list.length; i++) {
  2159. let resultData = {
  2160. value: list[i].itemNo,
  2161. label: list[i].itemNo
  2162. }
  2163. this.selectList.push(resultData);
  2164. }
  2165. })
  2166. this.toolmodelInputFlag = false;
  2167. this.ToolmodelFlag = true;
  2168. },
  2169. editRoutingTool() {
  2170. if (this.currentRow2 == null) {
  2171. this.$alert(this.labels.inTool, this.labels.error, {
  2172. confirmButtonText: this.labels.true
  2173. })
  2174. return false;
  2175. }
  2176. this.toolData = {
  2177. site: this.mainData.site,
  2178. partNo: this.mainData.partNo,
  2179. revNo: this.mainData.revNo,
  2180. itemNo: this.currentRow2.itemNo,
  2181. operationDesc: this.currentRow2.operationDesc,
  2182. toolID: this.currentRow2.toolID,
  2183. newToolId: this.currentRow2.toolID,
  2184. toolDescription: this.currentRow2.toolDescription,
  2185. spec: this.currentRow2.spec,
  2186. toolQty: this.currentRow2.toolQty,
  2187. remark: this.currentRow2.remark,
  2188. user: this.$store.state.user.name,
  2189. add: 1,
  2190. };
  2191. this.getOperationDesc();
  2192. this.toolmodelInputFlag = true;
  2193. this.ToolmodelFlag = true;
  2194. },
  2195. saveRoutingTool() {
  2196. if (this.toolData.itemNo == '' || this.toolData.itemNo == null) {
  2197. this.$alert(this.labels.chooseItem, this.labels.error, {
  2198. confirmButtonText: this.labels.true
  2199. })
  2200. return false;
  2201. }
  2202. if (this.toolData.newToolId == '' || this.toolData.newToolId == null) {
  2203. this.$alert(this.labels.inToolId, this.labels.error, {
  2204. confirmButtonText: this.labels.true
  2205. })
  2206. return false;
  2207. }
  2208. if (this.toolData.toolQty == '' || this.toolData.toolQty == null) {
  2209. this.$alert(this.labels.inToolQty, this.labels.error, {
  2210. confirmButtonText: this.labels.true
  2211. })
  2212. return false;
  2213. }
  2214. saveRoutingTool(this.toolData).then(({data}) => {
  2215. this.currentRow2 = null;
  2216. if (data && data.code == 200) {
  2217. this.ToolmodelFlag = false
  2218. let data1 = {
  2219. site: this.mainData.site,
  2220. partNo: this.mainData.partNo,
  2221. revNo: this.mainData.revNo,
  2222. }
  2223. searchRoutingToolData(data1).then(({data}) => {
  2224. this.dataList3 = data.rows;
  2225. })
  2226. this.$message.success(this.labels.doYes)
  2227. } else {
  2228. this.$alert(data.msg, this.labels.error, {
  2229. confirmButtonText: this.labels.true
  2230. })
  2231. }
  2232. })
  2233. },
  2234. deleteRoutingTool() {
  2235. if (this.currentRow2 == null) {
  2236. this.$alert(this.labels.inTool, this.labels.error, {
  2237. confirmButtonText: this.labels.true
  2238. })
  2239. return false;
  2240. }
  2241. this.$confirm(this.labels.deleteToolAsk, this.labels.point, {
  2242. confirmButtonText: this.labels.true,
  2243. cancelButtonText: this.labels.cancel,
  2244. type: 'warning'
  2245. }).then(() => {
  2246. let delDate = {
  2247. site: this.mainData.site,
  2248. partNo: this.mainData.partNo,
  2249. revNo: this.mainData.revNo,
  2250. itemNo: this.currentRow2.itemNo,
  2251. toolID: this.currentRow2.toolID,
  2252. }
  2253. deleteRoutingTool(delDate).then(({data}) => {
  2254. this.currentRow2 = null;
  2255. if (data && data.code == 200) {
  2256. this.ToolmodelFlag = false
  2257. let data1 = {
  2258. site: this.mainData.site,
  2259. partNo: this.mainData.partNo,
  2260. revNo: this.mainData.revNo,
  2261. }
  2262. searchRoutingToolData(data1).then(({data}) => {
  2263. this.dataList3 = data.rows;
  2264. })
  2265. this.$message.success(this.labels.doYes)
  2266. } else {
  2267. this.$alert(data.msg, this.labels.error, {
  2268. confirmButtonText: this.labels.true
  2269. })
  2270. }
  2271. })
  2272. })
  2273. },
  2274. getOperationDesc() {
  2275. let data = {
  2276. site: this.mainData.site,
  2277. partNo: this.mainData.partNo,
  2278. revNo: this.mainData.revNo,
  2279. itemNo: this.toolData.itemNo
  2280. }
  2281. getItemSelect(data).then(({data}) => {
  2282. if (data.rows.length > 0) {
  2283. this.toolData.operationDesc = data.rows[0].operationDesc
  2284. }
  2285. })
  2286. },
  2287. getToolDesc() {
  2288. let data = {
  2289. site: this.mainData.site,
  2290. toolID: this.toolData.toolID
  2291. }
  2292. getToolDesc(data).then(({data}) => {
  2293. if (data.rows.length > 0) {
  2294. this.toolData.toolDescription = data.rows[0].toolDescription
  2295. this.toolData.spec = data.rows[0].spec
  2296. }
  2297. })
  2298. },
  2299. deleteResource() {
  2300. if (this.currentRow4 == null) {
  2301. this.$alert(this.labels.chooseResourceCan, this.labels.error, {
  2302. confirmButtonText: this.labels.true
  2303. })
  2304. return false;
  2305. }
  2306. this.$confirm(this.labels.deleteResourceAsk, this.labels.point, {
  2307. confirmButtonText: this.labels.true,
  2308. cancelButtonText: this.labels.cancel,
  2309. type: 'warning'
  2310. }).then(() => {
  2311. let inData = {
  2312. site: this.mainData.site,
  2313. partNo: this.mainData.partNo,
  2314. revNo: this.mainData.revNo,
  2315. itemNo: this.currentRow.itemNo,
  2316. resourceID: this.currentRow4.resourceID
  2317. }
  2318. deleteRoutingResource(inData).then(({data}) => {
  2319. if (data && data.code == 200) {
  2320. this.currentRow4 = null;
  2321. let data2 = {
  2322. site: this.mainData.site,
  2323. partNo: this.mainData.partNo,
  2324. revNo: this.currentRow.revNo,
  2325. itemNo: this.currentRow.itemNo
  2326. }
  2327. searchUsedResource(data2).then(({data}) => {
  2328. this.resourceList2 = data.rows
  2329. })
  2330. } else {
  2331. this.$alert(data.msg, this.labels.error, {
  2332. confirmButtonText: this.labels.true
  2333. })
  2334. }
  2335. })
  2336. })
  2337. },
  2338. jumpWorkCenter() {
  2339. if (this.currentRow == null) {
  2340. this.$alert(this.labels.inRoutingItem, this.labels.error, {
  2341. confirmButtonText: this.labels.true
  2342. })
  2343. return false;
  2344. }
  2345. let inData = {
  2346. user: this.$store.state.user.name,
  2347. site: this.currentRow.site,
  2348. workCenterNo: this.currentRow.workCenterNo
  2349. };
  2350. localStorage.setItem('workCenterNo', JSON.stringify(inData))
  2351. this.$router.replace('base-workCenter')
  2352. },
  2353. jumpToolInfo() {
  2354. if (this.currentRow2 == null) {
  2355. this.$alert(this.labels.inTool, this.labels.error, {
  2356. confirmButtonText: this.labels.true
  2357. })
  2358. return false;
  2359. }
  2360. let inData = {
  2361. site: this.$store.state.user.site,
  2362. toolId: this.currentRow2.toolID,
  2363. toolDescription: this.currentRow2.toolDescription
  2364. };
  2365. localStorage.setItem('toolInfo', JSON.stringify(inData))
  2366. this.$router.replace('knifemold-tool-info')
  2367. },
  2368. getPartDetail() {
  2369. if (this.mainData.partNo == null || this.mainData.partNo == '') {
  2370. this.$alert(this.labels.inPartNo, this.labels.error, {
  2371. confirmButtonText: this.labels.true
  2372. })
  2373. return false;
  2374. }
  2375. let inData = {
  2376. user: this.$store.state.user.name,
  2377. site: this.mainData.site,
  2378. partNo: this.mainData.partNo
  2379. }
  2380. searchPartNoData(inData).then(({data}) => {
  2381. if (data.rows.length == 0) {
  2382. this.$alert(this.labels.partNoNot, this.labels.error, {
  2383. confirmButtonText: this.labels.true
  2384. })
  2385. return false;
  2386. }
  2387. this.partData = data.rows[0];
  2388. this.partFlag = true;
  2389. })
  2390. },
  2391. changeStatus() {
  2392. if (this.mainData.partNo == null || this.mainData.partNo == '') {
  2393. this.$alert(this.labels.inPartNo, this.labels.error, {
  2394. confirmButtonText: this.labels.true
  2395. })
  2396. return false;
  2397. }
  2398. this.status = this.mainData.status;
  2399. this.statusFlag = true;
  2400. },
  2401. saveStatus() {
  2402. if (this.status == this.mainData.status) {
  2403. this.$alert(this.labels.partNoNO1 + this.status + this.labels.partNoNO2, this.labels.error, {
  2404. confirmButtonText: this.labels.true
  2405. })
  2406. return false;
  2407. }
  2408. let inData = {
  2409. partNo: this.mainData.partNo,
  2410. site: this.mainData.site,
  2411. revNo: this.mainData.revNo,
  2412. status: this.status
  2413. }
  2414. changeRoutingStatus(inData).then(({data}) => {
  2415. if (data && data.code == 200) {
  2416. this.statusFlag = false
  2417. searchRoutingWithPartNo(inData).then(({data}) => {
  2418. if (data.rows.length > 0) {
  2419. if (data.rows[0].repairFlag == 'Y') {
  2420. data.rows[0].repairFlag = true;
  2421. } else {
  2422. data.rows[0].repairFlag = false;
  2423. }
  2424. if (data.rows[0].defaultflag == 'Y') {
  2425. data.rows[0].defaultflag = true;
  2426. } else {
  2427. data.rows[0].defaultflag = false;
  2428. }
  2429. this.mainData = data.rows[0]
  2430. let data1 = {
  2431. site: data.rows[0].site,
  2432. partNo: data.rows[0].partNo,
  2433. revNo: data.rows[0].revNo,
  2434. }
  2435. searchRoutingDetailData(data1).then(({data}) => {
  2436. this.dataList2 = data.rows;
  2437. })
  2438. searchRoutingToolData(data1).then(({data}) => {
  2439. this.dataList3 = data.rows;
  2440. })
  2441. }
  2442. })
  2443. this.$message.success(this.labels.doYes)
  2444. } else {
  2445. this.$alert(data.msg, this.labels.error, {
  2446. confirmButtonText: this.labels.true
  2447. })
  2448. }
  2449. })
  2450. },
  2451. tongBuOrder() {
  2452. if (this.mainData.partNo == null || this.mainData.partNo == '') {
  2453. this.$alert(this.labels.inPartNo, this.labels.error, {
  2454. confirmButtonText: this.labels.true
  2455. })
  2456. return false;
  2457. }
  2458. if (this.mainData.partNo == '999998' || this.mainData.partNo == '999999') {
  2459. this.$alert(this.labels.cannottongbu, this.labels.error, {
  2460. confirmButtonText: this.labels.true
  2461. })
  2462. return false;
  2463. }
  2464. this.$confirm(this.labels.orderAsk, this.labels.point, {
  2465. confirmButtonText: this.labels.true,
  2466. cancelButtonText: this.labels.cancel,
  2467. type: 'warning'
  2468. }).then(() => {
  2469. let inData = {
  2470. partNo: this.mainData.partNo,
  2471. site: this.mainData.site,
  2472. revNo: this.mainData.revNo,
  2473. user: this.$store.state.user.name,
  2474. }
  2475. checkRoutingAndOrder(inData).then(({data}) => {
  2476. if (data && data.code == 200) {
  2477. this.$confirm(data.obj + this.labels.orderContinue, this.labels.point, {
  2478. confirmButtonText: this.labels.true,
  2479. cancelButtonText: this.labels.cancel,
  2480. type: 'warning'
  2481. }).then(() => {
  2482. changeOrderRouting(inData).then(({data}) => {
  2483. if (data && data.code == 200) {
  2484. this.$message.success(this.labels.doYes)
  2485. } else {
  2486. this.$alert(data.msg, this.labels.error, {
  2487. confirmButtonText: this.labels.true
  2488. })
  2489. }
  2490. })
  2491. })
  2492. } else {
  2493. this.$alert(data.msg, this.labels.error, {
  2494. confirmButtonText: this.labels.true
  2495. })
  2496. }
  2497. })
  2498. })
  2499. },
  2500. copyRouting() {
  2501. if (this.mainData.partNo == null || this.mainData.partNo == '') {
  2502. this.$alert(this.labels.inPartNo, this.labels.error, {
  2503. confirmButtonText: this.labels.true
  2504. })
  2505. return false;
  2506. }
  2507. this.copyRoutingData = {
  2508. partNo: this.mainData.partNo,
  2509. partDescription: this.mainData.spec,
  2510. revNo: this.mainData.revNo,
  2511. phaseInDate: this.mainData.phaseInDate,
  2512. repairFlag: this.mainData.repairFlag,
  2513. partNo1: '',
  2514. partDescription1: '',
  2515. revNo1: '',
  2516. phaseInDate1: new Date(),
  2517. repairFlag1: false,
  2518. oldFlag: false,
  2519. toolFlag: false,
  2520. resourceFlag: false,
  2521. },
  2522. this.copyRoutingModelFlag = true;
  2523. },
  2524. saveCopyRouting() {
  2525. if (this.copyRoutingData.partNo1 == '' || this.copyRoutingData.partNo1 == null) {
  2526. this.$alert(this.labels.inNewPartNo, this.labels.error, {
  2527. confirmButtonText: this.labels.true
  2528. })
  2529. return false;
  2530. }
  2531. if (this.copyRoutingData.revNo1 == '' || this.copyRoutingData.revNo1 == null) {
  2532. this.$alert(this.labels.inNewRevNo, this.labels.error, {
  2533. confirmButtonText: this.labels.true
  2534. })
  2535. return false;
  2536. }
  2537. if (this.copyRoutingData.phaseInDate1 == '' || this.copyRoutingData.phaseInDate1 == null) {
  2538. this.$alert(this.labels.inNewPhaseInDate, this.labels.error, {
  2539. confirmButtonText: this.labels.true
  2540. })
  2541. return false;
  2542. }
  2543. let repairFlag1 = 'N';
  2544. if (this.copyRoutingData.repairFlag1 === true) {
  2545. repairFlag1 = 'Y';
  2546. }
  2547. let inData = {
  2548. site: this.mainData.site,
  2549. partNo: this.copyRoutingData.partNo,
  2550. revNo: this.copyRoutingData.revNo,
  2551. partNo1: this.copyRoutingData.partNo1,
  2552. revNo1: this.copyRoutingData.revNo1,
  2553. phaseInDate1: this.copyRoutingData.phaseInDate1,
  2554. repairFlag1: repairFlag1,
  2555. oldFlag: this.copyRoutingData.oldFlag,
  2556. toolFlag: this.copyRoutingData.toolFlag,
  2557. resourceFlag: this.copyRoutingData.resourceFlag,
  2558. user: this.$store.state.user.name
  2559. }
  2560. saveCopyRouting(inData).then(({data}) => {
  2561. if (data && data.code == 200) {
  2562. this.copyRoutingModelFlag = false
  2563. let data = {
  2564. partNo: this.mainData.partNo,
  2565. site: this.mainData.site,
  2566. revNo: this.mainData.revNo,
  2567. }
  2568. searchRoutingWithPartNo(data).then(({data}) => {
  2569. if (data.rows.length > 0) {
  2570. if (data.rows[0].repairFlag == 'Y') {
  2571. data.rows[0].repairFlag = true;
  2572. } else {
  2573. data.rows[0].repairFlag = false;
  2574. }
  2575. if (data.rows[0].defaultflag == 'Y') {
  2576. data.rows[0].defaultflag = true;
  2577. } else {
  2578. data.rows[0].defaultflag = false;
  2579. }
  2580. this.mainData = data.rows[0]
  2581. let data1 = {
  2582. site: data.rows[0].site,
  2583. partNo: data.rows[0].partNo,
  2584. revNo: data.rows[0].revNo,
  2585. }
  2586. searchRoutingDetailData(data1).then(({data}) => {
  2587. this.dataList2 = data.rows;
  2588. })
  2589. searchRoutingToolData(data1).then(({data}) => {
  2590. this.dataList3 = data.rows;
  2591. })
  2592. }
  2593. })
  2594. this.$message.success(this.labels.doYes)
  2595. let row = {
  2596. partNo: this.copyRoutingData.partNo1,
  2597. site: this.mainData.site,
  2598. revNo: this.copyRoutingData.revNo1,
  2599. }
  2600. this.tableHanddle(row)
  2601. } else {
  2602. this.$alert(data.msg, this.labels.error, {
  2603. confirmButtonText: this.labels.true
  2604. })
  2605. }
  2606. })
  2607. },
  2608. getPartDescription() {
  2609. let inData = {
  2610. user: this.$store.state.user.name,
  2611. site: this.mainData.site,
  2612. partNo: this.copyRoutingData.partNo1
  2613. }
  2614. searchPartNoData(inData).then(({data}) => {
  2615. if (data.rows.length == 0) {
  2616. return false;
  2617. }
  2618. this.copyRoutingData.partDescription1 = data.rows[0].partDescription;
  2619. })
  2620. },
  2621. setDefault() {
  2622. if (this.mainData.partNo == null || this.mainData.partNo == '') {
  2623. this.$alert(this.labels.inPartNo, this.labels.error, {
  2624. confirmButtonText: this.labels.true
  2625. })
  2626. return false;
  2627. }
  2628. this.$confirm(this.labels.defaultflagAsk, this.labels.point, {
  2629. confirmButtonText: this.labels.true,
  2630. cancelButtonText: this.labels.cancel,
  2631. type: 'warning'
  2632. }).then(() => {
  2633. let data1 = {
  2634. site: this.mainData.site,
  2635. partNo: this.mainData.partNo,
  2636. revNo: this.mainData.revNo,
  2637. }
  2638. setDefault(data1).then(({data}) => {
  2639. if (data && data.code == 200) {
  2640. this.mainData.defaultflag = true;
  2641. this.$message.success(this.labels.doYes)
  2642. } else {
  2643. this.$alert(data.msg, this.labels.error, {
  2644. confirmButtonText: this.labels.true
  2645. })
  2646. }
  2647. })
  2648. })
  2649. },
  2650. //获取按钮的权限数据
  2651. getButtonAuthData() {
  2652. let updateFlag = this.isAuth(this.menuId + ":revise");
  2653. let fullControFlag = this.isAuth(this.menuId + ":fullContro");
  2654. let deleteFlag = this.isAuth(this.menuId + ":remove");
  2655. //处理页面的权限数据
  2656. this.authEdit = !updateFlag || !fullControFlag;
  2657. this.authAdd = !fullControFlag;
  2658. this.authDelete = !deleteFlag;
  2659. //跳转页面
  2660. let menList = JSON.parse(sessionStorage.getItem('dynamicMenuRoutes') || '[]').filter(item => item.path == 'base-workCenter')
  2661. if (menList.length > 0) {
  2662. this.jumpFlag = false
  2663. }
  2664. //跳转页面
  2665. let menList2 = JSON.parse(sessionStorage.getItem('dynamicMenuRoutes') || '[]').filter(item => item.path == 'knifemold-tool-info')
  2666. if (menList2.length > 0) {
  2667. this.jumpFlag2 = false
  2668. }
  2669. },
  2670. //多语言
  2671. getMultiLanguageList() {
  2672. //首先查询当前按钮的多语言
  2673. searchFunctionButtonList(this.queryButton).then(({data}) => {
  2674. if (data && data.code == 0) {
  2675. this.buttons = data.data
  2676. } else {
  2677. // saveButtonList(this.buttonList).then(({data}) => {
  2678. // })
  2679. }
  2680. });
  2681. //其次查询当前标签的多语言
  2682. searchFunctionButtonList(this.queryLabel).then(({data}) => {
  2683. if (data && data.code == 0) {
  2684. this.labels = data.data
  2685. } else {
  2686. // saveButtonList(this.buttonList).then(({data}) => {
  2687. // })
  2688. }
  2689. });
  2690. },
  2691. },
  2692. created() {
  2693. //获取按钮的权限
  2694. this.getButtonAuthData();
  2695. this.getMultiLanguageList()//刷新按钮
  2696. }
  2697. }
  2698. </script>
  2699. <style scoped>
  2700. </style>