Compare commits

..

10 Commits

Author SHA1 Message Date
wuhongjian 9601541628 合并版本v0.8.4.1 2022-08-02 16:06:08 +08:00
wuhongjian 4a4a4b3d35 Merge branch 'hi-ucs-dev' of http://192.168.124.50:3000/wuhongjian/hi-ucs into hi-ucs-dev 2022-08-02 15:40:41 +08:00
wuhongjian a34e079708 修复市局空白页 2022-08-02 15:40:37 +08:00
gaoyuanwei bfa739691a 技术文档-能力申请图片数字bug修改 2022-08-02 14:07:46 +08:00
gaoyuanwei 4d94b59a55 技术文档-四个跳转 2022-08-02 13:46:12 +08:00
gaoyuanwei 466e9b510d Merge branch 'hi-ucs-dev' of http://192.168.124.50:3000/wuhongjian/hi-ucs into hi-ucs-dev
# Conflicts:
#	front/src/views/instructionManual/components/menuBook.vue
2022-08-02 12:13:01 +08:00
gaoyuanwei 77c5cba599 技术文档-联系我们、使用手册、提供服务 2022-08-02 12:00:40 +08:00
a0049873 e081c560a7 Merge branch 'hi-ucs-dev' of http://192.168.124.50:3000/wuhongjian/hi-ucs into hi-ucs-dev
# Conflicts:
#	front/public/index.html
2022-08-02 11:59:59 +08:00
a0049873 ee9ec45450 前台上架 驳回功能 2022-08-02 11:59:01 +08:00
851673013@qq.com 651c58404f 前台-技术文档-总体流程 2022-08-02 11:58:02 +08:00
27 changed files with 1915 additions and 560 deletions

View File

@ -136,7 +136,15 @@ export default {
return this.$message.error(this.$t('task.detailError')) return this.$message.error(this.$t('task.detailError'))
} }
this.getProcDefRouteSet(row, this.forwardDetail) this.getProcDefRouteSet(row, this.forwardDetail)
},
methodsThree () {
this.$http.get('/category/getCategoryTree').then((res) => {
localStorage.setItem('getCategoryTree', JSON.stringify(res.data.data))
})
} }
},
mounted () {
this.methodsThree()
} }
} }
</script> </script>

View File

@ -1,6 +1,6 @@
<template> <template>
<div class="wrapper"> <div class="wrapper">
<el-form :model="dataView"> <el-form>
<div v-for="(item, index) in dataView.children" :key="item"> <div v-for="(item, index) in dataView.children" :key="item">
<!-- <div class="dataTitle">{{ item.name }}</div> --> <!-- <div class="dataTitle">{{ item.name }}</div> -->
<div v-for="itemson in item.children" :key="itemson.name"> <div v-for="itemson in item.children" :key="itemson.name">
@ -234,8 +234,68 @@ export default {
if (item) { if (item) {
this.dataList = item this.dataList = item
} }
}
}, },
insertList (val) { computed: {},
methods: {
videoAndImg (link) {
if (link) {
window.open(link)
} else {
this.$message({
message: '未上传',
type: 'warning'
})
}
},
deptName () {
console.log(this.dataForm.deptId)
this.$http
.get(`/sys/dept/${this.dataForm.deptId}`)
.then(({ data: res }) => {
console.log(res.data.name, 'res')
this.unit = res.data.name
})
},
queryPartAppByKeyIdFunction (index, indexSon, indexSonSon) {
if (this.dataForm.type === '组件服务') {
this.$http
.get(
'/dataResourceRel/queryApp4PartByKeyId' +
'?keyId=' +
this.dataForm.id
)
.then(({ data: res }) => {
this.dataView.children[index].children[indexSon].children[
indexSonSon
].note1 = ''
res.data.map((item) => {
this.dataView.children[index].children[indexSon].children[
indexSonSon
].note1 += item.name + ';'
})
})
} else {
this.$http
.get(
'/dataResourceRel/queryPart4AppByKeyId?keyId=' +
this.dataForm.id +
'&type=' +
'组件服务'
)
.then(({ data: res }) => {
this.dataView.children[index].children[indexSon].children[
indexSonSon
].note1 = ''
res.data.map((item) => {
this.dataView.children[index].children[indexSon].children[
indexSonSon
].note1 += item.name + ';'
})
})
}
},
insertListFunction (val) {
if (val) { if (val) {
if (this.dataForm.type === '应用资源') { if (this.dataForm.type === '应用资源') {
this.dataView = val.filter( this.dataView = val.filter(
@ -423,69 +483,10 @@ export default {
} }
} }
}, },
computed: {},
methods: {
videoAndImg (link) {
if (link) {
window.open(link)
} else {
this.$message({
message: '未上传',
type: 'warning'
})
}
},
deptName () {
console.log(this.dataForm.deptId)
this.$http
.get(`/sys/dept/${this.dataForm.deptId}`)
.then(({ data: res }) => {
console.log(res.data.name, 'res')
this.unit = res.data.name
})
},
queryPartAppByKeyIdFunction (index, indexSon, indexSonSon) {
if (this.dataForm.type === '组件服务') {
this.$http
.get(
'/dataResourceRel/queryApp4PartByKeyId' +
'?keyId=' +
this.dataForm.id
)
.then(({ data: res }) => {
this.dataView.children[index].children[indexSon].children[
indexSonSon
].note1 = ''
res.data.map((item) => {
this.dataView.children[index].children[indexSon].children[
indexSonSon
].note1 += item.name + ';'
})
})
} else {
this.$http
.get(
'/dataResourceRel/queryPart4AppByKeyId?keyId=' +
this.dataForm.id +
'&type=' +
'组件服务'
)
.then(({ data: res }) => {
this.dataView.children[index].children[indexSon].children[
indexSonSon
].note1 = ''
res.data.map((item) => {
this.dataView.children[index].children[indexSon].children[
indexSonSon
].note1 += item.name + ';'
})
})
}
}
},
created () {}, created () {},
mounted () { mounted () {
this.deptName() this.deptName()
this.insertListFunction(this.insertList)
} }
} }
</script> </script>

View File

@ -37,8 +37,8 @@
<h3>审批</h3> <h3>审批</h3>
<div> <div>
<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-radio-group v-model="agreeOrList" style="width: 230px"> <!-- <el-radio-group v-model="agreeOrList" style="width: 230px">
<el-radio-button label="同意" class="blueAll">同意</el-radio-button> <el-radio-button label="同意" class="blueAll">同意</el-radio-button>
@ -135,16 +135,16 @@ export default {
this.init() this.init()
console.log('fromList', this.$router.currentRoute.params.businessKey) console.log('fromList', this.$router.currentRoute.params.businessKey)
// this.dataForm = this.$router.currentRoute.params.params.params.resourceDTO // this.dataForm = this.$router.currentRoute.params.params.params.resourceDTO
var callbacks = { // var callbacks = {
startProcessSuccessCallback: this.closeCurrentTab, // startProcessSuccessCallback: this.closeCurrentTab,
startProcessErrorCallback: this.startProcessErrorCallback, // startProcessErrorCallback: this.startProcessErrorCallback,
taskHandleSuccessCallback: this.closeCurrentTab, // taskHandleSuccessCallback: this.closeCurrentTab,
taskHandleErrorCallback: this.taskHandleErrorCallback, // taskHandleErrorCallback: this.taskHandleErrorCallback,
formSaveSuccessCallback: null, // formSaveSuccessCallback: null,
formSaveErrorCallback: null // formSaveErrorCallback: null
} // }
// // //
this.initProcessMultiple(callbacks) // this.initProcessMultiple(callbacks)
}, },
mounted () { mounted () {
const businessKey = this.$router.currentRoute.params.businessKey const businessKey = this.$router.currentRoute.params.businessKey
@ -180,9 +180,10 @@ export default {
this.input = '' this.input = ''
}, },
methodsThree () { methodsThree () {
this.$http.get('/category/getCategoryTree').then((res) => { // this.$http.get('/category/getCategoryTree').then((res) => {
this.insertList = res.data.data // this.insertList = res.data.data
}) // })
this.insertList = JSON.parse(localStorage.getItem('getCategoryTree'))
}, },
init () { init () {
this.visible = true this.visible = true
@ -232,13 +233,14 @@ export default {
}) })
}) })
.catch(() => {}) .catch(() => {})
} else if (this.dialogType === '拒绝') { } else if (this.dialogType === '驳回') {
const params = qs.stringify({ const params = qs.stringify({
taskId: this.taskId, taskId: this.taskId,
comment: this.input comment: this.input
}) })
this.$http this.$http
.post('/act/task/endProcess?', params) // .post('/act/task/endProcess?', params)
.post('/act/task/backToFirst?', params)
.then(({ data: res }) => { .then(({ data: res }) => {
if (res.code !== 0) { if (res.code !== 0) {
this.$message.error(res.msg) this.$message.error(res.msg)

View File

@ -2,7 +2,7 @@
* @Author: hisense.wuhongjian * @Author: hisense.wuhongjian
* @Date: 2022-03-29 16:45:25 * @Date: 2022-03-29 16:45:25
* @LastEditors: hisense.wuhongjian * @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-08-02 10:18:50 * @LastEditTime: 2022-08-02 16:06:03
* @Description: 告诉大家这是什么 * @Description: 告诉大家这是什么
--> -->
<!DOCTYPE html> <!DOCTYPE html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 571 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 119 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 514 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

View File

@ -98,7 +98,10 @@ instance.interceptors.response.use(
} }
if (response.headers.redirect) { if (response.headers.redirect) {
window.location.replace(response.headers.redirect) window.location.replace(response.headers.redirect)
return // setTimeout(() => {
location.reload()
// }, 1000)
return response
} }
if (response.headers.redirect === '/#/login') { if (response.headers.redirect === '/#/login') {
var keys = document.cookie.match(/[^ =;]+(?=\=)/g) var keys = document.cookie.match(/[^ =;]+(?=\=)/g)

View File

@ -2,7 +2,7 @@
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-06-13 10:22:27 * @Date: 2022-06-13 10:22:27
* @LastEditors: hisense.liangjunhua * @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-07-26 14:35:45 * @LastEditTime: 2022-08-02 11:28:00
* @Description: 算法上架 * @Description: 算法上架
--> -->
<template> <template>
@ -266,7 +266,13 @@
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import { getCategoryTree } from '@/api/personalCenter' import { getCategoryTree } from '@/api/personalCenter'
import { shangjiainsert, shangjiaapply } from '@/api/personalCenter' import { shangjiainsert, shangjiaapply } from '@/api/personalCenter'
import { getUser, getUserInfo } from '@/api/home' import {
getUser,
getUserInfo,
selectOne,
updateRes,
relaunch,
} from '@/api/home'
import { message } from 'ant-design-vue' import { message } from 'ant-design-vue'
import mybus from '@/myplugins/mybus' import mybus from '@/myplugins/mybus'
const router = useRouter() const router = useRouter()
@ -454,6 +460,7 @@
!dataFrom.value.infoList.filter((val) => val.attrType === '应用领域')[0] !dataFrom.value.infoList.filter((val) => val.attrType === '应用领域')[0]
.attrValue .attrValue
) { ) {
console.log('应用领域==========>', dataFrom.value.infoList)
notFilled.value.push('应用领域') notFilled.value.push('应用领域')
} }
if (notFilled.value.length > 0) { if (notFilled.value.length > 0) {
@ -543,6 +550,34 @@
dataFrom.value.infoList = dataFrom.value.infoList.filter( dataFrom.value.infoList = dataFrom.value.infoList.filter(
(item) => item.attrValue !== '' (item) => item.attrValue !== ''
) )
if (resourceId) {
delete dataFrom.value.createDate
delete dataFrom.value.updateDate
dataFrom.value.infoList.map((del) => {
delete del.createDate
delete del.updateDate
})
updateRes(dataFrom.value).then((upres) => {
if (upres.data.code == 0) {
relaunch({ data: dataFrom.value, taskId: taskId }).then((res) => {
console.log('驳回================>', res)
if (res.data.code == 0) {
message.success('重新发起流程成功!')
submitFlag.value = true
window.setTimeout(() => {
window.close()
}, 1000)
} else {
message.error('重新发起流程失败!')
submitFlag.value = true
}
})
} else {
message.error('数据更新失败!')
submitFlag.value = true
}
})
} else {
shangjiainsert(dataFrom.value).then((res) => { shangjiainsert(dataFrom.value).then((res) => {
const instanceId = res.data.data const instanceId = res.data.data
dataFrom.value.id = res.data.data dataFrom.value.id = res.data.data
@ -574,6 +609,7 @@
} }
} }
} }
}
const init = () => { const init = () => {
getCategoryTree().then((res) => { getCategoryTree().then((res) => {
// console.clear() // console.clear()
@ -583,7 +619,7 @@
navList.value = [] navList.value = []
navList2.value = [] navList2.value = []
res.data.data.children.forEach((val) => { res.data.data.children.forEach((val) => {
console.log(val) // console.log('val================>', val, echoData.value)
navList.value.push({ navList.value.push({
name: val.name, name: val.name,
key: val.name, key: val.name,
@ -601,14 +637,115 @@
} }
}) })
} }
//
if (resourceId) {
val.children.map((item) => {
if (item.children.length > 0) {
item.children.map((child) => {
switch (child.name) {
case '算法名称':
child.note1 = echoData.value.name
break
case '算法描述':
child.note1 = echoData.value.description
break
case '共享条件':
child.note1 = echoData.value.shareCondition
break
case '归属部门':
child.note1 = echoData.value.deptId
break
case '部门联系人':
child.note1 = echoData.value.deptContacts
break
case '部门联系人电话':
child.note1 = echoData.value.deptPhone
break
case '接口请求方式':
child.note1 = echoData.value.apiMethodType
break
case '应用领域':
if (
echoData.value.infoList &&
echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0]
) {
child.note1 = echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].attrValue
child.note2 = echoData.value.infoList
.filter((fil) => fil.attrType == child.name)[0]
.attrValue.split(';')
}
break
case '算法介绍视频':
if (
echoData.value.infoList &&
echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0]
) {
videoList.value = [
{
uid: echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].id,
name:
echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].note3 || '--',
status: 'done',
url: echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].attrValue,
thumbUrl: echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].attrValue,
},
]
}
break
default:
if (
echoData.value.infoList &&
echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0]
) {
child.note1 = echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].attrValue
}
break
}
})
}
console.log('item================>', item, echoData.value)
})
}
}) })
data.value = res.data.data.children data.value = res.data.data.children
refData.value = data.value.filter( refData.value = data.value.filter(
(item) => item.name === showView.value (item) => item.name === showView.value
)[0] )[0]
console.log('所有编目结构==============>', res.data.data) console.log('所有编目结构==============>', data.value)
}) })
} }
const resourceId = router.currentRoute.value.query.id
const taskId = router.currentRoute.value.query.taskId
const echoData = ref({})
if (resourceId) {
//
selectOne(resourceId).then((res) => {
echoData.value = res.data.data
dataFrom.value = echoData.value
init()
// console.log('===================>', echoData.value)
})
} else {
init()
}
// //
const refPutOnTheShelf = ref(null) const refPutOnTheShelf = ref(null)
const changeSfys = (type) => { const changeSfys = (type) => {
@ -624,7 +761,6 @@
refPutOnTheShelf.value.add('计费标准信息', true) refPutOnTheShelf.value.add('计费标准信息', true)
refPutOnTheShelf.value.add('常见问题', true, type) refPutOnTheShelf.value.add('常见问题', true, type)
} }
init()
mybus.on('chageDataFrom', (obj) => { mybus.on('chageDataFrom', (obj) => {
if (obj.attrType == '技术文档' && obj.attrValue != null) { if (obj.attrType == '技术文档' && obj.attrValue != null) {
shiyongshouce.value = obj shiyongshouce.value = obj
@ -698,6 +834,8 @@
mybus.off('chageFileList') mybus.off('chageFileList')
mybus.off('chageImgList') mybus.off('chageImgList')
mybus.off('chageDataFromDwon') mybus.off('chageDataFromDwon')
mybus.off('chageVideoList')
mybus.off('chagePackageList')
}) })
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>

View File

@ -2,7 +2,7 @@
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-06-13 10:22:27 * @Date: 2022-06-13 10:22:27
* @LastEditors: hisense.liangjunhua * @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-07-26 14:41:26 * @LastEditTime: 2022-08-02 11:40:41
* @Description: 应用上架 * @Description: 应用上架
--> -->
<template> <template>
@ -196,7 +196,13 @@
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import { getCategoryTree } from '@/api/personalCenter' import { getCategoryTree } from '@/api/personalCenter'
import { shangjiainsert, shangjiaapply } from '@/api/personalCenter' import { shangjiainsert, shangjiaapply } from '@/api/personalCenter'
import { getUser, getUserInfo } from '@/api/home' import {
getUser,
getUserInfo,
selectOne,
updateRes,
relaunch,
} from '@/api/home'
import { message } from 'ant-design-vue' import { message } from 'ant-design-vue'
import mybus from '@/myplugins/mybus' import mybus from '@/myplugins/mybus'
const showView = ref('基本信息') const showView = ref('基本信息')
@ -394,6 +400,34 @@
dataFrom.value.infoList = dataFrom.value.infoList.filter( dataFrom.value.infoList = dataFrom.value.infoList.filter(
(item) => item.attrValue !== '' (item) => item.attrValue !== ''
) )
if (resourceId) {
delete dataFrom.value.createDate
delete dataFrom.value.updateDate
dataFrom.value.infoList.map((del) => {
delete del.createDate
delete del.updateDate
})
updateRes(dataFrom.value).then((upres) => {
if (upres.data.code == 0) {
relaunch({ data: dataFrom.value, taskId: taskId }).then((res) => {
console.log('驳回================>', res)
if (res.data.code == 0) {
message.success('重新发起流程成功!')
submitFlag.value = true
window.setTimeout(() => {
window.close()
}, 1000)
} else {
message.error('重新发起流程失败!')
submitFlag.value = true
}
})
} else {
message.error('数据更新失败!')
submitFlag.value = true
}
})
} else {
shangjiainsert(dataFrom.value).then((res) => { shangjiainsert(dataFrom.value).then((res) => {
const instanceId = res.data.data const instanceId = res.data.data
dataFrom.value.id = res.data.data dataFrom.value.id = res.data.data
@ -424,6 +458,7 @@
}) })
} }
} }
}
// //
const preview = () => { const preview = () => {
dataFrom.value.infoList = dataFrom.value.infoList.filter( dataFrom.value.infoList = dataFrom.value.infoList.filter(
@ -451,6 +486,121 @@
key: val.name, key: val.name,
}) })
navList2.value.push(val.name) navList2.value.push(val.name)
//
if (resourceId) {
val.children.map((item) => {
if (item.children.length > 0) {
item.children.map((child) => {
switch (child.name) {
case '应用名称':
child.note1 = echoData.value.name
break
case '应用描述':
child.note1 = echoData.value.description
break
case '共享条件':
child.note1 = echoData.value.shareCondition
break
case '归属部门':
child.note1 = echoData.value.deptId
break
case '部门联系人':
child.note1 = echoData.value.deptContacts
break
case '部门联系人电话':
child.note1 = echoData.value.deptPhone
break
case '接口请求方式':
child.note1 = echoData.value.apiMethodType
break
case '应用领域':
case '发布端':
if (
echoData.value.infoList &&
echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0]
) {
child.note1 = echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].attrValue
child.note2 = echoData.value.infoList
.filter((fil) => fil.attrType == child.name)[0]
.attrValue.split(';')
}
break
case '应用展示视频':
if (
echoData.value.infoList &&
echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0]
) {
videoList.value = [
{
uid: echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].id,
name:
echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].note3 || '--',
status: 'done',
url: echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].attrValue,
thumbUrl: echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].attrValue,
},
]
}
break
case '应用图片':
if (
echoData.value.infoList &&
echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0]
) {
imgList.value = [
{
uid: echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].id,
name:
echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].note3 || '--',
status: 'done',
url: echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].attrValue,
thumbUrl: echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].attrValue,
},
]
}
break
default:
if (
echoData.value.infoList &&
echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0]
) {
child.note1 = echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].attrValue
}
break
}
})
}
console.log('item================>', item, echoData.value)
})
}
}) })
data.value = res.data.data.children data.value = res.data.data.children
refData.value = data.value.filter( refData.value = data.value.filter(
@ -459,6 +609,20 @@
console.log('所有编目结构==============>', res.data.data) console.log('所有编目结构==============>', res.data.data)
}) })
} }
const resourceId = router.currentRoute.value.query.id
const taskId = router.currentRoute.value.query.taskId
const echoData = ref({})
if (resourceId) {
//
selectOne(resourceId).then((res) => {
echoData.value = res.data.data
dataFrom.value = echoData.value
init()
// console.log('===================>', echoData.value)
})
} else {
init()
}
// //
const refPutOnTheShelf = ref(null) const refPutOnTheShelf = ref(null)
const changeGnjs = (type) => { const changeGnjs = (type) => {
@ -469,7 +633,6 @@
console.log(refPutOnTheShelf) console.log(refPutOnTheShelf)
refPutOnTheShelf.value.add('常见问题', true, type) refPutOnTheShelf.value.add('常见问题', true, type)
} }
init()
mybus.on('chageDataFrom', (obj) => { mybus.on('chageDataFrom', (obj) => {
if (obj.attrType == '技术文档' && obj.attrValue != null) { if (obj.attrType == '技术文档' && obj.attrValue != null) {
shiyongshouce.value = obj shiyongshouce.value = obj

View File

@ -2,7 +2,7 @@
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-06-20 09:35:51 * @Date: 2022-06-20 09:35:51
* @LastEditors: hisense.liangjunhua * @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-07-26 14:36:31 * @LastEditTime: 2022-08-02 11:47:32
* @Description: 业务组件 * @Description: 业务组件
--> -->
<template> <template>
@ -229,7 +229,13 @@
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import { getCategoryTree } from '@/api/personalCenter' import { getCategoryTree } from '@/api/personalCenter'
import { shangjiainsert, shangjiaapply } from '@/api/personalCenter' import { shangjiainsert, shangjiaapply } from '@/api/personalCenter'
import { getUser, getUserInfo } from '@/api/home' import {
getUser,
getUserInfo,
selectOne,
updateRes,
relaunch,
} from '@/api/home'
import { message } from 'ant-design-vue' import { message } from 'ant-design-vue'
import mybus from '@/myplugins/mybus' import mybus from '@/myplugins/mybus'
const router = useRouter() const router = useRouter()
@ -486,6 +492,35 @@
dataFrom.value.infoList = dataFrom.value.infoList.filter( dataFrom.value.infoList = dataFrom.value.infoList.filter(
(item) => item.attrValue !== '' (item) => item.attrValue !== ''
) )
if (resourceId) {
delete dataFrom.value.createDate
delete dataFrom.value.updateDate
dataFrom.value.infoList.map((del) => {
delete del.createDate
delete del.updateDate
})
updateRes(dataFrom.value).then((upres) => {
if (upres.data.code == 0) {
relaunch({ data: dataFrom.value, taskId: taskId }).then((res) => {
console.log('驳回================>', res)
if (res.data.code == 0) {
message.success('重新发起流程成功!')
submitFlag.value = true
window.setTimeout(() => {
window.close()
}, 1000)
} else {
message.error('重新发起流程失败!')
submitFlag.value = true
}
})
} else {
message.error('数据更新失败!')
submitFlag.value = true
}
})
} else {
shangjiainsert(dataFrom.value).then((res) => { shangjiainsert(dataFrom.value).then((res) => {
const instanceId = res.data.data const instanceId = res.data.data
dataFrom.value.id = res.data.data dataFrom.value.id = res.data.data
@ -517,6 +552,7 @@
} }
} }
} }
}
// //
const refPutOnTheShelf = ref(null) const refPutOnTheShelf = ref(null)
const changeGnjs = (type) => { const changeGnjs = (type) => {
@ -545,6 +581,121 @@
key: val.name, key: val.name,
}) })
navList2.value.push(val.name) navList2.value.push(val.name)
//
if (resourceId) {
val.children.map((item) => {
if (item.children.length > 0) {
item.children.map((child) => {
switch (child.name) {
case '组件名称':
child.note1 = echoData.value.name
break
case '组件描述':
child.note1 = echoData.value.description
break
case '共享条件':
child.note1 = echoData.value.shareCondition
break
case '归属部门':
child.note1 = echoData.value.deptId
break
case '部门联系人':
child.note1 = echoData.value.deptContacts
break
case '部门联系人电话':
child.note1 = echoData.value.deptPhone
break
case '接口请求方式':
child.note1 = echoData.value.apiMethodType
break
case '应用领域':
if (
echoData.value.infoList &&
echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0]
) {
child.note1 = echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].attrValue
child.note2 = echoData.value.infoList
.filter((fil) => fil.attrType == child.name)[0]
.attrValue.split(';')
}
break
case '组件视频介绍':
if (
echoData.value.infoList &&
echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0]
) {
videoList.value = [
{
uid: echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].id,
name:
echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].note3 || '--',
status: 'done',
url: echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].attrValue,
thumbUrl: echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].attrValue,
},
]
}
break
case '组件图片':
if (
echoData.value.infoList &&
echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0]
) {
imgList.value = [
{
uid: echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].id,
name:
echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].note3 || '--',
status: 'done',
url: echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].attrValue,
thumbUrl: echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].attrValue,
},
]
}
break
default:
if (
echoData.value.infoList &&
echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0]
) {
child.note1 = echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].attrValue
}
break
}
})
}
console.log('item================>', item, echoData.value)
})
}
}) })
data.value = res.data.data.children data.value = res.data.data.children
refData.value = data.value.filter( refData.value = data.value.filter(
@ -553,7 +704,21 @@
console.log('所有编目结构==============>', res.data.data) console.log('所有编目结构==============>', res.data.data)
}) })
} }
const resourceId = router.currentRoute.value.query.id
const taskId = router.currentRoute.value.query.taskId
const echoData = ref({})
if (resourceId) {
//
selectOne(resourceId).then((res) => {
echoData.value = res.data.data
dataFrom.value = echoData.value
init() init()
// console.log('===================>', echoData.value)
})
} else {
init()
}
mybus.on('chageDataFrom', (obj) => { mybus.on('chageDataFrom', (obj) => {
if (obj.attrType == '技术文档' && obj.attrValue != null) { if (obj.attrType == '技术文档' && obj.attrValue != null) {
shiyongshouce.value = obj shiyongshouce.value = obj

View File

@ -2,7 +2,7 @@
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-06-20 09:35:17 * @Date: 2022-06-20 09:35:17
* @LastEditors: hisense.liangjunhua * @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-07-26 14:37:17 * @LastEditTime: 2022-08-02 11:51:50
* @Description: 开发组件 * @Description: 开发组件
--> -->
<template> <template>
@ -228,7 +228,13 @@
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import { getCategoryTree } from '@/api/personalCenter' import { getCategoryTree } from '@/api/personalCenter'
import { shangjiainsert, shangjiaapply } from '@/api/personalCenter' import { shangjiainsert, shangjiaapply } from '@/api/personalCenter'
import { getUser, getUserInfo } from '@/api/home' import {
getUser,
getUserInfo,
selectOne,
updateRes,
relaunch,
} from '@/api/home'
import { message } from 'ant-design-vue' import { message } from 'ant-design-vue'
import mybus from '@/myplugins/mybus' import mybus from '@/myplugins/mybus'
const router = useRouter() const router = useRouter()
@ -498,6 +504,34 @@
dataFrom.value.infoList = dataFrom.value.infoList.filter( dataFrom.value.infoList = dataFrom.value.infoList.filter(
(item) => item.attrValue !== '' (item) => item.attrValue !== ''
) )
if (resourceId) {
delete dataFrom.value.createDate
delete dataFrom.value.updateDate
dataFrom.value.infoList.map((del) => {
delete del.createDate
delete del.updateDate
})
updateRes(dataFrom.value).then((upres) => {
if (upres.data.code == 0) {
relaunch({ data: dataFrom.value, taskId: taskId }).then((res) => {
console.log('驳回================>', res)
if (res.data.code == 0) {
message.success('重新发起流程成功!')
submitFlag.value = true
window.setTimeout(() => {
window.close()
}, 1000)
} else {
message.error('重新发起流程失败!')
submitFlag.value = true
}
})
} else {
message.error('数据更新失败!')
submitFlag.value = true
}
})
} else {
shangjiainsert(dataFrom.value).then((res) => { shangjiainsert(dataFrom.value).then((res) => {
const instanceId = res.data.data const instanceId = res.data.data
dataFrom.value.id = res.data.data dataFrom.value.id = res.data.data
@ -529,6 +563,7 @@
} }
} }
} }
}
const init = () => { const init = () => {
getCategoryTree().then((res) => { getCategoryTree().then((res) => {
// console.clear() // console.clear()
@ -544,6 +579,121 @@
key: val.name, key: val.name,
}) })
navList2.value.push(val.name) navList2.value.push(val.name)
//
if (resourceId) {
val.children.map((item) => {
if (item.children.length > 0) {
item.children.map((child) => {
switch (child.name) {
case '组件名称':
child.note1 = echoData.value.name
break
case '组件描述':
child.note1 = echoData.value.description
break
case '共享条件':
child.note1 = echoData.value.shareCondition
break
case '归属部门':
child.note1 = echoData.value.deptId
break
case '部门联系人':
child.note1 = echoData.value.deptContacts
break
case '部门联系人电话':
child.note1 = echoData.value.deptPhone
break
case '接口请求方式':
child.note1 = echoData.value.apiMethodType
break
case '应用领域':
if (
echoData.value.infoList &&
echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0]
) {
child.note1 = echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].attrValue
child.note2 = echoData.value.infoList
.filter((fil) => fil.attrType == child.name)[0]
.attrValue.split(';')
}
break
case '组件视频介绍':
if (
echoData.value.infoList &&
echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0]
) {
videoList.value = [
{
uid: echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].id,
name:
echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].note3 || '--',
status: 'done',
url: echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].attrValue,
thumbUrl: echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].attrValue,
},
]
}
break
case '组件图片':
if (
echoData.value.infoList &&
echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0]
) {
imgList.value = [
{
uid: echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].id,
name:
echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].note3 || '--',
status: 'done',
url: echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].attrValue,
thumbUrl: echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].attrValue,
},
]
}
break
default:
if (
echoData.value.infoList &&
echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0]
) {
child.note1 = echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].attrValue
}
break
}
})
}
console.log('item================>', item, echoData.value)
})
}
}) })
data.value = res.data.data.children data.value = res.data.data.children
refData.value = data.value.filter( refData.value = data.value.filter(
@ -552,7 +702,20 @@
console.log('所有编目结构==============>', res.data.data) console.log('所有编目结构==============>', res.data.data)
}) })
} }
const resourceId = router.currentRoute.value.query.id
const taskId = router.currentRoute.value.query.taskId
const echoData = ref({})
if (resourceId) {
//
selectOne(resourceId).then((res) => {
echoData.value = res.data.data
dataFrom.value = echoData.value
init() init()
// console.log('===================>', echoData.value)
})
} else {
init()
}
mybus.on('chageDataFrom', (obj) => { mybus.on('chageDataFrom', (obj) => {
if (obj.attrType == '技术文档' && obj.attrValue != null) { if (obj.attrType == '技术文档' && obj.attrValue != null) {
shiyongshouce.value = obj shiyongshouce.value = obj

View File

@ -2,7 +2,7 @@
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-06-20 09:35:17 * @Date: 2022-06-20 09:35:17
* @LastEditors: hisense.liangjunhua * @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-07-26 14:37:38 * @LastEditTime: 2022-08-02 11:58:16
* @Description: 图层服务 * @Description: 图层服务
--> -->
<template> <template>
@ -177,7 +177,13 @@
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
import { getCategoryTree } from '@/api/personalCenter' import { getCategoryTree } from '@/api/personalCenter'
import { shangjiainsert, shangjiaapply } from '@/api/personalCenter' import { shangjiainsert, shangjiaapply } from '@/api/personalCenter'
import { getUser, getUserInfo } from '@/api/home' import {
getUser,
getUserInfo,
selectOne,
updateRes,
relaunch,
} from '@/api/home'
import { message } from 'ant-design-vue' import { message } from 'ant-design-vue'
import mybus from '@/myplugins/mybus' import mybus from '@/myplugins/mybus'
const router = useRouter() const router = useRouter()
@ -395,6 +401,34 @@
dataFrom.value.infoList = dataFrom.value.infoList.filter( dataFrom.value.infoList = dataFrom.value.infoList.filter(
(item) => item.attrValue !== '' (item) => item.attrValue !== ''
) )
if (resourceId) {
delete dataFrom.value.createDate
delete dataFrom.value.updateDate
dataFrom.value.infoList.map((del) => {
delete del.createDate
delete del.updateDate
})
updateRes(dataFrom.value).then((upres) => {
if (upres.data.code == 0) {
relaunch({ data: dataFrom.value, taskId: taskId }).then((res) => {
console.log('驳回================>', res)
if (res.data.code == 0) {
message.success('重新发起流程成功!')
submitFlag.value = true
window.setTimeout(() => {
window.close()
}, 1000)
} else {
message.error('重新发起流程失败!')
submitFlag.value = true
}
})
} else {
message.error('数据更新失败!')
submitFlag.value = true
}
})
} else {
shangjiainsert(dataFrom.value).then((res) => { shangjiainsert(dataFrom.value).then((res) => {
const instanceId = res.data.data const instanceId = res.data.data
dataFrom.value.id = res.data.data dataFrom.value.id = res.data.data
@ -426,6 +460,7 @@
} }
} }
} }
}
const init = () => { const init = () => {
getCategoryTree().then((res) => { getCategoryTree().then((res) => {
// console.clear() // console.clear()
@ -441,6 +476,94 @@
key: val.name, key: val.name,
}) })
navList2.value.push(val.name) navList2.value.push(val.name)
//
if (resourceId) {
val.children.map((item) => {
if (item.children.length > 0) {
item.children.map((child) => {
switch (child.name) {
case '图层名称':
child.note1 = echoData.value.name
break
case '图层描述':
child.note1 = echoData.value.description
break
case '共享条件':
child.note1 = echoData.value.shareCondition
break
case '归属部门':
child.note1 = echoData.value.deptId
break
case '部门联系人':
child.note1 = echoData.value.deptContacts
break
case '部门联系人电话':
child.note1 = echoData.value.deptPhone
break
case '接口请求方式':
child.note1 = echoData.value.apiMethodType
break
case '应用领域':
if (
echoData.value.infoList &&
echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0]
) {
child.note1 = echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].attrValue
child.note2 = echoData.value.infoList
.filter((fil) => fil.attrType == child.name)[0]
.attrValue.split(';')
}
break
case '图层缩略图':
if (
echoData.value.infoList &&
echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0]
) {
imgList.value = [
{
uid: echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].id,
name:
echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].note3 || '--',
status: 'done',
url: echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].attrValue,
thumbUrl: echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].attrValue,
},
]
}
break
default:
if (
echoData.value.infoList &&
echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0]
) {
child.note1 = echoData.value.infoList.filter(
(fil) => fil.attrType == child.name
)[0].attrValue
}
break
}
})
}
console.log('item================>', item, echoData.value)
})
}
}) })
data.value = res.data.data.children data.value = res.data.data.children
refData.value = data.value.filter( refData.value = data.value.filter(
@ -449,7 +572,20 @@
console.log('所有编目结构==============>', res.data.data) console.log('所有编目结构==============>', res.data.data)
}) })
} }
const resourceId = router.currentRoute.value.query.id
const taskId = router.currentRoute.value.query.taskId
const echoData = ref({})
if (resourceId) {
//
selectOne(resourceId).then((res) => {
echoData.value = res.data.data
dataFrom.value = echoData.value
init() init()
// console.log('===================>', echoData.value)
})
} else {
init()
}
mybus.on('chageDataFrom', (obj) => { mybus.on('chageDataFrom', (obj) => {
if (obj.attrType == '技术文档' && obj.attrValue != null) { if (obj.attrType == '技术文档' && obj.attrValue != null) {
shiyongshouce.value = obj shiyongshouce.value = obj

View File

@ -2,7 +2,7 @@
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-06-17 14:11:08 * @Date: 2022-06-17 14:11:08
* @LastEditors: hisense.liangjunhua * @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-07-26 16:29:25 * @LastEditTime: 2022-08-02 11:31:43
* @Description: 上架 * @Description: 上架
--> -->
<template> <template>
@ -671,6 +671,8 @@
console.log('默认部门=========>', item, res1.data) console.log('默认部门=========>', item, res1.data)
data.value.list.push(item) data.value.list.push(item)
}) })
} else {
data.value.list.push(item)
} }
}) })
} else if (item.name === '部门联系人') { } else if (item.name === '部门联系人') {
@ -680,6 +682,8 @@
item.note1 = res1.data.realName || '' item.note1 = res1.data.realName || ''
}) })
data.value.list.push(item) data.value.list.push(item)
} else {
data.value.list.push(item)
} }
} else if (item.name === '部门联系人电话') { } else if (item.name === '部门联系人电话') {
if (!item.note1) { if (!item.note1) {
@ -688,6 +692,8 @@
item.note1 = res1.data.mobile || '' item.note1 = res1.data.mobile || ''
}) })
data.value.list.push(item) data.value.list.push(item)
} else {
data.value.list.push(item)
} }
} else if (item.name === '来源应用') { } else if (item.name === '来源应用') {
queryApplicationRelByResourceId({ queryApplicationRelByResourceId({
@ -707,6 +713,7 @@
data.value.list.push(item) data.value.list.push(item)
} }
}) })
console.log('props.dataFrom', data.value.list)
}) })
if (props.dataFrom) { if (props.dataFrom) {
// console.log(props.dataFrom, data.value.list) // console.log(props.dataFrom, data.value.list)
@ -1012,7 +1019,7 @@
showTypeClick('调用接口') showTypeClick('调用接口')
watch(data.value.list, (newProps, oldProps) => { watch(data.value.list, (newProps, oldProps) => {
// console.log(newProps, oldProps) console.log('数据发生改变==========>', newProps, oldProps)
newProps.forEach((val) => { newProps.forEach((val) => {
// console.log('==========>', val) // console.log('==========>', val)
if ( if (
@ -1032,6 +1039,7 @@
if (val.options) { if (val.options) {
note2 = val.options.filter((item) => item.value == val.note1)[0] note2 = val.options.filter((item) => item.value == val.note1)[0]
} }
console.log('chageDataFromDwon===================>', val)
mybus.emit('chageDataFromDwon', { mybus.emit('chageDataFromDwon', {
attrType: val.name, attrType: val.name,
attrValue: val.note1, attrValue: val.note1,
@ -1040,6 +1048,15 @@
}) })
} else { } else {
if (val.name !== '应用领域' && val.name !== '发布端') { if (val.name !== '应用领域' && val.name !== '发布端') {
if (val.name == '算法介绍视频') {
console.log('变更视频==================>', val)
mybus.emit('chageDataFrom', {
attrType: val.name,
attrValue: val.note1,
delFlag: 0,
note3: val.note3,
})
} else {
mybus.emit('chageDataFrom', { mybus.emit('chageDataFrom', {
attrType: val.name, attrType: val.name,
attrValue: val.note1, attrValue: val.note1,
@ -1047,6 +1064,7 @@
}) })
} }
} }
}
}) })
}) })
const applicationsChange = (value) => { const applicationsChange = (value) => {

View File

@ -2,7 +2,7 @@
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-06-09 15:41:19 * @Date: 2022-06-09 15:41:19
* @LastEditors: hisense.liangjunhua * @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-06-20 16:38:35 * @LastEditTime: 2022-08-02 11:30:50
* @Description: 上传组件 * @Description: 上传组件
--> -->
<template> <template>
@ -89,12 +89,22 @@
return flag || Upload.LIST_IGNORE return flag || Upload.LIST_IGNORE
} }
const handlePreview = (file) => { const handlePreview = (file) => {
// console.log(file) console.log(file)
if (file.response && file.response.data) {
window.open( window.open(
window.SITE_CONFIG.previewUrl + window.SITE_CONFIG.previewUrl +
'hisense_office/onlinePreview?url=' + 'hisense_office/onlinePreview?url=' +
btoa(encodeURI(file.response.data)) btoa(encodeURI(file.response.data))
) )
} else if (file.url) {
window.open(
window.SITE_CONFIG.previewUrl +
'hisense_office/onlinePreview?url=' +
btoa(encodeURI(file.url))
)
} else {
message.warning('预览失败!')
}
} }
const handleChange = (info) => { const handleChange = (info) => {
if (info.file.status !== 'uploading') { if (info.file.status !== 'uploading') {
@ -104,6 +114,8 @@
message.success(`${info.file.name}上传成功`) message.success(`${info.file.name}上传成功`)
// eslint-disable-next-line vue/no-mutating-props // eslint-disable-next-line vue/no-mutating-props
props.data.note1 = info.file.response.data props.data.note1 = info.file.response.data
// eslint-disable-next-line vue/no-mutating-props
props.data.note3 = info.file.name
console.log(props.data, fileList.value) console.log(props.data, fileList.value)
if (props.type === '图片') { if (props.type === '图片') {
if (!props.emitFlag) { if (!props.emitFlag) {
@ -120,6 +132,7 @@
} else if (props.type === '压缩包') { } else if (props.type === '压缩包') {
mybus.emit('chagePackageList', fileList.value) mybus.emit('chagePackageList', fileList.value)
} else if (props.type === '视频') { } else if (props.type === '视频') {
console.log(fileList.value)
mybus.emit('chageVideoList', fileList.value) mybus.emit('chageVideoList', fileList.value)
} }
} else if (info.file.status === 'error') { } else if (info.file.status === 'error') {

View File

@ -0,0 +1,171 @@
<template>
<div class="TheOverallProcess">
<div class="TheOverallProcess-title">
<div class="TheOverallProcess-title-text">总体流程</div>
<div class="TheOverallProcess-title-line"></div>
</div>
<div class="TheOverallProcess-content">
<span class="neng-li-ji-shi">能力集市</span>
<span class="neng-li-cha-yue">能力查阅</span>
<span class="shen-he-fa-bu-xia-jia">审核发布/下架</span>
<span class="shen-qing">申请</span>
<span class="neng-li-shang-jia-xia-jia">能力上架/下架</span>
<span class="shen-he">审核</span>
<span class="xin-xv-qui-fa-bu">新需求发布</span>
<span class="neng-li-gong-xiang-fang">能力共享方区市委办局</span>
<span class="UCS-neng-li-gong-xiang-ping-tai">UCS-能力共享平台</span>
<span class="neng-li-shi-yong-fang">能力使用方区市委办局</span>
<span class="shen-he-fa-bu">审核发布</span>
<span class="xiang-ying-ping-lun">响应评论</span>
<span class="shen-he-ti-gong">审核提供</span>
<span class="xv-qui-zhong-xin">需求中心</span>
<span class="neng-li-shen-qing-liu-cheng">能力申请流程</span>
<span class="neng-li-xv-qiu-liu-cheng">能力需求流程</span>
</div>
</div>
</template>
<script setup></script>
<style lang="less" scoped>
.TheOverallProcess {
width: 100%;
.TheOverallProcess-title {
margin: 57px 0 24px 0;
display: flex;
flex-direction: column;
align-items: center;
.TheOverallProcess-title-text {
font-size: 26px;
line-height: 26px;
margin-bottom: 20px;
}
.TheOverallProcess-title-line {
width: 50px;
height: 3px;
background: #0058e1;
}
}
.TheOverallProcess-content {
height: 855px;
background: url('~@/assets/menu/TheOverallProcess-bg.png');
position: relative;
& > span {
position: absolute;
}
.neng-li-ji-shi {
left: 50%;
top: 155px;
font-size: 18px;
color: #fff;
margin-left: -36px;
margin-top: -9px;
}
.neng-li-cha-yue {
top: 85px;
right: 658px;
font-size: 16px;
color: #ffc183;
margin-top: -8px;
margin-right: -32px;
}
.shen-he-fa-bu-xia-jia {
top: 232px;
left: 810px;
font-size: 16px;
color: #c1b3ff;
margin-top: -8px;
}
.shen-qing {
right: 890px;
top: 232px;
font-size: 16px;
margin-top: -8px;
color: #ffc183;
}
.neng-li-shang-jia-xia-jia {
top: 329px;
left: 650px;
font-size: 16px;
color: #c1b3ff;
margin-top: -8px;
}
.shen-he {
left: 693px;
bottom: 409px;
font-size: 16px;
margin-top: -8px;
color: #ffc183;
}
.xin-xv-qui-fa-bu {
right: 650px;
bottom: 487px;
font-size: 16px;
margin-top: -8px;
color: #85edff;
}
.neng-li-gong-xiang-fang {
left: 350px;
top: 442px;
font-size: 18px;
margin-top: -9px;
color: #fff;
}
.UCS-neng-li-gong-xiang-ping-tai {
top: 50%;
left: 50%;
font-size: 18px;
color: #fff;
margin-top: 15px;
margin-left: -74px;
}
.neng-li-shi-yong-fang {
top: 442px;
right: 350px;
font-size: 18px;
margin-top: -9px;
color: #fff;
}
.shen-he-fa-bu {
bottom: 321px;
right: 50%;
font-size: 16px;
margin-bottom: -8px;
color: #85edff;
margin-right: -77px;
}
.xiang-ying-ping-lun {
bottom: 230px;
left: 679px;
font-size: 16px;
color: #85edff;
}
.shen-he-ti-gong {
left: 50%;
bottom: 47px;
font-size: 16px;
margin-bottom: -8px;
color: #ffc183;
margin-left: -32px;
}
.xv-qui-zhong-xin {
font-size: 18px;
left: 50%;
margin-left: -36px;
bottom: 147px;
color: #fff;
margin-bottom: -9px;
}
.neng-li-shen-qing-liu-cheng {
color: #fff;
left: 125px;
top: 64px;
}
.neng-li-xv-qiu-liu-cheng {
color: #fff;
left: 125px;
top: 102px;
}
}
}
</style>

View File

@ -9,87 +9,390 @@
</div> </div>
<div class="list-box"> <div class="list-box">
<div class="list-item" v-for="(item, i) in seviceList" :key="i"> <div class="list-item" v-for="(item, i) in seviceList" :key="i">
<div class="item-name">{{ item.name }}</div> <div class="item-name">
<img :src="item.img" />
{{ item.name }}
</div>
<div class="name-box"> <div class="name-box">
<div class="item-v" v-for="(v, j) in item.list" :key="j">{{ v }}</div> <div
</div> class="item-v"
v-for="(v, j) in item.list"
:key="j"
:style="{
'background-image': `url(${item.imgBG || ''})`,
width: `${item.width || ''}`,
}"
>
{{ v }}
</div> </div>
</div> </div>
</div> </div>
</div>
</div>
<!-- 总体流程 -->
<TheOverallProcess></TheOverallProcess>
<!-- imgList --> <!-- imgList -->
<div class="img-box" v-for="(item, i) in imgList" :key="i"> <div class="img-box" v-for="(item, i) in imgList" :key="i">
<div class="title"> <div class="title">
<div class="text">{{ item.name }}</div> <div class="text">{{ item.name }}</div>
<div class="line"></div> <div class="line"></div>
</div> </div>
<div class="img-bg" :class="item.className" :style="{ 'background-image': `url(${item.bgImg || ''})` }"> <div
class="img-bg"
:class="item.className"
:style="{ 'background-image': `url(${item.bgImg || ''})` }"
></div>
<div v-if="item.btnText" class="btn" @click="toWhere(item.name)">
{{ item.btnText }} >>
</div> </div>
<div v-if="item.btnText" class="btn">{{ item.btnText }} >></div>
</div> </div>
<!-- 联系我们 -->
<div class="img-bg callus-box">
<div class="title" style="margin-bottom: 20px">
<div class="text text-white">联系我们</div>
<div class="line line-white"></div>
</div>
<div class="list-box">
<p>
办公电话
<span>0530-0000000</span>
</p>
<p>
手机号
<span>0530-0000000</span>
</p>
</div>
</div>
<!-- 能力上架弹窗 -->
<a-modal
v-model:visible="visible"
@ok="handleOk"
class="shangjia-class"
@cancel="handlecancel"
>
<div class="ant-modal-title" id="vcDialogTitle1">
<div class="showBg"></div>
能力上架申请
</div>
<div class="ability-to-type">
<div class="title">能力类型选择</div>
<div class="ability-to-type-content">
<div
v-for="item in abilityToType"
:key="item"
@click="abilityToTypeFunction(item)"
:class="
abilityToTypeFunctionData == item ? 'ability-to-type-down' : ''
"
>
{{ item }}
</div>
</div>
</div>
<div
class="component-type"
v-if="abilityToTypeFunctionData == '组件服务'"
>
<div class="title">组件类型选择</div>
<div class="component-type-content">
<!-- <a-checkbox-group
v-model:value="value1"
name="checkboxgroup"
:options="componentType"
/> -->
<a-radio-group v-model:value="componentTypeValue">
<a-radio
@click="componentTypeValueFunction(item)"
v-for="item in componentType"
:key="item"
:value="item"
>
{{ item }}
</a-radio>
</a-radio-group>
</div>
</div>
</a-modal>
</div> </div>
</div> </div>
</template> </template>
<script setup> <script setup>
import HomeHeader from '@/views/home/components/header' import HomeHeader from '@/views/home/components/header'
import HomeFooter from '@/views/newHome/components/Footer' import HomeFooter from '@/views/newHome/components/Footer'
import { ref, onMounted } from 'vue' import { ref, onMounted, watch } from 'vue'
import TheOverallProcess from './TheOverallProcess.vue'
import { useRouter } from 'vue-router'
import { message } from 'ant-design-vue'
const seviceList = ref( const router = useRouter()
[
const seviceList = ref([
{ {
name: '组件服务', name: '组件服务',
img: require('@/assets/menu/service-component.png'),
list: ['智能算法', '图层服务', '开发组件', '业务组件'], list: ['智能算法', '图层服务', '开发组件', '业务组件'],
imgBG: require('../../../assets/menu/imgBG.png'),
width: '124px',
}, },
{ {
name: '应用资源', name: '应用资源',
list: ['办公系统', '业务系统', '门户网站', '大屏看板', '小程序', '公众号'], img: require('@/assets/menu/service-application.png'),
list: [
'办公系统',
'业务系统',
'门户网站',
'大屏看板',
'小程序',
'公众号',
],
imgBG: require('../../../assets/menu/imgBG.png'),
width: '124px',
}, },
{ {
name: '组件服务', name: '基础设施',
img: require('@/assets/menu/service-infrastructure.png'),
list: ['视频资源', '云资源', '感知资源'], list: ['视频资源', '云资源', '感知资源'],
imgBG: require('../../../assets/menu/imgBG.png'),
width: '124px',
}, },
{ {
name: '组件服务', name: '数据资源',
img: require('@/assets/menu/service-data.png'),
list: ['政务信息资源'], list: ['政务信息资源'],
imgBG: require('../../../assets/menu/imgBG-long.png'),
width: '200px',
}, },
] ])
)
const imgList = ref([ const imgList = ref([
{ {
name: '能力上架', name: '能力上架',
bgImg: require('../../../assets/menu/shelves.png'), bgImg: require('../../../assets/menu/shelves.png'),
btnText: '立即上架', btnText: '立即上架',
className: 'shelves-img' className: 'shelves-img',
}, },
{ {
name: '能力申请', name: '能力申请',
bgImg: require('../../../assets/menu/apply.png'), bgImg: require('../../../assets/menu/apply.png'),
btnText: '立即申请', btnText: '立即申请',
className: 'apply-img' className: 'apply-img',
}, },
{ {
name: '需求发布', name: '需求发布',
bgImg: require('../../../assets/menu/demand.png'), bgImg: require('../../../assets/menu/demand.png'),
btnText: '立即发布', btnText: '立即发布',
className: 'demand-img' className: 'demand-img',
}, },
{ {
name: '资源下架', name: '资源下架',
bgImg: require('../../../assets/menu/down.png'), bgImg: require('../../../assets/menu/down.png'),
btnText: '立即下架', btnText: '立即下架',
className: 'down-img' className: 'down-img',
}, },
]) ])
//
function handlecancel() {
abilityToTypeFunctionData.value = '组件服务'
componentTypeValue.value = ''
}
let abilityToTypeFunctionData = ref('组件服务')
function abilityToTypeFunction(item) {
abilityToTypeFunctionData.value = item
}
let abilityToType = ref(['组件服务', '应用资源'])
let componentType = ref([
'智能算法',
'图层服务',
'开发组件',
// '',
'业务组件',
// '',
])
const visible = ref(false)
let componentTypeValueOld = ref('')
function componentTypeValueFunction(item) {
if (componentTypeValueOld.value != item) {
componentTypeValue.value = item
componentTypeValueOld.value = item
} else {
componentTypeValue.value = ''
}
}
let componentTypeValue = ref('')
const handleOk = (e) => {
let snum = ref({})
if (abilityToTypeFunctionData.value == '组件服务') {
if (!componentTypeValue.value || componentTypeValue.value == '') {
message.error('请选择组件类型!')
return
} else if (
componentTypeValue.value === '智能算法' ||
componentTypeValue.value === '开发组件' ||
componentTypeValue.value === '业务组件' ||
componentTypeValue.value === '图层服务'
) {
snum.value = {
abilityToType: abilityToTypeFunctionData.value,
componentTypeValue: componentTypeValue.value,
}
} else {
message.error('功能开发中!')
return
}
} else {
snum.value = {
abilityToType: abilityToTypeFunctionData.value,
}
}
const applypage = router.resolve({
path: '/nenglishangjia', //
query: snum.value,
})
window.open(applypage.href, '_blank')
visible.value = false
abilityToTypeFunctionData.value = '组件服务'
componentTypeValue.value = ''
console.log(e)
}
//
const toWhere = (data) => {
console.log(data, 'wwwwwww')
if (data === '能力上架') {
visible.value = true
} else if (data === '能力申请') {
const newpage = router.resolve({
path: '/addApplication', //
})
window.open(newpage.href, '_blank')
} else if (data === '需求发布') {
const newpage = router.resolve({
path: '/DetailsPageconetent',
query: {
select: '组件服务',
},
})
window.location.href = newpage.href
} else if (data === '资源下架') {
window.sessionStorage.setItem('type', JSON.stringify('PurchaseVehicle'))
const newpage = router.resolve({
path: '/personalCenter',
})
window.location.href = newpage.href
}
}
watch(abilityToTypeFunctionData, () => {
componentTypeValue.value = ''
})
</script> </script>
<style lang="less">
.shangjia-class {
position: fixed;
left: 50%;
top: 50%;
margin-left: -2.6rem;
margin-top: -1.44rem;
font-size: 0.14rem;
font-weight: 500;
.ant-radio-inner {
height: 0.16rem;
width: 0.16rem;
}
.ant-radio-inner::after {
background-color: unset;
background: url('~@/assets/personalCenter/xuanzhong.png') no-repeat;
background-size: cover;
background-position: center;
}
.ant-modal-content {
border-radius: 0.1rem;
.ability-to-type,
.component-type {
display: flex;
margin-top: 0.2rem;
.title {
white-space: nowrap;
margin-right: 0.2rem;
display: flex;
align-items: center;
height: 0.26rem;
}
.component-type-content {
width: 100%;
height: unset;
border: unset;
background: unset;
.ant-radio-group {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
grid-gap: 0.15rem;
}
}
}
.ability-to-type {
.ability-to-type-content {
display: grid;
grid-template-columns: 1fr 1fr 1fr;
height: unset;
border: unset;
background: unset;
div {
margin-right: 0.15rem;
cursor: pointer;
font-size: 0.14rem;
width: 0.9rem;
height: 0.26rem;
border-radius: 0.13rem;
color: #333333;
background: #f5f5f5;
border: 0.01rem #cccccc solid;
display: flex;
justify-content: center;
align-items: center;
font-weight: 500;
}
.ability-to-type-down {
background: #0087ff;
color: #fff;
}
}
}
}
.ant-modal-title {
display: flex;
align-items: center;
}
.ant-modal-footer {
border: 0;
text-align: center;
padding-bottom: 0.2rem;
button {
margin-right: 0.2rem;
border-radius: 0.08rem;
}
}
.showBg {
height: 0.24rem;
width: 0.24rem;
background: url('~@/assets/home/shenqing.png') no-repeat;
background-size: cover;
background-position: center;
margin-right: 0.1rem;
}
}
</style>
<style lang="less" scoped> <style lang="less" scoped>
.menu-box { .menu-box {
width: 1920px; width: 1920px;
padding-bottom: 40px; // padding-bottom: 40px;
} }
.title { .title {
@ -106,7 +409,7 @@ const imgList = ref([
width: 50px; width: 50px;
height: 3px; height: 3px;
background: #0058e1; background: #0058e1;
margin: 0 auto margin: 0 auto;
} }
.line-white { .line-white {
@ -116,7 +419,6 @@ const imgList = ref([
.text-white { .text-white {
color: #fff; color: #fff;
} }
} }
.btn { .btn {
@ -136,7 +438,6 @@ const imgList = ref([
} }
} }
.img-box { .img-box {
margin-bottom: 50px; margin-bottom: 50px;
} }
@ -153,6 +454,28 @@ const imgList = ref([
margin: 0 auto; margin: 0 auto;
} }
} }
.callus-box {
width: 1920px;
height: 214px;
background-size: 100% 100%;
background-image: url('../../../assets/menu/callus.png');
.list-box {
width: 1560px;
// height: 350px;
margin: 0 auto;
p {
font-size: 24px;
color: #ffffff;
font-weight: bold;
span {
font-size: 30px;
}
}
p:nth-child(1) {
margin-right: 100px;
}
}
}
.img-bg { .img-bg {
width: 1920px; width: 1920px;
@ -196,14 +519,13 @@ const imgList = ref([
.list-item { .list-item {
padding: 10px 20px; padding: 10px 20px;
width: 310px; width: 310px;
height: 330px; height: 356px;
background: rgba(23, 85, 177, 0.43); background: rgba(23, 85, 177, 0.43);
border: 1px solid #74a9f8; border: 1px solid #74a9f8;
border-radius: 2px; border-radius: 10px;
margin: 0 10px; margin: 0 10px;
cursor: pointer; cursor: pointer;
.item-name { .item-name {
color: #fff; color: #fff;
font-size: 20px; font-size: 20px;
@ -219,16 +541,21 @@ const imgList = ref([
} }
.item-v { .item-v {
min-width: 100px; width: 124px;
height: 74px;
line-height: 74px;
color: #fff; color: #fff;
font-size: 20px; font-size: 20px;
text-align: center; text-align: center;
padding: 10px; margin: 0 0 20px;
border: 1px solid rgba(255, 255, 255, 0.4); background-size: 100% 100%;
border-radius: 6px;
background: rgba(255, 255, 255, 0.2);
margin: 0 16px 20px 16px;
} }
.item-v:nth-child(2n) {
margin-left: 16px;
}
// .item-v:last-child {
// width: 200px;
// }
} }
} }
</style> </style>

View File

@ -4,26 +4,43 @@
<div class="menu-box"> <div class="menu-box">
<div id="container" class="content-menu"> <div id="container" class="content-menu">
<div class="left"> <div class="left">
<div class="first-title-text" v-for="(data, i) in titleList" :key="i" @click="changeName(data)" <div
:style="{ color: data.name === titleData.name ? '#0058e1' : '' }"> class="first-title-text"
v-for="(data, i) in titleList"
:key="i"
@click="changeName(data)"
:style="{ color: data.name === titleData.name ? '#0058e1' : '' }"
>
<div class="img" :class="data.className"></div> <div class="img" :class="data.className"></div>
{{ data.name }} {{ data.name }}
</div> </div>
<abilityDocTree :dataList="treeArray" @treeClick="treeClick" :clickData="clickData"></abilityDocTree> <abilityDocTree
:dataList="treeArray"
@treeClick="treeClick"
:clickData="clickData"
></abilityDocTree>
</div> </div>
<!-- 技术文档 --> <!-- 技术文档 -->
<div class="right" v-if="titleData.name !== '新手指引'"> <div class="right" v-if="titleData.name !== '新手指引'">
<div style="height: 100%"> <div style="height: 100%">
<iframe name="iframeName" width="1300" height="100%" id="iframeId" :frameborder="0" <iframe
:src="doc_base_url + clickData.doc"></iframe> name="iframeName"
width="1300"
height="100%"
id="iframeId"
:frameborder="0"
:src="doc_base_url + clickData.doc"
></iframe>
</div> </div>
</div> </div>
<!-- 使用手册 -->
<div class="manual"><p>使用手册</p></div>
</div> </div>
<menuBook v-if="titleData.name === '新手指引'"></menuBook> <menuBook v-if="titleData.name === '新手指引'"></menuBook>
</div> </div>
</div> </div>
<!-- <home-footer></home-footer> --> <home-footer></home-footer>
</template> </template>
<script setup> <script setup>
import HomeHeader from '@/views/home/components/header' import HomeHeader from '@/views/home/components/header'
@ -170,6 +187,7 @@ onMounted(() => {
} }
.left { .left {
z-index: 10;
width: 200px; width: 200px;
padding: 20px; padding: 20px;
margin-right: 20px; margin-right: 20px;
@ -188,6 +206,27 @@ onMounted(() => {
left: 300px; left: 300px;
min-height: 600px; min-height: 600px;
} }
.manual {
cursor: pointer;
z-index: 10;
width: 74px;
height: 136px;
position: fixed;
top: 200px;
right: 200px;
background-size: 100% 100%;
background-image: url('../../assets/menu/manual.png');
display: flex;
justify-content: center;
align-items: center;
padding: unset !important;
p {
color: #005be1;
font-size: 20px;
margin-bottom: 0;
width: 20px;
}
}
.sidebar { .sidebar {
right: 0 !important; right: 0 !important;
@ -226,5 +265,4 @@ onMounted(() => {
height: 100%; height: 100%;
position: relative; position: relative;
} }
</style> </style>

View File

@ -159,9 +159,9 @@
</div> </div>
<div class="button-box"> <div class="button-box">
<div class="button" @click="showDetail(item)">查看详情</div> <div class="button" @click="showDetail(item)">查看详情</div>
<!-- <div class="button" @click="showAdd(item)" v-if="item.backToFirst"> <div class="button" @click="showAdd(item)" v-if="item.backToFirst">
修改 修改
</div> --> </div>
<!-- <div <!-- <div
v-if=" v-if="
!( !(
@ -450,12 +450,21 @@
// abilitydemandapply // abilitydemandapply
// abilityprocess // abilityprocess
if (item.processDefinitionKey == 'resourcemountapply') { if (item.processDefinitionKey == 'resourcemountapply') {
const newpage = router.resolve({ const data = {
path: '/nenglishangjia', //
query: {
id: item.resourceId, id: item.resourceId,
taskId: item.currentTaskList[0].taskId, taskId: item.currentTaskList[0].taskId,
}, }
if (item.dto.type == '组件服务') {
data.abilityToType = '组件服务'
data.componentTypeValue = item.dto.infoList.filter(
(val) => val.attrType == '组件类型'
)[0].attrValue
} else if (item.dto.type == '应用资源') {
data.abilityToType = '应用资源'
}
const newpage = router.resolve({
path: '/nenglishangjia', //
query: data,
}) })
console.log('上架申请修改=================》', item) console.log('上架申请修改=================》', item)
window.open(newpage.href, '_blank') window.open(newpage.href, '_blank')