zs 1 tahun lalu
induk
melakukan
6b52df8269

+ 5 - 0
src/store/api/user/user.js

@@ -17,6 +17,10 @@ export const UsersStore = defineStore('users', () => {
     const res = await axios.$get(`${url}/${payload}`)
     return res
   }
+  const detail = async (payload) => {
+    const res = await axios.$get(`${url}/detail/${payload}`)
+    return res
+  }
   const create = async (payload) => {
     const res = await axios.$post(`${url}`, payload)
     return res
@@ -33,6 +37,7 @@ export const UsersStore = defineStore('users', () => {
   return {
     query,
     fetch,
+    detail,
     create,
     update,
     del

+ 11 - 10
src/views/center/index.vue

@@ -66,17 +66,17 @@
                   </el-col>
                 </el-form>
               </el-col>
-              <el-row v-if="form.type">
+              <el-row v-if="form.role_type">
                 <el-col :span="24" class="one_1"> 基本资料</el-col>
                 <el-col :span="24" class="one_2">
-                  <expert v-if="form.type == '1'"></expert>
-                  <company v-if="form.type == '2'"></company>
-                  <incubator v-if="form.type == '3'"></incubator>
-                  <competition v-if="form.type == '4'"></competition>
-                  <investment v-if="form.type == '5'"></investment>
-                  <association v-if="form.type == '6'"></association>
-                  <state v-if="form.type == '7'"></state>
-                  <unit v-if="form.type == '8'"></unit>
+                  <expert v-if="form.role_type == 'Expert'"></expert>
+                  <company v-if="form.role_type == 'Company'"></company>
+                  <incubator v-if="form.role_type == 'Incubator'"></incubator>
+                  <competition v-if="form.role_type == 'Competition'"></competition>
+                  <investment v-if="form.role_type == 'Investment'"></investment>
+                  <association v-if="form.role_type == 'Association'"></association>
+                  <state v-if="form.role_type == 'State'"></state>
+                  <unit v-if="form.role_type == 'Unit'"></unit>
                 </el-col>
               </el-row>
             </el-tab-pane>
@@ -216,7 +216,7 @@ onMounted(async () => {
 })
 const search = async () => {
   if (user.value._id) {
-    let res = await store.fetch(user.value._id)
+    let res = await store.detail(user.value._id)
     if (res.errcode == '0') form.value = res.data
   }
 }
@@ -261,6 +261,7 @@ const submitForm = async (formEl) => {
   await formEl.validate(async (valid, fields) => {
     if (valid) {
       const data = cloneDeep(form.value)
+      if (data.role_type) delete data.role_type
       const res = await store.update(data)
       if ($checkRes(res, true)) search()
     } else {

+ 14 - 0
src/views/center/parts/association.vue

@@ -65,6 +65,10 @@
 <script setup>
 // 基础
 const cloneDeep = inject('cloneDeep')
+// 用户信息
+import { UserStore } from '@/store/user'
+const userStore = UserStore()
+const user = computed(() => userStore.user)
 // 表单
 const ruleFormRef = inject('ruleFormRef')
 // 字典表
@@ -96,6 +100,16 @@ const submitForm = async (formEl) => {
     }
   })
 }
+// 请求
+onMounted(async () => {
+  await search()
+})
+const search = async () => {
+  if (user.value._id) {
+    let res = await associationStore.query({ user: user.value._id })
+    if (res.errcode == '0') form.value = res.data[0]
+  }
+}
 </script>
 <style scoped lang="scss">
 .index {

+ 31 - 7
src/views/center/parts/company.vue

@@ -4,7 +4,7 @@
       ref="ruleFormRef"
       :model="form"
       :rules="rules"
-      label-width="100px"
+      label-width="110px"
       class="form"
       label-position="left"
     >
@@ -153,6 +153,10 @@
 <script setup>
 // 基础
 const cloneDeep = inject('cloneDeep')
+// 用户信息
+import { UserStore } from '@/store/user'
+const userStore = UserStore()
+const user = computed(() => userStore.user)
 // 表单
 const ruleFormRef = inject('ruleFormRef')
 // 字典表
@@ -166,12 +170,22 @@ import { CompanyStore } from '@/store/api/user/company'
 const companyStore = CompanyStore()
 const form = ref({})
 const rules = reactive({
-  // nick_name: [{ required: true, message: '请输入昵称', trigger: 'blur' }],
-  // gender: [{ required: true, message: '请选择性别', trigger: 'blur' }],
-  // phone: [{ required: true, validator: validatePhoneNumber, trigger: 'blur' }],
-  // account: [{ required: true, message: '请输入账号', trigger: 'blur' }],
-  // password: [{ required: true, message: '请输入密码', trigger: 'blur' }],
-  // refpassword: [{ required: true, validator: validatePassword, trigger: 'blur' }]
+  logo: [{ required: true, message: '请输入企业Logo', trigger: 'blur' }],
+  name: [{ required: true, message: '请输入企业名称', trigger: 'blur' }],
+  pattern: [{ required: true, message: '请输入企业类型', trigger: 'blur' }],
+  scale: [{ required: true, message: '请输入企业规模', trigger: 'blur' }],
+  type: [{ required: true, message: '请输入所属行业', trigger: 'blur' }],
+  representative: [{ required: true, message: '请输入法定代表人', trigger: 'blur' }],
+  companyStatus: [{ required: true, message: '请输入公司状态', trigger: 'blur' }],
+  create_time: [{ required: true, message: '请输入成立时间', trigger: 'blur' }],
+  code: [{ required: true, message: '请输入统一社会信用代码', trigger: 'blur' }],
+  email: [{ required: true, message: '请输入电子邮箱', trigger: 'blur' }],
+  person: [{ required: true, message: '请输入员工人数', trigger: 'blur' }],
+  region: [{ required: true, message: '请选择地区', trigger: 'blur' }],
+  register: [{ required: true, message: '请输入注册资金', trigger: 'blur' }],
+  is_show: [{ required: true, message: '请选择是否公开', trigger: 'blur' }],
+  brief: [{ required: true, message: '请输入简介', trigger: 'blur' }],
+  address: [{ required: true, message: '请输入地址', trigger: 'blur' }]
 })
 // 上传图片
 const onFUpload = (e) => {
@@ -193,6 +207,16 @@ const submitForm = async (formEl) => {
     }
   })
 }
+// 请求
+onMounted(async () => {
+  await search()
+})
+const search = async () => {
+  if (user.value._id) {
+    let res = await companyStore.query({ user: user.value._id })
+    if (res.errcode == '0') form.value = res.data[0]
+  }
+}
 </script>
 <style scoped lang="scss">
 .index {

+ 14 - 0
src/views/center/parts/competition.vue

@@ -65,6 +65,10 @@
 <script setup>
 // 基础
 const cloneDeep = inject('cloneDeep')
+// 用户信息
+import { UserStore } from '@/store/user'
+const userStore = UserStore()
+const user = computed(() => userStore.user)
 // 表单
 const ruleFormRef = inject('ruleFormRef')
 // 字典表
@@ -96,6 +100,16 @@ const submitForm = async (formEl) => {
     }
   })
 }
+// 请求
+onMounted(async () => {
+  await search()
+})
+const search = async () => {
+  if (user.value._id) {
+    let res = await competitionStore.query({ user: user.value._id })
+    if (res.errcode == '0') form.value = res.data[0]
+  }
+}
 </script>
 <style scoped lang="scss">
 .index {

+ 50 - 13
src/views/center/parts/expert.vue

@@ -91,13 +91,22 @@
           </el-form-item>
         </el-col>
       </el-row>
-      <el-col :span="24">
-        <el-form-item label="是否公开" prop="is_show">
-          <el-radio-group v-model="form.is_show">
-            <el-radio v-for="i in isUseList" :key="i._id" :label="i.value">{{ i.label }}</el-radio>
-          </el-radio-group>
-        </el-form-item>
-      </el-col>
+      <el-row :gutter="20">
+        <el-col :span="12">
+          <el-form-item label="工作单位" prop="work">
+            <el-input clearable v-model="form.work" placeholder="请输入工作单位" />
+          </el-form-item>
+        </el-col>
+        <el-col :span="12">
+          <el-form-item label="是否公开" prop="is_show">
+            <el-radio-group v-model="form.is_show">
+              <el-radio v-for="i in isUseList" :key="i._id" :label="i.value">{{
+                i.label
+              }}</el-radio>
+            </el-radio-group>
+          </el-form-item>
+        </el-col>
+      </el-row>
       <el-col :span="24">
         <el-form-item label="简介" prop="brief">
           <el-input
@@ -117,6 +126,10 @@
 <script setup>
 // 基础
 const cloneDeep = inject('cloneDeep')
+// 用户信息
+import { UserStore } from '@/store/user'
+const userStore = UserStore()
+const user = computed(() => userStore.user)
 // 表单
 const ruleFormRef = inject('ruleFormRef')
 // 字典表
@@ -129,13 +142,27 @@ const cardTypeList = inject('cardTypeList')
 import { ExpertStore } from '@/store/api/user/expert'
 const expertStore = ExpertStore()
 const form = ref({})
+const validateCardNumber = (rule, value, callback) => {
+  var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
+  if (!value) {
+    return callback(new Error('证件号码不能为空'))
+  }
+  if (!reg.test(value)) {
+    return callback(new Error('请输入正确的证件号码'))
+  }
+  callback()
+}
 const rules = reactive({
-  // nick_name: [{ required: true, message: '请输入昵称', trigger: 'blur' }],
-  // gender: [{ required: true, message: '请选择性别', trigger: 'blur' }],
-  // phone: [{ required: true, validator: validatePhoneNumber, trigger: 'blur' }],
-  // account: [{ required: true, message: '请输入账号', trigger: 'blur' }],
-  // password: [{ required: true, message: '请输入密码', trigger: 'blur' }],
-  // refpassword: [{ required: true, validator: validatePassword, trigger: 'blur' }]
+  name: [{ required: true, message: '请输入专家姓名', trigger: 'blur' }],
+  birth: [{ required: true, message: '请输入出生年月', trigger: 'blur' }],
+  cardType: [{ required: true, message: '请选择证件类型', trigger: 'blur' }],
+  card: [{ required: true, validator: validateCardNumber, trigger: 'change' }],
+  direction: [{ required: true, message: '请输入研究方向', trigger: 'blur' }],
+  work: [{ required: true, message: '请输入工作单位', trigger: 'blur' }],
+  education: [{ required: true, message: '请输入学历', trigger: 'blur' }],
+  field: [{ required: true, message: '请输入擅长领域', trigger: 'blur' }],
+  is_show: [{ required: true, message: '请选择是否公开', trigger: 'blur' }],
+  region: [{ required: true, message: '请选择地区', trigger: 'blur' }]
 })
 // 保存
 const submitForm = async (formEl) => {
@@ -152,6 +179,16 @@ const submitForm = async (formEl) => {
     }
   })
 }
+// 请求
+onMounted(async () => {
+  await search()
+})
+const search = async () => {
+  if (user.value._id) {
+    let res = await expertStore.query({ user: user.value._id })
+    if (res.errcode == '0') form.value = res.data[0]
+  }
+}
 </script>
 <style scoped lang="scss">
 .index {

+ 14 - 0
src/views/center/parts/incubator.vue

@@ -65,6 +65,10 @@
 <script setup>
 // 基础
 const cloneDeep = inject('cloneDeep')
+// 用户信息
+import { UserStore } from '@/store/user'
+const userStore = UserStore()
+const user = computed(() => userStore.user)
 // 表单
 const ruleFormRef = inject('ruleFormRef')
 // 字典表
@@ -96,6 +100,16 @@ const submitForm = async (formEl) => {
     }
   })
 }
+// 请求
+onMounted(async () => {
+  await search()
+})
+const search = async () => {
+  if (user.value._id) {
+    let res = await incubatorStore.query({ user: user.value._id })
+    if (res.errcode == '0') form.value = res.data[0]
+  }
+}
 </script>
 <style scoped lang="scss">
 .index {

+ 14 - 0
src/views/center/parts/investment.vue

@@ -91,6 +91,10 @@
 <script setup>
 // 基础
 const cloneDeep = inject('cloneDeep')
+// 用户信息
+import { UserStore } from '@/store/user'
+const userStore = UserStore()
+const user = computed(() => userStore.user)
 // 表单
 const ruleFormRef = inject('ruleFormRef')
 // 字典表
@@ -124,6 +128,16 @@ const submitForm = async (formEl) => {
     }
   })
 }
+// 请求
+onMounted(async () => {
+  await search()
+})
+const search = async () => {
+  if (user.value._id) {
+    let res = await investmentStore.query({ user: user.value._id })
+    if (res.errcode == '0') form.value = res.data[0]
+  }
+}
 </script>
 <style scoped lang="scss">
 .index {

+ 14 - 0
src/views/center/parts/state.vue

@@ -79,6 +79,10 @@
 <script setup>
 // 基础
 const cloneDeep = inject('cloneDeep')
+// 用户信息
+import { UserStore } from '@/store/user'
+const userStore = UserStore()
+const user = computed(() => userStore.user)
 // 表单
 const ruleFormRef = inject('ruleFormRef')
 // 字典表
@@ -110,6 +114,16 @@ const submitForm = async (formEl) => {
     }
   })
 }
+// 请求
+onMounted(async () => {
+  await search()
+})
+const search = async () => {
+  if (user.value._id) {
+    let res = await stateStore.query({ user: user.value._id })
+    if (res.errcode == '0') form.value = res.data[0]
+  }
+}
 </script>
 <style scoped lang="scss">
 .index {

+ 14 - 0
src/views/center/parts/unit.vue

@@ -65,6 +65,10 @@
 <script setup>
 // 基础
 const cloneDeep = inject('cloneDeep')
+// 用户信息
+import { UserStore } from '@/store/user'
+const userStore = UserStore()
+const user = computed(() => userStore.user)
 // 表单
 const ruleFormRef = inject('ruleFormRef')
 // 字典表
@@ -96,6 +100,16 @@ const submitForm = async (formEl) => {
     }
   })
 }
+// 请求
+onMounted(async () => {
+  await search()
+})
+const search = async () => {
+  if (user.value._id) {
+    let res = await unitStore.query({ user: user.value._id })
+    if (res.errcode == '0') form.value = res.data[0]
+  }
+}
 </script>
 <style scoped lang="scss">
 .index {

+ 1 - 0
src/views/register/parts/company.vue

@@ -332,6 +332,7 @@ const rules = reactive({
   'info.create_time': [{ required: true, message: '请输入成立时间', trigger: 'blur' }],
   'info.code': [{ required: true, message: '请输入统一社会信用代码', trigger: 'blur' }],
   'info.email': [{ required: true, message: '请输入邮箱', trigger: 'blur' }],
+  'info.brief': [{ required: true, message: '请输入简介', trigger: 'blur' }],
   'info.address': [{ required: true, message: '请输入地址', trigger: 'blur' }]
 })
 // 上传图片