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.

1011 lines
31 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
2 years ago
3 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
2 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
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
3 years ago
3 years ago
2 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 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="clinicalMeaning">
  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="defaultResult">
  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: 19.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. }
  644. else {
  645. postapi("/api/app/asbitem-detail/many", sdate).then((res) => {
  646. this.$message.success("操作成功");
  647. this.isdislob = true;
  648. });
  649. }
  650. },
  651. //右侧双击移动删除
  652. rightdelite(item, index) {
  653. this.isdislob = false;
  654. this.rightdata.splice(this.num, 1);
  655. this.leftdata.push(item);
  656. this.isdislob = true;
  657. this.updatedate();
  658. },
  659. //右侧点击选中
  660. rightindex(item, index) {
  661. this.nums = index;
  662. this.leftobj = item;
  663. console.log(this.leftobj);
  664. },
  665. //左侧添加按钮
  666. addobj() {
  667. if (this.leftdata.length > 0) {
  668. this.leftdata.splice(this.num, 1);
  669. this.rightdata.push(this.rightobj);
  670. this.isdislob = false;
  671. }
  672. },
  673. //右移动
  674. removeright() {
  675. if (this.rightdata.length > 0) {
  676. this.rightdata.splice(this.num, 1);
  677. this.leftdata.push(this.leftobj);
  678. this.isdislob = true;
  679. this.updatedate();
  680. }
  681. },
  682. //q全移去
  683. allclear() {
  684. this.isdislob = false;
  685. if (this.rightdata.length > 0) {
  686. this.ary1 = this.rightdata;
  687. this.ary2 = this.leftdata;
  688. this.updatedate();
  689. this.rightdata = [];
  690. }
  691. },
  692. //全添加
  693. addall() {
  694. this.isdislob = false;
  695. if (this.leftdata.length > 0) {
  696. this.ary1 = this.leftdata;
  697. this.ary2 = this.rightdata;
  698. this.updatedate();
  699. this.leftdata = [];
  700. }
  701. },
  702. //左侧双击事件
  703. shuanji(item, index) {
  704. console.log(item);
  705. this.leftdata.splice(index, 1);
  706. this.rightdata.push(item);
  707. },
  708. clickPaixu(item, index) {
  709. this.rightobj = item;
  710. this.num = index;
  711. console.log(this.num);
  712. },
  713. //获取项目类别 3a0b0b10-719f-5824-6956-8cb70f204013 /api/app/item-type/by-code-all
  714. gitprojectcategory() {
  715. getapi("/api/app/item-type/by-code-all").then((res) => {
  716. this.projectid = res.data;
  717. console.log('res项目类别',res);
  718. });
  719. },
  720. //ary1 需要追加的数据 ary2目标数组
  721. updatedate() {
  722. this.ary1.forEach((item) => {
  723. let iscz = false;
  724. this.ary2.forEach((item2) => {
  725. if (item2.id == item.id) {
  726. iscz = true;
  727. }
  728. });
  729. if (!iscz) {
  730. console.log(item.id);
  731. this.ary2.push(item);
  732. // this.allid.push({ id: item.id });
  733. }
  734. });
  735. },
  736. //项目类别选择
  737. ischangs(v) {
  738. console.log(v);
  739. //`/api/app/diagnosis/in-item-type/${v}`3a0c50b9-9621-61b7-fc93-1cfab1ec0478
  740. getapi(`/api/app/asbitem/in-item-type/${v}`).then((res) => {
  741. console.log(res);
  742. this.leftdata = res.data;
  743. });
  744. },
  745. bindidclose() {
  746. this.form = {};
  747. },
  748. rowDrop() {
  749. this.$nextTick(() => {
  750. const tbody = document.querySelector(".el-table__body-wrapper tbody");
  751. const _this = this;
  752. Sortable.create(tbody, {
  753. handle: ".move",
  754. animation: 300,
  755. onEnd({ newIndex, oldIndex }) {
  756. _this.isshow = false;
  757. const currRow = _this.tableData.splice(oldIndex, 1)[0];
  758. _this.tableData.splice(newIndex, 0, currRow);
  759. _this.tableData.map((item, index) => {
  760. if (index == newIndex && index == oldIndex) {
  761. } else if (index == oldIndex) {
  762. } else if (index == newIndex) {
  763. }
  764. });
  765. console.log(_this.tableData.map((item) => item.displayOrder));
  766. },
  767. });
  768. });
  769. },
  770. //取消按钮
  771. cancellation() {
  772. this.$message.info("操作取消");
  773. this.isshow = true;
  774. this.getlist();
  775. },
  776. //确定排序
  777. assertion() {
  778. const result = [];
  779. this.tableData.forEach((item, index) => {
  780. const currentDisplayOrder = this.initTableData[index].displayOrder;
  781. if (item.displayOrder != currentDisplayOrder) {
  782. result.push({ id: item.id, displayOrder: currentDisplayOrder });
  783. }
  784. });
  785. combination({ itemList: result }).then((res) => {
  786. this.$message.success("操作成功");
  787. this.isshow = true;
  788. this.getlist();
  789. });
  790. },
  791. //置底
  792. setlow() {
  793. if (this.form.id == undefined) {
  794. this.$message.warning("请选择操作的数据");
  795. } else {
  796. samplesetlow(this.form.id, 2).then((res) => {
  797. console.log(res, "3333");
  798. this.getlist();
  799. this.$message.success("操作成功");
  800. });
  801. }
  802. },
  803. //置顶
  804. topping() {
  805. if (this.form.id == undefined) {
  806. this.$message.warning("请选择操作的数据");
  807. } else {
  808. samplesetlow(this.form.id, 1).then((res) => {
  809. this.$message.success("操作成功");
  810. this.getlist();
  811. });
  812. }
  813. },
  814. //删除
  815. deleteid() {
  816. if (this.form.id == undefined) {
  817. this.$message.warning("请选择操作的数据");
  818. } else {
  819. deletescombinationprojectid(this.form.id).then((res) => {
  820. this.$message.success("删除成功");
  821. this.getlist();
  822. });
  823. }
  824. },
  825. //编辑弹框
  826. editpopup() {
  827. if (this.form.id == undefined) {
  828. this.$message.warning("请点击选择操作的数据");
  829. } else {
  830. this.dialogVisible = true;
  831. this.title = 2;
  832. asbitemgetid(this.form.id).then((res) => {
  833. this.form = res.data;
  834. });
  835. //性别
  836. examinationgender().then((res) => {
  837. this.forSexId = res.data;
  838. });
  839. //项目类别
  840. projectlist().then((res) => {
  841. this.itemTypeId = res.data.items;
  842. });
  843. //仪器类别
  844. instrumentlist().then((res) => {
  845. this.deviceTypeId = res.data.items;
  846. console.log(this.deviceTypeId);
  847. });
  848. //发票项目类别
  849. invoicetypelist().then((res) => {
  850. this.invoiceItemTypeId = res.data.items;
  851. });
  852. }
  853. },
  854. //确定新增或者编辑
  855. addoredit() {
  856. this.$refs.ruleForm.validate((v) => {
  857. if (v) {
  858. if (this.title == 1) {
  859. let obj = {
  860. displayName: this.form.displayName,
  861. shortName: this.form.shortName,
  862. forSexId: this.form.forSexId,
  863. itemTypeId: this.form.itemTypeId,
  864. price: Number(this.form.price),
  865. deviceTypeId: this.form.deviceTypeId,
  866. invoiceItemTypeId: this.form.invoiceItemTypeId,
  867. isItemResultMerger: this.form.isItemResultMerger,
  868. isBeforeEat: this.form.isBeforeEat,
  869. clinicalMeaning: this.form.clinicalMeaning,
  870. defaultResult: this.form.defaultResult,
  871. queueTime: this.form.queueTime,
  872. isDiagnosisFunction: this.form.isDiagnosisFunction,
  873. diagnosisFunction: this.form.diagnosisFunction,
  874. isContinueProcess: this.form.isContinueProcess,
  875. isPictureRotate: this.form.isPictureRotate,
  876. isCheck: this.form.isCheck,
  877. isActive: this.form.isActive,
  878. };
  879. newcombination(obj).then((res) => {
  880. this.$message.success("新增成功");
  881. this.getlist();
  882. this.form = {};
  883. this.dialogVisible = false;
  884. });
  885. } else if (this.title == 2) {
  886. let obj = {
  887. displayName: this.form.displayName,
  888. shortName: this.form.shortName,
  889. forSexId: this.form.forSexId,
  890. itemTypeId: this.form.itemTypeId,
  891. price: Number(this.form.price),
  892. deviceTypeId: this.form.deviceTypeId,
  893. invoiceItemTypeId: this.form.invoiceItemTypeId,
  894. isItemResultMerger: this.form.isItemResultMerger,
  895. isBeforeEat: this.form.isBeforeEat,
  896. clinicalMeaning: this.form.clinicalMeaning,
  897. defaultResult: this.form.defaultResult,
  898. queueTime: this.form.queueTime,
  899. isDiagnosisFunction: this.form.isDiagnosisFunction,
  900. diagnosisFunction: this.form.diagnosisFunction,
  901. isContinueProcess: this.form.isContinueProcess,
  902. isPictureRotate: this.form.isPictureRotate,
  903. isCheck: this.form.isCheck,
  904. isActive: this.form.isActive,
  905. };
  906. updateombination(this.form.id, obj).then((res) => {
  907. this.$message.success("修改成功");
  908. this.getlist();
  909. this.dialogVisible = false;
  910. });
  911. }
  912. }
  913. });
  914. },
  915. //新增弹框
  916. addll() {
  917. this.dialogVisible = true;
  918. this.title = 1;
  919. //性别
  920. examinationgender().then((res) => {
  921. console.log(res);
  922. this.forSexId = res.data;
  923. console.log(this.forSexId);
  924. });
  925. //项目类别
  926. projectlist().then((res) => {
  927. this.itemTypeId = res.data;
  928. });
  929. //仪器类别
  930. instrumentlist().then((res) => {
  931. this.deviceTypeId = res.data.items;
  932. });
  933. //发票项目类别
  934. invoicetypelist().then((res) => {
  935. this.invoiceItemTypeId = res.data.items;
  936. });
  937. },
  938. rowick(row) {
  939. asbitemgetid(row.id).then((res) => {
  940. this.form = res.data;
  941. });
  942. getapi(
  943. `/api/app/asbitem-detail/asbitem-detail-in-item?AsbitemId=${row.id}`
  944. ).then((res) => {
  945. this.rightdata = res.data;
  946. console.log(res, "右侧");
  947. let dq = res.data;
  948. if (dq.length > 0) {
  949. this.rightdata = [];
  950. dq.forEach((element) => {
  951. let bb = { displayName: element.displayName, id: element.id };
  952. this.rightdata.push(bb);
  953. });
  954. }
  955. });
  956. },
  957. getlist() {
  958. groupsandlist(this.pages).then((res) => {
  959. this.initTableData = [...res.data.items];
  960. this.tableData = res.data.items;
  961. console.log(res);
  962. });
  963. },
  964. },
  965. };
  966. </script>
  967. <style scoped>
  968. .mainleftbox {
  969. width: 200px;
  970. height: 240px;
  971. border: 1px solid #ccc;
  972. margin-left: 6%;
  973. }
  974. .Selectbutton {
  975. margin-left: 3%;
  976. }
  977. .mainbox {
  978. display: flex;
  979. justify-content: center;
  980. margin-top: 20px;
  981. }
  982. .weixuan {
  983. text-align: center;
  984. line-height: 20px;
  985. background: rgb(185, 203, 235);
  986. }
  987. .leftbox {
  988. width: 200px;
  989. height: 240px;
  990. border: 1px solid #ccc;
  991. }
  992. .instrumentcategory {
  993. width: 100%;
  994. display: flex;
  995. }
  996. .box {
  997. display: flex;
  998. }
  999. .confirmcancellation {
  1000. margin-left: 45%;
  1001. }
  1002. .activetext {
  1003. background: rgb(185, 203, 235);
  1004. }
  1005. .weixuan {
  1006. text-align: center;
  1007. line-height: 20px;
  1008. background: rgb(185, 203, 235);
  1009. }
  1010. </style>