plm前端
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.

1099 lines
37 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
  1. <template>
  2. <div class="mod-config">
  3. <el-form label-position="top" style="margin-top: 1px; margin-left: 0px;" v-if="searchData.buNo=='RDC'">
  4. <el-row :gutter="20" >
  5. <el-col :span="24"><div class="grid-content bg-purple">
  6. <el-form-item :label="'过程及过程控制/Process and Production Control'">
  7. <el-input
  8. type="textarea"
  9. v-model="dataForm.processDetail "
  10. :rows="3"
  11. resize='none'
  12. maxlength="255"
  13. show-word-limit
  14. :disabled="ifDisableFlag"
  15. style="height: 60px" >
  16. </el-input>
  17. </el-form-item>
  18. </div></el-col>
  19. </el-row>
  20. <el-row :gutter="20" style="margin-top: 60px">
  21. <el-col :span="6"><div class="grid-content bg-purple">
  22. <el-form-item :label="'是否提供胶条/Supply Adhesive Tape'">
  23. <el-select clearable v-model="dataForm.supplyAdhesiveTape" :disabled="ifDisableFlag">
  24. <el-option label="Yes" value="Y"></el-option>
  25. <el-option label="No" value="N"></el-option>
  26. </el-select>
  27. </el-form-item>
  28. </div></el-col>
  29. <el-col :span="18"><div class="grid-content bg-purple">
  30. <el-form-item :label="'图稿/Drawing'">
  31. <el-input v-model="dataForm.routingDrawing" :disabled="ifDisableFlag" ></el-input>
  32. </el-form-item>
  33. </div></el-col>
  34. </el-row>
  35. <el-row :gutter="20" >
  36. <el-col :span="6"><div class="grid-content bg-purple">
  37. <el-form-item :label="'图稿版本/Drawing Revison'">
  38. <el-input v-model="dataForm.drawingRevison" :disabled="ifDisableFlag" ></el-input>
  39. </el-form-item>
  40. </div></el-col>
  41. <el-col :span="6"><div class="grid-content bg-purple">
  42. <el-form-item :label="'图稿日期/Drawing Date'">
  43. <el-date-picker
  44. v-model="searchData.drawingDate"
  45. type="date"
  46. value-format="yyyy-MM-dd"
  47. :disabled="ifDisableFlag"
  48. placeholder="选择日期">
  49. </el-date-picker>
  50. </el-form-item>
  51. </div></el-col>
  52. </el-row>
  53. <el-row :gutter="20" >
  54. <el-col :span="24"><div class="grid-content bg-purple">
  55. <el-form-item :label="'作业说明/WI'">
  56. <el-input
  57. type="textarea"
  58. v-model="dataForm.workInfo"
  59. :rows="3"
  60. resize='none'
  61. maxlength="255"
  62. show-word-limit
  63. :disabled="ifDisableFlag"
  64. style="height: 60px" >
  65. </el-input>
  66. </el-form-item>
  67. </div></el-col>
  68. </el-row>
  69. <el-row :gutter="20" style="margin-top: 60px">
  70. <el-col :span="6"><div class="grid-content bg-purple">
  71. <el-form-item :label="'作业说明版本/WI Revison'">
  72. <el-input v-model="dataForm.wiRevison" :disabled="ifDisableFlag" ></el-input>
  73. </el-form-item>
  74. </div></el-col>
  75. <el-col :span="6"><div class="grid-content bg-purple">
  76. <el-form-item :label="'作业说明日期/WI Date'">
  77. <el-date-picker
  78. v-model="searchData.wiDate"
  79. type="date"
  80. value-format="yyyy-MM-dd"
  81. :disabled="ifDisableFlag"
  82. placeholder="选择日期">
  83. </el-date-picker>
  84. </el-form-item>
  85. </div></el-col>
  86. </el-row>
  87. <el-row :gutter="20" >
  88. <el-col :span="6"><div class="grid-content bg-purple">
  89. <el-form-item>
  90. <span slot="label" style="" @click="reviewEngineerChooseModal()"><a herf="#">选择审查工程师/Select ME Review Engineer</a></span>
  91. <el-input v-model="dataForm.reviewEngineer" readonly style="" @focus="reviewEngineerChooseModal()" ></el-input>
  92. </el-form-item>
  93. </div></el-col>
  94. <el-col :span="6"><div class="grid-content bg-purple">
  95. <el-form-item >
  96. <span slot="label" style="" @click="peEngineerChooseModal()"><a herf="#">选择PE工程师/Select PE Engineer</a></span>
  97. <el-input v-model="dataForm.peEngineer" readonly style="" @focus="peEngineerChooseModal()" ></el-input>
  98. </el-form-item>
  99. </div></el-col>
  100. <el-col :span="6"><div class="grid-content bg-purple">
  101. <el-form-item >
  102. <span slot="label" style="" @click="cqeModal()"><a herf="#">选择CQE/Select CQE</a></span>
  103. <el-input v-model="dataForm.cqe" readonly style="" @focus="cqeModal()" ></el-input>
  104. </el-form-item>
  105. </div></el-col>
  106. </el-row>
  107. <el-row :gutter="20" >
  108. <el-col :span="24"><div class="grid-content bg-purple">
  109. <el-form-item :label="'备注/Remark'">
  110. <el-input
  111. type="textarea"
  112. v-model="dataForm.routingRemark"
  113. :rows="3"
  114. resize='none'
  115. maxlength="255"
  116. show-word-limit
  117. :disabled="ifDisableFlag"
  118. style="height: 60px" >
  119. </el-input>
  120. </el-form-item>
  121. </div></el-col>
  122. </el-row>
  123. <el-row :gutter="20" style="margin-top: 60px">
  124. <el-col :span="24"><div class="grid-content bg-purple">
  125. <el-form-item :label="'Action'">
  126. <el-input
  127. type="textarea"
  128. v-model="dataForm.routingAction"
  129. :rows="3"
  130. resize='none'
  131. maxlength="255"
  132. show-word-limit
  133. :disabled="ifDisableFlag"
  134. style="height: 60px" >
  135. </el-input>
  136. </el-form-item>
  137. </div></el-col>
  138. </el-row>
  139. <el-form-item style="margin-top: 60px;text-align:center">
  140. <el-button type="primary" @click="saveData()" v-if="!ifDisableFlag">保存</el-button>
  141. </el-form-item>
  142. </el-form>
  143. <el-form label-position="top" style="margin-top: 1px; margin-left: 0px;" v-if="searchData.buNo!='RDC'">
  144. <el-form :inline="true" label-position="top" style="margin-top: 1px; margin-left: 0px;" >
  145. <el-form-item label="物料">
  146. <el-input v-model="routeData.partNo" readonly style="width: 120px"></el-input>
  147. </el-form-item>
  148. <el-form-item label="工艺路线类型">
  149. <el-input v-model="routeData.routingType" readonly style="width: 120px"></el-input>
  150. </el-form-item>
  151. <el-form-item label="工艺路线版本">
  152. <el-input v-model="routeData.routingRevision" readonly style="width: 120px"></el-input>
  153. </el-form-item>
  154. <el-form-item label="替代编码">
  155. <el-input v-model="routeData.alternativeNo" readonly style="width: 120px"></el-input>
  156. </el-form-item>
  157. <el-form-item label=" ">
  158. <el-button type="primary" @click="searchTable()" >刷新</el-button>
  159. <el-button type="primary" @click="changeBomRev()" >变更</el-button>
  160. <!-- <el-button type="primary" @click="newData()" v-if="!ifDisableFlag">新增</el-button>-->
  161. </el-form-item>
  162. </el-form>
  163. <el-table
  164. :height="'250'"
  165. :data="tableData"
  166. highlight-current-row
  167. border
  168. @row-click="chooseRoute"
  169. style="width: 100%">
  170. <el-table-column
  171. fixed="left"
  172. header-align="center"
  173. align="center"
  174. width="60"
  175. label="操作">
  176. <template slot-scope="scope">
  177. <a type="text" size="small" @click="bmModel(scope.row)">填写</a>
  178. </template>
  179. </el-table-column>
  180. <el-table-column
  181. v-for="(item,index) in columnList1" :key="index"
  182. :sortable="item.columnSortable"
  183. :prop="item.columnProp"
  184. :header-align="item.headerAlign"
  185. :show-overflow-tooltip="item.showOverflowTooltip"
  186. :align="item.align"
  187. :fixed="item.fixed == ''?false:item.fixed"
  188. :min-width="item.columnWidth"
  189. :label="item.columnLabel">
  190. <template slot-scope="scope">
  191. <span v-if="!item.columnHidden">{{scope.row[item.columnProp]}}</span>
  192. <span v-if="item.columnImage"><img :src="scope.row[item.columnProp]" style="width: 100px; height: 80px"/></span>
  193. </template>
  194. </el-table-column>
  195. </el-table>
  196. <component style="margin-top: 5px" :is="selectedComponent" ref="routeRef"></component>
  197. </el-form>
  198. <!-- <el-dialog append-to-body title="工艺路线" :close-on-click-modal="false" v-drag :visible.sync="routeFlag" width="470px">-->
  199. <!-- <el-form :inline="true" label-position="top" style="margin-left: 7px;margin-top: -5px;">-->
  200. <!-- <el-form-item :label="'工序编码'">-->
  201. <!-- <el-input v-model="routingData.itemNo" type="number" onkeyup="value=value.replace(/^(0+)|[^\d]+/g,'')" ></el-input>-->
  202. <!-- </el-form-item>-->
  203. <!-- <el-form-item :label="'工序名称'">-->
  204. <!-- <el-input v-model="routingData.operationDesc" style="width: 440px" ></el-input>-->
  205. <!-- </el-form-item>-->
  206. <!-- </el-form>-->
  207. <!-- <el-footer style="height:40px;margin-top: 10px;text-align:center">-->
  208. <!-- <el-button type="primary" @click="routeSave()">保存</el-button>-->
  209. <!-- <el-button type="primary" @click="routeFlag = false">取消</el-button>-->
  210. <!-- </el-footer>-->
  211. <!-- </el-dialog>-->
  212. <el-dialog
  213. width="530px"
  214. title="审查工程师"
  215. :close-on-click-modal="false"
  216. :visible.sync="reviewEngineerFlag">
  217. <el-transfer v-model="reviewEngineerList" class="rq" filterable :props="{
  218. key: 'operatorId',
  219. label: 'operatorName'
  220. }" :data="operatorList" :titles="['未选择', '已选择']"></el-transfer>
  221. <span slot="footer" class="dialog-footer">
  222. <div style="margin-top: 5px">
  223. <el-button type="primary" @click="savereviewEngineerList()">确定</el-button>
  224. <el-button @click="reviewEngineerFlag = false" type="primary">取消</el-button>
  225. </div>
  226. </span>
  227. </el-dialog>
  228. <el-dialog
  229. width="530px"
  230. title="PE工程师"
  231. :close-on-click-modal="false"
  232. :visible.sync="peEngineerFlag">
  233. <el-transfer v-model="peEngineerList" class="rq" filterable :props="{
  234. key: 'operatorId',
  235. label: 'operatorName'
  236. }" :data="operatorList" :titles="['未选择', '已选择']"></el-transfer>
  237. <span slot="footer" class="dialog-footer">
  238. <div style="margin-top: 5px">
  239. <el-button type="primary" @click="savepeEngineerList()">确定</el-button>
  240. <el-button @click="peEngineerFlag = false" type="primary">取消</el-button>
  241. </div>
  242. </span>
  243. </el-dialog>
  244. <el-dialog
  245. width="530px"
  246. title="选择CQE"
  247. :close-on-click-modal="false"
  248. :visible.sync="cqeFlag">
  249. <el-transfer v-model="cqeList" class="rq" filterable :props="{
  250. key: 'operatorId',
  251. label: 'operatorName'
  252. }" :data="operatorList" :titles="['未选择', '已选择']"></el-transfer>
  253. <span slot="footer" class="dialog-footer">
  254. <div style="margin-top: 5px">
  255. <el-button type="primary" @click="savecqeList()">确定</el-button>
  256. <el-button @click="cqeFlag = false" type="primary">取消</el-button>
  257. </div>
  258. </span>
  259. </el-dialog>
  260. <el-dialog
  261. append-to-body
  262. width="900px"
  263. title="工序记录"
  264. top="10vh"
  265. :close-on-click-modal="false"
  266. :visible.sync="routeModelFlag">
  267. <el-form label-position="top" style="margin-top: -5px; margin-left: 0px;" >
  268. <el-row :gutter="20">
  269. <el-col :span="6"><div class="grid-content bg-purple">
  270. <el-form-item :label="'工序编码'">
  271. <el-input v-model="currentRow.operationNo" disabled ></el-input>
  272. </el-form-item>
  273. </div></el-col>
  274. <el-col :span="6"><div class="grid-content bg-purple">
  275. <el-form-item :label="'工序名称'">
  276. <el-input v-model="currentRow.operationName" disabled ></el-input>
  277. </el-form-item>
  278. </div></el-col>
  279. </el-row>
  280. </el-form>
  281. <div v-if="currentRow.itemType === 'prepress'">
  282. <prepress ref="prepress" @closeModel="closeModel"></prepress>
  283. </div>
  284. <div v-else-if="currentRow.itemType === 'printing'">
  285. <printing ref="printing" @closeModel="closeModel"></printing>
  286. </div>
  287. <div v-else-if="currentRow.itemType === 'printOther'">
  288. <printOther ref="printOther" @closeModel="closeModel"></printOther>
  289. </div>
  290. <div v-else-if="currentRow.itemType === 'overprinting'">
  291. <overprinting ref="overprinting" @closeModel="closeModel"></overprinting>
  292. </div>
  293. <div v-else-if="currentRow.itemType === 'slitting'">
  294. <slitting ref="slitting"></slitting>
  295. </div>
  296. <div v-else-if="currentRow.itemType === 'lamTemperature'">
  297. <lamTemperature ref="lamTemperature"></lamTemperature>
  298. </div>
  299. <div v-else-if="currentRow.itemType === 'cutting'">
  300. <cutting ref="cutting"></cutting>
  301. </div>
  302. <div v-else-if="currentRow.itemType === 'InkMixing'">
  303. <InkMixing ref="InkMixing"></InkMixing>
  304. </div>
  305. <div v-else-if="currentRow.itemType === 'InkFormulation'">
  306. <InkFormulation ref="InkFormulation"></InkFormulation>
  307. </div>
  308. <div v-else-if="currentRow.itemType === 'lamination'">
  309. <lamination ref="lamination"></lamination>
  310. </div>
  311. <div v-else-if="currentRow.itemType === 'CNC'">
  312. <CNC ref="CNC"></CNC>
  313. </div>
  314. <div v-else-if="currentRow.itemType === 'Cut'">
  315. <Cut ref="Cut"></Cut>
  316. </div>
  317. <div v-else-if="currentRow.itemType === 'packagePage'">
  318. <packagePage ref="packagePage"></packagePage>
  319. </div>
  320. <div v-else-if="currentRow.itemType === 'fqc'">
  321. <fqc ref="fqc"></fqc>
  322. </div>
  323. <div v-else-if="currentRow.itemType === 'cqc'">
  324. <cqc ref="cqc"></cqc>
  325. </div>
  326. </el-dialog>
  327. <Chooselist ref="baseList" @getBaseData="getBaseData"></Chooselist>
  328. </div>
  329. </template>
  330. <script>
  331. import {
  332. searchBMRoutingDetail,
  333. searchTechnicalSpecificationTeamStr,
  334. updateBMRoutingDetail,
  335. searchBMRoute,
  336. } from "@/api/sampleManagement/technicalSpecificationList.js"
  337. import Chooselist from '@/views/modules/common/Chooselist'
  338. import {
  339. searchOperatorWithSite,
  340. } from "@/api/project/project.js"
  341. import prepress from "./com_bm_prepress";/*组件*/
  342. import printing from "./com_bm_printing";/*组件*/
  343. import printOther from "./com_bm_printOther";/*组件*/
  344. import overprinting from "./com_bm_demoSlot";/*组件*/
  345. import slitting from "./com_bm_demoSlot";/*组件*/
  346. import lamTemperature from "./com_bm_demoSlot";/*组件*/
  347. import cutting from "./com_bm_demoSlot";/*组件*/
  348. import InkMixing from "./com_bm_inkMixing";/*组件*/
  349. import InkFormulation from "./com_bm_inkFormulation";/*组件*/
  350. import lamination from "./com_bm_lamination";/*组件*/
  351. import CNC from "./com_bm_cnc";
  352. import Cut from "./com_bm_cut";
  353. import packagePage from "./com_bm_demoSlot";/*组件*/
  354. import fqc from "./com_bm_demoSlot";/*组件*/
  355. import cqc from "./com_bm_demoSlot";/*组件*/
  356. //表格下方的引用
  357. import prepress2 from "./com_bm_prepress";/*组件*/
  358. import printing2 from "./com_bm_printing";/*组件*/
  359. import printOther2 from "./com_bm_printOther";/*组件*/
  360. import overprinting2 from "./com_bm_demoSlot";/*组件*/
  361. import slitting2 from "./com_bm_demoSlot";/*组件*/
  362. import lamTemperature2 from "./com_bm_demoSlot";/*组件*/
  363. import cutting2 from "./com_bm_demoSlot";/*组件*/
  364. import InkMixing2 from "./com_bm_inkMixing";/*组件*/
  365. import InkFormulation2 from "./com_bm_inkFormulation";/*组件*/
  366. import lamination2 from "./com_bm_lamination";/*组件*/
  367. import CNC2 from "./com_bm_cnc";
  368. import Cut2 from "./com_bm_cut";
  369. import packagePage2 from "./com_bm_demoSlot";/*组件*/
  370. import fqc2 from "./com_bm_demoSlot";/*组件*/
  371. import cqc2 from "./com_bm_demoSlot";/*组件*/
  372. export default {
  373. components: {
  374. Chooselist,
  375. prepress,
  376. printing,
  377. printOther,
  378. overprinting,
  379. slitting,
  380. lamTemperature,
  381. cutting,
  382. InkMixing,
  383. InkFormulation,
  384. lamination,
  385. CNC,
  386. Cut,
  387. packagePage,
  388. fqc,
  389. cqc,
  390. prepress2,
  391. printing2,
  392. printOther2,
  393. overprinting2,
  394. slitting2,
  395. lamTemperature2,
  396. cutting2,
  397. InkMixing2,
  398. InkFormulation2,
  399. lamination2,
  400. CNC2,
  401. Cut2,
  402. packagePage2,
  403. fqc2,
  404. cqc2,
  405. },
  406. data() {
  407. return {
  408. //动态组件
  409. selectedComponent: null,
  410. routeData:{
  411. site: '',
  412. partNo:'',
  413. alternativeNo:'',
  414. routingType:'',
  415. routingRevision:'',
  416. },
  417. routeFlag:false,
  418. routeModelFlag:false,
  419. height:200,
  420. searchData: {
  421. site: '',
  422. username: this.$store.state.user.name,
  423. codeNo: '',
  424. buNo:'',
  425. },
  426. tableData:'',
  427. partList:[],
  428. ifDisableFlag:false,
  429. dataForm:{
  430. site: '',
  431. codeNo:'',
  432. processDetail:'',
  433. supplyAdhesiveTape: '',
  434. routingDrawing:'',
  435. drawingRevison:'',
  436. drawingDate:'',
  437. workInfo:'',
  438. wiRevison:'',
  439. wiDate:'',
  440. reviewEngineer: '',
  441. routingRemark:'',
  442. routingAction:'',
  443. username:this.$store.state.user.name,
  444. peEngineer:'',
  445. cqe:'',
  446. reviewEngineerList:[],
  447. peEngineerList:[],
  448. cqeList:[],
  449. },
  450. reviewEngineerFlag:false,
  451. peEngineerFlag:false,
  452. cqeFlag:false,
  453. operatorList:[],
  454. reviewEngineerList:[],
  455. peEngineerList:[],
  456. cqeList:[],
  457. //工艺路线部分
  458. routingData:{
  459. id:0,
  460. site:'',
  461. codeNo:'',
  462. itemNo:'',
  463. operationDesc:'',
  464. remark:'',
  465. username:'',
  466. },
  467. columnList1: [
  468. {
  469. userId: this.$store.state.user.name,
  470. functionId: 104003,
  471. serialNumber: '104003Table2OperationNo',
  472. tableId: '104003Table2',
  473. tableName: 'Routing工序表',
  474. columnProp: 'operationNo',
  475. headerAlign: 'center',
  476. align: 'center',
  477. columnLabel: '工序编码',
  478. columnHidden: false,
  479. columnImage: false,
  480. columnSortable: false,
  481. sortLv: 0,
  482. status: true,
  483. fixed: '',
  484. columnWidth: 80
  485. },
  486. {
  487. userId: this.$store.state.user.name,
  488. functionId: 104003,
  489. serialNumber: '104003Table2OperationName',
  490. tableId: '104003Table2',
  491. tableName: 'Routing工序表',
  492. columnProp: 'operationName',
  493. headerAlign: 'center',
  494. align: 'left',
  495. columnLabel: '工序名称',
  496. columnHidden: false,
  497. columnImage: false,
  498. columnSortable: false,
  499. sortLv: 0,
  500. status: true,
  501. fixed: '',
  502. columnWidth: 120
  503. },
  504. {
  505. userId: this.$store.state.user.name,
  506. functionId: 104003,
  507. serialNumber: '104003Table2EfficiencyFactor',
  508. tableId: '104003Table2',
  509. tableName: 'Routing工序表',
  510. columnProp: 'efficiencyFactor',
  511. headerAlign: 'center',
  512. align: 'right',
  513. columnLabel: '机器效率',
  514. columnHidden: false,
  515. columnImage: false,
  516. columnSortable: false,
  517. sortLv: 0,
  518. status: true,
  519. fixed: '',
  520. columnWidth: 80
  521. },
  522. {
  523. userId: this.$store.state.user.name,
  524. functionId: 104003,
  525. serialNumber: '104003Table2MachRunFactor',
  526. tableId: '104003Table2',
  527. tableName: 'Routing工序表',
  528. columnProp: 'machRunFactor',
  529. headerAlign: 'center',
  530. align: 'right',
  531. columnLabel: '机器运行速度',
  532. columnHidden: false,
  533. columnImage: false,
  534. columnSortable: false,
  535. sortLv: 0,
  536. status: true,
  537. fixed: '',
  538. columnWidth: 80
  539. },
  540. {
  541. userId: this.$store.state.user.name,
  542. functionId: 104003,
  543. serialNumber: '104003Table2MachSetupTime',
  544. tableId: '104003Table2',
  545. tableName: 'Routing工序表',
  546. columnProp: 'machSetupTime',
  547. headerAlign: 'center',
  548. align: 'right',
  549. columnLabel: '调机时长',
  550. columnHidden: false,
  551. columnImage: false,
  552. columnSortable: false,
  553. sortLv: 0,
  554. status: true,
  555. fixed: '',
  556. columnWidth: 80
  557. },
  558. {
  559. userId: this.$store.state.user.name,
  560. functionId: 104003,
  561. serialNumber: '104003Table2RunTimeCode',
  562. tableId: '104003Table2',
  563. tableName: 'Routing工序表',
  564. columnProp: 'runTimeCode',
  565. headerAlign: 'center',
  566. align: 'center',
  567. columnLabel: '时长单位',
  568. columnHidden: false,
  569. columnImage: false,
  570. columnSortable: false,
  571. sortLv: 0,
  572. status: true,
  573. fixed: '',
  574. columnWidth: 60
  575. },
  576. {
  577. userId: this.$store.state.user.name,
  578. functionId: 104003,
  579. serialNumber: '104003Table2LaborRunFactor',
  580. tableId: '104003Table2',
  581. tableName: 'Routing工序表',
  582. columnProp: 'laborRunFactor',
  583. headerAlign: 'center',
  584. align: 'right',
  585. columnLabel: '人工效率',
  586. columnHidden: false,
  587. columnImage: false,
  588. columnSortable: false,
  589. sortLv: 0,
  590. status: true,
  591. fixed: '',
  592. columnWidth: 80
  593. },
  594. {
  595. userId: this.$store.state.user.name,
  596. functionId: 104003,
  597. serialNumber: '104003Table2LaborSetupTime',
  598. tableId: '104003Table2',
  599. tableName: 'Routing工序表',
  600. columnProp: 'laborSetupTime',
  601. headerAlign: 'center',
  602. align: 'right',
  603. columnLabel: '人工生产速度',
  604. columnHidden: false,
  605. columnImage: false,
  606. columnSortable: false,
  607. sortLv: 0,
  608. status: true,
  609. fixed: '',
  610. columnWidth: 80
  611. },
  612. {
  613. userId: this.$store.state.user.name,
  614. functionId: 104003,
  615. serialNumber: '104003Table2CrewSize',
  616. tableId: '104003Table2',
  617. tableName: 'Routing工序表',
  618. columnProp: 'crewSize',
  619. headerAlign: 'center',
  620. align: 'right',
  621. columnLabel: '生产过程人数',
  622. columnHidden: false,
  623. columnImage: false,
  624. columnSortable: false,
  625. sortLv: 0,
  626. status: true,
  627. fixed: '',
  628. columnWidth: 80
  629. },
  630. {
  631. userId: this.$store.state.user.name,
  632. functionId: 104003,
  633. serialNumber: '104003Table2SetupCrewSize',
  634. tableId: '104003Table2',
  635. tableName: 'Routing工序表',
  636. columnProp: 'setupCrewSize',
  637. headerAlign: 'center',
  638. align: 'right',
  639. columnLabel: '调机过程人数',
  640. columnHidden: false,
  641. columnImage: false,
  642. columnSortable: false,
  643. sortLv: 0,
  644. status: true,
  645. fixed: '',
  646. columnWidth: 80
  647. },
  648. {
  649. userId: this.$store.state.user.name,
  650. functionId: 104003,
  651. serialNumber: '104003Table2OutsideOpItem',
  652. tableId: '104003Table2',
  653. tableName: 'Routing工序表',
  654. columnProp: 'outsideOpItem',
  655. headerAlign: 'center',
  656. align: 'center',
  657. columnLabel: '外协采购料号',
  658. columnHidden: false,
  659. columnImage: false,
  660. columnSortable: false,
  661. sortLv: 0,
  662. status: true,
  663. fixed: '',
  664. columnWidth: 120
  665. },
  666. {
  667. userId: this.$store.state.user.name,
  668. functionId: 104003,
  669. serialNumber: '104003Table2MachineNo',
  670. tableId: '104003Table2',
  671. tableName: 'Routing工序表',
  672. columnProp: 'machineNo',
  673. headerAlign: 'center',
  674. align: 'center',
  675. columnLabel: '机台',
  676. columnHidden: false,
  677. columnImage: false,
  678. columnSortable: false,
  679. sortLv: 0,
  680. status: true,
  681. fixed: '',
  682. columnWidth: 80
  683. },
  684. {
  685. userId: this.$store.state.user.name,
  686. functionId: 104003,
  687. serialNumber: '104003Table2WorkCenterDesc',
  688. tableId: '104003Table2',
  689. tableName: 'Routing工序表',
  690. columnProp: 'workCenterDesc',
  691. headerAlign: 'center',
  692. align: 'center',
  693. columnLabel: '加工中心',
  694. columnHidden: false,
  695. columnImage: false,
  696. columnSortable: false,
  697. sortLv: 0,
  698. status: true,
  699. fixed: '',
  700. columnWidth: 120
  701. },
  702. {
  703. userId: this.$store.state.user.name,
  704. functionId: 104003,
  705. serialNumber: '104003Table2LaborClassNo',
  706. tableId: '104003Table2',
  707. tableName: 'Routing工序表',
  708. columnProp: 'laborClassDesc',
  709. headerAlign: 'center',
  710. align: 'center',
  711. columnLabel: '人员等级',
  712. columnHidden: false,
  713. columnImage: false,
  714. columnSortable: false,
  715. sortLv: 0,
  716. status: true,
  717. fixed: '',
  718. columnWidth: 80
  719. },
  720. {
  721. userId: this.$store.state.user.name,
  722. functionId: 104003,
  723. serialNumber: '104003Table2SetupLaborClassDesc',
  724. tableId: '104003Table2',
  725. tableName: 'Routing工序表',
  726. columnProp: 'setupLaborClassDesc',
  727. headerAlign: 'center',
  728. align: 'center',
  729. columnLabel: '调机时人员等级',
  730. columnHidden: false,
  731. columnImage: false,
  732. columnSortable: false,
  733. sortLv: 0,
  734. status: true,
  735. fixed: '',
  736. columnWidth: 80
  737. },
  738. {
  739. userId: this.$store.state.user.name,
  740. functionId: 104003,
  741. serialNumber: '104003Table2NoteText',
  742. tableId: '104003Table2',
  743. tableName: 'Routing工序表',
  744. columnProp: 'noteText',
  745. headerAlign: 'center',
  746. align: 'left',
  747. columnLabel: '备注',
  748. columnHidden: false,
  749. columnImage: false,
  750. columnSortable: false,
  751. sortLv: 0,
  752. status: true,
  753. fixed: '',
  754. columnWidth: 150
  755. },
  756. ],
  757. currentRow:{},
  758. }
  759. },
  760. mounted () {
  761. this.$nextTick(() => {
  762. this.height = window.innerHeight - 100
  763. })
  764. },
  765. methods: {
  766. // 获取基础数据列表S
  767. getBaseList (val, type) {
  768. this.tagNo = val
  769. this.tagNo1 = type
  770. this.$nextTick(() => {
  771. let strVal = ''
  772. if (val === 1013) {
  773. if(type==1) {
  774. strVal = this.dataForm.partType
  775. }
  776. }
  777. this.$refs.baseList.init(val, strVal)
  778. })
  779. },
  780. /* 列表方法的回调 */
  781. getBaseData (val) {
  782. if (this.tagNo === 1013) {
  783. if(this.tagNo1==1) {
  784. this.dataForm.partType = val.Base_id
  785. this.dataForm.partTypeDesc = val.Base_desc
  786. }
  787. }
  788. },
  789. //初始化组件的参数
  790. init(inData) {
  791. if(this.dataForm.codeNo!=null&&this.dataForm.codeNo!=''){
  792. return false;
  793. }
  794. //初始化参数
  795. this.searchData = JSON.parse(JSON.stringify(inData));
  796. //刷新表格
  797. this.searchTable();
  798. },
  799. searchTable(){
  800. if(this.searchData.buNo==='RDC'){
  801. searchBMRoutingDetail(this.searchData).then(({data}) => {
  802. if(data.rows.length>0){
  803. this.dataForm=data.rows[0]
  804. }else {
  805. this.dataForm.site=this.searchData.site
  806. this.dataForm.codeNo=this.searchData.codeNo
  807. }
  808. });
  809. let inData = {
  810. site: this.searchData.site,
  811. codeNo: this.searchData.codeNo,
  812. type: 'reviewEngineer',
  813. }
  814. searchTechnicalSpecificationTeamStr(inData).then(({data}) => {
  815. this.dataForm.reviewEngineerList = data.rows
  816. })
  817. let inData2 = {
  818. site: this.searchData.site,
  819. codeNo: this.searchData.codeNo,
  820. type: 'cqe',
  821. }
  822. searchTechnicalSpecificationTeamStr(inData2).then(({data}) => {
  823. this.dataForm.cqeList = data.rows
  824. })
  825. let inData3 = {
  826. site: this.searchData.site,
  827. codeNo: this.searchData.codeNo,
  828. type: 'peEngineer',
  829. }
  830. searchTechnicalSpecificationTeamStr(inData3).then(({data}) => {
  831. this.dataForm.peEngineerList = data.rows
  832. })
  833. }else {
  834. searchBMRoute(this.searchData).then(({data}) => {
  835. this.tableData = data.rows;
  836. this.routeData = data.row;
  837. });
  838. }
  839. },
  840. closeModel(){
  841. console.log('666')
  842. this.routeModelFlag=false;
  843. },
  844. //根据itemType
  845. bmModel(row){
  846. this.currentRow=row;
  847. this.routeModelFlag=true
  848. setTimeout(() => {
  849. switch (this.currentRow.itemType) {
  850. case 'prepress':
  851. this.getPrepress();
  852. case 'printing':
  853. this.getPrinting();
  854. case 'printOther':
  855. this.getPrintOther();
  856. case 'overprinting':
  857. this.getOverprinting();
  858. case 'slitting':
  859. this.getSlitting();
  860. case 'lamTemperature':
  861. this.getLamTemperature();
  862. case 'cutting':
  863. this.getCutting();
  864. case 'InkMixing':
  865. this.getInkMixing();
  866. case 'InkFormulation':
  867. this.getInkFormulation();
  868. case 'lamination':
  869. this.getLamination();
  870. case 'CNC':
  871. this.getCNC();
  872. case 'Cut':
  873. this.getCut();
  874. case 'packagePage':
  875. this.getPackagePage();
  876. case 'fqc':
  877. this.getFqc();
  878. case 'cqc':
  879. this.getCqc();
  880. }
  881. }, 500);
  882. },
  883. getPrepress(){
  884. let inData=JSON.parse(JSON.stringify(this.searchData))
  885. inData.type='prepress'
  886. this.$refs.prepress.init(inData)
  887. },
  888. getPrinting(){
  889. let inData=JSON.parse(JSON.stringify(this.searchData))
  890. inData.type='printing'
  891. this.$refs.printing.init(inData)
  892. },
  893. getPrintOther(){
  894. let inData=JSON.parse(JSON.stringify(this.searchData))
  895. inData.type='printOther'
  896. this.$refs.printOther.init(inData)
  897. },
  898. getOverprinting(){
  899. let inData=JSON.parse(JSON.stringify(this.searchData))
  900. inData.type='overprinting'
  901. this.$refs.overprinting.init(inData)
  902. },
  903. getSlitting(){
  904. let inData=JSON.parse(JSON.stringify(this.searchData))
  905. inData.type='slitting'
  906. this.$refs.slitting.init(inData)
  907. },
  908. getLamTemperature(){
  909. let inData=JSON.parse(JSON.stringify(this.searchData))
  910. inData.type='lamTemperature'
  911. this.$refs.lamTemperature.init(inData)
  912. },
  913. getCutting(){
  914. let inData=JSON.parse(JSON.stringify(this.searchData))
  915. inData.type='cutting'
  916. this.$refs.cutting.init(inData)
  917. },
  918. getInkMixing(){
  919. let inData=JSON.parse(JSON.stringify(this.searchData))
  920. inData.type='InkMixing'
  921. this.$refs.InkMixing.init(inData)
  922. },
  923. getInkFormulation(){
  924. let inData=JSON.parse(JSON.stringify(this.searchData))
  925. inData.type='InkFormulation'
  926. this.$refs.InkFormulation.init(inData)
  927. },
  928. getLamination(){
  929. let inData=JSON.parse(JSON.stringify(this.searchData))
  930. inData.type='lamination'
  931. this.$refs.lamination.init(inData)
  932. },
  933. getCNC(){
  934. let inData=JSON.parse(JSON.stringify(this.searchData))
  935. inData.type='CNC'
  936. this.$refs.CNC.init(inData)
  937. },
  938. getCut(){
  939. let inData=JSON.parse(JSON.stringify(this.searchData))
  940. inData.type='Cut'
  941. this.$refs.Cut.init(inData)
  942. },
  943. getPackagePage(){
  944. let inData=JSON.parse(JSON.stringify(this.searchData))
  945. inData.type='packagePage'
  946. this.$refs.packagePage.init(inData)
  947. },
  948. getFqc(){
  949. let inData=JSON.parse(JSON.stringify(this.searchData))
  950. inData.type='fqc'
  951. this.$refs.fqc.init(inData)
  952. },
  953. getCqc(){
  954. let inData=JSON.parse(JSON.stringify(this.searchData))
  955. inData.type='cqc'
  956. this.$refs.cqc.init(inData)
  957. },
  958. reviewEngineerChooseModal(){
  959. if(this.ifDisableFlag){
  960. return false
  961. }
  962. let inData={
  963. site:this.searchData.site,
  964. }
  965. searchOperatorWithSite(inData).then(({data}) => {
  966. this.operatorList=data.rows
  967. })
  968. this.reviewEngineerList = JSON.parse(JSON.stringify(this.dataForm.reviewEngineerList));
  969. this.reviewEngineerFlag=true
  970. },
  971. savereviewEngineerList(){
  972. let reviewEngineerName='';
  973. for (let i = 0; i < this.reviewEngineerList.length; i++) {
  974. let select= this.operatorList.filter(item => item.operatorId === this.reviewEngineerList[i])
  975. if(select.length>0){
  976. reviewEngineerName+=select[0].operatorName+';'
  977. }
  978. }
  979. this.dataForm.reviewEngineer=reviewEngineerName
  980. this.dataForm.reviewEngineerList=JSON.parse(JSON.stringify(this.reviewEngineerList));
  981. this.reviewEngineerFlag=false
  982. },
  983. peEngineerChooseModal(){
  984. if(this.ifDisableFlag){
  985. return false
  986. }
  987. let inData={
  988. site:this.searchData.site,
  989. }
  990. searchOperatorWithSite(inData).then(({data}) => {
  991. this.operatorList=data.rows
  992. })
  993. this.peEngineerList = JSON.parse(JSON.stringify(this.dataForm.peEngineerList));
  994. this.peEngineerFlag=true
  995. },
  996. savepeEngineerList(){
  997. let peEngineerName='';
  998. for (let i = 0; i < this.peEngineerList.length; i++) {
  999. let select= this.operatorList.filter(item => item.operatorId === this.peEngineerList[i])
  1000. if(select.length>0){
  1001. peEngineerName+=select[0].operatorName+';'
  1002. }
  1003. }
  1004. this.dataForm.peEngineer=peEngineerName
  1005. this.dataForm.peEngineerList=JSON.parse(JSON.stringify(this.peEngineerList));
  1006. this.peEngineerFlag=false
  1007. },
  1008. cqeModal(){
  1009. if(this.ifDisableFlag){
  1010. return false
  1011. }
  1012. let inData={
  1013. site:this.searchData.site,
  1014. }
  1015. searchOperatorWithSite(inData).then(({data}) => {
  1016. this.operatorList=data.rows
  1017. })
  1018. this.cqeList = JSON.parse(JSON.stringify(this.dataForm.cqeList));
  1019. this.cqeFlag=true
  1020. },
  1021. savecqeList(){
  1022. let cqeName='';
  1023. for (let i = 0; i < this.cqeList.length; i++) {
  1024. let select= this.operatorList.filter(item => item.operatorId === this.cqeList[i])
  1025. if(select.length>0){
  1026. cqeName+=select[0].operatorName+';'
  1027. }
  1028. }
  1029. this.dataForm.cqe=cqeName
  1030. this.dataForm.cqeList=JSON.parse(JSON.stringify(this.cqeList));
  1031. this.cqeFlag=false
  1032. },
  1033. saveData(){
  1034. this.$confirm("是否保存基本信息?", '保存提示', {
  1035. confirmButtonText: '确定',
  1036. cancelButtonText: '取消',
  1037. }).then(() => {
  1038. updateBMRoutingDetail(this.dataForm).then(({data}) => {
  1039. if (data && data.code === 0) {
  1040. this.$message.success( '操作成功')
  1041. } else {
  1042. this.$message.error(data.msg)
  1043. }
  1044. })
  1045. }).catch(() => {
  1046. return
  1047. })
  1048. },
  1049. chooseRoute(row){
  1050. switch (row.itemType) {
  1051. case 'Cut':
  1052. this.selectedComponent='Cut2';
  1053. let inData=JSON.parse(JSON.stringify(this.searchData))
  1054. inData.type='Cut'
  1055. inData.ifDisableFlag=true
  1056. this.$nextTick (()=>{this.$refs.routeRef.init(inData)});
  1057. break;
  1058. case 'prepress':
  1059. this.selectedComponent='prepress2';
  1060. let prepressData=JSON.parse(JSON.stringify(this.searchData))
  1061. prepressData.type='prepress'
  1062. prepressData.ifDisableFlag=true
  1063. this.$nextTick (()=>{this.$refs.routeRef.init(prepressData)});
  1064. break;
  1065. default :
  1066. this.selectedComponent=null;
  1067. break;
  1068. }
  1069. },
  1070. },
  1071. }
  1072. </script>
  1073. <style scoped>
  1074. </style>