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.

266 lines
8.6 KiB

2 years ago
2 years ago
2 years ago
1 week ago
2 years ago
2 years ago
1 week ago
2 years ago
1 week ago
2 years ago
1 week ago
2 years ago
2 years ago
1 week ago
2 years ago
2 years ago
2 years ago
1 week ago
2 years ago
1 week ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1 week ago
2 years ago
3 weeks ago
2 years ago
1 week ago
2 years ago
1 week ago
2 years ago
1 week ago
2 years ago
2 years ago
2 years ago
1 week ago
2 years ago
2 years ago
1 week ago
2 years ago
2 years ago
1 week ago
2 years ago
1 week ago
2 years ago
1 week ago
2 years ago
1 week ago
2 years ago
2 years ago
1 week ago
2 years ago
2 years ago
2 years ago
1 week ago
2 years ago
1 week ago
2 years ago
1 week ago
2 years ago
2 years ago
2 years ago
2 years ago
1 week ago
2 years ago
1 week ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
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 week ago
2 years ago
1 week ago
2 years ago
1 week ago
2 years ago
1 week ago
2 years ago
2 years ago
1 week ago
2 years ago
1 week ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
2 years ago
1 week ago
2 years ago
1 week ago
2 years ago
1 week ago
2 years ago
1 week ago
2 years ago
1 week ago
2 years ago
1 week ago
2 years ago
1 week ago
2 years ago
1 week ago
2 years ago
2 years ago
1 week ago
2 years ago
1 week ago
2 years ago
1 week ago
2 years ago
2 years ago
  1. <template>
  2. <div style="margin-top: -10px;">
  3. <div>
  4. <el-tabs v-model="tabChoosed" style="margin-top: 0px;">
  5. <el-tab-pane label="待发申请检查项目" name="1">
  6. <el-table :data="tableDataReq0" border style="width: 100%" row-key="id" height="450" highlight-current-row
  7. size="small" @selection-change="handleSelectionChange" :row-style="{ height: '25px' }">
  8. <el-table-column type="selection" align="center" width="40" />
  9. <el-table-column type="index" label="序号" align="center" width="40" />
  10. <el-table-column label="检查ID" min-width="320" prop="registerCheckId"></el-table-column>
  11. <el-table-column label="组合项目" min-width="150" prop="asbitemName"></el-table-column>
  12. <el-table-column label="申请号" min-width="120" prop="checkRequestNo"></el-table-column>
  13. <el-table-column prop="execFlag" label="状态" min-width="70" align="center" />
  14. </el-table>
  15. </el-tab-pane>
  16. <el-tab-pane label="已发申请检查项目" name="2">
  17. <el-table :data="tableDataReq1" border style="width: 100%" row-key="id" height="450" highlight-current-row
  18. size="small" @row-click="rowClick" :row-style="{ height: '25px' }">
  19. <el-table-column type="index" label="序号" align="center" width="40" />
  20. <el-table-column label="检查ID" min-width="320" prop="registerCheckId"></el-table-column>
  21. <el-table-column label="组合项目" min-width="150" prop="asbitemName"></el-table-column>
  22. <el-table-column label="申请号" min-width="120" prop="checkRequestNo"></el-table-column>
  23. <el-table-column prop="execFlag" label="状态" min-width="70" align="center" />
  24. <el-table-column label="操作" width="50" align="center">
  25. <template slot-scope="scope">
  26. <el-dropdown>
  27. <span>
  28. <i class="el-icon-s-operation" style="font-size: 24px;color: blue;cursor:pointer;"></i>
  29. </span>
  30. <el-dropdown-menu slot="dropdown">
  31. <el-dropdown-item @click.native="cancelRequest(scope.row)"
  32. :disabled="setBtnDisabled(scope.row, 'cancel')">撤消申请</el-dropdown-item>
  33. <!--
  34. <el-dropdown-item @click.native="refreshRequest(scope.row)">刷新状态</el-dropdown-item>
  35. <el-dropdown-item @click.native="chargeBack(scope.row)"
  36. :disabled="setBtnDisabled(scope.row, 'chargeBack')">退费申请</el-dropdown-item>
  37. -->
  38. </el-dropdown-menu>
  39. </el-dropdown>
  40. </template>
  41. </el-table-column>
  42. </el-table>
  43. </el-tab-pane>
  44. </el-tabs>
  45. </div>
  46. <!-- 按钮区域 -->
  47. <div style="display: flex; margin-top: 10px; justify-content: space-between;">
  48. <div></div>
  49. <div style="display: flex;">
  50. <div style="margin-left: 10px">
  51. <el-button class="commonbutton" @click="btnRefresh">刷新</el-button>
  52. </div>
  53. <div style="margin-left: 10px" v-show="tabChoosed == '1'">
  54. <el-button class="commonbutton" @click="btnSubmit">检查申请</el-button>
  55. </div>
  56. <div style="margin-left: 10px">
  57. <el-button class="commonbutton" @click="dialogWin.ThirdPacsRequest = false">关闭</el-button>
  58. </div>
  59. </div>
  60. </div>
  61. </div>
  62. </template>
  63. <script>
  64. import { mapState } from "vuex";
  65. import { getapi, postapi, putapi, deletapi } from "@/api/api";
  66. import { dddw, arrayExistObj, deepCopy } from "../../utlis/proFunc";
  67. // import
  68. export default {
  69. props: ["refParams"],
  70. data() {
  71. return {
  72. tabChoosed: '1',
  73. tableDataReq0: [], //组合项目数据 过滤后显示的数据
  74. selectedData: [], //选中的组合项目
  75. tableDataReq1: [], //检查申请单
  76. tableDataReq1Details: [], //检查申请单明细
  77. };
  78. },
  79. created() {
  80. },
  81. mounted() {
  82. this.initData(this.refParams.patientRegisterId);
  83. },
  84. computed: {
  85. ...mapState(["dict", "dataTransOpts", "dialogWin"]),
  86. },
  87. methods: {
  88. initData(patientRegisterId) {
  89. this.tableDataReq0 = []
  90. this.tableDataReq1 = []
  91. this.tableDataReq1Details = []
  92. if (!patientRegisterId) return
  93. //待发申请 检查项目
  94. this.asbList(patientRegisterId)
  95. // 检查申请单
  96. this.requestList(patientRegisterId)
  97. },
  98. // 待检查项目
  99. asbList(patientRegisterId) {
  100. this.tableDataReq0 = []
  101. postapi('/api/app/RegisterCheck/GetPacsRequestListByPatientRegisterId', { patientRegisterId, execFlag: '0' })
  102. .then(res => {
  103. if (res.code > -1) {
  104. this.tableDataReq0 = res.data
  105. }
  106. })
  107. },
  108. // 检查申请单列表查询
  109. requestList(patientRegisterId) {
  110. this.tableDataReq1 = []
  111. postapi('/api/app/RegisterCheck/GetPacsRequestListByPatientRegisterId', { patientRegisterId, execFlag: '1' })
  112. .then(res => {
  113. if (res.code > -1) {
  114. this.tableDataReq1 = res.data
  115. }
  116. })
  117. },
  118. setChargeRequestFlag(chargeRequestFlag) {
  119. let ret = '检查申请'
  120. switch (chargeRequestFlag) {
  121. case '1':
  122. ret = '已检查'
  123. break;
  124. case '2':
  125. ret = '作废申请'
  126. break;
  127. case '3':
  128. ret = '已作废'
  129. break;
  130. case '4':
  131. ret = '退费申请'
  132. break;
  133. case '5':
  134. ret = '已退费'
  135. break;
  136. default:
  137. break;
  138. }
  139. return ret
  140. },
  141. handleSelectionChange(v) {
  142. this.selectedData = v;
  143. },
  144. setBtnDisabled(row, oprType) {
  145. let ret = true
  146. if (oprType == 'chargeBack') {
  147. if (row.chargeRequestFlag == '1') ret = false
  148. } else {
  149. if (row.chargeRequestFlag == '0') ret = false
  150. }
  151. return ret
  152. },
  153. // 获取申请单明细
  154. rowClick(row) {
  155. },
  156. // 刷新状态
  157. refreshRequest(row) {
  158. console.log('refreshRequest', row)
  159. postapi('/api/app/ChargeRequest/SyncChargeRequestFlagFromInterface', { chargeRequestId: row.id })
  160. .then(res => {
  161. if (res.code > -1) {
  162. this.btnRefresh()
  163. }
  164. })
  165. },
  166. // 撤消申请(作废申请)
  167. cancelRequest(row) {
  168. postapi('/api/app/RegisterCheck/CancelThirdPacsRequest', { registerCheckId: row.registerCheckId })
  169. .then(res => {
  170. if (res.code > -1) {
  171. this.requestList(this.refParams.patientRegisterId)
  172. }
  173. })
  174. },
  175. // 退费申请
  176. chargeBack(row) {
  177. postapi('/api/app/ChargeRequest/RefundChargeRequest', { chargeRequestId: row.id })
  178. .then(res => {
  179. if (res.code > -1) {
  180. row.chargeRequestFlag = "4"
  181. }
  182. })
  183. },
  184. // 刷新
  185. btnRefresh() {
  186. if (this.tabChoosed == '1') {
  187. this.asbList(this.refParams.patientRegisterId)
  188. } else {
  189. this.requestList(this.refParams.patientRegisterId)
  190. }
  191. },
  192. // 发送申请
  193. async btnSubmit() {
  194. if (this.selectedData.length == 0) {
  195. this.$message.warning({ showClose: true, message: `请勾选要发送检查申请的检查项目!` });
  196. return;
  197. }
  198. for (let index = 0; index < this.selectedData.length; index++) {
  199. let e = this.selectedData[index];
  200. await postapi("/api/app/RegisterCheck/SendThirdPacsRequest", { registerCheckId: e.registerCheckId })
  201. }
  202. // 刷新
  203. this.asbList(this.refParams.patientRegisterId)
  204. },
  205. },
  206. //监听事件
  207. watch: {
  208. //
  209. "refParams.brushTimes": {
  210. // immediate: true, // 立即执行
  211. // // deep: true, // 深度监听复杂类型内变化
  212. handler(newVal, oldVal) {
  213. console.log(`watch: 检查申请 newVal: ${newVal}, oldVal: ${oldVal}, 人员条码号: `, this.refParams.patientRegisterId)
  214. if (newVal != oldVal) this.initData(this.refParams.patientRegisterId)
  215. }
  216. },
  217. "tabChoosed": {
  218. // immediate: true, // 立即执行
  219. // // deep: true, // 深度监听复杂类型内变化
  220. handler(newVal, oldVal) {
  221. console.log(`watch: 检查申请 newVal: ${newVal}, oldVal: ${oldVal}, 人员条码号: `, this.refParams.patientRegisterId)
  222. if (newVal != oldVal) {
  223. if (newVal == '1') {
  224. this.asbList(this.refParams.patientRegisterId)
  225. } else {
  226. this.requestList(this.refParams.patientRegisterId)
  227. }
  228. }
  229. }
  230. },
  231. },
  232. };
  233. </script>
  234. <style scoped>
  235. @import "../../assets/css/global_input.css";
  236. @import "../../assets/css/global_table.css";
  237. @import "../../assets/css/global.css";
  238. </style>