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.

2374 lines
88 KiB

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