Merge branch 'hi-ucs-dev' of http://192.168.124.50:80/wuhongjian/hi-ucs into hi-ucs-dev

This commit is contained in:
gongjiale 2022-10-19 10:45:54 +08:00
commit 7a0d2ba101
31 changed files with 3303 additions and 2437 deletions

View File

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

View File

@ -104,7 +104,7 @@ router.beforeEach((to, from, next) => {
Vue.prototype.$message.error(res.msg) Vue.prototype.$message.error(res.msg)
return next({ name: 'login' }) 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) fnAddDynamicMenuRoutes(window.SITE_CONFIG.menuList)
next({ ...to, replace: true }) next({ ...to, replace: true })
}).catch(() => { }).catch(() => {

View File

@ -1,12 +1,12 @@
/* /*
* @Author: hisense.guoyue * @Author: hisense.guoyue
* @Date: 2022-08-23 10:30:11 * @Date: 2022-08-23 10:30:11
* @LastEditors: hisense.guoyue * @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-10-02 14:47:05 * @LastEditTime: 2022-10-18 17:44:33
* @Description: 判断当前环境是西海岸还是青岛市局 * @Description: 判断当前环境是西海岸还是青岛市局
*/ */
const returnLocationStr = () => { const returnLocationStr = () => {
return CONFIGITEM.version return CONFIGITEM.version === 'xihaian' ? 'xihaian' : 'qingdao'
} }
export default returnLocationStr export default returnLocationStr

View File

@ -1,8 +1,8 @@
<!-- <!--
* @Author: kongjun qdkongjun@gmail.com * @Author: kongjun qdkongjun@gmail.com
* @Date: 2022-06-20 09:29:59 * @Date: 2022-06-20 09:29:59
* @LastEditors: kongjun qdkongjun@gmail.com * @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-06-22 10:04:56 * @LastEditTime: 2022-10-18 15:46:51
* @FilePath: \back\src\views\main-sidebar.vue * @FilePath: \back\src\views\main-sidebar.vue
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
--> -->
@ -25,7 +25,7 @@
:menu="menu" :menu="menu"
> >
<span>sdddd</span> <span>sdddd</span>
</sub-menu> </sub-menu>
</div> </div>
</el-menu> </el-menu>
@ -35,63 +35,72 @@
<script> <script>
import http from '@/utils/request' import http from '@/utils/request'
import SubMenu from "./main-sidebar-sub-menu"; import SubMenu from './main-sidebar-sub-menu'
import returnLocationStr from '@/utils/location'; import returnLocationStr from '@/utils/location'
import bus from '@/views/bus.js'
export default { export default {
data() { data () {
return { return {
numObject:{} numObject: {}
}; }
}, },
components: { components: {
SubMenu, SubMenu
}, },
created() { created () {
this.getNum() 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: { methods: {
getNum(){ getNum () {
http.get('/act/task/myToDoTaskNum').then(({ data: res }) => { http.get('/act/task/myToDoTaskNum').then(({ data: res }) => {
this.numObject=res.data this.numObject = res.data
let menuList= window.SITE_CONFIG["menuList"]; const menuList = window.SITE_CONFIG.menuList
for(var i=0;i<menuList.length;i++){ console.log('menuList====>', menuList)
let menu=menuList[i]; console.log('this.numObject====>', this.numObject)
if(menu.id=='1541261628388888578'){// for (var i = 0; i < menuList.length; i++) {
let daibanNum=0 const menu = menuList[i]
for(let j=0;j<menu.children.length;j++){ if (menu.id == '1541261628388888578') { //
let children=menu.children[j] let daibanNum = 0
if(children.id=="1541261780432408577"){// v2 for (let j = 0; j < menu.children.length; j++) {
//西 v2 v3 const children = menu.children[j]
children.total= returnLocationStr() == 'qingdao' ? Number(this.numObject.abilityprocess_v3) : Number(this.numObject.abilityprocess_v2) if (children.id == '1541261780432408577') { // v2
daibanNum=Number(daibanNum)+Number(children.total) // 西 v2 v3
} if(children.id=="1559376285703081986"){// children.total = returnLocationStr() == 'qingdao' ? Number(this.numObject.abilityprocess_v3) : Number(this.numObject.abilityprocess_v2)
children.total=Number(this.numObject.meetingroom_book) daibanNum = Number(daibanNum) + Number(children.total)
daibanNum=Number(daibanNum)+Number(children.total) } if (children.id == '1559376285703081986') { //
}if(children.id=="1545292602084827138"){// children.total = Number(this.numObject.meetingroom_book)
children.total=Number(this.numObject.resourcemountapply) daibanNum = Number(daibanNum) + Number(children.total)
daibanNum=Number(daibanNum)+Number(children.total) } if (children.id == '1545292602084827138') { //
}if(children.id=="1545312045695377410"){// children.total = Number(this.numObject.resourcemountapply)
children.total=Number(this.numObject.abilitydemandapply) daibanNum = Number(daibanNum) + Number(children.total)
daibanNum=Number(daibanNum)+Number(children.total) } if (children.id == '1545312045695377410') { //
}if(children.id=="1545313018614521857"){// children.total = Number(this.numObject.abilitydemandapply)
children.total=Number(this.numObject.resourcundercarriageapply) daibanNum = Number(daibanNum) + Number(children.total)
daibanNum=Number(daibanNum)+Number(children.total) } if (children.id == '1545313018614521857') { //
}if(children.id=="1545313754106699777"){// children.total = Number(this.numObject.resourcundercarriageapply)
children.total=Number(this.numObject.comment_review) daibanNum = Number(daibanNum) + Number(children.total)
daibanNum=Number(daibanNum)+Number(children.total) } if (children.id == '1545313754106699777') { //
}if(children.id=="1554294862931562498"){// children.total = Number(this.numObject.comment_review)
children.total=0 daibanNum = Number(daibanNum) + Number(children.total)
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
})
} }
} }
this.$store.state.sidebarMenuList=menuList }
})
}
}};
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">
.aui-sidebar { .aui-sidebar {

View File

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

View File

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

@ -58,6 +58,7 @@
<el-select <el-select
v-model="abilityDepartment" v-model="abilityDepartment"
placeholder="请选择部门" placeholder="请选择部门"
filterable
clearable clearable
> >
<el-option label="全部" value=""></el-option> <el-option label="全部" value=""></el-option>
@ -94,6 +95,11 @@
$t('reset') $t('reset')
}}</el-button> }}</el-button>
</el-form-item> </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-form>
<el-card shadow="never" class="aui-card--fill" v-if="homeIsShow"> <el-card shadow="never" class="aui-card--fill" v-if="homeIsShow">
<div class="mod-demand__bsdemand"> <div class="mod-demand__bsdemand">
@ -213,6 +219,8 @@
<el-table <el-table
:data="tableData" :data="tableData"
:header-cell-style="{ textAlign: 'center',height:'96px' }"
:cell-style="{ textAlign: 'center' }"
style="width: 100%" style="width: 100%"
v-show="this.departmentId === 3 || this.departmentId === 4" v-show="this.departmentId === 3 || this.departmentId === 4"
> >
@ -273,12 +281,13 @@
</template> </template>
<script> <script>
import Cookies from 'js-cookie'
import componentServices from './componentServices.vue' import componentServices from './componentServices.vue'
import AbilityDetail from './components/abilityDetails' import AbilityDetail from './components/abilityDetails'
import applicationResources from './applicationResources.vue' import applicationResources from './applicationResources.vue'
import ComponentUsed from './componentUsed.vue' import ComponentUsed from './componentUsed.vue'
import qs from 'qs'
import { mapState } from 'vuex' // import { mapState } from 'vuex'
// const props = defineProps({ // const props = defineProps({
// processDefinitionName: { type: String, default: null }, // processDefinitionName: { type: String, default: null },
// businessKey: { type: String, default: null }, // businessKey: { type: String, default: null },
@ -291,6 +300,11 @@ export default {
components: { componentServices, applicationResources, ComponentUsed, AbilityDetail }, components: { componentServices, applicationResources, ComponentUsed, AbilityDetail },
data () { data () {
return { return {
departmentSelects: [],
exportExcel: CONFIGITEM.configData[CONFIGITEM.version].apiURL + '/census/center/export',
exportExcelCondition: '',
exportExcelType: '',
token: Cookies.get('ucsToken'),
detailType: '', detailType: '',
detailParamss: {}, detailParamss: {},
isBack: true, isBack: true,
@ -374,7 +388,7 @@ export default {
{ name: '基础设施', key: 3 }, { name: '基础设施', key: 3 },
{ name: '数据资源', key: 4 }, { name: '数据资源', key: 4 },
{ name: '知识库', key: 5 }, { name: '知识库', key: 5 },
{ name: '会议室', value: 6} { name: '会议室', value: 6 }
], ],
tableData: [], tableData: [],
tableData2: [ tableData2: [
@ -399,7 +413,7 @@ export default {
{ name: '通用开发组件', value: 3 }, { name: '通用开发组件', value: 3 },
{ name: '页面开发组件', value: 4 }, { name: '页面开发组件', value: 4 },
{ name: '应用资源', value: 5 }, { name: '应用资源', value: 5 },
{ name: '会议室', value: 6} { name: '会议室', value: 6 }
], // ], //
detailFlag: false, // detailFlag: false, //
startDate: '', // startDate: '', //
@ -407,6 +421,13 @@ export default {
} }
}, },
created () { 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() // const d = new Date()
// let year1, month1, day1 // let year1, month1, day1
@ -432,7 +453,7 @@ export default {
} }
}, },
computed: { computed: {
...mapState(['departmentSelects']) // ...mapState(['departmentSelects'])
}, },
methods: { methods: {
closeModal () { closeModal () {
@ -482,7 +503,7 @@ export default {
this.status = '审核中' this.status = '审核中'
} else if (this.examineStatus == '1') { } else if (this.examineStatus == '1') {
this.status = '通过' this.status = '通过'
}else if (this.examineStatus == '2') { } else if (this.examineStatus == '2') {
this.status = '不通过' this.status = '不通过'
} else { } else {
this.status = this.examineStatus this.status = this.examineStatus
@ -530,6 +551,12 @@ export default {
} }
this.tableData = res.data.data this.tableData = res.data.data
this.total = res.data.data.total this.total = res.data.data.total
this.exportExcelCondition = qs.stringify({
approveStatus: this.status,
deptId: this.abilityDepartment,
startDate: this.startDate,
endDate: this.endDate
})
}) })
}, },
// 使-使 // 使-使
@ -588,6 +615,12 @@ export default {
} }
this.tableData = res.data.data this.tableData = res.data.data
this.total = res.data.data.total this.total = res.data.data.total
this.exportExcelCondition = qs.stringify({
approveStatus: this.status,
deptId: this.abilityDepartment,
startDate: this.startDate,
endDate: this.endDate
})
}) })
}, },
// //
@ -641,7 +674,7 @@ export default {
this.status = '审核中' this.status = '审核中'
} else if (this.examineStatus == '1') { } else if (this.examineStatus == '1') {
this.status = '通过' this.status = '通过'
} else if (this.examineStatus == '2') { } else if (this.examineStatus == '2') {
this.status = '不通过' this.status = '不通过'
} else { } else {
this.status = this.examineStatus this.status = this.examineStatus
@ -662,6 +695,12 @@ export default {
console.log('111111', this.tableData, res.data.data) console.log('111111', this.tableData, res.data.data)
this.tableData = res.data.data this.tableData = res.data.data
this.total = res.data.data.total this.total = res.data.data.total
this.exportExcelCondition = qs.stringify({
approveStatus: this.status,
deptId: this.abilityDepartment,
startDate: this.startDate,
endDate: this.endDate
})
}) })
}, },
// 使 // 使
@ -693,6 +732,12 @@ export default {
.then((res) => { .then((res) => {
this.tableData = res.data.data this.tableData = res.data.data
this.total = res.data.data.total this.total = res.data.data.total
this.exportExcelCondition = qs.stringify({
approveStatus: this.status,
deptId: this.abilityDepartment,
startDate: this.startDate,
endDate: this.endDate
})
}) })
}, },
getReleaseTree (page) { getReleaseTree (page) {
@ -799,6 +844,7 @@ export default {
if (!this.detailFlag) { if (!this.detailFlag) {
this.detailFlag = !this.detailFlag this.detailFlag = !this.detailFlag
} }
this.exportExcelType = 'SelectDeptDetailTypeCountList'
this.getFirstTree() this.getFirstTree()
} else if (this.choseId === 1) { } else if (this.choseId === 1) {
// this.getReleaseTree() // this.getReleaseTree()
@ -808,6 +854,7 @@ export default {
if (!this.detailFlag) { if (!this.detailFlag) {
this.detailFlag = !this.detailFlag this.detailFlag = !this.detailFlag
} }
this.exportExcelType = 'SelectApplyDeptDetailTypeCountList'
this.getSecondTree() this.getSecondTree()
} else { } else {
// this.getUsedTree() // this.getUsedTree()
@ -815,6 +862,7 @@ export default {
} else if (index === 3) { } else if (index === 3) {
this.detailFlag = false this.detailFlag = false
if (this.choseId === 0) { if (this.choseId === 0) {
this.exportExcelType = 'SelectCensusResourceTable'
this.getOneDetail() this.getOneDetail()
} else { } else {
// this.getUsedTree() // this.getUsedTree()
@ -822,6 +870,7 @@ export default {
} else if (index === 4) { } else if (index === 4) {
this.detailFlag = false this.detailFlag = false
if (this.choseId === 0) { if (this.choseId === 0) {
this.exportExcelType = 'SelectCensusApplyTable'
this.getTwoDetail() this.getTwoDetail()
} else { } else {
// this.getUsedTree() // this.getUsedTree()
@ -911,6 +960,13 @@ export default {
this.examineStatus = '' this.examineStatus = ''
this.abilityDepartment = '' this.abilityDepartment = ''
this.abilityType = '' 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.departmentId === 1) {
// if (this.detailFlag) { // if (this.detailFlag) {
// this.handleChose(3) // this.handleChose(3)
@ -1100,4 +1156,31 @@ input::placeholder {
text-overflow: ellipsis; text-overflow: ellipsis;
word-break: break-all; 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> </style>

View File

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

View File

@ -38,6 +38,9 @@
</template> </template>
</el-table-column> </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"> <el-table-column label="应用领域" header-align="center" align="center">
<template slot-scope="scope" v-if="scope.row.applicationArea"> <template slot-scope="scope" v-if="scope.row.applicationArea">
<span class="area-text" v-for="(x,i) in JSON.parse(scope.row.applicationArea)" <span class="area-text" v-for="(x,i) in JSON.parse(scope.row.applicationArea)"

View File

@ -47,6 +47,13 @@
}}</span> }}</span>
</template> </template>
</el-table-column> </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 <el-table-column
:label="$t('process.system')" :label="$t('process.system')"
header-align="center" header-align="center"
@ -161,7 +168,8 @@ export default {
created () { created () {
bus.$off('competencyApplicationInit') bus.$off('competencyApplicationInit')
bus.$on('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 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="title" label="申请标题" header-align="center" align="center"></el-table-column>
<el-table-column prop="name" label="申请人信息" header-align="center" align="center"></el-table-column> <el-table-column prop="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"> <el-table-column prop="state" label="审批状态" header-align="center" align="center">
<template slot-scope="scope"> <template slot-scope="scope">
<span>{{wrjStateObj[scope.row.state]}}</span> <span>{{wrjStateObj[scope.row.state]}}</span>
</template> </template>
</el-table-column> </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="dept" label="单位" header-align="center" align="center"></el-table-column>
<el-table-column prop="applicationSystem" label="应用系统" header-align="center" align="center"> <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"> <el-table-column label="应用领域" header-align="center" align="center">
<template slot-scope="scope" v-if="scope.row.applicationArea"> <template slot-scope="scope" v-if="scope.row.applicationArea">
<span class="area-text" v-for="(x,i) in JSON.parse(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> <h3>申请人信息</h3>
<div class="big-BOX"> <div class="big-BOX">
<p> <p>
<span class="text" <span class="text">申请人<span> {{ dataForm.content.user || '--' }}</span></span>
>申请人<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.phone || '--' }}</span></span
>
<span class="text"
>单位<span>{{ dataForm.content.unit || '--' }}</span></span
>
</p> </p>
<p> <p>
<span class="text"> <span class="text">
能力申请标题<span> 能力申请标题<span>
{{ dataForm.content.title || '--' }}</span {{ dataForm.content.title || '--' }}</span></span>
></span <span class="text" v-if="dataForm.content.applicationSystem">应用系统<span>{{
> dataForm.content.applicationSystem || '--'
<span class="text" v-if="dataForm.content.applicationSystem" }}</span></span>
>应用系统<span>{{ <span class="text"></span>
dataForm.content.applicationSystem || '--'
}}</span></span
>
<span class="text" ></span>
</p> </p>
<p> <p>
<span v-if="dataForm.content.applicationSceneStr" <span v-if="dataForm.content.applicationSceneStr">应用场景<span>
>应用场景<span> {{ dataForm.content.applicationSceneStr || '--' }}</span></span>
{{ dataForm.content.applicationSceneStr || '--' }}</span
></span>
</p> </p>
<p> <p>
<span> <span>
需求依据<span> 需求依据<span>
{{ dataForm.content.applicationBackground || '--' }}</span {{ dataForm.content.applicationBackground || '--' }}</span></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>
<!-- <p> <!-- <p>
<span> <span>
@ -102,9 +94,7 @@
<el-radio-button label="退回" class="redAll" @click="showDialog('退回')">退回</el-radio-button> <el-radio-button label="退回" class="redAll" @click="showDialog('退回')">退回</el-radio-button>
</el-radio-group> --> </el-radio-group> -->
<el-button type="primary" @click="showDialog('同意')">同意</el-button> <el-button type="primary" @click="showDialog('同意')">同意</el-button>
<el-button type="danger" plain @click="showDialog('驳回')" <el-button type="danger" plain @click="showDialog('驳回')">驳回</el-button>
>驳回</el-button
>
<!-- <el-input v-if="agreeOrList ==='同意' " v-model="inputAgree" placeholder="请输入同意意见"></el-input> <!-- <el-input v-if="agreeOrList ==='同意' " v-model="inputAgree" placeholder="请输入同意意见"></el-input>
<el-input v-if="agreeOrList ==='退回'" v-model="inputNo" placeholder="请输入退回意见"></el-input> <el-input v-if="agreeOrList ==='退回'" v-model="inputNo" placeholder="请输入退回意见"></el-input>
<el-button class="inputBule" @click="agreeOrNot">提交</el-button> --> <el-button class="inputBule" @click="agreeOrNot">提交</el-button> -->
@ -113,21 +103,12 @@
<!-- 流程详情 --> <!-- 流程详情 -->
<ren-process-detail></ren-process-detail> <ren-process-detail></ren-process-detail>
<el-dialog <el-dialog title="审批意见" :close-on-click-modal="false" :visible.sync="dialogVisible" width="30%"
title="审批意见" :before-close="handleClose">
:close-on-click-modal="false"
:visible.sync="dialogVisible"
width="30%"
:before-close="handleClose"
>
<el-input v-model="input" placeholder="请输入审批意见"></el-input> <el-input v-model="input" placeholder="请输入审批意见"></el-input>
<span slot="footer" class="dialog-footer"> <span slot="footer" class="dialog-footer">
<el-button @click="handleClose2"> </el-button> <el-button @click="handleClose2"> </el-button>
<el-button <el-button type="primary" @click.native="agreeOrNot($store.state.contentTabsActiveName)"> </el-button>
type="primary"
@click.native="agreeOrNot($store.state.contentTabsActiveName)"
> </el-button
>
</span> </span>
</el-dialog> </el-dialog>
</el-card> </el-card>
@ -144,7 +125,7 @@ import bus from '@/views/bus.js'
export default { export default {
// //
mixins: [processModule], mixins: [processModule],
data () { data() {
return { return {
dialogVisible: false, dialogVisible: false,
dialogType: '', dialogType: '',
@ -173,7 +154,7 @@ export default {
agreeOrList: '同意' agreeOrList: '同意'
} }
}, },
created () { created() {
// KEY // KEY
console.log('params=================>', this.$route, this.$route.params) console.log('params=================>', this.$route, this.$route.params)
this.dataForm.taskId = this.$route.params.taskId this.dataForm.taskId = this.$route.params.taskId
@ -207,7 +188,7 @@ export default {
RenProcessDetail RenProcessDetail
}, },
methods: { methods: {
init () { init() {
// this.visible = true // this.visible = true
this.$nextTick(() => { this.$nextTick(() => {
// this.$refs.dataForm.resetFields() // this.$refs.dataForm.resetFields()
@ -219,32 +200,32 @@ export default {
} }
}) })
}, },
showDialog (title) { showDialog(title) {
this.dialogVisible = true this.dialogVisible = true
this.dialogType = title this.dialogType = title
}, },
handleClose (done) { handleClose(done) {
this.$confirm('确认关闭?') this.$confirm('确认关闭?')
.then((_) => { .then((_) => {
this.input = '' this.input = ''
done() done()
}) })
.catch((_) => {}) .catch((_) => { })
}, },
handleClose2 () { handleClose2() {
this.dialogVisible = false this.dialogVisible = false
this.input = '' this.input = ''
}, },
downloadFile2 (url) { downloadFile2(url) {
console.log(window.SITE_CONFIG.previewUrl) console.log(window.SITE_CONFIG.previewUrl)
window.open( window.open(
window.SITE_CONFIG.previewUrl + window.SITE_CONFIG.previewUrl +
'hisense_office/onlinePreview?url=' + 'hisense_office/onlinePreview?url=' +
btoa(encodeURI(url)) btoa(encodeURI(url))
) )
}, },
// //
getInfo () { getInfo() {
let params = '' let params = ''
if (this.dataForm.taskId) { if (this.dataForm.taskId) {
params = `taskId=${this.dataForm.taskId}` params = `taskId=${this.dataForm.taskId}`
@ -272,7 +253,7 @@ export default {
index < index <
res.data.tAbilityApplicationDTOList[0].applicationScene res.data.tAbilityApplicationDTOList[0].applicationScene
.length - .length -
1 1
) { ) {
res.data.tAbilityApplicationDTOList[0].applicationSceneStr += res.data.tAbilityApplicationDTOList[0].applicationSceneStr +=
'、' '、'
@ -307,7 +288,7 @@ export default {
this.dataList.push(obj) this.dataList.push(obj)
} }
}) })
.catch(() => {}) .catch(() => { })
} else { } else {
params = `instanceId=${this.dataForm.instanceId}` params = `instanceId=${this.dataForm.instanceId}`
this.$http this.$http
@ -359,11 +340,11 @@ export default {
this.dataList.push(obj) this.dataList.push(obj)
} }
}) })
.catch(() => {}) .catch(() => { })
} }
}, },
// //
applyData () { applyData() {
this.$http this.$http
.get(`/resource/select/${this.dataForm.instanceId}`) .get(`/resource/select/${this.dataForm.instanceId}`)
.then(({ data: res }) => { .then(({ data: res }) => {
@ -375,7 +356,7 @@ export default {
// this.dataForm.content = res.data // this.dataForm.content = res.data
// console.log(this.dataForm, 'ela') // console.log(this.dataForm, 'ela')
}) })
.catch(() => {}) .catch(() => { })
}, },
// 退 // 退
agreeOrNot: debounce( agreeOrNot: debounce(
@ -412,7 +393,7 @@ export default {
} }
}) })
}) })
.catch(() => {}) .catch(() => { })
this.tabRemoveHandle(data) this.tabRemoveHandle(data)
} else { } else {
this.$message.error('请输入审批意见!') this.$message.error('请输入审批意见!')
@ -455,7 +436,7 @@ export default {
1000, 1000,
{ leading: true, trailing: false } { leading: true, trailing: false }
), ),
tabRemoveHandle (tabName) { tabRemoveHandle(tabName) {
console.log(tabName, 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa') console.log(tabName, 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
if (tabName === 'home') { if (tabName === 'home') {
return false return false
@ -472,7 +453,7 @@ export default {
if (tabName === this.$store.state.contentTabsActiveName) { if (tabName === this.$store.state.contentTabsActiveName) {
const tab = const tab =
this.$store.state.contentTabs[ this.$store.state.contentTabs[
this.$store.state.contentTabs.length - 1 this.$store.state.contentTabs.length - 1
] ]
this.$router.push({ this.$router.push({
name: /^iframe_.+/.test(tab.name) ? 'iframe' : tab.name, name: /^iframe_.+/.test(tab.name) ? 'iframe' : tab.name,
@ -482,13 +463,19 @@ export default {
} }
}, },
// //
startProcessErrorCallback (data) { startProcessErrorCallback(data) {
console.log(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() // this.applyData()
} }
} }
@ -497,38 +484,47 @@ export default {
::v-deep .big-BOX { ::v-deep .big-BOX {
background: rgba(244, 245, 248, 0.8); background: rgba(244, 245, 248, 0.8);
padding: 24px; padding: 24px;
h3 { h3 {
font-size: 16px; font-size: 16px;
color: #212121; color: #212121;
} }
p { p {
width: 100%; width: 100%;
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
color: #212121; color: #212121;
font-size: 14px; font-size: 14px;
span { span {
display: inline-block; display: inline-block;
margin-left: 8px; margin-left: 8px;
line-height: 32px; line-height: 32px;
span { span {
font-weight: bold; font-weight: bold;
} }
} }
.text { .text {
width: 500px; width: 500px;
} }
} }
.lastP { .lastP {
margin-top: 16px; margin-top: 16px;
width: 100%; width: 100%;
span { span {
display: flex; display: flex;
span { span {
padding: 0 12px; padding: 0 12px;
height: 32px; height: 32px;
background: rgba(232, 234, 239, 1); background: rgba(232, 234, 239, 1);
border-radius: 2px; border-radius: 2px;
button { button {
background: unset; background: unset;
border: 0; border: 0;
@ -539,6 +535,7 @@ export default {
} }
} }
} }
::v-deep .AbilityApply { ::v-deep .AbilityApply {
margin-top: 32px; margin-top: 32px;
@ -548,27 +545,33 @@ export default {
border-bottom: 1px solid #dddee1; border-bottom: 1px solid #dddee1;
padding-bottom: 10px; padding-bottom: 10px;
} }
ul { ul {
padding-left: 0px; padding-left: 0px;
li { li {
list-style: none; list-style: none;
padding: 30px 0; padding: 30px 0;
border-bottom: 1px solid #dddee1; border-bottom: 1px solid #dddee1;
display: flex; display: flex;
img { img {
width: 100px; width: 100px;
height: 100px; height: 100px;
} }
div { div {
margin-left: 16px; margin-left: 16px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: center; justify-content: center;
h2 { h2 {
margin-bottom: 20px; margin-bottom: 20px;
font-size: 20px; font-size: 20px;
color: #000; color: #000;
display: flex; display: flex;
span { span {
display: block; display: block;
font-size: 14px; font-size: 14px;
@ -581,22 +584,26 @@ export default {
border-radius: 4px; border-radius: 4px;
} }
} }
p { p {
margin-bottom: 0; margin-bottom: 0;
} }
} }
} }
.clearfix:after { .clearfix:after {
display: block; display: block;
content: ""; content: "";
clear: both; clear: both;
} }
.title { .title {
color: #0558e1; color: #0558e1;
font-size: 18px; font-size: 18px;
padding-bottom: 0; padding-bottom: 0;
border-bottom: 0; border-bottom: 0;
} }
.title:before { .title:before {
content: ""; content: "";
width: 6px; width: 6px;
@ -610,17 +617,21 @@ export default {
} }
} }
} }
::v-deep .agreeOr > div {
::v-deep .agreeOr>div {
display: flex; display: flex;
align-items: center; align-items: center;
.el-input { .el-input {
margin-right: 10px; margin-right: 10px;
margin-left: 32px; margin-left: 32px;
} }
} }
::v-deep .agreeOr > div:last-of-type {
::v-deep .agreeOr>div:last-of-type {
margin-top: 15px; margin-top: 15px;
} }
.blueAll { .blueAll {
::v-deep .el-radio-button__inner { ::v-deep .el-radio-button__inner {
width: 80px; width: 80px;
@ -632,12 +643,14 @@ export default {
color: #0558e1; color: #0558e1;
border: 1px solid #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; box-shadow: unset !important;
background: #0558e1; background: #0558e1;
color: #ffffff; color: #ffffff;
} }
} }
.inputBule { .inputBule {
width: 55px; width: 55px;
height: 32px; height: 32px;
@ -648,8 +661,10 @@ export default {
color: #ffffff; color: #ffffff;
border: 1px solid #0558e1; border: 1px solid #0558e1;
} }
.redAll { .redAll {
margin-left: 10px; margin-left: 10px;
::v-deep .el-radio-button__inner { ::v-deep .el-radio-button__inner {
width: 80px; width: 80px;
height: 32px; height: 32px;
@ -661,12 +676,14 @@ export default {
color: #e83a48; color: #e83a48;
margin-left: 10px; 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; box-shadow: unset !important;
color: #ffffff; color: #ffffff;
background: #e83a48; background: #e83a48;
} }
} }
.blueInput { .blueInput {
width: 55px; width: 55px;
} }

View File

@ -123,11 +123,12 @@ export default {
}, },
// //
getMenuList () { getMenuList () {
console.log('获取菜单位置2')
return this.$http.get('/sys/menu/list?type=0').then(({ data: res }) => { return this.$http.get('/sys/menu/list?type=0').then(({ data: res }) => {
if (res.code !== 0) { if (res.code !== 0) {
return this.$message.error(res.msg) return this.$message.error(res.msg)
} }
this.menuList = res.data this.menuList = res.data.filter(item => item.site === 0)
}).catch(() => {}) }).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> <template>
<el-card shadow="never" class="aui-card--fill"> <el-card shadow="never" class="aui-card--fill">
<div class="mod-sys__menu"> <div class="mod-sys__menu">

View File

@ -8,8 +8,8 @@
var _global = {} var _global = {}
var CONFIGITEM = { var CONFIGITEM = {
// version: 'qingdao', // // version: 'qingdao', //
// version: 'xihaian', // 西 version: 'xihaian', // 西
version: 'qingdao', // // version: 'qingdao', //
// version: 'zhanTingDev', // dev (2022-09-13:) // version: 'zhanTingDev', // dev (2022-09-13:)
// version: 'qingdao', // // version: 'qingdao', //
//version: 'frp', // 穿 //version: 'frp', // 穿
@ -28,7 +28,8 @@ var CONFIGITEM = {
previewUrl: 'http://15.72.183.90:7008/', previewUrl: 'http://15.72.183.90:7008/',
//frontUrl: 'http://15.72.183.90:7008/document/#/devModelFile/', //frontUrl: 'http://15.72.183.90:7008/document/#/devModelFile/',
//apiURL: 'http://15.72.183.90:8000/renren-admin', //apiURL: 'http://15.72.183.90:8000/renren-admin',
websocketURL: '15.72.183.90:8000/renren-admin', // websocketURL: '15.72.183.90:8000/renren-admin',
// websocketURL: '192.168.124.233:8888/renren-admin',
POI_URL: POI_URL:
'http://15.72.178.129:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address', 'http://15.72.178.129:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address',
}, },
@ -62,8 +63,9 @@ var CONFIGITEM = {
}, },
// //
camreaInfo: { camreaInfo: {
// cameraUrl: '10.134.135.92:9537', // // cameraUrl: '10.134.135.92:9537', // 西-
cameraUrl: '10.134.135.9:9537', // // cameraUrl: '10.134.135.9:9537', // 西-
cameraUrl: '192.168.124.236:9537', // vpn
}, },
backUrl: 'http://10.134.135.9:9797', backUrl: 'http://10.134.135.9:9797',
previewUrl: 'http://10.134.135.9:9796/', previewUrl: 'http://10.134.135.9:9796/',

View File

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

View File

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

View File

@ -318,7 +318,7 @@
// //
const funnelPlot = (dataList) => { 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) => { dataList.sort((a, b) => {
return Number(a.value) - Number(b.value) return Number(a.value) - Number(b.value)

View File

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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -91,6 +91,10 @@ export default defineComponent({
}) })
} }
treeData.value = res.data && res.data.data || [] treeData.value = res.data && res.data.data || []
//
if(res.data && res.data.data.length == 1) {
showBottom(treeData.value[0])
}
} }
} }
mybus.on('getDeptList', () => { mybus.on('getDeptList', () => {

View File

@ -312,7 +312,7 @@
<span>{{ statusText[record.status] || '' }}</span> <span>{{ statusText[record.status] || '' }}</span>
</template> </template>
<template v-if="column.dataIndex === 'operation'"> <template v-if="column.dataIndex === 'operation'">
<a @click=" <a :class="record.status != 1 ? 'disabled-text' : ''" @click="
openVideo( openVideo(
record.channelCode || record.channelCode ||
record.channelId || record.channelId ||
@ -762,7 +762,8 @@ const openVideo = (id, item) => {
rowClickData.value = item rowClickData.value = item
// //
if (item && item.status != 1) { if (item && item.status != 1) {
return message.warning('当前设备离线, 不可预览!') return
// return message.warning('线, ')
} }
console.log('打开视频', id) console.log('打开视频', id)
const param = { const param = {
@ -2364,4 +2365,13 @@ video::-webkit-media-controls {
bottom: 30px; bottom: 30px;
text-align: right; text-align: right;
} }
.disabled-text {
cursor: not-allowed;
opacity: 0.5;
color: #666666;
&:hover {
color: #666666;
}
}
</style> </style>

View File

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

View File

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

View File

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

View File

@ -1,9 +1,21 @@
<template> <template>
<DeviceApplyDetail v-if="showType === '设备申请'" :refObj="refObj"></DeviceApplyDetail> <DeviceApplyDetail
v-if="showType === '设备申请'"
:refObj="refObj"
></DeviceApplyDetail>
<div class="form-container" v-else> <div class="form-container" v-else>
<AbilityApplication :refObj="refObj" v-if="showType === '能力申请'"></AbilityApplication> <AbilityApplication
<PutOnTheShelf :refObj="refObj" v-else-if="showType === '能力上架'"></PutOnTheShelf> :refObj="refObj"
<OffTheShelf :refObj="refObj" v-else-if="showType === '能力下架'"></OffTheShelf> 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> <Demand :refObj="refObj" v-else-if="showType === '能力需求'"></Demand>
<Comment :refObj="refObj" v-else-if="showType === '需求评论'"></Comment> <Comment :refObj="refObj" v-else-if="showType === '需求评论'"></Comment>
<OtherApplications :refObj="refObj" v-else></OtherApplications> <OtherApplications :refObj="refObj" v-else></OtherApplications>
@ -23,258 +35,263 @@
</div> </div>
</template> </template>
<script setup> <script setup>
import AbilityApplication from './AbilityApplication.vue' import AbilityApplication from './AbilityApplication.vue'
import PutOnTheShelf from './PutOnTheShelf .vue' import PutOnTheShelf from './PutOnTheShelf .vue'
import OffTheShelf from './OffTheShelf.vue' import OffTheShelf from './OffTheShelf.vue'
import Demand from './Demand.vue' import Demand from './Demand.vue'
import Comment from './Comment.vue' import Comment from './Comment.vue'
import DeviceApplyDetail from './DeviceApplyDetail.vue' import DeviceApplyDetail from './DeviceApplyDetail.vue'
import OtherApplications from '@/views/personalCenter/components/OtherApplications ' import OtherApplications from '@/views/personalCenter/components/OtherApplications '
import { onMounted, reactive, defineProps, ref } from 'vue' import { onMounted, reactive, defineProps, ref } from 'vue'
import Cookies from 'js-cookie' import Cookies from 'js-cookie'
// import { baseURL } from '@/config' // import { baseURL } from '@/config'
import qs from 'qs' import qs from 'qs'
import { import {
getApplyForm, getApplyForm,
getTaskHandleDetailInfo, getTaskHandleDetailInfo,
getDemandForm, getDemandForm,
nengliziyuanshangjiaapply, nengliziyuanshangjiaapply,
getTaskVariables, getTaskVariables,
} from '@/api/personalCenter' } from '@/api/personalCenter'
import { selectOneDel } from '@/api/home' import { selectOneDel } from '@/api/home'
const props = defineProps({ const props = defineProps({
processDefinitionName: { type: String, default: null }, processDefinitionName: { type: String, default: null },
businessKey: { type: String, default: null }, businessKey: { type: String, default: null },
processInstanceId: { type: String, default: null }, processInstanceId: { type: String, default: null },
resourceId: { type: String, default: null }, resourceId: { type: String, default: null },
refObj: { type: Object, default: null }, refObj: { type: Object, default: null },
showType: { type: String, 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);
// console.log(props.refObj, '---------------------------------------')
const downloadFile = (path, name) => {
const xhr = new XMLHttpRequest()
xhr.open('get', path)
xhr.responseType = 'blob'
xhr.send()
xhr.onload = function () {
if (this.status === 200 || this.status === 304) {
// IE10downloadmsSaveOrOpenBlobIE10msSaveOrOpenBlob
if ('msSaveOrOpenBlob' in navigator) {
navigator.msSaveOrOpenBlob(this.response, name)
return
}
// const blob = new Blob([this.response], { type: xhr.getResponseHeader('Content-Type') });
// const url = URL.createObjectURL(blob);
const url = URL.createObjectURL(this.response)
const a = document.createElement('a')
a.style.display = 'none'
a.href = url
a.download = name
document.body.appendChild(a)
a.click()
document.body.removeChild(a)
URL.revokeObjectURL(url)
}
}
}
//
const formName = reactive({
user: '',
phone: '',
unit: '',
area: '',
system: '',
scene: '',
basis: '',
id: '',
})
let shifoushizujian = ref('')
let nameNotShow = ref('')
let algorithmShow = ref('')
const dataForm = reactive({ data: {} })
const columns = [
{
title: '任务名称',
dataIndex: 'activityName',
key: 'activityName',
},
{
title: '处理人',
dataIndex: 'assigneeName',
key: 'assigneeName',
},
{
title: '任务开始时间',
dataIndex: 'startTime',
key: 'startTime',
},
{
title: '任务结束时间',
dataIndex: 'endTime',
key: 'endTime',
},
{
title: '审核意见',
dataIndex: 'comment',
key: 'comment',
},
{
title: '任务时长',
dataIndex: 'duration',
key: 'duration',
},
]
const getInfo = () => {
console.log(props.processInstanceId, '============================')
if (props.processDefinitionName == '能力申请') {
// getTaskVariables({ taskId: props.processInstanceId }).then((res) => {
// console.log('====================>', res.data.data)
// })
}
if (props.processDefinitionName == '能力申请流程') {
getApplyForm(props.businessKey).then((res) => {
const { data } = res.data
console.log(data)
formName.user = data.user
formName.phone = data.phone
formName.unit = data.unit
formName.area = data.area
formName.system = data.system
formName.scene = data.scene
formName.enclosure = data.enclosure
formName.basis = data.basis
})
}
if (props.processDefinitionName == '能力需求申请') {
getDemandForm(props.businessKey).then((res) => {
const { data } = res.data
console.log(data)
formName.applyUserName = data.applyUserName
formName.applyUserPhone = data.applyUserPhone
formName.applyUserDeptName = data.applyUserDeptName
formName.detailsField = data.detailsField
formName.demandDetails = data.demandDetails
formName.detailsType = data.detailsType
formName.demandSubject = data.demandSubject
formName.enclosure = data.enclosure
})
}
if (props.processDefinitionName == '能力资源上架') {
// debugger
nengliziyuanshangjiaapply(props.businessKey).then((res) => {
// const { data } = res.data
dataForm.data = res.data.data.resourceDTO
if (res.data.data.resourceDTO.type == '应用资源') {
shifoushizujian.value = true
} else {
shifoushizujian.value = false
console.log(res.data.data.resourceDTO)
res.data.data.resourceDTO.infoList.forEach((val) => {
console.log(val, '111111111111111111111111')
if (val.attrValue === '智能算法') {
nameNotShow.value = true
algorithmShow.value = false
console.log(nameNotShow.value, algorithmShow.value, 'wowowo')
}
})
}
console.log('222222222222', dataForm.data)
})
}
if (props.processDefinitionName == '能力资源下架') {
// debugger
selectOneDel(props.resourceId).then((res) => {
// const { data } = res.data
dataForm.data = res.data.data
})
}
}
const getLiuZhuanInfo = () => {
const params = qs.stringify({
processInstanceId: props.processInstanceId,
}) })
getTaskHandleDetailInfo(params).then((res) => { const refObj = ref({})
let arr = [] const showType = ref('')
res.data.data.forEach((item) => { // eslint-disable-next-line vue/no-setup-props-destructure
arr.push(item) refObj.value = props.refObj
}) // eslint-disable-next-line vue/no-setup-props-destructure
dataSource.data.push([props.processInstanceId, arr]) showType.value = props.showType
}) //
} const dataSource = reactive({ data: [] })
console.log('refObj------------>', refObj)
onMounted(() => { // console.log(props.refObj, '---------------------------------------')
// getInfo()
if (props.refObj.resourceApplication) { const downloadFile = (path, name) => {
dataSource.data = [] const xhr = new XMLHttpRequest()
for (const key in props.refObj.resourceApplication) { xhr.open('get', path)
if (props.refObj.resourceApplication[key].length > 0) { xhr.responseType = 'blob'
props.refObj.resourceApplication[key].map((item) => { xhr.send()
dataSource.data.push([item.instanceId, item.taskHandleDetailInfo]) xhr.onload = function () {
}) if (this.status === 200 || this.status === 304) {
// IE10downloadmsSaveOrOpenBlobIE10msSaveOrOpenBlob
if ('msSaveOrOpenBlob' in navigator) {
navigator.msSaveOrOpenBlob(this.response, name)
return
}
// const blob = new Blob([this.response], { type: xhr.getResponseHeader('Content-Type') });
// const url = URL.createObjectURL(blob);
const url = URL.createObjectURL(this.response)
const a = document.createElement('a')
a.style.display = 'none'
a.href = url
a.download = name
document.body.appendChild(a)
a.click()
document.body.removeChild(a)
URL.revokeObjectURL(url)
} }
} }
} else {
getLiuZhuanInfo()
} }
}) //
const formName = reactive({
const getResourceURL = () => { user: '',
console.log('111111111111111111111111111111', Cookies.get('token')) phone: '',
const params = qs.stringify({ unit: '',
token: Cookies.get('token'), area: '',
// processInstanceId: this.dataForm.processInstanceId system: '',
processInstanceId: props.processInstanceId, scene: '',
basis: '',
id: '',
}) })
return `${window.SITE_CONFIG.apiURL}/act/his/getInstImage?${params}` 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',
key: 'assigneeName',
},
{
title: '任务开始时间',
dataIndex: 'startTime',
key: 'startTime',
},
{
title: '任务结束时间',
dataIndex: 'endTime',
key: 'endTime',
},
{
title: '审核意见',
dataIndex: 'comment',
key: 'comment',
},
{
title: '任务时长',
dataIndex: 'duration',
key: 'duration',
},
]
const getInfo = () => {
console.log(props.processInstanceId, '============================')
if (props.processDefinitionName == '能力申请') {
// getTaskVariables({ taskId: props.processInstanceId }).then((res) => {
// console.log('====================>', res.data.data)
// })
}
if (props.processDefinitionName == '能力申请流程') {
getApplyForm(props.businessKey).then((res) => {
const { data } = res.data
console.log(data)
formName.user = data.user
formName.phone = data.phone
formName.unit = data.unit
formName.area = data.area
formName.system = data.system
formName.scene = data.scene
formName.enclosure = data.enclosure
formName.basis = data.basis
})
}
if (props.processDefinitionName == '能力需求申请') {
getDemandForm(props.businessKey).then((res) => {
const { data } = res.data
console.log(data)
formName.applyUserName = data.applyUserName
formName.applyUserPhone = data.applyUserPhone
formName.applyUserDeptName = data.applyUserDeptName
formName.detailsField = data.detailsField
formName.demandDetails = data.demandDetails
formName.detailsType = data.detailsType
formName.demandSubject = data.demandSubject
formName.enclosure = data.enclosure
})
}
if (props.processDefinitionName == '能力资源上架') {
// debugger
nengliziyuanshangjiaapply(props.businessKey).then((res) => {
// const { data } = res.data
dataForm.data = res.data.data.resourceDTO
if (res.data.data.resourceDTO.type == '应用资源') {
shifoushizujian.value = true
} else {
shifoushizujian.value = false
console.log(res.data.data.resourceDTO)
res.data.data.resourceDTO.infoList.forEach((val) => {
console.log(val, '111111111111111111111111')
if (val.attrValue === '智能算法') {
nameNotShow.value = true
algorithmShow.value = false
console.log(nameNotShow.value, algorithmShow.value, 'wowowo')
}
})
}
console.log('222222222222', dataForm.data)
})
}
if (props.processDefinitionName == '能力资源下架') {
// debugger
selectOneDel(props.resourceId).then((res) => {
// const { data } = res.data
dataForm.data = res.data.data
})
}
}
const getLiuZhuanInfo = () => {
const params = qs.stringify({
processInstanceId: props.processInstanceId,
})
getTaskHandleDetailInfo(params).then((res) => {
let arr = []
res.data.data.forEach((item) => {
arr.push(item)
})
dataSource.data.push([props.processInstanceId, arr])
})
}
onMounted(() => {
// getInfo()
if (props.refObj.resourceApplication) {
dataSource.data = []
for (const key in props.refObj.resourceApplication) {
if (props.refObj.resourceApplication[key].length > 0) {
props.refObj.resourceApplication[key].map((item) => {
dataSource.data.push([item.instanceId, item.taskHandleDetailInfo])
})
}
}
} else {
getLiuZhuanInfo()
}
})
const getResourceURL = () => {
console.log('111111111111111111111111111111', Cookies.get('token'))
const params = qs.stringify({
token: Cookies.get('token'),
// processInstanceId: this.dataForm.processInstanceId
processInstanceId: props.processInstanceId,
})
return `${window.SITE_CONFIG.apiURL}/act/his/getInstImage?${params}`
}
</script> </script>
<style scoped lang="less"> <style scoped lang="less">
.form-container { .form-container {
height: 6rem; height: 6rem;
overflow-y: scroll; overflow-y: scroll;
padding: 20px 20px 30px 20px; padding: 20px 20px 30px 20px;
.title { .title {
font-size: 18px; font-size: 18px;
color: #000; color: #000;
font-weight: bold; font-weight: bold;
margin-bottom: 20px; margin-bottom: 20px;
padding-left: 10px; padding-left: 10px;
margin-top: 10px; margin-top: 10px;
border-left: 6px #0058e1 solid; border-left: 6px #0058e1 solid;
}
} }
}
:deep(.ant-table-thead)>tr>.ant-table-cell { :deep(.ant-table-thead) > tr > .ant-table-cell {
background: #0087ff; background: #0087ff;
color: #fff; color: #fff;
border: none; border: none;
text-align: center; text-align: center;
font-size: 16px; 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; // width: 110px;
// display: inline-block; // display: inline-block;
// white-space: nowrap; // white-space: nowrap;
// overflow: hidden; // overflow: hidden;
// text-overflow: ellipsis; // text-overflow: ellipsis;
} }
.oddNumbers { .oddNumbers {
margin-bottom: 0.05rem; margin-bottom: 0.05rem;
} }
</style> </style>

File diff suppressed because it is too large Load Diff

View File

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

View File

@ -85,19 +85,15 @@ export default defineComponent({
} }
onMounted(() => { onMounted(() => {
if (itShowXiHaiAn) { if (type) {
handleClick(menuList[0]) console.log('type---------->', type)
let _obj = menuList.find(v => v.key == type)
handleClick(_obj)
} else { } else {
if (type) { if (menuList[1]) {
console.log('type---------->', type) handleClick(menuList[1])
let _obj = menuList.find(v => v.key == type)
handleClick(_obj)
} else { } else {
if (menuList[1]) { handleClick(menuList[0])
handleClick(menuList[1])
}else {
handleClick(menuList[0])
}
} }
} }
}) })