index.vue 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920
  1. <template>
  2. <div id="knowledgeManagement">
  3. <search-box-new
  4. ref="searchBox"
  5. :formData="formData"
  6. :formList="formList"
  7. @search="search"
  8. @init="init"
  9. />
  10. <table-list
  11. :tableSets="tableSet"
  12. :tableData="tableData"
  13. :navText="navText"
  14. @addClick="addClick"
  15. :loading="loading"
  16. @editInfo="editInfo"
  17. ref="tableList"
  18. rowKey="knowledgeId"
  19. >
  20. <template slot="customize">
  21. <el-button size="medium" @click="batchDel" type="warning"
  22. >批量删除</el-button
  23. >
  24. </template>
  25. <template slot="btn" slot-scope="props">
  26. <el-button type="text" @click="addClick(props.scope.row, 0)"
  27. >修改</el-button
  28. >
  29. <el-button type="text" @click="del(props.scope.row)">删除</el-button>
  30. </template>
  31. </table-list>
  32. <pagination
  33. :total="total"
  34. :pageSize="formData.pageSize"
  35. :currentPage="formData.pageNum"
  36. @handleSizeChange="handleSizeChange"
  37. @handleCurrentChange="handleCurrentChange"
  38. />
  39. <el-dialog
  40. @closed="loadingClose"
  41. :visible.sync="dialogVisible"
  42. width="790px"
  43. :show-close="false"
  44. :close-on-click-modal="false"
  45. >
  46. <div slot="title" class="hearders">
  47. <div class="leftTitle">
  48. {{ statusPop === 1 ? "添加" : statusPop === 0 ? "修改" : "详情" }}
  49. </div>
  50. <div class="rightBoxs">
  51. <img src="@/assets/images/Close@2x.png" alt="" @click="close" />
  52. </div>
  53. </div>
  54. <div>
  55. <el-form
  56. label-position="right"
  57. label-width="110px"
  58. :model="listData"
  59. ref="listData"
  60. >
  61. <el-form-item
  62. v-for="(items, indexs) in listitem"
  63. :key="indexs"
  64. :label="items.label"
  65. :prop="items.prop"
  66. :required="true"
  67. >
  68. <div v-if="items.scope === 'buss'">
  69. <el-select
  70. v-model="eduType"
  71. placeholder="请选择教育类型"
  72. @change="changeEduType"
  73. >
  74. <el-option
  75. v-for="(item, index) in eduTypeOptions"
  76. :key="index"
  77. :label="item.educationName"
  78. :value="item.id"
  79. >
  80. </el-option>
  81. </el-select>
  82. <el-select
  83. v-model="courType"
  84. placeholder="请选择业务层次"
  85. @change="changecourseType"
  86. >
  87. <el-option
  88. v-for="(item, index) in newCourTypeOptions"
  89. :key="index"
  90. :label="item.projectName + '-' + item.businessName"
  91. :value="item.id"
  92. >
  93. </el-option>
  94. </el-select>
  95. <el-popover
  96. ref="popovers"
  97. placement="bottom"
  98. trigger="click"
  99. @show="showHandle"
  100. @hide="hideHandle"
  101. :disabled="courType ? false : true"
  102. >
  103. <el-checkbox
  104. v-model="checkAll"
  105. @change="handleCheckAllChange"
  106. :indeterminate="isIndeterminate"
  107. >全选</el-checkbox
  108. >
  109. <el-checkbox-group
  110. v-model="sujectArray"
  111. class="checkboxSty"
  112. @change="handleCheckedCitiesChange"
  113. >
  114. <el-checkbox
  115. v-for="(item, index) in newSujectOption"
  116. :label="item.newId"
  117. :key="index"
  118. >{{ item.subjectName }}</el-checkbox
  119. >
  120. </el-checkbox-group>
  121. <div
  122. style="display: block; text-align: center; margin-top: 10px"
  123. >
  124. <el-button
  125. size="mini"
  126. type="primary"
  127. @click="submitSujectArray"
  128. >确定</el-button
  129. >
  130. </div>
  131. <el-button
  132. slot="reference"
  133. style="margin-left: 12px"
  134. @click="getMessage"
  135. >请选择科目</el-button
  136. >
  137. </el-popover>
  138. <span style="margin-left: 10px">注:可多选</span>
  139. </div>
  140. <div v-else-if="items.scope === 'activeBox'">
  141. <div :class="changeHeight ? 'ach' : 'clh'">
  142. <div
  143. v-for="(item, index) in newSujectApis"
  144. :key="index"
  145. class="listBoxStys"
  146. >
  147. {{
  148. item.educationName +
  149. " - " +
  150. item.projectName +
  151. " - " +
  152. item.businessName +
  153. " - " +
  154. item.subjectName
  155. }}
  156. <i
  157. class="el-icon-error closeIcons"
  158. @click="closeType(index)"
  159. ></i>
  160. </div>
  161. </div>
  162. <el-popover
  163. placement="bottom-start"
  164. trigger="hover"
  165. :close-delay="50"
  166. >
  167. <ul style="margin: 0; max-width: 600px">
  168. <li
  169. class="copyDataLi"
  170. :class="changeSty(itemT)"
  171. v-for="(itemT, indexT) in localData"
  172. :key="indexT"
  173. @click="unTime(itemT)"
  174. >
  175. {{
  176. `${itemT.educationName}-${itemT.projectName}-${itemT.businessName}-${itemT.subjectName}`
  177. }}
  178. </li>
  179. </ul>
  180. <el-button
  181. v-show="localData.length && statusPop === 1"
  182. type="danger"
  183. slot="reference"
  184. size="mini"
  185. style="margin-right: 10px"
  186. >最近选择</el-button
  187. >
  188. </el-popover>
  189. <el-button
  190. size="mini"
  191. v-if="newSujectApis.length > 1"
  192. @click="changeType"
  193. >{{ changeHeight ? "展开" : "关闭" }}</el-button
  194. ><el-button
  195. size="mini"
  196. v-if="newSujectApis.length > 0"
  197. @click="sujectApis = []"
  198. >清空</el-button
  199. >
  200. <!-- <span v-if="newSujectApis.length === 0">未选项目类型</span> -->
  201. </div>
  202. <div v-else>
  203. <div v-if="statusPop === 0">
  204. <el-input v-model="listData.knowledgeName"></el-input>
  205. </div>
  206. <div v-else>
  207. <el-input
  208. style="width: 40%; margin-right: 10px"
  209. v-model="BusName"
  210. ></el-input
  211. ><el-button @click="addBusName">添加</el-button>
  212. <!-- <div v-if="!BusNameList.length">请在下面输入框添加知识点</div> -->
  213. <ul class="BusBoxs">
  214. <li
  215. class="fot_Le"
  216. v-for="(item, index) in BusNameList"
  217. :key="index"
  218. >
  219. {{ item }}
  220. <i
  221. class="el-icon-error icon_clear"
  222. @click="clearBusName(index)"
  223. ></i>
  224. </li>
  225. <div style="clear: both"></div>
  226. </ul>
  227. </div>
  228. </div>
  229. </el-form-item>
  230. </el-form>
  231. </div>
  232. <span slot="footer" class="dialog-footer">
  233. <el-button @click="close">取 消</el-button>
  234. <el-button type="primary" @click="submit" :loading="disabledBtn"
  235. >确 定</el-button
  236. >
  237. </span>
  238. </el-dialog>
  239. </div>
  240. </template>
  241. <script>
  242. import searchBoxNew from "@/components/searchBoxNew";
  243. import tableList from "@/components/tableList";
  244. import pagination from "@/components/pagination";
  245. export default {
  246. name: "KnowledgeManagement",
  247. components: { searchBoxNew, tableList, pagination },
  248. data() {
  249. return {
  250. disabledBtn: false,
  251. isIndeterminate: false,
  252. checkAll: false,
  253. loading: false, //当前表单加载是否加载动画
  254. navText: {
  255. title: "知识点",
  256. index: 0,
  257. ch: "条",
  258. num: false,
  259. border: true,
  260. choice: true,
  261. addHide: false,
  262. openCheckMore: true,
  263. backFatherBtn: {
  264. status: false,
  265. title: "未定义",
  266. },
  267. },
  268. //搜索
  269. formList: [
  270. {
  271. prop: "educationId",
  272. placeholder: "教育类型",
  273. scope: "educationType",
  274. },
  275. {
  276. prop: "businessId",
  277. placeholder: "业务层次",
  278. scope: "businessLevel",
  279. edu: "educationId",
  280. },
  281. {
  282. prop: "subjectId",
  283. placeholder: "科目",
  284. scope: "sujectType",
  285. edu: "educationId",
  286. },
  287. {
  288. prop: "knowledgeName",
  289. placeholder: "请输入知识点名称",
  290. },
  291. ],
  292. formData: {
  293. status: "0,1",
  294. pageSize: 10,
  295. pageNum: 1,
  296. },
  297. // 表单
  298. tableSet: [
  299. {
  300. label: "知识点编码",
  301. prop: "encoder",
  302. hidden: true,
  303. width: "140px",
  304. },
  305. {
  306. label: "知识点标题",
  307. prop: "knowledgeName",
  308. scope: "editInfo",
  309. hidden: true,
  310. },
  311. {
  312. label: "适用业务层级",
  313. prop: "courseBusinessList",
  314. hidden: true,
  315. scope: "mapTypesMores",
  316. },
  317. {
  318. label: "最后编辑时间",
  319. prop: "updateTime",
  320. scope: "aTimeList",
  321. hidden: true,
  322. },
  323. {
  324. label: "创建时间",
  325. prop: "createTime",
  326. scope: "aTimeList",
  327. hidden: true,
  328. },
  329. ],
  330. eduTypeOptions: [], //教育类型数据
  331. projectTypeOptions: [], //项目类型数据
  332. courTypeOptions: [], //业务层次数据
  333. newCourTypeOptions: [], //当前业务层次数据
  334. sujectOption: [], //科目数据
  335. newSujectOption: [], //当前科目数据数据
  336. eduType: "", //当前选中教育类型
  337. courType: "", //当前选中业务层次
  338. sujectApis: [], //当前存在的科目
  339. newSujectApis: [],
  340. sujectArray: [], //选中的科目
  341. BusName: "", //标签名称
  342. BusNameList: [], //标签列表
  343. tableData: [], //表单数据
  344. total: 0, //一共多少条
  345. changeHeight: false,
  346. listData: {},
  347. listitem: [
  348. {
  349. label: "适用业务层级",
  350. scope: "buss",
  351. },
  352. {
  353. label: "",
  354. scope: "activeBox",
  355. },
  356. {
  357. label: "知识点",
  358. },
  359. ],
  360. statusPop: 1,
  361. dialogVisible: false,
  362. localData: [],
  363. };
  364. },
  365. watch: {
  366. sujectApis: {
  367. immediate: true,
  368. handler(newName, oldName) {
  369. this.changeTypes();
  370. },
  371. },
  372. },
  373. mounted() {
  374. this.localData = this.$methodsTools.getBusinessList();
  375. this.getDict();
  376. this.search();
  377. },
  378. activated() {
  379. this.localData = this.$methodsTools.getBusinessList();
  380. this.getDict();
  381. this.search();
  382. },
  383. methods: {
  384. batchDel() {
  385. if (!this.$refs.tableList.allCheckData.length) {
  386. this.$message.warning("请勾选需要删除的知识点");
  387. return;
  388. }
  389. this.$confirm(
  390. `此操作将永久删除所勾选的${this.$refs.tableList.allCheckData.length}条知识点, 是否继续?`,
  391. "提示",
  392. {
  393. confirmButtonText: "确定",
  394. cancelButtonText: "取消",
  395. type: "warning",
  396. }
  397. )
  398. .then(() => {
  399. const questionIdsList = this.$refs.tableList.allCheckData.map(
  400. (item) => item.knowledgeId
  401. );
  402. this.$api
  403. .editbankquestion({
  404. status: -1,
  405. questionIds: questionIdsList,
  406. })
  407. .then((res) => {
  408. this.$message.success("批量删除成功");
  409. this.$refs.tableList.clearMoreActive();
  410. this.search(1);
  411. });
  412. })
  413. .catch(() => {});
  414. },
  415. loadingClose() {
  416. this.disabledBtn = false;
  417. },
  418. unTime(val) {
  419. let a = `${val.businessId}-${val.subjectId}`;
  420. if (this.sujectApis.includes(a)) {
  421. this.sujectApis.splice(this.sujectApis.indexOf(a), 1);
  422. } else {
  423. this.sujectApis.push(a);
  424. }
  425. },
  426. changeSty(val) {
  427. var arr = "";
  428. this.sujectApis.forEach((item) => {
  429. let arr1 = item.split("-").map(Number);
  430. if (val.businessId == arr1[0] && val.subjectId == arr1[1]) {
  431. arr = "activeStyIcons";
  432. }
  433. });
  434. return arr;
  435. },
  436. handleCheckedCitiesChange() {
  437. let nid = this.newSujectOption.map((item) => {
  438. return item.newId;
  439. });
  440. this.checkAll = this.sujectArray.length === nid.length;
  441. this.isIndeterminate =
  442. this.sujectArray.length > 0 && this.sujectArray.length < nid.length;
  443. },
  444. setFunc(arr) {
  445. var arrays = [];
  446. for (let i = 0; i < arr.length; i++) {
  447. if (!arrays.includes(arr[i])) {
  448. arrays.push(arr[i]);
  449. }
  450. }
  451. return arrays;
  452. },
  453. handleCheckAllChange(val) {
  454. if (val) {
  455. let nid = this.newSujectOption.map((item) => {
  456. return item.newId;
  457. });
  458. let arrays = this.sujectArray.concat(nid);
  459. this.sujectArray = this.setFunc(arrays);
  460. this.isIndeterminate = false;
  461. } else {
  462. let nid = this.newSujectOption.map((item) => {
  463. return item.newId;
  464. });
  465. let newArr = [];
  466. this.sujectArray.forEach((item) => {
  467. if (!nid.includes(item)) {
  468. newArr.push(item);
  469. }
  470. });
  471. this.sujectArray = newArr;
  472. this.isIndeterminate = false;
  473. }
  474. },
  475. getMessage() {
  476. if (!this.courType) {
  477. this.$message.warning("请先选择业务层级");
  478. }
  479. },
  480. addBusName() {
  481. if (this.BusName.trim()) {
  482. this.BusNameList.push(this.BusName);
  483. this.BusName = "";
  484. } else {
  485. this.$message({
  486. message: "请输入知识点内容",
  487. type: "warning",
  488. duration: 1200,
  489. });
  490. this.BusName = "";
  491. }
  492. },
  493. changeTypes() {
  494. var self = this;
  495. var arrays = [];
  496. this.sujectApis.map((item, index) => {
  497. this.courTypeOptions.map((items) => {
  498. if (items.id === item.split("-").map(Number)[0]) {
  499. var obj = {
  500. educationTypeId: items.educationId,
  501. educationName: items.educationName,
  502. projectId: items.projectId,
  503. projectName: items.projectName,
  504. businessId: items.id,
  505. businessName: items.businessName,
  506. };
  507. self.sujectOption.map((i) => {
  508. if (
  509. i.id === item.split("-").map(Number)[1] &&
  510. i.courseArrays.indexOf(items.projectId) !== -1
  511. ) {
  512. obj.subjectName = i.subjectName;
  513. obj.subjectId = i.id;
  514. }
  515. });
  516. arrays.push(obj);
  517. }
  518. });
  519. });
  520. this.newSujectApis = arrays;
  521. },
  522. getDict() {
  523. this.$api.inquireCourseEducationType({ status: 1 }).then((res) => {
  524. this.eduTypeOptions = res.rows;
  525. });
  526. this.$api.inquireCourseProjectType({ status: 1 }).then((res) => {
  527. this.projectTypeOptions = res.rows;
  528. });
  529. this.$api.inquirebusinessList({ status: 1 }).then((res) => {
  530. this.courTypeOptions = res.rows;
  531. this.newCourTypeOptions = res.rows;
  532. });
  533. this.$api.inquireCourseSubject({ status: 1 }).then((res) => {
  534. res.rows.map((item, index) => {
  535. var array = [];
  536. item.courseProjectTypes.map((items, indexs) => {
  537. array.push(items.id);
  538. });
  539. item.courseArrays = array;
  540. });
  541. this.sujectOption = res.rows;
  542. });
  543. },
  544. editInfo(v) {
  545. this.addClick(v, 0);
  546. },
  547. //int === 1搜索 页码归1 int === 2重置 条件初始化
  548. search(int) {
  549. this.loading = true;
  550. if (int === 1) {
  551. this.formData.pageNum = 1;
  552. }
  553. if (int === 2) {
  554. this.formData = {
  555. status: "0,1",
  556. pageSize: 10,
  557. pageNum: 1,
  558. };
  559. }
  560. this.$api
  561. .inquireKnowledgeExamListS(this.formData)
  562. .then((res) => {
  563. this.tableData = res.rows;
  564. this.total = res.total;
  565. this.navText.index = res.total;
  566. })
  567. .finally(() => {
  568. this.loading = false;
  569. });
  570. },
  571. init() {
  572. this.search(2);
  573. },
  574. changeType() {
  575. this.changeHeight = !this.changeHeight;
  576. },
  577. changeEduType() {
  578. if (!(this.courType === undefined || this.courType === "")) {
  579. this.courType = "";
  580. }
  581. var arrays = [];
  582. this.courTypeOptions.map((item) => {
  583. if (item.educationId === this.eduType) {
  584. arrays.push(item);
  585. }
  586. });
  587. this.newCourTypeOptions = arrays;
  588. },
  589. changecourseType() {
  590. this.newCourTypeOptions.map((item, index) => {
  591. if (item.id === this.courType) {
  592. this.eduType = item.educationId;
  593. var array = [];
  594. this.sujectOption.map((items, indexs) => {
  595. if (items.courseArrays.indexOf(item.projectId) !== -1) {
  596. array.push(items);
  597. }
  598. });
  599. this.newSujectOption = array;
  600. }
  601. });
  602. var arrays = [];
  603. this.courTypeOptions.map((item) => {
  604. if (item.educationId === this.eduType) {
  605. arrays.push(item);
  606. }
  607. });
  608. this.newCourTypeOptions = arrays;
  609. this.$refs.popovers[0].doClose();
  610. },
  611. submitSujectArray() {
  612. var self = this;
  613. this.sujectApis = this.sujectApis.filter((item, index) => {
  614. return item.split("-").map(Number)[0] !== Number(self.courType);
  615. });
  616. for (let i = 0; i < this.sujectArray.length; i++) {
  617. this.sujectApis.push(this.sujectArray[i]);
  618. }
  619. this.$refs.popovers[0].doClose();
  620. },
  621. submit() {
  622. this.disabledBtn = true;
  623. if (!this.newSujectApis.length) {
  624. this.$message.warning("请添加业务层级");
  625. this.disabledBtn = false;
  626. return;
  627. }
  628. if (this.statusPop === 1) {
  629. if (!this.BusNameList.length) {
  630. this.$message.warning("请添加知识点");
  631. this.disabledBtn = false;
  632. return;
  633. }
  634. var dataInfos = {
  635. status: 1,
  636. examKnowledgeBusinessAddBoList: this.newSujectApis,
  637. knowledgeName: this.BusNameList,
  638. };
  639. this.$api
  640. .addKnowledgeExam(dataInfos)
  641. .then((res) => {
  642. this.$methodsTools.cacheBusinessList(this.newSujectApis);
  643. this.$message.success("添加成功");
  644. this.dialogVisible = false;
  645. this.search();
  646. this.localData = this.$methodsTools.getBusinessList();
  647. })
  648. .catch(() => {
  649. this.disabledBtn = false;
  650. });
  651. } else {
  652. if (!this.listData.knowledgeName) {
  653. this.$message.warning("请输入知识点名称");
  654. this.disabledBtn = false;
  655. return;
  656. }
  657. var dataInfos = {
  658. knowledgeName: this.listData.knowledgeName,
  659. status: this.listData.status,
  660. knowledgeId: this.listData.knowledgeId,
  661. examKnowledgeBusinessAddBoList: this.newSujectApis,
  662. };
  663. this.$api
  664. .editKnowledgeExam(dataInfos)
  665. .then((res) => {
  666. this.$message.success("修改成功");
  667. this.dialogVisible = false;
  668. this.search();
  669. })
  670. .catch(() => {
  671. this.disabledBtn = false;
  672. });
  673. }
  674. },
  675. del(v) {
  676. this.$alert(
  677. "确定删除此内容?<br />内容删除后将无法恢复,请慎重考虑",
  678. "提示",
  679. {
  680. dangerouslyUseHTMLString: true,
  681. }
  682. )
  683. .then(() => {
  684. var data = {
  685. knowledgeId: v.knowledgeId,
  686. status: -1,
  687. };
  688. this.$api.editKnowledgeExam(data).then((res) => {
  689. this.$message.success("删除成功");
  690. this.search();
  691. });
  692. })
  693. .catch(() => {
  694. this.$message({
  695. type: "info",
  696. message: "已取消删除",
  697. });
  698. });
  699. },
  700. hideHandle() {},
  701. showHandle() {
  702. var array = [];
  703. for (let i = 0; i < this.sujectApis.length; i++) {
  704. if (
  705. this.sujectApis[i].split("-").map(Number)[0] === Number(this.courType)
  706. ) {
  707. array.push(this.sujectApis[i]);
  708. }
  709. }
  710. this.sujectArray = array;
  711. if (!this.newSujectOption.length) {
  712. this.$message.warning("该业务层次暂无关联科目");
  713. this.$refs.popovers[0].doClose();
  714. return;
  715. }
  716. this.newSujectOption.map((item) => {
  717. item.newId = this.courType + "-" + item.id;
  718. });
  719. this.handleCheckedCitiesChange();
  720. },
  721. addClick(v, int) {
  722. if (v === undefined) {
  723. this.statusPop = 1;
  724. this.listData = {};
  725. this.eduType = ""; //当前选中教育类型
  726. this.courType = ""; //当前选中业务层次
  727. this.sujectApis = []; //当前存在的科目
  728. this.newSujectApis = [];
  729. this.sujectArray = []; //选中的科目
  730. this.BusName = "";
  731. this.BusNameList = [];
  732. } else {
  733. this.statusPop = int;
  734. this.eduType = ""; //当前选中教育类型
  735. this.courType = ""; //当前选中业务层次
  736. this.BusName = "";
  737. this.BusNameList = [];
  738. var arrays = [];
  739. this.listData = v;
  740. v.courseBusinessList.map((item) => {
  741. arrays.push(item.businessId + "-" + item.subjectId);
  742. });
  743. this.sujectApis = arrays;
  744. }
  745. this.$nextTick(() => {
  746. this.changeHeight = true;
  747. });
  748. this.dialogVisible = true;
  749. },
  750. close() {
  751. this.dialogVisible = false;
  752. },
  753. closeType(index) {
  754. this.sujectApis.splice(index, 1);
  755. },
  756. clearBusName(index) {
  757. this.BusNameList.splice(index, 1);
  758. },
  759. handleSizeChange(v) {
  760. this.formData.pageSize = v;
  761. this.formData.pageNum = 1;
  762. this.search();
  763. },
  764. handleCurrentChange(v) {
  765. this.formData.pageNum = v;
  766. this.search();
  767. },
  768. },
  769. };
  770. </script>
  771. <style lang="less" scoped>
  772. .checkboxSty {
  773. display: flex;
  774. flex-direction: column;
  775. }
  776. /deep/.el-button {
  777. border-radius: 8px;
  778. }
  779. /deep/.el-dialog {
  780. border-radius: 8px;
  781. .el-dialog__header {
  782. padding: 0;
  783. .hearders {
  784. height: 40px;
  785. display: flex;
  786. align-items: center;
  787. justify-content: space-between;
  788. padding: 0px 18px 0px 20px;
  789. border-bottom: 1px solid #e2e2e2;
  790. .leftTitle {
  791. font-size: 14px;
  792. font-weight: bold;
  793. color: #2f4378;
  794. }
  795. .rightBoxs {
  796. display: flex;
  797. align-items: center;
  798. img {
  799. width: 14px;
  800. height: 14px;
  801. margin-left: 13px;
  802. cursor: pointer;
  803. }
  804. }
  805. }
  806. }
  807. .el-dialog__footer {
  808. padding: 0;
  809. .dialog-footer {
  810. padding: 0px 40px;
  811. height: 70px;
  812. border-top: 1px solid #e2e2e2;
  813. display: flex;
  814. align-items: center;
  815. justify-content: flex-end;
  816. }
  817. }
  818. }
  819. .imgBox {
  820. width: 100%;
  821. // height: 210px;
  822. border: 1px solid #e2e2e2;
  823. border-radius: 8px;
  824. padding: 8px 8px 3px;
  825. display: flex;
  826. flex-direction: column;
  827. align-items: center;
  828. .imgLabel {
  829. flex: 1;
  830. width: 100%;
  831. border: 1px dotted #e2e2e2;
  832. color: #999;
  833. font-size: 14px;
  834. cursor: pointer;
  835. border-radius: 8px;
  836. .msPhoto {
  837. display: flex;
  838. justify-content: center;
  839. align-items: center;
  840. max-width: 100%;
  841. max-height: 270px;
  842. img {
  843. max-width: 100%;
  844. max-height: 270px;
  845. }
  846. }
  847. .imgbbx {
  848. display: flex;
  849. flex-direction: column;
  850. align-items: center;
  851. justify-content: center;
  852. width: 100%;
  853. height: 100%;
  854. i {
  855. font-weight: bold;
  856. margin: 14px 0;
  857. font-size: 24px;
  858. }
  859. }
  860. }
  861. p {
  862. margin: 5px 0px;
  863. }
  864. }
  865. .listBoxStys {
  866. flex-shrink: 0;
  867. padding: 0px 10px;
  868. border-radius: 8px;
  869. border: 1px solid #eee;
  870. margin-right: 10px;
  871. margin-bottom: 6px;
  872. }
  873. .closeIcons {
  874. color: red;
  875. cursor: pointer;
  876. margin-left: 6px;
  877. }
  878. .ach {
  879. display: flex;
  880. align-items: center;
  881. overflow: hidden;
  882. }
  883. .clh {
  884. display: flex;
  885. align-items: center;
  886. flex-wrap: wrap;
  887. }
  888. .BusBoxs {
  889. min-height: 100px;
  890. border: 1px solid #a4a4a4;
  891. margin-bottom: 10px;
  892. border-radius: 8px;
  893. max-height: 280px;
  894. padding: 10px;
  895. overflow-y: auto;
  896. .fot_Le {
  897. border-radius: 12px;
  898. border: 1px solid yellowgreen;
  899. padding: 0px 10px;
  900. height: 30px;
  901. line-height: 30px;
  902. text-align: center;
  903. float: left;
  904. margin-right: 6px;
  905. margin-bottom: 6px;
  906. .icon_clear {
  907. margin-left: 2px;
  908. font-size: 15px;
  909. color: #f56c6c;
  910. cursor: pointer;
  911. }
  912. }
  913. }
  914. </style>