合并版本v0.8.2.3

This commit is contained in:
wuhongjian 2022-07-18 18:49:43 +08:00
commit 0e351e915b
55 changed files with 1145 additions and 447 deletions

View File

@ -483,7 +483,6 @@ export default {
-webkit-box-sizing: border-box; -webkit-box-sizing: border-box;
box-sizing: border-box; box-sizing: border-box;
line-height: 32px; line-height: 32px;
background: pink;
width: 120px; width: 120px;
} }

View File

@ -31,7 +31,8 @@
基本信息 基本信息
</div> </div>
<el-form-item label="名称" prop="name"> <el-form-item label="名称" prop="name">
<el-input v-model="dataForm.name" placeholder="请输入名称" :disabled="modalType === 'display'" style="width:90%"></el-input> <el-input v-model="dataForm.name" placeholder="请输入名称" :disabled="modalType === 'display'"
style="width:90%"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="描述" prop="description"> <el-form-item label="描述" prop="description">
<el-input type="textarea" :rows="3" v-model="dataForm.description" placeholder="请输入描述" style="width:90%" <el-input type="textarea" :rows="3" v-model="dataForm.description" placeholder="请输入描述" style="width:90%"
@ -46,6 +47,13 @@
</integrated-combine-ability> </integrated-combine-ability>
</div> </div>
<!-- 更多能力 -->
<div class="" style="marigin-bottom:40px" v-show="checkList.includes('更多能力')">
<common-question :dataForm="dataForm" @update="updateDataForm" ref="commonQuestion" title="更多能力"
:keyTextObj="moreKeyTextObj">
</common-question>
</div>
<!-- 使用步骤 --> <!-- 使用步骤 -->
<div style="marigin-bottom:20px" v-show="checkList.includes('使用步骤')"> <div style="marigin-bottom:20px" v-show="checkList.includes('使用步骤')">
<scene-use-step :dataForm="dataForm" @update="updateDataForm" :disabledType="modalType === 'display'" <scene-use-step :dataForm="dataForm" @update="updateDataForm" :disabledType="modalType === 'display'"
@ -96,16 +104,28 @@ import qs from "qs";
import SceneUseStep from '../components/scene-use-step.vue'; import SceneUseStep from '../components/scene-use-step.vue';
import IntegratedCombineAbility from '../components/integrated-combine-ability.vue'; import IntegratedCombineAbility from '../components/integrated-combine-ability.vue';
import Cookies from 'js-cookie' import Cookies from 'js-cookie'
import CommonQuestion from '../components/common-question.vue';
export default { export default {
components: { components: {
SceneUseStep, SceneUseStep,
IntegratedCombineAbility, IntegratedCombineAbility,
CommonQuestion,
}, },
data() { data() {
return { return {
fileList: [], fileList: [],
fileUploadUrl: `${window.SITE_CONFIG['apiURL']}/sys/oss/upload?token=${Cookies.get('ucsToken')}`, fileUploadUrl: `${window.SITE_CONFIG['apiURL']}/sys/oss/upload?token=${Cookies.get('ucsToken')}`,
moreKeyTextObj: {
nameObj: {
text: '能力名称',
key: 'name'
},
descObj: {
text: '能力描述',
key: 'description'
},
},
dataForm: { dataForm: {
"applicationArea": "", "applicationArea": "",
"description": "", "description": "",
@ -113,7 +133,11 @@ export default {
{ {
"attrType": "使用步骤", "attrType": "使用步骤",
"attrValue": [{ question: "", answer: "" }], "attrValue": [{ question: "", answer: "" }],
} },
{
"attrType": "更多能力",
"attrValue": [{ name: "", description: "" }],
},
], ],
"fuseResourceList": [ "fuseResourceList": [
{ {
@ -155,13 +179,18 @@ export default {
key: 'combine', key: 'combine',
show: true, show: true,
}, },
{
name: '更多能力',
key: 'more',
show: true,
},
{ {
name: '使用步骤', name: '使用步骤',
key: 'basic', key: 'basic',
show: true, show: true,
}, },
], ],
checkList: ['基本信息', '关联能力', '使用步骤'], checkList: ['基本信息', '关联能力', '更多能力', '使用步骤'],
areaList: [], areaList: [],
addOrUpdateVisibleCopy: this.addOrUpdateVisible, addOrUpdateVisibleCopy: this.addOrUpdateVisible,
displayInfo: { displayInfo: {
@ -170,7 +199,8 @@ export default {
}, },
displayListInfo: { displayListInfo: {
'使用步骤': [], '使用步骤': [],
'关联能力': [] '关联能力': [],
'更多能力': [],
}, },
modalTypeText: { modalTypeText: {
add: '挂接', add: '挂接',
@ -216,16 +246,26 @@ export default {
}, },
// //
updateDataForm(data) { updateDataForm(data) {
if (data.title == '使用步骤') { if (data.title == '关联能力') {
this.dataForm.fuseResourceList = data.list
} else {
// 使
this.operateFuseAttrList(data.title, data)
}
},
operateFuseAttrList(title, data) {
if (this.dataForm.fuseAttrList.every(v => v.attrType !== title)) {
this.dataForm.fuseAttrList.push({
'attrType': title,
'attrValue': JSON.stringify(data.list)
})
} else {
this.dataForm.fuseAttrList.map(v => { this.dataForm.fuseAttrList.map(v => {
if (v.attrType === '使用步骤') { if (v.attrType === title) {
v.attrValue = JSON.stringify(data.list) v.attrValue = JSON.stringify(data.list)
} }
}) })
} }
if (data.title == '关联能力') {
this.dataForm.fuseResourceList = data.list
}
}, },
// //
changeBtn(data) { changeBtn(data) {
@ -281,28 +321,30 @@ export default {
this.$nextTick(() => { this.$nextTick(() => {
this.$refs.combineAbility && this.$refs.combineAbility.getDataInfo(data) this.$refs.combineAbility && this.$refs.combineAbility.getDataInfo(data)
this.$refs.sceneUseUp && this.$refs.sceneUseUp.getDataInfo(data) this.$refs.sceneUseUp && this.$refs.sceneUseUp.getDataInfo(data)
this.$refs.commonQuestion && this.$refs.commonQuestion.getDataInfo(data)
console.log('this.dataForm----详情-------->', this.dataForm); console.log('this.dataForm----详情-------->', this.dataForm);
}) })
}, },
// //
getDisPlayData() { // getDisPlayData() {
this.$nextTick(() => { // this.$nextTick(() => {
const questionObj = this.dataForm.fuseAttrList.find(v => v.attrType == '使用步骤') || {}; // const stepObj = this.dataForm.fuseAttrList.find(v => v.attrType == '使') || {};
let fuseResourceList = this.dataForm.fuseResourceList || []; // const moreObj = this.dataForm.fuseAttrList.find(v => v.attrType == '') || {};
let arr = [] // let fuseResourceList = this.dataForm.fuseResourceList || [];
fuseResourceList.map(v => { // let arr = []
if (v.resource) { // fuseResourceList.map(v => {
arr.push({ // if (v.resource) {
name: v.resource.name, // arr.push({
type: v.resource.type, // name: v.resource.name,
}) // type: v.resource.type,
} // })
}) // }
this.displayListInfo['使用步骤'] = JSON.parse(questionObj.attrValue || '[]') // })
this.displayListInfo['关联能力'] = arr // this.displayListInfo['使'] = JSON.parse(stepObj.attrValue || '[]')
}) // this.displayListInfo[''] = JSON.parse(moreObj.attrValue || '[]')
// this.displayListInfo[''] = arr
}, // })
// },
}, },
beforeDestroy() { beforeDestroy() {
this.clearForm() this.clearForm()
@ -403,7 +445,6 @@ export default {
-webkit-box-sizing: border-box; -webkit-box-sizing: border-box;
box-sizing: border-box; box-sizing: border-box;
line-height: 32px; line-height: 32px;
background: pink;
width: 120px; width: 120px;
} }

View File

@ -120,7 +120,7 @@
>{{ $t("delete") }}</el-button >{{ $t("delete") }}</el-button
> >
<el-button type="text" size="small" @click="showDetail(scope.row)" <el-button type="text" size="small" @click="showDetail(scope.row)"
>展示</el-button >详情</el-button
> >
<el-button type="text" size="small" @click="showDocument(scope.row)" <el-button type="text" size="small" @click="showDocument(scope.row)"
>开发文档</el-button >开发文档</el-button
@ -303,15 +303,17 @@ export default {
} }
}, },
showDetail (val) { showDetail (val) {
console.log(val)
window.open(window.SITE_CONFIG.previewUrl + '#/details?id=' + val.id)
// this.addOrUpdateHandle(id) // this.addOrUpdateHandle(id)
this.addOrUpdateVisible = true // this.addOrUpdateVisible = true
this.disabled = false // this.disabled = false
this.$nextTick(() => { // this.$nextTick(() => {
this.$refs.addOrUpdate.UpdateState = false // this.$refs.addOrUpdate.UpdateState = false
this.$refs.addOrUpdate.dataFormShowDetails = val // this.$refs.addOrUpdate.dataFormShowDetails = val
this.$refs.addOrUpdate.init() // this.$refs.addOrUpdate.init()
}) // })
this.disabled = true // this.disabled = true
}, },
showDocument (val) { showDocument (val) {
window.open( window.open(

View File

@ -103,7 +103,7 @@
>{{ $t("delete") }}</el-button >{{ $t("delete") }}</el-button
> >
<el-button type="text" size="small" @click="showDetail(scope.row)" <el-button type="text" size="small" @click="showDetail(scope.row)"
>展示</el-button >详情</el-button
> >
<el-button type="text" size="small" @click="showDocument(scope.row)" <el-button type="text" size="small" @click="showDocument(scope.row)"
>开发文档</el-button >开发文档</el-button
@ -287,14 +287,15 @@ export default {
}) })
}, },
showDetail (val) { showDetail (val) {
this.addOrUpdateVisible = true window.open(window.SITE_CONFIG.previewUrl + '#/details?id=' + val.id)
this.disabled = false // this.addOrUpdateVisible = true
this.$nextTick(() => { // this.disabled = false
this.$refs.addOrUpdate.UpdateState = false // this.$nextTick(() => {
this.$refs.addOrUpdate.dataFormShowDetails = val // this.$refs.addOrUpdate.UpdateState = false
this.$refs.addOrUpdate.init() // this.$refs.addOrUpdate.dataFormShowDetails = val
}) // this.$refs.addOrUpdate.init()
this.disabled = true // })
// this.disabled = true
}, },
showDocument (val) { showDocument (val) {
console.log(val) console.log(val)

View File

@ -1,14 +1,17 @@
<template> <template>
<div class="question-box"> <div class="question-box">
<div class="title"> <div class="title">
常见问题 {{ title }}
</div> </div>
<div v-for="(item, index) in dataInfo" :key="index"> <div v-for="(item, index) in dataInfo" :key="index">
<el-form-item label="问题名称" prop="question"> <el-form-item :label="keyTextObj.nameObj.text">
<el-input v-model="item.question" placeholder="请输入问题名称" style="width:90%"></el-input> <el-input v-model="item[keyTextObj.nameObj.key]" :placeholder="`请输入${keyTextObj.nameObj.text}`"
style="width:90%">
</el-input>
</el-form-item> </el-form-item>
<el-form-item label="问题描述" prop="question"> <el-form-item :label="keyTextObj.descObj.text">
<el-input type="textarea" :rows="2" v-model="item.answer" placeholder="请输入问题描述" style="width:90%"> <el-input type="textarea" :rows="2" v-model="item[keyTextObj.descObj.key]"
:placeholder="`请输入${keyTextObj.descObj.text}`" style="width:90%">
</el-input> </el-input>
<el-button style="margin-left:10px" @click="deleteItem(index)" type="danger" size="small" <el-button style="margin-left:10px" @click="deleteItem(index)" type="danger" size="small"
v-if="dataInfo.length > 1">删除 v-if="dataInfo.length > 1">删除
@ -26,6 +29,25 @@ export default {
dataForm: { dataForm: {
type: Object, type: Object,
default: () => { } default: () => { }
},
title: {
type: String,
default: '常见问题'
},
keyTextObj: {
type: Object,
default: () => {
return {
nameObj: {
text: '问题名称',
key: 'question'
},
descObj: {
text: '问题描述',
key: 'answer'
},
}
}
} }
}, },
data() { data() {
@ -38,7 +60,7 @@ export default {
handler(newVal) { handler(newVal) {
this.dataInfo = newVal; this.dataInfo = newVal;
this.$emit('update', { this.$emit('update', {
title: '常见问题', title: this.title,
list: newVal list: newVal
}) })
}, },
@ -51,21 +73,29 @@ export default {
let arr = [] let arr = []
if (dataForm && (dataForm.id || dataForm.id === 0)) { if (dataForm && (dataForm.id || dataForm.id === 0)) {
let fuseAttrList = dataForm.fuseAttrList || []; let fuseAttrList = dataForm.fuseAttrList || [];
let obj = fuseAttrList.find(v => v.attrType === '常见问题') || {} let obj = fuseAttrList.find(v => v.attrType === this.title) || {}
let attrValue = JSON.parse(obj.attrValue || "[]") let attrValue = JSON.parse(obj.attrValue || "[]")
if (attrValue.length > 0) { if (attrValue.length > 0) {
attrValue.map(v => { attrValue.map(v => {
arr.push({ arr.push({
question: v.question, [this.keyTextObj.nameObj.key]: v[this.keyTextObj.nameObj.key],
answer: v.answer, [this.keyTextObj.descObj.key]: v[this.keyTextObj.descObj.key],
}) })
}) })
} else {
arr = []
console.log('this.keyTextObj.nameObj.key------------>', this.keyTextObj.nameObj.key);
arr.push({
[this.keyTextObj.nameObj.key]: '',
[this.keyTextObj.descObj.key]: '',
})
} }
} else { } else {
arr = [] arr = []
console.log('this.keyTextObj.nameObj.key------------>', this.keyTextObj.nameObj.key);
arr.push({ arr.push({
question: "", [this.keyTextObj.nameObj.key]: '',
answer: "", [this.keyTextObj.descObj.key]: '',
}) })
} }
this.dataInfo = arr; this.dataInfo = arr;
@ -73,8 +103,8 @@ export default {
// //
addItem() { addItem() {
this.dataInfo.push({ this.dataInfo.push({
question: "", [this.keyTextObj.nameObj.key]: '',
answer: "", [this.keyTextObj.descObj.key]: '',
}) })
}, },
// //

View File

@ -1,22 +0,0 @@
<template>
<div class="wrapper"></div>
</template>
<script>
export default {
components: {},
props: {},
data () {
return {}
},
watch: {},
computed: {},
methods: {},
created () {},
mounted () {}
}
</script>
<style lang="scss" scoped>
.wrapper {
}
</style>

View File

@ -168,20 +168,6 @@ export default {
this.dataView = val.filter( this.dataView = val.filter(
(item) => item.name === this.dataForm.type + '一' (item) => item.name === this.dataForm.type + '一'
)[0] )[0]
console.log(this.dataView)
console.log(this.dataForm)
//
// this.dataView.children[0].children[0].children[4].note1 =
// this.dataForm.description
//
// this.dataView.children[0].children[0].children[0].note1 =
// this.dataForm.name
//
this.dataView.children[2].children[1].children[0].note1 =
this.dataForm.shareCondition
//
this.dataView.children[2].children[1].children[1].note1 =
this.dataForm.shareType
this.dataForm.infoList.map((item, index) => { this.dataForm.infoList.map((item, index) => {
this.dataView.children.map((itemView, indexView) => { this.dataView.children.map((itemView, indexView) => {
// console.log('itemView', itemView) // console.log('itemView', itemView)
@ -236,6 +222,7 @@ export default {
}) })
}) })
}) })
if (item.attrType === '功能介绍') { if (item.attrType === '功能介绍') {
this.dataForm.infoList[index].attrValue = JSON.parse( this.dataForm.infoList[index].attrValue = JSON.parse(
item.attrValue item.attrValue
@ -318,7 +305,11 @@ export default {
}) })
}) })
}) })
if (item.attrType === '算法优势' || item.attrType === '应用场景') { if (
item.attrType === '算法优势' ||
item.attrType === '应用场景' ||
item.attrType === '功能介绍'
) {
this.dataForm.infoList[index].attrValue = JSON.parse( this.dataForm.infoList[index].attrValue = JSON.parse(
item.attrValue item.attrValue
) )

View File

@ -7,9 +7,6 @@
@keyup.enter.native="dataFormSubmitHandle()" @keyup.enter.native="dataFormSubmitHandle()"
:label-width="$i18n.locale === 'en-US' ? '120px' : 'auto'" :label-width="$i18n.locale === 'en-US' ? '120px' : 'auto'"
> >
<div v-if="shifoushizujian">
<Applicationresources></Applicationresources>
</div>
<div v-if="flagShow"> <div v-if="flagShow">
<ResourcesAndServices <ResourcesAndServices
:dataForm="dataForm" :dataForm="dataForm"
@ -39,21 +36,31 @@
<div class="agreeOr"> <div class="agreeOr">
<h3>审批</h3> <h3>审批</h3>
<div> <div>
<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>
<el-radio-button label="退回" class="redAll">退回</el-radio-button> <el-radio-button label="退回" class="redAll">退回</el-radio-button>
</el-radio-group> </el-radio-group>
<el-input v-if="agreeOrList ==='同意' " v-model="inputAgree" placeholder="请输入同意意见"></el-input> <el-input
<el-input v-if="agreeOrList ==='退回'" v-model="inputNo" placeholder="请输入退回意见"></el-input> v-if="agreeOrList === '同意'"
<el-button class="inputBule" @click="agreeOrNot">提交</el-button> v-model="inputAgree"
placeholder="请输入同意意见"
></el-input>
<el-input
v-if="agreeOrList === '退回'"
v-model="inputNo"
placeholder="请输入退回意见"
></el-input>
<el-button
class="inputBule"
@click.native="agreeOrNot($store.state.contentTabsActiveName)"
>提交</el-button
>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import processModule from '@/mixins/process-module'
import Applicationresources from './Application-resources.vue'
import ResourcesAndServices from './ResourcesAndServices.vue' import ResourcesAndServices from './ResourcesAndServices.vue'
import debounce from 'lodash/debounce' import debounce from 'lodash/debounce'
import qs from 'qs' import qs from 'qs'
@ -62,7 +69,6 @@ export default {
// //
// mixins: [processModule], // mixins: [processModule],
components: { components: {
Applicationresources,
ResourcesAndServices ResourcesAndServices
}, },
props: { props: {
@ -146,7 +152,9 @@ export default {
// } // }
}) })
}, },
agreeOrNot: debounce(function () { agreeOrNot: debounce(
function (data) {
console.log(data)
if (this.agreeOrList === '同意') { if (this.agreeOrList === '同意') {
console.log('this.dataForm.taskId', this.taskId) console.log('this.dataForm.taskId', this.taskId)
const params = qs.stringify({ const params = qs.stringify({
@ -154,7 +162,9 @@ export default {
comment: this.inputAgree comment: this.inputAgree
}) })
console.log(params) console.log(params)
this.$http.post('/act/task/complete?' + params).then(({ data: res }) => { this.$http
.post('/act/task/complete?' + params)
.then(({ data: res }) => {
if (res.code !== 0) { if (res.code !== 0) {
this.$message.error(res.msg) this.$message.error(res.msg)
if (this.callbacks.taskHandleErrorCallback) { if (this.callbacks.taskHandleErrorCallback) {
@ -173,14 +183,17 @@ export default {
} }
} }
}) })
}).catch(() => {}) })
.catch(() => {})
} else if (this.agreeOrList === '退回') { } else if (this.agreeOrList === '退回') {
console.log('this.dataForm.taskId', this.taskId) console.log('this.dataForm.taskId', this.taskId)
const params = qs.stringify({ const params = qs.stringify({
taskId: this.taskId, taskId: this.taskId,
comment: this.inputNo comment: this.inputNo
}) })
this.$http.post('/act/task/backToFirst?', params).then(({ data: res }) => { this.$http
.post('/act/task/backToFirst?', params)
.then(({ data: res }) => {
if (res.code !== 0) { if (res.code !== 0) {
this.$message.error(res.msg) this.$message.error(res.msg)
if (this.callbacks.taskHandleErrorCallback) { if (this.callbacks.taskHandleErrorCallback) {
@ -201,9 +214,38 @@ export default {
}) })
}) })
} }
}, 1000, { leading: true, trailing: false }) this.tabRemoveHandle(data)
},
1000,
{ leading: true, trailing: false }
),
tabRemoveHandle (tabName) {
console.log(tabName, 'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa')
if (tabName === 'home') {
return false
}
this.$store.state.contentTabs = this.$store.state.contentTabs.filter(
(item) => item.name !== tabName
)
if (this.$store.state.contentTabs.length <= 0) {
this.$store.state.sidebarMenuActiveName =
this.$store.state.contentTabsActiveName = 'home'
return false
}
// tab
if (tabName === this.$store.state.contentTabsActiveName) {
const tab =
this.$store.state.contentTabs[
this.$store.state.contentTabs.length - 1
]
this.$router.push({
name: /^iframe_.+/.test(tab.name) ? 'iframe' : tab.name,
params: { ...tab.params },
query: { ...tab.query }
})
}
}
} }
} }
</script> </script>
<style scoped lang="scss"> <style scoped lang="scss">

View File

@ -134,33 +134,33 @@ export default {
} }
}) })
} else if (this.data.name === '部门联系人') { } else if (this.data.name === '部门联系人') {
this.$http.get('/sys/dept/all').then(res => { // this.$http.get('/sys/dept/all').then(res => {
const dataList = [] // const dataList = []
res.data.data.forEach((element) => { // res.data.data.forEach((element) => {
dataList.push(element) // dataList.push(element)
}) // })
this.options = dataList // this.options = dataList
if (!this.data.note1) { if (!this.data.note1) {
this.$http.get('/sys/user/info').then(({ data: res }) => { this.$http.get('/sys/user/info').then(({ data: res }) => {
console.log(res.data) console.log(res.data)
this.data.note1 = res.data.realName || '' this.data.note1 = res.data.realName || ''
}) })
} }
}) // })
} else if (this.data.name === '部门联系人电话') { } else if (this.data.name === '部门联系人电话') {
this.$http.get('/sys/dept/all').then(res => { // this.$http.get('/sys/dept/all').then(res => {
const dataList = [] // const dataList = []
res.data.data.forEach((element) => { // res.data.data.forEach((element) => {
dataList.push(element) // dataList.push(element)
}) // })
this.options = dataList // this.options = dataList
if (!this.data.note1) { if (!this.data.note1) {
this.$http.get('/sys/user/info').then(({ data: res }) => { this.$http.get('/sys/user/info').then(({ data: res }) => {
console.log(res.data) console.log(res.data)
this.data.note1 = res.data.mobile || '' this.data.note1 = res.data.mobile || ''
}) })
} }
}) // })
} }
}, },
chekBoxChange (list) { chekBoxChange (list) {

View File

@ -67,7 +67,7 @@
<upload :key="showKey" :child='val' limit='1' accept='.jpg,.png' v-else-if="val.type == 'image'"></upload> <upload :key="showKey" :child='val' limit='1' accept='.jpg,.png' v-else-if="val.type == 'image'"></upload>
</div> </div>
<div class="submit"> <div class="submit">
<a-button type="primary" @click="add(configure.name)">提交</a-button> <a-button type="primary" @click="add(configure.name)">添加更多</a-button>
</div> </div>
</div> </div>
</div> </div>
@ -104,8 +104,17 @@ export default {
}) })
if (flag) { if (flag) {
const obj = {} const obj = {}
let sfFlag = false
list.forEach((item) => { list.forEach((item) => {
if (item.type === 'input2') { if (item.type === 'input2') {
sfFlag = this.data.filter(
(val) => val.type === this.numType
)[0]
if (sfFlag) {
this.$message.warning('已添加过该类型!')
return
}
obj[item.field] = obj[item.field] =
item.note1 + item.note1 +
(this.numType === '一次性买断' (this.numType === '一次性买断'
@ -121,7 +130,10 @@ export default {
obj[item.field] = item.note1 obj[item.field] = item.note1
} }
}) })
if (!sfFlag) {
this.data.push(obj) this.data.push(obj)
}
// this.data.push(obj)
this.$emit('changeInfoList', { this.$emit('changeInfoList', {
attrType: title, attrType: title,
attrValue: JSON.stringify(this.data), attrValue: JSON.stringify(this.data),

View File

@ -8,12 +8,13 @@
<div class="wrapper"> <div class="wrapper">
<div class="content"> <div class="content">
<div class="left">{{ item.createDate }}</div> <div class="left">{{ item.createDate }}</div>
<el-tooltip effect="dark" :content="item.title" placement="top"> <el-tooltip popper-class="testTooltip" effect="dark" :content="item.title" placement="top">
<div class="right ellipsis">{{ item.title || '--' }}</div> <div class="right ellipsis">{{ item.title || '--' }}</div>
</el-tooltip> </el-tooltip>
</div> </div>
</div> </div>
</div> </div>
<div class="more" @click="jumpTo">查看更多 ></div>
</div> </div>
</div> </div>
@ -34,7 +35,7 @@ export default {
components: { components: {
contentTitle contentTitle
}, },
data () { data() {
return { return {
title: { dynamic: '部门发布动态', recommend: '部门推荐能力' }, title: { dynamic: '部门发布动态', recommend: '部门推荐能力' },
list: [], list: [],
@ -76,13 +77,13 @@ export default {
loadingTable: false loadingTable: false
} }
}, },
mounted () { mounted() {
this.getResourceByDept() this.getResourceByDept()
this.getApplyByDept() this.getApplyByDept()
}, },
methods: { methods: {
// //
getResourceByDept () { getResourceByDept() {
const data = { const data = {
limit: 5, limit: 5,
page: 1 page: 1
@ -108,7 +109,7 @@ export default {
) )
}, },
// //
getApplyByDept () { getApplyByDept() {
const data = { const data = {
limit: 5, limit: 5,
page: 1 page: 1
@ -130,7 +131,12 @@ export default {
console.log('err', err) console.log('err', err)
} }
) )
} },
jumpTo() {
this.$router.push({
path: 'activiti-my-work-dynamics'
});
},
} }
} }
</script> </script>
@ -153,7 +159,8 @@ export default {
background: #fff; background: #fff;
width: 800px; width: 800px;
height: 335px; height: 335px;
padding: 0px 0 20px 10px; padding: 0px 0 0 10px;
box-sizing: border-box;
} }
} }
@ -171,7 +178,7 @@ export default {
margin-bottom: 7px; margin-bottom: 7px;
.wrapper { .wrapper {
height: 50px; height: 45px;
width: 770px; width: 770px;
display: flex; display: flex;
flex-direction: row; flex-direction: row;
@ -199,7 +206,7 @@ export default {
} }
.right { .right {
font-size: 18px; font-size: 16px;
color: #464645; color: #464645;
width: 600px; width: 600px;
} }
@ -207,6 +214,16 @@ export default {
} }
} }
.more {
cursor: pointer;
text-align: right;
padding-top: 4px;
display: inline-block;
width: 100%;
color: #2b2b2b;
font-size: 14px;
}
.recommendView { .recommendView {
cursor: pointer; cursor: pointer;
width: 770px; width: 770px;
@ -220,3 +237,8 @@ export default {
background-color: #f4f5f8; background-color: #f4f5f8;
} }
</style> </style>
<style lang="scss">
.testTooltip {
width: 670px !important;
}
</style>

View File

@ -42,12 +42,7 @@ export default {
handler(newVal, oldVal) { handler(newVal, oldVal) {
if (newVal) { if (newVal) {
this.dataListCopy = newVal; this.dataListCopy = newVal;
if (document.getElementById(this.id)) {
//
setTimeout(() => {
this.initChart() this.initChart()
}, 2000)
}
} }
}, },
deep: true, deep: true,
@ -55,9 +50,6 @@ export default {
}, },
}, },
mounted() { mounted() {
setTimeout(() => {
this.initChart()
}, 2000)
}, },
methods: { methods: {
initChart() { initChart() {
@ -68,7 +60,6 @@ export default {
this.myChart = chartDom && echarts.init(chartDom); this.myChart = chartDom && echarts.init(chartDom);
let lengendArr = this.dataListCopy.filter(v => v.name); let lengendArr = this.dataListCopy.filter(v => v.name);
let total = 0; let total = 0;
this.dataListCopy.map(v => { this.dataListCopy.map(v => {
if (v.value || v.value === 0) { if (v.value || v.value === 0) {

View File

@ -12,16 +12,26 @@
</div> </div>
</div> </div>
<div class="list-box" v-if="dataInfo.list.length > 0"> <div class="list-box" v-if="dataInfo.list.length > 0">
<div v-for="(item, i) in dataInfo.list" :key="i"> <div v-for="(item, i) in dataInfo.list" :key="i">
<!-- 待办 -->
<el-tooltip effect="dark" :content="item[dataInfo.nameStr]" placement="top"> <el-tooltip effect="dark" v-if="dataInfo.type === 'todo'"
:content="`${(item.processDefinitionName || '--')}${item.taskName ? ('—' + item.taskName) : ''}`"
placement="top">
<div class="list-item ellipsis"> <div class="list-item ellipsis">
{{ item[dataInfo.nameStr] || '--' }} {{ `${(item.processDefinitionName || '--')}${item.taskName ? ('—' + item.taskName) : ''}` }}
</div>
</el-tooltip>
<!-- 已办 -->
<el-tooltip effect="dark" v-else
:content="`${(item.processDefinitionName || '--')}${item.resourceName ? ('—' + item.resourceName) : ''}`"
placement="top">
<div class="list-item ellipsis">
{{ `${(item.processDefinitionName || '--')}${item.resourceName ? ('—' + item.resourceName) :
''}`
}}
</div> </div>
</el-tooltip> </el-tooltip>
</div> </div>
<div class="more" @click="goPage(dataInfo.url)"> <div class="more" @click="goPage(dataInfo.url)">
查看更多 > 查看更多 >
</div> </div>

View File

@ -9,13 +9,13 @@
</div> </div>
<div class="flex-row-start dept-chart-box"> <div class="flex-row-start dept-chart-box">
<dept-chart-view id="shelves" title="部门上架" v-loading="loadingResource" :dataList="resourceData" <dept-chart-view id="shelves" title="部门上架" v-loading="loadingResource" :dataList="resourceData"
:colorArray="resourceColor"> ref="resourceChart" :colorArray="resourceColor">
</dept-chart-view> </dept-chart-view>
<dept-chart-view id="apply" title="部门申请" v-loading="loadingApply" :dataList="applyData" <dept-chart-view id="apply" title="部门申请" v-loading="loadingApply" :dataList="applyData" ref="applyChart"
:colorArray="applyColor"> :colorArray="applyColor">
</dept-chart-view> </dept-chart-view>
<dept-chart-view id="demand" title="部门需求" v-loading="loadingRequire" :dataList="requireData" <dept-chart-view id="demand" title="部门需求" v-loading="loadingRequire" :dataList="requireData"
:colorArray="requireColor"> ref="requireChart" :colorArray="requireColor">
</dept-chart-view> </dept-chart-view>
</div> </div>
</div> </div>
@ -54,7 +54,7 @@ export default {
textColor: '#f86f01', textColor: '#f86f01',
num: 0, num: 0,
list: [], list: [],
nameStr: 'taskName', type: 'todo',
url: 'activiti-my-todo-task' url: 'activiti-my-todo-task'
}, },
// //
@ -67,7 +67,6 @@ export default {
textColor: '#21b107', textColor: '#21b107',
num: 0, num: 0,
list: [], list: [],
nameStr: 'processDefinitionName',
url: 'activiti-my-join-task' url: 'activiti-my-join-task'
}, },
// //
@ -134,6 +133,7 @@ export default {
console.log('res----已办-------->', res.data); console.log('res----已办-------->', res.data);
this.hasToDodoData.list = res.data.data.records || [] this.hasToDodoData.list = res.data.data.records || []
this.hasToDodoData.num = res.data.data.total || 0 this.hasToDodoData.num = res.data.data.total || 0
}, err => { }, err => {
this.$message.error(err) this.$message.error(err)
this.loadingHasToDo = false; this.loadingHasToDo = false;
@ -150,6 +150,9 @@ export default {
} }
console.log('res----部门上架-------->', res.data); console.log('res----部门上架-------->', res.data);
this.resourceData = this.formatList(res.data.data.total || []) this.resourceData = this.formatList(res.data.data.total || [])
this.$nextTick(() => {
this.$refs.resourceChart.initChart(this.resourceData)
})
}, err => { }, err => {
this.$message.error(err) this.$message.error(err)
this.loadingResource = false; this.loadingResource = false;
@ -165,6 +168,10 @@ export default {
} }
console.log('res----部门申请-------->', res.data); console.log('res----部门申请-------->', res.data);
this.applyData = this.formatList(res.data.data.total || []) this.applyData = this.formatList(res.data.data.total || [])
this.$nextTick(() => {
console.log('this.applyData------------>', this.applyData);
this.$refs.applyChart.initChart(this.applyData)
})
}, err => { }, err => {
this.$message.error(err) this.$message.error(err)
this.loadingApply = false; this.loadingApply = false;
@ -190,6 +197,9 @@ export default {
} }
console.log('res----部门需求-------->', res.data); console.log('res----部门需求-------->', res.data);
this.requireData = this.formatList(res.data.data.total || [], 'flag') this.requireData = this.formatList(res.data.data.total || [], 'flag')
this.$nextTick(() => {
this.$refs.requireChart.initChart(this.requireData)
})
}, err => { }, err => {
this.$message.error(err) this.$message.error(err)

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-07-16 16:41:18 * @LastEditTime: 2022-07-18 18:45:09
* @Description: 告诉大家这是什么 * @Description: 告诉大家这是什么
--> -->
<!DOCTYPE html> <!DOCTYPE html>

View File

@ -1,8 +1,8 @@
/* /*
* @Author: hisense.wuhongjian * @Author: hisense.wuhongjian
* @Date: 2020-07-07 16:03:23 * @Date: 2020-07-07 16:03:23
* @LastEditors: hisense.wuhongjian * @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-07-14 10:01:08 * @LastEditTime: 2022-07-18 15:07:32
* @Description: 数据资源参数配置 * @Description: 数据资源参数配置
*/ */
const newLocation = 'qingdao' const newLocation = 'qingdao'

View File

@ -1,8 +1,8 @@
/* /*
* @Author: hisense.wuhongjian * @Author: hisense.wuhongjian
* @Date: 2022-04-01 19:19:40 * @Date: 2022-04-01 19:19:40
* @LastEditors: hisense.wuhongjian * @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-06-30 19:36:48 * @LastEditTime: 2022-07-18 16:24:44
* @Description: 告诉大家这是什么 * @Description: 告诉大家这是什么
*/ */
import request from '@/utils/request' import request from '@/utils/request'
@ -119,6 +119,14 @@ export function submitApply(data) {
data, data,
}) })
} }
//
export function applyAllApplication(data) {
return request({
url: '/ability/center/v2/applyAllApplication',
method: 'post',
data,
})
}
export function tabilityapplication(data) { export function tabilityapplication(data) {
return request({ return request({
url: '/processForm/tabilityapplication', url: '/processForm/tabilityapplication',

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

View File

@ -2,7 +2,7 @@
* @Author: hisense.wuhongjian * @Author: hisense.wuhongjian
* @Date: 2022-04-01 17:23:11 * @Date: 2022-04-01 17:23:11
* @LastEditors: hisense.wuhongjian * @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-07-16 16:42:46 * @LastEditTime: 2022-07-18 18:45:20
* @Description: 告诉大家这是什么 * @Description: 告诉大家这是什么
*/ */
/** /**

View File

@ -13,7 +13,7 @@
<div class="assign-case-detail-page-header-son"> <div class="assign-case-detail-page-header-son">
<div <div
class="assign-case-detail-page-header-son-left" class="assign-case-detail-page-header-son-left"
:style="`background:url(${dataFrom.note1})`" :style="`background-image:url(${dataFrom.note1})`"
></div> ></div>
<div class="assign-case-detail-page-header-son-right"> <div class="assign-case-detail-page-header-son-right">
<div class="assign-case-detail-page-header-son-right-title"> <div class="assign-case-detail-page-header-son-right-title">

View File

@ -27,6 +27,7 @@
:refData="refData" :refData="refData"
:dataFrom="dataFrom" :dataFrom="dataFrom"
:videoList="videoList" :videoList="videoList"
:imgList="imgList"
:externalField="[ :externalField="[
'组件名称', '组件名称',
'组件描述', '组件描述',
@ -54,7 +55,6 @@
:dataFrom="dataFrom" :dataFrom="dataFrom"
:fileList="fileList" :fileList="fileList"
:fileList2="fileList2" :fileList2="fileList2"
:imgList="imgList"
:configure="bs" :configure="bs"
></put-on-the-shelf> ></put-on-the-shelf>
</div> </div>

View File

@ -1,8 +1,8 @@
<!-- <!--
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-06-17 14:11:08 * @Date: 2022-06-17 14:11:08
* @LastEditors: hisense.wuhongjian * @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-07-16 15:05:16 * @LastEditTime: 2022-07-18 14:43:47
* @Description: 上架 * @Description: 上架
--> -->
<template> <template>
@ -488,6 +488,20 @@
}) })
} }
}) })
} else if (item.name === '部门联系人') {
if (!item.note1) {
getUserInfo().then(({ data: res1 }) => {
console.log(res1.data)
item.note1 = res1.data.realName || ''
})
}
} else if (item.name === '部门联系人电话') {
if (!item.note1) {
getUserInfo().then(({ data: res1 }) => {
console.log(res1.data)
item.note1 = res1.data.mobile || ''
})
}
} else { } else {
data.value.list.push(item) data.value.list.push(item)
} }
@ -541,8 +555,16 @@
}) })
if (flag) { if (flag) {
let obj = {} let obj = {}
let sfFlag = false
list.forEach((item) => { list.forEach((item) => {
if (item.type === 'input2') { if (item.type === 'input2') {
sfFlag = data.value[title].filter(
(val) => val.type === numType.value
)[0]
if (sfFlag) {
message.warning('已添加过该类型!')
return
}
obj[item.field] = obj[item.field] =
item.note1 + item.note1 +
(numType.value == '一次性买断' (numType.value == '一次性买断'
@ -558,7 +580,9 @@
obj[item.field] = item.note1 obj[item.field] = item.note1
} }
}) })
if (!sfFlag) {
data.value[title].push(obj) data.value[title].push(obj)
}
// console.log(data.value[title]) // console.log(data.value[title])
mybus.emit('chageDataFrom', { mybus.emit('chageDataFrom', {
attrType: title, attrType: title,
@ -599,7 +623,7 @@
const visibleAssociatedApplication = ref(false) const visibleAssociatedApplication = ref(false)
const mockData = ref([]) const mockData = ref([])
const titles = ref(['未关联的应用名称', '已关联的应用名称']) const titles = ref(['未关联的应用名称', '已关联的应用名称'])
const titleName = ref('关联应用') const titleName = ref('来源应用')
const targetKeys = ref([]) const targetKeys = ref([])
// //
const targetKeysBack = ref([]) const targetKeysBack = ref([])
@ -695,7 +719,9 @@
console.log('targetKeys: ', nextTargetKeys) console.log('targetKeys: ', nextTargetKeys)
console.log('direction: ', direction) console.log('direction: ', direction)
console.log('moveKeys: ', moveKeys) console.log('moveKeys: ', moveKeys)
targetKeys.value = moveKeys if (direction === 'right') {
targetKeys.value = moveKeys.filter((item, index) => index === 0)
}
} }
const handleSelectChange = (sourceSelectedKeys, targetSelectedKeys) => { const handleSelectChange = (sourceSelectedKeys, targetSelectedKeys) => {
@ -1027,4 +1053,7 @@
:deep(.ant-transfer-list-header .ant-checkbox-wrapper) { :deep(.ant-transfer-list-header .ant-checkbox-wrapper) {
display: none !important; display: none !important;
} }
:deep(.ant-upload-list-item-name) {
width: 100px;
}
</style> </style>

View File

@ -17,7 +17,7 @@
</a-layout-sider> </a-layout-sider>
</div> </div>
<div class="right"> <div class="right">
<div class="title">数据需求</div> <!-- <div class="title">数据需求</div> -->
<a-list <a-list
class="demo-loadmore-list" class="demo-loadmore-list"
:loading="initLoading" :loading="initLoading"
@ -87,6 +87,7 @@
const pageSize = ref(8) const pageSize = ref(8)
const total = ref() const total = ref()
const showKey = ref(0) const showKey = ref(0)
const whoShow1 = ref(whoShow)
const menuList = [ const menuList = [
{ {
key: '1', key: '1',

View File

@ -2,7 +2,7 @@
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-06-08 11:32:22 * @Date: 2022-06-08 11:32:22
* @LastEditors: hisense.wuhongjian * @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-06-30 17:06:56 * @LastEditTime: 2022-07-18 18:49:30
* @Description: 算法详情页 * @Description: 算法详情页
--> -->
<template> <template>
@ -194,7 +194,8 @@
position: fixed; position: fixed;
z-index: 2000; z-index: 2000;
top: 0; top: 0;
left: 0; left: 50%;
margin-left: -9.56rem;
} }
.fixed2 > div:nth-of-type(3) { .fixed2 > div:nth-of-type(3) {

View File

@ -2,7 +2,7 @@
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-06-08 11:32:22 * @Date: 2022-06-08 11:32:22
* @LastEditors: hisense.wuhongjian * @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-07-15 16:37:23 * @LastEditTime: 2022-07-18 18:49:16
* @Description: 应用详情页 * @Description: 应用详情页
--> -->
<template> <template>
@ -45,6 +45,12 @@
id="function-introduction" id="function-introduction"
class="scrollBox" class="scrollBox"
></application-function-intorduction> ></application-function-intorduction>
<!--应用详情-->
<application-ability-trial
:dataList="dataList.data"
id="application-ability-trial"
class="scrollBox"
></application-ability-trial>
<!-- 使用能力 --> <!-- 使用能力 -->
<application-ability-toise <application-ability-toise
:dataList="dataList.data" :dataList="dataList.data"
@ -81,9 +87,7 @@
import ApplicationTopDetails from '@/views/detailsAll/components/Application/ApplicationTopDetails.vue' import ApplicationTopDetails from '@/views/detailsAll/components/Application/ApplicationTopDetails.vue'
import ApplicationNavigation from '@/views/detailsAll/components/Application/ApplicationNavigation.vue' import ApplicationNavigation from '@/views/detailsAll/components/Application/ApplicationNavigation.vue'
import ApplicationPresentation from '@/views/detailsAll/components/Application/ApplicationPresentation.vue' import ApplicationPresentation from '@/views/detailsAll/components/Application/ApplicationPresentation.vue'
import ApplicationCommonProblem from '@/views/detailsAll/components/Application/ApplicationCommonProblem' //
import { ref, onMounted, onBeforeUnmount, reactive } from 'vue' import { ref, onMounted, onBeforeUnmount, reactive } from 'vue'
import { useRouter } from 'vue-router'
import { import {
updateVisits, updateVisits,
selectOne, selectOne,
@ -168,7 +172,7 @@
console.log('浏览记录+1') console.log('浏览记录+1')
}) })
}) })
associatedComponents.value.map((item) => { associatedComponents.value.map((item, index) => {
let queryPartAppByKeyIdParams = { let queryPartAppByKeyIdParams = {
keyId: id, keyId: id,
type: item.type, type: item.type,
@ -183,15 +187,15 @@
console.log('预览==============', obj) console.log('预览==============', obj)
} }
} }
// const associatedComponentsFunction = () => { const associatedComponentsFunction = () => {
// if ( if (
// associatedComponents.value[0].dataList.length > 0 || associatedComponents.value[0].dataList.length > 0 ||
// associatedComponents.value[1].dataList.length > 0 || associatedComponents.value[1].dataList.length > 0 ||
// associatedComponents.value[2].dataList.length > 0 associatedComponents.value[2].dataList.length > 0
// ) { ) {
// return associatedComponents.value return associatedComponents.value
// } }
// } }
init(id) init(id)
onBeforeUnmount(() => { onBeforeUnmount(() => {
mybus.off('flyToView') mybus.off('flyToView')
@ -199,10 +203,11 @@
</script> </script>
<style lang="less" scoped> <style lang="less" scoped>
.fixed { .fixed {
position: fixed; position: sticky;
z-index: 2000; z-index: 2000;
top: 0; top: 0;
left: 0; left: 50%;
margin-left: -9.56rem;
} }
.fixed2 > div:nth-of-type(3) { .fixed2 > div:nth-of-type(3) {

View File

@ -1,8 +1,8 @@
<!-- <!--
* @Author: hisense.gaoyuanwei * @Author: hisense.gaoyuanwei
* @Date: 2022-06-20 10:12:22 * @Date: 2022-06-20 10:12:22
* @LastEditors: hisense.liangjunhua * @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-06-20 18:58:56 * @LastEditTime: 2022-07-18 18:49:01
* @Description: 业务组件详情页 * @Description: 业务组件详情页
--> -->
<template> <template>
@ -177,7 +177,8 @@
position: fixed; position: fixed;
z-index: 2000; z-index: 2000;
top: 0; top: 0;
left: 0; left: 50%;
margin-left: -9.56rem;
} }
.fixed2 > div:nth-of-type(3) { .fixed2 > div:nth-of-type(3) {

View File

@ -2,7 +2,7 @@
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-06-08 11:32:22 * @Date: 2022-06-08 11:32:22
* @LastEditors: hisense.wuhongjian * @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-07-15 16:38:44 * @LastEditTime: 2022-07-18 18:48:53
* @Description: 开发组件详情页 * @Description: 开发组件详情页
--> -->
<template> <template>
@ -166,7 +166,7 @@
console.log('浏览记录+1') console.log('浏览记录+1')
}) })
}) })
associatedComponents.value.map(() => {}) associatedComponents.value.map((item, index) => {})
} else if (obj) { } else if (obj) {
dataList.data = obj dataList.data = obj
console.log('预览==============', obj) console.log('预览==============', obj)
@ -187,7 +187,8 @@
position: fixed; position: fixed;
z-index: 2000; z-index: 2000;
top: 0; top: 0;
left: 0; left: 50%;
margin-left: -9.56rem;
} }
.fixed2 > div:nth-of-type(3) { .fixed2 > div:nth-of-type(3) {

View File

@ -1,8 +1,8 @@
<!-- <!--
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-06-08 11:32:22 * @Date: 2022-06-08 11:32:22
* @LastEditors: hisense.liangjunhua * @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-06-20 18:59:01 * @LastEditTime: 2022-07-18 18:48:32
* @Description: 图层服务详情页 * @Description: 图层服务详情页
--> -->
<template> <template>
@ -186,7 +186,8 @@
position: fixed; position: fixed;
z-index: 2000; z-index: 2000;
top: 0; top: 0;
left: 0; left: 50%;
margin-left: -9.56rem;
} }
.fixed2 > div:nth-of-type(3) { .fixed2 > div:nth-of-type(3) {

View File

@ -283,6 +283,11 @@
background-position: center; background-position: center;
background-size: 635px 340px; background-size: 635px 340px;
} }
:deep(.ant-image-img) {
width: 100%;
height: 100%;
vertical-align: middle;
}
.content-top { .content-top {
font-size: 22px; font-size: 22px;
line-height: 22px; line-height: 22px;

View File

@ -250,6 +250,11 @@
background-position: center; background-position: center;
background-size: 635px 340px; background-size: 635px 340px;
} }
:deep(.ant-image-img) {
width: 100%;
height: 100%;
vertical-align: middle;
}
.content-top { .content-top {
font-size: 22px; font-size: 22px;
line-height: 22px; line-height: 22px;

View File

@ -33,6 +33,9 @@
<span class="label" v-if="deploymentLocation"> <span class="label" v-if="deploymentLocation">
{{ deploymentLocation }} {{ deploymentLocation }}
</span> </span>
<span class="label" v-if="classOfAlgorithm.attrValue">
{{ classOfAlgorithm.attrValue }}
</span>
</p> </p>
</div> </div>
<!-- <span class="label">免费</span> --> <!-- <span class="label">免费</span> -->
@ -77,6 +80,7 @@
const props = defineProps({ const props = defineProps({
dataList: { type: Object, default: null }, dataList: { type: Object, default: null },
}) })
const classOfAlgorithm = ref('')
// console.log('==================>', props.dataList.isCollect) // console.log('==================>', props.dataList.isCollect)
const router = useRouter() const router = useRouter()
const applicationArea = ref('') const applicationArea = ref('')
@ -164,6 +168,13 @@
let obj = props.dataList.infoList.filter( let obj = props.dataList.infoList.filter(
(val) => val.attrType === '组件类型' (val) => val.attrType === '组件类型'
)[0] )[0]
if (
props.dataList.infoList.filter((val) => val.attrType === '算法类别')[0]
) {
classOfAlgorithm.value = props.dataList.infoList.filter(
(val) => val.attrType === '算法类别'
)[0]
}
if ( if (
props.dataList.infoList.filter((val) => val.attrType === '部署位置')[0] props.dataList.infoList.filter((val) => val.attrType === '部署位置')[0]
) { ) {
@ -185,6 +196,15 @@
let obj = props.dataList.infoList.filter( let obj = props.dataList.infoList.filter(
(val) => val.attrType === '组件类型' (val) => val.attrType === '组件类型'
)[0] )[0]
if (
props.dataList.infoList.filter(
(val) => val.attrType === '算法类别'
)[0]
) {
classOfAlgorithm.value = props.dataList.infoList.filter(
(val) => val.attrType === '算法类别'
)[0]
}
if ( if (
props.dataList.infoList.filter( props.dataList.infoList.filter(
(val) => val.attrType === '部署位置' (val) => val.attrType === '部署位置'
@ -197,6 +217,9 @@
if (obj) { if (obj) {
componentType.value = obj.attrValue componentType.value = obj.attrValue
} }
if (val.isCollect) {
scFlag.value = true
}
} }
} }
) )

View File

@ -0,0 +1,206 @@
<!--
* @Author: hisense.liangjunhua
* @Date: 2022-06-09 09:29:29
* @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-06-13 15:21:26
* @Description: 应用详情
-->
<template>
<div class="algorithm-on-trial" v-if="flag && whoShow1.itShowQingDao">
<detals-title title="应用详情" type="PROBATION"></detals-title>
<div class="main">
<div class="main-left">
<p>{{ dataFrom.linkName }}</p>
<p style="cursor: pointer" @click="clickLink(dataFrom.link)">
{{ dataFrom.link }}
</p>
</div>
<div class="main-center">
<p>{{ dataFrom.numberName }}</p>
<p>{{ dataFrom.number }}</p>
<div
@click="copyFunction(dataFrom.number, '复制账号')"
v-if="dataFrom.number != ''"
>
复制账号
</div>
<div v-else id="zanwu">暂无</div>
</div>
<div class="main-right">
<p>{{ dataFrom.passwordName }}</p>
<p>{{ dataFrom.password }}</p>
<div
@click="copyFunction(dataFrom.password2, '复制密码')"
v-if="dataFrom.password != ''"
>
复制密码
</div>
<div v-else id="zanwu">暂无</div>
</div>
</div>
</div>
</template>
<script setup>
import DetalsTitle from '@/views/detailsAll/components/DetalsTitle.vue'
import { ref, defineProps, watch } from 'vue'
import { message } from 'ant-design-vue'
let flag = ref(true)
const whoShow1 = ref(whoShow)
console.log('whoShow1', whoShow1.value.itShowQingDao)
const props = defineProps({
dataList: { type: Object, default: null },
})
const dataFrom = ref({
linkName: '访问地址',
link: '',
numberName: '试用账号',
number: '',
passwordName: '试用密码',
password: '**************************',
password2: '',
})
if (props.dataList.infoList) {
let obj = props.dataList.applyState
if (obj !== '通过') {
flag.value = false
} else {
dataFrom.value.link = props.dataList.link
props.dataList.infoList.map((item) => {
if (item.attrType == '试用用户名') {
dataFrom.value.number = item.attrValue
} else if (item.attrType == '试用密码') {
dataFrom.value.password2 = item.attrValue
}
})
if (dataFrom.value.password2 === '') {
dataFrom.value.password = ''
}
}
}
const clickLink = (link) => {
window.open(link)
}
//
const copyFunction = (data, name) => {
if (data !== '') {
let url = data
let oInput = document.createElement('input')
oInput.value = url
document.body.appendChild(oInput)
oInput.select() // ;
console.log(oInput.value)
document.execCommand('Copy') //
oInput.remove() //
message.success(name + '成功')
} else {
message.error('复制为空')
}
}
message.config({
top: '100px', //
})
// const success = () => {
// message.success({
// // content: 'This is a prompt message with custom className and style',
// className: 'custom-class',
// style: {},
// })
// }
watch(
() => props.dataList,
(val) => {
if (val) {
let obj = props.dataList.applyState
if (obj !== '通过') {
flag.value = false
} else {
dataFrom.value.link = props.dataList.link
props.dataList.infoList.map((item) => {
if (item.attrType == '试用用户名') {
dataFrom.value.number = item.attrValue
} else if (item.attrType == '试用密码') {
dataFrom.value.password2 = item.attrValue
}
})
if (dataFrom.value.password2 === '') {
dataFrom.value.password = ''
}
}
}
}
)
</script>
<style lang="less" scoped>
.algorithm-on-trial {
padding: 0.8rem 0px 0.8rem;
display: flex;
flex-direction: column;
align-items: center;
.main {
margin-top: 0.3rem;
width: 13rem;
height: 2.5rem;
background: url('~@/assets/detailsAll/kfzj_sybg.png') no-repeat;
display: grid;
grid-template-columns: 33.33% 33.33% 33.33%;
align-items: center;
.main-left {
border-right: 0.01rem #ffffff solid;
padding-left: 0.7rem;
padding-right: 1rem;
& > p {
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
}
}
.main-center {
padding-left: 1rem;
padding-right: 1rem;
}
.main-right {
padding-right: 0.7rem;
}
& > div > p:first-child {
font-size: 0.26rem;
color: #ffffff;
font-weight: bold;
}
& > div > p:nth-child(2) {
font-size: 0.22rem;
color: #ffffff;
line-height: 0.34rem;
}
& > div:first-child > p:last-child {
text-decoration: underline;
word-wrap: break-word;
word-break: normal;
}
& > div > div:last-child {
height: 0.34rem;
width: 1.1rem;
border: 0.01rem solid #ffffff;
border-radius: 0.06rem;
font-size: 0.18rem;
color: #ffffff;
cursor: pointer;
text-align: center;
line-height: 0.34rem;
}
}
#zanwu {
height: 0.34rem;
width: 1.1rem;
font-size: 0.24rem;
color: #ffffff;
border: 0;
}
}
</style>
<style>
.custom-class {
/* top: 100px; */
}
</style>

View File

@ -56,11 +56,19 @@
}, },
], ],
}) })
const whoShow1 = ref(whoShow)
// //
const props = defineProps({ const props = defineProps({
dataList: { type: Object, default: null }, dataList: { type: Object, default: null },
}) })
if (props.dataList.infoList) { if (props.dataList.infoList) {
if (!whoShow1.value.itShowQingDao) {
let obj = {
attrType: '访问地址',
attrValue: props.dataList.link || '------',
}
dataFrom.value.content[0].childrenContent.push(obj)
}
props.dataList.infoList.map((item) => { props.dataList.infoList.map((item) => {
if ( if (
item.attrType === '部署区域' || item.attrType === '部署区域' ||
@ -111,6 +119,13 @@
if (val) { if (val) {
dataFrom.value.content[0].childrenContent = [] dataFrom.value.content[0].childrenContent = []
dataFrom.value.content[1].childrenContent = [] dataFrom.value.content[1].childrenContent = []
if (!whoShow1.value.itShowQingDao) {
let obj = {
attrType: '访问地址',
attrValue: props.dataList.link || '------',
}
dataFrom.value.content[0].childrenContent.push(obj)
}
props.dataList.infoList.map((item) => { props.dataList.infoList.map((item) => {
if ( if (
item.attrType === '部署区域' || item.attrType === '部署区域' ||
@ -125,12 +140,6 @@
attrValue: '是', attrValue: '是',
} }
dataFrom.value.content[1].childrenContent.push(isAndNo) dataFrom.value.content[1].childrenContent.push(isAndNo)
} else if (item.attrType === '访问地址') {
let obj = {
attrType: '访问地址',
attrValue: item.attrValue || '------',
}
dataFrom.value.content[0].childrenContent.push(obj)
} }
}) })
if (dataFrom.value.content[1].childrenContent.length <= 0) { if (dataFrom.value.content[1].childrenContent.length <= 0) {

View File

@ -41,6 +41,10 @@
name: '使用能力', name: '使用能力',
key: 'ability-to-use', key: 'ability-to-use',
}, },
{
name: '应用详情',
key: 'application-ability-trial',
},
{ {
name: '部署与安全', name: '部署与安全',
key: 'deployment-and-security', key: 'deployment-and-security',
@ -54,6 +58,7 @@
key: 'common-problem', key: 'common-problem',
}, },
]) ])
const whoShow1 = ref(whoShow)
const props = defineProps({ const props = defineProps({
selectNow: { type: String, default: '' }, selectNow: { type: String, default: '' },
dataList: { type: Object, default: null }, dataList: { type: Object, default: null },
@ -98,6 +103,9 @@
list.value.push('应用展示') list.value.push('应用展示')
} }
}) })
if (props.dataList.link && whoShow1.value.itShowQingDao) {
list.value.push('应用详情')
}
list.value.unshift('关联组件') list.value.unshift('关联组件')
list.value.push('部署与安全') list.value.push('部署与安全')
list.value.push('归属部门与服务商') list.value.push('归属部门与服务商')
@ -139,6 +147,9 @@
list.value.push('应用展示') list.value.push('应用展示')
} }
}) })
if (props.dataList.link && whoShow1.value.itShowQingDao) {
list.value.push('应用详情')
}
list.value.unshift('关联组件') list.value.unshift('关联组件')
list.value.push('部署与安全') list.value.push('部署与安全')
list.value.push('归属部门与服务商') list.value.push('归属部门与服务商')

View File

@ -191,6 +191,9 @@
applicationArea.value = props.dataList.infoList.filter( applicationArea.value = props.dataList.infoList.filter(
(val) => val.attrType === '应用领域' (val) => val.attrType === '应用领域'
)[0].attrValue )[0].attrValue
if (val.isCollect) {
scFlag.value = true
}
} }
} }
) )

View File

@ -250,6 +250,11 @@
background-position: center; background-position: center;
background-size: 635px 340px; background-size: 635px 340px;
} }
:deep(.ant-image-img) {
width: 100%;
height: 100%;
vertical-align: middle;
}
.content-top { .content-top {
font-size: 22px; font-size: 22px;
line-height: 22px; line-height: 22px;

View File

@ -8,13 +8,29 @@
<template> <template>
<div class="application-presentation" v-if="flag"> <div class="application-presentation" v-if="flag">
<detals-title title="组件展示" type="IMAGE&VIDEO"></detals-title> <detals-title title="组件展示" type="IMAGE&VIDEO"></detals-title>
<div class="box">
<div class="left" @click="chagneShow()"></div>
<div <div
class="main" class="main"
:style="`${img}background-position:center;background-size:cover;`" :style="`${img}background-position:center;background-size:cover;`"
v-if="
showArr.length > 0 && showArr[showFlag].attrType == '组件视频介绍'
"
> >
<!-- <a-image :src="img"></a-image> -->
<div class="play" @click="showModal"></div> <div class="play" @click="showModal"></div>
</div> </div>
<div
class="main2"
v-if="showArr.length > 0 && showArr[showFlag].attrType == '组件图片'"
>
<a-image
:width="700"
:height="340"
:src="showArr[showFlag].attrValue"
/>
</div>
<div class="right" @click="chagneShow()"></div>
</div>
<a-modal <a-modal
v-model:visible="visible" v-model:visible="visible"
title="视频预览" title="视频预览"
@ -60,6 +76,13 @@
'fullScreen', 'fullScreen',
], //, ], //,
}) })
const showFlag = ref(0)
const showArr = ref([])
const chagneShow = () => {
if (showArr.value.length > 1) {
showFlag.value = showFlag.value == 0 ? 1 : 0
}
}
const showModal = () => { const showModal = () => {
visible.value = true visible.value = true
} }
@ -70,42 +93,63 @@
const img = ref({}) const img = ref({})
console.log('111111111111111111111,', props.dataList) console.log('111111111111111111111,', props.dataList)
if (props.dataList.infoList) { if (props.dataList.infoList) {
showArr.value = props.dataList.infoList.filter(
(item) => item.attrType === '组件视频介绍' || item.attrType === '组件图片'
)
let obj = props.dataList.infoList.filter( let obj = props.dataList.infoList.filter(
(item) => item.attrType === '组件视频介绍' (item) => item.attrType === '组件视频介绍'
)[0] )[0]
console.log('视频==============>', obj) console.log('视频==============>', showArr.value)
if (!obj) { if (showArr.value.length == 0) {
flag.value = false flag.value = false
} else { } else {
let imgindex = props.dataList.infoList.filter( if (obj) {
(item) => item.attrType === '组件图片'
)[0]
options.src = obj.attrValue options.src = obj.attrValue
if (imgindex) {
img.value = 'background:' + 'url(' + imgindex.attrValue + ') no-repeat;'
} }
} }
// if (!obj) {
// flag.value = false
// } else {
// let imgindex = props.dataList.infoList.filter(
// (item) => item.attrType === ''
// )[0]
// options.src = obj.attrValue
// if (imgindex) {
// img.value = 'background:' + 'url(' + imgindex.attrValue + ') no-repeat;'
// }
// }
} }
watch( watch(
() => props.dataList, () => props.dataList,
(val) => { (val) => {
if (val) { if (val) {
showArr.value = props.dataList.infoList.filter(
(item) =>
item.attrType === '组件视频介绍' || item.attrType === '组件图片'
)
let obj = val.infoList.filter( let obj = val.infoList.filter(
(item) => item.attrType === '组件视频介绍' (item) => item.attrType === '组件视频介绍'
)[0] )[0]
console.log('视频==============>', obj) console.log('视频==============>', showArr.value)
if (!obj) { if (showArr.value.length == 0) {
flag.value = false flag.value = false
} else { } else {
let imgindex = props.dataList.infoList.filter( if (obj) {
(item) => item.attrType === '组件图片'
)[0]
options.src = obj.attrValue options.src = obj.attrValue
if (imgindex) {
img.value =
'background:' + 'url(' + imgindex.attrValue + ') no-repeat;'
} }
} }
// if (!obj) {
// flag.value = false
// } else {
// let imgindex = props.dataList.infoList.filter(
// (item) => item.attrType === ''
// )[0]
// options.src = obj.attrValue
// if (imgindex) {
// img.value =
// 'background:' + 'url(' + imgindex.attrValue + ') no-repeat;'
// }
// }
} }
} }
) )
@ -114,6 +158,7 @@
.application-presentation { .application-presentation {
padding: 0.8rem 3rem 0; padding: 0.8rem 3rem 0;
.main { .main {
width: 13.14rem;
height: 3.4rem; height: 3.4rem;
border-radius: 0.1rem; border-radius: 0.1rem;
background: url('~@/assets/detailsAll/sf_video_bg.png') no-repeat; background: url('~@/assets/detailsAll/sf_video_bg.png') no-repeat;
@ -130,5 +175,47 @@
cursor: pointer; cursor: pointer;
} }
} }
.main2 {
width: 13.14rem;
height: 3.4rem;
border-radius: 0.1rem;
background-size: 100%;
margin-top: 0.4rem;
display: flex;
justify-content: center;
align-items: center;
}
}
.box {
display: flex;
justify-content: space-around;
align-items: center;
margin-bottom: 0.8rem;
.left {
width: 0.37rem;
height: 0.6rem;
cursor: pointer;
margin-right: 0.2rem;
background: url('~@/assets/detailsAll/business/business_previous.png')
no-repeat;
background-size: 100%;
background-position: center;
}
.right {
width: 0.37rem;
height: 0.6rem;
cursor: pointer;
margin-left: 0.2rem;
background: url('~@/assets/detailsAll/business/business_next.png')
no-repeat;
background-size: 100%;
background-position: center;
}
}
:deep(.ant-image-img) {
width: 100%;
height: 100%;
object-fit: contain;
} }
</style> </style>

View File

@ -200,6 +200,9 @@
if (obj) { if (obj) {
componentType.value = obj.attrValue componentType.value = obj.attrValue
} }
if (val.isCollect) {
scFlag.value = true
}
} }
} }
) )

View File

@ -283,6 +283,11 @@
background-position: center; background-position: center;
background-size: 635px 340px; background-size: 635px 340px;
} }
:deep(.ant-image-img) {
width: 100%;
height: 100%;
vertical-align: middle;
}
.content-top { .content-top {
font-size: 22px; font-size: 22px;
line-height: 22px; line-height: 22px;

View File

@ -250,6 +250,11 @@
background-position: center; background-position: center;
background-size: 635px 340px; background-size: 635px 340px;
} }
:deep(.ant-image-img) {
width: 100%;
height: 100%;
vertical-align: middle;
}
.content-top { .content-top {
font-size: 22px; font-size: 22px;
line-height: 22px; line-height: 22px;

View File

@ -89,6 +89,7 @@
list.value = [] list.value = []
props.dataList.infoList.map((item) => { props.dataList.infoList.map((item) => {
if ( if (
item.attrType === '功能介绍' ||
item.attrType === '常见问题' || item.attrType === '常见问题' ||
item.attrType === '应用案例' || item.attrType === '应用案例' ||
item.attrType === '应用场景' item.attrType === '应用场景'
@ -101,6 +102,7 @@
} }
}) })
list.value.unshift('关联应用') list.value.unshift('关联应用')
list.value.push('使用方式')
navList.value.forEach((item) => { navList.value.forEach((item) => {
console.log(item) console.log(item)
if (list.value.indexOf(item.name) > -1) { if (list.value.indexOf(item.name) > -1) {

View File

@ -99,9 +99,6 @@
let obj = props.dataList.infoList.filter( let obj = props.dataList.infoList.filter(
(item) => item.attrType === '组件地址' (item) => item.attrType === '组件地址'
)[0] )[0]
if (!obj) {
flag.value = false
} else {
dataFrom.value.content[0].childrenContent[1].attrValue = dataFrom.value.content[0].childrenContent[1].attrValue =
props.dataList.deptContacts || '--' props.dataList.deptContacts || '--'
dataFrom.value.content[0].childrenContent[2].attrValue = dataFrom.value.content[0].childrenContent[2].attrValue =
@ -110,7 +107,7 @@
props.dataList.deptName || '--' props.dataList.deptName || '--'
props.dataList.infoList.map((item) => { props.dataList.infoList.map((item) => {
if (item.attrType == '组件地址') { if (item.attrType == '组件地址') {
dataFrom.value.link = item.attrValue dataFrom.value.link = item.attrValue || '暂无数据'
} else if (item.attrType == '服务商联系人') { } else if (item.attrType == '服务商联系人') {
dataFrom.value.content[1].childrenContent[1].attrValue = dataFrom.value.content[1].childrenContent[1].attrValue =
item.attrValue || '--' item.attrValue || '--'
@ -122,6 +119,8 @@
item.attrValue || '--' item.attrValue || '--'
} }
}) })
if (dataFrom.value.link === '') {
dataFrom.value.link = '暂无数据'
} }
} }
console.log('obj', dataFrom.value) console.log('obj', dataFrom.value)
@ -161,9 +160,6 @@
(val) => { (val) => {
if (val) { if (val) {
let obj = val.infoList.filter((item) => item.attrType === '组件地址')[0] let obj = val.infoList.filter((item) => item.attrType === '组件地址')[0]
if (!obj) {
flag.value = false
} else {
dataFrom.value.content[0].childrenContent[1].attrValue = dataFrom.value.content[0].childrenContent[1].attrValue =
props.dataList.deptContacts || '--' props.dataList.deptContacts || '--'
dataFrom.value.content[0].childrenContent[2].attrValue = dataFrom.value.content[0].childrenContent[2].attrValue =
@ -172,21 +168,20 @@
props.dataList.deptName || '--' props.dataList.deptName || '--'
props.dataList.infoList.map((item) => { props.dataList.infoList.map((item) => {
if (item.attrType == '组件地址') { if (item.attrType == '组件地址') {
dataFrom.value.link = item.attrValue dataFrom.value.link = item.attrValue || '暂无数据'
} else if (item.attrType == '服务商联系人') { } else if (item.attrType == '服务商联系人') {
dataFrom.value.content[1].childrenContent[1].attrValue = dataFrom.value.content[1].childrenContent[1].attrValue =
item.attrValue || '--' item.attrValue || '--'
} else if (item.attrType == '服务商联系电话') { } else if (item.attrType == '服务商联系电话') {
dataFrom.value.content[1].childrenContent[2].attrValue = dataFrom.value.content[1].childrenContent[2].attrValue =
item.attrValue || '--' item.attrValue || '--'
} else if ( } else if (item.attrType == '服务商' || item.attrType == '服务商名') {
item.attrType == '服务商' ||
item.attrType == '服务商名'
) {
dataFrom.value.content[1].childrenContent[0].attrValue = dataFrom.value.content[1].childrenContent[0].attrValue =
item.attrValue || '--' item.attrValue || '--'
} }
}) })
if (dataFrom.value.link === '') {
dataFrom.value.link = '暂无数据'
} }
} }
} }
@ -249,7 +244,7 @@
// -webkit-line-clamp: 1; // -webkit-line-clamp: 1;
& > span:last-child { & > span:last-child {
display: inline-block; display: inline-block;
width: 1.19rem; width: 1.49rem;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
white-space: nowrap; white-space: nowrap;

View File

@ -157,9 +157,13 @@
} }
const componentType = ref('') const componentType = ref('')
if (props.dataList.infoList) { if (props.dataList.infoList) {
if (
props.dataList.infoList.filter((val) => val.attrType === '应用领域')[0]
) {
applicationArea.value = props.dataList.infoList.filter( applicationArea.value = props.dataList.infoList.filter(
(val) => val.attrType === '应用领域' (val) => val.attrType === '应用领域'
)[0].attrValue )[0].attrValue
}
let obj = props.dataList.infoList.filter( let obj = props.dataList.infoList.filter(
(val) => val.attrType === '组件类型' (val) => val.attrType === '组件类型'
)[0] )[0]
@ -178,9 +182,15 @@
() => props.dataList, () => props.dataList,
(val) => { (val) => {
if (val) { if (val) {
if (
props.dataList.infoList.filter(
(val) => val.attrType === '应用领域'
)[0]
) {
applicationArea.value = props.dataList.infoList.filter( applicationArea.value = props.dataList.infoList.filter(
(val) => val.attrType === '应用领域' (val) => val.attrType === '应用领域'
)[0].attrValue )[0].attrValue
}
let obj = props.dataList.infoList.filter( let obj = props.dataList.infoList.filter(
(val) => val.attrType === '组件类型' (val) => val.attrType === '组件类型'
)[0] )[0]
@ -196,6 +206,9 @@
if (obj) { if (obj) {
componentType.value = obj.attrValue componentType.value = obj.attrValue
} }
if (val.isCollect) {
scFlag.value = true
}
} }
} }
) )

View File

@ -250,6 +250,11 @@
background-position: center; background-position: center;
background-size: 635px 340px; background-size: 635px 340px;
} }
:deep(.ant-image-img) {
width: 100%;
height: 100%;
vertical-align: middle;
}
.content-top { .content-top {
font-size: 22px; font-size: 22px;
line-height: 22px; line-height: 22px;

View File

@ -199,6 +199,9 @@
if (obj) { if (obj) {
componentType.value = obj.attrValue componentType.value = obj.attrValue
} }
if (val.isCollect) {
scFlag.value = true
}
} }
} }
) )

View File

@ -21,6 +21,8 @@
:class=" :class="
val.type == '基础设施' val.type == '基础设施'
? 'sxt' ? 'sxt'
: val.type == '应用资源'
? 'yyzy'
: val.componentType == '智能算法' : val.componentType == '智能算法'
? 'znsf' ? 'znsf'
: val.componentType == '图层服务' : val.componentType == '图层服务'
@ -103,7 +105,7 @@
]) ])
// eslint-disable-next-line vue/no-setup-props-destructure // eslint-disable-next-line vue/no-setup-props-destructure
dataForm.value = props.dataList dataForm.value = props.dataList
console.log(dataForm.value) console.log('=========================>', dataForm.value)
// const router = useRouter() // const router = useRouter()
// const arr = // const arr =
// router.currentRoute.value.query.name instanceof Array // router.currentRoute.value.query.name instanceof Array
@ -259,6 +261,10 @@
background: url('~@/assets/home/sxt_square.png') no-repeat; background: url('~@/assets/home/sxt_square.png') no-repeat;
background-size: 100%; background-size: 100%;
} }
.yyzy {
background: url('~@/assets/home/yyzy_square.png') no-repeat;
background-size: 100%;
}
.znsf { .znsf {
background: url('~@/assets/home/znsf_square.png') no-repeat; background: url('~@/assets/home/znsf_square.png') no-repeat;

View File

@ -39,6 +39,14 @@
class="resultListSearchInput" class="resultListSearchInput"
/> />
<button class="button-reset" @click="chongzhi()">重置</button> <button class="button-reset" @click="chongzhi()">重置</button>
<button
v-if="Cardsname == '应用资源'"
class="button-reset"
@click="applyAll()"
style="margin-left: 0.1rem"
>
全部申请
</button>
<div class="hengxian"></div> <div class="hengxian"></div>
</div> </div>
</div> </div>
@ -96,7 +104,10 @@
/> />
</div> </div>
</div> </div>
<div class="top-content" v-if="Cardsname == '组件服务'"> <!-- <div
class="top-content"
v-if="Cardsname == '组件服务' || Cardsname == '应用资源'"
>
<span class="top-content-title">共享条件</span> <span class="top-content-title">共享条件</span>
<div class="leixingsumfather"> <div class="leixingsumfather">
<div class="leixingsum"> <div class="leixingsum">
@ -116,7 +127,7 @@
</a-checkable-tag> </a-checkable-tag>
</div> </div>
</div> </div>
</div> </div> -->
</div> </div>
</template> </template>
</div> </div>
@ -313,7 +324,7 @@
/> />
</div> </div>
</div> </div>
<div class="top-content" v-if="Cardsname == '组件服务'"> <!-- <div class="top-content" v-if="Cardsname == '组件服务'">
<span class="top-content-title">共享条件</span> <span class="top-content-title">共享条件</span>
<div class="leixingsumfather"> <div class="leixingsumfather">
<div class="leixingsum"> <div class="leixingsum">
@ -333,7 +344,7 @@
</a-checkable-tag> </a-checkable-tag>
</div> </div>
</div> </div>
</div> </div> -->
</div> </div>
</template> </template>
</div> </div>
@ -511,7 +522,7 @@
/> />
</div> </div>
</div> </div>
<div class="top-content" v-if="Cardsname == '组件服务'"> <!-- <div class="top-content" v-if="Cardsname == '组件服务'">
<span class="top-content-title">共享条件</span> <span class="top-content-title">共享条件</span>
<div class="leixingsumfather"> <div class="leixingsumfather">
<div class="leixingsum"> <div class="leixingsum">
@ -531,7 +542,7 @@
</a-checkable-tag> </a-checkable-tag>
</div> </div>
</div> </div>
</div> </div> -->
</div> </div>
</template> </template>
</div> </div>
@ -1092,7 +1103,15 @@
getAppResources() getAppResources()
} }
}) })
//
const applyAll = () => {
router.push({
path: '/apply',
query: {
applyAll: true,
},
})
}
// //
const onShowSizeChange = (current, pageSize) => { const onShowSizeChange = (current, pageSize) => {
currentPage.value = current currentPage.value = current
@ -1190,6 +1209,7 @@
loading, loading,
getShoppingCartList, getShoppingCartList,
whoShow1, whoShow1,
applyAll,
} }
}, },
components: { components: {

View File

@ -6,7 +6,7 @@
<aside-menu></aside-menu> <aside-menu></aside-menu>
</aside> --> </aside> -->
<article> <article>
<div class="from-card" v-if="applySuccess"> <div class="from-card" v-if="applySuccess && !applyAll">
<AbilityToApplyFor :dataList="list"></AbilityToApplyFor> <AbilityToApplyFor :dataList="list"></AbilityToApplyFor>
</div> </div>
<div class="form-container"> <div class="form-container">
@ -75,7 +75,7 @@
/> />
</a-form-item> </a-form-item>
</div> </div>
<div class="base-info"> <div class="base-info" v-if="flag">
<a-form-item <a-form-item
label="应用系统" label="应用系统"
name="applicationSystem" name="applicationSystem"
@ -95,9 +95,9 @@
</a-form-item> </a-form-item>
<a-form-item <a-form-item
class="applicationScene" class="applicationScene"
label="应用场景" label="应用领域"
name="applicationScene" name="applicationScene"
:rules="[{ required: true, message: '请选择应用场景' }]" :rules="[{ required: true, message: '请选择应用领域' }]"
style="width: 6.93rem" style="width: 6.93rem"
> >
<a-select <a-select
@ -105,7 +105,7 @@
:options="applicationSceneOpthion" :options="applicationSceneOpthion"
mode="tags" mode="tags"
:size="size" :size="size"
placeholder="请选择应用场景" placeholder="请选择应用领域"
:filterOption="false" :filterOption="false"
:searchValue="false" :searchValue="false"
style="width: 5.87rem" style="width: 5.87rem"
@ -243,6 +243,7 @@
startOfBusinessKey, startOfBusinessKey,
updateInstanceId, updateInstanceId,
submitApply, submitApply,
applyAllApplication,
getUser, getUser,
getUserInfo, getUserInfo,
relaunch, relaunch,
@ -267,14 +268,30 @@
setup() { setup() {
const router = useRouter() const router = useRouter()
const disabled = ref(false) const disabled = ref(false)
const flag = ref(false)
const list = ref(JSON.parse(localStorage.getItem('applyList'))) const list = ref(JSON.parse(localStorage.getItem('applyList')))
const num = ref(0) const applyAll = router.currentRoute.value.query.applyAll
if (!applyAll) {
list.value.map((item) => { list.value.map((item) => {
item.arr.map((val) => {
console.log(item, '组件===========================')
let obj = item.children
? item.children.filter((type) => type.id == val.id)[0]
: val.type !== '应用资源'
if (obj) {
console.log('11111111111111111111111111111', obj, flag.value)
if (obj.type !== '应用资源') {
flag.value = true
}
}
})
if (item.checkedList) { if (item.checkedList) {
console.log(item) console.log(item)
num.value += Number(item.checkedList.length) num.value += Number(item.checkedList.length)
} }
}) })
}
const num = ref(0)
console.log( console.log(
'list', 'list',
list.value list.value
@ -286,17 +303,17 @@
let record = ref('1') let record = ref('1')
const text = ref('') const text = ref('')
const formName = reactive({ const formName = reactive({
title: list.value[0].children title: applyAll
? '全部应用资源申请'
: list.value[0].children
? list.value[0].children ? list.value[0].children
.filter((val) => val.id == list.value[0].checkedList[0])[0] .filter((val) => val.id == list.value[0].checkedList[0])[0]
.resourceName.concat( .resourceName.concat(
list.value[0].checkedList.length > 1 num.value > 1 ? '等能力申请' + num.value + '个' : '能力申请'
? '等能力申请' + num.value + '个'
: '能力申请'
) )
: list.value[0].arr[0].resourceName.concat('能力申请'), // : list.value[0].arr[0].resourceName.concat('能力申请'), //
applicationSystem: [], // applicationSystem: [], //
applicationScene: [], // applicationScene: [], //
applicationBackground: '', // applicationBackground: '', //
effectWish: '', // effectWish: '', //
user: '', user: '',
@ -401,6 +418,7 @@
if (!formName) { if (!formName) {
return message.error('请设置表单名称') return message.error('请设置表单名称')
} }
if (!applyAll) {
let ids = [] let ids = []
formName.system = [] formName.system = []
console.log('list==================', list.value) console.log('list==================', list.value)
@ -445,14 +463,13 @@
console.log('提交数据==========================>', formName, ids) console.log('提交数据==========================>', formName, ids)
if (formName.system.length !== 0) { if (formName.system.length !== 0) {
submitApply(formName).then((res) => { submitApply(formName).then((res) => {
applySuccess.value = false // applySuccess.value = false
message.success('操作成功') message.success('申请提交成功,请到消息中心查看')
console.log('能力申请================>', res) console.log('能力申请================>', res)
if (ids && ids.length > 0) { if (ids && ids.length > 0) {
sgcDel({ ids: ids }).then((res) => { sgcDel({ ids: ids }).then((res) => {
if (res.data.msg === 'success') { if (res.data.msg === 'success') {
mybus.emit('getSgcNum') mybus.emit('getSgcNum')
router.push({ router.push({
path: '/DetailsPageconetent', path: '/DetailsPageconetent',
query: { query: {
@ -471,6 +488,22 @@
} }
}) })
} }
} else {
formName.applicationSystem = ''
applyAllApplication(formName).then((res) => {
if (res.data.code == 0) {
message.success('申请提交成功,请到消息中心查看!')
router.push({
path: '/DetailsPageconetent',
query: {
select: '组件服务',
},
})
} else {
message.error('申请失败!')
}
})
}
}) })
} }
} }
@ -656,6 +689,8 @@
handleFocus, handleFocus,
systemOptions, systemOptions,
applicationSceneOpthion, applicationSceneOpthion,
flag,
applyAll,
} }
}, },
} }

View File

@ -7,7 +7,8 @@
]" ]"
> >
<div class="name"> <div class="name">
<div class="name-bg"></div> <div class="name-bg" v-if="!whoShow1.itShowXiHaiAn"></div>
<div class="name-bg-xihaian" v-else></div>
城市云脑通用能力服务平台 城市云脑通用能力服务平台
</div> </div>
<div <div
@ -137,6 +138,7 @@
// // { name: '', key: 'houtaiguanli' }, // // { name: '', key: 'houtaiguanli' },
// { name: '', key: 'assignCase' }, // { name: '', key: 'assignCase' },
// ]) // ])
const whoShow1 = whoShow
const user = ref({ const user = ref({
username: store.getters['user/username'], username: store.getters['user/username'],
}) })
@ -353,6 +355,14 @@
background-size: 100%; background-size: 100%;
margin-right: 0.15rem; margin-right: 0.15rem;
} }
.name-bg-xihaian {
height: 0.6rem;
width: 0.6rem;
background: url('~@/assets/newHome/newHome-title-bg-xihaian.png')
no-repeat;
background-size: 100%;
margin-right: 0.15rem;
}
} }
.nav { .nav {
width: 1.2rem; width: 1.2rem;

View File

@ -30,7 +30,6 @@
@click="changeCondition(item.value)" @click="changeCondition(item.value)"
v-show=" v-show="
item.show && item.show &&
!(item.name === '申请量' && selectCardsname == '应用资源') &&
item.name !== '评分' && item.name !== '评分' &&
selectCardsname !== '数据资源' selectCardsname !== '数据资源'
" "
@ -115,7 +114,7 @@
p-id="3062" p-id="3062"
width="40" width="40"
height="40" height="40"
v-if="item.applyState == '通过' && item.type !== '应用资源'" v-if="item.applyState == '通过'"
style="margin-left: 10px" style="margin-left: 10px"
> >
<path <path
@ -190,9 +189,9 @@
</div> </div>
<div <div
v-if=" v-if="
selectCardsname !== '应用资源' &&
selectCardsname !== '数据资源' && selectCardsname !== '数据资源' &&
selectCardsname !== '融合服务' selectCardsname !== '融合服务' &&
(selectCardsname !== '应用资源' || whoShow1.itShowQingDao)
" "
> >
申请量{{ item.applyCount || 0 }} 申请量{{ item.applyCount || 0 }}
@ -221,7 +220,12 @@
</div> </div>
<div class="right" v-if="selectCardsname !== '基础设施'"> <div class="right" v-if="selectCardsname !== '基础设施'">
<div class="shopping" :key="shoppingKey"> <div class="shopping" :key="shoppingKey">
<template v-if="selectCardsname == '组件服务'"> <template
v-if="
selectCardsname == '组件服务' ||
(selectCardsname == '应用资源' && whoShow1.itShowQingDao)
"
>
<span <span
class="shopping-down" class="shopping-down"
v-if="item.isInShoppingCart" v-if="item.isInShoppingCart"
@ -279,10 +283,13 @@
<a-button <a-button
type="primary" type="primary"
@click="toView('apply', item)" @click="toView('apply', item)"
v-show="cardType == '组件服务'" v-show="
cardType == '组件服务' ||
(cardType == '应用资源' && whoShow1.itShowQingDao)
"
> >
{{ {{
item.shareCondition == '免批申请' ? '免批申请' : '立即申请' item.shareCondition == '免批申请' ? '立即申请' : '立即申请'
}} }}
</a-button> </a-button>
</div> </div>
@ -508,6 +515,7 @@
console.log('or use this.value', searchValue.value) console.log('or use this.value', searchValue.value)
} }
function toView(type, item) { function toView(type, item) {
debugger
if (props.selectCardsname == '数据资源') { if (props.selectCardsname == '数据资源') {
if (whoShow1.itShowQingDao) { if (whoShow1.itShowQingDao) {
window.open( window.open(
@ -515,7 +523,9 @@
item.guid item.guid
) )
} else { } else {
window.open('http://10.134.135.24:30090/#/home') window.open(
'http://10.134.135.24:30090/#/home?id=' + item.serviceId
)
} }
} else if (props.selectCardsname === '融合服务') { } else if (props.selectCardsname === '融合服务') {
router.push({ router.push({
@ -539,9 +549,14 @@
resourceName: item.name, resourceName: item.name,
time: item.createDate, time: item.createDate,
type: item.type, type: item.type,
componentType: item.infoList.filter( componentType:
(item.infoList.filter(
(val) => val.attrType == '组件类型' (val) => val.attrType == '组件类型'
)[0].attrValue, )[0] &&
item.infoList.filter(
(val) => val.attrType == '组件类型'
)[0].attrValue) ||
'',
}, },
], ],
deptId: item.deptId, deptId: item.deptId,
@ -897,6 +912,10 @@
background: url('~@/assets/home/rhfw_square.png') no-repeat; background: url('~@/assets/home/rhfw_square.png') no-repeat;
background-size: 100%; background-size: 100%;
} }
.jcss {
background: url('~@/assets/home/sxt_square.png') no-repeat;
background-size: 100%;
}
.header { .header {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;

View File

@ -2,7 +2,7 @@
* @Author: hisense.wuhongjian * @Author: hisense.wuhongjian
* @Date: 2022-04-19 17:18:48 * @Date: 2022-04-19 17:18:48
* @LastEditors: hisense.wuhongjian * @LastEditors: hisense.wuhongjian
* @LastEditTime: 2022-07-16 15:01:48 * @LastEditTime: 2022-07-18 16:40:21
* @Description: markdown编辑器 * @Description: markdown编辑器
--> -->
<template> <template>
@ -95,12 +95,12 @@
if (this.uuidSnum === '') { if (this.uuidSnum === '') {
this.uuidSplice() this.uuidSplice()
} }
let myfile = new File([blob], this.uuidSnum) let myfile = new File([blob], this.uuidSnum + '.md')
var formData = new FormData() var formData = new FormData()
const type = pinyin(this.dataFrom.type, { const type = pinyin(this.dataFrom.type, {
pattern: 'initial', pattern: 'initial',
}).replace(/\s*/g, '') }).replace(/\s*/g, '')
formData.append('fileName', this.uuidSnum) formData.append('fileName', this.uuidSnum + '.md')
formData.append('type', type) formData.append('type', type)
formData.append('file', myfile) // 'file' HTTP Post, file File formData.append('file', myfile) // 'file' HTTP Post, file File
// formData.append('name', this.route.currentRoute.query.id + '.md') // formData.append('name', this.route.currentRoute.query.id + '.md')

View File

@ -2,7 +2,7 @@
* @Author: hisense.liangjunhua * @Author: hisense.liangjunhua
* @Date: 2022-07-12 09:42:44 * @Date: 2022-07-12 09:42:44
* @LastEditors: hisense.liangjunhua * @LastEditors: hisense.liangjunhua
* @LastEditTime: 2022-07-13 15:56:51 * @LastEditTime: 2022-07-18 17:54:55
* @Description:我的申请 能力申请 查看详情 * @Description:我的申请 能力申请 查看详情
--> -->
<template> <template>
@ -34,7 +34,7 @@
申请单附件 申请单附件
<span class="enclosure"> <span class="enclosure">
{{ props.refObj.enclosureName || '--' }} {{ props.refObj.enclosureName || '--' }}
<span class="btn">预览</span> <span class="btn" @click="showThis()">预览</span>
</span> </span>
</span> </span>
</p> </p>
@ -104,11 +104,11 @@
}} }}
</span> </span>
</div> </div>
<div class="btn">技术文档</div> <div class="btn" v-if="val.type == '组件服务'">技术文档</div>
</div> </div>
<div class="ability-bottom"> <div class="ability-bottom">
<div class="dec">资源描述{{ val.description }}</div> <div class="dec">资源描述{{ val.description }}</div>
<div class="result">申请结果{{ val.content || '--' }}</div> <div class="result">申请结果{{ val.applyState }}</div>
</div> </div>
</div> </div>
</div> </div>
@ -139,6 +139,13 @@
const props = defineProps({ const props = defineProps({
refObj: { type: Object, default: null }, refObj: { type: Object, default: null },
}) })
const showThis = () => {
window.open(
window.SITE_CONFIG.previewUrl +
'hisense_office/onlinePreview?url=' +
btoa(encodeURI(props.refObj.enclosure))
)
}
const showArr = ref([]) const showArr = ref([])
console.log(props.refObj, '=====================================') console.log(props.refObj, '=====================================')
if (props.refObj.resourceApplication) { if (props.refObj.resourceApplication) {
@ -286,6 +293,13 @@
justify-content: space-between; justify-content: space-between;
align-items: center; align-items: center;
.name { .name {
width: 6rem;
height: 0.2rem;
overflow: hidden;
text-overflow: ellipsis;
display: -webkit-box;
-webkit-line-clamp: 1;
-webkit-box-orient: vertical;
.type { .type {
background: #0087ff; background: #0087ff;
color: #fff; color: #fff;

View File

@ -396,6 +396,7 @@
margin-left: 30px; margin-left: 30px;
font-size: 12px; font-size: 12px;
color: #ccc; color: #ccc;
white-space: nowrap;
} }
:deep(.ant-list-item-meta-description) { :deep(.ant-list-item-meta-description) {
max-height: 44px; max-height: 44px;

View File

@ -198,6 +198,8 @@
:class=" :class="
item.type == '基础设施' item.type == '基础设施'
? 'sxt' ? 'sxt'
: item.type == '应用资源'
? 'yyzy'
: item.componentType == '智能算法' : item.componentType == '智能算法'
? 'znsf' ? 'znsf'
: item.componentType == '图层服务' : item.componentType == '图层服务'
@ -1015,6 +1017,10 @@
background: url('~@/assets/home/sxt_square.png') no-repeat; background: url('~@/assets/home/sxt_square.png') no-repeat;
background-size: 100%; background-size: 100%;
} }
.yyzy {
background: url('~@/assets/home/yyzy_square.png') no-repeat;
background-size: 100%;
}
.znsf { .znsf {
background: url('~@/assets/home/znsf_square.png') no-repeat; background: url('~@/assets/home/znsf_square.png') no-repeat;
background-size: 100%; background-size: 100%;

View File

@ -97,15 +97,24 @@
<a-form-item <a-form-item
label="应用领域" label="应用领域"
name="detailsField" name="detailsField"
style="width: 350px" style="width: 6.93rem"
:rules="[{ required: true, message: '请输入应用领域' }]" :rules="[{ required: true, message: '请选择应用领域' }]"
> >
<a-input <a-select
placeholder="请输入应用领域"
v-model:value="formName.detailsField" v-model:value="formName.detailsField"
/> :options="applicationSceneOpthion"
mode="tags"
:size="size"
placeholder="请选择应用领域"
:filterOption="false"
:searchValue="false"
style="width: 5.87rem"
></a-select>
</a-form-item> </a-form-item>
<!-- <a-form-item label="应用领域" name="detailsField" style="width: 350px"
:rules="[{ required: true, message: '请输入应用领域' }]">
<a-input placeholder="请输入应用领域" v-model:value="formName.detailsField" />
</a-form-item> -->
<a-form-item <a-form-item
style="margin-bottom: 10px" style="margin-bottom: 10px"
label="需求描述" label="需求描述"
@ -229,6 +238,7 @@
demandApply, demandApply,
getDemandForm, getDemandForm,
updateDemandForm, updateDemandForm,
getCategoryTreePage,
} from '@/api/personalCenter' } from '@/api/personalCenter'
// import { baseURL } from '@/config' // import { baseURL } from '@/config'
import { useRouter } from 'vue-router' import { useRouter } from 'vue-router'
@ -251,7 +261,7 @@
applyUserPhone: '', applyUserPhone: '',
demandDetails: '', demandDetails: '',
demandSubject: '', demandSubject: '',
detailsField: '', detailsField: [],
detailsType: '', detailsType: '',
enclosure: '', enclosure: '',
}) })
@ -271,6 +281,21 @@
formName.enclosure = res.data.data.enclosure formName.enclosure = res.data.data.enclosure
}) })
} }
const applicationSceneOpthion = ref([])
getCategoryTreePage({
page: 1,
limit: 20,
dictTypeId: '1513712507692818433',
deFlage: 0,
}).then((res) => {
res.data.data.list.map((val) => {
applicationSceneOpthion.value.push({
value: val.dictLabel,
label: val.dictLabel,
})
})
// console.log('========>', applicationSceneOpthion.value)
})
getUser().then((res) => { getUser().then((res) => {
formName.applyUserName = res.data.data.realName formName.applyUserName = res.data.data.realName
formName.applyUserId = res.data.data.id formName.applyUserId = res.data.data.id
@ -349,6 +374,7 @@
processStartHandle, processStartHandle,
upLoadUrl, upLoadUrl,
// baseURL, // baseURL,
applicationSceneOpthion,
} }
}, },
} }