| | |
| | | <template> |
| | | <div class="Questionnairemanagement"> |
| | | <!-- 左侧栏 --> |
| | | <div class="sidecolumn"> |
| | | <!-- <div class="sidecolumn"> |
| | | <div class="sidecolumn-top"> |
| | | <div class="top-wj">患者范围</div> |
| | | </div> |
| | |
| | | <el-tab-pane label="体检" name="physical"></el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | </div> |
| | | </div> --> |
| | | <!-- 右侧数据 --> |
| | | <div class="leftvlue"> |
| | | <div class="leftvlue-top"> |
| | | <!-- <div class="leftvlue-top"> |
| | | <el-tabs v-model="topactiveName" @tab-click="tophandleClick"> |
| | | <el-tab-pane name="Local"> |
| | | <span class="mulsz" slot="label">按出院病区统计 </span> |
| | |
| | | <span class="mulsz" slot="label">按出院科室统计 </span> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | </div> |
| | | </div> --> |
| | | <div class="leftvlue-bg"> |
| | | <el-row :gutter="20"> |
| | | <!--标签数据--> |
| | |
| | | v-show="showSearch" |
| | | label-width="98px" |
| | | > |
| | | <el-form-item label="医院" prop="userName"> |
| | | <!-- <el-form-item label="医院" prop="userName"> |
| | | <el-select v-model="queryParams.value1" placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in options" |
| | |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form-item> --> |
| | | <el-form-item label="出院病区" prop="userName"> |
| | | <el-select v-model="queryParams.value2" placeholder="请选择"> |
| | | <!-- <el-select v-model="queryParams.leavehospitaldistrictcodes" placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | v-for="item in flatArray" |
| | | :key="item.deptCode" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | :value="item.deptCode" |
| | | > |
| | | </el-option> |
| | | </el-select> --> |
| | | <el-select |
| | | v-model="queryParams.leavehospitaldistrictcodes" |
| | | |
| | | size="medium" |
| | | multiple |
| | | filterable |
| | | placeholder="请选择病区" |
| | | > |
| | | <el-option |
| | | v-for="item in flatArray" |
| | | :key="item.deptCode" |
| | | :label="item.label" |
| | | :value="item.deptCode" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="管理方案" prop="userName"> |
| | | <!-- <el-form-item label="管理方案" prop="userName"> |
| | | <el-select v-model="queryParams.value3" placeholder="请选择"> |
| | | <el-option |
| | | v-for="item in options" |
| | |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="出院日期" prop="userName"> |
| | | </el-form-item> --> |
| | | <!-- <el-form-item label="出院日期" prop="userName"> |
| | | <el-date-picker |
| | | v-model="queryParams.valuetime1" |
| | | align="right" |
| | |
| | | :picker-options="pickerOptionsa" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="计划随访日期" prop="userName"> |
| | | </el-form-item> --> |
| | | <el-form-item label="统计日期" prop="userName"> |
| | | <el-date-picker |
| | | v-model="queryParams.valuetime2" |
| | | align="right" |
| | | type="date" |
| | | placeholder="选择日期" |
| | | :picker-options="pickerOptions" |
| | | v-model="queryParams.dateRange" |
| | | type="daterange" |
| | | range-separator="至" |
| | | start-placeholder="开始日期" |
| | | end-placeholder="结束日期" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | |
| | | @selection-change="handleSelectionChange" |
| | | > |
| | | <el-table-column type="selection" width="50" align="center" /> |
| | | <el-table-column |
| | | <!-- <el-table-column |
| | | fixed |
| | | label="序号" |
| | | align="center" |
| | | key="tagid" |
| | | prop="tagid" |
| | | width="50" |
| | | /> |
| | | /> --> |
| | | <el-table-column |
| | | fixed |
| | | label="出院病区" |
| | | align="center" |
| | | key="tagname" |
| | | prop="tagname" |
| | | key="leavehospitaldistrictname" |
| | | prop="leavehospitaldistrictname" |
| | | width="100" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="应随访数" |
| | | label="服务总量" |
| | | align="center" |
| | | key="updateTime" |
| | | prop="updateTime" |
| | | key="serviceCount" |
| | | prop="serviceCount" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span |
| | | >{{ scope.row.updateBy }} |
| | | <p>{{ scope.row.updateTime }}</p></span |
| | | <p>{{ scope.row.serviceCount }}</p></span |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="随访完成数" |
| | | label="患者过滤数量" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | width="120" |
| | | key="bzxCount" |
| | | prop="bzxCount" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="应随访量" |
| | | align="center" |
| | | key="ysfCount" |
| | | prop="ysfCount" |
| | | > |
| | | </el-table-column |
| | | ><el-table-column |
| | | label="发送失败" |
| | | align="center" |
| | | key="fssbCount" |
| | | prop="fssbCount" |
| | | > |
| | | </el-table-column |
| | | ><el-table-column |
| | | label="待发送" |
| | | align="center" |
| | | key="dfsCount" |
| | | prop="dfsCount" |
| | | > |
| | | </el-table-column |
| | | ><el-table-column |
| | | label="已发送" |
| | | align="center" |
| | | key="yfsCount" |
| | | prop="yfsCount" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="已完成" |
| | | align="center" |
| | | key="ywcCount" |
| | | prop="ywcCount" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="随访完成率" |
| | | align="center" |
| | | key="isupload" |
| | | prop="isupload" |
| | | width="120" |
| | | key="sfwcl" |
| | | prop="sfwcl" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ (Number(scope.row.sfwcl)*100).toFixed(2) }}%</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="AI外呼次数" |
| | | <!-- <el-table-column |
| | | label="公众号发送次数" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="AI随访完成数" |
| | | label="公众号随访完成数" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="AI随访完成率" |
| | | label="公众号随访完成率" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="微信发送次数" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="微信随访完成数" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="微信随访完成率" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | </el-table-column> --> |
| | | <!-- <el-table-column |
| | | label="短信发送次数" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | width="120" |
| | | key="dxfscs" |
| | | prop="dxfscs" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="短信随访完成数" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | width="120" |
| | | key="dxsfwccs" |
| | | prop="dxsfwccs" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="短信随访完成率" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | width="120" |
| | | key="dxsfwcl" |
| | | prop="dxsfwcl" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | </el-table-column> --> |
| | | <!-- <el-table-column |
| | | label="人工随访次数" |
| | | align="center" |
| | | key="tagdescription" |
| | |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | </el-table-column> --> |
| | | <!-- <el-table-column |
| | | label="失访数" |
| | | align="center" |
| | | key="tagdescription" |
| | |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | > |
| | | </el-table-column> |
| | | > --> |
| | | <!-- </el-table-column> --> |
| | | <el-table-column |
| | | label="异常总数" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | key="yczs" |
| | | prop="yczs" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="medium" |
| | | type="danger" |
| | | plain |
| | | @click="routerErr(scope.row)" |
| | | ><span class="button-zx" |
| | | >{{scope.row.yczs}}</span |
| | | ></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | <!-- <el-table-column |
| | | label="总异常率" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | > |
| | | </el-table-column> |
| | | </el-table-column> --> |
| | | <el-table-column |
| | | label="回复异常数" |
| | | align="center" |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | width="100" |
| | | key="hfycs" |
| | | prop="hfycs" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | <!-- <el-table-column |
| | | label="回复异常及时处理数" |
| | | align="center" |
| | | key="tagdescription" |
| | |
| | | key="tagdescription" |
| | | prop="tagdescription" |
| | | > |
| | | </el-table-column> |
| | | </el-table-column> --> |
| | | |
| | | <!-- <el-table-column |
| | | label="操作" |
| | |
| | | </el-table-column> --> |
| | | </el-table> |
| | | |
| | | <pagination |
| | | <!-- <pagination |
| | | v-show="total > 0" |
| | | :total="total" |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" |
| | | /> |
| | | /> --> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | |
| | | listtag, |
| | | tagclassifylist, |
| | | } from "@/api/system/label"; |
| | | import { |
| | | getSfStatistics,deptTreeSelect |
| | | } from "@/api/system/user"; |
| | | |
| | | import Treeselect from "@riophae/vue-treeselect"; |
| | | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; |
| | |
| | | idds: "", //分类id |
| | | // 总条数 |
| | | total: 0, |
| | | flatArray:[], |
| | | amendtag: false, //是否修改类别 |
| | | lstamendtag: false, //是否修改标签 |
| | | scavisible: false, //删除弹框 |
| | |
| | | goQRCodeVisible: false, //二维码弹框 |
| | | sidecolumnval: "", //类别搜索 |
| | | propss: { multiple: true }, |
| | | topqueryParams: {}, //导出筛选条件 |
| | | |
| | | options: [ |
| | | { |
| | | value: 1, |
| | |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | tagname: undefined, |
| | | tagdescription: undefined, |
| | | serviceType:[2], |
| | | dateRange: [], |
| | | }, |
| | | // 列信息 |
| | | columns: [ |
| | |
| | | watch: {}, |
| | | created() { |
| | | this.getList(); |
| | | this.gitclasify(); |
| | | this.getDeptTree(); |
| | | }, |
| | | |
| | | methods: { |
| | | /** 查询标签列表 */ |
| | | getList() { |
| | | listtag(this.addDateRange(this.queryParams)).then((response) => { |
| | | getSfStatistics(this.queryParams).then((response) => { |
| | | console.log(response); |
| | | this.total = response.total; |
| | | this.userList = response.rows; |
| | | // this.total = response.total; |
| | | this.userList = response.data; |
| | | }); |
| | | }, |
| | | /** 修改标签 */ |
| | |
| | | tagdescription: row.tagdescription, |
| | | tagid: row.tagid, |
| | | }; |
| | | }, |
| | | // 获取科室树 |
| | | getDeptTree() { |
| | | // 科室列表 |
| | | deptTreeSelect().then((response) => { |
| | | this.deptOptions = response.data; |
| | | console.log( this.deptOptions,' this.deptOptions'); |
| | | |
| | | this.flatArray = this.flattenArray(response.data); |
| | | console.log(this.flatArray,'this.flatArray'); |
| | | }); |
| | | }, |
| | | flattenArray(multiArray) { |
| | | let result = []; |
| | | |
| | | // 递归函数,用于将多级数组转换为一维数组,只包含最底层的元素 |
| | | function flatten(element) { |
| | | // 如果当前元素有子元素,继续递归 |
| | | if (element.children && element.children.length > 0) { |
| | | element.children.forEach((child) => flatten(child)); |
| | | } else { |
| | | // 克隆元素以避免修改原始数据 |
| | | let item = JSON.parse(JSON.stringify(element)); |
| | | result.push(item); // 将最底层的元素添加到结果数组 |
| | | } |
| | | } |
| | | |
| | | // 从顶层元素开始递归 |
| | | multiArray.forEach((element) => flatten(element)); |
| | | return result; // 返回只包含最底层元素的一维数组 |
| | | }, |
| | | addladeltag() { |
| | | this.lstamendtagVisible = true; |
| | |
| | | tagdescription: "", |
| | | tagid: "", |
| | | }; |
| | | }, |
| | | routerErr(row) { |
| | | console.log(row,'跳转异常'); |
| | | this.$router.push({ |
| | | path: "/followvisit/discharge", |
| | | query: { |
| | | errtype: 1, |
| | | leavehospitaldistrictcode: row.leavehospitaldistrictcode, |
| | | }, |
| | | }); |
| | | }, |
| | | |
| | | // 表单重置 |
| | |
| | | /** 搜索按钮操作 */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | console.log(); |
| | | this.queryParams.startTime = this.parseTime(this.queryParams.dateRange[0]); |
| | | this.queryParams.endTime = this.parseTime(this.queryParams.dateRange[1]); |
| | | this.getList(); |
| | | }, |
| | | /** 重置按钮操作 */ |
| | | resetQuery() { |
| | | this.dateRange = []; |
| | | this.resetForm("queryForm"); |
| | | this.queryParams.tagname = ""; |
| | | this.$refs.tree.setCurrentKey(null); |
| | | this.queryParams.dateRange = []; |
| | | this.queryParams.leavehospitaldistrictcodes=[]; |
| | | this.handleQuery(); |
| | | }, |
| | | // 多选框选中数据 |
| | |
| | | this.download( |
| | | "base/tag/export", |
| | | { |
| | | ...this.topqueryParams, |
| | | ...this.queryParams, |
| | | }, |
| | | `user_${new Date().getTime()}.xlsx` |
| | | ); |
| | |
| | | </script> |
| | | |
| | | <style lang="scss" scoped> |
| | | .Questionnairemanagement { |
| | | display: flex; |
| | | } |
| | | .sidecolumn { |
| | | width: 180px; |
| | | min-height: 100vh; |
| | |
| | | .leftvlue { |
| | | // display: flex; |
| | | // flex: 1; |
| | | width: 80%; |
| | | margin-top: 20px; |
| | | // margin: 20px; |
| | | // width: 80%; |
| | | // margin-top: 20px; |
| | | margin: 20px; |
| | | padding: 30px; |
| | | background: #ffff; |
| | | border: 1px solid #dcdfe6; |