客户中心

pull/1/head
杨世强 1 year ago
parent f2ee13b4e8
commit fd6a27d97b

@ -0,0 +1,54 @@
import request from '@/config/axios'
export interface BusinessWarehouseVO {
id: number
businessCode: string
name: string
businessSimple: string
businessLogo: string
parentId: number
type: string
status: string
institutionNum: number
employeeNum: number
industry: string
city: string
establishDate: Date
belongUserId: number
brandName: string
phone: number
diffFlag: string
fax: string
url: string
description: string
}
// 查询业务线表列表
export const getBusinessWarehousePage = async (params) => {
return await request.get({ url: `/system/business-warehouse/page`, params })
}
// 查询业务线表详情
export const getBusinessWarehouse = async (id: number) => {
return await request.get({ url: `/system/business-warehouse/get?id=` + id })
}
// 新增业务线表
export const createBusinessWarehouse = async (data: BusinessWarehouseVO) => {
return await request.post({ url: `/system/business-warehouse/create`, data })
}
// 修改业务线表
export const updateBusinessWarehouse = async (data: BusinessWarehouseVO) => {
return await request.put({ url: `/system/business-warehouse/update`, data })
}
// 删除业务线表
export const deleteBusinessWarehouse = async (id: number) => {
return await request.delete({ url: `/system/business-warehouse/delete?id=` + id })
}
// 导出业务线表 Excel
export const exportBusinessWarehouse = async (params) => {
return await request.download({ url: `/system/business-warehouse/export-excel`, params })
}

@ -0,0 +1,111 @@
import request from '@/config/axios'
export interface SubjectBasicVO {
id: number
businessType: string
calssify: string
name: string
logo: string
enterpriseNature: string
industryClassify: string
customerSource: string
customerStarrating: string
industrySchedule: string
belongingPeople: string
city: string
country: string
address: string
phone: string
companyFax: string
companyHttp: string
companyProfile: string
customerStatus: string
socialInformationCodeCertificate: string
registerAddress: string
informationCode: string
operateStart: Date
operateEnd: Date
registerCapital: string
businessScope: string
proofPaidCapital: string
assetCertificate: string
assetCertificateMortgage: string
otherQualifications: string
collaborationStart: Date
collaborationEnd: Date
demandVolumeDown: number
demandVolumeUpper: number
fundLimit: number
businessHours: string
businessStart: Date
businessEnd: Date
allowableUnloadingStart: Date
allowableUnloadingEnd: Date
unloading: string
unloadingEfficiency: string
allowableShipmentStart: Date
allowableShipmentEnd: Date
shipment: string
shipmentEffciency: string
paymentMethod: string
accountName: string
bankAccount: string
bankDeposit: string
depositArea: string
bankBranch: string
companyTaxNumber: string
enterpriseName: string
workAddress: string
collaborationMethod: string
settlementMethod: string
accountPeriod: string
underpaymentMethod: string
applyForUnderpaymentRatio: string
marginMethod: string
applyForMarginRatio: string
overdueInterestRate: string
applyForOverdueRatio: string
reservedFields1: string
reservedFields2: string
reservedFields3: string
reservedFields4: string
reservedFields5: string
reservedFields6: string
creditRating: string
autoCreditRating: string
accountsReceivableUpper: number
orderQuantityDown: number
orderQuantityUpper: number
accountsReceivableOverdue: number
taxPaymentCertificate: number
}
// 查询基础业务信息表(客户,供应商,服务商主体)列表
export const getSubjectBasicPage = async (params) => {
return await request.get({ url: `/xxjj/subject-basic/page`, params })
}
// 查询基础业务信息表(客户,供应商,服务商主体)详情
export const getSubjectBasic = async (id: number) => {
return await request.get({ url: `/xxjj/subject-basic/get?id=` + id })
}
// 新增基础业务信息表(客户,供应商,服务商主体)
export const createSubjectBasic = async (data: SubjectBasicVO) => {
return await request.post({ url: `/xxjj/subject-basic/create`, data })
}
// 修改基础业务信息表(客户,供应商,服务商主体)
export const updateSubjectBasic = async (data: SubjectBasicVO) => {
return await request.put({ url: `/xxjj/subject-basic/update`, data })
}
// 删除基础业务信息表(客户,供应商,服务商主体)
export const deleteSubjectBasic = async (id: number) => {
return await request.delete({ url: `/xxjj/subject-basic/delete?id=` + id })
}
// 导出基础业务信息表(客户,供应商,服务商主体) Excel
export const exportSubjectBasic = async (params) => {
return await request.download({ url: `/xxjj/subject-basic/export-excel`, params })
}

@ -0,0 +1,217 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-form-item label="业务线编号" prop="businessCode">
<el-input v-model="formData.businessCode" placeholder="请输入业务线编号" />
</el-form-item>
<el-form-item label="业务线名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入业务线名称" />
</el-form-item>
<el-form-item label="业务线简称" prop="businessSimple">
<el-input v-model="formData.businessSimple" placeholder="请输入业务线简称" />
</el-form-item>
<el-form-item label="业务线LOGO">
<UploadImg v-model="formData.businessLogo" />
</el-form-item>
<el-form-item label="父id" prop="parentId">
<el-input v-model="formData.parentId" placeholder="请输入父id" />
</el-form-item>
<el-form-item label="类型" prop="type">
<el-select v-model="formData.type" placeholder="请选择类型">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.BUSINESS_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select v-model="formData.status" placeholder="请选择状态">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.CLASS_STATUS)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="关联机构" prop="institutionNum">
<el-input v-model="formData.institutionNum" placeholder="请输入关联机构" />
</el-form-item>
<el-form-item label="成员数量" prop="employeeNum">
<el-input v-model="formData.employeeNum" placeholder="请输入成员数量" />
</el-form-item>
<el-form-item label="所属分类" prop="industry">
<el-select v-model="formData.industry" placeholder="请选择所属分类">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.DUTY_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="所在城市" prop="city">
<el-input v-model="formData.city" placeholder="请输入所在城市" />
</el-form-item>
<el-form-item label="成立时间" prop="establishDate">
<el-date-picker
v-model="formData.establishDate"
type="date"
value-format="x"
placeholder="选择成立时间"
/>
</el-form-item>
<el-form-item label="归属人员" prop="belongUserId">
<el-input v-model="formData.belongUserId" placeholder="请输入归属人员" />
</el-form-item>
<el-form-item label="品牌/业务线/事业群名称" prop="brandName">
<el-input v-model="formData.brandName" placeholder="请输入品牌/业务线/事业群名称" />
</el-form-item>
<el-form-item label="电话" prop="phone">
<el-input v-model="formData.phone" placeholder="请输入电话" />
</el-form-item>
<el-form-item label="业务线仓库区分(0业务线,1仓库)" prop="diffFlag">
<el-select v-model="formData.diffFlag" placeholder="请选择业务线仓库区分(0业务线,1仓库)">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.DIFF_FLAG)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="传真" prop="fax">
<el-input v-model="formData.fax" placeholder="请输入传真" />
</el-form-item>
<el-form-item label="网址" prop="url">
<el-input v-model="formData.url" placeholder="请输入网址" />
</el-form-item>
<el-form-item label="介绍" prop="description">
<el-input v-model="formData.description" type="textarea" placeholder="请输入介绍" />
</el-form-item>
</el-form>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { DICT_TYPE, getStrDictOptions } from '@/utils/dict'
import * as BusinessWarehouseApi from '@/api/system/businessWarehouse'
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
id: undefined,
businessCode: undefined,
name: undefined,
businessSimple: undefined,
businessLogo: undefined,
parentId: undefined,
type: undefined,
status: undefined,
institutionNum: undefined,
employeeNum: undefined,
industry: undefined,
city: undefined,
establishDate: undefined,
belongUserId: undefined,
brandName: undefined,
phone: undefined,
diffFlag: undefined,
fax: undefined,
url: undefined,
description: undefined
})
const formRules = reactive({
businessCode: [{ required: true, message: '业务线编号不能为空', trigger: 'blur' }],
name: [{ required: true, message: '业务线名称不能为空', trigger: 'blur' }],
diffFlag: [{ required: true, message: '业务线仓库区分(0业务线,1仓库)不能为空', trigger: 'change' }]
})
const formRef = ref() // Ref
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
//
if (id) {
formLoading.value = true
try {
formData.value = await BusinessWarehouseApi.getBusinessWarehouse(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
if (!formRef) return
const valid = await formRef.value.validate()
if (!valid) return
//
formLoading.value = true
try {
const data = formData.value as unknown as BusinessWarehouseApi.BusinessWarehouseVO
if (formType.value === 'create') {
await BusinessWarehouseApi.createBusinessWarehouse(data)
message.success(t('common.createSuccess'))
} else {
await BusinessWarehouseApi.updateBusinessWarehouse(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
id: undefined,
businessCode: undefined,
name: undefined,
businessSimple: undefined,
businessLogo: undefined,
parentId: undefined,
type: undefined,
status: undefined,
institutionNum: undefined,
employeeNum: undefined,
industry: undefined,
city: undefined,
establishDate: undefined,
belongUserId: undefined,
brandName: undefined,
phone: undefined,
diffFlag: undefined,
fax: undefined,
url: undefined,
description: undefined
}
formRef.value?.resetFields()
}
</script>

@ -0,0 +1,403 @@
<template>
<ContentWrap>
<!-- 搜索工作栏 -->
<el-form
class="-mb-15px"
:model="queryParams"
ref="queryFormRef"
:inline="true"
label-width="68px"
>
<el-form-item label="业务线编号" prop="businessCode">
<el-input
v-model="queryParams.businessCode"
placeholder="请输入业务线编号"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="业务线名称" prop="name">
<el-input
v-model="queryParams.name"
placeholder="请输入业务线名称"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="业务线简称" prop="businessSimple">
<el-input
v-model="queryParams.businessSimple"
placeholder="请输入业务线简称"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="父id" prop="parentId">
<el-input
v-model="queryParams.parentId"
placeholder="请输入父id"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="类型" prop="type">
<el-select v-model="queryParams.type" placeholder="请选择类型" clearable class="!w-240px">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.BUSINESS_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="状态" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择状态" clearable class="!w-240px">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.CLASS_STATUS)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="关联机构" prop="institutionNum">
<el-input
v-model="queryParams.institutionNum"
placeholder="请输入关联机构"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="成员数量" prop="employeeNum">
<el-input
v-model="queryParams.employeeNum"
placeholder="请输入成员数量"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="所属分类" prop="industry">
<el-select
v-model="queryParams.industry"
placeholder="请选择所属分类"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.DUTY_TYPE)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="所在城市" prop="city">
<el-input
v-model="queryParams.city"
placeholder="请输入所在城市"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="成立时间" prop="establishDate">
<el-date-picker
v-model="queryParams.establishDate"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="归属人员" prop="belongUserId">
<el-input
v-model="queryParams.belongUserId"
placeholder="请输入归属人员"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="品牌/业务线/事业群名称" prop="brandName">
<el-input
v-model="queryParams.brandName"
placeholder="请输入品牌/业务线/事业群名称"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="电话" prop="phone">
<el-input
v-model="queryParams.phone"
placeholder="请输入电话"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="业务线仓库区分(0业务线,1仓库)" prop="diffFlag">
<el-select
v-model="queryParams.diffFlag"
placeholder="请选择业务线仓库区分(0业务线,1仓库)"
clearable
class="!w-240px"
>
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.DIFF_FLAG)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="传真" prop="fax">
<el-input
v-model="queryParams.fax"
placeholder="请输入传真"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="网址" prop="url">
<el-input
v-model="queryParams.url"
placeholder="请输入网址"
clearable
@keyup.enter="handleQuery"
class="!w-240px"
/>
</el-form-item>
<el-form-item label="创建时间" prop="createTime">
<el-date-picker
v-model="queryParams.createTime"
value-format="YYYY-MM-DD HH:mm:ss"
type="daterange"
start-placeholder="开始日期"
end-placeholder="结束日期"
:default-time="[new Date('1 00:00:00'), new Date('1 23:59:59')]"
class="!w-240px"
/>
</el-form-item>
<el-form-item>
<el-button @click="handleQuery"><Icon icon="ep:search" class="mr-5px" /> 搜索</el-button>
<el-button @click="resetQuery"><Icon icon="ep:refresh" class="mr-5px" /> 重置</el-button>
<el-button
type="primary"
plain
@click="openForm('create')"
v-hasPermi="['system:business-warehouse:create']"
>
<Icon icon="ep:plus" class="mr-5px" /> 新增
</el-button>
<el-button
type="success"
plain
@click="handleExport"
:loading="exportLoading"
v-hasPermi="['system:business-warehouse:export']"
>
<Icon icon="ep:download" class="mr-5px" /> 导出
</el-button>
</el-form-item>
</el-form>
</ContentWrap>
<!-- 列表 -->
<ContentWrap>
<el-table v-loading="loading" :data="list" :stripe="true" :show-overflow-tooltip="true">
<el-table-column label="序号" type="index" width="70px" />
<el-table-column label="业务id" align="center" prop="id" width="150px"/>
<el-table-column label="业务线编号" align="center" prop="businessCode" width="150px"/>
<el-table-column label="业务线名称" align="center" prop="name" width="150px"/>
<el-table-column label="业务线简称" align="center" prop="businessSimple" width="150px"/>
<el-table-column label="业务线LOGO" align="center" prop="businessLogo" width="150px"/>
<el-table-column label="父id" align="center" prop="parentId" width="150px"/>
<el-table-column label="类型" align="center" prop="type" width="150px">
<template #default="scope">
<dict-tag :type="DICT_TYPE.BUSINESS_TYPE" :value="scope.row.type" />
</template>
</el-table-column>
<el-table-column label="状态" align="center" prop="status" width="150px">
<template #default="scope">
<dict-tag :type="DICT_TYPE.CLASS_STATUS" :value="scope.row.status" />
</template>
</el-table-column>
<el-table-column label="关联机构" align="center" prop="institutionNum" width="150px"/>
<el-table-column label="成员数量" align="center" prop="employeeNum" width="150px"/>
<el-table-column label="所属分类" align="center" prop="industry" width="150px">
<template #default="scope">
<dict-tag :type="DICT_TYPE.DUTY_TYPE" :value="scope.row.industry" />
</template>
</el-table-column>
<el-table-column label="所在城市" align="center" prop="city" width="150px"/>
<el-table-column
label="成立时间"
align="center"
prop="establishDate"
:formatter="dateFormatter"
width="150px"
/>
<el-table-column label="归属人员" align="center" prop="belongUserId" width="150px"/>
<el-table-column label="品牌/业务线/事业群名称" align="center" prop="brandName" width="150px"/>
<el-table-column label="电话" align="center" prop="phone" width="150px"/>
<el-table-column label="业务线仓库区分(0业务线,1仓库)" align="center" prop="diffFlag" width="150px">
<template #default="scope">
<dict-tag :type="DICT_TYPE.DIFF_FLAG" :value="scope.row.diffFlag" />
</template>
</el-table-column>
<el-table-column label="传真" align="center" prop="fax" width="150px"/>
<el-table-column label="网址" align="center" prop="url" width="150px"/>
<el-table-column label="介绍" align="center" prop="description" width="150px"/>
<el-table-column
label="创建时间"
align="center"
prop="createTime"
:formatter="dateFormatter"
width="150px"
/>
<el-table-column label="操作" align="center" width="150px">
<template #default="scope">
<el-button
link
type="primary"
@click="openForm('update', scope.row.id)"
v-hasPermi="['system:business-warehouse:update']"
>
编辑
</el-button>
<el-button
link
type="danger"
@click="handleDelete(scope.row.id)"
v-hasPermi="['system:business-warehouse:delete']"
>
删除
</el-button>
</template>
</el-table-column>
</el-table>
<!-- 分页 -->
<Pagination
:total="total"
v-model:page="queryParams.pageNo"
v-model:limit="queryParams.pageSize"
@pagination="getList"
/>
</ContentWrap>
<!-- 表单弹窗添加/修改 -->
<BusinessWarehouseForm ref="formRef" @success="getList" />
</template>
<script setup lang="ts" name="BusinessWarehouse">
import { DICT_TYPE, getStrDictOptions } from '@/utils/dict'
import { dateFormatter } from '@/utils/formatTime'
import download from '@/utils/download'
import * as BusinessWarehouseApi from '@/api/system/businessWarehouse'
import BusinessWarehouseForm from './BusinessWarehouseForm.vue'
const message = useMessage() //
const { t } = useI18n() //
const loading = ref(true) //
const total = ref(0) //
const list = ref([]) //
const queryParams = reactive({
pageNo: 1,
pageSize: 10,
businessCode: null,
name: null,
businessSimple: null,
businessLogo: null,
parentId: null,
type: null,
status: null,
institutionNum: null,
employeeNum: null,
industry: null,
city: null,
establishDate: [],
belongUserId: null,
brandName: null,
phone: null,
diffFlag: null,
fax: null,
url: null,
description: null,
createTime: []
})
const queryFormRef = ref() //
const exportLoading = ref(false) //
/** 查询列表 */
const getList = async () => {
loading.value = true
try {
const data = await BusinessWarehouseApi.getBusinessWarehousePage(queryParams)
list.value = data.list
total.value = data.total
} finally {
loading.value = false
}
}
/** 搜索按钮操作 */
const handleQuery = () => {
queryParams.pageNo = 1
getList()
}
/** 重置按钮操作 */
const resetQuery = () => {
queryFormRef.value.resetFields()
handleQuery()
}
/** 添加/修改操作 */
const formRef = ref()
const openForm = (type: string, id?: number) => {
formRef.value.open(type, id)
}
/** 删除按钮操作 */
const handleDelete = async (id: number) => {
try {
//
await message.delConfirm()
//
await BusinessWarehouseApi.deleteBusinessWarehouse(id)
message.success(t('common.delSuccess'))
//
await getList()
} catch {}
}
/** 导出按钮操作 */
const handleExport = async () => {
try {
//
await message.exportConfirm()
//
exportLoading.value = true
const data = await BusinessWarehouseApi.exportBusinessWarehouse(queryParams)
download.excel(data, '业务线表.xls')
} catch {
} finally {
exportLoading.value = false
}
}
/** 初始化 **/
onMounted(() => {
getList()
})
</script>

@ -0,0 +1,475 @@
<template>
<Dialog :title="dialogTitle" v-model="dialogVisible">
<el-form
ref="formRef"
:model="formData"
:rules="formRules"
label-width="100px"
v-loading="formLoading"
>
<el-form-item label="业务类型(0客户 1供应商 2服务商)" prop="businessType">
<el-select v-model="formData.businessType" placeholder="请选择业务类型(0客户 1供应商 2服务商)">
<el-option label="请选择字典生成" value="" />
</el-select>
</el-form-item>
<el-form-item label="分类(0一级 1二级 2三级)" prop="calssify">
<el-input v-model="formData.calssify" placeholder="请输入分类(0一级 1二级 2三级)" />
</el-form-item>
<el-form-item label="客户名称" prop="name">
<el-input v-model="formData.name" placeholder="请输入客户名称" />
</el-form-item>
<el-form-item label="公司logo" prop="logo">
<el-input v-model="formData.logo" placeholder="请输入公司logo" />
</el-form-item>
<el-form-item label="企业性质(0国有企业 1集体企业 2私营企业 3股份制企业 4外资企业 5合资企业)" prop="enterpriseNature">
<el-input v-model="formData.enterpriseNature" placeholder="请输入企业性质(0国有企业 1集体企业 2私营企业 3股份制企业 4外资企业 5合资企业)" />
</el-form-item>
<el-form-item label="行业分类(0家用电器 1交通运输 2商务服务 3家具用品 4电工电气 5通信产品 6办公文教 7运动休闲 8传媒广电)" prop="industryClassify">
<el-input v-model="formData.industryClassify" placeholder="请输入行业分类(0家用电器 1交通运输 2商务服务 3家具用品 4电工电气 5通信产品 6办公文教 7运动休闲 8传媒广电)" />
</el-form-item>
<el-form-item label="客户来源(0电话营销 1主动来电 2客户介绍 3朋友介绍 4独立开发 5网络搜索 6广告杂志 7展会促销 8其他途径)" prop="customerSource">
<el-input v-model="formData.customerSource" placeholder="请输入客户来源(0电话营销 1主动来电 2客户介绍 3朋友介绍 4独立开发 5网络搜索 6广告杂志 7展会促销 8其他途径)" />
</el-form-item>
<el-form-item label="客户星级(0一星 1二星 2三星 3四星 4五星)" prop="customerStarrating">
<el-input v-model="formData.customerStarrating" placeholder="请输入客户星级(0一星 1二星 2三星 3四星 4五星)" />
</el-form-item>
<el-form-item label="业务进度(0了解跟进 1资料收集 2客户评审 3风控核准 4合作洽谈 5准备签约 6已经签约 7合作叫停 8暂时搁置)" prop="industrySchedule">
<el-input v-model="formData.industrySchedule" placeholder="请输入业务进度(0了解跟进 1资料收集 2客户评审 3风控核准 4合作洽谈 5准备签约 6已经签约 7合作叫停 8暂时搁置)" />
</el-form-item>
<el-form-item label="归属人员" prop="belongingPeople">
<el-input v-model="formData.belongingPeople" placeholder="请输入归属人员" />
</el-form-item>
<el-form-item label="所在城市" prop="city">
<el-input v-model="formData.city" placeholder="请输入所在城市" />
</el-form-item>
<el-form-item label="国家" prop="country">
<el-input v-model="formData.country" placeholder="请输入国家" />
</el-form-item>
<el-form-item label="详细地址" prop="address">
<el-input v-model="formData.address" placeholder="请输入详细地址" />
</el-form-item>
<el-form-item label="公司电话" prop="phone">
<el-input v-model="formData.phone" placeholder="请输入公司电话" />
</el-form-item>
<el-form-item label="公司传真" prop="companyFax">
<el-input v-model="formData.companyFax" placeholder="请输入公司传真" />
</el-form-item>
<el-form-item label="公司网址" prop="companyHttp">
<el-input v-model="formData.companyHttp" placeholder="请输入公司网址" />
</el-form-item>
<el-form-item label="客户状态(0待提交 1待审核 2待核准 3带启用 4已启用 5已禁用 6已关闭)" prop="customerStatus">
<el-select v-model="formData.customerStatus" placeholder="请选择客户状态(0待提交 1待审核 2待核准 3带启用 4已启用 5已禁用 6已关闭)">
<el-option
v-for="dict in getStrDictOptions(DICT_TYPE.CUSTOMER_STATUS)"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="社会信息代码证(营业执照)" prop="socialInformationCodeCertificate">
<el-input v-model="formData.socialInformationCodeCertificate" placeholder="请输入社会信息代码证(营业执照)" />
</el-form-item>
<el-form-item label="注册地址" prop="registerAddress">
<el-input v-model="formData.registerAddress" placeholder="请输入注册地址" />
</el-form-item>
<el-form-item label="社会统一信息代码" prop="informationCode">
<el-input v-model="formData.informationCode" placeholder="请输入社会统一信息代码" />
</el-form-item>
<el-form-item label="经营时间开始" prop="operateStart">
<el-input v-model="formData.operateStart" placeholder="请输入经营时间开始" />
</el-form-item>
<el-form-item label="经营时间结束" prop="operateEnd">
<el-input v-model="formData.operateEnd" placeholder="请输入经营时间结束" />
</el-form-item>
<el-form-item label="注册资金" prop="registerCapital">
<el-input v-model="formData.registerCapital" placeholder="请输入注册资金" />
</el-form-item>
<el-form-item label="经营范围" prop="businessScope">
<el-input v-model="formData.businessScope" placeholder="请输入经营范围" />
</el-form-item>
<el-form-item label="实缴资金证明" prop="proofPaidCapital">
<el-input v-model="formData.proofPaidCapital" placeholder="请输入实缴资金证明" />
</el-form-item>
<el-form-item label="资产证明" prop="assetCertificate">
<el-input v-model="formData.assetCertificate" placeholder="请输入资产证明" />
</el-form-item>
<el-form-item label="资产抵押证明" prop="assetCertificateMortgage">
<el-input v-model="formData.assetCertificateMortgage" placeholder="请输入资产抵押证明" />
</el-form-item>
<el-form-item label="其他资质文件" prop="otherQualifications">
<el-input v-model="formData.otherQualifications" placeholder="请输入其他资质文件" />
</el-form-item>
<el-form-item label="合作时间开始" prop="collaborationStart">
<el-input v-model="formData.collaborationStart" placeholder="请输入合作时间开始" />
</el-form-item>
<el-form-item label="合作时间结束" prop="collaborationEnd">
<el-input v-model="formData.collaborationEnd" placeholder="请输入合作时间结束" />
</el-form-item>
<el-form-item label="需求量(每月下限)" prop="demandVolumeDown">
<el-input v-model="formData.demandVolumeDown" placeholder="请输入需求量(每月下限)" />
</el-form-item>
<el-form-item label="需求量(每月上限)" prop="demandVolumeUpper">
<el-input v-model="formData.demandVolumeUpper" placeholder="请输入需求量(每月上限)" />
</el-form-item>
<el-form-item label="资金额度" prop="fundLimit">
<el-input v-model="formData.fundLimit" placeholder="请输入资金额度" />
</el-form-item>
<el-form-item label="营业时间" prop="businessHours">
<el-input v-model="formData.businessHours" placeholder="请输入营业时间" />
</el-form-item>
<el-form-item label="营业时间开始" prop="businessStart">
<el-input v-model="formData.businessStart" placeholder="请输入营业时间开始" />
</el-form-item>
<el-form-item label="营业时间结束" prop="businessEnd">
<el-input v-model="formData.businessEnd" placeholder="请输入营业时间结束" />
</el-form-item>
<el-form-item label="允许卸货时间开始" prop="allowableUnloadingStart">
<el-input v-model="formData.allowableUnloadingStart" placeholder="请输入允许卸货时间开始" />
</el-form-item>
<el-form-item label="允许卸货时间结束" prop="allowableUnloadingEnd">
<el-input v-model="formData.allowableUnloadingEnd" placeholder="请输入允许卸货时间结束" />
</el-form-item>
<el-form-item label="卸货时长" prop="unloading">
<el-input v-model="formData.unloading" placeholder="请输入卸货时长" />
</el-form-item>
<el-form-item label="卸货效率" prop="unloadingEfficiency">
<el-input v-model="formData.unloadingEfficiency" placeholder="请输入卸货效率" />
</el-form-item>
<el-form-item label="允许装货时间开始" prop="allowableShipmentStart">
<el-input v-model="formData.allowableShipmentStart" placeholder="请输入允许装货时间开始" />
</el-form-item>
<el-form-item label="允许装货时间结束" prop="allowableShipmentEnd">
<el-input v-model="formData.allowableShipmentEnd" placeholder="请输入允许装货时间结束" />
</el-form-item>
<el-form-item label="装货时长" prop="shipment">
<el-input v-model="formData.shipment" placeholder="请输入装货时长" />
</el-form-item>
<el-form-item label="装货效果" prop="shipmentEffciency">
<el-input v-model="formData.shipmentEffciency" placeholder="请输入装货效果" />
</el-form-item>
<el-form-item label="付款方式(0无 1现金 2银行转账 3承兑汇票 4有赞代收 5支付宝 6微信 7国家列表)" prop="paymentMethod">
<el-input v-model="formData.paymentMethod" placeholder="请输入付款方式(0无 1现金 2银行转账 3承兑汇票 4有赞代收 5支付宝 6微信 7国家列表)" />
</el-form-item>
<el-form-item label="账户名称" prop="accountName">
<el-input v-model="formData.accountName" placeholder="请输入账户名称" />
</el-form-item>
<el-form-item label="银行账号" prop="bankAccount">
<el-input v-model="formData.bankAccount" placeholder="请输入银行账号" />
</el-form-item>
<el-form-item label="开户银行" prop="bankDeposit">
<el-input v-model="formData.bankDeposit" placeholder="请输入开户银行" />
</el-form-item>
<el-form-item label="开户地区" prop="depositArea">
<el-input v-model="formData.depositArea" placeholder="请输入开户地区" />
</el-form-item>
<el-form-item label="支行名称" prop="bankBranch">
<el-input v-model="formData.bankBranch" placeholder="请输入支行名称" />
</el-form-item>
<el-form-item label="公司税号" prop="companyTaxNumber">
<el-input v-model="formData.companyTaxNumber" placeholder="请输入公司税号" />
</el-form-item>
<el-form-item label="企业名称" prop="enterpriseName">
<el-input v-model="formData.enterpriseName" placeholder="请输入企业名称" />
</el-form-item>
<el-form-item label="单位地址" prop="workAddress">
<el-input v-model="formData.workAddress" placeholder="请输入单位地址" />
</el-form-item>
<el-form-item label="合作方式(0买断 1联营)" prop="collaborationMethod">
<el-input v-model="formData.collaborationMethod" placeholder="请输入合作方式(0买断 1联营)" />
</el-form-item>
<el-form-item label="结算方式(0:先货后款 1先款后货)" prop="settlementMethod">
<el-input v-model="formData.settlementMethod" placeholder="请输入结算方式(0:先货后款 1先款后货)" />
</el-form-item>
<el-form-item label="账期" prop="accountPeriod">
<el-input v-model="formData.accountPeriod" placeholder="请输入账期" />
</el-form-item>
<el-form-item label="压款方式(0无 1按金额 2按比例)" prop="underpaymentMethod">
<el-input v-model="formData.underpaymentMethod" placeholder="请输入压款方式(0无 1按金额 2按比例)" />
</el-form-item>
<el-form-item label="申请压款比例" prop="applyForUnderpaymentRatio">
<el-input v-model="formData.applyForUnderpaymentRatio" placeholder="请输入申请压款比例" />
</el-form-item>
<el-form-item label="保证金方式(0无 1按金额 2按比例)" prop="marginMethod">
<el-input v-model="formData.marginMethod" placeholder="请输入保证金方式(0无 1按金额 2按比例)" />
</el-form-item>
<el-form-item label="申请保证金比例" prop="applyForMarginRatio">
<el-input v-model="formData.applyForMarginRatio" placeholder="请输入申请保证金比例" />
</el-form-item>
<el-form-item label="逾期利率(0按年化1按月化)" prop="overdueInterestRate">
<el-input v-model="formData.overdueInterestRate" placeholder="请输入逾期利率(0按年化1按月化)" />
</el-form-item>
<el-form-item label="申请逾期利率" prop="applyForOverdueRatio">
<el-input v-model="formData.applyForOverdueRatio" placeholder="请输入申请逾期利率" />
</el-form-item>
<el-form-item label="预留字段1" prop="reservedFields1">
<el-input v-model="formData.reservedFields1" placeholder="请输入预留字段1" />
</el-form-item>
<el-form-item label="预留字段2" prop="reservedFields2">
<el-input v-model="formData.reservedFields2" placeholder="请输入预留字段2" />
</el-form-item>
<el-form-item label="预留字段3" prop="reservedFields3">
<el-input v-model="formData.reservedFields3" placeholder="请输入预留字段3" />
</el-form-item>
<el-form-item label="预留字段4" prop="reservedFields4">
<el-input v-model="formData.reservedFields4" placeholder="请输入预留字段4" />
</el-form-item>
<el-form-item label="预留字段5" prop="reservedFields5">
<el-input v-model="formData.reservedFields5" placeholder="请输入预留字段5" />
</el-form-item>
<el-form-item label="预留字段6" prop="reservedFields6">
<el-input v-model="formData.reservedFields6" placeholder="请输入预留字段6" />
</el-form-item>
<el-form-item label="信用级别(0S 1A 2B)" prop="creditRating">
<el-input v-model="formData.creditRating" placeholder="请输入信用级别(0S 1A 2B)" />
</el-form-item>
<el-form-item label="信用级别(0开启 1关闭)" prop="autoCreditRating">
<el-input v-model="formData.autoCreditRating" placeholder="请输入信用级别(0开启 1关闭)" />
</el-form-item>
<el-form-item label="应收款上限" prop="accountsReceivableUpper">
<el-input v-model="formData.accountsReceivableUpper" placeholder="请输入应收款上限" />
</el-form-item>
<el-form-item label="订单量下限" prop="orderQuantityDown">
<el-input v-model="formData.orderQuantityDown" placeholder="请输入订单量下限" />
</el-form-item>
<el-form-item label="订单量上限" prop="orderQuantityUpper">
<el-input v-model="formData.orderQuantityUpper" placeholder="请输入订单量上限" />
</el-form-item>
<el-form-item label="应收款项逾期限制" prop="accountsReceivableOverdue">
<el-input v-model="formData.accountsReceivableOverdue" placeholder="请输入应收款项逾期限制" />
</el-form-item>
<el-form-item label="完税证明超时限制" prop="taxPaymentCertificate">
<el-input v-model="formData.taxPaymentCertificate" placeholder="请输入完税证明超时限制" />
</el-form-item>
</el-form>
<template #footer>
<el-button @click="submitForm" type="primary" :disabled="formLoading"> </el-button>
<el-button @click="dialogVisible = false"> </el-button>
</template>
</Dialog>
</template>
<script setup lang="ts">
import { DICT_TYPE, getStrDictOptions } from '@/utils/dict'
import * as SubjectBasicApi from '@/api/xxjj/subjectBasic'
const { t } = useI18n() //
const message = useMessage() //
const dialogVisible = ref(false) //
const dialogTitle = ref('') //
const formLoading = ref(false) // 12
const formType = ref('') // create - update -
const formData = ref({
id: undefined,
businessType: undefined,
calssify: undefined,
name: undefined,
logo: undefined,
enterpriseNature: undefined,
industryClassify: undefined,
customerSource: undefined,
customerStarrating: undefined,
industrySchedule: undefined,
belongingPeople: undefined,
city: undefined,
country: undefined,
address: undefined,
phone: undefined,
companyFax: undefined,
companyHttp: undefined,
companyProfile: undefined,
customerStatus: undefined,
socialInformationCodeCertificate: undefined,
registerAddress: undefined,
informationCode: undefined,
operateStart: undefined,
operateEnd: undefined,
registerCapital: undefined,
businessScope: undefined,
proofPaidCapital: undefined,
assetCertificate: undefined,
assetCertificateMortgage: undefined,
otherQualifications: undefined,
collaborationStart: undefined,
collaborationEnd: undefined,
demandVolumeDown: undefined,
demandVolumeUpper: undefined,
fundLimit: undefined,
businessHours: undefined,
businessStart: undefined,
businessEnd: undefined,
allowableUnloadingStart: undefined,
allowableUnloadingEnd: undefined,
unloading: undefined,
unloadingEfficiency: undefined,
allowableShipmentStart: undefined,
allowableShipmentEnd: undefined,
shipment: undefined,
shipmentEffciency: undefined,
paymentMethod: undefined,
accountName: undefined,
bankAccount: undefined,
bankDeposit: undefined,
depositArea: undefined,
bankBranch: undefined,
companyTaxNumber: undefined,
enterpriseName: undefined,
workAddress: undefined,
collaborationMethod: undefined,
settlementMethod: undefined,
accountPeriod: undefined,
underpaymentMethod: undefined,
applyForUnderpaymentRatio: undefined,
marginMethod: undefined,
applyForMarginRatio: undefined,
overdueInterestRate: undefined,
applyForOverdueRatio: undefined,
reservedFields1: undefined,
reservedFields2: undefined,
reservedFields3: undefined,
reservedFields4: undefined,
reservedFields5: undefined,
reservedFields6: undefined,
creditRating: undefined,
autoCreditRating: undefined,
accountsReceivableUpper: undefined,
orderQuantityDown: undefined,
orderQuantityUpper: undefined,
accountsReceivableOverdue: undefined,
taxPaymentCertificate: undefined
})
const formRules = reactive({
businessType: [{ required: true, message: '业务类型(0客户 1供应商 2服务商)不能为空', trigger: 'change' }],
calssify: [{ required: true, message: '分类(0一级 1二级 2三级)不能为空', trigger: 'blur' }],
customerStatus: [{ required: true, message: '客户状态(0待提交 1待审核 2待核准 3带启用 4已启用 5已禁用 6已关闭)不能为空', trigger: 'change' }]
})
const formRef = ref() // Ref
/** 打开弹窗 */
const open = async (type: string, id?: number) => {
dialogVisible.value = true
dialogTitle.value = t('action.' + type)
formType.value = type
resetForm()
//
if (id) {
formLoading.value = true
try {
formData.value = await SubjectBasicApi.getSubjectBasic(id)
} finally {
formLoading.value = false
}
}
}
defineExpose({ open }) // open
/** 提交表单 */
const emit = defineEmits(['success']) // success
const submitForm = async () => {
//
if (!formRef) return
const valid = await formRef.value.validate()
if (!valid) return
//
formLoading.value = true
try {
const data = formData.value as unknown as SubjectBasicApi.SubjectBasicVO
if (formType.value === 'create') {
await SubjectBasicApi.createSubjectBasic(data)
message.success(t('common.createSuccess'))
} else {
await SubjectBasicApi.updateSubjectBasic(data)
message.success(t('common.updateSuccess'))
}
dialogVisible.value = false
//
emit('success')
} finally {
formLoading.value = false
}
}
/** 重置表单 */
const resetForm = () => {
formData.value = {
id: undefined,
businessType: undefined,
calssify: undefined,
name: undefined,
logo: undefined,
enterpriseNature: undefined,
industryClassify: undefined,
customerSource: undefined,
customerStarrating: undefined,
industrySchedule: undefined,
belongingPeople: undefined,
city: undefined,
country: undefined,
address: undefined,
phone: undefined,
companyFax: undefined,
companyHttp: undefined,
companyProfile: undefined,
customerStatus: undefined,
socialInformationCodeCertificate: undefined,
registerAddress: undefined,
informationCode: undefined,
operateStart: undefined,
operateEnd: undefined,
registerCapital: undefined,
businessScope: undefined,
proofPaidCapital: undefined,
assetCertificate: undefined,
assetCertificateMortgage: undefined,
otherQualifications: undefined,
collaborationStart: undefined,
collaborationEnd: undefined,
demandVolumeDown: undefined,
demandVolumeUpper: undefined,
fundLimit: undefined,
businessHours: undefined,
businessStart: undefined,
businessEnd: undefined,
allowableUnloadingStart: undefined,
allowableUnloadingEnd: undefined,
unloading: undefined,
unloadingEfficiency: undefined,
allowableShipmentStart: undefined,
allowableShipmentEnd: undefined,
shipment: undefined,
shipmentEffciency: undefined,
paymentMethod: undefined,
accountName: undefined,
bankAccount: undefined,
bankDeposit: undefined,
depositArea: undefined,
bankBranch: undefined,
companyTaxNumber: undefined,
enterpriseName: undefined,
workAddress: undefined,
collaborationMethod: undefined,
settlementMethod: undefined,
accountPeriod: undefined,
underpaymentMethod: undefined,
applyForUnderpaymentRatio: undefined,
marginMethod: undefined,
applyForMarginRatio: undefined,
overdueInterestRate: undefined,
applyForOverdueRatio: undefined,
reservedFields1: undefined,
reservedFields2: undefined,
reservedFields3: undefined,
reservedFields4: undefined,
reservedFields5: undefined,
reservedFields6: undefined,
creditRating: undefined,
autoCreditRating: undefined,
accountsReceivableUpper: undefined,
orderQuantityDown: undefined,
orderQuantityUpper: undefined,
accountsReceivableOverdue: undefined,
taxPaymentCertificate: undefined
}
formRef.value?.resetFields()
}
</script>

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save