user-edit.vue 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800
  1. <!-- 用户编辑弹窗 -->
  2. <template>
  3. <ele-modal
  4. width="960px"
  5. :visible="visible"
  6. :append-to-body="true"
  7. :close-on-click-modal="false"
  8. custom-class="ele-dialog-form"
  9. :title="isUpdate ? '修改工序' : '添加工序'"
  10. @update:visible="updateVisible"
  11. :maxable="true"
  12. >
  13. <header-title title="基本信息"></header-title>
  14. <el-form ref="form" :model="form" :rules="rules" label-width="120px">
  15. <el-row>
  16. <el-col :span="8">
  17. <el-form-item label="工序编码:">
  18. <el-input
  19. disabled
  20. v-model="form.code"
  21. clearable
  22. placeholder="请输入"
  23. ></el-input>
  24. </el-form-item>
  25. <!-- <el-form-item label="工序编码:" v-else prop="code">
  26. <el-input :disabled="isUpdate" v-model="form.code" clearable placeholder="请输入" />
  27. </el-form-item> -->
  28. </el-col>
  29. <el-col :span="8">
  30. <el-form-item label="工序名称:" prop="name">
  31. <el-input v-model="form.name" clearable placeholder="请输入" />
  32. </el-form-item>
  33. </el-col>
  34. <el-col :span="8">
  35. <el-form-item label="控制码:" prop="controlId">
  36. <el-select v-model="form.controlId" filterable>
  37. <el-option
  38. v-for="item in controlList"
  39. :key="item.id"
  40. :label="item.name"
  41. :value="item.id"
  42. >
  43. </el-option>
  44. </el-select>
  45. </el-form-item>
  46. </el-col>
  47. <el-col :span="8">
  48. <el-form-item label="工作中心:" prop="workCenterName">
  49. <el-input
  50. @click.native="chooseWorkCenter"
  51. v-model="form.workCenterName"
  52. readonly
  53. />
  54. </el-form-item>
  55. </el-col>
  56. <el-col :span="8">
  57. <el-form-item label="所属工厂:" prop="factoriesName">
  58. <el-input v-model="form.factoriesName" readonly disabled />
  59. </el-form-item>
  60. </el-col>
  61. <el-col :span="8">
  62. <el-form-item label="工序类型:" prop="type">
  63. <el-select v-model="form.type" filterable>
  64. <el-option
  65. :label="item.label"
  66. :value="item.value"
  67. v-for="(item, index) in typeList"
  68. :key="index"
  69. >
  70. </el-option>
  71. </el-select>
  72. </el-form-item>
  73. </el-col>
  74. <el-col :span="8">
  75. <el-form-item label="排序:" prop="sort">
  76. <el-input v-model="form.sort" />
  77. </el-form-item>
  78. </el-col>
  79. <el-col :span="8">
  80. <el-form-item label="工序标签:" prop="processLabel">
  81. <el-select v-model="form.processLabel" filterable>
  82. <el-option
  83. v-for="item in processLabeList"
  84. :key="item.id"
  85. :label="item.name"
  86. :value="item.id"
  87. >
  88. </el-option>
  89. </el-select>
  90. </el-form-item>
  91. </el-col>
  92. <el-col :span="8">
  93. <el-form-item label="附件上传:" prop="sort">
  94. <!-- <fileUpload v-model="form.files"></fileUpload> -->
  95. <fileMain v-model="form.files"></fileMain>
  96. </el-form-item>
  97. </el-col>
  98. </el-row>
  99. <header-title title="工序节拍时间"></header-title>
  100. <el-row>
  101. <el-col :span="12">
  102. <el-form-item label="节拍生产数量" prop="beatProduceNum">
  103. <el-row>
  104. <el-col :span="16">
  105. <el-input
  106. placeholder="请输入"
  107. type="number"
  108. v-model="form.workBeat.beatProduceNum"
  109. >
  110. </el-input
  111. ></el-col>
  112. <el-col :span="1">&nbsp;</el-col>
  113. <el-col :span="7">
  114. <DictSelection
  115. dictName="计量单位"
  116. v-model="form.workBeat.beatProduceUnit"
  117. />
  118. </el-col>
  119. </el-row>
  120. </el-form-item>
  121. </el-col>
  122. <el-col :span="8">
  123. <el-form-item label="工序休息时长:">
  124. <el-input
  125. v-model="form.workBeat.restTimes"
  126. placeholder="请输入"
  127. type="number"
  128. />
  129. </el-form-item>
  130. </el-col>
  131. <el-col :span="8">
  132. <el-form-item label="工序准备时长:">
  133. <el-input
  134. v-model="form.workBeat.preTimes"
  135. clearable
  136. placeholder="请输入"
  137. type="number"
  138. />
  139. </el-form-item>
  140. </el-col>
  141. <el-col :span="8">
  142. <el-form-item label="设备生产时长:">
  143. <el-input
  144. v-model="form.workBeat.proTimes"
  145. placeholder="请输入"
  146. type="number"
  147. />
  148. </el-form-item>
  149. </el-col>
  150. <el-col :span="8">
  151. <el-form-item label="其他时长:">
  152. <el-input
  153. placeholder="请输入"
  154. v-model="form.workBeat.otherTimes"
  155. type="number"
  156. />
  157. </el-form-item>
  158. </el-col>
  159. <el-col :span="8">
  160. <el-form-item label="节拍时间:">
  161. <el-input disabled :value="totalTime"></el-input>
  162. </el-form-item>
  163. </el-col>
  164. <el-col :span="8">
  165. <el-form-item label="节拍时间单位:">
  166. <el-select v-model="form.workBeat.beatTimesUnit">
  167. <el-option
  168. v-for="item in timeType2"
  169. :key="item.code"
  170. :label="item.label"
  171. :value="item.code"
  172. >
  173. </el-option>
  174. </el-select>
  175. </el-form-item>
  176. </el-col>
  177. </el-row>
  178. <header-title title="工序间隔时间"></header-title>
  179. <el-row>
  180. <el-col :span="12">
  181. <el-form-item label="间隔策略:" label-width="200px">
  182. <el-select v-model="form.intervalTime.tactics" filterable>
  183. <el-option
  184. v-for="item in tacticsType"
  185. :key="item.code"
  186. :label="item.label"
  187. :value="item.code"
  188. >
  189. </el-option>
  190. </el-select>
  191. </el-form-item>
  192. </el-col>
  193. <el-col :span="8">
  194. <el-form-item label="间隔时间单位:">
  195. <el-select v-model="form.timeUnit">
  196. <el-option
  197. v-for="item in timeType"
  198. :key="item.code"
  199. :label="item.label"
  200. :value="item.code"
  201. >
  202. </el-option>
  203. </el-select>
  204. </el-form-item>
  205. </el-col>
  206. <el-col :span="12">
  207. <el-form-item label="下工序标准准备时间:" label-width="200px">
  208. <el-input
  209. v-model="form.intervalTime.nextStandardPreTime"
  210. placeholder="请输入"
  211. type="number"
  212. />
  213. </el-form-item>
  214. </el-col>
  215. <el-col :span="12">
  216. <el-form-item label="下工序最短准备时间:" label-width="200px">
  217. <el-input
  218. v-model="form.intervalTime.nextShortPreTime"
  219. placeholder="请输入"
  220. type="number"
  221. />
  222. </el-form-item>
  223. </el-col>
  224. <el-col :span="12">
  225. <el-form-item label="本工序标准等待时间:" label-width="200px">
  226. <el-input
  227. v-model="form.intervalTime.thisStandardWaitTime"
  228. placeholder="请输入"
  229. type="number"
  230. />
  231. </el-form-item>
  232. </el-col>
  233. <el-col :span="12">
  234. <el-form-item label="本工序最短准备时间:" label-width="200px">
  235. <el-input
  236. v-model="form.intervalTime.thisShortPreTime"
  237. placeholder="请输入"
  238. type="number"
  239. />
  240. </el-form-item>
  241. </el-col>
  242. <el-col :span="12">
  243. <el-form-item label="本工序结束后标准周转时间:" label-width="200px">
  244. <el-input
  245. v-model="form.intervalTime.thisStandardBoatTime"
  246. placeholder="请输入"
  247. type="number"
  248. />
  249. </el-form-item>
  250. </el-col>
  251. <el-col :span="12">
  252. <el-form-item label="本工序结束后周转最短时间:" label-width="200px">
  253. <el-input
  254. v-model="form.intervalTime.thisShortBoatTime"
  255. placeholder="请输入"
  256. type="number"
  257. />
  258. </el-form-item>
  259. </el-col>
  260. </el-row>
  261. <header-title title="工序配置"></header-title>
  262. <el-row>
  263. <el-col :span="12">
  264. <el-form-item label="投料是否要添加周转车:" label-width="200px">
  265. <el-radio-group v-model="form.feedNeedTurnover">
  266. <el-radio
  267. :label="item.value"
  268. v-for="(item, i) in radioList"
  269. :key="i"
  270. >{{ item.name }}</el-radio
  271. >
  272. </el-radio-group>
  273. </el-form-item>
  274. </el-col>
  275. <el-col :span="12">
  276. <el-form-item label="报工是否要添加周转车:" label-width="200px">
  277. <el-radio-group v-model="form.reportNeedTurnover">
  278. <el-radio
  279. :label="item.value"
  280. v-for="(item, i) in radioList"
  281. :key="i"
  282. >{{ item.name }}</el-radio
  283. >
  284. </el-radio-group>
  285. </el-form-item>
  286. </el-col>
  287. <el-col :span="12">
  288. <el-form-item label="是否需要投料再报工:" label-width="200px">
  289. <el-radio-group v-model="form.reportNeedFeed">
  290. <el-radio
  291. :label="item.value"
  292. v-for="(item, i) in radioList"
  293. :key="i"
  294. >{{ item.name }}</el-radio
  295. >
  296. </el-radio-group>
  297. </el-form-item>
  298. </el-col>
  299. <!-- **** -->
  300. <el-col :span="12">
  301. <el-form-item label="投料是否要添加生产设备:" label-width="200px">
  302. <el-radio-group v-model="form.feedNeedEquipment">
  303. <el-radio
  304. :label="item.value"
  305. v-for="(item, i) in radioList"
  306. :key="i"
  307. >{{ item.name }}</el-radio
  308. >
  309. </el-radio-group>
  310. </el-form-item>
  311. </el-col>
  312. <el-col :span="12">
  313. <el-form-item label="报工是否要添加生产设备:" label-width="200px">
  314. <el-radio-group v-model="form.reportNeedEquipment">
  315. <el-radio
  316. :label="item.value"
  317. v-for="(item, i) in radioList"
  318. :key="i"
  319. >{{ item.name }}</el-radio
  320. >
  321. </el-radio-group>
  322. </el-form-item>
  323. </el-col>
  324. <el-col :span="12">
  325. <el-form-item label="投料是否要添加模具:" label-width="200px">
  326. <el-radio-group v-model="form.feedNeedMould">
  327. <el-radio
  328. :label="item.value"
  329. v-for="(item, i) in radioList"
  330. :key="i"
  331. >{{ item.name }}</el-radio
  332. >
  333. </el-radio-group>
  334. </el-form-item>
  335. </el-col>
  336. <el-col :span="12">
  337. <el-form-item label="投料是否要添加舟皿:" label-width="200px">
  338. <el-radio-group v-model="form.feedNeedBoat">
  339. <el-radio
  340. :label="item.value"
  341. v-for="(item, i) in radioList"
  342. :key="i"
  343. >{{ item.name }}</el-radio
  344. >
  345. </el-radio-group>
  346. </el-form-item>
  347. </el-col>
  348. <el-col :span="12">
  349. <el-form-item label="投料是否要添加消耗材料:" label-width="200px">
  350. <el-radio-group v-model="form.feedNeedConsumableMaterial">
  351. <el-radio
  352. :label="item.value"
  353. v-for="(item, i) in radioList"
  354. :key="i"
  355. >{{ item.name }}</el-radio
  356. >
  357. </el-radio-group>
  358. </el-form-item>
  359. </el-col>
  360. <el-col :span="12">
  361. <el-form-item label="投料是否要添加物料:" label-width="200px">
  362. <el-radio-group v-model="form.feedNeedMateriel">
  363. <el-radio
  364. :label="item.value"
  365. v-for="(item, i) in radioList"
  366. :key="i"
  367. >{{ item.name }}</el-radio
  368. >
  369. </el-radio-group>
  370. </el-form-item>
  371. </el-col>
  372. <el-col :span="12">
  373. <el-form-item label="投料是否要添加产品:" label-width="200px">
  374. <el-radio-group v-model="form.feedNeedProduct">
  375. <el-radio
  376. :label="item.value"
  377. v-for="(item, i) in radioList"
  378. :key="i"
  379. >{{ item.name }}</el-radio
  380. >
  381. </el-radio-group>
  382. </el-form-item>
  383. </el-col>
  384. <el-col :span="12">
  385. <el-form-item label="投料是否要添加半成品:" label-width="200px">
  386. <el-radio-group v-model="form.feedNeedSemiProduct">
  387. <el-radio
  388. :label="item.value"
  389. v-for="(item, i) in radioList"
  390. :key="i"
  391. >{{ item.name }}</el-radio
  392. >
  393. </el-radio-group>
  394. </el-form-item>
  395. </el-col>
  396. <el-col :span="12">
  397. <el-form-item label="投料是否要添加废品:" label-width="200px">
  398. <el-radio-group v-model="form.feedNeedJunkProduct">
  399. <el-radio
  400. :label="item.value"
  401. v-for="(item, i) in radioList"
  402. :key="i"
  403. >{{ item.name }}</el-radio
  404. >
  405. </el-radio-group>
  406. </el-form-item>
  407. </el-col>
  408. <el-col :span="12">
  409. <el-form-item label="投料是否要添加返工反修品:" label-width="200px">
  410. <el-radio-group v-model="form.feedNeedReworkProduct">
  411. <el-radio
  412. :label="item.value"
  413. v-for="(item, i) in radioList"
  414. :key="i"
  415. >{{ item.name }}</el-radio
  416. >
  417. </el-radio-group>
  418. </el-form-item>
  419. </el-col>
  420. <el-col :span="12">
  421. <el-form-item label="投料是否要添加干燥区:" label-width="200px">
  422. <el-radio-group v-model="form.feedNeedAridRegion">
  423. <el-radio
  424. :label="item.value"
  425. v-for="(item, i) in radioList"
  426. :key="i"
  427. >{{ item.name }}</el-radio
  428. >
  429. </el-radio-group>
  430. </el-form-item>
  431. </el-col>
  432. <el-col :span="12">
  433. <el-form-item label="投料是否要添加生产辅助设备:" label-width="200px">
  434. <el-radio-group v-model="form.feedNeedAuxiliaryEquipment">
  435. <el-radio
  436. :label="item.value"
  437. v-for="(item, i) in radioList"
  438. :key="i"
  439. >{{ item.name }}</el-radio
  440. >
  441. </el-radio-group>
  442. </el-form-item>
  443. </el-col>
  444. <el-col :span="12">
  445. <el-form-item label="投料是否要添加仪表计量设备:" label-width="200px">
  446. <el-radio-group v-model="form.feedNeedMeasuringEquipment">
  447. <el-radio
  448. :label="item.value"
  449. v-for="(item, i) in radioList"
  450. :key="i"
  451. >{{ item.name }}</el-radio
  452. >
  453. </el-radio-group>
  454. </el-form-item>
  455. </el-col>
  456. <el-col :span="12">
  457. <el-form-item label="投料是否需要质检:" label-width="200px">
  458. <el-radio-group v-model="form.feedNeedQuality">
  459. <el-radio
  460. :label="item.value"
  461. v-for="(item, i) in radioList"
  462. :key="i"
  463. >{{ item.name }}</el-radio
  464. >
  465. </el-radio-group>
  466. </el-form-item>
  467. </el-col>
  468. <el-col :span="12">
  469. <el-form-item label="生产质检是否需要处置再报工:" label-width="200px">
  470. <el-radio-group v-model="form.isReportProcessProduce">
  471. <el-radio
  472. :label="item.value"
  473. v-for="(item, i) in radioList"
  474. :key="i"
  475. >{{ item.name }}</el-radio
  476. >
  477. </el-radio-group>
  478. </el-form-item>
  479. </el-col>
  480. <el-col :span="12">
  481. <el-form-item label="是否产前准备后再投料:" label-width="200px">
  482. <el-radio-group v-model="form.isPrenatalPreProduction">
  483. <el-radio
  484. :label="item.value"
  485. v-for="(item, i) in radioList"
  486. :key="i"
  487. >{{ item.name }}</el-radio
  488. >
  489. </el-radio-group>
  490. </el-form-item>
  491. </el-col>
  492. <el-col :span="12">
  493. <el-form-item label="是否投料后再过程控制:" label-width="200px">
  494. <el-radio-group v-model="form.isFeedCheckProduction">
  495. <el-radio
  496. :label="item.value"
  497. v-for="(item, i) in radioList"
  498. :key="i"
  499. >{{ item.name }}</el-radio
  500. >
  501. </el-radio-group>
  502. </el-form-item>
  503. </el-col>
  504. <el-col :span="12">
  505. <el-form-item label="是否过程控制后再产后检查:" label-width="200px">
  506. <el-radio-group v-model="form.isPostCheckProduction">
  507. <el-radio
  508. :label="item.value"
  509. v-for="(item, i) in radioList"
  510. :key="i"
  511. >{{ item.name }}</el-radio
  512. >
  513. </el-radio-group>
  514. </el-form-item>
  515. </el-col>
  516. <el-col :span="12">
  517. <el-form-item label="是否产后检查后再报工:" label-width="200px">
  518. <el-radio-group v-model="form.isFinalCheckProduction">
  519. <el-radio
  520. :label="item.value"
  521. v-for="(item, i) in radioList"
  522. :key="i"
  523. >{{ item.name }}</el-radio
  524. >
  525. </el-radio-group>
  526. </el-form-item>
  527. </el-col>
  528. </el-row>
  529. </el-form>
  530. <template v-slot:footer>
  531. <el-button @click="updateVisible(false)">取消</el-button>
  532. <el-button type="primary" :loading="loading" @click="save">
  533. 保存
  534. </el-button>
  535. </template>
  536. <!-- 工作中心弹窗 -->
  537. <WorkCenter ref="centerRefs" @changeCenter="determineChoose" />
  538. </ele-modal>
  539. </template>
  540. <script>
  541. import producetask from '@/api/technology/production';
  542. import WorkCenter from './WorkCenter.vue';
  543. import fileUpload from '@/components/addDoc/fileUpload.vue';
  544. import { pageList } from '@/api/technology/version/version.js';
  545. export default {
  546. components: {
  547. WorkCenter,
  548. fileUpload
  549. },
  550. props: {
  551. // 弹窗是否打开
  552. visible: Boolean,
  553. // 修改回显的数据
  554. data: Object,
  555. controlList: Array,
  556. typeList: Array
  557. },
  558. data() {
  559. const defaultForm = function () {
  560. return {
  561. id: null,
  562. code: '',
  563. name: '',
  564. controlId: '',
  565. type: 1,
  566. workCenterId: '',
  567. workCenterName: '',
  568. produceVersionId: '',
  569. timeUnit: '',
  570. factoriesId: '',
  571. factoriesName: '',
  572. processLabel: 1,
  573. feedNeedTurnover: '',
  574. reportNeedTurnover: '',
  575. reportNeedFeed: '',
  576. feedNeedEquipment: '',
  577. reportNeedEquipment: '',
  578. feedNeedMould: '',
  579. feedNeedBoat: '',
  580. feedNeedConsumableMaterial: '',
  581. feedNeedMateriel: '',
  582. feedNeedProduct: '',
  583. feedNeedSemiProduct: '',
  584. feedNeedJunkProduct: '',
  585. feedNeedReworkProduct: '',
  586. feedNeedAridRegion: '',
  587. feedNeedAuxiliaryEquipment: '',
  588. feedNeedMeasuringEquipment: '',
  589. feedNeedQuality: '',
  590. isReportProcessProduce: '',
  591. isPrenatalPreProduction: '',
  592. isFeedCheckProduction: '',
  593. isPostCheckProduction: '',
  594. isFinalCheckProduction: '',
  595. sort: null,
  596. intervalTime: {
  597. nextShortPreTime: '', // 时间单位转换后的下一个短周期的时间,格式为YYYY-MM-DDTHH'
  598. nextStandardPreTime: '', // 时间单位转换后的下一个正式的周期的时间,格式为YYYY-MM-DD'
  599. tactics: 1, // 周期工艺描述,格式为JSON字符串或数组形式的对象形式的数据类
  600. thisShortBoatTime: '',
  601. thisShortPreTime: '',
  602. thisStandardBoatTime: '',
  603. thisStandardWaitTime: ''
  604. },
  605. workBeat: {
  606. beatProduceNum: '',
  607. beatProduceUnit: '',
  608. categoryNum: '',
  609. categoryUnit: '',
  610. beatTimes: '',
  611. otherTimes: '',
  612. preTimes: '',
  613. proTimes: '',
  614. restTimes: '',
  615. beatTimesUnit: ''
  616. }
  617. };
  618. };
  619. return {
  620. defaultForm,
  621. // 表单数据
  622. form: defaultForm(),
  623. timeType: [
  624. { code: 1, label: '分' },
  625. { code: 2, label: '时' }
  626. ],
  627. radioList: [
  628. {
  629. name: '是',
  630. value: 1
  631. },
  632. {
  633. name: '否',
  634. value: 0
  635. }
  636. ],
  637. timeType2: [
  638. { code: '1', label: '分' },
  639. { code: '2', label: '时' }
  640. ],
  641. tacticsType: [
  642. { code: 1, label: '标准时间' },
  643. { code: 2, label: '最短时间' }
  644. ],
  645. // 表单验证规则
  646. rules: {
  647. name: [
  648. { required: true, message: '请输入工序名称', trigger: 'blur' }
  649. ],
  650. code: [{ required: true, trigger: 'change', message: '工序编码' }],
  651. controlId: [
  652. { required: true, message: '请选择控制码', trigger: 'blur' }
  653. ],
  654. workCenterName: [
  655. { required: true, message: '请选择工作中心', trigger: 'change' }
  656. ],
  657. 'workBeat.beatTimesUnit': [
  658. { required: true, message: '请选择时间单位', trigger: 'change' }
  659. ],
  660. timeUnit: [
  661. { required: true, message: '请选择间隔时间单位', trigger: 'change' }
  662. ]
  663. },
  664. // 提交状态
  665. loading: false,
  666. // 是否是修改
  667. isUpdate: false,
  668. chooseItem: null,
  669. processLabeList: [
  670. { id: 1, name: '自制' },
  671. { id: 2, name: '委外' },
  672. { id: 3, name: '请托' }
  673. ]
  674. };
  675. },
  676. computed: {
  677. totalTime() {
  678. let to =
  679. (-this.form.workBeat.restTimes +
  680. -this.form.workBeat.preTimes +
  681. -this.form.workBeat.proTimes +
  682. -this.form.workBeat.otherTimes) *
  683. -1;
  684. return to;
  685. },
  686. // 是否开启响应式布局
  687. styleResponsive() {
  688. return this.$store.state.theme.styleResponsive;
  689. }
  690. },
  691. methods: {
  692. async getVersionList() {
  693. const res = await pageList({
  694. pageNum: 1,
  695. size: 100
  696. });
  697. this.versionList = res.list;
  698. },
  699. chooseWorkCenter() {
  700. this.$refs.centerRefs.open(this.form);
  701. },
  702. determineChoose(row) {
  703. this.$set(this.form, 'factoriesId', row.factoryId);
  704. this.$set(this.form, 'factoriesName', row.factoryName);
  705. this.$set(this.form, 'workCenterName', row.name);
  706. this.$set(this.form, 'workCenterId', row.id);
  707. },
  708. /* 保存编辑 */
  709. save() {
  710. this.$refs.form.validate((valid) => {
  711. if (!valid) {
  712. return false;
  713. }
  714. if (!this.isUpdate) {
  715. delete this.form.id;
  716. }
  717. this.form.workBeat.beatTimes = this.totalTime;
  718. this.loading = true;
  719. producetask
  720. .save(this.form)
  721. .then((msg) => {
  722. this.loading = false;
  723. this.$message.success(
  724. (this.isUpdate ? '修改' : '新建') + msg.message
  725. );
  726. this.updateVisible(false);
  727. this.$emit('done', msg.data);
  728. })
  729. .catch((e) => {
  730. this.loading = false;
  731. // this.$message.error(e.message);
  732. });
  733. });
  734. },
  735. /* 更新visible */
  736. updateVisible(value) {
  737. this.form = { ...this.defaultForm() };
  738. this.$emit('update:visible', value);
  739. }
  740. },
  741. watch: {
  742. async visible(visible) {
  743. if (visible) {
  744. this.getVersionList();
  745. console.log(this.form, 'this.form');
  746. if (this.data) {
  747. const res = await producetask.getById(this.data.id);
  748. this.$util.assignObject(this.form, {
  749. ...res
  750. });
  751. this.isUpdate = true;
  752. } else {
  753. this.form = { ...this.defaultForm() };
  754. this.isUpdate = false;
  755. }
  756. } else {
  757. this.$refs.form.clearValidate();
  758. this.form = { ...this.defaultForm() };
  759. }
  760. }
  761. }
  762. };
  763. </script>