lng计量业务

This commit is contained in:
‘huanghaiixia’
2026-03-17 17:31:26 +08:00
parent d7bdcc480c
commit 747db05c6f
10 changed files with 108 additions and 522 deletions

View File

@ -3,17 +3,52 @@ import { defHttp } from '/@/utils/http/axios';
import { ErrorMessageMode } from '/#/axios';
enum Api {
Page = '/dayPlan/lngMeasurePur/page',
// Page = '/dayPlan/lngMeasurePur/page',
Page = '/magic-api/dayPlan/lngMeasurePurPageList',
List = '/dayPlan/lngMeasurePur/list',
Info = '/dayPlan/lngMeasurePur/info',
LngLngMeasure = '/dayPlan/lngMeasurePur',
submit = '/dayPlan/lngMeasurePur/submit',
Cancel = '/dayPlan/lngMeasurePur/cancel',
Reject = '/dayPlan/lngMeasurePur/reject',
DataLog = '/dayPlan/lngMeasurePur/datalog',
}
export async function rejectlLngLngMeasurePur(lngLngMeasure: Recordable, mode: ErrorMessageMode = 'modal') {
return defHttp.post<boolean>(
{
url: Api.Reject,
params: lngLngMeasure,
},
{
errorMessageMode: mode,
},
);
}
export async function submitLngLngMeasurePur(lngLngMeasure: Recordable, mode: ErrorMessageMode = 'modal') {
return defHttp.post<boolean>(
{
url: Api.submit,
params: lngLngMeasure,
},
{
errorMessageMode: mode,
},
);
}
export async function cancelLngLngMeasurePur(lngLngMeasure: Recordable, mode: ErrorMessageMode = 'modal') {
return defHttp.post<boolean>(
{
url: Api.Cancel,
params: lngLngMeasure,
},
{
errorMessageMode: mode,
},
);
}
/**
* @description: 查询LngLngMeasure分页列表
*/

View File

@ -47,6 +47,7 @@ const props = defineProps({
() => props.visible,
(val) => {
isOpen.value = val
formRef.value && formRef.value.resetFields();
},
{
immediate: true,
@ -56,12 +57,13 @@ const props = defineProps({
const handleCancel = () => {
formRef.value.resetFields();
isOpen.value = false
emit('cancel');
}
const handleSubmit = async () => {
try {
await formRef.value.validate();
emit('success', formState);
formRef.value.resetFields();
// formRef.value.resetFields();
} catch (error) {
console.log('验证失败:', error);
}

View File

@ -63,7 +63,7 @@ export const columns: BasicColumn[] = [
title: '计划日期',
componentType: 'input',
align: 'left',
width: 120,
sorter: true,
},
@ -72,7 +72,7 @@ export const columns: BasicColumn[] = [
title: '客户简称',
componentType: 'input',
align: 'left',
width: 150,
sorter: true,
},
@ -81,7 +81,7 @@ export const columns: BasicColumn[] = [
title: '气源地',
componentType: 'input',
align: 'left',
width: 120,
sorter: true,
},
@ -90,7 +90,7 @@ export const columns: BasicColumn[] = [
title: '车头号',
componentType: 'input',
align: 'left',
width: 120,
sorter: true,
},
@ -99,7 +99,7 @@ export const columns: BasicColumn[] = [
title: '挂车号',
componentType: 'input',
align: 'left',
width: 120,
sorter: true,
},
@ -108,7 +108,7 @@ export const columns: BasicColumn[] = [
title: '装车量(吨)',
componentType: 'input',
align: 'left',
width: 120,
sorter: true,
},
@ -117,7 +117,7 @@ export const columns: BasicColumn[] = [
title: '装车量(吉焦)',
componentType: 'input',
align: 'left',
width: 120,
sorter: true,
},
@ -126,7 +126,7 @@ export const columns: BasicColumn[] = [
title: '装车量(方)',
componentType: 'input',
align: 'left',
width: 120,
sorter: true,
},
@ -135,7 +135,7 @@ export const columns: BasicColumn[] = [
title: '进厂皮重时间',
componentType: 'input',
align: 'left',
width: 180,
sorter: true,
},
@ -144,7 +144,7 @@ export const columns: BasicColumn[] = [
title: '出厂毛重时间',
componentType: 'input',
align: 'left',
width: 180,
sorter: true,
},
@ -153,7 +153,7 @@ export const columns: BasicColumn[] = [
title: '客户确认人',
componentType: 'input',
align: 'left',
width: 120,
sorter: true,
},
@ -162,7 +162,7 @@ export const columns: BasicColumn[] = [
title: '客户确认时间',
componentType: 'input',
align: 'left',
width: 180,
sorter: true,
},
@ -171,7 +171,7 @@ export const columns: BasicColumn[] = [
title: '内部确认人',
componentType: 'input',
align: 'left',
width: 120,
sorter: true,
},
@ -180,7 +180,7 @@ export const columns: BasicColumn[] = [
title: '内部确认时间',
componentType: 'input',
align: 'left',
width: 180,
sorter: true,
},
@ -189,7 +189,7 @@ export const columns: BasicColumn[] = [
title: '销售合同',
componentType: 'input',
align: 'left',
width: 180,
sorter: true,
},
@ -198,7 +198,7 @@ export const columns: BasicColumn[] = [
title: '供应商',
componentType: 'input',
align: 'left',
width: 180,
sorter: true,
},
@ -207,7 +207,7 @@ export const columns: BasicColumn[] = [
title: '附件',
componentType: 'input',
align: 'left',
width: 200,
sorter: true,
},
@ -216,7 +216,7 @@ export const columns: BasicColumn[] = [
title: '状态',
componentType: 'input',
align: 'left',
width: 100,
sorter: true,
},
@ -225,7 +225,7 @@ export const columns: BasicColumn[] = [
title: '驳回意见',
componentType: 'input',
align: 'left',
width: 130,
sorter: true,
},
];

View File

@ -27,7 +27,7 @@
</BasicTable>
<LngMeasurePurModal @register="registerModal" @success="handleSuccess" />
<DataLog :logId="logId" :logPath="logPath" v-model:visible="modalVisible"/>
<rejectReplyModal :visible="isOpen" @success="handleRejectReply" />
<rejectReplyModal :visible="isOpen" @success="handleRejectReply" @cancel="handleRejectCancel"/>
</PageWrapper>
</template>
<script lang="ts" setup>
@ -38,7 +38,7 @@
import { ref, computed, onMounted, onUnmounted, watch} from 'vue';
import { BasicTable, useTable, TableAction, ActionItem } from '/@/components/Table';
import { getLngLngMeasurePage, deleteLngLngMeasure} from '/@/api/dayPlan/LngMeasurePur';
import { getLngLngMeasurePage, deleteLngLngMeasure,submitLngLngMeasurePur,rejectlLngLngMeasurePur,cancelLngLngMeasurePur} from '/@/api/dayPlan/LngMeasurePur';
import { PageWrapper } from '/@/components/Page';
import { useMessage } from '/@/hooks/web/useMessage';
import { useI18n } from '/@/hooks/web/useI18n';
@ -112,7 +112,7 @@
},
schemas: customSearchFormSchema,
fieldMapToTime: [['datePlan', ['startDate', 'endDate'], 'YYYY-MM-DD']],
showResetButton: false,
showResetButton: true,
},
beforeFetch: (params) => {
return { ...params, FormId: formIdComputedRef.value, PK: 'id',page:params.limit };
@ -189,7 +189,7 @@
} else {
selectedKeys.value= [val?.id]
}
await submitLngPngMeasurePur(selectedKeys.value)
await submitLngLngMeasurePur(selectedKeys.value)
handleSuccess();
notification.success({
message: '提示',
@ -209,7 +209,7 @@
} else {
selectedKeys.value= [val?.id]
}
await cancelLngPngMeasurePur(selectedKeys.value)
await cancelLngLngMeasurePur(selectedKeys.value)
handleSuccess();
notification.success({
message: '提示',
@ -231,18 +231,25 @@
}
isOpen.value = true
}
const handleRejectCancel = ()=> {
isOpen.value = false
}
const handleRejectReply = async (val) => {
let obj = {
"ids": selectedKeys.value,
"rejNote": val.reply,
}
await rejectLngPngMeasurePur(obj)
try {
await rejectlLngLngMeasurePur(obj)
isOpen.value = false
handleSuccess();
notification.success({
message: '提示',
description: t('已驳回!'),
});
} catch (error) {
// isOpen.value = false
}
}
function handleDatalog (record: Recordable) {
modalVisible.value = true

View File

@ -39,7 +39,7 @@ export const columns: BasicColumn[] = [
title: '计划日期',
componentType: 'input',
align: 'left',
width: 120,
sorter: true,
},
@ -48,7 +48,7 @@ export const columns: BasicColumn[] = [
title: '气源地',
componentType: 'input',
align: 'left',
width: 120,
sorter: true,
},
@ -57,7 +57,7 @@ export const columns: BasicColumn[] = [
title: '车头号',
componentType: 'input',
align: 'left',
width: 120,
sorter: true,
},
@ -66,7 +66,7 @@ export const columns: BasicColumn[] = [
title: '挂车号',
componentType: 'input',
align: 'left',
width: 120,
sorter: true,
},
@ -75,7 +75,7 @@ export const columns: BasicColumn[] = [
title: '装车量(吨)',
componentType: 'input',
align: 'left',
width: 120,
sorter: true,
},
@ -84,7 +84,7 @@ export const columns: BasicColumn[] = [
title: '装车量(吉焦)',
componentType: 'input',
align: 'left',
width: 120,
sorter: true,
},
@ -93,7 +93,7 @@ export const columns: BasicColumn[] = [
title: '装车量(方)',
componentType: 'input',
align: 'left',
width: 120,
sorter: true,
},
@ -120,7 +120,7 @@ export const columns: BasicColumn[] = [
title: '附件',
componentType: 'input',
align: 'left',
width: 180,
sorter: true,
},
@ -129,7 +129,7 @@ export const columns: BasicColumn[] = [
title: '确认人',
componentType: 'input',
align: 'left',
width: 120,
sorter: true,
},
@ -138,7 +138,7 @@ export const columns: BasicColumn[] = [
title: '确认时间',
componentType: 'input',
align: 'left',
width: 180,
sorter: true,
},
@ -147,7 +147,7 @@ export const columns: BasicColumn[] = [
title: '业务确认人',
componentType: 'input',
align: 'left',
width: 120,
sorter: true,
},
@ -156,7 +156,7 @@ export const columns: BasicColumn[] = [
title: '业务确认时间',
componentType: 'input',
align: 'left',
width: 180,
sorter: true,
},
@ -165,7 +165,7 @@ export const columns: BasicColumn[] = [
title: '供应商',
componentType: 'input',
align: 'left',
width: 120,
sorter: true,
},
@ -174,7 +174,7 @@ export const columns: BasicColumn[] = [
title: '合同',
componentType: 'input',
align: 'left',
width: 150,
sorter: true,
},
@ -183,7 +183,7 @@ export const columns: BasicColumn[] = [
title: '状态',
componentType: 'input',
align: 'left',
width: 100,
sorter: true,
},
@ -192,7 +192,7 @@ export const columns: BasicColumn[] = [
title: '驳回意见',
componentType: 'input',
align: 'left',
width: 130,
sorter: true,
},
];

View File

@ -151,7 +151,7 @@
},
schemas: customSearchFormSchema,
fieldMapToTime: [['datePlan', ['startDate', 'endDate'], 'YYYY-MM-DD']],
showResetButton: false,
showResetButton: true,
},
immediate: false,
beforeFetch: (params) => {

View File

@ -1,467 +0,0 @@
<template>
<PageWrapper dense fixedHeight contentFullHeight contentClass="flex">
<BasicTable @register="registerTable" ref="tableRef" @row-dbClick="dbClickRow">
<template #toolbar>
<template v-for="button in tableButtonConfig" :key="button.code">
<a-button v-if="button.isDefault" :type="button.type" @click="buttonClick(button.code)">
<template #icon><Icon :icon="button.icon" /></template>
{{ button.name }}
</a-button>
<a-button v-else :type="button.type">
<template #icon><Icon :icon="button.icon" /></template>
{{ button.name }}
</a-button>
</template>
</template>
<template #bodyCell="{ column, record }">
<template v-if="column.dataIndex === 'approName'">
<a @click="btnCheck(record)">{{ record.approName }}</a>
</template>
<template v-if="column.dataIndex === 'action'">
<TableAction :actions="getActions(record)" />
</template>
</template>
</BasicTable>
<PngApproModal @register="registerModal" @success="handleSuccess" />
<DataLog :logId="logId" :logPath="logPath" v-model:visible="modalVisible"/>
<approStatusModal @register="registerApproStatus" ></approStatusModal>
<rejectReplyModal :visible="isOpen" @success="handleRejectReply" />
</PageWrapper>
</template>
<script lang="ts" setup>
const modalVisible = ref(false);
const logId = ref('')
const logPath = ref('/dayPlan/pngAppro/datalog');
import { DataLog } from '/@/components/pcitc';
import { ref, computed, onMounted, onUnmounted, } from 'vue';
import { BasicTable, useTable, TableAction, ActionItem } from '/@/components/Table';
import { getLngPngApproPage, deleteLngPngAppro} from '/@/api/dayPlan/PngAppro';
import { PageWrapper } from '/@/components/Page';
import { useMessage } from '/@/hooks/web/useMessage';
import { useI18n } from '/@/hooks/web/useI18n';
import { usePermission } from '/@/hooks/web/usePermission';
import { useFormConfig } from '/@/hooks/web/useFormConfig';
import { useRouter } from 'vue-router';
import { setIndexFlowStatus } from '/@/utils/flow/index'
import { getLngPngAppro,getLngPngApproPageGd, getLngPngApproPageJsz, approveLngPngApproSZ, approveLngPngApproGD, approveLngPngAppro
} from '/@/api/dayPlan/PngAppro';
import { useModal,BasicModal } from '/@/components/Modal';
import LookProcess from '/@/views/workflow/task/components/LookProcess.vue';
import LaunchProcess from '/@/views/workflow/task/components/LaunchProcess.vue';
import ApprovalProcess from '/@/views/workflow/task/components/ApprovalProcess.vue';
import { getDraftInfo } from '/@/api/workflow/process';
import { isValidJSON } from '/@/utils/event/design';
import PngApproModal from './components/PngApproModal.vue';
import {formConfig, searchFormSchema, columns, columnsGd, columnsJsz } from './components/config';
import Icon from '/@/components/Icon/index';
import FlowRecord from '/@/views/workflow/task/components/flow/FlowRecord.vue';
import approStatusModal from '/@/components/common/approStatusModal.vue';
import rejectReplyModal from '/@/components/common/rejectReplyModal.vue';
import useEventBus from '/@/hooks/event/useEventBus';
import { cloneDeep } from 'lodash-es';
const { bus, CREATE_FLOW, FLOW_PROCESSED, FORM_LIST_MODIFIED } = useEventBus();
const { notification } = useMessage();
const { t } = useI18n();
defineEmits(['register']);
const { filterColumnAuth, filterButtonAuth } = usePermission();
const { mergeColumns,mergeSearchFormSchema,mergeButtons } = useFormConfig();
const filterColumns = cloneDeep(filterColumnAuth(columns));
const customConfigColums =ref(filterColumns);
const customSearchFormSchema =ref(searchFormSchema);
const tableRef = ref();
//所有按钮
const buttons = ref([{"isUse":true,"name":"发起审批","code":"startwork","icon":"ant-design:form-outlined","isDefault":true},
{"isUse":true,"name":"查看流转记录","code":"flowRecord","icon":"ant-design:form-outlined","isDefault":true},
{"isUse":true,"name":"审批","code":"approveGD","icon":"ant-design:check-outlined","isDefault":true},
{"isUse":true,"name":"驳回","code":"reject","icon":"ant-design:stop-outlined","isDefault":true},
]);
//展示在列表内的按钮
const actionButtons = ref<string[]>(['view', 'edit','datalog', 'copyData', 'delete', 'startwork','flowRecord','approveGD','reject']);
const buttonConfigs = computed(()=>{
return filterButtonAuth(buttons.value);
})
const tableButtonConfig = computed(() => {
// return buttonConfigs.value?.filter((x) => !actionButtons.value.includes(x.code));
return [{"isUse":true,"name":"审批通过","code":"approveGD","icon":"ant-design:check-outlined","isDefault":true}]
});
const actionButtonConfig = computed(() => {
return buttonConfigs.value?.filter((x) => actionButtons.value.includes(x.code));
});
const btnEvent = {refresh : handleRefresh,view : handleView,startwork : handleStartwork,flowRecord : handleFlowRecord,approveGD : handleApprove,reject: handleReject}
const { currentRoute } = useRouter();
const router = useRouter();
const path = currentRoute.value?.path
const formIdComputedRef = ref();
formIdComputedRef.value = currentRoute.value.meta.formId
const schemaIdComputedRef = ref();
schemaIdComputedRef.value = currentRoute.value.meta.schemaId
const visibleLookProcessRef = ref(false);
const processIdRef = ref('');
const visibleLaunchProcessRef = ref(false);
const schemaIdRef = ref('');
const formDataRef = ref();
const rowKeyData = ref();
const draftsId = ref();
const selectedKeys = ref([])
const visibleApproveProcessRef = ref(false);
const taskIdRef = ref('');
const visibleFlowRecordModal = ref(false);
const [registerModal, { openModal}] = useModal();
const [registerApproStatus, { openModal: openModalApproStatus}] = useModal();
const [registerRejectReply, { openModal: openModalRejectReply}] = useModal();
const isOpen = ref(false)
const curData = ref({})
let formName='管道气销售审批';
let curPath = 'dayPlan/PngAppro/index'
let request = ''
let requestApprove = ''
if (path.includes('dayPlan/PngAppro/index')) {
formName='管道气销售审批'
curPath = 'dayPlan/PngAppro/index'
request = getLngPngApproPage
requestApprove = approveLngPngAppro
}
if (path.includes('dayPlan/pngPipeAppro/index')) {
formName='管道气管道审批'
curPath = 'dayPlan/pngPipeAppro'
request = getLngPngApproPageGd
requestApprove = approveLngPngApproGD
}
if (path.includes('dayPlan/pngReceiveStationAppro/index')) {
formName='管道气接收站审批'
curPath = 'dayPlan/pngReceiveStationAppro'
request = getLngPngApproPageJsz
requestApprove = approveLngPngApproSZ
}
const [registerTable, { reload, clearSelectedRowKeys, setTableData }] = useTable({
title: '' || (formName + '列表'),
api: request,
rowKey: 'datePlan',
columns: curPath.includes('pngPipeAppro') ? columnsGd : columnsJsz,
formConfig: {
rowProps: {
gutter: 16,
},
schemas: [],
fieldMapToTime: [['datePlan', ['startDate', 'endDate'], 'YYYY-MM-DD HH:mm:ss ', true]],
showResetButton: false,
showSubmitButton: false,
},
beforeFetch: (params) => {
return { ...params, FormId: formIdComputedRef.value, PK: 'id',page: params.limit};
},
afterFetch: (res) => {
tableRef.value.setToolBarWidth();
},
useSearchForm: true,
showTableSetting: true,
striped: false,
actionColumn: {
width: 160,
title: '操作',
dataIndex: 'action',
slots: { customRender: 'action' },
},
rowSelection: {
type: 'checkbox',
onChange: onSelectChange
},
tableSetting: {
size: false,
setting: false,
},
});
const btnCheck = (record)=> {
openModalApproStatus(true,{isUpdate: false,id:record.demandId});
}
function onSelectChange(rowKeys: string[]) {
selectedKeys.value = rowKeys;
}
function dbClickRow(record) {
if (!actionButtonConfig?.value.some(element => element.code == 'view')) {
return;
}
const { processId, taskIds, schemaId } = record.workflowData || {};
if (taskIds && taskIds.length) {
router.push({
path: '/flow/' + schemaId + '/' + (processId || '') + '/approveFlow',
query: {
taskId: taskIds[0],
formName: formName,
formId:currentRoute.value.meta.formId
}
});
} else if (schemaId && !taskIds && processId) {
router.push({
path: '/flow/' + schemaId + '/' + processId + '/approveFlow',
query: {
readonly: 1,
taskId: '',
formName: formName,
formId:currentRoute.value.meta.formId
}
});
} else {
router.push({
path: '/dayPlan/PngAppro/createForm',
query: {
formPath: curPath,
formName: formName,
formId:currentRoute.value.meta.formId,
id: record.id,
type: 'view'
}
});
// router.push({
// path: '/form/PngAppro/' + record.id + '/viewForm',
// query: {
// formPath: 'dayPlan/PngAppro',
// formName: formName,
// formId:currentRoute.value.meta.formId
// }
// });
}
}
function buttonClick(code) {
btnEvent[code]();
}
function handleDatalog (record: Recordable) {
modalVisible.value = true
logId.value = record.id
}
function handleRefresh() {
reload();
}
function handleSuccess() {
reload();
}
function handleView(record: Recordable) {
dbClickRow(record);
}
async function handleApprove(record: Recordable) {
let obj = {
"result": "C",
"remark": "",
"data": [{datePlan: record.datePlan}]
}
await requestApprove(obj)
handleSuccess();
notification.success({
message: 'Tip',
description: t('审批成功!'),
});
}
function handleReject (record: Recordable) {
curData.value = record
isOpen.value = true
}
const handleRejectReply = async (val) => {
let obj = {
"result": "R",
"remark": val.reply,
"data": [{datePlan: curData.value.datePlan}]
}
await requestApprove(obj)
isOpen.value = false
handleSuccess();
notification.success({
message: 'Tip',
description: t('已驳回!'),
});
}
async function handleBatchApprove () {
if (!selectedKeys.value.length) {
notification.warning({
message: 'Tip',
description: t('请选择需要审批的数据'),
});
return;
}
let arr = selectedKeys.value.map(v=> {
return {
datePlan: v
}
})
let obj = {
"result": "C",
"remark": "",
"data": arr
}
await requestApprove(obj)
handleSuccess();
notification.success({
message: 'Tip',
description: t('审批成功!'),
});
clearSelectedRowKeys()
}
onMounted(() => {
if (schemaIdComputedRef.value) {
bus.on(FLOW_PROCESSED, handleRefresh);
bus.on(CREATE_FLOW, handleRefresh);
} else {
bus.on(FORM_LIST_MODIFIED, handleRefresh);
}
// 合并渲染覆盖配置中的列表配置,包括展示字段配置、搜索字段配置、按钮配置
mergeCustomListRenderConfig();
});
onUnmounted(() => {
if (schemaIdComputedRef.value) {
bus.off(FLOW_PROCESSED, handleRefresh);
bus.off(CREATE_FLOW, handleRefresh);
} else {
bus.off(FORM_LIST_MODIFIED, handleRefresh);
}
});
function getActions(record: Recordable):ActionItem[] {
let actionsList: ActionItem[] = [];
let editAndDelBtn: ActionItem[] = [];
let hasFlowRecord = false;
actionButtonConfig.value?.map((button) => {
if (['view', 'copyData', 'approve', 'reject'].includes(button.code)) {
actionsList.push({
icon: button?.icon,
tooltip: button?.name,
onClick: btnEvent[button.code].bind(null, record),
});
}
if (['edit', 'delete'].includes(button.code)) {
editAndDelBtn.push({
icon: button?.icon,
tooltip: button?.name,
color: button.code === 'delete' ? 'error' : undefined,
onClick: btnEvent[button.code].bind(null, record),
});
}
if (button.code === 'flowRecord') hasFlowRecord = true;
});
// if (record.workflowData?.enabled) {
// //与工作流有关联的表单
// if (record.workflowData.status) {
// actionsList.unshift(setIndexFlowStatus(record.workflowData))
// } else {
// actionsList = actionsList.concat(editAndDelBtn);
// }
// } else {
// if (!record.workflowData?.processId) {
// //与工作流没有关联的表单并且在当前页面新增的数据 如选择编辑、删除按钮则加上
// actionsList = actionsList.concat(editAndDelBtn);
// }
// }
return actionsList;
}
function handleStartwork(record: Recordable) {
const { processId, schemaId } = record.workflowData;
router.push({
path: '/flow/' + schemaId + '/' + (processId || '') + '/approveFlow',
query: {
readonly: 1,
taskId: '',
formName: formName
}
});
}
function handleFlowRecord(record: Recordable) {
if (record.workflowData) {
visibleFlowRecordModal.value = true;
processIdRef.value = record.workflowData?.processId;
}
}
async function handleLaunchProcess(record: Recordable) {
const schemaId=record.workflowData?.schemaId||schemaIdComputedRef.value;
if(schemaId){
if(record.workflowData?.draftId){
let res = await getDraftInfo(record.workflowData.draftId);
if (isValidJSON(res.formData)) {
localStorage.setItem('draftsJsonStr', res.formData);
router.push({
path: '/flow/' + schemaId + '/'+record.workflowData.draftId+'/createFlow'
});
return;
}
}
const result = await getLngPngAppro(record['id']);
const form={};
const key="form_"+schemaId+"_"+record['id'];
form[key]=result;
localStorage.setItem('formJsonStr', JSON.stringify(form));
router.push({
path: '/flow/' + schemaId + '/0/createFlow',
query: {
fromKey: key
}
});
}
}
function handleApproveProcess(record: Recordable) {
const { processId, taskIds, schemaId } = record.workflowData;
router.push({
path: '/flow/' + schemaId + '/' + processId + '/approveFlow',
query: {
taskId: taskIds[0],
formName: formName
}
});
}
function handleCloseLaunch() {
visibleLaunchProcessRef.value = false;
reload();
}
function handleCloseApproval() {
visibleApproveProcessRef.value = false;
reload();
}
async function mergeCustomListRenderConfig(){
if (formConfig.useCustomConfig) {
let formId=currentRoute.value.meta.formId;
//1.合并展示字段配置
let cols= await mergeColumns(customConfigColums.value,formId);
customConfigColums.value=cols;
//2.合并搜索字段配置
let sFormSchema= await mergeSearchFormSchema(customSearchFormSchema.value,formId);
customSearchFormSchema.value=sFormSchema;
//3.合并按钮配置
let btns= await mergeButtons(buttons.value,formId);
buttons.value=btns;
}
};
</script>
<style lang="less" scoped>
:deep(.ant-table-selection-col) {
width: 50px;
}
.show{
display: flex;
}
.hide{
display: none !important;
}
</style>

View File

@ -34,7 +34,7 @@
</BasicTable>
<PngApproGdModal @register="registerModal" @success="handleSuccess" />
<DataLog :logId="logId" :logPath="logPath" v-model:visible="modalVisible"/>
<rejectReplyModal :visible="isOpen" @success="handleRejectReply" />
<rejectReplyModal :visible="isOpen" @success="handleRejectReply" @cancel="handleRejectCancel"/>
</PageWrapper>
</template>
<script lang="ts" setup>
@ -166,6 +166,9 @@
curData.value = record
isOpen.value = true
}
const handleRejectCancel = ()=> {
isOpen.value = false
}
const handleRejectReply = async (val) => {
let obj = {
"result": "R",

View File

@ -34,7 +34,7 @@
</BasicTable>
<PngApproJszModal @register="registerModal" @success="handleSuccess" />
<DataLog :logId="logId" :logPath="logPath" v-model:visible="modalVisible"/>
<rejectReplyModal :visible="isOpen" @success="handleRejectReply" />
<rejectReplyModal :visible="isOpen" @success="handleRejectReply" @cancel="handleRejectCancel"/>
</PageWrapper>
</template>
<script lang="ts" setup>
@ -180,6 +180,9 @@
curData.value = record
isOpen.value = true
}
const handleRejectCancel = ()=> {
isOpen.value = false
}
const handleRejectReply = async (val) => {
let obj = {
"result": "R",

View File

@ -27,7 +27,7 @@
</BasicTable>
<PngMeasurePurModal @register="registerModal" @success="handleSuccess" />
<DataLog :logId="logId" :logPath="logPath" v-model:visible="modalVisible"/>
<rejectReplyModal :visible="isOpen" @success="handleRejectReply" />
<rejectReplyModal :visible="isOpen" @success="handleRejectReply" @cancel="handleRejectCancel"/>
</PageWrapper>
</template>
<script lang="ts" setup>
@ -235,6 +235,9 @@
}
isOpen.value = true
}
const handleRejectCancel = ()=> {
isOpen.value = false
}
const handleRejectReply = async (val) => {
let obj = {
"ids": selectedKeys.value,