edit-music.vue 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785
  1. <template>
  2. <div>
  3. <el-steps
  4. :space="200"
  5. :active="currentStep"
  6. simple
  7. finish-status="success"
  8. style="margin-bottom: 12px"
  9. >
  10. <el-step title="选择曲目"></el-step>
  11. <el-step title="设置曲目信息"></el-step>
  12. </el-steps>
  13. <div v-if="currentStep === 0">
  14. <el-form
  15. ref="form"
  16. :model="searchForm"
  17. :inline="true"
  18. class="system-menu-search"
  19. >
  20. <el-form-item prop="keyword">
  21. <el-input
  22. v-model="searchForm.keyword"
  23. @submit="onSearch"
  24. @reset="onReSet"
  25. @keyup.enter.native="
  26. e => {
  27. e.target.blur();
  28. $refs.form.save();
  29. onSearch();
  30. }
  31. "
  32. clearable
  33. placeholder="关键词"
  34. />
  35. </el-form-item>
  36. <!-- <el-form-item prop="musicSheetType">
  37. <el-select
  38. v-model="searchForm.musicSheetType"
  39. clearable
  40. filterable
  41. placeholder="多声轨渲染"
  42. >
  43. <el-option label="是" value="CONCERT"></el-option>
  44. <el-option label="否" value="SINGLE"></el-option>
  45. </el-select>
  46. </el-form-item> -->
  47. <el-form-item prop="subjectId">
  48. <el-select
  49. v-model="searchForm.subjectId"
  50. clearable
  51. placeholder="声部"
  52. >
  53. <el-option
  54. v-for="item in selects.subjects"
  55. :value="item.id"
  56. :label="item.name"
  57. :key="item.id"
  58. ></el-option>
  59. </el-select>
  60. </el-form-item>
  61. <!-- <el-form-item prop="composer">
  62. <el-input
  63. v-model="searchForm.composer"
  64. @submit="onSearch"
  65. @reset="onReSet"
  66. @keyup.enter.native="
  67. e => {
  68. e.target.blur();
  69. $refs.searchForm.save();
  70. onSearch();
  71. }
  72. "
  73. clearable
  74. placeholder="音乐人"
  75. />
  76. </el-form-item> -->
  77. <el-form-item>
  78. <el-button
  79. size="default"
  80. type="primary"
  81. class="ml10"
  82. @click="onSearch"
  83. >
  84. 查询
  85. </el-button>
  86. <el-button class="ml10" @click="onReSet"> 重置</el-button>
  87. </el-form-item>
  88. </el-form>
  89. <p style="padding-bottom: 12px">
  90. 你选择了<span style="color: red; padding: 0 8px">{{
  91. chioseIdList.length
  92. }}</span>
  93. 条曲目
  94. </p>
  95. <!-- @selection-change="handleSelectionChange"
  96. @select="onTableSelect" -->
  97. <el-table
  98. :data="tableList"
  99. :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
  100. @select-all="handleSelectionChange"
  101. @select="onTableSelect"
  102. ref="multipleSelection"
  103. key="tableList"
  104. >
  105. <el-table-column type="selection" width="55" />
  106. <!-- <el-table-column prop="id" label="曲目编号" /> -->
  107. <el-table-column
  108. prop="name"
  109. label="曲目名称(编号)"
  110. width="180"
  111. show-overflow-tooltip
  112. >
  113. <template #default="scope">
  114. <div>
  115. {{ scope.row.name }}
  116. <p>({{ scope.row.id }})</p>
  117. </div>
  118. </template>
  119. </el-table-column>
  120. <el-table-column label="曲目封面">
  121. <template #default="scope">
  122. <el-image
  123. style="width: 50px; height: 50px"
  124. :src="scope.row.musicCover"
  125. fit="cover"
  126. :preview-src-list="[scope.row.musicCover]"
  127. />
  128. </template>
  129. </el-table-column>
  130. <el-table-column
  131. prop="subjectNames"
  132. label="可用声部"
  133. show-overflow-tooltip
  134. ></el-table-column>
  135. <!-- <el-table-column
  136. prop="composer"
  137. label="音乐人"
  138. show-overflow-tooltip
  139. ></el-table-column> -->
  140. <!-- <el-table-column
  141. prop="musicSheetType"
  142. label="多声轨渲染"
  143. show-overflow-tooltip
  144. >
  145. <template #default="scope">
  146. <div>
  147. {{ scope.row.musicSheetType === "SINGLE" ? "否" : "是" }}
  148. </div>
  149. </template>
  150. </el-table-column> -->
  151. </el-table>
  152. <pagination
  153. save-key="accompaniment-edit-music"
  154. sync
  155. :total.sync="pageInfo.total"
  156. :page.sync="pageInfo.page"
  157. :limit.sync="pageInfo.limit"
  158. :page-sizes="pageInfo.page_size"
  159. @pagination="getList"
  160. />
  161. </div>
  162. <div v-if="currentStep === 1">
  163. <el-table
  164. :data="formLists"
  165. :header-cell-style="{ background: '#EDEEF0', color: '#444' }"
  166. style="margin-bottom: 12px;"
  167. key="formLists"
  168. >
  169. <el-table-column prop="name" label="曲目名称(编号)" width="180">
  170. <template #default="scope">
  171. <div>
  172. {{ scope.row.name }}
  173. <p>({{ scope.row.id }})</p>
  174. </div>
  175. </template>
  176. </el-table-column>
  177. <el-table-column label="曲目封面" width="150">
  178. <template #default="scope">
  179. <el-image
  180. style="width: 50px; height: 50px"
  181. :src="scope.row.musicCover"
  182. fit="cover"
  183. :preview-src-list="[scope.row.musicCover]"
  184. />
  185. </template>
  186. </el-table-column>
  187. <el-table-column
  188. prop="subjectNames"
  189. label="可用声部"
  190. show-overflow-tooltip
  191. width="150"
  192. ></el-table-column>
  193. <!-- <el-table-column
  194. prop="composer"
  195. label="音乐人"
  196. show-overflow-tooltip
  197. ></el-table-column> -->
  198. <!-- <el-table-column
  199. prop="musicSheetType"
  200. label="多声轨渲染"
  201. width="150"
  202. show-overflow-tooltip
  203. >
  204. <template #default="scope">
  205. <div>
  206. {{ scope.row.musicSheetType === "SINGLE" ? "否" : "是" }}
  207. </div>
  208. </template>
  209. </el-table-column> -->
  210. <el-table-column prop="musicSheetCategoryId" width="180">
  211. <template #header>
  212. 曲谱分类
  213. <i
  214. class="el-icon-edit"
  215. style="cursor: pointer"
  216. @click="onDialogEdit('musicSheetCategoryId')"
  217. ></i>
  218. </template>
  219. <template #default="scope">
  220. <!-- <el-form-item label-width="auto" :show-message="false"> -->
  221. <!-- <el-select
  222. v-model="formLists[scope.$index].musicSheetCategoryId"
  223. placeholder="请选择曲谱分类"
  224. clearable
  225. filterable
  226. style="width:150px !important"
  227. >
  228. <el-option
  229. v-for="option in tree"
  230. :key="option.id"
  231. :label="option.name"
  232. :value="option.id"
  233. ></el-option>
  234. </el-select> -->
  235. <el-cascader
  236. popper-class="myCascader"
  237. v-model="formLists[scope.$index].musicSheetCategoryId"
  238. placeholder="请选择曲谱分类"
  239. filterable
  240. style="width:150px !important"
  241. clearable
  242. :options="tree"
  243. :props="treeProps"
  244. ></el-cascader>
  245. <!-- </el-form-item> -->
  246. </template>
  247. </el-table-column>
  248. <el-table-column prop="rankType" width="180">
  249. <template #header>
  250. 收费方式
  251. <i
  252. class="el-icon-edit"
  253. style="cursor: pointer"
  254. @click="onDialogEdit('rankType')"
  255. ></i>
  256. </template>
  257. <template #default="scope">
  258. <!-- <el-form-item label-width="auto" :show-message="false"> -->
  259. <el-select
  260. v-model="formLists[scope.$index].rankType"
  261. clearable
  262. filterable
  263. placeholder="请选择是否收费"
  264. style="width:150px !important"
  265. >
  266. <el-option value="0" label="免费"></el-option>
  267. <el-option value="1" label="收费"></el-option>
  268. </el-select>
  269. <!-- </el-form-item> -->
  270. </template>
  271. </el-table-column>
  272. <el-table-column prop="scoreType" width="180">
  273. <template #header>
  274. 默认谱面
  275. <i
  276. class="el-icon-edit"
  277. style="cursor: pointer"
  278. @click="onDialogEdit('scoreType')"
  279. ></i>
  280. </template>
  281. <template #default="scope">
  282. <el-select
  283. v-model="formLists[scope.$index].scoreType"
  284. clearable
  285. filterable
  286. placeholder="请选择默认谱面"
  287. style="width:150px !important"
  288. >
  289. <el-option
  290. v-for="(item, index) in scoreTypeList"
  291. :key="index"
  292. :value="item.value"
  293. :label="item.label"
  294. ></el-option>
  295. </el-select>
  296. </template>
  297. </el-table-column>
  298. <el-table-column prop="isConvertibleScore" width="180">
  299. <template #header>
  300. 是否可转谱
  301. <i
  302. class="el-icon-edit"
  303. style="cursor: pointer"
  304. @click="onDialogEdit('isConvertibleScore')"
  305. ></i>
  306. </template>
  307. <template #default="scope">
  308. <el-select
  309. v-model="formLists[scope.$index].isConvertibleScore"
  310. clearable
  311. filterable
  312. placeholder="请选择是否可转谱"
  313. style="width:150px !important"
  314. >
  315. <el-option :value="1" label="是"></el-option>
  316. <el-option :value="0" label="否"></el-option>
  317. </el-select>
  318. </template>
  319. </el-table-column>
  320. <el-table-column prop="sortNumber" width="180">
  321. <template #header>
  322. 排序
  323. <i
  324. class="el-icon-edit"
  325. style="cursor: pointer"
  326. @click="onDialogEdit('sortNumber')"
  327. ></i>
  328. </template>
  329. <template #default="scope">
  330. <!-- <el-form-item label-width="auto" :show-message="false"> -->
  331. <el-input-number
  332. style="width:150px !important"
  333. v-model="formLists[scope.$index].sortNumber"
  334. :min="0"
  335. :max="9999"
  336. placeholder="请输入排序"
  337. :controls="false"
  338. clearable
  339. />
  340. <!-- </el-form-item> -->
  341. </template>
  342. </el-table-column>
  343. <el-table-column label="操作" width="100" center>
  344. <template #default="scope">
  345. <el-button
  346. size="small"
  347. type="text"
  348. @click="onRemoveMusic(scope.row)"
  349. >移除</el-button
  350. ></template
  351. >
  352. </el-table-column>
  353. </el-table>
  354. <!-- </el-form> -->
  355. </div>
  356. <div class="dialog-footer">
  357. <el-button @click="onCancel">
  358. {{ currentStep === 0 ? "取消" : "上一步" }}
  359. </el-button>
  360. <el-button type="primary" @click="onSubmit" v-preventReClick>
  361. {{ currentStep === 1 ? "确定" : "下一步" }}</el-button
  362. >
  363. </div>
  364. <el-dialog
  365. :title="dialogTitle"
  366. :visible.sync="dialogVisible"
  367. width="450px"
  368. append-to-body
  369. >
  370. <div v-if="dialogType === 'musicSheetCategoryId'">
  371. <el-cascader
  372. popper-class="myCascader"
  373. v-model="dialogForms.musicSheetCategoryId"
  374. placeholder="请选择曲谱分类"
  375. filterable
  376. style="width: 100% !important"
  377. clearable
  378. :options="tree"
  379. :props="treeProps"
  380. ></el-cascader>
  381. </div>
  382. <div v-if="dialogType === 'rankType'">
  383. <el-select
  384. v-model="dialogForms.rankType"
  385. clearable
  386. filterable
  387. placeholder="请选择是否收费"
  388. style="width: 100% !important"
  389. >
  390. <el-option value="0" label="免费"></el-option>
  391. <el-option value="1" label="收费"></el-option>
  392. </el-select>
  393. </div>
  394. <div v-if="dialogType === 'sortNumber'">
  395. <el-input-number
  396. placeholder="请输入排序值"
  397. v-model="dialogForms.sortNumber"
  398. :min="0"
  399. :max="9999"
  400. :controls="false"
  401. style="width: 100% !important"
  402. />
  403. </div>
  404. <div v-if="dialogType === 'scoreType'">
  405. <el-select
  406. v-model="dialogForms.scoreType"
  407. clearable
  408. filterable
  409. placeholder="请选择默认谱面"
  410. style="width: 100% !important"
  411. >
  412. <el-option
  413. v-for="(item, index) in scoreTypeList"
  414. :key="index"
  415. :value="item.value"
  416. :label="item.label"
  417. ></el-option>
  418. </el-select>
  419. </div>
  420. <div v-if="dialogType === 'isConvertibleScore'">
  421. <el-select
  422. v-model="dialogForms.isConvertibleScore"
  423. clearable
  424. filterable
  425. placeholder="请选择是否可转谱"
  426. style="width: 100% !important"
  427. >
  428. <el-option :value="1" label="是"></el-option>
  429. <el-option :value="0" label="否"></el-option>
  430. </el-select>
  431. </div>
  432. <template #footer>
  433. <span class="dialog-footer">
  434. <el-button @click="dialogVisible = false"> 取消 </el-button>
  435. <el-button type="primary" @click="onDialogConfirm" v-preventReClick>
  436. 确定</el-button
  437. >
  438. </span>
  439. </template>
  440. </el-dialog>
  441. </div>
  442. </template>
  443. <script>
  444. import pagination from "@/components/Pagination/index";
  445. import {
  446. api_pageByApplication,
  447. musicSheetApplicationExtendSaveBatch
  448. } from "../api";
  449. import { scoreTypeList } from "@/utils/searchArray";
  450. export default {
  451. name: "edit-music",
  452. props: ["tree"],
  453. components: {
  454. pagination
  455. },
  456. data() {
  457. return {
  458. scoreTypeList,
  459. currentStep: 0,
  460. chioseIdList: [], // 选中的数据
  461. searchForm: {
  462. keyword: "",
  463. // musicSheetType: "",
  464. subjectId: null,
  465. composer: null
  466. },
  467. pageInfo: {
  468. // 分页规则
  469. limit: 10, // 限制显示条数
  470. page: 1, // 当前页
  471. total: 0, // 总条数
  472. page_size: [10, 20, 40, 50] // 选择限制显示条数
  473. },
  474. dialogTitle: "",
  475. dialogType: "musicSheetCategoryId",
  476. dialogForms: {
  477. musicSheetCategoryId: null,
  478. rankType: null,
  479. sortNumber: null,
  480. isConvertibleScore: null,
  481. scoreType: null
  482. },
  483. dialogVisible: false,
  484. tableList: [],
  485. formLists: [],
  486. treeProps: {
  487. value: "id",
  488. label: "name",
  489. children: "sysMusicScoreCategoriesList",
  490. // checkStrictly: true,
  491. expandTrigger: "hover"
  492. }
  493. };
  494. },
  495. mounted() {
  496. this.$store.dispatch("setSubjects");
  497. this.getList();
  498. console.log(this.tree, "tree");
  499. },
  500. methods: {
  501. onSearch() {
  502. this.$set(this.pageInfo, "page", 1);
  503. this.$refs.form.validate(valid => {
  504. if (valid) {
  505. this.getList();
  506. }
  507. });
  508. },
  509. onReSet() {
  510. this.$refs.form.resetFields();
  511. this.getList();
  512. },
  513. async getList() {
  514. const { data } = await api_pageByApplication({
  515. page: this.pageInfo.page,
  516. rows: this.pageInfo.limit,
  517. ...this.searchForm
  518. });
  519. const rows = data.rows || [];
  520. rows.forEach(row => {
  521. row.currentPage = this.pageInfo.page;
  522. });
  523. this.tableList = rows || [];
  524. this.pageInfo.total = data.total;
  525. let idList = this.chioseIdList.map(music => {
  526. return music.id;
  527. });
  528. // this.isNewPage = true
  529. this.$nextTick(() => {
  530. this.tableList.forEach(course => {
  531. if (idList.indexOf(course.id) != -1) {
  532. multipleSelection.value.toggleRowSelection(course, true);
  533. }
  534. });
  535. // this.isNewPage = false
  536. });
  537. console.log(this.pageInfo, "pageInfo");
  538. },
  539. onFormatSelectData(arr, row) {
  540. try {
  541. let currentPageList = [];
  542. const otherPageList = [];
  543. this.chioseIdList.forEach(item => {
  544. if (item.currentPage == this.pageInfo.page) {
  545. currentPageList.push(item);
  546. } else {
  547. otherPageList.push(item);
  548. }
  549. });
  550. const lastPage = [];
  551. if (row && row.id) {
  552. const index = currentPageList.findIndex(child => child.id === row.id);
  553. if (index === -1) {
  554. lastPage.push(row);
  555. } else {
  556. currentPageList.splice(index, 1);
  557. }
  558. } else {
  559. if (arr.length > 0) {
  560. arr.forEach(item => {
  561. const index = currentPageList.findIndex(
  562. child => child.id === item.id
  563. );
  564. if (index === -1) {
  565. lastPage.push(item);
  566. }
  567. });
  568. } else {
  569. currentPageList = [];
  570. }
  571. }
  572. this.chioseIdList = [
  573. ...lastPage,
  574. ...otherPageList,
  575. ...currentPageList
  576. ].sort((a, b) => a.id - b.id);
  577. } catch (e) {}
  578. },
  579. handleSelectionChange(arr) {
  580. this.onFormatSelectData(arr);
  581. },
  582. onTableSelect(arr, row) {
  583. this.onFormatSelectData(arr, row);
  584. },
  585. onCancel() {
  586. //
  587. if (this.currentStep === 0) {
  588. this.$listeners.close();
  589. } else if (this.currentStep === 1) {
  590. this.currentStep = 0;
  591. }
  592. },
  593. async onSubmit() {
  594. if (this.currentStep === 0) {
  595. if (this.chioseIdList.length <= 0) {
  596. this.$message.warning("请选择曲目");
  597. return;
  598. }
  599. this.currentStep = 1;
  600. const tempList = [];
  601. this.chioseIdList.forEach(item => {
  602. tempList.push({
  603. id: item.id,
  604. name: item.name,
  605. musicCover: item.musicCover,
  606. subjectNames: item.subjectNames,
  607. composer: item.composer,
  608. sourceType: item.sourceType,
  609. musicSheetCategoryId: null,
  610. rankType: null,
  611. sortNumber: null,
  612. isConvertibleScore: null,
  613. scoreType: null
  614. });
  615. });
  616. this.formLists = tempList;
  617. console.log(this.formLists, "formLists");
  618. } else if (this.currentStep === 1) {
  619. // 提交数据
  620. try {
  621. const params = [];
  622. for (let i = 0; i < this.formLists.length; i++) {
  623. const item = this.formLists[i];
  624. if (
  625. !item.musicSheetCategoryId ||
  626. item.musicSheetCategoryId.length == 0
  627. ) {
  628. this.$message.error("曲目标签不能为空");
  629. return;
  630. }
  631. if (!item.rankType) {
  632. this.$message.error("收费方式不能为空");
  633. return;
  634. }
  635. if (!item.scoreType) {
  636. this.$message.error("默认谱面不能为空");
  637. return;
  638. }
  639. if (
  640. item.isConvertibleScore === null ||
  641. item.isConvertibleScore === undefined ||
  642. item.isConvertibleScore === ""
  643. ) {
  644. this.$message.error("是否可转谱不能为空");
  645. return;
  646. }
  647. if (
  648. item.sortNumber === null ||
  649. item.sortNumber === undefined ||
  650. item.sortNumber === ""
  651. ) {
  652. this.$message.error("排序不能为空");
  653. return;
  654. }
  655. params.push({
  656. ...item,
  657. musicSheetId: item.id,
  658. musicSheetCategoryId:
  659. item.musicSheetCategoryId.length > 0
  660. ? item.musicSheetCategoryId[
  661. item.musicSheetCategoryId.length - 1
  662. ]
  663. : null,
  664. id: null
  665. });
  666. }
  667. await musicSheetApplicationExtendSaveBatch(params);
  668. this.$message.success(`添加成功`);
  669. this.$emit("getList");
  670. this.$emit("close");
  671. } catch (e) {
  672. //
  673. console.log(e, "e");
  674. }
  675. }
  676. },
  677. onDialogEdit(type, index = 0) {
  678. console.log(type, "type");
  679. try {
  680. if (type === "musicSheetCategoryId") {
  681. this.dialogTitle = "曲谱分类";
  682. } else if (type === "rankType") {
  683. this.dialogTitle = "收费方式";
  684. } else if (type === "sortNumber") {
  685. this.dialogTitle = "排序";
  686. } else if (type === "scoreType") {
  687. this.dialogTitle = "默认谱面";
  688. } else if (type === "isConvertibleScore") {
  689. this.dialogTitle = "是否可转谱";
  690. }
  691. this.dialogForms.musicSheetCategoryId = null;
  692. this.dialogForms.rankType = null;
  693. this.dialogForms.sortNumber = null;
  694. this.dialogForms.scoreType = null;
  695. this.dialogForms.isConvertibleScore = null;
  696. this.dialogVisible = true;
  697. this.dialogType = type;
  698. } catch (e) {
  699. cosnole.log(e, "e");
  700. }
  701. },
  702. /** 确认修改 */
  703. onDialogConfirm() {
  704. this.formLists.forEach(item => {
  705. if (this.dialogType === "musicSheetCategoryId") {
  706. item.musicSheetCategoryId = this.dialogForms.musicSheetCategoryId;
  707. } else if (this.dialogType === "rankType") {
  708. item.rankType = this.dialogForms.rankType;
  709. } else if (this.dialogType === "sortNumber") {
  710. item.sortNumber = this.dialogForms.sortNumber;
  711. } else if (this.dialogType === "scoreType") {
  712. item.scoreType = this.dialogForms.scoreType;
  713. } else if (this.dialogType === "isConvertibleScore") {
  714. item.isConvertibleScore = this.dialogForms.isConvertibleScore;
  715. }
  716. });
  717. this.dialogVisible = false;
  718. },
  719. onRemoveMusic(row) {
  720. this.$confirm(`是否删除该数据?`, "提示", {
  721. confirmButtonText: "确定",
  722. cancelButtonText: "取消",
  723. type: "warning"
  724. }).then(async () => {
  725. try {
  726. const index = this.formLists.findIndex(item => {
  727. if (item.id == row.id) {
  728. return true;
  729. }
  730. });
  731. if (index > -1) {
  732. this.formLists.splice(index, 1);
  733. }
  734. const index1 = this.chioseIdList.findIndex(item => {
  735. if (item.id == row.id) {
  736. return true;
  737. }
  738. });
  739. if (index1 > -1) {
  740. this.chioseIdList.splice(index, 1);
  741. }
  742. console.log(this.chioseIdList, "chioseIdList");
  743. } catch {}
  744. });
  745. }
  746. }
  747. };
  748. </script>
  749. <style lang="less" scoped>
  750. .dialog-footer {
  751. text-align: right;
  752. }
  753. .numberInput {
  754. width: 100%;
  755. }
  756. /deep/ .el-input-number {
  757. .el-input__inner {
  758. text-align: left !important;
  759. }
  760. }
  761. </style>