Skip to content
项目
群组
代码片段
帮助
正在加载...
帮助
提交反馈
为 GitLab 提交贡献
登录
切换导航
P
pica.cloud.web-education-admin
项目
项目
详情
动态
版本
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Wiki
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
Close sidebar
动态
分支图
统计图
创建新议题
提交
议题看板
打开侧边栏
jingqi.liu
pica.cloud.web-education-admin
提交
99b93f3c
提交
99b93f3c
编写于
1月 25, 2024
作者:
xinglee23
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: 图片支持拖动
上级
a3fd4c62
变更
4
隐藏空白字符变更
内嵌
并排
正在显示
4 个修改的文件
包含
2 行增加
和
276 行删除
+2
-276
package.json
package.json
+1
-1
data.js
src/views/goods/common/data.js
+0
-24
upload-img.vue
src/views/goods/common/upload-img.vue
+0
-246
create-good-new.vue
src/views/goods/create-good-new.vue
+1
-5
未找到文件。
package.json
浏览文件 @
99b93f3c
...
@@ -6,7 +6,7 @@
...
@@ -6,7 +6,7 @@
"private"
:
true
,
"private"
:
true
,
"license"
:
"GPL"
,
"license"
:
"GPL"
,
"scripts"
:
{
"scripts"
:
{
"dev"
:
"cross-env BUILD_ENV=
test
node build/dev-server.js"
,
"dev"
:
"cross-env BUILD_ENV=
dev
node build/dev-server.js"
,
"local"
:
"cross-env BUILD_ENV=development node build/dev-server.js"
,
"local"
:
"cross-env BUILD_ENV=development node build/dev-server.js"
,
"build"
:
"node build/build.js"
,
"build"
:
"node build/build.js"
,
"build:dev"
:
"cross-env BUILD_ENV=dev node build/build.js"
,
"build:dev"
:
"cross-env BUILD_ENV=dev node build/build.js"
,
...
...
src/views/goods/common/data.js
已删除
100644 → 0
浏览文件 @
a3fd4c62
const
imgList
=
[
{
url
:
'https://test1-file.yunqueyi.com/image/jpeg/protal/project/20240125143040888.jpg'
,
id
:
1706164241654
,
},
{
url
:
'https://test1-file.yunqueyi.com/image/jpeg/protal/project/20240125143040885.jpg'
,
id
:
1706164241695
,
},
{
url
:
'https://test1-file.yunqueyi.com/image/jpeg/protal/project/20240125143052455.jpg'
,
id
:
1706164253118
,
},
{
url
:
'https://test1-file.yunqueyi.com/image/jpeg/protal/project/20240125143052455.jpg'
,
id
:
17061642531112
,
},
{
url
:
'https://test1-file.yunqueyi.com/image/jpeg/protal/project/20240125143052455.jpg'
,
id
:
1706164253111231231
,
},
];
export
default
imgList
;
src/views/goods/common/upload-img.vue
已删除
100644 → 0
浏览文件 @
a3fd4c62
<
template
>
<div
class=
"base-updata"
>
<div
class=
"img-sort"
>
<ul
class=
"el-upload-list el-upload-list--picture-card"
>
<draggable
v-model=
"imgList"
:animation=
"1000"
:sort=
"true"
v-if=
"showDraggable"
>
<li
class=
"el-upload-list__item is-success animated"
v-for=
"(item, index) in imgList"
:key=
"index"
style=
"margin-right: 10px"
>
<img
:src=
"item.url"
alt=
""
class=
"el-upload-list__item is-success"
/>
<!--
<i
class=
"el-icon-close"
></i>
-->
<span
class=
"el-upload-list__item-actions"
>
<!-- 预览 -->
<span
class=
"el-upload-list__item-preview"
@
click=
"handlePictureCardPreview(item)"
>
<i
class=
"el-icon-zoom-in"
></i>
</span>
<!-- 删除 -->
<span
class=
"el-upload-list__item-delete"
@
click=
"handleRemove(index)"
v-if=
"!disabled"
>
<i
class=
"el-icon-delete"
></i>
</span>
</span>
</li>
</draggable>
<template
v-else
>
<li
class=
"el-upload-list__item is-success animated"
v-for=
"(item, index) in imgList"
:key=
"index"
style=
"margin-right: 10px"
>
<img
:src=
"item.url"
alt=
""
class=
"el-upload-list__item is-success"
/>
<i
class=
"el-icon-close"
></i>
<span
class=
"el-upload-list__item-actions"
>
<!-- 预览 -->
<span
class=
"el-upload-list__item-preview"
@
click=
"handlePictureCardPreview(item)"
>
<i
class=
"el-icon-zoom-in"
></i>
</span>
<!-- 删除 -->
<span
class=
"el-upload-list__item-delete"
@
click=
"handleRemove(index)"
v-if=
"!disabled"
>
<i
class=
"el-icon-delete"
></i>
</span>
</span>
</li>
</
template
>
</ul>
<el-upload
style=
"display: inline-block"
ref=
"uploadFilemain"
:show-file-list=
"false"
:file-list=
"imgList"
list-type=
"picture-card"
:before-upload=
"beforeUpload"
:http-request=
"(file, fileList) => requestImgHttps(file)"
:on-preview=
"handlePictureCardPreview"
:limit=
"limit"
:disabled=
"disabled"
:class=
"imgList.length == limit ? 'mf' : ''"
>
<!-- :disabled="optType == 'detail'" -->
<i
class=
"el-icon-plus"
></i>
</el-upload>
<span
style=
"position: relative; top: 116px; left: 10px"
>
{{ imgList.length }}
<span
v-if=
"limit != 100"
>
{{ "/" + limit }}
</span>
<span
v-if=
"showDraggable"
>
(拖拽排序)
</span></span
>
</div>
<!-- 图片预览 -->
<el-dialog
v-model:visible=
"dialogVisible"
>
<img
width=
"100%"
:src=
"dialogImageUrl"
alt=
""
/>
</el-dialog>
</div>
</template>
<
script
>
import
draggable
from
"vuedraggable"
;
export
default
{
name
:
"base-updata"
,
components
:
{
draggable
},
props
:
{
//图片列表
imgList
:
{
type
:
Array
,
default
:
()
=>
{
return
[];
},
},
//是否显示拖拽
showDraggable
:
{
type
:
Boolean
,
default
:
()
=>
{
return
false
;
},
},
//上传图片署名
imgTypeName
:
{
type
:
String
,
Request
:
true
,
},
//上传图片下标
imgTypeIdex
:
{
type
:
Number
,
Request
:
true
,
},
//图片限制
limit
:
{
type
:
Number
,
default
:
()
=>
{
return
100
;
},
},
//图片禁止
disabled
:
{
type
:
Boolean
,
default
:
()
=>
{
return
false
;
},
},
},
data
()
{
return
{
dialogVisible
:
false
,
//图片预览
};
},
created
()
{},
mounted
()
{},
methods
:
{
//图片上传验证
beforeUpload
(
file
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
this
.
changeLimt
(
file
).
then
((
res
)
=>
{
file
.
isFlag
=
res
;
if
(
file
.
isFlag
)
{
return
resolve
(
true
);
}
else
{
return
reject
(
false
);
}
});
});
},
changeLimt
(
file
)
{
const
_this
=
this
;
const
isSize
=
new
Promise
(
function
(
resolve
,
reject
)
{
const
_URL
=
window
.
URL
||
window
.
webkitURL
;
const
img
=
new
Image
();
img
.
src
=
_URL
.
createObjectURL
(
file
);
img
.
onload
=
function
()
{
let
e_width
=
img
.
width
>=
600
&&
img
.
width
<=
1200
;
let
e_height
=
img
.
height
>=
600
&&
img
.
height
<=
1200
;
if
(
file
.
type
==
"image/png"
||
file
.
type
==
"image/jpg"
||
file
.
type
==
"image/jpeg"
)
{
const
valid
=
e_width
&&
e_height
;
if
(
valid
)
{
return
resolve
();
}
else
{
return
reject
();
}
}
else
{
return
reject
();
}
};
}).
then
(
()
=>
{
return
true
;
},
()
=>
{
_this
.
$message
.
warning
({
message
:
"图片规格为jpg或png,建议形状正方形,尺寸建议800*800像素,最大支持1200*1200像素"
,
btn
:
false
,
});
return
false
;
}
);
return
isSize
;
},
//预览
handlePictureCardPreview
(
file
)
{
this
.
dialogImageUrl
=
file
.
url
;
this
.
dialogVisible
=
true
;
},
//删除
handleRemove
(
index
)
{
this
.
$emit
(
"handleRemove"
,
this
.
imgTypeName
,
index
);
},
/**
* 上传图片 请求
* @param {string} file 图片文件
* @param {string} imgTypeName 图片署名
* @param {string} imgTypeIdex 图片位置下标
* @return {Function} 抛出函数requestImgHttps
*/
requestImgHttps
(
file
)
{
this
.
$emit
(
"requestImgHttps"
,
file
,
this
.
imgTypeName
,
this
.
imgTypeIdex
);
},
},
};
</
script
>
<
style
lang=
'scss'
scoped
>
.img-sort
{
display
:
flex
;
flex-wrap
:
wrap
;
}
.mf
{
::v-deep
.el-upload--picture-card
{
display
:
none
!
important
;
}
}
</
style
>
src/views/goods/create-good-new.vue
浏览文件 @
99b93f3c
...
@@ -591,8 +591,6 @@ import { closeLoading, openLoading, signFigures } from "@/utils/utils";
...
@@ -591,8 +591,6 @@ import { closeLoading, openLoading, signFigures } from "@/utils/utils";
import
{
originForm
,
originForm1
,
originForm3
}
from
'./common/forms'
;
import
{
originForm
,
originForm1
,
originForm3
}
from
'./common/forms'
;
import
{
originRules
,
originRules1
,
originRules3
}
from
'./common/rules'
;
import
{
originRules
,
originRules1
,
originRules3
}
from
'./common/rules'
;
import
draggable
from
"vuedraggable"
;
import
draggable
from
"vuedraggable"
;
import
uploadImg
from
'./common/upload-img.vue'
;
import
imgList
from
'./common/data'
;
let
vm
=
null
;
let
vm
=
null
;
...
@@ -600,12 +598,10 @@ import imgList from './common/data';
...
@@ -600,12 +598,10 @@ import imgList from './common/data';
components
:
{
components
:
{
BreadCrumb
,
BreadCrumb
,
Cropper
,
Cropper
,
draggable
,
draggable
uploadImg
},
},
data
(){
data
(){
return
{
return
{
imgList
:
imgList
,
shoImgDialog
:
false
,
// 查看展示
shoImgDialog
:
false
,
// 查看展示
medicalCategoryList
:
[],
// 药品分类
medicalCategoryList
:
[],
// 药品分类
isShowGoodsMsg
:
false
,
isShowGoodsMsg
:
false
,
...
...
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录