create.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788
  1. <template>
  2. <ele-modal
  3. :visible.sync="visible"
  4. :title="title"
  5. width="80vw"
  6. append-to-body
  7. @close="cancel"
  8. :maxable="true"
  9. >
  10. <el-form
  11. ref="form"
  12. :model="form"
  13. :rules="rules"
  14. label-width="90px"
  15. class="create-form"
  16. >
  17. <el-row :gutter="15">
  18. <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
  19. <el-form-item label="编码:">
  20. <el-input
  21. :maxlength="20"
  22. v-model="form.unqualifiedProductsCode"
  23. disabled
  24. />
  25. </el-form-item>
  26. </el-col>
  27. <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
  28. <el-form-item label="来源编码:">
  29. <el-input :maxlength="20" v-model="form.sourceCode" disabled />
  30. </el-form-item>
  31. </el-col>
  32. <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
  33. <el-form-item label="数量:">
  34. <el-input :maxlength="20" v-model="form.quantity" disabled />
  35. </el-form-item>
  36. </el-col>
  37. <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
  38. <el-form-item label="工艺路线:">
  39. <el-input
  40. @click.native="openVersion"
  41. clearable
  42. v-model="form.produceRoutingName"
  43. />
  44. </el-form-item>
  45. </el-col>
  46. <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
  47. <el-form-item label="工序:">
  48. <el-select
  49. style="width: 100%"
  50. v-model="form.taskId"
  51. placeholder="请选择"
  52. clearable
  53. @change="produceTaskChange"
  54. >
  55. <el-option
  56. v-for="item in produceTaskList"
  57. :key="item.id"
  58. :label="item.name"
  59. :value="item.id"
  60. >
  61. </el-option>
  62. </el-select>
  63. </el-form-item>
  64. </el-col>
  65. <el-col v-bind="styleResponsive ? { lg: 6, md: 12 } : { span: 6 }">
  66. <el-form-item label="批次号:">
  67. <el-input :maxlength="20" v-model="form.batchNo" disabled />
  68. </el-form-item>
  69. </el-col>
  70. </el-row>
  71. <!-- -->
  72. <el-table :data="form.poList" border height="40vh">
  73. <el-table-column label="序号" align="center" width="60">
  74. <template slot-scope="scope">
  75. <span>{{ scope.$index + 1 }}</span>
  76. </template>
  77. </el-table-column>
  78. <el-table-column label="产品名称" align="center" prop="categoryName">
  79. </el-table-column>
  80. <el-table-column label="产品编码" align="center" prop="categoryCode">
  81. </el-table-column>
  82. <el-table-column label="牌号" align="center" prop="brandNum">
  83. </el-table-column>
  84. <el-table-column label="刻码" align="center" prop="engrave">
  85. <template slot-scope="scope">
  86. <el-form-item
  87. label-width="0px"
  88. :prop="'poList.' + scope.$index + '.engrave'"
  89. >
  90. <el-input
  91. v-model="scope.row.engrave"
  92. size="small"
  93. style="width: 100%"
  94. placeholder="输入刻码"
  95. ></el-input>
  96. </el-form-item>
  97. </template>
  98. </el-table-column>
  99. <!-- <el-table-column label="型号" align="center" prop="model">
  100. </el-table-column> -->
  101. <!-- <el-table-column label="规格" align="center" prop="specification">-->
  102. <!-- </el-table-column>-->
  103. <el-table-column label="数量" align="center" prop="unqualifiedQuantity">
  104. <template slot-scope="scope">
  105. <el-form-item
  106. label-width="0px"
  107. :prop="'poList.' + scope.$index + '.unqualifiedQuantity'"
  108. :rules="[
  109. {
  110. required: true,
  111. message: '请输入数量',
  112. trigger: 'blur'
  113. },
  114. { validator: validatePass, trigger: 'change' }
  115. ]"
  116. >
  117. <el-input
  118. v-model.number="scope.row.unqualifiedQuantity"
  119. size="small"
  120. style="width: 100%"
  121. placeholder="输入数量"
  122. @input="
  123. scope.row.measureQuantity = scope.row.unqualifiedQuantity
  124. "
  125. ></el-input>
  126. </el-form-item>
  127. </template>
  128. </el-table-column>
  129. <el-table-column
  130. label="工艺路线"
  131. align="center"
  132. prop="produceRoutingName"
  133. >
  134. </el-table-column>
  135. <el-table-column label="工序" align="center" prop="produceTaskName">
  136. </el-table-column>
  137. <el-table-column
  138. label="不良类型"
  139. align="center"
  140. prop="badTypeId"
  141. width="180"
  142. >
  143. <template v-slot="{ row, $index }">
  144. <el-form-item
  145. label-width="0px"
  146. :prop="'poList.' + $index + '.badTypeId'"
  147. :rules="{
  148. // required: true,
  149. message: '请选择不良类型',
  150. trigger: 'blur'
  151. }"
  152. >
  153. <el-select
  154. v-model="row.badTypeId"
  155. placeholder="请选择不良类型"
  156. size="small"
  157. style="width: 100%"
  158. remote
  159. filterable
  160. :remote-method="getBadTypeList"
  161. clearable
  162. @change="badTypeChange(row)"
  163. >
  164. <el-option
  165. v-for="item in badTypeList"
  166. :key="item.id"
  167. :label="item.name"
  168. :value="item.id"
  169. >
  170. </el-option>
  171. </el-select>
  172. </el-form-item>
  173. </template>
  174. </el-table-column>
  175. <el-table-column
  176. label="不良名称"
  177. align="center"
  178. prop="badNameId"
  179. width="180"
  180. >
  181. <template v-slot="{ row, $index }">
  182. <el-form-item
  183. label-width="0px"
  184. :prop="'poList.' + $index + '.badNameId'"
  185. :rules="{
  186. // required: true,
  187. message: '请选择不良名称',
  188. trigger: 'blur'
  189. }"
  190. >
  191. <el-select
  192. v-model="row.badNameId"
  193. placeholder="请选择不良名称"
  194. size="small"
  195. style="width: 100%"
  196. remote
  197. filterable
  198. :remote-method="(name) => getBadNameList(name, row.badTypeId)"
  199. clearable
  200. @change="badNameChange(row)"
  201. >
  202. <el-option
  203. v-for="item in badNameList"
  204. :key="item.id"
  205. :label="item.name"
  206. :value="item.id"
  207. >
  208. </el-option>
  209. </el-select>
  210. </el-form-item>
  211. </template>
  212. </el-table-column>
  213. <el-table-column
  214. label="原因类型"
  215. align="center"
  216. prop="reasonTypeId"
  217. width="180"
  218. >
  219. <template v-slot="{ row, $index }">
  220. <el-form-item
  221. label-width="0px"
  222. :prop="'poList.' + $index + '.reasonTypeId'"
  223. :rules="{
  224. // required: true,
  225. message: '请选择不良原因类型',
  226. trigger: 'blur'
  227. }"
  228. >
  229. <el-select
  230. v-model="row.reasonTypeId"
  231. placeholder="请选择原因类型"
  232. size="small"
  233. style="width: 100%"
  234. remote
  235. filterable
  236. :remote-method="getReasonTypeList"
  237. clearable
  238. @change="reasonTypeChange(row)"
  239. >
  240. <el-option
  241. v-for="item in reasonTypeList"
  242. :key="item.id"
  243. :label="item.name"
  244. :value="item.id"
  245. >
  246. </el-option>
  247. </el-select>
  248. </el-form-item>
  249. </template>
  250. </el-table-column>
  251. <el-table-column
  252. label="原因"
  253. align="center"
  254. prop="unqualifiedReason"
  255. width="180"
  256. >
  257. <template slot-scope="scope">
  258. <el-form-item
  259. label-width="0px"
  260. :prop="'poList.' + scope.$index + '.unqualifiedReason'"
  261. :rules="{
  262. required: true,
  263. message: '请输入原因',
  264. trigger: 'blur'
  265. }"
  266. >
  267. <el-input
  268. v-model="scope.row.unqualifiedReason"
  269. size="small"
  270. style="width: 100%"
  271. placeholder="输入原因"
  272. ></el-input>
  273. </el-form-item>
  274. </template>
  275. </el-table-column>
  276. <el-table-column label="操作" align="center" width="70">
  277. <template slot-scope="scope">
  278. <el-link
  279. type="danger"
  280. :underline="false"
  281. @click="handleDeleteItem(scope.$index, scope.row.id)"
  282. >
  283. 删除
  284. </el-link>
  285. </template>
  286. </el-table-column>
  287. </el-table>
  288. <div class="add-product" @click="addEquipment">
  289. <i class="el-icon-circle-plus-outline"></i>
  290. </div>
  291. </el-form>
  292. <template v-slot:footer>
  293. <el-button @click="cancel">取消</el-button>
  294. <el-button type="primary" @click="save" :loading="loading">
  295. 确定
  296. </el-button>
  297. </template>
  298. <!-- 选择产品 -->
  299. <EquipmentDialog ref="equipmentRefs" @choose="confirmChoose">
  300. </EquipmentDialog>
  301. <ProductionVersion
  302. ref="versionRefs"
  303. @changeProduct="changeProduct"
  304. ></ProductionVersion>
  305. </ele-modal>
  306. </template>
  307. <script>
  308. import EquipmentDialog from '../components/EquipmentDialog.vue';
  309. import ProductionVersion from '@/components/ProductionVersion/ProductionVersion.vue';
  310. import { getProduceTaskList } from '@/api/aps';
  311. import {
  312. unqualifiedProductsAdd,
  313. updateData,
  314. getDetail,
  315. deleteUnacceptedProductDetail,
  316. getById
  317. } from '@/api/unacceptedProduct/index';
  318. import { getList as getBadNameList } from '@/api/unacceptedProduct/unqualifiedName';
  319. import { getList as getBadTypeList } from '@/api/unacceptedProduct/unqualifiedType';
  320. import { getList as getReasonTypeList } from '@/api/unacceptedProduct/reasonType';
  321. export default {
  322. components: {
  323. EquipmentDialog,
  324. ProductionVersion
  325. },
  326. data() {
  327. return {
  328. validatePass: (rule, value, callback) => {
  329. if (!value) {
  330. callback(new Error('数量不能为0'));
  331. } else {
  332. callback();
  333. }
  334. },
  335. id: '',
  336. visible: false,
  337. loading: false,
  338. produceTaskList: [],
  339. form: {
  340. poList: [],
  341. unqualifiedProductsCode: '',
  342. sourceCode: '',
  343. batchNo: '',
  344. brandNum: '',
  345. categoryCode: '',
  346. categoryId: '',
  347. categoryName: '',
  348. specification: '',
  349. modelType: '',
  350. produceRoutingId: '',
  351. produceRoutingName: '',
  352. taskId: '',
  353. taskName: '',
  354. quantity: '',
  355. measureQuantity: '',
  356. measureUnit: '',
  357. weight: '',
  358. weightUnit: '',
  359. qualityType: ''
  360. },
  361. // 表单验证规则
  362. rules: {
  363. deliveryTime: [
  364. { required: true, message: '请选择交付日期', trigger: 'change' }
  365. ]
  366. },
  367. title: '创建',
  368. // 不良品类型列表
  369. badTypeList: [],
  370. // 不良名称列表
  371. badNameList: [],
  372. // 原因类型列表
  373. reasonTypeList: []
  374. };
  375. },
  376. computed: {
  377. // 是否开启响应式布局
  378. styleResponsive() {
  379. return this.$store.state.theme.styleResponsive;
  380. }
  381. },
  382. created() {
  383. this.getBadTypeList();
  384. this.getBadNameList();
  385. this.getReasonTypeList();
  386. },
  387. methods: {
  388. open(row, type) {
  389. this.visible = true;
  390. if (type == 'add') {
  391. this.title = '创建';
  392. this.form = row;
  393. this.getProduceTaskList();
  394. return;
  395. }
  396. console.log(row, 'row');
  397. if (row) {
  398. this.title = '修改';
  399. this.getDetail(row);
  400. } else {
  401. this.title = '创建';
  402. }
  403. },
  404. //选择工艺路线
  405. openVersion() {
  406. this.$refs.versionRefs.open();
  407. },
  408. //工艺路线回调
  409. changeProduct(data) {
  410. this.form.produceRoutingId = data.id;
  411. this.form.produceRoutingName = data.name;
  412. this.form.taskId = '';
  413. this.form.taskName = '';
  414. if (this.title == '修改') {
  415. this.form.poList.forEach((item) => {
  416. item.produceRoutingId = data.id;
  417. item.produceRoutingName = data.name;
  418. item.produceTaskId = '';
  419. item.produceTaskName = '';
  420. });
  421. }
  422. this.getProduceTaskList();
  423. },
  424. async getProduceTaskList() {
  425. const res = await getProduceTaskList({
  426. isDetail: true,
  427. pageNum: 1,
  428. routingId: this.form.produceRoutingId,
  429. size: -1
  430. });
  431. this.produceTaskList = res.list;
  432. },
  433. produceTaskChange() {
  434. if (!this.form.taskId) {
  435. return;
  436. }
  437. this.form.taskName = this.produceTaskList.find(
  438. (item) => item.id == this.form.taskId
  439. ).name;
  440. this.form.poList.forEach((item, index) => {
  441. this.$set(
  442. this.form.poList[index],
  443. 'produceRoutingId',
  444. this.form.produceRoutingId
  445. );
  446. this.$set(
  447. this.form.poList[index],
  448. 'produceRoutingName',
  449. this.form.produceRoutingName
  450. );
  451. this.$set(this.form.poList[index], 'produceTaskId', this.form.taskId);
  452. this.$set(
  453. this.form.poList[index],
  454. 'produceTaskName',
  455. this.form.taskName
  456. );
  457. });
  458. },
  459. async getDetail(row) {
  460. console.log(row.id, 'row.id');
  461. // this.form = row;
  462. const data = await getById(row.id);
  463. this.form.id = row.id;
  464. this.form.unqualifiedProductsCode = data.unqualifiedProductsCode;
  465. this.form.sourceCode = data.sourceCode;
  466. this.form.batchNo = data.batchNo;
  467. this.form.brandNum = data.brandNum;
  468. this.form.categoryCode = data.categoryCode;
  469. this.form.categoryId = data.categoryId;
  470. this.form.categoryName = data.categoryName;
  471. this.form.specification = data.specification;
  472. this.form.modelType = data.modelType;
  473. this.form.produceRoutingId = data.produceRoutingId;
  474. this.form.produceRoutingName = data.produceRoutingName;
  475. this.form.taskId = data.taskId;
  476. this.form.taskName = data.taskName;
  477. this.form.quantity = data.quantity;
  478. this.form.measureQuantity = data.measureQuantity;
  479. this.form.measureUnit = data.measureUnit;
  480. this.form.weight = data.weight;
  481. this.form.weightUnit = data.weightUnit;
  482. this.form.poList = data.poList;
  483. console.log(this.form);
  484. // getDetail(row.id).then((res) => {
  485. // // this.getProduceTaskList();
  486. // // this.form.poList = res;
  487. // });
  488. },
  489. cancel() {
  490. this.form = {
  491. poList: [],
  492. unqualifiedProductsCode: '',
  493. sourceCode: '',
  494. batchNo: '',
  495. brandNum: '',
  496. categoryCode: '',
  497. categoryId: '',
  498. categoryName: '',
  499. weight: '',
  500. specification: '',
  501. modelType: '',
  502. produceRoutingId: '',
  503. produceRoutingName: '',
  504. taskId: '',
  505. taskName: '',
  506. measureQuantity: '',
  507. measureUnit: '',
  508. weight: '',
  509. weightUnit: ''
  510. };
  511. this.$refs.form.clearValidate();
  512. this.visible = false;
  513. },
  514. // 删除产品
  515. handleDeleteItem(index, id) {
  516. this.$confirm('确认删除吗?', '提示', {
  517. confirmButtonText: '确定',
  518. cancleButtonText: '取消',
  519. type: 'warning'
  520. })
  521. .then((res) => {
  522. if (id) {
  523. deleteUnacceptedProductDetail([id]).then((res) => {
  524. this.form.poList.splice(index, 1);
  525. });
  526. } else {
  527. this.form.poList.splice(index, 1);
  528. }
  529. })
  530. .catch(() => {});
  531. // this.inputNumber();
  532. },
  533. addEquipment() {
  534. this.$refs.equipmentRefs.open();
  535. },
  536. /* 保存编辑 */
  537. save() {
  538. console.log(this.form.poList);
  539. this.$refs.form.validate((valid) => {
  540. if (!valid) {
  541. return false;
  542. }
  543. if (!this.form.poList.length) {
  544. return this.$message.warning('产品列表不能为空!');
  545. }
  546. for (let key in this.form) {
  547. if (key.includes('create')) {
  548. this.form[key] = '';
  549. }
  550. }
  551. this.form.poList.forEach((item) => {
  552. for (let key in item) {
  553. if (key.includes('create')) {
  554. item[key] = '';
  555. }
  556. }
  557. });
  558. this.loading = true;
  559. if (this.title == '创建') {
  560. unqualifiedProductsAdd(this.form)
  561. .then((res) => {
  562. this.loading = false;
  563. this.$message.success('成功');
  564. this.cancel();
  565. this.$emit('refresh');
  566. })
  567. .catch((e) => {
  568. this.loading = false;
  569. });
  570. }
  571. if (this.title == '修改') {
  572. updateData({ ...this.form, id: this.id })
  573. .then((res) => {
  574. this.loading = false;
  575. this.$message.success('成功');
  576. this.cancel();
  577. this.$emit('refresh');
  578. })
  579. .catch((e) => {
  580. this.loading = false;
  581. });
  582. }
  583. });
  584. },
  585. // 确定选择
  586. confirmChoose(data) {
  587. console.log(data);
  588. this.form.poList = [];
  589. let list = [];
  590. list = data.map((item, index) => {
  591. if (item.productCode) {
  592. return {
  593. // 不良品类型
  594. badTypeId: null,
  595. // 不良类型名称
  596. badTypeName: null,
  597. // 不良品名称id
  598. badNameId: null,
  599. // 不良品名称
  600. badNameName: null,
  601. // 原因类型id
  602. reasonTypeId: null,
  603. // 原因类型名称
  604. reasonTypeName: null,
  605. // 原因
  606. unqualifiedReason: '',
  607. ...item
  608. };
  609. } else {
  610. return {
  611. categoryCode: item.code,
  612. categoryName: item.name,
  613. categoryId: item.id,
  614. brandNum: item.brandNum,
  615. batchNo: item.batchNo,
  616. specification: item.specification,
  617. modelType: item.modelType,
  618. engrave: '',
  619. unqualifiedQuantity: '',
  620. produceRoutingId: '',
  621. produceRoutingName: '',
  622. produceTaskId: '',
  623. produceTaskName: '',
  624. measureQuantity: '',
  625. measureUnit: item.measuringUnit,
  626. weight: item.netWeight,
  627. weightUnit: item.weightUnit,
  628. // 不良品类型
  629. badTypeId: null,
  630. // 不良类型名称
  631. badTypeName: null,
  632. // 不良品名称id
  633. badNameId: null,
  634. // 不良品名称
  635. badNameName: null,
  636. // 原因类型id
  637. reasonTypeId: null,
  638. // 原因类型名称
  639. reasonTypeName: null,
  640. // 原因
  641. unqualifiedReason: ''
  642. };
  643. }
  644. });
  645. this.form.categoryCode = data[0].code;
  646. this.form.categoryName = data[0].name;
  647. this.form.categoryId = data[0].id;
  648. this.form.brandNum = data[0].brandNum;
  649. this.form.batchNo = data[0].batchNo;
  650. this.form.specification = data[0].specification;
  651. this.form.modelType = data[0].modelType;
  652. this.form.measureQuantity = '';
  653. this.form.measureUnit = data[0].measuringUnit;
  654. this.form.weight = data[0].netWeight;
  655. this.form.weightUnit = data[0].weightUnit;
  656. this.form.quantity = data.length;
  657. this.form.poList = this.form.poList.concat(list);
  658. this.produceTaskChange();
  659. // this.inputNumber();
  660. },
  661. inputNumber() {
  662. this.form.unqualifiedQuantity = 0;
  663. this.form.poList.forEach((item) => {
  664. this.form.unqualifiedQuantity +=
  665. Number(item.unqualifiedQuantity) || 0;
  666. });
  667. },
  668. // 查询不良类型
  669. async getBadTypeList(name = '') {
  670. const res = await getBadTypeList({
  671. pageNum: 1,
  672. size: 50,
  673. name: name
  674. });
  675. console.log('this.badTypeList', this.badTypeList);
  676. this.badTypeList = res.list;
  677. },
  678. // 查询不良名称
  679. async getBadNameList(name = '', badTypeId = 0) {
  680. const res = await getBadNameList({
  681. pageNum: 1,
  682. size: 50,
  683. name: name,
  684. badTypeId: badTypeId
  685. });
  686. console.log('this.badNameList', this.badNameList);
  687. this.badNameList = res.list;
  688. },
  689. // 查询原因类型
  690. async getReasonTypeList(name = '') {
  691. const res = await getReasonTypeList({
  692. pageNum: 1,
  693. size: 50,
  694. name: name
  695. });
  696. console.log('this.reasonTypeList', this.reasonTypeList);
  697. this.reasonTypeList = res.list;
  698. },
  699. // 不良类型改变
  700. badTypeChange(row) {
  701. row.badTypeName = null;
  702. // 赋值badTypeName
  703. const badType = this.badTypeList.find(
  704. (item) => item.id === row.badTypeId
  705. );
  706. if (badType) {
  707. row.badTypeName = badType.name;
  708. }
  709. this.getBadNameList('', row.badTypeId);
  710. },
  711. // 不良名称改变
  712. badNameChange(row) {
  713. // 赋值badNameName
  714. const badItem = this.badNameList.find(
  715. (item) => item.id === row.badNameId
  716. );
  717. if (badItem) {
  718. row.badNameName = badItem.name;
  719. }
  720. },
  721. // 原因类型改变
  722. reasonTypeChange(row) {
  723. row.reasonTypeName = null;
  724. // 赋值reasonTypeName
  725. const reasonType = this.reasonTypeList.find(
  726. (item) => item.id === row.reasonTypeId
  727. );
  728. if (reasonType) {
  729. row.reasonTypeName = reasonType.name;
  730. }
  731. }
  732. },
  733. watch: {
  734. 'form.produceRoutingId': {
  735. handler(val) {
  736. this.getProduceTaskList();
  737. }
  738. }
  739. }
  740. };
  741. </script>
  742. <style lang="scss" scoped>
  743. .basic-details-title {
  744. margin: 10px 0;
  745. }
  746. .add-product {
  747. width: 100%;
  748. display: flex;
  749. align-items: center;
  750. justify-content: flex-end;
  751. font-size: 30px;
  752. color: #1890ff;
  753. margin: 10px 0;
  754. cursor: pointer;
  755. }
  756. .create-form .el-form-item {
  757. margin-bottom: 15px !important;
  758. }
  759. </style>