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.

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