e3e7540e by xukangle

fix

1 parent f2e47612
...@@ -70,7 +70,11 @@ VITE_APP_COMMON_URL = 'ms-daop-common-service' ...@@ -70,7 +70,11 @@ VITE_APP_COMMON_URL = 'ms-daop-common-service'
70 70
71 #门户接口 71 #门户接口
72 VITE_API_PORTALURL = https://swzl-test.zgsjzc.com/portal 72 VITE_API_PORTALURL = https://swzl-test.zgsjzc.com/portal
73 #新门户接口
74 VITE_API_NEW_PORTAL = ms-daop-zcgl-asset-dam-service
73 75
76 #人员服务
77 VITE_APP_PERSONAL_URL = 'ms-daop-personel-service'
74 #数据资产接口地址 78 #数据资产接口地址
75 VITE_API_ASSET_BASEURL = ms-swzl-data-dam-service 79 VITE_API_ASSET_BASEURL = ms-swzl-data-dam-service
76 #数据同步接口地址 80 #数据同步接口地址
......
...@@ -13,7 +13,7 @@ export const getProductList = (params) => request({ ...@@ -13,7 +13,7 @@ export const getProductList = (params) => request({
13 13
14 /** 获取已添加的数据产品列表 */ 14 /** 获取已添加的数据产品列表 */
15 export const getAddedProductList = (params) => request({ 15 export const getAddedProductList = (params) => request({
16 url: `${import.meta.env.VITE_API_ASSET_BASEURL}/product-grounding/list-select`, 16 url: `${import.meta.env.VITE_API_NEW_PORTAL}/product-grounding/list-select`,
17 method: 'post', 17 method: 'post',
18 data: params 18 data: params
19 }) 19 })
...@@ -27,35 +27,43 @@ export const getListingList = (params) => request({ ...@@ -27,35 +27,43 @@ export const getListingList = (params) => request({
27 27
28 /** 获取数据产品上架详情 */ 28 /** 获取数据产品上架详情 */
29 export const getListingDetail = (params) => request({ 29 export const getListingDetail = (params) => request({
30 url: `${import.meta.env.VITE_API_ASSET_BASEURL}/product-grounding/detail`, 30 url: `${import.meta.env.VITE_API_NEW_PORTAL}/product-grounding/detail`,
31 method: 'get', 31 method: 'get',
32 params 32 params
33 }) 33 })
34 34
35 /** 新增数据产品上架信息 */ 35 /** 新增数据产品上架信息 */
36 export const listingSave = (params) => request({ 36 export const listingSave = (params) => request({
37 url: `${import.meta.env.VITE_API_ASSET_BASEURL}/product-grounding/save`, 37 url: `${import.meta.env.VITE_API_NEW_PORTAL}/product-grounding/save`,
38 method: 'post',
39 data: params
40 });
41
42 /**数据产品上架新增门户/product-grounding/save-gateway */
43
44 export const listingSavePortal = (params) => request({
45 url: `${import.meta.env.VITE_API_NEW_PORTAL}/product-grounding/save-gateway`,
38 method: 'post', 46 method: 'post',
39 data: params 47 data: params
40 }); 48 });
41 49
42 /** 更新数据产品上架信息 */ 50 /** 更新数据产品上架信息 */
43 export const listingUpdate = (params) => request({ 51 export const listingUpdate = (params) => request({
44 url: `${import.meta.env.VITE_API_ASSET_BASEURL}/product-grounding/update`, 52 url: `${import.meta.env.VITE_API_NEW_PORTAL}/product-grounding/update`,
45 method: 'post', 53 method: 'post',
46 data: params 54 data: params
47 }); 55 });
48 56
49 /** 删除数据产品上架信息 */ 57 /** 删除数据产品上架信息 */
50 export const listingDelete = (params) => request({ 58 export const listingDelete = (params) => request({
51 url: `${import.meta.env.VITE_API_ASSET_BASEURL}/product-grounding/delete`, 59 url: `${import.meta.env.VITE_API_NEW_PORTAL}/product-grounding/delete`,
52 method: 'delete', 60 method: 'delete',
53 data: params 61 data: params
54 }); 62 });
55 63
56 /** 更新数据产品上架状态及上架平台 */ 64 /** 更新数据产品上架状态及上架平台 */
57 export const listingUpdateStatus = (params) => request({ 65 export const listingUpdateStatus = (params) => request({
58 url: `${import.meta.env.VITE_API_ASSET_BASEURL}/product-grounding/update-grounding-pick`, 66 url: `${import.meta.env.VITE_API_NEW_PORTAL}/product-grounding/update-grounding-pick`,
59 method: 'post', 67 method: 'post',
60 data: params 68 data: params
61 }); 69 });
...@@ -65,75 +73,75 @@ export const listingUpdateStatus = (params) => request({ ...@@ -65,75 +73,75 @@ export const listingUpdateStatus = (params) => request({
65 **/ 73 **/
66 /** 获取数据需求列表。 */ 74 /** 获取数据需求列表。 */
67 export const getDemandList = (params) => request({ 75 export const getDemandList = (params) => request({
68 url: `${import.meta.env.VITE_API_ASSET_BASEURL}/demand-release/page-list`, 76 url: `${import.meta.env.VITE_API_NEW_PORTAL}/demand-release/page-list`,
69 method: 'post', 77 method: 'post',
70 data: params 78 data: params
71 }) 79 })
72 80
73 /** 获取数据需求发布详情 */ 81 /** 获取数据需求发布详情 */
74 export const getDemandDetail = (params) => request({ 82 export const getDemandDetail = (params) => request({
75 url: `${import.meta.env.VITE_API_ASSET_BASEURL}/demand-release/detail`, 83 url: `${import.meta.env.VITE_API_NEW_PORTAL}/demand-release/detail`,
76 method: 'get', 84 method: 'get',
77 params 85 params
78 }) 86 })
79 87
80 /** 新增数据需求发布信息 */ 88 /** 新增数据需求发布信息 */
81 export const demandSave = (params) => request({ 89 export const demandSave = (params) => request({
82 url: `${import.meta.env.VITE_API_ASSET_BASEURL}/demand-release/save`, 90 url: `${import.meta.env.VITE_API_NEW_PORTAL}/demand-release/save`,
83 method: 'post', 91 method: 'post',
84 data: params 92 data: params
85 }); 93 });
86 94
87 /** 新增竞赛需求发布 */ 95 /** 新增竞赛需求发布 */
88 export const competitionSave = (params) => request({ 96 export const competitionSave = (params) => request({
89 url: `${import.meta.env.VITE_API_ASSET_BASEURL}/demand-release/competition-save`, 97 url: `${import.meta.env.VITE_API_NEW_PORTAL}/demand-release/competition-save`,
90 method: 'post', 98 method: 'post',
91 data: params 99 data: params
92 }); 100 });
93 101
94 /** 新增要素市场需求发布 */ 102 /** 新增要素市场需求发布 */
95 export const marketSave = (params) => request({ 103 export const marketSave = (params) => request({
96 url: `${import.meta.env.VITE_API_ASSET_BASEURL}/demand-release/market-save`, 104 url: `${import.meta.env.VITE_API_NEW_PORTAL}/demand-release/market-save`,
97 method: 'post', 105 method: 'post',
98 data: params 106 data: params
99 }); 107 });
100 108
101 /** 更新数据需求发布信息 */ 109 /** 更新数据需求发布信息 */
102 export const demandUpdate = (params) => request({ 110 export const demandUpdate = (params) => request({
103 url: `${import.meta.env.VITE_API_ASSET_BASEURL}/demand-release/update`, 111 url: `${import.meta.env.VITE_API_NEW_PORTAL}/demand-release/update`,
104 method: 'post', 112 method: 'post',
105 data: params 113 data: params
106 }); 114 });
107 115
108 /** 更新竞赛发布信息 */ 116 /** 更新竞赛发布信息 */
109 export const competitionUpdate = (params) => request({ 117 export const competitionUpdate = (params) => request({
110 url: `${import.meta.env.VITE_API_ASSET_BASEURL}/demand-release/competition-update`, 118 url: `${import.meta.env.VITE_API_NEW_PORTAL}/demand-release/competition-update`,
111 method: 'post', 119 method: 'post',
112 data: params 120 data: params
113 }); 121 });
114 /** 更新数据要素市场发布信息 */ 122 /** 更新数据要素市场发布信息 */
115 export const marketUpdate = (params) => request({ 123 export const marketUpdate = (params) => request({
116 url: `${import.meta.env.VITE_API_ASSET_BASEURL}/demand-release/market-update`, 124 url: `${import.meta.env.VITE_API_NEW_PORTAL}/demand-release/market-update`,
117 method: 'post', 125 method: 'post',
118 data: params 126 data: params
119 }); 127 });
120 /** 删除数据需求发布信息 */ 128 /** 删除数据需求发布信息 */
121 export const demandDelete = (params) => request({ 129 export const demandDelete = (params) => request({
122 url: `${import.meta.env.VITE_API_ASSET_BASEURL}/demand-release/delete`, 130 url: `${import.meta.env.VITE_API_NEW_PORTAL}/demand-release/delete`,
123 method: 'delete', 131 method: 'delete',
124 data: params 132 data: params
125 }); 133 });
126 134
127 /** 更新数据需求发布状态及上架平台 */ 135 /** 更新数据需求发布状态及上架平台 */
128 export const demandUpdateStatus = (params) => request({ 136 export const demandUpdateStatus = (params) => request({
129 url: `${import.meta.env.VITE_API_ASSET_BASEURL}/demand-release/update-listing-Status`, 137 url: `${import.meta.env.VITE_API_NEW_PORTAL}/demand-release/update-listing-Status`,
130 method: 'post', 138 method: 'post',
131 data: params 139 data: params
132 }); 140 });
133 141
134 /** 验证数据需求名称唯一性 */ 142 /** 验证数据需求名称唯一性 */
135 export const checkDemandName = (params) => request({ 143 export const checkDemandName = (params) => request({
136 url: `${import.meta.env.VITE_API_ASSET_BASEURL}/demand-release/verify-data-name?dataName=${params}`, 144 url: `${import.meta.env.VITE_API_NEW_PORTAL}/demand-release/verify-data-name?dataName=${params}`,
137 method: 'get' 145 method: 'get'
138 }) 146 })
139 147
......
...@@ -6,16 +6,12 @@ ...@@ -6,16 +6,12 @@
6 import { Warning } from "@element-plus/icons-vue"; 6 import { Warning } from "@element-plus/icons-vue";
7 import TableTools from '@/components/Tools/table_tools.vue'; 7 import TableTools from '@/components/Tools/table_tools.vue';
8 import { 8 import {
9 getDictionary,
10 saveBizRuleConfig, 9 saveBizRuleConfig,
11 getDbDirTreeList, 10 getDbDirTreeList,
12 getDbDirTablePageList, 11 getDbDirTablePageList,
13 getDbDirFieldPageList, 12 getDbDirFieldPageList,
14 getExecGuidAndName, 13 getExecGuidAndName,
15 getClassifyTreeList,
16 getCgLabelPageList,
17 execTaskFieldList, 14 execTaskFieldList,
18 execTaskSheetList,
19 getTaskExeTreeList, 15 getTaskExeTreeList,
20 getDbFieldList, 16 getDbFieldList,
21 exportCgDir, 17 exportCgDir,
...@@ -32,6 +28,7 @@ import { ...@@ -32,6 +28,7 @@ import {
32 import { TableColumnWidth } from "@/utils/enum"; 28 import { TableColumnWidth } from "@/utils/enum";
33 import router from "@/router"; 29 import router from "@/router";
34 import { download } from "@/utils/common"; 30 import { download } from "@/utils/common";
31 import { da } from "element-plus/es/locale";
35 32
36 33
37 const currentPath = ref<string[]>([]); 34 const currentPath = ref<string[]>([]);
...@@ -154,6 +151,25 @@ onMounted(async () => { ...@@ -154,6 +151,25 @@ onMounted(async () => {
154 // getLabelListData(); 151 // getLabelListData();
155 getGradeData(refGradeGuid.value); 152 getGradeData(refGradeGuid.value);
156 getFieldTypeData(); 153 getFieldTypeData();
154 if (route.query.databaseGuid && route.query.tableGuid) {
155 activeName.value = 'second';
156 classifyDetailGuidInfo.value = '';
157 selectedA.value = route.query.databaseGuid;
158 selectedB.value = route.query.tableGuid;
159 selectedC.value = null;
160 optionsA.value = [];
161 optionsB.value = [];
162 optionsC.value = [];
163 await getDataBaseTreeData();
164 await getDbDirTableSelectData(1, {});
165 await getDataBaseTableData();
166 await getDataBaseFieldData();
167 await getDbDirTableSelectData(2, { databaseGuid: selectedA.value, condition: "2" });
168
169
170
171
172 }
157 173
158 }) 174 })
159 175
...@@ -264,7 +280,7 @@ const toSearch = (val: any, clear: boolean = false) => { ...@@ -264,7 +280,7 @@ const toSearch = (val: any, clear: boolean = false) => {
264 pageIndex: 1, 280 pageIndex: 1,
265 pageSize: 50, 281 pageSize: 50,
266 execGuid: execGuidInfo.value.execGuid, 282 execGuid: execGuidInfo.value.execGuid,
267 tableGuid: selectedB.value || tableGuid.value || '', 283 tableGuid: '',
268 databaseGuid: selectedA.value || dataBaseGuid.value || '', 284 databaseGuid: selectedA.value || dataBaseGuid.value || '',
269 classifyDetailGuid: '', 285 classifyDetailGuid: '',
270 gradeDetailGuid: '', 286 gradeDetailGuid: '',
...@@ -275,7 +291,7 @@ const toSearch = (val: any, clear: boolean = false) => { ...@@ -275,7 +291,7 @@ const toSearch = (val: any, clear: boolean = false) => {
275 pageIndex: 1, 291 pageIndex: 1,
276 pageSize: 50, 292 pageSize: 50,
277 execGuid: execGuidInfo.value.execGuid, 293 execGuid: execGuidInfo.value.execGuid,
278 tableGuid: selectedB.value || tableGuid.value || '', 294 tableGuid: '',
279 databaseGuid: selectedA.value || dataBaseGuid.value || '', 295 databaseGuid: selectedA.value || dataBaseGuid.value || '',
280 fieldGuid: '', 296 fieldGuid: '',
281 classifyDetailGuid: val.classifyName, 297 classifyDetailGuid: val.classifyName,
...@@ -396,11 +412,8 @@ const getGradeData = async (refGradeGuid) => { ...@@ -396,11 +412,8 @@ const getGradeData = async (refGradeGuid) => {
396 // btns-area 412 // btns-area
397 const checked = ref(false); 413 const checked = ref(false);
398 const changeCheck = (val) => { 414 const changeCheck = (val) => {
399
400 checked.value = val; 415 checked.value = val;
401 getDataBaseTableData({ 416 getDataBaseTableData();
402 isDataAsset: val ? 'Y' : ''
403 });
404 } 417 }
405 418
406 //下方表格配置 419 //下方表格配置
...@@ -973,7 +986,7 @@ const classEditFormItems = ref<any>([{ ...@@ -973,7 +986,7 @@ const classEditFormItems = ref<any>([{
973 { 986 {
974 label: '是否必填', 987 label: '是否必填',
975 type: "select", 988 type: "select",
976 field: "isNotNull", 989 field: "notNull",
977 disabled: false, 990 disabled: false,
978 default: '', 991 default: '',
979 options: [ 992 options: [
...@@ -1039,7 +1052,7 @@ const drawerBtnClick = async (btn, info) => { ...@@ -1039,7 +1052,7 @@ const drawerBtnClick = async (btn, info) => {
1039 } else { 1052 } else {
1040 btn.loading = true; 1053 btn.loading = true;
1041 console.log('drawerBtnClick', info); 1054 console.log('drawerBtnClick', info);
1042 const { orderNumLength, orderNum, startNumber, endNumber, fieldValueRange, startValue, endValue, fieldPrecision, dictionaryGuid, isUnique, isNotNull } = info; 1055 const { orderNumLength, orderNum, startNumber, endNumber, fieldValueRange, startValue, endValue, fieldPrecision, dictionaryGuid, isUnique, notNull } = info;
1043 // 判断长度orderNumLength,orderNum 要么都有值,要么都没有值,不能只有一个有值,一个没有值精确提醒 1056 // 判断长度orderNumLength,orderNum 要么都有值,要么都没有值,不能只有一个有值,一个没有值精确提醒
1044 let fieldLengthCondition: any = ''; 1057 let fieldLengthCondition: any = '';
1045 if ((orderNumLength === 'between' && !startNumber) || (orderNumLength === 'between' && !endNumber)) { 1058 if ((orderNumLength === 'between' && !startNumber) || (orderNumLength === 'between' && !endNumber)) {
...@@ -1080,7 +1093,7 @@ const drawerBtnClick = async (btn, info) => { ...@@ -1080,7 +1093,7 @@ const drawerBtnClick = async (btn, info) => {
1080 fieldPrecision, 1093 fieldPrecision,
1081 dictionaryGuid, 1094 dictionaryGuid,
1082 isUnique, 1095 isUnique,
1083 isNotNull, 1096 notNull,
1084 fieldLengthCondition, 1097 fieldLengthCondition,
1085 fieldValueRange, 1098 fieldValueRange,
1086 fieldGuid: item, 1099 fieldGuid: item,
...@@ -1091,7 +1104,7 @@ const drawerBtnClick = async (btn, info) => { ...@@ -1091,7 +1104,7 @@ const drawerBtnClick = async (btn, info) => {
1091 fieldPrecision, 1104 fieldPrecision,
1092 dictionaryGuid, 1105 dictionaryGuid,
1093 isUnique, 1106 isUnique,
1094 isNotNull, 1107 notNull,
1095 fieldLengthCondition, 1108 fieldLengthCondition,
1096 fieldGuid: item, 1109 fieldGuid: item,
1097 execGuid: execGuidInfo.value.execGuid, 1110 execGuid: execGuidInfo.value.execGuid,
...@@ -1198,6 +1211,8 @@ const drawerSelectChange = (val, row, info) => { ...@@ -1198,6 +1211,8 @@ const drawerSelectChange = (val, row, info) => {
1198 }); 1211 });
1199 1212
1200 } 1213 }
1214 // 记录切换时的信息记录
1215
1201 1216
1202 // tab切换 1217 // tab切换
1203 const activeName = ref('first'); 1218 const activeName = ref('first');
...@@ -1224,6 +1239,10 @@ const handleClick = async (tab: any) => { ...@@ -1224,6 +1239,10 @@ const handleClick = async (tab: any) => {
1224 await getDataBaseTableData(); 1239 await getDataBaseTableData();
1225 await getDataBaseFieldData(); 1240 await getDataBaseFieldData();
1226 await getDbDirTableSelectData(2, { databaseGuid: selectedA.value, condition: "2" }); 1241 await getDbDirTableSelectData(2, { databaseGuid: selectedA.value, condition: "2" });
1242 // if (activeTab.value === 'word') {
1243 // await getDbDirTableSelectData(1, {});
1244 // await getDbDirTableSelectData(2, { databaseGuid: selectedA.value, condition: "2" });
1245 // }
1227 1246
1228 } else { 1247 } else {
1229 searchItemList.value[0].visible = true; 1248 searchItemList.value[0].visible = true;
...@@ -1255,7 +1274,6 @@ const getDataBaseTreeData = async () => { ...@@ -1255,7 +1274,6 @@ const getDataBaseTreeData = async () => {
1255 dataBaseTreeData.value = dataArray; 1274 dataBaseTreeData.value = dataArray;
1256 dataBaseTreeInfo.value.data = dataArray; 1275 dataBaseTreeInfo.value.data = dataArray;
1257 if (localStorage.getItem("shouldReloadData")) { 1276 if (localStorage.getItem("shouldReloadData")) {
1258 console.log('reload');
1259 dataBaseTreeInfo.value.expandedKey = []; 1277 dataBaseTreeInfo.value.expandedKey = [];
1260 const info = JSON.parse(localStorage.getItem("onActiveInfo") || '{}'); 1278 const info = JSON.parse(localStorage.getItem("onActiveInfo") || '{}');
1261 dataBaseTreeInfo.value.expandedKey.push(dataArray[info.dbindex].guid); 1279 dataBaseTreeInfo.value.expandedKey.push(dataArray[info.dbindex].guid);
...@@ -1271,6 +1289,22 @@ const getDataBaseTreeData = async () => { ...@@ -1271,6 +1289,22 @@ const getDataBaseTreeData = async () => {
1271 dataBaseTreeInfo.value.loading = false; 1289 dataBaseTreeInfo.value.loading = false;
1272 return; 1290 return;
1273 } 1291 }
1292 if (route.query.databaseGuid && route.query.tableGuid) {
1293 dataBaseTreeInfo.value.expandedKey = [];
1294 dataBaseTreeInfo.value.expandedKey.push(route.query.tableGuid);
1295 dataBaseTreeInfo.value.currentNodeKey = route.query.tableGuid;
1296 dataBaseGuid.value = route.query.databaseGuid;
1297 currentDatabasePath.value = findDDatabasePath(dataBaseTreeData.value, route.query.tableGuid);
1298 const item = dataBaseTreeData.value.find(item => item.databaseGuid === route.query.databaseGuid);
1299 if (item === 1) {
1300 isShowCreateBtn.value = true;
1301 }
1302 if (item === 2) {
1303 isShowCreateBtn.value = false;
1304 }
1305 dataBaseTreeInfo.value.loading = false;
1306 return;
1307 }
1274 dataBaseTreeInfo.value.expandedKey.push(dataArray[0].guid); 1308 dataBaseTreeInfo.value.expandedKey.push(dataArray[0].guid);
1275 dataBaseTreeInfo.value.currentNodeKey = dataArray[0].guid; 1309 dataBaseTreeInfo.value.currentNodeKey = dataArray[0].guid;
1276 dataBaseGuid.value = dataArray[0].databaseGuid; 1310 dataBaseGuid.value = dataArray[0].databaseGuid;
...@@ -1310,10 +1344,10 @@ const getDataBaseTableData = async (params = {}) => { ...@@ -1310,10 +1344,10 @@ const getDataBaseTableData = async (params = {}) => {
1310 const dataBaseParams = { 1344 const dataBaseParams = {
1311 pageIndex: dataBasePage.value.curr, 1345 pageIndex: dataBasePage.value.curr,
1312 pageSize: dataBasePage.value.limit, 1346 pageSize: dataBasePage.value.limit,
1313 isDataAsset: '', 1347 isDataAsset: checked.value ? 'Y' : 'N',
1314 execGuid: execGuidInfo.value.execGuid, 1348 execGuid: execGuidInfo.value.execGuid,
1315 tableGuid: tableGuid.value, 1349 tableGuid: tableGuid.value || selectedA.value || '',
1316 databaseGuid: dataBaseGuid.value, 1350 databaseGuid: dataBaseGuid.value || selectedB.value || '',
1317 fieldGuid: "", 1351 fieldGuid: "",
1318 labelGuid: "", 1352 labelGuid: "",
1319 classifyDetailGuid: "", 1353 classifyDetailGuid: "",
...@@ -1362,8 +1396,8 @@ const getDataBaseFieldData = async (params = {}) => { ...@@ -1362,8 +1396,8 @@ const getDataBaseFieldData = async (params = {}) => {
1362 pageIndex: dataFieldPage.value.curr, 1396 pageIndex: dataFieldPage.value.curr,
1363 pageSize: dataFieldPage.value.limit, 1397 pageSize: dataFieldPage.value.limit,
1364 execGuid: execGuidInfo.value.execGuid, 1398 execGuid: execGuidInfo.value.execGuid,
1365 tableGuid: tableGuid.value || '', 1399 tableGuid: tableGuid.value || selectedA.value || '',
1366 databaseGuid: dataBaseGuid.value || '', 1400 databaseGuid: dataBaseGuid.value || selectedB.value || '',
1367 fieldGuid: "", 1401 fieldGuid: "",
1368 labelGuid: "", 1402 labelGuid: "",
1369 classifyDetailGuid: "", 1403 classifyDetailGuid: "",
...@@ -1435,7 +1469,7 @@ const showTableOrDatabase = ref(true); ...@@ -1435,7 +1469,7 @@ const showTableOrDatabase = ref(true);
1435 const isShowCreateBtn = ref(true); 1469 const isShowCreateBtn = ref(true);
1436 // 定义tableGuid 1470 // 定义tableGuid
1437 const tableGuid = ref(''); 1471 const tableGuid = ref('');
1438 const dataBaseGuid = ref(''); 1472 const dataBaseGuid = ref<any>('');
1439 const dataBaseInfo = ref<any>({}); 1473 const dataBaseInfo = ref<any>({});
1440 1474
1441 // 记录onActive的信息 1475 // 记录onActive的信息
...@@ -1507,7 +1541,7 @@ const dataBasenodeClick = (data: any) => { ...@@ -1507,7 +1541,7 @@ const dataBasenodeClick = (data: any) => {
1507 1541
1508 } 1542 }
1509 1543
1510 const findDDatabasePath = (data: any[], targetGuid: string, path: string[] = []) => { 1544 const findDDatabasePath = (data: any[], targetGuid: any, path: string[] = []) => {
1511 for (const item of data) { 1545 for (const item of data) {
1512 path.push(item.name); // 添加当前节点名称 1546 path.push(item.name); // 添加当前节点名称
1513 if (item.guid === targetGuid) { 1547 if (item.guid === targetGuid) {
...@@ -1697,13 +1731,7 @@ const getDbDirTableSelectData = async (type, params = {}) => { ...@@ -1697,13 +1731,7 @@ const getDbDirTableSelectData = async (type, params = {}) => {
1697 })); 1731 }));
1698 } 1732 }
1699 if (type == 2) { 1733 if (type == 2) {
1700 if (activeTab.value === 'word') { 1734
1701 optionsC.value = res.data.map((item) => ({
1702 dbGuid: item.fieldName, // 字段标识
1703 name: item.fieldName, // 字段名称
1704 }));
1705 return;
1706 }
1707 optionsB.value = res.data.map((item) => ({ 1735 optionsB.value = res.data.map((item) => ({
1708 dbGuid: item.tableGuid, // 表标识 1736 dbGuid: item.tableGuid, // 表标识
1709 name: item.tableChName, // 表名称 1737 name: item.tableChName, // 表名称
...@@ -1749,11 +1777,30 @@ const onAChange = async () => { ...@@ -1749,11 +1777,30 @@ const onAChange = async () => {
1749 await getDbDirTableSelectData(2, { databaseGuid: selectedA.value, condition: "2" }); // 数据库搜索 1777 await getDbDirTableSelectData(2, { databaseGuid: selectedA.value, condition: "2" }); // 数据库搜索
1750 } 1778 }
1751 } 1779 }
1780 // nextTick(() => {
1781 // const nodeElement = dataBaseRef.value.treeRef.$el.querySelector(`[data-key="${String(selectedA.value)}"]`);
1782 // if (nodeElement) {
1783 // nodeElement.offsetTop - dataBaseRef.value.treeRef.$el.clientHeight > 0 && (dataBaseRef.value.treeRef.$el.scrollTop = nodeElement.offsetTop - dataBaseRef.value.treeRef.$el.clientHeight + 32);
1784 // }
1785 // });
1786
1752 nextTick(() => { 1787 nextTick(() => {
1788 setTimeout(() => {
1753 const nodeElement = dataBaseRef.value.treeRef.$el.querySelector(`[data-key="${String(selectedA.value)}"]`); 1789 const nodeElement = dataBaseRef.value.treeRef.$el.querySelector(`[data-key="${String(selectedA.value)}"]`);
1754 if (nodeElement) { 1790 if (nodeElement) {
1755 nodeElement.offsetTop - dataBaseRef.value.treeRef.$el.clientHeight > 0 && (dataBaseRef.value.treeRef.$el.scrollTop = nodeElement.offsetTop - dataBaseRef.value.treeRef.$el.clientHeight + 32); 1791 const rect = nodeElement.getBoundingClientRect();
1792 const treeRect = dataBaseRef.value.treeRef.$el.getBoundingClientRect();
1793 const offset = rect.top - treeRect.top;
1794 console.log('offset', rect, treeRect);
1795 // 这里的 32 是偏移量,可以调整为你需要的距离
1796 const targetScrollTop = dataBaseRef.value.treeRef.$el.scrollTop + offset
1797
1798 dataBaseRef.value.treeRef.$el.scrollTo({
1799 top: targetScrollTop,
1800 behavior: 'smooth'
1801 });
1756 } 1802 }
1803 }, 200);
1757 }); 1804 });
1758 console.log('selectedA',); 1805 console.log('selectedA',);
1759 1806
...@@ -1773,11 +1820,29 @@ const onBChange = async () => { ...@@ -1773,11 +1820,29 @@ const onBChange = async () => {
1773 await getDbDirFieldSelectData(3, { tableGuid: selectedB.value, databaseGuid: selectedA.value, condition: "3" }); 1820 await getDbDirFieldSelectData(3, { tableGuid: selectedB.value, databaseGuid: selectedA.value, condition: "3" });
1774 } 1821 }
1775 } 1822 }
1823 // nextTick(() => {
1824 // const nodeElement = dataBaseRef.value.treeRef.$el.querySelector(`[data-key="${String(selectedB.value)}"]`);
1825 // if (nodeElement) {
1826 // nodeElement.offsetTop - dataBaseRef.value.treeRef.$el.clientHeight > 0 && (dataBaseRef.value.treeRef.$el.scrollTop = nodeElement.offsetTop - dataBaseRef.value.treeRef.$el.clientHeight + 32);
1827 // }
1828 // });
1776 nextTick(() => { 1829 nextTick(() => {
1830 setTimeout(() => {
1777 const nodeElement = dataBaseRef.value.treeRef.$el.querySelector(`[data-key="${String(selectedB.value)}"]`); 1831 const nodeElement = dataBaseRef.value.treeRef.$el.querySelector(`[data-key="${String(selectedB.value)}"]`);
1778 if (nodeElement) { 1832 if (nodeElement) {
1779 nodeElement.offsetTop - dataBaseRef.value.treeRef.$el.clientHeight > 0 && (dataBaseRef.value.treeRef.$el.scrollTop = nodeElement.offsetTop - dataBaseRef.value.treeRef.$el.clientHeight + 32); 1833 const rect = nodeElement.getBoundingClientRect();
1834 const treeRect = dataBaseRef.value.treeRef.$el.getBoundingClientRect();
1835 const offset = rect.top - treeRect.top;
1836 console.log('offset', rect, treeRect);
1837 // 这里的 32 是偏移量,可以调整为你需要的距离
1838 const targetScrollTop = dataBaseRef.value.treeRef.$el.scrollTop + offset
1839
1840 dataBaseRef.value.treeRef.$el.scrollTo({
1841 top: targetScrollTop,
1842 behavior: 'smooth'
1843 });
1780 } 1844 }
1845 }, 200);
1781 }); 1846 });
1782 }; 1847 };
1783 1848
...@@ -1822,12 +1887,6 @@ onActivated(async () => { ...@@ -1822,12 +1887,6 @@ onActivated(async () => {
1822 1887
1823 const gradeTreeRef = ref<any>(); 1888 const gradeTreeRef = ref<any>();
1824 const treeSelectNodeClick = (node, item) => { 1889 const treeSelectNodeClick = (node, item) => {
1825 nextTick(() => {
1826 const nodeElement = gradeTreeRef.value.treeRef.$el.querySelector(`[data-key="${String(node.classifyDetailGuid)}"]`);
1827 if (nodeElement) {
1828 nodeElement.offsetTop - gradeTreeRef.value.treeRef.$el.clientHeight > 0 && (gradeTreeRef.value.treeRef.$el.scrollTop = nodeElement.offsetTop - gradeTreeRef.value.treeRef.$el.clientHeight + 32);
1829 }
1830 });
1831 classifyDetailGuidInfo.value = node.classifyDetailGuid; 1890 classifyDetailGuidInfo.value = node.classifyDetailGuid;
1832 treeInfo.value.expandedKey = []; 1891 treeInfo.value.expandedKey = [];
1833 treeInfo.value.expandedKey.push(node.classifyDetailGuid); 1892 treeInfo.value.expandedKey.push(node.classifyDetailGuid);
...@@ -1840,8 +1899,28 @@ const treeSelectNodeClick = (node, item) => { ...@@ -1840,8 +1899,28 @@ const treeSelectNodeClick = (node, item) => {
1840 console.error('未找到路径'); 1899 console.error('未找到路径');
1841 } 1900 }
1842 if (activeName.value === 'second' && activeTab.value === 'word') { 1901 if (activeName.value === 'second' && activeTab.value === 'word') {
1902 }
1843 1903
1904
1905 nextTick(() => {
1906 setTimeout(() => {
1907 const nodeElement = gradeTreeRef.value.treeRef.$el.querySelector(`[data-key="${String(node.classifyDetailGuid)}"]`);
1908 if (nodeElement) {
1909 const rect = nodeElement.getBoundingClientRect();
1910 const treeRect = gradeTreeRef.value.treeRef.$el.getBoundingClientRect();
1911 const offset = rect.top - treeRect.top;
1912 console.log('offset', rect, treeRect);
1913 // 这里的 32 是偏移量,可以调整为你需要的距离
1914 const targetScrollTop = gradeTreeRef.value.treeRef.$el.scrollTop + offset
1915
1916 gradeTreeRef.value.treeRef.$el.scrollTo({
1917 top: targetScrollTop,
1918 behavior: 'smooth'
1919 });
1844 } 1920 }
1921 }, 200);
1922 });
1923
1845 } 1924 }
1846 1925
1847 watchEffect(() => { 1926 watchEffect(() => {
......
...@@ -6,7 +6,6 @@ ...@@ -6,7 +6,6 @@
6 import { ref } from "vue"; 6 import { ref } from "vue";
7 import useUserStore from "@/store/modules/user"; 7 import useUserStore from "@/store/modules/user";
8 import { getBizRuleConfigDetail, getDictionaryAll, getNewDataTypeList, saveBizRuleConfig, } from '@/api/modules/dataInventory' 8 import { getBizRuleConfigDetail, getDictionaryAll, getNewDataTypeList, saveBizRuleConfig, } from '@/api/modules/dataInventory'
9 import { el, ro } from "element-plus/es/locale";
10 const { proxy } = getCurrentInstance() as any; 9 const { proxy } = getCurrentInstance() as any;
11 const router = useRouter(); 10 const router = useRouter();
12 const route = useRoute(); 11 const route = useRoute();
...@@ -27,6 +26,31 @@ const getBizRuleConfigDetailData = async () => { ...@@ -27,6 +26,31 @@ const getBizRuleConfigDetailData = async () => {
27 item.isEdit = false 26 item.isEdit = false
28 }) 27 })
29 tableData.value = bizRuleConfigData.value 28 tableData.value = bizRuleConfigData.value
29 // 处理tableData,fieldLengthCondition,有值则不用加字段,如果没有值则加字段lengthSymbol 为''
30 tableData.value.forEach((item: any) => {
31 if (!item.fieldLengthCondition) {
32 item.lengthSymbol = ''
33 }
34 if (!isSingleInput(item.fieldType) && (item.startValue || item.endValue)) {
35 item.fieldValueRange = (item.startValue ? item.startValue : '') + '#' + (item.endValue ? item.endValue : '')
36 }
37 if (item.fieldLengthCondition) {
38 const arr = item.fieldLengthCondition.split('#'); // 按 '#' 分割
39 // 判断数组中是否包含 'between'
40 if (arr.includes('between')) {
41 // 如果包含 'between',则将对应的 start 和 end 值赋给相应的字段
42 item.lengthSymbol = 'between';
43 item.numberRangeStart = arr[1]; // start value
44 item.numberRangeEnd = arr[2]; // end value
45 } else {
46 // 否则处理其他符号条件,如 '>=', '<=', '>', '<', '=' 等
47 item.lengthSymbol = arr[0]; // 符号(如 '>', '<=', 等)
48 item.lengthValue = arr[1]; // 值(如 10,20 等)
49 }
50 }
51 })
52
53
30 tableFieldsLoading.value = false 54 tableFieldsLoading.value = false
31 } else { 55 } else {
32 proxy.$message.error(res.msg) 56 proxy.$message.error(res.msg)
...@@ -161,38 +185,45 @@ const tempRowData = ref<any>([]); ...@@ -161,38 +185,45 @@ const tempRowData = ref<any>([]);
161 185
162 // 编辑行 186 // 编辑行
163 const editRow = (row) => { 187 const editRow = (row) => {
164 console.log('编辑:', row); 188 // console.log('编辑:', row);
165 // 暂存编辑前的数据 用于取消编辑时恢复原始数据,先判断是否已经暂存过tempRowData通过fieldGuid 189 // // 暂存编辑前的数据 用于取消编辑时恢复原始数据,先判断是否已经暂存过tempRowData通过fieldGuid
166 if (!tempRowData.value.find((item) => item.fieldGuid === row.fieldGuid)) { 190 // if (!tempRowData.value.find((item) => item.fieldGuid === row.fieldGuid)) {
167 tempRowData.value.push({ ...row }); 191 // tempRowData.value.push({ ...row });
168 } 192 // }
169 if (row.fieldLengthCondition) { 193
170 const arr = row.fieldLengthCondition.split('#'); // 按 '#' 分割 194 // console.log('tempRowData:', tempRowData.value);
195 // if (row.fieldLengthCondition) {
196 // const arr = row.fieldLengthCondition.split('#'); // 按 '#' 分割
197
198 // // 判断数组中是否包含 'between'
199 // if (arr.includes('between')) {
200 // // 如果包含 'between',则将对应的 start 和 end 值赋给相应的字段
201 // row.lengthSymbol = 'between';
202 // row.numberRangeStart = arr[1]; // start value
203 // row.numberRangeEnd = arr[2]; // end value
204 // } else {
205 // // 否则处理其他符号条件,如 '>=', '<=', '>', '<', '=' 等
206 // row.lengthSymbol = arr[0]; // 符号(如 '>', '<=', 等)
207 // row.lengthValue = arr[1]; // 值(如 10,20 等)
208 // }
209 // }
210 // if (row.fieldValueRange && !isSingleInput(row.fieldType)) {
211 // const arr = row.fieldValueRange.split('#')
212 // row.startValue = arr[0]
213 // row.endValue = arr[1]
214 // }
171 215
172 // 判断数组中是否包含 'between'
173 if (arr.includes('between')) {
174 // 如果包含 'between',则将对应的 start 和 end 值赋给相应的字段
175 row.lengthSymbol = 'between';
176 row.numberRangeStart = arr[1]; // start value
177 row.numberRangeEnd = arr[2]; // end value
178 } else {
179 // 否则处理其他符号条件,如 '>=', '<=', '>', '<', '=' 等
180 row.lengthSymbol = arr[0]; // 符号(如 '>', '<=', 等)
181 row.lengthValue = arr[1]; // 值(如 10,20 等)
182 }
183 }
184 if (row.fieldValueRange && !isSingleInput(row.fieldType)) {
185 const arr = row.fieldValueRange.split('#')
186 row.startValue = arr[0]
187 row.endValue = arr[1]
188 }
189 row.isEdit = true; // 进入编辑模式 216 row.isEdit = true; // 进入编辑模式
190 217
191 }; 218 };
192 219
193 // 保存数据 220 // 保存数据
194 const saveRow = (row) => { 221 const saveRow = (row) => {
222
195 console.log('保存:', row); 223 console.log('保存:', row);
224 const tempRow = row;
225 let fieldLengthCondition = ''
226 let fieldValueRange = ''
196 if (row.lengthSymbol === 'between') { 227 if (row.lengthSymbol === 'between') {
197 // 校验不能为空,其中一个为空则提示 228 // 校验不能为空,其中一个为空则提示
198 if (!row.numberRangeStart || !row.numberRangeStart) { 229 if (!row.numberRangeStart || !row.numberRangeStart) {
...@@ -209,6 +240,7 @@ const saveRow = (row) => { ...@@ -209,6 +240,7 @@ const saveRow = (row) => {
209 } 240 }
210 console.log(row.lengthSymbol + '#' + row.numberRangeStart + '#' + row.numberRangeEnd) 241 console.log(row.lengthSymbol + '#' + row.numberRangeStart + '#' + row.numberRangeEnd)
211 row.fieldLengthCondition = row.lengthSymbol + '#' + row.numberRangeStart + '#' + row.numberRangeEnd 242 row.fieldLengthCondition = row.lengthSymbol + '#' + row.numberRangeStart + '#' + row.numberRangeEnd
243 fieldLengthCondition = row.lengthSymbol + '#' + row.numberRangeStart + '#' + row.numberRangeEnd
212 } else { 244 } else {
213 if (!row.lengthValue && row.lengthSymbol) { 245 if (!row.lengthValue && row.lengthSymbol) {
214 proxy.$message.error('请输入完整的长度范围'); 246 proxy.$message.error('请输入完整的长度范围');
...@@ -220,19 +252,36 @@ const saveRow = (row) => { ...@@ -220,19 +252,36 @@ const saveRow = (row) => {
220 } 252 }
221 if (!row.lengthSymbol && !row.lengthValue) { 253 if (!row.lengthSymbol && !row.lengthValue) {
222 row.fieldLengthCondition = '' 254 row.fieldLengthCondition = ''
255 fieldLengthCondition = ''
223 } 256 }
224 if (row.lengthSymbol && row.lengthValue) { 257 if (row.lengthSymbol && row.lengthValue) {
225 console.log('row.lengthSymbol', row.lengthSymbol + '#' + row.lengthValue)
226 row.fieldLengthCondition = row.lengthSymbol + '#' + row.lengthValue 258 row.fieldLengthCondition = row.lengthSymbol + '#' + row.lengthValue
259 fieldLengthCondition = row.lengthSymbol + '#' + row.lengthValue
227 } 260 }
228 } 261 }
229
230
231 // 字段范围 双文本情况 262 // 字段范围 双文本情况
232
233 if (!isSingleInput(row.fieldType)) { 263 if (!isSingleInput(row.fieldType)) {
264 if (row.startValue || row.endValue) {
234 row.fieldValueRange = (row.startValue ? row.startValue : '') + '#' + (row.endValue ? row.endValue : '') 265 row.fieldValueRange = (row.startValue ? row.startValue : '') + '#' + (row.endValue ? row.endValue : '')
266 fieldValueRange = (row.startValue ? row.startValue : '') + '#' + (row.endValue ? row.endValue : '')
267 } else {
268 row.fieldValueRange = ''
269 fieldValueRange = ''
270 }
271 }
235 272
273 if (tableData.value.find((item: any) => item.fieldGuid === row.fieldGuid)) {
274 console.log('tempRowData.value')
275 tableData.value.forEach(item => {
276 if (item.fieldGuid === row.fieldGuid) {
277 item.fieldLengthCondition = fieldLengthCondition
278 item.fieldValueRange = fieldValueRange
279 item.fieldGuid = tempRow.fieldGuid
280 item.fieldPrecision = tempRow.fieldPrecision
281 item.isUnique = tempRow.isUnique
282 item.notNull = tempRow.notNull
283 }
284 });
236 } 285 }
237 row.isEdit = false 286 row.isEdit = false
238 } 287 }
...@@ -241,19 +290,48 @@ const loading = ref(false) ...@@ -241,19 +290,48 @@ const loading = ref(false)
241 const saveData = async () => { 290 const saveData = async () => {
242 loading.value = true 291 loading.value = true
243 let inParams = [] as any 292 let inParams = [] as any
293 console.log('tableData.value', tableData.value)
294 // 遍历tableData.value,校验
295 for (let i = 0; i < tableData.value.length - 1; i++) {
296 let item = tableData.value[i]
297 if (item.lengthSymbol == 'between') {
298 if ((!item.numberRangeStart && item.numberRangeEnd) || (item.numberRangeStart && !item.numberRangeEnd) || (!item.numberRangeStart && !item.numberRangeEnd)) {
299 proxy.$message.error(`第${i + 1}行,请输入完整的长度范围!`);
300 loading.value = false
301 return
302 }
303 } else if (item.lengthSymbol === '>' || item.lengthSymbol === '<' || item.lengthSymbol === '=' || item.lengthSymbol === '>=' || item.lengthSymbol === '<=') {
304 if ((!item.lengthSymbol && item.lengthValue) || (item.lengthSymbol && !item.lengthValue)) {
305 proxy.$message.error(`第${i + 1}行,请输入完整的长度范围!`);
306 loading.value = false
307 return
308 }
309 }
310 }
311 console.log('tableData.value', tableData.value)
312
244 tableData.value.forEach((item: any) => { 313 tableData.value.forEach((item: any) => {
245 if (item.startValue || item.endValue) { 314 let fieldLengthCondition = ''
315 if (item.lengthSymbol == 'between') {
316 fieldLengthCondition = item.lengthSymbol + '#' + item.numberRangeStart + '#' + item.numberRangeEnd
317 } else if (item.lengthSymbol === '>' || item.lengthSymbol === '<' || item.lengthSymbol === '=' || item.lengthSymbol === '>=' || item.lengthSymbol === '<=') {
318 fieldLengthCondition = item.lengthSymbol + '#' + item.lengthValue
319 } else {
320 fieldLengthCondition = ''
321 }
322
323
324 if (isSingleInput(item.fieldType)) {
246 inParams.push( 325 inParams.push(
247 { 326 {
248 fieldGuid: item.fieldGuid, 327 fieldGuid: item.fieldGuid,
249 execGuid: router.currentRoute.value.query.execGuid, 328 execGuid: router.currentRoute.value.query.execGuid,
250 fieldLengthCondition: item.fieldLengthCondition, 329 fieldLengthCondition: fieldLengthCondition,
251 fieldPrecision: item.fieldPrecision, 330 fieldPrecision: item.fieldPrecision,
252 dictionaryGuid: item.dictionaryGuid, 331 dictionaryGuid: item.dictionaryGuid,
253 isUnique: item.isUnique, 332 isUnique: item.isUnique,
254 notNull: item.notNull, 333 notNull: item.notNull,
255 startValue: item.startValue, 334 fieldValueRange: item.fieldValueRange
256 endValue: item.endValue
257 } 335 }
258 ) 336 )
259 } else { 337 } else {
...@@ -261,25 +339,25 @@ const saveData = async () => { ...@@ -261,25 +339,25 @@ const saveData = async () => {
261 { 339 {
262 fieldGuid: item.fieldGuid, 340 fieldGuid: item.fieldGuid,
263 execGuid: router.currentRoute.value.query.execGuid, 341 execGuid: router.currentRoute.value.query.execGuid,
264 fieldLengthCondition: item.fieldLengthCondition, 342 fieldLengthCondition: fieldLengthCondition,
265 fieldPrecision: item.fieldPrecision, 343 fieldPrecision: item.fieldPrecision,
266 dictionaryGuid: item.dictionaryGuid, 344 dictionaryGuid: item.dictionaryGuid,
267 isUnique: item.isUnique, 345 isUnique: item.isUnique,
268 notNull: item.notNull, 346 notNull: item.notNull,
269 fieldValueRange: item.fieldValueRange 347 startValue: item.startValue,
348 endValue: item.endValue
270 } 349 }
271 ) 350 )
272 } 351 }
273 }) 352 })
274 // 克隆一份 inParams,用于遍历 353 // // 克隆一份 inParams,用于遍历
275 const cloneInParams = JSON.parse(JSON.stringify(inParams)); 354 const cloneInParams = JSON.parse(JSON.stringify(inParams));
276 355 // // 遍历 cloneInParams,检查每一项的字段
277 // 遍历 cloneInParams,检查每一项的字段
278 let allFieldsEmpty = true; // 标记所有字段是否都为空 356 let allFieldsEmpty = true; // 标记所有字段是否都为空
279 for (let i = 0; i < cloneInParams.length; i++) { 357 for (let i = 0; i < cloneInParams.length; i++) {
280 // 判断每项中除 fieldGuid 和 execGuid 外的字段是否都为空 358 // 判断每项中除 fieldGuid 和 execGuid 外的字段是否都为空
281 const item = cloneInParams[i]; 359 const item = cloneInParams[i];
282 const isEmpty = !item.notNull && !item.fieldValueRange && !item.isUnique && !item.dictionaryGuid && !item.fieldLengthCondition && !item.fieldPrecision; 360 const isEmpty = !item.notNull && !item.fieldValueRange && !item.isUnique && !item.dictionaryGuid && !item.fieldLengthCondition && !item.fieldPrecision && !item.startValue && !item.endValue;
283 361
284 // 如果有有效的字段,则不清空 inParams 362 // 如果有有效的字段,则不清空 inParams
285 if (!isEmpty) { 363 if (!isEmpty) {
...@@ -323,10 +401,10 @@ const cancel = () => { ...@@ -323,10 +401,10 @@ const cancel = () => {
323 401
324 // 点击取消 402 // 点击取消
325 const cancelEdit = (row) => { 403 const cancelEdit = (row) => {
326 console.log('取消编辑:', row); 404 // console.log('取消编辑:', row, tempRowData.value);
327 // 可在此恢复原始数据逻辑,要查找暂存的数据 tempRowData 中 fieldGuid 与当前行的 fieldGuid 相同的数据 405 // // 可在此恢复原始数据逻辑,要查找暂存的数据 tempRowData 中 fieldGuid 与当前行的 fieldGuid 相同的数据
328 const tempRow = tempRowData.value.find((item) => item.fieldGuid === row.fieldGuid); 406 // const tempRow = tempRowData.value.find((item) => item.fieldGuid === row.fieldGuid);
329 Object.assign(row, tempRow); 407 // Object.assign(row, tempRow);
330 408
331 row.isEdit = false; // 退出编辑状态 409 row.isEdit = false; // 退出编辑状态
332 } 410 }
...@@ -399,6 +477,21 @@ function parseFieldLengthCondition(condition) { ...@@ -399,6 +477,21 @@ function parseFieldLengthCondition(condition) {
399 } 477 }
400 return displayText; 478 return displayText;
401 } 479 }
480
481 const inputLengthKeyUp = (regexp, scope, field, max: any = null, min: any = null) => {
482 scope.row[field] = scope.row[field].replace(regexp, '');
483 if (field == 'fieldLength' && scope.row.dataType == 'decimal') {
484 max = 65;
485 }
486 /** 最大值设置2000 */
487 if (max && scope.row[field] > max) {
488 scope.row[field] = max;
489 }
490 if (min !== null && scope.row[field] != '' && scope.row[field] <= min) {
491 scope.row[field] = min;
492 }
493 }
494
402 </script> 495 </script>
403 <template> 496 <template>
404 <div class="configure-rules"> 497 <div class="configure-rules">
...@@ -507,10 +600,11 @@ function parseFieldLengthCondition(condition) { ...@@ -507,10 +600,11 @@ function parseFieldLengthCondition(condition) {
507 <el-table-column prop="fieldPrecision" label="精度" width="120" align="center" show-overflow-tooltip> 600 <el-table-column prop="fieldPrecision" label="精度" width="120" align="center" show-overflow-tooltip>
508 <template #default="scope"> 601 <template #default="scope">
509 <!-- 判断是否是浮点型,并且当前行是否可编辑 --> 602 <!-- 判断是否是浮点型,并且当前行是否可编辑 -->
510 <span v-if="!scope.row.isEdit || !editableFields.fieldPrecision || scope.row.fieldType !== 'float'"> 603 <span v-if="!scope.row.isEdit || !editableFields.fieldPrecision || scope.row.fieldType !== 'decimal'">
511 {{ scope.row.fieldPrecision ? scope.row.fieldPrecision : '--' }} 604 {{ scope.row.fieldPrecision ? scope.row.fieldPrecision : '--' }}
512 </span> 605 </span>
513 <el-input v-else v-model="scope.row.fieldPrecision" placeholder="请输入精度" clearable maxlength="2" /> 606 <el-input v-else v-model="scope.row.fieldPrecision" placeholder="请输入精度" clearable
607 @input="inputLengthKeyUp(/\D/g, scope, 'fieldPrecision', 30, 1)" />
514 </template> 608 </template>
515 </el-table-column> 609 </el-table-column>
516 610
......
...@@ -1087,7 +1087,7 @@ onActivated(() => { ...@@ -1087,7 +1087,7 @@ onActivated(() => {
1087 </el-select> 1087 </el-select>
1088 </div> 1088 </div>
1089 <div v-else> 1089 <div v-else>
1090 {{ fieldData ? fieldData.find(item => item.value === scope.row.fieldType)?.label : '--' }} 1090 {{ fieldData ? (fieldData.find(item => item.value === scope.row.fieldType)?.label || '--') : '--' }}
1091 </div> 1091 </div>
1092 </template> 1092 </template>
1093 </el-table-column> 1093 </el-table-column>
...@@ -1096,7 +1096,8 @@ onActivated(() => { ...@@ -1096,7 +1096,8 @@ onActivated(() => {
1096 <el-table-column prop="fieldLength" label="长度" width="100" align="left"> 1096 <el-table-column prop="fieldLength" label="长度" width="100" align="left">
1097 <template #default="scope"> 1097 <template #default="scope">
1098 <!-- 非编辑状态 --> 1098 <!-- 非编辑状态 -->
1099 <span v-if="!scope.row.isEdit || (scope.row.isPrimary === 'Y' && route.query.editOpt === '1')"> 1099 <span
1100 v-if="!scope.row.isEdit || (scope.row.isPrimary === 'Y' && route.query.editOpt === '1' && route.query.state != '0')">
1100 {{ ['varchar', 'decimal', 'char'].includes(scope.row.fieldType) ? scope.row.fieldLength || '--' : '--' 1101 {{ ['varchar', 'decimal', 'char'].includes(scope.row.fieldType) ? scope.row.fieldLength || '--' : '--'
1101 }} 1102 }}
1102 </span> 1103 </span>
......
...@@ -215,7 +215,8 @@ const toPatn = (type) => { ...@@ -215,7 +215,8 @@ const toPatn = (type) => {
215 router.push({ 215 router.push({
216 name: "productListingDetail", 216 name: "productListingDetail",
217 query: { 217 query: {
218 type 218 type,
219 groundingPick: '门户数据专区'
219 }, 220 },
220 }); 221 });
221 } else { 222 } else {
......
...@@ -15,7 +15,7 @@ import { changeNum } from '@/utils/common'; ...@@ -15,7 +15,7 @@ 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, getSubjectDoaminList, getServiceDetail } from "@/api/modules/dataAsset";
18 import { getProductList, getAddedProductList, getListingDetail, listingSave, listingUpdate, 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';
21 21
...@@ -153,15 +153,15 @@ const formInfo = ref({ ...@@ -153,15 +153,15 @@ const formInfo = ref({
153 clearable: true, 153 clearable: true,
154 required: true, 154 required: true,
155 }, { 155 }, {
156 label: "产品类型", 156 label: "资产类型",
157 type: "select", 157 type: "select",
158 placeholder: "请选择", 158 placeholder: "请选择",
159 field: "damType", 159 field: "damType",
160 default: '', 160 default: '',
161 options: damTypes.value, 161 options: damTypes.value,
162 props: { 162 props: {
163 value: 'paramValue', 163 value: 'value',
164 label: 'paramName' 164 label: 'label'
165 }, 165 },
166 disabled: true, 166 disabled: true,
167 required: true, 167 required: true,
...@@ -214,7 +214,7 @@ const formInfo = ref({ ...@@ -214,7 +214,7 @@ const formInfo = ref({
214 maxlength: 19, 214 maxlength: 19,
215 regexp: /\D/g, 215 regexp: /\D/g,
216 default: '', 216 default: '',
217 disabled: true, 217 disabled: false,
218 required: true 218 required: true
219 }, { 219 }, {
220 label: '病例总数(例)', 220 label: '病例总数(例)',
...@@ -222,7 +222,7 @@ const formInfo = ref({ ...@@ -222,7 +222,7 @@ const formInfo = ref({
222 placeholder: '请输入', 222 placeholder: '请输入',
223 field: 'caseNumber', 223 field: 'caseNumber',
224 default: '', 224 default: '',
225 disabled: true, 225 disabled: false,
226 required: false 226 required: false
227 }, { 227 }, {
228 label: '数据覆盖地域', 228 label: '数据覆盖地域',
...@@ -300,6 +300,7 @@ const formInfo = ref({ ...@@ -300,6 +300,7 @@ const formInfo = ref({
300 field: 'productPrice', 300 field: 'productPrice',
301 default: '', 301 default: '',
302 disabled: false, 302 disabled: false,
303 inputType: 'moneyNumber',
303 required: true 304 required: true
304 }, 305 },
305 { 306 {
...@@ -788,11 +789,17 @@ const submitForm = (btn, formEl, tosub = false) => { ...@@ -788,11 +789,17 @@ const submitForm = (btn, formEl, tosub = false) => {
788 // if (params.content) { 789 // if (params.content) {
789 // params.productDesc = truncateHTML(params.content, 400); 790 // params.productDesc = truncateHTML(params.content, 400);
790 // } 791 // }
791 params.dataScale = formInfo.value.items.at(4).defaultValue; 792 console.log(params, formInfo.value.items.at(4).defaultValue, formInfo.value, '-----------------');
792 params.caseNumber = formInfo.value.items.at(5).defaultValue; 793 params.dataScale = formInfo.value.items.at(4).defaultValue || formInfo.value.items.at(4).default;
794 params.caseNumber = formInfo.value.items.at(5).defaultValue || formInfo.value.items.at(4).default;
795 params.timeAreaStart = params.dateRange ? params.dateRange[0] : '';
796 params.timeAreaEnd = params.dateRange ? params.dateRange[1] : '';
797 params.groundingPick = [route.query.groundingPick];
798 // 删除dateRange字段
799 delete params.dateRange;
793 flowDetailLoading.value = true; 800 flowDetailLoading.value = true;
794 if (detailType == 'add') { 801 if (detailType == 'add') {
795 listingSave(params).then((res: any) => { 802 listingSavePortal(params).then((res: any) => {
796 if (res.code == proxy.$passCode) { 803 if (res.code == proxy.$passCode) {
797 ElMessage({ 804 ElMessage({
798 type: "success", 805 type: "success",
...@@ -1136,7 +1143,7 @@ onBeforeMount(() => { ...@@ -1136,7 +1143,7 @@ onBeforeMount(() => {
1136 } 1143 }
1137 } 1144 }
1138 getApproveData(); 1145 getApproveData();
1139 getParamsDataList({ dictType: '字段类型' }).then((res: any) => { 1146 getParamsDataList({ dictType: '资产类型' }).then((res: any) => {
1140 if (res.code == proxy.$passCode) { 1147 if (res.code == proxy.$passCode) {
1141 damTypes.value = res.data || []; 1148 damTypes.value = res.data || [];
1142 let item = formInfo.value.items.find(item => item.field == 'damType'); 1149 let item = formInfo.value.items.find(item => item.field == 'damType');
...@@ -1148,9 +1155,8 @@ onBeforeMount(() => { ...@@ -1148,9 +1155,8 @@ onBeforeMount(() => {
1148 getParamsDataList({ dictType: '交付方式' }).then((res: any) => { 1155 getParamsDataList({ dictType: '交付方式' }).then((res: any) => {
1149 if (res.code == proxy.$passCode) { 1156 if (res.code == proxy.$passCode) {
1150 deliveryWayList.value = res.data || []; 1157 deliveryWayList.value = res.data || [];
1151 // let item = formInfo.value.items.find(item => item.field == 'deliveryWay'); 1158 let item = formInfo.value.items.find(item => item.field == 'deliveryWay');
1152 // item && (item.options = deliveryWayList.value); 1159 item && (item.options = deliveryWayList.value);
1153 formInfo.value.items[6].options = res.data || [];
1154 } else { 1160 } else {
1155 proxy.$ElMessage.error(res.msg); 1161 proxy.$ElMessage.error(res.msg);
1156 } 1162 }
...@@ -1158,10 +1164,8 @@ onBeforeMount(() => { ...@@ -1158,10 +1164,8 @@ onBeforeMount(() => {
1158 getParamsDataList({ dictType: '定价方式' }).then((res: any) => { 1164 getParamsDataList({ dictType: '定价方式' }).then((res: any) => {
1159 if (res.code == proxy.$passCode) { 1165 if (res.code == proxy.$passCode) {
1160 pricingMethodList.value = res.data || []; 1166 pricingMethodList.value = res.data || [];
1161 formInfo.value.items[7].options = res.data || []; 1167 let item = formInfo.value.items.find(item => item.field == 'pricingWay');
1162 // let item = formInfo.value.items.find(item => item.field == 'deliveryWay'); 1168 item && (item.options = pricingMethodList.value);
1163 // item && (item.options = deliveryWayList.value);
1164 // formInfo.value.items[7].options = res.data || [];
1165 } else { 1169 } else {
1166 proxy.$ElMessage.error(res.msg); 1170 proxy.$ElMessage.error(res.msg);
1167 } 1171 }
...@@ -1169,10 +1173,8 @@ onBeforeMount(() => { ...@@ -1169,10 +1173,8 @@ onBeforeMount(() => {
1169 getParamsDataList({ dictType: '价格单位' }).then((res: any) => { 1173 getParamsDataList({ dictType: '价格单位' }).then((res: any) => {
1170 if (res.code == proxy.$passCode) { 1174 if (res.code == proxy.$passCode) {
1171 priceUnitList.value = res.data || []; 1175 priceUnitList.value = res.data || [];
1172 formInfo.value.items[9].options = res.data || []; 1176 let item = formInfo.value.items.find(item => item.field == 'priceUnit');
1173 // let item = formInfo.value.items.find(item => item.field == 'deliveryWay'); 1177 item && (item.options = priceUnitList.value);
1174 // item && (item.options = deliveryWayList.value);
1175 // formInfo.value.items[7].options = res.data || [];
1176 } else { 1178 } else {
1177 proxy.$ElMessage.error(res.msg); 1179 proxy.$ElMessage.error(res.msg);
1178 } 1180 }
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!