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.

1054 lines
37 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
  1. <template>
  2. <div class="customer-css">
  3. <el-dialog title="生产订单-工艺路线维护" v-drag v-bind="$attrs" v-on="$listeners" width="800px" class="customer-dialog" >
  4. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: -5px;">
  5. <el-form-item :label="'订单号:'">
  6. <el-input v-model="searchData.orderNo" class="customer-input-color-red" readonly style="width: 130px"></el-input>
  7. </el-form-item>
  8. <el-form-item :label="'物料编码:'">
  9. <el-input v-model="searchData.partNo" class="customer-input-color-red" readonly style="width: 130px"></el-input>
  10. </el-form-item>
  11. <el-form-item :label="'物料名称/规格:'">
  12. <el-input v-model="searchData.partDesc" class="customer-input-color-red" readonly style="width: 260px"></el-input>
  13. </el-form-item>
  14. <el-form-item :label="'工厂编号:'">
  15. <el-input v-model="searchData.site" class="customer-input-color-red" readonly style="width: 130px"></el-input>
  16. </el-form-item>
  17. </el-form>
  18. <el-form :inline="true" label-position="top" label-width="100px" style="margin-top: 0px;">
  19. <el-button class="customer-bun-min" type="primary" @click="addModel" style="margin-left: 0px; margin-bottom: 0px;">新增</el-button>
  20. <el-button class="customer-bun-min" type="primary" @click="updateModel" style="margin-left: 0px; margin-bottom: 0px;">编辑</el-button>
  21. <el-button class="customer-bun-min" type="primary" @click="deleteSORoutingData" style="margin-left: 0px; margin-bottom: 0px;">删除</el-button>
  22. <el-button @click="getResourceModel()" type="primary" style="margin-left: 2px;margin-top: 0px">{{'可用机台'}}</el-button>
  23. </el-form>
  24. <el-table
  25. :height="height"
  26. :data="dataList"
  27. border
  28. @row-click="clickData"
  29. highlight-current-row
  30. v-loading="dataListLoading"
  31. style="width: 100%;">
  32. <el-table-column
  33. v-for="(item,index) in columnList" :key="index"
  34. :sortable="item.columnSortable"
  35. :prop="item.columnProp"
  36. :header-align="item.headerAlign"
  37. :show-overflow-tooltip="item.showOverflowTooltip"
  38. :align="item.align"
  39. :fixed="item.fixed"
  40. :width="item.columnWidth"
  41. :label="item.columnLabel">
  42. <template slot-scope="scope">
  43. <span v-if="!item.columnHidden"> {{scope.row[item.columnProp]}}</span>
  44. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  45. style="width: 100px; height: 80px"/></span>
  46. </template>
  47. </el-table-column>
  48. </el-table>
  49. </el-dialog>
  50. <el-dialog title="维护工艺路线明细" :close-on-click-modal="false" v-drag :visible.sync="addModelFlag" width="660px">
  51. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: 0px;">
  52. <el-form-item :label="'工序号:'">
  53. <el-input v-model="detailData.itemNo" class="customer-input-color-red" readonly style="width: 130px;text-align: right" type="number"></el-input>
  54. </el-form-item>
  55. <el-form-item :label="'工序名称:'">
  56. <el-input v-model="detailData.operationDesc" style="width: 130px"></el-input>
  57. </el-form-item>
  58. <el-form-item >
  59. <span slot="label" style="" @click="getBaseList(24)"><a herf="#">加工中心编码</a></span>
  60. <el-input v-model="detailData.workCenterNo" style="width: 150px"></el-input>
  61. </el-form-item>
  62. <el-form-item :label="'准备时间:'">
  63. <el-input v-model="detailData.machSetupTime" style="width: 150px"></el-input>
  64. </el-form-item>
  65. </el-form>
  66. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: 0px;">
  67. <el-form-item :label="'单位产出量:'">
  68. <el-input v-model="detailData.machRunFactor" type="number" style="width: 130px"></el-input>
  69. </el-form-item>
  70. <el-form-item :label="'产出单位:'">
  71. <el-select filterable v-model="detailData.factorUnit" style="width: 130px">
  72. <el-option label="单位/小时" value="单位/小时"></el-option>
  73. <el-option label="小时" value="小时"></el-option>
  74. </el-select>
  75. </el-form-item>
  76. <el-form-item :label="'计划开工时间:'">
  77. <el-date-picker
  78. v-model="detailData.planStartTime"
  79. type="datetime"
  80. value-format="yyyy-MM-dd HH:mm:ss"
  81. style="width: 150px"
  82. placeholder="选择日期时间">
  83. </el-date-picker>
  84. </el-form-item>
  85. <el-form-item :label="'计划完工时间:'">
  86. <el-date-picker
  87. v-model="detailData.planFinishTime"
  88. type="datetime"
  89. value-format="yyyy-MM-dd HH:mm:ss"
  90. style="width: 150px"
  91. placeholder="选择日期时间">
  92. </el-date-picker>
  93. </el-form-item>
  94. </el-form>
  95. <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: 0px;">
  96. <el-form-item :label="'效率:'">
  97. <el-input v-model="detailData.efficiency" type="number" style="width: 130px"></el-input>
  98. </el-form-item>
  99. <el-form-item :label="'操作工人数:'">
  100. <el-input v-model="detailData.crewsize" type="number" style="width: 130px"></el-input>
  101. </el-form-item>
  102. <el-form-item :label="'备注:'">
  103. <el-input v-model="detailData.remark" style="width: 150px"></el-input>
  104. </el-form-item>
  105. </el-form>
  106. <el-footer style="height:40px;margin-top: 20px;text-align:center">
  107. <el-button type="primary" @click="saveSORoutingData()">保存</el-button>
  108. <el-button type="primary" @click="addModelFlag = false">关闭</el-button>
  109. </el-footer>
  110. </el-dialog>
  111. <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
  112. <el-dialog title="可用机台" :close-on-click-modal="false" v-drag :visible.sync="routingModelFlag" width="800px">
  113. <el-container>
  114. <el-main style="width: 300px">
  115. <span style="" >可选机台</span>
  116. <el-table
  117. height="300px"
  118. :data="resourceList1"
  119. border
  120. @row-click="clickData2"
  121. highlight-current-row
  122. v-loading="dataListLoading"
  123. style="width: 100%">
  124. <el-table-column
  125. v-for="(item,index) in columnList2" :key="index"
  126. :sortable="item.columnSortable"
  127. :prop="item.columnProp"
  128. :header-align="item.headerAlign"
  129. :show-overflow-tooltip="item.showOverflowTooltip"
  130. :align="item.align"
  131. :fixed="item.fixed"
  132. :min-width="item.columnWidth"
  133. :label="item.columnLabel">
  134. <template slot-scope="scope">
  135. <span v-if="!item.columnHidden"> {{scope.row[item.columnProp]}}</span>
  136. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  137. style="width: 100px; height: 80px"/></span>
  138. </template>
  139. </el-table-column>
  140. </el-table>
  141. </el-main>
  142. <el-main style="width: 100px">
  143. <div style="margin-top: 100px">
  144. <el-button type="primary" @click="addResource()">添加机台>></el-button>
  145. </div>
  146. <div style="margin-top: 20px">
  147. <el-button type="primary" @click="deleteResource()">删除机台<<</el-button>
  148. </div>
  149. </el-main>
  150. <el-main style="width: 300px">
  151. <span style="" >已选机台</span>
  152. <el-table
  153. height="300px"
  154. :data="resourceList2"
  155. border
  156. @row-click="clickData3"
  157. highlight-current-row
  158. v-loading="dataListLoading"
  159. style="width: 100%">
  160. <el-table-column
  161. v-for="(item,index) in columnList3" :key="index"
  162. :sortable="item.columnSortable"
  163. :prop="item.columnProp"
  164. :header-align="item.headerAlign"
  165. :show-overflow-tooltip="item.showOverflowTooltip"
  166. :align="item.align"
  167. :fixed="item.fixed"
  168. :min-width="item.columnWidth"
  169. :label="item.columnLabel">
  170. <template slot-scope="scope">
  171. <span v-if="!item.columnHidden"> {{scope.row[item.columnProp]}}</span>
  172. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]"
  173. style="width: 100px; height: 80px"/></span>
  174. </template>
  175. </el-table-column>
  176. </el-table>
  177. </el-main>
  178. </el-container>
  179. </el-dialog>
  180. </div>
  181. </template>
  182. <script>
  183. import Chooselist from '@/views/modules/common/Chooselist'
  184. import {
  185. getSORoutingData,
  186. saveSORoutingData,
  187. deleteSORoutingData,
  188. searchAllResource,
  189. searchSORoutingResource,
  190. addSORoutingResource,
  191. deleteSORoutingResource
  192. }from "@/api/base/site.js"
  193. export default {
  194. name: "updateProductRouting",
  195. components: {
  196. Chooselist
  197. },
  198. data () {
  199. return {
  200. searchData:{
  201. orderNo:'',
  202. partNo:'',
  203. partDesc:'',
  204. site:'',
  205. user:this.$store.state.user.name,
  206. },
  207. tagNo:'',
  208. addModelFlag:false,
  209. height:350,
  210. dataList:[],
  211. resourceList1:[],
  212. resourceList2:[],
  213. dataListLoading:false,
  214. currentRow:null,
  215. currentRow2:null,
  216. currentRow3:null,
  217. columnList:[
  218. {
  219. userId: this.$store.state.user.name,
  220. functionId: 6099,
  221. serialNumber: '6099TableItemNo',
  222. tableId: "6099Table",
  223. tableName: "维护工艺路线工序表",
  224. columnProp: "itemNo",
  225. headerAlign: "center",
  226. align: "right",
  227. columnLabel: "工序号",
  228. columnHidden: false,
  229. columnImage: false,
  230. columnSortable: false,
  231. sortLv: 0,
  232. status: true,
  233. fixed: false,
  234. columnWidth: 60
  235. },
  236. {
  237. userId: this.$store.state.user.name,
  238. functionId: 6099,
  239. serialNumber: '6099TableOperationDesc',
  240. tableId: "6099Table",
  241. tableName: "维护工艺路线工序表",
  242. columnProp: "operationDesc",
  243. headerAlign: "center",
  244. align: "left",
  245. columnLabel: "工序名称",
  246. columnHidden: false,
  247. columnImage: false,
  248. columnSortable: false,
  249. sortLv: 0,
  250. status: true,
  251. fixed: false,
  252. columnWidth: 300
  253. },
  254. {
  255. userId: this.$store.state.user.name,
  256. functionId: 6099,
  257. serialNumber: '6099TableWorkCenterNo',
  258. tableId: "6099Table",
  259. tableName: "维护工艺路线工序表",
  260. columnProp: "workCenterNo",
  261. headerAlign: "center",
  262. align: "left",
  263. columnLabel: "加工中心编码",
  264. columnHidden: false,
  265. columnImage: false,
  266. columnSortable: false,
  267. sortLv: 0,
  268. status: true,
  269. fixed: false,
  270. columnWidth: 100
  271. },
  272. {
  273. userId: this.$store.state.user.name,
  274. functionId: 6099,
  275. serialNumber: '6099TableWorkCenterDesc',
  276. tableId: "6099Table",
  277. tableName: "维护工艺路线工序表",
  278. columnProp: "workCenterDesc",
  279. headerAlign: "center",
  280. align: "left",
  281. columnLabel: "加工中心名称",
  282. columnHidden: false,
  283. columnImage: false,
  284. columnSortable: false,
  285. sortLv: 0,
  286. status: true,
  287. fixed: false,
  288. columnWidth: 100
  289. },
  290. {
  291. userId: this.$store.state.user.name,
  292. functionId: 6099,
  293. serialNumber: '6099TableMachSetupTime',
  294. tableId: "6099Table",
  295. tableName: "维护工艺路线工序表",
  296. columnProp: "machSetupTime",
  297. headerAlign: "center",
  298. align: "right",
  299. columnLabel: "准备时间(小时)",
  300. columnHidden: false,
  301. columnImage: false,
  302. columnSortable: false,
  303. sortLv: 0,
  304. status: true,
  305. fixed: false,
  306. columnWidth: 100
  307. },
  308. {
  309. userId: this.$store.state.user.name,
  310. functionId: 6099,
  311. serialNumber: '6099TableMachRunFactor',
  312. tableId: "6099Table",
  313. tableName: "维护工艺路线工序表",
  314. columnProp: "machRunFactor",
  315. headerAlign: "center",
  316. align: "right",
  317. columnLabel: "单位产出量",
  318. columnHidden: false,
  319. columnImage: false,
  320. columnSortable: false,
  321. sortLv: 0,
  322. status: true,
  323. fixed: false,
  324. columnWidth: 100
  325. },
  326. {
  327. userId: this.$store.state.user.name,
  328. functionId: 6099,
  329. serialNumber: '6099TableFactorUnit',
  330. tableId: "6099Table",
  331. tableName: "维护工艺路线工序表",
  332. columnProp: "factorUnit",
  333. headerAlign: "center",
  334. align: "left",
  335. columnLabel: "产出单位",
  336. columnHidden: false,
  337. columnImage: false,
  338. columnSortable: false,
  339. sortLv: 0,
  340. status: true,
  341. fixed: false,
  342. columnWidth: 100
  343. },
  344. {
  345. userId: this.$store.state.user.name,
  346. functionId: 6099,
  347. serialNumber: '6099TableTimeRequired',
  348. tableId: "6099Table",
  349. tableName: "维护工艺路线工序表",
  350. columnProp: "timeRequired",
  351. headerAlign: "center",
  352. align: "right",
  353. columnLabel: "需求时间",
  354. columnHidden: false,
  355. columnImage: false,
  356. columnSortable: false,
  357. sortLv: 0,
  358. status: true,
  359. fixed: false,
  360. columnWidth: 80
  361. },
  362. {
  363. userId: this.$store.state.user.name,
  364. functionId: 6099,
  365. serialNumber: '6099TableTimeReported',
  366. tableId: "6099Table",
  367. tableName: "维护工艺路线工序表",
  368. columnProp: "timeReported",
  369. headerAlign: "center",
  370. align: "right",
  371. columnLabel: "报告时间",
  372. columnHidden: false,
  373. columnImage: false,
  374. columnSortable: false,
  375. sortLv: 0,
  376. status: true,
  377. fixed: false,
  378. columnWidth: 80
  379. },
  380. {
  381. userId: this.$store.state.user.name,
  382. functionId: 6099,
  383. serialNumber: '6099TableEfficiency',
  384. tableId: "6099Table",
  385. tableName: "维护工艺路线工序表",
  386. columnProp: "efficiency",
  387. headerAlign: "center",
  388. align: "right",
  389. columnLabel: "效率(%)",
  390. columnHidden: false,
  391. columnImage: false,
  392. columnSortable: false,
  393. sortLv: 0,
  394. status: true,
  395. fixed: false,
  396. columnWidth: 80
  397. },
  398. {
  399. userId: this.$store.state.user.name,
  400. functionId: 6099,
  401. serialNumber: '6099TableRemark',
  402. tableId: "6099Table",
  403. tableName: "维护工艺路线工序表",
  404. columnProp: "remark",
  405. headerAlign: "center",
  406. align: "left",
  407. columnLabel: "备注",
  408. columnHidden: false,
  409. columnImage: false,
  410. columnSortable: false,
  411. sortLv: 0,
  412. status: true,
  413. fixed: false,
  414. columnWidth: 160
  415. },
  416. {
  417. userId: this.$store.state.user.name,
  418. functionId: 6099,
  419. serialNumber: '6099TableQtyRequired',
  420. tableId: "6099Table",
  421. tableName: "维护工艺路线工序表",
  422. columnProp: "qtyRequired",
  423. headerAlign: "center",
  424. align: "right",
  425. columnLabel: "需求数量",
  426. columnHidden: false,
  427. columnImage: false,
  428. columnSortable: false,
  429. sortLv: 0,
  430. status: true,
  431. fixed: false,
  432. columnWidth: 80
  433. },
  434. {
  435. userId: this.$store.state.user.name,
  436. functionId: 6099,
  437. serialNumber: '6099TableQtyReported',
  438. tableId: "6099Table",
  439. tableName: "维护工艺路线工序表",
  440. columnProp: "qtyReported",
  441. headerAlign: "center",
  442. align: "right",
  443. columnLabel: "计价单位",
  444. columnHidden: false,
  445. columnImage: false,
  446. columnSortable: false,
  447. sortLv: 0,
  448. status: true,
  449. fixed: false,
  450. columnWidth: 80
  451. },
  452. {
  453. userId: this.$store.state.user.name,
  454. functionId: 6099,
  455. serialNumber: '6099TableQtyApprove',
  456. tableId: "6099Table",
  457. tableName: "维护工艺路线工序表",
  458. columnProp: "qtyApprove",
  459. headerAlign: "center",
  460. align: "right",
  461. columnLabel: "合格数量",
  462. columnHidden: false,
  463. columnImage: false,
  464. columnSortable: false,
  465. sortLv: 0,
  466. status: true,
  467. fixed: false,
  468. columnWidth: 80
  469. },
  470. {
  471. userId: this.$store.state.user.name,
  472. functionId: 6099,
  473. serialNumber: '6099TablePlanStartTime',
  474. tableId: "6099Table",
  475. tableName: "维护工艺路线工序表",
  476. columnProp: "planStartTime",
  477. headerAlign: "center",
  478. align: "left",
  479. columnLabel: "计划开工时间",
  480. columnHidden: false,
  481. columnImage: false,
  482. columnSortable: false,
  483. sortLv: 0,
  484. status: true,
  485. fixed: false,
  486. columnWidth: 140
  487. },
  488. {
  489. userId: this.$store.state.user.name,
  490. functionId: 6099,
  491. serialNumber: '6099TablePlanFinishTime',
  492. tableId: "6099Table",
  493. tableName: "维护工艺路线工序表",
  494. columnProp: "planFinishTime",
  495. headerAlign: "center",
  496. align: "left",
  497. columnLabel: "计划完工时间",
  498. columnHidden: false,
  499. columnImage: false,
  500. columnSortable: false,
  501. sortLv: 0,
  502. status: true,
  503. fixed: false,
  504. columnWidth: 140
  505. },
  506. {
  507. userId: this.$store.state.user.name,
  508. functionId: 6099,
  509. serialNumber: '6099TableBarcodeID',
  510. tableId: "6099Table",
  511. tableName: "维护工艺路线工序表",
  512. columnProp: "barcodeID",
  513. headerAlign: "center",
  514. align: "left",
  515. columnLabel: "条形码",
  516. columnHidden: false,
  517. columnImage: false,
  518. columnSortable: false,
  519. sortLv: 0,
  520. status: true,
  521. fixed: false,
  522. columnWidth: 120
  523. },
  524. {
  525. userId: this.$store.state.user.name,
  526. functionId: 6099,
  527. serialNumber: '6099TableCrewsize',
  528. tableId: "6099Table",
  529. tableName: "维护工艺路线工序表",
  530. columnProp: "crewsize",
  531. headerAlign: "center",
  532. align: "left",
  533. columnLabel: "操作工人数",
  534. columnHidden: false,
  535. columnImage: false,
  536. columnSortable: false,
  537. sortLv: 0,
  538. status: true,
  539. fixed: false,
  540. columnWidth: 100
  541. },
  542. {
  543. userId: this.$store.state.user.name,
  544. functionId: 6099,
  545. serialNumber: '6099TableWXPartNo',
  546. tableId: "6099Table",
  547. tableName: "维护工艺路线工序表",
  548. columnProp: "wxPartNo",
  549. headerAlign: "center",
  550. align: "left",
  551. columnLabel: "费用结算料号",
  552. columnHidden: false,
  553. columnImage: false,
  554. columnSortable: false,
  555. sortLv: 0,
  556. status: true,
  557. fixed: false,
  558. columnWidth: 120
  559. },
  560. {
  561. userId: this.$store.state.user.name,
  562. functionId: 6099,
  563. serialNumber: '6099TableWXSpec',
  564. tableId: "6099Table",
  565. tableName: "维护工艺路线工序表",
  566. columnProp: "wxSpec",
  567. headerAlign: "center",
  568. align: "left",
  569. columnLabel: "费用结算物料名称/规格",
  570. columnHidden: false,
  571. columnImage: false,
  572. columnSortable: false,
  573. sortLv: 0,
  574. status: true,
  575. fixed: false,
  576. columnWidth: 250
  577. },
  578. ],
  579. detailData:{
  580. itemNo:'',
  581. operationDesc:'',
  582. workCenterNo:'',
  583. machSetupTime:'',
  584. machRunFactor:'',
  585. factorUnit:'单位/小时',
  586. planStartTime:'',
  587. planFinishTime:'',
  588. efficiency:'',
  589. crewsize:'',
  590. remark:'',
  591. site:'',
  592. partNo:'',
  593. add:'',
  594. user:'',
  595. },
  596. detailmodelInputFlag:false,
  597. routingModelFlag:false,
  598. columnList2:[
  599. {
  600. userId: this.$store.state.user.name,
  601. functionId: 6099,
  602. serialNumber: '6099Table2ResourceID',
  603. tableId: "6099Table2",
  604. tableName: "维护工艺路线可用机台表",
  605. columnProp: "resourceID",
  606. headerAlign: "center",
  607. align: "left",
  608. columnLabel: "机台编码",
  609. columnHidden: false,
  610. columnImage: false,
  611. columnSortable: false,
  612. sortLv: 0,
  613. status: true,
  614. fixed: false,
  615. columnWidth: 70
  616. },
  617. {
  618. userId: this.$store.state.user.name,
  619. functionId: 6099,
  620. serialNumber: '6099Table2ResourceDesc',
  621. tableId: "6099Table2",
  622. tableName: "维护工艺路线可用机台表",
  623. columnProp: "resourceDesc",
  624. headerAlign: "center",
  625. align: "left",
  626. columnLabel: "机台名称",
  627. columnHidden: false,
  628. columnImage: false,
  629. columnSortable: false,
  630. sortLv: 0,
  631. status: true,
  632. fixed: false,
  633. columnWidth: 160
  634. },
  635. {
  636. userId: this.$store.state.user.name,
  637. functionId: 6099,
  638. serialNumber: '6099Table2Active',
  639. tableId: "6099Table2",
  640. tableName: "维护工艺路线可用机台表",
  641. columnProp: "active",
  642. headerAlign: "center",
  643. align: "left",
  644. columnLabel: "在用",
  645. columnHidden: false,
  646. columnImage: false,
  647. columnSortable: false,
  648. sortLv: 0,
  649. status: true,
  650. fixed: false,
  651. columnWidth: 50
  652. },
  653. ],
  654. columnList3:[
  655. {
  656. userId: this.$store.state.user.name,
  657. functionId: 6099,
  658. serialNumber: '6099Table3ResourceID',
  659. tableId: "6099Table3",
  660. tableName: "维护工艺路线已选机台表",
  661. columnProp: "resourceID",
  662. headerAlign: "center",
  663. align: "left",
  664. columnLabel: "机台编码",
  665. columnHidden: false,
  666. columnImage: false,
  667. columnSortable: false,
  668. sortLv: 0,
  669. status: true,
  670. fixed: false,
  671. columnWidth: 70
  672. },
  673. {
  674. userId: this.$store.state.user.name,
  675. functionId: 6099,
  676. serialNumber: '6099Table3ResourceDesc',
  677. tableId: "6099Table3",
  678. tableName: "维护工艺路线已选机台表",
  679. columnProp: "resourceDesc",
  680. headerAlign: "center",
  681. align: "left",
  682. columnLabel: "机台名称",
  683. columnHidden: false,
  684. columnImage: false,
  685. columnSortable: false,
  686. sortLv: 0,
  687. status: true,
  688. fixed: false,
  689. columnWidth: 160
  690. },
  691. {
  692. userId: this.$store.state.user.name,
  693. functionId: 6099,
  694. serialNumber: '6099Table3Active',
  695. tableId: "6099Table3",
  696. tableName: "维护工艺路线已选机台表",
  697. columnProp: "active",
  698. headerAlign: "center",
  699. align: "left",
  700. columnLabel: "在用",
  701. columnHidden: false,
  702. columnImage: false,
  703. columnSortable: false,
  704. sortLv: 0,
  705. status: true,
  706. fixed: false,
  707. columnWidth: 50
  708. },
  709. ],
  710. }
  711. },
  712. mounted() {
  713. },
  714. watch: {
  715. '$route' (to, from) {
  716. // if(localStorage.getItem('calendar')!=undefined){
  717. // this.jump();
  718. // }
  719. }
  720. },
  721. methods: {
  722. getBaseData(val){
  723. if (this.tagNo === 24){
  724. this.detailData.workCenterNo = val.WorkCenterNo
  725. }
  726. },
  727. // 获取基础数据列表
  728. getBaseList(val){
  729. this.tagNo = val
  730. this.$nextTick(() => {
  731. let strVal = "";
  732. if (val === 24){
  733. strVal = this.detailData.workCenterNo
  734. }
  735. this.$refs.baseList.init(val,strVal)
  736. })
  737. },
  738. init(searchData){
  739. //设置参数
  740. this.searchData = searchData;
  741. //调用方法
  742. this.getData();
  743. },
  744. getData(){
  745. getSORoutingData(this.searchData).then(({data}) => {
  746. this.dataList = data.rows;
  747. if(data.total==0){
  748. this.dataList =[];
  749. }
  750. })
  751. },
  752. clickData(row){
  753. this.currentRow = JSON.parse(JSON.stringify(row));
  754. },
  755. addModel(){
  756. this.detailData={
  757. itemNo:'',
  758. operationDesc:'',
  759. workCenterNo:'',
  760. machSetupTime:0,
  761. machRunFactor:1,
  762. factorUnit:'单位/小时',
  763. planStartTime:new Date(),
  764. planFinishTime:new Date(),
  765. efficiency:'',
  766. crewsize:100,
  767. remark:'',
  768. site:this.searchData.site,
  769. partNo:this.searchData.partNo,
  770. add:0,
  771. user:this.$store.state.user.name,
  772. };
  773. if(this.dataList===[]){
  774. this.detailData.itemNo=10;
  775. }else {
  776. this.detailData.itemNo=this.dataList[0].itemNo;
  777. for (let i = 0; i < this.dataList.length; i++) {
  778. if(this.detailData.itemNo<this.dataList[i].itemNo){
  779. this.detailData.itemNo=this.dataList[i].itemNo
  780. }
  781. }
  782. this.detailData.itemNo+=10;
  783. }
  784. this.addModelFlag=true;
  785. },
  786. updateModel(){
  787. if(this.currentRow==null){
  788. this.$alert('请选择工序', '错误', {
  789. confirmButtonText: '确定'
  790. })
  791. return false;
  792. }
  793. this.detailData={
  794. itemNo:this.currentRow.itemNo,
  795. operationDesc:this.currentRow.operationDesc,
  796. workCenterNo:this.currentRow.workCenterNo,
  797. machSetupTime:this.currentRow.machSetupTime,
  798. machRunFactor:this.currentRow.machRunFactor,
  799. factorUnit:this.currentRow.factorUnit,
  800. planStartTime:this.currentRow.planStartTime,
  801. planFinishTime:this.currentRow.planFinishTime,
  802. efficiency:this.currentRow.efficiency,
  803. crewsize:this.currentRow.crewsize,
  804. remark:this.currentRow.remark,
  805. site:this.currentRow.site,
  806. partNo:this.currentRow.partNo,
  807. add:1,
  808. user:this.$store.state.user.name,
  809. }
  810. this.addModelFlag=true;
  811. },
  812. saveSORoutingData(){
  813. if(this.detailData.itemNo==''||this.detailData.itemNo==null){
  814. this.$alert("请输入工序号!",'错误',{
  815. confirmButtonText:'确定'
  816. })
  817. return false;
  818. }
  819. if(this.detailData.operationDesc==''||this.detailData.operationDesc==null){
  820. this.$alert("请输入工序名称!",'错误',{
  821. confirmButtonText:'确定'
  822. })
  823. return false;
  824. }
  825. if(this.detailData.machSetupTime===''||this.detailData.machSetupTime==null){
  826. this.$alert("请输入准备时间!",'错误',{
  827. confirmButtonText:'确定'
  828. })
  829. return false;
  830. }
  831. if(this.detailData.workCenterNo==''||this.detailData.workCenterNo==null){
  832. this.$alert("请输入加工中心编码!",'错误',{
  833. confirmButtonText:'确定'
  834. })
  835. return false;
  836. }
  837. if(this.detailData.crewsize===''||this.detailData.crewsize==null){
  838. this.$alert("请输入操作员人数!",'错误',{
  839. confirmButtonText:'确定'
  840. })
  841. return false;
  842. }
  843. if(this.detailData.efficiency===''||this.detailData.efficiency==null){
  844. this.$alert("请输入效率!",'错误',{
  845. confirmButtonText:'确定'
  846. })
  847. return false;
  848. }
  849. if(this.detailData.machRunFactor===''||this.detailData.machRunFactor==null){
  850. this.$alert("请输入单位产出量!",'错误',{
  851. confirmButtonText:'确定'
  852. })
  853. return false;
  854. }
  855. if(this.detailData.machRunFactor<=0){
  856. this.$alert("单位产出量必须大于0!",'错误',{
  857. confirmButtonText:'确定'
  858. })
  859. return false;
  860. }
  861. if(this.detailData.efficiency<=0){
  862. this.$alert("效率必须大于0!",'错误',{
  863. confirmButtonText:'确定'
  864. })
  865. return false;
  866. }
  867. let inData={
  868. itemNo:this.detailData.itemNo,
  869. operationDesc:this.detailData.operationDesc,
  870. workCenterNo:this.detailData.workCenterNo,
  871. machSetupTime:this.detailData.machSetupTime,
  872. machRunFactor:this.detailData.machRunFactor,
  873. factorUnit:this.detailData.factorUnit,
  874. planStartTime:this.detailData.planStartTime,
  875. planFinishTime:this.detailData.planFinishTime,
  876. efficiency:this.detailData.efficiency,
  877. crewsize:this.detailData.crewsize,
  878. remark:this.detailData.remark,
  879. site:this.detailData.site,
  880. partNo:this.detailData.partNo,
  881. orderNo:this.searchData.orderNo,
  882. add:this.detailData.add,
  883. user:this.$store.state.user.name,
  884. }
  885. saveSORoutingData(inData).then(({data}) => {
  886. this.currentRow=null;
  887. if (data && data.code == 200) {
  888. this.addModelFlag = false
  889. this.getData();
  890. this.$message({
  891. message: '操作成功',
  892. type: 'success',
  893. duration: 1500,
  894. onClose: () => {
  895. }
  896. })
  897. } else {
  898. this.$alert(data.msg, '错误', {
  899. confirmButtonText: '确定'
  900. })
  901. }
  902. })
  903. },
  904. deleteSORoutingData(){
  905. if(this.currentRow==null){
  906. this.$alert("请选择工序!", '错误', {
  907. confirmButtonText: '确定'
  908. })
  909. return false;
  910. }
  911. this.$confirm(`是否删除此工艺路线工序?`, '提示', {
  912. confirmButtonText: '确定',
  913. cancelButtonText: '取消',
  914. type: 'warning'
  915. }).then(() => {
  916. deleteSORoutingData(this.currentRow).then(({data}) => {
  917. this.currentRow=null;
  918. if (data && data.code == 200) {
  919. this.getData();
  920. this.$message({
  921. message: '删除成功',
  922. type: 'success',
  923. duration: 1500,
  924. onClose: () => {
  925. }
  926. })
  927. } else {
  928. this.$alert(data.msg, '错误', {
  929. confirmButtonText: '确定'
  930. })
  931. }
  932. })
  933. })
  934. },
  935. clickData3(row){
  936. this.currentRow3 = JSON.parse(JSON.stringify(row));
  937. },
  938. clickData2(row){
  939. this.currentRow2 = JSON.parse(JSON.stringify(row));
  940. },
  941. getResourceModel(){
  942. if(this.currentRow==null){
  943. this.$alert("请选择工艺路线工序!", '错误', {
  944. confirmButtonText: '确定'
  945. })
  946. return false;
  947. }
  948. let data1={
  949. site:this.searchData.site,
  950. workCenterNo:this.currentRow.workCenterNo,
  951. }
  952. searchAllResource(data1).then(({data}) => {
  953. this.resourceList1 = data.rows
  954. })
  955. let data2={
  956. site:this.searchData.site,
  957. orderNo:this.searchData.orderNo,
  958. itemNo:this.currentRow.itemNo
  959. }
  960. searchSORoutingResource(data2).then(({data}) => {
  961. this.resourceList2 = data.rows
  962. })
  963. this.routingModelFlag=true;
  964. },
  965. addResource(){
  966. if(this.currentRow2==null){
  967. this.$alert("请选择可选机台!", '错误', {
  968. confirmButtonText: '确定'
  969. })
  970. return false;
  971. }
  972. let inData={
  973. site: this.currentRow.site,
  974. orderNo:this.currentRow.orderNo,
  975. itemNo:this.currentRow.itemNo,
  976. resourceID:this.currentRow2.resourceID
  977. }
  978. addSORoutingResource(inData).then(({data}) => {
  979. if (data && data.code == 200) {
  980. let data2={
  981. site:this.searchData.site,
  982. orderNo:this.searchData.orderNo,
  983. itemNo:this.currentRow.itemNo
  984. }
  985. searchSORoutingResource(data2).then(({data}) => {
  986. this.resourceList2 = data.rows
  987. })
  988. } else {
  989. this.$alert(data.msg, '错误', {
  990. confirmButtonText: '确定'
  991. })
  992. }
  993. })
  994. },
  995. deleteResource(){
  996. if(this.currentRow3==null){
  997. this.$alert("请选择已选机台!", '错误', {
  998. confirmButtonText: '确定'
  999. })
  1000. return false;
  1001. }
  1002. this.$confirm(`是否删除此机台?`, '提示', {
  1003. confirmButtonText: '确定',
  1004. cancelButtonText: '取消',
  1005. type: 'warning'
  1006. }).then(() => {
  1007. let inData = {
  1008. site: this.currentRow.site,
  1009. orderNo:this.currentRow.orderNo,
  1010. itemNo:this.currentRow.itemNo,
  1011. resourceID: this.currentRow3.resourceID
  1012. }
  1013. deleteSORoutingResource(inData).then(({data}) => {
  1014. if (data && data.code == 200) {
  1015. this.currentRow3 = null;
  1016. let data2={
  1017. site:this.searchData.site,
  1018. orderNo:this.searchData.orderNo,
  1019. itemNo:this.currentRow.itemNo
  1020. }
  1021. searchSORoutingResource(data2).then(({data}) => {
  1022. this.resourceList2 = data.rows
  1023. })
  1024. } else {
  1025. this.$alert(data.msg, '错误', {
  1026. confirmButtonText: '确定'
  1027. })
  1028. }
  1029. })
  1030. })
  1031. },
  1032. },
  1033. created() {
  1034. }
  1035. }
  1036. </script>
  1037. <style scoped>
  1038. /*统一的input内容颜色样式*/
  1039. .customer-input-color-red /deep/ .el-input__inner {
  1040. color: red;
  1041. }
  1042. </style>