修复bug

This commit is contained in:
Leo_Ding 2025-07-01 18:23:47 +08:00
parent cc53aed3f4
commit eb5caa1ee0
33 changed files with 96 additions and 75 deletions

View File

@ -12,8 +12,8 @@ VITE_ROUTER_BASE=/
VITE_ROUTER_HISTORY=hash
# api
#VITE_API_BASIC=https://api.hailin-keji.com
VITE_API_BASIC=http://10.10.1.6:8060
VITE_API_BASIC=https://api.hailin-keji.com
# VITE_API_BASIC=http://10.10.1.6:8060
VITE_API_HTTP=/api/v1/
# storage
VITE_STORAGE_NAMESPACE = gin-admin_local_

View File

@ -53,7 +53,6 @@ const uploadUrl = config('http.apiBasic') + '/api/v1/upload'
const fileList = ref([]);
//
onMounted(() => {
console.log(' props.modelValue', props.modelValue)
fileList.value = props.modelValue.map(url => ({
uid: `preview-${Date.now()}-${Math.random()}`,
name: url.substring(url.lastIndexOf('/') + 1),

View File

@ -103,7 +103,7 @@ const imgChange = (value) => {
function handleCreate() {
showModal({
type: 'create',
title: '添加公司动态',
title: '添加',
})
formData.value.status = 'enabled'
}

View File

@ -39,7 +39,7 @@
<template #icon>
<plus-outlined></plus-outlined>
</template>
新增动态
新增
</a-button>
</x-action-bar>
<a-table :columns="columns" :data-source="listData" bordered="true" :loading="loading"

View File

@ -89,7 +89,7 @@ const imgChange = (value) => {
function handleCreate() {
showModal({
type: 'create',
title: '添加公司动态',
title: '添加',
})
formData.value.status = 'enabled'
}

View File

@ -39,7 +39,7 @@
<template #icon>
<plus-outlined></plus-outlined>
</template>
新增动态
新增
</a-button>
</x-action-bar>
<a-table :columns="columns" :data-source="listData" bordered="true" :loading="loading"

View File

@ -126,7 +126,7 @@ const imgChange = (value, type) => {
function handleCreate() {
showModal({
type: 'create',
title: '添加公司动态',
title: '添加',
})
formData.value.status = 'enabled'
}

View File

@ -39,7 +39,7 @@
<template #icon>
<plus-outlined></plus-outlined>
</template>
新增动态
新增
</a-button>
</x-action-bar>
<a-table :columns="columns" :data-source="listData" bordered="true" :loading="loading"
@ -115,12 +115,12 @@
</div>
</div>
<div class="timeline">
<!-- <div class="timeline">
<div v-for="item in listData" :key="item.id" class="timeline-item">
<div class="timeline-date">{{ item.year }}{{ item.month }}</div>
<div class="timeline-event">{{ item.title }}</div>
</div>
</div>
</div> -->
</template>

View File

@ -74,7 +74,7 @@ function handleCreate() {
showModal({
type: 'create',
// 80about
title: '添加公司动态',
title: '添加',
})
formData.value.status = 'enabled'
}

View File

@ -34,14 +34,14 @@
<a-row :gutter="8" :wrap="false">
<a-col flex="auto">
<a-card type="flex">
<x-action-bar class="mb-8-2">
<!-- <x-action-bar class="mb-8-2">
<a-button type="primary" @click="$refs.editDialogRef.handleCreate()">
<template #icon>
<plus-outlined></plus-outlined>
</template>
新增动态
新增
</a-button>
</x-action-bar>
</x-action-bar> -->
<a-table :columns="columns" :data-source="listData" bordered="true" :loading="loading"
:pagination="paginationState" :scroll="{ x: 1000 }" @change="onTableChange">
<template #bodyCell="{ column, record }">
@ -64,10 +64,10 @@
<a-tooltip>
<template #title> {{ $t('pages.system.user.edit') }}</template>
<edit-outlined /> </a-tooltip></x-action-button>
<x-action-button @click="handleDelete(record)">
<!-- <x-action-button @click="handleDelete(record)">
<a-tooltip>
<template #title>{{ $t('pages.system.delete') }}</template>
<delete-outlined style="color: #ff4d4f" /> </a-tooltip></x-action-button>
<delete-outlined style="color: #ff4d4f" /> </a-tooltip></x-action-button> -->
</template>
</template>
</a-table>

View File

@ -74,7 +74,7 @@ function handleCreate() {
showModal({
type: 'create',
// 80about
title: '添加公司动态',
title: '添加',
})
formData.value.status = 'enabled'
}

View File

@ -39,7 +39,7 @@
<template #icon>
<plus-outlined></plus-outlined>
</template>
新增动态
新增
</a-button>
</x-action-bar>
<a-table :columns="columns" :data-source="listData" bordered="true" :loading="loading"

View File

@ -74,7 +74,7 @@ function handleCreate() {
showModal({
type: 'create',
// 80about
title: '添加公司动态',
title: '添加',
})
formData.value.status = 'enabled'
}

View File

@ -39,7 +39,7 @@
<template #icon>
<plus-outlined></plus-outlined>
</template>
新增动态
新增
</a-button>
</x-action-bar>
<a-table :columns="columns" :data-source="listData" bordered="true" :loading="loading"

View File

@ -74,7 +74,7 @@ function handleCreate() {
showModal({
type: 'create',
// 80about
title: '添加公司动态',
title: '添加',
})
formData.value.status = 'enabled'
}

View File

@ -39,7 +39,7 @@
<template #icon>
<plus-outlined></plus-outlined>
</template>
新增动态
新增
</a-button>
</x-action-bar>
<a-table :columns="columns" :data-source="listData" bordered="true" :loading="loading"

View File

@ -74,7 +74,7 @@ function handleCreate() {
showModal({
type: 'create',
// 80about
title: '添加公司动态',
title: '添加',
})
formData.value.status = 'enabled'
}

View File

@ -39,7 +39,7 @@
<template #icon>
<plus-outlined></plus-outlined>
</template>
新增动态
新增
</a-button>
</x-action-bar>
<a-table :columns="columns" :data-source="listData" bordered="true" :loading="loading"

View File

@ -74,7 +74,7 @@ function handleCreate() {
showModal({
type: 'create',
// 80about
title: '添加公司动态',
title: '添加',
})
formData.value.status = 'enabled'
}

View File

@ -39,7 +39,7 @@
<template #icon>
<plus-outlined></plus-outlined>
</template>
新增动态
新增
</a-button>
</x-action-bar>
<a-table :columns="columns" :data-source="listData" bordered="true" :loading="loading"

View File

@ -98,7 +98,7 @@ const imgChange = (value) => {
function handleCreate() {
showModal({
type: 'create',
title: '添加公司动态',
title: '添加',
})
formData.value.status = 'enabled'
}

View File

@ -39,7 +39,7 @@
<template #icon>
<plus-outlined></plus-outlined>
</template>
新增动态
新增
</a-button>
</x-action-bar>
<a-table :columns="columns" :data-source="listData" bordered="true" :loading="loading"

View File

@ -14,13 +14,16 @@
</a-col>
<a-col :span="24">
<a-form-item :label="'产品类别'" name="categoryIDs">
<a-tree-select v-model:value="formData.categoryIDs" :tree-data="categoryList"
<!-- <a-tree-select v-model:value="formData.categoryIDs" :tree-data="categoryList"
@change="handleTreeSelectChange" placeholder="请选择(只能选最后一级)"
style="width: 100%" tree-default-expand-all/>
style="width: 100%" tree-default-expand-all/> -->
<a-tree-select v-model:value="formData.categoryIDs" style="width: 100%" :tree-data="categoryList"
tree-checkable allow-clear :show-checked-strategy="SHOW_PARENT"
placeholder="Please select" tree-node-filter-prop="label" @change="handleChange"/>
</a-form-item>
</a-col>
<a-col :span="24">
<a-form-item :label="'原料组成'">
<a-form-item :label="'原料组成'" name="compose">
<a-textarea :placeholder="'请输入原料组成'"
v-model:value="formData.compose"></a-textarea>
</a-form-item>
@ -139,13 +142,13 @@ const targetList = ref([])
const images = ref([])
const contentImage = ref([])
const childOpen = ref(false)
const categoryIDs=['']
const activeKey = ref('1')
formRules.value = {
title: { required: true, message: '请输入产品类别名称' },
code: { required: true, message: '请输入产品名称' },
categoryIDs: { required: true, message: '请选择产品类别', trigger: 'change' },
compose: { required: true, message: '请选择产品适用对象', trigger: 'change' },
compose: { required: false, message: '请选择产品适用对象'},
feature: [{ required: true, message: '请输入产品功能特点', trigger: 'change' }],
// feature: [{ required: true, message: '' }],
standard: [{ required: true, message: '请输入产品标准' }],
@ -183,7 +186,7 @@ function handleCreate() {
//
formData.value = {
title: '',
categoryIDs:'',
categoryIDs: [],
compose: '',
target: '',
feature: [{
@ -238,9 +241,8 @@ async function handleEdit(record = {}) {
}
formData.value = {
...data,
categoryIDs:data.categoryID,
categoryID:data.categoryID,
categoryRootID:data.categoryRootID,
categoryIDs: data.categoryID,
categoryRootID: data.categoryRootID,
standard: data.standard || [{
label: '',
val: '',
@ -252,7 +254,7 @@ async function handleEdit(record = {}) {
data: []
}],
// images:data.images || [''],
mainImage: data.images ? data.images.map(item=>config('http.apiBasic')+item):[''],
mainImage: data.images ? data.images.map(item => config('http.apiBasic') + item) : [''],
}
}
@ -266,8 +268,8 @@ function handleOk() {
showLoading()
const params = {
...values,
categoryID:formData.value.categoryID,
categoryRootID:formData.value.categoryRootID,
categoryID: formData.value.categoryIDs,
categoryRootID: formData.value.categoryRootID,
standard: formData.value.standard ||
[{
label: '',
@ -276,8 +278,9 @@ function handleOk() {
prx: '',
}],
feature: formData.value.feature,
images: formData.value.mainImage?formData.value.mainImage.map(item=>spliceUrl(item)):[''],
images: formData.value.mainImage ? formData.value.mainImage.map(item => spliceUrl(item)) : [''],
}
console.log(params)
let result = null
switch (modal.value.type) {
case 'create':
@ -366,16 +369,17 @@ const findNodePath = (tree, value, path = []) => {
//
const isLeafNode = (id) => {
const node = findNodeById(categoryList.value, id);
if(node.children.length>0) return false;
if (node.children.length > 0) return false;
else return true
};
//Id
// ID
const findNodeById = (tree, value) => {
for (const node of tree) {
if (node.value === value) return node;
if(node.children){
const found=findNodeById(node.children,value)
if(found) return found;
if (node.value == value) return node.value;
if (node.children) {
const found = findNodeById(node.children, value)
if (found) return found.value;
}
}
return null;
@ -383,18 +387,43 @@ const findNodeById = (tree, value) => {
//
const handleTreeSelectChange = (value) => {
//
if (!isLeafNode(value)) {
message.warning('只能选择最后一级节点');
formData.value.categoryID = null; //
return;
}
if (!value) return;
// if (!isLeafNode(value)) {
// message.warning('');
// formData.value.categoryID = null; //
// return;
// }
// if (!value) return;
const pathIds = findNodePath(categoryList.value, value);
if (pathIds) {
console.log('选中的路径ID数组:', pathIds);
// 使 pathIds
formData.value.categoryID=pathIds[1]
formData.value.categoryRootID=pathIds[0]
formData.value.categoryID = pathIds[1]
formData.value.categoryRootID = pathIds[0]
}
};
// key
const getParentKey = (key, tree) => {
for (const node of tree) {
if (node.children) {
if (node.children.some(child => child.value === key)) {
return node.value; // key
}
const parentKey = getParentKey(key, node.children);
if (parentKey) return parentKey;
}
}
return null;
};
//
const handleChange = (selectedKeys) => {
if (selectedKeys.length > 0) {
const lastSelectedKey = selectedKeys[selectedKeys.length - 1];
const parentKey = getParentKey(lastSelectedKey, categoryList.value);
console.log('选中的父级值:', parentKey);
formData.value.categoryRootID=parentKey
// 使...
}
};
</script>

View File

@ -3,11 +3,11 @@
<template #default="{ gutter, colSpan }">
<a-form :model="searchFormData" layout="inline">
<a-row :gutter="gutter">
<a-col v-bind="colSpan">
<!-- <a-col v-bind="colSpan">
<a-form-item label="产品类别名称" name="title">
<a-input placeholder="请输入产品名称" v-model:value="searchFormData.title"></a-input>
</a-form-item>
</a-col>
</a-col> -->
<a-col v-bind="colSpan">
<a-form-item label="产品名称" name="code">
<a-input placeholder="请输入产品名称" v-model:value="searchFormData.code"></a-input>
@ -123,7 +123,7 @@ defineOptions({
const { t } = useI18n() // t
const columns = [
{ title: '产品名称', dataIndex: 'code', width: 120, ellipsis:true},
{ title: '产品类别', dataIndex: 'categoryID', key: 'categoryID', width: 120 },
{ title: '产品类别', dataIndex: 'categoryRootName', key: 'categoryRootName', width: 120 },
{ title: '适用对象', dataIndex: 'target', width: 120 },
{ title: '原料组成', dataIndex: 'compose', key: 'compose', width: 120 },
// {

View File

@ -64,7 +64,7 @@
</a-col>
<a-col :span="24">
<a-form-item :label="'基地排序'" name="name">
<a-input v-model:value="formArea.sequence" :placeholder="'请输入基地排序'" />
<a-input-number v-model:value="formArea.sequence" :placeholder="'请输入基地排序'" style="width: 100%;"/>
</a-form-item>
</a-col>
<a-col :span="24">

View File

@ -239,7 +239,6 @@ function handleDelete({ id }) {
* 编辑完成
*/
async function onOk() {
message.success(t('component.message.success.delete'))
await getMenuList()
}
</script>

View File

@ -226,7 +226,6 @@ function handleResetSearch() {
* 编辑完成
*/
async function onOk() {
message.success(t('component.message.success.delete'))
await getPageList()
}
</script>

View File

@ -97,7 +97,7 @@ function handleCreate() {
showModal({
type: 'create',
// 80about
title: '添加公司动态',
title: '添加',
})
formData.value.status = 'enabled'
}

View File

@ -39,7 +39,7 @@
<template #icon>
<plus-outlined></plus-outlined>
</template>
新增动态
新增
</a-button>
</x-action-bar>
<a-table :columns="columns" :data-source="listData" bordered="true" :loading="loading"

View File

@ -104,7 +104,7 @@ const imgChange = (value) => {
function handleCreate() {
showModal({
type: 'create',
title: '添加公司动态',
title: '添加',
})
formData.value.status = 'enabled'
}

View File

@ -76,6 +76,7 @@ import { spliceUrl } from '@/utils/util'
import { getWebData,updateWebData} from '@/apis/modules/webSite'
import XSearchBar from '@/components/SearchBar/SearchBar.vue'
import GxUpload from '@/components/GxUpload/index.vue' //
import { config } from '@/config'
defineOptions({
name: 'contactUs',
})
@ -109,19 +110,14 @@ async function getPageList() {
id.value = res.data.id
affirm.value = res.data.affirm
reportContent.value = res.data.reportContent
reportImage.value = res.data.reportImage
reportImage.value = [config('http.apiBasic')+res.data.reportImage]
email.value = res.data.email
lat.value = res.data.lat
lon.value = res.data.lon
address.value = res.data.address
phone.value = res.data.phone
reportNum.value = res.data.reportNum
socialMedia.value = Array.isArray(res.data.socialMedia) ? res.data.socialMedia : []
//console.log(affirm.value)
console.log("web-Id:",id.value)
console.log('webData',res.data)
socialMedia.value = Array.isArray(res.data.socialMedia) ? res.data.socialMedia.map(item=>({link:item.link,name:item.name,image:[config('http.apiBasic')+item.image]})) : []
}
} catch (e) {
message.error('获取声明内容失败')
@ -135,7 +131,6 @@ async function getPageList() {
async function handleSearch() {
try {
showLoading()
console.log("id.value:", id.value)
// socialMedia.image
// const formattedSocialMedia = Array.isArray(socialMedia.value)
// ? socialMedia.value.map(item => ({

View File

@ -79,7 +79,7 @@ function handleCreate() {
showModal({
type: 'create',
// 80about
title: '添加公司动态',
title: '添加',
})
formData.value.status = 'enabled'
}

View File

@ -39,7 +39,7 @@
<template #icon>
<plus-outlined></plus-outlined>
</template>
新增动态
新增
</a-button>
</x-action-bar>
<a-table :columns="columns" :data-source="listData" bordered="true" :loading="loading"