Compare commits
No commits in common. "f0d7ca4f3918ab76fd1b6a5e01d2b5601fca265e" and "209183ec29b47fb48948a1bd379760c95b453e06" have entirely different histories.
f0d7ca4f39
...
209183ec29
|
@ -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,7 +28,9 @@
|
||||||
>
|
>
|
||||||
</el-form-item> -->
|
</el-form-item> -->
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button type="primary" @click="showPutOnTheShelf()"
|
<el-button
|
||||||
|
type="primary"
|
||||||
|
@click="showPutOnTheShelf()"
|
||||||
>上架</el-button
|
>上架</el-button
|
||||||
>
|
>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
@ -37,7 +39,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>
|
||||||
|
@ -76,7 +78,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"
|
||||||
|
@ -108,14 +110,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
|
||||||
|
@ -123,12 +125,7 @@
|
||||||
<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
|
<el-button type="text" size="small" @click="showRelateApplication(scope.row)">关联应用</el-button>
|
||||||
type="text"
|
|
||||||
size="small"
|
|
||||||
@click="showRelateApplication(scope.row)"
|
|
||||||
>关联应用</el-button
|
|
||||||
>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
</el-table>
|
</el-table>
|
||||||
|
@ -149,48 +146,33 @@
|
||||||
ref="addOrUpdate"
|
ref="addOrUpdate"
|
||||||
@refreshDataList="getDataList"
|
@refreshDataList="getDataList"
|
||||||
></add-or-update>
|
></add-or-update>
|
||||||
<relate-application
|
<relate-application v-if="relateApplicationVisible" ref="relateApplication" :nameArray="['未关联应用名称', '已关联应用名称']" :relateInfo="relateInfo" @isShowRelatePopup="handleIsShowRelatePopup"></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 type="primary" @click="showPutOnTheShelfVue">确 定</el-button>
|
||||||
>确 定</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>
|
||||||
|
@ -299,19 +281,6 @@ 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
|
||||||
|
@ -386,19 +355,6 @@ 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()
|
||||||
|
@ -424,21 +380,16 @@ export default {
|
||||||
},
|
},
|
||||||
// 点击关联应用按钮
|
// 点击关联应用按钮
|
||||||
showRelateApplication (row) {
|
showRelateApplication (row) {
|
||||||
this.$http
|
this.$http.get(`dataResourceRel/queryApplicationRelByResourceId?referenceId=${row.id}`).then(({ data: res }) => {
|
||||||
.get(
|
if (res && res.data) {
|
||||||
`dataResourceRel/queryApplicationRelByResourceId?referenceId=${row.id}`
|
this.relateApplicationVisible = true
|
||||||
)
|
this.relateInfo = {
|
||||||
.then(({ data: res }) => {
|
id: row.id,
|
||||||
if (res && res.data) {
|
responseData: res.data,
|
||||||
this.relateApplicationVisible = true
|
linkType: '2'
|
||||||
this.relateInfo = {
|
|
||||||
id: row.id,
|
|
||||||
responseData: res.data,
|
|
||||||
linkType: '2'
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
})
|
}
|
||||||
.catch(() => {})
|
}).catch(() => { })
|
||||||
},
|
},
|
||||||
// 是否展示关联应用弹窗
|
// 是否展示关联应用弹窗
|
||||||
handleIsShowRelatePopup (type) {
|
handleIsShowRelatePopup (type) {
|
||||||
|
@ -468,44 +419,30 @@ 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(
|
this.insertList = res.data.data.filter(item => item.name === '组件服务一')[0]
|
||||||
(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(
|
this.putOnTheShelfList = this.insertList.children.filter(item => item.name === this.radio)[0].children
|
||||||
(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(
|
this.submitFrom.infoList = this.submitFrom.infoList.filter((item) => item.attrType !== obj.attrType)
|
||||||
(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 (
|
if (child.name === '算法优势' || child.name === '应用场景' || child.name === '功能介绍') {
|
||||||
child.name === '算法优势' ||
|
|
||||||
child.name === '应用场景' ||
|
|
||||||
child.name === '功能介绍'
|
|
||||||
) {
|
|
||||||
arr.push(child.name)
|
arr.push(child.name)
|
||||||
if (
|
if (this.submitFrom.infoList.filter(value => value.attrType === child.name).length === 0) {
|
||||||
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,
|
||||||
|
@ -513,18 +450,10 @@ export default {
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
child.children.map((val) => {
|
child.children.map(val => {
|
||||||
arr.push(val.name)
|
arr.push(val.name)
|
||||||
if (
|
if (val.type === 'input' || val.type === 'textArea' || val.type === 'select' || val.type === 'checkBox' || val.type === 'radio') {
|
||||||
val.type === 'input' ||
|
this.submitFrom.infoList = this.submitFrom.infoList.filter((item) => item.attrType !== val.name)
|
||||||
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) {
|
||||||
|
@ -568,22 +497,14 @@ export default {
|
||||||
this.submitFrom.type = val.note1
|
this.submitFrom.type = val.note1
|
||||||
break
|
break
|
||||||
default:
|
default:
|
||||||
if (
|
if (val.type !== 'image' && val.type !== 'file' && val.type !== 'video') {
|
||||||
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 (
|
if (this.submitFrom.infoList.filter(value => value.attrType === val.name).length === 0) {
|
||||||
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,
|
||||||
|
@ -599,12 +520,10 @@ export default {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
this.submitFrom.infoList = this.submitFrom.infoList.sort(
|
this.submitFrom.infoList = this.submitFrom.infoList.sort((a, b) => arr.indexOf(a.attrType) - arr.indexOf(b.attrType))
|
||||||
(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
|
||||||
}
|
}
|
||||||
|
@ -612,18 +531,11 @@ 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(
|
const newArr = this.submitFrom.infoList.filter((element, index, self) => {
|
||||||
(element, index, self) => {
|
return self.findIndex(x => x.attrType === element.attrType) === index
|
||||||
return (
|
})
|
||||||
self.findIndex((x) => x.attrType === element.attrType) === index
|
|
||||||
)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
this.submitFrom.infoList = newArr
|
this.submitFrom.infoList = newArr
|
||||||
console.log(
|
console.log(this.submitFrom.infoList, '====================================wpwpwp')
|
||||||
this.submitFrom.infoList,
|
|
||||||
'====================================wpwpwp'
|
|
||||||
)
|
|
||||||
this.$http
|
this.$http
|
||||||
.put('/resource/update', this.submitFrom)
|
.put('/resource/update', this.submitFrom)
|
||||||
.then(({ data: res }) => {
|
.then(({ data: res }) => {
|
||||||
|
@ -651,39 +563,22 @@ 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(
|
this.insertList = res.data.data.filter(item => item.name === '组件服务一')[0]
|
||||||
(item) => item.name === '组件服务一'
|
this.radio = item.infoList.filter(val => val.attrType === '组件类型')[0].attrValue
|
||||||
)[0]
|
this.putOnTheShelfList = this.insertList.children.filter(item => item.name === this.radio)[0].children
|
||||||
this.radio = item.infoList.filter(
|
this.putOnTheShelfList.map(parent => {
|
||||||
(val) => val.attrType === '组件类型'
|
parent.children.map(child => {
|
||||||
)[0].attrValue
|
if (child.name === '算法优势' || child.name === '应用场景' || child.name === '功能介绍') {
|
||||||
this.putOnTheShelfList = this.insertList.children.filter(
|
const obj = item.infoList.filter(val => val.attrType === child.name)[0]
|
||||||
(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 (
|
if (data.name === '计费标准信息' || data.name === '常见问题') {
|
||||||
data.name === '计费标准信息' ||
|
const obj = item.infoList.filter(val => val.attrType === child.name)[0]
|
||||||
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
|
||||||
}
|
}
|
||||||
|
@ -730,22 +625,14 @@ 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(
|
const obj1 = item.infoList.filter(val => val.attrType === data.name)[0]
|
||||||
(val) => val.attrType === data.name
|
|
||||||
)[0]
|
|
||||||
if (obj1) {
|
if (obj1) {
|
||||||
data.note1 = obj1.attrValue
|
data.note1 = obj1.attrValue
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
if (
|
if (data.type === 'image' || data.type === 'file' || data.type === 'video') {
|
||||||
data.type === 'image' ||
|
const obj1 = item.infoList.filter(val => val.attrType === data.name)[0]
|
||||||
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