Pārlūkot izejas kodu

技术术语维护 添加导入excel和下载excel模板功能

reaper 4 gadi atpakaļ
vecāks
revīzija
78052423e3
5 mainītis faili ar 443 papildinājumiem un 276 dzēšanām
  1. 60 58
      src/api/config.js
  2. 33 13
      src/api/knowledgeTree.js
  3. 131 128
      src/api/utils.js
  4. 216 72
      src/components/basicKnow/BasicTermsMaintenance.vue
  5. 3 5
      vue.config.js

+ 60 - 58
src/api/config.js

@@ -4,7 +4,7 @@ const testUrl = ''
 export default {
   host: 'http://192.168.2.121:5050',
   // imgHost: 'http://192.168.2.121:82',      //富文本编辑器图片回传地址
-  imgHost:'http://192.168.2.241:82',      //富文本编辑器图片回传地址
+  imgHost: 'http://192.168.2.241:82',      //富文本编辑器图片回传地址
   delayTime: 500,
   urls: {
     /* 登录注册相关接口 */
@@ -405,15 +405,15 @@ export default {
     'precDrugDataMatch': '/api/cdssman/tran/drugConfig/precDataMatch',
     'dataDrugVerify': '/api/cdssman/tran/drugConfig/dataVerify',
 
-      'getScalePageCDSS': '/api/cdssman/tran/scaleConfig/getPage',   //量表列表
-      'scaleIsExistRecordCDSS': '/api/cdssman/tran/scaleConfig/isExistRecord',   //量表-映射关系是否已存在
-      'saveOrUpdateScaleRecordCDSS': '/api/cdssman/tran/scaleConfig/saveOrUpdateRecord',   //量表-保存或修改映射关系
-      'deleteScaleRecordCDSS': '/api/cdssman/tran/scaleConfig/deleteRecord',   //量表-删除映射关系
-      'exportScaleRecordCDSS': '/api/cdssman/tran/scaleConfig/exportExcel',   //量表-数据导出
-      'importScaleRecordCDSS': '/api/cdssman/tran/scaleConfig/importExcel',   //量表-数据导入
-      'exportScaleModuleCDSS': '/api/cdssman/tran/scaleConfig/exportExcelModule',
-      'precScaleDataMatch': '/api/cdssman/tran/scaleConfig/precDataMatch',
-      'dataScaleVerify': '/api/cdssman/tran/scaleConfig/dataVerify',
+    'getScalePageCDSS': '/api/cdssman/tran/scaleConfig/getPage',   //量表列表
+    'scaleIsExistRecordCDSS': '/api/cdssman/tran/scaleConfig/isExistRecord',   //量表-映射关系是否已存在
+    'saveOrUpdateScaleRecordCDSS': '/api/cdssman/tran/scaleConfig/saveOrUpdateRecord',   //量表-保存或修改映射关系
+    'deleteScaleRecordCDSS': '/api/cdssman/tran/scaleConfig/deleteRecord',   //量表-删除映射关系
+    'exportScaleRecordCDSS': '/api/cdssman/tran/scaleConfig/exportExcel',   //量表-数据导出
+    'importScaleRecordCDSS': '/api/cdssman/tran/scaleConfig/importExcel',   //量表-数据导入
+    'exportScaleModuleCDSS': '/api/cdssman/tran/scaleConfig/exportExcelModule',
+    'precScaleDataMatch': '/api/cdssman/tran/scaleConfig/precDataMatch',
+    'dataScaleVerify': '/api/cdssman/tran/scaleConfig/dataVerify',
 
     'getOperationPageCDSS': '/api/cdssman/tran/operationConfig/getPage',   //手术/操作列表
     'operationIsExistRecordCDSS': '/api/cdssman/tran/operationConfig/isExistRecord',   //手术/操作-映射关系是否已存在
@@ -444,7 +444,7 @@ export default {
     'exportDeptModuleCDSS': '/api/cdssman/tran/deptConfig/exportExcelModule',   //科室-数据导入模板导出
     'precDeptDataMatch': '/api/cdssman/tran/deptConfig/precDataMatch',
     'dataDeptVerify': '/api/cdssman/tran/deptConfig/dataVerify',
-    
+
     'getNursePage': '/api/cdssman/tran/nurseConfig/getPage',   //护理列表
     'nurseIsExistRecord': '/api/cdssman/tran/nurseConfig/isExistRecord',   //护理-映射关系是否已存在
     'saveOrUpdateRecord': '/api/cdssman/tran/nurseConfig/saveOrUpdateRecord',   //护理列表添加
@@ -528,11 +528,11 @@ export default {
     'getKlmEnumsDataCDSS': '/api/cdssman/getKlmEnumsData',   //枚举数据获取
 
 
-    'getCaseResultList': '/api/cdssman/test/rule/getCaseResultList', 
-    'billRuleTest': '/api/cdssman/test/rule/billRuleTest',   
-    'getResultBillPage': '/api/cdssman/test/rule/getResultBillPage', 
-    'exportRuleExcel': '/api/cdssman/test/rule/exportExcel', 
-    'ruleAllTest': '/api/cdssman/test/rule/ruleTest', 
+    'getCaseResultList': '/api/cdssman/test/rule/getCaseResultList',
+    'billRuleTest': '/api/cdssman/test/rule/billRuleTest',
+    'getResultBillPage': '/api/cdssman/test/rule/getResultBillPage',
+    'exportRuleExcel': '/api/cdssman/test/rule/exportExcel',
+    'ruleAllTest': '/api/cdssman/test/rule/ruleTest',
     'getResultCriticalPage': '/api/cdssman/test/rule/getResultCriticalPage',   //危急值测试列表
     'criticalRuleTest': '/api/cdssman/test/rule/criticalRuleTest',   //危急值规则测试
     'getResultHighriskDrugPage': '/api/cdssman/test/rule/getResultHighriskDrugPage',   //高危药品测试列表
@@ -542,7 +542,7 @@ export default {
     'getResultOtherPacsPage': '/api/cdssman/test/rule/getResultOtherPacsPage',   //其他值提醒(辅检)测试列表
     'getResultOtherTransfusionPage': '/api/cdssman/test/rule/getResultOtherTransfusionPage',   //其他值提醒(输血)测试列表
     'otherRuleTest': '/api/cdssman/test/rule/otherRuleTest',   //其他值提醒规则测试
-    
+
     'billExportExcel': '/api/cdssman/test/rule/billExportExcel',   //开单合理性规则测试结果导出
     'criticalExportExcel': '/api/cdssman/test/rule/criticalExportExcel',   //危急值规则测试结果导出
     'highriskDrugExportExcel': '/api/cdssman/test/rule/highriskDrugExportExcel',   //高危药品规则测试结果导出
@@ -561,52 +561,54 @@ export default {
     'getRunningStatus': '/api/cdssman/test/running/getStatus',   //查看测试用例运行状态
     'getRunningStatusByHospitalId': '/api/cdssman/test/running/getStatusByHospitalId',   //查拉面所有测试用例运行状态
     'updateRunningStatus': '/api/cdssman/test/running/updateStatus',   //更新测试用例运行状态
-      //知识库规则维护
-      'zskRuleList':'/api/cdssman/klRule/getKlRuleInfoPage',//规则列表
-      'zskAddRule':'/api/cdssman//klRule/saveRuleInfo',//添加规则
-      'zskActiveRule':'/api/cdssman/klRule/startRuleInfo',//启用规则
-      'zskDisableRule':'/api/cdssman/klRule/disableRuleInfo',//禁用规则
-      'zskDelRule':'/api/cdssman/klRule/clearRuleInfo',//删除规则
-      'zskRuleDetail':'/api/cdssman/klRule/getByIdRuleInfo',//规则详情
-      'zskTypeList':'/api/cdssman/klRulePlan/getMenu',//类型列表
-      'zskSearchConcept':'/api/cdssman/klDisease/searchConcept',//知识库搜索术语
-      'zskUpdateAll':'/api/cdssman/cache/clearRuleAll',//更新数据
-      'zskgetDict':'/api/cdssman/kl/dictionary/getDictionarys',//
+    //知识库规则维护
+    'zskRuleList': '/api/cdssman/klRule/getKlRuleInfoPage',//规则列表
+    'zskAddRule': '/api/cdssman//klRule/saveRuleInfo',//添加规则
+    'zskActiveRule': '/api/cdssman/klRule/startRuleInfo',//启用规则
+    'zskDisableRule': '/api/cdssman/klRule/disableRuleInfo',//禁用规则
+    'zskDelRule': '/api/cdssman/klRule/clearRuleInfo',//删除规则
+    'zskRuleDetail': '/api/cdssman/klRule/getByIdRuleInfo',//规则详情
+    'zskTypeList': '/api/cdssman/klRulePlan/getMenu',//类型列表
+    'zskSearchConcept': '/api/cdssman/klDisease/searchConcept',//知识库搜索术语
+    'zskUpdateAll': '/api/cdssman/cache/clearRuleAll',//更新数据
+    'zskgetDict': '/api/cdssman/kl/dictionary/getDictionarys',//
     //知识库树形图
-    'getTree':'/api/cdssman/multContact/getTree',//获取当前type数据
-    'searchTreeItem':'/api/cdssman/multContact/getAllForRelation',//检索树元素
-    'addTreeRelation':'/api/cdssman/multContact/addRelation',//保存树元素
+    'getTree': '/api/cdssman/multContact/getTree',//获取当前type数据
+    'searchTreeItem': '/api/cdssman/multContact/getAllForRelation',//检索树元素
+    'addTreeRelation': '/api/cdssman/multContact/addRelation',//保存树元素
     //知识库基础维护
-    'getBaseConceptInfoPage':'/api/cdssman/graph/klConcept/getConceptInfoPage',
-    'startConcept':'/api/cdssman/graph/klConcept/startConcept',
-    'disableConcept':'/api/cdssman/graph/klConcept/disableConcept',
-    'baseTypeGetPage':'/api/cdssman/kl/lexicon/getPage',
-    'baseRelationTypeGetPage':'/api/cdssman/kl/lexiconRelationship/getPage',
-    'clearStandRuleDrug':'/api/cdssman/cache/clearStandRuleDrug',
-    'saveBaseConceptInfo':'/api/cdssman/graph/klConcept/saveConceptInfo',
-    'getBaseConceptAll':'/api/cdssman/graph/klConcept/getConceptAll',
-    'clearConceptInfo':'/api/cdssman/graph/klConcept/clearConceptInfo',
+    'getBaseConceptInfoPage': '/api/cdssman/graph/klConcept/getConceptInfoPage',
+    'startConcept': '/api/cdssman/graph/klConcept/startConcept',
+    'disableConcept': '/api/cdssman/graph/klConcept/disableConcept',
+    'baseTypeGetPage': '/api/cdssman/kl/lexicon/getPage',
+    'baseRelationTypeGetPage': '/api/cdssman/kl/lexiconRelationship/getPage',
+    'clearStandRuleDrug': '/api/cdssman/cache/clearStandRuleDrug',
+    'saveBaseConceptInfo': '/api/cdssman/graph/klConcept/saveConceptInfo',
+    'getBaseConceptAll': '/api/cdssman/graph/klConcept/getConceptAll',
+    'clearConceptInfo': '/api/cdssman/graph/klConcept/clearConceptInfo',
     //疾病相关维护
-    'getDiseasePage':'/api/cdssman/klDisease/getDiseasePage',
-    'diseaseDelete':'/api/cdssman/klDisease/delete',
-    'getBaseDetail':'/api/cdssman/klDisease/getDetail',
-    'searchConcept':'/api/cdssman/klDisease/searchConcept',
-    'findDisName':'/api/cdssman/klDisease/findDisName',
-    'diseaseBaseSave':'/api/cdssman/klDisease/save',
+    'getDiseasePage': '/api/cdssman/klDisease/getDiseasePage',
+    'diseaseDelete': '/api/cdssman/klDisease/delete',
+    'getBaseDetail': '/api/cdssman/klDisease/getDetail',
+    'searchConcept': '/api/cdssman/klDisease/searchConcept',
+    'findDisName': '/api/cdssman/klDisease/findDisName',
+    'diseaseBaseSave': '/api/cdssman/klDisease/save',
+    'exportExcelTemplates': '/api/cdssman/importConcept/exportExcelTemplates',
+    'exportTermExcel': '/api/cdssman/importConcept/exportTermExcel',
     //静态知识术语
-    'staticBaseKnowledge':'/api/cdssman/kl/conceptInfo/getPage',
-    'changeBaseStatus':'/api/cdssman/kl/conceptInfo/changeStatus',
-    'getBaseRecordById':'/api/cdssman/kl/conceptInfo/getRecordById',
-    'saveBaseOrUpdateRecord':'/api/cdssman/kl/conceptInfo/saveOrUpdateRecord',
-    'staticKnowledgeBaseInfo':'/api/cdssman/kl/conceptInfo/staticKnowledgeIndexWithoutInfo',
+    'staticBaseKnowledge': '/api/cdssman/kl/conceptInfo/getPage',
+    'changeBaseStatus': '/api/cdssman/kl/conceptInfo/changeStatus',
+    'getBaseRecordById': '/api/cdssman/kl/conceptInfo/getRecordById',
+    'saveBaseOrUpdateRecord': '/api/cdssman/kl/conceptInfo/saveOrUpdateRecord',
+    'staticKnowledgeBaseInfo': '/api/cdssman/kl/conceptInfo/staticKnowledgeIndexWithoutInfo',
     //规则测试相关
-    'allRuleTest':'/api/cdssman/test/rule/allRuleTest',
-    'autoGetCaseResultList':'/api/cdssman/test/rule/getCaseResultList',
-    'getDroplistData':'/api/cdssman/test/rule/getDroplistData',
-    'getResultRulePage':'/api/cdssman/test/rule/getResultRulePage',
-    'ruleExportExcel':'/api/cdssman/test/rule/ruleExportExcel',
-    'autoRuleTest':'/api/cdssman/test/rule/ruleTest',
-    'clearDrug':'/api/cdssman/cache/clearDrug',
+    'allRuleTest': '/api/cdssman/test/rule/allRuleTest',
+    'autoGetCaseResultList': '/api/cdssman/test/rule/getCaseResultList',
+    'getDroplistData': '/api/cdssman/test/rule/getDroplistData',
+    'getResultRulePage': '/api/cdssman/test/rule/getResultRulePage',
+    'ruleExportExcel': '/api/cdssman/test/rule/ruleExportExcel',
+    'autoRuleTest': '/api/cdssman/test/rule/ruleTest',
+    'clearDrug': '/api/cdssman/cache/clearDrug',
     //药品维护
     'getPageList': '/api/cdssman/klDrugRegister/getPage',
     'getsearchDrug': '/api/cdssman/klDrugRegister/searchDrug',

+ 33 - 13
src/api/knowledgeTree.js

@@ -76,13 +76,13 @@ export default {
     return axios.post(urls.allRuleTest, param);
   },
   autoExportExcel(param) {
-      return axios({
-          method:'post',
-          url:urls.exportRuleExcel,
-          data: param,
-          contentType: "application/vnd.ms-excel" ,
-          responseType: 'blob'//必须添加,否则会乱码
-      })
+    return axios({
+      method: 'post',
+      url: urls.exportRuleExcel,
+      data: param,
+      contentType: "application/vnd.ms-excel",
+      responseType: 'blob'//必须添加,否则会乱码
+    })
   },
   autoGetCaseResultList(param) {
     return axios.post(urls.autoGetCaseResultList, param);
@@ -93,14 +93,14 @@ export default {
   getResultRulePage(param) {
     return axios.post(urls.getResultRulePage, param);
   },
-  ruleExportExcel(param) {     
+  ruleExportExcel(param) {
     return axios({
-      method:'post',
-      url:urls.ruleExportExcel,
+      method: 'post',
+      url: urls.ruleExportExcel,
       data: param,
-      contentType: "application/vnd.ms-excel" ,
+      contentType: "application/vnd.ms-excel",
       responseType: 'blob'//必须添加,否则会乱码
-  })
+    })
   },
   autoRuleTest(param) {
     return axios.post(urls.autoRuleTest, param);
@@ -126,4 +126,24 @@ export default {
   findDisName(param) {
     return axios.post(urls.findDisName, param);
   },
-};
+  exportExcelTemplates(param) {
+    return axios({
+      method: 'post',
+      url: urls.exportExcelTemplates,
+      data: param,
+      contentType: "application/vnd.ms-excel",
+      responseType: 'blob'//必须添加,否则会乱码
+    })
+  },
+  // /importConcept/exportTermExcel
+  exportTermExcel(param) {
+    // return axios.post(urls.exportTermExcel, param);
+    return axios({
+      method: 'post',
+      url: urls.exportTermExcel,
+      data: param,
+      contentType: "multipart/form-data",
+      responseType: 'blob'//必须添加,否则会乱码
+    })
+  }
+};

+ 131 - 128
src/api/utils.js

@@ -1,34 +1,34 @@
 import $ from 'jquery';
 
-function getWindowInnerHeight(){
-  if(window.innerHeight!=undefined){
+function getWindowInnerHeight() {
+  if (window.innerHeight != undefined) {
     return window.innerHeight;
-  }else{
+  } else {
     let by = document.body, ele = document.documentElement;
-    return Math.min(by.clientHeight,ele.clientHeight);
+    return Math.min(by.clientHeight, ele.clientHeight);
   }
 };
-function getWindowInnerWidth(){
+function getWindowInnerWidth() {
   let width = window.innerWidth || document.body.clientWidth || document.documentElement.clientWidth
   return width
 };
-function getPageCoordinate(event,stic){//获取鼠标点击的位置
+function getPageCoordinate(event, stic) {//获取鼠标点击的位置
   let e = event || window.event;
   var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
   var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
   var x = e.pageX || (e.clientX + scrollX);
-  var y = (e.pageY+(stic?25:0)) || (e.clientY + scrollY + (stic?25:0));//弹窗位置偏下25
+  var y = (e.pageY + (stic ? 25 : 0)) || (e.clientY + scrollY + (stic ? 25 : 0));//弹窗位置偏下25
   let obj = {
-    boxLeft : x ,
-    boxTop : y+18
+    boxLeft: x,
+    boxTop: y + 18
   }
   return obj;
 }
 
- /**
- * @param {拖动元素/清除拖动事件监听} type add:添加事件监听  del:移除事件监听
- * @param {展开元素id} addDom 
- */
+/**
+* @param {拖动元素/清除拖动事件监听} type add:添加事件监听  del:移除事件监听
+* @param {展开元素id} addDom 
+*/
 let width = '',//屏幕宽度
   height = '', //屏幕高度
   dragWrapper = '',//拖拽元素
@@ -45,10 +45,10 @@ let width = '',//屏幕宽度
  * @param {可拖动的区域} dragModalTitle 
  */
 function handleMove(event) {
-  let wrap = $("#"+dragWrapper); //被拖拽的元素
-  let dragDes = $("#"+addPart); //展開区域
+  let wrap = $("#" + dragWrapper); //被拖拽的元素
+  let dragDes = $("#" + addPart); //展開区域
   let page = getPageCoordinate(event, '0');//获取鼠标位置
-  let maxDragX = 0,dragDesWidth = 0;
+  let maxDragX = 0, dragDesWidth = 0;
   let wrapHeight = wrap[0].offsetHeight;//直接用.height()获取的高度不准确
   let wrapWidth = wrap[0].offsetWidth;
   let maxDragY = height - wrapHeight; //最大可拖拽y方向距离
@@ -85,15 +85,15 @@ function handleMove(event) {
       marginLeft: 0 + 'px',
       marginTop: 0 + 'px',
       top: dragY + 'px',
-      bottom:'auto',
-      right:'inherit',
+      bottom: 'auto',
+      right: 'inherit',
     })
   }
 }
 /**
  * 鼠标弹起弹窗不在跟随鼠标移动
  */
-function handleUp(){
+function handleUp() {
   isDrag = false;
   return
 }
@@ -114,26 +114,26 @@ export default {
       }
     }
   },
-  tranformDate(time,str,flag='-'){
-    if(!time){
+  tranformDate(time, str, flag = '-') {
+    if (!time) {
       return time;
     }
-    const year=time.getFullYear();
-    const month = time.getMonth()+1;
+    const year = time.getFullYear();
+    const month = time.getMonth() + 1;
     const day = time.getDate();
-    return year+flag+(month>9?month:'0'+month)+flag+(day>9?day:'0'+day)+str;
+    return year + flag + (month > 9 ? month : '0' + month) + flag + (day > 9 ? day : '0' + day) + str;
   },
   //获取两个时间间隔天数
   getTimeRangeDay(timeArr) {
-    if(!timeArr||timeArr.length==0){
+    if (!timeArr || timeArr.length == 0) {
       return null;
     }
     return (new Date(timeArr[1]) - new Date(timeArr[0])) / (1000 * 60 * 60 * 24);
   },
   //导出接口返回流下载
   downloadExportedData(data, fileName) {
-    var blob = new Blob([data], 
-      {type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8'}
+    var blob = new Blob([data],
+      { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8' }
     ); //application/vnd.openxmlformats-officedocument.spreadsheetml.sheet这里表示xlsx类型
     var downloadElement = document.createElement('a');
     var href = window.URL.createObjectURL(blob); //创建下载的链接
@@ -148,14 +148,14 @@ export default {
   // pswReg: /^(?![0-9]+$)(?![a-zA-Z]+$)/,
   pswReg: /^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z\W_]{6,16}$/,//与后台保持一致
   phoneReg: new RegExp(/^((13|14|15|16|17|18|19)\d{9})$/),
-  url:/[a-zA-z]+:\/\/[^\s]*/,
-	getDateStr(string,str){
-	  var str_before = string.split(str)[0];
-	  var str_after = string.split(str)[1];
-	},
-  exportCondition(time){
+  url: /[a-zA-z]+:\/\/[^\s]*/,
+  getDateStr(string, str) {
+    var str_before = string.split(str)[0];
+    var str_after = string.split(str)[1];
+  },
+  exportCondition(time) {
     const rangeDay = this.getTimeRangeDay(time);
-    if (!time||time.length==0) {
+    if (!time || time.length == 0) {
       return '请先选择导出时间';
     }
     if (rangeDay > 30) {
@@ -171,18 +171,18 @@ export default {
    * @param {des} 1数組元素是对象
    * 
    */
-  filterArr(arr,val,type,des){  //数组剔除指定元素 
-    if(type == 1){
-      if(des){
+  filterArr(arr, val, type, des) {  //数组剔除指定元素 
+    if (type == 1) {
+      if (des) {
         return arr.filter(item => item.id != val)  //判断id
-      }else{
+      } else {
         return arr.filter(item => item != val)    //判断值
       }
-    }else{
+    } else {
       let tmp = arr.filter(item => JSON.stringify(item) == JSON.stringify(val))   //判读是否存在
-      if(JSON.stringify(tmp) == '[]'){
+      if (JSON.stringify(tmp) == '[]') {
         return false;
-      }else{
+      } else {
         return true;
       }
     }
@@ -194,10 +194,10 @@ export default {
    * @param {tmpArrAdd} 既往史自动生成的组合标签的id存储 
    * @param {type} 填写单类型 
    */
-  dataRecombination(dataArr,type,tmpArrAdd){
+  dataRecombination(dataArr, type, tmpArrAdd) {
     // console.log(11111,tmpArrAdd,dataArr)
     let tmpArr = [];
-    for(let i = 0;i < dataArr.length;i++){
+    for (let i = 0; i < dataArr.length; i++) {
       let tmpData = dataArr[i];
       let mapping = {
         "sonQuestion": "",
@@ -208,23 +208,23 @@ export default {
         "symptomType": 0,           //0:默认值 1:主症状特有 2:伴随症状特有
       }
       let sonQuestionMap = {     //目前只在既往史中用到,同层数据置空
-          "id": "",
-          "questionMappings": []
+        "id": "",
+        "questionMappings": []
       }
-  
-      if(type == 6 && tmpData.length > 0){//既往史
-        let sonMappingArr=[]; 
-        for(let j = 0; j < tmpData.length;j++){        //多个标签
+
+      if (type == 6 && tmpData.length > 0) {//既往史
+        let sonMappingArr = [];
+        for (let j = 0; j < tmpData.length; j++) {        //多个标签
           let sonMappingObj = {};
-          if(i == 0){
+          if (i == 0) {
             mapping.formPosition = 1;
             mapping.exclusionType = 1;
             mapping.sonQuestion = tmpData[j];
-          }else if(i == 1){
+          } else if (i == 1) {
             mapping.formPosition = 0;
             mapping.exclusionType = 0;
             mapping.sonQuestion = tmpData[j];
-          }else{
+          } else {
             mapping.formPosition = 0;
             mapping.exclusionType = 0;
             mapping.sonQuestion = tmpArrAdd[i][0] || ''; //既往史新增标签的id
@@ -234,26 +234,26 @@ export default {
             mapping.questionMappingSon = sonQuestionMap;
           }
           sonMappingArr.push(sonMappingObj);         //[{sonQuestion:18},{sonQuestion:19}]
-          
+
         }
         tmpArr.push(mapping)
-      }else if(type == 2 && tmpData.length > 0){//杂音
-        if(i == 0){
+      } else if (type == 2 && tmpData.length > 0) {//杂音
+        if (i == 0) {
           mapping.formPosition = 1;
           mapping.exclusionType = 1;
-        }else{
+        } else {
           mapping.formPosition = 0;
           mapping.exclusionType = 0;
         }
         mapping.sonQuestion = tmpData[0];    //{sonQuestion:18}
         tmpArr.push(mapping)
-      }else if (type == 4 || type == 3 || type == 7) { //横铺展开(如咳嗽)
+      } else if (type == 4 || type == 3 || type == 7) { //横铺展开(如咳嗽)
         mapping.formPosition = 0;
         mapping.exclusionType = 0;
         mapping.symptomType = dataArr[i].symptomType
-        if(dataArr[i].type){
-          if(dataArr[i].type === 'input') {
-            if(dataArr[i].text) { //过滤掉输入框未输入内容项
+        if (dataArr[i].type) {
+          if (dataArr[i].type === 'input') {
+            if (dataArr[i].text) { //过滤掉输入框未输入内容项
               mapping.text = dataArr[i].text
               tmpArr.push(mapping)
             }
@@ -262,7 +262,7 @@ export default {
             tmpArr.push(mapping)
           }
         }
-      } else if(type == 11) {    //推送症状类型(添加症状)
+      } else if (type == 11) {    //推送症状类型(添加症状)
         mapping.formPosition = 0;
         mapping.exclusionType = 0;
         mapping.sonQuestion = dataArr[i].id
@@ -274,22 +274,22 @@ export default {
   /**
    * 单选数据转换提交
    * **/
-  simpleOptionData(data){
+  simpleOptionData(data) {
     let arr = [];
-    data.map((it,i)=>{
+    data.map((it, i) => {
       let code = '';
       let abnormal = 0
-      if(it.isError){
+      if (it.isError) {
         abnormal = 1;
       }
-      if(it.isNone){
+      if (it.isNone) {
         code = '2';
       }
-      if(it.isBan){
+      if (it.isBan) {
         code = '1';
       }
-      if(it.name){
-        arr.push({name:it.name,defaultSelect:it.defaultSelect?'1':'0',code,abnormal,remark:'单选项-'+it.name});
+      if (it.name) {
+        arr.push({ name: it.name, defaultSelect: it.defaultSelect ? '1' : '0', code, abnormal, remark: '单选项-' + it.name });
       }
     });
     return arr;
@@ -298,7 +298,7 @@ export default {
    *将提交的参数转换成对应的组件form中的key
    *
    */
-  transformKeys(data, tagFlag){   //tagFlag:独立标签还是标签组 (2是标签组)
+  transformKeys(data, tagFlag) {   //tagFlag:独立标签还是标签组 (2是标签组)
     const maps = {
       "controlType": 'region2',                            //控件类型(0:默认值 1:下拉单选 2:下拉多选 6:文本框 7:数字键盘文本框 99:联合推送)
       // "tagType": 'region2',(这个注释掉,不要解开了!!!!)
@@ -311,45 +311,45 @@ export default {
       "sexType": 'region7',             //1:男,2:女,3:通用
       "ageBegin": 'region8',       		 //最小年龄
       "ageEnd": 'region9',              //最大年龄
-      "copyType":'region10',          //是否复制主标签  
-      "showAdd":'region11',           //是否复制当前模块
+      "copyType": 'region10',          //是否复制主标签  
+      "showAdd": 'region11',           //是否复制当前模块
       "itemType": 'region12',
       "disType": 'region13',
-      "labelPrefix":'prefix',                                 //前缀
-      "labelSuffix":'suffix',                                 //后缀
-      "maxValue":'maxNormalVal',                                 //前缀
-      "minValue":'minNormalVal',                                 //后缀
+      "labelPrefix": 'prefix',                                 //前缀
+      "labelSuffix": 'suffix',                                 //后缀
+      "maxValue": 'maxNormalVal',                                 //前缀
+      "minValue": 'minNormalVal',                                 //后缀
       "specFlag": 'specFlag', //标记状态(0:没有标记,1:主诉高亮,2:诱因记录)
-      "selFlag":'selFlag',
+      "selFlag": 'selFlag',
     };
     if (tagFlag == 2) {
       maps["tagType"] = 'region2'
     }
     let obj = {};
-    for(let it in maps){
-      obj[maps[it]] = typeof data[it]=='number'?data[it]+'':data[it];
+    for (let it in maps) {
+      obj[maps[it]] = typeof data[it] == 'number' ? data[it] + '' : data[it];
     }
     return obj;
   },
   /**
    * 模板数据提交转化函数
    */
-  orderTemplateData(data){
+  orderTemplateData(data) {
     let tmpArr = [];
-    for(let i =0;i<data.length;i++){
-      let obj={
+    for (let i = 0; i < data.length; i++) {
+      let obj = {
         "flag": '',
         "questionId": '',
         "relationModule": '',
         "text": ""
       };
-      if(data[i].type == 'sub'){      //这是子模板
+      if (data[i].type == 'sub') {      //这是子模板
         obj.relationModule = parseInt(data[i].id)
-      }else if(data[i].type == 'input'){     //这个是输入框文字
-        if(data[i].text){   //去掉空输入框
+      } else if (data[i].type == 'input') {     //这个是输入框文字
+        if (data[i].text) {   //去掉空输入框
           obj.text = data[i].text
         }
-      }else{    //这个是标签
+      } else {    //这个是标签
         obj.questionId = data[i].id
       }
       obj.flag = data[i].flag || ''
@@ -362,12 +362,12 @@ export default {
   * row:Object
   * orderName:编号字段名称,默认orderNo
    */
-  getInitRow(row,n,orderName){
+  getInitRow(row, n, orderName) {
     let arr = [];
     let obj = {};
-    for(let i=0;i<n;i++){
-      obj = Object.assign({},row);
-      obj[orderName||'orderNo'] = i;
+    for (let i = 0; i < n; i++) {
+      obj = Object.assign({}, row);
+      obj[orderName || 'orderNo'] = i;
       arr.push(obj);
     }
     return arr;
@@ -376,45 +376,45 @@ export default {
    * 预问诊-字段转换
    *
    * **/
-  transPretreatKeys(org,isDpt){
+  transPretreatKeys(org, isDpt) {
     let maps = {
-      name:'region4',
-      description:'region5',
-      itemType:'region12',
-      sexType:'region7',
-      ageBegin:'region8',
-      ageEnd:'region9',
-      tagName:'region3',
+      name: 'region4',
+      description: 'region5',
+      itemType: 'region12',
+      sexType: 'region7',
+      ageBegin: 'region8',
+      ageEnd: 'region9',
+      tagName: 'region3',
       //tagType:isDpt?'':'region2',
       //controlType:isDpt?'region2':'',
-      type:'region1',
-      url:'region13',
-      specFlag:'specFlag',
+      type: 'region1',
+      url: 'region13',
+      specFlag: 'specFlag',
       required: 'required',
-      explains:'explains',
-      flag:'flag'
+      explains: 'explains',
+      flag: 'flag'
     };
-    isDpt?maps.controlType = 'region2':maps.tagType = 'region2';
+    isDpt ? maps.controlType = 'region2' : maps.tagType = 'region2';
     let obj = {};
-    for(let i in org){
-      if(maps[i]){
-        obj[maps[i]] = org[i]+''==='null'?'':org[i]+'';
+    for (let i in org) {
+      if (maps[i]) {
+        obj[maps[i]] = org[i] + '' === 'null' ? '' : org[i] + '';
       }
     }
     return obj;
   },
   //获取图片名称
-  getImgName(url){
+  getImgName(url) {
     const arr = url.split("/");
-    return arr[arr.length-1];
+    return arr[arr.length - 1];
   },
- 
-  dragBox(dragWrap,dragTop,type,addDom,img) {
-    let drag = $("#"+dragTop); //拖拽区域
-    let wrap = $("#"+dragWrap); //被拖拽的元素
-    width = getWindowInnerWidth(); 
+
+  dragBox(dragWrap, dragTop, type, addDom, img) {
+    let drag = $("#" + dragTop); //拖拽区域
+    let wrap = $("#" + dragWrap); //被拖拽的元素
+    width = getWindowInnerWidth();
     height = getWindowInnerHeight();
-    addPart = addDom||null;
+    addPart = addDom || null;
     dragWrapper = dragWrap;
     if (type === 'del') {
       $(document).off('mousemove', handleMove)
@@ -422,9 +422,9 @@ export default {
     } else {
       drag.on('mousedown', function (event) {
         let lenHeight = wrap.height()
-        if(img){
-          $("#preImg").css("height",(lenHeight)+'px')
-          $("#dragModalWrap").css("height",(lenHeight)+'px')
+        if (img) {
+          $("#preImg").css("height", (lenHeight) + 'px')
+          $("#dragModalWrap").css("height", (lenHeight) + 'px')
         }
         let page = getPageCoordinate(event, '0');
         mouseX = page.boxLeft - wrap.offset().left; //鼠标到拖拽元素的左边界的距离
@@ -436,17 +436,20 @@ export default {
     }
   },
   getCurrentPage(currentChange, total, pageSize) {
-    const currentPage =  currentChange > Math.ceil(total/pageSize) ? Math.ceil(total/pageSize) : currentChange
+    const currentPage = currentChange > Math.ceil(total / pageSize) ? Math.ceil(total / pageSize) : currentChange
     return currentPage;
   },
-  formatObj(data,key){
-        let obj={};
-        data.map((it)=>{
-            obj[it[key]]=it.subMenuList;
-        });
-        return obj;
-    },
-    delNullObj(arr){
-      return arr.filter((it)=>it!==null);
-    }
+  formatObj(data, key) {
+    let obj = {};
+    data.map((it) => {
+      obj[it[key]] = it.subMenuList;
+    });
+    return obj;
+  },
+  delNullObj(arr) {
+    return arr.filter((it) => it !== null);
+  },
+  importExcel(){
+    
+  }
 }

+ 216 - 72
src/components/basicKnow/BasicTermsMaintenance.vue

@@ -3,10 +3,20 @@
     <crumbs title="基础术语维护" minWidth="995px" class="knowledgeTitle">
       <el-form :inline="true" class="demo-form-inline">
         <el-form-item label="医学标准术语:">
-          <el-input size="mini" v-model="filter.term" placeholder="请输入术语"></el-input>
+          <el-input
+            size="mini"
+            v-model="filter.term"
+            placeholder="请输入术语"
+          ></el-input>
         </el-form-item>
         <el-form-item label="术语类型:">
-          <el-select v-model="filter.type" clearable filterable placeholder="请选择" size="mini">
+          <el-select
+            v-model="filter.type"
+            clearable
+            filterable
+            placeholder="请选择"
+            size="mini"
+          >
             <el-option
               v-for="item in typeList"
               :key="item.id"
@@ -16,10 +26,19 @@
           </el-select>
         </el-form-item>
         <el-form-item label="同义词:">
-          <el-input size="mini" v-model="filter.libName" placeholder="输入同义词"></el-input>
+          <el-input
+            size="mini"
+            v-model="filter.libName"
+            placeholder="输入同义词"
+          ></el-input>
         </el-form-item>
         <el-form-item label="状态:">
-          <el-select v-model="filter.isState" clearable placeholder="请选择" size="mini">
+          <el-select
+            v-model="filter.isState"
+            clearable
+            placeholder="请选择"
+            size="mini"
+          >
             <el-option
               v-for="item in stateSelect"
               :key="item.id"
@@ -34,36 +53,86 @@
       </el-form>
       <el-form class="secLine">
         <el-form-item>
-          <el-button size="mini" type="warning" @click="addMedicalName" style="margin:0 10px">+ 新增术语</el-button>
+          <span @click="handleDownLoad" class="link_to_downLoad"
+            >导入模板下载</span
+          >
+          <el-button
+            :disabled="uploadLodding"
+            @click="handleUploadBtn"
+            size="mini"
+            >{{ uploadLodding ? "导入中..." : "导入" }}</el-button
+          >
+          <input
+            style="display: none"
+            type="file"
+            name="uploadfile "
+            id="upFileInp"
+            @change="uploadFile($event)"
+          />
+          <el-button
+            size="mini"
+            type="warning"
+            @click="addMedicalName"
+            style="margin: 0 10px"
+            >+ 新增术语</el-button
+          >
           <el-button size="mini" @click="reloadLib">更新数据</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="libName" label="医学标准术语" show-overflow-tooltip></el-table-column>
+        <el-table-column
+          type="index"
+          :index="indexMethod"
+          label="编号"
+          width="60"
+        ></el-table-column>
+        <el-table-column
+          prop="libName"
+          label="医学标准术语"
+          show-overflow-tooltip
+        ></el-table-column>
         <el-table-column prop="typeName" label="术语类型"></el-table-column>
-        <el-table-column prop="synonymName" label="同义词" show-overflow-tooltip></el-table-column>
+        <el-table-column
+          prop="synonymName"
+          label="同义词"
+          show-overflow-tooltip
+        ></el-table-column>
         <el-table-column label="状态" width="100">
           <template slot-scope="scope">
-            <span>{{scope.row.isDeleted == 'N'?'启用':'禁用'}}</span>
+            <span>{{ scope.row.isDeleted == "N" ? "启用" : "禁用" }}</span>
           </template>
         </el-table-column>
         <el-table-column prop="modifierName" label="操作人"></el-table-column>
-        <el-table-column prop="gmtModified" label="操作时间" :show-overflow-tooltip="true"></el-table-column>
+        <el-table-column
+          prop="gmtModified"
+          label="操作时间"
+          :show-overflow-tooltip="true"
+        ></el-table-column>
         <el-table-column label="操作" width="160">
           <template slot-scope="scope">
-            <el-button type="text" size="small" @click="toEditProduct(scope.row)">修改</el-button>
-            <span style="margin:0 3px;">|</span>
-            <el-button type="text" size="small" @click="toEditProduct(scope.row,true)">复制</el-button>
-            <span style="margin:0 3px;">|</span>
             <el-button
               type="text"
               size="small"
-              :class="scope.row.isDeleted == 'N'?'delete':'review'"
+              @click="toEditProduct(scope.row)"
+              >修改</el-button
+            >
+            <span style="margin: 0 3px">|</span>
+            <el-button
+              type="text"
+              size="small"
+              @click="toEditProduct(scope.row, true)"
+              >复制</el-button
+            >
+            <span style="margin: 0 3px">|</span>
+            <el-button
+              type="text"
+              size="small"
+              :class="scope.row.isDeleted == 'N' ? 'delete' : 'review'"
               @click="showDelDialog(scope.row)"
-            >{{scope.row.isDeleted == 'Y'?'启用':'禁用'}}</el-button>
+              >{{ scope.row.isDeleted == "Y" ? "启用" : "禁用" }}</el-button
+            >
           </template>
         </el-table-column>
       </el-table>
@@ -82,18 +151,18 @@
 </template>
 
 <script>
-import api from '@api/knowledgeTree.js';
-import config from '@api/config.js';
-import utils from '@api/utils.js';
+import api from "@api/knowledgeTree.js";
+import config from "@api/config.js";
+import utils from "@api/utils.js";
 
 export default {
-  name: 'BasicTermsMaintenance',
-  data: function() {
+  name: "BasicTermsMaintenance",
+  data: function () {
     return {
       list: [],
       stateSelect: [
-        { id: 'N', name: '启用' },
-        { id: 'Y', name: '禁用' }
+        { id: "N", name: "启用" },
+        { id: "Y", name: "禁用" }
       ],
       // isState:'',
       cacheData: {}, //因为删除和恢复要及时更新,所以不做缓存
@@ -104,12 +173,13 @@ export default {
       total: 0,
       searched: false,
       filter: {
-        term: '',
-        type: '',
-        libName: ''
+        term: "",
+        type: "",
+        libName: ""
       },
       typeList: [],
-      reloadFlag: true
+      reloadFlag: true,
+      uploadLodding: false
     };
   },
   created() {
@@ -129,7 +199,7 @@ export default {
   },
   watch: {
     filter: {
-      handler: function() {
+      handler: function () {
         this.searched = false;
       },
       deep: true
@@ -143,6 +213,71 @@ export default {
   //   });
   // },
   methods: {
+    handleUploadBtn() {
+      let inp = document.getElementById("upFileInp");
+      inp.click();
+    },
+    // 导入数据
+    uploadFile(e) {
+      let that = this;
+      this.uploadLodding = true;
+      let fileInfo = e.target.files[0];
+      e.preventDefault();
+      let formData = new FormData();
+      formData.append("termfile", fileInfo);
+      this.uploadText = "导入中...";
+      api
+        .exportTermExcel(formData)
+        .then((res) => {
+          let r = new FileReader();
+          r.onload = function () {
+            const exsetCode = this.result.indexOf("code") !== -1;
+            if (!exsetCode) {
+              utils.downloadExportedData(res.data, "基础术语导入模板.xls");
+              that.getDataList();
+            } else {
+              const code = JSON.parse(this.result);
+              if (code.code === "00000001") {
+                that
+                  .$alert(`数据存在异常,导入失败,请修改后再试`, "提示1", {
+                    confirmButtonText: "确定",
+                    type: "warning"
+                  })
+                  .then(() => {})
+                  .catch(() => {});
+              } else {
+                that
+                  .$alert(`${code.msg}`, "提示2", {
+                    confirmButtonText: "确定",
+                    type: "warning"
+                  })
+                  .then(() => {})
+                  .catch(() => {});
+              }
+            }
+            setTimeout(() => {
+              that.uploadLodding = false;
+            }, 300);
+          };
+          r.readAsText(res.data);
+        })
+        .catch((error) => {
+          console.error(error);
+          that.uploadLodding = false;
+        });
+      //解决上传相同文件不触发change
+      let inp = document.getElementById("upFileInp");
+      inp.value = "";
+    },
+    handleDownLoad() {
+      api.exportExcelTemplates().then((res) => {
+        if (res.status === 200) {
+          setTimeout(() => {
+            utils.downloadExportedData(res.data, "基础术语导入模板.xls");
+          }, 1500);
+        }
+      });
+    },
     handleSizeChange(val) {
       this.pageSize = val;
       this.currentPage = utils.getCurrentPage(
@@ -155,19 +290,19 @@ export default {
     reloadLib() {
       const loading = this.$loading({
         lock: true,
-        text: 'Loading',
-        spinner: 'el-icon-loading',
-        background: 'rgba(0, 0, 0, 0.7)'
+        text: "Loading",
+        spinner: "el-icon-loading",
+        background: "rgba(0, 0, 0, 0.7)"
       });
       if (this.reloadFlag) {
         this.reloadFlag = false;
-        api.clearStandRuleDrug().then(res => {
+        api.clearStandRuleDrug().then((res) => {
           this.getDataList();
           if (res.data.code == 0) {
             this.reloadFlag = true;
-            this.warning('更新成功', 'success');
+            this.warning("更新成功", "success");
           } else {
-            this.warning(res.data.msg || '更新失败,请重试');
+            this.warning(res.data.msg || "更新失败,请重试");
           }
         });
       }
@@ -180,7 +315,7 @@ export default {
             filter: this.filter
           }
         : { currentPage: this.currentPage, pageSize: this.pageSize };
-      this.$router.push({ name: 'AddTerm', params: pam });
+      this.$router.push({ name: "AddTerm", params: pam });
     },
     toEditProduct(row, copy) {
       const pam = this.searched
@@ -191,9 +326,13 @@ export default {
           }
         : { currentPage: this.currentPage, pageSize: this.pageSize };
       this.$router.push({
-        name: 'AddTerm',
+        name: "AddTerm",
         // params: {info:row}
-        params: Object.assign(pam, { id: row.conceptId,libType:row.libType, copy: copy })
+        params: Object.assign(pam, {
+          id: row.conceptId,
+          libType: row.libType,
+          copy: copy
+        })
       });
     },
     filterDatas() {
@@ -205,19 +344,19 @@ export default {
       this.searched = true;
       const loading = this.$loading({
         lock: true,
-        text: 'Loading',
-        spinner: 'el-icon-loading',
-        background: 'rgba(0, 0, 0, 0.7)'
+        text: "Loading",
+        spinner: "el-icon-loading",
+        background: "rgba(0, 0, 0, 0.7)"
       });
       api
         .getBaseConceptInfoPage(param)
-        .then(res => {
+        .then((res) => {
           loading.close();
-          if (res.data.code == '0') {
+          if (res.data.code == "0") {
             const data = res.data.data;
             const templis = data.records;
             for (let i = 0; i < templis.length; i++) {
-              templis[i].isDeleted = templis[i].status == '1' ? 'N' : 'Y';
+              templis[i].isDeleted = templis[i].status == "1" ? "N" : "Y";
             }
             this.list = templis;
             // this.cacheData[param.current] = data.records;
@@ -228,14 +367,14 @@ export default {
             }
           }
         })
-        .catch(error => {
+        .catch((error) => {
           console.log(error);
         });
     },
     getTypeList() {
       api
-        .baseTypeGetPage({ name: '', size: 1000 })
-        .then(res => {
+        .baseTypeGetPage({ name: "", size: 1000 })
+        .then((res) => {
           const data = res.data;
           if (data.code == 0) {
             this.typeList = data.data.records || [];
@@ -243,7 +382,7 @@ export default {
             console.log(res.msg);
           }
         })
-        .catch(error => {
+        .catch((error) => {
           console.log(error);
         });
     },
@@ -259,11 +398,11 @@ export default {
         libName: this.filter.term.trim(),
         libType: this.filter.type,
         status:
-          this.filter.isState == 'N'
-            ? '1'
-            : this.filter.isState == 'Y'
-            ? '0'
-            : '',
+          this.filter.isState == "N"
+            ? "1"
+            : this.filter.isState == "Y"
+            ? "0"
+            : "",
         synonymName: this.filter.libName.trim(),
         current: this.inCurrentPage || this.currentPage,
         size: this.pageSize,
@@ -286,13 +425,13 @@ export default {
       this.$message({
         showClose: true,
         message: msg,
-        type: type || 'warning'
+        type: type || "warning"
       });
     },
     showConfirmDialog(msg, resolve) {
-      this.$alert(msg, '提示', {
-        confirmButtonText: '确定',
-        type: 'warning'
+      this.$alert(msg, "提示", {
+        confirmButtonText: "确定",
+        type: "warning"
       })
         .then(() => {
           resolve();
@@ -308,46 +447,46 @@ export default {
       const param = {
         conceptId: item.conceptId
       };
-      let url = item.isDeleted === 'N' ? 'disableConcept' : 'startConcept';
+      let url = item.isDeleted === "N" ? "disableConcept" : "startConcept";
       let waringTxt =
-        item.isDeleted === 'N'
-          ? '是否禁用该标准术语?'
-          : '是否重新启用该条数据?';
+        item.isDeleted === "N"
+          ? "是否禁用该标准术语?"
+          : "是否重新启用该条数据?";
       this.showConfirmDialog(waringTxt, () => {
         api[url](param)
-          .then(res => {
-            if (res.data.code == '0') {
+          .then((res) => {
+            if (res.data.code == "0") {
               if (!this.searched) {
                 //未点确认时清空搜索条件
                 this.clearFilter();
               }
-              if (item.isDeleted !== 'N') {
+              if (item.isDeleted !== "N") {
                 //恢复成功后跳转到筛选条件的首页
                 this.currentPage = 1;
               } else {
-                if (this.filter.isState !== '' && this.list.length === 1) {
+                if (this.filter.isState !== "" && this.list.length === 1) {
                   //有启用状态筛选条件且当前页只有最后一条数据删除时,删除成功后跳转到前一页
                   this.currentPage =
                     this.currentPage === 1 ? 1 : this.currentPage - 1;
                 }
               }
-              this.warning(res.data.msg || '操作成功', 'success');
+              this.warning(res.data.msg || "操作成功", "success");
               this.getDataList();
             } else {
               this.warning(res.data.msg);
             }
           })
-          .catch(error => {
+          .catch((error) => {
             this.warning(error);
           });
       });
     },
     clearFilter() {
       this.filter = {
-        term: '',
-        type: '',
-        libName: '',
-        isState: ''
+        term: "",
+        type: "",
+        libName: "",
+        isState: ""
       };
     }
   }
@@ -355,7 +494,7 @@ export default {
 </script>
 
 <style lang="less" scoped>
-@import '../../less/admin.less';
+@import "../../less/admin.less";
 /deep/ .container.knowledgeTitle {
   height: 80px;
 }
@@ -386,7 +525,12 @@ export default {
   overflow: hidden;
   white-space: nowrap;
 }
-#upFile {
+#upFileInp {
   display: none !important;
 }
+.link_to_downLoad {
+  color: #02a7f0;
+  cursor: pointer;
+  margin-right: 10px;
+}
 </style>

+ 3 - 5
vue.config.js

@@ -1,10 +1,8 @@
 const path = require('path');
-<<<<<<< HEAD
-// const proxy_path = 'http://192.168.2.236:80';
-=======
+
+const proxy_path = 'http://192.168.2.236:80';
 // const proxy_path = 'http://192.168.2.236:5050';
->>>>>>> DZBLFAPZEDIT
-const proxy_path = 'http://192.168.2.241:88';
+// const proxy_path = 'http://192.168.2.241:88';
 // const proxy_path = 'http://192.168.2.236:88';
 // const proxy_path = 'http://192.168.3.101:5050';
 // const proxy_path = 'http://192.168.3.117:5050';//周铁刚