!107 style(xispeak): 美化发起落实措施收集流程弹窗
* style(xispeak): 美化发起落实措施收集流程弹窗 * fix(xispeak): 移除督办状态筛选默认值,避免页面初始加载时无数据 * fix(xispeak): 对齐督办状态筛选逻辑,设置默认值"未开始"
This commit is contained in:
@@ -21,7 +21,7 @@
|
||||
<!-- </a-col>-->
|
||||
<a-col :lg="6">
|
||||
<a-form-item name="bpmStatus" label="督办状态">
|
||||
<a-select v-model:value="queryParam.bpmStatus" placeholder="请选择" allow-clear @change="searchQuery">
|
||||
<a-select v-model:value="bpmStatusFilter" placeholder="请选择" allow-clear @change="handleBpmStatusChange">
|
||||
<a-select-option value="1">未开始</a-select-option>
|
||||
<a-select-option value="2">督办中</a-select-option>
|
||||
<a-select-option value="3">已完成</a-select-option>
|
||||
@@ -167,6 +167,7 @@ import { defHttp } from '/@/utils/http/axios';
|
||||
const feedbackViewModalRef = ref();
|
||||
const feedbackRightNowModalRef = ref();
|
||||
const businessProcessListModalRef = ref();
|
||||
const bpmStatusFilter = ref();
|
||||
const currentBusinessId = ref('');
|
||||
const pendingFeedbackRightNow = ref(0);
|
||||
const statsData = reactive({ notStarted: 0, inProgress: 0, overdue: 0, completed: 0 });
|
||||
@@ -880,10 +881,20 @@ import { defHttp } from '/@/utils/http/axios';
|
||||
function searchReset() {
|
||||
formRef.value?.resetFields();
|
||||
clearQueryParams();
|
||||
bpmStatusFilter.value = undefined;
|
||||
selectedRowKeys.value = [];
|
||||
reload({ page: 1 });
|
||||
}
|
||||
|
||||
function handleBpmStatusChange(value) {
|
||||
if (value != null) {
|
||||
queryParam.value.bpmStatus = value;
|
||||
} else {
|
||||
delete queryParam.value.bpmStatus;
|
||||
}
|
||||
reload({ page: 1 });
|
||||
}
|
||||
|
||||
/**
|
||||
* form点击事件(以逗号分割)
|
||||
*/
|
||||
|
||||
@@ -1,30 +1,79 @@
|
||||
<template>
|
||||
<JModal
|
||||
title="发起落实措施收集流程"
|
||||
:width="480"
|
||||
:visible="visible"
|
||||
<a-modal
|
||||
:width="520"
|
||||
:open="visible"
|
||||
:confirmLoading="confirming"
|
||||
okText="确认"
|
||||
cancelText="取消"
|
||||
@ok="handleOk"
|
||||
:footer="null"
|
||||
@cancel="handleCancel"
|
||||
wrapClassName="feedback-right-now-modal"
|
||||
>
|
||||
<a-form :label-col="{ style: { width: '100%' } }">
|
||||
<a-form-item>
|
||||
<a-radio-group v-model:value="feedbackRightNow">
|
||||
<a-space direction="vertical">
|
||||
<a-radio :value="1">落实措施收集流程结束后需要立即反馈</a-radio>
|
||||
<a-radio :value="0">无需立即反馈</a-radio>
|
||||
</a-space>
|
||||
</a-radio-group>
|
||||
</a-form-item>
|
||||
</a-form>
|
||||
</JModal>
|
||||
<template #title>
|
||||
<div class="modal-title">
|
||||
<Icon icon="ant-design:send-outlined" size="20" color="#1890ff" />
|
||||
<span>发起落实措施收集流程</span>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<div class="modal-content">
|
||||
<a-alert
|
||||
message="选择反馈方式"
|
||||
description="发起流程后,系统将根据所选方式决定是否在流程结束时自动生成反馈任务。"
|
||||
type="info"
|
||||
showIcon
|
||||
style="margin-bottom: 16px"
|
||||
/>
|
||||
|
||||
<a-radio-group v-model:value="feedbackRightNow" class="feedback-radio-group">
|
||||
<div
|
||||
class="feedback-option"
|
||||
:class="{ active: feedbackRightNow === 1 }"
|
||||
@click="feedbackRightNow = 1"
|
||||
>
|
||||
<div class="option-radio">
|
||||
<a-radio :value="1" />
|
||||
</div>
|
||||
<div class="option-body">
|
||||
<div class="option-title">
|
||||
<Icon icon="ant-design:notification-outlined" size="18" />
|
||||
<span>流程结束后需要立即反馈</span>
|
||||
</div>
|
||||
<div class="option-desc">
|
||||
流程审批完成后,将自动生成反馈任务通知相关人员及时提交落实反馈,适用于需快速跟进的场景。
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div
|
||||
class="feedback-option"
|
||||
:class="{ active: feedbackRightNow === 0 }"
|
||||
@click="feedbackRightNow = 0"
|
||||
>
|
||||
<div class="option-radio">
|
||||
<a-radio :value="0" />
|
||||
</div>
|
||||
<div class="option-body">
|
||||
<div class="option-title">
|
||||
<Icon icon="ant-design:clock-circle-outlined" size="18" />
|
||||
<span>无需立即反馈</span>
|
||||
</div>
|
||||
<div class="option-desc">
|
||||
仅发起流程,不自动生成即时反馈任务,后续可在台账中手动发起反馈。
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</a-radio-group>
|
||||
</div>
|
||||
|
||||
<div class="modal-footer">
|
||||
<a-button @click="handleCancel">取消</a-button>
|
||||
<a-button type="primary" :loading="confirming" @click="handleOk">确认发起</a-button>
|
||||
</div>
|
||||
</a-modal>
|
||||
</template>
|
||||
|
||||
<script lang="ts" setup>
|
||||
import { ref } from 'vue';
|
||||
import JModal from '/@/components/Modal/src/JModal/JModal.vue';
|
||||
import Icon from '/@/components/Icon/index';
|
||||
|
||||
const emit = defineEmits(['confirm']);
|
||||
|
||||
@@ -53,3 +102,90 @@
|
||||
|
||||
defineExpose({ open });
|
||||
</script>
|
||||
|
||||
<style lang="less" scoped>
|
||||
.modal-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 8px;
|
||||
font-size: 16px;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.modal-content {
|
||||
padding: 8px 0;
|
||||
}
|
||||
|
||||
.feedback-radio-group {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 12px;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.feedback-option {
|
||||
display: flex;
|
||||
align-items: flex-start;
|
||||
padding: 14px 16px;
|
||||
border: 1px solid #e8e8e8;
|
||||
border-radius: 6px;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s;
|
||||
|
||||
&:hover {
|
||||
border-color: #91d5ff;
|
||||
background: #f0f8ff;
|
||||
}
|
||||
|
||||
&.active {
|
||||
border-color: #1890ff;
|
||||
background: #e6f7ff;
|
||||
box-shadow: 0 0 0 1px #1890ff inset;
|
||||
}
|
||||
}
|
||||
|
||||
.option-radio {
|
||||
margin-top: 2px;
|
||||
margin-right: 12px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.option-body {
|
||||
flex: 1;
|
||||
min-width: 0;
|
||||
}
|
||||
|
||||
.option-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 6px;
|
||||
font-size: 14px;
|
||||
font-weight: 500;
|
||||
color: #262626;
|
||||
margin-bottom: 4px;
|
||||
}
|
||||
|
||||
.option-desc {
|
||||
font-size: 12px;
|
||||
color: #8c8c8c;
|
||||
line-height: 1.6;
|
||||
padding-left: 24px;
|
||||
}
|
||||
|
||||
.modal-footer {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
gap: 8px;
|
||||
padding-top: 16px;
|
||||
border-top: 1px solid #f0f0f0;
|
||||
margin-top: 4px;
|
||||
}
|
||||
</style>
|
||||
|
||||
<style lang="less">
|
||||
.feedback-right-now-modal {
|
||||
.ant-modal-body {
|
||||
padding: 20px 24px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user