This commit is contained in:
guoyue 2022-08-03 14:09:11 +08:00
commit c33729bbb8
37 changed files with 2146 additions and 586 deletions

View File

@ -7,13 +7,19 @@
@keyup.enter.native="dataFormSubmitHandle()"
:label-width="$i18n.locale === 'en-US' ? '120px' : 'auto'"
>
<el-tooltip placement="bottom" :content="dataForm.comment">
<template #title>
<span>{{ dataForm.comment }}</span>
</template>
<el-form-item label="评论内容">
<el-input
type="textarea"
v-model="dataForm.comment"
:disabled="fieldDisabled"
placeholder="评论内容"
></el-input>
</el-form-item>
</el-tooltip>
</el-form>
</div>
<!-- 流程综合组件 -->
@ -106,10 +112,9 @@ export default {
mounted () {}
}
</script>
<style lang="scss">
.kuandukuandukuandu{
max-width:1500px;
}
.wrapper {
<style lang="scss" scoped>
::v-deep .el-textarea__inner {
height: 100px;
resize: none;
}
</style>

View File

@ -37,8 +37,8 @@
<h3>审批</h3>
<div>
<el-button type="primary" @click="showDialog('同意')">同意</el-button>
<el-button type="danger" plain @click="showDialog('拒绝')"
>拒绝</el-button
<el-button type="danger" plain @click="showDialog('驳回')"
>驳回</el-button
>
<!-- <el-radio-group v-model="agreeOrList" style="width: 230px">
<el-radio-button label="同意" class="blueAll">同意</el-radio-button>
@ -232,13 +232,14 @@ export default {
})
})
.catch(() => {})
} else if (this.dialogType === '拒绝') {
} else if (this.dialogType === '驳回') {
const params = qs.stringify({
taskId: this.taskId,
comment: this.input
})
this.$http
.post('/act/task/endProcess?', params)
// .post('/act/task/endProcess?', params)
.post('/act/task/backToFirst?', params)
.then(({ data: res }) => {
if (res.code !== 0) {
this.$message.error(res.msg)

View File

@ -2,7 +2,7 @@
* @Author: hisense.liangjunhua
* @Date: 2022-06-29 15:59:51
* @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-07-28 17:23:05
* @LastEditTime: 2022-08-02 16:06:20
* @Description: 告诉大家这是什么
-->
<!-- 流程业务表单 -->
@ -102,8 +102,8 @@
<el-radio-button label="退回" class="redAll" @click="showDialog('退回')">退回</el-radio-button>
</el-radio-group> -->
<el-button type="primary" @click="showDialog('同意')">同意</el-button>
<el-button type="danger" plain @click="showDialog('拒绝')"
>拒绝</el-button
<el-button type="danger" plain @click="showDialog('驳回')"
>驳回</el-button
>
<!-- <el-input v-if="agreeOrList ==='同意' " v-model="inputAgree" placeholder="请输入同意意见"></el-input>
<el-input v-if="agreeOrList ==='退回'" v-model="inputNo" placeholder="请输入退回意见"></el-input>
@ -411,13 +411,13 @@ export default {
})
})
.catch(() => {})
} else if (this.dialogType === '拒绝') {
} else if (this.dialogType === '驳回') {
const params = qs.stringify({
taskId: this.dataForm.taskId,
comment: this.input
})
this.$http
.post('/act/task/endProcess?', params)
.post('/act/task/backToFirst?', params)
.then(({ data: res }) => {
if (res.code !== 0) {
this.$message.error(res.msg)

View File

@ -1,40 +1,110 @@
<template>
<el-dialog :visible.sync="visible" :title="!dataForm.id ? $t('add') : $t('update')" :close-on-click-modal="false" :close-on-press-escape="false">
<el-form :model="dataForm" :rules="dataRule" ref="dataForm" @keyup.enter.native="dataFormSubmitHandle()" label-width="120px">
<el-form-item prop="username" :label="$t('user.username')" auto-complete="new-password">
<el-input v-model="dataForm.username" :placeholder="$t('user.username')" auto-complete="new-password"></el-input>
<el-dialog
:visible.sync="visible"
:title="!dataForm.id ? $t('add') : $t('update')"
:close-on-click-modal="false"
:close-on-press-escape="false"
>
<el-form
:model="dataForm"
:rules="dataRule"
ref="dataForm"
@keyup.enter.native="dataFormSubmitHandle()"
label-width="120px"
>
<el-form-item
prop="username"
:label="$t('user.username')"
auto-complete="new-password"
>
<el-input
v-model="dataForm.username"
:placeholder="$t('user.username')"
auto-complete="new-password"
></el-input>
</el-form-item>
<el-form-item prop="deptName" :label="$t('user.deptName')">
<ren-dept-tree v-model="dataForm.deptId" :placeholder="$t('dept.title')" :dept-name.sync="dataForm.deptName"></ren-dept-tree>
<ren-dept-tree
v-model="dataForm.deptId"
:placeholder="$t('dept.title')"
:dept-name.sync="dataForm.deptName"
></ren-dept-tree>
</el-form-item>
<el-form-item prop="password" :label="$t('user.password')" :class="{ 'is-required': !dataForm.id }" auto-complete="new-password" v-if="!dataForm.id">
<el-input v-model="dataForm.password" type="password" :placeholder="$t('user.password')" auto-complete="new-password" @input="changeInput"></el-input>
<el-form-item
prop="password"
:label="$t('user.password')"
:class="{ 'is-required': !dataForm.id }"
auto-complete="new-password"
v-if="!dataForm.id"
>
<el-input
v-model="dataForm.password"
type="password"
:placeholder="$t('user.password')"
auto-complete="new-password"
@input="changeInput"
></el-input>
</el-form-item>
<el-form-item prop="confirmPassword" :label="$t('user.confirmPassword')" :class="{ 'is-required': !dataForm.id }" v-if="!dataForm.id">
<el-input v-model="dataForm.confirmPassword" type="password" :placeholder="$t('user.confirmPassword')"></el-input>
<el-form-item
prop="confirmPassword"
:label="$t('user.confirmPassword')"
:class="{ 'is-required': !dataForm.id }"
v-if="!dataForm.id"
>
<el-input
v-model="dataForm.confirmPassword"
type="password"
:placeholder="$t('user.confirmPassword')"
></el-input>
</el-form-item>
<el-form-item prop="realName" :label="$t('user.realName')">
<el-input v-model="dataForm.realName" :placeholder="$t('user.realName')"></el-input>
<el-input
v-model="dataForm.realName"
:placeholder="$t('user.realName')"
></el-input>
</el-form-item>
<el-form-item prop="gender" :label="$t('user.gender')">
<ren-radio-group v-model="dataForm.gender" dict-type="gender"></ren-radio-group>
<ren-radio-group
v-model="dataForm.gender"
dict-type="gender"
></ren-radio-group>
</el-form-item>
<el-form-item prop="email" :label="$t('user.email')">
<el-input v-model="dataForm.email" :placeholder="$t('user.email')"></el-input>
<el-input
v-model="dataForm.email"
:placeholder="$t('user.email')"
></el-input>
</el-form-item>
<el-form-item prop="mobile" :label="$t('user.mobile')">
<el-input v-model="dataForm.mobile" :placeholder="$t('user.mobile')"></el-input>
<el-input
v-model="dataForm.mobile"
:placeholder="$t('user.mobile')"
></el-input>
</el-form-item>
<el-form-item prop="roleIdList" :label="$t('user.roleIdList')" class="role-list">
<el-select v-model="dataForm.roleIdList" multiple :placeholder="$t('user.roleIdList')">
<el-option v-for="role in roleList" :key="role.id" :label="role.name" :value="role.id"></el-option>
<el-form-item
prop="roleIdList"
:label="$t('user.roleIdList')"
class="role-list"
>
<el-select
v-model="dataForm.roleIdList"
multiple
:placeholder="$t('user.roleIdList')"
>
<el-option
v-for="role in roleList"
:key="role.id"
:label="role.name"
:value="role.id"
></el-option>
</el-select>
</el-form-item>
<el-form-item prop="postIdList" :label="$t('user.postIdList')" class="role-list">
<!-- 所在岗位屏蔽掉bug729 -->
<!-- <el-form-item prop="postIdList" :label="$t('user.postIdList')" class="role-list">
<el-select v-model="dataForm.postIdList" multiple :placeholder="$t('user.postIdList')">
<el-option v-for="post in postList" :key="post.id" :label="post.postName" :value="post.id"></el-option>
</el-select>
</el-form-item>
</el-form-item> -->
<el-form-item prop="status" :label="$t('user.status')" size="mini">
<el-radio-group v-model="dataForm.status">
<el-radio :label="0">{{ $t('user.status0') }}</el-radio>
@ -44,7 +114,9 @@
</el-form>
<template slot="footer">
<el-button @click="visible = false">{{ $t('cancel') }}</el-button>
<el-button type="primary" @click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button>
<el-button type="primary" @click="dataFormSubmitHandle()">{{
$t('confirm')
}}</el-button>
</template>
</el-dialog>
</template>
@ -93,8 +165,22 @@ export default {
const low = /^.*[a-z]+.*/
const up = /^.*[A-Z]+.*/
const spe = /^.*[^a-zA-Z0-9]+.*/
console.log('包含数字', num.test(value), '包含字母', low.test(value), up.test(value), '包含特殊符号', spe.test(value))
if (!(num.test(value) && (low.test(value) || up.test(value)) && spe.test(value))) {
console.log(
'包含数字',
num.test(value),
'包含字母',
low.test(value),
up.test(value),
'包含特殊符号',
spe.test(value)
)
if (
!(
num.test(value) &&
(low.test(value) || up.test(value)) &&
spe.test(value)
)
) {
return callback(new Error(this.$t('validate.pwdStrength')))
}
// if (!this.dataForm.id && !/\S/.test(value)) {
@ -113,38 +199,52 @@ export default {
}
var validateEmail = (rule, value, callback) => {
if (value && !isEmail(value)) {
return callback(new Error(this.$t('validate.format', { attr: this.$t('user.email') })))
return callback(
new Error(
this.$t('validate.format', { attr: this.$t('user.email') })
)
)
}
callback()
}
var validateMobile = (rule, value, callback) => {
if (value && !isMobile(value)) {
return callback(new Error(this.$t('validate.format', { attr: this.$t('user.mobile') })))
return callback(
new Error(
this.$t('validate.format', { attr: this.$t('user.mobile') })
)
)
}
callback()
}
return {
username: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
{
required: true,
message: this.$t('validate.required'),
trigger: 'blur'
}
],
deptName: [
{ required: true, message: this.$t('validate.required'), trigger: 'change' }
],
password: [
{ validator: validatePassword, trigger: 'blur' }
{
required: true,
message: this.$t('validate.required'),
trigger: 'change'
}
],
password: [{ validator: validatePassword, trigger: 'blur' }],
confirmPassword: [
{ validator: validateConfirmPassword, trigger: 'blur' }
],
realName: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
{
required: true,
message: this.$t('validate.required'),
trigger: 'blur'
}
],
email: [
{ validator: validateEmail, trigger: 'blur' }
],
mobile: [
{ validator: validateMobile, trigger: 'blur' }
]
email: [{ validator: validateEmail, trigger: 'blur' }],
mobile: [{ validator: validateMobile, trigger: 'blur' }]
}
}
},
@ -165,10 +265,7 @@ export default {
this.$nextTick(() => {
this.$refs.dataForm.resetFields()
this.roleIdListDefault = []
Promise.all([
this.getRoleList(),
this.getPostList()
]).then(() => {
Promise.all([this.getRoleList(), this.getPostList()]).then(() => {
if (this.dataForm.id) {
this.getInfo()
} else {
@ -193,25 +290,33 @@ export default {
},
//
getRoleList () {
return this.$http.get('/sys/role/list').then(({ data: res }) => {
return this.$http
.get('/sys/role/list')
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.roleList = res.data
}).catch(() => {})
})
.catch(() => {})
},
//
getPostList () {
return this.$http.get('/sys/post/list').then(({ data: res }) => {
return this.$http
.get('/sys/post/list')
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
this.postList = res.data
}).catch(() => {})
})
.catch(() => {})
},
//
getInfo () {
this.$http.get(`/sys/user/${this.dataForm.id}`).then(({ data: res }) => {
this.$http
.get(`/sys/user/${this.dataForm.id}`)
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
@ -222,16 +327,22 @@ export default {
}
// ,
for (var i = 0; i < res.data.roleIdList.length; i++) {
if (this.roleList.filter(item => item.id === res.data.roleIdList[i])[0]) {
if (
this.roleList.filter(
(item) => item.id === res.data.roleIdList[i]
)[0]
) {
this.dataForm.roleIdList.push(res.data.roleIdList[i])
continue
}
this.roleIdListDefault.push(res.data.roleIdList[i])
}
}).catch(() => {})
})
.catch(() => {})
},
//
dataFormSubmitHandle: debounce(function () {
dataFormSubmitHandle: debounce(
function () {
this.$refs.dataForm.validate((valid) => {
if (!valid) {
return false
@ -248,7 +359,8 @@ export default {
...this.dataForm.roleIdList,
...this.roleIdListDefault
]
}).then(({ data: res }) => {
})
.then(({ data: res }) => {
if (res.code !== 0) {
return this.$message.error(res.msg)
}
@ -262,10 +374,14 @@ export default {
}
})
this.submitFlag = true
}).catch(() => {})
})
.catch(() => {})
}
})
}, 1000, { leading: true, trailing: false })
},
1000,
{ leading: true, trailing: false }
)
}
}
</script>

View File

@ -1,8 +1,8 @@
<!--
* @Author: hisense.wuhongjian
* @Date: 2022-03-29 16:45:25
* @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-07-28 14:42:55
* @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-08-02 11:59:30
* @Description: 告诉大家这是什么
-->
<!DOCTYPE html>
@ -48,22 +48,18 @@
// window.SITE_CONFIG['websocketURL'] = '15.2.21.243:8888/renren-admin';
// window.SITE_CONFIG['POI_URL'] = 'http://15.2.21.238:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address';
// 西海岸版本
window.SITE_CONFIG['backUrl'] = 'http://10.134.135.9:9797';
window.SITE_CONFIG['previewUrl'] = 'http://10.134.135.9:9796/';
window.SITE_CONFIG['frontUrl'] = 'http://10.134.135.9:9796/document/#/devModelFile/';
window.SITE_CONFIG['apiURL'] = 'http://10.134.135.9:8888/renren-admin';
// window.SITE_CONFIG['backUrl'] = 'http://10.134.135.9:9797';
// window.SITE_CONFIG['previewUrl'] = 'http://10.134.135.9:9796/';
// window.SITE_CONFIG['frontUrl'] = 'http://10.134.135.9:9796/document/#/devModelFile/';
// window.SITE_CONFIG['apiURL'] = 'http://10.134.135.9:8888/renren-admin';
// 开发
// window.SITE_CONFIG['backUrl'] = 'http://localhost:8001';
// window.SITE_CONFIG['previewUrl'] = 'http://15.2.21.236:9796/';
// window.SITE_CONFIG['frontUrl'] = 'http://15.2.21.236:9796/document/#/devModelFile/';
// window.SITE_CONFIG['apiURL'] = 'http://15.2.21.236:8888/renren-admin';
// window.SITE_CONFIG['websocketURL'] = '15.2.21.236:8888/renren-admin';
window.SITE_CONFIG['POI_URL'] = 'http://15.2.21.238:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address';
// window.SITE_CONFIG['backUrl'] = 'http://15.2.21.238:9797';
// window.SITE_CONFIG['previewUrl'] = 'http://15.2.21.238:9796/';
// window.SITE_CONFIG['frontUrl'] = 'http://15.2.21.238:9796/document/#/devModelFile/';
// window.SITE_CONFIG['apiURL'] = 'http://15.2.21.239:8888/renren-admin';
// window.SITE_CONFIG['POI_URL'] = 'http://15.2.21.238:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address';
window.SITE_CONFIG['backUrl'] = 'http://localhost:8001';
window.SITE_CONFIG['previewUrl'] = 'http://192.168.124.236:9796/';
window.SITE_CONFIG['frontUrl'] = 'http://192.168.124.236:9796/document/#/devModelFile/';
window.SITE_CONFIG['apiURL'] = 'http://192.168.124.236:8888/renren-admin';
window.SITE_CONFIG['websocketURL'] = '192.168.124.236:8888/renren-admin';
window.SITE_CONFIG['POI_URL'] = 'http://192.168.124.236:8090/iserver/services/addressmatch-qingdaoPOI181015/restjsr/v1/address';
// 穿透版本
// window.SITE_CONFIG['backUrl'] = 'http://124.222.94.39:9797';
// window.SITE_CONFIG['previewUrl'] = 'http://124.222.94.39:9796/';

View File

@ -275,3 +275,12 @@ export function AbilityToPullDownPages(params) {
params,
})
}
//
export function endProcess(params) {
return request({
url: '/act/task/endProcess',
method: 'post',
params,
})
}

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: 514 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 119 KiB

After

Width:  |  Height:  |  Size: 119 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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 123 KiB

After

Width:  |  Height:  |  Size: 128 KiB

View File

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

View File

@ -2,7 +2,7 @@
* @Author: hisense.liangjunhua
* @Date: 2022-06-13 10:22:27
* @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-07-26 14:35:45
* @LastEditTime: 2022-08-02 11:28:00
* @Description: 算法上架
-->
<template>
@ -266,7 +266,13 @@
import { useRouter } from 'vue-router'
import { getCategoryTree } 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 mybus from '@/myplugins/mybus'
const router = useRouter()
@ -454,6 +460,7 @@
!dataFrom.value.infoList.filter((val) => val.attrType === '应用领域')[0]
.attrValue
) {
console.log('应用领域==========>', dataFrom.value.infoList)
notFilled.value.push('应用领域')
}
if (notFilled.value.length > 0) {
@ -543,6 +550,34 @@
dataFrom.value.infoList = dataFrom.value.infoList.filter(
(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) => {
const instanceId = res.data.data
dataFrom.value.id = res.data.data
@ -574,6 +609,7 @@
}
}
}
}
const init = () => {
getCategoryTree().then((res) => {
// console.clear()
@ -583,7 +619,7 @@
navList.value = []
navList2.value = []
res.data.data.children.forEach((val) => {
console.log(val)
// console.log('val================>', val, echoData.value)
navList.value.push({
name: 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
refData.value = data.value.filter(
(item) => item.name === showView.value
)[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 changeSfys = (type) => {
@ -624,7 +761,6 @@
refPutOnTheShelf.value.add('计费标准信息', true)
refPutOnTheShelf.value.add('常见问题', true, type)
}
init()
mybus.on('chageDataFrom', (obj) => {
if (obj.attrType == '技术文档' && obj.attrValue != null) {
shiyongshouce.value = obj
@ -698,6 +834,8 @@
mybus.off('chageFileList')
mybus.off('chageImgList')
mybus.off('chageDataFromDwon')
mybus.off('chageVideoList')
mybus.off('chagePackageList')
})
</script>
<style lang="less" scoped>

View File

@ -2,7 +2,7 @@
* @Author: hisense.liangjunhua
* @Date: 2022-06-13 10:22:27
* @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-07-26 14:41:26
* @LastEditTime: 2022-08-02 11:40:41
* @Description: 应用上架
-->
<template>
@ -196,7 +196,13 @@
import { useRouter } from 'vue-router'
import { getCategoryTree } 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 mybus from '@/myplugins/mybus'
const showView = ref('基本信息')
@ -394,6 +400,34 @@
dataFrom.value.infoList = dataFrom.value.infoList.filter(
(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) => {
const instanceId = res.data.data
dataFrom.value.id = res.data.data
@ -424,6 +458,7 @@
})
}
}
}
//
const preview = () => {
dataFrom.value.infoList = dataFrom.value.infoList.filter(
@ -451,6 +486,121 @@
key: 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
refData.value = data.value.filter(
@ -459,6 +609,20 @@
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 changeGnjs = (type) => {
@ -469,7 +633,6 @@
console.log(refPutOnTheShelf)
refPutOnTheShelf.value.add('常见问题', true, type)
}
init()
mybus.on('chageDataFrom', (obj) => {
if (obj.attrType == '技术文档' && obj.attrValue != null) {
shiyongshouce.value = obj

View File

@ -2,7 +2,7 @@
* @Author: hisense.liangjunhua
* @Date: 2022-06-20 09:35:51
* @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-07-26 14:36:31
* @LastEditTime: 2022-08-02 11:47:32
* @Description: 业务组件
-->
<template>
@ -229,7 +229,13 @@
import { useRouter } from 'vue-router'
import { getCategoryTree } 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 mybus from '@/myplugins/mybus'
const router = useRouter()
@ -486,6 +492,35 @@
dataFrom.value.infoList = dataFrom.value.infoList.filter(
(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) => {
const instanceId = res.data.data
dataFrom.value.id = res.data.data
@ -517,6 +552,7 @@
}
}
}
}
//
const refPutOnTheShelf = ref(null)
const changeGnjs = (type) => {
@ -545,6 +581,121 @@
key: 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
refData.value = data.value.filter(
@ -553,7 +704,21 @@
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()
}
mybus.on('chageDataFrom', (obj) => {
if (obj.attrType == '技术文档' && obj.attrValue != null) {
shiyongshouce.value = obj

View File

@ -2,7 +2,7 @@
* @Author: hisense.liangjunhua
* @Date: 2022-06-20 09:35:17
* @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-07-26 14:37:17
* @LastEditTime: 2022-08-02 11:51:50
* @Description: 开发组件
-->
<template>
@ -228,7 +228,13 @@
import { useRouter } from 'vue-router'
import { getCategoryTree } 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 mybus from '@/myplugins/mybus'
const router = useRouter()
@ -498,6 +504,34 @@
dataFrom.value.infoList = dataFrom.value.infoList.filter(
(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) => {
const instanceId = res.data.data
dataFrom.value.id = res.data.data
@ -529,6 +563,7 @@
}
}
}
}
const init = () => {
getCategoryTree().then((res) => {
// console.clear()
@ -544,6 +579,121 @@
key: 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
refData.value = data.value.filter(
@ -552,7 +702,20 @@
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()
}
mybus.on('chageDataFrom', (obj) => {
if (obj.attrType == '技术文档' && obj.attrValue != null) {
shiyongshouce.value = obj

View File

@ -2,7 +2,7 @@
* @Author: hisense.liangjunhua
* @Date: 2022-06-20 09:35:17
* @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-07-26 14:37:38
* @LastEditTime: 2022-08-02 11:58:16
* @Description: 图层服务
-->
<template>
@ -177,7 +177,13 @@
import { useRouter } from 'vue-router'
import { getCategoryTree } 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 mybus from '@/myplugins/mybus'
const router = useRouter()
@ -395,6 +401,34 @@
dataFrom.value.infoList = dataFrom.value.infoList.filter(
(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) => {
const instanceId = res.data.data
dataFrom.value.id = res.data.data
@ -426,6 +460,7 @@
}
}
}
}
const init = () => {
getCategoryTree().then((res) => {
// console.clear()
@ -441,6 +476,94 @@
key: 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
refData.value = data.value.filter(
@ -449,7 +572,20 @@
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()
}
mybus.on('chageDataFrom', (obj) => {
if (obj.attrType == '技术文档' && obj.attrValue != null) {
shiyongshouce.value = obj

View File

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

View File

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

View File

@ -299,7 +299,7 @@
if (res.data.code == '0') {
demandCommentApply({ id: res.data.data.id }).then((res1) => {
if (res1.data.code == '0') {
message.success('提交评价成功')
message.success('提交评价成功,请注意查看消息通知')
myComment.value = ''
evaluateList()
}

View File

@ -2,8 +2,51 @@
<div class="ability-to-apply-for" :class="{ all: falg }">
<div class="title">
<span>申请能力</span>
<span class="btn" @click="falg = !falg" v-show="!falg">展开</span>
<span class="btn" @click="falg = !falg" v-show="falg">收起</span>
<div class="btnBox" v-show="!falg">
<svg
t="1659419933164"
class="btn"
viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="5926"
width="20"
height="20"
@click="falg = !falg"
>
<path
d="M512 565.12a45.44 45.44 0 0 1-32.64-13.44l-448-451.84a45.44 45.44 0 0 1 64-64L512 454.4 931.84 35.2a46.08 46.08 0 0 1 64 0 45.44 45.44 0 0 1 0 64L545.28 551.68a45.44 45.44 0 0 1-33.28 13.44z"
fill="#13227a"
p-id="5927"
></path>
<path
d="M512 1016.96a45.44 45.44 0 0 1-32.64-13.44l-448-451.84a45.44 45.44 0 0 1 64-64L512 906.24l419.2-419.2a46.08 46.08 0 0 1 64 0 45.44 45.44 0 0 1 0 64l-449.92 452.48a45.44 45.44 0 0 1-33.28 13.44z"
fill="#13227a"
p-id="5928"
></path>
</svg>
<span class="btn" @click="falg = !falg">展开</span>
</div>
<div class="btnBox" v-show="falg">
<svg
t="1659420014519"
class="btn"
viewBox="0 0 1024 1024"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
p-id="9781"
width="20"
height="20"
@click="falg = !falg"
>
<path
d="M498.095 146.134l403.416 403.415c17.387 17.387 45.576 17.387 62.963 0s17.387-45.576 0-62.963L499.888 22 35.302 486.586c-17.388 17.387-17.388 45.575 0 62.963 17.387 17.387 45.576 17.387 62.964 0L498.095 146.134zM498.817 592.073l402.693 402.693c17.387 17.387 45.576 17.387 62.963 0s17.387-45.576 0-62.963L499.888 467.219 35.302 931.804c-17.388 17.387-17.388 45.576 0 62.963 17.387 17.387 45.576 17.387 62.964 0L498.817 592.073z"
p-id="9782"
fill="#13227a"
></path>
</svg>
<span class="btn" @click="falg = !falg">收起</span>
</div>
</div>
<div
v-for="(item, index) in dataForm"
@ -248,6 +291,7 @@
.btn {
cursor: pointer;
margin-left: 10px;
}
.tx {
@ -285,4 +329,8 @@
background: url('~@/assets/home/ywzj_square.png') no-repeat;
background-size: 100%;
}
.btnBox {
display: flex;
align-items: center;
}
</style>

View File

@ -230,10 +230,10 @@
text: '共享条件',
key: 'shareCondition',
},
{
text: '共享类型',
key: 'shareType',
},
// {
// text: '',
// key: 'shareType',
// },
{
text: '算法描述',
key: 'description',
@ -355,7 +355,6 @@
answer: '回答',
},
}
const showAddModal = ref(false)
const dataList = ref([])
const selectedRowKeys = ref([])
@ -428,7 +427,7 @@
_newObj.list = []
}
let list = []
titleInfoObj[titleKey].map((trName) => {
titleInfoObj[titleKey].map((trName, index) => {
let obj = {
name: trName.text,
}
@ -445,8 +444,15 @@
}
tableData.value.push(_newObj)
})
tableData.value[1].list[4].infoList.map((item, index) => {
if (!item && tableData.value[0].list[0].infoList[index]) {
tableData.value[1].list[3].infoList[index] = '否'
} else if (item && tableData.value[0].list[0].infoList[index]) {
tableData.value[1].list[3].infoList[index] = '是'
}
})
console.log('11111111111111', tableData.value)
console.log('11111111111111', tableData.value[1].list[4])
}
//

View File

@ -93,7 +93,7 @@
// name: '',
// code: 'shinan',
// className: 'classsn',
// value: 0,
// value: 1,
// },
{
name: '市北区',
@ -117,13 +117,13 @@
name: '李沧区',
code: 'licang',
className: 'classlc',
value: 0,
value: 0.2,
},
{
name: '城阳区',
code: 'chengyang',
className: 'classcy',
value: 0,
value: 0.2,
},
{
name: '即墨区',
@ -175,6 +175,8 @@
]
} else if (val.name === '市北区') {
geoCoordMap[val.name] = [val.coord[0], val.coord[1]]
} else if (val.name === '城阳区') {
geoCoordMap[val.name] = [val.coord[0] - 0.057495, val.coord[1]]
} else if (val.name === '市南区') {
geoCoordMap[val.name] = [120.364482, 36.065671]
}
@ -322,7 +324,12 @@
let res = []
for (let i = 0; i < data.length; i++) {
let dataItem = data[i]
if (dataItem.name === '西海岸' || dataItem.name === '崂山区') {
if (
dataItem.name === '西海岸' ||
dataItem.name === '崂山区' ||
dataItem.name === '李沧区' ||
dataItem.name === '城阳区'
) {
let fromCoord = geoCoordMap[dataItem.name]
let toCoord = [120.364482, 36.065671]
if (fromCoord && toCoord) {
@ -344,7 +351,12 @@
let res = []
for (let i = 0; i < data.length; i++) {
let dataItem = data[i]
if (dataItem.name === '西海岸' || dataItem.name === '崂山区') {
if (
dataItem.name === '西海岸' ||
dataItem.name === '崂山区' ||
dataItem.name === '李沧区' ||
dataItem.name === '城阳区'
) {
let fromCoord = [120.364482, 36.065671]
let toCoord = geoCoordMap[dataItem.name]
if (fromCoord && toCoord) {
@ -366,7 +378,12 @@
let res = []
for (let i = 0; i < data.length; i++) {
let dataItem = data[i]
if (dataItem.name !== '西海岸' && dataItem.name !== '崂山区') {
if (
dataItem.name !== '西海岸' &&
dataItem.name !== '崂山区' &&
dataItem.name !== '李沧区' &&
dataItem.name !== '城阳区'
) {
let fromCoord = [120.364482, 36.065671]
let toCoord = geoCoordMap[dataItem.name]
if (fromCoord && toCoord) {
@ -558,7 +575,7 @@
symbolOffset: [0, -20],
data: [
{
name: '西海岸',
name: '',
value: geoCoordMap['西海岸'].concat([10]),
},
],
@ -595,10 +612,84 @@
symbolOffset: [0, -20],
data: [
{
name: '崂山区',
name: '',
value: geoCoordMap['崂山区'].concat([10]),
},
],
},
{
type: 'scatter',
coordinateSystem: 'geo',
zlevel: 2,
rippleEffect: {
period: 4,
brushType: 'stroke',
scale: 4,
},
label: {
normal: {
show: true,
position: 'bottom',
//offset:[5, 0],
color: '#fbd500',
formatter: '{b}',
textStyle: {
color: '#fbd500',
fontSize: 18,
fontWeight: 600,
},
},
emphasis: {
show: true,
color: '#f60',
},
},
symbol: 'image://' + require('@/assets/home/yb.png'),
symbolSize: 40,
symbolOffset: [0, -20],
data: [
{
name: '',
value: geoCoordMap['城阳区'].concat([10]),
},
],
},
{
type: 'scatter',
coordinateSystem: 'geo',
zlevel: 2,
rippleEffect: {
period: 4,
brushType: 'stroke',
scale: 4,
},
label: {
normal: {
show: true,
position: 'bottom',
//offset:[5, 0],
color: '#fbd500',
formatter: '{b}',
textStyle: {
color: '#fbd500',
fontSize: 18,
fontWeight: 600,
},
},
emphasis: {
show: true,
color: '#f60',
},
},
symbol: 'image://' + require('@/assets/home/yb.png'),
symbolSize: 40,
symbolOffset: [0, -20],
data: [
{
name: '',
value: geoCoordMap['李沧区'].concat([10]),
},
],
}
)
})
@ -612,11 +703,93 @@
}
onMounted(() => {
initMap()
myChart.on('mouseover', function () {
myChart.on('mouseover', function (params) {
console.log(params.value)
myChart.dispatchAction({
type: 'downplay',
})
let flag = true
if (
params.value[0] == '119.825774' &&
params.value[1] == '35.739174000000006'
) {
if (option.series[8].data[0].name == '西海岸') {
flag = false
}
option.series[8].data[0].name = '西海岸'
option.series[9].data[0].name = ''
option.series[10].data[0].name = ''
option.series[11].data[0].name = ''
if (flag) {
myChart.clear()
myChart.setOption(option, true)
}
} else if (
params.value[0] == '120.579994' &&
params.value[1] == '36.189191'
) {
if (option.series[9].data[0].name == '崂山区') {
flag = false
}
option.series[8].data[0].name = ''
option.series[9].data[0].name = '崂山区'
option.series[10].data[0].name = ''
option.series[11].data[0].name = ''
if (flag) {
myChart.clear()
myChart.setOption(option, true)
}
} else if (
params.value[0] == '120.421977' &&
params.value[1] == '36.18555'
) {
if (option.series[11].data[0].name == '李沧区') {
flag = false
}
option.series[8].data[0].name = ''
option.series[9].data[0].name = ''
option.series[10].data[0].name = ''
option.series[11].data[0].name = '李沧区'
if (flag) {
myChart.clear()
myChart.setOption(option, true)
}
} else if (
params.value[0] == '120.272216' &&
params.value[1] == '36.27479'
) {
if (option.series[10].data[0].name == '城阳区') {
flag = false
}
option.series[8].data[0].name = ''
option.series[9].data[0].name = ''
option.series[10].data[0].name = '城阳区'
option.series[11].data[0].name = ''
if (flag) {
myChart.clear()
myChart.setOption(option, true)
}
}
})
// myChart.on('mouseout', function (params) {
// console.log(params)
// switch (params.name) {
// case '西':
// option.series[8].data[0].name = ''
// break
// case '':
// option.series[9].data[0].name = ''
// break
// case '':
// option.series[10].data[0].name = ''
// break
// case '':
// option.series[11].data[0].name = ''
// break
// }
// myChart.clear()
// myChart.setOption(option, true)
// })
myChart.on('click', function (params) {
console.log(params)
params.event.event.stopPropagation()

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

@ -10,16 +10,23 @@
<div class="list-box">
<div class="list-item" v-for="(item, i) in seviceList" :key="i">
<div class="item-name">
<div class="icon-name" :style="{ 'background-image': `url(${item.imgIcon || ''})` }"></div>
<img :src="item.img" />
{{ item.name }}
</div>
<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>
<!-- 总体流程 -->
<TheOverallProcess></TheOverallProcess>
<!-- imgList -->
<div class="img-box" v-for="(item, i) in imgList" :key="i">
<div class="title">
<div class="text">{{ item.name }}</div>
@ -27,10 +34,28 @@
</div>
<div class="img-bg" :class="item.className" :style="{ 'background-image': `url(${item.bgImg || ''})` }">
</div>
<div v-if="item.btnText" class="btn" @click="item.btnAction && item.btnAction()">{{ item.btnText }} >>
<div v-if="item.btnText" class="btn" @click="toWhere(item.name)">
{{ item.btnText }} >>
</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>
@ -40,9 +65,7 @@
<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'
: ''
abilityToTypeFunctionData == item ? 'ability-to-type-down' : ''
">
{{ item }}
</div>
@ -60,83 +83,80 @@
</div>
</div>
</a-modal>
</div>
</div>
</template>
<script setup>
import HomeHeader from '@/views/home/components/header'
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 router = useRouter()
const seviceList = ref(
[
const seviceList = ref([
{
name: '组件服务',
imgIcon: require('../../../assets/menu/zjfw.png'),
img: require('@/assets/menu/service-component.png'),
list: ['智能算法', '图层服务', '开发组件', '业务组件'],
imgBG: require('../../../assets/menu/imgBG.png'),
width: '124px',
},
{
name: '应用资源',
imgIcon: require('../../../assets/menu/yyzy.png'),
list: ['办公系统', '业务系统', '门户网站', '大屏看板', '小程序', '公众号'],
img: require('@/assets/menu/service-application.png'),
list: [
'办公系统',
'业务系统',
'门户网站',
'大屏看板',
'小程序',
'公众号',
],
imgBG: require('../../../assets/menu/imgBG.png'),
width: '124px',
},
{
name: '基础设施',
imgIcon: require('../../../assets/menu/jcss.png'),
img: require('@/assets/menu/service-infrastructure.png'),
list: ['视频资源', '云资源', '感知资源'],
imgBG: require('../../../assets/menu/imgBG.png'),
width: '124px',
},
{
name: '数据资源',
imgIcon: require('../../../assets/menu/sjzy.png'),
img: require('@/assets/menu/service-data.png'),
list: ['政务信息资源'],
imgBG: require('../../../assets/menu/imgBG-long.png'),
width: '200px',
},
]
)
])
const imgList = ref([
{
name: '总体流程',
bgImg: require('../../../assets/menu/process.png'),
className: 'process-img',
},
{
name: '能力上架',
bgImg: require('../../../assets/menu/shelves.png'),
btnText: '立即上架',
className: 'shelves-img',
btnAction: () => {
showModal()
}
},
{
name: '能力申请',
bgImg: require('../../../assets/menu/apply.png'),
btnText: '立即申请',
className: 'apply-img',
btnAction: () => {
const newpage = router.resolve({
path: '/addApplication', //
})
window.open(newpage.href, '_blank')
},
},
{
name: '需求发布',
bgImg: require('../../../assets/menu/demand.png'),
btnText: '立即发布',
className: 'demand-img'
className: 'demand-img',
},
{
name: '资源下架',
bgImg: require('../../../assets/menu/down.png'),
btnText: '立即下架',
className: 'down-img'
className: 'down-img',
},
])
//
function handlecancel() {
abilityToTypeFunctionData.value = '组件服务'
@ -156,10 +176,6 @@ let componentType = ref([
// '',
])
const visible = ref(false)
const showModal = () => {
visible.value = true
}
let componentTypeValueOld = ref('')
function componentTypeValueFunction(item) {
if (componentTypeValueOld.value != item) {
@ -205,165 +221,37 @@ const handleOk = (e) => {
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>
<style lang="less" scoped>
.menu-box {
width: 1920px;
padding-bottom: 40px;
}
.title {
margin-bottom: 35px;
.text {
padding: 20px 0;
font-size: 26px;
margin: 0 auto;
text-align: center;
}
.line {
width: 50px;
height: 3px;
background: #0058e1;
margin: 0 auto
}
.line-white {
background: #fff;
}
.text-white {
color: #fff;
}
}
.btn {
width: 150px;
height: 50px;
line-height: 50px;
text-align: center;
margin: 30px auto;
color: #0058e1;
border: 1px solid #0058e1;
border-radius: 2px;
font-size: 16px;
cursor: pointer;
&:hover {
background: #e5eefc;
}
}
.img-box {
margin-bottom: 50px;
}
.service-box {
width: 1920px;
height: 613px;
background-size: 100% 100%;
background-image: url('../../../assets/menu/service.png');
.list-box {
width: 1560px;
height: 350px;
margin: 0 auto;
}
}
.img-bg {
width: 1920px;
background-size: 100% 100%;
}
.process-img {
height: 855px;
}
.shelves-img {
height: 497px;
width: 1107px;
margin: 0 auto;
}
.apply-img {
height: 752px;
}
.demand-img {
height: 525px;
width: 1300px;
margin: 0 auto;
}
.down-img {
height: 544px;
}
.list-box {
display: flex;
align-items: center;
justify-content: center;
.list-item {
padding: 10px 20px;
width: 310px;
height: 330px;
background: rgba(23, 85, 177, 0.43);
border: 1px solid #74a9f8;
border-radius: 2px;
margin: 0 10px;
cursor: pointer;
.item-name {
color: #fff;
font-size: 20px;
text-align: center;
padding: 20px 0 10px 0;
display: flex;
align-items: center;
justify-content: center;
}
.name-box {
display: flex;
align-items: center;
justify-content: flex-start;
flex-wrap: wrap;
}
.icon-name {
width: 30px;
height: 30px;
background-size: 100% 100%;
margin-right: 4px;
}
.item-v {
min-width: 100px;
color: #fff;
font-size: 20px;
text-align: center;
padding: 10px;
border-radius: 6px;
margin: 0 16px 20px 16px;
background: url('../../../assets/menu/sevice-bg.png');
background-size: 100% 100%;
}
}
}
</style>
<style lang="less" scoped>
<style lang="less">
.shangjia-class {
position: fixed;
left: 50%;
@ -473,3 +361,180 @@ const handleOk = (e) => {
}
}
</style>
<style lang="less" scoped>
.menu-box {
width: 1920px;
// padding-bottom: 40px;
}
.title {
margin-bottom: 20px;
.text {
padding: 20px 0;
font-size: 26px;
margin: 0 auto;
text-align: center;
}
.line {
width: 50px;
height: 3px;
background: #0058e1;
margin: 0 auto;
}
.line-white {
background: #fff;
}
.text-white {
color: #fff;
}
}
.btn {
width: 150px;
height: 50px;
line-height: 50px;
text-align: center;
margin: 30px auto;
color: #0058e1;
border: 1px solid #0058e1;
border-radius: 2px;
font-size: 16px;
cursor: pointer;
&:hover {
background: #e5eefc;
}
}
.img-box {
margin-bottom: 50px;
}
.service-box {
width: 1920px;
height: 613px;
background-size: 100% 100%;
background-image: url('../../../assets/menu/service.png');
.list-box {
width: 1560px;
height: 350px;
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 {
width: 1920px;
background-size: 100% 100%;
}
.process-img {
height: 855px;
background-image: url('../../../assets/menu/process.png');
}
.shelves-img {
height: 497px;
width: 1107px;
margin: 0 auto;
background-image: url('../../../assets/menu/shelves.png');
}
.apply-img {
height: 752px;
background-image: url('../../../assets/menu/apply.png');
}
.demand-img {
height: 525px;
width: 1300px;
margin: 0 auto;
background-image: url('../../../assets/menu/demand.png');
}
.down-img {
height: 544px;
background-image: url('../../../assets/menu/down.png');
}
.list-box {
display: flex;
align-items: center;
justify-content: center;
.list-item {
padding: 10px 20px;
width: 310px;
height: 356px;
background: rgba(23, 85, 177, 0.43);
border: 1px solid #74a9f8;
border-radius: 10px;
margin: 0 10px;
cursor: pointer;
.item-name {
color: #fff;
font-size: 20px;
text-align: center;
padding: 20px 0 10px 0;
}
.name-box {
display: flex;
align-items: center;
justify-content: flex-start;
flex-wrap: wrap;
}
.item-v {
width: 124px;
height: 74px;
line-height: 74px;
color: #fff;
font-size: 20px;
text-align: center;
margin: 0 0 20px;
background-size: 100% 100%;
}
.item-v:nth-child(2n) {
margin-left: 16px;
}
// .item-v:last-child {
// width: 200px;
// }
}
}
</style>

View File

@ -7,7 +7,8 @@
@click="changeName({ name: '技术文档' })">
技术文档
</div>
<abilityDocTree style="max-height:400px;overflow-y:auto" :dataList="treeArray" @treeClick="treeClick" :clickData="clickData"></abilityDocTree>
<abilityDocTree style="max-height:400px;overflow-y:auto" :dataList="treeArray" @treeClick="treeClick"
:clickData="clickData"></abilityDocTree>
</div>
<div class="first-title-text new-guide-box" :style="{ color: '新手指引' === titleData.name ? '#0058e1' : '' }"
@ -21,11 +22,16 @@
<iframe name="iframeName" width="1300" height="100%" id="iframeId" :frameborder="0"
:src="doc_base_url + clickData.doc"></iframe>
</div>
<!-- 使用手册 -->
<div class="manual" v-if="titleData.name === '新手指引'">
<p>使用手册</p>
</div>
</div>
</div>
<menuBook v-if="titleData.name === '新手指引'"></menuBook>
</div>
<!-- <home-footer></home-footer> -->
<home-footer v-if="footShow"></home-footer>
</template>
<script setup>
import HomeHeader from '@/views/home/components/header'
@ -55,6 +61,7 @@ let typeList = ['组件服务', '应用资源', '基础设施', '数据资源',
let doc_base_url = ref(window.SITE_CONFIG['frontUrl'])
const treeClick = (item) => {
footShow.value = false
clickData.value = item
console.log('clickData------------>', item)
titleData.value = titleList.value[1]
@ -74,13 +81,16 @@ const getTreeData = () => {
message.error(err)
})
}
const footShow = ref(true)
const changeName = (item) => {
titleData.value = item
if (item.name == '新手指引') {
footShow.value = true
clickData.value = {}
}
if (item.name == '技术文档') {
footShow.value = false
if (!clickData.value.title) {
clickData.value = {}
treeArray.value = []
@ -213,10 +223,59 @@ onMounted(() => {
transform: translateX(-50%);
}
.left {
z-index: 10;
width: 200px;
padding: 20px;
margin-right: 20px;
background: rgba(244, 245, 248, 1);
overflow-y: scroll;
position: absolute;
top: 200px;
left: 20px;
}
.right {
width: 1300px;
height: calc(100% - 20px);
position: absolute;
top: 10px;
left: 300px;
min-height: 600px;
}
.manual {
cursor: pointer;
z-index: 10;
width: 74px;
height: 136px;
position: absolute;
top: 200px;
right: 140px;
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 {
right: 0 !important;
}
.newGuide {
background: url('~@/assets/capabilityCloud/newGuide.png') no-repeat;
background-size: 100%;
}
.content {
right: 16rem !important;
left: 0 !important;
@ -228,6 +287,17 @@ onMounted(() => {
margin-right: 8px;
}
.doc {
background: url('~@/assets/capabilityCloud/doc.png') no-repeat;
background-size: 100%;
}
.rela {
width: 100%;
height: 100%;
position: relative;
}
.newGuide {
background: url('~@/assets/capabilityCloud/newGuide.png') no-repeat;
background-size: 100%;

View File

@ -2,7 +2,7 @@
* @Author: hisense.liangjunhua
* @Date: 2022-07-12 09:42:44
* @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-08-01 10:49:31
* @LastEditTime: 2022-08-02 16:34:42
* @Description:我的申请 能力申请 查看详情
-->
<template>
@ -52,7 +52,33 @@
<span class="img"></span>
<span>{{ item.name }}</span>
</div>
<div
style="
display: flex;
justify-content: space-between;
align-items: center;
"
>
<div class="oddNumbers">子单号{{ item.instanceId }}</div>
<div style="display: flex; align-items: center">
<a-button type="primary" @click="modify(item.instanceId)">
修改
</a-button>
<a-popconfirm
v-if="!item.ended"
title="是否终止此流程?"
ok-text="是"
cancel-text="否"
@confirm="endThis(item.instanceId)"
@cancel="cancel"
>
<a-button type="primary" danger style="margin-left: 10px">
流程终止
</a-button>
</a-popconfirm>
</div>
</div>
<div class="box" v-if="item.list.length > 0">
<div class="ability" v-for="val in item.list" :key="val.id">
<div
@ -82,7 +108,8 @@
<div class="right">
<div class="ability-top">
<div class="name">
{{ val.name }}
<div class="name">
<span class="channelName">{{ val.name }}</span>
<span class="type">
{{
val.type == '应用资源'
@ -107,6 +134,7 @@
}}
</span>
</div>
</div>
<div></div>
<!-- <div class="btn" v-if="val.type == '组件服务'">技术文档</div> -->
</div>
@ -127,7 +155,7 @@
<div class="right">
<div class="ability-top">
<div class="name">
{{ val.channelName }}
<span class="channelName">{{ val.channelName }}</span>
<span class="type">基础设施</span>
</div>
</div>
@ -156,6 +184,9 @@
</template>
<script setup>
import { ref, defineProps } from 'vue'
import mybus from '@/myplugins/mybus'
import { message } from 'ant-design-vue'
import { endProcess } from '@/api/personalCenter.js'
const backUrl = ref(window.SITE_CONFIG.apiURL + '/')
const props = defineProps({
refObj: { type: Object, default: null },
@ -169,6 +200,19 @@
}
const showArr = ref([])
console.log(props.refObj, '=====================================')
const endThis = (instanceId) => {
endProcess({ instanceId: instanceId }).then((res) => {
if (res.data.code == 0) {
message.success('流程终止成功!')
mybus.emit('closeModal', { type: '能力申请', index: 0 })
} else {
message.warning('流程终止失败!')
}
})
}
const modify = (instanceId) => {
console.log('修改==============>', instanceId)
}
if (props.refObj.resourceApplication) {
showArr.value = []
for (const key in props.refObj.resourceApplication) {
@ -318,15 +362,21 @@
.name {
width: 6rem;
height: 0.2rem;
display: flex;
.channelName {
max-width: 5rem;
height: 0.2rem;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
word-break: break-all;
}
.type {
background: #0087ff;
color: #fff;
line-height: 14px;
padding: 2px 10px;
border-radius: 10px;
margin-left: 0.1rem;

View File

@ -159,9 +159,9 @@
</div>
<div class="button-box">
<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
v-if="
!(
@ -304,7 +304,7 @@
<script setup>
// import qs from 'qs'
import { onMounted, reactive, ref } from 'vue'
import { onMounted, reactive, ref, onBeforeUnmount } from 'vue'
import {
getMyProcessInstancePage,
// getTaskHandleDetailInfo,
@ -325,6 +325,7 @@
import { useRouter } from 'vue-router'
import { message } from 'ant-design-vue'
import ApplyDetails from '@/views/personalCenter/components/ApplyDetails'
import mybus from '@/myplugins/mybus'
const router = useRouter()
let typeList = ref([
'能力申请',
@ -450,12 +451,21 @@
// abilitydemandapply
// abilityprocess
if (item.processDefinitionKey == 'resourcemountapply') {
const newpage = router.resolve({
path: '/nenglishangjia', //
query: {
const data = {
id: item.resourceId,
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)
window.open(newpage.href, '_blank')
@ -746,6 +756,13 @@
}
})
}
mybus.on('closeModal', (obj) => {
detailsVisible.value = false
changeType(obj.type, obj.index)
})
onBeforeUnmount(() => {
mybus.off('closeModal')
})
onMounted(() => {
getApplyList()
})

View File

@ -2,12 +2,27 @@
* @Author: hisense.liangjunhua
* @Date: 2022-07-12 09:42:44
* @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-07-14 16:25:57
* @LastEditTime: 2022-08-02 15:48:15
* @Description:我的申请 能力申请 查看详情
-->
<template>
<div class="top">
<div
style="display: flex; justify-content: space-between; align-items: center"
>
<div class="title">基本信息</div>
<a-popconfirm
v-if="!props.refObj.ended"
title="是否终止此流程?"
ok-text="是"
cancel-text="否"
@confirm="endThis"
@cancel="cancel"
>
<a-button type="primary" danger>流程终止</a-button>
</a-popconfirm>
<div v-else></div>
</div>
<div class="main">
<div>
<p class="item">
@ -29,10 +44,23 @@
</template>
<script setup>
import { ref, defineProps } from 'vue'
import mybus from '@/myplugins/mybus'
import { message } from 'ant-design-vue'
import { endProcess } from '@/api/personalCenter.js'
const props = defineProps({
refObj: { type: Object, default: null },
})
console.log(props.refObj, '=====================================')
const endThis = () => {
endProcess({ instanceId: props.refObj.processInstanceId }).then((res) => {
if (res.data.code == 0) {
message.success('流程终止成功!')
mybus.emit('closeModal', { type: '能力上架', index: 2 })
} else {
message.warning('流程终止失败!')
}
})
}
// if (props.refObj.resourceApplication) {
// showArr.value = []
// for (const key in props.refObj.resourceApplication) {

View File

@ -101,6 +101,12 @@
:rules="[{ required: true, message: '请选择应用领域' }]"
>
<a-select
:disabled="
formName.detailsType === '应用资源' ||
formName.detailsType === '组件服务'
? false
: true
"
v-model:value="formName.detailsField"
:options="applicationSceneOpthion"
mode="tags"