index.vue 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861
  1. <template>
  2. <div id="chapterVolumeManagementEdit">
  3. <div class="boxWidth">
  4. <el-form
  5. label-position="right"
  6. label-width="120px"
  7. :model="listData"
  8. :rules="rules"
  9. ref="listData"
  10. >
  11. <el-form-item label="适用业务层级" :required="true">
  12. <el-select
  13. disabled
  14. v-model="eduType"
  15. placeholder="请选择教育类型"
  16. @change="changeEduType"
  17. >
  18. <el-option
  19. v-for="(item, index) in eduTypeOptions"
  20. :key="index"
  21. :label="item.educationName"
  22. :value="item.id"
  23. >
  24. </el-option>
  25. </el-select>
  26. <el-select
  27. disabled
  28. v-model="courType"
  29. placeholder="请选择业务层次"
  30. @change="changecourseType"
  31. >
  32. <el-option
  33. v-for="(item, index) in newCourTypeOptions"
  34. :key="index"
  35. :label="item.projectName + '-' + item.businessName"
  36. :value="item.id"
  37. >
  38. </el-option>
  39. </el-select>
  40. <el-popover
  41. ref="popovers"
  42. placement="bottom"
  43. trigger="click"
  44. @show="showHandle"
  45. @hide="hideHandle"
  46. :disabled="courType ? false : true"
  47. >
  48. <el-radio-group v-model="sujectApis" class="dis_flexbox">
  49. <el-radio
  50. disabled
  51. v-for="(item, index) in newSujectOption"
  52. :label="item.newId"
  53. :key="index"
  54. >{{ item.subjectName }}</el-radio
  55. >
  56. </el-radio-group>
  57. <div style="display: block; text-align: center; margin-top: 10px">
  58. <el-button
  59. size="mini"
  60. type="primary"
  61. @click="submitSujectArray"
  62. v-if="false"
  63. >确定</el-button
  64. >
  65. </div>
  66. <el-button
  67. disabled
  68. slot="reference"
  69. style="margin-left: 12px"
  70. @click="getMessage"
  71. >请选择科目</el-button
  72. >
  73. </el-popover>
  74. </el-form-item>
  75. <el-form-item label="">
  76. <!-- <span v-if="Object.keys(newSujectApis).length == 0"
  77. >未选项目类型</span
  78. > -->
  79. <div
  80. v-if="Object.keys(newSujectApis).length !== 0"
  81. style="display: flex"
  82. >
  83. <div class="listBoxStys">
  84. {{
  85. newSujectApis.educationName +
  86. " - " +
  87. newSujectApis.projectName +
  88. " - " +
  89. newSujectApis.businessName +
  90. " - " +
  91. newSujectApis.subjectName
  92. }}
  93. <i
  94. class="el-icon-error closeIcons"
  95. @click="closeType"
  96. v-if="false"
  97. ></i>
  98. </div>
  99. </div>
  100. </el-form-item>
  101. <el-form-item label="标题前缀" prop="prefixName">
  102. <el-input v-model="listData.prefixName"></el-input>
  103. </el-form-item>
  104. <el-form-item label="章卷名称" prop="name">
  105. <el-input v-model="listData.name"></el-input>
  106. </el-form-item>
  107. <el-form-item label="是否发布" prop="publishStatus">
  108. <el-radio-group v-model="listData.publishStatus">
  109. <el-radio :label="1">是</el-radio>
  110. <el-radio :label="0">否</el-radio>
  111. </el-radio-group>
  112. </el-form-item>
  113. <el-form-item label="管理试卷">
  114. <div class="dis_plays">
  115. <div>
  116. <el-button size="small" @click="openBoxs">添加试卷</el-button>
  117. </div>
  118. <div style="color: #f56c6c">
  119. <span style="margin-right: 10px"
  120. >试卷总数:{{ tableData.length }}</span
  121. >
  122. <!-- <span>总时长:{{ minTimeAll }}分钟</span> -->
  123. </div>
  124. </div>
  125. <el-table
  126. :data="tableData"
  127. border
  128. :header-cell-style="{
  129. 'background-color': '#eee',
  130. padding: '8px',
  131. color: '#333',
  132. }"
  133. :default-sort="{ prop: 'sort', order: 'ascending' }"
  134. >
  135. <el-table-column
  136. v-for="(item, index) in tableSet"
  137. :width="item.width"
  138. :key="index"
  139. :label="item.label"
  140. align="center"
  141. :show-overflow-tooltip="true"
  142. header-align="center"
  143. :sortable="item.prop === 'sort'"
  144. sort-by="sort"
  145. :prop="item.prop"
  146. >
  147. <template slot-scope="scope">
  148. <span v-if="item.scope === 'types'">{{
  149. scope.row[item.prop] === 1
  150. ? "录播"
  151. : scope.row[item.prop] === 2
  152. ? "直播"
  153. : scope.row[item.prop] === 3
  154. ? "回放"
  155. : "未知"
  156. }}</span>
  157. <span v-else-if="item.scope === 'Status'">
  158. {{
  159. scope.row[item.prop] === 1
  160. ? "发布"
  161. : scope.row[item.prop] === 0
  162. ? "未发布"
  163. : "未知"
  164. }}
  165. </span>
  166. <div v-else-if="item.scope === 'inputs'">
  167. <el-input-number
  168. style="width: 50px"
  169. size="small"
  170. :controls="false"
  171. v-model="scope.row[item.prop]"
  172. controls-position="right"
  173. :min="0"
  174. ></el-input-number>
  175. </div>
  176. <span v-else>{{ scope.row[item.prop] }}</span></template
  177. >
  178. </el-table-column>
  179. <el-table-column
  180. label="操作"
  181. align="center"
  182. fixed="right"
  183. width="100px"
  184. >
  185. <template slot-scope="scope">
  186. <el-button type="text" @click="delList(scope.row, scope.$index)"
  187. >删除</el-button
  188. >
  189. </template>
  190. </el-table-column>
  191. </el-table>
  192. </el-form-item>
  193. <el-form-item>
  194. <el-button @click="backPage">取消</el-button>
  195. <el-button
  196. type="primary"
  197. @click="submitIns('listData')"
  198. :loading="disabledBtn"
  199. >确定</el-button
  200. >
  201. </el-form-item>
  202. </el-form>
  203. </div>
  204. <el-dialog
  205. :visible.sync="dialogVisible"
  206. width="800px"
  207. :show-close="false"
  208. :close-on-click-modal="false"
  209. >
  210. <div slot="title" class="hearders">
  211. <div class="leftTitle">添加试卷</div>
  212. <div class="rightBoxs">
  213. <img
  214. src="@/assets/images/Close@2x.png"
  215. alt=""
  216. @click="dialogVisible = false"
  217. />
  218. </div>
  219. </div>
  220. <search-box-new
  221. ref="searchBox"
  222. :formData="formData"
  223. :formList="formList"
  224. @search="getInfos"
  225. @init="init"
  226. />
  227. <el-table
  228. ref="multipleTable"
  229. :data="boxtableData"
  230. border
  231. @select-all="selectAll"
  232. @select="select"
  233. :row-key="getRowKeys"
  234. :header-cell-style="{
  235. 'background-color': '#eee',
  236. padding: '8px',
  237. color: '#333',
  238. }"
  239. >
  240. <el-table-column
  241. align="center"
  242. type="selection"
  243. width="55"
  244. header-align="center"
  245. :selectable="checkboxT"
  246. :reserve-selection="true"
  247. >
  248. </el-table-column>
  249. <template v-for="(item, index) in tableSet">
  250. <el-table-column
  251. v-if="item.scope !== 'inputs'"
  252. :width="item.width"
  253. :key="index"
  254. :label="item.label"
  255. align="center"
  256. :show-overflow-tooltip="true"
  257. header-align="center"
  258. >
  259. <template slot-scope="scope">
  260. <span v-if="item.scope === 'types'">{{
  261. scope.row[item.prop] === 1
  262. ? "录播"
  263. : scope.row[item.prop] === 2
  264. ? "直播"
  265. : scope.row[item.prop] === 3
  266. ? "回放"
  267. : "未知"
  268. }}</span>
  269. <span v-else-if="item.scope === 'Status'">
  270. {{
  271. scope.row[item.prop] === 1
  272. ? "发布"
  273. : scope.row[item.prop] === 0
  274. ? "未发布"
  275. : "未知"
  276. }}
  277. </span>
  278. <span v-else>{{ scope.row[item.prop] }}</span></template
  279. >
  280. </el-table-column></template
  281. >
  282. </el-table>
  283. <pagination
  284. :total="total"
  285. :pageSize="formData.pageSize"
  286. :currentPage="formData.pageNum"
  287. @handleSizeChange="handleSizeChange"
  288. @handleCurrentChange="handleCurrentChange"
  289. />
  290. <span slot="footer" class="dialog-footer">
  291. <el-button @click="dialogVisible = false">取 消</el-button>
  292. <el-button
  293. type="primary"
  294. :disabled="activeLists.length === 0"
  295. @click="submitForm"
  296. >确 定</el-button
  297. >
  298. </span>
  299. </el-dialog>
  300. </div>
  301. </template>
  302. <script>
  303. import searchBoxNew from "@/components/searchBoxNew";
  304. import pagination from "@/components/pagination";
  305. import tableList from "@/components/tableList";
  306. export default {
  307. name: "ChapterVolumeManagementEdit",
  308. components: { searchBoxNew, tableList, pagination },
  309. data() {
  310. return {
  311. disabledBtn: false,
  312. listData: {
  313. publishStatus: 1,
  314. }, // 弹窗数据
  315. eduTypeOptions: [], //教育类型数据
  316. projectTypeOptions: [], //项目类型数据
  317. courTypeOptions: [], //业务层次数据
  318. newCourTypeOptions: [], //当前业务层次数据
  319. sujectOption: [], //科目数据
  320. newSujectOption: [], //当前科目数据数据
  321. eduType: "", //当前选中教育类型
  322. courType: "", //当前选中业务层次
  323. newSujectApis: {},
  324. sujectApis: "", //当前存在的科目 例如'19-2'
  325. //表单验证
  326. rules: {
  327. name: [{ required: true, message: "请输入章卷名称", trigger: "blur" }],
  328. publishStatus: [
  329. { required: true, message: "请选择是否发布", trigger: "change" },
  330. ],
  331. },
  332. numberAll: 0, //试卷总数
  333. minTimeAll: 0, //总时长
  334. tableSet: [
  335. { label: "排序", prop: "sort", scope: "inputs", width: "100" },
  336. { label: "试卷编码", prop: "code", width: "140" },
  337. { label: "标题前缀", prop: "prefixName", width: "170" },
  338. { label: "试卷标题", prop: "examName", width: "300" },
  339. {
  340. label: "发布状态",
  341. prop: "publishStatus",
  342. scope: "Status",
  343. width: "120",
  344. },
  345. ],
  346. tableData: [],
  347. dialogVisible: false,
  348. boxtableData: [],
  349. total: 0, //一共多少条
  350. formData: {
  351. publishStatus: 1,
  352. status: 1,
  353. pageSize: 10,
  354. pageNum: 1,
  355. },
  356. //搜索
  357. formList: [
  358. // {
  359. // prop: "educationTypeId",
  360. // placeholder: "教育类型",
  361. // scope: "educationType",
  362. // },
  363. // {
  364. // prop: "businessId",
  365. // placeholder: "业务层次",
  366. // scope: "businessLevel",
  367. // edu: "educationTypeId",
  368. // },
  369. {
  370. prop: "key",
  371. placeholder: "试卷标题/试卷编码/标题前缀",
  372. },
  373. ],
  374. disCheckList: [], //已选转禁用复选列表
  375. activeLists: [],
  376. };
  377. },
  378. mounted() {
  379. this.$modal.loading("正在导入数据,请稍后...");
  380. this.getDict();
  381. },
  382. methods: {
  383. getMessage() {
  384. if (!this.courType) {
  385. this.$message.warning("请先选择业务层级");
  386. }
  387. },
  388. openBoxs() {
  389. if (!this.newSujectApis.subjectId) {
  390. this.$message.warning("请先选择科目");
  391. return;
  392. }
  393. var data = JSON.parse(JSON.stringify(this.formData));
  394. data.businessId = this.newSujectApis.businessId;
  395. data.subjectId = this.newSujectApis.subjectId;
  396. var self = this;
  397. this.$api.inquirebankexamList(data).then((res) => {
  398. var aList = [];
  399. this.tableData.map((item) => {
  400. aList.push(item.examId);
  401. });
  402. this.disCheckList = aList;
  403. this.boxtableData = res.rows;
  404. this.total = res.total;
  405. this.dialogVisible = true;
  406. this.$nextTick(function () {
  407. self.$refs.multipleTable.clearSelection();
  408. });
  409. });
  410. },
  411. getInfosList() {
  412. this.$api
  413. .inquirebankchapterexamList({ chapterExamId: this.$route.query.id })
  414. .then((result) => {
  415. // this.numberAll = result.total;
  416. // this.minTimeAll = result.timeTotal;
  417. this.tableData = result.data;
  418. });
  419. },
  420. getInfos(int) {
  421. if (int === 1) {
  422. this.formData.pageNum = 1;
  423. }
  424. if (int === 2) {
  425. this.formData = {
  426. publishStatus: 1,
  427. status: 1,
  428. pageSize: 10,
  429. pageNum: 1,
  430. };
  431. }
  432. var data = JSON.parse(JSON.stringify(this.formData));
  433. data.businessId = this.newSujectApis.businessId;
  434. data.subjectId = this.newSujectApis.subjectId;
  435. this.$api.inquirebankexamList(data).then((res) => {
  436. this.boxtableData = res.rows;
  437. this.total = res.total;
  438. });
  439. },
  440. init() {
  441. this.getInfos(2);
  442. },
  443. search() {
  444. this.$api.obtainbankchapter(this.$route.query.id).then((res) => {
  445. this.listData = res.data;
  446. });
  447. this.$api
  448. .inquirebankchapterListbusiness({
  449. type: 3,
  450. majorId: this.$route.query.id,
  451. })
  452. .then((res) => {
  453. this.eduType = res.rows[0].educationTypeId;
  454. this.changeEduType();
  455. this.courType = res.rows[0].businessId;
  456. this.changecourseType();
  457. this.newSujectApis = res.rows[0];
  458. this.sujectApis =
  459. res.rows[0].businessId + "-" + res.rows[0].subjectId;
  460. this.getInfosList();
  461. })
  462. .finally(() => {
  463. this.$modal.closeLoading();
  464. });
  465. },
  466. changeTypes() {
  467. var self = this;
  468. if (!this.sujectApis) {
  469. self.newSujectApis = {};
  470. return;
  471. }
  472. this.courTypeOptions.map((items) => {
  473. if (items.id === this.sujectApis.split("-").map(Number)[0]) {
  474. var obj = {
  475. type: 3,
  476. educationTypeId: items.educationId,
  477. educationName: items.educationName,
  478. projectId: items.projectId,
  479. projectName: items.projectName,
  480. businessId: items.id,
  481. businessName: items.businessName,
  482. };
  483. self.sujectOption.map((i) => {
  484. if (
  485. i.id === self.sujectApis.split("-").map(Number)[1] &&
  486. i.courseArrays.indexOf(items.projectId) !== -1
  487. ) {
  488. obj.subjectName = i.subjectName;
  489. obj.subjectId = i.id;
  490. }
  491. });
  492. self.newSujectApis = obj;
  493. }
  494. });
  495. },
  496. submitSujectArray() {
  497. this.changeTypes();
  498. this.$refs.popovers.doClose();
  499. },
  500. showHandle() {
  501. this.sujectApis = "";
  502. this.newSujectOption.map((item) => {
  503. item.newId = this.courType + "-" + item.id;
  504. if (item.newId === this.sujectApis) {
  505. console.log("成功");
  506. }
  507. });
  508. this.sujectApis =
  509. this.newSujectApis.businessId + "-" + this.newSujectApis.subjectId;
  510. },
  511. hideHandle() {},
  512. getDict() {
  513. new Promise((resolve, reject) => {
  514. this.$api.inquireCourseEducationType({ status: 1 }).then((res) => {
  515. this.eduTypeOptions = res.rows;
  516. });
  517. this.$api.inquireCourseProjectType({ status: 1 }).then((res) => {
  518. this.projectTypeOptions = res.rows;
  519. });
  520. this.$api.inquirebusinessList({ status: 1 }).then((res) => {
  521. this.courTypeOptions = res.rows;
  522. this.newCourTypeOptions = res.rows;
  523. });
  524. this.$api.inquireCourseSubject({ status: 1 }).then((res) => {
  525. res.rows.map((item, index) => {
  526. var array = [];
  527. item.courseProjectTypes.map((items, indexs) => {
  528. array.push(items.id);
  529. });
  530. item.courseArrays = array;
  531. });
  532. this.sujectOption = res.rows;
  533. resolve();
  534. });
  535. }).then((res) => {
  536. this.search();
  537. });
  538. },
  539. changeEduType() {
  540. if (!(this.courType === undefined || this.courType === "")) {
  541. this.courType = "";
  542. }
  543. var arrays = [];
  544. this.courTypeOptions.map((item) => {
  545. if (item.educationId === this.eduType) {
  546. arrays.push(item);
  547. }
  548. });
  549. this.newCourTypeOptions = arrays;
  550. },
  551. changecourseType() {
  552. this.newCourTypeOptions.map((item, index) => {
  553. if (item.id === this.courType) {
  554. this.eduType = item.educationId;
  555. var array = [];
  556. this.sujectOption.map((items, indexs) => {
  557. if (items.courseArrays.indexOf(item.projectId) !== -1) {
  558. array.push(items);
  559. }
  560. });
  561. this.newSujectOption = array;
  562. }
  563. });
  564. var arrays = [];
  565. this.courTypeOptions.map((item) => {
  566. if (item.educationId === this.eduType) {
  567. arrays.push(item);
  568. }
  569. });
  570. this.newCourTypeOptions = arrays;
  571. this.$refs.popovers.doClose();
  572. },
  573. submitIns(formName) {
  574. this.$refs[formName].validate((valid) => {
  575. if (valid) {
  576. if (JSON.stringify(this.newSujectApis) === "{}") {
  577. this.$message.error("请选择适用业务层级");
  578. return;
  579. }
  580. for (let i = 0; i < this.tableData.length; i++) {
  581. if (!this.tableData[i].sort && this.tableData[i].sort !== 0) {
  582. this.$message.warning(`管理试卷第${i + 1}条请输入排序`);
  583. return;
  584. }
  585. }
  586. let arr = this.tableData.map((items) => {
  587. return items.sort;
  588. });
  589. if (new Set(arr).size != arr.length) {
  590. this.$message.warning("排序不允许有重复值");
  591. return;
  592. }
  593. this.rulesTableSumbit();
  594. } else {
  595. return false;
  596. }
  597. });
  598. },
  599. async rulesTableSumbit() {
  600. this.disabledBtn = true;
  601. var examList = [];
  602. this.tableData.map((item) => {
  603. examList.push({ examId: item.examId, sort: Number(item.sort) });
  604. });
  605. var data1 = {
  606. chapterExamId: this.listData.chapterExamId,
  607. name: this.listData.name,
  608. examList: examList,
  609. publishStatus: this.listData.publishStatus,
  610. prefixName: this.listData.prefixName,
  611. businessList: [this.newSujectApis],
  612. year: this.listData.year,
  613. status: 1,
  614. };
  615. this.$api
  616. .editbankchapter(data1)
  617. .then((res) => {
  618. this.$message.success("修改成功");
  619. setTimeout(() => {
  620. this.$store
  621. .dispatch("tagsView/exitView", this.$route)
  622. .then((res) => {
  623. this.$router.push({
  624. path: "chapterVolumeManagement",
  625. });
  626. });
  627. }, 500);
  628. })
  629. .catch(() => {
  630. this.disabledBtn = false;
  631. });
  632. },
  633. backPage() {
  634. this.$store.dispatch("tagsView/delView", this.$route).then((res) => {
  635. this.$router.push({
  636. path: "chapterVolumeManagement",
  637. });
  638. });
  639. },
  640. closeType() {
  641. this.sujectApis = "";
  642. this.changeTypes();
  643. },
  644. handleSizeChange(v) {
  645. this.formData.pageSize = v;
  646. this.formData.pageNum = 1;
  647. this.getInfos();
  648. },
  649. handleCurrentChange(v) {
  650. this.formData.pageNum = v;
  651. this.getInfos();
  652. },
  653. selectAll(value) {
  654. this.activeLists = value;
  655. },
  656. select(value) {
  657. this.activeLists = value;
  658. },
  659. checkboxT(row, index) {
  660. if (this.disCheckList.indexOf(row.examId) !== -1) {
  661. return false;
  662. } else {
  663. return true;
  664. }
  665. },
  666. getRowKeys(row) {
  667. return row.examId;
  668. },
  669. submitForm() {
  670. if (this.activeLists.length === 0) {
  671. this.dialogVisible = false;
  672. return;
  673. }
  674. if (this.tableData.length) {
  675. let maxIndex = 0;
  676. this.tableData.forEach((item) => {
  677. if (item.sort > maxIndex) {
  678. maxIndex = item.sort;
  679. }
  680. });
  681. this.activeLists.forEach((item, index) => {
  682. item.sort = maxIndex + index + 1;
  683. });
  684. } else {
  685. this.activeLists.forEach((item, index) => {
  686. item.sort = index + 1;
  687. });
  688. }
  689. this.tableData = this.tableData.concat(this.activeLists);
  690. this.dialogVisible = false;
  691. this.$message.success("添加成功");
  692. this.activeLists = [];
  693. },
  694. delList(item, index) {
  695. this.tableData.splice(index, 1);
  696. this.$message.success("删除成功");
  697. },
  698. },
  699. };
  700. </script>
  701. <style lang="less" scoped>
  702. .dis_flexbox {
  703. display: flex;
  704. flex-direction: column;
  705. }
  706. .boxWidth {
  707. width: 700px;
  708. }
  709. .numInputs {
  710. width: 150px;
  711. }
  712. .checkboxSty {
  713. max-height: 210px;
  714. overflow: auto;
  715. display: flex;
  716. flex-direction: column;
  717. }
  718. .listBoxStys {
  719. flex-shrink: 0;
  720. padding: 0px 10px;
  721. border-radius: 8px;
  722. border: 1px solid #eee;
  723. margin-right: 10px;
  724. margin-bottom: 6px;
  725. }
  726. .closeIcons {
  727. color: red;
  728. cursor: pointer;
  729. margin-left: 6px;
  730. }
  731. .ach {
  732. display: flex;
  733. align-items: center;
  734. overflow: hidden;
  735. }
  736. .clh {
  737. display: flex;
  738. align-items: center;
  739. flex-wrap: wrap;
  740. }
  741. .imgBoxins {
  742. width: 375px;
  743. height: 220px;
  744. text-align: center;
  745. img {
  746. height: 100%;
  747. }
  748. }
  749. .iconStsz {
  750. font-size: 40px;
  751. color: #67c23a;
  752. cursor: pointer;
  753. }
  754. .BusBoxs {
  755. min-height: 100px;
  756. border: 1px solid #a4a4a4;
  757. margin-bottom: 10px;
  758. border-radius: 8px;
  759. max-height: 280px;
  760. padding: 10px;
  761. overflow-y: auto;
  762. .fot_Le {
  763. border-radius: 12px;
  764. border: 1px solid yellowgreen;
  765. padding: 0px 10px;
  766. height: 30px;
  767. line-height: 30px;
  768. text-align: center;
  769. float: left;
  770. margin-right: 6px;
  771. margin-bottom: 6px;
  772. .icon_clear {
  773. margin-left: 2px;
  774. font-size: 15px;
  775. color: #f56c6c;
  776. cursor: pointer;
  777. }
  778. }
  779. }
  780. .marg_play {
  781. display: flex;
  782. margin-bottom: 15px;
  783. .spans {
  784. text-align: right;
  785. width: 80px;
  786. }
  787. }
  788. /deep/.el-button {
  789. border-radius: 8px;
  790. }
  791. /deep/.el-dialog {
  792. border-radius: 8px;
  793. .el-dialog__header {
  794. padding: 0;
  795. .hearders {
  796. height: 40px;
  797. display: flex;
  798. align-items: center;
  799. justify-content: space-between;
  800. padding: 0px 18px 0px 20px;
  801. border-bottom: 1px solid #e2e2e2;
  802. .leftTitle {
  803. font-size: 14px;
  804. font-weight: bold;
  805. color: #2f4378;
  806. }
  807. .rightBoxs {
  808. display: flex;
  809. align-items: center;
  810. img {
  811. width: 14px;
  812. height: 14px;
  813. margin-left: 13px;
  814. cursor: pointer;
  815. }
  816. }
  817. }
  818. }
  819. .el-dialog__footer {
  820. padding: 0;
  821. .dialog-footer {
  822. padding: 0px 40px;
  823. height: 70px;
  824. border-top: 1px solid #e2e2e2;
  825. display: flex;
  826. align-items: center;
  827. justify-content: center;
  828. }
  829. }
  830. }
  831. .centerStys {
  832. display: flex;
  833. align-items: center;
  834. justify-content: center;
  835. margin-top: 18px;
  836. }
  837. .dis_fos {
  838. align-items: flex-end;
  839. display: flex;
  840. justify-content: space-between;
  841. }
  842. .margin_bs {
  843. margin-bottom: 6px;
  844. }
  845. .dis_plays {
  846. display: flex;
  847. align-items: center;
  848. justify-content: space-between;
  849. margin-bottom: 10px;
  850. }
  851. .comInputsty {
  852. width: 50px;
  853. height: 24px;
  854. text-align: center;
  855. border: none;
  856. }
  857. </style>