Merge branch 'hi-ucs-dev' of http://192.168.124.50:3000/wuhongjian/hi-ucs into hi-ucs-dev

This commit is contained in:
wuhongjian 2022-08-12 17:17:06 +08:00
commit a2267a59bb
19 changed files with 1874 additions and 330 deletions

View File

@ -23,20 +23,7 @@
</template> </template>
</el-dialog> </el-dialog>
<DisplayList></DisplayList> <DisplayList :displayList="displayList" showKey="name"></DisplayList>
<div class="show-box" v-if="displayList.length > 0">
<div class="list-box">
<div v-for="(item, i) in displayList" :key="i">
<el-tooltip popper-class="testTooltip" effect="dark" :content="item.name || '--'" placement="top">
<div class="list-item">
{{ item.name || '--' }}
</div>
</el-tooltip>
</div>
</div>
</div>
</div> </div>
</template> </template>
@ -149,8 +136,8 @@ let keyObj = {
nameKey: 'zyname' nameKey: 'zyname'
}, },
'组件服务': { '组件服务': {
idKey: 'zycode', idKey: 'id',
nameKey: 'zyname' nameKey: 'name'
}, },
} }
@ -204,15 +191,15 @@ export default {
let attrValue = dataForm.fuseResourceList.filter(v => v.type == this.type); let attrValue = dataForm.fuseResourceList.filter(v => v.type == this.type);
if (attrValue.length > 0) { if (attrValue.length > 0) {
attrValue.map(val => { attrValue.map(val => {
let item = this.allData.find(v => v.id == val.resourceId) || {};
let _obj = { let _obj = {
type: val.type, type: val.type,
id: val.resourceId, id: val.resourceId,
name: item.name name: val.resource && val.resource.name
}; };
arr.push(_obj); arr.push(_obj);
}); });
} }
// //
this.displayList = JSON.parse(JSON.stringify(arr)); this.displayList = JSON.parse(JSON.stringify(arr));
// //
@ -223,27 +210,17 @@ export default {
}, },
// //
getData() { getData() {
// this.allData = [];
// this.transferData = [];
// let arr = JSON.parse(JSON.stringify(sjzyArray));
// arr.map(v => {
// this.transferData.push({
// type: this.type,
// id: v[keyObj[this.type].idKey],
// name: v[keyObj[this.type].nameKey] || "--"
// });
// });
// this.allData = JSON.parse(JSON.stringify(this.transferData));
// return;
if (this.getDataParams.url === '') { if (this.getDataParams.url === '') {
return; return;
} }
this.$http[this.getDataParams.methods](this.getDataParams.url, this.getDataParams.postData).then(res => { this.$http[this.getDataParams.methods](this.getDataParams.url, {
params: this.getDataParams.postData
}).then(res => {
console.log('res.data----获取列表-------->', res.data); console.log('res.data----获取列表-------->', res.data);
if (res.data.code !== 0) { if (res.data.code !== 0) {
return this.$message.error(res.msg); return this.$message.error(res.msg);
} }
this.transferData = []; // allData this.transferData = [];
this.allData = []; this.allData = [];
(res.data.data || []).map(v => { (res.data.data || []).map(v => {
this.transferData.push({ this.transferData.push({

View File

@ -0,0 +1,330 @@
<template>
<el-card shadow="never" class="roomBox">
<div class="roomExamineSearch">
<el-input
v-model="roomName"
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>
<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: '',
limit: 10,
page: 1,
total: 0,
roomName: '',
tableData: [],
dialogVisible: false,
dialogVisibleChuli: false,
lookData: {},
radio: '2',
desc: '',
id: '',
num: '',
file: '',
}
},
mounted() {
this.getSerach()
},
methods: {
getSerach() {
this.$http
.get(
`/bookMeeting/auditPage?page=${this.page}&limit=${this.limit}&roomName=${this.roomName}&state=${this.value}`
)
.then(({ data: res }) => {
console.log(res, 7777777)
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
} else {
this.dialogVisible = true
this.$http.get(`bookMeeting/${item.id}`).then(({ data: res }) => {
console.log(55555555)
this.file = res.data.file
})
}
this.lookData = item
},
ok() {
let query = {
auditViem: this.desc,
state: this.radio,
id: this.id,
}
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: 410px;
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

@ -86,11 +86,8 @@
width="150" width="150"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button type="text" size="small" @click="showDetail(scope.row)"
type="text" >详情</el-button
size="small"
@click="showDetail(scope.row)"
>{{ $t('process.viewFlowImage') }}</el-button
> >
</template> </template>
</el-table-column> </el-table-column>

View File

@ -86,11 +86,8 @@
width="150" width="150"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button type="text" size="small" @click="showDetail(scope.row)"
type="text" >详情</el-button
size="small"
@click="showDetail(scope.row)"
>{{ $t('process.viewFlowImage') }}</el-button
> >
</template> </template>
</el-table-column> </el-table-column>

View File

@ -86,11 +86,8 @@
width="150" width="150"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button type="text" size="small" @click="showDetail(scope.row)"
type="text" >详情</el-button
size="small"
@click="showDetail(scope.row)"
>{{ $t('process.viewFlowImage') }}</el-button
> >
</template> </template>
</el-table-column> </el-table-column>

View File

@ -86,11 +86,8 @@
width="150" width="150"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button type="text" size="small" @click="showDetail(scope.row)"
type="text" >详情</el-button
size="small"
@click="showDetail(scope.row)"
>{{ $t('process.viewFlowImage') }}</el-button
> >
</template> </template>
</el-table-column> </el-table-column>

View File

@ -86,11 +86,8 @@
width="150" width="150"
> >
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button type="text" size="small" @click="showDetail(scope.row)"
type="text" >详情</el-button
size="small"
@click="showDetail(scope.row)"
>{{ $t('process.viewFlowImage') }}</el-button
> >
</template> </template>
</el-table-column> </el-table-column>

View File

@ -0,0 +1,381 @@
<template>
<el-card shadow="never" class="roomBox">
<div>
<div slot="header" class="roomHeadSpan">
<span>会议室管理</span>
<el-button
style="float: right; padding: 5px 5px"
type="primary"
icon="el-icon-circle-plus-outline"
@click="addRooom"
>新增</el-button
>
</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="num"
header-align="center"
align="center"
>
</el-table-column>
<el-table-column
label="面积"
prop="area"
header-align="center"
align="center"
></el-table-column>
<el-table-column
label="可容纳人数(人)"
prop="capacity"
header-align="center"
align="center"
></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)"
>详情</el-button
>
<el-button
type="text"
size="small"
@click="taskUpdate(scope.row)"
>{{ $t('update') }}</el-button
>
<el-button
type="text"
size="small"
@click="taskDelete(scope.row)"
>{{ $t('delete') }}</el-button
>
</template>
</el-table-column>
</el-table>
<el-dialog
@close="outDialog"
:title="
flge === 'add'
? '会议室新增'
: flge === 'look'
? '会议室详情'
: '会议室修改'
"
:visible.sync="dialogFormVisible"
>
<el-form
:model="ruleForm"
:label-position="labelPosition"
size="small"
:rules="rules"
ref="ruleForm"
:disabled="flge === 'look' ? true : flge === 'edit' ? false : false"
>
<el-row>
<el-col :span="12">
<el-form-item
label="会议室名称"
prop="name"
:label-width="formLabelWidth"
>
<el-input v-model="ruleForm.name" style="width: 90%"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="房间号"
prop="num"
:label-width="formLabelWidth"
>
<el-input v-model="ruleForm.num" style="width: 90%"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="会议室面积"
prop="area"
:label-width="formLabelWidth"
>
<el-input v-model="ruleForm.area" style="width: 90%"></el-input>
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item
label="可容纳人数"
prop="capacity"
:label-width="formLabelWidth"
>
<el-input
v-model="ruleForm.capacity"
style="width: 90%"
></el-input>
</el-form-item>
</el-col>
<el-col>
<el-form-item
label="描述"
prop="description"
:label-width="formLabelWidth"
>
<el-input
type="textarea"
v-model="ruleForm.description"
style="width: 96%"
></el-input>
</el-form-item>
</el-col>
<el-col>
<el-form-item
label="会议室图片"
prop="pic"
:label-width="formLabelWidth"
>
<div v-if="flge != 'look'">
<span slot="tip" class="el-upload__tip">
支持图片类型且不超过500kb
</span>
</div>
<!-- :file-list="fileList" -->
<el-upload
v-if="flge != 'look'"
class="upload-demo"
accept=".jpg, .jpeg, .png"
:action="apiURL"
:on-preview="handlePictureCardPreview"
:on-success="onSuccess"
:on-remove="onRemove"
:file-list="fileList"
list-type="picture-card"
:limit="1"
>
<i class="el-icon-plus"></i>
</el-upload>
<el-dialog :visible.sync="dialogVisible">
<img width="100%" :src="picImg" alt="" />
</el-dialog>
<div
class="block"
style="width: 15rem; height: 10rem"
v-if="flge == 'look' && picImg != ''"
>
<el-image :src="picImg"></el-image>
</div>
</el-form-item>
</el-col>
</el-row>
</el-form>
<div slot="footer" class="dialog-footer">
<!-- <el-button @click="dialogFormVisible = false"> </el-button> -->
<el-button
type="primary"
v-if="flge != 'look'"
@click="submitForm('ruleForm', flge)"
> </el-button
>
</div>
</el-dialog>
<el-pagination
:current-page="page"
:page-sizes="[10, 20, 50, 100]"
:page-size="limit"
:total="total"
layout="total, sizes, prev, pager, next, jumper"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
>
</el-pagination>
</div>
</el-card>
</template>
<script>
import Cookies from 'js-cookie'
export default {
data() {
// let validatorImg = (rule, value, callback) => {
// console.log(value, 11111111)
// //
// if (!this.checkImgSuccess) {
// //true false
// callback(new Error(''))
// } else {
// callback()
// }
// }
return {
apiURL:
window.SITE_CONFIG.apiURL + '/upload?token=' + Cookies.get('ucsToken'),
labelPosition: 'left',
dialogFormVisible: false,
// dialogImageUrl: '',
ruleForm: {
name: '',
num: '',
area: '',
capacity: '',
pic: '',
id: '',
},
limit: 10,
page: 1,
total: 0,
picImg: '',
tableData: [],
fileList: [],
rules: {
name: [
{ required: true, message: '请输入会议室名称', trigger: 'blur' },
{ min: 1, trigger: 'blur' },
],
area: [
{ required: true, message: '请输入会议室面积', trigger: 'blur' },
{ min: 1, trigger: 'blur' },
],
description: [
{ required: true, message: '请填写描述内容', trigger: 'blur' },
],
},
formLabelWidth: '100px',
checkImgSuccess: true,
dialogVisible: false,
flge: '',
}
},
mounted() {
this.queryData()
},
methods: {
//
queryData() {
this.$http
.get(`/meeting/page?limit=${this.limit}&page=${this.page}`)
.then(({ data: res }) => {
this.total = res.data.total
this.tableData = res.data.list
})
},
//
handleSizeChange(val) {
this.limit = val
this.queryData()
},
handleCurrentChange(val) {
this.page = val
this.queryData()
},
//
addRooom() {
this.dialogFormVisible = true
this.flge = 'add'
this.ruleForm = {}
this.fileList = []
},
handlePictureCardPreview(file) {
this.dialogImageUrl = file.url
this.dialogVisible = true
},
//
onSuccess(response, file, fileList) {
this.ruleForm.pic = response.data
// this.$refs.ruleForm.clearValidate() //
this.checkImgSuccess = true
},
//
onRemove(file, fileList) {
this.$nextTick(() => {
if (fileList.length == 0) {
this.checkImgSuccess = false //
// this.$refs.ruleForm.validate() //,
}
})
},
//
submitForm(formName, i) {
console.log(i, 9999999)
this.$refs[formName].validate((valid) => {
if (valid) {
if (i === 'add') {
this.dialogFormVisible = false
this.$http.post('/meeting', this.ruleForm).then(({ data: res }) => {
this.queryData()
})
} else if (i === 'edit') {
this.dialogFormVisible = false
this.$http.put(`/meeting`, this.ruleForm).then(({ data: res }) => {
this.ruleForm = res.data
let imgUrl = { name: res.data.name, url: res.data.pic }
this.fileList.push(imgUrl)
})
}
} else {
console.log('error submit!!')
return false
}
})
},
//
taskDetails(row) {
this.ruleForm = {}
this.fileList = []
this.flge = 'look'
this.$http.get(`/meeting/${row.id}`).then(({ data: res }) => {
this.dialogFormVisible = true
this.ruleForm = res.data
if (res.data.pic != null) {
// let imgUrl = { name: res.data.name, url: res.data.pic }
// this.fileList.push(imgUrl)
this.picImg = res.data.pic
} else {
this.picImg = ''
}
})
},
//
taskUpdate(row) {
this.dialogFormVisible = true
this.fileList = []
this.flge = 'edit'
this.ruleForm = row
if (row.pic != null) {
let imgUrl = { name: row.name, url: row.pic }
this.fileList.push(imgUrl)
} else {
this.fileList = []
}
},
//
taskDelete(row) {
console.log(row, '点击了删除')
this.$http
.put(`/meeting`, { delFlag: 1, id: row.id })
.then(({ data: res }) => {
this.queryData()
})
},
//
outDialog() {},
},
}
</script>
<style scoped lang="scss">
.roomBox {
min-height: calc(calc(100vh - 50px - 38px - 30px));
.roomHeadSpan {
font-weight: 600;
}
}
::v-deep .el-dialog__footer {
text-align: center;
}
</style>

View File

@ -370,6 +370,39 @@ export function getDevelopDocTree(params) {
params, params,
}) })
} }
//
export function getRoomSearch(params) {
return request({
url: '/bookMeeting/list',
method: 'get',
params,
})
}
//
export function getDate(params) {
return request({
url: '/bookMeeting/availableDate',
method: 'get',
params,
})
}
//
export function setSubmit(data) {
return request({
url: '/bookMeeting',
method: 'post',
data,
})
}
//
export function getYuyue(params) {
return request({
url: '/bookMeeting/page',
method: 'get',
params,
})
}
// 广 // 广
export function selectAppList(params) { export function selectAppList(params) {
return request({ return request({

Binary file not shown.

After

Width:  |  Height:  |  Size: 705 B

View File

@ -8,7 +8,7 @@
class="algorithm-card" class="algorithm-card"
> >
<a-image <a-image
:src="algorithmCardPhoto(item.infoList)" :src="algorithmCardPhoto(item.infoList, item)"
:width="525" :width="525"
:height="275" :height="275"
:fallback="imgSrc" :fallback="imgSrc"
@ -55,18 +55,18 @@
} }
pageWithAttrsFunction() pageWithAttrsFunction()
// //
const algorithmCardPhoto = (List) => { const algorithmCardPhoto = (List, item) => {
let obj = List.filter((item) => item.attrType === '图层缩略图')[0] let obj = List.filter((item) => item.attrType === '应用场景')[0]
if (obj) { if (obj && obj.attrValue != '') {
List.map((item) => { console.log(
if (item.attrType === '图层缩略图') { item.name,
url.value = item.attrValue item.id,
} obj.attrValue,
}) '----------------------------'
} else { )
url.value = '@/assets/capacitySquare/algorithm-photo.jpg' obj = JSON.parse(obj.attrValue)[0].img
} }
return url.value return obj || ''
} }
// //
const detailFunction = (id) => { const detailFunction = (id) => {

View File

@ -2,7 +2,7 @@
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-08-09 09:31:25 * @Date: 2022-08-09 09:31:25
* @LastEditors: hisense.liangjunhua * @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-08-09 18:25:06 * @LastEditTime: 2022-08-10 14:29:05
* @Description: 应用资源 * @Description: 应用资源
--> -->
<template> <template>
@ -50,12 +50,13 @@
const selectFlag = ref(false) const selectFlag = ref(false)
let dom = null let dom = null
const goToView = (id) => { const goToView = (id) => {
router.push({ const newpage = router.resolve({
path: '/details', path: '/details',
query: { query: {
id: id, id: id,
}, },
}) })
window.open(newpage.href, '_blank')
} }
const getList = (str) => { const getList = (str) => {
if (str) { if (str) {

View File

@ -6,7 +6,7 @@
<detailsPageconetentTree /> <detailsPageconetentTree />
</div> </div>
<div class="details-pageconetent-left" v-else> <div class="details-pageconetent-left" v-else>
<detailsPageInfrastructureTree /> <detailsPageInfrastructureTree v-show="flag != '6'" />
</div> </div>
<div class="top" v-if="Cardsname != '知识库' && Cardsname != '基础设施'"> <div class="top" v-if="Cardsname != '知识库' && Cardsname != '基础设施'">
<div class="top-title"> <div class="top-title">
@ -178,7 +178,7 @@
</div> </div>
</div> </div>
<div class="top-content-father"> <div class="top-content-father">
<infrastructurePage /> <infrastructurePage @add="handleAdd" />
</div> </div>
</div> </div>
<div class="top" v-else> <div class="top" v-else>
@ -742,6 +742,12 @@
export default defineComponent({ export default defineComponent({
setup() { setup() {
//6
const flag = ref('')
const handleAdd = (value) => {
flag.value = value
}
const titleName = ref(titleNameArray) const titleName = ref(titleNameArray)
const openMonitor = () => { const openMonitor = () => {
@ -1446,6 +1452,8 @@
getShoppingCartList, getShoppingCartList,
whoShow1, whoShow1,
applyAll, applyAll,
handleAdd,
flag,
abilitySquare, abilitySquare,
visibleAbilitySquare, visibleAbilitySquare,
showAbilitySquare, showAbilitySquare,

View File

@ -6,7 +6,7 @@
props.showView === 'algorithm-details' ? 'blue' : '', props.showView === 'algorithm-details' ? 'blue' : '',
]" ]"
> >
<div class="name"> <div class="name" @click="goToHome">
<div class="name-bg" v-if="!whoShow1.itShowXiHaiAn"></div> <div class="name-bg" v-if="!whoShow1.itShowXiHaiAn"></div>
<div class="name-bg-xihaian" v-else></div> <div class="name-bg-xihaian" v-else></div>
<div class="name-content"> <div class="name-content">
@ -178,6 +178,12 @@
} }
} }
} }
//
const goToHome = () => {
router.push({
path: '/home',
})
}
// //
const jumpPage = (item) => { const jumpPage = (item) => {
// console.log(item) // console.log(item)
@ -355,6 +361,7 @@
font-size: 0.16rem; font-size: 0.16rem;
} }
.name { .name {
cursor: pointer;
font-size: 0.22rem; font-size: 0.22rem;
font-family: header-typeface; font-family: header-typeface;
margin-right: 0.2rem; margin-right: 0.2rem;

View File

@ -3,7 +3,7 @@
<div class="img" :style="{ 'background-image': `url(${abilityInfo.bgImg || ''})` }"></div> <div class="img" :style="{ 'background-image': `url(${abilityInfo.bgImg || ''})` }"></div>
<div class="list-box" v-if="abilityInfo.list.length"> <div class="list-box" v-if="abilityInfo.list.length">
<div class="list-item" v-for="(item, i) in abilityInfo.list" :key="i" :class="i % 2 == 0 ? 'one' : ''"> <div class="list-item" v-for="(item, i) in abilityInfo.list" :key="i" :class="i % 2 == 0 ? 'one' : ''">
{{ item }}</div> {{ (item || item === 0) ? item : '--' }}</div>
</div> </div>
<div class="no-data" v-else> <div class="no-data" v-else>
<a-empty description="暂无数据" /> <a-empty description="暂无数据" />
@ -15,8 +15,6 @@ const props = defineProps({
abilityInfo: { type: Object, default: () => { } }, abilityInfo: { type: Object, default: () => { } },
}) })
console.log('abilityInfo------------>', props.abilityInfo);
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>

View File

@ -118,6 +118,7 @@
? 'ywzj' ? 'ywzj'
: '' : ''
" "
@click="toView('details', item)"
v-else-if=" v-else-if="
selectCardsname !== '基础设施' && selectCardsname !== '基础设施' &&
selectCardsname !== '融合服务' && selectCardsname !== '融合服务' &&
@ -131,7 +132,7 @@
selectCardsname === '融合服务' || selectCardsname === '赋能场景' selectCardsname === '融合服务' || selectCardsname === '赋能场景'
" "
></div> ></div>
<div class="right"> <div class="right" @click="toView('details', item)">
<div class="header"> <div class="header">
<span style="display: flex; align-items: center; width: 680px"> <span style="display: flex; align-items: center; width: 680px">
{{ item.name }} {{ item.name }}
@ -237,24 +238,10 @@
<span>{{ item.createDate.substring(11, 19) }}</span> <span>{{ item.createDate.substring(11, 19) }}</span>
</template> </template>
<template v-else>--</template> <template v-else>--</template>
<!-- <span>{{ item.createDate || '--' }}</span> -->
</div> </div>
<!-- <div>
更新时间
<span>{{ item.updateDate || '--' }}</span> -->
<!-- </div> -->
</div> </div>
</div> </div>
<div class="dec"> <div class="dec">
<!-- <div
v-if="
selectCardsname !== '基础设施' &&
selectCardsname !== '数据资源' &&
selectCardsname !== '融合服务'
"
>
<span>{{ item.shareType || '--' }}</span>
</div> -->
<div <div
v-if=" v-if="
selectCardsname !== '融合服务' && selectCardsname !== '融合服务' &&
@ -310,18 +297,8 @@
收藏量{{ item.collectCount || 0 }} 收藏量{{ item.collectCount || 0 }}
</div> </div>
</div> </div>
<!-- <div class="pingfen">
<a-tooltip placement="top" mouseEnterDelay="1">
<a-rate
:value="item.score || 0"
disabled
v-if="item.score != 0"
/>
</a-tooltip>
</div> -->
</div> </div>
<div class="right" v-if="selectCardsname !== '基础设施'"> <div class="right" v-if="selectCardsname !== '基础设施'">
<!-- 申购车 -->
<div class="shopping" :key="shoppingKey"> <div class="shopping" :key="shoppingKey">
<template <template
v-if=" v-if="
@ -339,7 +316,7 @@
<span <span
class="shopping-on" class="shopping-on"
v-else v-else
@click="addShoppingCart(item, index)" @click.stop="addShoppingCart(item, index)"
></span> ></span>
</template> </template>
</div> </div>
@ -347,12 +324,12 @@
<span <span
class="sc-down" class="sc-down"
v-if="item.isCollect == 'false'" v-if="item.isCollect == 'false'"
@click="addCollect(item)" @click.stop="addCollect(item)"
></span> ></span>
<span <span
class="sc-on" class="sc-on"
v-if="item.isCollect == 'true'" v-if="item.isCollect == 'true'"
@click="addCollect(item)" @click.stop="addCollect(item)"
></span> ></span>
</div> </div>
<div <div
@ -362,11 +339,14 @@
cardType == '组件服务' && findComponentName(item, '智能算法') cardType == '组件服务' && findComponentName(item, '智能算法')
" "
> >
<span class="pk-on" @click="goComparePk(item, index)"></span> <span
class="pk-on"
@click.stop="goComparePk(item, index)"
></span>
</div> </div>
<a-button <a-button
type="primary" type="primary"
@click="toView('details', item)" @click.stop="toView('details', item)"
v-if="!whoShow1.itShowBaoTou" v-if="!whoShow1.itShowBaoTou"
> >
查看详情 查看详情
@ -377,21 +357,13 @@
selectCardsname === '融合服务' || selectCardsname === '融合服务' ||
selectCardsname === '赋能场景' selectCardsname === '赋能场景'
" "
@click="handleAKeyApplication(item)" @click.stop="handleAKeyApplication(item)"
> >
一键申请 一键申请
</a-button> </a-button>
<!-- <a-button
style="margin-left: 10px"
v-show="
cardType == '组件服务' && findComponentName(item, '智能算法')
"
>
免费试用
</a-button> -->
<a-button <a-button
type="primary" type="primary"
@click="toView('apply', item)" @click.stop="toView('apply', item)"
v-show=" v-show="
cardType == '组件服务' || cardType == '组件服务' ||
(cardType == '应用资源' && whoShow1.itShowQingDao) (cardType == '应用资源' && whoShow1.itShowQingDao)
@ -660,6 +632,15 @@
if (webUrl) { if (webUrl) {
window.open(webUrl) window.open(webUrl)
} else { } else {
if (
!(
props.selectCardsname === '应用资源' ||
props.selectCardsname === '组件服务'
) ||
whoShow1.itShowBaoTou
) {
return
}
// //
console.log('一键申请===================>', item) console.log('一键申请===================>', item)
localStorage.setItem( localStorage.setItem(

File diff suppressed because it is too large Load Diff

View File

@ -19,17 +19,22 @@
<div class="hengxian"></div> <div class="hengxian"></div>
</div> </div>
</div> </div>
<searchResultList v-show="resourceList.data && resourceList.data.length > 0" :key="listKey2" <div v-loading="loadingData">
:resourceList="resourceList" :resourceTotal="resourceTotal" :selectCardsname="number == 0 ? '融合服务' : '赋能场景'" /> <searchResultList v-show="resourceList.data && resourceList.data.length > 0" :key="listKey2"
<div class="pagination"> :resourceList="resourceList" :resourceTotal="resourceTotal"
<a-pagination v-if="resourceList.data && resourceList.data.length > 0" v-model:current="currentPage" :selectCardsname="number == 0 ? '融合服务' : '赋能场景'" />
v-model:pageSize="currentPageSize" show-size-changer show-less-items show-quick-jumper :total="resourceTotal" <div class="pagination">
:page-size-options="pageSizeOptions" @change="pageChange" @showSizeChange="onShowSizeChange" /> <a-pagination v-if="resourceList.data && resourceList.data.length > 0" v-model:current="currentPage"
</div> v-model:pageSize="currentPageSize" show-size-changer show-less-items show-quick-jumper
<div v-if="resourceList.data && resourceList.data.length <= 0" style="margin-top: 2rem"> :total="resourceTotal" :page-size-options="pageSizeOptions" @change="pageChange"
<a-empty /> @showSizeChange="onShowSizeChange" />
</div>
<div v-if="resourceList.data && resourceList.data.length <= 0" style="margin-top: 2rem">
<a-empty />
</div>
</div> </div>
</div> </div>
</div> </div>
<home-footer></home-footer> <home-footer></home-footer>
</template> </template>
@ -58,6 +63,7 @@ export default defineComponent({
const resourceList = reactive({ data: [] }) const resourceList = reactive({ data: [] })
const resourceTotal = ref(0) const resourceTotal = ref(0)
const current = ref(1) const current = ref(1)
const loadingData = ref(false)
// //
const titleName = ref([ const titleName = ref([
{ {
@ -120,6 +126,8 @@ export default defineComponent({
// //
const getIntegrationList = () => { const getIntegrationList = () => {
loadingData.value = true;
console.log('获取融合服务列表------------>');
let postData = { let postData = {
limit: currentPageSize.value, limit: currentPageSize.value,
page: currentPage.value, page: currentPage.value,
@ -130,13 +138,17 @@ export default defineComponent({
} }
getIntegrationServicesList(postData).then( getIntegrationServicesList(postData).then(
(res) => { (res) => {
loadingData.value = false;
if (res.data.code !== 0) { if (res.data.code !== 0) {
return message.error(res.data.msg) return message.error(res.data.msg)
} }
console.log('res.data------------>', res.data);
resourceList.data = res.data.data.list || [] resourceList.data = res.data.data.list || []
resourceTotal.value = res.data.data.total || 0 resourceTotal.value = res.data.data.total || 0
}, },
(err) => { (err) => {
loadingData.value = false;
message.error(err) message.error(err)
} }
) )
@ -180,6 +192,7 @@ export default defineComponent({
} }
onMounted(() => { onMounted(() => {
console.log('222----onMounted-------->', 222);
listKey2.value++ listKey2.value++
getAppResources() getAppResources()
}) })
@ -215,6 +228,7 @@ export default defineComponent({
titleName, titleName,
changeCards, changeCards,
number, number,
loadingData,
} }
}, },
components: { components: {

View File

@ -20,7 +20,9 @@
</div> </div>
</div> </div>
<div class="flex-row-start desc"> <div class="flex-row-start desc">
<div class="desc">描述{{ detailInfoObj.description || '--' }}</div> <a-tooltip placement="topLeft" :title="detailInfoObj.description || '--'">
<div class="desc">描述{{ detailInfoObj.description || '--' }}</div>
</a-tooltip>
</div> </div>
<div class="btn-box"> <div class="btn-box">
<a-button size="big" class="btn-text" type="primary" @click="handleAKeyApplication()"> <a-button size="big" class="btn-text" type="primary" @click="handleAKeyApplication()">
@ -29,12 +31,11 @@
</template> </template>
申请使用 申请使用
</a-button> </a-button>
<a-button size="big" class="btn-text" :type="detailInfoObj.isCollect == 'true' ? 'primary' : ''" <a-button size="big" class="btn-text" type="primary" @click="addCollect()">
@click="addCollect()">
<template #icon> <template #icon>
<form-outlined /> <form-outlined />
</template> </template>
收藏 {{ detailInfoObj.isCollect == 'true' ? '已收藏' : '收藏' }}
</a-button> </a-button>
</div> </div>
</div> </div>
@ -79,21 +80,25 @@ const abilityList = ref([
{ {
name: '数据资源', name: '数据资源',
bgImg: require('../../assets/home/integration/sjzyDetail.png'), bgImg: require('../../assets/home/integration/sjzyDetail.png'),
list: [] list: [],
showTextKey: 'zyname',
}, },
{ {
name: '组件服务', name: '组件服务',
bgImg: require('../../assets/home/integration/zjfwDetail.png'), bgImg: require('../../assets/home/integration/zjfwDetail.png'),
list: [] list: [],
showTextKey: 'name',
}, },
{ {
name: '基础设施', name: '基础设施',
bgImg: require('../../assets/home/integration/jcssDetail.png'), bgImg: require('../../assets/home/integration/jcssDetail.png'),
list: [] list: [],
showTextKey: 'channelName',
}, },
]) ])
const imgUrl = ref('') const imgUrl = ref('')
// -- // --
const getIntegrationServicesDeatil = (id) => { const getIntegrationServicesDeatil = (id) => {
loadingPage.value = true loadingPage.value = true
@ -109,7 +114,7 @@ const getIntegrationServicesDeatil = (id) => {
let fuseResourceList = detailInfoObj.value.fuseResourceList || [] let fuseResourceList = detailInfoObj.value.fuseResourceList || []
abilityList.value.map(v => { abilityList.value.map(v => {
let list = fuseResourceList.filter(x => x.type == v.name) || []; let list = fuseResourceList.filter(x => x.type == v.name) || [];
v.list = list.map(v => v.resource && v.resource.channelName) || [] v.list = list.map(x => x.resource && x.resource[v.showTextKey]) || []
}) })
let imgList = detailInfoObj.value.fuseAttrList.filter((val) => val.attrType == '服务图片') || [] let imgList = detailInfoObj.value.fuseAttrList.filter((val) => val.attrType == '服务图片') || []
imgUrl.value = imgList[0] && imgList[0].attrValue || '' imgUrl.value = imgList[0] && imgList[0].attrValue || ''
@ -299,12 +304,10 @@ getIntegrationServicesDeatil(id)
.name { .name {
font-size: 0.16rem; font-size: 0.16rem;
margin-bottom: 0.2rem;
margin-top: 0.2rem;
} }
.area { .area {
margin-bottom: 0.2rem; margin: 0.1rem 0;
} }
.desc { .desc {
@ -319,7 +322,7 @@ getIntegrationServicesDeatil(id)
.btn-box { .btn-box {
position: absolute; position: absolute;
bottom: 0; bottom: -15px;
left: 0.2rem; left: 0.2rem;
.btn-text { .btn-text {
@ -341,5 +344,4 @@ getIntegrationServicesDeatil(id)
.list-box { .list-box {
padding: 0.4rem; padding: 0.4rem;
} }
</style> </style>