Merge pull request 'master' (#251) from master into prod
Reviewed-on: http://git.feashow.cn/clay/mosr-web/pulls/251
This commit is contained in:
@@ -18,6 +18,13 @@ export const getConfigDetails = (configId) => {
|
|||||||
method: 'get'
|
method: 'get'
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
// 获取参数配置表详情
|
||||||
|
export const getConfigByKey = (configKey) => {
|
||||||
|
return request({
|
||||||
|
url: '/admin/config/key/' + configKey,
|
||||||
|
method: 'get'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
// 新增参数配置表
|
// 新增参数配置表
|
||||||
export const addConfig = (data) => {
|
export const addConfig = (data) => {
|
||||||
|
|||||||
@@ -68,4 +68,11 @@ export function getTypeOption() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export function getFromPerm(processKey) {
|
||||||
|
return request({
|
||||||
|
url: "/workflow/process/definition/from/perm/"+processKey,
|
||||||
|
method: "get",
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -3,12 +3,12 @@
|
|||||||
<Hamburger></Hamburger>
|
<Hamburger></Hamburger>
|
||||||
<Breadcrumb></Breadcrumb>
|
<Breadcrumb></Breadcrumb>
|
||||||
<div class="right-bar">
|
<div class="right-bar">
|
||||||
<!-- <bell-socket/>-->
|
<!-- <bell-socket/>-->
|
||||||
<div class="user-box">
|
<div class="user-box">
|
||||||
<div>
|
<div>
|
||||||
<!-- <img :src="userInfo.avatar" alt="" @click.stop="handleVisitedP">-->
|
<!-- <img :src="userInfo.avatar" alt="" @click.stop="handleVisitedP">-->
|
||||||
<span @click.stop="handleVisitedP">欢迎回来,{{userInfo.userName}}</span>
|
<span @click.stop="handleVisitedP">欢迎回来,{{ userInfo.userName }}</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="person" v-if="visitedP">
|
<div class="person" v-if="visitedP">
|
||||||
<ul>
|
<ul>
|
||||||
<li @click="handleToAuth">个人中心</li>
|
<li @click="handleToAuth">个人中心</li>
|
||||||
@@ -25,8 +25,6 @@ import {useRouter} from 'vue-router';
|
|||||||
import Breadcrumb from './Breadcrumb.vue';
|
import Breadcrumb from './Breadcrumb.vue';
|
||||||
import Hamburger from './Hamburger.vue';
|
import Hamburger from './Hamburger.vue';
|
||||||
import {useAuthStore} from '@/stores/userstore.js'
|
import {useAuthStore} from '@/stores/userstore.js'
|
||||||
import BellSocket from "./BellSocket.vue";
|
|
||||||
import {getUserInfo} from "../../api/login";
|
|
||||||
import {usePermisstionStroe} from '@/stores/permisstion'
|
import {usePermisstionStroe} from '@/stores/permisstion'
|
||||||
|
|
||||||
const authStore = useAuthStore()
|
const authStore = useAuthStore()
|
||||||
@@ -41,10 +39,8 @@ onMounted(() => {
|
|||||||
onBeforeUnmount(() => {
|
onBeforeUnmount(() => {
|
||||||
document.removeEventListener('click', nullBlockClick)
|
document.removeEventListener('click', nullBlockClick)
|
||||||
})
|
})
|
||||||
const setUserInfo = () => {
|
const setUserInfo = () => {
|
||||||
getUserInfo().then(res=>{
|
userInfo.value = authStore.userinfo
|
||||||
userInfo.value = res.data.user
|
|
||||||
})
|
|
||||||
}
|
}
|
||||||
const nullBlockClick = () => {
|
const nullBlockClick = () => {
|
||||||
visitedP.value = false
|
visitedP.value = false
|
||||||
@@ -74,22 +70,26 @@ const handleLogout = () => {
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
background-color: #fff;
|
background-color: #fff;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
|
|
||||||
.right-bar {
|
.right-bar {
|
||||||
margin-left: auto;
|
margin-left: auto;
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: flex-start;
|
justify-content: flex-start;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
.user-box{
|
.user-box {
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
position: relative;
|
position: relative;
|
||||||
>div:first-child{
|
|
||||||
display:flex;
|
> div:first-child {
|
||||||
|
display: flex;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
>span{
|
|
||||||
|
> span {
|
||||||
margin-left: 5px;
|
margin-left: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
img {
|
img {
|
||||||
width: 40px;
|
width: 40px;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
|
|||||||
@@ -217,4 +217,4 @@ body,div {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
@@ -2,14 +2,14 @@
|
|||||||
<div v-loading="loading" class="add-block">
|
<div v-loading="loading" class="add-block">
|
||||||
<baseTitle title="需求征集信息录入"></baseTitle>
|
<baseTitle title="需求征集信息录入"></baseTitle>
|
||||||
<el-form :model="formData" inline class="query-form" ref="demandForm" :rules="rules">
|
<el-form :model="formData" inline class="query-form" ref="demandForm" :rules="rules">
|
||||||
<el-form-item v-if="checkFormPrem('requirementName')" label="需求名称" prop="requirementName">
|
<el-form-item label="名称" prop="requirementName">
|
||||||
<el-input v-model="formData.requirementName" placeholder="请输入需求名称" clearable></el-input>
|
<el-input v-model="formData.requirementName" placeholder="请输入名称" clearable></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-if="checkFormPrem('companyIds')" label="所属公司" prop="companyIds">
|
<el-form-item label="所属公司" prop="companyIds">
|
||||||
<el-tree-select v-model="formData.companyIds" :data="companyOption" style="width: 100%;"
|
<el-tree-select v-model="formData.companyIds" :data="companyOption" style="width: 100%;"
|
||||||
filterable clearable :check-strictly="true" multiple/>
|
filterable clearable :check-strictly="true" multiple/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item v-if="checkFormPrem('collectType')" label="征集类型" prop="collectType">
|
<el-form-item label="征集类型" prop="collectType">
|
||||||
<el-select v-model="formData.collectType" placeholder="征集类型" clearable filterable>
|
<el-select v-model="formData.collectType" placeholder="征集类型" clearable filterable>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in typeOption"
|
v-for="item in typeOption"
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
</el-form-item>
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
<baseTitle title="征集说明"></baseTitle>
|
<baseTitle title="征集说明"></baseTitle>
|
||||||
<Tinymce v-if="checkFormPrem('collectExplain') && showTinymce" image-url="/notice/file" file-url="/notice/file"
|
<Tinymce v-if="showTinymce" image-url="/notice/file" file-url="/notice/file"
|
||||||
v-model:value="formData.collectExplain" height="300" />
|
v-model:value="formData.collectExplain" height="300" />
|
||||||
<baseTitle title="申请文件"></baseTitle>
|
<baseTitle title="申请文件"></baseTitle>
|
||||||
<file-upload v-if="checkFormPrem('fileList')" @getFile="getFile"/>
|
<file-upload v-if="checkFormPrem('fileList')" @getFile="getFile"/>
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
<!-- </div>-->
|
<!-- </div>-->
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<el-dialog v-model="validVisible" title="设置项检查">
|
<el-dialog v-model="validVisible" title="设置项检查">
|
||||||
<el-steps align-center :active="validStep" finish-status="success">
|
<el-steps align-center :active="validStep" finish-status="success">
|
||||||
@@ -54,7 +55,6 @@
|
|||||||
<script setup>
|
<script setup>
|
||||||
import {getProcessDefinitionInfo, addProcessDefinition} from "@/api/workflow/process-definition.js";
|
import {getProcessDefinitionInfo, addProcessDefinition} from "@/api/workflow/process-definition.js";
|
||||||
import ProcessDesign from '@/views/workflow/process/ProcessDesign.vue'
|
import ProcessDesign from '@/views/workflow/process/ProcessDesign.vue'
|
||||||
import FormDesign from '@/views/workflow/form/FormDesign.vue'
|
|
||||||
import ProcessSetting from "./ProcessSetting.vue";
|
import ProcessSetting from "./ProcessSetting.vue";
|
||||||
import Ellipsis from '@/views/workflow/process/common/Ellipsis.vue'
|
import Ellipsis from '@/views/workflow/process/common/Ellipsis.vue'
|
||||||
import {getCurrentInstance} from '@vue/runtime-core';
|
import {getCurrentInstance} from '@vue/runtime-core';
|
||||||
@@ -117,7 +117,7 @@ const init = () => {
|
|||||||
|
|
||||||
const loadInitFrom = () => {
|
const loadInitFrom = () => {
|
||||||
let design = {
|
let design = {
|
||||||
processDefinitionKey: 'pro' + getRandomId(),
|
processDefinitionKey: "",
|
||||||
deploymentName: "未命名表单",
|
deploymentName: "未命名表单",
|
||||||
processKey: '',
|
processKey: '',
|
||||||
// logo: {
|
// logo: {
|
||||||
|
|||||||
@@ -1,21 +1,22 @@
|
|||||||
<template>
|
<template>
|
||||||
<el-input v-model="processData.deploymentName" placeholder="请输入流程名称"/>
|
<div v-if="processData.processDefinitionKey">
|
||||||
<!-- <div v-if="!processData.processDefinitionKey">-->
|
<p>
|
||||||
<el-select v-model="processData.processKey" placeholder="请选择流程环节">
|
流程名称: {{ processData.deploymentName }}
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<div v-if="!processData.processDefinitionKey">
|
||||||
|
<el-select v-model="processData.processKey" @change="processKeyChange" placeholder="请选择流程环节">
|
||||||
<el-option v-for="item in optionList" :label="item.label" :value="item.value"/>
|
<el-option v-for="item in optionList" :label="item.label" :value="item.value"/>
|
||||||
</el-select>
|
</el-select>
|
||||||
<!-- </div>-->
|
</div>
|
||||||
<!-- <div v-else>-->
|
|
||||||
<!-- {{processData.processName}}-->
|
|
||||||
<!-- </div>-->
|
|
||||||
|
|
||||||
流程设置{{ processData.deploymentName }}
|
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup>
|
<script setup>
|
||||||
import {useProcessStore} from '@/stores/processStore.js'
|
import {useProcessStore} from '@/stores/processStore.js'
|
||||||
import {computed, defineExpose} from "vue";
|
import {computed, defineExpose} from "vue";
|
||||||
import {getTypeOption} from "@/api/workflow/process-definition";
|
import { ElNotification} from "element-plus";
|
||||||
|
import {getTypeOption, getFromPerm} from "@/api/workflow/process-definition";
|
||||||
|
|
||||||
const processStore = useProcessStore()
|
const processStore = useProcessStore()
|
||||||
|
|
||||||
@@ -27,17 +28,31 @@ const processData = computed(() => {
|
|||||||
|
|
||||||
|
|
||||||
const validate = () => {
|
const validate = () => {
|
||||||
console.log("validate")
|
|
||||||
return []
|
return []
|
||||||
}
|
}
|
||||||
|
|
||||||
const init = () => {
|
const init = () => {
|
||||||
getTypeOption().then(res => {
|
getTypeOption().then(res => {
|
||||||
console.log(res)
|
|
||||||
optionList.value = res.data
|
optionList.value = res.data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const processKeyChange = () => {
|
||||||
|
getFromPerm(processData.value.processKey).then(res => {
|
||||||
|
if (res.code === 1000) {
|
||||||
|
processData.value.processFromPerms = res.data
|
||||||
|
} else {
|
||||||
|
ElNotification({
|
||||||
|
title: '提示',
|
||||||
|
message: res.msg,
|
||||||
|
type: res.code === 1000 ? 'success' : 'error'
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
defineExpose({
|
defineExpose({
|
||||||
validate
|
validate
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -91,12 +91,15 @@ const formPermsLoadMosr = (oldPermMap, perms) => {
|
|||||||
old.required = perm.required;
|
old.required = perm.required;
|
||||||
formPerms.value.push(old);
|
formPerms.value.push(old);
|
||||||
} else {
|
} else {
|
||||||
formPerms.value.push({
|
console.log(perm)
|
||||||
id: perm.id, //todo ,id 就是字段名称
|
if (perm.id === 'fileList'){
|
||||||
title: perm.title,
|
formPerms.value.push({
|
||||||
required: perm.required,
|
id: perm.id, //todo ,id 就是字段名称
|
||||||
perm: nowNode.value.type === "ROOT" ? "E" : "R"
|
title: perm.title,
|
||||||
});
|
required: perm.required,
|
||||||
|
perm: nowNode.value.type === "ROOT" ? "E" : "R"
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user