فهرست منبع

Merge branch 'dev' of https://git.citupro.com/zhengnaiwen_citu/menduner into dev

Xiao_123 11 ماه پیش
والد
کامیت
7e6e3ded6e

+ 1 - 1
components.d.ts

@@ -20,7 +20,7 @@ declare module 'vue' {
     CtPagination: typeof import('./src/components/CtPagination/index.vue')['default']
     CtSearch: typeof import('./src/components/CtSearch/index.vue')['default']
     CtTextField: typeof import('./src/components/CtVuetify/CtTextField/index.vue')['default']
-    DatePicker: typeof import('./src/components/FormUI/datePicker/index.vue')['default']
+    DatePicker: typeof import('./src/components/DatePicker/index.vue')['default']
     Details: typeof import('./src/components/Enterprise/details.vue')['default']
     Empty: typeof import('./src/components/Empty/index.vue')['default']
     HeadSearch: typeof import('./src/components/headSearch/index.vue')['default']

+ 1 - 1
src/components/CtForm/index.vue

@@ -8,7 +8,7 @@
             <template v-if="item.slotTitle">
               <div :class="item.class" :style="item.slotTitleStyle">{{ item.slotTitle }}</div>
             </template>
-            <div class="d-flex" :class="item.flexStyle || 'flex-row'">
+            <div class="d-flex mb-2" :class="item.flexStyle || 'flex-row'">
               <!-- <span>{{ item.value }}</span> -->
               <textUI
                 v-if="['text', 'password', 'number'].includes(item.type)"

+ 1 - 0
src/components/FormUI/TextInput/index.vue

@@ -19,6 +19,7 @@
       :append-inner-icon="item.appendInnerIcon"
       :clearable="item.clearable"
       :readonly="item.readonly"
+      :counter="item.counter"
       :prepend-inner-icon="item.prependInnerIcon"
       hide-spin-buttons
       :hide-details="item.hideDetails || false"

+ 6 - 0
src/styles/index.scss

@@ -27,6 +27,12 @@
   margin: 0 auto;
   // align-items: center;
 }
+.defaultLink {
+  // color:#5aabff;
+  color:#008978;
+  cursor:pointer;
+  // text-decoration: underline;
+}
 // 高亮
 .default-active {
   color: var(--v-primary-base) !important;

+ 4 - 1
src/views/enterprise/components/binding.vue

@@ -1,11 +1,14 @@
 <template>
   <div class="default-width pt-5">
-    binding
+    <div>binding</div>
+    <v-btn color="primary" @click="router.push({ path: '/enterprise/register' })">注册新企业</v-btn>
   </div>
 </template>
 
 <script setup>
 defineOptions({name: 'enterprise-enterpriseRegister-binding'})
+import { useRouter } from 'vue-router'
+const router = useRouter()
 </script>
 <style lang="scss" scoped>
 </style>

+ 138 - 2
src/views/enterprise/components/register.vue

@@ -1,11 +1,147 @@
 <template>
-  <div class="default-width pt-5">
-    register
+  <div class="pt-5">
+    <v-card class="default-width pa-5">
+      <!-- 标题 -->
+      <div class="resume-header">
+        <div class="resume-title">注册新企业</div>
+      </div>
+      <!-- 表单 -->
+      <div class="CtFormClass" style="width: 600px;">
+        <CtForm ref="CtFormRef" :items="formItems" style="width: 100%;"></CtForm>
+        <!-- 上传照片 -->
+        <div style="color: #999;">
+          <span class="mr-1" style="color: red;">*</span>
+          <span>上传营业执照</span>
+          <span class="mx-3 defaultLink">查看示例</span>
+          <span>支持jpg、jpeg、png格式,照片大小不得超过10M</span>
+        </div>
+        <div class="file-input-box mt-3" @click="openFileInput">
+          <div class="icon text-center">
+            <span class="mdi mdi-plus" style="font-size: 20px;"></span>
+            <div style="font-size: 12px; ">上传照片</div>
+          </div>
+          <input
+            type="file"
+            ref="fileInput"
+            accept="image/png, image/jpg, image/jpeg"
+            style="display: none;"
+            @change="handleUploadFile"
+          />
+        </div>
+        <!-- 注意事项 -->
+        <div class="note mt-5">
+          <h4>注意事项</h4>
+          <div>1.企业名称为对外展示的企业名称,建议填写公司营业执照上的名称,请区分总公司和分公司</div>
+          <div>
+            <span>2.若公司已注册,请上传公司委托证明下载模版</span>
+            <span class="mx-3 defaultLink">下载模版</span>
+          </div>
+        </div>
+      </div>
+      <div class="text-center">
+        <!-- 提交 -->
+        <v-btn
+          :loading="loginLoading"
+          color="primary" class="white--text mt-8" min-width="350"
+          to="/enterprise/talentPool"
+        >
+          完成
+        </v-btn>
+      </div>
+      <!-- 底部 -->
+      <div class="mt-5">
+        <div style="color: var(--v-primary-base); cursor: pointer;" class="text-center">绑定已有企业</div>
+      </div>
+    </v-card>
   </div>
 </template>
 
 <script setup>
+import CtForm from '@/components/CtForm'
+import Snackbar from '@/plugins/snackbar'
+import { uploadFile } from '@/api/common'
+import { useI18n } from '@/hooks/web/useI18n'
+import { ref } from 'vue';
 defineOptions({name: 'enterprise-enterpriseRegister-register'})
+const { t } = useI18n()
+const loginLoading = ref(false)
+
+const formItems = ref({
+  options: [
+    {
+      type: 'text',
+      key: 'name',
+      value: '',
+      label: '企业名称(需要与营业执照完全一致)*',
+      counter: 50,
+      rules: [v => !!v || '请输入企业名称']
+    },
+    {
+      type: 'text',
+      key: 'phone',
+      value: '',
+      label: '联系电话 *',
+      rules: [v => !!v || '请输入联系电话']
+    },
+    {
+      type: 'text',
+      key: 'email',
+      value: '',
+      label: '联系邮箱 *',
+      rules: [v => !!v || '请输入联系邮箱']
+    },
+  ]
+})
+
+// 选择文件
+const fileInput = ref()
+const clicked = ref(false)
+const openFileInput = () => {
+  if (clicked.value) return
+  clicked.value = true
+  fileInput.value.click()
+  clicked.value = false
+}
+// 上传头像
+const handleUploadFile = async (e) => {
+  const file = e.target.files[0]
+  const formData = new FormData()
+  formData.append('file', file)
+  const { data } = await uploadFile(formData)
+  if (!data) return
+  console.log('uploadFile->data', data)
+  Snackbar.success(t('common.uploadSucMsg'))
+}
+// 提交
+const handleCommit = () => {
+  // await saveResumeBasicInfo({ ...baseInfo.value, avatar: data })
+  // await userStore.getUserBaseInfos(baseInfo.value.userId)
+  // getBasicInfo()
+}
+handleCommit()
 </script>
 <style lang="scss" scoped>
+.CtFormClass {
+  margin: 0 auto;
+}
+.note {
+  color: #666;
+  font-size: 14px;
+  line-height: 32px;
+}
+.file-input-box {
+  position: relative;
+  height: 80px;
+  width: 100px;
+  border: 1px solid rgb(188, 188, 188);
+  border-radius: 5px;
+  cursor: pointer;
+  .icon {
+    position: absolute;
+    top: 45%;
+    left: 50%;
+    transform: translate(-50%, -50%);
+    color: #999;
+  }
+}
 </style>