Merge branch 'hi-ucs-dev' of http://124.222.94.39:3001/wuhongjian/hi-ucs into hi-ucs-dev
This commit is contained in:
commit
6125962265
|
@ -1,8 +1,8 @@
|
||||||
<!--
|
<!--
|
||||||
* @Author: hisense.wuhongjian
|
* @Author: hisense.wuhongjian
|
||||||
* @Date: 2022-04-11 10:11:40
|
* @Date: 2022-04-11 10:11:40
|
||||||
* @LastEditors: hisense.liangjunhua
|
* @LastEditors: hisense.wuhongjian
|
||||||
* @LastEditTime: 2022-06-23 18:30:45
|
* @LastEditTime: 2022-06-29 19:38:17
|
||||||
* @Description: 告诉大家这是什么
|
* @Description: 告诉大家这是什么
|
||||||
-->
|
-->
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
|
@ -42,8 +42,9 @@
|
||||||
<% if (process.env.VUE_APP_NODE_ENV === 'dev') { %>
|
<% if (process.env.VUE_APP_NODE_ENV === 'dev') { %>
|
||||||
<script>
|
<script>
|
||||||
// window.SITE_CONFIG['apiURL'] = 'http://15.2.21.166:8888/renren-admin';
|
// window.SITE_CONFIG['apiURL'] = 'http://15.2.21.166:8888/renren-admin';
|
||||||
window.SITE_CONFIG['apiURL'] = 'http://124.222.94.39:8888/renren-admin';
|
// window.SITE_CONFIG['apiURL'] = 'http://124.222.94.39:8888/renren-admin';
|
||||||
// window.SITE_CONFIG['apiURL'] = 'http://15.2.21.238:8888/renren-admin';
|
window.SITE_CONFIG['apiURL'] = 'http://15.2.21.238:8888/renren-admin';
|
||||||
|
window.SITE_CONFIG['previewUrl'] = 'http://15.2.21.238:9796/';
|
||||||
// window.SITE_CONFIG['apiURL'] = 'http://15.2.23.141:8000/renren-admin';
|
// window.SITE_CONFIG['apiURL'] = 'http://15.2.23.141:8000/renren-admin';
|
||||||
// WebSocket地址
|
// WebSocket地址
|
||||||
window.SITE_CONFIG['socketURL'] ='ws://localhost:8080/renren-admin/websocket';
|
window.SITE_CONFIG['socketURL'] ='ws://localhost:8080/renren-admin/websocket';
|
||||||
|
|
|
@ -20,8 +20,8 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;">
|
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle" style="width: 100%;">
|
||||||
<el-table-column prop="orderId" :label="$t('dataresources.resourcesName')" header-align="center" align="center"></el-table-column>
|
<el-table-column prop="productName" :label="$t('dataresources.resourcesName')" header-align="center" align="center"></el-table-column>
|
||||||
<el-table-column prop="productName" :label="$t('dataresources.resourcesCode')" header-align="center" align="center"></el-table-column>
|
<el-table-column prop="orderId" :label="$t('dataresources.resourcesCode')" header-align="center" align="center"></el-table-column>
|
||||||
<el-table-column prop="payAmount" :label="$t('dataresources.resourcesProvide')" header-align="center" align="center"></el-table-column>
|
<el-table-column prop="payAmount" :label="$t('dataresources.resourcesProvide')" header-align="center" align="center"></el-table-column>
|
||||||
<el-table-column prop="status" :label="$t('dataresources.resourcesAbstract')" header-align="center" align="center"></el-table-column>
|
<el-table-column prop="status" :label="$t('dataresources.resourcesAbstract')" header-align="center" align="center"></el-table-column>
|
||||||
<el-table-column prop="payAt" :label="$t('dataresources.putOnDate')" header-align="center" align="center"></el-table-column>
|
<el-table-column prop="payAt" :label="$t('dataresources.putOnDate')" header-align="center" align="center"></el-table-column>
|
||||||
|
@ -50,8 +50,8 @@
|
||||||
<script>
|
<script>
|
||||||
import mixinViewModule from '@/mixins/view-module'
|
import mixinViewModule from '@/mixins/view-module'
|
||||||
// import AddOrUpdate from './order-add-or-update'
|
// import AddOrUpdate from './order-add-or-update'
|
||||||
import {addDynamicRoute} from "@/router";
|
import { addDynamicRoute } from '@/router'
|
||||||
import RelateApplication from "./bsabilityai-relate-application.vue"
|
import RelateApplication from './bsabilityai-relate-application.vue'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
mixins: [mixinViewModule],
|
mixins: [mixinViewModule],
|
||||||
|
@ -79,31 +79,31 @@ export default {
|
||||||
},
|
},
|
||||||
components: {
|
components: {
|
||||||
// AddOrUpdate,
|
// AddOrUpdate,
|
||||||
RelateApplication,
|
RelateApplication
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
// 重置
|
// 重置
|
||||||
resetDataList () {
|
resetDataList () {
|
||||||
this.dataForm=this.noDataForm;
|
this.dataForm = this.noDataForm
|
||||||
this.page=1; // 当前页码
|
this.page = 1 // 当前页码
|
||||||
this.query();
|
this.query()
|
||||||
},
|
},
|
||||||
// 点击关联应用按钮
|
// 点击关联应用按钮
|
||||||
showRelateApplication (row) {
|
showRelateApplication (row) {
|
||||||
this.$http.get(`dataResourceRel/queryApplicationRelByResourceId?referenceId=${row.id}`).then(({ data: res }) => {
|
this.$http.get(`dataResourceRel/queryApplicationRelByResourceId?referenceId=${row.id}`).then(({ data: res }) => {
|
||||||
if (res && res.data) {
|
if (res && res.data) {
|
||||||
this.relateApplicationVisible = true;
|
this.relateApplicationVisible = true
|
||||||
this.relateInfo = {
|
this.relateInfo = {
|
||||||
id: row.id,
|
id: row.id,
|
||||||
responseData: res.data,
|
responseData: res.data,
|
||||||
linkType: '2'
|
linkType: '2'
|
||||||
};
|
}
|
||||||
}
|
}
|
||||||
}).catch(() => { })
|
}).catch(() => { })
|
||||||
},
|
},
|
||||||
// 是否展示关联应用弹窗
|
// 是否展示关联应用弹窗
|
||||||
handleIsShowRelatePopup (type) {
|
handleIsShowRelatePopup (type) {
|
||||||
this.relateApplicationVisible = type;
|
this.relateApplicationVisible = type
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -246,7 +246,7 @@ export default {
|
||||||
padding: 24px;
|
padding: 24px;
|
||||||
h3 {
|
h3 {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
color:#212121
|
color: #212121;
|
||||||
}
|
}
|
||||||
p {
|
p {
|
||||||
width: 78%;
|
width: 78%;
|
||||||
|
@ -340,7 +340,6 @@ export default {
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
padding-bottom: 0;
|
padding-bottom: 0;
|
||||||
border-bottom: 0;
|
border-bottom: 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
.title:before {
|
.title:before {
|
||||||
content: "";
|
content: "";
|
||||||
|
@ -353,7 +352,6 @@ export default {
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
margin-top: 6px;
|
margin-top: 6px;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
::v-deep .agreeOr > div {
|
::v-deep .agreeOr > div {
|
||||||
|
@ -363,7 +361,6 @@ export default {
|
||||||
margin-right: 10px;
|
margin-right: 10px;
|
||||||
margin-left: 32px;
|
margin-left: 32px;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
::v-deep .agreeOr > div:last-of-type {
|
::v-deep .agreeOr > div:last-of-type {
|
||||||
margin-top: 15px;
|
margin-top: 15px;
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* @Author: hisense.liangjunhua
|
* @Author: hisense.liangjunhua
|
||||||
* @Date: 2022-06-27 11:27:22
|
* @Date: 2022-06-27 11:27:22
|
||||||
* @LastEditors: hisense.liangjunhua
|
* @LastEditors: hisense.liangjunhua
|
||||||
* @LastEditTime: 2022-06-27 11:50:45
|
* @LastEditTime: 2022-06-29 16:31:26
|
||||||
* @Description: 能力申请
|
* @Description: 能力申请
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
|
@ -43,11 +43,7 @@
|
||||||
<el-table-column label="申请人" header-align="center" align="center">
|
<el-table-column label="申请人" header-align="center" align="center">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{
|
<span>{{
|
||||||
(scope.row.params && scope.row.params.user) ||
|
(scope.row.params && scope.row.params.tAbilityApplicationDTOList[0].user)
|
||||||
(scope.row.params && scope.row.params.applyUserName) ||
|
|
||||||
(scope.row.params && scope.row.params.userName) ||
|
|
||||||
(scope.row.params && scope.row.params.undercarriageUserName)||
|
|
||||||
(scope.row.params && scope.row.params.name)
|
|
||||||
}}</span>
|
}}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
@ -58,13 +54,7 @@
|
||||||
>
|
>
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<span>{{
|
<span>{{
|
||||||
(scope.row.params && scope.row.params.system) ||
|
(scope.row.params && scope.row.params.tAbilityApplicationDTOList[0].title)
|
||||||
(scope.row.params && scope.row.params.demandSubject) ||
|
|
||||||
(scope.row.params &&
|
|
||||||
scope.row.params.resourceDTO &&
|
|
||||||
scope.row.params.resourceDTO.name) ||
|
|
||||||
(scope.row.params && scope.row.params.undercarriageReason)||
|
|
||||||
(scope.row.params && scope.row.params.comment)
|
|
||||||
}}</span>
|
}}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
@ -104,12 +94,12 @@
|
||||||
@click="taskHandle(scope.row)"
|
@click="taskHandle(scope.row)"
|
||||||
>{{ $t("manage") }}</el-button
|
>{{ $t("manage") }}</el-button
|
||||||
>
|
>
|
||||||
<el-button
|
<!-- <el-button
|
||||||
type="text"
|
type="text"
|
||||||
size="small"
|
size="small"
|
||||||
@click="taskDetail(scope.row)"
|
@click="taskDetail(scope.row)"
|
||||||
>{{ $t("process.viewFlowImage") }}</el-button
|
>{{ $t("process.viewFlowImage") }}</el-button
|
||||||
>
|
> -->
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
@ -143,7 +133,8 @@ export default {
|
||||||
},
|
},
|
||||||
dataForm: {
|
dataForm: {
|
||||||
taskName: '',
|
taskName: '',
|
||||||
taskId: ''
|
taskId: '',
|
||||||
|
processDefinitionKey: 'abilityprocess_v2'
|
||||||
},
|
},
|
||||||
processInstanceId: ''
|
processInstanceId: ''
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,459 @@
|
||||||
|
<!--
|
||||||
|
* @Author: hisense.liangjunhua
|
||||||
|
* @Date: 2022-06-29 15:59:51
|
||||||
|
* @LastEditors: hisense.liangjunhua
|
||||||
|
* @LastEditTime: 2022-06-29 18:17:07
|
||||||
|
* @Description: 告诉大家这是什么
|
||||||
|
-->
|
||||||
|
<!-- 流程业务表单 -->
|
||||||
|
<template>
|
||||||
|
<el-card shadow="never" class="aui-card--fill" :key='showKey'>
|
||||||
|
<!-- 申请人详情 -->
|
||||||
|
<div>
|
||||||
|
<h3>申请人信息</h3>
|
||||||
|
<div class="big-BOX">
|
||||||
|
<p>
|
||||||
|
<span class="text">申请人:<span> {{dataForm.content.user || '--'}}</span></span>
|
||||||
|
<span class="text">电话:<span>{{dataForm.content.phone || '--'}}</span></span>
|
||||||
|
<span class="text">单位:<span>{{dataForm.content.unit || '--'}}</span></span>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<span class="text"> 能力申请标题:<span> {{dataForm.content.title|| '--'}}</span></span>
|
||||||
|
<span class="text">应用系统:<span>{{dataForm.content.applicationSystem || '--'}}</span></span>
|
||||||
|
<span class="text">应用场景:<span> {{dataForm.content.applicationSceneStr || '--'}}</span></span>
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<span> 能力应用期望效果:<span> {{dataForm.content.effectWish|| '--'}}</span></span>
|
||||||
|
</p>
|
||||||
|
<p v-if="dataForm.content.enclosure">
|
||||||
|
<span> 申请附件:<span> {{dataForm.content.enclosure|| '--'}}<button @click="downloadFile2(dataForm.content.enclosure)">预览</button></span></span>
|
||||||
|
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 申请能力 -->
|
||||||
|
<div class="AbilityApply">
|
||||||
|
<h3>申请能力</h3>
|
||||||
|
<ul v-for="item in dataList" :key="item.id">
|
||||||
|
<!-- <li class="title">{{item.address}}</li> -->
|
||||||
|
<li class="clearfix">
|
||||||
|
<img
|
||||||
|
src="~@/assets/img/imgLeft.png"
|
||||||
|
/>
|
||||||
|
<div>
|
||||||
|
<h2>{{item.name}}<span>{{item.type}}</span></h2>
|
||||||
|
<p>{{item.describe}}</p>
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
<!-- 流程综合组件 -->
|
||||||
|
<!-- <ren-process-multiple
|
||||||
|
v-if="processVisible"
|
||||||
|
updateInstanceIdUrl="/processForm/tabilityapplication/updateInstanceId"
|
||||||
|
saveFormUrl="/processForm/tabilityapplication"
|
||||||
|
dataFormName="dataForm"
|
||||||
|
ref="renProcessMultiple"
|
||||||
|
></ren-process-multiple> -->
|
||||||
|
|
||||||
|
<!-- 审批 -->
|
||||||
|
<div class="agreeOr">
|
||||||
|
<h3>审批</h3>
|
||||||
|
<div>
|
||||||
|
<el-radio-group v-model="agreeOrList" style="width:230px;">
|
||||||
|
<el-radio-button label="同意" class="blueAll">同意</el-radio-button>
|
||||||
|
<el-radio-button label="退回" class="redAll">退回</el-radio-button>
|
||||||
|
</el-radio-group>
|
||||||
|
<el-input v-if="agreeOrList ==='同意' " v-model="inputAgree" placeholder="请输入同意意见"></el-input>
|
||||||
|
<el-input v-if="agreeOrList ==='退回'" v-model="inputNo" placeholder="请输入退回意见"></el-input>
|
||||||
|
<el-button class="inputBule" @click="agreeOrNot">提交</el-button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- 流程详情 -->
|
||||||
|
<ren-process-detail></ren-process-detail>
|
||||||
|
</el-card>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
// 引入工作流公共方法
|
||||||
|
import processModule from '@/mixins/process-module'
|
||||||
|
import debounce from 'lodash/debounce'
|
||||||
|
import qs from 'qs'
|
||||||
|
import RenProcessDetail from '@/components/ren-process-detail/src/ren-process-detail'
|
||||||
|
export default {
|
||||||
|
// 注入公共方法
|
||||||
|
mixins: [processModule],
|
||||||
|
data () {
|
||||||
|
return {
|
||||||
|
visible: true,
|
||||||
|
showKey: 0,
|
||||||
|
// 表单属性是否可编辑
|
||||||
|
// fieldDisabled: false,
|
||||||
|
// dataForm: {
|
||||||
|
// id: '',
|
||||||
|
// user: '',
|
||||||
|
// phone: '',
|
||||||
|
// unit: '',
|
||||||
|
// area: '',
|
||||||
|
// system: '',
|
||||||
|
// scene: '',
|
||||||
|
// basis: ''
|
||||||
|
// }
|
||||||
|
dataForm: {
|
||||||
|
id: '',
|
||||||
|
content: {}
|
||||||
|
},
|
||||||
|
dataList: [],
|
||||||
|
inputAgree: '',
|
||||||
|
inputNo: '',
|
||||||
|
agreeOrList: '同意'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created () {
|
||||||
|
// 将业务KEY赋值给表单
|
||||||
|
console.log('params=================>', this.$route, this.$route.params)
|
||||||
|
this.dataForm.taskId = this.$route.params.taskId
|
||||||
|
this.init()
|
||||||
|
// // 流程回调
|
||||||
|
var callbacks = {
|
||||||
|
startProcessSuccessCallback: this.closeCurrentTab,
|
||||||
|
startProcessErrorCallback: this.startProcessErrorCallback,
|
||||||
|
taskHandleSuccessCallback: this.closeCurrentTab,
|
||||||
|
taskHandleErrorCallback: this.taskHandleErrorCallback,
|
||||||
|
formSaveSuccessCallback: null,
|
||||||
|
formSaveErrorCallback: null
|
||||||
|
}
|
||||||
|
// 初始化综合组件
|
||||||
|
this.initProcessMultiple(callbacks)
|
||||||
|
},
|
||||||
|
computed: {
|
||||||
|
// dataRule () {
|
||||||
|
// return {
|
||||||
|
// inputAgree: [
|
||||||
|
// { required: true, message: this.$t('validate.required'), trigger: 'blur' }
|
||||||
|
// ],
|
||||||
|
// inputNo: [
|
||||||
|
// { required: true, message: this.$t('validate.required'), trigger: 'blur' }
|
||||||
|
// ]
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
},
|
||||||
|
components: {
|
||||||
|
RenProcessDetail
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
init () {
|
||||||
|
// this.visible = true
|
||||||
|
this.$nextTick(() => {
|
||||||
|
// this.$refs.dataForm.resetFields()
|
||||||
|
if (this.dataForm.taskId) {
|
||||||
|
// 如业务KEY已存在,不允许编辑
|
||||||
|
// this.fieldDisabled = true
|
||||||
|
this.getInfo()
|
||||||
|
console.log(this.dataForm, 'init')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
},
|
||||||
|
downloadFile2 (url) {
|
||||||
|
window.open(
|
||||||
|
window.SITE_CONFIG.previewUrl +
|
||||||
|
'hisense_office/onlinePreview?url=' +
|
||||||
|
btoa(encodeURI(url))
|
||||||
|
)
|
||||||
|
},
|
||||||
|
// 获取信息
|
||||||
|
getInfo () {
|
||||||
|
this.$http
|
||||||
|
.get(`/act/task/getTaskVariables?taskId=${this.dataForm.taskId}&variableName=tAbilityApplicationDTOList`)
|
||||||
|
.then(({ data: res }) => {
|
||||||
|
if (res.code !== 0) {
|
||||||
|
console.log(res.data)
|
||||||
|
return this.$message.error(res.msg)
|
||||||
|
}
|
||||||
|
console.log(res.data, this.dataForm, 'elas============================')
|
||||||
|
if (res.data.tAbilityApplicationDTOList[0].applicationScene) {
|
||||||
|
res.data.tAbilityApplicationDTOList[0].applicationSceneStr = ''
|
||||||
|
res.data.tAbilityApplicationDTOList[0].applicationScene.map((val, index) => {
|
||||||
|
res.data.tAbilityApplicationDTOList[0].applicationSceneStr += val
|
||||||
|
if (index < res.data.tAbilityApplicationDTOList[0].applicationScene.length - 1) {
|
||||||
|
res.data.tAbilityApplicationDTOList[0].applicationSceneStr += '、'
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
this.dataForm.content = res.data.tAbilityApplicationDTOList[0]
|
||||||
|
res.data.tAbilityApplicationDTOList.map(val => {
|
||||||
|
this.$http.get('/resource/' + val.resourceId).then(res1 => {
|
||||||
|
console.log(res1.data.data, '1111111111111111111111111111111111')
|
||||||
|
this.dataList.push({
|
||||||
|
name: res1.data.data.name,
|
||||||
|
type: res1.data.data.type,
|
||||||
|
describe: res1.data.data.description
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
})
|
||||||
|
.catch(() => {})
|
||||||
|
},
|
||||||
|
// 申请能力
|
||||||
|
applyData () {
|
||||||
|
this.$http
|
||||||
|
.get(`/resource/select/${this.dataForm.instanceId}`)
|
||||||
|
.then(({ data: res }) => {
|
||||||
|
if (res.code !== 0) {
|
||||||
|
console.log(res.data, 'hhhhh')
|
||||||
|
// return this.$message.error(res.msg)
|
||||||
|
}
|
||||||
|
// console.log(res.data, 'elas')
|
||||||
|
// this.dataForm.content = res.data
|
||||||
|
// console.log(this.dataForm, 'ela')
|
||||||
|
})
|
||||||
|
.catch(() => {})
|
||||||
|
},
|
||||||
|
// 同意与退回
|
||||||
|
agreeOrNot: debounce(function () {
|
||||||
|
if (this.agreeOrList === '同意') {
|
||||||
|
console.log('this.dataForm', this.dataForm)
|
||||||
|
const params = qs.stringify({
|
||||||
|
taskId: this.dataForm.taskId,
|
||||||
|
comment: this.inputAgree
|
||||||
|
})
|
||||||
|
console.log(params)
|
||||||
|
this.$http.post('/act/task/complete?' + params).then(({ data: res }) => {
|
||||||
|
if (res.code !== 0) {
|
||||||
|
this.$message.error(res.msg)
|
||||||
|
if (this.callbacks.taskHandleErrorCallback) {
|
||||||
|
this.callbacks.taskHandleErrorCallback(res)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.$message({
|
||||||
|
message: this.$t('prompt.success'),
|
||||||
|
type: 'success',
|
||||||
|
duration: 500,
|
||||||
|
onClose: () => {
|
||||||
|
this.visible = false
|
||||||
|
if (this.callbacks.taskHandleSuccessCallback) {
|
||||||
|
this.callbacks.taskHandleSuccessCallback(res)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}).catch(() => {})
|
||||||
|
} else if (this.agreeOrList === '退回') {
|
||||||
|
const params = qs.stringify({
|
||||||
|
taskId: this.dataForm.taskId,
|
||||||
|
comment: this.inputNo
|
||||||
|
})
|
||||||
|
this.$http.post('/act/task/backToFirst?', params).then(({ data: res }) => {
|
||||||
|
if (res.code !== 0) {
|
||||||
|
this.$message.error(res.msg)
|
||||||
|
if (this.callbacks.taskHandleErrorCallback) {
|
||||||
|
this.callbacks.taskHandleErrorCallback(res)
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.$message({
|
||||||
|
message: this.$t('prompt.success'),
|
||||||
|
type: 'success',
|
||||||
|
duration: 500,
|
||||||
|
onClose: () => {
|
||||||
|
this.visible = false
|
||||||
|
if (this.callbacks.taskHandleSuccessCallback) {
|
||||||
|
this.callbacks.taskHandleSuccessCallback(res)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}, 1000, { leading: true, trailing: false }),
|
||||||
|
// 启动流程出错回调
|
||||||
|
startProcessErrorCallback (data) {
|
||||||
|
console.log(data)
|
||||||
|
},
|
||||||
|
// 任务处理出错回调
|
||||||
|
taskHandleErrorCallback (data) {}
|
||||||
|
},
|
||||||
|
mounted () {
|
||||||
|
// this.applyData()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
<style scoped lang="scss">
|
||||||
|
::v-deep .big-BOX {
|
||||||
|
background: rgba(244, 245, 248, 0.8);
|
||||||
|
padding: 24px;
|
||||||
|
h3 {
|
||||||
|
font-size: 16px;
|
||||||
|
color: #212121;
|
||||||
|
}
|
||||||
|
p {
|
||||||
|
width: 100%;
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
color: #212121;
|
||||||
|
font-size: 14px;
|
||||||
|
span {
|
||||||
|
display: inline-block;
|
||||||
|
margin-left: 8px;
|
||||||
|
line-height: 32px;
|
||||||
|
span {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.text {
|
||||||
|
width: 500px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
p:last-of-type {
|
||||||
|
margin-top: 16px;
|
||||||
|
width: 100%;
|
||||||
|
span {
|
||||||
|
display: flex;
|
||||||
|
span {
|
||||||
|
padding: 0 12px;
|
||||||
|
height: 32px;
|
||||||
|
background: rgba(232, 234, 239, 1);
|
||||||
|
border-radius: 2px;
|
||||||
|
button {
|
||||||
|
background: unset;
|
||||||
|
border: 0;
|
||||||
|
color: #0558e1;
|
||||||
|
font-size: 14px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
::v-deep .AbilityApply {
|
||||||
|
margin-top: 32px;
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
font-size: 16px;
|
||||||
|
color: #212121;
|
||||||
|
border-bottom: 1px solid #dddee1;
|
||||||
|
padding-bottom: 10px;
|
||||||
|
}
|
||||||
|
ul {
|
||||||
|
padding-left: 0px;
|
||||||
|
li {
|
||||||
|
list-style: none;
|
||||||
|
padding: 30px 0;
|
||||||
|
border-bottom: 1px solid #dddee1;
|
||||||
|
display: flex;
|
||||||
|
img {
|
||||||
|
width: 100px;
|
||||||
|
height: 100px;
|
||||||
|
}
|
||||||
|
div {
|
||||||
|
margin-left: 16px;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
justify-content: center;
|
||||||
|
h2 {
|
||||||
|
margin-bottom: 20px;
|
||||||
|
font-size: 20px;
|
||||||
|
color: #000;
|
||||||
|
display: flex;
|
||||||
|
span {
|
||||||
|
display: block;
|
||||||
|
font-size: 14px;
|
||||||
|
color: #ffffff;
|
||||||
|
margin-left: 8px;
|
||||||
|
background: rgba(0, 184, 230, 0.8);
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
padding: 0 5px;
|
||||||
|
border-radius: 4px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
p {
|
||||||
|
margin-bottom: 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.clearfix:after {
|
||||||
|
display: block;
|
||||||
|
content: "";
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
.title {
|
||||||
|
color: #0558e1;
|
||||||
|
font-size: 18px;
|
||||||
|
padding-bottom: 0;
|
||||||
|
border-bottom: 0;
|
||||||
|
}
|
||||||
|
.title:before {
|
||||||
|
content: "";
|
||||||
|
width: 6px;
|
||||||
|
height: 6px;
|
||||||
|
display: inline-block;
|
||||||
|
border-radius: 50%;
|
||||||
|
background: #0558e1;
|
||||||
|
vertical-align: middle;
|
||||||
|
margin-right: 10px;
|
||||||
|
margin-top: 6px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
::v-deep .agreeOr > div {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
.el-input {
|
||||||
|
margin-right: 10px;
|
||||||
|
margin-left: 32px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
::v-deep .agreeOr > div:last-of-type {
|
||||||
|
margin-top: 15px;
|
||||||
|
}
|
||||||
|
.blueAll {
|
||||||
|
::v-deep .el-radio-button__inner {
|
||||||
|
width: 80px;
|
||||||
|
height: 32px;
|
||||||
|
line-height: 32px;
|
||||||
|
padding: 0;
|
||||||
|
border-radius: 2px;
|
||||||
|
background: #ffffff;
|
||||||
|
color: #0558e1;
|
||||||
|
border: 1px solid #0558e1;
|
||||||
|
}
|
||||||
|
::v-deep .el-radio-button__orig-radio:checked + .el-radio-button__inner {
|
||||||
|
box-shadow: unset !important;
|
||||||
|
background: #0558e1;
|
||||||
|
color: #ffffff;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.inputBule {
|
||||||
|
width: 55px;
|
||||||
|
height: 32px;
|
||||||
|
line-height: 32px;
|
||||||
|
padding: 0;
|
||||||
|
border-radius: 2px;
|
||||||
|
background: #0558e1;
|
||||||
|
color: #ffffff;
|
||||||
|
border: 1px solid #0558e1;
|
||||||
|
}
|
||||||
|
.redAll {
|
||||||
|
margin-left: 10px;
|
||||||
|
::v-deep .el-radio-button__inner {
|
||||||
|
width: 80px;
|
||||||
|
height: 32px;
|
||||||
|
line-height: 32px;
|
||||||
|
padding: 0;
|
||||||
|
border-radius: 2px;
|
||||||
|
border: 1px solid #e83a48;
|
||||||
|
background: #ffffff;
|
||||||
|
color: #e83a48;
|
||||||
|
margin-left: 10px;
|
||||||
|
}
|
||||||
|
::v-deep .el-radio-button__orig-radio:checked + .el-radio-button__inner {
|
||||||
|
box-shadow: unset !important;
|
||||||
|
color: #ffffff;
|
||||||
|
background: #e83a48;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
.blueInput {
|
||||||
|
width: 55px;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -2,7 +2,7 @@
|
||||||
* @Author: hisense.wuhongjian
|
* @Author: hisense.wuhongjian
|
||||||
* @Date: 2022-03-29 16:45:25
|
* @Date: 2022-03-29 16:45:25
|
||||||
* @LastEditors: hisense.wuhongjian
|
* @LastEditors: hisense.wuhongjian
|
||||||
* @LastEditTime: 2022-06-28 16:52:46
|
* @LastEditTime: 2022-06-29 19:38:31
|
||||||
* @Description: 告诉大家这是什么
|
* @Description: 告诉大家这是什么
|
||||||
-->
|
-->
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
|
@ -45,9 +45,9 @@
|
||||||
// window.SITE_CONFIG['apiURL'] = 'http://10.134.135.9:8888/renren-admin';
|
// window.SITE_CONFIG['apiURL'] = 'http://10.134.135.9:8888/renren-admin';
|
||||||
// 开发
|
// 开发
|
||||||
window.SITE_CONFIG['backUrl'] = 'http://15.2.21.238:9797';
|
window.SITE_CONFIG['backUrl'] = 'http://15.2.21.238:9797';
|
||||||
window.SITE_CONFIG['previewUrl'] = 'http://15.2.21.238:9796';
|
window.SITE_CONFIG['previewUrl'] = 'http://15.2.21.238:9796/';
|
||||||
window.SITE_CONFIG['frontUrl'] = 'http://15.2.21.238:9796/document/#/devModelFile/';
|
window.SITE_CONFIG['frontUrl'] = 'http://15.2.21.238:9796/document/#/devModelFile/';
|
||||||
window.SITE_CONFIG['apiURL'] = 'http://15.2.21.239:8888/renren-admin';
|
window.SITE_CONFIG['apiURL'] = 'http://15.2.21.238:8888/renren-admin';
|
||||||
window.SITE_CONFIG['POI_URL'] = 'http://15.2.21.238:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address';
|
window.SITE_CONFIG['POI_URL'] = 'http://15.2.21.238:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address';
|
||||||
// 穿透版本
|
// 穿透版本
|
||||||
// window.SITE_CONFIG['backUrl'] = 'http://124.222.94.39:9797';
|
// window.SITE_CONFIG['backUrl'] = 'http://124.222.94.39:9797';
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
/*
|
/*
|
||||||
* @Author: hisense.wuhongjian
|
* @Author: hisense.wuhongjian
|
||||||
* @Date: 2022-04-01 19:19:40
|
* @Date: 2022-04-01 19:19:40
|
||||||
* @LastEditors: hisense.wuhongjian
|
* @LastEditors: hisense.liangjunhua
|
||||||
* @LastEditTime: 2022-06-22 18:59:03
|
* @LastEditTime: 2022-06-29 14:34:24
|
||||||
* @Description: 告诉大家这是什么
|
* @Description: 告诉大家这是什么
|
||||||
*/
|
*/
|
||||||
import request from '@/utils/request'
|
import request from '@/utils/request'
|
||||||
|
@ -114,7 +114,7 @@ export function lastestPage(params) {
|
||||||
// 提交申请
|
// 提交申请
|
||||||
export function submitApply(data) {
|
export function submitApply(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/ability/center/apply',
|
url: '/ability/center/v2/apply',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data,
|
data,
|
||||||
})
|
})
|
||||||
|
@ -305,3 +305,12 @@ export function queryPartAppByKeyId(params) {
|
||||||
params,
|
params,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
//组件详情列表
|
||||||
|
export function queryPartAppByKeyId2(params) {
|
||||||
|
return request({
|
||||||
|
url: 'dataResourceRel/queryApp4PartByKeyId',
|
||||||
|
method: 'get',
|
||||||
|
params,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
|
@ -150,6 +150,16 @@ export function nengliziyuanshangjiaapply(params) {
|
||||||
params,
|
params,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
export function getTaskVariables(params) {
|
||||||
|
return request({
|
||||||
|
url:
|
||||||
|
'/act/task/getTaskVariables?taskId=' +
|
||||||
|
params.taskId +
|
||||||
|
'&variableName=tAbilityApplicationDTOList',
|
||||||
|
method: 'get',
|
||||||
|
params,
|
||||||
|
})
|
||||||
|
}
|
||||||
// 能力下架申请
|
// 能力下架申请
|
||||||
export function undercarriage(data) {
|
export function undercarriage(data) {
|
||||||
return request({
|
return request({
|
||||||
|
|
|
@ -1726,6 +1726,9 @@ export function MapFun(mapObj) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
marker.on('click', e=>{
|
||||||
|
console.log('点位数据', e)
|
||||||
|
})
|
||||||
layers.addLayer(marker)
|
layers.addLayer(marker)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|
|
@ -88,7 +88,7 @@
|
||||||
import AlgorithmCommonProblem from '@/views/detailsAll/components/Algorithm/AlgorithmCommonProblem' //常见问题
|
import AlgorithmCommonProblem from '@/views/detailsAll/components/Algorithm/AlgorithmCommonProblem' //常见问题
|
||||||
import { ref, onMounted, onBeforeUnmount, reactive } from 'vue'
|
import { ref, onMounted, onBeforeUnmount, reactive } from 'vue'
|
||||||
import { useRouter } from 'vue-router'
|
import { useRouter } from 'vue-router'
|
||||||
import { updateVisits, selectOne, queryPartAppByKeyId } from '@/api/home'
|
import { updateVisits, selectOne, queryPartAppByKeyId2 } from '@/api/home'
|
||||||
import mybus from '@/myplugins/mybus'
|
import mybus from '@/myplugins/mybus'
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const scrollTop = ref(0)
|
const scrollTop = ref(0)
|
||||||
|
@ -97,11 +97,7 @@
|
||||||
const dataList = reactive({ data: {} })
|
const dataList = reactive({ data: {} })
|
||||||
const id = router.currentRoute.value.query.id
|
const id = router.currentRoute.value.query.id
|
||||||
const obj = JSON.parse(window.sessionStorage.getItem('preview'))
|
const obj = JSON.parse(window.sessionStorage.getItem('preview'))
|
||||||
const associatedComponents = ref([
|
const associatedComponents = ref([{ type: '应用资源', dataList: [] }])
|
||||||
{ type: '应用资源', dataList: [] },
|
|
||||||
{ type: '数据资源', dataList: [] },
|
|
||||||
{ type: '基础设施', dataList: [] },
|
|
||||||
])
|
|
||||||
document.documentElement.style.transition = 'all 0.3s ease'
|
document.documentElement.style.transition = 'all 0.3s ease'
|
||||||
document.documentElement.scrollTop = 0
|
document.documentElement.scrollTop = 0
|
||||||
document.body.style.transition = 'all 0.3s ease'
|
document.body.style.transition = 'all 0.3s ease'
|
||||||
|
@ -163,9 +159,8 @@
|
||||||
associatedComponents.value.map((item, index) => {
|
associatedComponents.value.map((item, index) => {
|
||||||
let queryPartAppByKeyIdParams = {
|
let queryPartAppByKeyIdParams = {
|
||||||
keyId: id,
|
keyId: id,
|
||||||
type: item.type,
|
|
||||||
}
|
}
|
||||||
queryPartAppByKeyId(queryPartAppByKeyIdParams).then((res) => {
|
queryPartAppByKeyId2(queryPartAppByKeyIdParams).then((res) => {
|
||||||
associatedComponents.value[index].dataList = res.data.data
|
associatedComponents.value[index].dataList = res.data.data
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
* @Author: hisense.liangjunhua
|
* @Author: hisense.liangjunhua
|
||||||
* @Date: 2022-06-08 11:32:22
|
* @Date: 2022-06-08 11:32:22
|
||||||
* @LastEditors: hisense.liangjunhua
|
* @LastEditors: hisense.liangjunhua
|
||||||
* @LastEditTime: 2022-06-20 18:59:18
|
* @LastEditTime: 2022-06-30 10:22:31
|
||||||
* @Description: 应用详情页
|
* @Description: 应用详情页
|
||||||
-->
|
-->
|
||||||
<template>
|
<template>
|
||||||
|
@ -136,9 +136,13 @@
|
||||||
selectOne(id).then((res) => {
|
selectOne(id).then((res) => {
|
||||||
// console.clear()
|
// console.clear()
|
||||||
dataList.data = res.data.data
|
dataList.data = res.data.data
|
||||||
console.log('初始化详情页=========================>', dataList.data)
|
|
||||||
const arrList = ref([])
|
const arrList = ref([])
|
||||||
arrList.value = JSON.parse(window.sessionStorage.getItem('visits'))
|
arrList.value = JSON.parse(window.sessionStorage.getItem('visits'))
|
||||||
|
console.log(
|
||||||
|
'初始化详情页=========================>',
|
||||||
|
dataList.data,
|
||||||
|
arrList.value
|
||||||
|
)
|
||||||
if (arrList.value && arrList.value.indexOf(id) === -1) {
|
if (arrList.value && arrList.value.indexOf(id) === -1) {
|
||||||
arrList.value.push(id)
|
arrList.value.push(id)
|
||||||
updateVisits({
|
updateVisits({
|
||||||
|
|
|
@ -71,7 +71,7 @@
|
||||||
import BusinessCommonProblem from '@/views/detailsAll/components/Business/BusinessCommonProblem' //常见问题
|
import BusinessCommonProblem from '@/views/detailsAll/components/Business/BusinessCommonProblem' //常见问题
|
||||||
import { ref, onMounted, onBeforeUnmount, reactive } from 'vue'
|
import { ref, onMounted, onBeforeUnmount, reactive } from 'vue'
|
||||||
import { useRouter } from 'vue-router'
|
import { useRouter } from 'vue-router'
|
||||||
import { updateVisits, selectOne, queryPartAppByKeyId } from '@/api/home'
|
import { updateVisits, selectOne, queryPartAppByKeyId2 } from '@/api/home'
|
||||||
import mybus from '@/myplugins/mybus'
|
import mybus from '@/myplugins/mybus'
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const scrollTop = ref(0)
|
const scrollTop = ref(0)
|
||||||
|
@ -80,11 +80,7 @@
|
||||||
const dataList = reactive({ data: {} })
|
const dataList = reactive({ data: {} })
|
||||||
const id = router.currentRoute.value.query.id
|
const id = router.currentRoute.value.query.id
|
||||||
const obj = JSON.parse(window.sessionStorage.getItem('preview'))
|
const obj = JSON.parse(window.sessionStorage.getItem('preview'))
|
||||||
const associatedComponents = ref([
|
const associatedComponents = ref([{ type: '应用资源', dataList: [] }])
|
||||||
{ type: '应用资源', dataList: [] },
|
|
||||||
{ type: '数据资源', dataList: [] },
|
|
||||||
{ type: '基础设施', dataList: [] },
|
|
||||||
])
|
|
||||||
document.documentElement.style.transition = 'all 0.3s ease'
|
document.documentElement.style.transition = 'all 0.3s ease'
|
||||||
document.documentElement.scrollTop = 0
|
document.documentElement.scrollTop = 0
|
||||||
document.body.style.transition = 'all 0.3s ease'
|
document.body.style.transition = 'all 0.3s ease'
|
||||||
|
@ -146,9 +142,8 @@
|
||||||
associatedComponents.value.map((item, index) => {
|
associatedComponents.value.map((item, index) => {
|
||||||
let queryPartAppByKeyIdParams = {
|
let queryPartAppByKeyIdParams = {
|
||||||
keyId: id,
|
keyId: id,
|
||||||
type: item.type,
|
|
||||||
}
|
}
|
||||||
queryPartAppByKeyId(queryPartAppByKeyIdParams).then((res) => {
|
queryPartAppByKeyId2(queryPartAppByKeyIdParams).then((res) => {
|
||||||
associatedComponents.value[index].dataList = res.data.data
|
associatedComponents.value[index].dataList = res.data.data
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -78,7 +78,7 @@
|
||||||
import DeveloperTrial from '@/views/detailsAll/components/Developer/DeveloperTrial' //组件试用
|
import DeveloperTrial from '@/views/detailsAll/components/Developer/DeveloperTrial' //组件试用
|
||||||
import { ref, onMounted, onBeforeUnmount, reactive } from 'vue'
|
import { ref, onMounted, onBeforeUnmount, reactive } from 'vue'
|
||||||
import { useRouter } from 'vue-router'
|
import { useRouter } from 'vue-router'
|
||||||
import { updateVisits, selectOne, queryPartAppByKeyId } from '@/api/home'
|
import { updateVisits, selectOne, queryPartAppByKeyId2 } from '@/api/home'
|
||||||
import mybus from '@/myplugins/mybus'
|
import mybus from '@/myplugins/mybus'
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const scrollTop = ref(0)
|
const scrollTop = ref(0)
|
||||||
|
@ -87,11 +87,7 @@
|
||||||
const dataList = reactive({ data: {} })
|
const dataList = reactive({ data: {} })
|
||||||
const id = router.currentRoute.value.query.id
|
const id = router.currentRoute.value.query.id
|
||||||
const obj = JSON.parse(window.sessionStorage.getItem('preview'))
|
const obj = JSON.parse(window.sessionStorage.getItem('preview'))
|
||||||
const associatedComponents = ref([
|
const associatedComponents = ref([{ type: '应用资源', dataList: [] }])
|
||||||
{ type: '应用资源', dataList: [] },
|
|
||||||
{ type: '数据资源', dataList: [] },
|
|
||||||
{ type: '基础设施', dataList: [] },
|
|
||||||
])
|
|
||||||
document.documentElement.style.transition = 'all 0.3s ease'
|
document.documentElement.style.transition = 'all 0.3s ease'
|
||||||
document.documentElement.scrollTop = 0
|
document.documentElement.scrollTop = 0
|
||||||
document.body.style.transition = 'all 0.3s ease'
|
document.body.style.transition = 'all 0.3s ease'
|
||||||
|
@ -153,9 +149,8 @@
|
||||||
associatedComponents.value.map((item, index) => {
|
associatedComponents.value.map((item, index) => {
|
||||||
let queryPartAppByKeyIdParams = {
|
let queryPartAppByKeyIdParams = {
|
||||||
keyId: id,
|
keyId: id,
|
||||||
type: item.type,
|
|
||||||
}
|
}
|
||||||
queryPartAppByKeyId(queryPartAppByKeyIdParams).then((res) => {
|
queryPartAppByKeyId2(queryPartAppByKeyIdParams).then((res) => {
|
||||||
associatedComponents.value[index].dataList = res.data.data
|
associatedComponents.value[index].dataList = res.data.data
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -80,7 +80,7 @@
|
||||||
import LayerServiceUsageMode from '@/views/detailsAll/components/LayerService/LayerServiceUsageMode.vue' //使用方式
|
import LayerServiceUsageMode from '@/views/detailsAll/components/LayerService/LayerServiceUsageMode.vue' //使用方式
|
||||||
import { ref, onMounted, onBeforeUnmount, reactive } from 'vue'
|
import { ref, onMounted, onBeforeUnmount, reactive } from 'vue'
|
||||||
import { useRouter } from 'vue-router'
|
import { useRouter } from 'vue-router'
|
||||||
import { updateVisits, selectOne, queryPartAppByKeyId } from '@/api/home'
|
import { updateVisits, selectOne, queryPartAppByKeyId2 } from '@/api/home'
|
||||||
import mybus from '@/myplugins/mybus'
|
import mybus from '@/myplugins/mybus'
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const scrollTop = ref(0)
|
const scrollTop = ref(0)
|
||||||
|
@ -89,11 +89,7 @@
|
||||||
const dataList = reactive({ data: {} })
|
const dataList = reactive({ data: {} })
|
||||||
const id = router.currentRoute.value.query.id
|
const id = router.currentRoute.value.query.id
|
||||||
const obj = JSON.parse(window.sessionStorage.getItem('preview'))
|
const obj = JSON.parse(window.sessionStorage.getItem('preview'))
|
||||||
const associatedComponents = ref([
|
const associatedComponents = ref([{ type: '应用资源', dataList: [] }])
|
||||||
{ type: '应用资源', dataList: [] },
|
|
||||||
{ type: '数据资源', dataList: [] },
|
|
||||||
{ type: '基础设施', dataList: [] },
|
|
||||||
])
|
|
||||||
document.documentElement.style.transition = 'all 0.3s ease'
|
document.documentElement.style.transition = 'all 0.3s ease'
|
||||||
document.documentElement.scrollTop = 0
|
document.documentElement.scrollTop = 0
|
||||||
document.body.style.transition = 'all 0.3s ease'
|
document.body.style.transition = 'all 0.3s ease'
|
||||||
|
@ -155,9 +151,8 @@
|
||||||
associatedComponents.value.map((item, index) => {
|
associatedComponents.value.map((item, index) => {
|
||||||
let queryPartAppByKeyIdParams = {
|
let queryPartAppByKeyIdParams = {
|
||||||
keyId: id,
|
keyId: id,
|
||||||
type: item.type,
|
|
||||||
}
|
}
|
||||||
queryPartAppByKeyId(queryPartAppByKeyIdParams).then((res) => {
|
queryPartAppByKeyId2(queryPartAppByKeyIdParams).then((res) => {
|
||||||
associatedComponents.value[index].dataList = res.data.data
|
associatedComponents.value[index].dataList = res.data.data
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
|
@ -4,22 +4,17 @@
|
||||||
<div class="application-associated-ability-main">
|
<div class="application-associated-ability-main">
|
||||||
<div
|
<div
|
||||||
class="associated-ability-card"
|
class="associated-ability-card"
|
||||||
v-for="(item, index) in dataFrom"
|
v-for="(dataListitem, dataListindex) in dataFrom[0].dataList"
|
||||||
:key="item.type"
|
|
||||||
>
|
|
||||||
<div class="associated-ability-card-title">
|
|
||||||
{{ item.type }}
|
|
||||||
</div>
|
|
||||||
<div class="associated-ability-card-content">
|
|
||||||
<div
|
|
||||||
class="associated-ability-card-content-font"
|
|
||||||
v-for="(dataListitem, dataListindex) in item.dataList"
|
|
||||||
:key="dataListitem.id"
|
:key="dataListitem.id"
|
||||||
@click="switchFunction(dataListitem.id)"
|
@click="switchFunction(dataListitem.id)"
|
||||||
>
|
>
|
||||||
<span>{{ dataListindex + 1 }}、</span>
|
<div class="associated-ability-card-title">
|
||||||
{{ dataListitem.name }}
|
{{ dataListitem.name }}
|
||||||
</div>
|
</div>
|
||||||
|
<div class="associated-ability-card-content">
|
||||||
|
<div class="associated-ability-card-content-font">
|
||||||
|
{{ dataListitem.description }}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -85,11 +80,11 @@
|
||||||
align-items: center;
|
align-items: center;
|
||||||
.application-associated-ability-main {
|
.application-associated-ability-main {
|
||||||
margin-top: 0.4rem;
|
margin-top: 0.4rem;
|
||||||
width: 13.14rem;
|
width: 13.3rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
.associated-ability-card {
|
.associated-ability-card {
|
||||||
width: 4.28rem;
|
width: 3.2rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
@ -112,9 +107,6 @@
|
||||||
margin-right: 0.15rem;
|
margin-right: 0.15rem;
|
||||||
margin-top: 0.15rem;
|
margin-top: 0.15rem;
|
||||||
}
|
}
|
||||||
.associated-ability-card-content-font:hover {
|
|
||||||
color: #0058e1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.associated-ability-card:hover {
|
.associated-ability-card:hover {
|
||||||
|
|
|
@ -4,22 +4,17 @@
|
||||||
<div class="application-associated-ability-main">
|
<div class="application-associated-ability-main">
|
||||||
<div
|
<div
|
||||||
class="associated-ability-card"
|
class="associated-ability-card"
|
||||||
v-for="(item, index) in dataFrom"
|
v-for="(dataListitem, dataListindex) in dataFrom[0].dataList"
|
||||||
:key="item.type"
|
|
||||||
>
|
|
||||||
<div class="associated-ability-card-title">
|
|
||||||
{{ item.type }}
|
|
||||||
</div>
|
|
||||||
<div class="associated-ability-card-content">
|
|
||||||
<div
|
|
||||||
class="associated-ability-card-content-font"
|
|
||||||
v-for="(dataListitem, dataListindex) in item.dataList"
|
|
||||||
:key="dataListitem.id"
|
:key="dataListitem.id"
|
||||||
@click="switchFunction(dataListitem.id)"
|
@click="switchFunction(dataListitem.id)"
|
||||||
>
|
>
|
||||||
<span>{{ dataListindex + 1 }}、</span>
|
<div class="associated-ability-card-title">
|
||||||
{{ dataListitem.name }}
|
{{ dataListitem.name }}
|
||||||
</div>
|
</div>
|
||||||
|
<div class="associated-ability-card-content">
|
||||||
|
<div class="associated-ability-card-content-font">
|
||||||
|
{{ dataListitem.description }}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -85,11 +80,11 @@
|
||||||
align-items: center;
|
align-items: center;
|
||||||
.application-associated-ability-main {
|
.application-associated-ability-main {
|
||||||
margin-top: 0.4rem;
|
margin-top: 0.4rem;
|
||||||
width: 13.14rem;
|
width: 13.3rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
.associated-ability-card {
|
.associated-ability-card {
|
||||||
width: 4.28rem;
|
width: 3.2rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
@ -112,9 +107,6 @@
|
||||||
margin-right: 0.15rem;
|
margin-right: 0.15rem;
|
||||||
margin-top: 0.15rem;
|
margin-top: 0.15rem;
|
||||||
}
|
}
|
||||||
.associated-ability-card-content-font:hover {
|
|
||||||
color: #0058e1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.associated-ability-card:hover {
|
.associated-ability-card:hover {
|
||||||
|
|
|
@ -57,7 +57,7 @@
|
||||||
selectNow: { type: String, default: '' },
|
selectNow: { type: String, default: '' },
|
||||||
dataList: { type: Object, default: null },
|
dataList: { type: Object, default: null },
|
||||||
})
|
})
|
||||||
const select = ref('algorithm-display')
|
const select = ref('business-presentation')
|
||||||
const list = ref([])
|
const list = ref([])
|
||||||
const selectNav = (key) => {
|
const selectNav = (key) => {
|
||||||
select.value = key
|
select.value = key
|
||||||
|
|
|
@ -4,22 +4,17 @@
|
||||||
<div class="application-associated-ability-main">
|
<div class="application-associated-ability-main">
|
||||||
<div
|
<div
|
||||||
class="associated-ability-card"
|
class="associated-ability-card"
|
||||||
v-for="(item, index) in dataFrom"
|
v-for="dataListitem in dataFrom[0].dataList"
|
||||||
:key="item.type"
|
|
||||||
>
|
|
||||||
<div class="associated-ability-card-title">
|
|
||||||
{{ item.type }}
|
|
||||||
</div>
|
|
||||||
<div class="associated-ability-card-content">
|
|
||||||
<div
|
|
||||||
class="associated-ability-card-content-font"
|
|
||||||
v-for="(dataListitem, dataListindex) in item.dataList"
|
|
||||||
:key="dataListitem.id"
|
:key="dataListitem.id"
|
||||||
@click="switchFunction(dataListitem.id)"
|
@click="switchFunction(dataListitem.id)"
|
||||||
>
|
>
|
||||||
<span>{{ dataListindex + 1 }}、</span>
|
<div class="associated-ability-card-title">
|
||||||
{{ dataListitem.name }}
|
{{ dataListitem.name }}
|
||||||
</div>
|
</div>
|
||||||
|
<div class="associated-ability-card-content">
|
||||||
|
<div class="associated-ability-card-content-font">
|
||||||
|
{{ dataListitem.description }}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -67,7 +62,7 @@
|
||||||
)
|
)
|
||||||
watch(
|
watch(
|
||||||
() => router.currentRoute.value.query.id,
|
() => router.currentRoute.value.query.id,
|
||||||
(newValue, oldValue) => {
|
() => {
|
||||||
if (oldid != router.currentRoute.value.query.id) {
|
if (oldid != router.currentRoute.value.query.id) {
|
||||||
window.location.reload()
|
window.location.reload()
|
||||||
}
|
}
|
||||||
|
@ -85,11 +80,11 @@
|
||||||
align-items: center;
|
align-items: center;
|
||||||
.application-associated-ability-main {
|
.application-associated-ability-main {
|
||||||
margin-top: 0.4rem;
|
margin-top: 0.4rem;
|
||||||
width: 13.14rem;
|
width: 13.3rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
.associated-ability-card {
|
.associated-ability-card {
|
||||||
width: 4.28rem;
|
width: 3.2rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
@ -112,9 +107,6 @@
|
||||||
margin-right: 0.15rem;
|
margin-right: 0.15rem;
|
||||||
margin-top: 0.15rem;
|
margin-top: 0.15rem;
|
||||||
}
|
}
|
||||||
.associated-ability-card-content-font:hover {
|
|
||||||
color: #0058e1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.associated-ability-card:hover {
|
.associated-ability-card:hover {
|
||||||
|
|
|
@ -66,7 +66,6 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const clickLink = (link) => {
|
const clickLink = (link) => {
|
||||||
debugger
|
|
||||||
window.open(link)
|
window.open(link)
|
||||||
}
|
}
|
||||||
//复制方法
|
//复制方法
|
||||||
|
|
|
@ -4,22 +4,17 @@
|
||||||
<div class="application-associated-ability-main">
|
<div class="application-associated-ability-main">
|
||||||
<div
|
<div
|
||||||
class="associated-ability-card"
|
class="associated-ability-card"
|
||||||
v-for="(item, index) in dataFrom"
|
v-for="(dataListitem, dataListindex) in dataFrom[0].dataList"
|
||||||
:key="item.type"
|
|
||||||
>
|
|
||||||
<div class="associated-ability-card-title">
|
|
||||||
{{ item.type }}
|
|
||||||
</div>
|
|
||||||
<div class="associated-ability-card-content">
|
|
||||||
<div
|
|
||||||
class="associated-ability-card-content-font"
|
|
||||||
v-for="(dataListitem, dataListindex) in item.dataList"
|
|
||||||
:key="dataListitem.id"
|
:key="dataListitem.id"
|
||||||
@click="switchFunction(dataListitem.id)"
|
@click="switchFunction(dataListitem.id)"
|
||||||
>
|
>
|
||||||
<span>{{ dataListindex + 1 }}、</span>
|
<div class="associated-ability-card-title">
|
||||||
{{ dataListitem.name }}
|
{{ dataListitem.name }}
|
||||||
</div>
|
</div>
|
||||||
|
<div class="associated-ability-card-content">
|
||||||
|
<div class="associated-ability-card-content-font">
|
||||||
|
{{ dataListitem.description }}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -85,11 +80,11 @@
|
||||||
align-items: center;
|
align-items: center;
|
||||||
.application-associated-ability-main {
|
.application-associated-ability-main {
|
||||||
margin-top: 0.4rem;
|
margin-top: 0.4rem;
|
||||||
width: 13.14rem;
|
width: 13.3rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
.associated-ability-card {
|
.associated-ability-card {
|
||||||
width: 4.28rem;
|
width: 3.2rem;
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
@ -112,9 +107,6 @@
|
||||||
margin-right: 0.15rem;
|
margin-right: 0.15rem;
|
||||||
margin-top: 0.15rem;
|
margin-top: 0.15rem;
|
||||||
}
|
}
|
||||||
.associated-ability-card-content-font:hover {
|
|
||||||
color: #0058e1;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.associated-ability-card:hover {
|
.associated-ability-card:hover {
|
||||||
|
|
|
@ -61,7 +61,7 @@
|
||||||
selectNow: { type: String, default: '' },
|
selectNow: { type: String, default: '' },
|
||||||
dataList: { type: Object, default: null },
|
dataList: { type: Object, default: null },
|
||||||
})
|
})
|
||||||
const select = ref('algorithm-display')
|
const select = ref('service-presentation')
|
||||||
const list = ref([])
|
const list = ref([])
|
||||||
const selectNav = (key) => {
|
const selectNav = (key) => {
|
||||||
select.value = key
|
select.value = key
|
||||||
|
@ -197,8 +197,6 @@
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
list.value.push('关联能力')
|
list.value.push('关联能力')
|
||||||
list.value.push('图层信息')
|
|
||||||
list.value.push('使用方式')
|
|
||||||
navList.value.forEach((item) => {
|
navList.value.forEach((item) => {
|
||||||
console.log(item)
|
console.log(item)
|
||||||
if (list.value.indexOf(item.name) > -1) {
|
if (list.value.indexOf(item.name) > -1) {
|
||||||
|
|
|
@ -10,7 +10,7 @@
|
||||||
<span></span>
|
<span></span>
|
||||||
{{ item.deptName }}
|
{{ item.deptName }}
|
||||||
</div>
|
</div>
|
||||||
<template v-for="val in item.children" :key="val.resourceId">
|
<template v-for="val in item.arr" :key="val.resourceId">
|
||||||
<div class="item">
|
<div class="item">
|
||||||
<div class="name">
|
<div class="name">
|
||||||
<span>{{ val.resourceName }}</span>
|
<span>{{ val.resourceName }}</span>
|
||||||
|
@ -48,11 +48,9 @@
|
||||||
//移除方法
|
//移除方法
|
||||||
const removeFunction = (data) => {
|
const removeFunction = (data) => {
|
||||||
dataForm.value.map((val) => {
|
dataForm.value.map((val) => {
|
||||||
val.children = val.children.filter(
|
val.arr = val.arr.filter((item) => item.resourceId !== data.resourceId)
|
||||||
(item) => item.resourceId !== data.resourceId
|
|
||||||
)
|
|
||||||
})
|
})
|
||||||
dataForm.value = dataForm.value.filter((val) => val.children.length !== 0)
|
dataForm.value = dataForm.value.filter((val) => val.arr.length !== 0)
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,12 @@
|
||||||
<div class="bg">
|
<div class="bg">
|
||||||
<home-header></home-header>
|
<home-header></home-header>
|
||||||
<div class="box-container">
|
<div class="box-container">
|
||||||
<a-spin size="large" v-if="loadingPage" class="loading-box" :spinning="loadingPage" />
|
<a-spin
|
||||||
|
size="large"
|
||||||
|
v-if="loadingPage"
|
||||||
|
class="loading-box"
|
||||||
|
:spinning="loadingPage"
|
||||||
|
/>
|
||||||
<div class="nav-box">
|
<div class="nav-box">
|
||||||
<a-breadcrumb>
|
<a-breadcrumb>
|
||||||
<a-breadcrumb-item>能力集市</a-breadcrumb-item>
|
<a-breadcrumb-item>能力集市</a-breadcrumb-item>
|
||||||
|
@ -10,9 +15,20 @@
|
||||||
</a-breadcrumb>
|
</a-breadcrumb>
|
||||||
</div>
|
</div>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
<a-anchor :affix="false" class="left" :getContainer="getId" @click="handleClickTab">
|
<a-anchor
|
||||||
<a-anchor-link class="left-item" :href="`#${data}`" :title="data" v-for="(data, i) in leftNav"
|
:affix="false"
|
||||||
:key="i" :data-title="data" />
|
class="left"
|
||||||
|
:getContainer="getId"
|
||||||
|
@click="handleClickTab"
|
||||||
|
>
|
||||||
|
<a-anchor-link
|
||||||
|
class="left-item"
|
||||||
|
:href="`#${data}`"
|
||||||
|
:title="data"
|
||||||
|
v-for="(data, i) in leftNav"
|
||||||
|
:key="i"
|
||||||
|
:data-title="data"
|
||||||
|
/>
|
||||||
</a-anchor>
|
</a-anchor>
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<div class="top no-border-right">
|
<div class="top no-border-right">
|
||||||
|
@ -22,30 +38,55 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="td" v-for="(item, k) in detailArray" :key="k">
|
<div class="td" v-for="(item, k) in detailArray" :key="k">
|
||||||
<span v-if="item">{{ item.name || '--' }}</span>
|
<span v-if="item">{{ item.name || '--' }}</span>
|
||||||
<span v-if="item" @click="deleteList(k)" class="icon-delete">
|
<span
|
||||||
</span>
|
v-if="item"
|
||||||
<span class="add-img" @click="addList"
|
@click="deleteList(k)"
|
||||||
v-if="!item && k === detailArray.filter(v => v).length">
|
class="icon-delete"
|
||||||
</span>
|
></span>
|
||||||
|
<span
|
||||||
|
class="add-img"
|
||||||
|
@click="addList"
|
||||||
|
v-if="!item && k === detailArray.filter((v) => v).length"
|
||||||
|
></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="bottom bottomRef" id="bottomRef" ref="bottomRef">
|
<div class="bottom bottomRef" id="bottomRef" ref="bottomRef">
|
||||||
<div class="bottom-item" v-for="(data, i) in tableData" :key="i">
|
<div class="bottom-item" v-for="(data, i) in tableData" :key="i">
|
||||||
<div class="title" :id="data.title" :title="data.title" :ref="data.title">{{ data.title }}
|
<div
|
||||||
|
class="title"
|
||||||
|
:id="data.title"
|
||||||
|
:title="data.title"
|
||||||
|
:ref="data.title"
|
||||||
|
>
|
||||||
|
{{ data.title }}
|
||||||
</div>
|
</div>
|
||||||
<!-- 算法优势 -->
|
<!-- 算法优势 -->
|
||||||
<div class="group-data" v-if="data.groupName">
|
<div class="group-data" v-if="data.groupName">
|
||||||
<!-- <compare-group-view :dataList="data.groupList"></compare-group-view> -->
|
<!-- <compare-group-view :dataList="data.groupList"></compare-group-view> -->
|
||||||
<div v-if="data.groupList.length > 0">
|
<div v-if="data.groupList.length > 0">
|
||||||
<div class="group-box" v-for="(data, i) in data.groupList" :key="i">
|
<div
|
||||||
<div class="flex-row-start row-tr" v-for="(item, j) in Object.keys(data)"
|
class="group-box"
|
||||||
:key="j" :class="j == Object.keys(data).length - 1 ? 'border-bottom' : ''">
|
v-for="(data, i) in data.groupList"
|
||||||
|
:key="i"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="flex-row-start row-tr"
|
||||||
|
v-for="(item, j) in Object.keys(data)"
|
||||||
|
:key="j"
|
||||||
|
:class="
|
||||||
|
j == Object.keys(data).length - 1 ? 'border-bottom' : ''
|
||||||
|
"
|
||||||
|
>
|
||||||
<div class="td-name" :style="{ height: getHeight(item) }">
|
<div class="td-name" :style="{ height: getHeight(item) }">
|
||||||
<span class="td-text td-name-text">{{ item }}</span>
|
<span class="td-text td-name-text">{{ item }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex-row-start">
|
<div class="flex-row-start">
|
||||||
<div class="td" :style="{ height: getHeight(item) }"
|
<div
|
||||||
v-for="(d, k) in data[item]" :key="k">
|
class="td"
|
||||||
|
:style="{ height: getHeight(item) }"
|
||||||
|
v-for="(d, k) in data[item]"
|
||||||
|
:key="k"
|
||||||
|
>
|
||||||
<a-tooltip placement="top" :title="d">
|
<a-tooltip placement="top" :title="d">
|
||||||
<span class="td-text">{{ d }}</span>
|
<span class="td-text">{{ d }}</span>
|
||||||
</a-tooltip>
|
</a-tooltip>
|
||||||
|
@ -54,20 +95,39 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div v-if="data.groupList.length == 0" class="no-data">暂无数据</div>
|
<div v-if="data.groupList.length == 0" class="no-data">
|
||||||
|
暂无数据
|
||||||
</div>
|
</div>
|
||||||
<div class="flex-row-start row-tr" v-else v-for="(rowData, j) in data.list" :key="j"
|
</div>
|
||||||
:class="j == data.list.length - 1 ? 'border-bottom' : ''">
|
<div
|
||||||
<div class="td-name" :style="{ height: getHeight(rowData.name) }">
|
class="flex-row-start row-tr"
|
||||||
|
v-else
|
||||||
|
v-for="(rowData, j) in data.list"
|
||||||
|
:key="j"
|
||||||
|
:class="j == data.list.length - 1 ? 'border-bottom' : ''"
|
||||||
|
>
|
||||||
|
<div
|
||||||
|
class="td-name"
|
||||||
|
:style="{ height: getHeight(rowData.name) }"
|
||||||
|
>
|
||||||
<span class="td-text td-name-text">
|
<span class="td-text td-name-text">
|
||||||
{{ rowData.name }}
|
{{ rowData.name }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="flex-row-start">
|
<div class="flex-row-start">
|
||||||
<div class="td" v-for="(item, k) in rowData.infoList" :key="k"
|
<div
|
||||||
:style="{ height: getHeight(rowData.name) }">
|
class="td"
|
||||||
<video v-if="showVideo(rowData.name) && item" width="240" height="180" controls>
|
v-for="(item, k) in rowData.infoList"
|
||||||
<source :src="item" type="video/mp4">
|
:key="k"
|
||||||
|
:style="{ height: getHeight(rowData.name) }"
|
||||||
|
>
|
||||||
|
<video
|
||||||
|
v-if="showVideo(rowData.name) && item"
|
||||||
|
width="240"
|
||||||
|
height="180"
|
||||||
|
controls
|
||||||
|
>
|
||||||
|
<source :src="item" type="video/mp4" />
|
||||||
您的浏览器不支持 HTML5 video 标签。
|
您的浏览器不支持 HTML5 video 标签。
|
||||||
</video>
|
</video>
|
||||||
<a-tooltip v-else placement="top" :title="item">
|
<a-tooltip v-else placement="top" :title="item">
|
||||||
|
@ -82,10 +142,20 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<a-modal class="modal-box" title="请选择" :visible="showAddModal" :onOk='handleOk' :onCancel='handleCancel'>
|
<a-modal
|
||||||
<a-table :columns="columns" :data-source="dataList" style="height:610px;overflow-y:scroll"
|
class="modal-box"
|
||||||
:row-selection="rowSelection" rowKey="id">
|
title="请选择"
|
||||||
</a-table>
|
:visible="showAddModal"
|
||||||
|
:onOk="handleOk"
|
||||||
|
:onCancel="handleCancel"
|
||||||
|
>
|
||||||
|
<a-table
|
||||||
|
:columns="columns"
|
||||||
|
:data-source="dataList"
|
||||||
|
style="height: 610px; overflow-y: scroll"
|
||||||
|
:row-selection="rowSelection"
|
||||||
|
rowKey="id"
|
||||||
|
></a-table>
|
||||||
</a-modal>
|
</a-modal>
|
||||||
|
|
||||||
<!-- <HomeFooter></HomeFooter> -->
|
<!-- <HomeFooter></HomeFooter> -->
|
||||||
|
@ -97,14 +167,24 @@ import HomeFooter from '@/views/newHome/components/Footer'
|
||||||
import HomeHeader from '@/views/home/components/header'
|
import HomeHeader from '@/views/home/components/header'
|
||||||
import CompareGroupView from '@/views/home/components/CompareGroupView'
|
import CompareGroupView from '@/views/home/components/CompareGroupView'
|
||||||
import { pageWithAttrs } from '@/api/abilityStatistics'
|
import { pageWithAttrs } from '@/api/abilityStatistics'
|
||||||
import { defineComponent, ref, onMounted, getCurrentInstance, computed, unref, reactive, nextTick, onCreated } from 'vue';
|
import {
|
||||||
|
defineComponent,
|
||||||
|
ref,
|
||||||
|
onMounted,
|
||||||
|
getCurrentInstance,
|
||||||
|
computed,
|
||||||
|
unref,
|
||||||
|
reactive,
|
||||||
|
nextTick,
|
||||||
|
onCreated,
|
||||||
|
} from 'vue'
|
||||||
import { selectOne } from '@/api/home'
|
import { selectOne } from '@/api/home'
|
||||||
import { message, Tooltip, Table, Spin } from 'ant-design-vue'
|
import { message, Tooltip, Table, Spin } from 'ant-design-vue'
|
||||||
import { useRouter } from 'vue-router';
|
import { useRouter } from 'vue-router'
|
||||||
|
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
let queryId = router.currentRoute.value.query.id;
|
let queryId = router.currentRoute.value.query.id
|
||||||
const ctx = getCurrentInstance();
|
const ctx = getCurrentInstance()
|
||||||
|
|
||||||
// 最大4列
|
// 最大4列
|
||||||
const pagination = ref([])
|
const pagination = ref([])
|
||||||
|
@ -123,9 +203,10 @@ const columns = ref([
|
||||||
const detailArray = ref(['', '', '', ''])
|
const detailArray = ref(['', '', '', ''])
|
||||||
|
|
||||||
const titleInfoObj = {
|
const titleInfoObj = {
|
||||||
'基本信息': [
|
基本信息: [
|
||||||
{
|
{
|
||||||
text: '算法名称', key: 'name'
|
text: '算法名称',
|
||||||
|
key: 'name',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: '算法类别',
|
text: '算法类别',
|
||||||
|
@ -134,38 +215,47 @@ const titleInfoObj = {
|
||||||
text: '部署位置',
|
text: '部署位置',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: '应用领域', key: '应用领域'
|
text: '应用领域',
|
||||||
|
key: '应用领域',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: '共享条件', key: 'shareCondition'
|
text: '共享条件',
|
||||||
|
key: 'shareCondition',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: '共享类型', key: 'shareType'
|
text: '共享类型',
|
||||||
|
key: 'shareType',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: '算法描述', key: 'description'
|
text: '算法描述',
|
||||||
|
key: 'description',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: '算法介绍视频', key: '算法介绍视频'
|
text: '算法介绍视频',
|
||||||
|
key: '算法介绍视频',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
'算法优势': [
|
算法优势: [
|
||||||
{
|
{
|
||||||
text: '算法优势名称', key: 'name'
|
text: '算法优势名称',
|
||||||
|
key: 'name',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: '算法优势描述', key: 'desc'
|
text: '算法优势描述',
|
||||||
|
key: 'desc',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
'应用场景': [
|
应用场景: [
|
||||||
{
|
{
|
||||||
text: '场景名称', key: '场景名称'
|
text: '场景名称',
|
||||||
|
key: '场景名称',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: '场景描述', key: '场景描述'
|
text: '场景描述',
|
||||||
|
key: '场景描述',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
'应用案例': [
|
应用案例: [
|
||||||
{
|
{
|
||||||
text: '关联应用',
|
text: '关联应用',
|
||||||
},
|
},
|
||||||
|
@ -176,7 +266,7 @@ const titleInfoObj = {
|
||||||
text: '算法应用期望达成效果',
|
text: '算法应用期望达成效果',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
'计费标准信息': [
|
计费标准信息: [
|
||||||
{
|
{
|
||||||
text: '是否收费',
|
text: '是否收费',
|
||||||
},
|
},
|
||||||
|
@ -190,27 +280,31 @@ const titleInfoObj = {
|
||||||
// text: '计费标准信息', key: ''
|
// text: '计费标准信息', key: ''
|
||||||
// },
|
// },
|
||||||
],
|
],
|
||||||
'使用方式': [
|
使用方式: [
|
||||||
{
|
{
|
||||||
text: '服务接口',
|
text: '服务接口',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: '接口请求方式', key: 'apiMethodType'
|
text: '接口请求方式',
|
||||||
|
key: 'apiMethodType',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: '技术文档', key: ''
|
text: '技术文档',
|
||||||
|
key: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: '是否支持试用', key: ''
|
text: '是否支持试用',
|
||||||
|
key: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: '试用描述', key: ''
|
text: '试用描述',
|
||||||
|
key: '',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: '试用地址',
|
text: '试用地址',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
'服务商': [
|
服务商: [
|
||||||
{
|
{
|
||||||
text: '服务商名',
|
text: '服务商名',
|
||||||
},
|
},
|
||||||
|
@ -221,48 +315,46 @@ const titleInfoObj = {
|
||||||
text: '服务商联系电话',
|
text: '服务商联系电话',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
'常见问题': [
|
常见问题: [
|
||||||
{
|
{
|
||||||
text: '常见问题',
|
text: '常见问题',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
text: '回答',
|
text: '回答',
|
||||||
},
|
},
|
||||||
]
|
],
|
||||||
}
|
}
|
||||||
// 左侧导航
|
// 左侧导航
|
||||||
const leftNav = ref([])
|
const leftNav = ref([])
|
||||||
Object.keys(titleInfoObj).map(v => leftNav.value.push(v))
|
Object.keys(titleInfoObj).map((v) => leftNav.value.push(v))
|
||||||
|
|
||||||
// 可能会有多组的数据
|
// 可能会有多组的数据
|
||||||
const arrayStr = [
|
const arrayStr = ['算法优势', '应用场景', '计费标准信息', '常见问题']
|
||||||
'算法优势', '应用场景', '计费标准信息', '常见问题'
|
|
||||||
]
|
|
||||||
|
|
||||||
let textObj = {
|
let textObj = {
|
||||||
'算法优势': {
|
算法优势: {
|
||||||
name: '算法优势名称',
|
name: '算法优势名称',
|
||||||
desc: '算法优势描述'
|
desc: '算法优势描述',
|
||||||
},
|
},
|
||||||
'应用场景': {
|
应用场景: {
|
||||||
name: '场景名称',
|
name: '场景名称',
|
||||||
desc: '场景描述',
|
desc: '场景描述',
|
||||||
},
|
},
|
||||||
'计费标准信息': {
|
计费标准信息: {
|
||||||
type: '计费方式',
|
type: '计费方式',
|
||||||
price: '价格',
|
price: '价格',
|
||||||
desc: '计费描述信息',
|
desc: '计费描述信息',
|
||||||
'是否收费': '是否收费'
|
是否收费: '是否收费',
|
||||||
},
|
},
|
||||||
'常见问题': {
|
常见问题: {
|
||||||
question: '常见问题',
|
question: '常见问题',
|
||||||
answer: '回答'
|
answer: '回答',
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
const showAddModal = ref(false)
|
const showAddModal = ref(false)
|
||||||
const dataList = ref([])
|
const dataList = ref([])
|
||||||
const selectedRowKeys = ref([]);
|
const selectedRowKeys = ref([])
|
||||||
let tableData = ref([])
|
let tableData = ref([])
|
||||||
const loadingPage = ref(false)
|
const loadingPage = ref(false)
|
||||||
|
|
||||||
|
@ -272,10 +364,10 @@ const getId = () => {
|
||||||
|
|
||||||
const handleClickTab = (e, link) => {
|
const handleClickTab = (e, link) => {
|
||||||
// 阻止点击的默认事件修改路由
|
// 阻止点击的默认事件修改路由
|
||||||
e.preventDefault();
|
e.preventDefault()
|
||||||
if (link.href) {
|
if (link.href) {
|
||||||
let ele = document.getElementById(link.href);
|
let ele = document.getElementById(link.href)
|
||||||
ele && ele.scrollIntoView({ block: 'start', behavior: 'smooth' });
|
ele && ele.scrollIntoView({ block: 'start', behavior: 'smooth' })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -283,18 +375,18 @@ const handleClickTab = (e, link) => {
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
selectedRowKeys.value.push(queryId)
|
selectedRowKeys.value.push(queryId)
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
getList().then(res => {
|
getList().then((res) => {
|
||||||
initData()
|
initData()
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
const initData = () => {
|
const initData = () => {
|
||||||
loadingPage.value = true;
|
loadingPage.value = true
|
||||||
// queryId
|
// queryId
|
||||||
// 获取详情
|
// 获取详情
|
||||||
Promise.all(selectedRowKeys.value.map(id => getDetail(id))).then(data => {
|
Promise.all(selectedRowKeys.value.map((id) => getDetail(id)))
|
||||||
|
.then((data) => {
|
||||||
detailArray.value = []
|
detailArray.value = []
|
||||||
for (let index = 0; index < 4; index++) {
|
for (let index = 0; index < 4; index++) {
|
||||||
if (data[index] == undefined) {
|
if (data[index] == undefined) {
|
||||||
|
@ -310,7 +402,8 @@ const initData = () => {
|
||||||
})
|
})
|
||||||
|
|
||||||
loadingPage.value = false
|
loadingPage.value = false
|
||||||
}).catch(err => {
|
})
|
||||||
|
.catch((err) => {
|
||||||
loadingPage.value = false
|
loadingPage.value = false
|
||||||
message.error(err || '获取算法详情失败,请重试!')
|
message.error(err || '获取算法详情失败,请重试!')
|
||||||
})
|
})
|
||||||
|
@ -322,16 +415,16 @@ const getNewData = () => {
|
||||||
Object.keys(titleInfoObj).map((titleKey, i) => {
|
Object.keys(titleInfoObj).map((titleKey, i) => {
|
||||||
// 标题
|
// 标题
|
||||||
let _newObj = {
|
let _newObj = {
|
||||||
'title': titleKey,
|
title: titleKey,
|
||||||
}
|
}
|
||||||
if (arrayStr.includes(titleKey)) {
|
if (arrayStr.includes(titleKey)) {
|
||||||
_newObj.groupName = titleKey;
|
_newObj.groupName = titleKey
|
||||||
_newObj.groupList = []
|
_newObj.groupList = []
|
||||||
} else {
|
} else {
|
||||||
_newObj.list = []
|
_newObj.list = []
|
||||||
}
|
}
|
||||||
let list = [];
|
let list = []
|
||||||
titleInfoObj[titleKey].map(trName => {
|
titleInfoObj[titleKey].map((trName) => {
|
||||||
let obj = {
|
let obj = {
|
||||||
name: trName.text,
|
name: trName.text,
|
||||||
}
|
}
|
||||||
|
@ -343,7 +436,7 @@ const getNewData = () => {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
if (!arrayStr.includes(titleKey)) {
|
if (!arrayStr.includes(titleKey)) {
|
||||||
_newObj.list = list;
|
_newObj.list = list
|
||||||
}
|
}
|
||||||
tableData.value.push(_newObj)
|
tableData.value.push(_newObj)
|
||||||
})
|
})
|
||||||
|
@ -352,24 +445,24 @@ const getNewData = () => {
|
||||||
// 基本信息等
|
// 基本信息等
|
||||||
const getInfoList = (rowItem) => {
|
const getInfoList = (rowItem) => {
|
||||||
let arr = []
|
let arr = []
|
||||||
detailArray.value.map(item => {
|
detailArray.value.map((item) => {
|
||||||
let val = undefined;
|
let val = undefined
|
||||||
val = item[rowItem.key || rowItem.text]
|
val = item[rowItem.key || rowItem.text]
|
||||||
arr.push(val)
|
arr.push(val)
|
||||||
})
|
})
|
||||||
return arr;
|
return arr
|
||||||
}
|
}
|
||||||
|
|
||||||
// 算法优势:分组信息数组getGroupList
|
// 算法优势:分组信息数组getGroupList
|
||||||
const getGroupList = (titleKey, trName) => {
|
const getGroupList = (titleKey, trName) => {
|
||||||
let arr = []
|
let arr = []
|
||||||
detailArray.value.map(item => {
|
detailArray.value.map((item) => {
|
||||||
if (arrayStr.includes(titleKey)) {
|
if (arrayStr.includes(titleKey)) {
|
||||||
let groupItemObj = {}
|
let groupItemObj = {}
|
||||||
let _list = item[titleKey] || [];
|
let _list = item[titleKey] || []
|
||||||
let textInfo = textObj[titleKey]
|
let textInfo = textObj[titleKey]
|
||||||
_list.map(v => {
|
_list.map((v) => {
|
||||||
Object.keys(v).map(d => {
|
Object.keys(v).map((d) => {
|
||||||
if (textInfo[d] !== undefined) {
|
if (textInfo[d] !== undefined) {
|
||||||
groupItemObj[textInfo[d]] = v[d]
|
groupItemObj[textInfo[d]] = v[d]
|
||||||
}
|
}
|
||||||
|
@ -379,27 +472,27 @@ const getGroupList = (titleKey, trName) => {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
let _arr = translateArray(arr)
|
let _arr = translateArray(arr)
|
||||||
return _arr;
|
return _arr
|
||||||
}
|
}
|
||||||
|
|
||||||
// 数组转化
|
// 数组转化
|
||||||
const translateArray = (list) => {
|
const translateArray = (list) => {
|
||||||
let arr = []
|
let arr = []
|
||||||
if (list.every(v => JSON.stringify(v) == '{}')) {
|
if (list.every((v) => JSON.stringify(v) == '{}')) {
|
||||||
arr = []
|
arr = []
|
||||||
} else {
|
} else {
|
||||||
let itemObj = list.find(v => JSON.stringify(v) !== '{}')
|
let itemObj = list.find((v) => JSON.stringify(v) !== '{}')
|
||||||
let obj = {}
|
let obj = {}
|
||||||
Object.keys(itemObj).map(v => {
|
Object.keys(itemObj).map((v) => {
|
||||||
let arr2 = []
|
let arr2 = []
|
||||||
list.map(item => {
|
list.map((item) => {
|
||||||
arr2.push(item[v] || '')
|
arr2.push(item[v] || '')
|
||||||
})
|
})
|
||||||
obj[v] = arr2
|
obj[v] = arr2
|
||||||
})
|
})
|
||||||
arr.push(obj);
|
arr.push(obj)
|
||||||
}
|
}
|
||||||
return arr;
|
return arr
|
||||||
}
|
}
|
||||||
|
|
||||||
// 获取算法列表
|
// 获取算法列表
|
||||||
|
@ -407,9 +500,7 @@ const getList = () => {
|
||||||
const data = {
|
const data = {
|
||||||
deptIds: [],
|
deptIds: [],
|
||||||
districtId: '',
|
districtId: '',
|
||||||
infoList: [
|
infoList: [{ attrType: '组件类型', attrValue: '智能算法' }],
|
||||||
{ attrType: "组件类型", attrValue: "智能算法" }
|
|
||||||
],
|
|
||||||
name: '',
|
name: '',
|
||||||
orderField: 'total',
|
orderField: 'total',
|
||||||
orderType: 'DESC',
|
orderType: 'DESC',
|
||||||
|
@ -419,7 +510,8 @@ const getList = () => {
|
||||||
type: '',
|
type: '',
|
||||||
}
|
}
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
pageWithAttrs(data).then((res) => {
|
pageWithAttrs(data)
|
||||||
|
.then((res) => {
|
||||||
dataList.value = res.data.data.records || []
|
dataList.value = res.data.data.records || []
|
||||||
nextTick(() => {
|
nextTick(() => {
|
||||||
// 默认前两个
|
// 默认前两个
|
||||||
|
@ -427,7 +519,8 @@ const getList = () => {
|
||||||
// selectedRowKeys.value.push(dataList.value[1].id)
|
// selectedRowKeys.value.push(dataList.value[1].id)
|
||||||
})
|
})
|
||||||
resolve(res)
|
resolve(res)
|
||||||
}).catch(err => {
|
})
|
||||||
|
.catch((err) => {
|
||||||
reject(err)
|
reject(err)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
@ -452,9 +545,9 @@ const addList = () => {
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleOk = () => {
|
const handleOk = () => {
|
||||||
if (selectedRowKeys.length > 4) {
|
if (selectedRowKeys.value.length > 4) {
|
||||||
message.error('最多选择四个算法!')
|
message.error('最多选择四个算法!')
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
initData()
|
initData()
|
||||||
showAddModal.value = false
|
showAddModal.value = false
|
||||||
|
@ -467,20 +560,19 @@ const handleCancel = () => {
|
||||||
const rowSelection = computed(() => {
|
const rowSelection = computed(() => {
|
||||||
return {
|
return {
|
||||||
selectedRowKeys: unref(selectedRowKeys),
|
selectedRowKeys: unref(selectedRowKeys),
|
||||||
onChange: changableRowKeys => {
|
onChange: (changableRowKeys) => {
|
||||||
if (changableRowKeys.length > 4) {
|
if (changableRowKeys.length > 4) {
|
||||||
message.error('最多选择四个算法!')
|
message.error('最多选择四个算法!')
|
||||||
} else {
|
} else {
|
||||||
selectedRowKeys.value = changableRowKeys;
|
selectedRowKeys.value = changableRowKeys
|
||||||
}
|
}
|
||||||
if (selectedRowKeys.value.length > 4) {
|
if (selectedRowKeys.value.length > 4) {
|
||||||
selectedRowKeys.value = selectedRowKeys.value.splice(4)
|
selectedRowKeys.value = selectedRowKeys.value.splice(4)
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
hideDefaultSelections: true,
|
hideDefaultSelections: true,
|
||||||
};
|
}
|
||||||
});
|
})
|
||||||
|
|
||||||
|
|
||||||
// 动态获取高度
|
// 动态获取高度
|
||||||
const getHeight = (name) => {
|
const getHeight = (name) => {
|
||||||
|
@ -497,16 +589,17 @@ const showVideo = (name) => {
|
||||||
if (name.indexOf('视频') !== -1) {
|
if (name.indexOf('视频') !== -1) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// 获取详情
|
// 获取详情
|
||||||
const getDetail = (id) => {
|
const getDetail = (id) => {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
selectOne(id).then((res) => {
|
selectOne(id)
|
||||||
|
.then((res) => {
|
||||||
resolve(res.data && res.data.data)
|
resolve(res.data && res.data.data)
|
||||||
}).catch(err => {
|
})
|
||||||
|
.catch((err) => {
|
||||||
reject(err)
|
reject(err)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
@ -519,7 +612,7 @@ const isJson = (str) => {
|
||||||
let obj = JSON.parse(str)
|
let obj = JSON.parse(str)
|
||||||
return true
|
return true
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return false;
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -527,16 +620,16 @@ const isJson = (str) => {
|
||||||
// infoList数组处理
|
// infoList数组处理
|
||||||
const formatterData = (obj) => {
|
const formatterData = (obj) => {
|
||||||
let _newObj = {}
|
let _newObj = {}
|
||||||
obj.infoList.map(v => {
|
obj.infoList.map((v) => {
|
||||||
_newObj[v.attrType] = isJson(v.attrValue) ? JSON.parse(v.attrValue) : v.attrValue;
|
_newObj[v.attrType] = isJson(v.attrValue)
|
||||||
|
? JSON.parse(v.attrValue)
|
||||||
|
: v.attrValue
|
||||||
})
|
})
|
||||||
let _obj = Object.assign({}, obj, _newObj)
|
let _obj = Object.assign({}, obj, _newObj)
|
||||||
return _obj
|
return _obj
|
||||||
}
|
}
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
<style lang="less" scoped>
|
<style lang="less" scoped>
|
||||||
.bg {
|
.bg {
|
||||||
background: #fff;
|
background: #fff;
|
||||||
|
@ -596,7 +689,6 @@ const formatterData = (obj) => {
|
||||||
padding-left: 10px;
|
padding-left: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.left {
|
.left {
|
||||||
width: 200px;
|
width: 200px;
|
||||||
height: 600px;
|
height: 600px;
|
||||||
|
@ -653,7 +745,6 @@ const formatterData = (obj) => {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.icon-delete {
|
.icon-delete {
|
||||||
position: absolute;
|
position: absolute;
|
||||||
right: 10px;
|
right: 10px;
|
||||||
|
@ -666,7 +757,6 @@ const formatterData = (obj) => {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.bottom {
|
.bottom {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
|
@ -695,7 +785,6 @@ const formatterData = (obj) => {
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.td {
|
.td {
|
||||||
|
@ -711,7 +800,6 @@ const formatterData = (obj) => {
|
||||||
table-layout: fixed;
|
table-layout: fixed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.td-text {
|
.td-text {
|
||||||
width: 290px;
|
width: 290px;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
|
@ -726,7 +814,6 @@ const formatterData = (obj) => {
|
||||||
width: 200px;
|
width: 200px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.row-tr {
|
.row-tr {
|
||||||
border: 1px solid #dddee1;
|
border: 1px solid #dddee1;
|
||||||
border-right: none;
|
border-right: none;
|
||||||
|
@ -754,7 +841,6 @@ const formatterData = (obj) => {
|
||||||
.no-data {
|
.no-data {
|
||||||
height: 100px;
|
height: 100px;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
;
|
|
||||||
display: flex;
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
@ -804,4 +890,7 @@ const formatterData = (obj) => {
|
||||||
color: #212121;
|
color: #212121;
|
||||||
border-bottom: 1px solid #dddee1;
|
border-bottom: 1px solid #dddee1;
|
||||||
}
|
}
|
||||||
|
:deep(.ant-checkbox-indeterminate) {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
</style>
|
</style>
|
|
@ -20,6 +20,18 @@
|
||||||
labelAlign="left"
|
labelAlign="left"
|
||||||
autocomplete="off"
|
autocomplete="off"
|
||||||
>
|
>
|
||||||
|
<div class="base-info">
|
||||||
|
<a-form-item
|
||||||
|
label="申请标题"
|
||||||
|
name="title"
|
||||||
|
:rules="[{ required: true, message: '请输入申请标题' }]"
|
||||||
|
>
|
||||||
|
<a-input
|
||||||
|
placeholder="请输入能力申请标题"
|
||||||
|
v-model:value="formName.title"
|
||||||
|
/>
|
||||||
|
</a-form-item>
|
||||||
|
</div>
|
||||||
<div class="base-info">
|
<div class="base-info">
|
||||||
<a-form-item
|
<a-form-item
|
||||||
label="申请人信息"
|
label="申请人信息"
|
||||||
|
@ -59,71 +71,71 @@
|
||||||
<a-input
|
<a-input
|
||||||
placeholder="请输入单位"
|
placeholder="请输入单位"
|
||||||
v-model:value="formName.unit"
|
v-model:value="formName.unit"
|
||||||
|
disabled
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="base-info">
|
||||||
<a-form-item
|
<a-form-item
|
||||||
style="margin-bottom: 10px"
|
label="应用系统"
|
||||||
label="申请应用"
|
name="applicationSystem"
|
||||||
name="system"
|
:rules="[{ required: true, message: '请选择应用系统' }]"
|
||||||
:rules="[{ required: true, message: '请输入申请应用' }]"
|
|
||||||
>
|
>
|
||||||
<!-- <a-tooltip placement="top"> -->
|
<a-select
|
||||||
<!-- <template #title>
|
v-model:value="formName.applicationSystem"
|
||||||
<span>{{ formName.formNameSystem }}</span>
|
show-search
|
||||||
</template> -->
|
placeholder="请选择应用系统"
|
||||||
<a-input
|
style="width: 200px"
|
||||||
style="width: 350px; background-color: #f5f5f5"
|
:options="systemOptions"
|
||||||
v-model:value="formName.formNameSystem"
|
@focus="handleFocus"
|
||||||
:disabled="disabled"
|
@blur="handleBlur"
|
||||||
/>
|
@change="systemHandleChange"
|
||||||
<span style="width: 350px; background-color: #f5f5f5"></span>
|
@search="systemHandleSearch"
|
||||||
<!-- </a-tooltip> -->
|
></a-select>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<a-form-item
|
<a-form-item
|
||||||
style="margin-bottom: 10px"
|
class="applicationScene"
|
||||||
label="应用场景"
|
label="应用场景"
|
||||||
name="scene"
|
name="applicationScene"
|
||||||
:rules="[{ required: true, message: '请输入应用场景' }]"
|
:rules="[{ required: true, message: '请选择应用场景' }]"
|
||||||
|
style="width: 6.93rem"
|
||||||
>
|
>
|
||||||
<a-textarea
|
<a-select
|
||||||
style="
|
v-model:value="formName.applicationScene"
|
||||||
width: 500px;
|
:options="applicationSceneOpthion"
|
||||||
height: 150px;
|
mode="tags"
|
||||||
font-size: 16px;
|
:size="size"
|
||||||
line-height: 24px;
|
placeholder="请选择应用场景"
|
||||||
color: #333;
|
:filterOption="false"
|
||||||
border: 1px solid #e0e0e0;
|
:searchValue="false"
|
||||||
resize: none;
|
style="width: 5.87rem"
|
||||||
border-radius: 6px;
|
></a-select>
|
||||||
padding: 10px;
|
|
||||||
"
|
|
||||||
v-model:value="formName.scene"
|
|
||||||
/>
|
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
<a-form-item
|
<a-form-item
|
||||||
style="margin-bottom: 10px"
|
label="应用背景"
|
||||||
label="申请依据"
|
name="applicationBackground"
|
||||||
name="basis"
|
:rules="[{ required: true, message: '请输入应用背景' }]"
|
||||||
:rules="[{ required: true, message: '请输入申请依据' }]"
|
|
||||||
>
|
>
|
||||||
<a-textarea
|
<a-input
|
||||||
style="
|
placeholder="请输入应用背景"
|
||||||
width: 500px;
|
v-model:value="formName.applicationBackground"
|
||||||
height: 150px;
|
|
||||||
font-size: 16px;
|
|
||||||
line-height: 24px;
|
|
||||||
color: #333;
|
|
||||||
border: 1px solid #e0e0e0;
|
|
||||||
border-radius: 6px;
|
|
||||||
padding: 10px;
|
|
||||||
resize: none;
|
|
||||||
"
|
|
||||||
v-model:value="formName.basis"
|
|
||||||
/>
|
/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<a-form-item
|
||||||
|
label="期望效果"
|
||||||
|
name="effectWish"
|
||||||
|
:rules="[{ required: true, message: '请输入期望效果' }]"
|
||||||
|
>
|
||||||
|
<a-input
|
||||||
|
placeholder="请输入期望效果"
|
||||||
|
v-model:value="formName.effectWish"
|
||||||
|
/>
|
||||||
|
</a-form-item>
|
||||||
|
</div>
|
||||||
|
|
||||||
<a-form-item
|
<a-form-item
|
||||||
style="color: #666; font-size: 16px"
|
style="color: #666; font-size: 16px"
|
||||||
|
@ -206,11 +218,7 @@
|
||||||
<div>
|
<div>
|
||||||
<img src="../../assets/home/success.png" alt="" />
|
<img src="../../assets/home/success.png" alt="" />
|
||||||
</div>
|
</div>
|
||||||
<p>
|
<p>您已成功申请能力,请耐心等待审批结果,结果会第一时间通知您!</p>
|
||||||
您已成功申请{{
|
|
||||||
formName.formNameSystem || ''
|
|
||||||
}},请耐心等待审批结果,结果会第一时间通知您!
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</article>
|
</article>
|
||||||
|
@ -238,8 +246,10 @@
|
||||||
relaunch,
|
relaunch,
|
||||||
selectOne,
|
selectOne,
|
||||||
} from '@/api/home'
|
} from '@/api/home'
|
||||||
|
import { getCategoryTreePage } from '@/api/personalCenter'
|
||||||
import mybus from '@/myplugins/mybus'
|
import mybus from '@/myplugins/mybus'
|
||||||
import { sgcDel, getApplyForm } from '@/api/personalCenter'
|
import { sgcDel, getApplyForm } from '@/api/personalCenter'
|
||||||
|
import { pageWithAttrs } from '@/api/home'
|
||||||
// import { baseURL } from '@/config'
|
// import { baseURL } from '@/config'
|
||||||
// import AsideMenu from './components/asideMenu.vue'
|
// import AsideMenu from './components/asideMenu.vue'
|
||||||
|
|
||||||
|
@ -257,16 +267,18 @@
|
||||||
const disabled = ref(false)
|
const disabled = ref(false)
|
||||||
const baseURL = window.SITE_CONFIG.apiURL
|
const baseURL = window.SITE_CONFIG.apiURL
|
||||||
let record = ref('1')
|
let record = ref('1')
|
||||||
|
const text = ref('')
|
||||||
const formName = reactive({
|
const formName = reactive({
|
||||||
|
title: '', // 标题
|
||||||
|
applicationSystem: [], // 应用系统
|
||||||
|
applicationScene: [], // 应用场景
|
||||||
|
applicationBackground: '', // 应用背景
|
||||||
|
effectWish: '', // 期望效果
|
||||||
user: '',
|
user: '',
|
||||||
userId: '',
|
userId: '',
|
||||||
phone: '',
|
phone: '',
|
||||||
unit: '',
|
unit: '',
|
||||||
area: '',
|
|
||||||
system: [],
|
system: [],
|
||||||
scene: '',
|
|
||||||
basis: '',
|
|
||||||
formNameSystem: '',
|
|
||||||
enclosure: '', //附件
|
enclosure: '', //附件
|
||||||
})
|
})
|
||||||
const dataList = ref([])
|
const dataList = ref([])
|
||||||
|
@ -294,7 +306,21 @@
|
||||||
// console.log('回填数据================>', res, formName.phone)
|
// console.log('回填数据================>', res, formName.phone)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
const applicationSceneOpthion = ref([])
|
||||||
|
getCategoryTreePage({
|
||||||
|
page: 1,
|
||||||
|
limit: 20,
|
||||||
|
dictTypeId: '1513712507692818433',
|
||||||
|
deFlage: 0,
|
||||||
|
}).then((res) => {
|
||||||
|
res.data.data.list.map((val) => {
|
||||||
|
applicationSceneOpthion.value.push({
|
||||||
|
value: val.dictLabel,
|
||||||
|
label: val.dictLabel,
|
||||||
|
})
|
||||||
|
})
|
||||||
|
// console.log('字典值========>', applicationSceneOpthion.value)
|
||||||
|
})
|
||||||
// console.log(formName.system)
|
// console.log(formName.system)
|
||||||
const formRef = ref()
|
const formRef = ref()
|
||||||
const applySuccess = ref(true)
|
const applySuccess = ref(true)
|
||||||
|
@ -350,6 +376,31 @@
|
||||||
if (!formName) {
|
if (!formName) {
|
||||||
return message.error('请设置表单名称')
|
return message.error('请设置表单名称')
|
||||||
}
|
}
|
||||||
|
let ids = []
|
||||||
|
formName.system = []
|
||||||
|
list.value.map((val) => {
|
||||||
|
val.arr.map((item) => {
|
||||||
|
formName.system.push({
|
||||||
|
resourceId: item.resourceId,
|
||||||
|
resourceName: item.resourceName,
|
||||||
|
})
|
||||||
|
console.log(item.id)
|
||||||
|
ids.push(item.id)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
console.log('提交数据==========================>', formName, ids)
|
||||||
|
submitApply(formName).then((res) => {
|
||||||
|
applySuccess.value = false
|
||||||
|
message.success('操作成功!')
|
||||||
|
console.log('能力申请================>', res)
|
||||||
|
if (ids) {
|
||||||
|
sgcDel({ ids: ids }).then((res) => {
|
||||||
|
if (res.data.msg === 'success') {
|
||||||
|
mybus.emit('getSgcNum')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
// if (arr && arr.length !== 0) {
|
// if (arr && arr.length !== 0) {
|
||||||
// console.log('提交')
|
// console.log('提交')
|
||||||
// const obj = ref({})
|
// const obj = ref({})
|
||||||
|
@ -480,6 +531,7 @@
|
||||||
label: '交通运输局',
|
label: '交通运输局',
|
||||||
},
|
},
|
||||||
])
|
])
|
||||||
|
const systemOptions = ref([])
|
||||||
|
|
||||||
const handleChange = (info) => {
|
const handleChange = (info) => {
|
||||||
if (info.file.status !== 'uploading') {
|
if (info.file.status !== 'uploading') {
|
||||||
|
@ -538,6 +590,63 @@
|
||||||
// })
|
// })
|
||||||
// })
|
// })
|
||||||
// })
|
// })
|
||||||
|
// 应用系统下拉
|
||||||
|
const flag = ref(true)
|
||||||
|
const systemHandleChange = (value) => {
|
||||||
|
console.log(`selected ${value}`)
|
||||||
|
}
|
||||||
|
const systemHandleSearch = (value) => {
|
||||||
|
console.log(`search ${value}`)
|
||||||
|
text.value = value
|
||||||
|
systemOptions.value = []
|
||||||
|
window.setTimeout(() => {
|
||||||
|
if (flag.value && text.value == value && text.value !== '') {
|
||||||
|
console.log('1秒未输入~~~~~~~~~~~~~~~~~~~~~~~~~~')
|
||||||
|
pageWithAttrs({
|
||||||
|
pageNum: 99999,
|
||||||
|
pageSize: 5,
|
||||||
|
type: '应用资源',
|
||||||
|
name: text.value,
|
||||||
|
infoList: [],
|
||||||
|
}).then((res) => {
|
||||||
|
if (res.data.code == 0) {
|
||||||
|
if (res.data.data.records.length == 0) {
|
||||||
|
message.warning('该关键词,暂无应用资源!')
|
||||||
|
} else {
|
||||||
|
res.data.data.records.map((val) => {
|
||||||
|
systemOptions.value.push({
|
||||||
|
value: val.name,
|
||||||
|
label: val.name,
|
||||||
|
})
|
||||||
|
})
|
||||||
|
console.log(
|
||||||
|
'第一次获取===================>',
|
||||||
|
systemOptions.value
|
||||||
|
)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
message.error('获取数据失败!')
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}, 500)
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleBlur = () => {
|
||||||
|
console.log('blur')
|
||||||
|
flag.value = false
|
||||||
|
}
|
||||||
|
|
||||||
|
const handleFocus = () => {
|
||||||
|
console.log('focus')
|
||||||
|
flag.value = true
|
||||||
|
systemOptions.value = []
|
||||||
|
}
|
||||||
|
|
||||||
|
// const filterOption = (input, option) => {
|
||||||
|
// return option.value.toLowerCase().indexOf(input.toLowerCase()) >= 0
|
||||||
|
// }
|
||||||
|
|
||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(() => {
|
||||||
mybus.off('reomveOldData')
|
mybus.off('reomveOldData')
|
||||||
})
|
})
|
||||||
|
@ -561,6 +670,12 @@
|
||||||
baseURL,
|
baseURL,
|
||||||
beforeUpload,
|
beforeUpload,
|
||||||
dataList,
|
dataList,
|
||||||
|
systemHandleChange,
|
||||||
|
systemHandleSearch,
|
||||||
|
handleBlur,
|
||||||
|
handleFocus,
|
||||||
|
systemOptions,
|
||||||
|
applicationSceneOpthion,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
@ -599,6 +714,7 @@
|
||||||
}
|
}
|
||||||
.base-info {
|
.base-info {
|
||||||
display: flex;
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
}
|
}
|
||||||
:deep(.ant-form-item-label) {
|
:deep(.ant-form-item-label) {
|
||||||
label {
|
label {
|
||||||
|
@ -631,4 +747,12 @@
|
||||||
color: #000;
|
color: #000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.applicationScene {
|
||||||
|
:deep(.ant-select-selector) {
|
||||||
|
overflow-x: scroll;
|
||||||
|
}
|
||||||
|
:deep(.ant-select-selection-overflow) {
|
||||||
|
flex-wrap: nowrap;
|
||||||
|
}
|
||||||
|
}
|
||||||
</style>
|
</style>
|
||||||
|
|
|
@ -51,6 +51,7 @@
|
||||||
<script setup>
|
<script setup>
|
||||||
import { ref, reactive, defineProps } from 'vue'
|
import { ref, reactive, defineProps } from 'vue'
|
||||||
import mybus from '@/myplugins/mybus'
|
import mybus from '@/myplugins/mybus'
|
||||||
|
import { updateVisits } from '@/api/home'
|
||||||
const props = defineProps({
|
const props = defineProps({
|
||||||
resourceList: { type: Array, default: null },
|
resourceList: { type: Array, default: null },
|
||||||
resourceTotal: { type: String, default: '' },
|
resourceTotal: { type: String, default: '' },
|
||||||
|
@ -63,6 +64,19 @@
|
||||||
})
|
})
|
||||||
const current = ref(1)
|
const current = ref(1)
|
||||||
const openHref = (item) => {
|
const openHref = (item) => {
|
||||||
|
console.log(item.id, 'wowowo')
|
||||||
|
console.log(item.visits, 'wowowo')
|
||||||
|
const arrList = ref([])
|
||||||
|
arrList.value = JSON.parse(window.sessionStorage.getItem('visits'))
|
||||||
|
if (arrList.value.indexOf(item.id) === -1) {
|
||||||
|
arrList.value.push(item.id)
|
||||||
|
updateVisits({
|
||||||
|
id: item.id,
|
||||||
|
visits: item.visits || '0',
|
||||||
|
}).then(() => {
|
||||||
|
window.sessionStorage.setItem('visits', JSON.stringify(arrList.value))
|
||||||
|
})
|
||||||
|
}
|
||||||
window.open(item.link)
|
window.open(item.link)
|
||||||
// window.open(
|
// window.open(
|
||||||
// window.SITE_CONFIG.previewUrl +
|
// window.SITE_CONFIG.previewUrl +
|
||||||
|
|
|
@ -11,10 +11,13 @@
|
||||||
:key="itemContent"
|
:key="itemContent"
|
||||||
@click="tabClick(index, itemContent, itemContent)"
|
@click="tabClick(index, itemContent, itemContent)"
|
||||||
:class="
|
:class="
|
||||||
clickList[index].content.indexOf(itemContent) != -1 ? 'down' : ''
|
clickList[index].content.indexOf(itemContent.labelName) != -1 ||
|
||||||
|
clickList[index].content.indexOf(itemContent) != -1
|
||||||
|
? 'down'
|
||||||
|
: ''
|
||||||
"
|
"
|
||||||
>
|
>
|
||||||
{{ itemContent }}
|
{{ itemContent.labelName || itemContent }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -43,11 +46,11 @@
|
||||||
<!-- 搜索@search="onSearch" -->
|
<!-- 搜索@search="onSearch" -->
|
||||||
<div class="searchInput">
|
<div class="searchInput">
|
||||||
<a-input-search
|
<a-input-search
|
||||||
v-model:value="name"
|
v-model:value="mapSearchParam.cameraName"
|
||||||
placeholder="请输入关键词"
|
placeholder="请输入关键词"
|
||||||
enter-button="搜索"
|
enter-button="搜索"
|
||||||
size="large"
|
size="large"
|
||||||
@change="onSearch"
|
@change="getCamera"
|
||||||
/>
|
/>
|
||||||
<a-button
|
<a-button
|
||||||
type="primary"
|
type="primary"
|
||||||
|
@ -85,20 +88,70 @@
|
||||||
selectedRowKeys: selectedRowKeys,
|
selectedRowKeys: selectedRowKeys,
|
||||||
onChange: onSelectChange,
|
onChange: onSelectChange,
|
||||||
}"
|
}"
|
||||||
></a-table>
|
>
|
||||||
|
<template #bodyCell="{ column, record }">
|
||||||
|
<template v-if="column.dataIndex === 'operation'">
|
||||||
|
<a @click="openVideo(record.channelCode)">预览</a>
|
||||||
|
</template>
|
||||||
|
</template>
|
||||||
|
</a-table>
|
||||||
</div>
|
</div>
|
||||||
|
<a-modal
|
||||||
|
v-model:visible="visible"
|
||||||
|
title="视频预览"
|
||||||
|
:width="750"
|
||||||
|
destroyOnClose
|
||||||
|
>
|
||||||
|
<template #footer></template>
|
||||||
|
<div style="width: 100%; display: flex; justify-content: center">
|
||||||
|
<div style="width: 100%; height: 100%">
|
||||||
|
<vue3VideoPlay v-bind="options" />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a-modal>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script setup>
|
<script setup>
|
||||||
import VideoSurveillance from '@/views/home/videoSurveillance'
|
import VideoSurveillance from '@/views/home/videoSurveillance'
|
||||||
import { getCategoryTreePage } from '@/api/personalCenter'
|
import { getCategoryTreePage } from '@/api/personalCenter'
|
||||||
import { dataType } from 'element-plus/es/components/table-v2/src/common'
|
import { dataType } from 'element-plus/es/components/table-v2/src/common'
|
||||||
import { ref, onMounted } from 'vue'
|
import { ref, reactive, onMounted } from 'vue'
|
||||||
import { getCameraByParentId } from '@/api/videoSurveillance'
|
import {
|
||||||
|
getCameraByParentId,
|
||||||
|
getStreamByChannelCode,
|
||||||
|
getCameraAllLabel,
|
||||||
|
} from '@/api/videoSurveillance'
|
||||||
import { sgcInsert } from '@/api/home'
|
import { sgcInsert } from '@/api/home'
|
||||||
import { message } from 'ant-design-vue'
|
import { message } from 'ant-design-vue'
|
||||||
import mybus from '@/myplugins/mybus'
|
import mybus from '@/myplugins/mybus'
|
||||||
|
const options = reactive({
|
||||||
|
width: '700px', //播放器宽度
|
||||||
|
height: '400px', //播放器高度
|
||||||
|
color: '#409eff', //主题色
|
||||||
|
title: '', //视频名称
|
||||||
|
src: '', //视频源
|
||||||
|
type: 'm3u8', // 视频源类型
|
||||||
|
muted: false, //静音
|
||||||
|
webFullScreen: false,
|
||||||
|
speedRate: ['0.75', '1.0', '1.25', '1.5', '2.0'], //播放倍速
|
||||||
|
autoPlay: true, //自动播放
|
||||||
|
loop: false, //循环播放
|
||||||
|
mirror: false, //镜像画面
|
||||||
|
ligthOff: false, //关灯模式
|
||||||
|
volume: 0.3, //默认音量大小
|
||||||
|
control: true, //是否显示控制
|
||||||
|
controlBtns: [
|
||||||
|
'audioTrack',
|
||||||
|
'quality',
|
||||||
|
'speedRate',
|
||||||
|
'volume',
|
||||||
|
'setting',
|
||||||
|
'pip',
|
||||||
|
'pageFullScreen',
|
||||||
|
'fullScreen',
|
||||||
|
], //显示所有按钮,
|
||||||
|
})
|
||||||
|
let visible = ref(false)
|
||||||
const pagination = ref({
|
const pagination = ref({
|
||||||
total: 0,
|
total: 0,
|
||||||
current: 1,
|
current: 1,
|
||||||
|
@ -109,12 +162,14 @@
|
||||||
const mapSearchParam = ref({
|
const mapSearchParam = ref({
|
||||||
// 地图搜索初始化数据
|
// 地图搜索初始化数据
|
||||||
parentId: '',
|
parentId: '',
|
||||||
|
cameraName: '',
|
||||||
checkStatus: '1',
|
checkStatus: '1',
|
||||||
pageNum: pagination.value.current,
|
pageNum: pagination.value.current,
|
||||||
pageSize: pagination.value.pageSize,
|
pageSize: pagination.value.pageSize,
|
||||||
gpsX: '',
|
gpsX: '',
|
||||||
gpsY: '',
|
gpsY: '',
|
||||||
radius: '',
|
radius: '',
|
||||||
|
labelCodes: [],
|
||||||
})
|
})
|
||||||
const showMap = ref(true)
|
const showMap = ref(true)
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
|
@ -144,6 +199,17 @@
|
||||||
content: [],
|
content: [],
|
||||||
},
|
},
|
||||||
])
|
])
|
||||||
|
const openVideo = (id) => {
|
||||||
|
console.log('打开视频', id)
|
||||||
|
const param = {
|
||||||
|
channelCode: id,
|
||||||
|
}
|
||||||
|
getStreamByChannelCode(param).then((res) => {
|
||||||
|
console.log(res)
|
||||||
|
visible.value = true
|
||||||
|
options.value.src = res.data.data
|
||||||
|
})
|
||||||
|
}
|
||||||
// const dataTypeList = () => {
|
// const dataTypeList = () => {
|
||||||
// if (tabList.value[0].content.indexOf('视频资源') != -1) {
|
// if (tabList.value[0].content.indexOf('视频资源') != -1) {
|
||||||
// tabList.value[1].content = ['123344', '213124']
|
// tabList.value[1].content = ['123344', '213124']
|
||||||
|
@ -173,6 +239,7 @@
|
||||||
let tableHeight = ref('600')
|
let tableHeight = ref('600')
|
||||||
//tab切换点击事件
|
//tab切换点击事件
|
||||||
const tabClick = (indexFather, name) => {
|
const tabClick = (indexFather, name) => {
|
||||||
|
debugger
|
||||||
if (clickList.value[indexFather].content.indexOf(name) != -1) {
|
if (clickList.value[indexFather].content.indexOf(name) != -1) {
|
||||||
if (name == '视频资源') {
|
if (name == '视频资源') {
|
||||||
tableHeight.value = 330
|
tableHeight.value = 330
|
||||||
|
@ -195,14 +262,12 @@
|
||||||
tabList.value[1].content = []
|
tabList.value[1].content = []
|
||||||
clickList.value[1].content = []
|
clickList.value[1].content = []
|
||||||
clickList.value[indexFather].content[0] = name
|
clickList.value[indexFather].content[0] = name
|
||||||
const params = {
|
getCameraAllLabel().then((res) => {
|
||||||
page: 1,
|
res.data.data.forEach((val) => {
|
||||||
limit: 50,
|
tabList.value[1].content.push({
|
||||||
dictTypeId: '1541336217898848257',
|
labelCode: val.labelCode,
|
||||||
}
|
labelName: val.labelName,
|
||||||
getCategoryTreePage(params).then((res) => {
|
})
|
||||||
res.data.data.list.forEach((val) => {
|
|
||||||
tabList.value[1].content.push(val.dictLabel)
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
} else if (name == '云资源') {
|
} else if (name == '云资源') {
|
||||||
|
@ -230,22 +295,26 @@
|
||||||
clickList.value[indexFather].content.push(name)
|
clickList.value[indexFather].content.push(name)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
console.log('clickList.value', clickList.value)
|
// 改变查询摄像头接口的labelCode数组
|
||||||
|
mapSearchParam.value.labelCodes = []
|
||||||
|
clickList.value[1].content.map((item) => {
|
||||||
|
mapSearchParam.value.labelCodes.push(item.labelCode)
|
||||||
|
})
|
||||||
|
console.log('选中的标签code', mapSearchParam.value)
|
||||||
|
mapSearchParam.value.labelCodes = mapSearchParam.value.labelCodes + ''
|
||||||
|
getCamera()
|
||||||
}
|
}
|
||||||
// 清空
|
// 清空
|
||||||
const nullClick = () => {
|
const nullClick = () => {
|
||||||
clickList.value[1].content = []
|
clickList.value[1].content = []
|
||||||
|
mapSearchParam.value.labelCodes = ''
|
||||||
|
getCamera()
|
||||||
console.log('hhhhhhhh')
|
console.log('hhhhhhhh')
|
||||||
}
|
}
|
||||||
const name = ref('')
|
|
||||||
// 搜索框
|
|
||||||
const onSearch = (name) => {
|
|
||||||
name.value = name
|
|
||||||
console.log(name.value)
|
|
||||||
}
|
|
||||||
// 重置
|
// 重置
|
||||||
const clean = () => {
|
const clean = () => {
|
||||||
name.value = ''
|
mapSearchParam.value.cameraName = ''
|
||||||
|
getCamera()
|
||||||
}
|
}
|
||||||
// 一键申请
|
// 一键申请
|
||||||
const apply = () => {
|
const apply = () => {
|
||||||
|
@ -287,8 +356,15 @@
|
||||||
{
|
{
|
||||||
title: '归属',
|
title: '归属',
|
||||||
dataIndex: 'nodeName',
|
dataIndex: 'nodeName',
|
||||||
|
width: '60%',
|
||||||
key: 'nodeName',
|
key: 'nodeName',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: '操作',
|
||||||
|
dataIndex: 'operation',
|
||||||
|
width: '10%',
|
||||||
|
key: 'channelId',
|
||||||
|
},
|
||||||
])
|
])
|
||||||
const allClick = ref([])
|
const allClick = ref([])
|
||||||
const onSelectChange = (selectedRowKeys, selectedRows) => {
|
const onSelectChange = (selectedRowKeys, selectedRows) => {
|
||||||
|
|
|
@ -139,6 +139,9 @@
|
||||||
this.addressMatchUrl = window.SITE_CONFIG.POI_URL;
|
this.addressMatchUrl = window.SITE_CONFIG.POI_URL;
|
||||||
// 初始化地址检索服务
|
// 初始化地址检索服务
|
||||||
this.initAddressMatchService()
|
this.initAddressMatchService()
|
||||||
|
this.getCameraAllLabel()
|
||||||
|
// 初始化展示所有摄像头
|
||||||
|
// this.getCameraAllPage()
|
||||||
// this.getMapPoint()
|
// this.getMapPoint()
|
||||||
// 根据parentId查询摄像头列表
|
// 根据parentId查询摄像头列表
|
||||||
mybus.off('getCameraByParentId')
|
mybus.off('getCameraByParentId')
|
||||||
|
@ -169,7 +172,7 @@
|
||||||
const type = e.layerType;
|
const type = e.layerType;
|
||||||
const circleLayer = e.layer;
|
const circleLayer = e.layer;
|
||||||
if (type === 'circle') {
|
if (type === 'circle') {
|
||||||
const radius = (e.layer._mRadius).toFixed(2)
|
const radius = (e.layer._mRadius)
|
||||||
if (radius > 5000) {
|
if (radius > 5000) {
|
||||||
message.info('最大支持5km范围的圈选')
|
message.info('最大支持5km范围的圈选')
|
||||||
} else {
|
} else {
|
||||||
|
@ -177,8 +180,8 @@
|
||||||
this.hiMap.mapObj.featureGroup.addLayer(circlePloygonLayer);
|
this.hiMap.mapObj.featureGroup.addLayer(circlePloygonLayer);
|
||||||
this.hiMap.mapObj.layerGroup.set('circlePloygonLayer', circlePloygonLayer);
|
this.hiMap.mapObj.layerGroup.set('circlePloygonLayer', circlePloygonLayer);
|
||||||
console.log('查询图层为何发生了改变', e.layer);
|
console.log('查询图层为何发生了改变', e.layer);
|
||||||
this.mapSearchParam.gpsX = e.layer._latlng.lng.toFixed(2)
|
this.mapSearchParam.gpsX = e.layer._latlng.lng
|
||||||
this.mapSearchParam.gpsY = e.layer._latlng.lat.toFixed(2)
|
this.mapSearchParam.gpsY = e.layer._latlng.lat
|
||||||
this.mapSearchParam.radius = radius
|
this.mapSearchParam.radius = radius
|
||||||
const params = {
|
const params = {
|
||||||
gpsX: this.mapSearchParam.gpsX,
|
gpsX: this.mapSearchParam.gpsX,
|
||||||
|
@ -251,20 +254,23 @@
|
||||||
this.addressMatchService.code(geoCodeParam, match);
|
this.addressMatchService.code(geoCodeParam, match);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
// getCameraAllPage(page) {
|
getCameraAllPage(page) {
|
||||||
// let params = {
|
let params = {
|
||||||
// name: '',
|
name: '',
|
||||||
// page: page,
|
page: page,
|
||||||
// pageSize: 20000,
|
pageSize: 20000,
|
||||||
// }
|
}
|
||||||
// selectByChannelName(params).then((res) => {
|
getCameraAll(params).then((res) => {
|
||||||
// // let t1 = new Date().getTime();
|
// let t1 = new Date().getTime();
|
||||||
// this.cameraAllData = res.data.data
|
// this.cameraAllData = res.data.data
|
||||||
// this.addResourceTomap('全部', res.data.data)
|
this.addResourceTomap('videoMap', res.data)
|
||||||
// // let t2 = new Date().getTime();
|
// let t2 = new Date().getTime();
|
||||||
// // console.log("时间#############" + (t2 - t1));
|
// console.log("时间#############" + (t2 - t1));
|
||||||
// })
|
})
|
||||||
// },
|
},
|
||||||
|
getCameraAllLabel() {
|
||||||
|
|
||||||
|
},
|
||||||
tabChange(item) {
|
tabChange(item) {
|
||||||
if (this.checkboxGroup.indexOf(item.labelName) !== -1) {
|
if (this.checkboxGroup.indexOf(item.labelName) !== -1) {
|
||||||
if (item.labelName == '全部') {
|
if (item.labelName == '全部') {
|
||||||
|
|
|
@ -108,6 +108,7 @@
|
||||||
username: this.form.username,
|
username: this.form.username,
|
||||||
})
|
})
|
||||||
window.sessionStorage.setItem('visits', JSON.stringify([]))
|
window.sessionStorage.setItem('visits', JSON.stringify([]))
|
||||||
|
console.log('添加visits========================================>')
|
||||||
// console.log(this.handleRoute())
|
// console.log(this.handleRoute())
|
||||||
await this.$router.push('/home')
|
await this.$router.push('/home')
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
|
|
@ -21,7 +21,10 @@
|
||||||
</template>
|
</template>
|
||||||
<template #renderItem="{ item }">
|
<template #renderItem="{ item }">
|
||||||
<a-list-item key="item.title">
|
<a-list-item key="item.title">
|
||||||
|
<a-tooltip>
|
||||||
|
<template #title>{{ item.note1 || item.content }}</template>
|
||||||
<a-list-item-meta
|
<a-list-item-meta
|
||||||
|
ellipsis="true"
|
||||||
:description="
|
:description="
|
||||||
item.note1 ? `摘要:${item.note1 || ''}` : item.content
|
item.note1 ? `摘要:${item.note1 || ''}` : item.content
|
||||||
"
|
"
|
||||||
|
@ -41,6 +44,7 @@
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>
|
||||||
</a-list-item-meta>
|
</a-list-item-meta>
|
||||||
|
</a-tooltip>
|
||||||
<div class="pulish-time">发布时间:{{ item.createDate }}</div>
|
<div class="pulish-time">发布时间:{{ item.createDate }}</div>
|
||||||
<!-- <template #extra>
|
<!-- <template #extra>
|
||||||
<a-image
|
<a-image
|
||||||
|
|
|
@ -509,6 +509,7 @@
|
||||||
getTaskHandleDetailInfo,
|
getTaskHandleDetailInfo,
|
||||||
getDemandForm,
|
getDemandForm,
|
||||||
nengliziyuanshangjiaapply,
|
nengliziyuanshangjiaapply,
|
||||||
|
getTaskVariables,
|
||||||
} from '@/api/personalCenter'
|
} from '@/api/personalCenter'
|
||||||
import { selectOneDel } from '@/api/home'
|
import { selectOneDel } from '@/api/home'
|
||||||
const downloadFile = (path, name) => {
|
const downloadFile = (path, name) => {
|
||||||
|
@ -593,6 +594,12 @@
|
||||||
resourceId: { type: String, default: null },
|
resourceId: { type: String, default: null },
|
||||||
})
|
})
|
||||||
const getInfo = () => {
|
const getInfo = () => {
|
||||||
|
console.log(props.processInstanceId, '============================')
|
||||||
|
if (props.processDefinitionName == '能力申请') {
|
||||||
|
getTaskVariables({ taskId: props.processInstanceId }).then((res) => {
|
||||||
|
console.log('获取数据====================>', res.data.data)
|
||||||
|
})
|
||||||
|
}
|
||||||
if (props.processDefinitionName == '能力申请流程') {
|
if (props.processDefinitionName == '能力申请流程') {
|
||||||
getApplyForm(props.businessKey).then((res) => {
|
getApplyForm(props.businessKey).then((res) => {
|
||||||
const { data } = res.data
|
const { data } = res.data
|
||||||
|
@ -662,6 +669,7 @@
|
||||||
})
|
})
|
||||||
|
|
||||||
const getResourceURL = () => {
|
const getResourceURL = () => {
|
||||||
|
console.log('111111111111111111111111111111', Cookies.get('token'))
|
||||||
const params = qs.stringify({
|
const params = qs.stringify({
|
||||||
token: Cookies.get('token'),
|
token: Cookies.get('token'),
|
||||||
// processInstanceId: this.dataForm.processInstanceId
|
// processInstanceId: this.dataForm.processInstanceId
|
||||||
|
|
|
@ -60,7 +60,7 @@
|
||||||
<div class="content-body-content">
|
<div class="content-body-content">
|
||||||
<p class="content-body-content-son">
|
<p class="content-body-content-son">
|
||||||
审核结果:{{
|
审核结果:{{
|
||||||
item.ended ? '审核完成' : item.backToFirst ? '被驳回' : '审核中'
|
item.ended ? '审核完成' : item.backToFirst ? '被终止' : '审核中'
|
||||||
}}
|
}}
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
@ -95,10 +95,16 @@
|
||||||
<div></div>
|
<div></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="button-box">
|
<div class="button-box">
|
||||||
<div class="button" @click="showDetail(item)">查看流程</div>
|
<div
|
||||||
<div class="button" @click="showAdd(item)" v-if="item.backToFirst">
|
class="button"
|
||||||
修改
|
@click="showDetail(item)"
|
||||||
|
v-if="!(item.processDefinitionName == '能力申请')"
|
||||||
|
>
|
||||||
|
查看流程
|
||||||
</div>
|
</div>
|
||||||
|
<!-- <div class="button" @click="showAdd(item)" v-if="item.backToFirst">
|
||||||
|
修改
|
||||||
|
</div> -->
|
||||||
<div
|
<div
|
||||||
v-if="
|
v-if="
|
||||||
!(
|
!(
|
||||||
|
@ -107,7 +113,11 @@
|
||||||
item.ended == false
|
item.ended == false
|
||||||
)
|
)
|
||||||
"
|
"
|
||||||
v-show="item.resourceStatusTip == '正常' && item.ended"
|
v-show="
|
||||||
|
item.resourceStatusTip == '正常' &&
|
||||||
|
item.ended &&
|
||||||
|
item.processDefinitionName !== '能力申请'
|
||||||
|
"
|
||||||
class="button button-details"
|
class="button button-details"
|
||||||
@click="
|
@click="
|
||||||
viewDetail(
|
viewDetail(
|
||||||
|
|
|
@ -95,7 +95,15 @@
|
||||||
<a-list-item>
|
<a-list-item>
|
||||||
<a-skeleton avatar :title="false" :loading="item.loading" active>
|
<a-skeleton avatar :title="false" :loading="item.loading" active>
|
||||||
<a-list-item-meta
|
<a-list-item-meta
|
||||||
:description="item.description || '--'"
|
:description="
|
||||||
|
item.description ||
|
||||||
|
(item.note1 &&
|
||||||
|
JSON.parse(item.note1)[0].channelName +
|
||||||
|
'等' +
|
||||||
|
JSON.parse(item.note1).length +
|
||||||
|
'个摄像头') ||
|
||||||
|
'--'
|
||||||
|
"
|
||||||
style="position: relative"
|
style="position: relative"
|
||||||
>
|
>
|
||||||
<template #title>
|
<template #title>
|
||||||
|
@ -513,6 +521,8 @@
|
||||||
}
|
}
|
||||||
val.checked = true
|
val.checked = true
|
||||||
})
|
})
|
||||||
|
} else {
|
||||||
|
getListByDeptId(item)
|
||||||
}
|
}
|
||||||
item.checkAll = true
|
item.checkAll = true
|
||||||
checkedList.value.push(item.deptId)
|
checkedList.value.push(item.deptId)
|
||||||
|
@ -665,11 +675,18 @@
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
// })
|
// })
|
||||||
if (checkedList.value.length == 0) {
|
if (checkedListAbility.value.length == 0) {
|
||||||
message.error('请先选择需要申请的数据!')
|
message.error('请先选择需要申请的数据!')
|
||||||
} else {
|
} else {
|
||||||
// console.log('一键申请===================>', list.value)
|
let arr = []
|
||||||
localStorage.setItem('applyList', JSON.stringify(list.value))
|
list.value.map((val) => {
|
||||||
|
val.arr = val.children.filter(
|
||||||
|
(item) => checkedListAbility.value.indexOf(item.resourceId) > -1
|
||||||
|
)
|
||||||
|
})
|
||||||
|
arr = list.value.filter((val) => val.arr.length !== 0)
|
||||||
|
console.log('一键申请===================>', arr)
|
||||||
|
localStorage.setItem('applyList', JSON.stringify(arr))
|
||||||
router.push({
|
router.push({
|
||||||
path: '/apply',
|
path: '/apply',
|
||||||
})
|
})
|
||||||
|
|
Loading…
Reference in New Issue