提交 a307abe9 authored 作者: 王鹏飞's avatar 王鹏飞

chore: update

上级 c09f95a7
......@@ -39,13 +39,13 @@ const submitForm = (formEl: FormInstance | undefined) => {
formEl.validate(valid => {
if (valid) {
if (props.data?.id) {
updateMaterial(form).then(res => {
updateMaterial(form).then(() => {
emit('update')
emit('update:modelValue', false)
ElMessage({ message: '更新成功', type: 'success' })
})
} else {
createMaterial(params).then(res => {
createMaterial(params).then(() => {
emit('update')
emit('update:modelValue', false)
ElMessage({ message: '新建成功', type: 'success' })
......@@ -84,8 +84,7 @@ const typeName = computed(() => {
:title="props.data ? (props.data?.isView ? `查看${typeName}资料` : `编辑${typeName}资料`) : `新建${typeName}资料`"
:close-on-click-modal="false"
width="800px"
@update:modelValue="$emit('update:modelValue')"
>
@update:modelValue="$emit('update:modelValue')">
<el-form
:disabled="props.data?.isView"
ref="ruleFormRef"
......@@ -93,19 +92,12 @@ const typeName = computed(() => {
:model="form"
:rules="rules"
label-suffix=":"
label-width="110px"
>
label-width="110px">
<el-form-item label="资料名称" prop="name">
<el-input placeholder="请输入" v-model="form.name" style="width: 100%"></el-input>
</el-form-item>
<el-form-item label="资料内容" prop="content">
<el-input
v-if="type === '1'"
placeholder="请输入"
type="textarea"
v-model="form.content"
style="width: 100%"
></el-input>
<el-input v-if="type === '1'" placeholder="请输入" type="textarea" v-model="form.content" style="width: 100%"></el-input>
<AppUpload v-if="type === '2' || type === '6' || type === '7' || type === '8'" v-model="form.content" />
<div class="audio" v-if="type === '3'">
<AppUpload v-model="form.content" accept=".mp3">
......
......@@ -19,13 +19,13 @@ const params = $ref({ type: '', config_attributes: '' })
function handleSubmit() {
if (props.data?.id) {
const updateParams = { id: props.data?.id, config_attributes: stepTwo.value.formItem }
updateConnection(updateParams).then(res => {
updateConnection(updateParams).then(() => {
emit('update')
emit('update:modelValue', false)
ElMessage({ message: '保修改成功', type: 'success' })
})
} else {
createConnection(params).then(res => {
createConnection(params).then(() => {
emit('update')
emit('update:modelValue', false)
ElMessage({ message: '保存成功', type: 'success' })
......@@ -75,13 +75,7 @@ const handleStepTwoNext = function () {
</script>
<template>
<el-dialog
class="connect-form"
:title="props.data?.id ? '编辑链接' : '新建链接'"
:close-on-click-modal="false"
width="1050px"
@update:modelValue="$emit('update:modelValue')"
>
<el-dialog class="connect-form" :title="props.data?.id ? '编辑链接' : '新建链接'" :close-on-click-modal="false" width="1050px" @update:modelValue="$emit('update:modelValue')">
<el-tabs v-model="activeName" class="demo-tabs">
<!-- 第一步 -->
<el-tab-pane disabled label="选择链接类型" :name="1" v-if="!props.data?.id">
......@@ -99,12 +93,12 @@ const handleStepTwoNext = function () {
<template v-if="props.data?.id">
<el-button type="primary" @click="activeName--" v-if="activeName === 3">上一步</el-button>
</template>
<el-button v-else type="primary" @click="activeName--" v-if="activeName === 2 || activeName === 3"
>上一步</el-button
>
<el-button type="primary" @click="handleStepOneNext" v-if="activeName === 1">下一步</el-button>
<el-button type="primary" @click="handleStepTwoNext" v-if="activeName === 2">下一步</el-button>
<el-button type="primary" v-if="activeName === 3" @click="handleSubmit">保存</el-button>
<template v-else>
<el-button type="primary" @click="activeName--" v-if="activeName === 2 || activeName === 3">上一步</el-button>
<el-button type="primary" @click="handleStepOneNext" v-if="activeName === 1">下一步</el-button>
<el-button type="primary" @click="handleStepTwoNext" v-if="activeName === 2">下一步</el-button>
<el-button type="primary" v-if="activeName === 3" @click="handleSubmit">保存</el-button>
</template>
</div>
</el-dialog>
</template>
......
......@@ -13,7 +13,7 @@ const emits = defineEmits(['update', 'edit'])
// 删除
function handleRemove() {
ElMessageBox.confirm('确定要删除该连接吗?', '提示').then(() => {
deleteConnection({ id: props.data?.id }).then(res => {
deleteConnection({ id: props.data.id }).then(() => {
ElMessage({ message: '删除成功', type: 'success' })
emits('update')
})
......@@ -25,28 +25,26 @@ const routerView = function () {
}
const edit = function () {
emits('edit', props.data?.id)
emits('edit', props.data.id)
}
</script>
<template>
<div class="connect-item">
<div class="connect-item" @click="routerView">
<div class="connect-item__edit">
<!-- <img @click="edit" src="https://webapp-pub.ezijing.com/pages/assa/dml_edit.png" alt="" /> -->
<el-icon size="20" color="#333" @click="edit"><Edit /></el-icon>
<!-- <img @click="edit" src="https://webapp-pub.ezijing.com/pages/assa/dml_edit.png" /> -->
<el-icon size="20" color="#333" @click.stop="edit"><Edit /></el-icon>
</div>
<div class="connect-item__remove" @click="handleRemove">
<!-- <img src="https://webapp-pub.ezijing.com/pages/assa/dml_delete.png" alt="" /> -->
<div class="connect-item__remove" @click.stop="handleRemove">
<!-- <img src="https://webapp-pub.ezijing.com/pages/assa/dml_delete.png" /> -->
<el-icon size="20" color="#333"><Delete /></el-icon>
</div>
<div @click="routerView" style="display: flex; width: 100%; flex-direction: column; align-items: center">
<div class="connect-item__icon">
<Icon w="40" h="40" :multicolour="true" class="svg" :name="data?.type"></Icon>
</div>
<p style="font-size: 18px; margin-top: 8px">
{{ data?.type === '12' ? data?.config_attributes[0].value : data?.type_name }}
</p>
<div class="connect-item__icon">
<Icon w="40" h="40" :multicolour="true" class="svg" :name="data.type"></Icon>
</div>
<p>
{{ data.type === '12' ? data.config_attributes[0].value : data.type_name }}
</p>
</div>
</template>
......@@ -70,6 +68,10 @@ const edit = function () {
display: block;
}
}
p {
font-size: 18px;
margin-top: 8px;
}
}
.connect-item__remove {
display: none;
......
<script setup lang="ts">
import Icon from '@/components/ConnectionIcon.vue'
import { ElMessageBox } from 'element-plus'
// import { ElMessageBox } from 'element-plus'
import { getConnectionDetails } from '../api'
const route = useRoute()
// 点击标签弹出详情文案(产品还没提供)
const openMsg = () => {
// ElMessageBox.alert('成功链接xxxx', '提示', {
// confirmButtonText: '关闭'
// })
}
// const openMsg = () => {
// // ElMessageBox.alert('成功链接xxxx', '提示', {
// // confirmButtonText: '关闭'
// // })
// }
let dataDetail = $ref<any>()
onMounted(() => {
......@@ -464,12 +464,12 @@ const abilityItem = computed(() => {
</div>
</AppCard>
<AppCard title="链接能力">
<el-tabs class="tabs-box" v-for="item in abilityItem">
<el-tabs class="tabs-box" v-for="(item, index) in abilityItem" :key="index">
<el-tab-pane :label="item.title">
<div class="tag-box">
<div v-for="cItem in item.child" class="tag">{{ cItem?.title }}</div>
<div class="tag-box" v-if="item.child.length">
<div class="tag" v-for="cItem in item.child" :key="cItem.title">{{ cItem.title }}</div>
</div>
<div v-if="!item.child.length" class="tag-null">无数据</div>
<div class="tag-null" v-else>无数据</div>
</el-tab-pane>
</el-tabs>
</AppCard>
......
......@@ -60,7 +60,7 @@ function handleUpdate() {
id: eventDetail?.id || '',
attributes: JSON.stringify(tableData)
}
updateAttributes(params).then(res => {
updateAttributes(params).then(() => {
ElMessage({ message: '保存成功', type: 'success' })
emit('update')
emit('update:modelValue', false)
......@@ -89,12 +89,7 @@ const changeFormatType = function (row: any) {
</script>
<template>
<el-dialog
title="事件属性"
:close-on-click-modal="false"
width="800px"
@update:modelValue="$emit('update:modelValue')"
>
<el-dialog title="事件属性" :close-on-click-modal="false" width="800px" @update:modelValue="$emit('update:modelValue')">
<div style="display: flex; justify-content: space-around">
<el-form label-width="120px">
<el-form-item label="事件英文名称:">{{ eventDetail?.english_name }}</el-form-item>
......@@ -125,43 +120,23 @@ const changeFormatType = function (row: any) {
</el-table-column>
<el-table-column label="字段类型">
<template #default="scope">
<el-select
@change="changeFormatType(scope.row)"
:disabled="scope.row.id !== ''"
v-model="scope.row.type"
placeholder="请选择"
>
<el-option
:label="item.label"
:value="item.value"
:key="item.id"
v-for="item in experimentAttributeOptions"
></el-option>
<el-select @change="changeFormatType(scope.row)" :disabled="scope.row.id !== ''" v-model="scope.row.type" placeholder="请选择">
<el-option :label="item.label" :value="item.value" :key="item.id" v-for="item in experimentAttributeOptions"></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="字段格式">
<template #default="scope">
<el-select
:disabled="scope.row.id !== ''"
v-if="scope.row.type === '4' || scope.row.type === '5'"
v-model="scope.row.format"
placeholder="请选择"
>
<el-select :disabled="scope.row.id !== ''" v-if="scope.row.type === '4' || scope.row.type === '5'" v-model="scope.row.format" placeholder="请选择">
<el-option v-if="scope.row.type !== '5'" label="yyyy-mm-dd" value="yyyy-mm-dd"></el-option>
<el-option
v-if="scope.row.type !== '4'"
label="yyyy-mm-dd hh:mm:ss"
value="yyyy-mm-dd hh:mm:ss"
></el-option>
<el-option v-if="scope.row.type !== '4'" label="yyyy-mm-dd hh:mm:ss" value="yyyy-mm-dd hh:mm:ss"></el-option>
</el-select>
<el-input
v-else
:disabled="scope.row.id !== ''"
type="number"
v-model="scope.row.format"
:placeholder="scope.row.type === '1' ? '请输入字符串长度' : '请输入长度'"
></el-input>
:placeholder="scope.row.type === '1' ? '请输入字符串长度' : '请输入长度'"></el-input>
</template>
</el-table-column>
<el-table-column width="30">
......
......@@ -47,7 +47,7 @@ function handleSubmit() {
// 新建
function handleCreate() {
createMetaEvent(form).then(res => {
createMetaEvent(form).then(() => {
ElMessage({ message: '创建成功', type: 'success' })
emit('update')
emit('update:modelValue', false)
......@@ -55,7 +55,7 @@ function handleCreate() {
}
// 修改
function handleUpdate() {
updateMetaEvent(form).then(res => {
updateMetaEvent(form).then(() => {
ElMessage({ message: '修改成功', type: 'success' })
emit('update')
emit('update:modelValue', false)
......@@ -76,12 +76,7 @@ function handleUpdate() {
<el-input v-model="form.name" placeholder="请输入" />
</el-form-item>
<el-form-item label="所属连接" prop="experiment_connection_id">
<el-select
:disabled="isUpdate"
v-model="form.experiment_connection_id"
style="width: 100%"
placeholder="请选择"
>
<el-select :disabled="isUpdate" v-model="form.experiment_connection_id" style="width: 100%" placeholder="请选择">
<el-option :label="item.type_name" :value="item.id" :key="item.id" v-for="item in props.option"></el-option>
</el-select>
</el-form-item>
......
......@@ -55,9 +55,7 @@ const listOptions = computed(() => {
label: '状态',
prop: 'status_name',
computed: (row: any) => {
return row.row.status === '0'
? `<span style="color: rgb(170, 2, 49)">${row.row.status_name}</span>`
: `<span style="color: #00ac27">${row.row.status_name}</span>`
return row.row.status === '0' ? `<span style="color: rgb(170, 2, 49)">${row.row.status_name}</span>` : `<span style="color: #00ac27">${row.row.status_name}</span>`
}
},
{ label: '更新人', prop: 'updated_operator_name' },
......@@ -97,7 +95,7 @@ function handleView(row: EventProp) {
// 删除
function handleRemove(row: EventProp) {
ElMessageBox.confirm('确定要删除该属性吗?', '提示').then(() => {
deleteMetaEvent({ id: row.id }).then(res => {
deleteMetaEvent({ id: row.id }).then(() => {
ElMessage({ message: '删除成功', type: 'success' })
handleRefresh()
})
......@@ -129,13 +127,7 @@ const handleField = function (row: EventProp) {
</AppList>
</AppCard>
<!-- 新建/修改 -->
<FormDialog
v-model="formVisible"
:data="currentRow"
@update="handleRefresh"
:option="experimentConnectionOptions || []"
v-if="formVisible"
/>
<FormDialog v-model="formVisible" :data="currentRow" @update="handleRefresh" :option="experimentConnectionOptions || []" v-if="formVisible" />
<!-- 查看 -->
<ViewDialog v-model="viewVisible" :data="currentRow" v-if="viewVisible && currentRow" />
<FieldDialog v-model="fieldVisible" :data="currentRow" v-if="fieldVisible && currentRow"></FieldDialog>
......
......@@ -52,7 +52,7 @@ function handleSubmit() {
// 新建
function handleCreate() {
createMemberMeta(form).then(res => {
createMemberMeta(form).then(() => {
ElMessage({ message: '创建成功', type: 'success' })
emit('update')
emit('update:modelValue', false)
......@@ -60,7 +60,7 @@ function handleCreate() {
}
// 修改
function handleUpdate() {
updateMemberMeta(form).then(res => {
updateMemberMeta(form).then(() => {
ElMessage({ message: '修改成功', type: 'success' })
emit('update')
emit('update:modelValue', false)
......@@ -109,29 +109,12 @@ const changeFormatType = function () {
<el-input v-model="form.name" placeholder="请输入" />
</el-form-item>
<el-form-item label="属性字段类型" prop="type">
<el-select
:disabled="isUpdate"
@change="changeFormatType"
v-model="form.type"
style="width: 100%"
placeholder="请选择"
>
<el-option
:label="item.label"
:value="item.value"
:key="item.id"
v-for="item in experimentAttributeOptions"
></el-option>
<el-select :disabled="isUpdate" @change="changeFormatType" v-model="form.type" style="width: 100%" placeholder="请选择">
<el-option :label="item.label" :value="item.value" :key="item.id" v-for="item in experimentAttributeOptions"></el-option>
</el-select>
</el-form-item>
<el-form-item label="属性字段格式" prop="format" v-if="form.type !== ''">
<el-select
:disabled="isUpdate"
v-if="form.type === '4' || form.type === '5'"
v-model="form.format"
style="width: 100%"
placeholder="请选择"
>
<el-select :disabled="isUpdate" v-if="form.type === '4' || form.type === '5'" v-model="form.format" style="width: 100%" placeholder="请选择">
<el-option v-if="form.type !== '5'" label="yyyy-mm-dd" value="yyyy-mm-dd"></el-option>
<el-option v-if="form.type !== '4'" label="yyyy-mm-dd hh:mm:ss" value="yyyy-mm-dd hh:mm:ss"></el-option>
</el-select>
......
......@@ -48,9 +48,7 @@ const listOptions = computed(() => {
label: '状态',
prop: 'status_name',
computed: (row: any) => {
return row.row.status === '0'
? `<span style="color: rgb(170, 2, 49)">${row.row.status_name}</span>`
: `<span style="color: #00ac27">${row.row.status_name}</span>`
return row.row.status === '0' ? `<span style="color: rgb(170, 2, 49)">${row.row.status_name}</span>` : `<span style="color: #00ac27">${row.row.status_name}</span>`
}
},
{ label: '更新人', prop: 'updated_operator_name' },
......@@ -90,7 +88,7 @@ function handleView(row: UserProp) {
// 删除
function handleRemove(row: UserProp) {
ElMessageBox.confirm('确定要删除该属性吗?', '提示').then(() => {
deleteMemberMeta({ id: row.id }).then(res => {
deleteMemberMeta({ id: row.id }).then(() => {
ElMessage({ message: '删除成功', type: 'success' })
handleRefresh()
})
......
......@@ -2,7 +2,6 @@
import type { TripTemplate } from '../types'
import { Plus } from '@element-plus/icons-vue'
import AppList from '@/components/base/AppList.vue'
import { ElMessageBox } from 'element-plus'
import { getTripTemplateList } from '../api'
import { useMapStore } from '@/stores/map'
import { getNameByValue, tripTemplateTypeList } from '@/utils/dictionary'
......@@ -77,12 +76,6 @@ function handleUpdate(row: TripTemplate) {
currentRow = row
formVisible = true
}
// 删除
function handleRemove(row: TripTemplate) {
ElMessageBox.confirm('确定要删除该旅程模板吗?', '提示').then(() => {
handleRefresh()
})
}
// 查看
let viewVisible = $ref(false)
function handleView(row: TripTemplate) {
......@@ -117,7 +110,6 @@ function handleConfig(row: TripTemplate) {
<el-button type="primary" plain @click="handleConfig(row)">配置</el-button>
<el-button type="primary" plain @click="handleView(row)">查看</el-button>
<el-button type="primary" plain @click="handleUpdate(row)">编辑</el-button>
<!-- <el-button type="primary" plain @click="handleRemove(row)">删除</el-button> -->
</template>
</AppList>
</AppCard>
......
......@@ -74,14 +74,14 @@ const submitForm = (formEl: FormInstance | undefined) => {
formEl.validate(valid => {
if (valid) {
if (props.data?.id) {
updateMember(params).then(res => {
updateMember(params).then(() => {
emit('update')
emit('update:modelValue', false)
ElMessage({ message: '更新成功', type: 'success' })
})
} else {
createMember(params)
.then(res => {
.then(() => {
emit('update')
emit('update:modelValue', false)
ElMessage({ message: '添加成功', type: 'success' })
......@@ -105,8 +105,7 @@ const submitForm = (formEl: FormInstance | undefined) => {
:title="props.data ? (props.data?.isView ? '查看用户' : '编辑用户') : '新建用户'"
:close-on-click-modal="false"
width="800px"
@update:modelValue="$emit('update:modelValue')"
>
@update:modelValue="$emit('update:modelValue')">
<el-form
:disabled="props.data?.isView"
ref="ruleFormRef"
......@@ -114,11 +113,10 @@ const submitForm = (formEl: FormInstance | undefined) => {
:model="form"
:rules="rules"
label-suffix=":"
label-width="auto"
>
label-width="auto">
<el-form-item label="来源链接" prop="experiment_connection_id">
<el-select v-model="form.experiment_connection_id" style="width: 100%">
<el-option v-for="item in connectionOptions" :label="item?.type_name" :value="item?.id"></el-option>
<el-option v-for="item in connectionOptions" :key="item.id" :label="item?.type_name" :value="item?.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="姓名" prop="name">
......@@ -129,34 +127,16 @@ const submitForm = (formEl: FormInstance | undefined) => {
</el-form-item>
<el-form-item label="性别" prop="gender">
<el-select v-model="form.gender" style="width: 100%">
<el-option
v-for="item in store.getMapValuesByKey('system_gender')"
:label="item?.label"
:value="item?.value"
></el-option>
<el-option v-for="item in store.getMapValuesByKey('system_gender')" :key="item.id" :label="item?.label" :value="item?.value"></el-option>
</el-select>
</el-form-item>
<el-form-item label="手机号码" prop="mobile">
<el-input v-model="form.mobile" style="width: 100%"></el-input>
</el-form-item>
<el-form-item :label="item.name" v-for="item in fieldsList">
<el-form-item :label="item.name" v-for="item in fieldsList" :key="item.id">
<template v-if="item.type === '4' || item.type === '5'">
<el-date-picker
v-if="item.format === 'yyyy-mm-dd'"
v-model="item.value"
type="date"
placeholder="请选择"
style="width: 100%"
value-format="YYYY-MM-DD"
/>
<el-date-picker
value-format="YYYY-MM-DD HH:mm:ss"
v-else
v-model="item.value"
type="datetime"
placeholder="请选择"
style="width: 100%"
/>
<el-date-picker v-if="item.format === 'yyyy-mm-dd'" v-model="item.value" type="date" placeholder="请选择" style="width: 100%" value-format="YYYY-MM-DD" />
<el-date-picker value-format="YYYY-MM-DD HH:mm:ss" v-else v-model="item.value" type="datetime" placeholder="请选择" style="width: 100%" />
</template>
<el-input v-else v-model="item.value" style="width: 100%" placeholder="请输入"></el-input>
</el-form-item>
......
......@@ -32,10 +32,7 @@ let eventList = $ref<EventProp[]>()
onMounted(() => {
getEventList().then(res => {
eventList = res.data.map(
(item: any) =>
item.attributes.map((cItem: any) =>
props.data ? (cItem.value = JSON.parse(props.data.fields)[cItem.id]) : (cItem.value = '') && cItem
) && item
(item: any) => item.attributes.map((cItem: any) => (props.data ? (cItem.value = JSON.parse(props.data.fields)[cItem.id]) : (cItem.value = '') && cItem)) && item
)
})
})
......@@ -60,7 +57,7 @@ const submitForm = (formEl: FormInstance | undefined) => {
id: props.data?.id,
fields: attributes
}
updateEvent(params).then(res => {
updateEvent(params).then(() => {
emit('update')
emit('update:modelValue', false)
ElMessage({ message: '更新成功', type: 'success' })
......@@ -72,7 +69,7 @@ const submitForm = (formEl: FormInstance | undefined) => {
experiment_meta_event_id: form.experiment_meta_event_id,
fields: attributes
}
createEvent(params).then(res => {
createEvent(params).then(() => {
emit('update')
emit('update:modelValue', false)
ElMessage({ message: '创建成功', type: 'success' })
......@@ -86,48 +83,22 @@ const submitForm = (formEl: FormInstance | undefined) => {
</script>
<template>
<el-dialog
:title="!props.data ? '新建用户事件属性' : '修改用户事件属性'"
:close-on-click-modal="false"
width="500px"
@update:modelValue="$emit('update:modelValue')"
>
<el-dialog :title="!props.data ? '新建用户事件属性' : '修改用户事件属性'" :close-on-click-modal="false" width="500px" @update:modelValue="$emit('update:modelValue')">
<div class="update-event_info">
<span>姓名:{{ props.info?.name }}</span>
<span>来源链接:{{ props.info?.connection_name }}</span>
</div>
<el-form
:disabled="props.data?.isView"
ref="formRef"
:model="form"
:rules="rules"
label-suffix=":"
label-width="122px"
>
<el-form :disabled="props.data?.isView" ref="formRef" :model="form" :rules="rules" label-suffix=":" label-width="122px">
<el-form-item label="请选择事件" prop="experiment_meta_event_id">
<el-select :disabled="!!props.data" v-model="form.experiment_meta_event_id" style="width: 100%">
<el-option v-for="item in eventList" :label="item.name" :value="item.id"></el-option>
<el-option v-for="item in eventList" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<!-- 属性字段 -->
<el-form-item :label="item.name" v-for="item in eventAttributes">
<el-form-item :label="item.name" v-for="item in eventAttributes" :key="item.id">
<template v-if="item.type === '4' || item.type === '5'">
<el-date-picker
v-if="item.format === 'yyyy-mm-dd'"
v-model="item.value"
type="date"
placeholder="请选择"
style="width: 100%"
value-format="YYYY-MM-DD"
/>
<el-date-picker
value-format="YYYY-MM-DD HH:mm:ss"
v-else
v-model="item.value"
type="datetime"
placeholder="请选择"
style="width: 100%"
/>
<el-date-picker v-if="item.format === 'yyyy-mm-dd'" v-model="item.value" type="date" placeholder="请选择" style="width: 100%" value-format="YYYY-MM-DD" />
<el-date-picker value-format="YYYY-MM-DD HH:mm:ss" v-else v-model="item.value" type="datetime" placeholder="请选择" style="width: 100%" />
</template>
<el-input v-else v-model="item.value" style="width: 100%" placeholder="请输入"></el-input>
</el-form-item>
......
......@@ -35,10 +35,7 @@ const connectionName = computed(() => {
// 下载数据模板
const downloadTemplate = function () {
if (form.event_id !== '')
window.open(
`/api/lab/v1/experiment/member/event-download?event_id=${form.event_id}&experiment_id=${route.query.experiment_id}`
)
if (form.event_id !== '') window.open(`/api/lab/v1/experiment/member/event-download?event_id=${form.event_id}&experiment_id=${route.query.experiment_id}`)
}
// 上传
......@@ -64,17 +61,11 @@ const fileData = $ref<any>([])
</script>
<template>
<el-dialog
class="connect-form"
title="导入用户事件数据"
:close-on-click-modal="false"
width="500px"
@update:modelValue="$emit('update:modelValue')"
>
<el-dialog class="connect-form" title="导入用户事件数据" :close-on-click-modal="false" width="500px" @update:modelValue="$emit('update:modelValue')">
<el-form ref="formRef" :model="form" :rules="rules" label-suffix=":" label-width="122px">
<el-form-item label="请选择事件" prop="event_id">
<el-select v-model="form.event_id" style="width: 100%">
<el-option v-for="item in eventList" :label="item.name" :value="item.id"></el-option>
<el-option v-for="item in eventList" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
<span v-if="connectionName">事件所属链接:{{ connectionName }}</span>
</el-form-item>
......
......@@ -55,22 +55,16 @@ const fileData = $ref<any>([])
</script>
<template>
<el-dialog
class="connect-form"
title="导入用户数据"
:close-on-click-modal="false"
width="500px"
@update:modelValue="$emit('update:modelValue')"
>
<el-dialog class="connect-form" title="导入用户数据" :close-on-click-modal="false" width="500px" @update:modelValue="$emit('update:modelValue')">
<el-form ref="formRef" :model="form" :rules="rules" label-suffix=":" label-width="142px">
<el-form-item label="请选择所属链接" prop="connection_id">
<el-select v-model="form.connection_id" style="width: 100%">
<el-option v-for="item in connectionList" :label="item.type_name" :value="item.id"></el-option>
<el-option v-for="item in connectionList" :key="item.id" :label="item.type_name" :value="item.id"></el-option>
</el-select>
</el-form-item>
<el-form-item label="请选择静态群组">
<el-select v-model="form.groups_id" style="width: 100%">
<el-option v-for="item in groupList" :label="item.name" :value="item.id"></el-option>
<el-option v-for="item in groupList" :key="item.id" :label="item.name" :value="item.id"></el-option>
</el-select>
</el-form-item>
</el-form>
......
<script setup lang="ts">
import { getProgress } from '../api'
const route = useRoute()
const emit = defineEmits<{
defineEmits<{
(e: 'update'): void
(e: 'update:modelValue', visible: boolean): void
}>()
......@@ -49,14 +47,7 @@ const bytesToSize = (bytes: number) => {
}
</script>
<template>
<el-dialog
class="connect-form"
title="导入用户数据"
:close-on-click-modal="false"
width="700px"
@update:modelValue="$emit('update:modelValue')"
>
<el-dialog class="connect-form" title="导入用户数据" :close-on-click-modal="false" width="700px" @update:modelValue="$emit('update:modelValue')">
<AppList v-bind="listOptions" ref="appList"></AppList>
</el-dialog>
</template>
<style lang="scss"></style>
......@@ -51,7 +51,7 @@ const handleEdit = function (row: AttributesProp) {
// 删除
function handleRemove(row: AttributesProp) {
ElMessageBox.confirm('确定要删除该属性吗?', '提示').then(() => {
deleteEvent({ id: row.id }).then(res => {
deleteEvent({ id: row.id }).then(() => {
ElMessage({ message: '删除成功', type: 'success' })
handleRefresh()
})
......@@ -94,13 +94,7 @@ const handleView = function (row: AttributesProp) {
</AppList>
</AppCard>
<!-- 新建更新事件 -->
<UpdateEventsDialog
@update="handleRefresh()"
:data="currentRow"
v-if="eventsVisible"
:info="userInfo"
v-model="eventsVisible"
></UpdateEventsDialog>
<UpdateEventsDialog @update="handleRefresh()" :data="currentRow" v-if="eventsVisible" :info="userInfo" v-model="eventsVisible"></UpdateEventsDialog>
</template>
<style lang="scss">
.event-user_info {
......
......@@ -11,7 +11,7 @@ const route = useRoute()
// 画像数据
let data = $ref<ImageProp>()
// 属性
let fieldsList = $ref<MemberFieldsProp[]>()
let fieldsList = $ref<MemberFieldsProp[]>([])
onMounted(() => {
// 画像
getMemberImage({ id: route.query.user_id as '' }).then(res => {
......@@ -48,68 +48,49 @@ function handleViewEvent(item: any) {
<template>
<AppCard class="card" style="margin-bottom: 10px">
<div class="info-box">
<div class="info-box" v-if="data">
<div class="info-name" style="min-width: 300px">
<div class="tx">
<img
:src="
data?.gender === '1'
? 'https://webapp-pub.ezijing.com/pages/assa/dml_boy.png'
: 'https://webapp-pub.ezijing.com/pages/assa/dml_girl.png'
"
alt="" />
<img :src="data.gender === '1' ? 'https://webapp-pub.ezijing.com/pages/assa/dml_boy.png' : 'https://webapp-pub.ezijing.com/pages/assa/dml_girl.png'" />
<!-- https://webapp-pub.ezijing.com/pages/assa/dml_boy.png -->
<!-- <el-icon :size="50" color="#fff"><UserFilled /></el-icon> -->
</div>
<h1>{{ data?.name }}</h1>
<h1>{{ data.name }}</h1>
<div class="line"></div>
</div>
<div style="display: flex; justify-content: space-around; width: 100%">
<el-form label-suffix=":" label-width="auto">
<el-form-item label="来源链接"
><span>{{ data?.connection_name }}</span></el-form-item
>
<el-form-item label="创建时间"
><span>{{ data?.created_time }}</span></el-form-item
>
<!-- <el-form-item label="用户ID"
><span>{{ data?.id }}</span></el-form-item
<el-form-item label="来源链接">{{ data.connection_name }} </el-form-item>
<el-form-item label="创建时间">{{ data.created_time }} </el-form-item>
<!-- <el-form-item label="用户ID">{{ data.id }} </el-form-item
> -->
</el-form>
<el-form label-suffix=":" label-width="110px">
<el-form-item label="用户ID"
><span>{{ data?.id }}</span></el-form-item
>
<el-form-item label="状态"
><span :style="`color: ${data?.status === '1' ? 'rgba(0,172,39,1)' : '#ba143e'}`">{{
data?.status_name
}}</span></el-form-item
>
<el-form-item label="用户ID">{{ data.id }} </el-form-item>
<el-form-item label="状态">
<span :style="`color: ${data.status === '1' ? 'rgba(0,172,39,1)' : '#ba143e'}`">{{ data.status_name }}</span>
</el-form-item>
</el-form>
<el-form label-suffix=":" label-width="110px">
<el-form-item label="最近活跃时间"
><span>{{ data?.updated_time }}</span></el-form-item
>
<el-form-item label="最近活跃时间" style="opacity: 0"
><span>{{ data?.updated_time }}</span></el-form-item
>
<el-form-item label="最近活跃时间">{{ data.updated_time }} </el-form-item>
<el-form-item label="最近活跃时间" style="opacity: 0">{{ data.updated_time }} </el-form-item>
</el-form>
</div>
</div>
</AppCard>
<div class="card-box">
<AppCard class="card" style="overflow-y: scroll" title="用户属性">
<div style="display: flex; justify-content: center; padding-right: 20px">
<div style="display: flex; justify-content: center; padding-right: 20px" v-if="data">
<el-form label-suffix=":" label-width="auto">
<el-form-item label="链接来源">{{ data?.connection_name }}</el-form-item>
<el-form-item label="姓名">{{ data?.name }}</el-form-item>
<el-form-item label="状态">{{ data?.status_name }}</el-form-item>
<el-form-item label="性别">{{ data?.gender_name }}</el-form-item>
<el-form-item label="电话">{{ data?.mobile }}</el-form-item>
<template v-for="item in fieldsList">
<el-form-item v-if="item?.isShow" :label="item?.name"
><span>{{ item?.value }}</span></el-form-item
>
<el-form-item label="链接来源">{{ data.connection_name }}</el-form-item>
<el-form-item label="姓名">{{ data.name }}</el-form-item>
<el-form-item label="状态">{{ data.status_name }}</el-form-item>
<el-form-item label="性别">{{ data.gender_name }}</el-form-item>
<el-form-item label="电话">{{ data.mobile }}</el-form-item>
<template v-for="item in fieldsList" :key="item.id">
<el-form-item :label="item.name" v-if="item.isShow">
<span>{{ item.value }}</span>
</el-form-item>
</template>
</el-form>
</div>
......@@ -117,59 +98,51 @@ function handleViewEvent(item: any) {
<AppCard class="card" title="标签与群组">
<el-tabs class="demo-tabs">
<el-tab-pane label="用户标签">
<el-empty v-if="!data?.tags || !data?.tags.length" description="暂无数据" :image-size="80" />
<div class="scroll" v-else>
<el-tag class="ml-2" type="success" v-for="item in data?.tags">{{ item }}</el-tag>
<div class="scroll" v-if="data?.tags && data.tags.length">
<el-tag class="ml-2" type="success" v-for="(item, index) in data.tags" :key="index">{{ item }}</el-tag>
</div>
<el-empty description="暂无数据" :image-size="80" v-else />
</el-tab-pane>
</el-tabs>
<el-tabs class="demo-tabs">
<el-tab-pane label="静态分组">
<el-empty
v-if="!data?.static_groups || !data?.static_groups.length"
description="暂无数据"
:image-size="80" />
<div class="scroll" v-else>
<el-tag class="ml-2" type="success" v-for="item in data?.static_groups">{{ item }}</el-tag>
<div class="scroll" v-if="data?.static_groups && data.static_groups.length">
<el-tag class="ml-2" type="success" v-for="(item, index) in data.static_groups" :key="index">{{ item }}</el-tag>
</div>
<el-empty description="暂无数据" :image-size="80" v-else />
</el-tab-pane>
</el-tabs>
<el-tabs class="demo-tabs">
<el-tab-pane label="动态分组">
<el-empty
v-if="!data?.dynamic_groups || !data?.static_groups.length"
description="暂无数据"
:image-size="80" />
<div class="scroll" v-else>
<el-tag class="ml-2" type="success" v-for="item in data?.dynamic_groups">{{ item }}</el-tag>
<div class="scroll" v-if="data?.dynamic_groups && data.dynamic_groups.length">
<el-tag class="ml-2" type="success" v-for="(item, index) in data.dynamic_groups" :key="index">{{ item }}</el-tag>
</div>
<el-empty description="暂无数据" :image-size="80" v-else />
</el-tab-pane>
</el-tabs>
</AppCard>
<AppCard class="card" title="用户行为轨迹">
<el-empty v-if="!data?.events?.list || !data?.events?.list.length" description="暂无数据" :image-size="80" />
<div class="event-box" v-for="item in data?.events?.list" v-else>
<div class="date">{{ item.updated_time?.slice(0, item.updated_time.indexOf(' ')) }}</div>
<div class="event-content">
<div class="time">
{{ item.updated_time?.slice(item.updated_time.indexOf(' '), item.updated_time.length - 3) }}
{{ getDate(item.updated_time) }}
</div>
<Icon class="icon" :multicolour="true" :name="item.connection_type" w="20" h="20"></Icon>
<div class="event">
<span>"{{ item.connection_name }}"</span>
<span style="cursor: pointer" @click="handleViewEvent(item)">"{{ item.event_name }}"</span>
<template v-if="data?.events.list && data.events.list.length">
<div class="event-box" v-for="(item, index) in data.events.list" :key="index">
<div class="date">{{ item.updated_time?.slice(0, item.updated_time.indexOf(' ')) }}</div>
<div class="event-content">
<div class="time">
{{ item.updated_time?.slice(item.updated_time.indexOf(' '), item.updated_time.length - 3) }}
{{ getDate(item.updated_time) }}
</div>
<Icon class="icon" :multicolour="true" :name="item.connection_type" w="20" h="20"></Icon>
<div class="event">
<span>"{{ item.connection_name }}"</span>
<span style="cursor: pointer" @click="handleViewEvent(item)">"{{ item.event_name }}"</span>
</div>
</div>
</div>
</div>
</template>
<el-empty description="暂无数据" :image-size="80" v-else />
</AppCard>
</div>
<!-- 事件详情 -->
<ViewEvent
v-model="viewEventVisible"
:event="currentViewEvent"
:user="data"
v-if="viewEventVisible && currentViewEvent"></ViewEvent>
<ViewEvent v-model="viewEventVisible" :event="currentViewEvent" :user="data" v-if="viewEventVisible && currentViewEvent"></ViewEvent>
</template>
<style lang="scss">
.info-box {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论