Compare commits
6 Commits
f576ece322
...
2da122302f
Author | SHA1 | Date |
---|---|---|
a0049873 | 2da122302f | |
a0049873 | 28ed97e816 | |
gongjiale | 04ce2dbd88 | |
gongjiale | f0b737396b | |
gongjiale | 0df1914eb3 | |
gongjiale | c0bb1422b1 |
After Width: | Height: | Size: 229 B |
After Width: | Height: | Size: 3.3 KiB |
After Width: | Height: | Size: 2.9 KiB |
After Width: | Height: | Size: 2.5 KiB |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 2.1 KiB |
|
@ -41,7 +41,7 @@
|
|||
<el-upload ref="editUpload" class="upload-demo" :action="fileUploadUrl"
|
||||
:on-success="eidtHandleAvatarSuccess" :before-upload="editBeforeAvatarUpload" :limit="1"
|
||||
:file-list="[]" :on-remove="editUploadRemoveFile" :on-exceed="handleExceed" list-type="picture">
|
||||
<div slot="tip" class="el-upload__tip">只能上传图片文件</div>
|
||||
<div slot="tip" class="el-upload__tip">只能上传图片文件,格式为jpg/png</div>
|
||||
<div class="button-new">
|
||||
<div>点击上传</div>
|
||||
</div>
|
||||
|
@ -299,7 +299,7 @@ export default {
|
|||
file.type === 'image/jpg' ||
|
||||
file.type === 'image/png'
|
||||
if (!isImage) {
|
||||
this.$message.error('上传头像图片只能是 jpg/png 格式!')
|
||||
this.$message.error('上传图片只能是 jpg/png 格式!')
|
||||
}
|
||||
return isImage
|
||||
},
|
||||
|
@ -314,7 +314,7 @@ export default {
|
|||
file.type === 'image/png'
|
||||
|
||||
if (!isImage) {
|
||||
this.$message.error('上传头像图片只能是 jpg/png 格式!')
|
||||
this.$message.error('上传图片只能是 jpg/png 格式!')
|
||||
}
|
||||
return isImage
|
||||
},
|
||||
|
|
|
@ -56,7 +56,7 @@
|
|||
<el-upload ref="editUpload" class="upload-demo" :action="fileUploadUrl"
|
||||
:on-success="eidtHandleAvatarSuccess" :before-upload="editBeforeAvatarUpload" :limit="1"
|
||||
:file-list="[]" :on-remove="editUploadRemoveFile" :on-exceed="handleExceed" list-type="picture">
|
||||
<div slot="tip" class="el-upload__tip">只能上传图片文件</div>
|
||||
<div slot="tip" class="el-upload__tip">只能上传图片文件,格式为jpg/png</div>
|
||||
<div class="button-new">
|
||||
<div>点击上传</div>
|
||||
</div>
|
||||
|
@ -458,7 +458,7 @@ export default {
|
|||
file.type === 'image/jpg' ||
|
||||
file.type === 'image/png'
|
||||
if (!isImage) {
|
||||
this.$message.error('上传头像图片只能是 jpg/png 格式!')
|
||||
this.$message.error('上传图片只能是 jpg/png 格式!')
|
||||
}
|
||||
return isImage
|
||||
},
|
||||
|
@ -473,7 +473,7 @@ export default {
|
|||
file.type === 'image/png'
|
||||
|
||||
if (!isImage) {
|
||||
this.$message.error('上传头像图片只能是 jpg/png 格式!')
|
||||
this.$message.error('上传图片只能是 jpg/png 格式!')
|
||||
}
|
||||
return isImage
|
||||
},
|
||||
|
|
|
@ -61,11 +61,20 @@
|
|||
</el-table-column>
|
||||
<el-table-column label="操作">
|
||||
<template slot-scope="scope">
|
||||
<span
|
||||
style="color: #0058e1"
|
||||
@click="handleDelete(scope.$index, scope.row)"
|
||||
>删除</span
|
||||
<el-popconfirm
|
||||
confirm-button-text="确认"
|
||||
cancel-button-text="不用了"
|
||||
icon="el-icon-info"
|
||||
icon-color="red"
|
||||
title="确定删除该实例数据吗?"
|
||||
@confirm="handleDelete(scope.$index, scope.row)"
|
||||
>
|
||||
<el-button
|
||||
type="danger"
|
||||
icon="el-icon-delete"
|
||||
slot="reference"
|
||||
></el-button>
|
||||
</el-popconfirm>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
style="color:red;margin-left: 6px;"
|
||||
@click="deleteItem(index)" type="danger" size="small"
|
||||
v-if="dataInfo.length > 1"
|
||||
src="~@/assets/img/deleteRed.png"
|
||||
src="~@/assets/img/del.png"
|
||||
alt=""
|
||||
/>
|
||||
<!-- <el-button style="margin-left:10px" >删除
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
type="danger"
|
||||
size="small"
|
||||
v-if="!disabledType && dataInfo.length > 1"
|
||||
src="~@/assets/img/deleteRed.png"
|
||||
src="~@/assets/img/del.png"
|
||||
alt=""
|
||||
/>
|
||||
</div>
|
||||
|
@ -31,18 +31,28 @@
|
|||
v-if="index != item.answer.length - 1"
|
||||
v-model="itemson.answer"
|
||||
placeholder="请输入步骤小节"
|
||||
style="width: 200px"
|
||||
style="width: 160px"
|
||||
:disabled="disabledType"
|
||||
>
|
||||
</el-input>
|
||||
<img
|
||||
style="color: red; margin-left: 6px"
|
||||
@click="deleteItem1(item.answer,index)"
|
||||
type="danger"
|
||||
size="small"
|
||||
v-if="!disabledType && index != item.answer.length - 1"
|
||||
src="~@/assets/img/del.png"
|
||||
alt=""
|
||||
/>
|
||||
<div v-else style="display: inline">
|
||||
<el-input
|
||||
v-model="itemson.answer"
|
||||
placeholder="请输入步骤小节"
|
||||
style="width: 200px"
|
||||
style="width: 160px"
|
||||
:disabled="disabledType"
|
||||
>
|
||||
</el-input>
|
||||
|
||||
<div class="submit1">
|
||||
<a-button type="primary" @click="addAnswerItem(item.answer)">
|
||||
<img
|
||||
|
@ -55,22 +65,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <a-button type="primary" v-if="!disabledType && index == dataInfo.length - 1"
|
||||
@click="addItem">
|
||||
<img
|
||||
style="height: 12px; width: 12px;margin-top: -2px;"
|
||||
src="~@/assets/img/jiahao.png"
|
||||
alt=""
|
||||
/>
|
||||
<span style="margin-left: 4px">添加小节</span>
|
||||
</a-button> -->
|
||||
<!-- <div class="question-box-right">
|
||||
<span>步骤小节: </span>
|
||||
<el-input v-model="itemson.answer" placeholder="请输入步骤小节" style="width:200px"
|
||||
:disabled="disabledType">
|
||||
</el-input>
|
||||
|
||||
</div> -->
|
||||
</div>
|
||||
|
||||
<div class="submit">
|
||||
|
@ -89,33 +84,7 @@
|
|||
</div>
|
||||
</div>
|
||||
|
||||
<!-- <div class="question-box">
|
||||
|
||||
<div v-for="(item, index) in dataInfo" :key="index">
|
||||
<el-form-item label="步骤标题" prop="question">
|
||||
<el-input v-model="item.question" placeholder="请输入标题" style="width:90%" :disabled="disabledType">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="步骤" prop="question">
|
||||
<el-input type="textarea" :rows="3" v-model="item.answer" placeholder="请输入解释说明" style="width:90%"
|
||||
:disabled="disabledType">
|
||||
</el-input>
|
||||
<el-button style="margin-left:10px" @click="deleteItem(index)" type="danger" size="small"
|
||||
v-if="!disabledType && dataInfo.length > 1">删除
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
<el-button class="add-btn" size="small" v-if="!disabledType && index == dataInfo.length - 1"
|
||||
@click="addItem" type="primary">添加
|
||||
</el-button>
|
||||
</div> -->
|
||||
|
||||
<!-- <div class="step-box">
|
||||
<el-steps :active="2">
|
||||
<el-step status="finish" :title="item.question || `标题${index + 1}`" v-for="(item, index) in dataInfo"
|
||||
:key="index">
|
||||
</el-step>
|
||||
</el-steps>
|
||||
</div> -->
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
|
@ -207,6 +176,22 @@ export default {
|
|||
})
|
||||
.catch(() => {});
|
||||
},
|
||||
// 删除
|
||||
deleteItem1(item,index) {
|
||||
this.$confirm("确认是否删除?", "提示", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning",
|
||||
})
|
||||
.then(() => {
|
||||
this.$message({
|
||||
type: "success",
|
||||
message: "删除成功!",
|
||||
});
|
||||
item.splice(index,1)
|
||||
})
|
||||
.catch(() => {});
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
|
@ -262,7 +247,7 @@ export default {
|
|||
}
|
||||
.question-box {
|
||||
float: left;
|
||||
width: 42%;
|
||||
width: 295px;
|
||||
}
|
||||
.question-box1 {
|
||||
float: left;
|
||||
|
|
|
@ -0,0 +1,292 @@
|
|||
<!--
|
||||
* @Author: Light
|
||||
* @Date: 2023-01-04 16:29:33
|
||||
* @LastEditors: Light
|
||||
* @LastEditTime: 2023-01-06 10:50:23
|
||||
* @Description: 数据统计
|
||||
-->
|
||||
<template>
|
||||
<div class="data-statistics-box">
|
||||
<div class="top">
|
||||
<div class="item" v-for="item in topData" :key="item.type">
|
||||
<div class="left">
|
||||
<div>{{ item.type }}</div>
|
||||
<div><span>{{ item.count }}</span>项</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div>
|
||||
较上周<span>{{ item.weekly_change }}</span>
|
||||
<svg v-if="item.weekly_change>0" t="1672972210380" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="28931" width="15" height="15"><path d="M470.016 976.896q-44.032 0-59.392-20.48t-15.36-65.536q0-20.48-0.512-64.512t-1.024-93.696-1.536-96.768-1.024-74.752q0-39.936-7.68-62.464t-35.328-21.504q-20.48 0-48.64-1.024t-49.664 0q-35.84 0-45.568-19.456t13.824-50.176q24.576-30.72 57.344-72.704t67.584-86.016 68.096-87.04 58.88-75.776q23.552-29.696 45.568-30.72t46.592 26.624q24.576 29.696 56.832 69.632t67.072 82.432 68.608 83.968 60.416 73.216q29.696 35.84 23.04 58.88t-43.52 23.04q-11.264 0-25.088 0.512t-29.184 1.024-30.208 1.024-27.136 0.512q-25.6 1.024-32.256 16.384t-5.632 41.984q0 29.696 0.512 77.824t1.024 100.352 1.536 101.376 1.024 79.872q0 13.312-2.048 27.648t-9.728 26.112-21.504 19.968-36.352 8.192q-27.648 0-52.736 0.512t-56.832 1.536z" p-id="28932" fill="#67c23a"></path></svg>
|
||||
<svg v-else-if="item.weekly_change==0" t="1672902733121" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5742" width="15" height="15"><path d="M152 560 152 464 472 464 472 560 152 560ZM552 560 552 464 872 464 872 560 552 560Z" fill="#409eff" p-id="5743"></path></svg>
|
||||
<svg v-else t="1672972414152" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="29200" width="15" height="15"><path d="M564.224 44.032q43.008 0 58.368 20.48t15.36 65.536q0 20.48 0.512 64.512t0.512 93.696 0.512 96.768 0.512 74.752q0 38.912 7.68 61.952t35.328 22.016q19.456 0 48.128 1.024t49.152 1.024q35.84 0 45.568 18.944t-13.824 49.664q-24.576 30.72-57.344 72.704t-68.096 86.016-69.12 86.528-59.392 75.264q-23.552 29.696-45.568 30.72t-45.568-27.648q-24.576-29.696-57.344-69.632t-67.072-82.432-67.584-83.968-59.904-74.24q-29.696-35.84-22.528-58.88t44.032-23.04l24.576 0q14.336 0 29.696-0.512t30.208-1.536 26.112-1.024q26.624 0 32.768-15.36t6.144-41.984q0-29.696-0.512-77.824t-0.512-100.352-0.512-101.376-0.512-79.872q0-13.312 2.048-27.648t9.728-26.112 20.992-19.456 36.864-7.68q27.648 0 53.248-0.512t57.344-0.512z" p-id="29201" fill="#f56c6c"></path></svg>
|
||||
</div>
|
||||
<div>
|
||||
较上月<span>{{ item.month_change }}</span>
|
||||
<svg v-if="item.month_change>0" t="1672972210380" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="28931" width="15" height="15"><path d="M470.016 976.896q-44.032 0-59.392-20.48t-15.36-65.536q0-20.48-0.512-64.512t-1.024-93.696-1.536-96.768-1.024-74.752q0-39.936-7.68-62.464t-35.328-21.504q-20.48 0-48.64-1.024t-49.664 0q-35.84 0-45.568-19.456t13.824-50.176q24.576-30.72 57.344-72.704t67.584-86.016 68.096-87.04 58.88-75.776q23.552-29.696 45.568-30.72t46.592 26.624q24.576 29.696 56.832 69.632t67.072 82.432 68.608 83.968 60.416 73.216q29.696 35.84 23.04 58.88t-43.52 23.04q-11.264 0-25.088 0.512t-29.184 1.024-30.208 1.024-27.136 0.512q-25.6 1.024-32.256 16.384t-5.632 41.984q0 29.696 0.512 77.824t1.024 100.352 1.536 101.376 1.024 79.872q0 13.312-2.048 27.648t-9.728 26.112-21.504 19.968-36.352 8.192q-27.648 0-52.736 0.512t-56.832 1.536z" p-id="28932" fill="#67c23a"></path></svg>
|
||||
<svg v-else-if="item.month_change==0" t="1672902733121" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5742" width="15" height="15"><path d="M152 560 152 464 472 464 472 560 152 560ZM552 560 552 464 872 464 872 560 552 560Z" fill="#409eff" p-id="5743"></path></svg>
|
||||
<svg v-else t="1672972414152" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="29200" width="15" height="15"><path d="M564.224 44.032q43.008 0 58.368 20.48t15.36 65.536q0 20.48 0.512 64.512t0.512 93.696 0.512 96.768 0.512 74.752q0 38.912 7.68 61.952t35.328 22.016q19.456 0 48.128 1.024t49.152 1.024q35.84 0 45.568 18.944t-13.824 49.664q-24.576 30.72-57.344 72.704t-68.096 86.016-69.12 86.528-59.392 75.264q-23.552 29.696-45.568 30.72t-45.568-27.648q-24.576-29.696-57.344-69.632t-67.072-82.432-67.584-83.968-59.904-74.24q-29.696-35.84-22.528-58.88t44.032-23.04l24.576 0q14.336 0 29.696-0.512t30.208-1.536 26.112-1.024q26.624 0 32.768-15.36t6.144-41.984q0-29.696-0.512-77.824t-0.512-100.352-0.512-101.376-0.512-79.872q0-13.312 2.048-27.648t9.728-26.112 20.992-19.456 36.864-7.68q27.648 0 53.248-0.512t57.344-0.512z" p-id="29201" fill="#f56c6c"></path></svg>
|
||||
</div>
|
||||
</div>
|
||||
<el-image
|
||||
:style="'width: ' + imgConfig[item.type].size + ' height: ' + imgConfig[item.type].size + ' position: absolute; bottom:' + imgConfig[item.type].bottom + ' right: '+imgConfig[item.type].right"
|
||||
:src="imgConfig[item.type].url"
|
||||
:fit="cover"></el-image>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="item-box" v-for="item in bottomData" :key="item.tip">
|
||||
<div class="name">
|
||||
<div>{{ item.tip }}<span>{{ item.dept_count }}</span>个</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="left">
|
||||
<div>能力上架</div>
|
||||
<div><span>{{ item.resource_sum }}</span>个</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div>
|
||||
较上周<span>{{ item.resource_weekly_change }}</span>
|
||||
<svg v-if="item.resource_weekly_change>0" t="1672972210380" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="28931" width="15" height="15"><path d="M470.016 976.896q-44.032 0-59.392-20.48t-15.36-65.536q0-20.48-0.512-64.512t-1.024-93.696-1.536-96.768-1.024-74.752q0-39.936-7.68-62.464t-35.328-21.504q-20.48 0-48.64-1.024t-49.664 0q-35.84 0-45.568-19.456t13.824-50.176q24.576-30.72 57.344-72.704t67.584-86.016 68.096-87.04 58.88-75.776q23.552-29.696 45.568-30.72t46.592 26.624q24.576 29.696 56.832 69.632t67.072 82.432 68.608 83.968 60.416 73.216q29.696 35.84 23.04 58.88t-43.52 23.04q-11.264 0-25.088 0.512t-29.184 1.024-30.208 1.024-27.136 0.512q-25.6 1.024-32.256 16.384t-5.632 41.984q0 29.696 0.512 77.824t1.024 100.352 1.536 101.376 1.024 79.872q0 13.312-2.048 27.648t-9.728 26.112-21.504 19.968-36.352 8.192q-27.648 0-52.736 0.512t-56.832 1.536z" p-id="28932" fill="#67c23a"></path></svg>
|
||||
<svg v-else-if="item.resource_weekly_change==0" t="1672902733121" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5742" width="15" height="15"><path d="M152 560 152 464 472 464 472 560 152 560ZM552 560 552 464 872 464 872 560 552 560Z" fill="#409eff" p-id="5743"></path></svg>
|
||||
<svg v-else t="1672972414152" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="29200" width="15" height="15"><path d="M564.224 44.032q43.008 0 58.368 20.48t15.36 65.536q0 20.48 0.512 64.512t0.512 93.696 0.512 96.768 0.512 74.752q0 38.912 7.68 61.952t35.328 22.016q19.456 0 48.128 1.024t49.152 1.024q35.84 0 45.568 18.944t-13.824 49.664q-24.576 30.72-57.344 72.704t-68.096 86.016-69.12 86.528-59.392 75.264q-23.552 29.696-45.568 30.72t-45.568-27.648q-24.576-29.696-57.344-69.632t-67.072-82.432-67.584-83.968-59.904-74.24q-29.696-35.84-22.528-58.88t44.032-23.04l24.576 0q14.336 0 29.696-0.512t30.208-1.536 26.112-1.024q26.624 0 32.768-15.36t6.144-41.984q0-29.696-0.512-77.824t-0.512-100.352-0.512-101.376-0.512-79.872q0-13.312 2.048-27.648t9.728-26.112 20.992-19.456 36.864-7.68q27.648 0 53.248-0.512t57.344-0.512z" p-id="29201" fill="#f56c6c"></path></svg>
|
||||
</div>
|
||||
<div>
|
||||
较上月<span>{{ item.resource_month_change }}</span>
|
||||
<svg v-if="item.resource_month_change>0" t="1672972210380" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="28931" width="15" height="15"><path d="M470.016 976.896q-44.032 0-59.392-20.48t-15.36-65.536q0-20.48-0.512-64.512t-1.024-93.696-1.536-96.768-1.024-74.752q0-39.936-7.68-62.464t-35.328-21.504q-20.48 0-48.64-1.024t-49.664 0q-35.84 0-45.568-19.456t13.824-50.176q24.576-30.72 57.344-72.704t67.584-86.016 68.096-87.04 58.88-75.776q23.552-29.696 45.568-30.72t46.592 26.624q24.576 29.696 56.832 69.632t67.072 82.432 68.608 83.968 60.416 73.216q29.696 35.84 23.04 58.88t-43.52 23.04q-11.264 0-25.088 0.512t-29.184 1.024-30.208 1.024-27.136 0.512q-25.6 1.024-32.256 16.384t-5.632 41.984q0 29.696 0.512 77.824t1.024 100.352 1.536 101.376 1.024 79.872q0 13.312-2.048 27.648t-9.728 26.112-21.504 19.968-36.352 8.192q-27.648 0-52.736 0.512t-56.832 1.536z" p-id="28932" fill="#67c23a"></path></svg>
|
||||
<svg v-else-if="item.resource_month_change==0" t="1672902733121" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5742" width="15" height="15"><path d="M152 560 152 464 472 464 472 560 152 560ZM552 560 552 464 872 464 872 560 552 560Z" fill="#409eff" p-id="5743"></path></svg>
|
||||
<svg v-else t="1672972414152" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="29200" width="15" height="15"><path d="M564.224 44.032q43.008 0 58.368 20.48t15.36 65.536q0 20.48 0.512 64.512t0.512 93.696 0.512 96.768 0.512 74.752q0 38.912 7.68 61.952t35.328 22.016q19.456 0 48.128 1.024t49.152 1.024q35.84 0 45.568 18.944t-13.824 49.664q-24.576 30.72-57.344 72.704t-68.096 86.016-69.12 86.528-59.392 75.264q-23.552 29.696-45.568 30.72t-45.568-27.648q-24.576-29.696-57.344-69.632t-67.072-82.432-67.584-83.968-59.904-74.24q-29.696-35.84-22.528-58.88t44.032-23.04l24.576 0q14.336 0 29.696-0.512t30.208-1.536 26.112-1.024q26.624 0 32.768-15.36t6.144-41.984q0-29.696-0.512-77.824t-0.512-100.352-0.512-101.376-0.512-79.872q0-13.312 2.048-27.648t9.728-26.112 20.992-19.456 36.864-7.68q27.648 0 53.248-0.512t57.344-0.512z" p-id="29201" fill="#f56c6c"></path></svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="left">
|
||||
<div>能力申请</div>
|
||||
<div><span>{{ item.apply_sum }}</span>个</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div>
|
||||
较上周<span>{{ item.apply_weekly_change }}</span>
|
||||
<svg v-if="item.apply_weekly_change>0" t="1672972210380" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="28931" width="15" height="15"><path d="M470.016 976.896q-44.032 0-59.392-20.48t-15.36-65.536q0-20.48-0.512-64.512t-1.024-93.696-1.536-96.768-1.024-74.752q0-39.936-7.68-62.464t-35.328-21.504q-20.48 0-48.64-1.024t-49.664 0q-35.84 0-45.568-19.456t13.824-50.176q24.576-30.72 57.344-72.704t67.584-86.016 68.096-87.04 58.88-75.776q23.552-29.696 45.568-30.72t46.592 26.624q24.576 29.696 56.832 69.632t67.072 82.432 68.608 83.968 60.416 73.216q29.696 35.84 23.04 58.88t-43.52 23.04q-11.264 0-25.088 0.512t-29.184 1.024-30.208 1.024-27.136 0.512q-25.6 1.024-32.256 16.384t-5.632 41.984q0 29.696 0.512 77.824t1.024 100.352 1.536 101.376 1.024 79.872q0 13.312-2.048 27.648t-9.728 26.112-21.504 19.968-36.352 8.192q-27.648 0-52.736 0.512t-56.832 1.536z" p-id="28932" fill="#67c23a"></path></svg>
|
||||
<svg v-else-if="item.apply_weekly_change==0" t="1672902733121" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5742" width="15" height="15"><path d="M152 560 152 464 472 464 472 560 152 560ZM552 560 552 464 872 464 872 560 552 560Z" fill="#409eff" p-id="5743"></path></svg>
|
||||
<svg v-else t="1672972414152" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="29200" width="15" height="15"><path d="M564.224 44.032q43.008 0 58.368 20.48t15.36 65.536q0 20.48 0.512 64.512t0.512 93.696 0.512 96.768 0.512 74.752q0 38.912 7.68 61.952t35.328 22.016q19.456 0 48.128 1.024t49.152 1.024q35.84 0 45.568 18.944t-13.824 49.664q-24.576 30.72-57.344 72.704t-68.096 86.016-69.12 86.528-59.392 75.264q-23.552 29.696-45.568 30.72t-45.568-27.648q-24.576-29.696-57.344-69.632t-67.072-82.432-67.584-83.968-59.904-74.24q-29.696-35.84-22.528-58.88t44.032-23.04l24.576 0q14.336 0 29.696-0.512t30.208-1.536 26.112-1.024q26.624 0 32.768-15.36t6.144-41.984q0-29.696-0.512-77.824t-0.512-100.352-0.512-101.376-0.512-79.872q0-13.312 2.048-27.648t9.728-26.112 20.992-19.456 36.864-7.68q27.648 0 53.248-0.512t57.344-0.512z" p-id="29201" fill="#f56c6c"></path></svg>
|
||||
</div>
|
||||
<div>
|
||||
较上月<span>{{ item.apply_month_change }}</span>
|
||||
<svg v-if="item.apply_month_change>0" t="1672972210380" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="28931" width="15" height="15"><path d="M470.016 976.896q-44.032 0-59.392-20.48t-15.36-65.536q0-20.48-0.512-64.512t-1.024-93.696-1.536-96.768-1.024-74.752q0-39.936-7.68-62.464t-35.328-21.504q-20.48 0-48.64-1.024t-49.664 0q-35.84 0-45.568-19.456t13.824-50.176q24.576-30.72 57.344-72.704t67.584-86.016 68.096-87.04 58.88-75.776q23.552-29.696 45.568-30.72t46.592 26.624q24.576 29.696 56.832 69.632t67.072 82.432 68.608 83.968 60.416 73.216q29.696 35.84 23.04 58.88t-43.52 23.04q-11.264 0-25.088 0.512t-29.184 1.024-30.208 1.024-27.136 0.512q-25.6 1.024-32.256 16.384t-5.632 41.984q0 29.696 0.512 77.824t1.024 100.352 1.536 101.376 1.024 79.872q0 13.312-2.048 27.648t-9.728 26.112-21.504 19.968-36.352 8.192q-27.648 0-52.736 0.512t-56.832 1.536z" p-id="28932" fill="#67c23a"></path></svg>
|
||||
<svg v-else-if="item.apply_month_change==0" t="1672902733121" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="5742" width="15" height="15"><path d="M152 560 152 464 472 464 472 560 152 560ZM552 560 552 464 872 464 872 560 552 560Z" fill="#409eff" p-id="5743"></path></svg>
|
||||
<svg v-else t="1672972414152" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="29200" width="15" height="15"><path d="M564.224 44.032q43.008 0 58.368 20.48t15.36 65.536q0 20.48 0.512 64.512t0.512 93.696 0.512 96.768 0.512 74.752q0 38.912 7.68 61.952t35.328 22.016q19.456 0 48.128 1.024t49.152 1.024q35.84 0 45.568 18.944t-13.824 49.664q-24.576 30.72-57.344 72.704t-68.096 86.016-69.12 86.528-59.392 75.264q-23.552 29.696-45.568 30.72t-45.568-27.648q-24.576-29.696-57.344-69.632t-67.072-82.432-67.584-83.968-59.904-74.24q-29.696-35.84-22.528-58.88t44.032-23.04l24.576 0q14.336 0 29.696-0.512t30.208-1.536 26.112-1.024q26.624 0 32.768-15.36t6.144-41.984q0-29.696-0.512-77.824t-0.512-100.352-0.512-101.376-0.512-79.872q0-13.312 2.048-27.648t9.728-26.112 20.992-19.456 36.864-7.68q27.648 0 53.248-0.512t57.344-0.512z" p-id="29201" fill="#f56c6c"></path></svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bx"></div>
|
||||
<div class="bx"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
export default {
|
||||
name: '',
|
||||
components: {
|
||||
|
||||
},
|
||||
props: {
|
||||
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
sortList: ['四大类资源', '组件服务', '应用资源', '基础设施', '数据资源'],
|
||||
imgConfig: {
|
||||
四大类资源: {
|
||||
url: require('@/assets/img/workBench/banner-gg.png'),
|
||||
size: '80px;',
|
||||
right: '20px;',
|
||||
bottom: '40px;'
|
||||
},
|
||||
组件服务: {
|
||||
url: require('@/assets/img/workBench/banner-zj.png'),
|
||||
size: '60px;',
|
||||
right: '20px;',
|
||||
bottom: '48px;'
|
||||
},
|
||||
应用资源: {
|
||||
url: require('@/assets/img/workBench/banner-yy.png'),
|
||||
size: '60px;',
|
||||
right: '20px;',
|
||||
bottom: '43px;'
|
||||
},
|
||||
基础设施: {
|
||||
url: require('@/assets/img/workBench/banner-jc.png'),
|
||||
size: '60px;',
|
||||
right: '20px;',
|
||||
bottom: '46px;'
|
||||
},
|
||||
数据资源: {
|
||||
url: require('@/assets/img/workBench/banner-sj.png'),
|
||||
size: '60px;',
|
||||
right: '20px;',
|
||||
bottom: '50px;'
|
||||
}
|
||||
},
|
||||
topData: [],
|
||||
bottomData: []
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
},
|
||||
created () {
|
||||
this.$http.get('/census/center/similitude').then(res => {
|
||||
res.data.data = res.data.data.sort((a, b) => this.sortList.indexOf(a.type) - this.sortList.indexOf(b.type))
|
||||
this.topData = res.data.data
|
||||
console.log('获取数据', res.data.data)
|
||||
})
|
||||
this.$http.get('/census/center/similitude_dept').then(res => {
|
||||
this.bottomData = res.data.data
|
||||
console.log('获取数据', res.data.data)
|
||||
})
|
||||
},
|
||||
mounted () {
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang='scss' scoped>
|
||||
.data-statistics-box{
|
||||
padding:10px;
|
||||
.top{
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
.item{
|
||||
width: 290px;
|
||||
height: 120px;
|
||||
padding: 15px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
background: #fff;
|
||||
box-shadow: 2px 2px 5px #ccc;
|
||||
border-radius: 10px;
|
||||
position: relative;
|
||||
.left{
|
||||
width: 100px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
font-size: 16px;
|
||||
div{
|
||||
margin-bottom: 1px;
|
||||
}
|
||||
span{
|
||||
font-size: 24px;
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
.right{
|
||||
width: 180px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: flex-start;
|
||||
margin-top: 10px;
|
||||
div{
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin-bottom: 5px;
|
||||
font-size: 14px;
|
||||
color: #666;
|
||||
span{
|
||||
width: 30px;
|
||||
margin-left: 30px;
|
||||
}
|
||||
svg{
|
||||
margin-left: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.bottom{
|
||||
margin-top: 10px;
|
||||
.item-box{
|
||||
display: flex;
|
||||
margin-top: 10px;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
.name{
|
||||
width: 290px;
|
||||
height: 80px;
|
||||
padding: 10px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
background: #fff;
|
||||
border-radius: 10px;
|
||||
box-shadow: 2px 2px 5px #ccc;
|
||||
div{
|
||||
width: 200px;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 20px;
|
||||
span{
|
||||
margin-left: 10px;
|
||||
font-size: 28px;
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
}
|
||||
.item{
|
||||
width: 290px;
|
||||
height: 80px;
|
||||
padding: 10px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
background: #fff;
|
||||
border-radius: 10px;
|
||||
box-shadow: 2px 2px 5px #ccc;
|
||||
.left{
|
||||
width: 100px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
font-size: 16px;
|
||||
span{
|
||||
font-size: 24px;
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
.right{
|
||||
width: 120px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
align-items: flex-start;
|
||||
margin-top: 10px;
|
||||
div{
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
margin-bottom: 5px;
|
||||
font-size: 14px;
|
||||
color: #666;
|
||||
span{
|
||||
width: 30px;
|
||||
margin-left: 10px;
|
||||
}
|
||||
svg{
|
||||
margin-left: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.bx{
|
||||
width: 290px;
|
||||
height: 80px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
|
@ -1,5 +1,9 @@
|
|||
<template>
|
||||
<div class="work-brnch-box">
|
||||
<!-- 数据统计 -->
|
||||
<div class="data-statistics" v-if="($store.state.user.roleIdList.indexOf('运维管理员') !== -1)">
|
||||
<DataStatistics></DataStatistics>
|
||||
</div>
|
||||
<!-- 上 -->
|
||||
<div class="flex-row-start top">
|
||||
<div class="flex-row-start dept-left">
|
||||
|
@ -33,6 +37,7 @@
|
|||
import BottomView from '../workBench/components/bottom-view.vue'
|
||||
import CenterView from '../workBench/components/center-view.vue'
|
||||
import DeptChartView from '../workBench/components/dept-chart-view.vue'
|
||||
import DataStatistics from './components/DataStatistics'
|
||||
import deptTodoView from '../workBench/components/dept-todo-view.vue'
|
||||
import * as Apis from './api.js'
|
||||
import bus from '@/views/bus.js'
|
||||
|
@ -41,7 +46,8 @@ export default {
|
|||
deptTodoView,
|
||||
BottomView,
|
||||
CenterView,
|
||||
DeptChartView
|
||||
DeptChartView,
|
||||
DataStatistics
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
|
@ -241,7 +247,12 @@ export default {
|
|||
}
|
||||
|
||||
.work-brnch-box {
|
||||
|
||||
.data-statistics{
|
||||
background: #fff;
|
||||
height: 324px;
|
||||
margin-bottom: 16px;
|
||||
box-shadow: 2px 2px 5px #ccc;
|
||||
}
|
||||
.top {
|
||||
height: 284px;
|
||||
margin-bottom: 16px;
|
||||
|
|
After Width: | Height: | Size: 552 B |
After Width: | Height: | Size: 475 B |
|
@ -9,7 +9,7 @@
|
|||
<div class="algorithm-top-details">
|
||||
<div class="left">
|
||||
<div class="top">
|
||||
<a-tooltip placement="top" v-if="(props.dataList.name.length>20)">
|
||||
<a-tooltip placement="top" v-if="(props.dataList.name.length > 20)">
|
||||
<template #title>{{ props.dataList.name }}</template>
|
||||
<span class="name">
|
||||
{{ props.dataList.name }}
|
||||
|
@ -47,24 +47,21 @@
|
|||
</div>
|
||||
<div class="bottomdesc" v-else-if="dowmOrUp === '展开>>'">
|
||||
场景描述: {{ props.dataList.description.slice(0, 183) }}...
|
||||
<span
|
||||
style="cursor: pointer; color: rgb(241 211 112)"
|
||||
@click="showDetail(dowmOrUp)"
|
||||
>
|
||||
<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)"
|
||||
>
|
||||
<span style="cursor: pointer; color: rgb(241 211 112)" @click="showDetail(dowmOrUp)">
|
||||
{{ dowmOrUp }}
|
||||
</span>
|
||||
</div>
|
||||
<div style="padding-top: 20px">
|
||||
<span>场景入口:</span>
|
||||
<a-button class="rukou" @click="openScene(props.dataList.sceneUrl)">
|
||||
进入场景
|
||||
</a-button>
|
||||
<!-- <span>场景入口:</span>
|
||||
<span
|
||||
style="
|
||||
margin-left: 10px;
|
||||
|
@ -74,7 +71,7 @@
|
|||
@click="openScene(props.dataList.sceneUrl)"
|
||||
>
|
||||
{{ props.dataList.sceneUrl }}
|
||||
</span>
|
||||
</span> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom" v-if="props.dataList.id">
|
||||
|
@ -200,7 +197,7 @@ function toView() {
|
|||
// 融合服务--一键申请
|
||||
const handleAKeyApplication = () => {
|
||||
let _applyList = []
|
||||
;(props.dataList.fuseResourceList || []).map((v) => {
|
||||
; (props.dataList.fuseResourceList || []).map((v) => {
|
||||
let resource = v.resource || {}
|
||||
let obj = {
|
||||
arr: [
|
||||
|
@ -339,6 +336,17 @@ watch(
|
|||
}
|
||||
|
||||
.main {
|
||||
|
||||
.rukou {
|
||||
margin-top:24px;
|
||||
background: #0058e1;
|
||||
color: #ffffff;
|
||||
width: 90px;
|
||||
height: 32px;
|
||||
border-radius: 2px;
|
||||
border: 1px #0058e1 solid;
|
||||
|
||||
}
|
||||
.bottomdesc {
|
||||
display: -webkit-box;
|
||||
/*设置为弹性盒子*/
|
||||
|
@ -353,12 +361,14 @@ watch(
|
|||
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;
|
||||
|
|
|
@ -58,6 +58,7 @@ function toView(item) {
|
|||
path: '/integrationServicesDetails',
|
||||
query: {
|
||||
id: item.id,
|
||||
districtType:item.district,
|
||||
type:'典型赋能场景'
|
||||
},
|
||||
})
|
||||
|
|
|
@ -26,16 +26,26 @@ const oldValue1 = ref('')
|
|||
const props = defineProps({
|
||||
textColor: { type: String, default: '' },
|
||||
returnType: { type: String, default: '' },
|
||||
districtType:{ type: Number, default: 0 },
|
||||
})
|
||||
const returnType = props.returnType
|
||||
const districtType = props.districtType
|
||||
const previousPage = () => {
|
||||
if (returnType =='典型赋能场景'|| returnType =='打包模式') {
|
||||
if (returnType =='打包模式') {
|
||||
router.push({
|
||||
path: '/integrationServices',
|
||||
query: {
|
||||
returnType: returnType,
|
||||
},
|
||||
})
|
||||
}else if(returnType =='典型赋能场景'){
|
||||
router.push({
|
||||
path: '/integrationServices',
|
||||
query: {
|
||||
returnType: returnType,
|
||||
districtType:districtType,
|
||||
},
|
||||
})
|
||||
} else {
|
||||
if (window.history.state.back) {
|
||||
window.history.go(-1)
|
||||
|
|
|
@ -124,6 +124,7 @@ export default defineComponent({
|
|||
const router = useRouter()
|
||||
const select = router.currentRoute.value.query.select
|
||||
const returnType = router.currentRoute.value.query.returnType
|
||||
const districtType = router.currentRoute.value.query.districtType
|
||||
const searchValue = ref('')
|
||||
const Cardsname = ref(select)
|
||||
const resourceList = reactive({ data: [] })
|
||||
|
@ -352,9 +353,15 @@ export default defineComponent({
|
|||
onMounted(() => {
|
||||
searchAreas()
|
||||
if (returnType == '典型赋能场景') {
|
||||
changeCards(0)
|
||||
|
||||
} else if (returnType == '打包模式') {
|
||||
if(districtType==0){
|
||||
cityOrArea.value=0
|
||||
}else{
|
||||
cityOrArea.value=1
|
||||
}
|
||||
changeCards(0)
|
||||
}
|
||||
else if (returnType == '打包模式') {
|
||||
changeCards(1)
|
||||
} else {
|
||||
if (storageSearchInfo) {
|
||||
|
@ -390,6 +397,7 @@ export default defineComponent({
|
|||
titleName,
|
||||
changeCards,
|
||||
returnType,
|
||||
districtType,
|
||||
number,
|
||||
loadingData,
|
||||
cityOrArea,
|
||||
|
@ -545,7 +553,10 @@ export default defineComponent({
|
|||
cursor: pointer;
|
||||
margin-top: 12px;
|
||||
}
|
||||
|
||||
span:hover{
|
||||
background: #0058e1;
|
||||
color: #fff;
|
||||
}
|
||||
.down {
|
||||
background: #0058e1;
|
||||
color: #ffffff;
|
||||
|
|
|
@ -2,25 +2,16 @@
|
|||
<template>
|
||||
<div class="IntegrationServicesDetails" :class="{ fixed2: scrollTop >= 600 }">
|
||||
<home-header></home-header>
|
||||
<detail-back
|
||||
v-show="!hiddenBackFlag"
|
||||
:returnType="returnType"
|
||||
></detail-back>
|
||||
<!-- 头部基本信息 -->
|
||||
<application-top-details
|
||||
:dataList="detailInfoObj"
|
||||
:navList="navList"
|
||||
></application-top-details>
|
||||
<detail-back v-show="!hiddenBackFlag" :returnType="returnType" :districtType="districtType"></detail-back>
|
||||
|
||||
<template v-if="districtType == 0 || returnType == '打包模式'">
|
||||
<!-- 头部基本信息 -->
|
||||
<application-top-details :dataList="detailInfoObj" :navList="navList"></application-top-details>
|
||||
<!-- 导航 -->
|
||||
<div :class="{ fixed: scrollTop >= 600 }" style="z-index: 10012">
|
||||
<div class="application-navigation">
|
||||
<template v-for="nav in navList" :key="nav.key">
|
||||
<div
|
||||
class="nav"
|
||||
:class="{ selectNow: nav.key == selectNow }"
|
||||
@click="selectNav(nav.key)"
|
||||
>
|
||||
<div class="nav" :class="{ selectNow: nav.key == selectNow }" @click="selectNav(nav.key)">
|
||||
{{ nav.name }}
|
||||
<span class="line"></span>
|
||||
</div>
|
||||
|
@ -39,16 +30,11 @@
|
|||
</div>
|
||||
|
||||
<div class="content" style="margin-left: 0.5rem">
|
||||
<div
|
||||
class="content-item"
|
||||
v-for="(item, i) in painPoint"
|
||||
:key="i"
|
||||
style="
|
||||
<div class="content-item" v-for="(item, i) in painPoint" :key="i" style="
|
||||
margin-bottom: 0.2rem;
|
||||
font-size: 0.18rem;
|
||||
line-height: 0.3rem;
|
||||
"
|
||||
>
|
||||
">
|
||||
{{ i + 1 + '、' + item.description }}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -56,26 +42,17 @@
|
|||
</div>
|
||||
|
||||
<!-- 解决方案 -->
|
||||
<div
|
||||
id="integration-solution"
|
||||
class="solution scrollBox"
|
||||
style="background: #eee"
|
||||
>
|
||||
<div id="integration-solution" class="solution scrollBox" style="background: #eee">
|
||||
<div class="title-1">
|
||||
<DetalsTitle title="解决方案" type="SOLUTION"></DetalsTitle>
|
||||
</div>
|
||||
<div class="flex-row-center">
|
||||
<div class="content" style="background: #fff; margin-top: 0.2rem">
|
||||
<div
|
||||
class="content-item"
|
||||
v-for="(item, i) in solution"
|
||||
:key="i"
|
||||
style="
|
||||
<div class="content-item" v-for="(item, i) in solution" :key="i" style="
|
||||
margin-bottom: 0.2rem;
|
||||
font-size: 0.18rem;
|
||||
line-height: 0.3rem;
|
||||
"
|
||||
>
|
||||
">
|
||||
{{ i + 1 + '、' + item.description }}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -87,22 +64,11 @@
|
|||
<div class="title-1">
|
||||
<DetalsTitle title="使用能力" type="ABILITY"></DetalsTitle>
|
||||
</div>
|
||||
<div
|
||||
class="flex-row-center combine-content"
|
||||
v-for="(item, i) in combineList"
|
||||
:key="i"
|
||||
style="display: block"
|
||||
>
|
||||
<div
|
||||
class="top"
|
||||
style="font-size: 0.24rem; text-align: center; margin-bottom: 0.3rem"
|
||||
>
|
||||
<div class="flex-row-center combine-content" v-for="(item, i) in combineList" :key="i" style="display: block">
|
||||
<div class="top" style="font-size: 0.24rem; text-align: center; margin-bottom: 0.3rem">
|
||||
{{ i == 0 ? '基础设施' : i == 1 ? '组件服务' : '数据资源' }}
|
||||
</div>
|
||||
<div
|
||||
class="data-count"
|
||||
style="font-size: 0.14rem; text-align: right; margin-bottom: 0.2rem"
|
||||
>
|
||||
<div class="data-count" style="font-size: 0.14rem; text-align: right; margin-bottom: 0.2rem">
|
||||
<span style="color: #909399">
|
||||
共
|
||||
{{
|
||||
|
@ -116,34 +82,24 @@
|
|||
</div>
|
||||
<div class="bottom" style="display: flex; align-items: flex-start">
|
||||
<div class="title" :class="'title' + i"></div>
|
||||
<div class="table-box">
|
||||
<el-table
|
||||
class="table"
|
||||
:data="item.list"
|
||||
stripe
|
||||
:header-cell-style="{ 'text-align': 'center' }"
|
||||
>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="资源名称"
|
||||
align="center"
|
||||
width="200"
|
||||
show-overflow-tooltip="true"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="platform"
|
||||
label="资源类型"
|
||||
align="center"
|
||||
width="100"
|
||||
show-overflow-tooltip="true"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="dept"
|
||||
label="能力来源"
|
||||
align="center"
|
||||
width="300"
|
||||
show-overflow-tooltip="true"
|
||||
></el-table-column>
|
||||
<div class="table-box" v-if="returnType == '典型赋能场景'">
|
||||
<el-table class="table" :data="item.list" stripe :header-cell-style="{ 'text-align': 'center' }">
|
||||
<el-table-column prop="name" label="资源名称" align="center" width="200"
|
||||
show-overflow-tooltip="true"></el-table-column>
|
||||
<el-table-column prop="type" label="资源类型" align="center" width="100"
|
||||
show-overflow-tooltip="true"></el-table-column>
|
||||
<el-table-column prop="dept" label="来源部门" align="center" width="300"
|
||||
show-overflow-tooltip="true"></el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
<div class="table-box" v-else>
|
||||
<el-table class="table" :data="item.list" stripe :header-cell-style="{ 'text-align': 'center' }">
|
||||
<el-table-column prop="name" label="资源名称" align="center" width="200"
|
||||
show-overflow-tooltip="true"></el-table-column>
|
||||
<el-table-column prop="platform" label="资源类型" align="center" width="100"
|
||||
show-overflow-tooltip="true"></el-table-column>
|
||||
<el-table-column prop="dept" label="能力来源" align="center" width="300"
|
||||
show-overflow-tooltip="true"></el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -155,59 +111,110 @@
|
|||
<div class="title-1">
|
||||
<DetalsTitle title="构建步骤" type="STEP"></DetalsTitle>
|
||||
</div>
|
||||
<div class="flex-row-center step-content">
|
||||
<el-steps direction="vertical" :space="150" :active="step.length">
|
||||
<div class="step-content">
|
||||
<!-- <el-steps direction="vertical" :space="150" :active="step.length">
|
||||
<el-step
|
||||
v-for="(item, i) in step"
|
||||
:key="i"
|
||||
:title="item.question"
|
||||
:description="item.answer"
|
||||
></el-step>
|
||||
</el-steps>
|
||||
</el-steps> -->
|
||||
<!-- <div v-for="(item,i) in step" :key="i">
|
||||
<div><div class="step-span" >{{i+1}}</div>
|
||||
<div class="step-question">第{{i+1}}步:{{item.question}}</div>
|
||||
<div v-for="itemson in item.answer" :key="itemson">
|
||||
{{itemson.answer}}
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="left-process">
|
||||
<div class="li1" v-for="(item, i) in step" :key="i">
|
||||
<div>
|
||||
<div class="node">
|
||||
|
||||
<div class="step-span">{{ i+ 1}}</div>
|
||||
<div>
|
||||
<div class="step-question">第{{ i+ 1}}步:{{ item.question }}</div>
|
||||
<div class="question-son" v-for="(itemson, i) in item.answer" :key="i">
|
||||
<img src="~@/assets/home/arrow.png" style="margin-right:8px" />{{ i+ 1}}>{{ itemson.answer }}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="borderLeft"></div>
|
||||
</div>
|
||||
<div class="advice"></div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<template v-else>
|
||||
<div class="area">
|
||||
<a-image style="width:615px;height:345px" :preview="false" :src="bgImg || imgSrcYyzy" />
|
||||
<div class="label-name">{{ detailInfoObj.name }} <span class="label">
|
||||
{{ detailInfoObj.type }}
|
||||
</span>
|
||||
<span class="label1">
|
||||
{{ detailInfoObj.area }}
|
||||
</span>
|
||||
</div>
|
||||
<a-button class="rukou" @click="openScene(detailInfoObj.sceneUrl)">
|
||||
进入场景
|
||||
</a-button>
|
||||
</div>
|
||||
<div class="area-desc">
|
||||
{{ detailInfoObj.description || '--' }}
|
||||
</div>
|
||||
</template>
|
||||
<home-footer></home-footer>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
import ApplicationTopDetails from './components/ApplicationTopDetails.vue'
|
||||
import DetalsTitle from '@/views/detailsAll/components/DetalsTitle'
|
||||
import ApplicationCommonProblem from '@/views/detailsAll/components/Application/ApplicationCommonProblem' //常见问题
|
||||
import HomeFooter from '@/views/newHome/components/Footer'
|
||||
import HomeHeader from '@/views/home/components/header'
|
||||
import detailBack from '@/views/home/detailBack.vue'
|
||||
import { ref, onMounted, onBeforeUnmount } from 'vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { getIntegrationDetail } from '@/api/home'
|
||||
import mybus from '@/myplugins/mybus'
|
||||
import { message } from 'ant-design-vue'
|
||||
const router = useRouter()
|
||||
const scrollTop = ref(0)
|
||||
const domArr = ref([])
|
||||
const painPoint = ref([])
|
||||
const solution = ref([])
|
||||
const step = ref([])
|
||||
const bgImg = ref('')
|
||||
const dataSourceCount = ref(0)
|
||||
const infrastructureCount = ref(0)
|
||||
const componentCount = ref(0)
|
||||
const id = router.currentRoute.value.query.id
|
||||
const returnType = router.currentRoute.value.query.type
|
||||
const hiddenBackFlag = router.currentRoute.value.query.hiddenBackFlag
|
||||
document.documentElement.style.transition = 'all 0.3s ease'
|
||||
document.documentElement.scrollTop = 0
|
||||
document.body.style.transition = 'all 0.3s ease'
|
||||
document.body.scrollTop = 0
|
||||
mybus.on('flyToView', (id) => {
|
||||
import ApplicationTopDetails from './components/ApplicationTopDetails.vue'
|
||||
import DetalsTitle from '@/views/detailsAll/components/DetalsTitle'
|
||||
import ApplicationCommonProblem from '@/views/detailsAll/components/Application/ApplicationCommonProblem' //常见问题
|
||||
import HomeFooter from '@/views/newHome/components/Footer'
|
||||
import HomeHeader from '@/views/home/components/header'
|
||||
import detailBack from '@/views/home/detailBack.vue'
|
||||
import { ref, onMounted, onBeforeUnmount } from 'vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { getIntegrationDetail } from '@/api/home'
|
||||
import mybus from '@/myplugins/mybus'
|
||||
import { message } from 'ant-design-vue'
|
||||
const router = useRouter()
|
||||
const scrollTop = ref(0)
|
||||
const domArr = ref([])
|
||||
const painPoint = ref([])
|
||||
const solution = ref([])
|
||||
const step = ref([])
|
||||
const bgImg = ref('')
|
||||
const dataSourceCount = ref(0)
|
||||
const infrastructureCount = ref(0)
|
||||
const componentCount = ref(0)
|
||||
const id = router.currentRoute.value.query.id
|
||||
const returnType = router.currentRoute.value.query.type
|
||||
const districtType = router.currentRoute.value.query.districtType
|
||||
const hiddenBackFlag = router.currentRoute.value.query.hiddenBackFlag
|
||||
const imgSrcYyzy = ref(require('@/assets/newHome/empty.png'))
|
||||
document.documentElement.style.transition = 'all 0.3s ease'
|
||||
document.documentElement.scrollTop = 0
|
||||
document.body.style.transition = 'all 0.3s ease'
|
||||
document.body.scrollTop = 0
|
||||
mybus.on('flyToView', (id) => {
|
||||
let top =
|
||||
document.querySelector('#' + id) &&
|
||||
document.querySelector('#' + id).offsetTop - 50
|
||||
document.documentElement.scrollTop = top
|
||||
document.body.scrollTop = top
|
||||
})
|
||||
})
|
||||
|
||||
const navList = ref([
|
||||
const navList = ref([
|
||||
{
|
||||
name: '场景痛点',
|
||||
key: 'integration-pain-point',
|
||||
|
@ -224,11 +231,11 @@
|
|||
name: '构建步骤',
|
||||
key: 'integration-step',
|
||||
},
|
||||
])
|
||||
])
|
||||
|
||||
const selectNow = ref('integration-pain-point')
|
||||
const selectNow = ref('integration-pain-point')
|
||||
|
||||
const useWayShowList = ref([
|
||||
const useWayShowList = ref([
|
||||
{
|
||||
title: '归属部门',
|
||||
info: {
|
||||
|
@ -243,9 +250,9 @@
|
|||
providerMobile: '联系人电话',
|
||||
},
|
||||
},
|
||||
])
|
||||
])
|
||||
|
||||
const combineList = ref([
|
||||
const combineList = ref([
|
||||
{
|
||||
title: '基础设施',
|
||||
list: [],
|
||||
|
@ -258,10 +265,10 @@
|
|||
title: '数据资源',
|
||||
list: [],
|
||||
},
|
||||
])
|
||||
const detailInfoObj = ref({})
|
||||
])
|
||||
const detailInfoObj = ref({})
|
||||
|
||||
onMounted(() => {
|
||||
onMounted(() => {
|
||||
window.addEventListener('scroll', () => {
|
||||
domArr.value = document.querySelectorAll('.scrollBox')
|
||||
scrollTop.value =
|
||||
|
@ -285,21 +292,21 @@
|
|||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
const selectNav = (key) => {
|
||||
const selectNav = (key) => {
|
||||
selectNow.value = key
|
||||
mybus.emit('flyToView', selectNow.value)
|
||||
}
|
||||
}
|
||||
|
||||
const getAttrValue = (fuseAttrList, text) => {
|
||||
const getAttrValue = (fuseAttrList, text) => {
|
||||
let _obj = fuseAttrList.find((v) => v.attrType === text) || {}
|
||||
let data = JSON.parse(_obj.attrValue || '[]') || []
|
||||
return data
|
||||
}
|
||||
}
|
||||
|
||||
// 融合服务--详情
|
||||
const getIntegrationServicesDeatil = (id) => {
|
||||
// 融合服务--详情
|
||||
const getIntegrationServicesDeatil = (id) => {
|
||||
getIntegrationDetail(id).then(
|
||||
(res) => {
|
||||
if (res.data.code !== 0) {
|
||||
|
@ -311,8 +318,7 @@
|
|||
componentCount.value = res.data.data.componentCount || 0
|
||||
// 资源属性
|
||||
let fuseAttrList = res.data.data.fuseAttrList || []
|
||||
// 融合关系
|
||||
let fuseResourceList = res.data.data.fuseResourceList || []
|
||||
|
||||
let questionValue =
|
||||
fuseAttrList.find((v) => v.attrType === '常见问题') || {}
|
||||
let questionObj = {
|
||||
|
@ -321,13 +327,42 @@
|
|||
}
|
||||
painPoint.value = getAttrValue(fuseAttrList, '场景痛点')
|
||||
solution.value = getAttrValue(fuseAttrList, '解决方案')
|
||||
step.value = getAttrValue(fuseAttrList, '使用步骤')
|
||||
|
||||
step.value = getAttrValue(fuseAttrList, '构建步骤')
|
||||
|
||||
bgImg.value =
|
||||
fuseAttrList.find((v) => v.attrType === '服务图片').attrValue || ''
|
||||
let areaObj = {
|
||||
attrType: '应用领域',
|
||||
attrValue: '',
|
||||
}
|
||||
if (returnType === '典型赋能场景') {
|
||||
let fuseResourceList = res.data.data.fuseAttrList || []
|
||||
|
||||
combineList.value.forEach((item) => {
|
||||
|
||||
let arr = []
|
||||
let resource = fuseResourceList.filter(
|
||||
(v) => v.attrType == item.title
|
||||
)
|
||||
|
||||
// let a=resource[0].attrValue
|
||||
let resourceArrList = JSON.parse(resource[0].attrValue)
|
||||
if (resourceArrList.length > 0) {
|
||||
|
||||
arr = resourceArrList.map((res) => ({
|
||||
name: res.name,
|
||||
dept: res.dept,
|
||||
type: res.type,
|
||||
|
||||
}))
|
||||
item.list = arr
|
||||
}
|
||||
|
||||
})
|
||||
} else {
|
||||
// 融合关系
|
||||
let fuseResourceList = res.data.data.fuseResourceList || []
|
||||
combineList.value.forEach((item) => {
|
||||
let arr = []
|
||||
let resource = fuseResourceList.filter(
|
||||
|
@ -367,6 +402,9 @@
|
|||
|
||||
item.list = arr
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
detailInfoObj.value.infoList = []
|
||||
detailInfoObj.value.infoList.push(questionObj)
|
||||
detailInfoObj.value.infoList.push(areaObj)
|
||||
|
@ -375,10 +413,10 @@
|
|||
message.error(err)
|
||||
}
|
||||
)
|
||||
}
|
||||
getIntegrationServicesDeatil(id)
|
||||
}
|
||||
getIntegrationServicesDeatil(id)
|
||||
|
||||
function handleOpenUrl(type) {
|
||||
function handleOpenUrl(type) {
|
||||
let obj =
|
||||
(detailInfoObj.value.fuseAttrList || []).find(
|
||||
(v) => v.attrType == type
|
||||
|
@ -392,36 +430,88 @@
|
|||
'hisense_office/onlinePreview?url=' +
|
||||
btoa(encodeURI(url))
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
onBeforeUnmount(() => {
|
||||
onBeforeUnmount(() => {
|
||||
mybus.off('flyToView')
|
||||
})
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.flex-row-between {
|
||||
.area {
|
||||
padding-top: 93px;
|
||||
text-align: center;
|
||||
margin-bottom: 32px;
|
||||
|
||||
.label-name {
|
||||
font-size: 26px;
|
||||
color: #212121;
|
||||
font-weight: bold;
|
||||
margin-top: 32px;
|
||||
}
|
||||
|
||||
|
||||
.label {
|
||||
padding: 0.01rem 0.1rem;
|
||||
margin-right: 0.1rem;
|
||||
border-radius: 0.13rem;
|
||||
font-size: 14px;
|
||||
color: #fff;
|
||||
background: #7294c8;
|
||||
}
|
||||
|
||||
.label1 {
|
||||
padding: 0.01rem 0.1rem;
|
||||
margin-right: 0.1rem;
|
||||
border-radius: 0.13rem;
|
||||
font-size: 14px;
|
||||
color: #fff;
|
||||
background: #c66132;
|
||||
}
|
||||
|
||||
.rukou {
|
||||
margin-top: 24px;
|
||||
background: #0058e1;
|
||||
color: #ffffff;
|
||||
width: 90px;
|
||||
height: 32px;
|
||||
border-radius: 2px;
|
||||
border: 1px #0058e1 solid;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
.area-desc {
|
||||
background: #f6f7f9;
|
||||
padding: 24px;
|
||||
width: 1300px;
|
||||
margin-left: 343px;
|
||||
margin-bottom: 24px;
|
||||
}
|
||||
|
||||
.flex-row-between {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
}
|
||||
|
||||
.flex-row-start {
|
||||
.flex-row-start {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
}
|
||||
|
||||
.flex-row-center {
|
||||
.flex-row-center {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
|
||||
.IntegrationServicesDetails {
|
||||
.IntegrationServicesDetails {
|
||||
.fixed {
|
||||
position: fixed !important;
|
||||
z-index: 2000;
|
||||
|
@ -429,7 +519,7 @@
|
|||
left: 0;
|
||||
}
|
||||
|
||||
.fixed2 > div:nth-of-type(3) {
|
||||
.fixed2>div:nth-of-type(3) {
|
||||
margin-top: 0.84rem;
|
||||
}
|
||||
|
||||
|
@ -467,9 +557,9 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.use-way {
|
||||
.use-way {
|
||||
padding: 0.8rem 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
@ -512,11 +602,9 @@
|
|||
height: 1.5rem;
|
||||
width: 6.2rem;
|
||||
border-radius: 0.2rem;
|
||||
background: linear-gradient(
|
||||
to right,
|
||||
background: linear-gradient(to right,
|
||||
rgba(113, 132, 252, 0.4),
|
||||
rgba(148, 163, 252, 0.4)
|
||||
);
|
||||
rgba(148, 163, 252, 0.4));
|
||||
padding: 0 0.3rem;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
|
@ -547,9 +635,9 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.pain-point {
|
||||
.pain-point {
|
||||
padding: 0.8rem 0;
|
||||
background: rgb(247, 248, 250);
|
||||
|
||||
|
@ -567,6 +655,7 @@
|
|||
background: url('~@/assets/home/fn/cjtd.png') no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
.cjtd img {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
|
@ -583,9 +672,9 @@
|
|||
margin: 0rem 0rem 0.1rem 0.1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.solution {
|
||||
.solution {
|
||||
padding: 0.8rem 0;
|
||||
background: rgb(247, 248, 250);
|
||||
|
||||
|
@ -597,9 +686,9 @@
|
|||
margin: 0.3rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.step {
|
||||
.step {
|
||||
padding: 0.8rem 0;
|
||||
background: rgb(247, 248, 250);
|
||||
|
||||
|
@ -608,23 +697,92 @@
|
|||
padding: 0.3rem;
|
||||
background: #fff;
|
||||
|
||||
:deep(.el-step__description.is-finish) {
|
||||
color: #333;
|
||||
line-height: 0.24rem;
|
||||
margin-top: 0.05rem;
|
||||
.left-process {
|
||||
|
||||
padding-left: 18px;
|
||||
padding-top: 24px;
|
||||
|
||||
.li1 {
|
||||
list-style: none;
|
||||
box-sizing: border-box;
|
||||
padding-left: 20px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
/deep/ .el-step__title {
|
||||
font-size: 18px;
|
||||
.borderLeft {
|
||||
width: 1px;
|
||||
height: 100%;
|
||||
background-color: #e8f0fc;
|
||||
position: absolute;
|
||||
top: 11.225px;
|
||||
bottom: 0;
|
||||
left: -1px;
|
||||
}
|
||||
|
||||
/deep/ .el-step__description {
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
|
||||
.step-question {
|
||||
color: #0058e1;
|
||||
font-weight: bold;
|
||||
font-size: 20px;
|
||||
padding-top: 8px;
|
||||
margin-left: 12px;
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.ability {
|
||||
.question-son {
|
||||
background: #f6f7f9;
|
||||
font-size: 16px;
|
||||
color: #414040;
|
||||
margin-left: 12px;
|
||||
line-height: 24px;
|
||||
padding: 12px 0px 12px 16px;
|
||||
}
|
||||
|
||||
.node {
|
||||
|
||||
cursor: pointer;
|
||||
font-size: 16px;
|
||||
line-height: 22.5px;
|
||||
font-weight: 500;
|
||||
color: #212121;
|
||||
}
|
||||
|
||||
.step-span {
|
||||
z-index: 1;
|
||||
color: #0058e1;
|
||||
width: 50px;
|
||||
height: 41px;
|
||||
position: relative;
|
||||
font-size: 30px;
|
||||
font-weight: bold;
|
||||
margin-left: -42px;
|
||||
padding-left: 14px;
|
||||
padding-top: 6px;
|
||||
float: left;
|
||||
background: url('~@/assets/home/step.png') no-repeat;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.advice {
|
||||
font-size: 10px;
|
||||
color: #0058e1;
|
||||
opacity: 0.1;
|
||||
padding-bottom: 40px;
|
||||
}
|
||||
|
||||
.li1:last-child .borderLeft {
|
||||
display: none;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
.ability {
|
||||
padding: 0.8rem 0;
|
||||
background: rgb(247, 248, 250);
|
||||
|
||||
|
@ -667,6 +825,7 @@
|
|||
background: url('~@/assets/home/fn/sjzy.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
}
|
||||
|
||||
.table-box {
|
||||
height: 3.45rem;
|
||||
flex: 1;
|
||||
|
@ -677,8 +836,8 @@
|
|||
// width: 100%;
|
||||
font-size: 16px;
|
||||
}
|
||||
.data-count {
|
||||
}
|
||||
|
||||
.data-count {}
|
||||
}
|
||||
|
||||
.name-box {
|
||||
|
@ -709,5 +868,5 @@
|
|||
width: 50%;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|