Browse Source

no message

master
xpz2018 8 months ago
parent
commit
92b4cb0a79
7 changed files with 71 additions and 27 deletions
  1. 4
      src/components/OssUpload/src/index.vue
  2. 9
      src/views/clue/clueList/index.vue
  3. 3
      src/views/clue/cluePool/index.vue
  4. 29
      src/views/clue/components/modal.vue
  5. 18
      src/views/clue/customer/data.ts
  6. 25
      src/views/clue/customer/index.vue
  7. 10
      src/views/invite/components/data.ts

4
src/components/OssUpload/src/index.vue

@ -37,8 +37,8 @@
@preview="handlePreview"
>
<div v-if="fileList.length < num">
<Icon size="25" icon="ic:baseline-add" />
<div>Upload</div>
<Icon size="32" icon="ic:baseline-add" />
<div>选择图片</div>
</div>
</Upload>
</div>

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

@ -3,9 +3,9 @@
<BasicTable @register="registerTable">
<template #form-age>
<div class="flex-row">
<InputNumber placeholder="请输入" style="width: 46%" v-model:value="ageModel.minAge" />
<div style="width: 8%" class="flex-row-center-center">-</div>
<InputNumber placeholder="请输入" style="width: 46%" v-model:value="ageModel.maxAge" />
<InputNumber placeholder="请输入" style="width: 46%;" v-model:value="ageModel.minAge" />
<div style="width: 8%;" class="flex-row-center-center">-</div>
<InputNumber placeholder="请输入" style="width: 46%;" v-model:value="ageModel.maxAge" />
</div>
</template>
<!-- <template #toolbar>
@ -44,11 +44,10 @@
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'
import { BasicTable, useTable } from '/@/components/Table'
import { getClueList } from '/@/api/clue'
import Timeline from '../../components/Timeline.vue'
import Profile from '../../components/Profile.vue'
import { educationList, maritalList, genderList, followStageList } from '/@/enums/customerEnum'
const [registerTable, { reload, setPagination }] = useTable({
bordered: false,

3
src/views/clue/cluePool/index.vue

@ -83,12 +83,11 @@
import { useMessage } from '/@/hooks/web/useMessage'
import { tableColumns, tableFormSchema } from './data'
import { useModal } from '/@/components/Modal'
import { BasicTable, useTable, TableAction } from '/@/components/Table'
import { BasicTable, useTable } from '/@/components/Table'
import ClueModal from '../components/modal.vue'
import Profile from '../../components/Profile.vue'
import { getCluePage, allocateCluing, deleteCluingList } from '/@/api/clue'
import { pageOrganizationMember } from '/@/api/staff/staff'
import { educationList, maritalList, incomeList } from '/@/enums/customerEnum'
const radioVal = ref<any>('')
const verifier = ref<any>('')

29
src/views/clue/components/modal.vue

@ -63,6 +63,11 @@
</template>
</BasicForm>
</TabPane>
<TabPane key="3" tab="线索影像">
<div style="padding: 16px;">
<OssUpload v-model="uploadList" :multiple="true" :if-custom-render="true" />
</div>
</TabPane>
</Tabs>
</div>
@ -87,6 +92,7 @@
import { Tabs, TabPane, Button, Result, InputNumber, DatePicker } from 'ant-design-vue'
import Icon from '/@/components/Icon'
import { downloadByUrl } from '/@/utils/file/download'
import { OssUpload } from '/@/components/OssUpload'
import { modalFormSchema, basicInfoData, demandMarriageSchema, demandMarriageMoreData } from './data'
import { ImpExcel, ExcelData } from '/@/components/Excel';
import { BasicTable, BasicColumn } from '/@/components/Table'
@ -98,7 +104,7 @@
import { formatToDate } from '/@/utils/dateUtil'
const activeKey2 = ref<string>('1')
const uploadList = ref<any>([])
const [registerForm, { setFieldsValue, resetFields, validate, getFieldsValue }] =
useForm({
labelWidth: 108,
@ -126,17 +132,23 @@
const address = provinceCode && cityCode && districtCode ? [provinceCode, cityCode, districtCode] : []
await nextTick()
await setFieldsValue({ ...details.value, domicilePlace, address })
if(details.value.datingClueImageList && details.value.datingClueImageList.length){
uploadList.value = details.value.datingClueImageList.map((item: string) => {
return {url: item}
})
}
activeKey2.value = '1'
} else {
title = '新增线索'
details.value = {}
uploadList.value = []
demandMarriageMoreData.value = {}
basicInfoData.value = {}
activeKey2.value = '1'
await resetFields()
// await resetFields3()
}
setModalProps({ minHeight: 50, confirmLoading: false, title })
setModalProps({ minHeight: 480, confirmLoading: false, title })
})
//
@ -218,7 +230,7 @@
const datingClueDemand = { ...demandInfo, ...demandMarriageMoreData.value }
const param = {
var param = {
...values,
// channelType: 1,
datingClueDemand,
@ -233,6 +245,15 @@
domicilePlaceProvinceName: basicInfoData.value.domicilePlaceProvinceName,
domicilePlaceProvinceCode: domicilePlace?.[0]
}
const datingClueImageList = uploadList.value.map((item: any) => {
if(item.response && item.response.url){
return item.response.url
}
return item.url
})
if(datingClueImageList && datingClueImageList.length){
param.datingClueImageList = datingClueImageList
}
if(details.value && details.value.id){
param.id = details.value.id
await editClueRecord(param)
@ -251,7 +272,7 @@
function loadDataSuccess(excelDataList: ExcelData[]) {
tableListRef.value = [];
console.log(excelDataList);
// console.log(excelDataList);
for (const excelData of excelDataList) {
const { header, results, meta: { sheetName }, } = excelData;
const columns: BasicColumn[] = [];

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

@ -327,15 +327,15 @@ export const basicSchema: FormSchema[] = [
]
export const modalFormSchema: FormSchema[] = [
{
field: 'datingClueFollowType',
label: '线索跟进方式',
component: 'Select',
required: true,
componentProps: {
options: followTypeList,
},
},
// {
// field: 'datingClueFollowType',
// label: '线索跟进方式',
// component: 'Select',
// required: true,
// componentProps: {
// options: followTypeList,
// },
// },
{
field: 'datingClueFollowStage',
label: '线索跟进阶段',

25
src/views/clue/customer/index.vue

@ -145,6 +145,11 @@
</template>
</BasicForm>
</TabPane>
<TabPane key="3" tab="线索影像">
<div style="padding: 16px;">
<OssUpload v-model="uploadList" :multiple="true" :if-custom-render="true" />
</div>
</TabPane>
</Tabs>
</div>
</TabPane>
@ -247,6 +252,7 @@
import { Icon } from '/@/components/Icon'
import { useMessage } from '/@/hooks/web/useMessage'
import { CropperAvatar } from '/@/components/Cropper';
import { OssUpload } from '/@/components/OssUpload'
import BasicForm from '/@/components/Form/src/BasicForm.vue'
import { BasicTable, useTable, TableAction } from '/@/components/Table'
import { useForm } from '/@/components/Form'
@ -259,6 +265,7 @@
import { genderList, channelList, clueStatusList, followTypeList, followStageList } from '/@/enums/customerEnum'
const details = ref<any>()
const uploadList = ref<any>([])
onMounted(() => {
initFetch()
})
@ -278,6 +285,12 @@
await nextTick()
await resetFields1()
await setFieldsValue1({ ...details.value, domicilePlace, address })
if(details.value.datingClueImageList && details.value.datingClueImageList.length){
uploadList.value = details.value.datingClueImageList.map((item: string) => {
return {url: item}
})
}
activeKey.value = '1'
}
@ -314,7 +327,7 @@
createMessage.warning('请输入昵称')
return
}
await editClueRecord({id: details.value.id, nickName: nickName.value})
await editClueRecord({id: details.value.id, nickName: nickName.value, phone: details.value.phone, weChatId: details.value.weChatId})
createMessage.success('修改昵称成功')
details.value.nickName = nickName.value
nickName.value = ''
@ -341,7 +354,7 @@
})
//
async function uploadAvatarAfter(value) {
await editClueRecord({id: details.value.id, profilePhoto: value})
await editClueRecord({id: details.value.id, profilePhoto: value, phone: details.value.phone, weChatId: details.value.weChatId})
details.value.profilePhoto = value
}
//
@ -376,7 +389,13 @@
domicilePlaceCityCode: domicilePlace?.[1],
domicilePlaceProvinceCode: domicilePlace?.[0]
}
await editClueRecord({id: details.value.id, ...baseInfo})
const datingClueImageList = uploadList.value.map((item: any) => {
if(item.response && item.response.url){
return item.response.url
}
return item.url
})
await editClueRecord({id: details.value.id, ...baseInfo, datingClueImageList})
createMessage.success('保存成功')
}
const { createMessage } = useMessage()

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

@ -1,5 +1,5 @@
import { FormSchema } from '/@/components/Form'
import { followTypeList, followStageList } from '/@/enums/customerEnum'
import { followTypeList } from '/@/enums/customerEnum'
export const modalFormSchema: FormSchema[] = [
// {
@ -17,7 +17,13 @@ export const modalFormSchema: FormSchema[] = [
required: true,
component: 'Select',
componentProps: {
options: followStageList,
options: [
{ label: '联系不上', value: -2, color: 'green' },
{ label: '放弃线索', value: -1, color: 'red' },
{ label: '未接通,待跟进', value: 1, color: 'red' },
{ label: '已接通,未详细沟通', value: 2, color: 'green' },
{ label: '已接通,已详细沟通', value: 3, color: 'gray' },
],
},
},
// {

Loading…
Cancel
Save