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); msg = msg.substring(0, msg.length() - 1);
return msg; return msg;
} }
@Override
public String getServiceType() {
return "大屏";
}
} }

@ -60,7 +60,7 @@
<clickhouse.version>0.3.2</clickhouse.version> <clickhouse.version>0.3.2</clickhouse.version>
<commons-io.version>2.2</commons-io.version> <commons-io.version>2.2</commons-io.version>
<okhttp3.version>4.9.1</okhttp3.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> </properties>
<dependencyManagement> <dependencyManagement>

@ -223,6 +223,7 @@
> >
<el-input <el-input
v-model="dataForm.config.headers[index].key" v-model="dataForm.config.headers[index].key"
class="bs-el-input"
placeholder="请输入键" placeholder="请输入键"
clearable clearable
@blur="dataForm.config.headers[index].key = inputChange($event)" @blur="dataForm.config.headers[index].key = inputChange($event)"
@ -239,6 +240,7 @@
<el-input <el-input
v-model="dataForm.config.headers[index].value" v-model="dataForm.config.headers[index].value"
placeholder="请输入值" placeholder="请输入值"
class="bs-el-input"
clearable clearable
@blur="dataForm.config.headers[index].value = inputChange($event)" @blur="dataForm.config.headers[index].value = inputChange($event)"
/> />
@ -296,6 +298,7 @@
> >
<el-input <el-input
v-model="dataForm.config.params[index].key" v-model="dataForm.config.params[index].key"
class="bs-el-input"
placeholder="请输入键" placeholder="请输入键"
clearable clearable
@blur="dataForm.config.params[index].key = inputChange($event)" @blur="dataForm.config.params[index].key = inputChange($event)"
@ -312,6 +315,7 @@
<el-input <el-input
v-model="dataForm.config.params[index].value" v-model="dataForm.config.params[index].value"
placeholder="请输入值" placeholder="请输入值"
class="bs-el-input"
clearable clearable
@blur="dataForm.config.params[index].value = inputChange($event)" @blur="dataForm.config.params[index].value = inputChange($event)"
/> />
@ -384,9 +388,21 @@
v-if="dataForm.config.requestType === 'frontend'" v-if="dataForm.config.requestType === 'frontend'"
class="bs-codemirror-bottom-text" 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> 如修改请求头中对应参数&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> </strong>
</div> </div>
</el-form-item> </el-form-item>
@ -412,6 +428,14 @@
<strong>响应脚本设置规则 接口返回数据已经内置到参数response中可直接使用,但是必须要返回设置后的数据<br> 例如<span style="color: red;">let data =response.data; return data;</span> <strong>响应脚本设置规则 接口返回数据已经内置到参数response中可直接使用,但是必须要返回设置后的数据<br> 例如<span style="color: red;">let data =response.data; return data;</span>
</strong> </strong>
</div> </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-form-item>
</el-tab-pane> </el-tab-pane>
</el-tabs> </el-tabs>
@ -441,7 +465,7 @@
<el-button <el-button
type="text" type="text"
style="float: right;border: none;margin-top: -4px;" style="float: right;border: none;margin-top: -4px;"
@click="$refs.paramsSettingDialog.open()" @click="openParamsSetDialog(false)"
> >
配置 配置
</el-button> </el-button>
@ -451,7 +475,7 @@
v-for="param in dataForm.config.paramsList" v-for="param in dataForm.config.paramsList"
:key="param.name" :key="param.name"
class="field-item" class="field-item"
@click="$refs.paramsSettingDialog.open()" @click="openParamsSetDialog(false)"
> >
<span>{{ param.name }}</span>&nbsp;<span <span>{{ param.name }}</span>&nbsp;<span
v-show="param.remark" v-show="param.remark"
@ -463,7 +487,7 @@
class="edit_field" class="edit_field"
type="text" type="text"
style="float: right;border: none;margin-top: 2px;" style="float: right;border: none;margin-top: 2px;"
@click="$refs.paramsSettingDialog.open()" @click="openParamsSetDialog(false)"
> >
配置 配置
</el-button> </el-button>
@ -624,6 +648,7 @@
@saveParams="saveParams" @saveParams="saveParams"
@saveNewParams="saveNewParams" @saveNewParams="saveNewParams"
@getData="getData" @getData="getData"
@getPramsList="getPramsList"
/> />
<OutputFieldDialog <OutputFieldDialog
ref="outputFieldDialog" ref="outputFieldDialog"
@ -642,7 +667,7 @@
<script> <script>
import LabelSelect from 'data-room-ui/DataSetLabelManagement/src/LabelSelect.vue' 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 OutputFieldDialog from './JsComponents/OutputFieldDialog.vue'
import FieldFillDialog from './JsComponents/FieldFillDialog.vue' import FieldFillDialog from './JsComponents/FieldFillDialog.vue'
import { nameCheckRepeat, datasetAdd, datasetUpdate, getDataset, getCategoryTree, datasetExecuteTest } from 'data-room-ui/js/utils/datasetConfigService' 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) this.dataForm.config.params.splice(index, 1)
}, },
saveParams (val) { saveParams (val) {
debugger
this.dataForm.config.paramsList = val this.dataForm.config.paramsList = val
}, },
saveNewParams (val) { saveNewParams (val) {
@ -975,6 +999,14 @@ export default {
}) })
this.fieldDesc = fieldDesc 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 () { getPramsList () {
const paramNames1 = this.getValName(this.dataForm.config.url) const paramNames1 = this.getValName(this.dataForm.config.url)
@ -994,13 +1026,40 @@ export default {
type: 'String', type: 'String',
value: '', value: '',
status: 1, status: 1,
require: 1, require: 0,
remark: '' remark: ''
}) })
} }
}) })
this.dataForm.config.paramsList = _.cloneDeep(params) 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) { getValName (str) {
// //
@ -1015,12 +1074,13 @@ export default {
}, },
// //
scriptExecute (isInit = false) { 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) // const flag = this.dataForm.config.paramsList.some(item => !item.value)
// //
if (this.dataForm.config.paramsList && this.dataForm.config.paramsList.length && !isInit) { if (this.dataForm.config.paramsList && this.dataForm.config.paramsList.length && !isInit) {
this.$refs.paramsSettingDialog.open(true) this.openParamsSetDialog(true)
} else { } else {
this.getData() this.getData()
} }
@ -1098,6 +1158,7 @@ export default {
} }
return result return result
}, },
// //
clearType () { clearType () {
this.typeName = '' this.typeName = ''
@ -1303,4 +1364,58 @@ export default {
.preview-table{ .preview-table{
max-height: 300px!important; 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> </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" class="bs-el-input"
placeholder="请输入名称" placeholder="请输入名称"
clearable clearable
readonly
@change="checkParamsName(scope.row)" @change="checkParamsName(scope.row)"
/> />
</template> </template>
@ -66,6 +67,7 @@
<template slot-scope="scope"> <template slot-scope="scope">
<el-radio-group <el-radio-group
v-model="scope.row.require" v-model="scope.row.require"
:disabled="isUpdate"
class="bs-el-radio-group" class="bs-el-radio-group"
> >
<el-radio :label="1"> <el-radio :label="1">
@ -111,6 +113,7 @@
class="bs-el-input" class="bs-el-input"
placeholder="请输入备注" placeholder="请输入备注"
rows="2" rows="2"
:readonly="isUpdate"
maxlength="200" maxlength="200"
/> />
</template> </template>
@ -187,8 +190,9 @@ export default {
}, },
methods: { methods: {
open (isUpdate = false) { open (isUpdate = false) {
this.$emit('getPramsList')
if (isUpdate) { if (isUpdate) {
this.params = cloneDeep(this.newParamsList) this.params = this.newParamsList
} else { } else {
this.params = cloneDeep(this.paramsList) this.params = cloneDeep(this.paramsList)
} }
@ -212,17 +216,10 @@ export default {
this.dialogVisible = false this.dialogVisible = false
}, },
confirm () { confirm () {
if (!this.isUpdate) { this.$emit('saveParams', cloneDeep(this.params))
this.$emit('saveParams', cloneDeep(this.params))
} else {
console.log(this.params)
this.$emit('saveNewParams', cloneDeep(this.params))
}
this.$emit('getData')
this.dialogVisible = false this.dialogVisible = false
} }
} }
} }
</script> </script>

Loading…
Cancel
Save