morphone1995 4 jaren geleden
bovenliggende
commit
54b7e15aa8

+ 3 - 3
src/components/common/HomePage.vue

@@ -2,7 +2,7 @@
     <el-container :class="getRole">
         <el-aside>
             <div class="logo">
-                <p v-if="userLoginDTO&&userLoginDTO.type=='0'"><b>朗通医院后台管理系统</b></p>
+                <p v-if="userLoginDTO&&userLoginDTO.type=='0'"><b>医院知识库后台管理系统</b></p>
             </div>
             <lt-menu v-if="menuWrappers&&menuWrappers.length" v-bind:role="getRole" v-bind:data="menuWrappers"></lt-menu>
         </el-aside>
@@ -112,11 +112,11 @@
             { validator: validatePass1, trigger: 'change',required:true }
           ],
           pass: [
-            { min: 6, max: 20, message: '密码要求6-20位,由字母、数字和符号组成', trigger: 'blur' },
+            { min: 6, max: 20, message: '密码要求6-20位,可输入字母、数字或符号', trigger: 'blur' },
             { validator: validatePass, trigger: 'blur',required:true }
           ],
           checkPass: [
-            { min: 6, max: 20, message: '密码要求6-20位,由字母、数字和符号组成', trigger: 'blur' },
+            { min: 6, max: 20, message: '密码要求6-20位,可输入字母、数字或符号', trigger: 'blur' },
             { validator: validatePass2, trigger: 'blur',required:true }
           ]
         }

File diff suppressed because it is too large
+ 628 - 549
src/components/icss/AddMedicinePrompt.vue


+ 346 - 289
src/components/icss/MedicinePrompt.vue

@@ -1,331 +1,388 @@
 <template>
-    <div>
-        <crumbs title="医学术语静态知识维护">
-            <el-form :inline="true" class="demo-form-inline">
-                <el-form-item label="术语分类:">
-                    <el-select size="mini" v-model="filter.libType" placeholder="请选择" clearable>
-                        <el-option v-for="item in typeList" :label="item.name" :value="item.key" :key="item.key"></el-option>
-                    </el-select>
-                </el-form-item>
-                <el-form-item label="标准术语:">
-                    <el-input size="mini" maxlength="50" v-model="filter.term" placeholder="请输入" clearable></el-input>
-                </el-form-item>
-                <el-form-item label="状态:">
-                    <el-select size="mini" v-model="filter.status" placeholder="请选择" clearable>
-                        <el-option v-for="item in stateList" :label="item.name" :value="item.id" :key="item.id"></el-option>
-                    </el-select>
-                </el-form-item>
-                <el-form-item class="dododo">
-                    <el-button size="mini" @click="filterDatas">检索</el-button>
-                    <el-button size="mini" type="warning" style="margin:0 10px" @click="addMedicalPrompt">添加静态知识</el-button>
-                </el-form-item>
-            </el-form>
-        </crumbs>
-        <div class="contents">
-            <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="gmtModified"
-                        label="操作时间"
-                        width="180"
-                        :show-overflow-tooltip="true">
-                </el-table-column>
-                <el-table-column
-                        prop="name"
-                        label="标准术语">
-                </el-table-column>
-                <el-table-column
-                        prop="typeName"
-                        label="术语分类"
-                        width="120">
-                </el-table-column>
-                <el-table-column
-                        prop="title"
-                        label="内容概览"
-                        width="240">
-                </el-table-column>
-                <!-- <el-table-column
+  <div>
+    <crumbs title="医学术语静态知识维护">
+      <el-form :inline="true" class="demo-form-inline">
+        <el-form-item label="术语分类:">
+          <el-select size="mini" v-model="filter.libType" placeholder="请选择" clearable>
+            <el-option
+              v-for="item in typeList"
+              :label="item.name"
+              :value="item.key"
+              :key="item.key"
+            ></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item label="标准术语:">
+          <el-input size="mini" maxlength="50" v-model="filter.term" placeholder="请输入" clearable></el-input>
+        </el-form-item>
+        <el-form-item label="状态:">
+          <el-select size="mini" v-model="filter.status" placeholder="请选择" clearable>
+            <el-option v-for="item in stateList" :label="item.name" :value="item.id" :key="item.id"></el-option>
+          </el-select>
+        </el-form-item>
+        <el-form-item class="dododo">
+          <el-button size="mini" @click="filterDatas">检索</el-button>
+          <el-button
+            size="mini"
+            type="warning"
+            style="margin:0 10px"
+            @click="addMedicalPrompt"
+          >添加静态知识</el-button>
+        </el-form-item>
+      </el-form>
+    </crumbs>
+    <div class="contents">
+      <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="gmtModified" label="操作时间" width="180" :show-overflow-tooltip="true"></el-table-column>
+        <el-table-column prop="name" label="标准术语"></el-table-column>
+        <el-table-column prop="typeName" label="术语分类" width="120"></el-table-column>
+        <el-table-column prop="title" label="内容概览" width="240"></el-table-column>
+        <!-- <el-table-column
                         label="状态">
                     <template slot-scope="scope">
                         <span v-if="scope.row.isDeleted=='N'">启用中</span>
                         <span v-if="scope.row.isDeleted=='Y'" class="delete">已删除</span>
                     </template>
-                </el-table-column> -->
-                <!-- <el-table-column
+        </el-table-column>-->
+        <!-- <el-table-column
                         prop="modifier"
                         label="操作人"
                         width="80">
-                </el-table-column> -->
-                <el-table-column
-                        label="操作" width="140">
-                    <template slot-scope="scope">
-                        <el-button v-if="scope.row.isDeleted=='Y'" type="text" size="small" class="is-disabled">修改</el-button>
-                        <el-button v-if="scope.row.isDeleted=='N'" type="text" size="small" @click="toEditProduct(scope.row)">修改</el-button>
-                        <!-- <span style="margin:0 3px;">|</span>
+        </el-table-column>-->
+        <el-table-column label="操作" width="140">
+          <template slot-scope="scope">
+            <el-button
+              v-if="scope.row.isDeleted=='Y'"
+              type="text"
+              size="small"
+              class="is-disabled"
+            >修改</el-button>
+            <el-button
+              v-if="scope.row.isDeleted=='N'"
+              type="text"
+              size="small"
+              @click="toEditProduct(scope.row)"
+            >修改</el-button>
+            <!-- <span style="margin:0 3px;">|</span>
                         <el-button v-if="scope.row.isDeleted=='Y' || scope.row.typeId === 82 || scope.row.typeId === 83" type="text" size="small" class="is-disabled">复制</el-button>
-                        <el-button v-if="scope.row.isDeleted=='N'&&scope.row.typeId !== 82 && scope.row.typeId !== 83" type="text" size="small" @click="toCopyProduct(scope.row)">复制</el-button> -->
-                        <span style="margin:0 3px;">|</span>
-                        <el-button v-if="scope.row.isDeleted=='Y'" type="text" size="small" @click="showReuseDialog(scope.row)">启用</el-button>
-                        <el-button v-if="scope.row.isDeleted=='N'" type="text" size="small" class="delete" @click="showDelDialog(scope.row)">禁用</el-button>
-                    </template>
-                </el-table-column>
-            </el-table>
-            <el-pagination :current-page.sync="currentPage"
-                           @current-change="currentChange"
-                           background
-                           :page-size="pageSize"
-                           class="pagepage pagepage"
-                           :page-sizes="pageSizeArr"
-                           @size-change="handleSizeChange"
-                           :layout="pageLayout"
-                           :total="total">
-            </el-pagination>
-        </div>
-
+            <el-button v-if="scope.row.isDeleted=='N'&&scope.row.typeId !== 82 && scope.row.typeId !== 83" type="text" size="small" @click="toCopyProduct(scope.row)">复制</el-button>-->
+            <span style="margin:0 3px;">|</span>
+            <el-button
+              v-if="scope.row.isDeleted=='Y'"
+              type="text"
+              size="small"
+              @click="showReuseDialog(scope.row)"
+            >启用</el-button>
+            <el-button
+              v-if="scope.row.isDeleted=='N'"
+              type="text"
+              size="small"
+              class="delete"
+              @click="showDelDialog(scope.row)"
+            >禁用</el-button>
+          </template>
+        </el-table-column>
+      </el-table>
+      <el-pagination
+        :current-page.sync="currentPage"
+        @current-change="currentChange"
+        background
+        :page-size="pageSize"
+        class="pagepage pagepage"
+        :page-sizes="pageSizeArr"
+        @size-change="handleSizeChange"
+        :layout="pageLayout"
+        :total="total"
+      ></el-pagination>
     </div>
+  </div>
 </template>
 
 <script>
-  import api from '@api/icss.js';
-  import config from '@api/config.js';
-  import utils from '@api/utils.js';
+import api from '@api/icss.js';
+import config from '@api/config.js';
+import utils from '@api/utils.js';
 
-  export default {
-    name: 'MedicinePrompt',
-    data: function () {
-      return {
-        list: [],
-        cacheData: {},
-        currentPage: 1,
-        pageSize: config.pageSize,
-        pageSizeArr:config.pageSizeArr,
-        pageLayout:config.pageLayout,
-        total: 0,
-        linkIn:[],
-        pays:[],
-        typeList:[],
-        stateList:[
-          {id:'N',name:'启用'},
-          {id:'Y',name:'禁用'},
-        ],
-        searched: false,
-        filter: {
-          term: '',
-          title:'',
-          status:'',
-          libType:'',
-        }
+export default {
+  name: 'MedicinePrompt',
+  data: function() {
+    return {
+      list: [],
+      cacheData: {},
+      currentPage: 1,
+      pageSize: config.pageSize,
+      pageSizeArr: config.pageSizeArr,
+      pageLayout: config.pageLayout,
+      total: 0,
+      linkIn: [],
+      pays: [],
+      typeList: [],
+      stateList: [
+        { id: 'N', name: '启用' },
+        { id: 'Y', name: '禁用' }
+      ],
+      searched: false,
+      filter: {
+        term: '',
+        title: '',
+        status: '',
+        libType: ''
       }
+    };
+  },
+  created() {
+    const that = this;
+    //返回时避免参数未赋值就获取列表
+    setTimeout(function() {
+      that.getDataList();
+    });
+    this.typeList = config.emData;
+  },
+  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: {
+    handleSizeChange(val) {
+      this.pageSize = val;
+      this.currentPage = utils.getCurrentPage(
+        this.currentPage,
+        this.total,
+        this.pageSize
+      );
+      this.getDataList();
+    },
+    addMedicalPrompt() {
+      const pam = this.searched
+        ? {
+            currentPage: this.currentPage,
+            pageSize: this.pageSize,
+            filter: this.filter
+          }
+        : { currentPage: this.currentPage, pageSize: this.pageSize };
+      this.$router.push({ name: 'AddMedicinePrompt', params: pam });
     },
-    created() {
-      const that = this;
-      //返回时避免参数未赋值就获取列表
-      setTimeout(function(){
-        that.getDataList();
+    toEditProduct(row) {
+      const pam = this.searched
+        ? {
+            currentPage: this.currentPage,
+            pageSize: this.pageSize,
+            filter: this.filter
+          }
+        : { currentPage: this.currentPage, pageSize: this.pageSize };
+      this.$router.push({
+        name: 'AddMedicinePrompt',
+        params: Object.assign(pam, { data: row, isEdit: true })
       });
-      this.typeList = config.emData;
     },
-    watch: {
-      'filter': {
-        handler: function () {
-          this.searched = false;
-        },
-        deep: true
-      }
+    toCopyProduct(row) {
+      const pam = this.searched
+        ? {
+            currentPage: this.currentPage,
+            pageSize: this.pageSize,
+            filter: this.filter
+          }
+        : { currentPage: this.currentPage, pageSize: this.pageSize };
+      this.$router.push({
+        name: 'AddMedicinePrompt',
+        params: Object.assign(pam, { data: row, isCopy: true })
+      });
     },
-    beforeRouteEnter(to, from, next){
-      next(vm => {
-        //const pm = to.param;
-        Object.assign(vm,to.params);
-        vm.inCurrentPage=to.params.currentPage;
-      })
+    filterDatas() {
+      this.currentPage = 1;
+      this.getDataList();
     },
-    methods: {
-      handleSizeChange(val){
-        this.pageSize = val;
-        this.currentPage = utils.getCurrentPage(this.currentPage, this.total, this.pageSize);
-        this.getDataList();
-      },
-      addMedicalPrompt(){
-        const pam = this.searched ? {
-          currentPage: this.currentPage,
-          pageSize:this.pageSize,
-          filter: this.filter
-        } : {currentPage: this.currentPage,
-          pageSize:this.pageSize};
-        this.$router.push({name:'AddMedicinePrompt',
-          params:pam});
-      },
-      toEditProduct(row){
-        const pam = this.searched ? {
-          currentPage: this.currentPage,
-          pageSize:this.pageSize,
-          filter: this.filter
-        } : {currentPage: this.currentPage,
-          pageSize:this.pageSize};
-        this.$router.push({
-          name:'AddMedicinePrompt',
-          params: Object.assign(pam, {data:row,isEdit:true})
-        })
-      },
-      toCopyProduct(row){
-        const pam = this.searched ? {
-          currentPage: this.currentPage,
-          pageSize:this.pageSize,
-          filter: this.filter
-        } : {currentPage: this.currentPage,
-          pageSize:this.pageSize};
-        this.$router.push({
-          name:'AddMedicinePrompt',
-          params: Object.assign(pam, {data:row,isCopy:true})
-        })
-      },
-      filterDatas(){
-        this.currentPage = 1;
-        this.getDataList();
-      },
-      getDataList(isTurnPage) {
-        const param = 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.getConceptKnowledgeList(param).then((res) => {
-          loading.close()
+    getDataList(isTurnPage) {
+      const param = 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
+        .getConceptKnowledgeList(param)
+        .then(res => {
+          loading.close();
           if (res.data.code == '0') {
             const data = res.data.data;
             // 类型:1-诊断、2-药品、3-检验套餐、4-检验明细、5-检查、6-手术和操作
-            let temp = ['','诊断','药品','检验套餐','检验明细','检查','手术和操作']
-            this.list = data.records = data.records.filter((item)=>{
-              item.typeName = temp[item.type]
-              return item
+            let temp = [
+              '',
+              '诊断',
+              '药品',
+              '检验套餐',
+              '检验明细',
+              '检查',
+              '手术和操作'
+            ];
+            this.list = data.records = data.records.filter(item => {
+              item.typeName = temp[item.type];
+              return item;
             });
             this.cacheData[param.current] = data.records;
             this.total = data.total;
-            if(this.inCurrentPage!==undefined){
-              this.currentPage=this.inCurrentPage;
+            if (this.inCurrentPage !== undefined) {
+              this.currentPage = this.inCurrentPage;
               this.inCurrentPage = undefined;
             }
           }
-        }).catch((error) => {
+        })
+        .catch(error => {
           console.log(error);
         });
-      },
-      clearFilter(){
-        this.filter={
-          term: '',
-          title:'',
-          status:'',
-          libType:'',
-        };
-      },
-      getFilterItems(isTurnPage) {
-        //翻页时筛选条件没点确定则清空
-        if(isTurnPage&&!this.searched){
-          this.clearFilter();
-        };
-        const param = {
-          name:this.filter.term.trim(),
-          title:this.filter.title,
-          current: this.inCurrentPage||this.currentPage,
-          size: this.pageSize,
-          isDeleted:this.filter.status,
-          type:this.filter.libType,
-        };
-        return param;
-      },
-      indexMethod(index) {
-        return ((this.currentPage - 1) * this.pageSize) + index + 1;
-      },
-      currentChange(next) {
-        this.currentPage = next;
-        /*if (this.cacheData[next]) {       //如果已请求过该页数据,则使用缓存不重复请求
+    },
+    clearFilter() {
+      this.filter = {
+        term: '',
+        title: '',
+        status: '',
+        libType: ''
+      };
+    },
+    getFilterItems(isTurnPage) {
+      //翻页时筛选条件没点确定则清空
+      if (isTurnPage && !this.searched) {
+        this.clearFilter();
+      }
+      const param = {
+        name: this.filter.term.trim(),
+        title: this.filter.title,
+        current: this.inCurrentPage || this.currentPage,
+        size: this.pageSize,
+        isDeleted: this.filter.status,
+        type: this.filter.libType
+      };
+      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(true);
-        //}
-      },
-      warning(msg,type){
-        this.$message({
-          showClose: true,
-          message:msg,
-          type:type||'warning'
-        })
-      },
-      showConfirmDialog(msg,resolve){
-        this.$confirm(msg, '提示', {
-          confirmButtonText: '确定',
-          cancelButtonText: '取消',
-          cancelButtonClass:'cancel',
-          type: 'warning'
-        }).then(() => {
+      this.getDataList(true);
+      //}
+    },
+    warning(msg, type) {
+      this.$message({
+        showClose: true,
+        message: msg,
+        type: type || 'warning'
+      });
+    },
+    showConfirmDialog(msg, resolve, type) {
+      let showInfo = '启用';
+      let btnNameClass = 'confirmBtn';
+      if (type === 'Del') {
+        showInfo = '禁用';
+        btnNameClass = 'delBtn';       
+      }
+      this.$confirm(msg, '提示', {
+        confirmButtonText: showInfo,
+        cancelButtonText: '取消',
+        cancelButtonClass: 'cancelBtn',
+        confirmButtonClass: btnNameClass,
+        type: 'warning'
+      })
+        .then(() => {
           resolve();
-        }).catch(() => {});
-      },
-      showDelDialog(row){
-        this.showConfirmDialog('确定禁用该静态知识?',()=>{
-          api.delConceptInfo({id:row.id,isDeleted:'Y'}).then((res)=>{
-            if(res.data.code=='0'){
-              if(!this.searched){
-                //未点确认时清空搜索条件
-                this.clearFilter();
+        })
+        .catch(() => {});
+    },
+    showDelDialog(row) {
+      this.showConfirmDialog(
+        '确定禁用该静态知识?',
+        () => {
+          api
+            .delConceptInfo({ id: row.id, isDeleted: 'Y' })
+            .then(res => {
+              if (res.data.code == '0') {
+                if (!this.searched) {
+                  //未点确认时清空搜索条件
+                  this.clearFilter();
+                }
+                this.warning(res.data.msg || '操作成功', 'success');
+                this.getDataList();
+              } else {
+                this.warning(res.data.msg);
               }
-              this.warning(res.data.msg||'操作成功','success');
-              this.getDataList();
-            }else{
-              this.warning(res.data.msg);
-            }
-          }).catch((error)=>{
-            this.warning(error);
-          })
-        });
-      },
-      showReuseDialog(row){
-        this.showConfirmDialog('确定启用该静态知识?',()=>{
-          api.delConceptInfo({id:row.id,isDeleted:"N"}).then((res)=>{
-            if(res.data.code=='0'){
-              this.currentPage = 1;         //恢复数据跳转到筛选条件下首页
-              this.warning(res.data.msg||'操作成功','success');
-              this.getDataList();
-            }else{
-              this.warning(res.data.msg);
-            }
-          }).catch((error)=>{
-            this.warning(error);
-          })
-        });
-      }
+            })
+            .catch(error => {
+              this.warning(error);
+            });
+        },
+        'Del'
+      );
+    },
+    showReuseDialog(row) {
+      this.showConfirmDialog(
+        '确定启用该静态知识?',
+        () => {
+          api
+            .delConceptInfo({ id: row.id, isDeleted: 'N' })
+            .then(res => {
+              if (res.data.code == '0') {
+                this.currentPage = 1; //恢复数据跳转到筛选条件下首页
+                this.warning(res.data.msg || '操作成功', 'success');
+                this.getDataList();
+              } else {
+                this.warning(res.data.msg);
+              }
+            })
+            .catch(error => {
+              this.warning(error);
+            });
+        },
+        'Reuse'
+      );
     }
   }
+};
 </script>
 
 <style lang="less">
-    @import "../../less/admin.less";
-    .status-span{
-        font-size: 12px;
-        margin-right:10px;
-        color: unset;
-    }
-    .dododo {
-      margin-top: 1px !important
-    }
-    .pagepage {
-      .el-input.el-input--mini.el-input--suffix input {
-        height: 28px;
-        line-height: 28px;
-      }
-      .el-pagination__sizes {
-        margin-right: 20px !important;
-      }
-    }
+@import '../../less/admin.less';
+.status-span {
+  font-size: 12px;
+  margin-right: 10px;
+  color: unset;
+}
+.dododo {
+  margin-top: 1px !important;
+}
+.pagepage {
+  .el-input.el-input--mini.el-input--suffix input {
+    height: 28px;
+    line-height: 28px;
+  }
+  .el-pagination__sizes {
+    margin-right: 20px !important;
+  }
+}
+.el-message-box {
+  /deep/ .cancelBtn {
+    background-color: #d7d7d7; 
+    border-color: transparent;
+  }
+  /deep/ .delBtn {
+    background-color: #ff545b !important;
+    border-color: transparent !important;
+  }
+}
 </style>

+ 6 - 0
src/components/icss/plan/Plan.vue

@@ -377,4 +377,10 @@ export default {
     color: #dad7d7;
   }
 }
+
+.el-table__row{
+  /deep/ .is-disabled{
+    border-color: transparent !important
+  }
+}
 </style>

+ 2 - 4
src/components/login/Login.vue

@@ -138,13 +138,11 @@ export default {
           }
         ],
         pwd: [
-          { min: 6, max: 20, message: '密码要求6-20位,由字母、数字和符号组成', trigger: 'change' },
           {
             required: true,
             validator: validatePass2,
             trigger: 'change'
-          },
-          // { min: 6, max: 20, message: '密码要求6-20位,由字母、数字和符号组成', trigger: 'change' }
+          }
         ]
       }
     };
@@ -229,7 +227,7 @@ export default {
                     trigger: 'change'
                   });
                   this.$refs.ruleFormReg.validateField('pwd'); // 手动校验
-                  this.rules2.pwd = this.rules2.pwd.slice(0, 2); // 删除校验
+                  this.rules2.pwd = this.rules2.pwd.slice(0, 1); // 删除校验
                 } else if (res.data.code == '0') {
                   const token = JSON.stringify(res.data.data);
                   localStorage.setItem('token', token);