423e0317 by lihua

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

1 parent 013e2f9d
...@@ -444,6 +444,41 @@ export const getRegisterExchangeList = () => request({ ...@@ -444,6 +444,41 @@ export const getRegisterExchangeList = () => request({
444 method: 'get' 444 method: 'get'
445 }) 445 })
446 446
447 /** 获取合同列表 */
448 export const getContractList = (params) => request({
449 url: `${import.meta.env.VITE_API_NEW_PORTAL}/dam-contract/page-list`,
450 method: 'post',
451 data: params
452 })
453
454 /** 新增合同 */
455 export const saveDamContract = (params) => request({
456 url: `${import.meta.env.VITE_API_NEW_PORTAL}/dam-contract/save`,
457 method: 'post',
458 data: params
459 })
460
461 /** 更新合同 */
462 export const updateDamContract = (params) => request({
463 url: `${import.meta.env.VITE_API_NEW_PORTAL}/dam-contract/update`,
464 method: 'put',
465 data: params
466 })
467
468 /** 删除合同 */
469 export const delDamContract = (params) => request({
470 url: `${import.meta.env.VITE_API_NEW_PORTAL}/dam-contract/delete`,
471 method: 'delete',
472 data: params
473 })
474
475 /** 获取会员列表 */
476 export const getTenantList = (params) => request({
477 url: `${import.meta.env.VITE_APP_PERSONAL_URL}/tenant/singlePage`,
478 method: 'post',
479 data: params
480 })
481
447 // API详情 482 // API详情
448 /** 查询域名和文根 */ 483 /** 查询域名和文根 */
449 /** api类型,有表单类型,自定义sql. */ 484 /** api类型,有表单类型,自定义sql. */
......
...@@ -78,3 +78,8 @@ export const crossPlatformApprove = (params) => request({ ...@@ -78,3 +78,8 @@ export const crossPlatformApprove = (params) => request({
78 method: 'post', 78 method: 'post',
79 data: {} 79 data: {}
80 }) 80 })
81 /** 功能流程配置-获取是否需要审批 */
82 export const isNeedApprove = (params) => request({
83 url: `${import.meta.env.VITE_APP_WORK_FLOW_URL}/func-flow-config/is-need-approve?funcCode=${params.funcCode}`,
84 method: 'get',
85 })
......
...@@ -106,7 +106,7 @@ const getDrawerConRef = (refName) => { ...@@ -106,7 +106,7 @@ const getDrawerConRef = (refName) => {
106 } 106 }
107 // const drawerForm = drawerFormRef.value[0] || drawerFormRef.value; 107 // const drawerForm = drawerFormRef.value[0] || drawerFormRef.value;
108 if (refName == 'drawerFormRef') { 108 if (refName == 'drawerFormRef') {
109 const drawerForm = drawerFormRef.value[0] || drawerFormRef.value; 109 const drawerForm = drawerFormRef.value?.[0] || drawerFormRef.value;
110 return drawerForm 110 return drawerForm
111 } 111 }
112 } 112 }
...@@ -153,11 +153,13 @@ const tableBtnClick = (scope, btn) => { ...@@ -153,11 +153,13 @@ const tableBtnClick = (scope, btn) => {
153 const submitForm = async (formEl: FormInstance | undefined, btn) => { 153 const submitForm = async (formEl: FormInstance | undefined, btn) => {
154 if (!formEl) return; 154 if (!formEl) return;
155 await formEl.validate((valid, fields) => { 155 await formEl.validate((valid, fields) => {
156 const drawerForm = drawerFormRef.value[0] || drawerFormRef.value;
156 if (valid) { 157 if (valid) {
157 const drawerForm = drawerFormRef.value[0] || drawerFormRef.value;
158 const formInfo = drawerForm.formInline; 158 const formInfo = drawerForm.formInline;
159 emits("drawerBtnClick", btn, formInfo); 159 emits("drawerBtnClick", btn, formInfo);
160 } else { 160 } else {
161 var obj = fields && Object.keys(fields);
162 obj?.[0] && formEl?.scrollToField(obj?.[0])
161 console.log("error submit!", fields); 163 console.log("error submit!", fields);
162 } 164 }
163 }); 165 });
......
...@@ -1452,7 +1452,8 @@ const panelChange = (scope, row) => { ...@@ -1452,7 +1452,8 @@ const panelChange = (scope, row) => {
1452 :disabled="item.disabled || readonly" @change="(val) => cascaderChange(val, item)" /> 1452 :disabled="item.disabled || readonly" @change="(val) => cascaderChange(val, item)" />
1453 <template v-else-if="item.type && item.type.indexOf('date') > -1"> 1453 <template v-else-if="item.type && item.type.indexOf('date') > -1">
1454 <el-date-picker :class="[item.col, { is_block: item.block }]" v-if="item.type == 'date-picker'" 1454 <el-date-picker :class="[item.col, { is_block: item.block }]" v-if="item.type == 'date-picker'"
1455 v-model="formInline[item.field]" type="daterange" range-separator="至" start-placeholder="开始日期" 1455 v-model="formInline[item.field]" type="daterange" range-separator="至" start-placeholder="开始日期" :format="item.format ?? null"
1456 :value-format="item.valueFormat ?? null"
1456 end-placeholder="结束日期" :unlink-panels="item.unlink ?? false" :shortcuts="item.shortcuts ?? []" 1457 end-placeholder="结束日期" :unlink-panels="item.unlink ?? false" :shortcuts="item.shortcuts ?? []"
1457 :default-value="item.defaultDate" :disabled="item.disabled ?? false" /> 1458 :default-value="item.defaultDate" :disabled="item.disabled ?? false" />
1458 <el-date-picker :class="[item.col, { is_block: item.block }]" v-else-if="item.type == 'date-year'" 1459 <el-date-picker :class="[item.col, { is_block: item.block }]" v-else-if="item.type == 'date-year'"
......
...@@ -182,6 +182,10 @@ onMounted(() => { ...@@ -182,6 +182,10 @@ onMounted(() => {
182 <el-date-picker v-model="formInline[item.field]" type="datetimerange" start-placeholder="开始时间" 182 <el-date-picker v-model="formInline[item.field]" type="datetimerange" start-placeholder="开始时间"
183 end-placeholder="结束时间" /> 183 end-placeholder="结束时间" />
184 </template> 184 </template>
185 <template v-else-if="item.type == 'date-range'">
186 <el-date-picker v-model="formInline[item.field]" type="daterange" :start-placeholder="item.startPlaceholder ?? '开始日期'" format="YYYY-MM-DD" value-format="YYYY-MM-DD"
187 :end-placeholder="item.endPlaceholder ?? '结束日期'" />
188 </template>
185 <template v-else-if="item.type == 'radio-button'"> 189 <template v-else-if="item.type == 'radio-button'">
186 <el-radio-group v-model="formInline[item.field]" @change="radioGroupChange"> 190 <el-radio-group v-model="formInline[item.field]" @change="radioGroupChange">
187 <el-radio-button v-for="opts in item.options" :label="opts.label" /> 191 <el-radio-button v-for="opts in item.options" :label="opts.label" />
......
...@@ -217,6 +217,27 @@ const routes: RouteRecordRaw[] = [ ...@@ -217,6 +217,27 @@ const routes: RouteRecordRaw[] = [
217 }, 217 },
218 }, 218 },
219 ] 219 ]
220 },
221 {
222 path: '/data-asset-register/contract-progress',
223 component: Layout,
224 meta: {
225 title: '合同进度一览',
226 icon: 'ep:grid',
227 },
228 children: [
229 {
230 path: '',
231 name: 'contractProgress',
232 component: () => import('@/views/data_asset/contractProgress.vue'),
233 meta: {
234 title: '合同进度一览',
235 sidebar: false,
236 cache: true,
237 breadcrumb: false,
238 },
239 },
240 ]
220 } 241 }
221 ] 242 ]
222 export default routes 243 export default routes
......
...@@ -114,7 +114,7 @@ const getDetailInfo = () => { ...@@ -114,7 +114,7 @@ const getDetailInfo = () => {
114 if (res.code == proxy.$passCode) { 114 if (res.code == proxy.$passCode) {
115 const data = res.data || {}; 115 const data = res.data || {};
116 evaDetailInfo.value = data; 116 evaDetailInfo.value = data;
117 deploymentId.value = data.approveVO.camundaDeploymentId; 117 deploymentId.value = data.approveVO?.camundaDeploymentId;
118 processInstanceId.value = data.approveVO?.camundaInstanceId; 118 processInstanceId.value = data.approveVO?.camundaInstanceId;
119 } else { 119 } else {
120 proxy.$ElMessage.error(res.msg); 120 proxy.$ElMessage.error(res.msg);
...@@ -127,7 +127,7 @@ const getDetailInfo = () => { ...@@ -127,7 +127,7 @@ const getDetailInfo = () => {
127 const data = res.data || {}; 127 const data = res.data || {};
128 costAssessDetail.value = data; 128 costAssessDetail.value = data;
129 evaDetailInfo.value = data; 129 evaDetailInfo.value = data;
130 deploymentId.value = data.approveVO.camundaDeploymentId; 130 deploymentId.value = data.approveVO?.camundaDeploymentId;
131 processInstanceId.value = data.approveVO?.camundaInstanceId; 131 processInstanceId.value = data.approveVO?.camundaInstanceId;
132 } else { 132 } else {
133 proxy.$ElMessage.error(res.msg); 133 proxy.$ElMessage.error(res.msg);
...@@ -209,6 +209,9 @@ const toolBtns: any = computed(() => { ...@@ -209,6 +209,9 @@ const toolBtns: any = computed(() => {
209 label: "关闭", value: "cancel", plain: true 209 label: "关闭", value: "cancel", plain: true
210 }]; 210 }];
211 let approveVO = evaDetailInfo.value.approveVO || costAssessDetail.value.approveVO; 211 let approveVO = evaDetailInfo.value.approveVO || costAssessDetail.value.approveVO;
212 if (!approveVO) {
213 return btnsArr;
214 }
212 let staffGuid = userData.staffGuid; 215 let staffGuid = userData.staffGuid;
213 if (approveVO && approveVO.approveState == 'A' && approveVO.approveStaffGuids && approveVO.approveStaffGuids.indexOf(staffGuid) > -1) { 216 if (approveVO && approveVO.approveState == 'A' && approveVO.approveStaffGuids && approveVO.approveStaffGuids.indexOf(staffGuid) > -1) {
214 btnsArr.push(...[{ label: "通过", value: "pass", type: 'primary' }, { label: "驳回", value: "reject", type: 'danger', plain: true }]); 217 btnsArr.push(...[{ label: "通过", value: "pass", type: 'primary' }, { label: "驳回", value: "reject", type: 'danger', plain: true }]);
...@@ -1171,7 +1174,7 @@ const handleClick = () => { ...@@ -1171,7 +1174,7 @@ const handleClick = () => {
1171 </div> 1174 </div>
1172 </ContentWrap> 1175 </ContentWrap>
1173 1176
1174 <ContentWrap v-if="route.query.type == 'qualityEvaluate' || route.query.type == 'costAssess'" id="id-approveInfo" 1177 <ContentWrap v-if="(route.query.type == 'qualityEvaluate' && evaDetailInfo.approveVO && evaDetailInfo.isApprove !='N') || (route.query.type == 'costAssess' && costAssessDetail.approveVO && costAssessDetail.isApprove !='N')" id="id-approveInfo"
1175 title="审批信息" description="" style="margin: 16px 16px 16px"> 1178 title="审批信息" description="" style="margin: 16px 16px 16px">
1176 <ApprovalProcess ref="approvalProcessRef" v-if="deploymentId" :deploymentId="deploymentId" :processInstanceId="processInstanceId"> 1179 <ApprovalProcess ref="approvalProcessRef" v-if="deploymentId" :deploymentId="deploymentId" :processInstanceId="processInstanceId">
1177 </ApprovalProcess> 1180 </ApprovalProcess>
......
...@@ -78,7 +78,7 @@ const getDetailInfo = () => { ...@@ -78,7 +78,7 @@ const getDetailInfo = () => {
78 const data = res.data || {}; 78 const data = res.data || {};
79 evaDetailInfo.value = data; 79 evaDetailInfo.value = data;
80 detailInfo.value = data; 80 detailInfo.value = data;
81 deploymentId.value = data.approveVO.camundaDeploymentId; 81 deploymentId.value = data.approveVO?.camundaDeploymentId;
82 processInstanceId.value = data.approveVO?.camundaInstanceId; 82 processInstanceId.value = data.approveVO?.camundaInstanceId;
83 //需要显示质量评价信息 83 //需要显示质量评价信息
84 if (data.qualityScore != null) { 84 if (data.qualityScore != null) {
...@@ -90,6 +90,9 @@ const getDetailInfo = () => { ...@@ -90,6 +90,9 @@ const getDetailInfo = () => {
90 tabsInfo.value.tabs.splice(3, 1); 90 tabsInfo.value.tabs.splice(3, 1);
91 } 91 }
92 } 92 }
93 if (evaDetailInfo.value.isApprove == 'N') {
94 tabsInfo.value.tabs.pop();
95 }
93 if (fullPath === route.fullPath) { 96 if (fullPath === route.fullPath) {
94 document.title = `详情-${data.daName}`; 97 document.title = `详情-${data.daName}`;
95 } 98 }
...@@ -124,7 +127,7 @@ const getDetailInfo = () => { ...@@ -124,7 +127,7 @@ const getDetailInfo = () => {
124 const data = res.data || {}; 127 const data = res.data || {};
125 costAssessDetailInfo.value = data; 128 costAssessDetailInfo.value = data;
126 detailInfo.value = data; 129 detailInfo.value = data;
127 deploymentId.value = data.approveVO.camundaDeploymentId; 130 deploymentId.value = data.approveVO?.camundaDeploymentId;
128 processInstanceId.value = data.approveVO?.camundaInstanceId; 131 processInstanceId.value = data.approveVO?.camundaInstanceId;
129 // 需要显示价值评估信息 132 // 需要显示价值评估信息
130 if (data.assessmentMoney != null) { 133 if (data.assessmentMoney != null) {
...@@ -136,7 +139,9 @@ const getDetailInfo = () => { ...@@ -136,7 +139,9 @@ const getDetailInfo = () => {
136 tabsInfo.value.tabs.splice(3, 1); 139 tabsInfo.value.tabs.splice(3, 1);
137 } 140 }
138 } 141 }
139 142 if (costAssessDetailInfo.value.isApprove == 'N') {
143 tabsInfo.value.tabs.pop();
144 }
140 if (data.qualityScore) { 145 if (data.qualityScore) {
141 // 确保"质量评价"标签存在于tabs中,并插入到"价值评估"前面 146 // 确保"质量评价"标签存在于tabs中,并插入到"价值评估"前面
142 const qualityTabIndex = tabsInfo.value.tabs.findIndex(tab => tab.name === "qualityEvaluate"); 147 const qualityTabIndex = tabsInfo.value.tabs.findIndex(tab => tab.name === "qualityEvaluate");
...@@ -285,8 +290,8 @@ const getDetailInfo = () => { ...@@ -285,8 +290,8 @@ const getDetailInfo = () => {
285 let { approveVO } = data; 290 let { approveVO } = data;
286 detailInfo.value = data; 291 detailInfo.value = data;
287 assetDetailInfo.value = data; 292 assetDetailInfo.value = data;
288 deploymentId.value = approveVO.camundaDeploymentId; 293 deploymentId.value = approveVO?.camundaDeploymentId;
289 processInstanceId.value = approveVO.camundaInstanceId; 294 processInstanceId.value = approveVO?.camundaInstanceId;
290 isTextTruncated(); 295 isTextTruncated();
291 } else { 296 } else {
292 ElMessage.error(res.msg); 297 ElMessage.error(res.msg);
...@@ -446,6 +451,9 @@ const toolBtns: any = computed(() => { ...@@ -446,6 +451,9 @@ const toolBtns: any = computed(() => {
446 return btnsArr; 451 return btnsArr;
447 } 452 }
448 let approveVO = detailInfo.value.approveVO; 453 let approveVO = detailInfo.value.approveVO;
454 if (!approveVO) {
455 return btnsArr;
456 }
449 let staffGuid = userData.staffGuid; 457 let staffGuid = userData.staffGuid;
450 if (approveVO && approveVO.approveState == 'A' && approveVO.approveStaffGuids && approveVO.approveStaffGuids.indexOf(staffGuid) > -1) { 458 if (approveVO && approveVO.approveState == 'A' && approveVO.approveStaffGuids && approveVO.approveStaffGuids.indexOf(staffGuid) > -1) {
451 btnsArr.push(...[{ label: "通过", value: "pass", type: 'primary' }, { label: "驳回", value: "reject", type: 'danger', plain: true }]); 459 btnsArr.push(...[{ label: "通过", value: "pass", type: 'primary' }, { label: "驳回", value: "reject", type: 'danger', plain: true }]);
...@@ -1749,7 +1757,7 @@ const passCommonDialogBtnClick = (btn, info) => { ...@@ -1749,7 +1757,7 @@ const passCommonDialogBtnClick = (btn, info) => {
1749 </div> 1757 </div>
1750 </ContentWrap> 1758 </ContentWrap>
1751 <ContentWrap id="id-approveInfo" title="审批信息" expandSwicth style="margin-top: 15px" 1759 <ContentWrap id="id-approveInfo" title="审批信息" expandSwicth style="margin-top: 15px"
1752 :isExpand="approveInfoExpand" @expand="(v) => approveInfoExpand = v" v-if="route.query.type != 'certificate'"> 1760 :isExpand="approveInfoExpand" @expand="(v) => approveInfoExpand = v" v-if="tabsInfo.tabs.find(t => t.name == 'approveInfo') && route.query.type != 'certificate'">
1753 <!-- <Table :tableInfo="approveTableInfo" /> --> 1761 <!-- <Table :tableInfo="approveTableInfo" /> -->
1754 <ApprovalProcess ref="approvalProcessRef" v-if="deploymentId" :deploymentId="deploymentId" 1762 <ApprovalProcess ref="approvalProcessRef" v-if="deploymentId" :deploymentId="deploymentId"
1755 :processInstanceId="processInstanceId"> 1763 :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!