Browse Source

Merge branch 'dev-数据对比'

dev-路由
dai 3 years ago
parent
commit
c0f37328b0
  1. 61
      src/views/modules/cpts/base/index.vue
  2. 178
      src/views/modules/shujuduibi/canji.vue
  3. 122
      src/views/modules/shujuduibi/siwang.vue

61
src/views/modules/cpts/base/index.vue

@ -137,6 +137,16 @@
size="small"
>导出</el-button
>
<el-button
v-if="delMultipleUrl"
size="small"
@click="handleDeleteMultiple"
>批量删除</el-button
>
<slot
name="listBtn"
v-bind:multipleSelection="multipleSelection"
></slot>
</div>
<el-table
@ -147,8 +157,17 @@
class="table"
style="width: 100%"
:height="maxTableHeight"
@selection-change="handleSelectionChange"
>
<template v-for="item in tableParams" :prop="item.keyName">
<template v-for="(item, index) in tableParams" :prop="item.keyName">
<el-table-column
v-if="item.type == 'selection'"
:key="'table-selection' + index"
type="selection"
align="center"
width="50"
/>
<el-table-column
v-if="item.type == 'no'"
:key="'table-no' + item.keyName"
@ -339,6 +358,10 @@ export default {
type: String,
default: "",
},
delMultipleUrl: {
type: String,
default: "",
},
infoUrl: {
type: String,
default: "",
@ -408,6 +431,11 @@ export default {
type: Boolean,
default: true,
},
cookTableData: {
type: Function,
default: (val) => val,
},
},
data() {
@ -424,6 +452,8 @@ export default {
formType: "", // list add edit info
ref_search_height: 100,
multipleSelection: [],
};
},
@ -459,6 +489,11 @@ export default {
},
methods: {
handleSelectionChange(val) {
console.log(val);
this.multipleSelection = val;
},
computeSearchHeight() {
this.ref_search_height = this.$refs["ref_search"].clientHeight;
console.log(this.$refs["ref_search"]);
@ -660,6 +695,24 @@ export default {
// this.getTableData();
},
async handleDeleteMultiple() {
let { delMultipleUrl: url } = this;
if (!url) return;
const { multipleSelection, idName } = this;
const { data, code, msg } = await requestPost(url, [
...multipleSelection.map((item) => item[idName]),
]);
if (code === 0) {
this.$message.success("批量删除成功!");
this.getTableData();
} else {
this.$message.error("操作失败!");
}
},
async handleDelete(rowData, rowIndex) {
console.log(rowData, rowIndex);
let { delUrl: url } = this;
@ -713,11 +766,7 @@ export default {
if (code === 0) {
this.total = data.total || 0;
this.tableData = data.list
? data.list.map((item) => {
return item;
})
: [];
this.tableData = data.list ? this.cookTableData(data.list) : [];
} else {
this.$message.error(msg);
}

178
src/views/modules/shujuduibi/canji.vue

@ -0,0 +1,178 @@
<template>
<div>
<base-page
ref="basePage"
:searchParams="searchParams"
:tableParams="tableParams"
:tableUrl="tableUrl"
:delMultipleUrl="delMultipleUrl"
:infoUrl="infoUrl"
:exportUrl="exportUrl"
:editParams="editParams"
:editParamsDiv="5"
idName="id"
>
<template v-slot:listBtn="{ multipleSelection }">
<el-button @click="handleSyncMultiple(multipleSelection)" size="small"
>批量更新</el-button
>
</template>
<template v-slot:listBtnSup="{ item }">
<el-button type="text" @click="handleSync(item)" size="small"
>全部更新</el-button
>
</template>
<template v-slot:editBottomSup="{ id, info }">
<div class="m-duibi">
<h3>对比信息</h3>
<el-table
:data="cookInfo(info)"
style="width: 100%"
:row-class-name="tableRowClassName"
>
<el-table-column prop="resiInfo" label="数据库信息">
</el-table-column>
<el-table-column prop="result" label="结果"></el-table-column>
</el-table>
</div>
</template>
</base-page>
</div>
</template>
<script>
import basePage from "@/views/modules/cpts/base/index";
import { requestPost } from "@/js/dai/request";
export default {
props: {},
data() {
return {
searchParams: [
{ field: "姓名", keyName: "name", type: "input" },
{ field: "证件号", keyName: "idCard", type: "input" },
{ field: "手机", keyName: "mobile", type: "input" },
],
tableParams: [
{ field: "选择框", keyName: "", type: "selection" },
{ field: "序号", keyName: "", type: "no" },
{ field: "姓名", keyName: "name", type: "text" },
{ field: "证件号", keyName: "idCard", type: "text", width: 200 },
{ field: "手机", keyName: "mobile", type: "text", width: 120 },
{ field: "性别", keyName: "genderCn", type: "text" },
{ field: "民族", keyName: "mzCn", type: "text" },
{ field: "家庭住址", keyName: "address", type: "text" },
{ field: "残疾类别", keyName: "cjlbCn", type: "text" },
{ field: "残疾等级", keyName: "cjzkCn", type: "text" },
{ field: "残疾证号", keyName: "cardNum", type: "text", width: 200 },
{ field: "监护人", keyName: "guardian", type: "text" },
{ field: "状态", keyName: "dealStatusName", type: "text" },
{ field: "失败原因", keyName: "dealResult", type: "text" },
],
tableUrl: "/epmetuser/dataSyncRecordDisability/page",
delMultipleUrl: "/epmetuser/dataSyncRecordDisability/delete",
infoUrl: "/epmetuser/dataSyncRecordDisability/detail/",
// delUrl: "/gov/org/icDangerousChemicals/del",
exportUrl: "/epmetuser/dataSyncRecordDisability/export",
editParams: [
{ field: "姓名", keyName: "name", type: "input" },
{ field: "证件号", keyName: "idCard", type: "input" },
{ field: "手机", keyName: "mobile", type: "input" },
{ field: "性别", keyName: "genderCn", type: "input" },
{ field: "民族", keyName: "mzCn", type: "input" },
{ field: "家庭住址", keyName: "address", type: "input" },
{ field: "残疾类别", keyName: "cjlbCn", type: "input" },
{ field: "残疾等级", keyName: "cjzkCn", type: "input" },
{ field: "残疾证号", keyName: "cardNum", type: "input" },
{ field: "监护人", keyName: "guardian", type: "input" },
{ field: "状态", keyName: "dealStatusName", type: "input" },
{ field: "失败原因", keyName: "dealResult", type: "input" },
],
};
},
components: { basePage },
computed: {},
watch: {},
async mounted() {},
methods: {
cookInfo(info) {
let arr = [
{ field: "姓名", keyName: "name", type: "text" },
{ field: "证件号", keyName: "idCard", type: "text" },
{ field: "手机", keyName: "mobile", type: "text" },
{ field: "性别", keyName: "genderCn", type: "text" },
{ field: "民族", keyName: "mzCn", type: "text" },
{ field: "家庭住址", keyName: "address", type: "text" },
{ field: "残疾类别", keyName: "cjlbCn", type: "text" },
{ field: "残疾等级", keyName: "cjzkCn", type: "text" },
{ field: "残疾证号", keyName: "cardNum", type: "text" },
{ field: "监护人", keyName: "guardian", type: "text" },
];
return arr.map((item) => {
let val = (info && info[item.keyName]) || "--";
let resiVal =
(info && info.resiInfo && info.resiInfo[item.keyName]) || "--";
return {
resiInfo: item.field + ":" + resiVal,
result: resiVal == val ? "一致" : "不一致",
};
});
},
tableRowClassName({ row }) {
if (row.result === "不一致") {
return "z-stress";
}
return "";
},
async handleSync(item) {
const { data, code, msg } = await requestPost(
"/epmetuser/dataSyncRecordDisability/batchUpdate",
[item["id"]]
);
if (code === 0) {
this.$message.success("更新成功!");
this.$refs.basePage.getTableData();
} else {
this.$message.error("操作失败!");
}
},
async handleSyncMultiple(multipleSelection) {
const { data, code, msg } = await requestPost(
"/epmetuser/dataSyncRecordDisability/batchUpdate",
[...multipleSelection.map((item) => item["id"])]
);
if (code === 0) {
this.$message.success("批量更新成功!");
this.$refs.basePage.getTableData();
} else {
this.$message.error("操作失败!");
}
},
},
};
</script>
<style lang="scss" scoped>
.m-duibi {
padding: 10px;
}
::v-deep .el-table .z-stress {
background: oldlace;
}
</style>

122
src/views/modules/shujuduibi/siwang.vue

@ -0,0 +1,122 @@
<template>
<div>
<base-page
ref="basePage"
:searchParams="searchParams"
:tableParams="tableParams"
:tableUrl="tableUrl"
:delMultipleUrl="delMultipleUrl"
:infoUrl="infoUrl"
:exportUrl="exportUrl"
:editParams="editParams"
:cookTableData="cookTableData"
idName="id"
>
<template v-slot:listBtn="{ multipleSelection }">
<el-button @click="handleSyncMultiple(multipleSelection)" size="small"
>批量更新</el-button
>
</template>
<template v-slot:listBtnSup="{ item }">
<el-button type="text" @click="handleSync(item)" size="small"
>全部更新</el-button
>
</template>
</base-page>
</div>
</template>
<script>
import basePage from "@/views/modules/cpts/base/index";
import { requestPost } from "@/js/dai/request";
export default {
props: {},
data() {
return {
searchParams: [
{ field: "姓名", keyName: "name", type: "input" },
{ field: "证件号", keyName: "idCard", type: "input" },
],
tableParams: [
{ field: "选择框", keyName: "", type: "selection" },
{ field: "序号", keyName: "", type: "no" },
{ field: "姓名", keyName: "name", type: "text" },
{ field: "证件号", keyName: "idCard", type: "text", width: 200 },
{ field: "死亡日期", keyName: "deathDate", type: "text", width: 120 },
{ field: "现年龄", keyName: "age", type: "text" },
{ field: "家庭住址", keyName: "address", type: "text" },
{ field: "状态", keyName: "dealStatusName", type: "text" },
{ field: "失败原因", keyName: "dealResult", type: "text" },
],
tableUrl: "/epmetuser/dataSyncRecordDeath/page",
delMultipleUrl: "/epmetuser/dataSyncRecordDeath/delete",
infoUrl: "/epmetuser/dataSyncRecordDeath/detail/",
// delUrl: "/gov/org/icDangerousChemicals/del",
exportUrl: "/epmetuser/dataSyncRecordDeath/export",
editParams: [
{ field: "姓名", keyName: "name", type: "input" },
{ field: "证件号", keyName: "idCard", type: "input" },
{ field: "死亡日期", keyName: "deathDate", type: "input" },
{ field: "现年龄", keyName: "age", type: "input" },
{ field: "家庭住址", keyName: "address", type: "input" },
],
};
},
components: { basePage },
computed: {},
watch: {},
async mounted() {},
methods: {
cookTableData(tableData) {
return tableData.map((item) => {
item.dealStatusName =
!item.dealStatus || item.dealStatus == 0
? "未处理"
: item.dealStatus == 1
? "处理成功"
: "处理失败";
return item;
});
},
async handleSync(item) {
const { data, code, msg } = await requestPost(
"/epmetuser/dataSyncRecordDeath/batchupdate",
[item["id"]]
);
if (code === 0) {
this.$message.success("更新成功!");
this.$refs.basePage.getTableData();
} else {
this.$message.error("操作失败!");
}
},
async handleSyncMultiple(multipleSelection) {
const { data, code, msg } = await requestPost(
"/epmetuser/dataSyncRecordDeath/batchupdate",
[...multipleSelection.map((item) => item["id"])]
);
if (code === 0) {
this.$message.success("批量更新成功!");
this.$refs.basePage.getTableData();
} else {
this.$message.error("操作失败!");
}
},
},
};
</script>
<style lang="scss" scoped></style>
Loading…
Cancel
Save