Compare commits

...

38 Commits

Author SHA1 Message Date
wuhongjian 8e89d8d1b0 Merge branch 'hi-ucs-dev' into release 2022-10-18 15:24:25 +08:00
wuhongjian e96c0c11b1 bug修复 2022-10-18 15:23:33 +08:00
wuhongjian 3f6e432d0b Merge branch 'hi-ucs-dev' of http://192.168.124.50:3000/wuhongjian/hi-ucs into hi-ucs-dev 2022-10-18 15:15:41 +08:00
wuhongjian 811e80a27c bug修复 2022-10-18 15:14:50 +08:00
unknown 71041b60f2 申请审批完成后待办任务数不刷新问题 2022-10-18 15:10:01 +08:00
guoyue a7ac2e8a1e Merge branch 'hi-ucs-dev' of http://124.222.94.39:3000/wuhongjian/hi-ucs into hi-ucs-dev 2022-10-18 14:12:26 +08:00
guoyue 42af2e980b 西海岸:基础设施-视频离线-预览按钮禁用 2022-10-18 14:11:52 +08:00
guoyue dd100d3867 西海岸-基础设施:点击消息通知列表中的数据,跳转到流程详情页面 2022-10-18 14:11:20 +08:00
unknown 05964a73e8 西海岸摄像头已申请列表添加新字段 2022-10-18 13:52:44 +08:00
a0049873 c5fc29a498 能力统计-部门数:金字塔设计修改 2022-10-18 11:12:01 +08:00
guoyue 5f3aad2539 西海岸:点击图标进入首页增加权限判断 2022-10-18 10:45:40 +08:00
guoyue 2ebec87514 西海岸:开发公安局申请 附件上传为必填 2022-10-17 17:21:18 +08:00
guoyue 0974118d3b Merge branch 'hi-ucs-dev' of http://124.222.94.39:3000/wuhongjian/hi-ucs into hi-ucs-dev 2022-10-17 16:01:20 +08:00
guoyue adf964a400 能力申请:有附件的时候提供附件下载功能 2022-10-17 16:01:03 +08:00
guoyue 8db5b8bee5 西海岸:设备审批 增加审核时间和创建时间 2022-10-17 16:00:37 +08:00
a0049873 21431958f0 宽度 2022-10-17 14:49:21 +08:00
guoyue b66a781b81 我的待办:设备审批增加 设备名称显示字段 2022-10-17 14:39:29 +08:00
guoyue 587c728a74 我的申请--申请详情 样式调整 2022-10-17 14:16:32 +08:00
guoyue ea2afd08c9 合并冲突 2022-10-17 14:16:00 +08:00
guoyue e0bde554b9 西海岸:流程已终止更改判断条件 2022-10-17 14:01:05 +08:00
guoyue 98d1b070ab 西海岸:我的申请-设备申请单兵无人机详情增加名称显示 2022-10-17 14:00:44 +08:00
guoyue 5ac06ce8d6 西海岸:申购车删除批量删除id参数更改 2022-10-17 14:00:16 +08:00
unknown f20aac7430 数组对象监控属性修改 2022-10-17 13:48:23 +08:00
unknown e26937bc37 穿梭框重写 2022-10-17 13:38:46 +08:00
a0049873 4d65cc11e9 能力申请 1条消息时隐藏 展开按钮,审批详情 添加处理部门 2022-10-17 10:19:27 +08:00
a0049873 2c1070d4e2 访客模式 2022-10-17 09:43:35 +08:00
guoyue 29ace46c69 Merge branch 'hi-ucs-dev' of http://124.222.94.39:3000/wuhongjian/hi-ucs into hi-ucs-dev 2022-10-14 17:36:59 +08:00
guoyue fe85cd370f 西海岸-基础设施:无人机、单兵申请成功后,页面应该返回无人机页面 2022-10-14 17:36:46 +08:00
guoyue 0d402302f7 西海岸-基础设施:无人机、单兵申请成功后,页面应该返回无人机页面 2022-10-14 17:34:35 +08:00
guoyue 34ac0b016b 西海岸:我的申请-能力申请列表增加过期时间的显示 2022-10-14 17:08:54 +08:00
guoyue 4354abdf25 西海岸-视频资源申请-列表中包含西海岸开发分局添加申请附件个模板下载 2022-10-14 15:40:14 +08:00
gongjiale 033e123edc Merge branch 'hi-ucs-dev' of http://192.168.124.50:80/wuhongjian/hi-ucs into hi-ucs-dev 2022-10-14 15:39:35 +08:00
gongjiale 2484cda43d 1.完成能力统计-能力上架统计:查看详情,任务开始时间、任务结束时间不转行;
2.完成能力统计-能力上架统计:搜索条件中的状态和列表中的状态请保持一致
2022-10-14 15:39:18 +08:00
guoyue 9c8785b8ce 西海岸-我的申请:查看详情界面,流程终止后,提示该流程终止 2022-10-14 14:20:45 +08:00
guoyue e34f47680b 西海岸:单兵和无人机设备申请,申请成功,前端提示文字 2022-10-14 14:20:23 +08:00
guoyue a71fc5326e 西海岸:我的申请--详情更改任务时长取值显示 2022-10-14 11:40:22 +08:00
guoyue 9bba3077ca 西海岸:我的申请--详情去掉期望效果字段 2022-10-14 11:39:41 +08:00
guoyue 4580df0182 西海岸:修复我的申请-能力上架名称不显示问题 2022-10-14 11:39:06 +08:00
30 changed files with 4385 additions and 3899 deletions

View File

@ -107,7 +107,6 @@ export default {
} else {
this.total = this.mixinViewModuleOptions.getDataListIsPage ? res.data.total : 0
}
console.log('数据列表', this.dataList, this.mixinViewModuleOptions.getDataListURL)
if (this.dataList[0].type === '组件服务') {
this.dataList.map(val => {

View File

@ -104,7 +104,7 @@ router.beforeEach((to, from, next) => {
Vue.prototype.$message.error(res.msg)
return next({ name: 'login' })
}
window.SITE_CONFIG.menuList = res.data
window.SITE_CONFIG.menuList = res.data.filter(item => item.site === 0)
fnAddDynamicMenuRoutes(window.SITE_CONFIG.menuList)
next({ ...to, replace: true })
}).catch(() => {

View File

@ -1,8 +1,8 @@
<!--
* @Author: kongjun qdkongjun@gmail.com
* @Date: 2022-06-20 09:29:59
* @LastEditors: kongjun qdkongjun@gmail.com
* @LastEditTime: 2022-06-22 10:04:56
* @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-10-18 15:22:45
* @FilePath: \back\src\views\main-sidebar.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
-->
@ -35,63 +35,71 @@
<script>
import http from '@/utils/request'
import SubMenu from "./main-sidebar-sub-menu";
import returnLocationStr from '@/utils/location';
import SubMenu from './main-sidebar-sub-menu'
import returnLocationStr from '@/utils/location'
import bus from '@/views/bus.js'
export default {
data() {
data () {
return {
numObject:{}
};
numObject: {}
}
},
components: {
SubMenu,
SubMenu
},
created() {
created () {
this.getNum()
//this.$store.state.sidebarMenuList = window.SITE_CONFIG["menuList"];
// this.$store.state.sidebarMenuList = window.SITE_CONFIG["menuList"];
//
bus.$off('updateTaskNum')
bus.$on('updateTaskNum', () => {
this.getNum()
})
},
methods: {
getNum(){
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)
this.numObject = res.data
const menuList = window.SITE_CONFIG.menuList
console.log('menuList====>', menuList)
console.log('this.numObject====>', this.numObject)
for (var i = 0; i < menuList.length; i++) {
const menu = menuList[i]
if (menu.id == '1541261628388888578') { //
let daibanNum = 0
for (let j = 0; j < menu.children.length; j++) {
const 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
menu.total = daibanNum
}
}
this.$store.state.sidebarMenuList=menuList
})
})
}
}};
}
}
</script>
<style scoped lang="scss">
.aui-sidebar {

View File

@ -116,7 +116,6 @@ import CommonQuestion from '../components/common-question.vue'
import InfrastructureModal from './components/infrastructure-modal.vue'
import Cookies from 'js-cookie'
import upload from '@/views/modules/components/upload'
const btnArray = ['基本信息', '场景痛点', '解决方案', '组合能力', '更多能力', '使用步骤']
// \
export const getJson = (type) => {
@ -163,7 +162,6 @@ export const modalTypeText = {
}
export const getFuseResourceList = (abilityListObj) => {
console.log('abilityListObjabilityListObj',abilityListObj);
const arr = []
let length = 0
for (const key in abilityListObj) {
@ -176,7 +174,7 @@ export const getFuseResourceList = (abilityListObj) => {
resourceId: v.id,
type: key,
sequence: index,
resourceName:v.resourceName,
resourceName:v.resourceName|| v.name ,
deptName:v.deptName,
})
})
@ -331,9 +329,10 @@ export default {
},
//
updateDataForm (data) {
console.log('datadatadata',data);
//console.log('datadatadata',data);
if (Object.keys(this.getListParams).includes(data.title)) {
this.abilityListObj[data.title] = data.list
console.log(' this.abilityListObj[data.title]3333', this.abilityListObj[data.title]);
} else {
// 使
this.operateFuseAttrList(data.title, data)
@ -363,6 +362,7 @@ export default {
//
dataFormSubmitHandle: debounce(
function () {
console.log('this.dataForm------表单提交------>111111', this.dataForm)
this.$refs.dataForm.validate((valid) => {
if (!valid) {
this.$message.error('请检查表单是否填写完整')

View File

@ -16,19 +16,20 @@
</el-transfer>
</div>
<div v-else-if="type==='数据资源'" class="dataTransfer">
<el-transfer v-model="selectedArray" filterable :filter-method="filterMethod" filter-placeholder="请输入名称"
<!-- <el-transfer v-model="selectedArray" 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> -->
<data-resource-tranfer @updateData="updateResourceDataForm" :selected-data="selectedData" :type="type"></data-resource-tranfer>
</div>
<el-pagination
<!-- <el-pagination
v-if="type==='数据资源'"
:current-page="currentPage"
:page-size="15"
@ -36,7 +37,7 @@
:total="total"
@current-change="pageCurrentChangeHandle"
>
</el-pagination>
</el-pagination> -->
<template slot="footer">
<el-button @click="showModal = false">{{ $t("cancel") }}</el-button>
<el-button type="primary" @click="confirmSubmitHandle()">{{
@ -52,7 +53,7 @@
<script>
import InfrastructureModal from '../assignedScene/components/infrastructure-modal.vue'
import DisplayList from '../assignedScene/components/display-list.vue'
import dataResourceTranfer from './data-resource-tranfer.vue'
const sjzyArray = [
{
zyname: '城阳区图书馆总分馆、社区图书室明细信息',
@ -199,7 +200,9 @@ export default {
total: 0,
currentPage: 1,
newNum: 1,
searchValue: ''
searchValue: '',
selectedData:[],
newResourceData:[]
}
},
watch: {
@ -223,10 +226,12 @@ export default {
},
methods: {
async getDataInfo (dataForm) {
console.log('dataForm-----====',dataForm);
console.log('this.type',this.type);
await this.getData()
const arr = []
const attrValue = dataForm.fuseResourceList.filter(v => v.type == this.type);
console.log('attrValue22',attrValue);
this.selectedData = attrValue;
if (attrValue.length > 0) {
attrValue.map(val => {
if(val.type==="数据资源"){
@ -248,6 +253,7 @@ export default {
}
//
this.displayList = JSON.parse(JSON.stringify(arr));
this.displayList = Array.from(new Set(this.displayList))
//
this.selectedArray = arr.map(v => v.id)
this.$nextTick(() => {
@ -286,7 +292,7 @@ export default {
this.$http[this.getDataParams.methods](this.getDataParams.url,
this.getDataParams.postData
).then(res => {
console.log('res.data----获取列表-------->', res.data)
console.log('res.data----数据资源获取列表-------->', res.data)
this.total = Number(res.data.data.rows)
if (res.data.code !== 0) {
return this.$message.error(res.msg)
@ -302,37 +308,56 @@ export default {
              resourceName:v.zyname
})
})
this.allData = JSON.parse(JSON.stringify(this.transferData))
this.allData = JSON.parse(JSON.stringify(this.transferData));
//console.log('this.transferData======43434',this.transferData);
//console.log('res.data----retretryry-------->', this.transferData)
}).catch(err => {
this.$message.error('未搜索到相关数据资源')
})
}
},
//
updateResourceDataForm(data){
let obj = {};
data = data.list.reduce(function(item, next) {
obj[next.id] ? '' : obj[next.id] = true && item.push(next);
return item;
}, []);
console.log('变化后的数据222',data);
this.newResourceData = data;
},
filterMethod (query, item) {
console.log('1111111111111111111111111')
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]);
});
// 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
// })
if (this.newResourceData.length > this.maxNum) {
return this.$message.error('最多选择十条数据!')
}
this.$emit('update', {
title: this.type,
list: selectedObjectList
})
list: this.newResourceData
});
this.displayList = this.newResourceData;
this.showModal = false
}else{
this.$emit('update', {
title: this.type,
list: this.selectedArray
})
}
if (this.selectedArray.length > this.maxNum) {
return this.$message.error('最多选择十条数据!')
}
@ -343,7 +368,9 @@ export default {
this.displayList.push(v)
}
})
this.displayList = Array.from(new Set(this.displayList))
console.log(this.selectedArray, this.displayList, 'this.displayList')
}
},
handleChange(){
//console.log('222222',this.selectedArray);
@ -376,9 +403,10 @@ export default {
this.getData()
}
},
components: { InfrastructureModal, DisplayList },
components: { InfrastructureModal, DisplayList,dataResourceTranfer },
mounted () {
console.log(this.type, 'this.type')
}
}
</script>
@ -493,7 +521,7 @@ export default {
position: absolute;
font-size: 14px;
display: inline-block;
width: 80%;
width: 30%;
top: 52px;
left: 12px;
}

View File

@ -0,0 +1,415 @@
<template>
<div class="transfer">
<div class="leftTransfer">
<div class="leftTransfer_title">
<el-checkbox
:indeterminate="left.isIndeterminate"
v-model="left.checkAll"
@change="leftHandleCheckAllChange"
>{{ titles[0] }}</el-checkbox
>
<span
>{{ left.transferDataChecked.length }}/{{
left.transferData.length
}}</span
>
</div>
<el-input
@input="transferInputLeft"
class="transfer_input"
placeholder="请输入内容"
prefix-icon="el-icon-search"
v-model="left.inputValue"
>
</el-input>
<el-checkbox-group
class="transfer_group"
v-model="left.transferDataChecked"
@change="leftHandleCheckedCitiesChange"
>
<el-checkbox
v-for="item in left.transferData"
:label="item"
:key="item[defaultProps.id]"
>{{ item[defaultProps.label] }}</el-checkbox
>
</el-checkbox-group>
<el-pagination
:current-page="currentPage"
:page-size="15"
layout="total, prev, pager, next"
:total="total"
@current-change="handleCurrentChange"
>
</el-pagination>
</div>
<div class="transferButton">
<el-button type="primary" @click="push">></el-button>
<el-button type="primary" @click="del">{{ "<" }}</el-button>
</div>
<div class="rightTransfer">
<div class="rightTransfer_title">
<el-checkbox
:indeterminate="right.isIndeterminate"
v-model="right.checkAll"
@change="rightHandleCheckAllChange"
>{{ titles[1] }}</el-checkbox
>
<span
>{{ right.transferDataChecked.length }}/{{
right.transferData.length
}}</span
>
</div>
<el-input
@input="transferInputRight"
class="transfer_input"
placeholder="请输入内容"
prefix-icon="el-icon-search"
v-model="right.inputValue"
>
</el-input>
<div style="margin: 5px 0"></div>
<el-checkbox-group
class="transfer_group"
v-model="right.transferDataChecked"
@change="rightHandleCheckedCitiesChange"
>
<el-checkbox
v-for="item in right.transferData"
:label="item"
:key="item[defaultProps.id]"
>{{ item[defaultProps.label] }}</el-checkbox
>
</el-checkbox-group>
</div>
</div>
</template>
<script>
//import { listUser } from "@/api/system/user";
export default {
name: "transferPage",
props: {
titles: {
type: Array,
default: () => ["待选列表", "已选列表"],
},
selectedData: {
type: Array,
default: () => []
},
type: {
type: String,
default: ''
},
},
data() {
return {
left: {
inputValue: "",
isIndeterminate: false, //
checkAll: false, //
transferData: [], //穿
transferDataAll: [], //穿
transferDataChecked: [], //穿
},
right: {
inputValue: "",
isIndeterminate: false, //
checkAll: false, //
transferData: [], //穿
transferDataAll: [], //穿
transferDataChecked: [], //穿
},
total: 0,
currentPage: 1,
queryParams: {
current: 1,
size: 10,
},
getDataParams:{
methods: "post",
url: "/resource/getDataResource",
postData: {
serviceName: "",
orderField: "fbrq",
orderType: "desc",
pageNum: 1,
pageSize: 15
}
},
defaultProps: {
label: "name",
id: "id",
},
};
},
created() {
this.initTransferData();
},
watch: {
// selectedData:{
// handler (newName, oldName) {
// console.log('',newName);
// this.right.transferData = newName
// }
// },
right: {
handler (newName, oldName) {
//console.log('nnnnnn',newName);
this.$emit('updateData', {
title: "选中的数据资源",
list: newName.transferData
})
},
immediate: false,
deep: true
}
},
methods: {
//
initTransferData() {
this.$http[this.getDataParams.methods](this.getDataParams.url,
this.getDataParams.postData
).then(response => {
console.log('数据资源response---->',response.data.data.data);
let responseDataList = [];
(response.data.data.data || []).map(v => {
responseDataList.push({
type: this.type,
id: v.guid,
name: v.zyname || '--',
deptName:v.TGBM,
resourceName:v.zyname
})
});
this.left.transferData = responseDataList;
this.left.transferData.map((item, index) => {
item.current = this.currentPage;
});
this.total = Number(response.data.data.rows);
this.left.transferDataAll = this.left.transferData;
// id
let checkedIdArr = this.right.transferData.map((item) => {
return item[this.defaultProps.id];
});
//
this.left.transferData = this.left.transferData.filter((item) => {
if (!checkedIdArr.includes(item[this.defaultProps.id])) {
return item;
}
});
});
let selectedDataRight = [];
this.selectedData = JSON.parse(JSON.stringify(this.selectedData));
(this.selectedData || []).map(v => {
selectedDataRight.push({
type: v.resource.type,
id: v.resource.resourceId,
name: v.resource.resourceName,
deptName:v.resource.deptName,
})
});
selectedDataRight.map(v => {
this.right.transferData.push(v);
});
let obj = {};
this.right.transferData = this.right.transferData.reduce(function(item, next) {
obj[next.id] ? '' : obj[next.id] = true && item.push(next);
return item;
}, []);
this.right.transferDataAll = this.right.transferData;
//console.log('this.selectedData',this.selectedData);
//console.log('left',this.left);
//console.log('rigth',this.right);
},
//
leftHandleCheckAllChange(val) {
this.left.transferDataChecked = val ? this.left.transferData : [];
this.left.isIndeterminate = false;
},
//
leftHandleCheckedCitiesChange(value) {
let checkedCount = value.length;
this.left.checkAll = checkedCount === this.left.transferData.length;
this.left.isIndeterminate =
checkedCount > 0 && checkedCount < this.left.transferData.length;
},
//
rightHandleCheckAllChange(val) {
this.right.transferDataChecked = val ? this.right.transferData : [];
this.right.isIndeterminate = false;
},
//
rightHandleCheckedCitiesChange(value) {
let checkedCount = value.length;
this.right.checkAll = checkedCount === this.right.transferData.length;
this.right.isIndeterminate =
checkedCount > 0 && checkedCount < this.right.transferData.length;
},
// 穿
push() {
//
this.right.transferData = [
...this.right.transferData,
...this.left.transferDataChecked,
].sort((a, b) => {
return a[this.defaultProps.id] - b[this.defaultProps.id];
});
this.right.transferDataAll = this.right.transferData;
// id
let checkedIdArr = this.right.transferData.map((item) => {
return item[this.defaultProps.id];
});
//
this.left.transferData = this.left.transferData.filter((item) => {
if (!checkedIdArr.includes(item[this.defaultProps.id])) {
return item;
}
});
this.left.transferDataAll = this.left.transferData;
//
this.left.transferDataChecked = [];
this.left.isIndeterminate = false;
this.left.checkAll = false;
},
// 穿 current
del() {
//
let arr = this.right.transferDataChecked.filter((item) => {
if (this.queryParams.current == item.current) {
return item;
}
});
//
this.left.transferData = [...this.left.transferData, ...arr].sort(
(a, b) => {
return a[this.defaultProps.id] - b[this.defaultProps.id];
}
);
this.left.transferDataAll = this.left.transferData;
// id
let checkedIdArr = this.right.transferDataChecked.map((item) => {
return item[this.defaultProps.id];
});
//
this.right.transferData = this.right.transferData.filter((item) => {
if (!checkedIdArr.includes(item[this.defaultProps.id])) {
return item;
}
});
this.right.transferDataAll = this.right.transferData;
//
this.right.transferDataChecked = [];
this.right.isIndeterminate = false;
this.right.checkAll = false;
},
handleCurrentChange(val) {
//console.log('valval',val);
this.getDataParams.postData.pageNum = val;
this.initTransferData();
},
transferInputLeft() {
if (this.left.inputValue) {
this.left.transferData = this.left.transferData.filter(
(p) => p[this.defaultProps.label].indexOf(this.left.inputValue) !== -1
);
} else {
this.left.transferData = this.left.transferDataAll;
}
},
transferInputRight() {
if (this.right.inputValue) {
this.right.transferData = this.right.transferData.filter(
(p) =>
p[this.defaultProps.label].indexOf(this.right.inputValue) !== -1
);
} else {
this.right.transferData = this.right.transferDataAll;
}
},
},
};
</script>
<style lang="scss" scoped>
.transfer {
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
margin: 0 auto;
.transferButton {
.el-button {
display: block;
margin: 10px 0;
}
}
.el-checkbox {
line-height: 30px;
}
.transfer_input {
margin: 10px 15px 0 15px;
width: 85%;
.el-input--medium .el-input__inner {
height: 36px;
line-height: 36px;
border-radius: 16px;
}
}
.leftTransfer,
.rightTransfer {
height: 510px;
border: 1px solid #e6ebf5;
border-radius: 4px;
overflow: hidden;
background: #ffffff;
display: inline-block;
vertical-align: middle;
width: 360px;
-webkit-box-sizing: border-box;
box-sizing: border-box;
position: relative;
margin: 0 10px;
.el-checkbox {
display: block;
}
.el-input {
position: absolute;
font-size: 14px;
display: inline-block;
width: 70%;
top: 40px;
}
.pagination {
position: absolute;
bottom: -8px;
right: 0;
}
.leftTransfer_title,
.rightTransfer_title {
display: flex;
justify-content: space-between;
height: 40px;
line-height: 40px;
background: #f5f7fa;
margin: 0;
padding-left: 15px;
border-bottom: 1px solid #e6ebf5;
-webkit-box-sizing: border-box;
box-sizing: border-box;
color: #000000;
padding-right: 15px;
align-items: center;
}
}
}
.transfer_group {
padding-left: 15px;
margin-top: 50px;
height: 390px;
overflow-y: auto;
}
</style>

View File

@ -88,16 +88,49 @@
<!--审批详情-->
<div>
<div class="title">审批详情</div>
<div v-for="item in this.dataSource.data" :key="item">
<a-table :dataSource="item[1]" :columns="columns">
<!-- <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>
</a-table> -->
<el-table
:data="dataSource.data[0][1]"
style="width: 100%">
<el-table-column
prop="activityName"
label="任务名称"
width="180">
</el-table-column>
<el-table-column
prop="assigneeName"
label="处理人"
width="120">
</el-table-column>
<el-table-column
prop="startTime"
label="任务开始时间"
width="180">
</el-table-column>
<el-table-column
prop="endTime"
label="任务结束时间"
width="180">
</el-table-column>
<el-table-column
prop="comment"
label="审核意见" show-overflow-tooltip>
</el-table-column>
<el-table-column
prop="duration"
label="任务时长"
width="100">
</el-table-column>
</el-table>
</div>
<!-- </div> -->
<!-- <div else>
gai
</div> -->
@ -228,6 +261,7 @@ export default {
}
}
}
console.log("this.dataSource.data[0]========",this.dataSource.data[0][1])
},
// init () {
// this.visible = true

View File

@ -38,7 +38,7 @@
</el-date-picker>
</el-form-item>
<!--审核状态-->
<el-form-item>
<el-form-item >
<span>审核状态</span>
<el-select
v-model="examineStatus"
@ -46,8 +46,9 @@
clearable
>
<el-option label="全部" value="-1"></el-option>
<el-option label="审核完成" value="1"></el-option>
<el-option label="审核中" value="0"></el-option>
<el-option label="通过" value="1"></el-option>
<el-option label="不通过" value="2"></el-option>
</el-select>
</el-form-item>
@ -371,8 +372,9 @@ export default {
{ name: '组件服务', key: 1 },
{ name: '应用资源', key: 2 },
{ name: '基础设施', key: 3 },
{ name: '数据资源', key: 3 },
{ name: '知识库', key: 3 }
{ name: '数据资源', key: 4 },
{ name: '知识库', key: 5 },
{ name: '会议室', value: 6}
],
tableData: [],
tableData2: [
@ -396,7 +398,8 @@ export default {
{ name: '图层服务', value: 2 },
{ name: '通用开发组件', value: 3 },
{ name: '页面开发组件', value: 4 },
{ name: '应用资源', value: 5 }
{ name: '应用资源', value: 5 },
{ name: '会议室', value: 6}
], //
detailFlag: false, //
startDate: '', //
@ -478,7 +481,9 @@ export default {
} else if (this.examineStatus == '0') {
this.status = '审核中'
} else if (this.examineStatus == '1') {
this.status = '审核完成'
this.status = '通过'
}else if (this.examineStatus == '2') {
this.status = '不通过'
} else {
this.status = this.examineStatus
}
@ -534,7 +539,9 @@ export default {
} else if (this.examineStatus == '0') {
this.status = '审核中'
} else if (this.examineStatus == '1') {
this.status = '审核完成'
this.status = '通过'
} else if (this.examineStatus == '2') {
this.status = '不通过'
} else {
this.status = this.examineStatus
}
@ -627,13 +634,15 @@ export default {
},
//
getOneDetail (page) {
var passAndReview = '' // ""
var passAndReview = '' // ""
if (this.examineStatus == '-1') {
this.status = ''
} else if (this.examineStatus == '0') {
this.status = '审核中'
} else if (this.examineStatus == '1') {
this.status = '通过'
} else if (this.examineStatus == '2') {
this.status = '不通过'
} else {
this.status = this.examineStatus
}
@ -657,13 +666,15 @@ export default {
},
// 使
getTwoDetail (page) {
var passAndReview = '' // ""
var passAndReview = '' // ""
if (this.examineStatus == '-1') {
this.status = ''
} else if (this.examineStatus == '0') {
this.status = '审核中'
} else if (this.examineStatus == '1') {
this.status = '通过'
} else if (this.examineStatus == '2') {
this.status = '不通过'
} else {
this.status = this.examineStatus
}

View File

@ -81,7 +81,7 @@ export default {
init () {
this.visible = true
this.$nextTick(() => {
this.$refs['dataForm'].resetFields()
this.$refs.dataForm.resetFields()
this.iconList = getIconList()
this.dataForm.parentName = this.$t('menu.parentNameDefault')
this.getMenuList()
@ -89,11 +89,12 @@ export default {
},
//
getMenuList () {
console.log('获取菜单位置1')
return this.$http.get('/sys/menu/list?type=0').then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.menuList = res.data
this.menuList = res.data.filter(item => item.site === 0)
}).catch(() => {})
},
// ,
@ -114,11 +115,11 @@ export default {
},
//
dataFormSubmitHandle: debounce(function () {
this.$refs['dataForm'].validate((valid) => {
this.$refs.dataForm.validate((valid) => {
if (!valid) {
return false
}
this.$http['post']('/devtools/menu', this.dataForm).then(({ data: res }) => {
this.$http.post('/devtools/menu', this.dataForm).then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
@ -133,7 +134,7 @@ export default {
})
}).catch(() => {})
})
}, 1000, { 'leading': true, 'trailing': false })
}, 1000, { leading: true, trailing: false })
}
}
</script>

View File

@ -38,6 +38,9 @@
</template>
</el-table-column>
<el-table-column prop="createDate" label="创建时间" header-align="center" align="center"></el-table-column>
<el-table-column prop="auditTime" 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)"

View File

@ -47,6 +47,13 @@
}}</span>
</template>
</el-table-column>
<el-table-column label="申请人所属部门" header-align="center" align="center">
<template slot-scope="scope">
<span>{{
(scope.row.params && scope.row.params.tAbilityApplicationDTOList[0].unit)
}}</span>
</template>
</el-table-column>
<el-table-column
:label="$t('process.system')"
header-align="center"
@ -161,7 +168,8 @@ export default {
created () {
bus.$off('competencyApplicationInit')
bus.$on('competencyApplicationInit', () => {
this.getDataList()
this.getDataList();
bus.$emit('updateTaskNum')
})
}
}

View File

@ -12,15 +12,23 @@
<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 prop="phone" label="电话" header-align="center" align="center"></el-table-column>
<el-table-column prop="createDate" label="创建时间" header-align="center" align="center"></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> -->
<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)"

View File

@ -13,40 +13,32 @@
<h3>申请人信息</h3>
<div class="big-BOX">
<p>
<span class="text"
>申请人<span> {{ dataForm.content.user || '--' }}</span></span
>
<span class="text"
>电话<span>{{ dataForm.content.phone || '--' }}</span></span
>
<span class="text"
>单位<span>{{ dataForm.content.unit || '--' }}</span></span
>
<span class="text">申请人<span> {{ dataForm.content.user || '--' }}</span></span>
<span class="text">电话<span>{{ dataForm.content.phone || '--' }}</span></span>
<span class="text">单位<span>{{ dataForm.content.unit || '--' }}</span></span>
</p>
<p>
<span class="text">
能力申请标题<span>
{{ dataForm.content.title || '--' }}</span
></span
>
<span class="text" v-if="dataForm.content.applicationSystem"
>应用系统<span>{{
{{ dataForm.content.title || '--' }}</span></span>
<span class="text" v-if="dataForm.content.applicationSystem">应用系统<span>{{
dataForm.content.applicationSystem || '--'
}}</span></span
>
<span class="text" ></span>
}}</span></span>
<span class="text"></span>
</p>
<p>
<span v-if="dataForm.content.applicationSceneStr"
>应用场景<span>
{{ dataForm.content.applicationSceneStr || '--' }}</span
></span>
<span v-if="dataForm.content.applicationSceneStr">应用场景<span>
{{ dataForm.content.applicationSceneStr || '--' }}</span></span>
</p>
<p>
<span>
需求依据<span>
{{ dataForm.content.applicationBackground || '--' }}</span
></span>
{{ dataForm.content.applicationBackground || '--' }}</span></span>
</p>
<p>
<div>
<el-button type="primary" v-if="dataForm.content.attachment" size="small" @click="download(dataForm.content)">附件下载</el-button>
</div>
</p>
<!-- <p>
<span>
@ -102,9 +94,7 @@
<el-radio-button label="退回" class="redAll" @click="showDialog('退回')">退回</el-radio-button>
</el-radio-group> -->
<el-button type="primary" @click="showDialog('同意')">同意</el-button>
<el-button type="danger" plain @click="showDialog('驳回')"
>驳回</el-button
>
<el-button type="danger" plain @click="showDialog('驳回')">驳回</el-button>
<!-- <el-input v-if="agreeOrList ==='同意' " v-model="inputAgree" placeholder="请输入同意意见"></el-input>
<el-input v-if="agreeOrList ==='退回'" v-model="inputNo" placeholder="请输入退回意见"></el-input>
<el-button class="inputBule" @click="agreeOrNot">提交</el-button> -->
@ -113,21 +103,12 @@
<!-- 流程详情 -->
<ren-process-detail></ren-process-detail>
<el-dialog
title="审批意见"
:close-on-click-modal="false"
:visible.sync="dialogVisible"
width="30%"
:before-close="handleClose"
>
<el-dialog title="审批意见" :close-on-click-modal="false" :visible.sync="dialogVisible" width="30%"
:before-close="handleClose">
<el-input v-model="input" placeholder="请输入审批意见"></el-input>
<span slot="footer" class="dialog-footer">
<el-button @click="handleClose2"> </el-button>
<el-button
type="primary"
@click.native="agreeOrNot($store.state.contentTabsActiveName)"
> </el-button
>
<el-button type="primary" @click.native="agreeOrNot($store.state.contentTabsActiveName)"> </el-button>
</span>
</el-dialog>
</el-card>
@ -144,7 +125,7 @@ import bus from '@/views/bus.js'
export default {
//
mixins: [processModule],
data () {
data() {
return {
dialogVisible: false,
dialogType: '',
@ -173,7 +154,7 @@ export default {
agreeOrList: '同意'
}
},
created () {
created() {
// KEY
console.log('params=================>', this.$route, this.$route.params)
this.dataForm.taskId = this.$route.params.taskId
@ -207,7 +188,7 @@ export default {
RenProcessDetail
},
methods: {
init () {
init() {
// this.visible = true
this.$nextTick(() => {
// this.$refs.dataForm.resetFields()
@ -219,23 +200,23 @@ export default {
}
})
},
showDialog (title) {
showDialog(title) {
this.dialogVisible = true
this.dialogType = title
},
handleClose (done) {
handleClose(done) {
this.$confirm('确认关闭?')
.then((_) => {
this.input = ''
done()
})
.catch((_) => {})
.catch((_) => { })
},
handleClose2 () {
handleClose2() {
this.dialogVisible = false
this.input = ''
},
downloadFile2 (url) {
downloadFile2(url) {
console.log(window.SITE_CONFIG.previewUrl)
window.open(
window.SITE_CONFIG.previewUrl +
@ -244,7 +225,7 @@ export default {
)
},
//
getInfo () {
getInfo() {
let params = ''
if (this.dataForm.taskId) {
params = `taskId=${this.dataForm.taskId}`
@ -307,7 +288,7 @@ export default {
this.dataList.push(obj)
}
})
.catch(() => {})
.catch(() => { })
} else {
params = `instanceId=${this.dataForm.instanceId}`
this.$http
@ -359,11 +340,11 @@ export default {
this.dataList.push(obj)
}
})
.catch(() => {})
.catch(() => { })
}
},
//
applyData () {
applyData() {
this.$http
.get(`/resource/select/${this.dataForm.instanceId}`)
.then(({ data: res }) => {
@ -375,7 +356,7 @@ export default {
// this.dataForm.content = res.data
// console.log(this.dataForm, 'ela')
})
.catch(() => {})
.catch(() => { })
},
// 退
agreeOrNot: debounce(
@ -412,7 +393,7 @@ export default {
}
})
})
.catch(() => {})
.catch(() => { })
this.tabRemoveHandle(data)
} else {
this.$message.error('请输入审批意见!')
@ -455,7 +436,7 @@ export default {
1000,
{ leading: true, trailing: false }
),
tabRemoveHandle (tabName) {
tabRemoveHandle(tabName) {
console.log(tabName, 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
if (tabName === 'home') {
return false
@ -482,13 +463,19 @@ export default {
}
},
//
startProcessErrorCallback (data) {
startProcessErrorCallback(data) {
console.log(data)
},
//
taskHandleErrorCallback (data) {}
taskHandleErrorCallback(data) { },
download(data) {
const alink = document.createElement('a')
alink.download = '附件' // ,,IE10
alink.href = data.attachment // url
alink.click() //
},
mounted () {
},
mounted() {
// this.applyData()
}
}
@ -497,38 +484,47 @@ export default {
::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;
@ -539,6 +535,7 @@ export default {
}
}
}
::v-deep .AbilityApply {
margin-top: 32px;
@ -548,27 +545,33 @@ export default {
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;
@ -581,22 +584,26 @@ export default {
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;
@ -610,17 +617,21 @@ export default {
}
}
}
::v-deep .agreeOr > div {
::v-deep .agreeOr>div {
display: flex;
align-items: center;
.el-input {
margin-right: 10px;
margin-left: 32px;
}
}
::v-deep .agreeOr > div:last-of-type {
::v-deep .agreeOr>div:last-of-type {
margin-top: 15px;
}
.blueAll {
::v-deep .el-radio-button__inner {
width: 80px;
@ -632,12 +643,14 @@ export default {
color: #0558e1;
border: 1px solid #0558e1;
}
::v-deep .el-radio-button__orig-radio:checked + .el-radio-button__inner {
::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;
@ -648,8 +661,10 @@ export default {
color: #ffffff;
border: 1px solid #0558e1;
}
.redAll {
margin-left: 10px;
::v-deep .el-radio-button__inner {
width: 80px;
height: 32px;
@ -661,12 +676,14 @@ export default {
color: #e83a48;
margin-left: 10px;
}
::v-deep .el-radio-button__orig-radio:checked + .el-radio-button__inner {
::v-deep .el-radio-button__orig-radio:checked+.el-radio-button__inner {
box-shadow: unset !important;
color: #ffffff;
background: #e83a48;
}
}
.blueInput {
width: 55px;
}

View File

@ -123,11 +123,12 @@ export default {
},
//
getMenuList () {
console.log('获取菜单位置2')
return this.$http.get('/sys/menu/list?type=0').then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.menuList = res.data
this.menuList = res.data.filter(item => item.site === 0)
}).catch(() => {})
},
//

View File

@ -1,3 +1,10 @@
<!--
* @Author: hisense.wuhongjian
* @Date: 2022-06-14 09:30:23
* @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-10-17 14:54:26
* @Description: 告诉大家这是什么
-->
<template>
<el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__menu">

Binary file not shown.

View File

@ -15,6 +15,7 @@ const state = () => ({
accessToken: getAccessToken(),
username: '',
realName: '',
deptName: '',
userId: '',
avatar: '',
role: 0, //
@ -26,6 +27,7 @@ const getters = {
avatar: (state) => state.avatar,
role: (state) => state.role,
userId: (state) => state.userId,
deptName: (state) => state.deptName,
}
const mutations = {
/**
@ -64,6 +66,10 @@ const mutations = {
setUserId(state, id) {
state.userId = id
},
//
setDeptName(state, name) {
state.deptName = name
},
/**
* @author chuzhixin 1204505056@qq.com
* @description 设置头像
@ -136,6 +142,7 @@ const actions = {
commit('setRealname', res.data.data.realName)
commit('setRole', res.data.data.roleIdList.length)
commit('setUserId', res.data.data.id)
commit('setDeptName', res.data.data.deptName)
// TODO
// let { username, avatar, roles, ability } = data
// if (username && roles && Array.isArray(roles)) {

View File

@ -1,8 +1,8 @@
/*
* @Author: hisense.wuhongjian
* @Date: 2022-04-01 17:23:11
* @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-10-11 13:59:18
* @LastEditors: Light
* @LastEditTime: 2022-10-17 09:25:32
* @Description: 告诉大家这是什么
*/
/**
@ -26,7 +26,6 @@ router.beforeEach(async (to, from, next) => {
// if (SSOTOKEN) {
// setAccessToken(SSOTOKEN)
// }
console.log('验证白名单', routesWhiteList)
const token = getAccessToken()
console.log('token', token)
let hasToken = token
@ -44,6 +43,7 @@ router.beforeEach(async (to, from, next) => {
accessRoutes.forEach((item) => {
router.addRoute(item)
})
console.log('验证白名单', routesWhiteList)
if (routesWhiteList.indexOf(to.path) !== -1) {
debugger
next()

View File

@ -318,7 +318,7 @@
//
const funnelPlot = (dataList) => {
//
let arrCopy = ['0-5', '5-10', '10-15', '15-20', '20以上']
let arrCopy = ['1-5', '5-10', '10-15', '15-20', '20以上']
//
dataList.sort((a, b) => {
return Number(a.value) - Number(b.value)

View File

@ -2,7 +2,11 @@
<div class="ability-to-apply-for" :class="{ all: falg }">
<div class="title">
<span>申请能力</span>
<div class="btnBox" v-show="!falg">
<div
class="btnBox"
v-show="!falg"
v-if="dataForm[0].arr.length > 1 || dataForm.length > 1"
>
<svg
t="1659419933164"
class="btn"
@ -97,7 +101,10 @@
{{
val.description ||
((val.note1 || '') &&
(JSON.parse(val.note1) && JSON.parse(val.note1)[0] && 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 +
'个摄像头') ||
@ -105,7 +112,11 @@
}}
</div>
</div>
<div class="remove" v-if="item.arr.length>1" @click="removeFunction(val)"></div>
<div
class="remove"
v-if="item.arr.length > 1"
@click="removeFunction(val)"
></div>
</div>
</template>
</div>
@ -115,11 +126,17 @@
title="已申请摄像头列表"
@ok="videoVisible = false"
>
<a-select placeholder="请选择归属部门" v-model:value="deptName" :getPopupContainer="(triggerNode) => triggerNode.parentNode" show-search option-filter-prop="children" :filterOption="filterOption" @change="deptIdChangeFunction">
<a-select-option v-for="(item, index) in deptNameAll" :key="`${index}-${item}`" :value="item.name">
{{ item.name }}
</a-select-option>
</a-select>
<a-table
:columns="columns"
:data-source="xVideoList"
bordered
:pagination="{ defaultPageSize: 6 }"
style="margin-top:10px"
>
<template #bodyCell="{ column, text }">
<!-- <template>
@ -135,6 +152,7 @@
import { message } from 'ant-design-vue'
import { ref, defineProps } from 'vue'
import mybus from '@/myplugins/mybus'
import { getDeptAll } from '@/api/user'
const router = useRouter()
const props = defineProps({
dataList: { type: Array, default: null },
@ -143,12 +161,19 @@
let dataForm = ref([])
const videoVisible = ref(false)
const xVideoList = ref([])
const xVideoListAll = ref([])
const deptNameAll = ref([]) //
const deptFlage = ref(true) //
const deptName = ref(null)
const columns = ref([
{
title: '摄像头名称',
dataIndex: 'name',
},
{
title: '归属部门',
dataIndex: 'managementUnitName',
}
])
// eslint-disable-next-line vue/no-setup-props-destructure
dataForm.value = props.dataList
@ -178,11 +203,16 @@
//
const showItem = (id, type, delFlag, note1) => {
if (type == '基础设施') {
let arr = JSON.parse(note1)
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,
managementUnitName:val.managementUnitName || '',
})
})
xVideoListAll.value = xVideoList.value;
videoVisible.value = true
} else {
if (delFlag == 0) {
@ -197,6 +227,27 @@
}
}
}
//
const deptIdChangeFunction = (name) => {
//console.log('nnnndddd',name);
//console.log('xVideoList',xVideoList);
//namexVideoList
xVideoList.value = xVideoListAll.value.filter((item) => {
if (name && item.managementUnitName.indexOf(name) < 0) return false
return true
});
}
//
const getDeptAllData = () =>{
getDeptAll().then((res) => {
deptNameAll.value = res.data.data
})
}
getDeptAllData();
//select
const filterOption = (input, option) => {
return option.value.toLowerCase().indexOf(input.toLowerCase()) >= 0
}
</script>
<style scoped lang="less">
@ -337,4 +388,11 @@
display: flex;
align-items: center;
}
::v-deep .ant-table-thead > tr > th {
//padding-left: px;
font-size: 18px;
font-weight: bold;
color:#000000 ;
//background: # !important;
}
</style>

View File

@ -145,7 +145,6 @@
></a-select>
</a-form-item>
</div>
<div>
<a-form-item
label="需求依据"
@ -162,20 +161,50 @@
/>
</a-form-item>
</div>
<!-- 西海岸--附件上传 -->
<div v-if="iskfq && isXiHaiAn">
<a-row style="margin-top: 0.4rem">
<a-col :span="24">
<a-form-item
name="attachment"
label="附件上传"
class="introduction"
:rules="[{ required: true, message: '请上传附件' }]"
>
<a-upload
:max-count="1"
accept=".doc,.docx,pdf"
v-model:file-list="fileList"
:action="`${apiURL}/upload`"
@remove="handleRemove"
@change="roomUpload"
>
<a-button>
<upload-outlined>选择上传附件</upload-outlined>
</a-button>
<span>
支持docdocxPDF等格式支撑材料上传文件大小不超过100M
</span>
</a-upload>
</a-form-item>
</a-col>
</a-row>
<a-row>
<a-col :span="24" style="margin-left: 106px">
<a
href="/static/download/感知资源申请表.doc"
download="感知资源申请表"
>
感知资源申请表模板下载
</a>
</a-col>
</a-row>
</div>
<div class="bottom-btn">
<a-button
style="
width: 80px;
height: 38px;
margin-right: 20px;
background: #e1edfa;
color: #0087ff;
font-size: 14px;
border-radius: 6px;
border: none;
padding: 0;
text-align: center;
"
class="cancel-apply"
type="primary"
html-type="cancle"
@click="resetFields()"
@ -183,17 +212,7 @@
退出申请
</a-button>
<a-button
style="
width: 80px;
height: 38px;
background: #0087ff;
color: #fff;
font-size: 14px;
border-radius: 6px;
border: none;
padding: 0;
text-align: center;
"
class="confirm-apply"
type="primary"
html-type="submit"
@click="processStartHandle()"
@ -241,6 +260,7 @@
import { pageWithAttrs, updateIntegrationServices } from '@/api/home'
import { DETAIL_PAGE_CONTENT_DEFAULT_TAB } from '@/global/GlobalConfig.js'
import { getIntegrationDetail, soldierApply } from '@/api/home'
import { useStore } from 'vuex'
import * as moment from 'moment'
export default {
@ -252,6 +272,8 @@
},
setup() {
const router = useRouter()
const store = useStore()
const deptName = store.getters['user/deptName']
const disabled = ref(false)
const flag = ref(false)
const list = ref(JSON.parse(localStorage.getItem('applyList')))
@ -279,6 +301,7 @@
label: '90天',
},
]
const apiURL = window.SITE_CONFIG.apiURL
if (!applyAll) {
list.value.map((item) => {
@ -307,6 +330,18 @@
const isXiHaiAn = ref(whoShow.itShowXiHaiAn)
// 西--
const isCamera = ref(false)
// 西-
let note1 = JSON.parse(
(list.value[0] && list.value[0].arr && list.value[0].arr[0].note1) ||
'[]'
)
let iskfq = ref(
note1.some(
(v) =>
v.managementUnitName == '开发区公安局' ||
v.managementUnitName == '开发区公安分局'
)
)
if (
list.value[0] &&
list.value[0].arr &&
@ -560,6 +595,7 @@
handleWrjApply(formName)
return
}
submitApply(formName).then((res) => {
message.success('申请提交成功,请到消息中心查看!')
console.log('能力申请================>', res)
@ -726,34 +762,6 @@
])
const systemOptions = ref([])
const systemOptions2 = ref([])
const handleChange = (info) => {
if (info.file.status !== 'uploading') {
// console.log(info.file, info.fileList)
}
if (info.file.status === 'done') {
message.success(`${info.file.name} 上传成功`)
formName.enclosure = info.file.response.data
formName.enclosureName = info.file.name
} else if (info.file.status === 'error') {
message.error(`${info.file.name} 上传失败`)
}
}
const beforeUpload = (file) => {
const isPNG =
file.type === 'image/png' ||
'image/doc' ||
'image/docx' ||
'image/jpg' ||
'image/png' ||
'image/jpeg' ||
'image/pdf' ||
'image/xlxs' ||
'image/ppt'
if (!isPNG) {
message.error(`上传失败`)
}
return isPNG || Upload.LIST_IGNORE
}
const fileList = ref([])
//
const systemHandleChange = (value) => {
@ -782,11 +790,14 @@
if (res.data.data.records.length == 0) {
message.warning('该关键词,暂无应用资源!')
} else {
//
res.data.data.records.map((val) => {
if (val.deptName === deptName) {
systemOptions2.value.push({
value: val.name,
label: val.name,
})
}
})
// console.log('===================>', systemOptions2.value)
}
@ -868,9 +879,22 @@
}
soldierApply(_data)
.then((res) => {
if (res.data.code == 0) {
message.success(res.data.msg)
jumpToDetailsPageconetent()
if (res.data.msg === 'success') {
message.success('申请提交成功,请到消息中心查看!')
setTimeout(() => {
router.push({
path: '/DetailsPageconetent',
query: {
select: DETAIL_PAGE_CONTENT_DEFAULT_TAB,
//
facilitiesType:
list.value[0] &&
list.value[0].arr &&
list.value[0].arr[0] &&
list.value[0].arr[0].type,
},
})
}, 1000)
} else {
message.error('申请失败!')
}
@ -880,6 +904,14 @@
})
}
//
const roomUpload = (response) => {
if (response.file.response !== undefined) {
fileList.value = response.fileList
formName.attachment = response.file.response.data
}
}
return {
deptIdChangeFunction,
formRef,
@ -897,11 +929,11 @@
headers: {
authorization: 'authorization-text',
},
handleChange,
// handleChange,
applySuccess,
disabled,
baseURL,
beforeUpload,
// beforeUpload,
dataList,
systemHandleChange,
systemHandleSearch,
@ -915,6 +947,9 @@
isCamera,
isXiHaiAn,
expireDateOptions,
apiURL,
roomUpload,
iskfq,
}
},
}
@ -1021,4 +1056,29 @@
justify-content: center;
// position: fixed;
}
.cancel-apply {
width: 80px;
height: 38px;
margin-right: 20px;
background: #e1edfa;
color: #0087ff;
font-size: 14px;
border-radius: 6px;
border: none;
padding: 0;
text-align: center;
}
.confirm-apply {
width: 80px;
height: 38px;
background: #0087ff;
color: #fff;
font-size: 14px;
border-radius: 6px;
border: none;
padding: 0;
text-align: center;
}
</style>

View File

@ -1,11 +1,8 @@
<template>
<div
class="home-header"
:class="[
<div class="home-header" :class="[
select !== 'home' || scrollTop > 500 ? 'white' : '',
props.showView === 'algorithm-details' ? '' : '',
]"
>
]">
<div class="name" @click="goToHome">
<div class="name-bg" v-if="!itShowXiHaiAn"></div>
<div class="name-bg-xihaian" v-else></div>
@ -14,52 +11,26 @@
<p>(United Capacity System)</p>
</div>
</div>
<div
v-for="item in navList"
:key="item.key"
@click="jumpPage(item)"
class="nav"
:class="item.key == select ? 'select' : ''"
>
<div v-for="item in navList" :key="item.key" @click="jumpPage(item)" class="nav"
:class="item.key == select ? 'select' : ''">
{{ item.name }}
</div>
<!-- 购物车 -->
<a-badge :count="sgcNum">
<svg
t="1650455446850"
class="icon"
viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="2069"
width="0.4rem"
height="0.4rem"
@click="goToSgc"
>
<svg t="1650455446850" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="2069" width="0.4rem" height="0.4rem" @click="goToSgc">
<path
d="M384 832v85.333333h-85.333333v-85.333333h85.333333z m405.333333 0v85.333333h-85.333333v-85.333333h85.333333zM240.32 185.002667l24.149333 140.928h633.173334L835.285333 746.666667h-563.626666l-85.333334-497.685334H94.485333v-64h145.834667z m583.104 204.928H275.434667L325.632 682.666667h454.464l43.328-292.736z"
:fill="props.showView === 'algorithm-details' ? '#1296db' : '#1296db'"
p-id="2070"
></path>
:fill="props.showView === 'algorithm-details' ? '#1296db' : '#1296db'" p-id="2070"></path>
</svg>
</a-badge>
<a-badge :count="mynoticeNum" style="margin-left: 0.2rem">
<!-- 消息提醒 -->
<svg
t="1654051054113"
class="icon2"
viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="2187"
width="0.35rem"
height="0.35rem"
>
<svg t="1654051054113" class="icon2" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg"
p-id="2187" width="0.35rem" height="0.35rem">
<path
d="M544 161.536a330.666667 330.666667 0 0 1 298.666667 329.130667h-0.341334c0.213333 1.493333 0.341333 2.986667 0.341334 4.565333v219.434667h39.68a32 32 0 0 1 0 64h-212.053334a160 160 0 0 1-316.586666 0H141.909333a32 32 0 1 1 0-64h39.424v-219.434667c0-1.578667 0.128-3.072 0.341334-4.565333H181.333333a330.666667 330.666667 0 0 1 298.666667-329.130667V128a32 32 0 1 1 64 0v33.536z m-298.666667 553.130667h533.333334v-219.434667c0-1.578667 0.128-3.072 0.341333-4.565333h-0.341333a266.666667 266.666667 0 1 0-533.333334 0h-0.341333c0.213333 1.493333 0.341333 2.986667 0.341333 4.565333v219.434667z m359.765334 64H418.901333a96 96 0 0 0 186.197334 0z"
:fill="props.showView === 'algorithm-details' ? '#1296db' : '#1296db'"
p-id="2188"
></path>
:fill="props.showView === 'algorithm-details' ? '#1296db' : '#1296db'" p-id="2188"></path>
</svg>
<!-- <a-avatar shape="square" size="large" /> -->
</a-badge>
@ -88,10 +59,7 @@
<template #title>
<span>{{ user.realName }}</span>
</template>
<span
class="name"
@click="jumpPage({ name: '个人中心', key: 'personalCenter' })"
>
<span class="name" @click="jumpPage({ name: '个人中心', key: 'personalCenter' })">
{{ user.realName }}
</span>
</a-tooltip>
@ -114,58 +82,54 @@
fill="#bfbfbf"
></path>
</svg> -->
<i
@click="jumpPage({ name: '后台管理', key: 'houtaiguanli' })"
class="iconTo"
v-show="backFlag"
></i>
<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'
import { useStore } from 'vuex'
import { getSgcTotal } from '@/api/home'
import Cookies from 'js-cookie'
import mybus from '@/myplugins/mybus'
import { DETAIL_PAGE_CONTENT_DEFAULT_TAB } from '@/global/GlobalConfig.js'
import { message } from 'ant-design-vue'
import { ref, onMounted, onBeforeUnmount, defineProps } from 'vue'
import { getUserInfo } from '@/api/user'
import { recordRoute } from '@/config'
import { useRoute, useRouter } from 'vue-router'
import { mynotice } from '@/api/home'
import { useStore } from 'vuex'
import { getSgcTotal } from '@/api/home'
import Cookies from 'js-cookie'
import mybus from '@/myplugins/mybus'
import { DETAIL_PAGE_CONTENT_DEFAULT_TAB } from '@/global/GlobalConfig.js'
import { message } from 'ant-design-vue'
const store = useStore()
const router = useRouter()
const route = useRoute()
const itShowXiHaiAn = ref(whoShow.itShowXiHaiAn)
const store = useStore()
const router = useRouter()
const route = useRoute()
const itShowXiHaiAn = ref(whoShow.itShowXiHaiAn)
//
const user = ref({
//
const user = ref({
username: store.getters['user/username'],
realName: store.getters['user/realName'],
})
const select = ref(router.currentRoute.value.name)
const mynoticeFlag = ref(false)
const mynoticeData = ref([])
const navList = ref(navListManagement.navList)
const backFlag = ref(true)
getUserInfo().then((res) => {
})
const select = ref(router.currentRoute.value.name)
const mynoticeFlag = ref(false)
const mynoticeData = ref([])
const navList = ref(navListManagement.navList)
const backFlag = ref(true)
getUserInfo().then((res) => {
if (
res.data.data.roleIdList.length == 0 &&
res.data.data.superAdmin === 0
) {
backFlag.value = false
}
})
console.log('navList------------>', navList)
})
console.log('navList------------>', navList)
const props = defineProps({
const props = defineProps({
showView: { type: String, default: '' },
})
})
// 退
const logout = async () => {
// 退
const logout = async () => {
await store.dispatch('user/logout')
window.sessionStorage.setItem('visits', JSON.stringify([]))
// 西
@ -177,15 +141,23 @@
router.push('/login')
}
}
}
//
const goToHome = () => {
// 西
if (itShowXiHaiAn.value) {
if (
!xhaHasPermissionUser.list.includes(user.value.username)
) {
return message.warn('暂无权限')
}
}
//
const goToHome = () => {
router.push({
path: '/home',
})
}
//
const jumpPage = (item) => {
}
//
const jumpPage = (item) => {
// 西
if (itShowXiHaiAn.value) {
let _arr = ['共享门户', '能力云图', '能力统计', '需求中心', '赋能案例']
@ -271,50 +243,50 @@
router.push('/home')
break
}
}
const scrollTop = ref(0)
window.onscroll = function () {
}
const scrollTop = ref(0)
window.onscroll = function () {
//
//scrollTop
scrollTop.value =
document.documentElement.scrollTop || document.body.scrollTop
// console.log('' + scrollTop.value)
}
mybus.on('getSgcNum', () => {
}
mybus.on('getSgcNum', () => {
getSgcTotal().then((res) => {
sgcNum.value = res.data.data.count
// console.log('========================>', res.data.data.count)
})
})
})
const sgcNum = ref(0)
const goToSgc = () => {
const sgcNum = ref(0)
const goToSgc = () => {
window.sessionStorage.setItem('type', JSON.stringify('PurchaseVehicle'))
router.push('/personalCenter')
}
const mynoticeNum = ref(0)
//
const getMynotice = () => {
}
const mynoticeNum = ref(0)
//
const getMynotice = () => {
mynotice({ page: 1, limit: 3, readStatus: 0 }).then((res) => {
// console.log('', res.data.data)
mynoticeNum.value = res.data.data.total
mynoticeData.value = res.data.data.list
})
}
const goToView = () => {
}
const goToView = () => {
router.push({
path: '/mynoticeView',
})
}
// const read = (item) => {
// mynoticeRead(item.id).then((res) => {
// console.log('', res)
// getMynotice()
// })
// }
// -- cookie
}
// const read = (item) => {
// mynoticeRead(item.id).then((res) => {
// console.log('', res)
// getMynotice()
// })
// }
// -- cookie
onMounted(() => {
onMounted(() => {
getSgcTotal().then((res) => {
// console.log('========================>', res.data.data.count)
sgcNum.value = res.data.data.count
@ -348,19 +320,19 @@
mybus.on('getMynotice', () => {
getMynotice()
})
})
onBeforeUnmount(() => {
})
onBeforeUnmount(() => {
mybus.off('getSgcNum')
mybus.off('getMynotice')
})
})
</script>
<style lang="less" scoped>
@font-face {
@font-face {
font-family: 'header-typeface';
src: url('~@/assets/newHome/font/header-typeface.ttf');
}
}
.home-header {
.home-header {
height: 0.64rem;
width: 100%;
max-width: 1920px;
@ -397,8 +369,7 @@
.name-bg-xihaian {
height: 0.6rem;
width: 0.6rem;
background: url('~@/assets/newHome/newHome-title-bg-xihaian.png')
no-repeat;
background: url('~@/assets/newHome/newHome-title-bg-xihaian.png') no-repeat;
background-size: 100%;
margin-right: 0.15rem;
}
@ -478,9 +449,9 @@
cursor: pointer;
}
}
}
}
.white {
.white {
background-color: #fff;
box-shadow: 0 0.02rem 0.1rem rgba(0, 0, 0, 0.1);
@ -513,15 +484,13 @@
color: #000;
}
}
}
}
.blue {
.blue {
position: absolute;
background: linear-gradient(
to right,
background: linear-gradient(to right,
rgba(15, 90, 253, 0.8),
rgba(36, 25, 248, 0.8)
);
rgba(36, 25, 248, 0.8));
.name {
color: #fff;
@ -541,9 +510,9 @@
color: #fff;
}
}
}
}
.mynotice {
.mynotice {
width: 4rem;
height: 3rem;
background: #eee;
@ -560,18 +529,19 @@
color: #000;
font-size: 0.16rem;
}
}
}
.mynotice::-webkit-scrollbar {
.mynotice::-webkit-scrollbar {
display: none;
}
}
:deep(.ant-list-item) {
:deep(.ant-list-item) {
border-bottom: 0.01rem solid #ccc;
padding: 0.1rem;
}
}
:deep(.ant-list-item-meta-title) {
:deep(.ant-list-item-meta-title) {
// display: flex;
// justify-content: space-around;
// align-items: center;
@ -597,18 +567,18 @@
font-size: 0.1rem;
}
}
}
}
.iconTo {
.iconTo {
display: block;
width: 0.35rem;
height: 0.35rem;
background: url('~@/assets/newHome/iconTo.png') no-repeat;
cursor: pointer;
}
}
</style>
<style>
html::-webkit-scrollbar {
html::-webkit-scrollbar {
display: none;
}
}
</style>

File diff suppressed because it is too large Load Diff

View File

@ -157,7 +157,7 @@
password: Encrypt(this.form.password),
username: this.form.username,
})
window.localStorage.setItem('tokenStartTime', new Date().getTime())
// window.localStorage.setItem('tokenStartTime', new Date().getTime())
window.sessionStorage.setItem('visits', JSON.stringify([]))
console.log(
'添加visits========================================>',

View File

@ -262,35 +262,27 @@ const goPage = (item) => {
}
}
}
let isQingDao = whoShow.itShowQingDao;
//
const read = (item) => {
if (selectData.value.length === 0 && !item) {
message.error('未选择消息!')
return
return message.error('未选择消息!')
}
console.log(selectData.value)
if (item) {
//
// ,
if (item.readStatus === 1) {
if(isQingDao) {
goPage(item)
}
//
return
return goPage(item)
}
mynoticeRead(item.id).then((res) => {
if (res.data.code == 0) {
message.success('通知已读!')
mybus.emit('getMynotice')
init()
if (isQingDao) {
//
setTimeout(() => {
goPage(item)
}, 1000)
}
}, 1500)
} else {
message.error('操作失败!')
}

View File

@ -29,7 +29,7 @@
<p>
<span>应用背景{{ props.refObj.applicationBackground }}</span>
</p>
<p>
<p v-if="!whoShow1.itShowXiHaiAn">
<span>期望效果{{ props.refObj.effectWish }}</span>
</p>
<p v-if="props.refObj.enclosure">
@ -159,26 +159,32 @@
<span class="channelName">{{ val.channelName }}</span>
<span class="type">基础设施</span>
</div>
<div>
<a-button type="primary" v-if="item.approveStatus == '通过' && whoShow1.itShowXiHaiAn"
@click.stop="openVideo(val)">
视频预览
</a-button>
<div class="channelName" style="color:#ff7875" v-if="whoShow1.itShowXiHaiAn && item.ended">该流程已终止
</div>
</div>
</div>
<div class="ability-bottom">
<div class="dec2">位置{{ val.nodeName }}</div>
<div class="result" v-if="item.approveStatus == '通过'">
申请结果{{
'列表地址:' +
申请结果
<span>列表地址</span><span style="cursor: pointer;" @click="openView(backUrl +
'resource/getApplyCameraList/' +
item.instanceId)">{{
backUrl +
'resource/getApplyCameraList/' +
item.instanceId +
';' +
'视频流地址:' +
item.instanceId }}</span>
<span>视频流地址</span>
<span style="cursor: pointer" @click="openView(backUrl +
'resource/hls/getHls/?key=' +
val.channelId)">{{
backUrl +
'resource/hls/getHls/?key=' +
val.channelId
}}
val.channelId}}</span>
</div>
</div>
</div>
@ -452,6 +458,10 @@ const handleUser = () => {
})
}
const openView = (url) => {
window.open(url, '_blank')
}
</script>
<style lang="less" scoped>
.title {
@ -530,7 +540,7 @@ const handleUser = () => {
margin-left: 0.1rem;
.ability {
height: 1.3rem;
height: 1.6rem;
display: flex;
border-bottom: 1px #eee solid;
padding: 0.1rem 0;
@ -732,6 +742,7 @@ const handleUser = () => {
font-weight: bold;
opacity: 0.4;
transform: rotate(-25deg);
width: 470px
width: 470px;
}
</style>

View File

@ -1,9 +1,21 @@
<template>
<DeviceApplyDetail v-if="showType === '设备申请'" :refObj="refObj"></DeviceApplyDetail>
<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>
<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>
@ -23,46 +35,46 @@
</div>
</template>
<script setup>
import AbilityApplication from './AbilityApplication.vue'
import PutOnTheShelf from './PutOnTheShelf .vue'
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'
// import { baseURL } from '@/config'
import qs from 'qs'
import {
import AbilityApplication from './AbilityApplication.vue'
import PutOnTheShelf from './PutOnTheShelf .vue'
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'
// import { baseURL } from '@/config'
import qs from 'qs'
import {
getApplyForm,
getTaskHandleDetailInfo,
getDemandForm,
nengliziyuanshangjiaapply,
getTaskVariables,
} from '@/api/personalCenter'
import { selectOneDel } from '@/api/home'
const props = defineProps({
} from '@/api/personalCenter'
import { selectOneDel } from '@/api/home'
const props = defineProps({
processDefinitionName: { type: String, default: null },
businessKey: { type: String, default: null },
processInstanceId: { type: String, default: null },
resourceId: { type: String, default: null },
refObj: { type: Object, default: null },
showType: { type: String, default: null },
})
const refObj = ref({})
const showType = ref('')
// eslint-disable-next-line vue/no-setup-props-destructure
refObj.value = props.refObj
// eslint-disable-next-line vue/no-setup-props-destructure
showType.value = props.showType
//
const dataSource = reactive({ data: [] })
console.log('refObj------------>', refObj);
})
const refObj = ref({})
const showType = ref('')
// eslint-disable-next-line vue/no-setup-props-destructure
refObj.value = props.refObj
// eslint-disable-next-line vue/no-setup-props-destructure
showType.value = props.showType
//
const dataSource = reactive({ data: [] })
console.log('refObj------------>', refObj)
// console.log(props.refObj, '---------------------------------------')
// console.log(props.refObj, '---------------------------------------')
const downloadFile = (path, name) => {
const downloadFile = (path, name) => {
const xhr = new XMLHttpRequest()
xhr.open('get', path)
xhr.responseType = 'blob'
@ -87,9 +99,9 @@ const downloadFile = (path, name) => {
URL.revokeObjectURL(url)
}
}
}
//
const formName = reactive({
}
//
const formName = reactive({
user: '',
phone: '',
unit: '',
@ -98,17 +110,22 @@ const formName = reactive({
scene: '',
basis: '',
id: '',
})
let shifoushizujian = ref('')
let nameNotShow = ref('')
let algorithmShow = ref('')
const dataForm = reactive({ data: {} })
const columns = [
})
let shifoushizujian = ref('')
let nameNotShow = ref('')
let algorithmShow = ref('')
const dataForm = reactive({ data: {} })
const columns = [
{
title: '任务名称',
dataIndex: 'activityName',
key: 'activityName',
},
{
title: '处理部门',
dataIndex: 'assigneeDeptName',
key: 'assigneeDeptName',
},
{
title: '处理人',
dataIndex: 'assigneeName',
@ -130,12 +147,12 @@ const columns = [
key: 'comment',
},
{
title: '任务时长/秒',
dataIndex: 'durationInSeconds',
key: 'durationInSeconds',
title: '任务时长',
dataIndex: 'duration',
key: 'duration',
},
]
const getInfo = () => {
]
const getInfo = () => {
console.log(props.processInstanceId, '============================')
if (props.processDefinitionName == '能力申请') {
// getTaskVariables({ taskId: props.processInstanceId }).then((res) => {
@ -199,9 +216,9 @@ const getInfo = () => {
dataForm.data = res.data.data
})
}
}
}
const getLiuZhuanInfo = () => {
const getLiuZhuanInfo = () => {
const params = qs.stringify({
processInstanceId: props.processInstanceId,
})
@ -212,9 +229,9 @@ const getLiuZhuanInfo = () => {
})
dataSource.data.push([props.processInstanceId, arr])
})
}
}
onMounted(() => {
onMounted(() => {
// getInfo()
if (props.refObj.resourceApplication) {
dataSource.data = []
@ -228,9 +245,9 @@ onMounted(() => {
} else {
getLiuZhuanInfo()
}
})
})
const getResourceURL = () => {
const getResourceURL = () => {
console.log('111111111111111111111111111111', Cookies.get('token'))
const params = qs.stringify({
token: Cookies.get('token'),
@ -238,11 +255,11 @@ const getResourceURL = () => {
processInstanceId: props.processInstanceId,
})
return `${window.SITE_CONFIG.apiURL}/act/his/getInstImage?${params}`
}
}
</script>
<style scoped lang="less">
.form-container {
.form-container {
height: 6rem;
overflow-y: scroll;
padding: 20px 20px 30px 20px;
@ -256,25 +273,25 @@ const getResourceURL = () => {
margin-top: 10px;
border-left: 6px #0058e1 solid;
}
}
}
:deep(.ant-table-thead)>tr>.ant-table-cell {
:deep(.ant-table-thead) > tr > .ant-table-cell {
background: #0087ff;
color: #fff;
border: none;
text-align: center;
font-size: 16px;
}
}
:deep(.ant-table-tbody)>tr>.ant-table-cell:nth-child(5) {
:deep(.ant-table-tbody) > tr > .ant-table-cell:nth-child(5) {
// width: 110px;
// display: inline-block;
// white-space: nowrap;
// overflow: hidden;
// text-overflow: ellipsis;
}
}
.oddNumbers {
.oddNumbers {
margin-bottom: 0.05rem;
}
}
</style>

View File

@ -3,16 +3,27 @@
<div class="title" style="margin-bottom: 0.2rem">我的申请</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="changeApplyState(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>
@ -22,7 +33,11 @@
</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>
@ -33,7 +48,9 @@
</template>
<div class="content-body-title">
<span>
名称{{ item.cameraList ? item.system : item.title }}
名称{{
item.cameraList ? item.system : item.title || item.name
}}
</span>
<div></div>
</div>
@ -48,55 +65,121 @@
</div>
<div class="content-body-bottom">
<div>申请日期{{ item.createDate || item.startTime }}</div>
<div></div>
<!-- 西海岸--增加过期时间显示 -->
<div v-if="isXiHaiAn">过期时间{{ item.expireDate || '' }}</div>
</div>
<div class="button-box">
<div class="button" v-if="typeName == '设备申请' && phoneSate.includes(item.state)"
@click="showPhoneModal(item)">
<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>
<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"
style="width: 1000px"
:footer="null"
destroyOnClose="true"
:maskClosable="false"
>
<template v-slot:title>
{{
refObj.description && itShowXiHaiAn
? refObj.description + '申请详情'
: '申请详情'
}}
</template>
<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>
@ -107,15 +190,26 @@
</div>
<!-- 联系方式弹框 -->
<a-modal v-model:visible="phoneVisible" title="提示" @ok="phoneVisible = false">
<a-modal
v-model:visible="phoneVisible"
title="提示"
@ok="phoneVisible = false"
>
<!-- 工业信息化局那个号电话配这个号199 6399 0996 -->
<p>请联系工业信息化局电话199 6399 0996</p>
</a-modal>
</template>
<script setup>
import { onMounted, reactive, ref, onBeforeUnmount, h, defineProps } from 'vue'
import {
import {
onMounted,
reactive,
ref,
onBeforeUnmount,
h,
defineProps,
} from 'vue'
import {
getMyProcessInstancePage,
getTabilityapplication,
getByApplyFlag,
@ -124,85 +218,86 @@ import {
demandComment,
deviceApplylist,
getDeviceDetail,
} from '@/api/personalCenter'
import {
} from '@/api/personalCenter'
import {
updateRes,
relaunch,
selectOne,
getApplyCameraList,
selectOneDel,
} from '@/api/home'
import { useRouter } from 'vue-router'
import { message } from 'ant-design-vue'
import ApplyDetails from '@/views/personalCenter/components/ApplyDetails'
import mybus from '@/myplugins/mybus'
import * as moment from 'moment'
} from '@/api/home'
import { useRouter } from 'vue-router'
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({
const props = defineProps({
tabTypeName: { type: String, default: '' },
})
const router = useRouter()
let typeList = ref([
})
const router = useRouter()
let typeList = ref([
'能力申请',
'能力上架',
'能力下架',
'能力需求',
'需求评论',
// '',
])
// 西-
let isXiHaiAn = whoShow.itShowXiHaiAn
const phoneSate = ref([2, 3])
if (isXiHaiAn) {
])
// 西-
let isXiHaiAn = whoShow.itShowXiHaiAn
const itShowXiHaiAn = ref(isXiHaiAn)
const phoneSate = ref([2, 3])
if (isXiHaiAn) {
typeList.value.push('设备申请')
}
const typeStrObj = {
'能力上架': 'resourcemountapply',
'能力下架': 'resourcundercarriageapply',
'能力需求': 'abilitydemandapply',
'需求评论': 'comment_review',
}
let tabList = ref(['全部', '审核中', '审核完成'])
const contentList = reactive({ data: [] })
let tabIndex = ref(0)
let typeIndex = ref(0)
let typeName = ref(typeList.value[0])
const videoVisible = ref(false)
const numFlag = ref(true)
const columns = ref([
}
const typeStrObj = {
能力上架: 'resourcemountapply',
能力下架: 'resourcundercarriageapply',
能力需求: 'abilitydemandapply',
需求评论: 'comment_review',
}
let tabList = ref(['全部', '审核中', '审核完成'])
const contentList = reactive({ data: [] })
let tabIndex = ref(0)
let typeIndex = ref(0)
let typeName = ref(typeList.value[0])
const videoVisible = ref(false)
const numFlag = ref(true)
const columns = ref([
{
title: '摄像头名称',
dataIndex: 'name',
},
])
const xVideoList = ref([])
])
const xVideoList = ref([])
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({
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 total = ref('')
const showType = ref('')
const page = ref('1')
const ended = ref('')
const processDefinitionKey = ref('')
const phoneVisible = ref(false)
//
const changeType = (item, index) => {
//
const changeType = (item, index) => {
console.log('item, index-----选择类型------->', item, index)
numFlag.value = true
num.value = []
@ -213,10 +308,10 @@ const changeType = (item, index) => {
typeIndex.value = index
typeName.value = item
getApplyList()
}
}
//
function changeApplyState(item, index) {
//
function changeApplyState(item, index) {
tabIndex.value = index
switch (item) {
case '审核中':
@ -235,9 +330,11 @@ function changeApplyState(item, index) {
getApplyList()
break
}
}
}
const showDetail = (item) => {
const cilckRowData = ref({})
const showDetail = (item) => {
cilckRowData.value = item
// 西-
if (isXiHaiAn) {
if (item.expireDate) {
@ -251,7 +348,6 @@ const showDetail = (item) => {
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
@ -267,10 +363,9 @@ const showDetail = (item) => {
if (res.data.code == 0) {
refObj.value = res.data.data
detailsVisible.value = true
processDefinitionName.value = item.processDefinitionName
}
})
.catch((err) => { })
.catch((err) => {})
} else if (
Object.keys(typeStrObj).includes(typeName.value) ||
typeName.value == '能力评价'
@ -284,8 +379,8 @@ const showDetail = (item) => {
} else {
message.error('数据请求失败!')
}
}
const showVideoList = (item) => {
}
const showVideoList = (item) => {
console.log('显示列表', item)
getApplyCameraList(item.processInstanceId).then((res) => {
console.log('res', res)
@ -295,8 +390,8 @@ const showVideoList = (item) => {
})
})
videoVisible.value = true
}
const copyComment = (data) => {
}
const copyComment = (data) => {
let url = data
let oInput = document.createElement('input')
oInput.value = url
@ -306,8 +401,8 @@ const copyComment = (data) => {
document.execCommand('Copy') //
message.success('复制成功')
oInput.remove()
}
const showAdd = (item) => {
}
const showAdd = (item) => {
if (item.processDefinitionKey == 'resourcemountapply') {
const data = {
id: item.resourceId,
@ -360,9 +455,9 @@ const showAdd = (item) => {
console.log('能力申请修改=================》', item)
window.open(newpage.href, '_self')
}
}
}
const initNum = () => {
const initNum = () => {
if (numFlag.value) {
num.value = []
getMyProcessInstancePage({
@ -387,8 +482,8 @@ const initNum = () => {
}
})
}
}
const initNum2 = () => {
}
const initNum2 = () => {
if (numFlag.value) {
num.value = []
getTabilityapplication({
@ -411,19 +506,19 @@ const initNum2 = () => {
}
})
}
}
// initNum()
}
// initNum()
//
const onSearch = (name) => {
//
const onSearch = (name) => {
console.log(name.value)
}
//
function replacement() {
}
//
function replacement() {
name.value = ''
getApplyList(name.value)
}
const getApplyList = () => {
}
const getApplyList = () => {
const params = {
page: page.value,
limit: 4,
@ -464,7 +559,7 @@ const getApplyList = () => {
getDeviceNum()
}
})
.catch((err) => { })
.catch((err) => {})
} else if (Object.keys(typeStrObj).includes(typeName.value)) {
processDefinitionKey.value = typeStrObj[typeName.value]
params.processDefinitionKey = processDefinitionKey.value
@ -525,18 +620,18 @@ const getApplyList = () => {
num.value = []
showType.value = ''
}
}
const handleCurrentChange = (val) => {
}
const handleCurrentChange = (val) => {
page.value = val
getApplyList()
}
}
const handlePageSizeChange = (val) => {
const handlePageSizeChange = (val) => {
page.value = val
getApplyList()
}
}
const viewDetail = (processDefinitionName, id, ended, businessKey) => {
const viewDetail = (processDefinitionName, id, ended, businessKey) => {
if (processDefinitionName == '能力申请流程') {
router.push({
path: '/details',
@ -563,10 +658,10 @@ const viewDetail = (processDefinitionName, id, ended, businessKey) => {
},
})
}
}
}
//
const del = () => {
//
const del = () => {
console.log('下架================》', delObj.value, reason.value)
delObj.value.undercarriageReason = reason.value
updateRes(delObj.value).then((upres) => {
@ -588,10 +683,10 @@ const del = () => {
message.error('数据更新失败!')
}
})
}
}
// 西 todo
const getDeviceApply = (state) => {
// 西 todo
const getDeviceApply = (state) => {
return new Promise((resolve, reject) => {
let _data = {
page: page.value,
@ -608,10 +703,10 @@ const getDeviceApply = (state) => {
console.log('err------------>', err)
})
})
}
}
// 西--
const getDeviceDetailInfo = (deviceId) => {
// 西--
const getDeviceDetailInfo = (deviceId) => {
return new Promise((resolve, reject) => {
getDeviceDetail(deviceId)
.then((res) => {
@ -623,10 +718,10 @@ const getDeviceDetailInfo = (deviceId) => {
console.log('err------------>', err)
})
})
}
}
// 西-,
const getDeviceNum = () => {
// 西-,
const getDeviceNum = () => {
if (!numFlag.value) {
return
}
@ -640,34 +735,32 @@ const getDeviceNum = () => {
num.value.finished = finished.total || ''
numFlag.value = false
})
.catch((err) => {
})
}
.catch((err) => {})
}
const showPhoneModal = () => {
const showPhoneModal = () => {
phoneVisible.value = true
}
}
mybus.on('closeModal', (obj) => {
mybus.on('closeModal', (obj) => {
detailsVisible.value = false
changeType(obj.type, obj.index)
})
onBeforeUnmount(() => {
})
onBeforeUnmount(() => {
mybus.off('closeModal')
})
onMounted(() => {
})
onMounted(() => {
getApplyList()
if (props.tabTypeName) {
let _index = typeList.value.findIndex(v => v == props.tabTypeName)
let _index = typeList.value.findIndex((v) => v == props.tabTypeName)
changeType(props.tabTypeName, _index != -1 ? _index : 0)
}
})
})
</script>
<style scoped lang="less">
.on-the-right-side-of-the-list {
.on-the-right-side-of-the-list {
background: #ffffff;
padding: 20px 0px 30px 20px;
position: absolute;
@ -843,10 +936,10 @@ onMounted(() => {
.backToFirst {
background-color: rgb(214, 91, 91);
}
}
}
:deep(.ant-badge-count) {
:deep(.ant-badge-count) {
top: -5px;
right: -10px;
}
}
</style>

View File

@ -650,17 +650,19 @@ const ceshiFunction = () => {
}
// delOne delList handleDelete
const handleDelete = (item, index) => {
console.log('item, index------------>', item, index);
console.log('item------------>', item);
let delArr = [];
//
if (item) {
if (index) {
delArr = [item.id]
} else {
//
if (checkedListAbility.value.length == 0) {
return message.warning('请先选择需要操作的数据!')
} else {
delArr = checkedListAbility.value.map(v=>v.id)
delArr = checkedListAbility.value
}
}
sgcDel({

View File

@ -85,9 +85,6 @@ export default defineComponent({
}
onMounted(() => {
if (itShowXiHaiAn) {
handleClick(menuList[0])
} else {
if (type) {
console.log('type---------->', type)
let _obj = menuList.find(v => v.key == type)
@ -95,11 +92,10 @@ export default defineComponent({
} else {
if (menuList[1]) {
handleClick(menuList[1])
}else {
} else {
handleClick(menuList[0])
}
}
}
})
return {