|
@@ -0,0 +1,369 @@
|
|
|
+<template>
|
|
|
+ <div>
|
|
|
+ <crumbs title="诊断依据维护" :minWidth="titleWidth" class="knowledgeTitle">
|
|
|
+ <el-form :inline="true" class="demo-form-inline">
|
|
|
+ <el-form-item label="疾病名称:">
|
|
|
+ <el-input size="mini" v-model="filter.conceptName" placeholder="输入疾病名称" clearable></el-input>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button size="mini" @click="filterDatas">确认</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item>
|
|
|
+ <el-button size="mini" @click="addRule" type="warning" style="margin:0 10px">+ 新增诊断依据</el-button>
|
|
|
+ <el-button size="mini" @click="update">更新数据</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ </el-form>
|
|
|
+ </crumbs>
|
|
|
+ <div class="contents knowledgeContents">
|
|
|
+ <el-table :data="list"
|
|
|
+ border
|
|
|
+ style="width: 100%">
|
|
|
+ <el-table-column
|
|
|
+ type="index"
|
|
|
+ :index="indexMethod"
|
|
|
+ label="编号"
|
|
|
+ width="60">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="conceptName"
|
|
|
+ label="疾病名称"
|
|
|
+ width="160">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-tooltip v-if="scope.row.conceptName.length>8" class="item" effect="dark" :content="scope.row.conceptName" placement="top">
|
|
|
+ <span>{{scope.row.conceptName.slice(0,8)+'...'}}</span>
|
|
|
+ </el-tooltip>
|
|
|
+ <span v-if="scope.row.conceptName.length<9">{{scope.row.conceptName}}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="description"
|
|
|
+ label="描述"
|
|
|
+ width="160">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-tooltip v-if="scope.row.description.length>8" class="item" effect="dark" :content="scope.row.description" placement="top">
|
|
|
+ <span>{{scope.row.description.slice(0,8)+'...'}}</span>
|
|
|
+ </el-tooltip>
|
|
|
+ <span v-if="scope.row.description.length<9">{{scope.row.description}}</span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="状态">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <span>
|
|
|
+ {{scope.row.status === 0?'禁用':'启用'}}
|
|
|
+ </span>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="modifierName"
|
|
|
+ label="操作人">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ prop="gmtModified"
|
|
|
+ label="操作时间"
|
|
|
+ width="180">
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column
|
|
|
+ label="操作"
|
|
|
+ width="180" fixed="right">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-button type="text" size="small" @click="editData(scope.row)">修改</el-button>
|
|
|
+ <span style="margin:0 3px;">|</span>
|
|
|
+ <el-button type="text" size="small" @click="editData(scope.row,true)">复制</el-button>
|
|
|
+ <span style="margin:0 3px;">|</span>
|
|
|
+ <el-button type="text" size="small" :class="scope.row.status === 0?'':'unvailable'" @click="showDelDialog(scope.row)">{{scope.row.status === 0?'启用':'禁用'}}</el-button>
|
|
|
+ <span style="margin:0 3px;">|</span>
|
|
|
+ <el-button type="text" size="small" class="delete" @click="showDelDialog(scope.row,1)">删除</el-button>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ <el-pagination :current-page.sync="currentPage"
|
|
|
+ @current-change="currentChange"
|
|
|
+ background
|
|
|
+ :page-size="pageSize"
|
|
|
+ :page-sizes="pageSizeArr"
|
|
|
+ @size-change="handleSizeChange"
|
|
|
+ :layout="pageLayout"
|
|
|
+ :total="total">
|
|
|
+ </el-pagination>
|
|
|
+ </div>
|
|
|
+
|
|
|
+ </div>
|
|
|
+</template>
|
|
|
+
|
|
|
+<script>
|
|
|
+ import api from '@api/zskDiagBase.js';
|
|
|
+ import config from '@api/config.js';
|
|
|
+ import utils from '@api/utils.js';
|
|
|
+
|
|
|
+ export default {
|
|
|
+ name: 'ZskDiagBase',
|
|
|
+ data: function () {
|
|
|
+ return {
|
|
|
+ list: [],
|
|
|
+ stateSelect:[
|
|
|
+ {id:1,name:'启用'},
|
|
|
+ {id:0,name:'禁用'},
|
|
|
+ ],
|
|
|
+ ruleTypeList:[],
|
|
|
+ searched: false,
|
|
|
+ filter:{
|
|
|
+ conceptName:'',
|
|
|
+ },
|
|
|
+ cacheData: {},
|
|
|
+ currentPage: 1,
|
|
|
+ pageSize: config.pageSize,
|
|
|
+ pageSizeArr:config.pageSizeArr,
|
|
|
+ pageLayout:config.pageLayout,
|
|
|
+ total: 0,
|
|
|
+ titleWidth:'1070px' //头部最小宽度
|
|
|
+ }
|
|
|
+ },
|
|
|
+ created() {
|
|
|
+ const param = this.$route.params;
|
|
|
+ if(param.currentPage){
|
|
|
+ this.inCurrentPage = param.currentPage;
|
|
|
+ this.filter = param.filter
|
|
|
+ }
|
|
|
+ this.getTypeList();
|
|
|
+ const that = this;
|
|
|
+ //返回时避免参数未赋值就获取列表
|
|
|
+ setTimeout(function(){
|
|
|
+ that.getDataList();
|
|
|
+ });
|
|
|
+ },
|
|
|
+ watch: {
|
|
|
+ 'filter': {
|
|
|
+ handler: function () {
|
|
|
+ this.searched = false;
|
|
|
+ },
|
|
|
+ deep: true
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // beforeRouteEnter(to, from, next) {
|
|
|
+ // next(vm => {
|
|
|
+ // //const pm = to.param;
|
|
|
+ // Object.assign(vm, to.params);
|
|
|
+ // vm.inCurrentPage=to.params.currentPage;
|
|
|
+ // })
|
|
|
+ // },
|
|
|
+ methods: {
|
|
|
+ getDict(){
|
|
|
+ api.zskgetDict().then((res) => {
|
|
|
+ if (res.data.code == '0') {
|
|
|
+ const data = res.data.data;
|
|
|
+ localStorage.setItem("zskDiagDicts",data['24'][0].val);
|
|
|
+ }
|
|
|
+ }).catch((error) => {
|
|
|
+ console.log(error);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ getTypeList(){
|
|
|
+ this.getDict();
|
|
|
+ api.getTypesList({planCode:'dis'}).then((res) => {
|
|
|
+ if (res.data.code == '0') {
|
|
|
+ const data = res.data.data;
|
|
|
+ localStorage.setItem("zskDiagList",JSON.stringify(data));
|
|
|
+ }
|
|
|
+ }).catch((error) => {
|
|
|
+ console.log(error);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ handleSizeChange(val){
|
|
|
+ this.pageSize = val;
|
|
|
+ this.currentPage = utils.getCurrentPage(this.currentPage, this.total, this.pageSize);
|
|
|
+ this.getDataList();
|
|
|
+ },
|
|
|
+ addRule(){
|
|
|
+ const pam = this.searched ? {
|
|
|
+ currentPage: this.currentPage,
|
|
|
+ pageSize:this.pageSize,
|
|
|
+ filter: this.filter
|
|
|
+ } : {currentPage: this.currentPage,
|
|
|
+ pageSize:this.pageSize};
|
|
|
+ this.$router.push({name: 'AddZskDiagBase', params: pam});
|
|
|
+ },
|
|
|
+ filterDatas(){
|
|
|
+ this.currentPage = 1;
|
|
|
+ this.getDataList(1);
|
|
|
+ },
|
|
|
+ getDataList(flag,isTurnPage) {
|
|
|
+ const params = this.getFilterItems(isTurnPage);
|
|
|
+ this.searched = true;
|
|
|
+ const loading = this.$loading({
|
|
|
+ lock: true,
|
|
|
+ text: 'Loading',
|
|
|
+ spinner: 'el-icon-loading',
|
|
|
+ background: 'rgba(0, 0, 0, 0.7)'
|
|
|
+ });
|
|
|
+ api.diagBasePage(params).then((res) => {
|
|
|
+ loading.close();
|
|
|
+ if (res.data.code == '0') {
|
|
|
+ const data = res.data.data;
|
|
|
+ for(let j = 0;j < data.records.length;j++){
|
|
|
+ data.records[j].condition = (data.records[j].parStatus == '1'?'启用':'禁用')
|
|
|
+ }
|
|
|
+ this.list = data.records;
|
|
|
+ if(!flag){//搜索时不缓存
|
|
|
+ this.cacheData[params.current] = data.records;
|
|
|
+ }else{
|
|
|
+ this.cacheData = {}
|
|
|
+ }
|
|
|
+ this.total = data.total;
|
|
|
+ if(this.inCurrentPage!==undefined){
|
|
|
+ this.currentPage=this.inCurrentPage;
|
|
|
+ this.inCurrentPage = undefined;
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ this.warning(res.data.msg||'获取列表数据失败');
|
|
|
+ }
|
|
|
+ }).catch((error) => {
|
|
|
+ loading.close();
|
|
|
+ console.log(error);
|
|
|
+ });
|
|
|
+ },
|
|
|
+ getFilterItems(isTurnPage) {
|
|
|
+ //翻页时筛选条件没点确定则清空
|
|
|
+ if(isTurnPage&&!this.searched){
|
|
|
+ this.clearFilter();
|
|
|
+ };
|
|
|
+ const param = {
|
|
|
+ current: this.inCurrentPage||this.currentPage,
|
|
|
+ size: this.pageSize,
|
|
|
+ description: this.filter.conceptName,
|
|
|
+ };
|
|
|
+ return param;
|
|
|
+ },
|
|
|
+ indexMethod(index) {
|
|
|
+ return ((this.currentPage - 1) * this.pageSize) + index + 1;
|
|
|
+ },
|
|
|
+ currentChange(next) {
|
|
|
+ this.currentPage = next;
|
|
|
+ /*if (this.cacheData[next]) { //如果已请求过该页数据,则使用缓存不重复请求
|
|
|
+ this.list = this.cacheData[next];
|
|
|
+ } else {*/
|
|
|
+ this.getDataList(1,true);
|
|
|
+ //}
|
|
|
+ },
|
|
|
+ warning(msg,type){
|
|
|
+ this.$message({
|
|
|
+ showClose: true,
|
|
|
+ message:msg,
|
|
|
+ type:type||'warning'
|
|
|
+ })
|
|
|
+ },
|
|
|
+ showConfirmDialog(msg,resolve){
|
|
|
+ this.$alert(msg, '提示', {
|
|
|
+ confirmButtonText: '确定',
|
|
|
+ type: 'warning'
|
|
|
+ }).then(() => {
|
|
|
+ resolve();
|
|
|
+ }).catch(() => {});
|
|
|
+ },
|
|
|
+ editData(row,isCopy){
|
|
|
+ const pam = this.searched ? {
|
|
|
+ currentPage: this.currentPage,
|
|
|
+ pageSize:this.pageSize,
|
|
|
+ filter: this.filter
|
|
|
+ } : {currentPage: this.currentPage,
|
|
|
+ pageSize:this.pageSize};
|
|
|
+ api.diagBaseGetDetail({id:row.id}).then((res) => {
|
|
|
+ if (res.data.code == '0') {
|
|
|
+ const data = res.data.data;
|
|
|
+ this.$router.push({name:'AddZskDiagBase',params:{...pam,data:{...row,klDiagnoseTypeVO:data},copy:isCopy}});
|
|
|
+ }
|
|
|
+ }).catch((error) => {
|
|
|
+ this.warning('获取详情失败,请重试')
|
|
|
+ });
|
|
|
+ },
|
|
|
+ showDelDialog(row,isDelete){
|
|
|
+ const params = {
|
|
|
+ id:row.id
|
|
|
+ };
|
|
|
+ const txt=row.status===0?'重新启用':'禁用';
|
|
|
+ const warningTxt = isDelete?'是否删除该诊断依据?可能对现有系统造成影响':'是否'+txt+'该诊断依据?';
|
|
|
+ const handleFn = isDelete?api.diagBaseDelete:(row.status===0?api.diagBaseApply:api.diagBaseStop);
|
|
|
+ this.showConfirmDialog(warningTxt,()=>{
|
|
|
+ handleFn(params).then((res)=>{
|
|
|
+ if(res.data.code=='0'){
|
|
|
+ if(!this.searched){
|
|
|
+ //未点确认时清空搜索条件
|
|
|
+ this.clearFilter();
|
|
|
+ }
|
|
|
+ if(isDelete){ //恢复成功后跳转到筛选条件的首页
|
|
|
+ this.currentPage = 1;
|
|
|
+ } else {
|
|
|
+ if (this.filter.status!==''&&this.list.length === 1){
|
|
|
+ //有启用状态筛选条件且当前页只有最后一条数据删除时,删除成功后跳转到前一页
|
|
|
+ this.currentPage = this.currentPage===1?1:this.currentPage-1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.warning(res.data.msg||'操作成功','success');
|
|
|
+ this.getDataList();
|
|
|
+ }else{
|
|
|
+ this.warning(res.data.msg);
|
|
|
+ }
|
|
|
+ }).catch((error)=>{
|
|
|
+ this.warning(error);
|
|
|
+ })
|
|
|
+ });
|
|
|
+ },
|
|
|
+ clearFilter(){
|
|
|
+ this.filter={
|
|
|
+ conceptName:'',
|
|
|
+ };
|
|
|
+ },
|
|
|
+ update(){
|
|
|
+ const loading = this.$loading({
|
|
|
+ lock: true,
|
|
|
+ text: 'Loading',
|
|
|
+ spinner: 'el-icon-loading',
|
|
|
+ background: 'rgba(0, 0, 0, 0.7)'
|
|
|
+ });
|
|
|
+ api.updateDiagBase().then((res) => {
|
|
|
+ loading.close();
|
|
|
+ if (res.data.code == '0') {
|
|
|
+ this.warning('更新成功','success');
|
|
|
+ this.getDataList();
|
|
|
+ }
|
|
|
+ }).catch((error) => {
|
|
|
+ loading.close();
|
|
|
+ this.warning('更新失败,请重试')
|
|
|
+ });
|
|
|
+ },
|
|
|
+ }
|
|
|
+ }
|
|
|
+</script>
|
|
|
+
|
|
|
+<style lang="less" scoped>
|
|
|
+ @import "../../less/admin.less";
|
|
|
+ /deep/ .container.knowledgeTitle {
|
|
|
+ height: 80px;
|
|
|
+ min-width: 970px!important;
|
|
|
+ }
|
|
|
+ .demo-form-inline{
|
|
|
+ margin: 30px 20px 0 0;
|
|
|
+ }
|
|
|
+ /deep/ .contents.knowledgeContents {
|
|
|
+ padding: 104px 20px 0;
|
|
|
+ }
|
|
|
+ .delete{
|
|
|
+ color: red;
|
|
|
+ }
|
|
|
+ .review{
|
|
|
+ color: #22ccc8;
|
|
|
+ }
|
|
|
+ .el-table .cell{
|
|
|
+ overflow: hidden;
|
|
|
+ white-space: nowrap;
|
|
|
+ }
|
|
|
+ #upFile{
|
|
|
+ display: none !important;
|
|
|
+ }
|
|
|
+ .unvailable{
|
|
|
+ color: #FE7D3D;
|
|
|
+ &:hover{
|
|
|
+ color: #f19061;
|
|
|
+ }
|
|
|
+ }
|
|
|
+</style>
|