血透系统PC前端

AddGroupAdvice.vue 50KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298
  1. <template>
  2. <div id="user-edit-group-advice">
  3. <el-dialog title="新增医嘱" :visible.sync="groupAddFormVisible" width="700px">
  4. <el-form ref="groupForm" :rules="groupRules" :model="groupForm" label-width="90px">
  5. <el-row>
  6. <el-col :span="12">
  7. <el-form-item label="医嘱类型 :" required prop="advice_type">
  8. <el-input value="临时" disabled></el-input>
  9. </el-form-item>
  10. </el-col>
  11. <el-col :span="12">
  12. <el-form-item label="开始时间 :" required prop="start_time">
  13. <el-date-picker
  14. type="datetime"
  15. format="yyyy-MM-dd HH:mm:ss"
  16. value-format="yyyy-MM-dd HH:mm:ss"
  17. placeholder="选择时间"
  18. v-model="groupForm.start_time"
  19. ></el-date-picker>
  20. </el-form-item>
  21. </el-col>
  22. </el-row>
  23. <el-form-item label="备注 :">
  24. <el-input type="textarea" v-model="groupForm.remark"></el-input>
  25. </el-form-item>
  26. <el-row>
  27. <el-col :span="12">
  28. <el-form-item label="开嘱医生 :">
  29. <span>{{adminusername}} </span>
  30. </el-form-item>
  31. </el-col>
  32. <el-col :span="12">
  33. <el-form-item label="开嘱时间 :">
  34. <span>{{groupForm.advice_date}} </span>
  35. </el-form-item>
  36. </el-col>
  37. </el-row>
  38. <el-row style="margin-bottom: 20px;margin-top: 20px">
  39. <el-col :span="5">
  40. <!--<el-button-->
  41. <!--:disabled="$store.getters.xt_user.subscibe.state==3?true:false"-->
  42. <!--type="primary"-->
  43. <!--@click="openAdviceTemplate()"-->
  44. <!--&gt;选择医嘱模板</el-button>-->
  45. <el-button :disabled="$store.getters.xt_user.subscibe.state==3?true:false" round
  46. @click="openAdviceTemplate()">选择医嘱模板
  47. </el-button>
  48. </el-col>
  49. <el-col :span="1">&nbsp;</el-col>
  50. <el-col :span="5">
  51. <!--<el-button-->
  52. <!--:disabled="$store.getters.xt_user.subscibe.state==3?true:false"-->
  53. <!--type="primary"-->
  54. <!--@click="openGroupAdvice(0)"-->
  55. <!--&gt;新增医嘱内容</el-button>-->
  56. <el-button :disabled="$store.getters.xt_user.subscibe.state==3?true:false" round
  57. @click="openGroupAdvice(0)">新增医嘱内容
  58. </el-button>
  59. </el-col>
  60. <el-col :span="1">&nbsp;</el-col>
  61. <el-col :span="5">
  62. <!--<el-button-->
  63. <!--:disabled="$store.getters.xt_user.subscibe.state==3?true:false"-->
  64. <!--type="primary"-->
  65. <!--@click="openGroupAdvice(1)"-->
  66. <!--&gt;修改医嘱内容</el-button>-->
  67. <el-button :disabled="$store.getters.xt_user.subscibe.state==3?true:false" round
  68. @click="openGroupAdvice(1)">修改医嘱内容
  69. </el-button>
  70. </el-col>
  71. <el-col :span="1">&nbsp;</el-col>
  72. <el-col :span="5">
  73. <!--<el-button-->
  74. <!--:disabled="$store.getters.xt_user.subscibe.state==3?true:false"-->
  75. <!--type="primary"-->
  76. <!--@click="openDeleteGroupAdvice()"-->
  77. <!--&gt;删除医嘱内容</el-button>-->
  78. <el-button :disabled="$store.getters.xt_user.subscibe.state==3?true:false" round
  79. @click="openDeleteGroupAdvice()">删除医嘱内容
  80. </el-button>
  81. </el-col>
  82. <!-- <el-col :span="1">&nbsp;</el-col>
  83. <el-col :span="4">
  84. <el-button
  85. :disabled="$store.getters.xt_user.subscibe.state==3?true:false"
  86. type="primary"
  87. @click="openGroupChild()"
  88. >添加子药内容</el-button>
  89. </el-col> -->
  90. </el-row>
  91. <el-row>
  92. <el-col :span="24">
  93. <el-table
  94. id="user-edit-advice-name-table"
  95. :data="groupForm.adviceNames"
  96. border
  97. fit
  98. highlight-current-row
  99. :row-class-name="groupClassName"
  100. @current-change="selectGroupAdvice"
  101. style="width: 100%;margin-top: 10px;margin-bottom: 10px;"
  102. :row-key="getRowKey"
  103. ref="advicenametable"
  104. >
  105. <el-table-column
  106. label="医嘱名称"
  107. property="advice_name"
  108. style="word-break: keep-all;white-space:nowrap;"
  109. ></el-table-column>
  110. <el-table-column
  111. label="规格"
  112. property="advice_desc"
  113. ></el-table-column>
  114. <!-- <el-table-column label="药品规格*数量" min-width="80" property="drug_spec" align="center">
  115. <template slot-scope="scope">
  116. <span
  117. v-if="scope.row.drug_spec!=0"
  118. >{{scope.row.drug_spec}}{{scope.row.drug_spec_unit}}</span>
  119. <span
  120. vf-i="scope.row.prescribing_number!=0"
  121. >*{{scope.row.prescribing_number}}{{scope.row.prescribing_number_unit}}</span>
  122. </template>
  123. </el-table-column> -->
  124. <el-table-column label="开药数量" min-width="80" property="prescribing_number" align="center">
  125. <template slot-scope="scope">
  126. <span
  127. v-if="scope.row.prescribing_number!=0"
  128. >{{scope.row.prescribing_number}}{{scope.row.prescribing_number_unit}}</span>
  129. </template>
  130. </el-table-column>
  131. <el-table-column label="单次用量" min-width="80" property="single_dose" align="center">
  132. <template slot-scope="scope">
  133. <span
  134. v-if="scope.row.single_dose!=0"
  135. >{{scope.row.single_dose}}{{scope.row.single_dose_unit}}</span>
  136. </template>
  137. </el-table-column>
  138. <el-table-column label="给药途径" min-width="80" property="delivery_way" align="center">
  139. <template slot-scope="scope">
  140. <span v-if="scope.row.parent_row==0">{{scope.row.delivery_way}}</span>
  141. </template>
  142. </el-table-column>
  143. <el-table-column
  144. label="执行频率"
  145. min-width="80"
  146. property="execution_frequency"
  147. align="center"
  148. >
  149. <template slot-scope="scope">
  150. <span v-if="scope.row.parent_row==0">{{scope.row.execution_frequency}}</span>
  151. </template>
  152. </el-table-column>
  153. </el-table>
  154. </el-col>
  155. </el-row>
  156. </el-form>
  157. <div slot="footer" class="dialog-footer">
  158. <el-button
  159. :disabled="$store.getters.xt_user.subscibe.state==3 || groupForm.adviceNames.length == 0?true:false"
  160. type="primary"
  161. @click="submitgroupAdvice('groupForm')"
  162. >确 定
  163. </el-button>
  164. </div>
  165. </el-dialog>
  166. <el-dialog title="选择医嘱模板" :close-on-click-modal="false" :visible.sync="templateFormVisible" width="72%">
  167. <el-row :gutter="20">
  168. <el-col :span="8">
  169. <el-table
  170. :data="adviceTemplates"
  171. ref="templatetable"
  172. border
  173. highlight-current-row
  174. @current-change="templateTableChange"
  175. style="width: 100%">
  176. <el-table-column
  177. prop="name"
  178. label="模板名称">
  179. </el-table-column>
  180. </el-table>
  181. </el-col>
  182. <el-col :span="16">
  183. <el-table
  184. id='dialysis-add-select-template-table'
  185. :data="selectedTemp.list"
  186. border
  187. :span-method="spanselecttable"
  188. @select="selectAdvice"
  189. @select-all="selectAllTemplateAdvice"
  190. @selection-change="changeAdvice"
  191. row-key="row_key"
  192. ref="selecttemplatetable"
  193. style="width: 100%"
  194. >
  195. <el-table-column
  196. type="selection"
  197. width="55">
  198. </el-table-column>
  199. <el-table-column
  200. label="医嘱内容"
  201. property="advice_name"
  202. style="word-break: keep-all;white-space:nowrap;"
  203. ></el-table-column>
  204. <el-table-column
  205. label="规格"
  206. property="advice_desc"
  207. ></el-table-column>
  208. <el-table-column label="开药数量" min-width="80" property="prescribing_number" align="center">
  209. <template slot-scope="scope">
  210. <span
  211. v-if="scope.row.prescribing_number!=0"
  212. >{{scope.row.prescribing_number}}{{scope.row.prescribing_number_unit}}</span>
  213. </template>
  214. </el-table-column>
  215. <el-table-column label="单次用量" min-width="80" property="single_dose" align="center">
  216. <template slot-scope="scope">
  217. <span
  218. v-if="scope.row.single_dose!=0"
  219. >{{scope.row.single_dose}}{{scope.row.single_dose_unit}}</span>
  220. </template>
  221. </el-table-column>
  222. <el-table-column label="给药途径" min-width="80" property="delivery_way" align="center">
  223. <template slot-scope="scope">
  224. <span v-if="scope.row.parent_row==0">{{scope.row.delivery_way}}</span>
  225. </template>
  226. </el-table-column>
  227. <el-table-column
  228. label="执行频率"
  229. min-width="80"
  230. property="execution_frequency"
  231. align="center"
  232. >
  233. <template slot-scope="scope">
  234. <span v-if="scope.row.parent_row==0">{{scope.row.execution_frequency}}</span>
  235. </template>
  236. </el-table-column>
  237. </el-table>
  238. </el-col>
  239. </el-row>
  240. <div slot="footer" class="dialog-footer">
  241. <el-button @click="cancleDialog()">取消</el-button>
  242. <el-button
  243. :disabled="$store.getters.xt_user.subscibe.state==3?true:false"
  244. type="primary"
  245. @click="newAddTempForm()"
  246. >确 定
  247. </el-button>
  248. </div>
  249. </el-dialog>
  250. <el-dialog title="选择医嘱模板" :visible.sync="oldTemplateFormVisible" width="700px" >
  251. <el-form ref="templateForm" :rules="templateRules" :model="templateForm">
  252. <el-row>
  253. <el-col :span="24">
  254. <el-form-item prop="id">
  255. <el-select
  256. v-model="templateForm.id"
  257. filterable
  258. clearable
  259. placeholder="请选择(输入可搜索)"
  260. style="width:100%"
  261. >
  262. <el-option
  263. v-for="item in adviceTemplates"
  264. :key="item.id"
  265. :label="item.name"
  266. :value="item.id"
  267. ></el-option>
  268. </el-select>
  269. </el-form-item>
  270. </el-col>
  271. </el-row>
  272. </el-form>
  273. <div slot="footer" class="dialog-footer">
  274. <el-button @click="templateFormVisible = false">取消</el-button>
  275. <el-button
  276. :disabled="$store.getters.xt_user.subscibe.state==3?true:false"
  277. type="primary"
  278. @click="addTempForm('templateForm')"
  279. >确 定
  280. </el-button>
  281. </div>
  282. </el-dialog>
  283. <el-dialog :title="nameFormTitle" :visible.sync="nameFormVisible" width="700px">
  284. <el-form ref="nameForm" :rules="nameRules" :model="nameForm" label-width="90px">
  285. <el-row>
  286. <el-col :span="12">
  287. <el-form-item label="医嘱内容 :" required prop="advice_name">
  288. <el-input v-model="nameForm.advice_name"></el-input>
  289. </el-form-item>
  290. </el-col>
  291. <el-col :span="12">
  292. <el-form-item label="规格 :" prop="advice_desc">
  293. <el-input v-model="nameForm.advice_desc"></el-input>
  294. </el-form-item>
  295. <!-- <el-form-item label="药品规格 :" prop="drug_spec">
  296. <el-col :span="8">
  297. <el-input v-model="nameForm.drug_spec"></el-input>
  298. </el-col>
  299. <el-col class="line" :span="2">&nbsp;</el-col>
  300. <el-col :span="14">
  301. <el-select
  302. v-model="nameForm.drug_spec_unit"
  303. filterable
  304. clearable
  305. allow-create
  306. placeholder="选择"
  307. >
  308. <el-option
  309. v-for="item in unitsOption"
  310. :key="item.id"
  311. :label="item.name "
  312. :value="item.name"
  313. ></el-option>
  314. </el-select>
  315. </el-col>
  316. </el-form-item> -->
  317. </el-col>
  318. </el-row>
  319. <el-row>
  320. <el-col :span="12">
  321. <el-form-item label="单次用量 :" prop="single_dose">
  322. <el-col :span="8">
  323. <el-input v-model="nameForm.single_dose"></el-input>
  324. </el-col>
  325. <el-col class="line" :span="2">&nbsp;</el-col>
  326. <el-col :span="14">
  327. <el-select
  328. v-model="nameForm.single_dose_unit"
  329. filterable
  330. clearable
  331. allow-create
  332. placeholder="选择"
  333. >
  334. <el-option
  335. v-for="item in unitsOption"
  336. :key="item.id"
  337. :label="item.name "
  338. :value="item.name"
  339. ></el-option>
  340. </el-select>
  341. </el-col>
  342. </el-form-item>
  343. </el-col>
  344. <el-col :span="12">
  345. <el-form-item label="开药数量 :" prop="prescribing_number">
  346. <el-col :span="8">
  347. <el-input v-model="nameForm.prescribing_number"></el-input>
  348. </el-col>
  349. <el-col class="line" :span="2">&nbsp;</el-col>
  350. <el-col :span="14">
  351. <el-select
  352. v-model="nameForm.prescribing_number_unit"
  353. filterable
  354. clearable
  355. allow-create
  356. placeholder="选择"
  357. >
  358. <el-option
  359. v-for="item in unitsOption"
  360. :key="item.id"
  361. :label="item.name "
  362. :value="item.name"
  363. ></el-option>
  364. </el-select>
  365. </el-col>
  366. </el-form-item>
  367. </el-col>
  368. </el-row>
  369. <el-row>
  370. <el-col :span="12">
  371. <el-form-item label="给药途径 :" prop="delivery_way">
  372. <el-select
  373. v-model="nameForm.delivery_way"
  374. filterable
  375. clearable
  376. allow-create
  377. :disabled="isChild"
  378. placeholder="请选择(输入可搜索)"
  379. style="width:90%"
  380. >
  381. <el-option
  382. v-for="item in deliveryWayOptions"
  383. :key="item.id"
  384. :label="item.name "
  385. :value="item.name"
  386. ></el-option>
  387. </el-select>
  388. </el-form-item>
  389. </el-col>
  390. <el-col :span="12">
  391. <el-form-item label="执行频率 :" prop="execution_frequency">
  392. <el-select
  393. v-model="nameForm.execution_frequency"
  394. filterable
  395. clearable
  396. allow-create
  397. :disabled="isChild"
  398. placeholder="请选择(输入可搜索)"
  399. style="width:90%"
  400. >
  401. <el-option
  402. v-for="item in executionFrequencyOptions"
  403. :key="item.id"
  404. :label="item.name"
  405. :value="item.name"
  406. ></el-option>
  407. </el-select>
  408. </el-form-item>
  409. </el-col>
  410. </el-row>
  411. </el-form>
  412. <div slot="footer" class="dialog-footer">
  413. <el-button @click="nameFormVisible = false">取消</el-button>
  414. <el-button
  415. :disabled="$store.getters.xt_user.subscibe.state==3?true:false"
  416. type="primary"
  417. @click="submitNameForm('nameForm')"
  418. >确 定
  419. </el-button>
  420. </div>
  421. </el-dialog>
  422. </div>
  423. </template>
  424. <script>
  425. import {
  426. CreateDoctorAdvice,
  427. CreateGroupAdvice,
  428. DeleteDoctorAdvice,
  429. DeleteGroupAdvice,
  430. EditDoctorAdvice,
  431. getAdviceConfig,
  432. getDoctorAdviceList,
  433. StopDoctorAdvice
  434. } from "@/api/advice";
  435. export default {
  436. name: 'AddGroupAdvice',
  437. data() {
  438. return {
  439. editRowKey: 0,
  440. oldTemplateFormVisible: false,
  441. templateFormVisible: false,
  442. groupAddFormVisible: false,
  443. nameFormVisible: false,
  444. groupSelectRow: null,
  445. nameFormTitle: '',
  446. isChild: false,
  447. isEdit: false,
  448. adminusername: '',
  449. groupRules: {
  450. advice_type: [{required: true, message: "请选择医嘱类型",},],
  451. advice_date: [{required: true, message: "请选择医嘱时间",},],
  452. start_time: [{required: true, message: "请选择开始时间",},],
  453. advice_name: [{required: true, message: "请填写医嘱名称",},],
  454. advice_doctor: [{required: true, message: "请选择开嘱医生",},],
  455. },
  456. nameRules: {
  457. advice_name: [{required: true, message: "请填写医嘱内容",},],
  458. },
  459. templateRules: {
  460. id: [{required: true, message: "请选择医嘱模板",},],
  461. },
  462. templateForm: {id: ''},
  463. nameForm: {
  464. advice_name: "",
  465. advice_desc: "",
  466. single_dose: "",
  467. single_dose_unit: "",
  468. drug_spec: "",
  469. drug_spec_unit: "",
  470. prescribing_number: "",
  471. prescribing_number_unit: "",
  472. delivery_way: "",
  473. execution_frequency: "",
  474. isEdit: 0,
  475. index: 0,
  476. id: 0,
  477. children: [],
  478. },
  479. submitGroupForm: {
  480. advice_type: "",
  481. advice_date: "",
  482. start_time: "",
  483. adviceNames: [],
  484. advice_doctor: "",
  485. remark: "",
  486. parent_id: 0,
  487. },
  488. groupForm: {
  489. advice_type: "",
  490. advice_date: "",
  491. start_time: "",
  492. adviceNames: [],
  493. advice_doctor: "",
  494. remark: "",
  495. parent_id: 0,
  496. },
  497. selectedTemp: {'id': 0, name: '', org_id: 0, 'list': [], 'rows': []},
  498. selectedTemplate: [],
  499. allSelectedTemplate: [],
  500. }
  501. },
  502. props: {
  503. patientID: 0,
  504. adviceType: 0,
  505. rowKey: 0,
  506. adviceTemplates: {
  507. type: Array,
  508. default: function () {
  509. return []
  510. }
  511. },
  512. recordDate: '',
  513. adviceTypeOptions: {
  514. type: Array,
  515. default: function () {
  516. return []
  517. }
  518. },
  519. deliveryWayOptions: {
  520. type: Array,
  521. default: () => []
  522. },
  523. unitsOption: {
  524. type: Array,
  525. default: function () {
  526. return []
  527. }
  528. },
  529. executionFrequencyOptions: {
  530. type: Array,
  531. default: function () {
  532. return []
  533. }
  534. },
  535. adviceTemplateMaps: {
  536. type: Object,
  537. default: function () {
  538. return {}
  539. }
  540. },
  541. adviceTableData: {
  542. type: Array,
  543. default: function () {
  544. return []
  545. }
  546. },
  547. },
  548. methods: {
  549. submitgroupAdvice(formName) {
  550. this.$refs[formName].validate((valid) => {
  551. if (valid) {
  552. var submitForm = {
  553. advice_type: this.groupForm.advice_type,
  554. advice_date: this.groupForm.advice_date,
  555. start_time: this.groupForm.start_time,
  556. adviceNames: [],
  557. advice_doctor: this.groupForm.advice_doctor,
  558. remark: this.groupForm.remark,
  559. parent_id: this.groupForm.parent_id,
  560. };
  561. var adviceNames = [];
  562. for (const index in this.groupForm.adviceNames) {
  563. adviceNames.unshift(this.groupForm.adviceNames[index]);
  564. }
  565. submitForm.adviceNames = adviceNames;
  566. CreateGroupAdvice(this.patientID, 0, submitForm).then(response => {
  567. if (response.data.state == 0) {
  568. this.$message.error(response.data.msg);
  569. return false;
  570. } else {
  571. this.$notify({
  572. title: "成功",
  573. message: "新增成功",
  574. type: "success",
  575. duration: 2000
  576. });
  577. var childMap = {};
  578. for (const index in response.data.data.advices) {
  579. if (response.data.data.advices[index].parent_id == 0) {
  580. continue;
  581. }
  582. if (false === (response.data.data.advices[index].parent_id in childMap)) {
  583. childMap[response.data.data.advices[index].parent_id] = [];
  584. }
  585. childMap[response.data.data.advices[index].parent_id].unshift(response.data.data.advices[index]);
  586. }
  587. var parentArr = [];
  588. for (const index in response.data.data.advices) {
  589. if (response.data.data.advices[index].parent_id > 0) {
  590. continue;
  591. }
  592. parentArr.push(response.data.data.advices[index]);
  593. }
  594. for (const index in parentArr) {
  595. if (parentArr[index].id in childMap) {
  596. for (const j in childMap[parentArr[index].id]) {
  597. this.adviceTableData.unshift(childMap[parentArr[index].id][j]);
  598. }
  599. }
  600. this.adviceTableData.unshift(parentArr[index]);
  601. }
  602. // var alen = response.data.data.advices.length
  603. // for (let index = alen-1; index >=0; index--) {
  604. // this.adviceTableData.unshift(response.data.data.advices[index]);
  605. // }
  606. this.resetForm(formName);
  607. this.groupAddFormVisible = false;
  608. return false;
  609. }
  610. });
  611. }
  612. });
  613. },
  614. openDeleteGroupAdvice() {
  615. if (this.groupSelectRow === null) {
  616. this.$notify.error({
  617. title: "错误",
  618. message: "未选择要删除的医嘱内容"
  619. });
  620. return;
  621. }
  622. var content = ""
  623. if(this.groupSelectRow.children.length > 0){
  624. content = "确认删除此医嘱内容,包括它的子药?"
  625. }else{
  626. content = "确认删除此医嘱内容?"
  627. }
  628. var isChild = this.groupSelectRow.parent_row ? true : false;
  629. var title = isChild ? '删除子药内容' : '删除医嘱内容';
  630. var msg = isChild ? '确认删除此子药内容?' : content;
  631. this.$confirm(msg, title, {
  632. confirmButtonText: '确定',
  633. cancelButtonText: '取消',
  634. type: 'warning'
  635. }).then(() => {
  636. if (isChild) {
  637. for (const index in this.groupForm.adviceNames) {
  638. if (this.groupForm.adviceNames[index].row_key == this.groupSelectRow.parent_row) {
  639. for (const j in this.groupForm.adviceNames[index].children) {
  640. if (this.groupForm.adviceNames[index].children[j].row_key == this.groupSelectRow.row_key) {
  641. this.groupForm.adviceNames[index].children.splice(j, 1);
  642. this.$set(this.groupForm.adviceNames, index, this.groupForm.adviceNames[index]);
  643. break;
  644. }
  645. }
  646. }
  647. }
  648. } else {
  649. for (const index in this.groupForm.adviceNames) {
  650. if (this.groupForm.adviceNames[index].row_key == this.groupSelectRow.row_key) {
  651. this.groupForm.adviceNames.splice(index, 1);
  652. break;
  653. }
  654. }
  655. }
  656. }).catch(() => {
  657. });
  658. },
  659. submitNameForm(formName) {
  660. var _this = this;
  661. this.$refs[formName].validate((valid) => {
  662. if (valid) {
  663. if (_this.nameForm.isEdit) {
  664. var ale = _this.groupForm.adviceNames.length;
  665. if (_this.isChild) {
  666. for (let index = 0; index < ale; index++) {
  667. if (_this.groupSelectRow.parent_row == _this.groupForm.adviceNames[index].row_key) {
  668. var cle = _this.groupForm.adviceNames[index].children.length
  669. var children = _this.groupForm.adviceNames[index].children
  670. for (let j = 0; j < ale; j++) {
  671. if (_this.groupSelectRow.row_key == children[j].row_key) {
  672. _this.groupForm.adviceNames[index].children[j].advice_name = _this.nameForm.advice_name;
  673. _this.groupForm.adviceNames[index].children[j].advice_desc = _this.nameForm.advice_desc;
  674. _this.groupForm.adviceNames[index].children[j].single_dose = '' + _this.nameForm.single_dose;
  675. _this.groupForm.adviceNames[index].children[j].single_dose_unit = _this.nameForm.single_dose_unit;
  676. _this.groupForm.adviceNames[index].children[j].drug_spec = '' + _this.nameForm.drug_spec;
  677. _this.groupForm.adviceNames[index].children[j].drug_spec_unit = _this.nameForm.drug_spec_unit;
  678. _this.groupForm.adviceNames[index].children[j].prescribing_number = '' + _this.nameForm.prescribing_number;
  679. _this.groupForm.adviceNames[index].children[j].prescribing_number_unit = _this.nameForm.prescribing_number_unit;
  680. _this.groupForm.adviceNames[index].children[j].delivery_way = _this.nameForm.delivery_way;
  681. _this.groupForm.adviceNames[index].children[j].execution_frequency = _this.nameForm.execution_frequency;
  682. _this.$set(_this.groupForm.adviceNames[index].children, j, _this.groupForm.adviceNames[index].children[j]);
  683. break;
  684. }
  685. }
  686. }
  687. }
  688. } else {
  689. for (let index = 0; index < ale; index++) {
  690. if (_this.groupSelectRow.row_key == _this.groupForm.adviceNames[index].row_key) {
  691. _this.groupForm.adviceNames[index].advice_name = _this.nameForm.advice_name;
  692. _this.groupForm.adviceNames[index].advice_desc = _this.nameForm.advice_desc;
  693. _this.groupForm.adviceNames[index].single_dose = '' + _this.nameForm.single_dose;
  694. _this.groupForm.adviceNames[index].single_dose_unit = _this.nameForm.single_dose_unit;
  695. _this.groupForm.adviceNames[index].drug_spec = '' + _this.nameForm.drug_spec;
  696. _this.groupForm.adviceNames[index].drug_spec_unit = _this.nameForm.drug_spec_unit;
  697. _this.groupForm.adviceNames[index].prescribing_number = '' + _this.nameForm.prescribing_number;
  698. _this.groupForm.adviceNames[index].prescribing_number_unit = _this.nameForm.prescribing_number_unit;
  699. _this.groupForm.adviceNames[index].delivery_way = _this.nameForm.delivery_way;
  700. _this.groupForm.adviceNames[index].execution_frequency = _this.nameForm.execution_frequency;
  701. _this.$set(_this.groupForm.adviceNames, index, _this.groupForm.adviceNames[index]);
  702. break;
  703. }
  704. }
  705. }
  706. } else {
  707. if (_this.isChild) {
  708. _this.editRowKey++;
  709. _this.nameForm.row_key = _this.editRowKey;
  710. var ale = _this.groupForm.adviceNames.length;
  711. for (let index = 0; index < ale; index++) {
  712. if (_this.nameForm.parent_row == _this.groupForm.adviceNames[index].row_key) {
  713. _this.groupForm.adviceNames[index].children.push(_this.nameForm);
  714. _this.$set(_this.groupForm.adviceNames, index, _this.groupForm.adviceNames[index]);
  715. break;
  716. }
  717. }
  718. } else {
  719. _this.editRowKey++;
  720. _this.nameForm.row_key = _this.editRowKey;
  721. _this.groupForm.adviceNames.push(_this.nameForm);
  722. }
  723. }
  724. _this.nameFormVisible = false;
  725. }
  726. });
  727. console.log(_this.groupForm.adviceNames)
  728. },
  729. openGroupChild() {
  730. if (this.groupSelectRow === null) {
  731. this.$notify.error({
  732. title: "错误",
  733. message: "未选择医嘱内容,无法添加子药"
  734. });
  735. return;
  736. } else if (this.groupSelectRow.parent_row > 0) {
  737. this.$notify.error({
  738. title: "错误",
  739. message: "子药不能添加子药"
  740. });
  741. return;
  742. }
  743. this.nameForm = {
  744. advice_name: "",
  745. advice_desc: "",
  746. single_dose: "",
  747. single_dose_unit: "",
  748. drug_spec: "",
  749. drug_spec_unit: "",
  750. prescribing_number: "",
  751. prescribing_number_unit: "",
  752. delivery_way: this.groupSelectRow.delivery_way,
  753. execution_frequency: this.groupSelectRow.execution_frequency,
  754. isEdit: 0,
  755. index: 0,
  756. children: [],
  757. parent_row: this.groupSelectRow.row_key,
  758. id: 0,
  759. };
  760. this.isChild = true;
  761. this.nameFormVisible = true;
  762. this.nameFormTitle = '添加子药内容';
  763. },
  764. openGroupAdvice(isEdit) {
  765. this.isChild = false;
  766. if (isEdit) {
  767. if (this.groupSelectRow === null) {
  768. this.$notify.error({
  769. title: "错误",
  770. message: "未选择要修改的医嘱内容"
  771. });
  772. return;
  773. }
  774. if (this.groupSelectRow.parent_row) {
  775. this.isChild = true;
  776. }
  777. this.nameForm = {
  778. advice_name: this.groupSelectRow.advice_name,
  779. advice_desc: this.groupSelectRow.advice_desc,
  780. single_dose: this.groupSelectRow.single_dose!=0?this.groupSelectRow.single_dose:'',
  781. single_dose_unit: this.groupSelectRow.single_dose_unit,
  782. drug_spec: this.groupSelectRow.drug_spec!=0?this.groupSelectRow.drug_spec:'',
  783. drug_spec_unit: this.groupSelectRow.drug_spec_unit,
  784. prescribing_number: this.groupSelectRow.prescribing_number!=0?this.groupSelectRow.prescribing_number:'',
  785. prescribing_number_unit: this.groupSelectRow.prescribing_number_unit,
  786. delivery_way: this.isChild ? '' : this.groupSelectRow.delivery_way,
  787. execution_frequency: this.isChild ? '' : this.groupSelectRow.execution_frequency,
  788. isEdit: 1,
  789. index: this.groupSelectRow.index,
  790. id: this.groupSelectRow.id,
  791. children: [],
  792. parent_row: this.groupSelectRow.parent_row,
  793. // row_key:this.groupSelectRow.row_key,
  794. };
  795. this.nameFormTitle = '修改医嘱内容';
  796. } else {
  797. this.nameForm = {
  798. advice_name: "",
  799. advice_desc: "",
  800. single_dose: "",
  801. single_dose_unit: "",
  802. drug_spec: "",
  803. drug_spec_unit: "",
  804. prescribing_number: "",
  805. prescribing_number_unit: "",
  806. delivery_way: "",
  807. execution_frequency: "",
  808. isEdit: 0,
  809. index: 0,
  810. id: 0,
  811. children: [],
  812. parent_row: 0,
  813. };
  814. this.nameFormTitle = '添加医嘱内容';
  815. }
  816. this.nameFormVisible = true;
  817. },
  818. changeAdvice(selection) {
  819. this.selectedTemplate = selection;
  820. },
  821. selectAdvice(selection, row) {
  822. // this.selectedTemplate = [];
  823. console.log(selection)
  824. var adviceArray = this.adviceTemplateMaps[this.selectedTemp.id].DoctorAdviceTemplate
  825. console.log(adviceArray)
  826. for (let y = 0; y < adviceArray.length; y++) {
  827. adviceArray[y].selection = false
  828. }
  829. if (selection.length > 0) {
  830. for (let y = 0; y < adviceArray.length; y++) {
  831. for (let i = 0; i < selection.length; i++) {
  832. if (adviceArray[y].id == selection[i].advice_id) {
  833. adviceArray[y].selection = true
  834. }
  835. }
  836. }
  837. }
  838. console.log(adviceArray)
  839. if (row.children.length > 0) {
  840. for (const index in row.children) {
  841. this.$refs.selecttemplatetable.toggleRowSelection(row.children[index]);
  842. }
  843. }
  844. //下面两步的作用是为了上选中的数据的输出顺序不变
  845. for (const index in this.selectedTemp.list) {
  846. this.$refs.selecttemplatetable.toggleRowSelection(this.selectedTemp.list[index]);
  847. if (this.selectedTemp.list[index].children.length > 0) {
  848. for (const j in this.selectedTemp.list[index].children) {
  849. this.$refs.selecttemplatetable.toggleRowSelection(this.selectedTemp.list[index].children[j]);
  850. }
  851. }
  852. }
  853. for (const index in this.selectedTemp.list) {
  854. this.$refs.selecttemplatetable.toggleRowSelection(this.selectedTemp.list[index]);
  855. if (this.selectedTemp.list[index].children.length > 0) {
  856. for (const j in this.selectedTemp.list[index].children) {
  857. this.$refs.selecttemplatetable.toggleRowSelection(this.selectedTemp.list[index].children[j]);
  858. }
  859. }
  860. }
  861. },
  862. spanselecttable({row, column, rowIndex, columnIndex}) {
  863. if (columnIndex == 0) {
  864. const _row = this.selectedTemp.rows[rowIndex];
  865. const _col = _row > 0 ? 1 : 0;
  866. return {
  867. rowspan: _row,
  868. colspan: _col
  869. }
  870. }
  871. },
  872. calcselectedTemp() {
  873. var rowKeys = 0;
  874. for (const index in this.selectedTemp.list) {
  875. var pkey = rowKeys;
  876. this.selectedTemp.rows[rowKeys] = 1;
  877. if (this.selectedTemp.list[index].children.length > 0) {
  878. for (const childindex in this.selectedTemp.list[index].children) {
  879. rowKeys++;
  880. this.selectedTemp.rows[pkey] += 1;
  881. this.selectedTemp.rows[rowKeys] = 0;
  882. }
  883. }
  884. rowKeys++;
  885. this.$nextTick(function () {
  886. if (this.selectedTemp.list[index].selection) {
  887. this.$refs.selecttemplatetable.toggleRowSelection(this.selectedTemp.list[index]);
  888. }
  889. })
  890. }
  891. },
  892. templateTableChange(currentRow, oldCurrentRow) {
  893. this.selectedTemp = {'id': 0, name: '', org_id: 0, 'list': [], 'rows': []};
  894. if (currentRow == null) {
  895. return false;
  896. }
  897. this.selectedTemp.id = currentRow.id;
  898. this.selectedTemp.name = currentRow.name;
  899. this.selectedTemp.org_id = currentRow.org_id;
  900. if (this.selectedTemp.id in this.adviceTemplateMaps) {
  901. var mapid = this.selectedTemp.id;
  902. var thisRowKey = 0;
  903. for (const index in this.adviceTemplateMaps[mapid].DoctorAdviceTemplate) {
  904. thisRowKey++;
  905. var item = {
  906. advice_name: this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].advice_name,
  907. advice_desc: this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].advice_desc,
  908. single_dose: '' + this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].single_dose,
  909. single_dose_unit: this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].single_dose_unit,
  910. drug_spec: '' + this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].drug_spec,
  911. drug_spec_unit: this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].drug_spec_unit,
  912. prescribing_number: '' + this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].prescribing_number,
  913. prescribing_number_unit: this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].prescribing_number_unit,
  914. delivery_way: this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].delivery_way,
  915. execution_frequency: this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].execution_frequency,
  916. selection: this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].selection,
  917. advice_id: this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].id,
  918. isEdit: 0,
  919. id: 0,
  920. children: [],
  921. parent_row: 0,
  922. row_key: thisRowKey,
  923. }
  924. if ('children' in this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index] && this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].children.length > 0) {
  925. var parentRow = thisRowKey;
  926. var children = this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].children
  927. for (const key in children) {
  928. thisRowKey++
  929. var child = {
  930. advice_id: children[key].id,
  931. advice_name: children[key].advice_name,
  932. advice_desc: children[key].advice_desc,
  933. single_dose: '' + children[key].single_dose,
  934. single_dose_unit: children[key].single_dose_unit,
  935. drug_spec: '' + children[key].drug_spec,
  936. drug_spec_unit: children[key].drug_spec_unit,
  937. prescribing_number: '' + children[key].prescribing_number,
  938. prescribing_number_unit: children[key].prescribing_number_unit,
  939. delivery_way: children[key].delivery_way,
  940. execution_frequency: children[key].execution_frequency,
  941. isEdit: 0,
  942. id: 0,
  943. children: [],
  944. parent_row: parentRow,
  945. row_key: thisRowKey,
  946. }
  947. item.children.push(child);
  948. }
  949. this.$set(item, 'children', item.children);
  950. }
  951. this.selectedTemp.list.unshift(item);
  952. }
  953. }
  954. },
  955. newAddTempForm() {
  956. this.allSelectedTemplate = []
  957. var thisRowKey = 0;
  958. for (const indexs in this.adviceTemplateMaps) {
  959. let adviceTemplate = this.adviceTemplateMaps[indexs]
  960. for (const index in adviceTemplate.DoctorAdviceTemplate) {
  961. if (adviceTemplate.DoctorAdviceTemplate[index].selection) {
  962. thisRowKey++;
  963. var item = {
  964. advice_name: adviceTemplate.DoctorAdviceTemplate[index].advice_name,
  965. advice_desc: adviceTemplate.DoctorAdviceTemplate[index].advice_desc,
  966. single_dose: '' + adviceTemplate.DoctorAdviceTemplate[index].single_dose,
  967. single_dose_unit: adviceTemplate.DoctorAdviceTemplate[index].single_dose_unit,
  968. drug_spec: '' + adviceTemplate.DoctorAdviceTemplate[index].drug_spec,
  969. drug_spec_unit: adviceTemplate.DoctorAdviceTemplate[index].drug_spec_unit,
  970. prescribing_number: '' + adviceTemplate.DoctorAdviceTemplate[index].prescribing_number,
  971. prescribing_number_unit: adviceTemplate.DoctorAdviceTemplate[index].prescribing_number_unit,
  972. delivery_way: adviceTemplate.DoctorAdviceTemplate[index].delivery_way,
  973. execution_frequency: adviceTemplate.DoctorAdviceTemplate[index].execution_frequency,
  974. advice_id: adviceTemplate.DoctorAdviceTemplate[index].id,
  975. selection: adviceTemplate.DoctorAdviceTemplate[index].selection,
  976. isEdit: 0,
  977. id: 0,
  978. children: [],
  979. parent_row: 0,
  980. row_key: thisRowKey,
  981. }
  982. if ('children' in adviceTemplate.DoctorAdviceTemplate[index] && adviceTemplate.DoctorAdviceTemplate[index].children.length > 0) {
  983. var parentRow = thisRowKey;
  984. var children = adviceTemplate.DoctorAdviceTemplate[index].children
  985. for (const key in children) {
  986. thisRowKey++
  987. var child = {
  988. advice_id: children[key].id,
  989. advice_name: children[key].advice_name,
  990. advice_desc: children[key].advice_desc,
  991. single_dose: '' + children[key].single_dose,
  992. single_dose_unit: children[key].single_dose_unit,
  993. drug_spec: '' + children[key].drug_spec,
  994. drug_spec_unit: children[key].drug_spec_unit,
  995. prescribing_number: '' + children[key].prescribing_number,
  996. prescribing_number_unit: children[key].prescribing_number_unit,
  997. delivery_way: children[key].delivery_way,
  998. execution_frequency: children[key].execution_frequency,
  999. isEdit: 0,
  1000. id: 0,
  1001. children: [],
  1002. parent_row: parentRow,
  1003. row_key: thisRowKey,
  1004. }
  1005. item.children.push(child);
  1006. this.allSelectedTemplate.unshift(child)
  1007. }
  1008. this.$set(item, 'children', item.children);
  1009. }
  1010. this.allSelectedTemplate.unshift(item);
  1011. adviceTemplate.DoctorAdviceTemplate[index].selection = false
  1012. }
  1013. }
  1014. }
  1015. var childMap = {};
  1016. for (const index in this.allSelectedTemplate) {
  1017. if (this.allSelectedTemplate[index].parent_row > 0) {
  1018. if (!(this.allSelectedTemplate[index].parent_row in childMap)) {
  1019. childMap[this.allSelectedTemplate[index].parent_row] = [];
  1020. }
  1021. childMap[this.allSelectedTemplate[index].parent_row].push(this.allSelectedTemplate[index]);
  1022. }
  1023. }
  1024. for (const index in this.allSelectedTemplate) {
  1025. if (this.allSelectedTemplate[index].parent_row > 0) {
  1026. continue;
  1027. }
  1028. this.editRowKey++;
  1029. var item = {
  1030. advice_name: this.allSelectedTemplate[index].advice_name,
  1031. advice_desc: this.allSelectedTemplate[index].advice_desc,
  1032. single_dose: '' + this.allSelectedTemplate[index].single_dose,
  1033. single_dose_unit: this.allSelectedTemplate[index].single_dose_unit,
  1034. drug_spec: '' + this.allSelectedTemplate[index].drug_spec,
  1035. drug_spec_unit: this.allSelectedTemplate[index].drug_spec_unit,
  1036. prescribing_number: '' + this.allSelectedTemplate[index].prescribing_number,
  1037. prescribing_number_unit: this.allSelectedTemplate[index].prescribing_number_unit,
  1038. delivery_way: this.allSelectedTemplate[index].delivery_way,
  1039. execution_frequency: this.allSelectedTemplate[index].execution_frequency,
  1040. isEdit: 0,
  1041. id: 0,
  1042. children: [],
  1043. parent_row: 0,
  1044. row_key: this.editRowKey,
  1045. }
  1046. if (this.allSelectedTemplate[index].children.length > 0) {
  1047. if (this.allSelectedTemplate[index].row_key in childMap) {
  1048. var parentRow = this.editRowKey;
  1049. var children = childMap[this.allSelectedTemplate[index].row_key];
  1050. for (const key in children) {
  1051. this.editRowKey++
  1052. var child = {
  1053. advice_name: children[key].advice_name,
  1054. advice_desc: children[key].advice_desc,
  1055. single_dose: '' + children[key].single_dose,
  1056. single_dose_unit: children[key].single_dose_unit,
  1057. drug_spec: '' + children[key].drug_spec,
  1058. drug_spec_unit: children[key].drug_spec_unit,
  1059. prescribing_number: '' + children[key].prescribing_number,
  1060. prescribing_number_unit: children[key].prescribing_number_unit,
  1061. delivery_way: children[key].delivery_way,
  1062. execution_frequency: children[key].execution_frequency,
  1063. isEdit: 0,
  1064. id: 0,
  1065. children: [],
  1066. parent_row: parentRow,
  1067. row_key: this.editRowKey,
  1068. }
  1069. item.children.push(child);
  1070. }
  1071. this.$set(item, 'children', item.children);
  1072. }
  1073. }
  1074. this.groupForm.adviceNames.push(item);
  1075. }
  1076. this.templateFormVisible = false;
  1077. },
  1078. addTempForm(formName) {
  1079. var _this = this;
  1080. this.$refs[formName].validate((valid) => {
  1081. if (valid) {
  1082. if (_this.templateForm.id in _this.adviceTemplateMaps) {
  1083. var mapid = _this.templateForm.id;
  1084. for (const index in _this.adviceTemplateMaps[mapid].DoctorAdviceTemplate) {
  1085. this.editRowKey++;
  1086. var item = {
  1087. advice_name: _this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].advice_name,
  1088. advice_desc: _this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].advice_desc,
  1089. single_dose: '' + _this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].single_dose,
  1090. single_dose_unit: _this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].single_dose_unit,
  1091. drug_spec: '' + _this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].drug_spec,
  1092. drug_spec_unit: _this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].drug_spec_unit,
  1093. prescribing_number: '' + _this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].prescribing_number,
  1094. prescribing_number_unit: _this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].prescribing_number_unit,
  1095. delivery_way: _this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].delivery_way,
  1096. execution_frequency: _this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].execution_frequency,
  1097. isEdit: 0,
  1098. id: 0,
  1099. children: [],
  1100. parent_row: 0,
  1101. row_key: this.editRowKey,
  1102. }
  1103. if ('children' in _this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index] && _this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].children) {
  1104. var parentRow = this.editRowKey;
  1105. var children = _this.adviceTemplateMaps[mapid].DoctorAdviceTemplate[index].children
  1106. for (const key in children) {
  1107. this.editRowKey++
  1108. var child = {
  1109. advice_name: children[key].advice_name,
  1110. advice_desc: children[key].advice_desc,
  1111. single_dose: '' + children[key].single_dose,
  1112. single_dose_unit: children[key].single_dose_unit,
  1113. drug_spec: '' + children[key].drug_spec,
  1114. drug_spec_unit: children[key].drug_spec_unit,
  1115. prescribing_number: '' + children[key].prescribing_number,
  1116. prescribing_number_unit: children[key].prescribing_number_unit,
  1117. delivery_way: children[key].delivery_way,
  1118. execution_frequency: children[key].execution_frequency,
  1119. isEdit: 0,
  1120. id: 0,
  1121. children: [],
  1122. parent_row: parentRow,
  1123. row_key: this.editRowKey,
  1124. }
  1125. item.children.push(child);
  1126. }
  1127. _this.$set(item, 'children', item.children);
  1128. }
  1129. _this.groupForm.adviceNames.unshift(item);
  1130. }
  1131. }
  1132. _this.templateFormVisible = false;
  1133. }
  1134. });
  1135. },
  1136. openAdviceTemplate() {
  1137. this.templateForm = {id: ''};
  1138. this.selectedTemp = {'id': 0, name: '', org_id: 0, 'list': [], 'rows': []};
  1139. this.selectedTemplate = [];
  1140. if (typeof (this.$refs.templatetable) != 'undefined') {
  1141. this.$refs.templatetable.setCurrentRow(null);
  1142. }
  1143. this.templateFormVisible = true;
  1144. },
  1145. selectGroupAdvice(row) {
  1146. this.groupSelectRow = row;
  1147. },
  1148. groupClassName({row, rowIndex}) {
  1149. row.index = rowIndex;
  1150. },
  1151. getRowKey(row) {
  1152. return row.row_key;
  1153. },
  1154. resetForm(formName) {
  1155. this.$refs[formName].resetFields();
  1156. },
  1157. open() {
  1158. this.groupAddFormVisible = true;
  1159. this.groupSelectRow = null;
  1160. if (typeof (this.$refs.advicenametable) != 'undefined') {
  1161. this.$refs.advicenametable.setCurrentRow(null);
  1162. }
  1163. this.editRowKey = 0;
  1164. this.groupForm = {
  1165. advice_type: 2,
  1166. advice_date: this.recordDate,
  1167. start_time: "",
  1168. adviceNames: [],
  1169. advice_doctor: "",
  1170. remark: "",
  1171. parent_id: 0,
  1172. }
  1173. var xtuser = this.$store.getters.xt_user;
  1174. // this.orgname = xtuser.org.org_name;
  1175. this.adminusername = xtuser.user.user_name;
  1176. }, selectAllTemplateAdvice(selection) {
  1177. var adviceArray = this.adviceTemplateMaps[this.selectedTemp.id].DoctorAdviceTemplate
  1178. for (let y = 0; y < adviceArray.length; y++) {
  1179. adviceArray[y].selection = false
  1180. }
  1181. if (selection.length > 0) {
  1182. for (let y = 0; y < adviceArray.length; y++) {
  1183. for (let i = 0; i < selection.length; i++) {
  1184. if (adviceArray[y].id == selection[i].advice_id) {
  1185. adviceArray[y].selection = true
  1186. }
  1187. }
  1188. }
  1189. }
  1190. }, cancleDialog() {
  1191. this.templateFormVisible = false
  1192. for (const indexs in this.adviceTemplateMaps) {
  1193. let adviceTemplate = this.adviceTemplateMaps[indexs]
  1194. for (const index in adviceTemplate.DoctorAdviceTemplate) {
  1195. adviceTemplate.DoctorAdviceTemplate[index].selection = false
  1196. }
  1197. }
  1198. }
  1199. },
  1200. watch: {
  1201. 'selectedTemp.list': function () {
  1202. this.calcselectedTemp();
  1203. },
  1204. },
  1205. }
  1206. </script>
  1207. <style>
  1208. #user-edit-advice-name-table .el-table__row {
  1209. display: table-row !important;
  1210. }
  1211. #user-edit-advice-name-table .el-table__expand-icon {
  1212. -webkit-transform: rotate(90deg) !important;
  1213. transform: rotate(90deg) !important;
  1214. }
  1215. #dialysis-add-select-template-table .el-table__row {
  1216. display: table-row !important;
  1217. }
  1218. #dialysis-add-select-template-table .el-table__expand-icon {
  1219. -webkit-transform: rotate(90deg) !important;
  1220. transform: rotate(90deg) !important;
  1221. }
  1222. </style>