14 changed files with 3993 additions and 0 deletions
@ -0,0 +1,105 @@ |
|||
<template> |
|||
<el-card shadow="never" class="aui-card--fill"> |
|||
<div> |
|||
<el-form> |
|||
<el-form-item label="乡镇" prop="outStreet" label-width="80px" v-if="$hasPermission('sys:epidemicreportuserinfo:townsSearch')"> |
|||
<el-select v-model="outStreet" placeholder="乡镇" @change="selectModel($event)" clearable> |
|||
<el-option v-for="item in outStreetArr" :key="item.dictValue" :label="item.dictName" :value="item.dictValue" > |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-form> |
|||
<div style="text-align: center" v-if="$hasPermission('sys:epidemicreportuserinfo:townsSearch')"> |
|||
<h2>{{ title }}人员出入情况</h2> |
|||
</div> |
|||
<div style="text-align: center" v-else> |
|||
<h2>人员出入情况</h2> |
|||
</div> |
|||
<!-- <div id="myChart" :style="{width: '1000px', height: '300px'}"></div>--> |
|||
<chart ref="chart1" :style="{width: '1000px', height: '300px'}" :options="orgOptions" :auto-resize="true"></chart> |
|||
</div> |
|||
</el-card> |
|||
</template> |
|||
|
|||
<script> |
|||
export default { |
|||
name: "hellowEcharts", |
|||
data() { |
|||
return { |
|||
title: "平阴县", |
|||
outStreet:'', |
|||
outStreetArr:[], |
|||
barName:'', |
|||
peopleNumber : [1,2,3], |
|||
orgOptions:{} |
|||
} |
|||
}, |
|||
created: function () { |
|||
this.getDailyTypeArrInfo() |
|||
this.getPeopleNumber(""); |
|||
}, |
|||
mounted() { |
|||
// this.drawLine(); |
|||
this.orgOptions = { |
|||
tooltip: {}, |
|||
xAxis: { |
|||
type: 'category', |
|||
data: ["外地人数", "返乡人数", "现住外地人数"] |
|||
}, |
|||
yAxis: { |
|||
type: 'value' |
|||
}, |
|||
series: [{ |
|||
data: [0, 0, 0], |
|||
type: 'bar', |
|||
name:"人员情况", |
|||
label: { |
|||
show: true, |
|||
position: 'top', |
|||
color: 'rgba(20, 101, 230, 1)' |
|||
}, |
|||
}] |
|||
} |
|||
}, |
|||
methods: { |
|||
// 获取乡镇下拉信息(传参:4代表查“街道”) |
|||
getDailyTypeArrInfo () { |
|||
this.$http.get(`sys/epidemicreportuserinfo/selectStreet/4`).then(({ data: res }) => { |
|||
this.outStreetArr = res |
|||
}).catch(() => {}) |
|||
}, |
|||
// 乡镇取值变化事件 |
|||
selectModel (event) { |
|||
if (event == ''){ |
|||
this.title = '平阴县' |
|||
this.barName = '平阴县' |
|||
this.getPeopleNumber(event); |
|||
} |
|||
this.outStreetArr.find((item) => { |
|||
if (item.dictValue === event) { |
|||
this.title = item.dictName |
|||
this.barName = item.dictName |
|||
this.outStreet = item.dictValue |
|||
this.getPeopleNumber(item.dictValue) |
|||
} |
|||
}) |
|||
}, |
|||
getPeopleNumber(item){ |
|||
if (item == ""){ |
|||
item = 0 |
|||
} |
|||
this.$http.get(`select/getPeopleNumber/`+item).then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.orgOptions.series[0].data = res.data |
|||
console.log(res.data) |
|||
}).catch(() => {}) |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
|
|||
<style scoped> |
|||
|
|||
</style> |
|||
@ -0,0 +1,727 @@ |
|||
<template> |
|||
<el-dialog :visible.sync="visible" |
|||
:title="!dataForm.id ? $t('add') : $t('update')" |
|||
:close-on-click-modal="false" |
|||
:close-on-press-escape="false"> |
|||
<el-form v-loading="vueLoading" |
|||
element-loading-text="拼命加载中" |
|||
element-loading-spinner="el-icon-loading" |
|||
:model="dataForm" |
|||
:rules="dataRule" |
|||
ref="dataForm" |
|||
@keyup.enter.native="dataFormSubmitHandle()" |
|||
:label-width="$i18n.locale === 'en-US' ? '120px' : '80px'"> |
|||
<el-form-item label="人员姓名" |
|||
prop="userName" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.userName" |
|||
placeholder="人员姓名" |
|||
maxlength="20" |
|||
clearable |
|||
@keyup.native="btKeyUpUserName"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="性别" |
|||
prop="gender" |
|||
label-width="155px"> |
|||
<el-select v-model="dataForm.gender" |
|||
clearable |
|||
placeholder="性别"> |
|||
<el-option v-for="item in gender" |
|||
:key="item.dictValue" |
|||
:label="item.dictName" |
|||
:value="item.dictValue"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="民族" |
|||
prop="nation" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.nation" |
|||
placeholder="民族"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="曾用名" |
|||
prop="formerName" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.formerName" |
|||
placeholder="曾用名"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="出生年月" |
|||
prop="birthday" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.birthday" |
|||
placeholder="出生年月"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="身份证号" |
|||
prop="idCard" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.idCard" |
|||
placeholder="身份证" |
|||
clearable |
|||
maxlength="49" |
|||
@keyup.native="btKeyUpIdCard"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="联系方式" |
|||
prop="mobile" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.mobile" |
|||
placeholder="联系方式" |
|||
clearable |
|||
maxlength="11" |
|||
@keyup.native="btKeyUpMobile"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="户籍地" |
|||
prop="householdRegisterName" |
|||
label-width="155px"> |
|||
<el-cascader ref="hjdname" |
|||
v-model="dataForm.householdRegisterCodes" |
|||
:options="options" |
|||
@change="householdRegisterChangeHandle" |
|||
:props="{ checkStrictly: false, multiple: true, emitPath: true }"> |
|||
</el-cascader> |
|||
</el-form-item> |
|||
<el-form-item label="户籍地详细地址" |
|||
prop="householdRegisterDetail" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.householdRegisterDetail" |
|||
placeholder="户籍地详细地址" |
|||
maxlength="200" |
|||
clearable></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="县内居住地" |
|||
prop="liveAddressName" |
|||
label-width="155px"> |
|||
<!-- <el-cascader--> |
|||
<!-- ref="jzdname"--> |
|||
<!-- v-model="dataForm.liveAddressCodes"--> |
|||
<!-- :options="liveOptions"--> |
|||
<!-- @change="liveAddressChangeHandle"--> |
|||
<!-- :props="{ checkStrictly: false, multiple: true, emitPath: true }"--> |
|||
<!-- >--> |
|||
<!-- </el-cascader>--> |
|||
|
|||
<el-select v-model="dataForm.liveAddressCode" |
|||
placeholder="请选择"> |
|||
<el-option v-for="item in liveOptions" |
|||
:key="item.value" |
|||
:label="item.label" |
|||
:value="item.value"> |
|||
</el-option> |
|||
</el-select> |
|||
<!-- <el-input v-model="dataForm.liveAddressName" placeholder="县内居住地" maxlength="200" clearable></el-input>--> |
|||
</el-form-item> |
|||
<!--<el-form-item label="县内居住地详细地址" prop="liveAddressDetail" label-width="155px">--> |
|||
<!--<el-input v-model="dataForm.liveAddressDetail" placeholder="县内居住地详细地址" maxlength="200" clearable></el-input>--> |
|||
<!--</el-form-item>--> |
|||
|
|||
<el-form-item label="身高" |
|||
prop="height" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.height" |
|||
placeholder="身高"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="文化程度" |
|||
prop="standardOfCulture" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.standardOfCulture" |
|||
placeholder="文化程度"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="健康情况" |
|||
prop="health" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.health" |
|||
placeholder="健康情况"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="血型" |
|||
prop="bloodType" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.bloodType" |
|||
placeholder="血型"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="婚姻状况" |
|||
prop="maritalStatus" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.maritalStatus" |
|||
placeholder="婚姻状况"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="与户主关系" |
|||
prop="relation" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.relation" |
|||
placeholder="与户主关系"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="国籍" |
|||
prop="nationality" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.nationality" |
|||
placeholder="国籍"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="政治面貌" |
|||
prop="politicsStatus" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.politicsStatus" |
|||
placeholder="政治面貌"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="宗教信仰" |
|||
prop="faith" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.faith" |
|||
placeholder="宗教信仰"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="毕业院校" |
|||
prop="graduateSchool" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.graduateSchool" |
|||
placeholder="毕业院校"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="专业" |
|||
prop="professional" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.professional" |
|||
placeholder="专业"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="工作状态" |
|||
prop="workStatus" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.workStatus" |
|||
placeholder="工作状态"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="行业类别" |
|||
prop="industryCategory" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.industryCategory" |
|||
placeholder="行业类别"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="工作单位(现/原)" |
|||
prop="workUnits" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.workUnits" |
|||
placeholder="工作单位(现/原)"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="兵役状况" |
|||
prop="military" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.military" |
|||
placeholder="兵役状况"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="人口类别" |
|||
prop="peopleCategories" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.peopleCategories" |
|||
placeholder="人口类别"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="特殊人群" |
|||
prop="specialCrowd" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.specialCrowd" |
|||
placeholder="特殊人群"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="有无车辆" |
|||
prop="car" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.car" |
|||
placeholder="有无车辆"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="车牌号" |
|||
prop="carNo" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.carNo" |
|||
placeholder="车牌号"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="人户状况" |
|||
prop="hushaiStatus" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.hushaiStatus" |
|||
placeholder="人户状况"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="籍贯" |
|||
prop="nativePlace" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.nativePlace" |
|||
placeholder="籍贯"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="往返情况" |
|||
prop="returnState" |
|||
label-width="155px"> |
|||
<el-select v-model="dataForm.returnState" |
|||
placeholder="往返情况" |
|||
@change="selectModel($event)"> |
|||
<el-option v-for="item in returnStateArr" |
|||
:key="item.dictValue" |
|||
:label="item.dictName" |
|||
:value="item.dictValue"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<div v-if="showFlagIn"> |
|||
<el-form-item label="拟离开平阴时间" |
|||
prop="leaveTime" |
|||
label-width="155px"> |
|||
<el-date-picker v-model="dataForm.leaveTime" |
|||
type="date" |
|||
placeholder="选择拟离开平阴时间" |
|||
label-width="150px" |
|||
value-format="yyyy-MM-dd" |
|||
format="yyyy-MM-dd" |
|||
style="width:200px"> |
|||
</el-date-picker> |
|||
</el-form-item> |
|||
<el-form-item label="拟去往目的地" |
|||
prop="destinationAddressName" |
|||
label-width="155px"> |
|||
<el-cascader ref="qwmddname" |
|||
v-model="dataForm.destinationAddressCodes" |
|||
:options="options" |
|||
@change="destinationChangeHandle" |
|||
:props="{ checkStrictly: false, multiple: true, emitPath: true }"> |
|||
</el-cascader> |
|||
</el-form-item> |
|||
<el-form-item label="拟去往目的地详细地址" |
|||
prop="destinationAddressDetail" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.destinationAddressDetail" |
|||
placeholder="去往目的地详细地址" |
|||
maxlength="200" |
|||
clearable></el-input> |
|||
</el-form-item> |
|||
</div> |
|||
<div v-if="showFlagOut"> |
|||
<el-form-item label="居住地关联人" |
|||
prop="relationPeople" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.relationPeople" |
|||
placeholder="居住地关联人" |
|||
maxlength="20" |
|||
clearable |
|||
@keyup.native="btKeyUpRelationPeople"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="关联人联系电话" |
|||
prop="relationPeopleMobile" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.relationPeopleMobile" |
|||
placeholder="关联人联系电话" |
|||
clearable |
|||
maxlength="11" |
|||
@keyup.native="btKeyUpRelationPeopleMobile"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="疫情风险等级" |
|||
prop="riskGrade" |
|||
label-width="155px"> |
|||
<el-select v-model="dataForm.riskGrade" |
|||
placeholder="现居住地疫情风险等级"> |
|||
<el-option v-for="item in riskGradeeArr" |
|||
:key="item.dictValue" |
|||
:label="item.dictName" |
|||
:value="item.dictValue"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="拟返回平阴时间" |
|||
prop="goBarkTime" |
|||
label-width="155px"> |
|||
<el-date-picker v-model="dataForm.goBarkTime" |
|||
type="date" |
|||
placeholder="返回平阴时间" |
|||
label-width="155px" |
|||
value-format="yyyy-MM-dd" |
|||
format="yyyy-MM-dd" |
|||
style="width:200px"> |
|||
</el-date-picker> |
|||
</el-form-item> |
|||
<el-form-item label="现居住地" |
|||
prop="outLiveAddressName" |
|||
label-width="155px"> |
|||
<el-cascader ref="zwjzdname" |
|||
v-model="dataForm.outLiveAddressCodes" |
|||
:options="options" |
|||
@change="outLiveAddressChangeHandle" |
|||
:props="{ checkStrictly: false, multiple: true, emitPath: true }"> |
|||
</el-cascader> |
|||
</el-form-item> |
|||
<el-form-item label="现居住地详细地址" |
|||
prop="outLiveAddressDetail" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.outLiveAddressDetail" |
|||
placeholder="现居住地详细地址" |
|||
maxlength="200" |
|||
clearable></el-input> |
|||
</el-form-item> |
|||
</div> |
|||
<el-form-item label="社区/村庄" |
|||
prop="community" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.community" |
|||
placeholder="社区/村庄"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="网格名称" |
|||
prop="gridName" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.gridName" |
|||
placeholder="网格名称"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="小区" |
|||
prop="plot" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.plot" |
|||
placeholder="小区"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="楼号" |
|||
prop="buildingNo" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.buildingNo" |
|||
placeholder="楼号"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="单元" |
|||
prop="unit" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.unit" |
|||
placeholder="单元"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="房间号" |
|||
prop="roomNo" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.roomNo" |
|||
placeholder="房间号"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="房屋性质" |
|||
prop="houseProperty" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.houseProperty" |
|||
placeholder="房屋性质"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="家庭保障情况" |
|||
prop="familySecurity" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.familySecurity" |
|||
placeholder="家庭保障情况"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="居住情况" |
|||
prop="livingSituation" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.livingSituation" |
|||
placeholder="居住情况"></el-input> |
|||
</el-form-item> |
|||
</el-form> |
|||
<template slot="footer"> |
|||
<el-button @click="visible = false">{{ $t('cancel') }}</el-button> |
|||
<el-button type="primary" |
|||
:disabled="isAble" |
|||
@click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button> |
|||
</template> |
|||
</el-dialog> |
|||
</template> |
|||
|
|||
<script> |
|||
import debounce from 'lodash/debounce' |
|||
|
|||
export default { |
|||
data () { |
|||
return { |
|||
visible: false, |
|||
dataForm: { |
|||
userName: '', |
|||
idCard: '', |
|||
mobile: '', |
|||
householdRegisterCode: '', |
|||
householdRegisterName: '', |
|||
householdRegisterDetail: '', |
|||
liveAddressCode: '', |
|||
liveAddressName: '', |
|||
liveAddressDetail: '', |
|||
relationPeople: '', |
|||
relationPeopleMobile: '', |
|||
outLiveAddressCode: '', |
|||
outLiveAddressName: '', |
|||
outLiveAddressDetail: '', |
|||
returnState: '1', |
|||
householdRegisterCodes: [], |
|||
liveAddressCodes: [], |
|||
outLiveAddressCodes: [], |
|||
leaveTime: '', |
|||
destinationAddressName: '', |
|||
destinationAddressCode: '', |
|||
destinationAddressDetail: '', |
|||
destinationAddressCodes: [], |
|||
riskGrade: '', |
|||
goBarkTime: '', |
|||
gender: '', |
|||
bloodType: '', |
|||
nation: '', |
|||
formerName: '', |
|||
birthday: '', |
|||
height: '', |
|||
standardOfCulture: '', |
|||
health: '', |
|||
maritalStatus: '', |
|||
relation: '', |
|||
nationality: '', |
|||
politicsStatus: '', |
|||
faith: '', |
|||
graduateSchool: '', |
|||
professional: '', |
|||
workStatus: '', |
|||
industryCategory: '', |
|||
workUnits: '', |
|||
military: '', |
|||
peopleCategories: '', |
|||
specialCrowd: '', |
|||
car: '', |
|||
carNo: '', |
|||
hushaiStatus: '', |
|||
nativePlace: '', |
|||
community: '', |
|||
gridName: '', |
|||
plot: '', |
|||
buildingNo: '', |
|||
unit: '', |
|||
roomNo: '', |
|||
houseProperty: '', |
|||
familySecurity: '', |
|||
livingSituation: '' |
|||
}, |
|||
returnStateArr: [ |
|||
{ dictValue: '1', dictName: '在本地' }, |
|||
{ dictValue: '2', dictName: '在外地' } |
|||
], |
|||
options: [], |
|||
liveOptions: [], |
|||
isAble: false, |
|||
showFlagIn: true, |
|||
showFlagOut: false, |
|||
riskGradeeArr: [ |
|||
{ dictValue: '1', dictName: '低风险' }, |
|||
{ dictValue: '2', dictName: '中风险' }, |
|||
{ dictValue: '3', dictName: '高风险' } |
|||
], |
|||
gender: [ |
|||
{ dictValue: '男', dictName: '男' }, |
|||
{ dictValue: '女', dictName: '女' }, |
|||
], |
|||
vueLoading: true |
|||
} |
|||
}, |
|||
computed: { |
|||
dataRule () { |
|||
return { |
|||
userName: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
], |
|||
mobile: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
], |
|||
idCard: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }, |
|||
{ pattern: /(^\d{15}$)|bai(^\d{18}$)|(^\d{17}(\d|X|x)$)/, message: '请输入正确身份证号', trigger: 'blur' } |
|||
] |
|||
} |
|||
} |
|||
}, |
|||
methods: { |
|||
init () { |
|||
this.visible = true |
|||
this.isAble = true |
|||
this.vueLoading = true |
|||
// 清空组织树选中 |
|||
this.dataForm.destinationAddressCodes = [] |
|||
this.getOptions() |
|||
this.getLiveOptions() |
|||
this.$nextTick(() => { |
|||
this.$refs['dataForm'].resetFields() |
|||
if (this.dataForm.id) { |
|||
this.getInfo() |
|||
} |
|||
}) |
|||
}, |
|||
// 往返情况取值变化事件 |
|||
selectModel (id) { |
|||
if (id === '1') { |
|||
// 在平阴 |
|||
this.showFlagIn = true |
|||
this.showFlagOut = false |
|||
} else { |
|||
this.showFlagIn = false |
|||
this.showFlagOut = true |
|||
} |
|||
}, |
|||
householdRegisterChangeHandle (value, selectedData) { |
|||
let householdRegisterCode = '' |
|||
let householdRegisterName = '' |
|||
var householdRegisterCodeArr = this.$refs['hjdname'].currentValue |
|||
var householdRegisterNameArr = this.$refs['hjdname'].currentLabels |
|||
for (var i = 0; i < householdRegisterCodeArr.length; i++) { |
|||
if (i === householdRegisterCodeArr.length - 1) { |
|||
householdRegisterCode += householdRegisterCodeArr[i] |
|||
} else { |
|||
householdRegisterCode += householdRegisterCodeArr[i] + ',' |
|||
} |
|||
} |
|||
for (var j = 0; j < householdRegisterNameArr.length; j++) { |
|||
if (j === householdRegisterNameArr.length - 1) { |
|||
householdRegisterName += householdRegisterNameArr[j] |
|||
} else { |
|||
householdRegisterName += householdRegisterNameArr[j] + '/' |
|||
} |
|||
} |
|||
this.dataForm.householdRegisterCode = householdRegisterCode |
|||
this.dataForm.householdRegisterName = householdRegisterName |
|||
}, |
|||
liveAddressChangeHandle (value, selectedData) { |
|||
let liveAddressCode = '' |
|||
let liveAddressName = '' |
|||
var liveAddressCodeArr = this.$refs['jzdname'].currentValue |
|||
var liveAddressNameArr = this.$refs['jzdname'].currentLabels |
|||
for (var i = 0; i < liveAddressCodeArr.length; i++) { |
|||
if (i === liveAddressCodeArr.length - 1) { |
|||
liveAddressCode += liveAddressCodeArr[i] |
|||
} else { |
|||
liveAddressCode += liveAddressCodeArr[i] + ',' |
|||
} |
|||
} |
|||
for (var j = 0; j < liveAddressNameArr.length; j++) { |
|||
if (j === liveAddressNameArr.length - 1) { |
|||
liveAddressName += liveAddressNameArr[j] |
|||
} else { |
|||
liveAddressName += liveAddressNameArr[j] + '/' |
|||
} |
|||
} |
|||
this.dataForm.liveAddressCode = liveAddressCode |
|||
this.dataForm.liveAddressName = liveAddressName |
|||
}, |
|||
outLiveAddressChangeHandle (value, selectedData) { |
|||
let outLiveAddressCode = '' |
|||
let outLiveAddressName = '' |
|||
var outLiveAddressCodeArr = this.$refs['zwjzdname'].currentValue |
|||
var outLiveAddressNameArr = this.$refs['zwjzdname'].currentLabels |
|||
for (var i = 0; i < outLiveAddressCodeArr.length; i++) { |
|||
if (i === outLiveAddressCodeArr.length - 1) { |
|||
outLiveAddressCode += outLiveAddressCodeArr[i] |
|||
} else { |
|||
outLiveAddressCode += outLiveAddressCodeArr[i] + ',' |
|||
} |
|||
} |
|||
for (var j = 0; j < outLiveAddressNameArr.length; j++) { |
|||
if (j === outLiveAddressNameArr.length - 1) { |
|||
outLiveAddressName += outLiveAddressNameArr[j] |
|||
} else { |
|||
outLiveAddressName += outLiveAddressNameArr[j] + '/' |
|||
} |
|||
} |
|||
this.dataForm.outLiveAddressCode = outLiveAddressCode |
|||
this.dataForm.outLiveAddressName = outLiveAddressName |
|||
}, |
|||
destinationChangeHandle (value, selectedData) { |
|||
let destinationAddressCode = '' |
|||
let destinationAddressName = '' |
|||
var destinationAddressCodeArr = this.$refs['qwmddname'].currentValue |
|||
var destinationAddressNameArr = this.$refs['qwmddname'].currentLabels |
|||
for (var i = 0; i < destinationAddressCodeArr.length; i++) { |
|||
if (i === destinationAddressCodeArr.length - 1) { |
|||
destinationAddressCode += destinationAddressCodeArr[i] |
|||
} else { |
|||
destinationAddressCode += destinationAddressCodeArr[i] + ',' |
|||
} |
|||
} |
|||
for (var j = 0; j < destinationAddressNameArr.length; j++) { |
|||
if (j === destinationAddressNameArr.length - 1) { |
|||
destinationAddressName += destinationAddressNameArr[j] |
|||
} else { |
|||
destinationAddressName += destinationAddressNameArr[j] + '/' |
|||
} |
|||
} |
|||
this.dataForm.destinationAddressCode = destinationAddressCode |
|||
this.dataForm.destinationAddressName = destinationAddressName |
|||
}, |
|||
getOptions () { |
|||
this.$http |
|||
.get(`sys/select/getSysArea`) |
|||
.then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.options = res.data |
|||
this.vueLoading = false |
|||
this.isAble = false |
|||
}) |
|||
.catch(() => { |
|||
}) |
|||
}, |
|||
getLiveOptions () { |
|||
this.$http |
|||
.get(`sys/select/getLiveArea`) |
|||
.then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.liveOptions = res.data |
|||
}) |
|||
.catch(() => { |
|||
}) |
|||
}, |
|||
// 获取信息 |
|||
getInfo () { |
|||
this.$http.get(`sys/epidemicuserinfo/${this.dataForm.id}`).then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.dataForm = { |
|||
...this.dataForm, |
|||
...res.data |
|||
} |
|||
if (this.dataForm.returnState === '1') { |
|||
// 在平阴 |
|||
this.showFlagIn = true |
|||
this.showFlagOut = false |
|||
} else { |
|||
this.showFlagIn = false |
|||
this.showFlagOut = true |
|||
} |
|||
}).catch(() => { |
|||
}) |
|||
}, |
|||
// 表单提交 |
|||
dataFormSubmitHandle: debounce(function () { |
|||
this.$refs['dataForm'].validate((valid) => { |
|||
if (!valid) { |
|||
return false |
|||
} |
|||
this.isAble = true |
|||
this.$http[!this.dataForm.id ? 'post' : 'put']('sys/epidemicuserinfo/', this.dataForm).then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
this.isAble = false |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.$message({ |
|||
message: this.$t('prompt.success'), |
|||
type: 'success', |
|||
duration: 500, |
|||
onClose: () => { |
|||
this.visible = false |
|||
this.$emit('refreshDataList') |
|||
} |
|||
}) |
|||
}).catch(() => { |
|||
}) |
|||
}) |
|||
}, 1000, { 'leading': true, 'trailing': false }), |
|||
btKeyUpIdCard (e) { |
|||
e.target.value = e.target.value.replace(/[`~!@#$%^&*()_+=<>?:"{}|·~!@#¥%……&*()——+={}|《》?:“”【】、;‘’,。、]/g, '') |
|||
this.dataForm.idCard = e.target.value |
|||
}, |
|||
btKeyUpMobile (e) { |
|||
e.target.value = e.target.value.replace(/[`~!@#$%^&*()_+=<>?:"{}|·~!@#¥%……&*()——+={}|《》?:“”【】、;‘’,。、]/g, '') |
|||
this.dataForm.mobile = e.target.value |
|||
}, |
|||
btKeyUpRelationPeopleMobile (e) { |
|||
e.target.value = e.target.value.replace(/[`~!@#$%^&*()_+=<>?:"{}|·~!@#¥%……&*()——+={}|《》?:“”【】、;‘’,。、]/g, '') |
|||
this.dataForm.relationPeopleMobile = e.target.value |
|||
}, |
|||
btKeyUpUserName (e) { |
|||
e.target.value = e.target.value.replace(/[`~!@#$%^&*()_+=<>?:"{}|·~!@#¥%……&*()——+={}|《》?:“”【】、;‘’,。、]/g, '') |
|||
this.dataForm.userName = e.target.value |
|||
}, |
|||
btKeyUpRelationPeople (e) { |
|||
e.target.value = e.target.value.replace(/[`~!@#$%^&*()_+=<>?:"{}|·~!@#¥%……&*()——+={}|《》?:“”【】、;‘’,。、]/g, '') |
|||
this.dataForm.relationPeople = e.target.value |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
@ -0,0 +1,602 @@ |
|||
<template> |
|||
<el-card shadow="never" |
|||
class="aui-card--fill"> |
|||
<div class="mod-demo__epidemicreportuserinfo}"> |
|||
<el-form :inline="true" |
|||
:model="dataForm" |
|||
@keyup.enter.native="getDataListSearch()"> |
|||
<el-form-item label="姓名" |
|||
prop="username" |
|||
label-width="90px"> |
|||
<el-input v-model="dataForm.username" |
|||
placeholder="姓名" |
|||
clearable |
|||
maxlength="49" |
|||
@keyup.native="btKeyUpUsername" |
|||
style="width:200px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="身份证" |
|||
prop="idCard" |
|||
label-width="90px"> |
|||
<el-input v-model="dataForm.idCard" |
|||
placeholder="身份证" |
|||
clearable |
|||
maxlength="49" |
|||
@keyup.native="btKeyUpIdCard" |
|||
style="width:200px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="手机号" |
|||
prop="mobile" |
|||
label-width="90px"> |
|||
<el-input v-model="dataForm.mobile" |
|||
placeholder="手机号" |
|||
clearable |
|||
maxlength="11" |
|||
@keyup.native="btKeyUpMobile" |
|||
style="width:200px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="年龄" |
|||
prop="age"> |
|||
<el-select v-model="ageArr" clearable multiple |
|||
placeholder="请选择"> |
|||
<el-option v-for="item in ageStateArr" |
|||
:key="item.dictValue" |
|||
:label="item.dictName" |
|||
:value="item.dictValue"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="社区/村庄名称" |
|||
prop="community" |
|||
label-width="120px"> |
|||
<el-input v-model="dataForm.community" |
|||
placeholder="社区/村庄名称" |
|||
clearable |
|||
maxlength="20" |
|||
style="width:200px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="网格名称" |
|||
prop="gridName" |
|||
label-width="90px"> |
|||
<el-input v-model="dataForm.gridName" |
|||
placeholder="网格名称" |
|||
clearable |
|||
maxlength="20" |
|||
style="width:200px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="已接种" |
|||
prop="isInoculate"> |
|||
<el-select v-model="dataForm.isInoculate" clearable |
|||
placeholder="请选择"> |
|||
<el-option v-for="item in inoculateStateArr" |
|||
:key="item.dictValue" |
|||
:label="item.dictName" |
|||
:value="item.dictValue"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="生产企业" |
|||
prop="company"> |
|||
<el-select v-model="companyArr" clearable multiple |
|||
placeholder="请选择"> |
|||
<el-option v-for="item in companyStateArr" |
|||
:key="item.value" |
|||
:label="item.label" |
|||
:value="item.value"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<!-- <el-form-item label="现居住地" label-width="90px">--> |
|||
<!-- <el-cascader--> |
|||
<!-- v-model="ids"--> |
|||
<!-- :options="options"--> |
|||
<!-- :props="{ checkStrictly: true }"--> |
|||
<!-- clearable--> |
|||
<!-- change-on-select--> |
|||
<!-- >--> |
|||
<!-- </el-cascader>--> |
|||
<!-- </el-form-item>--> |
|||
<!-- <el-form-item label="往返情况" prop="returnState" label-width="70px">--> |
|||
<!-- <el-select v-model="dataForm.returnState" placeholder="往返情况" clearable>--> |
|||
<!-- <el-option v-for="item in returnStateArr" :key="item.dictValue" :label="item.dictName" :value="item.dictValue">--> |
|||
<!-- </el-option>--> |
|||
<!-- </el-select>--> |
|||
<!-- </el-form-item>--> |
|||
<!-- <el-form-item label="居住乡镇"--> |
|||
<!-- prop="outStreet"--> |
|||
<!-- label-width="90px"--> |
|||
<!-- v-if="$hasPermission('sys:epidemicreportuserinfo:townsSearch')">--> |
|||
<!-- <el-select v-model="dataForm.outStreet"--> |
|||
<!-- placeholder="居住乡镇"--> |
|||
<!-- @change="selectModel($event)"--> |
|||
<!-- clearable>--> |
|||
<!-- <el-option v-for="item in outStreetArr"--> |
|||
<!-- :key="item.dictValue"--> |
|||
<!-- :label="item.dictName"--> |
|||
<!-- :value="item.dictValue">--> |
|||
<!-- </el-option>--> |
|||
<!-- </el-select>--> |
|||
<!-- </el-form-item>--> |
|||
<!-- <el-form-item label="录入时间" prop="startTime" label-width="70px">--> |
|||
<!-- <el-date-picker v-model="dataForm.startTime"--> |
|||
<!-- type="date"--> |
|||
<!-- :picker-options="pickerBeginDateBefore"--> |
|||
<!-- value-format="yyyy-MM-dd"--> |
|||
<!-- format="yyyy-MM-dd"--> |
|||
<!-- placeholder="选择日期时间"--> |
|||
<!-- style="width:200px" @change="changeTime">--> |
|||
<!-- </el-date-picker>--> |
|||
<!-- </el-form-item>--> |
|||
<!-- <el-form-item label="至" prop="endTime">--> |
|||
<!-- <el-date-picker v-model="dataForm.endTime"--> |
|||
<!-- type="date"--> |
|||
<!-- :picker-options="pickerBeginDateAfter"--> |
|||
<!-- value-format="yyyy-MM-dd"--> |
|||
<!-- format="yyyy-MM-dd"--> |
|||
<!-- placeholder="选择日期时间"--> |
|||
<!-- style="width:200px" @change="changeTime">--> |
|||
<!-- </el-date-picker>--> |
|||
<!-- </el-form-item>--> |
|||
<el-form-item> |
|||
<el-button type="primary" |
|||
@click="beforeGetDataListSearch()">{{ $t('query') }}</el-button> |
|||
</el-form-item> |
|||
<el-form-item> |
|||
<el-button type="primary" |
|||
@click="exports()">{{ $t('export') }}</el-button> |
|||
</el-form-item> |
|||
<el-form-item> |
|||
<el-upload class="upload-demo" |
|||
ref="upload" |
|||
v-loading="uploeadLoeading" |
|||
:action="uploadUrl" |
|||
:limit="1" |
|||
:on-success='uploadSuccess' |
|||
:on-error='errorExceed' |
|||
:before-upload='beforeUpload' |
|||
accept=".xls,.xlsx"> |
|||
<el-button type="primary">批量导入</el-button> |
|||
</el-upload> |
|||
</el-form-item> |
|||
<el-form-item> |
|||
<el-button |
|||
type="primary" |
|||
@click="addOrUpdateHandle()">{{ $t('add') }}</el-button> |
|||
</el-form-item> |
|||
<el-form-item> |
|||
<el-button v-if="$hasPermission('demo:epidemicreportuserinfo:delete')" |
|||
type="danger" |
|||
@click="deleteHandle()">{{ $t('deleteBatch') }}</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
<el-table v-loading="dataListLoading" |
|||
:data="dataList" |
|||
border |
|||
@selection-change="dataListSelectionChangeHandle" |
|||
style="width: 100%;"> |
|||
<el-table-column label="序号" |
|||
header-align="center" |
|||
align="center" |
|||
width="50px"> |
|||
<template slot-scope="scope"> |
|||
{{scope.$index+1}} |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="userName" |
|||
label="姓名" |
|||
header-align="center" |
|||
show-overflow-tooltip |
|||
align="center" |
|||
width="150"></el-table-column> |
|||
<el-table-column prop="idCard" |
|||
label="身份证号" |
|||
header-align="center" |
|||
align="center" |
|||
width="170" |
|||
show-overflow-tooltip></el-table-column> |
|||
<el-table-column prop="mobile" |
|||
label="联系方式" |
|||
header-align="center" |
|||
align="center" |
|||
width="150"></el-table-column> |
|||
<!-- <el-table-column prop="gender" |
|||
label="性别" |
|||
header-align="center" |
|||
align="center" |
|||
width="80"></el-table-column> |
|||
<el-table-column prop="birthday" |
|||
label="出生年月" |
|||
header-align="center" |
|||
align="center" |
|||
width="120" |
|||
show-overflow-tooltip></el-table-column> |
|||
<el-table-column prop="city" |
|||
label="县/区" |
|||
header-align="center" |
|||
align="center" |
|||
width="150" |
|||
show-overflow-tooltip></el-table-column> --> |
|||
<el-table-column prop="street" |
|||
label="街道/乡镇" |
|||
header-align="center" |
|||
align="center" |
|||
width="150" |
|||
show-overflow-tooltip></el-table-column> |
|||
<el-table-column prop="community" |
|||
label="社区/村庄" |
|||
header-align="center" |
|||
align="center" |
|||
width="180" |
|||
show-overflow-tooltip></el-table-column> |
|||
<el-table-column prop="gridName" |
|||
label="网格名称" |
|||
header-align="center" |
|||
align="center" |
|||
width="110"></el-table-column> |
|||
<el-table-column prop="plot" |
|||
label="小区" |
|||
header-align="center" |
|||
align="center" |
|||
width="180" |
|||
show-overflow-tooltip></el-table-column> |
|||
<el-table-column prop="buildingNo" |
|||
label="楼号" |
|||
header-align="center" |
|||
align="center" |
|||
width="100" |
|||
show-overflow-tooltip></el-table-column> |
|||
<el-table-column prop="unit" |
|||
label="单元号" |
|||
header-align="center" |
|||
align="center" |
|||
width="100"></el-table-column> |
|||
<el-table-column prop="roomNo" |
|||
label="房间号" |
|||
header-align="center" |
|||
align="center" |
|||
width="100"></el-table-column> |
|||
<el-table-column prop="peopleCategories" |
|||
label="人口类别" |
|||
header-align="center" |
|||
align="center" |
|||
width="180"></el-table-column> |
|||
<el-table-column prop="specialCrown" |
|||
label="特殊人群" |
|||
header-align="center" |
|||
align="center" |
|||
width="180"></el-table-column> |
|||
<el-table-column prop="hushaiStatus" |
|||
label="人口状况" |
|||
header-align="center" |
|||
align="center" |
|||
width="180"></el-table-column> |
|||
<el-table-column prop="isInoculate" |
|||
label="是否接种" |
|||
header-align="center" |
|||
align="center" |
|||
width="180"> |
|||
<template slot-scope="scope"> |
|||
<el-tag v-if="scope.row.vaccinationState == '0'" size="small" type="danger">未接种</el-tag> |
|||
<el-tag v-if="scope.row.vaccinationState == '2'" size="small" type="success">接种完成</el-tag> |
|||
<el-tag v-if="scope.row.vaccinationState == '1'" size="small" type="success">第 {{scope.row.vaccinationNum}} 针</el-tag> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column :label="$t('handle')" |
|||
fixed="right" |
|||
header-align="center" |
|||
align="center" |
|||
width="150"> |
|||
<template slot-scope="scope"> |
|||
<el-button type="text" |
|||
size="small" |
|||
@click="lookHandle(scope.row.id)">{{'查看'}}</el-button> |
|||
<el-button type="text" |
|||
size="small" |
|||
@click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button> |
|||
<el-button type="text" |
|||
size="small" |
|||
@click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<el-pagination :current-page="page" |
|||
:page-sizes="[10, 20, 50, 100]" |
|||
:page-size="limit" |
|||
:total="total" |
|||
layout="total, sizes, prev, pager, next, jumper" |
|||
@size-change="pageSizeChangeHandle" |
|||
@current-change="pageCurrentChangeHandle"> |
|||
</el-pagination> |
|||
<!-- 弹窗, 新增 / 修改 --> |
|||
<add-or-update v-if="addOrUpdateVisible" |
|||
ref="addOrUpdate" |
|||
@refreshDataList="getDataList"></add-or-update> |
|||
<infoDetail v-if="detailVisible" |
|||
ref="infoDetail" |
|||
@refreshDataList="getDataList"></infoDetail> |
|||
<el-dialog title="导出选择" |
|||
:visible.sync="dialogVisibleExcel" |
|||
width="30%"> |
|||
<div style="text-align: center"> |
|||
<el-form inline |
|||
label-width="90px"> |
|||
<el-form-item> |
|||
<el-button type="primary" |
|||
v-loading="exportTemplate"> |
|||
<a :href="`https://epdc-yushan.elinkservice.cn/yushan-personal-admin/goOut.xlsx`" |
|||
target="_blank" |
|||
download="goBack.xlsx" |
|||
style="color: #ffffff">{{ $t('exportTemplate1') }}</a> |
|||
</el-button> |
|||
</el-form-item> |
|||
<el-form-item> |
|||
<el-button type="primary" |
|||
@click="exportHandle()">信息导出</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
</div> |
|||
<span slot="footer" |
|||
class="dialog-footer"> |
|||
<el-button @click="dialogVisibleExcel = false">取 消</el-button> |
|||
</span> |
|||
</el-dialog> |
|||
</div> |
|||
</el-card> |
|||
</template> |
|||
|
|||
<script> |
|||
import mixinViewModule from '@/mixins/view-module' |
|||
import AddOrUpdate from './epidemicreportuserinfo-add-or-update' |
|||
import InfoDetail from './epidemicreportuserinfoDetail' |
|||
import qs from "qs"; |
|||
import Cookies from "js-cookie"; |
|||
export default { |
|||
mixins: [mixinViewModule], |
|||
data () { |
|||
return { |
|||
mixinViewModuleOptions: { |
|||
getDataListURL: 'sys/epidemicuserinfo/page', |
|||
getDataListIsPage: true, |
|||
deleteURL: 'sys/epidemicuserinfo', |
|||
deleteIsBatch: true, |
|||
exportURL: 'sys/epidemicuserinfo/export', |
|||
exportErrorInfoURL: 'sys/epidemicusererror/export' |
|||
}, |
|||
dataForm: { |
|||
id: '', |
|||
idCard: '', |
|||
username: '', |
|||
mobile: '', |
|||
outCode: '', |
|||
outStreet: '', |
|||
returnState: '', |
|||
startTime: '', |
|||
endTime: '', |
|||
isInoculate: '', |
|||
age: '', |
|||
company: '' |
|||
}, |
|||
ageArr: [], |
|||
companyArr: [], |
|||
publicPath: process.env.BASE_URL, |
|||
pickerBeginDateBefore: { |
|||
disabledDate: (time) => { |
|||
let beginDateVal = this.dataForm.endTime |
|||
if (beginDateVal) { |
|||
return time.getTime() > new Date(beginDateVal + ' 00:00:00').getTime() |
|||
} |
|||
} |
|||
}, |
|||
pickerBeginDateAfter: { |
|||
disabledDate: (time) => { |
|||
let EndDateVal = this.dataForm.startTime |
|||
if (EndDateVal) { |
|||
return time.getTime() < new Date(EndDateVal + ' 00:00:00').getTime() |
|||
} |
|||
} |
|||
}, |
|||
ids: [], |
|||
options: [], |
|||
outStreetArr: [], |
|||
returnStateArr: [ |
|||
{ dictValue: 1, dictName: '在本地' }, |
|||
{ dictValue: 2, dictName: '在外地' } |
|||
], |
|||
inoculateStateArr: [ |
|||
{dictValue: '0', dictName: '未接种'}, |
|||
{dictValue: '10', dictName: '接种中'}, |
|||
{dictValue: '11', dictName: '接种完成'}, |
|||
{dictValue: '1', dictName: '第一针'}, |
|||
{dictValue: '2', dictName: '第二针'} |
|||
], |
|||
ageStateArr: [ |
|||
{dictValue: '0', dictName: '0-18岁'}, |
|||
{dictValue: '1', dictName: '19-19岁'}, |
|||
{dictValue: '2', dictName: '20-29岁'}, |
|||
{dictValue: '3', dictName: '30-39岁'}, |
|||
{dictValue: '4', dictName: '40-49岁'}, |
|||
{dictValue: '5', dictName: '50-59岁'}, |
|||
{dictValue: '6', dictName: '60岁以上'} |
|||
], |
|||
companyStateArr: [], |
|||
exportTemplate: false, |
|||
uploeadLoeading: false, |
|||
dialogVisibleExcel: false, |
|||
detailVisible: false |
|||
} |
|||
}, |
|||
created: function () { |
|||
this.getDataList() |
|||
this.getcompantyOptions() |
|||
this.getOptions() |
|||
// 乡镇下拉框赋值 |
|||
this.getDailyTypeArrInfo() |
|||
this.uploadUrl = `${window.SITE_CONFIG['apiURL']}/sys/epidemicreportuserinfo/importManualScoreExcel?token=${Cookies.get('token')}` |
|||
}, |
|||
components: { |
|||
AddOrUpdate, |
|||
InfoDetail |
|||
}, |
|||
watch: { |
|||
ids: function (val) { |
|||
if (val.length === 0) { |
|||
this.dataForm.outCode = '' |
|||
} else { |
|||
this.dataForm.outCode = this.ids[val.length - 1] |
|||
} |
|||
} |
|||
}, |
|||
methods: { |
|||
beforeGetDataListSearch () { |
|||
if (this.ageArr.length > 0) { |
|||
this.dataForm.age = this.ageArr.toString() |
|||
} else { |
|||
this.dataForm.age = '' |
|||
} |
|||
if (this.companyArr.length > 0) { |
|||
this.dataForm.company = this.companyArr.toString() |
|||
} else { |
|||
this.dataForm.company = '' |
|||
} |
|||
this.getDataListSearch() |
|||
}, |
|||
// 查看 |
|||
lookHandle (id) { |
|||
this.detailVisible = true |
|||
this.$nextTick(() => { |
|||
this.$refs.infoDetail.dataForm.id = id |
|||
this.$refs.infoDetail.init() |
|||
}) |
|||
}, |
|||
// 获取乡镇下拉信息(传参:4代表查“街道”) |
|||
getDailyTypeArrInfo () { |
|||
this.$http.get(`sys/epidemicreportuserinfo/selectStreet/4`).then(({ data: res }) => { |
|||
this.outStreetArr = res |
|||
}).catch(() => { }) |
|||
}, |
|||
getcompantyOptions () { |
|||
this.$http |
|||
.get(`sys/vaccinecompany/getCompantyList`) |
|||
.then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.companyStateArr = res.data |
|||
}) |
|||
.catch(() => { |
|||
}) |
|||
}, |
|||
// 乡镇取值变化事件 |
|||
selectModel (event) { |
|||
this.outStreetArr.find((item) => { |
|||
if (item.dictValue === event) { |
|||
this.dataForm.outStreet = item.dictValue |
|||
} |
|||
}) |
|||
}, |
|||
getOptions () { |
|||
this.$http |
|||
.get(`sys/select/getSysArea`) |
|||
.then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.options = res.data |
|||
}) |
|||
.catch(() => { }) |
|||
}, |
|||
btKeyUpUsername (e) { |
|||
e.target.value = e.target.value.replace(/[`~!@#$%^&*()_+=<>?:"{}|·~!@#¥%……&*()——+={}|《》?:“”【】、;‘’,。、]/g, '') |
|||
this.dataForm.username = e.target.value |
|||
}, |
|||
btKeyUpIdCard (e) { |
|||
e.target.value = e.target.value.replace(/[`~!@#$%^&*()_+=<>?:"{}|·~!@#¥%……&*()——+={}|《》?:“”【】、;‘’,。、]/g, '') |
|||
this.dataForm.idCard = e.target.value |
|||
}, |
|||
btKeyUpMobile (e) { |
|||
e.target.value = e.target.value.replace(/[`~!@#$%^&*()_+=<>?:"{}|·~!@#¥%……&*()——+={}|《》?:“”【】、;‘’,。、]/g, '') |
|||
this.dataForm.mobile = e.target.value |
|||
}, |
|||
beforeUpload (file) { |
|||
this.uploeadLoeading = true |
|||
}, |
|||
errorExceed (file, fileList) { |
|||
this.uploeadLoeading = false |
|||
this.$message.error('上传失败请重试') |
|||
}, |
|||
uploadSuccess (response, file, fileList) { |
|||
this.uploeadLoeading = false |
|||
this.$refs.upload.clearFiles() |
|||
if (response.code !== 0 || (response.data !== null && response.data.length > 0)) { |
|||
this.errordataList = response.data |
|||
if (this.errordataList != null && this.errordataList.length > 0) { |
|||
this.$confirm(response.data, '提示', { |
|||
confirmButtonText: '下载', |
|||
cancelButtonText: '取消', |
|||
type: 'warning' |
|||
}).then(() => { |
|||
var params = qs.stringify({ |
|||
'token': Cookies.get('token'), |
|||
...this.dataForm |
|||
}) |
|||
window.location.href = `${window.SITE_CONFIG['apiURL']}${this.mixinViewModuleOptions.exportErrorInfoURL}?${params}` |
|||
this.$message({ |
|||
type: 'success', |
|||
message: '下载成功' |
|||
}); |
|||
}).catch(() => { |
|||
this.$message({ |
|||
type: 'info', |
|||
message: '已取消下载' |
|||
}); |
|||
}); |
|||
} else { |
|||
this.$message.error(response.msg) |
|||
} |
|||
this.getDataList() |
|||
return |
|||
} |
|||
this.$message({ |
|||
message: '导入成功', |
|||
type: 'success', |
|||
duration: 1000, |
|||
onClose: () => { |
|||
this.getDataList() |
|||
} |
|||
}) |
|||
}, |
|||
returnStateFormat (row, column) { |
|||
if (row.returnState === 1 || row.returnState === '1') { |
|||
return '在本地' |
|||
} else if (row.returnState === 2 || row.returnState === '2') { |
|||
return '在外地' |
|||
} else { |
|||
return '' |
|||
} |
|||
}, |
|||
showRegistFormat (row, column) { |
|||
if (row.isInoculate == 0) { |
|||
return '否' |
|||
} else { |
|||
return '是' |
|||
} |
|||
}, |
|||
returnriskGradeFormat (row, column) { |
|||
//1:低风险,2:中风险,3:高风险 |
|||
if (row.riskGrade === 1 || row.riskGrade === '1') { |
|||
return '低风险' |
|||
} else if (row.returnState === 2 || row.returnState === '2') { |
|||
return '中风险' |
|||
} else if (row.returnState === 3 || row.returnState === '3') { |
|||
return '高风险' |
|||
} else { |
|||
return '' |
|||
} |
|||
}, |
|||
//打开导出弹框 |
|||
exports () { |
|||
this.dialogVisibleExcel = true; |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
@ -0,0 +1,713 @@ |
|||
<template> |
|||
<el-dialog :visible.sync="visible" |
|||
title="查看" |
|||
:close-on-click-modal="false" |
|||
:close-on-press-escape="false"> |
|||
<el-form v-loading="vueLoading" |
|||
element-loading-text="拼命加载中" |
|||
element-loading-spinner="el-icon-loading" |
|||
:model="dataForm" |
|||
:rules="dataRule" |
|||
ref="dataForm" |
|||
@keyup.enter.native="dataFormSubmitHandle()" |
|||
:label-width="$i18n.locale === 'en-US' ? '120px' : '80px'" |
|||
:disabled="true"> |
|||
<el-form-item label="人员姓名" |
|||
prop="userName" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.userName" |
|||
placeholder="人员姓名" |
|||
maxlength="20" |
|||
clearable |
|||
@keyup.native="btKeyUpUserName"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="性别" |
|||
prop="gender" |
|||
label-width="155px"> |
|||
<el-select v-model="dataForm.gender" |
|||
clearable |
|||
placeholder="性别"> |
|||
<el-option v-for="item in gender" |
|||
:key="item.dictValue" |
|||
:label="item.dictName" |
|||
:value="item.dictValue"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="民族" |
|||
prop="nation" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.nation" |
|||
placeholder="民族"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="曾用名" |
|||
prop="formerName" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.formerName" |
|||
placeholder="曾用名"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="出生年月" |
|||
prop="birthday" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.birthday" |
|||
placeholder="出生年月"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="身份证号" |
|||
prop="idCard" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.idCard" |
|||
placeholder="身份证" |
|||
clearable |
|||
maxlength="49" |
|||
@keyup.native="btKeyUpIdCard"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="联系方式" |
|||
prop="mobile" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.mobile" |
|||
placeholder="联系方式" |
|||
clearable |
|||
maxlength="11" |
|||
@keyup.native="btKeyUpMobile"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="户籍地" |
|||
prop="householdRegisterName" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.householdRegisterName" |
|||
placeholder="户籍地"></el-input> |
|||
<!-- <el-cascader ref="hjdname"--> |
|||
<!-- v-model="dataForm.householdRegisterCodes"--> |
|||
<!-- :options="options"--> |
|||
<!-- @change="householdRegisterChangeHandle"--> |
|||
<!-- :props="{ checkStrictly: false, multiple: true, emitPath: true }">--> |
|||
<!-- </el-cascader>--> |
|||
</el-form-item> |
|||
<el-form-item label="户籍地详细地址" |
|||
prop="householdRegisterDetail" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.householdRegisterDetail" |
|||
placeholder="户籍地详细地址" |
|||
maxlength="200" |
|||
clearable></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="县内居住地" |
|||
prop="liveAddressName" |
|||
label-width="155px"> |
|||
<!-- <el-cascader--> |
|||
<!-- ref="jzdname"--> |
|||
<!-- v-model="dataForm.liveAddressCodes"--> |
|||
<!-- :options="liveOptions"--> |
|||
<!-- @change="liveAddressChangeHandle"--> |
|||
<!-- :props="{ checkStrictly: false, multiple: true, emitPath: true }"--> |
|||
<!-- >--> |
|||
<!-- </el-cascader>--> |
|||
|
|||
<el-select v-model="dataForm.liveAddressCode" |
|||
placeholder="请选择"> |
|||
<el-option v-for="item in liveOptions" |
|||
:key="item.value" |
|||
:label="item.label" |
|||
:value="item.value"> |
|||
</el-option> |
|||
</el-select> |
|||
<!-- <el-input v-model="dataForm.liveAddressName" placeholder="县内居住地" maxlength="200" clearable></el-input>--> |
|||
</el-form-item> |
|||
<!--<el-form-item label="县内居住地详细地址" prop="liveAddressDetail" label-width="155px">--> |
|||
<!--<el-input v-model="dataForm.liveAddressDetail" placeholder="县内居住地详细地址" maxlength="200" clearable></el-input>--> |
|||
<!--</el-form-item>--> |
|||
|
|||
<el-form-item label="身高" |
|||
prop="height" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.height" |
|||
placeholder="身高"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="文化程度" |
|||
prop="standardOfCulture" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.standardOfCulture" |
|||
placeholder="文化程度"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="健康情况" |
|||
prop="health" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.health" |
|||
placeholder="健康情况"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="血型" |
|||
prop="bloodType" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.bloodType" |
|||
placeholder="血型"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="婚姻状况" |
|||
prop="maritalStatus" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.maritalStatus" |
|||
placeholder="婚姻状况"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="与户主关系" |
|||
prop="relation" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.relation" |
|||
placeholder="与户主关系"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="国籍" |
|||
prop="nationality" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.nationality" |
|||
placeholder="国籍"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="政治面貌" |
|||
prop="politicsStatus" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.politicsStatus" |
|||
placeholder="政治面貌"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="宗教信仰" |
|||
prop="faith" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.faith" |
|||
placeholder="宗教信仰"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="毕业院校" |
|||
prop="graduateSchool" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.graduateSchool" |
|||
placeholder="毕业院校"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="专业" |
|||
prop="professional" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.professional" |
|||
placeholder="专业"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="工作状态" |
|||
prop="workStatus" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.workStatus" |
|||
placeholder="工作状态"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="行业类别" |
|||
prop="industryCategory" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.industryCategory" |
|||
placeholder="行业类别"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="工作单位(现/原)" |
|||
prop="workUnits" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.workUnits" |
|||
placeholder="工作单位(现/原)"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="兵役状况" |
|||
prop="military" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.military" |
|||
placeholder="兵役状况"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="人口类别" |
|||
prop="peopleCategories" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.peopleCategories" |
|||
placeholder="人口类别"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="特殊人群" |
|||
prop="specialCrowd" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.specialCrowd" |
|||
placeholder="特殊人群"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="有无车辆" |
|||
prop="car" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.car" |
|||
placeholder="有无车辆"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="车牌号" |
|||
prop="carNo" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.carNo" |
|||
placeholder="车牌号"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="人户状况" |
|||
prop="hushaiStatus" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.hushaiStatus" |
|||
placeholder="人户状况"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="籍贯" |
|||
prop="nativePlace" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.nativePlace" |
|||
placeholder="籍贯"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="往返情况" |
|||
prop="returnState" |
|||
label-width="155px"> |
|||
<el-select v-model="dataForm.returnState" |
|||
placeholder="往返情况"> |
|||
<el-option v-for="item in returnStateArr" |
|||
:key="item.dictValue" |
|||
:label="item.dictName" |
|||
:value="item.dictValue"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<div v-if="showFlagIn"> |
|||
<el-form-item label="拟离开平阴时间" |
|||
prop="leaveTime" |
|||
label-width="155px"> |
|||
<el-date-picker v-model="dataForm.leaveTime" |
|||
type="date" |
|||
placeholder="选择拟离开平阴时间" |
|||
label-width="150px" |
|||
value-format="yyyy-MM-dd" |
|||
format="yyyy-MM-dd" |
|||
style="width:200px"> |
|||
</el-date-picker> |
|||
</el-form-item> |
|||
<el-form-item label="拟去往目的地" |
|||
prop="destinationAddressName" |
|||
label-width="155px"> |
|||
<el-cascader ref="qwmddname" |
|||
v-model="dataForm.destinationAddressCodes" |
|||
:options="options" |
|||
@change="destinationChangeHandle" |
|||
:props="{ checkStrictly: false, multiple: true, emitPath: true }"> |
|||
</el-cascader> |
|||
</el-form-item> |
|||
<el-form-item label="拟去往目的地详细地址" |
|||
prop="destinationAddressDetail" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.destinationAddressDetail" |
|||
placeholder="去往目的地详细地址" |
|||
maxlength="200" |
|||
clearable></el-input> |
|||
</el-form-item> |
|||
</div> |
|||
<div v-if="showFlagOut"> |
|||
<el-form-item label="居住地关联人" |
|||
prop="relationPeople" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.relationPeople" |
|||
placeholder="居住地关联人" |
|||
maxlength="20" |
|||
clearable |
|||
@keyup.native="btKeyUpRelationPeople"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="关联人联系电话" |
|||
prop="relationPeopleMobile" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.relationPeopleMobile" |
|||
placeholder="关联人联系电话" |
|||
clearable |
|||
maxlength="11" |
|||
@keyup.native="btKeyUpRelationPeopleMobile"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="疫情风险等级" |
|||
prop="riskGrade" |
|||
label-width="155px"> |
|||
<el-select v-model="dataForm.riskGrade" |
|||
placeholder="现居住地疫情风险等级"> |
|||
<el-option v-for="item in riskGradeeArr" |
|||
:key="item.dictValue" |
|||
:label="item.dictName" |
|||
:value="item.dictValue"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="拟返回平阴时间" |
|||
prop="goBarkTime" |
|||
label-width="155px"> |
|||
<el-date-picker v-model="dataForm.goBarkTime" |
|||
type="date" |
|||
placeholder="返回平阴时间" |
|||
label-width="155px" |
|||
value-format="yyyy-MM-dd" |
|||
format="yyyy-MM-dd" |
|||
style="width:200px"> |
|||
</el-date-picker> |
|||
</el-form-item> |
|||
<el-form-item label="现居住地" |
|||
prop="outLiveAddressName" |
|||
label-width="155px"> |
|||
<el-cascader ref="zwjzdname" |
|||
v-model="dataForm.outLiveAddressCodes" |
|||
:options="options" |
|||
@change="outLiveAddressChangeHandle" |
|||
:props="{ checkStrictly: false, multiple: true, emitPath: true }"> |
|||
</el-cascader> |
|||
</el-form-item> |
|||
<el-form-item label="现居住地详细地址" |
|||
prop="outLiveAddressDetail" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.outLiveAddressDetail" |
|||
placeholder="现居住地详细地址" |
|||
maxlength="200" |
|||
clearable></el-input> |
|||
</el-form-item> |
|||
</div> |
|||
<el-form-item label="社区/村庄" |
|||
prop="community" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.community" |
|||
placeholder="社区/村庄"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="网格名称" |
|||
prop="gridName" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.gridName" |
|||
placeholder="网格名称"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="小区" |
|||
prop="plot" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.plot" |
|||
placeholder="小区"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="楼号" |
|||
prop="buildingNo" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.buildingNo" |
|||
placeholder="楼号"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="单元" |
|||
prop="unit" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.unit" |
|||
placeholder="单元"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="房间号" |
|||
prop="roomNo" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.roomNo" |
|||
placeholder="房间号"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="房屋性质" |
|||
prop="houseProperty" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.houseProperty" |
|||
placeholder="房屋性质"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="家庭保障情况" |
|||
prop="familySecurity" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.familySecurity" |
|||
placeholder="家庭保障情况"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="居住情况" |
|||
prop="livingSituation" |
|||
label-width="155px"> |
|||
<el-input v-model="dataForm.livingSituation" |
|||
placeholder="居住情况"></el-input> |
|||
</el-form-item> |
|||
</el-form> |
|||
<template slot="footer"> |
|||
<el-button @click="visible = false">{{ $t('cancel') }}</el-button> |
|||
</template> |
|||
</el-dialog> |
|||
</template> |
|||
|
|||
<script> |
|||
import debounce from 'lodash/debounce' |
|||
|
|||
export default { |
|||
data () { |
|||
return { |
|||
visible: false, |
|||
dataForm: { |
|||
userName: '', |
|||
idCard: '', |
|||
mobile: '', |
|||
householdRegisterCode: '', |
|||
householdRegisterName: '', |
|||
householdRegisterDetail: '', |
|||
liveAddressCode: '', |
|||
liveAddressName: '', |
|||
liveAddressDetail: '', |
|||
relationPeople: '', |
|||
relationPeopleMobile: '', |
|||
outLiveAddressCode: '', |
|||
outLiveAddressName: '', |
|||
outLiveAddressDetail: '', |
|||
returnState: '1', |
|||
householdRegisterCodes: [], |
|||
liveAddressCodes: [], |
|||
outLiveAddressCodes: [], |
|||
leaveTime: '', |
|||
destinationAddressName: '', |
|||
destinationAddressCode: '', |
|||
destinationAddressDetail: '', |
|||
destinationAddressCodes: [], |
|||
riskGrade: '', |
|||
goBarkTime: '', |
|||
gender: '', |
|||
bloodType: '', |
|||
nation: '', |
|||
formerName: '', |
|||
birthday: '', |
|||
height: '', |
|||
standardOfCulture: '', |
|||
health: '', |
|||
maritalStatus: '', |
|||
relation: '', |
|||
nationality: '', |
|||
politicsStatus: '', |
|||
faith: '', |
|||
graduateSchool: '', |
|||
professional: '', |
|||
workStatus: '', |
|||
industryCategory: '', |
|||
workUnits: '', |
|||
military: '', |
|||
peopleCategories: '', |
|||
specialCrowd: '', |
|||
car: '', |
|||
carNo: '', |
|||
hushaiStatus: '', |
|||
nativePlace: '', |
|||
community: '', |
|||
gridName: '', |
|||
plot: '', |
|||
buildingNo: '', |
|||
unit: '', |
|||
roomNo: '', |
|||
houseProperty: '', |
|||
familySecurity: '', |
|||
livingSituation: '' |
|||
}, |
|||
returnStateArr: [ |
|||
{ dictValue: '1', dictName: '在平阴' }, |
|||
{ dictValue: '2', dictName: '在外地' } |
|||
], |
|||
options: [], |
|||
liveOptions: [], |
|||
isAble: false, |
|||
showFlagIn: true, |
|||
showFlagOut: true, |
|||
riskGradeeArr: [ |
|||
{ dictValue: '1', dictName: '低风险' }, |
|||
{ dictValue: '2', dictName: '中风险' }, |
|||
{ dictValue: '3', dictName: '高风险' } |
|||
], |
|||
gender: [ |
|||
{ dictValue: '男', dictName: '男' }, |
|||
{ dictValue: '女', dictName: '女' }, |
|||
], |
|||
vueLoading: true |
|||
} |
|||
}, |
|||
computed: { |
|||
dataRule () { |
|||
return { |
|||
userName: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
], |
|||
idCard: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' }, |
|||
{ pattern: /(^\d{15}$)|bai(^\d{18}$)|(^\d{17}(\d|X|x)$)/, message: '请输入正确身份证号', trigger: 'blur' } |
|||
] |
|||
} |
|||
} |
|||
}, |
|||
methods: { |
|||
init () { |
|||
this.visible = true |
|||
this.isAble = true |
|||
this.vueLoading = true |
|||
// 清空组织树选中 |
|||
this.dataForm.destinationAddressCodes = [] |
|||
// this.getOptions() |
|||
this.getLiveOptions() |
|||
this.vueLoading=false |
|||
this.$nextTick(() => { |
|||
this.$refs['dataForm'].resetFields() |
|||
if (this.dataForm.id) { |
|||
this.getInfo() |
|||
} |
|||
}) |
|||
}, |
|||
householdRegisterChangeHandle (value, selectedData) { |
|||
let householdRegisterCode = '' |
|||
let householdRegisterName = '' |
|||
var householdRegisterCodeArr = this.$refs['hjdname'].currentValue |
|||
var householdRegisterNameArr = this.$refs['hjdname'].currentLabels |
|||
for (var i = 0; i < householdRegisterCodeArr.length; i++) { |
|||
if (i === householdRegisterCodeArr.length - 1) { |
|||
householdRegisterCode += householdRegisterCodeArr[i] |
|||
} else { |
|||
householdRegisterCode += householdRegisterCodeArr[i] + ',' |
|||
} |
|||
} |
|||
for (var j = 0; j < householdRegisterNameArr.length; j++) { |
|||
if (j === householdRegisterNameArr.length - 1) { |
|||
householdRegisterName += householdRegisterNameArr[j] |
|||
} else { |
|||
householdRegisterName += householdRegisterNameArr[j] + '/' |
|||
} |
|||
} |
|||
this.dataForm.householdRegisterCode = householdRegisterCode |
|||
this.dataForm.householdRegisterName = householdRegisterName |
|||
}, |
|||
liveAddressChangeHandle (value, selectedData) { |
|||
let liveAddressCode = '' |
|||
let liveAddressName = '' |
|||
var liveAddressCodeArr = this.$refs['jzdname'].currentValue |
|||
var liveAddressNameArr = this.$refs['jzdname'].currentLabels |
|||
for (var i = 0; i < liveAddressCodeArr.length; i++) { |
|||
if (i === liveAddressCodeArr.length - 1) { |
|||
liveAddressCode += liveAddressCodeArr[i] |
|||
} else { |
|||
liveAddressCode += liveAddressCodeArr[i] + ',' |
|||
} |
|||
} |
|||
for (var j = 0; j < liveAddressNameArr.length; j++) { |
|||
if (j === liveAddressNameArr.length - 1) { |
|||
liveAddressName += liveAddressNameArr[j] |
|||
} else { |
|||
liveAddressName += liveAddressNameArr[j] + '/' |
|||
} |
|||
} |
|||
this.dataForm.liveAddressCode = liveAddressCode |
|||
this.dataForm.liveAddressName = liveAddressName |
|||
}, |
|||
outLiveAddressChangeHandle (value, selectedData) { |
|||
let outLiveAddressCode = '' |
|||
let outLiveAddressName = '' |
|||
var outLiveAddressCodeArr = this.$refs['zwjzdname'].currentValue |
|||
var outLiveAddressNameArr = this.$refs['zwjzdname'].currentLabels |
|||
for (var i = 0; i < outLiveAddressCodeArr.length; i++) { |
|||
if (i === outLiveAddressCodeArr.length - 1) { |
|||
outLiveAddressCode += outLiveAddressCodeArr[i] |
|||
} else { |
|||
outLiveAddressCode += outLiveAddressCodeArr[i] + ',' |
|||
} |
|||
} |
|||
for (var j = 0; j < outLiveAddressNameArr.length; j++) { |
|||
if (j === outLiveAddressNameArr.length - 1) { |
|||
outLiveAddressName += outLiveAddressNameArr[j] |
|||
} else { |
|||
outLiveAddressName += outLiveAddressNameArr[j] + '/' |
|||
} |
|||
} |
|||
this.dataForm.outLiveAddressCode = outLiveAddressCode |
|||
this.dataForm.outLiveAddressName = outLiveAddressName |
|||
}, |
|||
destinationChangeHandle (value, selectedData) { |
|||
let destinationAddressCode = '' |
|||
let destinationAddressName = '' |
|||
var destinationAddressCodeArr = this.$refs['qwmddname'].currentValue |
|||
var destinationAddressNameArr = this.$refs['qwmddname'].currentLabels |
|||
for (var i = 0; i < destinationAddressCodeArr.length; i++) { |
|||
if (i === destinationAddressCodeArr.length - 1) { |
|||
destinationAddressCode += destinationAddressCodeArr[i] |
|||
} else { |
|||
destinationAddressCode += destinationAddressCodeArr[i] + ',' |
|||
} |
|||
} |
|||
for (var j = 0; j < destinationAddressNameArr.length; j++) { |
|||
if (j === destinationAddressNameArr.length - 1) { |
|||
destinationAddressName += destinationAddressNameArr[j] |
|||
} else { |
|||
destinationAddressName += destinationAddressNameArr[j] + '/' |
|||
} |
|||
} |
|||
this.dataForm.destinationAddressCode = destinationAddressCode |
|||
this.dataForm.destinationAddressName = destinationAddressName |
|||
}, |
|||
getOptions () { |
|||
this.$http |
|||
.get(`sys/select/getSysArea`) |
|||
.then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.options = res.data |
|||
this.vueLoading = false |
|||
this.isAble = false |
|||
}) |
|||
.catch(() => { |
|||
}) |
|||
}, |
|||
getLiveOptions () { |
|||
this.$http |
|||
.get(`sys/select/getLiveArea`) |
|||
.then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.liveOptions = res.data |
|||
}) |
|||
.catch(() => { |
|||
}) |
|||
}, |
|||
// 获取信息 |
|||
getInfo () { |
|||
this.$http.get(`sys/epidemicuserinfo/${this.dataForm.id}`).then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.dataForm = { |
|||
...this.dataForm, |
|||
...res.data |
|||
} |
|||
if (this.dataForm.returnState === '1') { |
|||
// 在平阴 |
|||
this.showFlagIn = true |
|||
this.showFlagOut = false |
|||
} else { |
|||
this.showFlagIn = false |
|||
this.showFlagOut = true |
|||
} |
|||
}).catch(() => { |
|||
}) |
|||
}, |
|||
// 表单提交 |
|||
dataFormSubmitHandle: debounce(function () { |
|||
this.$refs['dataForm'].validate((valid) => { |
|||
if (!valid) { |
|||
return false |
|||
} |
|||
this.isAble = true |
|||
this.$http[!this.dataForm.id ? 'post' : 'put']('sys/epidemicuserinfo/', this.dataForm).then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
this.isAble = false |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.$message({ |
|||
message: this.$t('prompt.success'), |
|||
type: 'success', |
|||
duration: 500, |
|||
onClose: () => { |
|||
this.visible = false |
|||
this.$emit('refreshDataList') |
|||
} |
|||
}) |
|||
}).catch(() => { |
|||
}) |
|||
}) |
|||
}, 1000, { 'leading': true, 'trailing': false }), |
|||
btKeyUpIdCard (e) { |
|||
e.target.value = e.target.value.replace(/[`~!@#$%^&*()_+=<>?:"{}|·~!@#¥%……&*()——+={}|《》?:“”【】、;‘’,。、]/g, '') |
|||
this.dataForm.idCard = e.target.value |
|||
}, |
|||
btKeyUpMobile (e) { |
|||
e.target.value = e.target.value.replace(/[`~!@#$%^&*()_+=<>?:"{}|·~!@#¥%……&*()——+={}|《》?:“”【】、;‘’,。、]/g, '') |
|||
this.dataForm.mobile = e.target.value |
|||
}, |
|||
btKeyUpRelationPeopleMobile (e) { |
|||
e.target.value = e.target.value.replace(/[`~!@#$%^&*()_+=<>?:"{}|·~!@#¥%……&*()——+={}|《》?:“”【】、;‘’,。、]/g, '') |
|||
this.dataForm.relationPeopleMobile = e.target.value |
|||
}, |
|||
btKeyUpUserName (e) { |
|||
e.target.value = e.target.value.replace(/[`~!@#$%^&*()_+=<>?:"{}|·~!@#¥%……&*()——+={}|《》?:“”【】、;‘’,。、]/g, '') |
|||
this.dataForm.userName = e.target.value |
|||
}, |
|||
btKeyUpRelationPeople (e) { |
|||
e.target.value = e.target.value.replace(/[`~!@#$%^&*()_+=<>?:"{}|·~!@#¥%……&*()——+={}|《》?:“”【】、;‘’,。、]/g, '') |
|||
this.dataForm.relationPeople = e.target.value |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
@ -0,0 +1,394 @@ |
|||
<template> |
|||
<el-card shadow="never" |
|||
class="aui-card--fill"> |
|||
<div class="mod-demo__epidemicreportuserinfo}"> |
|||
<el-form :inline="true" |
|||
:model="dataForm" |
|||
@keyup.enter.native="getDataListSearch()"> |
|||
<el-form-item label="姓名" |
|||
prop="userName" |
|||
label-width="90px"> |
|||
<el-input v-model="dataForm.userName" |
|||
placeholder="姓名" |
|||
clearable |
|||
maxlength="49" |
|||
@keyup.native="btKeyUpUsername" |
|||
style="width:200px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="身份证" |
|||
prop="idCard" |
|||
label-width="90px"> |
|||
<el-input v-model="dataForm.idCard" |
|||
placeholder="身份证" |
|||
clearable |
|||
maxlength="49" |
|||
@keyup.native="btKeyUpIdCard" |
|||
style="width:200px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="手机号" |
|||
prop="moblie" |
|||
label-width="70px"> |
|||
<el-input v-model="dataForm.mobile" |
|||
placeholder="手机号" |
|||
clearable |
|||
maxlength="11" |
|||
@keyup.native="btKeyUpMobile" |
|||
style="width:200px"></el-input> |
|||
</el-form-item> |
|||
<el-form-item> |
|||
<el-button type="primary" |
|||
@click="getDataListSearch()">{{ $t('query') }}</el-button> |
|||
</el-form-item> |
|||
<!-- <el-form-item>--> |
|||
<!-- <el-button type="primary" @click="exports()">{{ $t('export') }}</el-button>--> |
|||
<!-- </el-form-item>--> |
|||
<!-- <el-form-item> |
|||
<el-button type="primary" |
|||
@click="addOrUpdateHandle()">{{ $t('add') }}</el-button> |
|||
</el-form-item> --> |
|||
<el-form-item> |
|||
<el-button v-if="$hasPermission('demo:epidemicreportuserinfo:delete')" |
|||
type="danger" |
|||
@click="deleteHandle()">{{ $t('deleteBatch') }}</el-button> |
|||
</el-form-item> |
|||
</el-form> |
|||
<el-table v-loading="dataListLoading" |
|||
:data="dataList" |
|||
border |
|||
@selection-change="dataListSelectionChangeHandle" |
|||
style="width: 100%;"> |
|||
<el-table-column label="序号" |
|||
header-align="center" |
|||
align="center" |
|||
width="50px"> |
|||
<template slot-scope="scope"> |
|||
{{scope.$index+1}} |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="userName" |
|||
label="姓名" |
|||
header-align="center" |
|||
show-overflow-tooltip |
|||
align="center" |
|||
width="150"></el-table-column> |
|||
<el-table-column prop="idCard" |
|||
label="身份证号" |
|||
header-align="center" |
|||
align="center" |
|||
width="170" |
|||
show-overflow-tooltip></el-table-column> |
|||
<el-table-column prop="mobile" |
|||
label="联系方式" |
|||
header-align="center" |
|||
align="center" |
|||
width="150"></el-table-column> |
|||
<el-table-column prop="gender" |
|||
label="性别" |
|||
header-align="center" |
|||
align="center" |
|||
width="80"></el-table-column> |
|||
<el-table-column prop="birthday" |
|||
label="出生年月" |
|||
header-align="center" |
|||
align="center" |
|||
width="120" |
|||
show-overflow-tooltip></el-table-column> |
|||
<el-table-column prop="city" |
|||
label="县/区" |
|||
header-align="center" |
|||
align="center" |
|||
width="150" |
|||
show-overflow-tooltip></el-table-column> |
|||
<el-table-column prop="street" |
|||
label="街道/乡镇" |
|||
header-align="center" |
|||
align="center" |
|||
width="150" |
|||
show-overflow-tooltip></el-table-column> |
|||
<el-table-column prop="community" |
|||
label="社区/村庄" |
|||
header-align="center" |
|||
align="center" |
|||
width="180" |
|||
show-overflow-tooltip></el-table-column> |
|||
<el-table-column prop="gridName" |
|||
label="网格名称" |
|||
header-align="center" |
|||
align="center" |
|||
width="110"></el-table-column> |
|||
<el-table-column prop="plot" |
|||
label="小区" |
|||
header-align="center" |
|||
align="center" |
|||
width="180" |
|||
show-overflow-tooltip></el-table-column> |
|||
<el-table-column prop="buildingNo" |
|||
label="楼号" |
|||
header-align="center" |
|||
align="center" |
|||
width="100" |
|||
show-overflow-tooltip></el-table-column> |
|||
<el-table-column prop="unit" |
|||
label="单元号" |
|||
header-align="center" |
|||
align="center" |
|||
width="100"></el-table-column> |
|||
<el-table-column prop="roomNo" |
|||
label="房间号" |
|||
header-align="center" |
|||
align="center" |
|||
width="100"></el-table-column> |
|||
<el-table-column prop="vaccinationNum" |
|||
label="已接种" |
|||
header-align="center" |
|||
align="center" |
|||
width="180"> |
|||
<template slot-scope="scope"> |
|||
<el-tag v-if="scope.row.vaccinationState == '0'" size="small" type="danger">未接种</el-tag> |
|||
<el-tag v-if="scope.row.vaccinationState == '2'" size="small" type="success">接种完成</el-tag> |
|||
<el-tag v-if="scope.row.vaccinationState == '1'" size="small" type="success">第 {{scope.row.vaccinationNum}} 针</el-tag> |
|||
</template> |
|||
</el-table-column> |
|||
<el-table-column prop="createdTime" |
|||
label="录入时间" |
|||
header-align="center" |
|||
align="center" |
|||
width="180"></el-table-column> |
|||
<el-table-column :label="$t('handle')" |
|||
fixed="right" |
|||
header-align="center" |
|||
align="center" |
|||
width="150"> |
|||
<template slot-scope="scope"> |
|||
<!-- <el-button type="text" |
|||
size="small" |
|||
@click="lookHandle(scope.row.id)">{{'查看'}}</el-button> --> |
|||
<el-button type="text" |
|||
size="small" |
|||
@click="addOrUpdateHandle(scope.row.infoId)">接种登记</el-button> |
|||
<!-- <el-button type="text" size="small" @click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button>--> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<el-pagination :current-page="page" |
|||
:page-sizes="[10, 20, 50, 100]" |
|||
:page-size="limit" |
|||
:total="total" |
|||
layout="total, sizes, prev, pager, next, jumper" |
|||
@size-change="pageSizeChangeHandle" |
|||
@current-change="pageCurrentChangeHandle"> |
|||
</el-pagination> |
|||
<!-- 弹窗, 新增 / 修改 --> |
|||
<add-or-update ref="addOrUpdate" |
|||
@refreshDataList="getDataList" |
|||
:data-form="dataForm"></add-or-update> |
|||
<infoDetail v-if="detailVisible" |
|||
ref="infoDetail" |
|||
@refreshDataList="getDataList"></infoDetail> |
|||
</div> |
|||
</el-card> |
|||
</template> |
|||
|
|||
<script> |
|||
import mixinViewModule from '@/mixins/view-module' |
|||
import AddOrUpdate from './regist' |
|||
import InfoDetail from './epidemicreportuserinfoDetail' |
|||
export default { |
|||
mixins: [mixinViewModule], |
|||
|
|||
data () { |
|||
return { |
|||
mixinViewModuleOptions: { |
|||
getDataListURL: 'sys/epidemicuserinfo/getEpidemicPage', |
|||
getDataListIsPage: true, |
|||
deleteURL: 'sys/epidemicuserinfo', |
|||
deleteIsBatch: true |
|||
}, |
|||
dataForm: { |
|||
infoId: '', |
|||
inoutId: '', |
|||
city: '', |
|||
street: '', |
|||
community: '', |
|||
gridName: '', |
|||
plot: '', |
|||
buildingNo: '', |
|||
unit: '', |
|||
roomNo: '', |
|||
userName: '', |
|||
idCard: '', |
|||
mobile: '', |
|||
gender: '', |
|||
birthday: '' |
|||
}, |
|||
publicPath: process.env.BASE_URL, |
|||
pickerBeginDateBefore: { |
|||
disabledDate: (time) => { |
|||
let beginDateVal = this.dataForm.endTime |
|||
if (beginDateVal) { |
|||
return time.getTime() > new Date(beginDateVal + ' 00:00:00').getTime() |
|||
} |
|||
} |
|||
}, |
|||
pickerBeginDateAfter: { |
|||
disabledDate: (time) => { |
|||
let EndDateVal = this.dataForm.startTime |
|||
if (EndDateVal) { |
|||
return time.getTime() < new Date(EndDateVal + ' 00:00:00').getTime() |
|||
} |
|||
} |
|||
}, |
|||
ids: [], |
|||
options: [], |
|||
outStreetArr: [], |
|||
returnStateArr: [ |
|||
{ dictValue: 1, dictName: '在本地' }, |
|||
{ dictValue: 2, dictName: '在外地' } |
|||
], |
|||
exportTemplate: false, |
|||
uploeadLoeading: false, |
|||
dialogVisibleExcel: false, |
|||
detailVisible: false |
|||
} |
|||
}, |
|||
created: function () { |
|||
this.getDataList() |
|||
this.getOptions() |
|||
// 乡镇下拉框赋值 |
|||
this.getDailyTypeArrInfo() |
|||
}, |
|||
components: { |
|||
AddOrUpdate, |
|||
InfoDetail |
|||
}, |
|||
watch: { |
|||
ids: function (val) { |
|||
if (val.length === 0) { |
|||
this.dataForm.outCode = '' |
|||
} else { |
|||
this.dataForm.outCode = this.ids[val.length - 1] |
|||
} |
|||
} |
|||
}, |
|||
methods: { |
|||
// 查看 |
|||
lookHandle (id) { |
|||
this.detailVisible = true |
|||
this.$nextTick(() => { |
|||
this.$refs.infoDetail.dataForm.id = id |
|||
this.$refs.infoDetail.init() |
|||
}) |
|||
}, |
|||
// 获取乡镇下拉信息(传参:4代表查“街道”) |
|||
getDailyTypeArrInfo () { |
|||
this.$http.get(`sys/epidemicreportuserinfo/selectStreet/4`).then(({ data: res }) => { |
|||
this.outStreetArr = res |
|||
}).catch(() => { }) |
|||
}, |
|||
// 乡镇取值变化事件 |
|||
selectModel (event) { |
|||
this.outStreetArr.find((item) => { |
|||
if (item.dictValue === event) { |
|||
this.dataForm.outStreet = item.dictValue |
|||
} |
|||
}) |
|||
}, |
|||
getOptions () { |
|||
this.$http |
|||
.get(`sys/select/getSysArea`) |
|||
.then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.options = res.data |
|||
}) |
|||
.catch(() => { }) |
|||
}, |
|||
btKeyUpUsername (e) { |
|||
e.target.value = e.target.value.replace(/[`~!@#$%^&*()_+=<>?:"{}|·~!@#¥%……&*()——+={}|《》?:“”【】、;‘’,。、]/g, '') |
|||
this.dataForm.userName = e.target.value |
|||
}, |
|||
btKeyUpIdCard (e) { |
|||
e.target.value = e.target.value.replace(/[`~!@#$%^&*()_+=<>?:"{}|·~!@#¥%……&*()——+={}|《》?:“”【】、;‘’,。、]/g, '') |
|||
this.dataForm.idCard = e.target.value |
|||
}, |
|||
btKeyUpMobile (e) { |
|||
e.target.value = e.target.value.replace(/[`~!@#$%^&*()_+=<>?:"{}|·~!@#¥%……&*()——+={}|《》?:“”【】、;‘’,。、]/g, '') |
|||
this.dataForm.mobile = e.target.value |
|||
}, |
|||
beforeUpload (file) { |
|||
this.uploeadLoeading = true |
|||
}, |
|||
errorExceed (file, fileList) { |
|||
this.uploeadLoeading = false |
|||
this.$message.error('上传失败请重试') |
|||
}, |
|||
uploadSuccess (response, file, fileList) { |
|||
this.uploeadLoeading = false |
|||
this.$refs.upload.clearFiles() |
|||
if (response.code !== 0 || (response.data !== null && response.data.length > 0)) { |
|||
this.errordataList = response.data |
|||
if (this.errordataList != null && this.errordataList.length > 0) { |
|||
this.$confirm(response.data, '提示', { |
|||
confirmButtonText: '下载', |
|||
cancelButtonText: '取消', |
|||
type: 'warning' |
|||
}).then(() => { |
|||
var params = qs.stringify({ |
|||
'token': Cookies.get('token'), |
|||
...this.dataForm |
|||
}) |
|||
window.location.href = `${window.SITE_CONFIG['apiURL']}${this.mixinViewModuleOptions.exportErrorInfoURL}?${params}` |
|||
this.$message({ |
|||
type: 'success', |
|||
message: '下载成功' |
|||
}); |
|||
}).catch(() => { |
|||
this.$message({ |
|||
type: 'info', |
|||
message: '已取消下载' |
|||
}); |
|||
}); |
|||
} else { |
|||
this.$message.error(response.msg) |
|||
} |
|||
this.getDataList() |
|||
return |
|||
} |
|||
this.$message({ |
|||
message: '导入成功', |
|||
type: 'success', |
|||
duration: 1000, |
|||
onClose: () => { |
|||
this.getDataList() |
|||
} |
|||
}) |
|||
}, |
|||
returnStateFormat (row, column) { |
|||
if (row.returnState === 1 || row.returnState === '1') { |
|||
return '在本地' |
|||
} else if (row.returnState === 2 || row.returnState === '2') { |
|||
return '在外地' |
|||
} else { |
|||
return '' |
|||
} |
|||
}, |
|||
returnriskGradeFormat (row, column) { |
|||
//1:低风险,2:中风险,3:高风险 |
|||
if (row.riskGrade === 1 || row.riskGrade === '1') { |
|||
return '低风险' |
|||
} else if (row.returnState === 2 || row.returnState === '2') { |
|||
return '中风险' |
|||
} else if (row.returnState === 3 || row.returnState === '3') { |
|||
return '高风险' |
|||
} else { |
|||
return '' |
|||
} |
|||
}, |
|||
//打开导出弹框 |
|||
exports () { |
|||
this.dialogVisibleExcel = true; |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
@ -0,0 +1,381 @@ |
|||
<template> |
|||
<el-dialog :visible.sync="visible" |
|||
title="接种登记" |
|||
:close-on-click-modal="false" |
|||
:close-on-press-escape="false"> |
|||
<el-form v-loading="vueLoading" |
|||
element-loading-text="拼命加载中" |
|||
element-loading-spinner="el-icon-loading" |
|||
:model="dataForm" |
|||
ref="dataForm" |
|||
:rules="dataRule" |
|||
@keyup.enter.native="dataFormSubmitHandle()" |
|||
:label-width="$i18n.locale === 'en-US' ? '120px' : '80px'"> |
|||
<el-form-item label="人员姓名" |
|||
prop="realName" |
|||
> |
|||
<el-input v-model="dataForm.realName" |
|||
placeholder="人员姓名" |
|||
maxlength="20" |
|||
:disabled="true" |
|||
@keyup.native="btKeyUpUserName"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="联系方式" |
|||
prop="mobile" |
|||
> |
|||
<el-input v-model="dataForm.mobile" |
|||
placeholder="联系方式" |
|||
maxlength="11" |
|||
:disabled="true" |
|||
@keyup.native="btKeyUpMobile"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="身份证号" |
|||
prop="identityNo" |
|||
:disabled="true" |
|||
> |
|||
<el-input v-model="dataForm.identityNo" |
|||
placeholder="身份证" |
|||
maxlength="49" |
|||
:disabled="true" |
|||
@keyup.native="btKeyUpIdCard"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="接种时间" |
|||
prop="vaccinationTime" |
|||
> |
|||
<el-date-picker v-model="dataForm.vaccinationTime" |
|||
type="date" |
|||
value-format="yyyy-MM-dd" |
|||
format="yyyy-MM-dd" |
|||
placeholder="接种时间"> |
|||
</el-date-picker> |
|||
</el-form-item> |
|||
<el-form-item label="生产企业" |
|||
prop="companyId" |
|||
> |
|||
<el-select v-model="dataForm.companyId" |
|||
filterable @change="companyChange($event)" |
|||
placeholder="请选择"> |
|||
<el-option v-for="item in companyOptions" |
|||
:key="item.value" |
|||
:label="item.label" |
|||
:value="item.value"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="剂次" |
|||
prop="dose" |
|||
> |
|||
<el-input-number v-model="dataForm.dose" |
|||
:min="1" :disabled="doseAble" |
|||
:max="maxDose" @change="doseChange($event)" |
|||
label="剂次,第几针"></el-input-number> |
|||
</el-form-item> |
|||
<!-- <template> |
|||
<el-form-item label="接种疫苗" |
|||
prop="vaccineId" |
|||
> |
|||
<el-select v-model="dataForm.vaccineId" |
|||
filterable |
|||
placeholder="请选择"> |
|||
<el-option v-for="item in options" |
|||
:key="item.value" |
|||
:label="item.label" |
|||
:value="item.value"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</template> --> |
|||
<el-form-item label="疫苗批次" |
|||
prop="batchNo" |
|||
> |
|||
<el-input v-model="dataForm.batchNo" |
|||
placeholder="疫苗批次" |
|||
@keyup.native="btKeyUpIdCard"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="接种地点" |
|||
prop="siteId"> |
|||
<el-select v-model="dataForm.siteId" |
|||
filterable |
|||
placeholder="请选择"> |
|||
<el-option v-for="item in siteOptions" |
|||
:key="item.value" |
|||
:label="item.label" |
|||
:value="item.value"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
<el-form-item label="接种状态" |
|||
prop="vaccinationState"> |
|||
<el-select v-model="dataForm.vaccinationState" |
|||
filterable |
|||
placeholder="请选择"> |
|||
<el-option v-for="item in vaccinationStateOptions" |
|||
:key="item.value" |
|||
:label="item.label" |
|||
:value="item.value"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-form> |
|||
|
|||
<!-- --> |
|||
<template slot="footer"> |
|||
<el-button @click="visible = false">{{ $t('cancel') }}</el-button> |
|||
<el-button type="primary" |
|||
@click.native="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button> |
|||
</template> |
|||
</el-dialog> |
|||
</template> |
|||
|
|||
<script> |
|||
import debounce from 'lodash/debounce' |
|||
|
|||
export default { |
|||
props: { |
|||
dataForm: { |
|||
type: Object |
|||
} |
|||
}, |
|||
mounted: function () { |
|||
// console.log(this.dataForm) |
|||
}, |
|||
data () { |
|||
return { |
|||
visible: false, |
|||
doseAble: true, |
|||
maxDose: 1, |
|||
historyCompanyId: 0, |
|||
dataForm: { |
|||
realName: '', |
|||
identityNo: '', |
|||
mobile: '', |
|||
sex: '', |
|||
county: '', |
|||
street: '', |
|||
streetId: '', |
|||
community: '', |
|||
grid: '', |
|||
villageName: '', |
|||
dwellingPlace: '', |
|||
vaccinationTime: '', |
|||
age: '', |
|||
dose: 1, |
|||
vaccineId: '', |
|||
companyId: '', |
|||
siteId: '', |
|||
batchNo: '', |
|||
distinctNum: 0, |
|||
vaccinationNum: 0, |
|||
vaccinationState: 1 |
|||
}, |
|||
options: [], |
|||
companyOptions: [], |
|||
siteOptions: [], |
|||
vaccinationStateOptions: [ |
|||
{value: 0, label: '未接种'}, |
|||
{value: 1, label: '接种中'}, |
|||
{value: 2, label: '接种完成'}, |
|||
], |
|||
isAble: false, |
|||
showFlagIn: true, |
|||
showFlagOut: true, |
|||
gender: [ |
|||
{ dictValue: '男', dictName: '男' }, |
|||
{ dictValue: '女', dictName: '女' }, |
|||
], |
|||
vueLoading: true, |
|||
id: '' |
|||
} |
|||
}, |
|||
computed: { |
|||
dataRule () { |
|||
return { |
|||
userName: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
], |
|||
vaccinationTime: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
], |
|||
dose: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
], |
|||
vaccineId: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
], |
|||
siteId: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
], |
|||
companyId: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
] |
|||
} |
|||
} |
|||
}, |
|||
methods: { |
|||
init () { |
|||
this.visible = true |
|||
this.isAble = true |
|||
this.vueLoading = true |
|||
// this.getOptions() |
|||
this.getSiteOptions() |
|||
this.getCompanyOptions() |
|||
this.$nextTick(() => { |
|||
this.$refs['dataForm'].resetFields() |
|||
if (this.dataForm.id) { |
|||
this.getInfo() |
|||
} |
|||
}) |
|||
}, |
|||
getOptions () { |
|||
this.$http |
|||
.get(`sys/vaccinetype/getVaccineList`) |
|||
.then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.options = res.data |
|||
this.vueLoading = false |
|||
this.isAble = false |
|||
}) |
|||
.catch(() => { |
|||
}) |
|||
}, |
|||
getSiteOptions () { |
|||
this.$http |
|||
.get(`sys/vaccinationsite/getSiteList`) |
|||
.then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.siteOptions = res.data |
|||
this.vueLoading = false |
|||
this.isAble = false |
|||
}) |
|||
.catch(() => { |
|||
}) |
|||
}, |
|||
getCompanyOptions () { |
|||
this.$http |
|||
.get(`sys/vaccinecompany/getCompantyList`) |
|||
.then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.companyOptions = res.data |
|||
this.vueLoading = false |
|||
this.isAble = false |
|||
}) |
|||
.catch(() => { |
|||
}) |
|||
}, |
|||
companyChange (event) { |
|||
this.$http.get(`sys/vaccinecompany/${event}`).then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.maxDose = res.data.maxDose |
|||
this.doseAble = false |
|||
}).catch(() => { }) |
|||
if (this.dataForm.distinctNum < 2){ |
|||
if (this.dataForm.dose === this.maxDose && this.dataForm.vaccinationNum + 1 === this.dataForm.dose && this.dataForm.companyId === this.historyCompanyId){ |
|||
this.dataForm.vaccinationState = 2 |
|||
} else { |
|||
this.dataForm.vaccinationState = 1 |
|||
} |
|||
} else { |
|||
this.dataForm.vaccinationState = 1 |
|||
} |
|||
}, |
|||
doseChange (event) { |
|||
if (this.dataForm.distinctNum < 2){ |
|||
if (event === this.maxDose && this.dataForm.vaccinationNum + 1 === event && this.dataForm.companyId === this.historyCompanyId){ |
|||
this.dataForm.vaccinationState = 2 |
|||
} else { |
|||
this.dataForm.vaccinationState = 1 |
|||
} |
|||
} else { |
|||
this.dataForm.vaccinationState = 1 |
|||
} |
|||
}, |
|||
// 获取信息 |
|||
getInfo () { |
|||
this.$http.get(`sys/epidemicuserinfo/getinfo/${this.dataForm.id}`).then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.id = this.dataForm.id |
|||
this.dataForm = {} |
|||
this.dataForm = { |
|||
...this.dataForm, |
|||
...res.data |
|||
} |
|||
// 处理后台long型默认值 |
|||
if (this.dataForm.companyId === 0) { |
|||
this.dataForm.companyId = '' |
|||
} |
|||
if (this.dataForm.siteId === 0) { |
|||
this.dataForm.siteId = '' |
|||
} |
|||
this.dataForm.vaccinationTime = new Date(new Date(new Date().getTime())) |
|||
if (this.dataForm.vaccinationState === 0) { |
|||
this.dataForm.vaccinationState = 1 |
|||
} |
|||
this.historyCompanyId = res.data.historyCompanyId |
|||
}).catch(() => { }) |
|||
}, |
|||
// 表单提交 |
|||
dataFormSubmitHandle: debounce(function () { |
|||
this.$refs['dataForm'].validate((valid) => { |
|||
if (!valid) { |
|||
return false |
|||
} |
|||
this.isAble = true |
|||
this.$http['post']('sys/vaccinationinfo/', this.dataForm).then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
this.isAble = false |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.putReigst() |
|||
this.$message({ |
|||
message: this.$t('prompt.success'), |
|||
type: 'success', |
|||
duration: 500, |
|||
onClose: () => { |
|||
this.visible = false |
|||
this.$emit('refreshDataList') |
|||
} |
|||
}) |
|||
}).catch(() => { |
|||
}) |
|||
}) |
|||
}, 1000, { 'leading': true, 'trailing': false }), |
|||
putReigst () { |
|||
this.$http.get(`sys/epidemicuserinfo/updateReigst/${this.id}`).then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
}).catch(() => { }) |
|||
}, |
|||
btKeyUpIdCard (e) { |
|||
e.target.value = e.target.value.replace(/[`~!@#$%^&*()_+=<>?:"{}|·~!@#¥%……&*()——+={}|《》?:“”【】、;‘’,。、]/g, '') |
|||
this.dataForm.idCard = e.target.value |
|||
}, |
|||
btKeyUpMobile (e) { |
|||
e.target.value = e.target.value.replace(/[`~!@#$%^&*()_+=<>?:"{}|·~!@#¥%……&*()——+={}|《》?:“”【】、;‘’,。、]/g, '') |
|||
this.dataForm.mobile = e.target.value |
|||
}, |
|||
btKeyUpRelationPeopleMobile (e) { |
|||
e.target.value = e.target.value.replace(/[`~!@#$%^&*()_+=<>?:"{}|·~!@#¥%……&*()——+={}|《》?:“”【】、;‘’,。、]/g, '') |
|||
this.dataForm.relationPeopleMobile = e.target.value |
|||
}, |
|||
btKeyUpUserName (e) { |
|||
e.target.value = e.target.value.replace(/[`~!@#$%^&*()_+=<>?:"{}|·~!@#¥%……&*()——+={}|《》?:“”【】、;‘’,。、]/g, '') |
|||
this.dataForm.userName = e.target.value |
|||
}, |
|||
btKeyUpRelationPeople (e) { |
|||
e.target.value = e.target.value.replace(/[`~!@#$%^&*()_+=<>?:"{}|·~!@#¥%……&*()——+={}|《》?:“”【】、;‘’,。、]/g, '') |
|||
this.dataForm.relationPeople = e.target.value |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
@ -0,0 +1,182 @@ |
|||
<template> |
|||
<el-dialog :visible.sync="visible" |
|||
:title="!dataForm.id ? $t('add') : $t('update')" |
|||
:close-on-click-modal="false" |
|||
:close-on-press-escape="false"> |
|||
<el-form :model="dataForm" |
|||
:rules="dataRule" |
|||
ref="dataForm" |
|||
@keyup.enter.native="dataFormSubmitHandle()" |
|||
:label-width="$i18n.locale === 'en-US' ? '120px' : '80px'"> |
|||
<el-form-item label="接种时间" |
|||
prop="vaccinationTime"> |
|||
<el-date-picker v-model="dataForm.vaccinationTime" |
|||
type="date" |
|||
value-format="yyyy-MM-dd" |
|||
format="yyyy-MM-dd" |
|||
placeholder="接种时间"> |
|||
</el-date-picker> |
|||
</el-form-item> |
|||
<el-form-item label="剂次" |
|||
prop="dose"> |
|||
<el-input-number v-model="dataForm.dose" |
|||
:min="1" |
|||
:max="2" |
|||
label="剂次,第几针"></el-input-number> |
|||
</el-form-item> |
|||
<el-form-item label="疫苗批次" |
|||
prop="batchNo"> |
|||
<el-input v-model="dataForm.batchNo" |
|||
placeholder="疫苗生产批次、批号"></el-input> |
|||
</el-form-item> |
|||
<template> |
|||
<el-form-item label="生产企业" |
|||
prop="companyId"> |
|||
<el-select v-model="dataForm.companyId" |
|||
filterable |
|||
placeholder="请选择"> |
|||
<el-option v-for="item in compantyOptions" |
|||
:key="item.value" |
|||
:label="item.label" |
|||
:value="item.value"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</template> |
|||
<el-form-item label="接种地点" |
|||
prop="siteId"> |
|||
<el-select v-model="dataForm.siteId" |
|||
filterable |
|||
placeholder="请选择"> |
|||
<el-option v-for="item in siteOptions" |
|||
:key="item.value" |
|||
:label="item.label" |
|||
:value="item.value"> |
|||
</el-option> |
|||
</el-select> |
|||
</el-form-item> |
|||
</el-form> |
|||
<template slot="footer"> |
|||
<el-button @click="visible = false">{{ $t('cancel') }}</el-button> |
|||
<el-button type="primary" |
|||
@click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button> |
|||
</template> |
|||
</el-dialog> |
|||
</template> |
|||
|
|||
<script> |
|||
import debounce from 'lodash/debounce' |
|||
export default { |
|||
data () { |
|||
return { |
|||
visible: false, |
|||
siteOptions: [], |
|||
compantyOptions: [], |
|||
dataForm: { |
|||
id: '', |
|||
dose: '', |
|||
companyId: '', |
|||
siteId: '', |
|||
vaccinationTime: '', |
|||
batchNo: '' |
|||
} |
|||
} |
|||
}, |
|||
computed: { |
|||
dataRule () { |
|||
return { |
|||
vaccinationTime: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
], |
|||
dose: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
], |
|||
companyId: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
], |
|||
siteId: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
] |
|||
} |
|||
} |
|||
}, |
|||
methods: { |
|||
init () { |
|||
this.getSiteOptions() |
|||
this.getCompantyOptions() |
|||
this.visible = true |
|||
this.$nextTick(() => { |
|||
this.$refs['dataForm'].resetFields() |
|||
if (this.dataForm.id) { |
|||
this.getInfo() |
|||
} |
|||
}) |
|||
}, |
|||
// 获取信息 |
|||
getInfo () { |
|||
this.$http.get(`sys/vaccinationinfo/${this.dataForm.id}`).then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.dataForm.id = res.data.id |
|||
this.dataForm.dose = res.data.dose |
|||
this.dataForm.companyId = res.data.companyId |
|||
this.dataForm.siteId = res.data.siteId |
|||
this.dataForm.batchNo = res.data.batchNo |
|||
this.dataForm.vaccinationTime = res.data.vaccinationTime |
|||
console.log(this.dataForm) |
|||
}).catch(() => { }) |
|||
}, |
|||
getSiteOptions () { |
|||
this.$http |
|||
.get(`sys/vaccinationsite/getSiteList`) |
|||
.then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.siteOptions = res.data |
|||
this.vueLoading = false |
|||
this.isAble = false |
|||
}) |
|||
.catch(() => { |
|||
}) |
|||
}, |
|||
getCompantyOptions () { |
|||
this.$http |
|||
.get(`sys/vaccinecompany/getCompantyList`) |
|||
.then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.compantyOptions = res.data |
|||
this.vueLoading = false |
|||
this.isAble = false |
|||
}) |
|||
.catch(() => { |
|||
}) |
|||
}, |
|||
// 表单提交 |
|||
dataFormSubmitHandle: debounce(function () { |
|||
this.$refs['dataForm'].validate((valid) => { |
|||
if (!valid) { |
|||
return false |
|||
} |
|||
this.$http[!this.dataForm.id ? 'post' : 'put']('sys/vaccinationinfo/', this.dataForm).then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.$message({ |
|||
message: this.$t('prompt.success'), |
|||
type: 'success', |
|||
duration: 500, |
|||
onClose: () => { |
|||
this.visible = false |
|||
this.$emit('refreshDataList') |
|||
} |
|||
}) |
|||
}).catch(() => { }) |
|||
}) |
|||
}, 1000, { 'leading': true, 'trailing': false }) |
|||
} |
|||
} |
|||
</script> |
|||
@ -0,0 +1,234 @@ |
|||
<template> |
|||
<el-card shadow="never" |
|||
class="aui-card--fill"> |
|||
<div class="mod-demo__vaccinationinfo}"> |
|||
<el-form :inline="true" |
|||
:model="dataForm" |
|||
@keyup.enter.native="getDataList()"> |
|||
<el-form-item label="姓名"> |
|||
<el-input v-model="dataForm.realName" |
|||
placeholder="请输入姓名" |
|||
clearable></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="手机号"> |
|||
<el-input v-model="dataForm.mobile" |
|||
placeholder="请输入手机号" |
|||
clearable></el-input> |
|||
</el-form-item> |
|||
<el-form-item> |
|||
<el-button type="primary" @click="getDataList()">{{ $t('query') }}</el-button> |
|||
</el-form-item> |
|||
<!-- <el-form-item> |
|||
<el-button type="primary" |
|||
@click="addOrUpdateHandle()">{{ $t('add') }}</el-button> |
|||
</el-form-item> --> |
|||
<!-- <el-form-item>--> |
|||
<!-- <el-button type="danger"--> |
|||
<!-- @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>--> |
|||
<!-- </el-form-item>--> |
|||
</el-form> |
|||
<el-table v-loading="dataListLoading" |
|||
:data="dataList" |
|||
border |
|||
@selection-change="dataListSelectionChangeHandle" |
|||
style="width: 100%;"> |
|||
<el-table-column type="selection" |
|||
header-align="center" |
|||
align="center" |
|||
width="50"></el-table-column> |
|||
<el-table-column prop="realName" |
|||
label="真实姓名" |
|||
header-align="center" |
|||
align="center"></el-table-column> |
|||
<el-table-column prop="identityNo" |
|||
label="身份证号" |
|||
header-align="center" |
|||
align="center"></el-table-column> |
|||
<el-table-column prop="mobile" |
|||
label="手机号" |
|||
header-align="center" |
|||
align="center"></el-table-column> |
|||
<el-table-column prop="sex" |
|||
label="性别" |
|||
header-align="center" |
|||
align="center"></el-table-column> |
|||
<el-table-column prop="county" |
|||
label="县/区" |
|||
header-align="center" |
|||
align="center"></el-table-column> |
|||
<el-table-column prop="street" |
|||
label="街道/乡镇" |
|||
header-align="center" |
|||
align="center"></el-table-column> |
|||
<el-table-column prop="streetId" |
|||
label="街道/乡镇编码" |
|||
header-align="center" |
|||
align="center"></el-table-column> |
|||
<el-table-column prop="community" |
|||
label="社区/村" |
|||
header-align="center" |
|||
align="center"></el-table-column> |
|||
<el-table-column prop="grid" |
|||
label="网格" |
|||
header-align="center" |
|||
align="center"></el-table-column> |
|||
<el-table-column prop="villageName" |
|||
label="小区名称" |
|||
header-align="center" |
|||
align="center"></el-table-column> |
|||
<el-table-column prop="dwellingPlace" |
|||
label="住处" |
|||
header-align="center" |
|||
align="center"></el-table-column> |
|||
<el-table-column prop="vaccinationTime" |
|||
label="接种时间" |
|||
header-align="center" |
|||
align="center"></el-table-column> |
|||
<el-table-column prop="dose" |
|||
label="剂次" |
|||
header-align="center" |
|||
align="center"></el-table-column> |
|||
<!-- <el-table-column prop="vaccineId"--> |
|||
<!-- label="疫苗种类"--> |
|||
<!-- :formatter="vaccineState"--> |
|||
<!-- header-align="center"--> |
|||
<!-- align="center"></el-table-column>--> |
|||
<el-table-column prop="companyId" |
|||
label="生产企业" |
|||
:formatter="companyState" |
|||
header-align="center" |
|||
align="center"></el-table-column> |
|||
<el-table-column prop="siteId" |
|||
label="接种地点" |
|||
:formatter="siteState" |
|||
header-align="center" |
|||
align="center"></el-table-column> |
|||
<el-table-column prop="batchNo" |
|||
label="疫苗批次" |
|||
header-align="center" |
|||
align="center"></el-table-column> |
|||
<el-table-column :label="$t('handle')" |
|||
fixed="right" |
|||
header-align="center" |
|||
align="center" |
|||
width="150"> |
|||
<template slot-scope="scope"> |
|||
<el-button type="text" |
|||
size="small" |
|||
@click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button> |
|||
<el-button type="text" |
|||
size="small" |
|||
@click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<el-pagination :current-page="page" |
|||
:page-sizes="[10, 20, 50, 100]" |
|||
:page-size="limit" |
|||
:total="total" |
|||
layout="total, sizes, prev, pager, next, jumper" |
|||
@size-change="pageSizeChangeHandle" |
|||
@current-change="pageCurrentChangeHandle"> |
|||
</el-pagination> |
|||
<!-- 弹窗, 新增 / 修改 --> |
|||
<add-or-update ref="addOrUpdate" |
|||
@refreshDataList="getDataList"></add-or-update> |
|||
</div> |
|||
</el-card> |
|||
</template> |
|||
|
|||
<script> |
|||
import mixinViewModule from '@/mixins/view-module' |
|||
import AddOrUpdate from './vaccinationinfo-add-or-update' |
|||
export default { |
|||
mixins: [mixinViewModule], |
|||
data () { |
|||
return { |
|||
mixinViewModuleOptions: { |
|||
getDataListURL: 'sys/vaccinationinfo/page', |
|||
getDataListIsPage: true, |
|||
deleteURL: 'sys/vaccinationinfo', |
|||
deleteIsBatch: true |
|||
}, |
|||
dataForm: { |
|||
id: '', |
|||
realName: '', |
|||
mobile: '' |
|||
}, |
|||
options: [], |
|||
compantyOptions: [], |
|||
siteOptions: [] |
|||
} |
|||
}, |
|||
components: { |
|||
AddOrUpdate |
|||
}, |
|||
created: function () { |
|||
// this.getOptions() |
|||
this.getSiteOptions() |
|||
this.getcompantyOptions() |
|||
}, |
|||
methods: { |
|||
getOptions () { |
|||
this.$http |
|||
.get(`sys/vaccinetype/getVaccineList`) |
|||
.then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.options = res.data |
|||
this.vueLoading = false |
|||
this.isAble = false |
|||
}) |
|||
.catch(() => { |
|||
}) |
|||
}, |
|||
getSiteOptions () { |
|||
this.$http |
|||
.get(`sys/vaccinationsite/getSiteList`) |
|||
.then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.siteOptions = res.data |
|||
this.vueLoading = false |
|||
this.isAble = false |
|||
}) |
|||
.catch(() => { |
|||
}) |
|||
}, |
|||
getcompantyOptions () { |
|||
this.$http |
|||
.get(`sys/vaccinecompany/getCompantyList`) |
|||
.then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.compantyOptions = res.data |
|||
this.vueLoading = false |
|||
this.isAble = false |
|||
}) |
|||
.catch(() => { |
|||
}) |
|||
}, |
|||
vaccineState: function (row, column) { |
|||
let choosenItem = this.compantyOptions.filter(item => item.value === row.vaccineId)[0] |
|||
if (choosenItem !== undefined) { |
|||
return choosenItem.label |
|||
} |
|||
}, |
|||
companyState: function (row, column) { |
|||
let choosenItem = this.compantyOptions.filter(item => item.value === row.companyId)[0] |
|||
if (choosenItem !== undefined) { |
|||
return choosenItem.label |
|||
} |
|||
}, |
|||
siteState: function (row, column) { |
|||
let choosenItem = this.siteOptions.filter(item => item.value === row.siteId)[0] |
|||
if (choosenItem !== undefined) { |
|||
return choosenItem.label |
|||
} |
|||
} |
|||
} |
|||
} |
|||
</script> |
|||
@ -0,0 +1,122 @@ |
|||
<template> |
|||
<el-dialog :visible.sync="visible" |
|||
:title="!dataForm.id ? $t('add') : $t('update')" |
|||
:close-on-click-modal="false" |
|||
:close-on-press-escape="false"> |
|||
<el-form :model="dataForm" |
|||
:rules="dataRule" |
|||
ref="dataForm" |
|||
@keyup.enter.native="dataFormSubmitHandle()" |
|||
:label-width="$i18n.locale === 'en-US' ? '120px' : '80px'"> |
|||
<el-form-item label="单位名称" |
|||
prop="siteName"> |
|||
<el-input v-model="dataForm.siteName" |
|||
placeholder="接种地点 名称"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="单位简介" |
|||
prop="siteInfo"> |
|||
<el-input v-model="dataForm.siteInfo" |
|||
placeholder="接种地点 简介"></el-input> |
|||
</el-form-item> |
|||
</el-form> |
|||
<template slot="footer"> |
|||
<el-button @click="visible = false">{{ $t('cancel') }}</el-button> |
|||
<el-button type="primary" |
|||
@click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button> |
|||
</template> |
|||
</el-dialog> |
|||
</template> |
|||
|
|||
<script> |
|||
import debounce from 'lodash/debounce' |
|||
export default { |
|||
data () { |
|||
return { |
|||
visible: false, |
|||
dataForm: { |
|||
id: '', |
|||
siteName: '', |
|||
siteInfo: '' |
|||
} |
|||
} |
|||
}, |
|||
computed: { |
|||
dataRule () { |
|||
return { |
|||
siteName: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
], |
|||
siteInfo: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
], |
|||
delFlag: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
], |
|||
revision: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
], |
|||
createdBy: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
], |
|||
createdTime: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
], |
|||
updatedBy: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
], |
|||
updatedTime: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
], |
|||
creatorName: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
] |
|||
} |
|||
} |
|||
}, |
|||
methods: { |
|||
init () { |
|||
this.visible = true |
|||
this.$nextTick(() => { |
|||
this.$refs['dataForm'].resetFields() |
|||
if (this.dataForm.id) { |
|||
this.getInfo() |
|||
} |
|||
}) |
|||
}, |
|||
// 获取信息 |
|||
getInfo () { |
|||
this.$http.get(`sys/vaccinationsite/${this.dataForm.id}`).then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.dataForm = { |
|||
...this.dataForm, |
|||
...res.data |
|||
} |
|||
}).catch(() => { }) |
|||
}, |
|||
// 表单提交 |
|||
dataFormSubmitHandle: debounce(function () { |
|||
this.$refs['dataForm'].validate((valid) => { |
|||
if (!valid) { |
|||
return false |
|||
} |
|||
this.$http[!this.dataForm.id ? 'post' : 'put']('sys/vaccinationsite/', this.dataForm).then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.$message({ |
|||
message: this.$t('prompt.success'), |
|||
type: 'success', |
|||
duration: 500, |
|||
onClose: () => { |
|||
this.visible = false |
|||
this.$emit('refreshDataList') |
|||
} |
|||
}) |
|||
}).catch(() => { }) |
|||
}) |
|||
}, 1000, { 'leading': true, 'trailing': false }) |
|||
} |
|||
} |
|||
</script> |
|||
@ -0,0 +1,96 @@ |
|||
<template> |
|||
<el-card shadow="never" |
|||
class="aui-card--fill"> |
|||
<div class="mod-demo__vaccinationsite}"> |
|||
<el-form :inline="true" |
|||
:model="dataForm" |
|||
@keyup.enter.native="getDataList()"> |
|||
<el-form-item label="接种地点"> |
|||
<el-input v-model="dataForm.siteName" |
|||
placeholder="接种地点" |
|||
clearable></el-input> |
|||
</el-form-item> |
|||
<el-form-item> |
|||
<el-button @click="getDataList()">{{ $t('query') }}</el-button> |
|||
</el-form-item> |
|||
<el-form-item> |
|||
<el-button type="primary" |
|||
@click="addOrUpdateHandle()">{{ $t('add') }}</el-button> |
|||
</el-form-item> |
|||
<!-- <el-form-item>--> |
|||
<!-- <el-button type="danger"--> |
|||
<!-- @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>--> |
|||
<!-- </el-form-item>--> |
|||
</el-form> |
|||
<el-table v-loading="dataListLoading" |
|||
:data="dataList" |
|||
border |
|||
@selection-change="dataListSelectionChangeHandle" |
|||
style="width: 100%;"> |
|||
<el-table-column type="selection" |
|||
header-align="center" |
|||
align="center" |
|||
width="50"></el-table-column> |
|||
<el-table-column prop="siteName" |
|||
label="单位名称" |
|||
header-align="center" |
|||
align="center"></el-table-column> |
|||
<el-table-column prop="siteInfo" |
|||
label="单位简介" |
|||
header-align="center" |
|||
align="center"></el-table-column> |
|||
<el-table-column :label="$t('handle')" |
|||
fixed="right" |
|||
header-align="center" |
|||
align="center" |
|||
width="150"> |
|||
<template slot-scope="scope"> |
|||
<el-button type="text" |
|||
size="small" |
|||
@click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button> |
|||
<el-button type="text" |
|||
size="small" |
|||
@click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<el-pagination :current-page="page" |
|||
:page-sizes="[10, 20, 50, 100]" |
|||
:page-size="limit" |
|||
:total="total" |
|||
layout="total, sizes, prev, pager, next, jumper" |
|||
@size-change="pageSizeChangeHandle" |
|||
@current-change="pageCurrentChangeHandle"> |
|||
</el-pagination> |
|||
<!-- 弹窗, 新增 / 修改 --> |
|||
<add-or-update v-if="addOrUpdateVisible" |
|||
ref="addOrUpdate" |
|||
@refreshDataList="getDataList"></add-or-update> |
|||
</div> |
|||
</el-card> |
|||
</template> |
|||
|
|||
<script> |
|||
import mixinViewModule from '@/mixins/view-module' |
|||
import AddOrUpdate from './vaccinationsite-add-or-update' |
|||
export default { |
|||
mixins: [mixinViewModule], |
|||
data () { |
|||
return { |
|||
mixinViewModuleOptions: { |
|||
getDataListURL: 'sys//vaccinationsite/page', |
|||
getDataListIsPage: true, |
|||
deleteURL: 'sys//vaccinationsite', |
|||
deleteIsBatch: true |
|||
}, |
|||
dataForm: { |
|||
id: '', |
|||
siteName: '' |
|||
} |
|||
} |
|||
}, |
|||
components: { |
|||
AddOrUpdate |
|||
} |
|||
} |
|||
</script> |
|||
@ -0,0 +1,112 @@ |
|||
<template> |
|||
<el-dialog :visible.sync="visible" |
|||
:title="!dataForm.id ? $t('add') : $t('update')" |
|||
:close-on-click-modal="false" |
|||
:close-on-press-escape="false"> |
|||
<el-form :model="dataForm" |
|||
:rules="dataRule" |
|||
ref="dataForm" |
|||
@keyup.enter.native="dataFormSubmitHandle()" |
|||
:label-width="$i18n.locale === 'en-US' ? '160px' : '120px'"> |
|||
<el-form-item label="企业名称" |
|||
prop="companyName"> |
|||
<el-input v-model="dataForm.companyName" |
|||
placeholder="生产企业名称"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="企业简介" |
|||
prop="companyInfo"> |
|||
<el-input v-model="dataForm.companyInfo" |
|||
placeholder="疫苗生产企业简介"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="最大接种剂量" |
|||
prop="maxDose"> |
|||
<el-input-number v-model="dataForm.maxDose" |
|||
:min="1" |
|||
:max="99" |
|||
label="最大接种剂量"></el-input-number> |
|||
</el-form-item> |
|||
</el-form> |
|||
<template slot="footer"> |
|||
<el-button @click="visible = false">{{ $t('cancel') }}</el-button> |
|||
<el-button type="primary" |
|||
@click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button> |
|||
</template> |
|||
</el-dialog> |
|||
</template> |
|||
|
|||
<script> |
|||
import debounce from 'lodash/debounce' |
|||
export default { |
|||
data () { |
|||
return { |
|||
visible: false, |
|||
dataForm: { |
|||
id: '', |
|||
companyName: '', |
|||
companyInfo: '', |
|||
maxDose: 1 |
|||
} |
|||
} |
|||
}, |
|||
computed: { |
|||
dataRule () { |
|||
return { |
|||
companyName: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
], |
|||
companyInfo: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
], |
|||
maxDose: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
] |
|||
} |
|||
} |
|||
}, |
|||
methods: { |
|||
init () { |
|||
this.visible = true |
|||
this.$nextTick(() => { |
|||
this.$refs['dataForm'].resetFields() |
|||
if (this.dataForm.id) { |
|||
this.getInfo() |
|||
} |
|||
}) |
|||
}, |
|||
// 获取信息 |
|||
getInfo () { |
|||
this.$http.get(`sys/vaccinecompany/${this.dataForm.id}`).then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.dataForm = { |
|||
...this.dataForm, |
|||
...res.data |
|||
} |
|||
}).catch(() => { }) |
|||
}, |
|||
// 表单提交 |
|||
dataFormSubmitHandle: debounce(function () { |
|||
this.$refs['dataForm'].validate((valid) => { |
|||
if (!valid) { |
|||
return false |
|||
} |
|||
this.$http[!this.dataForm.id ? 'post' : 'put']('sys/vaccinecompany/', this.dataForm).then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.$message({ |
|||
message: this.$t('prompt.success'), |
|||
type: 'success', |
|||
duration: 500, |
|||
onClose: () => { |
|||
this.visible = false |
|||
this.$emit('refreshDataList') |
|||
} |
|||
}) |
|||
}).catch(() => { }) |
|||
}) |
|||
}, 1000, { 'leading': true, 'trailing': false }) |
|||
} |
|||
} |
|||
</script> |
|||
@ -0,0 +1,100 @@ |
|||
<template> |
|||
<el-card shadow="never" |
|||
class="aui-card--fill"> |
|||
<div class="mod-demo__vaccinecompany}"> |
|||
<el-form :inline="true" |
|||
:model="dataForm" |
|||
@keyup.enter.native="getDataList()"> |
|||
<el-form-item label="企业名称"> |
|||
<el-input v-model="dataForm.companyName" |
|||
placeholder="生产企业名称" |
|||
clearable></el-input> |
|||
</el-form-item> |
|||
<el-form-item> |
|||
<el-button @click="getDataList()">{{ $t('query') }}</el-button> |
|||
</el-form-item> |
|||
<el-form-item> |
|||
<el-button type="primary" |
|||
@click="addOrUpdateHandle()">{{ $t('add') }}</el-button> |
|||
</el-form-item> |
|||
<!-- <el-form-item>--> |
|||
<!-- <el-button type="danger"--> |
|||
<!-- @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>--> |
|||
<!-- </el-form-item>--> |
|||
</el-form> |
|||
<el-table v-loading="dataListLoading" |
|||
:data="dataList" |
|||
border |
|||
@selection-change="dataListSelectionChangeHandle" |
|||
style="width: 100%;"> |
|||
<el-table-column type="selection" |
|||
header-align="center" |
|||
align="center" |
|||
width="50"></el-table-column> |
|||
<el-table-column prop="companyName" |
|||
label="生产企业名称" |
|||
header-align="center" |
|||
align="center"></el-table-column> |
|||
<el-table-column prop="companyInfo" |
|||
label="疫苗生产企业简介" |
|||
header-align="center" |
|||
align="center"></el-table-column> |
|||
<el-table-column prop="maxDose" |
|||
label="最大接种剂量" |
|||
header-align="center" |
|||
align="center"></el-table-column> |
|||
<el-table-column :label="$t('handle')" |
|||
fixed="right" |
|||
header-align="center" |
|||
align="center" |
|||
width="150"> |
|||
<template slot-scope="scope"> |
|||
<el-button type="text" |
|||
size="small" |
|||
@click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button> |
|||
<el-button type="text" |
|||
size="small" |
|||
@click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<el-pagination :current-page="page" |
|||
:page-sizes="[10, 20, 50, 100]" |
|||
:page-size="limit" |
|||
:total="total" |
|||
layout="total, sizes, prev, pager, next, jumper" |
|||
@size-change="pageSizeChangeHandle" |
|||
@current-change="pageCurrentChangeHandle"> |
|||
</el-pagination> |
|||
<!-- 弹窗, 新增 / 修改 --> |
|||
<add-or-update v-if="addOrUpdateVisible" |
|||
ref="addOrUpdate" |
|||
@refreshDataList="getDataList"></add-or-update> |
|||
</div> |
|||
</el-card> |
|||
</template> |
|||
|
|||
<script> |
|||
import mixinViewModule from '@/mixins/view-module' |
|||
import AddOrUpdate from './vaccinecompany-add-or-update' |
|||
export default { |
|||
mixins: [mixinViewModule], |
|||
data () { |
|||
return { |
|||
mixinViewModuleOptions: { |
|||
getDataListURL: 'sys/vaccinecompany/page', |
|||
getDataListIsPage: true, |
|||
deleteURL: 'sys/vaccinecompany', |
|||
deleteIsBatch: true |
|||
}, |
|||
dataForm: { |
|||
id: '', |
|||
companyName: '' |
|||
} |
|||
} |
|||
}, |
|||
components: { |
|||
AddOrUpdate |
|||
} |
|||
} |
|||
</script> |
|||
@ -0,0 +1,129 @@ |
|||
<template> |
|||
<el-dialog :visible.sync="visible" |
|||
:title="!dataForm.id ? $t('add') : $t('update')" |
|||
:close-on-click-modal="false" |
|||
:close-on-press-escape="false"> |
|||
<el-form :model="dataForm" |
|||
:rules="dataRule" |
|||
ref="dataForm" |
|||
@keyup.enter.native="dataFormSubmitHandle()" |
|||
:label-width="$i18n.locale === 'en-US' ? '120px' : '80px'"> |
|||
<el-form-item label="疫苗名称" |
|||
prop="vaccineName"> |
|||
<el-input v-model="dataForm.vaccineName" |
|||
placeholder="疫苗名称"></el-input> |
|||
</el-form-item> |
|||
<el-form-item label="疫苗简介" |
|||
prop="vaccineInfo"> |
|||
<el-input v-model="dataForm.vaccineInfo" |
|||
placeholder="疫苗简介"></el-input> |
|||
</el-form-item> |
|||
</el-form> |
|||
<template slot="footer"> |
|||
<el-button @click="visible = false">{{ $t('cancel') }}</el-button> |
|||
<el-button type="primary" |
|||
@click="dataFormSubmitHandle()">{{ $t('confirm') }}</el-button> |
|||
</template> |
|||
</el-dialog> |
|||
</template> |
|||
|
|||
<script> |
|||
import debounce from 'lodash/debounce' |
|||
export default { |
|||
data () { |
|||
return { |
|||
visible: false, |
|||
dataForm: { |
|||
id: '', |
|||
vaccineName: '', |
|||
vaccineInfo: '', |
|||
delFlag: '', |
|||
revision: '', |
|||
createdBy: '', |
|||
createdTime: '', |
|||
updatedBy: '', |
|||
updatedTime: '', |
|||
creatorName: '' |
|||
} |
|||
} |
|||
}, |
|||
computed: { |
|||
dataRule () { |
|||
return { |
|||
vaccineName: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
], |
|||
vaccineInfo: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
], |
|||
delFlag: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
], |
|||
revision: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
], |
|||
createdBy: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
], |
|||
createdTime: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
], |
|||
updatedBy: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
], |
|||
updatedTime: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
], |
|||
creatorName: [ |
|||
{ required: true, message: this.$t('validate.required'), trigger: 'blur' } |
|||
] |
|||
} |
|||
} |
|||
}, |
|||
methods: { |
|||
init () { |
|||
this.visible = true |
|||
this.$nextTick(() => { |
|||
this.$refs['dataForm'].resetFields() |
|||
if (this.dataForm.id) { |
|||
this.getInfo() |
|||
} |
|||
}) |
|||
}, |
|||
// 获取信息 |
|||
getInfo () { |
|||
this.$http.get(`sys/vaccinetype/${this.dataForm.id}`).then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.dataForm = { |
|||
...this.dataForm, |
|||
...res.data |
|||
} |
|||
}).catch(() => { }) |
|||
}, |
|||
// 表单提交 |
|||
dataFormSubmitHandle: debounce(function () { |
|||
this.$refs['dataForm'].validate((valid) => { |
|||
if (!valid) { |
|||
return false |
|||
} |
|||
this.$http[!this.dataForm.id ? 'post' : 'put']('sys/vaccinetype/', this.dataForm).then(({ data: res }) => { |
|||
if (res.code !== 0) { |
|||
return this.$message.error(res.msg) |
|||
} |
|||
this.$message({ |
|||
message: this.$t('prompt.success'), |
|||
type: 'success', |
|||
duration: 500, |
|||
onClose: () => { |
|||
this.visible = false |
|||
this.$emit('refreshDataList') |
|||
} |
|||
}) |
|||
}).catch(() => { }) |
|||
}) |
|||
}, 1000, { 'leading': true, 'trailing': false }) |
|||
} |
|||
} |
|||
</script> |
|||
@ -0,0 +1,96 @@ |
|||
<template> |
|||
<el-card shadow="never" |
|||
class="aui-card--fill"> |
|||
<div class="mod-demo__vaccinetype}"> |
|||
<el-form :inline="true" |
|||
:model="dataForm" |
|||
@keyup.enter.native="getDataList()"> |
|||
<el-form-item label="疫苗名称"> |
|||
<el-input v-model="dataForm.vaccineName" |
|||
placeholder="疫苗名称" |
|||
clearable></el-input> |
|||
</el-form-item> |
|||
<el-form-item> |
|||
<el-button @click="getDataList()">{{ $t('query') }}</el-button> |
|||
</el-form-item> |
|||
<el-form-item> |
|||
<el-button type="primary" |
|||
@click="addOrUpdateHandle()">{{ $t('add') }}</el-button> |
|||
</el-form-item> |
|||
<!-- <el-form-item>--> |
|||
<!-- <el-button type="danger"--> |
|||
<!-- @click="deleteHandle()">{{ $t('deleteBatch') }}</el-button>--> |
|||
<!-- </el-form-item>--> |
|||
</el-form> |
|||
<el-table v-loading="dataListLoading" |
|||
:data="dataList" |
|||
border |
|||
@selection-change="dataListSelectionChangeHandle" |
|||
style="width: 100%;"> |
|||
<el-table-column type="selection" |
|||
header-align="center" |
|||
align="center" |
|||
width="50"></el-table-column> |
|||
<el-table-column prop="vaccineName" |
|||
label="疫苗名称" |
|||
header-align="center" |
|||
align="center"></el-table-column> |
|||
<el-table-column prop="vaccineInfo" |
|||
label="疫苗简介" |
|||
header-align="center" |
|||
align="center"></el-table-column> |
|||
<el-table-column :label="$t('handle')" |
|||
fixed="right" |
|||
header-align="center" |
|||
align="center" |
|||
width="150"> |
|||
<template slot-scope="scope"> |
|||
<el-button type="text" |
|||
size="small" |
|||
@click="addOrUpdateHandle(scope.row.id)">{{ $t('update') }}</el-button> |
|||
<el-button type="text" |
|||
size="small" |
|||
@click="deleteHandle(scope.row.id)">{{ $t('delete') }}</el-button> |
|||
</template> |
|||
</el-table-column> |
|||
</el-table> |
|||
<el-pagination :current-page="page" |
|||
:page-sizes="[10, 20, 50, 100]" |
|||
:page-size="limit" |
|||
:total="total" |
|||
layout="total, sizes, prev, pager, next, jumper" |
|||
@size-change="pageSizeChangeHandle" |
|||
@current-change="pageCurrentChangeHandle"> |
|||
</el-pagination> |
|||
<!-- 弹窗, 新增 / 修改 --> |
|||
<add-or-update v-if="addOrUpdateVisible" |
|||
ref="addOrUpdate" |
|||
@refreshDataList="getDataList"></add-or-update> |
|||
</div> |
|||
</el-card> |
|||
</template> |
|||
|
|||
<script> |
|||
import mixinViewModule from '@/mixins/view-module' |
|||
import AddOrUpdate from './vaccinetype-add-or-update' |
|||
export default { |
|||
mixins: [mixinViewModule], |
|||
data () { |
|||
return { |
|||
mixinViewModuleOptions: { |
|||
getDataListURL: 'sys/vaccinetype/page', |
|||
getDataListIsPage: true, |
|||
deleteURL: 'sys/vaccinetype', |
|||
deleteIsBatch: true |
|||
}, |
|||
dataForm: { |
|||
id: '', |
|||
vaccineName: '' |
|||
} |
|||
} |
|||
}, |
|||
components: { |
|||
AddOrUpdate |
|||
} |
|||
} |
|||
</script> |
|||
Loading…
Reference in new issue