<template> <div class="container" style="max-height: 89vh"> <div v-show="!isDetail"> <div class="header">草稿箱</div> <div class="content"> <customs-table ref="table" :table-data="tableData" :columns="columns" :header-class="'newHeader'" :list-loading="listLoading" :current-page="pageIndex" :total-count="total" :page-sizes="pageSizes" :page-size="pageSize" @pageSizeChange="handleSizeChange" @currentPageChange="handleCurrentChange" /> </div> </div> <div v-if="isDetail"> <div> <el-button icon="el-icon-back" @click="isDetail = false" >返 回</el-button > </div> <div class="form_content"> <ConfigForms form-type="1" :patient-id="patientId" :disabled="disabled" ></ConfigForms> </div> </div> </div> </template> <script> import CustomsTable from "@/components/CustomsTable" import paginationMixin from "@/components/TabComponents/mixin" import ConfigForms from "./components/ConfigForms.vue" import { mapGetters } from "vuex" import { getPatientPage, deletePatient } from "@/api/patient.js" export default { // 数据概览 name: "", components: { CustomsTable, ConfigForms, }, mixins: [paginationMixin], data() { return { isDetail: false, //! 控制详情显隐 listLoading: false, columns: [ { label: "医联体", minWidth: 120, value: "groupName", }, { label: "姓名", minWidth: 120, value: "name", }, { label: "性别", minWidth: 120, value: "sex", }, { label: "身份证", minWidth: 120, value: "idCard", }, { label: "年龄", minWidth: 120, value: "age", }, { label: "筛查时间", minWidth: 120, value: "screenTime", }, { label: "风险评估结果", minWidth: 120, value: "result", }, { label: "上次随访时间", minWidth: 120, value: "targetFieldCode", }, { label: "筛查审核状态", minWidth: 180, value: "createTime", }, { label: "操作", width: 220, fixed: "right", operType: "button", operations: [ { func: this.handleAdd, formatter(row) { return { label: "编辑", type: "text", } }, }, { func: this.deletePatient, formatter(row) { return { label: "删除", type: "text", } }, style: { color: "#FA6400", }, }, ], }, ], tableData: [ { name: "1", 1: 2, }, ], } }, watch: {}, mounted() {}, methods: { handleAdd({ patientId, name }, index, disabled = false) { this.disabled = disabled this.patientId = patientId || null this.name = name this.isDetail = true }, setSelectedIndex(i) { console.log(this.selectedIndex) this.selectedIndex = i sessionStorage.setItem("homeSelectedIndex", this.selectedIndex) }, // 查询 handleFormSearch(form) { this.searchForm = form this.pageIndex = 1 this.handleSearch(form) }, handleSearch() { this.listLoading = true const data = {} data.current = this.pageIndex data.size = this.pageSize data.isDraft = 1 data.patientFrom = this.selectedIndex getPatientPage(data).then((res) => { this.listLoading = false if (res.code === 1) { const d = res.data this.tableData = d.records || [] this.total = Number(d.total) } }) }, deletePatient(row) { this.$confirm(`是否删除【${row.name}】?`, "提示", { confirmButtonText: "确定", cancelButtonText: "取消", type: "warning", }) .then(() => { deletePatient(row.patientId).then((res) => { if (res.code === 1) { this.$message({ type: "success", message: "删除成功!", }) this.handleSearch() } }) }) .catch(() => {}) }, }, computed: { ...mapGetters({ selectedIndex: "table/selectedIndex", }), }, created() { this.handleFormSearch() }, watch: { selectedIndex(v) { this.handleFormSearch() }, }, } </script> <style lang="scss" scoped> .container { padding: 24px; height: 100%; display: flex; flex-direction: column; .header { display: flex; text-indent: 24px; margin-bottom: 20px; height: 50px; line-height: 32px; font-size: 14px; font-family: AlibabaPuHuiTiR; color: rgba(0, 0, 0, 0.8); border-bottom: 1px solid #f3f3f3; } .content { padding: 0 24px; } .form_content { height: calc(100% - 50px); } } </style>