组件服务挂接
This commit is contained in:
parent
fd32fd6769
commit
23a577a544
|
@ -11,12 +11,12 @@
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="getDataList2(dataForm.name)">{{
|
<el-button type="primary" @click="getDataList2(dataForm.name)">{{
|
||||||
$t("query")
|
$t('query')
|
||||||
}}</el-button>
|
}}</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="info" @click="exportHandle()">{{
|
<el-button type="info" @click="exportHandle()">{{
|
||||||
$t("export")
|
$t('export')
|
||||||
}}</el-button>
|
}}</el-button>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<!-- <el-form-item>
|
<!-- <el-form-item>
|
||||||
|
@ -28,9 +28,7 @@
|
||||||
>
|
>
|
||||||
</el-form-item> -->
|
</el-form-item> -->
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button
|
<el-button type="primary" @click="showPutOnTheShelf()"
|
||||||
type="primary"
|
|
||||||
@click="showPutOnTheShelf()"
|
|
||||||
>上架</el-button
|
>上架</el-button
|
||||||
>
|
>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
@ -39,7 +37,7 @@
|
||||||
v-if="$hasPermission('ability:bsabilityai:delete')"
|
v-if="$hasPermission('ability:bsabilityai:delete')"
|
||||||
type="danger"
|
type="danger"
|
||||||
@click="deleteHandle2()"
|
@click="deleteHandle2()"
|
||||||
>{{ $t("deleteBatch") }}</el-button
|
>{{ $t('deleteBatch') }}</el-button
|
||||||
>
|
>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
|
@ -78,7 +76,7 @@
|
||||||
align="center"
|
align="center"
|
||||||
></af-table-column>
|
></af-table-column>
|
||||||
<af-table-column
|
<af-table-column
|
||||||
:show-overflow-tooltip="true"
|
:show-overflow-tooltip="true"
|
||||||
width="300"
|
width="300"
|
||||||
v-for="(item, index) in dataList[0].infoList"
|
v-for="(item, index) in dataList[0].infoList"
|
||||||
:key="index"
|
:key="index"
|
||||||
|
@ -110,14 +108,14 @@
|
||||||
type="text"
|
type="text"
|
||||||
size="small"
|
size="small"
|
||||||
@click="UpdateData(scope.row)"
|
@click="UpdateData(scope.row)"
|
||||||
>{{ $t("update") }}</el-button
|
>{{ $t('update') }}</el-button
|
||||||
>
|
>
|
||||||
<el-button
|
<el-button
|
||||||
v-if="$hasPermission('ability:bsabilityai:delete')"
|
v-if="$hasPermission('ability:bsabilityai:delete')"
|
||||||
type="text"
|
type="text"
|
||||||
size="small"
|
size="small"
|
||||||
@click="deleteHandle2(scope.row.id)"
|
@click="deleteHandle2(scope.row.id)"
|
||||||
>{{ $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
|
||||||
|
@ -125,7 +123,12 @@
|
||||||
<el-button type="text" size="small" @click="showDocument(scope.row)"
|
<el-button type="text" size="small" @click="showDocument(scope.row)"
|
||||||
>开发文档</el-button
|
>开发文档</el-button
|
||||||
>
|
>
|
||||||
<el-button type="text" size="small" @click="showRelateApplication(scope.row)">关联应用</el-button>
|
<el-button
|
||||||
|
type="text"
|
||||||
|
size="small"
|
||||||
|
@click="showRelateApplication(scope.row)"
|
||||||
|
>关联应用</el-button
|
||||||
|
>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
@ -146,33 +149,48 @@
|
||||||
ref="addOrUpdate"
|
ref="addOrUpdate"
|
||||||
@refreshDataList="getDataList"
|
@refreshDataList="getDataList"
|
||||||
></add-or-update>
|
></add-or-update>
|
||||||
<relate-application v-if="relateApplicationVisible" ref="relateApplication" :nameArray="['未关联应用名称', '已关联应用名称']" :relateInfo="relateInfo" @isShowRelatePopup="handleIsShowRelatePopup"></relate-application>
|
<relate-application
|
||||||
|
v-if="relateApplicationVisible"
|
||||||
|
ref="relateApplication"
|
||||||
|
:nameArray="['未关联应用名称', '已关联应用名称']"
|
||||||
|
:relateInfo="relateInfo"
|
||||||
|
@isShowRelatePopup="handleIsShowRelatePopup"
|
||||||
|
></relate-application>
|
||||||
</div>
|
</div>
|
||||||
<el-dialog
|
<el-dialog
|
||||||
title="选择组件类型"
|
title="选择组件类型"
|
||||||
:visible.sync="showPutOnTheShelfFlag"
|
:visible.sync="showPutOnTheShelfFlag"
|
||||||
:close-on-click-modal='false'
|
:close-on-click-modal="false"
|
||||||
:close-on-press-escape='false'
|
:close-on-press-escape="false"
|
||||||
:before-close='clear'
|
:before-close="clear"
|
||||||
width="30%">
|
width="30%"
|
||||||
|
>
|
||||||
<el-radio v-model="radio" label="智能算法">智能算法</el-radio>
|
<el-radio v-model="radio" label="智能算法">智能算法</el-radio>
|
||||||
<el-radio v-model="radio" label="图层服务">图层服务</el-radio>
|
<el-radio v-model="radio" label="图层服务">图层服务</el-radio>
|
||||||
<el-radio v-model="radio" label="开发组件">开发组件</el-radio>
|
<el-radio v-model="radio" label="开发组件">开发组件</el-radio>
|
||||||
<el-radio v-model="radio" label="业务组件">业务组件</el-radio>
|
<el-radio v-model="radio" label="业务组件">业务组件</el-radio>
|
||||||
<span slot="footer" class="dialog-footer">
|
<span slot="footer" class="dialog-footer">
|
||||||
<el-button @click="clear">取 消</el-button>
|
<el-button @click="clear">取 消</el-button>
|
||||||
<el-button type="primary" @click="showPutOnTheShelfVue">确 定</el-button>
|
<el-button type="primary" @click="showPutOnTheShelfVue"
|
||||||
|
>确 定</el-button
|
||||||
|
>
|
||||||
</span>
|
</span>
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
<el-dialog
|
<el-dialog
|
||||||
:title="submitFrom.id?'修改'+radio:'上架'+radio"
|
:title="submitFrom.id ? '修改' + radio : '上架' + radio"
|
||||||
:visible.sync="showPutOnTheShelfFlag2"
|
:visible.sync="showPutOnTheShelfFlag2"
|
||||||
:close-on-click-modal='false'
|
:close-on-click-modal="false"
|
||||||
:close-on-press-escape='false'
|
:close-on-press-escape="false"
|
||||||
:destroy-on-close='true'
|
:destroy-on-close="true"
|
||||||
:before-close='clear'
|
:before-close="clear"
|
||||||
width="50%">
|
width="50%"
|
||||||
<putOnTheShelf :putOnTheShelfList='putOnTheShelfList' @changeInfoList='changeInfoList' :type='radio' :typeInput='typeInput'></putOnTheShelf>
|
>
|
||||||
|
<putOnTheShelf
|
||||||
|
:putOnTheShelfList="putOnTheShelfList"
|
||||||
|
@changeInfoList="changeInfoList"
|
||||||
|
:type="radio"
|
||||||
|
:typeInput="typeInput"
|
||||||
|
></putOnTheShelf>
|
||||||
<span slot="footer" class="dialog-footer">
|
<span slot="footer" class="dialog-footer">
|
||||||
<el-button @click="clear">取 消</el-button>
|
<el-button @click="clear">取 消</el-button>
|
||||||
<el-button type="primary" @click="submitData">确 定</el-button>
|
<el-button type="primary" @click="submitData">确 定</el-button>
|
||||||
|
@ -281,6 +299,19 @@ export default {
|
||||||
this.dataList = this.mixinViewModuleOptions.getDataListIsPage
|
this.dataList = this.mixinViewModuleOptions.getDataListIsPage
|
||||||
? res.data.list
|
? res.data.list
|
||||||
: res.data
|
: res.data
|
||||||
|
this.dataList.map((item, index) => {
|
||||||
|
const dataListSinforList = []
|
||||||
|
item.infoList.map((itemson, indexson) => {
|
||||||
|
if (
|
||||||
|
itemson.attrType === '部署位置' ||
|
||||||
|
itemson.attrType === '组件类型' ||
|
||||||
|
itemson.attrType === '应用领域'
|
||||||
|
) {
|
||||||
|
dataListSinforList.push(itemson)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.dataList[index].infoList = dataListSinforList
|
||||||
|
})
|
||||||
console.log('this.dataList', this.dataList)
|
console.log('this.dataList', this.dataList)
|
||||||
this.total = this.mixinViewModuleOptions.getDataListIsPage
|
this.total = this.mixinViewModuleOptions.getDataListIsPage
|
||||||
? res.data.total
|
? res.data.total
|
||||||
|
@ -353,6 +384,19 @@ export default {
|
||||||
this.mixinViewModuleOptions.requestCallback(res.data)
|
this.mixinViewModuleOptions.requestCallback(res.data)
|
||||||
}
|
}
|
||||||
this.dataListLoading = false
|
this.dataListLoading = false
|
||||||
|
this.dataList.map((item, index) => {
|
||||||
|
const dataListSinforList = []
|
||||||
|
item.infoList.map((itemson, indexson) => {
|
||||||
|
if (
|
||||||
|
itemson.attrType === '部署位置' ||
|
||||||
|
itemson.attrType === '组件类型' ||
|
||||||
|
itemson.attrType === '应用领域'
|
||||||
|
) {
|
||||||
|
dataListSinforList.push(itemson)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
this.dataList[index].infoList = dataListSinforList
|
||||||
|
})
|
||||||
} else {
|
} else {
|
||||||
this.$message.error('未查询到相关信息')
|
this.$message.error('未查询到相关信息')
|
||||||
this.reset()
|
this.reset()
|
||||||
|
@ -378,16 +422,21 @@ export default {
|
||||||
},
|
},
|
||||||
// 点击关联应用按钮
|
// 点击关联应用按钮
|
||||||
showRelateApplication (row) {
|
showRelateApplication (row) {
|
||||||
this.$http.get(`dataResourceRel/queryApplicationRelByResourceId?referenceId=${row.id}`).then(({ data: res }) => {
|
this.$http
|
||||||
if (res && res.data) {
|
.get(
|
||||||
this.relateApplicationVisible = true
|
`dataResourceRel/queryApplicationRelByResourceId?referenceId=${row.id}`
|
||||||
this.relateInfo = {
|
)
|
||||||
id: row.id,
|
.then(({ data: res }) => {
|
||||||
responseData: res.data,
|
if (res && res.data) {
|
||||||
linkType: '2'
|
this.relateApplicationVisible = true
|
||||||
|
this.relateInfo = {
|
||||||
|
id: row.id,
|
||||||
|
responseData: res.data,
|
||||||
|
linkType: '2'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
})
|
||||||
}).catch(() => { })
|
.catch(() => {})
|
||||||
},
|
},
|
||||||
// 是否展示关联应用弹窗
|
// 是否展示关联应用弹窗
|
||||||
handleIsShowRelatePopup (type) {
|
handleIsShowRelatePopup (type) {
|
||||||
|
@ -417,30 +466,44 @@ export default {
|
||||||
},
|
},
|
||||||
showPutOnTheShelf () {
|
showPutOnTheShelf () {
|
||||||
this.showPutOnTheShelfFlag = true
|
this.showPutOnTheShelfFlag = true
|
||||||
this.$http.get('/category/getCategoryTree').then(res => {
|
this.$http.get('/category/getCategoryTree').then((res) => {
|
||||||
this.insertList = res.data.data.filter(item => item.name === '组件服务一')[0]
|
this.insertList = res.data.data.filter(
|
||||||
|
(item) => item.name === '组件服务一'
|
||||||
|
)[0]
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
showPutOnTheShelfVue () {
|
showPutOnTheShelfVue () {
|
||||||
this.showPutOnTheShelfFlag = false
|
this.showPutOnTheShelfFlag = false
|
||||||
this.showPutOnTheShelfFlag2 = true
|
this.showPutOnTheShelfFlag2 = true
|
||||||
this.submitFrom.infoList[0].attrValue = this.radio
|
this.submitFrom.infoList[0].attrValue = this.radio
|
||||||
this.putOnTheShelfList = this.insertList.children.filter(item => item.name === this.radio)[0].children
|
this.putOnTheShelfList = this.insertList.children.filter(
|
||||||
|
(item) => item.name === this.radio
|
||||||
|
)[0].children
|
||||||
},
|
},
|
||||||
changeInfoList (obj) {
|
changeInfoList (obj) {
|
||||||
console.log(obj, this.submitFrom)
|
console.log(obj, this.submitFrom)
|
||||||
this.submitFrom.infoList = this.submitFrom.infoList.filter((item) => item.attrType !== obj.attrType)
|
this.submitFrom.infoList = this.submitFrom.infoList.filter(
|
||||||
|
(item) => item.attrType !== obj.attrType
|
||||||
|
)
|
||||||
this.submitFrom.infoList.push(obj)
|
this.submitFrom.infoList.push(obj)
|
||||||
},
|
},
|
||||||
submitData () {
|
submitData () {
|
||||||
console.log('提交11111111111===============>', this.putOnTheShelfList)
|
console.log('提交11111111111===============>', this.putOnTheShelfList)
|
||||||
const arr = []
|
const arr = []
|
||||||
this.putOnTheShelfList.map(item => {
|
this.putOnTheShelfList.map((item) => {
|
||||||
item.children.map(child => {
|
item.children.map((child) => {
|
||||||
if (child.children) {
|
if (child.children) {
|
||||||
if (child.name === '算法优势' || child.name === '应用场景' || child.name === '功能介绍') {
|
if (
|
||||||
|
child.name === '算法优势' ||
|
||||||
|
child.name === '应用场景' ||
|
||||||
|
child.name === '功能介绍'
|
||||||
|
) {
|
||||||
arr.push(child.name)
|
arr.push(child.name)
|
||||||
if (this.submitFrom.infoList.filter(value => value.attrType === child.name).length === 0) {
|
if (
|
||||||
|
this.submitFrom.infoList.filter(
|
||||||
|
(value) => value.attrType === child.name
|
||||||
|
).length === 0
|
||||||
|
) {
|
||||||
this.submitFrom.infoList.push({
|
this.submitFrom.infoList.push({
|
||||||
attrType: child.name,
|
attrType: child.name,
|
||||||
attrValue: child.note1,
|
attrValue: child.note1,
|
||||||
|
@ -448,10 +511,18 @@ export default {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
child.children.map(val => {
|
child.children.map((val) => {
|
||||||
arr.push(val.name)
|
arr.push(val.name)
|
||||||
if (val.type === 'input' || val.type === 'textArea' || val.type === 'select' || val.type === 'checkBox' || val.type === 'radio') {
|
if (
|
||||||
this.submitFrom.infoList = this.submitFrom.infoList.filter((item) => item.attrType !== val.name)
|
val.type === 'input' ||
|
||||||
|
val.type === 'textArea' ||
|
||||||
|
val.type === 'select' ||
|
||||||
|
val.type === 'checkBox' ||
|
||||||
|
val.type === 'radio'
|
||||||
|
) {
|
||||||
|
this.submitFrom.infoList = this.submitFrom.infoList.filter(
|
||||||
|
(item) => item.attrType !== val.name
|
||||||
|
)
|
||||||
}
|
}
|
||||||
if (val.note1) {
|
if (val.note1) {
|
||||||
switch (val.name) {
|
switch (val.name) {
|
||||||
|
@ -495,14 +566,22 @@ export default {
|
||||||
this.submitFrom.type = val.note1
|
this.submitFrom.type = val.note1
|
||||||
break
|
break
|
||||||
default:
|
default:
|
||||||
if (val.type !== 'image' && val.type !== 'file' && val.type !== 'video') {
|
if (
|
||||||
|
val.type !== 'image' &&
|
||||||
|
val.type !== 'file' &&
|
||||||
|
val.type !== 'video'
|
||||||
|
) {
|
||||||
this.submitFrom.infoList.push({
|
this.submitFrom.infoList.push({
|
||||||
attrType: val.name,
|
attrType: val.name,
|
||||||
attrValue: val.note1,
|
attrValue: val.note1,
|
||||||
delFlag: 0
|
delFlag: 0
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
if (this.submitFrom.infoList.filter(value => value.attrType === val.name).length === 0) {
|
if (
|
||||||
|
this.submitFrom.infoList.filter(
|
||||||
|
(value) => value.attrType === val.name
|
||||||
|
).length === 0
|
||||||
|
) {
|
||||||
this.submitFrom.infoList.push({
|
this.submitFrom.infoList.push({
|
||||||
attrType: val.name,
|
attrType: val.name,
|
||||||
attrValue: val.note1,
|
attrValue: val.note1,
|
||||||
|
@ -518,10 +597,12 @@ export default {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
this.submitFrom.infoList = this.submitFrom.infoList.sort((a, b) => arr.indexOf(a.attrType) - arr.indexOf(b.attrType))
|
this.submitFrom.infoList = this.submitFrom.infoList.sort(
|
||||||
|
(a, b) => arr.indexOf(a.attrType) - arr.indexOf(b.attrType)
|
||||||
|
)
|
||||||
if (this.submitFrom.id) {
|
if (this.submitFrom.id) {
|
||||||
// 解决编辑无组件类型
|
// 解决编辑无组件类型
|
||||||
this.submitFrom.infoList.map(val => {
|
this.submitFrom.infoList.map((val) => {
|
||||||
if (val.attrType === '组件类型') {
|
if (val.attrType === '组件类型') {
|
||||||
val.attrValue = this.radio
|
val.attrValue = this.radio
|
||||||
}
|
}
|
||||||
|
@ -529,11 +610,18 @@ export default {
|
||||||
console.log('编辑===============>', this.submitFrom)
|
console.log('编辑===============>', this.submitFrom)
|
||||||
console.log(this.submitFrom.infoList, '===============abc')
|
console.log(this.submitFrom.infoList, '===============abc')
|
||||||
// 去重
|
// 去重
|
||||||
const newArr = this.submitFrom.infoList.filter((element, index, self) => {
|
const newArr = this.submitFrom.infoList.filter(
|
||||||
return self.findIndex(x => x.attrType === element.attrType) === index
|
(element, index, self) => {
|
||||||
})
|
return (
|
||||||
|
self.findIndex((x) => x.attrType === element.attrType) === index
|
||||||
|
)
|
||||||
|
}
|
||||||
|
)
|
||||||
this.submitFrom.infoList = newArr
|
this.submitFrom.infoList = newArr
|
||||||
console.log(this.submitFrom.infoList, '====================================wpwpwp')
|
console.log(
|
||||||
|
this.submitFrom.infoList,
|
||||||
|
'====================================wpwpwp'
|
||||||
|
)
|
||||||
this.$http
|
this.$http
|
||||||
.put('/resource/update', this.submitFrom)
|
.put('/resource/update', this.submitFrom)
|
||||||
.then(({ data: res }) => {
|
.then(({ data: res }) => {
|
||||||
|
@ -561,22 +649,39 @@ export default {
|
||||||
},
|
},
|
||||||
// 新修改
|
// 新修改
|
||||||
UpdateData (item) {
|
UpdateData (item) {
|
||||||
this.$http.get('/category/getCategoryTree').then(res => {
|
this.$http.get('/category/getCategoryTree').then((res) => {
|
||||||
this.insertList = res.data.data.filter(item => item.name === '组件服务一')[0]
|
this.insertList = res.data.data.filter(
|
||||||
this.radio = item.infoList.filter(val => val.attrType === '组件类型')[0].attrValue
|
(item) => item.name === '组件服务一'
|
||||||
this.putOnTheShelfList = this.insertList.children.filter(item => item.name === this.radio)[0].children
|
)[0]
|
||||||
this.putOnTheShelfList.map(parent => {
|
this.radio = item.infoList.filter(
|
||||||
parent.children.map(child => {
|
(val) => val.attrType === '组件类型'
|
||||||
if (child.name === '算法优势' || child.name === '应用场景' || child.name === '功能介绍') {
|
)[0].attrValue
|
||||||
const obj = item.infoList.filter(val => val.attrType === child.name)[0]
|
this.putOnTheShelfList = this.insertList.children.filter(
|
||||||
|
(item) => item.name === this.radio
|
||||||
|
)[0].children
|
||||||
|
this.putOnTheShelfList.map((parent) => {
|
||||||
|
parent.children.map((child) => {
|
||||||
|
if (
|
||||||
|
child.name === '算法优势' ||
|
||||||
|
child.name === '应用场景' ||
|
||||||
|
child.name === '功能介绍'
|
||||||
|
) {
|
||||||
|
const obj = item.infoList.filter(
|
||||||
|
(val) => val.attrType === child.name
|
||||||
|
)[0]
|
||||||
if (obj) {
|
if (obj) {
|
||||||
child.note1 = obj.attrValue
|
child.note1 = obj.attrValue
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (child.children) {
|
if (child.children) {
|
||||||
child.children.map(data => {
|
child.children.map((data) => {
|
||||||
if (data.name === '计费标准信息' || data.name === '常见问题') {
|
if (
|
||||||
const obj = item.infoList.filter(val => val.attrType === child.name)[0]
|
data.name === '计费标准信息' ||
|
||||||
|
data.name === '常见问题'
|
||||||
|
) {
|
||||||
|
const obj = item.infoList.filter(
|
||||||
|
(val) => val.attrType === child.name
|
||||||
|
)[0]
|
||||||
if (obj) {
|
if (obj) {
|
||||||
data.note1 = obj.attrValue
|
data.note1 = obj.attrValue
|
||||||
}
|
}
|
||||||
|
@ -623,14 +728,22 @@ export default {
|
||||||
break
|
break
|
||||||
default:
|
default:
|
||||||
// eslint-disable-next-line no-case-declarations
|
// eslint-disable-next-line no-case-declarations
|
||||||
const obj1 = item.infoList.filter(val => val.attrType === data.name)[0]
|
const obj1 = item.infoList.filter(
|
||||||
|
(val) => val.attrType === data.name
|
||||||
|
)[0]
|
||||||
if (obj1) {
|
if (obj1) {
|
||||||
data.note1 = obj1.attrValue
|
data.note1 = obj1.attrValue
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
if (data.type === 'image' || data.type === 'file' || data.type === 'video') {
|
if (
|
||||||
const obj1 = item.infoList.filter(val => val.attrType === data.name)[0]
|
data.type === 'image' ||
|
||||||
|
data.type === 'file' ||
|
||||||
|
data.type === 'video'
|
||||||
|
) {
|
||||||
|
const obj1 = item.infoList.filter(
|
||||||
|
(val) => val.attrType === data.name
|
||||||
|
)[0]
|
||||||
if (obj1) {
|
if (obj1) {
|
||||||
data.note2 = obj1.note2
|
data.note2 = obj1.note2
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue