sc
This commit is contained in:
@@ -4,8 +4,8 @@ VITE_NODE_ENV=development
|
||||
VITE_DEV=true
|
||||
|
||||
# 请求路径
|
||||
VITE_BASE_URL='http://47.98.161.246:48080'
|
||||
# VITE_BASE_URL='http://114.215.207.150:48080'
|
||||
# VITE_BASE_URL='http://47.98.161.246:48080'
|
||||
VITE_BASE_URL='http://114.215.207.150:48080'
|
||||
# VITE_BASE_URL='http://localhost:48080'
|
||||
|
||||
# 高德地图key密钥
|
||||
|
||||
@@ -9,9 +9,25 @@
|
||||
v-model="searchForm.phone"
|
||||
placeholder="联系方式"
|
||||
clearable
|
||||
style="width: 120px"
|
||||
style="width: 100px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-select
|
||||
v-model="searchForm.intention"
|
||||
placeholder="学员意向"
|
||||
clearable
|
||||
filterable
|
||||
style="width: 100px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in intentionOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-select
|
||||
v-model="searchForm.followUser"
|
||||
@@ -40,6 +56,38 @@
|
||||
style="width: 240px"
|
||||
/>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-select
|
||||
v-model="searchForm.schoolId"
|
||||
placeholder="邀约驾校"
|
||||
clearable
|
||||
filterable
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in schoolOptions"
|
||||
:key="item.schoolId"
|
||||
:label="item.schoolName"
|
||||
:value="item.schoolId"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-select
|
||||
v-model="searchForm.placeId"
|
||||
placeholder="邀约场地"
|
||||
clearable
|
||||
filterable
|
||||
style="width: 120px"
|
||||
>
|
||||
<el-option
|
||||
v-for="item in placeOptions"
|
||||
:key="item.placeId"
|
||||
:label="item.name"
|
||||
:value="item.placeId"
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-date-picker
|
||||
v-model="searchForm.signDate"
|
||||
@@ -58,7 +106,7 @@
|
||||
placeholder="报名状态"
|
||||
clearable
|
||||
filterable
|
||||
style="width: 120px"
|
||||
style="width: 100px"
|
||||
>
|
||||
<el-option label="未报名" :value="0" />
|
||||
<el-option label="已报名" :value="1" />
|
||||
@@ -70,7 +118,7 @@
|
||||
placeholder="登记状态"
|
||||
clearable
|
||||
filterable
|
||||
style="width: 120px"
|
||||
style="width: 100px"
|
||||
>
|
||||
<el-option label="未登记" :value="0" />
|
||||
<el-option label="已登记" :value="1" />
|
||||
@@ -86,9 +134,12 @@
|
||||
<el-table-column prop="name" label="学员姓名" width="90px" />
|
||||
<el-table-column prop="phone" label="联系方式" width="110px" />
|
||||
<el-table-column prop="followUserName" label="跟进人" width="90" />
|
||||
<el-table-column prop="intentionName" label="学员意向" width="90" />
|
||||
<el-table-column prop="remarkDate" label="报备日期" width="100px" />
|
||||
<el-table-column prop="remarkUserName" label="报备人" width="90px" />
|
||||
<el-table-column prop="remarkContent" label="报备内容" min-width="150px" />
|
||||
<el-table-column prop="remarkContent" label="报备内容" min-width="400px" />
|
||||
<el-table-column prop="schoolName" label="邀约驾校" width="100" />
|
||||
<el-table-column prop="placeName" label="邀约场地" width="100" />
|
||||
<el-table-column prop="signDate" label="报名日期" width="100px" />
|
||||
<el-table-column prop="enterUserName" label="接待人" width="90px" />
|
||||
<el-table-column prop="signInfo" label="报名信息" min-width="150px" />
|
||||
@@ -117,6 +168,8 @@
|
||||
<script setup>
|
||||
import { getSimpleUserList as getUserOption } from '@/api/system/user'
|
||||
import { getClueRemarkPage } from '@/api/clue/clueRemark'
|
||||
import { getPlaceList } from '@/api/school/place'
|
||||
import { getIntDictOptions } from '@/utils/dict'
|
||||
import { removeNullField } from '@/utils/index'
|
||||
|
||||
onMounted(() => {
|
||||
@@ -125,10 +178,22 @@ onMounted(() => {
|
||||
})
|
||||
|
||||
const userOptions = ref([])
|
||||
const schoolOptions = ref([])
|
||||
const placeOptions = ref([])
|
||||
const intentionOptions = getIntDictOptions('intention_state')
|
||||
function getOptions() {
|
||||
getUserOption().then((data) => {
|
||||
userOptions.value = data
|
||||
})
|
||||
|
||||
getPlaceList({
|
||||
placeStatus: 0,
|
||||
schoolStatus: 0,
|
||||
isSearchSchool: true
|
||||
}).then((data) => {
|
||||
schoolOptions.value = data.schoolList
|
||||
placeOptions.value = data.placeList
|
||||
})
|
||||
}
|
||||
|
||||
const searchForm = ref({
|
||||
|
||||
@@ -19,6 +19,17 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item prop="schoolPlace">
|
||||
<el-cascader
|
||||
v-model="form.schoolPlace"
|
||||
:options="placeOptions"
|
||||
placeholder="选择邀约驾校和场地"
|
||||
filterable
|
||||
show-all-levels
|
||||
style="width: 100%"
|
||||
:props="{ expandTrigger: 'hover', multiple: false, checkStrictly: true }"
|
||||
/>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<template #footer>
|
||||
<span>
|
||||
@@ -31,6 +42,7 @@
|
||||
|
||||
<script setup>
|
||||
import { getWxGroupSimpleList, getClueRemarkByClueId, reportClue } from '@/api/clue/clueRemark'
|
||||
import { getPlaceList } from '@/api/school/place'
|
||||
import { useUserStore } from '@/store/modules/user'
|
||||
|
||||
const userStore = useUserStore()
|
||||
@@ -38,7 +50,8 @@ const message = useMessage()
|
||||
|
||||
const form = ref({
|
||||
remarkContent: '',
|
||||
groupId: ''
|
||||
groupId: '',
|
||||
schoolPlace: []
|
||||
})
|
||||
const rules = {
|
||||
remarkContent: [{ required: true, message: '请输入报备信息', trigger: 'blur' }],
|
||||
@@ -56,6 +69,11 @@ async function open(row) {
|
||||
const data = await getClueRemarkByClueId({ clueId: row.clueId })
|
||||
if (data && data.remarkId) {
|
||||
form.value = { ...data }
|
||||
if (data.schoolId && data.placeId) {
|
||||
form.value.schoolPlace = [data.schoolId, data.placeId]
|
||||
} else if (data.schoolId) {
|
||||
form.value.schoolPlace = [data.schoolId]
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
@@ -75,11 +93,28 @@ async function open(row) {
|
||||
defineExpose({ open })
|
||||
|
||||
const groupOptions = ref([])
|
||||
|
||||
const placeOptions = ref([])
|
||||
function getOptions() {
|
||||
getWxGroupSimpleList().then((response) => {
|
||||
groupOptions.value = response
|
||||
})
|
||||
|
||||
getPlaceList({
|
||||
placeStatus: 0,
|
||||
schoolStatus: 0,
|
||||
isSearchSchool: true
|
||||
}).then((data) => {
|
||||
placeOptions.value = data.schoolList.map((item) => ({
|
||||
value: item.schoolId,
|
||||
label: item.schoolName,
|
||||
children: data.placeList
|
||||
.filter((place) => item.schoolId == place.schoolId)
|
||||
.map((place) => ({
|
||||
value: place.placeId,
|
||||
label: place.name
|
||||
}))
|
||||
}))
|
||||
})
|
||||
}
|
||||
|
||||
const formRef = ref(null)
|
||||
@@ -88,7 +123,14 @@ function handleSave() {
|
||||
if (valid) {
|
||||
formLoading.value = true
|
||||
try {
|
||||
await reportClue(form.value)
|
||||
const params = { ...form.value }
|
||||
if (params.schoolPlace && params.schoolPlace.length) {
|
||||
params.schoolId = params.schoolPlace[0]
|
||||
if (params.schoolPlace.length == 2) {
|
||||
params.placeId = params.schoolPlace[1]
|
||||
}
|
||||
}
|
||||
await reportClue(params)
|
||||
message.success('提交报备信息成功')
|
||||
show.value = false
|
||||
} catch (error) {
|
||||
|
||||
Reference in New Issue
Block a user