423e0317 by lihua

质量评估,价值评估支持不走流程配置

1 parent 013e2f9d
......@@ -444,6 +444,41 @@ export const getRegisterExchangeList = () => request({
method: 'get'
})
/** 获取合同列表 */
export const getContractList = (params) => request({
url: `${import.meta.env.VITE_API_NEW_PORTAL}/dam-contract/page-list`,
method: 'post',
data: params
})
/** 新增合同 */
export const saveDamContract = (params) => request({
url: `${import.meta.env.VITE_API_NEW_PORTAL}/dam-contract/save`,
method: 'post',
data: params
})
/** 更新合同 */
export const updateDamContract = (params) => request({
url: `${import.meta.env.VITE_API_NEW_PORTAL}/dam-contract/update`,
method: 'put',
data: params
})
/** 删除合同 */
export const delDamContract = (params) => request({
url: `${import.meta.env.VITE_API_NEW_PORTAL}/dam-contract/delete`,
method: 'delete',
data: params
})
/** 获取会员列表 */
export const getTenantList = (params) => request({
url: `${import.meta.env.VITE_APP_PERSONAL_URL}/tenant/singlePage`,
method: 'post',
data: params
})
// API详情
/** 查询域名和文根 */
/** api类型,有表单类型,自定义sql. */
......
......@@ -78,3 +78,8 @@ export const crossPlatformApprove = (params) => request({
method: 'post',
data: {}
})
/** 功能流程配置-获取是否需要审批 */
export const isNeedApprove = (params) => request({
url: `${import.meta.env.VITE_APP_WORK_FLOW_URL}/func-flow-config/is-need-approve?funcCode=${params.funcCode}`,
method: 'get',
})
......
......@@ -106,7 +106,7 @@ const getDrawerConRef = (refName) => {
}
// const drawerForm = drawerFormRef.value[0] || drawerFormRef.value;
if (refName == 'drawerFormRef') {
const drawerForm = drawerFormRef.value[0] || drawerFormRef.value;
const drawerForm = drawerFormRef.value?.[0] || drawerFormRef.value;
return drawerForm
}
}
......@@ -153,11 +153,13 @@ const tableBtnClick = (scope, btn) => {
const submitForm = async (formEl: FormInstance | undefined, btn) => {
if (!formEl) return;
await formEl.validate((valid, fields) => {
const drawerForm = drawerFormRef.value[0] || drawerFormRef.value;
if (valid) {
const drawerForm = drawerFormRef.value[0] || drawerFormRef.value;
const formInfo = drawerForm.formInline;
emits("drawerBtnClick", btn, formInfo);
} else {
var obj = fields && Object.keys(fields);
obj?.[0] && formEl?.scrollToField(obj?.[0])
console.log("error submit!", fields);
}
});
......
......@@ -1452,7 +1452,8 @@ const panelChange = (scope, row) => {
:disabled="item.disabled || readonly" @change="(val) => cascaderChange(val, item)" />
<template v-else-if="item.type && item.type.indexOf('date') > -1">
<el-date-picker :class="[item.col, { is_block: item.block }]" v-if="item.type == 'date-picker'"
v-model="formInline[item.field]" type="daterange" range-separator="至" start-placeholder="开始日期"
v-model="formInline[item.field]" type="daterange" range-separator="至" start-placeholder="开始日期" :format="item.format ?? null"
:value-format="item.valueFormat ?? null"
end-placeholder="结束日期" :unlink-panels="item.unlink ?? false" :shortcuts="item.shortcuts ?? []"
:default-value="item.defaultDate" :disabled="item.disabled ?? false" />
<el-date-picker :class="[item.col, { is_block: item.block }]" v-else-if="item.type == 'date-year'"
......
......@@ -182,6 +182,10 @@ onMounted(() => {
<el-date-picker v-model="formInline[item.field]" type="datetimerange" start-placeholder="开始时间"
end-placeholder="结束时间" />
</template>
<template v-else-if="item.type == 'date-range'">
<el-date-picker v-model="formInline[item.field]" type="daterange" :start-placeholder="item.startPlaceholder ?? '开始日期'" format="YYYY-MM-DD" value-format="YYYY-MM-DD"
:end-placeholder="item.endPlaceholder ?? '结束日期'" />
</template>
<template v-else-if="item.type == 'radio-button'">
<el-radio-group v-model="formInline[item.field]" @change="radioGroupChange">
<el-radio-button v-for="opts in item.options" :label="opts.label" />
......
......@@ -217,6 +217,27 @@ const routes: RouteRecordRaw[] = [
},
},
]
},
{
path: '/data-asset-register/contract-progress',
component: Layout,
meta: {
title: '合同进度一览',
icon: 'ep:grid',
},
children: [
{
path: '',
name: 'contractProgress',
component: () => import('@/views/data_asset/contractProgress.vue'),
meta: {
title: '合同进度一览',
sidebar: false,
cache: true,
breadcrumb: false,
},
},
]
}
]
export default routes
......
......@@ -114,7 +114,7 @@ const getDetailInfo = () => {
if (res.code == proxy.$passCode) {
const data = res.data || {};
evaDetailInfo.value = data;
deploymentId.value = data.approveVO.camundaDeploymentId;
deploymentId.value = data.approveVO?.camundaDeploymentId;
processInstanceId.value = data.approveVO?.camundaInstanceId;
} else {
proxy.$ElMessage.error(res.msg);
......@@ -127,7 +127,7 @@ const getDetailInfo = () => {
const data = res.data || {};
costAssessDetail.value = data;
evaDetailInfo.value = data;
deploymentId.value = data.approveVO.camundaDeploymentId;
deploymentId.value = data.approveVO?.camundaDeploymentId;
processInstanceId.value = data.approveVO?.camundaInstanceId;
} else {
proxy.$ElMessage.error(res.msg);
......@@ -209,6 +209,9 @@ const toolBtns: any = computed(() => {
label: "关闭", value: "cancel", plain: true
}];
let approveVO = evaDetailInfo.value.approveVO || costAssessDetail.value.approveVO;
if (!approveVO) {
return btnsArr;
}
let staffGuid = userData.staffGuid;
if (approveVO && approveVO.approveState == 'A' && approveVO.approveStaffGuids && approveVO.approveStaffGuids.indexOf(staffGuid) > -1) {
btnsArr.push(...[{ label: "通过", value: "pass", type: 'primary' }, { label: "驳回", value: "reject", type: 'danger', plain: true }]);
......@@ -1171,7 +1174,7 @@ const handleClick = () => {
</div>
</ContentWrap>
<ContentWrap v-if="route.query.type == 'qualityEvaluate' || route.query.type == 'costAssess'" id="id-approveInfo"
<ContentWrap v-if="(route.query.type == 'qualityEvaluate' && evaDetailInfo.approveVO && evaDetailInfo.isApprove !='N') || (route.query.type == 'costAssess' && costAssessDetail.approveVO && costAssessDetail.isApprove !='N')" id="id-approveInfo"
title="审批信息" description="" style="margin: 16px 16px 16px">
<ApprovalProcess ref="approvalProcessRef" v-if="deploymentId" :deploymentId="deploymentId" :processInstanceId="processInstanceId">
</ApprovalProcess>
......
......@@ -78,7 +78,7 @@ const getDetailInfo = () => {
const data = res.data || {};
evaDetailInfo.value = data;
detailInfo.value = data;
deploymentId.value = data.approveVO.camundaDeploymentId;
deploymentId.value = data.approveVO?.camundaDeploymentId;
processInstanceId.value = data.approveVO?.camundaInstanceId;
//需要显示质量评价信息
if (data.qualityScore != null) {
......@@ -90,6 +90,9 @@ const getDetailInfo = () => {
tabsInfo.value.tabs.splice(3, 1);
}
}
if (evaDetailInfo.value.isApprove == 'N') {
tabsInfo.value.tabs.pop();
}
if (fullPath === route.fullPath) {
document.title = `详情-${data.daName}`;
}
......@@ -124,7 +127,7 @@ const getDetailInfo = () => {
const data = res.data || {};
costAssessDetailInfo.value = data;
detailInfo.value = data;
deploymentId.value = data.approveVO.camundaDeploymentId;
deploymentId.value = data.approveVO?.camundaDeploymentId;
processInstanceId.value = data.approveVO?.camundaInstanceId;
// 需要显示价值评估信息
if (data.assessmentMoney != null) {
......@@ -136,7 +139,9 @@ const getDetailInfo = () => {
tabsInfo.value.tabs.splice(3, 1);
}
}
if (costAssessDetailInfo.value.isApprove == 'N') {
tabsInfo.value.tabs.pop();
}
if (data.qualityScore) {
// 确保"质量评价"标签存在于tabs中,并插入到"价值评估"前面
const qualityTabIndex = tabsInfo.value.tabs.findIndex(tab => tab.name === "qualityEvaluate");
......@@ -285,8 +290,8 @@ const getDetailInfo = () => {
let { approveVO } = data;
detailInfo.value = data;
assetDetailInfo.value = data;
deploymentId.value = approveVO.camundaDeploymentId;
processInstanceId.value = approveVO.camundaInstanceId;
deploymentId.value = approveVO?.camundaDeploymentId;
processInstanceId.value = approveVO?.camundaInstanceId;
isTextTruncated();
} else {
ElMessage.error(res.msg);
......@@ -446,6 +451,9 @@ const toolBtns: any = computed(() => {
return btnsArr;
}
let approveVO = detailInfo.value.approveVO;
if (!approveVO) {
return btnsArr;
}
let staffGuid = userData.staffGuid;
if (approveVO && approveVO.approveState == 'A' && approveVO.approveStaffGuids && approveVO.approveStaffGuids.indexOf(staffGuid) > -1) {
btnsArr.push(...[{ label: "通过", value: "pass", type: 'primary' }, { label: "驳回", value: "reject", type: 'danger', plain: true }]);
......@@ -1749,7 +1757,7 @@ const passCommonDialogBtnClick = (btn, info) => {
</div>
</ContentWrap>
<ContentWrap id="id-approveInfo" title="审批信息" expandSwicth style="margin-top: 15px"
:isExpand="approveInfoExpand" @expand="(v) => approveInfoExpand = v" v-if="route.query.type != 'certificate'">
:isExpand="approveInfoExpand" @expand="(v) => approveInfoExpand = v" v-if="tabsInfo.tabs.find(t => t.name == 'approveInfo') && route.query.type != 'certificate'">
<!-- <Table :tableInfo="approveTableInfo" /> -->
<ApprovalProcess ref="approvalProcessRef" v-if="deploymentId" :deploymentId="deploymentId"
:processInstanceId="processInstanceId">
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!