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.

1010 lines
31 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
  1. <template>
  2. <div class="box">
  3. <div style="width: 95%">
  4. <el-card>
  5. <el-table
  6. :data="tableData"
  7. style="width: 100%"
  8. row-key="id"
  9. height="240"
  10. class="el-table__body-wrapper tbody"
  11. @row-click="rowick"
  12. highlight-current-row
  13. >
  14. <el-table-column prop="id" label="id" width="300"> </el-table-column>
  15. <el-table-column prop="displayName" label="名称" width="">
  16. </el-table-column>
  17. <el-table-column prop="creatorName" label="创建者" width="">
  18. </el-table-column>
  19. <el-table-column prop="lastModifierName" label="修改者" width="">
  20. </el-table-column>
  21. <el-table-column prop="creationTime" label="创建时间" width="200">
  22. <template slot-scope="scope">
  23. {{ scope.row.creationTime | dateFormat }}
  24. </template>
  25. </el-table-column>
  26. <el-table-column
  27. prop="lastModificationTime"
  28. label="修改时间"
  29. width="200"
  30. >
  31. <template slot-scope="scope">
  32. {{ scope.row.lastModificationTime | dateFormat }}
  33. </template>
  34. </el-table-column>
  35. <el-table-column label="操作">
  36. <template>
  37. <el-tag
  38. class="move"
  39. style="cursor: move; margin-left: 15px"
  40. draggable="true"
  41. >
  42. <i
  43. class="el-icon-d-caret"
  44. style="width: 1rem; height: 1rem"
  45. ></i>
  46. </el-tag>
  47. </template>
  48. </el-table-column>
  49. </el-table>
  50. <!-- 新增或者编辑弹框 -->
  51. <el-dialog
  52. :title="title == 1 ? '新增' : '编辑'"
  53. :visible.sync="dialogVisible"
  54. width="50%"
  55. @close="bindidclose"
  56. >
  57. <el-form
  58. :model="form"
  59. :rules="rules"
  60. ref="ruleForm"
  61. label-width="100px"
  62. >
  63. <el-row>
  64. <el-col :span="8">
  65. <el-form-item label="名称" prop="displayName">
  66. <el-input v-model="form.displayName"></el-input>
  67. </el-form-item>
  68. </el-col>
  69. <el-col :span="8">
  70. <el-form-item label="简称" prop="shortName">
  71. <el-input v-model="form.shortName"></el-input>
  72. </el-form-item>
  73. </el-col>
  74. <el-col :span="8">
  75. <el-form-item label="适用性别" prop="forSexId">
  76. <el-select v-model="form.forSexId" placeholder="请选择">
  77. <el-option
  78. v-for="item in forSexId"
  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="8">
  88. <el-form-item label="项目类别" prop="itemTypeId">
  89. <el-select v-model="form.itemTypeId" placeholder="请选择">
  90. <el-option
  91. v-for="item in itemTypeId"
  92. :key="item.id"
  93. :label="item.displayName"
  94. :value="item.id"
  95. >
  96. </el-option>
  97. </el-select>
  98. </el-form-item>
  99. </el-col>
  100. <el-col :span="8">
  101. <el-form-item label="价格" prop="price">
  102. <el-input v-model="form.price"></el-input>
  103. </el-form-item>
  104. </el-col>
  105. <el-col :span="8">
  106. <el-form-item label="仪器类别" prop="deviceTypeId">
  107. <el-select v-model="form.deviceTypeId" placeholder="请选择">
  108. <el-option
  109. v-for="item in deviceTypeId"
  110. :key="item.id"
  111. :label="item.displayName"
  112. :value="item.id"
  113. >
  114. </el-option>
  115. </el-select>
  116. </el-form-item>
  117. </el-col>
  118. <el-col :span="8">
  119. <el-form-item label="发票类别" prop="invoiceItemTypeId">
  120. <el-select
  121. v-model="form.invoiceItemTypeId"
  122. placeholder="请选择"
  123. >
  124. <el-option
  125. v-for="item in invoiceItemTypeId"
  126. :key="item.id"
  127. :label="item.displayName"
  128. :value="item.id"
  129. >
  130. </el-option>
  131. </el-select>
  132. </el-form-item>
  133. </el-col>
  134. <el-col :span="8">
  135. <el-form-item
  136. label="项目结果合并"
  137. prop="isItemResultMerger"
  138. label-width="110px"
  139. >
  140. <el-select
  141. v-model="form.isItemResultMerger"
  142. placeholder="请选择"
  143. >
  144. <el-option
  145. v-for="item in isItemResultMerger"
  146. :key="item.value"
  147. :label="item.label"
  148. :value="item.value"
  149. >
  150. </el-option>
  151. </el-select>
  152. </el-form-item>
  153. </el-col>
  154. <el-col :span="8">
  155. <el-form-item label="餐前项目" prop="isBeforeEat">
  156. <el-select v-model="form.isBeforeEat" placeholder="请选择">
  157. <el-option
  158. v-for="item in isBeforeEat"
  159. :key="item.value"
  160. :label="item.label"
  161. :value="item.value"
  162. >
  163. </el-option>
  164. </el-select>
  165. </el-form-item>
  166. </el-col>
  167. <el-col :span="8">
  168. <el-form-item label="临床意义" prop="">
  169. <el-input v-model="form.clinicalMeaning"></el-input>
  170. </el-form-item>
  171. </el-col>
  172. <el-col :span="8">
  173. <el-form-item label="默认结果" prop="">
  174. <el-input v-model="form.defaultResult"></el-input>
  175. </el-form-item>
  176. </el-col>
  177. <el-col :span="8">
  178. <el-form-item label="候诊时间" prop="queueTime">
  179. <el-input v-model="form.queueTime"></el-input>
  180. </el-form-item>
  181. </el-col>
  182. <el-col :span="8">
  183. <el-form-item label="启用诊断" prop="isDiagnosisFunction">
  184. <el-select
  185. v-model="form.isDiagnosisFunction"
  186. placeholder="请选择"
  187. >
  188. <el-option
  189. v-for="item in isDiagnosisFunction"
  190. :key="item.value"
  191. :label="item.label"
  192. :value="item.value"
  193. >
  194. </el-option>
  195. </el-select>
  196. </el-form-item>
  197. </el-col>
  198. <el-col :span="8">
  199. <el-form-item label="诊断函数" prop="diagnosisFunction">
  200. <el-input
  201. v-model="form.diagnosisFunction"
  202. maxlength="1"
  203. show-word-limit
  204. ></el-input>
  205. </el-form-item>
  206. </el-col>
  207. <el-col :span="8">
  208. <el-form-item
  209. label="函数处理完毕"
  210. prop="isContinueProcess"
  211. label-width="110px"
  212. >
  213. <el-select
  214. v-model="form.isContinueProcess"
  215. placeholder="请选择"
  216. >
  217. <el-option
  218. v-for="item in isContinueProcess"
  219. :key="item.value"
  220. :label="item.label"
  221. :value="item.value"
  222. >
  223. </el-option>
  224. </el-select>
  225. </el-form-item>
  226. </el-col>
  227. <el-col :span="8">
  228. <el-form-item label="体检报告" prop="isPictureRotate">
  229. <el-select
  230. v-model="form.isPictureRotate"
  231. placeholder="请选择"
  232. >
  233. <el-option
  234. v-for="item in isPictureRotate"
  235. :key="item.value"
  236. :label="item.label"
  237. :value="item.value"
  238. >
  239. </el-option>
  240. </el-select>
  241. </el-form-item>
  242. </el-col>
  243. <el-col :span="8">
  244. <el-form-item label="检查项目" prop="isCheck">
  245. <el-select v-model="form.isCheck" placeholder="请选择">
  246. <el-option
  247. v-for="item in isCheck"
  248. :key="item.value"
  249. :label="item.label"
  250. :value="item.value"
  251. >
  252. </el-option>
  253. </el-select>
  254. </el-form-item>
  255. </el-col>
  256. <el-col :span="8">
  257. <el-form-item label="启用" prop="isActive">
  258. <el-select v-model="form.isActive" placeholder="请选择">
  259. <el-option
  260. v-for="item in isActive"
  261. :key="item.value"
  262. :label="item.label"
  263. :value="item.value"
  264. >
  265. </el-option>
  266. </el-select>
  267. </el-form-item>
  268. </el-col>
  269. </el-row>
  270. </el-form>
  271. <span slot="footer" class="dialog-footer">
  272. <el-button @click="dialogVisible = false"> </el-button>
  273. <el-button type="primary" @click="addoredit"> </el-button>
  274. </span>
  275. </el-dialog>
  276. <span style="margin-top: 10px; padding: 5px; margin-left: 25.8%"
  277. >项目类别</span
  278. >
  279. <el-select
  280. v-model="values"
  281. placeholder="请选择"
  282. @change="ischangs"
  283. style="margin-top: 5px"
  284. >
  285. <el-option
  286. v-for="item in projectid"
  287. :key="item.id"
  288. :label="item.displayName"
  289. :value="item.id"
  290. >
  291. </el-option>
  292. </el-select>
  293. <span style="margin-left: 10%; padding: 5px">搜索选择</span>
  294. <el-select
  295. @change="selectitem"
  296. filterable
  297. v-model="flitvalues"
  298. placeholder="请选择"
  299. style="margin-top: 5px"
  300. >
  301. <el-option
  302. v-for="item in filetelists"
  303. :key="item.id"
  304. :label="item.displayName"
  305. :value="item.id"
  306. >
  307. </el-option>
  308. </el-select>
  309. <!--表单穿梭区域 -->
  310. <div class="mainbox">
  311. <div class="mainleftbox">
  312. <div class="weixuan">未选项目</div>
  313. <div
  314. v-for="(item, index) in leftdata"
  315. :key="index"
  316. @click="clickPaixu(item, index)"
  317. @dblclick="shuanji(item, index)"
  318. :class="num === index ? 'activetext' : ''"
  319. style=""
  320. >
  321. <div>{{ item.displayName }}</div>
  322. </div>
  323. </div>
  324. <div class="Selectbutton">
  325. <div style="margin-top: 10px">
  326. <el-button @click="addall"
  327. >全添加<i class="el-icon-caret-right"></i
  328. ><i class="el-icon-caret-right"></i
  329. ></el-button>
  330. </div>
  331. <div style="margin-top: 10px">
  332. <el-button @click="addobj" style="width: 111px"
  333. >添加<i class="el-icon-caret-right"></i>
  334. </el-button>
  335. </div>
  336. <div style="margin-top: 10px">
  337. <el-button @click="removeright" style="width: 111px"
  338. >移去<i class="el-icon-caret-left"></i>
  339. </el-button>
  340. </div>
  341. <div style="margin-top: 10px">
  342. <el-button @click="allclear"
  343. >全移去<i class="el-icon-caret-left"></i
  344. ><i class="el-icon-caret-left"></i>
  345. </el-button>
  346. </div>
  347. </div>
  348. <div class="mainleftbox">
  349. <div class="weixuan">已选项目</div>
  350. <div
  351. v-for="(item, index) in rightdata"
  352. :key="index"
  353. @click="rightindex(item, index)"
  354. @dblclick="rightdelite(item, index)"
  355. :class="nums === index ? 'activetext' : ''"
  356. >
  357. <div>{{ item.displayName }}</div>
  358. </div>
  359. </div>
  360. </div>
  361. <div class="confirmcancellation">
  362. <el-button :disabled="isdislob" @click="Onsubmit">确定</el-button>
  363. <el-button :disabled="isdislob">取消</el-button>
  364. </div>
  365. </el-card>
  366. </div>
  367. <!-- 按钮区域 -->
  368. <div style="margin-left: 10px; margin-top: 5%">
  369. <el-button type="primary" @click="addll">新增</el-button>
  370. <div style="margin-top: 10px">
  371. <el-button type="primary" @click="editpopup">编辑</el-button>
  372. </div>
  373. <div style="margin-top: 10px">
  374. <el-button type="danger" @click="deleteid">删除</el-button>
  375. </div>
  376. <div style="margin-top: 10px">
  377. <el-button type="primary" @click="topping">置顶</el-button>
  378. </div>
  379. <div style="margin-top: 10px">
  380. <el-button type="primary" @click="setlow">置底</el-button>
  381. </div>
  382. <div style="margin-top: 10px">
  383. <el-button type="primary" :disabled="isshow" @click="assertion"
  384. >排序</el-button
  385. >
  386. </div>
  387. <div style="margin-top: 10px">
  388. <el-button type="primary" :disabled="isshow" @click="cancellation"
  389. >取消</el-button
  390. >
  391. </div>
  392. </div>
  393. </div>
  394. </template>
  395. <script>
  396. import Sortable from "sortablejs";
  397. import { getapi, postapi } from "@/api/api";
  398. import { examinationgender, instrumentlist } from "@/request/systemapi";
  399. import {
  400. groupsandlist,
  401. projectlist,
  402. invoicetypelist,
  403. newcombination,
  404. asbitemgetid,
  405. updateombination,
  406. samplesetlow,
  407. deletescombinationprojectid,
  408. combination,
  409. } from "@/request/commonapi";
  410. export default {
  411. data() {
  412. return {
  413. isdislob: true,
  414. filetelists: [],
  415. flitvalues: [],
  416. num: 0,
  417. isshow: true,
  418. values: [],
  419. projectid: [],
  420. rules: {
  421. displayName: [
  422. { required: true, message: "请输入名称", trigger: "blur" },
  423. ],
  424. shortName: [{ required: true, message: "请输入简称", trigger: "blur" }],
  425. forSexId: [
  426. { required: true, message: "请选择适用性别", trigger: "blur" },
  427. ],
  428. itemTypeId: [
  429. { required: true, message: "请选择项目类别", trigger: "blur" },
  430. ],
  431. price: [{ required: true, message: "请输入价格", trigger: "blur" }],
  432. deviceTypeId: [
  433. { required: true, message: "请选择仪器类别", trigger: "blur" },
  434. ],
  435. invoiceItemTypeId: [
  436. { required: true, message: "请选择发票类别", trigger: "blur" },
  437. ],
  438. isItemResultMerger: [
  439. { required: true, message: "请选择项目结果", trigger: "blur" },
  440. ],
  441. isBeforeEat: [
  442. { required: true, message: "请选择餐前项目", trigger: "blur" },
  443. ],
  444. clinicalMeaning: [
  445. { required: true, message: "请输入临床意义", trigger: "blur" },
  446. ],
  447. defaultResult: [
  448. { required: true, message: "请输入默认结果", trigger: "blur" },
  449. ],
  450. queueTime: [
  451. { required: true, message: "请输入候诊时间", trigger: "blur" },
  452. ],
  453. isDiagnosisFunction: [
  454. { required: true, message: "请选择启用诊断函数", trigger: "blur" },
  455. ],
  456. diagnosisFunction: [
  457. { required: true, message: "请输入诊断函数", trigger: "blur" },
  458. ],
  459. isContinueProcess: [
  460. {
  461. required: true,
  462. message: "请选择诊断函数处理完毕后继续处理",
  463. trigger: "blur",
  464. },
  465. ],
  466. isPictureRotate: [
  467. { required: true, message: "请选择体检报告图片旋", trigger: "blur" },
  468. ],
  469. isCheck: [
  470. { required: true, message: "请选择是检查项目", trigger: "blur" },
  471. ],
  472. isActive: [
  473. { required: true, message: "请选择是否启用", trigger: "blur" },
  474. ],
  475. }, //表单校验对象
  476. form: {
  477. displayName: "",
  478. shortName: "",
  479. forSexId: "",
  480. itemTypeId: "",
  481. price: "",
  482. deviceTypeId: "",
  483. invoiceItemTypeId: "",
  484. isItemResultMerger: "",
  485. isBeforeEat: "",
  486. clinicalMeaning: "",
  487. defaultResult: "",
  488. queueTime: "",
  489. isDiagnosisFunction: "",
  490. diagnosisFunction: "",
  491. isContinueProcess: "",
  492. isPictureRotate: "",
  493. isCheck: "",
  494. isActive: "",
  495. },
  496. forSexId: [], //性别
  497. itemTypeId: [], //项目类别
  498. deviceTypeId: [], //仪器类别
  499. invoiceItemTypeId: [], //发票类别
  500. isItemResultMerger: [
  501. {
  502. value: "Y",
  503. label: "是",
  504. },
  505. {
  506. value: "N",
  507. label: "否",
  508. },
  509. ], //项目结果合并
  510. isBeforeEat: [
  511. {
  512. value: "Y",
  513. label: "是",
  514. },
  515. {
  516. value: "N",
  517. label: "否",
  518. },
  519. ], //餐前项目
  520. isDiagnosisFunction: [
  521. {
  522. value: "Y",
  523. label: "是",
  524. },
  525. {
  526. value: "N",
  527. label: "否",
  528. },
  529. ], //启用诊断函数
  530. isContinueProcess: [
  531. {
  532. value: "Y",
  533. label: "是",
  534. },
  535. {
  536. value: "N",
  537. label: "否",
  538. },
  539. ], //诊断函数处理完毕
  540. isContinueProcess: [
  541. {
  542. value: "Y",
  543. label: "是",
  544. },
  545. {
  546. value: "N",
  547. label: "否",
  548. },
  549. ], //诊断函数处理完毕后继续处理
  550. isPictureRotate: [
  551. {
  552. value: "Y",
  553. label: "是",
  554. },
  555. {
  556. value: "N",
  557. label: "否",
  558. },
  559. ], //体检报告图片旋转
  560. isCheck: [
  561. {
  562. value: "Y",
  563. label: "是",
  564. },
  565. {
  566. value: "N",
  567. label: "否",
  568. },
  569. ], //是检查项目
  570. isActive: [
  571. {
  572. value: "Y",
  573. label: "是",
  574. },
  575. {
  576. value: "N",
  577. label: "否",
  578. },
  579. ], //是否启用
  580. title: 1,
  581. dialogVisible: false,
  582. isshow: true,
  583. tableHeight: window.innerHeight - 180, //表格动态高度
  584. screenHeight: window.innerHeight, //内容区域高度
  585. pages: {
  586. Filter: "",
  587. SkipCount: 0,
  588. MaxResultCount: 100,
  589. Sorting: "displayOrder desc",
  590. },
  591. tableData: [],
  592. initTableData: [],
  593. leftdata: [],
  594. ary2: [],
  595. ary1: [],
  596. rightobj: {},
  597. rightdata: [],
  598. rightobj: {},
  599. nums: 0,
  600. itemid: "", //项目id
  601. };
  602. },
  603. created() {
  604. this.getlist();
  605. this.gitprojectcategory();
  606. },
  607. mounted() {
  608. this.rowDrop();
  609. this.gitfleslist();
  610. },
  611. methods: {
  612. gitfleslist() {
  613. getapi("/api/app/item").then((res) => {
  614. this.filetelists = res.data.items;
  615. console.log(res, "我是项目");
  616. });
  617. },
  618. //搜索选择
  619. selectitem(v) {
  620. this.itemid = v;
  621. },
  622. Onsubmit() {
  623. let sampleGroupId = this.form.id;
  624. console.log(sampleGroupId);
  625. let sdate = [];
  626. console.log(this.rightdata, "2222");
  627. let sss = { itemId: this.itemid, asbitemId: sampleGroupId };
  628. sdate.push(sss);
  629. // this.rightdata.forEach((element) => {
  630. // console.log('项目元素id',element.id);
  631. // console.log('组合项目id',sampleGroupId);
  632. // sdate.push(sss);
  633. // });
  634. // this.leftdata.forEach((element) => {
  635. // let sss = { sampleGroupId: sampleGroupId, asbitemId: element.id };
  636. // sdate.push(sss);
  637. // });
  638. // console.log(sdate);
  639. if (sampleGroupId == undefined) {
  640. this.$message.warning("请选择列表");
  641. } else if (this.itemid == "") {
  642. this.$message.warning("请选择项目");
  643. } else {
  644. postapi("/api/app/asbitem-detail/many", sdate).then((res) => {
  645. this.$message.success("操作成功");
  646. this.isdislob = true;
  647. });
  648. }
  649. },
  650. //右侧双击移动删除
  651. rightdelite(item, index) {
  652. this.isdislob = false;
  653. this.rightdata.splice(this.num, 1);
  654. this.leftdata.push(item);
  655. this.isdislob = true;
  656. this.updatedate();
  657. },
  658. //右侧点击选中
  659. rightindex(item, index) {
  660. this.nums = index;
  661. this.leftobj = item;
  662. console.log(this.leftobj);
  663. },
  664. //左侧添加按钮
  665. addobj() {
  666. if (this.leftdata.length > 0) {
  667. this.leftdata.splice(this.num, 1);
  668. this.rightdata.push(this.rightobj);
  669. this.isdislob = false;
  670. }
  671. },
  672. //右移动
  673. removeright() {
  674. if (this.rightdata.length > 0) {
  675. this.rightdata.splice(this.num, 1);
  676. this.leftdata.push(this.leftobj);
  677. this.isdislob = true;
  678. this.updatedate();
  679. }
  680. },
  681. //q全移去
  682. allclear() {
  683. this.isdislob = false;
  684. if (this.rightdata.length > 0) {
  685. this.ary1 = this.rightdata;
  686. this.ary2 = this.leftdata;
  687. this.updatedate();
  688. this.rightdata = [];
  689. }
  690. },
  691. //全添加
  692. addall() {
  693. this.isdislob = false;
  694. if (this.leftdata.length > 0) {
  695. this.ary1 = this.leftdata;
  696. this.ary2 = this.rightdata;
  697. this.updatedate();
  698. this.leftdata = [];
  699. }
  700. },
  701. //左侧双击事件
  702. shuanji(item, index) {
  703. console.log(item);
  704. this.leftdata.splice(index, 1);
  705. this.rightdata.push(item);
  706. },
  707. clickPaixu(item, index) {
  708. this.rightobj = item;
  709. this.num = index;
  710. console.log(this.num);
  711. },
  712. //获取项目类别 3a0b0b10-719f-5824-6956-8cb70f204013 /api/app/item-type/by-code-all
  713. gitprojectcategory() {
  714. getapi("/api/app/item-type/by-code-all").then((res) => {
  715. this.projectid = res.data;
  716. console.log("res项目类别", res);
  717. });
  718. },
  719. //ary1 需要追加的数据 ary2目标数组
  720. updatedate() {
  721. this.ary1.forEach((item) => {
  722. let iscz = false;
  723. this.ary2.forEach((item2) => {
  724. if (item2.id == item.id) {
  725. iscz = true;
  726. }
  727. });
  728. if (!iscz) {
  729. console.log(item.id);
  730. this.ary2.push(item);
  731. // this.allid.push({ id: item.id });
  732. }
  733. });
  734. },
  735. //项目类别选择
  736. ischangs(v) {
  737. console.log(v);
  738. //`/api/app/diagnosis/in-item-type/${v}`3a0c50b9-9621-61b7-fc93-1cfab1ec0478
  739. getapi(`/api/app/asbitem/in-item-type/${v}`).then((res) => {
  740. console.log(res);
  741. this.leftdata = res.data;
  742. });
  743. },
  744. bindidclose() {
  745. this.form = {};
  746. },
  747. rowDrop() {
  748. this.$nextTick(() => {
  749. const tbody = document.querySelector(".el-table__body-wrapper tbody");
  750. const _this = this;
  751. Sortable.create(tbody, {
  752. handle: ".move",
  753. animation: 300,
  754. onEnd({ newIndex, oldIndex }) {
  755. _this.isshow = false;
  756. const currRow = _this.tableData.splice(oldIndex, 1)[0];
  757. _this.tableData.splice(newIndex, 0, currRow);
  758. _this.tableData.map((item, index) => {
  759. if (index == newIndex && index == oldIndex) {
  760. } else if (index == oldIndex) {
  761. } else if (index == newIndex) {
  762. }
  763. });
  764. console.log(_this.tableData.map((item) => item.displayOrder));
  765. },
  766. });
  767. });
  768. },
  769. //取消按钮
  770. cancellation() {
  771. this.$message.info("操作取消");
  772. this.isshow = true;
  773. this.getlist();
  774. },
  775. //确定排序
  776. assertion() {
  777. const result = [];
  778. this.tableData.forEach((item, index) => {
  779. const currentDisplayOrder = this.initTableData[index].displayOrder;
  780. if (item.displayOrder != currentDisplayOrder) {
  781. result.push({ id: item.id, displayOrder: currentDisplayOrder });
  782. }
  783. });
  784. combination({ itemList: result }).then((res) => {
  785. this.$message.success("操作成功");
  786. this.isshow = true;
  787. this.getlist();
  788. });
  789. },
  790. //置底
  791. setlow() {
  792. if (this.form.id == undefined) {
  793. this.$message.warning("请选择操作的数据");
  794. } else {
  795. samplesetlow(this.form.id, 2).then((res) => {
  796. console.log(res, "3333");
  797. this.getlist();
  798. this.$message.success("操作成功");
  799. });
  800. }
  801. },
  802. //置顶
  803. topping() {
  804. if (this.form.id == undefined) {
  805. this.$message.warning("请选择操作的数据");
  806. } else {
  807. samplesetlow(this.form.id, 1).then((res) => {
  808. this.$message.success("操作成功");
  809. this.getlist();
  810. });
  811. }
  812. },
  813. //删除
  814. deleteid() {
  815. if (this.form.id == undefined) {
  816. this.$message.warning("请选择操作的数据");
  817. } else {
  818. deletescombinationprojectid(this.form.id).then((res) => {
  819. this.$message.success("删除成功");
  820. this.getlist();
  821. });
  822. }
  823. },
  824. //编辑弹框
  825. editpopup() {
  826. if (this.form.id == undefined) {
  827. this.$message.warning("请点击选择操作的数据");
  828. } else {
  829. this.dialogVisible = true;
  830. this.title = 2;
  831. asbitemgetid(this.form.id).then((res) => {
  832. this.form = res.data;
  833. });
  834. //性别
  835. examinationgender().then((res) => {
  836. this.forSexId = res.data;
  837. });
  838. //项目类别
  839. projectlist().then((res) => {
  840. this.itemTypeId = res.data;
  841. });
  842. //仪器类别
  843. instrumentlist().then((res) => {
  844. this.deviceTypeId = res.data.items;
  845. console.log(this.deviceTypeId);
  846. });
  847. //发票项目类别
  848. invoicetypelist().then((res) => {
  849. this.invoiceItemTypeId = res.data.items;
  850. });
  851. }
  852. },
  853. //确定新增或者编辑
  854. addoredit() {
  855. this.$refs.ruleForm.validate((v) => {
  856. if (v) {
  857. if (this.title == 1) {
  858. let obj = {
  859. displayName: this.form.displayName,
  860. shortName: this.form.shortName,
  861. forSexId: this.form.forSexId,
  862. itemTypeId: this.form.itemTypeId,
  863. price: Number(this.form.price),
  864. deviceTypeId: this.form.deviceTypeId,
  865. invoiceItemTypeId: this.form.invoiceItemTypeId,
  866. isItemResultMerger: this.form.isItemResultMerger,
  867. isBeforeEat: this.form.isBeforeEat,
  868. clinicalMeaning: this.form.clinicalMeaning,
  869. defaultResult: this.form.defaultResult,
  870. queueTime: this.form.queueTime,
  871. isDiagnosisFunction: this.form.isDiagnosisFunction,
  872. diagnosisFunction: this.form.diagnosisFunction,
  873. isContinueProcess: this.form.isContinueProcess,
  874. isPictureRotate: this.form.isPictureRotate,
  875. isCheck: this.form.isCheck,
  876. isActive: this.form.isActive,
  877. };
  878. newcombination(obj).then((res) => {
  879. this.$message.success("新增成功");
  880. this.getlist();
  881. this.form = {};
  882. this.dialogVisible = false;
  883. });
  884. } else if (this.title == 2) {
  885. let obj = {
  886. displayName: this.form.displayName,
  887. shortName: this.form.shortName,
  888. forSexId: this.form.forSexId,
  889. itemTypeId: this.form.itemTypeId,
  890. price: Number(this.form.price),
  891. deviceTypeId: this.form.deviceTypeId,
  892. invoiceItemTypeId: this.form.invoiceItemTypeId,
  893. isItemResultMerger: this.form.isItemResultMerger,
  894. isBeforeEat: this.form.isBeforeEat,
  895. clinicalMeaning: this.form.clinicalMeaning,
  896. defaultResult: this.form.defaultResult,
  897. queueTime: this.form.queueTime,
  898. isDiagnosisFunction: this.form.isDiagnosisFunction,
  899. diagnosisFunction: this.form.diagnosisFunction,
  900. isContinueProcess: this.form.isContinueProcess,
  901. isPictureRotate: this.form.isPictureRotate,
  902. isCheck: this.form.isCheck,
  903. isActive: this.form.isActive,
  904. };
  905. updateombination(this.form.id, obj).then((res) => {
  906. this.$message.success("修改成功");
  907. this.getlist();
  908. this.dialogVisible = false;
  909. });
  910. }
  911. }
  912. });
  913. },
  914. //新增弹框
  915. addll() {
  916. this.dialogVisible = true;
  917. this.title = 1;
  918. //性别
  919. examinationgender().then((res) => {
  920. console.log(res);
  921. this.forSexId = res.data;
  922. console.log(this.forSexId);
  923. });
  924. //项目类别
  925. projectlist().then((res) => {
  926. this.itemTypeId = res.data;
  927. });
  928. //仪器类别
  929. instrumentlist().then((res) => {
  930. this.deviceTypeId = res.data.items;
  931. });
  932. //发票项目类别
  933. invoicetypelist().then((res) => {
  934. this.invoiceItemTypeId = res.data.items;
  935. });
  936. },
  937. rowick(row) {
  938. asbitemgetid(row.id).then((res) => {
  939. this.form = res.data;
  940. });
  941. getapi(
  942. `/api/app/asbitem-detail/asbitem-detail-in-item?AsbitemId=${row.id}`
  943. ).then((res) => {
  944. this.rightdata = res.data;
  945. console.log(res, "右侧");
  946. let dq = res.data;
  947. if (dq.length > 0) {
  948. this.rightdata = [];
  949. dq.forEach((element) => {
  950. let bb = { displayName: element.displayName, id: element.id };
  951. this.rightdata.push(bb);
  952. });
  953. }
  954. });
  955. },
  956. getlist() {
  957. groupsandlist(this.pages).then((res) => {
  958. this.initTableData = [...res.data.items];
  959. this.tableData = res.data.items;
  960. console.log(res);
  961. });
  962. },
  963. },
  964. };
  965. </script>
  966. <style scoped>
  967. .mainleftbox {
  968. width: 200px;
  969. height: 240px;
  970. border: 1px solid #ccc;
  971. margin-left: 6%;
  972. }
  973. .Selectbutton {
  974. margin-left: 3%;
  975. }
  976. .mainbox {
  977. display: flex;
  978. justify-content: center;
  979. margin-top: 20px;
  980. }
  981. .weixuan {
  982. text-align: center;
  983. line-height: 20px;
  984. background: rgb(185, 203, 235);
  985. }
  986. .leftbox {
  987. width: 200px;
  988. height: 240px;
  989. border: 1px solid #ccc;
  990. }
  991. .instrumentcategory {
  992. width: 100%;
  993. display: flex;
  994. }
  995. .box {
  996. display: flex;
  997. }
  998. .confirmcancellation {
  999. margin-left: 45%;
  1000. }
  1001. .activetext {
  1002. background: rgb(185, 203, 235);
  1003. }
  1004. .weixuan {
  1005. text-align: center;
  1006. line-height: 20px;
  1007. background: rgb(185, 203, 235);
  1008. }
  1009. </style>