Merge branch 'hi-ucs-dev' of http://192.168.124.50:3000/wuhongjian/hi-ucs into hi-ucs-dev
This commit is contained in:
commit
dd38eba69b
|
@ -10,3 +10,4 @@ back/dist-西海岸-后台管理-v0.8.2.1.zip
|
|||
back/dist-市局-后台管理-v0.8.2.3.zip
|
||||
back/dist-西海岸-后台管理-v0.8.2.4.d.zip
|
||||
*.zip
|
||||
front/public/static/config/basicConfig.js
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
/*
|
||||
* @Author: hisense.wuhongjian
|
||||
* @Date: 2022-08-25 14:37:49
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-10-13 16:46:41
|
||||
* @LastEditors: Light
|
||||
* @LastEditTime: 2022-10-26 10:48:52
|
||||
* @Description: 告诉大家这是什么
|
||||
*/
|
||||
var _global = {}
|
||||
|
@ -43,8 +43,8 @@ var CONFIGITEM = {
|
|||
},
|
||||
dev: {
|
||||
previewUrl: 'http://localhost:8080/',
|
||||
apiURL: 'http://192.168.124.233:8888/renren-admin',
|
||||
websocketURL: 'ws://192.168.124.236:8888/renren-admin/websocket'
|
||||
apiURL: 'http://192.168.124.243:8888/renren-admin',
|
||||
websocketURL: 'ws://192.168.124.243:8888/renren-admin/websocket'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,10 +1,12 @@
|
|||
<template>
|
||||
<div>
|
||||
<el-input v-model="showDeptName" :placeholder="placeholder" @focus="deptDialog">
|
||||
<el-input v-model="showDeptName" :placeholder="placeholder" @focus="deptDialog" readonly
|
||||
@paste.native.capture.prevent="handlePaste">
|
||||
<el-button slot="append" icon="el-icon-search" @click="deptDialog"></el-button>
|
||||
</el-input>
|
||||
<el-input :value="value" style="display: none"></el-input>
|
||||
<el-dialog :visible.sync="visibleDept" width="30%" :modal="false" :title="placeholder" :close-on-click-modal="false" :close-on-press-escape="false">
|
||||
<el-dialog :visible.sync="visibleDept" width="30%" :modal="false" :title="placeholder" :close-on-click-modal="false"
|
||||
:close-on-press-escape="false">
|
||||
<el-form size="mini" :inline="true">
|
||||
<el-form-item :label="$t('keyword')">
|
||||
<el-input v-model="filterText"></el-input>
|
||||
|
@ -14,16 +16,9 @@
|
|||
<el-button type="default">{{ $t('query') }}</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-tree
|
||||
class="filter-tree"
|
||||
:data="deptList"
|
||||
:default-expanded-keys="expandedKeys"
|
||||
:props="{ label: 'name', children: 'children' }"
|
||||
:expand-on-click-node="false"
|
||||
:filter-node-method="filterNode"
|
||||
:highlight-current="true"
|
||||
node-key="id"
|
||||
ref="tree">
|
||||
<el-tree class="filter-tree" :data="deptList" :default-expanded-keys="expandedKeys"
|
||||
:props="{ label: 'name', children: 'children' }" :expand-on-click-node="false" :filter-node-method="filterNode"
|
||||
:highlight-current="true" node-key="id" ref="tree">
|
||||
</el-tree>
|
||||
<template slot="footer">
|
||||
<el-button type="default" @click="cancelHandle()" size="mini">{{ $t('cancel') }}</el-button>
|
||||
|
@ -36,7 +31,7 @@
|
|||
<script>
|
||||
export default {
|
||||
name: 'RenDeptTree',
|
||||
data () {
|
||||
data() {
|
||||
return {
|
||||
filterText: '',
|
||||
visibleDept: false,
|
||||
|
@ -56,15 +51,23 @@ export default {
|
|||
placeholder: String
|
||||
},
|
||||
watch: {
|
||||
filterText (val) {
|
||||
filterText(val) {
|
||||
this.$refs.tree.filter(val)
|
||||
},
|
||||
deptName (val) {
|
||||
deptName(val) {
|
||||
this.showDeptName = val
|
||||
},
|
||||
visibleDept(val) {
|
||||
if (!val) {
|
||||
this.filterText = ''
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
deptDialog () {
|
||||
handlePaste() {
|
||||
return false
|
||||
},
|
||||
deptDialog() {
|
||||
this.expandedKeys = null
|
||||
if (this.$refs.tree) {
|
||||
this.$refs.tree.setCurrentKey(null)
|
||||
|
@ -72,11 +75,11 @@ export default {
|
|||
this.visibleDept = true
|
||||
this.getDeptList(this.value)
|
||||
},
|
||||
filterNode (value, data) {
|
||||
filterNode(value, data) {
|
||||
if (!value) return true
|
||||
return data.name.indexOf(value) !== -1
|
||||
},
|
||||
getDeptList (id) {
|
||||
getDeptList(id) {
|
||||
return this.$http.get('/sys/dept/list').then(({ data: res }) => {
|
||||
if (res.code !== 0) {
|
||||
return this.$message.error(res.msg)
|
||||
|
@ -86,14 +89,14 @@ export default {
|
|||
this.$refs.tree.setCurrentKey(id)
|
||||
this.expandedKeys = [id]
|
||||
})
|
||||
}).catch(() => {})
|
||||
}).catch(() => { })
|
||||
},
|
||||
cancelHandle () {
|
||||
cancelHandle() {
|
||||
this.visibleDept = false
|
||||
this.deptList = []
|
||||
this.filterText = ''
|
||||
},
|
||||
clearHandle () {
|
||||
clearHandle() {
|
||||
this.$emit('input', '')
|
||||
this.$emit('update:deptName', '')
|
||||
this.showDeptName = ''
|
||||
|
@ -101,7 +104,7 @@ export default {
|
|||
this.deptList = []
|
||||
this.filterText = ''
|
||||
},
|
||||
commitHandle () {
|
||||
commitHandle() {
|
||||
const node = this.$refs.tree.getCurrentNode()
|
||||
if (!node) {
|
||||
this.$message.error(this.$t('dept.chooseerror'))
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<!--
|
||||
* @Author: hisense.wuhongjian
|
||||
* @Date: 2022-04-11 16:30:04
|
||||
* @LastEditors: hisense.liangjunhua
|
||||
* @LastEditTime: 2022-07-16 15:07:44
|
||||
* @LastEditors: Light
|
||||
* @LastEditTime: 2022-10-26 11:05:07
|
||||
* @Description: 告诉大家这是什么
|
||||
-->
|
||||
<template>
|
||||
|
@ -31,7 +31,7 @@
|
|||
<!-- 审核意见 -->
|
||||
<el-table-column prop="comment" :label="$t('process.comment')" header-align="center" align="center"></el-table-column>
|
||||
<!-- 任务时长(秒) -->
|
||||
<el-table-column prop="durationInSeconds" :label="$t('task.durationInSeconds')" header-align="center" align="center" width="180"></el-table-column>
|
||||
<el-table-column prop="duration" :label="$t('task.durationInSeconds')" header-align="center" align="center" width="180"></el-table-column>
|
||||
</el-table>
|
||||
<el-pagination
|
||||
v-if="dataForm.pid === '0'"
|
||||
|
|
|
@ -41,7 +41,8 @@
|
|||
</el-menu-item> -->
|
||||
</el-menu>
|
||||
<el-menu class="aui-navbar__menu" mode="horizontal">
|
||||
<el-menu-item index="1">
|
||||
<!-- 暂时隐藏切换语言--勿删 -->
|
||||
<!-- <el-menu-item index="1">
|
||||
<el-dropdown placement="bottom" :show-timeout="0">
|
||||
<el-button size="mini">{{ $t("_lang") }}</el-button>
|
||||
<el-dropdown-menu slot="dropdown">
|
||||
|
@ -53,14 +54,14 @@
|
|||
>
|
||||
</el-dropdown-menu>
|
||||
</el-dropdown>
|
||||
</el-menu-item>
|
||||
<el-menu-item index="2">
|
||||
</el-menu-item> -->
|
||||
<!-- <el-menu-item index="2">
|
||||
<a href="//115.28.200.119:9091" target="_blank">
|
||||
<svg class="icon-svg aui-navbar__icon-menu" aria-hidden="true">
|
||||
<use xlink:href="#icon-earth"></use>
|
||||
</svg>
|
||||
</a>
|
||||
</el-menu-item>
|
||||
</el-menu-item> -->
|
||||
<el-menu-item index="3" v-if="$hasPermission('sys:notice:all')">
|
||||
<el-badge :is-dot="messageTip">
|
||||
<a href="#" @click="myNoticeRouter()"
|
||||
|
|
|
@ -8,11 +8,11 @@
|
|||
-->
|
||||
<template>
|
||||
<div class="aui-theme-tools" :class="{ 'aui-theme-tools--open': isOpen }">
|
||||
<div class="aui-theme-tools__toggle" @click="isOpen = !isOpen">
|
||||
<!-- <div class="aui-theme-tools__toggle" @click="isOpen = !isOpen">
|
||||
<svg class="icon-svg" aria-hidden="true">
|
||||
<use xlink:href="#icon-setting"></use>
|
||||
</svg>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="aui-theme-tools__content">
|
||||
<div class="aui-theme-tools__item">
|
||||
<h3>Navbar</h3>
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<template>
|
||||
<el-dialog
|
||||
width="70%"
|
||||
:destroy-on-close="true"
|
||||
:close-on-click-modal="false"
|
||||
@close="closeModal"
|
||||
|
@ -104,6 +105,11 @@
|
|||
label="任务名称"
|
||||
width="180">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="assigneeDeptName"
|
||||
label="处理人部门"
|
||||
width="200">
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="assigneeName"
|
||||
label="处理人"
|
||||
|
@ -142,126 +148,125 @@ export default {
|
|||
props: {
|
||||
detailType: {
|
||||
type: String,
|
||||
default: "",
|
||||
default: ''
|
||||
},
|
||||
detailsVisible: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
default: false
|
||||
},
|
||||
detailParamss: {
|
||||
type: Object,
|
||||
default: {},
|
||||
},
|
||||
default: {}
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
detailsVisible: {
|
||||
handler(newVal) {
|
||||
this.detailsVisibleCopy = newVal;
|
||||
handler (newVal) {
|
||||
this.detailsVisibleCopy = newVal
|
||||
},
|
||||
immediate: true,
|
||||
immediate: true
|
||||
},
|
||||
detailParamss: {
|
||||
handler(newVal) {
|
||||
this.detailParams = newVal;
|
||||
this.getDetail(newVal);
|
||||
handler (newVal) {
|
||||
this.detailParams = newVal
|
||||
this.getDetail(newVal)
|
||||
},
|
||||
immediate: true,
|
||||
immediate: true
|
||||
}
|
||||
},
|
||||
},
|
||||
data() {
|
||||
data () {
|
||||
return {
|
||||
detailsVisibleCopy: false,
|
||||
columns: [
|
||||
{
|
||||
title: "任务名称",
|
||||
dataIndex: "activityName",
|
||||
key: "activityName",
|
||||
title: '任务名称',
|
||||
dataIndex: 'activityName',
|
||||
key: 'activityName'
|
||||
},
|
||||
{
|
||||
title: "处理人",
|
||||
dataIndex: "assigneeName",
|
||||
key: "assigneeName",
|
||||
title: '处理人',
|
||||
dataIndex: 'assigneeName',
|
||||
key: 'assigneeName'
|
||||
},
|
||||
{
|
||||
title: "任务开始时间",
|
||||
dataIndex: "startTime",
|
||||
key: "startTime",
|
||||
title: '任务开始时间',
|
||||
dataIndex: 'startTime',
|
||||
key: 'startTime'
|
||||
},
|
||||
{
|
||||
title: "任务结束时间",
|
||||
dataIndex: "endTime",
|
||||
key: "endTime",
|
||||
title: '任务结束时间',
|
||||
dataIndex: 'endTime',
|
||||
key: 'endTime'
|
||||
},
|
||||
{
|
||||
title: "审核意见",
|
||||
dataIndex: "comment",
|
||||
key: "comment",
|
||||
title: '审核意见',
|
||||
dataIndex: 'comment',
|
||||
key: 'comment'
|
||||
},
|
||||
{
|
||||
title: "任务时长/秒",
|
||||
dataIndex: "durationInSeconds",
|
||||
key: "durationInSeconds",
|
||||
},
|
||||
title: '任务时长/秒',
|
||||
dataIndex: 'durationInSeconds',
|
||||
key: 'durationInSeconds'
|
||||
}
|
||||
],
|
||||
dataSource: [{ data: [] }],
|
||||
showArr: [],
|
||||
};
|
||||
showArr: []
|
||||
}
|
||||
},
|
||||
computed: {},
|
||||
components: {},
|
||||
methods: {
|
||||
getDetail(newVal) {
|
||||
|
||||
getDetail (newVal) {
|
||||
if (newVal.resourceApplication) {
|
||||
this.dataSource.data = [];
|
||||
if (this.detailType == "能力上架") {
|
||||
let arr = [];
|
||||
this.dataSource.data = []
|
||||
if (this.detailType == '能力上架') {
|
||||
const arr = []
|
||||
newVal.resourceApplication.forEach((item) => {
|
||||
arr.push(item);
|
||||
});
|
||||
arr.push(item)
|
||||
})
|
||||
this.dataSource.data.push([
|
||||
newVal.resourceApplication.processInstanceId,
|
||||
arr,
|
||||
]);
|
||||
arr
|
||||
])
|
||||
} else {
|
||||
for (const key in newVal.resourceApplication) {
|
||||
if (newVal.resourceApplication[key].length > 0) {
|
||||
newVal.resourceApplication[key].map((item) => {
|
||||
this.dataSource.data.push([
|
||||
item.instanceId,
|
||||
item.taskHandleDetailInfo,
|
||||
]);
|
||||
});
|
||||
item.taskHandleDetailInfo
|
||||
])
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.showArr.value = [];
|
||||
this.showArr.value = []
|
||||
for (const key in newVal.resourceApplication) {
|
||||
if (newVal.resourceApplication[key].length > 0) {
|
||||
let obj = { name: "", instanceId: "", list: [], list2: [] };
|
||||
obj.name = key;
|
||||
const obj = { name: '', instanceId: '', list: [], list2: [] }
|
||||
obj.name = key
|
||||
newVal.resourceApplication[key].map((item) => {
|
||||
obj.instanceId = item.instanceId;
|
||||
obj.backToFirst = item.backToFirst;
|
||||
obj.ended = item.ended;
|
||||
obj.approveStatus = item.approveStatus;
|
||||
obj.instanceId = item.instanceId
|
||||
obj.backToFirst = item.backToFirst
|
||||
obj.ended = item.ended
|
||||
obj.approveStatus = item.approveStatus
|
||||
if (item.resources.length > 0) {
|
||||
item.resources.map((val) => {
|
||||
obj.list.push(val);
|
||||
});
|
||||
obj.list.push(val)
|
||||
})
|
||||
} else {
|
||||
item.camera.map((val) => {
|
||||
obj.list2.push(val);
|
||||
});
|
||||
obj.list2.push(val)
|
||||
})
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
this.showArr.push(obj);
|
||||
this.showArr.push(obj)
|
||||
}
|
||||
}
|
||||
}
|
||||
console.log("this.dataSource.data[0]========",this.dataSource.data[0][1])
|
||||
console.log('this.dataSource.data[0]========', this.dataSource.data[0][1])
|
||||
},
|
||||
// init () {
|
||||
// this.visible = true
|
||||
|
@ -269,11 +274,11 @@ export default {
|
|||
// this.$refs['dataForm'].resetFields()
|
||||
// })
|
||||
// },
|
||||
closeModal() {
|
||||
this.$emit("closeModal");
|
||||
},
|
||||
},
|
||||
};
|
||||
closeModal () {
|
||||
this.$emit('closeModal')
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
.title {
|
||||
|
@ -457,4 +462,3 @@ export default {
|
|||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -26,7 +26,7 @@
|
|||
<!--起始日期 @keyup.enter.native="getDataList()"-->
|
||||
<el-form-item>
|
||||
<span>日期:</span>
|
||||
<el-date-picker v-model="value1" type="datetimerange" range-separator="至" start-placeholder="开始日期"
|
||||
<el-date-picker v-model="value1" type="daterange" range-separator="至" start-placeholder="开始日期"
|
||||
end-placeholder="结束日期" format="yyyy-MM-dd" value-format="yyyy-MM-dd">
|
||||
</el-date-picker>
|
||||
</el-form-item>
|
||||
|
@ -45,35 +45,33 @@
|
|||
<el-form-item>
|
||||
<span v-if="this.departmentId === 1 || this.departmentId === 3">上架部门:</span>
|
||||
<span v-else>申请部门:</span>
|
||||
<el-select
|
||||
v-model="abilityDepartment"
|
||||
placeholder="请选择部门"
|
||||
filterable
|
||||
clearable
|
||||
>
|
||||
<el-select v-model="abilityDepartment" placeholder="请选择部门" filterable clearable>
|
||||
<el-option label="全部" value=""></el-option>
|
||||
<el-option v-for="item in departmentSelects" :key="item.label" :label="item.label" :value="item.value" v-bind="item"></el-option>
|
||||
<el-option v-for="item in departmentSelects" :key="item.label" :label="item.label" :value="item.value"
|
||||
v-bind="item"></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<!--类型-->
|
||||
<el-form-item>
|
||||
<span>类型:</span>
|
||||
<el-select v-if="this.departmentId === 2 || this.departmentId === 4" v-model="abilityType" placeholder="请选择类型" clearable>
|
||||
<el-select @change="changeIiem" v-if="this.departmentId === 2 || this.departmentId === 4" v-model="abilityType" placeholder="请选择类型" clearable>
|
||||
<el-option label="全部" value=""></el-option>
|
||||
<el-option v-for="(item, i) in typeOptions" :key="`${item.name}${i}`" :label="item.name" :value="item.name" v-bind="item">
|
||||
<el-option v-for="(item, i) in typeOptions" :key="`${item.name}${i}`" :label="item.name" :value="item.name"
|
||||
v-bind="item">
|
||||
</el-option>
|
||||
</el-select>
|
||||
<el-select v-else v-model="abilityType" placeholder="请选择类型" clearable>
|
||||
<el-select @change="changeIiem" v-else v-model="abilityType" placeholder="请选择类型" clearable>
|
||||
<el-option label="全部" value=""></el-option>
|
||||
<el-option v-for="(item, i) in typeOptions1" :key="`${item.name}${i}`" :label="item.name" :value="item.name" v-bind="item">
|
||||
<el-option v-for="(item, i) in typeOptions1" :key="`${item.name}${i}`" :label="item.name" :value="item.name"
|
||||
v-bind="item">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
|
||||
<!--操作按钮查询-->
|
||||
<el-form-item>
|
||||
<el-button @click="getDataList()">{{ $t('query') }}</el-button>
|
||||
<el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button>
|
||||
</el-form-item>
|
||||
<!--操作按钮重置-->
|
||||
<el-form-item>
|
||||
|
@ -82,7 +80,8 @@
|
|||
}}</el-button>
|
||||
</el-form-item>
|
||||
<!-- 导出 -->
|
||||
<a class='export' :href="exportExcel+exportExcelType+'?'+exportExcelCondition+'&token='+token">导出全部</a>
|
||||
<a class='export'
|
||||
:href="exportExcel + exportExcelType + '?' + exportExcelCondition + '&token=' + token">导出全部</a>
|
||||
</el-form>
|
||||
<el-card shadow="never" class="aui-card--fill" v-if="homeIsShow">
|
||||
<div class="mod-demand__bsdemand">
|
||||
|
@ -117,7 +116,8 @@
|
|||
能力使用明细
|
||||
</span> -->
|
||||
<template v-if="detailFlag">
|
||||
<el-checkbox v-model="checked" @change='chagneCheckbox' style="position: absolute;right: 150px;margin-top: -15px;">隐藏空数据</el-checkbox>
|
||||
<el-checkbox v-model="checked" @change='chagneCheckbox'
|
||||
style="position: absolute;right: 150px;margin-top: -15px;">隐藏空数据</el-checkbox>
|
||||
<span class="detail-button" @click="goToDetail()">
|
||||
明细
|
||||
</span>
|
||||
|
@ -168,13 +168,9 @@
|
|||
</el-table>
|
||||
<!--明细表-->
|
||||
|
||||
<el-table
|
||||
:data="tableData"
|
||||
:header-cell-style="{ textAlign: 'center',height:'96px' }"
|
||||
:cell-style="{ textAlign: 'center' }"
|
||||
style="width: 100%"
|
||||
v-show="this.departmentId === 3 || this.departmentId === 4"
|
||||
>
|
||||
<el-table :data="tableData" :header-cell-style="{ textAlign: 'center', height: '96px' }"
|
||||
:cell-style="{ textAlign: 'center' }" style="width: 100%"
|
||||
v-show="this.departmentId === 3 || this.departmentId === 4">
|
||||
<el-table-column v-if="this.departmentId === 3" prop="deptName" label="上架部门" min-width="100%">
|
||||
</el-table-column>
|
||||
<el-table-column v-if="this.departmentId === 4" prop="deptName" label="申请部门" min-width="100%">
|
||||
|
@ -194,7 +190,7 @@
|
|||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<div class="block">
|
||||
<div class="block" v-if="!detailFlag">
|
||||
<el-pagination @current-change="handleCurrentChange" layout="total, prev, pager, next, jumper"
|
||||
:total="total" :page-size="pageSize" :current-page="currentPage">
|
||||
</el-pagination>
|
||||
|
@ -233,7 +229,7 @@ import Template from '../devtools/template.vue'
|
|||
// })
|
||||
export default {
|
||||
components: { componentServices, applicationResources, ComponentUsed, AbilityDetail, Template },
|
||||
data () {
|
||||
data() {
|
||||
return {
|
||||
checked: false,
|
||||
departmentSelects: [],
|
||||
|
@ -353,12 +349,12 @@ export default {
|
|||
{ name: '应用资源', value: 5 },
|
||||
{ name: '会议室', value: 6 }
|
||||
], // 类型备选列表
|
||||
typeOptions1: [//能力上架隐藏会议室
|
||||
typeOptions1: [// 能力上架隐藏会议室
|
||||
{ name: '智能算法', value: 1 },
|
||||
{ name: '图层服务', value: 2 },
|
||||
{ name: '开发组件', value: 3 },
|
||||
{ name: '业务组件', value: 4 },
|
||||
{ name: '应用资源', value: 5 },
|
||||
{ name: '应用资源', value: 5 }
|
||||
|
||||
], // 类型备选列表
|
||||
detailFlag: false, // 明细返回按钮显示标志位
|
||||
|
@ -366,7 +362,7 @@ export default {
|
|||
endDate: '' // 结束时间
|
||||
}
|
||||
},
|
||||
created () {
|
||||
created() {
|
||||
this.$http.get('/sys/dept/all').then(res => {
|
||||
// console.log('获取部门=========>', res)
|
||||
this.departmentSelects = []
|
||||
|
@ -387,8 +383,12 @@ export default {
|
|||
// const date2 = new Date(year2, month2, day2, 7)
|
||||
// this.value1.unshift(date2)
|
||||
},
|
||||
mounted () {
|
||||
mounted() {
|
||||
// this.getFirstTree()
|
||||
console.log('this.$route.query.Id;', this.$route.query.type)
|
||||
if (this.$route.query.type === 'use') {
|
||||
this.handleChose(4)
|
||||
} else {
|
||||
if (this.departmentId === 1) {
|
||||
this.handleChose(3)
|
||||
// this.departmentId = 1;
|
||||
|
@ -397,12 +397,13 @@ export default {
|
|||
// this.departmentId = 2;
|
||||
} else {
|
||||
}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
// ...mapState(['departmentSelects'])
|
||||
},
|
||||
methods: {
|
||||
chagneCheckbox () {
|
||||
chagneCheckbox() {
|
||||
if (this.checked) {
|
||||
this.tableData = this.tableDataClone.filter(val => val.count !== 0)
|
||||
this.total = this.tableData.length
|
||||
|
@ -411,7 +412,7 @@ export default {
|
|||
this.total = this.tableData.length
|
||||
}
|
||||
},
|
||||
closeModal () {
|
||||
closeModal() {
|
||||
this.detailsVisible = false
|
||||
},
|
||||
handleCurrentChange (val) {
|
||||
|
@ -431,7 +432,7 @@ export default {
|
|||
// this.getReleaseTree(val)
|
||||
// }
|
||||
},
|
||||
getTreeName (data) {
|
||||
getTreeName(data) {
|
||||
this.$http
|
||||
.get('/census/center/v3/treeList/', {
|
||||
params: {
|
||||
|
@ -461,7 +462,7 @@ export default {
|
|||
// },
|
||||
|
||||
// 组件服务部门发布情况--改为能力上架统计
|
||||
getFirstTree (page) {
|
||||
getFirstTree(page) {
|
||||
if (this.examineStatus == '-1') {
|
||||
this.status = ''
|
||||
} else if (this.examineStatus == '0') {
|
||||
|
@ -527,7 +528,7 @@ export default {
|
|||
})
|
||||
},
|
||||
// 组件服务部门使用情况列表-改为能力使用统计
|
||||
getSecondTree (page) {
|
||||
getSecondTree(page) {
|
||||
if (this.examineStatus == '-1') {
|
||||
this.status = ''
|
||||
} else if (this.examineStatus == '0') {
|
||||
|
@ -593,7 +594,7 @@ export default {
|
|||
})
|
||||
},
|
||||
// 点击查看详情
|
||||
detailClick (row) {
|
||||
detailClick(row) {
|
||||
this.detailParamss = {}
|
||||
const applyNumber = row.applyNumber
|
||||
if (this.departmentId == 3) { // 能力上架
|
||||
|
@ -635,7 +636,7 @@ export default {
|
|||
}
|
||||
},
|
||||
// 能力上架明细 能力上架统计
|
||||
getOneDetail (page) {
|
||||
getOneDetail(page) {
|
||||
var passAndReview = '' // 转变"通过"字段为通过
|
||||
if (this.examineStatus == '-1') {
|
||||
this.status = ''
|
||||
|
@ -674,7 +675,7 @@ export default {
|
|||
})
|
||||
},
|
||||
// 能力使用明细 能力使用统计
|
||||
getTwoDetail (page) {
|
||||
getTwoDetail(page) {
|
||||
var passAndReview = '' // 转变"通过"字段为通过
|
||||
if (this.examineStatus == '-1') {
|
||||
this.status = ''
|
||||
|
@ -711,7 +712,7 @@ export default {
|
|||
})
|
||||
})
|
||||
},
|
||||
getReleaseTree (page) {
|
||||
getReleaseTree(page) {
|
||||
this.$http
|
||||
.get('/census/center/selectApplyDeptDetailTypeCountList/', {
|
||||
params: {
|
||||
|
@ -758,7 +759,7 @@ export default {
|
|||
})
|
||||
},
|
||||
// 应用资源部门使用情况列表
|
||||
getUsedTree () {
|
||||
getUsedTree() {
|
||||
this.$http
|
||||
.get('/census/center/v3/resourceReleaseDetails/', {
|
||||
params: {
|
||||
|
@ -772,7 +773,7 @@ export default {
|
|||
this.tableData = res.data.data.list
|
||||
})
|
||||
},
|
||||
handleClick (row) {
|
||||
handleClick(row) {
|
||||
if (this.choseId === 0) {
|
||||
if (this.departmentId === 1) {
|
||||
this.homeIsShow = false
|
||||
|
@ -793,7 +794,7 @@ export default {
|
|||
}
|
||||
},
|
||||
// 选择组件
|
||||
choseBtn (index) {
|
||||
choseBtn(index) {
|
||||
this.choseId = index
|
||||
this.handleChose(1)
|
||||
},
|
||||
|
@ -809,9 +810,11 @@ export default {
|
|||
// }
|
||||
// },
|
||||
// 选择发布or使用表格
|
||||
handleChose (index) {
|
||||
handleChose(index) {
|
||||
this.checked = false
|
||||
this.departmentId = index
|
||||
this.currentPage=1
|
||||
this.pageSize=10
|
||||
if (index === 1) {
|
||||
if (this.choseId === 0) {
|
||||
if (!this.detailFlag) {
|
||||
|
@ -851,26 +854,32 @@ export default {
|
|||
}
|
||||
},
|
||||
// 翻页
|
||||
handleSizeChange (val) {
|
||||
handleSizeChange(val) {
|
||||
console.log(`每页 ${val} 条`)
|
||||
},
|
||||
closeChild () {
|
||||
closeChild() {
|
||||
this.homeIsShow = true
|
||||
this.servicesIsShow = false
|
||||
this.handleCurrentChange(1)
|
||||
},
|
||||
closeChild2 () {
|
||||
closeChild2() {
|
||||
this.homeIsShow = true
|
||||
this.UsedIsShow = false
|
||||
this.handleCurrentChange(1)
|
||||
},
|
||||
closeApplication () {
|
||||
closeApplication() {
|
||||
this.homeIsShow = true
|
||||
this.resourcesIsShow = false
|
||||
this.handleCurrentChange(1)
|
||||
},
|
||||
changeIiem(){
|
||||
this.currentPage=1
|
||||
this.pageSize=10
|
||||
},
|
||||
// 明细按钮函数//明细按钮函数//明细按钮函数//明细按钮函数//明细按钮函数//明细按钮函数
|
||||
goToDetail () {
|
||||
this.currentPage=1
|
||||
this.pageSize=10
|
||||
this.detailFlag = !this.detailFlag
|
||||
if (this.departmentId === 1) {
|
||||
this.handleChose(3)
|
||||
|
@ -882,8 +891,10 @@ export default {
|
|||
}
|
||||
},
|
||||
// 返回按钮
|
||||
goToBack () {
|
||||
goToBack() {
|
||||
this.checked = false
|
||||
this.currentPage=1,
|
||||
this.pageSize=10,
|
||||
// departmentId 1,3 2,4 两个值共同判断
|
||||
this.detailFlag = !this.detailFlag
|
||||
if (this.departmentId === 3) {
|
||||
|
@ -896,10 +907,12 @@ export default {
|
|||
}
|
||||
},
|
||||
// 点击查询按钮查询数据
|
||||
getDataList () {
|
||||
getDataList() {
|
||||
if (this.value1 && this.value1.length > 0) {
|
||||
this.startDate = this.handleTime(this.value1[0], 'yyyy-MM-dd')
|
||||
this.endDate = this.handleTime(this.value1[1], 'yyyy-MM-dd')
|
||||
// this.startDate = this.handleTime(this.value1[0], 'yyyy-MM-dd')
|
||||
// this.endDate = this.handleTime(this.value1[1], 'yyyy-MM-dd')
|
||||
this.startDate = this.value1[0]
|
||||
this.endDate = this.value1[1]
|
||||
} else {
|
||||
this.startDate = ''
|
||||
this.endDate = ''
|
||||
|
@ -927,7 +940,7 @@ export default {
|
|||
}
|
||||
},
|
||||
// 重置按钮查询数据
|
||||
resetDataList () {
|
||||
resetDataList() {
|
||||
this.value1 = []
|
||||
this.startDate = ''
|
||||
this.endDate = ''
|
||||
|
@ -965,7 +978,7 @@ export default {
|
|||
}
|
||||
},
|
||||
// 定义格式化函数:
|
||||
handleTime (time, format) {
|
||||
handleTime(time, format) {
|
||||
if (time == null || time == undefined || time == '') {
|
||||
return ''
|
||||
}
|
||||
|
@ -1159,24 +1172,16 @@ input::placeholder {
|
|||
background: #fff;
|
||||
border: 1px solid #dcdfe6;
|
||||
color: #000;
|
||||
color: #FFF;
|
||||
background-color: #0058e1;
|
||||
border-color: #0058e1;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.export:hover {
|
||||
border-color: #c5ddfd;
|
||||
background-color: #ecf4fe;
|
||||
color: #0058e1;
|
||||
text-decoration: none;
|
||||
background: #65a5f9;
|
||||
border-color: #65a5f9;
|
||||
color: #FFF;
|
||||
}
|
||||
|
||||
.export:active {
|
||||
border-color: #c5ddfd;
|
||||
background-color: #ecf4fe;
|
||||
color: #0058e1;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.export:visited {
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -36,6 +36,7 @@
|
|||
<div class="agreeOr" v-if="taskId">
|
||||
<h3>审批</h3>
|
||||
<div>
|
||||
<el-button type="info" @click="entrustTask()" v-if='taskEntrustFlag && taskEntrustFlag2'>转办</el-button>
|
||||
<el-button type="primary" @click="showDialog('同意')">同意</el-button>
|
||||
<el-button type="danger" plain @click="showDialog('驳回')"
|
||||
>驳回</el-button
|
||||
|
@ -61,6 +62,7 @@
|
|||
> -->
|
||||
</div>
|
||||
</div>
|
||||
<ren-task-entrust v-if="renTaskEntrustVisible" ref="renTaskEntrust"></ren-task-entrust>
|
||||
<!-- 流程详情 -->
|
||||
<ren-process-detail></ren-process-detail>
|
||||
<el-dialog
|
||||
|
@ -84,6 +86,7 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import RenTaskEntrust from '@/components/ren-process-running/src/ren-task-entrust'
|
||||
import bus from '@/views/bus.js'
|
||||
import ResourcesAndServices from './ResourcesAndServices.vue'
|
||||
import debounce from 'lodash/debounce'
|
||||
|
@ -93,7 +96,8 @@ export default {
|
|||
// 注入公共方法
|
||||
// mixins: [processModule],
|
||||
components: {
|
||||
ResourcesAndServices
|
||||
ResourcesAndServices,
|
||||
RenTaskEntrust
|
||||
},
|
||||
props: {
|
||||
// fromList: {
|
||||
|
@ -105,6 +109,9 @@ export default {
|
|||
},
|
||||
data () {
|
||||
return {
|
||||
taskEntrustFlag: false,
|
||||
taskEntrustFlag2: false,
|
||||
renTaskEntrustVisible: false,
|
||||
dialogVisible: false,
|
||||
dialogType: '',
|
||||
input: '',
|
||||
|
@ -132,6 +139,35 @@ export default {
|
|||
console.log('params=================>', this.$route, this.$route.params)
|
||||
this.taskId = this.$route.params.taskId
|
||||
this.dataForm.taskId = this.$route.params.taskId
|
||||
this.$http.get('/sys/user/info').then(({ data: res }) => {
|
||||
res.data.roleIdList.map(val => {
|
||||
this.$http.get('/sys/role/' + val).then(role => {
|
||||
if (role.data.data.name === '流程管理员') {
|
||||
this.taskEntrustFlag = true
|
||||
this.$http
|
||||
.get(
|
||||
'/act/task/getTaskVariables?taskId=' + this.$route.params.taskId + '&variableName=allowEntrust'
|
||||
).then(entrust => {
|
||||
console.log('11111111111111', entrust, this.dataForm)
|
||||
if (entrust.data.data.allowEntrust === true) {
|
||||
this.taskEntrustFlag2 = true
|
||||
if (this.taskEntrustFlag && this.taskEntrustFlag2) {
|
||||
this.$alert('当前审核部门为' + this.dataForm.deptName + ',该部门未配置审核人,请联系运维工程师配置完成后进行流程转办!', '流程提醒', {
|
||||
confirmButtonText: '确定',
|
||||
callback: action => {
|
||||
// this.$message({
|
||||
// type: 'info',
|
||||
// message: `action: ${action}`
|
||||
// })
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
})
|
||||
})
|
||||
this.init()
|
||||
console.log('fromList', this.$router.currentRoute.params.businessKey)
|
||||
// this.dataForm = this.$router.currentRoute.params.params.params.resourceDTO
|
||||
|
@ -154,6 +190,15 @@ export default {
|
|||
},
|
||||
computed: {},
|
||||
methods: {
|
||||
|
||||
entrustTask () {
|
||||
this.renTaskEntrustVisible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs.renTaskEntrust.dataForm.taskId = this.dataForm.taskId
|
||||
this.$refs.renTaskEntrust.callbacks = this.callbacks
|
||||
this.$refs.renTaskEntrust.init()
|
||||
})
|
||||
},
|
||||
getInfo (id) {
|
||||
this.$http.get('/resourceMountApply/' + id).then(({ data: res }) => {
|
||||
this.dataForm = res.data.resourceDTO
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* @Author: hisense.liangjunhua
|
||||
* @Date: 2022-06-29 15:59:51
|
||||
* @LastEditors: Light
|
||||
* @LastEditTime: 2022-10-21 16:11:46
|
||||
* @LastEditTime: 2022-10-27 16:04:01
|
||||
* @Description: 告诉大家这是什么
|
||||
-->
|
||||
<!-- 流程业务表单 -->
|
||||
|
@ -105,7 +105,7 @@
|
|||
|
||||
<ren-task-entrust v-if="renTaskEntrustVisible" ref="renTaskEntrust"></ren-task-entrust>
|
||||
<!-- 流程详情 -->
|
||||
<ren-process-detail></ren-process-detail>
|
||||
<ren-process-detail ref="renProcessMultiple"></ren-process-detail>
|
||||
<el-dialog title="审批意见" :close-on-click-modal="false" :visible.sync="dialogVisible" width="30%"
|
||||
:before-close="handleClose">
|
||||
<el-input v-model="input" placeholder="请输入审批意见"></el-input>
|
||||
|
@ -131,6 +131,7 @@ export default {
|
|||
mixins: [processModule],
|
||||
data () {
|
||||
return {
|
||||
callbacks: null,
|
||||
taskEntrustFlag: false,
|
||||
taskEntrustFlag2: false,
|
||||
dialogVisible: false,
|
||||
|
|
|
@ -15,16 +15,28 @@
|
|||
<el-button type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>
|
||||
</el-form-item>
|
||||
</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 type="selection" header-align="center" align="center" width="50"></el-table-column>
|
||||
<el-table-column prop="title" :label="$t('notice.title')" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="title" :label="$t('notice.title')" header-align="center" align="center" width="180">
|
||||
</el-table-column>
|
||||
<!-- 内容 prop="content"-->
|
||||
<el-table-column :label="$t('news.content')" header-align="center" align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-tooltip effect="dark" :content="scope.row.content" placement="top">
|
||||
<span class="text-ellipsis">{{ scope.row.content }}</span>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="type" :label="$t('notice.type')" header-align="center" align="center" width="150">
|
||||
<template slot-scope="scope">
|
||||
{{ $getDictLabel("notice_type", scope.row.type) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="senderName" :label="$t('notice.senderName')" header-align="center" align="center" width="150"></el-table-column>
|
||||
<el-table-column prop="senderDate" :label="$t('notice.senderDate')" header-align="center" align="center" width="170"></el-table-column>
|
||||
<el-table-column prop="senderName" :label="$t('notice.senderName')" header-align="center" align="center"
|
||||
width="150"></el-table-column>
|
||||
<el-table-column prop="senderDate" :label="$t('notice.senderDate')" header-align="center" align="center"
|
||||
width="170"></el-table-column>
|
||||
<el-table-column prop="status" :label="$t('notice.status')" header-align="center" align="center" width="130">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.status === 0" size="small" type="danger">{{ $t('notice.status0') }}</el-tag>
|
||||
|
@ -33,19 +45,17 @@
|
|||
</el-table-column>
|
||||
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-button v-if="scope.row.status === 0" type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button>
|
||||
<el-button v-if="scope.row.status === 1" type="text" size="small" @click="viewHandle(scope.row)">{{ $t('notice.view') }}</el-button>
|
||||
<el-button v-if="scope.row.status === 0" type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">
|
||||
{{ $t('update') }}</el-button>
|
||||
<el-button v-if="scope.row.status === 1" type="text" size="small" @click="viewHandle(scope.row)">{{
|
||||
$t('notice.view')
|
||||
}}</el-button>
|
||||
<el-button type="text" size="small" @click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-pagination
|
||||
:current-page="page"
|
||||
:page-sizes="[10, 20, 50, 100]"
|
||||
:page-size="limit"
|
||||
:total="total"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
@size-change="pageSizeChangeHandle"
|
||||
<el-pagination :current-page="page" :page-sizes="[10, 20, 50, 100]" :page-size="limit" :total="total"
|
||||
layout="total, sizes, prev, pager, next, jumper" @size-change="pageSizeChangeHandle"
|
||||
@current-change="pageCurrentChangeHandle">
|
||||
</el-pagination>
|
||||
<!-- 弹窗, 新增 / 修改 -->
|
||||
|
@ -60,7 +70,7 @@ import AddOrUpdate from './notice-add-or-update'
|
|||
import { addDynamicRoute } from '@/router'
|
||||
export default {
|
||||
mixins: [mixinViewModule],
|
||||
data () {
|
||||
data() {
|
||||
return {
|
||||
mixinViewModuleOptions: {
|
||||
getDataListURL: '/sys/notice/page',
|
||||
|
@ -77,7 +87,7 @@ export default {
|
|||
AddOrUpdate
|
||||
},
|
||||
methods: {
|
||||
viewHandle (row) {
|
||||
viewHandle(row) {
|
||||
// 路由参数
|
||||
const routeParams = {
|
||||
routeName: `${this.$route.name}__${row.id}`,
|
||||
|
@ -93,3 +103,13 @@ export default {
|
|||
}
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
.text-ellipsis {
|
||||
/*1. 先强制一行内显示文本*/
|
||||
white-space: nowrap;
|
||||
/*2. 超出的部分隐藏*/
|
||||
overflow: hidden;
|
||||
/*3. 文字用省略号替代超出的部分*/
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -142,48 +142,7 @@ export default {
|
|||
// 排行榜
|
||||
RankingData: [],
|
||||
// 表格
|
||||
AnomalyStatisticsTable: [
|
||||
{
|
||||
name: '接口名称',
|
||||
address: 'http://hhhhhhhhhhhhhhhhhhhh',
|
||||
method: '调用方法',
|
||||
type: '组件类型',
|
||||
provider: '提供商名称',
|
||||
state: '监控状态'
|
||||
},
|
||||
{
|
||||
name: '接口名称',
|
||||
address: 'http://hhhhhhhhhhhhhhhhhhhh',
|
||||
method: '调用方法',
|
||||
type: '组件类型',
|
||||
provider: '提供商名称',
|
||||
state: '监控状态'
|
||||
},
|
||||
{
|
||||
name: '接口名称',
|
||||
address: 'http://hhhhhhhhhhhhhhhhhhhh',
|
||||
method: '调用方法',
|
||||
type: '组件类型',
|
||||
provider: '提供商名称',
|
||||
state: '监控状态'
|
||||
},
|
||||
{
|
||||
name: '接口名称',
|
||||
address: 'http://hhhhhhhhhhhhhhhhhhhh',
|
||||
method: '调用方法',
|
||||
type: '组件类型',
|
||||
provider: '提供商名称',
|
||||
state: '监控状态'
|
||||
},
|
||||
{
|
||||
name: '接口名称',
|
||||
address: 'http://hhhhhhhhhhhhhhhhhhhh',
|
||||
method: '调用方法',
|
||||
type: '组件类型',
|
||||
provider: '提供商名称',
|
||||
state: '监控状态'
|
||||
}
|
||||
],
|
||||
AnomalyStatisticsTable: [],
|
||||
// 分页
|
||||
currentPage4: 1,
|
||||
total: 0
|
||||
|
|
|
@ -1,53 +1,25 @@
|
|||
<template>
|
||||
<el-card shadow="never" class="aui-card--fill">
|
||||
<div class="mod-sys__user">
|
||||
<el-form
|
||||
:inline="true"
|
||||
:model="dataForm"
|
||||
@keyup.enter.native="getDataList()"
|
||||
>
|
||||
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
|
||||
<el-form-item>
|
||||
<el-input
|
||||
v-model="dataForm.username"
|
||||
placeholder="用户名"
|
||||
clearable
|
||||
></el-input>
|
||||
<el-input v-model="dataForm.username" placeholder="用户名" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-input
|
||||
v-model="dataForm.real_name"
|
||||
placeholder="真实姓名"
|
||||
clearable
|
||||
></el-input>
|
||||
<el-input v-model="dataForm.real_name" placeholder="真实姓名" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<ren-select
|
||||
v-model="dataForm.gender"
|
||||
dict-type="gender"
|
||||
:placeholder="$t('user.gender')"
|
||||
></ren-select>
|
||||
<ren-select v-model="dataForm.gender" dict-type="gender" :placeholder="$t('user.gender')"></ren-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-select
|
||||
v-model="dataForm.postId"
|
||||
:placeholder="$t('user.postIdList')"
|
||||
clearable
|
||||
>
|
||||
<el-option
|
||||
:label="data.postName"
|
||||
v-for="data in postList"
|
||||
:key="data.id"
|
||||
:value="data.id"
|
||||
>{{ data.postName }}</el-option
|
||||
>
|
||||
<el-select v-model="dataForm.postId" :placeholder="$t('user.postIdList')" clearable>
|
||||
<el-option :label="data.postName" v-for="data in postList" :key="data.id" :value="data.id">{{ data.postName
|
||||
}}</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<ren-dept-tree
|
||||
v-model="dataForm.deptId"
|
||||
:placeholder="$t('dept.title')"
|
||||
:query="true"
|
||||
></ren-dept-tree>
|
||||
<ren-dept-tree v-model="dataForm.deptId" :placeholder="$t('dept.title')" :query="true" ref="renDeptTree">
|
||||
</ren-dept-tree>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="getDataList()">{{
|
||||
|
@ -55,97 +27,40 @@
|
|||
}}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button
|
||||
v-if="$hasPermission('sys:user:save')"
|
||||
type="primary"
|
||||
@click="addOrUpdateHandle()"
|
||||
>{{ $t('add') }}</el-button
|
||||
>
|
||||
<el-button v-if="$hasPermission('sys:user:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button
|
||||
v-if="$hasPermission('sys:user:delete')"
|
||||
type="danger"
|
||||
@click="deleteHandle()"
|
||||
>{{ $t('deleteBatch') }}</el-button
|
||||
>
|
||||
<el-button v-if="$hasPermission('sys:user:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch')
|
||||
}}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button
|
||||
v-if="$hasPermission('sys:user:export')"
|
||||
type="info"
|
||||
@click="exportHandle()"
|
||||
>{{ $t('export') }}</el-button
|
||||
>
|
||||
<el-button v-if="$hasPermission('sys:user:export')" type="info" @click="exportHandle()">{{ $t('export') }}
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button @click="reset()">重置</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table
|
||||
v-loading="dataListLoading"
|
||||
:data="dataList"
|
||||
border
|
||||
@selection-change="dataListSelectionChangeHandle"
|
||||
@sort-change="dataListSortChangeHandle"
|
||||
style="width: 100%"
|
||||
>
|
||||
<el-table-column
|
||||
type="selection"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="50"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="username"
|
||||
:label="$t('user.username')"
|
||||
sortable="custom"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="realName"
|
||||
label="真实姓名"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="deptName"
|
||||
:label="$t('user.deptName')"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="email"
|
||||
:label="$t('user.email')"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="mobile"
|
||||
:label="$t('user.mobile')"
|
||||
sortable="custom"
|
||||
header-align="center"
|
||||
align="center"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="gender"
|
||||
:label="$t('user.gender')"
|
||||
sortable="custom"
|
||||
header-align="center"
|
||||
align="center"
|
||||
>
|
||||
<el-table v-loading="dataListLoading" :data="dataList" border @selection-change="dataListSelectionChangeHandle"
|
||||
@sort-change="dataListSortChangeHandle" style="width: 100%">
|
||||
<el-table-column type="selection" header-align="center" align="center" width="50"></el-table-column>
|
||||
<el-table-column prop="username" :label="$t('user.username')" sortable="custom" header-align="center"
|
||||
align="center"></el-table-column>
|
||||
<el-table-column prop="realName" label="真实姓名" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="deptName" :label="$t('user.deptName')" header-align="center" align="center">
|
||||
</el-table-column>
|
||||
<el-table-column prop="email" :label="$t('user.email')" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="mobile" :label="$t('user.mobile')" sortable="custom" header-align="center"
|
||||
align="center"></el-table-column>
|
||||
<el-table-column prop="gender" :label="$t('user.gender')" sortable="custom" header-align="center"
|
||||
align="center">
|
||||
<template slot-scope="scope">
|
||||
{{ $getDictLabel('gender', scope.row.gender) }}
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="status"
|
||||
:label="$t('user.status')"
|
||||
sortable="custom"
|
||||
header-align="center"
|
||||
align="center"
|
||||
>
|
||||
<el-table-column prop="status" :label="$t('user.status')" sortable="custom" header-align="center"
|
||||
align="center">
|
||||
<template slot-scope="scope">
|
||||
<el-tag v-if="scope.row.status === 0" size="small" type="danger">{{
|
||||
$t('user.status0')
|
||||
|
@ -155,55 +70,23 @@
|
|||
}}</el-tag>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column
|
||||
prop="createDate"
|
||||
:label="$t('user.createDate')"
|
||||
sortable="custom"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="180"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
:label="$t('handle')"
|
||||
fixed="right"
|
||||
header-align="center"
|
||||
align="center"
|
||||
width="150"
|
||||
>
|
||||
<el-table-column prop="createDate" :label="$t('user.createDate')" sortable="custom" header-align="center"
|
||||
align="center" width="180"></el-table-column>
|
||||
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
v-if="$hasPermission('sys:user:update')"
|
||||
type="text"
|
||||
size="small"
|
||||
@click="addOrUpdateHandle(scope.row.id)"
|
||||
>{{ $t('update') }}</el-button
|
||||
>
|
||||
<el-button
|
||||
v-if="$hasPermission('sys:user:delete')"
|
||||
type="text"
|
||||
size="small"
|
||||
@click="deleteHandle(scope.row.id)"
|
||||
>{{ $t('delete') }}</el-button
|
||||
>
|
||||
<el-button v-if="$hasPermission('sys:user:update')" type="text" size="small"
|
||||
@click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button>
|
||||
<el-button v-if="$hasPermission('sys:user:delete')" type="text" size="small"
|
||||
@click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
<el-pagination
|
||||
:current-page="page"
|
||||
:page-sizes="[10, 20, 50, 100]"
|
||||
:page-size="limit"
|
||||
:total="total"
|
||||
layout="total, sizes, prev, pager, next, jumper"
|
||||
@size-change="pageSizeChangeHandle"
|
||||
@current-change="pageCurrentChangeHandle"
|
||||
>
|
||||
<el-pagination :current-page="page" :page-sizes="[10, 20, 50, 100]" :page-size="limit" :total="total"
|
||||
layout="total, sizes, prev, pager, next, jumper" @size-change="pageSizeChangeHandle"
|
||||
@current-change="pageCurrentChangeHandle">
|
||||
</el-pagination>
|
||||
<!-- 弹窗, 新增 / 修改 -->
|
||||
<add-or-update
|
||||
v-if="addOrUpdateVisible"
|
||||
ref="addOrUpdate"
|
||||
@refreshDataList="getDataList"
|
||||
></add-or-update>
|
||||
<add-or-update v-if="addOrUpdateVisible" ref="addOrUpdate" @refreshDataList="getDataList"></add-or-update>
|
||||
</div>
|
||||
</el-card>
|
||||
</template>
|
||||
|
@ -214,7 +97,7 @@ import AddOrUpdate from './user-add-or-update'
|
|||
import qs from 'qs'
|
||||
export default {
|
||||
mixins: [mixinViewModule],
|
||||
data () {
|
||||
data() {
|
||||
return {
|
||||
mixinViewModuleOptions: {
|
||||
getDataListURL: '/sys/user/page',
|
||||
|
@ -235,11 +118,19 @@ export default {
|
|||
components: {
|
||||
AddOrUpdate
|
||||
},
|
||||
created () {
|
||||
created() {
|
||||
this.getPostList()
|
||||
},
|
||||
methods: {
|
||||
reset () {
|
||||
reset() {
|
||||
this.dataForm.username = ''
|
||||
this.dataForm.real_name = ''
|
||||
this.dataForm.deptId = ''
|
||||
this.dataForm.postId = ''
|
||||
this.dataForm.gender = ''
|
||||
if (this.$refs.renDeptTree) {
|
||||
this.$refs.renDeptTree.showDeptName = '';
|
||||
}
|
||||
this.$http
|
||||
.get(
|
||||
this.mixinViewModuleOptions.getDataListURL +
|
||||
|
@ -254,11 +145,6 @@ export default {
|
|||
})
|
||||
)
|
||||
.then(({ data: res }) => {
|
||||
this.dataForm.username = ''
|
||||
this.dataForm.real_name = ''
|
||||
this.dataForm.deptId = ''
|
||||
this.dataForm.postId = ''
|
||||
this.dataForm.gender = ''
|
||||
if (res.code !== 0) {
|
||||
this.dataList = []
|
||||
this.total = 0
|
||||
|
@ -279,7 +165,7 @@ export default {
|
|||
this.dataListLoading = false
|
||||
})
|
||||
},
|
||||
getPostList () {
|
||||
getPostList() {
|
||||
this.$http
|
||||
.get('/sys/post/list')
|
||||
.then(({ data: res }) => {
|
||||
|
@ -288,7 +174,7 @@ export default {
|
|||
}
|
||||
this.postList = res.data
|
||||
})
|
||||
.catch(() => {})
|
||||
.catch(() => { })
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
>
|
||||
<div class="content">
|
||||
<img class="img" :src="dataInfo.imgSrc" />
|
||||
<div class="title">{{ title }}</div>
|
||||
<div class="title">{{ '我的'+title }}</div>
|
||||
<div class="flex-row-bottom">
|
||||
<span class="num" :style="{ color: dataInfo.textColor }">{{
|
||||
formatNum(dataInfo.num)
|
||||
|
@ -90,7 +90,7 @@
|
|||
</div>
|
||||
<div class="more" @click="goPage(dataInfo.url)">查看更多 ></div>
|
||||
</div>
|
||||
<div class="list-box flex-row-center no-data" v-else>暂无数据</div>
|
||||
<div class="list-box flex-row-center no-data" v-else>暂无{{title}}任务</div>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
|
|
|
@ -4,19 +4,19 @@
|
|||
<div v-if="!noData" v-loading="loading">
|
||||
<div class="no-box">
|
||||
<div class="no no2">
|
||||
<el-tooltip effect="dark" :content="no2Obj.name" placement="top">
|
||||
<el-tooltip effect="dark" :content="no2Obj.name" placement="top" v-if="no2Obj.name">
|
||||
<div class="name ellipsis" :style="{ color: colorObj[2] }">{{ no2Obj.name || '--' }}</div>
|
||||
</el-tooltip>
|
||||
<div class="count">{{ formatCount(no2Obj.count) }}</div>
|
||||
</div>
|
||||
<div class="no no1">
|
||||
<el-tooltip effect="dark" :content="no1Obj.name" placement="top">
|
||||
<el-tooltip effect="dark" :content="no1Obj.name" placement="top" v-if="no1Obj.name">
|
||||
<div class="name ellipsis" :style="{ color: colorObj[1] }">{{ no1Obj.name || '--' }}</div>
|
||||
</el-tooltip>
|
||||
<div class="count">{{ formatCount(no1Obj.count) }}</div>
|
||||
</div>
|
||||
<div class="no no3">
|
||||
<el-tooltip effect="dark" :content="no3Obj.name" placement="top">
|
||||
<el-tooltip effect="dark" :content="no3Obj.name" placement="top" v-if="no3Obj.name">
|
||||
<div class="name ellipsis" :style="{ color: colorObj[3] }">{{ no3Obj.name || '--' }}</div>
|
||||
</el-tooltip>
|
||||
|
||||
|
@ -26,7 +26,7 @@
|
|||
<div class="flex-row-between row-name" v-for="(data, i) in listInfo" :key="i">
|
||||
<div class="left">
|
||||
<div class="row-index">{{ i + 4 }}</div>
|
||||
<el-tooltip effect="dark" :content="data.name" placement="top">
|
||||
<el-tooltip effect="dark" :content="data.name" placement="top" v-if="data.name">
|
||||
<div class="name-text ellipsis">{{ data.name || '--' }}</div>
|
||||
</el-tooltip>
|
||||
</div>
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
<!-- 上 -->
|
||||
<div class="flex-row-start top">
|
||||
<div class="flex-row-start dept-left">
|
||||
<dept-todo-view title="部门待办" v-loading="loadingToDo" :dataInfo="toToData"></dept-todo-view>
|
||||
<dept-todo-view title="部门已办" v-loading="loadingHasToDo" :dataInfo="hasToDodoData"
|
||||
<dept-todo-view title="待办" v-loading="loadingToDo" :dataInfo="toToData"></dept-todo-view>
|
||||
<dept-todo-view title="已办" v-loading="loadingHasToDo" :dataInfo="hasToDodoData"
|
||||
style="margin-left: 0"></dept-todo-view>
|
||||
</div>
|
||||
<div class="flex-row-start dept-chart-box">
|
||||
|
@ -56,7 +56,7 @@ export default {
|
|||
list: [],
|
||||
type: 'todo',
|
||||
// url: 'activiti-my-todo-task',
|
||||
url: 'myAgent-CompetencyApplication',
|
||||
url: 'myAgent-CompetencyApplication'
|
||||
},
|
||||
// 部门已办
|
||||
hasToDodoData: {
|
||||
|
@ -69,7 +69,7 @@ export default {
|
|||
num: 0,
|
||||
list: [],
|
||||
// url: 'activiti-my-join-task',
|
||||
url: 'hasToDoTasks-CompetencyApplication',
|
||||
url: 'hasToDoTasks-CompetencyApplication'
|
||||
},
|
||||
// 部门申请
|
||||
resourceData: [],
|
||||
|
@ -103,43 +103,53 @@ export default {
|
|||
// 待办
|
||||
getToDo () {
|
||||
this.loadingToDo = true
|
||||
const data = {
|
||||
limit: 5,
|
||||
page: 1
|
||||
}
|
||||
Apis.getToDoTask(data, res => {
|
||||
// const data = {
|
||||
// limit: 5,
|
||||
// page: 1
|
||||
// }
|
||||
this.$http.get('/act/task/myToDoTaskPage?page=1&limit=5').then(res => {
|
||||
this.loadingToDo = false
|
||||
if (res.data.code !== 0) {
|
||||
return this.$message.error(res.data.msg)
|
||||
}
|
||||
console.log('res----待办-------->', res.data)
|
||||
this.toToData.list = res.data.data.records || []
|
||||
this.toToData.list = res.data.data.list || []
|
||||
this.toToData.num = res.data.data.total || 0
|
||||
}, err => {
|
||||
this.$message.error(err)
|
||||
this.loadingToDo = false
|
||||
})
|
||||
// Apis.getToDoTask(data, res => {
|
||||
// this.loadingToDo = false
|
||||
// if (res.data.code !== 0) {
|
||||
// return this.$message.error(res.data.msg)
|
||||
// }
|
||||
// console.log('res----待办-------->', res.data)
|
||||
// this.toToData.list = res.data.data.records || []
|
||||
// this.toToData.num = res.data.data.total || 0
|
||||
// }, err => {
|
||||
// this.$message.error(err)
|
||||
// this.loadingToDo = false
|
||||
// })
|
||||
},
|
||||
// 已办
|
||||
getHasToDo () {
|
||||
const data = {
|
||||
limit: 5,
|
||||
page: 1
|
||||
}
|
||||
// const data = {
|
||||
// limit: 5,
|
||||
// page: 1
|
||||
// }
|
||||
this.loadingHasToDo = true
|
||||
Apis.getHasToDoTask(data, res => {
|
||||
this.$http.get('/act/his/getMyHandledInstancePage?page=1&limit=5').then(res => {
|
||||
this.loadingHasToDo = false
|
||||
if (res.data.code !== 0) {
|
||||
return this.$message.error(res.data.msg)
|
||||
}
|
||||
console.log('res----已办-------->', res.data)
|
||||
this.hasToDodoData.list = res.data.data.records || []
|
||||
this.hasToDodoData.list = res.data.data.list || []
|
||||
this.hasToDodoData.num = res.data.data.total || 0
|
||||
}, err => {
|
||||
this.$message.error(err)
|
||||
this.loadingHasToDo = false
|
||||
console.log('err-----已办------->', err)
|
||||
})
|
||||
// Apis.getHasToDoTask(data, res => {
|
||||
// this.loadingHasToDo = false
|
||||
// if (res.data.code !== 0) {
|
||||
// return this.$message.error(res.data.msg)
|
||||
// }
|
||||
// console.log('res----已办-------->', res.data)
|
||||
// this.hasToDodoData.list = res.data.data.records || []
|
||||
// this.hasToDodoData.num = res.data.data.total || 0
|
||||
// }, err => {
|
||||
// this.$message.error(err)
|
||||
// this.loadingHasToDo = false
|
||||
// console.log('err-----已办------->', err)
|
||||
// })
|
||||
},
|
||||
// 部门上架
|
||||
getShelvesTotal () {
|
||||
|
|
|
@ -2,18 +2,18 @@
|
|||
* @Author: hisense.wuhongjian
|
||||
* @Date: 2020-07-07 16:03:23
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-10-13 21:31:09
|
||||
* @LastEditTime: 2022-10-24 11:50:52
|
||||
* @Description: 系统静态参数配置
|
||||
*/
|
||||
var _global = {}
|
||||
var CONFIGITEM = {
|
||||
// version: 'qingdao', //青岛
|
||||
version: 'xihaian', // 西海岸
|
||||
version: 'dev', // 西海岸
|
||||
// version: 'qingdao', // 开发
|
||||
// version: 'zhanTingDev', // 展厅dev (2022-09-13:姜永超让添加)
|
||||
// version: 'qingdao', // 测试
|
||||
//version: 'frp', // 内网穿透
|
||||
vNum: 'v0.8.7.2',
|
||||
vNum: 'v0.8.14.2',
|
||||
configData: {
|
||||
// 青岛市大数据局
|
||||
qingdao: {
|
||||
|
@ -27,8 +27,8 @@ var CONFIGITEM = {
|
|||
backUrl: 'http://15.72.183.90:8001',
|
||||
previewUrl: 'http://15.72.183.90:7008/',
|
||||
//frontUrl: 'http://15.72.183.90:7008/document/#/devModelFile/',
|
||||
//apiURL: 'http://15.72.183.90:8000/renren-admin',
|
||||
// websocketURL: '15.72.183.90:8000/renren-admin',
|
||||
apiURL: 'http://15.72.183.90:8000/renren-admin',
|
||||
websocketURL: '15.72.183.90:8000/renren-admin',
|
||||
// websocketURL: '192.168.124.233:8888/renren-admin',
|
||||
POI_URL:
|
||||
'http://15.72.178.129:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address',
|
||||
|
@ -86,8 +86,8 @@ var CONFIGITEM = {
|
|||
userPwd: '',
|
||||
},
|
||||
backUrl: 'http://localhost:8001',
|
||||
previewUrl: 'http://192.168.124.236:9796/',
|
||||
websocketURL: '192.168.124.233:8888/renren-admin',
|
||||
previewUrl: 'http://192.168.124.243:9796/',
|
||||
websocketURL: '192.168.124.243:8888/renren-admin',
|
||||
// websocketURL: '10.18.1.99:8889/renren-admin',
|
||||
POI_URL:
|
||||
'http://15.72.178.129:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address',
|
||||
|
|
|
@ -104,3 +104,8 @@
|
|||
font-family: 'Alibaba PuHuiTi';
|
||||
src: url('~@/assets/home/font/Alibaba-PuHuiTi-Light.otf');
|
||||
}
|
||||
|
||||
/* 气泡提示框按钮居中 */
|
||||
.ant-popover-inner-content .ant-popover-buttons {
|
||||
text-align: center;
|
||||
}
|
Binary file not shown.
|
@ -2,7 +2,7 @@
|
|||
* @Author: hisense.wuhongjian
|
||||
* @Date: 2022-04-20 17:16:35
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-08-25 14:13:30
|
||||
* @LastEditTime: 2022-10-26 17:57:52
|
||||
* @Description: 告诉大家这是什么
|
||||
*/
|
||||
import request from '@/utils/request'
|
||||
|
@ -99,14 +99,37 @@ export function getHls(params) {
|
|||
}
|
||||
|
||||
// 西海岸--获取摄像头列表的后台地址 (测试环境地址:10.134.135.92:9537)
|
||||
let _cameraUrl = _global && _global.config && _global.config.camreaInfo && _global.config.camreaInfo.cameraUrl || '10.134.135.92:9537';
|
||||
let _cameraUrl =
|
||||
(_global &&
|
||||
_global.config &&
|
||||
_global.config.camreaInfo &&
|
||||
_global.config.camreaInfo.cameraUrl) ||
|
||||
'10.134.135.92:9537'
|
||||
//能力集市基础设施-左侧列表
|
||||
export function getCameraInfoByAreaId(params) {
|
||||
return axios.get(`http://${_cameraUrl}/data_service/getCamera/getCameraInfoByAreaId?areaId=${params.areaId}`,
|
||||
return axios.get(
|
||||
`http://${_cameraUrl}/data_service/getCamera/getCameraInfoByAreaId?areaId=${params.areaId}`,
|
||||
config2
|
||||
)
|
||||
}
|
||||
//能力集市基础设施-摄像头
|
||||
export function getCameraByCondition(params) {
|
||||
return axios.post(`http://${_cameraUrl}/data_service/getCamera/getCameraByCondition`, params, config2)
|
||||
return axios.post(
|
||||
`http://${_cameraUrl}/data_service/getCamera/getCameraByCondition`,
|
||||
params,
|
||||
config2
|
||||
)
|
||||
}
|
||||
|
||||
export function initiateMeet(data) {
|
||||
// return request({
|
||||
// url: '/enke/initiateMeet',
|
||||
// method: 'post',
|
||||
// data: data,
|
||||
// })
|
||||
return axios.post(
|
||||
'http://10.134.135.92:8888/renren-admin/enke/initiateMeet',
|
||||
data,
|
||||
config2
|
||||
)
|
||||
}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
/*
|
||||
* @Author: hisense.wuhongjian
|
||||
* @Date: 2022-04-01 19:19:40
|
||||
* @LastEditors: hisense.liangjunhua
|
||||
* @LastEditTime: 2022-08-23 09:37:58
|
||||
* @LastEditors: Light
|
||||
* @LastEditTime: 2022-10-26 10:35:36
|
||||
* @Description: 告诉大家这是什么
|
||||
*/
|
||||
import request from '@/utils/request'
|
||||
|
@ -103,6 +103,20 @@ export function getUserInfo(params) {
|
|||
method: 'get',
|
||||
})
|
||||
}
|
||||
export function initiateMeet(data) {
|
||||
return request({
|
||||
url: '/enke/initiateMeet',
|
||||
method: 'post',
|
||||
data: data,
|
||||
})
|
||||
}
|
||||
export function getEnkeUsers(params) {
|
||||
return request({
|
||||
url: '/enke/getEnkeUsers',
|
||||
method: 'get',
|
||||
params: params,
|
||||
})
|
||||
}
|
||||
|
||||
// 组件服务
|
||||
export function ApplicationServe(data) {
|
||||
|
@ -405,11 +419,14 @@ export function updateIntegrationServices(data) {
|
|||
}
|
||||
|
||||
// 全局搜索
|
||||
export function getCountByFuzzyQuery(params) {
|
||||
export function getCountByFuzzyQuery(params, flag) {
|
||||
return request({
|
||||
url: '/resource/getCountByFuzzyQuery?keyWorld=' + params,
|
||||
url:
|
||||
'/resource/getCountByFuzzyQuery?keyWorld=' +
|
||||
params +
|
||||
'&nonChinese=' +
|
||||
flag,
|
||||
method: 'get',
|
||||
params,
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -493,3 +510,12 @@ export function getMaxApplyNum(number) {
|
|||
method: 'get',
|
||||
})
|
||||
}
|
||||
|
||||
// 市局-能力广场-算法广场和GIS广场根据区域查询列表
|
||||
export function getGisByArea(data) {
|
||||
return request({
|
||||
url: '/resource/getSquareList',
|
||||
method: 'post',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
/*
|
||||
* @Author: hisense.wuhongjian
|
||||
* @Date: 2022-03-29 17:48:03
|
||||
* @LastEditors: hisense.liangjunhua
|
||||
* @LastEditTime: 2022-07-15 16:42:22
|
||||
* @LastEditors: Light
|
||||
* @LastEditTime: 2022-10-25 09:37:05
|
||||
* @Description: 告诉大家这是什么
|
||||
*/
|
||||
import request from '@/utils/request'
|
||||
|
@ -23,6 +23,13 @@ export async function socialLogin(data) {
|
|||
})
|
||||
}
|
||||
|
||||
export function getRole(params) {
|
||||
return request({
|
||||
url: '/sys/role/' + params,
|
||||
method: 'get',
|
||||
params,
|
||||
})
|
||||
}
|
||||
export function getUserInfo(redict) {
|
||||
//此处为了兼容mock.js使用data传递accessToken,如果使用mock可以走headers
|
||||
// debugger
|
||||
|
@ -30,8 +37,8 @@ export function getUserInfo(redict) {
|
|||
url: '/sys/user/info',
|
||||
method: 'get',
|
||||
headers: {
|
||||
REQUESTURI:redict
|
||||
}
|
||||
REQUESTURI: redict,
|
||||
},
|
||||
})
|
||||
}
|
||||
export function getDeptAll() {
|
||||
|
|
Binary file not shown.
After Width: | Height: | Size: 757 KiB |
|
@ -16,6 +16,7 @@ const state = () => ({
|
|||
username: '',
|
||||
realName: '',
|
||||
deptName: '',
|
||||
deptId: '',
|
||||
userId: '',
|
||||
avatar: '',
|
||||
role: 0, // 用户管理员权限
|
||||
|
@ -28,6 +29,7 @@ const getters = {
|
|||
role: (state) => state.role,
|
||||
userId: (state) => state.userId,
|
||||
deptName: (state) => state.deptName,
|
||||
deptId: (state) => state.deptId,
|
||||
}
|
||||
const mutations = {
|
||||
/**
|
||||
|
@ -70,6 +72,9 @@ const mutations = {
|
|||
setDeptName(state, name) {
|
||||
state.deptName = name
|
||||
},
|
||||
setDeptId(state, name) {
|
||||
state.deptId = name
|
||||
},
|
||||
/**
|
||||
* @author chuzhixin 1204505056@qq.com
|
||||
* @description 设置头像
|
||||
|
@ -143,6 +148,7 @@ const actions = {
|
|||
commit('setRole', res.data.data.roleIdList.length)
|
||||
commit('setUserId', res.data.data.id)
|
||||
commit('setDeptName', res.data.data.deptName)
|
||||
commit('setDeptId', res.data.data.deptId)
|
||||
// TODO 获取用户信息,后续执行部分操作
|
||||
// let { username, avatar, roles, ability } = data
|
||||
// if (username && roles && Array.isArray(roles)) {
|
||||
|
@ -175,7 +181,7 @@ const actions = {
|
|||
* @param {*} { commit, dispatch }
|
||||
*/
|
||||
async resetAll({ dispatch }) {
|
||||
debugger
|
||||
|
||||
await dispatch('setAccessToken', '')
|
||||
await dispatch('acl/setFull', false, {
|
||||
root: true,
|
||||
|
|
|
@ -45,7 +45,6 @@ router.beforeEach(async (to, from, next) => {
|
|||
})
|
||||
console.log('验证白名单', routesWhiteList)
|
||||
if (routesWhiteList.indexOf(to.path) !== -1) {
|
||||
debugger
|
||||
next()
|
||||
} else {
|
||||
// 这里是一个单点登录的入口
|
||||
|
|
|
@ -109,7 +109,7 @@
|
|||
break
|
||||
case '资源申请量':
|
||||
window.open(
|
||||
window.SITE_CONFIG.backUrl + '/#/abilityStatistics-index',
|
||||
window.SITE_CONFIG.backUrl + '/#/abilityStatistics-index?type=use',
|
||||
'_blank'
|
||||
)
|
||||
break
|
||||
|
|
|
@ -262,6 +262,7 @@
|
|||
center: ['50%', '40%'],
|
||||
type: 'pie',
|
||||
selectedMode: 'single',
|
||||
silent: true,
|
||||
radius: ['50%', '30%'],
|
||||
color: ['#fe845e', '#6cc95a', '#02d1b0', '#1772ff', '#FAC858'],
|
||||
top: '0',
|
||||
|
@ -289,6 +290,7 @@
|
|||
type: 'pie',
|
||||
center: ['50%', '40%'],
|
||||
radius: ['58%', '50%'],
|
||||
silent: true,
|
||||
itemStyle: {
|
||||
normal: {
|
||||
color: '#c2c7d6',
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<!--
|
||||
* @Author: hisense.liangjunhua
|
||||
* @Date: 2022-06-17 14:11:08
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-08-25 19:52:03
|
||||
* @LastEditors: Light
|
||||
* @LastEditTime: 2022-10-26 14:57:25
|
||||
* @Description: 上架
|
||||
-->
|
||||
<template>
|
||||
|
@ -95,7 +95,7 @@
|
|||
disabled
|
||||
v-model:value="val[attr.field]"
|
||||
:showCount="true"
|
||||
:maxlength="200"
|
||||
:maxlength="1000"
|
||||
:placeholder="'请填写' + attr.name"
|
||||
v-else-if="attr.type == 'textArea'"
|
||||
/>
|
||||
|
@ -166,7 +166,7 @@
|
|||
<a-textarea
|
||||
v-model:value="val.note1"
|
||||
:showCount="true"
|
||||
:maxlength="200"
|
||||
:maxlength="1000"
|
||||
:placeholder="'请填写' + val.name"
|
||||
v-else-if="val.type == 'textArea'"
|
||||
/>
|
||||
|
@ -270,7 +270,7 @@
|
|||
v-else-if="item.type == 'textArea'"
|
||||
v-model:value="item.note1"
|
||||
:showCount="true"
|
||||
:maxlength="200"
|
||||
:maxlength="1000"
|
||||
:placeholder="'请输入' + item.name"
|
||||
@change="changeIiem(item.name, item.note1)"
|
||||
/>
|
||||
|
@ -1132,7 +1132,7 @@
|
|||
</script>
|
||||
<style></style>
|
||||
<style lang="less" scoped>
|
||||
.put-on-the-shelf {
|
||||
.put-on-the-shelf {
|
||||
height: 6.8rem;
|
||||
overflow: scroll;
|
||||
display: flex;
|
||||
|
@ -1272,9 +1272,9 @@
|
|||
& > div:nth-of-type(1) {
|
||||
margin-top: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.application-Area {
|
||||
.application-Area {
|
||||
width: 5.2rem;
|
||||
display: grid;
|
||||
margin-top: -0.05rem;
|
||||
|
@ -1300,78 +1300,78 @@
|
|||
background: #0087ff;
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.ant-image-img) {
|
||||
:deep(.ant-image-img) {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
object-fit: contain;
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.ant-modal) {
|
||||
:deep(.ant-modal) {
|
||||
width: 9.6rem;
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.ant-transfer-list) {
|
||||
:deep(.ant-transfer-list) {
|
||||
width: 39.5%;
|
||||
height: 5.2rem;
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.ant-transfer-operation) {
|
||||
:deep(.ant-transfer-operation) {
|
||||
flex-direction: row-reverse;
|
||||
margin: 0 0.3rem;
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.ant-btn) {
|
||||
:deep(.ant-btn) {
|
||||
width: 0.56rem;
|
||||
height: 0.4rem;
|
||||
border-radius: 0.04rem;
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.ant-btn:first-child) {
|
||||
:deep(.ant-btn:first-child) {
|
||||
margin-left: 0.04rem;
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.ant-modal-footer) {
|
||||
:deep(.ant-modal-footer) {
|
||||
border: 0;
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.ant-modal-header) {
|
||||
:deep(.ant-modal-header) {
|
||||
border: 0;
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.ant-modal-title) {
|
||||
:deep(.ant-modal-title) {
|
||||
line-height: 0.24rem;
|
||||
font-size: 0.18rem;
|
||||
color: #303133;
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.ant-transfer-list-header) {
|
||||
:deep(.ant-transfer-list-header) {
|
||||
background: #f5f7fa;
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.ant-transfer-list-header-selected) {
|
||||
:deep(.ant-transfer-list-header-selected) {
|
||||
display: flex;
|
||||
width: 90%;
|
||||
flex-direction: row-reverse;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.ant-transfer-list-header-title) {
|
||||
:deep(.ant-transfer-list-header-title) {
|
||||
font-size: 0.16rem;
|
||||
color: #303133;
|
||||
font-weight: 400;
|
||||
text-align: left;
|
||||
}
|
||||
:deep(.ant-transfer-list-header .ant-checkbox-wrapper) {
|
||||
}
|
||||
:deep(.ant-transfer-list-header .ant-checkbox-wrapper) {
|
||||
display: none !important;
|
||||
}
|
||||
:deep(.ant-upload-list-item-name) {
|
||||
}
|
||||
:deep(.ant-upload-list-item-name) {
|
||||
width: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
.del {
|
||||
.del {
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
|
@ -1390,8 +1390,8 @@
|
|||
div {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
.item {
|
||||
}
|
||||
.item {
|
||||
position: relative;
|
||||
span:first-child {
|
||||
width: unset;
|
||||
|
@ -1417,5 +1417,5 @@
|
|||
bottom: -20px;
|
||||
left: 110px;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,6 +1,20 @@
|
|||
<!-- 智能算法 -->
|
||||
<template>
|
||||
<div class="algorithm">
|
||||
<div style="display: flex">
|
||||
<div class="select">
|
||||
<div class="top" @click="selectFlag = !selectFlag">
|
||||
{{ typeName }}
|
||||
<div class="light"></div>
|
||||
</div>
|
||||
<div class="bottom" v-show="selectFlag">
|
||||
<span class="light"></span>
|
||||
<div @click="changeDeptType('全市')">全市</div>
|
||||
<div @click="changeDeptType('市级')">市级</div>
|
||||
<div @click="changeDeptType('区级')">区级</div>
|
||||
<div @click="changeDeptType('企业')">企业</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="select">
|
||||
<div class="top" @click="selectFlag2 = true">
|
||||
{{ typeName2 }}
|
||||
|
@ -8,24 +22,17 @@
|
|||
</div>
|
||||
<div class="bottom" v-show="selectFlag2">
|
||||
<span class="light"></span>
|
||||
<div v-for="val in dictList" :key="val" @click="getList2(val)">
|
||||
<div v-for="val in dictList" :key="val" @click="changeAreaFunction(val)">
|
||||
{{ val }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="algorithm-class">
|
||||
<div
|
||||
v-for="(item, index) in dataList"
|
||||
:key="`algorithm-${index}`"
|
||||
class="algorithm-card"
|
||||
>
|
||||
<a-image
|
||||
:src="algorithmCardPhoto(item.infoList, item)"
|
||||
:width="525"
|
||||
:height="275"
|
||||
:fallback="imgSrc"
|
||||
:preview="false"
|
||||
></a-image>
|
||||
<div v-for="(item, index) in dataList" :key="`algorithm-${index}`" class="algorithm-card">
|
||||
<a-image :src="algorithmCardPhoto(item)" :width="525" :height="275" :fallback="imgSrc" :preview="false">
|
||||
</a-image>
|
||||
|
||||
<a-tooltip>
|
||||
<template #title>{{ item.name }}</template>
|
||||
|
@ -39,81 +46,75 @@
|
|||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import { getCategoryTreePage } from '@/api/personalCenter'
|
||||
import { pageWithAttrs } from '@/api/abilityStatistics'
|
||||
import { ref, onMounted, onBeforeUnmount } from 'vue'
|
||||
const typeName2 = ref('全部')
|
||||
const dictList = ref([])
|
||||
const dataList = ref([])
|
||||
const selectFlag2 = ref(false)
|
||||
getCategoryTreePage({
|
||||
import { getCategoryTreePage } from '@/api/personalCenter'
|
||||
import { getGisByArea } from '@/api/home'
|
||||
import { ref, onMounted, onBeforeUnmount, nextTick } from 'vue'
|
||||
|
||||
|
||||
const deptType = ref(null)
|
||||
const typeName = ref('全市')
|
||||
const typeName2 = ref('全部')
|
||||
const dictList = ref([])
|
||||
const dataList = ref([])
|
||||
const selectFlag2 = ref(false)
|
||||
const selectFlag = ref(false)
|
||||
getCategoryTreePage({
|
||||
page: 1,
|
||||
limit: 99,
|
||||
dictTypeId: '1513712507692818433',
|
||||
}).then((res) => {
|
||||
}).then((res) => {
|
||||
dictList.value = ['全部']
|
||||
res.data.data.list.map((val) => {
|
||||
if (val.dictLabel !== '其他') {
|
||||
// if (val.dictLabel !== '其他') {
|
||||
dictList.value.push(val.dictLabel)
|
||||
}
|
||||
// }
|
||||
})
|
||||
})
|
||||
const params = {
|
||||
deptIds: [],
|
||||
districtId: '',
|
||||
infoList: [{ attrType: '组件类型', attrValue: '智能算法' }],
|
||||
orderField: 'pin_top',
|
||||
orderType: 'DESC',
|
||||
})
|
||||
const params = {
|
||||
pageNum: 1,
|
||||
pageSize: 9,
|
||||
type: '组件服务',
|
||||
}
|
||||
const getList2 = (val) => {
|
||||
type: '智能算法',
|
||||
area: typeName2.value == '全部' ? '' : typeName2.value,
|
||||
pageSize: 9 // 固定9
|
||||
}
|
||||
|
||||
// 切换领域
|
||||
const changeAreaFunction = (val) => {
|
||||
params.pageNum = 1;
|
||||
typeName2.value = val
|
||||
if (val == '全部') {
|
||||
params.infoList = [{ attrType: '组件类型', attrValue: '智能算法' }]
|
||||
} else {
|
||||
params.infoList = [
|
||||
{ attrType: '组件类型', attrValue: '智能算法' },
|
||||
{ attrType: '应用领域', attrValue: val },
|
||||
]
|
||||
}
|
||||
params.area = typeName2.value == '全部' ? '' : typeName2.value;
|
||||
selectFlag2.value = false
|
||||
pageWithAttrsFunction()
|
||||
}
|
||||
let algorithmclass = null
|
||||
const imgSrc = ref(require('@/assets/capacitySquare/algorithm-photo.jpg'))
|
||||
const dataLength = ref(true)
|
||||
const isNoMore = ref(false)
|
||||
let url = ref('')
|
||||
const pageWithAttrsFunction = () => {
|
||||
pageWithAttrs(params).then((res) => {
|
||||
dataList.value = res.data.data.records
|
||||
if (res.data.data.records.length < 9) {
|
||||
}
|
||||
let algorithmclassDom = null
|
||||
const imgSrc = ref(require('@/assets/capacitySquare/algorithm-photo.jpg'))
|
||||
const dataLength = ref(true)
|
||||
const isNoMore = ref(false)
|
||||
let url = ref('')
|
||||
const pageWithAttrsFunction = () => {
|
||||
getGisByArea(params).then((res) => {
|
||||
dataList.value = res.data.data.list
|
||||
if (res.data.data.list.length < 9) {
|
||||
dataLength.value = false
|
||||
}
|
||||
})
|
||||
}
|
||||
pageWithAttrsFunction()
|
||||
|
||||
//图片显示
|
||||
const algorithmCardPhoto = (item) => {
|
||||
let _arr = []
|
||||
if(item.pic && typeof item.pic == 'string') {
|
||||
_arr = JSON.parse(item.pic)
|
||||
}
|
||||
pageWithAttrsFunction()
|
||||
//图片显示
|
||||
const algorithmCardPhoto = (List, item) => {
|
||||
let obj = List.filter((item) => item.attrType === '应用场景')[0]
|
||||
if (obj && obj.attrValue != '') {
|
||||
console.log(
|
||||
item.name,
|
||||
item.id,
|
||||
obj.attrValue,
|
||||
'----------------------------'
|
||||
)
|
||||
obj = JSON.parse(obj.attrValue)[0].img
|
||||
}
|
||||
return obj || ''
|
||||
}
|
||||
//跳转详情页
|
||||
const detailFunction = (id) => {
|
||||
let _img = _arr[0] && _arr[0].img || imgSrc.value;
|
||||
console.log('_img------------>', _img);
|
||||
return _img
|
||||
}
|
||||
//跳转详情页
|
||||
const detailFunction = (id) => {
|
||||
window.open(window.SITE_CONFIG.previewUrl + `#/details?id=${id}`)
|
||||
}
|
||||
const algorithmFunction = (e) => {
|
||||
}
|
||||
const algorithmFunction = (e) => {
|
||||
var scrollTop = e.currentTarget.scrollTop
|
||||
var windowHeight = e.currentTarget.clientHeight
|
||||
var scrollHeight = e.currentTarget.scrollHeight
|
||||
|
@ -125,37 +126,92 @@
|
|||
// 当前滚动条已经触底
|
||||
isNoMore.value = true
|
||||
params.pageNum++
|
||||
pageWithAttrs(params).then((res) => {
|
||||
dataList.value.push(...res.data.data.records)
|
||||
if (res.data.data.records.length < 9) {
|
||||
getGisByArea(params).then((res) => {
|
||||
dataList.value.push(...res.data.data.list)
|
||||
if (res.data.data.list.length < 9) {
|
||||
dataLength.value = false
|
||||
}
|
||||
})
|
||||
} else {
|
||||
isNoMore.value = false
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
algorithmclass = document.querySelector('.algorithm-class')
|
||||
// 切换区市
|
||||
const changeDeptType = (str) => {
|
||||
if (str) {
|
||||
if (algorithmclassDom) {
|
||||
algorithmclassDom.scrollTop = 0;
|
||||
}
|
||||
switch (str) {
|
||||
case '全市':
|
||||
deptType.value = null
|
||||
typeName.value = '全 市'
|
||||
break
|
||||
case '市级':
|
||||
deptType.value = 2
|
||||
typeName.value = '市 级'
|
||||
break
|
||||
case '区级':
|
||||
deptType.value = 3
|
||||
typeName.value = '区 级'
|
||||
break
|
||||
case '企业':
|
||||
deptType.value = 4
|
||||
typeName.value = '企 业'
|
||||
break
|
||||
}
|
||||
params.pageNum = 1;
|
||||
if(deptType.value !== null && deptType.value !== undefined) {
|
||||
params.deptType = deptType.value;
|
||||
}else {
|
||||
if(Object.keys(params).includes('deptType')) {
|
||||
delete params.deptType
|
||||
}
|
||||
}
|
||||
}
|
||||
selectFlag.value = false
|
||||
getData(str)
|
||||
}
|
||||
|
||||
const getData = (str) => {
|
||||
getGisByArea(params).then((res) => {
|
||||
const resData = res.data.data || {}
|
||||
if (resData.list.length > 0 && resData.list.length < 9 && algorithmclassDom) {
|
||||
algorithmclassDom.removeEventListener('scroll', algorithmFunction, true)
|
||||
}
|
||||
dataList.value = resData.list || []
|
||||
nextTick(() => {
|
||||
algorithmclassDom = document.querySelector('.algorithm-box')
|
||||
if (str && algorithmclassDom) {
|
||||
algorithmclassDom.removeEventListener('scroll', algorithmFunction, true)
|
||||
algorithmclassDom.addEventListener('scroll', algorithmFunction, true)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
algorithmclassDom = document.querySelector('.algorithm-class')
|
||||
if (dataLength.value) {
|
||||
//监听滚动事件
|
||||
algorithmclass.addEventListener('scroll', algorithmFunction, true)
|
||||
algorithmclassDom.addEventListener('scroll', algorithmFunction, true)
|
||||
}
|
||||
})
|
||||
onBeforeUnmount(() => {
|
||||
algorithmclass.removeEventListener('scroll', algorithmFunction, true)
|
||||
})
|
||||
})
|
||||
onBeforeUnmount(() => {
|
||||
algorithmclassDom.removeEventListener('scroll', algorithmFunction, true)
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.algorithm {
|
||||
.algorithm {
|
||||
.select {
|
||||
margin: 0.1rem 0 0.1rem 0.2rem;
|
||||
color: #fff;
|
||||
font-size: 0.2rem;
|
||||
font-family: webfont;
|
||||
position: relative;
|
||||
|
||||
.top {
|
||||
cursor: pointer;
|
||||
width: 3.61rem;
|
||||
|
@ -166,17 +222,18 @@
|
|||
background: url('~@/assets/capacitySquare/select-bg.png') no-repeat;
|
||||
background-size: 100%;
|
||||
position: relative;
|
||||
|
||||
.light {
|
||||
width: 0.56rem;
|
||||
height: 3px;
|
||||
position: absolute;
|
||||
top: 0.4rem;
|
||||
left: 1.52rem;
|
||||
background: url('~@/assets/capacitySquare/select-light1.png')
|
||||
no-repeat;
|
||||
background: url('~@/assets/capacitySquare/select-light1.png') no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.bottom {
|
||||
cursor: pointer;
|
||||
position: absolute;
|
||||
|
@ -185,6 +242,7 @@
|
|||
z-index: 1000;
|
||||
background: rgba(57, 134, 239, 0.68);
|
||||
border: 1px solid #aed5ff;
|
||||
|
||||
.light {
|
||||
display: inline-block;
|
||||
width: 2.39rem;
|
||||
|
@ -192,22 +250,24 @@
|
|||
position: absolute;
|
||||
top: -0.08rem;
|
||||
left: -0.3rem;
|
||||
background: url('~@/assets/capacitySquare/select-light2.png')
|
||||
no-repeat;
|
||||
background: url('~@/assets/capacitySquare/select-light2.png') no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
& > div {
|
||||
|
||||
&>div {
|
||||
width: 1.8rem;
|
||||
height: 0.4rem;
|
||||
line-height: 0.4rem;
|
||||
text-align: center;
|
||||
border-top: 1px solid #aed5ff;
|
||||
}
|
||||
& > div:nth-of-type(1) {
|
||||
|
||||
&>div:nth-of-type(1) {
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.algorithm-class {
|
||||
// margin-top: 0.6rem;
|
||||
margin-bottom: 0.18rem;
|
||||
|
@ -217,6 +277,7 @@
|
|||
overflow: auto;
|
||||
margin-left: 1.15rem;
|
||||
margin-right: 0.15rem;
|
||||
|
||||
.algorithm-card {
|
||||
height: 2.75rem;
|
||||
width: 5.25rem;
|
||||
|
@ -225,6 +286,7 @@
|
|||
margin-bottom: 0.4rem;
|
||||
margin-right: 0.65rem;
|
||||
position: relative;
|
||||
|
||||
:deep(.ant-image) {
|
||||
img {
|
||||
margin-top: 0.15rem;
|
||||
|
@ -233,13 +295,14 @@
|
|||
margin-left: 0.1rem;
|
||||
}
|
||||
}
|
||||
|
||||
.algorithm-card-photo {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
background: url('~@/assets/capacitySquare/algorithm-photo.jpg')
|
||||
no-repeat;
|
||||
background: url('~@/assets/capacitySquare/algorithm-photo.jpg') no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
.algorithm-card-title {
|
||||
position: absolute;
|
||||
height: 0.6rem;
|
||||
|
@ -250,12 +313,12 @@
|
|||
font-family: alibaba;
|
||||
bottom: 0.15rem;
|
||||
padding-left: 0.22rem;
|
||||
background: url('~@/assets/capacitySquare/algorithm-title-bg.png')
|
||||
no-repeat;
|
||||
background: url('~@/assets/capacitySquare/algorithm-title-bg.png') no-repeat;
|
||||
background-size: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
|
||||
span {
|
||||
line-height: 0.24rem;
|
||||
overflow: hidden;
|
||||
|
@ -263,24 +326,28 @@
|
|||
white-space: nowrap;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
span:last-child {
|
||||
font-size: 0.14rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.algorithm-class::-webkit-scrollbar-track-piece {
|
||||
background: #a5bcdb;
|
||||
border-radius: 0.08rem;
|
||||
}
|
||||
|
||||
.algorithm-class::-webkit-scrollbar-thumb {
|
||||
height: 3.2rem;
|
||||
background: linear-gradient(to bottom, #47d7f5, #3dc6e3);
|
||||
}
|
||||
|
||||
.algorithm-class::-webkit-scrollbar {
|
||||
height: 8.8rem;
|
||||
width: 0.08rem;
|
||||
border-radius: 0.08rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<!--
|
||||
* @Author: hisense.liangjunhua
|
||||
* @Date: 2022-08-09 09:31:25
|
||||
* @LastEditors: hisense.liangjunhua
|
||||
* @LastEditTime: 2022-09-19 10:19:02
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-10-24 10:44:50
|
||||
* @Description: 应用资源
|
||||
-->
|
||||
<template>
|
||||
|
@ -74,9 +74,9 @@
|
|||
}).then((res) => {
|
||||
dictList.value = ['全部']
|
||||
res.data.data.list.map((val) => {
|
||||
if (val.dictLabel !== '其他') {
|
||||
// if (val.dictLabel !== '其他') {
|
||||
dictList.value.push(val.dictLabel)
|
||||
}
|
||||
// }
|
||||
})
|
||||
})
|
||||
let dom = null
|
||||
|
@ -121,16 +121,19 @@
|
|||
type: type.value,
|
||||
area: area.value,
|
||||
}).then((res) => {
|
||||
if (res.data.data.length < 9) {
|
||||
console.log('res---应用广场--------->', res);
|
||||
|
||||
if (res.data.data.total.length < 9) {
|
||||
dom.removeEventListener('scroll', viewMonitor, true)
|
||||
}
|
||||
res.data.data.map((val) => {
|
||||
// appList
|
||||
res.data.data.appList.map((val) => {
|
||||
if (!val.pic) {
|
||||
val.pic = require('@/assets/capacitySquare/yyzy.jpg')
|
||||
}
|
||||
val.pic2 = require('@/assets/capacitySquare/yyzy.jpg')
|
||||
})
|
||||
data.list.push(...res.data.data)
|
||||
data.list.push(...res.data.data.appList)
|
||||
selectFlag.value = false
|
||||
nextTick(() => {
|
||||
dom = document.querySelector('.item-box')
|
||||
|
|
|
@ -1,6 +1,20 @@
|
|||
<!-- 图层服务 -->
|
||||
<template>
|
||||
<div class="algorithm">
|
||||
<div style="display: flex">
|
||||
<div class="select">
|
||||
<div class="top" @click="selectFlag = !selectFlag">
|
||||
{{ typeName }}
|
||||
<div class="light"></div>
|
||||
</div>
|
||||
<div class="bottom" v-show="selectFlag">
|
||||
<span class="light"></span>
|
||||
<div @click="changeDeptType('全市')">全市</div>
|
||||
<div @click="changeDeptType('市级')">市级</div>
|
||||
<div @click="changeDeptType('区级')">区级</div>
|
||||
<div @click="changeDeptType('企业')">企业</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="select">
|
||||
<div class="top" @click="selectFlag2 = true">
|
||||
{{ typeName2 }}
|
||||
|
@ -8,11 +22,16 @@
|
|||
</div>
|
||||
<div class="bottom" v-show="selectFlag2">
|
||||
<span class="light"></span>
|
||||
<div v-for="val in dictList" :key="val" @click="getList2(val)">
|
||||
<div
|
||||
v-for="val in dictList"
|
||||
:key="val"
|
||||
@click="changeAreaFunction(val)"
|
||||
>
|
||||
{{ val }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="algorithm-class">
|
||||
<div
|
||||
v-for="(item, index) in dataList"
|
||||
|
@ -20,13 +39,12 @@
|
|||
class="algorithm-card"
|
||||
>
|
||||
<a-image
|
||||
:src="algorithmCardPhoto(item.infoList)"
|
||||
:src="item.pic || imgSrc"
|
||||
:width="525"
|
||||
:height="275"
|
||||
:fallback="imgSrc"
|
||||
:preview="false"
|
||||
></a-image>
|
||||
|
||||
<a-tooltip>
|
||||
<template #title>{{ item.name }}</template>
|
||||
<div class="algorithm-card-title" @click="detailFunction(item.id)">
|
||||
|
@ -40,12 +58,15 @@
|
|||
</template>
|
||||
<script setup>
|
||||
import { getCategoryTreePage } from '@/api/personalCenter'
|
||||
import { pageWithAttrs } from '@/api/abilityStatistics'
|
||||
import { ref, onMounted, onBeforeUnmount } from 'vue'
|
||||
import { getGisByArea } from '@/api/home'
|
||||
import { ref, onMounted, onBeforeUnmount, nextTick } from 'vue'
|
||||
const deptType = ref(null)
|
||||
const typeName = ref('全市')
|
||||
const typeName2 = ref('全部')
|
||||
const dictList = ref([])
|
||||
const dataList = ref([])
|
||||
const selectFlag2 = ref(false)
|
||||
const selectFlag = ref(false)
|
||||
getCategoryTreePage({
|
||||
page: 1,
|
||||
limit: 99,
|
||||
|
@ -53,61 +74,101 @@
|
|||
}).then((res) => {
|
||||
dictList.value = ['全部']
|
||||
res.data.data.list.map((val) => {
|
||||
if (val.dictLabel !== '其他') {
|
||||
// if (val.dictLabel !== '其他') {
|
||||
dictList.value.push(val.dictLabel)
|
||||
}
|
||||
// }
|
||||
})
|
||||
})
|
||||
const params = {
|
||||
deptIds: [],
|
||||
districtId: '',
|
||||
infoList: [{ attrType: '组件类型', attrValue: '图层服务' }],
|
||||
orderField: 'deptSort',
|
||||
orderType: 'DESC',
|
||||
pageNum: 1,
|
||||
pageSize: 9,
|
||||
type: '组件服务',
|
||||
type: '图层服务',
|
||||
area: typeName2.value == '全部' ? '' : typeName2.value,
|
||||
pageSize: 9, // 固定9
|
||||
}
|
||||
const getList2 = (val) => {
|
||||
// 切换领域
|
||||
const changeAreaFunction = (val) => {
|
||||
params.pageNum = 1
|
||||
typeName2.value = val
|
||||
if (val == '全部') {
|
||||
params.infoList = [{ attrType: '组件类型', attrValue: '图层服务' }]
|
||||
} else {
|
||||
params.infoList = [
|
||||
{ attrType: '组件类型', attrValue: '图层服务' },
|
||||
{ attrType: '应用领域', attrValue: val },
|
||||
]
|
||||
}
|
||||
params.area = typeName2.value == '全部' ? '' : typeName2.value
|
||||
selectFlag2.value = false
|
||||
pageWithAttrsFunction()
|
||||
}
|
||||
let algorithmclass = null
|
||||
let algorithmclassDom = null
|
||||
const imgSrc = ref(require('@/assets/capacitySquare/algorithm-photo2.jpg'))
|
||||
const dataLength = ref(true)
|
||||
const isNoMore = ref(false)
|
||||
const pageWithAttrsFunction = () => {
|
||||
pageWithAttrs(params).then((res) => {
|
||||
dataList.value = res.data.data.records
|
||||
if (res.data.data.records.length < 9) {
|
||||
getGisByArea(params).then((res) => {
|
||||
dataList.value = res.data.data.list
|
||||
if (res.data.data.list.length < 9) {
|
||||
dataLength.value = false
|
||||
}
|
||||
})
|
||||
}
|
||||
pageWithAttrsFunction()
|
||||
//图片显示
|
||||
const algorithmCardPhoto = (List) => {
|
||||
let url = ''
|
||||
List.map((item) => {
|
||||
if (item.attrType === '图层缩略图') {
|
||||
url = item.attrValue
|
||||
}
|
||||
})
|
||||
return url
|
||||
}
|
||||
//跳转详情页
|
||||
const detailFunction = (id) => {
|
||||
window.open(window.SITE_CONFIG.previewUrl + `#/details?id=${id}`)
|
||||
}
|
||||
const changeDeptType = (str) => {
|
||||
if (str) {
|
||||
if (algorithmclassDom) {
|
||||
algorithmclassDom.scrollTop = 0
|
||||
}
|
||||
switch (str) {
|
||||
case '全市':
|
||||
deptType.value = null
|
||||
typeName.value = '全 市'
|
||||
break
|
||||
case '市级':
|
||||
deptType.value = 2
|
||||
typeName.value = '市 级'
|
||||
break
|
||||
case '区级':
|
||||
deptType.value = 3
|
||||
typeName.value = '区 级'
|
||||
break
|
||||
case '企业':
|
||||
deptType.value = 4
|
||||
typeName.value = '企 业'
|
||||
break
|
||||
}
|
||||
params.pageNum = 1
|
||||
if (deptType.value !== null && deptType.value !== undefined) {
|
||||
params.deptType = deptType.value
|
||||
} else {
|
||||
if (Object.keys(params).includes('deptType')) {
|
||||
delete params.deptType
|
||||
}
|
||||
}
|
||||
}
|
||||
selectFlag.value = false
|
||||
getData(str)
|
||||
}
|
||||
const getData = (str) => {
|
||||
getGisByArea(params).then((res) => {
|
||||
const resData = res.data.data || {}
|
||||
if (
|
||||
resData.list.length > 0 &&
|
||||
resData.list.length < 9 &&
|
||||
algorithmclassDom
|
||||
) {
|
||||
algorithmclassDom.removeEventListener('scroll', algorithmFunction, true)
|
||||
}
|
||||
dataList.value = resData.list || []
|
||||
nextTick(() => {
|
||||
algorithmclassDom = document.querySelector('.algorithm-box')
|
||||
if (str && algorithmclassDom) {
|
||||
algorithmclassDom.removeEventListener(
|
||||
'scroll',
|
||||
algorithmFunction,
|
||||
true
|
||||
)
|
||||
algorithmclassDom.addEventListener('scroll', algorithmFunction, true)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
const layerFunction = (e) => {
|
||||
var scrollTop = e.currentTarget.scrollTop
|
||||
var windowHeight = e.currentTarget.clientHeight
|
||||
|
@ -120,9 +181,9 @@
|
|||
// 当前滚动条已经触底
|
||||
isNoMore.value = true
|
||||
params.pageNum++
|
||||
pageWithAttrs(params).then((res) => {
|
||||
dataList.value.push(...res.data.data.records)
|
||||
if (res.data.data.records.length < 9) {
|
||||
getGisByArea(params).then((res) => {
|
||||
dataList.value.push(...res.data.data.list)
|
||||
if (res.data.data.list.length < 9) {
|
||||
dataLength.value = false
|
||||
}
|
||||
})
|
||||
|
@ -131,17 +192,16 @@
|
|||
}
|
||||
}
|
||||
onMounted(() => {
|
||||
algorithmclass = document.querySelector('.algorithm-class')
|
||||
algorithmclassDom = document.querySelector('.algorithm-class')
|
||||
if (dataLength.value) {
|
||||
//监听滚动事件
|
||||
algorithmclass.addEventListener('scroll', layerFunction, true)
|
||||
algorithmclassDom.addEventListener('scroll', layerFunction, true)
|
||||
}
|
||||
})
|
||||
onBeforeUnmount(() => {
|
||||
algorithmclass.removeEventListener('scroll', layerFunction, true)
|
||||
algorithmclassDom.removeEventListener('scroll', layerFunction, true)
|
||||
})
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.algorithm {
|
||||
.select {
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -811,10 +811,10 @@
|
|||
const handleBlur = () => {
|
||||
console.log('blur')
|
||||
}
|
||||
const arrId = []
|
||||
const handleFocus = () => {
|
||||
console.log('focus')
|
||||
let arrId = []
|
||||
for (var valueIndex of systemOptions2.value) {
|
||||
console.log('focus', systemOptions2.value, systemOptions.value)
|
||||
for (let valueIndex of systemOptions2.value) {
|
||||
if (arrId.indexOf(valueIndex['value']) == -1) {
|
||||
arrId.push(valueIndex['value'])
|
||||
systemOptions.value.push(valueIndex)
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
<template>
|
||||
<div class="home-header" :class="[
|
||||
<div
|
||||
class="home-header"
|
||||
:class="[
|
||||
select !== 'home' || scrollTop > 500 ? 'white' : '',
|
||||
props.showView === 'algorithm-details' ? '' : '',
|
||||
]">
|
||||
]"
|
||||
>
|
||||
<div class="name" @click="goToHome">
|
||||
<div class="name-bg" v-if="!itShowXiHaiAn"></div>
|
||||
<div class="name-bg-xihaian" v-else></div>
|
||||
|
@ -11,26 +14,52 @@
|
|||
<p>(United Capacity System)</p>
|
||||
</div>
|
||||
</div>
|
||||
<div v-for="item in navList" :key="item.key" @click="jumpPage(item)" class="nav"
|
||||
:class="item.key == select ? 'select' : ''">
|
||||
<div
|
||||
v-for="item in navList"
|
||||
:key="item.key"
|
||||
@click="jumpPage(item)"
|
||||
class="nav"
|
||||
:class="item.key == select ? 'select' : ''"
|
||||
>
|
||||
{{ item.name }}
|
||||
</div>
|
||||
<!-- 购物车 -->
|
||||
<a-badge :count="sgcNum">
|
||||
<svg t="1650455446850" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
|
||||
p-id="2069" width="0.4rem" height="0.4rem" @click="goToSgc">
|
||||
<svg
|
||||
t="1650455446850"
|
||||
class="icon"
|
||||
viewBox="0 0 1024 1024"
|
||||
version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
p-id="2069"
|
||||
width="0.4rem"
|
||||
height="0.4rem"
|
||||
@click="goToSgc"
|
||||
>
|
||||
<path
|
||||
d="M384 832v85.333333h-85.333333v-85.333333h85.333333z m405.333333 0v85.333333h-85.333333v-85.333333h85.333333zM240.32 185.002667l24.149333 140.928h633.173334L835.285333 746.666667h-563.626666l-85.333334-497.685334H94.485333v-64h145.834667z m583.104 204.928H275.434667L325.632 682.666667h454.464l43.328-292.736z"
|
||||
:fill="props.showView === 'algorithm-details' ? '#1296db' : '#1296db'" p-id="2070"></path>
|
||||
:fill="props.showView === 'algorithm-details' ? '#1296db' : '#1296db'"
|
||||
p-id="2070"
|
||||
></path>
|
||||
</svg>
|
||||
</a-badge>
|
||||
<a-badge :count="mynoticeNum" style="margin-left: 0.2rem">
|
||||
<!-- 消息提醒 -->
|
||||
<svg t="1654051054113" class="icon2" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
|
||||
p-id="2187" width="0.35rem" height="0.35rem">
|
||||
<svg
|
||||
t="1654051054113"
|
||||
class="icon2"
|
||||
viewBox="0 0 1024 1024"
|
||||
version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
p-id="2187"
|
||||
width="0.35rem"
|
||||
height="0.35rem"
|
||||
>
|
||||
<path
|
||||
d="M544 161.536a330.666667 330.666667 0 0 1 298.666667 329.130667h-0.341334c0.213333 1.493333 0.341333 2.986667 0.341334 4.565333v219.434667h39.68a32 32 0 0 1 0 64h-212.053334a160 160 0 0 1-316.586666 0H141.909333a32 32 0 1 1 0-64h39.424v-219.434667c0-1.578667 0.128-3.072 0.341334-4.565333H181.333333a330.666667 330.666667 0 0 1 298.666667-329.130667V128a32 32 0 1 1 64 0v33.536z m-298.666667 553.130667h533.333334v-219.434667c0-1.578667 0.128-3.072 0.341333-4.565333h-0.341333a266.666667 266.666667 0 1 0-533.333334 0h-0.341333c0.213333 1.493333 0.341333 2.986667 0.341333 4.565333v219.434667z m359.765334 64H418.901333a96 96 0 0 0 186.197334 0z"
|
||||
:fill="props.showView === 'algorithm-details' ? '#1296db' : '#1296db'" p-id="2188"></path>
|
||||
:fill="props.showView === 'algorithm-details' ? '#1296db' : '#1296db'"
|
||||
p-id="2188"
|
||||
></path>
|
||||
</svg>
|
||||
<!-- <a-avatar shape="square" size="large" /> -->
|
||||
</a-badge>
|
||||
|
@ -59,12 +88,19 @@
|
|||
<template #title>
|
||||
<span>{{ user.realName }}</span>
|
||||
</template>
|
||||
<span class="name" @click="jumpPage({ name: '个人中心', key: 'personalCenter' })">
|
||||
<span
|
||||
class="name"
|
||||
@click="jumpPage({ name: '个人中心', key: 'personalCenter' })"
|
||||
>
|
||||
{{ user.realName }}
|
||||
</span>
|
||||
</a-tooltip>
|
||||
<span @click="logout" class="out">退出</span>
|
||||
<i @click="jumpPage({ name: '后台管理', key: 'houtaiguanli' })" class="iconTo" v-show="backFlag"></i>
|
||||
<i
|
||||
@click="jumpPage({ name: '后台管理', key: 'houtaiguanli' })"
|
||||
class="iconTo"
|
||||
v-show="backFlag"
|
||||
></i>
|
||||
<!-- <i class="img1" @click="jumpWaibu"></i> -->
|
||||
</div>
|
||||
<div class="info1">
|
||||
|
@ -73,49 +109,54 @@
|
|||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import { ref, onMounted, onBeforeUnmount, defineProps } from 'vue'
|
||||
import { getUserInfo } from '@/api/user'
|
||||
import { recordRoute } from '@/config'
|
||||
import { useRoute, useRouter } from 'vue-router'
|
||||
import { mynotice } from '@/api/home'
|
||||
import { useStore } from 'vuex'
|
||||
import { getSgcTotal } from '@/api/home'
|
||||
import Cookies from 'js-cookie'
|
||||
import mybus from '@/myplugins/mybus'
|
||||
import { DETAIL_PAGE_CONTENT_DEFAULT_TAB } from '@/global/GlobalConfig.js'
|
||||
import { message } from 'ant-design-vue'
|
||||
import { ref, onMounted, onBeforeUnmount, defineProps } from 'vue'
|
||||
import { getUserInfo, getRole } from '@/api/user'
|
||||
import { recordRoute } from '@/config'
|
||||
import { useRoute, useRouter } from 'vue-router'
|
||||
import { mynotice } from '@/api/home'
|
||||
import { useStore } from 'vuex'
|
||||
import { getSgcTotal } from '@/api/home'
|
||||
import Cookies from 'js-cookie'
|
||||
import mybus from '@/myplugins/mybus'
|
||||
import { DETAIL_PAGE_CONTENT_DEFAULT_TAB } from '@/global/GlobalConfig.js'
|
||||
import { message } from 'ant-design-vue'
|
||||
|
||||
const store = useStore()
|
||||
const router = useRouter()
|
||||
const route = useRoute()
|
||||
const itShowXiHaiAn = ref(whoShow.itShowXiHaiAn)
|
||||
const store = useStore()
|
||||
const router = useRouter()
|
||||
const route = useRoute()
|
||||
const itShowXiHaiAn = ref(whoShow.itShowXiHaiAn)
|
||||
|
||||
// 用户信息
|
||||
const user = ref({
|
||||
// 用户信息
|
||||
const user = ref({
|
||||
username: store.getters['user/username'],
|
||||
realName: store.getters['user/realName'],
|
||||
})
|
||||
const select = ref(router.currentRoute.value.name)
|
||||
const mynoticeFlag = ref(false)
|
||||
const mynoticeData = ref([])
|
||||
const navList = ref(navListManagement.navList)
|
||||
const backFlag = ref(true)
|
||||
getUserInfo().then((res) => {
|
||||
if (
|
||||
res.data.data.roleIdList.length == 0 &&
|
||||
res.data.data.superAdmin === 0
|
||||
) {
|
||||
backFlag.value = false
|
||||
})
|
||||
const select = ref(router.currentRoute.value.name)
|
||||
const mynoticeFlag = ref(false)
|
||||
const mynoticeData = ref([])
|
||||
const navList = ref(navListManagement.navList)
|
||||
const backFlag = ref(false)
|
||||
getUserInfo().then((res) => {
|
||||
if(res.data.data.superAdmin =='1'){
|
||||
backFlag.value = true
|
||||
} else {
|
||||
res.data.data.roleIdList.map((val) => {
|
||||
getRole(val).then((role) => {
|
||||
if (role.data.data.name === '后台管理员') {
|
||||
backFlag.value = true
|
||||
}
|
||||
})
|
||||
console.log('navList------------>', navList)
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
console.log('navList------------>', navList)
|
||||
|
||||
const props = defineProps({
|
||||
const props = defineProps({
|
||||
showView: { type: String, default: '' },
|
||||
})
|
||||
})
|
||||
|
||||
// 退出登录
|
||||
const logout = async () => {
|
||||
// 退出登录
|
||||
const logout = async () => {
|
||||
await store.dispatch('user/logout')
|
||||
window.sessionStorage.setItem('visits', JSON.stringify([]))
|
||||
// 西海岸不返回登录页
|
||||
|
@ -127,26 +168,24 @@ const logout = async () => {
|
|||
router.push('/login')
|
||||
}
|
||||
}
|
||||
}
|
||||
// 返回首页
|
||||
const goToHome = () => {
|
||||
}
|
||||
// 返回首页
|
||||
const goToHome = () => {
|
||||
// 西海岸
|
||||
if (itShowXiHaiAn.value) {
|
||||
if (
|
||||
!xhaHasPermissionUser.list.includes(user.value.username)
|
||||
) {
|
||||
if (!xhaHasPermissionUser.list.includes(user.value.username)) {
|
||||
return message.warn('暂无权限')
|
||||
}
|
||||
}
|
||||
router.push({
|
||||
path: '/home',
|
||||
})
|
||||
}
|
||||
const jumpWaibu=()=>{
|
||||
window.open('http://15.72.177.175:18460/analystrunner/tonglan', "_blank");
|
||||
}
|
||||
// 跳转页面
|
||||
const jumpPage = (item) => {
|
||||
}
|
||||
const jumpWaibu = () => {
|
||||
window.open('http://15.72.177.175:18460/analystrunner/tonglan', '_blank')
|
||||
}
|
||||
// 跳转页面
|
||||
const jumpPage = (item) => {
|
||||
// 西海岸
|
||||
if (itShowXiHaiAn.value) {
|
||||
let _arr = ['共享门户', '能力云图', '能力统计', '需求中心', '赋能案例']
|
||||
|
@ -232,50 +271,50 @@ const jumpPage = (item) => {
|
|||
router.push('/home')
|
||||
break
|
||||
}
|
||||
}
|
||||
const scrollTop = ref(0)
|
||||
window.onscroll = function () {
|
||||
}
|
||||
const scrollTop = ref(0)
|
||||
window.onscroll = function () {
|
||||
//为了保证兼容性,这里取两个值,哪个有值取哪一个
|
||||
//scrollTop就是触发滚轮事件时滚轮的高度
|
||||
scrollTop.value =
|
||||
document.documentElement.scrollTop || document.body.scrollTop
|
||||
// console.log('滚动距离' + scrollTop.value)
|
||||
}
|
||||
mybus.on('getSgcNum', () => {
|
||||
}
|
||||
mybus.on('getSgcNum', () => {
|
||||
getSgcTotal().then((res) => {
|
||||
sgcNum.value = res.data.data.count
|
||||
// console.log('申购车总数========================>', res.data.data.count)
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
const sgcNum = ref(0)
|
||||
const goToSgc = () => {
|
||||
const sgcNum = ref(0)
|
||||
const goToSgc = () => {
|
||||
window.sessionStorage.setItem('type', JSON.stringify('PurchaseVehicle'))
|
||||
router.push('/personalCenter')
|
||||
}
|
||||
const mynoticeNum = ref(0)
|
||||
// 我的消息
|
||||
const getMynotice = () => {
|
||||
}
|
||||
const mynoticeNum = ref(0)
|
||||
// 我的消息
|
||||
const getMynotice = () => {
|
||||
mynotice({ page: 1, limit: 3, readStatus: 0 }).then((res) => {
|
||||
// console.log('我的消息', res.data.data)
|
||||
mynoticeNum.value = res.data.data.total
|
||||
mynoticeData.value = res.data.data.list
|
||||
})
|
||||
}
|
||||
const goToView = () => {
|
||||
}
|
||||
const goToView = () => {
|
||||
router.push({
|
||||
path: '/mynoticeView',
|
||||
})
|
||||
}
|
||||
// const read = (item) => {
|
||||
// mynoticeRead(item.id).then((res) => {
|
||||
// console.log('已读', res)
|
||||
// getMynotice()
|
||||
// })
|
||||
// }
|
||||
// 建立链接 -- 携带cookie参数
|
||||
}
|
||||
// const read = (item) => {
|
||||
// mynoticeRead(item.id).then((res) => {
|
||||
// console.log('已读', res)
|
||||
// getMynotice()
|
||||
// })
|
||||
// }
|
||||
// 建立链接 -- 携带cookie参数
|
||||
|
||||
onMounted(() => {
|
||||
onMounted(() => {
|
||||
getSgcTotal().then((res) => {
|
||||
// console.log('初始化========================>', res.data.data.count)
|
||||
sgcNum.value = res.data.data.count
|
||||
|
@ -309,19 +348,19 @@ onMounted(() => {
|
|||
mybus.on('getMynotice', () => {
|
||||
getMynotice()
|
||||
})
|
||||
})
|
||||
onBeforeUnmount(() => {
|
||||
})
|
||||
onBeforeUnmount(() => {
|
||||
mybus.off('getSgcNum')
|
||||
mybus.off('getMynotice')
|
||||
})
|
||||
})
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
@font-face {
|
||||
@font-face {
|
||||
font-family: 'header-typeface';
|
||||
src: url('~@/assets/newHome/font/header-typeface.ttf');
|
||||
}
|
||||
}
|
||||
|
||||
.home-header {
|
||||
.home-header {
|
||||
height: 0.64rem;
|
||||
width: 100%;
|
||||
max-width: 1920px;
|
||||
|
@ -358,7 +397,8 @@ onBeforeUnmount(() => {
|
|||
.name-bg-xihaian {
|
||||
height: 0.6rem;
|
||||
width: 0.6rem;
|
||||
background: url('~@/assets/newHome/newHome-title-bg-xihaian.png') no-repeat;
|
||||
background: url('~@/assets/newHome/newHome-title-bg-xihaian.png')
|
||||
no-repeat;
|
||||
background-size: 100%;
|
||||
margin-right: 0.15rem;
|
||||
}
|
||||
|
@ -397,7 +437,7 @@ onBeforeUnmount(() => {
|
|||
.info1 {
|
||||
margin-left: 0.1rem;
|
||||
display: flex;
|
||||
.img1{
|
||||
.img1 {
|
||||
height: 0.3rem;
|
||||
width: 1.4rem;
|
||||
margin-left: 0.1rem;
|
||||
|
@ -456,9 +496,9 @@ onBeforeUnmount(() => {
|
|||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.white {
|
||||
.white {
|
||||
background-color: #fff;
|
||||
box-shadow: 0 0.02rem 0.1rem rgba(0, 0, 0, 0.1);
|
||||
|
||||
|
@ -491,13 +531,15 @@ onBeforeUnmount(() => {
|
|||
color: #000;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.blue {
|
||||
.blue {
|
||||
position: absolute;
|
||||
background: linear-gradient(to right,
|
||||
background: linear-gradient(
|
||||
to right,
|
||||
rgba(15, 90, 253, 0.8),
|
||||
rgba(36, 25, 248, 0.8));
|
||||
rgba(36, 25, 248, 0.8)
|
||||
);
|
||||
|
||||
.name {
|
||||
color: #fff;
|
||||
|
@ -517,9 +559,9 @@ onBeforeUnmount(() => {
|
|||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.mynotice {
|
||||
.mynotice {
|
||||
width: 4rem;
|
||||
height: 3rem;
|
||||
background: #eee;
|
||||
|
@ -536,19 +578,18 @@ onBeforeUnmount(() => {
|
|||
color: #000;
|
||||
font-size: 0.16rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.mynotice::-webkit-scrollbar {
|
||||
.mynotice::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.ant-list-item) {
|
||||
:deep(.ant-list-item) {
|
||||
border-bottom: 0.01rem solid #ccc;
|
||||
padding: 0.1rem;
|
||||
}
|
||||
|
||||
:deep(.ant-list-item-meta-title) {
|
||||
}
|
||||
|
||||
:deep(.ant-list-item-meta-title) {
|
||||
// display: flex;
|
||||
// justify-content: space-around;
|
||||
// align-items: center;
|
||||
|
@ -574,18 +615,18 @@ onBeforeUnmount(() => {
|
|||
font-size: 0.1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.iconTo {
|
||||
.iconTo {
|
||||
display: block;
|
||||
width: 0.35rem;
|
||||
height: 0.35rem;
|
||||
background: url('~@/assets/newHome/iconTo.png') no-repeat;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
html::-webkit-scrollbar {
|
||||
html::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -230,12 +230,7 @@
|
|||
</span>
|
||||
</template>
|
||||
</div>
|
||||
<div
|
||||
v-if="
|
||||
selectCardsname === '打包模式'
|
||||
"
|
||||
class="label-content1"
|
||||
>
|
||||
<div v-if="selectCardsname === '打包模式'" class="label-content1">
|
||||
发布时间:
|
||||
<template v-if="item.createDate">
|
||||
<span>
|
||||
|
@ -300,11 +295,13 @@
|
|||
>
|
||||
申请量:{{ item.applyCount || 0 }}次
|
||||
</div>
|
||||
<!-- 青岛不展示数据量 -->
|
||||
<div
|
||||
v-if="
|
||||
selectCardsname === '数据资源' &&
|
||||
selectCardsname !== '融合服务' &&
|
||||
selectCardsname !== '赋能场景'
|
||||
selectCardsname !== '赋能场景' &&
|
||||
whoShow1.itShowXiHaiAn
|
||||
"
|
||||
>
|
||||
数据量:{{ item.sjlCount || 0 }}
|
||||
|
|
|
@ -117,6 +117,7 @@
|
|||
import mybus from '@/myplugins/mybus'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { UpOutlined, DownOutlined } from '@ant-design/icons-vue'
|
||||
import { useStore } from 'vuex'
|
||||
export default defineComponent({
|
||||
setup() {
|
||||
const selectedKeys = ref([])
|
||||
|
@ -126,6 +127,12 @@
|
|||
children: 'children',
|
||||
title: 'name',
|
||||
}
|
||||
const store = useStore()
|
||||
// 用户信息
|
||||
const user = ref({
|
||||
deptName: store.getters['user/deptName'],
|
||||
deptId: store.getters['user/deptId'],
|
||||
})
|
||||
const showKey = ref(0)
|
||||
const treeData = ref([])
|
||||
const init = () => {
|
||||
|
@ -138,7 +145,7 @@
|
|||
if (select === '123') {
|
||||
select = ''
|
||||
}
|
||||
// debugger
|
||||
|
||||
console.log(
|
||||
'获取url中的select=====================>',
|
||||
router.currentRoute.value.query.select
|
||||
|
@ -177,8 +184,34 @@
|
|||
const sortArr = ['全部能力目录', '市级', '区级', '企业', '其他']
|
||||
treeData.value.sort((a, b) => {
|
||||
return sortArr.indexOf(a.key) - sortArr.indexOf(b.key)
|
||||
})
|
||||
let deptId=user.value.deptId
|
||||
treeData.value.forEach((child) => {
|
||||
let childern=child.children
|
||||
childern.forEach((childs) => {//第一层:市级
|
||||
if(childs.key==deptId ){
|
||||
childs.show=true
|
||||
child.show=true
|
||||
mybus.emit('paramsGetResources', [childs.key])
|
||||
selectId.value =childs.key
|
||||
}
|
||||
if(childs.children && childs.children.length>0){//第二层 区级
|
||||
let qu=childs.children
|
||||
qu.forEach((qu) => {
|
||||
if(qu.key==deptId ){
|
||||
qu.show=true
|
||||
childs.show=true
|
||||
child.show=true
|
||||
mybus.emit('paramsGetResources', [qu.key])
|
||||
selectId.value = qu.key
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
})
|
||||
console.log('左侧树结构数据======================>', treeData.value)
|
||||
|
||||
showKey.value++
|
||||
})
|
||||
}
|
||||
|
@ -188,6 +221,7 @@
|
|||
})
|
||||
// 生成children
|
||||
const generateChildren = (val, obj) => {
|
||||
|
||||
if (val.dataList.length > 0) {
|
||||
val.dataList.forEach((child) => {
|
||||
let children = {
|
||||
|
@ -197,12 +231,14 @@
|
|||
total: child.deptCount,
|
||||
key: child.deptId,
|
||||
}
|
||||
|
||||
obj.children.push(children)
|
||||
})
|
||||
}
|
||||
}
|
||||
// 区级特殊处理
|
||||
const generateChildren2 = (val, obj) => {
|
||||
|
||||
if (val.dataList.length > 0) {
|
||||
val.dataList.forEach((dis) => {
|
||||
let children = {
|
||||
|
@ -222,6 +258,7 @@
|
|||
select: false,
|
||||
key: child.deptId,
|
||||
}
|
||||
|
||||
children.children.push(children2)
|
||||
})
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -267,9 +267,12 @@
|
|||
})
|
||||
window.open(newpage.href, '_blank')
|
||||
} else if (data === '资源下架') {
|
||||
window.sessionStorage.setItem('type', JSON.stringify('PurchaseVehicle'))
|
||||
window.sessionStorage.setItem('type', JSON.stringify('apply'))
|
||||
const newpage = router.resolve({
|
||||
path: '/personalCenter',
|
||||
query: {
|
||||
tabTypeName: '能力上架'
|
||||
}
|
||||
})
|
||||
window.location.href = newpage.href
|
||||
}
|
||||
|
|
|
@ -8,40 +8,74 @@
|
|||
<div class="bottom">
|
||||
<div class="item">
|
||||
<div class="zj">组件服务</div>
|
||||
<div class="name" v-for="(item, index) in zjList.slice(0, 5)" :key="item.name"
|
||||
:class="index == 4 ? 'name-last' : ''" @click="selectOne1(item.name)">
|
||||
<div
|
||||
class="name"
|
||||
v-for="(item, index) in zjList.slice(0, 5)"
|
||||
:key="item.name"
|
||||
:class="index == 4 ? 'name-last' : ''"
|
||||
@click="selectOne1(item.name)"
|
||||
>
|
||||
{{ item.name + '-' + item.num + '项' }}
|
||||
</div>
|
||||
<div class="btn" @click="jumpPage('组件服务')">查看更多</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="yy">应用资源</div>
|
||||
<div class="name" v-for="(item, index) in yyList.slice(0, 5)" :key="item.name"
|
||||
:class="index == 4 ? 'name-last' : ''" @click="selectOne11(item.name)">
|
||||
<div
|
||||
class="name"
|
||||
v-for="(item, index) in yyList.slice(0, 5)"
|
||||
:key="item.name"
|
||||
:class="index == 4 ? 'name-last' : ''"
|
||||
@click="selectOne11(item.name)"
|
||||
>
|
||||
{{ item.name + '-' + item.num + '项' }}
|
||||
</div>
|
||||
<div class="btn" @click="jumpPage('应用资源')">查看更多</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="jc">基础设施</div>
|
||||
<div class="name" v-for="(item, index) in jcList.slice(0, 5)" :key="item.name"
|
||||
:class="index == 2 ? 'name-last' : ''" @click="selectOne2(item.name)">
|
||||
{{ item.name + '-' + item.num + '项' }}
|
||||
<div
|
||||
class="name"
|
||||
v-for="(item, index) in jcList.slice(0, 5)"
|
||||
:key="item.name"
|
||||
:class="index == 2 ? 'name-last' : ''"
|
||||
@click="selectOne2(item.name)"
|
||||
>
|
||||
{{
|
||||
item.name +
|
||||
'-' +
|
||||
item.num +
|
||||
(item.name == '会客厅'
|
||||
? '间'
|
||||
: item.name == '视频会议'
|
||||
? '个'
|
||||
: '项')
|
||||
}}
|
||||
</div>
|
||||
<div class="btn" @click="jumpPage('基础设施')">查看更多</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="sj">数据资源</div>
|
||||
<div class="name" v-for="(item, index) in sjList" :key="item.id" :class="index == 4 ? 'name-last' : ''"
|
||||
@click="selectOne3(item.name)">
|
||||
<div
|
||||
class="name"
|
||||
v-for="(item, index) in sjList"
|
||||
:key="item.id"
|
||||
:class="index == 4 ? 'name-last' : ''"
|
||||
@click="selectOne3(item.name)"
|
||||
>
|
||||
{{ index + 1 }}-{{ item.name }}
|
||||
</div>
|
||||
<div class="btn" @click="jumpPage('数据资源')">查看更多</div>
|
||||
</div>
|
||||
<div class="item">
|
||||
<div class="zs">知识库</div>
|
||||
<div class="name" v-for="(item, index) in zsList" :key="item.id" :class="index == 4 ? 'name-last' : ''"
|
||||
@click="openHref(item)">
|
||||
<div
|
||||
class="name"
|
||||
v-for="(item, index) in zsList"
|
||||
:key="item.id"
|
||||
:class="index == 4 ? 'name-last' : ''"
|
||||
@click="openHref(item)"
|
||||
>
|
||||
{{ index + 1 }}-{{ item.name }}
|
||||
</div>
|
||||
<div class="btn" @click="jumpPage('知识库')">查看更多</div>
|
||||
|
@ -51,29 +85,29 @@
|
|||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import {
|
||||
import {
|
||||
pageWithAttrs,
|
||||
getDataResource,
|
||||
selectInfrastructureList,
|
||||
selectCollectComponentList,
|
||||
selectCollectResourceList
|
||||
} from '@/api/home.js'
|
||||
import { ref, reactive } from 'vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { useStore } from 'vuex'
|
||||
import { updateVisits, browsingInsert, getSoldierList } from '@/api/home'
|
||||
import { message, Upload } from 'ant-design-vue'
|
||||
import mybus from '@/myplugins/mybus'
|
||||
const store = useStore()
|
||||
const router = useRouter()
|
||||
const zjList = ref([])
|
||||
const jcList = ref([])
|
||||
const sjList = ref([])
|
||||
const yyList = ref([])
|
||||
// 知识库模块数据
|
||||
const zsList = ref([])
|
||||
// const jcList = ref([])
|
||||
const paramsGetResources = {
|
||||
selectCollectResourceList,
|
||||
} from '@/api/home.js'
|
||||
import { ref, reactive } from 'vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { useStore } from 'vuex'
|
||||
import { updateVisits, browsingInsert, getSoldierList } from '@/api/home'
|
||||
import { message, Upload } from 'ant-design-vue'
|
||||
import mybus from '@/myplugins/mybus'
|
||||
const store = useStore()
|
||||
const router = useRouter()
|
||||
const zjList = ref([])
|
||||
const jcList = ref([])
|
||||
const sjList = ref([])
|
||||
const yyList = ref([])
|
||||
// 知识库模块数据
|
||||
const zsList = ref([])
|
||||
// const jcList = ref([])
|
||||
const paramsGetResources = {
|
||||
districtId: '',
|
||||
pageNum: 1,
|
||||
pageSize: 5,
|
||||
|
@ -82,19 +116,19 @@ const paramsGetResources = {
|
|||
infoList: [],
|
||||
orderField: 'total', // total 综合 visits 访问量 applyCount 申请量 score 评分 collectCount 收藏量
|
||||
orderType: 'DESC', // ASC 升序 DESC 降序
|
||||
}
|
||||
console.log('dataShowdev==========================>', whoShow)
|
||||
// eslint-disable-next-line no-undef
|
||||
const whoShow1 = ref(whoShow)
|
||||
const interfaceSuccess = ref(0)
|
||||
const object = reactive({
|
||||
}
|
||||
console.log('dataShowdev==========================>', whoShow)
|
||||
// eslint-disable-next-line no-undef
|
||||
const whoShow1 = ref(whoShow)
|
||||
const interfaceSuccess = ref(0)
|
||||
const object = reactive({
|
||||
yyNum: '',
|
||||
zjNum: '',
|
||||
jcNum: '',
|
||||
sjNum: '',
|
||||
zsNum: '',
|
||||
})
|
||||
const getAppResources = (type, obj) => {
|
||||
})
|
||||
const getAppResources = (type, obj) => {
|
||||
paramsGetResources.type = type
|
||||
if (type === '数据资源' && !whoShow1.value.itShowBaoTou) {
|
||||
getDataResource({
|
||||
|
@ -137,7 +171,7 @@ const getAppResources = (type, obj) => {
|
|||
if (type == '基础设施') {
|
||||
jcList.value = []
|
||||
selectInfrastructureList().then((res) => {
|
||||
console.log('基础设施------res------>', res);
|
||||
console.log('基础设施------res------>', res)
|
||||
for (const key in res.data.data) {
|
||||
if (whoShow1.value.itShowXiHaiAn) {
|
||||
if (key === '视频资源') {
|
||||
|
@ -146,8 +180,7 @@ const getAppResources = (type, obj) => {
|
|||
num: res.data.data[key],
|
||||
})
|
||||
}
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
jcList.value.push({
|
||||
name: key,
|
||||
num: res.data.data[key],
|
||||
|
@ -184,25 +217,23 @@ const getAppResources = (type, obj) => {
|
|||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
else if (type == '组件服务') {
|
||||
} else if (type == '组件服务') {
|
||||
zjList.value = []
|
||||
selectCollectComponentList().then((res) => {
|
||||
console.log('组件服务----res-------->', res);
|
||||
console.log('组件服务----res-------->', res)
|
||||
for (const key in res.data.data) {
|
||||
console.log('key------------>', key);
|
||||
console.log('key------------>', key)
|
||||
zjList.value.push({
|
||||
name: key,
|
||||
num: res.data.data[key],
|
||||
})
|
||||
}
|
||||
console.log('zjList------------>', zjList);
|
||||
console.log('zjList------------>', zjList)
|
||||
})
|
||||
}
|
||||
else if (type == '应用资源') {
|
||||
} else if (type == '应用资源') {
|
||||
yyList.value = []
|
||||
selectCollectResourceList().then((res) => {
|
||||
console.log('应用资源---res--------->', res);
|
||||
console.log('应用资源---res--------->', res)
|
||||
for (const key in res.data.data) {
|
||||
yyList.value.push({
|
||||
name: key,
|
||||
|
@ -210,8 +241,7 @@ const getAppResources = (type, obj) => {
|
|||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
pageWithAttrs(paramsGetResources).then((res) => {
|
||||
console.log('object个数======>', type)
|
||||
obj.value = res.data.data.records
|
||||
|
@ -232,10 +262,10 @@ const getAppResources = (type, obj) => {
|
|||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// todo 获取无人机、单兵设备
|
||||
const getSoldierData = (name) => {
|
||||
// todo 获取无人机、单兵设备
|
||||
const getSoldierData = (name) => {
|
||||
let _params = {
|
||||
type: name,
|
||||
page: 1,
|
||||
|
@ -254,9 +284,9 @@ const getSoldierData = (name) => {
|
|||
reject(err)
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
const openHref = (item) => {
|
||||
const openHref = (item) => {
|
||||
console.log(item.id, 'wowowo')
|
||||
console.log(item.visits, 'wowowo')
|
||||
browsingInsert({ resourceId: item.id }).then((res) => {
|
||||
|
@ -274,17 +304,17 @@ const openHref = (item) => {
|
|||
})
|
||||
}
|
||||
window.open(item.link)
|
||||
}
|
||||
const assignmentMethod = (type, res) => {
|
||||
}
|
||||
const assignmentMethod = (type, res) => {
|
||||
object[type] = res.data.data.total
|
||||
}
|
||||
getAppResources('组件服务', zjList)
|
||||
getAppResources('应用资源', yyList)
|
||||
getAppResources('基础设施', jcList)
|
||||
getAppResources('数据资源', sjList)
|
||||
getAppResources('知识库', zsList)
|
||||
}
|
||||
getAppResources('组件服务', zjList)
|
||||
getAppResources('应用资源', yyList)
|
||||
getAppResources('基础设施', jcList)
|
||||
getAppResources('数据资源', sjList)
|
||||
getAppResources('知识库', zsList)
|
||||
|
||||
function jumpPage(type) {
|
||||
function jumpPage(type) {
|
||||
// 点击内存入store
|
||||
store.commit('home/selectCardsData', {
|
||||
selectCardsnum: type,
|
||||
|
@ -300,8 +330,8 @@ function jumpPage(type) {
|
|||
select: type,
|
||||
},
|
||||
})
|
||||
}
|
||||
const selectOne = (id) => {
|
||||
}
|
||||
const selectOne = (id) => {
|
||||
console.log('点击===============》', id)
|
||||
router.push({
|
||||
path: '/details',
|
||||
|
@ -309,8 +339,8 @@ const selectOne = (id) => {
|
|||
id: id,
|
||||
},
|
||||
})
|
||||
}
|
||||
const selectOne1 = (name) => {
|
||||
}
|
||||
const selectOne1 = (name) => {
|
||||
router.push({
|
||||
path: '/DetailsPageconetent',
|
||||
query: {
|
||||
|
@ -318,8 +348,8 @@ const selectOne1 = (name) => {
|
|||
select: '组件服务',
|
||||
},
|
||||
})
|
||||
}
|
||||
const selectOne11 = (name) => {
|
||||
}
|
||||
const selectOne11 = (name) => {
|
||||
router.push({
|
||||
path: '/DetailsPageconetent',
|
||||
query: {
|
||||
|
@ -327,15 +357,15 @@ const selectOne11 = (name) => {
|
|||
select: '应用资源',
|
||||
},
|
||||
})
|
||||
}
|
||||
const selectOne2 = (name) => {
|
||||
let names=''
|
||||
if(name ==='云资源'){
|
||||
names='政务云资源'
|
||||
} else if(name ==='会客厅'){
|
||||
names='城市云脑会客厅'
|
||||
}else{
|
||||
names=name
|
||||
}
|
||||
const selectOne2 = (name) => {
|
||||
let names = ''
|
||||
if (name === '云资源') {
|
||||
names = '政务云资源'
|
||||
} else if (name === '会客厅') {
|
||||
names = '城市云脑会客厅'
|
||||
} else {
|
||||
names = name
|
||||
}
|
||||
router.push({
|
||||
path: '/DetailsPageconetent',
|
||||
|
@ -344,8 +374,8 @@ const selectOne2 = (name) => {
|
|||
select: '基础设施',
|
||||
},
|
||||
})
|
||||
}
|
||||
const selectOne3 = (name) => {
|
||||
}
|
||||
const selectOne3 = (name) => {
|
||||
console.log('点击===============》', name)
|
||||
router.push({
|
||||
path: '/DetailsPageconetent',
|
||||
|
@ -354,10 +384,10 @@ const selectOne3 = (name) => {
|
|||
select: '数据资源',
|
||||
},
|
||||
})
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
.capability-convergence {
|
||||
.capability-convergence {
|
||||
height: 7.2rem;
|
||||
background: url('~@/assets/newHome/Convergence-bg.png') no-repeat;
|
||||
background-size: 100%;
|
||||
|
@ -482,5 +512,5 @@ const selectOne3 = (name) => {
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<!--
|
||||
* @Author: hisense.liangjunhua
|
||||
* @Date: 2022-07-12 09:42:44
|
||||
* @LastEditors: hisense.liangjunhua
|
||||
* @LastEditTime: 2022-08-04 10:41:06
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-10-26 18:15:01
|
||||
* @Description:我的申请 能力申请 查看详情
|
||||
-->
|
||||
<template>
|
||||
|
@ -52,29 +52,47 @@
|
|||
<span class="img"></span>
|
||||
<span>{{ item.name }}</span>
|
||||
</div>
|
||||
<div style="
|
||||
<div
|
||||
style="
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
">
|
||||
"
|
||||
>
|
||||
<div class="oddNumbers">子单号:{{ item.instanceId }}</div>
|
||||
<div style="display: flex; align-items: center">
|
||||
<a-button type="primary" @click="modify(props.refObj.id, item)" v-if="item.backToFirst">
|
||||
<a-button
|
||||
type="primary"
|
||||
@click="modify(props.refObj.id, item)"
|
||||
v-if="item.backToFirst"
|
||||
>
|
||||
修改
|
||||
</a-button>
|
||||
<a-popconfirm class="aaa" v-if="!item.ended" title="是否撤回此流程?" ok-text="是" cancel-text="否"
|
||||
@confirm="endThis(item.instanceId)" @cancel="cancel">
|
||||
<a-popconfirm
|
||||
class="aaa"
|
||||
v-if="!item.ended"
|
||||
title="是否撤回此流程?"
|
||||
ok-text="是"
|
||||
cancel-text="否"
|
||||
@confirm="endThis(item.instanceId)"
|
||||
@cancel="cancel"
|
||||
>
|
||||
<a-button type="primary" danger style="margin-left: 10px">
|
||||
撤回申请
|
||||
</a-button>
|
||||
</a-popconfirm>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="box" v-if="item.list.length > 0">
|
||||
<div class="ability" v-for="val in item.list" :key="val.id"
|
||||
:class="item.approveStatus === '通过' ? 'clickCursor' : ''">
|
||||
<div class="left" :class="
|
||||
<div
|
||||
class="ability"
|
||||
v-for="val in item.list"
|
||||
:key="val.id"
|
||||
:class="item.approveStatus === '通过' ? 'clickCursor' : ''"
|
||||
>
|
||||
<div
|
||||
class="left"
|
||||
:class="
|
||||
val.type == '应用资源'
|
||||
? 'yyzy'
|
||||
: val.infoList.filter(
|
||||
|
@ -94,7 +112,8 @@
|
|||
)[0].attrValue == '业务组件'
|
||||
? 'ywzj'
|
||||
: 'yyzy'
|
||||
"></div>
|
||||
"
|
||||
></div>
|
||||
<div class="right">
|
||||
<div class="ability-top">
|
||||
<div class="name">
|
||||
|
@ -126,6 +145,13 @@
|
|||
</div>
|
||||
</div>
|
||||
<div></div>
|
||||
<a-button
|
||||
type="primary"
|
||||
v-if="item.approveStatus === '通过'"
|
||||
@click.stop="switchFunction(item)"
|
||||
>
|
||||
查看详情
|
||||
</a-button>
|
||||
<!-- <div class="btn" v-if="val.type == '组件服务'">技术文档</div> -->
|
||||
</div>
|
||||
<div class="ability-bottom">
|
||||
|
@ -134,17 +160,19 @@
|
|||
申请结果:{{
|
||||
item.ended ? item.approveStatus || '审核完成' : '审核中'
|
||||
}}
|
||||
<a-button v-if="
|
||||
<a-button
|
||||
v-if="
|
||||
item.approveStatus === '通过' &&
|
||||
val.infoList.filter(
|
||||
(item) => item.attrType == '上传附件'
|
||||
)[0]
|
||||
" @click.stop="downloadFile(item, '附件下载')" class="DownloadAttachment">
|
||||
"
|
||||
@click.stop="downloadFile(item, '附件下载')"
|
||||
class="DownloadAttachment"
|
||||
>
|
||||
附件下载
|
||||
</a-button>
|
||||
<a-button v-if="item.approveStatus === '通过'" @click.stop="switchFunction(item)">
|
||||
查看详情
|
||||
</a-button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -160,31 +188,49 @@
|
|||
<span class="type">基础设施</span>
|
||||
</div>
|
||||
<div>
|
||||
<a-button type="primary" v-if="item.approveStatus == '通过' && whoShow1.itShowXiHaiAn"
|
||||
@click.stop="openVideo(val)">
|
||||
<a-button
|
||||
type="primary"
|
||||
v-if="
|
||||
item.approveStatus == '通过' && whoShow1.itShowXiHaiAn
|
||||
"
|
||||
@click.stop="openVideo(val)"
|
||||
>
|
||||
视频预览
|
||||
</a-button>
|
||||
<div class="channelName" style="color:#ff7875" v-if="whoShow1.itShowXiHaiAn && item.ended">该流程已终止
|
||||
</div>
|
||||
<!-- <div class="channelName" style="color:#ff7875" v-if="whoShow1.itShowXiHaiAn && item.ended">该流程已终止
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="ability-bottom">
|
||||
<div class="dec2">位置:{{ val.nodeName }}</div>
|
||||
<div class="result" v-if="item.approveStatus == '通过'">
|
||||
申请结果:
|
||||
<span>列表地址:</span><span style="cursor: pointer;" @click="openView(backUrl +
|
||||
'resource/getApplyCameraList/' +
|
||||
item.instanceId)">{{
|
||||
<span>列表地址:</span>
|
||||
<span
|
||||
style="cursor: pointer"
|
||||
@click="
|
||||
openView(
|
||||
backUrl +
|
||||
'resource/getApplyCameraList/' +
|
||||
item.instanceId }}</span>
|
||||
item.instanceId
|
||||
)
|
||||
"
|
||||
>
|
||||
{{
|
||||
backUrl + 'resource/getApplyCameraList/' + item.instanceId
|
||||
}}
|
||||
</span>
|
||||
<span>视频流地址:</span>
|
||||
<span style="cursor: pointer" @click="openView(backUrl +
|
||||
'resource/hls/getHls/?key=' +
|
||||
val.channelId)">{{
|
||||
backUrl +
|
||||
'resource/hls/getHls/?key=' +
|
||||
val.channelId}}</span>
|
||||
<span
|
||||
style="cursor: pointer"
|
||||
@click="
|
||||
openView(
|
||||
backUrl + 'resource/hls/getHls/?key=' + val.channelId
|
||||
)
|
||||
"
|
||||
>
|
||||
{{ backUrl + 'resource/hls/getHls/?key=' + val.channelId }}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -192,44 +238,52 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 单个预览弹窗 -->
|
||||
<a-modal wrapClassName="single-preview-modal" v-model:visible="visible" title="视频预览" :width="960" destroyOnClose>
|
||||
<a-modal
|
||||
wrapClassName="single-preview-modal"
|
||||
v-model:visible="visible"
|
||||
title="视频预览"
|
||||
:width="960"
|
||||
destroyOnClose
|
||||
>
|
||||
<template #footer></template>
|
||||
<div style="width: 100%; display: flex; justify-content: center">
|
||||
<div style="width: 100%; height: 100%;position: relative">
|
||||
<div style="width: 100%; height: 100%; position: relative">
|
||||
<!-- 预览视频--遮罩 -->
|
||||
<div class="waterMark waterMark-left-top">{{userInfo.usernameShow}}</div>
|
||||
<div class="waterMark waterMark-right-top">{{userInfo.realNameShow}}</div>
|
||||
<div class="waterMark waterMark-left-bottom">{{userInfo.usernameShow}}</div>
|
||||
<div class="waterMark waterMark-right-bottom">{{userInfo.realNameShow}}</div>
|
||||
<div class="waterMark waterMark-left-top">
|
||||
{{ userInfo.usernameShow }}
|
||||
</div>
|
||||
<div class="waterMark waterMark-right-top">
|
||||
{{ userInfo.realNameShow }}
|
||||
</div>
|
||||
<div class="waterMark waterMark-left-bottom">
|
||||
{{ userInfo.usernameShow }}
|
||||
</div>
|
||||
<div class="waterMark waterMark-right-bottom">
|
||||
{{ userInfo.realNameShow }}
|
||||
</div>
|
||||
<vue3VideoPlay v-bind="options" />
|
||||
</div>
|
||||
</div>
|
||||
</a-modal>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import { ref, defineProps, reactive, onMounted } from 'vue'
|
||||
import mybus from '@/myplugins/mybus'
|
||||
import { message } from 'ant-design-vue'
|
||||
import { endProcess, getApplyForm } from '@/api/personalCenter.js'
|
||||
import { useRouter } from 'vue-router'
|
||||
import {
|
||||
getStreamByChannelCode,
|
||||
} from '@/api/videoSurveillance'
|
||||
import {
|
||||
getUser,
|
||||
} from '@/api/home'
|
||||
const router = useRouter()
|
||||
const backUrl = ref(window.SITE_CONFIG.apiURL + '/')
|
||||
const props = defineProps({
|
||||
import { ref, defineProps, reactive, onMounted } from 'vue'
|
||||
import mybus from '@/myplugins/mybus'
|
||||
import { message } from 'ant-design-vue'
|
||||
import { endProcess, getApplyForm } from '@/api/personalCenter.js'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { getStreamByChannelCode } from '@/api/videoSurveillance'
|
||||
import { getUser } from '@/api/home'
|
||||
const router = useRouter()
|
||||
const backUrl = ref(window.SITE_CONFIG.apiURL + '/')
|
||||
const props = defineProps({
|
||||
refObj: { type: Object, default: null },
|
||||
})
|
||||
const whoShow1 = ref(whoShow)
|
||||
let visible = ref(false)
|
||||
const options = reactive({
|
||||
})
|
||||
const whoShow1 = ref(whoShow)
|
||||
let visible = ref(false)
|
||||
const options = reactive({
|
||||
width: '912px', //播放器宽度
|
||||
height: '513px', //播放器高度
|
||||
color: '#409eff', //主题色
|
||||
|
@ -255,26 +309,25 @@ const options = reactive({
|
|||
'pageFullScreen',
|
||||
'fullScreen',
|
||||
], //显示所有按钮,
|
||||
})
|
||||
|
||||
const dept = reactive({})
|
||||
// eslint-disable-next-line no-undef
|
||||
if (infrastructure) {
|
||||
})
|
||||
const dept = reactive({})
|
||||
// eslint-disable-next-line no-undef
|
||||
if (infrastructure) {
|
||||
// eslint-disable-next-line no-undef
|
||||
dept.deptId = infrastructure.deptId
|
||||
// eslint-disable-next-line no-undef
|
||||
dept.deptName = infrastructure.deptName
|
||||
}
|
||||
const showThis = () => {
|
||||
}
|
||||
const showThis = () => {
|
||||
window.open(
|
||||
window.SITE_CONFIG.previewUrl +
|
||||
'hisense_office/onlinePreview?url=' +
|
||||
btoa(encodeURI(props.refObj.enclosure))
|
||||
)
|
||||
}
|
||||
const showArr = ref([])
|
||||
console.log(props.refObj, '=====================================')
|
||||
const endThis = (instanceId) => {
|
||||
}
|
||||
const showArr = ref([])
|
||||
console.log(props.refObj, '=====================================')
|
||||
const endThis = (instanceId) => {
|
||||
endProcess({ instanceId: instanceId }).then((res) => {
|
||||
if (res.data.code == 0) {
|
||||
message.success('撤回申请成功!')
|
||||
|
@ -283,8 +336,8 @@ const endThis = (instanceId) => {
|
|||
message.warning('撤回申请失败!')
|
||||
}
|
||||
})
|
||||
}
|
||||
const modify = (id, item) => {
|
||||
}
|
||||
const modify = (id, item) => {
|
||||
getApplyForm(id).then((res) => {
|
||||
console.log('修改==============>', res.data.data, item)
|
||||
if (item.list.length > 0) {
|
||||
|
@ -347,8 +400,8 @@ const modify = (id, item) => {
|
|||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
if (props.refObj.resourceApplication) {
|
||||
}
|
||||
if (props.refObj.resourceApplication) {
|
||||
showArr.value = []
|
||||
for (const key in props.refObj.resourceApplication) {
|
||||
if (props.refObj.resourceApplication[key].length > 0) {
|
||||
|
@ -372,8 +425,8 @@ if (props.refObj.resourceApplication) {
|
|||
showArr.value.push(obj)
|
||||
}
|
||||
}
|
||||
}
|
||||
const switchFunction = (data) => {
|
||||
}
|
||||
const switchFunction = (data) => {
|
||||
if (data.approveStatus === '通过') {
|
||||
let id = data.list[0].id
|
||||
const applypage = router.resolve({
|
||||
|
@ -384,8 +437,8 @@ const switchFunction = (data) => {
|
|||
})
|
||||
window.open(applypage.href, '_blank')
|
||||
}
|
||||
}
|
||||
const downloadFile = (data, name) => {
|
||||
}
|
||||
const downloadFile = (data, name) => {
|
||||
let path = data.list[0].infoList.filter(
|
||||
(item) => item.attrType === '上传附件'
|
||||
)[0].attrValue
|
||||
|
@ -414,10 +467,9 @@ const downloadFile = (data, name) => {
|
|||
URL.revokeObjectURL(url)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 视频预览
|
||||
const openVideo = (item) => {
|
||||
}
|
||||
// 视频预览
|
||||
const openVideo = (item) => {
|
||||
console.log('打开视频', item)
|
||||
if (item && item.status != 1) {
|
||||
return message.error('当前视频离线不可预览!')
|
||||
|
@ -425,81 +477,77 @@ const openVideo = (item) => {
|
|||
const param = {
|
||||
key: item.cameraId,
|
||||
}
|
||||
getStreamByChannelCode(param).then((res) => {
|
||||
console.log('视频预览------------>', res);
|
||||
getStreamByChannelCode(param)
|
||||
.then((res) => {
|
||||
console.log('视频预览------------>', res)
|
||||
console.log(res)
|
||||
visible.value = true
|
||||
options.src = res.data.data || ''
|
||||
}).catch(err => {
|
||||
})
|
||||
.catch((err) => {
|
||||
message.error(err)
|
||||
})
|
||||
// 视频测试--勿删
|
||||
// visible.value = true
|
||||
// options.src = 'http://playertest.longtailvideo.com/adaptive/bipbop/gear4/prog_index.m3u8'
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
}
|
||||
onMounted(() => {
|
||||
handleUser()
|
||||
})
|
||||
|
||||
// 获取用户信息
|
||||
const userInfo = ref(null)
|
||||
const handleUser = () => {
|
||||
getUser().then(res => {
|
||||
console.log('res-----获取用户信息------->', res);
|
||||
})
|
||||
// 获取用户信息
|
||||
const userInfo = ref(null)
|
||||
const handleUser = () => {
|
||||
getUser()
|
||||
.then((res) => {
|
||||
console.log('res-----获取用户信息------->', res)
|
||||
if (res.data.code != 0) {
|
||||
return message.warning(res.data.msg)
|
||||
}
|
||||
userInfo.value = res.data.data || {}
|
||||
userInfo.value.usernameShow = '西海岸能力超市' + (userInfo.value.deptName || '') + (userInfo.value.username || '');
|
||||
userInfo.value.realNameShow = '西海岸能力超市' + (userInfo.value.deptName || '') + (userInfo.value.realName || '');
|
||||
}).catch(err => {
|
||||
userInfo.value.usernameShow =
|
||||
'西海岸能力超市' +
|
||||
(userInfo.value.deptName || '') +
|
||||
(userInfo.value.username || '')
|
||||
userInfo.value.realNameShow =
|
||||
'西海岸能力超市' +
|
||||
(userInfo.value.deptName || '') +
|
||||
(userInfo.value.realName || '')
|
||||
})
|
||||
.catch((err) => {
|
||||
message.warning(err)
|
||||
})
|
||||
}
|
||||
|
||||
const openView = (url) => {
|
||||
}
|
||||
const openView = (url) => {
|
||||
window.open(url, '_blank')
|
||||
}
|
||||
|
||||
}
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.aaa{
|
||||
.aaa {
|
||||
margin-right: 30px;
|
||||
}
|
||||
}
|
||||
:deep(.ant-popover-inner) {
|
||||
position: fixed !important;
|
||||
|
||||
margin-right: 100px;
|
||||
|
||||
|
||||
|
||||
}
|
||||
.title {
|
||||
.title {
|
||||
font-size: 0.18rem;
|
||||
color: #000;
|
||||
font-weight: bold;
|
||||
margin-bottom: 0.2rem;
|
||||
padding-left: 0.1rem;
|
||||
border-left: 0.06rem #0058e1 solid;
|
||||
}
|
||||
|
||||
.top {
|
||||
}
|
||||
.top {
|
||||
margin-bottom: 0.1rem;
|
||||
|
||||
.main {
|
||||
background: #eee;
|
||||
padding: 0.2rem 0.2rem 0.1rem;
|
||||
|
||||
p {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
&>span {
|
||||
& > span {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.enclosure {
|
||||
width: 95%;
|
||||
padding: 0.05rem 0.1rem;
|
||||
|
@ -508,33 +556,28 @@ const openView = (url) => {
|
|||
justify-content: space-between;
|
||||
margin-top: 0.05rem;
|
||||
}
|
||||
|
||||
.btn:hover {
|
||||
color: #0058e1;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
.item {
|
||||
span {
|
||||
width: 2.5rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bottom {
|
||||
}
|
||||
.bottom {
|
||||
.main {
|
||||
.item {
|
||||
border-top: 1px #eee solid;
|
||||
|
||||
.deptName {
|
||||
color: #0058e1;
|
||||
font-size: 0.16rem;
|
||||
margin-top: 0.1rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.img {
|
||||
width: 0.05rem;
|
||||
height: 0.05rem;
|
||||
|
@ -543,20 +586,16 @@ const openView = (url) => {
|
|||
margin-right: 0.1rem;
|
||||
}
|
||||
}
|
||||
|
||||
.oddNumbers {
|
||||
margin: 0.1rem 0 0 0.15rem;
|
||||
}
|
||||
|
||||
.box {
|
||||
margin-left: 0.1rem;
|
||||
|
||||
.ability {
|
||||
height: 1.6rem;
|
||||
display: flex;
|
||||
border-bottom: 1px #eee solid;
|
||||
padding: 0.1rem 0;
|
||||
|
||||
.left {
|
||||
display: inline-block;
|
||||
width: 1.1rem;
|
||||
|
@ -565,37 +604,30 @@ const openView = (url) => {
|
|||
background: url('~@/assets/home/sxt_square.png') no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
.sxt {
|
||||
background: url('~@/assets/home/sxt_square.png') no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
.yyzy {
|
||||
background: url('~@/assets/home/yyzy_square.png') no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
.znsf {
|
||||
background: url('~@/assets/home/znsf_square.png') no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
.tcfw {
|
||||
background: url('~@/assets/home/tcfw_square.png') no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
.kfzj {
|
||||
background: url('~@/assets/home/kfzj_square.png') no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
.ywzj {
|
||||
background: url('~@/assets/home/ywzj_square.png') no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
.btn {
|
||||
cursor: pointer;
|
||||
color: #0087ff;
|
||||
|
@ -604,22 +636,18 @@ const openView = (url) => {
|
|||
border: 1px #0087ff solid;
|
||||
border-radius: 0.2rem;
|
||||
}
|
||||
|
||||
.right {
|
||||
flex: 1;
|
||||
margin-left: 0.15rem;
|
||||
|
||||
.ability-top {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
.name {
|
||||
width: 6rem;
|
||||
height: 0.2rem;
|
||||
display: flex;
|
||||
|
||||
.channelName {
|
||||
max-width: 5rem;
|
||||
height: 0.2rem;
|
||||
|
@ -630,7 +658,6 @@ const openView = (url) => {
|
|||
-webkit-box-orient: vertical;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.type {
|
||||
background: #0087ff;
|
||||
color: #fff;
|
||||
|
@ -641,10 +668,8 @@ const openView = (url) => {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.ability-bottom {
|
||||
margin-top: 0.15rem;
|
||||
|
||||
// display: flex;
|
||||
// justify-content: space-between;
|
||||
.dec {
|
||||
|
@ -657,7 +682,6 @@ const openView = (url) => {
|
|||
-webkit-box-orient: vertical;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.dec2 {
|
||||
width: 7rem;
|
||||
height: 0.22rem;
|
||||
|
@ -668,7 +692,6 @@ const openView = (url) => {
|
|||
-webkit-box-orient: vertical;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
// .result:hover {
|
||||
// color: #0058e1;
|
||||
// cursor: pointer;
|
||||
|
@ -678,75 +701,63 @@ const openView = (url) => {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.DownloadAttachment {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
top: -150px;
|
||||
}
|
||||
|
||||
.DownloadAttachment2 {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
top: -110px;
|
||||
}
|
||||
}
|
||||
|
||||
.clickCursor {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.single-preview-modal {
|
||||
}
|
||||
.single-preview-modal {
|
||||
.ant-modal-header {
|
||||
background: url(~@/assets/home/video-background.png) no-repeat;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.ant-modal-title {
|
||||
font-size: 0.16rem;
|
||||
font-weight: 500;
|
||||
color: #ffffff;
|
||||
}
|
||||
|
||||
.anticon {
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 左上
|
||||
.waterMark-left-top {
|
||||
}
|
||||
// 左上
|
||||
.waterMark-left-top {
|
||||
left: 50px;
|
||||
top: 100px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
// 右上
|
||||
.waterMark-right-top {
|
||||
}
|
||||
// 右上
|
||||
.waterMark-right-top {
|
||||
right: 50px;
|
||||
top: 100px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
// 左下
|
||||
.waterMark-left-bottom {
|
||||
}
|
||||
// 左下
|
||||
.waterMark-left-bottom {
|
||||
left: 50px;
|
||||
bottom: 100px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
// 右下
|
||||
.waterMark-right-bottom {
|
||||
}
|
||||
// 右下
|
||||
.waterMark-right-bottom {
|
||||
right: 50px;
|
||||
bottom: 100px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.waterMark {
|
||||
}
|
||||
.waterMark {
|
||||
position: absolute;
|
||||
z-index: 99999999;
|
||||
color: #0058e1;
|
||||
|
@ -755,6 +766,5 @@ const openView = (url) => {
|
|||
opacity: 0.4;
|
||||
transform: rotate(-25deg);
|
||||
width: 470px;
|
||||
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -208,6 +208,7 @@
|
|||
onBeforeUnmount,
|
||||
h,
|
||||
defineProps,
|
||||
nextTick,
|
||||
} from 'vue'
|
||||
import {
|
||||
getMyProcessInstancePage,
|
||||
|
@ -252,16 +253,19 @@
|
|||
typeList.value.push('设备申请')
|
||||
}
|
||||
const typeStrObj = {
|
||||
能力上架: 'resourcemountapply',
|
||||
能力下架: 'resourcundercarriageapply',
|
||||
能力需求: 'abilitydemandapply',
|
||||
需求评论: 'comment_review',
|
||||
'能力上架': 'resourcemountapply',
|
||||
'能力下架': 'resourcundercarriageapply',
|
||||
'能力需求': 'abilitydemandapply',
|
||||
'需求评论': 'comment_review',
|
||||
}
|
||||
let tabList = ref(['全部', '审核中', '审核完成'])
|
||||
const contentList = reactive({ data: [] })
|
||||
let tabIndex = ref(0)
|
||||
let typeIndex = ref(0)
|
||||
let typeName = ref(typeList.value[0])
|
||||
if(router.currentRoute.value.query.tabTypeName) {
|
||||
typeName.value = router.currentRoute.value.query.tabTypeName
|
||||
}
|
||||
const videoVisible = ref(false)
|
||||
const numFlag = ref(true)
|
||||
const columns = ref([
|
||||
|
@ -306,7 +310,7 @@
|
|||
ended.value = ''
|
||||
page.value = 1
|
||||
typeIndex.value = index
|
||||
typeName.value = item
|
||||
typeName.value = item;
|
||||
getApplyList()
|
||||
}
|
||||
|
||||
|
@ -565,7 +569,6 @@
|
|||
params.processDefinitionKey = processDefinitionKey.value
|
||||
getMyProcessInstancePage(params).then((res) => {
|
||||
contentList.data = []
|
||||
// initNum(name.value)
|
||||
console.log(res.data.data.list)
|
||||
contentList.data = res.data.data.list
|
||||
total.value = res.data.data.total
|
||||
|
|
|
@ -9,83 +9,38 @@
|
|||
<div class="form-container">
|
||||
<div v-if="applySuccess">
|
||||
<div class="title">申请人信息</div>
|
||||
<a-form
|
||||
ref="formRef"
|
||||
:model="formName"
|
||||
name="basic"
|
||||
:label-col="{ style: { width: '106px' } }"
|
||||
:wrapper-col="{ style: { width: '230px' } }"
|
||||
labelAlign="left"
|
||||
autocomplete="off"
|
||||
>
|
||||
<a-form ref="formRef" :model="formName" name="basic" :label-col="{ style: { width: '106px' } }"
|
||||
:wrapper-col="{ style: { width: '230px' } }" labelAlign="left" autocomplete="off">
|
||||
<div class="base-info">
|
||||
<a-form-item
|
||||
label="申请人"
|
||||
name="applyUserName"
|
||||
:rules="[{ required: true, message: '请输入申请人' }]"
|
||||
>
|
||||
<a-input
|
||||
placeholder="请输入申请人"
|
||||
v-model:value="formName.applyUserName"
|
||||
/>
|
||||
<a-form-item label="申请人" name="applyUserName" :rules="[{ required: true, message: '请输入申请人' }]">
|
||||
<a-input placeholder="请输入申请人" v-model:value="formName.applyUserName" />
|
||||
</a-form-item>
|
||||
|
||||
<a-form-item
|
||||
style="margin: 0 22px"
|
||||
label="申请人电话"
|
||||
name="applyUserPhone"
|
||||
:rules="[
|
||||
<a-form-item style="margin: 0 22px" label="申请人电话" name="applyUserPhone" :rules="[
|
||||
{
|
||||
required: true,
|
||||
pattern: /^1[3456789]\d{9}$/,
|
||||
message: '请输入正确的电话号码',
|
||||
},
|
||||
]"
|
||||
>
|
||||
<a-input
|
||||
placeholder="请输入申请人电话"
|
||||
v-model:value="formName.applyUserPhone"
|
||||
/>
|
||||
]">
|
||||
<a-input placeholder="请输入申请人电话" v-model:value="formName.applyUserPhone" />
|
||||
</a-form-item>
|
||||
|
||||
<a-form-item
|
||||
label="申请单位"
|
||||
name="applyUserDeptName"
|
||||
:rules="[{ required: true, message: '请输入申请单位' }]"
|
||||
>
|
||||
<a-input
|
||||
placeholder="请输入申请单位"
|
||||
v-model:value="formName.applyUserDeptName"
|
||||
/>
|
||||
<a-form-item label="申请单位" name="applyUserDeptName" :rules="[{ required: true, message: '请输入申请单位' }]">
|
||||
<a-input placeholder="请输入申请单位" v-model:value="formName.applyUserDeptName" />
|
||||
</a-form-item>
|
||||
</div>
|
||||
|
||||
<div class="title">需求信息</div>
|
||||
|
||||
<a-form-item
|
||||
style="margin-bottom: 10px"
|
||||
label="需求标题"
|
||||
name="demandSubject"
|
||||
:rules="[{ required: true, message: '请输入需求标题' }]"
|
||||
>
|
||||
<a-input
|
||||
style="width: 350px"
|
||||
v-model:value="formName.demandSubject"
|
||||
/>
|
||||
<a-form-item style="margin-bottom: 10px" label="需求标题" name="demandSubject"
|
||||
:rules="[{ required: true, message: '请输入需求标题' }]">
|
||||
<a-input style="width: 350px" v-model:value="formName.demandSubject" />
|
||||
</a-form-item>
|
||||
|
||||
<a-form-item
|
||||
style="margin-bottom: 10px"
|
||||
label="需求类型"
|
||||
name="detailsType"
|
||||
:rules="[{ required: true, message: '请选择需求类型' }]"
|
||||
>
|
||||
<a-select
|
||||
ref="select"
|
||||
v-model:value="formName.detailsType"
|
||||
@focus="focus"
|
||||
style="width: 200px"
|
||||
>
|
||||
<a-form-item style="margin-bottom: 10px" label="需求类型" name="detailsType"
|
||||
:rules="[{ required: true, message: '请选择需求类型' }]">
|
||||
<a-select ref="select" v-model:value="formName.detailsType" @focus="focus" style="width: 200px">
|
||||
<a-select-option value="基础设施">基础设施</a-select-option>
|
||||
<a-select-option value="数据资源">数据资源</a-select-option>
|
||||
<a-select-option value="组件服务">组件服务</a-select-option>
|
||||
|
@ -94,50 +49,24 @@
|
|||
</a-select>
|
||||
</a-form-item>
|
||||
|
||||
<a-form-item
|
||||
label="应用领域"
|
||||
name="detailsField"
|
||||
style="width: 6.93rem"
|
||||
:rules="[
|
||||
<a-form-item label="应用领域" v-if="formName.detailsType === '应用资源' ||
|
||||
formName.detailsType === '组件服务'" name="detailsField" style="width: 6.93rem" :rules="[
|
||||
{
|
||||
required:
|
||||
formName.detailsType === '应用资源' ||
|
||||
formName.detailsType === '组件服务'
|
||||
? true
|
||||
: false,
|
||||
required: true,
|
||||
message: '请选择应用领域',
|
||||
},
|
||||
]"
|
||||
>
|
||||
<a-select
|
||||
:disabled="
|
||||
formName.detailsType === '应用资源' ||
|
||||
formName.detailsType === '组件服务'
|
||||
? false
|
||||
: true
|
||||
"
|
||||
v-model:value="formName.detailsField"
|
||||
:options="applicationSceneOpthion"
|
||||
mode="tags"
|
||||
:size="size"
|
||||
placeholder="请选择应用领域"
|
||||
:filterOption="false"
|
||||
:searchValue="false"
|
||||
style="width: 5.87rem"
|
||||
></a-select>
|
||||
]">
|
||||
<a-select v-model:value="formName.detailsField" :options="applicationSceneOpthion" mode="tags"
|
||||
:size="size" placeholder="请选择应用领域" :filterOption="false" :searchValue="false" style="width: 5.87rem">
|
||||
</a-select>
|
||||
</a-form-item>
|
||||
<!-- <a-form-item label="应用领域" name="detailsField" style="width: 350px"
|
||||
:rules="[{ required: true, message: '请输入应用领域' }]">
|
||||
<a-input placeholder="请输入应用领域" v-model:value="formName.detailsField" />
|
||||
</a-form-item> -->
|
||||
<a-form-item
|
||||
style="margin-bottom: 10px"
|
||||
label="需求描述"
|
||||
name="demandDetails"
|
||||
:rules="[{ required: true, message: '请输入需求描述' }]"
|
||||
>
|
||||
<a-textarea
|
||||
style="
|
||||
<a-form-item style="margin-bottom: 10px" label="需求描述" name="demandDetails"
|
||||
:rules="[{ required: true, message: '请输入需求描述' }]">
|
||||
<a-textarea style="
|
||||
width: 500px;
|
||||
height: 150px;
|
||||
font-size: 16px;
|
||||
|
@ -147,25 +76,12 @@
|
|||
border-radius: 6px;
|
||||
padding: 10px;
|
||||
resize: none;
|
||||
"
|
||||
v-model:value="formName.demandDetails"
|
||||
/>
|
||||
" v-model:value="formName.demandDetails" />
|
||||
</a-form-item>
|
||||
<a-form-item
|
||||
style="color: #666; font-size: 16px"
|
||||
label="附件上传"
|
||||
name="applyDoc"
|
||||
>
|
||||
<a-upload
|
||||
v-model:file-list="fileList"
|
||||
name="file"
|
||||
:action="upLoadUrl"
|
||||
:headers="headers"
|
||||
@change="handleChange"
|
||||
:maxCount="1"
|
||||
>
|
||||
<a-button
|
||||
style="
|
||||
<a-form-item style="color: #666; font-size: 16px" label="附件上传" name="applyDoc">
|
||||
<a-upload v-model:file-list="fileList" name="file" :action="upLoadUrl" :headers="headers"
|
||||
@change="handleChange" :maxCount="1">
|
||||
<a-button style="
|
||||
width: 100px;
|
||||
height: 30px;
|
||||
margin-right: 10px;
|
||||
|
@ -176,8 +92,7 @@
|
|||
border: 1px solid #bbd3ef;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
"
|
||||
>
|
||||
">
|
||||
<upload-outlined></upload-outlined>
|
||||
文件上传
|
||||
</a-button>
|
||||
|
@ -188,8 +103,7 @@
|
|||
</a-form-item>
|
||||
|
||||
<a-form-item :wrapper-col="{ offset: 8, span: 16 }">
|
||||
<a-button
|
||||
style="
|
||||
<a-button style="
|
||||
width: 80px;
|
||||
height: 38px;
|
||||
margin-right: 20px;
|
||||
|
@ -200,15 +114,10 @@
|
|||
border: none;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
"
|
||||
type="primary"
|
||||
html-type="cancle"
|
||||
@click="signOut"
|
||||
>
|
||||
" type="primary" html-type="cancle" @click="signOut">
|
||||
退出申请
|
||||
</a-button>
|
||||
<a-button
|
||||
style="
|
||||
<a-button style="
|
||||
width: 80px;
|
||||
height: 38px;
|
||||
background: #0087ff;
|
||||
|
@ -218,11 +127,7 @@
|
|||
border: none;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
"
|
||||
type="primary"
|
||||
html-type="submit"
|
||||
@click="processStartHandle()"
|
||||
>
|
||||
" type="primary" html-type="submit" @click="processStartHandle()">
|
||||
提交申请
|
||||
</a-button>
|
||||
</a-form-item>
|
||||
|
@ -245,21 +150,21 @@
|
|||
</template>
|
||||
|
||||
<script>
|
||||
import HomeHeader from '@/views/home/components/header'
|
||||
import { reactive, ref } from 'vue'
|
||||
import { message } from 'ant-design-vue'
|
||||
// import { UploadOutlined } from '@ant-design/icons-vue'
|
||||
import { getUser, getUserInfo, relaunch } from '@/api/home'
|
||||
import {
|
||||
import HomeHeader from '@/views/home/components/header'
|
||||
import { reactive, ref } from 'vue'
|
||||
import { message } from 'ant-design-vue'
|
||||
// import { UploadOutlined } from '@ant-design/icons-vue'
|
||||
import { getUser, getUserInfo, relaunch } from '@/api/home'
|
||||
import {
|
||||
demandApply,
|
||||
getDemandForm,
|
||||
updateDemandForm,
|
||||
getCategoryTreePage,
|
||||
} from '@/api/personalCenter'
|
||||
// import { baseURL } from '@/config'
|
||||
import { useRouter } from 'vue-router'
|
||||
} from '@/api/personalCenter'
|
||||
// import { baseURL } from '@/config'
|
||||
import { useRouter } from 'vue-router'
|
||||
|
||||
export default {
|
||||
export default {
|
||||
name: '',
|
||||
props: {},
|
||||
components: {
|
||||
|
@ -345,19 +250,21 @@
|
|||
}
|
||||
|
||||
const fileList = ref([])
|
||||
const subimtFlag = ref(true)
|
||||
const processStartHandle = () => {
|
||||
let detailsField = '';
|
||||
if (formName.detailsField.length > 0) {
|
||||
let detailsField = ''
|
||||
formName.detailsField.map((item) => {
|
||||
detailsField += item + ';'
|
||||
})
|
||||
formName.detailsField = detailsField
|
||||
}
|
||||
// copy传参
|
||||
let _postData = JSON.parse(JSON.stringify(formName))
|
||||
_postData.detailsField = detailsField;
|
||||
|
||||
if (id.value) {
|
||||
updateDemandForm(formName).then((upres) => {
|
||||
updateDemandForm(_postData).then((upres) => {
|
||||
if (upres.data.code == 0) {
|
||||
relaunch({ data: formName, taskId: taskId.value }).then((res) => {
|
||||
relaunch({ data: _postData, taskId: taskId.value }).then((res) => {
|
||||
console.log('驳回================>', res)
|
||||
if (res.data.code == 0) {
|
||||
message.success('重新发起流程成功!')
|
||||
|
@ -373,22 +280,18 @@
|
|||
}
|
||||
})
|
||||
} else {
|
||||
if (subimtFlag.value) {
|
||||
subimtFlag.value = false
|
||||
formRef.value.validate().then(() => {
|
||||
const detString = String(formName.detailsField)
|
||||
formName.detailsField = detString
|
||||
console.log(detString, formName.detailsField, 'detString')
|
||||
demandApply(formName).then((res) => {
|
||||
formRef.value.validate().then((valid) => {
|
||||
const detString = String(_postData.detailsField)
|
||||
_postData.detailsField = detString
|
||||
console.log(detString, _postData.detailsField, 'detString')
|
||||
demandApply(_postData).then((res) => {
|
||||
applySuccess.value = false
|
||||
message.success('操作成功!')
|
||||
console.log('能力申请================>', res)
|
||||
subimtFlag.value = true
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
formRef,
|
||||
|
@ -407,11 +310,11 @@
|
|||
applicationSceneOpthion,
|
||||
}
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
#apply-container {
|
||||
#apply-container {
|
||||
background-color: #f5f8fc;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
|
@ -484,11 +387,11 @@
|
|||
font-weight: bold;
|
||||
color: #000;
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
body,
|
||||
html {
|
||||
body,
|
||||
html {
|
||||
height: unset;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -33,15 +33,16 @@ export default defineComponent({
|
|||
imgActive: require('@/assets/personalCenter/applyactive.png'),
|
||||
key: 'apply',
|
||||
}
|
||||
let menuList = [
|
||||
car,
|
||||
{
|
||||
const push = {
|
||||
title: '我的发布',
|
||||
img: require('@/assets/personalCenter/push.png'),
|
||||
imgActive: require('@/assets/personalCenter/pushactive.png'),
|
||||
key: 'push',
|
||||
},
|
||||
}
|
||||
let menuList = [
|
||||
car,
|
||||
apply,
|
||||
push,
|
||||
{
|
||||
title: '我的收藏',
|
||||
img: require('@/assets/personalCenter/collect.png'),
|
||||
|
@ -69,7 +70,7 @@ export default defineComponent({
|
|||
]
|
||||
// 西海岸
|
||||
if (itShowXiHaiAn) {
|
||||
menuList = [car, apply]
|
||||
menuList = [car, apply, push]
|
||||
}
|
||||
const selectedKeys = ref(['apply'])
|
||||
|
||||
|
|
|
@ -29,8 +29,8 @@ const productionGzipExtensions = [
|
|||
'ico',
|
||||
]
|
||||
// 是否开启gzip压缩
|
||||
const isPro = process.env.NODE_ENV === 'production'
|
||||
// const isPro = false
|
||||
// const isPro = process.env.NODE_ENV === 'production'
|
||||
const isPro = false
|
||||
if (donation) donationConsole()
|
||||
const { version, author } = require('./package.json')
|
||||
const Webpack = require('webpack')
|
||||
|
|
Loading…
Reference in New Issue