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.

775 lines
23 KiB

2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 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. width="100%" height="350px"
  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. >
  15. <el-table-column prop="id" label="编号" width="300">
  16. </el-table-column>
  17. <el-table-column prop="displayName" label="名称"> </el-table-column>
  18. <el-table-column prop="createUserName" label="创建者">
  19. </el-table-column>
  20. <el-table-column prop="creationTime" label="创建时间" width="180">
  21. <template slot-scope="scope">
  22. {{ scope.row.creationTime | dateFormat }}
  23. </template>
  24. </el-table-column>
  25. <el-table-column prop="lastModifierName" label="修改者">
  26. </el-table-column>
  27. <el-table-column
  28. prop="lastModificationTime"
  29. label="修改时间"
  30. width="180"
  31. >
  32. <template slot-scope="scope">
  33. {{ scope.row.lastModificationTime | dateFormat }}
  34. </template>
  35. </el-table-column>
  36. <el-table-column label="操作" width="">
  37. <template>
  38. <el-tag
  39. class="move"
  40. style="cursor: move; margin-left: 15px"
  41. draggable="true"
  42. >
  43. <i
  44. class="el-icon-d-caret"
  45. style="width: 1rem; height: 1rem"
  46. ></i>
  47. </el-tag>
  48. </template>
  49. </el-table-column>
  50. </el-table>
  51. <!-- 新增弹框 -->
  52. <el-dialog
  53. :title="title == 1 ? '新增' : '修改'"
  54. :visible.sync="dialogVisible"
  55. width="53%"
  56. :close-on-click-modal="false"
  57. >
  58. <el-form ref="form" :model="form" label-width="80px" :rules="rules">
  59. <el-row>
  60. <el-col :span="12">
  61. <el-form-item label="编号">
  62. <el-input v-model="form.id" disabled></el-input>
  63. </el-form-item>
  64. </el-col>
  65. <el-col :span="12">
  66. <el-form-item label="名称" prop="displayName">
  67. <el-input
  68. v-model="form.displayName"
  69. ref="refinput"
  70. ></el-input>
  71. </el-form-item>
  72. </el-col>
  73. <el-col :span="12">
  74. <el-form-item label="标本类型" prop="sampleTypeId">
  75. <el-select v-model="form.sampleTypeId" placeholder="请选择">
  76. <el-option
  77. v-for="item in sampleTypeId"
  78. :key="item.id"
  79. :label="item.displayName"
  80. :value="item.id"
  81. >
  82. </el-option>
  83. </el-select>
  84. </el-form-item>
  85. </el-col>
  86. <el-col :span="12">
  87. <el-form-item label="标本容器" prop="sampleContainerId">
  88. <el-select
  89. v-model="form.sampleContainerId"
  90. placeholder="请选择"
  91. >
  92. <el-option
  93. v-for="item in sampleContainerId"
  94. :key="item.id"
  95. :label="item.displayName"
  96. :value="item.id"
  97. >
  98. </el-option>
  99. </el-select>
  100. </el-form-item>
  101. </el-col>
  102. </el-row>
  103. <el-row>
  104. <el-col :span="6">
  105. <el-form-item label="创建者">
  106. <el-input v-model="form.creatorName" disabled></el-input>
  107. </el-form-item>
  108. </el-col>
  109. <el-col :span="6">
  110. <el-form-item label="创建时间">
  111. <el-input :value="form.creationTime" disabled></el-input>
  112. </el-form-item>
  113. </el-col>
  114. <el-col :span="6">
  115. <el-form-item label="修改者">
  116. <el-input v-model="form.lastModifierName" disabled></el-input>
  117. </el-form-item>
  118. </el-col>
  119. <el-col :span="6">
  120. <el-form-item label="修改时间">
  121. <el-input
  122. :value="form.lastModificationTime"
  123. disabled
  124. ></el-input>
  125. </el-form-item>
  126. </el-col>
  127. </el-row>
  128. </el-form>
  129. <span slot="footer" class="dialog-footer">
  130. <el-button @click="dialogVisible = false"> </el-button>
  131. <el-button type="primary" @click="addoredit"> </el-button>
  132. </span>
  133. </el-dialog>
  134. <div style="margin-top: 20px" class="intermediatesubject">
  135. <div>
  136. <span style="margin-top: 10px; padding: 5px">项目类别</span>
  137. <el-select
  138. v-model="values"
  139. placeholder="请选择"
  140. @change="ischangs"
  141. style="margin-top: 5px"
  142. >
  143. <el-option
  144. v-for="item in projectid"
  145. :key="item.id"
  146. :label="item.displayName"
  147. :value="item.id"
  148. >
  149. </el-option>
  150. </el-select>
  151. </div>
  152. <!-- -->
  153. <span style="margin-left: 10%; padding: 5px; margin-top: 10px"
  154. >搜索选择</span
  155. >
  156. <el-select
  157. value-key="id"
  158. filterable
  159. v-model="flitvalues"
  160. placeholder="请选择"
  161. style="margin-top: 5px"
  162. @change="selectchange"
  163. >
  164. <el-option
  165. v-for="item in filetelists"
  166. :key="item.id"
  167. :label="item.displayName"
  168. :value="item"
  169. >
  170. </el-option>
  171. </el-select>
  172. </div>
  173. <!-- 111 -->
  174. <div style="display: flex; padding: 10px">
  175. <div class="instrumentcategory">
  176. <div class="leftbox">
  177. <div class="weixuan">未选项目</div>
  178. <div
  179. v-for="(item, index) in ites"
  180. :key="index"
  181. @click="clickPaixu(item, index)"
  182. @dblclick="shuanji(item, index)"
  183. :class="num === index ? 'activetext' : ''"
  184. style=""
  185. >
  186. <div>{{ item.displayName }}</div>
  187. </div>
  188. </div>
  189. <div class="Selectbutton">
  190. <div style="margin-top: 10px">
  191. <el-button @click="addall"
  192. >全添加<i class="el-icon-caret-right"></i
  193. ><i class="el-icon-caret-right"></i
  194. ></el-button>
  195. </div>
  196. <div style="margin-top: 10px">
  197. <el-button @click="addobj" style="width: 111px"
  198. >添加<i class="el-icon-caret-right"></i>
  199. </el-button>
  200. </div>
  201. <div style="margin-top: 10px">
  202. <el-button @click="removeright" style="width: 111px"
  203. >移去<i class="el-icon-caret-left"></i>
  204. </el-button>
  205. </div>
  206. <div style="margin-top: 10px">
  207. <el-button @click="allclear"
  208. >全移去<i class="el-icon-caret-left"></i
  209. ><i class="el-icon-caret-left"></i>
  210. </el-button>
  211. </div>
  212. </div>
  213. <div class="leftbox" style="margin-left: 5%">
  214. <div class="weixuan">已选项目</div>
  215. <div
  216. v-for="(item, index) in rightdata"
  217. :key="index"
  218. @click="rightindex(item, index)"
  219. @dblclick="rightdelite(item, index)"
  220. :class="nums === index ? 'activetext' : ''"
  221. >
  222. <div>{{ item.displayName }}</div>
  223. </div>
  224. </div>
  225. </div>
  226. <div></div>
  227. </div>
  228. <!-- <el-transfer
  229. v-model="checked"
  230. :data="thetatabe"
  231. filterable
  232. :button-texts="['到左边', '到右边']"
  233. :titles="['已选', '未选']"
  234. :props="{ key: 'id', label: 'displayName' }"
  235. @change="handlechang"
  236. >
  237. </el-transfer> -->
  238. <div class="confirmcancellation">
  239. <el-button :disabled="isdislob" @click="Onsubmit">确定</el-button>
  240. <el-button :disabled="isdislob">取消</el-button>
  241. </div>
  242. </el-card>
  243. </div>
  244. <!-- 按钮区域 -->
  245. <div style="margin-left: 10px; margin-top: 4rem">
  246. <el-button type="primary" @click="addll">新增</el-button>
  247. <div style="margin-top: 10px">
  248. <el-button type="primary" @click="editreport">编辑</el-button>
  249. </div>
  250. <div style="margin-top: 10px">
  251. <el-button type="danger" @click="deleteid">删除</el-button>
  252. </div>
  253. <div style="margin-top: 10px">
  254. <el-button type="primary" @click="topping">置顶</el-button>
  255. </div>
  256. <div style="margin-top: 10px">
  257. <el-button type="primary" @click="setlow">置底</el-button>
  258. </div>
  259. <div style="margin-top: 10px">
  260. <el-button type="primary" :disabled="isshow" @click="assertion"
  261. >排序</el-button
  262. >
  263. </div>
  264. <div style="margin-top: 10px">
  265. <el-button type="primary" :disabled="isshow" @click="cancellation"
  266. >取消</el-button
  267. >
  268. </div>
  269. </div>
  270. </div>
  271. </template>
  272. <script>
  273. import Sortable from "sortablejs";
  274. import {
  275. groupinglist,
  276. samplegroup,
  277. samplegropid,
  278. barcodeediting,
  279. barcodedeleteid,
  280. barcodedetopbottom,
  281. barcodedraganddrop,
  282. projectlist,
  283. itemtypeid,
  284. sampleasbitemid,
  285. asbitmfilte,
  286. batchcreaion,
  287. } from "@/request/commonapi";
  288. import { specimenlist, containerlist } from "@/request/systemapi";
  289. export default {
  290. data() {
  291. return {
  292. rules: {
  293. displayName: [
  294. { required: true, message: "请输入活动名称", trigger: "blur" },
  295. ],
  296. sampleTypeId: [
  297. { required: true, message: "请选择标本类型", trigger: "change" },
  298. ],
  299. sampleContainerId: [
  300. { required: true, message: "请选择标本容器", trigger: "change" },
  301. ],
  302. },
  303. isdislob: true,
  304. filetelists: [],
  305. flitvalues: [],
  306. checked: [],
  307. tableHeight: window.innerHeight - 500, //表格动态高度
  308. screenHeight: window.innerHeight, //内容区域高度
  309. isshow: true,
  310. form: {
  311. displayName: "",
  312. sampleTypeId: "",
  313. sampleContainerId: "",
  314. },
  315. dialogVisible: false,
  316. title: 1,
  317. loading: false,
  318. pages: {
  319. SkipCount: 0,
  320. MaxResultCount: 100,
  321. Sorting: "displayOrder desc",
  322. },
  323. tableData: [],
  324. initTableData: [],
  325. sampleTypeId: [], //标本类型id
  326. sampleContainerId: [], //标本容器id
  327. projectid: [],
  328. ites: [], //左侧框数据
  329. rightdata: [], //右侧数据
  330. num: "",
  331. nums: "",
  332. values: "",
  333. rightobj: {},
  334. leftobj: {},
  335. ischank: 1,
  336. filete: {
  337. Filter: "",
  338. },
  339. ary1: [],
  340. ary2: [],
  341. sdate: [],
  342. curRow: {},
  343. };
  344. },
  345. created() {
  346. this.getlist();
  347. this.posjectlist();
  348. this.getasbitem();
  349. },
  350. mounted() {
  351. this.rowDrop();
  352. window.onresize = () => {
  353. return (() => {
  354. // window.innerHeight:浏览器的可用高度
  355. window.screenHeight = window.innerHeight;
  356. this.screenHeight = window.screenHeight;
  357. })();
  358. };
  359. },
  360. watch: {
  361. // 监听screenHeight从而改变table的高度
  362. // screenHeight(val) {
  363. // this.screenHeight = val;
  364. // this.tableHeight = this.screenHeight - 220;
  365. // },
  366. },
  367. methods: {
  368. selectchange(v) {
  369. console.log(v);
  370. this.rightdata.push({ displayName: v.displayName });
  371. // console.log(v);
  372. },
  373. Onsubmit() {
  374. let sampleGroupId = this.form.id;
  375. console.log(this.form.id);
  376. console.log(this.rightdata);
  377. let sdate = [];
  378. this.rightdata.forEach((element) => {
  379. let sss = { sampleGroupId: sampleGroupId, asbitemId: element.id };
  380. sdate.push(sss);
  381. });
  382. this.ites.forEach((element) => {
  383. let sss = { sampleGroupId: sampleGroupId, asbitemId: element.id };
  384. sdate.push(sss);
  385. });
  386. console.log(sdate);
  387. if (sampleGroupId == undefined) {
  388. this.$message.warning("请选择列表");
  389. } else {
  390. batchcreaion(sdate).then((res) => {
  391. if (res.code == 0) {
  392. this.$message.success("操作成功");
  393. }
  394. this.isdislob = true;
  395. });
  396. }
  397. },
  398. // 获取组合项目列表带搜索
  399. getasbitem() {
  400. asbitmfilte(this.filete).then((res) => {
  401. this.filetelists = res.data.items;
  402. console.log(res, "res");
  403. });
  404. },
  405. //全添加
  406. addall() {
  407. this.isdislob = false;
  408. if (this.ites.length > 0) {
  409. this.ary1 = this.ites;
  410. this.ary2 = this.rightdata;
  411. this.updatedate();
  412. this.ites = [];
  413. // this.ites.forEach((item) => {
  414. // let iscz = false;
  415. // this.rightdata.forEach((item2) => {
  416. // if (item2.id == item.id) {
  417. // iscz = true;
  418. // }
  419. // });
  420. // if (!iscz) {
  421. // console.log(item.id);
  422. // this.rightdata.push(item);
  423. // // this.allid.push({ id: item.id });
  424. // }
  425. // });
  426. // this.ites = [];
  427. // console.log(this.allid);
  428. }
  429. },
  430. //q全移去
  431. allclear() {
  432. this.isdislob = false;
  433. if (this.rightdata.length > 0) {
  434. this.ary1 = this.rightdata;
  435. this.ary2 = this.ites;
  436. this.updatedate();
  437. this.rightdata = [];
  438. }
  439. },
  440. //左侧添加按钮
  441. addobj() {
  442. if (this.ites.length > 0) {
  443. this.isdislob = false;
  444. this.ites.splice(this.num, 1);
  445. this.rightdata.push(this.rightobj);
  446. // this.sdate.push({ id: this.leftobj.id });
  447. this.updatedate();
  448. // console.log(this.sdate);
  449. // this.rightdata.forEach(item=>{
  450. // })
  451. }
  452. },
  453. //右侧双击移动删除
  454. rightdelite(item, index) {
  455. this.isdislob = false;
  456. this.rightdata.splice(this.num, 1);
  457. this.ites.push(item);
  458. this.isdislob = false;
  459. this.updatedate();
  460. },
  461. //右侧点击选中
  462. rightindex(item, index) {
  463. this.nums = index;
  464. this.leftobj = item;
  465. this.isdislob = false;
  466. console.log(this.leftobj);
  467. },
  468. //左侧双击事件
  469. shuanji(item, index) {
  470. this.ites.splice(index, 1);
  471. this.rightdata.push(item);
  472. this.isdislob = false;
  473. },
  474. //右移动
  475. removeright() {
  476. if (this.rightdata.length > 0) {
  477. this.rightdata.splice(this.num, 1);
  478. this.ites.push(this.leftobj);
  479. this.isdislob = false;
  480. this.updatedate();
  481. }
  482. },
  483. clickPaixu(item, index) {
  484. console.log(item);
  485. this.rightobj = item;
  486. // let arr = [];
  487. // arr.push({ itemId: this.rightobj.id });
  488. // this.allid.forEach((item) => {
  489. // if (item.id == arr[id]) {
  490. // return;
  491. // } else {
  492. // this.allid.push({ id: arr[id] });
  493. // }
  494. // });
  495. console.log(this.allid);
  496. this.ischank = 2;
  497. this.num = index;
  498. this.isdislob = false;
  499. },
  500. //科室选择
  501. ischangs(v) {
  502. itemtypeid(v).then((res) => {
  503. this.ites = res.data;
  504. this.ites[1] = {};
  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>