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.

1798 lines
55 KiB

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