浏览代码

企业信息编辑

Xiao_123 6 月之前
父节点
当前提交
b8d03e6844

+ 5 - 0
src/api/menduner/system/enterprise/message/index.ts

@@ -81,5 +81,10 @@ export const EnterpriseApi = {
   // 更新企业发布职位类型权限
   updateEnterpriseJobType: async (data) => {
     return await request.put({ url: `/menduner/system/enterprise/update/pub-job-type-perm`, data })
+  },
+
+  // 企业信息编辑
+  updateEnterpriseInfo: async (data) => {
+    return await request.put({ url: `/menduner/system/enterprise/update`, data })
   }
 }

+ 75 - 63
src/views/menduner/system/enterprise/message/EnterpriseForm.vue

@@ -1,5 +1,5 @@
 <template>
-  <Dialog :title="dialogTitle" v-model="dialogVisible">
+  <Dialog title="企业信息编辑" v-model="dialogVisible">
     <el-form
       ref="formRef"
       :model="formData"
@@ -7,74 +7,82 @@
       label-width="100px"
       v-loading="formLoading"
     >
-      <el-form-item label="企业全称" prop="name">
-        <el-input v-model="formData.name" placeholder="请输入企业全称" />
+      <el-form-item label="企业全称" prop="name" required>
+        <el-input v-model="formData.name" placeholder="请输入企业全称" class="!w-360px" />
       </el-form-item>
       <el-form-item label="企业别称" prop="anotherName">
-        <el-input v-model="formData.anotherName" placeholder="请输入企业别称" />
+        <el-input v-model="formData.anotherName" placeholder="请输入企业别称" class="!w-360px" />
+      </el-form-item>
+      <el-form-item label="职位发布类型" prop="pubJobTypePerm">
+        <el-checkbox-group v-model="formData.pubJobTypePerm">
+          <el-checkbox v-for="k in getIntDictOptions(DICT_TYPE.MENDUNER_JOB_TYPE)" :key="k.value" :label="k.label" :value="k.value.toString()" />
+        </el-checkbox-group>
       </el-form-item>
       <el-form-item label="企业官网" prop="website">
-        <el-input v-model="formData.website" placeholder="请输入企业官网" />
+        <el-input v-model="formData.website" placeholder="请输入企业官网" class="!w-360px"/>
       </el-form-item>
-      <el-form-item label="公司简介" prop="introduce">
-        <el-input v-model="formData.introduce" placeholder="请输入公司简介" />
+      <el-form-item label="联系人" prop="contact" required>
+        <el-input v-model="formData.contact" placeholder="请输入联系人" class="!w-360px" />
       </el-form-item>
-      <el-form-item label="联系人" prop="contacts">
-        <el-input v-model="formData.contacts" placeholder="请输入联系人" />
+      <el-form-item label="联系电话" prop="phone" required>
+        <el-input v-model="formData.phone" placeholder="请输入联系电话" class="!w-360px" />
       </el-form-item>
-      <el-form-item label="联系电话" prop="phone">
-        <el-input v-model="formData.phone" placeholder="请输入联系电话" />
+      <el-form-item label="企业logo" prop="logoUrl">
+        <UploadImg v-model="formData.logoUrl" height="140px" />
       </el-form-item>
-      <el-form-item label="logo图片地址" prop="logoUrl">
-        <el-input v-model="formData.logoUrl" placeholder="请输入logo图片地址" />
+      <el-form-item label="营业执照图片" prop="businessUrl">
+        <UploadImg v-model="formData.businessUrl" height="140px" />
       </el-form-item>
       <el-form-item label="所在行业" prop="industryId">
-        <el-select v-model="formData.industryId" placeholder="请选择所在行业">
-          <el-option label="请选择字典生成" value="" />
-        </el-select>
+        <el-cascader v-model="formData.industryId" :options="industry" :props="{ emitPath: false, label: 'nameCn', value: 'id' }" class="!w-360px" />
       </el-form-item>
       <el-form-item label="融资阶段" prop="financingStatus">
-        <el-select v-model="formData.financingStatus" placeholder="请选择融资阶段">
+        <el-select v-model="formData.financingStatus" placeholder="请选择融资阶段" class="!w-360px">
           <el-option
             v-for="dict in getIntDictOptions(DICT_TYPE.MENDUNER_FINANCING_STATUS)"
             :key="dict.value"
             :label="dict.label"
-            :value="dict.value"
+            :value="dict.value.toString()"
           />
         </el-select>
       </el-form-item>
       <el-form-item label="人员规模" prop="scale">
-        <el-select v-model="formData.scale" placeholder="请选择人员规模">
+        <el-select v-model="formData.scale" placeholder="请选择人员规模" class="!w-360px">
           <el-option
             v-for="dict in getIntDictOptions(DICT_TYPE.MENDUNER_SCALE)"
             :key="dict.value"
             :label="dict.label"
-            :value="dict.value"
+            :value="dict.value.toString()"
           />
         </el-select>
       </el-form-item>
-      <el-form-item label="公司福利" prop="welfareList">
-        <el-input v-model="formData.welfareList" placeholder="请输入公司福利" />
+      <el-form-item label="是否筹备中" prop="prepare">
+        <el-radio-group v-model="formData.prepare">
+          <el-radio :value="true">是</el-radio>
+          <el-radio :value="false">否</el-radio>
+        </el-radio-group>
       </el-form-item>
-      <el-form-item label="公司相册" prop="albumList">
-        <el-input v-model="formData.albumList" placeholder="请输入公司相册" />
+      <el-form-item label="账号状态" prop="status" required>
+        <el-select v-model="formData.status" placeholder="请选择帐号状态" class="!w-360px">
+          <el-option
+            v-for="dict in getIntDictOptions(DICT_TYPE.MENDUNER_STATUS)"
+            :key="dict.value"
+            :label="dict.label"
+            :value="dict.value.toString()"
+          />
+        </el-select>
       </el-form-item>
-      <el-form-item label="上班时间" prop="workTime">
+      <el-form-item label="开业时间" prop="openTime">
         <el-date-picker
-          v-model="formData.workTime"
+          v-model="formData.openTime"
           type="date"
           value-format="x"
-          placeholder="选择上班时间"
+          placeholder="选择开业时间"
+          class="!w-360px"
         />
       </el-form-item>
-      <el-form-item label="发展历程" prop="developHistory">
-        <el-input v-model="formData.developHistory" placeholder="请输入发展历程" />
-      </el-form-item>
-      <el-form-item label="获得荣誉" prop="receivedHonors">
-        <el-input v-model="formData.receivedHonors" placeholder="请输入获得荣誉" />
-      </el-form-item>
-      <el-form-item label="上级id" prop="parentId">
-        <el-input v-model="formData.parentId" placeholder="请输入上级id" />
+      <el-form-item label="公司简介" prop="introduce">
+        <el-input type="textarea" :rows="8" v-model="formData.introduce" placeholder="请输入公司简介" />
       </el-form-item>
     </el-form>
     <template #footer>
@@ -83,27 +91,27 @@
     </template>
   </Dialog>
 </template>
+
 <script setup lang="ts">
 import { getIntDictOptions, DICT_TYPE } from '@/utils/dict'
-import { EnterpriseApi, EnterpriseVO } from '@/api/menduner/system/enterprise/message'
+import { EnterpriseApi } from '@/api/menduner/system/enterprise/message'
 
-/** 门墩儿-企业信息 表单 */
 defineOptions({ name: 'EnterpriseForm' })
 
-const { t } = useI18n() // 国际化
-const message = useMessage() // 消息弹窗
+const { t } = useI18n()
+const message = useMessage()
+
+defineProps({ industry: Array })
 
-const dialogVisible = ref(false) // 弹窗的是否展示
-const dialogTitle = ref('') // 弹窗的标题
-const formLoading = ref(false) // 表单的加载中:1)修改时的数据加载;2)提交的按钮禁用
-const formType = ref('') // 表单的类型:create - 新增;update - 修改
+const dialogVisible = ref(false)
+const formLoading = ref(false)
 const formData = ref({
   id: undefined,
   name: undefined,
   anotherName: undefined,
   website: undefined,
   introduce: undefined,
-  contacts: undefined,
+  contact: undefined,
   phone: undefined,
   logoUrl: undefined,
   industryId: undefined,
@@ -111,23 +119,28 @@ const formData = ref({
   scale: undefined,
   welfareList: undefined,
   albumList: undefined,
-  workTime: undefined,
+  openTime: undefined,
   developHistory: undefined,
+  businessUrl: undefined,
   receivedHonors: undefined,
-  parentId: undefined
+  parentId: undefined,
+  tagList: undefined,
+  prepare: undefined,
+  status: undefined,
+  pubJobTypePerm: undefined
 })
 const formRules = reactive({
-  parentId: [{ required: true, message: '上级id不能为空', trigger: 'blur' }]
+  name: [{ required: true, message: '企业全称不能为空', trigger: 'blur' }],
+  phone: [{ required: true, message: '联系电话不能为空', trigger: 'blur' }],
+  contact: [{ required: true, message: '联系人不能为空', trigger: 'blur' }],
+  status: [{ required: true, message: '账号状态不能为空', trigger: 'blur' }]
 })
-const formRef = ref() // 表单 Ref
+const formRef = ref()
 
 /** 打开弹窗 */
-const open = async (type: string, id?: number) => {
+const open = async (id: number) => {
   dialogVisible.value = true
-  dialogTitle.value = t('action.' + type)
-  formType.value = type
   resetForm()
-  // 修改时,设置数据
   if (id) {
     formLoading.value = true
     try {
@@ -147,14 +160,8 @@ const submitForm = async () => {
   // 提交请求
   formLoading.value = true
   try {
-    const data = formData.value as unknown as EnterpriseVO
-    if (formType.value === 'create') {
-      await EnterpriseApi.createEnterprise(data)
-      message.success(t('common.createSuccess'))
-    } else {
-      await EnterpriseApi.updateEnterprise(data)
-      message.success(t('common.updateSuccess'))
-    }
+    await EnterpriseApi.updateEnterpriseInfo(formData.value)
+    message.success(t('common.updateSuccess'))
     dialogVisible.value = false
     // 发送操作成功的事件
     emit('success')
@@ -171,18 +178,23 @@ const resetForm = () => {
     anotherName: undefined,
     website: undefined,
     introduce: undefined,
-    contacts: undefined,
+    contact: undefined,
     phone: undefined,
     logoUrl: undefined,
     industryId: undefined,
     financingStatus: undefined,
+    businessUrl: undefined,
     scale: undefined,
     welfareList: undefined,
     albumList: undefined,
-    workTime: undefined,
+    openTime: undefined,
     developHistory: undefined,
+    prepare: undefined,
     receivedHonors: undefined,
-    parentId: undefined
+    parentId: undefined,
+    tagList: undefined,
+    status: undefined,
+    pubJobTypePerm: undefined
   }
   formRef.value?.resetFields()
 }

+ 18 - 27
src/views/menduner/system/enterprise/message/index.vue

@@ -45,14 +45,7 @@
         />
       </el-form-item>
       <el-form-item label="所在行业" prop="industryId" v-hasPermi="['menduner:system:enterprise:query']">
-        <el-select
-          v-model="queryParams.industryId"
-          placeholder="请选择所在行业"
-          clearable
-          class="!w-240px"
-        >
-          <el-option label="请选择字典生成" value="" />
-        </el-select>
+        <el-cascader v-model="queryParams.industryId" :options="industry" :props="{ emitPath: false, label: 'nameCn', value: 'id' }" />
       </el-form-item>
       <el-form-item label="融资阶段" prop="financingStatus" v-hasPermi="['menduner:system:enterprise:query']">
         <el-select
@@ -115,7 +108,7 @@
   <ContentWrap>
     <!-- :show-overflow-tooltip="true" -->
     <el-table v-loading="loading" :data="list" :stripe="true">
-      <el-table-column label="id" align="center" prop="id" />
+      <!-- <el-table-column label="id" align="center" prop="id" /> -->
       <el-table-column label="企业全称" align="center" prop="name" />
       <el-table-column label="企业别称" align="center" prop="anotherName" />
       <el-table-column label="联系人" align="center" prop="contact" />
@@ -147,21 +140,9 @@
       />
       <el-table-column label="操作" align="center">
         <template #default="scope">
-          <el-button
-            link
-            type="primary"
-            @click="openDetail(scope.row.id)"
-          >
-            详情
-          </el-button>
-          <el-button
-            link
-            type="primary"
-            @click="openPositionForm(scope.row.id)"
-            v-hasPermi="['menduner:system:enterprise:update']"
-          >
-            更新职位发布类型
-          </el-button>
+          <el-button link type="primary" @click="openDetail(scope.row.id)">详情</el-button>
+          <el-button link type="primary" @click="openEdit(scope.row.id)" v-hasPermi="['menduner:system:enterprise:update']">编辑</el-button>
+          <!-- <el-button link type="primary" @click="openPositionForm(scope.row.id)" v-hasPermi="['menduner:system:enterprise:update']">更新职位发布类型</el-button> -->
         </template>
       </el-table-column>
     </el-table>
@@ -175,7 +156,7 @@
   </ContentWrap>
 
   <!-- 表单弹窗:添加/修改 -->
-  <EnterpriseForm ref="formRef" @success="getList" />
+  <EnterpriseForm ref="formRef" :industry="industry" @success="getList" />
 
   <!-- 职位发布类型权限更新 -->
   <PositionTypeForm ref="positionRef" @success="getList" />
@@ -188,6 +169,8 @@ import download from '@/utils/download'
 import { EnterpriseApi, EnterpriseVO } from '@/api/menduner/system/enterprise/message'
 import EnterpriseForm from './EnterpriseForm.vue'
 import PositionTypeForm from './positionTypeForm.vue'
+import { IndustryApi, IndustryVO } from '@/api/menduner/system/industry'
+import { handleTree } from '@/utils/tree'
 
 /** 门墩儿-企业信息 列表 */
 defineOptions({ name: 'Enterprise' })
@@ -212,6 +195,14 @@ const queryParams = reactive({
 const positionRef = ref()
 const queryFormRef = ref() // 搜索的表单
 const exportLoading = ref(false) // 导出的加载中
+const industry = ref<IndustryVO[]>([]) // 行业树状
+
+/** 行业树状 */
+const getTree = async () => {
+  const data = await IndustryApi.getIndustryList({})
+  industry.value = handleTree(data, 'id', 'parentId')
+}
+getTree()
 
 /** 查询列表 */
 const getList = async () => {
@@ -245,8 +236,8 @@ const openDetail = (id: string) => {
 
 /** 添加/修改操作 */
 const formRef = ref()
-const openForm = (type: string, id?: number) => {
-  formRef.value.open(type, id)
+const openEdit = (id: number) => {
+  formRef.value.open(id)
 }
 
 // 更新职位类型