94395ee8 by xukangle

Merge branch 'develop' into dev_20241202_xukangle

2 parents a277e5d1 74846114
...@@ -5,6 +5,7 @@ VITE_APP_TITLE = 数据资产管理系统 ...@@ -5,6 +5,7 @@ VITE_APP_TITLE = 数据资产管理系统
5 # VITE_API_BASEURL = https://swzl-test.csbr.cn/api 5 # VITE_API_BASEURL = https://swzl-test.csbr.cn/api
6 # VITE_API_BASEURL = http://localhost:9000 6 # VITE_API_BASEURL = http://localhost:9000
7 VITE_API_BASEURL = http://192.168.6.20:28052/ 7 VITE_API_BASEURL = http://192.168.6.20:28052/
8
8 # 平台用户 接口请地址 9 # 平台用户 接口请地址
9 VITE_APP_USER_API_BASEURL = gateway-server 10 VITE_APP_USER_API_BASEURL = gateway-server
10 11
...@@ -13,21 +14,31 @@ VITE_APP_AUTH_URL = 'ms-daop-auth-service' ...@@ -13,21 +14,31 @@ VITE_APP_AUTH_URL = 'ms-daop-auth-service'
13 14
14 # 系统管理 接口地址 15 # 系统管理 接口地址
15 VITE_APP_API_BASEURL = ms-daop-zcgl-system-manager-service 16 VITE_APP_API_BASEURL = ms-daop-zcgl-system-manager-service
17
16 # #配置服务 18 # #配置服务
17 # VITE_APP_CONFIG_URL = 'ms-daop-configure-service' 19 # VITE_APP_CONFIG_URL = 'ms-daop-configure-service'
18 20
19 # 文件上传请求地址 21 # 文件上传请求地址
20 VITE_APP_ADD_FILE = ms-daop-import-data-service 22 VITE_APP_ADD_FILE = ms-daop-import-data-service
23
21 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 24 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空
22 VITE_APP_DEBUG_TOOL = 25 VITE_APP_DEBUG_TOOL =
26
23 # 是否开启代理 27 # 是否开启代理
24 VITE_OPEN_PROXY = true 28 VITE_OPEN_PROXY = true
29
25 # vite serve base 30 # vite serve base
26 VITE_SERVE_BASE = / 31 VITE_SERVE_BASE = /
32
27 # 流程设计访问地址 33 # 流程设计访问地址
28 VITE_BPMN_URL = https://workflow-swzl-test.csbr.cn 34 VITE_BPMN_URL = https://workflow-swzl-test.csbr.cn
35
36 #流程服务
37 VITE_APP_WORK_FLOW_URL = 'ms-daop-workflow-service'
38
29 # 数据标准、元数据、数据目录 接口地址 39 # 数据标准、元数据、数据目录 接口地址
30 VITE_APP_PLAN_BASEURL = ms-daop-zcgl-data-plan-service 40 VITE_APP_PLAN_BASEURL = ms-daop-zcgl-data-plan-service
41
31 #数据质量接口地址 42 #数据质量接口地址
32 VITE_APP_QUALITY_BASEURL = ms-daop-data-quality-service 43 VITE_APP_QUALITY_BASEURL = ms-daop-data-quality-service
33 44
...@@ -44,14 +55,18 @@ VITE_APP_CONFIG_URL = 'ms-daop-configure-service' ...@@ -44,14 +55,18 @@ VITE_APP_CONFIG_URL = 'ms-daop-configure-service'
44 # 文件上传下载接口地址 55 # 文件上传下载接口地址
45 VITE_APP_COMMON_URL = 'ms-daop-common-service' 56 VITE_APP_COMMON_URL = 'ms-daop-common-service'
46 57
58 #camunda服务
59 VITE_APP_CAMUNDA_URL = 'ms-daop-camunda-server'
47 60
48 #门户接口 61 #门户接口
49 VITE_API_PORTALURL = https://swzl-test.zgsjzc.com/portal 62 VITE_API_PORTALURL = https://swzl-test.zgsjzc.com/portal
50 63
51 #数据资产接口地址 64 #数据资产接口地址
52 VITE_API_ASSET_BASEURL = ms-swzl-data-dam-service 65 VITE_API_ASSET_BASEURL = ms-swzl-data-dam-service
66
53 #数据同步接口地址 67 #数据同步接口地址
54 VITE_API_DATA_SYNC = ms-swzl-data-sync-service 68 VITE_API_DATA_SYNC = ms-swzl-data-sync-service
69
55 #消息接口 70 #消息接口
56 VITE_API_MESSAGE = ms-swzl-message-notification-service 71 VITE_API_MESSAGE = ms-swzl-message-notification-service
57 72
......
...@@ -3,22 +3,31 @@ VITE_APP_TITLE = 数据资产管理系统 ...@@ -3,22 +3,31 @@ VITE_APP_TITLE = 数据资产管理系统
3 # 接口域名 3 # 接口域名
4 VITE_API_BASEURL = http://192.168.6.20:28052/ 4 VITE_API_BASEURL = http://192.168.6.20:28052/
5 # VITE_API_BASEURL = http://49.4.26.201:31709/ 5 # VITE_API_BASEURL = http://49.4.26.201:31709/
6
6 # # 平台用户 接口请地址 7 # # 平台用户 接口请地址
7 # VITE_APP_USER_API_BASEURL = gateway-server 8 # VITE_APP_USER_API_BASEURL = gateway-server
9
8 # # 系统管理 接口地址 10 # # 系统管理 接口地址
9 # VITE_APP_API_BASEURL = ms-daop-zcgl-system-manager-service 11 # VITE_APP_API_BASEURL = ms-daop-zcgl-system-manager-service
12
10 # # 文件上传请求地址 13 # # 文件上传请求地址
11 # VITE_APP_ADD_FILE = ms-daop-import-data-service 14 # VITE_APP_ADD_FILE = ms-daop-import-data-service
15
12 # # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 16 # # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空
13 # VITE_APP_DEBUG_TOOL = 17 # VITE_APP_DEBUG_TOOL =
18
14 # # 是否开启代理 19 # # 是否开启代理
15 # VITE_OPEN_PROXY = true 20 # VITE_OPEN_PROXY = true
21
16 # # vite serve base 22 # # vite serve base
17 # VITE_SERVE_BASE = / 23 # VITE_SERVE_BASE = /
24
18 # # 流程设计访问地址 25 # # 流程设计访问地址
19 # VITE_BPMN_URL = https://workflow.zgsjzc.com 26 # VITE_BPMN_URL = https://workflow.zgsjzc.com
27
20 # # 数据标准、元数据、数据目录 接口地址 28 # # 数据标准、元数据、数据目录 接口地址
21 # VITE_APP_PLAN_BASEURL = ms-daop-jgjf-data-plan-service 29 # VITE_APP_PLAN_BASEURL = ms-daop-jgjf-data-plan-service
30
22 # #数据质量接口地址 31 # #数据质量接口地址
23 # VITE_APP_QUALITY_BASEURL = ms-daop-data-quality-service 32 # VITE_APP_QUALITY_BASEURL = ms-daop-data-quality-service
24 33
...@@ -27,10 +36,13 @@ VITE_APP_TITLE = 数据资产管理系统 ...@@ -27,10 +36,13 @@ VITE_APP_TITLE = 数据资产管理系统
27 36
28 # #数据资产接口地址 37 # #数据资产接口地址
29 # VITE_API_ASSET_BASEURL = ms-swzl-data-dam-service 38 # VITE_API_ASSET_BASEURL = ms-swzl-data-dam-service
39
30 # #数据同步接口地址 40 # #数据同步接口地址
31 # VITE_API_DATA_SYNC = ms-swzl-data-sync-service 41 # VITE_API_DATA_SYNC = ms-swzl-data-sync-service
42
32 # #消息接口 43 # #消息接口
33 # VITE_API_MESSAGE = ms-swzl-message-notification-service 44 # VITE_API_MESSAGE = ms-swzl-message-notification-service
45
34 # 平台用户 接口请地址 46 # 平台用户 接口请地址
35 VITE_APP_USER_API_BASEURL = gateway-server 47 VITE_APP_USER_API_BASEURL = gateway-server
36 48
...@@ -42,16 +54,25 @@ VITE_APP_API_BASEURL = ms-daop-zcgl-system-manager-service ...@@ -42,16 +54,25 @@ VITE_APP_API_BASEURL = ms-daop-zcgl-system-manager-service
42 54
43 # 文件上传请求地址 55 # 文件上传请求地址
44 VITE_APP_ADD_FILE = ms-daop-import-data-service 56 VITE_APP_ADD_FILE = ms-daop-import-data-service
57
45 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空 58 # 调试工具,可设置 eruda 或 vconsole,如果不需要开启则留空
46 VITE_APP_DEBUG_TOOL = 59 VITE_APP_DEBUG_TOOL =
60
47 # 是否开启代理 61 # 是否开启代理
48 VITE_OPEN_PROXY = true 62 VITE_OPEN_PROXY = true
63
49 # vite serve base 64 # vite serve base
50 VITE_SERVE_BASE = / 65 VITE_SERVE_BASE = /
66
51 # 流程设计访问地址 67 # 流程设计访问地址
52 VITE_BPMN_URL = https://workflow-swzl-test.csbr.cn 68 VITE_BPMN_URL = https://workflow-swzl-test.csbr.cn
69
70 #流程服务
71 VITE_APP_WORK_FLOW_URL = 'ms-daop-workflow-service'
72
53 # 数据标准、元数据、数据目录 接口地址 73 # 数据标准、元数据、数据目录 接口地址
54 VITE_APP_PLAN_BASEURL = ms-daop-zcgl-data-plan-service 74 VITE_APP_PLAN_BASEURL = ms-daop-zcgl-data-plan-service
75
55 #数据质量接口地址 76 #数据质量接口地址
56 VITE_APP_QUALITY_BASEURL = ms-daop-data-quality-service 77 VITE_APP_QUALITY_BASEURL = ms-daop-data-quality-service
57 78
...@@ -68,6 +89,9 @@ VITE_APP_DATA_SOURCE_URL = ms-daop-data-source-service ...@@ -68,6 +89,9 @@ VITE_APP_DATA_SOURCE_URL = ms-daop-data-source-service
68 # 文件上传下载接口地址 89 # 文件上传下载接口地址
69 VITE_APP_COMMON_URL = 'ms-daop-common-service' 90 VITE_APP_COMMON_URL = 'ms-daop-common-service'
70 91
92 #camunda服务
93 VITE_APP_CAMUNDA_URL = 'ms-daop-camunda-server'
94
71 #门户接口 95 #门户接口
72 VITE_API_PORTALURL = https://swzl-test.zgsjzc.com/portal 96 VITE_API_PORTALURL = https://swzl-test.zgsjzc.com/portal
73 #新门户接口 97 #新门户接口
...@@ -77,10 +101,16 @@ VITE_API_NEW_PORTAL = ms-daop-zcgl-asset-dam-service ...@@ -77,10 +101,16 @@ VITE_API_NEW_PORTAL = ms-daop-zcgl-asset-dam-service
77 VITE_APP_PERSONAL_URL = 'ms-daop-personel-service' 101 VITE_APP_PERSONAL_URL = 'ms-daop-personel-service'
78 #数据资产接口地址 102 #数据资产接口地址
79 VITE_API_ASSET_BASEURL = ms-swzl-data-dam-service 103 VITE_API_ASSET_BASEURL = ms-swzl-data-dam-service
104
80 #数据同步接口地址 105 #数据同步接口地址
81 VITE_API_DATA_SYNC = ms-swzl-data-sync-service 106 VITE_API_DATA_SYNC = ms-swzl-data-sync-service
107
82 #消息接口 108 #消息接口
83 VITE_API_MESSAGE = ms-swzl-message-notification-service 109 VITE_API_MESSAGE = ms-swzl-message-notification-service
110
111 #企业信息接口
112 VITE_APP_PERSONAL_URL = ms-daop-personel-service
113
84 # 是否在打包时生成 sourcemap 114 # 是否在打包时生成 sourcemap
85 VITE_BUILD_SOURCEMAP = false 115 VITE_BUILD_SOURCEMAP = false
86 # 是否在打包时开启压缩,支持 gzip 和 brotli 116 # 是否在打包时开启压缩,支持 gzip 和 brotli
......
...@@ -9,6 +9,7 @@ export {} ...@@ -9,6 +9,7 @@ export {}
9 9
10 declare module '@vue/runtime-core' { 10 declare module '@vue/runtime-core' {
11 export interface GlobalComponents { 11 export interface GlobalComponents {
12 ApprovalProcess: typeof import('./src/components/ApprovalProcess/src/ApprovalProcess.vue')['default']
12 Auth: typeof import('./src/components/Auth/index.vue')['default'] 13 Auth: typeof import('./src/components/Auth/index.vue')['default']
13 AuthAll: typeof import('./src/components/AuthAll/index.vue')['default'] 14 AuthAll: typeof import('./src/components/AuthAll/index.vue')['default']
14 ContentWrap: typeof import('./src/components/ContentWrap/src/ContentWrap.vue')['default'] 15 ContentWrap: typeof import('./src/components/ContentWrap/src/ContentWrap.vue')['default']
...@@ -31,6 +32,7 @@ declare module '@vue/runtime-core' { ...@@ -31,6 +32,7 @@ declare module '@vue/runtime-core' {
31 ImageUpload: typeof import('./src/components/ImageUpload/index.vue')['default'] 32 ImageUpload: typeof import('./src/components/ImageUpload/index.vue')['default']
32 LineageGraph: typeof import('./src/components/LineageGraph/index.vue')['default'] 33 LineageGraph: typeof import('./src/components/LineageGraph/index.vue')['default']
33 ListPanel: typeof import('./src/components/ListPanel/index.vue')['default'] 34 ListPanel: typeof import('./src/components/ListPanel/index.vue')['default']
35 LookBpmn: typeof import('./src/components/ApprovalProcess/src/components/LookBpmn.vue')['default']
34 Month: typeof import('./src/components/Schedule/component/month.vue')['default'] 36 Month: typeof import('./src/components/Schedule/component/month.vue')['default']
35 NotAllowed: typeof import('./src/components/NotAllowed/index.vue')['default'] 37 NotAllowed: typeof import('./src/components/NotAllowed/index.vue')['default']
36 PageHeader: typeof import('./src/components/PageHeader/index.vue')['default'] 38 PageHeader: typeof import('./src/components/PageHeader/index.vue')['default']
......
...@@ -22,7 +22,11 @@ ...@@ -22,7 +22,11 @@
22 "@vueuse/integrations": "^10.1.0", 22 "@vueuse/integrations": "^10.1.0",
23 "@wangeditor/editor": "^5.1.23", 23 "@wangeditor/editor": "^5.1.23",
24 "@wangeditor/editor-for-vue": "^5.1.12", 24 "@wangeditor/editor-for-vue": "^5.1.12",
25 "ant-design-vue": "^3.2.20",
25 "axios": "^1.4.0", 26 "axios": "^1.4.0",
27 "bpmn-js": "^8.10.0",
28 "bpmn-js-token-simulation": "^0.10.0",
29 "camunda-bpmn-moddle": "^4.4.0",
26 "crypto-js": "^4.2.0", 30 "crypto-js": "^4.2.0",
27 "dayjs": "^1.11.7", 31 "dayjs": "^1.11.7",
28 "echarts": "^5.4.3", 32 "echarts": "^5.4.3",
...@@ -32,6 +36,7 @@ ...@@ -32,6 +36,7 @@
32 "hotkeys-js": "^3.10.2", 36 "hotkeys-js": "^3.10.2",
33 "html2canvas": "^1.4.1", 37 "html2canvas": "^1.4.1",
34 "insert-css": "^2.0.0", 38 "insert-css": "^2.0.0",
39 "jquery": "^3.7.1",
35 "lodash-es": "^4.17.21", 40 "lodash-es": "^4.17.21",
36 "md5": "^2.3.0", 41 "md5": "^2.3.0",
37 "mitt": "^3.0.0", 42 "mitt": "^3.0.0",
......
...@@ -64,8 +64,7 @@ export const getQualityTableRule = (params) => request({ ...@@ -64,8 +64,7 @@ export const getQualityTableRule = (params) => request({
64 /** 删除质检表规则 */ 64 /** 删除质检表规则 */
65 export const deleteQualityTableRule = (params) => request({ 65 export const deleteQualityTableRule = (params) => request({
66 url: `${import.meta.env.VITE_APP_QUALITY_BASEURL}/quality-model/conf/del?ruleConfGuid=${params}`, 66 url: `${import.meta.env.VITE_APP_QUALITY_BASEURL}/quality-model/conf/del?ruleConfGuid=${params}`,
67 method: 'delete', 67 method: 'delete'
68 data: params
69 }) 68 })
70 69
71 /** 更新质检表规则的禁用和启用状态 */ 70 /** 更新质检表规则的禁用和启用状态 */
......
...@@ -33,13 +33,6 @@ export const getSystemMenu = (params) => { ...@@ -33,13 +33,6 @@ export const getSystemMenu = (params) => {
33 }); 33 });
34 }; 34 };
35 35
36 export const getCurrentUserInfo = (tenantGuid) => {
37 return request({
38 url: `${import.meta.env.VITE_APP_PERSONAL_URL}/staff/data/get-current-staff?tenantGuid=${tenantGuid}`,
39 method: "post",
40 });
41 };
42
43 // 获取当前用户对应的产品和菜单 36 // 获取当前用户对应的产品和菜单
44 export const getUserInfo = () => { 37 export const getUserInfo = () => {
45 return request({ 38 return request({
...@@ -275,3 +268,17 @@ export const getAllFlowData = (params) => request({ ...@@ -275,3 +268,17 @@ export const getAllFlowData = (params) => request({
275 method: 'get', 268 method: 'get',
276 params 269 params
277 }) 270 })
271 // 获取资产/价值评估机构数据
272 export const getSingleList = (params) => request({
273 url: `${import.meta.env.VITE_APP_PERSONAL_URL}/tenant/singlePage`,
274 method: 'post',
275 data: params
276 })
277 // 获取当前登录人信息
278 export const getCurrentUserInfo = (params) => {
279 return request({
280 url: `${import.meta.env.VITE_APP_PERSONAL_URL}/staff/data/get-current-staff`,
281 method: "post",
282 params
283 });
284 };
......
1 import request from "@/utils/request";
2 import useUserStore from "@/store/modules/user";
3 const userStore = useUserStore()
4 const userData = JSON.parse(userStore.userData)
5
6 // 获取流程详情。
7 export const getProcessFlowDetail = (params) => request({
8 url: `${import.meta.env.VITE_APP_WORK_FLOW_URL}/work-flow/detail/?approvalGuid=${params}`,
9 method: 'post',
10 })
11 // 审批通过
12 export const passFlowData = (params) => request({
13 url: `${import.meta.env.VITE_APP_WORK_FLOW_URL}/work-flow/data/allow-flow`,
14 method: 'post',
15 data: params
16 })
17 // 审批驳回
18 export const rejectFlowData = (params) => request({
19 url: `${import.meta.env.VITE_APP_WORK_FLOW_URL}/work-flow/data/backup-flow`,
20 method: 'post',
21 data: params
22 })
23 // 审批撤销
24 export const revokeFlowData = (params) => request({
25 url: `${import.meta.env.VITE_APP_WORK_FLOW_URL}/work-flow/data/canal-flow`,
26 method: 'post',
27 data: params
28 })
29 // 删除流程
30 export const deleteFlowData = (params) => request({
31 url: `${import.meta.env.VITE_APP_WORK_FLOW_URL}/work-flow/data/del`,
32 method: 'post',
33 params
34 })
35
36 export const getFlowData = (params) => request({
37 url: `${import.meta.env.VITE_APP_WORK_FLOW_URL}/work-flow/data/page-list`,
38 method: 'post',
39 data: params
40 })
41 export const getCamundaDeploymentId = (flowType) => request({
42 url: `${import.meta.env.VITE_APP_WORK_FLOW_URL}/work-flow/data/get-camunda-deployment-id`,
43 method: 'post',
44 data: {
45 tenantGuid: userData.tenantGuid,
46 flowType:flowType,
47 staffGuid: userData.staffGuid,
48 }
49 })
50
51 export const getDetailDataPromise = (deploymentId)=> request({
52 url: `${import.meta.env.VITE_APP_CAMUNDA_URL}/process-definition/get-detail?deploymentId=${deploymentId}`,
53 method: 'get',
54 })
55
56 export const getProcessNodesPromise = (params)=>request({
57 url: `${import.meta.env.VITE_APP_CAMUNDA_URL}/process-definition/get-process-nodes`,
58 method: 'post',
59 data: params
60 })
1 import ApprovalProcess from './src/ApprovalProcess.vue'
2
3 export { ApprovalProcess }
1 <script setup lang="tsx">
2 import LookBpmn from "./components/LookBpmn.vue";
3 import useProcessStore from '@/store/modules/process'
4 import { cloneDeep } from 'lodash-es';
5 import { getProcessNodesPromise } from "@/api/modules/workFlowService"
6 const processStore = useProcessStore()
7 const props = defineProps({
8 deploymentId: {
9 type: String,
10 default: ''
11 },
12 processInstanceId: {
13 type: String,
14 default: ''
15 },
16 });
17 const tableData = ref<any>([])
18 const lookBpmnRef = ref()
19 // const contentRef = ref();
20 // const { height: contentHeight } = useElementSize(contentRef);
21 const renderProcessNodes = () => {
22 let param = {
23 deploymentId: props.deploymentId || null,
24 processInstanceId: props.processInstanceId || null,
25 };
26 getProcessNodesPromise(param).then((res:any) => {
27 if (res.code === "00000") {
28 let data = res.data;
29 if (data) {
30 data.forEach((i, index) => {
31 i.id = i.activityId;
32 i.staffName = "";
33 if (i.staffVOS && i.staffVOS.length > 1) {
34 i.staffVOS.forEach((j) => {
35 j.id = j.staffGuid;
36 j.processName = i.processName;
37 if (j.approvalState) {
38 i.approvalState = j.approvalState;
39 i.approvalSuggest = j.approvalSuggest;
40 i.approvalTime = j.approvalTime;
41 i.staffName = j.staffName;
42 }
43 });
44
45 i.children = i.staffVOS;
46 } else {
47 if (i.staffVOS) {
48 i.approvalState = i.staffVOS[i.staffVOS.length - 1].approvalState;
49 i.approvalSuggest =
50 i.staffVOS[i.staffVOS.length - 1].approvalSuggest;
51 i.approvalTime = i.staffVOS[i.staffVOS.length - 1].approvalTime;
52 i.staffName = i.staffVOS[i.staffVOS.length - 1].staffName;
53 } else {
54 if (i.organisationVOS) {
55 i.approvalState = "";
56 i.approvalSuggest = "";
57 i.approvalTime = "";
58 if (i.organisationVOS.length > 1) {
59 i.staffName =
60 i.organisationVOS[0].organisationName +
61 "等" +
62 i.organisationVOS.length +
63 "个部门";
64 } else {
65 i.staffName = i.organisationVOS[0].organisationName;
66 }
67 } else if (i.positionVOS != null && i.positionVOS.length > 0) {
68 i.approvalState = "";
69 i.approvalSuggest = "";
70 i.approvalTime = "";
71 if (i.positionVOS.length > 1) {
72 if (i.staffName) {
73 i.staffName =
74 i.staffName +
75 "," +
76 i.positionVOS[0].positionName +
77 "等" +
78 i.positionVOS.length +
79 "个岗位";
80 } else {
81 i.staffName = i.positionVOS[0].positionName;
82 }
83 } else {
84 if (i.staffName) {
85 i.staffName =
86 i.staffName + "," + i.positionVOS[0].positionName;
87 } else {
88 i.staffName = i.positionVOS[0].positionName;
89 }
90 }
91 } else if (i.candidateUsers != null && i.candidateUsers != "") {
92 i.approvalState = "";
93 i.approvalSuggest = "";
94 i.approvalTime = "";
95 if (i.candidateUsers.length > 1) {
96 i.staffName =
97 i.candidateUsers[0].staffName +
98 "等" +
99 i.candidateUsers.length +
100 "个人员";
101 if (i.candidateUsers) {
102 i.candidateUsers.forEach((j) => {
103 j.id = j.staffGuid;
104 j.processName = i.processName;
105 });
106 }
107 i.children = i.candidateUsers;
108 } else {
109 i.staffName = i.candidateUsers[0].staffName;
110 }
111 }
112 }
113 }
114 });
115 }
116 tableData.value = data
117 processStore.processNodes = cloneDeep(tableData.value)
118 localStorage.setItem('processTableData',JSON.stringify(tableData.value));
119 nextTick(()=>{
120 setTimeout(()=>{
121 getSpecialEventUserTaskList()
122 })
123 })
124 }
125 });
126 };
127 const getApprovalState = (val: string) => {
128 if (!val) {
129 return "-";
130 } else {
131 if (val == "W") {
132 return (val = "待提交");
133 } else if (val == "N") {
134 return (val = "初始");
135 } else if (val == "A") {
136 return (val = "审批中");
137 } else if (val == "Y") {
138 return (val = "已通过");
139 } else if (val == "F") {
140 return (val = "已完成");
141 } else if (val == "R") {
142 return (val = "已驳回");
143 } else if (val == "C") {
144 return (val = "已撤销");
145 } else {
146 return (val = "");
147 }
148 }
149 }
150 const getSpecialEventUserTaskList = () => {
151 lookBpmnRef.value.getDetailData(props.deploymentId)
152 };
153
154 onBeforeRouteLeave((to, from) =>{
155 processStore.clearStore()
156 })
157 onMounted(() => {
158 renderProcessNodes()
159 });
160 defineExpose({
161 renderProcessNodes
162 })
163 </script>
164
165 <template>
166 <div>
167 <!-- <Table :columns="columns" :data="tableData" :border="false"></Table> -->
168 <el-table tooltip-effect="light" :data="tableData" :border="false" >
169 <el-table-column type="index" label="节点" :width="140" align="left" >
170 <template #default="scope">
171 {{ scope.row.processName ||'-' }}
172 </template>
173 </el-table-column>
174 <el-table-column type="index" label="处理对象" :width="140" align="left" show-overflow-tooltip>
175 <template #default="scope">
176 {{ scope.row.staffName ||'-' }}
177 </template>
178 </el-table-column>
179 <el-table-column type="index" label="操作时间" :width="180" align="left" show-overflow-tooltip >
180 <template #default="scope">
181 {{ scope.row.approvalTime||'-'}}
182 </template>
183 </el-table-column>
184
185 <!-- <el-table-column type="index" label="申请人" :width="100" align="left" >
186 <template #default="scope">
187 {{ scope.row.applyName||'-'}}
188 </template>
189 </el-table-column>
190
191 <el-table-column label="申请时间" :width="180" align="left" >
192 <template #default="scope">
193 {{ scope.row.time||'-'}}
194 </template>
195 </el-table-column> -->
196 <el-table-column label="审批状态" :width="140" align="left" show-overflow-tooltip>
197 <template #default="scope">
198 <div v-if="scope.row.approvalState === 'A'" class='state-sty'>{{ getApprovalState(scope.row.approvalState) }}</div>
199 <div v-else-if="scope.row.approvalState === 'Y'" class='state-sty1'>{{getApprovalState(scope.row.approvalState) }}</div>
200 <div v-else-if="scope.row.approvalState === 'R'" class='state-sty2'>{{ getApprovalState(scope.row.approvalState) }}</div>
201 <div v-else>{{getApprovalState(scope.row.approvalState)}}</div>
202 </template>
203 </el-table-column>
204
205 <el-table-column label="审批原因" align="left" >
206 <template #default="scope">
207 {{ scope.row.approvalSuggest||'-'}}
208 </template>
209 </el-table-column>
210 </el-table>
211 <div class="bpmn-sty pt-20px" style="margin-top: 20px">
212 <span style="font-size:16px;color:#666">{{ '审批流程' }}</span>
213 <el-divider style="margin-bottom:10px!important;margin-top:10px!important" />
214 <LookBpmn ref="lookBpmnRef"></LookBpmn>
215 </div>
216 </div>
217 </template>
218
219 <style lang="scss" scoped>
220 .iframe-sty {
221 width: 100%;
222 border: none;
223 // height: 600px;
224 }
225 :deep(.el-table) {
226 .state-sty {
227 width: 52px;
228 height: 21px;
229 text-align: center;
230 line-height: 21px;
231 background: #FFEEE3;
232 border-radius: 3px;
233 color: #FF8623;
234 }
235 .state-sty1 {
236 width: 52px;
237 height: 21px;
238 text-align: center;
239 line-height: 21px;
240 background: #E3F0F0;
241 border-radius: 3px;
242 color: #4FA1A4;
243 }
244 .state-sty2 {
245 width: 52px;
246 height: 21px;
247 text-align: center;
248 line-height: 21px;
249 background: #FFE4E2;
250 border-radius: 3px;
251 color: #FE4638;
252 }
253 .state-sty3 {
254 width: 52px;
255 height: 21px;
256 text-align: center;
257 line-height: 21px;
258 background: #E3E3E3;
259 border-radius: 3px;
260 color: #323233;
261 }
262 }
263 </style>
...@@ -3,7 +3,7 @@ function Layout() { ...@@ -3,7 +3,7 @@ function Layout() {
3 return import('@/layouts/index.vue') 3 return import('@/layouts/index.vue')
4 } 4 }
5 const routes: RouteRecordRaw[] = [ 5 const routes: RouteRecordRaw[] = [
6 { 6 {
7 path: '/data-asset-register/register-managemant', 7 path: '/data-asset-register/register-managemant',
8 component: Layout, 8 component: Layout,
9 meta: { 9 meta: {
...@@ -35,14 +35,8 @@ const routes: RouteRecordRaw[] = [ ...@@ -35,14 +35,8 @@ const routes: RouteRecordRaw[] = [
35 reuse: true 35 reuse: true
36 }, 36 },
37 beforeEnter: (to, from) => { 37 beforeEnter: (to, from) => {
38 if (to.query.type) { 38 to.meta.title = to.query.type == 'edit' ? `编辑-${to.query.name}` : '新建资产登记';
39 to.meta.title = `详情-`; 39 to.meta.editPage = true;
40 return;
41 }
42 if (to.query.guid) {
43 to.meta.title = `编辑-`;
44 to.meta.editPage = true;
45 }
46 } 40 }
47 }, 41 },
48 { 42 {
...@@ -55,11 +49,14 @@ const routes: RouteRecordRaw[] = [ ...@@ -55,11 +49,14 @@ const routes: RouteRecordRaw[] = [
55 breadcrumb: false, 49 breadcrumb: false,
56 cache: true, 50 cache: true,
57 reuse: true 51 reuse: true
52 },
53 beforeEnter: (to, from) => {
54 to.meta.title = `详情-${to.query.name}`;
58 } 55 }
59 } 56 }
60 ], 57 ],
61 }, 58 },
62 { 59 {
63 path: '/data-asset-register/quality-evaluate', 60 path: '/data-asset-register/quality-evaluate',
64 component: Layout, 61 component: Layout,
65 meta: { 62 meta: {
...@@ -92,7 +89,7 @@ const routes: RouteRecordRaw[] = [ ...@@ -92,7 +89,7 @@ const routes: RouteRecordRaw[] = [
92 } 89 }
93 ], 90 ],
94 }, 91 },
95 { 92 {
96 path: '/data-asset-register/value-evaluate', 93 path: '/data-asset-register/value-evaluate',
97 component: Layout, 94 component: Layout,
98 meta: { 95 meta: {
......
1 const useProcessStore = defineStore(
2 // 唯一ID
3 'process',
4 () => {
5 const processNodes = ref([])
6 const staffVOS = computed(() => { // 最后审批node
7 return processNodes.value.find((item:any) => item.approvalState)
8 })
9 const clearStore = () => {
10 processNodes.value = []
11 }
12 return {
13 processNodes,
14 staffVOS,
15 clearStore
16 }
17 },
18 {
19 persist:{
20 storage: sessionStorage,
21 paths: ['processNodes','staffVOS']
22 }
23 }
24 )
25
26 export default useProcessStore
27
...\ No newline at end of file ...\ No newline at end of file
...@@ -4,7 +4,7 @@ import router from '@/router' ...@@ -4,7 +4,7 @@ import router from '@/router'
4 import { ElMessage } from 'element-plus' 4 import { ElMessage } from 'element-plus'
5 import apiUser from '@/api/modules/user' 5 import apiUser from '@/api/modules/user'
6 import { getCurrentTime } from '@/utils/common' 6 import { getCurrentTime } from '@/utils/common'
7 import { getSystemMenu, getUserInfo, getTokenByCode, loginOut, refreshToken, editPasswordInterface, getCurrentUserInfo } from '@/api/modules/queryService' 7 import { getSystemMenu, getUserInfo, getTokenByCode, loginOut, refreshToken, editPasswordInterface, getCurrentUserInfo, getCurrentUserInfo } from '@/api/modules/queryService'
8 8
9 const useUserStore = defineStore( 9 const useUserStore = defineStore(
10 // 唯一ID 10 // 唯一ID
...@@ -29,7 +29,7 @@ const useUserStore = defineStore( ...@@ -29,7 +29,7 @@ const useUserStore = defineStore(
29 /* idass的登录页面url,退出登录需要跳转到登录页。*/ 29 /* idass的登录页面url,退出登录需要跳转到登录页。*/
30 const idassLoginUrl = 'https://idaas-test.csbr.cn/login'; 30 const idassLoginUrl = 'https://idaas-test.csbr.cn/login';
31 const timer: any = ref(null); 31 const timer: any = ref(null);
32 //获取token. 32 //获取token.
33 function getToken(data, state) { 33 function getToken(data, state) {
34 data.platformGuid = "7f16f697aec111ef8656fa163e60becd"; 34 data.platformGuid = "7f16f697aec111ef8656fa163e60becd";
35 data.userType = 2; 35 data.userType = 2;
...@@ -56,7 +56,7 @@ const useUserStore = defineStore( ...@@ -56,7 +56,7 @@ const useUserStore = defineStore(
56 currentTenantGuid.value = res.data.tenantInfoList && res.data.tenantInfoList.length ? res.data.tenantInfoList[0].guid : ''; 56 currentTenantGuid.value = res.data.tenantInfoList && res.data.tenantInfoList.length ? res.data.tenantInfoList[0].guid : '';
57 localStorage.setItem('currentTenantGuid', currentTenantGuid.value); 57 localStorage.setItem('currentTenantGuid', currentTenantGuid.value);
58 let currentTenant = res.data.tenantInfoList?.[0]; 58 let currentTenant = res.data.tenantInfoList?.[0];
59 getCurrentUserInfo(currentTenantGuid.value).then((res: any) => { 59 getCurrentUserInfo({tenantGuid: currentTenantGuid.value}).then((res: any) => {
60 console.log(res, 'getCurrentUserInfo'); 60 console.log(res, 'getCurrentUserInfo');
61 if (res.code == '00000') { 61 if (res.code == '00000') {
62 localStorage.setItem('userData', JSON.stringify(res.data)); 62 localStorage.setItem('userData', JSON.stringify(res.data));
...@@ -88,11 +88,11 @@ const useUserStore = defineStore( ...@@ -88,11 +88,11 @@ const useUserStore = defineStore(
88 const process = async () => { 88 const process = async () => {
89 if (parseInt(expiresIn) - Date.now() < 600000) { 89 if (parseInt(expiresIn) - Date.now() < 600000) {
90 const refreshing = localStorage.getItem('refreshing'); 90 const refreshing = localStorage.getItem('refreshing');
91 let now = new Date(); 91 let now = new Date();
92 if (!refreshing || new Date(refreshing) < now) {//确保多个页面只刷新一次。 92 if (!refreshing || new Date(refreshing) < now) {//确保多个页面只刷新一次。
93 localStorage.setItem('refreshing', now.toISOString()); 93 localStorage.setItem('refreshing', now.toISOString());
94 await refresh(); 94 await refresh();
95 localStorage.removeItem('refreshing'); 95 localStorage.removeItem('refreshing');
96 } 96 }
97 } 97 }
98 } 98 }
...@@ -108,14 +108,14 @@ const useUserStore = defineStore( ...@@ -108,14 +108,14 @@ const useUserStore = defineStore(
108 refreshToken: localStorage.getItem('refresh_token') 108 refreshToken: localStorage.getItem('refresh_token')
109 }).then((resInfo: any) => { 109 }).then((resInfo: any) => {
110 getTokenPromise.value = null; 110 getTokenPromise.value = null;
111 if (resInfo.code == '00000'){ 111 if (resInfo.code == '00000') {
112 localStorage.setItem('token',resInfo.data.accessToken); 112 localStorage.setItem('token', resInfo.data.accessToken);
113 token.value = resInfo.data.accessToken; 113 token.value = resInfo.data.accessToken;
114 localStorage.setItem('refresh_token',resInfo.data.refreshToken); 114 localStorage.setItem('refresh_token', resInfo.data.refreshToken);
115 const expiresIn = (Date.now() + 1700000) + ""; 115 const expiresIn = (Date.now() + 1700000) + "";
116 localStorage.setItem('expiresIn', expiresIn); 116 localStorage.setItem('expiresIn', expiresIn);
117 } else { 117 } else {
118 //会出现同步刷新token就退出登录的问题,去掉这个代码。 118 //会出现同步刷新token就退出登录的问题,去掉这个代码。
119 //logout(true) 119 //logout(true)
120 } 120 }
121 }).catch(() => { 121 }).catch(() => {
...@@ -159,23 +159,23 @@ const useUserStore = defineStore( ...@@ -159,23 +159,23 @@ const useUserStore = defineStore(
159 // 登出 159 // 登出
160 async function logout(isErrorReturn = false, redirect = router.currentRoute.value.fullPath) { 160 async function logout(isErrorReturn = false, redirect = router.currentRoute.value.fullPath) {
161 if (!isErrorReturn && localStorage.getItem('code')) { 161 if (!isErrorReturn && localStorage.getItem('code')) {
162 isLoginOut.value = true; 162 isLoginOut.value = true;
163 loginOut().then(() => { 163 loginOut().then(() => {
164 localStorage.clear() 164 localStorage.clear()
165 account.value = '' 165 account.value = ''
166 userId.value = '' 166 userId.value = ''
167 userName.value = '' 167 userName.value = ''
168 userData.value = '' 168 userData.value = ''
169 token.value = ''; 169 token.value = '';
170 timer.value && clearInterval(timer.value); 170 timer.value && clearInterval(timer.value);
171 isLogin.value = false; 171 isLogin.value = false;
172 userInfoData.value = []; 172 userInfoData.value = [];
173 routeStore.removeRoutes() 173 routeStore.removeRoutes()
174 menuStore.setActived(0) 174 menuStore.setActived(0)
175 tabbar.value = [] 175 tabbar.value = []
176 tabbarMap.value = {} 176 tabbarMap.value = {}
177 window.location.href = idassLoginUrl + '?logout=1'; 177 window.location.href = idassLoginUrl + '?logout=1';
178 }); 178 });
179 } else { 179 } else {
180 let hasCode = localStorage.getItem('code'); 180 let hasCode = localStorage.getItem('code');
181 isLoginOut.value = true; 181 isLoginOut.value = true;
...@@ -236,7 +236,7 @@ const useUserStore = defineStore( ...@@ -236,7 +236,7 @@ const useUserStore = defineStore(
236 mark = 'data-sync' 236 mark = 'data-sync'
237 } else if (item.meta.title == '数据质量') { 237 } else if (item.meta.title == '数据质量') {
238 mark = 'data-quality' 238 mark = 'data-quality'
239 } else if (item.meta.title == '数据盘点') { 239 } else if (item.meta.title == '数据盘点') {
240 mark = 'data-inventory' 240 mark = 'data-inventory'
241 } else if (item.meta.title == '首页') { 241 } else if (item.meta.title == '首页') {
242 mark = 'data-asset-index' 242 mark = 'data-asset-index'
......
...@@ -9,6 +9,7 @@ export {} ...@@ -9,6 +9,7 @@ export {}
9 9
10 declare module '@vue/runtime-core' { 10 declare module '@vue/runtime-core' {
11 export interface GlobalComponents { 11 export interface GlobalComponents {
12 ApprovalProcess: typeof import('./../components/ApprovalProcess/src/ApprovalProcess.vue')['default']
12 Auth: typeof import('./../components/Auth/index.vue')['default'] 13 Auth: typeof import('./../components/Auth/index.vue')['default']
13 AuthAll: typeof import('./../components/AuthAll/index.vue')['default'] 14 AuthAll: typeof import('./../components/AuthAll/index.vue')['default']
14 ContentWrap: typeof import('./../components/ContentWrap/src/ContentWrap.vue')['default'] 15 ContentWrap: typeof import('./../components/ContentWrap/src/ContentWrap.vue')['default']
...@@ -31,6 +32,7 @@ declare module '@vue/runtime-core' { ...@@ -31,6 +32,7 @@ declare module '@vue/runtime-core' {
31 ImageUpload: typeof import('./../components/ImageUpload/index.vue')['default'] 32 ImageUpload: typeof import('./../components/ImageUpload/index.vue')['default']
32 LineageGraph: typeof import('./../components/LineageGraph/index.vue')['default'] 33 LineageGraph: typeof import('./../components/LineageGraph/index.vue')['default']
33 ListPanel: typeof import('./../components/ListPanel/index.vue')['default'] 34 ListPanel: typeof import('./../components/ListPanel/index.vue')['default']
35 LookBpmn: typeof import('./../components/ApprovalProcess/src/components/LookBpmn.vue')['default']
34 Month: typeof import('./../components/Schedule/component/month.vue')['default'] 36 Month: typeof import('./../components/Schedule/component/month.vue')['default']
35 NotAllowed: typeof import('./../components/NotAllowed/index.vue')['default'] 37 NotAllowed: typeof import('./../components/NotAllowed/index.vue')['default']
36 PageHeader: typeof import('./../components/PageHeader/index.vue')['default'] 38 PageHeader: typeof import('./../components/PageHeader/index.vue')['default']
......
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
5 <script lang="ts" setup name="importTableField"> 5 <script lang="ts" setup name="importTableField">
6 import { ref } from 'vue'; 6 import { ref } from 'vue';
7 import { 7 import {
8 getDataTypeList,
9 getParamsList 8 getParamsList
10 } from "@/api/modules/dataAsset"; 9 } from "@/api/modules/dataAsset";
11 import { pinyin } from 'pinyin-pro'; 10 import { pinyin } from 'pinyin-pro';
...@@ -80,7 +79,7 @@ const handleFileDataChange = (fileFields, files, sheetName, data) => { ...@@ -80,7 +79,7 @@ const handleFileDataChange = (fileFields, files, sheetName, data) => {
80 } 79 }
81 80
82 const getFieldTypeList = () => { 81 const getFieldTypeList = () => {
83 getDataTypeList({ 82 getParamsList({
84 dictType: "字段类型" 83 dictType: "字段类型"
85 }).then((res: any) => { 84 }).then((res: any) => {
86 fieldTypes.value = []; 85 fieldTypes.value = [];
......
...@@ -11,8 +11,7 @@ import { ...@@ -11,8 +11,7 @@ import {
11 getCurrentUserInfo 11 getCurrentUserInfo
12 } from "@/api/modules/queryService"; 12 } from "@/api/modules/queryService";
13 import { 13 import {
14 getDamTypesList, 14 getParamsList,
15 getSubjectDoaminList,
16 dataSourcesList, 15 dataSourcesList,
17 registerCatalogSave, 16 registerCatalogSave,
18 existDamName, 17 existDamName,
...@@ -495,7 +494,7 @@ const addAssetTable = () => { ...@@ -495,7 +494,7 @@ const addAssetTable = () => {
495 494
496 onBeforeMount(() => { 495 onBeforeMount(() => {
497 // const currentTenantGuid = localStorage.getItem('currentTenantGuid'); 496 // const currentTenantGuid = localStorage.getItem('currentTenantGuid');
498 // getCurrentUserInfo(currentTenantGuid).then((res: any) => { 497 // getCurrentUserInfo({tenantGuid: currentTenantGuid}).then((res: any) => {
499 // console.log(res, 'getCurrentUserInfo'); 498 // console.log(res, 'getCurrentUserInfo');
500 // if (res.code == '00000') { 499 // if (res.code == '00000') {
501 // localStorage.setItem('userData', JSON.stringify(res.data)); 500 // localStorage.setItem('userData', JSON.stringify(res.data));
...@@ -581,7 +580,7 @@ onBeforeMount(() => { ...@@ -581,7 +580,7 @@ onBeforeMount(() => {
581 } 580 }
582 return data; 581 return data;
583 } 582 }
584 getDamTypesList({ 583 getParamsList({
585 dictType: "资产类型", 584 dictType: "资产类型",
586 }).then((res: any) => { 585 }).then((res: any) => {
587 if (res.code == proxy.$passCode) { 586 if (res.code == proxy.$passCode) {
...@@ -592,7 +591,7 @@ onBeforeMount(() => { ...@@ -592,7 +591,7 @@ onBeforeMount(() => {
592 proxy.$ElMessage.error(res.msg); 591 proxy.$ElMessage.error(res.msg);
593 } 592 }
594 }) 593 })
595 getSubjectDoaminList({ 594 getParamsList({
596 dictType: "数据资产目录主题名称", 595 dictType: "数据资产目录主题名称",
597 }).then((res: any) => { 596 }).then((res: any) => {
598 if (res.code == proxy.$passCode) { 597 if (res.code == proxy.$passCode) {
......
...@@ -9,8 +9,7 @@ import { ElMessageBox } from "element-plus"; ...@@ -9,8 +9,7 @@ import { ElMessageBox } from "element-plus";
9 import { useRouter, useRoute } from "vue-router"; 9 import { useRouter, useRoute } from "vue-router";
10 import { MoreFilled } from "@element-plus/icons-vue"; 10 import { MoreFilled } from "@element-plus/icons-vue";
11 import { 11 import {
12 getSubjectDoaminList, 12 getParamsList,
13 getDamTypesList,
14 getDamCatalogTable, 13 getDamCatalogTable,
15 registerCatalogDelete 14 registerCatalogDelete
16 } from "@/api/modules/dataAsset"; 15 } from "@/api/modules/dataAsset";
...@@ -260,7 +259,7 @@ onBeforeMount(() => { ...@@ -260,7 +259,7 @@ onBeforeMount(() => {
260 proxy.$ElMessage.error(res.msg); 259 proxy.$ElMessage.error(res.msg);
261 } 260 }
262 }) 261 })
263 getSubjectDoaminList({ 262 getParamsList({
264 dictType: "数据资产目录主题名称", 263 dictType: "数据资产目录主题名称",
265 }).then((res: any) => { 264 }).then((res: any) => {
266 if (res.code == proxy.$passCode) { 265 if (res.code == proxy.$passCode) {
......
...@@ -258,13 +258,14 @@ const getDetailInfo = () => { ...@@ -258,13 +258,14 @@ const getDetailInfo = () => {
258 const data = res.data || {}; 258 const data = res.data || {};
259 detailInfo.value = data; 259 detailInfo.value = data;
260 assetDetailInfo.value = data; 260 assetDetailInfo.value = data;
261 if (fullPath === route.fullPath) { 261 deploymentId.value = data.camundaDeploymentId;
262 document.title = `详情-${data.daName}`; 262 // if (fullPath === route.fullPath) {
263 } 263 // document.title = `详情-${data.daName}`;
264 let tab: any = userStore.tabbar.find((tab: any) => tab.fullPath === fullPath); 264 // }
265 if (tab) { 265 // let tab: any = userStore.tabbar.find((tab: any) => tab.fullPath === fullPath);
266 tab.meta.title = `详情-${data.daName}`; 266 // if (tab) {
267 } 267 // tab.meta.title = `详情-${data.daName}`;
268 // }
268 isTextTruncated(); 269 isTextTruncated();
269 } else { 270 } else {
270 ElMessage.error(res.msg); 271 ElMessage.error(res.msg);
...@@ -293,11 +294,11 @@ onBeforeMount(() => { ...@@ -293,11 +294,11 @@ onBeforeMount(() => {
293 }); 294 });
294 295
295 onActivated(() => { 296 onActivated(() => {
296 if (assetDetailInfo.value?.daName) { 297 // if (assetDetailInfo.value?.daName) {
297 if (fullPath === route.fullPath) { 298 // if (fullPath === route.fullPath) {
298 document.title = `详情-${assetDetailInfo.value?.daName}`; 299 // document.title = `详情-${assetDetailInfo.value?.daName}`;
299 } 300 // }
300 } 301 // }
301 }); 302 });
302 303
303 onMounted(() => { 304 onMounted(() => {
...@@ -399,7 +400,7 @@ const approveTableInfo: any = ref({ ...@@ -399,7 +400,7 @@ const approveTableInfo: any = ref({
399 show: false 400 show: false
400 } 401 }
401 }); 402 });
402 403 const deploymentId = ref('');
403 const tenantDetail: any = ref({}); 404 const tenantDetail: any = ref({});
404 405
405 /** 获取当前登录会员,服务商,企业等详情。 */ 406 /** 获取当前登录会员,服务商,企业等详情。 */
...@@ -490,7 +491,7 @@ const btnClick = (btn) => { ...@@ -490,7 +491,7 @@ const btnClick = (btn) => {
490 qualityEvaluateFormItems.value[1].disabled = true; 491 qualityEvaluateFormItems.value[1].disabled = true;
491 } else { 492 } else {
492 qualityEvaluateFormItems.value[1].default = null; 493 qualityEvaluateFormItems.value[1].default = null;
493 qualityEvaluateFormItems.value[1].disabled = false; 494 qualityEvaluateFormItems.value[1].disabled = false;
494 } 495 }
495 } else if (type == 'reject') { 496 } else if (type == 'reject') {
496 rejectDialogInfo.value.visible = true; 497 rejectDialogInfo.value.visible = true;
...@@ -1593,7 +1594,9 @@ const handleClickDamCatalogDetail = () => { ...@@ -1593,7 +1594,9 @@ const handleClickDamCatalogDetail = () => {
1593 </ContentWrap> 1594 </ContentWrap>
1594 <ContentWrap id="id-approveInfo" title="审批信息" expandSwicth style="margin-top: 15px" 1595 <ContentWrap id="id-approveInfo" title="审批信息" expandSwicth style="margin-top: 15px"
1595 :isExpand="approveInfoExpand" @expand="(v) => approveInfoExpand = v"> 1596 :isExpand="approveInfoExpand" @expand="(v) => approveInfoExpand = v">
1596 <Table :tableInfo="approveTableInfo" /> 1597 <!-- <Table :tableInfo="approveTableInfo" /> -->
1598 <ApprovalProcess v-if="deploymentId" :deploymentId="deploymentId" :definitionId="''">
1599 </ApprovalProcess>
1597 </ContentWrap> 1600 </ContentWrap>
1598 <ContentWrap id="id-certificate" v-if="tabsInfo.tabs.find(t => t.name == 'certificate')" title="证件信息" 1601 <ContentWrap id="id-certificate" v-if="tabsInfo.tabs.find(t => t.name == 'certificate')" title="证件信息"
1599 expandSwicth style="margin-top: 15px" :isExpand="certificateExpand" @expand="(v) => certificateExpand = v"> 1602 expandSwicth style="margin-top: 15px" :isExpand="certificateExpand" @expand="(v) => certificateExpand = v">
...@@ -2065,4 +2068,4 @@ const handleClickDamCatalogDetail = () => { ...@@ -2065,4 +2068,4 @@ const handleClickDamCatalogDetail = () => {
2065 } 2068 }
2066 } 2069 }
2067 } 2070 }
2068 </style>
...\ No newline at end of file ...\ No newline at end of file
2071 </style>
......
...@@ -1344,7 +1344,7 @@ const getDataBaseTableData = async (params = {}) => { ...@@ -1344,7 +1344,7 @@ const getDataBaseTableData = async (params = {}) => {
1344 const dataBaseParams = { 1344 const dataBaseParams = {
1345 pageIndex: dataBasePage.value.curr, 1345 pageIndex: dataBasePage.value.curr,
1346 pageSize: dataBasePage.value.limit, 1346 pageSize: dataBasePage.value.limit,
1347 isDataAsset: checked.value ? 'Y' : 'N', 1347 isDataAsset: checked.value ? 'Y' : '',
1348 execGuid: execGuidInfo.value.execGuid, 1348 execGuid: execGuidInfo.value.execGuid,
1349 tableGuid: tableGuid.value || selectedB.value || '', 1349 tableGuid: tableGuid.value || selectedB.value || '',
1350 databaseGuid: dataBaseGuid.value || selectedA.value || '', 1350 databaseGuid: dataBaseGuid.value || selectedA.value || '',
......
...@@ -49,7 +49,7 @@ const getBizRuleConfigDetailData = async () => { ...@@ -49,7 +49,7 @@ const getBizRuleConfigDetailData = async () => {
49 } 49 }
50 } 50 }
51 }) 51 })
52 52 console.log('tableData', tableData.value)
53 53
54 tableFieldsLoading.value = false 54 tableFieldsLoading.value = false
55 } else { 55 } else {
...@@ -185,12 +185,12 @@ const tempRowData = ref<any>([]); ...@@ -185,12 +185,12 @@ const tempRowData = ref<any>([]);
185 185
186 // 编辑行 186 // 编辑行
187 const editRow = (row) => { 187 const editRow = (row) => {
188 // console.log('编辑:', row); 188 console.log('编辑:', row);
189 // // 暂存编辑前的数据 用于取消编辑时恢复原始数据,先判断是否已经暂存过tempRowData通过fieldGuid 189 // 暂存编辑前的数据 用于取消编辑时恢复原始数据,先判断是否已经暂存过tempRowData通过fieldGuid
190 // if (!tempRowData.value.find((item) => item.fieldGuid === row.fieldGuid)) { 190 if (!tempRowData.value.find((item) => item.fieldGuid === row.fieldGuid)) {
191 // tempRowData.value.push({ ...row }); 191 tempRowData.value.push({ ...row });
192 // } 192 }
193 193 console.log('tempRowData:', tempRowData.value);
194 // console.log('tempRowData:', tempRowData.value); 194 // console.log('tempRowData:', tempRowData.value);
195 // if (row.fieldLengthCondition) { 195 // if (row.fieldLengthCondition) {
196 // const arr = row.fieldLengthCondition.split('#'); // 按 '#' 分割 196 // const arr = row.fieldLengthCondition.split('#'); // 按 '#' 分割
...@@ -273,7 +273,6 @@ const saveRow = (row) => { ...@@ -273,7 +273,6 @@ const saveRow = (row) => {
273 } 273 }
274 274
275 if (tableData.value.find((item: any) => item.fieldGuid === row.fieldGuid)) { 275 if (tableData.value.find((item: any) => item.fieldGuid === row.fieldGuid)) {
276 console.log('tempRowData.value')
277 tableData.value.forEach(item => { 276 tableData.value.forEach(item => {
278 if (item.fieldGuid === row.fieldGuid) { 277 if (item.fieldGuid === row.fieldGuid) {
279 item.fieldLengthCondition = fieldLengthCondition 278 item.fieldLengthCondition = fieldLengthCondition
...@@ -284,6 +283,12 @@ const saveRow = (row) => { ...@@ -284,6 +283,12 @@ const saveRow = (row) => {
284 item.notNull = tempRow.notNull 283 item.notNull = tempRow.notNull
285 } 284 }
286 }); 285 });
286 // 更新 tempRowData 中保存的数据
287 const tempRowIndex = tempRowData.value.findIndex((item) => item.fieldGuid === row.fieldGuid);
288 if (tempRowIndex !== -1) {
289 // 更新 tempRowData 为保存后的数据
290 tempRowData.value[tempRowIndex] = { ...row };
291 }
287 } 292 }
288 row.isEdit = false 293 row.isEdit = false
289 } 294 }
...@@ -404,9 +409,20 @@ const cancel = () => { ...@@ -404,9 +409,20 @@ const cancel = () => {
404 // 点击取消 409 // 点击取消
405 const cancelEdit = (row) => { 410 const cancelEdit = (row) => {
406 // console.log('取消编辑:', row, tempRowData.value); 411 // console.log('取消编辑:', row, tempRowData.value);
407 // // 可在此恢复原始数据逻辑,要查找暂存的数据 tempRowData 中 fieldGuid 与当前行的 fieldGuid 相同的数据 412 // 可在此恢复原始数据逻辑,要查找暂存的数据 tempRowData 中 fieldGuid 与当前行的 fieldGuid 相同的数据
408 // const tempRow = tempRowData.value.find((item) => item.fieldGuid === row.fieldGuid); 413 const tempRow = tempRowData.value.find((item) => item.fieldGuid === row.fieldGuid);
409 // Object.assign(row, tempRow); 414
415 // 遍历tableData.value,找到当前行并恢复原始数据
416 tableData.value.forEach((item) => {
417 if (item.fieldGuid === tempRow.fieldGuid) {
418 // 恢复原始数据
419 item.fieldLengthCondition = tempRow.fieldLengthCondition;
420 item.fieldPrecision = tempRow.fieldPrecision;
421 item.isUnique = tempRow.isUnique;
422 item.notNull = tempRow.notNull;
423 item.fieldValueRange = tempRow.fieldValueRange;
424 }
425 });
410 426
411 row.isEdit = false; // 退出编辑状态 427 row.isEdit = false; // 退出编辑状态
412 } 428 }
......
...@@ -23,7 +23,6 @@ import { ...@@ -23,7 +23,6 @@ import {
23 exportDictionary, 23 exportDictionary,
24 showDictionary, 24 showDictionary,
25 getDataBaseList, 25 getDataBaseList,
26 getDataTypeList,
27 getCoderuleList, 26 getCoderuleList,
28 saveDictionaryData, 27 saveDictionaryData,
29 getDictionaryFileds, 28 getDictionaryFileds,
...@@ -608,7 +607,7 @@ const getDataType = (type) => { ...@@ -608,7 +607,7 @@ const getDataType = (type) => {
608 let params = { 607 let params = {
609 paramCode: type 608 paramCode: type
610 } 609 }
611 getDataTypeList(params).then((res: any) => { 610 getParamsList(params).then((res: any) => {
612 if (res.code == proxy.$passCode) { 611 if (res.code == proxy.$passCode) {
613 const data = res.data 612 const data = res.data
614 if (type == 'DATA_TYPE') { 613 if (type == 'DATA_TYPE') {
......
...@@ -12,7 +12,7 @@ import Dialog from "@/components/Dialog/index.vue"; ...@@ -12,7 +12,7 @@ import Dialog from "@/components/Dialog/index.vue";
12 import useUserStore from "@/store/modules/user"; 12 import useUserStore from "@/store/modules/user";
13 import useDataAssetStore from "@/store/modules/dataAsset"; 13 import useDataAssetStore from "@/store/modules/dataAsset";
14 import { onUploadFilePreview, onUploadFileDownload } from '@/api/modules/common'; 14 import { onUploadFilePreview, onUploadFileDownload } from '@/api/modules/common';
15 import { getApproveList, getTenantApprove, registerApproveAllow, registerApproveBackup, getSubjectDoaminList } from "@/api/modules/dataAsset"; 15 import { getApproveList, getTenantApprove, registerApproveAllow, registerApproveBackup, getParamsList } from "@/api/modules/dataAsset";
16 import { getDemandDetail, demandSave, competitionSave, marketSave, demandUpdate, competitionUpdate, marketUpdate, checkDemandName, getParamsDataList, getProductTypeList } from "@/api/modules/dataProduct"; 16 import { getDemandDetail, demandSave, competitionSave, marketSave, demandUpdate, competitionUpdate, marketUpdate, checkDemandName, getParamsDataList, getProductTypeList } from "@/api/modules/dataProduct";
17 import { getMatchDetail } from "@/api/modules/dataFinance"; 17 import { getMatchDetail } from "@/api/modules/dataFinance";
18 import { useValidator } from '@/hooks/useValidator'; 18 import { useValidator } from '@/hooks/useValidator';
...@@ -353,7 +353,7 @@ const algorithmFormItem = ref([ ...@@ -353,7 +353,7 @@ const algorithmFormItem = ref([
353 block: true, 353 block: true,
354 clearable: true, 354 clearable: true,
355 required: true, 355 required: true,
356 }, 356 },
357 // { 357 // {
358 // label: '赛事图片', 358 // label: '赛事图片',
359 // tip: '支持扩展名:.jpg .png .jpeg', 359 // tip: '支持扩展名:.jpg .png .jpeg',
...@@ -431,7 +431,7 @@ const elementFormItems = ref([ ...@@ -431,7 +431,7 @@ const elementFormItems = ref([
431 clearable: true, 431 clearable: true,
432 required: true, 432 required: true,
433 }, 433 },
434 { 434 {
435 label: '产品类别', 435 label: '产品类别',
436 type: 'tree-select', 436 type: 'tree-select',
437 placeholder: '请选择', 437 placeholder: '请选择',
...@@ -464,7 +464,7 @@ const elementFormItems = ref([ ...@@ -464,7 +464,7 @@ const elementFormItems = ref([
464 clearable: true, 464 clearable: true,
465 disabled: false, 465 disabled: false,
466 required: true, 466 required: true,
467 }, 467 },
468 { 468 {
469 label: '产品预算', 469 label: '产品预算',
470 type: 'checkbox-input-item', 470 type: 'checkbox-input-item',
...@@ -860,7 +860,7 @@ const submitForm = (btn, formEl, tosub = false) => { ...@@ -860,7 +860,7 @@ const submitForm = (btn, formEl, tosub = false) => {
860 ElMessage.error(res.msg); 860 ElMessage.error(res.msg);
861 } 861 }
862 }) 862 })
863 } 863 }
864 } 864 }
865 } else { 865 } else {
866 nextTick(() => { 866 nextTick(() => {
...@@ -1112,7 +1112,7 @@ const initMethodByInterfaceType = ref({ ...@@ -1112,7 +1112,7 @@ const initMethodByInterfaceType = ref({
1112 proxy.$ElMessage.error(res.msg); 1112 proxy.$ElMessage.error(res.msg);
1113 } 1113 }
1114 }) 1114 })
1115 getSubjectDoaminList().then((res: any) => { 1115 getParamsList({dictType: 'SUBJECT-DOMAIN'}).then((res: any) => {
1116 if (res.code == proxy.$passCode) { 1116 if (res.code == proxy.$passCode) {
1117 subjectDomainListData.value = res.data || []; 1117 subjectDomainListData.value = res.data || [];
1118 let item = demandFormItems.value.find(item => item.field == 'subjectDomain'); 1118 let item = demandFormItems.value.find(item => item.field == 'subjectDomain');
......
...@@ -15,7 +15,7 @@ import { TableColumnWidth } from '@/utils/enum'; ...@@ -15,7 +15,7 @@ import { TableColumnWidth } from '@/utils/enum';
15 import TableTools from "@/components/Tools/table_tools.vue"; 15 import TableTools from "@/components/Tools/table_tools.vue";
16 import Table from "@/components/Table/index.vue"; 16 import Table from "@/components/Table/index.vue";
17 import Dialog from "@/components/Dialog/index.vue"; 17 import Dialog from "@/components/Dialog/index.vue";
18 import { getDamTypesList } from "@/api/modules/dataAsset"; 18 import { getParamsList } from "@/api/modules/dataAsset";
19 import { 19 import {
20 changeNum, 20 changeNum,
21 } from "@/utils/common"; 21 } from "@/utils/common";
...@@ -299,7 +299,7 @@ onBeforeMount(() => { ...@@ -299,7 +299,7 @@ onBeforeMount(() => {
299 // proxy.$ElMessage.error(res.msg); 299 // proxy.$ElMessage.error(res.msg);
300 // } 300 // }
301 // }) 301 // })
302 getDamTypesList({ 302 getParamsList({
303 dictType: "资产类型", 303 dictType: "资产类型",
304 }).then((res: any) => { 304 }).then((res: any) => {
305 if (res.code == proxy.$passCode) { 305 if (res.code == proxy.$passCode) {
......
...@@ -14,7 +14,7 @@ import useDataAssetStore from "@/store/modules/dataAsset"; ...@@ -14,7 +14,7 @@ import useDataAssetStore from "@/store/modules/dataAsset";
14 import { changeNum } from '@/utils/common'; 14 import { changeNum } from '@/utils/common';
15 import { onUploadFilePreview, onUploadFileDownload } from '@/api/modules/common'; 15 import { onUploadFilePreview, onUploadFileDownload } from '@/api/modules/common';
16 import { getAreaData, getServiceTenants } from "@/api/modules/queryService"; 16 import { getAreaData, getServiceTenants } from "@/api/modules/queryService";
17 import { getApproveList, getTenantApprove, registerApproveAllow, registerApproveBackup, getSubjectDoaminList, getServiceDetail } from "@/api/modules/dataAsset"; 17 import { getApproveList, getTenantApprove, registerApproveAllow, registerApproveBackup, getParamsList, getServiceDetail } from "@/api/modules/dataAsset";
18 import { getProductList, getAddedProductList, getListingDetail, listingSave, listingUpdate, listingSavePortal, getParamsDataList } from "@/api/modules/dataProduct"; 18 import { getProductList, getAddedProductList, getListingDetail, listingSave, listingUpdate, listingSavePortal, getParamsDataList } from "@/api/modules/dataProduct";
19 import { getMatchDetail } from "@/api/modules/dataFinance"; 19 import { getMatchDetail } from "@/api/modules/dataFinance";
20 import { useValidator } from '@/hooks/useValidator'; 20 import { useValidator } from '@/hooks/useValidator';
...@@ -1191,7 +1191,7 @@ onBeforeMount(() => { ...@@ -1191,7 +1191,7 @@ onBeforeMount(() => {
1191 // ElMessage.error(res.msg); 1191 // ElMessage.error(res.msg);
1192 // } 1192 // }
1193 // }); 1193 // });
1194 getSubjectDoaminList({ 1194 getParamsList({
1195 dictType: "数据资产目录主题名称", 1195 dictType: "数据资产目录主题名称",
1196 }).then((res: any) => { 1196 }).then((res: any) => {
1197 if (res.code == proxy.$passCode) { 1197 if (res.code == proxy.$passCode) {
......
...@@ -328,6 +328,20 @@ onBeforeMount(() => { ...@@ -328,6 +328,20 @@ onBeforeMount(() => {
328 }); 328 });
329 329
330 onActivated(() => { 330 onActivated(() => {
331 let tab: any = userStore.tabbar.find((tab: any) => tab.fullPath === fullPath);
332 if (tab) {
333 if (route.query.detail) {
334 tab.meta.title = `新建规则(${route.query.planName})`;
335 if (fullPath === route.fullPath) {
336 document.title = tab.meta.title;
337 }
338 } else if (route.query.planName) {
339 tab.meta.title = `方案编辑-${route.query.planName}`;
340 if (fullPath === route.fullPath) {
341 document.title = tab.meta.title;
342 }
343 }
344 }
331 if (modelGuid.value || groupGuid.value) { 345 if (modelGuid.value || groupGuid.value) {
332 return; 346 return;
333 } 347 }
...@@ -1524,10 +1538,10 @@ const batchFiltersValueChange = (value) => { ...@@ -1524,10 +1538,10 @@ const batchFiltersValueChange = (value) => {
1524 destroy-on-close align-center> 1538 destroy-on-close align-center>
1525 <div style="height:450px"> 1539 <div style="height:450px">
1526 <TreeTransfer :readOnly="isDetail" mode="transfer" :title="['可选表', '已选表']" :defaultProps="{ 1540 <TreeTransfer :readOnly="isDetail" mode="transfer" :title="['可选表', '已选表']" :defaultProps="{
1527 label: 'name', 1541 label: 'name',
1528 value: 'guid', 1542 value: 'guid',
1529 isLeaf: 'isLeaf' 1543 isLeaf: 'isLeaf'
1530 }" :from-tree-data-loading="dsFromTreeDataLoading" :from_data="dsFromTreeData" :to_data="dsToTreeData" 1544 }" :from-tree-data-loading="dsFromTreeDataLoading" :from_data="dsFromTreeData" :to_data="dsToTreeData"
1531 checkOnClickNode :from_checked_all="false" node_key="guid" :transferOpenNode="true" width="100%" 1545 checkOnClickNode :from_checked_all="false" node_key="guid" :transferOpenNode="true" width="100%"
1532 @left-check-change="handleModelLeftCheckChange" lazy :lazyFn="loadNode" height="100%"> 1546 @left-check-change="handleModelLeftCheckChange" lazy :lazyFn="loadNode" height="100%">
1533 <template v-slot:from> 1547 <template v-slot:from>
...@@ -1550,9 +1564,9 @@ const batchFiltersValueChange = (value) => { ...@@ -1550,9 +1564,9 @@ const batchFiltersValueChange = (value) => {
1550 :close-on-click-modal="false" destroy-on-close align-center> 1564 :close-on-click-modal="false" destroy-on-close align-center>
1551 <div style="height:450px"> 1565 <div style="height:450px">
1552 <TreeTransferChecked class="one-level" mode="transfer" :title="['可选表', '已选表']" :defaultProps="{ 1566 <TreeTransferChecked class="one-level" mode="transfer" :title="['可选表', '已选表']" :defaultProps="{
1553 label: 'name', 1567 label: 'name',
1554 value: 'guid' 1568 value: 'guid'
1555 }" :from-tree-data-loading="dsByGroupFromTreeDataLoading" :from_data="dsByGroupFromTreeData" checkOnClickNode 1569 }" :from-tree-data-loading="dsByGroupFromTreeDataLoading" :from_data="dsByGroupFromTreeData" checkOnClickNode
1556 :to_data="dsByGroupToTreeData" node_key="guid" :transferOpenNode="true" width="100%" 1570 :to_data="dsByGroupToTreeData" node_key="guid" :transferOpenNode="true" width="100%"
1557 :defaultCheckedKeys="dsByGroupToTreeData.map(d => d.guid)" :rootPidValue="''" 1571 :defaultCheckedKeys="dsByGroupToTreeData.map(d => d.guid)" :rootPidValue="''"
1558 @left-check-changed="handleModelByGroupLeftCheckedChange" height="100%"> 1572 @left-check-changed="handleModelByGroupLeftCheckedChange" height="100%">
......
...@@ -432,10 +432,12 @@ const open = (msg, type, isBatch = false) => { ...@@ -432,10 +432,12 @@ const open = (msg, type, isBatch = false) => {
432 if (res.code == proxy.$passCode) { 432 if (res.code == proxy.$passCode) {
433 page.value.curr = 1; 433 page.value.curr = 1;
434 getTableData(); 434 getTableData();
435 // let node = qualityModelTreeRef.value.treeRef.store.nodesMap[currTableData.value.modelGroupGuid];
436 // node.loaded = false;
437 // node.expand();
438 getQualityGroupTreeData(); 435 getQualityGroupTreeData();
436 nextTick(() => {
437 let node = qualityModelTreeRef.value.treeRef.store.nodesMap[currTableData.value.modelGroupGuid];
438 node.loaded = false;
439 node.expand();
440 })
439 ElMessage.success('删除成功'); 441 ElMessage.success('删除成功');
440 } else { 442 } else {
441 ElMessage.error(res.msg); 443 ElMessage.error(res.msg);
...@@ -599,7 +601,7 @@ const ruleTableBtnClick = (scope, btn) => { ...@@ -599,7 +601,7 @@ const ruleTableBtnClick = (scope, btn) => {
599 } 601 }
600 }); 602 });
601 } else if (type == "delete") { 603 } else if (type == "delete") {
602 ruleOpen("此操作将永久删除该质检, 是否继续?", "warning"); 604 ruleOpen("此操作将永久删除该质检规则, 是否继续?", "warning");
603 } 605 }
604 }; 606 };
605 607
...@@ -613,11 +615,10 @@ const ruleOpen = (msg, type, isBatch = false) => { ...@@ -613,11 +615,10 @@ const ruleOpen = (msg, type, isBatch = false) => {
613 deleteQualityTableRule(guids).then((res: any) => { 615 deleteQualityTableRule(guids).then((res: any) => {
614 if (res.code == proxy.$passCode) { 616 if (res.code == proxy.$passCode) {
615 getRuleTableData(); 617 getRuleTableData();
616 // let node = qualityModelTreeRef.value.treeRef.store.nodesMap[lastSelectNode.value.data.guid]; 618 let node = qualityModelTreeRef.value.treeRef.store.nodesMap[lastSelectNode.value.data.guid];
617 // node.loaded = false; 619 node.loaded = false;
618 // node.expand(); 620 node.expand();
619 getQualityGroupTreeData(); 621 ElMessage.success('删除质检规则成功');
620 ElMessage.success('删除质检表成功');
621 } else { 622 } else {
622 ElMessage.error(res.msg); 623 ElMessage.error(res.msg);
623 } 624 }
...@@ -883,9 +884,11 @@ onActivated(async () => { ...@@ -883,9 +884,11 @@ onActivated(async () => {
883 if (lastSelectNode.value && lastSelectNode.value.data.guid == dataQualityStore.modelGroupGuid) { 884 if (lastSelectNode.value && lastSelectNode.value.data.guid == dataQualityStore.modelGroupGuid) {
884 getTableData(); 885 getTableData();
885 } 886 }
886 // let node = qualityModelTreeRef.value.treeRef.store.nodesMap[dataQualityStore.modelGroupGuid];
887 // node.expand();
888 getQualityGroupTreeData(); 887 getQualityGroupTreeData();
888 nextTick(() => {
889 let node = qualityModelTreeRef.value.treeRef.store.nodesMap[dataQualityStore.modelGroupGuid];
890 node.expand();
891 })
889 dataQualityStore.set(null); 892 dataQualityStore.set(null);
890 } 893 }
891 } 894 }
...@@ -921,7 +924,7 @@ onBeforeMount(() => { ...@@ -921,7 +924,7 @@ onBeforeMount(() => {
921 d.label = d.ruleName; 924 d.label = d.ruleName;
922 d.value = d.ruleCode; 925 d.value = d.ruleCode;
923 return d; 926 return d;
924 }) || []; 927 })?.filter(d => d.ruleCode != 'rows_check' && d.ruleCode != 'volatility_check') || [];
925 searchItemList.value[2].options = ruleTypeList.value; 928 searchItemList.value[2].options = ruleTypeList.value;
926 } else { 929 } else {
927 ElMessage.error(res.msg); 930 ElMessage.error(res.msg);
......
...@@ -158,7 +158,7 @@ onBeforeMount(() => { ...@@ -158,7 +158,7 @@ onBeforeMount(() => {
158 d.label = d.ruleName; 158 d.label = d.ruleName;
159 d.value = d.ruleCode; 159 d.value = d.ruleCode;
160 return d; 160 return d;
161 }) || []; 161 })?.filter(d => d.ruleCode != 'rows_check' && d.ruleCode != 'volatility_check') || [];
162 } else { 162 } else {
163 ElMessage.error(res.msg); 163 ElMessage.error(res.msg);
164 } 164 }
......
...@@ -241,7 +241,7 @@ onBeforeMount(() => { ...@@ -241,7 +241,7 @@ onBeforeMount(() => {
241 d.label = d.ruleName; 241 d.label = d.ruleName;
242 d.value = d.ruleCode; 242 d.value = d.ruleCode;
243 return d; 243 return d;
244 }) || []; 244 })?.filter(d => d.ruleCode != 'rows_check' && d.ruleCode != 'volatility_check') || [];
245 } else { 245 } else {
246 ElMessage.error(res.msg); 246 ElMessage.error(res.msg);
247 } 247 }
...@@ -262,6 +262,16 @@ onBeforeMount(() => { ...@@ -262,6 +262,16 @@ onBeforeMount(() => {
262 }) 262 })
263 }) 263 })
264 264
265 onActivated(() => {
266 let tab: any = userStore.tabbar.find((tab: any) => tab.fullPath === fullPath);
267 if (tab && detailInfo.value?.ruleConfName) {
268 tab.meta.title = `编辑-${detailInfo.value.ruleConfName}(${detailInfo.value.subjectZhName})`
269 if (fullPath === route.fullPath) {
270 document.title = tab.meta.title;
271 }
272 }
273 });
274
265 </script> 275 </script>
266 276
267 <template> 277 <template>
......
...@@ -248,7 +248,7 @@ onBeforeMount(() => { ...@@ -248,7 +248,7 @@ onBeforeMount(() => {
248 d.label = d.ruleName; 248 d.label = d.ruleName;
249 d.value = d.ruleCode; 249 d.value = d.ruleCode;
250 return d; 250 return d;
251 }) || []; 251 })?.filter(d => d.ruleCode != 'rows_check' && d.ruleCode != 'volatility_check') || []; //先隐藏掉表行数检查和表行数波动率
252 } else { 252 } else {
253 ElMessage.error(res.msg); 253 ElMessage.error(res.msg);
254 } 254 }
...@@ -269,6 +269,16 @@ onBeforeMount(() => { ...@@ -269,6 +269,16 @@ onBeforeMount(() => {
269 }) 269 })
270 }) 270 })
271 271
272 onActivated(() => {
273 let tab: any = userStore.tabbar.find((tab: any) => tab.fullPath === fullPath);
274 if (tab && route.query.name) {
275 tab.meta.title = `新建规则(${route.query.name})`;
276 if (fullPath === route.fullPath) {
277 document.title = tab.meta.title;
278 }
279 }
280 });
281
272 const cancel = () => { 282 const cancel = () => {
273 ElMessageBox.confirm( 283 ElMessageBox.confirm(
274 "当前页面尚未保存,确定放弃修改吗?", 284 "当前页面尚未保存,确定放弃修改吗?",
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!