From 564de084a48ff56d301ffbce1821b7a3c81bd201 Mon Sep 17 00:00:00 2001 From: qingyu <14049064+qingyuya123@user.noreply.gitee.com> Date: Sat, 28 Jun 2025 10:52:56 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E4=BA=A7=E5=93=81=E9=83=A8?= =?UTF-8?q?=E5=88=86=E5=86=85=E5=AE=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/GxUpload/index.vue | 27 +++-- src/components/index.js | 2 + src/views/dynamic/videoCenter/index.vue | 2 +- src/views/product/components/EditDialog.vue | 103 ++++++++++--------- src/views/product/index.vue | 12 ++- src/views/websiteRelated/contactUs/index.vue | 1 + 6 files changed, 85 insertions(+), 62 deletions(-) diff --git a/src/components/GxUpload/index.vue b/src/components/GxUpload/index.vue index 5802c81..ea55093 100644 --- a/src/components/GxUpload/index.vue +++ b/src/components/GxUpload/index.vue @@ -2,14 +2,14 @@
-
+
上传
- example - + example +
@@ -25,7 +25,7 @@ import apis from '@/apis' defineOptions({ name: 'GxUpload', }) -const fileType=ref('img') +const fileType = ref('img') const previewVisible = ref(false) const previewImage = ref('') const props = defineProps({ @@ -38,7 +38,7 @@ const props = defineProps({ disabled: { type: Boolean, default: false }, uploadText: { type: String }, fileNumber: { type: Number, default: 6 }, - width: { + width: { type: Number, default: 120, }, @@ -90,10 +90,10 @@ const getBase64 = (file) => { } const handlePreview = async (file) => { console.log(file.name) - const list=['.avi','.mp4','.mov','.wmv','.mkv','.m4v'] - const fileSuffix=file.name.substring(file.name.lastIndexOf('.')) - if(list.includes(fileSuffix)){ - fileType.value='video' + const list = ['.avi', '.mp4', '.mov', '.wmv', '.mkv', '.m4v'] + const fileSuffix = file.name.substring(file.name.lastIndexOf('.')) + if (list.includes(fileSuffix)) { + fileType.value = 'video' } if (!file.url && !file.preview) { file.preview = await getBase64(file.originFileObj) @@ -106,6 +106,9 @@ const handlePreview = async (file) => { // 修改handleChange方法 const handleChange = ({ file, fileList: updatedList }) => { + console.log(111) + console.log(file.status) + console.log(updatedList) // 处理上传成功的情况 if (file.status === 'done') { const response = file.response; @@ -123,6 +126,12 @@ const handleChange = ({ file, fileList: updatedList }) => { .map(item => item.url); emit('update:modelValue', urls); } + } else if (file.status === 'removed') { + // 更新外部绑定值 + const urls = updatedList + .filter(item => item.status === 'done') + .map(item => item.url); + emit('update:modelValue', urls); } else if (file.status === 'error') { message.error(`${file.name} 上传失败`); } diff --git a/src/components/index.js b/src/components/index.js index 317c539..2413506 100644 --- a/src/components/index.js +++ b/src/components/index.js @@ -20,6 +20,7 @@ import UploadVideo from './Upload/UploadVideo.vue' import UploadInput from './Upload/UploadInput.vue' import Scrollbar from './Scrollbar/Scrollbar.vue' import Cascader from './Cascader/Cascader.vue' +import GxUpload from './GxUpload/index.vue' import { setupLoadingDirective } from './Loading/directive' const componentList = [ @@ -43,6 +44,7 @@ const componentList = [ UploadInput, Scrollbar, Cascader, + GxUpload, ] export const loading = Loading diff --git a/src/views/dynamic/videoCenter/index.vue b/src/views/dynamic/videoCenter/index.vue index 3c102a3..cd15287 100644 --- a/src/views/dynamic/videoCenter/index.vue +++ b/src/views/dynamic/videoCenter/index.vue @@ -262,7 +262,7 @@ const handlePreview = (videoUrl) => { ElMessage.error('视频地址无效') return } - currentVideoUrl.value = videoUrl + currentVideoUrl.value = config('http.apiBasic') + videoUrl dialogVisible.value = true } diff --git a/src/views/product/components/EditDialog.vue b/src/views/product/components/EditDialog.vue index 22f89cd..d77387d 100644 --- a/src/views/product/components/EditDialog.vue +++ b/src/views/product/components/EditDialog.vue @@ -6,12 +6,18 @@ - - + + + + + + + +
{{ item.categoryIDName }} @@ -22,34 +28,40 @@ - + -
- - {{ item.targetName }} - - 新增适用对象 -
+ + + + + + +
- - + + - + + + + + + + + + + + + - - - 删除 - - - - 新增产品图片 - - + + + + @@ -171,10 +178,12 @@ const areaList = ref([]) const childOpen = ref(false) const formArea = ref({ name: '', status: 'enabled' }) formRules.value = { - title: { required: true, message: '请输入产品名称' }, + title: { required: true, message: '请输入产品类别名称' }, + code: { required: true, message: '请输入产品名称' }, categoryID: { required: true, message: '请选择产品类别', trigger: 'change' }, compose: { required: true, message: '请选择产品适用对象', trigger: 'change' }, - feature: [{ required: true, message: '请输入产品功能特点' }], + feature: { required: true, message: '请输入产品功能特点', trigger: 'change' }, + // feature: [{ required: true, message: '请输入产品功能特点' }], standard: [{ required: true, message: '请输入产品标准' }], images: [{ required: true, message: '请上传产品图片' }], sequence: [{ required: true, message: '请输入产品排序' }], @@ -182,7 +191,7 @@ formRules.value = { } const areaFormRules = { categoryIDName: [{ required: true, message: '请输入产品类别' }], - targetName: [{ required: true, message: '请输入产品适用对象' }], + // targetName: [{ required: true, message: '请输入产品适用对象' }], status: [{ required: true, message: '请选择状态', trigger: 'change' }], } const initDataBatch = async (configs) => { @@ -218,11 +227,11 @@ initDataBatch([ nameKey: 'name', resultKey: 'categoryIDName' }, - { - apiFunc: apis.products.getProductObj, - nameKey: 'name', - resultKey: 'targetName' - } + // { + // apiFunc: apis.products.getProductObj, + // nameKey: 'name', + // resultKey: 'targetName' + // } ]) /** @@ -295,7 +304,11 @@ async function handleEdit(record = {}) { hideModal() return } - formData.value = { ...data } + formData.value = { + ...data, + standard:data.standard||[{ label: '', value: '' }], + images:data.images || [''] + } imgUrl.value = config('http.apiBasic') + data.img } @@ -303,14 +316,15 @@ async function handleEdit(record = {}) { * 确定 */ function handleOk() { + console.log(formData.value) formRef.value.validateFields().then(async (values) => { try { showLoading() const params = { ...values, - img: formData.value.img, - pushAt: dayjs().format('YYYY-MM-DD'), - type: 'news' + sequence:'1', + standard:formData.value.standard||[{ label: '', value: '' }], + } let result = null switch (modal.value.type) { @@ -374,16 +388,7 @@ function removeStandard(index) { formData.value.standard.splice(index, 1) } } -// 添加图片 -function addImage() { - formData.value.images.push('') -} -// 删除图片 -function removeImage(index) { - if (formData.value.images.length > 1) { - formData.value.images.splice(index, 1) - } -} +