需求变更,bug修复

dev
dengjia 2025-08-12 14:32:49 +08:00
parent 62d0304266
commit 0f19f48a80
24 changed files with 296 additions and 135 deletions

View File

@ -9,3 +9,15 @@ export const STATUS_LIST = [
{ name: "正常", id: 1 },
{ name: "关停", id: 2 },
];
export const DEPARTMENT_CATEGORY_LIST = [
{ id: "1", name: "安委会" },
{ id: "2", name: "行业" },
{ id: "3", name: "属地" },
{ id: "4", name: "其它" },
];
export const ADMINISTRATIVE_REGION_LEVEL_LIST = [
{ id: "1", name: "市级" },
{ id: "2", name: "区/县级" },
{ id: "3", name: "乡/镇级" },
{ id: "4", name: "村/街道" },
];

View File

@ -2,6 +2,7 @@ import {
getDataDictionariesList,
getDataDictionariesListTree,
getDepartmentTree,
getAreaListTree,
} from "@/request/data_dictionary";
// 部门
@ -35,3 +36,9 @@ export const appFnGetQinHuangDaoTreeList = async () => {
});
return tree;
};
// 属地数据字典
export const appFnGetDataDictionaryArea = async (params) => {
const { dictionariesList } = await getAreaListTree(params);
return dictionariesList;
};

View File

@ -7,8 +7,9 @@
:control-level="controlLevel"
:show-all-levels="false"
:level="level"
:disabled="disabled"
:join-separator="joinSeparator"
value="code"
value="bianma"
/>
</template>
@ -28,6 +29,10 @@ defineProps({
type: Boolean,
default: false,
},
disabled: {
type: Boolean,
default: false,
},
level: {
type: [Number, String],
default: 3,

View File

@ -33,4 +33,10 @@ defineProps({
});
</script>
<style scoped lang="scss"></style>
<style scoped lang="scss">
:deep {
.el-descriptions__content {
word-break: break-all;
}
}
</style>

View File

@ -60,7 +60,9 @@ const fnFilterNode = (value, data) => {
};
const fnGetTreeData = async () => {
const value = await props.api();
fnAddLevel(value);
if (value) {
fnAddLevel(value);
}
data.value = value;
emits("throw-data", value);
refresh.value = false;

View File

@ -12,6 +12,7 @@ export const getDataDictionariesListTree = (params) =>
// 部门树
export const getDepartmentListTree = (params) =>
getRequest("/sysdepartment/listTree", params);
// 属地
export const getAreaListTree = (params) =>
postRequest("/sys/dictionaries/area", params);
postRequest("/sys/dictionaries/getLevel", params);

View File

@ -1,17 +1,17 @@
import { postRequest } from "./axios";
// 获取企业信息-分页
export const getDataList = (params, apiType) =>
postRequest(`/${apiType}/listPage`, params);
export const getDataList = (params) =>
postRequest("/data/info/listPage", params);
// 获取记录信息-分页
export const getRecordList = (params, apiType) =>
postRequest(`/${apiType}/record/listPage`, params);
export const getRecordList = (params) =>
postRequest("/data/info/record/listPage", params);
// 记录信息 - 删除
export const setRecordDelete = (params, apiType) =>
postRequest(`/${apiType}/record/delete`, params);
export const setRecordDelete = (params) =>
postRequest("/data/info/record/delete", params);
// 记录信息 - 详情
export const getRecordDetail = (params, apiType) =>
postRequest(`/${apiType}/record/detail`, params);
export const getRecordDetail = (params) =>
postRequest("/data/info/record/detail", params);

View File

@ -2,6 +2,8 @@ import { postRequest } from "@/request/axios";
export const getRoleList = (params) =>
postRequest("/sys/role/listPage", params); // 角色管理列表
export const getRoleListAll = (params) =>
postRequest("/sys/role/listAll", params); // 角色管理列表所有
export const setRoleDelete = (params) =>
postRequest("/sys/role/delete", params); // 角色管理删除
export const setRoleAdd = (params) => postRequest("/sys/role/save", params); // 角色管理添加

View File

@ -0,0 +1,18 @@
import { postRequest } from "@/request/axios.js";
export const getDepartmentList = (params) =>
postRequest("/oa/department/listPage", params); // 部门列表
export const setDepartmentAdd = (params) =>
postRequest("/oa/department/save", params); // 部门新增
export const setDepartmentUpdate = (params) =>
postRequest("/oa/department/update", params); // 部门修改
export const setDepartmentDelete = (params) =>
postRequest("/oa/department/delete", params); // 部门删除
export const getDepartmentInfo = (params) =>
postRequest("/oa/department/info", params); // 部门信息
export const getUserList = (params) => postRequest("/sys/user/list", params); // 用户列表
export const setUserResetPassword = (params) =>
postRequest("/sys/user/password", params); // 用户重置密码
export const setUserDelete = (params) =>
postRequest("/sys/user/delete", params); // 用户删除
export const hasUser = (params) => postRequest("/sys/user/hasUser", params); // 验证用户是否重复

View File

@ -1,6 +1,11 @@
<template>
<div>
<app-search v-model="searchForm" :options @submit="resetPagination" />
<app-search
v-model="searchForm"
:options
label-width="150px"
@submit="resetPagination"
/>
<app-table ref="tableRef" v-model:pagination="pagination" :data="list">
<el-table-column prop="servicePlatformName" label="所在平台名称" />
<el-table-column prop="companyName" label="企业名称" />
@ -31,7 +36,7 @@
thirdPlatformId: row.thirdPlatformId,
companyId: row.companyId,
servicePlatformId: row.servicePlatformId,
apiType: apiType,
dataType: dataType,
},
})
"
@ -52,15 +57,18 @@ import AppTable from "@/components/table/index.vue";
import { translationStatus } from "@/assets/js/utils.js";
import { useRouter } from "vue-router";
const router = useRouter();
const apiType = defineModel("apiType", {
type: String,
const dataType = defineModel("dataType", {
type: Number,
required: true,
default: "dataRiskEvents",
default: 1,
});
const { list, pagination, searchForm, resetPagination, tableRef } = useListData(
getDataList,
{
apiType: apiType.value,
params: () => ({
dataType: dataType.value,
}),
// apiType: apiType.value,
}
);
const pushOptions = [
@ -75,6 +83,18 @@ const receiveOptions = [
{ id: 2, name: "接收异常" },
];
const options = [
{
key: "thirdPlatformName",
label: "上游企业名称",
},
{
key: "servicePlatformName",
label: "服务平台名称",
},
{
key: "companyName",
label: "企业名称",
},
{
key: "receiveStatus",
label: "接收状态",

View File

@ -34,7 +34,7 @@
path: `/data_directory/records_detail`,
query: {
id: row.id,
apiType: route.query.apiType,
dataType: route.query.dataType,
},
})
"
@ -66,8 +66,9 @@ const { list, pagination, searchForm, getData, resetPagination, tableRef } =
thirdPlatformId: route.query.thirdPlatformId,
companyId: route.query.companyId,
servicePlatformId: route.query.servicePlatformId,
dataType: Number(route.query.dataType),
}),
apiType: route.query.apiType,
// apiType: route.query.apiType,
});
const pushOptions = [
{ id: 1, name: "未推送" },
@ -99,7 +100,7 @@ const fnDelete = async (id) => {
await ElMessageBox.confirm("确定要删除吗?", {
type: "warning",
});
await setRecordDelete({ id }, route.params.apiType);
await setRecordDelete({ id, dataType: route.query.dataType });
ElMessage.success("删除成功");
resetPagination();
};

View File

@ -0,0 +1,111 @@
<template>
<div>
<el-row :gutter="40">
<el-col :span="8">
<div class="grid-content">
<template v-if="!fnToJsonParse(json)">{{ json }}</template>
<template v-else>
{
<div
class="mt-2 pl-18"
v-for="(value, key) in fnToJsonParse(json)"
:key="key"
>
<span class="key-contanier"> {{ key }}</span> :
<span class="value-contanier">{{ value }}</span>
</div>
}
</template>
</div>
</el-col>
<el-col :span="16">
<div class="grid-content" v-for="(item, index) in logList" :key="index">
<el-row :gutter="40">
<el-col :span="12">
<h4 class="mb-10">请求信息</h4>
<div v-if="!fnToJsonParse(item.request)">{{ item.request }}</div>
<template v-else>
{
<div
v-for="(value, key) in fnToJsonParse(item.request)"
:key="key"
class="mt-2 pl-18"
>
<span class="key-contanier"> {{ key }}</span> :
<span class="value-contanier">{{ value }}</span>
</div>
}
</template>
</el-col>
<el-col :span="12">
<h4 class="mb-10">响应信息</h4>
<div v-if="!fnToJsonParse(item.response)">
{{ item.response }}
</div>
<template v-else>
{
<div
v-for="(value, key) in fnToJsonParse(item.response)"
:key="key"
class="mt-2 pl-18"
>
<span class="key-contanier"> {{ key }}</span> :
<span class="value-contanier">{{ value }}</span>
</div>
}
</template>
</el-col>
</el-row>
</div>
</el-col>
</el-row>
</div>
</template>
<script setup>
import { getRecordDetail } from "@/request/data_directory.js";
import { useRoute } from "vue-router";
const route = useRoute();
const { data } = await getRecordDetail({
id: route.query.id,
dataType: Number(route.query.dataType),
});
const { json, logList } = data;
const fnToJsonParse = (params) => {
if (params === null) {
return false;
}
try {
const obj = JSON.parse(params);
return obj;
} catch (error) {
return false;
}
};
</script>
<style lang="scss" scoped>
.el-row {
margin-bottom: 20px;
&:last-child {
margin-bottom: 0;
}
}
.el-col {
border-radius: 4px;
}
.grid-content {
border-radius: 4px;
min-height: 36px;
border: 1px solid #dcdfe6;
padding: 20px;
word-break: break-all;
}
.key-contanier {
color: #92278f;
font-weight: bold;
}
.value-contanier {
color: #3ab54a;
font-weight: bold;
}
</style>

View File

@ -1,105 +0,0 @@
<template>
<div>
<el-row :gutter="40">
<el-col :span="12"
><div class="grid-content">
<h4 class="mb-10">请求信息</h4>
<template v-if="isJsonRequest">
{
<div
class="mt-2 pl-18"
v-for="(value, key) in requestData"
:key="key"
>
<span class="key-contanier"> {{ key }}</span> :
<span class="value-contanier">{{ value }}</span>
</div>
}
</template>
<div v-else class="text-red">{{ requestData }}</div>
</div></el-col
>
<el-col :span="12">
<div class="grid-content">
<h4 class="mb-10">响应信息</h4>
<template v-if="isJsonResponse">
{
<div
class="mt-2 pl-18"
v-for="(value, key) in responseData"
:key="key"
>
<span class="key-contanier"> {{ key }}</span> :
<span class="value-contanier">{{ value }}</span>
</div>
}
</template>
<div v-else class="text-red">{{ responseData }}</div>
</div>
</el-col>
</el-row>
</div>
</template>
<script setup>
import { ref } from "vue";
import { getRecordDetail } from "@/request/data_directory.js";
import { useRoute } from "vue-router";
const route = useRoute();
const { data } = await getRecordDetail(
{
id: route.query.id,
},
route.query.apiType
);
const { request, response } = data;
const isJsonRequest = ref(false);
const isJsonResponse = ref(false);
const fnJsonParse = (params, type) => {
if (params === null) {
type === "1"
? (isJsonRequest.value = false)
: (isJsonResponse.value = false);
return params;
}
try {
const obj = JSON.parse(params);
type === "1" ? (isJsonRequest.value = true) : (isJsonResponse.value = true);
return obj;
} catch (error) {
type === "1"
? (isJsonRequest.value = false)
: (isJsonResponse.value = false);
return params;
}
};
const requestData = fnJsonParse(request, "1");
const responseData = fnJsonParse(response, "2");
</script>
<style lang="scss" scoped>
.el-row {
margin-bottom: 20px;
&:last-child {
margin-bottom: 0;
}
}
.el-col {
border-radius: 4px;
}
.grid-content {
border-radius: 4px;
min-height: 36px;
border: 1px solid #dcdfe6;
padding: 20px;
word-break: break-all;
}
.key-contanier {
color: #92278f;
font-weight: bold;
}
.value-contanier {
color: #3ab54a;
font-weight: bold;
}
</style>

View File

@ -1,9 +0,0 @@
<template>
<index-page api-type="dataRiskUnit" />
</template>
<script setup>
import indexPage from "../data_risk_events/index.vue";
</script>
<style scoped lang="scss"></style>

View File

@ -0,0 +1,9 @@
<template>
<index-page :data-type="15" />
</template>
<script setup>
import indexPage from "@/views/data_directory/basic/index.vue";
</script>
<style scoped lang="scss"></style>

View File

@ -0,0 +1,9 @@
<template>
<index-page :data-type="16" />
</template>
<script setup>
import indexPage from "@/views/data_directory/basic/index.vue";
</script>
<style scoped lang="scss"></style>

View File

@ -0,0 +1,9 @@
<template>
<index-page :data-type="48" />
</template>
<script setup>
import indexPage from "@/views/data_directory/basic/index.vue";
</script>
<style scoped lang="scss"></style>

View File

@ -0,0 +1,9 @@
<template>
<index-page :data-type="49" />
</template>
<script setup>
import indexPage from "@/views/data_directory/basic/index.vue";
</script>
<style scoped lang="scss"></style>

View File

@ -0,0 +1,9 @@
<template>
<index-page :data-type="6" />
</template>
<script setup>
import indexPage from "@/views/data_directory/basic/index.vue";
</script>
<style scoped lang="scss"></style>

View File

@ -0,0 +1,9 @@
<template>
<index-page :data-type="7" />
</template>
<script setup>
import indexPage from "@/views/data_directory/basic/index.vue";
</script>
<style scoped lang="scss"></style>

View File

@ -0,0 +1,9 @@
<template>
<index-page :data-type="13" />
</template>
<script setup>
import indexPage from "@/views/data_directory/basic/index.vue";
</script>
<style scoped lang="scss"></style>

View File

@ -0,0 +1,9 @@
<template>
<index-page :data-type="5" />
</template>
<script setup>
import indexPage from "@/views/data_directory/basic/index.vue";
</script>
<style scoped lang="scss"></style>

View File

@ -0,0 +1,9 @@
<template>
<index-page :data-type="11" />
</template>
<script setup>
import indexPage from "@/views/data_directory/basic/index.vue";
</script>
<style scoped lang="scss"></style>

View File

@ -0,0 +1,9 @@
<template>
<index-page :data-type="12" />
</template>
<script setup>
import indexPage from "@/views/data_directory/basic/index.vue";
</script>
<style scoped lang="scss"></style>