You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

776 lines
23 KiB

3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
2 years ago
3 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
2 years ago
2 years ago
2 years ago
2 years ago
3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
3 years ago
2 years ago
3 years ago
2 years ago
3 years ago
2 years ago
  1. <template>
  2. <div class="box">
  3. <div style="width: 95%">
  4. <el-card style="height: 800px">
  5. <el-table
  6. :data="tableData"
  7. style="width: 100%"
  8. v-loading="loading"
  9. row-key="id"
  10. class="el-table__body-wrapper tbody"
  11. border:stripe="true"
  12. @row-click="rowick"
  13. highlight-current-row
  14. height=""
  15. >
  16. <el-table-column prop="id" label="编号" width="300">
  17. </el-table-column>
  18. <el-table-column prop="displayName" label="名称"> </el-table-column>
  19. <el-table-column prop="createUserName" label="创建者">
  20. </el-table-column>
  21. <el-table-column prop="creationTime" label="创建时间" width="180">
  22. <template slot-scope="scope">
  23. {{ scope.row.creationTime | dateFormat }}
  24. </template>
  25. </el-table-column>
  26. <el-table-column prop="lastModifierName" label="修改者">
  27. </el-table-column>
  28. <el-table-column
  29. prop="lastModificationTime"
  30. label="修改时间"
  31. width="180"
  32. >
  33. <template slot-scope="scope">
  34. {{ scope.row.lastModificationTime | dateFormat }}
  35. </template>
  36. </el-table-column>
  37. <el-table-column label="操作" width="">
  38. <template>
  39. <el-tag
  40. class="move"
  41. style="cursor: move; margin-left: 15px"
  42. draggable="true"
  43. >
  44. <i
  45. class="el-icon-d-caret"
  46. style="width: 1rem; height: 1rem"
  47. ></i>
  48. </el-tag>
  49. </template>
  50. </el-table-column>
  51. </el-table>
  52. <!-- 新增弹框 -->
  53. <el-dialog
  54. :title="title == 1 ? '新增' : '修改'"
  55. :visible.sync="dialogVisible"
  56. width="53%"
  57. :close-on-click-modal="false"
  58. >
  59. <el-form ref="form" :model="form" label-width="80px" :rules="rules">
  60. <el-row>
  61. <el-col :span="12">
  62. <el-form-item label="编号">
  63. <el-input v-model="form.id" disabled></el-input>
  64. </el-form-item>
  65. </el-col>
  66. <el-col :span="12">
  67. <el-form-item label="名称" prop="displayName">
  68. <el-input
  69. v-model="form.displayName"
  70. ref="refinput"
  71. ></el-input>
  72. </el-form-item>
  73. </el-col>
  74. <el-col :span="12">
  75. <el-form-item label="标本类型" prop="sampleTypeId">
  76. <el-select v-model="form.sampleTypeId" placeholder="请选择">
  77. <el-option
  78. v-for="item in sampleTypeId"
  79. :key="item.id"
  80. :label="item.displayName"
  81. :value="item.id"
  82. >
  83. </el-option>
  84. </el-select>
  85. </el-form-item>
  86. </el-col>
  87. <el-col :span="12">
  88. <el-form-item label="标本容器" prop="sampleContainerId">
  89. <el-select
  90. v-model="form.sampleContainerId"
  91. placeholder="请选择"
  92. >
  93. <el-option
  94. v-for="item in sampleContainerId"
  95. :key="item.id"
  96. :label="item.displayName"
  97. :value="item.id"
  98. >
  99. </el-option>
  100. </el-select>
  101. </el-form-item>
  102. </el-col>
  103. </el-row>
  104. <el-row>
  105. <el-col :span="6">
  106. <el-form-item label="创建者">
  107. <el-input v-model="form.creatorName" disabled></el-input>
  108. </el-form-item>
  109. </el-col>
  110. <el-col :span="6">
  111. <el-form-item label="创建时间">
  112. <el-input :value="form.creationTime" disabled></el-input>
  113. </el-form-item>
  114. </el-col>
  115. <el-col :span="6">
  116. <el-form-item label="修改者">
  117. <el-input v-model="form.lastModifierName" disabled></el-input>
  118. </el-form-item>
  119. </el-col>
  120. <el-col :span="6">
  121. <el-form-item label="修改时间">
  122. <el-input
  123. :value="form.lastModificationTime"
  124. disabled
  125. ></el-input>
  126. </el-form-item>
  127. </el-col>
  128. </el-row>
  129. </el-form>
  130. <span slot="footer" class="dialog-footer">
  131. <el-button @click="dialogVisible = false"> </el-button>
  132. <el-button type="primary" @click="addoredit"> </el-button>
  133. </span>
  134. </el-dialog>
  135. <div style="margin-top: 20px" class="intermediatesubject">
  136. <div>
  137. <span style="margin-top: 10px; padding: 5px">项目类别</span>
  138. <el-select
  139. v-model="values"
  140. placeholder="请选择"
  141. @change="ischangs"
  142. style="margin-top: 5px"
  143. >
  144. <el-option
  145. v-for="item in projectid"
  146. :key="item.id"
  147. :label="item.displayName"
  148. :value="item.id"
  149. >
  150. </el-option>
  151. </el-select>
  152. </div>
  153. <!-- -->
  154. <span style="margin-left: 10%; padding: 5px; margin-top: 10px"
  155. >搜索选择</span
  156. >
  157. <el-select
  158. filterable
  159. v-model="flitvalues"
  160. placeholder="请选择"
  161. style="margin-top: 5px"
  162. value-key="id"
  163. @change="selectchange"
  164. >
  165. <el-option
  166. v-for="item in filetelists"
  167. :key="item.id"
  168. :label="item.displayName"
  169. :value="item.id"
  170. >
  171. </el-option>
  172. </el-select>
  173. </div>
  174. <!-- 111 -->
  175. <div style="display: flex; padding: 10px">
  176. <div class="instrumentcategory">
  177. <div class="leftbox">
  178. <div class="weixuan">未选项目</div>
  179. <div
  180. v-for="(item, index) in ites"
  181. :key="index"
  182. @click="clickPaixu(item, index)"
  183. @dblclick="shuanji(item, index)"
  184. :class="num === index ? 'activetext' : ''"
  185. style=""
  186. >
  187. <div>{{ item.displayName }}</div>
  188. </div>
  189. </div>
  190. <div class="Selectbutton">
  191. <div style="margin-top: 10px">
  192. <el-button @click="addall"
  193. >全添加<i class="el-icon-caret-right"></i
  194. ><i class="el-icon-caret-right"></i
  195. ></el-button>
  196. </div>
  197. <div style="margin-top: 10px">
  198. <el-button @click="addobj" style="width: 111px"
  199. >添加<i class="el-icon-caret-right"></i>
  200. </el-button>
  201. </div>
  202. <div style="margin-top: 10px">
  203. <el-button @click="removeright" style="width: 111px"
  204. >移去<i class="el-icon-caret-left"></i>
  205. </el-button>
  206. </div>
  207. <div style="margin-top: 10px">
  208. <el-button @click="allclear"
  209. >全移去<i class="el-icon-caret-left"></i
  210. ><i class="el-icon-caret-left"></i>
  211. </el-button>
  212. </div>
  213. </div>
  214. <div class="leftbox" style="margin-left: 5%">
  215. <div class="weixuan">已选项目</div>
  216. <div
  217. v-for="(item, index) in rightdata"
  218. :key="index"
  219. @click="rightindex(item, index)"
  220. @dblclick="rightdelite(item, index)"
  221. :class="nums === index ? 'activetext' : ''"
  222. >
  223. <div>{{ item.displayName }}</div>
  224. </div>
  225. </div>
  226. </div>
  227. <div></div>
  228. </div>
  229. <!-- <el-transfer
  230. v-model="checked"
  231. :data="thetatabe"
  232. filterable
  233. :button-texts="['到左边', '到右边']"
  234. :titles="['已选', '未选']"
  235. :props="{ key: 'id', label: 'displayName' }"
  236. @change="handlechang"
  237. >
  238. </el-transfer> -->
  239. <div class="confirmcancellation">
  240. <el-button :disabled="isdislob" @click="Onsubmit">确定</el-button>
  241. <el-button :disabled="isdislob">取消</el-button>
  242. </div>
  243. </el-card>
  244. </div>
  245. <!-- 按钮区域 -->
  246. <div style="margin-left: 10px; margin-top: 4rem">
  247. <el-button type="primary" @click="addll">新增</el-button>
  248. <div style="margin-top: 10px">
  249. <el-button type="primary" @click="editreport">编辑</el-button>
  250. </div>
  251. <div style="margin-top: 10px">
  252. <el-button type="danger" @click="deleteid">删除</el-button>
  253. </div>
  254. <div style="margin-top: 10px">
  255. <el-button type="primary" @click="topping">置顶</el-button>
  256. </div>
  257. <div style="margin-top: 10px">
  258. <el-button type="primary" @click="setlow">置底</el-button>
  259. </div>
  260. <div style="margin-top: 10px">
  261. <el-button type="primary" :disabled="isshow" @click="assertion"
  262. >排序</el-button
  263. >
  264. </div>
  265. <div style="margin-top: 10px">
  266. <el-button type="primary" :disabled="isshow" @click="cancellation"
  267. >取消</el-button
  268. >
  269. </div>
  270. </div>
  271. </div>
  272. </template>
  273. <script>
  274. import Sortable from "sortablejs";
  275. import {
  276. groupinglist,
  277. samplegroup,
  278. samplegropid,
  279. barcodeediting,
  280. barcodedeleteid,
  281. barcodedetopbottom,
  282. barcodedraganddrop,
  283. projectlist,
  284. itemtypeid,
  285. sampleasbitemid,
  286. asbitmfilte,
  287. batchcreaion,
  288. } from "@/request/commonapi";
  289. import { specimenlist, containerlist } from "@/request/systemapi";
  290. export default {
  291. data() {
  292. return {
  293. rules: {
  294. displayName: [
  295. { required: true, message: "请输入活动名称", trigger: "blur" },
  296. ],
  297. sampleTypeId: [
  298. { required: true, message: "请选择标本类型", trigger: "change" },
  299. ],
  300. sampleContainerId: [
  301. { required: true, message: "请选择标本容器", trigger: "change" },
  302. ],
  303. },
  304. isdislob: true,
  305. filetelists: [],
  306. flitvalues: [],
  307. checked: [],
  308. tableHeight: window.innerHeight - 500, //表格动态高度
  309. screenHeight: window.innerHeight, //内容区域高度
  310. isshow: true,
  311. form: {
  312. displayName: "",
  313. sampleTypeId: "",
  314. sampleContainerId: "",
  315. },
  316. dialogVisible: false,
  317. title: 1,
  318. loading: false,
  319. pages: {
  320. SkipCount: 0,
  321. MaxResultCount: 100,
  322. Sorting: "displayOrder desc",
  323. },
  324. tableData: [],
  325. initTableData: [],
  326. sampleTypeId: [], //标本类型id
  327. sampleContainerId: [], //标本容器id
  328. projectid: [],
  329. ites: [], //左侧框数据
  330. rightdata: [], //右侧数据
  331. num: "",
  332. nums: "",
  333. values: "",
  334. rightobj: {},
  335. leftobj: {},
  336. ischank: 1,
  337. filete: {
  338. Filter: "",
  339. },
  340. ary1: [],
  341. ary2: [],
  342. sdate: [],
  343. curRow: {},
  344. };
  345. },
  346. created() {
  347. this.getlist();
  348. this.posjectlist();
  349. this.getasbitem();
  350. },
  351. mounted() {
  352. this.rowDrop();
  353. window.onresize = () => {
  354. return (() => {
  355. // window.innerHeight:浏览器的可用高度
  356. window.screenHeight = window.innerHeight;
  357. this.screenHeight = window.screenHeight;
  358. })();
  359. };
  360. },
  361. watch: {
  362. // 监听screenHeight从而改变table的高度
  363. // screenHeight(val) {
  364. // this.screenHeight = val;
  365. // this.tableHeight = this.screenHeight - 220;
  366. // },
  367. },
  368. methods: {
  369. selectchange(v) {
  370. console.log(v);
  371. // console.log("111");
  372. // console.log(v);
  373. },
  374. Onsubmit() {
  375. let sampleGroupId = this.form.id;
  376. console.log(this.form.id);
  377. console.log(this.rightdata);
  378. let sdate = [];
  379. this.rightdata.forEach((element) => {
  380. let sss = { sampleGroupId: sampleGroupId, asbitemId: element.id };
  381. sdate.push(sss);
  382. });
  383. this.ites.forEach((element) => {
  384. let sss = { sampleGroupId: sampleGroupId, asbitemId: element.id };
  385. sdate.push(sss);
  386. });
  387. console.log(sdate);
  388. if (sampleGroupId == undefined) {
  389. this.$message.warning("请选择列表");
  390. } else {
  391. batchcreaion(sdate).then((res) => {
  392. if (res.code == 0) {
  393. this.$message.success("操作成功");
  394. }
  395. this.isdislob = true;
  396. });
  397. }
  398. },
  399. // 获取组合项目列表带搜索
  400. getasbitem() {
  401. asbitmfilte(this.filete).then((res) => {
  402. this.filetelists = res.data.items;
  403. console.log(res, "res");
  404. });
  405. },
  406. //全添加
  407. addall() {
  408. this.isdislob = false;
  409. if (this.ites.length > 0) {
  410. this.ary1 = this.ites;
  411. this.ary2 = this.rightdata;
  412. this.updatedate();
  413. this.ites = [];
  414. // this.ites.forEach((item) => {
  415. // let iscz = false;
  416. // this.rightdata.forEach((item2) => {
  417. // if (item2.id == item.id) {
  418. // iscz = true;
  419. // }
  420. // });
  421. // if (!iscz) {
  422. // console.log(item.id);
  423. // this.rightdata.push(item);
  424. // // this.allid.push({ id: item.id });
  425. // }
  426. // });
  427. // this.ites = [];
  428. // console.log(this.allid);
  429. }
  430. },
  431. //q全移去
  432. allclear() {
  433. this.isdislob = false;
  434. if (this.rightdata.length > 0) {
  435. this.ary1 = this.rightdata;
  436. this.ary2 = this.ites;
  437. this.updatedate();
  438. this.rightdata = [];
  439. }
  440. },
  441. //左侧添加按钮
  442. addobj() {
  443. if (this.ites.length > 0) {
  444. this.isdislob = false;
  445. this.ites.splice(this.num, 1);
  446. this.rightdata.push(this.rightobj);
  447. // this.sdate.push({ id: this.leftobj.id });
  448. this.updatedate();
  449. // console.log(this.sdate);
  450. // this.rightdata.forEach(item=>{
  451. // })
  452. }
  453. },
  454. //右侧双击移动删除
  455. rightdelite(item, index) {
  456. this.isdislob = false;
  457. this.rightdata.splice(this.num, 1);
  458. this.ites.push(item);
  459. this.isdislob = false;
  460. this.updatedate();
  461. },
  462. //右侧点击选中
  463. rightindex(item, index) {
  464. this.nums = index;
  465. this.leftobj = item;
  466. this.isdislob = false;
  467. console.log(this.leftobj);
  468. },
  469. //左侧双击事件
  470. shuanji(item, index) {
  471. this.ites.splice(index, 1);
  472. this.rightdata.push(item);
  473. this.isdislob = false;
  474. },
  475. //右移动
  476. removeright() {
  477. if (this.rightdata.length > 0) {
  478. this.rightdata.splice(this.num, 1);
  479. this.ites.push(this.leftobj);
  480. this.isdislob = false;
  481. this.updatedate();
  482. }
  483. },
  484. clickPaixu(item, index) {
  485. console.log(item);
  486. this.rightobj = item;
  487. // let arr = [];
  488. // arr.push({ itemId: this.rightobj.id });
  489. // this.allid.forEach((item) => {
  490. // if (item.id == arr[id]) {
  491. // return;
  492. // } else {
  493. // this.allid.push({ id: arr[id] });
  494. // }
  495. // });
  496. console.log(this.allid);
  497. this.ischank = 2;
  498. this.num = index;
  499. this.isdislob = false;
  500. },
  501. //科室选择
  502. ischangs(v) {
  503. itemtypeid(v).then((res) => {
  504. this.ites = res.data;
  505. let dq = res.data;
  506. if (dq.length > 0) {
  507. dq.forEach((element) => {
  508. let bb = { displayName: element.displayName, id: element.id };
  509. this.ites.push(bb);
  510. });
  511. }
  512. });
  513. },
  514. // 获取项目类别接口
  515. posjectlist() {
  516. projectlist().then((res) => {
  517. console.log(res);
  518. this.projectid = res.data;
  519. });
  520. },
  521. handlechang(value, direction, movedkeys) {
  522. console.log(value);
  523. console.log(direction);
  524. console.log(movedkeys);
  525. },
  526. //取消按钮
  527. cancellation() {
  528. this.$message.info("取消操作");
  529. this.isshow = true;
  530. this.getlist();
  531. },
  532. //确定排序
  533. assertion() {
  534. const result = [];
  535. this.tableData.forEach((item, index) => {
  536. // index 从0开始的, 你的displayOrder从大到小排
  537. console.log(item.id);
  538. // const currentDisplayOrder = this.tableData.length -1
  539. const currentDisplayOrder = this.initTableData[index].displayOrder;
  540. if (item.displayOrder != currentDisplayOrder) {
  541. // 如果它的displayOrder和它当前所在的位置不同代表挪动过位置
  542. result.push({ id: item.id, displayOrder: currentDisplayOrder });
  543. }
  544. });
  545. // console.log('assertion', result);
  546. barcodedraganddrop({ itemList: result }).then((res) => {
  547. this.$message.success("操作成功");
  548. this.isshow = true;
  549. this.getlist();
  550. });
  551. },
  552. //初始化
  553. rowDrop() {
  554. this.$nextTick(() => {
  555. const tbody = document.querySelector(".el-table__body-wrapper tbody");
  556. const _this = this;
  557. Sortable.create(tbody, {
  558. handle: ".move",
  559. animation: 300,
  560. // 指定父元素下可被拖拽的子元素
  561. // draggable: ".module-manager .el-table__row",
  562. onEnd({ newIndex, oldIndex }) {
  563. // console.log(arr);
  564. _this.isshow = false;
  565. const currRow = _this.tableData.splice(oldIndex, 1)[0];
  566. _this.tableData.splice(newIndex, 0, currRow);
  567. _this.tableData.map((item, index) => {
  568. if (index == newIndex && index == oldIndex) {
  569. // console.log(item, "新数据");
  570. } else if (index == oldIndex) {
  571. } else if (index == newIndex) {
  572. }
  573. });
  574. console.log(_this.tableData.map((item) => item.displayOrder));
  575. },
  576. });
  577. });
  578. },
  579. //置底
  580. setlow() {
  581. this.form = { ...this.curRow };
  582. if (this.form.id == undefined) {
  583. this.$message.warning("请选择操作的数据");
  584. } else {
  585. barcodedetopbottom(this.form.id, 2).then((res) => {
  586. console.log(res, "3333");
  587. this.getlist();
  588. this.$message.success("操作成功");
  589. });
  590. }
  591. },
  592. //置顶
  593. topping() {
  594. this.form = { ...this.curRow };
  595. if (this.form.id == undefined) {
  596. this.$message.warning("请选择操作的数据");
  597. } else {
  598. barcodedetopbottom(this.form.id, 1).then((res) => {
  599. this.$message.success("操作成功");
  600. this.getlist();
  601. });
  602. }
  603. },
  604. //删除
  605. deleteid() {
  606. this.form = { ...this.curRow };
  607. if (this.form.id == undefined) {
  608. this.$message.warning("请选择操作的数据");
  609. } else {
  610. barcodedeleteid(this.form.id).then((res) => {
  611. console.log(res);
  612. this.$message.success("删除成功");
  613. this.getlist();
  614. });
  615. }
  616. },
  617. //编辑弹框
  618. editreport() {
  619. this.form = { ...this.curRow };
  620. if (this.form.id == undefined) {
  621. this.$message.warning("请选择操作的数据");
  622. } else {
  623. this.dialogVisible = true;
  624. this.title = 2;
  625. //获取标本类型id
  626. specimenlist(this.pages).then((res) => {
  627. this.sampleTypeId = res.data.items;
  628. });
  629. // 获取标本容器Id
  630. containerlist(this.pages).then((res) => {
  631. this.sampleContainerId = res.data.items;
  632. });
  633. samplegropid(this.form.id).then((res) => {
  634. this.form = res.data;
  635. });
  636. }
  637. },
  638. //确定新增或者编辑
  639. addoredit() {
  640. this.$refs.form.validate((v) => {
  641. if (v) {
  642. if (this.title == 1) {
  643. samplegroup({
  644. displayName: this.form.displayName,
  645. sampleTypeId: this.form.sampleTypeId,
  646. sampleContainerId: this.form.sampleContainerId,
  647. }).then((res) => {
  648. this.$message.success("新增成功");
  649. this.getlist();
  650. this.dialogVisible = false;
  651. });
  652. } else if (this.title == 2) {
  653. barcodeediting(this.form.id, {
  654. displayName: this.form.displayName,
  655. sampleTypeId: this.form.sampleTypeId,
  656. sampleContainerId: this.form.sampleContainerId,
  657. }).then((res) => {
  658. this.$message.success("修改成功");
  659. this.dialogVisible = false;
  660. this.getlist();
  661. });
  662. }
  663. }
  664. });
  665. },
  666. //新增弹框
  667. addll() {
  668. this.dialogVisible = true;
  669. this.title = 1;
  670. this.form = {};
  671. this.$nextTick(() => {
  672. this.$refs.refinput.focus();
  673. });
  674. //获取标本类型id
  675. specimenlist(this.pages).then((res) => {
  676. this.sampleTypeId = res.data.items;
  677. console.log(res);
  678. });
  679. // 获取标本容器Id
  680. containerlist(this.pages).then((res) => {
  681. this.sampleContainerId = res.data.items;
  682. console.log(res, "11111");
  683. });
  684. },
  685. rowick(row) {
  686. samplegropid(row.id).then((res) => {
  687. this.curRow = { ...res.data };
  688. this.form = res.data;
  689. });
  690. sampleasbitemid(row.id).then((res) => {
  691. let dq = res.data;
  692. if (dq.length > 0) {
  693. this.rightdata = [];
  694. dq.forEach((element) => {
  695. let bb = { displayName: element.displayName, id: element.id };
  696. this.rightdata.push(bb);
  697. });
  698. }
  699. // this.rightdata = res.data;
  700. // console.log(res);
  701. });
  702. },
  703. getlist() {
  704. this.loading = true;
  705. groupinglist(this.pages).then((res) => {
  706. this.loading = false;
  707. this.tableData = res.data.items;
  708. this.initTableData = [...res.data.items];
  709. console.log(res);
  710. });
  711. },
  712. //ary1 需要追加的数据 ary2目标数组
  713. updatedate() {
  714. this.ary1.forEach((item) => {
  715. let iscz = false;
  716. this.ary2.forEach((item2) => {
  717. if (item2.id == item.id) {
  718. iscz = true;
  719. }
  720. });
  721. if (!iscz) {
  722. console.log(item.id);
  723. this.ary2.push(item);
  724. // this.allid.push({ id: item.id });
  725. }
  726. });
  727. },
  728. },
  729. };
  730. </script>
  731. <style scoped>
  732. .intermediatesubject {
  733. /* width: 100%; */
  734. display: flex;
  735. justify-content: center;
  736. }
  737. .confirmcancellation {
  738. margin-left: 50%;
  739. }
  740. .Selectbutton {
  741. margin-left: 3%;
  742. }
  743. .activetext {
  744. background: rgb(185, 203, 235);
  745. }
  746. .weixuan {
  747. text-align: center;
  748. line-height: 20px;
  749. background: rgb(185, 203, 235);
  750. }
  751. .leftbox {
  752. width: 200px;
  753. height: 240px;
  754. border: 1px solid #ccc;
  755. margin-left: 6%;
  756. overflow-x: hidden;
  757. overflow-y: scroll;
  758. }
  759. .instrumentcategory {
  760. width: 100%;
  761. display: flex;
  762. justify-content: center;
  763. /* margin-left: 15%; */
  764. }
  765. .el-card__body {
  766. height: 700px;
  767. }
  768. .box {
  769. display: flex;
  770. }
  771. </style>