From 650a84730f4418ebbcdc58bbadd4d56f5dd3c8fd Mon Sep 17 00:00:00 2001 From: zhengyiming <540361168@qq.com> Date: 星期四, 07 八月 2025 14:01:40 +0800 Subject: [PATCH] Merge branch 'master' of http://120.26.58.240:8888/r/flexJobAdmin --- src/views/EnterpriseManage/components/AddOrEditEnterpriseView.vue | 280 ++++++++++++++++++++++++++++++++++--------------------- 1 files changed, 172 insertions(+), 108 deletions(-) diff --git a/src/views/EnterpriseManage/components/AddOrEditEnterpriseView.vue b/src/views/EnterpriseManage/components/AddOrEditEnterpriseView.vue index 2d5ee59..13f762d 100644 --- a/src/views/EnterpriseManage/components/AddOrEditEnterpriseView.vue +++ b/src/views/EnterpriseManage/components/AddOrEditEnterpriseView.vue @@ -2,34 +2,34 @@ <LoadingLayout :loading="isEdit && isLoading"> <AppScrollContainer> <ChunkCell title="浼佷笟鍩烘湰淇℃伅"> - <ProForm :model="form" :rules="rules" ref="formRef" label-width="120px" :is-read="isDetail"> + <ProForm :model="form" ref="formRef" label-width="140px" :is-read="isDetail"> <ProFormCol> - <ProFormColItem :span="12"> - <ProFormItemV2 label="浼佷笟鍚嶇О:" prop="name" required> + <ProFormColItem :span="8"> + <ProFormItemV2 + label="浼佷笟鍚嶇О:" + prop="enterpriseName" + :check-rules="[{ message: '璇疯緭鍏ヤ紒涓氬悕绉�' }]" + > <ProFormText - v-model.trim="form.name" + v-model.trim="form.enterpriseName" :maxlength="30" - placeholder="璇疯緭鍏ヤ緵搴斿晢鍚嶇О" + placeholder="璇疯緭鍏ヤ紒涓氬悕绉�" /> </ProFormItemV2> </ProFormColItem> - </ProFormCol> - <ProFormCol> - <ProFormColItem :span="12"> - <ProFormItemV2 label="娉曚汉濮撳悕:" prop="name" required> + <ProFormColItem :span="8"> + <ProFormItemV2 label="娉曚汉濮撳悕:" prop="legalPerson"> <ProFormText - v-model.trim="form.name" + v-model.trim="form.legalPerson" :maxlength="30" placeholder="璇疯緭鍏ユ硶浜哄鍚�" /> </ProFormItemV2> </ProFormColItem> - </ProFormCol> - <ProFormCol> - <ProFormColItem :span="12"> - <ProFormItemV2 label="娉曚汉韬唤璇佸彿:" prop="name" required> + <ProFormColItem :span="8"> + <ProFormItemV2 label="娉曚汉韬唤璇佸彿:" prop="legalIdentity"> <ProFormText - v-model.trim="form.name" + v-model.trim="form.legalIdentity" :maxlength="30" placeholder="璇疯緭鍏ユ硶浜鸿韩浠借瘉鍙�" /> @@ -37,54 +37,51 @@ </ProFormColItem> </ProFormCol> <ProFormCol> - <ProFormColItem :span="12"> - <ProFormItemV2 label="缁熶竴绀句細淇$敤浠g爜:" prop="societyCreditCode"> + <ProFormColItem :span="8"> + <ProFormItemV2 + label="缁熶竴绀句細淇$敤浠g爜:" + prop="societyCreditCode" + :check-rules="[{ message: '璇疯緭鍏ョ粺涓�绀句細淇$敤浠g爜', type: 'societyCreditCode' }]" + > <ProFormText v-model.trim="form.societyCreditCode" placeholder="璇疯緭鍏ョ粺涓�绀句細淇$敤浠g爜" /> </ProFormItemV2> </ProFormColItem> - </ProFormCol> - <ProFormCol> - <ProFormColItem :span="12"> - <ProFormItemV2 label="鎵�鍦ㄧ渷浠�:" prop="name" required> - <ProFormText - v-model.trim="form.name" - :maxlength="30" - placeholder="璇疯緭鍏ユ墍鍦ㄧ渷浠�" + <!-- <ProFormColItem :span="8"> + <ProFormItemV2 + label="鎵�鍦ㄥ湴鍖�:" + prop="areaList" + :check-rules="[ + { + type: 'array', + message: '璇烽�夋嫨', + }, + ]" + > + <ProFromAddressSelectV2 + v-model:areaList="form.areaList" + areaListPlaceholder="璇烽�夋嫨" /> </ProFormItemV2> - </ProFormColItem> - </ProFormCol> - <ProFormCol> - <ProFormColItem :span="12"> - <ProFormItemV2 label="鎵�灞炶涓�:" prop="name" required> + </ProFormColItem> --> + <ProFormColItem :span="8"> + <ProFormItemV2 label="鎵�灞炶涓�:" prop="industryTypeId"> <ProFormSelect + v-model="form.industryTypeId" placeholder="璇烽�夋嫨鎵�灞炶涓�" - :value-enum="typeList" + :value-enum="dictionaryDataList" clearable - v-model="form.name" ></ProFormSelect> </ProFormItemV2> </ProFormColItem> </ProFormCol> <ProFormCol> - <ProFormColItem :span="12"> - <ProFormItemV2 label="鎵�鍦ㄥ煄甯�:" prop="name" required> - <ProFormText - v-model.trim="form.name" - :maxlength="30" - placeholder="璇疯緭鍏ユ墍鍦ㄥ煄甯�" - /> - </ProFormItemV2> - </ProFormColItem> - </ProFormCol> - <ProFormCol> <ProFormColItem :span="24"> - <ProFormItemV2 label="涓昏惀涓氬姟:" prop="name"> + <ProFormItemV2 label="涓昏惀涓氬姟:" prop="mainBusiness"> <ProFormTextArea - v-model="form.name" + v-model="form.mainBusiness" maxlength="200" :rows="6" show-word-limit @@ -98,7 +95,6 @@ <ChunkCell title="鑱旂郴淇℃伅"> <ProForm :model="form" - :rules="rules" ref="settingFormRef" label-width="140px" :scroll-to-error="false" @@ -106,9 +102,13 @@ > <ProFormCol> <ProFormColItem :span="12"> - <ProFormItemV2 label="鑱旂郴浜�:" prop="contact"> + <ProFormItemV2 + label="鑱旂郴浜�:" + prop="contacts" + :check-rules="[{ message: '璇疯緭鍏ヨ仈绯讳汉' }]" + > <ProFormText - v-model.trim="form.contact" + v-model.trim="form.contacts" :maxlength="30" placeholder="璇疯緭鍏ヨ仈绯讳汉" /> @@ -117,16 +117,20 @@ </ProFormCol> <ProFormCol> <ProFormColItem :span="12"> - <ProFormItemV2 label="鑱旂郴鐢佃瘽:" prop="contactPhone"> - <ProFormText v-model.trim="form.contactPhone" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" /> + <ProFormItemV2 + label="鑱旂郴鐢佃瘽:" + prop="contactPhoneNumber" + :check-rules="[{ message: '璇疯緭鍏ヨ仈绯荤數璇�', type: 'phone' }]" + > + <ProFormText v-model.trim="form.contactPhoneNumber" placeholder="璇疯緭鍏ヨ仈绯荤數璇�" /> </ProFormItemV2> </ProFormColItem> </ProFormCol> <ProFormCol> <ProFormColItem :span="12"> - <ProFormItemV2 label="閭:" prop="email"> + <ProFormItemV2 label="閭:" prop="contactEmail"> <ProFormText - v-model.trim="form.email" + v-model.trim="form.contactEmail" :maxlength="30" placeholder="璇疯緭鍏ラ偖绠�" :formatter="filterCN" @@ -134,6 +138,48 @@ </ProFormItemV2> </ProFormColItem> </ProFormCol> + </ProForm> + </ChunkCell> + <ChunkCell title="璐﹀彿淇℃伅"> + <ProForm + :model="form" + ref="accountFormRef" + label-width="140px" + :scroll-to-error="false" + :is-read="isDetail" + > + <ProFormCol> + <ProFormColItem :span="8"> + <ProFormItemV2 + label="璐﹀彿:" + prop="userName" + :check-rules="[{ message: '璇疯緭鍏ヨ处鍙�' }]" + > + <ProFormText + v-model.trim="form.userName" + :maxlength="30" + placeholder="璇疯緭鍏ヨ处鍙�" + /> + </ProFormItemV2> + </ProFormColItem> + <ProFormColItem :span="8" v-if="!isEdit"> + <ProFormItemV2 + label="瀵嗙爜:" + prop="password" + :check-rules="[{ message: '璇疯緭鍏ュ瘑鐮�' }]" + > + <ProFormText + v-model.trim="form.password" + :maxlength="30" + placeholder="璇疯緭鍏ュ瘑鐮�" + /> + </ProFormItemV2> + </ProFormColItem> + </ProFormCol> + <div class="chuck-add-or-edit-actions"> + <el-button @click="handleBack">杩斿洖</el-button> + <el-button v-if="!isDetail" type="primary" @click="handleSubmit">纭</el-button> + </div> </ProForm> </ChunkCell> </AppScrollContainer> @@ -153,9 +199,8 @@ ProFormColItem, } from '@bole-core/components'; import { FormRules, FormInstance } from 'element-plus'; -import { SearchType } from '@/constants'; -import * as searchSettingServices from '@/services/api/SearchSetting'; -import { useRouteView, useGlobalEventContext, GlobalEvent, useSearchSettingType } from '@/hooks'; +import * as enterpriseServices from '@/services/api/enterprise'; +import { useRouteView, useGlobalEventContext, GlobalEvent } from '@/hooks'; import _ from 'lodash'; import { validateFormList, filterCN } from '@/utils'; import { Message, BoleRegExp } from '@bole-core/core'; @@ -165,94 +210,113 @@ type Props = { isDetail: boolean; - id?: string; emitAddEvent?: keyof GlobalEvent; emitEditEvent?: keyof GlobalEvent; backRouteName?: string; }; const props = withDefaults(defineProps<Props>(), { - id: '', emitAddEvent: 'enterprise:add', emitEditEvent: 'enterprise:edit', - backRouteName: '', + backRouteName: 'EnterpriseManageList', }); const route = useRoute(); -const isEdit = computed(() => !!props.id); +const id = route.params.id as string; +const isEdit = computed(() => !!id); +const { dictionaryDataList } = useDictionaryDataSelect({ + categoryCode: computed(() => CategoryCode.IndustryCategory), +}); const { closeViewPush } = useRouteView(); const eventContext = useGlobalEventContext(); -const { searchSettingTypeList: typeList } = useSearchSettingType({ - searchType: SearchType.IndustryCategory, -}); - const form = reactive({ id: '', - name: '', + enterpriseName: '', + legalPerson: '', + legalIdentity: '', societyCreditCode: '', - contact: '', - contactPhone: '', - email: '', + industryTypeId: '', + mainBusiness: '', + areaList: [130000, 131000] as number[], + contacts: '', + contactPhoneNumber: '', + contactEmail: '', + userName: '', + password: '', }); onMounted(async () => {}); const { isLoading } = useQuery({ - // queryKey: ['insureSupplierService/getInsureSupplierInfoById', props.id], - // queryFn: async () => { - // return await insureSupplierService.getInsureSupplierInfoById( - // { id: props.id }, - // { - // showLoading: false, - // } - // ); - // }, - onSuccess(data) {}, - enabled: computed(() => !!props.id), + queryKey: ['enterpriseServices/getEnterprise', id], + queryFn: async () => { + return await enterpriseServices.getEnterprise( + { id: id }, + { + showLoading: false, + } + ); + }, + onSuccess(data) { + form.id = data.id; + form.enterpriseName = data.enterpriseName; + form.legalPerson = data.legalPerson; + form.legalIdentity = data.legalIdentity; + form.societyCreditCode = data.societyCreditCode; + form.industryTypeId = data.industryTypeId; + form.mainBusiness = data.mainBusiness; + form.contacts = data.contacts; + form.contactPhoneNumber = data.contactPhoneNumber; + form.contactEmail = data.contactEmail; + form.userName = data.userName; + }, + enabled: computed(() => !!id), }); const formRef = ref<FormInstance>(); const settingFormRef = ref<FormInstance>(); - -const rules = reactive<FormRules>({ - name: [{ required: true, message: '璇疯緭鍏ヤ緵搴斿晢鍚嶇О', trigger: 'blur' }], - societyCreditCode: [{ required: true, message: '璇疯緭鍏ョ粺涓�淇$敤浠g爜', trigger: 'blur' }], - categoryType: [{ required: true, message: '璇烽�夋嫨琛屼笟閰嶅', trigger: 'change' }], - areaList: [{ required: true, message: '璇烽�夋嫨鎵�鍦ㄥ湴鍖�', trigger: 'change', type: 'array' }], - companyAddress: [{ required: true, message: '璇疯緭鍏ュ叕鍙稿湴鍧�', trigger: 'blur' }], - contact: [{ required: true, message: '璇疯緭鍏ヨ仈绯讳汉', trigger: 'blur' }], - suppierLevel: [{ required: true, message: '璇烽�夋嫨渚涘簲鍟嗙瓑绾�', trigger: 'change' }], - // suppierType: [{ required: true, message: '璇烽�夋嫨渚涘簲鍟嗙被鍨�', trigger: 'change' }], - contactPhone: [ - { required: true, message: '璇疯緭鍏ヨ仈绯荤數璇�', trigger: 'blur' }, - { message: '璇疯緭鍏ユ纭殑鑱旂郴鐢佃瘽', trigger: 'blur', pattern: BoleRegExp.RegPhoneNumber }, - ], -}); +const accountFormRef = ref<FormInstance>(); async function handleSubmit() { try { - const valid = await validateFormList([formRef.value, settingFormRef.value]); + const valid = await validateFormList([ + formRef.value, + settingFormRef.value, + accountFormRef.value, + ]); if (valid) { - handleCreateOrEditInsureSupplier(); + handleCreateOrEditFlexEnterprise(); } } catch (error) {} } -async function handleCreateOrEditInsureSupplier() { +async function handleCreateOrEditFlexEnterprise() { try { - // let params: API.CreateOrEditSearchInput = { - // name: form.name, - // }; - // if (isEdit.value) { - // params.id = props.id; - // } - // let res = await searchSettingServices.createOrEditSearchSetting(params); - // if (res) { - // Message.successMessage(isEdit ? '缂栬緫鎴愬姛' : '鍙戝竷鎴愬姛'); - // eventContext.emit(isEdit ? 'enterprise:edit' : 'enterprise:add'); - // handleBack(); - // } + let params: API.SaveEnterpriseCommand = { + enterpriseName: form.enterpriseName, + legalPerson: form.legalPerson, + legalIdentity: form.legalIdentity, + societyCreditCode: form.societyCreditCode, + provinceId: '', + cityId: '', + industryTypeId: form.industryTypeId, + mainBusiness: form.mainBusiness, + contacts: form.contacts, + contactPhoneNumber: form.contactPhoneNumber, + contactEmail: form.contactEmail, + userName: form.userName, + password: form.password, + }; + if (isEdit.value) { + params.id = id; + } + let res = await enterpriseServices.saveEnterprise(params); + if (res) { + Message.successMessage(isEdit ? '缂栬緫鎴愬姛' : '鍙戝竷鎴愬姛'); + eventContext.emit(isEdit ? 'enterprise:edit' : 'enterprise:add'); + handleBack(); + } } catch (error) {} } -- Gitblit v1.9.1