Browse Source

Merge branch 'dev-身份验证1114' into dev

dev-用户反馈
jiangyy 3 years ago
parent
commit
f8770d5004
  1. 425
      src/views/modules/cpts/base/cpts/edit.vue
  2. 57
      src/views/modules/plugins/rent/rentcontractinfo-add-or-update.vue
  3. 4
      src/views/modules/plugins/rent/rentcontractreview.vue
  4. 530
      src/views/modules/shujuduibi/shenfenyizhi.vue

425
src/views/modules/cpts/base/cpts/edit.vue

@ -1,205 +1,235 @@
<template>
<div>
<div class="dialog-h-content scroll-h">
<el-form v-if="iniLoaded"
ref="ref_form"
:model="fmData"
:inline="true"
:disabled="formType === 'watch'"
class="m-fm"
:class="{ 'z-div': editParamsDiv, 'z-watch': formType === 'watch' }">
<el-form
v-if="iniLoaded"
ref="ref_form"
:model="fmData"
:inline="true"
:disabled="formType === 'watch'"
class="m-fm"
:class="{ 'z-div': editParamsDiv, 'z-watch': formType === 'watch' }"
>
<div class="list">
<el-form-item v-for="item in editParams"
class="item"
label-width="140px"
style="display: block"
:key="'edit' + item.keyName"
:label="item.field"
:prop="item.keyName"
:rules="item.rules || []">
<el-form-item
v-for="item in editParams"
class="item"
label-width="140px"
style="display: block"
:key="'edit' + item.keyName"
:label="item.field"
:prop="item.keyName"
:rules="item.rules || []"
>
<template v-if="item.type == 'switch'">
<el-switch v-model="fmData[item.keyName]"
size="small"
:active-text="item.activeText || ''"
:inactive-text="item.inactiveText || ''"
:active-value="item.activeValue || true"
:inactive-value="item.inactiveValue || false">
<el-switch
v-model="fmData[item.keyName]"
size="small"
:active-text="item.activeText || ''"
:inactive-text="item.inactiveText || ''"
:active-value="item.activeValue || true"
:inactive-value="item.inactiveValue || false"
>
</el-switch>
</template>
<template v-if="item.type == 'input'">
<el-input v-if="
<el-input
v-if="
formType == 'add' || (formType == 'edit' && !item.editDisable)
"
v-model="fmData[item.keyName]"
class="item-input"
size="small"
clearable
show-word-limit
:maxlength="item.maxlength || ''"
:placeholder="item.placeholder || '请输入'">
v-model="fmData[item.keyName]"
class="item-input"
size="small"
clearable
show-word-limit
:maxlength="item.maxlength || ''"
:placeholder="item.placeholder || '请输入'"
>
</el-input>
<div class="item-show"
v-else>
<div class="item-show" v-else>
{{ fmData[item.keyName] || "--" }}
<span v-if="item.attach">{{item.attach}}</span>
<span v-if="item.attach">{{ item.attach }}</span>
</div>
</template>
<template v-if="item.type == 'textarea'">
<el-input v-if="
<el-input
v-if="
formType == 'add' || (formType == 'edit' && !item.editDisable)
"
v-model="fmData[item.keyName]"
type="textarea"
class="item-input"
size="small"
clearable
show-word-limit
:rows="3"
:maxlength="item.maxlength || ''"
:placeholder="item.placeholder || '请输入'">
v-model="fmData[item.keyName]"
type="textarea"
class="item-input"
size="small"
clearable
show-word-limit
:rows="3"
:maxlength="item.maxlength || ''"
:placeholder="item.placeholder || '请输入'"
>
</el-input>
<div class="item-show"
v-else>
<div class="item-show" v-else>
{{ fmData[item.keyName] || "--" }}
</div>
</template>
<template v-if="item.type == 'date'">
<el-date-picker v-if="
<el-date-picker
v-if="
formType == 'add' || (formType == 'edit' && !item.editDisable)
"
v-model="fmData[item.keyName]"
:picker-options="item.pickerOptions"
class="item-input"
size="small"
clearable
show-word-limit
:value-format="item.format || 'yyyy-MM-dd'"
:placeholder="item.placeholder || '请输入'">
v-model="fmData[item.keyName]"
:picker-options="item.pickerOptions"
class="item-input"
size="small"
clearable
show-word-limit
:value-format="item.format || 'yyyy-MM-dd'"
:placeholder="item.placeholder || '请输入'"
>
</el-date-picker>
<div class="item-show"
v-else>
<div class="item-show" v-else>
{{ fmData[item.keyName] || "--" }}
</div>
</template>
<template v-if="item.type == 'number'">
<el-input-number v-if="
<el-input-number
v-if="
formType == 'add' || (formType == 'edit' && !item.editDisable)
"
v-model="fmData[item.keyName]"
class="item-number"
size="small"
clearable
:precision="item.precision || 0"
:step="item.step || 1"
:min="item.min || 0"
:max="item.max || 999999999999"
:placeholder="item.placeholder || '请输入'">
v-model="fmData[item.keyName]"
class="item-number"
size="small"
clearable
:precision="item.precision || 0"
:step="item.step || 1"
:min="item.min || 0"
:max="item.max || 999999999999"
:placeholder="item.placeholder || '请输入'"
>
</el-input-number>
<span class="item-show"
v-else>
<span class="item-show" v-else>
{{ fmData[item.keyName] || "--" }}
</span>
<span v-if="item.unitName">{{ item.unitName }}</span>
</template>
<template v-else-if="item.type == 'select'">
<el-select v-model="fmData[item.keyName]"
:placeholder="item.placeholder || '请选择'"
size="small"
clearable
class="item-select"
:multiple="item.multiple || false"
:filterable="item.filterable || false"
:allowCreate="item.allowCreate || false"
:collapse-tags="item.collapseTags || false"
default-first-option
@change="(e) => handleChangeSelect(e, item)">
<el-select
v-model="fmData[item.keyName]"
:placeholder="item.placeholder || '请选择'"
size="small"
clearable
class="item-select"
:multiple="item.multiple || false"
:filterable="item.filterable || false"
:allowCreate="item.allowCreate || false"
:collapse-tags="item.collapseTags || false"
default-first-option
@change="(e) => handleChangeSelect(e, item)"
>
<template v-if="item.optionType == 'group'">
<el-option-group v-for="group in item.optionList"
:key="group.label"
:label="group.label">
<el-option v-for="subItem in group.optionList"
:key="subItem.value"
:label="subItem.label"
:value="subItem.value">
<el-option-group
v-for="group in item.optionList"
:key="group.label"
:label="group.label"
>
<el-option
v-for="subItem in group.optionList"
:key="subItem.value"
:label="subItem.label"
:value="subItem.value"
>
</el-option>
</el-option-group>
</template>
<template v-else>
<el-option v-for="(subItem, subIndex) in item.optionList"
:key="subItem.value + subIndex"
:label="subItem.label"
:value="subItem.value">
<el-option
v-for="(subItem, subIndex) in item.optionList"
:key="subItem.value + subIndex"
:label="subItem.label"
:value="subItem.value"
>
</el-option>
</template>
</el-select>
</template>
<template v-else-if="item.type == 'rich-text'">
<div v-if="
<div
v-if="
formType == 'add' || (formType == 'edit' && !item.editDisable)
"
class="item-rich-text">
<Tinymce :ref="'richText' + item.keyName"
v-model="fmData[item.keyName]"
:customerId="customerId"
:placeholder="item.placeholder || '请输入'"
:height="500" />
class="item-rich-text"
>
<Tinymce
:ref="'richText' + item.keyName"
v-model="fmData[item.keyName]"
:customerId="customerId"
:placeholder="item.placeholder || '请输入'"
:height="500"
/>
</div>
<div v-else
class="item-rich-text z-show"
@click="handleClickHtmlNode">
<div
v-else
class="item-rich-text z-show"
@click="handleClickHtmlNode"
>
<div v-html="fmData[item.keyName]"></div>
</div>
</template>
<template v-else-if="item.type == 'cascader'">
<el-cascader v-model="fmData[item.keyName]"
:placeholder="item.placeholder || '请选择'"
:options="item.optionList"
:props="item.optionProps || {}"
:show-all-levels="false"
:collapse-tags="item.collapseTags || false"
size="small"
clearable
class="item-select"
@change="(e) => handleChangeCascader(e, item)">
<el-cascader
v-model="fmData[item.keyName]"
:placeholder="item.placeholder || '请选择'"
:options="item.optionList"
:props="item.optionProps || {}"
:show-all-levels="false"
:collapse-tags="item.collapseTags || false"
size="small"
clearable
class="item-select"
@change="(e) => handleChangeCascader(e, item)"
>
</el-cascader>
</template>
<template v-else-if="item.type == 'upload'">
<el-upload :headers="$getElUploadHeaders()"
v-if="
<el-upload
:headers="$getElUploadHeaders()"
v-if="
formType == 'add' || (formType == 'edit' && !item.editDisable)
"
ref="upload"
class="avatar-uploader"
:class="{ 'z-full': fmData[item.keyName].length >= item.limit }"
:action="item.uploadUrl || uploadUrl"
:data="{ customerId: customerId }"
:show-file-list="true"
:list-type="item.listType || 'picture'"
:limit="item.limit || 100"
:file-list="fmData[item.keyName]"
:on-success="(res, file) => handleImgSuccess(res, file, item)"
:on-error="(res, file) => handleImgError(res, file, item)"
:on-remove="(res) => handleImgRemove(res, item)"
:on-exceed="(res) => handleImgExceed(res, item)"
:before-upload="(file) => beforeImgUpload(file, item)">
ref="upload"
class="avatar-uploader"
:class="{ 'z-full': fmData[item.keyName].length >= item.limit }"
:action="item.uploadUrl || uploadUrl"
:data="{ customerId: customerId }"
:show-file-list="true"
:list-type="item.listType || 'picture'"
:limit="item.limit || 100"
:file-list="fmData[item.keyName]"
:on-success="(res, file) => handleImgSuccess(res, file, item)"
:on-error="(res, file) => handleImgError(res, file, item)"
:on-remove="(res) => handleImgRemove(res, item)"
:on-exceed="(res) => handleImgExceed(res, item)"
:before-upload="(file) => beforeImgUpload(file, item)"
>
<a><i class="el-icon-plus"></i> 点击上传</a>
</el-upload>
<el-image v-else-if="fmData[item.keyName].length > 0"
style="width: 100px; height: 100px"
:src="fmData[item.keyName][0].url"
fit="cover"
:preview-src-list="fmData[item.keyName].map((item) => item.url)"></el-image>
<el-image
v-else-if="fmData[item.keyName].length > 0"
style="width: 100px; height: 100px"
:src="fmData[item.keyName][0].url"
fit="cover"
:preview-src-list="fmData[item.keyName].map((item) => item.url)"
></el-image>
<span v-else>--</span>
</template>
@ -239,16 +269,20 @@
<div id="app_base" class="div_map"></div>
<div style="margin-top: 10px" v-show="false">
<span>经度</span>
<el-input class="address-item-input2"
maxlength="50"
placeholder="请输入经度"
v-model="fmData[item.supKeys[0]]">
<el-input
class="address-item-input2"
maxlength="50"
placeholder="请输入经度"
v-model="fmData[item.supKeys[0]]"
>
</el-input>
<span style="margin-left: 20px">纬度</span>
<el-input class="address-item-input2"
maxlength="50"
placeholder="请输入纬度"
v-model="fmData[item.supKeys[1]]">
<el-input
class="address-item-input2"
maxlength="50"
placeholder="请输入纬度"
v-model="fmData[item.supKeys[1]]"
>
</el-input>
</div>
</div>
@ -275,44 +309,52 @@
</div>
</el-form>
<div class="div_btn resi-btns"
v-if="!formBtnFixed">
<el-button size="small"
@click="handleCancle">{{
<div class="div_btn resi-btns" v-if="!formBtnFixed">
<el-button size="small" @click="handleCancle">{{
editConfig.cancelBtnName || "取消"
}}</el-button>
<el-button v-if="formType != 'watch'"
type="primary"
size="small"
:disabled="btnDisable"
@click="handleComfirm">{{ editConfig.confirmBtnName || "确定" }}</el-button>
<slot name="operateSup"
v-bind:id="formId"
v-bind:info="fmData"
v-bind:formType="formType"></slot>
<el-button
v-if="formType != 'watch'"
type="primary"
size="small"
:disabled="btnDisable"
@click="handleComfirm"
>{{ editConfig.confirmBtnName || "确定" }}</el-button
>
<slot
name="operateSup"
v-bind:id="formId"
v-bind:info="fmData"
v-bind:formType="formType"
></slot>
</div>
<slot name="bottomSup"
v-bind:id="formId"
v-bind:info="fmData"
v-bind:formType="formType"></slot>
<slot
name="bottomSup"
v-bind:id="formId"
v-bind:info="fmData"
v-bind:formType="formType"
></slot>
</div>
<div class="div_btn resi-btns"
v-if="formBtnFixed">
<el-button size="small"
@click="handleCancle">{{
<div class="div_btn resi-btns" v-if="formBtnFixed">
<el-button size="small" @click="handleCancle">{{
editConfig.cancelBtnName || "取消"
}}</el-button>
<el-button v-if="formType != 'watch'"
type="primary"
size="small"
:disabled="btnDisable"
@click="handleComfirm">{{ editConfig.confirmBtnName || "确定" }}</el-button>
<slot name="operateSup"
v-bind:id="formId"
v-bind:info="fmData"
v-bind:formType="formType"></slot>
<el-button
v-if="formType != 'watch'"
type="primary"
size="small"
:disabled="btnDisable"
@click="handleComfirm"
>{{ editConfig.confirmBtnName || "确定" }}</el-button
>
<slot
name="operateSup"
v-bind:id="formId"
v-bind:info="fmData"
v-bind:formType="formType"
></slot>
</div>
</div>
</template>
@ -385,7 +427,7 @@ export default {
},
},
data () {
data() {
return {
iniLoaded: false,
loading: false,
@ -407,19 +449,19 @@ export default {
computed: {},
watch: {
editParams: {
handler () {
handler() {
this.computeFmData();
},
deep: true,
},
},
async mounted () {
async mounted() {
this.initForm();
},
methods: {
async initForm () {
async initForm() {
this.iniFmData();
if (this.formId && this.formType != "add") {
@ -427,11 +469,11 @@ export default {
}
},
computeFmData () {
computeFmData() {
console.log(this.fmData);
},
iniFmData () {
iniFmData() {
const { editParams, fmData, editParamsDiv } = this;
editParams.forEach((item, index) => {
if (typeof item.value == "function") {
@ -503,7 +545,7 @@ export default {
this.iniLoaded = true;
},
handleClickHtmlNode (e) {
handleClickHtmlNode(e) {
//
if (e.target.localName.toLowerCase() === "a") {
//
@ -512,7 +554,7 @@ export default {
}
},
async getFmOptions (index, url, params, cookFn) {
async getFmOptions(index, url, params, cookFn) {
const { data, code, msg } = await requestPost(url, {
...params,
});
@ -525,13 +567,13 @@ export default {
}
},
handleChangeCascader (vals, item) {
handleChangeCascader(vals, item) {
this.fmData[item["keyName"]] = vals;
if (typeof item.handleChangeFn == "function") {
item.handleChangeFn(vals, item, this);
}
},
handleChangeSelect (vals, item) {
handleChangeSelect(vals, item) {
console.log(vals, item);
this.fmData[item["keyName"]] = vals;
if (typeof item.handleChangeFn == "function") {
@ -539,14 +581,14 @@ export default {
}
},
beforeImgUpload (file, item) {
beforeImgUpload(file, item) {
if (typeof item.beforeImgUpload == "function") {
if (!item.beforeImgUpload(file, item, this)) return false;
}
return true;
},
handleImgRemove (file, item) {
handleImgRemove(file, item) {
console.log("handleImgRemove", file);
let url = file.response ? file.response.data.url : file.url;
if (url) {
@ -568,7 +610,7 @@ export default {
}
},
handleImgExceed (res, item) {
handleImgExceed(res, item) {
console.log(res);
// this.$message({
// type: "warning",
@ -576,7 +618,7 @@ export default {
// });
},
handleImgSuccess (res, file, item) {
handleImgSuccess(res, file, item) {
console.log("handleImgSuccess", res);
if (res.code === 0 && res.msg === "success") {
let { fmData } = this;
@ -612,12 +654,12 @@ export default {
}
},
handleImgError (res, file, item) {
handleImgError(res, file, item) {
console.log(res);
},
// init
initMap (item) {
initMap(item) {
let { latitude, longitude } = this.$store.state.user;
map = new daiMap(
@ -756,12 +798,12 @@ export default {
}
},
watchImg (src) {
watchImg(src) {
window.open(src);
},
//
dormatHtml (content) {
dormatHtml(content) {
if (
content.startsWith(
"<!DOCTYPE html>\n<html>\n<head>\n</head>\n<body>\n"
@ -773,7 +815,7 @@ export default {
return content;
},
cookBeforeSubmit (data) {
cookBeforeSubmit(data) {
Object.keys(data).forEach((k) => {
if (typeof data[k] == "string") {
data[k] = this.dormatHtml(data[k]);
@ -782,7 +824,7 @@ export default {
return data;
},
async handleComfirm () {
async handleComfirm() {
this.btnDisable = true;
setTimeout(() => {
this.btnDisable = false;
@ -814,7 +856,7 @@ export default {
});
},
async submit () {
async submit() {
const { editConfig, fmData, formType, editFixedParams } = this;
if (
typeof editConfig.beforeSubmit == "function" &&
@ -854,7 +896,7 @@ export default {
}
},
handleCancle () {
handleCancle() {
this.$emit("close");
},
},
@ -927,13 +969,14 @@ export default {
.item {
min-width: 45%;
.item-rich-text {
/deep/ .item-rich-text {
width: 817px;
max-height: 500px;
overflow: auto;
img {
max-width: 100%;
height: auto;
}
&.z-show {
box-sizing: border-box;

57
src/views/modules/plugins/rent/rentcontractinfo-add-or-update.vue

@ -140,7 +140,7 @@
<el-form-item label="工作单位" prop="lesseeUnit" label-width="140px">
<el-input v-model="dataForm.lesseeUnit" placeholder="工作单位" ></el-input>
</el-form-item>
<el-form-item label="承租人户籍地" prop="lesseeHouseAddress" label-width="140px">
<el-form-item label="承租人户籍地" label-width="140px">
<el-input v-model="dataForm.lesseeHouseAddress" placeholder="承租人户籍地" ></el-input>
</el-form-item>
<br/>
@ -187,6 +187,15 @@
</el-form-item>
</template>
</el-table-column>
<el-table-column prop="hjszd" label="户籍地" :render-header="renderHeader" header-align="center" align="center" width="180">
<template slot-scope="scope">
<el-form-item :prop="'tenantList['+scope.$index+'].hjszd'" required :show-message="false">
<el-input v-model="dataForm.tenantList[scope.$index].hjszd"></el-input>
</el-form-item>
</template>
</el-table-column>
<el-table-column prop="unit" label="工作单位" :render-header="renderHeader" header-align="center" align="center" width="180" show-overflow-tooltip>
<template slot-scope="scope">
<el-form-item :prop="'tenantList['+scope.$index+'].unit'" required :show-message="false">
@ -236,12 +245,12 @@
</el-form-item>
</template>
</el-table-column>
<el-table-column label="证件照片" :render-header="renderHeader" header-align="center" align="center" width="245px">
<el-table-column label="证件照片" header-align="center" align="center" width="245px">
<template slot-scope="scope">
<upload-image :defaultFileList="dataForm.tenantList[scope.$index].idCardImgList" :limit="2" :rowIndex="scope.$index" @change="onChangeTenantListIdImgList"></upload-image>
</template>
</el-table-column>
<el-table-column prop="imgList" label="照片" :render-header="renderHeader" header-align="center" align="center" width="215px">
<el-table-column prop="imgList" label="照片" header-align="center" align="center" width="215px">
<template slot-scope="scope">
<upload-image :defaultFileList="dataForm.tenantList[scope.$index].imgList" :limit="3" :rowIndex="scope.$index" @change="onChangeImgList"></upload-image>
</template>
@ -286,7 +295,7 @@
</el-form-item>
<br/>
<el-form-item label="合同照片" prop="fileList" label-width="140px">
<el-form-item label="合同照片" label-width="140px">
<template>
<upload-image :defaultFileList="dataForm.fileList" :limit="6" @change="onChangeFileList"></upload-image>
</template>
@ -483,9 +492,9 @@ export default {
lesseeUnit: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
lesseeHouseAddress: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
// lesseeHouseAddress: [
// { required: true, message: this.$t('validate.required'), trigger: 'blur' }
// ],
signDate: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
@ -495,9 +504,9 @@ export default {
endDate: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
fileList: [
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }
],
// fileList: [
// { required: true, message: this.$t('validate.required'), trigger: 'blur' }
// ],
// agencyImgList: [
// { required: true, message: this.$t('validate.required'), trigger: 'blur' }
// ]
@ -939,20 +948,20 @@ export default {
if (!valid) {
return false
}
const isUploadIdCardImgList = this.dataForm.tenantList.some(item => {
return item.idCardImgList.length == 0
})
if (isUploadIdCardImgList) {
this.$message.error('请上传成员证件照片')
return
}
const isUploadImgList = this.dataForm.tenantList.some(item => {
return item.imgList.length == 0
})
if (isUploadImgList) {
this.$message.error('请上传成员照片')
return
}
// const isUploadIdCardImgList = this.dataForm.tenantList.some(item => {
// return item.idCardImgList.length == 0
// })
// if (isUploadIdCardImgList) {
// this.$message.error('')
// return
// }
// const isUploadImgList = this.dataForm.tenantList.some(item => {
// return item.imgList.length == 0
// })
// if (isUploadImgList) {
// this.$message.error('')
// return
// }
if (this.dataForm.lessorRelation == '中介') {
if (this.dataForm.agencyImgList.length == 0) {
this.$message.error('请上传中介委托照片')

4
src/views/modules/plugins/rent/rentcontractreview.vue

@ -104,10 +104,10 @@
</el-option>
</el-select>
</el-form-item>
<el-form-item label="承租人证件号" label-width="100px">
<el-form-item label="承租人证件号" label-width="110px">
<el-input size="small" v-model="dataForm.lesseeIdCard" placeholder='承租人证件号' clearable @keyup.native="btKeyUpLesseeIdCard"></el-input>
</el-form-item>
<el-form-item label="承租人手机号" label-width="100px">
<el-form-item label="承租人手机号" label-width="110px">
<el-input size="small" v-model="dataForm.lesseeMobile" placeholder='承租人手机号' clearable @keyup.native="btKeyUpLesseeMobile"></el-input>
</el-form-item>
<br/>

530
src/views/modules/shujuduibi/shenfenyizhi.vue

@ -0,0 +1,530 @@
<template>
<div class="div_main">
<div class="div_search">
<el-form :inline="true"
:model="formData"
ref="ref_searchform"
:label-width="'100px'">
<el-form-item label="信息一致"
prop="identical">
<el-select class="item_width_1"
v-model="formData.identical"
placeholder="请选择"
size="small"
clearable>
<el-option v-for="item in identicalList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="状态"
prop="type">
<el-select class="item_width_1"
v-model="formData.type"
placeholder="请选择"
size="small"
clearable>
<el-option v-for="item in typeList"
:key="item.value"
:label="item.label"
:value="item.value">
</el-option>
</el-select>
</el-form-item>
<el-form-item label="身份证号"
prop="unitName">
<el-input v-model="formData.idCard"
class="item_width_1"
clearable
size="small"
placeholder="请输入内容">
</el-input>
</el-form-item>
<el-button style="margin-left:10px"
class="diy-button--search"
size="small"
@click="handleSearch">查询</el-button>
<el-button style="margin-left:10px"
class="diy-button--reset"
size="small"
@click="resetSearch">重置</el-button>
</el-form>
</div>
<div class="div_table">
<div class="div_btn">
<el-button class="diy-button--reset"
size="small"
@click="handleExport">导出</el-button>
<el-button class="diy-button--add"
size="small"
@click="handleBatchCompare">批量比对</el-button>
</div>
<el-table class="table"
:data="tableData"
border
:height="tableHeight"
v-loading="tableLoading"
:header-cell-style="{background:'#2195FE',color:'#FFFFFF'}"
style="width: 100%"
@select-all="selectAll"
@selection-change="selectionChange">
<el-table-column type="selection"
fixed="left"
align="center"
width="55" />
<el-table-column label="序号"
header-align="center"
align="center"
type="index"
width="50"></el-table-column>
<el-table-column prop="resiName"
header-align="center"
align="center"
label="居民库-姓名"
min-width="100">
</el-table-column>
<el-table-column prop="resiIdCard"
header-align="center"
align="center"
label="居民库-证件号"
min-width="120">
</el-table-column>
<el-table-column prop="policeName"
header-align="center"
align="center"
label="公安-姓名"
min-width="100">
</el-table-column>
<el-table-column prop="policeIdCard"
header-align="center"
align="center"
label="公安-证件号"
show-overflow-tooltip
min-width="120">
</el-table-column>
<el-table-column prop="typeName"
header-align="center"
align="center"
label="状态"
width="100">
</el-table-column>
<el-table-column prop="identicalName"
header-align="center"
align="center"
label="信息一致"
width="140">
</el-table-column>
<el-table-column label="操作"
fixed="right"
width="150"
header-align="center"
align="center"
class="operate">
<template slot-scope="scope">
<el-button v-if="scope.row.type==='0' && scope.row.identical==='0' && scope.row.comparisonRecordId"
type="text"
class="div-table-button--detail"
size="small"
@click="handleUpdate(scope.row)">更新</el-button>
<el-button v-if="scope.row.type==='0' && scope.row.identical==='2'"
type="text"
class="div-table-button--edit"
size="small"
@click="handleCompare(scope.row)">对比</el-button>
</template>
</el-table-column>
</el-table>
<div>
<el-pagination @size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page.sync="pageNo"
:page-sizes="[10, 20, 50]"
:page-size="pageSize"
layout="sizes, prev, pager, next, total"
:total="total">
</el-pagination>
</div>
</div>
</div>
</template>
<script>
import { requestPost } from "@/js/dai/request";
import { mapGetters } from 'vuex'
import { Loading } from 'element-ui' // Loading
let loading //
export default {
data () {
return {
loading: false,
total: 0,
pageSize: 20,
pageNo: 0,
tableLoading: false,
agencyId: '',
identicalList: [
{
value: '0',
label: '否'
},
{
value: '1',
label: '是'
},
{
value: '2',
label: '空'
}
],//list
typeList: [
{
value: '0',
label: '未处理'
},
{
value: '1',
label: '已处理'
},
],//list
formData: {
identical: '',
type: '',
idCard: '',
},
tableData: [],
selection: [],
}
},
components: {
},
async created () {
},
async mounted () {
const { user } = this.$store.state
this.agencyId = user.agencyId
await this.loadTable()
},
methods: {
selectAll (selection) {
this.selection = selection;
},
selectionChange (selection) {
this.selection = selection;
},
handleSearch () {
this.loadTable()
},
async loadTable () {
this.tableLoading = true
const url = "/epmetuser/icResiComparisonRecord/resiComparisonList"
// const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/icResiComparisonRecord/resiComparisonList"
let params = {
pageSize: this.pageSize,
pageNo: this.pageNo,
...this.formData
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
this.total = data.total
this.tableData = data.list
} else {
this.$message.error(msg)
}
this.tableLoading = false
},
async handleUpdate (row) {
this.$confirm("确认更新?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
this.updateRow(row)
})
.catch(err => {
if (err == "cancel") {
}
});
},
async updateRow (row) {
const url = "/epmetuser/icResiComparisonRecord/comparisonUpdate"
// const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/icResiComparisonRecord/comparisonUpdate"
let params = {
comparisonRecordId: row.comparisonRecordId,
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
if (data.type) {
this.$message({
type: "success",
message: data.msg || "更新成功"
});
this.loadTable()
} else {
this.$message.error(data.msg)
}
} else {
this.$message.error(msg)
}
},
async handleCompare (row) {
this.$confirm("确认对比?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
let array = [row.resiId]
this.compareRow(array)
})
.catch(err => {
if (err == "cancel") {
}
});
},
async compareRow (array) {
const url = "/epmetuser/icResiComparisonRecord/comparison"
// const url = "http://yapi.elinkservice.cn/mock/245/epmetuser/icResiComparisonRecord/comparison"
let params = {}
if (array.length > 0) {
params.userIdList = array
} else {
params.userIdList = []
}
const { data, code, msg } = await requestPost(url, params)
if (code === 0) {
if (data.type) {
this.$message({
type: "success",
message: "对比成功"
});
this.loadTable()
} else {
this.$message.error(data.msg)
}
} else {
this.$message.error(msg)
}
},
async handleBatchCompare () {
this.$confirm("确认批量对比?", "提示", {
confirmButtonText: "确定",
cancelButtonText: "取消",
type: "warning"
})
.then(() => {
let array = this.selection.map((item) => item.resiId);
this.compareRow(array)
})
.catch(err => {
if (err == "cancel") {
}
});
},
//
resetSearch () {
this.formData = {
identical: '',
type: '',
idCard: '',
}
// this.pageSize = 10
this.pageNo = 0
// this.loadTable()
},
//
async handleExport () {
let title = '身份一致性验证表格'
const url = "/epmetuser/icResiComparisonRecord/export"
let params = {
...this.formData
}
app.ajax.exportFilePost(
url,
params,
(data, rspMsg) => {
this.download(data, title + '.xls')
},
(rspMsg, data) => {
this.$message.error(rspMsg);
}
);
},
//
download (data, fileName) {
if (!data) {
return
}
var csvData = new Blob([data])
if (window.navigator && window.navigator.msSaveOrOpenBlob) {
window.navigator.msSaveOrOpenBlob(csvData, fileName);
}
// for Non-IE (chrome, firefox etc.)
else {
var a = document.createElement('a');
document.body.appendChild(a);
a.style = 'display: none';
var url = window.URL.createObjectURL(csvData);
a.href = url;
a.download = fileName;
a.click();
a.remove();
window.URL.revokeObjectURL(url);
}
},
handleSizeChange (val) {
this.pageSize = val
this.pageNo = 1
this.loadTable()
},
handleCurrentChange (val) {
this.pageNo = val
this.loadTable()
},
//
startLoading () {
loading = Loading.service({
lock: true, //
text: '正在加载……', //
background: 'rgba(0,0,0,.7)' //
})
},
//
endLoading () {
// clearTimeout(timer);
if (loading) {
loading.close()
}
}
},
computed: {
tableHeight () {
return this.$store.state.inIframe ? this.clientHeight - 370 + this.iframeHeight : this.clientHeight - 370
},
...mapGetters(['clientHeight', 'iframeHeight'])
},
watch: {
},
props: {
}
}
</script>
<style lang="scss" scoped >
.div_main {
width: 100%;
}
.div_search {
background: #ffffff;
border-radius: 4px;
padding: 30px 20px 5px;
box-shadow: 0px 2px 12px 0px rgba(0, 0, 0, 0.1);
}
.item_width_1 {
width: 260px;
}
.item_width_2 {
width: 620px;
}
.div_table {
background: #ffffff;
box-shadow: 0px 2px 12px 0px rgba(0, 0, 0, 0.1);
border-radius: 4px;
margin-top: 15px;
padding: 23px 30px 10px;
.table {
margin-top: 20px;
}
}
.el-row {
/* margin-bottom: 20px; */
display: flex;
flex-wrap: wrap;
margin-top: 10px;
margin-right: 50px;
}
</style>
Loading…
Cancel
Save