Merge branch 'hi-ucs-dev' of http://192.168.124.50:3000/wuhongjian/hi-ucs into hi-ucs-dev
This commit is contained in:
commit
1a23d64064
|
@ -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 => {
|
||||
|
|
|
@ -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(() => {
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
/*
|
||||
* @Author: hisense.guoyue
|
||||
* @Date: 2022-08-23 10:30:11
|
||||
* @LastEditors: hisense.guoyue
|
||||
* @LastEditTime: 2022-10-02 14:47:05
|
||||
* @LastEditors: hisense.wuhongjian
|
||||
* @LastEditTime: 2022-10-18 17:44:33
|
||||
* @Description: 判断当前环境是西海岸还是青岛市局
|
||||
*/
|
||||
const returnLocationStr = () => {
|
||||
return CONFIGITEM.version
|
||||
return CONFIGITEM.version === 'xihaian' ? 'xihaian' : 'qingdao'
|
||||
}
|
||||
|
||||
export default returnLocationStr
|
||||
|
|
|
@ -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:46:51
|
||||
* @FilePath: \back\src\views\main-sidebar.vue
|
||||
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||
-->
|
||||
|
@ -35,21 +35,21 @@
|
|||
|
||||
<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 () {
|
||||
return {
|
||||
numObject: {}
|
||||
};
|
||||
}
|
||||
},
|
||||
components: {
|
||||
SubMenu,
|
||||
SubMenu
|
||||
},
|
||||
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', () => {
|
||||
|
@ -60,35 +60,35 @@ export default {
|
|||
getNum () {
|
||||
http.get('/act/task/myToDoTaskNum').then(({ data: res }) => {
|
||||
this.numObject = res.data
|
||||
let menuList= window.SITE_CONFIG["menuList"];
|
||||
console.log('menuList====>',menuList);
|
||||
console.log('this.numObject====>',this.numObject);
|
||||
const menuList = window.SITE_CONFIG.menuList
|
||||
console.log('menuList====>', menuList)
|
||||
console.log('this.numObject====>', this.numObject)
|
||||
for (var i = 0; i < menuList.length; i++) {
|
||||
let menu=menuList[i];
|
||||
const 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
|
||||
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"){//会议室审核
|
||||
} if (children.id == '1559376285703081986') { // 会议室审核
|
||||
children.total = Number(this.numObject.meetingroom_book)
|
||||
daibanNum = Number(daibanNum) + Number(children.total)
|
||||
}if(children.id=="1545292602084827138"){//能力资源上架
|
||||
} if (children.id == '1545292602084827138') { // 能力资源上架
|
||||
children.total = Number(this.numObject.resourcemountapply)
|
||||
daibanNum = Number(daibanNum) + Number(children.total)
|
||||
}if(children.id=="1545312045695377410"){//能力需求申请
|
||||
} if (children.id == '1545312045695377410') { // 能力需求申请
|
||||
children.total = Number(this.numObject.abilitydemandapply)
|
||||
daibanNum = Number(daibanNum) + Number(children.total)
|
||||
}if(children.id=="1545313018614521857"){//能力需求下架
|
||||
} if (children.id == '1545313018614521857') { // 能力需求下架
|
||||
children.total = Number(this.numObject.resourcundercarriageapply)
|
||||
daibanNum = Number(daibanNum) + Number(children.total)
|
||||
}if(children.id=="1545313754106699777"){//评论审核
|
||||
} if (children.id == '1545313754106699777') { // 评论审核
|
||||
children.total = Number(this.numObject.comment_review)
|
||||
daibanNum = Number(daibanNum) + Number(children.total)
|
||||
}if(children.id=="1554294862931562498"){//会议室 暂无
|
||||
} if (children.id == '1554294862931562498') { // 会议室 暂无
|
||||
children.total = 0
|
||||
daibanNum = Number(daibanNum) + Number(children.total)
|
||||
}
|
||||
|
@ -99,7 +99,8 @@ export default {
|
|||
this.$store.state.sidebarMenuList = menuList
|
||||
})
|
||||
}
|
||||
}};
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<style scoped lang="scss">
|
||||
.aui-sidebar {
|
||||
|
|
|
@ -58,6 +58,7 @@
|
|||
<el-select
|
||||
v-model="abilityDepartment"
|
||||
placeholder="请选择部门"
|
||||
filterable
|
||||
clearable
|
||||
>
|
||||
<el-option label="全部" value=""></el-option>
|
||||
|
@ -94,6 +95,11 @@
|
|||
$t('reset')
|
||||
}}</el-button>
|
||||
</el-form-item>
|
||||
<!-- 导出 -->
|
||||
<a class='export' :href="exportExcel+exportExcelType+'?'+exportExcelCondition+'&token='+token">导出</a>
|
||||
<!-- <el-form-item>
|
||||
<el-button type="primary" @click="exportExcel()">导出</el-button>
|
||||
</el-form-item> -->
|
||||
</el-form>
|
||||
<el-card shadow="never" class="aui-card--fill" v-if="homeIsShow">
|
||||
<div class="mod-demand__bsdemand">
|
||||
|
@ -134,9 +140,12 @@
|
|||
<span v-if='this.choseId===0' :class="[departmentId===4?'departmentStyle':'']" @click="handleChose(4)">
|
||||
能力使用明细
|
||||
</span> -->
|
||||
<span v-if="detailFlag" class="detail-button" @click="goToDetail()">
|
||||
<template v-if="detailFlag">
|
||||
<el-checkbox v-model="checked" @change='chagneCheckbox' style="position: absolute;right: 150px;margin-top: -15px;">隐藏空数据</el-checkbox>
|
||||
<span class="detail-button" @click="goToDetail()">
|
||||
明细
|
||||
</span>
|
||||
</template>
|
||||
<span v-else class="detail-button" @click="goToBack()"> 返回 </span>
|
||||
</div>
|
||||
<div class="line-style"></div>
|
||||
|
@ -213,6 +222,8 @@
|
|||
|
||||
<el-table
|
||||
:data="tableData"
|
||||
:header-cell-style="{ textAlign: 'center',height:'96px' }"
|
||||
:cell-style="{ textAlign: 'center' }"
|
||||
style="width: 100%"
|
||||
v-show="this.departmentId === 3 || this.departmentId === 4"
|
||||
>
|
||||
|
@ -273,12 +284,14 @@
|
|||
|
||||
</template>
|
||||
<script>
|
||||
import Cookies from 'js-cookie'
|
||||
import componentServices from './componentServices.vue'
|
||||
import AbilityDetail from './components/abilityDetails'
|
||||
import applicationResources from './applicationResources.vue'
|
||||
import ComponentUsed from './componentUsed.vue'
|
||||
|
||||
import { mapState } from 'vuex'
|
||||
import qs from 'qs'
|
||||
import Template from '../devtools/template.vue'
|
||||
// import { mapState } from 'vuex'
|
||||
// const props = defineProps({
|
||||
// processDefinitionName: { type: String, default: null },
|
||||
// businessKey: { type: String, default: null },
|
||||
|
@ -288,9 +301,15 @@ import { mapState } from 'vuex'
|
|||
// showType: { type: String, default: null },
|
||||
// })
|
||||
export default {
|
||||
components: { componentServices, applicationResources, ComponentUsed, AbilityDetail },
|
||||
components: { componentServices, applicationResources, ComponentUsed, AbilityDetail, Template },
|
||||
data () {
|
||||
return {
|
||||
checked: false,
|
||||
departmentSelects: [],
|
||||
exportExcel: CONFIGITEM.configData[CONFIGITEM.version].apiURL + '/census/center/export',
|
||||
exportExcelCondition: '',
|
||||
exportExcelType: '',
|
||||
token: Cookies.get('ucsToken'),
|
||||
detailType: '',
|
||||
detailParamss: {},
|
||||
isBack: true,
|
||||
|
@ -377,6 +396,7 @@ export default {
|
|||
{ name: '会议室', value: 6 }
|
||||
],
|
||||
tableData: [],
|
||||
tableDataClone: [],
|
||||
tableData2: [
|
||||
{
|
||||
approveStatus: '',
|
||||
|
@ -407,6 +427,13 @@ export default {
|
|||
}
|
||||
},
|
||||
created () {
|
||||
this.$http.get('/sys/dept/all').then(res => {
|
||||
console.log('获取部门=========>', res)
|
||||
this.departmentSelects = []
|
||||
res.data.data.map(val => {
|
||||
this.departmentSelects.push({ label: val.name, value: val.name })
|
||||
})
|
||||
})
|
||||
// 当前设定的日期时间
|
||||
// const d = new Date()
|
||||
// let year1, month1, day1
|
||||
|
@ -432,9 +459,18 @@ export default {
|
|||
}
|
||||
},
|
||||
computed: {
|
||||
...mapState(['departmentSelects'])
|
||||
// ...mapState(['departmentSelects'])
|
||||
},
|
||||
methods: {
|
||||
chagneCheckbox () {
|
||||
if (this.checked) {
|
||||
this.tableData = this.tableDataClone.filter(val => val.count !== 0)
|
||||
this.total = this.tableData.length
|
||||
} else {
|
||||
this.tableData = this.tableDataClone
|
||||
this.total = this.tableData.length
|
||||
}
|
||||
},
|
||||
closeModal () {
|
||||
this.detailsVisible = false
|
||||
},
|
||||
|
@ -529,7 +565,14 @@ export default {
|
|||
parseInt(result[i].hys)
|
||||
}
|
||||
this.tableData = res.data.data
|
||||
this.tableDataClone = res.data.data
|
||||
this.total = res.data.data.total
|
||||
this.exportExcelCondition = qs.stringify({
|
||||
approveStatus: this.status,
|
||||
deptId: this.abilityDepartment,
|
||||
startDate: this.startDate,
|
||||
endDate: this.endDate
|
||||
})
|
||||
})
|
||||
},
|
||||
// 组件服务部门使用情况列表-改为能力使用统计
|
||||
|
@ -587,7 +630,14 @@ export default {
|
|||
parseInt(result[i].hys)
|
||||
}
|
||||
this.tableData = res.data.data
|
||||
this.tableDataClone = res.data.data
|
||||
this.total = res.data.data.total
|
||||
this.exportExcelCondition = qs.stringify({
|
||||
approveStatus: this.status,
|
||||
deptId: this.abilityDepartment,
|
||||
startDate: this.startDate,
|
||||
endDate: this.endDate
|
||||
})
|
||||
})
|
||||
},
|
||||
// 点击查看详情
|
||||
|
@ -661,7 +711,14 @@ export default {
|
|||
.then((res) => {
|
||||
console.log('111111', this.tableData, res.data.data)
|
||||
this.tableData = res.data.data
|
||||
this.tableDataClone = res.data.data
|
||||
this.total = res.data.data.total
|
||||
this.exportExcelCondition = qs.stringify({
|
||||
approveStatus: this.status,
|
||||
deptId: this.abilityDepartment,
|
||||
startDate: this.startDate,
|
||||
endDate: this.endDate
|
||||
})
|
||||
})
|
||||
},
|
||||
// 能力使用明细
|
||||
|
@ -692,7 +749,14 @@ export default {
|
|||
})
|
||||
.then((res) => {
|
||||
this.tableData = res.data.data
|
||||
this.tableDataClone = res.data.data
|
||||
this.total = res.data.data.total
|
||||
this.exportExcelCondition = qs.stringify({
|
||||
approveStatus: this.status,
|
||||
deptId: this.abilityDepartment,
|
||||
startDate: this.startDate,
|
||||
endDate: this.endDate
|
||||
})
|
||||
})
|
||||
},
|
||||
getReleaseTree (page) {
|
||||
|
@ -793,12 +857,14 @@ export default {
|
|||
// },
|
||||
// 选择发布or使用表格
|
||||
handleChose (index) {
|
||||
this.checked = false
|
||||
this.departmentId = index
|
||||
if (index === 1) {
|
||||
if (this.choseId === 0) {
|
||||
if (!this.detailFlag) {
|
||||
this.detailFlag = !this.detailFlag
|
||||
}
|
||||
this.exportExcelType = 'SelectDeptDetailTypeCountList'
|
||||
this.getFirstTree()
|
||||
} else if (this.choseId === 1) {
|
||||
// this.getReleaseTree()
|
||||
|
@ -808,6 +874,7 @@ export default {
|
|||
if (!this.detailFlag) {
|
||||
this.detailFlag = !this.detailFlag
|
||||
}
|
||||
this.exportExcelType = 'SelectApplyDeptDetailTypeCountList'
|
||||
this.getSecondTree()
|
||||
} else {
|
||||
// this.getUsedTree()
|
||||
|
@ -815,6 +882,7 @@ export default {
|
|||
} else if (index === 3) {
|
||||
this.detailFlag = false
|
||||
if (this.choseId === 0) {
|
||||
this.exportExcelType = 'SelectCensusResourceTable'
|
||||
this.getOneDetail()
|
||||
} else {
|
||||
// this.getUsedTree()
|
||||
|
@ -822,6 +890,7 @@ export default {
|
|||
} else if (index === 4) {
|
||||
this.detailFlag = false
|
||||
if (this.choseId === 0) {
|
||||
this.exportExcelType = 'SelectCensusApplyTable'
|
||||
this.getTwoDetail()
|
||||
} else {
|
||||
// this.getUsedTree()
|
||||
|
@ -861,6 +930,7 @@ export default {
|
|||
},
|
||||
// 返回按钮
|
||||
goToBack () {
|
||||
this.checked = false
|
||||
// departmentId 1,3 2,4 两个值共同判断
|
||||
this.detailFlag = !this.detailFlag
|
||||
if (this.departmentId === 3) {
|
||||
|
@ -911,6 +981,13 @@ export default {
|
|||
this.examineStatus = ''
|
||||
this.abilityDepartment = ''
|
||||
this.abilityType = ''
|
||||
this.approveStatus = ''
|
||||
this.exportExcelCondition = qs.stringify({
|
||||
approveStatus: this.status,
|
||||
deptId: this.abilityDepartment,
|
||||
startDate: this.startDate,
|
||||
endDate: this.endDate
|
||||
})
|
||||
if (this.departmentId === 1) {
|
||||
// if (this.detailFlag) {
|
||||
// this.handleChose(3)
|
||||
|
@ -1100,4 +1177,31 @@ input::placeholder {
|
|||
text-overflow: ellipsis;
|
||||
word-break: break-all;
|
||||
}
|
||||
.export {
|
||||
display: inline-block;
|
||||
width: 70px;
|
||||
height: 40px;
|
||||
line-height: 40px;
|
||||
text-align: center;
|
||||
border-radius: 5px;
|
||||
background: #fff;
|
||||
border: 1px solid #dcdfe6;
|
||||
color: #000;
|
||||
}
|
||||
.export:hover {
|
||||
border-color: #c5ddfd;
|
||||
background-color: #ecf4fe;
|
||||
color: #0058e1;
|
||||
text-decoration: none;
|
||||
}
|
||||
.export:active {
|
||||
border-color: #c5ddfd;
|
||||
background-color: #ecf4fe;
|
||||
color: #0058e1;
|
||||
text-decoration: none;
|
||||
}
|
||||
.export:visited {
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
}
|
||||
</style>
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -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(() => {})
|
||||
},
|
||||
// 获取信息
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -8,8 +8,8 @@
|
|||
var _global = {}
|
||||
var CONFIGITEM = {
|
||||
// version: 'qingdao', //青岛
|
||||
// version: 'xihaian', // 西海岸
|
||||
version: 'qingdao', // 开发
|
||||
version: 'xihaian', // 西海岸
|
||||
// version: 'qingdao', // 开发
|
||||
// version: 'zhanTingDev', // 展厅dev (2022-09-13:姜永超让添加)
|
||||
// version: 'qingdao', // 测试
|
||||
//version: 'frp', // 内网穿透
|
||||
|
@ -28,7 +28,8 @@ var CONFIGITEM = {
|
|||
previewUrl: 'http://15.72.183.90:7008/',
|
||||
//frontUrl: 'http://15.72.183.90:7008/document/#/devModelFile/',
|
||||
//apiURL: 'http://15.72.183.90:8000/renren-admin',
|
||||
websocketURL: '15.72.183.90:8000/renren-admin',
|
||||
// websocketURL: '15.72.183.90:8000/renren-admin',
|
||||
// websocketURL: '192.168.124.233:8888/renren-admin',
|
||||
POI_URL:
|
||||
'http://15.72.178.129:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address',
|
||||
},
|
||||
|
@ -62,8 +63,9 @@ var CONFIGITEM = {
|
|||
},
|
||||
// 获取摄像头的后端接口地址
|
||||
camreaInfo: {
|
||||
// cameraUrl: '10.134.135.92:9537', // 测试环境
|
||||
cameraUrl: '10.134.135.9:9537', // 生产环境
|
||||
// cameraUrl: '10.134.135.92:9537', // 西海岸-测试环境
|
||||
// cameraUrl: '10.134.135.9:9537', // 西海岸-生产环境
|
||||
cameraUrl: '192.168.124.236:9537', // 远雄(不挂vpn可直接连)
|
||||
},
|
||||
backUrl: 'http://10.134.135.9:9797',
|
||||
previewUrl: 'http://10.134.135.9:9796/',
|
||||
|
|
|
@ -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)) {
|
||||
|
|
|
@ -262,7 +262,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="top-content-father">
|
||||
<infrastructurePage ref="camera" :searchValue="searchValue" />
|
||||
<infrastructurePage ref="camera" :searchValue="searchValue" :searchType="searchType" />
|
||||
</div>
|
||||
</div>
|
||||
<div class="top" v-else>
|
||||
|
@ -494,8 +494,11 @@ export default defineComponent({
|
|||
const router = useRouter()
|
||||
let select = router.currentRoute.value.query.select || DETAIL_PAGE_CONTENT_DEFAULT_TAB
|
||||
const select2 = router.currentRoute.value.query.select
|
||||
const type2 = router.currentRoute.value.query.type
|
||||
const queryName=ref('')
|
||||
const str = router.currentRoute.value.query.str
|
||||
const searchValue = ref(str)
|
||||
const searchType= ref(str)
|
||||
let tecHnosphere = router.currentRoute.value.query.tecHnosphere
|
||||
let appLiCation = router.currentRoute.value.query.appLiCation
|
||||
const Cardsname = ref(select)
|
||||
|
@ -682,6 +685,7 @@ export default defineComponent({
|
|||
}
|
||||
|
||||
ListContent.records.forEach((val) => {
|
||||
|
||||
if (!val) {
|
||||
return
|
||||
}
|
||||
|
@ -689,6 +693,7 @@ export default defineComponent({
|
|||
paramsGetResources.infoList = paramsGetResources.infoList.filter(
|
||||
(item) => item.attrType !== name
|
||||
)
|
||||
|
||||
if (
|
||||
val.selectedTags &&
|
||||
val.selectedTags.indexOf(tag.dict_label) == -1
|
||||
|
@ -798,7 +803,34 @@ export default defineComponent({
|
|||
ListContentCopy.value = JSON.parse(JSON.stringify(dataCopy))
|
||||
ListContent.records = []
|
||||
ListContent.records = JSON.parse(JSON.stringify(dataCopy))
|
||||
if(select2=='组件服务'){
|
||||
queryName.value='组件类型'
|
||||
}else if(select2=='应用资源'){
|
||||
queryName.value='应用领域'
|
||||
}else{
|
||||
queryName.value=''
|
||||
}
|
||||
ListContent.records.forEach((val) => {
|
||||
|
||||
if (!val) {
|
||||
return
|
||||
}
|
||||
if (val.name === queryName.value ) {
|
||||
if (
|
||||
val.selectedTags &&
|
||||
val.selectedTags.indexOf(type2) == -1
|
||||
) {
|
||||
val.selectedTags = [type2]
|
||||
} else {
|
||||
val.selectedTags &&
|
||||
val.selectedTags.splice(
|
||||
val.selectedTags.indexOf(type2),
|
||||
1
|
||||
)
|
||||
}
|
||||
|
||||
}
|
||||
})
|
||||
// 智能算法-特殊处理
|
||||
if (whoShow1.value.itShowXiHaiAn) {
|
||||
if (!storageSearchInfo) {
|
||||
|
@ -859,6 +891,7 @@ export default defineComponent({
|
|||
// 校验
|
||||
const re = /^[0-9\u4E00-\u9FA5]*$/
|
||||
const getAppResources2 = () => {
|
||||
|
||||
globalFlag.value = false
|
||||
if (
|
||||
whoShow1.value.itShowQingDao &&
|
||||
|
@ -1236,7 +1269,24 @@ export default defineComponent({
|
|||
if (searchValue.value && !select2) {
|
||||
globalSearch()
|
||||
} else {
|
||||
paramsGetResources.infoList=[]
|
||||
if(select2=='组件服务'){
|
||||
queryName.value='组件类型'
|
||||
}else if(select2=='应用资源'){
|
||||
queryName.value='应用领域'
|
||||
}else if(select2=='基础设施'){
|
||||
searchType.value=type2
|
||||
}else{
|
||||
queryName.value=type2
|
||||
searchType.value=''
|
||||
}
|
||||
let info={attrType:queryName.value, attrValue: type2}
|
||||
paramsGetResources.infoList.push(info)
|
||||
paramsGetResources.type=select2
|
||||
getAppResources2()
|
||||
|
||||
|
||||
listKey.value++
|
||||
}
|
||||
}
|
||||
})
|
||||
|
|
|
@ -8,36 +8,93 @@
|
|||
</div>
|
||||
<div class="form-container">
|
||||
<div v-if="applySuccess">
|
||||
<a-form ref="formRef" :model="formName" name="basic" :label-col="{ style: { width: '106px' } }"
|
||||
:wrapper-col="{ style: { width: '230px' } }" labelAlign="left" autocomplete="off">
|
||||
<a-form
|
||||
ref="formRef"
|
||||
:model="formName"
|
||||
name="basic"
|
||||
:label-col="{ style: { width: '106px' } }"
|
||||
:wrapper-col="{ style: { width: '230px' } }"
|
||||
labelAlign="left"
|
||||
autocomplete="off"
|
||||
>
|
||||
<div class="base-info flex-row-start">
|
||||
<a-form-item label="申请标题" name="title" :rules="[{ required: true, message: '请输入申请标题' }]">
|
||||
<a-input placeholder="请输入能力申请标题" v-model:value="formName.title" />
|
||||
<a-form-item
|
||||
label="申请标题"
|
||||
name="title"
|
||||
:rules="[{ required: true, message: '请输入申请标题' }]"
|
||||
>
|
||||
<a-input
|
||||
placeholder="请输入能力申请标题"
|
||||
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
|
||||
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 label="申请人信息" name="user" :rules="[{ required: true, message: '请输入申请人' }]">
|
||||
<a-input placeholder="请输入申请人" v-model:value="formName.user" disabled />
|
||||
<a-form-item
|
||||
label="申请人信息"
|
||||
name="user"
|
||||
:rules="[{ required: true, message: '请输入申请人' }]"
|
||||
>
|
||||
<a-input
|
||||
placeholder="请输入申请人"
|
||||
v-model:value="formName.user"
|
||||
disabled
|
||||
/>
|
||||
</a-form-item>
|
||||
<a-form-item style="margin: 0 22px" label="电话" name="phone" :rules="[
|
||||
<a-form-item
|
||||
style="margin: 0 22px"
|
||||
label="电话"
|
||||
name="phone"
|
||||
:rules="[
|
||||
{
|
||||
required: true,
|
||||
pattern: /^1[3456789]\d{9}$/,
|
||||
message: '请输入正确的电话号码',
|
||||
},
|
||||
]">
|
||||
<a-input placeholder="请输入申请人电话" v-model:value="formName.phone" />
|
||||
]"
|
||||
>
|
||||
<a-input
|
||||
placeholder="请输入申请人电话"
|
||||
v-model:value="formName.phone"
|
||||
/>
|
||||
</a-form-item>
|
||||
<a-form-item label="单位" name="unit" :rules="[{ required: true, message: '请输入单位' }]">
|
||||
<a-input placeholder="请输入单位" v-model:value="formName.unit" disabled v-if="deptFlage" />
|
||||
<a-select v-else placeholder="请选择归属部门" v-model:value="formName.unit" @change="deptIdChangeFunction">
|
||||
<a-select-option v-for="(item, index) in deptNameAll" :key="`${index}-${item}`" :value="item.name">
|
||||
<a-form-item
|
||||
label="单位"
|
||||
name="unit"
|
||||
:rules="[{ required: true, message: '请输入单位' }]"
|
||||
>
|
||||
<a-input
|
||||
placeholder="请输入单位"
|
||||
v-model:value="formName.unit"
|
||||
disabled
|
||||
v-if="deptFlage"
|
||||
/>
|
||||
<a-select
|
||||
v-else
|
||||
placeholder="请选择归属部门"
|
||||
v-model:value="formName.unit"
|
||||
@change="deptIdChangeFunction"
|
||||
>
|
||||
<a-select-option
|
||||
v-for="(item, index) in deptNameAll"
|
||||
:key="`${index}-${item}`"
|
||||
:value="item.name"
|
||||
>
|
||||
{{ item.name }}
|
||||
</a-select-option>
|
||||
</a-select>
|
||||
|
@ -45,29 +102,63 @@
|
|||
</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: '请选择应用系统' }]">
|
||||
<a-select v-model:value="formName.applicationSystem" show-search placeholder="请选择应用系统"
|
||||
style="width: 230px" :options="systemOptions" @focus="handleFocus" @blur="handleBlur"
|
||||
@change="systemHandleChange" @search="systemHandleSearch"></a-select>
|
||||
<a-form-item
|
||||
style="margin-bottom: 0"
|
||||
label="应用系统"
|
||||
name="applicationSystem"
|
||||
:rules="[{ required: true, message: '请选择应用系统' }]"
|
||||
>
|
||||
<a-select
|
||||
v-model:value="formName.applicationSystem"
|
||||
show-search
|
||||
placeholder="请选择应用系统"
|
||||
style="width: 230px"
|
||||
:options="systemOptions"
|
||||
@focus="handleFocus"
|
||||
@blur="handleBlur"
|
||||
@change="systemHandleChange"
|
||||
@search="systemHandleSearch"
|
||||
></a-select>
|
||||
</a-form-item>
|
||||
<span style="font-size: 12px; color: #666; padding-left: 106px">
|
||||
<span
|
||||
style="font-size: 12px; color: #666; padding-left: 106px"
|
||||
>
|
||||
如选项没有系统请新增
|
||||
</span>
|
||||
</div>
|
||||
<a-form-item class="applicationScene" label="应用领域" name="applicationScene"
|
||||
:rules="[{ required: true, message: '请选择应用领域' }]" style="width: 6.93rem">
|
||||
<a-select v-model:value="formName.applicationScene" :options="applicationSceneOpthion" mode="tags"
|
||||
:size="size" placeholder="请选择应用领域" :filterOption="false" :searchValue="false"
|
||||
style="width: 5.87rem"></a-select>
|
||||
<a-form-item
|
||||
class="applicationScene"
|
||||
label="应用领域"
|
||||
name="applicationScene"
|
||||
:rules="[{ required: true, message: '请选择应用领域' }]"
|
||||
style="width: 6.93rem"
|
||||
>
|
||||
<a-select
|
||||
v-model:value="formName.applicationScene"
|
||||
:options="applicationSceneOpthion"
|
||||
mode="tags"
|
||||
:size="size"
|
||||
placeholder="请选择应用领域"
|
||||
:filterOption="false"
|
||||
:searchValue="false"
|
||||
style="width: 5.87rem"
|
||||
></a-select>
|
||||
</a-form-item>
|
||||
</div>
|
||||
<div>
|
||||
<a-form-item label="需求依据" name="applicationBackground" :rules="[
|
||||
<a-form-item
|
||||
label="需求依据"
|
||||
name="applicationBackground"
|
||||
:rules="[
|
||||
{ required: true, message: '请输入需求依据' },
|
||||
{ min: 50, message: '需求依据最少为50个字' },
|
||||
]">
|
||||
<a-textarea placeholder="请输入需求依据" v-model:value="formName.applicationBackground" :rows="4" />
|
||||
]"
|
||||
>
|
||||
<a-textarea
|
||||
placeholder="请输入需求依据"
|
||||
v-model:value="formName.applicationBackground"
|
||||
:rows="4"
|
||||
/>
|
||||
</a-form-item>
|
||||
</div>
|
||||
|
||||
|
@ -75,9 +166,20 @@
|
|||
<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-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>
|
||||
|
@ -90,16 +192,31 @@
|
|||
</a-row>
|
||||
<a-row>
|
||||
<a-col :span="24" style="margin-left: 106px">
|
||||
<a href="/static/download/感知资源申请表.doc" download="感知资源申请表">感知资源申请表模板下载</a>
|
||||
<a
|
||||
href="/static/download/感知资源申请表.doc"
|
||||
download="感知资源申请表"
|
||||
>
|
||||
感知资源申请表模板下载
|
||||
</a>
|
||||
</a-col>
|
||||
</a-row>
|
||||
</div>
|
||||
|
||||
<div class="bottom-btn">
|
||||
<a-button class="cancel-apply" type="primary" html-type="cancle" @click="resetFields()">
|
||||
<a-button
|
||||
class="cancel-apply"
|
||||
type="primary"
|
||||
html-type="cancle"
|
||||
@click="resetFields()"
|
||||
>
|
||||
退出申请
|
||||
</a-button>
|
||||
<a-button class="confirm-apply" type="primary" html-type="submit" @click="processStartHandle()">
|
||||
<a-button
|
||||
class="confirm-apply"
|
||||
type="primary"
|
||||
html-type="submit"
|
||||
@click="processStartHandle()"
|
||||
>
|
||||
提交申请
|
||||
</a-button>
|
||||
</div>
|
||||
|
@ -143,6 +260,7 @@ 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 { useStore } from 'vuex'
|
||||
import * as moment from 'moment'
|
||||
|
||||
export default {
|
||||
|
@ -154,6 +272,8 @@ export default {
|
|||
},
|
||||
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')))
|
||||
|
@ -211,8 +331,17 @@ export default {
|
|||
// 西海岸-判断是否是基础设施-摄像头
|
||||
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 == '开发区公安分局'))
|
||||
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 &&
|
||||
|
@ -661,11 +790,14 @@ export default {
|
|||
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)
|
||||
}
|
||||
|
@ -755,7 +887,11 @@ export default {
|
|||
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
|
||||
facilitiesType:
|
||||
list.value[0] &&
|
||||
list.value[0].arr &&
|
||||
list.value[0].arr[0] &&
|
||||
list.value[0].arr[0].type,
|
||||
},
|
||||
})
|
||||
}, 1000)
|
||||
|
|
|
@ -47,6 +47,7 @@ const integrationOrder = reactive({
|
|||
|
||||
// 融合服务--排序
|
||||
const changeOrder = (i, val, type) => {
|
||||
|
||||
console.log('i, val, type------------>', i, val, type);
|
||||
integrationOrder.orderField = val
|
||||
integrationOrder.orderType = type;
|
||||
|
|
|
@ -230,6 +230,21 @@
|
|||
</span>
|
||||
</template>
|
||||
</div>
|
||||
<div
|
||||
v-if="
|
||||
selectCardsname === '打包模式'
|
||||
"
|
||||
class="label-content1"
|
||||
>
|
||||
发布时间:
|
||||
<template v-if="item.createDate">
|
||||
<span>
|
||||
{{ item.createDate.substring(0, 10) + ' ' }}
|
||||
</span>
|
||||
<span>{{ item.createDate.substring(11, 19) }}</span>
|
||||
</template>
|
||||
<template v-else>--</template>
|
||||
</div>
|
||||
<div v-else>
|
||||
发布时间:
|
||||
<template v-if="item.createDate">
|
||||
|
@ -989,7 +1004,7 @@
|
|||
margin: 0 10px 0 0;
|
||||
|
||||
.header-right {
|
||||
display: flex;
|
||||
// display: flex;
|
||||
font-size: 14px;
|
||||
color: #212121;
|
||||
|
||||
|
|
|
@ -91,6 +91,10 @@ export default defineComponent({
|
|||
})
|
||||
}
|
||||
treeData.value = res.data && res.data.data || []
|
||||
// 只有一个,默认展开到二级菜单
|
||||
if(res.data && res.data.data.length == 1) {
|
||||
showBottom(treeData.value[0])
|
||||
}
|
||||
}
|
||||
}
|
||||
mybus.on('getDeptList', () => {
|
||||
|
|
|
@ -480,6 +480,7 @@ import moment from 'moment'
|
|||
const props = defineProps({
|
||||
// 模糊查
|
||||
searchValue: { type: String, default: '' },
|
||||
searchType: { type: String, default: '' },
|
||||
})
|
||||
const current = ref(1)
|
||||
const videoTotal = ref(0)
|
||||
|
@ -621,6 +622,9 @@ const lookData = ref({})
|
|||
if (props.searchValue) {
|
||||
mapSearchParam.value.cameraName = props.searchValue
|
||||
}
|
||||
if (props.searchType) {
|
||||
tabClick(0, props.searchType.value)
|
||||
}
|
||||
// 消息列表页面
|
||||
let formPage = router.currentRoute.value.query.formPage || ''
|
||||
// 设施类型--无人机和单兵设备
|
||||
|
@ -835,6 +839,7 @@ const look = (row) => {
|
|||
}
|
||||
// 搜索
|
||||
const onSearch = (searchValue) => {
|
||||
debugger
|
||||
searchData()
|
||||
chengguoSearch()
|
||||
}
|
||||
|
@ -1128,14 +1133,6 @@ const selectType = ref('政务云资源')
|
|||
let tableHeight = ref('600')
|
||||
//tab切换点击事件
|
||||
const tabClick = (indexFather, name) => {
|
||||
console.log(
|
||||
'点击tab================>',
|
||||
indexFather,
|
||||
name,
|
||||
clickList.value,
|
||||
clickList.value[indexFather]
|
||||
)
|
||||
|
||||
selectedRowKeys.value = []
|
||||
selectedList.value = []
|
||||
if (clickList.value[indexFather].content.indexOf(name) != -1) {
|
||||
|
|
|
@ -146,17 +146,18 @@ const getAppResources = (type, obj) => {
|
|||
num: res.data.data[key],
|
||||
})
|
||||
}
|
||||
} else if(key !== '云资源') { //云资源--暂时隐藏
|
||||
}
|
||||
else {
|
||||
jcList.value.push({
|
||||
name: key,
|
||||
num: res.data.data[key],
|
||||
})
|
||||
}
|
||||
}
|
||||
jcList.value.push({
|
||||
name: '会客厅',
|
||||
num: 4,
|
||||
})
|
||||
// jcList.value.push({
|
||||
// name: '会客厅',
|
||||
// num: 4,
|
||||
// })
|
||||
// 西海岸-单兵设备、无人机 获取数量
|
||||
if (whoShow1.value.itShowXiHaiAn) {
|
||||
getSoldierData('无人机')
|
||||
|
@ -328,11 +329,18 @@ const selectOne11 = (name) => {
|
|||
})
|
||||
}
|
||||
const selectOne2 = (name) => {
|
||||
console.log('点击===============》', name)
|
||||
let names=''
|
||||
if(name ==='云资源'){
|
||||
names='政务云资源'
|
||||
} else if(name ==='会客厅'){
|
||||
names='城市云脑会客厅'
|
||||
}else{
|
||||
names=name
|
||||
}
|
||||
router.push({
|
||||
path: '/DetailsPageconetent',
|
||||
query: {
|
||||
type: name,
|
||||
type: names,
|
||||
select: '基础设施',
|
||||
},
|
||||
})
|
||||
|
|
|
@ -62,7 +62,7 @@
|
|||
<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="否"
|
||||
<a-popconfirm class="aaa" v-if="!item.ended" title="是否撤回此流程?" ok-text="是" cancel-text="否"
|
||||
@confirm="endThis(item.instanceId)" @cancel="cancel">
|
||||
<a-button type="primary" danger style="margin-left: 10px">
|
||||
撤回申请
|
||||
|
@ -463,7 +463,19 @@ const openView = (url) => {
|
|||
}
|
||||
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.aaa{
|
||||
margin-right: 30px;
|
||||
}
|
||||
:deep(.ant-popover-inner) {
|
||||
position: fixed !important;
|
||||
|
||||
margin-right: 100px;
|
||||
|
||||
|
||||
|
||||
}
|
||||
.title {
|
||||
font-size: 0.18rem;
|
||||
color: #000;
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
<div class="title">基本信息</div>
|
||||
<a-popconfirm
|
||||
v-if="!props.refObj.ended"
|
||||
title="是否终止此流程?"
|
||||
title="是否撤回此流程?"
|
||||
ok-text="是"
|
||||
cancel-text="否"
|
||||
@confirm="endThis"
|
||||
|
|
Loading…
Reference in New Issue