| | |
| | | v-show="showSearch" |
| | | label-width="98px" |
| | | > |
| | | <!-- <el-form-item label="医院" prop="userName"> |
| | | <el-select v-model="queryParams.value1" placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | <!-- <el-form-item label="责任医生" prop="userName"> |
| | | <el-input |
| | | v-model="queryParams.drname" |
| | | placeholder="请输入主治医生" |
| | | ></el-input> |
| | | </el-form-item> --> |
| | | <el-form-item label="统计类型" prop="userName"> |
| | | <el-select |
| | |
| | | >重置</el-button |
| | | > |
| | | </el-form-item> |
| | | <el-col :span="19"> |
| | | <el-button |
| | | type="warning" |
| | | plain |
| | | icon="el-icon-download" |
| | | size="medium" |
| | | @click="handleExport" |
| | | >导出</el-button |
| | | > |
| | | </el-col> |
| | | </el-form> |
| | | <!-- <right-toolbar |
| | | :showSearch.sync="showSearch" |
| | | @queryTable="getList" |
| | | :columns="columns" |
| | | ></right-toolbar> --> |
| | | <el-table |
| | | v-loading="loading" |
| | | :data="userList" |
| | | :border="true" |
| | | @selection-change="handleSelectionChange" |
| | | @row-click="handleRowClick" |
| | | @expand-change="handleRowClick" |
| | | :row-key="getRowKey" |
| | | :expand-row-keys="expands" |
| | | > |
| | | <!-- 展开行箭头列 --> |
| | | <el-table-column type="expand"> |
| | | <template slot-scope="props"> |
| | | <el-table |
| | | :data="props.row.doctorStats" |
| | | border |
| | | style="width: 95%; margin: 0 auto" |
| | | class="inner-table" |
| | | > |
| | | <el-table-column |
| | | label="医生姓名" |
| | | prop="drname" |
| | | align="center" |
| | | /> |
| | | <el-table-column |
| | | label="科室" |
| | | width="120" |
| | | prop="deptname" |
| | | align="center" |
| | | /> |
| | | <el-table-column |
| | | label="出院人次" |
| | | prop="dischargeCount" |
| | | align="center" |
| | | /> |
| | | <el-table-column |
| | | label="出院人次" |
| | | align="center" |
| | | key="dischargeCount" |
| | | prop="dischargeCount" |
| | | > |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="无需随访人次" |
| | | align="center" |
| | | width="100" |
| | | key="nonFollowUp" |
| | | prop="nonFollowUp" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="应随访人次" |
| | | align="center" |
| | | width="100" |
| | | key="followUpNeeded" |
| | | prop="followUpNeeded" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column align="center" label="首次出院随访"> |
| | | <el-table-column |
| | | label="应随访" |
| | | align="center" |
| | | key="needFollowUp" |
| | | prop="needFollowUp" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="待随访" |
| | | align="center" |
| | | key="pendingFollowUp" |
| | | prop="pendingFollowUp" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="随访成功" |
| | | align="center" |
| | | key="followUpSuccess" |
| | | prop="followUpSuccess" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="随访失败" |
| | | align="center" |
| | | key="followUpFail" |
| | | prop="followUpFail" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="随访率" |
| | | align="center" |
| | | width="120" |
| | | key="followUpRate" |
| | | prop="followUpRate" |
| | | > |
| | | <!-- <template slot-scope="scope"> |
| | | <span |
| | | >{{ |
| | | (Number(scope.row.followUpRate) * 100).toFixed(2) |
| | | }}%</span |
| | | > |
| | | </template> --> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="及时率" |
| | | align="center" |
| | | width="120" |
| | | key="rate" |
| | | prop="rate" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="Seedetails(scope.row)" |
| | | ><span class="button-zx" |
| | | >{{ |
| | | (Number(scope.row.rate) * 100).toFixed(2) |
| | | }}%</span |
| | | ></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="人工" |
| | | align="center" |
| | | key="manual" |
| | | prop="manual" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="短信" |
| | | align="center" |
| | | key="sms" |
| | | prop="sms" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="微信" |
| | | align="center" |
| | | key="weChat" |
| | | prop="weChat" |
| | | > |
| | | </el-table-column> |
| | | </el-table-column> |
| | | <el-table-column align="center" label="再次出院随访"> |
| | | <el-table-column |
| | | label="应随访" |
| | | align="center" |
| | | key="needFollowUpAgain" |
| | | prop="needFollowUpAgain" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="待随访" |
| | | align="center" |
| | | key="pendingFollowUpAgain" |
| | | prop="pendingFollowUpAgain" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="随访成功" |
| | | align="center" |
| | | key="followUpSuccessAgain" |
| | | prop="followUpSuccessAgain" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="随访失败" |
| | | align="center" |
| | | key="followUpFailAgain" |
| | | prop="followUpFailAgain" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="随访率" |
| | | align="center" |
| | | width="120" |
| | | key="followUpRateAgain" |
| | | prop="followUpRateAgain" |
| | | > |
| | | <!-- <template slot-scope="scope"> |
| | | <span |
| | | >{{ |
| | | (Number(scope.row.FollowUpRateAgain) * 100).toFixed(2) |
| | | }}%</span |
| | | > |
| | | </template> --> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="人工" |
| | | align="center" |
| | | key="manualAgain" |
| | | prop="manualAgain" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="短信" |
| | | align="center" |
| | | key="smsAgain" |
| | | prop="smsAgain" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="微信" |
| | | align="center" |
| | | key="weChatAgain" |
| | | prop="weChatAgain" |
| | | > |
| | | </el-table-column> |
| | | </el-table-column> |
| | | </el-table> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="出院病区" |
| | | align="center" |
| | |
| | | return { |
| | | topactiveName: "Local", //顶部选择 |
| | | activeName: "first", //侧边选择 |
| | | expands: [], |
| | | // 遮罩层 |
| | | loading: false, |
| | | Seedloading: false, |
| | |
| | | postOptions: [], |
| | | // 角色选项 |
| | | roleOptions: [], |
| | | // 存储所有科室代码 |
| | | allDeptCodes: [], |
| | | // 存储所有病区代码 |
| | | allWardCodes: [], |
| | | // 表单参数 |
| | | form: {}, |
| | | forms: { |
| | |
| | | serviceType: [2], |
| | | dateRange: [], |
| | | statisticaltype: 1, |
| | | leavehospitaldistrictcodes: ["all"], // 默认选中全部病区 |
| | | deptcodes: [], // 默认选中全部科室 |
| | | }, |
| | | // 列信息 |
| | | columns: [ |
| | |
| | | }, |
| | | watch: {}, |
| | | created() { |
| | | this.getList(); |
| | | this.getDeptTree(); |
| | | this.getList(); |
| | | }, |
| | | |
| | | methods: { |
| | | /** 查询标签列表 */ |
| | | getList() { |
| | | getSfStatistics(this.queryParams).then((response) => { |
| | | // 处理查询参数 |
| | | const params = { |
| | | ...this.queryParams, |
| | | // 如果选择了"全部",则传所有病区/科室代码 |
| | | leavehospitaldistrictcodes: |
| | | this.queryParams.leavehospitaldistrictcodes.includes("all") |
| | | ? this.allWardCodes |
| | | : this.queryParams.leavehospitaldistrictcodes, |
| | | deptcodes: this.queryParams.deptcodes.includes("all") |
| | | ? this.allDeptCodes |
| | | : this.queryParams.deptcodes, |
| | | }; |
| | | |
| | | // 移除可能存在的"all"值 |
| | | delete params.leavehospitaldistrictcodes.all; |
| | | delete params.deptcodes.all; |
| | | getSfStatistics(params).then((response) => { |
| | | console.log(response); |
| | | // this.total = response.total; |
| | | this.userList = response.data; |
| | | }); |
| | | }, |
| | | getRowKey(row) { |
| | | return row.statisticaltype === 1 |
| | | ? row.leavehospitaldistrictcode |
| | | : row.deptcode; |
| | | }, |
| | | |
| | | // 处理行点击展开 |
| | | handleRowClick(row) { |
| | | console.log(row,'row'); |
| | | |
| | | // 如果已经展开则收起 |
| | | if (this.expands.includes(this.getRowKey(row))) { |
| | | this.expands = []; |
| | | return; |
| | | } |
| | | // 处理查询参数 |
| | | const params = { |
| | | ...this.queryParams, |
| | | // 如果选择了"全部",则传所有病区/科室代码 |
| | | leavehospitaldistrictcodes: [row.leavehospitaldistrictcode], |
| | | drcode: "1", |
| | | }; |
| | | // 如果该行还没有加载医生数据,则加载 |
| | | if (!row.doctorStats) { |
| | | this.loading = true; |
| | | getSfStatistics(params).then((res) => { |
| | | this.$set(row, "doctorStats", res.data); |
| | | this.expands = [this.getRowKey(row)]; |
| | | this.loading = false; |
| | | }); |
| | | } else { |
| | | this.expands = [this.getRowKey(row)]; |
| | | } |
| | | }, |
| | | /** 修改标签 */ |
| | | handleUpdate(row) { |
| | |
| | | value: dept.deptCode, |
| | | }; |
| | | }); |
| | | this.flatArrayhospit = store.getters.belongWards.map((dept) => { |
| | | // 存储所有科室代码 |
| | | this.allDeptCodes = store.getters.belongDepts.map( |
| | | (dept) => dept.deptCode |
| | | ); |
| | | |
| | | // 病区列表 |
| | | this.flatArrayhospit = store.getters.belongWards.map((ward) => { |
| | | return { |
| | | label: dept.districtName, |
| | | value: dept.districtCode, |
| | | label: ward.districtName, |
| | | value: ward.districtCode, |
| | | }; |
| | | }); |
| | | // deptTreeSelect().then((response) => { |
| | | // this.deptOptions = response.data; |
| | | // console.log(this.deptOptions, " this.deptOptions"); |
| | | // this.flatArray = this.flattenArray(response.data); |
| | | // }); |
| | | |
| | | // 存储所有病区代码 |
| | | this.allWardCodes = store.getters.belongWards.map( |
| | | (ward) => ward.districtCode |
| | | ); |
| | | this.flatArraydept.push({ label: "全部", value: "all" }); |
| | | this.flatArrayhospit.push({ label: "全部", value: "all" }); |
| | | }, |
| | | flattenArray(multiArray) { |
| | | let result = []; |
| | |
| | | /** 搜索按钮操作 */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | if (this.queryParams.dateRange) this.queryParams.dateRange = []; |
| | | if (!this.queryParams.dateRange) this.queryParams.dateRange = []; |
| | | if (this.queryParams.statisticaltype == 1) { |
| | | this.queryParams.deptcodes = []; |
| | | } else if (this.queryParams.statisticaltype == 2) { |
| | |
| | | font-size: 20px; |
| | | } |
| | | } |
| | | /* 使行有手型指针 */ |
| | | .el-table__row { |
| | | cursor: pointer; |
| | | } |
| | | /* 内层医生表格样式 */ |
| | | .inner-table { |
| | | // 表头背景色 |
| | | ::v-deep .el-table__header-wrapper { |
| | | background-color: #f0f7ff !important; |
| | | |
| | | th { |
| | | background-color: #f0f7ff !important; |
| | | } |
| | | } |
| | | |
| | | // 表格行背景色 |
| | | ::v-deep .el-table__body-wrapper { |
| | | tr { |
| | | background-color: #f9fbfe !important; |
| | | |
| | | &:hover { |
| | | background-color: #e6f1ff !important; |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 边框颜色 |
| | | ::v-deep .el-table--border { |
| | | border-color: #d9e8ff !important; |
| | | |
| | | td, |
| | | th { |
| | | border-color: #d9e8ff !important; |
| | | } |
| | | } |
| | | |
| | | // 斑马纹效果 |
| | | ::v-deep .el-table--striped .el-table__body tr.el-table__row--striped td { |
| | | background-color: #f5f9ff !important; |
| | | } |
| | | } |
| | | /* 展开行样式 */ |
| | | .el-table__expanded-cell { |
| | | padding: 10px 0 !important; |
| | | background: #f8f8f8; |
| | | } |
| | | .document { |
| | | width: 100px; |
| | | height: 50px; |