Browse Source

no message

master
xpz2018 9 months ago
parent
commit
0fdccb9c99
9 changed files with 142 additions and 115 deletions
  1. 17
      src/enums/customerEnum.ts
  2. 13
      src/views/clue/clueList/index.vue
  3. 75
      src/views/clue/components/data.ts
  4. 74
      src/views/clue/customer/data.ts
  5. 13
      src/views/clue/followlist/index.vue
  6. 2
      src/views/invite/components/data.ts
  7. 23
      src/views/invite/index/index.vue
  8. 22
      src/views/invite/myList/index.vue
  9. 18
      src/views/invite/seasList/index.vue

17
src/enums/customerEnum.ts

@ -80,4 +80,21 @@ export const incomeList = [
{ label: '20001~25000', value: 6 },
{ label: '25001~30000', value: 7 },
{ label: '30000以上', value: 8 },
]
export const paymentList = [
{ label: '不考虑', value: 1 },
{ label: '可以考虑', value: 2 },
{ label: '愿意', value: 3 },
{ label: '可以试试', value: 4 },
{ label: '有明确预算', value: 5 },
{ label: '其他地方交过', value: 6 },
]
export const marriageList = [
{ label: '1年内', value: 1 },
{ label: '2年内', value: 2 },
{ label: '3年内', value: 3 },
{ label: '先恋爱', value: 4 },
]

13
src/views/clue/clueList/index.vue

@ -22,14 +22,9 @@
<Timeline :list="record.datingClueFollowRecordList"/>
</template>
<template #action="{ record }">
<TableAction
:actions="[
{
label: '详情',
onClick: toDetail.bind(null, record),
},
]"
/>
<div class="flex-col-center-start">
<Button style="width: 100px;" type="primary" @click.stop="toDetail(record)">详情</Button>
</div>
</template>
</BasicTable>
</div>
@ -46,7 +41,7 @@
<script setup lang="ts">
import moment from 'moment/moment'
import { computed, ref, reactive } from 'vue'
import { Avatar, Card, Image, InputNumber, Result } from 'ant-design-vue'
import { Avatar, Card, Button, InputNumber, Result } from 'ant-design-vue'
import { useRouter } from 'vue-router'
import { tableColumns, tableFormSchema } from './data'
import { BasicTable, useTable, TableAction } from '/@/components/Table'

75
src/views/clue/components/data.ts

@ -1,7 +1,7 @@
import { FormSchema } from '/@/components/Table'
import { ref } from 'vue'
import dayjs, { Dayjs } from 'dayjs'
import { genderList, channelList, clueStatusList, followStatusList, validStatusList } from '/@/enums/customerEnum'
import { genderList, channelList, clueStatusList, followStatusList, paymentList, marriageList } from '/@/enums/customerEnum'
import { useAddressData } from '/@/hooks/common'
import {
getIncomeList,
@ -190,21 +190,22 @@ export const modalFormSchema: FormSchema[] = [
},
},
{ field: 'childrenNum', label: '孩子数量', component: 'InputNumber', colProps: { span: 8 }, },
{
field: 'nationCode',
label: '民族',
colProps: { span: 8 },
component: 'ApiSelect',
componentProps: {
labelField: 'cn',
valueField: 'id',
api: getNationList,
getPopupContainer: () => document.body,
onChange: (_: any, v: any) => {
basicInfoData.value.nation = v?.label
},
},
},
// {
// field: 'nationCode',
// label: '民族',
// colProps: { span: 8 },
// component: 'ApiSelect',
// componentProps: {
// labelField: 'cn',
// valueField: 'id',
// api: getNationList,
// getPopupContainer: () => document.body,
// onChange: (_: any, v: any) => {
// basicInfoData.value.nation = v?.label
// },
// },
// },
// {
// field: 'bodilyFormCode',
// label: '体型',
@ -264,18 +265,18 @@ export const modalFormSchema: FormSchema[] = [
},
},
},
{
field: 'onlyChild',
label: '是否独生子女',
colProps: { span: 8 },
component: 'Select',
componentProps: {
options: [
{ label: '是', value: 1 },
{ label: '否', value: 0 },
],
},
},
// {
// field: 'onlyChild',
// label: '是否独生子女',
// colProps: { span: 8 },
// component: 'Select',
// componentProps: {
// options: [
// { label: '是', value: 1 },
// { label: '否', value: 0 },
// ],
// },
// },
{
field: 'propertyPermitsCode',
label: '购房情况',
@ -318,6 +319,24 @@ export const modalFormSchema: FormSchema[] = [
},
},
},
{
field: 'paymentIntention',
label: '付费意愿',
colProps: { span: 8 },
component: 'Select',
componentProps: {
options: paymentList
},
},
{
field: 'marriageIntention',
label: '结婚意愿',
colProps: { span: 8 },
component: 'Select',
componentProps: {
options: marriageList
},
},
{
field: 'profilePhoto',
component: 'Upload',

74
src/views/clue/customer/data.ts

@ -2,7 +2,7 @@ import { useAddressData } from '/@/hooks/common'
import { ref } from 'vue'
import dayjs, { Dayjs } from 'dayjs'
import { FormSchema } from '/@/components/Form'
import { genderList, followTypeList, followStageList } from '/@/enums/customerEnum'
import { genderList, followTypeList, followStageList, paymentList, marriageList } from '/@/enums/customerEnum'
import {
getIncomeList,
getNationList,
@ -177,21 +177,21 @@ export const basicSchema: FormSchema[] = [
// },
// },
// },
{
field: 'nationCode',
label: '民族',
component: 'ApiSelect',
colProps: { span: 8 },
componentProps: {
labelField: 'cn',
valueField: 'id',
api: getNationList,
getPopupContainer: () => document.body,
onChange: (_: any, v: any) => {
basicInfoMoreData.value.nation = v?.label
},
},
},
// {
// field: 'nationCode',
// label: '民族',
// component: 'ApiSelect',
// colProps: { span: 8 },
// componentProps: {
// labelField: 'cn',
// valueField: 'id',
// api: getNationList,
// getPopupContainer: () => document.body,
// onChange: (_: any, v: any) => {
// basicInfoMoreData.value.nation = v?.label
// },
// },
// },
// {
// field: 'bodilyFormCode',
// label: '体型',
@ -251,18 +251,18 @@ export const basicSchema: FormSchema[] = [
},
},
},
{
field: 'onlyChild',
label: '是否独生子女',
component: 'Select',
colProps: { span: 8 },
componentProps: {
options: [
{ label: '是', value: 1 },
{ label: '否', value: 0 },
],
},
},
// {
// field: 'onlyChild',
// label: '是否独生子女',
// component: 'Select',
// colProps: { span: 8 },
// componentProps: {
// options: [
// { label: '是', value: 1 },
// { label: '否', value: 0 },
// ],
// },
// },
{
field: 'housePurchase',
label: '购房情况',
@ -291,6 +291,24 @@ export const basicSchema: FormSchema[] = [
},
},
},
{
field: 'paymentIntention',
label: '付费意愿',
colProps: { span: 8 },
component: 'Select',
componentProps: {
options: paymentList
},
},
{
field: 'marriageIntention',
label: '结婚意愿',
colProps: { span: 8 },
component: 'Select',
componentProps: {
options: marriageList
},
},
{
field: 'remark',
label: '个人描述',

13
src/views/clue/followlist/index.vue

@ -22,14 +22,9 @@
<Timeline :list="record.datingClueFollowRecordList"/>
</template>
<template #action="{ record }">
<TableAction
:actions="[
{
label: '详情',
onClick: toDetail.bind(null, record),
},
]"
/>
<div class="flex-col-center-start">
<Button style="width: 100px;" type="primary" @click.stop="toDetail(record)">详情</Button>
</div>
</template>
</BasicTable>
</div>
@ -46,7 +41,7 @@
<script setup lang="ts">
import moment from 'moment/moment'
import { computed, ref, reactive } from 'vue'
import { Avatar, Card, Image, InputNumber, Result } from 'ant-design-vue'
import { Avatar, Card, Button, InputNumber, Result } from 'ant-design-vue'
import { useRouter } from 'vue-router'
import { tableColumns, tableFormSchema } from './data'
import { BasicTable, useTable, TableAction } from '/@/components/Table'

2
src/views/invite/components/data.ts

@ -31,7 +31,7 @@ export const modalFormSchema: FormSchema[] = [
{
field: 'remark',
label: '备注',
required: false,
required: true,
component: 'InputTextArea',
componentProps: {
autosize: {

23
src/views/invite/index/index.vue

@ -32,9 +32,8 @@
<Profile :info="record" />
</template>
<template #action="{ record }">
<div class="flex-row-center-start">
<Button type="link" @click="toDetail(record)">详情</Button>
<span style="color: #999;">|</span>
<div class="flex-col-center-start">
<Button type="primary" style="width: 100px;" @click="toDetail(record)">详情</Button>
<Popconfirm placement="topRight" :icon="record.allocationStatus == 1 ? '分配' : '重新分配'" @confirm="allocateList(record.id)">
<template #title>
<div class="flex-row-center-start" style="padding: 8px 8px 8px 0px;border-bottom: 1px solid #ddd;min-width: 160px;" v-for="item in memberList" :key="item.userId">
@ -44,7 +43,7 @@
</Checkbox>
</div>
</template>
<Button type="link" danger >{{record.allocationStatus == 1 ? '分配' : '重新分配'}}</Button>
<Button style="width: 100px;margin-top: 8px;" danger>{{record.allocationStatus == 1 ? '分配' : '重新分配'}}</Button>
</Popconfirm>
</div>
</template>
@ -104,14 +103,14 @@
showTableSetting: false,
api: getInvitationPage,
rowKey: 'id',
rowSelection: {
type: 'checkbox',
onChange,
// getCheckboxProps(record: any) {
// // Demo: id0
// return { disabled: record.allocationStatus !== 1 };
// },
},
// rowSelection: {
// type: 'checkbox',
// onChange,
// // getCheckboxProps(record: any) {
// // // Demo: id0
// // return { disabled: record.allocationStatus !== 1 };
// // },
// },
formConfig: {
labelWidth: 120,
schemas: tableFormSchema,

22
src/views/invite/myList/index.vue

@ -8,13 +8,13 @@
<InputNumber placeholder="请输入" style="width: 46%" v-model:value="ageModel.maxAge" />
</div>
</template>
<template #toolbar>
<!-- <template #toolbar>
<div style="width: 100%; padding: 2px" class="flex-row-center-space">
<RadioGroup button-style="solid" v-model:value="radioVal" @change="handleRadioChange">
<RadioButton v-for="item in followStatusList" :key="item.value" :value="item.value">{{item.label}}</RadioButton>
</RadioGroup>
</div>
</template>
</template> -->
<template #userinfo="{ text, record }">
<Profile :info="record" />
</template>
@ -22,18 +22,10 @@
<Timeline :list="record.datingClueFollowRecordList"/>
</template>
<template #action="{ record }">
<TableAction
:actions="[
{
label: '详情',
onClick: toDetail.bind(null, record),
},
{
label: '跟进',
onClick: handleReport.bind(null, record),
},
]"
/>
<div class="flex-col-center-start">
<Button type="primary" style="width: 100px;" @click="toDetail(record)">详情</Button>
<Button style="width: 100px;margin-top: 8px;" danger @click="handleReport(record)">跟进</Button>
</div>
</template>
</BasicTable>
<FollowModal @register="registerModal" @success="handleSuccess" />
@ -51,7 +43,7 @@
<script setup lang="ts">
import moment from 'moment/moment'
import { computed, ref, reactive } from 'vue'
import { Avatar, Card, Image, InputNumber, Result } from 'ant-design-vue'
import { Avatar, Card, Button, InputNumber, Result } from 'ant-design-vue'
import { useRouter } from 'vue-router'
import { tableColumns, tableFormSchema } from './data'
import { BasicTable, useTable, TableAction } from '/@/components/Table'

18
src/views/invite/seasList/index.vue

@ -22,18 +22,10 @@
<Timeline :list="record.datingClueFollowRecordList"/>
</template>
<template #action="{ record }">
<TableAction
:actions="[
{
label: '详情',
onClick: toDetail.bind(null, record),
},
{
label: '领取',
onClick: handleReceive.bind(null, record.id),
},
]"
/>
<div class="flex-col-center-start">
<Button type="primary" style="width: 100px;" @click="toDetail(record)">详情</Button>
<Button style="width: 100px;margin-top: 8px;" danger @click="handleReceive(record.id)">领取</Button>
</div>
</template>
</BasicTable>
</div>
@ -50,7 +42,7 @@
<script setup lang="ts">
import moment from 'moment/moment'
import { computed, ref, reactive } from 'vue'
import { Avatar, Card, Image, InputNumber, Result } from 'ant-design-vue'
import { Avatar, Card, Button, InputNumber, Result } from 'ant-design-vue'
import { useRouter } from 'vue-router'
import { tableColumns, tableFormSchema } from './data'
import { useMessage } from '/@/hooks/web/useMessage'

Loading…
Cancel
Save