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.

1761 lines
54 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
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: 150%">
  4. <el-card>
  5. <el-row style="margin-top: 20px; margin-left: 15px">
  6. <el-col :span="4">
  7. <el-autocomplete
  8. class="inline-input"
  9. v-model="pages.Filter"
  10. :fetch-suggestions="querySearch"
  11. placeholder="请输入内容"
  12. @select="handleSelect"
  13. >
  14. <template slot-scope="{ item }">
  15. <div
  16. class="name"
  17. @click="selsearch(item.id, item.medicalConclusionTypeId)"
  18. >
  19. {{ item.displayName }}
  20. </div>
  21. </template></el-autocomplete
  22. >
  23. </el-col>
  24. <el-col :span="7" style="margin-left: 5%">
  25. <el-col :span="6" style="margin-top: 10px; margin-left: 10px"
  26. >类别选择</el-col
  27. >
  28. <el-select
  29. filterable
  30. v-model="Selectvalue"
  31. placeholder="请选择"
  32. @change="isselctvalue"
  33. >
  34. <el-option
  35. v-for="item in Selectacategory"
  36. :key="item.id"
  37. :label="item.displayName"
  38. :value="item.id"
  39. >
  40. </el-option>
  41. </el-select>
  42. </el-col>
  43. </el-row>
  44. <div style="display: flex">
  45. <div style="width: 15%; margin-top: 20px">
  46. <el-tree
  47. :data="itemTypeId"
  48. :props="treeprops"
  49. @node-click="treeclick"
  50. ></el-tree>
  51. </div>
  52. <div style="width: 85%">
  53. <el-table
  54. :data="tableData"
  55. style="width: 95%; height: 500px"
  56. row-key="id"
  57. class="el-table__body-wrapper tbody"
  58. highlight-current-row
  59. @row-click="rowick"
  60. ref="tableData"
  61. >
  62. <el-table-column prop="id" label="编号" width="300">
  63. </el-table-column>
  64. <el-table-column prop="displayName" label="名称" width="">
  65. </el-table-column>
  66. <el-table-column prop="creatorName" label="创建者" width="">
  67. </el-table-column>
  68. <el-table-column prop="creationTime" label="创建时间" width="200">
  69. <template slot-scope="scope">
  70. {{ scope.row.creationTime | dateFormat }}
  71. </template>
  72. </el-table-column>
  73. <el-table-column prop="lastModifierName" label="修改者" width="">
  74. </el-table-column>
  75. <el-table-column
  76. prop="lastModificationTime"
  77. label="修改时间"
  78. width="200"
  79. >
  80. <template slot-scope="scope">
  81. {{ scope.row.lastModificationTime | dateFormat }}
  82. </template>
  83. </el-table-column>
  84. <el-table-column
  85. label="结果类别"
  86. prop="resultTemplateTypeFlag"
  87. ></el-table-column>
  88. <el-table-column label="操作">
  89. <template>
  90. <el-tag
  91. class="move"
  92. style="cursor: move; margin-left: 15px"
  93. draggable="true"
  94. >
  95. <i
  96. class="el-icon-d-caret"
  97. style="width: 1rem; height: 1rem"
  98. ></i>
  99. </el-tag>
  100. </template>
  101. </el-table-column>
  102. </el-table>
  103. </div>
  104. </div>
  105. </el-card>
  106. </div>
  107. <el-dialog
  108. :title="title == 1 ? '新增' : '编辑'"
  109. :visible.sync="dialogVisible"
  110. width="70%"
  111. >
  112. <el-form ref="form" :model="form" label-width="110px" :rules="rules">
  113. <el-row>
  114. <el-col :span="8">
  115. <el-form-item label="名称" prop="displayName">
  116. <el-input v-model="form.displayName"></el-input>
  117. </el-form-item>
  118. </el-col>
  119. <el-col :span="8">
  120. <el-form-item label="英文缩写" prop="englishShortName">
  121. <el-input v-model="form.englishShortName"></el-input>
  122. </el-form-item>
  123. </el-col>
  124. <el-col :span="8">
  125. <el-form-item label="项目类别" prop="itemTypeId">
  126. <!-- <el-cascader
  127. v-model="form.itemTypeId"
  128. :options="itemTypeId"
  129. :props="props"
  130. :show-all-levels="false"
  131. >
  132. </el-cascader> -->
  133. <el-select
  134. v-model="form.itemTypeId"
  135. placeholder="请选择"
  136. style="width: 100%"
  137. >
  138. <el-option
  139. v-for="item in itemTypeId"
  140. :key="item.id"
  141. :label="item.displayName"
  142. :value="item.id"
  143. >
  144. </el-option>
  145. </el-select>
  146. </el-form-item>
  147. </el-col>
  148. <el-col :span="8">
  149. <el-form-item label="价格" prop="price">
  150. <el-input v-model="form.price"></el-input>
  151. </el-form-item>
  152. </el-col>
  153. <el-col :span="8">
  154. <el-form-item label="价表项目编码" prop="priceItemId">
  155. <el-select
  156. v-model="form.priceItemId"
  157. placeholder="请选择"
  158. style="width: 100%"
  159. >
  160. <el-option
  161. v-for="item in priceItemId"
  162. :key="item.id"
  163. :label="item.displayName"
  164. :value="item.id"
  165. >
  166. </el-option>
  167. </el-select>
  168. </el-form-item>
  169. </el-col>
  170. <el-col :span="8">
  171. <el-form-item label="单位" prop="">
  172. <el-select
  173. v-model="form.unitId"
  174. placeholder="请选择"
  175. style="width: 100%"
  176. >
  177. <el-option
  178. v-for="item in unitId"
  179. :key="item.id"
  180. :label="item.displayName"
  181. :value="item.id"
  182. >
  183. </el-option>
  184. </el-select>
  185. </el-form-item>
  186. </el-col>
  187. <el-col :span="8">
  188. <el-form-item label="默认结果" prop="defaultResult">
  189. <!-- <el-input v-model="form.defaultResult"></el-input> -->
  190. <el-select
  191. v-model="form.defaultResult"
  192. placeholder="请选择"
  193. style="width: 100%"
  194. >
  195. <el-option
  196. v-for="item in defaultResult"
  197. :key="item.value"
  198. :label="item.label"
  199. :value="item.value"
  200. >
  201. </el-option>
  202. </el-select>
  203. </el-form-item>
  204. </el-col>
  205. <el-col :span="8">
  206. <el-form-item label="参考范围类型" prop="referenceRangeTypeFlag">
  207. <el-select
  208. v-model="form.referenceRangeTypeFlag"
  209. placeholder="请选择"
  210. style="width: 100%"
  211. >
  212. <el-option
  213. v-for="item in referenceRangeTypeFlag"
  214. :key="item.value"
  215. :label="item.label"
  216. :value="item.value"
  217. >
  218. </el-option>
  219. </el-select>
  220. <!-- <el-input v-model="form.referenceRangeTypeFlag"></el-input> -->
  221. </el-form-item>
  222. </el-col>
  223. <el-col :span="8">
  224. <el-form-item label="生成小结" prop="isProduceSummary">
  225. <el-input v-model="form.isProduceSummary"></el-input>
  226. </el-form-item>
  227. </el-col>
  228. <el-col :span="8">
  229. <el-form-item label="名称进入小结" prop="isNameIntoSummary">
  230. <el-select
  231. v-model="form.isNameIntoSummary"
  232. placeholder="请选择"
  233. style="width: 100%"
  234. >
  235. <el-option
  236. v-for="item in isNameIntoSummary"
  237. :key="item.value"
  238. :label="item.label"
  239. :value="item.value"
  240. >
  241. </el-option>
  242. </el-select>
  243. </el-form-item>
  244. </el-col>
  245. <el-col :span="8">
  246. <el-form-item label="启用诊断函数" prop="isDiagnosisFunction">
  247. <el-select
  248. @change="enablediagnostics"
  249. v-model="form.isDiagnosisFunction"
  250. placeholder="请选择"
  251. style="width: 100%"
  252. >
  253. <el-option
  254. v-for="item in isDiagnosisFunction"
  255. :key="item.value"
  256. :label="item.label"
  257. :value="item.value"
  258. >
  259. </el-option>
  260. </el-select>
  261. </el-form-item>
  262. </el-col>
  263. <el-col :span="8">
  264. <el-form-item label="诊断函数" prop="diagnosisFunction">
  265. <el-input
  266. v-model="form.diagnosisFunction"
  267. :disabled="disableddiagnosisFunction"
  268. ></el-input>
  269. </el-form-item>
  270. </el-col>
  271. <el-col :span="8">
  272. <el-form-item label="是计算项目" prop="isCalculationItem">
  273. <el-select
  274. v-model="form.isCalculationItem"
  275. placeholder="请选择"
  276. style="width: 100%"
  277. >
  278. <el-option
  279. v-for="item in isCalculationItem"
  280. :key="item.value"
  281. :label="item.label"
  282. :value="item.value"
  283. >
  284. </el-option>
  285. </el-select>
  286. </el-form-item>
  287. </el-col>
  288. <el-col :span="8">
  289. <el-form-item label="计算函数" prop="">
  290. <el-input v-model="form.calculationFunction"></el-input>
  291. </el-form-item>
  292. </el-col>
  293. <el-col :span="8">
  294. <el-form-item label="继续处理" prop="isContinueProcess">
  295. <el-select
  296. v-model="form.isContinueProcess"
  297. placeholder="请选择"
  298. style="width: 100%"
  299. >
  300. <el-option
  301. v-for="item in isContinueProcess"
  302. :key="item.value"
  303. :label="item.label"
  304. :value="item.value"
  305. >
  306. </el-option>
  307. </el-select>
  308. </el-form-item>
  309. </el-col>
  310. <el-col :span="8">
  311. <el-form-item label="结果模板" prop="resultTemplateTypeFlag">
  312. <!-- <el-input v-model="form.resultTemplateTypeFlag">resulttemp</el-input> -->
  313. <el-select
  314. v-model="form.resultTemplateTypeFlag"
  315. placeholder="请选择"
  316. style="width: 100%"
  317. >
  318. <el-option
  319. v-for="item in resulttemp"
  320. :key="item.id"
  321. :label="item.result"
  322. :value="item.id"
  323. >
  324. </el-option>
  325. </el-select>
  326. </el-form-item>
  327. </el-col>
  328. <el-col :span="8">
  329. <el-form-item label="输入结果校验" prop="">
  330. <el-input v-model="form.inputCheck"></el-input>
  331. </el-form-item>
  332. </el-col>
  333. <el-col :span="8">
  334. <el-form-item label="启用" prop="isActive">
  335. <el-select
  336. v-model="form.isActive"
  337. placeholder="请选择"
  338. style="width: 100%"
  339. >
  340. <el-option
  341. v-for="item in isActive"
  342. :key="item.value"
  343. :label="item.label"
  344. :value="item.value"
  345. >
  346. </el-option>
  347. </el-select>
  348. </el-form-item>
  349. </el-col>
  350. </el-row>
  351. <!-- -->
  352. <el-divider></el-divider>
  353. <el-row>
  354. <el-col :span="5">
  355. <el-form-item label="创建者">
  356. <el-input v-model="form.creatorName" disabled></el-input>
  357. </el-form-item>
  358. </el-col>
  359. <el-col :span="7">
  360. <el-form-item label="创建时间" style="margin-left: -5%">
  361. <el-input
  362. :value="form.creationTime | dateFormat"
  363. disabled
  364. style="width: 90%"
  365. ></el-input>
  366. </el-form-item>
  367. </el-col>
  368. <el-col :span="5">
  369. <el-form-item label="修改者" style="margin-left: -25%">
  370. <el-input v-model="form.creatorName" disabled></el-input>
  371. </el-form-item>
  372. </el-col>
  373. <el-col :span="7">
  374. <el-form-item label="修改时间" style="margin-left: -5%">
  375. <el-input
  376. :value="form.lastModificationTime | dateFormat"
  377. disabled
  378. style="width: 90%"
  379. ></el-input>
  380. </el-form-item>
  381. </el-col>
  382. </el-row>
  383. </el-form>
  384. <span slot="footer" class="dialog-footer">
  385. <el-button @click="dialogVisible = false"> </el-button>
  386. <el-button type="primary" @click="Onsubmit"> </el-button>
  387. </span>
  388. </el-dialog>
  389. <!-- 按钮区域 -->
  390. <div style="margin-left: 10px; margin-top: 7%">
  391. <el-button type="primary" @click="add">新增</el-button>
  392. <el-button
  393. type="primary"
  394. @click="editpopup"
  395. style="margin-left: 0; margin-top: 10px"
  396. >编辑</el-button
  397. >
  398. <div style="margin-top: 10px">
  399. <el-button type="danger" @click="delsrts">删除</el-button>
  400. </div>
  401. <div style="margin-top: 10px">
  402. <el-button type="primary" @click="topping">置顶</el-button>
  403. </div>
  404. <div style="margin-top: 10px">
  405. <el-button type="primary" @click="toppings">置底</el-button>
  406. </div>
  407. <div style="margin-top: 10px">
  408. <el-button type="primary" :disabled="isshow" @click="assertion"
  409. >排序</el-button
  410. >
  411. </div>
  412. <div style="margin-top: 5px">
  413. <el-button type="primary" :disabled="isshow" @click="cancellation"
  414. >取消</el-button
  415. >
  416. </div>
  417. <div style="margin-top: 5px">
  418. <el-button
  419. type="primary"
  420. size="mini"
  421. @click="resulttemplate"
  422. style="width: 70px; height: 50px"
  423. >结果模板</el-button
  424. >
  425. </div>
  426. <div style="margin-top: 5px">
  427. <el-button
  428. type="primary"
  429. size="mini"
  430. @click="referencerange"
  431. style="width: 70px; height: 50px"
  432. >参考范围</el-button
  433. >
  434. </div>
  435. </div>
  436. <!-- 结果模板弹框 -->
  437. <el-dialog title="结果模板" :visible.sync="rurestdialogVisible" width="80%">
  438. <div style="display: flex">
  439. <div style="width: 95%">
  440. <el-table
  441. border=""
  442. :data="reusttableData"
  443. @row-click="reustclick"
  444. highlight-current-row
  445. >
  446. <el-table-column label="编号" prop="id"></el-table-column>
  447. <el-table-column label="项目编号" prop="itemId"></el-table-column>
  448. <el-table-column label="创建时间" width="200">
  449. <template slot-scope="scope">
  450. {{ scope.row.creationTime | dateFormat }}
  451. </template>
  452. </el-table-column>
  453. <el-table-column label="修改时间" width="200">
  454. <template slot-scope="scope">
  455. {{ scope.row.lastModificationTime | dateFormat }}
  456. </template>
  457. </el-table-column>
  458. <el-table-column label="结果" prop="result"></el-table-column>
  459. <el-table-column label="项目结果">
  460. <template slot-scope="scope">
  461. {{ scope.row.id }}
  462. </template>
  463. </el-table-column>
  464. <el-table-column label="诊断">
  465. <template> </template>
  466. </el-table-column>
  467. </el-table>
  468. </div>
  469. <div style="margin-top: 5px; margin-left: 15px">
  470. <el-button type="primary" @click="increase">添加1</el-button>
  471. <div style="margin-top: 5px">
  472. <el-button type="primary" @click="resultediting">编辑</el-button>
  473. </div>
  474. <div style="margin-top: 5px">
  475. <el-button type="primary" @click="delemtdelite">删除</el-button>
  476. </div>
  477. <!-- <div style="margin-top: 5px">
  478. <el-button type="primary" @click="templatecategory"
  479. >模板类别</el-button
  480. >
  481. </div> -->
  482. <div style="margin-top: 5px">
  483. <el-button type="primary" @click="diagnosticmatching"
  484. >诊断匹配</el-button
  485. >
  486. </div>
  487. </div>
  488. </div>
  489. <span slot="footer" class="dialog-footer">
  490. <el-button @click="rurestdialogVisible = false"> </el-button>
  491. <el-button type="primary" @click="rurestdialogVisible = false"
  492. > </el-button
  493. >
  494. </span>
  495. </el-dialog>
  496. <!-- 结果模板添加或者修改弹框 -->
  497. <el-dialog
  498. :title="ruesttiele == 1 ? '新增' : '修改'"
  499. :visible.sync="ruesttieledialogVisible"
  500. width="80%"
  501. >
  502. <el-form :model="rusetform" ref="rusetform" label-width="100px">
  503. <el-row>
  504. <!-- <el-col :span="8">
  505. <el-form-item label="项目">
  506. <el-select v-model="rusetform.itemId" placeholder="请选择">
  507. <el-option
  508. v-for="item in itemId"
  509. :key="item.id"
  510. :label="item.displayName"
  511. :value="item.id"
  512. >
  513. </el-option>
  514. </el-select>
  515. </el-form-item>
  516. </el-col> -->
  517. <el-col :span="8">
  518. <el-form-item label="结果">
  519. <el-input v-model="rusetform.result"></el-input>
  520. </el-form-item>
  521. </el-col>
  522. <el-col :span="8">
  523. <el-form-item label="诊断编号">
  524. <el-select v-model="rusetform.diagnosisId" placeholder="请选择">
  525. <el-option
  526. v-for="item in diagnosisId"
  527. :key="item.id"
  528. :label="item.displayName"
  529. :value="item.id"
  530. >
  531. </el-option>
  532. </el-select>
  533. </el-form-item>
  534. </el-col>
  535. <el-col :span="8">
  536. <el-form-item label="小结名称">
  537. <el-select
  538. v-model="rusetform.isNameIntoSummary"
  539. placeholder="请选择"
  540. >
  541. <el-option
  542. v-for="item in isNameIntoSummary"
  543. :key="item.value"
  544. :label="item.label"
  545. :value="item.value"
  546. >
  547. </el-option>
  548. </el-select>
  549. </el-form-item>
  550. </el-col>
  551. <el-col :span="8">
  552. <el-form-item label="进入小结">
  553. <el-select
  554. v-model="rusetform.isResultIntoSummary"
  555. placeholder="请选择"
  556. >
  557. <el-option
  558. v-for="item in isResultIntoSummary"
  559. :key="item.value"
  560. :label="item.label"
  561. :value="item.value"
  562. >
  563. </el-option>
  564. </el-select>
  565. </el-form-item>
  566. </el-col>
  567. <el-col :span="8">
  568. <el-form-item label="结果状态">
  569. <el-select
  570. v-model="rusetform.resultStatusId"
  571. placeholder="请选择"
  572. >
  573. <el-option
  574. v-for="item in resultStatusId"
  575. :key="item.id"
  576. :label="item.displayName"
  577. :value="item.id"
  578. >
  579. </el-option>
  580. </el-select>
  581. </el-form-item>
  582. </el-col>
  583. </el-row>
  584. </el-form>
  585. <span slot="footer" class="dialog-footer">
  586. <el-button @click="ruesttieledialogVisible = false"> </el-button>
  587. <el-button type="primary" @click="rusteronsubmit"> </el-button>
  588. </span>
  589. </el-dialog>
  590. <!-- 参考范围弹框 -->
  591. <el-dialog
  592. title="参考范围"
  593. :visible.sync="referencerangedialogVisible"
  594. width="80%"
  595. >
  596. <el-row>
  597. <el-col :span="8">
  598. <span>参考范围类型</span>
  599. <el-select
  600. v-model="referencerangevalue"
  601. filterable
  602. placeholder="请选择"
  603. @change="selecttype"
  604. >
  605. <el-option
  606. v-for="item in referencerangedata"
  607. :key="item.value"
  608. :label="item.label"
  609. :value="item.value"
  610. >
  611. </el-option>
  612. </el-select>
  613. </el-col>
  614. </el-row>
  615. <!-- //无参考范围 2223456-->
  616. <el-card
  617. v-if="referencerangevalue == 0"
  618. style="margin-top: 20px"
  619. ></el-card>
  620. <!-- 数字型参考范围 -->
  621. <div style="display: flex" v-if="referencerangevalue == 1">
  622. <ReferenceRange :itemId="form.id" ReferenceRangeTypeFlag="1" />
  623. </div>
  624. <!-- 字符型参考范围 -->
  625. <div v-if="referencerangevalue == 2">
  626. <div style="margin: 20px 0; display: flex">
  627. <div style="width: 90%">
  628. <el-input
  629. type="textarea"
  630. placeholder="请输入内容"
  631. v-model="fssubdex"
  632. maxlength="300"
  633. show-word-limit
  634. style="height: 50px"
  635. >
  636. </el-input>
  637. </div>
  638. <div style="width: 10%">
  639. <div style="margin-top: 5px">
  640. <el-button
  641. type="primary"
  642. size="mini"
  643. @click="diagnosticsettings"
  644. style="width: 70px; height: 50px; margin-left: 10px"
  645. >诊断设置</el-button
  646. >
  647. </div>
  648. <!-- <div style="margin-top: 10px; margin-left: 10px">
  649. <el-button type="primary" @click="adddiagnosis"
  650. >增加诊断</el-button
  651. >
  652. </div> -->
  653. </div>
  654. </div>
  655. </div>
  656. <!-- 性激素参考范围 -->
  657. <div v-if="referencerangevalue == 2"></div>
  658. <span
  659. slot="footer"
  660. class="dialog-footer"
  661. v-if="referencerangevalue !== '1'"
  662. >
  663. <el-button @click="referencerangedialogVisible = false"
  664. > </el-button
  665. >
  666. <el-button type="primary" @click="determinetype"> </el-button>
  667. </span>
  668. </el-dialog>
  669. <!-- 项目结果模板弹框 -->
  670. <el-dialog
  671. title="结果模板"
  672. :visible.sync="projectdialogVisible"
  673. width="80%"
  674. >
  675. <div style="display: flex">
  676. <div style="width: 95%">
  677. <el-table :data="projectdata">
  678. <el-table-column label="编号" prop="id"> </el-table-column>
  679. <el-table-column label="结果" prop="result"> </el-table-column>
  680. <el-table-column label="修改者" prop="lastModifierName">
  681. </el-table-column>
  682. <el-table-column label="修改时间" prop="lastModificationTime">
  683. <template slot-scope="scope">
  684. {{ scope.row.lastModificationTime | dateFormat }}
  685. </template>
  686. </el-table-column>
  687. </el-table>
  688. </div>
  689. <!-- 结果模板 -->
  690. <div style="margin-left: 10px; margin-top: 5%">
  691. <el-button type="primary" @click="resultaddition">添加</el-button>
  692. </div>
  693. </div>
  694. <span slot="footer" class="dialog-footer">
  695. <el-button @click="projectdialogVisible = false"> </el-button>
  696. <el-button type="primary" @click="projectdialogVisible = false"
  697. > </el-button
  698. >
  699. </span>
  700. </el-dialog>
  701. <!--诊断匹配弹框-->
  702. <el-dialog
  703. title="诊断匹配"
  704. :visible.sync="diagnosdialogVisible"
  705. width="80%"
  706. >
  707. <div style="display: flex">
  708. <div style="width: 95%">
  709. <el-table :data="diagnosticdata">
  710. <el-table-column label="编号" prop="id"></el-table-column>
  711. <el-table-column label="名称" prop="displayName"></el-table-column>
  712. <el-table-column
  713. label="创建者"
  714. prop="creatorName"
  715. ></el-table-column>
  716. <el-table-column label="创建时间" prop="creationTime">
  717. <template slot-scope="scope">
  718. {{ scope.row.creationTime | dateFormat }}
  719. </template>
  720. </el-table-column>
  721. <el-table-column
  722. label="修改者"
  723. prop="lastModifierName"
  724. ></el-table-column>
  725. <el-table-column label="修改时间" prop="lastModificationTime">
  726. <template slot-scope="scope">
  727. {{ scope.row.lastModificationTime | dateFormat }}
  728. </template>
  729. </el-table-column>
  730. </el-table>
  731. </div>
  732. <div style="margin-left: 10px; margin-top: 4%">
  733. <el-button type="primary" @click="adddiagnosis">增加诊断</el-button>
  734. </div>
  735. </div>
  736. <span slot="footer" class="dialog-footer">
  737. <el-button @click="diagnosdialogVisible = false"> </el-button>
  738. <el-button type="primary" @click="diagnosdialogVisible = false"
  739. > </el-button
  740. >
  741. </span>
  742. </el-dialog>
  743. <!-- 增加诊断弹框 -->
  744. <el-dialog title="诊断编辑" :visible.sync="diagnosticediting" width="80%">
  745. <el-form :model="editdigoisceditingform">
  746. <el-row>
  747. <el-col :span="8">
  748. <el-form-item label="名称" label-width="100px">
  749. <el-input v-model="editdigoisceditingform.displayName"></el-input>
  750. </el-form-item>
  751. </el-col>
  752. <el-col :span="7" style="margin-left: 20px">
  753. <el-form-item label="项目类别">
  754. <el-cascader
  755. v-model="editdigoisceditingform.itemTypeId"
  756. :options="itemTypeId"
  757. :show-all-levels="false"
  758. :props="props"
  759. ></el-cascader>
  760. </el-form-item>
  761. </el-col>
  762. <el-col :span="8">
  763. <el-form-item label="建议名称" label-width="100px">
  764. <el-input
  765. v-model="editdigoisceditingform.suggestionName"
  766. ></el-input>
  767. </el-form-item>
  768. </el-col>
  769. <el-col :span="8" style="margin-left: 4%">
  770. <el-form-item label="是疾病">
  771. <el-select
  772. v-model="editdigoisceditingform.isIll"
  773. placeholder="请选择"
  774. >
  775. <el-option
  776. v-for="item in isIll"
  777. :key="item.value"
  778. :label="item.label"
  779. :value="item.value"
  780. >
  781. </el-option>
  782. </el-select>
  783. </el-form-item>
  784. </el-col>
  785. <el-col :span="8">
  786. <el-form-item label="总监模板">
  787. <el-select
  788. v-model="editdigoisceditingform.isSummaryTemplate"
  789. placeholder="请选择"
  790. >
  791. <el-option
  792. v-for="item in isSummaryTemplate"
  793. :key="item.value"
  794. :label="item.label"
  795. :value="item.value"
  796. >
  797. </el-option>
  798. </el-select>
  799. </el-form-item>
  800. </el-col>
  801. <el-col :span="8">
  802. <el-form-item label="适用性别">
  803. <el-select
  804. v-model="editdigoisceditingform.forSexId"
  805. placeholder="请选择"
  806. >
  807. <el-option
  808. v-for="item in forSexId"
  809. :key="item.id"
  810. :label="item.displayName"
  811. :value="item.id"
  812. >
  813. </el-option>
  814. </el-select>
  815. </el-form-item>
  816. </el-col>
  817. <el-col :span="8">
  818. <el-form-item label="诊断级别">
  819. <el-select
  820. v-model="editdigoisceditingform.diagnosisLevelId"
  821. placeholder="请选择"
  822. >
  823. <el-option
  824. v-for="item in diagnosisLevelId"
  825. :key="item.id"
  826. :label="item.displayName"
  827. :value="item.id"
  828. >
  829. </el-option>
  830. </el-select>
  831. </el-form-item>
  832. </el-col>
  833. </el-row>
  834. </el-form>
  835. <span slot="footer" class="dialog-footer">
  836. <el-button @click="diagnosticediting = false"> </el-button>
  837. <el-button type="primary" @click="diagnosticsadd"> </el-button>
  838. </span>
  839. </el-dialog>
  840. <!--诊断设置弹框 -->
  841. <el-dialog title="诊断建议设置" :visible.sync="diagnostisbox" width="80%">
  842. <div style="display: flex">
  843. <div style="width: 95%">
  844. <el-card>
  845. <el-row>
  846. <el-col :span="8">
  847. <el-select v-model="value" placeholder="请选择">
  848. <el-option
  849. v-for="item in itemTypeId"
  850. :key="item.id"
  851. :label="item.displayName"
  852. :value="item.id"
  853. >
  854. </el-option>
  855. </el-select>
  856. </el-col>
  857. <el-col :span="8"> 2122 </el-col>
  858. </el-row>
  859. <!-- table部分 -->
  860. <el-row> </el-row>
  861. </el-card>
  862. </div>
  863. </div>
  864. <span slot="footer" class="dialog-footer">
  865. <el-button @click="diagnostisbox = false"> </el-button>
  866. <el-button type="primary" @click="diagnostisbox = false"
  867. > </el-button
  868. >
  869. </span>
  870. </el-dialog>
  871. <!-- -->
  872. </div>
  873. </template>
  874. <script>
  875. import { yzstr } from "@/utlis/validate";
  876. import {
  877. getporjectlists,
  878. projectlist,
  879. addproject,
  880. priceitemlist,
  881. posjrctid,
  882. projectedit,
  883. projectdeleft,
  884. projttitem,
  885. projectdreog,
  886. } from "@/request/commonapi";
  887. import { unitlist } from "@/request/systemapi";
  888. import Sortable from "sortablejs";
  889. import { getapi, postapi, putapi, deletapi } from "@/api/api";
  890. import ReferenceRange from "../../components/itemSet/ReferenceRange.vue";
  891. export default {
  892. components: {
  893. ReferenceRange,
  894. },
  895. data() {
  896. return {
  897. value: "",
  898. diagnostisbox: false, //诊断设置弹框的方法
  899. // tabelform: {
  900. // ageLowerLimit: "input无法输入",
  901. // },
  902. sexname: [],
  903. sexid: [],
  904. treeprops: {
  905. label: "displayName",
  906. value: "id",
  907. children: "treeChildren",
  908. }, //左侧树形结构需要的数据
  909. editdigoisceditingform: {
  910. displayName: "",
  911. itemTypeId: "",
  912. suggestionName: "",
  913. isIll: "",
  914. isSummaryTemplate: "",
  915. forSexId: "",
  916. diagnosisLevelId: "",
  917. }, //诊断编辑需要绑定的对象诊断所需要的编辑
  918. diagnosticediting: false, //诊断编辑
  919. diagnosdialogVisible: false, //匹配诊断
  920. diagnosticdata: [], //匹配诊断
  921. projectdata: [], //结果模板
  922. projectdialogVisible: false,
  923. itemId: [], //项目id
  924. diagnosisId: [], //诊断
  925. rusetform: {
  926. itemId: "",
  927. result: "",
  928. diagnosisId: "",
  929. isNameIntoSummary: "",
  930. isResultIntoSummary: "",
  931. resultStatusId: "",
  932. simpleCode: "",
  933. }, //项目结果模板需要的数据
  934. resultStatusId: [], //结果状态
  935. isNameIntoSummary: [
  936. {
  937. value: "Y",
  938. label: "是",
  939. },
  940. {
  941. value: "N",
  942. label: "否",
  943. },
  944. ], //小结名称
  945. isResultIntoSummary: [
  946. {
  947. value: "Y",
  948. label: "是",
  949. },
  950. {
  951. value: "N",
  952. label: "否",
  953. },
  954. ], //进入小结
  955. ruesttiele: 1,
  956. ruesttieledialogVisible: false,
  957. referencerangedata: [
  958. {
  959. value: "0",
  960. label: "无参考范围",
  961. },
  962. {
  963. value: "1",
  964. label: "数字型参考范围",
  965. },
  966. {
  967. value: "2",
  968. label: "字符型参考范围",
  969. },
  970. {
  971. value: "3",
  972. label: "性激素参考范围",
  973. },
  974. ], //参考范围下拉框
  975. referencerangevalue: "0",
  976. referencerangedialogVisible: false, //参考范围弹框
  977. Selectvalue: "",
  978. Selectacategory: [],
  979. rurestdialogVisible: false,
  980. isshow: true,
  981. reusttableData: [],
  982. tableData: [],
  983. initTableData: [],
  984. pages: {
  985. Filter: "",
  986. Sorting: "",
  987. SkipCount: 0,
  988. MaxResultCount: 100,
  989. },
  990. title: 1,
  991. form: {
  992. displayName: "",
  993. englishShortName: "",
  994. itemTypeId: "",
  995. price: "",
  996. priceItemId: "",
  997. unitId: "",
  998. defaultResult: "",
  999. referenceRangeTypeFlag: "",
  1000. isProduceSummary: "",
  1001. isNameIntoSummary: "",
  1002. isDiagnosisFunction: "",
  1003. diagnosisFunction: "",
  1004. isCalculationItem: "",
  1005. calculationFunction: "",
  1006. isContinueProcess: "",
  1007. resultTemplateTypeFlag: "",
  1008. inputCheck: "",
  1009. isActive: "",
  1010. },
  1011. referenceRangeTypeFlag: [
  1012. {
  1013. value: "0",
  1014. label: "无参考范围",
  1015. },
  1016. {
  1017. value: "1",
  1018. label: "数字型参考范围",
  1019. },
  1020. {
  1021. value: "2",
  1022. label: "字符型参考范围",
  1023. },
  1024. {
  1025. value: "3",
  1026. label: "性激素参考范围",
  1027. },
  1028. ],
  1029. isProduceSummary: [
  1030. {
  1031. value: "Y",
  1032. label: "是",
  1033. },
  1034. {
  1035. value: "N",
  1036. label: "否",
  1037. },
  1038. ], //生成小结
  1039. isNameIntoSummary: [
  1040. {
  1041. value: "Y",
  1042. label: "是",
  1043. },
  1044. {
  1045. value: "N",
  1046. label: "否",
  1047. },
  1048. ], //名称进入小结
  1049. isDiagnosisFunction: [
  1050. {
  1051. value: "Y",
  1052. label: "是",
  1053. },
  1054. {
  1055. value: "N",
  1056. label: "否",
  1057. },
  1058. ], //启用诊断函数
  1059. isCalculationItem: [
  1060. {
  1061. value: "Y",
  1062. label: "是",
  1063. },
  1064. {
  1065. value: "N",
  1066. label: "否",
  1067. },
  1068. ], //是计算项目
  1069. isContinueProcess: [
  1070. {
  1071. value: "Y",
  1072. label: "是",
  1073. },
  1074. {
  1075. value: "N",
  1076. label: "否",
  1077. },
  1078. ], //是继续处理
  1079. inputCheck: [
  1080. {
  1081. value: "Y",
  1082. label: "是",
  1083. },
  1084. {
  1085. value: "N",
  1086. label: "否",
  1087. },
  1088. ], //输入结果校验公式
  1089. isActive: [
  1090. {
  1091. value: "Y",
  1092. label: "是",
  1093. },
  1094. {
  1095. value: "N",
  1096. label: "否",
  1097. },
  1098. ], //启用
  1099. dialogVisible: false,
  1100. rules: {
  1101. displayName: [
  1102. { required: true, message: "请输入名称", trigger: "blur" },
  1103. ],
  1104. englishShortName: [
  1105. { required: true, message: "请输入英文缩写", trigger: "blur" },
  1106. ],
  1107. itemTypeId: [
  1108. { required: true, message: "请输入项目类别", trigger: "blur" },
  1109. ],
  1110. price: [{ required: true, message: "请输入价格", trigger: "blur" }],
  1111. priceItemId: [
  1112. { required: true, message: "请输入价表项目编码", trigger: "blur" },
  1113. ],
  1114. unitId: [{ required: true, message: "请输入单位", trigger: "blur" }],
  1115. defaultResult: [
  1116. { required: true, message: "请输入默认结果", trigger: "blur" },
  1117. ],
  1118. referenceRangeTypeFlag: [
  1119. { required: true, message: "请输入参考范围类别", trigger: "blur" },
  1120. ],
  1121. isProduceSummary: [
  1122. { required: true, message: "请选择是生成小结", trigger: "blur" },
  1123. ],
  1124. isNameIntoSummary: [
  1125. { required: true, message: "请输择称进入小结", trigger: "blur" },
  1126. ],
  1127. isDiagnosisFunction: [
  1128. { required: true, message: "请选择启用诊断函数", trigger: "blur" },
  1129. ],
  1130. diagnosisFunction: [
  1131. { required: true, message: "请输入诊断函数", trigger: "blur" },
  1132. ],
  1133. isCalculationItem: [
  1134. { required: true, message: "请选择计算项目", trigger: "blur" },
  1135. ],
  1136. calculationFunction: [
  1137. { required: true, message: "请输入计算函数", trigger: "blur" },
  1138. ],
  1139. isContinueProcess: [
  1140. { required: true, message: "请选择继续处理", trigger: "blur" },
  1141. ],
  1142. resultTemplateTypeFlag: [
  1143. {
  1144. required: true,
  1145. message: "请输入结果模板类别标志",
  1146. trigger: "blur",
  1147. },
  1148. ],
  1149. inputCheck: [
  1150. { required: true, message: "请选择结果校验公式", trigger: "blur" },
  1151. ],
  1152. isActive: [{ required: true, message: "请选择启用", trigger: "blur" }],
  1153. },
  1154. unitId: [], //单位Id
  1155. priceItemId: [], //价格id1
  1156. result: [], //结果
  1157. forSexId: [], //性别
  1158. itemTypeId: [], //项目类别
  1159. diagnosisLevelId: [], //诊断级别
  1160. isIll: [
  1161. {
  1162. value: "Y",
  1163. label: "是",
  1164. },
  1165. {
  1166. value: "N",
  1167. label: "否",
  1168. },
  1169. ], //是疾病
  1170. isSummaryTemplate: [
  1171. {
  1172. value: "Y",
  1173. label: "是",
  1174. },
  1175. {
  1176. value: "N",
  1177. label: "否",
  1178. },
  1179. ], //总监模板
  1180. props: {
  1181. label: "displayName",
  1182. value: "id",
  1183. children: "treeChildren",
  1184. }, //左侧树形结构
  1185. newssdate: [
  1186. {
  1187. id: "1",
  1188. name: "",
  1189. },
  1190. {
  1191. id: "2",
  1192. name: "",
  1193. },
  1194. ],
  1195. defaultResult: [
  1196. {
  1197. value: "1",
  1198. label: "未见异常",
  1199. },
  1200. {
  1201. value: "2",
  1202. label: "正常",
  1203. },
  1204. {
  1205. value: "3",
  1206. label: "阴性",
  1207. },
  1208. {
  1209. value: "4",
  1210. label: "无",
  1211. },
  1212. ], //默认结果
  1213. ssdate: [],
  1214. fssubdex: "",
  1215. resultitemtype: [], //项目类别
  1216. scopediagnostic: [], //诊断范围下拉框
  1217. reference: [], //参考范围
  1218. resulttemp: [], // 结果模板
  1219. disableddiagnosisFunction: false,
  1220. };
  1221. },
  1222. created() {
  1223. this.getlist();
  1224. this.getmedicalconclusionlist();
  1225. },
  1226. mounted() {
  1227. this.rowDrop();
  1228. this.typeid();
  1229. },
  1230. methods: {
  1231. //启用诊断函数
  1232. enablediagnostics(v) {
  1233. console.log(v);
  1234. if (v == "N") {
  1235. this.disableddiagnosisFunction = true;
  1236. } else {
  1237. this.disableddiagnosisFunction = false;
  1238. }
  1239. },
  1240. //参考范围确定类型
  1241. determinetype() {
  1242. if (this.referencerangevalue == 2) {
  1243. console.log(this.form.id);
  1244. let obj = {
  1245. itemId: this.form.id,
  1246. referenceRangeValue: this.fssubdex,
  1247. referenceRangeTypeFlag: this.referencerangevalue,
  1248. };
  1249. postapi("/api/app/reference-range/text", obj).then((res) => {
  1250. this.$message.success("新增成功");
  1251. this.fssubdex = res.data.referenceRangeValue;
  1252. this.diagnosdialogVisible = false;
  1253. });
  1254. }
  1255. },
  1256. async blurInput(id, name, value) {
  1257. var isdate = false; //是否存在
  1258. for (var i = 0; i < this.newssdate.length; i++) {
  1259. if (this.newssdate[i].id == id) {
  1260. isdate = true;
  1261. console.log("888");
  1262. console.log(this.newssdate[i][name]);
  1263. this.newssdate[i][name] = value;
  1264. }
  1265. }
  1266. if (!isdate) {
  1267. for (var j = 0; j < this.ssdate.length; j++) {
  1268. if (this.ssdate[j].id == id) {
  1269. this.newssdate.push(this.ssdate[j]);
  1270. }
  1271. }
  1272. }
  1273. //
  1274. },
  1275. treeclick(data) {
  1276. getapi(`/api/app/item/in-item-type/${data.id}`).then((res) => {
  1277. this.tableData = res.data;
  1278. console.log(res.data, "ress");
  1279. // this.getlist();
  1280. });
  1281. },
  1282. typeid() {
  1283. projectlist().then((res) => {
  1284. this.itemTypeId = res.data;
  1285. });
  1286. },
  1287. //诊断新增获取数据
  1288. diagnosticsadd() {
  1289. postapi("/api/app/diagnosis", this.editdigoisceditingform).then((res) => {
  1290. this.$message.success("添加成功");
  1291. this.diagnosticmatching();
  1292. });
  1293. },
  1294. //增加诊断需要的Id
  1295. diageoisaddId() {
  1296. //项目类别id
  1297. getapi("/api/app/item-type").then((res) => {
  1298. this.itemTypeId = res.data.items;
  1299. });
  1300. //性别
  1301. getapi("/api/app/for-sex").then((res) => {
  1302. this.forSexId = res.data;
  1303. });
  1304. //诊断级别
  1305. getapi("/api/app/diagnosis-level").then((res) => {
  1306. this.diagnosisLevelId = res.data.items;
  1307. });
  1308. },
  1309. // 增加诊断弹框
  1310. adddiagnosis() {
  1311. console.log(1);
  1312. console.log("诊断的方法");
  1313. this.diagnosticediting = true;
  1314. this.diageoisaddId();
  1315. },
  1316. //诊断匹配弹框获取诊断数据
  1317. //改成直接跳转到诊断页面
  1318. diagnosticmatching() {
  1319. // this.diagnosdialogVisible = true;
  1320. // console.log(this.diagnosdialogVisible);
  1321. // postapi("/api/app/diagnosis/getlistinfilter").then((res) => {
  1322. // this.diagnosticdata = res.data.items;
  1323. // console.log(res);
  1324. // });
  1325. this.$router.push({ path: "/diagnosis" });
  1326. },
  1327. //结果模板添加
  1328. resultaddition() {},
  1329. //模板类别弹框
  1330. // templatecategory() {
  1331. // getapi("/api/app/item-result-template").then((res) => {
  1332. // this.projectdata = res.data.items;
  1333. // console.log(res);
  1334. // });
  1335. // this.projectdialogVisible = true;
  1336. // },
  1337. //项目模板置底
  1338. bottoming() {
  1339. if (this.rusetform.id == undefined) {
  1340. this.$message.warning("请选择操作的数据");
  1341. } else {
  1342. putapi(
  1343. `/api/app/itemresulttemplate/updatemanysort?id=${this.rusetform.id}&SortType=2`
  1344. ).then((res) => {
  1345. this.$message.success("操作成功");
  1346. this.resultlist();
  1347. });
  1348. }
  1349. },
  1350. //项目模板置顶
  1351. toppingqq() {
  1352. console.log(this.rusetform.id);
  1353. if (this.rusetform.id == undefined) {
  1354. this.$message.warning("请选择操作的数据");
  1355. } else {
  1356. putapi(
  1357. `/api/app/itemresulttemplate/updatemanysort?id=${this.rusetform.id}&SortType=1`
  1358. ).then((res) => {
  1359. this.$message.success("操作成功");
  1360. this.resultlist();
  1361. });
  1362. }
  1363. },
  1364. //结果模板删除
  1365. delemtdelite() {
  1366. if (this.rusetform.id == undefined) {
  1367. this.$message.warning("请选择操作的数据");
  1368. } else {
  1369. deletapi(`/api/app/item-result-template/${this.rusetform.id}`).then(
  1370. (res) => {
  1371. this.$message.success("删除成功");
  1372. this.resultlist();
  1373. }
  1374. );
  1375. }
  1376. },
  1377. reustclick(row) {
  1378. // this.rusetform = row;
  1379. getapi(`/api/app/item-result-template/${row.id}`).then((res) => {
  1380. this.rusetform = res.data;
  1381. });
  1382. console.log(row);
  1383. },
  1384. //项目结果模板新增弹框
  1385. resultediting() {
  1386. if (this.rusetform.id == undefined) {
  1387. this.$message.warning("请选择操作的数据");
  1388. } else {
  1389. this.addoredit();
  1390. this.ruesttiele = 2;
  1391. this.ruesttieledialogVisible = true;
  1392. }
  1393. },
  1394. //结果模板新增或者修改
  1395. rusteronsubmit() {
  1396. if (this.ruesttiele == 1) {
  1397. postapi(`/api/app/item-result-template`, this.rusetform).then((res) => {
  1398. this.$message.success("新增成功");
  1399. this.ruesttieledialogVisible = false;
  1400. this.resultlist();
  1401. });
  1402. } else if (this.ruesttiele == 2) {
  1403. putapi(
  1404. `/api/app/item-result-template/${this.rusetform.id}`,
  1405. this.rusetform
  1406. ).then((res) => {
  1407. this.$message.success("修改成功");
  1408. this.ruesttieledialogVisible = false;
  1409. this.resultlist();
  1410. });
  1411. }
  1412. },
  1413. //诊断设置弹框新增
  1414. diagnosticsettings() {
  1415. // this.diagnostisbox = true;
  1416. // console.log("1");
  1417. this.$router.push({ path: "/diagnosis" });
  1418. },
  1419. digitaladdion() {
  1420. // this.referencerangedata.push({
  1421. // gender: "全部",
  1422. // agewise: "200",
  1423. // underage: "下",
  1424. // onreference: "0",
  1425. // underreference: "上",
  1426. // });
  1427. },
  1428. //参考范围下拉选择
  1429. selecttype(v) {
  1430. console.log(v);
  1431. this.referencerangevalue = v;
  1432. if (v == 1) {
  1433. getapi("/api/app/sex").then((res) => {
  1434. console.log(res);
  1435. this.sexid = res.data;
  1436. });
  1437. postapi("/api/app/diagnosis/getlistinfilter").then((res) => {
  1438. this.scopediagnostic = res.data.items;
  1439. console.log(res);
  1440. });
  1441. }
  1442. },
  1443. //参考范围
  1444. referencerange() {
  1445. console.log("我是参考范围");
  1446. if (this.form.id == undefined) {
  1447. this.$message.warning("请选择操作的数据");
  1448. } else {
  1449. this.referencerangedialogVisible = true;
  1450. }
  1451. },
  1452. //结果模板添加或者修改需要的列
  1453. addoredit() {
  1454. getapi("/api/app/item/in-filter").then((res) => {
  1455. this.itemId = res.data.items;
  1456. });
  1457. getapi("/api/app/result-status").then((res) => {
  1458. // this.result = res.data.items;
  1459. this.resultStatusId = res.data.items;
  1460. });
  1461. postapi("/api/app/diagnosis/getlistinfilter").then((res) => {
  1462. console.log(res);
  1463. this.diagnosisId = res.data.items;
  1464. });
  1465. },
  1466. //结果模板添加
  1467. increase() {
  1468. this.addoredit();
  1469. this.ruesttiele = 1;
  1470. this.rusetform.itemId = this.form.id;
  1471. console.log(this.rusetform.id);
  1472. this.ruesttieledialogVisible = true;
  1473. // this.rusetform = {};
  1474. },
  1475. //获取项目类别列表
  1476. getmedicalconclusionlist() {
  1477. getapi("/api/app/item-type").then((res) => {
  1478. this.Selectacategory = res.data.items;
  1479. console.log(res);
  1480. });
  1481. },
  1482. isselctvalue(v) {
  1483. this.pages.TypeId = v;
  1484. console.log(v);
  1485. console.log(this.pages.TypeId);
  1486. this.getlist();
  1487. },
  1488. handleSelect(item) {
  1489. this.pages.Filter = item.displayName;
  1490. this.item = item;
  1491. this.formid = item.id;
  1492. console.log(this.item);
  1493. //console.log(item);
  1494. // quersmedicalid(item.id).then((res) => {
  1495. // console.log(res);
  1496. // this.form = res.data;
  1497. // });
  1498. },
  1499. getlistM(rowsid) {
  1500. getporjectlists(this.pages).then((res) => {
  1501. console.log("数据", res);
  1502. this.initTableData = [...res.data.items];
  1503. this.tableData = res.data.items;
  1504. if (rowsid != null && rowsid != "") {
  1505. var row = this.tableData.filter((item) => item.id == rowsid);
  1506. this.$refs.tableData.setCurrentRow(row[0]);
  1507. getapi(`/api/app/item/${rowsid}`).then((res) => {
  1508. this.form = res.data;
  1509. });
  1510. }
  1511. });
  1512. },
  1513. selsearch(id, typeid) {
  1514. this.Selectvalue = typeid;
  1515. this.pages.TypeId = typeid;
  1516. this.getlistM(id);
  1517. },
  1518. createFilter(queryString) {
  1519. return (tableData) => {
  1520. return (
  1521. tableData.displayName
  1522. .toLowerCase()
  1523. .indexOf(queryString.toLowerCase()) != -1
  1524. );
  1525. };
  1526. },
  1527. querySearch(queryString, cb) {
  1528. var tableData = this.tableData;
  1529. var tableDatas = queryString
  1530. ? tableData.filter(this.createFilter(queryString))
  1531. : tableData;
  1532. // 调用 callback 返回建议列表的数据
  1533. cb(tableDatas);
  1534. },
  1535. resultlist() {
  1536. getapi("/api/app/item-result-template").then((res) => {
  1537. this.reusttableData = res.data.items;
  1538. console.log(res);
  1539. });
  1540. },
  1541. resulttemplate() {
  1542. if (this.form.id == undefined) {
  1543. this.$message.warning("请选择操作的数据");
  1544. } else {
  1545. this.rurestdialogVisible = true;
  1546. getapi(`/api/app/item-result-template/in-item-id/${this.form.id}`).then(
  1547. (res) => {
  1548. this.reusttableData = res.data;
  1549. console.log("2222222222222222");
  1550. console.log(res);
  1551. }
  1552. );
  1553. //// 获取项目类别
  1554. getapi("/api/app/item-type/by-code-all").then((res) => {
  1555. this.resultitemtype = res.data;
  1556. console.log(res);
  1557. });
  1558. }
  1559. },
  1560. //取消排序
  1561. cancellation() {
  1562. this.$message.info("取消操作");
  1563. this.isshow = true;
  1564. this.getlist();
  1565. },
  1566. //确定拖拽
  1567. assertion() {
  1568. const result = [];
  1569. this.tableData.forEach((item, index) => {
  1570. // index 从0开始的, displayOrder从大到小排
  1571. console.log(item.id);
  1572. // const currentDisplayOrder = this.tableData.length -1
  1573. const currentDisplayOrder = this.initTableData[index].displayOrder;
  1574. if (item.displayOrder != currentDisplayOrder) {
  1575. // 如果它的displayOrder和它当前所在的位置不同代表挪动过位置
  1576. result.push({ id: item.id, displayOrder: currentDisplayOrder });
  1577. }
  1578. });
  1579. projectdreog({ itemList: result }).then((res) => {
  1580. this.$message.success("操作成功");
  1581. this.isshow = true;
  1582. this.getlist();
  1583. });
  1584. },
  1585. //初始化
  1586. rowDrop() {
  1587. this.$nextTick(() => {
  1588. const tbody = document.querySelector(".el-table__body-wrapper tbody");
  1589. const _this = this;
  1590. Sortable.create(tbody, {
  1591. handle: ".move",
  1592. animation: 300,
  1593. onEnd({ newIndex, oldIndex }) {
  1594. _this.isshow = false;
  1595. const currRow = _this.tableData.splice(oldIndex, 1)[0];
  1596. _this.tableData.splice(newIndex, 0, currRow);
  1597. _this.tableData.map((item, index) => {
  1598. if (index == newIndex && index == oldIndex) {
  1599. // console.log(item, "新数据");
  1600. } else if (index == oldIndex) {
  1601. } else if (index == newIndex) {
  1602. }
  1603. });
  1604. console.log(_this.tableData.map((item) => item.displayOrder));
  1605. },
  1606. });
  1607. });
  1608. },
  1609. //置低
  1610. toppings() {
  1611. if (this.form.id == undefined) {
  1612. this.$message.success("请点击选择操作的数据");
  1613. } else {
  1614. projttitem(this.form.id, 2).then((res) => {
  1615. this.$message.success("操作成功");
  1616. this.getlist();
  1617. });
  1618. }
  1619. },
  1620. //置顶
  1621. topping() {
  1622. if (this.form.id == undefined) {
  1623. this.$message.warning("请点击选择操作的数据");
  1624. } else {
  1625. projttitem(this.form.id, 1).then((res) => {
  1626. this.$message.success("操作成功");
  1627. this.getlist();
  1628. });
  1629. }
  1630. },
  1631. //删除
  1632. delsrts() {
  1633. if (this.form.id == undefined) {
  1634. this.$message.warning("请选择删除的数据");
  1635. } else {
  1636. this.$confirm("是否确认删除,是否继续?", "提示", {
  1637. confirmButtonText: "确定",
  1638. cancelButtonText: "取消",
  1639. type: "warning",
  1640. })
  1641. .then(() => {
  1642. projectdeleft(this.form.id).then((res) => {
  1643. this.$message.success("删除成功");
  1644. this.getlist();
  1645. this.form = {};
  1646. });
  1647. })
  1648. .catch(() => {});
  1649. }
  1650. },
  1651. //点击列表通过id查询
  1652. rowick(row) {
  1653. posjrctid(row.id).then((res) => {
  1654. console.log(res);
  1655. this.form = res.data;
  1656. });
  1657. console.log(row);
  1658. },
  1659. //编辑弹框
  1660. editpopup() {
  1661. if (this.form.id == undefined) {
  1662. this.$message.warning("请选择操作的数据");
  1663. } else {
  1664. this.form.price = Number(this.form.price);
  1665. this.addorgropdata();
  1666. this.title = 2;
  1667. this.dialogVisible = true;
  1668. posjrctid(this.form.id).then((res) => {
  1669. console.log(res);
  1670. this.form = res.data;
  1671. });
  1672. }
  1673. },
  1674. //确定新增或者编辑
  1675. Onsubmit() {
  1676. this.$refs.form.validate((v) => {
  1677. if (v) {
  1678. if (this.title == 1) {
  1679. this.form.price = Number(this.form.price);
  1680. addproject(this.form).then((res) => {
  1681. this.$message.success("新增成功222");
  1682. this.getlist();
  1683. this.dialogVisible = false;
  1684. });
  1685. } else if (this.title == 2) {
  1686. projectedit(this.form.id, this.form).then((res) => {
  1687. this.$message.success("修改成功");
  1688. this.getlist();
  1689. this.dialogVisible = false;
  1690. });
  1691. }
  1692. }
  1693. });
  1694. // addproject(this.form)
  1695. },
  1696. //新增弹框
  1697. add() {
  1698. this.form.price = Number(this.form.price);
  1699. this.title = 1;
  1700. this.dialogVisible = true;
  1701. this.form = {};
  1702. this.addorgropdata();
  1703. },
  1704. //新增或者编辑弹框需要的下拉框接口数据
  1705. addorgropdata() {
  1706. //获取项目id
  1707. projectlist().then((res) => {
  1708. this.itemTypeId = res.data;
  1709. this.tcdate(this.itemTypeId);
  1710. });
  1711. //获取单位
  1712. unitlist().then((res) => {
  1713. this.unitId = res.data.items;
  1714. });
  1715. //获取价格Id
  1716. priceitemlist().then((res) => {
  1717. this.priceItemId = res.data.items;
  1718. });
  1719. //参考范围
  1720. getapi("/api/app/reference-range").then((res) => {
  1721. this.reference = res.data.items;
  1722. });
  1723. //结果模板
  1724. getapi("/api/app/item-result-template").then((res) => {
  1725. this.resulttemp = res.data.items;
  1726. console.log(res, "结果模板");
  1727. });
  1728. },
  1729. getlist() {
  1730. this.getlistM();
  1731. // getporjectlists(this.pages).then((res) => {
  1732. // this.initTableData = [...res.data.items];
  1733. // this.tableData = res.data.items;
  1734. // });
  1735. },
  1736. tcdate(date) {
  1737. for (var i = 0; i < date.length; i++) {
  1738. if (date[i].treeChildren.length == 0) {
  1739. date[i].treeChildren = undefined;
  1740. } else {
  1741. this.tcdate(date[i].treeChildren);
  1742. }
  1743. }
  1744. },
  1745. ///
  1746. },
  1747. };
  1748. </script>
  1749. <style scoped>
  1750. .box {
  1751. display: flex;
  1752. }
  1753. </style>