|
@@ -130,13 +130,144 @@
|
|
|
<el-switch v-model="activeData.isUrl" />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="只做展示">
|
|
|
- <el-switch v-model="activeData.isText" @change="activeData.__vModel__ = 'isOnlyRead_' + +new Date();activeData.__vModelName__ = 'isOnlyRead_' + +new Date()" />
|
|
|
+ <el-switch
|
|
|
+ v-model="activeData.isText"
|
|
|
+ @change="
|
|
|
+ activeData.__vModel__ = 'isOnlyRead_' + +new Date()
|
|
|
+ activeData.__vModelName__ = 'isOnlyRead_' + +new Date()
|
|
|
+ "
|
|
|
+ />
|
|
|
</el-form-item>
|
|
|
<el-form-item label="别名展示">
|
|
|
<el-switch v-model="activeData.anotherName" />
|
|
|
- <el-button v-if="activeData.anotherName" style="margin-left: 100px" size="mini" icon="el-icon-plus" @click="activeData.anotherNameList.push({realValue: '', anotherName: '',columnBackgroundColor: null})">添加</el-button>
|
|
|
+ <el-button
|
|
|
+ v-if="activeData.anotherName"
|
|
|
+ style="margin-left: 100px"
|
|
|
+ size="mini"
|
|
|
+ icon="el-icon-plus"
|
|
|
+ @click="activeData.anotherNameList.push({ realValue: '', anotherName: '', columnBackgroundColor: null })"
|
|
|
+ >添加</el-button
|
|
|
+ >
|
|
|
</el-form-item>
|
|
|
<columnAnotherName v-if="activeData.anotherName" :anotherNameList="activeData.anotherNameList" />
|
|
|
+ <el-form-item label="开启扫码">
|
|
|
+ <el-switch v-model="activeData.isScan" />
|
|
|
+ </el-form-item>
|
|
|
+ <template v-if="activeData.isScan">
|
|
|
+ <el-form-item label="" label-width="40px">
|
|
|
+ <el-radio-group v-model="activeData.__config__.dataType" size="small" style="text-align: center" @change="dataTypeChange">
|
|
|
+ <el-radio-button label="static">静态数据</el-radio-button>
|
|
|
+ <el-radio-button label="dictionary">数据字典</el-radio-button>
|
|
|
+ <el-radio-button label="dynamic">API数据</el-radio-button>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <template v-if="activeData.__config__.dataType === 'static'">
|
|
|
+ <draggable :list="activeData.__slot__.options" :animation="340" group="selectItem" handle=".option-drag">
|
|
|
+ <div v-for="(item, index) in activeData.__slot__.options" :key="index" class="select-item">
|
|
|
+ <div class="select-line-icon option-drag">
|
|
|
+ <i class="el-icon-s-operation" />
|
|
|
+ </div>
|
|
|
+ <el-input v-model="item.fullName" placeholder="选项名(value)" size="small" @input="optionsChange($event, item)" />
|
|
|
+ <el-input v-model="item.id" placeholder="选项值(key)" size="small" @input="optionsChange($event, item)" />
|
|
|
+ <el-input v-if="activeData.__config__.relationSelectId" v-model="item.relation" placeholder="关联关键词" size="small" />
|
|
|
+ <div class="close-btn select-line-icon" @click="activeData.__slot__.options.splice(index, 1)">
|
|
|
+ <i class="el-icon-remove-outline" />
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </draggable>
|
|
|
+ <div style="margin-left: 29px">
|
|
|
+ <el-button style="padding-bottom: 0" icon="el-icon-circle-plus-outline" type="text" @click="addSelectItem"> 添加选项 </el-button>
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ <!-- <JNPF-TreeSelect :options="treeData" v-model="activeData.__config__.dictionaryType"-->
|
|
|
+ <!-- placeholder="选择数据字典" lastLevel v-if="activeData.__config__.dataType==='dictionary'" clearable>-->
|
|
|
+ <!-- </JNPF-TreeSelect>-->
|
|
|
+ <el-select @change="wallpaperInput" placeholder="选择数据字典" v-model="activeData.__config__.dictionaryType" v-if="activeData.__config__.dataType === 'dictionary'">
|
|
|
+ <el-option v-for="(item, i) of treeData" :key="i" :value="item.id" :label="item.keyCode"></el-option>
|
|
|
+ </el-select>
|
|
|
+ <template v-if="activeData.__config__.dataType === 'dynamic'">
|
|
|
+ <el-form-item label="API数据">
|
|
|
+ <el-cascader
|
|
|
+ :options="dataInterfaceSelector"
|
|
|
+ v-model="activeData.__config__.propsUrl"
|
|
|
+ placeholder="请选择API数据"
|
|
|
+ :filter-method="apiFilterMethod"
|
|
|
+ :props="{ expandTrigger: 'hover', emitPath: false }"
|
|
|
+ :show-all-levels="false"
|
|
|
+ @change="propsUrlChange"
|
|
|
+ clearable
|
|
|
+ filterable
|
|
|
+ >
|
|
|
+ </el-cascader>
|
|
|
+ </el-form-item>
|
|
|
+ <el-divider v-if="activeData.__config__.ApiParams && activeData.__config__.ApiParams.length">API输入参数设置</el-divider>
|
|
|
+ <el-form-item class="varFormItem" v-for="(param, i) of activeData.__config__.ApiParams" :key="i" :label="param.name + ' ' + param.key">
|
|
|
+ <el-cascader v-model="param.varType" :options="varTypeList"></el-cascader>
|
|
|
+ <el-input v-if="param.varType == 1 && param.datatype === 'string'" v-model="param.def"></el-input>
|
|
|
+ <el-input v-if="param.varType == 1 && param.datatype === 'number'" v-model="param.def" type="number"></el-input>
|
|
|
+ <el-date-picker v-if="param.varType == 1 && param.datatype === 'date'" v-model="param.def" placeholder="选择日期" type="date" value-format="yyyyMMdd"></el-date-picker>
|
|
|
+ <el-date-picker v-if="param.varType == 1 && param.datatype === 'month'" v-model="param.def" placeholder="选择月" type="month" value-format="yyyyMM"></el-date-picker>
|
|
|
+ <el-time-picker v-if="param.varType == 1 && param.datatype === 'time'" v-model="param.def" placeholder="选择时间" value-format="HH:mm:ss"></el-time-picker>
|
|
|
+ <el-date-picker v-if="param.varType == 1 && param.datatype === 'timestamp'" v-model="param.def" placeholder="选择日期" type="date" value-format="timestamp"></el-date-picker>
|
|
|
+ <el-time-picker v-if="param.varType == 1 && param.datatype === 'timestamp'" v-model="param.def" placeholder="选择时间" value-format="timestamp"></el-time-picker>
|
|
|
+ </el-form-item>
|
|
|
+ <el-divider>API返回值设置</el-divider>
|
|
|
+ <el-form-item>
|
|
|
+ <template slot="label">
|
|
|
+ <span>组件设置:</span>
|
|
|
+ <el-tooltip style="cursor: pointer" effect="dark" :content="'当前组件设置,指定API返回值某一项作为key或value'" placement="top">
|
|
|
+ <i class="el-icon-question" />
|
|
|
+ </el-tooltip>
|
|
|
+ </template>
|
|
|
+ <el-button size="mini" type="primary" plain @click="previewClick" icon="View">API返回值结构预览</el-button>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="key值">
|
|
|
+ <el-select placeholder="请选择key值" v-model="activeData.__config__.apiProps.value">
|
|
|
+ <el-option v-for="(item, i) of showFields" :key="i" :value="item.columnComments" :label="item.columnName"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="value值">
|
|
|
+ <el-select placeholder="请选择value值" v-model="activeData.__config__.apiProps.label">
|
|
|
+ <el-option v-for="(item, i) of showFields" :key="i" :value="item.columnComments" :label="item.columnName"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="副标题">
|
|
|
+ <el-select placeholder="请选择副标题" multiple v-model="activeData.__config__.apiProps.fitLabel" @change="fitLabelChange">
|
|
|
+ <el-option v-for="(item, i) of showFields" :key="i" :value="item.columnComments" :label="item.columnName"></el-option>
|
|
|
+ </el-select>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item v-if="activeData.__config__.apiProps.fitLabel.length" label="标题分隔符">
|
|
|
+ <el-input v-model="activeData.__config__.apiProps.labelSeparator" placeholder="请输入标题分隔符" />
|
|
|
+ </el-form-item>
|
|
|
+ <template v-if="activeData.__config__.ApiReturn && activeData.__config__.ApiReturn.length">
|
|
|
+ <el-form-item>
|
|
|
+ <template slot="label">
|
|
|
+ <span>变量设置:</span>
|
|
|
+ <el-tooltip style="cursor: pointer" effect="dark" :content="'当前页面变量设置,从API返回值结构预览中选择一或多个类作为变量'" placement="top">
|
|
|
+ <i class="el-icon-question" />
|
|
|
+ </el-tooltip>
|
|
|
+ </template>
|
|
|
+ </el-form-item>
|
|
|
+ <el-table :data="activeData.__config__.ApiReturn" style="width: 100%">
|
|
|
+ <el-table-column prop="keyName" label="API返回值"></el-table-column>
|
|
|
+ <el-table-column label="页面变量名">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <el-input @input="varNamefitlte(scope.row, $event)" v-model="scope.row.varName" placeholder="请输入页面变量名" />
|
|
|
+ <div v-if="varNamefitlteclass(scope.row, scope.row.varName)" style="color: red">变量名重复 重新输入</div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ <el-table-column label="操作" width="50">
|
|
|
+ <template slot-scope="scope">
|
|
|
+ <div class="close-btn select-line-icon" style="cursor: pointer" @click="activeData.__config__.ApiReturn.splice(scope.$index, 1)">
|
|
|
+ <i class="el-icon-delete" />
|
|
|
+ </div>
|
|
|
+ </template>
|
|
|
+ </el-table-column>
|
|
|
+ </el-table>
|
|
|
+ </template>
|
|
|
+ </template>
|
|
|
+ <el-divider />
|
|
|
+ </template>
|
|
|
<el-divider>校验</el-divider>
|
|
|
<el-form-item label="是否必填">
|
|
|
<el-switch v-model="activeData.__config__.required" />
|
|
@@ -167,13 +298,13 @@
|
|
|
<script>
|
|
|
import iconBox from '@/components/JNPF-iconBox'
|
|
|
import customExpression from '@/components/Generator/index/RightComponents/customExpression'
|
|
|
-import columnAnotherName from "@/components/Generator/index/RightComponents/componets/columnAnotherName";
|
|
|
+import columnAnotherName from '@/components/Generator/index/RightComponents/componets/columnAnotherName'
|
|
|
import comMixin from './mixin'
|
|
|
import { loopActiveTabelList, loopRelationList, loopRelationTabelList } from '@/utils'
|
|
|
export default {
|
|
|
props: ['activeData', 'dbLinkId', 'drawList'],
|
|
|
mixins: [comMixin],
|
|
|
- components: { iconBox, customExpression,columnAnotherName },
|
|
|
+ components: { iconBox, customExpression, columnAnotherName },
|
|
|
data() {
|
|
|
return {
|
|
|
iconsVisible: false,
|