qsh 1 month ago
parent 14d0c3d20b
commit 3bbb2e5ecd
  1. 4
      .env.base
  2. 73
      src/views/Clue/Order/Comp/OrderRemark.vue
  3. 48
      src/views/Clue/Pool/Comp/DialogRemark.vue

@ -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) {

Loading…
Cancel
Save