liuxiangqi 1 år sedan
förälder
incheckning
54bed7ae57

BIN
src/assets/logo/logo.png


BIN
src/assets/logo/logo1.png


+ 79 - 4
src/utils/validate.js

@@ -58,10 +58,10 @@ export function validAlphabets(str) {
  * @param {string} email
  * @returns {Boolean}
  */
-export function validEmail(email) {
-  const reg = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
-  return reg.test(email)
-}
+// export function validEmail(email) {
+//   const reg = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
+//   return reg.test(email)
+// }
 
 /**
  * @param {string} str
@@ -153,3 +153,78 @@ export function validAdress(rule, value, cb) {
     cb()
   }
 }
+/**
+ * 邮箱
+ * @param {*} s
+ */
+export function isEmail(s) {
+  // return /^([a-zA-Z0-9_-])+@([a-zA-Z0-9_-])+((.[a-zA-Z0-9_-]{2,3}){1,2})$/.test(s)
+  return /^[A-Za-z\d]+([-_.][A-Za-z\d]+)*@([A-Za-z\d]+[-.])+[A-Za-z\d]{2,4}$/.test(s)
+}
+
+/**
+ * 手机号码
+ * @param {*} s
+ */
+export function isMobile(s) {
+  return /^[1][3|4|5|7|8|9][0-9]{9}$/.test(s)
+}
+
+/**
+ * 电话号码
+ * @param {*} s
+ */
+export function isPhone(s) {
+  // return /^([0-9]{3,4}-)?[0-9]{7,8}$/.test(s)
+  return /^((0\d{2,3}(-)?\d{7,8})|(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8})$/.test(s)
+}
+
+/**
+ * 汉字
+ * @param {*} s
+ */
+export function isZhcn(s, m, n) {
+  var re = new RegExp('^[\u2E80-\u9FFF]{' + m + ',' + n + '}$', 'gim')
+  return re.test(s)
+}
+
+/**********以下为公共验证方法***********/
+export function validEmail(rule, value, cb) {
+  if (value) {
+    if (!isEmail(value)) {
+      cb(new Error('邮箱格式错误'))
+    } else {
+      cb()
+    }
+  } else {
+    cb()
+  }
+}
+
+export function validMobile(rule, value, cb) {
+  if (value) {
+    if (!isMobile(value)) {
+      cb(new Error('请输入正确的手机号'))
+    } else {
+      cb()
+    }
+  } else {
+    cb()
+  }
+}
+
+export function validPhone(rule, value, cb) {
+  if (!isPhone(value)) {
+    cb(new Error('固定电话号码格式错误,格式如xxx-xxxxxxxx'))
+  } else {
+    cb()
+  }
+}
+
+export function validZhcn(rule, value, cb) {
+  if (!isZhcn(value, 1, 25)) {
+    cb(new Error('仅可输入汉字'))
+  } else {
+    cb()
+  }
+}

+ 4 - 3
src/views/enterprise/declare/index.vue

@@ -18,7 +18,7 @@
             </el-select>
           </el-form-item>
         <el-form-item label="年份" prop="year">
-          <el-date-picker v-model="queryParams.year" type="year" placeholder="选择年" style="width: 200px;" value-format="yyyy"></el-date-picker>
+          <el-date-picker v-model="years" type="years" placeholder="选择一个或多个" style="width: 200px;" value-format="yyyy"></el-date-picker>
         </el-form-item>
         <el-form-item label="企业名称" prop="entName">
           <el-input v-model="queryParams.entName" clearable style="width: 200px;" placeholder="请输入企业名称"></el-input>
@@ -84,6 +84,7 @@
   export default {
     data () {
       return {
+        years: [],
         loading: false,
         provinceDataList: [],
         cityDataList: [],
@@ -177,7 +178,6 @@
             }else if(this.userType == 'GOV_CITY') {
               this.districtDataList = res.data
             }
-
           }
         })
       },
@@ -209,6 +209,7 @@
       },
       getList() {
         this.loading = true;
+        this.queryParams.year = this.years.join(',')
         listDeclareCommonApi(this.queryParams).then(response => {
           this.list = response.data.records;
           this.total = response.data.total;
@@ -218,7 +219,6 @@
       handleDownload(row) {
         downLoadZip('/project/download/' +row.id, "项目附件")
       },
-
       // 查看
       handleView(row) {
         this.$router.push("/declare/info/"+row.id)
@@ -242,6 +242,7 @@
       },
       // 重置
       resetQuery() {
+        this.years = [];
         this.resetForm("queryForm");
         this.handleQuery();
       },

+ 17 - 4
src/views/enterprise/ent/edit.vue

@@ -347,7 +347,7 @@ import ImageUpload from '@/components/ImageUpload'
 import {getEnclosureApi,entUserAudit} from "@/api/enterprise/project/project"
 import UploadEnclosure from "./components/UploadEnclosure"
 import {deleteEnclosureApi} from '@/api/enterprise/project/project'
-import { validIDcard,validAmount,validNumber,validAdress } from '@/utils/validate'
+import { validIDcard,validAmount,validNumber,validAdress,validPhone,validZhcn,validEmail } from '@/utils/validate'
 
 export default {
   name: "First",
@@ -422,7 +422,13 @@ export default {
         confirmPassword: "",
       },
       total: 0,
-      registerRules: {
+      registerRules: {
+        linkPhone: [
+          { validator: validPhone, trigger: "blur", message: "请输入正确的固定电话格式,例如xxxxxxxxxxx,xxxx-xxxxxxx" },
+        ],
+        legalPhone: [
+          { validator: validPhone, trigger: "blur", message: "请输入正确的固定电话格式,例如xxxxxxxxxxx,xxxx-xxxxxxx" },
+        ],
         userName: [
           { required: true, trigger: "blur", message: "请输入您的账号" },
           { min: 2, max: 20, message: '用户账号长度必须介于 2 和 20 之间', trigger: 'blur' }
@@ -448,11 +454,18 @@ export default {
           }
         ],
         email: [
-          { required: true, trigger: ["blur", "change"], message: "请输入邮箱",type: "email", },
+          { required: true, trigger: "blur", message: "请输入邮箱" },
+          { validator: validEmail, trigger: 'blur'}
+        ],
+        legalEmail: [
+          { validator: validEmail, trigger: 'blur'}
+        ],
+        linkEmail: [
+          { validator: validEmail, trigger: 'blur'}
         ],
         entName: [
           { required: true, trigger: "blur", message: "请输入企业名称" },
-          {max: 30, message: '最多输入30个字符', trigger: 'blur' }
+          { validator: validZhcn, trigger: 'blur' }
         ],
         license: [
           { required: true, trigger: "blur", message: "请输入统一社会信用代码" },

+ 6 - 1
src/views/enterprise/project/components/EntBasic.vue

@@ -6,6 +6,11 @@
       </h3>
       <el-row :gutter="40">
         <el-col :span="12">
+          <el-form-item label="项目名称" prop="projectName">
+            <el-input v-model="form.projectName" type="text" placeholder="请输入项目名称" :disabled="disabledVisible"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
           <el-form-item label="企业名称" prop="entName">
             <el-input v-model="form.entName" type="text" placeholder="请输入企业名称" disabled></el-input>
           </el-form-item>
@@ -227,7 +232,7 @@ export default {
         ],
         linkPhone: [
           { required: true, trigger: "blur", message: "请输入联系电话(座机)" },
-          { max: 11, message: '请输入正确的电话格式', trigger: 'blur' }
+          // { max: 11, message: '请输入正确的电话格式', trigger: 'blur' }
         ],
         linkMobile: [
           { required: true, trigger: "blur", message: "请输入手机号" },

+ 8 - 2
src/views/enterprise/project/components/FinBasic.vue

@@ -6,6 +6,11 @@
       </h3>
       <el-row :gutter="40">
         <el-col :span="12">
+          <el-form-item label="项目名称" prop="projectName">
+            <el-input v-model="form.projectName" type="text" placeholder="请输入项目名称" :disabled="disabledVisible"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
           <el-form-item label="企业名称" prop="entName">
             <el-input v-model="form.entName" type="text" placeholder="请输入企业名称" disabled></el-input>
           </el-form-item>
@@ -159,7 +164,7 @@ import { editProjectApi,getProjectInfoApi,synFinApi } from "@/api/enterprise/pro
 import { techScopeOptions,yesOrNoOptions,businessIndustryOptions } from "@/utils/dataFormat"
 import FileUpload from '@/components/FileUpload'
 import { listEntUserApi } from "@/api/ent/ent"
-import { validAmount,validNumber,validPercentage} from '@/utils/validate'
+import { validAmount,validNumber,validPercentage,validPhone} from '@/utils/validate'
 
 export default {
   name: "First",
@@ -228,7 +233,8 @@ export default {
         ],
         linkPhone: [
           { required: true, trigger: "blur", message: "请输入联系电话(座机)" },
-          { max: 11, message: '请输入正确的电话格式', trigger: 'blur' }
+          // { max: 11, message: '请输入正确的电话格式', trigger: 'blur' }
+          { validator: validPhone, trigger: 'blur'}
         ],
         linkMobile: [
           { required: true, trigger: "blur", message: "请输入手机号" },

+ 6 - 1
src/views/enterprise/project/components/TechBasic.vue

@@ -6,6 +6,11 @@
       </h3>
       <el-row :gutter="40">
         <el-col :span="12">
+          <el-form-item label="项目名称" prop="projectName">
+            <el-input v-model="form.projectName" type="text" placeholder="请输入项目名称" :disabled="disabledVisible"></el-input>
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
           <el-form-item label="企业名称" prop="entName">
             <el-input v-model="form.entName" type="text" placeholder="请输入企业名称" disabled></el-input>
           </el-form-item>
@@ -227,7 +232,7 @@ export default {
         ],
         linkPhone: [
           { required: true, trigger: "blur", message: "请输入联系电话(座机)" },
-          { max: 11, message: '请输入正确的电话格式', trigger: 'blur' }
+          // { max: 11, message: '请输入正确的电话格式', trigger: 'blur' }
         ],
         linkMobile: [
           { required: true, trigger: "blur", message: "请输入手机号" },

+ 49 - 17
src/views/enterprise/project/components/addProject.vue

@@ -25,8 +25,22 @@
           <el-radio v-for="(item, index) in yesOrNoOptions" :key="index" :label="item.dictValue">{{item.dictLabel}}</el-radio>
         </el-radio-group>
       </el-form-item>
-        <el-form-item label="项目日期" prop="projectTime">
+        <!-- <el-form-item label="项目日期" prop="projectTime">
           <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-form-item label="项目开始时期" prop="projectStartDate">
+          <el-date-picker
+                v-model="form.projectStartDate"
+                type="date"
+                placeholder="选择开始日期" :picker-options="startPickerOptions" value-format="yyyy-MM-dd" format="yyyy-MM-dd">
+              </el-date-picker>
+        </el-form-item>
+        <el-form-item label="项目结束日期" prop="projectEndDate">
+          <el-date-picker
+                v-model="form.projectEndDate"
+                type="date"
+                placeholder="选择结束日期" :picker-options="endPickerOptions" value-format="yyyy-MM-dd" format="yyyy-MM-dd">
+              </el-date-picker>
         </el-form-item>
     </el-form>
     <div slot="footer" class="dialog-footer">
@@ -57,8 +71,7 @@
           finUserId: '',
           overYearFlag: 1,
           projectStartDate: '',
-          projectEndDate: '',
-          projectTime: [],
+          projectEndDate: ''
         },
         rules: {
           projectNo: [
@@ -81,10 +94,29 @@
           overYearFlag: [
             {required: true, message: '请选择是否跨年', trigger: 'change'}
           ],
-          projectTime: [
-            {required: true, message: '请选择项目周期', trigger: 'change', type: 'array'}
+          projectStartDate: [
+            {required: true, message: '请选择项目开始时间', trigger: 'change'}
+          ],
+          projectEndDate: [
+            {required: true, message: '请选择项目结束时间', trigger: 'change'}
           ]
-        }
+        },
+        startPickerOptions: {
+          disabledDate: (time) => {
+            if (!this.form.projectEndDate) {
+              return false
+            }
+            return time.getTime() > new Date(this.form.projectEndDate).getTime()
+          }
+        },
+        endPickerOptions: {
+          disabledDate: (time) => {
+            if (!this.form.projectStartDate) {
+              return false
+            }
+            return time.getTime() < new Date(this.form.projectStartDate).getTime()
+          }
+        },
       }
     },
     computed: {
@@ -140,17 +172,17 @@
         this.open = false
       },
     },
-    watch: {
-      "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 = ''
-        }
-      }
-    }
+    // watch: {
+    //   "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 = ''
+    //     }
+    //   }
+    // }
   }
 </script>
 

+ 1 - 1
src/views/enterprise/project/index.vue

@@ -21,7 +21,7 @@
           <el-date-picker
                 type="years"
                 v-model="years"
-                placeholder="选择一个或多个年" value-format="yyyy">
+                placeholder="选择一个或多个年" value-format="yyyy">
               </el-date-picker>
         </el-form-item>
         <el-form-item label="企业名称" prop="entName">