| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410 |
- <template>
- <!-- 修改客户资料 -->
- <a-modal class="commonModal modify-custom"
- title="修改客户资料"
- v-if="visible"
- v-model:visible="visible"
- centered
- :maskClosable="maskClosableFlag"
- @cancel="cancel"
- width="890px">
- <template #footer>
- <a-button key="submit"
- class="cancelBtn"
- @click="submit(1)">保存草稿
- </a-button>
- <a-button key="submit"
- type="primary"
- :loading="loading"
- @click="submit(2)">提交审核</a-button>
- </template>
- <a-form class="inlineForm"
- ref="formRef"
- :model="formState"
- :rules="rules">
- <a-row :gutter="24">
- <a-col :span="12">
- <a-form-item label="客户类型"
- name="userinfotype">
- <a-select class="typeSelect"
- style="width: 200px"
- v-model:value="formState.userinfotype"
- placeholder="请选择客户类型">
- <a-select-option value="1">
- 个人
- </a-select-option>
- <a-select-option value="2">
- 企业
- </a-select-option>
- </a-select>
- </a-form-item>
- </a-col>
- <template v-if="!isPersonal()">
- <a-col :span="12">
- <a-form-item label="企业名称"
- name="customername">
- <a-input class="dialogInput"
- v-model:value="formState.customername"
- style="width: 200px"
- placeholder="请输入企业名称" />
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="企业简称"
- name="nickname">
- <a-input class="dialogInput"
- style="width: 200px"
- v-model:value="formState.nickname"
- placeholder="请输入企业简称" />
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="证件类型"
- name="cardtype">
- <a-select class="inlineFormSelect"
- v-model:value="formState.cardtype"
- style="width: 200px"
- placeholder="请选择证件类型">
- <a-select-option :value="item.enumitemname"
- v-for="item in cardTypeList"
- :key="item.autoid">
- {{ item.enumdicname }}
- </a-select-option>
- </a-select>
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="法定代表人"
- name="legalpersonname">
- <a-input class="dialogInput"
- style="width: 200px"
- v-model:value="formState.legalpersonname"
- placeholder="请输入法定代表人" />
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="证件号码"
- name="cardnum">
- <a-input class="dialogInput"
- style="width: 200px"
- v-model:value="formState.cardnum"
- placeholder="请输入证件号码" />
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="纳税人识别号"
- name="taxpayernum">
- <a-input class="dialogInput"
- style="width: 200px"
- v-model:value="formState.taxpayernum"
- placeholder="请输入纳税人识别号" />
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="营业执照">
- <div class="upload">
- <a-upload action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
- :transform-file="transformFile">
- <a-button class="uploadBtn">上传</a-button>
- </a-upload>
- <div class="look">查看附件</div>
- </div>
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="联系人"
- name="contactname">
- <a-input class="dialogInput"
- style="width: 200px"
- v-model:value="formState.contactname"
- placeholder="请输入联系人" />
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="联系人手机号"
- name="mobilephone">
- <a-input class="dialogInput"
- style="width: 200px"
- v-model:value="formState.mobilephone"
- placeholder="请输入联系人手机号" />
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="联系电话"
- name="telphone">
- <a-input class="dialogInput"
- style="width: 200px"
- v-model:value="formState.telphone"
- placeholder="请输入联系电话" />
- </a-form-item>
- </a-col>
- </template>
- <template v-else>
- <a-col :span="12">
- <a-form-item label="姓名"
- name="username">
- <a-input class="dialogInput"
- style="width: 200px"
- v-model:value="formState.username"
- placeholder="请输入姓名" />
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="身份证号码"
- name="cardnum">
- <a-input class="dialogInput"
- style="width: 200px"
- v-model:value="formState.cardnum"
- placeholder="请输入身份证号码" />
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="手机号码"
- name="mobilephone">
- <a-input class="dialogInput"
- style="width: 200px"
- v-model:value="formState.mobilephone"
- placeholder="请输入手机号码" />
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="身份证正面照"
- name="cardbackphotourl">
- <div class="upload">
- <a-upload action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
- :transform-file="transformFile">
- <a-button class="uploadBtn">上传</a-button>
- </a-upload>
- <div class="look">查看附件</div>
- </div>
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="邮箱"
- name="email">
- <a-input class="dialogInput"
- style="width: 200px"
- v-model:value="formState.email"
- placeholder="请输入邮箱" />
- </a-form-item>
- </a-col>
- <a-col :span="24">
- <a-form-item label="身份证反面照"
- name="cardfrontphotourl">
- <div class="upload">
- <a-upload action="https://www.mocky.io/v2/5cc8019d300000980a055e76"
- :transform-file="transformFile">
- <a-button class="uploadBtn">上传</a-button>
- </a-upload>
- <div class="look">查看附件</div>
- </div>
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item label="联系电话"
- name="telphone">
- <a-input class="dialogInput"
- style="width: 200px"
- v-model:value="formState.telphone"
- placeholder="请输入联系电话" />
- </a-form-item>
- </a-col>
- <a-col :span="12">
- <a-form-item>
-
- </a-form-item>
- </a-col>
- </template>
- <a-col :span="24">
- <a-form-item label="通讯地址">
- <a-select class="inlineFormSelect"
- style="width: 205px"
- v-model:value="formState.provinceid"
- @change="getCityList"
- placeholder="请选择省">
- <a-select-option v-for="item in provinceList"
- :key="item.autoid"
- :value="item.autoid">
- {{ item.divisionname }}
- </a-select-option>
- </a-select>
- <a-select class="inlineFormSelect ml9"
- style="width: 205px"
- v-model:value="formState.cityid"
- @change="getDistrictList"
- placeholder="请选择市">
- <a-select-option v-for="item in cityList"
- :key="item.autoid"
- :value="item.autoid">
- {{ item.divisionname }}
- </a-select-option>
- </a-select>
- <a-select class="inlineFormSelect ml9"
- v-model:value="formState.districtid"
- style="width: 205px"
- placeholder="请选择县(区)">
- <a-select-option v-for="item in districtList"
- :key="item.autoid"
- :value="item.autoid">
- {{ item.divisionname }}
- </a-select-option>
- </a-select>
- </a-form-item>
- </a-col>
- <a-col :span="24">
- <a-form-item label=" "
- name="cardaddress">
- <a-input class="dialogInput"
- style="width: 635px"
- v-model:value="formState.cardaddress"
- placeholder="请输入详细地址" />
- </a-form-item>
- </a-col>
- <a-col :span="24">
- <a-form-item label="备注"
- name="remark">
- <a-input class="dialogInput"
- style="width: 635px"
- v-model:value="formState.remark"
- placeholder="请输入备注" />
- </a-form-item>
- </a-col>
- </a-row>
- </a-form>
- </a-modal>
- </template>
- <script lang="ts">
- import { closeModal } from '@/common/setup/modal/index';
- import { defineComponent, PropType, ref, toRaw, watchEffect } from 'vue';
- import { getCardType, handleForm, initFormState } from '../add/setup';
- import { AllEnums } from '@/services/go/commonService/interface';
- import { FormState } from '../add/interface';
- import { ValidateErrorEntity } from 'ant-design-vue/es/form/interface';
- import { getAddress } from '@/services/go/adress';
- import { AddUserInfoApplyReq } from '@/services/go/ermcp/customInfo/interface';
- import { getUserId } from '@/services/bus/account';
- import { requestResultLoadingAndInfo } from '@/common/methods/request/resultInfo';
- import { QueryAddUserInfoApply } from '@/services/go/ermcp/customInfo';
- import { mergeTwoObj } from '@/utils/objHandle';
- export default defineComponent({
- name: 'modify-custom',
- components: {},
- props: {
- selectedRow: {
- default: initFormState,
- type: Object as PropType<FormState>,
- },
- },
- setup(props, context) {
- const { visible, cancel } = closeModal('custom_info_btn_modify');
- const loading = ref<boolean>(false);
- // 证件类型
- const cardTypeList = ref<AllEnums[]>(getCardType());
- // 表单
- const { formRef, formState, rules } = handleForm();
- // 地址
- const { cityList, districtList, provinceList, getCityList, getDistrictList } = getAddress();
- function isPersonal(): boolean {
- return formState.userinfotype === '1';
- }
- watchEffect(() => {
- if (visible.value) {
- mergeTwoObj(formState, props.selectedRow);
- const { provinceid, cityid } = props.selectedRow;
- provinceid ? getCityList(provinceid) : (formState.provinceid = undefined);
- cityid ? getDistrictList(cityid) : ((formState.cityid = undefined), (formState.districtid = undefined));
- }
- });
- function submit(OperateType: 1 | 2) {
- formRef.value
- .validate()
- .then(() => {
- const param = toRaw(formState);
- const reqParam: AddUserInfoApplyReq = {
- customername: param.customername, // 必填
- userid: 1, // 写死 必填
- memberareaid: getUserId(),
- userinfotype: Number(param.userinfotype),
- username: param.customername,
- userstate: OperateType, // 1: 保存草稿 2: 新增
- // 以上必填
- cardtype: param.cardtype, // 证件类型
- cardnum: param.cardnum, // 证件号码
- nickname: param.nickname, // 昵称
- remark: param.remark, // 备注
- mobilephone: param.mobilephone, // 手机号码
- telphone: param.telphone, // 电话
- cardfrontphotourl: param.cardfrontphotourl, // 正面照片
- cardaddress: param.cardaddress, // 证件地址
- cityid: param.cityid, //
- districtid: param.districtid, // 地区
- // countryid: param.,9
- provinceid: param.provinceid, //省
- contactname: param.contactname, // 联系人
- legalpersonname: param.legalpersonname, // 法人姓名(企业)
- taxpayernum: param.taxpayernum, // 纳税人识别号
- email: param.email, // email
- };
- requestResultLoadingAndInfo(QueryAddUserInfoApply, reqParam, loading, OperateType === 1 ? ['保存草稿成功', '保存草稿失败:'] : ['新增客户资料成功', '新增客户资料失败:']).then(() => {
- cancel();
- context.emit('refresh');
- });
- console.log('values', formState);
- })
- .catch((error: ValidateErrorEntity<FormState>) => {
- console.log('error', error);
- });
- }
- return {
- formState,
- rules,
- formRef,
- cardTypeList,
- isPersonal,
- visible,
- cancel,
- submit,
- loading,
- cityList,
- districtList,
- provinceList,
- getCityList,
- getDistrictList,
- };
- },
- });
- </script>
- <style lang="less">
- .modify-custom {
- .upload {
- display: inline-flex;
- .ant-btn.uploadBtn {
- width: 60px;
- height: 30px;
- background: @m-blue0;
- border: 0;
- padding: 0;
- text-align: center;
- font-size: 14px;
- color: @m-white0;
- .rounded-corners(3px);
- &:hover {
- background: rgba(@m-blue0, 0);
- color: rgba(@m-white0, 0.8);
- }
- }
- .look {
- color: @m-blue0;
- font-size: 14px;
- margin-left: 10px;
- cursor: pointer;
- }
- }
- }
- </style
- >;
|