|
|
|
@ -6,11 +6,19 @@ |
|
|
|
<div class="flex-row-center-start"> |
|
|
|
<span style="font-size: 18px;font-weight: bold;">{{details.nickName}}</span> |
|
|
|
<!-- <Icon icon="ant-design:edit-twotone" size="18px" style="margin-left: 12px;color:#0960bd;"/> --> |
|
|
|
<Button type="link"><template #icon><Icon icon="ant-design:edit-twotone" size="16px" style="margin-left: 12px;color:#0960bd;"/></template></Button> |
|
|
|
<Popconfirm placement="bottom" icon="修改昵称" @confirm="handleNickname"> |
|
|
|
<template #title> |
|
|
|
<Input placeholder="请输入昵称" v-model:value="nickName" style="margin-top: 12px;"/> |
|
|
|
</template> |
|
|
|
<Button type="link"><template #icon><Icon icon="ant-design:edit-twotone" size="16px" style="margin-left: 12px;color:#0960bd;"/></template></Button> |
|
|
|
</Popconfirm> |
|
|
|
|
|
|
|
<span style="color: #666;margin: 0 12px;">(ID:{{details.id}} | 渠道来源:{{channelList.find((find) => find.value === details.channelType)?.label}})</span> |
|
|
|
<Tag color="#d5d5d5">#线索阶段-0呼</Tag> |
|
|
|
<Tag color="warning" v-if="details.allocationStatus === 1">待分配</Tag> |
|
|
|
<Tag color="green" v-else-if="details.validStatus === 2">#有效线索-0呼</Tag> |
|
|
|
<Tag color="error" v-else-if="details.validStatus === 3">#无效线索-0呼</Tag> |
|
|
|
</div> |
|
|
|
<div class="flex-row-center-start" style="margin-top: 8px;"> |
|
|
|
<div class="flex-row-center-start" style="margin-top: 5px;"> |
|
|
|
<div class="flex-row-center-start" style="width: 240px;"> |
|
|
|
<span style="color: #666;">电话:</span> |
|
|
|
<span style="color: #333;font-weight: bold;">{{details.phone}}</span> |
|
|
|
@ -21,14 +29,16 @@ |
|
|
|
</div> |
|
|
|
<div class="flex-row-center-start" style="width: 240px;"> |
|
|
|
<span style="color: #666;">客户标签:</span> |
|
|
|
<Tag color="#f50">无效</Tag> |
|
|
|
<Button style="height: 22px;line-height: 22px;width: 24px;border: 1px solid #0960bd;"><template #icon><Icon icon="ant-design:plus-outlined" size="14px" style="color:#0960bd;display: block;"/></template></Button> |
|
|
|
<!-- <Tag color="#f50">无效</Tag> --> |
|
|
|
<Button style="height: 22px;line-height: 22px;width: 24px;border: 1px solid #0960bd;"> |
|
|
|
<template #icon><Icon icon="ant-design:plus-outlined" size="14px" style="color:#0960bd;display: block;"/></template> |
|
|
|
</Button> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="flex-row-center-start" style="margin-top: 8px;"> |
|
|
|
<div class="flex-row-center-start" style="margin-top: 5px;"> |
|
|
|
<div class="flex-row-center-start" style="width: 240px;"> |
|
|
|
<span style="color: #666;">下次跟进时间:</span> |
|
|
|
<span style="color: #333;">{{details.nextFollowTime || '--'}}</span> |
|
|
|
<!-- <span style="color: #333;">{{details.nextFollowTime || '--'}}</span> --> |
|
|
|
</div> |
|
|
|
<!-- <div class="flex-row-center-start" style="width: 240px;"> |
|
|
|
<span style="color: #666;">创建人:</span> |
|
|
|
@ -44,41 +54,57 @@ |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="flex-col" style="background: white;width: 100%;margin-top: 16px;padding: 12px 40px 12px 40px;"> |
|
|
|
<div class="flex-col" style="background: white;width: 100%;margin-top: 16px;padding: 10px 40px;"> |
|
|
|
<div class="flex-row-center-space"> |
|
|
|
<div class="flex-row-center-start" style="width: 240px;"> |
|
|
|
<span style="color: #666;">签约红娘:</span> |
|
|
|
<div class="flex-row-center-start" style="flex: 1;"> |
|
|
|
<span style="color: #666;">签约销售:</span> |
|
|
|
<span style="color: #333;font-weight: bold;">--</span> |
|
|
|
</div> |
|
|
|
<div class="flex-row-center-start" style="width: 240px;"> |
|
|
|
<span style="color: #666;">签约红娘:</span> |
|
|
|
<div class="flex-row-center-start" style="flex: 1;"> |
|
|
|
<span style="color: #666;">服务红娘:</span> |
|
|
|
<span style="color: #333;font-weight: bold;">--</span> |
|
|
|
</div> |
|
|
|
<div class="flex-row-center-start" style="width: 240px;"> |
|
|
|
<span style="color: #666;">签约红娘:</span> |
|
|
|
<div class="flex-row-center-start" style="flex: 1;"> |
|
|
|
<span style="color: #666;">约见红娘:</span> |
|
|
|
<span style="color: #333;font-weight: bold;">--</span> |
|
|
|
</div> |
|
|
|
<div class="flex-row-center-start" style="width: 240px;"> |
|
|
|
<span style="color: #666;">签约红娘:</span> |
|
|
|
<div class="flex-row-center-start" style="flex: 1;"> |
|
|
|
<span style="color: #666;">店邀人:</span> |
|
|
|
<span style="color: #333;font-weight: bold;">--</span> |
|
|
|
</div> |
|
|
|
<div class="flex-row-center-start" style="flex: 1;"> |
|
|
|
<span style="color: #666;">核验人:</span> |
|
|
|
<span style="color: #333;font-weight: bold;">{{details.verifierName || '--'}}</span> |
|
|
|
</div> |
|
|
|
<div class="flex-row-center-start" style="flex: 1;"> |
|
|
|
<span style="color: #666;">录入人:</span> |
|
|
|
<span style="color: #333;font-weight: bold;">{{details.creatorName || '--'}}</span> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div class="flex-row-center-space" style="margin-top: 8px;"> |
|
|
|
<div class="flex-row-center-start" style="width: 240px;"> |
|
|
|
<span style="color: #666;">签约红娘:</span> |
|
|
|
<div class="flex-row-center-space" style="margin-top: 4px;"> |
|
|
|
<div class="flex-row-center-start" style="flex: 1;"> |
|
|
|
<span style="color: #666;">签约时间:</span> |
|
|
|
<span style="color: #333;font-weight: bold;">--</span> |
|
|
|
</div> |
|
|
|
<div class="flex-row-center-start" style="flex: 1;"> |
|
|
|
<span style="color: #666;">服务次数:</span> |
|
|
|
<span style="color: #333;font-weight: bold;">--</span> |
|
|
|
</div> |
|
|
|
<div class="flex-row-center-start" style="width: 240px;"> |
|
|
|
<span style="color: #666;">签约红娘:</span> |
|
|
|
<div class="flex-row-center-start" style="flex: 1;"> |
|
|
|
<span style="color: #666;">约见次数:</span> |
|
|
|
<span style="color: #333;font-weight: bold;">--</span> |
|
|
|
</div> |
|
|
|
<div class="flex-row-center-start" style="width: 240px;"> |
|
|
|
<span style="color: #666;">签约红娘:</span> |
|
|
|
<div class="flex-row-center-start" style="flex: 1;"> |
|
|
|
<span style="color: #666;">店邀时间:</span> |
|
|
|
<span style="color: #333;font-weight: bold;">--</span> |
|
|
|
</div> |
|
|
|
<div class="flex-row-center-start" style="width: 240px;"> |
|
|
|
<span style="color: #666;">签约红娘:</span> |
|
|
|
<span style="color: #333;font-weight: bold;">--dddd</span> |
|
|
|
<div class="flex-row-center-start" style="flex: 1;"> |
|
|
|
<span style="color: #666;">核验时间:</span> |
|
|
|
<span style="color: #333;font-weight: bold;">--</span> |
|
|
|
</div> |
|
|
|
<div class="flex-row-center-start" style="flex: 1;"> |
|
|
|
<span style="color: #666;">录入时间:</span> |
|
|
|
<span style="color: #333;font-weight: bold;">--</span> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
@ -86,14 +112,41 @@ |
|
|
|
<div style="flex: 1;background: white;padding: 0px 10px 10px 10px;"> |
|
|
|
<Tabs v-model:activeKey="activeKey" :animated="false"> |
|
|
|
<TabPane key="1" tab="客户资料"> |
|
|
|
<div class="flex-col" style="padding-right: 48px; flex:1;padding-top: 16px;"> |
|
|
|
<BasicForm @register="registerForm1"></BasicForm> |
|
|
|
<div class="flex-col" style="flex:1;padding-top: 16px;"> |
|
|
|
<Tabs tab-position="left" v-model:activeKey="activeKey3" :animated="false" @change="onInfoChange"> |
|
|
|
<TabPane key="1" tab="个人资料"> |
|
|
|
<BasicForm @register="registerForm1" style="padding-right: 48px;"></BasicForm> |
|
|
|
</TabPane> |
|
|
|
<TabPane key="2" tab="择偶要求"> |
|
|
|
<BasicForm @register="registerForm3" style="padding-right: 48px;"> |
|
|
|
<template #age="{ model }"> |
|
|
|
<div class="flex-row-center-start"> |
|
|
|
<InputNumber placeholder="请输入" :min="0" v-model:value="model['minAge']" /> |
|
|
|
<span style="margin: 0 5px">-</span> |
|
|
|
<InputNumber placeholder="请输入" :min="0" v-model:value="model['maxAge']" /> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
<template #height="{ model }"> |
|
|
|
<div class="flex-row-center-start"> |
|
|
|
<InputNumber placeholder="请输入" :min="0" v-model:value="model['minHeight']" /> |
|
|
|
<span style="margin: 0 5px">-</span> |
|
|
|
<InputNumber placeholder="请输入" :min="0" v-model:value="model['maxHeight']" /> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
<template #income="{ model }"> |
|
|
|
<div class="flex-row-center-start"> |
|
|
|
<InputNumber placeholder="请输入" :min="0" v-model:value="model['minimumIncome']" /> |
|
|
|
<span style="margin: 0 5px">-</span> |
|
|
|
<InputNumber placeholder="请输入" :min="0" v-model:value="model['maximumIncome']" /> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</BasicForm> |
|
|
|
</TabPane> |
|
|
|
</Tabs> |
|
|
|
</div> |
|
|
|
</TabPane> |
|
|
|
<TabPane key="2" tab="邀约进店"> |
|
|
|
<Spin :spinning="spinning"> |
|
|
|
<Result subTitle="暂无数据"></Result> |
|
|
|
</Spin> |
|
|
|
<Result subTitle="暂无数据"></Result> |
|
|
|
</TabPane> |
|
|
|
<TabPane key="3" tab="合同"> |
|
|
|
<Result subTitle="暂无数据"></Result> |
|
|
|
@ -102,40 +155,41 @@ |
|
|
|
<Result subTitle="暂无数据"></Result> |
|
|
|
</TabPane> |
|
|
|
<template v-if="activeKey == '1'" #tabBarExtraContent> |
|
|
|
<Button type="link"><template #icon><Icon icon="ant-design:edit-twotone" size="16px" style="margin-right: -4px;"/></template>编辑资料</Button> |
|
|
|
<Button type="link" @click="handleSubmit"><template #icon><Icon icon="ant-design:edit-twotone" size="16px" style="margin-right: -4px;"/></template>编辑资料</Button> |
|
|
|
</template> |
|
|
|
</Tabs> |
|
|
|
</div> |
|
|
|
<div style="width: 480px;background: white;margin-left: 16px;padding: 0px 10px 10px 10px;"> |
|
|
|
<Tabs v-model:activeKey="activeKey2" :animated="false"> |
|
|
|
<div style="width: 480px;background: white;margin-left: 16px;padding: 0px 10px 10px 10px;" v-ifan class="s">="details.allocationStatus !== 1"> |
|
|
|
<Tabs v-model:activeKey="activeKey2" :animated="false" @change="onReportChange"> |
|
|
|
<TabPane key="1" tab="跟进小计"> |
|
|
|
<div class="flex-col-center-center" style="flex:1;padding-top: 16px;"> |
|
|
|
<div class="flex-col-center-start" style="flex:1;padding-top: 16px;"> |
|
|
|
<BasicForm @register="registerForm"></BasicForm> |
|
|
|
<Button type="primary" style="width: 160px;margin-top: 48px;">保存</Button> |
|
|
|
<div class="flex-row-center-end" style="width: 100%;padding-right: 40px;"> |
|
|
|
<Button type="primary" style="width: 120px;margin-top: 36px;" @click="handleReport">保存</Button> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</TabPane> |
|
|
|
<TabPane key="2" tab="跟进记录" style="flex:1;padding: 16px 16px 0px 16px;"> |
|
|
|
<Timeline> |
|
|
|
<TimelineItem color="green">Create a services site 2015-09-01</TimelineItem> |
|
|
|
<TimelineItem color="red"> |
|
|
|
<p>Solve initial network problems 1</p> |
|
|
|
<p>Solve initial network problems 2</p> |
|
|
|
<p>Solve initial network problems 3 2015-09-01</p> |
|
|
|
</TimelineItem> |
|
|
|
<TimelineItem> |
|
|
|
<p>Technical testing 1</p> |
|
|
|
<p>Technical testing 3 2015-09-01</p> |
|
|
|
</TimelineItem> |
|
|
|
<TimelineItem color="gray"> |
|
|
|
<p>Technical testing 1</p> |
|
|
|
<p>Technical testing 2</p> |
|
|
|
<p>Technical testing 3 2015-09-01</p> |
|
|
|
</TimelineItem> |
|
|
|
<TimelineItem color="gray"> |
|
|
|
<p>Technical testing 1</p> |
|
|
|
<p>Technical testing 3 2015-09-01</p> |
|
|
|
</TimelineItem> |
|
|
|
</Timeline> |
|
|
|
<Spin :spinning="spinning"> |
|
|
|
<Timeline> |
|
|
|
<TimelineItem :color="followStageList.find((find) => find.value === item.datingClueFollowStage)?.color" v-for="(item, index) in reportList" :key="index"> |
|
|
|
<div class="flex-row-center-space"> |
|
|
|
<div class="flex-row-center-start"> |
|
|
|
<span style="color: #333;">{{item.operatorName || item.operator}}</span> |
|
|
|
<span style="color: #666;margin-left: 8px;">[{{followTypeList.find((find) => find.value === item.datingClueFollowType)?.label}}]</span> |
|
|
|
<span style="color: #999;margin-left: 8px;">{{item.nextFollowTime}}</span> |
|
|
|
</div> |
|
|
|
<span style="color: #333;">[{{followStageList.find((find) => find.value === item.datingClueFollowStage)?.label}}]</span> |
|
|
|
</div> |
|
|
|
<div class="flex-row-center-start" v-if="item.nextFollowTime"> |
|
|
|
<span style="color: #0960bd;">下次跟进时间:{{item.nextFollowTime}}</span> |
|
|
|
</div> |
|
|
|
<div class="flex-row-center-start" v-if="item.remark"> |
|
|
|
<span style="color: #333;">备注:{{item.remark || "--"}}</span> |
|
|
|
</div> |
|
|
|
</TimelineItem> |
|
|
|
</Timeline> |
|
|
|
</Spin> |
|
|
|
</TabPane> |
|
|
|
</Tabs> |
|
|
|
</div> |
|
|
|
@ -145,15 +199,18 @@ |
|
|
|
|
|
|
|
<script setup lang="ts"> |
|
|
|
import { useRoute } from 'vue-router' |
|
|
|
import { onMounted, ref } from 'vue' |
|
|
|
import { Tabs, Card, Table, Button, TabPane, Tag, Timeline, TimelineItem, Result, Spin } from 'ant-design-vue' |
|
|
|
import { onMounted, ref, nextTick } from 'vue' |
|
|
|
import { Tabs, Input, Popconfirm, Button, TabPane, Tag, Timeline, TimelineItem, Result, Spin, InputNumber } from 'ant-design-vue' |
|
|
|
import { Icon } from '/@/components/Icon' |
|
|
|
import { useMessage } from '/@/hooks/web/useMessage' |
|
|
|
import { CropperAvatar } from '/@/components/Cropper'; |
|
|
|
import BasicForm from '/@/components/Form/src/BasicForm.vue' |
|
|
|
import { useForm } from '/@/components/Form' |
|
|
|
import { formatToDateTime } from '/@/utils/dateUtil' |
|
|
|
import { basicSchema, modalFormSchema } from './data' |
|
|
|
import { getClueInfo } from '/@/api/clue' |
|
|
|
import { genderList, channelList, clueStatusList } from '/@/enums/customerEnum' |
|
|
|
import { demandMarriageMoreData, demandMarriageSchema } from '/@/views/clue/cluePool/data' |
|
|
|
import { getClueInfo, editClueRecord, recordClueing, getClueRecord } from '/@/api/clue' |
|
|
|
import { genderList, channelList, clueStatusList, followTypeList, followStageList } from '/@/enums/customerEnum' |
|
|
|
|
|
|
|
const details = ref<any>() |
|
|
|
onMounted(() => { |
|
|
|
@ -161,42 +218,126 @@ |
|
|
|
}) |
|
|
|
|
|
|
|
async function initFetch() { |
|
|
|
demandMarriageMoreData.value = {} |
|
|
|
const { query } = useRoute() |
|
|
|
const { id } = query || {} |
|
|
|
if (!id) return |
|
|
|
details.value = await getClueInfo(`${id}`) |
|
|
|
|
|
|
|
const { domicilePlaceProvinceCode, domicilePlaceCityCode } = details.value || {} |
|
|
|
const domicilePlace = domicilePlaceCityCode && domicilePlaceProvinceCode ? [domicilePlaceProvinceCode, domicilePlaceCityCode] : [] |
|
|
|
const { provinceCode, cityCode, districtCode } = details.value || {} |
|
|
|
const address = provinceCode && cityCode && districtCode ? [provinceCode, cityCode, districtCode] : [] |
|
|
|
avatar.value = details.value.profilePhoto |
|
|
|
await nextTick() |
|
|
|
await resetFields1() |
|
|
|
await setFieldsValue1({ ...details.value, domicilePlace, address }) |
|
|
|
activeKey.value = '1' |
|
|
|
} |
|
|
|
|
|
|
|
async function onInfoChange(){ |
|
|
|
if(activeKey3.value == '2' && details.value.datingClueDemand){ |
|
|
|
await nextTick() |
|
|
|
const { domicilePlaceProvinceCode, domicilePlaceCityCode } = details.value.datingClueDemand || {} |
|
|
|
const domicilePlace = domicilePlaceCityCode && domicilePlaceProvinceCode ? [domicilePlaceProvinceCode, domicilePlaceCityCode] : [] |
|
|
|
const { provinceCode, cityCode, districtCode } = details.value.datingClueDemand || {} |
|
|
|
const address = provinceCode && cityCode && districtCode ? [provinceCode, cityCode, districtCode] : [] |
|
|
|
await setFieldsValue3({ ...details.value.datingClueDemand, domicilePlace, address }) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
const activeKey = ref<string>('1') |
|
|
|
const activeKey2 = ref<string>('1') |
|
|
|
const activeKey3 = ref<string>('1') |
|
|
|
const avatar = ref<string>('') |
|
|
|
|
|
|
|
const nickName = ref<string>('') |
|
|
|
async function handleNickname(){ |
|
|
|
if(!nickName.value){ |
|
|
|
createMessage.warning('请输入昵称') |
|
|
|
return |
|
|
|
} |
|
|
|
await editClueRecord({id: details.value.id, nickName: nickName.value}) |
|
|
|
createMessage.success('修改昵称成功') |
|
|
|
details.value.nickName = nickName.value |
|
|
|
nickName.value = '' |
|
|
|
} |
|
|
|
// 基础信息表单配置 |
|
|
|
const [registerForm1, { validate: validate1, setFieldsValue: setFieldsValue1 }] = useForm({ |
|
|
|
const [registerForm1, { validate: validate1, resetFields: resetFields1, getFieldsValue: getFieldsValue1, setFieldsValue: setFieldsValue1 }] = useForm({ |
|
|
|
labelWidth: 120, |
|
|
|
schemas: basicSchema, |
|
|
|
baseColProps: { span: 22 }, |
|
|
|
showActionButtonGroup: false, |
|
|
|
}) |
|
|
|
|
|
|
|
//这里是上传头像成功后的回调 |
|
|
|
function uploadAvatarAfter(value) { |
|
|
|
//修改表单的值 |
|
|
|
// setFieldsValue1({ |
|
|
|
// avatar: value, |
|
|
|
// }); |
|
|
|
async function uploadAvatarAfter(value) { |
|
|
|
await editClueRecord({id: details.value.id, profilePhoto: value}) |
|
|
|
details.value.profilePhoto = value |
|
|
|
} |
|
|
|
// 择偶标准表单配置 |
|
|
|
const [registerForm3, { getFieldsValue: getFieldsValue3, setFieldsValue: setFieldsValue3 }] = |
|
|
|
useForm({ |
|
|
|
labelWidth: 120, |
|
|
|
schemas: demandMarriageSchema, |
|
|
|
baseColProps: { span: 22 }, |
|
|
|
showActionButtonGroup: false, |
|
|
|
}) |
|
|
|
async function handleSubmit() { |
|
|
|
await validate1() |
|
|
|
const baseInfo: any = getFieldsValue1() |
|
|
|
const address1 = baseInfo.address |
|
|
|
baseInfo.provinceCode = address1?.[0] |
|
|
|
baseInfo.cityCode = address1?.[1] |
|
|
|
baseInfo.districtCode = address1?.[2] |
|
|
|
const domicilePlace1 = baseInfo.domicilePlace |
|
|
|
baseInfo.domicilePlaceProvinceCode = domicilePlace1?.[0] |
|
|
|
baseInfo.domicilePlaceCityCode = domicilePlace1?.[1] |
|
|
|
|
|
|
|
const [registerForm, { setFieldsValue, resetFields, validate, getFieldsValue, updateSchema }] = |
|
|
|
const demandInfo: any = getFieldsValue3() |
|
|
|
const { domicilePlace, address } = demandInfo || {} |
|
|
|
baseInfo.datingClueDemand = { |
|
|
|
...demandInfo, |
|
|
|
...demandMarriageMoreData.value, |
|
|
|
cityCode: address?.[1], |
|
|
|
provinceCode: address?.[0], |
|
|
|
districtCode: address?.[2], |
|
|
|
domicilePlaceCityCode: domicilePlace?.[1], |
|
|
|
domicilePlaceProvinceCode: domicilePlace?.[0] |
|
|
|
} |
|
|
|
await editClueRecord({id: details.value.id, ...baseInfo}) |
|
|
|
createMessage.success('保存成功') |
|
|
|
} |
|
|
|
const { createMessage } = useMessage() |
|
|
|
const [registerForm, { resetFields, validate, getFieldsValue }] = |
|
|
|
useForm({ |
|
|
|
labelWidth: 90, |
|
|
|
labelWidth: 120, |
|
|
|
schemas: modalFormSchema, |
|
|
|
baseColProps: { span: 22 }, |
|
|
|
showActionButtonGroup: false, |
|
|
|
}) |
|
|
|
|
|
|
|
async function handleReport() { |
|
|
|
await validate() |
|
|
|
const values: any = getFieldsValue() |
|
|
|
const { nextFollowTime } = values |
|
|
|
values.nextFollowTime = formatToDateTime(nextFollowTime) |
|
|
|
values.datingClueId = details.value.id |
|
|
|
await recordClueing(values) |
|
|
|
createMessage.success('提交成功') |
|
|
|
resetFields() |
|
|
|
} |
|
|
|
const spinning = ref<boolean>(false) |
|
|
|
const reportList = ref<any[]>([]); |
|
|
|
async function onReportChange(){ |
|
|
|
if(activeKey2.value == '2'){ |
|
|
|
spinning.value = true |
|
|
|
reportList.value = await getClueRecord(details.value.id) |
|
|
|
spinning.value = false |
|
|
|
} |
|
|
|
} |
|
|
|
</script> |
|
|
|
<style scoped lang="less"> |
|
|
|
|
|
|
|
::v-deep .ant-input-number { |
|
|
|
min-width: 90px; |
|
|
|
width: 100% !important; |
|
|
|
max-width: 100%; |
|
|
|
} |
|
|
|
</style> |