index.vue 8.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. <template>
  2. <div id="MyDiv">
  3. <div class="cont">
  4. <div class="cont_container">
  5. <el-form :inline="true" :model="formInline" class="demo-form-inline">
  6. <el-form-item label="考核指标">
  7. <el-input v-model="formInline.user" placeholder="请输入考核指标"></el-input>
  8. </el-form-item>
  9. <el-form-item label="指标类型">
  10. <el-select v-model="formInline.region" placeholder="请选择指标类型">
  11. <el-option label="出院患者手术占比" value="0"></el-option>
  12. <el-option label="出院患者四级手术占比" value="1"></el-option>
  13. <el-option label="I类切口手术部位感染率" value="2"></el-option>
  14. <el-option label="出院患者微创手术占比" value="3"></el-option>
  15. <el-option label="手术患者并发症发生率" value="4"></el-option>
  16. </el-select>
  17. </el-form-item>
  18. <el-form-item label="时间">
  19. <el-date-picker
  20. class="width500"
  21. v-model="formInline.rangeDate"
  22. size="large"
  23. type="daterange"
  24. range-separator="-"
  25. start-placeholder="开始日期"
  26. end-placeholder="结束日期"
  27. format="yyyy 年 MM 月 dd 日"
  28. value-format="yyyyMMdd"
  29. ></el-date-picker>
  30. </el-form-item>
  31. <el-form-item>
  32. <el-button type="primary" @click="funQuery(formInline.region)">查询</el-button>
  33. </el-form-item>
  34. <el-form-item>
  35. <el-button @click="resetForm()">重置条件</el-button>
  36. </el-form-item>
  37. <el-form-item>
  38. <el-button type="warning">导出execl</el-button>
  39. </el-form-item>
  40. </el-form>
  41. </div>
  42. <div class="tableData">
  43. <el-table :data="tableData" border style="width: 100%">
  44. <el-table-column type="expand">
  45. <template slot-scope="props">
  46. <el-form label-position="left" inline class="demo-table-expand">
  47. <el-form-item :label="props.row.denominatorname">
  48. <span>{{ props.row.denominator }}</span>
  49. </el-form-item>
  50. <el-form-item :label="props.row.numeratorName">
  51. <span>{{ props.row.numerator }}</span>
  52. </el-form-item>
  53. </el-form>
  54. </template>
  55. </el-table-column>
  56. <el-table-column type="index" label="序号" width="70px">
  57. </el-table-column>
  58. <el-table-column prop="name" label="指标名称"></el-table-column>
  59. <el-table-column prop="AAA01" label="单位"></el-table-column>
  60. <el-table-column prop="AAA01" label="分工部门"></el-table-column>
  61. <el-table-column prop="AAA01" label="指标类型"></el-table-column>
  62. <el-table-column prop="res" label="得分"></el-table-column>
  63. </el-table>
  64. <!-- 分页控制 -->
  65. <!-- <el-pagination
  66. v-if="tableData && tableData.length !== 0"
  67. @size-change="SizeChangeEvent"
  68. @current-change="pageHasChanged"
  69. :total="paginationData.total"
  70. background
  71. class="table-pagination"
  72. style="margin: 15px 0px"
  73. :page-size="paginationData.pageSize"
  74. :current-page.sync="paginationData.currentPage"
  75. layout="total, sizes, prev, pager, next, jumper"
  76. ></el-pagination> -->
  77. </div>
  78. </div>
  79. </div>
  80. </template>
  81. <script>
  82. export default {
  83. name: 'assessment',
  84. components: {
  85. // OtherComponent
  86. },
  87. directives: {},
  88. filters: {},
  89. extends: {},
  90. mixins: {},
  91. props: {},
  92. data() {
  93. return {
  94. formInline: {
  95. user: '',
  96. region: '0',
  97. rangeDate: [],
  98. },
  99. tableData:[
  100. {
  101. index:0,
  102. name:'出院患者手术占比',
  103. denominator:'212', //分子
  104. numerator:'2121', //分母
  105. res:'12', // 比例
  106. denominatorname:'出院患者手术台次数',
  107. numeratorName:'同期出院患者总人次数',
  108. },
  109. {
  110. index:1,
  111. name:'出院患者四级手术占比',
  112. denominator:'', //分子
  113. numerator:'', //分母
  114. denominatorname:'出院患者四级手术台次数',
  115. numeratorName:'同期出院患者手术台次数',
  116. res:'', // 比例
  117. },
  118. {
  119. index:2,
  120. name:'I类切口手术部位感染率',
  121. denominator:'', //分子
  122. numerator:'', //分母
  123. denominatorname:'I类切口手术部位感染人次数',
  124. numeratorName:'同期I类切口手术台次数',
  125. res:'', // 比例
  126. },
  127. {
  128. index:3,
  129. name:'出院患者微创手术占比',
  130. denominator:'', //分子
  131. numerator:'', //分母
  132. denominatorname:'出院患者微创手术台次数',
  133. numeratorName:'同期出院患者手术台次数',
  134. res:'', // 比例
  135. },
  136. {
  137. index:4,
  138. name:'手术患者并发症发生率',
  139. denominator:'', //分子
  140. numerator:'', //分母
  141. denominatorname:'手术患者并发症发生例数',
  142. numeratorName:'同期出院的手术患者人数',
  143. res:'', // 比例
  144. }
  145. ],
  146. paginationData: {
  147. total: 10,
  148. currentPage: 1,
  149. pageSize: 10,
  150. },
  151. };
  152. },
  153. computed: {},
  154. watch: {},
  155. beforeCreate() {
  156. // 生命周期钩子:组件实例刚被创建,组件属性计算之前,如 data 属性等
  157. },
  158. created() {
  159. // 生命周期钩子:组件实例创建完成,属性已绑定,但 DOM 还未生成,el 属性还不存在
  160. // 初始化渲染页面
  161. },
  162. beforeMount() {
  163. // 生命周期钩子:模板编译/挂载之前
  164. },
  165. mounted() {
  166. for(let i = 0 ;i< 5;i++){
  167. // this.formInline.region = i
  168. this.funQuery(i)
  169. }
  170. // 生命周期钩子:模板编译、挂载之后(此时不保证已在 document 中)
  171. },
  172. beforeUpate() {
  173. // 生命周期钩子:组件更新之前
  174. },
  175. updated() {
  176. // 生命周期钩子:组件更新之后
  177. },
  178. activated() {
  179. // 生命周期钩子:keep-alive 组件激活时调用
  180. },
  181. deactivated() {
  182. // 生命周期钩子:keep-alive 组件停用时调用
  183. },
  184. beforeDestroy() {
  185. // 生命周期钩子:实例销毁前调用
  186. },
  187. destroyed() {
  188. // 生命周期钩子:实例销毁后调用
  189. },
  190. errorCaptured(err, vm, info) {
  191. // 生命周期钩子:当捕获一个来自子孙组件的错误时被调用。此钩子会收到三个参数:错误对象、发生错误的组件实例以及一个包含错误来源信息的字符串。
  192. console.log(err, vm, info);
  193. },
  194. methods: {
  195. funQuery(i){
  196. let pramse = {
  197. start_time:this.formInline.rangeDate[0], // 开始时间
  198. end_time:this.formInline.rangeDate[1], //结束时间
  199. type:i, //要获取的数据,0出院患者手术占比,1出院患者四级手术占比,2I类切口手术部位感染率,3出院患者微创手术占比,4
  200. }
  201. console.log(i)
  202. console.log(this.formInline.region)
  203. this.$axios2.post('/get_assessment_indicators',pramse).then(res=>{
  204. this.tableData[i].denominator =res.data.denominator
  205. this.tableData[i].numerator =res.data.numerator
  206. this.tableData[i].res =res.data.res
  207. })
  208. },
  209. SizeChangeEvent(val) {
  210. this.paginationData.pageSize = val;
  211. this.funQuery();
  212. },
  213. pageHasChanged() {
  214. this.funQuery();
  215. },
  216. resetForm() {
  217. Object.assign(this.$data.formInline, this.$options.data().formInline);
  218. }
  219. },
  220. };
  221. </script>
  222. <style lang='scss' scoped>
  223. #MyDiv {
  224. margin: 0;
  225. padding: 0;
  226. }
  227. .cont {
  228. // width: 1200px;
  229. margin: 0 auto;
  230. min-height: 850px;
  231. background: #ffffff;
  232. margin-bottom: 21px;
  233. padding: 0 24px;
  234. }
  235. .title-text {
  236. font-size: 16px;
  237. color: #333333;
  238. padding: 25px 0 30px 0px;
  239. img {
  240. width: 17px;
  241. height: 14px;
  242. margin-right: 8px;
  243. }
  244. }
  245. .cont_container {
  246. padding-top: 30px;
  247. display: flex;
  248. justify-content: center;
  249. flex-direction: column;
  250. align-items: center;
  251. }
  252. .tableData{
  253. margin-top:60px;
  254. }
  255. </style>