fix:修改问题保存分支2
This commit is contained in:
parent
c37ce897f2
commit
48d2ad9197
1
.gitignore
vendored
1
.gitignore
vendored
@ -26,3 +26,4 @@ yarn-error.log*
|
|||||||
*.sw?
|
*.sw?
|
||||||
node_modules.zip
|
node_modules.zip
|
||||||
apaas-custom-mydemo.zip
|
apaas-custom-mydemo.zip
|
||||||
|
apaas-custom-mydemo-1.zip
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,8 +1,5 @@
|
|||||||
<template>
|
<template>
|
||||||
<x-app-layout
|
<x-app-layout :layoutEngine="layoutEngine" :isCollapse="isCollapse">
|
||||||
:layoutEngine="layoutEngine"
|
|
||||||
:isCollapse="isCollapse"
|
|
||||||
>
|
|
||||||
<template v-slot:header>
|
<template v-slot:header>
|
||||||
<x-app-header v-if="appInfo" :layoutEngine="layoutEngine" :appInfo="appInfo"></x-app-header>
|
<x-app-header v-if="appInfo" :layoutEngine="layoutEngine" :appInfo="appInfo"></x-app-header>
|
||||||
</template>
|
</template>
|
||||||
@ -20,18 +17,19 @@
|
|||||||
<x-svg-icon v-if="isCollapse" name="arrow-right-icon"></x-svg-icon>
|
<x-svg-icon v-if="isCollapse" name="arrow-right-icon"></x-svg-icon>
|
||||||
<x-svg-icon v-else name="arrow-left-icon"></x-svg-icon>
|
<x-svg-icon v-else name="arrow-left-icon"></x-svg-icon>
|
||||||
</div>
|
</div>
|
||||||
<div v-for="menu of layoutEngine.layoutConfig.keepAliveComps" :key="menu.id">
|
<!-- <div v-for="menu of layoutEngine.layoutConfig.keepAliveComps" :key="menu.id">
|
||||||
<div :style="{color: menu.id === layoutEngine.layoutConfig.currentMenu.id ? 'red' : '#000'}" @click="handlerclick(menu)">
|
<div :style="{color: menu.id === layoutEngine.layoutConfig.currentMenu.id ? 'red' : '#000'}" @click="handlerclick(menu)">
|
||||||
{{ menu.menuName }}
|
{{ menu.menuName }}
|
||||||
<el-button @click.stop="closed(menu)">关闭</el-button>
|
<el-button @click.stop="closed(menu)">关闭</el-button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div> -->
|
||||||
<slot name="appPage"></slot>
|
<slot name="appPage"></slot>
|
||||||
</template>
|
</template>
|
||||||
</x-app-layout>
|
</x-app-layout>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
|
import api from '@/api'
|
||||||
|
import { getUserId } from '@/utils'
|
||||||
export default {
|
export default {
|
||||||
name: 'CustomLayout',
|
name: 'CustomLayout',
|
||||||
props: {
|
props: {
|
||||||
@ -45,25 +43,66 @@ export default {
|
|||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
isCollapse: false,
|
isCollapse: false,
|
||||||
showMenu: true
|
showMenu: true,
|
||||||
|
badgeNum: 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
appInfo() {
|
appInfo() {
|
||||||
return (this.layoutEngine && this.layoutEngine.layoutDataControl && this.layoutEngine.layoutDataControl.appInfo) || {}
|
return (
|
||||||
|
(this.layoutEngine &&
|
||||||
|
this.layoutEngine.layoutDataControl &&
|
||||||
|
this.layoutEngine.layoutDataControl.appInfo) ||
|
||||||
|
{}
|
||||||
|
)
|
||||||
},
|
},
|
||||||
menuConfig() {
|
menuConfig() {
|
||||||
return (this.layoutEngine && this.layoutEngine.layoutDataControl && this.layoutEngine.layoutDataControl.menuConfig) || {
|
// 访问 $route.fullPath 使其成为依赖,路由变化时会触发重新计算
|
||||||
|
void this.$route.fullPath
|
||||||
|
const data = (this.layoutEngine &&
|
||||||
|
this.layoutEngine.layoutDataControl &&
|
||||||
|
this.layoutEngine.layoutDataControl.menuConfig) || {
|
||||||
menu: [],
|
menu: [],
|
||||||
defaultActive: null,
|
defaultActive: null,
|
||||||
menuTreeData: []
|
menuTreeData: []
|
||||||
}
|
}
|
||||||
|
console.log(data, 2222323232, 'data')
|
||||||
|
data.menuTreeData[0].badgeNum = this.badgeNum
|
||||||
|
return data
|
||||||
|
}
|
||||||
|
},
|
||||||
|
watch: {
|
||||||
|
$route: {
|
||||||
|
handler() {
|
||||||
|
console.log(2222323232, '2222323232')
|
||||||
|
this.setBadgeNum()
|
||||||
|
},
|
||||||
|
immediate: false
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
console.log(this.layoutEngine.layoutConfig.keepAliveComps,545454545454545454545454)
|
console.log(this.layoutEngine.layoutConfig.keepAliveComps, 545454545454545454545454)
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
setBadgeNum() {
|
||||||
|
const request = {
|
||||||
|
...api.GET_TODO_LIST,
|
||||||
|
params: {
|
||||||
|
page: 1,
|
||||||
|
size: 10,
|
||||||
|
personId: getUserId()
|
||||||
|
},
|
||||||
|
disableSuccessMsg: true
|
||||||
|
}
|
||||||
|
this.$request(request)
|
||||||
|
.asyncThen((resp) => {
|
||||||
|
this.badgeNum = resp.data.totalCount
|
||||||
|
})
|
||||||
|
.asyncErrorCatch((err) => {
|
||||||
|
console.error('获取待办列表失败:', err)
|
||||||
|
})
|
||||||
|
},
|
||||||
|
|
||||||
changeCollapse() {
|
changeCollapse() {
|
||||||
this.showMenu = false
|
this.showMenu = false
|
||||||
this.$nextTick(() => {
|
this.$nextTick(() => {
|
||||||
@ -94,7 +133,7 @@ export default {
|
|||||||
</script>
|
</script>
|
||||||
<style lang="scss">
|
<style lang="scss">
|
||||||
$--app-box-bgColor: #ffffff;
|
$--app-box-bgColor: #ffffff;
|
||||||
$--app-box-border-color: #DCDFE6;
|
$--app-box-border-color: #dcdfe6;
|
||||||
|
|
||||||
.x-app-layout {
|
.x-app-layout {
|
||||||
.layout-middle {
|
.layout-middle {
|
||||||
|
|||||||
@ -87,7 +87,6 @@
|
|||||||
:disabled="!formData.department"
|
:disabled="!formData.department"
|
||||||
filterable
|
filterable
|
||||||
remote
|
remote
|
||||||
reserve-keyword
|
|
||||||
:remote-method="handleRemoteSearch"
|
:remote-method="handleRemoteSearch"
|
||||||
:loading="userLoading"
|
:loading="userLoading"
|
||||||
class="handler-select"
|
class="handler-select"
|
||||||
|
|||||||
@ -1151,7 +1151,7 @@ export default {
|
|||||||
flex: 1;
|
flex: 1;
|
||||||
min-height: 0;
|
min-height: 0;
|
||||||
padding: 20px;
|
padding: 20px;
|
||||||
|
background: #fff;
|
||||||
.x-empty-page {
|
.x-empty-page {
|
||||||
top: 0;
|
top: 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -37,11 +37,11 @@
|
|||||||
基础信息
|
基础信息
|
||||||
</div>
|
</div>
|
||||||
<div class="info-grid">
|
<div class="info-grid">
|
||||||
<div class="theme-info-item">
|
|
||||||
<span class="label">流程主题</span>
|
|
||||||
<span class="value">{{ progressDetail.processTitle || '--' }}</span>
|
|
||||||
</div>
|
|
||||||
<div class="remain-info">
|
<div class="remain-info">
|
||||||
|
<div class="info-item">
|
||||||
|
<span class="label">流程主题</span>
|
||||||
|
<span class="value">{{ progressDetail.processTitle || '--' }}</span>
|
||||||
|
</div>
|
||||||
<div class="info-item">
|
<div class="info-item">
|
||||||
<span class="label">机型名称</span>
|
<span class="label">机型名称</span>
|
||||||
<span class="value">{{ progressDetail.modelName || '--' }}</span>
|
<span class="value">{{ progressDetail.modelName || '--' }}</span>
|
||||||
|
|||||||
@ -24,14 +24,14 @@
|
|||||||
<el-button type="primary" size="small" :loading="dispatchLoading" @click="handleConfirmDispatch">确认分发</el-button>
|
<el-button type="primary" size="small" :loading="dispatchLoading" @click="handleConfirmDispatch">确认分发</el-button>
|
||||||
</template>
|
</template>
|
||||||
<template v-else>
|
<template v-else>
|
||||||
<el-select
|
<!-- <el-select
|
||||||
v-model="currentVersionId"
|
v-model="currentVersionId"
|
||||||
size="small"
|
size="small"
|
||||||
@change="onVersionChange"
|
@change="onVersionChange"
|
||||||
:disabled="isEditMode"
|
:disabled="isEditMode"
|
||||||
>
|
>
|
||||||
<el-option v-for="ver in versions" :key="ver.id" :label="ver.label" :value="ver.id" />
|
<el-option v-for="ver in versions" :key="ver.id" :label="ver.label" :value="ver.id" />
|
||||||
</el-select>
|
</el-select> -->
|
||||||
<el-button
|
<el-button
|
||||||
v-if="!isEditMode && !isJustCheckMode"
|
v-if="!isEditMode && !isJustCheckMode"
|
||||||
size="small"
|
size="small"
|
||||||
@ -200,7 +200,6 @@
|
|||||||
clearable
|
clearable
|
||||||
filterable
|
filterable
|
||||||
remote
|
remote
|
||||||
reserve-keyword
|
|
||||||
:remote-method="(query) => handleFillerRemoteSearch(query, row)"
|
:remote-method="(query) => handleFillerRemoteSearch(query, row)"
|
||||||
:loading="fillerUserLoading"
|
:loading="fillerUserLoading"
|
||||||
@change="(value) => handleFillerChange(value, row)"
|
@change="(value) => handleFillerChange(value, row)"
|
||||||
@ -333,7 +332,6 @@
|
|||||||
multiple
|
multiple
|
||||||
filterable
|
filterable
|
||||||
remote
|
remote
|
||||||
reserve-keyword
|
|
||||||
placeholder="请选择"
|
placeholder="请选择"
|
||||||
:remote-method="(query) => handleRemoteSearch(query, index)"
|
:remote-method="(query) => handleRemoteSearch(query, index)"
|
||||||
:loading="step.loading"
|
:loading="step.loading"
|
||||||
|
|||||||
@ -5,13 +5,13 @@
|
|||||||
<el-button type="primary" @click="handleAdd">
|
<el-button type="primary" @click="handleAdd">
|
||||||
新增
|
新增
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<!-- <el-button
|
||||||
icon="el-icon-refresh"
|
icon="el-icon-refresh"
|
||||||
size="small"
|
size="small"
|
||||||
@click="handleRefresh"
|
@click="handleRefresh"
|
||||||
>
|
>
|
||||||
刷新
|
刷新
|
||||||
</el-button>
|
</el-button> -->
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="table-section">
|
<div class="table-section">
|
||||||
@ -139,7 +139,6 @@
|
|||||||
:disabled="!formData.selectDeptId"
|
:disabled="!formData.selectDeptId"
|
||||||
filterable
|
filterable
|
||||||
remote
|
remote
|
||||||
reserve-keyword
|
|
||||||
:remote-method="handleRemoteSearch"
|
:remote-method="handleRemoteSearch"
|
||||||
:loading="userLoading"
|
:loading="userLoading"
|
||||||
class="handler-select"
|
class="handler-select"
|
||||||
|
|||||||
@ -73,6 +73,8 @@
|
|||||||
<table class="comparison-table">
|
<table class="comparison-table">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
|
<th class="subsystem-column">子系统名称</th>
|
||||||
|
<th class="parts-column">零部件名称</th>
|
||||||
<th class="param-column">参数名称</th>
|
<th class="param-column">参数名称</th>
|
||||||
<th
|
<th
|
||||||
v-for="(model, index) in comparisonModels"
|
v-for="(model, index) in comparisonModels"
|
||||||
@ -102,6 +104,8 @@
|
|||||||
</thead>
|
</thead>
|
||||||
<tbody>
|
<tbody>
|
||||||
<tr v-for="(param, paramIndex) in displayParams" :key="paramIndex">
|
<tr v-for="(param, paramIndex) in displayParams" :key="paramIndex">
|
||||||
|
<td class="subsystem-column">{{ param.subsystemName }}</td>
|
||||||
|
<td class="parts-column">{{ param.displayPartsName }}</td>
|
||||||
<td class="param-column">
|
<td class="param-column">
|
||||||
<span class="param-name">{{ getParamDisplayName(param) }}</span>
|
<span class="param-name">{{ getParamDisplayName(param) }}</span>
|
||||||
<i
|
<i
|
||||||
@ -1587,26 +1591,19 @@ export default {
|
|||||||
this.savingFavorite = true
|
this.savingFavorite = true
|
||||||
const request = {
|
const request = {
|
||||||
...api.ADD_USER_COMMONLY_USED,
|
...api.ADD_USER_COMMONLY_USED,
|
||||||
params: requestData,
|
params: requestData
|
||||||
disableSuccessMsg: true
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.$request(request)
|
this.$request(request)
|
||||||
.asyncThen((resp) => {
|
.asyncThen((resp) => {
|
||||||
this.$message({
|
// this.$message.success('新增常用成功')
|
||||||
type: 'success',
|
|
||||||
message: '新增常用成功'
|
|
||||||
})
|
|
||||||
this.handleAddFavoriteDialogClose()
|
this.handleAddFavoriteDialogClose()
|
||||||
// 重新加载常用列表
|
// 重新加载常用列表
|
||||||
this.loadFavoritesList()
|
this.loadFavoritesList()
|
||||||
})
|
})
|
||||||
.asyncErrorCatch((err) => {
|
.asyncErrorCatch((err) => {
|
||||||
console.error('新增常用失败:', err)
|
console.error('新增常用失败:', err)
|
||||||
this.$message({
|
this.$message.error(err.message || '新增常用失败')
|
||||||
type: 'error',
|
|
||||||
message: '新增常用失败'
|
|
||||||
})
|
|
||||||
})
|
})
|
||||||
.finally(() => {
|
.finally(() => {
|
||||||
this.savingFavorite = false
|
this.savingFavorite = false
|
||||||
|
|||||||
@ -170,6 +170,20 @@ export default {
|
|||||||
this.loadData()
|
this.loadData()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
setStatusText(result) {
|
||||||
|
const statusMap = {
|
||||||
|
'PASS': '通过',
|
||||||
|
'REJECT': '驳回',
|
||||||
|
'REFUSE': '驳回',
|
||||||
|
'APPROVE': '批准',
|
||||||
|
'APPROVING': '审批中',
|
||||||
|
'PENDING': '待处理',
|
||||||
|
'WAITING': '待处理',
|
||||||
|
'STAY': '待审批',
|
||||||
|
'INITIATE': '发起审批'
|
||||||
|
}
|
||||||
|
return statusMap[result] || result || '待处理'
|
||||||
|
},
|
||||||
handleBack() {
|
handleBack() {
|
||||||
console.log('handleBack called')
|
console.log('handleBack called')
|
||||||
this.$emit('back')
|
this.$emit('back')
|
||||||
|
|||||||
@ -10,7 +10,9 @@
|
|||||||
<div class="apaas-custom-page-mydemo custom-page">
|
<div class="apaas-custom-page-mydemo custom-page">
|
||||||
<template v-if="!showModelDetail">
|
<template v-if="!showModelDetail">
|
||||||
<div class="page-header">
|
<div class="page-header">
|
||||||
<div class="operation"> </div>
|
<div class="title">
|
||||||
|
参数模板管理
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="page-search-panel">
|
<div class="page-search-panel">
|
||||||
<div class="search-fields">
|
<div class="search-fields">
|
||||||
@ -19,19 +21,21 @@
|
|||||||
<el-select
|
<el-select
|
||||||
v-model="searchPanelValue.templateName"
|
v-model="searchPanelValue.templateName"
|
||||||
:loading="templateSelectLoading"
|
:loading="templateSelectLoading"
|
||||||
placeholder="请选择模板名称"
|
placeholder="请输入或选择模板名称"
|
||||||
clearable
|
clearable
|
||||||
filterable
|
filterable
|
||||||
|
:filter-method="filterTemplateOptions"
|
||||||
style="width: 220px"
|
style="width: 220px"
|
||||||
@change="handleSearch"
|
@change="handleSearch"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in templateOptions"
|
v-for="item in filteredTemplateOptions"
|
||||||
:key="item.value"
|
:key="item.value"
|
||||||
:label="item.label"
|
:label="item.label"
|
||||||
:value="item.value"
|
:value="item.value"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="search-actions">
|
<div class="search-actions">
|
||||||
<el-button v-if="hasTemplateManagementEditPermission()" type="primary" @click="handleDownloadImportTemplate">
|
<el-button v-if="hasTemplateManagementEditPermission()" type="primary" @click="handleDownloadImportTemplate">
|
||||||
@ -245,6 +249,7 @@ export default {
|
|||||||
return {
|
return {
|
||||||
searchPanelValue: createDefaultSearch(),
|
searchPanelValue: createDefaultSearch(),
|
||||||
templateOptions: [],
|
templateOptions: [],
|
||||||
|
filteredTemplateOptions: [],
|
||||||
templateSelectLoading: false,
|
templateSelectLoading: false,
|
||||||
tableData: [],
|
tableData: [],
|
||||||
errorList: '',
|
errorList: '',
|
||||||
@ -1000,6 +1005,20 @@ export default {
|
|||||||
console.error('查询失败:', err)
|
console.error('查询失败:', err)
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
// 过滤模板选项(模糊查询)
|
||||||
|
filterTemplateOptions(query) {
|
||||||
|
if (!query || query.trim() === '') {
|
||||||
|
// 如果查询为空,显示所有选项
|
||||||
|
this.filteredTemplateOptions = this.templateOptions
|
||||||
|
return
|
||||||
|
}
|
||||||
|
// 将查询字符串转为小写进行不区分大小写的模糊匹配
|
||||||
|
const queryLower = query.toLowerCase().trim()
|
||||||
|
this.filteredTemplateOptions = this.templateOptions.filter((option) => {
|
||||||
|
// 在 label 中查找是否包含查询字符串
|
||||||
|
return option.label && option.label.toLowerCase().includes(queryLower)
|
||||||
|
})
|
||||||
|
},
|
||||||
// 加载模板名称下拉框数据
|
// 加载模板名称下拉框数据
|
||||||
loadTemplateOptions() {
|
loadTemplateOptions() {
|
||||||
this.templateSelectLoading = true
|
this.templateSelectLoading = true
|
||||||
@ -1029,11 +1048,14 @@ export default {
|
|||||||
value: name
|
value: name
|
||||||
}))
|
}))
|
||||||
this.templateOptions = options
|
this.templateOptions = options
|
||||||
|
// 初始化过滤后的选项为所有选项
|
||||||
|
this.filteredTemplateOptions = options
|
||||||
this.templateSelectLoading = false
|
this.templateSelectLoading = false
|
||||||
})
|
})
|
||||||
.asyncErrorCatch((err) => {
|
.asyncErrorCatch((err) => {
|
||||||
console.error('加载模板列表失败:', err)
|
console.error('加载模板列表失败:', err)
|
||||||
this.templateOptions = []
|
this.templateOptions = []
|
||||||
|
this.filteredTemplateOptions = []
|
||||||
this.templateSelectLoading = false
|
this.templateSelectLoading = false
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|||||||
@ -289,7 +289,6 @@
|
|||||||
multiple
|
multiple
|
||||||
filterable
|
filterable
|
||||||
remote
|
remote
|
||||||
reserve-keyword
|
|
||||||
placeholder="请选择"
|
placeholder="请选择"
|
||||||
:remote-method="(query) => handleRemoteSearch(query, index)"
|
:remote-method="(query) => handleRemoteSearch(query, index)"
|
||||||
:loading="step.loading"
|
:loading="step.loading"
|
||||||
@ -3102,6 +3101,7 @@ export default {
|
|||||||
padding: 20px;
|
padding: 20px;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
|
background: #fff;
|
||||||
|
|
||||||
&.has-footer {
|
&.has-footer {
|
||||||
/* 审批模式下为底部按钮预留空间 */
|
/* 审批模式下为底部按钮预留空间 */
|
||||||
|
|||||||
@ -208,7 +208,6 @@
|
|||||||
multiple
|
multiple
|
||||||
filterable
|
filterable
|
||||||
remote
|
remote
|
||||||
reserve-keyword
|
|
||||||
placeholder="请输入人员姓名进行搜索"
|
placeholder="请输入人员姓名进行搜索"
|
||||||
style="width: 100%"
|
style="width: 100%"
|
||||||
clearable
|
clearable
|
||||||
@ -1489,7 +1488,7 @@ export default {
|
|||||||
// 加载部门列表
|
// 加载部门列表
|
||||||
loadDepartmentList() {
|
loadDepartmentList() {
|
||||||
const request = {
|
const request = {
|
||||||
...api.GET_SUB_DEPT,
|
...api.QUERY_ORG_TREE,
|
||||||
disableSuccessMsg: true
|
disableSuccessMsg: true
|
||||||
}
|
}
|
||||||
this.$request(request)
|
this.$request(request)
|
||||||
|
|||||||
@ -420,7 +420,6 @@
|
|||||||
multiple
|
multiple
|
||||||
filterable
|
filterable
|
||||||
remote
|
remote
|
||||||
reserve-keyword
|
|
||||||
placeholder="请选择"
|
placeholder="请选择"
|
||||||
:remote-method="(query) => handleLaunchRemoteSearch(query, index)"
|
:remote-method="(query) => handleLaunchRemoteSearch(query, index)"
|
||||||
:loading="step.loading"
|
:loading="step.loading"
|
||||||
@ -718,7 +717,7 @@ export default {
|
|||||||
const permissionPath = perm.permissionPath || ''
|
const permissionPath = perm.permissionPath || ''
|
||||||
const parameterPer = perm.parameterPer
|
const parameterPer = perm.parameterPer
|
||||||
return (
|
return (
|
||||||
permissionPath === '报告' &&
|
permissionPath === '对标报告' &&
|
||||||
(parameterPer === 2 ||
|
(parameterPer === 2 ||
|
||||||
parameterPer === '2' ||
|
parameterPer === '2' ||
|
||||||
parameterPer === '编辑')
|
parameterPer === '编辑')
|
||||||
|
|||||||
@ -334,7 +334,6 @@
|
|||||||
multiple
|
multiple
|
||||||
filterable
|
filterable
|
||||||
remote
|
remote
|
||||||
reserve-keyword
|
|
||||||
placeholder="请选择"
|
placeholder="请选择"
|
||||||
:remote-method="(query) => handleLaunchRemoteSearch(query, index)"
|
:remote-method="(query) => handleLaunchRemoteSearch(query, index)"
|
||||||
:loading="step.loading"
|
:loading="step.loading"
|
||||||
@ -984,37 +983,50 @@ export default {
|
|||||||
)
|
)
|
||||||
if (requiredStepsWithoutHandlers.length > 0) {
|
if (requiredStepsWithoutHandlers.length > 0) {
|
||||||
const stepNames = requiredStepsWithoutHandlers.map((step) => step.name).join('、')
|
const stepNames = requiredStepsWithoutHandlers.map((step) => step.name).join('、')
|
||||||
this.$message.warning(`请为必填环节"${stepNames}"选择处理人`)
|
this.$message({
|
||||||
|
type: 'warning',
|
||||||
|
message: `请为必填环节"${stepNames}"选择处理人`
|
||||||
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this.reportDetail.reportId && !this.reportDetail.id) {
|
if (!this.reportDetail.reportId && !this.reportDetail.id) {
|
||||||
this.$message.error('缺少报告信息')
|
this.$message({
|
||||||
|
type: 'error',
|
||||||
|
message: '缺少报告信息'
|
||||||
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 流程主题必填
|
// 流程主题必填
|
||||||
const processTitle = (this.launchProcessTitle || '').trim()
|
const processTitle = (this.launchProcessTitle || '').trim()
|
||||||
if (!processTitle) {
|
if (!processTitle) {
|
||||||
this.$message.warning('请填写流程主题')
|
this.$message({
|
||||||
|
type: 'warning',
|
||||||
|
message: '请填写流程主题'
|
||||||
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
const reportId = this.reportDetail.reportId || this.reportDetail.id
|
const reportId = this.reportDetail.reportId || this.reportDetail.id
|
||||||
if (!reportId) {
|
if (!reportId) {
|
||||||
this.$message.error('缺少报告ID')
|
this.$message({
|
||||||
|
type: 'error',
|
||||||
|
message: '缺少报告ID'
|
||||||
|
})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
const nodeList = this.launchWorkflowSteps.map((step, index) => ({
|
||||||
|
nodeName: step.name,
|
||||||
|
assignees: step.handlers,
|
||||||
|
nodeOrder: index + 1
|
||||||
|
}))
|
||||||
// 构建提交数据
|
// 构建提交数据
|
||||||
const submitData = {
|
const submitData = {
|
||||||
|
processTitle: this.launchProcessTitle,
|
||||||
reportId: reportId,
|
reportId: reportId,
|
||||||
userId: getUserId(),
|
userId: getUserId(),
|
||||||
processTitle: processTitle,
|
nodeList: nodeList
|
||||||
proofreadUsers: this.launchWorkflowSteps[0].handlers,
|
|
||||||
reviewUsers: this.launchWorkflowSteps[1].handlers,
|
|
||||||
countersignUsers: [],
|
|
||||||
approveUsers: this.launchWorkflowSteps[2].handlers
|
|
||||||
}
|
}
|
||||||
|
|
||||||
this.launching = true
|
this.launching = true
|
||||||
@ -1040,7 +1052,10 @@ export default {
|
|||||||
.asyncErrorCatch((err) => {
|
.asyncErrorCatch((err) => {
|
||||||
console.error('发起失败:', err)
|
console.error('发起失败:', err)
|
||||||
this.launching = false
|
this.launching = false
|
||||||
this.$message.error('发起失败,请重试')
|
this.$message({
|
||||||
|
type: 'error',
|
||||||
|
message: '发起失败,请重试'
|
||||||
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 发起远程搜索人员
|
// 发起远程搜索人员
|
||||||
|
|||||||
@ -50,7 +50,7 @@
|
|||||||
@click.stop="handleRowView(row)"
|
@click.stop="handleRowView(row)"
|
||||||
>查看</a
|
>查看</a
|
||||||
>
|
>
|
||||||
<span
|
<!-- <span
|
||||||
v-if="row.dataType === '数据维护'"
|
v-if="row.dataType === '数据维护'"
|
||||||
style="width: 6px; display: inline-block"
|
style="width: 6px; display: inline-block"
|
||||||
></span>
|
></span>
|
||||||
@ -59,7 +59,7 @@
|
|||||||
class="el-link el-link--primary"
|
class="el-link el-link--primary"
|
||||||
@click.stop="handleRowBack(row)"
|
@click.stop="handleRowBack(row)"
|
||||||
>退回</a
|
>退回</a
|
||||||
>
|
> -->
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
|||||||
@ -19,7 +19,7 @@ import ApaasCustomTodoList from './custom-page/todo.vue'
|
|||||||
import ApaasCustomMyDone from './custom-page/myDone.vue'
|
import ApaasCustomMyDone from './custom-page/myDone.vue'
|
||||||
import ApaasCustomMySend from './custom-page/mySend.vue'
|
import ApaasCustomMySend from './custom-page/mySend.vue'
|
||||||
import ApaasCustomPermissionManagement from './custom-page/permissionManagement.vue'
|
import ApaasCustomPermissionManagement from './custom-page/permissionManagement.vue'
|
||||||
|
import ApaasCustomLayout from './custom-layout/custom-layout.vue'
|
||||||
import { customFormComponentList } from './custom-component/form-component'
|
import { customFormComponentList } from './custom-component/form-component'
|
||||||
import { widgetConfigList } from './custom-component/form-config'
|
import { widgetConfigList } from './custom-component/form-config'
|
||||||
|
|
||||||
@ -46,6 +46,7 @@ const install = function(Vue, opts) {
|
|||||||
Vue.component('apaas-custom-myDone', ApaasCustomMyDone)
|
Vue.component('apaas-custom-myDone', ApaasCustomMyDone)
|
||||||
Vue.component('apaas-custom-mySend', ApaasCustomMySend)
|
Vue.component('apaas-custom-mySend', ApaasCustomMySend)
|
||||||
Vue.component('apaas-custom-permissionManagement', ApaasCustomPermissionManagement)
|
Vue.component('apaas-custom-permissionManagement', ApaasCustomPermissionManagement)
|
||||||
|
Vue.component('apaas-custom-layout', ApaasCustomLayout)
|
||||||
// 安装表单部件
|
// 安装表单部件
|
||||||
// 注册自开发表单组件
|
// 注册自开发表单组件
|
||||||
if (
|
if (
|
||||||
@ -55,6 +56,10 @@ const install = function(Vue, opts) {
|
|||||||
Vue.component(comp.name, comp)
|
Vue.component(comp.name, comp)
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
if (Vue.LayoutEngine) {
|
||||||
|
const layoutEngine = Vue.LayoutEngine.getInstance(Vue.LayoutEngine.currentLayoutId)
|
||||||
|
layoutEngine.registerLayoutComponent(ApaasCustomLayout)
|
||||||
|
}
|
||||||
// 表单引擎注册自开发组件配置
|
// 表单引擎注册自开发组件配置
|
||||||
if (
|
if (
|
||||||
widgetConfigList && Array.isArray(widgetConfigList)
|
widgetConfigList && Array.isArray(widgetConfigList)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user