完善功能
This commit is contained in:
@ -23,4 +23,14 @@ export function apiTeamasterUserDelete(params: any) {
|
|||||||
// 用户表详情
|
// 用户表详情
|
||||||
export function apiTeamasterUserDetail(params: any) {
|
export function apiTeamasterUserDetail(params: any) {
|
||||||
return request.get({ url: '/teamaster_user/detail', params })
|
return request.get({ url: '/teamaster_user/detail', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 专属圈子
|
||||||
|
export function apiLabel(params: any) {
|
||||||
|
return request.get({ url: '/teamasterReal/label', params })
|
||||||
|
}
|
||||||
|
|
||||||
|
// 经纪人列表
|
||||||
|
export function apiBrokerList() {
|
||||||
|
return request.post({ url: '/brokerAdmin/brokerList' })
|
||||||
}
|
}
|
||||||
@ -6,17 +6,38 @@
|
|||||||
<el-form-item label="头像" prop="avatar">
|
<el-form-item label="头像" prop="avatar">
|
||||||
<material-picker v-model="formData.avatar" :limit="1" />
|
<material-picker v-model="formData.avatar" :limit="1" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="用户名称" prop="nickname">
|
|
||||||
<el-input v-model="formData.nickname" clearable placeholder="请输入用户名称" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="用户昵称" prop="name">
|
|
||||||
<el-input v-model="formData.name" clearable placeholder="请输入用户昵称" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="本人照片" prop="image">
|
<el-form-item label="本人照片" prop="image">
|
||||||
<material-picker v-model="formData.image" :limit="1" />
|
<material-picker v-model="formData.image" :limit="1" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item label="茶艺师资格证书" prop="license_img">
|
||||||
|
<material-picker v-model="formData.license_img" :limit="1" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="个人展示" prop="information">
|
||||||
|
<material-picker v-model="formData.information" :limit="9" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="健康证" prop="health_certificate">
|
||||||
|
<material-picker v-model="formData.health_certificate" :limit="1" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="专属圈子" prop="label_id">
|
||||||
|
<el-select v-model="formData.label_id" multiple placeholder="请选择" style="width: 240px">
|
||||||
|
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="经纪人" prop="broker_user_id">
|
||||||
|
<el-select v-model="formData.broker_user_id" placeholder="请选择" style="width: 240px">
|
||||||
|
<el-option v-for="item in brokerOptions" :key="item.value" :label="item.label"
|
||||||
|
:value="item.value" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="名称" prop="nickname">
|
||||||
|
<el-input v-model="formData.nickname" clearable placeholder="请输入名称" />
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="昵称" prop="name">
|
||||||
|
<el-input v-model="formData.name" clearable placeholder="请输入昵称" />
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="出生日期" prop="both">
|
<el-form-item label="出生日期" prop="both">
|
||||||
<el-date-picker v-model="formData.both" type="date" placeholder="请选择" />
|
<el-date-picker v-model="formData.both" type="date" placeholder="请选择" format="YYYY-MM-DD"
|
||||||
|
value-format="YYYY-MM-DD" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="体重" prop="weight">
|
<el-form-item label="体重" prop="weight">
|
||||||
<el-input v-model="formData.weight" clearable placeholder="请输入体重" />
|
<el-input v-model="formData.weight" clearable placeholder="请输入体重" />
|
||||||
@ -24,15 +45,12 @@
|
|||||||
<el-form-item label="身高" prop="height">
|
<el-form-item label="身高" prop="height">
|
||||||
<el-input v-model="formData.height" clearable placeholder="请输入身高" />
|
<el-input v-model="formData.height" clearable placeholder="请输入身高" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="性别" prop="height">
|
<el-form-item label="性别" prop="sex">
|
||||||
<el-select v-model="formData.sex" clearable placeholder="请选择">
|
<el-select v-model="formData.sex" clearable placeholder="请选择">
|
||||||
<el-option label="女" :value="2"></el-option>
|
<el-option label="女" :value="2"></el-option>
|
||||||
<el-option label="男" :value="1"></el-option>
|
<el-option label="男" :value="1"></el-option>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="兴趣爱好" prop="hobby_introduce">
|
|
||||||
<editor class="flex-1" v-model="formData.hobby_introduce" :height="300" />
|
|
||||||
</el-form-item>
|
|
||||||
<el-form-item label="用户账号" prop="account">
|
<el-form-item label="用户账号" prop="account">
|
||||||
<el-input v-model="formData.account" clearable placeholder="请输入用户账号" />
|
<el-input v-model="formData.account" clearable placeholder="请输入用户账号" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -69,9 +87,12 @@
|
|||||||
:value="parseInt(item.value)" />
|
:value="parseInt(item.value)" />
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- <el-form-item label="服务区域" prop="address_id">
|
<el-form-item label="所属城市" prop="city_id">
|
||||||
<el-input v-model="formData.address_id" clearable placeholder="请输入服务区域" />
|
<el-select v-model="formData.city_id" clearable placeholder="请选择">
|
||||||
</el-form-item> -->
|
<el-option :label="item.name" :value="item.id" v-for="item in cityList"
|
||||||
|
:key="item.id"></el-option>
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item label="地址" prop="longitude">
|
<el-form-item label="地址" prop="longitude">
|
||||||
<el-input v-model="formData.address" clearable placeholder="请输入地址" />
|
<el-input v-model="formData.address" clearable placeholder="请输入地址" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@ -79,7 +100,14 @@
|
|||||||
<el-input v-model="formData.longitude" clearable placeholder="请输入经度" />
|
<el-input v-model="formData.longitude" clearable placeholder="请输入经度" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="纬度" prop="latitude">
|
<el-form-item label="纬度" prop="latitude">
|
||||||
<el-input v-model="formData.latitude" clearable placeholder="请输入纬度" />
|
<div class="flex items-center w-full">
|
||||||
|
<el-input v-model="formData.latitude" clearable placeholder="请输入纬度" class="flex-1 min-w-0" />
|
||||||
|
<a href="http://jingweidu.757dy.com/" target="open" class="ml-2 flex items-center">
|
||||||
|
<el-icon>
|
||||||
|
<Location />
|
||||||
|
</el-icon>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="状态" prop="state">
|
<el-form-item label="状态" prop="state">
|
||||||
<el-select class="flex-1" v-model="formData.state" clearable placeholder="请选择">
|
<el-select class="flex-1" v-model="formData.state" clearable placeholder="请选择">
|
||||||
@ -100,11 +128,12 @@
|
|||||||
|
|
||||||
<script lang="ts" setup name="teamasterUserEdit">
|
<script lang="ts" setup name="teamasterUserEdit">
|
||||||
import Popup from '@/components/popup/index.vue'
|
import Popup from '@/components/popup/index.vue'
|
||||||
import { apiTeamasterUserAdd, apiTeamasterUserEdit, apiTeamasterUserDetail } from '@/api/teamaster_user'
|
import { apiTeamasterUserAdd, apiTeamasterUserEdit, apiTeamasterUserDetail, apiLabel, apiBrokerList } from '@/api/teamaster_user'
|
||||||
import { timeFormat, removeImageUrlPrefix, normalizeImageUrl } from '@/utils/util'
|
import { timeFormat, removeImageUrlPrefix, normalizeImageUrl } from '@/utils/util'
|
||||||
import type { PropType } from 'vue'
|
import type { PropType } from 'vue'
|
||||||
import { apiTeaStoreCityLists } from '@/api/tea_store'
|
import { apiTeaStoreCityLists } from '@/api/tea_store'
|
||||||
import type { FormInstance } from 'element-plus'
|
import type { FormInstance } from 'element-plus'
|
||||||
|
import { isArray } from 'lodash'
|
||||||
|
|
||||||
|
|
||||||
defineProps({
|
defineProps({
|
||||||
@ -118,6 +147,29 @@ const formRef = shallowRef<FormInstance>()
|
|||||||
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
const popupRef = shallowRef<InstanceType<typeof Popup>>()
|
||||||
const mode = ref('add')
|
const mode = ref('add')
|
||||||
|
|
||||||
|
// 获取专属圈子
|
||||||
|
const options = ref<{ label: string; value: string }[]>([])
|
||||||
|
const getLabel = async () => {
|
||||||
|
try {
|
||||||
|
const res = await apiLabel({})
|
||||||
|
options.value = res.map((item: any) => ({ label: item.label_name, value: item.id }))
|
||||||
|
} catch (e) {
|
||||||
|
options.value = []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
getLabel()
|
||||||
|
|
||||||
|
// 获取经纪人列表
|
||||||
|
const brokerOptions = ref<{ label: string; value: string }[]>([])
|
||||||
|
const getBrokerList = async () => {
|
||||||
|
try {
|
||||||
|
const res = await apiBrokerList()
|
||||||
|
brokerOptions.value = res.map((item: any) => ({ label: item.name, value: item.id }))
|
||||||
|
} catch (e) {
|
||||||
|
brokerOptions.value = []
|
||||||
|
}
|
||||||
|
}
|
||||||
|
getBrokerList()
|
||||||
|
|
||||||
// 弹窗标题
|
// 弹窗标题
|
||||||
const popupTitle = computed(() => {
|
const popupTitle = computed(() => {
|
||||||
@ -128,9 +180,9 @@ const popupTitle = computed(() => {
|
|||||||
const formData = reactive({
|
const formData = reactive({
|
||||||
id: '',
|
id: '',
|
||||||
avatar: '',
|
avatar: '',
|
||||||
|
image: '',
|
||||||
nickname: '',
|
nickname: '',
|
||||||
name: '',
|
name: '',
|
||||||
image: '',
|
|
||||||
both: '',
|
both: '',
|
||||||
weight: '',
|
weight: '',
|
||||||
height: '',
|
height: '',
|
||||||
@ -146,11 +198,18 @@ const formData = reactive({
|
|||||||
sold: '',
|
sold: '',
|
||||||
server_type: '',
|
server_type: '',
|
||||||
address_id: 0,
|
address_id: 0,
|
||||||
|
city_id: '',
|
||||||
address: '',
|
address: '',
|
||||||
longitude: '',
|
longitude: '',
|
||||||
latitude: '',
|
latitude: '',
|
||||||
disable: '',
|
disable: '',
|
||||||
state: ''
|
state: '',
|
||||||
|
user_money: '',
|
||||||
|
license_img: '',
|
||||||
|
information: '',
|
||||||
|
health_certificate: '',
|
||||||
|
label_id: '',
|
||||||
|
broker_user_id: '',
|
||||||
})
|
})
|
||||||
|
|
||||||
// 城市列表
|
// 城市列表
|
||||||
@ -166,11 +225,8 @@ onMounted(async () => {
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// 表单验证
|
// 表单验证
|
||||||
const formRules = reactive<any>({
|
const formRules = reactive<any>({})
|
||||||
|
|
||||||
})
|
|
||||||
|
|
||||||
|
|
||||||
// 获取详情
|
// 获取详情
|
||||||
@ -184,6 +240,14 @@ const setFormData = async (data: Record<any, any>) => {
|
|||||||
|
|
||||||
//@ts-ignore
|
//@ts-ignore
|
||||||
// formData.avatar = normalizeImageUrl(formData.avatar)
|
// formData.avatar = normalizeImageUrl(formData.avatar)
|
||||||
|
formData.label_id = formData.label_id ? formData.label_id.split(',') : []
|
||||||
|
if (isArray(formData.label_id)) {
|
||||||
|
//@ts-ignore
|
||||||
|
formData.label_id = formData.label_id.map((item: string) => Number(item))
|
||||||
|
}
|
||||||
|
console.log("🚀 ~ setFormData ~ formData.label_id:", formData.label_id)
|
||||||
|
//@ts-ignore
|
||||||
|
formData.information = formData.information ? formData.information.split(',') : ''
|
||||||
}
|
}
|
||||||
|
|
||||||
const getDetail = async (row: Record<string, any>) => {
|
const getDetail = async (row: Record<string, any>) => {
|
||||||
@ -200,7 +264,13 @@ const handleSubmit = async () => {
|
|||||||
let data = { ...formData, }
|
let data = { ...formData, }
|
||||||
data.avatar = removeImageUrlPrefix(data.avatar)
|
data.avatar = removeImageUrlPrefix(data.avatar)
|
||||||
data.image = removeImageUrlPrefix(data.image)
|
data.image = removeImageUrlPrefix(data.image)
|
||||||
|
data.license_img = removeImageUrlPrefix(data.license_img)
|
||||||
|
data.information = removeImageUrlPrefix(data.information)
|
||||||
|
data.information = Array.isArray(data.information) ? data.information.join(',') : ''
|
||||||
|
data.health_certificate = removeImageUrlPrefix(data.health_certificate)
|
||||||
|
data.label_id = Array.isArray(data.label_id) ? data.label_id.join(',') : ''
|
||||||
|
// console.log("🚀 ~ handleSubmit ~ data:", data)
|
||||||
|
// return
|
||||||
mode.value == 'edit'
|
mode.value == 'edit'
|
||||||
? await apiTeamasterUserEdit(data)
|
? await apiTeamasterUserEdit(data)
|
||||||
: await apiTeamasterUserAdd(data)
|
: await apiTeamasterUserAdd(data)
|
||||||
|
|||||||
Reference in New Issue
Block a user