Compare commits
238 Commits
e97fc9afa9
...
502068705b
Author | SHA1 | Date |
---|---|---|
wuhongjian | 502068705b | |
unknown | ae046a6f82 | |
gongjiale | 3d69aa5922 | |
gongjiale | 259f82362a | |
gongjiale | 9df921cbe3 | |
wuhongjian | 7210d77314 | |
wuhongjian | 79cdaa1146 | |
gongjiale | d06bf23062 | |
gongjiale | aecfba1391 | |
unknown | 9243c94e8d | |
a0049873 | 1a530271c5 | |
a0049873 | 32d7f38e80 | |
a0049873 | c583569868 | |
gongjiale | b51e66f54e | |
a0049873 | 23eff2d365 | |
a0049873 | aeed2b27e3 | |
a0049873 | 678b60374e | |
unknown | 5ec0d81181 | |
gongjiale | eb563cd3dd | |
gongjiale | 23210070cd | |
wuhongjian | b79797b09a | |
unknown | 8ec209162c | |
unknown | d278b2194c | |
wuhongjian | 2c4752c97b | |
wuhongjian | 0c83991e6c | |
gongjiale | a900c4c332 | |
gongjiale | a6ab3b9194 | |
a0049873 | 2a05650b26 | |
a0049873 | cfe88605cc | |
a0049873 | 78aabf704b | |
wuhongjian | 5568f82e52 | |
wuhongjian | 7abf71a6fb | |
unknown | f4f5292540 | |
gongjiale | 6d45680b9a | |
unknown | 07a924cce4 | |
unknown | 10fe94fbfa | |
wuhongjian | 4d003421fe | |
wuhongjian | 7877cd2474 | |
unknown | 09cc87a095 | |
gongjiale | e58b788f09 | |
gongjiale | 48393700ed | |
unknown | feed3a454c | |
wuhongjian | 54aa64de64 | |
a0049873 | 75299e8648 | |
gongjiale | c2c5c30122 | |
gongjiale | 17d08d399f | |
wuhongjian | e5fdaa744a | |
gongjiale | dbfdfd6285 | |
gongjiale | 1fa11e3358 | |
unknown | bff7f51467 | |
unknown | a0e38bd312 | |
wuhongjian | ce50c9221e | |
gongjiale | b57d9c5b11 | |
gongjiale | 7f662ee870 | |
wuhongjian | 720b26a902 | |
wuhongjian | 8f1658f2eb | |
guoyue | 56696c6266 | |
guoyue | 85fa71f4b9 | |
guoyue | f2a6e2ffc9 | |
guoyue | adcb0cdbf0 | |
gongjiale | fe17edeb39 | |
gongjiale | e0ca9166e4 | |
guoyue | 5f8659f7f4 | |
gongjiale | 6d3d16bbdf | |
guoyue | f198ad5f5a | |
wuhongjian | 672981d051 | |
guoyue | ae252efcc0 | |
guoyue | 6f1550734d | |
guoyue | 61592ceaea | |
guoyue | edf1cb5af9 | |
guoyue | 140ff7f92c | |
a0049873 | 66df6d8c76 | |
wuhongjian | 70bb06cba6 | |
guoyue | 240784a3b2 | |
guoyue | 177cc4e9c7 | |
guoyue | 1382f22cb5 | |
guoyue | e4ad24ba8c | |
guoyue | ba597c1da4 | |
guoyue | b5ad10130f | |
a0049873 | 8f6ef3d8f9 | |
a0049873 | be971b7112 | |
guoyue | 05c93f9dd9 | |
guoyue | 37347b3de2 | |
a0049873 | 9c3a8495c0 | |
a0049873 | 6203566058 | |
guoyue | 8940dc4e24 | |
guoyue | 9f111d3336 | |
guoyue | c5ae492e70 | |
a0049873 | c95d9ac76e | |
unknown | 0ba3526904 | |
unknown | 4c4fe02f74 | |
gongjiale | a5a76110f0 | |
guoyue | 5db6afcb6c | |
guoyue | a04241c9a5 | |
guoyue | 4a104177bf | |
gongjiale | fe1ac7cfbc | |
gongjiale | c9da08b40d | |
gongjiale | c09299175a | |
gongjiale | 4094c3afc4 | |
guoyue | af1c03d3ed | |
guoyue | c4ae6d603a | |
gongjiale | 06d16202a2 | |
guoyue | e83ddfe47e | |
guoyue | d6c971ab23 | |
unknown | 4a78bfa72e | |
guoyue | b2c2958fdb | |
guoyue | 7d513edafc | |
guoyue | c71784567c | |
guoyue | f727efbdcd | |
guoyue | 7b4b410538 | |
guoyue | 667d53484e | |
guoyue | d13dbbb09a | |
guoyue | 14aa35bd11 | |
guoyue | 0103444cb8 | |
guoyue | aec249624a | |
guoyue | 608b6d10ff | |
guoyue | 1ae5dda1a7 | |
gongjiale | ca9244ed80 | |
gongjiale | 82cbe0aecb | |
gongjiale | e01788b7b0 | |
guoyue | 251c3d33d6 | |
guoyue | 58e045e862 | |
guoyue | c1c4eaf4d6 | |
guoyue | cdb0ed10ea | |
guoyue | ad34e10710 | |
guoyue | 1d5d4845c2 | |
guoyue | 12d3cc221c | |
guoyue | c23d0aeee7 | |
gongjiale | aa6022f599 | |
guoyue | ded5cfed22 | |
guoyue | d549a7f73d | |
guoyue | c183ee883d | |
851673013@qq.com | 1bff4a6f85 | |
851673013@qq.com | cce81f9ece | |
851673013@qq.com | a906b433f2 | |
851673013@qq.com | cba2a5c089 | |
851673013@qq.com | a3c6162592 | |
guoyue | 166e5e119e | |
于秀圆 | 3dcb9b8778 | |
于秀圆 | bcbafaf9f0 | |
guoyue | 057b926183 | |
guoyue | 39547f16e4 | |
guoyue | f0df682cc6 | |
guoyue | 98f0c360d4 | |
guoyue | bafe53bc67 | |
guoyue | 48bfe71c6f | |
851673013@qq.com | e477b3f90e | |
851673013@qq.com | 9e5bd33650 | |
851673013@qq.com | 7918e07b6c | |
guoyue | 3f4e27177c | |
guoyue | a7d7431c75 | |
guoyue | a7da8b013e | |
guoyue | f86d40feda | |
于秀圆 | a4259cf2d9 | |
guoyue | f79b43d261 | |
guoyue | 9c93864e38 | |
guoyue | 9023a44715 | |
guoyue | 787ceeef3f | |
a0049873 | 55da389003 | |
a0049873 | 1066a00154 | |
a0049873 | 7952f20beb | |
a0049873 | a02926006a | |
guoyue | fc8f43b94c | |
guoyue | 2df958d69e | |
guoyue | cf7d85060c | |
a0049873 | 18f911bd16 | |
guoyue | f071abfcf7 | |
guoyue | 0b401f5741 | |
a0049873 | ccbb53093f | |
a0049873 | 8782498104 | |
guoyue | 2f752de364 | |
guoyue | ae5978f408 | |
guoyue | 479c2791f3 | |
guoyue | 653559e727 | |
guoyue | cecba03c6e | |
guoyue | 5c6d90d912 | |
guoyue | 076d84bd0a | |
guoyue | eab0eb374a | |
guoyue | 4e3fa20984 | |
a0049873 | 432ba890f6 | |
unknown | 186184c14f | |
a0049873 | 67e009d110 | |
guoyue | 2688b764e5 | |
guoyue | 5e31517f1d | |
guoyue | 5e2b32f62a | |
guoyue | 4dc1525520 | |
guoyue | f26afc84c7 | |
guoyue | 1d61355bc6 | |
guoyue | 4a28789464 | |
guoyue | 10fdc587a2 | |
guoyue | fe3eb0aa68 | |
guoyue | 05d2ad1a45 | |
guoyue | 7594c9cb51 | |
guoyue | 85b515acf8 | |
guoyue | b1f17ca5bb | |
guoyue | 4296677fcd | |
guoyue | 2d32d735a5 | |
guoyue | 6f6ec109e4 | |
guoyue | c55eedc5b4 | |
guoyue | e906d9adc5 | |
guoyue | e077a04c08 | |
guoyue | a5df439fd0 | |
guoyue | cce7cb3be9 | |
guoyue | 495ed477f8 | |
guoyue | 8f56c1680d | |
guoyue | 14978ef490 | |
guoyue | 44525afeb8 | |
guoyue | f1de06b5ad | |
guoyue | cc330f2b60 | |
guoyue | f6b6c4713d | |
guoyue | b8eda12e43 | |
lizhicheng2 | 83eb319d28 | |
guoyue | bcef134cf9 | |
guoyue | 7ea1bc972b | |
guoyue | b17f4a3056 | |
guoyue | 560e6af900 | |
guoyue | e7a5a21430 | |
guoyue | 11f4c3fe25 | |
yuhan_jiang | 6827b2ebe5 | |
guoyue | b3b35d21b3 | |
guoyue | 21adcb62c8 | |
guoyue | 5387d6a7a3 | |
guoyue | 8b9e11b0a0 | |
guoyue | 8cb2f83fb5 | |
guoyue | 3e6f875728 | |
guoyue | 856cf3e41f | |
guoyue | 7f884528e9 | |
guoyue | 07fff52e43 | |
guoyue | c35398209b | |
guoyue | bff2aa9f97 | |
guoyue | 1455e2e0d7 | |
guoyue | 47871e8a02 | |
guoyue | c6d456055e | |
guoyue | 18578c1a58 | |
guoyue | b2abd5f16e | |
guoyue | 253b9f511a | |
lizhicheng2 | 576790ad9d | |
lizhicheng2 | f3973fe28d |
|
@ -2,7 +2,7 @@
|
|||
* @Author: hisense.wuhongjian
|
||||
* @Date: 2022-08-25 14:37:49
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-08-29 09:57:52
|
||||
* @LastEditTime: 2022-10-14 11:23:13
|
||||
* @Description: 告诉大家这是什么
|
||||
*/
|
||||
var _global = {}
|
||||
|
@ -11,8 +11,8 @@ var CONFIGITEM = {
|
|||
// version: 'xihaian', // 西海岸
|
||||
version: 'test', // 测试
|
||||
// version: 'frp', // 内网穿透
|
||||
// version: 'dev', // 开发
|
||||
vNum: 'v0.8.7.2',
|
||||
// version: 'xihaian', // 开发
|
||||
vNum: 'v0.8.13.5',
|
||||
configData: {
|
||||
// 青岛市大数据局
|
||||
qingdao: {
|
||||
|
@ -23,7 +23,10 @@ var CONFIGITEM = {
|
|||
// 西海岸大数据局
|
||||
xihaian: {
|
||||
previewUrl: 'http://10.134.135.9:9796/',
|
||||
apiURL: 'http://10.134.135.9:8888/renren-admin',
|
||||
// apiURL: 'http://10.134.135.9:8888/renren-admin',
|
||||
// apiURL: 'http://10.16.5.35:8888/renren-admin', // 李志成-研发
|
||||
apiURL: 'http://192.168.124.236:8888/renren-admin',
|
||||
// apiURL: 'http://192.168.124.254:8888/renren-admin', // 李志成-远雄
|
||||
websocketURL: 'ws://10.134.135.9:8888/renren-admin/websocket'
|
||||
},
|
||||
// 测试
|
||||
|
@ -40,7 +43,7 @@ var CONFIGITEM = {
|
|||
},
|
||||
dev: {
|
||||
previewUrl: 'http://localhost:8080/',
|
||||
apiURL: 'http://192.168.124.236:8888/renren-admin',
|
||||
apiURL: 'http://192.168.124.233:8888/renren-admin',
|
||||
websocketURL: 'ws://192.168.124.236:8888/renren-admin/websocket'
|
||||
}
|
||||
}
|
||||
|
|
|
@ -715,3 +715,14 @@ img {
|
|||
.aui-navbar__header {
|
||||
width: 268px;
|
||||
}
|
||||
|
||||
// 统一更改弹框高度、树形控件高度
|
||||
.el-dialog__body {
|
||||
max-height: 600px;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
.el-tree {
|
||||
max-height: 450px;
|
||||
overflow-y: auto;
|
||||
}
|
|
@ -1,12 +1,12 @@
|
|||
/*
|
||||
* @Author: hisense.liangjunhua
|
||||
* @Author: hisense.guoyue
|
||||
* @Date: 2022-08-23 10:30:11
|
||||
* @LastEditors: hisense.liangjunhua
|
||||
* @LastEditTime: 2022-09-01 16:06:05
|
||||
* @Description: 告诉大家这是什么
|
||||
* @LastEditors: hisense.guoyue
|
||||
* @LastEditTime: 2022-10-02 14:47:05
|
||||
* @Description: 判断当前环境是西海岸还是青岛市局
|
||||
*/
|
||||
const returnLocationStr = () => {
|
||||
return 'qingdao'
|
||||
return CONFIGITEM.version
|
||||
}
|
||||
|
||||
export default returnLocationStr
|
||||
|
|
|
@ -9,6 +9,7 @@
|
|||
<use :xlink:href="`#${menu.icon}`"></use>
|
||||
</svg>
|
||||
<span class="first-level-text">{{ menu.name }}</span>
|
||||
<span class="tabNum" v-if="menu.total && menu.total !==0">{{menu.total}}</span>
|
||||
</template>
|
||||
<sub-menu
|
||||
v-for="item in menu.children"
|
||||
|
@ -32,6 +33,7 @@
|
|||
<use :xlink:href="`#${menu.icon}`"></use>
|
||||
</svg>
|
||||
<span>{{ menu.name }}</span>
|
||||
<span class="tabNum" v-if="menu.total && menu.total !==0 ">{{menu.total}}</span>
|
||||
</a>
|
||||
</el-menu-item>
|
||||
</template>
|
||||
|
@ -110,6 +112,13 @@ export default {
|
|||
</script>
|
||||
|
||||
<style lang="scss">
|
||||
.tabNum{
|
||||
color: #ffffff;
|
||||
margin-left: 5px;
|
||||
background: red;
|
||||
padding:1px 4px;
|
||||
border-radius:5px;
|
||||
}
|
||||
.aui-sidebar__menu {
|
||||
.first-level-text {
|
||||
font-size: 16px;
|
||||
|
|
|
@ -18,29 +18,80 @@
|
|||
:collapseTransition="false"
|
||||
class="aui-sidebar__menu"
|
||||
>
|
||||
<div >
|
||||
<sub-menu
|
||||
v-for="menu in $store.state.sidebarMenuList"
|
||||
:key="menu.id"
|
||||
:menu="menu"
|
||||
/>
|
||||
>
|
||||
<span>sdddd</span>
|
||||
|
||||
</sub-menu>
|
||||
</div>
|
||||
</el-menu>
|
||||
</div>
|
||||
</aside>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import http from '@/utils/request'
|
||||
import SubMenu from "./main-sidebar-sub-menu";
|
||||
import returnLocationStr from '@/utils/location';
|
||||
export default {
|
||||
data() {
|
||||
return {};
|
||||
return {
|
||||
numObject:{}
|
||||
};
|
||||
},
|
||||
components: {
|
||||
SubMenu,
|
||||
},
|
||||
created() {
|
||||
this.$store.state.sidebarMenuList = window.SITE_CONFIG["menuList"];
|
||||
this.getNum()
|
||||
//this.$store.state.sidebarMenuList = window.SITE_CONFIG["menuList"];
|
||||
},
|
||||
};
|
||||
methods: {
|
||||
getNum(){
|
||||
http.get('/act/task/myToDoTaskNum').then(({ data: res }) => {
|
||||
this.numObject=res.data
|
||||
let menuList= window.SITE_CONFIG["menuList"];
|
||||
for(var i=0;i<menuList.length;i++){
|
||||
let menu=menuList[i];
|
||||
if(menu.id=='1541261628388888578'){//我的待办
|
||||
let daibanNum=0
|
||||
for(let j=0;j<menu.children.length;j++){
|
||||
let children=menu.children[j]
|
||||
if(children.id=="1541261780432408577"){//能力申请 v2
|
||||
//西海岸 v2 市局v3
|
||||
children.total= returnLocationStr() == 'qingdao' ? Number(this.numObject.abilityprocess_v3) : Number(this.numObject.abilityprocess_v2)
|
||||
daibanNum=Number(daibanNum)+Number(children.total)
|
||||
} if(children.id=="1559376285703081986"){//会议室审核
|
||||
children.total=Number(this.numObject.meetingroom_book)
|
||||
daibanNum=Number(daibanNum)+Number(children.total)
|
||||
}if(children.id=="1545292602084827138"){//能力资源上架
|
||||
children.total=Number(this.numObject.resourcemountapply)
|
||||
daibanNum=Number(daibanNum)+Number(children.total)
|
||||
}if(children.id=="1545312045695377410"){//能力需求申请
|
||||
children.total=Number(this.numObject.abilitydemandapply)
|
||||
daibanNum=Number(daibanNum)+Number(children.total)
|
||||
}if(children.id=="1545313018614521857"){//能力需求下架
|
||||
children.total=Number(this.numObject.resourcundercarriageapply)
|
||||
daibanNum=Number(daibanNum)+Number(children.total)
|
||||
}if(children.id=="1545313754106699777"){//评论审核
|
||||
children.total=Number(this.numObject.comment_review)
|
||||
daibanNum=Number(daibanNum)+Number(children.total)
|
||||
}if(children.id=="1554294862931562498"){//会议室 暂无
|
||||
children.total=0
|
||||
daibanNum=Number(daibanNum)+Number(children.total)
|
||||
}
|
||||
}
|
||||
menu.total=daibanNum
|
||||
}
|
||||
}
|
||||
this.$store.state.sidebarMenuList=menuList
|
||||
})
|
||||
}
|
||||
}};
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
.aui-sidebar {
|
||||
|
|
|
@ -55,10 +55,19 @@
|
|||
</div>
|
||||
<InfrastructureModal v-model="dataForm" :dataForm="dataForm" @update="updateDataForm" type="基础设施"
|
||||
:modalType="modalType" ref="jcssDom"></InfrastructureModal>
|
||||
<el-form-item label="基础设施总数" >
|
||||
<el-input v-model="dataForm.infrastructureCount" onkeyup="value=value.replace(/[^\d]/g,0)" placeholder="请输入基础设施总数"></el-input>
|
||||
</el-form-item>
|
||||
<combine-ability v-model="dataForm" :dataForm="dataForm" @update="updateDataForm" type="数据资源" ref="sjzyDom"
|
||||
:getDataParams="getListParams['数据资源']"></combine-ability>
|
||||
<el-form-item label="数据资源总数" >
|
||||
<el-input v-model="dataForm.dataSourceCount" onkeyup="value=value.replace(/[^\d]/g,0)" placeholder="请输入数据资源总数"></el-input>
|
||||
</el-form-item>
|
||||
<combine-ability v-model="dataForm" :dataForm="dataForm" @update="updateDataForm" type="组件服务" ref="zjfwDom"
|
||||
:getDataParams="getListParams['组件服务']"></combine-ability>
|
||||
<el-form-item label="组件服务总数" >
|
||||
<el-input v-model="dataForm.componentCount" placeholder="请输入组件服务总数"></el-input>
|
||||
</el-form-item>
|
||||
</div>
|
||||
</el-form>
|
||||
</div>
|
||||
|
@ -96,6 +105,9 @@ export default {
|
|||
return {
|
||||
fileUploadUrl: window.SITE_CONFIG.apiURL + '/upload',
|
||||
dataForm: {
|
||||
"infrastructureCount":null,
|
||||
"dataSourceCount":null,
|
||||
"componentCount":null,
|
||||
"name": "",
|
||||
"applicationArea": "",
|
||||
"description": "",
|
||||
|
|
|
@ -27,10 +27,14 @@
|
|||
<el-form-item label="名称" prop="name">
|
||||
<el-input v-model="dataForm.name" placeholder="请输入名称" style="width:90%"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="描述" prop="description">
|
||||
<el-input type="textarea" :rows="3" v-model="dataForm.description" placeholder="请输入描述" style="width:90%">
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
<el-form-item label="场景入口">
|
||||
<el-input v-model="dataForm.sceneUrl" placeholder="请输入场景入口" style="width:90%"></el-input>
|
||||
</el-form-item>
|
||||
|
||||
<el-form-item label="图片">
|
||||
<el-upload ref="editUpload" class="upload-demo" :action="fileUploadUrl"
|
||||
|
@ -63,10 +67,19 @@
|
|||
</div>
|
||||
<InfrastructureModal v-model="dataForm" :dataForm="dataForm" @update="updateDataForm" type="基础设施"
|
||||
:modalType="modalType" ref="jcssDom"></InfrastructureModal>
|
||||
<el-form-item label="基础设施总数" >
|
||||
<el-input v-model="dataForm.infrastructureCount" onkeyup="value=value.replace(/[^\d]/g,0)" placeholder="请输入基础设施总数"></el-input>
|
||||
</el-form-item>
|
||||
<combine-ability v-model="dataForm" :dataForm="dataForm" @update="updateDataForm" type="数据资源" ref="sjzyDom"
|
||||
:getDataParams="getListParams['数据资源']"></combine-ability>
|
||||
<el-form-item label="数据资源总数" >
|
||||
<el-input v-model="dataForm.dataSourceCount" onkeyup="value=value.replace(/[^\d]/g,0)" placeholder="请输入基础设施总数"></el-input>
|
||||
</el-form-item>
|
||||
<combine-ability v-model="dataForm" :dataForm="dataForm" @update="updateDataForm" type="组件服务" ref="zjfwDom"
|
||||
:getDataParams="getListParams['组件服务']"></combine-ability>
|
||||
<el-form-item label="组件服务总数" >
|
||||
<el-input v-model="dataForm.componentCount" onkeyup="value=value.replace(/[^\d]/g,0)" placeholder="请输入基础设施总数"></el-input>
|
||||
</el-form-item>
|
||||
</div>
|
||||
|
||||
<!-- 更多能力 -->
|
||||
|
@ -150,11 +163,24 @@ export const modalTypeText = {
|
|||
}
|
||||
|
||||
export const getFuseResourceList = (abilityListObj) => {
|
||||
console.log('abilityListObjabilityListObj',abilityListObj);
|
||||
const arr = []
|
||||
let length = 0
|
||||
for (const key in abilityListObj) {
|
||||
if (Object.hasOwnProperty.call(abilityListObj, key)) {
|
||||
const itemArray = abilityListObj[key]
|
||||
if(key=='数据资源'){
|
||||
itemArray.map((v, i) => {
|
||||
const index = (i + 1) + length
|
||||
arr.push({
|
||||
resourceId: v.id,
|
||||
type: key,
|
||||
sequence: index,
|
||||
resourceName:v.resourceName,
|
||||
deptName:v.deptName,
|
||||
})
|
||||
})
|
||||
}else{
|
||||
itemArray.map((v, i) => {
|
||||
const index = (i + 1) + length
|
||||
arr.push({
|
||||
|
@ -163,6 +189,8 @@ export const getFuseResourceList = (abilityListObj) => {
|
|||
sequence: index
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
length = itemArray.length
|
||||
}
|
||||
}
|
||||
|
@ -191,9 +219,13 @@ export default {
|
|||
painKeyTextObj: getDescJson('痛点'),
|
||||
solutionKeyTextObj: getDescJson('方案'),
|
||||
dataForm: {
|
||||
infrastructureCount:null,
|
||||
dataSourceCount:null,
|
||||
componentCount:null,
|
||||
name: '',
|
||||
applicationArea: '',
|
||||
description: '',
|
||||
sceneUrl: '',
|
||||
fuseAttrList: [
|
||||
{
|
||||
attrType: '使用步骤',
|
||||
|
@ -299,6 +331,7 @@ export default {
|
|||
},
|
||||
// 更新表单
|
||||
updateDataForm (data) {
|
||||
console.log('datadatadata',data);
|
||||
if (Object.keys(this.getListParams).includes(data.title)) {
|
||||
this.abilityListObj[data.title] = data.list
|
||||
} else {
|
||||
|
@ -340,10 +373,10 @@ export default {
|
|||
update: 'put'
|
||||
}
|
||||
this.dataForm.fuseResourceList = this.getFuseResourceList()
|
||||
if (this.imageUrl == '') {
|
||||
this.$message.error('请上传图片!')
|
||||
return
|
||||
}
|
||||
// if (this.imageUrl == '') {
|
||||
// this.$message.error('请上传图片!')
|
||||
// return
|
||||
// }
|
||||
this.dataForm.fuseAttrList.find(v => v.attrType == '服务图片').attrValue = this.imageUrl || ''
|
||||
const _obj = Object.assign({}, this.dataForm, {
|
||||
type: '赋能场景'
|
||||
|
@ -387,11 +420,15 @@ export default {
|
|||
|
||||
// 组合能力--特殊处理
|
||||
Object.keys(this.getListParams).map(k => {
|
||||
const arr = data.fuseResourceList.filter(v => v.type == k)
|
||||
const arr2 = []
|
||||
let arr = data.fuseResourceList.filter(v => v.type == k)
|
||||
let arr2 = [];
|
||||
if(k === "数据资源"){
|
||||
arr2 = JSON.parse(JSON.stringify(arr));
|
||||
}else{
|
||||
arr.map(v => {
|
||||
arr2.push(v.resourceId)
|
||||
})
|
||||
}
|
||||
this.abilityListObj[k] = arr2
|
||||
})
|
||||
})
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
style="width: 100%" :height="qp ? '810px' : '650px'">
|
||||
<el-table-column prop="name" label="名称" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="description" label="描述" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="sceneUrl" label="场景入口" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="240" right="0">
|
||||
<template slot-scope="scope">
|
||||
<el-button v-if="$hasPermission('ability:bsabilityai:update')" type="text" size="small"
|
||||
|
|
|
@ -16,17 +16,17 @@
|
|||
</el-transfer>
|
||||
</div>
|
||||
<div v-else-if="type==='数据资源'" class="dataTransfer">
|
||||
<el-transfer v-model="selectedArray" filter-placeholder="请输入名称"
|
||||
<el-transfer v-model="selectedArray" filterable :filter-method="filterMethod" filter-placeholder="请输入名称"
|
||||
:titles="nameArray" :props="{
|
||||
key: 'id',
|
||||
label: 'name',
|
||||
}" :data="transferData">
|
||||
</el-transfer>
|
||||
<el-input
|
||||
<!-- <el-input
|
||||
v-model="searchValue"
|
||||
placeholder="请输入名称"
|
||||
></el-input>
|
||||
<el-button @click="rest" class="restClick">重置</el-button>
|
||||
<el-button @click="rest" class="restClick">重置</el-button> -->
|
||||
</div>
|
||||
<el-pagination
|
||||
v-if="type==='数据资源'"
|
||||
|
@ -225,20 +225,29 @@ export default {
|
|||
async getDataInfo (dataForm) {
|
||||
await this.getData()
|
||||
const arr = []
|
||||
const attrValue = dataForm.fuseResourceList.filter(v => v.type == this.type)
|
||||
const attrValue = dataForm.fuseResourceList.filter(v => v.type == this.type);
|
||||
console.log('attrValue22',attrValue);
|
||||
if (attrValue.length > 0) {
|
||||
attrValue.map(val => {
|
||||
if(val.type==="数据资源"){
|
||||
const _obj = {
|
||||
type: val.type,
|
||||
id: val.resourceId,
|
||||
name: val.resource && val.resource.name
|
||||
name: val.resource && val.resource.resourceName,
|
||||
}
|
||||
arr.push(_obj)
|
||||
}else{
|
||||
const _obj = {
|
||||
type: val.type,
|
||||
id: val.resourceId,
|
||||
name: val.resource && val.resource.name,
|
||||
}
|
||||
arr.push(_obj)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 展示
|
||||
this.displayList = JSON.parse(JSON.stringify(arr))
|
||||
this.displayList = JSON.parse(JSON.stringify(arr));
|
||||
// 已选中
|
||||
this.selectedArray = arr.map(v => v.id)
|
||||
this.$nextTick(() => {
|
||||
|
@ -288,7 +297,9 @@ export default {
|
|||
this.transferData.push({
|
||||
type: this.type,
|
||||
id: v.guid,
|
||||
name: v.zyname || '--'
|
||||
name: v.zyname || '--',
|
||||
deptName:v.TGBM,
|
||||
resourceName:v.zyname
|
||||
})
|
||||
})
|
||||
this.allData = JSON.parse(JSON.stringify(this.transferData))
|
||||
|
@ -302,6 +313,26 @@ export default {
|
|||
return item.name && item.name.indexOf(query) > -1
|
||||
},
|
||||
confirmSubmitHandle () {
|
||||
console.log('tttttt',this.selectedArray)
|
||||
if(this.type === "数据资源"){
|
||||
//通过选中的数据去查找原始列表数据
|
||||
let selectedObjectList = [];
|
||||
this.selectedArray.forEach((item)=>{
|
||||
let filterData = [];
|
||||
filterData = this.allData.filter(v => v.id == item);
|
||||
//console.log('filterDatafilterData',filterData);
|
||||
selectedObjectList.push(filterData[0]);
|
||||
});
|
||||
this.$emit('update', {
|
||||
title: this.type,
|
||||
list: selectedObjectList
|
||||
})
|
||||
}else{
|
||||
this.$emit('update', {
|
||||
title: this.type,
|
||||
list: this.selectedArray
|
||||
})
|
||||
}
|
||||
if (this.selectedArray.length > this.maxNum) {
|
||||
return this.$message.error('最多选择十条数据!')
|
||||
}
|
||||
|
@ -312,12 +343,11 @@ export default {
|
|||
this.displayList.push(v)
|
||||
}
|
||||
})
|
||||
this.$emit('update', {
|
||||
title: this.type,
|
||||
list: this.selectedArray
|
||||
})
|
||||
console.log(this.selectedArray, this.displayList, 'this.displayList')
|
||||
},
|
||||
handleChange(){
|
||||
//console.log('222222',this.selectedArray);
|
||||
},
|
||||
getDisplay (displayList) {
|
||||
this.displayList = []
|
||||
this.displayList = displayList
|
||||
|
@ -463,7 +493,7 @@ export default {
|
|||
position: absolute;
|
||||
font-size: 14px;
|
||||
display: inline-block;
|
||||
width: 30%;
|
||||
width: 80%;
|
||||
top: 52px;
|
||||
left: 12px;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,426 @@
|
|||
<template>
|
||||
<el-dialog
|
||||
:destroy-on-close="true"
|
||||
:close-on-click-modal="false"
|
||||
@close="closeModal"
|
||||
title="申请详情"
|
||||
:visible.sync="detailsVisibleCopy"
|
||||
>
|
||||
<!--非后台-->
|
||||
|
||||
<div class="topss" v-if="detailType == '能力使用'">
|
||||
<div class="title">基本信息</div>
|
||||
<div class="main">
|
||||
<div>
|
||||
<p class="item">
|
||||
<span>申请标题:{{ detailParams.title }}</span>
|
||||
<span>申请单号:{{ detailParams.applyNumber || "--" }}</span>
|
||||
<span v-if="detailParams.applicationSystem">
|
||||
应用系统:{{ detailParams.applicationSystem }}
|
||||
</span>
|
||||
<span v-else></span>
|
||||
</p>
|
||||
<p class="item">
|
||||
<span>申请人信息:{{ detailParams.user }}</span>
|
||||
<span>电话:{{ detailParams.phone }}</span>
|
||||
<span>单位:{{ detailParams.unit }}</span>
|
||||
</p>
|
||||
<p v-if="detailParams.applicationScene.length > 0">
|
||||
<span
|
||||
>应用场景:{{ detailParams.applicationScene.join(";") }}</span
|
||||
>
|
||||
</p>
|
||||
<p>
|
||||
<span>应用背景:{{ detailParams.applicationBackground }}</span>
|
||||
</p>
|
||||
<p>
|
||||
<span>期望效果:{{ detailParams.effectWish }}</span>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 申请能力-->
|
||||
<div class="bottoms" v-if="detailType == '能力使用'">
|
||||
<div class="title">申请能力</div>
|
||||
<div class="main">
|
||||
<div
|
||||
class="item"
|
||||
v-for="(item, index) in this.showArr"
|
||||
:key="item + index"
|
||||
>
|
||||
<div class="deptName">
|
||||
<span class="img"></span>
|
||||
<span>{{ item.name }}</span>
|
||||
</div>
|
||||
<div
|
||||
style="
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
"
|
||||
></div>
|
||||
<div class="ability" v-for="val in item.list" :key="val.id">
|
||||
<div class="box" v-if="item.list.length > 0">
|
||||
<div class="right">
|
||||
<div class="ability-top">
|
||||
<div class="name">
|
||||
<div class="name">
|
||||
<span class="channelName">{{ val.name }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div></div>
|
||||
</div>
|
||||
<div class="ability-bottom">
|
||||
<div class="dec">资源描述:{{ val.description }}</div>
|
||||
<div class="result">
|
||||
申请结果:{{
|
||||
item.ended ? item.approveStatus || "审核完成" : "审核中"
|
||||
}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--审批详情-->
|
||||
<div>
|
||||
<div class="title">审批详情</div>
|
||||
<div v-for="item in this.dataSource.data" :key="item">
|
||||
<a-table :dataSource="item[1]" :columns="columns">
|
||||
<template #bodyCell="{ column, text }">
|
||||
<template v-if="column.dataIndex === 'name'">
|
||||
<a>{{ text }}</a>
|
||||
</template>
|
||||
</template>
|
||||
</a-table>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div else>
|
||||
gai
|
||||
</div> -->
|
||||
</el-dialog>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
props: {
|
||||
detailType: {
|
||||
type: String,
|
||||
default: "",
|
||||
},
|
||||
detailsVisible: {
|
||||
type: Boolean,
|
||||
default: false,
|
||||
},
|
||||
detailParamss: {
|
||||
type: Object,
|
||||
default: {},
|
||||
},
|
||||
},
|
||||
watch: {
|
||||
detailsVisible: {
|
||||
handler(newVal) {
|
||||
this.detailsVisibleCopy = newVal;
|
||||
},
|
||||
immediate: true,
|
||||
},
|
||||
detailParamss: {
|
||||
handler(newVal) {
|
||||
this.detailParams = newVal;
|
||||
this.getDetail(newVal);
|
||||
},
|
||||
immediate: true,
|
||||
},
|
||||
},
|
||||
data() {
|
||||
return {
|
||||
detailsVisibleCopy: false,
|
||||
columns: [
|
||||
{
|
||||
title: "任务名称",
|
||||
dataIndex: "activityName",
|
||||
key: "activityName",
|
||||
},
|
||||
{
|
||||
title: "处理人",
|
||||
dataIndex: "assigneeName",
|
||||
key: "assigneeName",
|
||||
},
|
||||
{
|
||||
title: "任务开始时间",
|
||||
dataIndex: "startTime",
|
||||
key: "startTime",
|
||||
},
|
||||
{
|
||||
title: "任务结束时间",
|
||||
dataIndex: "endTime",
|
||||
key: "endTime",
|
||||
},
|
||||
{
|
||||
title: "审核意见",
|
||||
dataIndex: "comment",
|
||||
key: "comment",
|
||||
},
|
||||
{
|
||||
title: "任务时长/秒",
|
||||
dataIndex: "durationInSeconds",
|
||||
key: "durationInSeconds",
|
||||
},
|
||||
],
|
||||
dataSource: [{ data: [] }],
|
||||
showArr: [],
|
||||
};
|
||||
},
|
||||
computed: {},
|
||||
components: {},
|
||||
methods: {
|
||||
getDetail(newVal) {
|
||||
|
||||
if (newVal.resourceApplication) {
|
||||
this.dataSource.data = [];
|
||||
if (this.detailType == "能力上架") {
|
||||
let arr = [];
|
||||
newVal.resourceApplication.forEach((item) => {
|
||||
arr.push(item);
|
||||
});
|
||||
this.dataSource.data.push([
|
||||
newVal.resourceApplication.processInstanceId,
|
||||
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,
|
||||
]);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.showArr.value = [];
|
||||
for (const key in newVal.resourceApplication) {
|
||||
if (newVal.resourceApplication[key].length > 0) {
|
||||
let 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;
|
||||
if (item.resources.length > 0) {
|
||||
item.resources.map((val) => {
|
||||
obj.list.push(val);
|
||||
});
|
||||
} else {
|
||||
item.camera.map((val) => {
|
||||
obj.list2.push(val);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
this.showArr.push(obj);
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
// init () {
|
||||
// this.visible = true
|
||||
// this.$nextTick(() => {
|
||||
// this.$refs['dataForm'].resetFields()
|
||||
// })
|
||||
// },
|
||||
closeModal() {
|
||||
this.$emit("closeModal");
|
||||
},
|
||||
},
|
||||
};
|
||||
</script>
|
||||
<style scoped>
|
||||
.title {
|
||||
font-size: 22px;
|
||||
color: #000;
|
||||
font-weight: bold;
|
||||
margin-bottom: 20px;
|
||||
padding-left: 10px;
|
||||
border-left: 6px #0058e1 solid;
|
||||
}
|
||||
|
||||
.topss {
|
||||
margin-bottom: 28px;
|
||||
|
||||
.main {
|
||||
background: #eee;
|
||||
padding: 28px 28px 28px;
|
||||
|
||||
p {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
& > span {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.enclosure {
|
||||
width: 95%;
|
||||
padding: 28px 28px 28px;
|
||||
background: #ddd;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 28px;
|
||||
}
|
||||
|
||||
.btn:hover {
|
||||
color: #0058e1;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
.item {
|
||||
font-size: 16px;
|
||||
|
||||
span {
|
||||
width: 50px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bottoms {
|
||||
.main {
|
||||
.item {
|
||||
border-top: 1px #eee solid;
|
||||
|
||||
.deptName {
|
||||
color: #0058e1;
|
||||
font-size: 16px;
|
||||
margin-top: 10px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.img {
|
||||
width: 5px;
|
||||
height: 5px;
|
||||
border-radius: 5px;
|
||||
background: #0058e1;
|
||||
margin-right: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
.oddNumbers {
|
||||
margin: 10px 0 0 15px;
|
||||
}
|
||||
|
||||
.box {
|
||||
margin-left: 10px;
|
||||
|
||||
.ability {
|
||||
height: 13px;
|
||||
display: flex;
|
||||
border-bottom: 1px #eee solid;
|
||||
padding: 0.1rem 0;
|
||||
|
||||
.btn {
|
||||
cursor: pointer;
|
||||
color: #0087ff;
|
||||
align-self: flex-end;
|
||||
padding: 5px 10px;
|
||||
border: 1px #0087ff solid;
|
||||
border-radius: 2px;
|
||||
}
|
||||
|
||||
.right {
|
||||
flex: 1;
|
||||
margin-left: 15px;
|
||||
|
||||
.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: 20px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 1;
|
||||
-webkit-box-orient: vertical;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.type {
|
||||
background: #0087ff;
|
||||
color: #fff;
|
||||
line-height: 14px;
|
||||
padding: 2px 10px;
|
||||
border-radius: 10px;
|
||||
margin-left: 10px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.ability-bottom {
|
||||
margin-top: 15pxrem;
|
||||
|
||||
.dec {
|
||||
width: 70px;
|
||||
height: 44px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 2;
|
||||
-webkit-box-orient: vertical;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.dec2 {
|
||||
width: 70px;
|
||||
height: 22px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
display: -webkit-box;
|
||||
-webkit-line-clamp: 1;
|
||||
-webkit-box-orient: vertical;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.result {
|
||||
position: relative;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.DownloadAttachment {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
top: -150px;
|
||||
}
|
||||
|
||||
.DownloadAttachment2 {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
top: -110px;
|
||||
}
|
||||
}
|
||||
|
||||
.clickCursor {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,171 @@
|
|||
<!--
|
||||
* @Author: hisense.guoyue
|
||||
* @LastEditors: hisense.guoyue
|
||||
* @LastEditTime: 2022-09-27 14:23:29
|
||||
* @Description: 设备审批
|
||||
-->
|
||||
<template>
|
||||
<el-card shadow="never" class="aui-card--fill" style="position:relative">
|
||||
<el-form :inline="true" :model="dataForm" @keyup.enter.native="getDataList()">
|
||||
<el-form-item>
|
||||
<el-input v-model="dataForm.deviceName" :placeholder="$t('process.name')" clearable></el-input>
|
||||
</el-form-item>
|
||||
<el-select v-model="dataForm.state" placeholder="请选择" style="margin-right: 10px">
|
||||
<el-option v-for="item in stateOptions" :key="item.value" :label="item.label" :value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
<el-form-item>
|
||||
<el-button type="primary" @click="getDataList()">{{
|
||||
$t('query')
|
||||
}}</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
|
||||
<div class="mod-activiti__process">
|
||||
<el-table v-loading="dataListLoading" :data="dataList" border style="width: 100%">
|
||||
<el-table-column prop="title" label="申请标题" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="name" label="申请人信息" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column label="设备名称" header-align="center" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span class="demand-text">{{
|
||||
(scope.row && scope.row.tbDeviceDTO && scope.row.tbDeviceDTO.name)
|
||||
}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="state" label="审批状态" header-align="center" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span>{{wrjStateObj[scope.row.state]}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column label="应用领域" header-align="center" align="center">
|
||||
<template slot-scope="scope" v-if="scope.row.applicationArea">
|
||||
<span class="area-text" v-for="(x,i) in JSON.parse(scope.row.applicationArea)"
|
||||
:key="i">{{x}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="需求依据" header-align="center" align="center" width="200">
|
||||
<template slot-scope="scope">
|
||||
<el-tooltip placement="top-start">
|
||||
<div class="tooltip-box" slot="content">{{(scope.row && scope.row.demand)}}</div>
|
||||
<span class="demand-text">{{
|
||||
(scope.row && scope.row.demand)
|
||||
}}</span>
|
||||
</el-tooltip>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text" size="small" @click="showDetail(scope.row)">详情</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>
|
||||
</div>
|
||||
|
||||
<el-dialog title="审批" :visible.sync="centerDialogVisible" width="30%" center>
|
||||
<el-form ref="form" :model="form" label-width="80px">
|
||||
<el-form-item label="审批意见">
|
||||
<el-input type="textarea" v-model="form.auditViem" placeholder="请输入审批意见"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="through(3)">不通过</el-button>
|
||||
<el-button type="primary" @click="through(2)">通过</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</el-card>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import bus from '@/views/bus.js'
|
||||
import mixinViewModule from '@/mixins/view-module'
|
||||
import processModule from '@/mixins/process-module'
|
||||
import { addDynamicRoute } from '@/router'
|
||||
|
||||
export default {
|
||||
mixins: [mixinViewModule, processModule],
|
||||
data() {
|
||||
return {
|
||||
mixinViewModuleOptions: {
|
||||
getDataListURL: '/deviceApply/myDonePage',
|
||||
getDataListIsPage: true,
|
||||
activatedIsNeed: true,
|
||||
deleteIsBatch: true,
|
||||
deleteIsBatchKey: 'deploymentId'
|
||||
},
|
||||
centerDialogVisible: false,
|
||||
form: {
|
||||
auditViem: ''
|
||||
},
|
||||
dataForm: {
|
||||
state: '',
|
||||
deviceName: null
|
||||
},
|
||||
wrjStateObj: {
|
||||
0: '待审批',
|
||||
1: '未申请',
|
||||
2: '通过',
|
||||
3: '未通过'
|
||||
},
|
||||
// 详情
|
||||
detailInfo: {},
|
||||
// 设备详情
|
||||
deviceDetailInfo: {}
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
stateOptions() {
|
||||
let arr = []
|
||||
Object.keys(this.wrjStateObj).map(v => {
|
||||
arr.push({
|
||||
label: this.wrjStateObj[v],
|
||||
value: v,
|
||||
})
|
||||
})
|
||||
return arr
|
||||
},
|
||||
},
|
||||
methods: {
|
||||
showDetail(row) {
|
||||
this.forwardDetail(row)
|
||||
},
|
||||
// 查看流程图
|
||||
forwardDetail(data) {
|
||||
console.log('data------------>', data);
|
||||
console.log('this.$route------------>', this.$route);
|
||||
var routeParams = {
|
||||
routeName: `${this.$route.name}__detail_${data.id}`,
|
||||
menuId: `${this.$route.meta.menuId}`,
|
||||
title: `${this.$route.meta.title} - 详情`,
|
||||
path: 'hasToDoTasks/deviceApprovalDetail',
|
||||
params: {
|
||||
params: data,
|
||||
id: data.id,
|
||||
}
|
||||
}
|
||||
console.log('routeParams------------>', routeParams);
|
||||
addDynamicRoute(routeParams, this.$router)
|
||||
},
|
||||
},
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
.demand-text {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.area-text {
|
||||
padding: 0 4px;
|
||||
}
|
||||
|
||||
.tooltip-box {
|
||||
width: 400px;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -0,0 +1,319 @@
|
|||
<!--
|
||||
* @Author: hisense.guoyue
|
||||
* @Date: 2022-06-29 15:59:51
|
||||
* @LastEditors: hisense.guoyue
|
||||
* @LastEditTime: 2022-09-27 18:08:00
|
||||
* @Description: 设备审批详情
|
||||
-->
|
||||
|
||||
<!-- 设备审批详情 -->
|
||||
<template>
|
||||
<el-card shadow="never" class="aui-card--fill">
|
||||
<!-- 申请人详情 -->
|
||||
<div>
|
||||
<h3>申请人信息</h3>
|
||||
<div class="big-BOX">
|
||||
<p>
|
||||
<span class="text">申请人:<span> {{ detailInfo.name || '--' }}</span></span>
|
||||
<span class="text">电话:<span>{{ detailInfo.phone || '--' }}</span></span>
|
||||
<span class="text">部门:<span>{{ detailInfo.dept || '--' }}</span></span>
|
||||
</p>
|
||||
<p>
|
||||
<span class="text">
|
||||
能力申请标题:<span>
|
||||
{{ detailInfo.title || '--' }}</span></span>
|
||||
<span class="text" v-if="detailInfo.applicationSystem">应用系统:<span>{{
|
||||
detailInfo.applicationSystem || '--'
|
||||
}}</span></span>
|
||||
<span class="text"></span>
|
||||
</p>
|
||||
<p>
|
||||
<span v-if="detailInfo.applicationArea">
|
||||
应用领域:
|
||||
<span class="area-item" v-for="(area, i) in JSON.parse(detailInfo.applicationArea)" :key="i">{{ area || '--'
|
||||
}}</span>
|
||||
</span>
|
||||
</p>
|
||||
<p>
|
||||
<span>
|
||||
需求依据:<span>
|
||||
{{ detailInfo.demand || '--' }}</span></span>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 申请能力 -->
|
||||
<div class="AbilityApply">
|
||||
<h3>申请能力</h3>
|
||||
</div>
|
||||
<el-card shadow="never" class="aui-card--fill">
|
||||
<h4>{{ $t('process.circulation') }}</h4>
|
||||
<el-table :data="dataList" border style="width: 100%;">
|
||||
<!-- 任务名称 -->
|
||||
<el-table-column prop="activityName" :label="$t('process.taskName')" header-align="center" align="center">
|
||||
</el-table-column>
|
||||
<!-- 处理人 -->
|
||||
<el-table-column prop="assigneeName" :label="$t('process.assignee')" header-align="center" align="center">
|
||||
</el-table-column>
|
||||
<!-- 流程开始时间 -->
|
||||
<el-table-column prop="startTime" :label="$t('task.startTime')" header-align="center" align="center">
|
||||
</el-table-column>
|
||||
<!-- 流程结束时间 -->
|
||||
<el-table-column prop="endTime" :label="$t('task.endTime')" header-align="center" align="center">
|
||||
</el-table-column>
|
||||
<!-- 审核意见 -->
|
||||
<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>
|
||||
</el-card>
|
||||
|
||||
</el-card>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import * as moment from 'moment';
|
||||
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
// 详情信息
|
||||
detailInfo: {},
|
||||
dataList: [],
|
||||
}
|
||||
},
|
||||
created() {
|
||||
this.detailInfo = this.$route.params.params || {};
|
||||
console.log('this.detailInfo------------>', this.detailInfo);
|
||||
// 表格数据
|
||||
let durationInSeconds = ''
|
||||
if (this.detailInfo.auditTime && this.detailInfo.auditTime) {
|
||||
durationInSeconds = moment(this.detailInfo.auditTime).diff(moment(this.detailInfo.createDate), 'seconds')
|
||||
}
|
||||
let _obj = {
|
||||
activityName: this.detailInfo.title || '',
|
||||
assigneeName: this.detailInfo.auditorName || '',
|
||||
startTime: this.detailInfo.createDate || '',
|
||||
endTime: this.detailInfo.auditTime,
|
||||
comment: this.detailInfo.auditViem,
|
||||
durationInSeconds: durationInSeconds,
|
||||
}
|
||||
this.dataList.push(_obj)
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
::v-deep .big-BOX {
|
||||
background: rgba(244, 245, 248, 0.8);
|
||||
padding: 24px;
|
||||
|
||||
h3 {
|
||||
font-size: 16px;
|
||||
color: #212121;
|
||||
}
|
||||
|
||||
p {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
color: #212121;
|
||||
font-size: 14px;
|
||||
|
||||
span {
|
||||
display: inline-block;
|
||||
margin-left: 8px;
|
||||
line-height: 32px;
|
||||
|
||||
span {
|
||||
font-weight: bold;
|
||||
}
|
||||
}
|
||||
|
||||
.text {
|
||||
width: 500px;
|
||||
}
|
||||
}
|
||||
|
||||
.lastP {
|
||||
margin-top: 16px;
|
||||
width: 100%;
|
||||
|
||||
span {
|
||||
display: flex;
|
||||
|
||||
span {
|
||||
padding: 0 12px;
|
||||
height: 32px;
|
||||
background: rgba(232, 234, 239, 1);
|
||||
border-radius: 2px;
|
||||
|
||||
button {
|
||||
background: unset;
|
||||
border: 0;
|
||||
color: #0558e1;
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .AbilityApply {
|
||||
margin-top: 32px;
|
||||
|
||||
h3 {
|
||||
font-size: 16px;
|
||||
color: #212121;
|
||||
border-bottom: 1px solid #dddee1;
|
||||
padding-bottom: 10px;
|
||||
}
|
||||
|
||||
ul {
|
||||
padding-left: 0px;
|
||||
|
||||
li {
|
||||
list-style: none;
|
||||
padding: 30px 0;
|
||||
border-bottom: 1px solid #dddee1;
|
||||
display: flex;
|
||||
|
||||
img {
|
||||
width: 100px;
|
||||
height: 100px;
|
||||
}
|
||||
|
||||
div {
|
||||
margin-left: 16px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
|
||||
h2 {
|
||||
margin-bottom: 20px;
|
||||
font-size: 20px;
|
||||
color: #000;
|
||||
display: flex;
|
||||
|
||||
span {
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
color: #ffffff;
|
||||
margin-left: 8px;
|
||||
background: rgba(0, 184, 230, 0.8);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
padding: 0 5px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
}
|
||||
|
||||
p {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.clearfix:after {
|
||||
display: block;
|
||||
content: "";
|
||||
clear: both;
|
||||
}
|
||||
|
||||
.title {
|
||||
color: #0558e1;
|
||||
font-size: 18px;
|
||||
padding-bottom: 0;
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
.title:before {
|
||||
content: "";
|
||||
width: 6px;
|
||||
height: 6px;
|
||||
display: inline-block;
|
||||
border-radius: 50%;
|
||||
background: #0558e1;
|
||||
vertical-align: middle;
|
||||
margin-right: 10px;
|
||||
margin-top: 6px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .agreeOr>div {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.el-input {
|
||||
margin-right: 10px;
|
||||
margin-left: 32px;
|
||||
}
|
||||
}
|
||||
|
||||
::v-deep .agreeOr>div:last-of-type {
|
||||
margin-top: 15px;
|
||||
}
|
||||
|
||||
.blueAll {
|
||||
::v-deep .el-radio-button__inner {
|
||||
width: 80px;
|
||||
height: 32px;
|
||||
line-height: 32px;
|
||||
padding: 0;
|
||||
border-radius: 2px;
|
||||
background: #ffffff;
|
||||
color: #0558e1;
|
||||
border: 1px solid #0558e1;
|
||||
}
|
||||
|
||||
::v-deep .el-radio-button__orig-radio:checked+.el-radio-button__inner {
|
||||
box-shadow: unset !important;
|
||||
background: #0558e1;
|
||||
color: #ffffff;
|
||||
}
|
||||
}
|
||||
|
||||
.inputBule {
|
||||
width: 55px;
|
||||
height: 32px;
|
||||
line-height: 32px;
|
||||
padding: 0;
|
||||
border-radius: 2px;
|
||||
background: #0558e1;
|
||||
color: #ffffff;
|
||||
border: 1px solid #0558e1;
|
||||
}
|
||||
|
||||
.redAll {
|
||||
margin-left: 10px;
|
||||
|
||||
::v-deep .el-radio-button__inner {
|
||||
width: 80px;
|
||||
height: 32px;
|
||||
line-height: 32px;
|
||||
padding: 0;
|
||||
border-radius: 2px;
|
||||
border: 1px solid #e83a48;
|
||||
background: #ffffff;
|
||||
color: #e83a48;
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
::v-deep .el-radio-button__orig-radio:checked+.el-radio-button__inner {
|
||||
box-shadow: unset !important;
|
||||
color: #ffffff;
|
||||
background: #e83a48;
|
||||
}
|
||||
}
|
||||
|
||||
.blueInput {
|
||||
width: 55px;
|
||||
}
|
||||
|
||||
.area-item {
|
||||
padding-right: 10px;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -231,7 +231,7 @@ export default {
|
|||
area: 0,
|
||||
capacity: '',
|
||||
pic: '',
|
||||
id: '',
|
||||
id: ''
|
||||
},
|
||||
limit: 10,
|
||||
page: 1,
|
||||
|
@ -242,11 +242,11 @@ export default {
|
|||
rules: {
|
||||
name: [
|
||||
{ required: true, message: '请输入会议室名称', trigger: 'blur' },
|
||||
{ min: 1, trigger: 'blur' },
|
||||
{ min: 1, trigger: 'blur' }
|
||||
],
|
||||
area: [
|
||||
{ required: true, message: '请输入会议室面积', trigger: 'blur' },
|
||||
{ min: 1, type: 'number', trigger: 'blur' },
|
||||
{ required: true, message: '请输入会议室面积', trigger: 'blur' }
|
||||
// { min: 1, message: '请输入数字', type: 'number', trigger: 'blur' }
|
||||
],
|
||||
description: [
|
||||
{ required: true, message: '请填写描述内容', trigger: 'blur' },
|
||||
|
@ -254,14 +254,14 @@ export default {
|
|||
min: 1,
|
||||
max: 500,
|
||||
message: '长度在 1 到 500 个字符',
|
||||
trigger: 'blur',
|
||||
},
|
||||
],
|
||||
trigger: 'blur'
|
||||
}
|
||||
]
|
||||
},
|
||||
formLabelWidth: '120px',
|
||||
checkImgSuccess: true,
|
||||
dialogVisible: false,
|
||||
flge: '',
|
||||
flge: ''
|
||||
}
|
||||
},
|
||||
mounted () {
|
||||
|
@ -337,9 +337,9 @@ export default {
|
|||
})
|
||||
} else if (i === 'edit') {
|
||||
this.dialogFormVisible = false
|
||||
this.$http.put(`/meeting`, this.ruleForm).then(({ data: res }) => {
|
||||
this.$http.put('/meeting', this.ruleForm).then(({ data: res }) => {
|
||||
this.ruleForm = res.data
|
||||
let imgUrl = { name: res.data.name, url: res.data.pic }
|
||||
const imgUrl = { name: res.data.name, url: res.data.pic }
|
||||
this.fileList.push(imgUrl)
|
||||
})
|
||||
}
|
||||
|
@ -373,7 +373,7 @@ export default {
|
|||
this.flge = 'edit'
|
||||
this.ruleForm = row
|
||||
if (row.pic != null) {
|
||||
let imgUrl = { name: row.name, url: row.pic }
|
||||
const imgUrl = { name: row.name, url: row.pic }
|
||||
this.fileList.push(imgUrl)
|
||||
} else {
|
||||
this.fileList = []
|
||||
|
@ -384,27 +384,27 @@ export default {
|
|||
this.$confirm('此操作将永久删除该会议室, 是否继续?', '提示', {
|
||||
confirmButtonText: '确定',
|
||||
cancelButtonText: '取消',
|
||||
type: 'warning',
|
||||
type: 'warning'
|
||||
})
|
||||
.then(() => {
|
||||
this.$http.put(`/meeting`, { delFlag: 1, id: row.id }).then(() => {
|
||||
this.$http.put('/meeting', { delFlag: 1, id: row.id }).then(() => {
|
||||
this.queryData()
|
||||
this.$message({
|
||||
type: 'success',
|
||||
message: '删除成功!',
|
||||
message: '删除成功!'
|
||||
})
|
||||
})
|
||||
})
|
||||
.catch(() => {
|
||||
this.$message({
|
||||
type: 'info',
|
||||
message: '已取消删除',
|
||||
message: '已取消删除'
|
||||
})
|
||||
})
|
||||
},
|
||||
// 监听关闭按钮时间
|
||||
outDialog() {},
|
||||
},
|
||||
outDialog () {}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
|
|
|
@ -0,0 +1,149 @@
|
|||
<!--
|
||||
* @Author: hisense.guoyue
|
||||
* @LastEditors: hisense.guoyue
|
||||
* @LastEditTime: 2022-09-21 10:37:29
|
||||
* @Description: 设备审批
|
||||
-->
|
||||
<template>
|
||||
<!-- @selection-change="dataListSelectionChangeHandle" -->
|
||||
<!-- @sort-change="dataListSortChangeHandle" -->
|
||||
<el-card shadow="never" class="aui-card--fill" style="position:relative">
|
||||
<div class="mod-activiti__process">
|
||||
<el-table v-loading="dataListLoading" :data="dataList" border style="width: 100%">
|
||||
<el-table-column prop="title" label="申请标题" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="name" label="申请人信息" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="state" label="审批状态" header-align="center" align="center">
|
||||
<template slot-scope="scope">
|
||||
<span>{{wrjStateObj[scope.row.state]}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="phone" label="电话" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="dept" label="单位" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="applicationSystem" label="应用系统" header-align="center" align="center">
|
||||
</el-table-column>
|
||||
<el-table-column label="应用领域" header-align="center" align="center">
|
||||
<template slot-scope="scope" v-if="scope.row.applicationArea">
|
||||
<span class="area-text" v-for="(x,i) in JSON.parse(scope.row.applicationArea)"
|
||||
:key="i">{{x}}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="需求依据" header-align="center" align="center" width="200">
|
||||
<template slot-scope="scope">
|
||||
<el-tooltip placement="top-start">
|
||||
<div class="tooltip-box" slot="content">{{(scope.row && scope.row.demand)}}</div>
|
||||
<span class="demand-text">{{
|
||||
(scope.row && scope.row.demand)
|
||||
}}</span>
|
||||
</el-tooltip>
|
||||
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column :label="$t('handle')" fixed="right" header-align="center" align="center" width="150">
|
||||
<template slot-scope="scope">
|
||||
<el-button type="text" size="small" @click="taskHandle(scope.row)">审批</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>
|
||||
</div>
|
||||
|
||||
<el-dialog title="审批" :visible.sync="centerDialogVisible" width="30%" center>
|
||||
<el-form ref="form" :model="form" label-width="80px">
|
||||
<el-form-item label="审批意见">
|
||||
<el-input type="textarea" v-model="form.auditViem" placeholder="请输入审批意见"></el-input>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<span slot="footer" class="dialog-footer">
|
||||
<el-button @click="through(3)">不通过</el-button>
|
||||
<el-button type="primary" @click="through(2)">通过</el-button>
|
||||
</span>
|
||||
</el-dialog>
|
||||
</el-card>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
import bus from '@/views/bus.js'
|
||||
import mixinViewModule from '@/mixins/view-module'
|
||||
import processModule from '@/mixins/process-module'
|
||||
export default {
|
||||
mixins: [mixinViewModule, processModule],
|
||||
data() {
|
||||
return {
|
||||
mixinViewModuleOptions: {
|
||||
getDataListURL: '/deviceApply/auditPage',
|
||||
getDataListIsPage: true,
|
||||
activatedIsNeed: true,
|
||||
deleteIsBatch: true,
|
||||
deleteIsBatchKey: 'deploymentId'
|
||||
},
|
||||
centerDialogVisible: false,
|
||||
form: {
|
||||
auditViem: ''
|
||||
},
|
||||
dataForm: {
|
||||
state: 0
|
||||
},
|
||||
rowData: {},
|
||||
wrjStateObj: {
|
||||
0: '待审批',
|
||||
1: '未申请',
|
||||
2: '通过',
|
||||
3: '未通过'
|
||||
}
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
taskHandle(row) {
|
||||
this.form.auditViem = '';
|
||||
this.rowData = row;
|
||||
this.centerDialogVisible = true
|
||||
},
|
||||
through(state) {
|
||||
// 2-通过 3-不通过
|
||||
this.handlePut(state)
|
||||
},
|
||||
handlePut(state) {
|
||||
this.$http.put(`/deviceApply`, {
|
||||
...this.rowData,
|
||||
state: state,
|
||||
...this.form
|
||||
}).then(({ data: res }) => {
|
||||
console.log('res------------>', res);
|
||||
if (res.code !== 0) {
|
||||
return this.$message.error(res.msg)
|
||||
}
|
||||
this.centerDialogVisible = false
|
||||
this.$message({
|
||||
message: this.$t('prompt.success'),
|
||||
type: 'success',
|
||||
duration: 500,
|
||||
onClose: () => {
|
||||
this.query()
|
||||
}
|
||||
})
|
||||
}).catch((err) => {
|
||||
console.log('err------------>', err);
|
||||
})
|
||||
}
|
||||
},
|
||||
}
|
||||
</script>
|
||||
<style scoped>
|
||||
.demand-text {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.area-text {
|
||||
padding: 0 4px;
|
||||
}
|
||||
|
||||
.tooltip-box {
|
||||
width: 400px;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -33,9 +33,13 @@
|
|||
<el-form-item prop="sort" :label="$t('menu.sort')">
|
||||
<el-input-number v-model="dataForm.sort" controls-position="right" :min="0" :label="$t('menu.sort')"></el-input-number>
|
||||
</el-form-item>
|
||||
<!-- 授权标识 -->
|
||||
<el-form-item prop="permissions" :label="$t('menu.permissions')">
|
||||
<el-input v-model="dataForm.permissions" :placeholder="$t('menu.permissionsTips')"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item prop="site" label="站点标识">
|
||||
<el-input v-model="dataForm.site" placeholder="请输入站点标识(1为共享门户,0为后台管理)"></el-input>
|
||||
</el-form-item>
|
||||
<el-form-item v-if="dataForm.type === 0" prop="icon" :label="$t('menu.icon')" class="icon-list">
|
||||
<el-popover v-model="iconListVisible" ref="iconListPopover" placement="bottom-start" trigger="click" popper-class="mod-sys__menu-icon-popover">
|
||||
<div class="mod-sys__menu-icon-inner">
|
||||
|
@ -77,6 +81,7 @@ export default {
|
|||
name: '',
|
||||
pid: '0',
|
||||
parentName: '',
|
||||
site: 0,
|
||||
url: '',
|
||||
permissions: '',
|
||||
sort: 0,
|
||||
|
@ -98,14 +103,14 @@ export default {
|
|||
},
|
||||
watch: {
|
||||
'dataForm.type' (val) {
|
||||
this.$refs['dataForm'].clearValidate()
|
||||
this.$refs.dataForm.clearValidate()
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
init () {
|
||||
this.visible = true
|
||||
this.$nextTick(() => {
|
||||
this.$refs['dataForm'].resetFields()
|
||||
this.$refs.dataForm.resetFields()
|
||||
this.iconList = getIconList()
|
||||
console.log('iconList', this.iconList)
|
||||
this.dataForm.parentName = this.$t('menu.parentNameDefault')
|
||||
|
@ -159,7 +164,7 @@ export default {
|
|||
},
|
||||
// 表单提交
|
||||
dataFormSubmitHandle: debounce(function () {
|
||||
this.$refs['dataForm'].validate((valid) => {
|
||||
this.$refs.dataForm.validate((valid) => {
|
||||
if (!valid) {
|
||||
return false
|
||||
}
|
||||
|
@ -178,7 +183,7 @@ export default {
|
|||
})
|
||||
}).catch(() => {})
|
||||
})
|
||||
}, 1000, { 'leading': true, 'trailing': false })
|
||||
}, 1000, { leading: true, trailing: false })
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -15,16 +15,25 @@
|
|||
<el-button @click="getDataList()">{{ $t('query') }}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button v-if="$hasPermission('sys:post:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}</el-button>
|
||||
<el-button v-if="$hasPermission('sys:post:save')" type="primary" @click="addOrUpdateHandle()">{{ $t('add') }}
|
||||
</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button v-if="$hasPermission('sys:post:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>
|
||||
<el-button v-if="$hasPermission('sys:post:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch')
|
||||
}}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button v-if="$hasPermission('sys:post:reset')" type="primary" @click="resetHandle()">{{ $t('reset') }}
|
||||
</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="postCode" :label="$t('post.postCode')" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="postName" :label="$t('post.postName')" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="postCode" :label="$t('post.postCode')" header-align="center" align="center">
|
||||
</el-table-column>
|
||||
<el-table-column prop="postName" :label="$t('post.postName')" header-align="center" align="center">
|
||||
</el-table-column>
|
||||
<el-table-column prop="sort" :label="$t('post.sort')" header-align="center" align="center"></el-table-column>
|
||||
<el-table-column prop="status" :label="$t('post.status')" header-align="center" align="center">
|
||||
<template slot-scope="scope">
|
||||
|
@ -33,18 +42,15 @@
|
|||
</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:post:update')" type="text" size="small" @click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button>
|
||||
<el-button v-if="$hasPermission('sys:post:delete')" type="text" size="small" @click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button>
|
||||
<el-button v-if="$hasPermission('sys:post:update')" type="text" size="small"
|
||||
@click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button>
|
||||
<el-button v-if="$hasPermission('sys:post: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"
|
||||
<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>
|
||||
<!-- 弹窗, 新增 / 修改 -->
|
||||
|
@ -77,6 +83,14 @@ export default {
|
|||
},
|
||||
components: {
|
||||
AddOrUpdate
|
||||
},
|
||||
methods: {
|
||||
resetHandle() {
|
||||
Object.keys(this.dataForm).map(v => this.dataForm[v] = '')
|
||||
this.$nextTick(() => {
|
||||
this.getDataList()
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -14,6 +14,9 @@
|
|||
<el-form-item>
|
||||
<el-button v-if="$hasPermission('sys:role:delete')" type="danger" @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>
|
||||
</el-form-item>
|
||||
<el-form-item>
|
||||
<el-button v-if="$hasPermission('sys:role:reset')" type="primary" @click="resetHandle()">{{ $t('reset') }}</el-button>
|
||||
</el-form-item>
|
||||
</el-form>
|
||||
<el-table
|
||||
v-loading="dataListLoading"
|
||||
|
@ -68,6 +71,14 @@ export default {
|
|||
},
|
||||
components: {
|
||||
AddOrUpdate
|
||||
},
|
||||
methods: {
|
||||
resetHandle() {
|
||||
this.dataForm.name = '';
|
||||
this.$nextTick(() => {
|
||||
this.getDataList()
|
||||
})
|
||||
},
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -55,7 +55,8 @@ export default {
|
|||
num: 0,
|
||||
list: [],
|
||||
type: 'todo',
|
||||
url: 'activiti-my-todo-task'
|
||||
// url: 'activiti-my-todo-task',
|
||||
url: 'myAgent-CompetencyApplication',
|
||||
},
|
||||
// 部门已办
|
||||
hasToDodoData: {
|
||||
|
@ -67,7 +68,8 @@ export default {
|
|||
textColor: '#21b107',
|
||||
num: 0,
|
||||
list: [],
|
||||
url: 'activiti-my-join-task'
|
||||
// url: 'activiti-my-join-task',
|
||||
url: 'hasToDoTasks-CompetencyApplication',
|
||||
},
|
||||
// 部门申请
|
||||
resourceData: [],
|
||||
|
|
|
@ -16,23 +16,21 @@
|
|||
<title>
|
||||
<%= htmlWebpackPlugin.options.title %>
|
||||
</title>
|
||||
<meta
|
||||
content="vab,vab官网,后台管理框架,vue后台管理框架,vue-admin-beautiful,vue-admin-beautiful-pro,vue-admin-beautiful官网,vue-admin-beautiful文档,vue-element-admin,vue-element-admin官网,vue-element-admin文档,vue-admin,vue-admin官网,vue-admin文档"
|
||||
name="keywords" />
|
||||
<meta
|
||||
content="<%= VUE_APP_TITLE %>官网与文档基于vue-admin-beautiful-pro构建,简称vab(是一款超棒的vue+element中后台前端快速开发框架),QQ群972435319,作者:<%= VUE_APP_AUTHOR %>"
|
||||
name="description" />
|
||||
<meta content="vab,vab官网,后台管理框架,vue后台管理框架,vue-admin-beautiful,vue-admin-beautiful-pro,vue-admin-beautiful官网,vue-admin-beautiful文档,vue-element-admin,vue-element-admin官网,vue-element-admin文档,vue-admin,vue-admin官网,vue-admin文档" name="keywords" />
|
||||
<meta content="<%= VUE_APP_TITLE %>官网与文档基于vue-admin-beautiful-pro构建,简称vab(是一款超棒的vue+element中后台前端快速开发框架),QQ群972435319,作者:<%= VUE_APP_AUTHOR %>" name="description" />
|
||||
<meta content="<%= VUE_APP_AUTHOR %>" name="author" />
|
||||
<!-- 浏览器弹框相关 -->
|
||||
<link href="<%= BASE_URL %>static/css/modal.css" rel="stylesheet" />
|
||||
<script type="text/javascript" src="./static/js/modal.js"></script>
|
||||
|
||||
<link href="<%= BASE_URL %>static/css/loading.css" rel="stylesheet" />
|
||||
<script>
|
||||
</script>
|
||||
<link href="./leaflet/libs/leaflet/1.3.1/leaflet.css" rel="stylesheet">
|
||||
<link href="./leaflet/dist/leaflet/iclient-leaflet.css" rel="stylesheet">
|
||||
<link href="./leaflet/libs/leaflet/plugins/leaflet.draw/leaflet.draw.css" rel="stylesheet">
|
||||
<link href="./leaflet/libs/leaflet.markercluster/dist/MarkerCluster.css" rel="stylesheet">
|
||||
<link href="./leaflet/libs/leaflet.markercluster/dist/MarkerCluster.Default.css" rel="stylesheet">
|
||||
<link href="./supermap/css/supermap.css" rel="stylesheet">
|
||||
<link href="./static/css/widgets.css" rel="stylesheet">
|
||||
<link href="./leaflet/libs/leaflet/1.3.1/leaflet.css" rel="stylesheet" />
|
||||
<link href="./leaflet/dist/leaflet/iclient-leaflet.css" rel="stylesheet" />
|
||||
<link href="./leaflet/libs/leaflet/plugins/leaflet.draw/leaflet.draw.css" rel="stylesheet" />
|
||||
<link href="./leaflet/libs/leaflet.markercluster/dist/MarkerCluster.css" rel="stylesheet" />
|
||||
<link href="./leaflet/libs/leaflet.markercluster/dist/MarkerCluster.Default.css" rel="stylesheet" />
|
||||
<link href="./supermap/css/supermap.css" rel="stylesheet" />
|
||||
<link href="./static/css/widgets.css" rel="stylesheet" />
|
||||
<!-- 平台配置文件 -->
|
||||
<script type="text/javascript" src="./static/config/basicConfig.js"></script>
|
||||
<script type="text/javascript" src="./static/config/mapConfig.js"></script>
|
||||
|
@ -68,13 +66,14 @@
|
|||
<script type="text/javascript" src="./static/js/DHWs.js"></script>
|
||||
<!-- 站点配置 -->
|
||||
<script>
|
||||
window.SITE_CONFIG = {};
|
||||
window.SITE_CONFIG['backUrl'] = _global.config.backUrl;
|
||||
window.SITE_CONFIG['previewUrl'] = _global.config.previewUrl;
|
||||
window.SITE_CONFIG['frontUrl'] = _global.config.previewUrl + 'document/#/devModelFile/';
|
||||
window.SITE_CONFIG['apiURL'] = 'http://'+ _global.config.websocketURL;
|
||||
window.SITE_CONFIG['websocketURL'] = _global.config.websocketURL;
|
||||
window.SITE_CONFIG['POI_URL'] = _global.config.POI_URL;
|
||||
window.SITE_CONFIG = {}
|
||||
window.SITE_CONFIG['backUrl'] = _global.config.backUrl
|
||||
window.SITE_CONFIG['previewUrl'] = _global.config.previewUrl
|
||||
window.SITE_CONFIG['frontUrl'] =
|
||||
_global.config.previewUrl + 'document/#/devModelFile/'
|
||||
window.SITE_CONFIG['apiURL'] = 'http://' + _global.config.websocketURL
|
||||
window.SITE_CONFIG['websocketURL'] = _global.config.websocketURL
|
||||
window.SITE_CONFIG['POI_URL'] = _global.config.POI_URL
|
||||
</script>
|
||||
</head>
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
/*
|
||||
* @Author: hisense.wuhongjian
|
||||
* @Date: 2020-07-07 16:03:23
|
||||
* @LastEditors: hisense.liangjunhua
|
||||
* @LastEditTime: 2022-09-19 11:08:04
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-10-14 11:23:47
|
||||
* @Description: 系统静态参数配置
|
||||
*/
|
||||
var _global = {}
|
||||
|
@ -12,7 +12,7 @@ var CONFIGITEM = {
|
|||
//version: 'dev', // 开发
|
||||
version: 'test', // 测试
|
||||
//version: 'frp', // 内网穿透
|
||||
vNum: 'v0.8.7.2',
|
||||
vNum: 'v0.8.13.5',
|
||||
configData: {
|
||||
// 青岛市大数据局
|
||||
qingdao: {
|
||||
|
@ -31,6 +31,25 @@ var CONFIGITEM = {
|
|||
POI_URL:
|
||||
'http://15.72.178.129:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address',
|
||||
},
|
||||
// 研发展厅
|
||||
zhanTingDev: {
|
||||
loginInfo: {
|
||||
// 视频平台登陆信息
|
||||
loginIp: '10.132.191.3',
|
||||
loginPort: '8320',
|
||||
userName: 'ynszdz',
|
||||
userPwd: 'Admin@123',
|
||||
},
|
||||
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: '10.16.5.146:8888/renren-admin', // 姜永超
|
||||
websocketURL: '10.18.1.99:8889/renren-admin',
|
||||
// websocketURL: '10.16.5.35:8888/renren-admin',
|
||||
POI_URL:
|
||||
'http://15.72.178.129:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address',
|
||||
},
|
||||
// 西海岸大数据局
|
||||
xihaian: {
|
||||
loginInfo: {
|
||||
|
@ -40,9 +59,16 @@ var CONFIGITEM = {
|
|||
userName: '',
|
||||
userPwd: '',
|
||||
},
|
||||
// 获取摄像头的后端接口地址
|
||||
camreaInfo: {
|
||||
// cameraUrl: '10.134.135.92:9537', // 测试环境
|
||||
cameraUrl: '10.134.135.9:9537', // 生产环境
|
||||
},
|
||||
backUrl: 'http://10.134.135.9:9797',
|
||||
previewUrl: 'http://10.134.135.9:9796/',
|
||||
websocketURL: '10.134.135.9:8888/renren-admin',
|
||||
// websocketURL: '10.134.135.9:8888/renren-admin', // 正式环境
|
||||
// websocketURL: '10.134.135.92:8888/renren-admin', // 测试环境
|
||||
websocketURL: '192.168.124.254: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',
|
||||
|
@ -58,7 +84,7 @@ var CONFIGITEM = {
|
|||
},
|
||||
backUrl: 'http://localhost:8001',
|
||||
previewUrl: 'http://192.168.124.236:9796/',
|
||||
websocketURL: '192.168.124.236:8888/renren-admin',
|
||||
websocketURL: '192.168.124.233: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',
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* @Author: hisense.wuhongjian
|
||||
* @Date: 2020-07-07 16:03:23
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-08-29 09:55:56
|
||||
* @LastEditTime: 2022-10-14 11:23:58
|
||||
* @Description: 数据资源参数配置
|
||||
*/
|
||||
// eslint-disable-next-line no-undef
|
||||
|
@ -23,6 +23,8 @@ const infrastructure = {}
|
|||
const mapTestNum = {}
|
||||
// 底部数据
|
||||
const footerDataList = {}
|
||||
// 西海岸--特殊用户
|
||||
const xhaHasPermissionUser = {}
|
||||
// qingdao
|
||||
if (newLocation !== 'baotou' && newLocation !== 'xihaian') {
|
||||
whoShow.itShowQingDao = true
|
||||
|
@ -31,13 +33,13 @@ if (newLocation !== 'baotou' && newLocation !== 'xihaian') {
|
|||
navListManagement.navList = [
|
||||
{ name: '共享门户', key: 'home' },
|
||||
{ name: '能力集市', key: 'DetailsPageconetent' },
|
||||
{ name: '能力云图', key: 'capabilityCloud' },
|
||||
// { name: '能力云图', key: 'capabilityCloud' },
|
||||
{ name: '能力统计', key: 'abilityStatistics' },
|
||||
// { name: '开发指南', key: 'developmentGuide' },
|
||||
{ name: '技术文档', key: 'instructionManual' },
|
||||
{ name: '新手指南', key: 'instructionManual' },
|
||||
{ name: '需求中心', key: 'demandCenter' },
|
||||
// { name: '个人中心', key: 'personalCenter' },
|
||||
{ name: '区市站点', key: 'mapTest' },
|
||||
// { name: '区市站点', key: 'mapTest' },
|
||||
// { name: '后台管理', key: 'houtaiguanli' },
|
||||
// { name: '典型赋能案例', key: 'assignCase' },
|
||||
{ name: '融合服务', key: 'integrationServices' },
|
||||
|
@ -45,21 +47,21 @@ if (newLocation !== 'baotou' && newLocation !== 'xihaian') {
|
|||
]
|
||||
footerDataList.footerList = {
|
||||
company: {
|
||||
left: '青岛市大数据发展管理局建设',
|
||||
right: '海信网络科技股份有限公司',
|
||||
left: '青岛市大数据发展管理局',
|
||||
right: '政府标识码3702000106',
|
||||
},
|
||||
address: [
|
||||
{
|
||||
name: '鲁IC备00000000号',
|
||||
value: '政府标识码3702000106',
|
||||
name: '邮编: 266071',
|
||||
value: 'Email: QDDSJJ@qingdao.shandong.cn',
|
||||
},
|
||||
{
|
||||
name: '版权所有:青岛市大数据发展管理局',
|
||||
value: '地址:山东省青岛市香港中路17号市级机关办公楼',
|
||||
value: '地址:山东省青岛市香港中路17号市级机关三号办公楼',
|
||||
},
|
||||
{
|
||||
name: '电话:0532-8561234',
|
||||
value: '传真:0532-2145122',
|
||||
name: '电话:0532-85912587',
|
||||
value: '传真:0532-85912181',
|
||||
},
|
||||
],
|
||||
}
|
||||
|
@ -122,15 +124,12 @@ else if (newLocation === 'baotou') {
|
|||
{ name: '能力集市', key: 'DetailsPageconetent' },
|
||||
{ name: '能力云图', key: 'capabilityCloud' },
|
||||
{ name: '能力统计', key: 'abilityStatistics' },
|
||||
{ name: '技术文档', key: 'instructionManual' },
|
||||
// { name: '开发指南', key: 'developmentGuide' },
|
||||
{ name: '需求中心', key: 'demandCenter' },
|
||||
// { name: '个人中心', key: 'personalCenter' },
|
||||
// { name: '区市站点', key: 'mapTest' },
|
||||
// { name: '后台管理', key: 'houtaiguanli' },
|
||||
{ name: '赋能案例', key: 'assignCase' },
|
||||
{ name: '融合服务', key: 'integrationServices' },
|
||||
{ name: 'CIM专区', key: 'cimSpecialArea' },
|
||||
]
|
||||
footerDataList.footerList = {
|
||||
company: {
|
||||
|
@ -496,15 +495,12 @@ else if (newLocation === 'xihaian') {
|
|||
{ name: '能力集市', key: 'DetailsPageconetent' },
|
||||
{ name: '能力云图', key: 'capabilityCloud' },
|
||||
{ name: '能力统计', key: 'abilityStatistics' },
|
||||
{ name: '技术文档', key: 'instructionManual' },
|
||||
// { name: '开发指南', key: 'developmentGuide' },
|
||||
{ name: '需求中心', key: 'demandCenter' },
|
||||
// { name: '个人中心', key: 'personalCenter' },
|
||||
// { name: '区市站点', key: 'mapTest' },
|
||||
// { name: '后台管理', key: 'houtaiguanli' },
|
||||
{ name: '赋能案例', key: 'assignCase' },
|
||||
{ name: '融合服务', key: 'integrationServices' },
|
||||
{ name: 'CIM专区', key: 'cimSpecialArea' },
|
||||
]
|
||||
footerDataList.footerList = {
|
||||
company: {
|
||||
|
@ -527,4 +523,11 @@ else if (newLocation === 'xihaian') {
|
|||
},
|
||||
],
|
||||
}
|
||||
xhaHasPermissionUser.list = [
|
||||
'xihaian01',
|
||||
'xihaian02',
|
||||
'xihaian03',
|
||||
'xihaian04',
|
||||
'admin',
|
||||
]
|
||||
}
|
||||
|
|
|
@ -0,0 +1,75 @@
|
|||
* {
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
|
||||
.mask-layer {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
background: rgba(0, 0, 0, 0.6);
|
||||
}
|
||||
|
||||
.model-container {
|
||||
width: 360px;
|
||||
height: 150px;
|
||||
background: #fff;
|
||||
border-radius: 10px;
|
||||
/* box-shadow: 0px 0px 12px 4px #ff3; */
|
||||
text-align: center;
|
||||
font-size: 18px;
|
||||
color: #333;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
-moz-transform: translate(-50%, -50%);
|
||||
-ms-transform: translate(-50%, -50%);
|
||||
-o-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
z-index: 99999999999;
|
||||
}
|
||||
|
||||
.model-container .model-title {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.model-container .controls {
|
||||
position: absolute;
|
||||
bottom: 10px;
|
||||
width: 100%;
|
||||
padding: 12px;
|
||||
padding-top: 40px;
|
||||
}
|
||||
|
||||
.model-container a {
|
||||
display: inline-block;
|
||||
width: 49%;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.model-container .confirm {
|
||||
width: 60px;
|
||||
height: 30px;
|
||||
background: #0087ff;
|
||||
border-radius: 0.04rem !important;
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #fff;
|
||||
line-height: 30px;
|
||||
}
|
||||
|
||||
.model-container .cancel {
|
||||
width: 60px;
|
||||
height: 30px;
|
||||
background: #0087ff;
|
||||
border-radius: 0.04rem !important;
|
||||
font-size: 14px;
|
||||
font-weight: 400;
|
||||
color: #fff;
|
||||
line-height: 30px;
|
||||
margin-left: 100px;
|
||||
}
|
|
@ -0,0 +1,138 @@
|
|||
function judgeAgent() {
|
||||
let userAgent = navigator.userAgent // 取得浏览器的userAgent字符串
|
||||
console.log('userAgent------------>', userAgent)
|
||||
let isOpera = userAgent.indexOf('Opera') > -1
|
||||
//判断是否Opera浏览器
|
||||
if (isOpera) {
|
||||
return 'Opera'
|
||||
}
|
||||
//判断是否Firefox浏览器
|
||||
if (userAgent.indexOf('Firefox') > -1) {
|
||||
return 'FF'
|
||||
}
|
||||
//判断是否chorme浏览器
|
||||
if (userAgent.indexOf('Chrome') > -1) {
|
||||
return 'Chrome'
|
||||
}
|
||||
//判断是否Safari浏览器
|
||||
if (userAgent.indexOf('Safari') > -1) {
|
||||
return 'Safari'
|
||||
}
|
||||
//判断是否IE浏览器
|
||||
if (
|
||||
userAgent.indexOf('compatible') > -1 &&
|
||||
userAgent.indexOf('MSIE') > -1 &&
|
||||
!isOpera
|
||||
) {
|
||||
return 'IE'
|
||||
}
|
||||
//判断是否Edge浏览器
|
||||
if (userAgent.indexOf('Trident') > -1) {
|
||||
return 'Edge'
|
||||
}
|
||||
}
|
||||
|
||||
function downloadFile(name, url) {
|
||||
const alink = document.createElement('a')
|
||||
alink.download = name // 文件名,大部分浏览器兼容,IE10及以下不兼容
|
||||
alink.href = url // 创建 url地址
|
||||
alink.click() // 自动点击
|
||||
}
|
||||
|
||||
function getPCNum() {
|
||||
const agent = navigator.userAgent.toLowerCase()
|
||||
if (agent.indexOf('win32') >= 0 || agent.indexOf('wow32') >= 0) {
|
||||
return 32
|
||||
}
|
||||
if (agent.indexOf('win64') >= 0 || agent.indexOf('wow64') >= 0) {
|
||||
return 64
|
||||
}
|
||||
}
|
||||
|
||||
console.log('------判断浏览器------>', judgeAgent())
|
||||
|
||||
var ModelBox = (function() {
|
||||
var ModelBox = function(option) {
|
||||
this.option = option || {}
|
||||
console.log(999, 'init')
|
||||
this.init()
|
||||
}
|
||||
ModelBox.prototype = {
|
||||
isShow: false,
|
||||
init: function() {
|
||||
var _this = this
|
||||
_this.isShow = this.option.isShow
|
||||
var html =
|
||||
'<div class="model-container">' +
|
||||
'<h1 class="model-title">title</h1>' +
|
||||
'<div class="model-content"></div>' +
|
||||
'<div class="controls">' +
|
||||
'<a class="confirm">下载</a>' +
|
||||
'<a class="cancel">取消</a>' +
|
||||
'</div>' +
|
||||
'</div>'
|
||||
var ModelBoxCon = document.createElement('div')
|
||||
ModelBoxCon.setAttribute('class', 'mask-layer')
|
||||
ModelBoxCon.innerHTML = html
|
||||
ModelBoxCon.querySelector('.model-title').innerHTML =
|
||||
_this.option.title
|
||||
ModelBoxCon.querySelector('.model-content').innerHTML =
|
||||
_this.option.content
|
||||
document.getElementsByTagName('html')[0].appendChild(ModelBoxCon)
|
||||
if (!_this.isShow) {
|
||||
ModelBoxCon.style.display = 'none'
|
||||
}
|
||||
ModelBoxCon.querySelector('.cancel').onclick =
|
||||
ModelBoxCon.querySelector('.confirm').onclick =
|
||||
_this.eventsFn.bind('', this, ModelBoxCon)
|
||||
},
|
||||
show: function() {
|
||||
document.querySelector('.mask-layer').style.display = 'block'
|
||||
this.isShow = true
|
||||
},
|
||||
hide: function() {
|
||||
document.querySelector('.mask-layer').style.display = 'none'
|
||||
this.isShow = false
|
||||
},
|
||||
eventsFn: function(e, doc, target) {
|
||||
var _thisEvent = target.target
|
||||
if (_thisEvent.classList.contains('confirm')) {
|
||||
e.option.confirmCallBack()
|
||||
}
|
||||
doc.style.display = 'none'
|
||||
e.isShow = false
|
||||
return false
|
||||
},
|
||||
} || {}
|
||||
return ModelBox
|
||||
})()
|
||||
|
||||
var opt = new ModelBox({
|
||||
title: '当前系统不支持IE内核,建议使用Chrome浏览器或360浏览器极速模式',
|
||||
content: '',
|
||||
isShow: false,
|
||||
confirmCallBack: function() {
|
||||
// 获取当前系统的方法
|
||||
const agent = getPCNum()
|
||||
console.log('agent------------>', agent)
|
||||
if (agent == 64) {
|
||||
// 64位操作系统
|
||||
downloadFile(
|
||||
'ChromeStandaloneSetup64.exe',
|
||||
'/static/download/ChromeStandaloneSetup64.exe'
|
||||
)
|
||||
} else {
|
||||
// 32位操作系统
|
||||
downloadFile(
|
||||
'ChromeStandalonesetup32.exe',
|
||||
'/static/download/standalonesetup32.exe'
|
||||
)
|
||||
}
|
||||
},
|
||||
})
|
||||
|
||||
// 提示下载谷歌
|
||||
if (judgeAgent() !== 'Chrome') {
|
||||
//alert('哈哈哈不支持')
|
||||
opt.show()
|
||||
}
|
|
@ -97,19 +97,16 @@ export function getHls(params) {
|
|||
config2
|
||||
)
|
||||
}
|
||||
|
||||
// 西海岸--获取摄像头列表的后台地址 (测试环境地址: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://10.134.135.92:9537/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.get(
|
||||
'http://10.134.135.92:9537/data_service/getCamera/getCameraByCondition?' +
|
||||
params,
|
||||
config2
|
||||
)
|
||||
return axios.post(`http://${_cameraUrl}/data_service/getCamera/getCameraByCondition`, params, config2)
|
||||
}
|
||||
|
|
|
@ -80,6 +80,15 @@ export function sgcInsert(data) {
|
|||
})
|
||||
}
|
||||
|
||||
// 西海岸--加入申购车
|
||||
export function xhaAddCart(data) {
|
||||
return request({
|
||||
url: '/resourcecar/batchInsert', // 西海岸-加入购物车相当于收藏功能
|
||||
method: 'post',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 获取登录用户信息
|
||||
export function getUser(params) {
|
||||
return request({
|
||||
|
@ -352,6 +361,23 @@ export function selectInfrastructureList(params) {
|
|||
params,
|
||||
})
|
||||
}
|
||||
//首页 组件服务
|
||||
export function selectCollectComponentList(params) {
|
||||
return request({
|
||||
url: 'resource/selectCollectComponentList',
|
||||
method: 'get',
|
||||
params,
|
||||
})
|
||||
}
|
||||
//首页 应用资源
|
||||
export function selectCollectResourceList(params) {
|
||||
return request({
|
||||
url: 'resource/selectCollectResourceList',
|
||||
method: 'get',
|
||||
params,
|
||||
})
|
||||
}
|
||||
|
||||
// 根据instanceId获取摄像头列表
|
||||
export function getApplyCameraList(id) {
|
||||
return request({
|
||||
|
@ -444,3 +470,26 @@ export function selectAppList(params) {
|
|||
params,
|
||||
})
|
||||
}
|
||||
// 西海岸-获取无人机和单兵设备列表
|
||||
export function getSoldierList(params) {
|
||||
return request({
|
||||
url: '/device/page',
|
||||
method: 'get',
|
||||
params,
|
||||
})
|
||||
}
|
||||
// 西海岸-无人机和单兵设备提交申请
|
||||
export function soldierApply(data) {
|
||||
return request({
|
||||
url: '/deviceApply',
|
||||
method: 'post',
|
||||
data,
|
||||
})
|
||||
}
|
||||
// 西海岸-基础设施-一键申请最大个数
|
||||
export function getMaxApplyNum(number) {
|
||||
return request({
|
||||
url: '/processForm/tabilityapplication/canApply/' + number,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
|
@ -236,6 +236,14 @@ export function selectResourceListByDept(params) {
|
|||
params,
|
||||
})
|
||||
}
|
||||
// 西海岸--申购车根据部门查询
|
||||
export function selectResourceListByDeptName(params) {
|
||||
return request({
|
||||
url: '/resourcecar/selectResourceListByDeptName',
|
||||
method: 'get',
|
||||
params,
|
||||
})
|
||||
}
|
||||
// 获取来源应用列表
|
||||
export function queryApplicationRelByResourceId(params) {
|
||||
return request({
|
||||
|
@ -284,3 +292,20 @@ export function endProcess(params) {
|
|||
params,
|
||||
})
|
||||
}
|
||||
|
||||
// 西海岸:我的申请--设备申请列表
|
||||
export function deviceApplylist(params) {
|
||||
return request({
|
||||
url: '/deviceApply/page',
|
||||
method: 'get',
|
||||
params,
|
||||
})
|
||||
}
|
||||
|
||||
// 西海岸:我的申请--设备申请--查询详情
|
||||
export function getDeviceDetail(deviceId) {
|
||||
return request({
|
||||
url: `/device/${deviceId}`,
|
||||
method: 'get',
|
||||
})
|
||||
}
|
After Width: | Height: | Size: 293 B |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 859 B |
After Width: | Height: | Size: 987 B |
After Width: | Height: | Size: 931 B |
|
@ -507,4 +507,5 @@ export const RECOURCE_G_ICON = {
|
|||
}
|
||||
|
||||
// 能力集市-默认选中tab
|
||||
export const DETAIL_PAGE_CONTENT_DEFAULT_TAB = '应用资源'
|
||||
// 西海岸-默认基础设施
|
||||
export const DETAIL_PAGE_CONTENT_DEFAULT_TAB = whoShow.itShowXiHaiAn ? '基础设施' : '应用资源'
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
<a-dropdown>
|
||||
<span class="ant-dropdown-link">
|
||||
<a-avatar :src="avatar" />
|
||||
{{ username }}
|
||||
{{ realName }}
|
||||
<DownOutlined />
|
||||
</span>
|
||||
<template v-slot:overlay>
|
||||
|
@ -27,7 +27,7 @@
|
|||
import { DownOutlined } from '@ant-design/icons-vue'
|
||||
import user from '@/assets/home/user.png'
|
||||
import { useStore } from 'vuex'
|
||||
import { computed } from 'vue'
|
||||
import { computed, onMounted } from 'vue'
|
||||
import { useRoute, useRouter } from 'vue-router'
|
||||
|
||||
export default {
|
||||
|
@ -49,7 +49,8 @@
|
|||
}
|
||||
return {
|
||||
avatar: user,
|
||||
username: computed(() => store.getters['user/username']),
|
||||
// username: computed(() => store.getters['user/username']),
|
||||
realName: computed(() => store.getters['user/realName']),
|
||||
logout,
|
||||
}
|
||||
},
|
||||
|
@ -60,6 +61,7 @@
|
|||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
|
||||
.ant-dropdown-link {
|
||||
display: block;
|
||||
// min-height: 64px;
|
||||
|
|
|
@ -24,6 +24,9 @@ import 'vue3-video-play-emiyagm/dist/style.css' // 引入css
|
|||
import ElementPlus from 'element-plus'
|
||||
import 'element-plus/dist/index.css'
|
||||
import * as ElementPlusIconsVue from '@element-plus/icons-vue'
|
||||
import { ElMessage, ElMessageBox } from 'element-plus'
|
||||
|
||||
console.log(111, 'main')
|
||||
/**
|
||||
* @author chuzhixin 1204505056@qq.com
|
||||
* @description 正式环境默认使用mock,正式项目记得注释后再打包
|
||||
|
@ -54,3 +57,79 @@ router.beforeEach((to, from, next) => {
|
|||
document.body.scrollTop = 0
|
||||
next()
|
||||
})
|
||||
|
||||
|
||||
// 判断浏览器
|
||||
// function judgeAgent() {
|
||||
// let userAgent = navigator.userAgent // 取得浏览器的userAgent字符串
|
||||
// console.log('userAgent------------>', userAgent);
|
||||
// let isOpera = userAgent.indexOf('Opera') > -1
|
||||
// //判断是否Opera浏览器
|
||||
// if (isOpera) {
|
||||
// return 'Opera'
|
||||
// }
|
||||
// //判断是否Firefox浏览器
|
||||
// if (userAgent.indexOf('Firefox') > -1) {
|
||||
// return 'FF'
|
||||
// }
|
||||
// //判断是否chorme浏览器
|
||||
// if (userAgent.indexOf('Chrome') > -1) {
|
||||
// return 'Chrome'
|
||||
// }
|
||||
// //判断是否Safari浏览器
|
||||
// if (userAgent.indexOf('Safari') > -1) {
|
||||
// return 'Safari'
|
||||
// }
|
||||
// //判断是否IE浏览器
|
||||
// if (
|
||||
// userAgent.indexOf('compatible') > -1 &&
|
||||
// userAgent.indexOf('MSIE') > -1 &&
|
||||
// !isOpera
|
||||
// ) {
|
||||
// return 'IE'
|
||||
// }
|
||||
// //判断是否Edge浏览器
|
||||
// if (userAgent.indexOf('Trident') > -1) {
|
||||
// return 'Edge'
|
||||
// }
|
||||
// }
|
||||
|
||||
// function downloadFile(name, url) {
|
||||
// const alink = document.createElement('a');
|
||||
// alink.download = name; // 文件名,大部分浏览器兼容,IE10及以下不兼容
|
||||
// alink.href = url; // 创建 url地址
|
||||
// alink.click(); // 自动点击
|
||||
// }
|
||||
|
||||
// function getPCNum() {
|
||||
// const agent = navigator.userAgent.toLowerCase();
|
||||
// if (agent.indexOf('win32') >= 0 || agent.indexOf('wow32') >= 0) {
|
||||
// return 32;
|
||||
// }
|
||||
// if (agent.indexOf('win64') >= 0 || agent.indexOf('wow64') >= 0) {
|
||||
// return 64;
|
||||
// }
|
||||
// }
|
||||
|
||||
// console.log('------判断浏览器------>', judgeAgent());
|
||||
|
||||
// // 提示下载谷歌
|
||||
// if (judgeAgent() !== 'Chrome') {
|
||||
// ElMessageBox.confirm('当前仅支持Chrome浏览器,是否进行下载?', '提示', {
|
||||
// confirmButtonText: '下载',
|
||||
// cancelButtonText: '取消',
|
||||
// type: 'warning'
|
||||
// }).then(() => {
|
||||
// // 获取当前系统的方法
|
||||
// const agent = getPCNum();
|
||||
// console.log('agent------------>', agent);
|
||||
// if (agent == 64) {
|
||||
// // 64位操作系统
|
||||
// // downloadFile(_global.config.loginInfo.name_32, _global.config.loginInfo.url_32);
|
||||
// downloadFile('ChromeStandaloneSetup64.exe', '/static/download/ChromeStandaloneSetup64.exe');
|
||||
// } else {
|
||||
// // 32位操作系统
|
||||
// downloadFile('ChromeStandalonesetup32.exe', '/static/download/standalonesetup32.exe');
|
||||
// }
|
||||
// }).catch(() => {});
|
||||
// }
|
|
@ -85,7 +85,7 @@ export const constantRoutes = [
|
|||
{
|
||||
path: '/',
|
||||
component: Layout,
|
||||
redirect: '/home',
|
||||
redirect: whoShow.itShowXiHaiAn ? '/DetailsPageconetent' : '/home',
|
||||
meta: {
|
||||
title: '能力管理平台编目',
|
||||
icon: 'apps-line',
|
||||
|
@ -495,7 +495,7 @@ export const constantRoutes = [
|
|||
name: 'instructionManual',
|
||||
component: () => import('@/views/instructionManual/index'),
|
||||
meta: {
|
||||
title: '技术文档',
|
||||
title: '新手指南',
|
||||
icon: 'error-warning-line',
|
||||
},
|
||||
},
|
||||
|
|
|
@ -14,6 +14,7 @@ import { message, notification } from 'ant-design-vue'
|
|||
const state = () => ({
|
||||
accessToken: getAccessToken(),
|
||||
username: '',
|
||||
realName: '',
|
||||
userId: '',
|
||||
avatar: '',
|
||||
role: 0, // 用户管理员权限
|
||||
|
@ -21,6 +22,7 @@ const state = () => ({
|
|||
const getters = {
|
||||
accessToken: (state) => state.accessToken,
|
||||
username: (state) => state.username,
|
||||
realName: (state) => state.realName,
|
||||
avatar: (state) => state.avatar,
|
||||
role: (state) => state.role,
|
||||
userId: (state) => state.userId,
|
||||
|
@ -45,6 +47,15 @@ const mutations = {
|
|||
setUsername(state, username) {
|
||||
state.username = username
|
||||
},
|
||||
/**
|
||||
* @author chuzhixin 1204505056@qq.com
|
||||
* @description 设置真实用户名
|
||||
* @param {*} state
|
||||
* @param {*} username
|
||||
*/
|
||||
setRealname(state, realName) {
|
||||
state.realName = realName
|
||||
},
|
||||
// 设置角色
|
||||
setRole(state, role) {
|
||||
state.role = role
|
||||
|
@ -75,6 +86,7 @@ const actions = {
|
|||
})
|
||||
commit('setAvatar', 'https://i.gtimg.cn/club/item/face/img/2/15922_100.gif')
|
||||
commit('setUsername', 'admin(未开启登录拦截)')
|
||||
commit('setRealname', 'admin(未开启登录拦截)')
|
||||
},
|
||||
/**
|
||||
* @author chuzhixin 1204505056@qq.com
|
||||
|
@ -114,15 +126,16 @@ const actions = {
|
|||
* @returns
|
||||
*/
|
||||
async getUserInfo({ commit }) {
|
||||
const { data } = await getUserInfo()
|
||||
if (!data) {
|
||||
const res = await getUserInfo()
|
||||
if (!res || !res.data) {
|
||||
message.error(`验证失败,请重新登录...`)
|
||||
return false
|
||||
}
|
||||
// debugger
|
||||
commit('setUsername', data.data.realName)
|
||||
commit('setRole', data.data.roleIdList.length)
|
||||
commit('setUserId', data.data.id)
|
||||
commit('setUsername', res.data.data.username)
|
||||
commit('setRealname', res.data.data.realName)
|
||||
commit('setRole', res.data.data.roleIdList.length)
|
||||
commit('setUserId', res.data.data.id)
|
||||
// TODO 获取用户信息,后续执行部分操作
|
||||
// let { username, avatar, roles, ability } = data
|
||||
// if (username && roles && Array.isArray(roles)) {
|
||||
|
@ -155,6 +168,7 @@ const actions = {
|
|||
* @param {*} { commit, dispatch }
|
||||
*/
|
||||
async resetAll({ dispatch }) {
|
||||
debugger
|
||||
await dispatch('setAccessToken', '')
|
||||
await dispatch('acl/setFull', false, {
|
||||
root: true,
|
||||
|
|
|
@ -1657,14 +1657,16 @@ export function MapFun(mapObj) {
|
|||
features,
|
||||
url,
|
||||
layerName,
|
||||
createPopupFun
|
||||
createPopupFun,
|
||||
url2
|
||||
) {
|
||||
console.log(
|
||||
'_addResourceOnMapWithoutSuperMapCluster===============>',
|
||||
features,
|
||||
url,
|
||||
layerName,
|
||||
createPopupFun
|
||||
createPopupFun,
|
||||
url2
|
||||
)
|
||||
// 如果资源要素数量为0,则说明该种资源没有记录
|
||||
// if (features.length < 1) {
|
||||
|
@ -1685,14 +1687,19 @@ export function MapFun(mapObj) {
|
|||
let layers = null
|
||||
// 判断是否是聚合图层
|
||||
layers = createMarkerClusterLayer()
|
||||
const icon = createDefaultFeatureStyle({
|
||||
const icon1 = createDefaultFeatureStyle({
|
||||
img: url,
|
||||
iconSize: [36, 36],
|
||||
iconSize: [33, 33],
|
||||
})
|
||||
const icon2 = createDefaultFeatureStyle({
|
||||
img: url2,
|
||||
iconSize: [33, 33],
|
||||
})
|
||||
features.map((feature) => {
|
||||
var bounds = map.getBounds()
|
||||
// console.log("看看有没有坐标",feature.latLng);
|
||||
if ( feature.hasOwnProperty('latLng')) {
|
||||
let icon = feature.active?icon2:icon1
|
||||
const marker = L.marker(feature.latLng, { icon })
|
||||
if (createPopupFun !== null) {
|
||||
marker.uuid = feature.uuid || ''
|
||||
|
@ -1728,6 +1735,8 @@ export function MapFun(mapObj) {
|
|||
}
|
||||
marker.on('click', e=>{
|
||||
console.log('点位数据', e)
|
||||
|
||||
mybus.emit('pointMarkerClick', feature)
|
||||
})
|
||||
layers.addLayer(marker)
|
||||
}
|
||||
|
|
After Width: | Height: | Size: 1.7 KiB |
After Width: | Height: | Size: 2.0 KiB |
After Width: | Height: | Size: 2.0 KiB |
|
@ -123,8 +123,7 @@ export function HieimpMap() {
|
|||
// debugger;
|
||||
|
||||
// 获取图层信息
|
||||
L.supermap && L.supermap
|
||||
.layerInfoService && L.supermap
|
||||
L.supermap && L.supermap.layerInfoService && L.supermap
|
||||
.layerInfoService(_mapConfig.config.QUERY_URL)
|
||||
.getLayersInfo(function (result) {
|
||||
// doSomething
|
||||
|
|
|
@ -21,6 +21,7 @@ const restoreIconObj = {
|
|||
}
|
||||
const progress = document.getElementById('progress')
|
||||
const progressBar = document.getElementById('progress-bar')
|
||||
|
||||
function updateProgressBar(processed, total, elapsed, layersArray) {
|
||||
if (elapsed > 1000) {
|
||||
// if it takes more than a second to load, display the progress bar:
|
||||
|
@ -64,6 +65,14 @@ function createMarkerClusterLayer(layerClassName) {
|
|||
} else {
|
||||
// 使用默认图标
|
||||
markerClusterLayer = L.markerClusterGroup({
|
||||
iconCreateFunction(cluster) {
|
||||
const markers = cluster.getAllChildMarkers()
|
||||
let n = 0
|
||||
for (let i = 0; i < markers.length; i++) {
|
||||
n += markers[i].number
|
||||
}
|
||||
return L.divIcon({ html: markers.length, className: "topic-marker-cluster-video" })
|
||||
},
|
||||
// 是否允许指定 PolylineOptions 样式 spider
|
||||
spiderfyOnMaxZoom: true,
|
||||
// 是否显示标记的边界
|
||||
|
@ -111,8 +120,7 @@ function chunkData(data, doChunk, chunkCompleted) {
|
|||
* @param layerGroup
|
||||
* @return {*|void} layer对象,可以直接用map的removeLayer删除
|
||||
*/
|
||||
function addPointOnMap(
|
||||
{
|
||||
function addPointOnMap({
|
||||
feature,
|
||||
iconSize = [48, 48],
|
||||
iconUrl = 'poi.png',
|
||||
|
@ -134,8 +142,7 @@ function addPointOnMap(
|
|||
// 区分是否是自定义div图标
|
||||
if (isCustomIcon) {
|
||||
iconHtml = iconHtml || createDefaultDivIcon()
|
||||
icon = createDefaultFeatureStyle(
|
||||
{ img: iconUrl, iconSize: iconSize },
|
||||
icon = createDefaultFeatureStyle({ img: iconUrl, iconSize: iconSize },
|
||||
iconHtml,
|
||||
iconClassName
|
||||
)
|
||||
|
@ -171,12 +178,12 @@ function addPointOnMap(
|
|||
})
|
||||
}
|
||||
|
||||
return isOpenPopup
|
||||
? marker
|
||||
return isOpenPopup ?
|
||||
marker
|
||||
.addTo(mapObj.map)
|
||||
.bindPopup(elementHtml, { className: popupClassName })
|
||||
.openPopup()
|
||||
: marker.addTo(mapObj.map)
|
||||
.openPopup() :
|
||||
marker.addTo(mapObj.map)
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -196,9 +203,9 @@ function createPromiseByQueryService(idArray = [], layerConfigInfo, type = '') {
|
|||
authorityFilter = 'SMID > 0'
|
||||
} else if (idArray.length <= 1000) {
|
||||
const authorityFilter1 = "'" + idArray.join("','") + "'"
|
||||
authorityFilter = type
|
||||
? `CAMERA_INDEX_CODE in (${authorityFilter1})`
|
||||
: `UUID in (${authorityFilter1})`
|
||||
authorityFilter = type ?
|
||||
`CAMERA_INDEX_CODE in (${authorityFilter1})` :
|
||||
`UUID in (${authorityFilter1})`
|
||||
} else {
|
||||
// 当UUID的个数大于1000
|
||||
const count = Math.floor(idArray.length / 1000) // 向下取整
|
||||
|
@ -209,9 +216,9 @@ function createPromiseByQueryService(idArray = [], layerConfigInfo, type = '') {
|
|||
const authorityFilterString = "'" + indexCodeSplice.join("','") + "'"
|
||||
const authorityFilterSplice = `CAMERA_INDEX_CODE in (${authorityFilterString})`
|
||||
authorityFilter =
|
||||
i === 0
|
||||
? authorityFilterSplice
|
||||
: `${authorityFilter} or ${authorityFilterSplice}`
|
||||
i === 0 ?
|
||||
authorityFilterSplice :
|
||||
`${authorityFilter} or ${authorityFilterSplice}`
|
||||
}
|
||||
} else {
|
||||
for (let i = 0; i <= count; i++) {
|
||||
|
@ -219,9 +226,9 @@ function createPromiseByQueryService(idArray = [], layerConfigInfo, type = '') {
|
|||
const authorityFilterString = "'" + indexCodeSplice.join("','") + "'"
|
||||
const authorityFilterSplice = `UUID in (${authorityFilterString})`
|
||||
authorityFilter =
|
||||
i === 0
|
||||
? authorityFilterSplice
|
||||
: `${authorityFilter} or ${authorityFilterSplice}`
|
||||
i === 0 ?
|
||||
authorityFilterSplice :
|
||||
`${authorityFilter} or ${authorityFilterSplice}`
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -271,9 +278,8 @@ function addResourceOnMapNew(
|
|||
// 创建图层
|
||||
let layers = null
|
||||
// 判断是否是聚合图层
|
||||
layers = layerConfig.cluster.flag
|
||||
? createMarkerClusterLayer(layerConfig.cluster.clusterName)
|
||||
: []
|
||||
layers = layerConfig.cluster.flag ?
|
||||
createMarkerClusterLayer(layerConfig.cluster.clusterName) : []
|
||||
|
||||
// 该promise用于将资源要素聚合图层添加到地图上,添加完毕之后,把状态置为已决议
|
||||
return new Promise((resolve) => {
|
||||
|
@ -347,8 +353,7 @@ function addResourceOnMapNew(
|
|||
* @return {*}
|
||||
* @private
|
||||
*/
|
||||
function addResourceOnMap(
|
||||
{
|
||||
function addResourceOnMap({
|
||||
features,
|
||||
layerName,
|
||||
layerConfigInfo,
|
||||
|
@ -658,8 +663,7 @@ function addResourceOnMapWithoutSuperMap(
|
|||
feature.traveladdress +
|
||||
'(' +
|
||||
feature.count +
|
||||
'次)</span></p>',
|
||||
{
|
||||
'次)</span></p>', {
|
||||
permanent: true,
|
||||
}
|
||||
)
|
||||
|
@ -795,8 +799,7 @@ function addPointsToMap(
|
|||
* @return {*}
|
||||
* @private
|
||||
*/
|
||||
function addResourceOnMapWithoutSuper(
|
||||
{
|
||||
function addResourceOnMapWithoutSuper({
|
||||
features,
|
||||
layerName,
|
||||
layerConfigInfo,
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
/*
|
||||
* @Author: hisense.wuhongjian
|
||||
* @Date: 2022-03-29 17:48:03
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-04-25 17:47:09
|
||||
* @LastEditors: Light
|
||||
* @LastEditTime: 2022-10-10 16:56:17
|
||||
* @Description: 告诉大家这是什么
|
||||
*/
|
||||
import { storage, tokenTableName } from '@/config'
|
||||
|
@ -42,7 +42,8 @@ export function setAccessToken(accessToken) {
|
|||
} else if ('sessionStorage' === storage) {
|
||||
return sessionStorage.setItem(tokenTableName, accessToken)
|
||||
} else if ('cookie' === storage) {
|
||||
return cookie.set(tokenTableName, accessToken)
|
||||
let expires = new Date(new Date() * 1 + 12 * 60 * 60 * 1000)
|
||||
return cookie.set(tokenTableName, accessToken, { expires: expires })
|
||||
// return cookie.set(tokenTableName, '213124123412341234')
|
||||
} else {
|
||||
return localStorage.setItem(tokenTableName, accessToken)
|
||||
|
|
|
@ -11,13 +11,8 @@ import store from '@/store'
|
|||
import qs from 'qs'
|
||||
import router from '@/router'
|
||||
// import { isArray } from '@/utils/validate'
|
||||
import {
|
||||
message
|
||||
} from 'ant-design-vue'
|
||||
import {
|
||||
getAccessToken,
|
||||
setAccessToken
|
||||
} from '@/utils/accessToken'
|
||||
import { message } from 'ant-design-vue'
|
||||
import { getAccessToken, setAccessToken } from '@/utils/accessToken'
|
||||
|
||||
let loadingInstance
|
||||
|
||||
|
@ -31,12 +26,15 @@ const handleCode = (code, msg, res) => {
|
|||
// debugger
|
||||
switch (code) {
|
||||
case 401:
|
||||
debugger
|
||||
store.dispatch('user/resetAll').catch(() => {})
|
||||
break
|
||||
case 403:
|
||||
router.push({
|
||||
path: '/401'
|
||||
}).catch(() => {})
|
||||
router
|
||||
.push({
|
||||
path: '/401',
|
||||
})
|
||||
.catch(() => {})
|
||||
break
|
||||
case 500:
|
||||
message.error(msg || '接口异常')
|
||||
|
@ -101,19 +99,19 @@ instance.interceptors.response.use(
|
|||
console.log('接口返回headers', response.headers)
|
||||
console.log('接口返回REDIRECT', response.headers.redirect)
|
||||
response['Access-Control-Expose-Headers'] = 'redirect'
|
||||
const {
|
||||
code,
|
||||
message
|
||||
} = response.data
|
||||
const { code, message } = response.data
|
||||
|
||||
if (response.headers.token) {
|
||||
setAccessToken(response.headers.token)
|
||||
}
|
||||
if (response.headers.redirect) {
|
||||
const _old_href = window.location.href.split('#')[0]
|
||||
const _new_href = response.headers.redirect.split('#')[0]
|
||||
window.location.replace(response.headers.redirect)
|
||||
// setTimeout(() => {
|
||||
// url 相同,强制刷新
|
||||
if (_old_href === _new_href) {
|
||||
location.reload()
|
||||
// }, 1000)
|
||||
}
|
||||
return response
|
||||
}
|
||||
if (response.headers.redirect === '/#/login') {
|
||||
|
@ -139,7 +137,7 @@ instance.interceptors.response.use(
|
|||
location.reload()
|
||||
}, 1000)
|
||||
}
|
||||
handleCode(code, message, response.headers)
|
||||
handleCode(code, message || response.data.msg, response.headers)
|
||||
if (loadingInstance) loadingInstance.close()
|
||||
// const { data, config } = response
|
||||
// const { code, msg } = data
|
||||
|
@ -163,14 +161,14 @@ instance.interceptors.response.use(
|
|||
console.log('接口error', error)
|
||||
if (loadingInstance) loadingInstance.close()
|
||||
|
||||
const {
|
||||
response,
|
||||
message
|
||||
} = error
|
||||
const { response, message } = error
|
||||
if (error.response) {
|
||||
console.log('接口返回', response)
|
||||
console.log('接口返回headers', response.headers)
|
||||
console.log('接口返回REDIRECT', response.headers.redirect)
|
||||
const { status, data } = response
|
||||
|
||||
handleCode(status, data.msg || message, response.headers.redirect)
|
||||
if (response.headers.token) {
|
||||
setAccessToken(response.headers.token)
|
||||
}
|
||||
|
@ -178,17 +176,10 @@ instance.interceptors.response.use(
|
|||
window.location.replace(response.headers.redirect)
|
||||
return Promise.resolve()
|
||||
}
|
||||
const {
|
||||
status,
|
||||
data
|
||||
} = response
|
||||
|
||||
handleCode(status, data.msg || message, response.headers.redirect)
|
||||
return Promise.reject(error)
|
||||
} else {
|
||||
let {
|
||||
message
|
||||
} = error
|
||||
let { message } = error
|
||||
if (message === 'Network Error') {
|
||||
message = '后端接口连接异常'
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
* @Author: hisense.wuhongjian
|
||||
* @Date: 2022-04-01 17:23:11
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-07-18 18:45:20
|
||||
* @LastEditTime: 2022-10-11 13:59:18
|
||||
* @Description: 告诉大家这是什么
|
||||
*/
|
||||
/**
|
||||
|
@ -26,7 +26,7 @@ router.beforeEach(async (to, from, next) => {
|
|||
// if (SSOTOKEN) {
|
||||
// setAccessToken(SSOTOKEN)
|
||||
// }
|
||||
|
||||
console.log('验证白名单', routesWhiteList)
|
||||
const token = getAccessToken()
|
||||
console.log('token', token)
|
||||
let hasToken = token
|
||||
|
@ -45,6 +45,7 @@ router.beforeEach(async (to, from, next) => {
|
|||
router.addRoute(item)
|
||||
})
|
||||
if (routesWhiteList.indexOf(to.path) !== -1) {
|
||||
debugger
|
||||
next()
|
||||
} else {
|
||||
// 这里是一个单点登录的入口
|
||||
|
|
|
@ -15,11 +15,38 @@
|
|||
></div>
|
||||
<div class="name">{{ item.type }}</div>
|
||||
<div class="organization-value">
|
||||
<span class="num">{{ item.amount }}</span>
|
||||
<a-tooltip
|
||||
placement="top"
|
||||
v-if="
|
||||
useName === 'admin' &&
|
||||
(item.type === '已上架部门数' ||
|
||||
item.type === '用户量' ||
|
||||
item.type === '资源申请量')
|
||||
"
|
||||
>
|
||||
<template #title>点击查看详情</template>
|
||||
<!-- 临时临时临时 -->
|
||||
<span
|
||||
v-show="item.type === '用户量'"
|
||||
class="hover-click num"
|
||||
@click="showDetail(item.type)"
|
||||
>
|
||||
482
|
||||
</span>
|
||||
<span
|
||||
v-show="item.type !== '用户量'"
|
||||
class="hover-click num"
|
||||
@click="showDetail(item.type)"
|
||||
>
|
||||
{{ item.amount }}
|
||||
</span>
|
||||
</a-tooltip>
|
||||
<span v-else class="num">
|
||||
{{ item.amount }}
|
||||
</span>
|
||||
<span class="organization">{{ item.organization }}</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="shuxian"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -27,19 +54,25 @@
|
|||
</template>
|
||||
<script setup>
|
||||
import { ref } from 'vue'
|
||||
import { useStore } from 'vuex'
|
||||
import { totalResourceAggregation } from '@/api/abilityStatistics.js'
|
||||
let photo = ref([
|
||||
require('../../../assets/abilityStatistics/Volume-of-covered-sectors.png'),
|
||||
require('../../../assets/abilityStatistics/pingtaifangwenliang.png'),
|
||||
require('../../../assets/abilityStatistics/yonghuliang.png'),
|
||||
require('../../../assets/abilityStatistics/Volume-of-covered-sectors.png'),
|
||||
require('../../../assets/abilityStatistics/ziyuanhuijusnum.png'),
|
||||
require('../../../assets/abilityStatistics/ziyuanshenqingliang.png'),
|
||||
])
|
||||
let dataList = ref([])
|
||||
const store = useStore()
|
||||
// 用户信息
|
||||
const useName = ref(store.getters['user/username'])
|
||||
///whole_amount接口
|
||||
function snum() {
|
||||
totalResourceAggregation().then((res) => {
|
||||
dataList.value = res.data.data
|
||||
console.log('res.data.data------------>', res.data.data)
|
||||
|
||||
res.data.data.map((item, index) => {
|
||||
console.log('dataList', dataList.value)
|
||||
switch (item.type) {
|
||||
|
@ -55,7 +88,8 @@
|
|||
case '用户量':
|
||||
dataList.value[index].organization = '人'
|
||||
break
|
||||
case '覆盖部门量':
|
||||
// case '覆盖部门量':
|
||||
case '资源汇聚部门量':
|
||||
dataList.value[index].organization = '个'
|
||||
break
|
||||
}
|
||||
|
@ -65,6 +99,22 @@
|
|||
})
|
||||
}
|
||||
snum()
|
||||
const showDetail = function (type) {
|
||||
switch (type) {
|
||||
case '已上架部门数':
|
||||
window.open(window.SITE_CONFIG.backUrl + '/#/sys-dept', '_blank')
|
||||
break
|
||||
case '用户量':
|
||||
window.open(window.SITE_CONFIG.backUrl + '/#/sys-user', '_blank')
|
||||
break
|
||||
case '资源申请量':
|
||||
window.open(
|
||||
window.SITE_CONFIG.backUrl + '/#/abilityStatistics-index',
|
||||
'_blank'
|
||||
)
|
||||
break
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
@font-face {
|
||||
|
@ -81,6 +131,9 @@
|
|||
font-size: 32px;
|
||||
font-weight: 600;
|
||||
}
|
||||
.hover-click {
|
||||
cursor: pointer;
|
||||
}
|
||||
.ability-total {
|
||||
background: #f1f4fb;
|
||||
font-size: 18px;
|
||||
|
|
|
@ -1,3 +1,10 @@
|
|||
<!--
|
||||
* @Author: hisense.wuhongjian
|
||||
* @Date: 2022-07-05 12:53:04
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-10-13 15:29:14
|
||||
* @Description: 告诉大家这是什么
|
||||
-->
|
||||
<template>
|
||||
<div class="footer">
|
||||
<div class="fotter-son">
|
||||
|
@ -18,10 +25,10 @@
|
|||
<script setup>
|
||||
import { reactive } from 'vue'
|
||||
let dataList = reactive([
|
||||
{
|
||||
name: '鲁IC备00000000号',
|
||||
value: '政府标识码3702000106',
|
||||
},
|
||||
// {
|
||||
// name: '鲁IC备00000000号',
|
||||
// value: '政府标识码3702000106',
|
||||
// },
|
||||
{
|
||||
name: '版权所有:青岛市大数据发展管理局',
|
||||
value: '地址:山东省青岛市香港中路17号市级机关办公楼',
|
||||
|
|
|
@ -47,7 +47,7 @@
|
|||
<div class="center"></div>
|
||||
<div class="right" id="right"></div>
|
||||
<!-- <div class="right-son1">汇聚量</div> -->
|
||||
<div class="right-son2">部门数</div>
|
||||
<div class="right-son2">上架资源部门分布</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 来源部门 -->
|
||||
|
@ -63,6 +63,7 @@
|
|||
} from '@/api/abilityStatistics.js'
|
||||
// import { zywMessage } from '@/api/home'
|
||||
import * as echarts from 'echarts'
|
||||
import { message } from 'ant-design-vue'
|
||||
//各类资源汇聚量
|
||||
let dataList = ref({
|
||||
title: '各类资源汇聚量',
|
||||
|
@ -92,63 +93,84 @@
|
|||
// // if (dataList.value.dataList[index].type === '数据资源') {
|
||||
// // dataList.value.dataList[index].amount = dataSourceNum.value || 0
|
||||
// // }
|
||||
// dataList.value.dataList[index].organization = '个'
|
||||
// dataList.value.dataList[index].organization = '项'
|
||||
// dataList.value.dataList[index].photo = photo.value[index]
|
||||
// })
|
||||
// })
|
||||
// }
|
||||
selectTotal().then((res) => {
|
||||
console.log('selectTotal===============>', res.data.data)
|
||||
// res.data.data.map((item, index) => {
|
||||
// dataList.value.dataList[index].organization = '个'
|
||||
// dataList.value.dataList[index].photo = photo.value[index]
|
||||
// })
|
||||
console.log('selectTotal===============>', res)
|
||||
if (res.data.code !== 0) {
|
||||
return message.error(res.data.msg)
|
||||
}
|
||||
let imgObj = {
|
||||
组件服务: require('../../../assets/abilityStatistics/banner-zj.png'),
|
||||
应用资源: require('../../../assets/abilityStatistics/banner-yy.png'),
|
||||
基础设施: require('../../../assets/abilityStatistics/banner-jc.png'),
|
||||
数据资源: require('../../../assets/abilityStatistics/banner-sj.png'),
|
||||
知识库: require('../../../assets/abilityStatistics/banner-zs.png'),
|
||||
}
|
||||
res.data.data.total.forEach((val) => {
|
||||
switch (val.type) {
|
||||
case '组件服务':
|
||||
dataList.value.dataList.push({
|
||||
organization: '个',
|
||||
type: '组件服务',
|
||||
photo: require('../../../assets/abilityStatistics/banner-zj.png'),
|
||||
let _obj = {
|
||||
organization: '项',
|
||||
type: val.type,
|
||||
photo: val.type && imgObj[val.type],
|
||||
amount: val.count,
|
||||
})
|
||||
break
|
||||
case '应用资源':
|
||||
dataList.value.dataList.push({
|
||||
organization: '个',
|
||||
type: '应用资源',
|
||||
photo: require('../../../assets/abilityStatistics/banner-yy.png'),
|
||||
amount: val.count,
|
||||
})
|
||||
break
|
||||
case '基础设施':
|
||||
}
|
||||
if (val.type == '基础设施') {
|
||||
if (uavAndIndividualSoldier.num) {
|
||||
val.count = val.count - 0 + uavAndIndividualSoldier.num
|
||||
_obj.amount = val.count - 0 + uavAndIndividualSoldier.num
|
||||
}
|
||||
dataList.value.dataList.push({
|
||||
organization: '个',
|
||||
type: '基础设施',
|
||||
photo: require('../../../assets/abilityStatistics/banner-jc.png'),
|
||||
amount: val.count,
|
||||
})
|
||||
break
|
||||
case '数据资源':
|
||||
dataList.value.dataList.push({
|
||||
organization: '个',
|
||||
type: '数据资源',
|
||||
photo: require('../../../assets/abilityStatistics/banner-sj.png'),
|
||||
amount: val.count,
|
||||
})
|
||||
break
|
||||
case '知识库':
|
||||
dataList.value.dataList.push({
|
||||
organization: '个',
|
||||
type: '知识库',
|
||||
photo: require('../../../assets/abilityStatistics/banner-zs.png'),
|
||||
amount: val.count,
|
||||
})
|
||||
break
|
||||
}
|
||||
if (val.type == '知识库') {
|
||||
_obj.organization = '条'
|
||||
}
|
||||
dataList.value.dataList.push(_obj)
|
||||
// switch (val.type) {
|
||||
// case '组件服务':
|
||||
// dataList.value.dataList.push({
|
||||
// organization: '项',
|
||||
// type: '组件服务',
|
||||
// photo: require('../../../assets/abilityStatistics/banner-zj.png'),
|
||||
// amount: val.count,
|
||||
// })
|
||||
// break
|
||||
// case '应用资源':
|
||||
// dataList.value.dataList.push({
|
||||
// organization: '项',
|
||||
// type: '应用资源',
|
||||
// photo: require('../../../assets/abilityStatistics/banner-yy.png'),
|
||||
// amount: val.count,
|
||||
// })
|
||||
// break
|
||||
// case '基础设施':
|
||||
// if (uavAndIndividualSoldier.num) {
|
||||
// val.count = val.count - 0 + uavAndIndividualSoldier.num
|
||||
// }
|
||||
// dataList.value.dataList.push({
|
||||
// organization: '项',
|
||||
// type: '基础设施',
|
||||
// photo: require('../../../assets/abilityStatistics/banner-jc.png'),
|
||||
// amount: val.count,
|
||||
// })
|
||||
// break
|
||||
// case '数据资源':
|
||||
// dataList.value.dataList.push({
|
||||
// organization: '项',
|
||||
// type: '数据资源',
|
||||
// photo: require('../../../assets/abilityStatistics/banner-sj.png'),
|
||||
// amount: val.count,
|
||||
// })
|
||||
// break
|
||||
// case '知识库':
|
||||
// dataList.value.dataList.push({
|
||||
// organization: '项',
|
||||
// type: '知识库',
|
||||
// photo: require('../../../assets/abilityStatistics/banner-zs.png'),
|
||||
// amount: val.count,
|
||||
// })
|
||||
// break
|
||||
// }
|
||||
})
|
||||
let arr = ['组件服务', '应用资源', '基础设施', '数据资源', '知识库']
|
||||
dataList.value.dataList.sort((a, b) => {
|
||||
|
@ -189,6 +211,7 @@
|
|||
})
|
||||
}
|
||||
console.log('laiyuanDataList.value', laiyuanDataList.value)
|
||||
funnelPlot(laiyuanDataList.value)
|
||||
})
|
||||
}
|
||||
//来源部门饼图
|
||||
|
@ -294,91 +317,252 @@
|
|||
}
|
||||
//来源部门漏斗图
|
||||
const funnelPlot = (dataList) => {
|
||||
// let arr = ['0-5', '5-10', '10-15', '15-20', '20以上']
|
||||
// dataList.sort((a, b) => {
|
||||
// console.log(arr.indexOf(a.fanwei), arr.indexOf(b.fanwei))
|
||||
// return arr.indexOf(b.fanwei) - arr.indexOf(a.fanwei)
|
||||
// })
|
||||
// 排序
|
||||
let arrCopy = ['0-5', '5-10', '10-15', '15-20', '20以上']
|
||||
// 真实数据
|
||||
dataList.sort((a, b) => {
|
||||
return Number(a.value) - Number(b.value)
|
||||
})
|
||||
|
||||
let _arr = dataList.map((v) => v.fanwei) || arrCopy
|
||||
// 数据配置形成金字塔形状固定
|
||||
let chartData = _arr.map((v, i) => {
|
||||
return {
|
||||
name: v,
|
||||
value: 10 + 10 * i,
|
||||
}
|
||||
})
|
||||
|
||||
let newArr = []
|
||||
dataList.map((v) => {
|
||||
if (v.value && Number(v.value > 0)) {
|
||||
newArr.push({
|
||||
name: v.fanwei,
|
||||
value: v.value,
|
||||
})
|
||||
}
|
||||
})
|
||||
console.log('============》', dataList)
|
||||
dataList = dataList.reverse()
|
||||
echarts.init(document.getElementById('right')).dispose()
|
||||
let chartDom = document.getElementById('right')
|
||||
let myChart = echarts.init(chartDom)
|
||||
let option
|
||||
// let option = {
|
||||
// tooltip: {
|
||||
// trigger: 'item',
|
||||
// formatter: function (info) {
|
||||
// let _obj = dataList.find((v) => v.fanwei == info.data.name) || {}
|
||||
// let dom = ref()
|
||||
// dom.value =
|
||||
// '部门数<br/>' +
|
||||
// (_obj.fanwei || '--') +
|
||||
// ' : ' +
|
||||
// (_obj.value || _obj.value === 0 ? _obj.value : '--') +
|
||||
// '项'
|
||||
// console.log('name', info.data)
|
||||
// return dom.value
|
||||
// },
|
||||
// },
|
||||
// grid: {
|
||||
// height: '65%',
|
||||
// width: '45%',
|
||||
// left: '20%',
|
||||
// bottom: 30,
|
||||
// },
|
||||
// xAxis: {
|
||||
// show: false,
|
||||
// type: 'category',
|
||||
// data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
|
||||
// },
|
||||
// yAxis: {
|
||||
// show: false,
|
||||
// type: 'value',
|
||||
// min: 0,
|
||||
// max: 20,
|
||||
// },
|
||||
// series: [
|
||||
// {
|
||||
// name: '部门数',
|
||||
// type: 'funnel',
|
||||
// left: '28%',
|
||||
// right: '35%',
|
||||
// top: '15%',
|
||||
// bottom: '10%',
|
||||
// minSize: '0%',
|
||||
// maxSize: '100%',
|
||||
// sort: 'ascending',
|
||||
// label: {
|
||||
// show: true,
|
||||
// formatter: function (info) {
|
||||
// let _obj = dataList.find((v) => v.fanwei == info.data.name) || {}
|
||||
// let dom = ref()
|
||||
// dom.value =
|
||||
// (_obj.fanwei || '--') +
|
||||
// ' : ' +
|
||||
// (_obj.value || _obj.value === 0 ? _obj.value : '--') +
|
||||
// '项'
|
||||
// console.log('name', info.data)
|
||||
// return dom.value
|
||||
// },
|
||||
// rich: {
|
||||
// b: {
|
||||
// fontSize: 14,
|
||||
// },
|
||||
// },
|
||||
// },
|
||||
// labelLine: {
|
||||
// length: 40,
|
||||
// lineStyle: {
|
||||
// width: 1,
|
||||
// type: 'solid',
|
||||
// },
|
||||
// },
|
||||
// itemStyle: {
|
||||
// borderColor: '#fff',
|
||||
// borderWidth: 1,
|
||||
// },
|
||||
// emphasis: {
|
||||
// label: {
|
||||
// fontSize: 20,
|
||||
// },
|
||||
// },
|
||||
// data: chartData,
|
||||
// },
|
||||
// ],
|
||||
// }
|
||||
|
||||
option = {
|
||||
let option = {
|
||||
// title: {
|
||||
// text: '汇聚量',
|
||||
// text: 'ECharts 入门示例'
|
||||
// },
|
||||
tooltip: {
|
||||
trigger: 'item',
|
||||
formatter: function (name) {
|
||||
formatter: function (info) {
|
||||
let _obj = dataList.find((v) => v.fanwei == info.name) || {}
|
||||
let dom = ref()
|
||||
dom.value =
|
||||
'部门数<br/>' + name.data.fanwei + ' : ' + name.data.value + '个'
|
||||
console.log('name', name.data)
|
||||
'部门数<br/>' +
|
||||
(_obj.fanwei || '--') +
|
||||
' : ' +
|
||||
(_obj.value || _obj.value === 0 ? _obj.value : '--') +
|
||||
'个'
|
||||
console.log('name', info)
|
||||
return dom.value
|
||||
},
|
||||
},
|
||||
grid: {
|
||||
height: '65%',
|
||||
width: '45%',
|
||||
left: '20%',
|
||||
bottom: 30,
|
||||
legend: {
|
||||
data: [],
|
||||
},
|
||||
xAxis: {
|
||||
show: false,
|
||||
type: 'category',
|
||||
data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
|
||||
name: '上架数量区间',
|
||||
data: [],
|
||||
},
|
||||
yAxis: {
|
||||
show: false,
|
||||
type: 'value',
|
||||
min: 0,
|
||||
max: 20,
|
||||
name: '部门数量(个)',
|
||||
},
|
||||
grid: {
|
||||
height: '65%',
|
||||
width: '63%',
|
||||
left: '12%',
|
||||
bottom: 30,
|
||||
},
|
||||
series: [
|
||||
{
|
||||
name: '部门数',
|
||||
type: 'funnel',
|
||||
left: '20%',
|
||||
top: '10%',
|
||||
width: '60%',
|
||||
height: '80%',
|
||||
min: 0,
|
||||
max: 100,
|
||||
minSize: '0%',
|
||||
maxSize: '100%',
|
||||
sort: 'ascending',
|
||||
gap: 2,
|
||||
label: {
|
||||
show: true,
|
||||
position: 'inside',
|
||||
},
|
||||
labelLine: {
|
||||
length: 10,
|
||||
lineStyle: {
|
||||
width: 1,
|
||||
type: 'solid',
|
||||
},
|
||||
},
|
||||
name: '',
|
||||
type: 'bar',
|
||||
barWidth: 35,
|
||||
barGap: '-100%',
|
||||
itemStyle: {
|
||||
borderColor: '#fff',
|
||||
borderWidth: 1,
|
||||
},
|
||||
emphasis: {
|
||||
label: {
|
||||
fontSize: 20,
|
||||
normal: {
|
||||
color: '#C1232B',
|
||||
},
|
||||
},
|
||||
data: dataList,
|
||||
// data: [5, 20, 36, 10, 10, 20]
|
||||
data: [],
|
||||
},
|
||||
{
|
||||
data: [],
|
||||
name: '',
|
||||
type: 'bar',
|
||||
barWidth: 35,
|
||||
barGap: '-100%',
|
||||
itemStyle: {
|
||||
normal: {
|
||||
color: '#B5C334',
|
||||
},
|
||||
},
|
||||
// data: [5, 20, 36, 10, 10, 20]
|
||||
data: [],
|
||||
},
|
||||
{
|
||||
name: '',
|
||||
type: 'bar',
|
||||
barWidth: 35,
|
||||
barGap: '-100%',
|
||||
itemStyle: {
|
||||
normal: {
|
||||
color: '#FCCE10',
|
||||
},
|
||||
},
|
||||
// data: [5, 20, 36, 10, 10, 20]
|
||||
data: [],
|
||||
},
|
||||
{
|
||||
name: '',
|
||||
type: 'bar',
|
||||
barWidth: 35,
|
||||
barGap: '-100%',
|
||||
itemStyle: {
|
||||
normal: {
|
||||
color: '#E87C25',
|
||||
},
|
||||
},
|
||||
// data: [5, 20, 36, 10, 10, 20]
|
||||
data: [],
|
||||
},
|
||||
{
|
||||
name: '',
|
||||
type: 'bar',
|
||||
barWidth: 35,
|
||||
barGap: '-100%',
|
||||
itemStyle: {
|
||||
normal: {
|
||||
color: '#27727B',
|
||||
},
|
||||
},
|
||||
// data: [5, 20, 36, 10, 10, 20]
|
||||
data: [],
|
||||
},
|
||||
{
|
||||
name: '',
|
||||
type: 'bar',
|
||||
barWidth: 35,
|
||||
barGap: '-100%',
|
||||
itemStyle: {
|
||||
normal: {
|
||||
color: '#FE8463',
|
||||
},
|
||||
},
|
||||
// data: [5, 20, 36, 10, 10, 20]
|
||||
data: [],
|
||||
},
|
||||
],
|
||||
}
|
||||
|
||||
option.legend.data = []
|
||||
option.xAxis.data = []
|
||||
dataList.map((val, index) => {
|
||||
// option.legend.data.push(val.fanwei)
|
||||
option.xAxis.data.push(val.fanwei)
|
||||
option.series[index].name = val.fanwei
|
||||
let arr = []
|
||||
for (let i = 0; i < 5; i++) {
|
||||
if (i == index) {
|
||||
arr.push(val.value)
|
||||
} else {
|
||||
arr.push(0)
|
||||
}
|
||||
}
|
||||
option.series[index].data = arr
|
||||
})
|
||||
option && myChart.setOption(option)
|
||||
}
|
||||
onMounted(() => {
|
||||
|
@ -393,30 +577,33 @@
|
|||
},
|
||||
{ deep: true }
|
||||
)
|
||||
watch(
|
||||
laiyuanDataList,
|
||||
(value) => {
|
||||
funnelPlot(value)
|
||||
console.log(value, ' laiyuanDataList')
|
||||
},
|
||||
{ deep: true }
|
||||
)
|
||||
// watch(
|
||||
// laiyuanDataList,
|
||||
// (value) => {
|
||||
// funnelPlot(value)
|
||||
// console.log(value, ' laiyuanDataList')
|
||||
// },
|
||||
// { deep: true }
|
||||
// )
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
@font-face {
|
||||
font-family: 'num-typeface';
|
||||
src: url('~@/assets/newHome/font/num-typeface.otf');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'text-typeface';
|
||||
src: url('~@/assets/newHome/font/text-typeface.otf');
|
||||
}
|
||||
|
||||
.num {
|
||||
font-family: num-typeface;
|
||||
font-size: 32px;
|
||||
font-weight: 600;
|
||||
margin-right: 5px;
|
||||
}
|
||||
|
||||
.hengxian {
|
||||
height: 3px;
|
||||
width: 30px;
|
||||
|
@ -424,6 +611,7 @@
|
|||
margin-top: 6px;
|
||||
background: #0058e1;
|
||||
}
|
||||
|
||||
.resource-aggregation {
|
||||
font-size: 18px;
|
||||
font-family: text-typeface;
|
||||
|
@ -432,6 +620,7 @@
|
|||
justify-content: center;
|
||||
background: #f3f5f9;
|
||||
padding-bottom: 60px;
|
||||
|
||||
.resource-aggregation-left {
|
||||
background: #fff;
|
||||
border: 1px solid #e6e9ed;
|
||||
|
@ -442,12 +631,14 @@
|
|||
padding: 20px;
|
||||
padding-top: 64px;
|
||||
position: relative;
|
||||
|
||||
.title {
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
font-size: 18px;
|
||||
color: #212121;
|
||||
}
|
||||
|
||||
.content {
|
||||
.content-son {
|
||||
.content-left {
|
||||
|
@ -459,10 +650,12 @@
|
|||
justify-content: space-between;
|
||||
align-items: center;
|
||||
border-radius: 1px;
|
||||
|
||||
.name {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
.name-photo {
|
||||
margin-left: 10px;
|
||||
display: inline-block;
|
||||
|
@ -471,11 +664,14 @@
|
|||
margin-right: 11px;
|
||||
}
|
||||
}
|
||||
|
||||
.organization-value {
|
||||
margin-right: 16px;
|
||||
|
||||
.num {
|
||||
font-size: 26px;
|
||||
}
|
||||
|
||||
span:nth-child(2) {
|
||||
font-size: 16px;
|
||||
}
|
||||
|
@ -484,6 +680,7 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.resource-aggregation-right {
|
||||
background: #fff;
|
||||
border: 1px solid #e6e9ed;
|
||||
|
@ -497,6 +694,7 @@
|
|||
position: relative;
|
||||
display: flex;
|
||||
padding-left: 120px;
|
||||
|
||||
.title {
|
||||
position: absolute;
|
||||
top: 20px;
|
||||
|
@ -504,6 +702,7 @@
|
|||
font-size: 18px;
|
||||
color: #212121;
|
||||
}
|
||||
|
||||
.bumensnum {
|
||||
width: 100px;
|
||||
position: absolute;
|
||||
|
@ -516,6 +715,7 @@
|
|||
background: rgba(0, 88, 225, 0.1);
|
||||
border-right: 1px solid rgba(0, 88, 225, 0.5);
|
||||
border-radius: 2px;
|
||||
|
||||
.bumensnum-photo {
|
||||
height: 50px;
|
||||
width: 50px;
|
||||
|
@ -523,46 +723,55 @@
|
|||
no-repeat;
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
|
||||
p {
|
||||
margin-top: 18px;
|
||||
color: #0058e1;
|
||||
|
||||
.num {
|
||||
font-size: 30px;
|
||||
}
|
||||
|
||||
span:last-child {
|
||||
font-size: 16px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.content {
|
||||
width: 779px;
|
||||
height: 313px;
|
||||
display: flex;
|
||||
position: relative;
|
||||
background: #f1f4fb;
|
||||
|
||||
.left {
|
||||
width: 373px;
|
||||
height: 313px;
|
||||
}
|
||||
|
||||
.center {
|
||||
height: 240px;
|
||||
width: 1px;
|
||||
margin-top: 31px;
|
||||
background: #d0d4de;
|
||||
}
|
||||
|
||||
.right {
|
||||
width: 406px;
|
||||
height: 313px;
|
||||
}
|
||||
|
||||
.right-son1 {
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
left: 52.5%;
|
||||
}
|
||||
|
||||
.right-son2 {
|
||||
position: absolute;
|
||||
top: 10px;
|
||||
left: 70.5%;
|
||||
left: 65.5%;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -187,6 +187,7 @@
|
|||
require('../../../assets/abilityStatistics/zujianfuwu-bg.png'),
|
||||
require('../../../assets/abilityStatistics/shujuziyuan-bg.png'),
|
||||
require('../../../assets/abilityStatistics/jichujianshe-bg.png'),
|
||||
require('../../../assets/abilityStatistics/yingyongziyuan-bg.png'),
|
||||
])
|
||||
let photo = ref([
|
||||
require('../../../assets/abilityStatistics/yingyongziyuan.png'),
|
||||
|
@ -194,33 +195,38 @@
|
|||
require('../../../assets/abilityStatistics/zujianfuwu.png'),
|
||||
require('../../../assets/abilityStatistics/shujuziyuan.png'),
|
||||
require('../../../assets/abilityStatistics/jichujianshe.png'),
|
||||
require('../../../assets/abilityStatistics/yingyongziyuan.png'),
|
||||
])
|
||||
//申请量接口
|
||||
let dataLists = ref([])
|
||||
const myApplyAmount = () => {
|
||||
applyAmount().then((res) => {
|
||||
// dataLists.value = res.data.data
|
||||
dataLists.value = []
|
||||
res.data.data.map((item) => {
|
||||
switch (item.type) {
|
||||
case '应用资源':
|
||||
dataLists.value[1] = item
|
||||
break
|
||||
case '业务组件':
|
||||
dataLists.value[0] = item
|
||||
break
|
||||
case '图层服务':
|
||||
dataLists.value[2] = item
|
||||
break
|
||||
case '开发组件':
|
||||
dataLists.value[3] = item
|
||||
break
|
||||
case '智能算法':
|
||||
dataLists.value[4] = item
|
||||
break
|
||||
default:
|
||||
dataLists.value.push(item)
|
||||
break
|
||||
}
|
||||
// switch (item.type) {
|
||||
// case '应用资源':
|
||||
// dataLists.value[0] = item
|
||||
// break
|
||||
// case '业务组件':
|
||||
// dataLists.value[1] = item
|
||||
// break
|
||||
// case '图层服务':
|
||||
// dataLists.value[1] = item
|
||||
// break
|
||||
// case '开发组件':
|
||||
// dataLists.value[2] = item
|
||||
// break
|
||||
// case '智能算法':
|
||||
// dataLists.value[4] = item
|
||||
// break
|
||||
// case '会客厅':
|
||||
// dataLists.value[5] = item
|
||||
// break
|
||||
// default:
|
||||
// dataLists.value.push(item)
|
||||
// break
|
||||
// }
|
||||
})
|
||||
photo.value.map((item, index) => {
|
||||
dataLists.value[index].photo = item
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
<new-home-header></new-home-header>
|
||||
<ability-total></ability-total>
|
||||
<resource-aggregation></resource-aggregation>
|
||||
<atlas-resources></atlas-resources>
|
||||
<!-- <atlas-resources></atlas-resources> -->
|
||||
<sharing-situation></sharing-situation>
|
||||
<ability-ranking></ability-ranking>
|
||||
<capability-requirements></capability-requirements>
|
||||
|
|
|
@ -11,28 +11,18 @@
|
|||
<span class="title">基础设施</span>
|
||||
</div>
|
||||
<div class="infrastructure-content">
|
||||
<div
|
||||
class="infrastructure-content-son"
|
||||
v-for="(item, index) in myDataList"
|
||||
:key="index"
|
||||
>
|
||||
<div
|
||||
class="num-class"
|
||||
:style="`background:url(${item.img}) no-repeat;background-position:top left;background-size:40%`"
|
||||
>
|
||||
<div class="infrastructure-content-son" v-for="(item, index) in myDataList" :key="index">
|
||||
<div class="num-class"
|
||||
:style="`background:url(${item.img}) no-repeat;background-position:top left;background-size:40%`">
|
||||
<div>{{ item.title }}</div>
|
||||
<div>{{ item.snum }}</div>
|
||||
</div>
|
||||
<div class="health-degree">
|
||||
<div class="health-degree-title">健康度</div>
|
||||
<a-progress
|
||||
:stroke-color="{
|
||||
<a-progress :stroke-color="{
|
||||
'0%': '#108ee9',
|
||||
'100%': '#87d068',
|
||||
}"
|
||||
:percent="item.percentage"
|
||||
:show-info="false"
|
||||
/>
|
||||
}" :percent="item.percentage" :show-info="false" />
|
||||
</div>
|
||||
<div class="percentage" :style="fontFormat(item.title)">
|
||||
{{ item.percentage }}%
|
||||
|
@ -44,6 +34,8 @@
|
|||
<script setup>
|
||||
import { ref } from 'vue'
|
||||
import { infrastructureInfo } from '@/api/capabilityCloud'
|
||||
const itShowXiHaiAn = whoShow.itShowXiHaiAn
|
||||
|
||||
let myDataList = ref([
|
||||
{
|
||||
title: '视频资源数量',
|
||||
|
@ -52,15 +44,15 @@
|
|||
img: require('../../../assets/capabilityCloud/infrastructure_sz.png'),
|
||||
},
|
||||
{
|
||||
title: '云资源',
|
||||
snum: '0',
|
||||
percentage: '0',
|
||||
title: itShowXiHaiAn ? '单兵设备' : '云资源',
|
||||
snum: itShowXiHaiAn ? '2' : 0,
|
||||
percentage: itShowXiHaiAn ? '100' : '0',
|
||||
img: require('../../../assets/capabilityCloud/infrastructure_yz.png'),
|
||||
},
|
||||
{
|
||||
title: '感知资源',
|
||||
snum: '0',
|
||||
percentage: '0',
|
||||
title: itShowXiHaiAn ? '无人机' : '感知资源',
|
||||
snum: itShowXiHaiAn ? '2' : 0,
|
||||
percentage: itShowXiHaiAn ? '100' : '0',
|
||||
img: require('../../../assets/capabilityCloud/infrastructure_gz.png'),
|
||||
},
|
||||
])
|
||||
|
@ -69,10 +61,10 @@
|
|||
case '视频资源数量':
|
||||
return 'color: #32ff91;'
|
||||
break
|
||||
case '云资源':
|
||||
case itShowXiHaiAn ? '单兵设备' : '云资源':
|
||||
return 'color: #f4fd25;'
|
||||
break
|
||||
case '感知资源':
|
||||
case itShowXiHaiAn ? '无人机' : '感知资源':
|
||||
return 'color: #ff1d18;'
|
||||
break
|
||||
}
|
||||
|
@ -95,6 +87,8 @@
|
|||
val.snum = obj.amount
|
||||
}
|
||||
})
|
||||
}).catch(err => {
|
||||
console.log('err------------>', err);
|
||||
})
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
|
@ -112,24 +106,27 @@
|
|||
-webkit-transition: all 100ms ease-out;
|
||||
-moz-transition: all 100ms ease-out;
|
||||
transition: all 100ms ease-out;
|
||||
|
||||
.infrastructure-top {
|
||||
width: 4.4rem;
|
||||
height: 0.44rem;
|
||||
position: absolute;
|
||||
top: 0;
|
||||
background: url('~@/assets/capabilityCloud/infrastructure_title.png')
|
||||
no-repeat;
|
||||
background: url('~@/assets/capabilityCloud/infrastructure_title.png') no-repeat;
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
line-height: 0.44rem;
|
||||
text-align: center;
|
||||
|
||||
.title {
|
||||
font-size: 0.24rem;
|
||||
}
|
||||
}
|
||||
|
||||
.infrastructure-content {
|
||||
width: 4rem;
|
||||
margin-top: 0.62rem;
|
||||
|
||||
.infrastructure-content-son {
|
||||
display: flex;
|
||||
width: 4rem;
|
||||
|
@ -139,11 +136,13 @@
|
|||
margin-bottom: 0.14rem;
|
||||
padding-left: 0.1rem;
|
||||
}
|
||||
|
||||
.num-class {
|
||||
width: 1.5rem;
|
||||
height: 1rem;
|
||||
text-align: center;
|
||||
margin-right: 0.2rem;
|
||||
|
||||
&>div:first-child {
|
||||
font-size: 0.18rem;
|
||||
color: #ffffff;
|
||||
|
@ -151,32 +150,39 @@
|
|||
line-height: 0.18rem;
|
||||
margin-top: 0.3rem;
|
||||
}
|
||||
|
||||
&>div:last-child {
|
||||
font-size: 0.36rem;
|
||||
line-height: 0.36rem;
|
||||
color: #1ce2e5;
|
||||
}
|
||||
}
|
||||
|
||||
.health-degree {
|
||||
width: 1.35rem;
|
||||
|
||||
.health-degree-title {
|
||||
font-size: 0.14rem;
|
||||
color: rgba(255, 255, 255, 0.6);
|
||||
margin-bottom: 0.08rem;
|
||||
}
|
||||
|
||||
:deep(.ant-progress-outer) {
|
||||
height: 0.27rem;
|
||||
}
|
||||
|
||||
:deep(.ant-progress-inner) {
|
||||
height: 0.27rem;
|
||||
border-radius: 0.14rem;
|
||||
border: 0.01rem solid rgba(8, 153, 231, 0.6);
|
||||
background: rgba(21, 65, 123, 0.6);
|
||||
|
||||
div {
|
||||
height: 0.27rem !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// .health-degree:
|
||||
.percentage {
|
||||
height: 0.57rem;
|
||||
|
@ -189,23 +195,29 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.infrastructure:hover {
|
||||
border: 2px solid;
|
||||
animation: turn 5s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes turn {
|
||||
0% {
|
||||
border-image: linear-gradient(to right, #003194, #00ffea) 1;
|
||||
}
|
||||
|
||||
25% {
|
||||
border-image: linear-gradient(to bottom, #003194, #00ffea) 1;
|
||||
}
|
||||
|
||||
50% {
|
||||
border-image: linear-gradient(to left, #003194, #00ffea) 1;
|
||||
}
|
||||
|
||||
75% {
|
||||
border-image: linear-gradient(to top, #003194, #00ffea) 1;
|
||||
}
|
||||
|
||||
100% {
|
||||
border-image: linear-gradient(to right, #003194, #00ffea) 1;
|
||||
}
|
||||
|
|
|
@ -300,6 +300,7 @@
|
|||
'应用名称',
|
||||
'应用描述',
|
||||
'应用类型',
|
||||
'应用状态',
|
||||
])
|
||||
const notFilled = ref([])
|
||||
getUser().then((res) => {
|
||||
|
@ -346,15 +347,15 @@
|
|||
) {
|
||||
notFilled.value.push('应用领域')
|
||||
}
|
||||
// if (
|
||||
// !dataFrom.value.infoList.filter(
|
||||
// (val) => val.attrType === '应用状态'
|
||||
// )[0] ||
|
||||
// !dataFrom.value.infoList.filter((val) => val.attrType === '应用状态')[0]
|
||||
// .attrValue
|
||||
// ) {
|
||||
// notFilled.value.push('应用状态')
|
||||
// }
|
||||
if (
|
||||
!dataFrom.value.infoList.filter(
|
||||
(val) => val.attrType === '应用状态'
|
||||
)[0] ||
|
||||
!dataFrom.value.infoList.filter((val) => val.attrType === '应用状态')[0]
|
||||
.attrValue
|
||||
) {
|
||||
notFilled.value.push('应用状态')
|
||||
}
|
||||
if (
|
||||
!dataFrom.value.infoList.filter(
|
||||
(val) => val.attrType === '应用类型'
|
||||
|
@ -373,6 +374,7 @@
|
|||
// ) {
|
||||
// notFilled.value.push('共享条件')
|
||||
// }
|
||||
|
||||
if (notFilled.value.length > 0) {
|
||||
message.warning('请填写必填字段')
|
||||
console.log(notFilled.value)
|
||||
|
|
|
@ -203,6 +203,7 @@
|
|||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<template v-else>
|
||||
<div class="bottom">
|
||||
<div
|
||||
|
@ -301,6 +302,16 @@
|
|||
:list="props.fileList2"
|
||||
tip="支持文件类型,大小不超过100M"
|
||||
></upload>
|
||||
<upload
|
||||
v-else-if="item.type == 'richText' && item.name == '技术文档'"
|
||||
type="文件"
|
||||
btnName="上传技术文档"
|
||||
:maxCount="1"
|
||||
:data="item"
|
||||
:busType="2"
|
||||
:list="props.fileList2"
|
||||
tip="支持.doc,.docx,.ppt,.pdf类型,大小不超过100M"
|
||||
></upload>
|
||||
<upload
|
||||
v-else-if="item.type == 'package' && item.name == '上传附件'"
|
||||
type="附件"
|
||||
|
|
|
@ -159,7 +159,7 @@
|
|||
width: unset;
|
||||
button {
|
||||
height: 30px;
|
||||
width: 100px;
|
||||
width: 120px;
|
||||
border: 1px solid #bbd3ef;
|
||||
border-radius: 6px;
|
||||
background: #edf4fc;
|
||||
|
|
|
@ -8,9 +8,7 @@
|
|||
></DetalsTitle>
|
||||
</div>
|
||||
<!-- 青岛市局 -->
|
||||
<div
|
||||
v-if="whoShow1 && whoShow1.itShowQingDao"
|
||||
style="width: 100%; display: flex; justify-content: center"
|
||||
<div style="width: 100%; display: flex; justify-content: center"
|
||||
>
|
||||
<div class="content" v-for="item in dataFrom.content" :key="item.title">
|
||||
<div class="content-left" v-if="item.titleType === '调用接口'">
|
||||
|
@ -162,127 +160,6 @@
|
|||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
<!-- 其他 -->
|
||||
<div v-else>
|
||||
<div class="content" v-for="item in dataFrom.content" :key="item.title">
|
||||
<div class="content-left" v-if="item.titleType === '调用接口'">
|
||||
<div class="left">
|
||||
<div class="content-left-title">
|
||||
<span>{{ item.title }}:{{ item.titleType }}</span>
|
||||
</div>
|
||||
<div class="content-left-content">
|
||||
<p>
|
||||
<span>{{ item.link.name }}</span>
|
||||
<a-tooltip>
|
||||
<template #title>{{ item.link.value }}</template>
|
||||
<span>{{ item.link.value }}</span>
|
||||
</a-tooltip>
|
||||
</p>
|
||||
<p>
|
||||
<span>{{ item.postMethod.name }}</span>
|
||||
<span>{{ item.postMethod.value }}</span>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div @click="technical()">技术文档</div>
|
||||
<!-- <div @click="technicalNew()">新手指引</div> -->
|
||||
<!-- <div @click="SDKClick()">SDK安装包</div> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-left" v-else-if="item.titleType === '平台对接'">
|
||||
<div class="left">
|
||||
<div class="content-left-title">
|
||||
<span>{{ item.title }}:{{ item.titleType }}</span>
|
||||
</div>
|
||||
<div class="content-left-content">
|
||||
<p>
|
||||
<span>{{ item.linkPlatform.name }}</span>
|
||||
<a-tooltip v-if="approveStatus == '通过'">
|
||||
<template #title>{{ item.linkPlatform.value }}</template>
|
||||
<span>{{ item.linkPlatform.value }}</span>
|
||||
</a-tooltip>
|
||||
<a-tooltip v-else>
|
||||
<template #title>请申请后查看平台地址</template>
|
||||
<span>****************</span>
|
||||
</a-tooltip>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div @click="technical()">技术文档</div>
|
||||
<!-- <div @click="technicalNew()">新手指引</div> -->
|
||||
<!-- <div @click="SDKClick()">SDK安装包</div> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-left" v-else-if="item.titleType === 'SDK'">
|
||||
<div class="left">
|
||||
<div class="content-left-title">
|
||||
<span>{{ item.title }}:{{ item.titleType }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div @click="technical()">技术文档</div>
|
||||
<!-- <div @click="technicalNew()">新手指引</div> -->
|
||||
<div @click="SDKClick()">SDK安装包</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-right">
|
||||
<div class="content-right-left">
|
||||
<div class="content-right-title">{{ item.contact }}</div>
|
||||
<div class="content-right-content">
|
||||
<p>
|
||||
<span>{{ item.facilitator.name }}</span>
|
||||
<a-tooltip>
|
||||
<template #title>{{ item.facilitator.value }}</template>
|
||||
<span>{{ item.facilitator.value }}</span>
|
||||
</a-tooltip>
|
||||
</p>
|
||||
<p>
|
||||
<span>{{ item.people.name }}</span>
|
||||
<a-tooltip>
|
||||
<template #title>{{ item.people.value }}</template>
|
||||
<span>{{ item.people.value }}</span>
|
||||
</a-tooltip>
|
||||
</p>
|
||||
<p>
|
||||
<span>{{ item.phone.name }}</span>
|
||||
<a-tooltip>
|
||||
<template #title>{{ item.phone.value }}</template>
|
||||
<span>{{ item.phone.value }}</span>
|
||||
</a-tooltip>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-right-right">
|
||||
<div class="content-right-title">{{ item.contact2 }}</div>
|
||||
<div class="content-right-content">
|
||||
<p>
|
||||
<span>{{ item.facilitator2.name }}</span>
|
||||
<a-tooltip>
|
||||
<template #title>{{ item.facilitator2.value }}</template>
|
||||
<span>{{ item.facilitator2.value }}</span>
|
||||
</a-tooltip>
|
||||
</p>
|
||||
<p>
|
||||
<span>{{ item.people2.name }}</span>
|
||||
<a-tooltip>
|
||||
<template #title>{{ item.people2.value }}</template>
|
||||
<span>{{ item.people2.value }}</span>
|
||||
</a-tooltip>
|
||||
</p>
|
||||
<p>
|
||||
<span>{{ item.phone2.name }}</span>
|
||||
<a-tooltip>
|
||||
<template #title>{{ item.phone2.value }}</template>
|
||||
<span>{{ item.phone2.value }}</span>
|
||||
</a-tooltip>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
|
|
@ -11,51 +11,38 @@
|
|||
<div class="main">
|
||||
<div class="main-left">
|
||||
<p>{{ dataFrom.linkName }}</p>
|
||||
<a-tooltip v-if="flag">
|
||||
<template #title>{{ dataFrom.link }}</template>
|
||||
<p style="cursor: pointer" @click="clickLink(dataFrom.link)">
|
||||
{{ dataFrom.link || '暂无' }}
|
||||
</p>
|
||||
</a-tooltip>
|
||||
<a-tooltip v-else>
|
||||
<a-tooltip>
|
||||
<template #title>请申请后查看</template>
|
||||
<p style="cursor: pointer; filter: blur(4px)">
|
||||
<!-- <p style="cursor: pointer; filter: blur(4px)">
|
||||
{{ dataFrom.link }}
|
||||
</p> -->
|
||||
<p style="cursor: pointer;"
|
||||
:class="{ 'blur-word': approveStatus == '通过' && whoShow1.itShowXiHaiAn ? false : true}">
|
||||
{{ dataFrom.link }}
|
||||
</p>
|
||||
</a-tooltip>
|
||||
</div>
|
||||
<div class="main-center">
|
||||
<p>{{ dataFrom.numberName }}</p>
|
||||
<a-tooltip v-if="flag">
|
||||
<template #title>{{ dataFrom.number }}</template>
|
||||
<p>{{ dataFrom.number || '暂无' }}</p>
|
||||
</a-tooltip>
|
||||
<a-tooltip v-else>
|
||||
<a-tooltip>
|
||||
<template #title>请申请后查看</template>
|
||||
<p style="filter: blur(4px)">{{ dataFrom.number }}</p>
|
||||
<!-- <p style="filter: blur(4px)">{{ dataFrom.number }}</p> -->
|
||||
<p :class="{ 'blur-word': approveStatus == '通过' && whoShow1.itShowXiHaiAn ? false : true}">{{ dataFrom.number
|
||||
}}</p>
|
||||
</a-tooltip>
|
||||
<div
|
||||
@click="copyFunction(dataFrom.number, '复制账号')"
|
||||
v-if="dataFrom.number != '' && flag"
|
||||
>
|
||||
<div @click="copyFunction(dataFrom.number, '复制账号')" v-if="dataFrom.number != '' && flag">
|
||||
复制账号
|
||||
</div>
|
||||
<!-- <div v-else id="zanwu">暂无</div> -->
|
||||
</div>
|
||||
<div class="main-right">
|
||||
<p>{{ dataFrom.passwordName }}</p>
|
||||
<a-tooltip v-if="flag">
|
||||
<template #title>{{ dataFrom.password }}</template>
|
||||
<p>{{ dataFrom.password || '暂无' }}</p>
|
||||
</a-tooltip>
|
||||
<a-tooltip v-else>
|
||||
<a-tooltip>
|
||||
<template #title>请申请后查看</template>
|
||||
<p style="filter: blur(4px)">{{ dataFrom.password }}</p>
|
||||
<p style="filter: blur(4px)" :class="{ 'blur-word': approveStatus == '通过' && whoShow1.itShowXiHaiAn ? false : true}">{{ dataFrom.password }}</p>
|
||||
</a-tooltip>
|
||||
<div
|
||||
@click="copyFunction(dataFrom.password2, '复制密码')"
|
||||
v-if="dataFrom.password2 != '' && flag"
|
||||
>
|
||||
<div @click="copyFunction(dataFrom.password2, '复制密码')" v-if="dataFrom.password2 != '' && flag">
|
||||
复制密码
|
||||
</div>
|
||||
<!-- <div v-else id="zanwu">暂无</div> -->
|
||||
|
@ -82,8 +69,12 @@
|
|||
password: '**************************',
|
||||
password2: '',
|
||||
})
|
||||
console.log('props.dataList------------>', props.dataList);
|
||||
const approveStatus = ref('')
|
||||
|
||||
if (props.dataList.infoList) {
|
||||
let obj = props.dataList.approveStatus
|
||||
let obj = props.dataList.approveStatus;
|
||||
approveStatus.value = props.dataList.approveStatus
|
||||
if (obj !== '通过' && whoShow1.value.itShowQingDao) {
|
||||
flag.value = false
|
||||
}
|
||||
|
@ -134,6 +125,7 @@
|
|||
(val) => {
|
||||
if (val) {
|
||||
let obj = props.dataList.approveStatus
|
||||
approveStatus.value = props.dataList.approveStatus
|
||||
if (obj !== '通过' && whoShow1.value.itShowQingDao) {
|
||||
flag.value = false
|
||||
}
|
||||
|
@ -158,6 +150,7 @@
|
|||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
|
||||
.main {
|
||||
margin-top: 0.3rem;
|
||||
width: 13rem;
|
||||
|
@ -166,10 +159,12 @@
|
|||
display: grid;
|
||||
grid-template-columns: 33.33% 33.33% 33.33%;
|
||||
align-items: center;
|
||||
|
||||
.main-left {
|
||||
border-right: 0.01rem #ffffff solid;
|
||||
padding-left: 0.7rem;
|
||||
padding-right: 1rem;
|
||||
|
||||
&>p {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
|
@ -179,28 +174,34 @@
|
|||
-webkit-box-orient: vertical;
|
||||
}
|
||||
}
|
||||
|
||||
.main-center {
|
||||
padding-left: 1rem;
|
||||
padding-right: 1rem;
|
||||
}
|
||||
|
||||
.main-right {
|
||||
padding-right: 0.7rem;
|
||||
}
|
||||
|
||||
&>div>p:first-child {
|
||||
font-size: 0.26rem;
|
||||
color: #ffffff;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
&>div>p:nth-child(2) {
|
||||
font-size: 0.22rem;
|
||||
color: #ffffff;
|
||||
line-height: 0.34rem;
|
||||
}
|
||||
|
||||
&>div:first-child>p:last-child {
|
||||
text-decoration: underline;
|
||||
word-wrap: break-word;
|
||||
word-break: normal;
|
||||
}
|
||||
|
||||
&>div>div:last-child {
|
||||
height: 0.34rem;
|
||||
width: 1.1rem;
|
||||
|
@ -213,6 +214,7 @@
|
|||
line-height: 0.34rem;
|
||||
}
|
||||
}
|
||||
|
||||
#zanwu {
|
||||
height: 0.34rem;
|
||||
width: 1.1rem;
|
||||
|
@ -221,6 +223,10 @@
|
|||
border: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.blur-word {
|
||||
filter: blur(4px);
|
||||
}
|
||||
</style>
|
||||
<style>
|
||||
.custom-class {
|
||||
|
|
|
@ -41,6 +41,8 @@
|
|||
<script setup>
|
||||
import DetalsTitle from '@/views/detailsAll/components/DetalsTitle'
|
||||
import { ref, defineProps, watch } from 'vue'
|
||||
const itShowXiHaiAn = whoShow.itShowXiHaiAn
|
||||
console.log('2222', itShowXiHaiAn)
|
||||
|
||||
let dataFrom = ref({
|
||||
title: '部署与安全',
|
||||
|
@ -62,7 +64,7 @@
|
|||
dataList: { type: Object, default: null },
|
||||
})
|
||||
if (props.dataList.infoList) {
|
||||
if (!whoShow1.value.itShowQingDao) {
|
||||
if (!whoShow1.value.itShowQingDao && !whoShow1.value.itShowXiHaiAn) {
|
||||
let obj = {
|
||||
attrType: '访问地址',
|
||||
attrValue: props.dataList.link || '------',
|
||||
|
@ -119,7 +121,7 @@
|
|||
if (val) {
|
||||
dataFrom.value.content[0].childrenContent = []
|
||||
dataFrom.value.content[1].childrenContent = []
|
||||
if (!whoShow1.value.itShowQingDao) {
|
||||
if (!whoShow1.value.itShowQingDao && !itShowXiHaiAn) {
|
||||
let obj = {
|
||||
attrType: '访问地址',
|
||||
attrValue: props.dataList.link || '------',
|
||||
|
|
|
@ -8,9 +8,7 @@
|
|||
></DetalsTitle>
|
||||
</div>
|
||||
<!-- 青岛市局 -->
|
||||
<div
|
||||
v-if="whoShow1 && whoShow1.itShowQingDao"
|
||||
style="width: 100%; display: flex; justify-content: center"
|
||||
<div style="width: 100%; display: flex; justify-content: center"
|
||||
>
|
||||
<div class="content">
|
||||
<div
|
||||
|
@ -50,29 +48,6 @@
|
|||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
<!-- 其他 -->
|
||||
<div v-else>
|
||||
<div class="content">
|
||||
<div
|
||||
v-for="(item, index) in dataFrom.content"
|
||||
:key="index"
|
||||
class="content-card"
|
||||
>
|
||||
<div class="card-title">{{ item.childrenTitle }}</div>
|
||||
<div class="card-content">
|
||||
<div v-for="carditem in item.childrenContent" :key="carditem">
|
||||
<div style="display: flex">
|
||||
<span>{{ carditem.attrType }}:</span>
|
||||
<a-tooltip>
|
||||
<template #title>{{ carditem.attrValue }}</template>
|
||||
<span>{{ carditem.attrValue }}</span>
|
||||
</a-tooltip>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
|
|
@ -7,9 +7,7 @@
|
|||
:type="dataFrom.englishTitle"
|
||||
></DetalsTitle>
|
||||
</div>
|
||||
<div
|
||||
v-if="whoShow1 && whoShow1.itShowQingDao"
|
||||
style="width: 100%; display: flex; justify-content: center"
|
||||
<div style="width: 100%; display: flex; justify-content: center"
|
||||
>
|
||||
<div class="content" v-for="item in dataFrom.content" :key="item.title">
|
||||
<div class="content-left">
|
||||
|
@ -117,84 +115,6 @@
|
|||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
<div v-else>
|
||||
<div class="content" v-for="item in dataFrom.content" :key="item.title">
|
||||
<div class="content-left">
|
||||
<div class="left">
|
||||
<div class="content-left-title">
|
||||
<span>{{ item.title }}</span>
|
||||
</div>
|
||||
<div class="content-left-content">
|
||||
<p>
|
||||
<span>{{ item.link.name }}</span>
|
||||
<a-tooltip>
|
||||
<template #title>{{ item.linkValue }}</template>
|
||||
<span>{{ item.linkValue }}</span>
|
||||
</a-tooltip>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div @click="technical()">技术文档</div>
|
||||
<div @click="technicalNew()">新手指引</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-right">
|
||||
<div class="content-right-left">
|
||||
<div class="content-right-title">{{ item.contact }}</div>
|
||||
<div class="content-right-content">
|
||||
<p>
|
||||
<span>{{ item.facilitator.name }}</span>
|
||||
<a-tooltip>
|
||||
<template #title>{{ item.facilitator.value }}</template>
|
||||
<span>{{ item.facilitator.value }}</span>
|
||||
</a-tooltip>
|
||||
</p>
|
||||
<p>
|
||||
<span>{{ item.people.name }}</span>
|
||||
<a-tooltip>
|
||||
<template #title>{{ item.people.value }}</template>
|
||||
<span>{{ item.people.value }}</span>
|
||||
</a-tooltip>
|
||||
</p>
|
||||
<p>
|
||||
<span>{{ item.phone.name }}</span>
|
||||
<a-tooltip>
|
||||
<template #title>{{ item.phone.value }}</template>
|
||||
<span>{{ item.phone.value }}</span>
|
||||
</a-tooltip>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-right-right">
|
||||
<div class="content-right-title">{{ item.contact2 }}</div>
|
||||
<div class="content-right-content">
|
||||
<p>
|
||||
<span>{{ item.facilitator2.name }}</span>
|
||||
<a-tooltip>
|
||||
<template #title>{{ item.facilitator2.value }}</template>
|
||||
<span>{{ item.facilitator2.value }}</span>
|
||||
</a-tooltip>
|
||||
</p>
|
||||
<p>
|
||||
<span>{{ item.people2.name }}</span>
|
||||
<a-tooltip>
|
||||
<template #title>{{ item.people2.value }}</template>
|
||||
<span>{{ item.people2.value }}</span>
|
||||
</a-tooltip>
|
||||
</p>
|
||||
<p>
|
||||
<span>{{ item.phone2.name }}</span>
|
||||
<a-tooltip>
|
||||
<template #title>{{ item.phone2.value }}</template>
|
||||
<span>{{ item.phone2.value }}</span>
|
||||
</a-tooltip>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
|
|
@ -7,9 +7,7 @@
|
|||
:type="dataFrom.englishTitle"
|
||||
></DetalsTitle>
|
||||
</div>
|
||||
<div
|
||||
v-if="whoShow1 && whoShow1.itShowQingDao"
|
||||
style="width: 100%; display: flex; justify-content: center"
|
||||
<div style="width: 100%; display: flex; justify-content: center"
|
||||
>
|
||||
<div class="content">
|
||||
<div class="content-card">
|
||||
|
@ -73,41 +71,6 @@
|
|||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
<div v-else>
|
||||
<div class="content">
|
||||
<div class="content-card">
|
||||
<div class="left">
|
||||
<p>{{ dataFrom.linkName }}</p>
|
||||
<a-tooltip>
|
||||
<template #title>{{ dataFrom.link }}</template>
|
||||
<p>{{ dataFrom.link }}</p>
|
||||
</a-tooltip>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div @click="technical()">技术文档</div>
|
||||
<div @click="technicaltow()">新手指引</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-card">
|
||||
<div v-for="(item, index) in dataFrom.content" :key="index">
|
||||
<div class="card-title">
|
||||
{{ item.childrenTitle }}
|
||||
</div>
|
||||
<div class="card-content">
|
||||
<div v-for="carditem in item.childrenContent" :key="carditem">
|
||||
<div>
|
||||
<span>{{ carditem.attrType }}:</span>
|
||||
<a-tooltip>
|
||||
<template #title>{{ carditem.attrValue }}</template>
|
||||
<span>{{ carditem.attrValue }}</span>
|
||||
</a-tooltip>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
|
|
@ -7,9 +7,7 @@
|
|||
:type="dataFrom.englishTitle"
|
||||
></DetalsTitle>
|
||||
</div>
|
||||
<div
|
||||
v-if="whoShow1 && whoShow1.itShowQingDao"
|
||||
style="width: 100%; display: flex; justify-content: center"
|
||||
<div style="width: 100%; display: flex; justify-content: center"
|
||||
>
|
||||
<div class="content" v-for="item in dataFrom.content" :key="item.title">
|
||||
<div class="content-left">
|
||||
|
@ -128,86 +126,6 @@
|
|||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
<div v-else>
|
||||
<div class="content" v-for="item in dataFrom.content" :key="item.title">
|
||||
<div class="content-left">
|
||||
<div class="left">
|
||||
<a-tooltip>
|
||||
<template #title>{{ item.linkValue }}</template>
|
||||
<p @click="ServiceAddressFunction(item.linkValue)">
|
||||
服务地址:
|
||||
{{ item.linkValue }}
|
||||
</p>
|
||||
</a-tooltip>
|
||||
<a-tooltip>
|
||||
<template #title>{{ item.csslinkValue }}</template>
|
||||
<p @click="ServiceAddressFunction(item.csslinkValue)">
|
||||
样式服务地址:
|
||||
{{ item.csslinkValue }}
|
||||
</p>
|
||||
</a-tooltip>
|
||||
</div>
|
||||
<div class="right">
|
||||
<div @click="technical()">技术文档</div>
|
||||
<div @click="technicalNew()">新手指引</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-right">
|
||||
<div class="content-right-left">
|
||||
<div class="content-right-title">{{ item.contact }}</div>
|
||||
<div class="content-right-content">
|
||||
<p>
|
||||
<span>{{ item.facilitator.name }}</span>
|
||||
<a-tooltip>
|
||||
<template #title>{{ item.facilitator.value }}</template>
|
||||
<span>{{ item.facilitator.value }}</span>
|
||||
</a-tooltip>
|
||||
</p>
|
||||
<p>
|
||||
<span>{{ item.people.name }}</span>
|
||||
<a-tooltip>
|
||||
<template #title>{{ item.people.value }}</template>
|
||||
<span>{{ item.people.value }}</span>
|
||||
</a-tooltip>
|
||||
</p>
|
||||
<p>
|
||||
<span>{{ item.phone.name }}</span>
|
||||
<a-tooltip>
|
||||
<template #title>{{ item.phone.value }}</template>
|
||||
<span>{{ item.phone.value }}</span>
|
||||
</a-tooltip>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="content-right-right">
|
||||
<div class="content-right-title">{{ item.contact2 }}</div>
|
||||
<div class="content-right-content">
|
||||
<p>
|
||||
<span>{{ item.facilitator2.name }}</span>
|
||||
<a-tooltip>
|
||||
<template #title>{{ item.facilitator2.value }}</template>
|
||||
<span>{{ item.facilitator2.value }}</span>
|
||||
</a-tooltip>
|
||||
</p>
|
||||
<p>
|
||||
<span>{{ item.people2.name }}</span>
|
||||
<a-tooltip>
|
||||
<template #title>{{ item.people2.value }}</template>
|
||||
<span>{{ item.people2.value }}</span>
|
||||
</a-tooltip>
|
||||
</p>
|
||||
<p>
|
||||
<span>{{ item.phone2.name }}</span>
|
||||
<a-tooltip>
|
||||
<template #title>{{ item.phone2.value }}</template>
|
||||
<span>{{ item.phone2.value }}</span>
|
||||
</a-tooltip>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
|
|
|
@ -89,11 +89,15 @@
|
|||
</span>
|
||||
<span>{{ val.type }}</span>
|
||||
</div>
|
||||
<!-- (item.note1 && JSON.parse(item.note1) &&
|
||||
JSON.parse(item.note1)[0] &&
|
||||
JSON.parse(item.note1)[0].channelName -->
|
||||
|
||||
<div class="description">
|
||||
{{
|
||||
val.description ||
|
||||
((val.note1 || '') &&
|
||||
(JSON.parse(val.note1)[0].channelName || '--') +
|
||||
(JSON.parse(val.note1) && JSON.parse(val.note1)[0] && JSON.parse(val.note1)[0].channelName || '--') +
|
||||
'等' +
|
||||
JSON.parse(val.note1).length +
|
||||
'个摄像头') ||
|
||||
|
@ -101,7 +105,7 @@
|
|||
}}
|
||||
</div>
|
||||
</div>
|
||||
<div class="remove" @click="removeFunction(val)"></div>
|
||||
<div class="remove" v-if="item.arr.length>1" @click="removeFunction(val)"></div>
|
||||
</div>
|
||||
</template>
|
||||
</div>
|
||||
|
@ -148,7 +152,7 @@
|
|||
])
|
||||
// eslint-disable-next-line vue/no-setup-props-destructure
|
||||
dataForm.value = props.dataList
|
||||
console.log('=========================>', dataForm.value)
|
||||
console.log('============dataList=============>', dataForm.value)
|
||||
// const router = useRouter()
|
||||
// const arr =
|
||||
// router.currentRoute.value.query.name instanceof Array
|
||||
|
@ -177,7 +181,7 @@
|
|||
let arr = JSON.parse(note1)
|
||||
xVideoList.value = []
|
||||
arr.map((val) => {
|
||||
xVideoList.value.push({ name: val.channelName, key: val.channelId })
|
||||
xVideoList.value.push({ name: val.channelName || '', key: val.channelId })
|
||||
})
|
||||
videoVisible.value = true
|
||||
} else {
|
||||
|
|
|
@ -422,7 +422,15 @@
|
|||
<script>
|
||||
import HomeFooter from '@/views/newHome/components/Footer'
|
||||
import mybus from '@/myplugins/mybus'
|
||||
import { defineComponent, reactive, ref, toRefs, onMounted, watch, nextTick } from 'vue'
|
||||
import {
|
||||
defineComponent,
|
||||
reactive,
|
||||
ref,
|
||||
toRefs,
|
||||
onMounted,
|
||||
watch,
|
||||
nextTick,
|
||||
} from 'vue'
|
||||
import { UpOutlined, DownOutlined } from '@ant-design/icons-vue'
|
||||
import {
|
||||
selectDicStoreAll,
|
||||
|
@ -441,7 +449,8 @@ import DetailsPageResource from '@/views/home/components/DetailsPageResource.vue
|
|||
// 基础设施引用
|
||||
import infrastructurePage from '@/views/home/infrastructurePage.vue'
|
||||
import detailsPageInfrastructureTree from '@/views/home/detailsPageInfrastructureTree.vue'
|
||||
|
||||
import { DETAIL_PAGE_CONTENT_DEFAULT_TAB } from '@/global/GlobalConfig.js'
|
||||
import { useStore } from 'vuex'
|
||||
import { message } from 'ant-design-vue'
|
||||
import {
|
||||
titleNameArray,
|
||||
|
@ -450,17 +459,6 @@ import {
|
|||
} from './constantData/showData.js'
|
||||
|
||||
export default defineComponent({
|
||||
beforeRouteEnter(to, from, next) {
|
||||
console.log('to---DetailsPageconetent--beforeRouteEnter------->', to)
|
||||
console.log('from---DetailsPageconetent--beforeRouteEnter------->', from)
|
||||
console.log('next---DetailsPageconetent--beforeRouteEnter------->', next)
|
||||
// 返回按钮,刷新页面,所以from.name为undefined
|
||||
// if (from.name || from.name !== 'details') {
|
||||
// console.log('清空------------>')
|
||||
// localStorage.removeItem('DetailsPageconetent')
|
||||
// }
|
||||
next()
|
||||
},
|
||||
beforeRouteLeave(to, from, next) {
|
||||
console.log('to---DetailsPageconetent--beforeRouteLeave------->', to)
|
||||
console.log('from---DetailsPageconetent--beforeRouteLeave------->', from)
|
||||
|
@ -473,7 +471,7 @@ export default defineComponent({
|
|||
setup() {
|
||||
//会议室传的标识6
|
||||
const flag = ref('')
|
||||
|
||||
let componentTypeArray = ['组件类型', '应用领域']
|
||||
const handleAdd = (value) => {
|
||||
flag.value = value
|
||||
}
|
||||
|
@ -494,7 +492,7 @@ export default defineComponent({
|
|||
let currentPageSize = ref(5)
|
||||
const pageSizeOptions = ref(['5', '10', '20', '50'])
|
||||
const router = useRouter()
|
||||
let select = router.currentRoute.value.query.select || '应用资源'
|
||||
let select = router.currentRoute.value.query.select || DETAIL_PAGE_CONTENT_DEFAULT_TAB
|
||||
const select2 = router.currentRoute.value.query.select
|
||||
const str = router.currentRoute.value.query.str
|
||||
const searchValue = ref(str)
|
||||
|
@ -523,31 +521,49 @@ export default defineComponent({
|
|||
orderType: 'DESC', // ASC 升序 DESC 降序
|
||||
}
|
||||
|
||||
const store = useStore()
|
||||
// 用户信息
|
||||
const user = ref({
|
||||
username: store.getters['user/username'],
|
||||
realName: store.getters['user/realName'],
|
||||
})
|
||||
|
||||
const searchResultListDom = ref(null)
|
||||
|
||||
// 读取本地存储查询条件
|
||||
const storageSearchInfo = localStorage.getItem('DetailsPageconetent') && JSON.parse(
|
||||
let storageSearchInfo = null
|
||||
const handleSetSearchData = () => {
|
||||
if (localStorage.getItem('DetailsPageconetent')) {
|
||||
storageSearchInfo = JSON.parse(
|
||||
localStorage.getItem('DetailsPageconetent')
|
||||
)
|
||||
const handleSetSearchData = () => {
|
||||
}
|
||||
console.log('storageSearchInfo------------>', storageSearchInfo)
|
||||
// 读取本地存储:表单赋值
|
||||
if (storageSearchInfo) {
|
||||
paramsGetResources = Object.assign({}, paramsGetResources, storageSearchInfo)
|
||||
paramsGetResources = Object.assign(
|
||||
{},
|
||||
paramsGetResources,
|
||||
storageSearchInfo
|
||||
)
|
||||
// 搜索名称
|
||||
searchValue.value = storageSearchInfo.name;
|
||||
currentPage.value = storageSearchInfo.pageNum;
|
||||
currentPageSize.value = storageSearchInfo.pageSize;
|
||||
paramsGetResources.pageNum = storageSearchInfo.pageNum;
|
||||
paramsGetResources.pageSize = storageSearchInfo.pageSize;
|
||||
paramsGetResources.deptIds = storageSearchInfo.deptIds;
|
||||
paramsGetResources.districtId = storageSearchInfo.districtId;
|
||||
searchValue.value = storageSearchInfo.name
|
||||
currentPage.value = storageSearchInfo.pageNum
|
||||
currentPageSize.value = storageSearchInfo.pageSize
|
||||
paramsGetResources.pageNum = storageSearchInfo.pageNum
|
||||
paramsGetResources.pageSize = storageSearchInfo.pageSize
|
||||
paramsGetResources.deptIds = storageSearchInfo.deptIds
|
||||
paramsGetResources.districtId = storageSearchInfo.districtId
|
||||
|
||||
// 延迟使用,因为还没有返回跟挂载
|
||||
nextTick(() => {
|
||||
searchResultListDom.value.changeCondition({
|
||||
searchResultListDom.value.changeCondition(
|
||||
{
|
||||
value: storageSearchInfo.orderField,
|
||||
orderType: storageSearchInfo.orderType,
|
||||
}, true)
|
||||
},
|
||||
true
|
||||
)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
@ -581,7 +597,10 @@ export default defineComponent({
|
|||
}
|
||||
listKey.value++
|
||||
getAppResources()
|
||||
console.log('paramsGetResources-----chagneTag------->', paramsGetResources);
|
||||
console.log(
|
||||
'paramsGetResources-----chagneTag------->',
|
||||
paramsGetResources
|
||||
)
|
||||
}
|
||||
|
||||
// 重置数据
|
||||
|
@ -618,7 +637,10 @@ export default defineComponent({
|
|||
paramsGetResources.orderField = ''
|
||||
paramsGetResources.orderType = 'DESC'
|
||||
mybus.emit('chongzhi')
|
||||
console.log('paramsGetResources---chongzhi-重置-------->', paramsGetResources);
|
||||
console.log(
|
||||
'paramsGetResources---chongzhi-重置-------->',
|
||||
paramsGetResources
|
||||
)
|
||||
getAppResources()
|
||||
}
|
||||
|
||||
|
@ -642,24 +664,68 @@ export default defineComponent({
|
|||
paramsGetResources.pageNum = 1
|
||||
currentPage.value = 1
|
||||
console.log('点击筛选条件=================>', tag, checked, name)
|
||||
|
||||
// 西海岸-智能算法 特殊处理
|
||||
if (whoShow1.value.itShowXiHaiAn) {
|
||||
if (tag.dict_label == '智能算法' && checked) {
|
||||
if (ListContentCopy.value[2]) {
|
||||
ListContent.records.splice(2, 1, ListContentCopy.value[2])
|
||||
}
|
||||
} else {
|
||||
if (name == '组件类型') {
|
||||
ListContent.records.splice(2, 1)
|
||||
paramsGetResources.infoList = paramsGetResources.infoList.filter(
|
||||
(item) => componentTypeArray.includes(item.attrType)
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ListContent.records.forEach((val) => {
|
||||
if (!val) {
|
||||
return
|
||||
}
|
||||
if (val.name === name) {
|
||||
paramsGetResources.infoList = paramsGetResources.infoList.filter(
|
||||
(item) => item.attrType !== name
|
||||
)
|
||||
if (val.selectedTags.indexOf(tag.dict_label) == -1) {
|
||||
if (
|
||||
val.selectedTags &&
|
||||
val.selectedTags.indexOf(tag.dict_label) == -1
|
||||
) {
|
||||
val.selectedTags = [tag.dict_label]
|
||||
paramsGetResources.infoList.push({
|
||||
attrType: name,
|
||||
attrValue: tag.dict_label,
|
||||
})
|
||||
} else {
|
||||
val.selectedTags.splice(val.selectedTags.indexOf(tag.dict_label), 1)
|
||||
val.selectedTags &&
|
||||
val.selectedTags.splice(
|
||||
val.selectedTags.indexOf(tag.dict_label),
|
||||
1
|
||||
)
|
||||
}
|
||||
|
||||
// 西海岸-智能算法 特殊处理
|
||||
if (whoShow1.value.itShowXiHaiAn) {
|
||||
if (
|
||||
(val.selectedTags.length == 0 &&
|
||||
tag.dict_label == '智能算法' &&
|
||||
!checked) ||
|
||||
(tag.dict_label !== '智能算法' && name == '组件类型')
|
||||
) {
|
||||
if (ListContentCopy.value[2]) {
|
||||
ListContentCopy.value[2].selectedTags = []
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
listKey.value++
|
||||
console.log('paramsGetResources---handleChange--------->', paramsGetResources);
|
||||
console.log(
|
||||
'paramsGetResources---handleChange--------->',
|
||||
paramsGetResources
|
||||
)
|
||||
getAppResources()
|
||||
}
|
||||
const getNewList = () => {
|
||||
|
@ -671,12 +737,11 @@ export default defineComponent({
|
|||
selectDicStoreAll(params).then((res) => {
|
||||
console.log('selectDicStoreAll============>', res)
|
||||
const { data } = res.data
|
||||
ListContent.records = []
|
||||
ListContent.records = data
|
||||
let dataCopy = data
|
||||
tecHnosphere = router.currentRoute.value.query.tecHnosphere
|
||||
appLiCation = router.currentRoute.value.query.appLiCation
|
||||
mybus.emit('getDeptList')
|
||||
ListContent.records.forEach((val) => {
|
||||
dataCopy.forEach((val) => {
|
||||
val.selectedTags = []
|
||||
if (val.name == '应用领域' && appLiCation) {
|
||||
val.selectedTags[0] = []
|
||||
|
@ -720,16 +785,29 @@ export default defineComponent({
|
|||
val.shrinkFlag = true
|
||||
}
|
||||
|
||||
// todo--赋值
|
||||
if (storageSearchInfo) {
|
||||
// name
|
||||
let obj =
|
||||
(storageSearchInfo.infoList || []).find(
|
||||
let obj = (storageSearchInfo.infoList || []).find(
|
||||
(x) => x.attrType === val.name
|
||||
) || {}
|
||||
val.selectedTags = obj.attrValue || []
|
||||
)
|
||||
if (obj) {
|
||||
val.selectedTags = [obj.attrValue] || []
|
||||
}
|
||||
}
|
||||
})
|
||||
ListContentCopy.value = []
|
||||
ListContentCopy.value = JSON.parse(JSON.stringify(dataCopy))
|
||||
ListContent.records = []
|
||||
ListContent.records = JSON.parse(JSON.stringify(dataCopy))
|
||||
|
||||
// 智能算法-特殊处理
|
||||
if (whoShow1.value.itShowXiHaiAn) {
|
||||
if (!storageSearchInfo) {
|
||||
let _tag_list = dataCopy.filter((v) =>
|
||||
componentTypeArray.includes(v.name)
|
||||
)
|
||||
ListContent.records = _tag_list
|
||||
}
|
||||
}
|
||||
listKey.value++
|
||||
listKey2.value++
|
||||
})
|
||||
|
@ -739,6 +817,7 @@ export default defineComponent({
|
|||
let ListContent = reactive({
|
||||
records: [],
|
||||
})
|
||||
let ListContentCopy = ref([])
|
||||
const resourceList = reactive({ data: [] })
|
||||
const videoList = reactive({ data: [] })
|
||||
const resourceTotal = ref('')
|
||||
|
@ -768,8 +847,10 @@ export default defineComponent({
|
|||
} else {
|
||||
getAppResources()
|
||||
}
|
||||
console.log('paramsGetResources--globalSearch---------->', paramsGetResources);
|
||||
|
||||
console.log(
|
||||
'paramsGetResources--globalSearch---------->',
|
||||
paramsGetResources
|
||||
)
|
||||
})
|
||||
} else {
|
||||
message.warning('全局搜索必须输入关键词!')
|
||||
|
@ -870,32 +951,18 @@ export default defineComponent({
|
|||
pageSize: paramsGetResources.pageSize, //分页大小
|
||||
}
|
||||
getDataResource(dataResourceParams).then((res) => {
|
||||
loading.value = false
|
||||
console.log('res.data.data----874-------->', res.data.data)
|
||||
if (whoShow1.value.itShowQingDao) {
|
||||
res.data.data.data.forEach((val) => {
|
||||
val.id = val.guid // id
|
||||
val.name = val.zyname // 名字
|
||||
val.sjlCount = val.sjcczl // 数据量
|
||||
val.applyCount = val.syqk // 申请量
|
||||
val.deptName = val.TGBM // 部门
|
||||
val.createDate = val.fbrq // 发布时间
|
||||
val.description = val.xgxt // 描述
|
||||
})
|
||||
resourceList.data = res.data.data.data || []
|
||||
resourceTotal.value = res.data.data.rows || ''
|
||||
loading.value = false
|
||||
if (whoShow1.value.itShowZhanTingDev) {
|
||||
// 注意:!!!!!itShowZhanTingDev: 研发环境除数据资源用西海岸,其他配置跟青岛市局一样
|
||||
console.log('999----->', res.data.data.list)
|
||||
getXiHaiAn(res)
|
||||
} else {
|
||||
getQingDao(res)
|
||||
}
|
||||
} else if (whoShow1.value.itShowXiHaiAn) {
|
||||
res.data.data.list.forEach((val) => {
|
||||
val.id = val.serviceId // id
|
||||
val.name = val.serviceName // 名字
|
||||
val.sjlCount = val.requestQuantity // 数据量
|
||||
val.applyCount = val.requestCount // 申请量
|
||||
val.deptName = val.departmentName // 部门
|
||||
val.createTime = val.createTime.split('.')[0]
|
||||
val.createDate = val.createTime // 发布时间
|
||||
})
|
||||
resourceList.data = res.data.data.list || []
|
||||
resourceTotal.value = res.data.data.total || ''
|
||||
loading.value = false
|
||||
getXiHaiAn(res)
|
||||
}
|
||||
})
|
||||
} else if (
|
||||
|
@ -907,7 +974,14 @@ export default defineComponent({
|
|||
paramsGetResources.pageNum = 1
|
||||
}
|
||||
pageWithAttrs(paramsGetResources).then((res) => {
|
||||
console.log('查询列表====22========>', resourceList, res.data.data)
|
||||
if (res.data.code != 0) {
|
||||
return message.error(res.data.msg)
|
||||
}
|
||||
console.log(
|
||||
'查询列表====22========>',
|
||||
resourceList,
|
||||
res.data.data
|
||||
)
|
||||
resourceList.data = []
|
||||
videoList.data = []
|
||||
if (Cardsname.value === '基础设施') {
|
||||
|
@ -958,31 +1032,16 @@ export default defineComponent({
|
|||
pageSize: paramsGetResources.pageSize, //分页大小
|
||||
}
|
||||
getDataResource(dataResourceParams).then((res) => {
|
||||
if (whoShow1.value.itShowQingDao) {
|
||||
(res.data && res.data.data && res.data.data.data || []).forEach((val) => {
|
||||
val.id = val.guid // id
|
||||
val.name = val.zyname // 名字
|
||||
val.sjlCount = val.sjcczl // 数据量
|
||||
val.applyCount = val.syqk // 申请量
|
||||
val.deptName = val.TGBM // 部门
|
||||
val.createDate = val.fbrq // 发布时间
|
||||
val.description = val.xgxt // 描述
|
||||
})
|
||||
resourceList.data = res.data.data.data || []
|
||||
resourceTotal.value = res.data.data.rows || ''
|
||||
loading.value = false
|
||||
console.log('res.data.data----982-------->', res.data.data)
|
||||
if (whoShow1.value.itShowQingDao) {
|
||||
if (whoShow1.value.itShowZhanTingDev) {
|
||||
getXiHaiAn(res)
|
||||
} else {
|
||||
getQingDao(res)
|
||||
}
|
||||
} else if (whoShow1.value.itShowXiHaiAn) {
|
||||
(res.data && res.data.data && res.data.data.list || []).forEach((val) => {
|
||||
val.id = val.serviceId // id
|
||||
val.name = val.serviceName // 名字
|
||||
val.sjlCount = val.requestQuantity // 数据量
|
||||
val.applyCount = val.requestCount // 申请量
|
||||
val.deptName = val.departmentName // 部门
|
||||
val.createTime = val.createTime.split('.')[0]
|
||||
val.createDate = val.createTime // 发布时间
|
||||
})
|
||||
resourceList.data = res.data.data.list || []
|
||||
resourceTotal.value = res.data.data.total || ''
|
||||
getXiHaiAn(res)
|
||||
loading.value = false
|
||||
}
|
||||
})
|
||||
|
@ -995,7 +1054,11 @@ export default defineComponent({
|
|||
paramsGetResources.pageNum = 1
|
||||
}
|
||||
pageWithAttrs(paramsGetResources).then((res) => {
|
||||
console.log('查询列表===11=========>', resourceList, res.data.data)
|
||||
console.log(
|
||||
'查询列表===11=========>',
|
||||
resourceList,
|
||||
res.data.data
|
||||
)
|
||||
resourceList.data = []
|
||||
videoList.data = []
|
||||
if (Cardsname.value === '基础设施') {
|
||||
|
@ -1020,6 +1083,39 @@ export default defineComponent({
|
|||
}
|
||||
}
|
||||
|
||||
// 青岛-数据处理
|
||||
const getQingDao = (res) => {
|
||||
((res.data && res.data.data && res.data.data.data) || []).forEach(
|
||||
(val) => {
|
||||
val.id = val.guid // id
|
||||
val.name = val.zyname // 名字
|
||||
val.sjlCount = val.sjcczl // 数据量
|
||||
val.applyCount = val.syqk // 申请量
|
||||
val.deptName = val.TGBM // 部门
|
||||
val.createDate = val.fbrq // 发布时间
|
||||
val.description = val.xgxt // 描述
|
||||
}
|
||||
)
|
||||
resourceList.data = res.data.data.data || []
|
||||
resourceTotal.value = res.data.data.rows || ''
|
||||
}
|
||||
// 青岛-西海岸处理
|
||||
const getXiHaiAn = (res) => {
|
||||
((res.data && res.data.data && res.data.data.list) || []).forEach(
|
||||
(val) => {
|
||||
val.id = val.serviceId // id
|
||||
val.name = val.serviceName // 名字
|
||||
val.sjlCount = val.requestQuantity // 数据量
|
||||
val.applyCount = val.requestCount // 申请量
|
||||
val.deptName = val.departmentName // 部门
|
||||
val.createTime = val.createTime.split('.')[0]
|
||||
val.createDate = val.createTime // 发布时间
|
||||
}
|
||||
)
|
||||
resourceList.data = res.data.data.list || []
|
||||
resourceTotal.value = res.data.data.total || ''
|
||||
}
|
||||
|
||||
let shoppingCartList = ref([])
|
||||
// 获取申购车列表
|
||||
const getShoppingCartList = (list) => {
|
||||
|
@ -1048,19 +1144,28 @@ export default defineComponent({
|
|||
delete paramsGetResources.deptIds
|
||||
}
|
||||
getAppResources()
|
||||
console.log('paramsGetResources-----paramsGetResources------->', paramsGetResources);
|
||||
console.log(
|
||||
'paramsGetResources-----paramsGetResources------->',
|
||||
paramsGetResources
|
||||
)
|
||||
})
|
||||
mybus.on('changePage', (page) => {
|
||||
paramsGetResources.pageNum = page
|
||||
getAppResources('分页查询')
|
||||
console.log('paramsGetResources----changePage-------->', paramsGetResources);
|
||||
console.log(
|
||||
'paramsGetResources----changePage-------->',
|
||||
paramsGetResources
|
||||
)
|
||||
})
|
||||
mybus.on('changeSelcted', () => {
|
||||
// 添加申购车后,返回第一页
|
||||
paramsGetResources.pageNum = 1
|
||||
currentPage.value = 1
|
||||
getAppResources()
|
||||
console.log('paramsGetResources----changeSelcted-------->', paramsGetResources);
|
||||
console.log(
|
||||
'paramsGetResources----changeSelcted-------->',
|
||||
paramsGetResources
|
||||
)
|
||||
})
|
||||
mybus.on('changeInfo', (info) => {
|
||||
paramsGetResources.pageNum = 1
|
||||
|
@ -1072,14 +1177,19 @@ export default defineComponent({
|
|||
paramsGetResources.infoList.push(info)
|
||||
}
|
||||
getAppResources()
|
||||
console.log('paramsGetResources-----changeInfo------->', paramsGetResources);
|
||||
|
||||
console.log(
|
||||
'paramsGetResources-----changeInfo------->',
|
||||
paramsGetResources
|
||||
)
|
||||
})
|
||||
mybus.on('refresh', () => {
|
||||
paramsGetResources.pageNum = 1
|
||||
currentPage.value = 1
|
||||
getAppResources()
|
||||
console.log('paramsGetResources-----refresh------->', paramsGetResources);
|
||||
console.log(
|
||||
'paramsGetResources-----refresh------->',
|
||||
paramsGetResources
|
||||
)
|
||||
})
|
||||
|
||||
mybus.on('changeCondition', (condition) => {
|
||||
|
@ -1097,16 +1207,22 @@ export default defineComponent({
|
|||
} else {
|
||||
getAppResources()
|
||||
}
|
||||
console.log('paramsGetResources---changeCondition--------->', paramsGetResources);
|
||||
console.log(
|
||||
'paramsGetResources---changeCondition--------->',
|
||||
paramsGetResources
|
||||
)
|
||||
})
|
||||
|
||||
const pageChange = (val) => {
|
||||
console.log('pageChange------------>', val);
|
||||
console.log('pageChange------------>', val)
|
||||
loading.value = true
|
||||
currentPage.value = val
|
||||
paramsGetResources.pageNum = val
|
||||
getAppResources('分页查询') //判断是否是点击下面的分页的调用模糊查询方法还是点击搜索调用模糊查询方法
|
||||
console.log('paramsGetResources-----pageChange------->', paramsGetResources);
|
||||
console.log(
|
||||
'paramsGetResources-----pageChange------->',
|
||||
paramsGetResources
|
||||
)
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
|
@ -1140,8 +1256,10 @@ export default defineComponent({
|
|||
paramsGetResources.pageNum = current
|
||||
paramsGetResources.pageSize = pageSize
|
||||
getAppResources()
|
||||
console.log('paramsGetResources----onShowSizeChange-------->', paramsGetResources);
|
||||
|
||||
console.log(
|
||||
'paramsGetResources----onShowSizeChange-------->',
|
||||
paramsGetResources
|
||||
)
|
||||
}
|
||||
watch(currentPageSize, () => {
|
||||
console.log('pageSize', currentPageSize.value)
|
||||
|
@ -1156,6 +1274,12 @@ export default defineComponent({
|
|||
})
|
||||
}
|
||||
const changeCards = (name) => {
|
||||
// 西海岸-特殊处理
|
||||
if(whoShow1.value.itShowXiHaiAn) {
|
||||
if(name !== '基础设施' && !xhaHasPermissionUser.list.includes(user.value.username)) {
|
||||
return message.warn('暂无权限')
|
||||
}
|
||||
}
|
||||
resourceList.data = []
|
||||
videoList.data = []
|
||||
resourceTotal.value = ''
|
||||
|
@ -1163,7 +1287,9 @@ export default defineComponent({
|
|||
router.currentRoute.value.query.appLiCation = ''
|
||||
tecHnosphere = router.currentRoute.value.query.tecHnosphere
|
||||
appLiCation = router.currentRoute.value.query.appLiCation
|
||||
let newQuery = JSON.parse(JSON.stringify(router.currentRoute.value.query))
|
||||
let newQuery = JSON.parse(
|
||||
JSON.stringify(router.currentRoute.value.query)
|
||||
)
|
||||
Cardsname.value = name
|
||||
newQuery.select = Cardsname.value
|
||||
router
|
||||
|
@ -1274,7 +1400,6 @@ export default defineComponent({
|
|||
saveSearchCodition,
|
||||
searchResultListDom,
|
||||
handleSetSearchData, // todo
|
||||
// refreshList,
|
||||
}
|
||||
},
|
||||
components: {
|
||||
|
@ -1645,7 +1770,7 @@ export default defineComponent({
|
|||
margin-top: 0.05rem;
|
||||
|
||||
.ant-tag-checkable {
|
||||
width: 0.83rem;
|
||||
width: 1rem;
|
||||
height: 0.25rem;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
|
@ -1670,7 +1795,8 @@ export default defineComponent({
|
|||
|
||||
.ant-tag-checkable:active,
|
||||
.ant-tag-checkable-checked {
|
||||
width: 0.85rem;
|
||||
// width: 0.85rem;
|
||||
width: 1rem;
|
||||
font-family: 'Alibaba PuHuiTi';
|
||||
font-weight: 500;
|
||||
background-color: #0087ff;
|
||||
|
@ -1855,14 +1981,14 @@ export default defineComponent({
|
|||
}
|
||||
|
||||
.leixingsum {
|
||||
width: 0.93rem;
|
||||
// width: 1rem;
|
||||
display: inline-block;
|
||||
cursor: pointer;
|
||||
text-align: center;
|
||||
margin-top: 0.05rem;
|
||||
|
||||
.ant-tag-checkable {
|
||||
width: 0.85rem;
|
||||
width: 1rem;
|
||||
height: 0.25rem;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
|
|
|
@ -156,8 +156,11 @@
|
|||
class="modal-box"
|
||||
title="请选择"
|
||||
:visible="showAddModal"
|
||||
:onOk="handleOk"
|
||||
:onCancel="handleCancel"
|
||||
ok-text="确认"
|
||||
cancel-text="取消"
|
||||
@ok="handleOk"
|
||||
@cancel="handleCancel"
|
||||
|
||||
>
|
||||
<a-table
|
||||
:columns="columns"
|
||||
|
@ -652,7 +655,14 @@
|
|||
}
|
||||
</script>
|
||||
|
||||
<style>
|
||||
.ant-modal-footer {
|
||||
display: block;
|
||||
}
|
||||
</style>
|
||||
|
||||
<style lang="less" scoped>
|
||||
|
||||
.bg {
|
||||
background: #fff;
|
||||
height: 100vh;
|
||||
|
|
|
@ -17,7 +17,7 @@
|
|||
labelAlign="left"
|
||||
autocomplete="off"
|
||||
>
|
||||
<div class="base-info">
|
||||
<div class="base-info flex-row-start">
|
||||
<a-form-item
|
||||
label="申请标题"
|
||||
name="title"
|
||||
|
@ -28,6 +28,21 @@
|
|||
v-model:value="formName.title"
|
||||
/>
|
||||
</a-form-item>
|
||||
<!-- 西海岸-摄像头-增加过期时间 -->
|
||||
<a-form-item
|
||||
v-if="isCamera && isXiHaiAn"
|
||||
label="过期时间"
|
||||
name="expireDate"
|
||||
:rules="[{ required: true, message: '请选择过期时间' }]"
|
||||
style="margin-left: 22px"
|
||||
>
|
||||
<a-select
|
||||
v-model:value="formName.expireDate"
|
||||
placeholder="请选择过期时间"
|
||||
style="width: 200px"
|
||||
:options="expireDateOptions"
|
||||
></a-select>
|
||||
</a-form-item>
|
||||
</div>
|
||||
<div class="base-info">
|
||||
<a-form-item
|
||||
|
@ -86,7 +101,9 @@
|
|||
</a-form-item>
|
||||
</div>
|
||||
<div class="base-info" v-if="flag">
|
||||
<div style="margin-bottom: 24px">
|
||||
<a-form-item
|
||||
style="margin-bottom: 0"
|
||||
label="应用系统"
|
||||
name="applicationSystem"
|
||||
:rules="[{ required: true, message: '请选择应用系统' }]"
|
||||
|
@ -94,8 +111,8 @@
|
|||
<a-select
|
||||
v-model:value="formName.applicationSystem"
|
||||
show-search
|
||||
placeholder="请输入关键字"
|
||||
style="width: 200px"
|
||||
placeholder="请选择应用系统"
|
||||
style="width: 230px"
|
||||
:options="systemOptions"
|
||||
@focus="handleFocus"
|
||||
@blur="handleBlur"
|
||||
|
@ -103,6 +120,12 @@
|
|||
@search="systemHandleSearch"
|
||||
></a-select>
|
||||
</a-form-item>
|
||||
<span
|
||||
style="font-size: 12px; color: #666; padding-left: 106px"
|
||||
>
|
||||
如选项没有系统请新增
|
||||
</span>
|
||||
</div>
|
||||
<a-form-item
|
||||
class="applicationScene"
|
||||
label="应用领域"
|
||||
|
@ -122,6 +145,7 @@
|
|||
></a-select>
|
||||
</a-form-item>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<a-form-item
|
||||
label="需求依据"
|
||||
|
@ -216,6 +240,8 @@
|
|||
import { sgcDel, getApplyForm } from '@/api/personalCenter'
|
||||
import { pageWithAttrs, updateIntegrationServices } from '@/api/home'
|
||||
import { DETAIL_PAGE_CONTENT_DEFAULT_TAB } from '@/global/GlobalConfig.js'
|
||||
import { getIntegrationDetail, soldierApply } from '@/api/home'
|
||||
import * as moment from 'moment'
|
||||
|
||||
export default {
|
||||
name: '',
|
||||
|
@ -229,27 +255,38 @@
|
|||
const disabled = ref(false)
|
||||
const flag = ref(false)
|
||||
const list = ref(JSON.parse(localStorage.getItem('applyList')))
|
||||
const integrationServicesItemInfo = ref(
|
||||
JSON.parse(localStorage.getItem('integrationServicesItemInfo') || '{}')
|
||||
)
|
||||
const deptNameAll = ref([]) //所有部门名称
|
||||
const deptFlage = ref(true) //判断是否存在默认部门名称
|
||||
console.log(
|
||||
'integrationServicesItemInfo------------>',
|
||||
integrationServicesItemInfo
|
||||
)
|
||||
|
||||
const applyAll = router.currentRoute.value.query.applyAll
|
||||
// 融合服务id
|
||||
const integrationServicesId =
|
||||
router.currentRoute.value.query.integrationServicesId
|
||||
// 融合服务详情
|
||||
const integrationServicesItemInfo = ref(null)
|
||||
const num = ref(0)
|
||||
// 过期时间
|
||||
const expireDateOptions = [
|
||||
{
|
||||
value: moment().add(30, 'days').format('YYYY-MM-DD HH:mm:ss'),
|
||||
label: '30天',
|
||||
},
|
||||
{
|
||||
value: moment().add(60, 'days').format('YYYY-MM-DD HH:mm:ss'),
|
||||
label: '60天',
|
||||
},
|
||||
{
|
||||
value: moment().add(90, 'days').format('YYYY-MM-DD HH:mm:ss'),
|
||||
label: '90天',
|
||||
},
|
||||
]
|
||||
|
||||
if (!applyAll) {
|
||||
list.value.map((item) => {
|
||||
item.arr.map((val) => {
|
||||
console.log(item, '组件===========================')
|
||||
let obj = item.children
|
||||
? item.children.filter((type) => type.id == val.id)[0]
|
||||
: val.type !== '应用资源'
|
||||
if (obj) {
|
||||
console.log('11111111111111111111111111111', obj, flag.value)
|
||||
if (obj.type !== '应用资源') {
|
||||
flag.value = true
|
||||
}
|
||||
|
@ -265,11 +302,28 @@
|
|||
const baseURL = window.SITE_CONFIG.apiURL
|
||||
let record = ref('1')
|
||||
const text = ref('')
|
||||
// 西海岸-特殊处理
|
||||
let wrjAndDbText = ['单兵设备', '无人机']
|
||||
const isXiHaiAn = ref(whoShow.itShowXiHaiAn)
|
||||
// 西海岸-判断是否是基础设施-摄像头
|
||||
const isCamera = ref(false)
|
||||
if (
|
||||
list.value[0] &&
|
||||
list.value[0].arr &&
|
||||
list.value[0].arr[0] &&
|
||||
list.value[0].arr[0].type == '基础设施'
|
||||
) {
|
||||
isCamera.value = true
|
||||
}
|
||||
const formName = reactive({
|
||||
title: applyAll
|
||||
? '全部应用资源申请'
|
||||
: list.value[0].arr && list.value[0].arr[0].type == '单兵设备'
|
||||
? '单兵设备申请'
|
||||
: wrjAndDbText.includes(
|
||||
list.value[0].arr &&
|
||||
list.value[0].arr[0] &&
|
||||
list.value[0].arr[0].type
|
||||
)
|
||||
? list.value[0].arr[0].type + '申请'
|
||||
: list.value[0].children
|
||||
? '申请' +
|
||||
list.value[0].children
|
||||
|
@ -278,7 +332,7 @@
|
|||
num.value > 1 ? '等' + num.value + '项能力' : ''
|
||||
)
|
||||
: '申请' + list.value[0].arr[0].resourceName, // 标题
|
||||
applicationSystem: '', // 应用系统
|
||||
// applicationSystem: '', // 应用系统
|
||||
applicationScene: [], // 应用领域
|
||||
applicationBackground: '', // 应用背景
|
||||
effectWish: '', // 期望效果
|
||||
|
@ -353,9 +407,7 @@
|
|||
label: val.dictLabel,
|
||||
})
|
||||
})
|
||||
// console.log('字典值========>', applicationSceneOpthion.value)
|
||||
})
|
||||
// console.log(formName.system)
|
||||
const formRef = ref()
|
||||
const applySuccess = ref(true)
|
||||
const dataForm = {
|
||||
|
@ -376,22 +428,29 @@
|
|||
|
||||
// 跳转到能力集市
|
||||
const jumpToDetailsPageconetent = () => {
|
||||
setTimeout(() => {
|
||||
router.push({
|
||||
path: '/DetailsPageconetent',
|
||||
query: {
|
||||
select: DETAIL_PAGE_CONTENT_DEFAULT_TAB,
|
||||
},
|
||||
})
|
||||
}, 1000)
|
||||
}
|
||||
|
||||
// 提交申请
|
||||
let submitFlag = true
|
||||
const processStartHandle = () => {
|
||||
formRef.value.validate().then(() => {
|
||||
if (submitFlag) {
|
||||
submitFlag = false
|
||||
if (!formUrl) {
|
||||
return message.error('请设置保存表单的URL')
|
||||
}
|
||||
if (!formName) {
|
||||
return message.error('请设置表单名称')
|
||||
}
|
||||
|
||||
if (id) {
|
||||
endProcess({ instanceId: taskId }).then((end) => {
|
||||
if (end.data.code == 0) {
|
||||
|
@ -420,70 +479,15 @@
|
|||
ids.push(item.id)
|
||||
}
|
||||
} else {
|
||||
let obj = {}
|
||||
Object.assign(obj, formName)
|
||||
console.log('摄像头===============>', obj, item)
|
||||
obj.system = []
|
||||
item.note1 = JSON.parse(item.note1)
|
||||
item.note1.map((sxt) => {
|
||||
obj.system.push({
|
||||
resourceId: sxt.idtCameraChannel + '',
|
||||
resourceName: sxt.channelName,
|
||||
cameraId: sxt.channelId, // 改接口后删除
|
||||
channelCode: sxt.channelCode,
|
||||
channelId: sxt.channelId,
|
||||
channelName: sxt.channelName,
|
||||
checkStatus: sxt.checkStatus + '',
|
||||
gpsX: sxt.gpsX,
|
||||
gpsY: sxt.gpsY,
|
||||
idtCameraChannel: sxt.idtCameraChannel + '',
|
||||
nodeName: sxt.nodeName,
|
||||
parentId: sxt.parentId,
|
||||
status: sxt.status + '',
|
||||
})
|
||||
})
|
||||
submitApply(obj).then((res) => {
|
||||
// applySuccess.value = false
|
||||
console.log('摄像头申请================>', res)
|
||||
if (item.id) {
|
||||
sgcDel({ ids: [item.id] }).then((res1) => {
|
||||
if (res1.data.msg === 'success') {
|
||||
if (falgNum == 0 && sxt) {
|
||||
message.success(
|
||||
'申请提交成功,请到消息中心查看!'
|
||||
)
|
||||
sxt = false
|
||||
}
|
||||
mybus.emit('getSgcNum')
|
||||
jumpToDetailsPageconetent()
|
||||
}
|
||||
})
|
||||
} else {
|
||||
if (
|
||||
res.data.msg === 'success' &&
|
||||
falgNum == 0 &&
|
||||
sxt
|
||||
) {
|
||||
message.success('申请提交成功,请到消息中心查看!')
|
||||
sxt = false
|
||||
}
|
||||
jumpToDetailsPageconetent()
|
||||
}
|
||||
})
|
||||
infrastructureConfirm(item, falgNum, sxt)
|
||||
}
|
||||
})
|
||||
})
|
||||
console.log(
|
||||
'提交数据============submitApply==============>',
|
||||
formName,
|
||||
ids
|
||||
)
|
||||
if (formName.system.length !== 0) {
|
||||
if (formName.applicationSystem.length == 0) {
|
||||
formName.applicationSystem = ''
|
||||
}
|
||||
submitApply(formName).then((res) => {
|
||||
// applySuccess.value = false
|
||||
message.success('申请提交成功,请到消息中心查看!')
|
||||
console.log('能力申请================>', res)
|
||||
if (res.data.code == 0) {
|
||||
|
@ -495,11 +499,13 @@
|
|||
}
|
||||
})
|
||||
} else {
|
||||
// todo 融合服务
|
||||
if (
|
||||
Object.keys(integrationServicesItemInfo).length > 0
|
||||
) {
|
||||
// 融合服务
|
||||
if (integrationServicesId) {
|
||||
getIntegrationServicesDeatil(
|
||||
integrationServicesId
|
||||
).then((res) => {
|
||||
updateIntegrationServiceAction()
|
||||
})
|
||||
}
|
||||
jumpToDetailsPageconetent()
|
||||
}
|
||||
|
@ -512,12 +518,6 @@
|
|||
})
|
||||
} else {
|
||||
if (!applyAll) {
|
||||
console.log(list.value[0].arr[0])
|
||||
// 单兵设备为了演示 添加 不做处理
|
||||
if (list.value[0].arr[0].type == '单兵设备') {
|
||||
message.success('单兵设备申请提交成功!')
|
||||
jumpToDetailsPageconetent()
|
||||
} else {
|
||||
let ids = []
|
||||
let falgNum = 0
|
||||
let sxt = true
|
||||
|
@ -543,70 +543,24 @@
|
|||
ids.push(item.id)
|
||||
}
|
||||
} else {
|
||||
let obj = {}
|
||||
Object.assign(obj, formName)
|
||||
console.log('摄像头===============>', obj, item)
|
||||
obj.system = []
|
||||
item.note1 = JSON.parse(item.note1)
|
||||
item.note1.map((sxt) => {
|
||||
obj.system.push({
|
||||
resourceId: sxt.idtCameraChannel + '',
|
||||
resourceName: sxt.channelName,
|
||||
cameraId: sxt.channelId, // 改接口后删除
|
||||
channelCode: sxt.channelCode,
|
||||
channelId: sxt.channelId,
|
||||
channelName: sxt.channelName,
|
||||
checkStatus: sxt.checkStatus + '',
|
||||
gpsX: sxt.gpsX,
|
||||
gpsY: sxt.gpsY,
|
||||
idtCameraChannel: sxt.idtCameraChannel + '',
|
||||
nodeName: sxt.nodeName,
|
||||
parentId: sxt.parentId,
|
||||
status: sxt.status + '',
|
||||
})
|
||||
})
|
||||
submitApply(obj).then((res) => {
|
||||
// applySuccess.value = false
|
||||
console.log('摄像头申请================>', res)
|
||||
if (item.id) {
|
||||
sgcDel({ ids: [item.id] }).then((res1) => {
|
||||
if (res1.data.msg === 'success') {
|
||||
if (falgNum == 0 && sxt) {
|
||||
message.success(
|
||||
'申请提交成功,请到消息中心查看!'
|
||||
)
|
||||
sxt = false
|
||||
}
|
||||
mybus.emit('getSgcNum')
|
||||
jumpToDetailsPageconetent()
|
||||
}
|
||||
})
|
||||
} else {
|
||||
if (
|
||||
res.data.msg === 'success' &&
|
||||
falgNum == 0 &&
|
||||
sxt
|
||||
) {
|
||||
message.success('申请提交成功,请到消息中心查看!')
|
||||
sxt = false
|
||||
}
|
||||
jumpToDetailsPageconetent()
|
||||
}
|
||||
})
|
||||
infrastructureConfirm(item, falgNum, sxt)
|
||||
}
|
||||
})
|
||||
})
|
||||
console.log(
|
||||
'提交数据==========================>',
|
||||
formName,
|
||||
ids
|
||||
)
|
||||
console.log('formName--ids-提交数据--------->', formName, ids)
|
||||
if (formName.system.length !== 0) {
|
||||
if (formName.applicationSystem.length == 0) {
|
||||
if (
|
||||
formName.applicationSystem &&
|
||||
formName.applicationSystem.length == 0
|
||||
) {
|
||||
formName.applicationSystem = ''
|
||||
}
|
||||
// 西海岸:单兵设备、无人机单独调取其他接口
|
||||
if (wrjAndDbText.includes(list.value[0].arr[0].type)) {
|
||||
handleWrjApply(formName)
|
||||
return
|
||||
}
|
||||
submitApply(formName).then((res) => {
|
||||
// applySuccess.value = false
|
||||
message.success('申请提交成功,请到消息中心查看!')
|
||||
console.log('能力申请================>', res)
|
||||
if (res.data.code == 0) {
|
||||
|
@ -618,11 +572,13 @@
|
|||
}
|
||||
})
|
||||
} else {
|
||||
// todo 融合服务
|
||||
if (
|
||||
Object.keys(integrationServicesItemInfo).length > 0
|
||||
) {
|
||||
// 融合服务
|
||||
if (integrationServicesId) {
|
||||
getIntegrationServicesDeatil(
|
||||
integrationServicesId
|
||||
).then((res) => {
|
||||
updateIntegrationServiceAction()
|
||||
})
|
||||
}
|
||||
jumpToDetailsPageconetent()
|
||||
}
|
||||
|
@ -631,7 +587,6 @@
|
|||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
} else {
|
||||
formName.applicationSystem = ''
|
||||
applyAllApplication(formName).then((res) => {
|
||||
|
@ -644,8 +599,70 @@
|
|||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 基础设施--数据下发
|
||||
const infrastructureConfirm = (item, falgNum, sxt) => {
|
||||
let obj = {}
|
||||
Object.assign(obj, formName)
|
||||
console.log('摄像头===============>', obj, item)
|
||||
obj.system = []
|
||||
if (item.note1 && typeof item.note1 == 'string') {
|
||||
item.note1 = JSON.parse(item.note1)
|
||||
}
|
||||
item.note1 &&
|
||||
item.note1.map((jcss) => {
|
||||
if (!jcss) {
|
||||
return
|
||||
}
|
||||
let _itemData = {
|
||||
resourceId: (jcss.idtCameraChannel || '') + '',
|
||||
resourceName: jcss.channelName,
|
||||
cameraId: jcss.channelId, // 改接口后删除
|
||||
channelCode: jcss.channelCode,
|
||||
channelId: jcss.channelId,
|
||||
channelName: jcss.channelName,
|
||||
checkStatus: jcss.checkStatus + '',
|
||||
gpsX: jcss.gpsX,
|
||||
gpsY: jcss.gpsY,
|
||||
idtCameraChannel: (jcss.idtCameraChannel || '') + '',
|
||||
nodeName: jcss.nodeName,
|
||||
parentId: jcss.parentId,
|
||||
status: jcss.status + '',
|
||||
}
|
||||
// 西海岸
|
||||
if (isXiHaiAn.value) {
|
||||
_itemData.managementUnitName = jcss.managementUnitName
|
||||
_itemData.cameraPointTypeName = jcss.cameraPointTypeName
|
||||
}
|
||||
obj.system.push(_itemData)
|
||||
})
|
||||
submitApply(obj).then((res) => {
|
||||
// applySuccess.value = false
|
||||
console.log('摄像头申请================>', res)
|
||||
if (item.id) {
|
||||
sgcDel({ ids: [item.id] }).then((res1) => {
|
||||
if (res1.data.msg === 'success') {
|
||||
if (falgNum == 0 && sxt) {
|
||||
message.success('申请提交成功,请到消息中心查看!')
|
||||
sxt = false
|
||||
}
|
||||
mybus.emit('getSgcNum')
|
||||
jumpToDetailsPageconetent()
|
||||
}
|
||||
})
|
||||
} else {
|
||||
if (res.data.msg === 'success' && falgNum == 0 && sxt) {
|
||||
message.success('申请提交成功,请到消息中心查看!')
|
||||
sxt = false
|
||||
}
|
||||
jumpToDetailsPageconetent()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 启动流程
|
||||
const startProcess = (processDefinitionKey, businessKey, formData) => {
|
||||
var data = {
|
||||
|
@ -795,7 +812,7 @@
|
|||
mybus.off('reomveOldData')
|
||||
})
|
||||
|
||||
// 融合服务-更新 todo
|
||||
// 融合服务-更新
|
||||
const updateIntegrationServiceAction = () => {
|
||||
let _applyCount =
|
||||
Number(integrationServicesItemInfo.value.applyCount || 0) + 1
|
||||
|
@ -810,6 +827,59 @@
|
|||
console.log('err----更新-------->', err)
|
||||
})
|
||||
}
|
||||
|
||||
// 融合服务--详情
|
||||
const getIntegrationServicesDeatil = (id) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
getIntegrationDetail(id).then(
|
||||
(res) => {
|
||||
resolve(res)
|
||||
if (res.data.code !== 0) {
|
||||
return message.error(res.data.msg)
|
||||
}
|
||||
integrationServicesItemInfo.value = res.data.data || {}
|
||||
},
|
||||
(err) => {
|
||||
reject(err)
|
||||
message.error(err)
|
||||
}
|
||||
)
|
||||
})
|
||||
}
|
||||
|
||||
// 西海岸:单兵设备、无人机提交申请
|
||||
const handleWrjApply = (formName) => {
|
||||
let _data = {
|
||||
deviceId:
|
||||
formName.system &&
|
||||
formName.system[0] &&
|
||||
formName.system[0].resourceId,
|
||||
deviceName:
|
||||
formName.system &&
|
||||
formName.system[0] &&
|
||||
formName.system[0].resourceName,
|
||||
title: formName.title,
|
||||
name: formName.user,
|
||||
phone: formName.phone,
|
||||
dept: formName.unit, // 单位
|
||||
applicationSystem: formName.applicationSystem, // 应用系统
|
||||
applicationArea: JSON.stringify(formName.applicationScene), // 应用领域
|
||||
demand: formName.applicationBackground, // 需求依据
|
||||
}
|
||||
soldierApply(_data)
|
||||
.then((res) => {
|
||||
if (res.data.code == 0) {
|
||||
message.success(res.data.msg)
|
||||
jumpToDetailsPageconetent()
|
||||
} else {
|
||||
message.error('申请失败!')
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
message.error(err)
|
||||
})
|
||||
}
|
||||
|
||||
return {
|
||||
deptIdChangeFunction,
|
||||
formRef,
|
||||
|
@ -841,6 +911,10 @@
|
|||
applicationSceneOpthion,
|
||||
flag,
|
||||
applyAll,
|
||||
getIntegrationServicesDeatil,
|
||||
isCamera,
|
||||
isXiHaiAn,
|
||||
expireDateOptions,
|
||||
}
|
||||
},
|
||||
}
|
||||
|
@ -853,6 +927,7 @@
|
|||
margin: 0.8rem auto 0;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
aside {
|
||||
width: 282px;
|
||||
height: 96%;
|
||||
|
@ -860,6 +935,7 @@
|
|||
background-color: #fff;
|
||||
margin: 1% 0 3%;
|
||||
}
|
||||
|
||||
article {
|
||||
width: 1090px;
|
||||
height: 99%;
|
||||
|
@ -867,8 +943,10 @@
|
|||
background-color: #fff;
|
||||
margin: 1% auto;
|
||||
}
|
||||
|
||||
.form-container {
|
||||
padding: 20px 20px 30px 20px;
|
||||
|
||||
.title {
|
||||
font-size: 20px;
|
||||
color: #000;
|
||||
|
@ -876,52 +954,68 @@
|
|||
margin-bottom: 20px;
|
||||
}
|
||||
}
|
||||
|
||||
.base-info {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.flex-row-start {
|
||||
justify-content: flex-start;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
:deep(.ant-form-item-label) {
|
||||
label {
|
||||
color: #666;
|
||||
font-size: 16px;
|
||||
|
||||
&::after {
|
||||
content: '';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.ant-form-item-required) {
|
||||
&::before {
|
||||
font-size: 8px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.ant-input) {
|
||||
border: 1px solid #e0e0e0;
|
||||
border-radius: 6px;
|
||||
}
|
||||
|
||||
.success {
|
||||
div {
|
||||
width: 100px;
|
||||
margin: 80px auto 40px;
|
||||
}
|
||||
|
||||
text-align: center;
|
||||
font-size: 20px;
|
||||
font-weight: bold;
|
||||
color: #000;
|
||||
}
|
||||
}
|
||||
|
||||
.applicationScene {
|
||||
:deep(.ant-select-selector) {
|
||||
overflow-x: scroll;
|
||||
}
|
||||
|
||||
:deep(.ant-select-selection-overflow) {
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
}
|
||||
|
||||
textarea {
|
||||
resize: none;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.bottom-btn {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
|
|
|
@ -27,9 +27,12 @@
|
|||
<span class="label" v-if="props.dataList.shareCondition">
|
||||
{{ props.dataList.shareCondition }}
|
||||
</span>
|
||||
|
||||
</p>
|
||||
|
||||
</div>
|
||||
<!-- <span class="label">免费</span> -->
|
||||
|
||||
</div>
|
||||
<div class="main">
|
||||
<!-- <a-tooltip placement="top">
|
||||
|
@ -42,6 +45,11 @@
|
|||
{{ props.dataList.description }}
|
||||
</div>
|
||||
</a-tooltip>
|
||||
<div style="padding-top:20px">
|
||||
<span >场景入口:</span>
|
||||
<span style="margin-left:10px;cursor: pointer; text-decoration: underline;"
|
||||
@click="openScene(props.dataList.sceneUrl)">{{(props.dataList.sceneUrl)}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom" v-if="props.dataList.id">
|
||||
<!-- 融合服务 存在fuseResourceList -->
|
||||
|
@ -72,7 +80,9 @@
|
|||
</a-button> -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="right"></div>
|
||||
<div class="right">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
|
@ -113,6 +123,10 @@
|
|||
)
|
||||
})
|
||||
}
|
||||
}
|
||||
//进入场景入口
|
||||
const openScene = (val) => {
|
||||
window.open(val, "_blank");
|
||||
}
|
||||
// // 立即申请
|
||||
function toView() {
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<div class="box">
|
||||
<div class="CanCase">
|
||||
<div class="caseBox" v-for="(item, index) in caseList" :key="index" @click="toView(item)">
|
||||
<a-image :preview="false" :src="
|
||||
<a-image :preview="false" style="width:300px;height:200px" :src="
|
||||
item.fuseAttrList.filter((val) => val.attrType == '服务图片')[0]
|
||||
.attrValue
|
||||
" />
|
||||
|
|
|
@ -0,0 +1,46 @@
|
|||
<template>
|
||||
<div class="tag-box">
|
||||
<div class="tag-item" v-for="(item, index) in tagList" :key="index">
|
||||
{{item}}
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import { ref, onMounted, onBeforeUnmount, watch, defineProps, defineEmits } from 'vue'
|
||||
|
||||
import { useRouter } from 'vue-router'
|
||||
const router = useRouter()
|
||||
const props = defineProps({
|
||||
componentServiceTagList: {
|
||||
type: Object,
|
||||
default: () => { },
|
||||
},
|
||||
})
|
||||
|
||||
const tagList = ref([])
|
||||
onMounted(() => {
|
||||
tagList.value = props.componentServiceTagList
|
||||
})
|
||||
|
||||
watch(
|
||||
() => props.componentServiceTagList,
|
||||
(val) => {
|
||||
if (val) {
|
||||
tagList.value = val
|
||||
}
|
||||
}
|
||||
)
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
.tag-item {
|
||||
font-family: 'Alibaba PuHuiTi';
|
||||
font-weight: 400;
|
||||
border-radius: 0.12rem;
|
||||
margin: 0 10px;
|
||||
padding: 2px 8px;
|
||||
font-size: 12px;
|
||||
color: #0087ff;
|
||||
background: rgba(0, 88, 225, 0.1);
|
||||
}
|
||||
</style>
|
||||
|
|
@ -7,7 +7,7 @@
|
|||
]"
|
||||
>
|
||||
<div class="name" @click="goToHome">
|
||||
<div class="name-bg" v-if="!whoShow1.itShowXiHaiAn"></div>
|
||||
<div class="name-bg" v-if="!itShowXiHaiAn"></div>
|
||||
<div class="name-bg-xihaian" v-else></div>
|
||||
<div class="name-content">
|
||||
<p>城市云脑通用能力服务平台</p>
|
||||
|
@ -23,8 +23,8 @@
|
|||
>
|
||||
{{ item.name }}
|
||||
</div>
|
||||
<a-badge :count="sgcNum">
|
||||
<!-- 购物车 -->
|
||||
<a-badge :count="sgcNum">
|
||||
<svg
|
||||
t="1650455446850"
|
||||
class="icon"
|
||||
|
@ -42,7 +42,6 @@
|
|||
p-id="2070"
|
||||
></path>
|
||||
</svg>
|
||||
<!-- <a-avatar shape="square" size="large" /> -->
|
||||
</a-badge>
|
||||
<a-badge :count="mynoticeNum" style="margin-left: 0.2rem">
|
||||
<!-- 消息提醒 -->
|
||||
|
@ -87,13 +86,13 @@
|
|||
<i class="img"></i>
|
||||
<a-tooltip placement="bottom">
|
||||
<template #title>
|
||||
<span>{{ user.username }}</span>
|
||||
<span>{{ user.realName }}</span>
|
||||
</template>
|
||||
<span
|
||||
class="name"
|
||||
@click="jumpPage({ name: '个人中心', key: 'personalCenter' })"
|
||||
>
|
||||
{{ user.username }}
|
||||
{{ user.realName }}
|
||||
</span>
|
||||
</a-tooltip>
|
||||
<span @click="logout" class="out">退出</span>
|
||||
|
@ -118,12 +117,14 @@
|
|||
<i
|
||||
@click="jumpPage({ name: '后台管理', key: 'houtaiguanli' })"
|
||||
class="iconTo"
|
||||
v-show="backFlag"
|
||||
></i>
|
||||
</div>
|
||||
</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'
|
||||
|
@ -132,21 +133,31 @@
|
|||
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 whoShow1 = whoShow
|
||||
// 用户信息
|
||||
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([])
|
||||
console.log('navListManagement------------>', navListManagement)
|
||||
|
||||
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
|
||||
}
|
||||
})
|
||||
console.log('navList------------>', navList)
|
||||
|
||||
const props = defineProps({
|
||||
|
@ -156,12 +167,9 @@
|
|||
// 退出登录
|
||||
const logout = async () => {
|
||||
await store.dispatch('user/logout')
|
||||
// 移除本地存储查询条件
|
||||
localStorage.removeItem('integrationServices')
|
||||
localStorage.removeItem('DetailsPageconetent')
|
||||
window.sessionStorage.setItem('visits', JSON.stringify([]))
|
||||
// 西海岸不返回登录页
|
||||
if (!whoShow1.itShowXiHaiAn) {
|
||||
if (!itShowXiHaiAn.value) {
|
||||
if (recordRoute) {
|
||||
const fullPath = route.fullPath
|
||||
router.push(`/login?redirect=${fullPath}`)
|
||||
|
@ -178,7 +186,16 @@
|
|||
}
|
||||
// 跳转页面
|
||||
const jumpPage = (item) => {
|
||||
// console.log(item)
|
||||
// 西海岸
|
||||
if (itShowXiHaiAn.value) {
|
||||
let _arr = ['共享门户', '能力云图', '能力统计', '需求中心', '赋能案例']
|
||||
if (
|
||||
_arr.includes(item.name) &&
|
||||
!xhaHasPermissionUser.list.includes(user.value.username)
|
||||
) {
|
||||
return message.warn('暂无权限')
|
||||
}
|
||||
}
|
||||
select.value = item.key
|
||||
switch (item.name) {
|
||||
case '个人中心':
|
||||
|
@ -196,8 +213,7 @@
|
|||
router.push({
|
||||
path: '/DetailsPageconetent',
|
||||
query: {
|
||||
// select: '组件服务',
|
||||
select: DETAIL_PAGE_CONTENT_DEFAULT_TAB
|
||||
select: DETAIL_PAGE_CONTENT_DEFAULT_TAB,
|
||||
},
|
||||
})
|
||||
break
|
||||
|
@ -206,7 +222,12 @@
|
|||
path: '/capabilityCloud',
|
||||
})
|
||||
break
|
||||
case '技术文档':
|
||||
// case '技术文档':
|
||||
// router.push({
|
||||
// path: '/developmentGuide',
|
||||
// })
|
||||
// break
|
||||
case '新手指南':
|
||||
router.push({
|
||||
path: '/instructionManual',
|
||||
})
|
||||
|
@ -338,6 +359,7 @@
|
|||
font-family: 'header-typeface';
|
||||
src: url('~@/assets/newHome/font/header-typeface.ttf');
|
||||
}
|
||||
|
||||
.home-header {
|
||||
height: 0.64rem;
|
||||
width: 100%;
|
||||
|
@ -350,10 +372,12 @@
|
|||
position: fixed;
|
||||
z-index: 1000;
|
||||
top: 0;
|
||||
|
||||
div {
|
||||
color: #fff;
|
||||
font-size: 0.16rem;
|
||||
}
|
||||
|
||||
.name {
|
||||
cursor: pointer;
|
||||
font-size: 0.22rem;
|
||||
|
@ -361,6 +385,7 @@
|
|||
margin-right: 0.2rem;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.name-bg {
|
||||
height: 0.6rem;
|
||||
width: 0.6rem;
|
||||
|
@ -368,6 +393,7 @@
|
|||
background-size: 100%;
|
||||
margin-right: 0.15rem;
|
||||
}
|
||||
|
||||
.name-bg-xihaian {
|
||||
height: 0.6rem;
|
||||
width: 0.6rem;
|
||||
|
@ -376,37 +402,45 @@
|
|||
background-size: 100%;
|
||||
margin-right: 0.15rem;
|
||||
}
|
||||
|
||||
.name-content {
|
||||
padding-top: 0.14rem;
|
||||
|
||||
p {
|
||||
font-size: 0.2rem;
|
||||
margin-bottom: 0;
|
||||
|
||||
&:nth-of-type(2) {
|
||||
font-size: 0.12rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.nav {
|
||||
width: 1.2rem;
|
||||
height: 0.64rem;
|
||||
line-height: 0.64rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.nav:hover {
|
||||
background: #0058e1;
|
||||
color: #fff;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.select {
|
||||
background: #0058e1;
|
||||
color: #fff !important;
|
||||
}
|
||||
|
||||
.info {
|
||||
// width: 2rem;
|
||||
margin-left: 0.2rem;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
|
||||
.img {
|
||||
width: 0.3rem;
|
||||
height: 0.3rem;
|
||||
|
@ -414,6 +448,7 @@
|
|||
background: url('~@/assets/newHome/user.png') no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
span {
|
||||
height: 0.3rem;
|
||||
line-height: 0.3rem;
|
||||
|
@ -421,6 +456,7 @@
|
|||
margin-right: 0.06rem;
|
||||
font-size: 0.16rem;
|
||||
}
|
||||
|
||||
.name {
|
||||
max-width: 2.3rem;
|
||||
text-overflow: ellipsis;
|
||||
|
@ -430,22 +466,27 @@
|
|||
overflow: hidden;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.out {
|
||||
cursor: pointer;
|
||||
// padding: 0 0.16rem;
|
||||
padding: 0 0.04rem 0 0.1rem;
|
||||
border-left: 0.01rem solid #666;
|
||||
}
|
||||
|
||||
.icon {
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.white {
|
||||
background-color: #fff;
|
||||
box-shadow: 0 0.02rem 0.1rem rgba(0, 0, 0, 0.1);
|
||||
|
||||
.name {
|
||||
color: #0058e1;
|
||||
|
||||
.name-bg {
|
||||
height: 0.6rem;
|
||||
width: 0.6rem;
|
||||
|
@ -453,22 +494,27 @@
|
|||
background-size: 100%;
|
||||
margin-right: 0.15rem;
|
||||
}
|
||||
|
||||
p {
|
||||
color: #0058e1;
|
||||
}
|
||||
}
|
||||
|
||||
.icon {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.nav {
|
||||
color: #000;
|
||||
}
|
||||
|
||||
.info {
|
||||
span {
|
||||
color: #000;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.blue {
|
||||
position: absolute;
|
||||
background: linear-gradient(
|
||||
|
@ -476,22 +522,27 @@
|
|||
rgba(15, 90, 253, 0.8),
|
||||
rgba(36, 25, 248, 0.8)
|
||||
);
|
||||
|
||||
.name {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.nav {
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.nav:hover {
|
||||
background: #fff;
|
||||
color: #0058e1;
|
||||
}
|
||||
|
||||
.info {
|
||||
span {
|
||||
color: #fff;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.mynotice {
|
||||
width: 4rem;
|
||||
height: 3rem;
|
||||
|
@ -501,6 +552,7 @@
|
|||
top: 0.45rem;
|
||||
right: 2.4rem;
|
||||
overflow-y: scroll;
|
||||
|
||||
.bottom {
|
||||
cursor: pointer;
|
||||
width: 100%;
|
||||
|
@ -509,13 +561,16 @@
|
|||
font-size: 0.16rem;
|
||||
}
|
||||
}
|
||||
|
||||
.mynotice::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
:deep(.ant-list-item) {
|
||||
border-bottom: 0.01rem solid #ccc;
|
||||
padding: 0.1rem;
|
||||
}
|
||||
|
||||
:deep(.ant-list-item-meta-title) {
|
||||
// display: flex;
|
||||
// justify-content: space-around;
|
||||
|
@ -530,17 +585,20 @@
|
|||
word-break: break-all;
|
||||
-webkit-box-orient: vertical;
|
||||
}
|
||||
|
||||
button {
|
||||
width: 0.7rem;
|
||||
height: 0.25rem;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
span {
|
||||
font-size: 0.1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.iconTo {
|
||||
display: block;
|
||||
width: 0.35rem;
|
||||
|
|
|
@ -33,11 +33,11 @@ const orderList = [
|
|||
name: '发布时间',
|
||||
orderType: 'DESC',
|
||||
},
|
||||
{
|
||||
value: 'update_date',
|
||||
name: '更新时间',
|
||||
orderType: 'DESC',
|
||||
},
|
||||
// {
|
||||
// value: 'update_date',
|
||||
// name: '更新时间',
|
||||
// orderType: 'DESC',
|
||||
// },
|
||||
]
|
||||
const integrationOrderList = ref(JSON.parse(JSON.stringify(orderList)))
|
||||
const integrationOrder = reactive({
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
<template>
|
||||
<div id="search-result-list-container">
|
||||
<div class="shai-xuan">
|
||||
<!-- <div class="circle">!</div> -->
|
||||
<div class="result">
|
||||
检测结果:
|
||||
<span>{{ resourceTotal || '' }}</span>
|
||||
|
@ -9,55 +10,82 @@
|
|||
}}
|
||||
</div>
|
||||
<div class="condition" :key="showKey">
|
||||
<IntegrationServiceOrder ref="integrationServiceOrderDom" v-if="
|
||||
<IntegrationServiceOrder
|
||||
ref="integrationServiceOrderDom"
|
||||
v-if="
|
||||
selectCardsname === '融合服务' || selectCardsname === '赋能场景'
|
||||
"></IntegrationServiceOrder>
|
||||
"
|
||||
></IntegrationServiceOrder>
|
||||
<ul v-else>
|
||||
<li v-for="(item, i) in selList" :key="i" @click="changeCondition(item)" v-show="
|
||||
<li
|
||||
v-for="(item, i) in selList"
|
||||
:key="i"
|
||||
@click="changeCondition(item)"
|
||||
v-show="
|
||||
item.show &&
|
||||
item.name !== '评分' &&
|
||||
selectCardsname !== '数据资源'
|
||||
">
|
||||
"
|
||||
>
|
||||
{{ item.name }}
|
||||
<!-- {{orderObj.orderType}}{{orderObj.orderField}} -->
|
||||
<!-- <span class="arrow" :class="item.value == selData ? 'down' : ''"></span> -->
|
||||
<!-- {{orderObj.orderType == 'ASC' ? '11' : '22'}} -->
|
||||
<!-- {{orderObj.orderField == item.value ? '11' : '22'}} -->
|
||||
<span class="arrow" :class="
|
||||
orderObj.orderType == 'ASC' &&
|
||||
orderObj.orderField == item.value
|
||||
<span
|
||||
class="arrow"
|
||||
:class="
|
||||
orderObj.orderType == 'ASC' && orderObj.orderField == item.value
|
||||
? 'down'
|
||||
: ''
|
||||
"></span>
|
||||
"
|
||||
></span>
|
||||
</li>
|
||||
</ul>
|
||||
<!-- {{JSON.stringify(orderObj)}} -->
|
||||
</div>
|
||||
</div>
|
||||
<div class="result-list" v-for="(item, index) in resourceList.data" :key="item.index">
|
||||
<div
|
||||
class="result-list"
|
||||
v-for="(item, index) in resourceList.data"
|
||||
:key="item.index"
|
||||
>
|
||||
<div class="item" :key="showKey">
|
||||
<div class="left" style="display: flex; align-items: center" v-if="
|
||||
<div
|
||||
class="left"
|
||||
style="display: flex; align-items: center"
|
||||
v-if="
|
||||
item.type === '应用资源' &&
|
||||
item.infoList &&
|
||||
item.infoList.filter((val) => val.attrType == '应用图片')[0]
|
||||
">
|
||||
<a-image :width="106" :preview="false" :src="
|
||||
"
|
||||
>
|
||||
<a-image
|
||||
:width="106"
|
||||
:preview="false"
|
||||
:src="
|
||||
item.infoList.filter((val) => val.attrType == '应用图片')[0]
|
||||
.attrValue
|
||||
" />
|
||||
"
|
||||
/>
|
||||
</div>
|
||||
<div class="left" style="display: flex; align-items: center" v-else-if="
|
||||
<div
|
||||
class="left"
|
||||
style="display: flex; align-items: center"
|
||||
v-else-if="
|
||||
(selectCardsname === '融合服务' ||
|
||||
selectCardsname === '赋能场景') &&
|
||||
item.fuseAttrList &&
|
||||
item.fuseAttrList.filter((val) => val.attrType == '服务图片')[0]
|
||||
">
|
||||
<a-image :width="106" :preview="false" :src="
|
||||
"
|
||||
>
|
||||
<a-image
|
||||
:width="106"
|
||||
:preview="false"
|
||||
:src="
|
||||
item.fuseAttrList.filter((val) => val.attrType == '服务图片')[0]
|
||||
.attrValue
|
||||
" />
|
||||
"
|
||||
/>
|
||||
</div>
|
||||
<div class="left" :class="
|
||||
<div
|
||||
class="left"
|
||||
:class="
|
||||
item.type == '应用资源'
|
||||
? 'yyzy'
|
||||
: !item.type
|
||||
|
@ -82,49 +110,122 @@
|
|||
.attrValue == '业务组件'
|
||||
? 'ywzj'
|
||||
: ''
|
||||
" @click="toView('details', item)" v-else-if="
|
||||
"
|
||||
@click="toView('details', item)"
|
||||
v-else-if="
|
||||
selectCardsname !== '基础设施' &&
|
||||
selectCardsname !== '融合服务' &&
|
||||
selectCardsname !== '赋能场景'
|
||||
"></div>
|
||||
"
|
||||
></div>
|
||||
<div class="left jcss" v-else-if="selectCardsname === '基础设施'"></div>
|
||||
<div class="left rhfw" v-else-if="
|
||||
<div
|
||||
class="left rhfw"
|
||||
v-else-if="
|
||||
selectCardsname === '融合服务' || selectCardsname === '赋能场景'
|
||||
"></div>
|
||||
"
|
||||
></div>
|
||||
<div class="right" @click="toView('details', item)">
|
||||
<div class="header">
|
||||
<span style="display: flex; align-items: center; width: 680px">
|
||||
{{ item.name }}
|
||||
<!-- 已申请--通过 -->
|
||||
<svg t="1652322568870" class="icon" viewBox="0 0 3072 1024" version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg" p-id="3062" width="40" height="40" v-if="
|
||||
<svg
|
||||
t="1652322568870"
|
||||
class="icon"
|
||||
viewBox="0 0 3072 1024"
|
||||
version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
p-id="3062"
|
||||
width="40"
|
||||
height="40"
|
||||
v-if="
|
||||
item.applyState == '已申请' && item.approveStatus == '通过'
|
||||
" style="margin-left: 10px; min-width: 40px">
|
||||
"
|
||||
style="margin-left: 10px; min-width: 40px"
|
||||
>
|
||||
<path
|
||||
d="M2958.222222 0a113.777778 113.777778 0 0 1 113.777778 113.777778v796.444444a113.777778 113.777778 0 0 1-113.777778 113.777778H500.053333a113.777778 113.777778 0 0 1-85.617777-38.798222L32.824889 549.432889a56.888889 56.888889 0 0 1 0-74.922667L414.435556 38.798222A113.777778 113.777778 0 0 1 499.996444 0H2958.222222z m0 56.888889H500.053333a56.888889 56.888889 0 0 0-42.837333 19.399111L75.605333 512l381.610667 435.712a56.888889 56.888889 0 0 0 42.780444 19.399111H2958.222222a56.888889 56.888889 0 0 0 56.888889-56.888889V113.777778a56.888889 56.888889 0 0 0-56.888889-56.888889z"
|
||||
fill="#d81e06" p-id="3063"></path>
|
||||
fill="#d81e06"
|
||||
p-id="3063"
|
||||
></path>
|
||||
<path
|
||||
d="M398.222222 398.222222a113.777778 113.777778 0 1 1 0 227.555556 113.777778 113.777778 0 0 1 0-227.555556z m0 56.888889a56.888889 56.888889 0 1 0 0 113.777778 56.888889 56.888889 0 0 0 0-113.777778z"
|
||||
fill="#d81e06" p-id="3064"></path>
|
||||
fill="#d81e06"
|
||||
p-id="3064"
|
||||
></path>
|
||||
<path
|
||||
d="M1309.582222 491.064889v-273.066667h-505.173333v47.786667h455.338667v178.176h-378.88V342.926222h-49.152v358.4c0 55.978667 27.306667 84.650667 82.602666 84.650667h370.005334c28.672-1.365333 51.2-8.874667 66.218666-23.210667 16.384-17.749333 27.989333-68.266667 34.816-152.917333l-47.786666-15.018667-1.706667 26.737778c-4.664889 58.766222-12.970667 93.582222-24.917333 104.334222-10.24 8.192-23.893333 12.288-40.277334 12.288h-342.698666c-31.402667 0-47.104-15.701333-47.104-45.738666v-201.386667h428.714666z m430.08-307.2v102.4h-219.136v386.389333h48.469334v-46.421333h170.666666v178.858667h50.517334v-178.858667h167.936v41.642667h48.469333V286.264889h-216.405333v-102.4h-50.517334z m-170.666666 395.946667v-102.4h170.666666v102.4h-170.666666z m221.184 0v-102.4h167.936v102.4h-167.936z m-221.184-146.773334V332.003556h170.666666v101.034666h-170.666666z m221.184 0V332.003556h167.936v101.034666h-167.936z m733.866666-251.221333v44.373333h-165.205333v40.277334h165.205333v45.738666h-137.898666v39.594667h137.898666V398.222222h-184.32v40.96h417.792V398.222222h-186.368v-46.421333h144.725334v-39.594667h-144.725334v-45.738666h169.301334v-40.277334h-169.301334v-44.373333h-47.104z m-85.333333 429.397333h220.501333v49.834667h-220.501333v-49.834667z m220.501333-38.229333h-220.501333v-50.517333h220.501333v50.517333z m-220.501333 126.293333h220.501333v38.912c0 15.701333-8.874667 23.893333-25.258666 23.893334l-54.613334-2.048 11.605334 43.690666h57.344c38.229333 0 58.026667-18.432 58.026666-55.296v-266.24H2391.608889V807.822222h47.104v-108.544z m-222.549333-509.952l-34.816 33.450667c49.152 36.864 88.064 71.68 116.736 104.448l33.450666-34.133333a795.079111 795.079111 0 0 0-115.370666-103.765334z m-82.602667 201.386667h144.725333v299.690667c20.48-19.114667 41.642667-40.277333 64.853334-64.170667l12.970666 51.882667a923.932444 923.932444 0 0 1-121.514666 105.813333l-19.114667-43.690667c10.24-9.557333 15.701333-19.797333 15.701333-31.402666V437.816889h-97.621333v-47.104z"
|
||||
fill="#d81e06" p-id="3065"></path>
|
||||
fill="#d81e06"
|
||||
p-id="3065"
|
||||
></path>
|
||||
</svg>
|
||||
<!-- 审核中 -->
|
||||
<!-- <svg
|
||||
t="1652322568870"
|
||||
class="icon"
|
||||
viewBox="0 0 3072 1024"
|
||||
version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
p-id="3062"
|
||||
width="40"
|
||||
height="40"
|
||||
v-if="
|
||||
item.applyState == '已申请' && item.approveStatus == '审核中'
|
||||
"
|
||||
style="margin-left: 10px; min-width: 40px"
|
||||
>
|
||||
<path
|
||||
d="M2958.222222 0a113.777778 113.777778 0 0 1 113.777778 113.777778v796.444444a113.777778 113.777778 0 0 1-113.777778 113.777778H500.053333a113.777778 113.777778 0 0 1-85.617777-38.798222L32.824889 549.432889a56.888889 56.888889 0 0 1 0-74.922667L414.435556 38.798222A113.777778 113.777778 0 0 1 499.996444 0H2958.222222z m0 56.888889H500.053333a56.888889 56.888889 0 0 0-42.837333 19.399111L75.605333 512l381.610667 435.712a56.888889 56.888889 0 0 0 42.780444 19.399111H2958.222222a56.888889 56.888889 0 0 0 56.888889-56.888889V113.777778a56.888889 56.888889 0 0 0-56.888889-56.888889z"
|
||||
fill="#d81e06"
|
||||
p-id="3063"
|
||||
></path>
|
||||
<path
|
||||
d="M398.222222 398.222222a113.777778 113.777778 0 1 1 0 227.555556 113.777778 113.777778 0 0 1 0-227.555556z m0 56.888889a56.888889 56.888889 0 1 0 0 113.777778 56.888889 56.888889 0 0 0 0-113.777778z"
|
||||
fill="#d81e06"
|
||||
p-id="3064"
|
||||
></path>
|
||||
</svg>
|
||||
<span
|
||||
v-if="
|
||||
item.applyState == '已申请' && item.approveStatus == '审核中'
|
||||
"
|
||||
style="
|
||||
font-size: 12px;
|
||||
-webkit-transform: scale(0.75);
|
||||
color: #d81e06;
|
||||
position: relative;
|
||||
left: -35px;
|
||||
top: -0.6px;
|
||||
font-weight: 500;
|
||||
"
|
||||
>
|
||||
审核中
|
||||
</span> -->
|
||||
</span>
|
||||
<div class="header-right">
|
||||
<div v-if="
|
||||
<div
|
||||
v-if="
|
||||
selectCardsname === '融合服务' ||
|
||||
selectCardsname === '赋能场景'
|
||||
" class="label-content">
|
||||
<template v-if="
|
||||
"
|
||||
class="label-content"
|
||||
>
|
||||
<template
|
||||
v-if="
|
||||
item.fuseAttrList &&
|
||||
item.fuseAttrList.filter(
|
||||
(val) => val.attrType == '应用领域'
|
||||
)[0]
|
||||
">
|
||||
<span class="label" v-for="(data, index) in item.fuseAttrList
|
||||
"
|
||||
>
|
||||
<span
|
||||
class="label"
|
||||
v-for="(data, index) in item.fuseAttrList
|
||||
.filter((val) => val.attrType == '应用领域')[0]
|
||||
.attrValue.split(';')" :key="index">
|
||||
.attrValue.split(';')"
|
||||
:key="index"
|
||||
>
|
||||
{{ data }}
|
||||
</span>
|
||||
</template>
|
||||
|
@ -142,15 +243,21 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="dec">
|
||||
<div v-if="
|
||||
<div
|
||||
v-if="
|
||||
selectCardsname !== '融合服务' &&
|
||||
selectCardsname !== '赋能场景' &&
|
||||
selectCardsname !== '基础设施'
|
||||
">
|
||||
"
|
||||
>
|
||||
<span>{{ item.deptName || '--' }}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="selectCardsname !== '基础设施'" style="margin-top: 0.1rem" class="description">
|
||||
<div
|
||||
v-if="selectCardsname !== '基础设施'"
|
||||
style="margin-top: 0.1rem"
|
||||
class="description"
|
||||
>
|
||||
<a-tooltip>
|
||||
<template #title>{{ item.description }}</template>
|
||||
{{ item.description || '--' }}
|
||||
|
@ -168,18 +275,23 @@
|
|||
>
|
||||
浏览量:{{ item.visits || 0 }}次
|
||||
</div> -->
|
||||
<div v-if="
|
||||
<div
|
||||
v-if="
|
||||
selectCardsname !== '数据资源' &&
|
||||
selectCardsname !== '融合服务' &&
|
||||
selectCardsname !== '赋能场景' &&
|
||||
(selectCardsname !== '应用资源' || whoShow1.itShowQingDao)
|
||||
">
|
||||
"
|
||||
>
|
||||
申请量:{{ item.applyCount || 0 }}次
|
||||
</div>
|
||||
<div v-if="
|
||||
<div
|
||||
v-if="
|
||||
selectCardsname === '数据资源' &&
|
||||
selectCardsname !== '融合服务' &&
|
||||
selectCardsname !== '赋能场景'
|
||||
">
|
||||
"
|
||||
>
|
||||
数据量:{{ item.sjlCount || 0 }}
|
||||
</div>
|
||||
<div v-if="selectCardsname !== '数据资源'">
|
||||
|
@ -189,39 +301,75 @@
|
|||
</div>
|
||||
<div class="right" v-if="selectCardsname !== '基础设施'">
|
||||
<div class="shopping" :key="shoppingKey">
|
||||
<template v-if="
|
||||
<template
|
||||
v-if="
|
||||
(selectCardsname == '组件服务' &&
|
||||
item.infoList.filter(
|
||||
(val) => val.attrType == '外部服务地址'
|
||||
).length === 0) ||
|
||||
(selectCardsname == '应用资源' && whoShow1.itShowQingDao)
|
||||
">
|
||||
<span class="shopping-down" v-if="item.isInShoppingCart"></span>
|
||||
<span class="shopping-on" v-else @click.stop="addShoppingCart(item, index)"></span>
|
||||
"
|
||||
>
|
||||
<span
|
||||
class="shopping-down"
|
||||
v-if="item.isInShoppingCart"
|
||||
></span>
|
||||
<span
|
||||
class="shopping-on"
|
||||
v-else
|
||||
@click.stop="addShoppingCart(item, index)"
|
||||
></span>
|
||||
</template>
|
||||
</div>
|
||||
<div class="sc">
|
||||
<span class="sc-down" v-if="item.isCollect == 'false'" @click.stop="addCollect(item)"></span>
|
||||
<span class="sc-on" v-if="item.isCollect == 'true'" @click.stop="addCollect(item)"></span>
|
||||
<span
|
||||
class="sc-down"
|
||||
v-if="item.isCollect == 'false'"
|
||||
@click.stop="addCollect(item)"
|
||||
></span>
|
||||
<span
|
||||
class="sc-on"
|
||||
v-if="item.isCollect == 'true'"
|
||||
@click.stop="addCollect(item)"
|
||||
></span>
|
||||
</div>
|
||||
<div class="shopping pk" :key="pk" v-show="
|
||||
<div
|
||||
class="shopping pk"
|
||||
:key="pk"
|
||||
v-show="
|
||||
cardType == '组件服务' && findComponentName(item, '智能算法')
|
||||
">
|
||||
<span class="pk-on" @click.stop="goComparePk(item, index)"></span>
|
||||
"
|
||||
>
|
||||
<span
|
||||
class="pk-on"
|
||||
@click.stop="goComparePk(item, index)"
|
||||
></span>
|
||||
</div>
|
||||
<a-button type="primary" @click.stop="toView('details', item)" v-if="!whoShow1.itShowBaoTou">
|
||||
<a-button
|
||||
type="primary"
|
||||
@click.stop="toView('details', item)"
|
||||
v-if="!whoShow1.itShowBaoTou"
|
||||
>
|
||||
查看详情
|
||||
</a-button>
|
||||
<a-button style="margin-left: 10px" v-show="
|
||||
<a-button
|
||||
style="margin-left: 10px"
|
||||
v-show="
|
||||
selectCardsname === '融合服务' ||
|
||||
selectCardsname === '赋能场景'
|
||||
" @click.stop="handleAKeyApplication(item)">
|
||||
"
|
||||
@click.stop="handleAKeyApplication(item)"
|
||||
>
|
||||
一键申请
|
||||
</a-button>
|
||||
<a-button type="primary" @click.stop="toView('apply', item)" v-show="
|
||||
<a-button
|
||||
type="primary"
|
||||
@click.stop="toView('apply', item)"
|
||||
v-show="
|
||||
cardType == '组件服务' ||
|
||||
(cardType == '应用资源' && whoShow1.itShowQingDao)
|
||||
">
|
||||
"
|
||||
>
|
||||
{{
|
||||
item.shareCondition == '免批申请' ? '免批申请' : '立即申请'
|
||||
}}
|
||||
|
@ -236,7 +384,12 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a-modal v-model:visible="visible" title="视频预览" :width="750" destroyOnClose>
|
||||
<a-modal
|
||||
v-model:visible="visible"
|
||||
title="视频预览"
|
||||
:width="750"
|
||||
destroyOnClose
|
||||
>
|
||||
<template #footer></template>
|
||||
<div style="width: 100%; display: flex; justify-content: center">
|
||||
<div style="width: 100%; height: 100%">
|
||||
|
@ -247,7 +400,7 @@
|
|||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { ref, reactive, nextTick, defineEmits, defineExpose, getCurrentInstance } from 'vue'
|
||||
import { ref, reactive } from 'vue'
|
||||
import { message } from 'ant-design-vue'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { getUser, sgcInsert } from '@/api/home'
|
||||
|
@ -255,6 +408,7 @@ import { scInsert, scDel } from '@/api/personalCenter'
|
|||
import mybus from '@/myplugins/mybus'
|
||||
import { getHls } from '@/api/home.js'
|
||||
import IntegrationServiceOrder from './integrationServiceOrder.vue'
|
||||
import ComponentServiceTag from './ComponentServiceTag.vue'
|
||||
export default {
|
||||
name: '',
|
||||
props: {
|
||||
|
@ -268,110 +422,34 @@ export default {
|
|||
},
|
||||
selectCardsname: {
|
||||
type: String,
|
||||
default: '组件服务',
|
||||
},
|
||||
},
|
||||
computed: {
|
||||
dataList() {
|
||||
const newArr = []
|
||||
for (let i = 0; i < this.resourceList.data.length; i++) {
|
||||
let arr = [
|
||||
{
|
||||
name: '应用名称',
|
||||
value: '',
|
||||
},
|
||||
{
|
||||
name: '应用ID',
|
||||
value: '',
|
||||
dataResourceId: '',
|
||||
},
|
||||
{
|
||||
name: '应用领域',
|
||||
value: '',
|
||||
},
|
||||
{
|
||||
name: '组件类型',
|
||||
value: '',
|
||||
},
|
||||
{
|
||||
name: '技术领域',
|
||||
value: '',
|
||||
},
|
||||
{
|
||||
name: '共享类型',
|
||||
value: '',
|
||||
},
|
||||
{
|
||||
name: '共享条件',
|
||||
value: '',
|
||||
},
|
||||
]
|
||||
arr.map((item) => {
|
||||
if (item.name === '应用名称') {
|
||||
item.value = this.resourceList.data[i].name
|
||||
}
|
||||
if (item.name === '应用ID') {
|
||||
item.value = this.resourceList.data[i].id
|
||||
item.dataResourceId =
|
||||
this.resourceList.data[i].infoList[0].dataResourceId
|
||||
}
|
||||
if (item.name === '应用领域') {
|
||||
this.resourceList.data[i].infoList.map((aa) => {
|
||||
aa.attrType === '应用领域' ? (item.value = aa.attrValue) : ''
|
||||
})
|
||||
}
|
||||
if (item.name === '组件类型') {
|
||||
this.resourceList.data[i].infoList.map((aa) => {
|
||||
aa.attrType === '组件类型' ? (item.value = aa.attrValue) : ''
|
||||
})
|
||||
}
|
||||
if (item.name === '技术领域') {
|
||||
this.resourceList.data[i].infoList.map((aa) => {
|
||||
aa.attrType === '技术领域' ? (item.value = aa.attrValue) : ''
|
||||
})
|
||||
}
|
||||
if (item.name === '共享类型') {
|
||||
this.resourceList.data[i].infoList.map((aa) => {
|
||||
aa.attrType === '共享类型' ? (item.value = aa.attrValue) : ''
|
||||
})
|
||||
}
|
||||
if (item.name === '共享条件') {
|
||||
this.resourceList.data[i].infoList.map((aa) => {
|
||||
aa.attrType === '共享条件' ? (item.value = aa.attrValue) : ''
|
||||
})
|
||||
}
|
||||
})
|
||||
newArr.push(arr)
|
||||
}
|
||||
console.log('dataList======================>', newArr, this.resourceList)
|
||||
return newArr
|
||||
},
|
||||
isShoppingCartOrNot() {
|
||||
return ''
|
||||
default: '应用资源',
|
||||
},
|
||||
},
|
||||
components: {
|
||||
IntegrationServiceOrder,
|
||||
ComponentServiceTag,
|
||||
},
|
||||
setup(props, context) {
|
||||
const whoShow1 = whoShow
|
||||
const showKey = ref(0)
|
||||
let shoppingKey = ref(1)
|
||||
let orderObj = reactive({
|
||||
// orderField: 'tdr.create_date',
|
||||
// orderType: 'ASC',
|
||||
orderField: '',
|
||||
orderType: '',
|
||||
})
|
||||
const integrationServiceOrderDom = ref(null)
|
||||
// 购物车id列表
|
||||
const selList = ref([
|
||||
{ name: '发布时间', value: 'tdr.create_date', show: true, orderType: 'DESC' },
|
||||
// { name: '浏览量', value: 'visits', show: true, orderType: 'DESC' },
|
||||
{ name: '申请量', value: 'applyCount', show: true, orderType: 'DESC' },
|
||||
{ name: '收藏量', value: 'collectCount', show: true, orderType: 'DESC' },
|
||||
{ name: '评分', value: 'score', show: true, orderType: 'DESC' },
|
||||
{ name: '发布时间', value: 'tdr.create_date', show: true },
|
||||
{ name: '浏览量', value: 'visits', show: true },
|
||||
{ name: '申请量', value: 'applyCount', show: true },
|
||||
{ name: '收藏量', value: 'collectCount', show: true },
|
||||
{ name: '评分', value: 'score', show: true },
|
||||
])
|
||||
// 西海岸-去掉浏览量
|
||||
// if (whoShow1.itShowXiHaiAn) {
|
||||
selList.value = selList.value.filter((v) => v.name !== '浏览量')
|
||||
// }
|
||||
if (props.selectCardsname === '基础设施') {
|
||||
selList.value.map((val) => (val.show = false))
|
||||
} else if (props.selectCardsname === '数据资源') {
|
||||
|
@ -379,7 +457,6 @@ export default {
|
|||
(val) => (val.show = val.name === '发布时间' || val.name === '申请量')
|
||||
)
|
||||
}
|
||||
|
||||
const findComponentName = (list, name) => {
|
||||
if (list.infoList) {
|
||||
return list.infoList.find((item) => {
|
||||
|
@ -389,10 +466,21 @@ export default {
|
|||
})
|
||||
}
|
||||
}
|
||||
|
||||
// 西海岸--智能算法--列表增加标签显示
|
||||
const showTagArray = ['已落地', '需要计算支持']
|
||||
const getTagList = (item) => {
|
||||
let _arr =
|
||||
item.infoList.filter((x) => showTagArray.includes(x.attrValue)) || []
|
||||
let tagArray = _arr.map((v) => v.attrValue)
|
||||
return tagArray
|
||||
}
|
||||
console.log('this.resourceList', props.resourceList.data)
|
||||
props.resourceList.data.map((val) => {
|
||||
if (val.infoList) {
|
||||
let obj = val.infoList.filter((item) => item.attrType == '组件类型')[0]
|
||||
let obj = val.infoList.filter(
|
||||
(item) => item.attrType == '组件类型'
|
||||
)[0]
|
||||
if (obj) {
|
||||
switch (obj.attrValue) {
|
||||
case '智能算法':
|
||||
|
@ -414,7 +502,6 @@ export default {
|
|||
})
|
||||
showKey.value++
|
||||
const selData = ref('total')
|
||||
|
||||
const flag = ref(true)
|
||||
// userId
|
||||
const userId = ref('')
|
||||
|
@ -429,9 +516,7 @@ export default {
|
|||
console.log('use value', searchValue)
|
||||
console.log('or use this.value', searchValue.value)
|
||||
}
|
||||
|
||||
function toView(type, item) {
|
||||
// debugger
|
||||
if (props.selectCardsname == '数据资源') {
|
||||
if (whoShow1.itShowQingDao) {
|
||||
window.open(
|
||||
|
@ -439,7 +524,9 @@ export default {
|
|||
item.guid
|
||||
)
|
||||
} else {
|
||||
window.open('http://10.134.135.24:30090/#/home?id=' + item.serviceId)
|
||||
window.open(
|
||||
'http://10.134.135.24:30090/#/home?id=' + item.serviceId
|
||||
)
|
||||
}
|
||||
} else if (props.selectCardsname === '融合服务') {
|
||||
context.emit('saveSearchCodition')
|
||||
|
@ -527,6 +614,7 @@ export default {
|
|||
sgcInsert({
|
||||
delFlag: '0',
|
||||
resourceId: item.id,
|
||||
// userId: userId.value,
|
||||
}).then((res) => {
|
||||
console.log(res)
|
||||
message.success('添加申购车成功!')
|
||||
|
@ -576,22 +664,18 @@ export default {
|
|||
* isFromFather: 是否来自父组件传值
|
||||
*/
|
||||
const changeCondition = (item, isFromFather = false) => {
|
||||
console.log('item, isFromFather------------>', item, isFromFather);
|
||||
let newType = item.orderType == 'DESC' ? 'ASC' : 'DESC';
|
||||
console.log('item, isFromFather------------>', item, isFromFather)
|
||||
let newType = item.orderType == 'DESC' ? 'ASC' : 'DESC'
|
||||
if (isFromFather) {
|
||||
newType = item.orderType;
|
||||
newType = item.orderType
|
||||
}
|
||||
orderObj.orderField = item.value;
|
||||
orderObj.orderType = newType;
|
||||
let _index = selList.value.findIndex(x => x.value == item.value)
|
||||
orderObj.orderField = item.value
|
||||
orderObj.orderType = newType
|
||||
let _index = selList.value.findIndex((x) => x.value == item.value)
|
||||
if (_index > -1) {
|
||||
selList.value[_index].orderType = newType
|
||||
}
|
||||
selList.value = selList.value.splice(0);
|
||||
nextTick(() => {
|
||||
console.log('orderObj------------>', orderObj);
|
||||
console.log('selList------------>', selList.value);
|
||||
})
|
||||
selList.value = selList.value.splice(0)
|
||||
mybus.emit('changeCondition', orderObj)
|
||||
}
|
||||
|
||||
|
@ -644,10 +728,11 @@ export default {
|
|||
})
|
||||
_applyList = jcss.concat(_applyList)
|
||||
localStorage.setItem('applyList', JSON.stringify(_applyList))
|
||||
// 融合服务
|
||||
localStorage.setItem('integrationServicesItemInfo', JSON.stringify(item))
|
||||
router.push({
|
||||
path: '/apply',
|
||||
query: {
|
||||
integrationServicesId: item.id,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
||||
|
@ -663,6 +748,7 @@ export default {
|
|||
integrationServiceOrderDom.value.reset()
|
||||
}
|
||||
})
|
||||
|
||||
let videoUrl = ref('')
|
||||
const options = reactive({
|
||||
width: '700px', //播放器宽度
|
||||
|
@ -714,7 +800,6 @@ export default {
|
|||
},
|
||||
})
|
||||
}
|
||||
|
||||
return {
|
||||
onSearch,
|
||||
resultList,
|
||||
|
@ -737,18 +822,16 @@ export default {
|
|||
handleAKeyApplication,
|
||||
integrationServiceOrderDom,
|
||||
orderObj,
|
||||
getTagList,
|
||||
}
|
||||
},
|
||||
beforeUnmount() {
|
||||
mybus.off('chongzhi')
|
||||
// mybus.emit('changeSelcted')
|
||||
},
|
||||
}
|
||||
</script>
|
||||
<style scoped lang="less">
|
||||
.activeBg {
|
||||
background-color: #0087ff;
|
||||
}
|
||||
|
||||
#search-result-list-container {
|
||||
width: 1088px;
|
||||
padding: 0 20px;
|
||||
|
@ -766,6 +849,9 @@ export default {
|
|||
.shai-xuan {
|
||||
width: 1047px;
|
||||
height: 36px;
|
||||
// margin: 11px 0 20px;
|
||||
// background: #e5f2ff;
|
||||
// padding-left: 20px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
position: relative;
|
||||
|
@ -980,6 +1066,19 @@ export default {
|
|||
font-size: 14px;
|
||||
margin: 5px 0;
|
||||
|
||||
// .left {
|
||||
// width: 600px;
|
||||
// display: flex;
|
||||
// justify-content: space-between;
|
||||
// flex-wrap: wrap;
|
||||
// & > div {
|
||||
// width: 300px;
|
||||
// & > span {
|
||||
// color: #0087ff;
|
||||
// font-weight: 600;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
.right {
|
||||
flex: 1;
|
||||
display: flex;
|
||||
|
|
|
@ -2,14 +2,7 @@
|
|||
<div class="wrapper">
|
||||
<div class="wrapper-title-left-tree" :key="showKey">
|
||||
<div v-for="item in treeData" :key="item.id" class="primaryNode">
|
||||
<!-- <div v-if="!item.children || item.children.length == 0">
|
||||
{{ item.title }}
|
||||
</div> -->
|
||||
<div
|
||||
class="top"
|
||||
@click="showBottom(item)"
|
||||
:class="item.show ? 'topSelect' : ''"
|
||||
>
|
||||
<div class="top" @click="showBottom(item)" :class="item.show ? 'topSelect' : ''">
|
||||
{{ item.name }}
|
||||
({{ item.channelCount }})
|
||||
<DownOutlined v-show="!item.show" />
|
||||
|
@ -17,28 +10,13 @@
|
|||
</div>
|
||||
<div class="bottom" v-show="item.show">
|
||||
<div v-for="val in item.children" :key="val.id" class="item">
|
||||
<div
|
||||
class="up"
|
||||
:class="selectId == val.id ? 'select' : ''"
|
||||
@click="showDown(item, val), onSelect(item, val)"
|
||||
>
|
||||
<div class="up" :class="selectId == val.id ? 'select' : ''"
|
||||
@click="showDown(item, val), onSelect(item, val)">
|
||||
<div>
|
||||
<svg
|
||||
t="1654068878091"
|
||||
class="icon"
|
||||
viewBox="0 0 1024 1024"
|
||||
version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
p-id="2156"
|
||||
width="0.25rem"
|
||||
height="0.25rem"
|
||||
v-show="selectId == val.id"
|
||||
>
|
||||
<path
|
||||
d="M512 624a112 112 0 1 0 0-224 112 112 0 0 0 0 224z"
|
||||
p-id="2157"
|
||||
fill="#0058e1"
|
||||
></path>
|
||||
<svg t="1654068878091" class="icon" viewBox="0 0 1024 1024" version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg" p-id="2156" width="0.25rem" height="0.25rem"
|
||||
v-show="selectId == val.id">
|
||||
<path d="M512 624a112 112 0 1 0 0-224 112 112 0 0 0 0 224z" p-id="2157" fill="#0058e1"></path>
|
||||
</svg>
|
||||
<span class="name">{{ val.name }}({{ val.channelCount }})</span>
|
||||
</div>
|
||||
|
@ -49,30 +27,13 @@
|
|||
</span>
|
||||
</div>
|
||||
<div class="down" v-show="val.show">
|
||||
<div
|
||||
v-for="child in val.children"
|
||||
:key="child.id"
|
||||
class="child"
|
||||
:class="selectId == child.id ? 'select2' : ''"
|
||||
@click="onSelect(item, child, child)"
|
||||
>
|
||||
<div v-for="child in val.children" :key="child.id" class="child"
|
||||
:class="selectId == child.id ? 'select2' : ''" @click="onSelect(item, child, child)">
|
||||
<div>
|
||||
<svg
|
||||
t="1654068878091"
|
||||
class="icon"
|
||||
viewBox="0 0 1024 1024"
|
||||
version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
p-id="2156"
|
||||
width="0.25rem"
|
||||
height="0.25rem"
|
||||
v-show="selectId == child.id"
|
||||
>
|
||||
<path
|
||||
d="M512 624a112 112 0 1 0 0-224 112 112 0 0 0 0 224z"
|
||||
p-id="2157"
|
||||
fill="#0058e1"
|
||||
></path>
|
||||
<svg t="1654068878091" class="icon" viewBox="0 0 1024 1024" version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg" p-id="2156" width="0.25rem" height="0.25rem"
|
||||
v-show="selectId == child.id">
|
||||
<path d="M512 624a112 112 0 1 0 0-224 112 112 0 0 0 0 224z" p-id="2157" fill="#0058e1"></path>
|
||||
</svg>
|
||||
<span class="name">
|
||||
{{ child.name }}
|
||||
|
@ -84,12 +45,6 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <a-directory-tree
|
||||
class="draggable-tree"
|
||||
block-node
|
||||
:tree-data="treeData"
|
||||
@select="onSelect"
|
||||
></a-directory-tree> -->
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
|
@ -100,25 +55,24 @@
|
|||
import mybus from '@/myplugins/mybus'
|
||||
import { useRouter } from 'vue-router'
|
||||
import { UpOutlined, DownOutlined } from '@ant-design/icons-vue'
|
||||
import { DETAIL_PAGE_CONTENT_DEFAULT_TAB } from '@/global/GlobalConfig.js'
|
||||
|
||||
export default defineComponent({
|
||||
setup() {
|
||||
const selectedKeys = ref([])
|
||||
const checkedKeys = ref([])
|
||||
const router = useRouter()
|
||||
const fieldNames = {
|
||||
children: 'children',
|
||||
title: 'name',
|
||||
}
|
||||
const whoShow1 = ref(whoShow)
|
||||
const showKey = ref(0)
|
||||
const treeData = ref([])
|
||||
const init = () => {
|
||||
const selectId = ref('')
|
||||
|
||||
// 初始化
|
||||
const init = async () => {
|
||||
treeData.value = []
|
||||
console.log(
|
||||
'router.currentRoute.value.query.select',
|
||||
router.currentRoute.value.query.select
|
||||
)
|
||||
let select = router.currentRoute.value.query.select
|
||||
let select = router.currentRoute.value.query.select || DETAIL_PAGE_CONTENT_DEFAULT_TAB
|
||||
if (select === '123') {
|
||||
select = ''
|
||||
}
|
||||
|
@ -127,149 +81,35 @@
|
|||
router.currentRoute.value.query.select
|
||||
)
|
||||
if (select == '基础设施') {
|
||||
let res = {};
|
||||
if (whoShow1.value && !whoShow1.value.itShowXiHaiAn) {
|
||||
getCameraAllOrgan({ parentId: 'S4NbecfYB1DBH8HNULGS34' }).then(
|
||||
(res) => {
|
||||
treeData.value = res.data.data
|
||||
}
|
||||
)
|
||||
res = await getCameraAllOrgan({ parentId: 'S4NbecfYB1DBH8HNULGS34' })
|
||||
} else {
|
||||
getCameraInfoByAreaId({
|
||||
// 西海岸
|
||||
res = await getCameraInfoByAreaId({
|
||||
areaId: '70be8c5b664f4bcf869d82f2e8335051',
|
||||
}).then((res) => {
|
||||
treeData.value = res.data.data
|
||||
})
|
||||
}
|
||||
// selectDeptList({ type: select }).then((res) => {
|
||||
// // console.log('区划数据=========================>', res.data.data)
|
||||
// res.data.data.forEach((val) => {
|
||||
// if (val.type !== '全部能力目录') {
|
||||
// let obj = {
|
||||
// title: val.type,
|
||||
// total: val.total,
|
||||
// show: val.type === '市级' ? true : false,
|
||||
// select: false,
|
||||
// key: val.type,
|
||||
// children: [],
|
||||
// }
|
||||
// switch (val.type) {
|
||||
// case '市级':
|
||||
// case '其他':
|
||||
// generateChildren(val, obj)
|
||||
// break
|
||||
// case '区级':
|
||||
// generateChildren2(val, obj)
|
||||
// break
|
||||
// }
|
||||
// treeData.value.push(obj)
|
||||
// }
|
||||
// })
|
||||
// // 排序
|
||||
// const sortArr = ['全部能力目录', '市级', '区级', '企业', '其他']
|
||||
// treeData.value.sort((a, b) => {
|
||||
// return sortArr.indexOf(a.key) - sortArr.indexOf(b.key)
|
||||
// })
|
||||
// console.log('左侧树结构数据======================>', treeData.value)
|
||||
// showKey.value++
|
||||
// })
|
||||
treeData.value = res.data && res.data.data || []
|
||||
}
|
||||
}
|
||||
mybus.on('getDeptList', () => {
|
||||
init()
|
||||
})
|
||||
// 生成children
|
||||
const generateChildren = (val, obj) => {
|
||||
if (val.dataList.length > 0) {
|
||||
val.dataList.forEach((child) => {
|
||||
let children = {
|
||||
title: child.deptName,
|
||||
show: false,
|
||||
select: false,
|
||||
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 = {
|
||||
title: dis.type,
|
||||
total: dis.total,
|
||||
show: false,
|
||||
select: false,
|
||||
key: dis.dataList[0].districtId,
|
||||
children: [],
|
||||
}
|
||||
if (dis.dataList.length > 0) {
|
||||
dis.dataList.forEach((child) => {
|
||||
let children2 = {
|
||||
title: child.deptName,
|
||||
total: child.deptCount,
|
||||
show: false,
|
||||
select: false,
|
||||
key: child.deptId,
|
||||
}
|
||||
children.children.push(children2)
|
||||
})
|
||||
}
|
||||
obj.children.push(children)
|
||||
})
|
||||
}
|
||||
}
|
||||
// const onSelect = (event, node, dragNode, dragNodesKeys) => {
|
||||
// console.log(event[0], node.node.children, dragNode, dragNodesKeys)
|
||||
// if (!node.node.children) {
|
||||
// mybus.emit('paramsGetResources', [event[0]])
|
||||
// } else {
|
||||
// let arr = []
|
||||
// switch (event[0]) {
|
||||
// case '全部能力目录':
|
||||
// mybus.emit('paramsGetResources', [])
|
||||
// break
|
||||
// case '区级':
|
||||
// node.node.children.forEach((dis) => {
|
||||
// dis.children.forEach((val) => {
|
||||
// arr.push(val.key)
|
||||
// })
|
||||
// })
|
||||
// mybus.emit('paramsGetResources', arr)
|
||||
// break
|
||||
// default:
|
||||
// node.node.children.forEach((val) => {
|
||||
// arr.push(val.key)
|
||||
// })
|
||||
// mybus.emit('paramsGetResources', arr)
|
||||
// break
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
const selectId = ref('')
|
||||
const onSelect = (item, val, child) => {
|
||||
console.log('item, val, child', child)
|
||||
|
||||
const onSelect = async (item, val, child) => {
|
||||
console.log('item--------onSelect---->', item);
|
||||
console.log('val------onSelect------>', val);
|
||||
console.log('child-----onSelect------->', child);
|
||||
mybus.emit('getCameraByParentId', val.id)
|
||||
mybus.emit('getListByParentId', val.id)
|
||||
let res = {}
|
||||
if (whoShow1.value && !whoShow1.value.itShowXiHaiAn) {
|
||||
getCameraAllOrgan({ parentId: val.id }).then((res) => {
|
||||
treeData.value.map((treeDataItem, index) => {
|
||||
if (item.id == treeDataItem.id) {
|
||||
treeData.value[index].children.map((childItem, childIndex) => {
|
||||
if (childItem.id == val.id) {
|
||||
treeData.value[index].children[childIndex].children =
|
||||
res.data.data
|
||||
}
|
||||
})
|
||||
console.log('treeData.value.[index]', treeData.value[index])
|
||||
}
|
||||
})
|
||||
})
|
||||
res = await getCameraAllOrgan({ parentId: val.id })
|
||||
} else {
|
||||
getCameraInfoByAreaId({
|
||||
areaId: val.id,
|
||||
}).then((res) => {
|
||||
// 西海岸
|
||||
res = await getCameraInfoByAreaId({ areaId: val.id })
|
||||
}
|
||||
treeData.value.map((treeDataItem, index) => {
|
||||
if (item.id == treeDataItem.id) {
|
||||
treeData.value[index].children.map((childItem, childIndex) => {
|
||||
|
@ -278,97 +118,51 @@
|
|||
res.data.data
|
||||
}
|
||||
})
|
||||
console.log('treeData.value.[index]', treeData.value[index])
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
if (child) {
|
||||
selectId.value = child.id
|
||||
}
|
||||
}
|
||||
watch(selectedKeys, () => {
|
||||
console.log('selectedKeys', selectedKeys)
|
||||
|
||||
watch(selectId, (newVal) => {
|
||||
if (newVal == '') {
|
||||
mybus.emit('getCameraByParentId', '')
|
||||
mybus.emit('getListByParentId', '')
|
||||
}
|
||||
})
|
||||
watch(checkedKeys, (val) => {
|
||||
if (val.checked.length > 1) {
|
||||
val.checked.halfChecked = val.checked.shift()
|
||||
}
|
||||
console.log('onCheck', val)
|
||||
})
|
||||
const value = ref('')
|
||||
const onSearch = (searchValue) => {
|
||||
console.log('use value', searchValue)
|
||||
console.log('or use this.value', value.value.child)
|
||||
}
|
||||
// checkedKeys, checkedNodes, node, event
|
||||
function xuanzeshijian(checkedKeys) {
|
||||
checkedKeys.value.checked = []
|
||||
checkedKeys.value.checked[0] =
|
||||
checkedKeys.checked[checkedKeys.checked.length - 1]
|
||||
// console.log('checkedKeys1', checkedNodes)
|
||||
console.log('checkedKeys', checkedKeys)
|
||||
}
|
||||
let quxiaoshijian = ''
|
||||
function dianjisousuo(selectedKeys, selectedNodes, node, event) {
|
||||
if (quxiaoshijian == selectedNodes.node.id) {
|
||||
quxiaoshijian = ''
|
||||
mybus.emit('paramsGetResources', quxiaoshijian)
|
||||
} else {
|
||||
quxiaoshijian = selectedNodes.node.id
|
||||
mybus.emit('paramsGetResources', selectedNodes.node.id.trim())
|
||||
}
|
||||
console.log(
|
||||
'dianjisousuo',
|
||||
selectedKeys,
|
||||
'dianjisousuo',
|
||||
selectedNodes,
|
||||
'dianjisousuo',
|
||||
node,
|
||||
'dianjisousuo',
|
||||
event
|
||||
)
|
||||
}
|
||||
const showBottom = (item) => {
|
||||
item.show = !item.show
|
||||
|
||||
const showBottom = async (item) => {
|
||||
item.show = !item.show;
|
||||
let res = {};
|
||||
if (whoShow1.value && !whoShow1.value.itShowXiHaiAn) {
|
||||
getCameraAllOrgan({ parentId: item.id }).then((res) => {
|
||||
treeData.value.map((treeDataItem, index) => {
|
||||
if (item.id == treeDataItem.id) {
|
||||
treeData.value[index].children = res.data.data
|
||||
console.log('treeData.value.[index]', treeData.value[index])
|
||||
}
|
||||
})
|
||||
})
|
||||
res = await getCameraAllOrgan({ parentId: item.id })
|
||||
} else {
|
||||
getCameraInfoByAreaId({
|
||||
areaId: item.id,
|
||||
}).then((res) => {
|
||||
// 西海岸
|
||||
res = await getCameraInfoByAreaId({ areaId: item.id })
|
||||
}
|
||||
|
||||
treeData.value.map((treeDataItem, index) => {
|
||||
if (item.id == treeDataItem.id) {
|
||||
treeData.value[index].children = res.data.data
|
||||
treeData.value[index].children = res.data && res.data.data || []
|
||||
console.log('treeData.value.[index]', treeData.value[index])
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
}
|
||||
const showDown = (item, val) => {
|
||||
console.log('showDown', val)
|
||||
selectId.value = val.id
|
||||
console.log('item---showDown--------->', item);
|
||||
console.log('val----showDown-------->', val);
|
||||
if (item.children) {
|
||||
val.show = !val.show
|
||||
val.show = !val.show;
|
||||
// 取消选中
|
||||
if (!val.show) {
|
||||
selectId.value = ''
|
||||
}
|
||||
}
|
||||
}
|
||||
return {
|
||||
value,
|
||||
onSearch,
|
||||
selectedKeys,
|
||||
checkedKeys,
|
||||
fieldNames,
|
||||
treeData,
|
||||
dianjisousuo,
|
||||
quxiaoshijian,
|
||||
xuanzeshijian,
|
||||
showKey,
|
||||
onSelect,
|
||||
showBottom,
|
||||
|
@ -387,58 +181,6 @@
|
|||
})
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
// .wrapper {
|
||||
// height: 100%;
|
||||
// width: 100%;
|
||||
// padding: .2rem;
|
||||
// .wrapper-title {
|
||||
// height: .28rem;
|
||||
// width: 100%;
|
||||
// margin-bottom: .25rem;
|
||||
// .wrapper-title-name {
|
||||
// width: 100%;
|
||||
// height: .17rem;
|
||||
// font-size: .18rem;
|
||||
// font-family: 'AlibabaPuHuiTiR';
|
||||
// font-weight: 400;
|
||||
// color: #0058e1;
|
||||
// line-height: .34rem;
|
||||
// }
|
||||
// .wrapper-title-yangshi {
|
||||
// width: .4rem;
|
||||
// height: .03rem;
|
||||
// background: #0058e1;
|
||||
// border-radius: .02rem;
|
||||
// margin-top: .2rem;
|
||||
// margin-left: .15rem;
|
||||
// }
|
||||
// }
|
||||
// .wrapper-title-left-tree {
|
||||
// overflow-y: auto;
|
||||
// height: 80%;
|
||||
// width: 2.1rem;
|
||||
// }
|
||||
// .wrapper-title-left-tree::-webkit-scrollbar {
|
||||
// width: .05rem;
|
||||
// height: .05rem;
|
||||
// }
|
||||
// .wrapper-title-left-tree::-webkit-scrollbar-thumb {
|
||||
// border-radius: .05rem;
|
||||
// background-color: #0058e1;
|
||||
// }
|
||||
// .wrapper-title-left-tree::-webkit-scrollbar-track {
|
||||
// background-color: transparent;
|
||||
// }
|
||||
// :deep(.ant-tree-treenode) {
|
||||
// margin-top: .1rem;
|
||||
// height: .23rem;
|
||||
// overflow: hidden;
|
||||
// text-overflow: ellipsis;
|
||||
// display: -webkit-box;
|
||||
// -webkit-line-clamp: 1;
|
||||
// -webkit-box-orient: vertical;
|
||||
// }
|
||||
// }
|
||||
.primaryNode {
|
||||
.top {
|
||||
width: 100%;
|
||||
|
@ -450,26 +192,32 @@
|
|||
padding: 0 0.1rem;
|
||||
margin-top: 0.08rem;
|
||||
}
|
||||
|
||||
.top:hover {
|
||||
cursor: pointer;
|
||||
// 0058e1 透明度 0.5
|
||||
background: rgba(0, 88, 225, 0.8);
|
||||
color: white;
|
||||
|
||||
:deep(.anticon) {
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
|
||||
.topSelect {
|
||||
background: #0058e1;
|
||||
color: white;
|
||||
|
||||
:deep(.anticon) {
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
|
||||
.bottom {
|
||||
width: 100%;
|
||||
background: rgba(244, 245, 248, 0.8);
|
||||
padding: 0 0.1rem;
|
||||
|
||||
// margin-bottom: .08rem;
|
||||
.up {
|
||||
cursor: pointer;
|
||||
|
@ -479,10 +227,12 @@
|
|||
align-items: center;
|
||||
border-top: 0.01rem solid #ccc;
|
||||
padding: 0 0.1rem;
|
||||
|
||||
&>div {
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
.name {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
|
@ -492,33 +242,41 @@
|
|||
word-break: break-all;
|
||||
}
|
||||
}
|
||||
|
||||
.up:hover {
|
||||
.name {
|
||||
color: #0058e1;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
span {
|
||||
color: #0058e1;
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
|
||||
.select {
|
||||
padding: 0 0.1rem 0 0;
|
||||
|
||||
.name {
|
||||
width: 1.7rem;
|
||||
color: #0058e1;
|
||||
color: #0058e1 !important;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
span {
|
||||
color: #0058e1;
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
|
||||
.item:nth-of-type(1) .up {
|
||||
border-top: none;
|
||||
}
|
||||
|
||||
.down {
|
||||
width: 100%;
|
||||
|
||||
.child {
|
||||
cursor: pointer;
|
||||
height: 0.4rem;
|
||||
|
@ -526,10 +284,12 @@
|
|||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 0 0.1rem;
|
||||
|
||||
&>div {
|
||||
display: flex;
|
||||
justify-content: flex-start;
|
||||
}
|
||||
|
||||
.name {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
|
@ -539,26 +299,31 @@
|
|||
word-break: break-all;
|
||||
}
|
||||
}
|
||||
|
||||
.child:hover {
|
||||
.name {
|
||||
color: #0058e1;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
span {
|
||||
color: #0058e1;
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
|
||||
.select2 {
|
||||
.name {
|
||||
width: 1.7rem;
|
||||
color: #0058e1;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
span {
|
||||
color: #0058e1;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
padding: 0 0.1rem 0 0;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -5,8 +5,13 @@
|
|||
<div class="top">
|
||||
<div class="top-title">
|
||||
全部:
|
||||
<div v-for="(item, index) in titleName" :key="index" class="tabAll" @click="changeCards(index)"
|
||||
:class="{ sel: index == number }">
|
||||
<div
|
||||
v-for="item in titleName"
|
||||
:key="item.index"
|
||||
class="tabAll"
|
||||
@click="changeCards(item.index)"
|
||||
:class="{ sel: item.index === number }"
|
||||
>
|
||||
<span>
|
||||
{{ item.name === '赋能场景' ? '典型赋能场景' : '打包模式' }}
|
||||
</span>
|
||||
|
@ -15,26 +20,55 @@
|
|||
<div class="resultListSearchInput-father" v-if="number === 0">
|
||||
<div class="resultListSearchInput-son">
|
||||
模糊搜索
|
||||
<a-input-search v-model:value="searchValue" placeholder="请输入关键词" enter-button="搜索" size="large"
|
||||
@search="getIntegrationList" @change="onSearch" class="resultListSearchInput" />
|
||||
<a-input-search
|
||||
v-model:value="searchValue"
|
||||
placeholder="请输入关键词"
|
||||
enter-button="搜索"
|
||||
size="large"
|
||||
@search="getIntegrationList"
|
||||
@change="onSearch"
|
||||
class="resultListSearchInput"
|
||||
/>
|
||||
<button class="button-reset" @click="resetAction()">重置</button>
|
||||
<div class="hengxian"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div v-loading="loadingData">
|
||||
<searchResultList v-if="number === 0" v-show="resourceList.data && resourceList.data.length > 0"
|
||||
:resourceList="resourceList" :resourceTotal="resourceTotal" @saveSearchCodition="saveSearchCodition"
|
||||
ref="searchResultListDom" :selectCardsname="number == 0 ? '融合服务' : '赋能场景'" />
|
||||
<CanAssignCase v-else v-show="resourceList.data && resourceList.data.length > 0" :resourceList="resourceList"
|
||||
@saveSearchCodition="saveSearchCodition" :resourceTotal="resourceTotal"
|
||||
:selectCardsname="number == 0 ? '融合服务' : '赋能场景'" />
|
||||
<searchResultList
|
||||
v-if="number === 1"
|
||||
v-show="resourceList.data && resourceList.data.length > 0"
|
||||
:resourceList="resourceList"
|
||||
:resourceTotal="resourceTotal"
|
||||
@saveSearchCodition="saveSearchCodition"
|
||||
ref="searchResultListDom"
|
||||
:selectCardsname="number == 0 ? '融合服务' : '赋能场景'"
|
||||
/>
|
||||
<CanAssignCase
|
||||
v-else
|
||||
v-show="resourceList.data && resourceList.data.length > 0"
|
||||
:resourceList="resourceList"
|
||||
@saveSearchCodition="saveSearchCodition"
|
||||
:resourceTotal="resourceTotal"
|
||||
:selectCardsname="number == 0 ? '融合服务' : '赋能场景'"
|
||||
/>
|
||||
<div class="pagination">
|
||||
<a-pagination v-if="resourceList.data && resourceList.data.length > 0" v-model:current="currentPage"
|
||||
v-model:pageSize="currentPageSize" show-size-changer show-less-items show-quick-jumper
|
||||
:total="resourceTotal" :page-size-options="pageSizeOptions" @change="pageChange"
|
||||
@showSizeChange="onShowSizeChange" />
|
||||
<a-pagination
|
||||
v-if="resourceList.data && resourceList.data.length > 0"
|
||||
v-model:current="currentPage"
|
||||
v-model:pageSize="currentPageSize"
|
||||
show-size-changer
|
||||
show-less-items
|
||||
show-quick-jumper
|
||||
:total="resourceTotal"
|
||||
:page-size-options="pageSizeOptions"
|
||||
@change="pageChange"
|
||||
@showSizeChange="onShowSizeChange"
|
||||
/>
|
||||
</div>
|
||||
<div v-if="resourceList.data && resourceList.data.length <= 0" style="margin-top: 2rem">
|
||||
<div
|
||||
v-if="resourceList.data && resourceList.data.length <= 0"
|
||||
style="margin-top: 2rem"
|
||||
>
|
||||
<a-empty />
|
||||
</div>
|
||||
</div>
|
||||
|
@ -45,7 +79,14 @@
|
|||
<script>
|
||||
import HomeFooter from '@/views/newHome/components/Footer'
|
||||
import mybus from '@/myplugins/mybus'
|
||||
import { defineComponent, reactive, ref, toRefs, onMounted, nextTick } from 'vue'
|
||||
import {
|
||||
defineComponent,
|
||||
reactive,
|
||||
ref,
|
||||
toRefs,
|
||||
onMounted,
|
||||
nextTick,
|
||||
} from 'vue'
|
||||
import { getIntegrationServicesList } from '@/api/home.js'
|
||||
import { useRouter } from 'vue-router'
|
||||
import HomeHeader from '@/views/home/components/header'
|
||||
|
@ -58,7 +99,10 @@ export default defineComponent({
|
|||
console.log('to---integrationServices--beforeRouteLeave------->', to)
|
||||
console.log('from---integrationServices--beforeRouteLeave------->', from)
|
||||
console.log('next---integrationServices--beforeRouteLeave------->', next)
|
||||
if (to.name !== 'packagingDetails' && to.name !== 'integrationServicesDetails') {
|
||||
if (
|
||||
to.name !== 'packagingDetails' &&
|
||||
to.name !== 'integrationServicesDetails'
|
||||
) {
|
||||
localStorage.removeItem('integrationServices')
|
||||
}
|
||||
next()
|
||||
|
@ -67,7 +111,7 @@ export default defineComponent({
|
|||
// 分页
|
||||
const loading = ref(true)
|
||||
const currentPage = ref(1)
|
||||
const currentPageSize = ref(5)
|
||||
const currentPageSize = ref(10)
|
||||
const pageSizeOptions = ref(['2', '5', '10', '20', '50'])
|
||||
const router = useRouter()
|
||||
const select = router.currentRoute.value.query.select
|
||||
|
@ -79,13 +123,15 @@ export default defineComponent({
|
|||
// 选项卡
|
||||
const titleName = ref([
|
||||
{
|
||||
name: '打包模式',
|
||||
name: '赋能场景',
|
||||
index: 0,
|
||||
},
|
||||
{
|
||||
name: '赋能场景',
|
||||
name: '打包模式',
|
||||
index: 1,
|
||||
},
|
||||
])
|
||||
const number = ref(0)
|
||||
let number = ref(0)
|
||||
// 查询参数
|
||||
const paramsGetResources = {
|
||||
page: currentPage.value,
|
||||
|
@ -96,24 +142,31 @@ export default defineComponent({
|
|||
orderType: 'DESC', // ASC 升序 DESC 降序
|
||||
}
|
||||
const searchResultListDom = ref(null)
|
||||
const storageSearchInfo = JSON.parse(localStorage.getItem('integrationServices'))
|
||||
const storageSearchInfo = JSON.parse(
|
||||
localStorage.getItem('integrationServices')
|
||||
)
|
||||
// 读取本地存储:表单赋值
|
||||
const handleSetSearchData = () => {
|
||||
if (storageSearchInfo) {
|
||||
number.value = storageSearchInfo.type == '打包模式' ? 0 : 1;
|
||||
number.value = storageSearchInfo.type == '打包模式' ? 1 : 0
|
||||
// 搜索名称
|
||||
searchValue.value = storageSearchInfo.name;
|
||||
currentPage.value = storageSearchInfo.page;
|
||||
currentPageSize.value = storageSearchInfo.limit;
|
||||
paramsGetResources.limit = storageSearchInfo.limit;
|
||||
paramsGetResources.page = storageSearchInfo.page;
|
||||
paramsGetResources.type = storageSearchInfo.type;
|
||||
searchValue.value = storageSearchInfo.name
|
||||
currentPage.value = storageSearchInfo.page
|
||||
currentPageSize.value = storageSearchInfo.limit
|
||||
paramsGetResources.limit = storageSearchInfo.limit
|
||||
paramsGetResources.page = storageSearchInfo.page
|
||||
paramsGetResources.type = storageSearchInfo.type
|
||||
// 延迟使用,因为还没有返回跟挂载
|
||||
nextTick(() => {
|
||||
searchResultListDom.value && searchResultListDom.value.changeCondition && searchResultListDom.value.changeCondition({
|
||||
searchResultListDom.value &&
|
||||
searchResultListDom.value.changeCondition &&
|
||||
searchResultListDom.value.changeCondition(
|
||||
{
|
||||
value: storageSearchInfo.orderField,
|
||||
orderType: storageSearchInfo.orderType,
|
||||
}, true)
|
||||
},
|
||||
true
|
||||
)
|
||||
})
|
||||
getIntegrationList()
|
||||
}
|
||||
|
@ -121,8 +174,8 @@ export default defineComponent({
|
|||
|
||||
const changeCards = (val) => {
|
||||
// 打包模式
|
||||
number.value = val;
|
||||
paramsGetResources.type = titleName.value[number.value].name;
|
||||
number.value = val
|
||||
paramsGetResources.type = titleName.value[number.value].name
|
||||
resetAction()
|
||||
}
|
||||
|
||||
|
@ -137,10 +190,10 @@ export default defineComponent({
|
|||
searchValue.value = ''
|
||||
// 分页
|
||||
currentPage.value = 1
|
||||
currentPageSize.value = 5
|
||||
currentPageSize.value = 10
|
||||
// 重置查询条件
|
||||
paramsGetResources.page = 1
|
||||
paramsGetResources.limit = 5
|
||||
paramsGetResources.limit = 10
|
||||
paramsGetResources.orderField = 'create_date'
|
||||
paramsGetResources.orderType = 'DESC'
|
||||
|
||||
|
@ -153,8 +206,11 @@ export default defineComponent({
|
|||
// 获取融合服务列表
|
||||
const getIntegrationList = () => {
|
||||
loadingData.value = true
|
||||
paramsGetResources.name = searchValue.value;
|
||||
console.log('paramsGetResources------参数下发------>', paramsGetResources);
|
||||
paramsGetResources.name = searchValue.value
|
||||
console.log(
|
||||
'paramsGetResources------参数下发------>',
|
||||
paramsGetResources
|
||||
)
|
||||
getIntegrationServicesList(paramsGetResources).then(
|
||||
(res) => {
|
||||
loadingData.value = false
|
||||
|
@ -217,7 +273,10 @@ export default defineComponent({
|
|||
|
||||
// 存储查询条件到本地
|
||||
const saveSearchCodition = (n) => {
|
||||
console.log('融合服务-----存储查询条件到本地------->', paramsGetResources);
|
||||
console.log(
|
||||
'融合服务-----存储查询条件到本地------->',
|
||||
paramsGetResources
|
||||
)
|
||||
localStorage.setItem(
|
||||
'integrationServices',
|
||||
JSON.stringify(paramsGetResources)
|
||||
|
|
|
@ -4,13 +4,20 @@
|
|||
<home-header></home-header>
|
||||
<detail-back></detail-back>
|
||||
<!-- 头部基本信息 -->
|
||||
<application-top-details :dataList="detailInfoObj" :navList="navList"></application-top-details>
|
||||
<application-top-details
|
||||
:dataList="detailInfoObj"
|
||||
:navList="navList"
|
||||
></application-top-details>
|
||||
|
||||
<!-- 导航 -->
|
||||
<div :class="{ fixed: scrollTop >= 600 }">
|
||||
<div class="application-navigation">
|
||||
<template v-for="nav in navList" :key="nav.key">
|
||||
<div class="nav" :class="{ selectNow: nav.key == selectNow }" @click="selectNav(nav.key)">
|
||||
<div
|
||||
class="nav"
|
||||
:class="{ selectNow: nav.key == selectNow }"
|
||||
@click="selectNav(nav.key)"
|
||||
>
|
||||
{{ nav.name }}
|
||||
<span class="line"></span>
|
||||
</div>
|
||||
|
@ -29,11 +36,16 @@
|
|||
</div>
|
||||
|
||||
<div class="content" style="margin-left: 0.5rem">
|
||||
<div class="content-item" v-for="(item, i) in painPoint" :key="i" style="
|
||||
<div
|
||||
class="content-item"
|
||||
v-for="(item, i) in painPoint"
|
||||
:key="i"
|
||||
style="
|
||||
margin-bottom: 0.2rem;
|
||||
font-size: 0.18rem;
|
||||
line-height: 0.3rem;
|
||||
">
|
||||
"
|
||||
>
|
||||
{{ i + 1 + '、' + item.description }}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -41,17 +53,26 @@
|
|||
</div>
|
||||
|
||||
<!-- 解决方案 -->
|
||||
<div id="integration-solution" class="solution scrollBox" style="background: #eee">
|
||||
<div
|
||||
id="integration-solution"
|
||||
class="solution scrollBox"
|
||||
style="background: #eee"
|
||||
>
|
||||
<div class="title-1">
|
||||
<DetalsTitle title="解决方案" type="SOLUTION"></DetalsTitle>
|
||||
</div>
|
||||
<div class="flex-row-center">
|
||||
<div class="content" style="background: #fff; margin-top: 0.2rem">
|
||||
<div class="content-item" v-for="(item, i) in solution" :key="i" style="
|
||||
<div
|
||||
class="content-item"
|
||||
v-for="(item, i) in solution"
|
||||
:key="i"
|
||||
style="
|
||||
margin-bottom: 0.2rem;
|
||||
font-size: 0.18rem;
|
||||
line-height: 0.3rem;
|
||||
">
|
||||
"
|
||||
>
|
||||
{{ i + 1 + '、' + item.description }}
|
||||
</div>
|
||||
</div>
|
||||
|
@ -63,20 +84,63 @@
|
|||
<div class="title-1">
|
||||
<DetalsTitle title="使用能力" type="ABILITY"></DetalsTitle>
|
||||
</div>
|
||||
<div class="flex-row-center combine-content" v-for="(item, i) in combineList" :key="i" style="display: block">
|
||||
<div class="top" style="font-size: 0.24rem; text-align: center; margin-bottom: 0.3rem">
|
||||
<div
|
||||
class="flex-row-center combine-content"
|
||||
v-for="(item, i) in combineList"
|
||||
:key="i"
|
||||
style="display: block"
|
||||
>
|
||||
<div
|
||||
class="top"
|
||||
style="font-size: 0.24rem; text-align: center; margin-bottom: 0.3rem"
|
||||
>
|
||||
{{ i == 0 ? '基础设施' : i == 1 ? '组件服务' : '数据资源' }}
|
||||
</div>
|
||||
<div
|
||||
class="data-count"
|
||||
style="font-size: 0.14rem; text-align: right; margin-bottom: 0.2rem"
|
||||
>
|
||||
<span style="color: #909399">
|
||||
共
|
||||
{{
|
||||
i == 0
|
||||
? infrastructureCount
|
||||
: i == 1
|
||||
? componentCount
|
||||
: dataSourceCount
|
||||
}}项,示例如下:
|
||||
</span>
|
||||
</div>
|
||||
<div class="bottom" style="display: flex; align-items: flex-start">
|
||||
<div class="title" :class="'title' + i"></div>
|
||||
<div class="table-box">
|
||||
<el-table class="table" :data="item.list" stripe :header-cell-style="{ 'text-align': 'center' }">
|
||||
<el-table-column prop="name" label="数据" align="center" width="200" show-overflow-tooltip="true">
|
||||
</el-table-column>
|
||||
<el-table-column prop="dept" label="能力来源" align="center" width="300" show-overflow-tooltip="true">
|
||||
</el-table-column>
|
||||
<el-table-column prop="platform" label="申请平台" align="center" width="100" show-overflow-tooltip="true">
|
||||
</el-table-column>
|
||||
<el-table
|
||||
class="table"
|
||||
:data="item.list"
|
||||
stripe
|
||||
:header-cell-style="{ 'text-align': 'center' }"
|
||||
>
|
||||
<el-table-column
|
||||
prop="name"
|
||||
label="资源名称"
|
||||
align="center"
|
||||
width="200"
|
||||
show-overflow-tooltip="true"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="platform"
|
||||
label="资源类型"
|
||||
align="center"
|
||||
width="100"
|
||||
show-overflow-tooltip="true"
|
||||
></el-table-column>
|
||||
<el-table-column
|
||||
prop="dept"
|
||||
label="能力来源"
|
||||
align="center"
|
||||
width="300"
|
||||
show-overflow-tooltip="true"
|
||||
></el-table-column>
|
||||
</el-table>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -90,7 +154,12 @@
|
|||
</div>
|
||||
<div class="flex-row-center step-content">
|
||||
<el-steps direction="vertical" :space="150" :active="step.length">
|
||||
<el-step v-for="(item, i) in step" :key="i" :title="item.question" :description="item.answer"></el-step>
|
||||
<el-step
|
||||
v-for="(item, i) in step"
|
||||
:key="i"
|
||||
:title="item.question"
|
||||
:description="item.answer"
|
||||
></el-step>
|
||||
</el-steps>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -117,6 +186,9 @@ const painPoint = ref([])
|
|||
const solution = ref([])
|
||||
const step = ref([])
|
||||
const bgImg = ref('')
|
||||
const dataSourceCount = ref(0)
|
||||
const infrastructureCount = ref(0)
|
||||
const componentCount = ref(0)
|
||||
const id = router.currentRoute.value.query.id
|
||||
document.documentElement.style.transition = 'all 0.3s ease'
|
||||
document.documentElement.scrollTop = 0
|
||||
|
@ -215,12 +287,10 @@ const selectNav = (key) => {
|
|||
mybus.emit('flyToView', selectNow.value)
|
||||
}
|
||||
|
||||
const getAttrValue = (fuseAttrList, data, text) => {
|
||||
let _obj = fuseAttrList.find((v) => v.attrType === text) || {};
|
||||
data =
|
||||
JSON.parse(
|
||||
_obj.attrValue || '[]'
|
||||
) || []
|
||||
const getAttrValue = (fuseAttrList, text) => {
|
||||
let _obj = fuseAttrList.find((v) => v.attrType === text) || {}
|
||||
let data = JSON.parse(_obj.attrValue || '[]') || []
|
||||
return data
|
||||
}
|
||||
|
||||
// 融合服务--详情
|
||||
|
@ -231,6 +301,9 @@ const getIntegrationServicesDeatil = (id) => {
|
|||
return message.error(res.data.msg)
|
||||
}
|
||||
detailInfoObj.value = res.data.data || {}
|
||||
dataSourceCount.value = res.data.data.dataSourceCount || 0
|
||||
infrastructureCount.value = res.data.data.infrastructureCount || 0
|
||||
componentCount.value = res.data.data.componentCount || 0
|
||||
// 资源属性
|
||||
let fuseAttrList = res.data.data.fuseAttrList || []
|
||||
// 融合关系
|
||||
|
@ -241,9 +314,9 @@ const getIntegrationServicesDeatil = (id) => {
|
|||
attrType: '常见问题',
|
||||
attrValue: questionValue.attrValue || '[]',
|
||||
}
|
||||
getAttrValue(fuseAttrList, painPoint.value, '场景痛点');
|
||||
getAttrValue(fuseAttrList, solution.value, '解决方案');
|
||||
getAttrValue(fuseAttrList, step.value, '使用步骤');
|
||||
painPoint.value = getAttrValue(fuseAttrList, '场景痛点')
|
||||
solution.value = getAttrValue(fuseAttrList, '解决方案')
|
||||
step.value = getAttrValue(fuseAttrList, '使用步骤')
|
||||
bgImg.value =
|
||||
fuseAttrList.find((v) => v.attrType === '服务图片').attrValue || ''
|
||||
let areaObj = {
|
||||
|
@ -260,47 +333,34 @@ const getIntegrationServicesDeatil = (id) => {
|
|||
arr = resource.map((res) => ({
|
||||
id: res.resource.idtCameraChannel,
|
||||
name: res.resource.channelName,
|
||||
dept: res.resource.nodeName,
|
||||
platform: 'UCS',
|
||||
dept: res.resource.nodeName
|
||||
.split('-')
|
||||
.splice(1)
|
||||
.join('-')
|
||||
.slice(1),
|
||||
platform: '视频资源',
|
||||
}))
|
||||
} else if (item.title === '组件服务') {
|
||||
arr = resource.map((res) => ({
|
||||
id: res.resource.id,
|
||||
name: res.resource.name,
|
||||
dept: res.resource.deptName,
|
||||
platform: 'UCS',
|
||||
platform:
|
||||
res.resource.infoList.find(
|
||||
(item) => item.attrType === '组件类型'
|
||||
)?.attrValue || '组件服务',
|
||||
}))
|
||||
} else if (item.title === '数据资源') {
|
||||
arr = resource.map((res) => ({
|
||||
id: res.resource.zycode,
|
||||
name: res.resource.zyname,
|
||||
dept: res.resource.TGBM,
|
||||
platform: '共享交换平台',
|
||||
id: res.resource.resourceId,
|
||||
name: res.resource.resourceName,
|
||||
dept: res.resource.deptName,
|
||||
platform: '数据资源',
|
||||
}))
|
||||
}
|
||||
}
|
||||
if (item.title === '数据资源') {
|
||||
item.list.push({
|
||||
id: '数据资源1',
|
||||
name: '城管案件数据',
|
||||
dept: '市城管局',
|
||||
platform: '政务信息共享交换网',
|
||||
})
|
||||
item.list.push({
|
||||
id: '数据资源2',
|
||||
name: '手机信令数据',
|
||||
dept: '运营商(移动)',
|
||||
platform: '政务信息共享交换网',
|
||||
})
|
||||
item.list.push({
|
||||
id: '数据资源3',
|
||||
name: '标准地址数据',
|
||||
dept: '市自规局',
|
||||
platform: '政务信息共享交换网',
|
||||
})
|
||||
} else {
|
||||
|
||||
item.list = arr
|
||||
}
|
||||
})
|
||||
detailInfoObj.value.infoList = []
|
||||
detailInfoObj.value.infoList.push(questionObj)
|
||||
|
@ -447,9 +507,11 @@ onBeforeUnmount(() => {
|
|||
height: 1.5rem;
|
||||
width: 6.2rem;
|
||||
border-radius: 0.2rem;
|
||||
background: linear-gradient(to right,
|
||||
background: linear-gradient(
|
||||
to right,
|
||||
rgba(113, 132, 252, 0.4),
|
||||
rgba(148, 163, 252, 0.4));
|
||||
rgba(148, 163, 252, 0.4)
|
||||
);
|
||||
padding: 0 0.3rem;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
|
@ -606,6 +668,8 @@ onBeforeUnmount(() => {
|
|||
// width: 100%;
|
||||
font-size: 16px;
|
||||
}
|
||||
.data-count {
|
||||
}
|
||||
}
|
||||
|
||||
.name-box {
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<a-layout-header>
|
||||
<div class="title">最热能力</div>
|
||||
<div class="des">
|
||||
能力资源汇聚、能力共享开放、赋能千行百业、孵化生态产业
|
||||
能力资源、能力共享开放、赋能千行百业、孵化生态产业
|
||||
</div>
|
||||
</a-layout-header>
|
||||
<a-layout class="content">
|
||||
|
|
|
@ -65,6 +65,8 @@
|
|||
data-spm-anchor-id="a313x.7781069.0.i0"
|
||||
></path>
|
||||
</svg>
|
||||
<img class="icon-poylon" @click="areaMode()" src="~@/supermap/image/icon-poylon.png">
|
||||
|
||||
</div>
|
||||
<video-play
|
||||
v-if="openVideo"
|
||||
|
@ -92,6 +94,7 @@
|
|||
} from '@/api/videoSurveillance'
|
||||
import { getCameraByCondition } from '@/api/file'
|
||||
import mybus from '@/myplugins/mybus'
|
||||
import * as turf from '@turf/turf';
|
||||
|
||||
export default {
|
||||
data() {
|
||||
|
@ -112,6 +115,7 @@
|
|||
openVideo: false,
|
||||
channelCode: [],
|
||||
circleModeFlag: false,
|
||||
areaModeFlag: false,
|
||||
addressMatchUrl: '',
|
||||
address: '',
|
||||
whoShow1: whoShow,
|
||||
|
@ -124,7 +128,10 @@
|
|||
gpsX: '',
|
||||
gpsY: '',
|
||||
radius: '',
|
||||
borderPolygonList: [],
|
||||
type: 0, //0是无,1画圆,2不规则
|
||||
},
|
||||
pointAllData:[],
|
||||
}
|
||||
},
|
||||
components: {
|
||||
|
@ -158,6 +165,20 @@
|
|||
this.mapSearchParam.parentId = parentId
|
||||
this.getCameraByParentId()
|
||||
})
|
||||
//表格勾选
|
||||
mybus.off('selectTablePoint')
|
||||
mybus.on('selectTablePoint', (pointlist) => {
|
||||
console.log("mounted -> pointlist", pointlist);
|
||||
for(let i=0;i<this.pointAllData.length;i++){
|
||||
this.pointAllData[i].active = false
|
||||
for(let j=0;j<pointlist.length;j++){
|
||||
if(this.pointAllData[i].channelCode == pointlist[j].channelCode){
|
||||
this.pointAllData[i].active = true
|
||||
}
|
||||
}
|
||||
}
|
||||
this.addResourceTomap('videoMap', this.pointAllData);
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
selectedAddress(item, index) {
|
||||
|
@ -169,6 +190,46 @@
|
|||
}
|
||||
this.hiMapFun.mapFlyTo(latLng)
|
||||
},
|
||||
//框选
|
||||
areaSelectResource(){
|
||||
// 修改控件提示
|
||||
L.drawLocal.draw.handlers.polygon.tooltip.start = '单击开始绘制形状'
|
||||
L.drawLocal.draw.handlers.polygon.tooltip.cont = '单击继续绘制形状'
|
||||
L.drawLocal.draw.handlers.polygon.tooltip.end =
|
||||
'单击继续绘制形状,双击结束绘制'
|
||||
|
||||
this.hiMap.mapObj.map.off('draw:created')
|
||||
this.hiMap.mapObj.drawPolygon.enable()
|
||||
this.hiMap.mapObj.map.once('draw:created', (e) => {
|
||||
const type = e.layerType
|
||||
const circleLayer = e.layer
|
||||
console.log('查询图层draw:created', e)
|
||||
if (type === 'polygon') {
|
||||
const polygonLayer = e.layer;
|
||||
this.hiMap.mapObj.featureGroup.addLayer(polygonLayer);
|
||||
this.hiMap.mapObj.layerGroup.set('rectangleSelectLayer', polygonLayer);
|
||||
const arr = [];
|
||||
const latlngs = []; //选择的坐标组
|
||||
polygonLayer._latlngs[0].map(item => {
|
||||
// const bdLonLat = wgs84LL2bdLL();
|
||||
arr.push(turf.point([item.lng, item.lat]));
|
||||
latlngs.push([item.lat,item.lng])
|
||||
});
|
||||
const points = turf.featureCollection(arr);
|
||||
const rect = turf.convex(points);
|
||||
|
||||
this.mapSearchParam.borderPolygonList = latlngs
|
||||
this.mapSearchParam.type = 2
|
||||
const params = {
|
||||
borderPolygonList: latlngs,
|
||||
type: this.mapSearchParam.type,
|
||||
}
|
||||
// mybus.emit('getListByMap', params);
|
||||
this.getCameraByParentId('map');
|
||||
console.log("areaSelectResource -> latlngs", latlngs)
|
||||
}
|
||||
})
|
||||
},
|
||||
// 圈选方法
|
||||
circleSelectResource() {
|
||||
L.drawLocal.draw.handlers.circle.tooltip.start = '请圈选区域'
|
||||
|
@ -196,18 +257,20 @@
|
|||
this.mapSearchParam.gpsX = e.layer._latlng.lng
|
||||
this.mapSearchParam.gpsY = e.layer._latlng.lat
|
||||
this.mapSearchParam.radius = radius
|
||||
this.mapSearchParam.type = 1
|
||||
const params = {
|
||||
gpsX: this.mapSearchParam.gpsX,
|
||||
gpsY: this.mapSearchParam.gpsY,
|
||||
radius: radius,
|
||||
type: this.mapSearchParam.type,
|
||||
}
|
||||
mybus.emit('getListByMap', params)
|
||||
this.getCameraByParentId()
|
||||
// mybus.emit('getListByMap', params)
|
||||
this.getCameraByParentId('map')
|
||||
}
|
||||
}
|
||||
})
|
||||
},
|
||||
getCameraByParentId() {
|
||||
getCameraByParentId(type) {
|
||||
if (!this.whoShow1.itShowXiHaiAn) {
|
||||
debugger
|
||||
getCameraByParentId(this.mapSearchParam).then((res) => {
|
||||
|
@ -221,12 +284,13 @@
|
|||
this.mapSearchParam.parentId ||
|
||||
'70be8c5b664f4bcf869d82f2e8335051',
|
||||
pageNum: this.mapSearchParam.pageNum,
|
||||
pageSize: this.mapSearchParam.pageSize,
|
||||
pageSize: this.mapSearchParam.type!=0?this.mapSearchParam.pageSize:10,
|
||||
name: this.mapSearchParam.cameraName || '',
|
||||
longitude: this.mapSearchParam.gpsX || '',
|
||||
latitude: this.mapSearchParam.gpsY || '',
|
||||
radius: this.mapSearchParam.radius || '',
|
||||
status: 1,
|
||||
type: this.mapSearchParam.type,
|
||||
borderPolygonList: this.mapSearchParam.borderPolygonList || [],
|
||||
}
|
||||
let paramsFather = ''
|
||||
let i = 1
|
||||
|
@ -243,40 +307,88 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
getCameraByCondition(paramsFather).then((res) => {
|
||||
getCameraByCondition(params).then((res) => {
|
||||
console.log('根据parent查询摄像头', res.data.data)
|
||||
if(type=='map'){
|
||||
let params = this.mapSearchParam;
|
||||
params.dataSource = res.data.data||0;
|
||||
params.total = res.data.count||0;
|
||||
mybus.emit('getListByMap', params);
|
||||
}
|
||||
this.pointAllData = res.data.data;
|
||||
if(this.mapSearchParam.type!=0)
|
||||
this.addResourceTomap('videoMap', res.data.data)
|
||||
else
|
||||
this.addResourceTomap('videoMap', []) //查询全部时不打点
|
||||
})
|
||||
}
|
||||
},
|
||||
// 初始化地址匹配服务
|
||||
initAddressMatchService() {
|
||||
this.L = window.L || {}
|
||||
this.addressMatchService = L.supermap && L.supermap.addressMatchService && L.supermap.addressMatchService(
|
||||
this.addressMatchService = L.supermap.addressMatchService(
|
||||
this.addressMatchUrl
|
||||
)
|
||||
},
|
||||
areaMode(){
|
||||
// 转换不规则形状模式
|
||||
if(this.circleModeFlag){
|
||||
this.resetCircle();
|
||||
this.circleModeFlag = false;
|
||||
}
|
||||
|
||||
this.areaModeFlag = !this.areaModeFlag;
|
||||
|
||||
if (this.areaModeFlag) {
|
||||
// 打开不规则形状模式模式
|
||||
this.areaSelectResource()
|
||||
} else {
|
||||
this.resetArea();
|
||||
}
|
||||
},
|
||||
circleMode() {
|
||||
if(this.areaModeFlag){
|
||||
this.resetArea();
|
||||
this.areaModeFlag = false;
|
||||
}
|
||||
// 转换圈选模式
|
||||
this.circleModeFlag = !this.circleModeFlag
|
||||
if (this.circleModeFlag) {
|
||||
// 打开圈选模式
|
||||
this.circleSelectResource()
|
||||
} else {
|
||||
this.resetCircle();
|
||||
}
|
||||
},
|
||||
resetCircle(){
|
||||
// 关闭圈选模式,清空圈选内容,重新上图
|
||||
this.hiMapFun.removeLayerByLayerName('circlePloygonLayer')
|
||||
// 重置内容
|
||||
this.mapSearchParam.gpsX = ''
|
||||
this.mapSearchParam.gpsY = ''
|
||||
this.mapSearchParam.radius = ''
|
||||
this.getCameraByParentId()
|
||||
this.mapSearchParam.type = 0;
|
||||
const params = {
|
||||
gpsX: this.mapSearchParam.gpsX,
|
||||
gpsY: this.mapSearchParam.gpsY,
|
||||
radius: this.mapSearchParam.radius,
|
||||
type: this.mapSearchParam.type
|
||||
}
|
||||
mybus.emit('getListByMap', params)
|
||||
this.getCameraByParentId('map')
|
||||
// mybus.emit('getListByMap', params);
|
||||
},
|
||||
resetArea(){
|
||||
// 关闭不规则形状模式模式,清空不规则形状模式内容,重新上图
|
||||
this.hiMapFun.removeLayerByLayerName('rectangleSelectLayer');
|
||||
// 重置内容
|
||||
this.mapSearchParam.borderPolygonList = [];
|
||||
this.mapSearchParam.type = 0;
|
||||
const params = {
|
||||
borderPolygonList: this.mapSearchParam.borderPolygonList,
|
||||
type: this.mapSearchParam.type
|
||||
}
|
||||
this.getCameraByParentId('map')
|
||||
// mybus.emit('getListByMap', params);
|
||||
},
|
||||
//查询地址建议匹配
|
||||
async searchAddressByKeyWord(queryString, cb, indexX) {
|
||||
|
@ -352,18 +464,21 @@
|
|||
|
||||
addResourceTomap(type, data) {
|
||||
const dataEvent = []
|
||||
if(data&&data.length>0){
|
||||
data.forEach((item) => {
|
||||
const arr = [0, 0.0, '', '0', '0.0']
|
||||
if (arr.indexOf(item.gpsX) == -1) {
|
||||
dataEvent.push({
|
||||
latLng: { lat: Number(item.gpsY), lng: Number(item.gpsX) },
|
||||
data: item,
|
||||
active: item.active,
|
||||
type: 'videoSurveillance',
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
console.log('上图数据', dataEvent)
|
||||
this.getMapPoint(dataEvent, 'videoSurveillance.png', type)
|
||||
this.getMapPoint(dataEvent, 'icon_camare.png', type)
|
||||
},
|
||||
getMapPoint(data, img, type) {
|
||||
// this.hiMapFun.clearAllLayers();
|
||||
|
@ -373,7 +488,8 @@
|
|||
features,
|
||||
img,
|
||||
type,
|
||||
createCameraDetailsPop
|
||||
createCameraDetailsPop,
|
||||
'icon_camare_active.png'
|
||||
)
|
||||
},
|
||||
|
||||
|
@ -543,13 +659,17 @@
|
|||
.leaflet-control-attribution {
|
||||
display: none;
|
||||
}
|
||||
svg {
|
||||
svg,.icon-poylon {
|
||||
position: absolute;
|
||||
bottom: 0.1rem;
|
||||
right: 0.1rem;
|
||||
z-index: 1001;
|
||||
z-index: 988;
|
||||
cursor: pointer;
|
||||
}
|
||||
.icon-poylon {
|
||||
width: 0.46rem;
|
||||
bottom: 0.6rem;
|
||||
}
|
||||
.address-auto-complete-input {
|
||||
width: 2.4rem;
|
||||
}
|
||||
|
|
|
@ -2,42 +2,26 @@
|
|||
<home-header></home-header>
|
||||
<div class="menu-container">
|
||||
<div id="container" class="content-menu">
|
||||
<div class="left">
|
||||
<div
|
||||
class="first-title-text doc"
|
||||
:style="{ color: '技术文档' === titleData.name ? '#0058e1' : '' }"
|
||||
@click="changeName({ name: '技术文档' })"
|
||||
>
|
||||
<!-- <div class="left">
|
||||
<div class="first-title-text doc" :style="{ color: '技术文档' === titleData.name ? '#0058e1' : '' }"
|
||||
@click="changeName({ name: '技术文档' })">
|
||||
技术文档
|
||||
</div>
|
||||
<abilityDocTree
|
||||
style="max-height: 320px; overflow-y: auto"
|
||||
:dataList="treeArray"
|
||||
@treeClick="treeClick"
|
||||
:clickData="clickData"
|
||||
></abilityDocTree>
|
||||
</div>
|
||||
<abilityDocTree style="max-height:320px;overflow-y:auto" :dataList="treeArray" @treeClick="treeClick"
|
||||
:clickData="clickData"></abilityDocTree>
|
||||
</div> -->
|
||||
|
||||
<div
|
||||
class="first-title-text new-guide-box"
|
||||
:style="{ color: '使用手册' === titleData.name ? '#0058e1' : '' }"
|
||||
@click="changeName({ name: '使用手册' })"
|
||||
>
|
||||
<div class="first-title-text new-guide-box" :style="{ color: '使用手册' === titleData.name ? '#0058e1' : '' }"
|
||||
@click="downloadDoc('/static/doc/userbook.docx', '通用能力服务平台USC用户手册')">
|
||||
<div class="guide-text">使用手册</div>
|
||||
<el-icon :size="20" color="#0058e1" @click="downloadEvt()"><Download /></el-icon>
|
||||
<img src="@/assets/developmentGuide/download.png" @click="downloadDoc('/static/doc/userbook.docx', '通用能力服务平台USC用户手册')" alt="" />
|
||||
</div>
|
||||
|
||||
<!-- 技术文档 -->
|
||||
<div class="right" v-if="titleData.name !== '使用手册'">
|
||||
<div style="height: 100%">
|
||||
<iframe
|
||||
name="iframeName"
|
||||
width="1300"
|
||||
height="100%"
|
||||
id="iframeId"
|
||||
:frameborder="0"
|
||||
:src="doc_base_url + clickData.doc"
|
||||
></iframe>
|
||||
<iframe name="iframeName" width="1300" height="100%" id="iframeId" :frameborder="0"
|
||||
:src="doc_base_url + clickData.doc"></iframe>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -150,14 +134,15 @@ const getFirstData = (firstObj = {}) => {
|
|||
clickData.value = firstObj
|
||||
}
|
||||
}
|
||||
|
||||
const downloadDoc = (path, name) => {
|
||||
const a = document.createElement('a')
|
||||
a.href = path
|
||||
a.download =name
|
||||
a.click()
|
||||
}
|
||||
onMounted(() => {
|
||||
getTreeData()
|
||||
})
|
||||
|
||||
const downloadEvt = (url = '') => {
|
||||
window.open('/static/download/通用能力服务平台UCS用户手册-v3.5.docx', '_self')
|
||||
}
|
||||
</script>
|
||||
|
||||
<style scoped lang="less">
|
||||
|
@ -213,7 +198,7 @@ const downloadEvt = (url = '') => {
|
|||
top: 300px;
|
||||
right: 205px;
|
||||
width: 74px;
|
||||
height: 170px;
|
||||
height: 150px;
|
||||
background: url('~@/assets/menu/new-bg.png') no-repeat;
|
||||
background-size: 100% 100%;
|
||||
display: flex;
|
||||
|
@ -229,8 +214,6 @@ const downloadEvt = (url = '') => {
|
|||
word-wrap: break-word;
|
||||
font-size: 20px;
|
||||
color: #0058e1;
|
||||
height: 136px;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.right {
|
||||
|
|
|
@ -15,7 +15,11 @@
|
|||
</a-input>
|
||||
</a-form-item>
|
||||
<a-form-item>
|
||||
<a-input v-model:value="form.password" type="password" placeholder="Password">
|
||||
<a-input
|
||||
v-model:value="form.password"
|
||||
type="password"
|
||||
placeholder="Password"
|
||||
>
|
||||
<template v-slot:prefix>
|
||||
<LockOutlined style="color: rgba(0, 0, 0, 0.25)" />
|
||||
</template>
|
||||
|
@ -23,8 +27,15 @@
|
|||
</a-form-item>
|
||||
<a-form-item>
|
||||
<!-- IE Chrome || judgeAgent() !== 'Chrome'-->
|
||||
<a-button type="primary" html-type="submit"
|
||||
:disabled="form.username === '' || form.password === '' || !canOpen.includes(judgeAgent())">
|
||||
<a-button
|
||||
type="primary"
|
||||
html-type="submit"
|
||||
:disabled="
|
||||
form.username === '' ||
|
||||
form.password === '' ||
|
||||
!canOpen.includes(judgeAgent())
|
||||
"
|
||||
>
|
||||
登录
|
||||
</a-button>
|
||||
</a-form-item>
|
||||
|
@ -38,10 +49,14 @@
|
|||
<script>
|
||||
import { dependencies, devDependencies } from '*/package.json'
|
||||
import { mapActions, mapGetters } from 'vuex'
|
||||
import Cookies from 'js-cookie'
|
||||
import { Encrypt } from '@/utils/crypto'
|
||||
import { UserOutlined, LockOutlined } from '@ant-design/icons-vue'
|
||||
import { message, Modal } from 'ant-design-vue'
|
||||
|
||||
// 是否是西海岸
|
||||
const isXiHaiAn = whoShow.itShowXiHaiAn
|
||||
|
||||
export default {
|
||||
name: 'Login',
|
||||
components: {
|
||||
|
@ -59,7 +74,7 @@ export default {
|
|||
devDependencies: devDependencies,
|
||||
is360: false,
|
||||
isIE: false,
|
||||
canOpen: ['FF', 'Chrome']
|
||||
canOpen: ['FF', 'Chrome'],
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
|
@ -84,7 +99,7 @@ export default {
|
|||
Modal.warning({
|
||||
title: '提示',
|
||||
content: '请使用谷歌或火狐浏览器!',
|
||||
});
|
||||
})
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
@ -94,7 +109,7 @@ export default {
|
|||
// 判断浏览器
|
||||
judgeAgent() {
|
||||
let userAgent = navigator.userAgent // 取得浏览器的userAgent字符串
|
||||
console.log('userAgent------------>', userAgent);
|
||||
console.log('userAgent------------>', userAgent)
|
||||
let isOpera = userAgent.indexOf('Opera') > -1
|
||||
//判断是否Opera浏览器
|
||||
if (isOpera) {
|
||||
|
@ -142,10 +157,26 @@ export default {
|
|||
password: Encrypt(this.form.password),
|
||||
username: this.form.username,
|
||||
})
|
||||
window.localStorage.setItem('tokenStartTime', new Date().getTime())
|
||||
window.sessionStorage.setItem('visits', JSON.stringify([]))
|
||||
console.log('添加visits========================================>')
|
||||
console.log(
|
||||
'添加visits========================================>',
|
||||
Cookies.get('ucsToken')
|
||||
)
|
||||
// console.log(this.handleRoute())
|
||||
// 西海岸特殊处理
|
||||
if (isXiHaiAn) {
|
||||
await this.$router.push({
|
||||
path: '/DetailsPageconetent',
|
||||
query: {
|
||||
select: '基础设施',
|
||||
tecHnosphere: '',
|
||||
appLiCation: '',
|
||||
},
|
||||
})
|
||||
} else {
|
||||
await this.$router.push('/home')
|
||||
}
|
||||
} catch (error) {
|
||||
message.error('登陆失败,用户名或密码错误!')
|
||||
}
|
||||
|
|
|
@ -15,40 +15,15 @@
|
|||
</a-breadcrumb>
|
||||
<div class="top">
|
||||
<div class="left">
|
||||
<div
|
||||
class="item"
|
||||
:class="{ select: selectNav == nav.key }"
|
||||
v-for="nav in navList"
|
||||
:key="nav.key"
|
||||
>
|
||||
<div class="item" :class="{ select: selectNav == nav.key }" v-for="nav in navList" :key="nav.key">
|
||||
<i :class="nav.key" @click="changeNav(nav)"></i>
|
||||
<div>{{ nav.title + '(' + nav.num + ')' }}</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- <div class="right">
|
||||
<div style="margin-right: 0.1rem">搜索</div>
|
||||
<a-input
|
||||
v-model:value="userName"
|
||||
placeholder="请输入关键字"
|
||||
style="margin-right: 0.1rem"
|
||||
>
|
||||
<template #suffix>
|
||||
<search-outlined style="color: rgba(0, 0, 0, 0.45)" />
|
||||
</template>
|
||||
</a-input>
|
||||
<a-button type="primary" style="margin-right: 0.1rem">搜索</a-button>
|
||||
<div class="reset">重置</div>
|
||||
</div> -->
|
||||
</div>
|
||||
<div class="btn">
|
||||
<div class="left">
|
||||
<a-select
|
||||
ref="select"
|
||||
v-model:value="value"
|
||||
style="width: 120px"
|
||||
@focus="focus"
|
||||
@change="handleChange"
|
||||
>
|
||||
<a-select ref="select" v-model:value="value" style="width: 120px" @focus="focus" @change="handleChange">
|
||||
<a-select-option value="全部消息">全部消息</a-select-option>
|
||||
<a-select-option value="已读消息">已读消息</a-select-option>
|
||||
<a-select-option value="未读消息">未读消息</a-select-option>
|
||||
|
@ -62,60 +37,41 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="right">
|
||||
<a-checkbox
|
||||
:checked="
|
||||
<a-checkbox :checked="
|
||||
selectData.length !== 0 && selectData.length === data.length
|
||||
"
|
||||
stlye="margin-right:0.3rem;"
|
||||
@change="changeCheckAll()"
|
||||
></a-checkbox>
|
||||
" stlye="margin-right:0.3rem;" @change="changeCheckAll()"></a-checkbox>
|
||||
<div>全选当前页</div>
|
||||
<span @click="read()">标记为已读</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main">
|
||||
<a-list item-layout="horizontal" :data-source="data">
|
||||
<template #renderItem="{ item }">
|
||||
<template #renderItem="{ item }" @click="goNoticePage(item)">
|
||||
<a-list-item>
|
||||
<a-list-item-meta description="">
|
||||
<template #title>
|
||||
<div
|
||||
class="left"
|
||||
@click="read(item)"
|
||||
:class="item.readStatus === 1 ? '' : 'pointer'"
|
||||
>
|
||||
<div class="left" @click="read(item)" :class="item.readStatus === 0 ? 'bold-text' : ''">
|
||||
{{ item.content }}
|
||||
</div>
|
||||
<div class="right">{{ '发布时间:' + item.senderDate }}</div>
|
||||
</template>
|
||||
<template #avatar>
|
||||
<a-checkbox
|
||||
:checked="item.checked"
|
||||
@change="changeCheckBox(item)"
|
||||
></a-checkbox>
|
||||
<a-checkbox :checked="item.checked" @change="changeCheckBox(item)"></a-checkbox>
|
||||
<a-badge dot :offset="[-30, 5]" v-show="item.readStatus == 0">
|
||||
<a-avatar :src="item.src" />
|
||||
</a-badge>
|
||||
<a-avatar :src="item.src" v-show="item.readStatus == 1" />
|
||||
<!-- <a-avatar :src="item.src" /> -->
|
||||
</template>
|
||||
</a-list-item-meta>
|
||||
</a-list-item>
|
||||
</template>
|
||||
</a-list>
|
||||
</div>
|
||||
<a-pagination
|
||||
v-model:current="pageNum"
|
||||
v-model:pageSize="pageSize"
|
||||
:total="total"
|
||||
show-less-items
|
||||
:show-size-changer="false"
|
||||
@change="changePageNum"
|
||||
/>
|
||||
<a-pagination v-model:current="pageNum" v-model:pageSize="pageSize" :total="total" show-less-items
|
||||
:show-size-changer="false" @change="changePageNum" />
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
// import { SearchOutlined } from '@ant-design/icons-vue'
|
||||
import { ref, reactive, onBeforeUnmount } from 'vue'
|
||||
import mybus from '@/myplugins/mybus'
|
||||
import { message } from 'ant-design-vue'
|
||||
|
@ -214,27 +170,132 @@ const goBack = (url) => {
|
|||
path: url,
|
||||
})
|
||||
}
|
||||
|
||||
// 申请状态
|
||||
let applyStateObj = {
|
||||
0: '待办',
|
||||
1: '已办',
|
||||
}
|
||||
let typeObj = {
|
||||
0: '申请前台',
|
||||
1: '申请后台',
|
||||
2: '上架前台',
|
||||
3: '上架后台',
|
||||
4: '下架前台',
|
||||
5: '下架后台',
|
||||
6: '需求前台',
|
||||
7: '需求后台',
|
||||
8: '评论前台',
|
||||
9: '评论后台',
|
||||
10: '会议室前台',
|
||||
11: '会议室后台',
|
||||
12: '其他'
|
||||
}
|
||||
|
||||
// 对应的后台管理的页面
|
||||
let pageObj = {
|
||||
'申请后台': {
|
||||
0: 'myAgent-CompetencyApplication',
|
||||
1: 'hasToDoTasks-CompetencyApplication',
|
||||
},
|
||||
'上架后台': {
|
||||
0: 'myAgent-AbilityResourceShelf',
|
||||
1: 'hasToDoTasks-AbilityResourceShelf',
|
||||
},
|
||||
'下架后台': {
|
||||
0: 'myAgent-AbilityResourcesRemoved',
|
||||
1: 'hasToDoTasks-AbilityResourcesRemoved',
|
||||
},
|
||||
'需求后台': {
|
||||
0: 'myAgent-ApplicationforCompetencyRequirements',
|
||||
1: 'hasToDoTasks-ApplicationForCompetencyRequirements',
|
||||
},
|
||||
'评论后台': {
|
||||
0: 'myAgent-CommentModeration',
|
||||
1: 'hasToDoTasks-CommentModeration',
|
||||
},
|
||||
'会议室后台': {
|
||||
0: 'activiti-RoomExamineAdmin',
|
||||
1: 'activiti-RoomExamineAdmin',
|
||||
},
|
||||
}
|
||||
|
||||
// 前台tab名称
|
||||
const tabTypeObj = {
|
||||
'申请前台': '能力申请',
|
||||
'上架前台': '能力上架',
|
||||
'下架前台': '能力下架',
|
||||
'需求前台': '需求评论',
|
||||
'评论前台': '需求评论',
|
||||
'会议室前台': '会议室前台'
|
||||
}
|
||||
|
||||
// 会议室后台
|
||||
const goPage = (item) => {
|
||||
let typeText = typeObj[item.type];
|
||||
if (typeText) {
|
||||
console.log('typeText类型------------>', typeText);
|
||||
// 是后台,跳转到后台相关页面
|
||||
if (typeText.indexOf('后台') !== -1) {
|
||||
let _applyState = item.applyState
|
||||
let _page = pageObj[typeText][_applyState]
|
||||
window.open(window.SITE_CONFIG.backUrl + `/#/${_page}`)
|
||||
} else if (typeText.indexOf('前台') !== -1) {
|
||||
if (typeText == '会议室前台') {
|
||||
router.push({
|
||||
path: '/DetailsPageconetent',
|
||||
query: {
|
||||
select: '基础设施',
|
||||
formPage: 'noticePage'
|
||||
},
|
||||
})
|
||||
} else {
|
||||
window.sessionStorage.setItem('type', JSON.stringify('apply'))
|
||||
router.push({
|
||||
path: '/personalCenter',
|
||||
query: {
|
||||
tabTypeName: tabTypeObj[typeText] || '能力申请',
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
let isQingDao = whoShow.itShowQingDao;
|
||||
|
||||
// 更改消息状态
|
||||
const read = (item) => {
|
||||
// console.log(item)
|
||||
if (selectData.value.length === 0 && !item) {
|
||||
message.error('未选择消息!')
|
||||
return
|
||||
}
|
||||
console.log(selectData.value)
|
||||
|
||||
if (item) {
|
||||
// 已读状态
|
||||
if (item.readStatus === 1) {
|
||||
if(isQingDao) {
|
||||
goPage(item)
|
||||
}
|
||||
// 跳转页面
|
||||
return
|
||||
}
|
||||
mynoticeRead(item.id).then((res) => {
|
||||
if (res.data.code == 0) {
|
||||
message.success('操作成功!')
|
||||
message.success('通知已读!')
|
||||
mybus.emit('getMynotice')
|
||||
init()
|
||||
if (isQingDao) {
|
||||
// 页面跳转
|
||||
setTimeout(() => {
|
||||
goPage(item)
|
||||
}, 1000)
|
||||
}
|
||||
} else {
|
||||
message.error('操作失败!')
|
||||
}
|
||||
}).catch(err => {
|
||||
message.error(err)
|
||||
})
|
||||
} else {
|
||||
console.log('提交')
|
||||
|
@ -297,9 +358,11 @@ onBeforeUnmount(() => {
|
|||
.notice-list {
|
||||
padding: 0.64rem 0 0;
|
||||
background: #f4f5f8;
|
||||
|
||||
.ant-breadcrumb {
|
||||
padding: 0.1rem 3.1rem;
|
||||
}
|
||||
|
||||
.top {
|
||||
background: #fff;
|
||||
padding: 0.18rem 3.1rem 0;
|
||||
|
@ -307,8 +370,11 @@ onBeforeUnmount(() => {
|
|||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
|
||||
|
||||
.left {
|
||||
display: flex;
|
||||
|
||||
.item {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
|
@ -317,6 +383,7 @@ onBeforeUnmount(() => {
|
|||
margin-left: 1.28rem;
|
||||
margin-bottom: 0.16rem;
|
||||
border-bottom: 3px solid #fff;
|
||||
|
||||
i {
|
||||
display: inline-block;
|
||||
width: 0.48rem;
|
||||
|
@ -324,44 +391,54 @@ onBeforeUnmount(() => {
|
|||
margin-bottom: 0.15rem;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.all {
|
||||
background: url('~@/assets/mynoticeView/all.png') no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
.notice {
|
||||
background: url('~@/assets/mynoticeView/notice.png') no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
.comment {
|
||||
background: url('~@/assets/mynoticeView/comment.png') no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
.other {
|
||||
background: url('~@/assets/mynoticeView/other.png') no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.item:nth-of-type(1) {
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
.select {
|
||||
border-bottom: 3px solid #0058e1;
|
||||
color: #0058e1;
|
||||
}
|
||||
}
|
||||
|
||||
.right {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
height: 0.32rem;
|
||||
|
||||
div {
|
||||
width: 0.5rem;
|
||||
}
|
||||
|
||||
.reset {
|
||||
color: #0058e1;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.btn {
|
||||
background: #fff;
|
||||
margin-top: 0.16rem;
|
||||
|
@ -372,31 +449,40 @@ onBeforeUnmount(() => {
|
|||
.left {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.ant-select {
|
||||
margin-right: 0.24rem;
|
||||
}
|
||||
|
||||
|
||||
.check {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
div {
|
||||
margin-left: 0.24rem;
|
||||
|
||||
span {
|
||||
font-size: 18px;
|
||||
color: #0058e1;
|
||||
}
|
||||
}
|
||||
|
||||
div:nth-of-type(1) {
|
||||
margin-left: 0.12rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.right {
|
||||
display: flex;
|
||||
justify-content: space-around;
|
||||
align-items: center;
|
||||
|
||||
div {
|
||||
margin: 0 0.1rem;
|
||||
}
|
||||
|
||||
span {
|
||||
cursor: pointer;
|
||||
color: #0058e1;
|
||||
|
@ -410,22 +496,31 @@ onBeforeUnmount(() => {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.main {
|
||||
background: #fff;
|
||||
padding: 0 3.1rem;
|
||||
height: 4.75rem;
|
||||
overflow-y: scroll;
|
||||
|
||||
:deep(.ant-list-item-meta) {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.ant-checkbox-wrapper {
|
||||
margin-right: 0.3rem;
|
||||
}
|
||||
|
||||
.ant-list-item-meta-title {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
.bold-text {
|
||||
font-weight: bold;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.left {
|
||||
width: 9.2rem;
|
||||
max-height: 0.43rem;
|
||||
|
@ -436,15 +531,19 @@ onBeforeUnmount(() => {
|
|||
-webkit-box-orient: vertical;
|
||||
word-break: break-all;
|
||||
}
|
||||
.pointer {
|
||||
cursor: pointer;
|
||||
|
||||
.ant-badge-dot {
|
||||
width: 8px;
|
||||
height: 8px;
|
||||
}
|
||||
|
||||
.left:hover {
|
||||
color: #0058e1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.ant-pagination {
|
||||
background: #fff;
|
||||
margin-top: 0;
|
||||
|
|
|
@ -2,71 +2,46 @@
|
|||
<div class="capability-convergence">
|
||||
<div class="main">
|
||||
<div class="top">
|
||||
能力汇聚
|
||||
能力分类
|
||||
<span class="line"></span>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<div class="item">
|
||||
<div class="zj">组件服务</div>
|
||||
<div
|
||||
class="name"
|
||||
v-for="(item, index) in zjList"
|
||||
:key="item.id"
|
||||
:class="index == 4 ? 'name-last' : ''"
|
||||
@click="selectOne(item.id)"
|
||||
>
|
||||
{{ index + 1 }}-{{ 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"
|
||||
:key="item.id"
|
||||
:class="index == 4 ? 'name-last' : ''"
|
||||
@click="selectOne(item.id)"
|
||||
>
|
||||
{{ index + 1 }}-{{ 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"
|
||||
:key="item.name"
|
||||
:class="index == 2 ? 'name-last' : ''"
|
||||
@click="selectOne2(item.name)"
|
||||
>
|
||||
<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>
|
||||
<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>
|
||||
|
@ -80,11 +55,14 @@
|
|||
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 } from '@/api/home'
|
||||
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()
|
||||
|
@ -139,10 +117,6 @@
|
|||
})
|
||||
obj.value = res.data.data.data || []
|
||||
object.sjNum = res.data.data.rows
|
||||
// interfaceSuccess.value++
|
||||
// if (interfaceSuccess.value == 5) {
|
||||
// mybus.emit('chagneNum', object)
|
||||
// }
|
||||
} else if (whoShow1.value.itShowXiHaiAn) {
|
||||
res.data.data.list.forEach((val) => {
|
||||
val.id = val.serviceId // id
|
||||
|
@ -155,35 +129,88 @@
|
|||
})
|
||||
obj.value = res.data.data.list || []
|
||||
object.sjNum = res.data.data.total
|
||||
// interfaceSuccess.value++
|
||||
// if (interfaceSuccess.value == 5) {
|
||||
// mybus.emit('chagneNum', object)
|
||||
// }
|
||||
}
|
||||
})
|
||||
} else {
|
||||
let type = paramsGetResources.type
|
||||
|
||||
if (type == '基础设施') {
|
||||
jcList.value = []
|
||||
selectInfrastructureList().then((res) => {
|
||||
console.log('基础设施==========>', res.data.data)
|
||||
console.log('基础设施------res------>', res);
|
||||
for (const key in res.data.data) {
|
||||
if (whoShow1.value.itShowXiHaiAn) {
|
||||
if (key === '视频资源') {
|
||||
jcList.value.push({
|
||||
name: key,
|
||||
num: res.data.data[key],
|
||||
})
|
||||
}
|
||||
if (uavAndIndividualSoldier.num) {
|
||||
} else if(key !== '云资源') { //云资源--暂时隐藏
|
||||
jcList.value.push({
|
||||
name: key,
|
||||
num: res.data.data[key],
|
||||
})
|
||||
}
|
||||
}
|
||||
jcList.value.push({
|
||||
name: '会客厅',
|
||||
num: 4,
|
||||
})
|
||||
// 西海岸-单兵设备、无人机 获取数量
|
||||
if (whoShow1.value.itShowXiHaiAn) {
|
||||
getSoldierData('无人机')
|
||||
.then((res) => {
|
||||
let { total = 0 } = res.data.data
|
||||
jcList.value.push({
|
||||
name: '无人机',
|
||||
num: uavAndIndividualSoldier.uavList.length,
|
||||
num: total,
|
||||
})
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log('err--无人机---------->', err)
|
||||
})
|
||||
getSoldierData('单兵设备')
|
||||
.then((res) => {
|
||||
let { total = 0 } = res.data.data
|
||||
jcList.value.push({
|
||||
name: '单兵设备',
|
||||
num: uavAndIndividualSoldier.individualSoldier.length,
|
||||
num: total,
|
||||
})
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log('err--单兵设备---------->', err)
|
||||
})
|
||||
}
|
||||
})
|
||||
} else {
|
||||
}
|
||||
else if (type == '组件服务') {
|
||||
zjList.value = []
|
||||
selectCollectComponentList().then((res) => {
|
||||
console.log('组件服务----res-------->', res);
|
||||
for (const key in res.data.data) {
|
||||
console.log('key------------>', key);
|
||||
zjList.value.push({
|
||||
name: key,
|
||||
num: res.data.data[key],
|
||||
})
|
||||
}
|
||||
console.log('zjList------------>', zjList);
|
||||
})
|
||||
}
|
||||
else if (type == '应用资源') {
|
||||
yyList.value = []
|
||||
selectCollectResourceList().then((res) => {
|
||||
console.log('应用资源---res--------->', res);
|
||||
for (const key in res.data.data) {
|
||||
yyList.value.push({
|
||||
name: key,
|
||||
num: res.data.data[key],
|
||||
})
|
||||
}
|
||||
})
|
||||
}
|
||||
else {
|
||||
pageWithAttrs(paramsGetResources).then((res) => {
|
||||
console.log('object个数======>', type)
|
||||
obj.value = res.data.data.records
|
||||
|
@ -206,6 +233,28 @@
|
|||
}
|
||||
}
|
||||
|
||||
// todo 获取无人机、单兵设备
|
||||
const getSoldierData = (name) => {
|
||||
let _params = {
|
||||
type: name,
|
||||
page: 1,
|
||||
limit: 10,
|
||||
}
|
||||
return new Promise((resolve, reject) => {
|
||||
getSoldierList(_params)
|
||||
.then((res) => {
|
||||
resolve(res)
|
||||
console.log('res---获取无人机、单兵设备--------->', res)
|
||||
if (res.data.code !== 0) {
|
||||
return message.error(res.data.msg)
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
reject(err)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
const openHref = (item) => {
|
||||
console.log(item.id, 'wowowo')
|
||||
console.log(item.visits, 'wowowo')
|
||||
|
@ -224,19 +273,9 @@
|
|||
})
|
||||
}
|
||||
window.open(item.link)
|
||||
// window.open(
|
||||
// window.SITE_CONFIG.previewUrl +
|
||||
// 'hisense_office/onlinePreview?url=' +
|
||||
// btoa(encodeURI(item.fileHref))
|
||||
// )
|
||||
}
|
||||
const assignmentMethod = (type, res) => {
|
||||
object[type] = res.data.data.total
|
||||
// interfaceSuccess.value++
|
||||
// console.log('object个数======>', object, interfaceSuccess.value, type)
|
||||
// if (interfaceSuccess.value >= 4) {
|
||||
// mybus.emit('chagneNum', object)
|
||||
// }
|
||||
}
|
||||
getAppResources('组件服务', zjList)
|
||||
getAppResources('应用资源', yyList)
|
||||
|
@ -270,6 +309,24 @@
|
|||
},
|
||||
})
|
||||
}
|
||||
const selectOne1 = (name) => {
|
||||
router.push({
|
||||
path: '/DetailsPageconetent',
|
||||
query: {
|
||||
type: name,
|
||||
select: '组件服务',
|
||||
},
|
||||
})
|
||||
}
|
||||
const selectOne11 = (name) => {
|
||||
router.push({
|
||||
path: '/DetailsPageconetent',
|
||||
query: {
|
||||
type: name,
|
||||
select: '应用资源',
|
||||
},
|
||||
})
|
||||
}
|
||||
const selectOne2 = (name) => {
|
||||
console.log('点击===============》', name)
|
||||
router.push({
|
||||
|
@ -298,12 +355,14 @@
|
|||
background-size: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
|
||||
.main {
|
||||
width: 13rem;
|
||||
margin-top: 1.8rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
flex-wrap: wrap;
|
||||
|
||||
.top {
|
||||
font-size: 0.3rem;
|
||||
color: #212121;
|
||||
|
@ -313,6 +372,7 @@
|
|||
flex-wrap: wrap;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
|
||||
.line {
|
||||
width: 0.34rem;
|
||||
height: 0.03rem;
|
||||
|
@ -320,10 +380,12 @@
|
|||
margin-top: 0.08rem;
|
||||
}
|
||||
}
|
||||
|
||||
.bottom {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
margin-top: 0.4rem;
|
||||
|
||||
.item {
|
||||
width: 2.44rem;
|
||||
height: 3.91rem;
|
||||
|
@ -332,6 +394,7 @@
|
|||
border-radius: 0.02rem;
|
||||
box-shadow: 0 0.05rem 0.2rem #ccc;
|
||||
position: relative;
|
||||
|
||||
div:nth-of-type(1) {
|
||||
height: 1.02rem;
|
||||
line-height: 1.02rem;
|
||||
|
@ -340,21 +403,27 @@
|
|||
padding-left: 0.15rem;
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
.jc {
|
||||
background: url('~@/assets/newHome/Convergence-jc.png') no-repeat;
|
||||
}
|
||||
|
||||
.sj {
|
||||
background: url('~@/assets/newHome/Convergence-sj.png') no-repeat;
|
||||
}
|
||||
|
||||
.zj {
|
||||
background: url('~@/assets/newHome/Convergence-zj.png') no-repeat;
|
||||
}
|
||||
|
||||
.yy {
|
||||
background: url('~@/assets/newHome/Convergence-yy.png') no-repeat;
|
||||
}
|
||||
|
||||
.zs {
|
||||
background: url('~@/assets/newHome/Convergence-zs.png') no-repeat;
|
||||
}
|
||||
|
||||
.name {
|
||||
height: 0.47rem;
|
||||
line-height: 0.47rem;
|
||||
|
@ -367,13 +436,16 @@
|
|||
-webkit-box-orient: vertical;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.name:hover {
|
||||
color: #0058e1;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.name-last {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
.btn {
|
||||
cursor: pointer;
|
||||
width: 0.8rem;
|
||||
|
@ -388,11 +460,13 @@
|
|||
position: absolute;
|
||||
bottom: 0.2rem;
|
||||
}
|
||||
|
||||
.btn:hover {
|
||||
background: rgba(0, 88, 225, 0.3);
|
||||
color: #000;
|
||||
}
|
||||
}
|
||||
|
||||
.item:hover {
|
||||
border-radius: 0.02rem;
|
||||
border: 0.01rem solid #0058e1;
|
||||
|
|
|
@ -283,7 +283,7 @@
|
|||
}
|
||||
const mohuchaxun = ref('组件服务')
|
||||
function onSearch() {
|
||||
if (text.value) {
|
||||
// if (text.value) {
|
||||
snum.value.str = text.value
|
||||
console.log('===================>', text.value)
|
||||
store.commit('home/selectCardsData', snum.value)
|
||||
|
@ -291,9 +291,9 @@
|
|||
path: '/DetailsPageconetent',
|
||||
query: snum.value,
|
||||
})
|
||||
} else {
|
||||
message.warning('请输入查询内容!')
|
||||
}
|
||||
// } else {
|
||||
// message.warning('请输入查询内容!')
|
||||
// }
|
||||
// router.push({ path: '/DetailsPageconetent' })
|
||||
}
|
||||
</script>
|
||||
|
|
|
@ -1,29 +1,40 @@
|
|||
<template>
|
||||
<div class="navigation2">
|
||||
<a-tooltip>
|
||||
<template #title>点击进入组件服务</template>
|
||||
<div class="item" @click="jumpPage('组件服务')">
|
||||
<div class="img zj"></div>
|
||||
<div class="name">组件服务</div>
|
||||
<div class="sl">
|
||||
<span class="num">{{ zjNum || 0 }}</span>
|
||||
个
|
||||
项
|
||||
</div>
|
||||
</div>
|
||||
</a-tooltip>
|
||||
<a-tooltip>
|
||||
<template #title>点击进入应用资源</template>
|
||||
<div class="item" @click="jumpPage('应用资源')">
|
||||
<div class="img yy"></div>
|
||||
<div class="name">应用资源</div>
|
||||
<div class="sl">
|
||||
<span class="num">{{ yyNum || 0 }}</span>
|
||||
个
|
||||
项
|
||||
</div>
|
||||
</div>
|
||||
</a-tooltip>
|
||||
<a-tooltip>
|
||||
<template #title>点击进入基础设施</template>
|
||||
<div class="item" @click="jumpPage('基础设施')">
|
||||
<div class="img jc"></div>
|
||||
<div class="name">基础设施</div>
|
||||
<div class="sl">
|
||||
<span class="num">{{ jcNum || 0 }}</span>
|
||||
个
|
||||
项
|
||||
</div>
|
||||
</div>
|
||||
</a-tooltip>
|
||||
<a-tooltip>
|
||||
<template #title>点击进入数据资源</template>
|
||||
<div class="item" @click="jumpPage('数据资源')">
|
||||
<div class="img sj"></div>
|
||||
<div class="name">数据资源</div>
|
||||
|
@ -32,14 +43,18 @@
|
|||
项
|
||||
</div>
|
||||
</div>
|
||||
</a-tooltip>
|
||||
<a-tooltip>
|
||||
<template #title>点击进入知识库</template>
|
||||
<div class="item" @click="jumpPage('知识库')">
|
||||
<div class="img zs"></div>
|
||||
<div class="name">知识库</div>
|
||||
<div class="sl">
|
||||
<span class="num">{{ zsNum || 0 }}</span>
|
||||
个
|
||||
条
|
||||
</div>
|
||||
</div>
|
||||
</a-tooltip>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
|
|
|
@ -32,9 +32,9 @@
|
|||
<div class="img" :class="item.imgType"></div>
|
||||
</div>
|
||||
<div class="item-right">
|
||||
<div class="fw" v-if="select == '浏览量'">
|
||||
<!-- <div class="fw" v-if="select == '浏览量'">
|
||||
{{ select }}:{{ item.visits }}
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="fw" v-if="select == '申请量'">
|
||||
{{ select }}:{{ item.applyCount }}
|
||||
</div>
|
||||
|
@ -139,7 +139,7 @@
|
|||
path: '/DetailsPageconetent',
|
||||
query: {
|
||||
// select: '组件服务',
|
||||
select: DETAIL_PAGE_CONTENT_DEFAULT_TAB
|
||||
select: DETAIL_PAGE_CONTENT_DEFAULT_TAB,
|
||||
},
|
||||
})
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<template>
|
||||
<div class="work-dynamics">
|
||||
<div class="title">
|
||||
<!-- <div class="title">
|
||||
<div>工作动态</div>
|
||||
<div class="title-son"></div>
|
||||
</div>
|
||||
|
@ -51,11 +51,15 @@
|
|||
<div class="bottom" @click="jumpPage()">
|
||||
查看更多
|
||||
<span class="gengduo"></span>
|
||||
</div>
|
||||
</div> -->
|
||||
<div class="fixedmount">
|
||||
<div @click="applyResource()">
|
||||
<p></p>
|
||||
<p>资源申请</p>
|
||||
</div>
|
||||
<div @click="toView()">
|
||||
<p></p>
|
||||
<p>需求申请</p>
|
||||
<p>新需求</p>
|
||||
</div>
|
||||
<div @click="showModal">
|
||||
<p></p>
|
||||
|
@ -255,14 +259,24 @@
|
|||
const toView = () => {
|
||||
window.open(newpage.href, '_blank')
|
||||
}
|
||||
|
||||
// const toApply = () => {
|
||||
// window.open(applypage.href, '_blank')
|
||||
// }
|
||||
getList()
|
||||
|
||||
// dataList.value.map((item, index) => {
|
||||
// dataList.value[index].tupian = tupain.value[index]
|
||||
// console.log('item', item, dataList.value)
|
||||
// })
|
||||
function jumpPage() {
|
||||
// 点击内存入store
|
||||
// store.commit('WorkDynList', {
|
||||
// selectCardsnum: '组件服务',
|
||||
// })
|
||||
console.log(
|
||||
'选中===================>',
|
||||
store.getters['home/selectCardsnum']
|
||||
)
|
||||
// router.push({ path: '/DetailsPageconetent' })
|
||||
router.push({
|
||||
path: '/WorkDynList',
|
||||
})
|
||||
|
@ -301,6 +315,15 @@
|
|||
function handlecancelAbilitySquare() {
|
||||
abilitySquareFunctionData.value = '智能算法'
|
||||
}
|
||||
const applyResource = () => {
|
||||
console.log('点击===============》')
|
||||
router.push({
|
||||
path: '/DetailsPageconetent',
|
||||
query: {
|
||||
select: '基础设施',
|
||||
},
|
||||
})
|
||||
}
|
||||
</script>
|
||||
<style lang="less">
|
||||
.shangjia-class {
|
||||
|
@ -409,8 +432,8 @@
|
|||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
padding-bottom: 0.8rem;
|
||||
padding-top: 0.78rem;
|
||||
// padding-bottom: 0.8rem;
|
||||
// padding-top: 0.78rem;
|
||||
.title {
|
||||
font-size: 0.3rem;
|
||||
font-family: 'convergence-typeface';
|
||||
|
@ -569,11 +592,11 @@
|
|||
}
|
||||
|
||||
.fixedmount {
|
||||
height: 1.5rem;
|
||||
height: 3rem;
|
||||
display: flex;
|
||||
position: fixed;
|
||||
bottom: 2.56rem;
|
||||
right: 1.9rem;
|
||||
bottom: 1.56rem;
|
||||
right: 0rem;
|
||||
z-index: 10;
|
||||
flex-direction: column;
|
||||
justify-content: space-between;
|
||||
|
@ -581,49 +604,52 @@
|
|||
}
|
||||
|
||||
.fixedmount div {
|
||||
width: 0.7rem;
|
||||
height: 0.7rem;
|
||||
border-radius: 0.04rem;
|
||||
border: 0.01rem #94aac9 solid;
|
||||
width: 0.96rem;
|
||||
height: 0.96rem;
|
||||
// border-radius: 0.04rem;
|
||||
// border: 0.01rem #94aac9 solid;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
// justify-content: center;
|
||||
align-items: center;
|
||||
padding-top: 0.13rem;
|
||||
padding-top: 0.16rem;
|
||||
margin-bottom: 2px;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
background: #e3edfc;
|
||||
// background: #e3edfc;
|
||||
background: url('~@/assets/home/bg-right.png');
|
||||
}
|
||||
|
||||
.fixedmount div p:nth-child(2) {
|
||||
position: absolute;
|
||||
bottom: 0rem;
|
||||
height: 0.14rem;
|
||||
font-size: 0.14rem;
|
||||
line-height: 0.14rem;
|
||||
color: #000000;
|
||||
height: 0.2rem;
|
||||
font-size: 0.2rem;
|
||||
line-height: 0.2rem;
|
||||
color: #fff;
|
||||
// margin-top: .08rem;
|
||||
}
|
||||
|
||||
.fixedmount div:nth-child(1) p:nth-child(1) {
|
||||
height: 0.24rem;
|
||||
width: 0.24rem;
|
||||
background: url('~@/assets/home/shenqing.png') no-repeat;
|
||||
height: 0.32rem;
|
||||
width: 0.32rem;
|
||||
//background: url('~@/assets/home/shenqing.png') no-repeat;
|
||||
background: url('~@/assets/home/sq.png') no-repeat;
|
||||
background-size: contain;
|
||||
background-position: center;
|
||||
}
|
||||
|
||||
.fixedmount div:nth-child(2) p:nth-child(1) {
|
||||
height: 0.24rem;
|
||||
width: 0.24rem;
|
||||
background: url('~@/assets/home/shangjia.png') no-repeat;
|
||||
height: 0.32rem;
|
||||
width: 0.32rem;
|
||||
background: url('~@/assets/home/xq.png') no-repeat;
|
||||
background-size: contain;
|
||||
background-position: center;
|
||||
}
|
||||
.fixedmount div:nth-child(3) p:nth-child(1) {
|
||||
height: 0.24rem;
|
||||
width: 0.24rem;
|
||||
background: url('~@/assets/home/abilitysquare.png') no-repeat;
|
||||
height: 0.32rem;
|
||||
width: 0.32rem;
|
||||
background: url('~@/assets/home/sj.png') no-repeat;
|
||||
background-size: 140% 126%;
|
||||
background-position: center;
|
||||
}
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<!--
|
||||
* @Author: hisense.liangjunhua
|
||||
* @Date: 2022-06-23 16:41:49
|
||||
* @LastEditors: hisense.liangjunhua
|
||||
* @LastEditTime: 2022-07-04 17:53:27
|
||||
* @LastEditors: Light
|
||||
* @LastEditTime: 2022-10-13 16:40:15
|
||||
* @Description: 告诉大家这是什么
|
||||
-->
|
||||
<template>
|
||||
|
|
|
@ -52,47 +52,29 @@
|
|||
<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
|
||||
v-if="!item.ended"
|
||||
title="是否终止此流程?"
|
||||
ok-text="是"
|
||||
cancel-text="否"
|
||||
@confirm="endThis(item.instanceId)"
|
||||
@cancel="cancel"
|
||||
>
|
||||
<a-popconfirm 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(
|
||||
|
@ -112,8 +94,7 @@
|
|||
)[0].attrValue == '业务组件'
|
||||
? 'ywzj'
|
||||
: 'yyzy'
|
||||
"
|
||||
></div>
|
||||
"></div>
|
||||
<div class="right">
|
||||
<div class="ability-top">
|
||||
<div class="name">
|
||||
|
@ -153,23 +134,15 @@
|
|||
申请结果:{{
|
||||
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)"
|
||||
class="DownloadAttachment2"
|
||||
>
|
||||
<a-button v-if="item.approveStatus === '通过'" @click.stop="switchFunction(item)">
|
||||
查看详情
|
||||
</a-button>
|
||||
</div>
|
||||
|
@ -186,6 +159,11 @@
|
|||
<span class="channelName">{{ val.channelName }}</span>
|
||||
<span class="type">基础设施</span>
|
||||
</div>
|
||||
<a-button type="primary" v-if="item.approveStatus == '通过' && whoShow1.itShowXiHaiAn"
|
||||
@click.stop="openVideo(val)">
|
||||
视频预览
|
||||
</a-button>
|
||||
|
||||
</div>
|
||||
<div class="ability-bottom">
|
||||
<div class="dec2">位置:{{ val.nodeName }}</div>
|
||||
|
@ -198,7 +176,7 @@
|
|||
';' +
|
||||
'视频流地址:' +
|
||||
backUrl +
|
||||
'resource/hls/getHls/?channelId=' +
|
||||
'resource/hls/getHls/?key=' +
|
||||
val.channelId
|
||||
}}
|
||||
</div>
|
||||
|
@ -208,19 +186,71 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 单个预览弹窗 -->
|
||||
<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 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 } from 'vue'
|
||||
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({
|
||||
width: '912px', //播放器宽度
|
||||
height: '513px', //播放器高度
|
||||
color: '#409eff', //主题色
|
||||
title: '', //视频名称
|
||||
src: '', //视频源
|
||||
type: 'm3u8', // 视频源类型
|
||||
muted: false, //静音
|
||||
webFullScreen: false,
|
||||
speedRate: ['0.75', '1.0', '1.25', '1.5', '2.0'], //播放倍速
|
||||
autoPlay: true, //自动播放
|
||||
loop: false, //循环播放
|
||||
mirror: false, //镜像画面
|
||||
ligthOff: false, //关灯模式
|
||||
volume: 0.3, //默认音量大小
|
||||
control: true, //是否显示控制
|
||||
controlBtns: [
|
||||
'audioTrack',
|
||||
'quality',
|
||||
'speedRate',
|
||||
'volume',
|
||||
'setting',
|
||||
'pip',
|
||||
'pageFullScreen',
|
||||
'fullScreen',
|
||||
], //显示所有按钮,
|
||||
})
|
||||
|
||||
const dept = reactive({})
|
||||
// eslint-disable-next-line no-undef
|
||||
if (infrastructure) {
|
||||
|
@ -241,10 +271,10 @@
|
|||
const endThis = (instanceId) => {
|
||||
endProcess({ instanceId: instanceId }).then((res) => {
|
||||
if (res.data.code == 0) {
|
||||
message.success('流程终止成功!')
|
||||
message.success('撤回申请成功!')
|
||||
mybus.emit('closeModal', { type: '能力申请', index: 0 })
|
||||
} else {
|
||||
message.warning('流程终止失败!')
|
||||
message.warning('撤回申请失败!')
|
||||
}
|
||||
})
|
||||
}
|
||||
|
@ -379,6 +409,49 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 视频预览
|
||||
const openVideo = (item) => {
|
||||
console.log('打开视频', item)
|
||||
if (item && item.status != 1) {
|
||||
return message.error('当前视频离线不可预览!')
|
||||
}
|
||||
const param = {
|
||||
key: item.cameraId,
|
||||
}
|
||||
getStreamByChannelCode(param).then((res) => {
|
||||
console.log('视频预览------------>', res);
|
||||
console.log(res)
|
||||
visible.value = true
|
||||
options.src = res.data.data || ''
|
||||
}).catch(err => {
|
||||
message.error(err)
|
||||
})
|
||||
// 视频测试--勿删
|
||||
// visible.value = true
|
||||
// options.src = 'http://playertest.longtailvideo.com/adaptive/bipbop/gear4/prog_index.m3u8'
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
handleUser()
|
||||
})
|
||||
|
||||
// 获取用户信息
|
||||
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 => {
|
||||
message.warning(err)
|
||||
})
|
||||
}
|
||||
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
.title {
|
||||
|
@ -389,17 +462,22 @@
|
|||
padding-left: 0.1rem;
|
||||
border-left: 0.06rem #0058e1 solid;
|
||||
}
|
||||
|
||||
.top {
|
||||
margin-bottom: 0.1rem;
|
||||
|
||||
.main {
|
||||
background: #eee;
|
||||
padding: 0.2rem 0.2rem 0.1rem;
|
||||
|
||||
p {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
|
||||
&>span {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.enclosure {
|
||||
width: 95%;
|
||||
padding: 0.05rem 0.1rem;
|
||||
|
@ -408,11 +486,13 @@
|
|||
justify-content: space-between;
|
||||
margin-top: 0.05rem;
|
||||
}
|
||||
|
||||
.btn:hover {
|
||||
color: #0058e1;
|
||||
cursor: pointer;
|
||||
}
|
||||
}
|
||||
|
||||
.item {
|
||||
span {
|
||||
width: 2.5rem;
|
||||
|
@ -420,16 +500,19 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.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;
|
||||
|
@ -438,16 +521,20 @@
|
|||
margin-right: 0.1rem;
|
||||
}
|
||||
}
|
||||
|
||||
.oddNumbers {
|
||||
margin: 0.1rem 0 0 0.15rem;
|
||||
}
|
||||
|
||||
.box {
|
||||
margin-left: 0.1rem;
|
||||
|
||||
.ability {
|
||||
height: 1.3rem;
|
||||
display: flex;
|
||||
border-bottom: 1px #eee solid;
|
||||
padding: 0.1rem 0;
|
||||
|
||||
.left {
|
||||
display: inline-block;
|
||||
width: 1.1rem;
|
||||
|
@ -461,6 +548,7 @@
|
|||
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%;
|
||||
|
@ -485,6 +573,7 @@
|
|||
background: url('~@/assets/home/ywzj_square.png') no-repeat;
|
||||
background-size: 100%;
|
||||
}
|
||||
|
||||
.btn {
|
||||
cursor: pointer;
|
||||
color: #0087ff;
|
||||
|
@ -493,18 +582,22 @@
|
|||
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;
|
||||
|
@ -515,6 +608,7 @@
|
|||
-webkit-box-orient: vertical;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.type {
|
||||
background: #0087ff;
|
||||
color: #fff;
|
||||
|
@ -525,8 +619,10 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.ability-bottom {
|
||||
margin-top: 0.15rem;
|
||||
|
||||
// display: flex;
|
||||
// justify-content: space-between;
|
||||
.dec {
|
||||
|
@ -539,6 +635,7 @@
|
|||
-webkit-box-orient: vertical;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.dec2 {
|
||||
width: 7rem;
|
||||
height: 0.22rem;
|
||||
|
@ -549,6 +646,7 @@
|
|||
-webkit-box-orient: vertical;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
// .result:hover {
|
||||
// color: #0058e1;
|
||||
// cursor: pointer;
|
||||
|
@ -558,17 +656,20 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.DownloadAttachment {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
top: -150px;
|
||||
}
|
||||
|
||||
.DownloadAttachment2 {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
top: -110px;
|
||||
}
|
||||
}
|
||||
|
||||
.clickCursor {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
@ -576,4 +677,61 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.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 {
|
||||
left: 50px;
|
||||
top: 100px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
// 右上
|
||||
.waterMark-right-top {
|
||||
right: 50px;
|
||||
top: 100px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
// 左下
|
||||
.waterMark-left-bottom {
|
||||
left: 50px;
|
||||
bottom: 100px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
// 右下
|
||||
.waterMark-right-bottom {
|
||||
right: 50px;
|
||||
bottom: 100px;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.waterMark {
|
||||
position: absolute;
|
||||
z-index: 99999999;
|
||||
color: #0058e1;
|
||||
font-size: 22px;
|
||||
font-weight: bold;
|
||||
opacity: 0.4;
|
||||
transform: rotate(-25deg);
|
||||
width: 470px
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -1,24 +1,12 @@
|
|||
<template>
|
||||
<div class="form-container">
|
||||
<AbilityApplication
|
||||
:refObj="refObj"
|
||||
v-if="showType === '能力申请'"
|
||||
></AbilityApplication>
|
||||
<PutOnTheShelf
|
||||
:refObj="refObj"
|
||||
v-else-if="showType === '能力上架'"
|
||||
></PutOnTheShelf>
|
||||
<OffTheShelf
|
||||
:refObj="refObj"
|
||||
v-else-if="showType === '能力下架'"
|
||||
></OffTheShelf>
|
||||
<DeviceApplyDetail v-if="showType === '设备申请'" :refObj="refObj"></DeviceApplyDetail>
|
||||
<div class="form-container" v-else>
|
||||
<AbilityApplication :refObj="refObj" v-if="showType === '能力申请'"></AbilityApplication>
|
||||
<PutOnTheShelf :refObj="refObj" v-else-if="showType === '能力上架'"></PutOnTheShelf>
|
||||
<OffTheShelf :refObj="refObj" v-else-if="showType === '能力下架'"></OffTheShelf>
|
||||
<Demand :refObj="refObj" v-else-if="showType === '能力需求'"></Demand>
|
||||
<Comment :refObj="refObj" v-else-if="showType === '需求评论'"></Comment>
|
||||
<OtherApplications :refObj="refObj" v-else></OtherApplications>
|
||||
<!-- <div class="title">流程图</div>
|
||||
<div>
|
||||
<img :src="getResourceURL()" alt="" />
|
||||
</div> -->
|
||||
<div>
|
||||
<div class="title">审批详情</div>
|
||||
<template v-for="item in dataSource.data" :key="item">
|
||||
|
@ -40,6 +28,7 @@
|
|||
import OffTheShelf from './OffTheShelf.vue'
|
||||
import Demand from './Demand.vue'
|
||||
import Comment from './Comment.vue'
|
||||
import DeviceApplyDetail from './DeviceApplyDetail.vue'
|
||||
import OtherApplications from '@/views/personalCenter/components/OtherApplications '
|
||||
import { onMounted, reactive, defineProps, ref } from 'vue'
|
||||
import Cookies from 'js-cookie'
|
||||
|
@ -69,6 +58,8 @@
|
|||
showType.value = props.showType
|
||||
//流转详情
|
||||
const dataSource = reactive({ data: [] })
|
||||
console.log('refObj------------>', refObj);
|
||||
|
||||
// console.log(props.refObj, '---------------------------------------')
|
||||
|
||||
const downloadFile = (path, name) => {
|
||||
|
@ -255,6 +246,7 @@
|
|||
height: 6rem;
|
||||
overflow-y: scroll;
|
||||
padding: 20px 20px 30px 20px;
|
||||
|
||||
.title {
|
||||
font-size: 18px;
|
||||
color: #000;
|
||||
|
@ -265,6 +257,7 @@
|
|||
border-left: 6px #0058e1 solid;
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.ant-table-thead)>tr>.ant-table-cell {
|
||||
background: #0087ff;
|
||||
color: #fff;
|
||||
|
@ -272,6 +265,7 @@
|
|||
text-align: center;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
:deep(.ant-table-tbody)>tr>.ant-table-cell:nth-child(5) {
|
||||
// width: 110px;
|
||||
// display: inline-block;
|
||||
|
@ -279,6 +273,7 @@
|
|||
// overflow: hidden;
|
||||
// text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.oddNumbers {
|
||||
margin-bottom: 0.05rem;
|
||||
}
|
||||
|
|
|
@ -0,0 +1,43 @@
|
|||
<!--
|
||||
* @Description: 我的申请 设备申请 查看详情
|
||||
-->
|
||||
<template>
|
||||
<div class="device-detail-box">
|
||||
<div v-for="(db, key) in wrjData" :key="key">
|
||||
<template v-if="typeof db == 'object'">
|
||||
<div style="
|
||||
font-size: 20px;
|
||||
font-weight: 600;
|
||||
margin: 10px 0;
|
||||
text-align: center;
|
||||
">
|
||||
{{ db.attrType || '--' }}
|
||||
</div>
|
||||
<template v-if="db.attrValue">
|
||||
<div style="padding: 0 30px" v-for="(value, key2) in JSON.parse(db.attrValue)" :key="value">
|
||||
{{ key2 + ':' + value }}
|
||||
</div>
|
||||
</template>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
</template>
|
||||
<script setup>
|
||||
import { ref, defineProps, watch } from 'vue'
|
||||
const props = defineProps({
|
||||
refObj: { type: Object, default: null },
|
||||
})
|
||||
const wrjData = ref([])
|
||||
wrjData.value = props.refObj.deviceAttrDTOList || []
|
||||
|
||||
watch(() => props.refObj, (val) => {
|
||||
wrjData.value = val.deviceAttrDTOList || []
|
||||
}, { immediate: true, deep: true })
|
||||
|
||||
</script>
|
||||
<style lang="less" scoped>
|
||||
.device-detail-box {
|
||||
height: 6rem;
|
||||
overflow-y: auto;
|
||||
}
|
||||
</style>
|
|
@ -1,46 +1,18 @@
|
|||
<template>
|
||||
<div class="on-the-right-side-of-the-list">
|
||||
<div class="title" style="margin-bottom: 0.2rem">我的申请</div>
|
||||
<!-- <div class="sousuokuang">
|
||||
<a-input-search
|
||||
v-model:value="name"
|
||||
placeholder="请输入关键词"
|
||||
enter-button="搜索"
|
||||
size="large"
|
||||
@change="onSearch"
|
||||
@search="getApplyList(name)"
|
||||
/>
|
||||
<a-button
|
||||
type="primary"
|
||||
style="width: 90px; height: 36px; margin-left: 10px"
|
||||
@click="replacement"
|
||||
>
|
||||
重置
|
||||
</a-button>
|
||||
</div> -->
|
||||
<div class="tab" style="margin-bottom: 0.1rem">
|
||||
<span>类型</span>
|
||||
<div
|
||||
:class="typeIndex == index ? 'tabclass' : ' '"
|
||||
@click="changeType(item, index)"
|
||||
v-for="(item, index) in typeList"
|
||||
:key="index"
|
||||
>
|
||||
<div :class="typeIndex == index ? 'tabclass' : ' '" @click="changeType(item, index)"
|
||||
v-for="(item, index) in typeList" :key="index">
|
||||
{{ item }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab">
|
||||
<span>申请状态</span>
|
||||
<div
|
||||
:class="tabIndex == index ? 'tabclass' : ' '"
|
||||
@click="tabqiehuan(item, index)"
|
||||
v-for="(item, index) in tabList"
|
||||
:key="index"
|
||||
>
|
||||
<a-badge
|
||||
:count="item === '审核中' ? num.unfinished : num.finished"
|
||||
v-if="item !== '全部'"
|
||||
>
|
||||
<div :class="tabIndex == index ? 'tabclass' : ' '" @click="changeApplyState(item, index)"
|
||||
v-for="(item, index) in tabList" :key="index">
|
||||
<a-badge :count="item === '审核中' ? num.unfinished : num.finished" v-if="item !== '全部'">
|
||||
{{ item }}
|
||||
</a-badge>
|
||||
<template v-else>
|
||||
|
@ -50,11 +22,7 @@
|
|||
</div>
|
||||
<div v-if="contentList.data.length > 0">
|
||||
<div class="content">
|
||||
<div
|
||||
class="content-body"
|
||||
v-for="item in contentList.data"
|
||||
:key="item.index"
|
||||
>
|
||||
<div class="content-body" v-for="item in contentList.data" :key="item.index">
|
||||
<div class="content-body-title">
|
||||
<span>申请单号:{{ item.applyNumber || '--' }}</span>
|
||||
<div></div>
|
||||
|
@ -64,234 +32,71 @@
|
|||
{{ item.cameraList ? item.system : item.title }}
|
||||
</template>
|
||||
<div class="content-body-title">
|
||||
<!-- <span
|
||||
v-if="item.cameraList && item.ended"
|
||||
@click="showVideoList(item)"
|
||||
>
|
||||
名称:{{ item.cameraList ? item.system : item.title }}
|
||||
</span> -->
|
||||
<span>
|
||||
名称:{{ item.cameraList ? item.system : item.title }}
|
||||
</span>
|
||||
<div></div>
|
||||
</div>
|
||||
</a-tooltip>
|
||||
<!-- <div class="content-body-content">
|
||||
<p class="content-body-content-son">
|
||||
流程类型:{{ item.processDefinitionName }}
|
||||
</p>
|
||||
</div> -->
|
||||
<div class="content-body-content">
|
||||
<p class="content-body-content-son">
|
||||
<p class="content-body-content-son" v-if="typeName !== '设备申请'">
|
||||
审核结果:{{ item.ended ? '审核完成' : '审核中' }}
|
||||
</p>
|
||||
<p class="content-body-content-son" v-else>
|
||||
审核结果:{{ item.state === 0 ? '审核中' : '审核完成' }}
|
||||
</p>
|
||||
</div>
|
||||
<!-- <div class="content-body-content" v-if="item.currentTaskList">
|
||||
<p class="content-body-content-son" v-if="!item.backToFirst">
|
||||
当前节点:{{ item.currentTaskList[0].taskName }}
|
||||
</p>
|
||||
</div> -->
|
||||
<!-- <div>
|
||||
<p
|
||||
class="content-body-content-son"
|
||||
v-if="item.name === '申请摄像头列表'"
|
||||
>
|
||||
<span>
|
||||
申请结果:{{
|
||||
'列表地址:' +
|
||||
backUrl +
|
||||
'resource/getApplyCameraList/' +
|
||||
item.processInstanceId +
|
||||
';' +
|
||||
'视频流地址:' +
|
||||
backUrl +
|
||||
'/resource/hls/getHls/?channelId='
|
||||
}}
|
||||
</span>
|
||||
<a-button
|
||||
type="primary"
|
||||
size="small"
|
||||
@click="
|
||||
copyComment(
|
||||
'列表地址:' +
|
||||
backUrl +
|
||||
'resource/getApplyCameraList/' +
|
||||
item.processInstanceId +
|
||||
';' +
|
||||
'视频流地址:' +
|
||||
backUrl +
|
||||
'/resource/hls/getHls/?channelId='
|
||||
)
|
||||
"
|
||||
>
|
||||
复制
|
||||
</a-button>
|
||||
</p>
|
||||
<template v-else>
|
||||
<p
|
||||
class="content-body-content-son"
|
||||
v-if="item.approveStatus == '通过'"
|
||||
>
|
||||
<span>申请结果:{{ item.comment || '暂无' }}</span>
|
||||
<a-button
|
||||
v-if="item.comment"
|
||||
type="primary"
|
||||
size="small"
|
||||
@click="copyComment(item.comment)"
|
||||
>
|
||||
复制
|
||||
</a-button>
|
||||
</p>
|
||||
</template>
|
||||
</div> -->
|
||||
<!-- <div class="content-body-title"></div>
|
||||
<div class="content-body-content">
|
||||
<p class="content-body-content-son"></p>
|
||||
<div></div>
|
||||
</div> -->
|
||||
<!-- <div class="content-body-bottom" v-if="item.currentTaskList">
|
||||
<div>申请日期:{{ item.currentTaskList[0].createTime }}</div>
|
||||
<div>审批人:{{ item.currentTaskList[0].assigneeName }}</div>
|
||||
</div> -->
|
||||
<div class="content-body-bottom">
|
||||
<div>申请日期:{{ item.createDate || item.startTime }}</div>
|
||||
<div></div>
|
||||
</div>
|
||||
<div class="button-box">
|
||||
<div class="button" v-if="typeName == '设备申请' && phoneSate.includes(item.state)"
|
||||
@click="showPhoneModal(item)">
|
||||
联系方式
|
||||
</div>
|
||||
<div class="button" @click="showDetail(item)">查看详情</div>
|
||||
<div class="button" @click="showAdd(item)" v-if="item.backToFirst">
|
||||
修改
|
||||
</div>
|
||||
<!-- <div
|
||||
v-if="
|
||||
!(
|
||||
(item.processDefinitionName == '能力需求申请' ||
|
||||
item.processDefinitionName == '能力资源上架') &&
|
||||
item.ended == false
|
||||
)
|
||||
"
|
||||
v-show="
|
||||
item.resourceStatusTip == '正常' &&
|
||||
item.ended &&
|
||||
item.processDefinitionName !== '能力申请'
|
||||
"
|
||||
class="button button-details"
|
||||
@click="
|
||||
viewDetail(
|
||||
item.processDefinitionName,
|
||||
item.resourceId,
|
||||
item.ended,
|
||||
item.businessKey
|
||||
)
|
||||
"
|
||||
>
|
||||
查看详情
|
||||
</div> -->
|
||||
<!-- <div
|
||||
class="button button-state"
|
||||
:class="{
|
||||
buttonAgree: item.ended,
|
||||
backToFirst: item.backToFirst,
|
||||
}"
|
||||
>
|
||||
{{
|
||||
item.ended ? '审核完成' : item.backToFirst ? '被驳回' : '审核中'
|
||||
}}
|
||||
</div> -->
|
||||
<svg
|
||||
t="1652233950228"
|
||||
class="icon"
|
||||
viewBox="0 0 1024 1024"
|
||||
version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
p-id="5970"
|
||||
data-spm-anchor-id="a313x.7781069.0.i8"
|
||||
width="80"
|
||||
height="80"
|
||||
v-if="
|
||||
<svg t="1652233950228" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
|
||||
p-id="5970" data-spm-anchor-id="a313x.7781069.0.i8" width="80" height="80" v-if="
|
||||
item.processDefinitionName != '能力资源下架' &&
|
||||
(item.resourceStatus == 4 || item.resourceStatus == 5)
|
||||
"
|
||||
style="position: absolute; top: 20px; left: -850px"
|
||||
>
|
||||
" style="position: absolute; top: 20px; left: -850px">
|
||||
<path
|
||||
d="M955.22053 256C813.82053 11.2 500.72053-72.6 255.92053 68.8S-72.67947 523.2 68.72053 768 523.22053 1096.6 768.02053 955.2c244.7-141.2 328.6-454.1 187.4-698.8 0-0.1-0.1-0.3-0.2-0.4zM762.02053 944.7c-239 138.1-544.8 56.2-682.9-182.8S22.92053 217.1 261.92053 79.1s544.8-56.2 682.9 182.8c137.9 239 56.1 544.6-182.8 682.8z"
|
||||
fill="#515151"
|
||||
opacity=".5"
|
||||
p-id="5971"
|
||||
></path>
|
||||
fill="#515151" opacity=".5" p-id="5971"></path>
|
||||
<path
|
||||
d="M898.12053 289.2C775.02053 76 502.42053 2.9 289.22053 126 76.02053 249.1 3.02053 521.6 126.02053 734.8 249.12053 948 521.62053 1021.1 734.82053 898 947.92053 774.9 1021.02053 502.4 898.12053 289.2zM731.62053 892.8C521.32053 1014.3 252.42053 942.2 131.02053 731.9 9.52053 521.6 81.62053 252.7 291.92053 131.3 502.12053 9.9 771.02053 81.8 892.42053 292c121.5 210.3 49.5 479.3-160.8 600.8z"
|
||||
fill="#515151"
|
||||
opacity=".5"
|
||||
p-id="5972"
|
||||
></path>
|
||||
fill="#515151" opacity=".5" p-id="5972"></path>
|
||||
<path
|
||||
d="M323.62053 176.8c3.6-2 6 0.8 8.8 2.8 6 4.4 12.4 8.8 18.8 12.8 7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-3.6 13.6-5.6 20.8 4.8 6 10 11.6 15.2 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.8-5.6 2.4-7.7 2.4l-22.4 0.8c-4.4 6.8-8.4 13.6-12.8 20-1.6 2.4-4 5.1-7.2 4-2.4-1.9-3.9-4.7-4.4-7.7l-7.2-20.5-25.2-6.4c-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 4-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.7-0.8-0.3-1.6 0.6-2zM200.72053 289.2c3.6-2 6 0.8 8.8 2.8 6.4 4.4 12.4 8.4 18.8 12.8 7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-3.6 13.6-5.6 20.8 4.8 6 10 11.6 14.8 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.4-5.6 2.4-7.7 2.4l-22.4 0.8c-4.4 6.8-8.8 13.6-12.8 20-1.6 2.4-4 5.1-7.2 4-2.2-2-3.8-4.7-4.4-7.7l-7.2-20.5c-8.4-2-16.8-4.4-25.2-6.4-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 3.6-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.4-1.2 0-1.6 0.8-2.4l0.2 0.4z m276.6-159.6c3.6-2 6 0.8 8.8 2.8 6.4 4.4 12.4 8.4 18.8 12.8 7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-3.6 14-5.6 20.8 4.8 6 10 12 15.2 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.8-5.6 2.4-7.7 2.4l-22.4 0.8c-4.4 6.8-8.8 13.6-12.8 20-1.6 2.4-4 5.1-7.2 4-2.2-2-3.8-4.7-4.4-7.7l-7.2-20.5-25.2-6.4c-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 4-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.8-1.2-0.4-1.6 0.4-2.4l0.2 0.4z m141.9 29.6c3.6-2 6 0.8 8.8 2.8l18.8 12.8c7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-3.6 14-5.6 20.8 4.8 6 10 12 15.2 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.8-5.6 2.4-7.7 2.4-7.7 0.4-15.2 0.8-22.4 0.8-4.4 6.8-8.4 13.2-12.8 20-1.6 2.4-4 5.1-7.2 4-2.4-1.9-3.9-4.7-4.4-7.7l-7.2-20.5c-8.4-2-16.8-4.4-25.2-6.4-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 4-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.5-1.2 0.2-1.6 0.6-2zM150.02053 430c3.6-2 6 0.8 8.8 2.8 6.4 4.4 12.4 8.4 18.8 12.8 7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-4 14-5.6 20.8 4.8 6 10 11.6 15.2 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.8-5.6 2.4-7.7 2.4l-22.4 0.8c-4.4 6.8-8.8 13.6-12.8 20-1.6 2.4-4 5.1-7.2 4-2.2-2-3.8-4.7-4.4-7.7l-7.2-20.5-25.2-6.4c-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 3.6-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.7-0.8-0.3-1.5 0.6-2z m558.9 414.4c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.2-3.2-5.6-3.6-7.7-4-6.8-2-14-3.6-20.8-5.6-2.8-7.2-5.1-14.4-7.7-21.6-1.2-3.6-2.8-6.4-5.6-6.8-2.8-0.4-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.1 4.4-0.7 6.4-1.6l14.4-4.8c2.1-0.8 4.2-1.5 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0.5-1.1 0.8-1.1 1.6-1.1h0.1z m-158.8 50c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.1-3.7-5.6-3.6-7.7-4-6.8-1.6-14-3.6-20.8-5.6l-7.7-22c-1.2-3.6-2.8-6.4-5.6-6.8-2.8-0.4-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.3 4.3-0.9 6.4-1.6l14.4-4.8c2-1 4.2-1.7 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0.4-0.8 0.8-0.8 1.7-0.7z m276.5-159.6c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.2-3.2-5.6-3.6-7.7-4-6.8-2-14-3.6-20.8-5.6-2.8-7.2-5.1-14.4-7.7-21.6-1.2-3.6-2.8-6.4-5.6-6.8s-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.2 4.4-0.7 6.4-1.6l14.4-4.8c2.1-0.8 4.2-1.5 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0-0.8 0.8-1.2 1.6-1.2l0.1 0.1z m45.6-137.6c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.2-3.2-5.6-3.6-7.7-4-6.8-1.6-14-3.6-20.8-5.6l-7.7-22c-1.2-3.6-2.8-6.4-5.6-6.8-2.8-0.4-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.3 4.3-0.9 6.4-1.6l14.4-4.8c2.1-0.8 4.2-1.5 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0.2-0.7 0.6-0.7 1.4-0.7h0.3zM402.72053 868c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.2-3.2-5.6-3.6-7.7-4-6.8-2-14-3.6-20.8-5.6-2.8-7.2-5.1-14.4-7.7-21.6-1.2-3.6-2.8-6.4-5.6-6.8-2.8-0.4-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.3 4.3-0.9 6.4-1.6l14.4-4.8c2.1-0.8 4.2-1.5 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0.5-0.8 1-1.1 1.7-1.1z"
|
||||
fill="#515151"
|
||||
opacity=".5"
|
||||
p-id="5973"
|
||||
></path>
|
||||
fill="#515151" opacity=".5" p-id="5973"></path>
|
||||
<path
|
||||
d="M386.42053 590.4l-43.8-75.9L207.02053 592.7l10.2 17.7L334.02053 543l23.4 40.4-90.5 52.2-13.5-23.4-18.7 10.8 53.1 92c9.1 15.8 21.2 19.5 36.4 10.7l98.8-57c6.2-3.6 11-9.3 13.4-16.1-1.4-15.9-6.2-31.2-14.2-45l-21.4 4.8c6.7 10.3 11 21.9 12.8 34-1 3.3-3.2 6-6.1 7.8l-88.3 51c-6.2 3.6-11.1 2.1-14.8-4.3l-27.3-47.4 109.3-63.1z m2.9-103.2l10.4 18.1 65.6-37.9 79.9 138.4 18.6-10.8-55.9-96.9c18.8-0.9 43.2-0.6 73 0.7l1.5-23.1c-29.8-0.3-58.4 0.4-86 2.6l-12.5-21.6 74.9-43.2-10.4-18.1-159.1 91.8zM669.52053 329l38.2 66.2 61.4-35.4-38.1-66.1-61.5 35.3z m72.4 24.2l-26.3 15.2-19-33 26.3-15.2 19 33zM599.02053 356.7l7.9 13.7-23.3 13.5 9.8 17 21.8-12.6c7.5 18.7 6.6 39.6-2.5 57.6l20.7 4.4c10.3-23.1 10.3-49.4 0-72.5l18.8-10.9c6 9.2 10.7 19.2 14.2 29.7 0.3 5-2.6 9.7-7.2 11.7-2.9 1.2-6.4 2.8-10.9 4.9l14.1 14.1c3.7-1.3 7.3-2.9 10.7-4.8 8.6-3.9 14.4-12.2 15.2-21.6-5.4-22.1-14.6-43-27.4-61.8l-36.1 20.8-7.9-13.7-17.9 10.5z m29.9 108.1l10 17.4 53.2-30.7c-7.8 23.7-20.6 45.4-37.5 63.6l20.6 11.1c18.6-24.2 30-53.1 33-83.4l29.8 51.5 18.4-10.7-29.8-51.5c27.4 11.5 57.2 16.3 86.9 14.1l3.5-23.5c-24.7 5.1-50.1 5-74.8-0.1l53.5-30.9-10-17.3-69.3 40-7.3-12.6-18.4 10.7L698.02053 425l-69.1 39.8z"
|
||||
fill="#515151"
|
||||
opacity=".5"
|
||||
p-id="5974"
|
||||
></path>
|
||||
fill="#515151" opacity=".5" p-id="5974"></path>
|
||||
</svg>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<a-pagination
|
||||
size="small"
|
||||
pageSize="4"
|
||||
:total="total"
|
||||
:current="page"
|
||||
@change="handleCurrentChange"
|
||||
@showSizeChange="handlePageSizeChange"
|
||||
:showSizeChanger="false"
|
||||
/>
|
||||
<a-pagination size="small" pageSize="4" :total="total" :current="page" @change="handleCurrentChange"
|
||||
@showSizeChange="handlePageSizeChange" :showSizeChanger="false" />
|
||||
</div>
|
||||
</div>
|
||||
<a-empty v-else />
|
||||
<a-modal
|
||||
bodyStyle="padding:0.1rem 0"
|
||||
v-model:visible="detailsVisible"
|
||||
title="申请详情"
|
||||
style="width: 900px"
|
||||
:footer="null"
|
||||
destroyOnClose="true"
|
||||
:maskClosable="false"
|
||||
>
|
||||
<apply-details
|
||||
:processDefinitionName="processDefinitionName"
|
||||
:businessKey="businessKey"
|
||||
:processInstanceId="processInstanceId"
|
||||
:resourceId="resourceId"
|
||||
:refObj="refObj"
|
||||
:showType="showType"
|
||||
></apply-details>
|
||||
<a-modal bodyStyle="padding:0.1rem 0" v-model:visible="detailsVisible" title="申请详情" style="width: 900px"
|
||||
:footer="null" destroyOnClose="true" :maskClosable="false">
|
||||
<apply-details :processDefinitionName="processDefinitionName" :businessKey="businessKey"
|
||||
:processInstanceId="processInstanceId" :resourceId="resourceId" :refObj="refObj" :showType="showType">
|
||||
</apply-details>
|
||||
</a-modal>
|
||||
<a-modal
|
||||
v-model:visible="visible"
|
||||
title="下架原因"
|
||||
@ok="del()"
|
||||
@cancel="reason = ''"
|
||||
>
|
||||
<a-modal v-model:visible="visible" title="下架原因" @ok="del()" @cancel="reason = ''">
|
||||
<a-input v-model:value="reason" placeholder="请输入下架原因" />
|
||||
</a-modal>
|
||||
<a-modal
|
||||
v-model:visible="videoVisible"
|
||||
title="已申请摄像头列表"
|
||||
@ok="videoVisible = false"
|
||||
>
|
||||
<a-table
|
||||
:columns="columns"
|
||||
:data-source="xVideoList"
|
||||
bordered
|
||||
:pagination="{ defaultPageSize: 6 }"
|
||||
>
|
||||
<a-modal v-model:visible="videoVisible" title="已申请摄像头列表" @ok="videoVisible = false">
|
||||
<a-table :columns="columns" :data-source="xVideoList" bordered :pagination="{ defaultPageSize: 6 }">
|
||||
<template #bodyCell="{ column, text }">
|
||||
<!-- <template>
|
||||
<a>{{ text }}</a>
|
||||
|
@ -300,20 +105,25 @@
|
|||
</a-table>
|
||||
</a-modal>
|
||||
</div>
|
||||
|
||||
<!-- 联系方式弹框 -->
|
||||
<a-modal v-model:visible="phoneVisible" title="提示" @ok="phoneVisible = false">
|
||||
<!-- 工业信息化局那个号,电话配这个号:199 6399 0996 -->
|
||||
<p>请联系工业信息化局,电话:199 6399 0996</p>
|
||||
</a-modal>
|
||||
</template>
|
||||
|
||||
<script setup>
|
||||
// import qs from 'qs'
|
||||
import { onMounted, reactive, ref, onBeforeUnmount } from 'vue'
|
||||
import { onMounted, reactive, ref, onBeforeUnmount, h, defineProps } from 'vue'
|
||||
import {
|
||||
getMyProcessInstancePage,
|
||||
// getTaskHandleDetailInfo,
|
||||
getTabilityapplication,
|
||||
getByApplyFlag,
|
||||
nengliziyuanshangjiaapply,
|
||||
getDemandForm,
|
||||
demandComment,
|
||||
// getProcDefBizRoute,
|
||||
deviceApplylist,
|
||||
getDeviceDetail,
|
||||
} from '@/api/personalCenter'
|
||||
import {
|
||||
updateRes,
|
||||
|
@ -326,21 +136,37 @@
|
|||
import { message } from 'ant-design-vue'
|
||||
import ApplyDetails from '@/views/personalCenter/components/ApplyDetails'
|
||||
import mybus from '@/myplugins/mybus'
|
||||
import * as moment from 'moment'
|
||||
|
||||
const props = defineProps({
|
||||
tabTypeName: { type: String, default: '' },
|
||||
})
|
||||
const router = useRouter()
|
||||
let typeList = ref([
|
||||
'能力申请',
|
||||
'能力评价',
|
||||
'能力上架',
|
||||
'能力下架',
|
||||
'能力需求',
|
||||
'需求评论',
|
||||
// '能力评价',
|
||||
])
|
||||
// 西海岸-设备申请
|
||||
let isXiHaiAn = whoShow.itShowXiHaiAn
|
||||
const phoneSate = ref([2, 3])
|
||||
if (isXiHaiAn) {
|
||||
typeList.value.push('设备申请')
|
||||
}
|
||||
const typeStrObj = {
|
||||
'能力上架': 'resourcemountapply',
|
||||
'能力下架': 'resourcundercarriageapply',
|
||||
'能力需求': 'abilitydemandapply',
|
||||
'需求评论': 'comment_review',
|
||||
}
|
||||
let tabList = ref(['全部', '审核中', '审核完成'])
|
||||
const contentList = reactive({ data: [] })
|
||||
// const contentListClone = reactive({ data: [] })
|
||||
// let contentListLength = contentList.length
|
||||
let tabIndex = ref(0)
|
||||
let typeIndex = ref(0)
|
||||
let typeName = ref(typeList.value[0])
|
||||
const videoVisible = ref(false)
|
||||
const numFlag = ref(true)
|
||||
const columns = ref([
|
||||
|
@ -350,8 +176,47 @@
|
|||
},
|
||||
])
|
||||
const xVideoList = ref([])
|
||||
function tabqiehuan(item, index) {
|
||||
// debugger
|
||||
|
||||
let name = ref('')
|
||||
const detailsVisible = ref(false)
|
||||
const detailsVisible2 = ref(false)
|
||||
const businessKey = ref('')
|
||||
const processInstanceId = ref('')
|
||||
const processDefinitionName = ref('')
|
||||
const resourceId = ref('')
|
||||
const reason = ref('')
|
||||
const visible = ref(false)
|
||||
const delObj = ref({})
|
||||
const taskId = ref('')
|
||||
const backUrl = ref(window.SITE_CONFIG.apiURL + '/')
|
||||
const refObj = ref({})
|
||||
const num = ref({
|
||||
finished: 0,
|
||||
unfinished: 0,
|
||||
})
|
||||
const total = ref('')
|
||||
const showType = ref('')
|
||||
const page = ref('1')
|
||||
const ended = ref('')
|
||||
const processDefinitionKey = ref('')
|
||||
const phoneVisible = ref(false)
|
||||
|
||||
// 选择类型
|
||||
const changeType = (item, index) => {
|
||||
console.log('item, index-----选择类型------->', item, index)
|
||||
numFlag.value = true
|
||||
num.value = []
|
||||
showType.value = ''
|
||||
tabIndex.value = 0
|
||||
ended.value = ''
|
||||
page.value = 1
|
||||
typeIndex.value = index
|
||||
typeName.value = item
|
||||
getApplyList()
|
||||
}
|
||||
|
||||
// 申请状态切换
|
||||
function changeApplyState(item, index) {
|
||||
tabIndex.value = index
|
||||
switch (item) {
|
||||
case '审核中':
|
||||
|
@ -371,38 +236,22 @@
|
|||
break
|
||||
}
|
||||
}
|
||||
// 选择类型
|
||||
const changeType = (item, index) => {
|
||||
numFlag.value = true
|
||||
num.value = []
|
||||
showType.value = ''
|
||||
console.log(item, index)
|
||||
tabIndex.value = 0
|
||||
ended.value = ''
|
||||
page.value = 1
|
||||
typeIndex.value = index
|
||||
getApplyList()
|
||||
}
|
||||
let name = ref('')
|
||||
const detailsVisible = ref(false)
|
||||
const detailsVisible2 = ref(false)
|
||||
const businessKey = ref('')
|
||||
const processInstanceId = ref('')
|
||||
const processDefinitionName = ref('')
|
||||
const resourceId = ref('')
|
||||
const reason = ref('')
|
||||
const visible = ref(false)
|
||||
const delObj = ref({})
|
||||
const taskId = ref('')
|
||||
const backUrl = ref(window.SITE_CONFIG.apiURL + '/')
|
||||
const refObj = ref({})
|
||||
|
||||
const showDetail = (item) => {
|
||||
console.log('showDetail', item)
|
||||
// getProcDefBizRoute(item.processDefinitionId)
|
||||
if (typeIndex.value == 0 && item.applyFlag) {
|
||||
// 西海岸-申请时间过期,提示
|
||||
if (isXiHaiAn) {
|
||||
if (item.expireDate) {
|
||||
let diff = moment().diff(moment(item.expireDate), 'seconds')
|
||||
if (diff > 0) {
|
||||
return message.error('当前申请已过期!')
|
||||
}
|
||||
}
|
||||
}
|
||||
if (typeName.value == '能力申请' && item.applyFlag) {
|
||||
getByApplyFlag(item.applyFlag).then((res) => {
|
||||
if (res.data.code == 0) {
|
||||
refObj.value = res.data.data
|
||||
|
||||
detailsVisible.value = true
|
||||
processDefinitionName.value = item.processDefinitionName
|
||||
businessKey.value = item.businessKey
|
||||
|
@ -412,7 +261,20 @@
|
|||
message.error('数据请求失败!')
|
||||
}
|
||||
})
|
||||
} else if (typeIndex.value !== 1) {
|
||||
} else if (typeName.value == '设备申请') {
|
||||
getDeviceDetailInfo(item.deviceId)
|
||||
.then((res) => {
|
||||
if (res.data.code == 0) {
|
||||
refObj.value = res.data.data
|
||||
detailsVisible.value = true
|
||||
processDefinitionName.value = item.processDefinitionName
|
||||
}
|
||||
})
|
||||
.catch((err) => { })
|
||||
} else if (
|
||||
Object.keys(typeStrObj).includes(typeName.value) ||
|
||||
typeName.value == '能力评价'
|
||||
) {
|
||||
refObj.value = item
|
||||
detailsVisible.value = true
|
||||
processDefinitionName.value = item.processDefinitionName
|
||||
|
@ -446,10 +308,6 @@
|
|||
oInput.remove()
|
||||
}
|
||||
const showAdd = (item) => {
|
||||
// resourcemountapply 上架申请
|
||||
// resourcundercarriageapply 下架申请
|
||||
// abilitydemandapply 需求申请
|
||||
// abilityprocess 能力申请
|
||||
if (item.processDefinitionKey == 'resourcemountapply') {
|
||||
const data = {
|
||||
id: item.resourceId,
|
||||
|
@ -503,10 +361,7 @@
|
|||
window.open(newpage.href, '_self')
|
||||
}
|
||||
}
|
||||
const num = ref({
|
||||
finished: 0,
|
||||
unfinished: 0,
|
||||
})
|
||||
|
||||
const initNum = () => {
|
||||
if (numFlag.value) {
|
||||
num.value = []
|
||||
|
@ -558,11 +413,7 @@
|
|||
}
|
||||
}
|
||||
// initNum()
|
||||
const total = ref('')
|
||||
const showType = ref('')
|
||||
const page = ref('1')
|
||||
const ended = ref('')
|
||||
const processDefinitionKey = ref('')
|
||||
|
||||
// 搜索框
|
||||
const onSearch = (name) => {
|
||||
console.log(name.value)
|
||||
|
@ -582,7 +433,7 @@
|
|||
if (ended.value === '') {
|
||||
delete params.ended
|
||||
}
|
||||
if (typeIndex.value == 0) {
|
||||
if (typeName.value == '能力申请') {
|
||||
getTabilityapplication(params).then((res) => {
|
||||
contentList.data = []
|
||||
console.log('获取我的申请===============>', res.data.data)
|
||||
|
@ -591,25 +442,32 @@
|
|||
showType.value = '能力申请'
|
||||
initNum2()
|
||||
})
|
||||
} else if (typeIndex.value !== 1) {
|
||||
switch (typeIndex.value) {
|
||||
case 2:
|
||||
params.processDefinitionKey = 'resourcemountapply'
|
||||
processDefinitionKey.value = 'resourcemountapply'
|
||||
break
|
||||
case 3:
|
||||
params.processDefinitionKey = 'resourcundercarriageapply'
|
||||
processDefinitionKey.value = 'resourcundercarriageapply'
|
||||
break
|
||||
case 4:
|
||||
params.processDefinitionKey = 'abilitydemandapply'
|
||||
processDefinitionKey.value = 'abilitydemandapply'
|
||||
break
|
||||
case 5:
|
||||
params.processDefinitionKey = 'comment_review'
|
||||
processDefinitionKey.value = 'comment_review'
|
||||
break
|
||||
} else if (typeName.value == '能力评价') {
|
||||
contentList.data = []
|
||||
num.value = []
|
||||
showType.value = ''
|
||||
} else if (typeName.value == '设备申请') {
|
||||
let _state =
|
||||
ended.value === ''
|
||||
? '全部'
|
||||
: ended.value === true
|
||||
? '审核完成'
|
||||
: '审核中'
|
||||
getDeviceApply(_state)
|
||||
.then((res) => {
|
||||
if (res.data.code == 0) {
|
||||
contentList.data = []
|
||||
contentList.data = res.data.data.list || []
|
||||
total.value = res.data.data.total
|
||||
showType.value = '设备申请'
|
||||
// 获取审核中,审核完成 数量
|
||||
getDeviceNum()
|
||||
}
|
||||
})
|
||||
.catch((err) => { })
|
||||
} else if (Object.keys(typeStrObj).includes(typeName.value)) {
|
||||
processDefinitionKey.value = typeStrObj[typeName.value]
|
||||
params.processDefinitionKey = processDefinitionKey.value
|
||||
getMyProcessInstancePage(params).then((res) => {
|
||||
contentList.data = []
|
||||
// initNum(name.value)
|
||||
|
@ -637,7 +495,6 @@
|
|||
showType.value = '能力下架'
|
||||
})
|
||||
})
|
||||
// params.processDefinitionKey = 'resourcundercarriageapply'
|
||||
break
|
||||
case 4:
|
||||
contentList.data.map((val) => {
|
||||
|
@ -649,7 +506,6 @@
|
|||
showType.value = '能力需求'
|
||||
})
|
||||
})
|
||||
// params.processDefinitionKey = 'abilitydemandapply'
|
||||
break
|
||||
case 5:
|
||||
contentList.data.map((val) => {
|
||||
|
@ -661,31 +517,8 @@
|
|||
showType.value = '需求评论'
|
||||
})
|
||||
})
|
||||
// params.processDefinitionKey = 'comment_review'
|
||||
break
|
||||
}
|
||||
// if (contentList.data && contentList.data.length > 0) {
|
||||
// contentList.data.map((item) => {
|
||||
// const param = {
|
||||
// page: 1,
|
||||
// limit: 4,
|
||||
// processInstanceId: item.processInstanceId,
|
||||
// }
|
||||
// getTaskHandleDetailInfo(qs.stringify(param)).then((res) => {
|
||||
// console.log('申请结果', res.data.data, res.data.data[0].comment)
|
||||
// const result = res.data.data
|
||||
// if (result && result.length > 2) {
|
||||
// item.comment =
|
||||
// result[0].comment.length > result[1].comment.length
|
||||
// ? result[0].comment
|
||||
// : result[1].comment
|
||||
// } else {
|
||||
// item.comment = result[0].comment
|
||||
// }
|
||||
// })
|
||||
// return item
|
||||
// })
|
||||
// }
|
||||
})
|
||||
} else {
|
||||
contentList.data = []
|
||||
|
@ -756,6 +589,66 @@
|
|||
}
|
||||
})
|
||||
}
|
||||
|
||||
// 西海岸:设备申请列表 todo
|
||||
const getDeviceApply = (state) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
let _data = {
|
||||
page: page.value,
|
||||
limit: 4,
|
||||
state,
|
||||
}
|
||||
deviceApplylist(_data)
|
||||
.then((res) => {
|
||||
resolve(res)
|
||||
console.log('res----设备申请-------->', res)
|
||||
})
|
||||
.catch((err) => {
|
||||
reject(err)
|
||||
console.log('err------------>', err)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
// 西海岸:设备申请--查询详情
|
||||
const getDeviceDetailInfo = (deviceId) => {
|
||||
return new Promise((resolve, reject) => {
|
||||
getDeviceDetail(deviceId)
|
||||
.then((res) => {
|
||||
resolve(res)
|
||||
console.log('res----查询详情-------->', res)
|
||||
})
|
||||
.catch((err) => {
|
||||
reject(err)
|
||||
console.log('err------------>', err)
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
// 西海岸:设备申请-审核中, 审核完成数量
|
||||
const getDeviceNum = () => {
|
||||
if (!numFlag.value) {
|
||||
return
|
||||
}
|
||||
num.value = []
|
||||
Promise.all([getDeviceApply('审核中'), getDeviceApply('审核完成')])
|
||||
.then((res) => {
|
||||
console.log('res-----数量------->', res)
|
||||
let unfinished = res[0] && res[0].data && res[0].data.data
|
||||
let finished = res[1] && res[1].data && res[1].data.data
|
||||
num.value.unfinished = unfinished.total || ''
|
||||
num.value.finished = finished.total || ''
|
||||
numFlag.value = false
|
||||
})
|
||||
.catch((err) => {
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
const showPhoneModal = () => {
|
||||
phoneVisible.value = true
|
||||
}
|
||||
|
||||
mybus.on('closeModal', (obj) => {
|
||||
detailsVisible.value = false
|
||||
changeType(obj.type, obj.index)
|
||||
|
@ -765,6 +658,11 @@
|
|||
})
|
||||
onMounted(() => {
|
||||
getApplyList()
|
||||
|
||||
if (props.tabTypeName) {
|
||||
let _index = typeList.value.findIndex(v => v == props.tabTypeName)
|
||||
changeType(props.tabTypeName, _index != -1 ? _index : 0)
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
|
@ -781,17 +679,21 @@
|
|||
flex-direction: column;
|
||||
font-size: 16px;
|
||||
justify-content: left;
|
||||
|
||||
.title {
|
||||
font-size: 20px;
|
||||
color: #000000;
|
||||
font-family: 'Alibaba PuHuiTi';
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.sousuokuang {
|
||||
margin: 20px 0px 21px 0px;
|
||||
|
||||
.ant-input-search {
|
||||
max-width: 490px;
|
||||
}
|
||||
|
||||
:deep(.ant-input) {
|
||||
width: 400px;
|
||||
height: 36px;
|
||||
|
@ -799,9 +701,11 @@
|
|||
color: #b2b2b2;
|
||||
background: #f5f5f5;
|
||||
}
|
||||
|
||||
:deep(.ant-input-group-addon) {
|
||||
display: inline-block;
|
||||
margin-left: 10px;
|
||||
|
||||
.ant-input-search-button {
|
||||
width: 80px;
|
||||
height: 36px;
|
||||
|
@ -810,10 +714,12 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tab {
|
||||
display: flex;
|
||||
font-size: 14px;
|
||||
color: #999999;
|
||||
|
||||
div {
|
||||
// width: 70px;
|
||||
padding: 5px 10px;
|
||||
|
@ -826,14 +732,17 @@
|
|||
color: #666666;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.tabclass {
|
||||
border: 1px solid #0087ff;
|
||||
color: #0087ff;
|
||||
}
|
||||
}
|
||||
|
||||
.content {
|
||||
padding-right: 10px;
|
||||
height: 510px;
|
||||
|
||||
.content-body {
|
||||
padding-bottom: 20px;
|
||||
padding-top: 20px;
|
||||
|
@ -841,6 +750,7 @@
|
|||
height: 150px;
|
||||
border-bottom: #cccccc 1px solid;
|
||||
position: relative;
|
||||
|
||||
.content-body-title {
|
||||
min-width: 100px;
|
||||
max-width: 900px;
|
||||
|
@ -853,6 +763,7 @@
|
|||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.content-body-content {
|
||||
margin-top: 10px;
|
||||
margin-bottom: 10px;
|
||||
|
@ -860,6 +771,7 @@
|
|||
/* width: 720px; */
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.content-body-content-son {
|
||||
line-height: 16px;
|
||||
font-size: 12px;
|
||||
|
@ -872,6 +784,7 @@
|
|||
// -webkit-box-orient: vertical;
|
||||
display: flex;
|
||||
color: #999999;
|
||||
|
||||
span {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
|
@ -883,16 +796,19 @@
|
|||
word-break: break-all;
|
||||
}
|
||||
}
|
||||
|
||||
.content-body-bottom {
|
||||
display: flex;
|
||||
color: #cccccc;
|
||||
font-size: 12px;
|
||||
|
||||
div:first-child {
|
||||
margin-right: 30px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bottom {
|
||||
position: absolute;
|
||||
bottom: 30px;
|
||||
|
@ -919,13 +835,16 @@
|
|||
line-height: 30px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.buttonAgree {
|
||||
background-color: #49c988;
|
||||
}
|
||||
|
||||
.backToFirst {
|
||||
background-color: rgb(214, 91, 91);
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.ant-badge-count) {
|
||||
top: -5px;
|
||||
right: -10px;
|
||||
|
|
|
@ -2,58 +2,32 @@
|
|||
<div class="on-the-right-side-of-the-list">
|
||||
<div class="title">我的发布</div>
|
||||
<div class="sousuokuang">
|
||||
<a-input-search
|
||||
v-model:value="name"
|
||||
placeholder="请输入关键词"
|
||||
enter-button="搜索"
|
||||
size="large"
|
||||
@change="onSearch"
|
||||
@search="getApplyList(tabname)"
|
||||
/>
|
||||
<a-button
|
||||
type="primary"
|
||||
style="width: 0.9rem; height: 0.36rem; margin-left: 0.1rem"
|
||||
@click="showModal2"
|
||||
>
|
||||
<a-input-search v-model:value="name" placeholder="请输入关键词" enter-button="搜索" size="large" @change="onSearch"
|
||||
@search="getApplyList(tabname)" />
|
||||
<a-button type="primary" style="width: 0.9rem; height: 0.36rem; margin-left: 0.1rem" @click="showModal2">
|
||||
能力上架
|
||||
</a-button>
|
||||
<a-button
|
||||
type="primary"
|
||||
style="width: 0.9rem; height: 0.36rem; margin-left: 0.1rem"
|
||||
@click="replacement"
|
||||
>
|
||||
<a-button type="primary" style="width: 0.9rem; height: 0.36rem; margin-left: 0.1rem" @click="replacement">
|
||||
重置
|
||||
</a-button>
|
||||
</div>
|
||||
<div class="tab">
|
||||
<span>能力类型</span>
|
||||
<div
|
||||
:class="tabIndex == index ? 'tabclass' : ' '"
|
||||
@click="tabqiehuan(item, index)"
|
||||
v-for="(item, index) in tabList"
|
||||
:key="index"
|
||||
>
|
||||
<div :class="tabIndex == index ? 'tabclass' : ' '" @click="tabqiehuan(item, index)"
|
||||
v-for="(item, index) in tabList" :key="index">
|
||||
{{ item }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="tab" style="margin-top: 0.1rem">
|
||||
<span>能力状态</span>
|
||||
<div
|
||||
:class="tabIndex2 == index ? 'tabclass' : ' '"
|
||||
@click="tabqiehuan2(item, index)"
|
||||
v-for="(item, index) in tabList2"
|
||||
:key="index"
|
||||
>
|
||||
<div :class="tabIndex2 == index ? 'tabclass' : ' '" @click="tabqiehuan2(item, index)"
|
||||
v-for="(item, index) in tabList2" :key="index">
|
||||
{{ item }}
|
||||
</div>
|
||||
</div>
|
||||
<div v-if="dataList.data.length > 0">
|
||||
<div class="content">
|
||||
<div
|
||||
class="content-body"
|
||||
v-for="item in dataList.data"
|
||||
:key="item.index"
|
||||
>
|
||||
<div class="content-body" v-for="item in dataList.data" :key="item.index">
|
||||
<div class="content-body-title" v-if="item.currentTaskList">
|
||||
<!-- {{ item.currentTaskList[0].taskName }} -->
|
||||
</div>
|
||||
|
@ -71,57 +45,27 @@
|
|||
<!-- <div></div> -->
|
||||
</div>
|
||||
<div class="button">
|
||||
<div
|
||||
@click="showModal(item)"
|
||||
v-if="item.delFlag != 2"
|
||||
:class="item.delFlag != 0 ? 'del' : ''"
|
||||
>
|
||||
<div @click="showModal(item)" v-if="item.delFlag != 2" :class="item.delFlag != 0 ? 'del' : ''">
|
||||
能力下架
|
||||
</div>
|
||||
<div
|
||||
@click="showDetail(item)"
|
||||
v-if="item.delFlag != 2"
|
||||
:class="item.delFlag != 0 ? 'del' : ''"
|
||||
>
|
||||
<div @click="showDetail(item)" v-if="item.delFlag != 2" :class="item.delFlag != 0 ? 'del' : ''">
|
||||
查看详情
|
||||
</div>
|
||||
<svg
|
||||
t="1652233950228"
|
||||
class="icon"
|
||||
viewBox="0 0 1024 1024"
|
||||
version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
p-id="5970"
|
||||
data-spm-anchor-id="a313x.7781069.0.i8"
|
||||
width="80"
|
||||
height="80"
|
||||
v-if="item.delFlag == 4 || item.delFlag == 5"
|
||||
style="position: absolute; top: 0.2rem; left: 0.1rem"
|
||||
>
|
||||
<svg t="1652233950228" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
|
||||
p-id="5970" data-spm-anchor-id="a313x.7781069.0.i8" width="80" height="80"
|
||||
v-if="item.delFlag == 4 || item.delFlag == 5" style="position: absolute; top: 0.2rem; left: 0.1rem">
|
||||
<path
|
||||
d="M955.22053 256C813.82053 11.2 500.72053-72.6 255.92053 68.8S-72.67947 523.2 68.72053 768 523.22053 1096.6 768.02053 955.2c244.7-141.2 328.6-454.1 187.4-698.8 0-0.1-0.1-0.3-0.2-0.4zM762.02053 944.7c-239 138.1-544.8 56.2-682.9-182.8S22.92053 217.1 261.92053 79.1s544.8-56.2 682.9 182.8c137.9 239 56.1 544.6-182.8 682.8z"
|
||||
fill="#515151"
|
||||
opacity=".5"
|
||||
p-id="5971"
|
||||
></path>
|
||||
fill="#515151" opacity=".5" p-id="5971"></path>
|
||||
<path
|
||||
d="M898.12053 289.2C775.02053 76 502.42053 2.9 289.22053 126 76.02053 249.1 3.02053 521.6 126.02053 734.8 249.12053 948 521.62053 1021.1 734.82053 898 947.92053 774.9 1021.02053 502.4 898.12053 289.2zM731.62053 892.8C521.32053 1014.3 252.42053 942.2 131.02053 731.9 9.52053 521.6 81.62053 252.7 291.92053 131.3 502.12053 9.9 771.02053 81.8 892.42053 292c121.5 210.3 49.5 479.3-160.8 600.8z"
|
||||
fill="#515151"
|
||||
opacity=".5"
|
||||
p-id="5972"
|
||||
></path>
|
||||
fill="#515151" opacity=".5" p-id="5972"></path>
|
||||
<path
|
||||
d="M323.62053 176.8c3.6-2 6 0.8 8.8 2.8 6 4.4 12.4 8.8 18.8 12.8 7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-3.6 13.6-5.6 20.8 4.8 6 10 11.6 15.2 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.8-5.6 2.4-7.7 2.4l-22.4 0.8c-4.4 6.8-8.4 13.6-12.8 20-1.6 2.4-4 5.1-7.2 4-2.4-1.9-3.9-4.7-4.4-7.7l-7.2-20.5-25.2-6.4c-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 4-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.7-0.8-0.3-1.6 0.6-2zM200.72053 289.2c3.6-2 6 0.8 8.8 2.8 6.4 4.4 12.4 8.4 18.8 12.8 7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-3.6 13.6-5.6 20.8 4.8 6 10 11.6 14.8 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.4-5.6 2.4-7.7 2.4l-22.4 0.8c-4.4 6.8-8.8 13.6-12.8 20-1.6 2.4-4 5.1-7.2 4-2.2-2-3.8-4.7-4.4-7.7l-7.2-20.5c-8.4-2-16.8-4.4-25.2-6.4-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 3.6-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.4-1.2 0-1.6 0.8-2.4l0.2 0.4z m276.6-159.6c3.6-2 6 0.8 8.8 2.8 6.4 4.4 12.4 8.4 18.8 12.8 7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-3.6 14-5.6 20.8 4.8 6 10 12 15.2 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.8-5.6 2.4-7.7 2.4l-22.4 0.8c-4.4 6.8-8.8 13.6-12.8 20-1.6 2.4-4 5.1-7.2 4-2.2-2-3.8-4.7-4.4-7.7l-7.2-20.5-25.2-6.4c-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 4-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.8-1.2-0.4-1.6 0.4-2.4l0.2 0.4z m141.9 29.6c3.6-2 6 0.8 8.8 2.8l18.8 12.8c7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-3.6 14-5.6 20.8 4.8 6 10 12 15.2 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.8-5.6 2.4-7.7 2.4-7.7 0.4-15.2 0.8-22.4 0.8-4.4 6.8-8.4 13.2-12.8 20-1.6 2.4-4 5.1-7.2 4-2.4-1.9-3.9-4.7-4.4-7.7l-7.2-20.5c-8.4-2-16.8-4.4-25.2-6.4-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 4-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.5-1.2 0.2-1.6 0.6-2zM150.02053 430c3.6-2 6 0.8 8.8 2.8 6.4 4.4 12.4 8.4 18.8 12.8 7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-4 14-5.6 20.8 4.8 6 10 11.6 15.2 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.8-5.6 2.4-7.7 2.4l-22.4 0.8c-4.4 6.8-8.8 13.6-12.8 20-1.6 2.4-4 5.1-7.2 4-2.2-2-3.8-4.7-4.4-7.7l-7.2-20.5-25.2-6.4c-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 3.6-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.7-0.8-0.3-1.5 0.6-2z m558.9 414.4c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.2-3.2-5.6-3.6-7.7-4-6.8-2-14-3.6-20.8-5.6-2.8-7.2-5.1-14.4-7.7-21.6-1.2-3.6-2.8-6.4-5.6-6.8-2.8-0.4-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.1 4.4-0.7 6.4-1.6l14.4-4.8c2.1-0.8 4.2-1.5 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0.5-1.1 0.8-1.1 1.6-1.1h0.1z m-158.8 50c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.1-3.7-5.6-3.6-7.7-4-6.8-1.6-14-3.6-20.8-5.6l-7.7-22c-1.2-3.6-2.8-6.4-5.6-6.8-2.8-0.4-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.3 4.3-0.9 6.4-1.6l14.4-4.8c2-1 4.2-1.7 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0.4-0.8 0.8-0.8 1.7-0.7z m276.5-159.6c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.2-3.2-5.6-3.6-7.7-4-6.8-2-14-3.6-20.8-5.6-2.8-7.2-5.1-14.4-7.7-21.6-1.2-3.6-2.8-6.4-5.6-6.8s-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.2 4.4-0.7 6.4-1.6l14.4-4.8c2.1-0.8 4.2-1.5 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0-0.8 0.8-1.2 1.6-1.2l0.1 0.1z m45.6-137.6c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.2-3.2-5.6-3.6-7.7-4-6.8-1.6-14-3.6-20.8-5.6l-7.7-22c-1.2-3.6-2.8-6.4-5.6-6.8-2.8-0.4-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.3 4.3-0.9 6.4-1.6l14.4-4.8c2.1-0.8 4.2-1.5 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0.2-0.7 0.6-0.7 1.4-0.7h0.3zM402.72053 868c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.2-3.2-5.6-3.6-7.7-4-6.8-2-14-3.6-20.8-5.6-2.8-7.2-5.1-14.4-7.7-21.6-1.2-3.6-2.8-6.4-5.6-6.8-2.8-0.4-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.3 4.3-0.9 6.4-1.6l14.4-4.8c2.1-0.8 4.2-1.5 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0.5-0.8 1-1.1 1.7-1.1z"
|
||||
fill="#515151"
|
||||
opacity=".5"
|
||||
p-id="5973"
|
||||
></path>
|
||||
fill="#515151" opacity=".5" p-id="5973"></path>
|
||||
<path
|
||||
d="M386.42053 590.4l-43.8-75.9L207.02053 592.7l10.2 17.7L334.02053 543l23.4 40.4-90.5 52.2-13.5-23.4-18.7 10.8 53.1 92c9.1 15.8 21.2 19.5 36.4 10.7l98.8-57c6.2-3.6 11-9.3 13.4-16.1-1.4-15.9-6.2-31.2-14.2-45l-21.4 4.8c6.7 10.3 11 21.9 12.8 34-1 3.3-3.2 6-6.1 7.8l-88.3 51c-6.2 3.6-11.1 2.1-14.8-4.3l-27.3-47.4 109.3-63.1z m2.9-103.2l10.4 18.1 65.6-37.9 79.9 138.4 18.6-10.8-55.9-96.9c18.8-0.9 43.2-0.6 73 0.7l1.5-23.1c-29.8-0.3-58.4 0.4-86 2.6l-12.5-21.6 74.9-43.2-10.4-18.1-159.1 91.8zM669.52053 329l38.2 66.2 61.4-35.4-38.1-66.1-61.5 35.3z m72.4 24.2l-26.3 15.2-19-33 26.3-15.2 19 33zM599.02053 356.7l7.9 13.7-23.3 13.5 9.8 17 21.8-12.6c7.5 18.7 6.6 39.6-2.5 57.6l20.7 4.4c10.3-23.1 10.3-49.4 0-72.5l18.8-10.9c6 9.2 10.7 19.2 14.2 29.7 0.3 5-2.6 9.7-7.2 11.7-2.9 1.2-6.4 2.8-10.9 4.9l14.1 14.1c3.7-1.3 7.3-2.9 10.7-4.8 8.6-3.9 14.4-12.2 15.2-21.6-5.4-22.1-14.6-43-27.4-61.8l-36.1 20.8-7.9-13.7-17.9 10.5z m29.9 108.1l10 17.4 53.2-30.7c-7.8 23.7-20.6 45.4-37.5 63.6l20.6 11.1c18.6-24.2 30-53.1 33-83.4l29.8 51.5 18.4-10.7-29.8-51.5c27.4 11.5 57.2 16.3 86.9 14.1l3.5-23.5c-24.7 5.1-50.1 5-74.8-0.1l53.5-30.9-10-17.3-69.3 40-7.3-12.6-18.4 10.7L698.02053 425l-69.1 39.8z"
|
||||
fill="#515151"
|
||||
opacity=".5"
|
||||
p-id="5974"
|
||||
></path>
|
||||
fill="#515151" opacity=".5" p-id="5974"></path>
|
||||
</svg>
|
||||
<!-- <div v-if="item.delFlag == 0" class="button-son">审核通过</div>
|
||||
<div v-if="item.delFlag != 0">未审核</div> -->
|
||||
|
@ -132,56 +76,24 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="bottom">
|
||||
<a-pagination
|
||||
size="small"
|
||||
:total="total"
|
||||
show-size-changer
|
||||
show-quick-jumper
|
||||
@change="handleCurrentChange"
|
||||
@showSizeChange="handlePageSizeChange"
|
||||
/>
|
||||
<a-pagination size="small" :total="total" show-size-changer show-quick-jumper @change="handleCurrentChange"
|
||||
@showSizeChange="handlePageSizeChange" />
|
||||
</div>
|
||||
</div>
|
||||
<a-empty v-else />
|
||||
<a-modal
|
||||
v-model:visible="detailsVisible"
|
||||
:title="tabname"
|
||||
style="width: 9rem"
|
||||
:footer="null"
|
||||
destroyOnClose="true"
|
||||
:maskClosable="false"
|
||||
>
|
||||
<publish-details
|
||||
:businessKey="businessKey"
|
||||
:processInstanceId="processInstanceId"
|
||||
></publish-details>
|
||||
<a-modal v-model:visible="detailsVisible" :title="tabname" style="width: 9rem" :footer="null" destroyOnClose="true"
|
||||
:maskClosable="false">
|
||||
<publish-details :businessKey="businessKey" :processInstanceId="processInstanceId"></publish-details>
|
||||
</a-modal>
|
||||
<a-modal
|
||||
v-model:visible="increasedVisible"
|
||||
:title="tabname"
|
||||
style="width: 9rem"
|
||||
:footer="null"
|
||||
destroyOnClose="true"
|
||||
:maskClosable="false"
|
||||
>
|
||||
<a-modal v-model:visible="increasedVisible" :title="tabname" style="width: 9rem" :footer="null"
|
||||
destroyOnClose="true" :maskClosable="false">
|
||||
<the-new-release></the-new-release>
|
||||
</a-modal>
|
||||
<a-modal
|
||||
v-model:visible="visible"
|
||||
width="12.1rem"
|
||||
@ok="del()"
|
||||
@cancel="reason = ''"
|
||||
footer=""
|
||||
>
|
||||
<a-modal v-model:visible="visible" width="12.1rem" @ok="del()" @cancel="reason = ''" footer="">
|
||||
<TheShelvesAbility v-if="visible" :delObj="delObj"></TheShelvesAbility>
|
||||
<!-- <a-input v-model:value="reason" placeholder="请输入下架原因" /> -->
|
||||
</a-modal>
|
||||
<a-modal
|
||||
v-model:visible="visible2"
|
||||
@ok="handleOk"
|
||||
class="shangjia-class"
|
||||
@cancel="handlecancel"
|
||||
>
|
||||
<a-modal v-model:visible="visible2" @ok="handleOk" class="shangjia-class" @cancel="handlecancel">
|
||||
<div class="ant-modal-title" id="vcDialogTitle1">
|
||||
<div class="showBg"></div>
|
||||
能力上架申请
|
||||
|
@ -189,22 +101,14 @@
|
|||
<div class="ability-to-type">
|
||||
<div class="title">能力类型选择</div>
|
||||
<div class="content">
|
||||
<div
|
||||
v-for="item in abilityToType"
|
||||
:key="item"
|
||||
@click="abilityToTypeFunction(item)"
|
||||
:class="
|
||||
<div v-for="item in abilityToType" :key="item" @click="abilityToTypeFunction(item)" :class="
|
||||
abilityToTypeFunctionData == item ? 'ability-to-type-down' : ''
|
||||
"
|
||||
>
|
||||
">
|
||||
{{ item }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
class="component-type"
|
||||
v-if="abilityToTypeFunctionData == '组件服务'"
|
||||
>
|
||||
<div class="component-type" v-if="abilityToTypeFunctionData == '组件服务'">
|
||||
<div class="title">组件类型选择</div>
|
||||
<div class="content">
|
||||
<!-- <a-checkbox-group
|
||||
|
@ -213,12 +117,7 @@
|
|||
:options="componentType"
|
||||
/> -->
|
||||
<a-radio-group v-model:value="componentTypeValue">
|
||||
<a-radio
|
||||
@click="componentTypeValueFunction(item)"
|
||||
v-for="item in componentType"
|
||||
:key="item"
|
||||
:value="item"
|
||||
>
|
||||
<a-radio @click="componentTypeValueFunction(item)" v-for="item in componentType" :key="item" :value="item">
|
||||
{{ item }}
|
||||
</a-radio>
|
||||
</a-radio-group>
|
||||
|
@ -456,12 +355,13 @@
|
|||
// 下架能力
|
||||
const del = () => {
|
||||
console.log('下架================》', delObj.value)
|
||||
let fileObj = delObj2.value.fileList && delObj2.value.fileList[0] || {}
|
||||
undercarriage({
|
||||
reason: delObj2.value.reason,
|
||||
title: delObj2.value.title,
|
||||
phone: delObj2.value.phone,
|
||||
enclosure: delObj2.value.fileList[0].response.data,
|
||||
enclosureName: delObj2.value.fileList[0].name,
|
||||
enclosure: fileObj.response && fileObj.response.data,
|
||||
enclosureName: fileObj.name,
|
||||
resource: [
|
||||
{ resourceId: delObj.value.id, resourceName: delObj.value.name },
|
||||
],
|
||||
|
@ -519,17 +419,21 @@
|
|||
flex-direction: column;
|
||||
font-size: 0.16rem;
|
||||
justify-content: left;
|
||||
|
||||
.title {
|
||||
font-size: 0.2rem;
|
||||
color: #000000;
|
||||
font-family: 'Alibaba PuHuiTi';
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.sousuokuang {
|
||||
margin: 0.2rem 0rem 0.21rem 0rem;
|
||||
|
||||
.ant-input-search {
|
||||
max-width: 4.9rem;
|
||||
}
|
||||
|
||||
:deep(.ant-input) {
|
||||
width: 4rem;
|
||||
height: 0.36rem;
|
||||
|
@ -537,9 +441,11 @@
|
|||
color: #b2b2b2;
|
||||
background: #f5f5f5;
|
||||
}
|
||||
|
||||
:deep(.ant-input-group-addon) {
|
||||
display: inline-block;
|
||||
margin-left: 0.1rem;
|
||||
|
||||
.ant-input-search-button {
|
||||
width: 0.8rem;
|
||||
height: 0.36rem;
|
||||
|
@ -548,10 +454,12 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.tab {
|
||||
display: flex;
|
||||
font-size: 0.14rem;
|
||||
color: #999999;
|
||||
|
||||
div {
|
||||
width: 0.7rem;
|
||||
height: 0.24rem;
|
||||
|
@ -562,15 +470,18 @@
|
|||
color: #666666;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.tabclass {
|
||||
border: 0.01rem solid #0087ff;
|
||||
color: #0087ff;
|
||||
}
|
||||
}
|
||||
|
||||
.content {
|
||||
padding-right: 0.1rem;
|
||||
height: 5.1rem;
|
||||
overflow: auto;
|
||||
|
||||
.content-body {
|
||||
padding-bottom: 0.2rem;
|
||||
padding-top: 0.2rem;
|
||||
|
@ -578,16 +489,19 @@
|
|||
// height: 1.20rem;
|
||||
border-bottom: #cccccc 0.01rem solid;
|
||||
position: relative;
|
||||
|
||||
.content-body-title {
|
||||
font-size: 0.14rem;
|
||||
color: #333333;
|
||||
font-family: 'Alibaba PuHuiTi';
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.content-body-content {
|
||||
margin-top: 0.1rem;
|
||||
margin-bottom: 0.1rem;
|
||||
width: 7.2rem;
|
||||
|
||||
.content-body-content-son {
|
||||
line-height: 0.16rem;
|
||||
font-size: 0.12rem;
|
||||
|
@ -602,16 +516,19 @@
|
|||
color: #999999;
|
||||
}
|
||||
}
|
||||
|
||||
.content-body-bottom {
|
||||
display: flex;
|
||||
color: #cccccc;
|
||||
font-size: 0.12rem;
|
||||
|
||||
div:first-child {
|
||||
margin-right: 0.3rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bottom {
|
||||
position: absolute;
|
||||
bottom: 0.3rem;
|
||||
|
@ -625,6 +542,7 @@
|
|||
width: 0.96rem;
|
||||
// background: #0087ff;
|
||||
cursor: pointer;
|
||||
|
||||
div {
|
||||
margin-top: 0.2rem;
|
||||
height: 0.3rem;
|
||||
|
@ -635,16 +553,20 @@
|
|||
text-align: center;
|
||||
line-height: 0.3rem;
|
||||
}
|
||||
|
||||
.del {
|
||||
background: #ccc;
|
||||
}
|
||||
|
||||
.button-son {
|
||||
background: #49c988;
|
||||
}
|
||||
}
|
||||
|
||||
.button-state {
|
||||
top: 0.6rem;
|
||||
}
|
||||
|
||||
.buttonAgree {
|
||||
background-color: #49c988;
|
||||
}
|
||||
|
@ -660,22 +582,27 @@
|
|||
margin-top: -1.44rem;
|
||||
font-size: 0.14rem;
|
||||
font-weight: 500;
|
||||
|
||||
.ant-radio-inner {
|
||||
height: 0.16rem;
|
||||
width: 0.16rem;
|
||||
}
|
||||
|
||||
.ant-radio-inner::after {
|
||||
background-color: unset;
|
||||
background: url('~@/assets/personalCenter/xuanzhong.png') no-repeat;
|
||||
background-size: cover;
|
||||
background-position: center;
|
||||
}
|
||||
|
||||
.ant-modal-content {
|
||||
border-radius: 0.1rem;
|
||||
|
||||
.ability-to-type,
|
||||
.component-type {
|
||||
display: flex;
|
||||
margin-top: 0.2rem;
|
||||
|
||||
.title {
|
||||
white-space: nowrap;
|
||||
margin-right: 0.2rem;
|
||||
|
@ -683,8 +610,10 @@
|
|||
align-items: center;
|
||||
height: 0.26rem;
|
||||
}
|
||||
|
||||
.content {
|
||||
width: 100%;
|
||||
|
||||
.ant-radio-group {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr 1fr;
|
||||
|
@ -692,10 +621,12 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.ability-to-type {
|
||||
.content {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr 1fr 1fr;
|
||||
|
||||
div {
|
||||
margin-right: 0.15rem;
|
||||
cursor: pointer;
|
||||
|
@ -711,6 +642,7 @@
|
|||
align-items: center;
|
||||
font-weight: 500;
|
||||
}
|
||||
|
||||
.ability-to-type-down {
|
||||
background: #0087ff;
|
||||
color: #fff;
|
||||
|
@ -718,19 +650,23 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.ant-modal-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.ant-modal-footer {
|
||||
border: 0;
|
||||
text-align: center;
|
||||
padding-bottom: 0.2rem;
|
||||
|
||||
button {
|
||||
margin-right: 0.2rem;
|
||||
border-radius: 0.08rem;
|
||||
}
|
||||
}
|
||||
|
||||
.showBg {
|
||||
height: 0.24rem;
|
||||
width: 0.24rem;
|
||||
|
|
|
@ -12,75 +12,22 @@
|
|||
</div>
|
||||
<div class="right">
|
||||
<div class="sousuokuang">
|
||||
<a-input-search
|
||||
v-model:value="name"
|
||||
placeholder="请输入关键词"
|
||||
enter-button="搜索"
|
||||
size="large"
|
||||
@search="getList('init')"
|
||||
/>
|
||||
<a-input-search v-model:value="name" placeholder="请输入关键词" enter-button="搜索" size="large"
|
||||
@search="getList('init')" />
|
||||
</div>
|
||||
<a-popconfirm
|
||||
v-if="checkedListAbility.length != 0"
|
||||
title="是否进行批量删除?"
|
||||
ok-text="是"
|
||||
cancel-text="否"
|
||||
@confirm="delList"
|
||||
@cancel="cancel"
|
||||
>
|
||||
<a-button
|
||||
type="primary"
|
||||
style="
|
||||
width: 1rem;
|
||||
height: 0.36rem;
|
||||
margin-right: 0.12rem;
|
||||
border-radius: 2px;
|
||||
background: #fff;
|
||||
color: #0558e1;
|
||||
"
|
||||
@click="ceshiFunction()"
|
||||
>
|
||||
<a-popconfirm v-if="checkedListAbility.length != 0" title="是否进行批量删除?" ok-text="是" cancel-text="否"
|
||||
@confirm="handleDelete" @cancel="cancel">
|
||||
<a-button type="primary" class="collect-btn" @click="ceshiFunction()">
|
||||
批量删除
|
||||
</a-button>
|
||||
</a-popconfirm>
|
||||
<a-button
|
||||
v-else
|
||||
type="primary"
|
||||
style="
|
||||
width: 1rem;
|
||||
height: 0.36rem;
|
||||
margin-right: 0.12rem;
|
||||
border-radius: 2px;
|
||||
background: #fff;
|
||||
color: #0558e1;
|
||||
"
|
||||
@click="ceshiFunction()"
|
||||
>
|
||||
<a-button v-else type="primary" class="collect-btn" @click="ceshiFunction()">
|
||||
批量删除
|
||||
</a-button>
|
||||
<a-button
|
||||
type="primary"
|
||||
style="
|
||||
width: 1rem;
|
||||
height: 0.36rem;
|
||||
border-radius: 2px;
|
||||
background: #fff;
|
||||
color: #0558e1;
|
||||
"
|
||||
@click="collection"
|
||||
>
|
||||
<a-button type="primary" v-if="!itShowXiHaiAn" class="collect-btn" @click="collection">
|
||||
批量收藏
|
||||
</a-button>
|
||||
<a-button
|
||||
type="primary"
|
||||
style="
|
||||
width: 1rem;
|
||||
height: 0.36rem;
|
||||
margin-left: 0.12rem;
|
||||
border-radius: 2px;
|
||||
"
|
||||
@click="apply"
|
||||
>
|
||||
<a-button type="primary" class="apply-btn" @click="apply">
|
||||
一键申请
|
||||
</a-button>
|
||||
</div>
|
||||
|
@ -89,11 +36,11 @@
|
|||
<div class="item" v-for="(val, valIndex) in list" :key="val.id">
|
||||
<div class="item-top" @click="showBottom(val)">
|
||||
<div>
|
||||
<a-checkbox
|
||||
:checked="val.checked"
|
||||
@click.stop="checkedDept(val)"
|
||||
></a-checkbox>
|
||||
<span style="margin-left: 0.2rem">
|
||||
<a-checkbox :checked="val.checked" @click.stop="checkedDept(val)"></a-checkbox>
|
||||
<span style="margin-left: 0.2rem" v-if="itShowXiHaiAn">
|
||||
{{ val.deptName}}
|
||||
</span>
|
||||
<span style="margin-left: 0.2rem" v-else>
|
||||
{{ val.deptName + '(' + val.count + ')' }}
|
||||
</span>
|
||||
</div>
|
||||
|
@ -101,121 +48,76 @@
|
|||
<UpOutlined v-show="val.show" />
|
||||
</div>
|
||||
<div class="item-bottom" v-show="val.show">
|
||||
<a-list
|
||||
class="demo-loadmore-list"
|
||||
:loading="val.initLoading"
|
||||
item-layout="horizontal"
|
||||
:data-source="val.children"
|
||||
>
|
||||
<a-list class="demo-loadmore-list" :loading="val.initLoading" item-layout="horizontal"
|
||||
:data-source="val.children">
|
||||
<template #renderItem="{ item }">
|
||||
<a-list-item>
|
||||
<a-skeleton avatar :title="false" :loading="item.loading" active>
|
||||
<a-list-item-meta
|
||||
:description="
|
||||
<a-list-item-meta :description="
|
||||
item.description ||
|
||||
(JSON.parse(item.note1) &&
|
||||
(item.note1 && JSON.parse(item.note1) &&
|
||||
JSON.parse(item.note1)[0] &&
|
||||
JSON.parse(item.note1)[0].channelName +
|
||||
'等' +
|
||||
JSON.parse(item.note1).length +
|
||||
'个摄像头') ||
|
||||
'--'
|
||||
"
|
||||
style="position: relative"
|
||||
>
|
||||
''
|
||||
" style="position: relative">
|
||||
<template #title>
|
||||
<div>
|
||||
<a-tooltip>
|
||||
<template #title>{{ item.resourceName }}</template>
|
||||
<span
|
||||
@click="
|
||||
<span @click="
|
||||
showItem(
|
||||
item.resourceId,
|
||||
item.type,
|
||||
item.delFlag,
|
||||
item.note1
|
||||
)
|
||||
"
|
||||
style="cursor: pointer"
|
||||
class="name"
|
||||
>
|
||||
" style="cursor: pointer" class="name">
|
||||
{{ item.resourceName }}
|
||||
</span>
|
||||
</a-tooltip>
|
||||
<span class="type">{{ item.type }}</span>
|
||||
</div>
|
||||
<!-- // todo -->
|
||||
<span class="time">
|
||||
加购时间:{{ item.time }}
|
||||
<a-popconfirm
|
||||
title="是否删除该记录?"
|
||||
ok-text="是"
|
||||
cancel-text="否"
|
||||
@confirm="delOne(item, valIndex)"
|
||||
@cancel="cancel"
|
||||
>
|
||||
<a-button
|
||||
type="primary"
|
||||
style="
|
||||
<span v-if="!itShowXiHaiAn">加购时间:{{ item.time }}</span>
|
||||
<a-popconfirm title="是否删除该记录?" ok-text="是" cancel-text="否" @confirm="handleDelete(item, valIndex)"
|
||||
@cancel="cancel">
|
||||
<a-button type="primary" style="
|
||||
width: 0.7rem;
|
||||
height: 0.3rem;
|
||||
margin-left: 0.12rem;
|
||||
border-radius: 2px;
|
||||
background: #fff;
|
||||
color: #0558e1;
|
||||
"
|
||||
@click="del"
|
||||
>
|
||||
" @click="del">
|
||||
删除
|
||||
</a-button>
|
||||
</a-popconfirm>
|
||||
</span>
|
||||
<svg
|
||||
t="1652233950228"
|
||||
class="icon"
|
||||
viewBox="0 0 1024 1024"
|
||||
version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
p-id="5970"
|
||||
data-spm-anchor-id="a313x.7781069.0.i8"
|
||||
width="50"
|
||||
height="50"
|
||||
v-if="item.delFlag == 4 || item.delFlag == 5"
|
||||
style="position: absolute; top: 0; left: 1rem"
|
||||
>
|
||||
<svg t="1652233950228" class="icon" viewBox="0 0 1024 1024" version="1.1"
|
||||
xmlns="http://www.w3.org/2000/svg" p-id="5970" data-spm-anchor-id="a313x.7781069.0.i8" width="50"
|
||||
height="50" v-if="item.delFlag == 4 || item.delFlag == 5"
|
||||
style="position: absolute; top: 0; left: 1rem">
|
||||
<path
|
||||
d="M955.22053 256C813.82053 11.2 500.72053-72.6 255.92053 68.8S-72.67947 523.2 68.72053 768 523.22053 1096.6 768.02053 955.2c244.7-141.2 328.6-454.1 187.4-698.8 0-0.1-0.1-0.3-0.2-0.4zM762.02053 944.7c-239 138.1-544.8 56.2-682.9-182.8S22.92053 217.1 261.92053 79.1s544.8-56.2 682.9 182.8c137.9 239 56.1 544.6-182.8 682.8z"
|
||||
fill="#515151"
|
||||
opacity=".5"
|
||||
p-id="5971"
|
||||
></path>
|
||||
fill="#515151" opacity=".5" p-id="5971"></path>
|
||||
<path
|
||||
d="M898.12053 289.2C775.02053 76 502.42053 2.9 289.22053 126 76.02053 249.1 3.02053 521.6 126.02053 734.8 249.12053 948 521.62053 1021.1 734.82053 898 947.92053 774.9 1021.02053 502.4 898.12053 289.2zM731.62053 892.8C521.32053 1014.3 252.42053 942.2 131.02053 731.9 9.52053 521.6 81.62053 252.7 291.92053 131.3 502.12053 9.9 771.02053 81.8 892.42053 292c121.5 210.3 49.5 479.3-160.8 600.8z"
|
||||
fill="#515151"
|
||||
opacity=".5"
|
||||
p-id="5972"
|
||||
></path>
|
||||
fill="#515151" opacity=".5" p-id="5972"></path>
|
||||
<path
|
||||
d="M323.62053 176.8c3.6-2 6 0.8 8.8 2.8 6 4.4 12.4 8.8 18.8 12.8 7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-3.6 13.6-5.6 20.8 4.8 6 10 11.6 15.2 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.8-5.6 2.4-7.7 2.4l-22.4 0.8c-4.4 6.8-8.4 13.6-12.8 20-1.6 2.4-4 5.1-7.2 4-2.4-1.9-3.9-4.7-4.4-7.7l-7.2-20.5-25.2-6.4c-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 4-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.7-0.8-0.3-1.6 0.6-2zM200.72053 289.2c3.6-2 6 0.8 8.8 2.8 6.4 4.4 12.4 8.4 18.8 12.8 7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-3.6 13.6-5.6 20.8 4.8 6 10 11.6 14.8 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.4-5.6 2.4-7.7 2.4l-22.4 0.8c-4.4 6.8-8.8 13.6-12.8 20-1.6 2.4-4 5.1-7.2 4-2.2-2-3.8-4.7-4.4-7.7l-7.2-20.5c-8.4-2-16.8-4.4-25.2-6.4-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 3.6-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.4-1.2 0-1.6 0.8-2.4l0.2 0.4z m276.6-159.6c3.6-2 6 0.8 8.8 2.8 6.4 4.4 12.4 8.4 18.8 12.8 7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-3.6 14-5.6 20.8 4.8 6 10 12 15.2 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.8-5.6 2.4-7.7 2.4l-22.4 0.8c-4.4 6.8-8.8 13.6-12.8 20-1.6 2.4-4 5.1-7.2 4-2.2-2-3.8-4.7-4.4-7.7l-7.2-20.5-25.2-6.4c-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 4-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.8-1.2-0.4-1.6 0.4-2.4l0.2 0.4z m141.9 29.6c3.6-2 6 0.8 8.8 2.8l18.8 12.8c7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-3.6 14-5.6 20.8 4.8 6 10 12 15.2 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.8-5.6 2.4-7.7 2.4-7.7 0.4-15.2 0.8-22.4 0.8-4.4 6.8-8.4 13.2-12.8 20-1.6 2.4-4 5.1-7.2 4-2.4-1.9-3.9-4.7-4.4-7.7l-7.2-20.5c-8.4-2-16.8-4.4-25.2-6.4-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 4-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.5-1.2 0.2-1.6 0.6-2zM150.02053 430c3.6-2 6 0.8 8.8 2.8 6.4 4.4 12.4 8.4 18.8 12.8 7.2-2.4 14.4-5.1 21.6-7.7 3.6-1.2 6-2.8 8.8 0.4 2.4 2.8 0.4 6.4-0.4 8.8-2 6.8-4 14-5.6 20.8 4.8 6 10 11.6 15.2 17.6 2.4 2.8 4.4 5.6 2.8 8.4-1.2 2.8-5.6 2.4-7.7 2.4l-22.4 0.8c-4.4 6.8-8.8 13.6-12.8 20-1.6 2.4-4 5.1-7.2 4-2.2-2-3.8-4.7-4.4-7.7l-7.2-20.5-25.2-6.4c-2.3-1.2-3.6-3.8-3.2-6.4 1.3-1.8 2.9-3.3 4.8-4.4 3.6-3.2 7.7-6.8 11.6-10 1.9-1.3 3.6-2.7 5.1-4.4-0.4-6.8-1.2-13.6-1.6-20.5-0.7-2.9-0.9-5.9-0.4-8.8-0.7-0.8-0.3-1.5 0.6-2z m558.9 414.4c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.2-3.2-5.6-3.6-7.7-4-6.8-2-14-3.6-20.8-5.6-2.8-7.2-5.1-14.4-7.7-21.6-1.2-3.6-2.8-6.4-5.6-6.8-2.8-0.4-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.1 4.4-0.7 6.4-1.6l14.4-4.8c2.1-0.8 4.2-1.5 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0.5-1.1 0.8-1.1 1.6-1.1h0.1z m-158.8 50c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.1-3.7-5.6-3.6-7.7-4-6.8-1.6-14-3.6-20.8-5.6l-7.7-22c-1.2-3.6-2.8-6.4-5.6-6.8-2.8-0.4-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.3 4.3-0.9 6.4-1.6l14.4-4.8c2-1 4.2-1.7 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0.4-0.8 0.8-0.8 1.7-0.7z m276.5-159.6c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.2-3.2-5.6-3.6-7.7-4-6.8-2-14-3.6-20.8-5.6-2.8-7.2-5.1-14.4-7.7-21.6-1.2-3.6-2.8-6.4-5.6-6.8s-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.2 4.4-0.7 6.4-1.6l14.4-4.8c2.1-0.8 4.2-1.5 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0-0.8 0.8-1.2 1.6-1.2l0.1 0.1z m45.6-137.6c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.2-3.2-5.6-3.6-7.7-4-6.8-1.6-14-3.6-20.8-5.6l-7.7-22c-1.2-3.6-2.8-6.4-5.6-6.8-2.8-0.4-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.3 4.3-0.9 6.4-1.6l14.4-4.8c2.1-0.8 4.2-1.5 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0.2-0.7 0.6-0.7 1.4-0.7h0.3zM402.72053 868c3.6-2.4 2.4-5.6 2-8.8l-1.6-22.4 17.2-14.8c2.8-2.4 5.1-4 4-7.7-1.2-3.2-5.6-3.6-7.7-4-6.8-2-14-3.6-20.8-5.6-2.8-7.2-5.1-14.4-7.7-21.6-1.2-3.6-2.8-6.4-5.6-6.8-2.8-0.4-4.8 3.6-5.6 5.1l-12 19.2-24 1.2c-2.8 0-6.8 0.8-6.8 4.4 0.5 3 2 5.7 4.4 7.7 4.8 5.6 9.2 11.2 14 16.4l-7.2 25.2c-0.3 2.7 1.4 5.2 4 6 2.2-0.3 4.3-0.9 6.4-1.6l14.4-4.8c2.1-0.8 4.2-1.5 6.4-2 5.6 4 11.2 7.7 16.8 11.6 2.2 2.1 4.8 3.6 7.7 4.4 0.5-0.8 1-1.1 1.7-1.1z"
|
||||
fill="#515151"
|
||||
opacity=".5"
|
||||
p-id="5973"
|
||||
></path>
|
||||
fill="#515151" opacity=".5" p-id="5973"></path>
|
||||
<path
|
||||
d="M386.42053 590.4l-43.8-75.9L207.02053 592.7l10.2 17.7L334.02053 543l23.4 40.4-90.5 52.2-13.5-23.4-18.7 10.8 53.1 92c9.1 15.8 21.2 19.5 36.4 10.7l98.8-57c6.2-3.6 11-9.3 13.4-16.1-1.4-15.9-6.2-31.2-14.2-45l-21.4 4.8c6.7 10.3 11 21.9 12.8 34-1 3.3-3.2 6-6.1 7.8l-88.3 51c-6.2 3.6-11.1 2.1-14.8-4.3l-27.3-47.4 109.3-63.1z m2.9-103.2l10.4 18.1 65.6-37.9 79.9 138.4 18.6-10.8-55.9-96.9c18.8-0.9 43.2-0.6 73 0.7l1.5-23.1c-29.8-0.3-58.4 0.4-86 2.6l-12.5-21.6 74.9-43.2-10.4-18.1-159.1 91.8zM669.52053 329l38.2 66.2 61.4-35.4-38.1-66.1-61.5 35.3z m72.4 24.2l-26.3 15.2-19-33 26.3-15.2 19 33zM599.02053 356.7l7.9 13.7-23.3 13.5 9.8 17 21.8-12.6c7.5 18.7 6.6 39.6-2.5 57.6l20.7 4.4c10.3-23.1 10.3-49.4 0-72.5l18.8-10.9c6 9.2 10.7 19.2 14.2 29.7 0.3 5-2.6 9.7-7.2 11.7-2.9 1.2-6.4 2.8-10.9 4.9l14.1 14.1c3.7-1.3 7.3-2.9 10.7-4.8 8.6-3.9 14.4-12.2 15.2-21.6-5.4-22.1-14.6-43-27.4-61.8l-36.1 20.8-7.9-13.7-17.9 10.5z m29.9 108.1l10 17.4 53.2-30.7c-7.8 23.7-20.6 45.4-37.5 63.6l20.6 11.1c18.6-24.2 30-53.1 33-83.4l29.8 51.5 18.4-10.7-29.8-51.5c27.4 11.5 57.2 16.3 86.9 14.1l3.5-23.5c-24.7 5.1-50.1 5-74.8-0.1l53.5-30.9-10-17.3-69.3 40-7.3-12.6-18.4 10.7L698.02053 425l-69.1 39.8z"
|
||||
fill="#515151"
|
||||
opacity=".5"
|
||||
p-id="5974"
|
||||
></path>
|
||||
fill="#515151" opacity=".5" p-id="5974"></path>
|
||||
</svg>
|
||||
</template>
|
||||
<template #avatar>
|
||||
<a-checkbox
|
||||
:checked="item.checked"
|
||||
@click.stop="checkedItem(val, item)"
|
||||
></a-checkbox>
|
||||
<div
|
||||
class="tx"
|
||||
:class="
|
||||
<a-checkbox :checked="item.checked" @click.stop="checkedItem(val, item)"></a-checkbox>
|
||||
<div class="tx" v-if="!itShowXiHaiAn" :class="
|
||||
item.type == '基础设施'
|
||||
? 'sxt'
|
||||
: item.type == '应用资源'
|
||||
|
@ -229,36 +131,19 @@
|
|||
: item.componentType == '业务组件'
|
||||
? 'ywzj'
|
||||
: ''
|
||||
"
|
||||
></div>
|
||||
"></div>
|
||||
</template>
|
||||
</a-list-item-meta>
|
||||
</a-skeleton>
|
||||
</a-list-item>
|
||||
</template>
|
||||
</a-list>
|
||||
<!-- <a-pagination
|
||||
v-model:current="val.pageNum"
|
||||
v-model:page-size="val.pageSize"
|
||||
:total="val.count"
|
||||
@change="pageChange2(val)"
|
||||
:key="showKey"
|
||||
:hideOnSinglePage="true"
|
||||
></a-pagination> -->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a-modal
|
||||
v-model:visible="videoVisible"
|
||||
title="已申请摄像头列表"
|
||||
@ok="videoVisible = false"
|
||||
>
|
||||
<a-table
|
||||
:columns="columns"
|
||||
:data-source="xVideoList"
|
||||
bordered
|
||||
:pagination="{ defaultPageSize: 6 }"
|
||||
>
|
||||
<a-modal v-model:visible="videoVisible" title="已申请摄像头列表" @ok="videoVisible = false">
|
||||
<a-table :columns="columns" :data-source="xVideoList" bordered :pagination="{ defaultPageSize: 6 }">
|
||||
<template #bodyCell="{ column, text }">
|
||||
<!-- <template>
|
||||
<a>{{ text }}</a>
|
||||
|
@ -266,19 +151,7 @@
|
|||
</template>
|
||||
</a-table>
|
||||
</a-modal>
|
||||
<!-- <a-pagination
|
||||
v-model:current="pageNum"
|
||||
v-model:page-size="pageSize"
|
||||
:page-size-options="pageSizeOptions"
|
||||
:total="total"
|
||||
show-size-changer
|
||||
@change="pageChange"
|
||||
:key="showKey"
|
||||
>
|
||||
<template #buildOptionText="props">
|
||||
<span>{{ props.value }}条/页</span>
|
||||
</template>
|
||||
</a-pagination> -->
|
||||
|
||||
</template>
|
||||
<script setup>
|
||||
import { onMounted, ref } from 'vue'
|
||||
|
@ -291,12 +164,12 @@
|
|||
scInsert,
|
||||
selectResourceCarGroupByDept,
|
||||
selectResourceListByDept,
|
||||
selectResourceListByDeptName,
|
||||
} from '@/api/personalCenter'
|
||||
const router = useRouter()
|
||||
// 分页
|
||||
const pageNum = ref('1')
|
||||
const pageSize = ref('99999')
|
||||
// const pageSizeOptions = ref(['5', '10', '20'])
|
||||
const videoVisible = ref(false)
|
||||
const xVideoList = ref([])
|
||||
const total = ref(0)
|
||||
|
@ -318,18 +191,13 @@
|
|||
const name = ref('')
|
||||
const type = ref('')
|
||||
const list = ref([])
|
||||
const itShowXiHaiAn = ref(whoShow.itShowXiHaiAn);
|
||||
// 初始化
|
||||
onMounted(() => {
|
||||
getList('init')
|
||||
})
|
||||
// 收藏
|
||||
const collection = () => {
|
||||
// console.log(
|
||||
// '收藏=================》',
|
||||
// checkedList.value,
|
||||
// list.value,
|
||||
// scInsert
|
||||
// )
|
||||
let scArr = []
|
||||
if (checkedListAbility.value.length === 0) {
|
||||
message.warning('请选择需要收藏的数据')
|
||||
|
@ -498,6 +366,10 @@
|
|||
pageSize: pageSize.value,
|
||||
name: name.value,
|
||||
}).then((res) => {
|
||||
console.log('res---获取信息--------->', res);
|
||||
if (res.data.code !== 0) {
|
||||
return message.error(res.data.msg)
|
||||
}
|
||||
let statistics = 0
|
||||
res.data.data.list.map((val) => {
|
||||
val.initLoading = true
|
||||
|
@ -524,30 +396,14 @@
|
|||
}
|
||||
// console.log('整体页面加载次数===============>', load.value)
|
||||
// 判断是否有已打开项,如果有重新载入之后自动打开
|
||||
debugger
|
||||
list.value = res.data.data.list
|
||||
if (index || index === 0) {
|
||||
debugger
|
||||
list.value[index].show = true
|
||||
// console.log('1111', list.value[index])
|
||||
showNew(list.value[index])
|
||||
// showBottom()
|
||||
}
|
||||
// list.value = res.data.data.list
|
||||
console.log(
|
||||
'重新请求值',
|
||||
index,
|
||||
// res.data.data.list[index].show,
|
||||
list.value
|
||||
)
|
||||
list.value = res.data.data.list || []
|
||||
console.log('list.value------------>', list.value);
|
||||
|
||||
if (index || index === 0) {
|
||||
list.value[index].show = true
|
||||
showNew(list.value[index])
|
||||
}
|
||||
total.value = res.data.data.deptCount
|
||||
console.log(
|
||||
'重新请求值2',
|
||||
index,
|
||||
// res.data.data.list[index].show,
|
||||
list.value
|
||||
)
|
||||
showKey.value++
|
||||
if (type == 'init' || type == 'changePage') {
|
||||
getListByDeptId(list.value[0])
|
||||
|
@ -555,21 +411,29 @@
|
|||
})
|
||||
}
|
||||
// 通过deptid查询列表
|
||||
const getListByDeptId = (item) => {
|
||||
console.log(item, 'item')
|
||||
const getListByDeptId = async (item) => {
|
||||
console.log('通过deptid或者deptName查询列表------------>', item);
|
||||
if (item.children.length == 0) {
|
||||
selectResourceListByDept({
|
||||
let _obj = {
|
||||
pageNum: item.pageNum,
|
||||
pageSize: item.pageSize,
|
||||
deptId: item.deptId,
|
||||
name: name.value,
|
||||
}).then((res) => {
|
||||
// console.log(
|
||||
// '根据部门查询=============>',
|
||||
// item,
|
||||
// checkedListAbility.value
|
||||
// )
|
||||
res.data.data.map((val) => {
|
||||
}
|
||||
let res;
|
||||
// 西海岸 todo
|
||||
if (whoShow.itShowXiHaiAn) {
|
||||
_obj.deptName = item.deptName;
|
||||
res = await selectResourceListByDeptName(_obj)
|
||||
} else {
|
||||
_obj.deptId = item.deptId || '';
|
||||
res = await selectResourceListByDept(_obj)
|
||||
}
|
||||
console.log('res----根据部门查询-------->', res);
|
||||
item.initLoading = false
|
||||
if (res.data.code !== 0) {
|
||||
return message.error(res.data.msg)
|
||||
}
|
||||
(res.data.data || []).map((val) => {
|
||||
if (
|
||||
(!item.load || item.load < Number(item.pageNum)) &&
|
||||
load.value <= Number(pageNum.value)
|
||||
|
@ -588,11 +452,6 @@
|
|||
val.checked = false
|
||||
}
|
||||
} else {
|
||||
// console.log(
|
||||
// '第二次加载++++++++++++++',
|
||||
// checkedListAbility.value,
|
||||
// val.id
|
||||
// )
|
||||
if (
|
||||
checkedListAbility.value.indexOf(val.id) > -1 ||
|
||||
(item.load < Number(item.pageNum) &&
|
||||
|
@ -611,11 +470,8 @@
|
|||
if (item.load < Number(item.pageNum)) {
|
||||
item.load = Number(item.pageNum)
|
||||
}
|
||||
// console.log('加载次数==============>>', item.load)
|
||||
item.children = res.data.data
|
||||
item.show = true
|
||||
item.initLoading = false
|
||||
})
|
||||
}
|
||||
}
|
||||
// 显示资源信息
|
||||
|
@ -641,16 +497,17 @@
|
|||
}
|
||||
// 点击部门多选框
|
||||
const checkedDept = (item) => {
|
||||
// console.log(
|
||||
// '点击部门多选框==================>',
|
||||
// item,
|
||||
// checkedList.value,
|
||||
// checkAll.value
|
||||
// )
|
||||
console.log(
|
||||
'点击部门多选框==================>',
|
||||
item,
|
||||
checkedList.value,
|
||||
checkAll.value
|
||||
)
|
||||
item.checked = !item.checked
|
||||
if (item.checked) {
|
||||
if (item.children.length > 0) {
|
||||
item.children.map((val) => {
|
||||
console.log('val.id------------>', val.id);
|
||||
if (checkedListAbility.value.indexOf(val.id) == -1) {
|
||||
checkedListAbility.value.push(val.id)
|
||||
item.checkedList.push(val.id)
|
||||
|
@ -786,15 +643,28 @@
|
|||
}
|
||||
//ceshiFunction
|
||||
const ceshiFunction = () => {
|
||||
debugger
|
||||
// debugger
|
||||
if (checkedListAbility.value.length == 0) {
|
||||
message.warning('请先选择需要操作的数据!')
|
||||
}
|
||||
}
|
||||
const delOne = (item, index) => {
|
||||
// console.log(item)
|
||||
// delOne delList handleDelete
|
||||
const handleDelete = (item, index) => {
|
||||
console.log('item------------>', item);
|
||||
let delArr = [];
|
||||
// 单个删除
|
||||
if (item) {
|
||||
delArr = [item.id]
|
||||
} else {
|
||||
// 批量删除
|
||||
if (checkedListAbility.value.length == 0) {
|
||||
return message.warning('请先选择需要操作的数据!')
|
||||
} else {
|
||||
delArr = checkedListAbility.value.map(v=>v.id)
|
||||
}
|
||||
}
|
||||
sgcDel({
|
||||
ids: [item.id],
|
||||
ids: delArr
|
||||
}).then((res) => {
|
||||
if (res.data.msg === 'success') {
|
||||
message.success('删除成功')
|
||||
|
@ -838,8 +708,15 @@
|
|||
} else {
|
||||
let arr = []
|
||||
let delArr = []
|
||||
console.log('list.value------------>', list.value);
|
||||
|
||||
list.value.map((val) => {
|
||||
val.arr = val.children.filter((item) => {
|
||||
if (whoShow.itShowXiHaiAn) {
|
||||
item.type = '基础设施';
|
||||
item.resourceName = '摄像头列表';
|
||||
item.resourceId = '1522550195055828996';
|
||||
}
|
||||
console.log('选择的数据=============>', item)
|
||||
if (checkedListAbility.value.indexOf(item.id) > -1) {
|
||||
if (item.delFlag == 0) {
|
||||
|
@ -866,27 +743,33 @@
|
|||
</script>
|
||||
<style lang="less" scoped>
|
||||
.ant-list {
|
||||
|
||||
// max-height: 5.3rem;
|
||||
.ant-list-item {
|
||||
width: 100%;
|
||||
padding: 0.24rem 0.2rem;
|
||||
|
||||
.ant-list-item-meta {
|
||||
align-items: center;
|
||||
|
||||
:deep(.ant-list-item-meta-avatar) {
|
||||
padding-left: 0.2rem;
|
||||
margin-right: 0.3rem;
|
||||
}
|
||||
|
||||
.time {
|
||||
margin-left: 0.3rem;
|
||||
font-size: 0.12rem;
|
||||
color: #ccc;
|
||||
}
|
||||
|
||||
.type {
|
||||
margin-left: 0.1rem;
|
||||
padding: 0.03rem 0.1rem;
|
||||
background: #00a7e3;
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
:deep(.ant-list-item-meta-description) {
|
||||
margin-top: 0.1rem;
|
||||
max-height: 0.22rem;
|
||||
|
@ -901,18 +784,22 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.ant-list::-webkit-scrollbar {
|
||||
width: 0 !important;
|
||||
}
|
||||
|
||||
.top {
|
||||
margin: 0.1rem;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
border-bottom: 1px solid #f0f0f0;
|
||||
|
||||
.left {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
p {
|
||||
height: 0.18rem;
|
||||
line-height: 0.14rem;
|
||||
|
@ -920,35 +807,44 @@
|
|||
margin-bottom: 0;
|
||||
border-left: 1px solid #212121;
|
||||
}
|
||||
|
||||
.reverseSelection {
|
||||
margin-right: 0.1rem;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.reverseSelection:hover {
|
||||
color: #0058e1;
|
||||
}
|
||||
|
||||
span {
|
||||
margin-left: 0.1rem;
|
||||
}
|
||||
|
||||
.num {
|
||||
margin-left: 0;
|
||||
color: #0087ff;
|
||||
font-size: 0.2rem;
|
||||
}
|
||||
}
|
||||
|
||||
.right {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-around;
|
||||
|
||||
button {
|
||||
margin-bottom: 0.1rem;
|
||||
}
|
||||
|
||||
.sousuokuang {
|
||||
width: 3.25rem;
|
||||
margin: 0.1rem 0rem 0.21rem 0.2rem;
|
||||
|
||||
.ant-input-search {
|
||||
max-width: 3rem;
|
||||
}
|
||||
|
||||
:deep(.ant-input) {
|
||||
width: 2.4rem;
|
||||
height: 0.36rem;
|
||||
|
@ -956,9 +852,11 @@
|
|||
color: #000;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
:deep(.ant-input-group-addon) {
|
||||
display: inline-block;
|
||||
margin-left: 0.1rem;
|
||||
|
||||
.ant-input-search-button {
|
||||
width: 0.65rem;
|
||||
height: 0.36rem;
|
||||
|
@ -969,6 +867,7 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 0.2rem;
|
||||
color: #000000;
|
||||
|
@ -977,6 +876,7 @@
|
|||
margin-top: 0.2rem;
|
||||
margin-left: 0.2rem;
|
||||
}
|
||||
|
||||
.tab {
|
||||
margin-top: 0.1rem;
|
||||
margin-left: 0.2rem;
|
||||
|
@ -984,6 +884,7 @@
|
|||
display: flex;
|
||||
font-size: 0.14rem;
|
||||
color: #999999;
|
||||
|
||||
div {
|
||||
width: 0.7rem;
|
||||
height: 0.24rem;
|
||||
|
@ -994,11 +895,13 @@
|
|||
color: #666666;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.tabclass {
|
||||
border: 0.01rem solid #0087ff;
|
||||
color: #0087ff;
|
||||
}
|
||||
}
|
||||
|
||||
.name {
|
||||
max-width: 4.15rem;
|
||||
overflow: hidden;
|
||||
|
@ -1007,13 +910,16 @@
|
|||
-o-text-overflow: ellipsis;
|
||||
word-break: break-all;
|
||||
}
|
||||
|
||||
.name:hover {
|
||||
color: #0087ff;
|
||||
}
|
||||
|
||||
.items {
|
||||
height: 7.25rem;
|
||||
padding: 0 0.3rem;
|
||||
overflow-y: scroll;
|
||||
|
||||
.item {
|
||||
.item-top {
|
||||
width: 100%;
|
||||
|
@ -1027,65 +933,94 @@
|
|||
padding: 0 0.1rem;
|
||||
margin-top: 0.08rem;
|
||||
}
|
||||
|
||||
.item-top:hover {
|
||||
cursor: pointer;
|
||||
// 0058e1 透明度 0.5
|
||||
background: rgba(0, 88, 225, 0.8);
|
||||
color: white;
|
||||
|
||||
:deep(.anticon) {
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
|
||||
.item-bottom {
|
||||
padding: 0 0.2rem;
|
||||
border: 1px solid rgba(0, 135, 225, 0.1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.ant-list-item-meta-avatar) {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.ant-pagination {
|
||||
margin-bottom: 0.2rem;
|
||||
}
|
||||
|
||||
.tx {
|
||||
display: inline-block;
|
||||
width: 0.8rem;
|
||||
height: 0.8rem;
|
||||
margin-left: 0.1rem;
|
||||
}
|
||||
|
||||
.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%;
|
||||
}
|
||||
|
||||
:deep(.ant-list-item-meta-title) {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
|
||||
div {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
}
|
||||
|
||||
.collect-btn {
|
||||
width: 1rem;
|
||||
height: 0.36rem;
|
||||
border-radius: 2px;
|
||||
background: #fff;
|
||||
color: #0558e1;
|
||||
}
|
||||
|
||||
.apply-btn {
|
||||
width: 1rem;
|
||||
height: 0.36rem;
|
||||
margin-left: 0.12rem;
|
||||
border-radius: 2px;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
@confirm="endThis"
|
||||
@cancel="cancel"
|
||||
>
|
||||
<a-button type="primary" danger>流程终止</a-button>
|
||||
<a-button type="primary" danger>撤回申请</a-button>
|
||||
</a-popconfirm>
|
||||
<div v-else></div>
|
||||
</div>
|
||||
|
@ -54,10 +54,10 @@
|
|||
const endThis = () => {
|
||||
endProcess({ instanceId: props.refObj.processInstanceId }).then((res) => {
|
||||
if (res.data.code == 0) {
|
||||
message.success('流程终止成功!')
|
||||
message.success('撤回申请成功!')
|
||||
mybus.emit('closeModal', { type: '能力上架', index: 2 })
|
||||
} else {
|
||||
message.warning('流程终止失败!')
|
||||
message.warning('撤回申请失败!')
|
||||
}
|
||||
})
|
||||
}
|
||||
|
|
|
@ -1,57 +1,47 @@
|
|||
<template>
|
||||
<div id="aside-menu-container">
|
||||
<a-menu
|
||||
id="aside-menu"
|
||||
v-model:openKeys="openKeys"
|
||||
v-model:selectedKeys="selectedKeys"
|
||||
mode="inline"
|
||||
>
|
||||
<a-menu-item
|
||||
class="aside-menu-item"
|
||||
v-for="item in menuList"
|
||||
:key="item.key"
|
||||
@click="handleClick(item)"
|
||||
>
|
||||
<i
|
||||
class="icon"
|
||||
:style="{
|
||||
<a-menu id="aside-menu" v-model:openKeys="openKeys" v-model:selectedKeys="selectedKeys" mode="inline">
|
||||
<a-menu-item class="aside-menu-item" v-for="item in menuList" :key="item.key" @click="handleClick(item)">
|
||||
<i class="icon" :style="{
|
||||
backgroundImage:
|
||||
selectedKeys == item.key
|
||||
? 'url(' + item.imgActive + ')'
|
||||
: 'url(' + item.img + ')',
|
||||
}"
|
||||
></i>
|
||||
}"></i>
|
||||
<span>{{ item.title }}</span>
|
||||
</a-menu-item>
|
||||
</a-menu>
|
||||
</div>
|
||||
</template>
|
||||
<script>
|
||||
import { defineComponent, ref } from 'vue'
|
||||
import { defineComponent, ref, onMounted } from 'vue'
|
||||
import mybus from '@/myplugins/mybus'
|
||||
|
||||
export default defineComponent({
|
||||
components: {},
|
||||
|
||||
setup() {
|
||||
const menuList = [
|
||||
{
|
||||
const itShowXiHaiAn = whoShow.itShowXiHaiAn;
|
||||
const car = {
|
||||
title: '申购车',
|
||||
img: require('@/assets/personalCenter/demand.png'),
|
||||
imgActive: require('@/assets/personalCenter/demandactive.png'),
|
||||
key: 'PurchaseVehicle',
|
||||
},
|
||||
}
|
||||
const apply = {
|
||||
title: '我的申请',
|
||||
img: require('@/assets/personalCenter/apply.png'),
|
||||
imgActive: require('@/assets/personalCenter/applyactive.png'),
|
||||
key: 'apply',
|
||||
}
|
||||
let menuList = [
|
||||
car,
|
||||
{
|
||||
title: '我的发布',
|
||||
img: require('@/assets/personalCenter/push.png'),
|
||||
imgActive: require('@/assets/personalCenter/pushactive.png'),
|
||||
key: 'push',
|
||||
},
|
||||
{
|
||||
title: '我的申请',
|
||||
img: require('@/assets/personalCenter/apply.png'),
|
||||
imgActive: require('@/assets/personalCenter/applyactive.png'),
|
||||
key: 'apply',
|
||||
},
|
||||
apply,
|
||||
{
|
||||
title: '我的收藏',
|
||||
img: require('@/assets/personalCenter/collect.png'),
|
||||
|
@ -77,16 +67,41 @@
|
|||
key: 'remark',
|
||||
},
|
||||
]
|
||||
const selectedKeys = ref(['PurchaseVehicle'])
|
||||
// 西海岸
|
||||
if (itShowXiHaiAn) {
|
||||
menuList = [car, apply]
|
||||
}
|
||||
const selectedKeys = ref(['apply'])
|
||||
|
||||
const type = JSON.parse(window.sessionStorage.getItem('type'))
|
||||
if (type) {
|
||||
selectedKeys.value = [type]
|
||||
console.log('selectedKeys------------>', selectedKeys);
|
||||
|
||||
}
|
||||
const handleClick = (item) => {
|
||||
console.log('click', item)
|
||||
mybus.emit('tabsChange', item)
|
||||
}
|
||||
|
||||
onMounted(() => {
|
||||
if (itShowXiHaiAn) {
|
||||
handleClick(menuList[0])
|
||||
} else {
|
||||
if (type) {
|
||||
console.log('type---------->', type)
|
||||
let _obj = menuList.find(v => v.key == type)
|
||||
handleClick(_obj)
|
||||
} else {
|
||||
if (menuList[1]) {
|
||||
handleClick(menuList[1])
|
||||
}else {
|
||||
handleClick(menuList[0])
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
return {
|
||||
menuList,
|
||||
selectedKeys,
|
||||
|
@ -106,14 +121,17 @@
|
|||
height: 60px;
|
||||
font-size: 16px;
|
||||
color: #333;
|
||||
|
||||
&:hover {
|
||||
color: #0087ff;
|
||||
background-color: #edf4fc;
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.ant-menu-title-content) {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
|
||||
.icon {
|
||||
display: block;
|
||||
width: 24px;
|
||||
|
@ -122,14 +140,17 @@
|
|||
margin-right: 30px;
|
||||
}
|
||||
}
|
||||
|
||||
:deep(.ant-menu-item-selected) {
|
||||
background-color: #edf4fc;
|
||||
color: #0087ff;
|
||||
|
||||
&::after {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#aside-menu-container::-webkit-scrollbar {
|
||||
width: 0 !important;
|
||||
}
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
<!-- <on-the-right-side-of-the-list
|
||||
v-if="showFlag === 'collect'"
|
||||
></on-the-right-side-of-the-list> -->
|
||||
<my-apply v-if="showFlag === 'apply'"></my-apply>
|
||||
<my-apply v-if="showFlag === 'apply'" :tabTypeName="tabTypeName"></my-apply>
|
||||
<my-publish v-if="showFlag === 'push'"></my-publish>
|
||||
<purchase-vehicle
|
||||
v-if="showFlag === 'PurchaseVehicle'"
|
||||
|
@ -38,7 +38,9 @@
|
|||
import Collection from '@/views/personalCenter/components/Collection'
|
||||
import mybus from '@/myplugins/mybus'
|
||||
import { onBeforeUnmount, ref } from 'vue'
|
||||
|
||||
import { useRouter } from 'vue-router'
|
||||
const router = useRouter()
|
||||
let tabTypeName = ref(router.currentRoute.value.query.tabTypeName || '')
|
||||
const type = JSON.parse(window.sessionStorage.getItem('type'))
|
||||
const showFlag = ref('PurchaseVehicle')
|
||||
if (type) {
|
||||
|
@ -48,7 +50,7 @@
|
|||
const delFlag = ref(true)
|
||||
mybus.on('tabsChange', (e) => {
|
||||
console.log('进入详情', e)
|
||||
if (e.flag) {
|
||||
if (e && e.flag) {
|
||||
delFlag.value = false
|
||||
} else {
|
||||
console.log('tabsChange', e.key)
|
||||
|
|