Browse Source

Merge branch 'uiUpdate0507' into test

reaper 4 years ago
parent
commit
07421d3b49

+ 286 - 241
src/components/common/HomePage.vue

@@ -1,286 +1,331 @@
 <template>
-    <el-container :class="getRole">
-        <el-aside>
-            <div class="logo">
-                <p v-if="userLoginDTO&&userLoginDTO.type=='1'"><b>朗通后台管理系统</b></p>
-                <p v-if="userLoginDTO&&userLoginDTO.type=='0'"><b>DiagbotCloud</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>
-            <div class="version">
-                <p>
-                    <span>版本信息:</span>
-                    <a href="javascript:void(0)" @click="showVersion">{{versionName}}</a>
-                    <i v-if="isNewV"><img src="../../images/new.png" alt=""/></i>
-                </p>
-            </div>
-        </el-aside>
-        <el-container>
-            <el-header class="clearfix">
-                <div class="title fl">
-                    <h2>{{organization&&organization.name}}</h2>
-                </div>
-                <div class="userInfo fr">
-                    <span class="username" @click="goCenter">{{userLoginDTO&&userLoginDTO.linkman}}</span>
-                    <lt-badge v-if="getRole=='user'" class="green" :authStatus="authStatus">
-                        {{authStatusName}}
-                    </lt-badge>
-                    <el-button type="info" size="small" plain @click="logout">退出</el-button>
-                </div>
-            </el-header>
-            <el-main>
-              <router-view v-if="ok" v-on:status-change="changeStatus"></router-view>
-            </el-main>
-        </el-container>
-        <el-dialog
-                title="版本信息"
-                :visible.sync="versionVisible"
-                width="50%"
-                class="version-info">
-            <div v-html="versionInfo"></div>
-        </el-dialog>
+  <el-container :class="getRole">
+    <el-aside v-show="onshow">
+      <div class="logo">
+        <p v-if="userLoginDTO&&userLoginDTO.type=='1'">
+          <b>朗通后台管理系统</b>
+        </p>
+        <p v-if="userLoginDTO&&userLoginDTO.type=='0'">
+          <b>DiagbotCloud</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>
+      <div class="version">
+        <p>
+          <span>版本信息:</span>
+          <a href="javascript:void(0)" @click="showVersion">{{versionName}}</a>
+          <i v-if="isNewV">
+            <img src="../../images/new.png" alt />
+          </i>
+        </p>
+      </div>
+    </el-aside>
+    <img src="../../images/icon-collect.png" class="collect" @click="collect" />
+    <el-container>
+      <el-header class="clearfix">
+        <div class="title fl">
+          <h2>{{organization&&organization.name}}</h2>
+        </div>
+        <div class="userInfo fr">
+          <span class="username" @click="goCenter">{{userLoginDTO&&userLoginDTO.linkman}}</span>
+          <lt-badge v-if="getRole=='user'" class="green" :authStatus="authStatus">{{authStatusName}}</lt-badge>
+          <el-button type="info" size="small" plain @click="logout">退出</el-button>
+        </div>
+      </el-header>
+      <el-main>
+        <router-view v-if="ok" v-on:status-change="changeStatus"></router-view>
+      </el-main>
     </el-container>
+    <el-dialog title="版本信息" :visible.sync="versionVisible" width="50%" class="version-info">
+      <div v-html="versionInfo"></div>
+    </el-dialog>
+  </el-container>
 </template>
 
 <script>
-  import LtMenu from '../common/Menu.vue';
-  import LtBadge from '@base/LtBadge.vue';
-  import api from '@api/index.js';
-  import userApi from '@api/user.js';
-  import Console from '@components/user/Console.vue';
-  import newIcon from '../../images/new.png';
-  export default {
-    name: 'homepage',
-    components: {
-      'lt-badge': LtBadge,
-      'lt-menu': LtMenu,
-      'console': Console
-    },
-    data: function () {
-      return {
-        menuWrappers: null,
-        organization: null,
-        userLoginDTO: null,
-        authStatus: null,
-        authStatusName:'',
-        ok:false,           //是否已获取到菜单
-        versionName:'',
-        versionVisible:false,
-        versionInfo:'',
-        isNewV:false,
-        version:null,       //版本信息接口返回的数据
+import LtMenu from '../common/Menu.vue';
+import LtBadge from '@base/LtBadge.vue';
+import api from '@api/index.js';
+import userApi from '@api/user.js';
+import Console from '@components/user/Console.vue';
+import newIcon from '../../images/new.png';
+export default {
+  name: 'homepage',
+  components: {
+    'lt-badge': LtBadge,
+    'lt-menu': LtMenu,
+    console: Console
+  },
+  data: function() {
+    return {
+      menuWrappers: null,
+      organization: null,
+      userLoginDTO: null,
+      authStatus: null,
+      authStatusName: '',
+      ok: false, //是否已获取到菜单
+      versionName: '',
+      versionVisible: false,
+      versionInfo: '',
+      isNewV: false,
+      version: null, //版本信息接口返回的数据
+      onshow: true
+    };
+  },
+  computed: {
+    getRole: function() {
+      return this.userLoginDTO && this.userLoginDTO.type == '0'
+        ? 'user'
+        : 'admin';
+    }
+  },
+  created() {
+    //获取菜单
+    this.getMenuList();
+  },
+  watch: {
+    $route: function(to, from) {
+      if (from.name == 'login') {
+        this.getMenuList();
       }
-    },
-    computed: {
-      getRole: function () {
-        return this.userLoginDTO && this.userLoginDTO.type == '0' ? 'user' : 'admin';
+      if (to.path == '/') {
+        // 退出时清空菜单
+        this.menuWrappers = [];
+        this.isNewV = false;
       }
+    }
+  },
+  methods: {
+    collect() {
+      this.onshow = !this.onshow;
+      
     },
-    created () {
-      //获取菜单
-      this.getMenuList();
-    },
-    watch:{
-      '$route': function(to,from){
-            if(from.name=='login'){
-              this.getMenuList();
-            }
-            if(to.path=='/'){       // 退出时清空菜单
-              this.menuWrappers=[];
-              this.isNewV = false;
-            }
-        }
-    },
-    methods: {
-      getMenuList(){
-        api.getAccessdMenu().then((res) => {
+    getMenuList() {
+      api
+        .getAccessdMenu()
+        .then(res => {
           if (res.data.code == '0') {
             const data = res.data.data;
             this.ok = true;
-            const hasConcole=data.menuWrappers.find((it)=>{
-              return it.code.indexOf('-KZT')>-1;
+            const hasConcole = data.menuWrappers.find(it => {
+              return it.code.indexOf('-KZT') > -1;
             });
             //this.hasConcole = hasConcole!=-1;
             this.menuWrappers = data.menuWrappers;
             this.organization = data.organization;
             this.userLoginDTO = data.userLoginDTO;
-            localStorage.setItem('userLoginDTO', JSON.stringify(data.userLoginDTO));
-            this.getRole=='user' && this.getAuthStatus();
-            if(hasConcole){
-              const url = this.getRole=='user'?'/user/YH-KZT':'/admin/LT-KZT';
-              this.$router.push({path:url});
+            localStorage.setItem(
+              'userLoginDTO',
+              JSON.stringify(data.userLoginDTO)
+            );
+            this.getRole == 'user' && this.getAuthStatus();
+            if (hasConcole) {
+              const url =
+                this.getRole == 'user' ? '/user/YH-KZT' : '/admin/LT-KZT';
+              this.$router.push({ path: url });
             }
             this.getVersionInfo();
           }
-        }).catch((error) => {
+        })
+        .catch(error => {
           console.log(error);
         });
-      },
-      isNewVersion(){           //判断是否为新版
-
-      },
-      getVersionInfo(){
-        const getInfo = this.getRole=='user'?api.getVersionOuter:api.getVersionInner;
-        getInfo().then((res)=>{
-          if (res.data.code == '0') {
-            const data = res.data.data;
-            this.fillVersionInfo(data);
-          }else{
-            this.$message(res.data.msg);
-          }
-        });
-      },
-      fillVersionInfo(data){
-        //进入时获取版本信息,如版本时间与localStorage中不一致或者一致但localStorage中未被点过,
-        // 则要显示更新图标
-        let htl = data.refreshTime?'<h3>当前版本:'+data.name+'<span>'+data.refreshTime.substr(0,10)+'</span></h3>':'<h3>当前版本:'+data.name+'</h3>';
-        let prags = data.detail||[];
-        this.versionName = data.name;
-        const versionTime = JSON.parse(localStorage.getItem('versionInfo-'+this.userLoginDTO.username));
-        if(!versionTime||(data.refreshTime===versionTime.date&&!versionTime.showed)){
-          this.isNewV = true;
-        }else{
-          this.isNewV = false
-        }
-        for(let i=0;i<prags.length;i++){
-            htl += '<p>'+prags[i].title+'</p><p>'+prags[i].description+'</p>';
+    },
+    isNewVersion() {
+      //判断是否为新版
+    },
+    getVersionInfo() {
+      const getInfo =
+        this.getRole == 'user' ? api.getVersionOuter : api.getVersionInner;
+      getInfo().then(res => {
+        if (res.data.code == '0') {
+          const data = res.data.data;
+          this.fillVersionInfo(data);
+        } else {
+          this.$message(res.data.msg);
         }
-        this.versionInfo = htl;
-        this.version = {date:data.refreshTime};
-      },
-      showVersion(){
-        this.versionVisible = true;
-        this.version.showed = true;
+      });
+    },
+    fillVersionInfo(data) {
+      //进入时获取版本信息,如版本时间与localStorage中不一致或者一致但localStorage中未被点过,
+      // 则要显示更新图标
+      let htl = data.refreshTime
+        ? '<h3>当前版本:' +
+          data.name +
+          '<span>' +
+          data.refreshTime.substr(0, 10) +
+          '</span></h3>'
+        : '<h3>当前版本:' + data.name + '</h3>';
+      let prags = data.detail || [];
+      this.versionName = data.name;
+      const versionTime = JSON.parse(
+        localStorage.getItem('versionInfo-' + this.userLoginDTO.username)
+      );
+      if (
+        !versionTime ||
+        (data.refreshTime === versionTime.date && !versionTime.showed)
+      ) {
+        this.isNewV = true;
+      } else {
         this.isNewV = false;
-        localStorage.setItem('versionInfo-'+this.userLoginDTO.username,JSON.stringify(this.version));
-      },
-      /*redirectPage(){
+      }
+      for (let i = 0; i < prags.length; i++) {
+        htl +=
+          '<p>' + prags[i].title + '</p><p>' + prags[i].description + '</p>';
+      }
+      this.versionInfo = htl;
+      this.version = { date: data.refreshTime };
+    },
+    showVersion() {
+      this.versionVisible = true;
+      this.version.showed = true;
+      this.isNewV = false;
+      localStorage.setItem(
+        'versionInfo-' + this.userLoginDTO.username,
+        JSON.stringify(this.version)
+      );
+    },
+    /*redirectPage(){
         const url = this.getRole=='user'?'/user':'/admin';
         this.$router.push({path:url});
       },*/
-      changeStatus(text){       //账号信息中提交认证后修改状态
-        this.authStatus = 2;
-        this.authStatusName = text;
-      },
-      goCenter(){
-        const url = this.getRole=='user'?'':'/admin/LT-GRZX';
-        this.$router.push({path:url});
-      },
-      getAuthStatus() {
-        //获取用户认证状态
-        userApi.getUserAuthStatus().then((res) => {
+    changeStatus(text) {
+      //账号信息中提交认证后修改状态
+      this.authStatus = 2;
+      this.authStatusName = text;
+    },
+    goCenter() {
+      const url = this.getRole == 'user' ? '' : '/admin/LT-GRZX';
+      this.$router.push({ path: url });
+    },
+    getAuthStatus() {
+      //获取用户认证状态
+      userApi
+        .getUserAuthStatus()
+        .then(res => {
           if (res.data.code == '0') {
             const data = res.data.data;
             // this.authStatus = data[0];
             this.authStatusName = data.authStatusName;
             this.authStatus = data.authStatus;
           }
-        }).catch((error) => {
-          console.log(error)
+        })
+        .catch(error => {
+          console.log(error);
         });
-      },
-      logout(){//退出
-        localStorage.removeItem('token');
-        localStorage.removeItem('menuPath');
-        this.$router.push({path:'/'});
-      }
+    },
+    logout() {
+      //退出
+      localStorage.removeItem('token');
+      localStorage.removeItem('menuPath');
+      this.$router.push({ path: '/' });
     }
   }
+};
 </script>
 
 <style lang="less">
+@import '../../less/common.less';
+.collect {
+  width: 106px;
+  height: 60px;
+  position: fixed;
+  left: 0;
+  top: 70%;
+  z-index: 20;
+}
+.user .el-menu-item.is-active {
+  color: @userBase;
+}
 
-    @import '../../less/common.less';
-
-    .user .el-menu-item.is-active {
-        color: @userBase;
-    }
-
-    .admin .el-menu-item.is-active {
-        color: @adminBase;
-    }
-    .admin .username{
-        cursor: pointer;
-    }
-    .version-info h3{
-        font-size: 14px;
-        margin-bottom: 20px;
-        span{
-            float: right;
-            font-weight: normal;
-        }
-    }
+.admin .el-menu-item.is-active {
+  color: @adminBase;
+}
+.admin .username {
+  cursor: pointer;
+}
+.version-info h3 {
+  font-size: 14px;
+  margin-bottom: 20px;
+  span {
+    float: right;
+    font-weight: normal;
+  }
+}
 </style>
 <style lang="less" scoped>
-    @import '../../less/common.less';
-    .el-menu-vertical-demo.el-menu{
-        height: calc(100% - 120px);
-        overflow-y: auto;
-    }
-    .version{
-        position: fixed;
-        bottom: 0;
-        width: @aside-width;
-        min-width: 270px;
-        font-size: 12px;
-        /*text-indent: 50px;*/
-        text-align: center;
-        height:54px;
-        line-height: 54px;
-        background: #fff;
-        i{
-            display: inline-block;
-            width: 20px;
-            height: 16px;
-            img{
-                vertical-align: text-top;
-            }
-        }
-    }
-    .user .version a{
-        color: @userBase;
-    }
-    .admin .version a{
-        color: @adminBase;
-    }
-    .user .logo {
-        background: @userBase;
-
-    p {
-        font-size: 16px;
-        line-height: normal
+@import '../../less/common.less';
+.el-menu-vertical-demo.el-menu {
+  height: calc(100% - 120px);
+  overflow-y: auto;
+}
+.version {
+  position: fixed;
+  bottom: 0;
+  width: @aside-width;
+  min-width: 270px;
+  font-size: 12px;
+  /*text-indent: 50px;*/
+  text-align: center;
+  height: 54px;
+  line-height: 54px;
+  background: #fff;
+  i {
+    display: inline-block;
+    width: 20px;
+    height: 16px;
+    img {
+      vertical-align: text-top;
     }
+  }
+}
+.user .version a {
+  color: @userBase;
+}
+.admin .version a {
+  color: @adminBase;
+}
+.user .logo {
+  background: @userBase;
 
-    }
-    .admin .logo {
-        background: @adminBase;
-
-    p {
-        font-size: 18px;
-        line-height: 40px;
-    }
-
-    }
-    .title {
-
-    h2 {
-        display: inline-block;
-        line-height: 60px;
-        font-size: 18px;
-    }
+  p {
+    font-size: 16px;
+    line-height: normal;
+  }
+}
+.admin .logo {
+  background: @adminBase;
 
-    }
-    .block {
-        height: 40px;
-        width: 100%;
-        background: #fff;
-        box-shadow: 0px 1px 2px #c9c9c9;
-    }
-		.el-main{
-			padding: 0;
-		}
-    .el-button{
-      margin-left: 15px;
-    }
+  p {
+    font-size: 18px;
+    line-height: 40px;
+  }
+}
+.title {
+  h2 {
+    display: inline-block;
+    line-height: 60px;
+    font-size: 18px;
+  }
+}
+.block {
+  height: 40px;
+  width: 100%;
+  background: #fff;
+  box-shadow: 0px 1px 2px #c9c9c9;
+}
+.el-main {
+  padding: 0;
+}
+.el-button {
+  margin-left: 15px;
+}
 </style>

+ 285 - 264
src/components/knowledgeExtra/AddDiagBase.vue

@@ -53,43 +53,47 @@
             size="mini"
             :span-method="dataSpanMethod"
             :data="form.klDiagnoseTypeVO"
+            :row-class-name="tableRowClassName"
             border
             style="width: 100%"
-            class="discDesc is-required"
+            :header-cell-style="{background:'#E3EAF4'}"
           >
             <el-table-column label="依据" width="100">
               <template slot-scope="scope">
-                <img
-                  src="../../images/icon-copy.png"
-                  height="18"
-                  width="18"
-                  class="icon"
-                  @click="copyDiag(scope.row.depart_id,scope.$index)"
-                />
-                <img
-                  src="../../images/icon-add.png"
-                  height="18"
-                  width="18"
-                  class="icon"
-                  @click="addDiag(scope.$index)"
-                />
-                <img
-                  src="../../images/icon-delete.png"
-                  height="18"
-                  width="18"
-                  class="icon"
-                  :disabled="form.klDiagnoseTypeVO.length===1"
-                  @click="delDiag(scope.$index)"
-                />
+                <el-form-item>
+                  <img
+                    src="../../images/icon-copy.png"
+                    height="18"
+                    width="18"
+                    class="icon"
+                    @click="copyDiag(scope.row.depart_id,scope.$index)"
+                  />
+                  <img
+                    src="../../images/icon-add.png"
+                    height="18"
+                    width="18"
+                    class="icon"
+                    @click="addDiag(scope.$index)"
+                  />
+                  <img
+                    src="../../images/icon-delete.png"
+                    height="18"
+                    width="18"
+                    class="icon"
+                    :disabled="form.klDiagnoseTypeVO.length===1"
+                    @click="delDiag(scope.$index)"
+                  />
+                </el-form-item>
               </template>
             </el-table-column>
-            <el-table-column label="诊断依据类型" width="120">
+            <el-table-column label="诊断依据类型" width="130">
               <template slot="header" slot-scope="scope">
                 <span class="star">*</span>
                 <span>诊断依据类型</span>
               </template>
               <template slot-scope="scope">
                 <el-form-item
+                  class="is-request"
                   :prop="'klDiagnoseTypeVO.'+scope.$index+'.conditionType'"
                   :rules="[{ required: true, message: '请选择诊断依据类型',trigger: ['change'] }]"
                 >
@@ -116,20 +120,22 @@
               <template slot-scope="scope">
                 <div v-for="(item,index) in scope.row.groupVO" :key="index">
                   <div v-if="v.title=='组'">
-                    <img
-                      src="../../images/icon-add.png"
-                      height="18"
-                      width="18"
-                      class="icon"
-                      @click="addGroup(scope.$index)"
-                    />
-                    <img
-                      src="../../images/icon-delete.png"
-                      height="18"
-                      width="18"
-                      class="icon"
-                      @click="delGroup(scope.$index)"
-                    />
+                    <el-form-item>
+                      <img
+                        src="../../images/icon-add.png"
+                        height="18"
+                        width="18"
+                        class="icon"
+                        @click="addGroup(scope.$index)"
+                      />
+                      <img
+                        src="../../images/icon-delete.png"
+                        height="18"
+                        width="18"
+                        class="icon"
+                        @click="delGroup(scope.$index)"
+                      />
+                    </el-form-item>
                   </div>
                   <div v-if="v.title == '符合条件的数量'">
                     <el-form-item
@@ -147,263 +153,267 @@
                     </el-form-item>
                   </div>
                   <div v-for="(items,i) in item.klDiagnoseDetail" :key="i">
-                    <div v-if="v.title == '基础依据'">
-                      <img
-                        src="../../images/icon-add.png"
-                        height="18"
-                        width="18"
-                        class="icon"
-                        @click="addRule(scope.row,scope.$index,index)"
-                      />
-                      <img
-                        src="../../images/icon-delete.png"
-                        height="18"
-                        width="18"
-                        class="icon"
-                        @click="delRule(scope.row,scope.$index,index,i)"
-                      />
-                    </div>
-                    <div class="box-2" v-if="v.title == '基础依据名称'">
-                      <el-form-item
-                        :prop="'klDiagnoseTypeVO.' +
+                    <el-form-item>
+                      <div v-if="v.title == '基础依据'">
+                        <el-form-item>
+                          <img
+                            src="../../images/icon-add.png"
+                            height="18"
+                            width="18"
+                            class="icon"
+                            @click="addRule(scope.row,scope.$index,index)"
+                          />
+                          <img
+                            src="../../images/icon-delete.png"
+                            height="18"
+                            width="18"
+                            class="icon"
+                            @click="delRule(scope.row,scope.$index,index,i)"
+                          />
+                        </el-form-item>
+                      </div>
+                      <div class="box-2" v-if="v.title == '基础依据名称'">
+                        <el-form-item
+                          :prop="'klDiagnoseTypeVO.' +
                         scope.$index +
                         '.groupVO.' +
                         index +
                         '.klDiagnoseDetail.'+i+'.basDescription'"
-                        :rules="[{required:true,message:'请输入基础依据名称',trigger:'blur'}]"
-                      >
-                        <el-input
-                          class="inp-name"
-                          placeholder="请输入基础依据名称"
-                          maxlength="100"
-                          v-model.trim="items.basDescription"
-                        ></el-input>
-                      </el-form-item>
-                    </div>
-                    <div class="box-2" v-if="v.title == '基础依据类型'">
-                      <el-form-item
-                        :prop="'klDiagnoseTypeVO.' +
+                          :rules="[{required:true,message:'请输入基础依据名称',trigger:'blur'}]"
+                        >
+                          <el-input
+                            class="inp-name"
+                            placeholder="请输入基础依据名称"
+                            maxlength="100"
+                            v-model.trim="items.basDescription"
+                          ></el-input>
+                        </el-form-item>
+                      </div>
+                      <div class="box-2" v-if="v.title == '基础依据类型'">
+                        <el-form-item
+                          :prop="'klDiagnoseTypeVO.' +
                         scope.$index +
                         '.groupVO.' +
                         index +
                         '.klDiagnoseDetail.'+i+'.basType'"
-                        :rules="[{required:true,message:'请选择基础依据类型',trigger:'change'}]"
-                      >
-                        <el-select
-                          v-model="items.basType"
-                          @change="(val)=>baseTermTypeChange(val,scope.$index,index,i)"
+                          :rules="[{required:true,message:'请选择基础依据类型',trigger:'change'}]"
                         >
-                          <el-option
-                            v-for="item in baseTermTypeList"
-                            :key="item.id"
-                            :label="item.name"
-                            :value="item.type"
-                          ></el-option>
-                        </el-select>
-                      </el-form-item>
-                    </div>
-                    <div class="box-2" v-if="v.title == '基础依据术语类型'">
-                      <el-form-item
-                        :prop="'klDiagnoseTypeVO.' +
+                          <el-select
+                            v-model="items.basType"
+                            @change="(val)=>baseTermTypeChange(val,scope.$index,index,i)"
+                          >
+                            <el-option
+                              v-for="item in baseTermTypeList"
+                              :key="item.id"
+                              :label="item.name"
+                              :value="item.type"
+                            ></el-option>
+                          </el-select>
+                        </el-form-item>
+                      </div>
+                      <div class="box-2" v-if="v.title == '基础依据术语类型'">
+                        <el-form-item
+                          :prop="'klDiagnoseTypeVO.' +
                         scope.$index +
                         '.groupVO.' +
                         index +
                         '.klDiagnoseDetail.'+i+'.basLibType'"
-                        :rules="[{required:true,message:'请选择基础依据术语类型',trigger:'change'}]"
-                        v-if="!items.basNameType"
-                      >
-                        <el-select
-                          v-model="items.basLibType"
-                          @change="(val)=>basLibTypeChange(val,scope.$index,index,i)"
+                          :rules="[{required:true,message:'请选择基础依据术语类型',trigger:'change'}]"
+                          v-if="!items.basNameType"
                         >
-                          <el-option
-                            v-for="item in items.basLibTypeList"
-                            :key="item.id"
-                            :label="item.name"
-                            :value="Number(item.code)"
-                          ></el-option>
-                        </el-select>
-                      </el-form-item>
-                      <el-form-item v-if="items.basNameType" class="is-required">
-                        <el-input disabled v-model="items.basTypeName"></el-input>
-                      </el-form-item>
-                    </div>
-                    <div
-                      v-if="v.title == '医学标准术语'"
-                      class="box-2"
-                      :class="(items.basType===3 || items.basType===4)? 'tmall' : 'taobao'"
-                    >
-                      <el-form-item
-                        :prop="'klDiagnoseTypeVO.' +
+                          <el-select
+                            v-model="items.basLibType"
+                            @change="(val)=>basLibTypeChange(val,scope.$index,index,i)"
+                          >
+                            <el-option
+                              v-for="item in items.basLibTypeList"
+                              :key="item.id"
+                              :label="item.name"
+                              :value="Number(item.code)"
+                            ></el-option>
+                          </el-select>
+                        </el-form-item>
+                        <el-form-item v-if="items.basNameType">
+                          <el-input disabled v-model="items.basTypeName"></el-input>
+                        </el-form-item>
+                      </div>
+                      <div
+                        v-if="v.title == '医学标准术语'"
+                        class="box-2"
+                        :class="(items.basType===3 || items.basType===4)? 'tmall' : 'taobao'"
+                      >
+                        <el-form-item
+                          :prop="'klDiagnoseTypeVO.' +
                         scope.$index +
                         '.groupVO.' +
                         index +
                         '.klDiagnoseDetail.'+i+'.basConceptId'"
-                        :rules="[{required:true,message:'请输入医学标准术语',trigger:'blur'}]"
-                      >
-                        <el-select
-                          clearable
-                          remote
-                          filterable
-                          :remote-method="(val)=>searchConcept(val,scope.$index,index,i)"
-                          v-model.trim="items.basConceptId"
-                          @change="(val)=>conceptChange(val,scope.$index,index,i)"
+                          :rules="[{required:true,message:'请输入医学标准术语',trigger:'change'}]"
                         >
-                          <el-option
-                            v-for="item in items.conceptList"
-                            :key="item.conceptId"
-                            :label="item.conceptName"
-                            :value="item.conceptId"
-                          ></el-option>
-                        </el-select>
-                      </el-form-item>
-                    </div>
-                    <div class="last-box" v-if="v.title == '规则具体内容'">
-                      <el-form-item
-                        :prop="'klDiagnoseTypeVO.' +
+                          <el-select
+                            clearable
+                            remote
+                            filterable
+                            :remote-method="(val)=>searchConcept(val,scope.$index,index,i)"
+                            v-model.trim="items.basConceptId"
+                            @change="(val)=>conceptChange(val,scope.$index,index,i)"
+                          >
+                            <el-option
+                              v-for="item in items.conceptList"
+                              :key="item.conceptId"
+                              :label="item.conceptName"
+                              :value="item.conceptId"
+                            ></el-option>
+                          </el-select>
+                        </el-form-item>
+                      </div>
+                      <div class="last-box" v-if="v.title == '规则具体内容'">
+                        <el-form-item
+                          :prop="'klDiagnoseTypeVO.' +
                         scope.$index +
                         '.groupVO.' +
                         index +
                         '.klDiagnoseDetail.'+i+'.dataType'"
-                        :rules="[{required:true,message:'请选择类型',trigger:'change'}]"
-                        v-if="items.basType===2&&!items.onlyNumType&&!items.onlyTxtType"
-                      >
-                        <el-select
-                          class="box-1"
-                          :class="items.basType===2&&!items.onlyNumType&&!items.onlyTxtType? 'taobao' : 'tmall'"
-                          v-model="items.dataType"
-                          @change="(val)=>dataTypeChange(val,scope.$index,index,i)"
-                          placeholder="请选择"
-                          size="small"
+                          :rules="[{required:true,message:'请选择类型',trigger:'change'}]"
+                          v-if="items.basType===2&&!items.onlyNumType&&!items.onlyTxtType"
                         >
-                          <el-option
-                            v-for="item in dataTypes"
-                            :key="item.id"
-                            :label="item.name"
-                            :value="item.id"
-                          ></el-option>
-                        </el-select>
-                      </el-form-item>
-                      <el-form-item
-                        class="min-margin"
-                        :key="6"
-                        v-if="(!items.onlyNumType&&items.dataType==='1')||items.onlyNumType"
-                        label="最大值:"
-                      >
-                        <div class="last-box-1">
-                          <el-form-item
-                            :prop="'klDiagnoseTypeVO.' +
+                          <el-select
+                            class="box-1"
+                            :class="items.basType===2&&!items.onlyNumType&&!items.onlyTxtType? 'taobao' : 'tmall'"
+                            v-model="items.dataType"
+                            @change="(val)=>dataTypeChange(val,scope.$index,index,i)"
+                            placeholder="请选择"
+                            size="small"
+                          >
+                            <el-option
+                              v-for="item in dataTypes"
+                              :key="item.id"
+                              :label="item.name"
+                              :value="item.id"
+                            ></el-option>
+                          </el-select>
+                        </el-form-item>
+                        <el-form-item
+                          class="min-margin"
+                          :key="6"
+                          v-if="(!items.onlyNumType&&items.dataType==='1')||items.onlyNumType"
+                          label="最大值:"
+                        >
+                          <div class="last-box-1">
+                            <el-form-item
+                              :prop="'klDiagnoseTypeVO.' +
                             scope.$index +
                             '.groupVO.' +
                             index +
                             '.klDiagnoseDetail.'+i+'.maxOperator'"
-                            :rules="[{required:true,message:'最大值和最小值至少完整填写一个,单位不必填',trigger:'change'}]"
-                          >
-                            <el-select
-                              v-model="items.maxOperator"
-                              placeholder="请选择"
-                              size="small"
-                              clearable
+                              :rules="[{required:true,message:'最大值和最小值至少完整填写一个,单位不必填',trigger:'change'}]"
                             >
-                              <el-option
-                                v-for="item in operMaxList"
-                                :key="item.key"
-                                :label="item.name"
-                                :value="item.key"
-                              ></el-option>
-                            </el-select>
-                          </el-form-item>
+                              <el-select
+                                v-model="items.maxOperator"
+                                placeholder="请选择"
+                                size="small"
+                                clearable
+                              >
+                                <el-option
+                                  v-for="item in operMaxList"
+                                  :key="item.key"
+                                  :label="item.name"
+                                  :value="item.key"
+                                ></el-option>
+                              </el-select>
+                            </el-form-item>
 
-                          <el-form-item
-                            :prop="'klDiagnoseTypeVO.' +
+                            <el-form-item
+                              :prop="'klDiagnoseTypeVO.' +
                             scope.$index +
                             '.groupVO.' +
                             index +
                             '.klDiagnoseDetail.'+i+'.maxVal'"
-                            :rules="[{required:true,message:'最大值和最小值至少完整填写一个,单位不必填',trigger:'blur'}]"
-                          >
-                            <el-input v-model="items.maxVal" placeholder="填写数值"></el-input>
-                          </el-form-item>
+                              :rules="[{required:true,message:'最大值和最小值至少完整填写一个,单位不必填',trigger:'blur'}]"
+                            >
+                              <el-input v-model="items.maxVal" placeholder="填写数值"></el-input>
+                            </el-form-item>
 
-                          <el-form-item prop="minUnit">
-                            <el-input v-model.trim="items.maxUnit" placeholder="填写单位"></el-input>
-                          </el-form-item>
-                        </div>
-                      </el-form-item>
-                      <el-form-item
-                        class="min-margin"
-                        v-if="(!items.onlyNumType&&items.dataType==='1')||items.onlyNumType"
-                        label="最小值:"
-                      >
-                        <div class="last-box-1">
-                          <el-form-item
-                            :prop="'klDiagnoseTypeVO.' +
+                            <el-form-item prop="minUnit">
+                              <el-input v-model.trim="items.maxUnit" placeholder="填写单位"></el-input>
+                            </el-form-item>
+                          </div>
+                        </el-form-item>
+                        <el-form-item
+                          class="min-margin"
+                          v-if="(!items.onlyNumType&&items.dataType==='1')||items.onlyNumType"
+                          label="最小值:"
+                        >
+                          <div class="last-box-1 last-box-s">
+                            <el-form-item
+                              :prop="'klDiagnoseTypeVO.' +
                             scope.$index +
                             '.groupVO.' +
                             index +
                             '.klDiagnoseDetail.'+i+'.minOperator'"
-                            :rules="[{required:true,message:'最大值和最小值至少完整填写一个,单位不必填',trigger:'blur'}]"
-                          >
-                            <el-select
-                              v-model="items.minOperator"
-                              placeholder="请选择"
-                              size="small"
-                              clearable
+                              :rules="[{required:true,message:'最大值和最小值至少完整填写一个,单位不必填',trigger:'change'}]"
                             >
-                              <el-option
-                                v-for="item in operMinList"
-                                :key="item.key"
-                                :label="item.name"
-                                :value="item.key"
-                              ></el-option>
-                            </el-select>
-                          </el-form-item>
+                              <el-select
+                                v-model="items.minOperator"
+                                placeholder="请选择"
+                                size="small"
+                                clearable
+                              >
+                                <el-option
+                                  v-for="item in operMinList"
+                                  :key="item.key"
+                                  :label="item.name"
+                                  :value="item.key"
+                                ></el-option>
+                              </el-select>
+                            </el-form-item>
 
-                          <el-form-item
-                            :prop="'klDiagnoseTypeVO.' +
+                            <el-form-item
+                              :prop="'klDiagnoseTypeVO.' +
                             scope.$index +
                             '.groupVO.' +
                             index +
                             '.klDiagnoseDetail.'+i+'.minVal'"
-                            :rules="[{required:true,message:'最大值和最小值至少完整填写一个,单位不必填',trigger:'blur'}]"
-                          >
-                            <el-input v-model="items.minVal" placeholder="填写数值"></el-input>
-                          </el-form-item>
+                              :rules="[{required:true,message:'最大值和最小值至少完整填写一个,单位不必填',trigger:'blur'}]"
+                            >
+                              <el-input v-model="items.minVal" placeholder="填写数值"></el-input>
+                            </el-form-item>
 
-                          <el-form-item prop="minUnit">
-                            <el-input v-model.trim="items.minUnit" placeholder="填写单位"></el-input>
-                          </el-form-item>
-                        </div>
-                      </el-form-item>
-                      <el-form-item
-                        :prop="'klDiagnoseTypeVO.' +
+                            <el-form-item prop="minUnit">
+                              <el-input v-model.trim="items.minUnit" placeholder="填写单位"></el-input>
+                            </el-form-item>
+                          </div>
+                        </el-form-item>
+                        <el-form-item
+                          :prop="'klDiagnoseTypeVO.' +
                         scope.$index +
                         '.groupVO.' +
                         index +
                         '.klDiagnoseDetail.'+i+'.eqValue'"
-                        :rules="[{required:true,message:'请输入正则表达式',trigger:'blur'}]"
-                        v-if="items.basType===4 || items.basType===3"
-                        maxlength="200"
-                        label="正则表达式:"
-                        class="discDesc"
-                      >
-                        <el-input class="inp" placeholder="不能为空~" v-model.trim="items.eqValue"></el-input>
-                      </el-form-item>
-                      <el-form-item
-                        :prop="'klDiagnoseTypeVO.' +
+                          :rules="[{required:true,message:'请输入正则表达式',trigger:'blur'}]"
+                          v-if="items.basType===4 || items.basType===3"
+                          maxlength="200"
+                          label="正则表达式:"
+                          class="discDesc"
+                        >
+                          <el-input class="inp" placeholder="不能为空~" v-model.trim="items.eqValue"></el-input>
+                        </el-form-item>
+                        <el-form-item
+                          :prop="'klDiagnoseTypeVO.' +
                         scope.$index +
                         '.groupVO.' +
                         index +
                         '.klDiagnoseDetail.'+i+'.eqValue'"
-                        :rules="[{required:true,message:'不能为空~',trigger:'blur'}]"
-                        maxlength="200"
-                        v-if="(!items.onlyNumType&&!items.basNameType&&(items.basType===2 || items.basType===1)&&items.dataType==='2')||items.onlyTxtType"
-                        label="医学内容:"
-                        class="discDesc"
-                      >
-                        <el-input v-model.trim="items.eqValue" class="inp" placeholder="请输入医学内容"></el-input>
-                      </el-form-item>
-                    </div>
+                          :rules="[{required:true,message:'不能为空~',trigger:'blur'}]"
+                          maxlength="200"
+                          v-if="(!items.onlyNumType&&!items.basNameType&&(items.basType===2 || items.basType===1)&&items.dataType==='2')||items.onlyTxtType"
+                          label="医学内容:"
+                          class="discDesc"
+                        >
+                          <el-input v-model.trim="items.eqValue" class="inp" placeholder="请输入医学内容"></el-input>
+                        </el-form-item>
+                      </div>
+                    </el-form-item>
                   </div>
                 </div>
               </template>
@@ -421,26 +431,20 @@
 <script type="text/javascript">
 import util from '../../api/utils.js';
 import api from '@api/zskDiagBase.js';
-import DiagBaseType from './DiagBaseType';
-var generateId = {
-  _count: 1,
-  get() {
-    return +new Date() + '_' + this._count++;
-  }
-};
+
 export default {
   name: 'AddZskDiagBase',
   data() {
     return {
       columns: [
         { title: '组', width: 70 },
-        { title: '符合条件的数量', width: 120, istar: true },
+        { title: '符合条件的数量', width: 150, istar: true },
         { title: '基础依据', width: 80, istar: true },
-        { title: '基础依据名称', width: 200, istar: true },
+        { title: '基础依据名称', width: 160, istar: true },
         { title: '基础依据类型', width: 130, istar: true },
         { title: '基础依据术语类型', width: 160, istar: true },
         { title: '医学标准术语', width: 130, istar: true },
-        { title: '规则具体内容', width: 800 }
+        { title: '规则具体内容', width: 750 }
       ],
       dicts: {},
       baseTypes: [], //诊断数据类型
@@ -665,9 +669,6 @@ export default {
       return arr;
     }
   },
-  components: {
-    DiagBaseType
-  },
   methods: {
     getData(data) {
       let arr = data;
@@ -723,6 +724,14 @@ export default {
         };
       }
     },
+     tableRowClassName({row, column, rowIndex, columnIndex}) {
+       console.log(row.depart_id & 1)
+        if (row.depart_id & 1) {
+          console.log(3658)
+          return 'success-row';
+        } 
+        return '';
+      },
     getInitData() {
       this.i++;
       return {
@@ -769,7 +778,6 @@ export default {
         0,
         temp
       );
-      this.setRules();
     },
     //复制依据
     copyDiag(name, index) {
@@ -781,7 +789,6 @@ export default {
         obj[i].depart_id = '复制依据' + this.i; //问题点2
         this.form.klDiagnoseTypeVO.splice(index, 0, obj[i]);
       }
-      this.setRules();
     },
     //删除依据
     delDiag(i) {
@@ -819,11 +826,9 @@ export default {
         ]
       };
       this.form.klDiagnoseTypeVO[i].groupVO.splice(i + 1, 0, temp);
-      this.setRules();
     },
     delGroup(i) {
       this.form.klDiagnoseTypeVO.splice(i, 1);
-      this.setRules();
     },
     //新增基础依据
     addRule(row, index, i) {
@@ -849,14 +854,12 @@ export default {
         dataType: ''
       };
       this.form.klDiagnoseTypeVO[index].groupVO[i].klDiagnoseDetail.push(temp);
-      this.setRules();
     },
     delRule(row, inx, index, i) {
       this.form.klDiagnoseTypeVO[inx].groupVO[index].klDiagnoseDetail.splice(
         i,
         1
       );
-      this.setRules();
     },
     //诊断依据类型修改
     basTypeChange(val, inx) {
@@ -986,7 +989,7 @@ export default {
                 i
               ].conceptList = data; // 改变了的值
             });
-            this.form = formData
+            this.form = formData;
           }
         })
         .catch(error => {
@@ -1193,6 +1196,11 @@ export default {
     margin-top: 10px;
     padding: 20px 20px 50px;
     min-height: 600px;
+
+
+    .el-table .success-row {
+      background: #DFF7EF;
+    }
     .content-2-header {
       padding: 20px 0;
       .title1 {
@@ -1208,14 +1216,17 @@ export default {
         line-height: 17px;
       }
     }
+    .is-request {
+      height: 46px;
+    }
     .inp-name {
-      width: 160px !important;
+      width: 140px !important;
       .el-input__inner {
-        width: 160px !important;
+        width: 140px !important;
       }
     }
     .el-form-item {
-      margin: 20px 0;
+      margin-bottom: 10px;
     }
     .discDesc {
       margin-bottom: 20px;
@@ -1279,6 +1290,15 @@ export default {
           background: #fff;
         }
       }
+      .last-box-s {
+        position: absolute;
+        .el-form-item__error {
+          top: 39px;
+          left: 0px;
+          white-space: nowrap;
+          background: #fff;
+        }
+      }
       .el-form-item__error {
         top: 56px;
         left: 10px;
@@ -1303,6 +1323,7 @@ export default {
         width: 100%;
         overflow: hidden;
       }
+      .el-form-item__content;
     }
     .add-new-form {
       .el-input,

+ 29 - 8
src/components/knowledgeExtra/AddNewRule.vue

@@ -21,7 +21,7 @@
     font-size: 12px;
     color: red;
     line-height: 16px;
-    // transform: scale(.8, .8); 
+    // transform: scale(.8, .8);
   }
   .form_btn {
     width: 100%;
@@ -36,11 +36,11 @@
       :title="title"
       :param="$route.params"
       linkTo="ZskRuleManager"
-    ></crumbs>  
+    ></crumbs>
     <div class="AddRuleContent">
       <el-form size="mini" :model="form" :rules="rules" ref="ruleForm">
         <!-- <div class="table_form"> -->
-        <el-row :gutter="20" class="table_form">
+        <el-row class="table_form">
           <el-col :span="8">
             <!-- 规则名称 -->
             <el-form-item
@@ -184,7 +184,7 @@
               type="primary"
               size="medium "
               @click="submitForm('ruleForm')"
-              >立即创建</el-button
+              >确定</el-button
             >
           </div>
         </el-form-item>
@@ -293,10 +293,12 @@ export default {
         }
 
         // disable
-        if (arr[i - 1] && arr[i - 1].groupId == item.groupId) {
-          this.$set(item, "disabled", false);
-        } else {
-          this.$set(item, "disabled", true);
+        if (this.form.parHasSub && this.firstPlace) {
+          if (arr[i - 1] && arr[i - 1].groupId == item.groupId) {
+            this.$set(item, "disabled", false);
+          } else {
+            this.$set(item, "disabled", true);
+          }
         }
       });
     },
@@ -321,6 +323,7 @@ export default {
           params.klRuleInfoSaveSub.forEach((ite) => {
             delete ite.groupId;
             delete ite.groupChildId;
+            delete ite.rowIndex;
             delete ite.baseTypes;
             delete ite.baseTermTypeList;
             delete ite.conceptList;
@@ -593,6 +596,24 @@ export default {
       });
     }
   },
+  watch: {
+    "form.klRuleByIdSub": {
+      handler(val) {
+        console.log("000000000");
+        this.form.klRuleByIdSub.forEach((item, i, arr) => {
+          if (i == 0) {
+            item.rowIndex = 1;
+          } else if (item.groupId == arr[i - 1].groupId) {
+            item.rowIndex = arr[i - 1].rowIndex;
+          } else {
+            item.rowIndex = arr[i - 1].rowIndex + 1;
+          }
+        });
+        console.log(this.form.klRuleByIdSub);
+      },
+      deep: true
+    }
+  },
   computed: {
     disable: function () {
       return Object.keys(this.firstPlace || {}).length > 0;

+ 185 - 150
src/components/knowledgeExtra/AddNewRuleTable.vue

@@ -17,7 +17,6 @@
     justify-content: space-around;
     .btn_div {
       flex: 1;
-      height: 40px;
       display: flex;
       align-items: center;
       justify-content: center;
@@ -33,6 +32,10 @@
     height: 100%;
     margin: 0 auto;
   }
+  /deep/ .el-form-item__error {
+    // position: absolute;
+    top: 28px;
+  }
   .type_content {
     /deep/ .el-form-item--mini.el-form-item,
     .el-form-item--small.el-form-item {
@@ -40,11 +43,26 @@
       width: 100%;
     }
     display: flex;
-    // flex-wrap: wrap;
-    .type_content_item {
-      padding: 10px 0;
-      // flex: 1;
-      // min-width: 200px;
+    .type_content_item1 {
+      /deep/ .el-form-item__content {
+        padding-bottom: 0px;
+      }
+      .row_box {
+        .el-col {
+          /deep/ .el-form-item__content {
+            position: static;
+          }
+          /deep/ .el-form-item__error {
+            position: absolute;
+            width: 260px;
+            left: 72px;
+            white-space: normal;
+          }
+        }
+      }
+    }
+    /deep/ .el-input.is-disabled .el-input__inner {
+      color: #888;
     }
   }
   .custom_table_header {
@@ -56,8 +74,17 @@
       margin-right: 4px;
     }
   }
-  /deep/ .el-form-item__error {
-    position: relative;
+  ::v-deep .el-table tbody tr:hover > td {
+    background-color: transparent;
+  }
+  /deep/ .el-table th {
+    background: transparent;
+  }
+  /deep/ .el-form-item__content {
+    padding-bottom: 14px;
+  }
+  .table_cell_cls {
+    vertical-align: top;
   }
 }
 </style>
@@ -65,13 +92,15 @@
 <template>
   <!-- :prop="`klRuleByIdSub[${scope.$index}].subDescription`" -->
   <div class="AddNewRuleTable">
-    <h4 style="marginbottom: 20px">规则内容</h4>
+    <h4 style="margin-bottom: 20px">规则内容</h4>
     <el-table
       border
       :data="klRuleByIdSub"
       style="width: 100%"
       size="mini"
-      stripe
+      :row-style="rowStyle"
+      :header-row-style="{ background: '#E3EAF4' }"
+      :cell-style="cellStyle"
       :span-method="ObjectSpanMethod"
     >
       <el-table-column width="80px" label="组" prop="groupType">
@@ -84,10 +113,9 @@
                 alt=""
               />
             </div>
-            <div class="btn_div">
+            <div class="btn_div" v-if="!isLastDate(scope.row.groupId)">
               <img
                 @click="$emit('delGroup', scope.row.groupId)"
-                v-if="!isLastDate(scope.row.groupId)"
                 src="../../images/add-new-rule-del.png"
                 alt=""
               />
@@ -103,9 +131,8 @@
       >
         <template slot-scope="scope">
           <div class="btn_box">
-            <div class="btn_div">
+            <div class="btn_div" v-if="!isMax(scope.row.groupId)">
               <img
-                v-if="!isMax(scope.row.groupId)"
                 @click="
                   $emit('addGroup', scope.row.groupId, { index: scope.$index })
                 "
@@ -113,10 +140,12 @@
                 alt=""
               />
             </div>
-            <div class="btn_div">
+            <div
+              class="btn_div"
+              v-if="klRuleByIdSub.length > 1 && !scope.row.disabled"
+            >
               <img
                 @click="$emit('delGroupChild', scope.row.groupChildId)"
-                v-if="klRuleByIdSub.length > 1 && !scope.row.disabled"
                 src="../../images/add-new-rule-del.png"
                 alt=""
               />
@@ -232,17 +261,14 @@
         <template slot-scope="scope">
           <div class="type_content">
             <el-form-item
-              class="type_content_item"
-              style="width: 240px; marginright: 20px"
-              label="选择类型:"
-              label-width="100px"
+              style="width: 100px; margin-right: 20px"
               :prop="`klRuleByIdSub[${scope.$index}].dataType`"
               :rules="rules.dataType"
               v-if="scope.row.subType === 2 && showDataType(scope.$index)"
             >
               <el-select
                 v-model="scope.row.dataType"
-                placeholder="选择"
+                placeholder="选择类型"
                 @change="dataTypeChange($event, scope.$index)"
               >
                 <el-option label="数值类型" value="1"> </el-option>
@@ -251,142 +277,140 @@
             </el-form-item>
             <!-- v-if="klRuleByIdSub[scope.$index].dataType === '1'" -->
             <el-form-item
-              class="type_content_item"
-              style="flex: 2;margin:0 10px"
+              class="type_content_item type_content_item1"
+              style="flex: 2; margin: 0 10px"
               label="最大值:"
               v-if="scope.row.dataType === '1'"
             >
-              <div>
-                <el-row :gutter="10">
-                  <el-col :span="6">
-                    <el-form-item
-                      :prop="`klRuleByIdSub[${scope.$index}].subMaxOperator`"
-                      :rules="[
-                        {
-                          validator: (rule, value, callback) => {
-                            subMaxOperator(scope, rule, value, callback);
-                          },
-                          trigger: 'blur'
-                        }
-                      ]"
+              <!-- <div> -->
+              <el-row :gutter="10" class="row_box">
+                <el-col :span="6">
+                  <el-form-item
+                    :prop="`klRuleByIdSub[${scope.$index}].subMaxOperator`"
+                    :rules="[
+                      {
+                        validator: (rule, value, callback) => {
+                          subMaxOperator(scope, rule, value, callback);
+                        },
+                        trigger: 'blur'
+                      }
+                    ]"
+                  >
+                    <el-select
+                      v-model="scope.row.subMaxOperator"
+                      placeholder="请选择"
+                      clearable
                     >
-                      <el-select
-                        v-model="scope.row.subMaxOperator"
-                        placeholder="请选择"
-                        clearable
+                      <el-option
+                        v-for="item in operMaxList"
+                        :key="item.key"
+                        :label="item.name"
+                        :value="item.key"
                       >
-                        <el-option
-                          v-for="item in operMaxList"
-                          :key="item.key"
-                          :label="item.name"
-                          :value="item.key"
-                        >
-                        </el-option>
-                      </el-select>
-                    </el-form-item>
-                  </el-col>
-                  <el-col :span="6">
-                    <el-form-item
-                      :prop="`klRuleByIdSub[${scope.$index}].subMaxValue`"
-                      :rules="[
-                        {
-                          validator: (rule, value, callback) => {
-                            subMaxValue(scope, rule, value, callback);
-                          },
-                          trigger: 'blur'
-                        }
-                      ]"
-                    >
-                      <el-input
-                        type="text"
-                        v-model="scope.row.subMaxValue"
-                        placeholder="填写数值"
-                      />
-                    </el-form-item>
-                  </el-col>
-                  <el-col :span="6">
-                    <el-form-item
-                      :prop="`klRuleByIdSub[${scope.$index}].subMaxUnit`"
-                      :rules="rules.subMaxUnit"
-                    >
-                      <el-input
-                        type="text"
-                        v-model.trim="scope.row.subMaxUnit"
-                        placeholder="填写单位"
-                      />
-                    </el-form-item>
-                  </el-col>
-                </el-row>
-              </div>
+                      </el-option>
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="6">
+                  <el-form-item
+                    :prop="`klRuleByIdSub[${scope.$index}].subMaxValue`"
+                    :rules="[
+                      {
+                        validator: (rule, value, callback) => {
+                          subMaxValue(scope, rule, value, callback);
+                        },
+                        trigger: 'blur'
+                      }
+                    ]"
+                  >
+                    <el-input
+                      type="text"
+                      v-model="scope.row.subMaxValue"
+                      placeholder="填写数值"
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="6">
+                  <el-form-item
+                    :prop="`klRuleByIdSub[${scope.$index}].subMaxUnit`"
+                    :rules="rules.subMaxUnit"
+                  >
+                    <el-input
+                      type="text"
+                      v-model.trim="scope.row.subMaxUnit"
+                      placeholder="填写单位"
+                    />
+                  </el-form-item>
+                </el-col>
+              </el-row>
+              <!-- </div> -->
             </el-form-item>
             <el-form-item
-              class="type_content_item"
+              class="type_content_item type_content_item1"
               style="flex: 2"
               label="最小值:"
               v-if="scope.row.dataType === '1'"
             >
-              <div class="select-item clearfix">
-                <el-row :gutter="10">
-                  <el-col :span="6">
-                    <el-form-item
-                      :prop="`klRuleByIdSub[${scope.$index}].subMinOperator`"
-                      :rules="[
-                        {
-                          validator: (rule, value, callback) => {
-                            subMinOperatorRule(scope, rule, value, callback);
-                          },
-                          trigger: 'blur'
-                        }
-                      ]"
+              <el-row :gutter="10" class="row_box">
+                <el-col :span="6">
+                  <el-form-item
+                    :prop="`klRuleByIdSub[${scope.$index}].subMinOperator`"
+                    :rules="[
+                      {
+                        validator: (rule, value, callback) => {
+                          subMinOperatorRule(scope, rule, value, callback);
+                        },
+                        trigger: 'change'
+                      }
+                    ]"
+                  >
+                    <el-select
+                      v-model="scope.row.subMinOperator"
+                      placeholder="请选择"
+                      clearable
                     >
-                      <el-select
-                        v-model="scope.row.subMinOperator"
-                        placeholder="请选择"
-                        clearable
+                      <el-option
+                        v-for="item in operMinList"
+                        :key="item.name"
+                        :label="item.name"
+                        :value="item.name"
                       >
-                        <el-option
-                          v-for="item in operMinList"
-                          :key="item.name"
-                          :label="item.name"
-                          :value="item.name"
-                        >
-                        </el-option>
-                      </el-select>
-                    </el-form-item>
-                  </el-col>
-                  <el-col :span="6">
-                    <el-form-item
-                      :prop="`klRuleByIdSub[${scope.$index}].subMinValue`"
-                      :rules="[
-                        {
-                          validator: (rule, value, callback) => {
-                            subMinValueRule(scope, rule, value, callback);
-                          },
-                          trigger: 'blur'
-                        }
-                      ]"
-                    >
-                      <el-input
-                        type="text"
-                        v-model="scope.row.subMinValue"
-                        placeholder="填写数值"
-                      />
-                    </el-form-item>
-                  </el-col>
-                  <el-col :span="6">
-                    <el-form-item
-                      :prop="`klRuleByIdSub[${scope.$index}].subMinUnit`"
-                      :rules="rules.subMinUnit"
-                    >
-                      <el-input
-                        type="text"
-                        v-model.trim="scope.row.subMinUnit"
-                        placeholder="填写单位"
-                      />
-                    </el-form-item>
-                  </el-col>
-                </el-row>
-              </div>
+                      </el-option>
+                    </el-select>
+                  </el-form-item>
+                </el-col>
+                <el-col :span="6">
+                  <el-form-item
+                    :prop="`klRuleByIdSub[${scope.$index}].subMinValue`"
+                    :rules="[
+                      {
+                        validator: (rule, value, callback) => {
+                          subMinValueRule(scope, rule, value, callback);
+                        },
+                        trigger: 'blur'
+                      }
+                    ]"
+                  >
+                    <el-input
+                      type="text"
+                      v-model="scope.row.subMinValue"
+                      placeholder="填写数值"
+                    />
+                  </el-form-item>
+                </el-col>
+                <el-col :span="6">
+                  <el-form-item
+                    :prop="`klRuleByIdSub[${scope.$index}].subMinUnit`"
+                    :rules="rules.subMinUnit"
+                  >
+                    <el-input
+                      type="text"
+                      v-model.trim="scope.row.subMinUnit"
+                      placeholder="填写单位"
+                    />
+                  </el-form-item>
+                </el-col>
+              </el-row>
             </el-form-item>
             <!-- v-if="klRuleByIdSub[scope.$index].subType !== 6 && klRuleByIdSub[scope.$index].dataType === '2'" -->
             <el-form-item
@@ -407,7 +431,7 @@
             >
               <el-input
                 type="textarea"
-                rows="3"
+                rows="1"
                 placeholder="请输入医学内容"
                 v-model.trim="scope.row.subEqValue"
               ></el-input>
@@ -431,7 +455,7 @@
             >
               <el-input
                 type="textarea"
-                rows="2"
+                rows="1"
                 placeholder="请输入正则表达式"
                 v-model.trim="scope.row.subEqValue"
               ></el-input>
@@ -464,6 +488,20 @@ export default {
     };
   },
   methods: {
+    // table 隔行换色
+    rowStyle({ row }) {
+      if (row.rowIndex % 2 == 0) {
+        return {
+          background: "#DFF7EF"
+        };
+      }
+    },
+    // cellStyle
+    cellStyle({ row, column, rowIndex, columnIndex }) {
+      console.log(column);
+      if (column.label == "组" || column.label == "基础规则") return {};
+      return { "vertical-align": "top", "padding-top": "14px" };
+    },
     // 最大值 选择rule
     subMaxOperator(scope, rule, value, callback) {
       const { subMaxValue, subMinOperator, subMinValue } = scope.row;
@@ -491,10 +529,7 @@ export default {
     subMinOperatorRule(scope, rule, value, callback) {
       const { subMaxValue, subMaxOperator, subMinValue } = scope.row;
       const val = value + subMaxOperator + subMinValue + subMaxValue;
-      if (
-        !val ||
-        (!value && subMinValue !== "最大值和最小值至少完整填写一个,单位不必填")
-      ) {
+      if (!val || (!value && subMinValue !== "")) {
         callback(new Error("最大值和最小值至少完整填写一个,单位不必填"));
       } else {
         callback();

+ 10 - 10
src/components/knowledgeExtra/rules.js

@@ -9,23 +9,23 @@ export const formRules =  {
           callback();
         }
       },
-      trigger: "change"
+      trigger: "blur"
     }
   ],
   parRuleType: [
-    { required: true, message: "请选择规则类型", trigger: ["change"] }
+    { required: true, message: "请选择规则类型", trigger: ["blur"] }
   ],
   parLenCode: [
-    { required: true, message: "请选择规则术语类型", trigger: ["change"] }
+    { required: true, message: "请选择规则术语类型", trigger: ["blur"] }
   ],
   parConceptId: [
     { required: true, message: "请输入医学标准术语", trigger: ["blur"] }
   ],
   parHasSub: [
-    { required: true, message: "请选择有无子条件", trigger: ["change"] }
+    { required: true, message: "请选择有无子条件", trigger: ["blur"] }
   ],
   parMsg: [
-    { required: true, message: "请输入附加信息", trigger: ["change"] },
+    { required: true, message: "请输入附加信息", trigger: ["blur"] },
     {
       validator: (rule, value, callback) => {
         if (value.length > 100) {
@@ -34,7 +34,7 @@ export const formRules =  {
           callback();
         }
       },
-      trigger: "change"
+      trigger: "blur"
     }
   ],
 
@@ -51,24 +51,24 @@ export const tableRules = {
           callback();
         }
       },
-      trigger: "change"
+      trigger: "blur"
     }
   ],
   subType: [
-    { required: true, message: "请选择基础规则类型", trigger: ["change"] }
+    { required: true, message: "请选择基础规则类型", trigger: ["blur"] }
   ],
   subLenCode: [
     {
       required: true,
       message: "请选择基础规则术语类型",
-      trigger: ["change"]
+      trigger: ["blur"]
     }
   ],
   subConceptId: [
     { required: true, message: "请输入医学标准术语", trigger: ["blur"] }
   ],
   dataType: [
-    { required: true, message: "请选择类型", trigger: ["change"] }
+    { required: true, message: "请选择类型", trigger: ["blur"] }
   ],
   
   

BIN
src/images/icon-collect.png