| | |
| | | <template> |
| | | <div class="mainbox"> |
| | | <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" v-if="tjStatus == 0"> |
| | | <el-form-item label="姓名" prop="name"> |
| | | <el-input v-model="queryParams.name" style="width: 120px" placeholder="请输入姓名" clearable |
| | | @keyup.enter.native="submitForm"></el-input> |
| | |
| | | </el-form-item> |
| | | </el-form> |
| | | |
| | | |
| | | <el-form :model="queryParams" ref="tableList" :inline="true" label-width="76px" style="margin-top: 10px" v-if="tjStatus == 1"> |
| | | <el-form-item label="姓名" prop="name"> |
| | | <el-input v-model="queryParams.name" style="width: 120px" placeholder="请输入姓名" clearable |
| | | @keyup.enter.native="submitForm"></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="submitForm" @blur="hb"></el-input> |
| | | </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 label="审核医师" prop="shys"> |
| | | <el-input ref="inputName" v-model="queryParams.shys" style="width: 180px" placeholder="请输入审核医师" clearable |
| | | @keyup.enter.native="submitForm"></el-input> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <el-button type="primary" size="mini" @click="submitForm" style="margin-right: 15px">搜索</el-button> |
| | | <el-button size="mini" @click="resetQuery">重置</el-button> |
| | | <el-button type="primary" size="mini" @click="toggleCollapse" style="margin-right: 15px" |
| | | v-show="isCollapsed == 0">高级搜索</el-button> |
| | | <el-button type="primary" size="mini" @click="toggleCollapse3" style="margin-right: 15px" |
| | | v-show="isCollapsed == 1">高级搜索</el-button> |
| | | </el-form-item> |
| | | <el-row v-show="isCollapsed == 1" :gutter="20"> |
| | | <el-col :span="8"> |
| | | <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-col> |
| | | </el-row> |
| | | |
| | | </el-form> |
| | | |
| | | <el-radio-group v-model="tjStatus" @input="radioChange" style="margin-left: 20px"> |
| | | <el-radio-button label="0">未审核</el-radio-button> |
| | | <el-radio-button label="1">已审核</el-radio-button> |
| | |
| | | <el-table-column label="电话" align="center" prop="cusPhone" :show-overflow-tooltip="true" width="130px" /> |
| | | <el-table-column label="审核时间" align="center" prop="shsj" :show-overflow-tooltip="true" width="180px" /> |
| | | <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="120px"> |
| | | <template slot-scope="scope"> |
| | | <el-table-column label="状态" align="center" prop="tjStatus" :show-overflow-tooltip="true" width="120px" v-if="tjStatus == 0"> |
| | | <template slot-scope="scope" v-if="tjStatus == 0"> |
| | | <span>{{ scope.row.tjStatus == "1" ? "已审核" : "未审核" }}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="审核医师" align="center" prop="shys" width="120px" v-if="tjStatus == 1"/> |
| | | <el-table-column label="单位名称" align="center" prop="tjCompName" :show-overflow-tooltip="true" /> |
| | | <el-table-column label="体检类别" align="center" prop="tjCategory"> |
| | | <template slot-scope="scope"> |
| | |
| | | 项目选择 |
| | | </span> |
| | | <div v-if="xmChange.length > 0" style="display: flex;"> |
| | | <div style="margin:0 40px;font-size: 0.8vw;">项目名称:{{ xmChange[0].pro_name || "" }}</div> |
| | | <div style="margin:0 40px ;font-size: 0.8vw;">价格:{{ xmChange[0].price || "" }}</div> |
| | | <div style="margin:0 40px;font-size: 0.8vw;">项目名称:{{ xmChange[0].proName || "" }}</div> |
| | | <div style="margin:0 80px ;font-size: 0.8vw;">价格:{{ xmChange[0].price || "" }}</div> |
| | | </div> |
| | | <div v-else style="display: flex;"> |
| | | <div style="margin:0 40px;font-size: 0.8vw;">项目名称:{{ }}</div> |
| | | <div style="margin:0 40px ;font-size: 0.8vw;">价格:{{ }}</div> |
| | | <div style="margin:0 80px ;font-size: 0.8vw;">价格:{{ }}</div> |
| | | </div> |
| | | <el-button type="primary" size="mini" @click="handleaddClick()">添加</el-button> |
| | | </div> |
| | | |
| | | <el-table :row-style="redxiangmu" :data="fcList" style="width: 100%"> |
| | | <el-table :row-style="redxiangmu" :data="fcList" style="width: 100%" border> |
| | | <el-table-column type="selection" width="40" align="center" /> |
| | | <el-table-column label="序号" align="center" prop="index" /> |
| | | <el-table-column label="名称" align="center" prop="pro_name" width="100px" /> |
| | | <el-table-column label="序号" align="center" prop="newID" /> |
| | | <el-table-column label="名称" align="center" prop="proName" width="100px" /> |
| | | <el-table-column label="价格" align="center" prop="price" /> |
| | | <el-table-column label="科室" align="center" prop="dept_name" /> |
| | | <el-table-column label="科室" align="center" prop="deptName" /> |
| | | <el-table-column label="操作" align="center" width="130px"> |
| | | <template slot-scope="scope"> |
| | | <el-button type="primary" icon="el-icon-share" size="mini" @click="handledeleteClick(scope.row)" |
| | | title="删除"></el-button> |
| | | <el-button type="primary" size="mini" @click="handledeleteClick(scope.row)">删除</el-button> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </template> |
| | | <template v-if="wenzhen"> |
| | | <template v-if="status1 == 3"> |
| | | <div class="hist3"> |
| | | <span class="txt">问诊信息</span> |
| | | <el-form ref="form" :model="formobj" label-width="100px" :inline="true" size="mini"> |
| | |
| | | </el-dialog> |
| | | |
| | | <el-dialog :visible.sync="xmopen" width="800px" append-to-body> |
| | | <el-form ref="form" :model="forms" label-width="80px"> |
| | | <el-form-item label="名称" prop="pacName"> |
| | | <el-input v-model="forms.pacName" placeholder="请输入名称" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | <el-table :data="datasList" ref="elTable" v-loading="loading" @selection-change="handlexmChange" border |
| | | height="320px"> |
| | | <el-table-column type="selection" width="40" align="center" /> |
| | | <el-table-column label="序号" align="center" prop="pacRemark" /> |
| | | <el-table-column label="名称" align="center" prop="pacName" width="100px" /> |
| | | <el-table-column label="价格" align="center" prop="price" /> |
| | | <el-table-column label="科室" align="center" prop="pacRemark" /> |
| | | </el-table> |
| | | <div style="margin: 20px;"> |
| | | <el-table :data="datasList" ref="elTable" v-loading="loading" @selection-change="handlexmChange" border |
| | | height="320px"> |
| | | <el-table-column type="selection" width="40" align="center" /> |
| | | <el-table-column label="名称" align="center" prop="proName" width="100px" /> |
| | | <el-table-column label="价格" align="center" prop="price" /> |
| | | <el-table-column label="科室" align="center" prop="deptName" /> |
| | | </el-table> |
| | | </div> |
| | | |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitFormxm">确 定</el-button> |
| | | <el-button @click="cancels">取 消</el-button> |
| | |
| | | jianqians: false, |
| | | sex: true, |
| | | activeName: "1", |
| | | wenzhen: false, |
| | | hosproy: true, |
| | | remarks: "", |
| | | remark: "", |
| | |
| | | Testitems: [], |
| | | CheckBox: {}, |
| | | startTime: [], |
| | | isCollapsed: 0, |
| | | textarea1: "", |
| | | loading: true, |
| | | selectLettercurrent: " ", |
| | |
| | | compId: null, |
| | | name: null, |
| | | checkStatus: null, |
| | | shys: null, |
| | | }, |
| | | formobj: {}, |
| | | yichangList: [], |
| | |
| | | |
| | | handleCurrentChangeAdvice(currentRow) { |
| | | this.selectedAdvice = currentRow; |
| | | }, |
| | | |
| | | |
| | | toggleCollapse3() { |
| | | this.isCollapsed = 0; |
| | | }, |
| | | toggleCollapse() { |
| | | this.isCollapsed = 1; |
| | | }, |
| | | |
| | | applySelectedAdvice() { |
| | |
| | | handleaddClick() { |
| | | console.log(this.xmChange) |
| | | let data = { |
| | | orderId: this.xmChange[0].order_id, |
| | | orderId: this.xmChange[0].orderId, |
| | | data: [{ |
| | | proId: this.xmChange[0].pro_id, |
| | | proId: this.xmChange[0].proId, |
| | | type: 1 |
| | | }] |
| | | } |
| | | UpdFcPro(data).then(res => { |
| | | |
| | | if (res.code == 200) { |
| | | this.xmChange = [] |
| | | this.fuchaxiangmu() |
| | | } |
| | | }) |
| | | }, |
| | | |
| | | handledeleteClick() { |
| | | |
| | | handledeleteClick(row) { |
| | | let data = { |
| | | orderId: row.orderId, |
| | | data: [{ |
| | | proId: row.proId, |
| | | type: 0 |
| | | }] |
| | | } |
| | | UpdFcPro(data).then(res => { |
| | | |
| | | if (res.code == 200) { |
| | | this.fuchaxiangmu() |
| | | } |
| | | }) |
| | | }, |
| | | |
| | |
| | | getRowKeys(row) { |
| | | return row.orderDetailId; |
| | | }, |
| | | |
| | | xiangmuqingkuang() { |
| | | cSWebGetPro(this.tjNumber).then((res) => { |
| | | this.status1 = 1; |
| | | this.wenzhen = false |
| | | this.statusList = res.data; |
| | | |
| | | if (this.statusList.length == 0) { |
| | | this.$message.msgSuccess("暂无项目情况"); |
| | | } |
| | | }); |
| | | this.loading = true; |
| | | cSWebGetPro(this.tjNumber) |
| | | .then((res) => { |
| | | this.status1 = 1; |
| | | this.statusList = res.data; |
| | | if (this.statusList.length == 0) { |
| | | this.$message.success("暂无项目情况"); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | console.error('获取项目情况失败:', error); |
| | | this.$message.error('获取项目情况失败'); |
| | | }) |
| | | .finally(() => { |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | |
| | | guanbi() { |
| | |
| | | }, |
| | | |
| | | yichangjieguo() { |
| | | this.loading = true; |
| | | this.status1 = 0; |
| | | let _this = this; |
| | | yichang({ |
| | | tjNum: this.tjNumber, |
| | | }).then((res) => { |
| | | this.yichangList = res.data; |
| | | |
| | | this.yichangList.forEach((item) => { |
| | | item.sone.forEach((soneItem) => { |
| | | if (!Array.isArray(soneItem.advices) || soneItem.advices.length === 0) { |
| | | soneItem.advices = [{ bt: "", nr: "" }]; |
| | | } |
| | | }) |
| | | .then((res) => { |
| | | this.yichangList = res.data; |
| | | this.yichangList.forEach((item) => { |
| | | item.sone.forEach((soneItem) => { |
| | | if (!Array.isArray(soneItem.advices) || soneItem.advices.length === 0) { |
| | | soneItem.advices = [{ bt: "", nr: "" }]; |
| | | } |
| | | }); |
| | | }); |
| | | if (!this.yichangList) { |
| | | this.$message.warning("暂无异常报告"); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | console.error('获取异常结果失败:', error); |
| | | this.$message.error('获取异常结果失败'); |
| | | }) |
| | | .finally(() => { |
| | | this.loading = false; |
| | | }); |
| | | |
| | | if (!this.yichangList) { |
| | | _this.$message({ |
| | | type: "warning", |
| | | message: "暂无异常报告", |
| | | }); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | fuchaxiangmu() { |
| | | this.loading = true; |
| | | this.status1 = 2; |
| | | this.wenzhen = false |
| | | let data = { |
| | | tjNum: this.tjNumber, |
| | | type: 1 |
| | | } |
| | | getFcList(data).then(res => { |
| | | this.fcList = res.data |
| | | }) |
| | | }; |
| | | getFcList(data) |
| | | .then((res) => { |
| | | this.fcList = res.data; |
| | | this.fcList.forEach((item, index) => { |
| | | item.newID = index + 1; |
| | | }) |
| | | }) |
| | | .catch((error) => { |
| | | console.error('获取复查项目失败:', error); |
| | | this.$message.error('获取复查项目失败'); |
| | | }) |
| | | .finally(() => { |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | |
| | | getdate() { |
| | |
| | | }, |
| | | |
| | | Graphicreport() { |
| | | this.loading = true; |
| | | let dictType = "dict_ageunit"; |
| | | getDicts(dictType).then((res) => { |
| | | if (res.code == 200) { |
| | | res.data.forEach((item) => { |
| | | if (this.tableAll.age_unit == item.dictValue) { |
| | | this.tableAll.age_unit = item.dictLabel; |
| | | } |
| | | }); |
| | | let dictTypes = "sys_user_sex"; |
| | | getDicts(dictTypes).then((res) => { |
| | | if (res.code == 200) { |
| | | res.data.forEach((item) => { |
| | | if (this.tableAll.cusSex == item.dictValue) { |
| | | this.tableAll.cusSex = item.dictLabel; |
| | | } |
| | | }); |
| | | let data = { |
| | | patname: this.tableAll.cusName, |
| | | sex: this.tableAll.cusSex, |
| | | patage: this.tableAll.age, |
| | | patagename: this.tableAll.age_unit, |
| | | patbirth: this.tableAll.cusBrithday, |
| | | }; |
| | | getTjYxjcList(data).then((res) => { |
| | | this.baogao = res.data; |
| | | }); |
| | | this.$refs.bbb.open = true; |
| | | this.$refs.bbb.title = "报告字典"; |
| | | } |
| | | }); |
| | | } |
| | | }); |
| | | getDicts(dictType) |
| | | .then((res) => { |
| | | if (res.code == 200) { |
| | | res.data.forEach((item) => { |
| | | if (this.tableAll.age_unit == item.dictValue) { |
| | | this.tableAll.age_unit = item.dictLabel; |
| | | } |
| | | }); |
| | | let dictTypes = "sys_user_sex"; |
| | | return getDicts(dictTypes); |
| | | } else { |
| | | throw new Error('获取年龄单位字典失败'); |
| | | } |
| | | }) |
| | | .then((res) => { |
| | | if (res.code == 200) { |
| | | res.data.forEach((item) => { |
| | | if (this.tableAll.cusSex == item.dictValue) { |
| | | this.tableAll.cusSex = item.dictLabel; |
| | | } |
| | | }); |
| | | let data = { |
| | | patname: this.tableAll.cusName, |
| | | sex: this.tableAll.cusSex, |
| | | patage: this.tableAll.age, |
| | | patagename: this.tableAll.age_unit, |
| | | patbirth: this.tableAll.cusBrithday, |
| | | }; |
| | | return getTjYxjcList(data); |
| | | } else { |
| | | throw new Error('获取性别字典失败'); |
| | | } |
| | | }) |
| | | .then((res) => { |
| | | this.baogao = res.data; |
| | | this.$refs.bbb.open = true; |
| | | this.$refs.bbb.title = "报告字典"; |
| | | }) |
| | | .catch((error) => { |
| | | console.error('生成图文报告失败:', error); |
| | | this.$message.error('生成图文报告失败'); |
| | | }) |
| | | .finally(() => { |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | |
| | | historicalreport() { |
| | | this.loading = true; |
| | | this.wenzhen = false; |
| | | this.hosproy = true; |
| | | let data = { |
| | | cusId: this.tableAll.cusId, |
| | | }; |
| | | reportHistory(data).then((res) => { |
| | | this.loading = false; |
| | | if (res.data[0] != null) { |
| | | this.reportHistorydata = res.data; |
| | | } else { |
| | | this.reportHistorydata = []; |
| | | } |
| | | }); |
| | | reportHistory(data) |
| | | .then((res) => { |
| | | if (res.data[0] != null) { |
| | | this.reportHistorydata = res.data; |
| | | } else { |
| | | this.reportHistorydata = []; |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | console.error('获取历史报告失败:', error); |
| | | this.$message.error('获取历史报告失败'); |
| | | }) |
| | | .finally(() => { |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | |
| | | medicalhistory() { |
| | | this.wenzhen = true; |
| | | this.hosproy = false; |
| | | this.loading = true; |
| | | this.status1 = 3; |
| | | let tjNumber = this.tableAll.tjNumber; |
| | | getInfoById(tjNumber).then((response) => { |
| | | this.formobj = response.data; |
| | | if (this.formobj.xiyan == null) { |
| | | this.formobj.xiyan = "1"; |
| | | } |
| | | if (this.formobj.xiyanpinlv == null) { |
| | | this.formobj.xiyanpinlv = "0"; |
| | | } |
| | | if (this.formobj.xiyanyear == null) { |
| | | this.formobj.xiyanyear = "0"; |
| | | } |
| | | if (this.formobj.yinjiu == null) { |
| | | this.formobj.yinjiu = "1"; |
| | | } |
| | | if (this.formobj.yinjiupinlv == null) { |
| | | this.formobj.yinjiupinlv = "0"; |
| | | } |
| | | if (this.formobj.yinjiuyear == null) { |
| | | this.formobj.yinjiuyear = "0"; |
| | | } |
| | | }); |
| | | getInfoById(tjNumber) |
| | | .then((response) => { |
| | | this.formobj = response.data; |
| | | if (this.formobj.xiyan == null) { |
| | | this.formobj.xiyan = "1"; |
| | | } |
| | | if (this.formobj.xiyanpinlv == null) { |
| | | this.formobj.xiyanpinlv = "0"; |
| | | } |
| | | if (this.formobj.xiyanyear == null) { |
| | | this.formobj.xiyanyear = "0"; |
| | | } |
| | | if (this.formobj.yinjiu == null) { |
| | | this.formobj.yinjiu = "1"; |
| | | } |
| | | if (this.formobj.yinjiupinlv == null) { |
| | | this.formobj.yinjiupinlv = "0"; |
| | | } |
| | | if (this.formobj.yinjiuyear == null) { |
| | | this.formobj.yinjiuyear = "0"; |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | console.error('获取职业病史失败:', error); |
| | | this.$message.error('获取职业病史失败'); |
| | | }) |
| | | .finally(() => { |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | |
| | | downLoadFileImg(row) { |
| | |
| | | |
| | | handleClose1(done) { |
| | | this.jianqians = false; |
| | | this.wenzhen = false; |
| | | this.flags = false; |
| | | done(); |
| | | }, |