|
@@ -0,0 +1,188 @@
|
|
|
+<script setup lang="ts">
|
|
|
+import { ref } from "vue";
|
|
|
+import { formRules } from "./utils/rule";
|
|
|
+import { FormProps } from "./utils/types";
|
|
|
+import { menuGateWayTypeOptions } from "./utils/enums";
|
|
|
+import { Delete, Plus, CirclePlus, Close } from "@element-plus/icons-vue";
|
|
|
+import useForm from "./utils/useForm";
|
|
|
+// import dynamicForm from "./components/dynamicForm.vue";
|
|
|
+const props = withDefaults(defineProps<FormProps>(), {
|
|
|
+ formInline: () => ({
|
|
|
+ name: "",
|
|
|
+ code: "",
|
|
|
+ remark: "",
|
|
|
+ gatewayType: 0
|
|
|
+ })
|
|
|
+});
|
|
|
+
|
|
|
+const ruleFormRef = ref();
|
|
|
+const newFormInline = ref(props.formInline);
|
|
|
+
|
|
|
+function getRef() {
|
|
|
+ return ruleFormRef.value;
|
|
|
+}
|
|
|
+const { dataList } = useForm();
|
|
|
+const imageUrl = ref(null);
|
|
|
+defineExpose({ getRef });
|
|
|
+</script>
|
|
|
+
|
|
|
+<template>
|
|
|
+ <el-form
|
|
|
+ ref="ruleFormRef"
|
|
|
+ :model="newFormInline"
|
|
|
+ :rules="formRules"
|
|
|
+ label-position="top"
|
|
|
+ label-width="110px"
|
|
|
+ >
|
|
|
+ <el-form-item label="应用名称" prop="name">
|
|
|
+ <el-input
|
|
|
+ v-model="newFormInline.gatewayName"
|
|
|
+ clearable
|
|
|
+ placeholder="请填写模板名称"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="应用描述">
|
|
|
+ <el-input
|
|
|
+ v-model="newFormInline.remark"
|
|
|
+ placeholder="请输入"
|
|
|
+ type="textarea"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="应用图标">
|
|
|
+ <el-upload
|
|
|
+ class="avatar-uploader"
|
|
|
+ action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15"
|
|
|
+ :show-file-list="false"
|
|
|
+ >
|
|
|
+ <img v-if="imageUrl" :src="imageUrl" class="avatar" />
|
|
|
+ <el-icon v-else class="avatar-uploader-icon"><Plus /></el-icon>
|
|
|
+ </el-upload>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="应用状态" prop="code" label-position="left">
|
|
|
+ <el-switch v-model="newFormInline.status" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="应用标签">
|
|
|
+ <el-input-tag
|
|
|
+ placeholder="Please input"
|
|
|
+ aria-label="Please click the Enter key after input"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="是否允许用户从消息列表中移除">
|
|
|
+ <el-switch v-model="newFormInline.status" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="跳转方式">
|
|
|
+ <el-radio-group v-model="newFormInline.status">
|
|
|
+ <!-- works when >=2.6.0, recommended ✔️ not work when <2.6.0 ❌ -->
|
|
|
+ <el-radio value="Value 1">消息列表</el-radio>
|
|
|
+ <!-- works when <2.6.0, deprecated act as value when >=3.0.0 -->
|
|
|
+ <el-radio label="Label 2 & Value 2">第三方页面</el-radio>
|
|
|
+ </el-radio-group>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="提醒接口配置" />
|
|
|
+ <div class="three-form">
|
|
|
+ <el-form-item label="请求地址">
|
|
|
+ <div class="form-item">
|
|
|
+ <el-select
|
|
|
+ v-model="newFormInline.gatewayType"
|
|
|
+ placeholder="请选择状态"
|
|
|
+ clearable
|
|
|
+ style="width: 30%"
|
|
|
+ >
|
|
|
+ <el-option
|
|
|
+ v-for="(item, index) in menuGateWayTypeOptions"
|
|
|
+ :key="index"
|
|
|
+ :label="item.label"
|
|
|
+ :value="item.value"
|
|
|
+ />
|
|
|
+ </el-select>
|
|
|
+ <el-input v-model="newFormInline.remark" placeholder="请输入" />
|
|
|
+ <el-button type="primary"> 查询 </el-button>
|
|
|
+ </div>
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="添加参数:" prop="code" label-position="left">
|
|
|
+ <el-switch v-model="newFormInline.status" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="添加请求头:" prop="code" label-position="left">
|
|
|
+ <el-switch v-model="newFormInline.status" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="添加X-Id-Token:" prop="code" label-position="left">
|
|
|
+ <el-switch v-model="newFormInline.status" />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="接口返回">
|
|
|
+ <el-input
|
|
|
+ v-model="newFormInline.remark"
|
|
|
+ placeholder="请输入"
|
|
|
+ type="textarea"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="绑定参数" prop="name" />
|
|
|
+ <el-form-item label="提醒数" prop="name">
|
|
|
+ <el-input
|
|
|
+ v-model="newFormInline.gatewayName"
|
|
|
+ clearable
|
|
|
+ placeholder="请填写模板名称"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="最新消息" prop="name">
|
|
|
+ <el-input
|
|
|
+ v-model="newFormInline.gatewayName"
|
|
|
+ clearable
|
|
|
+ placeholder="请填写模板名称"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="最新时间" prop="name">
|
|
|
+ <el-input
|
|
|
+ v-model="newFormInline.gatewayName"
|
|
|
+ clearable
|
|
|
+ placeholder="请填写模板名称"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ <el-form-item label="PC端跳转连接" prop="name">
|
|
|
+ <el-input
|
|
|
+ v-model="newFormInline.gatewayName"
|
|
|
+ clearable
|
|
|
+ placeholder="请填写模板名称"
|
|
|
+ />
|
|
|
+ </el-form-item>
|
|
|
+ </div>
|
|
|
+ <!-- <dynamicForm
|
|
|
+ v-if="dataList[newFormInline.parameterDefineId]"
|
|
|
+ :records="dataList[newFormInline.parameterDefineId]"
|
|
|
+ /> -->
|
|
|
+ </el-form>
|
|
|
+</template>
|
|
|
+<style>
|
|
|
+.avatar-uploader .avatar {
|
|
|
+ width: 178px;
|
|
|
+ height: 178px;
|
|
|
+ display: block;
|
|
|
+}
|
|
|
+.avatar-uploader .el-upload {
|
|
|
+ border: 1px dashed var(--el-border-color);
|
|
|
+ border-radius: 6px;
|
|
|
+ cursor: pointer;
|
|
|
+ position: relative;
|
|
|
+ overflow: hidden;
|
|
|
+ transition: var(--el-transition-duration-fast);
|
|
|
+}
|
|
|
+
|
|
|
+.avatar-uploader .el-upload:hover {
|
|
|
+ border-color: var(--el-color-primary);
|
|
|
+}
|
|
|
+
|
|
|
+.el-icon.avatar-uploader-icon {
|
|
|
+ font-size: 28px;
|
|
|
+ color: #8c939d;
|
|
|
+ width: 178px;
|
|
|
+ height: 178px;
|
|
|
+ text-align: center;
|
|
|
+}
|
|
|
+.form-item {
|
|
|
+ display: flex;
|
|
|
+ width: 100%;
|
|
|
+ gap: 5px;
|
|
|
+}
|
|
|
+.three-form {
|
|
|
+ padding-left: 50px;
|
|
|
+}
|
|
|
+</style>
|