Compare commits

...

27 Commits

Author SHA1 Message Date
a0049873 ef987f2d42 Merge branch 'hi-ucs-dev' into release
# Conflicts:
#	front/public/static/config/basicConfig.js
#	front/src/App.vue
2022-12-08 13:43:39 +08:00
gongjiale 99ebdc2516 Merge branch 'hi-ucs-dev' of http://192.168.124.50:3000/wuhongjian/hi-ucs into hi-ucs-dev 2022-12-07 15:34:10 +08:00
gongjiale 1c739cca2e 修改UI 2022-12-07 15:33:59 +08:00
a0049873 42c3ce4525 全局搜索 2022-12-07 10:16:31 +08:00
a0049873 cfcf580da2 拆分会客厅 2022-12-07 09:36:45 +08:00
a0049873 1eb4e4f46e 数据资源左侧列表 2022-12-06 17:48:58 +08:00
a0049873 7a096d5dc1 批量审批开发 2022-12-06 11:19:50 +08:00
wuhongjian 491f2910b1 Merge branch 'hi-ucs-dev' of http://124.222.94.39:3000/wuhongjian/hi-ucs into hi-ucs-dev 2022-12-05 17:39:02 +08:00
wuhongjian 6085e640d7 cookie过期时间更正 2022-12-05 17:38:59 +08:00
a0049873 3169ff030e Merge branch 'hi-ucs-dev' of http://192.168.124.50:3000/wuhongjian/hi-ucs into hi-ucs-dev 2022-12-05 17:35:27 +08:00
a0049873 f3c6415726 催办功能开发 基础设施左侧树判断条件修改 2022-12-05 17:33:53 +08:00
gongjiale 15d0c850c4 修改jire问题 2022-12-05 15:40:55 +08:00
a0049873 ddc0b15123 tab相关BUG修改 jira269 2022-12-03 16:27:24 +08:00
a0049873 5c45ee5ea5 BUG修改 2022-12-03 15:13:13 +08:00
a0049873 6423153f5c Merge branch 'hi-ucs-dev' of http://192.168.124.50:3000/wuhongjian/hi-ucs into hi-ucs-dev 2022-12-02 17:45:52 +08:00
a0049873 dc2fe63682 登录BUG修改 2022-12-02 17:45:32 +08:00
wuhongjian cf1f925192 Merge branch 'hi-ucs-dev' of http://124.222.94.39:3000/wuhongjian/hi-ucs into hi-ucs-dev 2022-12-02 17:31:54 +08:00
wuhongjian 6c3a0ff07f 西海岸问题修复 2022-12-02 17:30:32 +08:00
gongjiale e0be8ddc03 111 2022-12-02 16:14:22 +08:00
gongjiale 073713cf95 Merge branch 'hi-ucs-dev' of http://192.168.124.50:3000/wuhongjian/hi-ucs into hi-ucs-dev 2022-12-02 16:06:06 +08:00
gongjiale 44f03b7e96 修改样式 2022-12-02 16:05:46 +08:00
a0049873 3af92de1ec 通知样式修改 2022-12-02 16:02:45 +08:00
a0049873 beb0455e3d BUG修改 应用资源 模糊判断错误 2022-12-02 15:09:07 +08:00
a0049873 1c53bba435 通知开发 水印修改 BUG修改 2022-12-02 14:50:41 +08:00
gongjiale 8afd825ffc 11 2022-12-02 09:00:16 +08:00
wuhongjian 73c04f54d0 西海岸bug修复 2022-12-01 17:39:30 +08:00
a0049873 c07f9bdc4c BUG修改 2022-12-01 14:41:32 +08:00
64 changed files with 2715 additions and 1014 deletions

1
.gitignore vendored
View File

@ -14,3 +14,4 @@ back/dist-西海岸-后台管理-v0.8.2.4.d.zip
*.zip *.zip
front/public/static/config/basicConfig.js front/public/static/config/basicConfig.js
front/public/static/config/basicConfig.js front/public/static/config/basicConfig.js
front/public/static/config/basicConfig.js

Binary file not shown.

After

Width:  |  Height:  |  Size: 303 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@ -11,7 +11,7 @@
<!-- <h4>{{ $t('process.flowImage') }}</h4> <!-- <h4>{{ $t('process.flowImage') }}</h4>
<img :src="getResourceURL()" class="image"> --> <img :src="getResourceURL()" class="image"> -->
<!-- 流转详情 --> <!-- 流转详情 -->
<h4>{{ $t('process.circulation') }}</h4> <div class="title">{{ $t('process.circulation') }}</div>
<div class="mod-sys__dict"> <div class="mod-sys__dict">
<el-table <el-table
v-loading="dataListLoading" v-loading="dataListLoading"
@ -92,3 +92,20 @@ export default {
} }
} }
</script> </script>
<style scoped>
::v-deep .el-card__body{
padding: 0px;
}
::v-deep .el-card{
border:0px !important;
}
.title{
padding-left: 20px;
color: #212121;
font-size: 16px;
margin-bottom: 10px;
margin-top: 10px;
background: url("~@/assets/img/biaoti.png") no-repeat;
background-position-y: 2px;
}
</style>

View File

@ -0,0 +1,55 @@
.agreeButton{
display: inline-block;
line-height: 8px;
width:80px;
height: 32px;
white-space: nowrap;
cursor: pointer;
color: #ffffff;
-webkit-appearance: none;
text-align: center;
-webkit-box-sizing: border-box;
box-sizing: border-box;
outline: 0;
margin-left: 10px;
-webkit-transition: .1s;
transition: .1s;
font-weight: 500;
//padding: 12px 20px;
font-size: 14px;
border-radius: 4px;
background-color: #0058e1;
}
.agreeButton:hover{
background: #65a5f9;
border-color: #65a5f9;
color: #FFF;
}
.rejectButton{
display: inline-block;
line-height: 8px;
width:80px;
height: 32px;
white-space: nowrap;
cursor: pointer;
color: #F56C6C;
-webkit-appearance: none;
text-align: center;
-webkit-box-sizing: border-box;
box-sizing: border-box;
outline: 0;
margin: 0;
-webkit-transition: .1s;
transition: .1s;
font-weight: 500;
//padding: 12px 20px;
font-size: 14px;
border-radius: 4px;
border-color: #F56C6C;
margin-left: 12px;
}
.rejectButton:hover{
background-color: #F56C6C;
border-color: #F56C6C;
color: #ffffff;
}

View File

@ -71,26 +71,29 @@ export default {
return this.$message.error(res.msg) return this.$message.error(res.msg)
} }
this.dataList = this.mixinViewModuleOptions.getDataListIsPage ? res.data.list : res.data this.dataList = this.mixinViewModuleOptions.getDataListIsPage ? res.data.list : res.data
this.dataList.map((item, index) => { if (!['/sys/notice/page', '/sys/notice/mynotice/page'].includes(this.mixinViewModuleOptions.getDataListURL)) { // 我得通知、通知管理不需要特殊处理
if (this.dataList[index].type != null) { this.dataList.map((item, index) => {
switch (item.type) { if (this.dataList[index].type != null) {
case 1: this.dataList[index].type = '省'; break switch (item.type) {
case 2: this.dataList[index].type = '市'; break case 1: this.dataList[index].type = '省'; break
case 3: this.dataList[index].type = '区'; break case 2: this.dataList[index].type = '市'; break
case 4: this.dataList[index].type = '企业'; break case 3: this.dataList[index].type = '区'; break
} case 4: this.dataList[index].type = '企业'; break
}
if (item.children != null) {
item.children.map((item2, index2) => {
switch (item2.type) {
case 1: this.dataList[index].children[index2].type = '省'; break
case 2: this.dataList[index].children[index2].type = '市'; break
case 3: this.dataList[index].children[index2].type = '区'; break
case 4: this.dataList[index].children[index2].type = '企业'; break
} }
}) }
} if (item.children != null) {
}) item.children.map((item2, index2) => {
switch (item2.type) {
case 1: this.dataList[index].children[index2].type = '省'; break
case 2: this.dataList[index].children[index2].type = '市'; break
case 3: this.dataList[index].children[index2].type = '区'; break
case 4: this.dataList[index].children[index2].type = '企业'; break
}
})
}
})
}
// 我的代办特殊处理 // 我的代办特殊处理
if (this.mixinViewModuleOptions.getDataListURL === '/act/task/myToDoTaskPage') { if (this.mixinViewModuleOptions.getDataListURL === '/act/task/myToDoTaskPage') {
this.$http.get('/sys/user/info').then(userRes => { this.$http.get('/sys/user/info').then(userRes => {
@ -162,6 +165,68 @@ export default {
dataListSelectionChangeHandle (val) { dataListSelectionChangeHandle (val) {
this.dataListSelections = val this.dataListSelections = val
}, },
// 批量审批
showApproval () {
if (this.dataListSelections.length === 0) {
this.$message({
type: 'warning',
message: '请先选择需要审批的信息!'
})
return
}
this.dialogVisible = true
},
handleClose () {
this.input = ''
this.dialogVisible = false
},
approval (str) {
console.log('批量审批', this.dataListSelections, this.$store)
if (this.input.length < 1) {
this.$message({
type: 'warning',
message: '请输入审批意见!'
})
return
}
const arr = []
this.dataListSelections.map(val => {
arr.push(val.taskId)
})
if (str === '同意') {
this.$http.post('/act/task/batchComplete', { comment: this.input, taskIds: arr }).then(res => {
if (res.data.msg !== 'success') {
this.$message({
type: 'warning',
message: '审批失败!'
})
return
}
this.handleClose()
this.query()
this.$message({
type: 'success',
message: '审批成功!'
})
})
} else if (str === '驳回') {
this.$http.post('/act/task/batchBackToFirst', { comment: this.input, taskIds: arr }).then(res => {
if (res.data.msg !== 'success') {
this.$message({
type: 'warning',
message: '审批失败!'
})
return
}
this.handleClose()
this.query()
this.$message({
type: 'success',
message: '审批成功!'
})
})
}
},
// 排序 // 排序
dataListSortChangeHandle (data) { dataListSortChangeHandle (data) {
if (!data.order || !data.prop) { if (!data.order || !data.prop) {

View File

@ -115,6 +115,14 @@ export default {
this.$store.state.user.id = res.data.id this.$store.state.user.id = res.data.id
this.$store.state.user.name = res.data.realName this.$store.state.user.name = res.data.realName
this.$store.state.user.superAdmin = res.data.superAdmin this.$store.state.user.superAdmin = res.data.superAdmin
this.$store.state.user.roleIdList = []
if (res.data.roleIdList) {
res.data.roleIdList.map(val => {
this.$http.get('/sys/role/' + val).then(res1 => {
this.$store.state.user.roleIdList.push(res1.data.data.name)
})
})
}
}) })
.catch(() => {}) .catch(() => {})
}, },

View File

@ -281,6 +281,14 @@ export default {
} }
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
::v-deep .el-step__title .is-finish {
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
word-break: break-all;
color: #0058e1;
}
.title { .title {
font-size: 22px; font-size: 22px;
color: #000; color: #000;
@ -462,4 +470,5 @@ export default {
} }
} }
} }
</style> </style>

View File

@ -6,7 +6,7 @@
style="width: 160px" style="width: 160px"
placeholder="请输入会客厅名称" placeholder="请输入会客厅名称"
></el-input> ></el-input>
<el-select <!-- <el-select
v-model="value" v-model="value"
style="width: 160px" style="width: 160px"
clearable clearable
@ -19,7 +19,7 @@
:value="item.value" :value="item.value"
> >
</el-option> </el-option>
</el-select> </el-select> -->
<el-button type="primary" @click="searchData">查询</el-button> <el-button type="primary" @click="searchData">查询</el-button>
</div> </div>
<div> <div>
@ -50,13 +50,13 @@
header-align="center" header-align="center"
align="center" align="center"
></el-table-column> ></el-table-column>
<el-table-column <!-- <el-table-column
label="申请状态" label="申请状态"
prop="state" prop="state"
header-align="center" header-align="center"
align="center" align="center"
:formatter="formatter" :formatter="formatter"
></el-table-column> ></el-table-column> -->
<el-table-column <el-table-column
:label="$t('handle')" :label="$t('handle')"
fixed="right" fixed="right"
@ -217,19 +217,19 @@
<script> <script>
import Cookies from 'js-cookie' import Cookies from 'js-cookie'
export default { export default {
data() { data () {
return { return {
options: [ options: [
{ {
value: '1', value: '1',
label: '待审核', label: '待审核'
}, },
{ {
value: '0', value: '0',
label: '审核完成', label: '审核完成'
}, }
], ],
value: '', value: '1',
limit: 10, limit: 10,
page: 1, page: 1,
total: 0, total: 0,
@ -245,14 +245,14 @@ export default {
file: '', file: '',
name: '', name: '',
creator: '', creator: '',
roomNameA: '', roomNameA: ''
} }
}, },
mounted() { mounted () {
this.getSerach() this.getSerach()
}, },
methods: { methods: {
getSerach() { getSerach () {
this.$http this.$http
.get( .get(
`/bookMeeting/auditPage?page=${this.page}&limit=${this.limit}&roomName=${this.roomNameA}&state=${this.value}` `/bookMeeting/auditPage?page=${this.page}&limit=${this.limit}&roomName=${this.roomNameA}&state=${this.value}`
@ -262,22 +262,22 @@ export default {
this.total = res.data.total this.total = res.data.total
}) })
}, },
downloadTemplate(file) { downloadTemplate (file) {
// window.SITE_CONFIG.apiURL + // window.SITE_CONFIG.apiURL +
window.open(`${file}?token=` + Cookies.get('ucsToken')) window.open(`${file}?token=` + Cookies.get('ucsToken'))
}, },
handleSizeChange(val) { handleSizeChange (val) {
this.limit = val this.limit = val
this.getSerach() this.getSerach()
}, },
handleCurrentChange(val) { handleCurrentChange (val) {
this.page = val this.page = val
this.getSerach() this.getSerach()
}, },
searchData() { searchData () {
this.getSerach() this.getSerach()
}, },
taskDetails(item, num) { taskDetails (item, num) {
if (num == '1') { if (num == '1') {
this.dialogVisibleChuli = true this.dialogVisibleChuli = true
this.id = item.id this.id = item.id
@ -293,14 +293,14 @@ export default {
this.lookData = item this.lookData = item
}, },
ok() { ok () {
let query = { const query = {
auditViem: this.desc, auditViem: this.desc,
state: this.radio, state: this.radio,
id: this.id, id: this.id,
name: this.name, name: this.name,
roomName: this.roomName, roomName: this.roomName,
creator: this.creator, creator: this.creator
} }
this.$http.put('/bookMeeting', query).then(({ data: res }) => { this.$http.put('/bookMeeting', query).then(({ data: res }) => {
this.dialogVisibleChuli = false this.dialogVisibleChuli = false
@ -309,15 +309,15 @@ export default {
this.getSerach() this.getSerach()
}) })
}, },
No() { No () {
this.radio = '2' this.radio = '2'
this.desc = '' this.desc = ''
this.dialogVisibleChuli = false this.dialogVisibleChuli = false
}, },
formatter(row, column) { formatter (row, column) {
return row.state == '1' ? '待审核' : '审核完成' return row.state == '1' ? '待审核' : '审核完成'
}, }
}, }
} }
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
@ -328,7 +328,7 @@ export default {
} }
.roomExamineSearch { .roomExamineSearch {
display: flex; display: flex;
width: 410px; width: 240px;
margin-bottom: 20px; margin-bottom: 20px;
justify-content: space-between; justify-content: space-between;
} }

View File

@ -0,0 +1,348 @@
<template>
<el-card shadow="never" class="roomBox">
<div class="roomExamineSearch">
<el-input
v-model="roomNameA"
style="width: 160px"
placeholder="请输入会客厅名称"
></el-input>
<!-- <el-select
v-model="value"
style="width: 160px"
clearable
placeholder="请选择审核状态"
>
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item.value"
>
</el-option>
</el-select> -->
<el-button type="primary" @click="searchData">查询</el-button>
</div>
<div>
<el-table border style="width: 100%" :data="tableData">
<el-table-column
label="申请人"
prop="name"
header-align="center"
align="center"
>
</el-table-column>
<el-table-column
label="申请部门"
prop="dept"
header-align="center"
align="center"
>
</el-table-column>
<el-table-column
label="申请会客厅"
prop="roomName"
header-align="center"
align="center"
></el-table-column>
<el-table-column
label="申请时段"
prop="bookDate"
header-align="center"
align="center"
></el-table-column>
<!-- <el-table-column
label="申请状态"
prop="state"
header-align="center"
align="center"
:formatter="formatter"
></el-table-column> -->
<el-table-column
:label="$t('handle')"
fixed="right"
header-align="center"
align="center"
width="150"
>
<template slot-scope="scope">
<el-button
type="text"
size="small"
@click="taskDetails(scope.row, scope.row.state)"
>{{ scope.row.state == '1' ? '处理' : '详情' }}</el-button
>
</template>
</el-table-column>
</el-table>
<el-pagination
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:page-sizes="[10, 20, 50]"
:page-size="100"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
>
</el-pagination>
</div>
<el-dialog
:title="lookData.roomName"
:visible.sync="dialogVisible"
width="50%"
>
<div class="modalResult" style="margin-bottom: 20px">处理结果</div>
<div
style="
width: 100%;
height: 0.01rem;
border-top: 1px solid #ccc;
transform: scaleY(0.5);
"
></div>
<div
class="modalExamine"
style="display: flex; flex-direction: column; margin-top: 20px"
>
<span style="margin-bottom: 20px">
审核结果{{ lookData.state === '2' ? '通过' : '不通过' }}
</span>
<span style="width: 90%; margin-bottom: 20px">
审核意见{{ lookData.auditViem }}
</span>
</div>
<div class="modalYuyue" style="margin-bottom: 20px">预约信息</div>
<div
style="
width: 100%;
height: 0.01rem;
border-top: 1px solid #ccc;
transform: scaleY(0.5);
"
></div>
<div class="modalTime" style="margin-bottom: 20px">
<div style="margin: 20px 0 20px 0">
预约日期{{ lookData.bookDate }}
</div>
<div>预约时段{{ lookData.startTime }}-{{ lookData.endTime }}</div>
<div
class="modalContent"
style="
width: 85%;
display: flex;
justify-content: space-between;
margin: 15px 0 15px 0;
"
>
<span>预约人{{ lookData.name }}</span>
<span>联系方式{{ lookData.phone }}</span>
<span>预约部门{{ lookData.dept }}</span>
</div>
<div style="width: 800px; margin-bottom: 30px">
使用事项{{ lookData.matter }}
</div>
</div>
<div>
<div style="display: flex; align-items: center">
<span>附件</span>
<el-button
v-show="file != ''"
size="mini"
@click="downloadTemplate(file)"
>下载</el-button
>
</div>
</div>
</el-dialog>
<el-dialog
:title="lookData.roomName"
:visible.sync="dialogVisibleChuli"
width="50%"
>
<div class="modalResult" style="margin-bottom: 10px">预约信息</div>
<div
style="
width: 100%;
height: 0.01rem;
border-top: 1px solid #ccc;
transform: scaleY(0.5);
"
></div>
<el-row style="display: flex; margin-top: 20px">
<el-col :span="8">预约日期{{ lookData.bookDate }}</el-col>
<el-col :span="8"
>预约时段{{ lookData.startTime }}-{{ lookData.endTime }}</el-col
>
</el-row>
<div class="modalTime">
<el-row class="modalContent" style="margin: 15px 0 15px 0">
<el-col :span="8">申请人{{ lookData.name }}</el-col>
<el-col :span="8">联系方式{{ lookData.phone }}</el-col>
<el-col :span="8">申请部门{{ lookData.dept }}</el-col>
</el-row>
<el-row style="margin-bottom: 30px">
<el-col :span="24"> 使用事项{{ lookData.matter }} </el-col>
</el-row>
<el-row>
<el-col :span="2">审核结果</el-col>
<el-col :span="8" style="display: flex">
<el-radio v-model="radio" label="2">通过</el-radio>
<el-radio v-model="radio" label="3">不通过</el-radio>
</el-col>
</el-row>
<el-row style="display: flex; margin-top: 20px">
<el-col :span="2">审核意见</el-col>
<el-col :span="16">
<el-input type="textarea" v-model="desc"></el-input>
</el-col>
</el-row>
<el-row style="display: flex; margin-top: 20px">
<el-col :span="2">附件</el-col>
<el-col :span="16">
<el-button
v-if="file != ''"
size="mini"
@click="downloadTemplate(file)"
>下载</el-button
>
</el-col>
</el-row>
<div slot="footer" class="dialog-footer">
<el-button @click="No"> </el-button>
<el-button type="primary" @click="ok"> </el-button>
</div>
</div>
</el-dialog>
</el-card>
</template>
<script>
import Cookies from 'js-cookie'
export default {
data () {
return {
options: [
{
value: '1',
label: '待审核'
},
{
value: '0',
label: '审核完成'
}
],
value: '0',
limit: 10,
page: 1,
total: 0,
roomName: '',
tableData: [],
dialogVisible: false,
dialogVisibleChuli: false,
lookData: {},
radio: '2',
desc: '',
id: '',
num: '',
file: '',
name: '',
creator: '',
roomNameA: ''
}
},
mounted () {
this.getSerach()
},
methods: {
getSerach () {
this.$http
.get(
`/bookMeeting/auditPage?page=${this.page}&limit=${this.limit}&roomName=${this.roomNameA}&state=${this.value}`
)
.then(({ data: res }) => {
this.tableData = res.data.list
this.total = res.data.total
})
},
downloadTemplate (file) {
// window.SITE_CONFIG.apiURL +
window.open(`${file}?token=` + Cookies.get('ucsToken'))
},
handleSizeChange (val) {
this.limit = val
this.getSerach()
},
handleCurrentChange (val) {
this.page = val
this.getSerach()
},
searchData () {
this.getSerach()
},
taskDetails (item, num) {
if (num == '1') {
this.dialogVisibleChuli = true
this.id = item.id
this.name = item.name
this.roomName = item.roomName
this.creator = item.creator
} else {
this.dialogVisible = true
}
this.$http.get(`bookMeeting/${item.id}`).then(({ data: res }) => {
this.file = res.data.file
})
this.lookData = item
},
ok () {
const query = {
auditViem: this.desc,
state: this.radio,
id: this.id,
name: this.name,
roomName: this.roomName,
creator: this.creator
}
this.$http.put('/bookMeeting', query).then(({ data: res }) => {
this.dialogVisibleChuli = false
this.radio = '2'
this.desc = ''
this.getSerach()
})
},
No () {
this.radio = '2'
this.desc = ''
this.dialogVisibleChuli = false
},
formatter (row, column) {
return row.state == '1' ? '待审核' : '审核完成'
}
}
}
</script>
<style scoped lang="scss">
.roomBox {
min-height: calc(calc(100vh - 50px - 38px - 30px));
.roomHeadSpan {
font-weight: 600;
}
.roomExamineSearch {
display: flex;
width: 240px;
margin-bottom: 20px;
justify-content: space-between;
}
}
.dialog-footer {
text-align: center;
margin-top: 40px;
}
// ::v-deep .el-input {
// margin-right: 15px;
// display: inline-block;
// }
// ::v-deep .el-select {
// margin-right: 20px;
// display: inline-block;
// }
</style>

View File

@ -245,10 +245,8 @@ export default {
// 退 // 退
agreeOrNot: debounce( agreeOrNot: debounce(
function (data, type) { function (data, type) {
this.dataForm.taskId = this.$route.params.taskId this.dataForm.taskId = this.$route.params.taskId
if (type === '同意') { if (type === '同意') {
debugger
// if (this.input !== '') { // if (this.input !== '') {
console.log('this.dataForm', this.dataForm) console.log('this.dataForm', this.dataForm)
const params = qs.stringify({ const params = qs.stringify({
@ -267,6 +265,7 @@ export default {
return return
} }
bus.$emit('applicationforRequirementsInit') bus.$emit('applicationforRequirementsInit')
bus.$emit('workInit')
this.$message({ this.$message({
message: this.$t('prompt.success'), message: this.$t('prompt.success'),
type: 'success', type: 'success',
@ -302,6 +301,7 @@ export default {
return return
} }
bus.$emit('applicationforRequirementsInit') bus.$emit('applicationforRequirementsInit')
bus.$emit('workInit')
this.$message({ this.$message({
message: this.$t('prompt.success'), message: this.$t('prompt.success'),
type: 'success', type: 'success',
@ -338,15 +338,26 @@ export default {
} }
// tab // tab
if (tabName === this.$store.state.contentTabsActiveName) { if (tabName === this.$store.state.contentTabsActiveName) {
const tab = //
const tab1 = this.$store.state.contentTabs.filter(val => val.name === tabName.substring(0, tabName.indexOf('__')))[0]
// tab
const tab2 =
this.$store.state.contentTabs[ this.$store.state.contentTabs[
this.$store.state.contentTabs.length - 1 this.$store.state.contentTabs.length - 1
] ]
this.$router.push({ if (tab1) {
name: /^iframe_.+/.test(tab.name) ? 'iframe' : tab.name, this.$router.push({
params: { ...tab.params }, name: /^iframe_.+/.test(tab1.name) ? 'iframe' : tab1.name,
query: { ...tab.query } params: { ...tab1.params },
}) query: { ...tab1.query }
})
} else {
this.$router.push({
name: /^iframe_.+/.test(tab2.name) ? 'iframe' : tab2.name,
params: { ...tab2.params },
query: { ...tab2.query }
})
}
} }
}, },
// //

View File

@ -174,7 +174,8 @@ export default {
} }
return return
} }
bus.$emit('AbilityResourcesRemovedInit') bus.$emit('commentInit')
bus.$emit('workInit')
this.$message({ this.$message({
message: this.$t('prompt.success'), message: this.$t('prompt.success'),
type: 'success', type: 'success',
@ -209,7 +210,8 @@ export default {
} }
return return
} }
bus.$emit('AbilityResourcesRemovedInit') bus.$emit('commentInit')
bus.$emit('workInit')
this.$message({ this.$message({
message: this.$t('prompt.success'), message: this.$t('prompt.success'),
type: 'success', type: 'success',
@ -246,33 +248,31 @@ export default {
} }
// tab // tab
if (tabName === this.$store.state.contentTabsActiveName) { if (tabName === this.$store.state.contentTabsActiveName) {
const tab = //
const tab1 = this.$store.state.contentTabs.filter(val => val.name === tabName.substring(0, tabName.indexOf('__')))[0]
// tab
const tab2 =
this.$store.state.contentTabs[ this.$store.state.contentTabs[
this.$store.state.contentTabs.length - 1 this.$store.state.contentTabs.length - 1
] ]
this.$router.push({ if (tab1) {
name: /^iframe_.+/.test(tab.name) ? 'iframe' : tab.name, this.$router.push({
params: { ...tab.params }, name: /^iframe_.+/.test(tab1.name) ? 'iframe' : tab1.name,
query: { ...tab.query } params: { ...tab1.params },
}) query: { ...tab1.query }
})
} else {
this.$router.push({
name: /^iframe_.+/.test(tab2.name) ? 'iframe' : tab2.name,
params: { ...tab2.params },
query: { ...tab2.query }
})
}
} }
} }
}, },
created () { created () {
// this.dataForm = this.$router.currentRoute.params.id
this.init() this.init()
console.log('fromList', this.$router.currentRoute.params.businessKey)
// this.dataForm = this.$router.currentRoute.params.params.params.resourceDTO
var callbacks = {
startProcessSuccessCallback: this.closeCurrentTab,
startProcessErrorCallback: this.startProcessErrorCallback,
taskHandleSuccessCallback: this.closeCurrentTab,
taskHandleErrorCallback: this.taskHandleErrorCallback,
formSaveSuccessCallback: null,
formSaveErrorCallback: null
}
//
this.initProcessMultiple(callbacks)
this.taskId = this.$route.params.taskId this.taskId = this.$route.params.taskId
this.dataForm.taskId = this.$route.params.taskId this.dataForm.taskId = this.$route.params.taskId
}, },

View File

@ -252,6 +252,7 @@ export default {
return return
} }
bus.$emit('AbilityResourcesRemovedInit') bus.$emit('AbilityResourcesRemovedInit')
bus.$emit('workInit')
this.$message({ this.$message({
message: this.$t('prompt.success'), message: this.$t('prompt.success'),
type: 'success', type: 'success',
@ -287,6 +288,7 @@ export default {
return return
} }
bus.$emit('AbilityResourcesRemovedInit') bus.$emit('AbilityResourcesRemovedInit')
bus.$emit('workInit')
this.$message({ this.$message({
message: this.$t('prompt.success'), message: this.$t('prompt.success'),
type: 'success', type: 'success',
@ -323,15 +325,26 @@ export default {
} }
// tab // tab
if (tabName === this.$store.state.contentTabsActiveName) { if (tabName === this.$store.state.contentTabsActiveName) {
const tab = //
const tab1 = this.$store.state.contentTabs.filter(val => val.name === tabName.substring(0, tabName.indexOf('__')))[0]
// tab
const tab2 =
this.$store.state.contentTabs[ this.$store.state.contentTabs[
this.$store.state.contentTabs.length - 1 this.$store.state.contentTabs.length - 1
] ]
this.$router.push({ if (tab1) {
name: /^iframe_.+/.test(tab.name) ? 'iframe' : tab.name, this.$router.push({
params: { ...tab.params }, name: /^iframe_.+/.test(tab1.name) ? 'iframe' : tab1.name,
query: { ...tab.query } params: { ...tab1.params },
}) query: { ...tab1.query }
})
} else {
this.$router.push({
name: /^iframe_.+/.test(tab2.name) ? 'iframe' : tab2.name,
params: { ...tab2.params },
query: { ...tab2.query }
})
}
} }
}, },
// //

View File

@ -1,8 +1,8 @@
<!-- <!--
* @Author: hisense.fanchunxiang * @Author: hisense.fanchunxiang
* @Date: 2021-08-24 10:28:49 * @Date: 2021-08-24 10:28:49
* @LastEditors: hisense.fanchunxiang * @LastEditors: Light
* @LastEditTime: 2021-10-14 17:10:05 * @LastEditTime: 2022-12-01 14:32:43
* @Description: 企业数据 企业卡片 * @Description: 企业数据 企业卡片
--> -->
<template> <template>
@ -65,12 +65,12 @@
</template> </template>
</cardDragger> </cardDragger>
<!-- 编辑卡片按钮 --> <!-- 编辑卡片按钮 -->
<div v-show="isShowEdit" class="resource-manager-edit-card"> <div @click.stop="editTopicCard" v-show="isShowEdit" class="resource-manager-edit-card">
<div> <div>
<div /> <div />
</div> </div>
<div> <div>
<span @click.stop="editTopicCard">{{ <span>{{
isRemoveCard ? '完成' : '编辑' isRemoveCard ? '完成' : '编辑'
}}</span> }}</span>
</div> </div>
@ -393,7 +393,7 @@ export default {
this.oldId = item.id this.oldId = item.id
} }
}) })
this.$message.success('删除企业成功!') this.$message.success('删除编目成功!')
// 退 // 退
this.initTopicCardList() this.initTopicCardList()
this.isRemoveCard = !this.isRemoveCard this.isRemoveCard = !this.isRemoveCard
@ -401,8 +401,8 @@ export default {
this.topicCoverZIndex = this.isEditGroupName ? -999 : 1000 this.topicCoverZIndex = this.isEditGroupName ? -999 : 1000
}) })
.catch((e) => { .catch((e) => {
console.log('删除企业失败!%o', e) console.log('删除编目失败!%o', e)
this.$message.error('删除企业失败!') this.$message.error('删除编目失败!')
}) })
}) })
}, },

View File

@ -1,8 +1,8 @@
<!-- <!--
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-06-27 11:27:22 * @Date: 2022-06-27 11:27:22
* @LastEditors: hisense.liangjunhua * @LastEditors: Light
* @LastEditTime: 2022-07-25 09:45:35 * @LastEditTime: 2022-12-05 18:01:39
* @Description: "能力资源上架" * @Description: "能力资源上架"
--> -->
<template> <template>
@ -25,6 +25,21 @@
$t('query') $t('query')
}}</el-button> }}</el-button>
</el-form-item> </el-form-item>
<el-form-item v-if="($store.state.user.roleIdList.indexOf('运维管理员') !== -1)">
<el-button type="primary" @click="showApproval" >批量审批</el-button>
<el-dialog
title="提示"
:visible.sync="dialogVisible"
width="30%"
:before-close="handleClose"
:close-on-click-modal="false">
<el-input v-model="input" placeholder="请输入审批意见"></el-input>
<span slot="footer" class="dialog-footer">
<el-button class="agreeButton" @click="approval('同意')">同意</el-button>
<el-button class="rejectButton" @click="approval('驳回')">驳回</el-button>
</span>
</el-dialog>
</el-form-item>
</el-form> </el-form>
<el-table <el-table
v-loading="dataListLoading" v-loading="dataListLoading"
@ -147,7 +162,9 @@ export default {
taskId: '', taskId: '',
processDefinitionKey: 'resourcemountapply' processDefinitionKey: 'resourcemountapply'
}, },
processInstanceId: '' processInstanceId: '',
input: '',
dialogVisible: false
} }
}, },
components: {}, components: {},
@ -172,7 +189,9 @@ export default {
this.getDataList() this.getDataList()
bus.$emit('updateTaskNum') bus.$emit('updateTaskNum')
}) })
} }
} }
</script> </script>
<style lang="scss" scoped>
@import '~@/mixins/view-module-css';
</style>

View File

@ -1,8 +1,8 @@
<!-- <!--
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-06-27 11:27:22 * @Date: 2022-06-27 11:27:22
* @LastEditors: hisense.liangjunhua * @LastEditors: Light
* @LastEditTime: 2022-07-25 09:48:46 * @LastEditTime: 2022-12-06 10:18:33
* @Description: "能力资源下架" * @Description: "能力资源下架"
--> -->
<template> <template>
@ -25,6 +25,21 @@
$t('query') $t('query')
}}</el-button> }}</el-button>
</el-form-item> </el-form-item>
<el-form-item v-if="($store.state.user.roleIdList.indexOf('运维管理员') !== -1)">
<el-button type="primary" @click="showApproval" >批量审批</el-button>
<el-dialog
title="提示"
:visible.sync="dialogVisible"
width="30%"
:before-close="handleClose"
:close-on-click-modal="false">
<el-input v-model="input" placeholder="请输入审批意见"></el-input>
<span slot="footer" class="dialog-footer">
<el-button class="agreeButton" @click="approval('同意')">同意</el-button>
<el-button class="rejectButton" @click="approval('驳回')">驳回</el-button>
</span>
</el-dialog>
</el-form-item>
</el-form> </el-form>
<el-table <el-table
v-loading="dataListLoading" v-loading="dataListLoading"
@ -147,7 +162,9 @@ export default {
taskId: '', taskId: '',
processDefinitionKey: 'resourcundercarriageapply' processDefinitionKey: 'resourcundercarriageapply'
}, },
processInstanceId: '' processInstanceId: '',
input: '',
dialogVisible: false
} }
}, },
components: {}, components: {},
@ -176,3 +193,6 @@ export default {
} }
} }
</script> </script>
<style lang="scss" scoped>
@import '~@/mixins/view-module-css';
</style>

View File

@ -1,8 +1,8 @@
<!-- <!--
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-06-27 11:27:22 * @Date: 2022-06-27 11:27:22
* @LastEditors: hisense.liangjunhua * @LastEditors: Light
* @LastEditTime: 2022-06-29 16:31:26 * @LastEditTime: 2022-12-06 10:18:29
* @Description: "能力需求申请" * @Description: "能力需求申请"
--> -->
<template> <template>
@ -25,6 +25,21 @@
$t('query') $t('query')
}}</el-button> }}</el-button>
</el-form-item> </el-form-item>
<el-form-item v-if="($store.state.user.roleIdList.indexOf('运维管理员') !== -1)">
<el-button type="primary" @click="showApproval" >批量审批</el-button>
<el-dialog
title="提示"
:visible.sync="dialogVisible"
width="30%"
:before-close="handleClose"
:close-on-click-modal="false">
<el-input v-model="input" placeholder="请输入审批意见"></el-input>
<span slot="footer" class="dialog-footer">
<el-button class="agreeButton" @click="approval('同意')">同意</el-button>
<el-button class="rejectButton" @click="approval('驳回')">驳回</el-button>
</span>
</el-dialog>
</el-form-item>
</el-form> </el-form>
<el-table <el-table
v-loading="dataListLoading" v-loading="dataListLoading"
@ -147,7 +162,9 @@ export default {
taskId: '', taskId: '',
processDefinitionKey: 'abilitydemandapply' processDefinitionKey: 'abilitydemandapply'
}, },
processInstanceId: '' processInstanceId: '',
input: '',
dialogVisible: false
} }
}, },
components: {}, components: {},
@ -175,3 +192,6 @@ export default {
} }
} }
</script> </script>
<style lang="scss" scoped>
@import '~@/mixins/view-module-css';
</style>

View File

@ -1,8 +1,8 @@
<!-- <!--
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-06-27 11:27:22 * @Date: 2022-06-27 11:27:22
* @LastEditors: hisense.liangjunhua * @LastEditors: Light
* @LastEditTime: 2022-06-29 16:31:26 * @LastEditTime: 2022-12-06 10:18:37
* @Description: "评论审核" * @Description: "评论审核"
--> -->
<template> <template>
@ -25,6 +25,21 @@
$t('query') $t('query')
}}</el-button> }}</el-button>
</el-form-item> </el-form-item>
<el-form-item v-if="($store.state.user.roleIdList.indexOf('运维管理员') !== -1)">
<el-button type="primary" @click="showApproval" >批量审批</el-button>
<el-dialog
title="提示"
:visible.sync="dialogVisible"
width="30%"
:before-close="handleClose"
:close-on-click-modal="false">
<el-input v-model="input" placeholder="请输入审批意见"></el-input>
<span slot="footer" class="dialog-footer">
<el-button class="agreeButton" @click="approval('同意')">同意</el-button>
<el-button class="rejectButton" @click="approval('驳回')">驳回</el-button>
</span>
</el-dialog>
</el-form-item>
</el-form> </el-form>
<el-table <el-table
v-loading="dataListLoading" v-loading="dataListLoading"
@ -128,6 +143,7 @@
</template> </template>
<script> <script>
import bus from '@/views/bus.js'
import mixinViewModule from '@/mixins/view-module' import mixinViewModule from '@/mixins/view-module'
import processModule from '@/mixins/process-module' import processModule from '@/mixins/process-module'
export default { export default {
@ -146,10 +162,20 @@ export default {
taskId: '', taskId: '',
processDefinitionKey: 'comment_review' processDefinitionKey: 'comment_review'
}, },
processInstanceId: '' processInstanceId: '',
input: '',
dialogVisible: false
} }
}, },
components: {}, components: {},
created () {
bus.$off('commentInit')
bus.$on('commentInit', () => {
debugger
this.getDataList()
bus.$emit('updateTaskNum')
})
},
methods: { methods: {
// //
taskHandle (row) { taskHandle (row) {
@ -168,3 +194,6 @@ export default {
} }
} }
</script> </script>
<style lang="scss" scoped>
@import '~@/mixins/view-module-css';
</style>

View File

@ -1,8 +1,8 @@
<!-- <!--
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-06-27 11:27:22 * @Date: 2022-06-27 11:27:22
* @LastEditors: hisense.wuhongjian * @LastEditors: Light
* @LastEditTime: 2022-10-19 11:10:50 * @LastEditTime: 2022-12-06 10:18:28
* @Description: 能力申请 * @Description: 能力申请
--> -->
<template> <template>
@ -25,6 +25,21 @@
$t("query") $t("query")
}}</el-button> }}</el-button>
</el-form-item> </el-form-item>
<el-form-item v-if="($store.state.user.roleIdList.indexOf('运维管理员') !== -1)">
<el-button type="primary" @click="showApproval" >批量审批</el-button>
<el-dialog
title="提示"
:visible.sync="dialogVisible"
width="30%"
:before-close="handleClose"
:close-on-click-modal="false">
<el-input v-model="input" placeholder="请输入审批意见"></el-input>
<span slot="footer" class="dialog-footer">
<el-button class="agreeButton" @click="approval('同意')">同意</el-button>
<el-button class="rejectButton" @click="approval('驳回')">驳回</el-button>
</span>
</el-dialog>
</el-form-item>
</el-form> </el-form>
<el-table <el-table
v-loading="dataListLoading" v-loading="dataListLoading"
@ -80,7 +95,7 @@
align="center" align="center"
></el-table-column> ></el-table-column>
<el-table-column <el-table-column
prop="resoureType" prop="resourceType"
label="资源类型" label="资源类型"
header-align="center" header-align="center"
align="center" align="center"
@ -157,7 +172,9 @@ export default {
taskId: '', taskId: '',
processDefinitionKey: returnLocationStr() == 'qingdao' ? 'abilityprocess_v3' : 'abilityprocess_v2' processDefinitionKey: returnLocationStr() == 'qingdao' ? 'abilityprocess_v3' : 'abilityprocess_v2'
}, },
processInstanceId: '' processInstanceId: '',
input: '',
dialogVisible: false
} }
}, },
components: {}, components: {},
@ -186,3 +203,6 @@ export default {
} }
} }
</script> </script>
<style lang="scss" scoped>
@import '~@/mixins/view-module-css';
</style>

View File

@ -2,38 +2,133 @@
<div class="wrapper"> <div class="wrapper">
<el-form :model="dataView"> <el-form :model="dataView">
<div v-for="(item, index) in dataView.children" :key="item"> <div v-for="(item, index) in dataView.children" :key="item">
<!-- <div class="dataTitle">{{ item.name }}</div> -->
<div v-for="itemson in item.children" :key="itemson.name"> <div v-for="itemson in item.children" :key="itemson.name">
<div class="dataTitleSon"> <div class="dataTitleSon">
{{ itemson.name }} {{ itemson.name }}
</div> </div>
<div class="dataContent" v-if=" <div class="info-content" v-if="itemson.name ==='基本信息'">
itemson.name !== '算法优势' && <div class="info-left">
itemson.name !== '应用场景' &&
itemson.name !== '功能介绍' <template v-for="itemsonson in itemson.children">
"> <div class="left-inner" v-if="itemsonson.type !== 'video' && itemsonson.type !== 'image'">
<el-form-item v-for="itemsonson in itemson.children" :key="itemsonson.name" :label=" <span style="font-size:14px;color:#212121;">{{itemsonson.name}}</span>:
itemsonson.type != ' multipleAdditions' ? itemsonson.name : '' <el-tooltip placement="top" v-if="(itemsonson.note1 && itemsonson.note1.length>18)">
" v-show=" <div slot="content">{{itemsonson.note1}}</div>
!( <span style="font-size:14px;color:#212121;font-weight: bold;">{{itemsonson.note1}}</span>
itemsonson.name === '平台地址' || </el-tooltip>
itemsonson.name === 'SDK安装包' || <span style="font-size:14px;color:#212121;font-weight: bold;" v-else>{{ itemsonson.note1 }}</span>
itemsonson.name === '接口请求方式' ||
itemsonson.name === '服务接口' </div>
) </template>
"> </div>
<div class="videoAndImgCss" v-if=" <div class="info-right">
itemsonson.type === 'video' || itemsonson.type === 'image' <div id="lib_Tab1_sx" class="lib_tabborder_sx">
" @click="videoAndImg(itemsonson.note1)"> <div class="lib_Menubox_sx ">
浏览 <ul>
<li id="one1" @click="setTab('one',1,5)" class="hover">图片</li>
<li id="one2" @click="setTab('one',2,5)">视频</li>
</ul>
</div>
<div class="lib_Contentbox_sx ">
<div id="con_one_1">
<template v-for="itemsonson1 in itemson.children">
<div v-if="(itemsonson1.type === 'image' )">
<img v-if=" itemsonson1.note1" @click="videoAndImg(itemsonson1.note1)" :src="itemsonson1.note1"
style="height:270px;width:490px;" />
<div v-else style="height: 270px;line-height: 270px;text-align: center;color:grey">暂无图片</div>
</div>
</template>
</div>
<div id="con_one_2" style="display:none">
<template v-for="itemsonson1 in itemson.children">
<div v-if="(itemsonson1.type === 'video' )">
<video v-if=" itemsonson1.note1" @click="videoAndImg(itemsonson1.note1)" :src="itemsonson1.note1"
style="height:270px;width:490px;" />
<div v-else style="height: 270px;line-height: 270px;text-align: center;;color:grey">暂无视频</div>
</div>
</template>
</div>
</div>
</div> </div>
<div class="videoAndImgCss" v-if=" </div>
itemsonson.name === '上传附件' </div>
" @click="videoAndImg(itemsonson.note1)"> <div v-else-if="itemson.name === '功能介绍'" style="margin-bottom: 20px">
下载 <div v-for="itemDataForm in dataForm.infoList" :key="itemDataForm.attrType">
<div v-if="itemDataForm.attrType === '功能介绍'" class="textAndImg">
<div v-for="itemDataFormValue in itemDataForm.attrValue" :key="itemDataFormValue.name + 'value'"
class="textAndImgSon1" >
<div class="Son1-left">
<img v-if="itemDataFormValue.img" @click="videoAndImg(itemDataFormValue.img)" :src="itemDataFormValue.img"
style="height:270px;width:490px;" />
<div v-else style="height: 270px;line-height: 270px;text-align: center;">暂无图片</div>
</div>
<div class="textAndImgSon">
<div >{{ itemDataFormValue.name }}</div>
<el-tooltip placement="top" v-if="(itemDataFormValue.desc && itemDataFormValue.desc.length>50)">
<div slot="content">{{ itemDataFormValue.desc }}</div>
<div>功能介绍{{ itemDataFormValue.desc }}</div>
</el-tooltip>
<div v-else>功能介绍{{ itemDataFormValue.desc }}</div>
</div>
<!-- <div @click="videoAndImg(itemDataFormValue.img)">浏览</div> -->
</div>
</div> </div>
<div v-else-if="itemsonson.type === ' multipleAdditions'" class="multipleAdditionsClass"> </div>
<div v-for="multipleAdditionsItem in itemsonson.note1" :key="multipleAdditionsItem"> </div>
<div v-else-if="itemson.name === '应用场景'" style="margin-bottom: 20px">
<div v-for="itemDataForm in dataForm.infoList" :key="itemDataForm.attrType">
<div v-if="itemDataForm.attrType === '应用场景'" class="textAndImg">
<div v-for="itemDataFormValue in itemDataForm.attrValue" :key="itemDataFormValue.name + 'value'"
class="textAndImgSon1" >
<div class="Son1-left">
<img v-if="itemDataFormValue.img" @click="videoAndImg(itemDataFormValue.img)" :src="itemDataFormValue.img"
style="height:270px;width:490px;" />
<div v-else style="height: 270px;line-height: 270px;text-align: center;">暂无图片</div>
</div>
<div class="textAndImgSon" >
<div>{{ itemDataFormValue.name }}</div>
<el-tooltip placement="top" v-if="(itemDataFormValue.desc && itemDataFormValue.desc.length>50)">
<div slot="content">{{ itemDataFormValue.desc }}</div>
<div>应用描述{{ itemDataFormValue.desc }}</div>
</el-tooltip>
<div v-else>应用描述{{ itemDataFormValue.desc }}</div>
</div>
</div>
</div>
</div>
</div>
<div v-else-if="itemson.name === '算法优势'" style="margin-top: 20px">
<div v-for="itemDataForm in dataForm.infoList" :key="itemDataForm.attrType">
<div v-if="itemDataForm.attrType === '算法优势'" class="textAndImg">
<div v-for="itemDataFormValue in itemDataForm.attrValue" :key="itemDataFormValue.name + 'value'"
class="textAndImgSon" >
<div>{{ itemDataFormValue.name }}</div>
<el-tooltip placement="top" v-if="(itemDataFormValue.desc && itemDataFormValue.desc.length>100)">
<div slot="content">{{ itemDataFormValue.desc }}</div>
<div>算法描述{{ itemDataFormValue.desc }}</div>
</el-tooltip>
<div v-else>算法描述{{ itemDataFormValue.desc }}</div>
</div>
</div>
</div>
</div>
<div class="other-content" v-else>
<div class="other-info">
<template v-for="itemsonson in itemson.children">
<div v-if="itemsonson.type === ' multipleAdditions'" class="textAndImg">
<div v-for="multipleAdditionsItem in itemsonson.note1" :key="multipleAdditionsItem"
class="textAndImgSon" >
<el-tooltip placement="top"> <el-tooltip placement="top">
<div slot="content"> <div slot="content">
{{ {{
@ -73,70 +168,50 @@
<!-- <div>{{ multipleAdditionsItem }}</div> --> <!-- <div>{{ multipleAdditionsItem }}</div> -->
</div> </div>
</div> </div>
<el-tooltip v-else placement="top" :disabled="itemsonson.note1 !== null ? false : true" <div class="info-inner" v-else-if="
:content="itemsonson.note1"> (
<!-- <div slot="content" v-show="itemsonson.note1">{{ itemsonson.note1 }}</div> --> itemsonson.name === '上传附件'||
<el-input v-model="itemsonson.note1" disabled="disabled"></el-input> itemsonson.name === '技术文档' )
</el-tooltip> ">
</el-form-item> <span style="font-size:14px;color:#212121;" >{{itemsonson.name}}</span>:
<el-form-item v-for="itemsonson in itemson.children" :key="itemsonson.name" :label=" <span style="color: #0058e1;font-weight: bold;text-decoration: underline;cursor: pointer;"
itemsonson.type != ' multipleAdditions' ? itemsonson.name : '' v-if="itemsonson.note1" @click="videoAndImg(itemsonson.note1)">点击下载</span>
" v-show=" <span v-else style="color: grey;">暂未上传</span>
(itemsonson.name === '平台地址' && showDocking) ||
(itemsonson.name === 'SDK安装包' && showSDK) ||
(itemsonson.name === '接口请求方式' && showInterface) ||
(itemsonson.name === '服务接口' && showInterface)
">
<el-tooltip placement="top" :disabled="itemsonson.note1 !== null ? false : true" :content="itemsonson.note1">
<el-input v-model="itemsonson.note1" disabled="disabled"></el-input>
</el-tooltip>
</el-form-item>
</div>
<div v-else-if="itemson.name === '算法优势'" style="margin-bottom: 20px">
<div v-for="itemDataForm in dataForm.infoList" :key="itemDataForm.attrType">
<div v-if="itemDataForm.attrType === '算法优势'" class="textAndImg">
<div v-for="itemDataFormValue in itemDataForm.attrValue" :key="itemDataFormValue.name + 'value'"
class="textAndImgSon" style="border: 1px solid #3c9bcd;margin">
<div>{{ itemDataFormValue.name }}</div>
<el-tooltip placement="top">
<div slot="content">{{ itemDataFormValue.desc }}</div>
<div>{{ itemDataFormValue.desc }}</div>
</el-tooltip>
</div>
</div>
</div> </div>
</div> <div class="info-inner" v-else-if="
<div v-else-if="itemson.name === '应用场景'" style="margin-bottom: 20px"> (itemsonson.name === '平台地址' && showDocking) ||
<div v-for="itemDataForm in dataForm.infoList" :key="itemDataForm.attrType"> (itemsonson.name === 'SDK安装包' && showSDK) ||
<div v-if="itemDataForm.attrType === '应用场景'" class="textAndImg"> (itemsonson.name === '接口请求方式' && showInterface) ||
<div v-for="itemDataFormValue in itemDataForm.attrValue" :key="itemDataFormValue.name + 'value'" (itemsonson.name === '服务接口' && showInterface)
class="textAndImgSon" style="border: 1px solid #3c9bcd;margin"> ">
<div>{{ itemDataFormValue.name }}</div> <span style="font-size:14px;color:#212121;">{{itemsonson.name}}</span>:
<el-tooltip placement="top"> <el-tooltip placement="top" v-if="(itemsonson.note1 && itemsonson.note1.length>10)">
<div slot="content">{{ itemDataFormValue.desc }}</div> <div slot="content">{{itemsonson.note1}}</div>
<div>{{ itemDataFormValue.desc }}</div> <span style="font-size:14px;color:#212121;font-weight: bold;">{{itemsonson.note1}}</span>
</el-tooltip> </el-tooltip>
<div @click="videoAndImg(itemDataFormValue.img)">浏览</div> <span style="font-size:14px;color:#212121;font-weight: bold;" v-else>{{ itemsonson.note1 }}</span>
</div>
</div>
</div> </div>
</div> <div class="info-inner" v-else-if="
<div v-else-if="itemson.name === '功能介绍'" style="margin-bottom: 20px"> !(
<div v-for="itemDataForm in dataForm.infoList" :key="itemDataForm.attrType"> itemsonson.name === '平台地址' ||
<div v-if="itemDataForm.attrType === '功能介绍'" class="textAndImg"> itemsonson.name === 'SDK安装包' ||
<div v-for="itemDataFormValue in itemDataForm.attrValue" :key="itemDataFormValue.name + 'value'" itemsonson.name === '接口请求方式' ||
class="textAndImgSon" style="border: 1px solid #3c9bcd;margin"> itemsonson.name === '服务接口'
<div>{{ itemDataFormValue.name }}</div> )
<el-tooltip placement="top"> ">
<div slot="content">{{ itemDataFormValue.desc }}</div> <span style="font-size:14px;color:#212121;">{{itemsonson.name}}</span>:
<div>{{ itemDataFormValue.desc }}</div> <el-tooltip placement="top" v-if="(itemsonson.note1 && itemsonson.note1.length>10)">
<div slot="content">{{itemsonson.note1}}</div>
<span style="font-size:14px;color:#212121;font-weight: bold;">{{itemsonson.note1}}</span>
</el-tooltip> </el-tooltip>
<div @click="videoAndImg(itemDataFormValue.img)">浏览</div> <span style="font-size:14px;color:#212121;font-weight: bold;" v-else>{{ itemsonson.note1 }}</span>
</div>
</div>
</div> </div>
</div> </template>
</div>
</div>
</div> </div>
</div> </div>
</el-form> </el-form>
@ -145,9 +220,10 @@
<script> <script>
import qs from 'qs' import qs from 'qs'
import Template from '../../devtools/template.vue'
export default { export default {
components: {}, components: {Template},
props: { props: {
dataForm: { dataForm: {
type: Object type: Object
@ -173,6 +249,7 @@ export default {
watch: { watch: {
dataList (item) { dataList (item) {
if (item) { if (item) {
this.dataList = item this.dataList = item
} }
}, },
@ -184,11 +261,11 @@ export default {
)[0] )[0]
this.dataForm.infoList.map((item, index) => { this.dataForm.infoList.map((item, index) => {
this.dataView.children.map((itemView, indexView) => { this.dataView.children.map((itemView, indexView) => {
// console.log('itemView', itemView)
itemView.children.map((itemViewSon, indexViewSon) => { itemView.children.map((itemViewSon, indexViewSon) => {
// console.log('itemViewSon', itemViewSon)
itemViewSon.children.map((itemSon, indexSon) => { itemViewSon.children.map((itemSon, indexSon) => {
// console.log('itemSon', itemSon)
if (itemSon.name.indexOf('描述') != -1) { if (itemSon.name.indexOf('描述') != -1) {
this.dataView.children[indexView].children[ this.dataView.children[indexView].children[
indexViewSon indexViewSon
@ -206,7 +283,7 @@ export default {
indexViewSon indexViewSon
].children[indexSon].note1 = this.dataForm.shareCondition ].children[indexSon].note1 = this.dataForm.shareCondition
} else if (itemSon.name === '部门联系人') { } else if (itemSon.name === '部门联系人') {
console.log('itemSon.name', itemSon.name)
this.dataView.children[indexView].children[ this.dataView.children[indexView].children[
indexViewSon indexViewSon
].children[indexSon].note1 = this.dataForm.deptContacts ].children[indexSon].note1 = this.dataForm.deptContacts
@ -260,11 +337,11 @@ export default {
)[0] )[0]
this.dataForm.infoList.map((item, index) => { this.dataForm.infoList.map((item, index) => {
this.dataView.children.map((itemView, indexView) => { this.dataView.children.map((itemView, indexView) => {
console.log('itemView', itemView)
itemView.children.map((itemViewSon, indexViewSon) => { itemView.children.map((itemViewSon, indexViewSon) => {
console.log('itemViewSon', itemViewSon)
itemViewSon.children.map((itemSon, indexSon) => { itemViewSon.children.map((itemSon, indexSon) => {
console.log('itemSon', itemSon)
if (itemSon.name.indexOf('描述') != -1) { if (itemSon.name.indexOf('描述') != -1) {
this.dataView.children[indexView].children[ this.dataView.children[indexView].children[
indexViewSon indexViewSon
@ -286,7 +363,7 @@ export default {
indexViewSon indexViewSon
].children[indexSon].note1 = this.dataForm.shareType ].children[indexSon].note1 = this.dataForm.shareType
} else if (itemSon.name === '部门联系人') { } else if (itemSon.name === '部门联系人') {
console.log('itemSon.name', itemSon.name)
this.dataView.children[indexView].children[ this.dataView.children[indexView].children[
indexViewSon indexViewSon
].children[indexSon].note1 = this.dataForm.deptContacts ].children[indexSon].note1 = this.dataForm.deptContacts
@ -336,22 +413,26 @@ export default {
} }
}) })
console.log( console.log(
'valvalvalvalvalvalvalvalvalvalval', 'valvalvalvalvalvalvalvalvalvalval============',
this.dataForm,
this.dataView this.dataView
) )
// -使-3 // -使-3
this.dataView.children.map((val) => { this.dataView.children.map((val) => {
if (val.name === '部署与使用') { if (val.name === '部署与使用') {
val.children.map((val) => { val.children.map((val) => {
if (val.name === '使用方式') { if (val.name === '使用方式') {
val.children.map((val) => { val.children.map((val) => {
if (val.name === '使用方式') { if (val.name === '使用方式') {
if (val.note1 === 'SDK') { if (val.note1 === 'SDK') {
this.showSDK = true this.showSDK = true
} else if (val.note1 === '平台对接') { } else if (val.note1 === '平台对接') {
this.showDocking = true this.showDocking = true
} else if (val.note1 === '调用接口') { } else if (val.note1 === '调用接口') {
this.showInterface = true this.showInterface = true
} }
} }
@ -366,7 +447,16 @@ export default {
}, },
computed: {}, computed: {},
methods: { methods: {
setTab(name,cursel,n){
for(let i=1;i<=n;i++){
var menu=document.getElementById(name+i);
var con=document.getElementById("con_"+name+"_"+i);
menu.className=i==cursel?"hover":"";
con.style.display=i==cursel?"block":"none";
}
},
videoAndImg (link) { videoAndImg (link) {
if (link) { if (link) {
window.open(link) window.open(link)
} else { } else {
@ -377,11 +467,11 @@ export default {
} }
}, },
deptName () { deptName () {
console.log(this.dataForm.deptId)
this.$http this.$http
.get(`/sys/dept/${this.dataForm.deptId}`) .get(`/sys/dept/${this.dataForm.deptId}`)
.then(({ data: res }) => { .then(({ data: res }) => {
console.log(res.data.name, 'res')
this.unit = res.data.name this.unit = res.data.name
}) })
}, },
@ -437,20 +527,117 @@ export default {
</style> </style>
<style lang="scss" scoped> <style lang="scss" scoped>
.wrapper { .wrapper {
.dataTitle { padding: 10px 100px;
text-align: center; background: #ffffff;
color: #333333; .other-content{
font-size: 22px; // height: 278px;
margin-bottom: 25px; overflow-y: auto;
background: #f4f5f8;
.other-info{
display: inline;
}
.info-inner{
padding: 0px 24px;
width:33%;
height:60px;
float:left;
line-height: 60px;
display: flex;
span:nth-of-type(2){
width: 285px;
word-break: break-all;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 1;
}
}
}
.info-content{
height:315px;
background: #f4f5f8;
.info-left{
padding: 24px 24px;
overflow-y: auto;
width:58%;
height:100%;
float:left;
display:inline;
padding:24px 24px ;
.left-inner{
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
width: 50%;
float:left;
height:32px;
line-height: 32px;
}
}
.info-right{
width:42%;
height:100%;
float:left;
display:inline;
.lib_tabborder_sx{
height: 270px;
margin-top: 24px;
}
.lib_Menubox_sx {
line-height:28px;
position:relative;
float:left;
width:48x;
height:300px;
}
.lib_Menubox_sx ul{
list-style:none;
position:absolute;
text-align:center;
}
.lib_Menubox_sx li{
cursor: pointer;
color: #212121;
height: 66px;
width: 32px;
background-color: #ffffff;
border-radius: 1px;
writing-mode: vertical-lr;
}
.lib_Menubox_sx li.hover{
color: #fff;
background-color: #0058e1;
}
.lib_Contentbox_sx{
margin-left: 72px;
background: #dadada;
height: 270px;
width: 490px;
}
}
} }
.dataTitleSon { .dataTitleSon {
padding-left: 30px; padding-left: 20px;
color: #333333; color: #212121;
font-size: 22px; font-size: 16px;
margin-bottom: 20px; margin-bottom: 10px;
background: url("~@/assets/img/sj-jx.png") no-repeat; margin-top: 32px;
background-position-x: 15px; background: url("~@/assets/img/biaoti.png") no-repeat;
background-position-y: 2px;
} }
.multipleAdditionsClass { .multipleAdditionsClass {
@ -509,22 +696,66 @@ export default {
background: rgba(60, 155, 205, 0.1); background: rgba(60, 155, 205, 0.1);
display: inline-block; display: inline-block;
} }
.textAndImgY{
width: 720px;
height: 270px;
margin-right: 24px;
display: table;
.ImgSon{
display: table-cell;
width: 476px;
float: left;
height: 100%;
background: red;
}
.texton{
display: table-cell;
height: 100%;
width: 244px;
float: left;
}
}
.textAndImg { .textAndImg {
display: flex; display: flex;
padding-left: 30px; // padding-left: 30px;
background:#fff;
.textAndImgSon1 {
width: 700px;
height: 270px;
.Son1-left{
float: left;
width:476px;
height: 270px;
border-radius: 2px;
}
}
.textAndImgSon { .textAndImgSon {
width: 212px; float:left;
height: 182px; background: url("~@/assets/img/gongnengjieshao.png") no-repeat;
margin-right: 30px; width: 170px;
height: 270px;
margin-right: 24px;
color: #fff;
border-radius: 2px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center;
padding: 10px; padding: 30px 24px;
position: relative; position: relative;
&>div {
&>div:first-child {
text-align: center;
margin-bottom: 30px;
font-weight: bold;
font-size: 18px;
}
&>div:nth-child(2) {
text-align: left;
-webkit-line-clamp: 5; -webkit-line-clamp: 5;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
@ -532,24 +763,18 @@ export default {
-webkit-box-orient: vertical; -webkit-box-orient: vertical;
word-break: break-all; word-break: break-all;
} }
&>div:nth-child(3) {
&>div:first-child { margin-top: 24px;
margin-bottom: 10px; text-align: left;
font-weight: bold; -webkit-line-clamp: 3;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-box-orient: vertical;
word-break: break-all;
} }
&>div:nth-child(3) {
margin-top: 10px;
position: absolute;
bottom: 8px;
cursor: pointer;
font-size: 12px;
border: 1px solid #3c9bcd;
line-height: 12px;
padding: 5px;
margin-top: 10px;
background: rgba(60, 155, 205, 0.1);
}
} }
} }

View File

@ -34,7 +34,7 @@
></ren-process-multiple> --> ></ren-process-multiple> -->
<!-- 审批 --> <!-- 审批 -->
<div class="agreeOr" v-if="taskId"> <div class="agreeOr" v-if="taskId">
<h3>审批</h3> <div>审批</div>
<div class="approvalOperation"> <div class="approvalOperation">
<div class="contentOperation"> <div class="contentOperation">
<el-input v-model="input" placeholder="请输入审批意见"></el-input> <el-input v-model="input" placeholder="请输入审批意见"></el-input>
@ -42,35 +42,14 @@
<el-button class="rejectButton" @click="agreeOrNot($store.state.contentTabsActiveName,'驳回')">驳回</el-button> <el-button class="rejectButton" @click="agreeOrNot($store.state.contentTabsActiveName,'驳回')">驳回</el-button>
<el-button class="transferButton" @click="entrustTask()" v-if='taskEntrustFlag && taskEntrustFlag2'>转办</el-button> <el-button class="transferButton" @click="entrustTask()" v-if='taskEntrustFlag && taskEntrustFlag2'>转办</el-button>
</div> </div>
<!-- <el-button type="info" @click="entrustTask()" v-if='taskEntrustFlag && taskEntrustFlag2'>转办</el-button>
<el-button type="primary" @click="showDialog('同意')">同意</el-button>
<el-button type="danger" plain @click="showDialog('驳回')"
>驳回</el-button
> -->
<!-- <el-radio-group v-model="agreeOrList" style="width: 230px">
<el-radio-button label="同意" class="blueAll">同意</el-radio-button>
<el-radio-button label="退回" class="redAll">退回</el-radio-button>
</el-radio-group>
<el-input
v-if="agreeOrList === '同意'"
v-model="inputAgree"
placeholder="请输入同意意见"
></el-input>
<el-input
v-if="agreeOrList === '退回'"
v-model="inputNo"
placeholder="请输入退回意见"
></el-input>
<el-button
class="inputBule"
@click.native="agreeOrNot($store.state.contentTabsActiveName)"
>提交</el-button
> -->
</div> </div>
</div> </div>
<ren-task-entrust v-if="renTaskEntrustVisible" ref="renTaskEntrust"></ren-task-entrust> <ren-task-entrust v-if="renTaskEntrustVisible" ref="renTaskEntrust"></ren-task-entrust>
<!-- 流程详情 --> <!-- 流程详情 -->
<div style="padding: 10px 100px;background: #ffffff;">
<ren-process-detail></ren-process-detail> <ren-process-detail></ren-process-detail>
</div>
<el-dialog <el-dialog
title="审批意见" title="审批意见"
:close-on-click-modal="false" :close-on-click-modal="false"
@ -142,7 +121,6 @@ export default {
watch: {}, watch: {},
created () { created () {
// KEY // KEY
console.log('params=================>', this.$route, this.$route.params)
this.taskId = this.$route.params.taskId this.taskId = this.$route.params.taskId
this.dataForm.taskId = this.$route.params.taskId this.dataForm.taskId = this.$route.params.taskId
this.$http.get('/sys/user/info').then(({ data: res }) => { this.$http.get('/sys/user/info').then(({ data: res }) => {
@ -154,7 +132,7 @@ export default {
.get( .get(
'/act/task/getTaskVariables?taskId=' + this.$route.params.taskId + '&variableName=allowEntrust' '/act/task/getTaskVariables?taskId=' + this.$route.params.taskId + '&variableName=allowEntrust'
).then(entrust => { ).then(entrust => {
console.log('11111111111111', entrust, this.dataForm)
if (entrust.data.data && entrust.data.data.allowEntrust === true) { if (entrust.data.data && entrust.data.data.allowEntrust === true) {
this.taskEntrustFlag2 = true this.taskEntrustFlag2 = true
if (this.taskEntrustFlag && this.taskEntrustFlag2) { if (this.taskEntrustFlag && this.taskEntrustFlag2) {
@ -175,7 +153,7 @@ export default {
}) })
}) })
this.init() this.init()
console.log('fromList', this.$router.currentRoute.params.businessKey)
// this.dataForm = this.$router.currentRoute.params.params.params.resourceDTO // this.dataForm = this.$router.currentRoute.params.params.params.resourceDTO
var callbacks = { var callbacks = {
startProcessSuccessCallback: this.closeCurrentTab, startProcessSuccessCallback: this.closeCurrentTab,
@ -192,7 +170,6 @@ export default {
const businessKey = this.$router.currentRoute.params.businessKey const businessKey = this.$router.currentRoute.params.businessKey
this.getInfo(businessKey) this.getInfo(businessKey)
this.methodsThree() this.methodsThree()
console.log(this.taskId, 'this.dataForm.taskId')
}, },
computed: {}, computed: {},
methods: { methods: {
@ -209,7 +186,6 @@ export default {
this.$http.get('/resourceMountApply/' + id).then(({ data: res }) => { this.$http.get('/resourceMountApply/' + id).then(({ data: res }) => {
this.dataForm = res.data.resourceDTO this.dataForm = res.data.resourceDTO
if (this.dataForm) { if (this.dataForm) {
console.log('this.dataForm', this.dataForm)
this.flagShow = true this.flagShow = true
} }
}) })
@ -243,7 +219,6 @@ export default {
// KEY // KEY
this.fieldDisabled = true this.fieldDisabled = true
// this.id = this.$router.currentRoute.businessKey // this.id = this.$router.currentRoute.businessKey
console.log('id', this.$router.currentRoute.params.businessKey)
// } // }
}) })
}, },
@ -252,12 +227,12 @@ export default {
function (data, type) { function (data, type) {
if (type === '同意') { if (type === '同意') {
// if (this.input !== '') { // if (this.input !== '') {
console.log('this.dataForm', this.dataForm)
const params = qs.stringify({ const params = qs.stringify({
taskId: this.taskId, taskId: this.taskId,
comment: this.input || '同意' comment: this.input || '同意'
}) })
console.log(params)
this.$http this.$http
.post('/act/task/complete?' + params) .post('/act/task/complete?' + params)
.then(({ data: res }) => { .then(({ data: res }) => {
@ -269,6 +244,7 @@ export default {
return return
} }
bus.$emit('abilityResourceShelfInit') bus.$emit('abilityResourceShelfInit')
bus.$emit('workInit')
this.$message({ this.$message({
message: this.$t('prompt.success'), message: this.$t('prompt.success'),
type: 'success', type: 'success',
@ -306,6 +282,7 @@ export default {
return return
} }
bus.$emit('abilityResourceShelfInit') bus.$emit('abilityResourceShelfInit')
bus.$emit('workInit')
this.$message({ this.$message({
message: this.$t('prompt.success'), message: this.$t('prompt.success'),
type: 'success', type: 'success',
@ -328,7 +305,7 @@ export default {
{ leading: true, trailing: false } { leading: true, trailing: false }
), ),
tabRemoveHandle (tabName) { tabRemoveHandle (tabName) {
console.log(tabName, 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
if (tabName === 'home') { if (tabName === 'home') {
return false return false
} }
@ -342,15 +319,26 @@ export default {
} }
// tab // tab
if (tabName === this.$store.state.contentTabsActiveName) { if (tabName === this.$store.state.contentTabsActiveName) {
const tab = //
const tab1 = this.$store.state.contentTabs.filter(val => val.name === tabName.substring(0, tabName.indexOf('__')))[0]
// tab
const tab2 =
this.$store.state.contentTabs[ this.$store.state.contentTabs[
this.$store.state.contentTabs.length - 1 this.$store.state.contentTabs.length - 1
] ]
this.$router.push({ if (tab1) {
name: /^iframe_.+/.test(tab.name) ? 'iframe' : tab.name, this.$router.push({
params: { ...tab.params }, name: /^iframe_.+/.test(tab1.name) ? 'iframe' : tab1.name,
query: { ...tab.query } params: { ...tab1.params },
}) query: { ...tab1.query }
})
} else {
this.$router.push({
name: /^iframe_.+/.test(tab2.name) ? 'iframe' : tab2.name,
params: { ...tab2.params },
query: { ...tab2.query }
})
}
} }
} }
} }
@ -362,16 +350,26 @@ export default {
} }
.wrapper { .wrapper {
} }
::v-deep .agreeOr > div { ::v-deep .agreeOr{
display: flex; padding: 10px 100px;
//align-items: center; background: #ffffff;
.el-input { }
margin-right: 10px; ::v-deep .agreeOr > div:first-of-type {
margin-left: 32px; padding-left: 20px;
} color: #212121;
font-size: 16px;
margin-bottom: 10px;
margin-top: 10px;
background: url("~@/assets/img/biaoti.png") no-repeat;
background-position-y: 2px;
} }
::v-deep .agreeOr > div:last-of-type { ::v-deep .agreeOr > div:last-of-type {
margin-top: 15px; margin-top: 15px;
.el-input {
margin-right: 10px;
}
} }
.blueAll { .blueAll {
::v-deep .el-radio-button__inner { ::v-deep .el-radio-button__inner {

View File

@ -2,7 +2,7 @@
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-06-29 15:59:51 * @Date: 2022-06-29 15:59:51
* @LastEditors: Light * @LastEditors: Light
* @LastEditTime: 2022-11-30 15:45:35 * @LastEditTime: 2022-12-03 16:25:55
* @Description: 告诉大家这是什么 * @Description: 告诉大家这是什么
--> -->
<!-- 流程业务表单 --> <!-- 流程业务表单 -->
@ -443,6 +443,7 @@ export default {
return return
} }
bus.$emit('competencyApplicationInit') bus.$emit('competencyApplicationInit')
bus.$emit('workInit')
this.$message({ this.$message({
message: this.$t('prompt.success'), message: this.$t('prompt.success'),
type: 'success', type: 'success',
@ -478,6 +479,7 @@ export default {
return return
} }
bus.$emit('competencyApplicationInit') bus.$emit('competencyApplicationInit')
bus.$emit('workInit')
this.$message({ this.$message({
message: this.$t('prompt.success'), message: this.$t('prompt.success'),
type: 'success', type: 'success',
@ -514,15 +516,26 @@ export default {
} }
// tab // tab
if (tabName === this.$store.state.contentTabsActiveName) { if (tabName === this.$store.state.contentTabsActiveName) {
const tab = //
const tab1 = this.$store.state.contentTabs.filter(val => val.name === tabName.substring(0, tabName.indexOf('__')))[0]
// tab
const tab2 =
this.$store.state.contentTabs[ this.$store.state.contentTabs[
this.$store.state.contentTabs.length - 1 this.$store.state.contentTabs.length - 1
] ]
this.$router.push({ if (tab1) {
name: /^iframe_.+/.test(tab.name) ? 'iframe' : tab.name, this.$router.push({
params: { ...tab.params }, name: /^iframe_.+/.test(tab1.name) ? 'iframe' : tab1.name,
query: { ...tab.query } params: { ...tab1.params },
}) query: { ...tab1.query }
})
} else {
this.$router.push({
name: /^iframe_.+/.test(tab2.name) ? 'iframe' : tab2.name,
params: { ...tab2.params },
query: { ...tab2.query }
})
}
} }
}, },
// //

View File

@ -0,0 +1,197 @@
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-demo__sysnotice">
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getData()">
<el-form-item>
<el-input v-model="dataForm.content" dict-type="notice_type" :placeholder="$t('notice.type')"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="getData()">{{ $t('query') }}</el-button>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="dialogVisible = true">添加公告</el-button>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="dialogVisible2 = true">公告周期设置</el-button>
</el-form-item>
</el-form>
<el-table v-loading="dataListLoading" :data="dataList" border
style="width: 100%;">
<el-table-column prop="content" label="内容" header-align="center" align="center" width="950">
</el-table-column>
<el-table-column prop="publishTime" label="发布时间" header-align="center" align="center" width="300">
</el-table-column>
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150">
<template slot-scope="scope">
<el-button type="text" size="small" @click="viewHandle(scope.row)">
详情
</el-button>
<el-button type="text" size="small" @click="deleteHandle(scope.row)">{{ $t('delete') }}</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination :current-page="dataForm.page" :page-size="dataForm.limit" :total="total"
layout="total, prev, pager, next"
@current-change="currentChange">
</el-pagination>
<!-- 弹窗, 新增 / 修改 -->
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
</div>
<el-dialog
title="添加公告"
:visible.sync="dialogVisible"
width="30%"
:close-on-click-modal="false">
<el-input
type="textarea"
:rows="5"
:maxlength="200"
show-word-limit
placeholder="请输入公告内容6-200字"
v-model="submitData.content">
</el-input>
<span slot="footer" class="dialog-footer">
<el-button @click="handleClose"> </el-button>
<el-button type="primary" @click="submit"> </el-button>
</span>
</el-dialog>
<el-dialog
title="设置公告周期"
:visible.sync="dialogVisible2"
width="30%"
:close-on-click-modal="false">
<el-input
placeholder="请输入公告周期(天)"
v-model="cycle">
</el-input>
<span slot="footer" class="dialog-footer">
<el-button @click="handleClose"> </el-button>
<el-button type="primary" @click="submitCycle"> </el-button>
</span>
</el-dialog>
</el-card>
</template>
<script>
import qs from 'qs'
import AddOrUpdate from './notice-add-or-update'
import { addDynamicRoute } from '@/router'
export default {
data () {
return {
cycle: 0,
total: 0,
dataListLoading: false,
dialogVisible: false,
dialogVisible2: false,
dataList: [],
dataForm: {
page: 1,
limit: 5,
content: ''
},
submitData: {
content: ''
}
}
},
components: {
AddOrUpdate
},
methods: {
currentChange (current) {
this.dataForm.page = current
this.getData()
},
getData () {
this.$http.get('/sysnoticemanagement/page?' + qs.stringify(this.dataForm)).then(res => {
console.log('获取通知数据', res.data.data)
this.dataList = res.data.data.list
this.total = res.data.data.total
this.dataListLoading = false
})
},
getCycle () {
this.$http.get('/sys/dict/data/page?dictTypeId=1598237460358852610&page=1&limit=9999').then(res => {
console.log('字典', res.data.data)
this.cycle = res.data.data.list[0].dictLabel
})
},
handleClose () {
this.dialogVisible = false
this.dialogVisible2 = false
this.submitData.content = ''
this.getCycle()
},
submit () {
console.log(this.submitData)
if (this.submitData.content.length < 6) {
this.$message({
message: '最少发布6个字的公告',
type: 'warning'
})
return
}
this.$http.post('/sysnoticemanagement', this.submitData).then(res => {
console.log('获取通知数据', res.data.data)
this.clear()
})
},
submitCycle () {
this.$http.put('/sys/dict/data', {
dictLabel: this.cycle,
dictTypeId: '1598237460358852610',
id: '1598237627208265730'
}).then(res => {
this.clear()
})
},
clear () {
this.dialogVisible = false
this.dialogVisible2 = false
this.submitData.content = ''
this.dataForm.content = ''
this.dataForm.page = 1
this.getData()
this.getCycle()
},
deleteHandle (item) {
console.log(item)
this.$http.post('/sysnoticemanagement/delete', [item.id]).then(res => {
this.clear()
})
},
viewHandle (row) {
//
const routeParams = {
routeName: `${this.$route.name}__${row.id}`,
title: this.$t('notice.view1'),
path: 'notice/notice-view',
params: {
id: row.id
}
}
//
addDynamicRoute(routeParams, this.$router)
}
},
created () {
this.getData()
this.getCycle()
}
}
</script>
<style scoped>
.text-ellipsis {
/*1. 先强制一行内显示文本*/
white-space: nowrap;
/*2. 超出的部分隐藏*/
overflow: hidden;
/*3. 文字用省略号替代超出的部分*/
text-overflow: ellipsis;
}
::v-deep .el-textarea__inner {
resize: none;
}
</style>

View File

@ -48,10 +48,12 @@ export default {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg) return this.$message.error(res.msg)
} }
this.dataForm = { this.dataForm = {
...this.dataForm, ...this.dataForm,
...res.data ...res.data
} }
console.log("========================this.dataForm",this.dataForm)
}).catch(() => {}) }).catch(() => {})
} }
} }

View File

@ -12,7 +12,7 @@
<ren-select v-model="dataForm.gender" dict-type="gender" :placeholder="$t('user.gender')"></ren-select> <ren-select v-model="dataForm.gender" dict-type="gender" :placeholder="$t('user.gender')"></ren-select>
</el-form-item> --> </el-form-item> -->
<el-form-item label="所属部门"> <el-form-item label="所属部门">
<el-select v-model="dataForm.deptId" :placeholder="$t('infrastructure.department')" clearable> <el-select v-model="dataForm.deptId" :placeholder="$t('infrastructure.department')" clearable filterable >
<el-option :label="data.name" v-for="data in deptList" :key="data.id" :value="data.id">{{ data.name <el-option :label="data.name" v-for="data in deptList" :key="data.id" :value="data.id">{{ data.name
}}</el-option> }}</el-option>
</el-select> </el-select>
@ -105,8 +105,8 @@ export default {
mixins: [mixinViewModule], mixins: [mixinViewModule],
data () { data () {
return { return {
// //
checkVisible:false, checkVisible: false,
mixinViewModuleOptions: { mixinViewModuleOptions: {
getDataListURL: '/sys/user/page', getDataListURL: '/sys/user/page',
getDataListIsPage: true, getDataListIsPage: true,
@ -131,14 +131,14 @@ export default {
this.getDeptList() this.getDeptList()
}, },
methods: { methods: {
check(){ check () {
this.checkVisible=true this.checkVisible = true
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.check.init() this.$refs.check.init()
}) })
}, },
refreshCheck(val){ refreshCheck (val) {
this.checkVisible=val this.checkVisible = val
}, },
reset () { reset () {
this.dataForm.username = '' this.dataForm.username = ''

View File

@ -3,8 +3,8 @@
<!-- 部门发布动态 --> <!-- 部门发布动态 -->
<div class="left container"> <div class="left container">
<content-title :title="title.dynamic"></content-title> <content-title :title="title.dynamic"></content-title>
<div class="dynamic-box" v-loading="loadingDynamic"> <div v-if="(list.length>0)" class="dynamic-box" v-loading="loadingDynamic">
<div class="dynamicView" v-for="(item, index) in list" :key="index" :number="index + 1" :item="item"> <div class="dynamicView" v-for="(item, index) in list" :key="index" :number="index + 1" :item="item">
<div class="wrapper"> <div class="wrapper">
<div class="content"> <div class="content">
<div class="left">{{ item.createDate }}</div> <div class="left">{{ item.createDate }}</div>
@ -16,6 +16,13 @@
</div> </div>
<div class="more" @click="jumpTo">查看更多 ></div> <div class="more" @click="jumpTo">查看更多 ></div>
</div> </div>
<div
class="no-data"
v-else
style="display: flex; align-items: center; justify-content: center"
>
暂无数据
</div>
</div> </div>
<!-- 部门推荐能力 --> <!-- 部门推荐能力 -->
@ -156,7 +163,14 @@ export default {
box-sizing: border-box; box-sizing: border-box;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
.no-data {
width: 800px;
height: 335px;
line-height: 335px;
font-size: 16px;
color: #212121;
text-align: center;
}
.container { .container {
background: #fff; background: #fff;
width: 800px; width: 800px;

View File

@ -68,7 +68,7 @@ export default {
const valueItem = y + '-' + m + '-' + d // const valueItem = y + '-' + m + '-' + d //
days.unshift(valueItem) // days.unshift(valueItem) //
} }
console.log('最近七天日期:', days)
return days return days
}, },
@ -88,6 +88,7 @@ export default {
endDate: this.endDate endDate: this.endDate
}, },
(res) => { (res) => {
// if (res.data.code !== 0) { // if (res.data.code !== 0) {
// return // return
// } // }
@ -111,7 +112,7 @@ export default {
ydata: [] ydata: []
} }
} }
this.$nextTick(() => { this.$nextTick(() => {
trendLineChart('trendId', this.trendChartData) trendLineChart('trendId', this.trendChartData)
}) })
@ -124,7 +125,7 @@ export default {
handleTitleSwitch (idx) { handleTitleSwitch (idx) {
this.selectedTitle = idx this.selectedTitle = idx
this.startDate = this.getData(this.selectedTitle == 0 ? 7 : 30) this.startDate = this.getData(this.selectedTitle == 0 ? 7 : 30)
console.log(this.startDate)
this.initChart() this.initChart()
}, },
getData (aa) { getData (aa) {

View File

@ -35,7 +35,7 @@ import CenterView from '../workBench/components/center-view.vue'
import DeptChartView from '../workBench/components/dept-chart-view.vue' import DeptChartView from '../workBench/components/dept-chart-view.vue'
import deptTodoView from '../workBench/components/dept-todo-view.vue' import deptTodoView from '../workBench/components/dept-todo-view.vue'
import * as Apis from './api.js' import * as Apis from './api.js'
import bus from '@/views/bus.js'
export default { export default {
components: { components: {
deptTodoView, deptTodoView,
@ -87,6 +87,14 @@ export default {
loadingRequire: false loadingRequire: false
} }
}, },
created () {
bus.$off('workInit')
bus.$on('workInit', () => {
console.log("刷新工作台===================")
this.getToDo()
this.getHasToDo()
})
},
mounted () { mounted () {
// //
this.getToDo() this.getToDo()

View File

@ -2,7 +2,7 @@
* @Author: hisense.wuhongjian * @Author: hisense.wuhongjian
* @Date: 2020-07-07 16:03:23 * @Date: 2020-07-07 16:03:23
* @LastEditors: Light * @LastEditors: Light
* @LastEditTime: 2022-12-01 12:32:58 * @LastEditTime: 2022-12-08 13:42:49
* @Description: 系统静态参数配置 * @Description: 系统静态参数配置
*/ */
var _global = {} var _global = {}
@ -68,7 +68,7 @@ var CONFIGITEM = {
// cameraUrl: '192.168.124.236:9537', // vpn // cameraUrl: '192.168.124.236:9537', // vpn
}, },
backUrl: 'http://10.134.135.9:9797', backUrl: 'http://10.134.135.9:9797',
apiURL: 'http://10.134.135.92:8888/renren-admin', apiURL: 'http://10.134.135.9:8888/renren-admin',
// apiURL: 'http://192.168.124.233:8888/ucs-admin', // apiURL: 'http://192.168.124.233:8888/ucs-admin',
// previewUrl: 'http://10.134.135.9:9796/', // previewUrl: 'http://10.134.135.9:9796/',
// websocketURL: '10.134.135.9:8888/ucs-admin', // // websocketURL: '10.134.135.9:8888/ucs-admin', //

View File

@ -1,117 +1,132 @@
* { * {
font-weight: normal; font-weight: normal;
font-style: normal; font-style: normal;
} }
.mask-layer { .mask-layer {
position: absolute; position: absolute;
top: 0; top: 0;
left: 0; left: 0;
bottom: 0; bottom: 0;
right: 0; right: 0;
background: rgba(0, 0, 0, 0.6); background: rgba(0, 0, 0, 0.6);
} }
.model-container { .model-container {
width: 446px; width: 446px;
height: 194px; height: 194px;
background: #fff; background: #fff;
text-align: center; text-align: center;
font-size: 18px; font-size: 18px;
color: #707070; color: #707070;
font-family: 'Alibaba PuHuiTi'; font-family: 'Alibaba PuHuiTi';
position: absolute; position: absolute;
top: 50%; top: 50%;
left: 50%; left: 50%;
-webkit-transform: translate(-50%, -50%); -webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%); -moz-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%); -ms-transform: translate(-50%, -50%);
-o-transform: translate(-50%, -50%); -o-transform: translate(-50%, -50%);
transform: translate(-50%, -50%); transform: translate(-50%, -50%);
z-index: 99999999999; z-index: 99999999999;
} }
.model-container .model-title { .model-container .model-title {
height: 40px; height: 40px;
padding-left: 24px; padding-left: 24px;
padding-right: 24px; padding-right: 24px;
padding-top: 10px; padding-top: 10px;
background: #007fff; background: #007fff;
text-align: left; text-align: left;
} }
.model-container .title-span { .model-container .title-span {
font-family: 'Alibaba PuHuiTi'; font-family: 'Alibaba PuHuiTi';
font-size: 18px !important; font-size: 18px !important;
color: #ffffff; color: #ffffff;
} }
.model-container .model-close { .model-container .model-close {
position: absolute; position: absolute;
right: 20px; right: 20px;
top: 10px; top: 10px;
width: 18px; width: 18px;
height: 18px; height: 18px;
cursor: pointer; cursor: pointer;
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAABHNCSVQICAgIfAhkiAAAALZJREFUOE9jZACC////ZwIpcyBOZGRk/A8SIwSAehqAatiB6itBahmBAhVAuh2qcRGQTiBkGNSQeqie6UA6G2QQyGSYIEgOr2E41UO9RpRh+CxlhIUFIZcRkocbhM9lUK/j9T6KQTgMuwgU10eKRaxhiGEQDsNg5uCMCKwGQQ07AKTtkVxyF8hWxZU0aOciLLFDehjhimKSYo1QOiEkDw4jQoqISbTUy2tUy/1Qr1FeHiElOIqYAKkPngur14nOAAAAAElFTkSuQmCC); background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABIAAAASCAYAAABWzo5XAAAABHNCSVQICAgIfAhkiAAAALZJREFUOE9jZACC////ZwIpcyBOZGRk/A8SIwSAehqAatiB6itBahmBAhVAuh2qcRGQTiBkGNSQeqie6UA6G2QQyGSYIEgOr2E41UO9RpRh+CxlhIUFIZcRkocbhM9lUK/j9T6KQTgMuwgU10eKRaxhiGEQDsNg5uCMCKwGQQ07AKTtkVxyF8hWxZU0aOciLLFDehjhimKSYo1QOiEkDw4jQoqISbTUy2tUy/1Qr1FeHiElOIqYAKkPngur14nOAAAAAElFTkSuQmCC);
} }
.model-container .model-content { .model-container .model-content {
margin-top: 24px; margin-top: 24px;
} }
.model-container .controls { .model-container .controls {
position: absolute; position: absolute;
bottom: 10px; bottom: 10px;
width: 100%; width: 100%;
padding: 12px; padding: 12px;
padding-top: 40px; padding-top: 40px;
} }
.model-container a { .model-container a {
display: inline-block; display: inline-block;
width: 49%; width: 49%;
text-align: center; text-align: center;
cursor: pointer; cursor: pointer;
}
.ant-message {
z-index: 10010!important;
}
.ant-modal-wrap{
z-index: 10010!important;
}
.ant-notification {
z-index: 10012!important;
}
.ant-popconfirm {
z-index: 10010!important;
}
.ant-tooltip{
z-index: 10010!important;
} }
.model-container .confirmChrome { .model-container .confirmChrome {
width: 140px; width: 140px;
height: 36px; height: 36px;
background: #0087ff; background: #0087ff;
border-radius: 0.04rem !important; border-radius: 0.04rem !important;
font-size: 16px; font-size: 16px;
font-family: 'Alibaba PuHuiTi'; font-family: 'Alibaba PuHuiTi';
color: #fff; color: #fff;
line-height: 36px; line-height: 36px;
border-radius: 6px; border-radius: 6px;
} }
.model-container .confirm360 { .model-container .confirm360 {
width: 140px; width: 140px;
height: 36px; height: 36px;
background: #0087ff; background: #0087ff;
border-radius: 0.04rem !important; border-radius: 0.04rem !important;
font-size: 16px; font-size: 16px;
font-family: 'Alibaba PuHuiTi'; font-family: 'Alibaba PuHuiTi';
color: #fff; color: #fff;
line-height: 36px; line-height: 36px;
margin-left: 50px; margin-left: 50px;
border-radius: 6px; border-radius: 6px;
} }
@font-face { @font-face {
font-family: 'Alibaba PuHuiTi'; font-family: 'Alibaba PuHuiTi';
src: url('~@/assets/home/font/Alibaba-PuHuiTi-Light.otf'); src: url('~@/assets/home/font/Alibaba-PuHuiTi-Light.otf');
} }
/* 气泡提示框按钮居中 */ /* 气泡提示框按钮居中 */
.ant-popover-inner-content .ant-popover-buttons { .ant-popover-inner-content .ant-popover-buttons {
text-align: center; text-align: center;
} }
.ApplicationTopDetails-tooltip-card { .ApplicationTopDetails-tooltip-card {
max-width: 9rem !important; max-width: 9rem !important;
min-width: 6rem !important; min-width: 6rem !important;
max-height: 6rem !important; max-height: 6rem !important;
overflow-y: auto; overflow-y: auto;
} }

View File

@ -2,7 +2,7 @@
* @Author: hisense.wuhongjian * @Author: hisense.wuhongjian
* @Date: 2022-05-06 11:12:0011-18 19:07:53 * @Date: 2022-05-06 11:12:0011-18 19:07:53
* @LastEditors: Light * @LastEditors: Light
* @LastEditTime: 2022-12-01 12:33:18 * @LastEditTime: 2022-12-08 13:43:12
* @Description: 告诉大家这是什么 * @Description: 告诉大家这是什么
--> -->
<template> <template>
@ -92,13 +92,31 @@
if (res.data.code == 0) { if (res.data.code == 0) {
realName = res.data.data.realName realName = res.data.data.realName
} }
onWholeWaterMark( if (realName.length > 13) {
[realName, moment().format('YYYY-MM-DD')], onWholeWaterMark(
800, [realName, moment().format('YYYY-MM-DD')],
200, 800,
24, 200,
40 24,
) 40
)
} else if (realName.length > 8) {
onWholeWaterMark(
[realName, moment().format('YYYY-MM-DD')],
600,
200,
24,
40
)
} else {
onWholeWaterMark(
[realName, moment().format('YYYY-MM-DD')],
450,
200,
24,
40
)
}
getCategoryTreePage({ getCategoryTreePage({
page: 1, page: 1,
limit: 999, limit: 999,

View File

@ -2,7 +2,7 @@
* @Author: hisense.wuhongjian * @Author: hisense.wuhongjian
* @Date: 2022-04-01 19:19:40 * @Date: 2022-04-01 19:19:40
* @LastEditors: Light * @LastEditors: Light
* @LastEditTime: 2022-11-21 16:35:03 * @LastEditTime: 2022-12-06 11:43:03
* @Description: 告诉大家这是什么 * @Description: 告诉大家这是什么
*/ */
import request from '@/utils/request' import request from '@/utils/request'
@ -302,7 +302,7 @@ export function workdynamicsDetails(params) {
params, params,
}) })
} }
// //
export function selectDeptList(data) { export function selectDeptList(data) {
return request({ return request({
url: '/resource/selectDeptList', url: '/resource/selectDeptList',
@ -310,7 +310,15 @@ export function selectDeptList(data) {
data, data,
}) })
} }
// //
export function getDataResourceDeptList(data) {
return request({
url: '/resource/getDataResourceDeptList',
method: 'post',
data,
})
}
export function updateRes(data) { export function updateRes(data) {
return request({ return request({
url: '/resource/update', url: '/resource/update',
@ -572,3 +580,11 @@ export function delApplyCamera(data) {
data, data,
}) })
} }
//
export function sysnoticemanagement(params) {
return request({
url: '/sysnoticemanagement/page',
method: 'get',
params,
})
}

View File

@ -337,3 +337,12 @@ export function getDeviceDetail(deviceId) {
method: 'get', method: 'get',
}) })
} }
//
export function treminders(data) {
return request({
url: '/reminders/treminders',
method: 'post',
data,
})
}

View File

@ -1,8 +1,8 @@
/* /*
* @Author: hisense.wuhongjian * @Author: hisense.wuhongjian
* @Date: 2022-03-29 17:48:03 * @Date: 2022-03-29 17:48:03
* @LastEditors: Light * @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-10-10 16:56:17 * @LastEditTime: 2022-12-05 15:27:26
* @Description: 告诉大家这是什么 * @Description: 告诉大家这是什么
*/ */
import { storage, tokenTableName } from '@/config' import { storage, tokenTableName } from '@/config'
@ -42,8 +42,9 @@ export function setAccessToken(accessToken) {
} else if ('sessionStorage' === storage) { } else if ('sessionStorage' === storage) {
return sessionStorage.setItem(tokenTableName, accessToken) return sessionStorage.setItem(tokenTableName, accessToken)
} else if ('cookie' === storage) { } else if ('cookie' === storage) {
let expires = new Date(new Date() * 1 + 12 * 60 * 60 * 1000) // let expires = new Date(new Date() * 1 + 12 * 60 * 60 * 1000)
return cookie.set(tokenTableName, accessToken, { expires: expires }) // return cookie.set(tokenTableName, accessToken, { expires: expires })
return cookie.set(tokenTableName, accessToken)
// return cookie.set(tokenTableName, '213124123412341234') // return cookie.set(tokenTableName, '213124123412341234')
} else { } else {
return localStorage.setItem(tokenTableName, accessToken) return localStorage.setItem(tokenTableName, accessToken)

View File

@ -24,6 +24,10 @@ let loadingInstance
*/ */
const handleCode = (code, msg, res) => { const handleCode = (code, msg, res) => {
switch (code) { switch (code) {
case 0:
case 1:
case 200:
break
case 401: case 401:
store.dispatch('user/resetAll').catch(() => {}) store.dispatch('user/resetAll').catch(() => {})
break break
@ -43,6 +47,8 @@ const handleCode = (code, msg, res) => {
case 302: case 302:
// window.location.href = redirect // window.location.href = redirect
break break
default:
message.error(msg || '接口异常')
} }
} }

View File

@ -44,7 +44,7 @@
<div class="left-list1">排行</div> <div class="left-list1">排行</div>
<div class="left-list2">部门名称</div> <div class="left-list2">部门名称</div>
<div class="left-list1">应用数</div> <div class="left-list1">应用数</div>
<div class="left-list1" style="color: #1ffefd">贡献金额</div> <div class="left-list1" style="color: #1ffefd">节省金额</div>
</div> </div>
<div style=" height: 1.7rem; overflow-y: auto;overflow-x: hidden;width: 100%;"> <div style=" height: 1.7rem; overflow-y: auto;overflow-x: hidden;width: 100%;">
<div class="left-list" v-for="(item, index) in top5DeptFundList"> <div class="left-list" v-for="(item, index) in top5DeptFundList">
@ -105,7 +105,7 @@
<div class="left-list1">序号</div> <div class="left-list1">序号</div>
<div class="left-list2">部门名称</div> <div class="left-list2">部门名称</div>
<div class="left-list1">应用数</div> <div class="left-list1">应用数</div>
<div class="left-list1" style="color: #1ffefd">贡献金额</div> <div class="left-list1" style="color: #1ffefd">节省金额</div>
</div> </div>
<div style="height: 200px; overfolw-y: auto"> <div style="height: 200px; overfolw-y: auto">
<div <div

Binary file not shown.

After

Width:  |  Height:  |  Size: 464 B

View File

@ -8,13 +8,14 @@
<div style="color: #bed1df; font-size: 32px">累计节省财政资金</div> <div style="color: #bed1df; font-size: 32px">累计节省财政资金</div>
<div class="area-right"> <div class="area-right">
<!-- <div class="mianJi">累计节省财政资金</div> --> <!-- <div class="mianJi">累计节省财政资金</div> -->
<template v-for="(item, index) in saveMonmy"> <template v-for="(item, index) in saveMonmy">
<p v-if="item == '.'" :key="index"> <p v-if="item == '.'" :key="index">
{{ item }} {{ item }}
</p> </p>
<span v-else>{{ item }}</span> <span @click="jumpToPage" v-else>{{ item }}</span>
</template> </template>
<div class="mianJi">万元</div> <div class="mianJi" >万元</div>
<!-- <div stype="margin-left:10px" ><img src="./image/jump.png"/></div> -->
</div> </div>
<div style="color: #bed1df; font-size: 16px"> <div style="color: #bed1df; font-size: 16px">
资源参考价格由部门提供或参考市场价格设定 资源参考价格由部门提供或参考市场价格设定
@ -50,6 +51,7 @@
import ReservoirRight from './components/ReservoirRight' import ReservoirRight from './components/ReservoirRight'
import ReservoirBottom from './components/ReservoirBottom' import ReservoirBottom from './components/ReservoirBottom'
import { NumbersConvertedToArrays } from '@/utils/arrayMethod.js' import { NumbersConvertedToArrays } from '@/utils/arrayMethod.js'
import Cookies from 'js-cookie'
export default { export default {
//import使 //import使
components: { components: {
@ -87,6 +89,11 @@
watch: {}, watch: {},
// //
methods: { methods: {
//
jumpToPage(){
Cookies.remove('JSESSIONID')
window.open(window.SITE_CONFIG.backUrl + '/#/assetReport-index')
},
getSaveMoney() { getSaveMoney() {
getApplyPriceCount().then((res) => { getApplyPriceCount().then((res) => {
this.saveMonmy = NumbersConvertedToArrays(res.data.data) this.saveMonmy = NumbersConvertedToArrays(res.data.data)
@ -160,7 +167,7 @@
height: 1.8rem; height: 1.8rem;
} }
.header1 { .header1 {
top: 78px; top: 70px;
position: absolute; position: absolute;
left: 795px; left: 795px;
align-items: center; align-items: center;
@ -174,6 +181,7 @@
color: #bed1df; color: #bed1df;
margin-left: 100px; margin-left: 100px;
span { span {
cursor: pointer;
width: 36px; width: 36px;
// height: 45px; // height: 45px;
// line-height: 45px; // line-height: 45px;
@ -187,6 +195,10 @@
margin-right: 3px; margin-right: 3px;
font-family: DinPro-Bold; font-family: DinPro-Bold;
}
span:hover{
color: #f2bc0a;
} }
.mianJi { .mianJi {
margin-top: 6px; margin-top: 6px;

View File

@ -28,8 +28,8 @@
<template #renderItem="{ item }"> <template #renderItem="{ item }">
<a-list-item> <a-list-item>
<div class="toptitle"> <div class="toptitle">
<a-tooltip placement="topLeft"> <a-tooltip placement="topLeft" v-if="item.demandSubject.length>20">
<template #title>{{ item.demandSubject }}</template> <template #title>{{ item.demandSubject}}</template>
<span <span
@click="showDetail(item)" @click="showDetail(item)"
style="cursor: pointer" style="cursor: pointer"
@ -38,15 +38,19 @@
{{ item.demandSubject }} {{ item.demandSubject }}
</span> </span>
</a-tooltip> </a-tooltip>
<span v-else>
{{ item.demandSubject }}
</span>
<span class="time">{{ item.createDate }}</span> <span class="time">{{ item.createDate }}</span>
</div> </div>
<a-tooltip placement="topLeft">
<template #title>描述 {{ item.demandDetails }}</template> <div class="bottomdesc" v-if="item.demandDetails.length<100">
<div class="bottomdesc">
描述 {{ item.demandDetails || '--' }} 描述 {{ item.demandDetails || '--' }}
</div> </div>
</a-tooltip> <div class="bottomdesc" v-else>
描述 {{ item.demandDetails.slice(0,100) }}...<span style="cursor:pointer;color:#1492ff" @click="showDetail(item)">查看更多>></span>
</div>
</a-list-item> </a-list-item>
</template> </template>
</a-list> </a-list>
@ -194,6 +198,7 @@ onMounted(() => {
}) })
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.main-cont { .main-cont {
margin-top: 64px; margin-top: 64px;
width: 100%; width: 100%;
@ -260,6 +265,7 @@ onMounted(() => {
box-shadow: 10px 8px 10px 3px #9dc6ea; box-shadow: 10px 8px 10px 3px #9dc6ea;
padding: 20px; padding: 20px;
.toptitle { .toptitle {
cursor: pointer;
margin-bottom: 10px; margin-bottom: 10px;
& > span:first-child { & > span:first-child {
display: -webkit-box; display: -webkit-box;
@ -287,7 +293,7 @@ onMounted(() => {
.bottomdesc { .bottomdesc {
display: -webkit-box; display: -webkit-box;
/*设置为弹性盒子*/ /*设置为弹性盒子*/
-webkit-line-clamp: 1; -webkit-line-clamp: 2;
/*最多显示2行*/ /*最多显示2行*/
overflow: hidden; overflow: hidden;
/*超出隐藏*/ /*超出隐藏*/

View File

@ -60,10 +60,10 @@
申请使用 申请使用
</a-button> </a-button>
<a-button type="primary" @click="addShoppingCart()"> <a-button type="primary" @click="addShoppingCart()">
<template #icon> <!-- <template #icon>
<shopping-cart-outlined /> <shopping-cart-outlined />
</template> </template> -->
加入申购车 {{ props.dataList.isInShoppingCart ? '已' : '' }}加入申购车
</a-button> </a-button>
<a-button type="primary" @click="goTOCollection()"> <a-button type="primary" @click="goTOCollection()">
{{ props.dataList.isCollect == 'true' ? '已' : '' }}收藏 {{ props.dataList.isCollect == 'true' ? '已' : '' }}收藏
@ -95,7 +95,7 @@ const router = useRouter()
const applicationArea = ref('') const applicationArea = ref('')
const deploymentLocation = ref('') // const deploymentLocation = ref('') //
// //
const addShoppingCart = () => { const addShoppingCart = () => {
if (props.dataList.isInShoppingCart) { if (props.dataList.isInShoppingCart) {
message.error('已经加入申购车了') message.error('已经加入申购车了')
} else { } else {

View File

@ -1,8 +1,8 @@
<!-- <!--
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-06-09 09:29:29 * @Date: 2022-06-09 09:29:29
* @LastEditors: hisense.wuhongjian * @LastEditors: Light
* @LastEditTime: 2022-08-27 15:43:57 * @LastEditTime: 2022-12-02 15:08:26
* @Description: 应用详情 * @Description: 应用详情
--> -->
<template> <template>
@ -16,8 +16,14 @@
<!-- <p style="cursor: pointer; filter: blur(4px)"> <!-- <p style="cursor: pointer; filter: blur(4px)">
{{ dataFrom.link }} {{ dataFrom.link }}
</p> --> </p> -->
<p style="cursor: pointer;" <p
:class="{ 'blur-word': approveStatus == '通过' && whoShow1.itShowXiHaiAn ? false : true}"> style="cursor: pointer"
:class="{
'blur-word': !(approveStatus == '通过' && whoShow1.itShowXiHaiAn
? false
: true),
}"
>
{{ dataFrom.link }} {{ dataFrom.link }}
</p> </p>
</a-tooltip> </a-tooltip>
@ -27,10 +33,20 @@
<a-tooltip> <a-tooltip>
<template #title>请申请后查看</template> <template #title>请申请后查看</template>
<!-- <p style="filter: blur(4px)">{{ dataFrom.number }}</p> --> <!-- <p style="filter: blur(4px)">{{ dataFrom.number }}</p> -->
<p :class="{ 'blur-word': approveStatus == '通过' && whoShow1.itShowXiHaiAn ? false : true}">{{ dataFrom.number <p
}}</p> :class="{
'blur-word': !(approveStatus == '通过' && whoShow1.itShowXiHaiAn
? false
: true),
}"
>
{{ dataFrom.number }}
</p>
</a-tooltip> </a-tooltip>
<div @click="copyFunction(dataFrom.number, '复制账号')" v-if="dataFrom.number != '' && flag"> <div
@click="copyFunction(dataFrom.number, '复制账号')"
v-if="dataFrom.number != '' && flag"
>
复制账号 复制账号
</div> </div>
<!-- <div v-else id="zanwu">暂无</div> --> <!-- <div v-else id="zanwu">暂无</div> -->
@ -40,9 +56,21 @@
<a-tooltip> <a-tooltip>
<template #title>请申请后查看</template> <template #title>请申请后查看</template>
<p style="filter: blur(4px)">{{ dataFrom.password }}</p> <p style="filter: blur(4px)">{{ dataFrom.password }}</p>
<p style="filter: blur(4px)" :class="{ 'blur-word': approveStatus == '通过' && whoShow1.itShowXiHaiAn ? false : true}">{{ dataFrom.password }}</p> <p
style="filter: blur(4px)"
:class="{
'blur-word': !(approveStatus == '通过' && whoShow1.itShowXiHaiAn
? false
: true),
}"
>
{{ dataFrom.password }}
</p>
</a-tooltip> </a-tooltip>
<div @click="copyFunction(dataFrom.password2, '复制密码')" v-if="dataFrom.password2 != '' && flag"> <div
@click="copyFunction(dataFrom.password2, '复制密码')"
v-if="dataFrom.password2 != '' && flag"
>
复制密码 复制密码
</div> </div>
<!-- <div v-else id="zanwu">暂无</div> --> <!-- <div v-else id="zanwu">暂无</div> -->
@ -51,185 +79,185 @@
</div> </div>
</template> </template>
<script setup> <script setup>
import DetalsTitle from '@/views/detailsAll/components/DetalsTitle.vue' import DetalsTitle from '@/views/detailsAll/components/DetalsTitle.vue'
import { ref, defineProps, watch } from 'vue' import { ref, defineProps, watch } from 'vue'
import { message } from 'ant-design-vue' import { message } from 'ant-design-vue'
let flag = ref(true) let flag = ref(true)
const whoShow1 = ref(whoShow) const whoShow1 = ref(whoShow)
console.log('whoShow1', whoShow1.value.itShowQingDao) console.log('whoShow1', whoShow1.value.itShowQingDao)
const props = defineProps({ const props = defineProps({
dataList: { type: Object, default: null }, dataList: { type: Object, default: null },
})
const dataFrom = ref({
linkName: '访问地址',
link: '',
numberName: '试用账号',
number: '',
passwordName: '试用密码',
password: '**************************',
password2: '',
})
console.log('props.dataList------------>', props.dataList);
const approveStatus = ref('')
if (props.dataList.infoList) {
let obj = props.dataList.approveStatus;
approveStatus.value = props.dataList.approveStatus
if (obj !== '通过' && whoShow1.value.itShowQingDao) {
flag.value = false
}
dataFrom.value.link = props.dataList.link
props.dataList.infoList.map((item) => {
if (item.attrType == '试用用户名' || item.attrType == '试用账号') {
dataFrom.value.number = item.attrValue
} else if (item.attrType == '试用密码') {
dataFrom.value.password2 = item.attrValue
}
}) })
if (dataFrom.value.password2 === '') { const dataFrom = ref({
dataFrom.value.password = '' linkName: '访问地址',
} link: '',
// } numberName: '试用账号',
} number: '',
const clickLink = (link) => { passwordName: '试用密码',
window.open(link) password: '**************************',
} password2: '',
// })
const copyFunction = (data, name) => { console.log('props.dataList------------>', props.dataList)
if (data !== '') { const approveStatus = ref('')
let url = data
let oInput = document.createElement('input') if (props.dataList.infoList) {
oInput.value = url let obj = props.dataList.approveStatus
document.body.appendChild(oInput) approveStatus.value = props.dataList.approveStatus
oInput.select() // ; if (obj !== '通过' && whoShow1.value.itShowQingDao) {
console.log(oInput.value) flag.value = false
document.execCommand('Copy') // }
oInput.remove() // dataFrom.value.link = props.dataList.link
message.success(name + '成功') props.dataList.infoList.map((item) => {
} else { if (item.attrType == '试用用户名' || item.attrType == '试用账号') {
message.error('复制为空') dataFrom.value.number = item.attrValue
} } else if (item.attrType == '试用密码') {
} dataFrom.value.password2 = item.attrValue
message.config({
top: '100px', //
})
// const success = () => {
// message.success({
// // content: 'This is a prompt message with custom className and style',
// className: 'custom-class',
// style: {},
// })
// }
watch(
() => props.dataList,
(val) => {
if (val) {
let obj = props.dataList.approveStatus
approveStatus.value = props.dataList.approveStatus
if (obj !== '通过' && whoShow1.value.itShowQingDao) {
flag.value = false
}
dataFrom.value.link = props.dataList.link
props.dataList.infoList.map((item) => {
if (item.attrType == '试用用户名' || item.attrType == '试用账号') {
dataFrom.value.number = item.attrValue
} else if (item.attrType == '试用密码') {
dataFrom.value.password2 = item.attrValue
}
})
if (dataFrom.value.password2 === '') {
dataFrom.value.password = ''
} }
})
if (dataFrom.value.password2 === '') {
dataFrom.value.password = ''
}
// }
}
const clickLink = (link) => {
window.open(link)
}
//
const copyFunction = (data, name) => {
if (data !== '') {
let url = data
let oInput = document.createElement('input')
oInput.value = url
document.body.appendChild(oInput)
oInput.select() // ;
console.log(oInput.value)
document.execCommand('Copy') //
oInput.remove() //
message.success(name + '成功')
} else {
message.error('复制为空')
} }
} }
) message.config({
top: '100px', //
})
// const success = () => {
// message.success({
// // content: 'This is a prompt message with custom className and style',
// className: 'custom-class',
// style: {},
// })
// }
watch(
() => props.dataList,
(val) => {
if (val) {
let obj = props.dataList.approveStatus
approveStatus.value = props.dataList.approveStatus
if (obj !== '通过' && whoShow1.value.itShowQingDao) {
flag.value = false
}
dataFrom.value.link = props.dataList.link
props.dataList.infoList.map((item) => {
if (item.attrType == '试用用户名' || item.attrType == '试用账号') {
dataFrom.value.number = item.attrValue
} else if (item.attrType == '试用密码') {
dataFrom.value.password2 = item.attrValue
}
})
if (dataFrom.value.password2 === '') {
dataFrom.value.password = ''
}
}
}
)
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.algorithm-on-trial { .algorithm-on-trial {
padding: 0.8rem 0px 0.8rem; padding: 0.8rem 0px 0.8rem;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center;
.main {
margin-top: 0.3rem;
width: 13rem;
height: 2.5rem;
background: url('~@/assets/detailsAll/kfzj_sybg.png') no-repeat;
display: grid;
grid-template-columns: 33.33% 33.33% 33.33%;
align-items: center; align-items: center;
.main-left { .main {
border-right: 0.01rem #ffffff solid; margin-top: 0.3rem;
padding-left: 0.7rem; width: 13rem;
padding-right: 1rem; height: 2.5rem;
background: url('~@/assets/detailsAll/kfzj_sybg.png') no-repeat;
display: grid;
grid-template-columns: 33.33% 33.33% 33.33%;
align-items: center;
&>p { .main-left {
overflow: hidden; border-right: 0.01rem #ffffff solid;
text-overflow: ellipsis; padding-left: 0.7rem;
display: -webkit-box; padding-right: 1rem;
-webkit-line-clamp: 2;
word-break: break-all; & > p {
-webkit-box-orient: vertical; overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
word-break: break-all;
-webkit-box-orient: vertical;
}
}
.main-center {
padding-left: 1rem;
padding-right: 1rem;
}
.main-right {
padding-right: 0.7rem;
}
& > div > p:first-child {
font-size: 0.26rem;
color: #ffffff;
font-weight: bold;
}
& > div > p:nth-child(2) {
font-size: 0.22rem;
color: #ffffff;
line-height: 0.34rem;
}
& > div:first-child > p:last-child {
text-decoration: underline;
word-wrap: break-word;
word-break: normal;
}
& > div > div:last-child {
height: 0.34rem;
width: 1.1rem;
border: 0.01rem solid #ffffff;
border-radius: 0.06rem;
font-size: 0.18rem;
color: #ffffff;
cursor: pointer;
text-align: center;
line-height: 0.34rem;
} }
} }
.main-center { #zanwu {
padding-left: 1rem;
padding-right: 1rem;
}
.main-right {
padding-right: 0.7rem;
}
&>div>p:first-child {
font-size: 0.26rem;
color: #ffffff;
font-weight: bold;
}
&>div>p:nth-child(2) {
font-size: 0.22rem;
color: #ffffff;
line-height: 0.34rem;
}
&>div:first-child>p:last-child {
text-decoration: underline;
word-wrap: break-word;
word-break: normal;
}
&>div>div:last-child {
height: 0.34rem; height: 0.34rem;
width: 1.1rem; width: 1.1rem;
border: 0.01rem solid #ffffff; font-size: 0.24rem;
border-radius: 0.06rem;
font-size: 0.18rem;
color: #ffffff; color: #ffffff;
cursor: pointer; border: 0;
text-align: center;
line-height: 0.34rem;
} }
} }
#zanwu { .blur-word {
height: 0.34rem; filter: blur(4px);
width: 1.1rem;
font-size: 0.24rem;
color: #ffffff;
border: 0;
} }
}
.blur-word {
filter: blur(4px);
}
</style> </style>
<style> <style>
.custom-class { .custom-class {
/* top: 100px; */ /* top: 100px; */
} }
</style> </style>

View File

@ -64,8 +64,8 @@
type="primary" type="primary"
@click="addShoppingCart()" @click="addShoppingCart()"
> >
<template #icon><shopping-cart-outlined /></template> <!-- <template #icon><shopping-cart-outlined /></template> -->
加入购物车 {{ props.dataList.isInShoppingCart ? '已' : '' }}加入购物车
</a-button> </a-button>
<a-button type="primary" @click="goTOCollection()"> <a-button type="primary" @click="goTOCollection()">
{{ props.dataList.isCollect == 'true' ? '已' : '' }}收藏 {{ props.dataList.isCollect == 'true' ? '已' : '' }}收藏

View File

@ -57,10 +57,10 @@
申请使用 申请使用
</a-button> </a-button>
<a-button type="primary" @click="addShoppingCart()"> <a-button type="primary" @click="addShoppingCart()">
<template #icon> <!-- <template #icon>
<shopping-cart-outlined /> <shopping-cart-outlined />
</template> </template> -->
加入申购车 {{ props.dataList.isInShoppingCart ? '已' : '' }}加入申购车
</a-button> </a-button>
<a-button type="primary" @click="goTOCollection()"> <a-button type="primary" @click="goTOCollection()">
{{ props.dataList.isCollect == 'true' ? '已' : '' }}收藏 {{ props.dataList.isCollect == 'true' ? '已' : '' }}收藏

View File

@ -55,8 +55,8 @@
申请使用 申请使用
</a-button> </a-button>
<a-button type="primary" @click="addShoppingCart()"> <a-button type="primary" @click="addShoppingCart()">
<template #icon><shopping-cart-outlined /></template> <!-- <template #icon><shopping-cart-outlined /></template> -->
加入购物车 {{ props.dataList.isInShoppingCart ? '已' : '' }}加入购物车
</a-button> </a-button>
<a-button type="primary" @click="goTOCollection()"> <a-button type="primary" @click="goTOCollection()">
{{ props.dataList.isCollect == 'true' ? '已' : '' }}收藏 {{ props.dataList.isCollect == 'true' ? '已' : '' }}收藏

View File

@ -63,8 +63,8 @@
).length === 0 ).length === 0
" "
> >
<template #icon><shopping-cart-outlined /></template> <!-- <template #icon><shopping-cart-outlined /></template> -->
加入申购车 {{ props.dataList.isInShoppingCart ? '已' : '' }}加入申购车
</a-button> </a-button>
<a-button type="primary" @click="goTOCollection()"> <a-button type="primary" @click="goTOCollection()">
{{ props.dataList.isCollect == 'true' ? '已' : '' }}收藏 {{ props.dataList.isCollect == 'true' ? '已' : '' }}收藏

View File

@ -2,11 +2,18 @@
<!-- 青岛 --> <!-- 青岛 -->
<div class="details-pageconetent" v-if="whoShow1 && whoShow1.itShowQingDao"> <div class="details-pageconetent" v-if="whoShow1 && whoShow1.itShowQingDao">
<home-header></home-header> <home-header></home-header>
<div class="details-pageconetent-left" v-if="Cardsname != '基础设施'"> <div
class="details-pageconetent-left"
v-if="
Cardsname === '应用资源' ||
Cardsname === '组件服务' ||
Cardsname === '数据资源'
"
>
<detailsPageconetentTree /> <detailsPageconetentTree />
</div> </div>
<div class="details-pageconetent-left" v-else> <div class="details-pageconetent-left" v-else-if="Cardsname === '基础设施'">
<detailsPageInfrastructureTree v-if="flag != '6'" /> <detailsPageInfrastructureTree v-if="flag == '1'" />
</div> </div>
<div class="top" v-if="Cardsname != '知识库' && Cardsname != '基础设施'"> <div class="top" v-if="Cardsname != '知识库' && Cardsname != '基础设施'">
<div class="resultListSearchInput-father"> <div class="resultListSearchInput-father">
@ -1265,7 +1272,17 @@
if (Cardsname.value === arr[0] && arr[0] == '基础设施') { if (Cardsname.value === arr[0] && arr[0] == '基础设施') {
getAppResources2() getAppResources2()
} else { } else {
changeCards(arr[0]) let newQuery = JSON.parse(
JSON.stringify(router.currentRoute.value.query)
)
newQuery.str = searchValue.value
router
.replace({
query: newQuery,
})
.then(() => {
changeCards(arr[0])
})
} }
if (!mapFlag) { if (!mapFlag) {
return return

View File

@ -9,13 +9,13 @@
<div class="algorithm-top-details"> <div class="algorithm-top-details">
<div class="left"> <div class="left">
<div class="top"> <div class="top">
<a-tooltip placement="top"> <a-tooltip placement="top" v-if="(props.dataList.name.length>20)">
<template #title>{{ props.dataList.name }}</template> <template #title>{{ props.dataList.name }}</template>
<span class="name"> <span class="name">
{{ props.dataList.name }} {{ props.dataList.name }}
</span> </span>
</a-tooltip> </a-tooltip>
<!-- <span class="name">{{ props.dataList.name }}</span> --> <span class="name" v-else>{{ props.dataList.name }}</span>
<div class="label-content"> <div class="label-content">
<p class="lable-father"> <p class="lable-father">
<span class="label" v-if="props.dataList.type"> <span class="label" v-if="props.dataList.type">
@ -27,29 +27,55 @@
<span class="label" v-if="props.dataList.shareCondition"> <span class="label" v-if="props.dataList.shareCondition">
{{ props.dataList.shareCondition }} {{ props.dataList.shareCondition }}
</span> </span>
</p> </p>
</div> </div>
<!-- <span class="label">免费</span> --> <!-- <span class="label">免费</span> -->
</div> </div>
<div class="main"> <div class="main">
<!-- <a-tooltip placement="top"> <!-- <a-tooltip placement="top">
<template #title>应用领域{{ applicationArea }}</template> <template #title>应用领域{{ applicationArea }}</template>
<div>应用领域{{ applicationArea }}</div> <div>应用领域{{ applicationArea }}</div>
</a-tooltip> --> </a-tooltip> -->
<a-tooltip placement="top"> <!-- <a-tooltip placement="top">
<template #title>{{ props.dataList.description }}</template> <template #title>{{ props.dataList.description }}</template>
<div> <div>
{{ props.dataList.description }} {{ props.dataList.description }}
</div> </div>
</a-tooltip> </a-tooltip> -->
<div style="padding-top:20px"> <div class="bottomdesc" v-if="(props.dataList.description.length < 183)">
<span >场景入口:</span> 场景描述 {{ props.dataList.description || '--' }}
<span style="margin-left:10px;cursor: pointer; text-decoration: underline;" </div>
@click="openScene(props.dataList.sceneUrl)">{{(props.dataList.sceneUrl)}}</span> <div class="bottomdesc" v-else-if="dowmOrUp === '展开>>'">
</div> 场景描述 {{ props.dataList.description.slice(0, 183) }}...
<span
style="cursor: pointer; color: rgb(241 211 112)"
@click="showDetail(dowmOrUp)"
>
{{ dowmOrUp }}
</span>
</div>
<div class="bottomdesc1" v-else>
场景描述 {{ props.dataList.description }}
<span
style="cursor: pointer; color: rgb(241 211 112)"
@click="showDetail(dowmOrUp)"
>
{{ dowmOrUp }}
</span>
</div>
<div style="padding-top: 20px">
<span>场景入口:</span>
<span
style="
margin-left: 10px;
cursor: pointer;
text-decoration: underline;
"
@click="openScene(props.dataList.sceneUrl)"
>
{{ props.dataList.sceneUrl }}
</span>
</div>
</div> </div>
<div class="bottom" v-if="props.dataList.id"> <div class="bottom" v-if="props.dataList.id">
<!-- 融合服务 存在fuseResourceList --> <!-- 融合服务 存在fuseResourceList -->
@ -80,287 +106,299 @@
</a-button> --> </a-button> -->
</div> </div>
</div> </div>
<div class="right"> <div class="right"></div>
</div>
</div> </div>
</template> </template>
<script setup> <script setup>
// import { ShoppingCartOutlined } from '@ant-design/icons-vue' // import { ShoppingCartOutlined } from '@ant-design/icons-vue'
import { defineProps, ref, watch } from 'vue' import { defineProps, ref, watch } from 'vue'
import { scInsert, scDel } from '@/api/personalCenter' import { scInsert, scDel } from '@/api/personalCenter'
import { sgcInsert } from '@/api/home' import { sgcInsert } from '@/api/home'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import mybus from '@/myplugins/mybus' import mybus from '@/myplugins/mybus'
import { message } from 'ant-design-vue' import { message } from 'ant-design-vue'
// //
const router = useRouter() const router = useRouter()
const props = defineProps({ let dowmOrUp = ref('展开>>') // down ; up
dataList: { type: Object, default: null },
//
const showDetail = (val) => {
if (val === '展开>>') {
dowmOrUp.value = '收起<<'
} else {
dowmOrUp.value = '展开>>'
}
}
const props = defineProps({
dataList: { type: Object, default: null },
})
console.log('dataList------------>', props.dataList)
const applicationArea = ref('')
// //
const addShoppingCart = () => {
if (props.dataList.isInShoppingCart) {
message.error('已经加入申购车了')
} else {
console.log('加入申购车==================>', props.dataList)
sgcInsert({
delFlag: '0',
resourceId: props.dataList.id,
// userId: userId.value,
}).then((res) => {
console.log(res)
message.success('添加申购车成功!')
mybus.emit('getSgcNum')
props.dataList.isInShoppingCart = true
console.log(
props.dataList.isInShoppingCart,
'props.dataList.isInShoppingCart'
)
})
}
}
//
const openScene = (val) => {
window.open(val, '_blank')
}
// //
function toView() {
// window.open(newpage.href, '_blank')
// router.push({
// path: '/apply',
// query: {
// name: props.dataList.name,
// resourceId: [props.dataList.id],
// },
// })
console.log('一键申请===================>', props.dataList)
localStorage.setItem(
'applyList',
JSON.stringify([
{
arr: [
{
delFlag: props.dataList.delFlag,
description: props.dataList.description,
resourceId: props.dataList.id,
resourceName: props.dataList.name,
time: props.dataList.createDate,
type: props.dataList.type,
// componentType: '',
},
],
deptId: props.dataList.deptId,
deptName: props.dataList.deptName,
},
])
)
router.push({
path: '/apply',
})
}
// --
const handleAKeyApplication = () => {
let _applyList = []
;(props.dataList.fuseResourceList || []).map((v) => {
let resource = v.resource || {}
let obj = {
arr: [
{
delFlag: resource.delFlag,
description: resource.description,
resourceId: resource.id,
resourceName: resource.name,
time: resource.createDate,
type: resource.type,
},
],
deptId: resource.deptId,
deptName: resource.deptName,
}
_applyList.push(obj)
}) })
console.log('dataList------------>', props.dataList) localStorage.setItem('applyList', JSON.stringify(_applyList))
const applicationArea = ref('') router.push({
// // path: '/apply',
const addShoppingCart = () => { })
if (props.dataList.isInShoppingCart) { }
message.error('已经加入申购车了')
//
const scFlag2 = ref(true)
const goTOCollection = () => {
console.log('收藏===================》', props.dataList)
if (scFlag2.value) {
scFlag2.value = false
if (props.dataList.isCollect == 'true') {
scDel([props.dataList.id]).then((res) => {
if (res.data.msg === 'success') {
message.success('取消成功')
// eslint-disable-next-line vue/no-mutating-props
props.dataList.isCollect = 'false'
scFlag2.value = true
}
})
} else { } else {
console.log('加入申购车==================>', props.dataList) scInsert([
sgcInsert({ {
delFlag: '0', resourceId: props.dataList.id,
resourceId: props.dataList.id, },
// userId: userId.value, ]).then((res) => {
}).then((res) => { if (res.data.msg === 'success') {
console.log(res) message.success('添加收藏成功!')
message.success('添加申购车成功!') // eslint-disable-next-line vue/no-mutating-props
mybus.emit('getSgcNum') props.dataList.isCollect = 'true'
props.dataList.isInShoppingCart = true scFlag2.value = true
console.log( }
props.dataList.isInShoppingCart,
'props.dataList.isInShoppingCart'
)
}) })
} }
} }
// // scInsert([{ resourceId: props.dataList.id }]).then((res) => {
const openScene = (val) => { // console.log(res)
window.open(val, "_blank"); // message.success('')
} // })
// // }
function toView() { if (props.dataList.infoList) {
// window.open(newpage.href, '_blank') applicationArea.value = props.dataList.infoList.filter(
// router.push({ (val) => val.attrType === '应用领域'
// path: '/apply', )[0].attrValue
// query: { }
// name: props.dataList.name, watch(
// resourceId: [props.dataList.id], () => props.dataList,
// }, (val) => {
// }) if (val) {
console.log('一键申请===================>', props.dataList) console.log('props.dataList-----watch------->', val)
localStorage.setItem(
'applyList',
JSON.stringify([
{
arr: [
{
delFlag: props.dataList.delFlag,
description: props.dataList.description,
resourceId: props.dataList.id,
resourceName: props.dataList.name,
time: props.dataList.createDate,
type: props.dataList.type,
// componentType: '',
},
],
deptId: props.dataList.deptId,
deptName: props.dataList.deptName,
},
])
)
router.push({
path: '/apply',
})
}
// --
const handleAKeyApplication = () => {
let _applyList = []
;(props.dataList.fuseResourceList || []).map((v) => {
let resource = v.resource || {}
let obj = {
arr: [
{
delFlag: resource.delFlag,
description: resource.description,
resourceId: resource.id,
resourceName: resource.name,
time: resource.createDate,
type: resource.type,
},
],
deptId: resource.deptId,
deptName: resource.deptName,
}
_applyList.push(obj)
})
localStorage.setItem('applyList', JSON.stringify(_applyList)) applicationArea.value = props.dataList.infoList.filter(
router.push({ (val) => val.attrType === '应用领域'
path: '/apply', )[0].attrValue
})
}
//
const scFlag2 = ref(true)
const goTOCollection = () => {
console.log('收藏===================》', props.dataList)
if (scFlag2.value) {
scFlag2.value = false
if (props.dataList.isCollect == 'true') {
scDel([props.dataList.id]).then((res) => {
if (res.data.msg === 'success') {
message.success('取消成功')
// eslint-disable-next-line vue/no-mutating-props
props.dataList.isCollect = 'false'
scFlag2.value = true
}
})
} else {
scInsert([
{
resourceId: props.dataList.id,
},
]).then((res) => {
if (res.data.msg === 'success') {
message.success('添加收藏成功!')
// eslint-disable-next-line vue/no-mutating-props
props.dataList.isCollect = 'true'
scFlag2.value = true
}
})
}
} }
// scInsert([{ resourceId: props.dataList.id }]).then((res) => {
// console.log(res)
// message.success('')
// })
} }
if (props.dataList.infoList) { )
applicationArea.value = props.dataList.infoList.filter(
(val) => val.attrType === '应用领域'
)[0].attrValue
}
watch(
() => props.dataList,
(val) => {
if (val) {
console.log('props.dataList-----watch------->', val)
applicationArea.value = props.dataList.infoList.filter(
(val) => val.attrType === '应用领域'
)[0].attrValue
}
}
)
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.algorithm-top-details { .algorithm-top-details {
height: 6rem; height: 6rem;
padding: 1.8rem 0 0; padding: 1.8rem 0 0;
background: url('~@/assets/detailsAll/sf_top_bg.png') no-repeat; background: url('~@/assets/detailsAll/sf_top_bg.png') no-repeat;
background-size: 100%; background-size: 100%;
display: flex; display: flex;
justify-content: center; justify-content: center;
.left { .left {
max-width: 7.2rem; max-width: 7.2rem;
color: #fff; color: #fff;
margin-right: 0.8rem; margin-right: 0.8rem;
.top { .top {
display: flex; display: flex;
align-items: center; align-items: center;
span { span {
font-size: 0.14rem; font-size: 0.14rem;
}
.name {
// max-width: 3.3rem;
// overflow: hidden;
// text-overflow: ellipsis;
// white-space: nowrap;
font-size: 0.4rem;
margin-right: 0.2rem;
font-size: 0.4rem;
margin-right: 0.2rem;
max-width: 6rem;
text-overflow: -o-ellipsis-lastline;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
word-break: break-all;
}
.label-content {
position: relative;
}
.lable-father {
position: absolute;
min-width: 3.5rem;
right: -3.5rem;
top: 0;
}
.label {
padding: 0.01rem 0.1rem;
margin-right: 0.1rem;
border-radius: 0.13rem;
background: rgba(255, 255, 255, 0.4);
}
} }
.main { .name {
margin-top: 0.2rem; // max-width: 3.3rem;
font-size: 0.18rem; // overflow: hidden;
line-height: 0.34rem; // text-overflow: ellipsis;
// white-space: nowrap;
// & > div:nth-of-type(1) { font-size: 0.4rem;
// overflow: hidden; margin-right: 0.2rem;
// text-overflow: ellipsis; font-size: 0.4rem;
// white-space: nowrap; margin-right: 0.2rem;
// } max-width: 6rem;
text-overflow: -o-ellipsis-lastline;
& > div:nth-of-type(1) { overflow: hidden;
max-height: 1rem; text-overflow: ellipsis;
overflow: hidden; display: -webkit-box;
text-overflow: ellipsis; -webkit-line-clamp: 1;
display: -webkit-box; -webkit-box-orient: vertical;
-webkit-line-clamp: 3; word-break: break-all;
-webkit-box-orient: vertical;
word-break: break-all;
}
} }
.bottom { .label-content {
margin-top: 0.4rem; position: relative;
display: flex; }
.ant-btn { .lable-father {
height: 0.5rem; position: absolute;
margin-right: 0.2rem; min-width: 3.5rem;
background: #ff8b55; right: -3.5rem;
border-radius: 0.06rem; top: 0;
font-size: 0.2rem; }
display: flex;
justify-content: center;
align-items: center;
}
.ant-btn:nth-of-type(1) { .label {
width: 1.8rem; padding: 0.01rem 0.1rem;
} margin-right: 0.1rem;
border-radius: 0.13rem;
.ant-btn:nth-of-type(2) { background: rgba(255, 255, 255, 0.4);
width: 2.2rem;
}
.ant-btn:nth-of-type(3) {
width: 1.45rem;
}
} }
} }
.right { .main {
width: 5.8rem; .bottomdesc {
height: 4rem; display: -webkit-box;
background: url('~@/assets/detailsAll/sf_right_bg.png') no-repeat; /*设置为弹性盒子*/
background-size: 100%; -webkit-line-clamp: 4;
margin-top: -0.4rem; /*最多显示2行*/
overflow: hidden;
/*超出隐藏*/
text-overflow: ellipsis;
/*超出显示为省略号*/
-webkit-box-orient: vertical;
word-break: break-all;
width: 800px;
font-size: 16px;
}
.bottomdesc1 {
overflow: auto;
width: 800px;
font-size: 16px;
height: 200px;
}
margin-top: 0.2rem;
font-size: 0.18rem;
line-height: 0.34rem;
}
.bottom {
margin-top: 0.4rem;
display: flex;
.ant-btn {
height: 0.5rem;
margin-right: 0.2rem;
background: #ff8b55;
border-radius: 0.06rem;
font-size: 0.2rem;
display: flex;
justify-content: center;
align-items: center;
}
.ant-btn:nth-of-type(1) {
width: 1.8rem;
}
.ant-btn:nth-of-type(2) {
width: 2.2rem;
}
.ant-btn:nth-of-type(3) {
width: 1.45rem;
}
} }
} }
.right {
width: 5.8rem;
height: 4rem;
background: url('~@/assets/detailsAll/sf_right_bg.png') no-repeat;
background-size: 100%;
margin-top: -0.4rem;
}
}
</style> </style>

View File

@ -420,7 +420,7 @@
}) })
mybus.on('changeMenuStyle', (data) => { mybus.on('changeMenuStyle', (data) => {
debugger
targetRouter.value = data targetRouter.value = data
if (data.path == '/algorithmCompare') { if (data.path == '/algorithmCompare') {
jumpPage( jumpPage(
@ -469,7 +469,7 @@
// padding: 0 1rem; // padding: 0 1rem;
background-color: rgba(0, 0, 25, 0.7); background-color: rgba(0, 0, 25, 0.7);
position: fixed; position: fixed;
z-index: 1000; z-index: 10012;
top: 0; top: 0;
div { div {
@ -673,7 +673,7 @@
top: 0.45rem; top: 0.45rem;
right: 2.4rem; right: 2.4rem;
overflow-y: scroll; overflow-y: scroll;
z-index: 9999999;
.bottom { .bottom {
cursor: pointer; cursor: pointer;
width: 100%; width: 100%;

View File

@ -2,11 +2,11 @@
* @Author: Light * @Author: Light
* @Date: 2022-11-24 09:07:50 * @Date: 2022-11-24 09:07:50
* @LastEditors: Light * @LastEditors: Light
* @LastEditTime: 2022-11-25 09:56:50 * @LastEditTime: 2022-12-03 14:56:14
* @Description: 告诉大家这是什么 * @Description: 告诉大家这是什么
--> -->
<template> <template>
<div class="detail-back" @click="goToDetailsPageconetent"> <div class="detail-back" @click="previousPage">
<!-- <div class="nav-box"> --> <!-- <div class="nav-box"> -->
<!-- <a-breadcrumb> <!-- <a-breadcrumb>
<a-breadcrumb-item @click="goToDetailsPageconetent" class="bread-crumb-span">能力集市</a-breadcrumb-item> <a-breadcrumb-item @click="goToDetailsPageconetent" class="bread-crumb-span">能力集市</a-breadcrumb-item>
@ -37,7 +37,7 @@
} }
} }
const detailName = ref('应用资源') const detailName = ref('应用资源1')
const goToDetailsPageconetent = () => { const goToDetailsPageconetent = () => {
let pathData = { let pathData = {

View File

@ -113,7 +113,7 @@
<script> <script>
import { defineComponent, ref, watch } from 'vue' import { defineComponent, ref, watch } from 'vue'
import { selectDeptList } from '@/api/home.js' import { selectDeptList, getDataResourceDeptList } from '@/api/home.js'
import mybus from '@/myplugins/mybus' import mybus from '@/myplugins/mybus'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import { UpOutlined, DownOutlined } from '@ant-design/icons-vue' import { UpOutlined, DownOutlined } from '@ant-design/icons-vue'
@ -128,65 +128,45 @@
title: 'name', title: 'name',
} }
const store = useStore() const store = useStore()
// //
const user = ref({ const user = ref({
deptName: store.getters['user/deptName'], deptName: store.getters['user/deptName'],
deptId: store.getters['user/deptId'], deptId: store.getters['user/deptId'],
}) })
const showKey = ref(0) const showKey = ref(0)
const treeData = ref([]) const treeData = ref([])
const init = () => { //
treeData.value = [] const processingData = (res) => {
console.log( res.data.data.forEach((val) => {
'router.currentRoute.value.query.select', if (val.type !== '全部能力目录') {
router.currentRoute.value.query.select let obj = {
) title: val.type,
let select = router.currentRoute.value.query.select total: val.total,
if (select === '123') { show: val.type === '市级' ? true : false,
select = '' select: false,
} key: val.type,
children: [],
console.log( }
'获取url中的select=====================>', switch (val.type) {
router.currentRoute.value.query.select case '市级':
) case '企业':
if ( case '其他':
select !== '基础设施' && generateChildren(val, obj)
select !== '数据资源' && break
select !== '知识库' case '区级':
) { generateChildren2(val, obj)
selectDeptList({ type: select }).then((res) => { break
// console.log('=========================>', res.data.data) }
res.data.data.forEach((val) => { treeData.value.push(obj)
if (val.type !== '全部能力目录') { }
let obj = { })
title: val.type, //
total: val.total, const sortArr = ['全部能力目录', '市级', '区级', '企业', '其他']
show: val.type === '市级' ? true : false, treeData.value.sort((a, b) => {
select: false, return sortArr.indexOf(a.key) - sortArr.indexOf(b.key)
key: val.type, })
children: [], //
} // let deptId=user.value.deptId
switch (val.type) {
case '市级':
case '企业':
case '其他':
generateChildren(val, obj)
break
case '区级':
generateChildren2(val, obj)
break
}
treeData.value.push(obj)
}
})
//
const sortArr = ['全部能力目录', '市级', '区级', '企业', '其他']
treeData.value.sort((a, b) => {
return sortArr.indexOf(a.key) - sortArr.indexOf(b.key)
})
//
// let deptId=user.value.deptId
// treeData.value.forEach((child) => { // treeData.value.forEach((child) => {
// let childern=child.children // let childern=child.children
// childern.forEach((childs) => {// // childern.forEach((childs) => {//
@ -209,11 +189,46 @@
// }) // })
// } // }
// }) // })
// }) // })
console.log('左侧树结构数据======================>', treeData.value) console.log('左侧树结构数据======================>', treeData.value)
showKey.value++ showKey.value++
}
const init = () => {
treeData.value = []
console.log(
'router.currentRoute.value.query.select',
router.currentRoute.value.query.select
)
let select = router.currentRoute.value.query.select
if (select === '123') {
select = ''
}
console.log(
'获取url中的select=====================>',
router.currentRoute.value.query.select
)
if (
select !== '基础设施' &&
select !== '数据资源' &&
select !== '知识库'
) {
selectDeptList({ type: select }).then((res) => {
// console.log('=========================>', res.data.data)
if (res.data.msg !== 'success') {
return
}
processingData(res)
})
} else if (select === '数据资源') {
getDataResourceDeptList({ type: select }).then((res) => {
// console.log('=========================>', res.data.data)
if (res.data.msg !== 'success') {
return
}
processingData(res)
}) })
} }
} }
@ -222,7 +237,6 @@
}) })
// children // children
const generateChildren = (val, obj) => { const generateChildren = (val, obj) => {
if (val.dataList.length > 0) { if (val.dataList.length > 0) {
val.dataList.forEach((child) => { val.dataList.forEach((child) => {
let children = { let children = {
@ -232,14 +246,13 @@
total: child.deptCount, total: child.deptCount,
key: child.deptId, key: child.deptId,
} }
obj.children.push(children) obj.children.push(children)
}) })
} }
} }
// //
const generateChildren2 = (val, obj) => { const generateChildren2 = (val, obj) => {
if (val.dataList.length > 0) { if (val.dataList.length > 0) {
val.dataList.forEach((dis) => { val.dataList.forEach((dis) => {
let children = { let children = {
@ -259,7 +272,7 @@
select: false, select: false,
key: child.deptId, key: child.deptId,
} }
children.children.push(children2) children.children.push(children2)
}) })
} }

View File

@ -1,8 +1,8 @@
<!-- <!--
* @Author: Light * @Author: Light
* @Date: 2022-11-18 11:53:43 * @Date: 2022-11-18 11:53:43
* @LastEditors: Light * @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-11-30 11:55:51 * @LastEditTime: 2022-12-01 16:10:15
* @Description: 告诉大家这是什么 * @Description: 告诉大家这是什么
--> -->
<template> <template>
@ -17,6 +17,13 @@
{{ item.channelName }} {{ item.channelName }}
</a-tooltip> </a-tooltip>
</div> </div>
<a-tag
color="cyan"
style="margin-right: 0; cursor: pointer"
@click="selectItem(item, true)"
>
预览
</a-tag>
<a-popconfirm <a-popconfirm
:title="'是否移出' + item.channelName + '?'" :title="'是否移出' + item.channelName + '?'"
ok-text="是" ok-text="是"
@ -132,6 +139,7 @@
</a-modal> </a-modal>
<a-modal <a-modal
v-else v-else
wrapClassName="preview-modal"
v-model:visible="showVisible" v-model:visible="showVisible"
:title="dataList.selectItem.cameraInfo.channelName" :title="dataList.selectItem.cameraInfo.channelName"
:footer="null" :footer="null"
@ -147,9 +155,22 @@
justify-content: center; justify-content: center;
" "
> >
<div class="video-cover-new" @click="videoShowMsg"></div>
<div class="waterMark waterMark-left-top">
{{ '西海岸能力超市' + (deptName || '') + (userName || '') }}
</div>
<div class="waterMark waterMark-right-top">
{{ '西海岸能力超市' + (deptName || '') + (realName || '') }}
</div>
<div class="waterMark waterMark-left-bottom">
{{ '西海岸能力超市' + (deptName || '') + (userName || '') }}
</div>
<div class="waterMark waterMark-right-bottom">
{{ '西海岸能力超市' + (deptName || '') + (realName || '') }}
</div>
<h5-player <h5-player
videoId="preview" videoId="preview"
unStopable="true" :unStopable="unStopable"
:video-url="videoUrl" :video-url="videoUrl"
></h5-player> ></h5-player>
</div> </div>
@ -193,6 +214,11 @@
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import H5Player from '@/views/home/components/H5Player.vue' import H5Player from '@/views/home/components/H5Player.vue'
import { getCameraLiveStream } from '@/api/file' import { getCameraLiveStream } from '@/api/file'
import { useStore } from 'vuex'
const store = useStore()
const userName = store.getters['user/username']
const realName = store.getters['user/realName']
const deptName = store.getters['user/deptName']
const dataList = reactive({ toBeApplied: [], requested: [], selectItem: {} }) const dataList = reactive({ toBeApplied: [], requested: [], selectItem: {} })
const showVisible = ref(false) const showVisible = ref(false)
// //
@ -200,6 +226,7 @@
const delWacFlag = ref(true) const delWacFlag = ref(true)
const delApply = ref(true) const delApply = ref(true)
const visible = ref(false) const visible = ref(false)
const unStopable = ref(true)
const visibleApply = ref(false) const visibleApply = ref(false)
const instanceId = ref('') const instanceId = ref('')
const showArr = ref([]) const showArr = ref([])
@ -264,6 +291,11 @@
}) })
} }
} }
//
const videoShowMsg = () => {
let msg = '请申请后在我的申请中观看视频!'
message.warning(msg)
}
const apply = () => { const apply = () => {
let obj = { let obj = {
arr: [ arr: [
@ -336,18 +368,27 @@
}, },
}) })
} }
const selectItem = (item) => { const selectItem = (item, stopableFlag) => {
if (item.approveStatus == '通过') { if (stopableFlag) {
dataList.selectItem = item unStopable.value = false
getVideoUrl(item.cameraInfo) console.log('111111111111', item)
dataList.selectItem.cameraInfo = item
getVideoUrl(item)
return return
} else if (item.backToFirst == 'true') {
message.info('请到个人中心查看详情')
} else { } else {
message.info('请耐心等待审核通过') if (item.approveStatus == '通过') {
unStopable.value = true
dataList.selectItem = item
getVideoUrl(item.cameraInfo)
return
} else if (item.backToFirst == 'true') {
message.info('请到个人中心查看详情')
} else {
message.info('请耐心等待审核通过')
}
dataList.selectItem = {}
showVisible.value = false
} }
dataList.selectItem = {}
showVisible.value = false
} }
const handleOk = () => { const handleOk = () => {
console.log('id', instanceId.value) console.log('id', instanceId.value)
@ -465,6 +506,7 @@
top: 50%; top: 50%;
right: 0.16rem; right: 0.16rem;
margin-top: -3.9rem; margin-top: -3.9rem;
z-index: 10010;
.bottom { .bottom {
margin-top: 20px; margin-top: 20px;
} }
@ -481,7 +523,14 @@
word-break: break-all; word-break: break-all;
} }
.top .name { .top .name {
width: 1.8rem; width: 1.3rem;
display: flex;
justify-content: space-between;
overflow: hidden;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
word-break: break-all;
} }
:deep(.ant-list-footer) { :deep(.ant-list-footer) {
display: flex; display: flex;
@ -500,6 +549,71 @@
height: 3rem; height: 3rem;
} }
.batch-video-cover {
position: absolute;
left: 0;
top: 0;
background: transparent;
height: 288px;
z-index: 99999999;
width: 512px;
margin-top: 14px;
cursor: pointer;
}
.waterMark {
position: absolute;
z-index: 99999999;
color: #0058e1;
font-size: 22px;
font-weight: bold;
opacity: 0.4;
transform: rotate(-25deg);
width: 470px;
}
//
.waterMark-left-top {
left: 50px;
top: 100px;
text-align: left;
}
//
.waterMark-right-top {
right: 50px;
top: 100px;
text-align: right;
}
//
.waterMark-left-bottom {
left: 50px;
bottom: 100px;
text-align: left;
}
//
.waterMark-right-bottom {
right: 50px;
bottom: 100px;
text-align: right;
}
}
</style>
<style lang="less">
.preview-modal {
z-index: 10010;
.video-cover-new {
width: 798px;
height: 600px;
position: absolute;
left: 22px;
top: 80px;
background: transparent;
z-index: 99999999;
cursor: pointer;
}
.waterMark { .waterMark {
position: absolute; position: absolute;
z-index: 99999999; z-index: 99999999;

View File

@ -407,7 +407,7 @@
class="map-contain" class="map-contain"
v-if="showMap" v-if="showMap"
v-loading="spinningHome" v-loading="spinningHome"
element-loading-text="Loading..." element-loading-text="加载中..."
element-loading-svg-view-box="-10, -10, 50, 50" element-loading-svg-view-box="-10, -10, 50, 50"
element-loading-background="rgba(122, 122, 122, 0.9)" element-loading-background="rgba(122, 122, 122, 0.9)"
:element-loading-svg="svg" :element-loading-svg="svg"

View File

@ -31,9 +31,11 @@
/> />
<i class="searchImg" aria-hidden="true"></i> <i class="searchImg" aria-hidden="true"></i>
<button class="button-reset" @click="resetAction()">重置</button> <button class="button-reset" @click="resetAction()">重置</button>
<div class="hengxian"></div> <div class="hengxian"></div>
</div> </div>
</div> </div>
<div v-if="number === 0" class="checkResult">检测结果: <span>{{resourceTotal}}</span></div>
<div v-loading="loadingData"> <div v-loading="loadingData">
<searchResultList <searchResultList
v-if="number === 1" v-if="number === 1"
@ -52,7 +54,9 @@
:resourceTotal="resourceTotal" :resourceTotal="resourceTotal"
:selectCardsname="number == 0 ? '融合服务' : '赋能场景'" :selectCardsname="number == 0 ? '融合服务' : '赋能场景'"
/> />
<div class="pagination"> <div class="pagination">
<a-pagination <a-pagination
v-if="resourceList.data && resourceList.data.length > 0" v-if="resourceList.data && resourceList.data.length > 0"
v-model:current="currentPage" v-model:current="currentPage"
@ -330,9 +334,22 @@
}) })
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.checkResult{
margin-left: 0.2rem;
font-size: 14px;
font-weight: 500;
color: #212121;
margin-top: 10px;
span {
font-size: 18px;
color: #0087ff;
}
}
.resultListSearchInput-father { .resultListSearchInput-father {
background: #f3f5f9; background: #f3f5f9;
padding: 0.2rem; padding: 0rem 0.2rem;
.resultListSearchInput-son { .resultListSearchInput-son {
background: #fff; background: #fff;

View File

@ -7,9 +7,11 @@
<div :id="mapId" class="normal-map-content"> <div :id="mapId" class="normal-map-content">
<tiled-map v-loading="spinning" element-loading-text="Loading..." <tiled-map v-loading="spinning"
element-loading-svg-view-box="-10, -10, 50, 50" element-loading-text="加载中..."
element-loading-background="rgba(122, 122, 122, 0.8)" element-loading-svg-view-box="-10, -10, 50, 50"
element-loading-background="rgba(122, 122, 122, 0.9)"
:element-loading-svg="svg"
:hi-map="hiMap" :map-id="mapId" /> :hi-map="hiMap" :map-id="mapId" />
</div> </div>
@ -144,6 +146,16 @@
checkboxGroup: [], checkboxGroup: [],
tabList: [], tabList: [],
state: '', state: '',
svg: `
<path class="path" d="
M 30 15
L 28 17
M 25.61 25.61
A 15 15, 0, 0, 1, 15 30
A 15 15, 0, 1, 1, 27.99 7.5
L 15 15
" style="stroke-width: 4px; fill: rgba(0, 0, 0, 0)"/>
`,
spinning: false, spinning: false,
timeout: null, timeout: null,
camreaTree: [], camreaTree: [],

View File

@ -529,7 +529,7 @@
border: 1px solid #74a9f8; border: 1px solid #74a9f8;
border-radius: 10px; border-radius: 10px;
margin: 0 10px; margin: 0 10px;
cursor: pointer; // cursor: pointer;
.item-name { .item-name {
color: #fff; color: #fff;

View File

@ -174,7 +174,7 @@
await this.$router.push('/home') await this.$router.push('/home')
} }
} catch (error) { } catch (error) {
message.error('登陆失败,用户名或密码错误!') // message.error('')
} }
}, },
}, },

View File

@ -0,0 +1,147 @@
<!--
* @Author: Light
* @Date: 2022-11-30 17:43:43
* @LastEditors: Light
* @LastEditTime: 2022-12-02 16:02:26
* @Description: 告诉大家这是什么
-->
<template>
<div class="carousel" v-if="dataSource.noticeList.length > 0">
<div class="notice">
<!-- <div class="item" id="notice-item1" v-html="dataSource.str"></div>
<div class="item" id="notice-item2" v-html="dataSource.str"></div> -->
<div class="notice-item">
<svg
t="1669889820945"
class="icon"
viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="1382"
width="20"
height="20"
>
<path
d="M553.141571 59.499589a43.664726 43.664726 0 0 0-47.54116 6.253491l-255.990857 218.616193-204.061284-0.841113h-0.07314a43.884147 43.884147 0 0 0-31.377165 13.274954 46.041784 46.041784 0 0 0-13.128674 32.291418L0.018468 694.283776a46.370915 46.370915 0 0 0 12.982393 32.364558 43.884147 43.884147 0 0 0 31.523446 13.421235h206.511482l254.747473 217.81165a43.664726 43.664726 0 0 0 47.541159 6.21692 45.749223 45.749223 0 0 0 25.599086-41.360808V100.823828a45.785793 45.785793 0 0 0-25.599086-41.324239z m172.610978 228.343845a43.884147 43.884147 0 0 0-58.695047 21.466662 46.553766 46.553766 0 0 0 20.332988 60.925824 150.668905 150.668905 0 0 1 69.483233 138.271633c0 108.174422-62.352059 144.013142-64.436556 145.183387a46.261205 46.261205 0 0 0-19.930717 61.291525 44.432699 44.432699 0 0 0 39.898004 25.269955 43.481876 43.481876 0 0 0 19.857577-4.790686c4.644406-2.413628 113.623371-60.267562 113.62337-226.954181a239.607443 239.607443 0 0 0-120.169422-220.664119z m138.600764-134.139209a43.884147 43.884147 0 0 0-61.181815 13.677226 46.553766 46.553766 0 0 0 12.909253 63.120031c4.827256 3.254741 118.889468 82.977608 118.889469 281.370523s-109.417807 278.664333-113.769651 281.589943a46.370915 46.370915 0 0 0-12.360702 63.339452 43.884147 43.884147 0 0 0 61.766937 12.653262c6.253491-4.278704 153.375094-107.735581 153.375094-357.728938S870.862795 157.873219 864.353313 153.594514z m0 0"
p-id="1383"
fill="#d81e06"
></path>
</svg>
<!-- {{ item.content }} -->
<marquee
direction="left"
behavior="scroll"
onmouseover="this.stop()"
onmouseout="this.start()"
>
{{ dataSource.str }}
</marquee>
</div>
</div>
</div>
</template>
<script setup>
import { reactive, onMounted, onBeforeUnmount, nextTick } from 'vue'
import { sysnoticemanagement } from '@/api/home'
import { getCategoryTreePage } from '@/api/personalCenter'
const dataSource = reactive({
noticeList: [],
total: 0,
str: '',
})
getCategoryTreePage({
dictTypeId: '1598237460358852610',
page: 1,
limit: 9999,
}).then((res) => {
sysnoticemanagement({
page: 1,
limit: 9999,
content: '',
days: res.data.data.list[0].dictLabel,
}).then((res1) => {
dataSource.noticeList = res1.data.data.list
dataSource.total = res1.data.data.total
dataSource.noticeList.map((val, index) => {
dataSource.str +=
'通知' + (index + 1) + '' + val.content + '     '
})
})
})
// let time = null
onMounted(() => {
// nextTick(() => {
// const domArr = document.getElementsByClassName('notice-item')
// let num = 0
// //
// const move = () => {
// num++
// for (let i = 0; i < domArr.length; i++) {
// let offsetWidth = 0
// for (let j = 0; j < i; j++) {
// offsetWidth += domArr[j].offsetWidth + 30
// }
// domArr[i].style.left = -num + offsetWidth + 'px'
// }
// }
// // transition
// const setTransition = (str) => {
// for (let i = 0; i < domArr.length; i++) {
// domArr[i].style.transition = str
// }
// }
// move()
// time = window.setInterval(() => {
// move()
// let str = domArr[dataSource.total].style.left
// if (str.substring(0, str.length - 2) < 0) {
// num = 0
// setTransition('unset')
// move()
// } else if (domArr[0].style.transition == 'unset') {
// setTransition('all 0.05s linear')
// }
// }, 50)
// })
})
onBeforeUnmount(() => {
// window.clearInterval(time)
})
</script>
<style lang="less" scoped>
.carousel {
width: 100%;
height: 50px;
line-height: 50px;
display: flex;
justify-content: center;
align-items: center;
// background: #364d79;
color: #fff;
position: absolute;
top: 60px;
left: 0;
.notice {
width: 740px;
height: 50px;
line-height: 50px;
position: relative;
overflow: hidden;
.notice-item {
font-size: 16px;
position: absolute;
top: 0;
white-space: nowrap;
transition: all 0.05s linear;
display: flex;
align-items: center;
.icon {
margin-right: 10px;
}
}
}
}
marquee {
font-weight: 600;
}
</style>

View File

@ -2,12 +2,13 @@
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-06-23 16:41:49 * @Date: 2022-06-23 16:41:49
* @LastEditors: Light * @LastEditors: Light
* @LastEditTime: 2022-10-13 16:40:15 * @LastEditTime: 2022-11-30 17:55:43
* @Description: 告诉大家这是什么 * @Description: 告诉大家这是什么
--> -->
<template> <template>
<div class="newHome"> <div class="newHome">
<new-home-header></new-home-header> <new-home-header></new-home-header>
<Carousel></Carousel>
<navigation></navigation> <navigation></navigation>
<navigation2></navigation2> <navigation2></navigation2>
<capability-convergence></capability-convergence> <capability-convergence></capability-convergence>
@ -21,6 +22,7 @@
</template> </template>
<script setup> <script setup>
import NewHomeHeader from '@/views/home/components/header' import NewHomeHeader from '@/views/home/components/header'
import Carousel from '@/views/newHome/components/Carousel'
import Navigation from '@/views/newHome/components/Navigation' import Navigation from '@/views/newHome/components/Navigation'
import Navigation2 from '@/views/newHome/components/Navigation2' import Navigation2 from '@/views/newHome/components/Navigation2'
import CapabilityConvergence from '@/views/newHome/components/CapabilityConvergence' import CapabilityConvergence from '@/views/newHome/components/CapabilityConvergence'
@ -32,21 +34,21 @@
import HomeFooter from '@/views/newHome/components/Footer' import HomeFooter from '@/views/newHome/components/Footer'
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
@font-face { @font-face {
font-family: 'text-typeface'; font-family: 'text-typeface';
src: url('~@/assets/newHome/font/text-typeface.otf'); src: url('~@/assets/newHome/font/text-typeface.otf');
} }
@font-face { @font-face {
font-family: 'num-typeface'; font-family: 'num-typeface';
src: url('~@/assets/newHome/font/num-typeface.otf'); src: url('~@/assets/newHome/font/num-typeface.otf');
} }
.newHome { .newHome {
font-family: text-typeface; font-family: text-typeface;
.num { .num {
font-family: num-typeface; font-family: num-typeface;
}
}
.resource-aggregation {
background: #fff;
} }
}
.resource-aggregation {
background: #fff;
}
</style> </style>

View File

@ -152,7 +152,7 @@
> >
查看详情 查看详情
</a-button> </a-button>
<!-- <div class="btn" v-if="val.type == '组件服务'">技术文档</div> --> <!-- <div class="btn" v-if="val.type == '组件服务'">技术文档</div> -->
</div> </div>
<div class="ability-bottom"> <div class="ability-bottom">
@ -175,7 +175,17 @@
</a-button> </a-button>
</div> </div>
</div> </div>
<div v-if="item.approveStatus === '通过'" style=" margin-top: 15px;font-size: 16px; color: #ee4457;font-weight: bold;">说明已申请成功使用方式及联系人请点击"查看详情"按钮查看</div> <div
v-if="item.approveStatus === '通过'"
style="
margin-top: 15px;
font-size: 16px;
color: #ee4457;
font-weight: bold;
"
>
说明已申请成功使用方式及联系人请点击"查看详情"按钮查看
</div>
</div> </div>
</div> </div>
</div> </div>
@ -280,9 +290,7 @@
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<!-- 单个预览弹窗 --> <!-- 单个预览弹窗 -->

View File

@ -30,7 +30,36 @@
<div v-if="showType !== '云资源'"> <div v-if="showType !== '云资源'">
<div class="title">审批详情</div> <div class="title">审批详情</div>
<template v-for="item in dataSource.data" :key="item"> <template v-for="item in dataSource.data" :key="item">
<div class="oddNumbers">子单号:{{ item[0] }}</div> <div class="oddNumbers">
<div>子单号:{{ item[0] }}</div>
<template
v-if="
item[1][0].assignee !== store.getters['user/userId'] &&
typeStrObj.indexOf(showType) !== -1
"
>
<a-popconfirm
v-if="refObj.allowReminders || item[1][0].allowReminders"
title="是否催办此流程?"
ok-text="是"
cancel-text="否"
@confirm="urgeThis(item)"
@cancel="cancel"
>
<a-button type="primary" danger>催办</a-button>
</a-popconfirm>
<a-tooltip
v-else-if="refObj.doneReminders || item[1][0].doneReminders"
>
<template #title>
{{
refObj.nextRemindersDays || item[1][0].nextRemindersDays
}}天后可再次催办
</template>
<a-button type="primary" danger>已催办</a-button>
</a-tooltip>
</template>
</div>
<a-table <a-table
:dataSource="item[1]" :dataSource="item[1]"
:columns="dataSourceColumns" :columns="dataSourceColumns"
@ -54,9 +83,11 @@
</div> </div>
</template> </template>
<script setup> <script setup>
import { message } from 'ant-design-vue'
import AbilityApplication from './AbilityApplication.vue' import AbilityApplication from './AbilityApplication.vue'
import PutOnTheShelf from './PutOnTheShelf .vue' import PutOnTheShelf from './PutOnTheShelf .vue'
import OffTheShelf from './OffTheShelf.vue' import OffTheShelf from './OffTheShelf.vue'
import mybus from '@/myplugins/mybus'
import Demand from './Demand.vue' import Demand from './Demand.vue'
import Comment from './Comment.vue' import Comment from './Comment.vue'
import dataResourceApplication from './dataResourceApplication.vue' import dataResourceApplication from './dataResourceApplication.vue'
@ -64,6 +95,7 @@
import DeviceApplyDetail from './DeviceApplyDetail.vue' import DeviceApplyDetail from './DeviceApplyDetail.vue'
import OtherApplications from '@/views/personalCenter/components/OtherApplications ' import OtherApplications from '@/views/personalCenter/components/OtherApplications '
import { onMounted, reactive, defineProps, ref } from 'vue' import { onMounted, reactive, defineProps, ref } from 'vue'
import { useStore } from 'vuex'
import Cookies from 'js-cookie' import Cookies from 'js-cookie'
// import { baseURL } from '@/config' // import { baseURL } from '@/config'
import qs from 'qs' import qs from 'qs'
@ -72,7 +104,7 @@
getTaskHandleDetailInfo, getTaskHandleDetailInfo,
getDemandForm, getDemandForm,
nengliziyuanshangjiaapply, nengliziyuanshangjiaapply,
getTaskVariables, treminders,
} from '@/api/personalCenter' } from '@/api/personalCenter'
import { selectOneDel } from '@/api/home' import { selectOneDel } from '@/api/home'
const props = defineProps({ const props = defineProps({
@ -83,6 +115,7 @@
refObj: { type: Object, default: null }, refObj: { type: Object, default: null },
showType: { type: String, default: null }, showType: { type: String, default: null },
}) })
const store = useStore()
const refObj = ref({}) const refObj = ref({})
const showType = ref('') const showType = ref('')
// eslint-disable-next-line vue/no-setup-props-destructure // eslint-disable-next-line vue/no-setup-props-destructure
@ -92,7 +125,13 @@
// //
const dataSource = reactive({ data: [] }) const dataSource = reactive({ data: [] })
console.log('refObj------------>', refObj) console.log('refObj------------>', refObj)
const typeStrObj = [
'能力申请',
'能力上架',
'能力下架',
'能力需求',
'需求评论',
]
// console.log(props.refObj, '---------------------------------------') // console.log(props.refObj, '---------------------------------------')
const downloadFile = (path, name) => { const downloadFile = (path, name) => {
@ -285,6 +324,27 @@
}) })
} }
//
const urgeThis = (item) => {
console.log('催办==========>', item)
treminders({
instanceId: item[0],
processTaskId: item[1][0].id,
processTaskStats: 1,
applyNumber: refObj.value.applyNumber,
}).then((res) => {
if (res.data.msg !== 'success') {
message.warning('催办失败')
return
}
message.success('催办成功!')
mybus.emit('closeModal', {
type: showType.value,
index: typeStrObj.indexOf(showType.value),
})
})
}
onMounted(() => { onMounted(() => {
// getInfo() // getInfo()
if (props.refObj.resourceApplication) { if (props.refObj.resourceApplication) {
@ -348,4 +408,20 @@
.oddNumbers { .oddNumbers {
margin-bottom: 0.05rem; margin-bottom: 0.05rem;
} }
.oddNumbers {
display: flex;
justify-content: space-between;
align-items: center;
.button {
width: 96px;
height: 30px;
background: #ff4d4f;
font-size: 14px;
color: #fff;
border-radius: 4px;
text-align: center;
line-height: 30px;
cursor: pointer;
}
}
</style> </style>

View File

@ -117,7 +117,7 @@
item.ended item.ended
? '审核完成' ? '审核完成'
: item.backToFirst : item.backToFirst
? '审核中(被驳回,请修改申请或终止流程' ? '审核中(请修改被驳回内容'
: '审核中' : '审核中'
}} }}
</p> </p>

View File

@ -272,6 +272,7 @@
function handlecancel() { function handlecancel() {
abilityToTypeFunctionData.value = '组件服务' abilityToTypeFunctionData.value = '组件服务'
componentTypeValue.value = '' componentTypeValue.value = ''
visible2.value = false
} }
function abilityToTypeFunction(item) { function abilityToTypeFunction(item) {
abilityToTypeFunctionData.value = item abilityToTypeFunctionData.value = item
@ -291,6 +292,7 @@
if (abilityToTypeFunctionData.value == '组件服务') { if (abilityToTypeFunctionData.value == '组件服务') {
if (!componentTypeValue.value || componentTypeValue.value == '') { if (!componentTypeValue.value || componentTypeValue.value == '') {
message.error('请选择组件类型!') message.error('请选择组件类型!')
componentTypeValueOld.value = ''
return return
} else if ( } else if (
componentTypeValue.value === '智能算法' || componentTypeValue.value === '智能算法' ||
@ -316,10 +318,10 @@
query: snum.value, query: snum.value,
}) })
window.open(applypage.href, '_blank') window.open(applypage.href, '_blank')
visible.value = false visible2.value = false
abilityToTypeFunctionData.value = '组件服务' abilityToTypeFunctionData.value = '组件服务'
componentTypeValue.value = '' componentTypeValue.value = ''
console.log(e) visible2.value = false
} }
let abilityToType = ref(['组件服务', '应用资源']) let abilityToType = ref(['组件服务', '应用资源'])
let componentType = ref([ let componentType = ref([
@ -687,61 +689,95 @@
margin-top: -1.44rem; margin-top: -1.44rem;
font-size: 0.14rem; font-size: 0.14rem;
font-weight: 500; font-weight: 500;
.ant-modal-footer {
border: 0;
text-align: center;
margin-top: 24px;
padding-bottom: 24px;
.shenqing {
background: #0058e1;
color: #ffffff;
width: 90px;
height: 32px;
border-radius: 2px;
border: 1px #0058e1 solid;
}
.quxiao {
width: 90px;
height: 32px;
background: #ffffff;
color: #0058e1;
border-radius: 2px;
border: 1px #0058e1 solid;
}
}
.ant-modal-body {
padding: 0px !important;
}
.ant-radio-inner { .ant-radio-inner {
height: 0.16rem; height: 0.16rem;
width: 0.16rem; width: 0.16rem;
} }
.ant-radio-inner::after { .ant-radio-inner::after {
background-color: unset; background-color: unset;
background: url('~@/assets/personalCenter/xuanzhong.png') no-repeat; background: url('~@/assets/personalCenter/xuanzhong.png') no-repeat;
background-size: cover; background-size: cover;
background-position: center; background-position: center;
} }
.ant-modal-content { .ant-modal-content {
border-radius: 0.1rem; border-radius: 2px;
border: 1px #e6e9ed solid;
width: 690px;
box-shadow: 0px 4px 20px rgb(0, 0, 0, 0.5);
.ability-to-type, .ability-to-type,
.component-type { .component-type {
display: flex; display: flex;
margin-top: 0.2rem; margin-top: 24px;
margin-left: 24px;
.title { .title {
white-space: nowrap; white-space: nowrap;
margin-right: 0.2rem;
display: flex; display: flex;
align-items: center; align-items: center;
height: 0.26rem; height: 0.26rem;
font-size: 16px;
} }
.component-type-content {
.content {
width: 100%; width: 100%;
height: unset;
border: unset;
background: unset;
.ant-radio-group { .ant-radio-group {
display: grid; display: grid;
grid-template-columns: 1fr 1fr 1fr; grid-template-columns: auto auto auto auto;
grid-gap: 0.15rem; grid-gap: 0.15rem;
} }
} }
} }
.ability-to-type { .ability-to-type {
.content { .ability-to-type-content {
display: grid; display: grid;
grid-template-columns: 1fr 1fr 1fr; grid-template-columns: auto auto auto auto;
height: unset;
border: unset;
background: unset;
margin-left: 20px;
div { div {
margin-right: 0.15rem; &:hover {
background: #0058e1;
cursor: pointer;
color: #ffffff;
}
margin-right: 16px;
cursor: pointer; cursor: pointer;
font-size: 0.14rem; font-size: 16px;
width: 0.9rem; width: 90px;
height: 0.26rem; height: 32px;
border-radius: 0.13rem; border-radius: 2px;
color: #333333; color: #0058e1;
background: #f5f5f5; background: #ffffff;
border: 0.01rem #cccccc solid; border: 1px #0058e1 solid;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
@ -749,7 +785,7 @@
} }
.ability-to-type-down { .ability-to-type-down {
background: #0087ff; background: #0058e1;
color: #fff; color: #fff;
} }
} }
@ -759,16 +795,25 @@
.ant-modal-title { .ant-modal-title {
display: flex; display: flex;
align-items: center; align-items: center;
display: flex;
align-items: center;
margin: 0px 24px;
padding-top: 24px;
padding-bottom: 22px;
color: #212121;
font-weight: bold;
font-size: 20px;
border-bottom: 2px solid #ebeced;
} }
.ant-modal-footer { .ant-modal-footer {
border: 0; border: 0;
text-align: center; text-align: center;
padding-bottom: 0.2rem; padding-bottom: 0.2rem;
margin-top: 50px;
button { button {
margin-right: 0.2rem; margin-right: 12px;
border-radius: 0.08rem; border-radius: 2px;
} }
} }

View File

@ -1,8 +1,8 @@
<!-- <!--
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-07-12 09:42:44 * @Date: 2022-07-12 09:42:44
* @LastEditors: hisense.liangjunhua * @LastEditors: Light
* @LastEditTime: 2022-08-02 15:48:15 * @LastEditTime: 2022-12-01 14:02:17
* @Description:我的申请 能力申请 查看详情 * @Description:我的申请 能力申请 查看详情
--> -->
<template> <template>
@ -51,6 +51,12 @@
refObj: { type: Object, default: null }, refObj: { type: Object, default: null },
}) })
console.log(props.refObj, '=====================================') console.log(props.refObj, '=====================================')
const arr = ['算法优势', '应用场景', '计费标准信息', '常见问题', '功能介绍']
if (props.refObj.dto.infoList) {
props.refObj.dto.infoList = props.refObj.dto.infoList.filter(
(val) => arr.indexOf(val.attrType) == -1
)
}
const endThis = () => { const endThis = () => {
endProcess({ instanceId: props.refObj.processInstanceId }).then((res) => { endProcess({ instanceId: props.refObj.processInstanceId }).then((res) => {
if (res.data.code == 0) { if (res.data.code == 0) {

View File

@ -347,6 +347,8 @@
message.success(`${info.file.name} 文件上传成功`) message.success(`${info.file.name} 文件上传成功`)
formName.enclosure = info.file.response.data formName.enclosure = info.file.response.data
} else if (info.file.status === 'error') { } else if (info.file.status === 'error') {
formName.enclosure = ''
fileList.value=[]
message.error(`${info.file.name} 文件上传失败`) message.error(`${info.file.name} 文件上传失败`)
} }
} }