Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
confucius
Project
Project
Details
Activity
Releases
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
罗超
confucius
Commits
9e9ab35e
Commit
9e9ab35e
authored
Aug 09, 2021
by
罗超
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab.oytour.com/luochao/confucius
parents
ebfc240f
3a52b372
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
21 changed files
with
2303 additions
and
194 deletions
+2303
-194
wechat.js
src/api/system/wechat.js
+55
-21
courserefund-form.vue
src/components/course/courserefund-form.vue
+3
-3
allmaterial.vue
src/components/enterprise/material/allmaterial.vue
+190
-0
audiomaterial.vue
src/components/enterprise/material/audiomaterial.vue
+266
-0
filematerial.vue
src/components/enterprise/material/filematerial.vue
+260
-0
imgmaterial.vue
src/components/enterprise/material/imgmaterial.vue
+222
-0
imgtextmaterial.vue
src/components/enterprise/material/imgtextmaterial.vue
+228
-0
textmaterial.vue
src/components/enterprise/material/textmaterial.vue
+206
-0
videomaterial.vue
src/components/enterprise/material/videomaterial.vue
+244
-0
editOrder-form.vue
src/components/sale/editOrder-form.vue
+71
-54
courseRefund.vue
src/pages/courseRefund.vue
+27
-22
courseRefundH5.vue
src/pages/courseRefundH5.vue
+68
-56
addWelcome.vue
src/pages/enterprise/addWelcome.vue
+9
-1
groupingManage.vue
src/pages/enterprise/groupingManage.vue
+218
-0
materialManage.vue
src/pages/enterprise/materialManage.vue
+187
-0
XaddFinancialProcess.vue
src/pages/financial/XaddFinancialProcess.vue
+0
-1
addFinancialProcess.vue
src/pages/financial/addFinancialProcess.vue
+1
-17
FinancialDocumentsDetail.vue
...s/financial/financalDocument/FinancialDocumentsDetail.vue
+12
-1
japaneseTrain.vue
src/pages/sale/japaneseTrain.vue
+21
-18
billquery.vue
src/pages/user/billquery.vue
+3
-0
routes.js
src/router/routes.js
+12
-0
No files found.
src/api/system/wechat.js
View file @
9e9ab35e
...
@@ -16,33 +16,67 @@ export function getWeChatConfigInfo(data) {
...
@@ -16,33 +16,67 @@ export function getWeChatConfigInfo(data) {
* 获取网站导航分页
* 获取网站导航分页
*
*
*/
*/
export
function
setWeChatConfig
(
data
)
{
export
function
setWeChatConfig
(
data
)
{
return
request
({
return
request
({
url
:
'/QYWeChat/SetWeChatConfig'
,
url
:
'/QYWeChat/SetWeChatConfig'
,
method
:
'post'
,
method
:
'post'
,
data
data
})
})
}
}
/**
/**
* 初始化 同步部门至企业微信
* 初始化 同步部门至企业微信
*
*
*/
*/
export
function
setSyncEduDepartment
(
data
)
{
export
function
setSyncEduDepartment
(
data
)
{
return
request
({
return
request
({
url
:
'/QYWeChat/SetSyncEduDepartment'
,
url
:
'/QYWeChat/SetSyncEduDepartment'
,
method
:
'post'
,
method
:
'post'
,
data
data
})
})
}
}
/**
/**
* 初始化 同步员工至企业微信
* 初始化 同步员工至企业微信
*
*
*/
*/
export
function
SetSynvEduEmployee
(
data
)
{
export
function
SetSynvEduEmployee
(
data
)
{
return
request
({
return
request
({
url
:
'/QYWeChat/SetSynvEduEmployee'
,
url
:
'/QYWeChat/SetSynvEduEmployee'
,
method
:
'post'
,
method
:
'post'
,
data
data
})
})
}
}
\ No newline at end of file
/**
* 分组管理 素材分组分页列表
*
*/
export
function
getWeChatMediumGroupPageList
(
data
)
{
return
request
({
url
:
'/QYWeChat/GetWeChatMediumGroupPageList'
,
method
:
'post'
,
data
})
}
/**
* 分组管理 新增修改分组
*
*/
export
function
setWeChatMediumGroup
(
data
)
{
return
request
({
url
:
'/QYWeChat/SetWeChatMediumGroup'
,
method
:
'post'
,
data
})
}
/**
* 分组管理 新增修改分组
*
*/
export
function
delWeChatMediumGroup
(
data
)
{
return
request
({
url
:
'/QYWeChat/DelWeChatMediumGroup'
,
method
:
'post'
,
data
})
}
\ No newline at end of file
src/components/course/courserefund-form.vue
View file @
9e9ab35e
...
@@ -24,7 +24,7 @@
...
@@ -24,7 +24,7 @@
<div>
您的退款协议《
{{
ProtocolNum
}}
》
</div>
<div>
您的退款协议《
{{
ProtocolNum
}}
》
</div>
<div>
请长按识别二维码,查阅并签字
</div>
<div>
请长按识别二维码,查阅并签字
</div>
</div>
</div>
<q-table
:pagination=
"pageMsg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-column-table"
<q-table
:pagination=
"pageMsg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-column-table
sticky-right-column-table
"
separator=
"none"
title=
"退课协议"
:data=
"dataList"
:columns=
"columns"
row-key=
"name"
>
separator=
"none"
title=
"退课协议"
:data=
"dataList"
:columns=
"columns"
row-key=
"name"
>
<template
v-slot:top=
"props"
>
<template
v-slot:top=
"props"
>
<div
class=
"col-2 q-table__title"
>
退课协议
</div>
<div
class=
"col-2 q-table__title"
>
退课协议
</div>
...
@@ -70,7 +70,7 @@
...
@@ -70,7 +70,7 @@
<
template
v-slot:bottom
>
<
template
v-slot:bottom
>
</
template
>
</
template
>
<
template
v-slot:body-cell-optioned=
"props"
>
<
template
v-slot:body-cell-optioned=
"props"
>
<q-td
:props=
"props"
>
<q-td
:props=
"props"
style=
"width:100px;"
>
<div>
<div>
<el-tooltip
v-if=
"AuthorityObj.isShowCopyLink"
content=
"复制链接发送给客人签字"
placement=
"top"
effect=
"light"
>
<el-tooltip
v-if=
"AuthorityObj.isShowCopyLink"
content=
"复制链接发送给客人签字"
placement=
"top"
effect=
"light"
>
<q-btn
flat
v-if=
" props.row.AuditStatus == 2 &&props.row.IsSure==0"
size=
"xs"
<q-btn
flat
v-if=
" props.row.AuditStatus == 2 &&props.row.IsSure==0"
size=
"xs"
...
@@ -182,7 +182,7 @@
...
@@ -182,7 +182,7 @@
],
],
//权限显示对象
//权限显示对象
AuthorityObj
:
{
AuthorityObj
:
{
isShowCopyLink
:
tru
e
,
//是否显示复制链接
isShowCopyLink
:
fals
e
,
//是否显示复制链接
isShowSure
:
false
,
//是否显示确认按钮
isShowSure
:
false
,
//是否显示确认按钮
},
},
isShowBillForm
:
false
,
//是否显示退课详情
isShowBillForm
:
false
,
//是否显示退课详情
...
...
src/components/enterprise/material/allmaterial.vue
0 → 100644
View file @
9e9ab35e
<
template
>
<div
class=
"allmaterial"
style=
"padding: 0;margin: 0;"
>
<!--
<div
class=
"page-search row items-center"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
</div>
</div>
-->
<div
class=
"page-content"
>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-column-table"
separator=
"none"
title=
""
:data=
"data"
:columns=
"columns"
row-key=
"name"
>
<!--
<template
v-slot:top=
"props"
>
<div
class=
"col-2 q-table__title"
></div>
<q-space
/>
<q-btn
color=
"accent"
style=
"float:right;margin-right:0;"
size=
"sm"
class=
"q-mr-md"
icon=
"add"
label=
"新增欢迎语"
@
click=
"goadd()"
></q-btn>
</
template
>
-->
<
template
v-slot:body-cell-Type=
"props"
>
<q-td
:props=
"props"
>
<span
v-if=
"props.row.Type==1"
>
图文
</span>
<span
v-if=
"props.row.Type==2"
>
图片
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-Content=
"props"
>
<q-td
:props=
"props"
>
<q-img
:src=
"props.row.Content"
style=
"width: 80px;height: 80px;border-radius: 6px;display: flex;"
>
</q-img>
</q-td>
</
template
>
<
template
v-slot:body-cell-optioned=
"props"
>
<q-td
:props=
"props"
>
<q-btn
flat
size=
"xs"
icon=
"edit"
style=
"font-weight:400;color: #3FC4FF"
class=
"q-mr-xs"
label=
"编辑"
@
click=
"goDetailed(props.row,'0')"
/>
<q-btn
flat
size=
"xs"
icon=
"delete"
style=
"font-weight:400;color: #3FC4FF"
class=
"q-mr-xs"
label=
"删除"
@
click=
"goDetailed(props.row,'0')"
/>
</q-td>
</
template
>
<
template
v-slot:bottom
>
<q-pagination
class=
"full-width justify-end"
v-model=
"msg.pageIndex"
color=
"primary"
:max=
"pageCount"
:input=
"true"
@
input=
"changePage"
/>
</
template
>
</q-table>
</div>
</div>
</template>
<
script
>
export
default
{
name
:
"allmaterial"
,
data
()
{
return
{
loading
:
false
,
ISsystem
:
false
,
data
:
[{
Type
:
1
,
title
:
'阿萨欢声雷动.png'
,
Content
:
'http://imgfile.oytour.com/EduSystem/Test/Upload/course/202107070330161360000000064.jpg'
,
applymember
:
'通用'
,
source
:
'本地上传'
,
CreatorName
:
'小张'
,
UpdateTime
:
'2021-08-04 15:48'
}],
pageCount
:
0
,
msg
:
{
pageIndex
:
1
,
pageSize
:
10
,
rowsPerPage
:
10
,
Month
:
''
,
TeacherId
:
0
,
State
:
0
,
},
//公告column
columns
:
[{
name
:
'title'
,
field
:
'title'
,
label
:
'标题'
,
align
:
'left'
},
{
name
:
'Content'
,
field
:
'Content'
,
label
:
'内容'
,
align
:
'left'
,
},
{
name
:
'CreatorName'
,
field
:
'CreatorName'
,
label
:
'上传者'
,
align
:
'left'
},
{
name
:
'source'
,
field
:
'source'
,
label
:
'素材来源'
,
align
:
'left'
},
{
name
:
'Type'
,
field
:
'Type'
,
label
:
'类型'
,
align
:
'left'
},
{
name
:
'UpdateTime'
,
field
:
'UpdateTime'
,
label
:
'添加时间'
,
align
:
'left'
},
{
name
:
'optioned'
,
label
:
'操作'
,
field
:
'DeptId'
}
],
}
},
created
()
{
console
.
log
(
'进去所有页面'
)
},
methods
:
{
changePage
(
e
){
},
goadd
(){
this
.
$router
.
push
({
path
:
'/enterprise/addWelcome'
,
});
}
}
}
</
script
>
<
style
>
.allmaterial
.Sysuser_Date
.el-input--prefix
.el-input__inner
{
background-color
:
red
;
border
:
0
;
}
.allmaterial
.state-item
{
padding
:
2px
5px
;
border-radius
:
3px
;
text-align
:
center
;
font-size
:
10px
;
}
.allmaterial
.frIdlist
{
padding
:
3px
10px
;
border-radius
:
3px
;
background
:
#EEEEEF
;
align-items
:
center
;
justify-content
:
center
;
margin-right
:
5px
;
margin-bottom
:
5px
;
cursor
:
pointer
;
}
.class-popover
.q-pr-lg
{
padding-right
:
0
;
margin-top
:
20px
;
}
.allmaterial
.el-date-editor.el-input
{
width
:
100%
;
}
.allmaterial
.el-date-editor.el-input
input
{
background-color
:
transparent
!important
;
}
.allmaterial
.el-range-editor
.el-range-input
{
background
:
none
;
}
.Sysuser_Date
.el-input__inner
{
background
:
transparent
!important
;
border
:
0
!important
;
}
.allmaterial
.el-drawer.rtl
{
overflow
:
inherit
;
}
</
style
>
\ No newline at end of file
src/components/enterprise/material/audiomaterial.vue
0 → 100644
View file @
9e9ab35e
This diff is collapsed.
Click to expand it.
src/components/enterprise/material/filematerial.vue
0 → 100644
View file @
9e9ab35e
<
template
>
<div
class=
"filematerial"
style=
"padding: 0;margin: 0;"
>
<div
class=
"page-content"
>
<div>
<q-btn
color=
"accent"
style=
"float:right;"
size=
"sm"
class=
"q-mr-md"
icon=
"add"
label=
"上传视频"
@
click=
"goadd()"
></q-btn>
</div>
<div
style=
"width: 100%;display: flex;align-items: center;flex-wrap: wrap;padding: 10px 20px;"
>
<q-card
class=
"imgcard"
v-for=
"(x,y) in data"
:key=
'y'
:style=
"
{border:x.check==true?'2px solid #91d5ff':'2px solid #FFF'}"
@click="data[y].check = !data[y].check">
<q-card-section>
<div
style=
"display:flex;align-items: center;justify-content: space-between;margin-bottom: 5px;"
>
<span>
{{
x
.
UpdateTime
}}
</span>
<!--
<q-btn
class=
"q-mr-md"
label=
"编辑"
size=
"xs"
color=
"accent"
style=
"margin-right: 0;"
@
click
.
stop=
"goedit(x)"
/>
-->
<i
class=
"el-icon-edit-outline"
style=
"font-size: 20px;color: #1890ff;"
@
click
.
stop=
"goedit(x)"
></i>
</div>
<div
class=
"iconfontfile "
v-if=
"x.Content!=''"
:class=
"x.Content.substring(x.Content.lastIndexOf('.')+1,x.Content.length).toUpperCase()=='PDF'? 'icon-pdf' : 'icon-excel'"
@
click=
"showUpLoadFile()"
>
</div>
<div
class=
"onetext"
style=
"margin-top: 5px;"
>
上传者:
{{
x
.
CreatorName
}}
</div>
<div
class=
"onetext"
style=
"margin-top: 5px;"
>
来源:
{{
x
.
source
}}
</div>
</q-card-section>
</q-card>
</div>
</div>
<q-dialog
v-model=
"Isadd"
persistent
>
<q-card
style=
"width: 520px; max-width: 80vw;"
>
<q-card-section>
<div
class=
"text-h6"
>
新建图文
</div>
</q-card-section>
<q-separator
/>
<q-card-section
class=
"q-pt-none"
style=
"margin-top: 15px;padding: 20px;"
>
<q-select
filled
stack-label
option-value=
"ID"
option-label=
"Name"
v-model=
"addMsg.classifyId"
ref=
"ID"
:options=
"classifyList"
label=
"分组"
:dense=
"false"
emit-value
map-options
/>
<div
style=
"margin-top: 15px;"
>
<div
style=
"width:70px"
>
上传文件:
</div>
<div
class=
"iconfontfile "
v-if=
"addMsg.Url!=''"
:class=
"addMsg.Url.substring(addMsg.Url.lastIndexOf('.')+1,addMsg.Url.length).toUpperCase()=='PDF'? 'icon-pdf' : 'icon-excel'"
@
click=
"showUpLoadFile()"
>
</div>
<div
style=
"margin-top: 15px;"
>
<el-upload
class=
"avatar-uploader "
action=
""
:before-upload=
"uploadFile"
:show-file-list=
"false"
>
<q-btn
color=
"accent"
size=
"sm"
class=
"q-mr-md"
icon=
"cloud_upload"
label=
"上传"
></q-btn>
</el-upload>
<div
style=
"margin-top: 20px;"
>
(上传文件大小不超过20MB,支持DOC、DOCX、XLS、XLSX、CSV、PPT、PPTX、TXT、PDF及Xmind格式。)
</div>
</div>
</div>
</q-card-section>
<q-separator
/>
<q-card-actions
align=
"right"
class=
"bg-white"
>
<q-btn
class=
"q-mr-md"
label=
"取消"
@
click=
"Isadd = false"
/>
<q-btn
color=
"accent"
class=
"q-mr-md"
label=
"添加"
@
click=
"submit()"
/>
</q-card-actions>
</q-card>
</q-dialog>
</div>
</
template
>
<
script
>
import
{
UploadSelfFile
}
from
"../../../api/common/common"
;
//上传图片
const
addobj
=
{
Id
:
0
,
classifyId
:
''
,
Url
:
''
,
}
export
default
{
name
:
"filematerial"
,
data
()
{
return
{
loading
:
false
,
Isadd
:
false
,
data
:
[{
Type
:
1
,
title
:
'测试文本.png'
,
Content
:
'http://192.168.20.214:8130/EduSystem/Test/Upload/course/202108060532494570000000006.docx'
,
source
:
'本地上传'
,
CreatorName
:
'小张'
,
check
:
false
,
UpdateTime
:
'2021-08-04 15:48'
},
{
Type
:
1
,
title
:
'测试文本.png'
,
Content
:
'http://192.168.20.214:8130/EduSystem/Test/Upload/course/202108060532494570000000006.docx'
,
source
:
'本地上传'
,
CreatorName
:
'小张'
,
check
:
false
,
UpdateTime
:
'2021-08-04 15:48'
},
{
Type
:
1
,
title
:
'测试文本.png'
,
Content
:
'http://192.168.20.214:8130/EduSystem/Test/Upload/course/202108060532494570000000006.docx'
,
source
:
'本地上传'
,
CreatorName
:
'小张'
,
check
:
false
,
UpdateTime
:
'2021-08-04 15:48'
},],
pageCount
:
0
,
msg
:
{
pageIndex
:
1
,
pageSize
:
18
,
},
classifyList
:
[
{
Name
:
'活动'
,
ID
:
1
,
},
{
Name
:
'产品'
,
ID
:
2
,
},
{
Name
:
'校园'
,
ID
:
3
,
},
],
addMsg
:
Object
.
assign
({},
addobj
),
audioDuration
:
0
,
}
},
created
()
{
console
.
log
(
'进去所有页面'
)
},
methods
:
{
changePage
(
e
)
{
},
goadd
()
{
this
.
Isadd
=
true
;
this
.
addMsg
=
Object
.
assign
({},
addobj
)
},
goedit
(
x
)
{
this
.
Isadd
=
true
;
this
.
addMsg
.
Url
=
x
.
Content
},
uploadFile
(
file
)
{
// 文件类型进行判断
const
isLt20M
=
file
.
size
/
1024
/
1024
<
20
;
let
ft
=
file
.
name
.
substring
(
file
.
name
.
lastIndexOf
(
'.'
)
+
1
,
file
.
name
.
length
).
toUpperCase
();
let
stringArr
=
'DOCX|DOC|XLSX|XLS|PPT|PPTX|PDF'
if
(
stringArr
.
indexOf
(
ft
)
==
'-1'
)
{
this
.
$q
.
notify
({
type
:
'negative'
,
message
:
`请上传正确的文件格式!`
,
position
:
'top'
})
return
false
;
}
if
(
!
isLt20M
)
{
this
.
$q
.
notify
({
type
:
'negative'
,
message
:
`文件大小不能超过20MB哦!`
,
position
:
'top'
})
return
false
;
}
UploadSelfFile
(
"course"
,
file
,
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
addMsg
.
Url
=
res
.
FileUrl
;
}
});
},
submit
()
{
//提交
}
}
}
</
script
>
<
style
>
.filematerial
.Sysuser_Date
.el-input--prefix
.el-input__inner
{
background-color
:
red
;
border
:
0
;
}
.filematerial
.state-item
{
padding
:
2px
5px
;
border-radius
:
3px
;
text-align
:
center
;
font-size
:
10px
;
}
.filematerial
.frIdlist
{
padding
:
3px
10px
;
border-radius
:
3px
;
background
:
#EEEEEF
;
align-items
:
center
;
justify-content
:
center
;
margin-right
:
5px
;
margin-bottom
:
5px
;
cursor
:
pointer
;
}
.class-popover
.q-pr-lg
{
padding-right
:
0
;
margin-top
:
20px
;
}
.filematerial
.el-date-editor.el-input
{
width
:
100%
;
}
.filematerial
.el-date-editor.el-input
input
{
background-color
:
transparent
!important
;
}
.filematerial
.el-range-editor
.el-range-input
{
background
:
none
;
}
.Sysuser_Date
.el-input__inner
{
background
:
transparent
!important
;
border
:
0
!important
;
}
.filematerial
.el-drawer.rtl
{
overflow
:
inherit
;
}
.filematerial
.imgcard
{
width
:
300px
;
margin
:
0
15px
15px
0
}
.filematerial
.imgstyle
{
width
:
100%
;
height
:
45px
;
border-radius
:
0
;
}
.filematerial
.onetext
{
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
width
:
260px
;
}
.iconfontfile
{
display
:
inline-block
;
width
:
32px
;
height
:
32px
;
border-radius
:
50%
;
color
:
#e95252
!important
;
background-color
:
rgba
(
251
,
251
,
251
,
0.9
);
}
.icon-excel
,
.icon-pdf
{
text-align
:
center
;
font-size
:
38px
;
color
:
green
;
}
</
style
>
\ No newline at end of file
src/components/enterprise/material/imgmaterial.vue
0 → 100644
View file @
9e9ab35e
<
template
>
<div
class=
"imgmaterial"
style=
"padding: 0;margin: 0;"
>
<div
class=
"page-content"
>
<div>
<q-btn
color=
"accent"
style=
"float:right;"
size=
"sm"
class=
"q-mr-md"
icon=
"cloud_upload"
label=
"上传图片"
@
click=
"goadd()"
></q-btn>
</div>
<div
style=
"width: 100%;display: flex;align-items: center;flex-wrap: wrap;padding: 10px 20px;"
>
<q-card
class=
"imgcard"
v-for=
"(x,y) in data"
:key=
'y'
:style=
"
{border:x.check==true?'2px solid #91d5ff':'2px solid #FFF'}"
@click="data[y].check = !data[y].check">
<q-card-section>
<div
style=
"display:flex;align-items: center;justify-content: space-between;margin-bottom: 5px;"
>
<span>
{{
x
.
UpdateTime
}}
</span>
<!--
<q-btn
class=
"q-mr-md"
label=
"编辑"
size=
"xs"
color=
"accent"
style=
"margin-right: 0;"
@
click
.
stop=
"goedit(x)"
/>
-->
<i
class=
"el-icon-edit-outline"
style=
"font-size: 20px;color: #1890ff;"
@
click
.
stop=
"goedit(x)"
></i>
</div>
<q-img
:src=
"x.Content"
class=
"imgstyle"
>
<div
class=
"absolute-bottom text-subtitle1 text-center onetext"
style=
"padding: 0;padding: 0 5px;font-size: 12px;"
>
{{
x
.
title
}}
</div>
</q-img>
<div
class=
"onetext"
style=
"margin-top: 5px;"
>
上传者:
{{
x
.
CreatorName
}}
</div>
<div
class=
"onetext"
style=
"margin-top: 5px;"
>
来源:
{{
x
.
source
}}
</div>
</q-card-section>
</q-card>
</div>
</div>
<q-dialog
v-model=
"Isadd"
persistent
>
<q-card
style=
"width: 520px; max-width: 80vw;"
>
<q-card-section>
<div
class=
"text-h6"
>
新建图片素材
</div>
</q-card-section>
<q-separator
/>
<q-card-section
class=
"q-pt-none"
style=
"margin-top: 15px;padding: 20px;"
>
<q-select
filled
stack-label
option-value=
"ID"
option-label=
"Name"
v-model=
"addMsg.classifyId"
ref=
"ID"
:options=
"classifyList"
label=
"分组"
:dense=
"false"
emit-value
map-options
/>
<div
style=
"margin-top: 15px;"
>
<div
style=
"width:70px"
>
上传图片:
</div>
<div
style=
"margin-top: 15px;"
>
<el-upload
class=
"avatar-uploader materialupload"
action=
""
:before-upload=
"uploadFile"
accept=
"image/gif,image/jpeg,image/png,image/jpg,image/bmp"
:show-file-list=
"false"
>
<i
class=
"el-icon-plus avatar-uploader-icon"
style=
"font-size: 30px;"
v-if=
"addMsg.img==''"
></i>
<q-img
v-else
:src=
"addMsg.img"
style=
"width: 110px;height: 110px;border-radius: 6px;display: flex;"
>
</q-img>
</el-upload>
<div
style=
"margin-top: 20px;"
>
(图片大小不超过2M,图片名不能重复,支持JPG,JPEG及PNG格式)
</div>
</div>
</div>
</q-card-section>
<q-separator
/>
<q-card-actions
align=
"right"
class=
"bg-white"
>
<q-btn
class=
"q-mr-md"
label=
"取消"
@
click=
"Isadd = false"
/>
<q-btn
color=
"accent"
class=
"q-mr-md"
label=
"添加"
@
click=
"submit()"
/>
</q-card-actions>
</q-card>
</q-dialog>
</div>
</
template
>
<
script
>
import
{
UploadSelfFile
}
from
"../../../api/common/common"
;
//上传图片
const
addobj
=
{
Id
:
0
,
classifyId
:
''
,
img
:
''
,}
export
default
{
name
:
"imgmaterial"
,
data
()
{
return
{
loading
:
false
,
Isadd
:
false
,
data
:
[{
Type
:
1
,
title
:
'测试文本.png'
,
Content
:
'http://imgfile.oytour.com/EduSystem/Test/Upload/course/202107070330161360000000064.jpg'
,
source
:
'本地上传'
,
CreatorName
:
'小张'
,
check
:
false
,
UpdateTime
:
'2021-08-04 15:48'
},
{
Type
:
1
,
title
:
'测试文本.png'
,
Content
:
'http://imgfile.oytour.com/EduSystem/Test/Upload/course/202107090216027320000000011.jpg'
,
source
:
'本地上传'
,
CreatorName
:
'小张'
,
check
:
false
,
UpdateTime
:
'2021-08-04 15:48'
},
{
Type
:
1
,
title
:
'测试文本.png'
,
Content
:
'http://imgfile.oytour.com/EduSystem/Test/Upload/course/202107090302364350000000080.jpg'
,
source
:
'本地上传'
,
CreatorName
:
'小张'
,
check
:
false
,
UpdateTime
:
'2021-08-04 15:48'
},],
pageCount
:
0
,
msg
:
{
pageIndex
:
1
,
pageSize
:
18
,
},
classifyList
:
[
{
Name
:
'活动'
,
ID
:
1
,
},
{
Name
:
'产品'
,
ID
:
2
,
},
{
Name
:
'校园'
,
ID
:
3
,
},
],
addMsg
:
Object
.
assign
({},
addobj
)
}
},
created
()
{
console
.
log
(
'进去所有页面'
)
},
methods
:
{
changePage
(
e
)
{
},
goadd
()
{
this
.
Isadd
=
true
;
this
.
addMsg
=
Object
.
assign
({},
addobj
)
},
goedit
(
x
){
this
.
Isadd
=
true
;
this
.
addMsg
.
img
=
x
.
Content
},
uploadFile
(
files
)
{
//图片上传
UploadSelfFile
(
"course"
,
files
,
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
addMsg
.
img
=
res
.
FileUrl
;
}
});
},
submit
(){
//提交
}
}
}
</
script
>
<
style
>
.imgmaterial
.Sysuser_Date
.el-input--prefix
.el-input__inner
{
background-color
:
red
;
border
:
0
;
}
.imgmaterial
.state-item
{
padding
:
2px
5px
;
border-radius
:
3px
;
text-align
:
center
;
font-size
:
10px
;
}
.imgmaterial
.frIdlist
{
padding
:
3px
10px
;
border-radius
:
3px
;
background
:
#EEEEEF
;
align-items
:
center
;
justify-content
:
center
;
margin-right
:
5px
;
margin-bottom
:
5px
;
cursor
:
pointer
;
}
.class-popover
.q-pr-lg
{
padding-right
:
0
;
margin-top
:
20px
;
}
.imgmaterial
.el-date-editor.el-input
{
width
:
100%
;
}
.imgmaterial
.el-date-editor.el-input
input
{
background-color
:
transparent
!important
;
}
.imgmaterial
.el-range-editor
.el-range-input
{
background
:
none
;
}
.Sysuser_Date
.el-input__inner
{
background
:
transparent
!important
;
border
:
0
!important
;
}
.imgmaterial
.el-drawer.rtl
{
overflow
:
inherit
;
}
.imgmaterial
.imgcard
{
width
:
240px
;
margin
:
0
15px
15px
0
}
.imgmaterial
.imgstyle
{
width
:
100%
;
height
:
120px
;
border-radius
:
0
;
}
.imgmaterial
.onetext
{
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
width
:
208px
;
}
</
style
>
\ No newline at end of file
src/components/enterprise/material/imgtextmaterial.vue
0 → 100644
View file @
9e9ab35e
<
template
>
<div
class=
"imgtextmaterial"
style=
"padding: 0;margin: 0;"
>
<div
class=
"page-content"
>
<div>
<q-btn
color=
"accent"
style=
"float:right;"
size=
"sm"
class=
"q-mr-md"
icon=
"add"
label=
"添加图文"
@
click=
"goadd()"
></q-btn>
</div>
<div
style=
"width: 100%;display: flex;align-items: center;flex-wrap: wrap;padding: 10px 20px;"
>
<q-card
class=
"imgcard"
v-for=
"(x,y) in data"
:key=
'y'
:style=
"
{border:x.check==true?'2px solid #91d5ff':'2px solid #FFF'}"
@click="data[y].check = !data[y].check">
<q-card-section>
<div
style=
"display:flex;align-items: center;justify-content: space-between;margin-bottom: 5px;"
>
<span>
{{
x
.
UpdateTime
}}
</span>
<!--
<q-btn
class=
"q-mr-md"
label=
"编辑"
size=
"xs"
color=
"accent"
style=
"margin-right: 0;"
@
click
.
stop=
"goedit(x)"
/>
-->
<i
class=
"el-icon-edit-outline"
style=
"font-size: 20px;color: #1890ff;"
@
click
.
stop=
"goedit(x)"
></i>
</div>
<q-img
:src=
"x.Content"
class=
"imgstyle"
>
<div
class=
"absolute-bottom text-subtitle1 text-center onetext"
style=
"padding: 0;padding: 0 5px;font-size: 12px;"
>
{{
x
.
title
}}
</div>
</q-img>
<div
class=
"onetext"
style=
"margin-top: 5px;"
>
上传者:
{{
x
.
CreatorName
}}
</div>
<div
class=
"onetext"
style=
"margin-top: 5px;"
>
来源:
{{
x
.
source
}}
</div>
</q-card-section>
</q-card>
</div>
</div>
<q-dialog
v-model=
"Isadd"
persistent
>
<q-card
style=
"width: 520px; max-width: 80vw;"
>
<q-card-section>
<div
class=
"text-h6"
>
新建图文
</div>
</q-card-section>
<q-separator
/>
<q-card-section
class=
"q-pt-none"
style=
"margin-top: 15px;padding: 20px;"
>
<q-select
filled
stack-label
option-value=
"ID"
option-label=
"Name"
v-model=
"addMsg.classifyId"
ref=
"ID"
:options=
"classifyList"
label=
"分组"
:dense=
"false"
emit-value
map-options
/>
<div
style=
"margin-top: 15px;"
>
<div
style=
"width:70px"
>
上传图片:
</div>
<div
style=
"margin-top: 15px;"
>
<el-upload
class=
"avatar-uploader materialupload"
action=
""
:before-upload=
"uploadFile"
accept=
"image/gif,image/jpeg,image/png,image/jpg,image/bmp"
:show-file-list=
"false"
>
<i
class=
"el-icon-plus avatar-uploader-icon"
style=
"font-size: 30px;"
v-if=
"addMsg.img==''"
></i>
<q-img
v-else
:src=
"addMsg.img"
style=
"width: 110px;height: 110px;border-radius: 6px;display: flex;"
>
</q-img>
</el-upload>
<div
style=
"margin-top: 20px;"
>
图片大小不超过2M,图片名不能重复,支持JPG,JPEG及PNG格式
</div>
<q-input
clearable
standout=
"bg-primary text-white"
v-model=
"addMsg.title"
label=
"添加标题"
style=
"margin-top: 20px;"
/>
<q-input
clearable
standout=
"bg-primary text-white"
v-model=
"addMsg.content"
type=
"textarea"
label=
"添加描述"
style=
"margin-top: 20px;"
/>
<q-input
clearable
standout=
"bg-primary text-white"
v-model=
"addMsg.link"
label=
"请输入跳转链接,且必须以http://或https://开头"
style=
"margin-top: 20px;"
/>
</div>
</div>
</q-card-section>
<q-separator
/>
<q-card-actions
align=
"right"
class=
"bg-white"
>
<q-btn
class=
"q-mr-md"
label=
"取消"
@
click=
"Isadd = false"
/>
<q-btn
color=
"accent"
class=
"q-mr-md"
label=
"添加"
@
click=
"submit()"
/>
</q-card-actions>
</q-card>
</q-dialog>
</div>
</
template
>
<
script
>
import
{
UploadSelfFile
}
from
"../../../api/common/common"
;
//上传图片
const
addobj
=
{
Id
:
0
,
classifyId
:
''
,
img
:
''
,
title
:
''
,
content
:
''
,
}
export
default
{
name
:
"imgtextmaterial"
,
data
()
{
return
{
loading
:
false
,
Isadd
:
false
,
data
:
[{
Type
:
1
,
title
:
'测试文本.png'
,
Content
:
'http://imgfile.oytour.com/EduSystem/Test/Upload/course/202107070330161360000000064.jpg'
,
source
:
'本地上传'
,
CreatorName
:
'小张'
,
check
:
false
,
UpdateTime
:
'2021-08-04 15:48'
},
{
Type
:
1
,
title
:
'测试文本.png'
,
Content
:
'http://imgfile.oytour.com/EduSystem/Test/Upload/course/202107090216027320000000011.jpg'
,
source
:
'本地上传'
,
CreatorName
:
'小张'
,
check
:
false
,
UpdateTime
:
'2021-08-04 15:48'
},
{
Type
:
1
,
title
:
'测试文本.png'
,
Content
:
'http://imgfile.oytour.com/EduSystem/Test/Upload/course/202107090302364350000000080.jpg'
,
source
:
'本地上传'
,
CreatorName
:
'小张'
,
check
:
false
,
UpdateTime
:
'2021-08-04 15:48'
},],
pageCount
:
0
,
msg
:
{
pageIndex
:
1
,
pageSize
:
18
,
},
classifyList
:
[
{
Name
:
'活动'
,
ID
:
1
,
},
{
Name
:
'产品'
,
ID
:
2
,
},
{
Name
:
'校园'
,
ID
:
3
,
},
],
addMsg
:
Object
.
assign
({},
addobj
)
}
},
created
()
{
console
.
log
(
'进去所有页面'
)
},
methods
:
{
changePage
(
e
)
{
},
goadd
()
{
this
.
Isadd
=
true
;
this
.
addMsg
=
Object
.
assign
({},
addobj
)
},
goedit
(
x
)
{
this
.
Isadd
=
true
;
this
.
addMsg
.
img
=
x
.
Content
},
uploadFile
(
files
)
{
//图片上传
UploadSelfFile
(
"course"
,
files
,
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
addMsg
.
img
=
res
.
FileUrl
;
}
});
},
submit
()
{
//提交
}
}
}
</
script
>
<
style
>
.imgtextmaterial
.Sysuser_Date
.el-input--prefix
.el-input__inner
{
background-color
:
red
;
border
:
0
;
}
.imgtextmaterial
.state-item
{
padding
:
2px
5px
;
border-radius
:
3px
;
text-align
:
center
;
font-size
:
10px
;
}
.imgtextmaterial
.frIdlist
{
padding
:
3px
10px
;
border-radius
:
3px
;
background
:
#EEEEEF
;
align-items
:
center
;
justify-content
:
center
;
margin-right
:
5px
;
margin-bottom
:
5px
;
cursor
:
pointer
;
}
.class-popover
.q-pr-lg
{
padding-right
:
0
;
margin-top
:
20px
;
}
.imgtextmaterial
.el-date-editor.el-input
{
width
:
100%
;
}
.imgtextmaterial
.el-date-editor.el-input
input
{
background-color
:
transparent
!important
;
}
.imgtextmaterial
.el-range-editor
.el-range-input
{
background
:
none
;
}
.Sysuser_Date
.el-input__inner
{
background
:
transparent
!important
;
border
:
0
!important
;
}
.imgtextmaterial
.el-drawer.rtl
{
overflow
:
inherit
;
}
.imgtextmaterial
.imgcard
{
width
:
240px
;
margin
:
0
15px
15px
0
}
.imgtextmaterial
.imgstyle
{
width
:
100%
;
height
:
120px
;
border-radius
:
0
;
}
.imgtextmaterial
.onetext
{
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
width
:
208px
;
}
</
style
>
\ No newline at end of file
src/components/enterprise/material/textmaterial.vue
0 → 100644
View file @
9e9ab35e
<
template
>
<div
class=
"textmaterial"
style=
"padding: 0;margin: 0;"
>
<div
class=
"page-content"
>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-column-table"
separator=
"none"
title=
""
:data=
"data"
:columns=
"columns"
row-key=
"name"
>
<template
v-slot:top=
"props"
>
<div
class=
"col-2 q-table__title"
></div>
<q-space
/>
<q-btn
color=
"accent"
style=
"float:right;margin-right:0;"
size=
"sm"
class=
"q-mr-md"
icon=
"add"
label=
"添加文本"
@
click=
"goadd()"
></q-btn>
</
template
>
<
template
v-slot:body-cell-Type=
"props"
>
<q-td
:props=
"props"
>
<span
v-if=
"props.row.Type==1"
>
图文
</span>
<span
v-if=
"props.row.Type==2"
>
图片
</span>
</q-td>
</
template
>
<
template
v-slot:body-cell-optioned=
"props"
>
<q-td
:props=
"props"
>
<q-btn
flat
size=
"xs"
icon=
"edit"
style=
"font-weight:400;color: #3FC4FF"
class=
"q-mr-xs"
label=
"编辑"
@
click=
"goDetailed(props.row,'0')"
/>
<q-btn
flat
size=
"xs"
icon=
"delete"
style=
"font-weight:400;color: #3FC4FF"
class=
"q-mr-xs"
label=
"删除"
@
click=
"goDetailed(props.row,'0')"
/>
</q-td>
</
template
>
<
template
v-slot:bottom
>
<q-pagination
class=
"full-width justify-end"
v-model=
"msg.pageIndex"
color=
"primary"
:max=
"pageCount"
:input=
"true"
@
input=
"changePage"
/>
</
template
>
</q-table>
</div>
<q-dialog
v-model=
"Isadd"
persistent
>
<q-card
style=
"width: 520px; max-width: 80vw;"
>
<q-card-section>
<div
class=
"text-h6"
>
新建文本素材
</div>
</q-card-section>
<q-separator
/>
<q-card-section
class=
"q-pt-none"
style=
"margin-top: 15px;"
>
<q-select
filled
stack-label
option-value=
"ID"
option-label=
"Name"
v-model=
"addMsg.classifyId"
ref=
"ID"
:options=
"classifyList"
label=
"分组"
:dense=
"false"
emit-value
map-options
/>
<q-input
clearable
standout=
"bg-primary text-white"
v-model=
"addMsg.title"
label=
"文本标题"
style=
"margin-top: 20px;"
/>
<q-input
clearable
standout=
"bg-primary text-white"
v-model=
"addMsg.content"
type=
"textarea"
label=
"文本内容"
style=
"margin-top: 20px;"
/>
</q-card-section>
<q-separator
/>
<q-card-actions
align=
"right"
class=
"bg-white"
>
<q-btn
class=
"q-mr-md"
label=
"取消"
@
click=
"Isadd = false"
/>
<q-btn
color=
"accent"
class=
"q-mr-md"
label=
"添加"
@
click=
"savelocal()"
/>
</q-card-actions>
</q-card>
</q-dialog>
</div>
</template>
<
script
>
export
default
{
name
:
"textmaterial"
,
data
()
{
return
{
loading
:
false
,
Isadd
:
false
,
data
:
[{
Type
:
1
,
title
:
'测试文本'
,
Content
:
'测试文本'
,
source
:
'本地上传'
,
CreatorName
:
'小张'
,
UpdateTime
:
'2021-08-04 15:48'
}],
pageCount
:
0
,
msg
:
{
pageIndex
:
1
,
pageSize
:
10
,
rowsPerPage
:
10
,
Month
:
''
,
TeacherId
:
0
,
State
:
0
,
},
//公告column
columns
:
[{
name
:
'title'
,
field
:
'title'
,
label
:
'标题'
,
align
:
'left'
},
{
name
:
'Content'
,
field
:
'Content'
,
label
:
'内容'
,
align
:
'left'
,
},
{
name
:
'CreatorName'
,
field
:
'CreatorName'
,
label
:
'上传者'
,
align
:
'left'
},
{
name
:
'source'
,
field
:
'source'
,
label
:
'素材来源'
,
align
:
'left'
},
{
name
:
'Type'
,
field
:
'Type'
,
label
:
'类型'
,
align
:
'left'
},
{
name
:
'UpdateTime'
,
field
:
'UpdateTime'
,
label
:
'添加时间'
,
align
:
'left'
},
{
name
:
'optioned'
,
label
:
'操作'
,
field
:
'DeptId'
}
],
classifyList
:
[
{
Name
:
'活动'
,
ID
:
1
,
},
{
Name
:
'产品'
,
ID
:
2
,
},
{
Name
:
'校园'
,
ID
:
3
,
},
],
addMsg
:
{
Id
:
0
,
classifyId
:
''
,
title
:
''
,
content
:
''
,
}
}
},
created
()
{
console
.
log
(
'进去所有页面'
)
},
methods
:
{
changePage
(
e
)
{
},
goadd
()
{
this
.
Isadd
=
true
}
}
}
</
script
>
<
style
>
.textmaterial
.Sysuser_Date
.el-input--prefix
.el-input__inner
{
background-color
:
red
;
border
:
0
;
}
.textmaterial
.state-item
{
padding
:
2px
5px
;
border-radius
:
3px
;
text-align
:
center
;
font-size
:
10px
;
}
.textmaterial
.frIdlist
{
padding
:
3px
10px
;
border-radius
:
3px
;
background
:
#EEEEEF
;
align-items
:
center
;
justify-content
:
center
;
margin-right
:
5px
;
margin-bottom
:
5px
;
cursor
:
pointer
;
}
.class-popover
.q-pr-lg
{
padding-right
:
0
;
margin-top
:
20px
;
}
.textmaterial
.el-date-editor.el-input
{
width
:
100%
;
}
.textmaterial
.el-date-editor.el-input
input
{
background-color
:
transparent
!important
;
}
.textmaterial
.el-range-editor
.el-range-input
{
background
:
none
;
}
.Sysuser_Date
.el-input__inner
{
background
:
transparent
!important
;
border
:
0
!important
;
}
.textmaterial
.el-drawer.rtl
{
overflow
:
inherit
;
}
</
style
>
\ No newline at end of file
src/components/enterprise/material/videomaterial.vue
0 → 100644
View file @
9e9ab35e
<
template
>
<div
class=
"videomaterial"
style=
"padding: 0;margin: 0;"
>
<div
class=
"page-content"
>
<div>
<q-btn
color=
"accent"
style=
"float:right;"
size=
"sm"
class=
"q-mr-md"
icon=
"add"
label=
"上传视频"
@
click=
"goadd()"
></q-btn>
</div>
<div
style=
"width: 100%;display: flex;align-items: center;flex-wrap: wrap;padding: 10px 20px;"
>
<q-card
class=
"imgcard"
v-for=
"(x,y) in data"
:key=
'y'
:style=
"
{border:x.check==true?'2px solid #91d5ff':'2px solid #FFF'}"
@click="data[y].check = !data[y].check">
<q-card-section>
<div
style=
"display:flex;align-items: center;justify-content: space-between;margin-bottom: 5px;"
>
<span>
{{
x
.
UpdateTime
}}
</span>
<!--
<q-btn
class=
"q-mr-md"
label=
"编辑"
size=
"xs"
color=
"accent"
style=
"margin-right: 0;"
@
click
.
stop=
"goedit(x)"
/>
-->
<i
class=
"el-icon-edit-outline"
style=
"font-size: 20px;color: #1890ff;"
@
click
.
stop=
"goedit(x)"
></i>
</div>
<video
width=
"260"
height=
"180"
controls=
"controls"
>
<source
:src=
"x.Content"
type=
"video/ogg"
/>
<source
:src=
"x.Content"
type=
"video/mp4"
/>
<source
:src=
"x.Content"
type=
"video/webm"
/>
</video>
<div
class=
"onetext"
style=
"margin-top: 5px;"
>
上传者:
{{
x
.
CreatorName
}}
</div>
<div
class=
"onetext"
style=
"margin-top: 5px;"
>
来源:
{{
x
.
source
}}
</div>
</q-card-section>
</q-card>
</div>
</div>
<q-dialog
v-model=
"Isadd"
persistent
>
<q-card
style=
"width: 520px; max-width: 80vw;"
>
<q-card-section>
<div
class=
"text-h6"
>
新增视频
</div>
</q-card-section>
<q-separator
/>
<q-card-section
class=
"q-pt-none"
style=
"margin-top: 15px;padding: 20px;"
>
<q-select
filled
stack-label
option-value=
"ID"
option-label=
"Name"
v-model=
"addMsg.classifyId"
ref=
"ID"
:options=
"classifyList"
label=
"分组"
:dense=
"false"
emit-value
map-options
/>
<div
style=
"margin-top: 15px;"
>
<div
style=
"width:70px"
>
上传视频:
</div>
<video
width=
"320"
height=
"240"
controls=
"controls"
v-if=
"addMsg.img!=''"
>
<source
:src=
"addMsg.img"
type=
"video/ogg"
/>
<source
:src=
"addMsg.img"
type=
"video/mp4"
/>
<source
:src=
"addMsg.img"
type=
"video/webm"
/>
</video>
<div
style=
"margin-top: 15px;"
>
<el-upload
class=
"avatar-uploader "
action=
""
:before-upload=
"uploadFile"
:show-file-list=
"false"
>
<q-btn
color=
"accent"
size=
"sm"
class=
"q-mr-md"
icon=
"cloud_upload"
label=
"上传"
></q-btn>
</el-upload>
<div
style=
"margin-top: 20px;"
>
(视频上传大小不超过10M,支持MP4格式)
</div>
</div>
</div>
</q-card-section>
<q-separator
/>
<q-card-actions
align=
"right"
class=
"bg-white"
>
<q-btn
class=
"q-mr-md"
label=
"取消"
@
click=
"Isadd = false"
/>
<q-btn
color=
"accent"
class=
"q-mr-md"
label=
"添加"
@
click=
"submit()"
/>
</q-card-actions>
</q-card>
</q-dialog>
</div>
</
template
>
<
script
>
import
{
UploadSelfFile
}
from
"../../../api/common/common"
;
//上传图片
const
addobj
=
{
Id
:
0
,
classifyId
:
''
,
img
:
''
,
}
export
default
{
name
:
"videomaterial"
,
data
()
{
return
{
loading
:
false
,
Isadd
:
false
,
data
:
[{
Type
:
1
,
title
:
'测试文本.png'
,
Content
:
'http://192.168.20.214:8130/EduSystem/Test/Upload/course/202108060508405370000000004.mp4'
,
source
:
'本地上传'
,
CreatorName
:
'小张'
,
check
:
false
,
UpdateTime
:
'2021-08-04 15:48'
},
{
Type
:
1
,
title
:
'测试文本.png'
,
Content
:
'http://192.168.20.214:8130/EduSystem/Test/Upload/course/202108060508405370000000004.mp4'
,
source
:
'本地上传'
,
CreatorName
:
'小张'
,
check
:
false
,
UpdateTime
:
'2021-08-04 15:48'
},
{
Type
:
1
,
title
:
'测试文本.png'
,
Content
:
'http://192.168.20.214:8130/EduSystem/Test/Upload/course/202108060508405370000000004.mp4'
,
source
:
'本地上传'
,
CreatorName
:
'小张'
,
check
:
false
,
UpdateTime
:
'2021-08-04 15:48'
},],
pageCount
:
0
,
msg
:
{
pageIndex
:
1
,
pageSize
:
18
,
},
classifyList
:
[
{
Name
:
'活动'
,
ID
:
1
,
},
{
Name
:
'产品'
,
ID
:
2
,
},
{
Name
:
'校园'
,
ID
:
3
,
},
],
addMsg
:
Object
.
assign
({},
addobj
),
audioDuration
:
0
,
}
},
created
()
{
console
.
log
(
'进去所有页面'
)
},
methods
:
{
changePage
(
e
)
{
},
goadd
()
{
this
.
Isadd
=
true
;
this
.
addMsg
=
Object
.
assign
({},
addobj
)
},
goedit
(
x
)
{
this
.
Isadd
=
true
;
this
.
addMsg
.
img
=
x
.
Content
},
uploadFile
(
file
)
{
//图片上传
// 文件类型进行判断
const
isLt10M
=
file
.
size
/
1024
/
1024
<
10
;
if
([
'video/mp4'
,
'video/ogg'
,
'video/flv'
,
'video/avi'
,
'video/wmv'
,
'video/rmvb'
].
indexOf
(
file
.
type
)
==
-
1
)
{
this
.
$q
.
notify
({
type
:
'negative'
,
message
:
`请上传正确的视频格式!`
,
position
:
'top'
})
return
false
;
}
if
(
!
isLt10M
)
{
this
.
$q
.
notify
({
type
:
'negative'
,
message
:
`上传视频大小不能超过10MB哦!`
,
position
:
'top'
})
return
false
;
}
UploadSelfFile
(
"course"
,
file
,
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
addMsg
.
img
=
res
.
FileUrl
;
console
.
log
(
res
.
FileUrl
)
}
});
},
submit
()
{
//提交
}
}
}
</
script
>
<
style
>
.videomaterial
.Sysuser_Date
.el-input--prefix
.el-input__inner
{
background-color
:
red
;
border
:
0
;
}
.videomaterial
.state-item
{
padding
:
2px
5px
;
border-radius
:
3px
;
text-align
:
center
;
font-size
:
10px
;
}
.videomaterial
.frIdlist
{
padding
:
3px
10px
;
border-radius
:
3px
;
background
:
#EEEEEF
;
align-items
:
center
;
justify-content
:
center
;
margin-right
:
5px
;
margin-bottom
:
5px
;
cursor
:
pointer
;
}
.class-popover
.q-pr-lg
{
padding-right
:
0
;
margin-top
:
20px
;
}
.videomaterial
.el-date-editor.el-input
{
width
:
100%
;
}
.videomaterial
.el-date-editor.el-input
input
{
background-color
:
transparent
!important
;
}
.videomaterial
.el-range-editor
.el-range-input
{
background
:
none
;
}
.Sysuser_Date
.el-input__inner
{
background
:
transparent
!important
;
border
:
0
!important
;
}
.videomaterial
.el-drawer.rtl
{
overflow
:
inherit
;
}
.videomaterial
.imgcard
{
width
:
300px
;
margin
:
0
15px
15px
0
}
.videomaterial
.imgstyle
{
width
:
100%
;
height
:
45px
;
border-radius
:
0
;
}
.videomaterial
.onetext
{
overflow
:
hidden
;
white-space
:
nowrap
;
text-overflow
:
ellipsis
;
width
:
260px
;
}
</
style
>
\ No newline at end of file
src/components/sale/editOrder-form.vue
View file @
9e9ab35e
This diff is collapsed.
Click to expand it.
src/pages/courseRefund.vue
View file @
9e9ab35e
...
@@ -5,7 +5,6 @@
...
@@ -5,7 +5,6 @@
height
:
auto
;
height
:
auto
;
margin
:
auto
;
margin
:
auto
;
padding
:
20px
0
;
padding
:
20px
0
;
color
:
#000
;
}
}
.firstPage
{
.firstPage
{
...
@@ -61,6 +60,13 @@
...
@@ -61,6 +60,13 @@
justify-content
:
space-between
;
justify-content
:
space-between
;
margin-bottom
:
20px
;
margin-bottom
:
20px
;
}
}
.cnmoney_Course
{
border-bottom
:
1px
solid
#c0c0c0
;
padding
:
0
5px
5px
5px
;
}
.courseReLeft
{
flex-shrink
:
0
;
}
</
style
>
</
style
>
<
template
>
<
template
>
...
@@ -79,17 +85,17 @@
...
@@ -79,17 +85,17 @@
<div>
法定代表人:
{{
dataList
.
PartyBLegal
}}
</div>
<div>
法定代表人:
{{
dataList
.
PartyBLegal
}}
</div>
</div>
</div>
<div
class=
"Tui_Inner"
>
<div
class=
"Tui_Inner"
>
甲乙双方经平等友好协商就
<div
class=
"TuitractInput"
style=
"width: 90px;"
>
{{
getData
(
dataList
.
CreateTim
eStr
,
1
)
}}
</div>
年
甲乙双方经平等友好协商就
<div
class=
"TuitractInput"
style=
"width: 90px;"
>
{{
getData
(
dataList
.
SignDat
eStr
,
1
)
}}
</div>
年
<div
class=
"TuitractInput"
style=
"width: 80px;"
>
{{
getData
(
dataList
.
CreateTim
eStr
,
2
)
}}
</div>
月
<div
class=
"TuitractInput"
style=
"width: 80px;"
>
{{
getData
(
dataList
.
SignDat
eStr
,
2
)
}}
</div>
月
<div
class=
"TuitractInput"
style=
"width: 80px;"
>
{{
getData
(
dataList
.
CreateTim
eStr
,
3
)
}}
</div>
日
<div
class=
"TuitractInput"
style=
"width: 80px;"
>
{{
getData
(
dataList
.
SignDat
eStr
,
3
)
}}
</div>
日
签订的《培训课程协议》解除合作关系。
签订的《培训课程协议》解除合作关系。
</div>
</div>
<div
class=
"Tui_Inner"
>
第一条:原协议内容
</div>
<div
class=
"Tui_Inner"
>
第一条:原协议内容
</div>
<div
class=
"Tui_Inner"
>
<div
class=
"Tui_Inner"
>
原协议报名人员:
<div
class=
"TuitractInput"
style=
"width:
300px
;"
>
{{
dataList
.
OldSaleMan
}}
</div>
原协议报名人员:
<div
class=
"TuitractInput"
style=
"width:
659px;text-align:left
;"
>
{{
dataList
.
OldSaleMan
}}
</div>
</div>
</div>
<div
class=
"Tui_Inner"
>
<div
class=
"Tui_Inner"
>
原报名项目:
<div
class=
"TuitractInput"
style=
"width:
300px
;"
>
{{
dataList
.
CNMoneyStr
}}
</div>
原报名项目:
<div
class=
"TuitractInput"
style=
"width:
700px;text-align:left
;"
>
{{
dataList
.
CNMoneyStr
}}
</div>
</div>
</div>
<div
class=
"Tui_Inner"
>
<div
class=
"Tui_Inner"
>
原报名项目原价:
<div
class=
"TuitractInput"
style=
"width: 100px;"
>
{{
dataList
.
OldSellPrice
}}
</div>
原报名项目原价:
<div
class=
"TuitractInput"
style=
"width: 100px;"
>
{{
dataList
.
OldSellPrice
}}
</div>
...
@@ -101,11 +107,11 @@
...
@@ -101,11 +107,11 @@
</div>
</div>
(¥
<div
class=
"TuitractInput"
style=
"width: 100px;"
>
{{
dataList
.
OldIncome
}}
</div>
元整)。
(¥
<div
class=
"TuitractInput"
style=
"width: 100px;"
>
{{
dataList
.
OldIncome
}}
</div>
元整)。
</div>
</div>
<div
class=
"Tui_Inner"
>
<div
class=
"Tui_Inner"
style=
"display:flex;flex-wrap:wrap;"
>
原收据编号:
<div
class=
"TuitractInput"
style=
"width: 150px;
"
>
{{
dataList
.
OldFinaceNum
}}
</div>
<div
class=
"courseReLeft"
>
原收据编号:
</div><div
class=
"TuitractInput"
style=
"width: 700px;text-align:left;word-break:break-all
"
>
{{
dataList
.
OldFinaceNum
}}
</div>
</div>
</div>
<div
class=
"Tui_Inner"
>
<div
class=
"Tui_Inner"
>
原收款人:
<div
class=
"TuitractInput"
style=
"width:
150px
;"
>
{{
dataList
.
OldReceiveMan
}}
</div>
原收款人:
<div
class=
"TuitractInput"
style=
"width:
720px;text-align:left
;"
>
{{
dataList
.
OldReceiveMan
}}
</div>
</div>
</div>
<div
class=
"Tui_Inner"
>
<div
class=
"Tui_Inner"
>
第二条:乙方共计课时
<div
class=
"TuitractInput"
style=
"width: 80px;"
>
{{
dataList
.
TotalClassHours
}}
</div>
节;已销课时
第二条:乙方共计课时
<div
class=
"TuitractInput"
style=
"width: 80px;"
>
{{
dataList
.
TotalClassHours
}}
</div>
节;已销课时
...
@@ -113,10 +119,10 @@
...
@@ -113,10 +119,10 @@
<div
class=
"TuitractInput"
style=
"width: 80px;"
>
{{
dataList
.
SurplusHours
}}
</div>
节
<div
class=
"TuitractInput"
style=
"width: 80px;"
>
{{
dataList
.
SurplusHours
}}
</div>
节
</div>
</div>
<div
class=
"Tui_Inner"
>
<div
class=
"Tui_Inner"
>
甲方应退还乙方未上课时费用
<
div
class=
"TuitractInput"
style=
"width: 200px;"
>
{{
dataList
.
CNMoneyStr
}}
</div
>
甲方应退还乙方未上课时费用
<
span
class=
"cnmoney_Course"
>
{{
dataList
.
CNMoneyStr
}}
</span
>
(¥
<
div
class=
"TuitractInput"
style=
"width: 150px;"
>
{{
dataList
.
BackMoney
}}
</div
>
),原协
(¥
<
span
class=
"cnmoney_Course"
>
{{
dataList
.
BackMoney
}}
</span
>
),原协
议自动终止、收据自动失效。退还帐户名
<
div
class=
"TuitractInput"
style=
"width: 200px;"
>
{{
dataList
.
BackAccountName
}}
</div>
,退还帐号:
<div
class=
"TuitractInput"
议自动终止、收据自动失效。退还帐户名
<
span
class=
"cnmoney_Course"
>
{{
dataList
.
BackAccountName
}}
</span>
,退还帐号:
style=
"width: 200px;"
>
{{
dataList
.
BackAccount
}}
</div
>
<span
class=
"cnmoney_Course"
>
{{
dataList
.
BackAccount
}}
</span
>
退还学费=乙方已缴总学费-已上课程学费-(乙方已缴学费-已上课程学费)*10%,其中“(乙方已缴课程学费)*10%”为违约金。
退还学费=乙方已缴总学费-已上课程学费-(乙方已缴学费-已上课程学费)*10%,其中“(乙方已缴课程学费)*10%”为违约金。
</div>
</div>
<div
class=
"Tui_Inner"
>
<div
class=
"Tui_Inner"
>
...
@@ -126,13 +132,13 @@
...
@@ -126,13 +132,13 @@
<div
class=
"Tui_Inner"
>
<div
class=
"Tui_Inner"
>
第四条:本协议自签订之日起正式生效。
第四条:本协议自签订之日起正式生效。
</div>
</div>
<div
class=
"Tui_SignZhang"
>
<div
class=
"Tui_SignZhang"
style=
"position:relative;"
>
<div>
甲方(家长/监护人)签字(盖章):
{{
dataList
.
PartyASign
}}
</div>
<div>
甲方(家长/监护人)签字(盖章):
<img
style=
"width:85px;position:absolute;top:-13px;"
:src=
"dataList.PartyASign"
/>
</div>
<div>
乙方签字(盖章):
{{
dataList
.
PartyBSign
}}
</div>
<div>
乙方签字(盖章):
<img
v-if=
"dataList.IsCompanySeal==1"
style=
"width:100px;position:absolute;top:-30px;"
:src=
"dataList.GroupSealImg"
/>
</div>
</div>
</div>
<div
class=
"Tui_SignZhang"
>
<div
class=
"Tui_SignZhang"
>
<div>
签署日期:
{{
dataList
.
PartyASignDate
}}
</div>
<div>
签署日期:
{{
dataList
.
PartyASignDate
Str
}}
</div>
<div>
签署日期:
{{
dataList
.
PartyBSignDate
}}
</div>
<div>
签署日期:
<span
v-if=
"dataList.IsCompanySeal==1"
>
{{
dataList
.
PartyBSignDateStr
}}
</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
...
@@ -177,10 +183,9 @@
...
@@ -177,10 +183,9 @@
//获取日期
//获取日期
getData
(
dateStr
,
type
){
getData
(
dateStr
,
type
){
if
(
dateStr
){
if
(
dateStr
){
let
timeOne
=
dateStr
.
split
(
' '
)[
0
];
let
Year
=
dateStr
.
split
(
'-'
)[
0
];
let
Year
=
timeOne
.
split
(
'-'
)[
0
];
let
Month
=
dateStr
.
split
(
'-'
)[
1
];
let
Month
=
timeOne
.
split
(
'-'
)[
1
];
let
day
=
dateStr
.
split
(
'-'
)[
2
];
let
day
=
timeOne
.
split
(
'-'
)[
2
];
if
(
type
==
1
){
if
(
type
==
1
){
return
Year
return
Year
}
}
...
...
src/pages/courseRefundH5.vue
View file @
9e9ab35e
This diff is collapsed.
Click to expand it.
src/pages/enterprise/addWelcome.vue
View file @
9e9ab35e
...
@@ -48,6 +48,14 @@
...
@@ -48,6 +48,14 @@
<div
class=
"boxl_title"
>
<div
class=
"boxl_title"
>
<span
style=
"margin-left:24px ;color: rgba(0,0,0,.85); font-weight: 500; font-size: 16px;"
>
客户账号
</span>
<span
style=
"margin-left:24px ;color: rgba(0,0,0,.85); font-weight: 500; font-size: 16px;"
>
客户账号
</span>
</div>
</div>
<div
style=
"padding: 20px;"
>
<div
style=
"display: flex;align-items: flex-start;"
>
<i
class=
"el-icon-user"
style=
"margin-right:20px;font-size: 40px;color: #1890ff;"
></i>
<div
style=
"width: 1px; flex:1;background: #f3f6fb;word-wrap: break-word;padding: 10px;border-radius: 4px;min-height: 40px;"
>
{{
addMsg
.
Content
}}
</div>
</div>
</div>
</div>
</div>
<div
class=
"box_r"
>
<div
class=
"box_r"
>
<el-form
ref=
"addMsg"
:model=
"addMsg"
label-width=
"120px"
>
<el-form
ref=
"addMsg"
:model=
"addMsg"
label-width=
"120px"
>
...
@@ -99,7 +107,7 @@
...
@@ -99,7 +107,7 @@
<!-- 人员选择 -->
<!-- 人员选择 -->
<el-dialog
custom-class=
'w700'
title=
"选择人员"
:visible
.
sync=
"outerVisible"
center
>
<el-dialog
custom-class=
'w700'
title=
"选择人员"
:visible
.
sync=
"outerVisible"
center
>
<div
class=
"fl"
style=
"width: 300px; margin: 0 20px;"
>
<div
class=
"fl"
style=
"width: 300px; margin: 0 20px;"
>
<p
style=
"margin: 0 0 10px 0;"
>
选择:
<el-input
class=
'w200'
placeholder=
"输入关键字进行过滤"
v-model=
"filterText"
>
<p
style=
"margin: 0 0 10px 0;"
>
选择:
<el-input
class=
'w200'
placeholder=
"输入关键字进行过滤"
v-model=
"filterText"
@
input=
""
>
</el-input>
</el-input>
</p>
</p>
<el-tree
class=
'ApprovalProcessBg'
:data=
"memberList"
show-checkbox
:filter-node-method=
"filterNode"
<el-tree
class=
'ApprovalProcessBg'
:data=
"memberList"
show-checkbox
:filter-node-method=
"filterNode"
...
...
src/pages/enterprise/groupingManage.vue
0 → 100644
View file @
9e9ab35e
<
template
>
<div
class=
"page-body"
>
<div
class=
"page-search row items-center"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<q-input
@
input=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.Name"
label=
"分组名称"
@
clear=
"resetSearch"
maxlength=
"20"
/>
</div>
</div>
</div>
<div
class=
"page-content"
>
<q-table
:pagination=
"msg"
:loading=
"loading"
no-data-label=
"暂无相关数据"
flat
class=
"sticky-column-table"
separator=
"none"
:data=
"dataList"
:columns=
"columns"
>
<template
v-slot:top=
"props"
>
<div
class=
"col-2 q-table__title"
>
分组列表
</div>
<q-space
/>
<div
class=
"page-option"
>
<q-btn
color=
"accent"
size=
"sm"
class=
"q-mr-md"
icon=
"add"
label=
"新增分组"
@
click=
"EditCategory(null)"
/>
</div>
</
template
>
<
template
v-slot:body-cell-CateId=
"props"
>
<q-td
:props=
"props"
>
<q-btn
flat
size=
"xs"
icon=
"edit"
color=
"accent"
style=
"font-weight:400"
label=
"编辑"
@
click=
"EditCategory(props.row)"
/>
<q-btn
flat
size=
"xs"
icon=
"delete"
color=
"negative"
style=
"font-weight:400;"
label=
"删除"
@
click=
"deleteCategory(props.row)"
/>
</q-td>
</
template
>
<
template
v-slot:bottom
>
<q-pagination
class=
"full-width justify-end"
v-model=
"msg.PageIndex"
color=
"primary"
:max=
"msg.PageCount"
:input=
"true"
@
input=
"changePage"
/>
</
template
>
</q-table>
</div>
<q-dialog
v-model=
"isShow"
persistent
>
<q-card
style=
"width: 520px; max-width: 80vw;"
>
<q-card-section>
<div
class=
"text-h6"
>
新增分组
</div>
</q-card-section>
<q-separator
/>
<q-card-section
class=
"q-pt-none"
style=
"margin-top: 15px;padding: 20px;"
>
<q-input
filled
clearable
standout=
"bg-primary text-white"
v-model=
"addMsg.Name"
label=
"分组名称"
:rules=
"[val => !!val || '请输入分组名称']"
ref=
"Name"
/>
<q-input
filled
clearable
standout=
"bg-primary text-white"
v-model=
"addMsg.Sort"
label=
"分组排序"
style=
"margin-top: 20px;"
:rules=
"[val => !!val || '请输入分组排序']"
ref=
"Sort"
/>
</q-card-section>
<q-separator
/>
<q-card-actions
align=
"right"
class=
"bg-white"
>
<q-btn
class=
"q-mr-md"
label=
"取消"
@
click=
"isShow = false"
/>
<q-btn
color=
"accent"
class=
"q-mr-md"
label=
"确定"
@
click=
"submit()"
/>
</q-card-actions>
</q-card>
</q-dialog>
</div>
</template>
<
script
>
import
{
getWeChatMediumGroupPageList
,
setWeChatMediumGroup
,
delWeChatMediumGroup
}
from
'../../api/system/wechat'
;
const
addobj
=
{
Id
:
0
,
Name
:
''
,
Sort
:
1
}
export
default
{
meta
:
{
title
:
"分组管理"
},
data
()
{
return
{
msg
:
{
PageIndex
:
1
,
PageSize
:
10
,
rowsPerPage
:
15
,
Name
:
""
,
//系列名称
},
currentUrl
:
""
,
dataList
:
[],
keyWords
:
''
,
isShow
:
false
,
loading
:
true
,
columns
:
[{
name
:
'Id'
,
label
:
'ID'
,
field
:
'Id'
,
align
:
'left'
},
{
name
:
'Sort'
,
label
:
'排序'
,
field
:
'Sort'
,
align
:
'left'
},
{
name
:
'Name'
,
label
:
'分组名称'
,
field
:
'Name'
,
align
:
'center'
},
{
name
:
'UpdateByName'
,
label
:
'创建人'
,
field
:
'UpdateByName'
,
align
:
'center'
},
{
name
:
'UpdateTime'
,
label
:
'创建时间'
,
field
:
'UpdateTime'
,
align
:
'center'
},
{
name
:
'CateId'
,
label
:
'操作'
,
field
:
'CateId'
}
],
addMsg
:
Object
.
assign
({},
addobj
)
}
},
mounted
()
{
this
.
getcategorypage
()
},
methods
:
{
//重新查询
resetSearch
()
{
this
.
msg
.
PageIndex
=
1
;
this
.
getcategorypage
();
},
changePage
(
val
)
{
this
.
msg
.
PageIndex
=
val
;
this
.
getcategorypage
()
},
//删除系列
deleteCategory
(
item
)
{
let
delMsg
=
{
MediumId
:
item
.
Id
,
};
this
.
$q
.
dialog
({
title
:
'提示信息'
,
message
:
'是否确定删除该分组?'
,
cancel
:
true
,
persistent
:
true
,
ok
:
"确定"
,
cancel
:
"取消"
,
}).
onOk
(()
=>
{
delWeChatMediumGroup
(
delMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'删除成功!'
,
position
:
'top'
})
this
.
getcategorypage
();
}
})
}).
onCancel
(()
=>
{
});
},
//刷新页面
refreshPage
()
{
this
.
getcategorypage
();
},
//获取课程系列分页列表
getcategorypage
()
{
this
.
loading
=
true
;
getWeChatMediumGroupPageList
(
this
.
msg
).
then
(
res
=>
{
this
.
loading
=
false
;
this
.
dataList
=
res
.
Data
.
PageData
;
this
.
msg
.
PageCount
=
res
.
Data
.
PageCount
})
},
//新增修改课程系列
EditCategory
(
obj
)
{
if
(
obj
)
{
this
.
addMsg
.
Id
=
obj
.
Id
this
.
addMsg
.
Name
=
obj
.
Name
this
.
addMsg
.
Sort
=
obj
.
Sort
}
else
{
this
.
addMsg
=
Object
.
assign
({},
addobj
)
}
this
.
isShow
=
true
;
},
submit
()
{
this
.
$refs
.
Name
.
validate
();
this
.
$refs
.
Sort
.
validate
();
if
(
!
this
.
$refs
.
Name
.
hasError
&&
!
this
.
$refs
.
Sort
.
hasError
)
{
setWeChatMediumGroup
(
this
.
addMsg
).
then
(
res
=>
{
if
(
res
.
Code
==
1
)
{
this
.
$q
.
notify
({
icon
:
'iconfont icon-chenggong'
,
color
:
'accent'
,
timeout
:
2000
,
message
:
'数据保存成功!'
,
position
:
'top'
})
this
.
resetSearch
()
this
.
isShow
=
false
;
}
})
}
}
}
}
</
script
>
<
style
lang=
"sass"
>
@import
url('~assets/css/table.sass')
</
style
>
\ No newline at end of file
src/pages/enterprise/materialManage.vue
0 → 100644
View file @
9e9ab35e
<
template
>
<div
class=
"materialManage page-body"
>
<div
class=
"page-search row items-center"
>
<div
class=
"col row wrap q-mr-lg q-col-gutter-md"
>
<div
class=
"col-3"
>
<q-select
filled
stack-label
@
input=
"resetSearch"
option-value=
"ID"
option-label=
"Name"
v-model=
"msg.classifyId"
ref=
"ID"
:options=
"classifyList"
label=
"分组"
:dense=
"false"
emit-value
map-options
/>
</div>
<div
class=
"col-3"
>
<q-input
@
input=
"resetSearch"
clearable
standout=
"bg-primary text-white"
v-model=
"msg.Name"
label=
"输入搜索内容"
maxlength=
"20"
/>
</div>
</div>
</div>
<div
class=
"page-content"
>
<q-tabs
style=
"margin-bottom:20px;"
v-model=
"tabCheck"
narrow-indicator
dense
align=
"left"
class=
"text-primary"
>
<q-tab
:ripple=
"false"
name=
"first"
label=
"所有"
/>
<q-tab
:ripple=
"false"
name=
"second"
label=
"文本"
/>
<q-tab
:ripple=
"false"
name=
"third"
label=
"图片"
/>
<q-tab
:ripple=
"false"
name=
"fourth"
label=
"图文"
/>
<q-tab
:ripple=
"false"
name=
"five"
label=
"音频"
/>
<q-tab
:ripple=
"false"
name=
"six"
label=
"视频"
/>
<q-tab
:ripple=
"false"
name=
"seven"
label=
"小程序"
/>
<q-tab
:ripple=
"false"
name=
"eight"
label=
"文件"
/>
</q-tabs>
<div
v-if=
"tabCheck=='first'"
>
<allmaterial></allmaterial>
</div>
<div
v-if=
"tabCheck=='second'"
>
<textmaterial></textmaterial>
</div>
<div
v-if=
"tabCheck=='third'"
>
<imgmaterial></imgmaterial>
</div>
<div
v-if=
"tabCheck=='fourth'"
>
<imgtextmaterial></imgtextmaterial>
</div>
<div
v-if=
"tabCheck=='five'"
>
<audiomaterial></audiomaterial>
</div>
<div
v-if=
"tabCheck=='six'"
>
<videomaterial></videomaterial>
</div>
<div
v-if=
"tabCheck=='eight'"
>
<filematerial></filematerial>
</div>
</div>
</div>
</
template
>
<
script
>
import
allmaterial
from
'../../components/enterprise/material/allmaterial'
import
textmaterial
from
'../../components/enterprise/material/textmaterial'
import
imgmaterial
from
'../../components/enterprise/material/imgmaterial'
import
imgtextmaterial
from
'../../components/enterprise/material/imgtextmaterial'
import
audiomaterial
from
'../../components/enterprise/material/audiomaterial'
import
videomaterial
from
'../../components/enterprise/material/videomaterial'
import
filematerial
from
'../../components/enterprise/material/filematerial'
export
default
{
components
:
{
allmaterial
,
//所有列表
textmaterial
,
imgmaterial
,
imgtextmaterial
,
audiomaterial
,
videomaterial
,
filematerial
},
meta
:
{
title
:
"素材库"
},
name
:
"materialManage"
,
data
()
{
return
{
loading
:
false
,
pageCount
:
0
,
tabCheck
:
'first'
,
msg
:
{
pageIndex
:
1
,
pageSize
:
10
,
rowsPerPage
:
10
,
classifyId
:
0
,
Name
:
''
,
},
classifyList
:
[
{
Name
:
'全部'
,
ID
:
0
,
},
{
Name
:
'活动'
,
ID
:
1
,
},
{
Name
:
'产品'
,
ID
:
2
,
},
{
Name
:
'校园'
,
ID
:
3
,
},
{
Name
:
'销售'
,
ID
:
4
,
},
{
Name
:
'趣味'
,
ID
:
5
,
},
],
}
},
created
()
{
},
methods
:
{
changePage
(
e
)
{
},
getList
(){
},
goadd
()
{
this
.
$router
.
push
({
path
:
'/enterprise/addWelcome'
,
});
},
resetSearch
(){
this
.
msg
.
pageIndex
=
1
;
this
.
getList
()
}
}
}
</
script
>
<
style
>
.materialManage
.Sysuser_Date
.el-input--prefix
.el-input__inner
{
background-color
:
red
;
border
:
0
;
}
.materialManage
.state-item
{
padding
:
2px
5px
;
border-radius
:
3px
;
text-align
:
center
;
font-size
:
10px
;
}
.materialManage
.frIdlist
{
padding
:
3px
10px
;
border-radius
:
3px
;
background
:
#EEEEEF
;
align-items
:
center
;
justify-content
:
center
;
margin-right
:
5px
;
margin-bottom
:
5px
;
cursor
:
pointer
;
}
.class-popover
.q-pr-lg
{
padding-right
:
0
;
margin-top
:
20px
;
}
.materialManage
.el-date-editor.el-input
{
width
:
100%
;
}
.materialManage
.el-date-editor.el-input
input
{
background-color
:
transparent
!important
;
}
.materialManage
.el-range-editor
.el-range-input
{
background
:
none
;
}
.Sysuser_Date
.el-input__inner
{
background
:
transparent
!important
;
border
:
0
!important
;
}
.materialManage
.el-drawer.rtl
{
overflow
:
inherit
;
}
.materialupload
{
width
:
118px
;
height
:
118px
;
border-radius
:
4px
;
border
:
1px
dashed
#d9d9d9
;
background
:
#fafafa
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
padding
:
4px
;
}
</
style
>
\ No newline at end of file
src/pages/financial/XaddFinancialProcess.vue
View file @
9e9ab35e
...
@@ -746,7 +746,6 @@
...
@@ -746,7 +746,6 @@
this
.
xingzhenState
=
true
;
this
.
xingzhenState
=
true
;
this
.
addMsg
.
TemplateSorce
=
2
;
this
.
addMsg
.
TemplateSorce
=
2
;
this
.
CostIdS
.
push
(
'0'
)
this
.
CostIdS
.
push
(
'0'
)
// this.addMsg.PropertyType="";
this
.
getPropertyType
();
this
.
getPropertyType
();
}
}
this
.
getMaxDepartmentTierList
();
this
.
getMaxDepartmentTierList
();
...
...
src/pages/financial/addFinancialProcess.vue
View file @
9e9ab35e
...
@@ -790,7 +790,7 @@
...
@@ -790,7 +790,7 @@
// this.addMsg.PropertyType="";
// this.addMsg.PropertyType="";
this
.
getPropertyType
();
this
.
getPropertyType
();
}
}
// this.getMaxDepartmentTierList();
if
(
this
.
TemplateId
!=
0
)
{
if
(
this
.
TemplateId
!=
0
)
{
this
.
getList
();
this
.
getList
();
}
else
{
}
else
{
...
@@ -1702,22 +1702,6 @@
...
@@ -1702,22 +1702,6 @@
},
},
changeValue
(
value
)
{
changeValue
(
value
)
{
},
getMaxDepartmentTierList
()
{
// 获取直接主管层级
this
.
apipost
(
'admin_get_GetMaxDepartmentTier'
,
{},
res
=>
{
if
(
res
.
data
.
resultCode
==
1
)
{
let
data
=
res
.
data
.
data
;
let
newList
=
[];
data
.
forEach
(
x
=>
{
let
newObj
=
{
level
:
x
,
name
:
this
.
$t
(
'tips.di'
)
+
x
+
this
.
$t
(
'tips.jizhuguan'
),
}
newList
.
push
(
newObj
)
});
this
.
levelList
=
newList
}
else
{}
},
err
=>
{})
},
},
getCostTypeList
(
type
)
{
// 获取费用类型
getCostTypeList
(
type
)
{
// 获取费用类型
this
.
apipost
(
'Financial_post_GetTreeList'
,
{
this
.
apipost
(
'Financial_post_GetTreeList'
,
{
...
...
src/pages/financial/financalDocument/FinancialDocumentsDetail.vue
View file @
9e9ab35e
...
@@ -839,7 +839,12 @@
...
@@ -839,7 +839,12 @@
{{
sItem
}}
</span>
{{
sItem
}}
</span>
</span>
</span>
</
template
>
</
template
>
<
template
v-if=
"GetDetail.OtherType==28"
>
<span
class=
"fr"
style=
"text-decoration: underline;cursor: pointer;"
@
click=
"goTuikuanDetail('/user/billquery',GetDetail.ReFinanceId)"
>
退款申请单:
{{
GetDetail
.
ReFinanceId
}}
</span>
<span
class=
"fr"
style=
"text-decoration: underline;cursor: pointer;margin-right:20px;"
@
click=
"goTuikuanDetail('/courseRefund',GetDetail.ReFinanceId2)"
>
退款协议:
{{
GetDetail
.
ReFinanceId2
}}
</span>
</
template
>
<span
class=
"fr"
style=
"text-decoration: underline;cursor: pointer;"
v-if=
"GetDetail.OtherType==17"
<span
class=
"fr"
style=
"text-decoration: underline;cursor: pointer;"
v-if=
"GetDetail.OtherType==17"
@
click=
"lookbreakage(GetDetail.ReFinanceId)"
>
报损/报溢单:{{GetDetail.ReFinanceId}}
</span>
@
click=
"lookbreakage(GetDetail.ReFinanceId)"
>
报损/报溢单:{{GetDetail.ReFinanceId}}
</span>
<span
v-if=
"GetDetail.TemplateId==28 || GetDetail.TemplateId==30"
@
click=
"Gourl(GetDetail)"
<span
v-if=
"GetDetail.TemplateId==28 || GetDetail.TemplateId==30"
@
click=
"Gourl(GetDetail)"
...
@@ -2181,6 +2186,12 @@
...
@@ -2181,6 +2186,12 @@
path
:
tempStr
path
:
tempStr
});
});
},
},
//跳转到退款协议
goTuikuanDetail
(
path
,
Id
){
this
.
OpenNewUrl
(
path
,{
Id
:
Id
})
},
lookbreakage
(
ID
)
{
lookbreakage
(
ID
)
{
this
.
$router
.
replace
({
this
.
$router
.
replace
({
name
:
"breakageSingle"
,
name
:
"breakageSingle"
,
...
...
src/pages/sale/japaneseTrain.vue
View file @
9e9ab35e
...
@@ -115,7 +115,7 @@
...
@@ -115,7 +115,7 @@
<div
class=
"row"
style=
"align-items: center ;margin:0;padding:0;"
>
<div
class=
"row"
style=
"align-items: center ;margin:0;padding:0;"
>
<span
class=
"d2-n"
>
带课老师
</span>
<span
class=
"d2-n"
>
带课老师
</span>
<
template
v-if=
"item.Teacher_Id==0"
>
<
template
v-if=
"item.Teacher_Id==0"
>
<span
style=
"color:red"
>
未指定
</span>
<span
style=
"color:red"
>
未指定
</span>
</
template
>
</
template
>
<
template
v-else
>
<
template
v-else
>
<q-avatar
rounded
size=
"sm"
v-if=
"item.TeacherHead&&item.TeacherHead!=''"
>
<q-avatar
rounded
size=
"sm"
v-if=
"item.TeacherHead&&item.TeacherHead!=''"
>
...
@@ -271,8 +271,6 @@
...
@@ -271,8 +271,6 @@
<div
v-if=
"item.IsCanApply==0"
>
<div
v-if=
"item.IsCanApply==0"
>
<img
src=
"../../assets/images/administration/bmym.png"
alt=
""
<img
src=
"../../assets/images/administration/bmym.png"
alt=
""
style=
"width: 64px;height: 62px;margin:20px 15px 0 0"
v-if=
"item.SurplusNum==0"
>
style=
"width: 64px;height: 62px;margin:20px 15px 0 0"
v-if=
"item.SurplusNum==0"
>
<!-- <img src="../../assets/images/administration/guoqi.png" alt="" style="width: 64px;height: 62px"
v-if="getEXPDate(item.EndOrderTime)==true"> -->
</div>
</div>
<div>
<div>
<q-btn
style=
"margin-top:10px;"
size=
"sm"
color=
"primary"
label=
"订单中心"
@
click=
"goclassorder(item)"
/>
<q-btn
style=
"margin-top:10px;"
size=
"sm"
color=
"primary"
label=
"订单中心"
@
click=
"goclassorder(item)"
/>
...
@@ -301,8 +299,8 @@
...
@@ -301,8 +299,8 @@
</ul>
</ul>
<div
v-else
style=
"width: 100%;color: #999999;text-align: center;font-size: 15px"
>
暂无数据
</div>
<div
v-else
style=
"width: 100%;color: #999999;text-align: center;font-size: 15px"
>
暂无数据
</div>
</div>
</div>
<editorder-form
v-if=
"isShowEditOrderForm"
:save-obj=
"orderObj"
:orderType=
"1"
:modityOrderType=
"1"
:isChaBan=
"isChaBan"
<editorder-form
v-if=
"isShowEditOrderForm"
:save-obj=
"orderObj"
:orderType=
"1"
:modityOrderType=
"1"
@
close=
"closeOrderSaveForm"
@
success=
"refreshOrder"
>
:isChaBan=
"isChaBan"
@
close=
"closeOrderSaveForm"
@
success=
"refreshOrder"
>
</editorder-form>
</editorder-form>
</div>
</div>
</div>
</div>
...
@@ -347,7 +345,7 @@
...
@@ -347,7 +345,7 @@
Q_CanApply
:
"0"
,
//是否可以报名 1是
Q_CanApply
:
"0"
,
//是否可以报名 1是
JoinStartTime
:
''
,
//报名截止日期开始
JoinStartTime
:
''
,
//报名截止日期开始
JoinEndTime
:
""
,
//报名截止日期结束
JoinEndTime
:
""
,
//报名截止日期结束
ClassNo
:
''
,
//班号
ClassNo
:
''
,
//班号
},
},
//关联校区列表
//关联校区列表
schoolList
:
[],
schoolList
:
[],
...
@@ -360,6 +358,7 @@
...
@@ -360,6 +358,7 @@
orderObj
:
{
orderObj
:
{
ClassId
:
0
,
ClassId
:
0
,
Unit_Price
:
0
,
Unit_Price
:
0
,
CourseId
:
0
,
},
},
isChaBan
:
0
,
//是否插班(0-正常报入,1-插班报入)
isChaBan
:
0
,
//是否插班(0-正常报入,1-插班报入)
}
}
...
@@ -369,7 +368,7 @@
...
@@ -369,7 +368,7 @@
this
.
CourseList
();
this
.
CourseList
();
this
.
GetTeacherList
();
this
.
GetTeacherList
();
if
(
this
.
$route
.
query
&&
this
.
$route
.
query
.
ClassName
)
{
if
(
this
.
$route
.
query
&&
this
.
$route
.
query
.
ClassName
)
{
this
.
msg
.
ClassName
=
decodeURI
(
this
.
$route
.
query
.
ClassName
)
;
this
.
msg
.
ClassName
=
decodeURI
(
this
.
$route
.
query
.
ClassName
);
}
}
if
(
this
.
$route
.
query
&&
this
.
$route
.
query
.
ClassNo
)
{
if
(
this
.
$route
.
query
&&
this
.
$route
.
query
.
ClassNo
)
{
this
.
msg
.
ClassNo
=
this
.
$route
.
query
.
ClassNo
;
this
.
msg
.
ClassNo
=
this
.
$route
.
query
.
ClassNo
;
...
@@ -525,7 +524,7 @@
...
@@ -525,7 +524,7 @@
},
},
//立即报名和插班报名
//立即报名和插班报名
placeAnorder
(
item
,
type
)
{
placeAnorder
(
item
,
type
)
{
if
(
item
.
Teacher_Id
==
0
)
{
if
(
item
.
Teacher_Id
==
0
)
{
this
.
$q
.
notify
({
this
.
$q
.
notify
({
type
:
'negative'
,
type
:
'negative'
,
position
:
"top"
,
position
:
"top"
,
...
@@ -536,11 +535,12 @@
...
@@ -536,11 +535,12 @@
this
.
isChaBan
=
type
;
this
.
isChaBan
=
type
;
this
.
orderObj
.
ClassId
=
item
.
ClassId
;
this
.
orderObj
.
ClassId
=
item
.
ClassId
;
this
.
orderObj
.
Unit_Price
=
item
.
SellPrice
;
this
.
orderObj
.
Unit_Price
=
item
.
SellPrice
;
this
.
orderObj
.
CourseId
=
item
.
CouseId
;
this
.
isShowEditOrderForm
=
true
;
this
.
isShowEditOrderForm
=
true
;
},
},
//跳转到课程大纲
//跳转到课程大纲
goChapter
(
CouseId
){
goChapter
(
CouseId
)
{
this
.
OpenNewUrl
(
'/course/chapter'
,
{
this
.
OpenNewUrl
(
'/course/chapter'
,
{
CourseId
:
CouseId
CourseId
:
CouseId
});
});
}
}
...
@@ -684,15 +684,18 @@
...
@@ -684,15 +684,18 @@
border
:
none
!important
;
border
:
none
!important
;
background
:
transparent
!important
;
background
:
transparent
!important
;
}
}
.japanFeature
{
font-size
:
14px
;
.japanFeature
{
color
:
#111111
;
font-size
:
14px
;
color
:
#111111
;
cursor
:
pointer
;
cursor
:
pointer
;
margin-left
:
-1px
;
margin-left
:
-1px
;
}
}
.CourseFearure
{
margin
:
10px
;
.CourseFearure
{
width
:
500px
;
margin
:
10px
;
color
:
#000
;
width
:
500px
;
color
:
#000
;
}
}
</
style
>
</
style
>
src/pages/user/billquery.vue
View file @
9e9ab35e
...
@@ -300,6 +300,9 @@
...
@@ -300,6 +300,9 @@
}
}
},
},
mounted
()
{
mounted
()
{
if
(
this
.
$route
.
query
.
Id
){
this
.
msg
.
Id
=
this
.
$route
.
query
.
Id
;
}
this
.
currentUrl
=
this
.
$route
.
path
;
this
.
currentUrl
=
this
.
$route
.
path
;
this
.
getEducationType
();
this
.
getEducationType
();
this
.
getStuBackBill
();
this
.
getStuBackBill
();
...
...
src/router/routes.js
View file @
9e9ab35e
...
@@ -1140,6 +1140,18 @@ const routes = [{
...
@@ -1140,6 +1140,18 @@ const routes = [{
component
:
()
=>
component
:
()
=>
import
(
"pages/enterprise/addWelcome"
)
import
(
"pages/enterprise/addWelcome"
)
},
},
{
path
:
"/enterprise/materialManage"
,
//企微 素材管理
component
:
()
=>
import
(
"pages/enterprise/materialManage"
)
},
{
path
:
"/enterprise/groupingManage"
,
//企微 分组管理
component
:
()
=>
import
(
"pages/enterprise/groupingManage"
)
},
],
],
},
},
...
...
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