【招生老师】 修复# 转化完成:提交是否转化成功字段时值为null
							parent
							
								
									504d381eff
								
							
						
					
					
						commit
						4bb1478021
					
				| 
						 | 
					@ -32,6 +32,7 @@ export function apiEditRemark(params: any) {
 | 
				
			||||||
export function apiEditClue(params: any) {
 | 
					export function apiEditClue(params: any) {
 | 
				
			||||||
    return request.post({ url: '/clue/edit', data: params })
 | 
					    return request.post({ url: '/clue/edit', data: params })
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					// 电销线索列表
 | 
				
			||||||
export function apiTeleClueList(params: any) {
 | 
					export function apiTeleClueList(params: any) {
 | 
				
			||||||
    return request.get({ url: '/clue/telemarketingList', data: params })
 | 
					    return request.get({ url: '/clue/telemarketingList', data: params })
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,7 +1,7 @@
 | 
				
			||||||
<template>
 | 
					<template>
 | 
				
			||||||
    <view class="bg-[#FAFAFE]">
 | 
					    <view class="bg-[#FAFAFE]">
 | 
				
			||||||
        <view class="bg-white px-[32rpx]">
 | 
					        <view class="bg-white px-[32rpx]">
 | 
				
			||||||
            <TForm ref="tForm" :model="form" :rules="rules" errorType="toast">
 | 
					            <TForm ref="tForm" :model="form" errorType="toast">
 | 
				
			||||||
                <TFormItem prop="recruitTeacherName">
 | 
					                <TFormItem prop="recruitTeacherName">
 | 
				
			||||||
                    <TInputField
 | 
					                    <TInputField
 | 
				
			||||||
                        v-model="form.recruitTeacherName"
 | 
					                        v-model="form.recruitTeacherName"
 | 
				
			||||||
| 
						 | 
					@ -114,9 +114,6 @@ const form = ref({
 | 
				
			||||||
    isConversion: 0,
 | 
					    isConversion: 0,
 | 
				
			||||||
    remark: ''
 | 
					    remark: ''
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
const rules = {
 | 
					 | 
				
			||||||
    isConversion: [{ required: true, message: '请选择是否转化成功' }]
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
const parseStatusText = computed(
 | 
					const parseStatusText = computed(
 | 
				
			||||||
    () => optionsMap.stateOptions.find(item => item.value == form.value.state)?.label
 | 
					    () => optionsMap.stateOptions.find(item => item.value == form.value.state)?.label
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
| 
						 | 
					@ -153,7 +150,11 @@ const handleSubmit = () => {
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
const setFormData = () => {
 | 
					const setFormData = () => {
 | 
				
			||||||
    for (const key in clueDetailInfo.value) {
 | 
					    for (const key in clueDetailInfo.value) {
 | 
				
			||||||
        if (Object.prototype.hasOwnProperty.call(form.value, key)) {
 | 
					        if (
 | 
				
			||||||
 | 
					            Object.prototype.hasOwnProperty.call(form.value, key) &&
 | 
				
			||||||
 | 
					            clueDetailInfo.value[key] != null &&
 | 
				
			||||||
 | 
					            clueDetailInfo.value[key] != undefined
 | 
				
			||||||
 | 
					        ) {
 | 
				
			||||||
            form.value[key] = clueDetailInfo.value[key]
 | 
					            form.value[key] = clueDetailInfo.value[key]
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -74,7 +74,7 @@ const handleConfirm = () => {
 | 
				
			||||||
                    await apiEditClue(form.value)
 | 
					                    await apiEditClue(form.value)
 | 
				
			||||||
                    toast('修改成功')
 | 
					                    toast('修改成功')
 | 
				
			||||||
                    uni.navigateBack()
 | 
					                    uni.navigateBack()
 | 
				
			||||||
                    uni.$emit('refreshPage')
 | 
					                    uni.$emit('refreshPageList')
 | 
				
			||||||
                } catch (error) {}
 | 
					                } catch (error) {}
 | 
				
			||||||
                loading.value = false
 | 
					                loading.value = false
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -59,17 +59,6 @@ const labelStyle = computed(() => {
 | 
				
			||||||
const handleSwitchChange = (value: number) => {
 | 
					const handleSwitchChange = (value: number) => {
 | 
				
			||||||
    emit('update:modelValue', value)
 | 
					    emit('update:modelValue', value)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
watch(
 | 
					 | 
				
			||||||
    () => props.modelValue,
 | 
					 | 
				
			||||||
    val => {
 | 
					 | 
				
			||||||
        innerValue.value = val
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        deep: true,
 | 
					 | 
				
			||||||
        immediate: true
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
)
 | 
					 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<style lang="scss" scoped>
 | 
					<style lang="scss" scoped>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,7 +6,7 @@
 | 
				
			||||||
                    <text>{{ item.studentName }}</text>
 | 
					                    <text>{{ item.studentName }}</text>
 | 
				
			||||||
                    <view class="flex ml-[48rpx] gap-[4rpx] items-center">
 | 
					                    <view class="flex ml-[48rpx] gap-[4rpx] items-center">
 | 
				
			||||||
                        <text class="text-primary">{{ item.phone }}</text>
 | 
					                        <text class="text-primary">{{ item.phone }}</text>
 | 
				
			||||||
                        <u-copy content="uview-plus is great !">
 | 
					                        <u-copy :content="item.phone">
 | 
				
			||||||
                            <TIcon name="icon-copy" color="#0E66FB" />
 | 
					                            <TIcon name="icon-copy" color="#0E66FB" />
 | 
				
			||||||
                        </u-copy>
 | 
					                        </u-copy>
 | 
				
			||||||
                    </view>
 | 
					                    </view>
 | 
				
			||||||
| 
						 | 
					@ -24,11 +24,11 @@
 | 
				
			||||||
                </view>
 | 
					                </view>
 | 
				
			||||||
                <view class="flex gap-[20rpx]">
 | 
					                <view class="flex gap-[20rpx]">
 | 
				
			||||||
                    <text class="text-muted w-[128rpx]">基本情况</text>
 | 
					                    <text class="text-muted w-[128rpx]">基本情况</text>
 | 
				
			||||||
                    <view class="flex gap-[4rpx] flex-1 items-end">
 | 
					                    <view class="flex gap-[4rpx] flex-1 items-center">
 | 
				
			||||||
                        <text>
 | 
					                        <text>
 | 
				
			||||||
                            {{ item.basicInformation }}
 | 
					                            {{ item.basicInformation }}
 | 
				
			||||||
                        </text>
 | 
					                        </text>
 | 
				
			||||||
                        <u-copy content="uview-plus is great !">
 | 
					                        <u-copy :content="item.basicInformation !">
 | 
				
			||||||
                            <TIcon name="icon-copy" color="#0E66FB" />
 | 
					                            <TIcon name="icon-copy" color="#0E66FB" />
 | 
				
			||||||
                        </u-copy>
 | 
					                        </u-copy>
 | 
				
			||||||
                    </view>
 | 
					                    </view>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,7 +6,7 @@
 | 
				
			||||||
                    <text>{{ item.studentName }}</text>
 | 
					                    <text>{{ item.studentName }}</text>
 | 
				
			||||||
                    <view class="flex ml-[48rpx] gap-[4rpx] items-center">
 | 
					                    <view class="flex ml-[48rpx] gap-[4rpx] items-center">
 | 
				
			||||||
                        <text class="text-primary">{{ item.phone }}</text>
 | 
					                        <text class="text-primary">{{ item.phone }}</text>
 | 
				
			||||||
                        <u-copy content="uview-plus is great !">
 | 
					                        <u-copy :content="item.phone">
 | 
				
			||||||
                            <TIcon name="icon-copy" color="#0E66FB" />
 | 
					                            <TIcon name="icon-copy" color="#0E66FB" />
 | 
				
			||||||
                        </u-copy>
 | 
					                        </u-copy>
 | 
				
			||||||
                    </view>
 | 
					                    </view>
 | 
				
			||||||
| 
						 | 
					@ -52,6 +52,7 @@
 | 
				
			||||||
<script setup lang="ts">
 | 
					<script setup lang="ts">
 | 
				
			||||||
import { computed, PropType } from 'vue'
 | 
					import { computed, PropType } from 'vue'
 | 
				
			||||||
import { converStatusEnum, stateEnum } from '@/enums'
 | 
					import { converStatusEnum, stateEnum } from '@/enums'
 | 
				
			||||||
 | 
					import { onLoad } from '@dcloudio/uni-app'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export interface IClue {
 | 
					export interface IClue {
 | 
				
			||||||
    studentName: string
 | 
					    studentName: string
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -25,8 +25,7 @@
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<script setup lang="ts">
 | 
					<script setup lang="ts">
 | 
				
			||||||
import { onLoad } from '@dcloudio/uni-app'
 | 
					import { ref, onMounted } from 'vue'
 | 
				
			||||||
import { ref } from 'vue'
 | 
					 | 
				
			||||||
import { debounce } from 'lodash-es'
 | 
					import { debounce } from 'lodash-es'
 | 
				
			||||||
import clueCard from './clue-card.vue'
 | 
					import clueCard from './clue-card.vue'
 | 
				
			||||||
import { useZPaging } from '@/hooks/useZPaging'
 | 
					import { useZPaging } from '@/hooks/useZPaging'
 | 
				
			||||||
| 
						 | 
					@ -42,11 +41,11 @@ const { paging, queryList, refresh, changeApi, setParams } = useZPaging(
 | 
				
			||||||
    () => {}
 | 
					    () => {}
 | 
				
			||||||
)
 | 
					)
 | 
				
			||||||
const searchChange = debounce(() => {
 | 
					const searchChange = debounce(() => {
 | 
				
			||||||
    refresh()
 | 
					    refresh(queryParams.value)
 | 
				
			||||||
}, 300)
 | 
					}, 300)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
onLoad(() => {
 | 
					onMounted(() => {
 | 
				
			||||||
    uni.$on('refreshPage', () => {
 | 
					    uni.$on('refreshPageList', () => {
 | 
				
			||||||
        refresh(queryParams.value)
 | 
					        refresh(queryParams.value)
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -43,14 +43,11 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<script setup lang="ts">
 | 
					<script setup lang="ts">
 | 
				
			||||||
import { useZPaging } from '@/hooks/useZPaging'
 | 
					import { useZPaging } from '@/hooks/useZPaging'
 | 
				
			||||||
import { ref } from 'vue'
 | 
					import { ref, onMounted, shallowRef, computed } from 'vue'
 | 
				
			||||||
 | 
					import { debounce } from 'lodash-es'
 | 
				
			||||||
import clueCard from '@/components/widgets/recruitsale/clue-card.vue'
 | 
					import clueCard from '@/components/widgets/recruitsale/clue-card.vue'
 | 
				
			||||||
import { shallowRef } from 'vue'
 | 
					 | 
				
			||||||
import { computed } from 'vue'
 | 
					 | 
				
			||||||
import { apiCluseList, apiEditRemark } from '@/api/clue'
 | 
					import { apiCluseList, apiEditRemark } from '@/api/clue'
 | 
				
			||||||
import { converStatusEnum } from '@/enums'
 | 
					import { converStatusEnum } from '@/enums'
 | 
				
			||||||
import { onLoad } from '@dcloudio/uni-app'
 | 
					 | 
				
			||||||
import { debounce } from 'lodash-es'
 | 
					 | 
				
			||||||
import { toast } from '@/utils/util'
 | 
					import { toast } from '@/utils/util'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const tabs = shallowRef([
 | 
					const tabs = shallowRef([
 | 
				
			||||||
| 
						 | 
					@ -97,13 +94,13 @@ const handleConfirm = async () => {
 | 
				
			||||||
        refresh(queryParams.value)
 | 
					        refresh(queryParams.value)
 | 
				
			||||||
    } catch (error) {}
 | 
					    } catch (error) {}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
onLoad(() => {
 | 
					onMounted(() => {
 | 
				
			||||||
    uni.$on('refreshPage', () => {
 | 
					    uni.$on('refreshPage', () => {
 | 
				
			||||||
        refresh(queryParams.value)
 | 
					        refresh(queryParams.value)
 | 
				
			||||||
    })
 | 
					    })
 | 
				
			||||||
})
 | 
					})
 | 
				
			||||||
const searchChange = debounce(() => {
 | 
					const searchChange = debounce(() => {
 | 
				
			||||||
    refresh()
 | 
					    refresh(queryParams.value)
 | 
				
			||||||
}, 300)
 | 
					}, 300)
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
<style scoped></style>
 | 
					<style scoped></style>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,10 +1,11 @@
 | 
				
			||||||
<template>
 | 
					<template>
 | 
				
			||||||
 | 
					    <TContainer>
 | 
				
			||||||
        <view class="pb-[24rpx]">
 | 
					        <view class="pb-[24rpx]">
 | 
				
			||||||
            <w-date-more :curDate="curDate" type="telesale" />
 | 
					            <w-date-more :curDate="curDate" type="telesale" />
 | 
				
			||||||
            <date-strip v-model="value" @change="handleDateChange" height="160rpx" />
 | 
					            <date-strip v-model="value" @change="handleDateChange" height="160rpx" />
 | 
				
			||||||
            <w-summary-form v-model="templateItems" @handle-confirm="handleConfirm" />
 | 
					            <w-summary-form v-model="templateItems" @handle-confirm="handleConfirm" />
 | 
				
			||||||
        <tabbar />
 | 
					 | 
				
			||||||
        </view>
 | 
					        </view>
 | 
				
			||||||
 | 
					    </TContainer>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<script setup lang="ts">
 | 
					<script setup lang="ts">
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -70,6 +70,7 @@
 | 
				
			||||||
				immediate: true,
 | 
									immediate: true,
 | 
				
			||||||
				handler(n) {
 | 
									handler(n) {
 | 
				
			||||||
					if(n !== this.inactiveValue && n !== this.activeValue) {
 | 
										if(n !== this.inactiveValue && n !== this.activeValue) {
 | 
				
			||||||
 | 
					                        console.log(n, this.inactiveValue, this.activeValue);
 | 
				
			||||||
						error('v-model绑定的值必须为inactiveValue、activeValue二者之一')
 | 
											error('v-model绑定的值必须为inactiveValue、activeValue二者之一')
 | 
				
			||||||
					}
 | 
										}
 | 
				
			||||||
				}
 | 
									}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue