vascularAccess.vue 32KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843
  1. <template>
  2. <div class="patient-container">
  3. <patient-sidebar :id="patientID" defaultActive="1-6" v-on:tran-patient="onTranPatient"></patient-sidebar>
  4. <div class="patient-app-container advice-container app-container">
  5. <div style="display:flex;justify-content: space-between;align-items: center;margin-bottom: 12px;">
  6. <span style="font-weight:bold;">血管通路列表</span>
  7. <el-button size="medium" type="primary" @click="dialogVisible =true">新增</el-button>
  8. </div>
  9. <el-table class="oictable" :data="tableData" border style="width:100%">
  10. <el-table-column prop="start_time" label="建立日期" width="100" align="center">
  11. <template slot-scope="scope">
  12. <span>{{ getTime(scope.row.start_time, "{y}-{m}-{d}")}}</span>
  13. </template>
  14. </el-table-column>
  15. <el-table-column prop="blood_access_part_opera_id" label="血管通路" align="center" width="120">
  16. <template slot-scope="scope">
  17. <router-link
  18. :to="'/patients/patient/' + scope.row.patient_id+'/vascularAccessDetail/'+scope.row.id"
  19. style="color:#409eff;width:100%;display:block;"
  20. >{{ scope.row.blood_access_part_opera_id }}
  21. </router-link
  22. >
  23. </template>
  24. </el-table-column>
  25. <el-table-column prop="blood_access_part_id" label="血管通路部位" width="200" align="center">
  26. <template slot-scope="scope">
  27. <span>{{scope.row.blood_access_part_id}}</span>
  28. </template>
  29. </el-table-column>
  30. <el-table-column prop="inflow_pass" label="血管通路部位(其他)" width="100" align="center">
  31. <template slot-scope="scope">
  32. <span>{{scope.row.other_vascular}}</span>
  33. </template>
  34. </el-table-column>
  35. <el-table-column prop="date" label="首次启用日期" width="120" align="center">
  36. <template slot-scope="scope">
  37. <span>{{ getTime(scope.row.first_start_time, "{y}-{m}-{d}")}}</span>
  38. </template>
  39. </el-table-column>
  40. <el-table-column prop="date" label="默认到处方" align="center" width="100">
  41. <template slot-scope="scope">
  42. <span v-if="scope.row.user_status == 1">启用</span>
  43. <span v-if="scope.row.user_status == 2">停用</span>
  44. </template>
  45. </el-table-column>
  46. <el-table-column prop="date" label="停用日期" align="center" width="100">
  47. <template slot-scope="scope">
  48. <span v-if="scope.row.stop_time>0">{{ getTime(scope.row.stop_time, "{y}-{m}-{d}")}}</span>
  49. <span v-if="scope.row.stop_time<0"></span>
  50. </template>
  51. </el-table-column>
  52. <el-table-column prop="date" label="停用原因" align="center" width="120">
  53. <template slot-scope="scope">
  54. <span>{{scope.row.stop_reason}}</span>
  55. </template>
  56. </el-table-column>
  57. <el-table-column prop="date" label="使用寿命(天)" align="center" width="120">
  58. <template slot-scope="scope">
  59. <span v-if="scope.row.stop_time>0&&(scope.row.stop_time - scope.row.start_time)/86400 == 0"></span>
  60. <span v-if="scope.row.stop_time>0&&(scope.row.stop_time - scope.row.start_time)/86400 != 0">{{(scope.row.stop_time - scope.row.start_time)/86400}}</span>
  61. </template>
  62. </el-table-column>
  63. <el-table-column prop="date" label="备注" align="center" width="180">
  64. <template slot-scope="scope">
  65. <span>{{scope.row.remark}}</span>
  66. </template>
  67. </el-table-column>
  68. <el-table-column prop="date" label="创始人" align="center" width="100">
  69. <template slot-scope="scope">
  70. <span>{{getDoctor(scope.row.creator)}}</span>
  71. </template>
  72. </el-table-column>
  73. <el-table-column prop="date" fixed="right" label="操作" width="140" align="center">
  74. <template slot-scope="scope">
  75. <el-tooltip class="item" effect="dark" content="编辑" placement="top">
  76. <el-button
  77. type="primary"
  78. size="small"
  79. icon="el-icon-edit-outline"
  80. @click="handleUpdateAdviceTemplate(scope.row.id)"
  81. >
  82. </el-button>
  83. </el-tooltip>
  84. <el-tooltip class="item" effect="dark" content="删除" placement="top">
  85. <el-button
  86. size="small"
  87. type="danger"
  88. icon="el-icon-delete"
  89. @click="handleDeleteAdviceTemplate(scope.row.id, scope.$index)"
  90. >
  91. </el-button>
  92. </el-tooltip>
  93. </template>
  94. </el-table-column>
  95. </el-table>
  96. <el-pagination
  97. @size-change="handleSizeChange"
  98. @current-change="handleCurrentChange"
  99. :page-sizes="[10,20,50,100]"
  100. :page-size="10"
  101. background
  102. style="margin-top:20px;"
  103. align="right"
  104. layout="total, sizes, prev, pager, next, jumper"
  105. :total="total"></el-pagination>
  106. <el-dialog
  107. title="新增通路"
  108. :visible.sync="dialogVisible"
  109. width="65%"
  110. center>
  111. <el-form label-width="120px" :model="form" ref="form" :rules="rules" >
  112. <el-row :gutter="24">
  113. <el-col :span="24">
  114. <el-form-item label="通路项目:" :required="true" prop="access_project" >
  115. <el-radio-group style="padding: 10px;" v-model="form.access_project" @change="changeRadio">
  116. <el-radio label="1">内瘘</el-radio>
  117. <el-radio label="2">导管</el-radio>
  118. </el-radio-group>
  119. </el-form-item>
  120. </el-col>
  121. </el-row>
  122. <el-row :gutter="24">
  123. <el-col :span="8">
  124. <el-form-item label="建立日期:" :required="true" prop="start_time">
  125. <el-date-picker
  126. type="datetime"
  127. format="yyyy-MM-dd"
  128. value-format="yyyy-MM-dd"
  129. placeholder="选择时间"
  130. v-model="form.start_time"
  131. style="width:150px">
  132. </el-date-picker>
  133. </el-form-item>
  134. </el-col>
  135. <el-col :span="8">
  136. <el-form-item label="血管通路类型:" :required="true" prop="blood_access_part_opera_id">
  137. <el-select v-model="form.blood_access_part_opera_id" placeholder="请选择" style="width:150px">
  138. <el-option
  139. v-for="item in blood_access_part_opera"
  140. :key="item.id"
  141. :label="item.name"
  142. :value="item.id"
  143. >
  144. </el-option>
  145. </el-select>
  146. </el-form-item>
  147. </el-col>
  148. <el-col :span="8">
  149. <el-form-item label="血管通路部位:" :required="true" prop="blood_access_part_id">
  150. <el-input v-model="form.blood_access_part_id" readonly @focus="showInnerDialog('17')" style="width:150px"></el-input>
  151. </el-form-item>
  152. </el-col>
  153. </el-row>
  154. <el-row :gutter="24">
  155. <el-col :span="8">
  156. <el-form-item label="血管通路部位(其他):" prop="inflow_pass">
  157. <!-- <el-select v-model="form.inflow_pass" placeholder="请选择" style="width:150px">
  158. <el-option
  159. v-for="item in optionsPass"
  160. :key="item.id"
  161. :label="item.name"
  162. :value="item.id">
  163. </el-option>
  164. </el-select> -->
  165. <el-input v-model="form.other_vascular" style="width:200"></el-input>
  166. </el-form-item>
  167. </el-col>
  168. <el-col :span="8">
  169. <el-form-item label="首次启用日期:" :required="true" prop="first_start_time">
  170. <el-date-picker
  171. type="datetime"
  172. format="yyyy-MM-dd"
  173. value-format="yyyy-MM-dd"
  174. placeholder="选择时间"
  175. v-model="form.first_start_time"
  176. style="width:150px">
  177. </el-date-picker>
  178. </el-form-item>
  179. </el-col>
  180. <el-col :span="8">
  181. <el-form-item label="使用状态:" :required="true" prop="user_status">
  182. <el-select v-model="form.user_status" placeholder="请选择" style="width:150px" @change="changeStatus">
  183. <el-option
  184. v-for="item in options"
  185. :key="item.id"
  186. :label="item.name"
  187. :value="item.id">
  188. </el-option>
  189. </el-select>
  190. </el-form-item>
  191. </el-col>
  192. </el-row>
  193. <el-row v-show="show">
  194. <el-col :span="8">
  195. <el-form-item label="停用日期:">
  196. <el-date-picker
  197. type="datetime"
  198. format="yyyy-MM-dd"
  199. value-format="yyyy-MM-dd"
  200. placeholder="选择时间"
  201. v-model="form.stop_time"
  202. style="width:150px">
  203. </el-date-picker>
  204. </el-form-item>
  205. </el-col>
  206. </el-row>
  207. <el-row v-show="show">
  208. <el-col>
  209. <el-form-item label="停用原因:">
  210. <el-input v-model="form.stop_reason"></el-input>
  211. </el-form-item>
  212. </el-col>
  213. </el-row>
  214. <el-row>
  215. <el-col>
  216. <el-form-item label="备注:">
  217. <el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="form.remark"></el-input>
  218. </el-form-item>
  219. </el-col>
  220. </el-row>
  221. </el-form>
  222. <span slot="footer" class="dialog-footer">
  223. <el-button @click="dialogVisible = false">取 消</el-button>
  224. <el-button type="primary" @click="saveVasularAccess('form')">保存</el-button>
  225. </span>
  226. </el-dialog>
  227. <el-dialog
  228. title="编辑通路"
  229. :visible.sync="editDialogVisible"
  230. width="60%"
  231. center>
  232. <el-form label-width="120px" :model="form" ref="form" :rules="rules" >
  233. <el-row :gutter="24">
  234. <el-col :span="24">
  235. <el-form-item label="通路项目:" :required="true" prop="access_project">
  236. <el-radio-group style="padding: 10px;" v-model="form.access_project" @change="changeRadio">
  237. <el-radio label="1">内瘘</el-radio>
  238. <el-radio label="2">导管</el-radio>
  239. </el-radio-group>
  240. </el-form-item>
  241. </el-col>
  242. </el-row>
  243. <el-row :gutter="24">
  244. <el-col :span="8">
  245. <el-form-item label="建立日期:" :required="true" prop="start_time">
  246. <el-date-picker
  247. type="datetime"
  248. format="yyyy-MM-dd"
  249. value-format="yyyy-MM-dd"
  250. placeholder="选择时间"
  251. v-model="form.start_time"
  252. style="width:150px">
  253. </el-date-picker>
  254. </el-form-item>
  255. </el-col>
  256. <el-col :span="8">
  257. <el-form-item label="血管通路类型:" :required="true" prop="blood_access_part_opera_id">
  258. <el-select v-model="form.blood_access_part_opera_id" placeholder="请选择" style="width:150px">
  259. <el-option
  260. v-for="item in blood_access_part_opera"
  261. :key="item.id"
  262. :label="item.name"
  263. :value="item.id"
  264. >
  265. </el-option>
  266. </el-select>
  267. </el-form-item>
  268. </el-col>
  269. <el-col :span="8">
  270. <el-form-item label="血管通路部位:" :required="true" prop="blood_access_part_id">
  271. <!-- <el-select v-model="form.blood_access_part_id" placeholder="请选择" style="width:150px">
  272. <el-option
  273. v-for="item in blood_access_part"
  274. :key="item.id"
  275. :label="item.name"
  276. :value="item.id">
  277. </el-option>
  278. </el-select> -->
  279. <el-input v-model="form.blood_access_part_id" readonly @focus="showInnerDialog('17')" style="width:150px"></el-input>
  280. </el-form-item>
  281. </el-col>
  282. </el-row>
  283. <el-row :gutter="24">
  284. <el-col :span="8">
  285. <el-form-item label="血管通路部位(其他):" :required="true" prop="inflow_pass">
  286. <!-- <el-select v-model="form.inflow_pass" placeholder="请选择" style="width:150px">
  287. <el-option
  288. v-for="item in optionsPass"
  289. :key="item.id"
  290. :label="item.name"
  291. :value="item.id">
  292. </el-option>
  293. </el-select> -->
  294. <el-input v-model="form.other_vascular"></el-input>
  295. </el-form-item>
  296. </el-col>
  297. <el-col :span="8">
  298. <el-form-item label="首次启用日期:" :required="true" prop="first_start_time">
  299. <el-date-picker
  300. type="datetime"
  301. format="yyyy-MM-dd"
  302. value-format="yyyy-MM-dd"
  303. placeholder="选择时间"
  304. v-model="form.first_start_time"
  305. style="width:150px">
  306. </el-date-picker>
  307. </el-form-item>
  308. </el-col>
  309. <el-col :span="8">
  310. <el-form-item label="使用状态:" :required="true" prop="user_status">
  311. <el-select v-model="form.user_status" placeholder="请选择" style="width:150px" @change="changeStatus">
  312. <el-option
  313. v-for="item in options"
  314. :key="item.id"
  315. :label="item.name"
  316. :value="item.id">
  317. </el-option>
  318. </el-select>
  319. </el-form-item>
  320. </el-col>
  321. </el-row>
  322. <el-row v-show="show">
  323. <el-col :span="8">
  324. <el-form-item label="停用日期:">
  325. <el-date-picker
  326. type="datetime"
  327. format="yyyy-MM-dd"
  328. value-format="yyyy-MM-dd"
  329. placeholder="选择时间"
  330. v-model="form.stop_time"
  331. style="width:150px">
  332. </el-date-picker>
  333. </el-form-item>
  334. </el-col>
  335. </el-row>
  336. <el-row v-show="show">
  337. <el-col>
  338. <el-form-item label="停用原因:">
  339. <el-input v-model="form.stop_reason"></el-input>
  340. </el-form-item>
  341. </el-col>
  342. </el-row>
  343. <el-row>
  344. <el-col>
  345. <el-form-item label="备注:">
  346. <el-input type="textarea" :rows="2" placeholder="请输入内容" v-model="form.remark"></el-input>
  347. </el-form-item>
  348. </el-col>
  349. </el-row>
  350. </el-form>
  351. <span slot="footer" class="dialog-footer">
  352. <el-button @click="editDialogVisible= false">取 消</el-button>
  353. <el-button type="primary" @click="updatedVasularAccess('form')">保存</el-button>
  354. </span>
  355. </el-dialog>
  356. </div>
  357. <multi-select-box
  358. :propsForm="InnerDialogProps"
  359. v-on:dialog-comfirm="innerDialogComfirm"
  360. v-on:dialog-cancle="innerDialogCancle"
  361. ></multi-select-box>
  362. </div>
  363. </template>
  364. <script>
  365. const moment = require('moment')
  366. import PatientSidebar from './components/PatientSidebar'
  367. import { fetchAllAdminUsers, fetchAllDoctorAndNurse } from '@/api/doctor'
  368. import { saveVasularAccess,getAllVascularAccessList,getVascularAccessByDetail,updatedVasularAccess,DeleteVascularAccess,getAccessList } from '@/api/patient'
  369. import { jsGetAge, uParseTime } from '@/utils/tools'
  370. import { getDataConfig } from '@/utils/data'
  371. import multiSelectBox from '../dialysis/details/dialog/MultiSelectBox'
  372. export default {
  373. name: 'doctorAdvice',
  374. components: {
  375. PatientSidebar,
  376. multiSelectBox
  377. },
  378. data() {
  379. return {
  380. tableData: [],
  381. nowtime: moment(new Date()).format('YYYY-MM-DD'),
  382. page: 1,
  383. limit: 10,
  384. total: 0,
  385. rules: {
  386. start_time: [{ required: true, message: '请输入建立日期' }],
  387. access_project: [{ required: true, message: '请选择通路项目' }],
  388. blood_access_part_opera_id:[{required:true,message:'请选择血管通路类型'}],
  389. blood_access_part_id:[{required:true,message:"请选择血管通路"}],
  390. first_start_time:[{required:true,message:"请选择首次启用日期"}],
  391. user_status:[{required:true,message:"请选择使用状态"}]
  392. },
  393. dialogVisible:false,
  394. editDialogVisible:false,
  395. form:{
  396. id:0,
  397. access_project:"1",
  398. blood_access_part_id:"",
  399. blood_access_part_opera_id:"",
  400. inflow_pass:"",
  401. start_time:moment(new Date()).format('YYYY-MM-DD'),
  402. first_start_time:moment(new Date()).format('YYYY-MM-DD'),
  403. stop_reason:"",
  404. user_status:1,
  405. remark:"",
  406. stop_time:"",
  407. other_vascular:""
  408. },
  409. options:[
  410. {id:1,name:"启用"},
  411. {id:2,name:"停用"}
  412. ],
  413. optionsPass:[
  414. {id:1,name:"流入-动脉"},
  415. {id:2,name:"流出-静脉"},
  416. ],
  417. blood_access_part_opera:[],
  418. blood_access_part:[],
  419. show:false,
  420. doctorList:[],
  421. InnerDialogProps: {
  422. values: [],
  423. visibility: false,
  424. isShowTextArea: true,
  425. customContent: '',
  426. titles: '',
  427. type: '' // 不同弹框类型,用来匹配数据
  428. },
  429. new_blood_access_part_opera:[],
  430. new_blood_access_part:[],
  431. }
  432. },
  433. methods: {
  434. clickuseradvicecell(row, column, cell, event) {
  435. },
  436. onTranPatient: function(tranPatient) {
  437. this.currentPatient = tranPatient
  438. },
  439. CreateTime(time) {
  440. return uParseTime(time, '{y}-{m}-{d} {h}:{i}:{s}')
  441. },
  442. handleSizeChange(limit) {
  443. this.limit = limit
  444. this.getlist()
  445. },
  446. handleCurrentChange(page) {
  447. this.page = page
  448. this.getlist()
  449. },
  450. changeStatus(val){
  451. if(val == 1 ){
  452. this.show = false
  453. }
  454. if(val == 2){
  455. this.show = true
  456. }
  457. },
  458. saveVasularAccess(formName){
  459. this.$refs[formName].validate((valid)=>{
  460. if(valid){
  461. var blood_name = ""
  462. for(let i=0;i<this.blood_access_part_opera.length;i++){
  463. if(this.blood_access_part_opera[i].id == this.form.blood_access_part_opera_id){
  464. blood_name = this.blood_access_part_opera[i].name
  465. }
  466. }
  467. var inflow_pass = ""
  468. for(let i=0;i<this.optionsPass.length;i++){
  469. if(this.optionsPass[i].id == this.form.inflow_pass){
  470. inflow_pass = this.optionsPass[i].name
  471. }
  472. }
  473. console.log("params",this.form.blood_access_part_id)
  474. var params = {
  475. patient_id:this.patientID,
  476. access_project:parseInt(this.form.access_project),
  477. start_time:this.form.start_time,
  478. blood_access_part_opera_id:blood_name,
  479. blood_access_part_id:this.form.blood_access_part_id,
  480. inflow_pass:inflow_pass,
  481. first_start_time:this.form.first_start_time,
  482. user_status:this.form.user_status,
  483. stop_reason:this.form.stop_reason,
  484. remark:this.form.remark,
  485. stop_time:this.form.stop_time,
  486. other_vascular:this.form.other_vascular,
  487. }
  488. console.log("params",params)
  489. saveVasularAccess(params).then(response=>{
  490. if(response.data.state == 1){
  491. var access = response.data.data.access
  492. console.log("access",access)
  493. this.$message.success("保存成功")
  494. this.dialogVisible = false
  495. this.getlist()
  496. this.form.blood_access_part_opera_id=""
  497. this.form.blood_access_part_id = ""
  498. this.inflow_pass = ""
  499. this.user_status = ""
  500. this.stop_reason = ""
  501. this.remark = ""
  502. }else{
  503. this.$message.error("该日期数据已存在!")
  504. }
  505. })
  506. }
  507. })
  508. },
  509. getlist(){
  510. var params = {
  511. page:this.page,
  512. limit:this.limit,
  513. patient_id:this.patientID,
  514. }
  515. getAllVascularAccessList(params).then(response=>{
  516. if(response.data.state == 1){
  517. var list = response.data.data.list
  518. console.log("list",list)
  519. this.tableData = list
  520. var total = response.data.data.total
  521. console.log("total",total)
  522. this.total = total
  523. var doctor = response.data.data.doctor
  524. console.log("doctor",doctor)
  525. this.doctorList = doctor
  526. }
  527. })
  528. },
  529. getTime(value, temp) {
  530. if (value != undefined) {
  531. return uParseTime(value, temp);
  532. }
  533. return "";
  534. },
  535. handleUpdateAdviceTemplate(id){
  536. getVascularAccessByDetail(id).then(response=>{
  537. if(response.data.state ==1){
  538. var accessDetail = response.data.data.accessDetail
  539. console.log("accessDetail",accessDetail)
  540. this.form.id = accessDetail.id
  541. this.form.access_project = accessDetail.access_project.toString()
  542. var arr = []
  543. var arrOne = []
  544. var arrThree = []
  545. var arrFour = []
  546. if(accessDetail.access_project == "1"){
  547. for(let i=0;i<this.new_blood_access_part_opera.length;i++){
  548. if(this.new_blood_access_part_opera[i].field_type == 1){
  549. arr.push(this.new_blood_access_part_opera[i])
  550. }
  551. }
  552. this.blood_access_part_opera = arr
  553. for(let j=0;j<this.new_blood_access_part.length;j++){
  554. if(this.new_blood_access_part[j].field_type == 1){
  555. arrThree.push(this.new_blood_access_part[j])
  556. }
  557. }
  558. this.blood_access_part = arrThree
  559. }
  560. if(accessDetail.access_project == "2"){
  561. for(let i=0;i<this.new_blood_access_part_opera.length;i++){
  562. if(this.new_blood_access_part_opera[i].field_type == 2){
  563. arrOne.push(this.new_blood_access_part_opera[i])
  564. }
  565. }
  566. this.blood_access_part_opera = arrOne
  567. for(let j=0;j<this.new_blood_access_part.length;j++){
  568. if(this.new_blood_access_part[j].field_type == 2){
  569. arrFour.push(this.new_blood_access_part[j])
  570. }
  571. }
  572. this.blood_access_part = arrFour
  573. }
  574. this.form.blood_access_part_id = accessDetail.blood_access_part_id
  575. var blood_part = 0
  576. for(let i=0;i<this.blood_access_part_opera.length;i++){
  577. if(accessDetail.blood_access_part_opera_id == this.blood_access_part_opera[i].name){
  578. blood_part = this.blood_access_part_opera[i].id
  579. }
  580. }
  581. this.form.blood_access_part_opera_id = blood_part
  582. this.form.first_start_time = this.getTime(accessDetail.first_start_time,"{y}-{m}-{d}")
  583. var inflow_id = 0
  584. for(let i=0;i<this.optionsPass.length;i++){
  585. if(this.optionsPass[i].name == accessDetail.inflow_pass){
  586. inflow_id = this.optionsPass[i].id
  587. }
  588. }
  589. this.form.inflow_pass = inflow_id
  590. this.form.remark = accessDetail.remark
  591. this.form.start_time = this.getTime(accessDetail.start_time,"{y}-{m}-{d}")
  592. this.form.stop_reason = accessDetail.stop_reason
  593. this.form.stop_time = this.getTime(accessDetail.stop_time,"{y}-{m}-{d}")
  594. this.form.user_status = accessDetail.user_status
  595. this.form.other_vascular = accessDetail.other_vascular
  596. if(accessDetail.user_status == 1){
  597. this.show = false
  598. }
  599. if(accessDetail.user_status == 2){
  600. this.show = true
  601. }
  602. this.editDialogVisible = true
  603. }
  604. })
  605. },
  606. getDoctor(id){
  607. var name = ""
  608. for(let i=0;i<this.doctorList.length;i++){
  609. if(id == this.doctorList[i].admin_user_id){
  610. name = this.doctorList[i].user_name
  611. }
  612. }
  613. return name
  614. },
  615. handleDeleteAdviceTemplate(id,index){
  616. this.$confirm("确认删除吗?", "删除", {
  617. confirmButtonText: "确 定",
  618. cancelButtonText: "取 消",
  619. type: "warning"
  620. })
  621. .then(() => {
  622. DeleteVascularAccess(id).then(response => {
  623. if(response.data.state == 1){
  624. var msg = response.data.data.msg
  625. this.tableData.splice(index, 1);
  626. this.$message.success("删除成功!")
  627. }
  628. });
  629. })
  630. .catch(() => {});
  631. },
  632. updatedVasularAccess(formName){
  633. this.$refs[formName].validate((valid)=>{
  634. if(valid){
  635. var blood_name = ""
  636. for(let i=0;i<this.blood_access_part_opera.length;i++){
  637. if(this.blood_access_part_opera[i].id == this.form.blood_access_part_opera_id){
  638. blood_name = this.blood_access_part_opera[i].name
  639. }
  640. }
  641. // var blood_part = ""
  642. // for(let i=0;i<this.blood_access_part.length;i++){
  643. // if(this.form.blood_access_part_id == this.blood_access_part[i].id){
  644. // blood_part = this.blood_access_part[i].name
  645. // }
  646. // }
  647. var inflow_pass = ""
  648. for(let i=0;i<this.optionsPass.length;i++){
  649. if(this.optionsPass[i].id == this.form.inflow_pass){
  650. inflow_pass = this.optionsPass[i].name
  651. }
  652. }
  653. var params = {
  654. id:this.form.id,
  655. patient_id:this.patientID,
  656. access_project:parseInt(this.form.access_project),
  657. start_time:this.form.start_time,
  658. blood_access_part_opera_id:blood_name,
  659. blood_access_part_id:this.form.blood_access_part_id,
  660. inflow_pass:inflow_pass,
  661. first_start_time:this.form.first_start_time,
  662. user_status:this.form.user_status,
  663. stop_reason:this.form.stop_reason,
  664. remark:this.form.remark,
  665. stop_time:this.form.stop_time,
  666. patient_id:this.patientID,
  667. other_vascular:this.form.other_vascular
  668. }
  669. console.log("编辑",params)
  670. updatedVasularAccess(params).then(response=>{
  671. if(response.data.state == 1){
  672. var access = response.data.data.access
  673. console.log("access",access)
  674. this.$message.success("保存成功")
  675. this.editDialogVisible = false
  676. this.getlist()
  677. }else{
  678. this.$message.error("该日期数据已存在!")
  679. }
  680. })
  681. }
  682. })
  683. },
  684. rowClick(row){
  685. console.log("row",row)
  686. this.$router.push({path:'/patients/patient/'+this.patientID+'/vascularAccessDetail/'+row.id})
  687. },
  688. showInnerDialog: function(val) {
  689. this.InnerDialogProps.visibility = true
  690. switch (val) {
  691. case '17': // 血管通路
  692. this.InnerDialogProps.values = this.blood_access_part
  693. this.InnerDialogProps.titles = '血管通路部位'
  694. this.InnerDialogProps.type = 'blood_access_part_id'
  695. this.InnerDialogProps.selected = this.form.blood_access_part_id
  696. this.InnerDialogProps.isShowTextArea = false
  697. break
  698. }
  699. },
  700. innerDialogComfirm: function(val) {
  701. this.InnerDialogProps.visibility = false
  702. switch (val.type) {
  703. case 'blood_access_part_id':
  704. this.form.blood_access_part_id = val.value.join(',')
  705. break
  706. }
  707. },
  708. innerDialogCancle: function() {
  709. this.InnerDialogProps.visibility = false
  710. },
  711. getAccessList(){
  712. getAccessList().then(response=>{
  713. if(response.data.state == 1){
  714. var blood_access_part_opera = response.data.data.blood_access_part_opera
  715. console.log("blood_access_part_operahhahs",blood_access_part_opera)
  716. this.new_blood_access_part_opera = blood_access_part_opera
  717. var blood_access_part = response.data.data.blood_access_part
  718. console.log("blood_access",blood_access_part)
  719. this.new_blood_access_part = blood_access_part
  720. console.log("通路项目",this.form.access_project)
  721. var arr = []
  722. var arrOne = []
  723. if(this.form.access_project == 1 ){
  724. for(let i=0;i<this.new_blood_access_part_opera.length;i++){
  725. if(this.new_blood_access_part_opera[i].field_type == 1){
  726. arr.push(this.new_blood_access_part_opera[i])
  727. }
  728. }
  729. for(let i=0;i<this.new_blood_access_part.length;i++){
  730. if(this.new_blood_access_part[i].field_type == 1){
  731. arrOne.push(this.new_blood_access_part[i])
  732. }
  733. }
  734. }
  735. this.blood_access_part_opera = arr
  736. this.blood_access_part = arrOne
  737. }
  738. })
  739. },
  740. changeRadio(val){
  741. console.log("val",val)
  742. var arr = []
  743. var arrOne = []
  744. var arrTwo = []
  745. var arrThree = []
  746. for(let i=0;i<this.new_blood_access_part_opera.length;i++){
  747. if(this.new_blood_access_part_opera[i].field_type == 1){
  748. arr.push(this.new_blood_access_part_opera[i])
  749. }
  750. if(this.new_blood_access_part_opera[i].field_type == 2){
  751. arrOne.push(this.new_blood_access_part_opera[i])
  752. }
  753. }
  754. for(let i=0;i<this.new_blood_access_part.length;i++){
  755. if(this.new_blood_access_part[i].field_type == 1){
  756. arrTwo.push(this.new_blood_access_part[i])
  757. }
  758. if(this.new_blood_access_part[i].field_type == 2){
  759. arrThree.push(this.new_blood_access_part[i])
  760. }
  761. }
  762. if(val == 1){
  763. this.blood_access_part_opera = arr
  764. this.blood_access_part = arrTwo
  765. }
  766. if(val == 2){
  767. this.blood_access_part_opera = arrOne
  768. this.blood_access_part = arrThree
  769. }
  770. console.log("arr",arr)
  771. console.log("arrOne",arrOne)
  772. }
  773. },
  774. created() {
  775. const id = this.$route.params && this.$route.params.id
  776. this.patientID = parseInt(id)
  777. this.getlist()
  778. //获取血管通路
  779. this.getAccessList()
  780. },
  781. }
  782. </script>
  783. <style>
  784. .oictable ::-webkit-scrollbar {
  785. height: 15px;
  786. }
  787. </style>
  788. <style rel="stylesheet/scss" lang="scss">
  789. ::-webkit-scrollbar{
  790. height:15px;
  791. }
  792. </style>