Compare commits

...

5 Commits

Author SHA1 Message Date
clay 62309940c4 Merge pull request 'clay : 触发器的http请求有没有已经实现' (#50) from master into pro
continuous-integration/drone/push Build is passing Details
Reviewed-on: http://git.hchyun.com/clay/workflow-engine-web/pulls/50
2023-03-25 15:17:38 +00:00
clay 059ac66d7a clay : 触发器的http请求有没有已经实现 2023-03-25 23:16:37 +08:00
clay 18de970ffc clay : 细节修改 2023-03-25 17:00:29 +08:00
clay 528b63a0d2 clay : 细节修改 2023-03-25 16:46:47 +08:00
clay 055d757581 clay : 细节修改 2023-03-25 16:39:37 +08:00
11 changed files with 247 additions and 195 deletions

View File

@ -17,7 +17,7 @@
created() { created() {
}, },
mounted() { mounted() {
let beforeUrl = sessionStorage.getItem('router-path') let beforeUrl = localStorage.getItem('router-path')
if(beforeUrl === undefined || beforeUrl === ''){ if(beforeUrl === undefined || beforeUrl === ''){
//this.$router.push("/workPanel") //this.$router.push("/workPanel")
}else { }else {

View File

@ -6,12 +6,11 @@ import { Notification, MessageBox, Message } from "element-ui";
// 第三方插件 // 第三方插件
import "element-ui/lib/theme-chalk/index.css"; import "element-ui/lib/theme-chalk/index.css";
Vue.prototype.$axios = axios;
// 字体图标 // 字体图标
export function getBaseUrl(){ export function getBaseUrl(){
return "http://gateway.mytwins.top" // return "http://gateway.mytwins.top"
// return "http://192.168.101.8:8000" return "http://192.168.101.8:8000"
// return "http://localhost:8000" // return "http://localhost:8000"
} }
@ -39,6 +38,7 @@ service.interceptors.response.use(
let data = rsp.data let data = rsp.data
if (data.code === 401){ if (data.code === 401){
localStorage.clear() localStorage.clear()
window.location.href = "/"
} }
if (data.code === 1000){ if (data.code === 1000){
return data return data

View File

@ -59,7 +59,7 @@ export default {
computed:{ computed:{
_value :{ _value :{
get(){ get(){
return this.value; return this.value || "";
}, },
set(val){ set(val){
this.value = val; this.value = val;
@ -72,7 +72,7 @@ export default {
}) })
this.$refs.codeEdit.codemirror.on("change", (cm) => { this.$refs.codeEdit.codemirror.on("change", (cm) => {
this._value = cm.getValue() this._value = cm.getValue()
this.$emit("input",this._value) this.$emit("input",cm.getValue())
}) })
}, },
methods:{ methods:{

View File

@ -18,19 +18,6 @@ import WDialog from '@/components/common/WDialog'
import Tip from '@/components/common/Tip' import Tip from '@/components/common/Tip'
Vue.use(ElementUI); Vue.use(ElementUI);
Vue.use(AvatarEllipsis); Vue.use(AvatarEllipsis);
Vue.use(Ellipsis); Vue.use(Ellipsis);

View File

@ -77,7 +77,7 @@ router.beforeEach((to, from, next) => {
head[0].appendChild(meta) head[0].appendChild(meta)
} }
next(); next();
sessionStorage.setItem('router-path', to.path) localStorage.setItem('router-path', to.path)
}) })
export default router; export default router;

View File

@ -6,6 +6,7 @@
<div class="user"> <div class="user">
<el-button type="primary" round size="small" @click="showRolePicker()" icon="el-icon-user">选择本次登录者</el-button> <el-button type="primary" round size="small" @click="showRolePicker()" icon="el-icon-user">选择本次登录者</el-button>
<div v-if="token !== '' && token !== null"> <div v-if="token !== '' && token !== null">
<el-avatar size="large" :src="loginUser.avatar"></el-avatar>
<span>{{ loginUser.name }}</span> <span>{{ loginUser.name }}</span>
</div> </div>
</div> </div>
@ -45,17 +46,11 @@ export default {
return { return {
token: localStorage.getItem("token"), token: localStorage.getItem("token"),
select: [], select: [],
loginUser: { loginUser: {}
id: 381496,
name: "clay",
selected: false,
sex: null,
type: "user"
}
} }
}, },
mounted() { mounted() {
let user = sessionStorage.getItem("user") let user = localStorage.getItem("userInfo")
if (user !== null && user !== '') { if (user !== null && user !== '') {
this.loginUser = JSON.parse(user) this.loginUser = JSON.parse(user)
this.select.push(this.loginUser) this.select.push(this.loginUser)
@ -74,7 +69,7 @@ export default {
uuid: "string" uuid: "string"
} }
).then(res => { ).then(res => {
console.log(res) localStorage.setItem("userInfo",JSON.stringify(this.loginUser))
this.token = res.data.data this.token = res.data.data
localStorage.setItem("token", this.token) localStorage.setItem("token", this.token)
}) })

View File

@ -1,50 +1,50 @@
//审批节点默认属性 //审批节点默认属性
export const APPROVAL_PROPS = { export const APPROVAL_PROPS = {
assignedType: "ASSIGN_USER", assignedType: "ASSIGN_USER", //审批类型
mode: "AND", mode: "AND", //会签模式
sign: false, sign: false, //是否签字
headerBgc: '#ff943e', headerBgc: '#ff943e', //节点背景颜色
nobody: { nobody: { //没有审批的的时候需要的操作
handler: "TO_PASS", handler: "TO_PASS", //操作
assignedUser:[] assignedUser: [] //审批人列表
}, },
timeLimit:{ timeLimit: { //边界事件
timeout:{ timeout: { //超时提醒时间
unit: "H", unit: "H",
value: 0 value: 0
}, },
handler:{ handler: { //超时提醒触发时候的操作
type: "REFUSE", type: "REFUSE", //操作
notify: { notify: {
once: true, once: true, //是否循环
hour: 1 hour: 1
} }
} }
}, },
assignedUser:[], assignedUser: [], // 审批人列表
formPerms:[], formPerms: [], //表单权限
selfSelect: { selfSelect: { //用户自选
multiple: false multiple: false //用户自选时是否是多选
}, },
leaderTop: { leaderTop: { //领导
endCondition: "TOP", endCondition: "TOP",
endLevel: 1, endLevel: 1,
}, },
leader:{ leader: { //第几级领导
level: 1 level: 1
}, },
roleList:[], roleList: [], //角色列表
refuse: { refuse: { //拒绝的操作
type: 'TO_END', //驳回规则 TO_END TO_NODE TO_BEFORE type: 'TO_END', //驳回规则 TO_END TO_NODE TO_BEFORE
target: '' //驳回到指定ID的节点 target: '' //驳回到指定ID的节点
}, },
formUser: '' formUser: '' //表单用户
} }
//根节点默认属性 //根节点默认属性
export const ROOT_PROPS = { export const ROOT_PROPS = {
assignedUser: [], assignedUser: [], //审批人
formPerms:[] formPerms: [] //表单权限
} }
//条件节点默认属性 //条件节点默认属性
@ -77,7 +77,7 @@ export const TRIGGER_PROPS = {
{ {
name: '', name: '',
isField: true, isField: true,
value: '' //支持表达式 ${xxx} xxx为表单字段名称 value: '' //支持表达式 ${xxx} xxx为表单字段id
} }
], ],
contentType: 'FORM', //请求参数类型 contentType: 'FORM', //请求参数类型
@ -85,17 +85,18 @@ export const TRIGGER_PROPS = {
{ {
name: '', name: '',
isField: true, //是表单字段还是自定义 isField: true, //是表单字段还是自定义
value: '' //支持表达式 ${xxx} xxx为表单字段名称 value: '' //支持表达式 ${xxx} xxx为表单字段id
} }
], ],
retry: 1, retry: 1,
handlerByScript: false, handlerByScript: false,
success: 'function handlerOk(res) {\n return true;\n}', success: 'function handlerSuccess(res) {\n return {\n state: true, \n msg: "请求成功!" \n };\n}',
fail: 'function handlerFail(res) {\n return true;\n}' fail: 'function handlerFail(res) {\n return {\n state: true, \n msg: "请求失败!" \n };\n}'
}, },
email: { email: {
subject: '', subject: '',
to: [], to: [],
cc: [],
content: '' content: ''
} }
} }

View File

@ -6,8 +6,9 @@
<el-radio v-for="item in approvalTypes" :label="item.type" :key="item.type">{{ item.name }}</el-radio> <el-radio v-for="item in approvalTypes" :label="item.type" :key="item.type">{{ item.name }}</el-radio>
</el-radio-group> </el-radio-group>
<div v-if="nodeProps.assignedType === 'ASSIGN_USER'"> <div v-if="nodeProps.assignedType === 'ASSIGN_USER'">
<el-button size="mini" icon="el-icon-plus" type="primary" @click="selectUser" round>选择人员</el-button> <el-button size="mini" icon="el-icon-plus" type="primary" @click="$refs.userPicker.showUserPicker()" round>选择人员</el-button>
<avatar-ellipsis :row="3" :user-info="nodeProps.assignedUser"/> <user-picker title="请选择系统角色" :multiple="false" ref="userPicker" :v-model="assignedUser" @ok="selectedUser"/>
<avatar-ellipsis :row="3" :user-info="assignedUser"/>
</div> </div>
<div v-else-if="nodeProps.assignedType === 'SELF_SELECT'"> <div v-else-if="nodeProps.assignedType === 'SELF_SELECT'">
<el-radio-group size="mini" v-model="nodeProps.selfSelect.multiple"> <el-radio-group size="mini" v-model="nodeProps.selfSelect.multiple">
@ -40,7 +41,8 @@
</el-form-item> </el-form-item>
</div> </div>
<div v-else-if="nodeProps.assignedType === 'ROLE'"> <div v-else-if="nodeProps.assignedType === 'ROLE'">
<el-button size="mini" icon="el-icon-plus" type="primary" @click="selectRole" round>选择系统角色</el-button> <el-button size="mini" icon="el-icon-plus" type="primary" @click="$refs.rolePicker.showRolePicker()" round>选择系统角色</el-button>
<role-picker title="请选择人员" :multiple="false" ref="rolePicker" :v-model="roleList" @ok="selectedRole"/>
<role-items v-model="nodeProps.roleList"/> <role-items v-model="nodeProps.roleList"/>
</div> </div>
<div v-else-if="nodeProps.assignedType === 'FORM_USER'"> <div v-else-if="nodeProps.assignedType === 'FORM_USER'">
@ -64,12 +66,11 @@
<el-radio label="TO_ADMIN">转交审批管理员</el-radio> <el-radio label="TO_ADMIN">转交审批管理员</el-radio>
<el-radio label="TO_USER">转交到指定人员</el-radio> <el-radio label="TO_USER">转交到指定人员</el-radio>
</el-radio-group> </el-radio-group>
<div style="margin-top: 10px" v-if="nodeProps.nobody.handler === 'TO_USER'"> <div style="margin-top: 10px" v-if="nodeProps.nobody.handler === 'TO_USER'">
<el-button size="mini" icon="el-icon-plus" type="primary" @click="selectNoSetUser" round>选择人员</el-button> <el-button size="mini" icon="el-icon-plus" type="primary" @click="$refs.toUserPicker.showUserPicker()" round>选择人员</el-button>
<org-items v-model="nodeProps.assignedUser"/> <user-picker title="请指定用户" :multiple="false" ref="toUserPicker" :v-model="nobodyAssignedUser" @ok="selectNoSetUser"/>
<avatar-ellipsis :row="3" :user-info="nobodyAssignedUser"/>
</div> </div>
</el-form-item> </el-form-item>
<div v-if="showMode"> <div v-if="showMode">
@ -118,23 +119,22 @@
</el-form-item> </el-form-item>
<el-form-item label="🙅‍ 如果审批被驳回 👇"> <el-form-item label="🙅‍ 如果审批被驳回 👇">
<el-radio-group v-model="nodeProps.refuse.type"> <el-radio-group v-model="nodeProps.refuse.type">
<el-radio label="TO_INITIAL">直接结束流程</el-radio> <el-radio label="TO_INITIAL">重新开始流程</el-radio>
<el-radio label="TO_BEFORE">驳回到上级审批节点</el-radio> <el-radio label="TO_BEFORE">驳回到上级审批节点</el-radio>
<!-- <el-radio label="TO_NODE">驳回到指定节点</el-radio>--> <el-radio label="TO_NODE">驳回到指定节点</el-radio>
</el-radio-group> </el-radio-group>
<div v-if="nodeProps.refuse.type === 'TO_NODE'"> <div v-if="nodeProps.refuse.type === 'TO_NODE'">
<span>指定节点:</span> <span>指定节点:</span>
<el-select style="margin-left: 10px; width: 150px;" placeholder="选择跳转步骤" size="small" <el-select style="margin-left: 10px; width: 150px;" placeholder="选择跳转步骤" size="small"
v-model="nodeProps.refuse.target"> v-model="nodeProps.refuse.target">
<el-option v-for="(node, i) in nodeOptions" :key="i" :label="node.name" :value="node.id"></el-option> <el-option v-for="(node, index) in nodeOptions" :key="index" :label="node.name"
:value="node.id"></el-option>
</el-select> </el-select>
</div> </div>
</el-form-item> </el-form-item>
</el-form> </el-form>
<role-picker title="请选择人员" multiple ref="rolePicker" :v-model="roleList" @ok="selectedRole"/>
<user-picker title="请选择系统角色" multiple ref="userPicker" :v-model="assignedUser" @ok="selectedUser"/>
</div> </div>
</template> </template>
@ -143,12 +143,11 @@
import RolePicker from "@/components/common/RolePicker"; import RolePicker from "@/components/common/RolePicker";
import UserPicker from "@/components/common/UserPicker"; import UserPicker from "@/components/common/UserPicker";
import RoleItems from "../RoleItems"; import RoleItems from "../RoleItems";
import OrgItems from "../OrgItems";
export default { export default {
name: "ApprovalNodeConfig", name: "ApprovalNodeConfig",
components: {RoleItems, OrgItems, RolePicker, UserPicker}, components: {RoleItems, RolePicker, UserPicker},
props: { props: {
config: { config: {
type: Object, type: Object,
@ -184,6 +183,14 @@ export default {
this.config.assignedUser = val this.config.assignedUser = val
} }
}, },
nobodyAssignedUser: {
get() {
return this.config.nobody.assignedUser || [];
},
set(val) {
this.config.nobody.assignedUser = val
}
},
roleList: { roleList: {
get() { get() {
return this.config.roleList || []; return this.config.roleList || [];
@ -199,7 +206,7 @@ export default {
}, },
nodeOptions() { nodeOptions() {
let values = []; let values = [];
const excType = ["ROOT", "EMPTY", "CONDITION", "CONDITIONS", "CONCURRENT", "CONCURRENTS"]; const excType = ["ROOT", "EMPTY", "CONDITION", "CONDITIONS", "CONCURRENT", "CONCURRENTS", "CC", "END", "TRIGGER"];
this.$store.state.nodeMap.forEach((v) => { this.$store.state.nodeMap.forEach((v) => {
if (excType.indexOf(v.type) === -1) { if (excType.indexOf(v.type) === -1) {
values.push({id: v.id, name: v.name}); values.push({id: v.id, name: v.name});
@ -216,7 +223,6 @@ export default {
case "LEADER_TOP": case "LEADER_TOP":
return this.nodeProps.formUser !== ""; return this.nodeProps.formUser !== "";
case "FORM_USER": case "FORM_USER":
return true;
case "ROLE": case "ROLE":
return true; return true;
default: default:
@ -225,15 +231,17 @@ export default {
} }
}, },
methods: { methods: {
selectUser() { selectNoSetUser(select) {
this.$refs.userPicker.showUserPicker() let userInfoList = []
}, for (let val of select) {
selectNoSetUser() { let userInfo = {
id: val.id,
}, name: val.name,
//, avatar: val.avatar,
selectRole() { }
this.$refs.rolePicker.showRolePicker(); userInfoList.push(userInfo)
}
this.nobodyAssignedUser = userInfoList
}, },
selectedRole(select) { selectedRole(select) {
this.roleList = select this.roleList = select

View File

@ -30,7 +30,6 @@ export default {
return this.config.shouldAdd || false return this.config.shouldAdd || false
}, },
set(val){ set(val){
console.log("asdjhajdhasjdhasdhasjdad")
this.config.shouldAdd = val this.config.shouldAdd = val
} }
}, },

View File

@ -23,22 +23,25 @@
<span style="margin-right: 10px">Header请求头</span> <span style="margin-right: 10px">Header请求头</span>
<el-button type="text" @click="addItem(config.http.headers)"> + 添加</el-button> <el-button type="text" @click="addItem(config.http.headers)"> + 添加</el-button>
</div> </div>
<div v-for="(header, index) in config.http.headers" :key="header.name"> <div v-for="(header, index) in config.http.headers" :key="index">
- <el-input placeholder="参数名" size="small" style="width: 100px;" v-model="header.name" /> -
<el-input placeholder="参数名" size="small" style="width: 100px;" v-model="header.name"/>
<el-radio-group size="small" style="margin: 0 5px;" v-model="header.isField"> <el-radio-group size="small" style="margin: 0 5px;" v-model="header.isField">
<el-radio-button :label="true">表单</el-radio-button> <el-radio-button :label="true">表单</el-radio-button>
<el-radio-button :label="false">固定</el-radio-button> <el-radio-button :label="false">固定</el-radio-button>
</el-radio-group> </el-radio-group>
<el-select v-if="header.isField" style="width: 180px;" v-model="header.value" size="small" placeholder="请选择表单字段"> <el-select v-if="header.isField" style="width: 180px;" v-model="header.value" size="small"
placeholder="请选择表单字段">
<el-option v-for="form in forms" :key="form.id" :label="form.title" :value="form.title"></el-option> <el-option v-for="form in forms" :key="form.id" :label="form.title" :value="form.title"></el-option>
</el-select> </el-select>
<el-input v-else placeholder="请设置字段值" size="small" v-model="header.value" style="width: 180px;"/> <el-input v-else placeholder="请设置字段值" size="small" v-model="header.value" style="width: 180px;"/>
<el-icon class="el-icon-delete" @click="delItem(config.http.headers, index)" style="margin-left: 5px; color: #c75450; cursor: pointer"/> <el-icon class="el-icon-delete" @click="delItem(config.http.headers, index)"
style="margin-left: 5px; color: #c75450; cursor: pointer"/>
</div> </div>
</el-form-item> </el-form-item>
<el-form-item label="Header请求参数" prop="text"> <el-form-item label="Header请求参数" prop="text">
<div slot="label"> <div slot="label">
<span style="margin-right: 10px">Header请求参数 </span> <span style="margin-right: 10px">请求参数 </span>
<el-button style="margin-right: 20px" type="text" @click="addItem(config.http.params)"> + 添加</el-button> <el-button style="margin-right: 20px" type="text" @click="addItem(config.http.params)"> + 添加</el-button>
<span>参数类型 - </span> <span>参数类型 - </span>
<el-radio-group size="mini" style="margin: 0 5px;" v-model="config.http.contentType"> <el-radio-group size="mini" style="margin: 0 5px;" v-model="config.http.contentType">
@ -46,17 +49,20 @@
<el-radio-button label="FORM">form</el-radio-button> <el-radio-button label="FORM">form</el-radio-button>
</el-radio-group> </el-radio-group>
</div> </div>
<div v-for="(param, index) in config.http.params" :key="param.name"> <div v-for="(param, index) in config.http.params" :key="index">
- <el-input placeholder="参数名" size="small" style="width: 100px;" v-model="param.name" /> -
<el-input placeholder="参数名" size="small" style="width: 100px;" v-model="param.name"/>
<el-radio-group size="small" style="margin: 0 5px;" v-model="param.isField"> <el-radio-group size="small" style="margin: 0 5px;" v-model="param.isField">
<el-radio-button :label="true">表单</el-radio-button> <el-radio-button :label="true">表单</el-radio-button>
<el-radio-button :label="false">固定</el-radio-button> <el-radio-button :label="false">固定</el-radio-button>
</el-radio-group> </el-radio-group>
<el-select v-if="param.isField" style="width: 180px;" v-model="param.value" size="small" placeholder="请选择表单字段"> <el-select v-if="param.isField" style="width: 180px;" v-model="param.value" size="small"
<el-option v-for="form in forms" :key="form.id" :label="form.title" :value="form.title"></el-option> placeholder="请选择表单字段">
<el-option v-for="form in forms" :key="form.id" :label="form.title" :value="form.id"></el-option>
</el-select> </el-select>
<el-input v-else placeholder="请设置字段值" size="small" v-model="param.value" style="width: 180px;"/> <el-input v-else placeholder="请设置字段值" size="small" v-model="param.value" style="width: 180px;"/>
<el-icon class="el-icon-delete" @click="delItem(config.http.params, index)" style="margin-left: 5px; color: #c75450; cursor: pointer"/> <el-icon class="el-icon-delete" @click="delItem(config.http.params, index)"
style="margin-left: 5px; color: #c75450; cursor: pointer"/>
</div> </div>
<div> <div>
@ -69,16 +75,21 @@
<el-switch v-model="config.http.handlerByScript"></el-switch> <el-switch v-model="config.http.handlerByScript"></el-switch>
</div> </div>
<span class="item-desc" v-if="config.http.handlerByScript"> <span class="item-desc" v-if="config.http.handlerByScript">
👉 返回值为 ture 则流程通过 false 则流程将被驳回 <p>👉 返回值为 ture 则流程通过 false 则流程将被驳回</p>
<div>支持函数 <p>👉 (上线注意)占不支持ES高级语法</p>
<span style="color: dodgerblue">setFormByName( <p>👉 (上线注意)不支持浏览器的内置函数</p>
<span style="color: #939494">'表单字段名', '表单字段值'</span> <!-- <div>支持函数-->
)</span> <!-- <span style="color: dodgerblue">setFormByName(-->
可改表单数据 <!-- <span style="color: #939494">'表单字段名', '表单字段值'</span>-->
</div> <!-- )</span>-->
<!-- 可改表单数据-->
<!-- </div>-->
</span> </span>
<span class="item-desc" v-else>👉 无论请求结果如何均通过</span> <span class="item-desc" v-else>👉 无论请求结果如何均通过</span>
<div v-if="config.http.handlerByScript"> <div v-if="config.http.handlerByScript">
<div>
<el-button @click="testHander">测试</el-button>
</div>
<div> <div>
<span>请求成功😀</span> <span>请求成功😀</span>
<code-edit v-model="config.http.success"/> <code-edit v-model="config.http.success"/>
@ -95,12 +106,20 @@
<el-input placeholder="请输入邮件主题" size="medium" v-model="config.email.subject"/> <el-input placeholder="请输入邮件主题" size="medium" v-model="config.email.subject"/>
</el-form-item> </el-form-item>
<el-form-item label="收件方" prop="text"> <el-form-item label="收件方" prop="text">
<el-select size="small" style="width: 100%;" v-model="config.email.to" filterable multiple allow-create default-first-option placeholder="请输入收件人"> <el-select size="small" style="width: 100%;" v-model="config.email.to" filterable multiple allow-create
<el-option v-for="item in config.email.to" :key="item" :label="item" :value="item"></el-option> default-first-option placeholder="请输入收件人">
<el-option v-for="sender in config.email.to" :key="sender" :label="sender" :value="sender"></el-option>
</el-select>
</el-form-item>
<el-form-item label="抄送方" prop="text">
<el-select size="small" style="width: 100%;" v-model="config.email.cc" filterable multiple allow-create
default-first-option placeholder="请输入收件人">
<el-option v-for="item in config.email.cc" :key="item" :label="item" :value="item"></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="邮件正文" prop="text"> <el-form-item label="邮件正文" prop="text">
<el-input type="textarea" v-model="config.email.content" :rows="4" placeholder="邮件内容,支持变量提取表单数据 ${表单字段名} "></el-input> <el-input type="textarea" v-model="config.email.content" :rows="4"
placeholder="邮件内容,支持变量提取表单数据 ${表单字段名} "></el-input>
</el-form-item> </el-form-item>
</div> </div>
</el-form> </el-form>
@ -109,6 +128,8 @@
<script> <script>
import CodeEdit from "@/components/common/CodeEdit"; import CodeEdit from "@/components/common/CodeEdit";
import axios from "axios";
export default { export default {
name: "TriggerNodeConfig", name: "TriggerNodeConfig",
components: {CodeEdit}, components: {CodeEdit},
@ -126,8 +147,7 @@ export default {
} }
}, },
data() { data() {
return { return {}
}
}, },
methods: { methods: {
addItem(items) { addItem(items) {
@ -141,6 +161,48 @@ export default {
delItem(items, index) { delItem(items, index) {
items.splice(index, 1) items.splice(index, 1)
}, },
testHander() {
let http = this.config.http;
if (http.url == null || http.url === '') {
this.$message.error("请填写请求路径!")
return
}
let headers = {}
for (let header of http.headers) {
if (header.isField) {
this.$message.error("测试只支持固定参数")
return
}
if (header.name !== "" && header.value !== "") {
this.$set(headers, header.name, header.value);
}
}
if (http.contentType === "FORM") {
this.$set(headers, "Content-Type", "multipart/form-data")
} else {
this.$set(headers, "Content-Type", "application/json")
}
console.log("==================[测试打印内容]==================")
axios.request({
method: http.method,
url: http.url,
headers: headers
}).then(res => {
console.log(res)
if (res.status === 200) {
let data = res.data
let successFun = eval("(false ||" + http.success + ")");
let result = successFun(data);
console.log(result, "成功函数执行的返回结果")
} else {
let failFun = eval("(false ||" + http.fail + ")");
let result = failFun(res);
console.log(result, "失败函数执行的返回结果")
}
}).finally(() => {
console.log("==================[测试打印结束]==================")
})
},
} }
} }
</script> </script>

View File

@ -28,7 +28,7 @@ export default {
computed: { computed: {
selectUser() { selectUser() {
return { return {
show: this.config.props.assignedType !== 'ASSIGN_USER', show: this.config.props.assignedType !== 'ASSIGN_USER' && this.config.props.shouldAdd,
multiple: true multiple: true
}; };
}, },