|
@@ -1,6 +1,6 @@
|
|
|
<script setup lang="ts">
|
|
|
-import {defineExpose, ref, h} from 'vue'
|
|
|
-import {elComponent} from "../../../components/query-components/page-help";
|
|
|
+import {defineExpose, ref, h, nextTick, onMounted} from 'vue'
|
|
|
+import {elComponent, interFaced, pageHelpMitt} from "../../../components/query-components/page-help";
|
|
|
import {useVModel} from "@vueuse/core";
|
|
|
import {bindType, componentType, CompType, headerType} from "../../../components/query-components/page-help-type";
|
|
|
import XEUtils from "xe-utils";
|
|
@@ -27,10 +27,6 @@ const editComp = (data: headerType) => {
|
|
|
show.value = true
|
|
|
}
|
|
|
|
|
|
-const setShow = (val) => {
|
|
|
- show.value = val
|
|
|
-}
|
|
|
-
|
|
|
const selectRender = (data: bindType, key) => {
|
|
|
let optionList = [];
|
|
|
data.selectData?.forEach(item => {
|
|
@@ -134,20 +130,9 @@ const test = (value, el) => {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-const interFaced = {
|
|
|
- 创智中台: () => {
|
|
|
- return 'data.rows'
|
|
|
- },
|
|
|
- 工作集成平台: () => {
|
|
|
- return 'data.data'
|
|
|
- },
|
|
|
- 其他: () => {
|
|
|
- return ''
|
|
|
- }
|
|
|
-}
|
|
|
|
|
|
const changeInterFaced = (val) => {
|
|
|
- dataVal.value.networkRequests.returnsVolumeResolutionDetail = interFaced[val]()
|
|
|
+ dataVal.value.networkRequests.returnsVolumeResolutionDetail = interFaced[val]
|
|
|
}
|
|
|
|
|
|
const dateDefaultValue = [
|
|
@@ -156,16 +141,22 @@ const dateDefaultValue = [
|
|
|
{code: '3', name: '本月'},
|
|
|
]
|
|
|
|
|
|
+onMounted(() => {
|
|
|
+ pageHelpMitt.on('setShow', async (val) => {
|
|
|
+ show.value = val
|
|
|
+ await nextTick()
|
|
|
+ return 'change'
|
|
|
+ })
|
|
|
+})
|
|
|
+
|
|
|
|
|
|
defineExpose({
|
|
|
editComp,
|
|
|
- setShow
|
|
|
})
|
|
|
|
|
|
</script>
|
|
|
|
|
|
<template>
|
|
|
-
|
|
|
<el-dialog v-model="interfaceDisplay.dialog" title="接口测试">
|
|
|
<div>
|
|
|
<JsonViewer :value="interfaceDisplay.data"
|
|
@@ -173,163 +164,173 @@ defineExpose({
|
|
|
:expandDepth="3"/>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
+ <template v-if="show">
|
|
|
+ <el-form label-width="80px">
|
|
|
+ <el-divider content-position="center">
|
|
|
+ 基本设置
|
|
|
+ </el-divider>
|
|
|
|
|
|
- <el-form label-width="80px" v-if="show">
|
|
|
-
|
|
|
- <el-divider content-position="center">
|
|
|
- 基本设置
|
|
|
- </el-divider>
|
|
|
-
|
|
|
- <el-form-item label="唯一名称 ">
|
|
|
- <el-input v-model="dataVal.key"/>
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="前缀">
|
|
|
- <el-input v-model="dataVal['label']"/>
|
|
|
- </el-form-item>
|
|
|
+ <el-form-item label="唯一名称 ">
|
|
|
+ <el-input v-model.trim="dataVal.key"/>
|
|
|
+ </el-form-item>
|
|
|
|
|
|
- <el-form-item label="默认值"
|
|
|
- v-if="!isSelect() && !isSelectV2() && !isDateRange()">
|
|
|
- <el-input
|
|
|
- v-model="dataVal.defaultValue"
|
|
|
- v-if="XEUtils.isString(dataVal.defaultValue)"
|
|
|
- />
|
|
|
- <el-input-number v-model="dataVal.defaultValue"
|
|
|
- v-if="XEUtils.isNumber(dataVal.defaultValue)"/>
|
|
|
+ <el-form-item label="数据类型">
|
|
|
+ <el-select v-model="data.keyType">
|
|
|
+ <el-option label="字符" value="string"/>
|
|
|
+ <el-option label="数字" value="number"/>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
|
|
|
- </el-form-item>
|
|
|
+ <el-form-item label="前缀">
|
|
|
+ <el-input v-model="dataVal['label']"/>
|
|
|
+ </el-form-item>
|
|
|
|
|
|
- <el-form-item label="必填">
|
|
|
- <el-switch v-model="dataVal.required"/>
|
|
|
- </el-form-item>
|
|
|
+ <el-form-item label="默认值"
|
|
|
+ v-if="!isSelect() && !isSelectV2() && !isDateRange()">
|
|
|
+ <el-input
|
|
|
+ v-model.trim="dataVal.defaultValue"
|
|
|
+ v-if="XEUtils.isString(dataVal.defaultValue)"
|
|
|
+ />
|
|
|
+ <el-input-number v-model="dataVal.defaultValue"
|
|
|
+ v-if="XEUtils.isNumber(dataVal.defaultValue)"/>
|
|
|
|
|
|
- <el-form-item label="宽度:">
|
|
|
- <el-input v-model="dataVal.bind.style.width"/>
|
|
|
- </el-form-item>
|
|
|
+ </el-form-item>
|
|
|
|
|
|
+ <el-form-item label="必填">
|
|
|
+ <el-switch v-model="dataVal.required"/>
|
|
|
+ </el-form-item>
|
|
|
|
|
|
- <template v-if="comp.bind">
|
|
|
- <el-divider content-position="center">
|
|
|
- 内置信息
|
|
|
- </el-divider>
|
|
|
+ <el-form-item label="宽度:">
|
|
|
+ <el-input v-model="dataVal.bind.style.width"/>
|
|
|
+ </el-form-item>
|
|
|
|
|
|
- <template v-for="(item,key) in comp.bind">
|
|
|
- <el-form-item :label="item.label + ':'">
|
|
|
- <component :is="bindRendering(item,key)" @change=" (value) =>{test(value,item )}"/>
|
|
|
- </el-form-item>
|
|
|
- </template>
|
|
|
|
|
|
- <template v-if="isSelect()">
|
|
|
+ <template v-if="comp.bind">
|
|
|
<el-divider content-position="center">
|
|
|
内置信息
|
|
|
</el-divider>
|
|
|
- <div style="max-height: 200px; overflow-y: auto">
|
|
|
- <template v-if="dataVal.bind.multiple">
|
|
|
- <el-checkbox-group v-model="dataVal.defaultValue">
|
|
|
- <template v-for="selectItem in dataVal.selectData">
|
|
|
- <el-checkbox :label="selectItem.value">
|
|
|
- <el-input v-model="selectItem.value" style="width: 100px"/>
|
|
|
- <el-input v-model="selectItem.label" style="width: 100px"/>
|
|
|
- <el-button icon="Minus" type="danger" style="margin-left: 5px" circle/>
|
|
|
- </el-checkbox>
|
|
|
- </template>
|
|
|
- </el-checkbox-group>
|
|
|
- </template>
|
|
|
- <template v-else>
|
|
|
- <el-radio-group v-model="dataVal.defaultValue">
|
|
|
- <template v-for="selectItem in dataVal.selectData">
|
|
|
- <el-radio :label="selectItem.value">
|
|
|
- <el-input v-model="selectItem.value" style="width: 100px"/>
|
|
|
- <el-input v-model="selectItem.label" style="width: 100px"/>
|
|
|
- <el-button icon="Minus" type="danger" style="margin-left: 5px" circle/>
|
|
|
- </el-radio>
|
|
|
- </template>
|
|
|
- </el-radio-group>
|
|
|
- </template>
|
|
|
-
|
|
|
- <div style=" margin-top:5px">
|
|
|
- <el-button text type="primary" @click="addSelectData">新增</el-button>
|
|
|
- <el-button text type="primary" @click="clearSelectData">清空默认</el-button>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- </template>
|
|
|
-
|
|
|
- <template v-if="comp.networkRequests">
|
|
|
- <el-divider content-position="center">
|
|
|
- 远程请求
|
|
|
- </el-divider>
|
|
|
-
|
|
|
- <el-form-item label="请求方式">
|
|
|
- <el-select v-model="dataVal.networkRequests.method">
|
|
|
- <el-option label="get" value="get"/>
|
|
|
- <el-option label="post" value="post"/>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
|
|
|
- <el-form-item label="请求接口">
|
|
|
- <el-select v-model="dataVal.networkRequests.requestInterfaced"
|
|
|
- @change="changeInterFaced">
|
|
|
- <el-option label="创智中台" value="创智中台"/>
|
|
|
- <el-option label="工作集成平台" value="工作集成平台"/>
|
|
|
- <el-option label="其他" value="其他"/>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="返回体">
|
|
|
- <el-input type="textarea"
|
|
|
- :autosize="{ minRows: 4, maxRows: 10 }"
|
|
|
- v-model="dataVal.networkRequests.returnsVolumeResolutionDetail"/>
|
|
|
- </el-form-item>
|
|
|
+ <template v-for="(item,key) in comp.bind">
|
|
|
+ <el-form-item :label="item.label + ':'">
|
|
|
+ <component :is="bindRendering(item,key)" @change=" (value) =>{test(value,item )}"/>
|
|
|
+ </el-form-item>
|
|
|
+ </template>
|
|
|
|
|
|
- <el-form-item label="请求地址">
|
|
|
- <el-input type="textarea"
|
|
|
- :autosize="{ minRows: 4, maxRows: 10 }"
|
|
|
- v-model="dataVal.networkRequests.url"/>
|
|
|
+ <el-form-item v-if="dataVal.bind.multiple" label="多选别名">
|
|
|
+ <el-input v-model.trim="dataVal.multipleAlias"/>
|
|
|
</el-form-item>
|
|
|
|
|
|
-
|
|
|
- <el-form-item label="请求参数">
|
|
|
- <template v-for="item in dataVal.networkRequests.params">
|
|
|
- <el-input v-model="item.queryName" style="width: 100px"/>
|
|
|
- <el-input v-model="item.queryValue" style="width: 100px"/>
|
|
|
- </template>
|
|
|
-
|
|
|
- <div style=" margin-top:5px">
|
|
|
- <el-button text type="primary" @click="addNetParams">新增</el-button>
|
|
|
+ <template v-if="isSelect()">
|
|
|
+ <el-divider content-position="center">
|
|
|
+ 下拉框默认值
|
|
|
+ </el-divider>
|
|
|
+ <div style="max-height: 200px; overflow-y: auto">
|
|
|
+ <template v-if="dataVal.bind.multiple">
|
|
|
+ <el-checkbox-group v-model="dataVal.defaultValue">
|
|
|
+ <template v-for="selectItem in dataVal.selectData">
|
|
|
+ <el-checkbox :label="selectItem.value">
|
|
|
+ <el-input v-model="selectItem.value" style="width: 100px"/>
|
|
|
+ <el-input v-model="selectItem.label" style="width: 100px"/>
|
|
|
+ <el-button icon="Minus" type="danger" style="margin-left: 5px" circle/>
|
|
|
+ </el-checkbox>
|
|
|
+ </template>
|
|
|
+ </el-checkbox-group>
|
|
|
+ </template>
|
|
|
+ <template v-else>
|
|
|
+ <el-radio-group v-model="dataVal.defaultValue">
|
|
|
+ <template v-for="selectItem in dataVal.selectData">
|
|
|
+ <el-radio :label="selectItem.value">
|
|
|
+ <el-input v-model="selectItem.value" style="width: 100px"/>
|
|
|
+ <el-input v-model="selectItem.label" style="width: 100px"/>
|
|
|
+ <el-button icon="Minus" type="danger" style="margin-left: 5px" circle/>
|
|
|
+ </el-radio>
|
|
|
+ </template>
|
|
|
+ </el-radio-group>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <div style=" margin-top:5px">
|
|
|
+ <el-button text type="primary" @click="addSelectData">新增</el-button>
|
|
|
+ <el-button text type="primary" @click="clearSelectData">清空默认</el-button>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- </template>
|
|
|
|
|
|
- <template v-if="isDateRange()">
|
|
|
- <el-divider content-position="center">
|
|
|
- 其他
|
|
|
- </el-divider>
|
|
|
-
|
|
|
- <el-form-item label="默认值">
|
|
|
- <el-select v-model="dataVal.dataRange.defaultValue" :clearable="true">
|
|
|
- <xc-el-option :data="dateDefaultValue"/>
|
|
|
- </el-select>
|
|
|
- </el-form-item>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <template v-if="comp.networkRequests">
|
|
|
+ <el-divider content-position="center">
|
|
|
+ 远程请求
|
|
|
+ </el-divider>
|
|
|
+
|
|
|
+ <el-form-item label="请求方式">
|
|
|
+ <el-select v-model="dataVal.networkRequests.method">
|
|
|
+ <el-option label="get" value="get"/>
|
|
|
+ <el-option label="post" value="post"/>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="请求接口">
|
|
|
+ <el-select v-model="dataVal.networkRequests.requestInterfaced"
|
|
|
+ @change="changeInterFaced">
|
|
|
+ <el-option label="创智中台" value="创智中台"/>
|
|
|
+ <el-option label="工作集成平台" value="工作集成平台"/>
|
|
|
+ <el-option label="其他" value="其他"/>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="返回体">
|
|
|
+ <el-input type="textarea"
|
|
|
+ :autosize="{ minRows: 4, maxRows: 10 }"
|
|
|
+ v-model.trim="dataVal.networkRequests.returnsVolumeResolutionDetail"/>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="请求地址">
|
|
|
+ <el-input type="textarea"
|
|
|
+ :autosize="{ minRows: 4, maxRows: 10 }"
|
|
|
+ v-model.trim="dataVal.networkRequests.url"/>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="请求参数">
|
|
|
+ <template v-for="item in dataVal.networkRequests.params">
|
|
|
+ <el-input v-model="item.queryName" style="width: 100px"/>
|
|
|
+ <el-input v-model="item.queryValue" style="width: 100px"/>
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <div style=" margin-top:5px">
|
|
|
+ <el-button text type="primary" @click="addNetParams">新增</el-button>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ </template>
|
|
|
+
|
|
|
+ <template v-if="isDateRange()">
|
|
|
+ <el-divider content-position="center">
|
|
|
+ 其他
|
|
|
+ </el-divider>
|
|
|
+
|
|
|
+ <el-form-item label="默认值">
|
|
|
+ <el-select v-model="dataVal.dataRange.defaultValue" :clearable="true">
|
|
|
+ <xc-el-option :data="dateDefaultValue"/>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="开始别名">
|
|
|
+ <el-input v-model="dataVal.dataRange.startAlias"/>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="结束别名">
|
|
|
+ <el-input v-model="dataVal.dataRange.endAlias"/>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ <el-form-item label="几天前" v-if="dataVal.dataRange.defaultValue === '2'">
|
|
|
+ <el-input-number v-model="dataVal.dataRange.minusDays"/>
|
|
|
+ </el-form-item>
|
|
|
+
|
|
|
+ </template>
|
|
|
|
|
|
- <el-form-item label="开始别名">
|
|
|
- <el-input v-model="dataVal.dataRange.startAlias"/>
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="结束别名">
|
|
|
- <el-input v-model="dataVal.dataRange.endAlias"/>
|
|
|
- </el-form-item>
|
|
|
-
|
|
|
- <el-form-item label="几天前" v-if="dataVal.dataRange.defaultValue === '2'">
|
|
|
- <el-input-number v-model="dataVal.dataRange.minusDays"/>
|
|
|
- </el-form-item>
|
|
|
|
|
|
</template>
|
|
|
-
|
|
|
-
|
|
|
- </template>
|
|
|
- </el-form>
|
|
|
+ </el-form>
|
|
|
+ </template>
|
|
|
</template>
|
|
|
|
|
|
<style scoped lang="scss">
|