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
提交
f9746f63
提交
f9746f63
编写于
7月 20, 2022
作者:
qian.jie
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
教培弹窗添加
上级
fadb56db
变更
6
隐藏空白字符变更
内嵌
并排
正在显示
6 个修改的文件
包含
846 行增加
和
4 行删除
+846
-4
router.js
src/router/router.js
+10
-1
index.js
src/utils-o/index.js
+5
-1
env-config.js
src/utils/env-config.js
+7
-1
index.js
src/utils/index.js
+4
-1
editeach-popup.vue
src/views/education/editeach-popup.vue
+476
-0
teaching-popup.vue
src/views/education/teaching-popup.vue
+344
-0
未找到文件。
src/router/router.js
浏览文件 @
f9746f63
...
...
@@ -18,7 +18,8 @@ const editProfessionalExam = r => require.ensure([], () => r(require('../views/e
const
subjectManager
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'../views/education/subject-manager.vue'
)),
'subject-manager'
)
const
editSubject
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'../views/education/edit-subject.vue'
)),
'edit-subject'
)
const
reportDownload
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'../views/education/report-download.vue'
)),
'report-download'
)
const
teachingPopup
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'../views/education/teaching-popup.vue'
)),
'teaching-popup'
)
const
editeachPopup
=
r
=>
require
.
ensure
([],
()
=>
r
(
require
(
'../views/education/editeach-popup.vue'
)),
'editeach-popup'
)
import
patientsRouters
from
'./patients'
import
followRouters
from
'./follow'
...
...
@@ -140,6 +141,14 @@ export default [
path
:
"/report-download"
,
component
:
reportDownload
,
},
{
path
:
"/teaching-popup"
,
component
:
teachingPopup
,
},
{
path
:
"/editeach-popup"
,
component
:
editeachPopup
,
},
{
path
:
"/edit-subject"
,
component
:
editSubject
,
...
...
src/utils-o/index.js
浏览文件 @
f9746f63
...
...
@@ -220,4 +220,8 @@ export function getExeclUrl(url) {
// 获取教培项目文件地址
export
function
getItemFileUrl
(
url
)
{
return
getConfigByEnvType
(
'itemFileUrl'
)
+
url
}
\ No newline at end of file
}
// // 获取教培弹框url
// export function getEdUrl() {
// return getConfigByEnvType('tEdUrl')
// }
\ No newline at end of file
src/utils/env-config.js
浏览文件 @
f9746f63
...
...
@@ -42,6 +42,7 @@ export const envConfig = {
stsUrl
:
"https://dev-api.yunqueyi.com/middle/oss/token/"
,
//sts服务器
bucketName
:
"pica-test-huabei2"
,
endpoint
:
"oss-cn-beijing.aliyuncs.com"
,
tEdUrl
:
"https://dev-phome.yunqueyi.com/coopv2/#/previewActivityDialog"
},
dev
:
{
baseUrl
:
'https://dev-sc.yunqueyi.com/'
,
...
...
@@ -64,6 +65,7 @@ export const envConfig = {
stsUrl
:
"https://dev-api.yunqueyi.com/middle/oss/token/"
,
//sts服务器
bucketName
:
"pica-test-huabei2"
,
endpoint
:
"oss-cn-beijing.aliyuncs.com"
,
tEdUrl
:
"https://dev-phome.yunqueyi.com/coopv2/#/previewActivityDialog"
},
test
:
{
baseUrl
:
'https://test1-sc.yunqueyi.com/'
,
...
...
@@ -86,6 +88,7 @@ export const envConfig = {
stsUrl
:
"https://test1-api.yunqueyi.com/middle/oss/token/"
,
//sts服务器
bucketName
:
"pica-test-huabei2"
,
endpoint
:
"oss-cn-beijing.aliyuncs.com"
,
tEdUrl
:
"https://test1-phome.yunqueyi.com/coopv2/#/previewActivityDialog"
},
test2
:
{
baseUrl
:
'https://test2-work.yunqueyi.com/sc/'
,
...
...
@@ -107,6 +110,7 @@ export const envConfig = {
stsUrl
:
"https://test2-api.yunqueyi.com/middle/oss/token/"
,
//sts服务器
bucketName
:
"pica-test-huabei2"
,
endpoint
:
"oss-cn-beijing.aliyuncs.com"
,
tEdUrl
:
"https://test1-phome.yunqueyi.com/coopv2/#/previewActivityDialog"
},
uat
:
{
baseUrl
:
'https://uat-sc.yunqueyi.com/'
,
...
...
@@ -129,6 +133,7 @@ export const envConfig = {
stsUrl
:
"https://uat-api.yunqueyi.com/middle/oss/token/"
,
//sts服务器
bucketName
:
"pica-pro"
,
endpoint
:
"oss-cn-shanghai.aliyuncs.com"
,
tEdUrl
:
"https://uat-phome.yunqueyi.com/coopv2/#/previewActivityDialog"
},
pro
:
{
baseUrl
:
'https://sc.yunqueyi.com/'
,
...
...
@@ -150,6 +155,7 @@ export const envConfig = {
ossImgUrl
:
'https://file.yunqueyi.com'
,
stsUrl
:
"https://api.yunqueyi.com/middle/oss/token/"
,
//sts服务器
bucketName
:
"pica-pro"
,
endpoint
:
"oss-cn-shanghai.aliyuncs.com"
endpoint
:
"oss-cn-shanghai.aliyuncs.com"
,
tEdUrl
:
"https://phome.yunqueyi.com/coopv2/#/previewActivityDialog"
}
}
src/utils/index.js
浏览文件 @
f9746f63
...
...
@@ -250,7 +250,10 @@ export function getItemFileUrl(url) {
export
function
getCmsUrl
(
url
)
{
return
getConfigByEnvType
(
'cmsUrl'
)
+
url
}
// 获取教培弹框url
export
function
getEdUrl
()
{
return
getConfigByEnvType
(
'tEdUrl'
)
}
// 转换时间格式
...
...
src/views/education/editeach-popup.vue
0 → 100644
浏览文件 @
f9746f63
<
template
>
<div
class=
"editeach-popup"
>
<bread-crumb
:curmbFirst=
"curmbFirst"
:curmbSecond=
"curmbSecond"
></bread-crumb>
<div
class=
"component-content screenSet"
id=
"screenSet"
>
<div
class=
"header-title"
>
{{
showTitle
}}
弹窗
</div>
<div
class=
"formInfo"
>
<el-form
:model=
"ruleForm"
:rules=
"rules"
ref=
"ruleForm"
label-width=
"100px"
class=
"demo-ruleForm"
>
<el-form-item
label=
"标题"
prop=
"title"
>
<el-input
v-model=
"ruleForm.title"
class=
"form-input"
placeholder=
"请输入标题"
maxlength=
"10"
show-word-limit
></el-input>
</el-form-item>
<el-form-item
label=
"内容"
prop=
"content"
>
<el-input
type=
"textarea"
v-model=
"ruleForm.content"
class=
"form-input"
placeholder=
"请输入内容"
maxlength=
"20"
show-word-limit
></el-input>
</el-form-item>
<el-form-item
label=
"页面类型"
class=
"form-input"
prop=
"contentTitle"
>
<el-select
v-model=
"contentTitle"
class=
"form-input"
>
<el-option
label=
"项目详情页"
value=
"项目详情页"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"所属项目"
prop=
"projectIds"
>
<el-select
multiple
v-model=
"ruleForm.projectIds"
class=
"form-input"
placeholder=
"请选择所属项目"
>
<el-option
v-for=
"item in optionsProject"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"链接类型"
prop=
"linkType"
>
<el-select
v-model=
"ruleForm.linkType"
class=
"form-input"
placeholder=
"请选择链接类型"
clearable
>
<el-option
v-for=
"item in linkSelect"
:key=
"item.value"
:label=
"item.label"
:value=
"item.value"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"选择模块"
prop=
"appModuleId"
v-if=
"ruleForm.linkType == 4"
>
<el-select
v-model=
"ruleForm.appModuleId"
class=
"form-input"
placeholder=
"请选择模块"
clearable
>
<el-option
v-for=
"item in nameList"
:key=
"item.id"
:label=
"item.name"
:value=
"item.id"
>
</el-option>
</el-select>
</el-form-item>
<div
class=
"basic-item-icon"
>
<el-form-item
label=
"弹框配图"
class=
"required-label"
prop=
"boxImgUrl"
>
<el-upload
v-model=
"ruleForm.boxImgUrl"
class=
"bg-uploader"
action=
"#"
:show-file-list=
"false"
:before-upload=
"beforeUploadPic1"
>
<img
v-if=
"ruleForm.boxImgUrl"
:src=
"ruleForm.boxImgUrl"
@
mouseover
.
stop=
"imgMouseOver1=true"
class=
"bg-img"
/>
<img
v-if=
"!ruleForm.boxImgUrl"
class=
"bg-img"
src=
"../../assets/image/small.png"
/>
<div
class=
"img-delete"
v-show=
"imgMouseOver1"
@
click
.
stop=
"deleteImg(1)"
@
mouseout
.
stop=
"imgMouseOver1=false"
>
<i
class=
"el-icon-delete"
></i>
</div>
<div
class=
"limit-text"
>
<p>
宽度:650PX,高度:小于860PX
</p>
<p>
大小:1.5M以内
</p>
<p>
仅支持JPEG/PNG/GIF格式
</p>
</div>
</el-upload>
</el-form-item>
</div>
<el-form-item
label=
"显示规则"
prop=
"ruleType"
>
<el-select
v-model=
"ruleType"
>
<el-option
label=
"每次打开均弹"
value=
"每次打开均弹"
></el-option>
</el-select>
</el-form-item>
<el-form-item
label=
"展示频次"
prop=
"unitTimes"
>
1天最多
<el-input
v-model=
"ruleForm.unitTimes"
class=
"form-input-Show"
maxlength=
"2"
placeholder=
"请输入次数"
></el-input>
次
</el-form-item>
<el-form-item
v-if=
"showType != 1"
>
<el-button
@
click=
"cancel"
>
取消
</el-button>
<el-button
type=
"primary"
@
click=
"submitForm('ruleForm')"
>
提交
</el-button>
<el-button
:style=
"
{marginLeft:'100px'}" type="primary" @click="seeLook">预览
</el-button>
</el-form-item>
</el-form>
</div>
</div>
<el-dialog
title=
"预览"
:visible
.
sync=
"dialogVisibleJp"
width=
"50%"
:before-close=
"handleClose"
>
<div
id=
"qrcode"
class=
"qrcode-wrap"
></div>
<span
slot=
"footer"
class=
"dialog-footer"
>
</span>
</el-dialog>
</div>
</
template
>
<
script
>
import
BreadCrumb
from
"../../components/breadcrumb.vue"
;
import
{
doUpload
,
getFilePath
}
from
"../../utils/qiniu-util"
;
import
{
openLoading
,
closeLoading
}
from
"../../utils/utils"
;
import
{
getEdUrl
}
from
"@/utils/index"
;
import
QRCode
from
"qrcodejs2"
let
vm
=
null
export
default
{
components
:
{
BreadCrumb
,
QRCode
},
data
()
{
return
{
curmbFirst
:
"教培项目"
,
curmbSecond
:
"弹窗管理"
,
showType
:
''
,
showId
:
''
,
ruleForm
:
{
title
:
""
,
content
:
""
,
boxImgUrl
:
""
,
pageType
:
0
,
projectIds
:[],
ruleType
:
0
,
unit
:
1
,
unitTimes
:
""
,
linkType
:
""
,
appModuleId
:
""
},
contentTitle
:
'项目详情页'
,
ruleType
:
'每次打开均弹'
,
rules
:
{
linkType
:
[
{
required
:
true
,
message
:
'请选择链接类型'
,
trigger
:
'change'
}
],
projectIds
:
[
{
required
:
true
,
message
:
'请选择所属项目'
,
trigger
:
'change'
}
],
boxImgUrl
:
[
{
required
:
true
,
message
:
'请上传配图'
,
trigger
:
'change'
}
],
appModuleId
:
[
{
required
:
true
,
message
:
'请选择模块'
,
trigger
:
'change'
}
],
unitTimes
:[
{
required
:
true
,
message
:
'请输入次数'
,
trigger
:
'change'
},
{
pattern
:
/^
\d
+$|^
\d
+
[
.
]?\d
+$/
,
message
:
'请输入正确格式,只允许数字哦'
}
],
},
rankList
:[],
hiddenFileList
:
false
,
fileList
:[],
imgMouseOver1
:
false
,
qrcodeBox
:
null
,
dialogVisibleJp
:
false
,
linkSelect
:[],
nameList
:[],
optionsProject
:[]
}
},
created
()
{
vm
=
this
const
{
id
,
showType
}
=
vm
.
$route
.
query
;
vm
.
showType
=
showType
;
vm
.
showId
=
id
;
if
(
id
)
{
vm
.
getIdDetail
();
}
vm
.
getLinkType
();
vm
.
getModuleData
();
vm
.
initOption
();
},
computed
:
{
showTitle
()
{
if
(
vm
.
showType
==
3
)
{
return
'新增'
}
else
if
(
vm
.
showType
==
1
)
{
return
'查看'
}
else
{
return
'编辑'
}
}
},
methods
:
{
// 获取弹窗详情
getIdDetail
()
{
openLoading
(
vm
);
vm
.
GET
(
`portal/popBox/getPopBoxDetails/
${
vm
.
showId
}
`
).
then
((
res
)
=>
{
closeLoading
(
vm
);
if
(
res
.
code
==
"000000"
)
{
console
.
log
(
res
.
data
);
vm
.
ruleForm
=
{...
res
.
data
,
appModuleId
:
res
.
data
.
moduleInfo
.
id
,
linkType
:
res
.
data
.
moduleInfo
.
linkType
};
}
else
{
vm
.
$message
.
error
(
res
.
data
.
message
);
}
})
.
catch
(
function
(
error
)
{
closeLoading
(
vm
);
vm
.
$message
.
error
(
error
);
});
},
// 取消
cancel
()
{
// if (vm.ruleForm.title || vm.ruleForm.content || vm.ruleForm.startTime || vm.ruleForm.endTime || vm.ruleForm.imageUrl || vm.ruleForm.limitNum || vm.ruleForm.originalPrice || vm.ruleForm.rank) {
// vm.dialogVisibleDown = true;
// }else {
// this.$router.push(`/popupManagement`);
// }
},
// 获取链接类型下拉数据
getLinkType
()
{
vm
.
GET
(
`contents/commonComstant/selectByTypeCode?code=
${
'C005'
}
`
)
.
then
(
function
(
res
)
{
if
(
res
.
code
==
"000000"
)
{
let
linkObject
=
JSON
.
parse
(
JSON
.
stringify
(
res
.
data
));
//通过这个实现深拷贝
let
keys
=
Object
.
keys
(
linkObject
);
for
(
var
i
=
0
;
i
<
keys
.
length
;
i
++
)
{
vm
.
linkSelect
.
push
({
label
:
linkObject
[
keys
[
i
]],
value
:
keys
[
i
]
-
0
,
});
}
}
})
.
catch
(
function
(
error
)
{
vm
.
$message
.
error
(
error
);
});
},
// 获取模块下拉数据
getModuleData
()
{
vm
.
GET
(
`contents/moduleConfig/selectName`
)
.
then
(
function
(
res
)
{
if
(
res
.
code
==
"000000"
)
{
vm
.
nameList
=
res
.
data
.
nameList
||
[];
}
})
.
catch
(
function
(
error
)
{
vm
.
$message
.
error
(
error
);
});
},
// 设置选择框选项
setOption
(
data
)
{
let
list
=
[];
for
(
let
i
=
0
;
i
<
data
.
length
;
i
++
)
{
let
obj
=
{
value
:
data
[
i
].
projectId
,
label
:
data
[
i
].
projectName
,
}
list
.
push
(
obj
);
}
return
list
;
},
// 初始化项目选择框
initOption
()
{
let
req
=
{
status
:
0
,
type
:
2
};
openLoading
(
vm
);
vm
.
GET
(
"portal/entryInfo/getProjectList"
,
req
).
then
(
res
=>
{
closeLoading
(
vm
);
if
(
res
.
code
==
"000000"
)
{
console
.
log
(
'000000'
);
vm
.
optionsProject
=
vm
.
setOption
(
res
.
data
);
}
});
},
//上传圈子头像
beforeUploadPic1
(
file
)
{
let
fileLimit
=
{
width
:
650
,
height
:
860
,
size
:
1.5
,
sizeText
:
"500K"
,
key
:
"boxImgUrl"
,
more
:
"imgUrl1More"
,
show
:
"uploadImgMessage1"
};
this
.
beforeUpload
(
file
,
fileLimit
);
},
//上传图片
beforeUpload
(
file
,
fileLimit
)
{
let
vm
=
this
;
const
isJPG
=
file
.
type
===
"image/jpeg"
;
const
isPNG
=
file
.
type
===
"image/png"
;
const
isLt2M
=
file
.
size
/
1024
/
1024
<
fileLimit
.
size
;
console
.
log
(
file
.
size
/
1024
/
1024
);
console
.
log
(
fileLimit
.
size
);
console
.
log
(
isLt2M
,
'isLt2M'
);
if
(
!
isJPG
&&
!
isPNG
)
{
vm
.
$message
.
error
(
"图片必须是jpeg或png格式,同时长宽尺寸和图片大小需符合要求"
);
return
;
}
if
(
!
isLt2M
)
{
vm
.
$message
.
error
(
"图片大小不符合规范,请根据规范上传图片 "
);
return
;
}
let
_img
=
new
FileReader
();
_img
.
readAsDataURL
(
file
);
_img
.
onload
=
function
(
theFile
)
{
let
image
=
new
Image
()
image
.
src
=
theFile
.
target
.
result
image
.
onload
=
function
()
{
let
_this
=
this
;
openLoading
(
vm
);
doUpload
(
vm
,
file
,
getFilePath
(
file
,
null
),
"preview4"
,
"progress1"
,
1
).
then
(
function
(
path
)
{
closeLoading
(
vm
);
console
.
log
(
'上传成功后路径'
,
path
);
if
(
fileLimit
.
show
==
"uploadImgMessage1"
)
{
vm
.
uploadImgMessage1
=
false
;
}
else
if
(
fileLimit
.
show
==
"uploadImgMessage2"
)
{
vm
.
uploadImgMessage2
=
false
;
}
vm
.
ruleForm
[
fileLimit
.
key
]
=
path
.
fullPath
;
vm
.
ruleForm
[
fileLimit
.
more
]
=
{
attachmentName
:
path
.
name
,
attachmentExt
:
path
.
ext
,
attachmentSize
:
path
.
size
};
vm
.
$message
.
success
(
"上传成功"
);
});
};
};
return
isJPG
&&
isLt2M
;
},
//删除图片
deleteImg
(
type
)
{
if
(
type
==
1
)
{
vm
.
ruleForm
.
boxImgUrl
=
""
;
vm
.
imgMouseOver1
=
false
;
}
},
seeLook
()
{
vm
.
submitForm
(
'ruleForm'
,
'pre'
)
vm
.
preViewFn
();
},
preViewFn
()
{
let
downloadUrl
=
getEdUrl
(
'url'
);
console
.
log
(
downloadUrl
,
'downloadUrldownloadUrldownloadUrl'
);
vm
.
link
=
`
${
downloadUrl
}
?id=
${
vm
.
showId
}
`
vm
.
dialogVisibleJp
=
true
;
vm
.
$nextTick
(
function
()
{
vm
.
qrcode
();
})
},
// 提交
submitForm
(
formName
,
pre
)
{
vm
.
$refs
[
formName
].
validate
((
valid
)
=>
{
if
(
valid
)
{
let
req
=
{
appModuleId
:
vm
.
ruleForm
.
appModuleId
,
boxImgUrl
:
vm
.
ruleForm
.
boxImgUrl
,
content
:
vm
.
ruleForm
.
content
,
pageType
:
vm
.
ruleForm
.
pageType
,
projectIds
:
vm
.
ruleForm
.
projectIds
,
ruleType
:
vm
.
ruleForm
.
ruleType
,
showTimes
:
1
,
title
:
vm
.
ruleForm
.
title
,
unit
:
vm
.
ruleForm
.
unit
,
unitTimes
:
vm
.
ruleForm
.
unitTimes
,
};
if
(
vm
.
showId
)
{
req
=
{...
req
,
id
:
vm
.
showId
}
}
openLoading
(
vm
);
vm
.
POST
(
"portal/popBox/saveOrUpdate"
,
req
)
.
then
((
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
closeLoading
(
vm
);
if
(
pre
==
'pre'
)
{
vm
.
preViewFn
();
}
else
{
vm
.
$message
({
message
:
'保存成功'
,
type
:
'success'
});
vm
.
$router
.
go
(
-
1
);
}
}
else
{
vm
.
$message
.
info
(
res
.
message
);
}
})
.
catch
(
function
(
error
)
{
vm
.
$message
.
error
(
error
);
});
}
else
{
console
.
log
(
'error submit!!'
);
return
false
;
}
});
},
// 生成二维码
qrcode
()
{
if
(
vm
.
qrcodeBox
)
{
vm
.
qrcodeBox
.
makeCode
(
vm
.
link
);
return
;
}
vm
.
qrcodeBox
=
new
QRCode
(
'qrcode'
,
{
width
:
400
,
height
:
400
,
text
:
vm
.
link
,
// 二维码内容
// render: 'canvas' , // 设置渲染方式(有两种方式 table和canvas,默认是canvas)
// background: '#f0f', // 背景色
// foreground: '#ff0' // 前景色
})
},
// 关闭预览弹框
handleClose
()
{
vm
.
dialogVisibleJp
=
false
;
},
}
}
</
script
>
<
style
lang=
"scss"
>
.editeach-popup
{
.component-content
{
background
:
#fff
;
padding
:
10px
;
.header-title
{
padding
:
10px
12px
;
font-size
:
12px
;
color
:
#449284
;
border-bottom
:
1px
solid
#efefef
;
}
.formInfo
{
margin-top
:
30px
;
.form-input
{
width
:
500px
;
}
.form-input-Show
{
width
:
125px
;
}
.avatar-uploader-icon
{
background-color
:
#fbfdff
;
border
:
1px
dashed
#c0ccda
;
border-radius
:
6px
;
box-sizing
:
border-box
;
width
:
148px
;
height
:
148px
;
cursor
:
pointer
;
line-height
:
146px
;
vertical-align
:
top
;
}
.basic-item-icon
{
width
:
500px
;
.bg-uploader
{
.el-upload
{
display
:
flex
;
align-items
:
center
;
.limit-text
{
text-align
:
left
;
margin-left
:
20px
;
p
{
line-height
:
20px
;
}
}
}
.bg-img
{
width
:
120px
;
}
}
}
}
}
.qrcode-wrap
{
width
:
400px
;
height
:
400px
;
margin
:
0
auto
;
}
}
</
style
>
\ No newline at end of file
src/views/education/teaching-popup.vue
0 → 100644
浏览文件 @
f9746f63
<
template
>
<div
class=
"teaching-popup"
>
<bread-crumb
:curmbFirst=
"curmbFirst"
:curmbSecond=
"curmbSecond"
></bread-crumb>
<div
class=
"component-content screenSet"
id=
"screenSet"
>
<div
class=
"header-title"
>
弹窗管理
</div>
<!-- 搜索 -->
<el-row
:gutter=
"30"
class=
"row"
type=
"flex"
style=
"margin-top: 10px;"
>
<el-form
ref=
"serchForm"
:model=
"searchParam"
label-width=
"75px"
style=
"width:100%;"
>
<el-col
:span=
"6"
>
<el-form-item
label=
"标题:"
>
<el-input
v-model=
"searchParam.titleStr"
size=
"small"
placeholder=
"请输入标题"
></el-input>
</el-form-item>
</el-col>
<el-col
:span=
"6"
style=
"padding-top:5px;"
>
<el-button
type=
"primary"
size=
"small"
@
click=
"search(1)"
>
查询
</el-button>
</el-col>
<el-col
:span=
"10"
style=
"padding:0;text-align:right;padding-right:15px;padding-top:5px;"
>
<el-button
type=
"primary"
size=
"small"
@
click=
"addNewLog"
style=
"margin-left:0;"
>
新建弹窗
</el-button>
</el-col>
</el-form>
</el-row>
<!-- 表格 -->
<el-table
:data=
"tableData"
style=
"width: 100%; margin-top:30px"
>
<el-table-column
prop=
"id"
label=
"ID"
min-width=
"100"
align=
"center"
></el-table-column>
<el-table-column
prop=
"title"
label=
"标题"
min-width=
"200"
align=
"center"
></el-table-column>
<el-table-column
prop=
"uploadTime"
label=
"发布时间"
min-width=
"100"
align=
"center"
>
<template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.uploadTime"
>
{{
scope
.
row
.
uploadTime
}}
</span>
<span
v-else
>
一
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"status"
label=
"状态"
min-width=
"80"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span>
{{
scope
.
row
.
status
|
statusFilter
}}
</span>
</
template
>
</el-table-column>
<el-table-column
prop=
"lastUpdateTime"
label=
"最后修改时间"
min-width=
"160"
align=
"center"
>
<
template
slot-scope=
"scope"
>
<span
v-if=
"scope.row.lastUpdateTime"
>
{{
scope
.
row
.
lastUpdateTime
}}
</span>
<span
v-else
>
一
</span>
</
template
>
</el-table-column>
<el-table-column
label=
"操作"
fixed=
"right"
align=
"center"
min-width=
"200"
>
<
template
slot-scope=
"scope"
>
<el-button
type=
"primary"
v-if=
"scope.row.status == 2"
size=
"small"
@
click=
"preView(scope.row)"
>
查看
</el-button>
<el-button
size=
"small"
v-if=
"scope.row.status == 1"
@
click=
"editColumn(scope.row)"
>
编辑
</el-button>
<el-button
v-if=
"scope.row.status == 2"
type=
"danger"
size=
"small"
@
click=
"downStatus(scope.row)"
>
下架
</el-button>
<el-button
v-else
type=
"primary"
size=
"small"
@
click=
"openStatusDialog(scope.row)"
>
发布
</el-button>
</
template
>
</el-table-column>
<div
slot=
"empty"
>
<div
class=
"table-empty"
>
<img
src=
"../../assets/image/no-content1.png"
/>
<p>
没有查询到相关结果
</p>
</div>
</div>
</el-table>
<!-- 分页 -->
<div
class=
"pagination"
>
<el-pagination
background
@
size-change=
"handleSizeChange"
@
current-change=
"handleCurrentChange"
:current-page=
"searchParam.pageNo"
:page-sizes=
"[10, 30, 50, 100]"
:page-size=
"searchParam.pageSize"
layout=
"total, sizes, prev, pager, next, jumper"
:total=
"totalRows"
></el-pagination>
</div>
<el-dialog
class=
"dialogFaBu"
:visible
.
sync=
"dialogVisible"
width=
"30%"
>
<div
class=
"showInfo"
:style=
"{paddingLeft:'50px'}"
>
<span
class=
"titleTop"
>
<span
class=
"checkIconTitle"
><i
class=
"el-icon-check"
></i></span>
<span
class=
"titleInfo"
>
确认发布弹框
</span>
</span>
<p
class=
"titlePsizw"
>
确认发布 {{showTitleInfo.title}} 吗
</p>
</div>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"dialogVisible = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"submitFaBu(1)"
>
确 定
</el-button>
</span>
</el-dialog>
<el-dialog
class=
"dialogFaBu"
:visible
.
sync=
"dialogVisibleDown"
width=
"30%"
>
<div
class=
"showInfo"
:style=
"{paddingLeft:'50px'}"
>
<span
class=
"titleTop"
>
<span
class=
"checkIconTitleDown"
><i
class=
"el-icon-close"
></i></span>
<span
class=
"titleInfo"
>
确认下架弹框
</span>
</span>
<p
class=
"titlePsizw"
>
确定下架 {{showTitleInfo.title}} 吗
</p>
</div>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"dialogVisibleDown = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"submitFaBu(2)"
>
确 定
</el-button>
</span>
</el-dialog>
<el-dialog
class=
"dialogFaBu"
:visible
.
sync=
"dialogVisibleCover"
width=
"30%"
>
<div
class=
"showInfo"
:style=
"{paddingLeft:'50px'}"
>
<span
class=
"titleTop"
>
<span
class=
"checkIconTitleDown"
><i
class=
"el-icon-close"
></i></span>
<span
class=
"titleInfo"
>
确认覆盖之前的弹窗吗?
</span>
</span>
<p
class=
"titlePsizw"
>
您选择的教培项目有配置过弹窗,是否要覆盖之前的弹窗,使用本次新增的弹窗
</p>
</div>
<span
slot=
"footer"
class=
"dialog-footer"
>
<el-button
@
click=
"dialogVisibleCover = false"
>
取 消
</el-button>
<el-button
type=
"primary"
@
click=
"submitCover"
>
确 定
</el-button>
</span>
</el-dialog>
</div>
</div>
</template>
<
script
>
import
BreadCrumb
from
"../../components/breadcrumb.vue"
;
let
vm
=
null
;
export
default
{
components
:
{
BreadCrumb
},
data
()
{
return
{
curmbFirst
:
"教培项目"
,
curmbSecond
:
"弹窗管理"
,
formInline
:
{
pageNo
:
1
,
pageSize
:
10
},
searchParam
:{
titleStr
:
''
,
pageNo
:
1
,
pageSize
:
10
},
tableData
:[],
totalRows
:
0
,
linkSelect
:
[],
dialogVisible
:
false
,
dialogVisibleDown
:
false
,
dialogVisibleCover
:
false
,
showTitleInfo
:{}
}
},
computed
:
{
},
created
()
{
vm
=
this
;
vm
.
search
();
},
filters
:
{
statusFilter
(
val
)
{
if
(
val
==
2
)
{
return
'已发布'
}
else
if
(
val
==
1
)
{
return
'未发布'
}
}
},
methods
:
{
handleSizeChange
(
val
)
{
vm
.
searchParam
.
pageSize
=
val
;
vm
.
search
();
},
handleCurrentChange
(
val
)
{
vm
.
searchParam
.
pageNo
=
val
;
vm
.
search
();
},
search
()
{
let
req
=
{
titleStr
:
this
.
searchParam
.
titleStr
,
pageNo
:
this
.
searchParam
.
pageNo
,
pageSize
:
this
.
searchParam
.
pageSize
};
vm
.
POST
(
"portal/popBox/getPopBoxList"
,
req
)
.
then
((
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
this
.
tableData
=
res
.
data
.
list
;
this
.
totalRows
=
res
.
data
.
allSize
;
}
else
{
vm
.
$message
.
info
(
res
.
message
);
}
})
.
catch
(
function
(
error
)
{
vm
.
$message
.
error
(
error
);
});
},
submitFaBu
(
value
)
{
if
(
value
==
1
)
{
vm
.
submitCover
();
}
else
{
let
req
=
{
confirmFlag
:
1
,
id
:
vm
.
showTitleInfo
.
id
};
vm
.
POST
(
"portal/popBox/undercarriagePopBox"
,
req
)
.
then
((
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
vm
.
dialogVisibleDown
=
false
;
vm
.
search
();
}
else
{
vm
.
$message
.
info
(
res
.
message
);
}
})
.
catch
(
function
(
error
)
{
vm
.
$message
.
error
(
error
);
});
}
},
// 查看
preView
(
data
)
{
console
.
log
(
data
);
this
.
$router
.
push
({
path
:
'/editeach-popup'
,
query
:{
id
:
data
.
id
,
showType
:
1
}});
},
// 编辑
editColumn
(
data
)
{
console
.
log
(
data
);
this
.
$router
.
push
({
path
:
'/editeach-popup'
,
query
:{
id
:
data
.
id
,
showType
:
2
}});
},
// 新增弹窗
addNewLog
()
{
this
.
$router
.
push
({
path
:
'/editeach-popup'
,
query
:{
showType
:
3
}});
},
openStatusDialog
(
data
)
{
let
req
=
{
confirmFlag
:
0
,
id
:
data
.
id
};
vm
.
POST
(
"portal/popBox/uploadPopBox"
,
req
)
.
then
((
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
console
.
log
(
res
,
'22222'
);
if
(
res
.
data
.
haveBox
==
1
)
{
// 有已发布的冲突,需覆盖
vm
.
showTitleInfo
=
data
;
vm
.
dialogVisibleCover
=
true
;
}
else
{
vm
.
showTitleInfo
=
data
;
vm
.
dialogVisible
=
true
;
}
}
else
{
vm
.
$message
.
info
(
res
.
message
);
}
})
.
catch
(
function
(
error
)
{
vm
.
$message
.
error
(
error
);
});
},
// 覆盖
submitCover
()
{
let
req
=
{
confirmFlag
:
1
,
id
:
vm
.
showTitleInfo
.
id
};
vm
.
POST
(
"portal/popBox/uploadPopBox"
,
req
)
.
then
((
res
)
=>
{
if
(
res
.
code
==
"000000"
)
{
if
(
res
.
data
.
isSuccess
==
1
)
{
vm
.
dialogVisible
=
false
;
vm
.
dialogVisibleCover
=
false
;
}
vm
.
search
();
}
else
{
vm
.
$message
.
info
(
res
.
message
);
}
})
.
catch
(
function
(
error
)
{
vm
.
$message
.
error
(
error
);
});
},
downStatus
(
data
)
{
vm
.
showTitleInfo
=
data
;
vm
.
dialogVisibleDown
=
true
;
},
}
}
</
script
>
<
style
lang=
"scss"
>
.teaching-popup
{
.component-content
{
background
:
#fff
;
padding
:
10px
;
.header-title
{
padding
:
10px
12px
;
font-size
:
12px
;
color
:
#449284
;
border-bottom
:
1px
solid
#efefef
;
}
}
.dialogFaBu
{
.titleTop
{
margin-bottom
:
10px
;
.checkIconTitleDown
{
background
:red
;
border-radius
:
50%
;
padding
:
5px
;
margin-right
:
10px
;
}
.checkIconTitle
{
background
:
#67C23A
;
border-radius
:
50%
;
padding
:
5px
;
margin-right
:
10px
;
}
.el-icon-close
{
width
:
15px
;
height
:
15px
;
color
:
white
;
}
.el-icon-check
{
width
:
15px
;
height
:
15px
;
color
:
white
;
}
}
.titlePsizw
{
padding-top
:
20px
;
padding-left
:
38px
;
}
}
}
</
style
>
\ No newline at end of file
写
预览
Markdown
格式
0%
请重试
or
附加一个文件
附加文件
取消
您添加了
0
人
到此讨论。请谨慎行事。
先完成此消息的编辑!
取消
想要评论请
注册
或
登录