Merge branch 'hi-ucs-dev' into release

This commit is contained in:
a0049873 2023-01-06 11:41:37 +08:00
commit 2da122302f
20 changed files with 1161 additions and 673 deletions

BIN
back/src/assets/img/del.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 229 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -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
},

View File

@ -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
},

View File

@ -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>

View File

@ -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" >删除

View File

@ -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;

View File

@ -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>

View File

@ -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;

Binary file not shown.

After

Width:  |  Height:  |  Size: 552 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 475 B

View File

@ -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">
@ -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;

View File

@ -58,6 +58,7 @@ function toView(item) {
path: '/integrationServicesDetails',
query: {
id: item.id,
districtType:item.district,
type:'典型赋能场景'
},
})

View File

@ -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)

View File

@ -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;

View File

@ -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,17 +111,66 @@
<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>
@ -194,7 +199,9 @@
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'
@ -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)
@ -400,6 +438,58 @@
</script>
<style lang="less" scoped>
.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;
@ -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;
@ -567,6 +655,7 @@
background: url('~@/assets/home/fn/cjtd.png') no-repeat;
background-size: 100%;
}
.cjtd img {
width: 100%;
height: 100%;
@ -608,19 +697,88 @@
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;
}
.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;
}
}
}
}
@ -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 {