| | |
| | | position: absolute; |
| | | top: 0; |
| | | bottom: 0; |
| | | width: 65px; |
| | | width: 78px; |
| | | border-right: 1px solid #e4e4e4; |
| | | -webkit-box-sizing: border-box; |
| | | box-sizing: border-box; |
New file |
| | |
| | | <template> |
| | | <div> |
| | | <el-form :model="queryParams" ref="tableList" :inline="true" label-width="76px" style="margin-top: 10px"> |
| | | <el-form-item label="姓名" prop="name"> |
| | | <el-input v-model="queryParams.name" style="width: 120px" placeholder="请输入姓名" clearable @keyup.enter.native="handleQuery"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="体检号" prop="tjNumber"> |
| | | <el-input ref="inputName" v-model="queryParams.tjNumber" style="width: 180px" placeholder="请输入体检号" clearable @keyup.enter.native="handleQuery"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="体检时间" prop="tjTime"> |
| | | <el-date-picker v-model="startTime" type="datetimerange" align="right" :picker-options="pickerOptions" style="width: 310px" start-placeholder="开始日期" end-placeholder="结束日期" :default-time="['00:00:00', '23:00:00']" format="yyyy-MM-dd HH:mm" |
| | | value-format="yyyy-MM-dd HH:mm" @change="dateChangebirthday1"> |
| | | </el-date-picker> </el-form-item> |
| | | <el-form-item label="单位名称" prop="tjCompName" style="margin-left: 20px;"> |
| | | <el-select :remote-method="getRemoteData" v-model="queryParams.tjCompName" value-key="drugManufacturerId" style="width: 180px" remote filterable placeholder="请选择单位名称" clearable @change="searchSelect"> |
| | | <el-option v-for="dict in CompanyList" :key="dict.drugManufacturerId" :label="dict.cnName" :value="dict"/> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" size="mini" @click="submitForm">搜索</el-button> |
| | | <el-button size="mini" @click="resetQuery">重置</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | |
| | | <el-row :gutter="10" class="mb8" style="margin-left:14px ;"> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" |
| | | size="mini" |
| | | @click="radioChange" |
| | | v-hasPermi="['system:notice:add']" |
| | | >核收</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <template> |
| | | <el-table |
| | | v-loading="loading" |
| | | :data="checkList" |
| | | ref="table" |
| | | border |
| | | style="margin: 20px; width: 98%" |
| | | > |
| | | <el-table-column type="selection" width="40px" align="center" fixed="left" /> |
| | | <!-- <template slot="empty">数据正在加载中</template> --> |
| | | <el-table-column |
| | | label="体检号" |
| | | align="center" |
| | | prop="tjNumber" |
| | | :show-overflow-tooltip="true" |
| | | width="160px" |
| | | fixed="left" |
| | | /> |
| | | <el-table-column |
| | | label="姓名" |
| | | align="center" |
| | | prop="cusName" |
| | | :show-overflow-tooltip="true" |
| | | width="100px" |
| | | fixed="left" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="性别" |
| | | align="center" |
| | | prop="cusSex" |
| | | :show-overflow-tooltip="true" |
| | | width="55px" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span v-if="scope.row.cusSex == '0'">男</span> |
| | | <span v-if="scope.row.cusSex == '1'">女</span> |
| | | <span v-if="scope.row.cusSex == '2'">未知</span> |
| | | <span v-if="scope.row.cusSex == '9'">未说明性别</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="出生日期" |
| | | align="center" |
| | | prop="cusBrithday" |
| | | :show-overflow-tooltip="true" |
| | | width="110px" |
| | | /> |
| | | <el-table-column |
| | | label="电话" |
| | | align="center" |
| | | prop="cusPhone" |
| | | :show-overflow-tooltip="true" |
| | | width="130px" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="体检时间" |
| | | align="center" |
| | | prop="tjTime" |
| | | :show-overflow-tooltip="true" |
| | | width="110px" |
| | | /> |
| | | <el-table-column |
| | | label="完成时间" |
| | | align="center" |
| | | prop="finishTime" |
| | | :show-overflow-tooltip="true" |
| | | width="160px" |
| | | /> |
| | | <el-table-column |
| | | label="状态" |
| | | align="center" |
| | | prop="tjStatus" |
| | | :show-overflow-tooltip="true" |
| | | width="50px" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ scope.row.tjStatus == "1" ? "已检" : "未检" }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="单位名称" |
| | | align="center" |
| | | prop="tjCompName" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | |
| | | |
| | | </el-table> |
| | | |
| | | <div class="pag"> |
| | | <div class="pag1"> |
| | | <pagination |
| | | v-show="total > 0" |
| | | :total="total" |
| | | :page.sync="queryParams.page" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" |
| | | /> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | </div> |
| | | </template> |
| | | |
| | | |
| | | <script> |
| | | import { |
| | | getcheckList, |
| | | getTjdetailList, |
| | | getupdateCheckType, |
| | | getModifiedState, |
| | | getfiedState, |
| | | getState, |
| | | getforceIn, |
| | | gettoPdf, |
| | | getModified, |
| | | } from "@/api/doctor/checkAll"; |
| | | import { getInfo } from "@/api/login"; |
| | | import { getCompany, queryCompany } from "@/api/team/tuanti"; |
| | | // import { getDeptAdvice } from "@/api/doctor/check"; |
| | | import { getPdf, revoke } from "@/api/hosp/order"; |
| | | import ViewPdf from "@/components/ViewPdf"; |
| | | |
| | | export default { |
| | | components: { |
| | | ViewPdf, |
| | | }, |
| | | name: "checkAll", |
| | | data() { |
| | | return { |
| | | remarks: "", |
| | | remark: "", |
| | | proIds: "", |
| | | xiaojie: "", |
| | | isdisabled: false, |
| | | dialogVisible: false, |
| | | src: "", |
| | | url: "", |
| | | userId: "", |
| | | flag: true, |
| | | bill: null, |
| | | numberList: [], |
| | | dialogVisible: false, |
| | | pickerOptions: { |
| | | shortcuts: [ |
| | | { |
| | | text: "最近一周", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | { |
| | | text: "最近一个月", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | { |
| | | text: "最近三个月", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | ], |
| | | }, |
| | | // 页面全部数据 |
| | | checkList: [], |
| | | // 绑定单选按钮 |
| | | tjStatus: "1", |
| | | total: 0, |
| | | value2: [], |
| | | CompanyList: [], |
| | | CheckBox: {}, |
| | | startTime: [], |
| | | textarea1: "", |
| | | loading: true, |
| | | // 当前用户选中的值 |
| | | selectLettercurrent: " ", |
| | | // 抽屉打开方式 |
| | | drawer: false, |
| | | tableAll: {}, |
| | | tjNumber: "", |
| | | // 全部小结 |
| | | DeptadviceAll: [], |
| | | MsgId: "", |
| | | Deptobj: "", |
| | | // 点击参数 |
| | | changedate: [], |
| | | status: {}, |
| | | // 查询参数 |
| | | queryParams: { |
| | | page: 1, |
| | | pageSize: 10, |
| | | tjNumber: "", |
| | | beginTime: null, |
| | | endTime: null, |
| | | compId: null, |
| | | name: null, |
| | | checkStatus:null, |
| | | }, |
| | | |
| | | // 查询参数 |
| | | queryParam: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | company: undefined, |
| | | companyId: undefined, |
| | | pacId: undefined, |
| | | pacName: undefined, |
| | | jobNo: undefined, |
| | | name: undefined, |
| | | sex: undefined, |
| | | idCard: undefined, |
| | | age: undefined, |
| | | birthday: undefined, |
| | | position: undefined, |
| | | department: undefined, |
| | | departmentId: undefined, |
| | | phoe: undefined, |
| | | address: undefined, |
| | | marriage: undefined, |
| | | nation: undefined, |
| | | email: undefined, |
| | | tjCategory: undefined, |
| | | payType: undefined, |
| | | }, |
| | | }; |
| | | }, |
| | | |
| | | created() { |
| | | this.getNowTime(); |
| | | this.getList(); |
| | | }, |
| | | |
| | | mounted() { |
| | | this.$nextTick(() => { |
| | | this.$refs.inputName.focus(); |
| | | }); |
| | | }, |
| | | methods: { |
| | | // / 处理默认选中当前日期 |
| | | getNowTime() { |
| | | var curDate = new Date().getTime(); |
| | | var dayNum = 7 * 24 * 3600 * 1000; |
| | | var threeDays = curDate - dayNum; |
| | | var sDay = this.getLocalTime(threeDays); |
| | | var end = this.getLocalTime(curDate); |
| | | this.startTime = [sDay, end]; |
| | | }, |
| | | add0(m) { |
| | | return m < 10 ? "0" + m : m; |
| | | }, |
| | | getLocalTime(nS) { |
| | | var time = new Date(nS); |
| | | var y = time.getFullYear(); |
| | | var m = time.getMonth() + 1; |
| | | var d = time.getDate(); |
| | | var h = time.getHours(); |
| | | var mm = time.getMinutes(); |
| | | return ( |
| | | y + |
| | | "-" + |
| | | this.add0(m) + |
| | | "-" + |
| | | this.add0(d) + |
| | | " " + |
| | | this.add0(h) + |
| | | ":" + |
| | | this.add0(mm) |
| | | ); |
| | | }, |
| | | getList() { |
| | | this.loading = true; |
| | | this.queryParams.compId = this.CheckBox.drugManufacturerId; |
| | | this.queryParams.checkStatus = this.tjStatus; |
| | | if (this.startTime) { |
| | | this.queryParams.beginTime = this.startTime[0]; |
| | | this.queryParams.endTime = this.startTime[1]; |
| | | } else { |
| | | this.queryParams.beginTime = null; |
| | | this.queryParams.endTime = null; |
| | | } |
| | | |
| | | // 页面数据 |
| | | getcheckList(this.queryParams).then((response) => { |
| | | if (response.data) { |
| | | if (response.data.date) { |
| | | this.checkList = response.data.date; |
| | | } else { |
| | | this.checkList = response.data.customers; |
| | | } |
| | | this.loading = false; |
| | | this.total = response.data.total; |
| | | } else { |
| | | this.checkList = []; |
| | | } |
| | | }), |
| | | // 获取单位信息集合 |
| | | getCompany(this.queryParam).then((response) => { |
| | | this.CompanyList = response.data; |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | |
| | | viewReport(row) { |
| | | const tjNumber = row.tjNumber; |
| | | const flag = true; |
| | | getPdf(tjNumber, flag).then((response) => { |
| | | if (response.size === 0) { |
| | | const loading = this.$loading({ |
| | | lock: true, |
| | | text: 'Loading', |
| | | spinner: 'el-icon-loading', |
| | | background: 'rgba(0, 0, 0, 0.7)' |
| | | }); |
| | | setTimeout(() => { |
| | | loading.close(); |
| | | }, 3000); |
| | | this.$message.msgSuccess("报告正在生成,请两分钟后预览!"); |
| | | |
| | | } else { |
| | | this.dialogVisible = true; |
| | | |
| | | this.url = window.webkitURL.createObjectURL(response); //将后端返回的blob文件读取出url |
| | | } |
| | | }); |
| | | }, |
| | | // viewReport(row) { |
| | | // const tjNumber = row.tjNumber; |
| | | // const viewNum = "792997692059705344"; |
| | | // const params = { viewNum, tjNumber }; |
| | | // hasReportEnd(tjNumber).then((res) => { |
| | | // if (res == 1) { |
| | | // this.$tab.openPage("体检报告", "/report/viewReport", params); |
| | | // } else { |
| | | // this.$message.error("该用户体检暂未完成,无法打印体检报告!"); |
| | | // } |
| | | // }); |
| | | // }, |
| | | downLoadFileImg(row) { |
| | | const tjNumber = row.tjNumber; |
| | | const flag = true; |
| | | getPdf(tjNumber, flag).then((response) => { |
| | | this.url = window.webkitURL.createObjectURL(response); //将后端返回的blob文件读取出url |
| | | }); |
| | | }, |
| | | |
| | | // 单选按钮 |
| | | radioChange(value) { |
| | | this.loading = true; |
| | | this.queryParams.checkStatus = value; |
| | | getcheckList(this.queryParams).then((response) => { |
| | | if (response.data) { |
| | | this.checkList = response.data.customers; |
| | | this.total = response.data.total; |
| | | } else { |
| | | this.checkList = []; |
| | | } |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | |
| | | // 体检公司拼音搜索 |
| | | getRemoteData(query) { |
| | | if (query) { |
| | | let compName = query; |
| | | queryCompany(compName).then((response) => { |
| | | this.CompanyList = response.data; |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | // 选框数据 |
| | | searchSelect(val) { |
| | | this.CheckBox = val; |
| | | }, |
| | | |
| | | // 时间 |
| | | dateChangebirthday1(val) { |
| | | this.startTime = val; |
| | | }, |
| | | |
| | | // 搜索 |
| | | submitForm() { |
| | | this.queryParams.compId = this.CheckBox.drugManufacturerId; |
| | | this.queryParams.checkStatus = this.tjStatus; |
| | | if (this.startTime) { |
| | | this.queryParams.beginTime = this.startTime[0]; |
| | | this.queryParams.endTime = this.startTime[1]; |
| | | } else { |
| | | this.queryParams.beginTime = null; |
| | | this.queryParams.endTime = null; |
| | | } |
| | | |
| | | // 页面数据 |
| | | getcheckList(this.queryParams).then((response) => { |
| | | if (response.data.customers != null) { |
| | | this.checkList = response.data.customers; |
| | | this.checkList.forEach((item) => { |
| | | this.tjStatus = item.tjStatus.toString(); |
| | | }); |
| | | this.loading = false; |
| | | this.total = response.data.total; |
| | | } else { |
| | | this.checkList = []; |
| | | } |
| | | }); |
| | | }, |
| | | // 重置 |
| | | resetQuery() { |
| | | this.resetForm("tableList"); |
| | | this.submitForm(); |
| | | }, |
| | | |
| | | // 点击详情 |
| | | handleClick(row) { |
| | | this.tableAll = row; |
| | | if (this.tableAll.cusSex === 0) { |
| | | this.tableAll.cusSex = "男"; |
| | | } |
| | | if (this.tableAll.cusSex === 1) { |
| | | this.tableAll.cusSex = "女"; |
| | | } |
| | | this.tjNumber = this.tableAll.tjNumber; |
| | | getState(this.tjNumber).then((res) => { |
| | | this.status = res.data; |
| | | if (this.status.status === "1") { |
| | | getInfo().then((response) => { |
| | | this.userId = response.user.userId; |
| | | if (this.userId) { |
| | | let data = { |
| | | userId: this.userId, |
| | | tjNumber: this.tjNumber, |
| | | state: 0, |
| | | }; |
| | | getModifiedState(data).then((res) => { |
| | | this.MsgId = res.msg; |
| | | this.drawer = true; |
| | | getupdateCheckType(this.tjNumber).then((response) => { |
| | | this.changedate = response.data; |
| | | this.changedate.forEach((item) => { |
| | | this.textarea1 = item.checkAdvice; |
| | | }); |
| | | if (this.changedate) { |
| | | for (let i = 0; i < this.changedate.length; i++) { |
| | | this.remark = this.changedate[i].remark; |
| | | } |
| | | this.changedate.forEach((item) => { |
| | | // this.remark = item.remark; |
| | | item.sons.forEach((item3) => { |
| | | if (item3.standard.tjStandardGtValue === null) { |
| | | item3.standard.tjStandardGtValue = ""; |
| | | } |
| | | if (item3.standard.tjStandardLtValue === null) { |
| | | item3.standard.tjStandardLtValue = ""; |
| | | } |
| | | }); |
| | | // item.remark = ""; |
| | | }); |
| | | } else { |
| | | this.$message({ |
| | | type: "warning ", |
| | | message: "该客户没有体检项目数据", |
| | | }); |
| | | } |
| | | }); |
| | | }); |
| | | } |
| | | }); |
| | | } else { |
| | | this.$confirm( |
| | | "" + this.status.name + "正在修改该信息, 是否强制进去?", |
| | | "提示", |
| | | { |
| | | confirmButtonText: "是", |
| | | cancelButtonText: "否", |
| | | type: "warning", |
| | | } |
| | | ) |
| | | .then(() => { |
| | | getInfo().then((response) => { |
| | | this.userId = response.user.userId; |
| | | if (this.userId) { |
| | | let data = { |
| | | userId: this.userId, |
| | | tjNumber: this.tjNumber, |
| | | state: 0, |
| | | }; |
| | | getforceIn(data).then((res) => { |
| | | this.MsgId = res.msg; |
| | | this.drawer = true; |
| | | getupdateCheckType(this.tjNumber).then((response) => { |
| | | this.changedate = response.data; |
| | | if (this.changedate) { |
| | | for (let i = 0; i < this.changedate.length; i++) { |
| | | this.remark = this.changedate[i].remark; |
| | | } |
| | | this.changedate.forEach((item) => { |
| | | this.textarea1 = item.checkAdvice; |
| | | |
| | | // this.remark = item.remark; |
| | | item.sons.forEach((item3) => { |
| | | if (item3.standard.tjStandardGtValue === null) { |
| | | item3.standard.tjStandardGtValue = ""; |
| | | } |
| | | if (item3.standard.tjStandardLtValue === null) { |
| | | item3.standard.tjStandardLtValue = ""; |
| | | } |
| | | }); |
| | | // item.remark = ""; |
| | | }); |
| | | } else { |
| | | this.$message({ |
| | | type: "warning ", |
| | | message: "该客户没有体检项目数据", |
| | | }); |
| | | } |
| | | }); |
| | | }); |
| | | } |
| | | }); |
| | | }) |
| | | .catch(() => { |
| | | this.$message({ |
| | | type: "info", |
| | | message: "已取消进入", |
| | | }); |
| | | }); |
| | | this.drawer = false; |
| | | } |
| | | }); |
| | | |
| | | // 获取小结 |
| | | // getDeptAdvice().then((response) => { |
| | | // response.data.forEach((item) => { |
| | | // this.DeptadviceAll = item; |
| | | // }); |
| | | // }); |
| | | }, |
| | | // 撤销 |
| | | getRevoke(row) { |
| | | const tjNumber = row.tjNumber; |
| | | revoke(tjNumber).then((response) => { |
| | | this.$modal.msgSuccess("撤回成功"); |
| | | }); |
| | | }, |
| | | |
| | | // 是否关闭弹窗 |
| | | handleClose(done) { |
| | | if (this.loading) { |
| | | return; |
| | | } |
| | | this.$confirm("确定要提交吗?") |
| | | .then((_) => { |
| | | this.loading = true; |
| | | this.timer = setTimeout(() => { |
| | | done(); |
| | | this.determine(); |
| | | // 动画关闭需要一定的时间 |
| | | setTimeout(() => { |
| | | this.loading = false; |
| | | }, 400); |
| | | }, 2000); |
| | | }) |
| | | .catch((_) => { |
| | | this.drawer = false; |
| | | let data = { |
| | | userId: this.userId, |
| | | tjNumber: this.tjNumber, |
| | | state: 1, |
| | | id: this.MsgId, |
| | | }; |
| | | getfiedState(data).then((res) => {}); |
| | | }); |
| | | }, |
| | | |
| | | // 生成报告 |
| | | // generate(row) { |
| | | // const tjNumber = row.tjNumber; |
| | | // getGenerate(tjNumber).then((response) => { |
| | | // this.$modal.msgSuccess("生成成功"); |
| | | // }); |
| | | // }, |
| | | // xiAoJieChange(event) { |
| | | // if (event) { |
| | | // this.changedate.forEach((item) => { |
| | | // item.remark = ""; |
| | | // item.parentAdvice.forEach((item1) => { |
| | | // event.forEach((item2) => { |
| | | // if (item2 == item1.id) { |
| | | // item.remark = item.remark + item1.advice + "。"; |
| | | // } |
| | | // }); |
| | | // }); |
| | | // }); |
| | | // } |
| | | // }, |
| | | change(vale) { |
| | | // console.log(this.changedate[index].remark); |
| | | }, |
| | | determine() { |
| | | let tjNumber = this.tableAll.tjNumber; |
| | | let advice = this.textarea1; |
| | | let data = { |
| | | tjNumber, |
| | | advice, |
| | | checkStatus: 1, |
| | | }; |
| | | getTjdetailList(data).then((response) => { |
| | | if (response.code === 200) { |
| | | this.$modal.msgSuccess("提交成功"); |
| | | let tjNumber = this.tjNumber; |
| | | let data = { |
| | | userId: this.userId, |
| | | tjNumber: tjNumber, |
| | | state: 1, |
| | | id: this.MsgId, |
| | | }; |
| | | gettoPdf(tjNumber).then((res) => { |
| | | this.$modal.msgSuccess("已生成报告!请前往体检记录页面查看!"); |
| | | }); |
| | | getfiedState(data).then((res) => { |
| | | this.drawer = false; |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | for (let i = 0; i < this.changedate.length; i++) { |
| | | this.proIds = this.changedate[i].parentId; |
| | | let remarks = this.changedate[i].remark; |
| | | let updateOrderRemarkVos = [ |
| | | { |
| | | tjNumber, |
| | | proId: this.proIds.toString(), |
| | | remarks, |
| | | }, |
| | | ]; |
| | | getModified(updateOrderRemarkVos).then((response) => {}); |
| | | } |
| | | this.submitForm() |
| | | this.$forceUpdate() |
| | | // this.changedate.forEach((item) => { |
| | | // this.proIds = item.parentId; |
| | | // // this.remark = item.remark; |
| | | // }); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | <style scoped> |
| | | .btn { |
| | | margin: 20px 0px; |
| | | } |
| | | |
| | | .main { |
| | | height: 700px; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | #printIframe::-webkit-scrollbar { |
| | | width: 6px; |
| | | } |
| | | |
| | | /* 修改 滚动条的 下面 的 样式 */ |
| | | #printIframe::-webkit-scrollbar-track { |
| | | background-color: white; |
| | | -webkit-border-radius: 2em; |
| | | -moz-border-radius: 2em; |
| | | border-radius: 2em; |
| | | } |
| | | |
| | | /* 修改 滑块 */ |
| | | #printIframe::-webkit-scrollbar-thumb { |
| | | background-color: #dcdfe6; |
| | | -webkit-border-radius: 2em; |
| | | -moz-border-radius: 2em; |
| | | border-radius: 2em; |
| | | } |
| | | |
| | | /* .el-dialog { |
| | | width: 1264px; |
| | | height: 800px; |
| | | } |
| | | |
| | | .el-dialog__header { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | } |
| | | |
| | | .el-dialog__body { |
| | | padding: 0; |
| | | } */ |
| | | |
| | | .pag { |
| | | width: 100%; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | |
| | | .pag1 { |
| | | width: 30%; |
| | | } |
| | | |
| | | .dialog-footers { |
| | | /* margin-top: 5px; */ |
| | | margin-left: calc(100% - 15%); |
| | | } |
| | | |
| | | textarea { |
| | | background: #ffffff; |
| | | border: none; |
| | | outline: none; |
| | | } |
| | | </style> |
| | | |
| | | |
| | | |
| | |
| | | <template> |
| | | <div> |
| | | <el-form |
| | | :model="queryParams" |
| | | ref="tableList" |
| | | :inline="true" |
| | | label-width="76px" |
| | | style="margin-top: 10px" |
| | | > |
| | | <el-form :model="queryParams" ref="tableList" :inline="true" label-width="76px" style="margin-top: 10px"> |
| | | <el-form-item label="姓名" prop="name"> |
| | | <el-input |
| | | v-model="queryParams.name" |
| | | style="width: 116px" |
| | | placeholder="请输入姓名" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | ></el-input> |
| | | <el-input v-model="queryParams.name" style="width: 116px" placeholder="请输入姓名" clearable |
| | | @keyup.enter.native="handleQuery"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="体检号" prop="tjNumber"> |
| | | <el-input |
| | | ref="inputName" |
| | | v-model="queryParams.tjNumber" |
| | | style="width: 240px" |
| | | placeholder="请输入体检号" |
| | | ></el-input> |
| | | <el-input ref="inputName" v-model="queryParams.tjNumber" style="width: 240px" placeholder="请输入体检号"></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button size="mini" type="primary" @click="submitForm" |
| | | >搜索</el-button |
| | | > |
| | | <el-button size="mini" type="primary" @click="submitForm">搜索</el-button> |
| | | <el-button size="mini" @click="resetQuery">重置</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | <el-radio-group |
| | | v-model="tjStatus" |
| | | @input="radioChange" |
| | | style="margin-left: 30px" |
| | | > |
| | | <div style="display: flex;"> |
| | | <el-radio-group v-model="tjStatus" @input="radioChange" style="margin-left: 30px"> |
| | | <el-radio-button label="0">未检</el-radio-button> |
| | | <el-radio-button label="1">已检</el-radio-button> |
| | | </el-radio-group> |
| | | <el-row :gutter="10" class="mb8" style="margin:8px 10px;"> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" |
| | | size="mini" |
| | | @click="radioChange" |
| | | v-hasPermi="['system:notice:add']" |
| | | >会诊申请</el-button> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | |
| | | |
| | | <template> |
| | | <el-table |
| | | :data="tableList" |
| | | v-loading="loading" |
| | | ref="table" |
| | | height="536px" |
| | | style="margin: 20px; width: 98%" |
| | | border="" |
| | | > |
| | | <el-table :data="tableList" v-loading="loading" ref="table" height="536px" style="margin: 20px; width: 98%" |
| | | border=""> |
| | | <!-- <template slot="empty">数据正在加载中</template> --> |
| | | <el-table-column |
| | | label="体检号" |
| | | align="center" |
| | | prop="tjNumber" |
| | | width="180px" |
| | | /> |
| | | <el-table-column |
| | | label="姓名" |
| | | align="center" |
| | | prop="cusName" |
| | | width="100px" |
| | | /> |
| | | <el-table-column label="体检号" align="center" prop="tjNumber" width="180px" /> |
| | | <el-table-column label="姓名" align="center" prop="cusName" width="100px" /> |
| | | <el-table-column label="性别" align="center" prop="cusSex" width="60px"> |
| | | <template slot-scope="scope"> |
| | | <span v-if="scope.row.cusSex == '0'">男</span> |
| | |
| | | <span v-if="scope.row.cusSex == '9'">未说明性别</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="出生日期" |
| | | align="center" |
| | | prop="cusBrithday" |
| | | width="120px" |
| | | /> |
| | | <el-table-column |
| | | label="电话" |
| | | align="center" |
| | | prop="cusPhone" |
| | | width="120px" |
| | | /> |
| | | <el-table-column label="出生日期" align="center" prop="cusBrithday" width="120px" /> |
| | | <el-table-column label="电话" align="center" prop="cusPhone" width="120px" /> |
| | | <!-- <el-table-column |
| | | label="状态" |
| | | align="center" |
| | |
| | | </template> |
| | | </el-table-column> --> |
| | | |
| | | <el-table-column |
| | | label="体检类型" |
| | | align="center" |
| | | prop="tjType" |
| | | width="80px" |
| | | /> |
| | | <el-table-column |
| | | label="登记时间" |
| | | align="center" |
| | | prop="createTime" |
| | | width="160px" |
| | | /> |
| | | <el-table-column |
| | | label="体检时间" |
| | | align="center" |
| | | prop="tjTime" |
| | | width="120px" |
| | | /> |
| | | <el-table-column |
| | | label="未检项" |
| | | prop="notCheckeds" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column label="体检类型" align="center" prop="tjType" width="80px" /> |
| | | <el-table-column label="登记时间" align="center" prop="createTime" width="160px" /> |
| | | <el-table-column label="体检时间" align="center" prop="tjTime" width="120px" /> |
| | | <el-table-column label="未检项" prop="notCheckeds" :show-overflow-tooltip="true" /> |
| | | <el-table-column label="操作" align="center" width="80px"> |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | type="primary" |
| | | size="mini" |
| | | @click="handleClick(scope.row)" |
| | | >详情</el-button |
| | | > |
| | | <el-button type="primary" size="mini" @click="handleClick(scope.row)">详情</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <div class="pag"> |
| | | <div class="pag1"> |
| | | <pagination |
| | | v-show="total > 0" |
| | | :total="total" |
| | | :page.sync="queryParams.page" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" |
| | | /> |
| | | <pagination v-show="total > 0" :total="total" :page.sync="queryParams.page" :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" /> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <!-- 点击右边弹出层 --> |
| | | <el-drawer |
| | | :visible.sync="drawer" |
| | | :with-header="false" |
| | | size="70%" |
| | | :before-close="handleClose" |
| | | > |
| | | <el-drawer :visible.sync="drawer" :with-header="false" size="70%" :before-close="handleClose"> |
| | | <div style="font-size: 14px"> |
| | | <table |
| | | style=" |
| | | <table style=" |
| | | width: 96%; |
| | | height:70px |
| | | margin: 10px 10px; |
| | |
| | | border: 1px solid #dfe6ec; |
| | | border-collapse: collapse; |
| | | font-size:16px |
| | | " |
| | | cellspacing="4" |
| | | > |
| | | " cellspacing="4"> |
| | | <caption style="background-color: #f8f8f9; font-size: 18px"> |
| | | 填写{{ |
| | | tableAll.cusName |
| | | }}的体检资料 |
| | | </caption> |
| | | <tr style="border: 1px solid #dfe6ec; border-collapse: collapse"> |
| | | <td |
| | | style="border: 1px solid #dfe6ec; border-collapse: collapse" |
| | | align="right" |
| | | > |
| | | <td style="border: 1px solid #dfe6ec; border-collapse: collapse" align="right"> |
| | | 姓名: |
| | | </td> |
| | | <td style="border: 1px solid #dfe6ec; border-collapse: collapse"> |
| | |
| | | <span v-if="scope.row.cusSex == '9'">未说明性别</span> |
| | | </template> |
| | | </td> |
| | | <td |
| | | style="border: 1px solid #dfe6ec; border-collapse: collapse" |
| | | align="right" |
| | | > |
| | | <td style="border: 1px solid #dfe6ec; border-collapse: collapse" align="right"> |
| | | 性别: |
| | | </td> |
| | | <td style="border: 1px solid #dfe6ec; border-collapse: collapse"> |
| | |
| | | </td> |
| | | </tr> |
| | | <tr style="border: 1px solid #dfe6ec; border-collapse: collapse"> |
| | | <td |
| | | style="border: 1px solid #dfe6ec; border-collapse: collapse" |
| | | align="right" |
| | | > |
| | | <td style="border: 1px solid #dfe6ec; border-collapse: collapse" align="right"> |
| | | 体检单号: |
| | | </td> |
| | | <td style="border: 1px solid #dfe6ec; border-collapse: collapse"> |
| | | {{ tableAll.tjNumber }} |
| | | </td> |
| | | <td |
| | | style="border: 1px solid #dfe6ec; border-collapse: collapse" |
| | | align="right" |
| | | > |
| | | <td style="border: 1px solid #dfe6ec; border-collapse: collapse" align="right"> |
| | | 体检时间: |
| | | </td> |
| | | <td style="border: 1px solid #dfe6ec; border-collapse: collapse"> |
| | |
| | | |
| | | <template> |
| | | <div style="margin-left: 10px"> |
| | | <el-radio-group |
| | | v-model="radio" |
| | | v-for="(item, index) in Parent" |
| | | :key="index" |
| | | @input="radioChange1(item.proId, item)" |
| | | > |
| | | <el-radio-group v-model="radio" v-for="(item, index) in Parent" :key="index" |
| | | @input="radioChange1(item.proId, item)"> |
| | | <el-radio-button :label="item.proId">{{ |
| | | item.proName |
| | | }}</el-radio-button> |
| | | </el-radio-group> |
| | | </div> |
| | | </template> |
| | | <el-table |
| | | v-loading="loading" |
| | | :data="proParentList.sons" |
| | | border |
| | | height="460px" |
| | | style="width: 96%; margin: 10px 10px" |
| | | > |
| | | <el-table v-loading="loading" :data="proParentList.sons" border height="460px" |
| | | style="width: 96%; margin: 10px 10px"> |
| | | <el-table-column prop="project.proName" label="检测项目" width="150"> |
| | | <!-- <template slot-scope="scope"> |
| | | {{ scope.row.project.proName }} |
| | |
| | | </el-table-column> |
| | | <el-table-column prop="proResult" label="检测结果" width="280"> |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | size="mini" |
| | | v-model="scope.row.proResult" |
| | | autocomplete="off" |
| | | placeholder="请输入检测结果" |
| | | @blur="handleInputConfirm(scope.row)" |
| | | @input="vale" |
| | | ></el-input> |
| | | <el-input size="mini" v-model="scope.row.proResult" autocomplete="off" placeholder="请输入检测结果" |
| | | @blur="handleInputConfirm(scope.row)" @input="vale"></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="规则" width="55"> |
| | | <template slot-scope="scope"> |
| | | <el-button class="blue-button" @click="handleguize(scope.row)" |
| | | >...</el-button |
| | | > |
| | | <el-button class="blue-button" @click="handleguize(scope.row)">...</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="project.proMetering" label="单位"> |
| | |
| | | </el-table-column> |
| | | <el-table-column prop="conclusion" label="结果结论" width="280"> |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | size="mini" |
| | | v-model="scope.row.conclusion" |
| | | autocomplete="off" |
| | | placeholder="请输入检测结果" |
| | | disabled |
| | | ></el-input> |
| | | <el-input size="mini" v-model="scope.row.conclusion" autocomplete="off" placeholder="请输入检测结果" |
| | | disabled></el-input> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="exceptionDesc" |
| | | label="是否异常" |
| | | width="80px" |
| | | align="center" |
| | | > |
| | | <el-table-column prop="exceptionDesc" label="是否异常" width="80px" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-checkbox v-model="scope.row.exceptionDesc"></el-checkbox> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | prop="isReturn" |
| | | label="是否复诊" |
| | | width="80px" |
| | | align="center" |
| | | > |
| | | <el-table-column prop="isReturn" label="是否复诊" width="80px" align="center"> |
| | | <template slot-scope="scope"> |
| | | <el-checkbox v-model="scope.row.isReturn"></el-checkbox> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="project.resultType" label="结果类型"> |
| | | <template slot-scope="scope"> |
| | | <dict-tag |
| | | :options="dict.type.tj_result_type" |
| | | :value="scope.row.project.resultType" |
| | | /> |
| | | <dict-tag :options="dict.type.tj_result_type" :value="scope.row.project.resultType" /> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <div style="font-size: 14px; overflow-y: auto; height: 286px"> |
| | | <table |
| | | style=" |
| | | <table style=" |
| | | width: 96%; |
| | | margin: 4px 10px; |
| | | border: 1px solid #dfe6ec; |
| | | border-collapse: collapse; |
| | | " |
| | | cellspacing="4" |
| | | > |
| | | " cellspacing="4"> |
| | | <tr style="border: 1px solid #dfe6ec; border-collapse: collapse"> |
| | | <td style="border: 1px solid #dfe6ec; border-collapse: collapse"> |
| | | 病种选择: |
| | | </td> |
| | | <td style="border: 1px solid #dfe6ec; border-collapse: collapse"> |
| | | <el-select |
| | | v-model="value" |
| | | multiple |
| | | placeholder="请选择" |
| | | style="width: 100%; height: 45px" |
| | | v-if="deptAdviceList" |
| | | @change="sel" |
| | | filterable |
| | | > |
| | | <el-option |
| | | v-for="item in deptAdviceList" |
| | | :key="item.id" |
| | | :label="item.title" |
| | | :value="item.id" |
| | | > |
| | | <el-select v-model="value" multiple placeholder="请选择" style="width: 100%; height: 45px" |
| | | v-if="deptAdviceList" @change="sel" filterable> |
| | | <el-option v-for="item in deptAdviceList" :key="item.id" :label="item.title" :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </td> |
| | |
| | | 主检医师: |
| | | </td> |
| | | <td style="border: 1px solid #dfe6ec; border-collapse: collapse"> |
| | | <el-select |
| | | v-model="doctorName" |
| | | placeholder="请选择" |
| | | style="width: 100%" |
| | | v-if="deptAdviceList" |
| | | @change="selName" |
| | | filterable |
| | | > |
| | | <el-option |
| | | v-for="item in userList" |
| | | :key="item.userId" |
| | | :label="item.nickName" |
| | | :value="item.userId" |
| | | > |
| | | <el-select v-model="doctorName" placeholder="请选择" style="width: 100%" v-if="deptAdviceList" |
| | | @change="selName" filterable> |
| | | <el-option v-for="item in userList" :key="item.userId" :label="item.nickName" :value="item.userId"> |
| | | </el-option> |
| | | </el-select> |
| | | </td> |
| | |
| | | <td style="border: 1px solid #dfe6ec; border-collapse: collapse"> |
| | | 建议: |
| | | </td> |
| | | <td |
| | | style="border: 1px solid #dfe6ec; border-collapse: collapse" |
| | | colspan="2" |
| | | > |
| | | <el-input |
| | | type="textarea" |
| | | placeholder="请输入内容" |
| | | v-model="proParentList.remark" |
| | | rows="7" |
| | | > |
| | | <td style="border: 1px solid #dfe6ec; border-collapse: collapse" colspan="2"> |
| | | <el-input type="textarea" placeholder="请输入内容" v-model="proParentList.remark" rows="7"> |
| | | </el-input> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | |
| | | <div slot="footer" class="dialog-footers"> |
| | | <el-button type="primary" @click="determine" v-show="tjStatus == '0'" |
| | | >提 交</el-button |
| | | > |
| | | <el-button type="primary" @click="determine" v-show="tjStatus == '0'">提 交</el-button> |
| | | </div> |
| | | </div> |
| | | <!-- <div style="background-color: #f3f3f3;font-size:14px;overflow-y:auto;height: calc(100% - 11%);"> |
New file |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="姓名" prop="cusName"> |
| | | <el-input v-model="queryParams.cusName" placeholder="请输入姓名" clearable style="width:120px" @keyup.enter.native="handleQuery"/> |
| | | </el-form-item> |
| | | <el-form-item label="联系电话" prop="cusPhone"> |
| | | <el-input v-model="queryParams.cusPhone" placeholder="请输入联系电话" style="width:140px" clearable @keyup.enter.native="handleQuery"/> |
| | | </el-form-item> |
| | | <el-form-item label="身份证号" prop="cusIdcard"> |
| | | <el-input |
| | | v-model="queryParams.cusIdcard" |
| | | placeholder="请输入身份证号" |
| | | clearable |
| | | @keyup.enter.native="handleQuery" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-search" |
| | | size="mini" |
| | | @click="handleQuery" |
| | | >搜索</el-button |
| | | > |
| | | <el-button icon="el-icon-refresh" size="mini" @click="resetQuery" |
| | | >重置</el-button |
| | | > |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-button |
| | | type="primary" |
| | | icon="el-icon-plus" |
| | | size="mini" |
| | | @click="handleAdd" |
| | | v-hasPermi="['hosp:customer:add']" |
| | | >批量恢复</el-button |
| | | > |
| | | </el-col> |
| | | </el-row> |
| | | |
| | | <el-table |
| | | border |
| | | v-loading="loading" |
| | | :data="customerList" |
| | | @selection-change="handleSelectionChange" |
| | | |
| | | > |
| | | <el-table-column type="selection" width="40px" align="center" fixed="left" /> |
| | | <el-table-column |
| | | label="序号" |
| | | align="center" |
| | | prop="newID" |
| | | fixed="left" |
| | | :show-overflow-tooltip="true" |
| | | width="50px" |
| | | /> |
| | | <el-table-column |
| | | label="姓名" |
| | | align="center" |
| | | prop="cusName" |
| | | width="90px" |
| | | fixed="left" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="性别" |
| | | align="center" |
| | | prop="cusSex" |
| | | :show-overflow-tooltip="true" |
| | | width="60px" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <dict-tag |
| | | :options="dict.type.sys_user_sex" |
| | | :value="scope.row.cusSex" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="出生日期" |
| | | align="center" |
| | | prop="cusBrithday" |
| | | width="100px" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span>{{ parseTime(scope.row.cusBrithday, "{y}-{m}-{d}") }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="身份证号" |
| | | align="center" |
| | | prop="cusIdcard" |
| | | width="170px" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="联系电话" |
| | | align="center" |
| | | prop="cusPhone" |
| | | width="110px" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="现住址" |
| | | align="center" |
| | | prop="cusAddr" |
| | | width="180px" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | |
| | | <el-table-column |
| | | label="邮政编码" |
| | | align="center" |
| | | prop="cusPostcode" |
| | | width="80px" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="邮箱" |
| | | align="center" |
| | | prop="cusEmail" |
| | | width="170px" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="民族" |
| | | align="center" |
| | | prop="cusNational" |
| | | width="80px" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <dict-tag |
| | | :options="dict.type.dict_user_national" |
| | | :value="scope.row.cusNational" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="婚姻状况" |
| | | align="center" |
| | | prop="cusMarryStatus" |
| | | :show-overflow-tooltip="true" |
| | | width="80px" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <dict-tag |
| | | :options="dict.type.dict_user_marry" |
| | | :value="scope.row.cusMarryStatus" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="介绍人" |
| | | align="center" |
| | | prop="cusIntroduce" |
| | | width="90px" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="次数" |
| | | align="center" |
| | | prop="cusNumber" |
| | | width="55px" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | label="VIP" |
| | | align="center" |
| | | prop="cusIsvip" |
| | | width="55px" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <dict-tag |
| | | :options="dict.type.sys_yes_no" |
| | | :value="scope.row.cusIsvip" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="索引卡号" |
| | | align="center" |
| | | prop="indexCard" |
| | | :show-overflow-tooltip="true" |
| | | /> |
| | | <el-table-column |
| | | fixed="right" |
| | | label="操作" |
| | | align="center" |
| | | width="70px" |
| | | class-name="small-padding fixed-width" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | size="mini" |
| | | type="text" |
| | | icon="el-icon-refresh-left" |
| | | @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['hosp:customer:edit']" |
| | | title="恢复" |
| | | ></el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <div class="pag"> |
| | | <div class="pag1"> |
| | | <pagination |
| | | v-show="total > 0" |
| | | :total="total" |
| | | :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" |
| | | /> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- 添加或修改信息对话框 --> |
| | | <el-dialog |
| | | :title="title" |
| | | :visible.sync="open" |
| | | width="1000px" |
| | | append-to-body |
| | | > |
| | | <el-form |
| | | ref="form" |
| | | :model="form" |
| | | :rules="rules" |
| | | label-width="100px" |
| | | :inline="true" |
| | | > |
| | | <el-form-item label="姓名" prop="cusName"> |
| | | <el-input |
| | | v-model="form.cusName" |
| | | placeholder="请输入姓名" |
| | | style="width: 200px" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="性别" prop="cusSex"> |
| | | <el-select |
| | | v-model="form.cusSex" |
| | | placeholder="请选择性别" |
| | | style="width: 200px" |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.sys_user_sex" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="parseInt(dict.value)" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="身份证号" prop="cusIdcard"> |
| | | <el-input |
| | | v-model="form.cusIdcard" |
| | | placeholder="请输入身份证号" |
| | | style="width: 200px" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="出生日期" prop="cusBrithday"> |
| | | <el-date-picker |
| | | clearable |
| | | v-model="form.cusBrithday" |
| | | type="date" |
| | | value-format="yyyy-MM-dd" |
| | | placeholder="请选择出生日期" |
| | | style="width: 200px" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item label="现住址" prop="cusAddr"> |
| | | <el-input |
| | | v-model="form.cusAddr" |
| | | placeholder="请输入现居住地址" |
| | | style="width: 200px" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="联系电话" prop="cusPhone"> |
| | | <el-input |
| | | v-model="form.cusPhone" |
| | | placeholder="请输入联系电话" |
| | | style="width: 200px" |
| | | /> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="账号密码" prop="cusPassword"> |
| | | <el-input v-model="form.cusPassword" placeholder="请输入账号密码" style="width: 220px" /> |
| | | </el-form-item> --> |
| | | <!-- <el-form-item label="邮政编码" prop="cusPostcode"> |
| | | <el-input v-model="form.cusPostcode" placeholder="请输入邮政编码" /> |
| | | </el-form-item> --> |
| | | <el-form-item label="邮箱" prop="cusEmail"> |
| | | <el-input |
| | | v-model="form.cusEmail" |
| | | placeholder="请输入邮箱" |
| | | style="width: 200px" |
| | | /> |
| | | </el-form-item> |
| | | <!-- <el-form-item label="索引卡号" prop="indexCard"> |
| | | <el-input v-model="form.indexCard" placeholder="请输入索引卡号" style="width: 220px" /> |
| | | </el-form-item> --> |
| | | <el-form-item label="民族" prop="cusNational"> |
| | | <el-select |
| | | v-model="form.cusNational" |
| | | placeholder="请选择民族" |
| | | style="width: 200px" |
| | | filterable |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.dict_user_national" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="婚姻状况" prop="cusMarryStatus"> |
| | | <el-select |
| | | v-model="form.cusMarryStatus" |
| | | placeholder="请选择婚姻状况" |
| | | style="width: 200px" |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.dict_user_marry" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="介绍人" prop="cusIntroduce"> |
| | | <el-input |
| | | v-model="form.cusIntroduce" |
| | | placeholder="请输入介绍人" |
| | | style="width: 200px" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="是否VIP" prop="cusIsvip"> |
| | | <el-select |
| | | v-model="form.cusIsvip" |
| | | placeholder="请选择是否VIP" |
| | | style="width: 200px" |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.sys_yes_no" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitForm">确 定</el-button> |
| | | <el-button @click="cancel">取 消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | listCustomer, |
| | | getCustomer, |
| | | delCustomer, |
| | | addCustomer, |
| | | updateCustomer, |
| | | } from "@/api/hosp/customer"; |
| | | |
| | | export default { |
| | | name: "Customer", |
| | | dicts: [ |
| | | "dict_user_national", |
| | | "dict_user_marry", |
| | | "sys_yes_no", |
| | | "sys_user_sex", |
| | | ], |
| | | data() { |
| | | return { |
| | | // 遮罩层 |
| | | loading: true, |
| | | // 选中数组 |
| | | ids: [], |
| | | // 非单个禁用 |
| | | single: true, |
| | | // 非多个禁用 |
| | | multiple: true, |
| | | // 显示搜索条件 |
| | | showSearch: true, |
| | | // 总条数 |
| | | total: 0, |
| | | // 信息表格数据 |
| | | customerList: [], |
| | | // 弹出层标题 |
| | | title: "", |
| | | // 是否显示弹出层 |
| | | open: false, |
| | | // 查询参数 |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | cusName: null, |
| | | cusSex: null, |
| | | cusBrithday: null, |
| | | cusAddr: null, |
| | | cusPhone: null, |
| | | cusPostcode: null, |
| | | cusEmail: null, |
| | | indexCard: null, |
| | | cusNational: null, |
| | | cusMarryStatus: null, |
| | | cusIdcard: null, |
| | | cusIntroduce: null, |
| | | cusNumber: null, |
| | | cusIsvip: null, |
| | | }, |
| | | // 表单参数 |
| | | form: {}, |
| | | // 表单校验 |
| | | rules: { |
| | | cusName: [{ required: true, message: "姓名不能为空", trigger: "blur" }], |
| | | cusSex: [ |
| | | { required: true, message: "性别不能为空", trigger: "change" }, |
| | | ], |
| | | cusBrithday: [ |
| | | { required: true, message: "出生日期不能为空", trigger: "blur" }, |
| | | ], |
| | | cusAddr: [ |
| | | { required: true, message: "现居住地址不能为空", trigger: "blur" }, |
| | | ], |
| | | cusPhone: [ |
| | | { required: true, message: "联系电话不能为空", trigger: "blur" }, |
| | | ], |
| | | cusPassword: [ |
| | | { required: true, message: "账号密码不能为空", trigger: "blur" }, |
| | | ], |
| | | // cusNational: [ |
| | | // { required: true, message: "民族不能为空", trigger: "change" } |
| | | // ], |
| | | cusIdcard: [ |
| | | { required: true, message: "身份证号不能为空", trigger: "blur" }, |
| | | ], |
| | | deleted: [ |
| | | { required: true, message: "删除标志不能为空", trigger: "blur" }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | created() { |
| | | this.getList(); |
| | | }, |
| | | methods: { |
| | | /** 查询信息列表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | listCustomer(this.queryParams).then((response) => { |
| | | this.customerList = response.rows; |
| | | response.rows.forEach((item, index) => { |
| | | item.newID = |
| | | (this.queryParams.pageNum - 1) * this.queryParams.pageSize + |
| | | index + |
| | | 1; |
| | | }); |
| | | this.total = response.total; |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | // 取消按钮 |
| | | cancel() { |
| | | this.open = false; |
| | | this.reset(); |
| | | }, |
| | | // 表单重置 |
| | | reset() { |
| | | this.form = { |
| | | cusId: null, |
| | | cusName: null, |
| | | cusSex: null, |
| | | cusBrithday: null, |
| | | cusAddr: null, |
| | | cusPhone: null, |
| | | cusPassword: null, |
| | | cusPostcode: null, |
| | | cusEmail: null, |
| | | indexCard: null, |
| | | cusNational: null, |
| | | cusMarryStatus: null, |
| | | cusIdcard: null, |
| | | cusIntroduce: null, |
| | | cusNumber: null, |
| | | cusIsvip: null, |
| | | createBy: null, |
| | | createTime: null, |
| | | updateBy: null, |
| | | updateTime: null, |
| | | deleted: null, |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | | /** 搜索按钮操作 */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | | /** 重置按钮操作 */ |
| | | resetQuery() { |
| | | this.resetForm("queryForm"); |
| | | this.handleQuery(); |
| | | }, |
| | | // 多选框选中数据 |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map((item) => item.cusId); |
| | | this.single = selection.length !== 1; |
| | | this.multiple = !selection.length; |
| | | }, |
| | | /** 新增按钮操作 */ |
| | | handleAdd() { |
| | | this.reset(); |
| | | this.open = true; |
| | | this.title = "客户信息维护"; |
| | | }, |
| | | /** 修改按钮操作 */ |
| | | handleUpdate(row) { |
| | | this.reset(); |
| | | const cusId = row.cusId || this.ids; |
| | | getCustomer(cusId).then((response) => { |
| | | this.form = response.data; |
| | | this.open = true; |
| | | this.title = "客户信息维护"; |
| | | }); |
| | | }, |
| | | /** 提交按钮 */ |
| | | submitForm() { |
| | | this.$refs["form"].validate((valid) => { |
| | | if (valid) { |
| | | if (this.form.cusId != null) { |
| | | updateCustomer(this.form).then((response) => { |
| | | this.$modal.msgSuccess("修改成功"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } else { |
| | | addCustomer(this.form).then((response) => { |
| | | this.$modal.msgSuccess("新增成功"); |
| | | this.open = false; |
| | | this.getList(); |
| | | }); |
| | | } |
| | | } |
| | | }); |
| | | }, |
| | | /** 删除按钮操作 */ |
| | | handleDelete(row) { |
| | | const cusIds = row.cusId || this.ids; |
| | | this.$modal |
| | | .confirm('是否确认删除信息编号为"' + cusIds + '"的数据项?') |
| | | .then(function () { |
| | | return delCustomer(cusIds); |
| | | }) |
| | | .then(() => { |
| | | this.getList(); |
| | | this.$modal.msgSuccess("删除成功"); |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | /** 导出按钮操作 */ |
| | | handleExport() { |
| | | this.download( |
| | | "hosp/order/export", |
| | | { |
| | | ...this.queryParams, |
| | | }, |
| | | `customer_${new Date().getTime()}.xlsx` |
| | | ); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | <style scoped> |
| | | .pag { |
| | | width: 100%; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | .pag1 { |
| | | width: 30%; |
| | | } |
| | | |
| | | .dialog-footer { |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | </style> |
| | | |
New file |
| | |
| | | <template> |
| | | <div v-loading="loading" :style="'height:' + height"> |
| | | <iframe :src="src" frameborder="no" style="width: 100%;height: 100%" scrolling="auto" /> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import { |
| | | getToken |
| | | } from '@/utils/auth' |
| | | import { view } from "@/api/jmreport/jimu"; |
| | | export default { |
| | | name: "Ureport", |
| | | data() { |
| | | return { |
| | | src: "", |
| | | height: document.documentElement.clientHeight - 94.5 + "px;", |
| | | loading: true, |
| | | viewNum:"884667016862707712", |
| | | }; |
| | | }, |
| | | created() { |
| | | view().then((res) => { |
| | | this.src = |
| | | res + |
| | | "/" + |
| | | this.viewNum + |
| | | "?token=Bearer" + |
| | | getToken(); |
| | | }); |
| | | // this.src = "http://192.168.0.99:8080/ltkj-admin/jmreport/view/815468234724306944?token=Bearer " + getToken(); |
| | | }, |
| | | |
| | | mounted: function () { |
| | | setTimeout(() => { |
| | | this.loading = false; |
| | | }, 230); |
| | | const that = this; |
| | | window.onresize = function temp() { |
| | | that.height = document.documentElement.clientHeight - 94.5 + "px;"; |
| | | }; |
| | | } |
| | | }; |
| | | </script> |
New file |
| | |
| | | <template> |
| | | <div v-loading="loading" :style="'height:' + height"> |
| | | <iframe :src="src" frameborder="no" style="width: 100%;height: 100%" scrolling="auto" /> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import { |
| | | getToken |
| | | } from '@/utils/auth' |
| | | import { view } from "@/api/jmreport/jimu"; |
| | | export default { |
| | | name: "Ureport", |
| | | data() { |
| | | return { |
| | | src: "", |
| | | height: document.documentElement.clientHeight - 94.5 + "px;", |
| | | loading: true, |
| | | viewNum:"884675348172320768", |
| | | }; |
| | | }, |
| | | created() { |
| | | view().then((res) => { |
| | | this.src = |
| | | res + |
| | | "/" + |
| | | this.viewNum + |
| | | "?token=Bearer" + |
| | | getToken(); |
| | | }); |
| | | // this.src = "http://192.168.0.99:8080/ltkj-admin/jmreport/view/815468234724306944?token=Bearer " + getToken(); |
| | | }, |
| | | |
| | | mounted: function () { |
| | | setTimeout(() => { |
| | | this.loading = false; |
| | | }, 230); |
| | | const that = this; |
| | | window.onresize = function temp() { |
| | | that.height = document.documentElement.clientHeight - 94.5 + "px;"; |
| | | }; |
| | | } |
| | | }; |
| | | </script> |
New file |
| | |
| | | <template> |
| | | <div v-loading="loading" :style="'height:' + height"> |
| | | <iframe :src="src" frameborder="no" style="width: 100%;height: 100%" scrolling="auto" /> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import { |
| | | getToken |
| | | } from '@/utils/auth' |
| | | import { view } from "@/api/jmreport/jimu"; |
| | | export default { |
| | | name: "Ureport", |
| | | data() { |
| | | return { |
| | | src: "", |
| | | height: document.documentElement.clientHeight - 94.5 + "px;", |
| | | loading: true, |
| | | viewNum:"858579252534800384", |
| | | }; |
| | | }, |
| | | created() { |
| | | view().then((res) => { |
| | | this.src = |
| | | res + |
| | | "/" + |
| | | this.viewNum + |
| | | "?token=Bearer" + |
| | | getToken(); |
| | | }); |
| | | // this.src = "http://192.168.0.99:8080/ltkj-admin/jmreport/view/815468234724306944?token=Bearer " + getToken(); |
| | | }, |
| | | |
| | | mounted: function () { |
| | | setTimeout(() => { |
| | | this.loading = false; |
| | | }, 230); |
| | | const that = this; |
| | | window.onresize = function temp() { |
| | | that.height = document.documentElement.clientHeight - 94.5 + "px;"; |
| | | }; |
| | | } |
| | | }; |
| | | </script> |
New file |
| | |
| | | <template> |
| | | <div v-loading="loading" :style="'height:' + height"> |
| | | <iframe :src="src" frameborder="no" style="width: 100%;height: 100%" scrolling="auto" /> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import { |
| | | getToken |
| | | } from '@/utils/auth' |
| | | import { view } from "@/api/jmreport/jimu"; |
| | | export default { |
| | | name: "Ureport", |
| | | data() { |
| | | return { |
| | | src: "", |
| | | height: document.documentElement.clientHeight - 94.5 + "px;", |
| | | loading: true, |
| | | viewNum:"884679290784526336", |
| | | }; |
| | | }, |
| | | created() { |
| | | view().then((res) => { |
| | | this.src = |
| | | res + |
| | | "/" + |
| | | this.viewNum + |
| | | "?token=Bearer" + |
| | | getToken(); |
| | | }); |
| | | // this.src = "http://192.168.0.99:8080/ltkj-admin/jmreport/view/815468234724306944?token=Bearer " + getToken(); |
| | | }, |
| | | |
| | | mounted: function () { |
| | | setTimeout(() => { |
| | | this.loading = false; |
| | | }, 230); |
| | | const that = this; |
| | | window.onresize = function temp() { |
| | | that.height = document.documentElement.clientHeight - 94.5 + "px;"; |
| | | }; |
| | | } |
| | | }; |
| | | </script> |
New file |
| | |
| | | <template> |
| | | <div> |
| | | <div style="margin-top: 10px;"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" |
| | | label-width="68px"> |
| | | <el-form-item label="月份" prop="deptName"> |
| | | <el-date-picker v-model="value1" type="date" placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">查询</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | |
| | | <div> |
| | | <el-calendar v-model="value"> |
| | | <template slot="dateCell" slot-scope="{date, data}"> |
| | | <div class="main-cd" @click="addPlan(date)"> |
| | | <div class="calendar-day"> |
| | | {{ data.day.split("-").slice(2).join("-") }} {{ data.isSelected ? '✔️' : '' }} |
| | | </div> |
| | | <div v-for="(item, index) in calendarData" :key="index" class="is-selected" |
| | | @click.stop="addPlan(item)"> |
| | | <span v-if="item.day == data.day && item.timeDetailsList"> |
| | | <el-tooltip placement="top"> |
| | | <div slot="content"> |
| | | <div v-for="items in item.timeDetailsList" :key="items.day"> |
| | | {{ items.channelName }} : |
| | | {{ items.wechatNumber }}个微信号, |
| | | 计划投放{{ items.planNumber }}, |
| | | 实际加人 |
| | | {{ items.realityNumber }} |
| | | </div> |
| | | </div> |
| | | // 这里写两遍是因为一个是框里展示,一个是悬浮组件内展示的内容 |
| | | <div v-for="items in item.timeDetailsList" :key="items.day"> |
| | | {{ items.channelName }} : |
| | | {{ items.wechatNumber }}个微信号, |
| | | 计划投放{{ items.planNumber }}, |
| | | 实际加人 |
| | | {{ items.realityNumber }} |
| | | </div> |
| | | </el-tooltip> |
| | | </span> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | </el-calendar> |
| | | </div> |
| | | |
| | | <!-- 添加或修改规则+病种对话框 --> |
| | | <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body> |
| | | <div style="margin-bottom: 10px;">时间:{{ time }}</div> |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="80px" :inline="true"> |
| | | <el-form-item label="标题" prop="title"> |
| | | <el-input v-model="form.title" placeholder="请输入标题" style="width:200px" /> |
| | | </el-form-item> |
| | | <el-form-item label="事件" prop="event"> |
| | | <el-input v-model="form.event" placeholder="请输入事件" style="width:200px" /> |
| | | </el-form-item> |
| | | <el-form-item label="日期类型" prop="dateType"> |
| | | <el-select v-model="form.dateType" style="width: 94%"> |
| | | <el-option v-for="dict in dict.type.memo_date_type" :key="dict.value" :label="dict.label" |
| | | :value="dict.value"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="时间点" prop="mTime" v-if="form.dateType == 1"> |
| | | <el-time-picker v-model="form.mTime" :picker-options="{ |
| | | selectableRange: '18:30:00 - 20:30:00' |
| | | }" placeholder="任意时间点"> |
| | | </el-time-picker> |
| | | </el-form-item> |
| | | <el-form-item label="重复提醒" prop="isRepeat"> |
| | | <el-select v-model="form.isRepeat" style="width: 94%"> |
| | | <el-option v-for="dict in dict.type.sys_yes_no" :key="dict.value" :label="dict.label" |
| | | :value="dict.value"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="提醒间隔" prop="repeatTime" v-if="form.isRepeat == 'Y'"> |
| | | <el-input type="number" v-model="form.repeatTime" placeholder="请输入提醒间隔" style="width:200px" |
| | | oninput="value=value.replace(/[^0-9.]/g,'')" /> |
| | | </el-form-item> |
| | | <el-form-item label="备忘状态" prop="mFlag"> |
| | | <el-select v-model="form.mFlag" style="width: 94%"> |
| | | <el-option v-for="dict in dict.type.memo_status" :key="dict.value" :label="dict.label" |
| | | :value="dict.value"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="紧急状态" prop="stateLevel"> |
| | | <el-select v-model="form.stateLevel" style="width: 94%"> |
| | | <el-option v-for="dict in dict.type.memo_state_level" :key="dict.value" :label="dict.label" |
| | | :value="dict.value"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="备注" prop="remark"> |
| | | <el-input v-model="form.remark" placeholder="请输入备注" style="width:200px" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-button style="margin: 10px 10px" type="primary" plain size="mini" icon="el-icon-plus" |
| | | @click="hableadd">添加</el-button> |
| | | <el-table :data="cateringList" border> |
| | | <el-table-column type="selection" width="55" align="center" /> |
| | | <el-table-column label="序号" align="center" prop="newID" width="55px" /> |
| | | <el-table-column label="标题" align="center" prop="title" /> |
| | | <el-table-column label="事件" align="center" prop="event" /> |
| | | <el-table-column label="日期类型" align="center" prop="dateType" /> |
| | | <el-table-column label="时间点" align="center" prop="mTime" /> |
| | | <el-table-column label="重复提醒" align="center" prop="isRepeat" width="150px" /> |
| | | <el-table-column label="提醒间隔" align="center" prop="repeatTime" width="150px" /> |
| | | <el-table-column label="备忘状态" align="center" prop="mFlag" width="150px" /> |
| | | <el-table-column label="紧急状态" align="center" prop="stateLevel" width="150px" /> |
| | | <el-table-column label="备注" align="center" prop="remark" width="150px" /> |
| | | <el-table-column label="操作" align="center" class-name="small-padding fixed-width" fixed="right" |
| | | width="80px"> |
| | | <template slot-scope="scope"> |
| | | <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['catering:catering:edit']" title="修改"> |
| | | </el-button> |
| | | <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete1(scope.row)" |
| | | v-hasPermi="['catering:catering:remove']" title="删除"> |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitForm">确 定</el-button> |
| | | <el-button @click="cancel">取 消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | </div> |
| | | </template> |
| | | <script> |
| | | export default { |
| | | dicts: [ |
| | | "memo_state_level", |
| | | "memo_status", |
| | | "memo_date_type", |
| | | "sys_yes_no", |
| | | "reservation_pay_type", |
| | | "sys_normal_disable" |
| | | ], |
| | | data() { |
| | | return { |
| | | // 显示搜索条件 |
| | | showSearch: true, |
| | | queryParams: { |
| | | |
| | | }, |
| | | title: "", |
| | | value1: '', |
| | | time: '', |
| | | open: false, |
| | | value: new Date(), |
| | | calendarData: [], |
| | | form: { |
| | | mTime: new Date(2016, 9, 10, 18, 40), |
| | | }, |
| | | cateringList: [], |
| | | // 表单校验 |
| | | rules: { |
| | | title: [ |
| | | { required: true, message: "标题不能为空", trigger: "change" }, |
| | | ], |
| | | }, |
| | | } |
| | | }, |
| | | monthChange(val) { |
| | | // 这里是监听时间变化 => @change="monthChange",然后传入日历组件 |
| | | this.value = val; |
| | | // 时间切换的时候,顺便调个接口查询当月数据 |
| | | this.editDetail(); |
| | | }, |
| | | methods: { |
| | | editDetail() { |
| | | |
| | | }, |
| | | handleQuery() { |
| | | |
| | | }, |
| | | addPlan(val) { |
| | | this.open = true |
| | | this.title = "新增日计划" |
| | | this.timestampToTime(val) |
| | | }, |
| | | timestampToTime(timestamp) { |
| | | var date = new Date(timestamp); |
| | | var y = date.getFullYear(); |
| | | var m = date.getMonth() + 1; |
| | | m = m < 10 ? ('0' + m) : m; |
| | | var d = date.getDate(); |
| | | d = d < 10 ? ('0' + d) : d; |
| | | var h = date.getHours(); |
| | | var minute = date.getMinutes(); |
| | | minute = minute < 10 ? ('0' + minute) : minute; |
| | | var second = date.getSeconds(); |
| | | second = second < 10 ? ('0' + second) : second; |
| | | this.time = y + '-' + m + '-' + d; |
| | | }, |
| | | hableadd() { |
| | | this.cateringList.push(this.form) |
| | | this.form = {} |
| | | }, |
| | | cancel() { |
| | | this.open = false |
| | | }, |
| | | submitForm() { |
| | | |
| | | }, |
| | | handleDelete1(row) { |
| | | this.cateringList.splice(row, 1) |
| | | }, |
| | | |
| | | |
| | | } |
| | | } |
| | | </script> |
| | | <style> |
| | | ::v-deep .el-calendar-table:not(.is-range) td.next { |
| | | display: none; |
| | | } |
| | | |
| | | ::v-deep .el-calendar-table:not(.is-range) td.prev { |
| | | visibility: hidden; |
| | | } |
| | | |
| | | ::v-deep .el-calendar__button-group { |
| | | display: none; |
| | | } |
| | | |
| | | |
| | | /* 取消[type='number']的input的上下箭头 */ |
| | | input::-webkit-inner-spin-button { |
| | | -webkit-appearance: none !important; |
| | | } |
| | | |
| | | input::-webkit-outer-spin-button { |
| | | -webkit-appearance: none !important; |
| | | } |
| | | |
| | | input[type='number'] { |
| | | -moz-appearance: textfield; |
| | | } |
| | | </style> |
New file |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> |
| | | |
| | | <el-form-item label="医生姓名" prop="proName"> |
| | | <el-input v-model="queryParams.proName" placeholder="请输入医生姓名" clearable @keyup.enter.native="handleQuery" /> |
| | | </el-form-item> |
| | | <el-form-item label="登记时间"> |
| | | <el-date-picker clearable v-model="createTimeList" style="width: 240px" value-format="yyyy-MM-dd" |
| | | type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" |
| | | :picker-options="pickerOptions"></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> |
| | | <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd" |
| | | v-hasPermi="['hosp:rules:add']">新增 |
| | | </el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate" |
| | | v-hasPermi="['hosp:rules:edit']">修改 |
| | | </el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete" |
| | | v-hasPermi="['hosp:rules:remove']">删除 |
| | | </el-button> |
| | | </el-col> |
| | | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
| | | </el-row> |
| | | |
| | | <el-table border v-loading="loading" :data="dataList" @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55" align="center" /> |
| | | <el-table-column label="序号" align="center" prop="newID" width="55" /> |
| | | <el-table-column label="医生姓名" align="center" prop="name" /> |
| | | <el-table-column label="性别" align="center" prop="sex" :show-overflow-tooltip="true"> |
| | | <template slot-scope="scope"> |
| | | <dict-tag :options="dict.type.tj_rule_sex" :value="scope.row.sex" /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="排班日期" align="center" prop="time" /> |
| | | <el-table-column label="星期" align="center" prop="week" /> |
| | | <el-table-column label="上午/下午" align="center" prop="daty" /> |
| | | <el-table-column label="出诊科室" align="center" prop="dept" /> |
| | | <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> |
| | | <template slot-scope="scope"> |
| | | <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['hosp:rules:edit']" title="修改"> |
| | | </el-button> |
| | | <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" |
| | | v-hasPermi="['hosp:rules:remove']" title="删除"> |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <div class="pag"> |
| | | <div class="pag1"> |
| | | <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" @pagination="getList" /> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- 添加或修改规则+病种对话框 --> |
| | | <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body> |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="80px" :inline="true"> |
| | | <el-form-item label="医生姓名" prop="name"> |
| | | <el-input v-model="form.name" placeholder="请输入年龄-" style="width:200px" /> |
| | | </el-form-item> |
| | | <el-form-item label="性别" prop="sex"> |
| | | <el-select v-model="form.sex" placeholder="请选择性别" style="width:200px"> |
| | | <el-option v-for="dict in dict.type.tj_rule_sex" :key="dict.value" :label="dict.label" |
| | | :value="dict.value"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="排班日期" prop="time"> |
| | | <el-input v-model="form.time" placeholder="请输入排班日期" style="width:200px" /> |
| | | </el-form-item> |
| | | <el-form-item label="星期" prop="week"> |
| | | <el-input v-model="form.week" placeholder="请输入星期" style="width:200px" /> |
| | | </el-form-item> |
| | | <el-form-item label="上午/下午" prop="daty"> |
| | | <el-input v-model="form.daty" placeholder="请输入上午/下午" style="width:200px" /> |
| | | </el-form-item> |
| | | <el-form-item label="出诊科室" prop="dept"> |
| | | <el-input v-model="form.dept" placeholder="请输入出诊科室" style="width:200px" /> |
| | | </el-form-item> |
| | | |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitForm">确 定</el-button> |
| | | <el-button @click="cancel">取 消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | |
| | | } from "@/api/hosp/rules"; |
| | | |
| | | export default { |
| | | name: "Rules", |
| | | dicts: ["tj_rule_sex"], |
| | | data() { |
| | | return { |
| | | dataList:[{ |
| | | newID:1, |
| | | name:"小张", |
| | | sex:"1", |
| | | dept:"外科", |
| | | time:"2023-11-15", |
| | | daty:"全天", |
| | | week:"星期五" |
| | | }], |
| | | // 遮罩层 |
| | | loading: true, |
| | | // 选中数组 |
| | | ids: [], |
| | | // 非单个禁用 |
| | | single: true, |
| | | // 非多个禁用 |
| | | multiple: true, |
| | | // 显示搜索条件 |
| | | showSearch: true, |
| | | // 总条数 |
| | | total: 0, |
| | | createTimeList: null, |
| | | // 弹出层标题 |
| | | title: "", |
| | | // 是否显示弹出层 |
| | | open: false, |
| | | // 查询参数 |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | }, |
| | | // 表单参数 |
| | | form: {}, |
| | | // 表单校验 |
| | | rules: { |
| | | ageGt: [ |
| | | { required: true, message: "项目名不能为空", trigger: "change" }, |
| | | ], |
| | | }, |
| | | pickerOptions: { |
| | | shortcuts: [ |
| | | { |
| | | text: "近一周", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | { |
| | | text: "近一个月", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | { |
| | | text: "近三个月", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | watch: { |
| | | |
| | | |
| | | }, |
| | | created() { |
| | | this.getNowTime(); |
| | | this.getList(); |
| | | }, |
| | | methods: { |
| | | //处理默认选中当前日期 |
| | | getNowTime() { |
| | | var curDate = new Date().getTime(); |
| | | var dayNum = 3 * 24 * 3600 * 1000; |
| | | var threeDays = curDate - dayNum; |
| | | var sDay = this.getLocalTime(threeDays); |
| | | var end = this.getLocalTime(curDate); |
| | | this.finishTimeList = [sDay, end]; |
| | | }, |
| | | add0(m) { |
| | | return m < 10 ? "0" + m : m; |
| | | }, |
| | | getLocalTime(nS) { |
| | | var time = new Date(nS); |
| | | var y = time.getFullYear(); |
| | | var m = time.getMonth() + 1; |
| | | var d = time.getDate(); |
| | | return y + "-" + this.add0(m) + "-" + this.add0(d); |
| | | }, |
| | | |
| | | getList() { |
| | | this.loading = false |
| | | }, |
| | | |
| | | |
| | | // 取消按钮 |
| | | cancel() { |
| | | this.open = false; |
| | | this.reset(); |
| | | }, |
| | | // 表单重置 |
| | | reset() { |
| | | this.form = { |
| | | |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | | /** 搜索按钮操作 */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | | /** 重置按钮操作 */ |
| | | resetQuery() { |
| | | this.resetForm("queryForm"); |
| | | this.handleQuery(); |
| | | }, |
| | | // 多选框选中数据 |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map((item) => item.aid); |
| | | this.single = selection.length !== 1; |
| | | this.multiple = !selection.length; |
| | | }, |
| | | /** 新增按钮操作 */ |
| | | handleAdd() { |
| | | this.open = true |
| | | }, |
| | | |
| | | /** 修改按钮操作 */ |
| | | handleUpdate(row) { |
| | | this.open = true |
| | | this.form = row |
| | | }, |
| | | /** 提交按钮 */ |
| | | submitForm() { |
| | | |
| | | }, |
| | | /** 删除按钮操作 */ |
| | | handleDelete(row) { |
| | | |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | <style scoped> |
| | | .pag { |
| | | width: 100%; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | |
| | | .pag1 { |
| | | width: 30%; |
| | | } |
| | | </style> |
| | | |
New file |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="科室" prop="deptName"> |
| | | <el-input v-model="queryParams.proName" placeholder="请输入医生姓名" clearable @keyup.enter.native="handleQuery" /> |
| | | </el-form-item> |
| | | <el-form-item label="医生姓名" prop="proName"> |
| | | <el-input v-model="queryParams.proName" placeholder="请输入医生姓名" clearable @keyup.enter.native="handleQuery" /> |
| | | </el-form-item> |
| | | <el-form-item label="登记时间"> |
| | | <el-date-picker clearable v-model="createTimeList" style="width: 240px" value-format="yyyy-MM-dd" |
| | | type="daterange" range-separator="-" start-placeholder="开始日期" end-placeholder="结束日期" |
| | | :picker-options="pickerOptions"></el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> |
| | | <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | <el-row :gutter="10" class="mb8"> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" icon="el-icon-plus" size="mini" @click="handleAdd" |
| | | v-hasPermi="['hosp:rules:add']">新增 |
| | | </el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" icon="el-icon-edit" size="mini" :disabled="single" @click="handleUpdate" |
| | | v-hasPermi="['hosp:rules:edit']">修改 |
| | | </el-button> |
| | | </el-col> |
| | | <el-col :span="1.5"> |
| | | <el-button type="primary" icon="el-icon-delete" size="mini" :disabled="multiple" @click="handleDelete" |
| | | v-hasPermi="['hosp:rules:remove']">删除 |
| | | </el-button> |
| | | </el-col> |
| | | <right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar> |
| | | </el-row> |
| | | |
| | | <el-table border v-loading="loading" :data="dataList" @selection-change="handleSelectionChange"> |
| | | <el-table-column type="selection" width="55" align="center" /> |
| | | <el-table-column label="序号" align="center" prop="newID" width="55" /> |
| | | <el-table-column label="出诊科室" align="center" prop="dept" /> |
| | | <el-table-column label="医生姓名" align="center" prop="name" /> |
| | | <el-table-column label="排班日期" align="center" prop="time" /> |
| | | <el-table-column label="星期" align="center" prop="week" /> |
| | | <el-table-column label="上午/下午" align="center" prop="daty" /> |
| | | <el-table-column label="操作" align="center" class-name="small-padding fixed-width"> |
| | | <template slot-scope="scope"> |
| | | <el-button size="mini" type="text" icon="el-icon-edit" @click="handleUpdate(scope.row)" |
| | | v-hasPermi="['hosp:rules:edit']" title="修改"> |
| | | </el-button> |
| | | <el-button size="mini" type="text" icon="el-icon-delete" @click="handleDelete(scope.row)" |
| | | v-hasPermi="['hosp:rules:remove']" title="删除"> |
| | | </el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | |
| | | <div class="pag"> |
| | | <div class="pag1"> |
| | | <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" |
| | | :limit.sync="queryParams.pageSize" @pagination="getList" /> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- 添加或修改规则+病种对话框 --> |
| | | <el-dialog :title="title" :visible.sync="open" width="1000px" append-to-body> |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="80px" :inline="true"> |
| | | <el-form-item label="出诊科室" prop="dept"> |
| | | <el-input v-model="form.dept" placeholder="请输入出诊科室" style="width:200px" /> |
| | | </el-form-item> |
| | | <el-form-item label="排班日期" prop="time"> |
| | | <el-input v-model="form.time" placeholder="请输入排班日期" style="width:200px" /> |
| | | </el-form-item> |
| | | <el-form-item label="星期" prop="week"> |
| | | <el-input v-model="form.week" placeholder="请输入星期" style="width:200px" /> |
| | | </el-form-item> |
| | | <el-form-item label="上午/下午" prop="daty"> |
| | | <el-input v-model="form.daty" placeholder="请输入上午/下午" style="width:200px" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitForm">确 定</el-button> |
| | | <el-button @click="cancel">取 消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | |
| | | } from "@/api/hosp/rules"; |
| | | |
| | | export default { |
| | | name: "Rules", |
| | | dicts: ["tj_rule_sex"], |
| | | data() { |
| | | return { |
| | | dataList:[{ |
| | | newID:1, |
| | | name:"小张", |
| | | sex:"1", |
| | | dept:"外科", |
| | | time:"2023-11-15", |
| | | daty:"全天", |
| | | week:"星期五" |
| | | }], |
| | | // 遮罩层 |
| | | loading: true, |
| | | // 选中数组 |
| | | ids: [], |
| | | // 非单个禁用 |
| | | single: true, |
| | | // 非多个禁用 |
| | | multiple: true, |
| | | // 显示搜索条件 |
| | | showSearch: true, |
| | | // 总条数 |
| | | total: 0, |
| | | createTimeList: null, |
| | | // 弹出层标题 |
| | | title: "", |
| | | // 是否显示弹出层 |
| | | open: false, |
| | | // 查询参数 |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | }, |
| | | // 表单参数 |
| | | form: {}, |
| | | // 表单校验 |
| | | rules: { |
| | | ageGt: [ |
| | | { required: true, message: "项目名不能为空", trigger: "change" }, |
| | | ], |
| | | }, |
| | | pickerOptions: { |
| | | shortcuts: [ |
| | | { |
| | | text: "近一周", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | { |
| | | text: "近一个月", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | { |
| | | text: "近三个月", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | watch: { |
| | | |
| | | |
| | | }, |
| | | created() { |
| | | this.getNowTime(); |
| | | this.getList(); |
| | | }, |
| | | methods: { |
| | | //处理默认选中当前日期 |
| | | getNowTime() { |
| | | var curDate = new Date().getTime(); |
| | | var dayNum = 3 * 24 * 3600 * 1000; |
| | | var threeDays = curDate - dayNum; |
| | | var sDay = this.getLocalTime(threeDays); |
| | | var end = this.getLocalTime(curDate); |
| | | this.finishTimeList = [sDay, end]; |
| | | }, |
| | | add0(m) { |
| | | return m < 10 ? "0" + m : m; |
| | | }, |
| | | getLocalTime(nS) { |
| | | var time = new Date(nS); |
| | | var y = time.getFullYear(); |
| | | var m = time.getMonth() + 1; |
| | | var d = time.getDate(); |
| | | return y + "-" + this.add0(m) + "-" + this.add0(d); |
| | | }, |
| | | |
| | | getList() { |
| | | this.loading = false |
| | | }, |
| | | |
| | | |
| | | // 取消按钮 |
| | | cancel() { |
| | | this.open = false; |
| | | this.reset(); |
| | | }, |
| | | // 表单重置 |
| | | reset() { |
| | | this.form = { |
| | | |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | | /** 搜索按钮操作 */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | | /** 重置按钮操作 */ |
| | | resetQuery() { |
| | | this.resetForm("queryForm"); |
| | | this.handleQuery(); |
| | | }, |
| | | // 多选框选中数据 |
| | | handleSelectionChange(selection) { |
| | | this.ids = selection.map((item) => item.aid); |
| | | this.single = selection.length !== 1; |
| | | this.multiple = !selection.length; |
| | | }, |
| | | /** 新增按钮操作 */ |
| | | handleAdd() { |
| | | this.open = true |
| | | }, |
| | | |
| | | /** 修改按钮操作 */ |
| | | handleUpdate(row) { |
| | | this.open = true |
| | | this.form = row |
| | | }, |
| | | /** 提交按钮 */ |
| | | submitForm() { |
| | | |
| | | }, |
| | | /** 删除按钮操作 */ |
| | | handleDelete(row) { |
| | | |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | <style scoped> |
| | | .pag { |
| | | width: 100%; |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | |
| | | .pag1 { |
| | | width: 30%; |
| | | } |
| | | </style> |
| | | |
New file |
| | |
| | | <template> |
| | | <div> |
| | | <el-form :model="queryParams" ref="tableList" :inline="true" label-width="76px" style="margin: 10px 10px"> |
| | | <el-form-item label="体检时间" prop="date"> |
| | | <el-date-picker v-model="value1" type="date" placeholder="选择日期"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" @click="submitForm">搜索</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | <div class="data-view"> |
| | | <div id="main"></div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | |
| | | <script> |
| | | import { GetChartByDate } from "@/api/count/chart"; |
| | | const echarts = require("echarts/lib/echarts"); |
| | | require("echarts/lib/component/title"); |
| | | require("echarts/lib/component/tooltip"); |
| | | require("echarts/lib/component/legend"); |
| | | require("echarts/lib/chart/pie"); |
| | | |
| | | export default { |
| | | name: "chart", |
| | | data() { |
| | | return { |
| | | pickerOptions: { |
| | | shortcuts: [{ |
| | | text: '最近一周', |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); |
| | | picker.$emit('pick', [start, end]); |
| | | } |
| | | }, { |
| | | text: '最近一个月', |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); |
| | | picker.$emit('pick', [start, end]); |
| | | } |
| | | }, { |
| | | text: '最近三个月', |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); |
| | | picker.$emit('pick', [start, end]); |
| | | } |
| | | }] |
| | | }, |
| | | value1: "", |
| | | DateList: [], |
| | | startTime: "", |
| | | dateAll: [], |
| | | queryParams: { |
| | | date: null, |
| | | startDate: null, |
| | | endDate: null, |
| | | }, |
| | | }; |
| | | }, |
| | | |
| | | |
| | | methods: { |
| | | getList() { |
| | | this.queryParams.startDate = this.startTime[0]; |
| | | this.queryParams.endDate = this.startTime[1]; |
| | | let myChart = this.$echarts.init(document.getElementById("main")); |
| | | //你进入页面先把图表渲染了 然后才获取的数据把 |
| | | myChart.setOption({ |
| | | color: ['#5470c6'], |
| | | legend: {}, |
| | | tooltip: {}, |
| | | xAxis: { |
| | | type: 'category', |
| | | data: ['体检人数', '男生数量', '女生数量', '收入', '个检人数', '单位体检人数'] |
| | | }, |
| | | yAxis: { |
| | | type: 'value' |
| | | }, |
| | | series: [ |
| | | { |
| | | data: [120, 80, 40, { |
| | | value: 380, |
| | | itemStyle: { |
| | | color: '#a90000' |
| | | } |
| | | }, 100, 200], |
| | | type: 'bar' |
| | | } |
| | | ] |
| | | }); |
| | | |
| | | }, |
| | | // 时间 |
| | | dateChangebirthday1(val) { |
| | | this.startTime = val; |
| | | }, |
| | | |
| | | // 搜索 |
| | | submitForm() { |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | | }, |
| | | |
| | | mounted() { |
| | | this.getList(); |
| | | }, |
| | | }; |
| | | </script> |
| | | <style> |
| | | .data-view { |
| | | margin: 5px 15px; |
| | | height: 580px; |
| | | } |
| | | |
| | | #main { |
| | | padding: 10px; |
| | | height: 580px; |
| | | background-color: #fff; |
| | | } |
| | | </style> |
| | | |
| | | |
| | | |
New file |
| | |
| | | <template> |
| | | <div> |
| | | <el-form :model="queryParams" ref="tableList" :inline="true" label-width="76px" style="margin: 10px 10px"> |
| | | <el-form-item label="统计区间" prop="date"> |
| | | <el-date-picker v-model="value1" type="datetimerange" align="right" start-placeholder="开始日期" |
| | | :picker-options="pickerOptions" end-placeholder="结束日期" :default-time="['00:00:00', '23:00:00']" |
| | | format="yyyy-MM-dd HH:mm" value-format="yyyy-MM-dd HH:mm" @change="dateChangebirthday1"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" @click="submitForm">搜索</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | <div class="data-view"> |
| | | <div id="main"></div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | |
| | | <script> |
| | | import { GetChartByDate } from "@/api/count/chart"; |
| | | const echarts = require("echarts/lib/echarts"); |
| | | require("echarts/lib/component/title"); |
| | | require("echarts/lib/component/tooltip"); |
| | | require("echarts/lib/component/legend"); |
| | | require("echarts/lib/chart/pie"); |
| | | |
| | | export default { |
| | | name: "chart", |
| | | data() { |
| | | return { |
| | | pickerOptions: { |
| | | shortcuts: [{ |
| | | text: '最近一周', |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); |
| | | picker.$emit('pick', [start, end]); |
| | | } |
| | | }, { |
| | | text: '最近一个月', |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); |
| | | picker.$emit('pick', [start, end]); |
| | | } |
| | | }, { |
| | | text: '最近三个月', |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); |
| | | picker.$emit('pick', [start, end]); |
| | | } |
| | | }] |
| | | }, |
| | | value1: "", |
| | | DateList: [], |
| | | startTime: "", |
| | | dateAll: [], |
| | | queryParams: { |
| | | date: null, |
| | | startDate: null, |
| | | endDate: null, |
| | | }, |
| | | }; |
| | | }, |
| | | |
| | | |
| | | methods: { |
| | | getList() { |
| | | this.queryParams.startDate = this.startTime[0]; |
| | | this.queryParams.endDate = this.startTime[1]; |
| | | let myChart = this.$echarts.init(document.getElementById("main")); |
| | | //你进入页面先把图表渲染了 然后才获取的数据把 |
| | | myChart.setOption({ |
| | | |
| | | tooltip: {}, |
| | | xAxis: { |
| | | type: 'category', |
| | | data: ['一般检查','外科','内科', '化验科', '检验科', '心电图室','妇科','B超室','新生儿科', '儿童科'] |
| | | }, |
| | | yAxis: { |
| | | type: 'value' |
| | | }, |
| | | legend: { |
| | | data: ['剩余体检人数', '已完成体检人数'] |
| | | }, |
| | | |
| | | series: [{ |
| | | name: '剩余体检人数', |
| | | color: ['#2f4554'], |
| | | data: [100, 150, 120, 90, 50, 130, 110,80,90,100], |
| | | type: 'bar', |
| | | label: { |
| | | // show: true, |
| | | position: 'right' |
| | | } |
| | | }, |
| | | { |
| | | name: '已完成体检人数', |
| | | color: ['#c23531'], |
| | | data: [120, 130, 110, 70, 60, 110, 140,80,90,80], |
| | | type: 'bar', |
| | | label: { |
| | | // show: true, |
| | | position: 'right' |
| | | } |
| | | }] |
| | | |
| | | |
| | | }); |
| | | |
| | | }, |
| | | // 时间 |
| | | dateChangebirthday1(val) { |
| | | this.startTime = val; |
| | | }, |
| | | |
| | | // 搜索 |
| | | submitForm() { |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | | }, |
| | | |
| | | mounted() { |
| | | this.getList(); |
| | | }, |
| | | }; |
| | | </script> |
| | | <style> |
| | | .data-view { |
| | | margin: 5px 15px; |
| | | height: 580px; |
| | | } |
| | | |
| | | #main { |
| | | padding: 10px; |
| | | height: 580px; |
| | | background-color: #fff; |
| | | } |
| | | </style> |
| | | |
| | | |
| | | |
New file |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-row :gutter="18"> |
| | | <el-col :span="6" :xs="18"> |
| | | <div class="head-container"> |
| | | <el-input v-model="deptName" placeholder="请输入部门名称" clearable size="small" prefix-icon="el-icon-search" |
| | | style="margin-bottom: 15px" /> |
| | | </div> |
| | | <div class="head-container"> |
| | | <el-tree :data="deptOptions" :props="defaultProps" :expand-on-click-node="false" |
| | | :filter-node-method="filterNode" ref="tree" node-key="id" :default-expanded-keys="treeId" highlight-current |
| | | @node-click="handleNodeClick" /> |
| | | </div> |
| | | </el-col> |
| | | <el-col :span="18" :xs="18"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <!-- <el-form-item label="项目名称" prop="proName"> |
| | | <el-input v-model="queryParams.proName" placeholder="请输入项目名称" clearable @keyup.enter.native="handleQuery" /> |
| | | </el-form-item> |
| | | <el-form-item label="检查类别" prop="checkType"> |
| | | <el-input v-model="queryParams.checkType" placeholder="请输入检查类别" clearable @keyup.enter.native="handleQuery" /> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> |
| | | <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> |
| | | </el-form-item> --> |
| | | </el-form> |
| | | |
| | | <el-table v-if="refreshTable" v-loading="loading" :data="projectList" ref="tableRef" border row-key="proId" |
| | | :expand-row-keys="ListId" :row-class-name="selectSingleRow" |
| | | :tree-props="{ children: 'tjProjectList', hasChildren: 'tjProjectList.length>0', }"> |
| | | <el-table-column label="项目名称" align="center" prop="proName" /> |
| | | <el-table-column label="已检人数" align="center" prop="a" /> |
| | | <el-table-column label="未检人数" align="center" prop="b" /> |
| | | <el-table-column label="延期人数" align="center" prop="c" /> |
| | | <el-table-column label="弃检人数" align="center" prop="d" /> |
| | | </el-table> |
| | | </el-col> |
| | | </el-row> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | getProject, |
| | | delProject, |
| | | addProject, |
| | | updateProject, |
| | | ProjectTree, |
| | | deptTree, |
| | | } from "@/api/hosp/project"; |
| | | import { listDept } from "@/api/system/dept"; |
| | | import Treeselect from "@riophae/vue-treeselect"; |
| | | import "@riophae/vue-treeselect/dist/vue-treeselect.css"; |
| | | import IconSelect from "@/components/IconSelect"; |
| | | import { listConsumables } from "@/api/hosp/consumables"; |
| | | import { Message } from "element-ui"; |
| | | import { |
| | | listSfxm, |
| | | getSfxm, |
| | | delSfxm, |
| | | addSfxm, |
| | | updateSfxm, |
| | | gettreeList, |
| | | getListByXmId |
| | | } from "@/api/system/sfxm"; |
| | | |
| | | export default { |
| | | name: "Project", |
| | | dicts: ["sys_normal_disable", "dict_personnel_type", "sys_user_sex", "tj_result_type", "dis_sampling_tab", "sys_dict_specimen", "sys_dict_position", "tj_result_type","sys_yes_no"], |
| | | components: { Treeselect, IconSelect }, |
| | | data() { |
| | | return { |
| | | // 部门树选项 |
| | | deptOptions: undefined, |
| | | dialogTableVisible: false, |
| | | sfxmList: [], |
| | | deptOptionstree: [], |
| | | defaultPropstree: { |
| | | children: "dictSfxms", |
| | | label: "xmmc", |
| | | }, |
| | | xmmc: "", |
| | | chargeId: [], |
| | | List: false, |
| | | // 部门名称 |
| | | deptName: "", |
| | | deptOption: [], |
| | | ChangeList: [], |
| | | // 遮罩层 |
| | | loading: true, |
| | | key: "", |
| | | // 选中数组 |
| | | ids: [], |
| | | // 非单个禁用 |
| | | single: true, |
| | | // 非多个禁用 |
| | | multiple: true, |
| | | // 显示搜索条件 |
| | | showSearch: true, |
| | | // 总条数 |
| | | total: 0, |
| | | treeId: [], |
| | | ListId: [], |
| | | // 体检耗材表格数据 |
| | | consumableList: [], |
| | | tjStandardList: [], |
| | | // 表格树数据 |
| | | deptList: [], |
| | | parentNameList: [], |
| | | sfxmId:null, |
| | | // 体检项目表格数据 |
| | | projectList: [], |
| | | // 菜单树选项 |
| | | projectOptions: [], |
| | | // 弹出层标题 |
| | | title: "", |
| | | // 是否显示弹出层 |
| | | open: false, |
| | | // 是否展开,默认全部折叠 |
| | | isExpandAll: false, |
| | | showPrise: false, |
| | | showRentPrise: false, |
| | | defaultProps: { |
| | | children: "children", |
| | | label: "label", |
| | | }, |
| | | id:"", |
| | | // 重新渲染表格状态 |
| | | refreshTable: true, |
| | | // 查询参数 |
| | | queryParams: { |
| | | // pageNum: 1, |
| | | // pageSize: 10, |
| | | proName: null, |
| | | proEngName: null, |
| | | checkType: null, |
| | | deptId: undefined, |
| | | }, |
| | | querycharge: { |
| | | pageNum: 1, |
| | | pageSize: 50, |
| | | xmmc: null, |
| | | pym: null, |
| | | }, |
| | | queryParam: { |
| | | page: 1, |
| | | pageSize: 10, |
| | | id: null, |
| | | }, |
| | | // 表单参数 |
| | | form: {}, |
| | | // 表单校验 |
| | | rules: { |
| | | createTime: [ |
| | | { required: true, message: "创建时间不能为空", trigger: "blur" }, |
| | | ], |
| | | updateTime: [ |
| | | { required: true, message: "修改时间不能为空", trigger: "blur" }, |
| | | ], |
| | | deleted: [ |
| | | { required: true, message: "删除标记不能为空", trigger: "blur" }, |
| | | ], |
| | | proName: [ |
| | | { required: true, message: "项目名称不能为空", trigger: "blur" }, |
| | | ], |
| | | proPrice: [ |
| | | { required: true, message: "项目价格不能为空", trigger: "blur" }, |
| | | ], |
| | | deptName: [ |
| | | { required: true, message: "科室名称不能为空", trigger: "blur" }, |
| | | ], |
| | | // proStandard: [ |
| | | // { required: true, message: "项目标准值不能为空", trigger: "blur" }, |
| | | // ], |
| | | }, |
| | | }; |
| | | }, |
| | | watch: { |
| | | // 根据名称筛选部门树 |
| | | deptName(val) { |
| | | this.$refs.tree.filter(val); |
| | | }, |
| | | treeId(newVal, oldVal) { |
| | | if (newVal) { |
| | | this.$nextTick(() => { |
| | | document |
| | | .querySelector('.el-tree-node__children .el-tree-node__content') |
| | | .click(); |
| | | }); |
| | | } |
| | | }, |
| | | // 根据名称筛选部门树 |
| | | xmmc(val) { |
| | | this.$refs.tree.filter(val); |
| | | }, |
| | | chargeId(newVal, oldVal) { |
| | | if (newVal) { |
| | | this.$nextTick(() => { |
| | | // document.getElementById("changtree").click();; |
| | | document |
| | | .querySelector('#changtree .el-tree-node__children .el-tree-node.is-focusable .el-tree-node__content') |
| | | .click(); |
| | | }); |
| | | } |
| | | } |
| | | }, |
| | | |
| | | created() { |
| | | this.getDeptList(); |
| | | this.getDeptTree(); |
| | | }, |
| | | methods: { |
| | | |
| | | //是否显示选中的值 |
| | | display(value) { }, |
| | | /** 查询体检项目列表 */ |
| | | getList() { |
| | | this.loading = true; |
| | | let data = { |
| | | proName: this.queryParams.proName, |
| | | checkType: this.queryParams.checkType, |
| | | deptId: this.queryParams.deptId, |
| | | }; |
| | | ProjectTree(data).then((response) => { |
| | | this.projectList = this.handleTree(response.data.list, "proId"); |
| | | this.projectList.forEach(element => { |
| | | element.a="0" |
| | | element.b=0 |
| | | element.c="0" |
| | | element.d="0" |
| | | element.tjProjectList.forEach(item => { |
| | | item.a="0" |
| | | item.b=0 |
| | | item.c="0" |
| | | item.d="0" |
| | | }) |
| | | }); |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | |
| | | |
| | | // // 查询体检项目列表(树形结构) |
| | | getData() { |
| | | /** 查询部门下拉树结构 */ |
| | | ProjectTree().then((response) => { |
| | | this.projectOptions = []; |
| | | const project = { proId: 0, proName: "主类目", children: [] }; |
| | | project.children = this.handleTree(response.data.list, "proId"); |
| | | this.key = response.data.key |
| | | // if (this.key == "Y") { |
| | | // this.key = response.data.key |
| | | // } else if (response.data.key == "N") { |
| | | // this.key = response.data.key |
| | | // } |
| | | this.projectOptions.push(project); |
| | | }); |
| | | }, |
| | | /** 查询部门列表 */ |
| | | getDeptList() { |
| | | listDept(this.queryParams).then((response) => { |
| | | console.log(response) |
| | | this.parentNameList = response.data; |
| | | this.deptList = this.handleTree(response.data, "proId"); |
| | | }); |
| | | }, |
| | | /** 查询部门下拉树结构 */ |
| | | getDeptTree() { |
| | | deptTree().then((response) => { |
| | | this.deptOptions = response.data; |
| | | this.treeId.push(this.deptOptions[0].id) |
| | | }); |
| | | }, |
| | | |
| | | // 筛选节点 |
| | | filterNode2(value, data) { |
| | | if (!value) return true; |
| | | return data.xmmc.indexOf(value) !== -1; |
| | | }, |
| | | // 筛选节点 |
| | | filterNode(value, data) { |
| | | if (!value) return true; |
| | | return data.label.indexOf(value) !== -1; |
| | | }, |
| | | // 节点单击事件 |
| | | handleNodeClick(date) { |
| | | this.id = date.id; |
| | | this.queryParams.deptId = date.id; |
| | | let data = { |
| | | deptId: this.queryParams.deptId, |
| | | }; |
| | | ProjectTree(data).then((response) => { |
| | | this.projectList = this.handleTree(response.data.list, "proId"); |
| | | this.projectList.forEach(element => { |
| | | element.a="0" |
| | | element.b=0 |
| | | element.c="0" |
| | | element.d="0" |
| | | element.tjProjectList.forEach(item => { |
| | | item.a="0" |
| | | item.b=0 |
| | | item.c="0" |
| | | item.d="0" |
| | | }) |
| | | }); |
| | | |
| | | this.ListId.push(this.projectList[0].proId) |
| | | this.key = response.data.key |
| | | // if (this.key == "Y") { |
| | | // this.key = response.data.key |
| | | // } else if (response.data.key == "N") { |
| | | // this.key = response.data.key |
| | | // } |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | selectSingleRow({ row, rowIndex }) { |
| | | if (rowIndex === 1) { |
| | | return 'warning-row'; |
| | | } |
| | | return ''; |
| | | }, |
| | | |
| | | |
| | | // 表单重置 |
| | | reset() { |
| | | this.form = { |
| | | proParentId: null, |
| | | proName: null, |
| | | proEngName: null, |
| | | proPrice: "0.00", |
| | | proRemark: null, |
| | | createBy: null, |
| | | createTime: null, |
| | | updateBy: null, |
| | | updateTime: null, |
| | | deleted: null, |
| | | proCheckType: null, |
| | | proMeaning: null, |
| | | proCheckMethod: null, |
| | | proStandard: null, |
| | | proScope: null, |
| | | proType: null, |
| | | deptId: null, |
| | | deptName: null, |
| | | consumablesList: [], |
| | | tjStandardList: [], |
| | | proStatus: "启用", |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | | |
| | | |
| | | }, |
| | | } |
| | | |
| | | </script> |
| | | <style scoped> |
| | | .el-table__header-wrapper .el-checkbox { |
| | | display: none; |
| | | } |
| | | |
| | | .pag { |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | |
| | | .pag1 { |
| | | width: 40%; |
| | | } |
| | | |
| | | .dialog-footer { |
| | | position: absolute; |
| | | left: 40%; |
| | | bottom: 3%; |
| | | } |
| | | |
| | | .el-table .warning-row { |
| | | background: #e5f3ff; |
| | | } |
| | | |
| | | .el-tree-node.is-current>.el-tree-node__content { |
| | | background-color: #e5f3ff !important; |
| | | color: #333 !important |
| | | } |
| | | </style> |
| | | |
New file |
| | |
| | | <template> |
| | | <div class="app-container"> |
| | | <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px"> |
| | | <el-form-item label="体检号" prop="tjNum"> |
| | | <el-input ref="inputName" v-model="queryParams.tjNum" placeholder="请输入体检号" style="width: 170px" clearable |
| | | @keyup.enter.native="handleQuery" /> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button> |
| | | <el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | <template> |
| | | <h4 v-if="tjCustomerName">姓名:{{tjCustomerName }}</h4> |
| | | <el-table border v-loading="loading" :data="orderList" > |
| | | <el-table-column label="序号" align="center" prop="newID" /> |
| | | |
| | | |
| | | <el-table-column label="体检号" align="center" prop="tjNumber" /> |
| | | <el-table-column label="已完成项目" align="center" prop="tjNumber" /> <el-table-column label="未完成项目" |
| | | align="center" prop="tjNumber" /> |
| | | <el-table-column label="弃检项目" align="center" prop="tjNumber" /> |
| | | <el-table-column label="延期项目" align="center" prop="tjNumber" /> |
| | | |
| | | </el-table> |
| | | </template> |
| | | |
| | | <div class="pag"> |
| | | <div class="pag1"> |
| | | <el-pagination background @size-change="handleSizeChange" @current-change="handleCurrentChange" |
| | | :current-page="queryParams.pageNum" :page-sizes="[10, 20, 30, 40]" :page-size="queryParams.pageSize" |
| | | layout="total, sizes, prev, pager, next, jumper" :total="total"> |
| | | </el-pagination> |
| | | <!-- <pagination v-show="total > 0" :total="total" :page.sync="queryParams.pageNum" :limit.sync="queryParams.pageSize" |
| | | @pagination="getList" /> --> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { |
| | | listOrder, |
| | | getNumber, |
| | | hasReportEnd, |
| | | hasReport, |
| | | gettoPdf, |
| | | getPdf, |
| | | getOrderList, |
| | | } from "@/api/hosp/order"; |
| | | import { getwater } from "@/api/hosp/customer"; |
| | | import ViewPdf from "@/components/ViewPdf"; |
| | | import { projectGetList, getaddtTransition } from "@/api/system/tijian"; |
| | | export default { |
| | | components: { |
| | | ViewPdf, |
| | | }, |
| | | dicts: ["dict_pay_type"], |
| | | name: "Order", |
| | | data() { |
| | | return { |
| | | tjCustomerName: "", |
| | | orderIds: "", |
| | | tjnumbers: "", |
| | | cusIds: "", |
| | | userIds: "", |
| | | cusIdcard: "", |
| | | cusName: "", |
| | | cusPhone: "", |
| | | cusSex: "", |
| | | reportTimeList: "", |
| | | createTimeList: "", |
| | | cusId: "", |
| | | payType: "0", |
| | | dialogVisible: false, |
| | | daoZhenDan: false, |
| | | Projectopen: false, |
| | | Projectopen1: false, |
| | | src: "", |
| | | url: "", |
| | | flag: true, |
| | | bill: null, |
| | | Treedata: [], |
| | | defaultProps: { |
| | | children: "tjProjectList", |
| | | label: "proName", |
| | | }, |
| | | discount: 10, |
| | | DataList: [], |
| | | // 套餐提交按钮 |
| | | confirm: false, |
| | | list1: true, |
| | | activeName: "1", |
| | | proIds: [], |
| | | TotalPrice1: 0, |
| | | numberList: [], |
| | | dialogVisible: false, |
| | | // 遮罩层 |
| | | loading: false, |
| | | // 选中数组 |
| | | ids: [], |
| | | // 非单个禁用 |
| | | single: true, |
| | | // 非多个禁用 |
| | | multiple: true, |
| | | // 显示搜索条件 |
| | | showSearch: true, |
| | | userId: "", |
| | | // 总条数 |
| | | total: 0, |
| | | // 体检记录表格数据 |
| | | orderList: [], |
| | | // 弹出层标题 |
| | | title: "", |
| | | orderId: "", |
| | | // 是否显示弹出层 |
| | | open: false, |
| | | // 日期范围 |
| | | datetimerange: [], |
| | | // 查询参数 |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | djbeginTime: null, |
| | | djendTime: null, |
| | | tjNum: null, |
| | | bgbeginTime: null, |
| | | bgendTime: null, |
| | | }, |
| | | startTime: "", |
| | | startTime1: "", |
| | | // 表单参数 |
| | | form: { |
| | | tjType: 2, |
| | | }, |
| | | // 表单校验 |
| | | rules: {}, |
| | | pickerOptions: { |
| | | shortcuts: [ |
| | | { |
| | | text: "最近一周", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(new Date().setHours(0, 0, 0, 0)); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 7); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | { |
| | | text: "最近一个月", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(new Date().setHours(0, 0, 0, 0)); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 30); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | { |
| | | text: "最近三个月", |
| | | onClick(picker) { |
| | | const end = new Date(); |
| | | const start = new Date(new Date().setHours(0, 0, 0, 0)); |
| | | start.setTime(start.getTime() - 3600 * 1000 * 24 * 90); |
| | | picker.$emit("pick", [start, end]); |
| | | }, |
| | | }, |
| | | ], |
| | | }, |
| | | }; |
| | | }, |
| | | created() { |
| | | // this.getList() |
| | | }, |
| | | mounted() { |
| | | this.$nextTick(() => { |
| | | this.$refs.inputName.focus(); |
| | | }); |
| | | }, |
| | | methods: { |
| | | // / 处理默认选中当前日期 |
| | | getNowTime() { |
| | | var curDate = new Date(new Date().setHours(0, 0, 0, 0)).getTime(); |
| | | var dayNum = 7 * 24 * 3600 * 1000; |
| | | var threeDays = curDate - dayNum; |
| | | var sDay = this.getLocalTime(threeDays); |
| | | var end = this.getLocalTime(curDate); |
| | | this.createTimeList = [sDay, end]; |
| | | }, |
| | | add0(m) { |
| | | return m < 10 ? "0" + m : m; |
| | | }, |
| | | getLocalTime(nS) { |
| | | var time = new Date(nS); |
| | | var y = time.getFullYear(); |
| | | var m = time.getMonth() + 1; |
| | | var d = time.getDate(); |
| | | var h = time.getHours(); |
| | | var mm = time.getMinutes(); |
| | | return ( |
| | | y + |
| | | "-" + |
| | | this.add0(m) + |
| | | "-" + |
| | | this.add0(d) + |
| | | " " + |
| | | this.add0(h) + |
| | | ":" + |
| | | this.add0(mm) |
| | | ); |
| | | }, |
| | | dateChangebirthday1(val) { |
| | | this.startTime = val; |
| | | }, |
| | | dateChangebirthday2(val) { |
| | | this.startTime1 = val; |
| | | }, |
| | | /** 查询体检记录列表 */ |
| | | getList() { |
| | | this.queryParams.djbeginTime = this.startTime[0]; |
| | | this.queryParams.djendTime = this.startTime[1]; |
| | | this.loading = true; |
| | | getOrderList(this.queryParams).then((response) => { |
| | | this.orderList = response.data.list; |
| | | if (this.orderList) { |
| | | this.orderList.forEach((item, index) => { |
| | | if(this.queryParams.tjNum){ |
| | | this.tjCustomerName = item.tjCustomerName |
| | | }else{ |
| | | this.tjCustomerName = "" |
| | | } |
| | | |
| | | item.newID = |
| | | (this.queryParams.pageNum - 1) * this.queryParams.pageSize + |
| | | index + |
| | | 1; |
| | | }); |
| | | } |
| | | this.total = response.data.total; |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | /** 点击显示导检单报表*/ //lige 开始 |
| | | handleReport(row) { |
| | | const tjNumber = row.tjNumber; |
| | | const viewNum = "792931586196398080"; |
| | | const params = { viewNum, tjNumber }; |
| | | hasReport(tjNumber).then((res) => { |
| | | if (res == 1) { |
| | | this.$tab.openPage("导诊单", "/report/breDailyReport", params); |
| | | } else { |
| | | this.$message.error("该用户暂无项目!"); |
| | | } |
| | | }); |
| | | }, |
| | | /** 点击显示导检单报表*/ //lige 开始 |
| | | handleReport1(row) { |
| | | const tjNumber = this.tjnumbers; |
| | | const viewNum = "792931586196398080"; |
| | | const params = { viewNum, tjNumber }; |
| | | hasReport(tjNumber).then((res) => { |
| | | if (res == 1) { |
| | | this.$tab.openPage("导诊单", "/report/breDailyReport", params); |
| | | } else { |
| | | this.$message.error("该用户暂无项目!"); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | //lige 结束 |
| | | viewReport(row) { |
| | | const tjNumber = row.tjNumber; |
| | | const flag = true; |
| | | getPdf(tjNumber, flag).then((response) => { |
| | | if (response.size === 0) { |
| | | this.$message.error("该用户体检报告暂未完成!"); |
| | | this.dialogVisible = false; |
| | | } else { |
| | | this.dialogVisible = true; |
| | | this.url = window.webkitURL.createObjectURL(response); //将后端返回的blob文件读取出url |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | |
| | | |
| | | handleSizeChange(val) { |
| | | this.queryParams.pageNum = 1; |
| | | this.queryParams.pageSize = val; |
| | | this.getList(); |
| | | }, |
| | | handleCurrentChange(val) { |
| | | this.queryParams.pageNum = val; |
| | | this.getList(); |
| | | }, |
| | | |
| | | // 取消按钮 |
| | | cancel() { |
| | | this.open = false; |
| | | this.reset(); |
| | | }, |
| | | // 表单重置 |
| | | reset() { |
| | | this.form = { |
| | | orderId: null, |
| | | userId: null, |
| | | tjType: null, |
| | | tjNumber: null, |
| | | tjSerialNumber: null, |
| | | pacId: null, |
| | | createTime: null, |
| | | finishTime: null, |
| | | updateTime: null, |
| | | reportTime: null, |
| | | createBy: null, |
| | | updateBy: null, |
| | | deleted: null, |
| | | firmId: null, |
| | | firmDeptName: null, |
| | | firmWorkId: null, |
| | | photo: null, |
| | | djbeginTime: null, |
| | | djendTime: null, |
| | | bgbeginTime: null, |
| | | bgendTime: null, |
| | | }; |
| | | this.resetForm("form"); |
| | | }, |
| | | /** 搜索按钮操作 */ |
| | | handleQuery() { |
| | | this.queryParams.pageNum = 1; |
| | | this.getList(); |
| | | }, |
| | | /** 重置按钮操作 */ |
| | | resetQuery() { |
| | | this.resetForm("queryForm"); |
| | | this.orderList =[]; |
| | | this.tjCustomerName= "" |
| | | }, |
| | | // 多选框选中数据 |
| | | handleSelectionChange(selection) { |
| | | selection.forEach((item) => { |
| | | this.orderIds = item.orderId; |
| | | this.tjnumbers = item.tjNumber; |
| | | this.cusIds = item.tjCusIdCard; |
| | | this.userIds = item.userId; |
| | | this.cusIdcard = item.tjCusIdCard; |
| | | this.cusName = item.tjCustomerName; |
| | | this.cusPhone = item.tjCustomerPhone; |
| | | this.cusSex = item.tjCustomerSex; |
| | | }); |
| | | this.ids = selection.map((item) => item.orderId); |
| | | // this.tjNumbers = selection.map((item) => item.tjNumber); |
| | | this.single = selection.length !== 1; |
| | | this.multiple = !selection.length; |
| | | }, |
| | | /** 新增按钮操作 */ |
| | | // handleAdd() { |
| | | // this.reset(); |
| | | // this.open = true; |
| | | // this.title = "添加体检记录"; |
| | | // }, |
| | | |
| | | /** 订单流水按钮 */ |
| | | handleUpdate(row) { |
| | | const tjNumber = row.tjNumber; |
| | | this.open = true; |
| | | getNumber(tjNumber).then((response) => { |
| | | // this.form = response.data; |
| | | this.numberList = response.data.charging; |
| | | this.bill = response.data.water; |
| | | this.title = "订单流水"; |
| | | }); |
| | | }, |
| | | /** 订单明细按钮 */ |
| | | handleUpdate1(row) { |
| | | const tjNumber = this.tjnumbers; |
| | | this.open = true; |
| | | getNumber(tjNumber).then((response) => { |
| | | // this.form = response.data; |
| | | this.numberList = response.data.charging; |
| | | this.bill = response.data.water; |
| | | this.title = "订单流水"; |
| | | }); |
| | | }, |
| | | |
| | | // 补录项目 |
| | | handleProject(row) { |
| | | this.orderId = row.orderId; |
| | | this.cusId = row.tjCusIdCard; |
| | | this.userId = row.userId; |
| | | this.customer = { |
| | | cusIdcard: row.tjCusIdCard, |
| | | cusName: row.tjCustomerName, |
| | | cusPhone: row.tjCustomerPhone, |
| | | cusSex: row.tjCustomerSex, |
| | | }; |
| | | if (row.tjType) { |
| | | this.form.tjType = parseInt(row.tjType); |
| | | } else { |
| | | this.form.tjType = 0; |
| | | } |
| | | /** 查询部门下拉树结构 */ |
| | | projectGetList().then((response) => { |
| | | this.Treedata = response.data.list; |
| | | }); |
| | | this.Projectopen = true; |
| | | this.title = "补录项目"; |
| | | }, |
| | | // 补录项目 |
| | | handleProject1(row) { |
| | | this.orderId = this.ids; |
| | | this.cusId = this.cusIds; |
| | | this.userId = this.userIds; |
| | | this.customer = { |
| | | cusIdcard: this.cusIdcard, |
| | | cusName: this.cusName, |
| | | cusPhone: this.cusPhone, |
| | | cusSex: this.cusSex, |
| | | }; |
| | | if (row.tjType) { |
| | | this.form.tjType = parseInt(row.tjType); |
| | | } else { |
| | | this.form.tjType = 0; |
| | | } |
| | | /** 查询部门下拉树结构 */ |
| | | projectGetList().then((response) => { |
| | | this.Treedata = response.data.list; |
| | | }); |
| | | this.Projectopen1 = true; |
| | | this.title = "补录项目"; |
| | | }, |
| | | // 点击获取每个树节点 |
| | | handleCurrentChecked(data, checked, checkedNodes) { |
| | | if (!data.tjProjectList) { |
| | | return; |
| | | } |
| | | if (checked === true) { |
| | | this.DataList.push(data); |
| | | } else { |
| | | this.DataList.pop(data); |
| | | this.list1 = true; |
| | | } |
| | | // let DataList = selectedobj.checkedNodes |
| | | // if (DataList.length>0) { |
| | | // DataList.forEach(item => { |
| | | // if (nodeobj.proId === item.proId) { |
| | | // this.DataList = [] |
| | | // this.DataList.push(item) |
| | | |
| | | // this.list1 = false; |
| | | // } |
| | | // }) |
| | | // }else{ |
| | | // this.DataList = [] |
| | | // this.list1 = true; |
| | | // } |
| | | this.TotalPrice1 = 0; |
| | | this.proIds = []; |
| | | if (this.DataList.length != 0) { |
| | | this.list1 = false; |
| | | this.DataList.forEach((item) => { |
| | | this.TotalPrice1 = item.proPrice + this.TotalPrice1; |
| | | this.proIds.push(item.proId); |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | // 收费按钮 |
| | | submitPrice() { |
| | | let data = { |
| | | cusId: this.cusId, |
| | | proIds: this.proIds, |
| | | }; |
| | | getaddtTransition(data).then((response) => { |
| | | if (response.code === 200) { |
| | | let tjType = this.form.tjType; |
| | | let copeWith = this.TotalPrice1; |
| | | let paidIn = copeWith * (this.discount / 10); |
| | | let discount = this.discount; |
| | | let data = { |
| | | customer: this.customer, |
| | | paidIn, |
| | | discount, |
| | | copeWith, |
| | | tjType, |
| | | orderId: this.orderId, |
| | | tjProIds: this.proIds, |
| | | payType: this.payType, |
| | | }; |
| | | getwater(data).then((res) => { |
| | | this.$modal.msgSuccess("提交成功"); |
| | | this.mobanId = res.data.mobanId; |
| | | this.waterId = res.data.waterId; |
| | | const tjnumber = this.waterId; |
| | | const viewNum = this.mobanId; |
| | | const params = { viewNum, tjnumber }; |
| | | this.$tab.openPage("收款小票", "/report/charge", params); |
| | | this.Projectopen = false; |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | // 收费按钮 |
| | | submitPrice1() { |
| | | let data = { |
| | | cusId: this.cusIds, |
| | | proIds: this.proIds, |
| | | }; |
| | | getaddtTransition(data).then((response) => { |
| | | if (response.code === 200) { |
| | | let tjType = this.form.tjType; |
| | | let copeWith = this.TotalPrice1; |
| | | let paidIn = copeWith * (this.discount / 10); |
| | | let discount = this.discount; |
| | | let data = { |
| | | customer: this.customer, |
| | | paidIn, |
| | | discount, |
| | | copeWith, |
| | | tjType, |
| | | orderId: this.orderIds, |
| | | tjProIds: this.proIds, |
| | | payType: this.payType, |
| | | }; |
| | | getwater(data).then((res) => { |
| | | this.$modal.msgSuccess("提交成功"); |
| | | this.mobanId = res.data.mobanId; |
| | | this.waterId = res.data.waterId; |
| | | const tjnumber = this.waterId; |
| | | const viewNum = this.mobanId; |
| | | const params = { viewNum, tjnumber }; |
| | | this.$tab.openPage("收款小票", "/report/charge", params); |
| | | this.Projectopen1 = false; |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | |
| | | /** 导出按钮操作 */ |
| | | handleExport() { |
| | | this.download( |
| | | "hosp/order/export", |
| | | { |
| | | ...this.queryParams, |
| | | }, |
| | | `order_${new Date().getTime()}.xlsx` |
| | | ); |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | <style lang="scss"> |
| | | .pag { |
| | | width: 100%; |
| | | display: flex; |
| | | justify-content: center; |
| | | margin-top: 15px; |
| | | } |
| | | |
| | | .pag1 { |
| | | width: 30%; |
| | | } |
| | | |
| | | .main { |
| | | height: 700px; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | #printIframe::-webkit-scrollbar { |
| | | width: 6px; |
| | | } |
| | | |
| | | /* 修改 滚动条的 下面 的 样式 */ |
| | | #printIframe::-webkit-scrollbar-track { |
| | | background-color: white; |
| | | -webkit-border-radius: 2em; |
| | | -moz-border-radius: 2em; |
| | | border-radius: 2em; |
| | | } |
| | | |
| | | /* 修改 滑块 */ |
| | | #printIframe::-webkit-scrollbar-thumb { |
| | | background-color: #dcdfe6; |
| | | -webkit-border-radius: 2em; |
| | | -moz-border-radius: 2em; |
| | | border-radius: 2em; |
| | | } |
| | | |
| | | // .el-dialog { |
| | | // width: 1264px; |
| | | // min-height: 800px; |
| | | // } |
| | | |
| | | // .el-dialog__header { |
| | | // display: flex; |
| | | // justify-content: space-between; |
| | | // align-items: center; |
| | | // } |
| | | |
| | | // .el-dialog__body { |
| | | // padding: 20px; |
| | | // } |
| | | |
| | | .outside { |
| | | width: 700px; |
| | | display: flex; |
| | | margin-top: 8px; |
| | | } |
| | | |
| | | .outside1 { |
| | | width: 700px; |
| | | display: flex; |
| | | margin-top: 8px; |
| | | } |
| | | </style> |
| | | |
| | |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="24"> |
| | | <el-col :span="12" v-if="form.noticeType == 1"> |
| | | <el-form-item label="通知人员" prop="noticeType"> |
| | | <el-input v-model="form.noticeTitle" placeholder="请输入通知人员" /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="12"> |
| | | <el-form-item label="状态"> |
| | | <el-radio-group v-model="form.status"> |
| | | <el-radio |
| | |
| | | // detail: https://cli.vuejs.org/config/#devserver-proxy |
| | | [process.env.VUE_APP_BASE_API]: { |
| | | //target: `https://ltpeis.xaltjdkj.cn:5501/prod-api/getInfo`, |
| | | target: `http://192.168.0.101:5011`, |
| | | // target: `http://192.168.0.100:5011`, |
| | | // // target: `http://192.168.0.99:8080/ltkj-admin`, |
| | | // target: `https://ltpeis.xaltjdkj.cn:5011/ltkj-admin`, |
| | | target: `https://ltpeis.xaltjdkj.cn:5011/ltkj-admin`, |
| | | changeOrigin: true, |
| | | pathRewrite: { |
| | | ['^' + process.env.VUE_APP_BASE_API]: '' |