feat: 代码合并

main
wu.jian2 2 years ago
commit 8752b00770

@ -44,4 +44,9 @@ public class DatasetExtendServiceImpl implements IDatasetExtendService {
msg = msg.substring(0, msg.length() - 1);
return msg;
}
@Override
public String getServiceType() {
return "大屏";
}
}

@ -60,7 +60,7 @@
<clickhouse.version>0.3.2</clickhouse.version>
<commons-io.version>2.2</commons-io.version>
<okhttp3.version>4.9.1</okhttp3.version>
<dataset.core.version>1.0.1.2023080101.Alpha</dataset.core.version>
<dataset.core.version>1.0.1.2023080201.Alpha</dataset.core.version>
</properties>
<dependencyManagement>

@ -223,6 +223,7 @@
>
<el-input
v-model="dataForm.config.headers[index].key"
class="bs-el-input"
placeholder="请输入键"
clearable
@blur="dataForm.config.headers[index].key = inputChange($event)"
@ -239,6 +240,7 @@
<el-input
v-model="dataForm.config.headers[index].value"
placeholder="请输入值"
class="bs-el-input"
clearable
@blur="dataForm.config.headers[index].value = inputChange($event)"
/>
@ -296,6 +298,7 @@
>
<el-input
v-model="dataForm.config.params[index].key"
class="bs-el-input"
placeholder="请输入键"
clearable
@blur="dataForm.config.params[index].key = inputChange($event)"
@ -312,6 +315,7 @@
<el-input
v-model="dataForm.config.params[index].value"
placeholder="请输入值"
class="bs-el-input"
clearable
@blur="dataForm.config.params[index].value = inputChange($event)"
/>
@ -384,9 +388,21 @@
v-if="dataForm.config.requestType === 'frontend'"
class="bs-codemirror-bottom-text"
>
<strong>请求脚本设置规则 请求脚本已经内置参数req可参考请求拦截的回调参数config直接使用(修改url中的参数例外),
<strong>请求脚本设置规则 请求脚本已经内置参数req可参考下面的示例进行配置:
<br> 如修改url中对应参数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: red;">req.url.age=17</span>
<br> 如修改请求头中对应参数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: red;">req.headers.name='tom'</span>
<br> 如修改url中对应参数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: red;">req.urlKey.age=17</span>
<br> 如修改请求参数中对应参数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: red;">req.params.age=17</span>
<br> 如修改请求体中对应参数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: red;">req.data.test='test'</span>
</strong>
</div>
<div
v-else
class="bs-codemirror-bottom-text"
>
<strong>请求脚本设置规则 请求脚本已经内置参数:请求头headers对象类型请求参数params对象类型请求体body字符串类型注意如果body有修改必须在脚本最后将字符串body返回可参考下面的示例进行配置:
<br> 如修改请求头中对应参数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: red;">headers.name='tom'</span>
<br> 如修改请求参数中对应参数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: red;">params.age=17</span>
<br> 如修改请求体中对应参数&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: red;">body='XXXX'</span>
</strong>
</div>
</el-form-item>
@ -412,6 +428,14 @@
<strong>响应脚本设置规则 接口返回数据已经内置到参数response中可直接使用,但是必须要返回设置后的数据<br> 例如<span style="color: red;">let data =response.data; return data;</span>
</strong>
</div>
<div
v-else
class="bs-codemirror-bottom-text"
>
<strong>响应脚本设置规则 接口返回数据已经内置到参数responseString(已转为字符串),如果需要处理成JSON格式推荐使用JsoonSlurper类
<br> 例如<span style="color: red;"></span>
</strong>
</div>
</el-form-item>
</el-tab-pane>
</el-tabs>
@ -441,7 +465,7 @@
<el-button
type="text"
style="float: right;border: none;margin-top: -4px;"
@click="$refs.paramsSettingDialog.open()"
@click="openParamsSetDialog(false)"
>
配置
</el-button>
@ -451,7 +475,7 @@
v-for="param in dataForm.config.paramsList"
:key="param.name"
class="field-item"
@click="$refs.paramsSettingDialog.open()"
@click="openParamsSetDialog(false)"
>
<span>{{ param.name }}</span>&nbsp;<span
v-show="param.remark"
@ -463,7 +487,7 @@
class="edit_field"
type="text"
style="float: right;border: none;margin-top: 2px;"
@click="$refs.paramsSettingDialog.open()"
@click="openParamsSetDialog(false)"
>
配置
</el-button>
@ -624,6 +648,7 @@
@saveParams="saveParams"
@saveNewParams="saveNewParams"
@getData="getData"
@getPramsList="getPramsList"
/>
<OutputFieldDialog
ref="outputFieldDialog"
@ -642,7 +667,7 @@
<script>
import LabelSelect from 'data-room-ui/DataSetLabelManagement/src/LabelSelect.vue'
import ParamsSettingDialog from './JsComponents/ParamsSettingDialog.vue'
import ParamsSettingDialog from './HttpParamsSettingDialog.vue'
import OutputFieldDialog from './JsComponents/OutputFieldDialog.vue'
import FieldFillDialog from './JsComponents/FieldFillDialog.vue'
import { nameCheckRepeat, datasetAdd, datasetUpdate, getDataset, getCategoryTree, datasetExecuteTest } from 'data-room-ui/js/utils/datasetConfigService'
@ -908,7 +933,6 @@ export default {
this.dataForm.config.params.splice(index, 1)
},
saveParams (val) {
debugger
this.dataForm.config.paramsList = val
},
saveNewParams (val) {
@ -975,6 +999,14 @@ export default {
})
this.fieldDesc = fieldDesc
},
//
async openParamsSetDialog (isUpdate) {
this.getPramsList()
const oldList = _.cloneDeep(this.dataForm.config.paramsList)
this.newParamsList = this.compareParamsList(this.newParamsList, oldList)
await this.$nextTick()
this.$refs.paramsSettingDialog.open(isUpdate)
},
//
getPramsList () {
const paramNames1 = this.getValName(this.dataForm.config.url)
@ -994,13 +1026,40 @@ export default {
type: 'String',
value: '',
status: 1,
require: 1,
require: 0,
remark: ''
})
}
})
this.dataForm.config.paramsList = _.cloneDeep(params)
},
//
compareParamsList (newList, oldList) {
//
const result = []
// A
for (const objA of oldList) {
let found = false // B
// B
for (const objB of newList) {
if (objA.name === objB.name) {
// ABfieldNameBA
objA.value = objB.value
result.push(objA)
found = true
break
}
}
// B
if (!found) {
result.push(objA)
}
}
return result
},
// ${}
getValName (str) {
//
@ -1015,12 +1074,13 @@ export default {
},
//
scriptExecute (isInit = false) {
this.getPramsList()
// this.getPramsList()
// this.newParamsList = this.compareParamsList(this.newParamsList, this.dataForm.config.paramsList)
//
// const flag = this.dataForm.config.paramsList.some(item => !item.value)
//
if (this.dataForm.config.paramsList && this.dataForm.config.paramsList.length && !isInit) {
this.$refs.paramsSettingDialog.open(true)
this.openParamsSetDialog(true)
} else {
this.getData()
}
@ -1098,6 +1158,7 @@ export default {
}
return result
},
//
clearType () {
this.typeName = ''
@ -1303,4 +1364,58 @@ export default {
.preview-table{
max-height: 300px!important;
}
///* */
///deep/.el-table__body-wrapper::-webkit-scrollbar {
// width: 4px; /* */
//}
//
///deep/.el-table__body-wrapper::-webkit-scrollbar-thumb {
// background-color: #000; /* */
//}
//
///deep/.el-table__body-wrapper::-webkit-scrollbar-thumb:hover {
// background-color: #555; /* */
//}
//
///deep/.el-table__body-wrapper::-webkit-scrollbar-track {
// background-color: #000; /* */
//}
//
// .el-table__body-wrapper::-webkit-scrollbar {
// width: 6px!important; //
// height: 6px!important; //
//}
////
// .el-table__body-wrapper::-webkit-scrollbar-thumb {
// background-color: #ddd!important;
// border-radius: 3px!important;
//}
.el-table__body-wrapper::-webkit-scrollbar {
display: block;
width: 16px; /*滚动条宽度*/
height: 16px; /*滚动条高度*/
}
/*定义滚动条轨道 内阴影+圆角*/
//.el-table__body-wrapper::-webkit-scrollbar-track {
// box-shadow: 0px 1px 3px #292c34 inset; /**/
// // border-radius: 10px; /**/
// background-color: #292c34; /**/
//}
///* +*/
//.el-table__body-wrapper::-webkit-scrollbar-thumb {
// box-shadow: 0px 1px 3px #494d5b inset; /**/
// border-radius: 10px; /**/
// background-color: #494d5b; /**/
// border: 5px solid #292c34;
//}
/*滚动条样式*/
::v-deep ::-webkit-scrollbar {
width: 4px;
border-radius: 4px;
height: 4px;
}
::v-deep ::-webkit-scrollbar-thumb {
background: #fff !important;
border-radius: 10px;
}
</style>

@ -0,0 +1,207 @@
<template>
<div>
<el-dialog
title="参数配置"
:visible.sync="dialogVisible"
width="1000px"
append-to-body
:close-on-click-modal="false"
:before-close="handleClose"
class="bs-dialog-wrap bs-el-dialog"
>
<el-form
ref="form"
:model="form"
:rules="formRules"
>
<div class="bs-table-box">
<el-table
ref="singleTable"
:data="form.params"
:border="true"
align="center"
class="bs-el-table"
>
<el-empty slot="empty" />
<el-table-column
prop="name"
label="参数名称"
align="center"
>
<template slot-scope="scope">
<el-input
v-model="scope.row.name"
class="bs-el-input"
placeholder="请输入名称"
clearable
readonly
@change="checkParamsName(scope.row)"
/>
</template>
</el-table-column>
<el-table-column
prop="require"
label="是否必填"
align="center"
width="200"
filterable
>
<template slot-scope="scope">
<el-radio-group
v-model="scope.row.require"
:disabled="isUpdate"
>
<el-radio :label="1">
</el-radio>
<el-radio :label="0">
</el-radio>
</el-radio-group>
</template>
</el-table-column>
<el-table-column
prop="value"
label="参数值"
align="center"
>
<template slot-scope="scope">
<el-date-picker
v-if="scope.row.type === 'Date'"
v-model="scope.row.value"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
placeholder="选择日期时间"
/>
<el-form-item
v-else
:prop="'params.' + scope.$index + '.value'"
:rules="scope.row.require ?formRules.value:null"
>
<el-input
v-model="scope.row.value"
class="bs-el-input"
clearable
placeholder="请输入值"
/>
</el-form-item>
</template>
</el-table-column>
<el-table-column
prop="remark"
label="备注"
align="center"
>
<template slot-scope="scope">
<el-input
v-model="scope.row.remark"
clearable
class="bs-el-input"
placeholder="请输入备注"
rows="2"
:readonly="isUpdate"
maxlength="200"
/>
</template>
</el-table-column>
</el-table>
</div>
</el-form>
<span
slot="footer"
class="dialog-footer"
>
<el-button
class="bs-el-button-default"
@click="cancel"
>
取消
</el-button>
<el-button
type="primary"
@click="confirm"
>
确定
</el-button>
</span>
</el-dialog>
</div>
</template>
<script>
import { cloneDeep } from 'lodash'
export default {
name: 'HttpParamsSettingDialog.vue',
props: {
paramsList: {
type: Array,
default: () => []
},
newParamsList: {
type: Array,
default: () => []
}
},
data () {
return {
isUpdate: false,
dialogVisible: false,
form: {
params: []
},
formRules: {
value: [{ required: true, message: '参数值不能为空', trigger: 'blur' }]
}
}
},
methods: {
open (isUpdate = false) {
this.$emit('getPramsList')
if (isUpdate) {
this.form.params = this.newParamsList
} else {
this.form.params = cloneDeep(this.paramsList)
}
this.isUpdate = isUpdate
this.dialogVisible = true
},
close () {
this.$refs.form.clearValidate()//
this.dialogVisible = false
},
handleClose () {
this.$refs.form.clearValidate() //
this.dialogVisible = false
},
checkParamsName (value) {
const checkList = this.form.params.filter(item => item.fieldName === value.name)
if (checkList.length) {
this.$message.warning('参数名称不可以与字段名相同!')
value.name = ''
}
},
cancel () {
this.$refs.form.clearValidate() //
this.dialogVisible = false
},
confirm () {
this.$refs.form.validate((valid) => {
if (valid) {
if (!this.isUpdate) {
this.$emit('saveParams', cloneDeep(this.form.params))
} else {
console.log(this.form.params)
this.$emit('saveNewParams', cloneDeep(this.form.params))
}
this.$emit('getData')
this.dialogVisible = false
}
})
}
}
}
</script>
<style lang="scss" scoped>
@import '../../assets/style/bsTheme.scss';
</style>

@ -29,6 +29,7 @@
class="bs-el-input"
placeholder="请输入名称"
clearable
readonly
@change="checkParamsName(scope.row)"
/>
</template>
@ -66,6 +67,7 @@
<template slot-scope="scope">
<el-radio-group
v-model="scope.row.require"
:disabled="isUpdate"
class="bs-el-radio-group"
>
<el-radio :label="1">
@ -111,6 +113,7 @@
class="bs-el-input"
placeholder="请输入备注"
rows="2"
:readonly="isUpdate"
maxlength="200"
/>
</template>
@ -187,8 +190,9 @@ export default {
},
methods: {
open (isUpdate = false) {
this.$emit('getPramsList')
if (isUpdate) {
this.params = cloneDeep(this.newParamsList)
this.params = this.newParamsList
} else {
this.params = cloneDeep(this.paramsList)
}
@ -212,17 +216,10 @@ export default {
this.dialogVisible = false
},
confirm () {
if (!this.isUpdate) {
this.$emit('saveParams', cloneDeep(this.params))
} else {
console.log(this.params)
this.$emit('saveNewParams', cloneDeep(this.params))
}
this.$emit('getData')
this.$emit('saveParams', cloneDeep(this.params))
this.dialogVisible = false
}
}
}
</script>

Loading…
Cancel
Save