user-edit.vue 23 KB

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