上级企业信息脱敏显示
parent
30d39224d5
commit
286fe0d0ba
|
@ -2,19 +2,40 @@
|
|||
<el-descriptions :column="column" border>
|
||||
<template v-for="item in options" :key="item.key">
|
||||
<el-descriptions-item
|
||||
v-if="!item.hidden"
|
||||
label-class-name="my-label"
|
||||
content-class-name="my-content"
|
||||
v-if="!item.hidden"
|
||||
:label="item.label"
|
||||
:span="item.span || 1"
|
||||
width="150px"
|
||||
>
|
||||
<slot :name="item.key">
|
||||
<template v-if="item.value">
|
||||
{{ item.value }}
|
||||
<template v-if="item.encrypted">
|
||||
<div
|
||||
style="
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
"
|
||||
>
|
||||
<div v-if="item.showData">{{ info[item.key] }}</div>
|
||||
<div v-else>{{ encryptText(info[item.key]) }}</div>
|
||||
<el-button
|
||||
v-if="info[item.key]"
|
||||
text
|
||||
link
|
||||
:icon="item.showData ? View : Hide"
|
||||
@click="fnView(item)"
|
||||
></el-button>
|
||||
</div>
|
||||
</template>
|
||||
<template v-if="!item.value">
|
||||
{{ info[item.key] }}
|
||||
<template v-else>
|
||||
<template v-if="item.value">
|
||||
{{ item.value }}
|
||||
</template>
|
||||
<template v-else-if="!item.value">
|
||||
{{ info[item.key] }}
|
||||
</template>
|
||||
</template>
|
||||
</slot>
|
||||
</el-descriptions-item>
|
||||
|
@ -23,14 +44,23 @@
|
|||
</template>
|
||||
|
||||
<script setup>
|
||||
import { View, Hide } from "@element-plus/icons-vue";
|
||||
defineOptions({
|
||||
name: "AppInfoBuilder",
|
||||
});
|
||||
const options = defineModel("options", { type: Array, required: true });
|
||||
defineProps({
|
||||
info: { type: Object, required: true },
|
||||
options: { type: Array, required: true },
|
||||
// options: { type: Array, required: true },
|
||||
column: { type: Number, default: 2 },
|
||||
});
|
||||
const encryptText = (text) => {
|
||||
if (!text) return "";
|
||||
return "*".repeat(text.length);
|
||||
};
|
||||
const fnView = (item) => {
|
||||
item.showData = !item.showData;
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
<template>
|
||||
<el-dialog v-model="visible" :title="title" :before-close="fnClose">
|
||||
<el-dialog
|
||||
v-model="visible"
|
||||
:title="type === 'edit' ? '修改' : '新增'"
|
||||
:before-close="fnClose"
|
||||
>
|
||||
<el-form
|
||||
ref="formRef"
|
||||
:rules="rules"
|
||||
|
@ -142,12 +146,34 @@
|
|||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="密钥" prop="accessKey">
|
||||
<el-input v-model="item.accessKey"></el-input>
|
||||
<el-input
|
||||
v-model="item.accessKey.data"
|
||||
:type="item.accessKey.showData ? 'text' : 'password'"
|
||||
>
|
||||
<template #append v-if="type === 'edit' && item.accessKey.data">
|
||||
<el-button
|
||||
:icon="item.accessKey.showData ? View : Hide"
|
||||
@click="fnView(item.accessKey)"
|
||||
></el-button> </template
|
||||
></el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="公钥" prop="rsaPublicKey">
|
||||
<el-input v-model="item.rsaPublicKey"></el-input>
|
||||
<el-input
|
||||
v-model="item.rsaPublicKey.data"
|
||||
:type="item.rsaPublicKey.showData ? 'text' : 'password'"
|
||||
>
|
||||
<template
|
||||
#append
|
||||
v-if="type === 'edit' && item.rsaPublicKey.data"
|
||||
>
|
||||
<el-button
|
||||
:icon="item.rsaPublicKey.showData ? View : Hide"
|
||||
@click="fnView(item.rsaPublicKey)"
|
||||
></el-button>
|
||||
</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
|
@ -162,27 +188,77 @@
|
|||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="对接IV" prop="iv">
|
||||
<el-input v-model="item.iv"></el-input>
|
||||
<el-input
|
||||
v-model="item.iv.data"
|
||||
:type="item.iv.showData ? 'text' : 'password'"
|
||||
>
|
||||
<template #append v-if="type === 'edit' && item.iv.data">
|
||||
<el-button
|
||||
:icon="item.iv.showData ? View : Hide"
|
||||
@click="fnView(item.iv)"
|
||||
></el-button>
|
||||
</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="企业CODE" prop="code">
|
||||
<el-input v-model="item.code"></el-input>
|
||||
<el-input
|
||||
v-model="item.code.data"
|
||||
:type="item.code.showData ? 'text' : 'password'"
|
||||
>
|
||||
<template #append v-if="type === 'edit' && item.code.data">
|
||||
<el-button
|
||||
:icon="item.code.showData ? View : Hide"
|
||||
@click="fnView(item.code)"
|
||||
></el-button>
|
||||
</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="企业APPID" prop="appid">
|
||||
<el-input v-model="item.appid"></el-input>
|
||||
<el-input
|
||||
v-model="item.appid.data"
|
||||
:type="item.appid.showData ? 'text' : 'password'"
|
||||
>
|
||||
<template #append v-if="type === 'edit' && item.appid.data">
|
||||
<el-button
|
||||
:icon="item.appid.showData ? View : Hide"
|
||||
@click="fnView(item.appid)"
|
||||
></el-button>
|
||||
</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="企业SECRET" prop="secret">
|
||||
<el-input v-model="item.secret"></el-input>
|
||||
<el-input
|
||||
v-model="item.secret.data"
|
||||
:type="item.secret.showData ? 'text' : 'password'"
|
||||
>
|
||||
<template #append v-if="type === 'edit' && item.secret.data">
|
||||
<el-button
|
||||
:icon="item.secret.showData ? View : Hide"
|
||||
@click="fnView(item.secret)"
|
||||
></el-button>
|
||||
</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="企业TOKEN" prop="appid">
|
||||
<el-input v-model="item.token"></el-input>
|
||||
<el-form-item label="企业TOKEN" prop="token">
|
||||
<el-input
|
||||
v-model="item.token.data"
|
||||
:type="item.token.showData ? 'text' : 'password'"
|
||||
>
|
||||
<template #append v-if="type === 'edit' && item.token.data">
|
||||
<el-button
|
||||
:icon="item.token.showData ? View : Hide"
|
||||
@click="fnView(item.token)"
|
||||
></el-button>
|
||||
</template>
|
||||
</el-input>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col class="add-btn" :span="24" v-if="thirdList.length > 1"
|
||||
|
@ -222,12 +298,12 @@ import { STATUS_LIST, WHETHER_LIST } from "@/assets/js/constant.js";
|
|||
import AppCascader from "@/components/cascader/index.vue";
|
||||
import AppMap from "@/components/map/map.vue";
|
||||
import { UNIFIED_SOCIAL_CREDIT_CODE } from "@/assets/js/regular.js";
|
||||
// import { ArrowDown } from "@element-plus/icons-vue";
|
||||
import AppAreaCascader from "@/components/area_cascader/index.vue";
|
||||
import { View, Hide } from "@element-plus/icons-vue";
|
||||
const visible = defineModel("visible", { type: Boolean, required: true });
|
||||
const props = defineProps({
|
||||
corpInfoId: { type: Number, required: false },
|
||||
title: { type: String, required: true },
|
||||
type: { type: String, required: true },
|
||||
});
|
||||
const { data: servicePlatformList } = await getBusServicePlatformListAll();
|
||||
const emits = defineEmits(["getData"]);
|
||||
|
@ -412,15 +488,15 @@ const thirdList = ref([
|
|||
thirdPlatformId: "",
|
||||
companyCode: "",
|
||||
majorHazardCode: [],
|
||||
accessKey: "",
|
||||
rsaPublicKey: "",
|
||||
accessKey: { data: "", showData: true },
|
||||
rsaPublicKey: { data: "", showData: true },
|
||||
url: "",
|
||||
requestUrl: "",
|
||||
iv: "",
|
||||
code: "",
|
||||
appid: "",
|
||||
secret: "",
|
||||
token: "",
|
||||
iv: { data: "", showData: true },
|
||||
code: { data: "", showData: true },
|
||||
appid: { data: "", showData: true },
|
||||
secret: { data: "", showData: true },
|
||||
token: { data: "", showData: true },
|
||||
},
|
||||
]);
|
||||
const fnAddThirdList = () => {
|
||||
|
@ -428,15 +504,15 @@ const fnAddThirdList = () => {
|
|||
thirdPlatformId: "",
|
||||
companyCode: "",
|
||||
majorHazardCode: [],
|
||||
accessKey: "",
|
||||
rsaPublicKey: "",
|
||||
accessKey: { data: "", showData: true },
|
||||
rsaPublicKey: { data: "", showData: true },
|
||||
url: "",
|
||||
requestUrl: "",
|
||||
iv: "",
|
||||
code: "",
|
||||
appid: "",
|
||||
secret: "",
|
||||
token: "",
|
||||
iv: { data: "", showData: true },
|
||||
code: { data: "", showData: true },
|
||||
appid: { data: "", showData: true },
|
||||
secret: { data: "", showData: true },
|
||||
token: { data: "", showData: true },
|
||||
});
|
||||
};
|
||||
const fnReduceThirdList = (index) => {
|
||||
|
@ -466,6 +542,15 @@ const fnMajorHazardCodeAdd = (item) => {
|
|||
const fnMajorHazardCodeReduce = (item, index) => {
|
||||
item.majorHazardCode.splice(index, 1);
|
||||
};
|
||||
const temArr = [
|
||||
"accessKey",
|
||||
"rsaPublicKey",
|
||||
"iv",
|
||||
"code",
|
||||
"appid",
|
||||
"secret",
|
||||
"token",
|
||||
];
|
||||
const fnGetData = async () => {
|
||||
if (!props.corpInfoId) return;
|
||||
const { data } = await getBusCompanyInfo({ id: props.corpInfoId });
|
||||
|
@ -481,13 +566,21 @@ const fnGetData = async () => {
|
|||
? `${form.value.longitude}-${form.value.latitude}`
|
||||
: "";
|
||||
thirdList.value = data.thirdList;
|
||||
|
||||
thirdList.value.forEach((item) => {
|
||||
if (item.majorHazardCode) {
|
||||
item.majorHazardCode = JSON.parse(item.majorHazardCode);
|
||||
}
|
||||
Object.entries(item).forEach(([key, value]) => {
|
||||
if (temArr.includes(key)) {
|
||||
item[key] = {
|
||||
data: value,
|
||||
showData: false,
|
||||
};
|
||||
}
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
fnGetData();
|
||||
const sectorIdRef = ref("");
|
||||
const appAreaRef = useTemplateRef("areaRef");
|
||||
|
@ -506,8 +599,17 @@ const fnSubmit = debounce(
|
|||
item.majorHazardCode = item.majorHazardCode.filter(
|
||||
(item) => item.code !== ""
|
||||
);
|
||||
item.majorHazardCode = JSON.stringify(item.majorHazardCode);
|
||||
item.majorHazardCode =
|
||||
item.majorHazardCode.length > 0
|
||||
? JSON.stringify(item.majorHazardCode)
|
||||
: "";
|
||||
temArr.forEach((key) => {
|
||||
if (item[key]) {
|
||||
item[key] = item[key].data;
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
const params = {
|
||||
...form.value,
|
||||
sectorId,
|
||||
|
@ -530,6 +632,9 @@ const fnSubmit = debounce(
|
|||
},
|
||||
{ atBegin: true }
|
||||
);
|
||||
const fnView = (item) => {
|
||||
item.showData = !item.showData;
|
||||
};
|
||||
</script>
|
||||
|
||||
<style scoped lang="scss">
|
||||
|
@ -537,12 +642,6 @@ const fnSubmit = debounce(
|
|||
display: flex;
|
||||
justify-content: end;
|
||||
}
|
||||
:deep {
|
||||
.el-input-group__append button.el-button {
|
||||
background-color: #409eff;
|
||||
color: white;
|
||||
}
|
||||
}
|
||||
.code_container {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
|
|
|
@ -56,9 +56,9 @@
|
|||
</el-table-column>
|
||||
</app-table>
|
||||
<edit-dialog
|
||||
v-if="visible"
|
||||
v-model:visible="visible"
|
||||
:title="title"
|
||||
v-if="editDialogObj.visible"
|
||||
v-model:visible="editDialogObj.visible"
|
||||
:type="editDialogObj.type"
|
||||
:corp-info-id="corpInfoId"
|
||||
@get-data="resetPagination"
|
||||
></edit-dialog>
|
||||
|
@ -108,17 +108,18 @@ const options = [
|
|||
},
|
||||
];
|
||||
|
||||
const visible = ref(false);
|
||||
const title = ref("");
|
||||
const editDialogObj = ref({
|
||||
visible: false,
|
||||
type: "",
|
||||
});
|
||||
const fnAddorEdit = (type, row) => {
|
||||
if (type === "edit") {
|
||||
corpInfoId.value = row.id;
|
||||
title.value = "修改";
|
||||
} else {
|
||||
title.value = "新增";
|
||||
corpInfoId.value = null;
|
||||
}
|
||||
visible.value = true;
|
||||
editDialogObj.value.type = type;
|
||||
editDialogObj.value.visible = true;
|
||||
};
|
||||
const fnDelete = async (id) => {
|
||||
await ElMessageBox.confirm("确定要删除吗?", {
|
||||
|
|
|
@ -13,7 +13,7 @@
|
|||
<app-info-builder :options="propsOptions" :info> </app-info-builder>
|
||||
<el-divider content-position="left">对接上级平台信息</el-divider>
|
||||
<div v-for="(item, index) in thirdList" :key="index" class="mb-10">
|
||||
<app-info-builder :options="thirdListOptions" :info="item">
|
||||
<app-info-builder v-model:options="thirdListOptions" :info="item">
|
||||
<template #thirdPlatformId>
|
||||
{{ fnPlatformName(target.thirdList, item.thirdPlatformId) }}
|
||||
</template>
|
||||
|
@ -87,26 +87,23 @@ const propsOptions = computed(() => [
|
|||
value: translationStatus(info.value.isDustExplosion, WHETHER_LIST),
|
||||
},
|
||||
]);
|
||||
const thirdListOptions = [
|
||||
const thirdListOptions = ref([
|
||||
{ key: "thirdPlatformId", label: "上级对接平台" },
|
||||
{ key: "companyCode", label: "企业编码" },
|
||||
{ key: "majorHazardCode", label: "重大危险源编码" },
|
||||
{ key: "accessKey", label: "密钥" },
|
||||
{ key: "rsaPublicKey", label: "公钥" },
|
||||
{ key: "accessKey", label: "密钥", encrypted: true, showData: false },
|
||||
{ key: "rsaPublicKey", label: "公钥", encrypted: true, showData: false },
|
||||
{ key: "url", label: "上报数据URL" },
|
||||
{ key: "requestUrl", label: "请求方法URL" },
|
||||
{ key: "iv", label: "对接IV" },
|
||||
{ key: "code", label: "企业CODE" },
|
||||
{ key: "appid", label: "企业APPID" },
|
||||
{ key: "secret", label: "企业SECRET" },
|
||||
{ key: "token", label: "企业TOKEN" },
|
||||
];
|
||||
{ key: "iv", label: "对接IV", encrypted: true, showData: false },
|
||||
{ key: "code", label: "企业CODE", encrypted: true, showData: false },
|
||||
{ key: "appid", label: "企业APPID", encrypted: true, showData: false },
|
||||
{ key: "secret", label: "企业SECRET", encrypted: true, showData: false },
|
||||
{ key: "token", label: "企业TOKEN", encrypted: true, showData: false },
|
||||
]);
|
||||
const fnGetData = async () => {
|
||||
const { data } = await getBusCompanyInfo({ id: id });
|
||||
info.value = data;
|
||||
// if (info.value.province) {
|
||||
// info.value.area = `${info.value.province} ${info.value.city} ${info.value.county} ${info.value.village} ${info.value.street}`;
|
||||
// }
|
||||
if (info.value.longitude) {
|
||||
info.value.address = `${info.value.longitude}-${info.value.latitude}`;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue