| | |
| | | width="110px" |
| | | /> --> |
| | | <el-table-column |
| | | v-if="tjStatus === '1'" |
| | | label="审核时间" |
| | | align="center" |
| | | prop="shsj" |
| | |
| | | width="180px" |
| | | /> |
| | | <el-table-column |
| | | v-if="tjStatus === '0'" |
| | | label="完成时间" |
| | | align="center" |
| | | prop="finishTime" |
| | | :show-overflow-tooltip="true" |
| | | width="160px" |
| | | /> |
| | | <el-table-column |
| | | label="套餐名称" |
| | | align="center" |
| | | prop="pacName" |
| | | :show-overflow-tooltip="true" |
| | | width="160px" |
| | | /> |
| | |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="操作" align="center" width="90px" fixed="right"> |
| | | <el-table-column |
| | | label="操作" |
| | | align="center" |
| | | width="120px" |
| | | fixed="right" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | fixed="right" |
| | | title="处方" |
| | | type="text" |
| | | size="mini" |
| | | @click.stop="rowClick(scope.row)" |
| | | icon="el-icon-edit-outline" |
| | | ></el-button> |
| | | <el-button |
| | | fixed="right" |
| | | title="详情" |
| | |
| | | @click.stop="handleClick(scope.row)" |
| | | icon="el-icon-document-copy" |
| | | ></el-button> |
| | | <el-button |
| | | fixed="right" |
| | | title="同步" |
| | | type="text" |
| | | size="mini" |
| | | @click.stop="tongbu(scope.row)" |
| | | v-if="scope.row.tjStatus != '1'" |
| | | icon="el-icon-upload2" |
| | | ></el-button> |
| | | <el-button |
| | | fixed="right" |
| | | title="处方" |
| | | type="text" |
| | | size="mini" |
| | | @click.stop="rowClick(scope.row)" |
| | | icon="el-icon-edit-outline" |
| | | ></el-button> |
| | | |
| | | <!-- <el-button type="text" size="mini" @click="generate(scope.row)" v-if="scope.row.tjStatus=='1'">生成</el-button> --> |
| | | <el-button |
| | | type="text" |
| | |
| | | </div> |
| | | </template> |
| | | |
| | | <!-- 点击弹出框 --> |
| | | <!-- 点击弹出框 show-close="true"--> |
| | | <el-drawer |
| | | custom-class="tanchu" |
| | | :visible.sync="drawer" |
| | | :before-close="handleClose" |
| | | :with-header="false" |
| | | size="100%" |
| | | show-close="true" |
| | | :show-close="true" |
| | | > |
| | | <div class="top"> |
| | | <table |
| | | style=" |
| | | width: 100%; |
| | | margin: 10px 10px; |
| | | border: 1px solid #dfe6ec; |
| | | border-collapse: collapse; |
| | | " |
| | | cellspacing="4" |
| | | > |
| | | <caption style="background-color: #f8f8f9; font-size: 18px"> |
| | | {{ |
| | | tableAll.cusName |
| | | }}的体检资料 |
| | | </caption> |
| | | <tr |
| | | <div |
| | | v-loading="isLoading" |
| | | element-loading-text="正在加载数据,请稍候..." |
| | | element-loading-spinner="el-icon-loading" |
| | | element-loading-background="rgba(255, 255, 255, 0.8)" |
| | | style="height: 100%; padding: 20px; position: relative" |
| | | > |
| | | <div class="top"> |
| | | <table |
| | | style=" |
| | | width: 100%; |
| | | margin: 10px 10px; |
| | | border: 1px solid #dfe6ec; |
| | | border-collapse: collapse; |
| | | height: 36px; |
| | | " |
| | | cellspacing="4" |
| | | > |
| | | <td style="border: 1px solid #dfe6ec; border-collapse: collapse"> |
| | | 姓名: |
| | | </td> |
| | | <td style="border: 1px solid #dfe6ec; border-collapse: collapse"> |
| | | {{ tableAll.cusName }} |
| | | </td> |
| | | <td style="border: 1px solid #dfe6ec; border-collapse: collapse"> |
| | | 性别: |
| | | </td> |
| | | <td style="border: 1px solid #dfe6ec; border-collapse: collapse"> |
| | | <caption style="background-color: #f8f8f9; font-size: 18px"> |
| | | {{ |
| | | tableAll.cusSex == 0 |
| | | ? "男" |
| | | : tableAll.cusSex == 1 |
| | | ? "女" |
| | | : "未知" |
| | | }} |
| | | </td> |
| | | </tr> |
| | | <tr |
| | | style=" |
| | | border: 1px solid #dfe6ec; |
| | | border-collapse: collapse; |
| | | height: 36px; |
| | | " |
| | | > |
| | | <td style="border: 1px solid #dfe6ec; border-collapse: collapse"> |
| | | 体检单号: |
| | | </td> |
| | | <td style="border: 1px solid #dfe6ec; border-collapse: collapse"> |
| | | {{ tableAll.tjNumber }} |
| | | </td> |
| | | <td style="border: 1px solid #dfe6ec; border-collapse: collapse"> |
| | | 体检时间: |
| | | </td> |
| | | <td style="border: 1px solid #dfe6ec; border-collapse: collapse"> |
| | | {{ tableAll.tjTime }} |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | <i class="el-icon-close" @click="guanbi"></i> |
| | | </div> |
| | | |
| | | <div style="margin-right: 10px; display: flex" class="btnbox"> |
| | | <div class="btn1" v-if="msgtuwen == 'y' || msgtuwen == 'Y'"> |
| | | <el-button @click="Graphicreport()" type="primary"> |
| | | <span class="vertical-text">图文报告</span> |
| | | </el-button> |
| | | </div> |
| | | <div class="btn1"> |
| | | <el-button @click="historicalreport()" type="primary" |
| | | ><span class="vertical-text">历史报告</span></el-button |
| | | > |
| | | </div> |
| | | <div v-if="tableAll.tjCategory == '02'" class="btn1"> |
| | | <el-button @click="medicalhistory()" type="primary" |
| | | ><span class="vertical-text">职业病史</span></el-button |
| | | > |
| | | </div> |
| | | <div class="btn1" v-if="msgjianqian == 'y' || msgjianqian == 'Y'"> |
| | | <el-button @click="jianqian()" type="primary" |
| | | ><span class="vertical-text">检前问诊</span></el-button |
| | | > |
| | | </div> |
| | | |
| | | <div class="btn1"> |
| | | <el-button @click="xiangmuqingkuang()" type="primary" |
| | | ><span class="vertical-text">项目情况</span></el-button |
| | | > |
| | | </div> |
| | | <div class="btn1"> |
| | | <el-button @click="yichangjieguo()" type="primary" |
| | | ><span class="vertical-text">异常结果</span></el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | <div class="box"> |
| | | <div |
| | | class="left" |
| | | style=" |
| | | font-size: 14px; |
| | | width: 1100px; |
| | | margin-left: 10px; |
| | | padding: 0 0 50px; |
| | | " |
| | | > |
| | | <div v-for="(item, index) in changedate" :key="index"> |
| | | <div |
| | | tableAll.cusName |
| | | }}的体检资料 |
| | | </caption> |
| | | <tr |
| | | style=" |
| | | text-align: center; |
| | | background-color: #aad8df; |
| | | margin-top: 10px; |
| | | border: 1px solid #dfe6ec; |
| | | border-collapse: collapse; |
| | | height: 36px; |
| | | " |
| | | > |
| | | {{ item.parent || "" }} |
| | | </div> |
| | | <div v-if="item.xmlb == '0'"> |
| | | <el-table |
| | | :data="item.sons" |
| | | border |
| | | style="width: 100%" |
| | | :row-style="changRed" |
| | | :header-cell-style="{ background: '#aad8df' }" |
| | | > |
| | | <el-table-column align="center" label="检测项目" width="464"> |
| | | <template slot-scope="scope"> |
| | | <div>{{ scope.row.proName }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | align="center" |
| | | prop="proResult" |
| | | label="检测结果" |
| | | width="180" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column align="center" prop="" label="单位"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="scope.row.project != null"> |
| | | {{ scope.row.standard.company || "" }} |
| | | </div> |
| | | <div v-else>{{ scope.row.proAdvice }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column align="center" prop="" label=" 参考范围"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="scope.row.project != null"> |
| | | {{ |
| | | scope.row.standard.tjStandardGtValue || |
| | | "/" + "-" + scope.row.standard.tjStandardLtValue || |
| | | "/" |
| | | }} |
| | | </div> |
| | | <div v-else>{{ scope.row.stanId || "/" }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <table style="width: 100%" v-if="tjproject != '1'"> |
| | | <tr |
| | | style="border: 1px solid #dfe6ec; border-collapse: collapse" |
| | | > |
| | | <td |
| | | style=" |
| | | border: 1px solid #dfe6ec; |
| | | border-collapse: collapse; |
| | | width: 7%; |
| | | " |
| | | > |
| | | 小结: |
| | | </td> |
| | | <td style="border: 1px solid #dfe6ec; width: 45%"> |
| | | <el-input v-model="item.remark" disabled></el-input> |
| | | </td> |
| | | <td |
| | | style=" |
| | | border: 1px solid #dfe6ec; |
| | | border-collapse: collapse; |
| | | width: 15%; |
| | | " |
| | | > |
| | | 主检医师: |
| | | </td> |
| | | <td |
| | | style="border: 1px solid #dfe6ec; border-collapse: collapse" |
| | | colspan="2" |
| | | > |
| | | {{ item.doctorName }} |
| | | </td> |
| | | </tr> |
| | | <tr |
| | | <td style="border: 1px solid #dfe6ec; border-collapse: collapse"> |
| | | 姓名: |
| | | </td> |
| | | <td style="border: 1px solid #dfe6ec; border-collapse: collapse"> |
| | | {{ tableAll.cusName }} |
| | | </td> |
| | | <td style="border: 1px solid #dfe6ec; border-collapse: collapse"> |
| | | 性别:{{ |
| | | tableAll.cusSex == 0 |
| | | ? "男" |
| | | : tableAll.cusSex == 1 |
| | | ? "女" |
| | | : "未知" |
| | | }} |
| | | </td> |
| | | <td style="border: 1px solid #dfe6ec; border-collapse: collapse"> |
| | | 年龄:{{ tableAll.age }} |
| | | </td> |
| | | </tr> |
| | | <tr |
| | | style=" |
| | | border: 1px solid #dfe6ec; |
| | | border-collapse: collapse; |
| | | height: 36px; |
| | | " |
| | | > |
| | | <td style="border: 1px solid #dfe6ec; border-collapse: collapse"> |
| | | 体检单号: |
| | | </td> |
| | | <td style="border: 1px solid #dfe6ec; border-collapse: collapse"> |
| | | {{ tableAll.tjNumber }} |
| | | </td> |
| | | <td style="border: 1px solid #dfe6ec; border-collapse: collapse"> |
| | | 体检时间: |
| | | </td> |
| | | <td style="border: 1px solid #dfe6ec; border-collapse: collapse"> |
| | | {{ tableAll.tjTime }} |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | <i class="el-icon-close" @click="guanbi"></i> |
| | | </div> |
| | | |
| | | <div style="margin-right: 10px; display: flex" class="btnbox"> |
| | | <div class="btn1" v-if="msgtuwen == 'y' || msgtuwen == 'Y'"> |
| | | <el-button @click="Graphicreport()" type="primary"> |
| | | <span class="vertical-text">图文报告</span> |
| | | </el-button> |
| | | </div> |
| | | <div class="btn1"> |
| | | <el-button @click="historicalreport()" type="primary" |
| | | ><span class="vertical-text">历史报告</span></el-button |
| | | > |
| | | </div> |
| | | <div v-if="tableAll.tjCategory == '02'" class="btn1"> |
| | | <el-button @click="medicalhistory()" type="primary" |
| | | ><span class="vertical-text">职业病史</span></el-button |
| | | > |
| | | </div> |
| | | <div class="btn1" v-if="msgjianqian == 'y' || msgjianqian == 'Y'"> |
| | | <el-button @click="jianqian()" type="primary" |
| | | ><span class="vertical-text">检前问诊</span></el-button |
| | | > |
| | | </div> |
| | | |
| | | <div class="btn1"> |
| | | <el-button @click="xiangmuqingkuang()" type="primary" |
| | | ><span class="vertical-text">项目情况</span></el-button |
| | | > |
| | | </div> |
| | | <div class="btn1"> |
| | | <el-button @click="yichangjieguo()" type="primary" |
| | | ><span class="vertical-text">异常结果</span></el-button |
| | | > |
| | | </div> |
| | | <div class="btn1"> |
| | | <el-button @click="fuchaxiangmu()" type="primary" |
| | | ><span class="vertical-text">复查项目</span></el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | <div class="box"> |
| | | <div class="left-container"> |
| | | <div class="left"> |
| | | <div v-for="(item, index) in changedate" :key="index"> |
| | | <div |
| | | style=" |
| | | border: 1px solid #dfe6ec; |
| | | border-collapse: collapse; |
| | | width: 200px; |
| | | text-align: center; |
| | | background-color: #aad8df; |
| | | margin-top: 10px; |
| | | " |
| | | > |
| | | <td |
| | | style=" |
| | | border: 1px solid #dfe6ec; |
| | | border-collapse: collapse; |
| | | width: 240px; |
| | | " |
| | | {{ item.parent || "" }} |
| | | </div> |
| | | <div v-if="item.xmlb == '0'"> |
| | | <el-table |
| | | :data="item.sons" |
| | | border |
| | | style="width: 100%" |
| | | :row-style="changRed" |
| | | :header-cell-style="{ background: '#aad8df' }" |
| | | > |
| | | 备注: |
| | | </td> |
| | | <td |
| | | style="border: 1px solid #dfe6ec; border-collapse: collapse" |
| | | colspan="3" |
| | | > |
| | | <el-input |
| | | type="textarea" |
| | | autosize |
| | | placeholder="请输入内容" |
| | | v-model="changedate[index].remark" |
| | | v-on:input="change" |
| | | style="width: 100%" |
| | | <el-table-column |
| | | align="center" |
| | | label="检测项目" |
| | | width="464" |
| | | > |
| | | </el-input> |
| | | <!-- <textarea |
| | | placeholder="请输入内容" |
| | | :autosize="{ minRows: 2 }" |
| | | style="width: 100%; height: 240px; resize: none" |
| | | v-model="changedate[index].remark" |
| | | v-on:input="change" |
| | | ></textarea> --> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | </div> |
| | | <div v-else> |
| | | <table style="width: 100%" v-if="tjproject != '1'"> |
| | | <tr style="border: 1px solid #dfe6ec"> |
| | | <td |
| | | style=" |
| | | border: 1px solid #dfe6ec; |
| | | border-collapse: collapse; |
| | | width: 15%; |
| | | height: auto; |
| | | " |
| | | > |
| | | 检查所见: |
| | | </td> |
| | | <td |
| | | style="border: 1px solid #dfe6ec; height: auto" |
| | | colspan="2" |
| | | > |
| | | <el-input |
| | | type="textarea" |
| | | autosize |
| | | placeholder="请输入内容" |
| | | v-model="item.jgbx" |
| | | style="width: 100%" |
| | | <template slot-scope="scope"> |
| | | <div>{{ scope.row.proName }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | align="center" |
| | | prop="proResult" |
| | | label="检测结果" |
| | | width="180" |
| | | > |
| | | </el-input> |
| | | <!-- <textarea |
| | | placeholder="请输入内容" |
| | | :autosize="{ minRows: 3}" |
| | | style="width: 100%; height: auto; resize: none" |
| | | v-model="item.jgbx" |
| | | ></textarea> --> |
| | | </td> |
| | | </tr> |
| | | <tr |
| | | style="border: 1px solid #dfe6ec; border-collapse: collapse" |
| | | > |
| | | <td |
| | | style=" |
| | | border: 1px solid #dfe6ec; |
| | | border-collapse: collapse; |
| | | width: 15%; |
| | | " |
| | | > |
| | | 检查提示: |
| | | </td> |
| | | <td |
| | | style="border: 1px solid #dfe6ec; border-collapse: collapse" |
| | | colspan="2" |
| | | > |
| | | <el-input |
| | | type="textarea" |
| | | autosize |
| | | placeholder="请输入内容" |
| | | v-model="item.remark" |
| | | style="width: 100%" |
| | | </el-table-column> |
| | | <el-table-column align="center" prop="" label="单位"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="scope.row.project != null"> |
| | | {{ scope.row.standard.company || "" }} |
| | | </div> |
| | | <div v-else>{{ scope.row.proAdvice }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | align="center" |
| | | prop="conclusion" |
| | | label="异常" |
| | | width="180" |
| | | ></el-table-column> |
| | | <el-table-column align="center" prop="" label=" 参考范围"> |
| | | <template slot-scope="scope"> |
| | | <div v-if="scope.row.project != null"> |
| | | {{ |
| | | scope.row.standard.tjStandardGtValue || |
| | | "/" + "-" + scope.row.standard.tjStandardLtValue || |
| | | "/" |
| | | }} |
| | | </div> |
| | | <div v-else>{{ scope.row.stanId || "/" }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | <table style="width: 100%" v-if="tjproject != '1'"> |
| | | <tr |
| | | style=" |
| | | border: 1px solid #dfe6ec; |
| | | border-collapse: collapse; |
| | | " |
| | | > |
| | | </el-input> |
| | | <!-- <textarea |
| | | <td |
| | | style=" |
| | | border: 1px solid #dfe6ec; |
| | | border-collapse: collapse; |
| | | width: 7%; |
| | | " |
| | | > |
| | | 小结: |
| | | </td> |
| | | <td style="border: 1px solid #dfe6ec; width: 45%"> |
| | | <el-input v-model="item.remark" disabled></el-input> |
| | | </td> |
| | | <td |
| | | style=" |
| | | border: 1px solid #dfe6ec; |
| | | border-collapse: collapse; |
| | | width: 15%; |
| | | " |
| | | > |
| | | 主检医师: |
| | | </td> |
| | | <td |
| | | style=" |
| | | border: 1px solid #dfe6ec; |
| | | border-collapse: collapse; |
| | | " |
| | | colspan="2" |
| | | > |
| | | {{ item.doctorName }} |
| | | </td> |
| | | </tr> |
| | | <tr |
| | | style=" |
| | | border: 1px solid #dfe6ec; |
| | | border-collapse: collapse; |
| | | width: 200px; |
| | | " |
| | | > |
| | | <td |
| | | style=" |
| | | border: 1px solid #dfe6ec; |
| | | border-collapse: collapse; |
| | | width: 240px; |
| | | " |
| | | > |
| | | 备注: |
| | | </td> |
| | | <td |
| | | style=" |
| | | border: 1px solid #dfe6ec; |
| | | border-collapse: collapse; |
| | | " |
| | | colspan="3" |
| | | > |
| | | <el-input |
| | | type="textarea" |
| | | autosize |
| | | placeholder="请输入内容" |
| | | v-model="changedate[index].remark" |
| | | v-on:input="change" |
| | | style="width: 100%" |
| | | > |
| | | </el-input> |
| | | <!-- <textarea |
| | | placeholder="请输入内容" |
| | | :autosize="{ minRows: 2 }" |
| | | style="width: 100%; height: 240px; resize: none" |
| | | v-model="changedate[index].remark" |
| | | v-on:input="change" |
| | | ></textarea> --> |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | </div> |
| | | <div v-else> |
| | | <table style="width: 100%" v-if="tjproject != '1'"> |
| | | <tr style="border: 1px solid #dfe6ec"> |
| | | <td |
| | | style=" |
| | | border: 1px solid #dfe6ec; |
| | | border-collapse: collapse; |
| | | width: 15%; |
| | | height: auto; |
| | | " |
| | | > |
| | | 检查所见: |
| | | </td> |
| | | <td |
| | | style="border: 1px solid #dfe6ec; height: auto" |
| | | colspan="2" |
| | | > |
| | | <el-input |
| | | type="textarea" |
| | | autosize |
| | | placeholder="请输入内容" |
| | | v-model="item.jgbx" |
| | | style="width: 100%" |
| | | > |
| | | </el-input> |
| | | <!-- <textarea |
| | | placeholder="请输入内容" |
| | | :autosize="{ minRows: 3}" |
| | | style="width: 100%; height: auto; resize: none" |
| | | v-model="item.jgbx" |
| | | ></textarea> --> |
| | | </td> |
| | | </tr> |
| | | <tr |
| | | style=" |
| | | border: 1px solid #dfe6ec; |
| | | border-collapse: collapse; |
| | | " |
| | | > |
| | | <td |
| | | style=" |
| | | border: 1px solid #dfe6ec; |
| | | border-collapse: collapse; |
| | | width: 15%; |
| | | " |
| | | > |
| | | 检查提示: |
| | | </td> |
| | | <td |
| | | style=" |
| | | border: 1px solid #dfe6ec; |
| | | border-collapse: collapse; |
| | | " |
| | | colspan="2" |
| | | > |
| | | <el-input |
| | | type="textarea" |
| | | autosize |
| | | placeholder="请输入内容" |
| | | v-model="item.remark" |
| | | style="width: 100%" |
| | | > |
| | | </el-input> |
| | | <!-- <textarea |
| | | |
| | | placeholder="请输入内容" |
| | | style="width: 100%; resize: none" |
| | | v-model="item.remark" |
| | | ></textarea> --> |
| | | </td> |
| | | </tr> |
| | | <tr |
| | | style=" |
| | | border: 1px solid #dfe6ec; |
| | | border-collapse: collapse; |
| | | width: 200px; |
| | | " |
| | | placeholder="请输入内容" |
| | | style="width: 100%; resize: none" |
| | | v-model="item.remark" |
| | | ></textarea> --> |
| | | </td> |
| | | </tr> |
| | | <tr |
| | | style=" |
| | | border: 1px solid #dfe6ec; |
| | | border-collapse: collapse; |
| | | width: 200px; |
| | | " |
| | | > |
| | | <td |
| | | style=" |
| | | border: 1px solid #dfe6ec; |
| | | border-collapse: collapse; |
| | | width: 15%; |
| | | " |
| | | > |
| | | 主检医师: |
| | | </td> |
| | | <td |
| | | style=" |
| | | border: 1px solid #dfe6ec; |
| | | border-collapse: collapse; |
| | | " |
| | | colspan="2" |
| | | > |
| | | {{ item.doctorName }} |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | </div> |
| | | </div> |
| | | |
| | | <div style="margin: 0 0px 10px 15px" v-if="tjproject != '1'"> |
| | | <el-button type="primary" @click="propoChange" |
| | | >快捷建议</el-button |
| | | > |
| | | <td |
| | | style=" |
| | | border: 1px solid #dfe6ec; |
| | | border-collapse: collapse; |
| | | width: 15%; |
| | | " |
| | | <el-button type="primary" @click="proposalChange" |
| | | >生成建议</el-button |
| | | > |
| | | </div> |
| | | |
| | | <el-form |
| | | ref="numberValidateForm" |
| | | label-width="80px" |
| | | class="demo-ruleForm" |
| | | v-if="tjproject != '1'" |
| | | > |
| | | <el-form-item label="总检建议"> |
| | | <el-input |
| | | type="textarea" |
| | | placeholder="请输入内容" |
| | | v-model="textarea1" |
| | | :rows="3" |
| | | style="width: 96%" |
| | | > |
| | | 主检医师: |
| | | </td> |
| | | <td |
| | | style="border: 1px solid #dfe6ec; border-collapse: collapse" |
| | | colspan="2" |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footers"> |
| | | <el-button type="primary" @click.stop="guanbi">取消</el-button> |
| | | <el-button |
| | | v-if="tjproject == '0' && (msgkcf == 'y' || msgkcf == 'Y')" |
| | | type="primary" |
| | | @click.stop="rowClick" |
| | | icon="el-icon-edit-outline" |
| | | >开处方</el-button |
| | | > |
| | | <div v-if="tjproject == '0'"> |
| | | <el-button |
| | | type="primary" |
| | | @click="determine" |
| | | :disabled="isdisabled" |
| | | >提交并生成报告</el-button |
| | | > |
| | | {{ item.doctorName }} |
| | | </td> |
| | | </tr> |
| | | </table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <div class="rightbox"> |
| | | <div class="right"> |
| | | <template v-if="status1 == 0"> |
| | | <div v-for="(item, index) in yichangList" :key="index"> |
| | | <div |
| | | style=" |
| | | text-align: center; |
| | | background-color: #67c23a; |
| | | margin-top: 10px; |
| | | " |
| | | > |
| | | {{ item.proName || "" }} |
| | | </div> |
| | | <template v-if="item.jyjc == '0'"> |
| | | <el-table |
| | | :stripe="true" |
| | | :row-style="red" |
| | | :data="item.sone" |
| | | border |
| | | style="width: 100%" |
| | | :header-cell-style="{ background: '#67C23A' }" |
| | | :expand-row-keys="expends" |
| | | :row-key="getRowKeys" |
| | | > |
| | | <el-table-column type="expand"> |
| | | <template slot-scope="props"> |
| | | <div style="padding: 10px"> |
| | | <!-- 内容区域 --> |
| | | <div |
| | | v-if=" |
| | | props.row.advices && |
| | | props.row.advices.length > 0 |
| | | " |
| | | > |
| | | <div |
| | | v-for="(jianyi, index1) in props.row.advices" |
| | | :key="index1" |
| | | style="margin-bottom: 10px" |
| | | > |
| | | <div> |
| | | 标题: |
| | | <el-input |
| | | v-model="jianyi.bt" |
| | | size="small" |
| | | type="textarea" |
| | | autosize |
| | | ></el-input> |
| | | </div> |
| | | <div> |
| | | 内容: |
| | | <el-input |
| | | v-model="jianyi.nr" |
| | | size="small" |
| | | type="textarea" |
| | | autosize |
| | | ></el-input> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div style="margin: 0 0px 10px 15px" v-if="tjproject != '1'"> |
| | | <el-button type="primary" @click="propoChange">快捷建议</el-button> |
| | | <el-button type="primary" @click="proposalChange" |
| | | >生成建议</el-button |
| | | > |
| | | </div> |
| | | <!-- 如果 advices 为空时,渲染空的输入框 --> |
| | | <div v-else> |
| | | <div> |
| | | 标题: |
| | | <el-input |
| | | v-model="emptyAdvice.bt" |
| | | size="small" |
| | | type="textarea" |
| | | autosize |
| | | ></el-input> |
| | | </div> |
| | | <div> |
| | | 内容: |
| | | <el-input |
| | | v-model="emptyAdvice.nr" |
| | | size="small" |
| | | type="textarea" |
| | | autosize |
| | | ></el-input> |
| | | </div> |
| | | </div> |
| | | |
| | | <el-form |
| | | ref="numberValidateForm" |
| | | label-width="80px" |
| | | class="demo-ruleForm" |
| | | v-if="tjproject != '1'" |
| | | > |
| | | <el-form-item label="总检建议"> |
| | | <el-input |
| | | type="textarea" |
| | | placeholder="请输入内容" |
| | | v-model="textarea1" |
| | | :rows="3" |
| | | style="width: 96%" |
| | | > |
| | | </el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footers"> |
| | | <el-button type="primary" @click.stop="guanbi">取消</el-button> |
| | | <el-button |
| | | v-if="tjproject == '0' && (msgkcf == 'y' || msgkcf == 'Y')" |
| | | type="primary" |
| | | @click.stop="rowClick" |
| | | icon="el-icon-edit-outline" |
| | | >开处方</el-button |
| | | > |
| | | <div v-if="tjproject == '0'"> |
| | | <div style="margin-top: 10px"> |
| | | <el-button |
| | | @click="shanchu(props.row)" |
| | | type="danger" |
| | | size="small" |
| | | >删除</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | align="center" |
| | | label="检测项目" |
| | | :show-overflow-tooltip="true" |
| | | width="353" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <div>{{ scope.row.proName }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | align="center" |
| | | prop="proResult" |
| | | label="检测结果" |
| | | width="85" |
| | | > |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | align="center" |
| | | prop="stanId" |
| | | label=" 参考范围" |
| | | width="117" |
| | | > |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | align="center" |
| | | prop="proAdvice" |
| | | label="单位" |
| | | width="78" |
| | | > |
| | | </el-table-column> |
| | | </el-table> |
| | | </template> |
| | | <template v-if="item.jyjc == '1'"> |
| | | <el-table |
| | | :stripe="true" |
| | | :row-style="red" |
| | | :data="item.sone" |
| | | border |
| | | style="width: 100%" |
| | | :header-cell-style="{ background: '#67C23A' }" |
| | | :expand-row-keys="expends" |
| | | :row-key="getRowKeys" |
| | | > |
| | | <el-table-column type="expand"> |
| | | <template slot-scope="props"> |
| | | <div style="padding: 10px"> |
| | | <!-- 内容区域 --> |
| | | <div |
| | | v-if=" |
| | | props.row.advices && |
| | | props.row.advices.length > 0 |
| | | " |
| | | > |
| | | <div |
| | | v-for="(jianyi, index1) in props.row.advices" |
| | | :key="index1" |
| | | style="margin-bottom: 10px" |
| | | > |
| | | <div> |
| | | 标题: |
| | | <el-input |
| | | v-model="jianyi.bt" |
| | | size="small" |
| | | type="textarea" |
| | | autosize |
| | | ></el-input> |
| | | </div> |
| | | <div> |
| | | 内容: |
| | | <el-input |
| | | v-model="jianyi.nr" |
| | | size="small" |
| | | type="textarea" |
| | | autosize |
| | | ></el-input> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- 如果 advices 为空时,渲染空的输入框 --> |
| | | <div v-else> |
| | | <div> |
| | | 标题: |
| | | <el-input |
| | | v-model="emptyAdvice.bt" |
| | | size="small" |
| | | type="textarea" |
| | | autosize |
| | | ></el-input> |
| | | </div> |
| | | <div> |
| | | 内容: |
| | | <el-input |
| | | v-model="emptyAdvice.nr" |
| | | size="small" |
| | | type="textarea" |
| | | autosize |
| | | ></el-input> |
| | | </div> |
| | | </div> |
| | | |
| | | <div style="margin-top: 10px"> |
| | | <el-button |
| | | @click="shanchu(props.row)" |
| | | type="danger" |
| | | size="small" |
| | | >删除</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | align="center" |
| | | label="检测项目" |
| | | width="232" |
| | | :show-overflow-tooltip="true" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <div>{{ scope.row.proName }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | align="center" |
| | | prop="proResult" |
| | | label="检测结果" |
| | | width="403" |
| | | > |
| | | </el-table-column> |
| | | </el-table> |
| | | </template> |
| | | </div> |
| | | </template> |
| | | <template v-if="status1 == 1"> |
| | | <div> |
| | | <div |
| | | style=" |
| | | text-align: center; |
| | | background-color: #e6a23c; |
| | | margin-top: 10px; |
| | | " |
| | | > |
| | | 项目检查情况 |
| | | </div> |
| | | <el-table |
| | | :row-style="redxiangmu" |
| | | :data="statusList" |
| | | style="width: 100%" |
| | | :header-cell-style="{ background: '#e6a23c' }" |
| | | > |
| | | <el-table-column |
| | | align="center" |
| | | label="部门" |
| | | width="144" |
| | | prop="deptName" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | align="center" |
| | | prop="proName" |
| | | label="项目" |
| | | width="260" |
| | | > |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="状态" |
| | | align="center" |
| | | prop="type" |
| | | :show-overflow-tooltip="true" |
| | | width="120" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span v-if="scope.row.type == '0'">未审核</span> |
| | | <span v-if="scope.row.type == '1'">已审核</span> |
| | | <span v-if="scope.row.type == '2'">弃检</span> |
| | | <span v-if="scope.row.type == '3'">延期</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="检查时间" |
| | | align="center" |
| | | prop="bcupdateTime" |
| | | width="160" |
| | | /> |
| | | </el-table> |
| | | </div> |
| | | </template> |
| | | <template v-if="status1 == 2"> |
| | | <div> |
| | | <div style="text-align: center; margin-top: 10px"> |
| | | 复查项目 |
| | | </div> |
| | | <div style="display: flex; margin: 15px"> |
| | | <span |
| | | slot="label" |
| | | style=" |
| | | display: inline-block; |
| | | border-bottom: 2px solid blue; |
| | | font-size: 0.8vw; |
| | | " |
| | | @click="handleQuery" |
| | | > |
| | | 项目选择 |
| | | </span> |
| | | <div v-if="xmChange.length > 0" style="display: flex"> |
| | | <div style="margin: 0 40px; font-size: 0.8vw"> |
| | | 项目名称:{{ xmChange[0].proName || "" }} |
| | | </div> |
| | | <div style="margin: 0 40px; 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> |
| | | <el-button |
| | | type="primary" |
| | | size="mini" |
| | | @click="handleaddClick()" |
| | | >添加</el-button |
| | | > |
| | | </div> |
| | | |
| | | <el-table |
| | | :row-style="redxiangmu" |
| | | :data="fcList" |
| | | style="width: 100%" |
| | | > |
| | | <el-table-column |
| | | type="selection" |
| | | width="40" |
| | | align="center" |
| | | /> |
| | | <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="deptName" |
| | | /> |
| | | <el-table-column label="操作" align="center" width="130px"> |
| | | <template slot-scope="scope"> |
| | | <el-button |
| | | type="primary" |
| | | size="mini" |
| | | @click="handledeleteClick(scope.row)" |
| | | >删除</el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </template> |
| | | <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-collapse class="coll" v-model="activeName" accordion> |
| | | <el-collapse-item |
| | | class="coll" |
| | | title="基本信息" |
| | | name="1" |
| | | style="width: 100%; font-weight: 600" |
| | | > |
| | | <div style="width: 100%"> |
| | | <el-form-item label="姓名" prop="cusName"> |
| | | <el-input |
| | | disabled |
| | | v-model="formobj.cusName" |
| | | placeholder="请输入姓名" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="职业" prop="work"> |
| | | <el-select |
| | | filterable |
| | | v-model="formobj.work" |
| | | placeholder="请选择职业" |
| | | clearable |
| | | style="width: 150px" |
| | | disabled |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.tj_work" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="工作状态" prop="workStatus"> |
| | | <el-select |
| | | disabled |
| | | filterable |
| | | v-model="formobj.workStatus" |
| | | placeholder="请选择工作状态" |
| | | clearable |
| | | style="width: 150px" |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.tj_work_status" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="接触毒物" prop="contactPoison"> |
| | | <el-input |
| | | disabled |
| | | type="textarea" |
| | | rows="4" |
| | | v-model="formobj.contactPoison" |
| | | placeholder="请输入接触毒物" |
| | | style="width: 700px" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="既往病史" prop="medicalHistory"> |
| | | <el-input |
| | | disabled |
| | | type="textarea" |
| | | rows="4" |
| | | v-model="formobj.medicalHistory" |
| | | placeholder="请输入既往病史" |
| | | style="width: 700px" |
| | | /> |
| | | </el-form-item> |
| | | </div> |
| | | </el-collapse-item> |
| | | <el-collapse-item title="月经史" name="2" v-show="sex"> |
| | | <div style="width: 100%"> |
| | | <el-form-item label="初潮(岁)" prop="chuchao"> |
| | | <el-input |
| | | v-model="formobj.chuchao" |
| | | style="width: 70px" |
| | | disabled |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="经期" prop="jingqi"> |
| | | <el-input |
| | | v-model="formobj.jingqi" |
| | | disabled |
| | | style="width: 70px" |
| | | />天 |
| | | </el-form-item> |
| | | <el-form-item label="周期" prop="zhouqi"> |
| | | <el-input |
| | | v-model="formobj.zhouqi" |
| | | disabled |
| | | style="width: 70px" |
| | | />天 |
| | | </el-form-item> |
| | | <el-form-item label="末次月经" prop="mociage"> |
| | | <el-input |
| | | v-model="formobj.mociage" |
| | | disabled |
| | | style="width: 100px" |
| | | /> |
| | | </el-form-item> |
| | | </div> |
| | | </el-collapse-item> |
| | | <el-collapse-item title="生育史" name="3" v-show="sex"> |
| | | <div style="width: 100%"> |
| | | <el-form-item label="现有子女(人)" prop="zinv"> |
| | | <el-input |
| | | v-model="formobj.zinv" |
| | | style="width: 70px" |
| | | disabled |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="流产(次)" prop="liuchan"> |
| | | <el-input |
| | | v-model="formobj.liuchan" |
| | | style="width: 70px" |
| | | disabled |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="早产(次)" prop="zaochan"> |
| | | <el-input |
| | | v-model="formobj.zaochan" |
| | | style="width: 70px" |
| | | disabled |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="死产(次)" prop="sichan"> |
| | | <el-input |
| | | v-model="formobj.sichan" |
| | | style="width: 70px" |
| | | disabled |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="异常胎(次)" prop="yichangtai"> |
| | | <el-input |
| | | v-model="formobj.yichangtai" |
| | | style="width: 70px" |
| | | disabled |
| | | /> |
| | | </el-form-item> |
| | | </div> |
| | | </el-collapse-item> |
| | | <el-collapse-item title="烟酒史" name="4"> |
| | | <div style="width: 100%"> |
| | | <el-form-item label="是否吸烟" prop="xiyan"> |
| | | <!-- <el-input v-model="form.xiyanpinlv" placeholder="请输入吸烟频率" /> --> |
| | | <el-select |
| | | disabled |
| | | filterable |
| | | v-model="formobj.xiyan" |
| | | placeholder="请选择是否吸烟" |
| | | clearable |
| | | style="width: 150px" |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.tj_smoking_pinlv" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="吸烟频率" prop="xiyanpinlv"> |
| | | <el-input |
| | | v-model="formobj.xiyanpinlv" |
| | | disabled |
| | | style="width: 70px" |
| | | />支/天 |
| | | </el-form-item> |
| | | <el-form-item label="吸烟时间" prop="xiyanyear"> |
| | | <el-input |
| | | v-model="formobj.xiyanyear" |
| | | disabled |
| | | style="width: 70px" |
| | | />年 </el-form-item |
| | | ><br /> |
| | | <el-form-item label="是否饮酒" prop="yinjiu"> |
| | | <!-- <el-input v-model="form.yinjiupinlv" placeholder="请输入饮酒频率" /> --> |
| | | <el-select |
| | | filterable |
| | | v-model="formobj.yinjiu" |
| | | disabled |
| | | placeholder="请选择是否饮酒" |
| | | clearable |
| | | style="width: 150px" |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.tj_smoking_pinlv" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="饮酒频率" prop="yinjiupinlv"> |
| | | <el-input |
| | | v-model="formobj.yinjiupinlv" |
| | | disabled |
| | | style="width: 70px" |
| | | />ml/天 |
| | | </el-form-item> |
| | | <el-form-item label="饮酒时间" prop="yinjiuyear"> |
| | | <el-input |
| | | v-model="formobj.yinjiuyear" |
| | | disabled |
| | | style="width: 70px" |
| | | />年 |
| | | </el-form-item> |
| | | <el-form-item label="其他" prop="qita"> |
| | | <el-input |
| | | v-model="formobj.qita" |
| | | placeholder="请输入其他" |
| | | disabled |
| | | type="textarea" |
| | | style="width: 600px" |
| | | rows="2" |
| | | /> |
| | | </el-form-item> |
| | | </div> |
| | | </el-collapse-item> |
| | | <el-collapse-item title="急慢性职业病史信息" name="5"> |
| | | <div style="width: 100%"> |
| | | <el-table |
| | | border |
| | | :data="formobj.tjAskHistorysList" |
| | | ref="tjAskHistorys" |
| | | style="width: 98%" |
| | | > |
| | | <el-table-column |
| | | type="selection" |
| | | width="40" |
| | | align="center" |
| | | /> |
| | | <el-table-column |
| | | label="疾病名称" |
| | | prop="diseaseName" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | size="mini" |
| | | disabled |
| | | v-model="scope.row.diseaseName" |
| | | placeholder="请输入疾病名称" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="诊断日期" |
| | | prop="diseaseData" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-date-picker |
| | | size="mini" |
| | | v-model="scope.row.diseaseData" |
| | | align="right" |
| | | type="date" |
| | | placeholder="选择日期" |
| | | :picker-options="pickerOptions" |
| | | style="width: 130px" |
| | | value-format="yyyy-MM-dd" |
| | | > |
| | | </el-date-picker> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="诊断单位" |
| | | prop="diseaseCompany" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | size="mini" |
| | | disabled |
| | | v-model="scope.row.diseaseCompany" |
| | | placeholder="请输入诊断单位" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="是否痊愈" prop="isOk"> |
| | | <template slot-scope="scope"> |
| | | <!-- <el-input v-model="scope.row.isOk" placeholder="请输入是否痊愈" /> --> |
| | | <el-select |
| | | disabled |
| | | filterable |
| | | size="mini" |
| | | v-model="scope.row.isOk" |
| | | placeholder="请选择是否痊愈" |
| | | clearable |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.sys_yes_no" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="备注" prop="remark"> |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | disabled |
| | | size="mini" |
| | | v-model="scope.row.remark" |
| | | placeholder="请输入备注" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </el-collapse-item> |
| | | |
| | | <el-collapse-item title="职业史" name="7"> |
| | | <div style="width: 100%"> |
| | | <el-table |
| | | border |
| | | :data="formobj.workLogs" |
| | | style="width: 98%" |
| | | > |
| | | <el-table-column |
| | | type="selection" |
| | | width="40" |
| | | align="center" |
| | | /> |
| | | <el-table-column label="开始时间" prop="beginTime"> |
| | | <template slot-scope="scope"> |
| | | <el-date-picker |
| | | size="mini" |
| | | v-model="scope.row.beginTime" |
| | | align="right" |
| | | type="date" |
| | | placeholder="选择日期" |
| | | :picker-options="pickerOptions" |
| | | style="width: 130px" |
| | | value-format="yyyy-MM-dd" |
| | | > |
| | | </el-date-picker> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="结束时间" prop="endTime"> |
| | | <template slot-scope="scope"> |
| | | <el-date-picker |
| | | size="mini" |
| | | disabled |
| | | v-model="scope.row.endTime" |
| | | align="right" |
| | | type="date" |
| | | placeholder="选择日期" |
| | | :picker-options="pickerOptions" |
| | | style="width: 130px" |
| | | value-format="yyyy-MM-dd" |
| | | > |
| | | </el-date-picker> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="工作单位" |
| | | prop="workCompany" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | size="mini" |
| | | disabled |
| | | v-model="scope.row.workCompany" |
| | | placeholder="请输入工作单位" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="部门" prop="workDept"> |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | disabled |
| | | size="mini" |
| | | v-model="scope.row.workDept" |
| | | placeholder="请输入部门" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="工种" prop="workType"> |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | disabled |
| | | size="mini" |
| | | v-model="scope.row.workType" |
| | | placeholder="请输入工种" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="有害因素" |
| | | prop="harmTypeLogs" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <!-- <el-input v-model="scope.row.isOk" placeholder="请输入是否痊愈" /> --> |
| | | <el-select |
| | | filterable |
| | | disabled |
| | | size="mini" |
| | | v-model="scope.row.harmTypeLogs" |
| | | multiple |
| | | placeholder="请选择有害因素" |
| | | clearable |
| | | > |
| | | <el-option |
| | | v-for="dict in harmTypeList" |
| | | :key="dict.aid" |
| | | :label="dict.harmtype" |
| | | :value="dict.aid" |
| | | /> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="防护措施" prop="fangHu"> |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | disabled |
| | | size="mini" |
| | | v-model="scope.row.fangHu" |
| | | placeholder="请输入防护措施" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </el-collapse-item> |
| | | </el-collapse> |
| | | </el-form> |
| | | </div> |
| | | </template> |
| | | <el-button |
| | | type="primary" |
| | | @click="determine" |
| | | @click="addnew" |
| | | :disabled="isdisabled" |
| | | >提交并生成报告</el-button |
| | | style="margin-top: 20px" |
| | | >新增</el-button |
| | | > |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="rightbox"> |
| | | <div class="right"> |
| | | <template v-if="status1 == 0"> |
| | | <div v-for="(item, index) in yichangList" :key="index"> |
| | | <div |
| | | style=" |
| | | text-align: center; |
| | | background-color: #67c23a; |
| | | margin-top: 10px; |
| | | " |
| | | > |
| | | {{ item.proName || "" }} |
| | | </div> |
| | | <template v-if="item.jyjc == '0'"> |
| | | <el-table |
| | | :stripe="true" |
| | | :row-style="red" |
| | | :data="item.sone" |
| | | border |
| | | style="width: 100%" |
| | | :header-cell-style="{ background: '#67C23A' }" |
| | | :expand-row-keys="expends" |
| | | :row-key="getRowKeys" |
| | | > |
| | | <el-table-column type="expand"> |
| | | <template slot-scope="props"> |
| | | <div |
| | | v-if=" |
| | | props.row.advices && props.row.advices.length > 0 |
| | | " |
| | | > |
| | | <div |
| | | v-for="(jianyi, index1) in props.row.advices" |
| | | :key="index1" |
| | | style="padding: 0 10px; margin-bottom: 10px" |
| | | > |
| | | <div>标题:{{ jianyi.bt || "" }}</div> |
| | | <div>内容:{{ jianyi.nr || "" }}</div> |
| | | </div> |
| | | </div> |
| | | <div v-else style="padding: 0 10px">暂无内容</div> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | align="center" |
| | | label="检测项目" |
| | | width="353" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <div>{{ scope.row.proName }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | align="center" |
| | | prop="proResult" |
| | | label="检测结果" |
| | | width="85" |
| | | > |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | align="center" |
| | | prop="stanId" |
| | | label=" 参考范围" |
| | | width="117" |
| | | > |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | align="center" |
| | | prop="proAdvice" |
| | | label="单位" |
| | | width="78" |
| | | > |
| | | </el-table-column> |
| | | </el-table> |
| | | </template> |
| | | <template v-if="item.jyjc == '1'"> |
| | | <el-table |
| | | :stripe="true" |
| | | :row-style="red" |
| | | :data="item.sone" |
| | | border |
| | | style="width: 100%" |
| | | :header-cell-style="{ background: '#67C23A' }" |
| | | :expand-row-keys="expends" |
| | | :row-key="getRowKeys" |
| | | > |
| | | <el-table-column type="expand"> |
| | | <template slot-scope="props"> |
| | | <div |
| | | v-if=" |
| | | props.row.advices && props.row.advices.length > 0 |
| | | " |
| | | > |
| | | <div |
| | | v-for="(jianyi, index1) in props.row.advices" |
| | | :key="index1" |
| | | style="padding: 0 10px; margin-bottom: 10px" |
| | | > |
| | | <div>标题:{{ jianyi.bt || "" }}</div> |
| | | <div>内容:{{ jianyi.nr || "" }}</div> |
| | | </div> |
| | | </div> |
| | | <div v-else style="padding: 0 10px">暂无内容</div> |
| | | </template> |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | align="center" |
| | | label="检测项目" |
| | | width="232" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <div>{{ scope.row.proName }}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | align="center" |
| | | prop="proResult" |
| | | label="检测结果" |
| | | width="403" |
| | | > |
| | | </el-table-column> |
| | | </el-table> |
| | | </template> |
| | | </div> |
| | | </template> |
| | | <template v-if="status1 == 1"> |
| | | <div> |
| | | <div |
| | | style=" |
| | | text-align: center; |
| | | background-color: #e6a23c; |
| | | margin-top: 10px; |
| | | " |
| | | > |
| | | 项目检查情况 |
| | | </div> |
| | | <el-table |
| | | :row-style="redxiangmu" |
| | | :data="statusList" |
| | | style="width: 100%" |
| | | :header-cell-style="{ background: '#e6a23c' }" |
| | | :stripe="true" |
| | | > |
| | | <el-table-column |
| | | align="center" |
| | | label="部门" |
| | | width="144" |
| | | prop="deptName" |
| | | > |
| | | </el-table-column> |
| | | <el-table-column |
| | | align="center" |
| | | prop="proName" |
| | | label="项目" |
| | | width="260" |
| | | > |
| | | </el-table-column> |
| | | |
| | | <el-table-column |
| | | label="状态" |
| | | align="center" |
| | | prop="type" |
| | | :show-overflow-tooltip="true" |
| | | width="120" |
| | | > |
| | | <template slot-scope="scope"> |
| | | <span v-if="scope.row.type == '0'">未审核</span> |
| | | <span v-if="scope.row.type == '1'">已审核</span> |
| | | <span v-if="scope.row.type == '2'">弃检</span> |
| | | <span v-if="scope.row.type == '3'">延期</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="检查时间" |
| | | align="center" |
| | | prop="bcupdateTime" |
| | | width="160" |
| | | /> |
| | | </el-table> |
| | | </div> |
| | | </template> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="hist3" v-if="wenzhen"> |
| | | <span class="txt">问诊信息</span> |
| | | <el-form |
| | | ref="form" |
| | | :model="formobj" |
| | | label-width="100px" |
| | | :inline="true" |
| | | size="mini" |
| | | > |
| | | <el-collapse class="coll" v-model="activeName" accordion> |
| | | <el-collapse-item |
| | | class="coll" |
| | | title="基本信息" |
| | | name="1" |
| | | style="width: 100%; font-weight: 600" |
| | | > |
| | | <div style="width: 100%"> |
| | | <el-form-item label="姓名" prop="cusName"> |
| | | <el-input |
| | | disabled |
| | | v-model="formobj.cusName" |
| | | placeholder="请输入姓名" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="职业" prop="work"> |
| | | <el-select |
| | | filterable |
| | | v-model="formobj.work" |
| | | placeholder="请选择职业" |
| | | clearable |
| | | style="width: 150px" |
| | | disabled |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.tj_work" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="工作状态" prop="workStatus"> |
| | | <el-select |
| | | disabled |
| | | filterable |
| | | v-model="formobj.workStatus" |
| | | placeholder="请选择工作状态" |
| | | clearable |
| | | style="width: 150px" |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.tj_work_status" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="接触毒物" prop="contactPoison"> |
| | | <el-input |
| | | disabled |
| | | type="textarea" |
| | | rows="4" |
| | | v-model="formobj.contactPoison" |
| | | placeholder="请输入接触毒物" |
| | | style="width: 700px" |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="既往病史" prop="medicalHistory"> |
| | | <el-input |
| | | disabled |
| | | type="textarea" |
| | | rows="4" |
| | | v-model="formobj.medicalHistory" |
| | | placeholder="请输入既往病史" |
| | | style="width: 700px" |
| | | /> |
| | | </el-form-item> |
| | | </div> |
| | | </el-collapse-item> |
| | | <el-collapse-item title="月经史" name="2" v-show="sex"> |
| | | <div style="width: 100%"> |
| | | <el-form-item label="初潮(岁)" prop="chuchao"> |
| | | <el-input |
| | | v-model="formobj.chuchao" |
| | | style="width: 70px" |
| | | disabled |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="经期" prop="jingqi"> |
| | | <el-input |
| | | v-model="formobj.jingqi" |
| | | disabled |
| | | style="width: 70px" |
| | | />天 |
| | | </el-form-item> |
| | | <el-form-item label="周期" prop="zhouqi"> |
| | | <el-input |
| | | v-model="formobj.zhouqi" |
| | | disabled |
| | | style="width: 70px" |
| | | />天 |
| | | </el-form-item> |
| | | <el-form-item label="末次月经" prop="mociage"> |
| | | <el-input |
| | | v-model="formobj.mociage" |
| | | disabled |
| | | style="width: 100px" |
| | | /> |
| | | </el-form-item> |
| | | </div> |
| | | </el-collapse-item> |
| | | <el-collapse-item title="生育史" name="3" v-show="sex"> |
| | | <div style="width: 100%"> |
| | | <el-form-item label="现有子女(人)" prop="zinv"> |
| | | <el-input |
| | | v-model="formobj.zinv" |
| | | style="width: 70px" |
| | | disabled |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="流产(次)" prop="liuchan"> |
| | | <el-input |
| | | v-model="formobj.liuchan" |
| | | style="width: 70px" |
| | | disabled |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="早产(次)" prop="zaochan"> |
| | | <el-input |
| | | v-model="formobj.zaochan" |
| | | style="width: 70px" |
| | | disabled |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="死产(次)" prop="sichan"> |
| | | <el-input |
| | | v-model="formobj.sichan" |
| | | style="width: 70px" |
| | | disabled |
| | | /> |
| | | </el-form-item> |
| | | <el-form-item label="异常胎(次)" prop="yichangtai"> |
| | | <el-input |
| | | v-model="formobj.yichangtai" |
| | | style="width: 70px" |
| | | disabled |
| | | /> |
| | | </el-form-item> |
| | | </div> |
| | | </el-collapse-item> |
| | | <el-collapse-item title="烟酒史" name="4"> |
| | | <div style="width: 100%"> |
| | | <el-form-item label="是否吸烟" prop="xiyan"> |
| | | <!-- <el-input v-model="form.xiyanpinlv" placeholder="请输入吸烟频率" /> --> |
| | | <el-select |
| | | disabled |
| | | filterable |
| | | v-model="formobj.xiyan" |
| | | placeholder="请选择是否吸烟" |
| | | clearable |
| | | style="width: 150px" |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.tj_smoking_pinlv" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="吸烟频率" prop="xiyanpinlv"> |
| | | <el-input |
| | | v-model="formobj.xiyanpinlv" |
| | | disabled |
| | | style="width: 70px" |
| | | />支/天 |
| | | </el-form-item> |
| | | <el-form-item label="吸烟时间" prop="xiyanyear"> |
| | | <el-input |
| | | v-model="formobj.xiyanyear" |
| | | disabled |
| | | style="width: 70px" |
| | | />年 </el-form-item |
| | | ><br /> |
| | | <el-form-item label="是否饮酒" prop="yinjiu"> |
| | | <!-- <el-input v-model="form.yinjiupinlv" placeholder="请输入饮酒频率" /> --> |
| | | <el-select |
| | | filterable |
| | | v-model="formobj.yinjiu" |
| | | disabled |
| | | placeholder="请选择是否饮酒" |
| | | clearable |
| | | style="width: 150px" |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.tj_smoking_pinlv" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="饮酒频率" prop="yinjiupinlv"> |
| | | <el-input |
| | | v-model="formobj.yinjiupinlv" |
| | | disabled |
| | | style="width: 70px" |
| | | />ml/天 |
| | | </el-form-item> |
| | | <el-form-item label="饮酒时间" prop="yinjiuyear"> |
| | | <el-input |
| | | v-model="formobj.yinjiuyear" |
| | | disabled |
| | | style="width: 70px" |
| | | />年 |
| | | </el-form-item> |
| | | <el-form-item label="其他" prop="qita"> |
| | | <el-input |
| | | v-model="formobj.qita" |
| | | placeholder="请输入其他" |
| | | disabled |
| | | type="textarea" |
| | | style="width: 600px" |
| | | rows="2" |
| | | /> |
| | | </el-form-item> |
| | | </div> |
| | | </el-collapse-item> |
| | | <el-collapse-item title="急慢性职业病史信息" name="5"> |
| | | <div style="width: 100%"> |
| | | <el-table |
| | | border |
| | | :data="formobj.tjAskHistorysList" |
| | | ref="tjAskHistorys" |
| | | style="width: 98%" |
| | | > |
| | | <el-table-column type="selection" width="40" align="center" /> |
| | | <el-table-column label="疾病名称" prop="diseaseName"> |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | size="mini" |
| | | disabled |
| | | v-model="scope.row.diseaseName" |
| | | placeholder="请输入疾病名称" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="诊断日期" prop="diseaseData"> |
| | | <template slot-scope="scope"> |
| | | <el-date-picker |
| | | size="mini" |
| | | v-model="scope.row.diseaseData" |
| | | align="right" |
| | | type="date" |
| | | placeholder="选择日期" |
| | | :picker-options="pickerOptions" |
| | | style="width: 130px" |
| | | value-format="yyyy-MM-dd" |
| | | > |
| | | </el-date-picker> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="诊断单位" prop="diseaseCompany"> |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | size="mini" |
| | | disabled |
| | | v-model="scope.row.diseaseCompany" |
| | | placeholder="请输入诊断单位" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="是否痊愈" prop="isOk"> |
| | | <template slot-scope="scope"> |
| | | <!-- <el-input v-model="scope.row.isOk" placeholder="请输入是否痊愈" /> --> |
| | | <el-select |
| | | disabled |
| | | filterable |
| | | size="mini" |
| | | v-model="scope.row.isOk" |
| | | placeholder="请选择是否痊愈" |
| | | clearable |
| | | > |
| | | <el-option |
| | | v-for="dict in dict.type.sys_yes_no" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | /> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="备注" prop="remark"> |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | disabled |
| | | size="mini" |
| | | v-model="scope.row.remark" |
| | | placeholder="请输入备注" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </el-collapse-item> |
| | | |
| | | <el-collapse-item title="职业史" name="7"> |
| | | <div style="width: 100%"> |
| | | <el-table border :data="formobj.workLogs" style="width: 98%"> |
| | | <el-table-column type="selection" width="40" align="center" /> |
| | | <el-table-column label="开始时间" prop="beginTime"> |
| | | <template slot-scope="scope"> |
| | | <el-date-picker |
| | | size="mini" |
| | | v-model="scope.row.beginTime" |
| | | align="right" |
| | | type="date" |
| | | placeholder="选择日期" |
| | | :picker-options="pickerOptions" |
| | | style="width: 130px" |
| | | value-format="yyyy-MM-dd" |
| | | > |
| | | </el-date-picker> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="结束时间" prop="endTime"> |
| | | <template slot-scope="scope"> |
| | | <el-date-picker |
| | | size="mini" |
| | | disabled |
| | | v-model="scope.row.endTime" |
| | | align="right" |
| | | type="date" |
| | | placeholder="选择日期" |
| | | :picker-options="pickerOptions" |
| | | style="width: 130px" |
| | | value-format="yyyy-MM-dd" |
| | | > |
| | | </el-date-picker> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="工作单位" prop="workCompany"> |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | size="mini" |
| | | disabled |
| | | v-model="scope.row.workCompany" |
| | | placeholder="请输入工作单位" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="部门" prop="workDept"> |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | disabled |
| | | size="mini" |
| | | v-model="scope.row.workDept" |
| | | placeholder="请输入部门" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="工种" prop="workType"> |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | disabled |
| | | size="mini" |
| | | v-model="scope.row.workType" |
| | | placeholder="请输入工种" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="有害因素" prop="harmTypeLogs"> |
| | | <template slot-scope="scope"> |
| | | <!-- <el-input v-model="scope.row.isOk" placeholder="请输入是否痊愈" /> --> |
| | | <el-select |
| | | filterable |
| | | disabled |
| | | size="mini" |
| | | v-model="scope.row.harmTypeLogs" |
| | | multiple |
| | | placeholder="请选择有害因素" |
| | | clearable |
| | | > |
| | | <el-option |
| | | v-for="dict in harmTypeList" |
| | | :key="dict.aid" |
| | | :label="dict.harmtype" |
| | | :value="dict.aid" |
| | | /> |
| | | </el-select> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column label="防护措施" prop="fangHu"> |
| | | <template slot-scope="scope"> |
| | | <el-input |
| | | disabled |
| | | size="mini" |
| | | v-model="scope.row.fangHu" |
| | | placeholder="请输入防护措施" |
| | | /> |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </el-collapse-item> |
| | | </el-collapse> |
| | | </el-form> |
| | | </div> |
| | | </el-drawer> |
| | | |
| | | |
| | | <el-dialog title="新增异常结果" :visible.sync="addNewDialogVisible" width="900px" class="custom-dialog"> |
| | | <el-form :model="newItem" ref="newItemForm" label-width="100px" class="custom-form"> |
| | | <el-form-item label="项目分类" prop="parentName"> |
| | | <el-select v-model="newItem.parentName" placeholder="请选择项目分类" clearable filterable |
| | | @change="handleCategoryChange"> |
| | | <el-option v-for="item in projectCategories" :key="item.proId" :label="item.proName" |
| | | :value="item.proName" /> |
| | | </el-select> |
| | | </el-form-item> |
| | | <el-form-item label="检测项目" prop="jcxm"> |
| | | <el-input v-model="newItem.jcxm" placeholder="请输入检测项目或从分类选择" clearable></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="检测结果" prop="jcjg"> |
| | | <el-input v-model="newItem.jcjg" placeholder="请输入检测结果" clearable></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="参考范围" prop="ckfw"> |
| | | <el-input v-model="newItem.ckfw" placeholder="请输入参考范围" clearable></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="单位" prop="dw"> |
| | | <el-input v-model="newItem.dw" placeholder="请输入单位" clearable></el-input> |
| | | </el-form-item> |
| | | <!-- 动态建议组 --> |
| | | <div v-for="(advice, index) in newItem.map" :key="index" class="advice-group"> |
| | | <el-form-item label="建议标题" :prop="'map.' + index + '.bt'"> |
| | | <el-input v-model="advice.bt" placeholder="请输入建议标题" clearable @focus="tan($event)"></el-input> |
| | | </el-form-item> |
| | | <el-form-item label="建议内容" :prop="'map.' + index + '.nr'"> |
| | | <el-input v-model="advice.nr" type="textarea" rows="3" placeholder="请输入建议内容" resize="none" |
| | | @focus="tan($event)"></el-input> |
| | | </el-form-item> |
| | | <el-button v-if="index > 0" type="danger" size="small" @click="removeAdvice(index)" |
| | | style="margin-left: 100px; margin-bottom: 10px;">删除</el-button> |
| | | </div> |
| | | <el-form-item> |
| | | <el-button type="primary" size="small" @click="addAdvice" style="margin-left: 100px;">添加建议</el-button> |
| | | </el-form-item> |
| | | </el-form> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="addNewDialogVisible = false">取消</el-button> |
| | | <el-button type="primary" @click="submitNewItem">确定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | <el-dialog title="快捷建议选择" :visible.sync="showjianyi" width="1000px" class="custom-dialog" |
| | | :before-close="handleCloseAdviceDialog"> |
| | | <!-- 搜索区域 --> |
| | | <div style="margin-bottom: 15px;"> |
| | | <el-form :inline="true" @submit.native.prevent> |
| | | <el-form-item label="建议名称"> |
| | | <el-input v-model="queryParams1.zyzd" placeholder="请输入建议名称进行筛选" clearable style="width: 200px" |
| | | @input="filterAdvices(true)" @keyup.enter.native="filterAdvices(true)" /> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | |
| | | <!-- 建议表格 --> |
| | | <el-table v-loading="adviceLoading" :data="advicerulesList" ref="adviceTable" border highlight-current-row |
| | | @current-change="handleCurrentChangeAdvice" style="max-height: 400px; overflow-y: auto;" |
| | | :empty-text="adviceEmptyText"> |
| | | <el-table-column label="科室" prop="ks" width="100" align="center" /> |
| | | <el-table-column label="建议名称" prop="jymc" align="center" /> |
| | | <el-table-column label="建议内容" prop="jynr" align="center" /> |
| | | </el-table> |
| | | |
| | | <!-- 分页 --> |
| | | <div class="pag"> |
| | | <div class="pag2"> |
| | | <pagination v-show="total1 > 0" :total="total1" :page.sync="queryParams1.pageNum" |
| | | :limit.sync="queryParams1.pageSize" @pagination="filterAdvices(false)" /> |
| | | </div> |
| | | </div> |
| | | |
| | | <!-- 底部按钮 --> |
| | | <span slot="footer" class="dialog-footer"> |
| | | <el-button @click="cancelAdviceDialog">取消</el-button> |
| | | <el-button type="primary" @click="applySelectedAdvice" :disabled="!selectedAdvice">确定</el-button> |
| | | </span> |
| | | </el-dialog> |
| | | |
| | | <el-dialog :visible.sync="xmopen" width="800px" append-to-body> |
| | | <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> |
| | | </div> |
| | | </el-dialog> |
| | | <el-dialog |
| | | class="dia" |
| | | title="PDF 预览" |
| | | :visible.sync="dialogVisible" |
| | | :close-on-click-modal="false" |
| | | width="50%" |
| | | > |
| | | <div class="main"> |
| | | <iframe |
| | |
| | | </el-dialog> |
| | | <Packages ref="bbb" :baogao="baogao" /> |
| | | <Prescription ref="Pre" :preObj="preObj" /> |
| | | <proposal ref="proposal" :cusobj="cusobj" @event1="eventchange($event)" /> |
| | | <proposal |
| | | ref="proposal" |
| | | :cusobj="cusobj" |
| | | :tjNumber="tjNumber" |
| | | @event1="eventchange($event)" |
| | | /> |
| | | <createproposal ref="createproposal" :creatobj="creatobj" /> |
| | | |
| | | <el-dialog |
| | |
| | | </el-dialog> |
| | | </div> |
| | | </template> |
| | | |
| | | |
| | | |
| | | <script> |
| | | import _ from 'lodash'; |
| | | import jianqianwenzhen from "@/components/jianqianwenzhen"; |
| | | import Packages from "@/components/Packages"; |
| | | import Prescription from "@/components/Prescription"; |
| | |
| | | gettoPdf, |
| | | getModified, |
| | | isPdfOrJimu, |
| | | addOrder, |
| | | addOrder1, |
| | | UpdFcPro, |
| | | getFcList, |
| | | } from "@/api/doctor/checkAll"; |
| | | import { getInfoById } from "@/api/hosp/history"; |
| | | import { getInfo } from "@/api/login"; |
| | | import { getCompany, queryCompany } from "@/api/team/tuanti"; |
| | | import { reportHistory, yichang } from "@/api/doctor/check"; |
| | | import { reportHistory, yichang, shanchu } from "@/api/doctor/check"; |
| | | import { getPdf, revoke } from "@/api/hosp/order"; |
| | | import { cSWebGetPro } from "@/api/doctor/examination"; |
| | | import { cSWebGetPro, dataSynchronization } from "@/api/doctor/examination"; |
| | | import ViewPdf from "@/components/ViewPdf"; |
| | | import Historicalreport from "@/components/Historicalreport"; |
| | | import { getDicts } from "@/api/system/dict/data"; |
| | | import { getTjYxjcList } from "@/api/system/package"; |
| | | import { getNewDateList } from "@/api/hosp/order"; |
| | | import { getconfigKey } from "@/api/login"; |
| | | import { listAdvicerules } from "@/api/hosp/advicerules"; |
| | | import moment from "moment"; |
| | | |
| | | export default { |
| | |
| | | data() { |
| | | return { |
| | | // 更新总检建议 |
| | | emptyAdvice: { |
| | | bt: "", |
| | | nr: "", |
| | | }, |
| | | initialTotalCheckAdvice: "", |
| | | initialState: "", |
| | | preObj: {}, |
| | | baogao: [], |
| | | flags: false, |
| | | fcList: [], |
| | | xmopen: false, |
| | | datasList: [], |
| | | advicerulesList: [], |
| | | jianqianwenzhendata: [], |
| | | jianqians: false, |
| | | adviceLoading: false, |
| | | sex: true, |
| | | activeName: "1", |
| | | wenzhen: false, |
| | | hosproy: true, |
| | | remarks: "", |
| | | remark: "", |
| | | creatobj: {}, |
| | |
| | | proIds: "", |
| | | cusobj: {}, |
| | | xiaojie: "", |
| | | selectedAdvice: null, |
| | | isdisabled: false, |
| | | showjianyi: false, |
| | | addNewDialogVisible: false, |
| | | adviceEmptyText: '暂无数据', |
| | | total1: 0, |
| | | adviceCache: new Map(), |
| | | queryParams1: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | | zyzd: '', |
| | | }, |
| | | newItem: { |
| | | parentName: '', |
| | | jcxm: '', |
| | | jcjg: '', |
| | | ckfw: '', |
| | | dw: '', |
| | | map: [{ bt: '', nr: '' }] |
| | | }, |
| | | projectCategories: [], |
| | | src: "", |
| | | url: "", |
| | | userId: "", |
| | |
| | | selectLettercurrent: " ", |
| | | // 抽屉打开方式 |
| | | drawer: false, |
| | | isLoading: false, |
| | | xmopen: false, |
| | | tableAll: {}, |
| | | tjNumber: "", |
| | | // 全部小结 |
| | |
| | | // 查询参数 |
| | | yichangList: [], |
| | | statusList: [], |
| | | xmChange: [], |
| | | queryParam: { |
| | | pageNum: 1, |
| | | pageSize: 10, |
| | |
| | | status1: 0, // 0展示异常1展示项目情况 |
| | | viewportHeight: 0, |
| | | expends: [], |
| | | clearTimeSet: null, |
| | | }; |
| | | }, |
| | | |
| | |
| | | }); |
| | | }, |
| | | methods: { |
| | | tan(event) { |
| | | this.activeAdviceIndex = event.target.closest('.advice-group') |
| | | ? Array.from(event.target.closest('.el-form').querySelectorAll('.advice-group')) |
| | | .indexOf(event.target.closest('.advice-group')) |
| | | : 0; |
| | | this.queryParams1.pageNum = 1; |
| | | this.queryParams1.pageSize = 10; |
| | | this.queryParams1.zyzd = ''; |
| | | this.selectedAdvice = null; |
| | | this.advicerulesList = []; |
| | | this.total1 = 0; |
| | | this.adviceCache.clear(); |
| | | this.filterAdvices(); |
| | | this.showjianyi = true; |
| | | }, |
| | | |
| | | // 筛选快捷建议(防抖 800ms,带缓存和加载状态) |
| | | filterAdvices: _.debounce(function (resetPage = false) { |
| | | if (resetPage) { |
| | | this.queryParams1.pageNum = 1; |
| | | } |
| | | |
| | | const cacheKey = `${this.queryParams1.zyzd || ''}_${this.queryParams1.pageNum}_${this.queryParams1.pageSize}`; |
| | | |
| | | if (this.adviceCache.has(cacheKey)) { |
| | | const cachedData = this.adviceCache.get(cacheKey); |
| | | this.advicerulesList = cachedData.rows; |
| | | this.total1 = cachedData.total; |
| | | this.adviceEmptyText = this.advicerulesList.length === 0 ? '暂无匹配的建议' : '暂无数据'; |
| | | return; |
| | | } |
| | | |
| | | this.adviceLoading = true; |
| | | this.adviceEmptyText = '加载中...'; |
| | | |
| | | listAdvicerules(this.queryParams1) |
| | | .then((response) => { |
| | | this.advicerulesList = response.rows || []; |
| | | this.total1 = response.total || 0; |
| | | |
| | | this.adviceCache.set(cacheKey, { |
| | | rows: this.advicerulesList, |
| | | total: this.total1, |
| | | }); |
| | | |
| | | this.adviceEmptyText = this.advicerulesList.length === 0 ? '暂无匹配的建议' : '暂无数据'; |
| | | }) |
| | | .catch((error) => { |
| | | console.error('筛选快捷建议失败:', error); |
| | | this.advicerulesList = []; |
| | | this.total1 = 0; |
| | | this.adviceEmptyText = '加载失败,请稍后重试'; |
| | | this.$message.error('加载建议失败,请检查网络后重试'); |
| | | }) |
| | | .finally(() => { |
| | | this.adviceLoading = false; |
| | | }); |
| | | }, 800), |
| | | |
| | | handleCurrentChangeAdvice(currentRow) { |
| | | this.selectedAdvice = currentRow; |
| | | }, |
| | | |
| | | |
| | | submitFormxm() { |
| | | this.xmopen = false; |
| | | }, |
| | | |
| | | cancels() { |
| | | this.xmopen = false; |
| | | this.xmChange = []; |
| | | }, |
| | | |
| | | handleCategoryChange(value) { |
| | | if (value) { |
| | | this.newItem.jcxm = value; |
| | | } |
| | | }, |
| | | |
| | | applySelectedAdvice() { |
| | | if (this.selectedAdvice) { |
| | | this.$set(this.newItem.map, this.activeAdviceIndex, { |
| | | bt: this.selectedAdvice.jymc, |
| | | nr: this.selectedAdvice.jynr, |
| | | }); |
| | | this.showjianyi = false; |
| | | this.selectedAdvice = null; |
| | | } else { |
| | | this.$message.warning('请先选择一条建议'); |
| | | } |
| | | }, |
| | | |
| | | |
| | | handleCloseAdviceDialog(done) { |
| | | if (this.selectedAdvice) { |
| | | this.$confirm('您已选择一条建议,确定要关闭吗?', '提示', { |
| | | confirmButtonText: '确定', |
| | | cancelButtonText: '取消', |
| | | type: 'warning', |
| | | }) |
| | | .then(() => { |
| | | this.cancelAdviceDialog(); |
| | | done(); |
| | | }) |
| | | .catch(() => { }); |
| | | } else { |
| | | this.cancelAdviceDialog(); |
| | | done(); |
| | | } |
| | | }, |
| | | |
| | | cancelAdviceDialog() { |
| | | this.showjianyi = false; |
| | | this.selectedAdvice = null; |
| | | this.queryParams1.zyzd = ''; |
| | | this.queryParams1.pageNum = 1; |
| | | this.advicerulesList = []; |
| | | this.total1 = 0; |
| | | this.adviceCache.clear(); |
| | | }, |
| | | |
| | | setTime() { |
| | | //设置定时器 |
| | | this.clearTimeSet = setInterval(() => { |
| | | this.$modal.closeLoading(); |
| | | }, 300000); |
| | | }, |
| | | tongbu(row) { |
| | | this.$modal.loading("正在同步,请稍候..."); |
| | | this.setTime(); |
| | | let tjNumber = row.tjNumber; |
| | | dataSynchronization(tjNumber) |
| | | .then((res, error) => { |
| | | if (res.code == 200) { |
| | | this.clearTimeSet = null; |
| | | this.$modal.closeLoading(); |
| | | this.$modal.msgSuccess("同步成功!"); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | this.clearTimeSet = null; |
| | | this.$modal.closeLoading(); |
| | | }); |
| | | }, |
| | | /* shanchu(row) { |
| | | console.log(row); |
| | | shanchu({ |
| | | id: row.orderDetailId, |
| | | }).then((res) => { |
| | | console.log(res); |
| | | // 找到要删除项所在的父级数组 |
| | | const parentItem = this.yichangList.find((item) => |
| | | item.sone.some((soneItem) => soneItem.proId === row.proId) |
| | | ); |
| | | |
| | | if (parentItem) { |
| | | // 从父级的 sone 数组中删除该项 |
| | | const index = parentItem.sone.findIndex( |
| | | (item) => item.proId === row.proId |
| | | ); |
| | | if (index > -1) { |
| | | parentItem.sone.splice(index, 1); |
| | | |
| | | // 如果删除后 sone 数组为空,则删除整个父级项 |
| | | if (parentItem.sone.length === 0) { |
| | | const parentIndex = this.yichangList.indexOf(parentItem); |
| | | if (parentIndex > -1) { |
| | | this.yichangList.splice(parentIndex, 1); |
| | | } |
| | | } |
| | | |
| | | // 更新 expends 数组 |
| | | this.getExpends(); |
| | | |
| | | this.$message.success("删除成功"); |
| | | } |
| | | } |
| | | }); |
| | | }, */ |
| | | shanchu(row) { |
| | | this.isdisabled = true; |
| | | |
| | | shanchu({ |
| | | id: row.orderDetailId, |
| | | }) |
| | | .then((res) => { |
| | | console.log(res, 1111); |
| | | |
| | | if (res.code === 200) { |
| | | const parentItem = this.yichangList.find((item) => |
| | | item.sone.some( |
| | | (soneItem) => soneItem.orderDetailId === row.orderDetailId |
| | | ) |
| | | ); |
| | | |
| | | if (parentItem) { |
| | | const index = parentItem.sone.findIndex( |
| | | (item) => item.orderDetailId === row.orderDetailId |
| | | ); |
| | | if (index > -1) { |
| | | parentItem.sone.splice(index, 1); |
| | | |
| | | if (parentItem.sone.length === 0) { |
| | | const parentIndex = this.yichangList.indexOf(parentItem); |
| | | if (parentIndex > -1) { |
| | | this.yichangList.splice(parentIndex, 1); |
| | | } |
| | | } |
| | | |
| | | this.getExpends(); |
| | | this.$forceUpdate(); |
| | | this.$message.success("删除成功"); |
| | | } else { |
| | | this.$message.error("未找到要删除的子项"); |
| | | } |
| | | } else { |
| | | this.$message.error("未找到要删除的父项"); |
| | | } |
| | | } else { |
| | | this.$message.error("后端删除失败:" + (res.msg || "未知错误")); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | console.error("删除失败:", error); |
| | | this.$message.error("删除操作失败:" + error.message); |
| | | }) |
| | | .finally(() => { |
| | | this.isdisabled = false; |
| | | }); |
| | | }, |
| | | getConfigKey() { |
| | | getconfigKey("sfkqtwbg").then((res) => { |
| | | this.msgtuwen = res.msg; |
| | |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | fuchaxiangmu() { |
| | | this.loading = true; |
| | | this.status1 = 2; |
| | | let data = { |
| | | tjNum: this.tjNumber, |
| | | type: 1, |
| | | }; |
| | | 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; |
| | | }); |
| | | }, |
| | | |
| | | handleQuery() { |
| | | this.xmopen = true; |
| | | let data = { |
| | | tjNum: this.tjNumber, |
| | | type: 0, |
| | | }; |
| | | getFcList(data).then((res) => { |
| | | this.datasList = res.data; |
| | | }); |
| | | }, |
| | | |
| | | handleaddClick() { |
| | | console.log(this.xmChange); |
| | | let data = { |
| | | orderId: this.xmChange[0].orderId, |
| | | data: [ |
| | | { |
| | | proId: this.xmChange[0].proId, |
| | | type: 1, |
| | | }, |
| | | ], |
| | | }; |
| | | UpdFcPro(data).then((res) => { |
| | | if (res.code == 200) { |
| | | this.xmChange = []; |
| | | this.fuchaxiangmu(); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | handledeleteClick(row) { |
| | | let data = { |
| | | orderId: row.orderId, |
| | | data: [ |
| | | { |
| | | proId: row.proId, |
| | | type: 0, |
| | | }, |
| | | ], |
| | | }; |
| | | UpdFcPro(data).then((res) => { |
| | | if (res.code == 200) { |
| | | this.fuchaxiangmu(); |
| | | } |
| | | }); |
| | | }, |
| | | |
| | | handlexmChange(selection) { |
| | | this.xmChange = []; |
| | | this.xmChange = selection; |
| | | if (selection.length > 1) { |
| | | let del_row = selection.shift(); |
| | | this.$refs.elTable.toggleRowSelection(del_row, false); //设置这一行取消选中 |
| | | } |
| | | }, |
| | | submitFormxm() { |
| | | this.xmopen = false; |
| | | }, |
| | | cancels() { |
| | | this.xmopen = false; |
| | | this.xmChange = []; |
| | | }, |
| | | guanbi() { |
| | | this.drawer = false; |
| | | }, |
| | | yichangjieguo() { |
| | | this.isLoading = true; |
| | | this.status1 = 0; |
| | | let _this = this; |
| | | yichang({ |
| | | tjNum: this.tjNumber, |
| | | }).then((res) => { |
| | | this.yichangList = res.data; |
| | | this.getExpends(); |
| | | if (!this.yichangList) { |
| | | this.$message({ |
| | | type: "warning ", |
| | | message: "暂无异常报告", |
| | | }) |
| | | .then((res) => { |
| | | this.isLoading = false; |
| | | this.yichangList = res.data; |
| | | |
| | | // console.log(this.yichangList, 3232); |
| | | this.getExpends(); |
| | | |
| | | this.yichangList.forEach((item) => { |
| | | item.sone.forEach((soneItem) => { |
| | | if ( |
| | | !Array.isArray(soneItem.advices) || |
| | | soneItem.advices.length === 0 |
| | | ) { |
| | | // 如果 advices 是空,设置默认值 |
| | | soneItem.advices = [ |
| | | { |
| | | bt: "", |
| | | nr: "", |
| | | }, |
| | | ]; |
| | | } |
| | | }); |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | if (!this.yichangList) { |
| | | _this.$message({ |
| | | type: "warning ", |
| | | message: "暂无异常报告", |
| | | }); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | this.isLoading = false; |
| | | console.error("获取异常结果失败:", error); |
| | | this.$message.error("获取异常结果失败"); |
| | | }) |
| | | .finally(() => { |
| | | this.isLoading = false; |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | getdate() { |
| | | getNewDateList().then((res) => { |
| | | this.startTime = [ |
| | | /* this.startTime = [ |
| | | moment(res.data).format("YYYY-MM-DD 00:00:00"), |
| | | moment(res.data).format("YYYY-MM-DD 23:59:00"), |
| | | ]; |
| | | ]; */ |
| | | this.getList(); |
| | | }); |
| | | }, |
| | |
| | | setTimeout(() => { |
| | | loading.close(); |
| | | }, 3000); |
| | | this.$message.msgSuccess("报告正在生成,请两分钟后预览!"); |
| | | this.$message({ |
| | | message: "报告正在生成,请两分钟后预览!", |
| | | type: "error", |
| | | }); |
| | | } else { |
| | | this.dialogVisible = true; |
| | | |
| | |
| | | |
| | | historicalreport() { |
| | | this.loading = true; |
| | | this.wenzhen = false; |
| | | this.hosproy = true; |
| | | let data = { |
| | | cusId: this.tableAll.cusId, |
| | | }; |
| | |
| | | }, |
| | | |
| | | medicalhistory() { |
| | | this.wenzhen = true; |
| | | this.hosproy = false; |
| | | this.status1 = 3; |
| | | let tjNumber = this.tableAll.tjNumber; |
| | | getInfoById(tjNumber).then((response) => { |
| | | this.formobj = response.data; |
| | |
| | | }, |
| | | eventchange(data) { |
| | | this.dataText = data; |
| | | console.log(data, 6655); |
| | | |
| | | if (this.textarea1 == null) { |
| | | this.textarea1 = ""; |
| | | } |
| | | data.forEach((item) => { |
| | | /* data.forEach((item) => { |
| | | this.textarea1 += item.advice; |
| | | }); */ |
| | | data.forEach((item) => { |
| | | this.textarea1 += (item.advice || item.jynr || "") + "\n"; |
| | | }); |
| | | }, |
| | | proposalChange() { |
| | |
| | | if (this.tjproject == "0") { |
| | | getupdateCheckType(this.tjNumber).then((response) => { |
| | | this.changedate = response.data; |
| | | |
| | | this.changedate.forEach((item) => { |
| | | this.textarea1 = item.checkAdvice; |
| | | }); |
| | |
| | | if (res.data) { |
| | | // this.Testitems = res.data |
| | | this.changedate = res.data; |
| | | |
| | | this.changedate.forEach((item) => { |
| | | this.textarea1 = item.checkAdvice; |
| | | }); |
| | |
| | | }; |
| | | }, |
| | | redxiangmu({ row }) { |
| | | if (row.type == 0) { |
| | | if (row.type != 1) { |
| | | // 变颜色的条件 |
| | | return { |
| | | color: "red", // 这个return的就是样式 可以是color 也可以是backgroundColor |
| | | backgroundColor: "#AAD8DF !important", // 这个return的就是样式 可以是color 也可以是backgroundColor |
| | | // color: "#AAD8DF ", |
| | | }; |
| | | } |
| | | }, |
| | |
| | | }; |
| | | getModifiedState(data).then((res) => { |
| | | this.MsgId = res.msg; |
| | | this.isLoading = true; |
| | | this.drawer = true; |
| | | getupdateCheckType(this.tjNumber).then((response) => { |
| | | this.isLoading = false; |
| | | this.changedate = response.data; |
| | | if (this.changedate) { |
| | | this.changedate.forEach((item) => { |
| | |
| | | }; |
| | | getforceIn(data).then((res) => { |
| | | this.MsgId = res.msg; |
| | | this.isLoading = true; |
| | | this.drawer = true; |
| | | getupdateCheckType(this.tjNumber).then((response) => { |
| | | this.isLoading = false; |
| | | this.changedate = response.data; |
| | | if (this.changedate) { |
| | | for (let i = 0; i < this.changedate.length; i++) { |
| | |
| | | }); |
| | | }, |
| | | |
| | | |
| | | addAdvice() { |
| | | this.newItem.map.push({ bt: '', nr: '' }); |
| | | }, |
| | | |
| | | removeAdvice(index) { |
| | | if (this.newItem.map.length > 1) { |
| | | this.newItem.map.splice(index, 1); |
| | | } else { |
| | | this.$message.warning('至少保留一组建议'); |
| | | } |
| | | }, |
| | | |
| | | submitNewItem() { |
| | | const data = { |
| | | tjh: this.tableAll.tjNumber, |
| | | parentName: this.newItem.parentName, |
| | | jcxm: this.newItem.jcxm, |
| | | jcjg: this.newItem.jcjg, |
| | | ckfw: this.newItem.ckfw, |
| | | dw: this.newItem.dw, |
| | | map: this.newItem.map, |
| | | jyjc: this.newItem.ckfw ? "0" : "1" |
| | | }; |
| | | |
| | | addOrder1(data).then((res) => { |
| | | if (res.code === 200) { |
| | | this.$message.success('新增异常结果成功'); |
| | | this.addNewDialogVisible = false; |
| | | this.yichangjieguo(); |
| | | } else { |
| | | this.$message.error('新增失败'); |
| | | } |
| | | }).catch((error) => { |
| | | console.error('新增异常结果失败:', error); |
| | | this.$message.error('新增异常结果失败'); |
| | | }); |
| | | }, |
| | | |
| | | |
| | | addnew() { |
| | | this.newItem = { |
| | | parentName: '', |
| | | jcxm: '', |
| | | jcjg: '', |
| | | ckfw: '', |
| | | dw: '', |
| | | map: [{ bt: '', nr: '' }] |
| | | }; |
| | | this.addNewDialogVisible = true; |
| | | |
| | | cSWebGetPro(this.tjNumber).then((res) => { |
| | | if (res.data && Array.isArray(res.data)) { |
| | | this.projectCategories = res.data; |
| | | } else { |
| | | this.$message.warning('未获取到项目分类数据'); |
| | | this.projectCategories = []; |
| | | } |
| | | }).catch((error) => { |
| | | console.error('获取项目分类失败:', error); |
| | | this.$message.error('获取项目分类失败'); |
| | | this.projectCategories = []; |
| | | }); |
| | | }, |
| | | |
| | | cancel() { |
| | | this.propdialog = false; |
| | | }, |
| | |
| | | // } |
| | | // }, |
| | | change(vale) {}, |
| | | /* determine() { |
| | | let tjNumber = this.tableAll.tjNumber; |
| | | let advice = this.textarea1; |
| | | let data = { |
| | | tjNumber, |
| | | advice, |
| | | checkStatus: 1, |
| | | }; |
| | | this.loading = true; |
| | | 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("已生成报告!请前往报告核收页面确认!"); |
| | | }) |
| | | .catch((error) => { |
| | | this.$modal.msgError( |
| | | "打印报告失败,请前往报告打印页面补打报告!" |
| | | ); |
| | | }) |
| | | getfiedState(data).then((res) => { |
| | | this.drawer = false; |
| | | }); |
| | | this.queryParams.page = 1; |
| | | this.queryParams.pageSize = 10; |
| | | this.submitForm(); |
| | | this.$forceUpdate(); |
| | | }); |
| | | |
| | | 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) => {}); |
| | | } |
| | | // determine() { |
| | | // let tjNumber = this.tableAll.tjNumber; |
| | | // let tjh = this.tableAll.tjNumber; |
| | | // // let jyjc = this.yichangList.map(item => item.jyjc || null); |
| | | // let advice = this.textarea1; |
| | | // let data = { |
| | | // tjNumber, |
| | | // advice, |
| | | // checkStatus: 1, |
| | | // }; |
| | | |
| | | // this.changedate.forEach((item) => { |
| | | // this.proIds = item.parentId; |
| | | // // this.remark = item.remark; |
| | | // }); |
| | | }, */ |
| | | // console.log(this.yichangList, 66); |
| | | |
| | | // let dataList = this.yichangList |
| | | // .map((item) => { |
| | | // return item.sone.map((soneItem) => ({ |
| | | // tjh, |
| | | // parentName: item.proName, |
| | | // jcxm: soneItem.proName, |
| | | // map: soneItem.advices, |
| | | // jyjc: item.jyjc, // assuming jyjc belongs to the outer item, not soneItem |
| | | // jcjg: soneItem.proResult, |
| | | // ckfw: soneItem.stanId, |
| | | // dw: soneItem.proAdvice, |
| | | // })); |
| | | // }) |
| | | // .flat(); // 使用 flat() 方法将嵌套数组展平 |
| | | // console.log(dataList, 777); |
| | | |
| | | // /* addOrder(dataList).then((res) => { |
| | | // console.log(res, 999); |
| | | // }); */ |
| | | // getTjdetailList(data) |
| | | // .then((response) => { |
| | | // if (response.code === 200) { |
| | | // this.$modal.msgSuccess("提交成功"); |
| | | |
| | | // // 准备生成报告的请求数据 |
| | | // let reportData = { |
| | | // userId: this.userId, |
| | | // tjNumber: tjNumber, |
| | | // state: 1, |
| | | // id: this.MsgId, |
| | | // }; |
| | | |
| | | // // 生成报告并保持 loading 打开 |
| | | // const reportPromise = gettoPdf(tjNumber) |
| | | // .then((res) => { |
| | | // this.$modal.msgSuccess("已生成报告!请前往报告核收页面确认!"); |
| | | // }) |
| | | // .catch((error) => { |
| | | // this.$modal.msgError( |
| | | // "打印报告失败,请前往报告打印页面补打报告!" |
| | | // ); |
| | | // }); |
| | | |
| | | // // 更新状态并提交修改请求 |
| | | // const statePromise = getfiedState(reportData).then((res) => { |
| | | // this.drawer = false; |
| | | // }); |
| | | |
| | | // // const addOrderPromise = addOrder(dataList).then((res) => { |
| | | // // console.log(res, 999); |
| | | // // }); |
| | | |
| | | // // 处理其他修改操作 |
| | | // const updatePromises = this.changedate.map((item) => { |
| | | // this.proIds = item.parentId; |
| | | // let remarks = item.remark; |
| | | // let updateOrderRemarkVos = [ |
| | | // { |
| | | // tjNumber, |
| | | // proId: this.proIds.toString(), |
| | | // remarks, |
| | | // }, |
| | | // ]; |
| | | // return getModified(updateOrderRemarkVos); // 返回 Promise |
| | | // }); |
| | | |
| | | // // 等待所有请求完成 |
| | | // Promise.all([ |
| | | // reportPromise, |
| | | // statePromise, |
| | | // // addOrderPromise, |
| | | // ...updatePromises, |
| | | // ]) |
| | | // .then(() => { |
| | | // // 所有请求完成,关闭 loading |
| | | // this.loading = false; |
| | | // // 更新分页信息 |
| | | // this.queryParams.page = 1; |
| | | // this.queryParams.pageSize = 10; |
| | | // this.submitForm(); |
| | | // this.$forceUpdate(); |
| | | // }) |
| | | // .catch((error) => { |
| | | // // 处理错误情况 |
| | | // this.loading = false; |
| | | // console.error("发生错误:", error); |
| | | // }); |
| | | // } else { |
| | | // // 提交失败,关闭 loading |
| | | // this.loading = false; |
| | | // } |
| | | // }) |
| | | // .catch((error) => { |
| | | // // 提交请求失败,关闭 loading |
| | | // this.loading = false; |
| | | // console.error("提交请求失败:", error); |
| | | // }); |
| | | // }, |
| | | determine() { |
| | | let tjNumber = this.tableAll.tjNumber; |
| | | let tjh = this.tableAll.tjNumber; |
| | | let advice = this.textarea1; |
| | | let data = { |
| | | tjNumber, |
| | |
| | | checkStatus: 1, |
| | | }; |
| | | |
| | | // 开始加载 |
| | | this.loading = true; |
| | | console.log(this.yichangList, 6644); |
| | | |
| | | // 提交数据 |
| | | let dataList = this.yichangList |
| | | .map((item) => { |
| | | return item.sone.map((soneItem) => ({ |
| | | tjh, |
| | | parentName: item.proName, |
| | | jcxm: soneItem.proName, |
| | | map: soneItem.advices, |
| | | jyjc: item.jyjc, |
| | | jcjg: soneItem.proResult, |
| | | ckfw: soneItem.stanId, |
| | | dw: soneItem.proAdvice, |
| | | })); |
| | | }) |
| | | .flat(); // 使用 flat() 方法将嵌套数组展平 |
| | | |
| | | getTjdetailList(data) |
| | | .then((response) => { |
| | | if (response.code === 200) { |
| | |
| | | id: this.MsgId, |
| | | }; |
| | | |
| | | // 生成报告并保持 loading 打开 |
| | | const reportPromise = gettoPdf(tjNumber) |
| | | // 调用 addOrderPromise |
| | | console.log(dataList, 5555); |
| | | |
| | | addOrder(dataList) |
| | | .then((res) => { |
| | | this.$modal.msgSuccess("已生成报告!请前往报告核收页面确认!"); |
| | | console.log(res, 999); |
| | | if (res.code == 200) { |
| | | gettoPdf(tjNumber) |
| | | .then((res) => { |
| | | this.$modal.msgSuccess( |
| | | "已生成报告!请前往报告核收页面确认!" |
| | | ); |
| | | }) |
| | | .catch(() => { |
| | | this.$modal.msgError( |
| | | "打印报告失败,请前往报告打印页面补打报告!" |
| | | ); |
| | | }); |
| | | const statePromise = getfiedState(reportData).then(() => { |
| | | this.drawer = false; |
| | | }); |
| | | const updatePromises = this.changedate.map((item) => { |
| | | this.proIds = item.parentId; |
| | | let remarks = item.remark; |
| | | let updateOrderRemarkVos = [ |
| | | { |
| | | tjNumber, |
| | | proId: this.proIds.toString(), |
| | | remarks, |
| | | }, |
| | | ]; |
| | | return getModified(updateOrderRemarkVos); // 返回 Promise |
| | | }); |
| | | |
| | | // 等待所有请求完成 |
| | | Promise.all([statePromise, ...updatePromises]) |
| | | .then(() => { |
| | | // 所有请求完成,关闭 loading |
| | | this.loading = false; |
| | | // 更新分页信息 |
| | | this.queryParams.page = 1; |
| | | this.queryParams.pageSize = 10; |
| | | this.submitForm(); |
| | | this.$forceUpdate(); |
| | | }) |
| | | .catch((error) => { |
| | | // 处理错误情况 |
| | | this.loading = false; |
| | | console.error("发生错误:", error); |
| | | }); |
| | | } |
| | | }) |
| | | .catch((error) => { |
| | | this.$modal.msgError( |
| | | "打印报告失败,请前往报告打印页面补打报告!" |
| | | ); |
| | | }); |
| | | |
| | | // 更新状态并提交修改请求 |
| | | const statePromise = getfiedState(reportData).then((res) => { |
| | | this.drawer = false; |
| | | }); |
| | | |
| | | // 处理其他修改操作 |
| | | const updatePromises = this.changedate.map((item) => { |
| | | this.proIds = item.parentId; |
| | | let remarks = item.remark; |
| | | let updateOrderRemarkVos = [ |
| | | { |
| | | tjNumber, |
| | | proId: this.proIds.toString(), |
| | | remarks, |
| | | }, |
| | | ]; |
| | | return getModified(updateOrderRemarkVos); // 返回 Promise |
| | | }); |
| | | |
| | | // 等待所有请求完成 |
| | | Promise.all([reportPromise, statePromise, ...updatePromises]) |
| | | .then(() => { |
| | | // 所有请求完成,关闭 loading |
| | | // 如果 addOrderPromise 失败,处理错误 |
| | | this.loading = false; |
| | | // 更新分页信息 |
| | | this.queryParams.page = 1; |
| | | this.queryParams.pageSize = 10; |
| | | this.submitForm(); |
| | | this.$forceUpdate(); |
| | | }) |
| | | .catch((error) => { |
| | | // 处理错误情况 |
| | | this.loading = false; |
| | | console.error("发生错误:", error); |
| | | console.error("addOrderPromise 失败:", error); |
| | | }); |
| | | } else { |
| | | // 提交失败,关闭 loading |
| | |
| | | .mainbox { |
| | | position: relative; |
| | | } |
| | | |
| | | .btn { |
| | | margin: 20px 0px; |
| | | } |
| | | |
| | | .btnbox { |
| | | display: flex; |
| | | flex-direction: column; |
| | | gap: 10px; /* 按钮之间的间距 */ |
| | | position: fixed; /* 使整个按钮区域固定在页面 */ |
| | | right: 0; /* 固定在页面右侧 */ |
| | | top: 20%; /* 初始位置 */ |
| | | gap: 10px; |
| | | /* 按钮之间的间距 */ |
| | | position: fixed; |
| | | /* 使整个按钮区域固定在页面 */ |
| | | right: 0; |
| | | /* 固定在页面右侧 */ |
| | | top: 20%; |
| | | /* 初始位置 */ |
| | | z-index: 10; |
| | | } |
| | | |
| | | /* 每个按钮的样式 */ |
| | | .btn1 { |
| | | animation: fadeInUp 0.5s ease-out forwards; /* 按钮加载时的淡入动画 */ |
| | | animation: fadeInUp 0.5s ease-out forwards; |
| | | /* 按钮加载时的淡入动画 */ |
| | | cursor: pointer; |
| | | text-align: center; |
| | | } |
| | | |
| | | .vertical-text { |
| | | writing-mode: vertical-rl; |
| | | text-orientation: upright; |
| | |
| | | @keyframes fadeInUp { |
| | | 0% { |
| | | opacity: 0; |
| | | transform: translateY(20px) scale(0.5); /* 初始状态:透明且缩小 */ |
| | | transform: translateY(20px) scale(0.5); |
| | | /* 初始状态:透明且缩小 */ |
| | | } |
| | | |
| | | 100% { |
| | | opacity: 1; |
| | | transform: translateY(0) scale(1); /* 最终状态:完全显示且正常大小 */ |
| | | transform: translateY(0) scale(1); |
| | | /* 最终状态:完全显示且正常大小 */ |
| | | } |
| | | } |
| | | |
| | | /* 每个按钮的位置和动画延迟 */ |
| | | .btnbox > div:nth-child(1) { |
| | | top: 20%; /* 第一个按钮的位置 */ |
| | | animation-delay: 0s; /* 无延迟 */ |
| | | top: 20%; |
| | | /* 第一个按钮的位置 */ |
| | | animation-delay: 0s; |
| | | /* 无延迟 */ |
| | | } |
| | | |
| | | .btnbox > div:nth-child(2) { |
| | | top: 30%; /* 第二个按钮的位置 */ |
| | | top: 30%; |
| | | /* 第二个按钮的位置 */ |
| | | animation-delay: 0.2s; |
| | | } |
| | | |
| | | .btnbox > div:nth-child(3) { |
| | | top: 40%; /* 第三个按钮的位置 */ |
| | | top: 40%; |
| | | /* 第三个按钮的位置 */ |
| | | animation-delay: 0.4s; |
| | | } |
| | | |
| | | .btnbox > div:nth-child(4) { |
| | | top: 50%; /* 第四个按钮的位置 */ |
| | | top: 50%; |
| | | /* 第四个按钮的位置 */ |
| | | animation-delay: 0.6s; |
| | | } |
| | | |
| | | .btnbox > div:nth-child(5) { |
| | | top: 60%; /* 第五个按钮的位置 */ |
| | | top: 60%; |
| | | /* 第五个按钮的位置 */ |
| | | animation-delay: 0.8s; |
| | | } |
| | | |
| | | .btnbox > div:nth-child(6) { |
| | | top: 70%; /* 第六个按钮的位置 */ |
| | | top: 70%; |
| | | /* 第六个按钮的位置 */ |
| | | animation-delay: 1s; |
| | | } |
| | | |
| | | .main { |
| | | height: 800px; |
| | | overflow: hidden; |
| | | height: 80vh; // 改为使用视窗高度 |
| | | min-height: 600px; // 设置最小高度 |
| | | overflow: auto; // 改为auto允许滚动 |
| | | } |
| | | |
| | | #printIframe::-webkit-scrollbar { |
| | | // 优化滚动条样式 |
| | | .main::-webkit-scrollbar { |
| | | width: 6px; |
| | | } |
| | | |
| | | /* 修改 滚动条的 下面 的 样式 */ |
| | | #printIframe::-webkit-scrollbar-track { |
| | | .main::-webkit-scrollbar-track { |
| | | background-color: white; |
| | | -webkit-border-radius: 2em; |
| | | -moz-border-radius: 2em; |
| | | border-radius: 2em; |
| | | } |
| | | |
| | | /* 修改 滑块 */ |
| | | #printIframe::-webkit-scrollbar-thumb { |
| | | .main::-webkit-scrollbar-thumb { |
| | | background-color: #dcdfe6; |
| | | -webkit-border-radius: 2em; |
| | | -moz-border-radius: 2em; |
| | | border-radius: 2em; |
| | | } |
| | | |
| | | ::v-deep .el-dialog { |
| | | width: 1700px; |
| | | height: 900px; |
| | | margin-top: 5vh !important; // 调整对话框位置 |
| | | } |
| | | ::v-deep .el-dialog__header{ |
| | | |
| | | ::v-deep .el-dialog__header { |
| | | padding: 8px; |
| | | } |
| | | ::v-deep .el-dialog__body{ |
| | | padding: 0; |
| | | |
| | | ::v-deep .el-dialog__body { |
| | | padding: 0; |
| | | } |
| | | |
| | | ::v-deep .el-button--medium { |
| | | padding: 10px; |
| | | } |
| | | ::v-deep .el-dialog__headerbtn{ |
| | | |
| | | ::v-deep .el-dialog__headerbtn { |
| | | // position: relative; |
| | | top: 13px; |
| | | } |
| | | |
| | | /* .el-dialog { |
| | | width: 1264px; |
| | | height: 800px; |
| | |
| | | display: flex; |
| | | justify-content: center; |
| | | align-items: center; |
| | | z-index: 1000; /* 确保按钮层级在其他内容上方 */ |
| | | z-index: 1000; |
| | | /* 确保按钮层级在其他内容上方 */ |
| | | width: 300px; |
| | | background-color: white; /* 可根据需要调整背景颜色 */ |
| | | background-color: white; |
| | | /* 可根据需要调整背景颜色 */ |
| | | } |
| | | |
| | | /* 确保按钮之间有合适的间距 */ |
| | |
| | | border: none; |
| | | outline: none; |
| | | } |
| | | |
| | | .box { |
| | | display: flex; |
| | | height: calc(100% - 160px); |
| | | margin-top: 20px; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | height: 100vh; |
| | | .left-container { |
| | | flex: 1; |
| | | margin-right: 10px; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .left { |
| | | height: 100%; |
| | | padding: 0 10px; |
| | | overflow-y: scroll; // 改为 scroll 而不是 auto |
| | | |
| | | &::-webkit-scrollbar { |
| | | width: 8px; // 增加宽度使其更容易看见 |
| | | background-color: #f5f5f5; |
| | | display: block; // 确保显示 |
| | | } |
| | | |
| | | &::-webkit-scrollbar-thumb { |
| | | background: #909399; |
| | | border-radius: 4px; |
| | | } |
| | | |
| | | &::-webkit-scrollbar-track { |
| | | background: #f5f5f5; |
| | | border-radius: 4px; |
| | | } |
| | | } |
| | | |
| | | .rightbox { |
| | | margin-left: 60px; |
| | | position: fixed; |
| | | top: 107px; |
| | | right: 56px; |
| | | width: 684px; |
| | | width: 700px; |
| | | overflow: hidden; |
| | | } |
| | | |
| | | .right { |
| | | background-color: #fff; |
| | | // box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); |
| | | z-index: 10; |
| | | max-height: calc(100vh - 100px); /* 假设你想为顶部和底部留出一些空间 */ |
| | | overflow-y: auto; /* 允许垂直滚动 */ |
| | | padding: 0 0 50px; /* 可选:添加一些内边距以避免内容紧贴边缘 */ |
| | | .right { |
| | | height: 100%; |
| | | padding: 0 10px; |
| | | overflow-y: scroll; // 改为 scroll 而不是 auto |
| | | |
| | | &::-webkit-scrollbar { |
| | | width: 8px; // 增加宽度 |
| | | background-color: #f5f5f5; |
| | | display: block; // 确保显示 |
| | | } |
| | | |
| | | &::-webkit-scrollbar-thumb { |
| | | background: #909399; |
| | | border-radius: 4px; |
| | | } |
| | | |
| | | &::-webkit-scrollbar-track { |
| | | background: #f5f5f5; |
| | | border-radius: 4px; |
| | | } |
| | | } |
| | | |
| | |
| | | background-color: #fff; |
| | | box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1); |
| | | display: flex; |
| | | |
| | | .el-icon-close { |
| | | cursor: pointer; |
| | | font-size: 30px; |
| | |
| | | color: rgb(24, 144, 255); |
| | | } |
| | | } |
| | | |
| | | .pag2 { |
| | | width: auto; |
| | | /* 移除固定宽度,让分页器根据内容自适应 */ |
| | | min-width: 750px; |
| | | /* 设置最小宽度,确保分页器不会太窄 */ |
| | | text-align: center; |
| | | /* 确保分页器内部元素居中 */ |
| | | } |
| | | |
| | | .custom-dialog { |
| | | ::v-deep .el-dialog__header { |
| | | padding: 15px 20px; |
| | | background-color: #f5f7fa; |
| | | border-bottom: 1px solid #e8ecef; |
| | | } |
| | | |
| | | ::v-deep .el-dialog__title { |
| | | font-size: 18px; |
| | | color: #303133; |
| | | font-weight: 600; |
| | | } |
| | | |
| | | ::v-deep .el-dialog__body { |
| | | padding: 20px; // 增加内边距 |
| | | background-color: #fff; |
| | | } |
| | | |
| | | ::v-deep .el-dialog__footer { |
| | | padding: 10px 20px; |
| | | border-top: 1px solid #e8ecef; |
| | | text-align: right; |
| | | } |
| | | |
| | | .custom-form { |
| | | .advice-group { |
| | | border: 1px solid #e8ecef; |
| | | border-radius: 4px; |
| | | padding: 10px; |
| | | margin-bottom: 15px; |
| | | background-color: #f9fbfc; |
| | | |
| | | .el-form-item { |
| | | margin-bottom: 15px; |
| | | } |
| | | |
| | | .el-button { |
| | | margin-top: 5px; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | .kong { |
| | | box-shadow: none; |
| | | } |
| | | |
| | | ::v-deep .el-table--medium .el-table__cell { |
| | | padding: 5px 0; |
| | | } |
| | | |
| | | ::-webkit-scrollbar { |
| | | display: none; |
| | | } |
| | | |
| | | ::v-deep .el-drawer { |
| | | padding: 0 0 50px; |
| | | } |
| | | </style> |
| | | |
| | | |