Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
soss
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
hooloo
web
soss
Commits
0a28700f
Commit
0a28700f
authored
Aug 04, 2022
by
lixiaomin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
修改优惠券
parent
d86f56cc
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
26 additions
and
292 deletions
+26
-292
src/components/ImageUpload/rightIndex.vue
+0
-279
src/main.js
+0
-2
src/views/coupon/coupon/index.vue
+9
-1
src/views/machine/machineDetails/machineDetails.vue
+10
-4
src/views/machine/machineDetails/machineDetailsCom.vue
+1
-1
src/views/system/base/components/leftImg.vue
+2
-1
src/views/system/base/components/right.vue
+4
-4
No files found.
src/components/ImageUpload/rightIndex.vue
deleted
100644 → 0
View file @
d86f56cc
<
template
>
<div
class=
"component-upload-image"
>
<div
style=
"display: flex;"
>
<div
>
<el-upload
multiple
:action=
"uploadImgUrl"
list-type=
"picture-card"
:on-success=
"handleUploadSuccess"
:before-upload=
"handleBeforeUpload"
:limit=
"limit"
:on-error=
"handleUploadError"
:on-exceed=
"handleExceed"
name=
"file"
:on-remove=
"handleRemove"
:show-file-list=
"true"
:headers=
"headers"
:file-list=
"fileList"
:on-preview=
"handlePictureCardPreview"
:class=
"
{ hide: this.fileList.length >= this.limit }" :disabled="disabled">
<i
class=
"el-icon-plus"
></i>
</el-upload>
<div
class=
"el-upload__tip"
slot=
"tip"
v-if=
"showTip"
>
<template
v-if=
"fileSize"
>
请上传大小不超过
<b
style=
"color: #f56c6c"
>
{{
fileSize
}}
MB(只限图片)
</b>
</
template
>
<
template
v-if=
"fileType"
>
格式为
<b
style=
"color: #f56c6c"
>
{{
fileType
.
join
(
"/"
)
}}
</b>
</
template
>
的文件
</div>
</div>
<div
style=
"margin-left: 20px;"
v-show=
"videoTag"
>
<video
:src=
"videoSrc"
class=
"avatar video-avatar"
controls=
"controls"
width=
"200"
/>
</div>
</div>
<el-dialog
:visible
.
sync=
"dialogVisible"
title=
"预览"
width=
"800"
append-to-body
>
<img
:src=
"dialogImageUrl"
style=
"display: block; max-width: 100%; margin: 0 auto"
/>
</el-dialog>
</div>
</template>
<
script
>
import
{
getToken
}
from
"@/utils/auth"
;
import
store
from
'@/store'
export
default
{
props
:
{
value
:
[
String
,
Object
,
Array
],
// 图片数量限制
limit
:
{
type
:
Number
,
default
:
5
,
},
// 大小限制(MB)
fileSize
:
{
type
:
Number
,
default
:
5
,
},
// 文件类型, 例如['png', 'jpg', 'jpeg']
fileType
:
{
type
:
Array
,
default
:
()
=>
[
"png"
,
"jpg"
,
"jpeg"
,
"mp4"
],
},
// 是否显示提示
isShowTip
:
{
type
:
Boolean
,
default
:
true
,
},
// 是否显示提示
arrType
:
{
type
:
Boolean
,
default
:
false
,
},
},
data
()
{
return
{
number
:
0
,
uploadList
:
[],
dialogImageUrl
:
""
,
dialogVisible
:
false
,
hideUpload
:
false
,
// baseUrl: process.env.VUE_APP_BASE_API,
baseUrl
:
""
,
uploadImgUrl
:
process
.
env
.
VUE_APP_BASE_API
+
"/common/uploadOss"
,
// 上传的图片服务器地址
headers
:
{
Authorization
:
"Bearer "
+
getToken
(),
},
fileList
:
[],
disabled
:
true
,
videoSrc
:
""
,
videoTag
:
false
};
},
watch
:
{
value
:
{
handler
(
val
)
{
if
(
val
)
{
// 首先将值转为数组
const
list
=
Array
.
isArray
(
val
)
?
val
:
this
.
value
.
split
(
","
);
// 然后将数组转为对象数组
this
.
fileList
=
list
.
map
((
item
)
=>
{
if
(
typeof
item
===
"string"
)
{
let
suff
=
item
.
slice
(
item
.
lastIndexOf
(
"."
)
+
1
);
if
(
suff
==
"mp4"
){
this
.
videoSrc
=
item
;
this
.
videoTag
=
true
;
}
if
(
item
.
indexOf
(
this
.
baseUrl
)
===
-
1
)
{
item
=
{
name
:
this
.
baseUrl
+
item
,
url
:
this
.
baseUrl
+
item
};
}
else
{
item
=
{
name
:
item
,
url
:
item
};
}
}
return
item
;
});
}
else
{
this
.
fileList
=
[];
return
[];
}
},
deep
:
true
,
immediate
:
true
,
},
},
computed
:
{
// 是否显示提示
showTip
()
{
return
this
.
isShowTip
&&
(
this
.
fileType
||
this
.
fileSize
);
}
},
created
()
{
this
.
getDisable
();
},
methods
:
{
// 删除图片
handleRemove
(
file
,
fileList
)
{
const
findex
=
this
.
fileList
.
map
((
f
)
=>
f
.
name
).
indexOf
(
file
.
name
);
if
(
findex
>
-
1
)
{
this
.
fileList
.
splice
(
findex
,
1
);
this
.
$emit
(
"input"
,
this
.
listToString
(
this
.
fileList
));
this
.
videoSrc
=
""
;
this
.
videoTag
=
false
;
}
},
// 上传成功回调
handleUploadSuccess
(
res
)
{
let
suffix
=
res
.
slice
(
res
.
lastIndexOf
(
"."
)
+
1
)
if
(
suffix
==
"mp4"
){
this
.
videoSrc
=
res
;
this
.
videoTag
=
true
;
}
this
.
$modal
.
closeLoading
();
this
.
uploadList
.
push
({
name
:
res
,
url
:
res
});
if
(
this
.
uploadList
.
length
===
this
.
number
)
{
this
.
fileList
=
this
.
fileList
.
concat
(
this
.
uploadList
);
this
.
uploadList
=
[];
this
.
number
=
0
;
this
.
$emit
(
"callback"
,
this
.
listToString
(
this
.
fileList
));
this
.
$emit
(
"input"
,
this
.
listToString
(
this
.
fileList
));
this
.
$modal
.
closeLoading
();
}
},
// 上传前loading加载
handleBeforeUpload
(
file
)
{
let
isImg
=
false
;
let
fileExtension
=
""
;
if
(
this
.
fileType
.
length
)
{
if
(
file
.
name
.
lastIndexOf
(
"."
)
>
-
1
)
{
fileExtension
=
file
.
name
.
slice
(
file
.
name
.
lastIndexOf
(
"."
)
+
1
);
}
isImg
=
this
.
fileType
.
some
((
type
)
=>
{
if
(
file
.
type
.
indexOf
(
type
)
>
-
1
)
return
true
;
if
(
fileExtension
&&
fileExtension
.
indexOf
(
type
)
>
-
1
)
return
true
;
return
false
;
});
}
else
{
isImg
=
file
.
type
.
indexOf
(
"image"
)
>
-
1
;
}
if
(
!
isImg
)
{
this
.
$modal
.
msgError
(
`文件格式不正确, 请上传
${
this
.
fileType
.
join
(
"/"
)}
图片格式文件或者mp4视频!`
);
return
false
;
}
if
(
this
.
fileSize
)
{
if
(
fileExtension
!=
"mp4"
){
const
isLt
=
file
.
size
/
1024
/
1024
<
this
.
fileSize
;
if
(
!
isLt
)
{
this
.
$modal
.
msgError
(
`上传头像图片大小不能超过
${
this
.
fileSize
}
MB!`
);
return
false
;
}
}
}
this
.
$modal
.
loading
(
"正在上传图片或mp4视频,请稍候..."
);
this
.
number
++
;
},
// 文件个数超出
handleExceed
()
{
this
.
$modal
.
msgError
(
`上传文件数量不能超过
${
this
.
limit
}
个!`
);
},
// 上传失败
handleUploadError
()
{
this
.
$modal
.
msgError
(
"上传图片或mp4视频失败,请重试"
);
this
.
$modal
.
closeLoading
();
},
// 预览
handlePictureCardPreview
(
file
)
{
let
suffix
=
file
.
url
.
slice
(
file
.
url
.
lastIndexOf
(
"."
)
+
1
)
if
(
suffix
==
"mp4"
){
this
.
dialogVisible
=
false
;
return
;
}
this
.
dialogImageUrl
=
file
.
url
;
this
.
dialogVisible
=
true
;
},
// 对象转成指定字符串分隔
listToString
(
list
,
separator
)
{
let
strs
=
[];
separator
=
separator
||
""
;
for
(
let
i
in
list
)
{
strs
.
push
(
list
[
i
].
url
.
replace
(
this
.
baseUrl
,
""
)
+
separator
);
}
const
size
=
strs
.
length
;
if
(
size
==
0
)
{
return
""
;
}
if
(
this
.
arrType
)
{
return
strs
;
}
if
(
size
==
1
)
{
return
strs
[
0
];
}
return
strs
;
},
getDisable
(){
const
permissions
=
store
.
getters
&&
store
.
getters
.
permissions
;
if
(
permissions
.
length
>
0
){
if
(
permissions
[
0
]
==
"*:*:*"
){
this
.
disabled
=
false
return
;
}
for
(
let
i
=
0
;
i
<
permissions
.
length
;
i
++
){
if
(
permissions
[
i
]
==
"system:config:edit"
){
this
.
disabled
=
false
return
;
}
}
}
}
},
};
</
script
>
<
style
scoped
lang=
"scss"
>
//
.el-upload--picture-card
控制加号部分
::v-deep
.hide
.el-upload--picture-card
{
display
:
none
;
}
::v-deep
.el-upload-list--picture-card
.el-upload-list__item
{
width
:
100px
;
height
:
130px
;
}
//
去掉动画效果
::v-deep
.el-list-enter-active
,
::v-deep
.el-list-leave-active
{
transition
:
all
0s
;
}
::v-deep
.el-list-enter
,
.el-list-leave-active
{
opacity
:
0
;
transform
:
translateY
(
0
);
}
::v-deep
.el-upload--picture-card
{
width
:
100px
;
height
:
100px
;
line-height
:
110px
;
}
.el-upload-list__item-delete
{
display
:
none
!important
;
}
</
style
>
src/main.js
View file @
0a28700f
...
@@ -36,7 +36,6 @@ import Editor from "@/components/Editor";
...
@@ -36,7 +36,6 @@ import Editor from "@/components/Editor";
import
FileUpload
from
"@/components/FileUpload"
;
import
FileUpload
from
"@/components/FileUpload"
;
// 图片上传组件
// 图片上传组件
import
ImageUpload
from
"@/components/ImageUpload/index"
;
import
ImageUpload
from
"@/components/ImageUpload/index"
;
import
ImageRightUpload
from
"@/components/ImageUpload/rightIndex"
;
// 图片预览组件
// 图片预览组件
import
ImagePreview
from
"@/components/ImagePreview"
;
import
ImagePreview
from
"@/components/ImagePreview"
;
// 字典标签组件
// 字典标签组件
...
@@ -67,7 +66,6 @@ Vue.component("RightToolbar", RightToolbar);
...
@@ -67,7 +66,6 @@ Vue.component("RightToolbar", RightToolbar);
Vue
.
component
(
"Editor"
,
Editor
);
Vue
.
component
(
"Editor"
,
Editor
);
Vue
.
component
(
"FileUpload"
,
FileUpload
);
Vue
.
component
(
"FileUpload"
,
FileUpload
);
Vue
.
component
(
"ImageUpload"
,
ImageUpload
);
Vue
.
component
(
"ImageUpload"
,
ImageUpload
);
Vue
.
component
(
"ImageRightUpload"
,
ImageRightUpload
);
Vue
.
component
(
"ImagePreview"
,
ImagePreview
);
Vue
.
component
(
"ImagePreview"
,
ImagePreview
);
Vue
.
use
(
directive
);
Vue
.
use
(
directive
);
...
...
src/views/coupon/coupon/index.vue
View file @
0a28700f
...
@@ -124,7 +124,7 @@
...
@@ -124,7 +124,7 @@
</el-col>
</el-col>
<el-col
:span=
"7"
>
<el-col
:span=
"7"
>
<el-form-item
label=
"User可领次数"
label-width=
"110px"
prop=
"userNumber"
style=
"margin-left: 15px;"
>
<el-form-item
label=
"User可领次数"
label-width=
"110px"
prop=
"userNumber"
style=
"margin-left: 15px;"
>
<el-radio-group
v-model=
"form.userNumber"
>
<el-radio-group
v-model=
"form.userNumber"
@
change=
"changeUserNumber"
>
<el-radio
:label=
"1"
>
<el-radio
:label=
"1"
>
<span>
每
</span><el-input
class=
"inputCalss"
v-model=
"form.daysLimit"
:disabled=
"form.userNumber=='2'"
/><span
class=
"spanClass"
>
天
</span>
<span>
每
</span><el-input
class=
"inputCalss"
v-model=
"form.daysLimit"
:disabled=
"form.userNumber=='2'"
/><span
class=
"spanClass"
>
天
</span>
<el-input
class=
"inputCalss"
v-model=
"form.userLimit"
:disabled=
"form.userNumber=='2'"
/><span
class=
"spanClass"
>
次
</span>
<el-input
class=
"inputCalss"
v-model=
"form.userLimit"
:disabled=
"form.userNumber=='2'"
/><span
class=
"spanClass"
>
次
</span>
...
@@ -311,6 +311,12 @@ export default {
...
@@ -311,6 +311,12 @@ export default {
this
.
getCityList
();
this
.
getCityList
();
},
},
methods
:
{
methods
:
{
changeUserNumber
(
val
){
if
(
val
==
2
){
this
.
form
.
userLimit
=
null
;
this
.
form
.
daysLimit
=
null
;
}
},
formateTime
(
val
){
formateTime
(
val
){
let
index
=
val
.
lastIndexOf
(
":"
);
let
index
=
val
.
lastIndexOf
(
":"
);
val
=
val
.
substring
(
0
,
index
);
val
=
val
.
substring
(
0
,
index
);
...
@@ -758,6 +764,8 @@ export default {
...
@@ -758,6 +764,8 @@ export default {
}
}
if
(
this
.
form
.
week
.
length
==
0
){
if
(
this
.
form
.
week
.
length
==
0
){
this
.
form
.
weekLimit
=
[
0
]
this
.
form
.
weekLimit
=
[
0
]
}
else
{
this
.
form
.
weekLimit
=
this
.
form
.
week
;
}
}
console
.
log
(
"this.form"
,
this
.
form
);
console
.
log
(
"this.form"
,
this
.
form
);
if
(
this
.
form
.
id
!=
null
)
{
if
(
this
.
form
.
id
!=
null
)
{
...
...
src/views/machine/machineDetails/machineDetails.vue
View file @
0a28700f
...
@@ -44,8 +44,15 @@
...
@@ -44,8 +44,15 @@
<a
@
click=
"handleOtherDialog(scope.row)"
style=
"color: blue"
>
查看
</a>
<a
@
click=
"handleOtherDialog(scope.row)"
style=
"color: blue"
>
查看
</a>
</
template
>
</
template
>
</el-table-column>
</el-table-column>
<el-table-column
label=
"操作"
align=
"center"
>
<el-table-column
label=
"操作"
align=
"center"
>
<el-button
size=
"mini"
type=
"text"
@
click=
"handleBinding()"
>
店铺绑定
</el-button>
<
template
slot-scope=
"scope"
>
<el-button
v-show=
"scope.row.state == 4 || scope.row.state == 5"
size=
"mini"
type=
"text"
@
click=
"handleBinding()"
>
下线
</el-button>
<el-button
v-show=
"scope.row.state == 6 || scope.row.state == 7"
size=
"mini"
type=
"text"
@
click=
"handleBinding()"
>
返厂
</el-button>
<el-button
v-show=
"scope.row.state == 6"
size=
"mini"
type=
"text"
@
click=
"handleBinding()"
>
运维
</el-button>
<el-button
v-show=
"scope.row.state == 6 || scope.row.state == 7"
size=
"mini"
type=
"text"
@
click=
"handleBinding()"
>
上线
</el-button>
<el-button
v-show=
"scope.row.state == 2"
size=
"mini"
type=
"text"
@
click=
"handleBinding()"
>
店铺绑定
</el-button>
<el-button
v-show=
"scope.row.state == 8"
size=
"mini"
type=
"text"
@
click=
"handleBinding()"
>
重置
</el-button>
</
template
>
</el-table-column>
</el-table-column>
</el-table>
</el-table>
<pagination
v-show=
"total > 0"
:total=
"total"
:page
.
sync=
"queryParams.page"
:limit
.
sync=
"queryParams.limit"
<pagination
v-show=
"total > 0"
:total=
"total"
:page
.
sync=
"queryParams.page"
:limit
.
sync=
"queryParams.limit"
...
@@ -62,8 +69,7 @@
...
@@ -62,8 +69,7 @@
</template>
</template>
<
script
>
<
script
>
import
{
getMachineList
,
updateState
import
{
getMachineList
,
updateState
}
from
"@/api/machine/machineDetails"
;
}
from
"@/api/machine/machineDetails"
;
import
MachineDetailsLog
from
'./machineDetailsLog.vue'
;
import
MachineDetailsLog
from
'./machineDetailsLog.vue'
;
import
MachineDetailsCom
from
'./machineDetailsCom.vue'
;
import
MachineDetailsCom
from
'./machineDetailsCom.vue'
;
import
MachineDetailsOther
from
'./machineDetailsOther.vue'
;
import
MachineDetailsOther
from
'./machineDetailsOther.vue'
;
...
...
src/views/machine/machineDetails/machineDetailsCom.vue
View file @
0a28700f
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
<el-table-column
label=
"组件名称"
align=
"center"
prop=
"component_name"
/>
<el-table-column
label=
"组件名称"
align=
"center"
prop=
"component_name"
/>
<el-table-column
label=
"组件编码"
align=
"center"
prop=
"ros_code"
/>
<el-table-column
label=
"组件编码"
align=
"center"
prop=
"ros_code"
/>
<el-table-column
label=
"备注说明"
align=
"center"
prop=
""
/>
<el-table-column
label=
"备注说明"
align=
"center"
prop=
""
/>
<el-table-column
label=
"组件状态"
align=
"center"
prop=
"state"
/>
<el-table-column
label=
"组件状态"
align=
"center"
prop=
"state
_desc
"
/>
<el-table-column
label=
"原料"
align=
"center"
>
<el-table-column
label=
"原料"
align=
"center"
>
<template
slot-scope=
"scope"
>
<template
slot-scope=
"scope"
>
<a
@
click=
"handleMaterialDialog(scope.row)"
style=
"color: blue"
>
添加原料
</a>
<a
@
click=
"handleMaterialDialog(scope.row)"
style=
"color: blue"
>
添加原料
</a>
...
...
src/views/system/base/components/leftImg.vue
View file @
0a28700f
<
template
>
<
template
>
<div
>
<div
>
<ImageUpload
@
callback=
"submit"
v-model=
"value"
:limit=
"
1
"
/>
<ImageUpload
@
callback=
"submit"
v-model=
"value"
:limit=
"
2
"
/>
</div>
</div>
</
template
>
</
template
>
...
@@ -24,6 +24,7 @@ export default {
...
@@ -24,6 +24,7 @@ export default {
},
},
methods
:
{
methods
:
{
submit
()
{
submit
()
{
console
.
log
(
"this.value"
,
this
.
value
)
this
.
$nextTick
(()
=>
{
this
.
$nextTick
(()
=>
{
updateConfig
({
...
this
.
initValue
,
configValue
:
this
.
value
}).
then
(
res
=>
{
updateConfig
({
...
this
.
initValue
,
configValue
:
this
.
value
}).
then
(
res
=>
{
this
.
$modal
.
msgSuccess
(
"修改成功"
);
this
.
$modal
.
msgSuccess
(
"修改成功"
);
...
...
src/views/system/base/components/right.vue
View file @
0a28700f
...
@@ -2,16 +2,16 @@
...
@@ -2,16 +2,16 @@
<div>
<div>
<el-form
ref=
"form"
label-width=
"80px"
>
<el-form
ref=
"form"
label-width=
"80px"
>
<el-form-item
label=
"停业"
>
<el-form-item
label=
"停业"
>
<Image
Right
Upload
@
callback=
"submit"
v-model=
"list['closeDown']"
:limit=
"1"
/>
<ImageUpload
@
callback=
"submit"
v-model=
"list['closeDown']"
:limit=
"1"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"制作中"
>
<el-form-item
label=
"制作中"
>
<Image
Right
Upload
@
callback=
"submit"
v-model=
"list['inProduction']"
:limit=
"1"
/>
<ImageUpload
@
callback=
"submit"
v-model=
"list['inProduction']"
:limit=
"1"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"有待取单"
>
<el-form-item
label=
"有待取单"
>
<Image
Right
Upload
@
callback=
"submit"
v-model=
"list['thereAOrder']"
:limit=
"1"
/>
<ImageUpload
@
callback=
"submit"
v-model=
"list['thereAOrder']"
:limit=
"1"
/>
</el-form-item>
</el-form-item>
<el-form-item
label=
"无待取单"
>
<el-form-item
label=
"无待取单"
>
<Image
Right
Upload
@
callback=
"submit"
v-model=
"list['noOrder']"
:limit=
"1"
/>
<ImageUpload
@
callback=
"submit"
v-model=
"list['noOrder']"
:limit=
"1"
/>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
</div>
</div>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment