Browse Source

项目表单校验

刘湘琪 2 years ago
parent
commit
3eb31cc5ae

+ 31 - 0
src/utils/validate.js

@@ -111,3 +111,34 @@ export function validAmount(rule, value, cb) {
     cb()
   }
 }
+/**
+ * 数字
+ * @param {*} s
+ */
+export function isNumber(s, m, n) {
+  var re = new RegExp('^(0|[1-9][0-9]*)$', 'gim')
+  return re.test(s)
+}
+
+export function validNumber(rule, value, cb) {
+  if(!isNumber(value)) {
+    cb(new Error('请输入数字'))
+  } else {
+    cb()
+  }
+}
+/**
+ * 百分比 最大值100
+ * @param {*} s
+ */
+export function isPercentage(s) {
+  return /^(\d?\d(\.\d{0,4})?|100(\.[0]{0,4})?)$/.test(s)
+}
+// 利率,百分百
+export function validPercentage(rule, value, cb) {
+  if (!isPercentage(value)) {
+    cb(new Error('仅可以输入数字和小数点,最多保留四位小数,最大值100'))
+  } else {
+    cb()
+  }
+}

+ 107 - 44
src/views/enterprise/project/components/EntBasic.vue

@@ -89,7 +89,7 @@
         </el-col>
         <el-col :span="12">
           <el-form-item label="项目时间段" prop="projectTime">
-            <el-date-picker v-model="projectTime" placeholder="选择日期" type="daterange" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
+            <el-date-picker v-model="form.projectTime" placeholder="选择日期" type="daterange" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
           </el-form-item>
         </el-col>
       </el-row>
@@ -116,25 +116,25 @@
             </el-radio-group>
           </el-form-item>
         </el-col>
-        <!-- <template v-if="techVisible"> -->
+        <template v-if="form.techFlag == 1">
           <el-col :span="24">
             <el-form-item label="高新技术企业所属技术领域" prop="techScopeArray">
-              <el-checkbox-group v-model="techScopeArray">
+              <el-checkbox-group v-model="form.techScopeArray">
                 <el-checkbox v-for="(item, index) in techScopeOptions" :label="item.dictLabel" :key="index">{{item.dictLabel}}</el-checkbox>
               </el-checkbox-group>
             </el-form-item>
           </el-col>
           <el-col :span="24">
             <el-form-item label="证书有效期限" prop="lisenceTime">
-              <el-date-picker v-model="lisenceTime" placeholder="选择日期" type="daterange" value-format="yyyy-MM" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
+              <el-date-picker v-model="form.lisenceTime" placeholder="选择日期" type="daterange" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" @change="lisenceChange"></el-date-picker>
             </el-form-item>
           </el-col>
           <el-col :span="24">
-            <el-form-item label="高新证书" prop="techLicense">
+            <el-form-item label="高新证书" prop="techLicense" ref="techLicenseUpload">
               <FileUpload :file="{url: form.techLicense, name: form.fileName}" @input="handleSuccess">上传证书</FileUpload>
             </el-form-item>
           </el-col>
-        <!-- </template> -->
+        </template>
       </el-row>
       <template v-if="userType == 'ENT_ADMIN'">
         <el-row :gutter="40">
@@ -155,6 +155,7 @@ import { editProjectApi,getProjectInfoApi } from "@/api/enterprise/project/proje
 import { techScopeOptions,yesOrNoOptions } from "@/utils/dataFormat"
 import FileUpload from '@/components/FileUpload'
 import { listEntUserApi } from "@/api/ent/ent"
+import { validAmount,validNumber,validPercentage} from '@/utils/validate'
 
 export default {
   name: "First",
@@ -181,31 +182,89 @@ export default {
       yesOrNoOptions: yesOrNoOptions,
       provinceDataList: [],
       cityDataList: [],
-      districtDataList: [],
-      techScopeArray: ['电子信息'],
-      lisenceTime: [],
-      projectTime: [],
+      districtDataList: [],
       form: {
+        techScopeArray: ['电子信息'],
+        lisenceTime: [],
+        projectTime: [],
         entName: '',
         projectOwner: 1,
         techStartDate: '',
         techEndDate: '',
         projectStartDate: '',
         projectEndDate: '',
-        overYearFlag: 1,
+        overYearFlag: 1,
+        techFlag: 1,
       },
       rules: {
-        userName: [
-          { required: true, trigger: "blur", message: "请输入您的账号" },
-          { min: 2, max: 20, message: '用户账号长度必须介于 2 和 20 之间', trigger: 'blur' }
-        ],
-        password: [
-          { required: true, trigger: "blur", message: "请输入您的密码" },
-          { min: 5, max: 20, message: '用户密码长度必须介于 5 和 20 之间', trigger: 'blur' }
-        ],
+        userName: [
+          { required: true, trigger: "blur", message: "请输入您的账号" },
+          { min: 2, max: 20, message: '用户账号长度必须介于 2 和 20 之间', trigger: 'blur' }
+        ],
+        password: [
+          { required: true, trigger: "blur", message: "请输入您的密码" },
+          { min: 5, max: 20, message: '用户密码长度必须介于 5 和 20 之间', trigger: 'blur' }
+        ],
         address: [
           { required: true, trigger: "blur", message: "请输入通讯地址" },
           { max: 100, message: '不超过100字符', trigger: 'blur' }
+        ],
+        linkName: [
+          { required: true, trigger: "blur", message: "请输入企业联系人" },
+          { max: 100, message: '不超过100字符', trigger: 'blur' }
+        ],
+        linkPhone: [
+          { required: true, trigger: "blur", message: "请输入联系电话(座机)" },
+          { max: 11, message: '请输入正确的电话格式', trigger: 'blur' }
+        ],
+        linkMobile: [
+          { required: true, trigger: "blur", message: "请输入手机号" },
+          {
+            pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
+            message: "请输入正确的手机号码",
+            trigger: "blur"
+          }
+        ],
+        totoalPersons: [
+          { required: true, trigger: "blur", message: "请输入职工总人数" },
+          { validator: validNumber, trigger: 'blur'}
+        ],
+        sales: [
+          { required: true, trigger: "blur", message: "请输入年度企业销售收入(万元)" },
+          { validator: validAmount, trigger: 'blur'}
+        ],
+        techPersons: [
+          { required: true, trigger: "blur", message: "请输入研发人数" },
+          { validator: validNumber, trigger: 'blur'}
+        ],
+        techInvest: [
+          { required: true, trigger: "blur", message: "请输入年度研发投入(万元)" },
+          { validator: validAmount, trigger: 'blur'}
+        ],
+        techRate: [
+          { required: true, trigger: "blur", message: "请输入占销售收入比例(%)" },
+          { validator: validPercentage, trigger: 'blur'}
+        ],
+        industry: [
+          { required: true, trigger: "change", message: "请选择企业所属行业" }
+        ],
+        innovateFlag: [
+          { required: true, trigger: "change", message: "请选择国家自主创新示范区企业" }
+        ],
+        overYearFlag: [
+          { required: true, trigger: "change", message: "请选择是否跨年" }
+        ],
+        smallFlag: [
+          { required: true, trigger: "change", message: "请选择是否科技型中小企业" }
+        ],
+        techFlag: [
+          { required: true, trigger: "change", message: "请选择是否高新技术企业" }
+        ],
+        techLicense: [
+          { required: true, trigger: "change", message: "请上传高新企业证书" }
+        ],
+        lisenceTime: [
+          { required: true, trigger: "change", message: "请选择证书有效期限", type: 'array' }
         ]
       },
       loading: false,
@@ -221,17 +280,16 @@ export default {
     setTimeout(() => {        // 加延时
       this.getEntData()
     }, 500);
-
+    if(this.form.techFlag == 1) {
+      this.techVisible = true
+    }else {
+      this.techVisible = false
+    }
   },
   methods: {
-    // techFlagChange() {
-    //   if(this.form.techFlag == 1) {
-    //     this.techVisible = true
-    //     this.form.techScopeArray = ['电子信息']
-    //   }else {
-    //     this.techVisible = false
-    //   }
-    // },
+    lisenceChange(date) {
+      console.log(date)
+    },
     getEntData() {
       listEntUserApi().then(res => {
         this.form.entName = res.data.entName
@@ -242,18 +300,22 @@ export default {
         let obj = res.data.entProject || {}
         this.form = obj || {}
         this.form.fileName = '高新证书'
+        let arr = ['电子信息']
+        this.$set(this.form, 'techScopeArray', arr)
         if(obj.techScope) {
-          this.techScopeArray = obj.techScope.split(',')
+          this.form.techScopeArray = obj.techScope.split(',') || ['电子信息']
         }
-        this.projectTime = []
+
         if(obj.projectStartDate) {
-          this.projectTime[0] = obj.projectStartDate
-          this.projectTime[1] = obj.projectEndDate
+          this.form.projectTime = []
+          this.form.projectTime[0] = obj.projectStartDate
+          this.form.projectTime[1] = obj.projectEndDate
         }
-        this.lisenceTime = []
+
         if(obj.techStartDate) {
-          this.lisenceTime[0] = obj.techStartDate
-          this.lisenceTime[1] = obj.techEndDate
+          this.form.lisenceTime = []
+          this.form.lisenceTime[0] = obj.techStartDate
+          this.form.lisenceTime[1] = obj.techEndDate
         }
         if(obj.techFlag == 1) {
           this.techVisible = true
@@ -261,6 +323,7 @@ export default {
       })
     },
     handleSuccess(file) {
+      this.$refs.techLicenseUpload.clearValidate()
       this.form.techLicense = file.url;
       this.form.fileName = '高新证书';
     },
@@ -268,7 +331,7 @@ export default {
       this.$refs.form.validate(valid => {
         if(valid) {
           this.loading = true
-          this.form.techScope = this.techScopeArray.join(',')
+          this.form.techScope = this.form.techScopeArray.join(',')
           editProjectApi(this.form).then(res => {
             this.loading = false
             this.$store.dispatch("tagsView/delView", this.$route);
@@ -285,19 +348,19 @@ export default {
         this.form.entProjectList = this.entProjectList || {}
       }
     },
-    'projectTime'(val) {
-      if(this.projectTime) {
-        this.form.projectStartDate = this.projectTime[0]
-        this.form.projectEndDate = this.projectTime[1]
+    'form.projectTime'(val) {
+      if(this.form.projectTime) {
+        this.form.projectStartDate = this.form.projectTime[0]
+        this.form.projectEndDate = this.form.projectTime[1]
       }else {
         this.form.projectStartDate = ''
         this.form.projectEndDate = ''
       }
     },
-    'lisenceTime'(val) {
-      if(this.lisenceTime) {
-        this.form.techEndDate = this.lisenceTime[1]
-        this.form.techStartDate = this.lisenceTime[0]
+    'form.lisenceTime'(val) {
+      if(this.form.lisenceTime) {
+        this.form.techEndDate = this.form.lisenceTime[1]
+        this.form.techStartDate = this.form.lisenceTime[0]
       }else {
         this.form.techStartDate = ''
         this.form.techEndDate = ''

+ 87 - 21
src/views/enterprise/project/components/FinBasic.vue

@@ -7,7 +7,7 @@
       <el-row :gutter="40">
         <el-col :span="12">
           <el-form-item label="企业名称" prop="entName">
-            <el-input v-model="form.entName" type="text" auto-complete="off" placeholder="请输入企业名称"></el-input>
+            <el-input v-model="form.entName" type="text" auto-complete="off" placeholder="请输入企业名称" disabled></el-input>
           </el-form-item>
         </el-col>
         <el-col :span="12">
@@ -116,10 +116,10 @@
             </el-radio-group>
           </el-form-item>
         </el-col>
-        <!-- <template v-if="form.techFlag == 1"> -->
+        <template v-if="form.techFlag == 1">
           <el-col :span="24">
             <el-form-item label="高新技术企业所属技术领域" prop="techScopeArray">
-              <el-checkbox-group v-model="techScopeArray">
+              <el-checkbox-group v-model="form.techScopeArray">
                 <el-checkbox v-for="(item, index) in techScopeOptions" :label="item.dictLabel" :key="index">{{item.dictLabel}}</el-checkbox>
               </el-checkbox-group>
             </el-form-item>
@@ -130,11 +130,11 @@
             </el-form-item>
           </el-col>
           <el-col :span="24">
-            <el-form-item label="高新证书" prop="techLicense">
+            <el-form-item label="高新证书" prop="techLicense" ref="techLicenseUpload">
               <FileUpload :file="{url: form.techLicense, name: form.fileName}" @input="handleSuccess">上传证书</FileUpload>
             </el-form-item>
           </el-col>
-        <!-- </template> -->
+        </template>
       </el-row>
       <template v-if="userType == 'ENT_FIN' || userType == 'ENT_ADMIN_FIN'">
         <el-row :gutter="40">
@@ -157,6 +157,7 @@ import { editProjectApi,getProjectInfoApi,synFinApi } from "@/api/enterprise/pro
 import { techScopeOptions,yesOrNoOptions } from "@/utils/dataFormat"
 import FileUpload from '@/components/FileUpload'
 import { listEntUserApi } from "@/api/ent/ent"
+import { validAmount,validNumber,validPercentage} from '@/utils/validate'
 
 export default {
   name: "First",
@@ -183,8 +184,7 @@ export default {
       yesOrNoOptions: yesOrNoOptions,
       provinceDataList: [],
       cityDataList: [],
-      districtDataList: [],
-      techScopeArray: ['电子信息'],
+      districtDataList: [],
       form: {
         id: undefined,
         entId: undefined,
@@ -194,18 +194,79 @@ export default {
         techEndDate: '',
         projectTime: [],
         projectStartDate: '',
-        projectEndDate: ''
+        projectEndDate: '',
+        techScopeArray: ['电子信息']
       },
       rules: {
-        userName: [
-          { required: true, trigger: "blur", message: "请输入您的账号" },
-          { min: 2, max: 20, message: '用户账号长度必须介于 2 和 20 之间', trigger: 'blur' }
-        ],
-        password: [
-          { required: true, trigger: "blur", message: "请输入您的密码" },
-          { min: 5, max: 20, message: '用户密码长度必须介于 5 和 20 之间', trigger: 'blur' }
-        ],
-        code: [{ required: true, trigger: "change", message: "请输入验证码" }]
+        userName: [
+          { required: true, trigger: "blur", message: "请输入您的账号" },
+          { min: 2, max: 20, message: '用户账号长度必须介于 2 和 20 之间', trigger: 'blur' }
+        ],
+        password: [
+          { required: true, trigger: "blur", message: "请输入您的密码" },
+          { min: 5, max: 20, message: '用户密码长度必须介于 5 和 20 之间', trigger: 'blur' }
+        ],
+        address: [
+          { required: true, trigger: "blur", message: "请输入通讯地址" },
+          { max: 100, message: '不超过100字符', trigger: 'blur' }
+        ],
+        linkName: [
+          { required: true, trigger: "blur", message: "请输入企业联系人" },
+          { max: 100, message: '不超过100字符', trigger: 'blur' }
+        ],
+        linkPhone: [
+          { required: true, trigger: "blur", message: "请输入联系电话(座机)" },
+          { max: 11, message: '请输入正确的电话格式', trigger: 'blur' }
+        ],
+        linkMobile: [
+          { required: true, trigger: "blur", message: "请输入手机号" },
+          {
+            pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
+            message: "请输入正确的手机号码",
+            trigger: "blur"
+          }
+        ],
+        totoalPersons: [
+          { required: true, trigger: "blur", message: "请输入职工总人数" },
+          { validator: validNumber, trigger: 'blur'}
+        ],
+        sales: [
+          { required: true, trigger: "blur", message: "请输入年度企业销售收入(万元)" },
+          { validator: validAmount, trigger: 'blur'}
+        ],
+        techPersons: [
+          { required: true, trigger: "blur", message: "请输入研发人数" },
+          { validator: validNumber, trigger: 'blur'}
+        ],
+        techInvest: [
+          { required: true, trigger: "blur", message: "请输入年度研发投入(万元)" },
+          { validator: validAmount, trigger: 'blur'}
+        ],
+        techRate: [
+          { required: true, trigger: "blur", message: "请输入占销售收入比例(%)" },
+          { validator: validPercentage, trigger: 'blur'}
+        ],
+        industry: [
+          { required: true, trigger: "change", message: "请选择企业所属行业" }
+        ],
+        innovateFlag: [
+          { required: true, trigger: "change", message: "请选择国家自主创新示范区企业" }
+        ],
+        overYearFlag: [
+          { required: true, trigger: "change", message: "请选择是否跨年" }
+        ],
+        smallFlag: [
+          { required: true, trigger: "change", message: "请选择是否科技型中小企业" }
+        ],
+        techFlag: [
+          { required: true, trigger: "change", message: "请选择是否高新技术企业" }
+        ],
+        techLicense: [
+          { required: true, trigger: "change", message: "请上传高新企业证书" }
+        ],
+        lisenceTime: [
+          { required: true, trigger: "change", message: "请选择证书有效期限", type: 'array' }
+        ]
       },
       loading: false,
       captchaOnOff: true
@@ -253,18 +314,22 @@ export default {
         this.techId = res.data.techProject.id || undefined
         this.adminId = res.data.entProject.id
         this.form = obj || {}
-
         this.form.fileName = '高新证书'
+
+        let arr = ['电子信息']
+        this.$set(this.form, 'techScopeArray', arr)
         if(obj.techScope) {
-          this.techScopeArray = obj.techScope.split(',')
+          this.form.techScopeArray = obj.techScope.split(',') || ['电子信息']
         }
-        this.form.projectTime = []
+
         if(obj.projectStartDate) {
+          this.form.projectTime = []
           this.form.projectTime[0] = obj.projectStartDate
           this.form.projectTime[1] = obj.projectEndDate
         }
-        this.form.lisenceTime = []
+
         if(obj.techStartDate) {
+          this.form.lisenceTime = []
           this.form.lisenceTime[0] = obj.techStartDate
           this.form.lisenceTime[1] = obj.techEndDate
         }
@@ -276,6 +341,7 @@ export default {
     handleSuccess(file) {
       this.form.techLicense = file.url;
       this.form.fileName = '高新证书';
+      this.$refs.techLicenseUpload.clearValidate()
     },
     handleSaleSuccess(files) {
       files.forEach(item => {

+ 99 - 33
src/views/enterprise/project/components/TechBasic.vue

@@ -41,6 +41,7 @@
         <el-col :span="12">
           <el-form-item label="年度企业销售收入(万元)" prop="sales">
             <el-input v-model="form.sales" type="text" auto-complete="off" placeholder="请输入年度企业销售收入(万元)">
+              <template slot="append">万元</template>
             </el-input>
           </el-form-item>
         </el-col>
@@ -53,6 +54,7 @@
         <el-col :span="12">
           <el-form-item label="年度研发投入(万元)" prop="techInvest">
             <el-input v-model="form.techInvest" type="text" auto-complete="off" placeholder="请输入年度研发投入(万元)">
+              <template slot="append">万元</template>
             </el-input>
           </el-form-item>
         </el-col>
@@ -89,7 +91,7 @@
         </el-col>
         <el-col :span="12">
           <el-form-item label="项目时间段" prop="projectTime">
-            <el-date-picker v-model="projectTime" placeholder="选择日期" type="daterange" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
+            <el-date-picker v-model="form.projectTime" placeholder="选择日期" type="daterange" value-format="yyyy-MM-dd" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
           </el-form-item>
         </el-col>
       </el-row>
@@ -116,25 +118,25 @@
             </el-radio-group>
           </el-form-item>
         </el-col>
-        <!-- <template v-if="form.techFlag == 1"> -->
+        <template v-if="form.techFlag == 1">
           <el-col :span="24">
             <el-form-item label="高新技术企业所属技术领域" prop="techScopeArray">
-              <el-checkbox-group v-model="techScopeArray">
+              <el-checkbox-group v-model="form.techScopeArray">
                 <el-checkbox v-for="(item, index) in techScopeOptions" :label="item.dictLabel" :key="index">{{item.dictLabel}}</el-checkbox>
               </el-checkbox-group>
             </el-form-item>
           </el-col>
           <el-col :span="24">
             <el-form-item label="证书有效期限" prop="lisenceTime">
-              <el-date-picker v-model="lisenceTime" placeholder="选择日期" type="daterange" value-format="yyyy-MM" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
+              <el-date-picker v-model="form.lisenceTime" placeholder="选择日期" type="daterange" value-format="yyyy-MM" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期"></el-date-picker>
             </el-form-item>
           </el-col>
           <el-col :span="24">
-            <el-form-item label="高新证书" prop="techLicense">
+            <el-form-item label="高新证书" prop="techLicense" ref="techLicenseUpload">
               <FileUpload :file="{url: form.techLicense, name: form.fileName}" @input="handleSuccess">上传证书</FileUpload>
             </el-form-item>
           </el-col>
-        <!-- </template> -->
+        </template>
       </el-row>
       <template v-if="userType == 'ENT_TECH' || userType == 'ENT_ADMIN_TECH'">
         <el-row :gutter="40">
@@ -156,6 +158,7 @@ import { editProjectApi,getProjectInfoApi,synTechApi } from "@/api/enterprise/pr
 import { techScopeOptions,yesOrNoOptions } from "@/utils/dataFormat"
 import FileUpload from '@/components/FileUpload'
 import { listEntUserApi } from "@/api/ent/ent"
+import { validAmount,validNumber,validPercentage} from '@/utils/validate'
 
 export default {
   name: "First",
@@ -181,11 +184,11 @@ export default {
       yesOrNoOptions: yesOrNoOptions,
       provinceDataList: [],
       cityDataList: [],
-      districtDataList: [],
-      techScopeArray: ['电子信息'],
-      lisenceTime: [],
-      projectTime: [],
+      districtDataList: [],
       form: {
+        techScopeArray: ['电子信息'],
+        lisenceTime: [],
+        projectTime: [],
         id: undefined,
         entId: undefined,
         projectOwner: 2,
@@ -195,15 +198,75 @@ export default {
         projectEndDate: ''
       },
       rules: {
-        userName: [
-          { required: true, trigger: "blur", message: "请输入您的账号" },
-          { min: 2, max: 20, message: '用户账号长度必须介于 2 和 20 之间', trigger: 'blur' }
-        ],
-        password: [
-          { required: true, trigger: "blur", message: "请输入您的密码" },
-          { min: 5, max: 20, message: '用户密码长度必须介于 5 和 20 之间', trigger: 'blur' }
-        ],
-        code: [{ required: true, trigger: "change", message: "请输入验证码" }]
+        userName: [
+          { required: true, trigger: "blur", message: "请输入您的账号" },
+          { min: 2, max: 20, message: '用户账号长度必须介于 2 和 20 之间', trigger: 'blur' }
+        ],
+        password: [
+          { required: true, trigger: "blur", message: "请输入您的密码" },
+          { min: 5, max: 20, message: '用户密码长度必须介于 5 和 20 之间', trigger: 'blur' }
+        ],
+        address: [
+          { required: true, trigger: "blur", message: "请输入通讯地址" },
+          { max: 100, message: '不超过100字符', trigger: 'blur' }
+        ],
+        linkName: [
+          { required: true, trigger: "blur", message: "请输入企业联系人" },
+          { max: 100, message: '不超过100字符', trigger: 'blur' }
+        ],
+        linkPhone: [
+          { required: true, trigger: "blur", message: "请输入联系电话(座机)" },
+          { max: 11, message: '请输入正确的电话格式', trigger: 'blur' }
+        ],
+        linkMobile: [
+          { required: true, trigger: "blur", message: "请输入手机号" },
+          {
+            pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/,
+            message: "请输入正确的手机号码",
+            trigger: "blur"
+          }
+        ],
+        totoalPersons: [
+          { required: true, trigger: "blur", message: "请输入职工总人数" },
+          { validator: validNumber, trigger: 'blur'}
+        ],
+        sales: [
+          { required: true, trigger: "blur", message: "请输入年度企业销售收入(万元)" },
+          { validator: validAmount, trigger: 'blur'}
+        ],
+        techPersons: [
+          { required: true, trigger: "blur", message: "请输入研发人数" },
+          { validator: validNumber, trigger: 'blur'}
+        ],
+        techInvest: [
+          { required: true, trigger: "blur", message: "请输入年度研发投入(万元)" },
+          { validator: validAmount, trigger: 'blur'}
+        ],
+        techRate: [
+          { required: true, trigger: "blur", message: "请输入占销售收入比例(%)" },
+          { validator: validPercentage, trigger: 'blur'}
+        ],
+        industry: [
+          { required: true, trigger: "change", message: "请选择企业所属行业" }
+        ],
+        innovateFlag: [
+          { required: true, trigger: "change", message: "请选择国家自主创新示范区企业" }
+        ],
+        overYearFlag: [
+          { required: true, trigger: "change", message: "请选择是否跨年" }
+        ],
+        smallFlag: [
+          { required: true, trigger: "change", message: "请选择是否科技型中小企业" }
+        ],
+        techFlag: [
+          { required: true, trigger: "change", message: "请选择是否高新技术企业" }
+        ],
+        techLicense: [
+          { required: true, trigger: "change", message: "请上传高新企业证书" }
+        ],
+        lisenceTime: [
+          { required: true, trigger: "change", message: "请选择证书有效期限", type: 'array' }
+        ]
       },
       loading: false,
       captchaOnOff: true
@@ -239,18 +302,20 @@ export default {
         this.adminId = res.data.entProject.id
 
         this.form.fileName = '高新证书'
+        let arr = ['电子信息']
+        this.$set(this.form, 'techScopeArray', arr)
         if(obj.techScope) {
-          this.techScopeArray = obj.techScope.split(',')
+          this.form.techScopeArray = obj.techScope.split(',') || ['电子信息']
         }
-        this.projectTime = []
         if(obj.projectStartDate) {
-          this.projectTime[0] = obj.projectStartDate
-          this.projectTime[1] = obj.projectEndDate
+          this.form.projectTime = []
+          this.form.projectTime[0] = obj.projectStartDate
+          this.form.projectTime[1] = obj.projectEndDate
         }
-        this.lisenceTime = []
         if(obj.techStartDate) {
-          this.lisenceTime[0] = obj.techStartDate
-          this.lisenceTime[1] = obj.techEndDate
+          this.form.lisenceTime = []
+          this.form.lisenceTime[0] = obj.techStartDate
+          this.form.lisenceTime[1] = obj.techEndDate
         }
         if(obj.techFlag == 1) {
           this.techVisible = true
@@ -258,6 +323,7 @@ export default {
       })
     },
     handleSuccess(file) {
+      this.$refs.techLicenseUpload.clearValidate()
       this.form.techLicense = file.url;
       this.form.fileName = '高新证书';
     },
@@ -282,19 +348,19 @@ export default {
         this.form.entProjectList = this.entProjectList || {}
       }
     },
-    'projectTime'(val) {
+    'form.projectTime'(val) {
       if(this.projectTime) {
-        this.form.projectStartDate = this.projectTime[0]
-        this.form.projectEndDate = this.projectTime[1]
+        this.form.projectStartDate = this.form.projectTime[0]
+        this.form.projectEndDate = this.form.projectTime[1]
       }else {
         this.form.projectStartDate = ''
         this.form.projectEndDate = ''
       }
     },
-    'lisenceTime'(val) {
-      if(this.lisenceTime) {
-        this.form.techStartDate = this.lisenceTime[0]
-        this.form.techEndDate = this.lisenceTime[1]
+    'form.lisenceTime'(val) {
+      if(this.form.lisenceTime) {
+        this.form.techStartDate = this.form.lisenceTime[0]
+        this.form.techEndDate = this.form.lisenceTime[1]
       }else {
         this.form.techStartDate = ''
         this.form.techEndDate = ''