zhengyiming
9 天以前 650a84730f4418ebbcdc58bbadd4d56f5dd3c8fd
src/views/EnterpriseManage/components/AddOrEditEnterpriseView.vue
@@ -4,7 +4,7 @@
      <ChunkCell title="企业基本信息">
        <ProForm :model="form" ref="formRef" label-width="140px" :is-read="isDetail">
          <ProFormCol>
            <ProFormColItem :span="12">
            <ProFormColItem :span="8">
              <ProFormItemV2
                label="企业名称:"
                prop="enterpriseName"
@@ -17,23 +17,19 @@
                />
              </ProFormItemV2>
            </ProFormColItem>
          </ProFormCol>
          <ProFormCol>
            <ProFormColItem :span="12">
              <ProFormItemV2 label="法人姓名:" prop="legalPersonName">
            <ProFormColItem :span="8">
              <ProFormItemV2 label="法人姓名:" prop="legalPerson">
                <ProFormText
                  v-model.trim="form.legalPersonName"
                  v-model.trim="form.legalPerson"
                  :maxlength="30"
                  placeholder="请输入法人姓名"
                />
              </ProFormItemV2>
            </ProFormColItem>
          </ProFormCol>
          <ProFormCol>
            <ProFormColItem :span="12">
              <ProFormItemV2 label="法人身份证号:" prop="legalPersonIdNumber">
            <ProFormColItem :span="8">
              <ProFormItemV2 label="法人身份证号:" prop="legalIdentity">
                <ProFormText
                  v-model.trim="form.legalPersonIdNumber"
                  v-model.trim="form.legalIdentity"
                  :maxlength="30"
                  placeholder="请输入法人身份证号"
                />
@@ -41,7 +37,7 @@
            </ProFormColItem>
          </ProFormCol>
          <ProFormCol>
            <ProFormColItem :span="12">
            <ProFormColItem :span="8">
              <ProFormItemV2
                label="统一社会信用代码:"
                prop="societyCreditCode"
@@ -53,48 +49,39 @@
                />
              </ProFormItemV2>
            </ProFormColItem>
          </ProFormCol>
          <ProFormCol>
            <ProFormColItem :span="12">
              <ProFormItemV2 label="所在省份:" prop="proviceName">
                <ProFormText
                  v-model.trim="form.proviceName"
                  :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="belongIndustryType">
            </ProFormColItem> -->
            <ProFormColItem :span="8">
              <ProFormItemV2 label="所属行业:" prop="industryTypeId">
                <ProFormSelect
                  v-model="form.industryTypeId"
                  placeholder="请选择所属行业"
                  :value-enum="typeList"
                  enum-value-key="id"
                  enum-label-key="name"
                  :value-enum="dictionaryDataList"
                  clearable
                  v-model="form.belongIndustryType"
                ></ProFormSelect>
              </ProFormItemV2>
            </ProFormColItem>
          </ProFormCol>
          <ProFormCol>
            <ProFormColItem :span="12">
              <ProFormItemV2 label="所在城市:" prop="cityName">
                <ProFormText
                  v-model.trim="form.cityName"
                  :maxlength="30"
                  placeholder="请输入所在城市"
                />
              </ProFormItemV2>
            </ProFormColItem>
          </ProFormCol>
          <ProFormCol>
            <ProFormColItem :span="24">
              <ProFormItemV2 label="主营业务:" prop="cityName">
              <ProFormItemV2 label="主营业务:" prop="mainBusiness">
                <ProFormTextArea
                  v-model="form.cityName"
                  v-model="form.mainBusiness"
                  maxlength="200"
                  :rows="6"
                  show-word-limit
@@ -117,11 +104,11 @@
            <ProFormColItem :span="12">
              <ProFormItemV2
                label="联系人:"
                prop="contact"
                prop="contacts"
                :check-rules="[{ message: '请输入联系人' }]"
              >
                <ProFormText
                  v-model.trim="form.contact"
                  v-model.trim="form.contacts"
                  :maxlength="30"
                  placeholder="请输入联系人"
                />
@@ -132,18 +119,18 @@
            <ProFormColItem :span="12">
              <ProFormItemV2
                label="联系电话:"
                prop="contactPhone"
                prop="contactPhoneNumber"
                :check-rules="[{ message: '请输入联系电话', type: 'phone' }]"
              >
                <ProFormText v-model.trim="form.contactPhone" placeholder="请输入联系电话" />
                <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"
@@ -162,13 +149,30 @@
          :is-read="isDetail"
        >
          <ProFormCol>
            <ProFormColItem :span="12">
            <ProFormColItem :span="8">
              <ProFormItemV2
                label="账号:"
                prop="contact"
                prop="userName"
                :check-rules="[{ message: '请输入账号' }]"
              >
                <ProFormText v-model.trim="form.contact" :maxlength="30" placeholder="请输入账号" />
                <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>
@@ -195,8 +199,8 @@
  ProFormColItem,
} from '@bole-core/components';
import { FormRules, FormInstance } from 'element-plus';
import { SearchType } from '@/constants';
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';
@@ -206,56 +210,68 @@
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: '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: '',
  enterpriseName: '',
  legalPersonName: '',
  legalPersonIdNumber: '',
  legalPerson: '',
  legalIdentity: '',
  societyCreditCode: '',
  proviceName: '',
  cityName: '',
  belongIndustryType: '',
  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>();
@@ -277,22 +293,25 @@
async function handleCreateOrEditFlexEnterprise() {
  try {
    let params: API.CreateOrEditFlexEnterpriseInput = {
    let params: API.SaveEnterpriseCommand = {
      enterpriseName: form.enterpriseName,
      legalPersonName: form.legalPersonName,
      legalPersonIdNumber: form.legalPersonIdNumber,
      legalPerson: form.legalPerson,
      legalIdentity: form.legalIdentity,
      societyCreditCode: form.societyCreditCode,
      proviceName: form.proviceName,
      cityName: form.cityName,
      belongIndustryType: form.belongIndustryType,
      contact: form.contact,
      contactPhone: form.contactPhone,
      // email: form.email,
      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 = props.id;
      params.id = id;
    }
    let res = await flexEnterpriseServices.createOrEditFlexEnterprise(params);
    let res = await enterpriseServices.saveEnterprise(params);
    if (res) {
      Message.successMessage(isEdit ? '编辑成功' : '发布成功');
      eventContext.emit(isEdit ? 'enterprise:edit' : 'enterprise:add');