194a8de0 by lihua

修改查看数据的接口

1 parent 99c58775
......@@ -54,6 +54,12 @@ export const downloadTableData = (params) => request({
responseType: 'blob'
});
/** 数据使用中查看资产表的数据 */
export const queryUseData = (params) => request({
url: `${import.meta.env.VITE_APP_DIGITAL_CONTRACT_URL}/contract-use/read?userGuid=${params.userGuid}&subjectGuid=${params.subjectGuid}`,
method: 'get'
});
/** 分发连接器 */
export const distributeContract = (params) => request({
url: `${import.meta.env.VITE_APP_DIGITAL_CONTRACT_URL}/contract-use/distribute`,
......
......@@ -8,7 +8,7 @@ import router from './router'
import useSettingsStore from './store/modules/settings';
import sysConfigStore from '@/store/modules/sysConfig'
import { ElMessage } from "element-plus"
import { openMessageBox } from "@/utils/common"
import { getPublicIP, openMessageBox } from "@/utils/common"
// pinia设置
import { createPinia } from 'pinia'
......@@ -66,6 +66,11 @@ const initApp = async () => {
app.config.globalProperties.$ElMessage = ElMessage; // 全局消息提示
app.config.globalProperties.$openMessageBox = openMessageBox; // 二次确认提示对话框。
app.mount('#main-app')
getPublicIP().then((ip) => {
localStorage.setItem('ipAddress', ip);
})
} catch (error) {
console.error('应用初始化失败:', error);
// 这里可以添加一些错误处理逻辑,比如显示错误提示给用户
......
......@@ -1207,3 +1207,22 @@ export const transferFlowLimit = (v, unit) => { //将时间统一转化为分钟
return v * 60;
}
}
/** 获取当前用户的IP地址 */
export const getPublicIP = async (): Promise<string> => {
try {
// 方法1:使用 fetch
const response = await fetch('https://api64.ipify.org?format=json')
const data = await response.json()
return data.ip
} catch (error) {
try {
// 方法2:备用 API
const response = await fetch('https://api.ipify.org?format=json')
const data = await response.json()
return data.ip
} catch (error2) {
throw new Error('无法获取 IP 地址')
}
}
}
......
......@@ -39,6 +39,7 @@ service.interceptors.request.use(
"Content-Type": "multipart/form-data",
});
config.headers.Authorization = localStorage.getItem('token');
config.headers['x-real-ip'] = localStorage.getItem('ipAddress');
return config;
}
if (config.method == "postjsond") {
......@@ -48,16 +49,19 @@ service.interceptors.request.use(
});
config.data = JSON.stringify(config.data);
config.headers.Authorization = localStorage.getItem('token');
config.headers['x-real-ip'] = localStorage.getItem('ipAddress');
return config;
}
if (config.responseType == "blob") {
// 文件流,文件名称相同时会判定同一个请求。
const userStore = useUserStore();
config.headers.Authorization = localStorage.getItem('token');
config.headers['x-real-ip'] = localStorage.getItem('ipAddress');
return config;
}
if (config.method === 'obsuploadrequest') {
config.method = 'put';
config.headers['x-real-ip'] = localStorage.getItem('ipAddress');
return config;
}
// /**
......@@ -77,6 +81,7 @@ service.interceptors.request.use(
/** 若是门户的url,则不做重复请求处理,会出现不同标签页都需要查同一个字典参数列表的 */
if (config.url.indexOf('/portal/portal')) {
config.headers.Authorization = localStorage.getItem('token');
config.headers['x-real-ip'] = localStorage.getItem('ipAddress');
return config;
}
/**
......@@ -113,6 +118,7 @@ service.interceptors.request.use(
});
config.headers.Authorization = localStorage.getItem('token');
config.headers['x-real-ip'] = localStorage.getItem('ipAddress');
return config;
};
/** 若是刷新token的请求,则不需要等refreshToken完成。 */
......
......@@ -11,6 +11,9 @@ import { calcColumnWidth } from "@/utils/index";
import Moment from 'moment';
import { TableColumnWidth } from "@/utils/enum";
import { ElMessage } from "element-plus";
import {
queryUseData
} from "@/api/modules/dataDelivery";
const { proxy } = getCurrentInstance() as any;
......@@ -24,6 +27,20 @@ const tableFields: any = ref([]);
const getData = () => {
tableData.value = [];
tableDataLoading.value = true;
if (route.query.useGuid) {
queryUseData({
userGuid: route.query.useGuid,
subjectGuid: route.query.guid
}).then((res: any) => {
tableDataLoading.value = false;
if (res.code == proxy.$passCode) {
tableData.value = res.data.datas || [];
tableFields.value = res.data.fields || [];
} else {
ElMessage.error(res.msg);
}
});
} else {
queryData(route.query.guid).then((res: any) => {
tableDataLoading.value = false;
if (res.code == proxy.$passCode) {
......@@ -33,6 +50,7 @@ const getData = () => {
ElMessage.error(res.msg);
}
});
}
}
const getTextAlign = (field) => {
......
......@@ -56,7 +56,13 @@ const tableFields = ref([
}
},
{
label: "合约名称", field: "contractName", width: 170, type: "text_btn", columClass: 'text_btn', value: "detail1", click: (scope) => {
label: "合约名称", field: "contractName", width: 170, type: "text_btn", columClass: 'text_btn', value: "detail1", disabled: (scope) => {
return scope.row.isDistribute == 'N';
}, click: (scope) => {
let isDistribute = scope.row.isDistribute;
if (isDistribute == 'N') {
return;
}
//履约中的合约状态
router.push({
name: 'smartContractDetail',
......
......@@ -442,7 +442,8 @@ const handleTableViewData = (scope) => {
query: {
guid: row.guid,
name: row.tableChName,
damName: detailInfo.value.damName
damName: detailInfo.value.damName,
useGuid: route.query.useGuid
}
});
}
......@@ -1473,8 +1474,8 @@ const respParamsTableInfo = ref({
<el-table-column label="操作" v-if="!detailInfo.nodeId || foundMode == 'download'" width="220px" align="left" fixed="right" show-overflow-tooltip>
<template #default="scope">
<span class="text_btn" @click="handleTableViewData(scope)">查看样例数据</span>
<el-divider direction="vertical" />
<span class="text_btn" @click="handleTableViewDataDown(scope)">下载数据</span>
<el-divider v-show="foundMode == 'download'" direction="vertical" />
<span v-show="foundMode == 'download'" class="text_btn" @click="handleTableViewDataDown(scope)">下载数据</span>
</template>
</el-table-column>
</el-table>
......
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!